[1/2] Move docs to brivate (#1640)
This PR moves the docs site to the private repo while keeping the docs content on the public repo. ### Change Type - [x] `documentation`
|
@ -1 +0,0 @@
|
|||
{}
|
41
apps/docs/.gitignore
vendored
|
@ -1,41 +0,0 @@
|
|||
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
|
||||
|
||||
# dependencies
|
||||
/node_modules
|
||||
/.pnp
|
||||
.pnp.js
|
||||
|
||||
# testing
|
||||
/coverage
|
||||
|
||||
# next.js
|
||||
/.next/
|
||||
/out/
|
||||
|
||||
# production
|
||||
/build
|
||||
|
||||
# misc
|
||||
.DS_Store
|
||||
*.pem
|
||||
|
||||
# debug
|
||||
npm-debug.log*
|
||||
yarn-debug.log*
|
||||
yarn-error.log*
|
||||
.pnpm-debug.log*
|
||||
|
||||
# local env files
|
||||
.env*.local
|
||||
|
||||
# vercel
|
||||
.vercel
|
||||
|
||||
# typescript
|
||||
*.tsbuildinfo
|
||||
next-env.d.ts
|
||||
|
||||
|
||||
content/gen
|
||||
content.json
|
||||
api-content.json
|
|
@ -1,7 +0,0 @@
|
|||
# @tldraw/docs
|
||||
|
||||
## 0.1.1-alpha.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Release day!
|
|
@ -1,190 +0,0 @@
|
|||
Apache License
|
||||
Version 2.0, January 2004
|
||||
http://www.apache.org/licenses/
|
||||
|
||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||
|
||||
1. Definitions.
|
||||
|
||||
"License" shall mean the terms and conditions for use, reproduction,
|
||||
and distribution as defined by Sections 1 through 9 of this document.
|
||||
|
||||
"Licensor" shall mean the copyright owner or entity authorized by
|
||||
the copyright owner that is granting the License.
|
||||
|
||||
"Legal Entity" shall mean the union of the acting entity and all
|
||||
other entities that control, are controlled by, or are under common
|
||||
control with that entity. For the purposes of this definition,
|
||||
"control" means (i) the power, direct or indirect, to cause the
|
||||
direction or management of such entity, whether by contract or
|
||||
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||
|
||||
"You" (or "Your") shall mean an individual or Legal Entity
|
||||
exercising permissions granted by this License.
|
||||
|
||||
"Source" form shall mean the preferred form for making modifications,
|
||||
including but not limited to software source code, documentation
|
||||
source, and configuration files.
|
||||
|
||||
"Object" form shall mean any form resulting from mechanical
|
||||
transformation or translation of a Source form, including but
|
||||
not limited to compiled object code, generated documentation,
|
||||
and conversions to other media types.
|
||||
|
||||
"Work" shall mean the work of authorship, whether in Source or
|
||||
Object form, made available under the License, as indicated by a
|
||||
copyright notice that is included in or attached to the work
|
||||
(an example is provided in the Appendix below).
|
||||
|
||||
"Derivative Works" shall mean any work, whether in Source or Object
|
||||
form, that is based on (or derived from) the Work and for which the
|
||||
editorial revisions, annotations, elaborations, or other modifications
|
||||
represent, as a whole, an original work of authorship. For the purposes
|
||||
of this License, Derivative Works shall not include works that remain
|
||||
separable from, or merely link (or bind by name) to the interfaces of,
|
||||
the Work and Derivative Works thereof.
|
||||
|
||||
"Contribution" shall mean any work of authorship, including
|
||||
the original version of the Work and any modifications or additions
|
||||
to that Work or Derivative Works thereof, that is intentionally
|
||||
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||
or by an individual or Legal Entity authorized to submit on behalf of
|
||||
the copyright owner. For the purposes of this definition, "submitted"
|
||||
means any form of electronic, verbal, or written communication sent
|
||||
to the Licensor or its representatives, including but not limited to
|
||||
communication on electronic mailing lists, source code control systems,
|
||||
and issue tracking systems that are managed by, or on behalf of, the
|
||||
Licensor for the purpose of discussing and improving the Work, but
|
||||
excluding communication that is conspicuously marked or otherwise
|
||||
designated in writing by the copyright owner as "Not a Contribution."
|
||||
|
||||
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||
on behalf of whom a Contribution has been received by Licensor and
|
||||
subsequently incorporated within the Work.
|
||||
|
||||
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
copyright license to reproduce, prepare Derivative Works of,
|
||||
publicly display, publicly perform, sublicense, and distribute the
|
||||
Work and such Derivative Works in Source or Object form.
|
||||
|
||||
3. Grant of Patent License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
(except as stated in this section) patent license to make, have made,
|
||||
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||
where such license applies only to those patent claims licensable
|
||||
by such Contributor that are necessarily infringed by their
|
||||
Contribution(s) alone or by combination of their Contribution(s)
|
||||
with the Work to which such Contribution(s) was submitted. If You
|
||||
institute patent litigation against any entity (including a
|
||||
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||
or a Contribution incorporated within the Work constitutes direct
|
||||
or contributory patent infringement, then any patent licenses
|
||||
granted to You under this License for that Work shall terminate
|
||||
as of the date such litigation is filed.
|
||||
|
||||
4. Redistribution. You may reproduce and distribute copies of the
|
||||
Work or Derivative Works thereof in any medium, with or without
|
||||
modifications, and in Source or Object form, provided that You
|
||||
meet the following conditions:
|
||||
|
||||
(a) You must give any other recipients of the Work or
|
||||
Derivative Works a copy of this License; and
|
||||
|
||||
(b) You must cause any modified files to carry prominent notices
|
||||
stating that You changed the files; and
|
||||
|
||||
(c) You must retain, in the Source form of any Derivative Works
|
||||
that You distribute, all copyright, patent, trademark, and
|
||||
attribution notices from the Source form of the Work,
|
||||
excluding those notices that do not pertain to any part of
|
||||
the Derivative Works; and
|
||||
|
||||
(d) If the Work includes a "NOTICE" text file as part of its
|
||||
distribution, then any Derivative Works that You distribute must
|
||||
include a readable copy of the attribution notices contained
|
||||
within such NOTICE file, excluding those notices that do not
|
||||
pertain to any part of the Derivative Works, in at least one
|
||||
of the following places: within a NOTICE text file distributed
|
||||
as part of the Derivative Works; within the Source form or
|
||||
documentation, if provided along with the Derivative Works; or,
|
||||
within a display generated by the Derivative Works, if and
|
||||
wherever such third-party notices normally appear. The contents
|
||||
of the NOTICE file are for informational purposes only and
|
||||
do not modify the License. You may add Your own attribution
|
||||
notices within Derivative Works that You distribute, alongside
|
||||
or as an addendum to the NOTICE text from the Work, provided
|
||||
that such additional attribution notices cannot be construed
|
||||
as modifying the License.
|
||||
|
||||
You may add Your own copyright statement to Your modifications and
|
||||
may provide additional or different license terms and conditions
|
||||
for use, reproduction, or distribution of Your modifications, or
|
||||
for any such Derivative Works as a whole, provided Your use,
|
||||
reproduction, and distribution of the Work otherwise complies with
|
||||
the conditions stated in this License.
|
||||
|
||||
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||
any Contribution intentionally submitted for inclusion in the Work
|
||||
by You to the Licensor shall be under the terms and conditions of
|
||||
this License, without any additional terms or conditions.
|
||||
Notwithstanding the above, nothing herein shall supersede or modify
|
||||
the terms of any separate license agreement you may have executed
|
||||
with Licensor regarding such Contributions.
|
||||
|
||||
6. Trademarks. This License does not grant permission to use the trade
|
||||
names, trademarks, service marks, or product names of the Licensor,
|
||||
except as required for reasonable and customary use in describing the
|
||||
origin of the Work and reproducing the content of the NOTICE file.
|
||||
|
||||
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||
agreed to in writing, Licensor provides the Work (and each
|
||||
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
implied, including, without limitation, any warranties or conditions
|
||||
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||
appropriateness of using or redistributing the Work and assume any
|
||||
risks associated with Your exercise of permissions under this License.
|
||||
|
||||
8. Limitation of Liability. In no event and under no legal theory,
|
||||
whether in tort (including negligence), contract, or otherwise,
|
||||
unless required by applicable law (such as deliberate and grossly
|
||||
negligent acts) or agreed to in writing, shall any Contributor be
|
||||
liable to You for damages, including any direct, indirect, special,
|
||||
incidental, or consequential damages of any character arising as a
|
||||
result of this License or out of the use or inability to use the
|
||||
Work (including but not limited to damages for loss of goodwill,
|
||||
work stoppage, computer failure or malfunction, or any and all
|
||||
other commercial damages or losses), even if such Contributor
|
||||
has been advised of the possibility of such damages.
|
||||
|
||||
9. Accepting Warranty or Additional Liability. While redistributing
|
||||
the Work or Derivative Works thereof, You may choose to offer,
|
||||
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||
or other liability obligations and/or rights consistent with this
|
||||
License. However, in accepting such obligations, You may act only
|
||||
on Your own behalf and on Your sole responsibility, not on behalf
|
||||
of any other Contributor, and only if You agree to indemnify,
|
||||
defend, and hold each Contributor harmless for any liability
|
||||
incurred by, or claims asserted against, such Contributor by reason
|
||||
of your accepting any such warranty or additional liability.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
Copyright 2023 tldraw GB Ltd.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
|
@ -1,7 +0,0 @@
|
|||
# tldraw-docs
|
||||
|
||||
<div alt style="text-align: center; transform: scale(.5);">
|
||||
<picture>
|
||||
<img alt="tldraw" src="https://github.com/tldraw/tldraw-lite/raw/main/docs/public/card_repo.png" />
|
||||
</picture>
|
||||
</div>
|
|
@ -1,27 +0,0 @@
|
|||
import { Article } from '@/types/content-types'
|
||||
import { Icon } from './Icon'
|
||||
|
||||
type ArticleDetailsProps = {
|
||||
article: Article
|
||||
}
|
||||
|
||||
export function ArticleDetails({ article: { sourceUrl, date } }: ArticleDetailsProps) {
|
||||
return (
|
||||
<div className="article__details">
|
||||
<a className="article__details__edit" href={sourceUrl}>
|
||||
<Icon icon="edit" />
|
||||
<span>Edit this page</span>
|
||||
</a>
|
||||
{date && (
|
||||
<div className="article__details__timestamp">
|
||||
Last edited on{' '}
|
||||
{Intl.DateTimeFormat('en-gb', {
|
||||
year: 'numeric',
|
||||
month: 'long',
|
||||
day: 'numeric',
|
||||
}).format(new Date(date))}
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
)
|
||||
}
|
|
@ -1,32 +0,0 @@
|
|||
import { ArticleLinks } from '@/types/content-types'
|
||||
import Link from 'next/link'
|
||||
import { Icon } from './Icon'
|
||||
|
||||
type ArticleNavLinksProps = {
|
||||
links: ArticleLinks
|
||||
}
|
||||
|
||||
export function ArticleNavLinks({ links: { prev, next } }: ArticleNavLinksProps) {
|
||||
return (
|
||||
<div className="article__links">
|
||||
{prev && (
|
||||
<Link
|
||||
href={`/${prev.sectionId}/${prev.categoryId}/${prev.id}`}
|
||||
className="article__links__link article__links__prev"
|
||||
>
|
||||
<Icon icon="arrow-left" />
|
||||
<span>{prev.title}</span>
|
||||
</Link>
|
||||
)}
|
||||
{next && (
|
||||
<Link
|
||||
href={`/${next.sectionId}/${next.categoryId}/${next.id}`}
|
||||
className="article__links__link article__links__next"
|
||||
>
|
||||
<span>{next.title}</span>
|
||||
<Icon icon="arrow-right" />
|
||||
</Link>
|
||||
)}
|
||||
</div>
|
||||
)
|
||||
}
|
|
@ -1,11 +0,0 @@
|
|||
export function Icon({ icon, className }: { icon: string; className?: string }) {
|
||||
return (
|
||||
<span
|
||||
className={`icon ${className ?? ''}`}
|
||||
style={{
|
||||
mask: `url(/icons/${icon}.svg) center 100% / 100% no-repeat`,
|
||||
WebkitMask: `url(/icons/${icon}.svg) center 100% / 100% no-repeat`,
|
||||
}}
|
||||
/>
|
||||
)
|
||||
}
|
|
@ -1,10 +0,0 @@
|
|||
import { MDXRemote, MDXRemoteSerializeResult } from 'next-mdx-remote'
|
||||
import { components, scope } from './mdx-components'
|
||||
|
||||
interface MdxProps {
|
||||
mdxSource: MDXRemoteSerializeResult
|
||||
}
|
||||
|
||||
export function Mdx({ mdxSource }: MdxProps) {
|
||||
return <MDXRemote {...mdxSource} scope={scope} components={components as any} />
|
||||
}
|
|
@ -1,26 +0,0 @@
|
|||
import Head from 'next/head'
|
||||
|
||||
interface MetaHeadProps {
|
||||
title: string
|
||||
description?: string | null
|
||||
hero?: string | null
|
||||
}
|
||||
|
||||
export function MetaHead({ title, description, hero }: MetaHeadProps) {
|
||||
const TITLE = `${title} - tldraw docs`
|
||||
|
||||
return (
|
||||
<Head>
|
||||
<title>{TITLE}</title>
|
||||
{description && <meta name="description" content={description} />}
|
||||
|
||||
<meta name="twitter:title" content={title} />
|
||||
{description && <meta name="twitter:description" content={description} />}
|
||||
{hero && <meta name="twitter:image" content={hero} />}
|
||||
|
||||
<meta property="og:title" content={TITLE} key="title" />
|
||||
{description && <meta property="og:description" content={description} />}
|
||||
{hero && <meta property="og:image" content={hero} />}
|
||||
</Head>
|
||||
)
|
||||
}
|
|
@ -1,15 +0,0 @@
|
|||
import { useTheme } from 'next-themes'
|
||||
import { Icon } from './Icon'
|
||||
|
||||
export function ThemeSwitcher() {
|
||||
const { theme, setTheme } = useTheme()
|
||||
|
||||
return (
|
||||
<button
|
||||
className="sidebar__button icon-button"
|
||||
onClick={() => setTheme(theme === 'light' ? 'dark' : 'light')}
|
||||
>
|
||||
<Icon icon="light" />
|
||||
</button>
|
||||
)
|
||||
}
|
|
@ -1 +0,0 @@
|
|||
export {}
|
|
@ -1,27 +0,0 @@
|
|||
import { ReactNode } from 'react'
|
||||
|
||||
export function ParametersTable({ children }: { children: ReactNode }) {
|
||||
return (
|
||||
<table className="parametersTable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Name</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>{children}</tbody>
|
||||
</table>
|
||||
)
|
||||
}
|
||||
|
||||
export function ParametersTableRow({ children }: { children: ReactNode }) {
|
||||
return <tr className="parametersTable-row">{children}</tr>
|
||||
}
|
||||
|
||||
export function ParametersTableName({ children }: { children: ReactNode }) {
|
||||
return <td className="parametersTable-name">{children}</td>
|
||||
}
|
||||
|
||||
export function ParametersTableDescription({ children }: { children: ReactNode }) {
|
||||
return <td className="parametersTable-description">{children}</td>
|
||||
}
|
|
@ -1,132 +0,0 @@
|
|||
/* ---------------------- Lists --------------------- */
|
||||
|
||||
import React from 'react'
|
||||
|
||||
export const UnorderedList = (props: any) => {
|
||||
return <ul {...props} />
|
||||
}
|
||||
|
||||
export const OrderedList = (props: any) => {
|
||||
return <ol {...props} />
|
||||
}
|
||||
|
||||
export const ListItem = (props: any) => {
|
||||
return <li {...props} />
|
||||
}
|
||||
|
||||
/* ------------------- Typography ------------------- */
|
||||
|
||||
type Heading = 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6'
|
||||
|
||||
function heading(heading: Heading, props: any) {
|
||||
const Element = ({ ...props }) => React.createElement(heading, props)
|
||||
if (props.id) {
|
||||
return (
|
||||
<Element {...props}>
|
||||
<a href={`#${props.id}`}>{props.children}</a>
|
||||
</Element>
|
||||
)
|
||||
}
|
||||
|
||||
return <Element {...props} />
|
||||
}
|
||||
|
||||
export const Heading1 = (props: any) => {
|
||||
return heading('h1', props)
|
||||
}
|
||||
|
||||
export const Heading2 = (props: any) => {
|
||||
return heading('h2', props)
|
||||
}
|
||||
|
||||
export const Heading3 = (props: any) => {
|
||||
return heading('h3', props)
|
||||
}
|
||||
|
||||
export const Heading4 = (props: any) => {
|
||||
return heading('h4', props)
|
||||
}
|
||||
|
||||
export const Heading5 = (props: any) => {
|
||||
return heading('h5', props)
|
||||
}
|
||||
|
||||
export const Heading6 = (props: any) => {
|
||||
return heading('h6', props)
|
||||
}
|
||||
|
||||
export const Paragraph = (props: any) => {
|
||||
return <p {...props} />
|
||||
}
|
||||
|
||||
export const A = (props: any) => {
|
||||
return <a {...props} />
|
||||
}
|
||||
|
||||
export const Divider = (props: any) => {
|
||||
return <hr {...props} />
|
||||
}
|
||||
|
||||
export const Blockquote = (props: any) => {
|
||||
return <blockquote {...props} />
|
||||
}
|
||||
|
||||
export const Small = (props: any) => {
|
||||
return (
|
||||
<p className="article__small">
|
||||
<small {...props} />
|
||||
</p>
|
||||
)
|
||||
}
|
||||
|
||||
/* --------------------- Tables --------------------- */
|
||||
|
||||
export const Table = (props: any) => {
|
||||
return <table {...props} />
|
||||
}
|
||||
|
||||
export const THead = (props: any) => {
|
||||
return <thead {...props} />
|
||||
}
|
||||
|
||||
export const TR = (props: any) => {
|
||||
return <tr {...props} />
|
||||
}
|
||||
|
||||
export const TD = (props: any) => {
|
||||
return <td {...props} />
|
||||
}
|
||||
|
||||
/* --------------------- Media --------------------- */
|
||||
|
||||
export const Image = (props: any) => {
|
||||
return (
|
||||
<span className="artcle__image">
|
||||
<img alt={props.title} {...props} />
|
||||
{props.caption && <span className="article__caption">{props.caption}</span>}
|
||||
</span>
|
||||
)
|
||||
}
|
||||
|
||||
export const Video = (props: any) => {
|
||||
return (
|
||||
<span className="artcle__video">
|
||||
<video alt={props.title} {...props} />
|
||||
{props.caption && <span className="article__caption">{props.caption}</span>}
|
||||
</span>
|
||||
)
|
||||
}
|
||||
|
||||
/* ------------------- Code Blocks ------------------ */
|
||||
|
||||
export const Pre = (props: any) => {
|
||||
return <pre {...props} />
|
||||
}
|
||||
|
||||
export const Code = (props: any) => {
|
||||
return <code {...props} />
|
||||
}
|
||||
|
||||
export const Footnotes = (props: any) => {
|
||||
return <div {...props} />
|
||||
}
|
|
@ -1,53 +0,0 @@
|
|||
import * as customComponents from '../article-components'
|
||||
import * as apiComponents from './api-docs'
|
||||
import {
|
||||
A,
|
||||
Blockquote,
|
||||
Divider,
|
||||
Heading1,
|
||||
Heading2,
|
||||
Heading3,
|
||||
Heading4,
|
||||
Heading5,
|
||||
Heading6,
|
||||
Image,
|
||||
ListItem,
|
||||
OrderedList,
|
||||
Paragraph,
|
||||
Small,
|
||||
Table,
|
||||
TD,
|
||||
THead,
|
||||
TR,
|
||||
UnorderedList,
|
||||
Video,
|
||||
} from './generic'
|
||||
|
||||
export const scope = {}
|
||||
|
||||
export const components = {
|
||||
h1: Heading1,
|
||||
h2: Heading2,
|
||||
h3: Heading3,
|
||||
h4: Heading4,
|
||||
h5: Heading5,
|
||||
h6: Heading6,
|
||||
blockquote: Blockquote,
|
||||
hr: Divider,
|
||||
a: A,
|
||||
p: Paragraph,
|
||||
table: Table,
|
||||
thead: THead,
|
||||
tr: TR,
|
||||
td: TD,
|
||||
video: Video,
|
||||
ol: OrderedList,
|
||||
ul: UnorderedList,
|
||||
li: ListItem,
|
||||
img: Image,
|
||||
Small: Small,
|
||||
Image,
|
||||
Video,
|
||||
...customComponents,
|
||||
...apiComponents,
|
||||
}
|
4
apps/docs/content.d.ts
vendored
|
@ -1,4 +0,0 @@
|
|||
declare module '*/content.json' {
|
||||
const content: any
|
||||
export default content
|
||||
}
|
|
@ -1,78 +0,0 @@
|
|||
{
|
||||
"name": "@tldraw/docs",
|
||||
"description": "A docs site for tldraw.",
|
||||
"version": "0.1.1-alpha.0",
|
||||
"private": true,
|
||||
"packageManager": "yarn@3.5.0",
|
||||
"author": {
|
||||
"name": "tldraw GB Ltd.",
|
||||
"email": "hello@tldraw.com"
|
||||
},
|
||||
"homepage": "https://tldraw.dev",
|
||||
"license": "Apache-2.0",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/tldraw/tldraw"
|
||||
},
|
||||
"bugs": {
|
||||
"url": "https://github.com/tldraw/tldraw/issues"
|
||||
},
|
||||
"keywords": [
|
||||
"tldraw",
|
||||
"drawing",
|
||||
"app",
|
||||
"development",
|
||||
"whiteboard",
|
||||
"canvas",
|
||||
"infinite"
|
||||
],
|
||||
"scripts": {
|
||||
"dev": "yarn docs-content && NODE_ENV=development next-remote-watch ./content/**/*.mdx -c 'yarn run -T tsx ./scripts/generate-on-reload.ts'",
|
||||
"build": "next build",
|
||||
"start": "next start",
|
||||
"lint": "yarn run -T tsx ../../scripts/lint.ts",
|
||||
"docs-content": "ts-node --project tsconfig.content.json ./scripts/index.ts",
|
||||
"content": "lazy docs-content"
|
||||
},
|
||||
"dependencies": {
|
||||
"@microsoft/tsdoc": "^0.14.2",
|
||||
"@tldraw/utils": "workspace:*",
|
||||
"@types/node": "18.15.0",
|
||||
"@types/react": "^18.0.24",
|
||||
"@types/react-dom": "^18.0.6",
|
||||
"eslint": "8.36.0",
|
||||
"eslint-config-next": "13.2.4",
|
||||
"gray-matter": "^4.0.3",
|
||||
"next": "13.2.4",
|
||||
"next-mdx-remote": "^4.4.1",
|
||||
"next-remote-watch": "^2.0.0",
|
||||
"next-themes": "^0.2.1",
|
||||
"prettier": "^2.8.7",
|
||||
"react": "18.2.0",
|
||||
"react-dom": "18.2.0",
|
||||
"rehype-autolink-headings": "^6.1.1",
|
||||
"rehype-highlight": "^6.0.0",
|
||||
"rehype-slug": "^5.1.0",
|
||||
"rehype-slug-custom-id": "^1.1.0",
|
||||
"remark-gfm": "^3.0.1"
|
||||
},
|
||||
"//": [
|
||||
"Anything that starts with @tldraw in devDependencies will get included in the docs site.",
|
||||
"We have to list them here so lazyrepo knows the docs depends on those packages (ie their",
|
||||
"tsdoc comments), even though we don't use any of their code to run the docs site."
|
||||
],
|
||||
"devDependencies": {
|
||||
"@microsoft/api-extractor-model": "^7.26.4",
|
||||
"@tldraw/editor": "workspace:*",
|
||||
"@tldraw/file-format": "workspace:*",
|
||||
"@tldraw/primitives": "workspace:*",
|
||||
"@tldraw/store": "workspace:*",
|
||||
"@tldraw/tldraw": "workspace:*",
|
||||
"@tldraw/tlschema": "workspace:*",
|
||||
"@tldraw/ui": "workspace:*",
|
||||
"@tldraw/validate": "workspace:*",
|
||||
"lazyrepo": "0.0.0-alpha.27",
|
||||
"rimraf": "^4.4.0",
|
||||
"ts-node": "^10.9.1"
|
||||
}
|
||||
}
|
|
@ -1,39 +0,0 @@
|
|||
import { Sidebar } from '@/components/Sidebar'
|
||||
import { SidebarContentList } from '@/types/content-types'
|
||||
import { getSidebarContentList } from '@/utils/getSidebarContentList'
|
||||
import { GetStaticProps } from 'next'
|
||||
import { useTheme } from 'next-themes'
|
||||
import Link from 'next/link'
|
||||
|
||||
interface Props {
|
||||
sidebar: SidebarContentList
|
||||
}
|
||||
|
||||
export default function NotFoundpage({ sidebar }: Props) {
|
||||
const theme = useTheme()
|
||||
|
||||
return (
|
||||
<div className="layout">
|
||||
<Sidebar {...sidebar} />
|
||||
<main className={`article ${theme.theme ?? 'light'}`}>
|
||||
<div
|
||||
className="lockup"
|
||||
style={{
|
||||
mask: `url(/lockup.svg) center 100% / 100% no-repeat`,
|
||||
WebkitMask: `url(/lockup.svg) center 100% / 100% no-repeat`,
|
||||
}}
|
||||
/>
|
||||
<p>{`Sorry, we couldn't find the page you were looking for.`}</p>
|
||||
<p>
|
||||
<Link href="/">Back to the start.</Link>
|
||||
</p>
|
||||
</main>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
|
||||
export const getStaticProps: GetStaticProps<Props> = async () => {
|
||||
const sidebar = await getSidebarContentList({})
|
||||
|
||||
return { props: { sidebar } }
|
||||
}
|
|
@ -1,97 +0,0 @@
|
|||
import { ArticleDetails } from '@/components/ArticleDetails'
|
||||
import { ArticleNavLinks } from '@/components/ArticleNavLinks'
|
||||
import { Breadcrumb } from '@/components/Breadcrumb'
|
||||
import { Mdx } from '@/components/Mdx'
|
||||
import { MetaHead } from '@/components/MetaHead'
|
||||
import { Sidebar } from '@/components/Sidebar'
|
||||
import { Article, ArticleLinks, Category, Section, SidebarContentList } from '@/types/content-types'
|
||||
import {
|
||||
getArticle,
|
||||
getArticleSource,
|
||||
getCategory,
|
||||
getLinks,
|
||||
getSection,
|
||||
getSections,
|
||||
} from '@/utils/content'
|
||||
import { getSidebarContentList } from '@/utils/getSidebarContentList'
|
||||
import { GetStaticPaths, GetStaticProps } from 'next'
|
||||
import { MDXRemoteSerializeResult } from 'next-mdx-remote'
|
||||
import { useTheme } from 'next-themes'
|
||||
|
||||
export type ArticleProps = {
|
||||
type: 'article'
|
||||
sidebar: SidebarContentList
|
||||
section: Section
|
||||
category: Category
|
||||
article: Article
|
||||
links: ArticleLinks
|
||||
mdxSource: MDXRemoteSerializeResult
|
||||
}
|
||||
|
||||
export default function ArticlePage({
|
||||
mdxSource,
|
||||
section,
|
||||
category,
|
||||
article,
|
||||
links,
|
||||
sidebar,
|
||||
}: ArticleProps) {
|
||||
const theme = useTheme()
|
||||
return (
|
||||
<>
|
||||
<MetaHead title={article.title} description={article.description} hero={article.hero} />
|
||||
<div className="layout">
|
||||
<Sidebar {...sidebar} />
|
||||
<main className={`article ${theme.theme ?? 'light'}`}>
|
||||
<Breadcrumb section={section} category={category} />
|
||||
<h1>{article.title}</h1>
|
||||
<Mdx mdxSource={mdxSource} />
|
||||
<ArticleDetails article={article} />
|
||||
<ArticleNavLinks links={links} />
|
||||
</main>
|
||||
</div>
|
||||
</>
|
||||
)
|
||||
}
|
||||
|
||||
export const getStaticPaths: GetStaticPaths = async () => {
|
||||
const sections = await getSections()
|
||||
const paths: { params: { sectionId: string; childId: string; articleId: string } }[] = []
|
||||
|
||||
for (const section of sections) {
|
||||
for (const category of section.categories) {
|
||||
if (category.id === 'ucg') continue
|
||||
for (const articleId of category.articleIds) {
|
||||
paths.push({ params: { sectionId: section.id, childId: category.id, articleId } })
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return { paths, fallback: false }
|
||||
}
|
||||
|
||||
export const getStaticProps: GetStaticProps<ArticleProps> = async (ctx) => {
|
||||
const sectionId = ctx.params?.sectionId?.toString() as string
|
||||
const categoryId = ctx.params?.childId?.toString() as string
|
||||
const articleId = ctx.params?.articleId?.toString()
|
||||
if (!articleId) throw Error()
|
||||
|
||||
const sidebar = await getSidebarContentList({ sectionId, categoryId, articleId })
|
||||
const section = await getSection(sectionId)
|
||||
const category = await getCategory(sectionId, categoryId)
|
||||
const article = await getArticle(articleId)
|
||||
const links = await getLinks(articleId)
|
||||
const mdxSource = await getArticleSource(articleId)
|
||||
|
||||
return {
|
||||
props: {
|
||||
type: 'article',
|
||||
article,
|
||||
section,
|
||||
category,
|
||||
sidebar,
|
||||
links,
|
||||
mdxSource,
|
||||
},
|
||||
}
|
||||
}
|
|
@ -1,170 +0,0 @@
|
|||
import { Breadcrumb } from '@/components/Breadcrumb'
|
||||
import { Mdx } from '@/components/Mdx'
|
||||
import { MetaHead } from '@/components/MetaHead'
|
||||
import { Sidebar } from '@/components/Sidebar'
|
||||
import ArticlePage from '@/pages/[sectionId]/[childId]/[articleId]'
|
||||
import { Article, Category, Section, SidebarContentList } from '@/types/content-types'
|
||||
import {
|
||||
getArticle,
|
||||
getArticleSource,
|
||||
getArticles,
|
||||
getCategory,
|
||||
getLinks,
|
||||
getSection,
|
||||
getSections,
|
||||
} from '@/utils/content'
|
||||
import { getSidebarContentList } from '@/utils/getSidebarContentList'
|
||||
import { GetStaticPaths, GetStaticProps } from 'next'
|
||||
import { MDXRemoteSerializeResult } from 'next-mdx-remote'
|
||||
import { useTheme } from 'next-themes'
|
||||
import Link from 'next/link'
|
||||
import { ArticleProps } from './[articleId]'
|
||||
|
||||
type CategoryProps = {
|
||||
type: 'category'
|
||||
sidebar: SidebarContentList
|
||||
section: Section
|
||||
category: Category
|
||||
articles: Article[]
|
||||
mdxSource: MDXRemoteSerializeResult | null
|
||||
}
|
||||
|
||||
type ChildProps = CategoryProps | ArticleProps
|
||||
|
||||
export default function CategoryListPage(props: ChildProps) {
|
||||
const theme = useTheme()
|
||||
|
||||
if (props.type === 'article') {
|
||||
return <ArticlePage {...props} />
|
||||
}
|
||||
|
||||
const { sidebar, section, category, articles, mdxSource } = props
|
||||
|
||||
const ungrouped: Article[] = []
|
||||
const groupedArticles = Object.fromEntries(
|
||||
category.groups.map((group) => [group.id, { group, articles: [] as Article[] }])
|
||||
)
|
||||
|
||||
for (const article of articles) {
|
||||
if (article.groupId) {
|
||||
if (groupedArticles[article.groupId]) {
|
||||
groupedArticles[article.groupId].articles.push(article)
|
||||
} else {
|
||||
throw Error(
|
||||
`Article ${article.id} has groupId ${article.groupId} but no such group exists.`
|
||||
)
|
||||
}
|
||||
} else {
|
||||
ungrouped.push(article)
|
||||
}
|
||||
}
|
||||
|
||||
return (
|
||||
<>
|
||||
<MetaHead title={category.title} description={category.description} />
|
||||
<div className="layout">
|
||||
<Sidebar {...sidebar} />
|
||||
<main className={`article list ${theme.theme ?? 'light'}`}>
|
||||
<Breadcrumb section={section} />
|
||||
<h1>{category.title}</h1>
|
||||
{mdxSource && <Mdx mdxSource={mdxSource} />}
|
||||
{Object.values(groupedArticles)
|
||||
.filter((g) => g.articles.length > 0)
|
||||
.map(({ group, articles }) => (
|
||||
<>
|
||||
<h2>{group.title}</h2>
|
||||
<ul>
|
||||
{articles.map((article) => (
|
||||
<Link key={article.id} href={`/${section.id}/${category.id}/${article.id}`}>
|
||||
<li>{article.title}</li>
|
||||
</Link>
|
||||
))}
|
||||
</ul>
|
||||
</>
|
||||
))}
|
||||
{ungrouped.length > 0 ? (
|
||||
<ul>
|
||||
{ungrouped.map((article) => (
|
||||
<Link key={article.id} href={`/${section.id}/${category.id}/${article.id}`}>
|
||||
<li>{article.title}</li>
|
||||
</Link>
|
||||
))}
|
||||
</ul>
|
||||
) : null}
|
||||
</main>
|
||||
</div>
|
||||
</>
|
||||
)
|
||||
}
|
||||
|
||||
export const getStaticPaths: GetStaticPaths = async () => {
|
||||
const sections = await getSections()
|
||||
const paths: { params: { sectionId: string; childId: string } }[] = []
|
||||
|
||||
for (const section of sections) {
|
||||
if (section.categories) {
|
||||
for (const category of section.categories) {
|
||||
paths.push({ params: { sectionId: section.id, childId: category.id } })
|
||||
|
||||
// Add paths for uncategorized articles as well
|
||||
if (category.id !== 'ucg') continue
|
||||
for (const articleId of category.articleIds) {
|
||||
paths.push({ params: { sectionId: section.id, childId: articleId } })
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return { paths, fallback: false }
|
||||
}
|
||||
|
||||
export const getStaticProps: GetStaticProps<ChildProps> = async (ctx) => {
|
||||
const sectionId = ctx.params?.sectionId?.toString() as string
|
||||
const childId = ctx.params?.childId?.toString()
|
||||
if (!childId || !sectionId) throw Error()
|
||||
|
||||
const articles = await getArticles()
|
||||
const section = await getSection(sectionId)
|
||||
|
||||
// If the path goes to an uncategorized article, show the article page
|
||||
if (!section.categories.some((c) => c.id === childId)) {
|
||||
const categoryId = 'ucg'
|
||||
const articleId = childId
|
||||
const sidebar = await getSidebarContentList({ sectionId, categoryId, articleId })
|
||||
const category = await getCategory(sectionId, categoryId)
|
||||
const article = await getArticle(articleId)
|
||||
const links = await getLinks(articleId)
|
||||
const mdxSource = await getArticleSource(articleId)
|
||||
return {
|
||||
props: {
|
||||
type: 'article',
|
||||
sidebar,
|
||||
section,
|
||||
category,
|
||||
article,
|
||||
links,
|
||||
mdxSource,
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
// Otherwise, show the category page
|
||||
const categoryId = childId
|
||||
const sidebar = await getSidebarContentList({ sectionId, categoryId })
|
||||
const category = await getCategory(sectionId, categoryId)
|
||||
const categoryArticles = category.articleIds.map((id) => articles[id])
|
||||
|
||||
const article = articles[categoryId + '_index'] ?? null
|
||||
const mdxSource = article ? await getArticleSource(categoryId + '_index') : null
|
||||
|
||||
return {
|
||||
props: {
|
||||
type: 'category',
|
||||
sidebar,
|
||||
section,
|
||||
category,
|
||||
articles: categoryArticles,
|
||||
mdxSource,
|
||||
},
|
||||
}
|
||||
}
|
|
@ -1,17 +0,0 @@
|
|||
import '@/styles/globals.css'
|
||||
import { ThemeProvider } from 'next-themes'
|
||||
import type { AppProps } from 'next/app'
|
||||
import Head from 'next/head'
|
||||
|
||||
export default function App({ Component, pageProps }: AppProps) {
|
||||
return (
|
||||
<ThemeProvider>
|
||||
<Head>
|
||||
<title>tldraw docs</title>
|
||||
<meta charSet="utf-8" />
|
||||
<meta name="viewport" content="initial-scale=1.0, width=device-width" />
|
||||
</Head>
|
||||
<Component {...pageProps} />
|
||||
</ThemeProvider>
|
||||
)
|
||||
}
|
|
@ -1,63 +0,0 @@
|
|||
import { Head, Html, Main, NextScript } from 'next/document'
|
||||
|
||||
const TITLE = 'tldraw'
|
||||
const DESCRIPTION =
|
||||
'Developer documentation for tldraw. Build infinite canvas experiences for the web.'
|
||||
const URL = 'https://tldraw.dev'
|
||||
const TWITTER_HANDLE = '@tldraw'
|
||||
const TWITTER_CARD = 'social-twitter.png'
|
||||
const FACEBOOK_CARD = 'social-og.png'
|
||||
const THEME_COLOR = '#FFFFFF'
|
||||
const THEME_ACCENT = '#FFFFFF'
|
||||
|
||||
export default function Document() {
|
||||
return (
|
||||
<Html lang="en">
|
||||
<Head>
|
||||
<meta name="application-name" content={TITLE} />
|
||||
<meta name="apple-mobile-web-app-capable" content="yes" />
|
||||
<meta name="apple-mobile-web-app-status-bar-style" content="default" />
|
||||
<meta name="apple-mobile-web-app-title" content={TITLE} />
|
||||
<meta name="description" content={DESCRIPTION} />
|
||||
<meta name="format-detection" content="telephone=no" />
|
||||
<meta name="mobile-web-app-capable" content="yes" />
|
||||
<meta name="msapplication-config" content="browserconfig.xml" />
|
||||
<meta name="msapplication-TileColor" content={THEME_ACCENT} />
|
||||
<meta name="msapplication-tap-highlight" content="no" />
|
||||
<meta name="theme-color" content={THEME_COLOR} />
|
||||
|
||||
<link rel="apple-touch-icon" href="touch-icon-iphone.png" />
|
||||
<link rel="apple-touch-icon" sizes="152x152" href="apple-touch-icon-152x152.png" />
|
||||
<link rel="apple-touch-icon" sizes="180x180" href="apple-touch-icon-180x180.png" />
|
||||
<link rel="apple-touch-icon" sizes="167x167" href="apple-touch-icon-167x167.png" />
|
||||
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="favicon-32x32.png" />
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="favicon-16x16.png" />
|
||||
<link rel="mask-icon" href="safari-pinned-tab.svg" color={THEME_COLOR} />
|
||||
<link rel="shortcut icon" href="/favicon.svg" />
|
||||
|
||||
<link rel="manifest" href="/manifest.json" />
|
||||
|
||||
{/* Twitter */}
|
||||
<meta name="twitter:card" content="summary" />
|
||||
<meta name="twitter:url" content={URL} />
|
||||
<meta name="twitter:title" content={TITLE} />
|
||||
<meta name="twitter:description" content={DESCRIPTION} />
|
||||
<meta name="twitter:image" content={`${URL}/${TWITTER_CARD}`} />
|
||||
<meta name="twitter:creator" content={TWITTER_HANDLE} />
|
||||
|
||||
{/* Facebook */}
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:title" content={TITLE} />
|
||||
<meta property="og:description" content={DESCRIPTION} />
|
||||
<meta property="og:site_name" content={TITLE} />
|
||||
<meta property="og:url" content={URL} />
|
||||
<meta property="og:image" content={`${URL}/${FACEBOOK_CARD}`} />
|
||||
</Head>
|
||||
<body>
|
||||
<Main />
|
||||
<NextScript />
|
||||
</body>
|
||||
</Html>
|
||||
)
|
||||
}
|
|
@ -1,45 +0,0 @@
|
|||
// Next.js API route support: https://nextjs.org/docs/api-routes/introduction
|
||||
import { SearchResult } from '@/types/search-types'
|
||||
import { getArticles, getSections } from '@/utils/content'
|
||||
import type { NextApiRequest, NextApiResponse } from 'next'
|
||||
|
||||
type Data = {
|
||||
results: SearchResult[]
|
||||
}
|
||||
|
||||
export default async function handler(req: NextApiRequest, res: NextApiResponse<Data>) {
|
||||
const { q, s } = req.query
|
||||
const query = q?.toString().toLowerCase()
|
||||
const activeId = s?.toString()
|
||||
|
||||
if (!query) return res.status(400).json({ results: [] })
|
||||
|
||||
const results: Data['results'] = []
|
||||
const articles = await getArticles()
|
||||
|
||||
for (const section of await getSections()) {
|
||||
for (const category of section.categories) {
|
||||
for (const articleId of category.articleIds) {
|
||||
if (activeId === articleId) continue
|
||||
|
||||
const article = articles[articleId]
|
||||
if (
|
||||
article.title.toLowerCase().includes(query) ||
|
||||
(article.description && article.description.toLowerCase().includes(query)) ||
|
||||
article.keywords.includes(query)
|
||||
) {
|
||||
results.push({
|
||||
id: article.id,
|
||||
type: 'article',
|
||||
subtitle:
|
||||
category.id === 'ucg' ? `${section.title}` : `${section.title} / ${category.title}`,
|
||||
title: article.title,
|
||||
url: `${section.id}/${category.id}/${article.id}`,
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
res.status(200).json({ results })
|
||||
}
|
|
@ -1,138 +0,0 @@
|
|||
import { Sidebar } from '@/components/Sidebar'
|
||||
import { Article, ArticleLinks, SidebarContentList } from '@/types/content-types'
|
||||
import { getArticle, getArticleSource, getLinks } from '@/utils/content'
|
||||
import { getSidebarContentList } from '@/utils/getSidebarContentList'
|
||||
import { GetStaticProps } from 'next'
|
||||
import { MDXRemoteSerializeResult } from 'next-mdx-remote'
|
||||
import { useTheme } from 'next-themes'
|
||||
|
||||
interface Props {
|
||||
article: Article
|
||||
links: ArticleLinks
|
||||
sidebar: SidebarContentList
|
||||
mdxSource: MDXRemoteSerializeResult
|
||||
}
|
||||
|
||||
export default function CLA({ sidebar }: Props) {
|
||||
const theme = useTheme()
|
||||
|
||||
return (
|
||||
<div className="layout">
|
||||
<Sidebar {...sidebar} />
|
||||
<main className={`article ${theme.theme ?? 'light'}`}>
|
||||
<div
|
||||
className="lockup"
|
||||
style={{
|
||||
mask: `url(/lockup.svg) center 100% / 100% no-repeat`,
|
||||
WebkitMask: `url(/lockup.svg) center 100% / 100% no-repeat`,
|
||||
}}
|
||||
/>
|
||||
<h2>Contributor License Agreement</h2>
|
||||
<h4>Version 1.0 — June 8th 2023</h4>
|
||||
<p>
|
||||
In order to clarify the intellectual property license granted with Contributions from any
|
||||
person, tldraw, Inc. (“tldraw”) must have a Contributor License Agreement on file that has
|
||||
been signed by each contributor, indicating agreement to the license terms below. This
|
||||
license is for Your protection as a contributor as well as the protection of tldraw; it
|
||||
does not change your rights to use Your own contributions for any other purpose.
|
||||
</p>
|
||||
<p>
|
||||
You accept and agree to the following terms and conditions for Your Contributions (present
|
||||
and future) that you submit to tldraw. Except for the license granted herein to tldraw,
|
||||
You reserve all right, title, and interest in and to Your Contributions.{' '}
|
||||
</p>
|
||||
<p>1. Definitions. </p>
|
||||
<p>"You" (or "Your") means the individual identified above. </p>
|
||||
<p>
|
||||
"Contribution" means any original work of authorship, including any modifications or
|
||||
additions to an existing work, that is intentionally submitted by You to tldraw for
|
||||
inclusion in, or documentation of, any of the products owned or managed by tldraw (each, a
|
||||
"Work"). For the purposes of this definition, "submitted" means any form of electronic,
|
||||
verbal, or written communication sent to tldraw or its representatives, including but not
|
||||
limited to communication on electronic mailing lists, source code control systems, and
|
||||
issue tracking systems that are managed by, or on behalf of, tldraw for the purpose of
|
||||
discussing and improving the Works, but excluding communication that is conspicuously
|
||||
marked or otherwise designated in writing by You as "Not a Contribution."{' '}
|
||||
</p>
|
||||
<p>
|
||||
2. Grant of Copyright License. You hereby grant to tldraw a perpetual, worldwide,
|
||||
non-exclusive, sublicensable (through multiple tiers), no-charge, royalty-free,
|
||||
irrevocable copyright license to reproduce, prepare derivative works of, publicly display,
|
||||
publicly perform, distribute, and otherwise exploit Your Contributions and such derivative
|
||||
works.{' '}
|
||||
</p>
|
||||
<p>
|
||||
3. Grant of Patent License. You hereby grant to tldraw a perpetual, worldwide,
|
||||
non-exclusive, sublicensable (through multiple tiers), no-charge, royalty-free,
|
||||
irrevocable patent license to make, have made, use, offer to sell, sell, import, and
|
||||
otherwise transfer and exploit the Works, where such license applies only to those patent
|
||||
claims licensable by You that are necessarily infringed by Your Contribution(s) alone or
|
||||
by combination of Your Contribution(s) with the Works to which such Contribution(s) was
|
||||
submitted.{' '}
|
||||
</p>
|
||||
<p>
|
||||
4. You represent that you are legally entitled to grant the above license. If your
|
||||
employer(s) has rights to intellectual property that you create that includes your
|
||||
Contributions, you represent that you have received permission to make Contributions on
|
||||
behalf of that employer, that your employer has waived in writing any rights it may have
|
||||
in Your Contributions to tldraw, or that your employer has executed a separate Corporate
|
||||
CLA with tldraw.{' '}
|
||||
</p>
|
||||
<p>
|
||||
5. You represent that each of Your Contributions is Your original creation and does not
|
||||
incorporate any material created by others. You represent that Your Contribution
|
||||
submissions include complete details of any patents or copyrights which are associated
|
||||
with any part of Your Contributions.{' '}
|
||||
</p>
|
||||
<p>
|
||||
6. You are not expected to provide support for Your Contributions, except to the extent
|
||||
You desire to provide support. You may provide support for free, for a fee, or not at all.
|
||||
Unless required by applicable law or agreed to in writing, You provide Your Contributions
|
||||
on an "as is" basis, without warranties or conditions of any kind, either express or
|
||||
implied, including, without limitation, any warranties or conditions of title,
|
||||
non-infringement, merchantability, or fitness for a particular purpose.{' '}
|
||||
</p>
|
||||
<p>
|
||||
7. You agree to notify tldraw of any facts or circumstances of which you become aware (now
|
||||
or in the future) that would make Your representations in this Agreement inaccurate in any
|
||||
respect.
|
||||
</p>
|
||||
<p>
|
||||
8. You acknowledge that tldraw owns all right, title, and interest in and to the Works.
|
||||
Notwithstanding the foregoing, tldraw’s subsidiary, tldraw GB limited (the “Subsidiary”),
|
||||
is the beneficial owner of the Works, and tldraw will sublicense its rights in your
|
||||
Contributions under this Agreement to the Subsidiary in furtherance of the Subsidiary’s
|
||||
status as beneficial owner of the Works.
|
||||
</p>
|
||||
<p>
|
||||
9. This Agreement is governed by the laws of Delaware, and the parties consent to
|
||||
exclusive jurisdiction in the courts sitting in Delaware. The parties waive all defenses
|
||||
of lack of personal jurisdiction and forum non-conveniens.
|
||||
</p>
|
||||
<p>
|
||||
10. Entire Agreement/Assignment. This Agreement is the entire agreement between the
|
||||
parties, and supersedes any and all prior agreements, understandings or communications,
|
||||
written or oral, between the parties relating to the subject matter hereof. This Agreement
|
||||
may be assigned by tldraw without Your prior consent.{' '}
|
||||
</p>
|
||||
<hr />
|
||||
<p>
|
||||
Questions or concerns? Email <a href="mailto://hello@tldraw.com">hello@tldraw.com.</a>
|
||||
</p>
|
||||
</main>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
|
||||
const sectionId = 'docs'
|
||||
const categoryId = 'ucg'
|
||||
const articleId = 'introduction'
|
||||
|
||||
export const getStaticProps: GetStaticProps<Props> = async () => {
|
||||
const sidebar = await getSidebarContentList({ sectionId, categoryId, articleId })
|
||||
const article = await getArticle(articleId)
|
||||
const links = await getLinks(articleId)
|
||||
const mdxSource = await getArticleSource(articleId)
|
||||
|
||||
return { props: { article, sidebar, links, mdxSource } }
|
||||
}
|
|
@ -1,52 +0,0 @@
|
|||
import { ArticleDetails } from '@/components/ArticleDetails'
|
||||
import { ArticleNavLinks } from '@/components/ArticleNavLinks'
|
||||
import { Mdx } from '@/components/Mdx'
|
||||
import { Sidebar } from '@/components/Sidebar'
|
||||
import { Article, ArticleLinks, SidebarContentList } from '@/types/content-types'
|
||||
import { getArticle, getArticleSource, getLinks } from '@/utils/content'
|
||||
import { getSidebarContentList } from '@/utils/getSidebarContentList'
|
||||
import { GetStaticProps } from 'next'
|
||||
import { MDXRemoteSerializeResult } from 'next-mdx-remote'
|
||||
import { useTheme } from 'next-themes'
|
||||
|
||||
interface Props {
|
||||
article: Article
|
||||
links: ArticleLinks
|
||||
sidebar: SidebarContentList
|
||||
mdxSource: MDXRemoteSerializeResult
|
||||
}
|
||||
|
||||
export default function ArticlePage({ mdxSource, links, sidebar, article }: Props) {
|
||||
const theme = useTheme()
|
||||
|
||||
return (
|
||||
<div className="layout">
|
||||
<Sidebar {...sidebar} />
|
||||
<main className={`article ${theme.theme ?? 'light'}`}>
|
||||
<div
|
||||
className="lockup"
|
||||
style={{
|
||||
mask: `url(/lockup.svg) center 100% / 100% no-repeat`,
|
||||
WebkitMask: `url(/lockup.svg) center 100% / 100% no-repeat`,
|
||||
}}
|
||||
/>
|
||||
<Mdx mdxSource={mdxSource} />
|
||||
<ArticleDetails article={article} />
|
||||
<ArticleNavLinks links={links} />
|
||||
</main>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
|
||||
const sectionId = 'docs'
|
||||
const categoryId = 'ucg'
|
||||
const articleId = 'introduction'
|
||||
|
||||
export const getStaticProps: GetStaticProps<Props> = async () => {
|
||||
const sidebar = await getSidebarContentList({ sectionId, categoryId, articleId })
|
||||
const article = await getArticle(articleId)
|
||||
const links = await getLinks(articleId)
|
||||
const mdxSource = await getArticleSource(articleId)
|
||||
|
||||
return { props: { article, sidebar, links, mdxSource } }
|
||||
}
|
|
@ -1,58 +0,0 @@
|
|||
import { Breadcrumb } from '@/components/Breadcrumb'
|
||||
import { MetaHead } from '@/components/MetaHead'
|
||||
import { Sidebar } from '@/components/Sidebar'
|
||||
import { SidebarContentList } from '@/types/content-types'
|
||||
import { SearchResult } from '@/types/search-types'
|
||||
import { getSidebarContentList } from '@/utils/getSidebarContentList'
|
||||
import { GetServerSideProps } from 'next'
|
||||
import { useTheme } from 'next-themes'
|
||||
import Link from 'next/link'
|
||||
|
||||
type Props = {
|
||||
sidebar: SidebarContentList
|
||||
results: SearchResult[]
|
||||
query: string
|
||||
}
|
||||
|
||||
export default function SectionListPage({ sidebar, query, results }: Props) {
|
||||
const theme = useTheme()
|
||||
|
||||
return (
|
||||
<>
|
||||
<MetaHead title={`Search Results: ${query} (${results.length})`} />
|
||||
<div className="layout">
|
||||
<Sidebar {...sidebar} />
|
||||
<main className={`article list ${theme.theme ?? 'light'}`}>
|
||||
<Breadcrumb />
|
||||
<h1>{`Found ${results.length} Results for "${query}"`}</h1>
|
||||
<ul>
|
||||
{results.map((result) => (
|
||||
<Link key={result.id} href={`${result.url}`}>
|
||||
<li>
|
||||
<h4>{result.subtitle}</h4>
|
||||
<h3>{result.title}</h3>
|
||||
</li>
|
||||
</Link>
|
||||
))}
|
||||
</ul>
|
||||
</main>
|
||||
</div>
|
||||
</>
|
||||
)
|
||||
}
|
||||
|
||||
export const getServerSideProps: GetServerSideProps<Props> = async (ctx) => {
|
||||
// get the q out of search-results?q=foo
|
||||
const query = ctx.query?.q?.toString() as string
|
||||
if (!query) throw Error()
|
||||
|
||||
const sidebar = await getSidebarContentList({})
|
||||
|
||||
// fetch from our current server
|
||||
const res = await fetch(`http://${ctx.req.headers.host}/api/search?q=${query}`)
|
||||
|
||||
const json = await res.json()
|
||||
const results = json.results
|
||||
|
||||
return { props: { sidebar, query, results } }
|
||||
}
|
|
@ -1,11 +0,0 @@
|
|||
<svg width="152" height="152" viewBox="0 0 152 152" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<g clip-path="url(#clip0_1479_150769)">
|
||||
<path d="M0 16.7033C0 7.47832 7.16344 0 16 0H136C144.837 0 152 7.47832 152 16.7033V135.297C152 144.522 144.837 152 136 152H16C7.16345 152 0 144.522 0 135.297V16.7033Z" fill="black"/>
|
||||
<path d="M88.5463 43.4721C88.5463 47.1455 87.2907 50.2624 84.7797 52.8226C82.2686 55.3829 79.2116 56.663 75.6088 56.663C71.8968 56.663 68.7852 55.3829 66.2741 52.8226C63.7631 50.2624 62.5075 47.1455 62.5075 43.4721C62.5075 39.7987 63.7631 36.6819 66.2741 34.1216C68.7852 31.5614 71.8968 30.2812 75.6088 30.2812C79.2116 30.2812 82.2686 31.5614 84.7797 34.1216C87.2907 36.6819 88.5463 39.7987 88.5463 43.4721ZM62.3438 89.7004C62.3438 86.027 63.5993 82.9102 66.1104 80.3499C68.7306 77.6783 71.8968 76.3425 75.6088 76.3425C79.1025 76.3425 82.1594 77.6783 84.7797 80.3499C87.3999 82.9102 88.9284 85.8043 89.3651 89.0325C90.2385 95.0435 89.1468 100.999 86.0898 106.899C83.142 112.798 78.8841 117.307 73.3161 120.423C70.2591 122.204 67.748 122.149 65.7828 120.256C63.9268 118.475 64.4727 116.36 67.4205 113.911C69.0581 112.687 70.4229 111.129 71.5146 109.236C72.6064 107.344 73.3161 105.396 73.6436 103.392C73.7528 102.502 73.3706 102.056 72.4972 102.056C70.3137 101.945 68.0756 100.721 65.7828 98.383C63.4901 96.0454 62.3438 93.1512 62.3438 89.7004Z" fill="white"/>
|
||||
</g>
|
||||
<defs>
|
||||
<clipPath id="clip0_1479_150769">
|
||||
<rect width="152" height="152" fill="white"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
</svg>
|
Before Width: | Height: | Size: 1.5 KiB |
|
@ -1,11 +0,0 @@
|
|||
<svg width="180" height="180" viewBox="0 0 180 180" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<g clip-path="url(#clip0_1479_150767)">
|
||||
<path d="M0 19.7802C0 8.85591 8.48303 0 18.9474 0H161.053C171.517 0 180 8.85591 180 19.7802V160.22C180 171.144 171.517 180 161.053 180H18.9474C8.48303 180 0 171.144 0 160.22V19.7802Z" fill="black"/>
|
||||
<path d="M104.857 51.4801C104.857 55.8302 103.371 59.5212 100.397 62.5531C97.4233 65.585 93.8032 67.1009 89.5367 67.1009C85.1409 67.1009 81.4562 65.585 78.4825 62.5531C75.5089 59.5212 74.0221 55.8302 74.0221 51.4801C74.0221 47.1301 75.5089 43.4391 78.4825 40.4072C81.4562 37.3753 85.1409 35.8594 89.5367 35.8594C93.8032 35.8594 97.4233 37.3753 100.397 40.4072C103.371 43.4391 104.857 47.1301 104.857 51.4801ZM73.8281 106.224C73.8281 101.874 75.3149 98.1831 78.2886 95.1512C81.3915 91.9875 85.1409 90.4056 89.5367 90.4056C93.674 90.4056 97.294 91.9875 100.397 95.1512C103.5 98.1831 105.31 101.61 105.827 105.433C106.861 112.552 105.569 119.604 101.948 126.59C98.4576 133.577 93.4154 138.916 86.8216 142.607C83.2016 144.716 80.2279 144.65 77.9007 142.409C75.7028 140.3 76.3493 137.795 79.8401 134.895C81.7794 133.445 83.3955 131.6 84.6884 129.359C85.9813 127.118 86.8217 124.811 87.2095 122.438C87.3388 121.384 86.8863 120.856 85.852 120.856C83.2662 120.724 80.6158 119.274 77.9007 116.506C75.1857 113.738 73.8281 110.311 73.8281 106.224Z" fill="white"/>
|
||||
</g>
|
||||
<defs>
|
||||
<clipPath id="clip0_1479_150767">
|
||||
<rect width="180" height="180" fill="white"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
</svg>
|
Before Width: | Height: | Size: 1.5 KiB |
|
@ -1,11 +0,0 @@
|
|||
<svg width="167" height="167" viewBox="0 0 167 167" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<g clip-path="url(#clip0_1479_150768)">
|
||||
<path d="M0 18.3516C0 8.21631 7.87036 0 17.5789 0H149.421C159.13 0 167 8.21631 167 18.3516V148.648C167 158.784 159.13 167 149.421 167H17.579C7.87037 167 0 158.784 0 148.648V18.3516Z" fill="black"/>
|
||||
<path d="M97.2844 47.7621C97.2844 51.7981 95.905 55.2225 93.1461 58.0354C90.3872 60.8483 87.0286 62.2547 83.0702 62.2547C78.9918 62.2547 75.5732 60.8483 72.8143 58.0354C70.0555 55.2225 68.676 51.7981 68.676 47.7621C68.676 43.7262 70.0555 40.3018 72.8143 37.4889C75.5732 34.676 78.9918 33.2695 83.0702 33.2695C87.0286 33.2695 90.3872 34.676 93.1461 37.4889C95.905 40.3018 97.2844 43.7262 97.2844 47.7621ZM68.4961 98.5524C68.4961 94.5165 69.8755 91.0921 72.6344 88.2792C75.5132 85.344 78.9918 83.8763 83.0702 83.8763C86.9086 83.8763 90.2673 85.344 93.1461 88.2792C96.0249 91.0921 97.7042 94.2719 98.184 97.8186C99.1436 104.423 97.9441 110.966 94.5855 117.448C91.3468 123.93 86.6687 128.883 80.5512 132.307C77.1926 134.264 74.4337 134.203 72.2746 132.124C70.2354 130.167 70.8351 127.843 74.0738 125.153C75.8731 123.807 77.3725 122.095 78.572 120.016C79.7715 117.937 80.5512 115.797 80.9111 113.595C81.031 112.617 80.6112 112.128 79.6516 112.128C77.2525 112.005 74.7935 110.66 72.2746 108.092C69.7556 105.524 68.4961 102.344 68.4961 98.5524Z" fill="white"/>
|
||||
</g>
|
||||
<defs>
|
||||
<clipPath id="clip0_1479_150768">
|
||||
<rect width="167" height="167" fill="white"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
</svg>
|
Before Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 270 KiB |
Before Width: | Height: | Size: 5 KiB |
|
@ -1,11 +0,0 @@
|
|||
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<g clip-path="url(#clip0_1479_150771)">
|
||||
<path d="M0 1.75824C0 0.787192 0.754047 0 1.68421 0H14.3158C15.246 0 16 0.787192 16 1.75824V14.2418C16 15.2128 15.246 16 14.3158 16H1.68421C0.754047 16 0 15.2128 0 14.2418V1.75824Z" fill="black"/>
|
||||
<path d="M9.32066 4.57601C9.32066 4.96269 9.1885 5.29078 8.92418 5.56028C8.65985 5.82978 8.33807 5.96453 7.95882 5.96453C7.56808 5.96453 7.24055 5.82978 6.97622 5.56028C6.7119 5.29078 6.57974 4.96269 6.57974 4.57601C6.57974 4.18934 6.7119 3.86125 6.97622 3.59175C7.24055 3.32225 7.56808 3.1875 7.95882 3.1875C8.33807 3.1875 8.65985 3.32225 8.92418 3.59175C9.1885 3.86125 9.32066 4.18934 9.32066 4.57601ZM6.5625 9.44215C6.5625 9.05547 6.69466 8.72738 6.95899 8.45788C7.2348 8.17667 7.56808 8.03606 7.95882 8.03606C8.32657 8.03606 8.64836 8.17667 8.92418 8.45788C9.19999 8.72738 9.36088 9.03204 9.40685 9.37184C9.49879 10.0046 9.38387 10.6315 9.06208 11.2525C8.75179 11.8735 8.30359 12.3481 7.71748 12.6762C7.39569 12.8636 7.13137 12.8578 6.92451 12.6586C6.72914 12.4711 6.7866 12.2485 7.09689 11.9907C7.26928 11.8618 7.41293 11.6977 7.52786 11.4986C7.64278 11.2994 7.71748 11.0943 7.75196 10.8834C7.76345 10.7896 7.72323 10.7428 7.63129 10.7428C7.40144 10.7311 7.16585 10.6022 6.92451 10.3561C6.68317 10.11 6.5625 9.80539 6.5625 9.44215Z" fill="white"/>
|
||||
</g>
|
||||
<defs>
|
||||
<clipPath id="clip0_1479_150771">
|
||||
<rect width="16" height="16" fill="white"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
</svg>
|
Before Width: | Height: | Size: 1.5 KiB |
|
@ -1,11 +0,0 @@
|
|||
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<g clip-path="url(#clip0_1479_150770)">
|
||||
<path d="M0 3.51648C0 1.57438 1.50809 0 3.36842 0H28.6316C30.4919 0 32 1.57438 32 3.51648V28.4835C32 30.4256 30.4919 32 28.6316 32H3.36842C1.50809 32 0 30.4256 0 28.4835V3.51648Z" fill="black"/>
|
||||
<path d="M18.6413 9.15203C18.6413 9.92538 18.377 10.5816 17.8484 11.1206C17.3197 11.6596 16.6761 11.9291 15.9176 11.9291C15.1362 11.9291 14.4811 11.6596 13.9524 11.1206C13.4238 10.5816 13.1595 9.92538 13.1595 9.15203C13.1595 8.37868 13.4238 7.7225 13.9524 7.1835C14.4811 6.6445 15.1362 6.375 15.9176 6.375C16.6761 6.375 17.3197 6.6445 17.8484 7.1835C18.377 7.7225 18.6413 8.37868 18.6413 9.15203ZM13.125 18.8843C13.125 18.1109 13.3893 17.4548 13.918 16.9158C14.4696 16.3533 15.1362 16.0721 15.9176 16.0721C16.6531 16.0721 17.2967 16.3533 17.8484 16.9158C18.4 17.4548 18.7218 18.0641 18.8137 18.7437C18.9976 20.0092 18.7677 21.2629 18.1242 22.505C17.5036 23.747 16.6072 24.6961 15.435 25.3523C14.7914 25.7273 14.2627 25.7155 13.849 25.3172C13.4583 24.9422 13.5732 24.4969 14.1938 23.9814C14.5386 23.7236 14.8259 23.3955 15.0557 22.9971C15.2856 22.5987 15.435 22.1886 15.5039 21.7668C15.5269 21.5793 15.4465 21.4856 15.2626 21.4856C14.8029 21.4621 14.3317 21.2043 13.849 20.7122C13.3663 20.2201 13.125 19.6108 13.125 18.8843Z" fill="white"/>
|
||||
</g>
|
||||
<defs>
|
||||
<clipPath id="clip0_1479_150770">
|
||||
<rect width="32" height="32" fill="white"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
</svg>
|
Before Width: | Height: | Size: 1.5 KiB |
|
@ -1,4 +0,0 @@
|
|||
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M3.36842 0.5H28.6316C30.1957 0.5 31.5 1.83004 31.5 3.51648V28.4835C31.5 30.17 30.1957 31.5 28.6316 31.5H3.36842C1.80429 31.5 0.5 30.17 0.5 28.4835V3.51648C0.5 1.83004 1.80429 0.5 3.36842 0.5Z" fill="black"/>
|
||||
<path d="M18.6413 9.15203C18.6413 9.92538 18.377 10.5816 17.8484 11.1206C17.3197 11.6596 16.6761 11.9291 15.9176 11.9291C15.1362 11.9291 14.4811 11.6596 13.9524 11.1206C13.4238 10.5816 13.1595 9.92538 13.1595 9.15203C13.1595 8.37868 13.4238 7.7225 13.9524 7.1835C14.4811 6.6445 15.1362 6.375 15.9176 6.375C16.6761 6.375 17.3197 6.6445 17.8484 7.1835C18.377 7.7225 18.6413 8.37868 18.6413 9.15203ZM13.125 18.8843C13.125 18.1109 13.3893 17.4548 13.918 16.9158C14.4696 16.3533 15.1362 16.0721 15.9176 16.0721C16.6531 16.0721 17.2967 16.3533 17.8484 16.9158C18.4 17.4548 18.7218 18.0641 18.8137 18.7437C18.9976 20.0092 18.7677 21.2629 18.1242 22.505C17.5036 23.747 16.6072 24.6961 15.435 25.3523C14.7914 25.7273 14.2627 25.7155 13.849 25.3172C13.4583 24.9422 13.5732 24.4969 14.1938 23.9814C14.5386 23.7236 14.8259 23.3955 15.0557 22.9971C15.2856 22.5987 15.435 22.1886 15.5039 21.7668C15.5269 21.5793 15.4465 21.4856 15.2626 21.4856C14.8029 21.4621 14.3317 21.2043 13.849 20.7122C13.3663 20.2201 13.125 19.6108 13.125 18.8843Z" fill="white"/>
|
||||
</svg>
|
Before Width: | Height: | Size: 1.3 KiB |
|
@ -1,3 +0,0 @@
|
|||
<svg width="15" height="15" viewBox="0 0 15 15" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M6.85355 3.85355C7.04882 3.65829 7.04882 3.34171 6.85355 3.14645C6.65829 2.95118 6.34171 2.95118 6.14645 3.14645L2.14645 7.14645C1.95118 7.34171 1.95118 7.65829 2.14645 7.85355L6.14645 11.8536C6.34171 12.0488 6.65829 12.0488 6.85355 11.8536C7.04882 11.6583 7.04882 11.3417 6.85355 11.1464L3.20711 7.5L6.85355 3.85355ZM12.8536 3.85355C13.0488 3.65829 13.0488 3.34171 12.8536 3.14645C12.6583 2.95118 12.3417 2.95118 12.1464 3.14645L8.14645 7.14645C7.95118 7.34171 7.95118 7.65829 8.14645 7.85355L12.1464 11.8536C12.3417 12.0488 12.6583 12.0488 12.8536 11.8536C13.0488 11.6583 13.0488 11.3417 12.8536 11.1464L9.20711 7.5L12.8536 3.85355Z" fill="#2D2D2D"/>
|
||||
</svg>
|
Before Width: | Height: | Size: 805 B |
|
@ -1,3 +0,0 @@
|
|||
<svg width="15" height="15" viewBox="0 0 15 15" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M2.14645 10.6464C1.95118 10.8417 1.95118 11.1583 2.14645 11.3536C2.34171 11.5488 2.65829 11.5488 2.85355 11.3536L6.85355 7.35355C7.04882 7.15829 7.04882 6.84171 6.85355 6.64645L2.85355 2.64645C2.65829 2.45118 2.34171 2.45118 2.14645 2.64645C1.95118 2.84171 1.95118 3.15829 2.14645 3.35355L5.79289 7L2.14645 10.6464ZM8.14645 10.6464C7.95118 10.8417 7.95118 11.1583 8.14645 11.3536C8.34171 11.5488 8.65829 11.5488 8.85355 11.3536L12.8536 7.35355C13.0488 7.15829 13.0488 6.84171 12.8536 6.64645L8.85355 2.64645C8.65829 2.45118 8.34171 2.45118 8.14645 2.64645C7.95118 2.84171 7.95118 3.15829 8.14645 3.35355L11.7929 7L8.14645 10.6464Z" fill="#2D2D2D"/>
|
||||
</svg>
|
Before Width: | Height: | Size: 801 B |
|
@ -1,3 +0,0 @@
|
|||
<svg width="15" height="15" viewBox="0 0 15 15" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M11.8536 9.85355C11.6583 10.0488 11.3417 10.0488 11.1464 9.85355L7.5 6.20711L3.85355 9.85355C3.65829 10.0488 3.34171 10.0488 3.14645 9.85355C2.95118 9.65829 2.95118 9.34171 3.14645 9.14645L7.14645 5.14645C7.34171 4.95118 7.65829 4.95118 7.85355 5.14645L11.8536 9.14645C12.0488 9.34171 12.0488 9.65829 11.8536 9.85355Z" fill="#2D2D2D"/>
|
||||
</svg>
|
Before Width: | Height: | Size: 488 B |
|
@ -1,3 +0,0 @@
|
|||
<svg width="15" height="15" viewBox="0 0 15 15" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M12.8536 2.85355C13.0488 2.65829 13.0488 2.34171 12.8536 2.14645C12.6583 1.95118 12.3417 1.95118 12.1464 2.14645L7.5 6.79289L2.85355 2.14645C2.65829 1.95118 2.34171 1.95118 2.14645 2.14645C1.95118 2.34171 1.95118 2.65829 2.14645 2.85355L6.79289 7.5L2.14645 12.1464C1.95118 12.3417 1.95118 12.6583 2.14645 12.8536C2.34171 13.0488 2.65829 13.0488 2.85355 12.8536L7.5 8.20711L12.1464 12.8536C12.3417 13.0488 12.6583 13.0488 12.8536 12.8536C13.0488 12.6583 13.0488 12.3417 12.8536 12.1464L8.20711 7.5L12.8536 2.85355Z" fill="#2D2D2D"/>
|
||||
</svg>
|
Before Width: | Height: | Size: 684 B |
|
@ -1,12 +0,0 @@
|
|||
<svg width="15" height="15" viewBox="0 0 15 15" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<g clip-path="url(#clip0_1463_121087)">
|
||||
<path d="M4.08049 7.01221C4.32412 6.74984 4.65476 6.60162 5.00007 6.59998C5.34538 6.60162 5.67603 6.74984 5.91966 7.01221C6.16329 7.27459 6.30007 7.62974 6.30007 7.99998C6.30007 8.37021 6.16329 8.72536 5.91966 8.98774C5.67603 9.25011 5.34538 9.39833 5.00007 9.39998C4.65476 9.39833 4.32412 9.25011 4.08049 8.98774C3.83685 8.72536 3.70007 8.37021 3.70007 7.99998C3.70007 7.62974 3.83685 7.27459 4.08049 7.01221Z" fill="#2D2D2D"/>
|
||||
<path d="M9.07926 7.01221C9.3229 6.74984 9.65354 6.60162 9.99885 6.59998C10.3442 6.60162 10.6748 6.74984 10.9184 7.01221C11.1621 7.27459 11.2989 7.62974 11.2989 7.99998C11.2989 8.37021 11.1621 8.72536 10.9184 8.98774C10.6748 9.25011 10.3442 9.39833 9.99885 9.39998C9.65354 9.39833 9.3229 9.25011 9.07926 8.98774C8.83563 8.72536 8.69885 8.37021 8.69885 7.99998C8.69885 7.62974 8.83563 7.27459 9.07926 7.01221Z" fill="#2D2D2D"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M4.94586 1.80299C4.98973 1.79821 5.03403 1.79926 5.07761 1.80611C5.28859 1.83926 5.46936 1.94778 5.60153 2.04762C5.7413 2.15321 5.87082 2.28296 5.98238 2.41388C6.14069 2.59967 6.29436 2.8255 6.39564 3.04143C6.73494 3.01472 7.10264 3.00003 7.5 3.00003C7.89645 3.00003 8.26336 3.01465 8.602 3.04125C8.70328 2.82537 8.85692 2.59961 9.01518 2.41388C9.12674 2.28296 9.25626 2.15321 9.39603 2.04762C9.5282 1.94778 9.70897 1.83926 9.91994 1.80611C9.96353 1.79926 10.0078 1.79821 10.0517 1.80299C10.8961 1.89496 12.1787 2.34982 12.9359 2.76053C12.9881 2.78883 13.0348 2.8262 13.0739 2.87088C13.39 3.23226 13.6756 3.82072 13.899 4.37441C14.129 4.94414 14.3194 5.54458 14.428 5.97872C14.7812 7.39064 14.975 9.08579 15.0001 10.6923C15.0014 10.776 14.9816 10.8587 14.9427 10.9328C14.639 11.5102 13.9887 12.0436 13.3398 12.4324C12.6832 12.8258 11.9163 13.1378 11.2956 13.1977C11.1399 13.2128 10.9861 13.154 10.88 13.039C10.7243 12.8702 10.4611 12.478 10.2634 12.1753C10.1767 12.0426 10.0954 11.9158 10.0297 11.8126C9.3688 11.9317 8.54207 12.0002 7.50002 12.0002C6.45681 12.0002 5.62939 11.9315 4.96812 11.8122C4.90241 11.9155 4.82098 12.0425 4.73419 12.1753C4.53643 12.478 4.2733 12.8702 4.11752 13.039C4.01144 13.154 3.85765 13.2128 3.70193 13.1977C3.08127 13.1378 2.31435 12.8258 1.65781 12.4324C1.00888 12.0436 0.358561 11.5102 0.0548912 10.9328C0.0159279 10.8587 -0.00380681 10.776 -0.00250281 10.6923C0.0225233 9.08579 0.216388 7.39064 0.569535 5.97872C0.678122 5.54458 0.868566 4.94414 1.09852 4.37441C1.32199 3.82072 1.60757 3.23226 1.92364 2.87088C1.96272 2.8262 2.00944 2.78883 2.06162 2.76053C2.81887 2.34982 4.10147 1.89496 4.94586 1.80299ZM3.94943 11.5479C3.93225 11.5743 3.91476 11.6012 3.89705 11.6283C3.76696 11.8274 3.63866 12.0178 3.53827 12.1584C3.14641 12.0683 2.64965 11.8609 2.17176 11.5746C1.63205 11.2512 1.20654 10.881 0.99999 10.5682C1.03284 9.06493 1.21857 7.50509 1.53965 6.22136C1.63669 5.8334 1.81264 5.2769 2.02583 4.74869C2.22582 4.25319 2.43795 3.83541 2.62267 3.59495C3.26952 3.2605 4.28449 2.90752 4.94803 2.81071C4.96112 2.81866 4.97802 2.82988 4.99875 2.84554C5.06541 2.89589 5.14282 2.97044 5.22123 3.06246C5.25511 3.10222 5.28654 3.14206 5.31532 3.18102C5.02277 3.2357 4.76083 3.30049 4.52795 3.37214C3.84282 3.58295 3.34501 3.87336 3.1 4.20003C2.93431 4.42094 2.97909 4.73434 3.2 4.90003C3.42091 5.06572 3.73431 5.02094 3.9 4.80003C3.95499 4.7267 4.20717 4.51711 4.82204 4.32792C5.41424 4.1457 6.28795 4.00003 7.5 4.00003C8.71205 4.00003 9.58576 4.1457 10.178 4.32792C10.7928 4.51711 11.045 4.7267 11.1 4.80003C11.2657 5.02094 11.5791 5.06572 11.8 4.90003C12.0209 4.73434 12.0657 4.42094 11.9 4.20003C11.655 3.87336 11.1572 3.58295 10.472 3.37214C10.2386 3.30031 9.97595 3.23538 9.68254 3.18062C9.71124 3.14179 9.74257 3.10208 9.77633 3.06246C9.85474 2.97044 9.93215 2.89589 9.9988 2.84554C10.0195 2.82988 10.0364 2.81866 10.0495 2.81071C10.7131 2.90752 11.728 3.2605 12.3749 3.59495C12.5596 3.83541 12.7717 4.25319 12.9717 4.74869C13.1849 5.2769 13.3609 5.8334 13.4579 6.22136C13.779 7.50509 13.9647 9.06493 13.9976 10.5682C13.791 10.881 13.3655 11.2512 12.8258 11.5746C12.3479 11.8609 11.8511 12.0683 11.4593 12.1584C11.3589 12.0178 11.2306 11.8274 11.1005 11.6283C11.083 11.6014 11.0656 11.5748 11.0486 11.5486C11.8226 11.2697 12.2427 10.8875 12.5161 10.4775C12.6692 10.2477 12.6071 9.93731 12.3774 9.78413C12.1476 9.63095 11.8372 9.69304 11.684 9.9228C11.4284 10.3062 10.7547 11.0002 7.50002 11.0002C4.24536 11.0002 3.57163 10.3062 3.31605 9.92281C3.16288 9.69304 2.85244 9.63095 2.62268 9.78412C2.39291 9.9373 2.33082 10.2477 2.484 10.4775C2.7571 10.8872 3.17667 11.269 3.94943 11.5479Z" fill="#2D2D2D"/>
|
||||
</g>
|
||||
<defs>
|
||||
<clipPath id="clip0_1463_121087">
|
||||
<rect width="15" height="15" fill="white"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
</svg>
|
Before Width: | Height: | Size: 4.7 KiB |
|
@ -1,3 +0,0 @@
|
|||
<svg width="15" height="15" viewBox="0 0 15 15" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M6.85355 3.85355C7.04882 3.65829 7.04882 3.34171 6.85355 3.14645C6.65829 2.95118 6.34171 2.95118 6.14645 3.14645L2.14645 7.14645C1.95118 7.34171 1.95118 7.65829 2.14645 7.85355L6.14645 11.8536C6.34171 12.0488 6.65829 12.0488 6.85355 11.8536C7.04882 11.6583 7.04882 11.3417 6.85355 11.1464L3.20711 7.5L6.85355 3.85355ZM12.8536 3.85355C13.0488 3.65829 13.0488 3.34171 12.8536 3.14645C12.6583 2.95118 12.3417 2.95118 12.1464 3.14645L8.14645 7.14645C7.95118 7.34171 7.95118 7.65829 8.14645 7.85355L12.1464 11.8536C12.3417 12.0488 12.6583 12.0488 12.8536 11.8536C13.0488 11.6583 13.0488 11.3417 12.8536 11.1464L9.20711 7.5L12.8536 3.85355Z" fill="#2D2D2D"/>
|
||||
</svg>
|
Before Width: | Height: | Size: 805 B |
|
@ -1,3 +0,0 @@
|
|||
<svg width="15" height="15" viewBox="0 0 15 15" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M2.14645 10.6464C1.95118 10.8417 1.95118 11.1583 2.14645 11.3536C2.34171 11.5488 2.65829 11.5488 2.85355 11.3536L6.85355 7.35355C7.04882 7.15829 7.04882 6.84171 6.85355 6.64645L2.85355 2.64645C2.65829 2.45118 2.34171 2.45118 2.14645 2.64645C1.95118 2.84171 1.95118 3.15829 2.14645 3.35355L5.79289 7L2.14645 10.6464ZM8.14645 10.6464C7.95118 10.8417 7.95118 11.1583 8.14645 11.3536C8.34171 11.5488 8.65829 11.5488 8.85355 11.3536L12.8536 7.35355C13.0488 7.15829 13.0488 6.84171 12.8536 6.64645L8.85355 2.64645C8.65829 2.45118 8.34171 2.45118 8.14645 2.64645C7.95118 2.84171 7.95118 3.15829 8.14645 3.35355L11.7929 7L8.14645 10.6464Z" fill="#2D2D2D"/>
|
||||
</svg>
|
Before Width: | Height: | Size: 801 B |
|
@ -1,3 +0,0 @@
|
|||
<svg width="15" height="15" viewBox="0 0 15 15" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M11.1464 1.14645C11.3417 0.951184 11.6583 0.951184 11.8535 1.14645L13.8535 3.14645C14.0488 3.34171 14.0488 3.65829 13.8535 3.85355L9.91091 7.79618C9.83491 7.87218 9.74715 7.93543 9.65101 7.9835L5.72359 9.94721C5.53109 10.0435 5.29861 10.0057 5.14643 9.85355C4.99425 9.70137 4.95652 9.46889 5.05277 9.27639L7.01648 5.34897C7.06455 5.25283 7.1278 5.16507 7.2038 5.08907L11.1464 1.14645ZM11.5 2.20711L7.91091 5.79618L6.87266 7.87267L7.12731 8.12732L9.2038 7.08907L12.7929 3.5L11.5 2.20711ZM8.99998 2L7.99998 3H3.9C3.47171 3 3.18056 3.00039 2.95552 3.01877C2.73631 3.03668 2.62421 3.06915 2.54601 3.10899C2.35785 3.20487 2.20487 3.35785 2.10899 3.54601C2.06915 3.62421 2.03669 3.73631 2.01878 3.95552C2.00039 4.18056 2 4.47171 2 4.9V11.1C2 11.5283 2.00039 11.8194 2.01878 12.0445C2.03669 12.2637 2.06915 12.3758 2.10899 12.454C2.20487 12.6422 2.35785 12.7951 2.54601 12.891C2.62421 12.9309 2.73631 12.9633 2.95552 12.9812C3.18056 12.9996 3.47171 13 3.9 13H10.1C10.5283 13 10.8194 12.9996 11.0445 12.9812C11.2637 12.9633 11.3758 12.9309 11.454 12.891C11.6422 12.7951 11.7951 12.6422 11.891 12.454C11.9309 12.3758 11.9633 12.2637 11.9812 12.0445C11.9996 11.8194 12 11.5283 12 11.1V6.99998L13 5.99998V11.1V11.1207C13 11.5231 13 11.8553 12.9779 12.1259C12.9549 12.407 12.9057 12.6653 12.782 12.908C12.5903 13.2843 12.2843 13.5903 11.908 13.782C11.6653 13.9057 11.407 13.9549 11.1259 13.9779C10.8553 14 10.5231 14 10.1207 14H10.1H3.9H3.87934C3.47686 14 3.14468 14 2.87409 13.9779C2.59304 13.9549 2.33469 13.9057 2.09202 13.782C1.7157 13.5903 1.40973 13.2843 1.21799 12.908C1.09434 12.6653 1.04506 12.407 1.0221 12.1259C0.99999 11.8553 0.999995 11.5231 1 11.1207V11.1206V11.1V4.9V4.87935V4.87932V4.87931C0.999995 4.47685 0.99999 4.14468 1.0221 3.87409C1.04506 3.59304 1.09434 3.33469 1.21799 3.09202C1.40973 2.71569 1.7157 2.40973 2.09202 2.21799C2.33469 2.09434 2.59304 2.04506 2.87409 2.0221C3.14468 1.99999 3.47685 1.99999 3.87932 2H3.87935H3.9H8.99998Z" fill="black"/>
|
||||
</svg>
|
Before Width: | Height: | Size: 2.1 KiB |
|
@ -1,3 +0,0 @@
|
|||
<svg width="15" height="15" viewBox="0 0 15 15" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M7.49933 0.249978C3.49635 0.249978 0.25 3.49591 0.25 7.50022C0.25 10.703 2.32715 13.4206 5.2081 14.3797C5.57084 14.446 5.70302 14.2221 5.70302 14.0299C5.70302 13.8576 5.69679 13.4019 5.69323 12.797C3.67661 13.235 3.25112 11.825 3.25112 11.825C2.92132 10.9874 2.44599 10.7644 2.44599 10.7644C1.78773 10.3148 2.49584 10.3238 2.49584 10.3238C3.22353 10.3749 3.60629 11.071 3.60629 11.071C4.25298 12.1788 5.30335 11.8588 5.71638 11.6732C5.78225 11.205 5.96962 10.8854 6.17658 10.7043C4.56675 10.5209 2.87415 9.89915 2.87415 7.12102C2.87415 6.32923 3.15677 5.68254 3.62053 5.17561C3.54576 4.99224 3.29697 4.25518 3.69174 3.25689C3.69174 3.25689 4.30015 3.06194 5.68522 3.99971C6.26337 3.83904 6.8838 3.75893 7.50022 3.75581C8.1162 3.75893 8.73619 3.83904 9.31523 3.99971C10.6994 3.06194 11.3069 3.25689 11.3069 3.25689C11.7026 4.25518 11.4538 4.99224 11.3795 5.17561C11.8441 5.68254 12.1245 6.32923 12.1245 7.12102C12.1245 9.90628 10.4292 10.5191 8.81452 10.6985C9.07444 10.9224 9.30633 11.3648 9.30633 12.0413C9.30633 13.0102 9.29742 13.7922 9.29742 14.0299C9.29742 14.2239 9.42828 14.4496 9.79591 14.3788C12.6746 13.4179 14.75 10.7025 14.75 7.50022C14.75 3.49591 11.5036 0.249978 7.49933 0.249978" fill="#2D2D2D"/>
|
||||
</svg>
|
Before Width: | Height: | Size: 1.3 KiB |
|
@ -1,10 +0,0 @@
|
|||
<svg width="15" height="15" viewBox="0 0 15 15" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<g clip-path="url(#clip0_1464_121177)">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M7.5 0C7.77614 0 8 0.223858 8 0.5V2.5C8 2.77614 7.77614 3 7.5 3C7.22386 3 7 2.77614 7 2.5V0.5C7 0.223858 7.22386 0 7.5 0ZM2.1967 2.1967C2.39196 2.00144 2.70854 2.00144 2.90381 2.1967L4.31802 3.61091C4.51328 3.80617 4.51328 4.12276 4.31802 4.31802C4.12276 4.51328 3.80617 4.51328 3.61091 4.31802L2.1967 2.90381C2.00144 2.70854 2.00144 2.39196 2.1967 2.1967ZM0.5 7C0.223858 7 0 7.22386 0 7.5C0 7.77614 0.223858 8 0.5 8H2.5C2.77614 8 3 7.77614 3 7.5C3 7.22386 2.77614 7 2.5 7H0.5ZM2.1967 12.8033C2.00144 12.608 2.00144 12.2915 2.1967 12.0962L3.61091 10.682C3.80617 10.4867 4.12276 10.4867 4.31802 10.682C4.51328 10.8772 4.51328 11.1938 4.31802 11.3891L2.90381 12.8033C2.70854 12.9986 2.39196 12.9986 2.1967 12.8033ZM12.5 7C12.2239 7 12 7.22386 12 7.5C12 7.77614 12.2239 8 12.5 8H14.5C14.7761 8 15 7.77614 15 7.5C15 7.22386 14.7761 7 14.5 7H12.5ZM10.682 4.31802C10.4867 4.12276 10.4867 3.80617 10.682 3.61091L12.0962 2.1967C12.2915 2.00144 12.608 2.00144 12.8033 2.1967C12.9986 2.39196 12.9986 2.70854 12.8033 2.90381L11.3891 4.31802C11.1938 4.51328 10.8772 4.51328 10.682 4.31802ZM8 12.5C8 12.2239 7.77614 12 7.5 12C7.22386 12 7 12.2239 7 12.5V14.5C7 14.7761 7.22386 15 7.5 15C7.77614 15 8 14.7761 8 14.5V12.5ZM10.682 10.682C10.8772 10.4867 11.1938 10.4867 11.3891 10.682L12.8033 12.0962C12.9986 12.2915 12.9986 12.608 12.8033 12.8033C12.608 12.9986 12.2915 12.9986 12.0962 12.8033L10.682 11.3891C10.4867 11.1938 10.4867 10.8772 10.682 10.682ZM5.5 7.5C5.5 6.39543 6.39543 5.5 7.5 5.5C8.60457 5.5 9.5 6.39543 9.5 7.5C9.5 8.60457 8.60457 9.5 7.5 9.5C6.39543 9.5 5.5 8.60457 5.5 7.5ZM7.5 4.5C5.84315 4.5 4.5 5.84315 4.5 7.5C4.5 9.15685 5.84315 10.5 7.5 10.5C9.15685 10.5 10.5 9.15685 10.5 7.5C10.5 5.84315 9.15685 4.5 7.5 4.5Z" fill="#2D2D2D"/>
|
||||
</g>
|
||||
<defs>
|
||||
<clipPath id="clip0_1464_121177">
|
||||
<rect width="15" height="15" fill="white"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
</svg>
|
Before Width: | Height: | Size: 2 KiB |
|
@ -1,3 +0,0 @@
|
|||
<svg width="15" height="15" viewBox="0 0 15 15" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M1.5 3C1.22386 3 1 3.22386 1 3.5C1 3.77614 1.22386 4 1.5 4H13.5C13.7761 4 14 3.77614 14 3.5C14 3.22386 13.7761 3 13.5 3H1.5ZM1 7.5C1 7.22386 1.22386 7 1.5 7H13.5C13.7761 7 14 7.22386 14 7.5C14 7.77614 13.7761 8 13.5 8H1.5C1.22386 8 1 7.77614 1 7.5ZM1 11.5C1 11.2239 1.22386 11 1.5 11H13.5C13.7761 11 14 11.2239 14 11.5C14 11.7761 13.7761 12 13.5 12H1.5C1.22386 12 1 11.7761 1 11.5Z" fill="#2D2D2D"/>
|
||||
</svg>
|
Before Width: | Height: | Size: 552 B |
|
@ -1,3 +0,0 @@
|
|||
<svg width="15" height="15" viewBox="0 0 15 15" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M10 6.5C10 8.433 8.433 10 6.5 10C4.567 10 3 8.433 3 6.5C3 4.567 4.567 3 6.5 3C8.433 3 10 4.567 10 6.5ZM9.30884 10.0159C8.53901 10.6318 7.56251 11 6.5 11C4.01472 11 2 8.98528 2 6.5C2 4.01472 4.01472 2 6.5 2C8.98528 2 11 4.01472 11 6.5C11 7.56251 10.6318 8.53901 10.0159 9.30884L12.8536 12.1464C13.0488 12.3417 13.0488 12.6583 12.8536 12.8536C12.6583 13.0488 12.3417 13.0488 12.1464 12.8536L9.30884 10.0159Z" fill="black"/>
|
||||
</svg>
|
Before Width: | Height: | Size: 574 B |
|
@ -1,4 +0,0 @@
|
|||
<svg width="15" height="15" viewBox="0 0 15 15" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M7.23347 4.69633C7.23347 2.96887 8.63346 1.5686 10.3601 1.5686C12.3031 1.5686 13.4957 3.33048 13.4957 5.00083C13.4957 8.68713 10.6874 12.9746 5.52134 12.9746C3.93917 12.9746 2.46555 12.5111 1.22516 11.7152C1.02917 11.5895 0.945933 11.3451 1.02444 11.1258C1.10294 10.9066 1.3224 10.7706 1.55367 10.7978C1.74004 10.8198 1.92971 10.831 2.12221 10.831C2.82595 10.831 3.49398 10.6795 4.09587 10.4071C3.31987 10.0395 2.71968 9.36178 2.45469 8.53509C2.40426 8.37777 2.43497 8.20646 2.53511 8.07684C1.90532 7.50479 1.51 6.67941 1.51 5.76151V5.72768C1.51 5.55051 1.60376 5.38656 1.75646 5.29673C1.78736 5.27855 1.81973 5.26396 1.85301 5.25295C1.64719 4.83575 1.53143 4.366 1.53143 3.86966C1.53143 3.29809 1.68595 2.76085 1.95411 2.29827C2.03647 2.1562 2.18333 2.06363 2.34703 2.05061C2.51073 2.03759 2.67039 2.10578 2.77417 2.23305C3.86547 3.57129 5.44077 4.49586 7.23377 4.73964C7.23357 4.72523 7.23347 4.71079 7.23347 4.69633ZM2.63816 6.49033C2.88893 7.17798 3.48434 7.70032 4.21566 7.84714C4.44315 7.8928 4.60933 8.08897 4.61698 8.32087C4.62463 8.55276 4.47175 8.75946 4.24777 8.82002C4.09338 8.86177 3.93479 8.89191 3.77291 8.90972C4.15542 9.38625 4.73894 9.6946 5.3937 9.70616C5.60531 9.7099 5.79165 9.84646 5.85893 10.0471C5.92622 10.2478 5.85988 10.4691 5.69329 10.5996C5.05138 11.1027 4.3004 11.4734 3.48222 11.6703C4.12699 11.8681 4.81144 11.9746 5.52134 11.9746C10.0203 11.9746 12.4957 8.25712 12.4957 5.00083C12.4957 3.71212 11.5944 2.5686 10.3601 2.5686C9.18603 2.5686 8.23347 3.52088 8.23347 4.69633C8.23347 4.86287 8.25266 5.0252 8.28862 5.18287C8.32343 5.33551 8.28474 5.49565 8.18406 5.61556C8.08339 5.73546 7.93236 5.80129 7.776 5.79342C5.74502 5.69116 3.91635 4.83008 2.5654 3.48932C2.54308 3.61278 2.53143 3.73987 2.53143 3.86966C2.53143 4.60737 2.90661 5.25897 3.47769 5.64076C3.66328 5.76483 3.74413 5.9969 3.67582 6.20943C3.6075 6.42196 3.40657 6.56346 3.18345 6.55616C2.99723 6.55006 2.81498 6.52765 2.63816 6.49033Z" fill="#2D2D2D"/>
|
||||
<path d="M13.1965 3.56882C13.7282 3.5051 14.234 3.36413 14.7049 3.15549L14.7038 3.15718C14.3525 3.68329 13.907 4.14511 13.3939 4.51615L12.6833 2.75231C13.2816 2.63502 13.8438 2.41623 14.3513 2.11511C14.1551 2.72862 13.7389 3.24402 13.1965 3.56882Z" fill="#2D2D2D"/>
|
||||
</svg>
|
Before Width: | Height: | Size: 2.3 KiB |
Before Width: | Height: | Size: 153 KiB |
Before Width: | Height: | Size: 270 KiB |
Before Width: | Height: | Size: 218 KiB |
Before Width: | Height: | Size: 270 KiB |
Before Width: | Height: | Size: 179 KiB |
Before Width: | Height: | Size: 89 KiB |
Before Width: | Height: | Size: 168 KiB |
Before Width: | Height: | Size: 167 KiB |
|
@ -1,9 +0,0 @@
|
|||
<svg width="71" height="18" viewBox="0 0 71 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M0 1.97802C0 0.88559 0.848303 0 1.89474 0H16.1053C17.1517 0 18 0.885591 18 1.97802V16.022C18 17.1144 17.1517 18 16.1053 18H1.89474C0.848303 18 0 17.1144 0 16.022V1.97802ZM10.6264 5.14801C10.6264 5.58302 10.4777 5.95212 10.1803 6.25531C9.88296 6.5585 9.52095 6.71009 9.0943 6.71009C8.65471 6.71009 8.28624 6.5585 7.98888 6.25531C7.69151 5.95212 7.54283 5.58302 7.54283 5.14801C7.54283 4.71301 7.69151 4.34391 7.98888 4.04072C8.28624 3.73753 8.65471 3.58594 9.0943 3.58594C9.52095 3.58594 9.88296 3.73753 10.1803 4.04072C10.4777 4.34391 10.6264 4.71301 10.6264 5.14801ZM7.52344 10.6224C7.52344 10.1874 7.67212 9.81831 7.96948 9.51512C8.27978 9.19875 8.65471 9.04056 9.0943 9.04056C9.50802 9.04056 9.87003 9.19875 10.1803 9.51512C10.4906 9.81831 10.6716 10.161 10.7233 10.5433C10.8268 11.2552 10.6975 11.9604 10.3355 12.659C9.98639 13.3577 9.48216 13.8916 8.82279 14.2607C8.46078 14.4716 8.16342 14.465 7.9307 14.2409C7.71091 14.03 7.77555 13.7795 8.12463 13.4895C8.31856 13.3445 8.48017 13.16 8.60946 12.9359C8.73875 12.7118 8.82279 12.4811 8.86158 12.2438C8.87451 12.1384 8.82925 12.0856 8.72582 12.0856C8.46725 12.0724 8.2022 11.9274 7.9307 11.6506C7.65919 11.3738 7.52344 11.0311 7.52344 10.6224Z" fill="#000000" fill-opacity="1"/>
|
||||
<path d="M34.156 14.5761C34.2636 14.5761 34.3174 14.5223 34.3174 14.4147V12.2234C34.3174 12.0073 34.1422 11.8321 33.9261 11.8321H33.6424C33.5543 11.8321 33.4859 11.8076 33.437 11.7587C33.3978 11.7196 33.3783 11.6609 33.3783 11.5826V3.73207C33.3783 3.62446 33.3245 3.57065 33.2168 3.57065H30.7467C30.5306 3.57065 30.3554 3.74585 30.3554 3.96196V12.463C30.3554 13.1674 30.556 13.6957 30.9571 14.0478C31.3582 14.4 31.8717 14.5761 32.4978 14.5761H34.156Z" fill="#000000" fill-opacity="1"/>
|
||||
<path d="M29.0935 12.2087C29.0935 11.9926 28.9183 11.8174 28.7022 11.8174H27.6701C27.3375 11.8174 27.1125 11.7587 26.9951 11.6413C26.8484 11.5043 26.775 11.2842 26.775 10.981V9.68478C26.775 9.46867 26.9502 9.29348 27.1663 9.29348H28.7022C28.9183 9.29348 29.0935 9.11829 29.0935 8.90217V6.71087C29.0935 6.60326 29.0397 6.54946 28.9321 6.54946H27.1663C26.9502 6.54946 26.775 6.37426 26.775 6.15815V4.46576C26.775 4.35815 26.7212 4.30435 26.6136 4.30435H24.2315C24.0154 4.30435 23.8402 4.47954 23.8402 4.69565V6.15815C23.8402 6.37426 23.665 6.54946 23.4489 6.54946H23.087C22.8708 6.54946 22.6957 6.72465 22.6957 6.94076V9.13207C22.6957 9.23967 22.7495 9.29348 22.8571 9.29348H23.4489C23.665 9.29348 23.8402 9.46867 23.8402 9.68478V11.2011C23.8402 12.3359 24.1386 13.1821 24.7353 13.7397C25.3321 14.2973 26.1978 14.5761 27.3326 14.5761H28.9321C29.0397 14.5761 29.0935 14.5223 29.0935 14.4147V12.2087Z" fill="#000000" fill-opacity="1"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M37.6867 6.40272C38.1367 6.40272 38.5231 6.51522 38.8459 6.74022C39.1499 6.94586 39.4008 7.21279 39.5985 7.54101C39.6332 7.59855 39.6947 7.63533 39.7619 7.63533C39.8638 7.63533 39.9464 7.55268 39.9464 7.45074V3.96196C39.9464 3.74584 40.1216 3.57065 40.3377 3.57065H42.7198C42.8274 3.57065 42.8812 3.62446 42.8812 3.73207V14.1848C42.8812 14.4009 42.706 14.5761 42.4899 14.5761H40.1079C40.0002 14.5761 39.9464 14.5223 39.9464 14.4147V13.5333C39.9464 13.4285 39.8614 13.3435 39.7566 13.3435C39.692 13.3435 39.6321 13.3765 39.596 13.4301C39.3462 13.8013 39.0668 14.1051 38.7579 14.3413C38.4252 14.5957 38.0095 14.7228 37.5106 14.7228C36.8356 14.7228 36.3024 14.4929 35.9111 14.0332C35.5198 13.5734 35.3242 12.9571 35.3242 12.1842V9.10272C35.3242 8.26141 35.5247 7.60109 35.9258 7.12174C36.3367 6.64239 36.9236 6.40272 37.6867 6.40272ZM38.4204 11.9348C38.528 12.0522 38.7187 12.1109 38.9926 12.1109C39.2693 12.1109 39.5126 12.0774 39.7224 12.0105C39.8636 11.9655 39.9464 11.8265 39.9464 11.6783V9.35616C39.9464 9.22533 39.8827 9.09961 39.7647 9.04299C39.6723 8.9986 39.5763 8.9647 39.4769 8.94131C39.3106 8.89239 39.1492 8.86793 38.9926 8.86793C38.4937 8.86793 38.2443 9.11739 38.2443 9.6163V11.3772C38.2443 11.6413 38.303 11.8272 38.4204 11.9348Z" fill="#000000" fill-opacity="1"/>
|
||||
<path d="M47.1839 14.5761C47.4001 14.5761 47.5752 14.4009 47.5752 14.1848V10.0559C47.5752 9.91955 47.6451 9.79072 47.7678 9.73131C47.8883 9.67299 48.0148 9.62487 48.1475 9.58696C48.353 9.51848 48.5829 9.48424 48.8372 9.48424C49.0231 9.48424 49.1992 9.49891 49.3655 9.52826C49.5291 9.55553 49.6884 9.59123 49.8436 9.63539C49.8671 9.64209 49.8915 9.64565 49.916 9.64565C50.0577 9.64565 50.1725 9.5308 50.1725 9.38912V6.71087C50.1725 6.64239 50.1481 6.5837 50.0992 6.53478C50.0698 6.50544 50.016 6.47609 49.9378 6.44674C49.8595 6.41739 49.7421 6.40272 49.5856 6.40272C49.1258 6.40272 48.7589 6.54457 48.485 6.82826C48.2423 7.07994 48.0533 7.44725 47.918 7.93019C47.8966 8.00665 47.8277 8.06087 47.7483 8.06087C47.6527 8.06087 47.5752 7.9834 47.5752 7.88783V6.71087C47.5752 6.60326 47.5214 6.54946 47.4138 6.54946H44.9878C44.7716 6.54946 44.5964 6.72465 44.5964 6.94076V14.4147C44.5964 14.5223 44.6502 14.5761 44.7579 14.5761H47.1839Z" fill="#000000" fill-opacity="1"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M58.368 9.41087V11.788C58.368 11.9085 58.4096 11.9874 58.4929 12.0246C58.5165 12.0351 58.5407 12.0441 58.5651 12.0526C58.5923 12.0621 58.6196 12.0668 58.6468 12.0668H58.6664C58.8825 12.0668 59.0577 12.242 59.0577 12.4582V14.4147C59.0577 14.5223 59.0039 14.5761 58.8963 14.5761H57.9131C57.4338 14.5761 56.9936 14.4783 56.5925 14.2826C56.2443 14.1085 55.9774 13.857 55.7919 13.528C55.7494 13.4526 55.6716 13.4022 55.585 13.4022C55.5009 13.4022 55.4244 13.4497 55.3826 13.5227C55.1746 13.8859 54.9029 14.1735 54.5675 14.3853C54.2055 14.6103 53.7408 14.7228 53.1734 14.7228C52.4887 14.7228 51.9457 14.537 51.5446 14.1652C51.1436 13.7935 50.943 13.2897 50.943 12.6538V12.0815C50.943 11.3967 51.1436 10.8587 51.5446 10.4674C51.9555 10.0761 52.5327 9.88044 53.2762 9.88044H55.3305C55.444 9.88044 55.5359 9.78846 55.5359 9.675C55.5359 9.33261 55.443 9.10272 55.2571 8.98533C55.0811 8.85815 54.7387 8.79457 54.23 8.79457C53.3815 8.79457 52.5424 8.91812 51.7129 9.16522C51.6889 9.17237 51.664 9.17609 51.6389 9.17609C51.4977 9.17609 51.3832 9.06162 51.3832 8.92041V7.0337C51.3832 6.96522 51.3979 6.9163 51.4273 6.88696C51.4957 6.81848 51.6816 6.74511 51.9849 6.66685C52.2979 6.58859 52.6745 6.52011 53.1148 6.46141C53.5647 6.39294 54.0245 6.3587 54.4941 6.3587C55.8343 6.3587 56.8126 6.60326 57.4289 7.09239C58.055 7.57174 58.368 8.34457 58.368 9.41087ZM54.1566 12.6098C54.5823 12.6098 54.9796 12.5136 55.3484 12.3213C55.4677 12.259 55.5359 12.1319 55.5359 11.9972V11.6951C55.5359 11.479 55.3608 11.3038 55.1446 11.3038H54.1859C54.0196 11.3038 53.8925 11.3478 53.8044 11.4359C53.7262 11.5337 53.687 11.6511 53.687 11.788V12.1402C53.687 12.4533 53.8436 12.6098 54.1566 12.6098Z" fill="#000000" fill-opacity="1"/>
|
||||
<path d="M64.2831 6.54946C64.1006 6.54946 63.9423 6.67566 63.9017 6.85362C63.6938 7.76648 63.5017 8.62378 63.3255 9.42554C63.1518 10.2575 63.0208 11.0466 62.9326 11.7931C62.922 11.8821 62.8468 11.9495 62.7573 11.9495C62.6585 11.9495 62.5792 11.8681 62.5807 11.7694C62.5921 11.0174 62.5616 10.2655 62.4891 9.51359C62.4206 8.70163 62.3326 7.79674 62.225 6.79891C62.2152 6.69131 62.1956 6.62283 62.1663 6.59348C62.1369 6.56413 62.0929 6.54946 62.0342 6.54946H59.9316C59.6887 6.54946 59.5045 6.76857 59.5457 7.008C59.7421 8.14646 59.9308 9.28491 60.1119 10.4234C60.3271 11.7147 60.5424 12.9571 60.7576 14.1505C60.7911 14.3014 60.8282 14.4092 60.8689 14.4739C60.8815 14.4939 60.8984 14.5108 60.918 14.5242C60.9687 14.5588 61.0228 14.5761 61.0804 14.5761H63.6985C63.8764 14.5761 64.032 14.456 64.0769 14.2839C64.1528 13.9935 64.2202 13.7339 64.2793 13.5049C64.3576 13.2016 64.426 12.9033 64.4847 12.6098C64.5434 12.3163 64.6021 11.9935 64.6608 11.6413C64.7227 11.3145 64.7885 10.9198 64.8583 10.4574C64.8714 10.3704 64.9461 10.306 65.034 10.306C65.1228 10.306 65.1979 10.3717 65.2098 10.4597C65.2695 10.902 65.3213 11.2812 65.3652 11.5973C65.4239 11.9397 65.4777 12.2429 65.5266 12.5071C65.5853 12.7614 65.644 13.0207 65.7027 13.2848C65.7614 13.5391 65.8299 13.8326 65.9081 14.1652C65.95 14.3076 65.9919 14.4106 66.0338 14.4741C66.0468 14.4939 66.0637 14.5108 66.0832 14.5242C66.1339 14.5588 66.188 14.5761 66.2456 14.5761H68.9092C69.0998 14.5761 69.2627 14.4388 69.2949 14.251L69.9141 10.6435C70.1391 9.33261 70.3592 8.03152 70.5744 6.74022C70.5842 6.61304 70.5402 6.54946 70.4424 6.54946H68.1855C67.9841 6.54946 67.8155 6.70245 67.7962 6.90299C67.712 7.77975 67.6353 8.61081 67.5663 9.3962C67.5027 10.2129 67.4729 11.0044 67.4767 11.7706C67.4772 11.8691 67.3978 11.9495 67.2993 11.9495C67.2091 11.9495 67.1334 11.8815 67.123 11.7918C67.0341 11.0294 66.8982 10.2455 66.7152 9.44022C66.5293 8.57935 66.3239 7.66957 66.0989 6.71087C66.0695 6.60326 66.0108 6.54946 65.9228 6.54946H64.2831Z" fill="#000000" fill-opacity="1"/>
|
||||
</svg>
|
Before Width: | Height: | Size: 8.7 KiB |
Before Width: | Height: | Size: 5.3 KiB |
Before Width: | Height: | Size: 5.2 KiB |
Before Width: | Height: | Size: 4.9 KiB |
|
@ -1,128 +0,0 @@
|
|||
import { ApiModel } from '@microsoft/api-extractor-model'
|
||||
import fs from 'fs'
|
||||
import path from 'path'
|
||||
import { Articles, GeneratedContent, InputSection, MarkdownContent } from '../types/content-types'
|
||||
import { generateSection } from './generateSection'
|
||||
import { getApiMarkdown } from './getApiMarkdown'
|
||||
import { getSlug } from './utils'
|
||||
|
||||
const { log: nicelog } = console
|
||||
|
||||
async function generateApiDocs() {
|
||||
const apiInputSection: InputSection = {
|
||||
id: 'gen' as string,
|
||||
title: 'API',
|
||||
description: "Reference for the tldraw package's APIs (generated).",
|
||||
categories: [],
|
||||
}
|
||||
|
||||
const addedCategories = new Set<string>()
|
||||
|
||||
const OUTPUT_DIR = path.join(process.cwd(), 'content', 'gen')
|
||||
|
||||
if (fs.existsSync(OUTPUT_DIR)) {
|
||||
fs.rmdirSync(OUTPUT_DIR, { recursive: true })
|
||||
}
|
||||
|
||||
fs.mkdirSync(OUTPUT_DIR)
|
||||
|
||||
// to include more packages in docs, add them to devDependencies in package.json
|
||||
const packageJson = JSON.parse(fs.readFileSync(path.join(process.cwd(), 'package.json'), 'utf8'))
|
||||
const tldrawPackagesToIncludeInDocs = Object.keys(packageJson.devDependencies).filter((dep) =>
|
||||
dep.startsWith('@tldraw/')
|
||||
)
|
||||
|
||||
const model = new ApiModel()
|
||||
for (const packageName of tldrawPackagesToIncludeInDocs) {
|
||||
// Get the file contents
|
||||
const filePath = path.join(
|
||||
process.cwd(),
|
||||
'..',
|
||||
'..',
|
||||
'packages',
|
||||
packageName.replace('@tldraw/', ''),
|
||||
'api',
|
||||
'api.json'
|
||||
)
|
||||
|
||||
const packageModel = model.loadPackage(filePath)
|
||||
|
||||
const categoryName = packageModel.name.replace(`@tldraw/`, '')
|
||||
|
||||
if (!addedCategories.has(categoryName)) {
|
||||
apiInputSection.categories!.push({
|
||||
id: categoryName,
|
||||
title: packageModel.name,
|
||||
description: '',
|
||||
groups: [
|
||||
{
|
||||
id: 'Namespace',
|
||||
title: 'Namespaces',
|
||||
},
|
||||
{
|
||||
id: 'Class',
|
||||
title: 'Classes',
|
||||
},
|
||||
{
|
||||
id: 'Function',
|
||||
title: 'Functions',
|
||||
},
|
||||
{
|
||||
id: 'Variable',
|
||||
title: 'Variables',
|
||||
},
|
||||
{
|
||||
id: 'Enum',
|
||||
title: 'Enums',
|
||||
},
|
||||
{
|
||||
id: 'Interface',
|
||||
title: 'Interfaces',
|
||||
},
|
||||
{
|
||||
id: 'TypeAlias',
|
||||
title: 'TypeAliases',
|
||||
},
|
||||
],
|
||||
})
|
||||
addedCategories.add(categoryName)
|
||||
}
|
||||
|
||||
const entrypoint = packageModel.entryPoints[0]
|
||||
|
||||
for (let j = 0; j < entrypoint.members.length; j++) {
|
||||
const item = entrypoint.members[j]
|
||||
const result = await getApiMarkdown(categoryName, item, j)
|
||||
const outputFileName = `${getSlug(item)}.mdx`
|
||||
fs.writeFileSync(path.join(OUTPUT_DIR, outputFileName), result.markdown)
|
||||
}
|
||||
}
|
||||
|
||||
return apiInputSection
|
||||
}
|
||||
|
||||
export async function generateApiContent(): Promise<GeneratedContent> {
|
||||
const content: MarkdownContent = {}
|
||||
const articles: Articles = {}
|
||||
|
||||
try {
|
||||
nicelog('• Generating api docs site content (content.json)')
|
||||
|
||||
const inputApiSection = await generateApiDocs()
|
||||
const outputApiSection = generateSection(inputApiSection, content, articles)
|
||||
const contentComplete = { sections: [outputApiSection], content, articles }
|
||||
|
||||
fs.writeFileSync(
|
||||
path.join(process.cwd(), 'api-content.json'),
|
||||
JSON.stringify(contentComplete, null, 2)
|
||||
)
|
||||
|
||||
nicelog('✔ Generated api content.')
|
||||
|
||||
return contentComplete
|
||||
} catch (error) {
|
||||
nicelog(`x Could not generate site content.`)
|
||||
|
||||
throw error
|
||||
}
|
||||
}
|
|
@ -1,6 +0,0 @@
|
|||
{
|
||||
"extends": "./tsconfig.json",
|
||||
"compilerOptions": {
|
||||
"module": "commonjs"
|
||||
}
|
||||
}
|
|
@ -1,24 +0,0 @@
|
|||
{
|
||||
"compilerOptions": {
|
||||
"target": "es5",
|
||||
"lib": ["dom", "dom.iterable", "esnext"],
|
||||
"allowJs": true,
|
||||
"skipLibCheck": true,
|
||||
"strict": true,
|
||||
"forceConsistentCasingInFileNames": true,
|
||||
"noEmit": true,
|
||||
"esModuleInterop": true,
|
||||
"module": "esnext",
|
||||
"moduleResolution": "node",
|
||||
"resolveJsonModule": true,
|
||||
"isolatedModules": true,
|
||||
"jsx": "preserve",
|
||||
"incremental": true,
|
||||
"paths": {
|
||||
"@/*": ["./*"]
|
||||
}
|
||||
},
|
||||
"include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", "content.d.ts"],
|
||||
"exclude": ["node_modules"],
|
||||
"references": [{ "path": "../../packages/utils" }]
|
||||
}
|
|
@ -1,7 +0,0 @@
|
|||
export type SearchResult = {
|
||||
type: 'article' | 'category' | 'section'
|
||||
id: string
|
||||
subtitle: string
|
||||
title: string
|
||||
url: string
|
||||
}
|
|
@ -1,124 +0,0 @@
|
|||
import { serialize } from 'next-mdx-remote/serialize'
|
||||
import rehypeAutolinkHeadings from 'rehype-autolink-headings'
|
||||
import rehypeHighlight from 'rehype-highlight'
|
||||
import rehypeSlug from 'rehype-slug-custom-id'
|
||||
import remarkGfm from 'remark-gfm'
|
||||
import { scope } from '../components/mdx-components'
|
||||
import { Article, GeneratedContent, Section, Status } from '../types/content-types'
|
||||
|
||||
import jsonContent from '../content.json' // this won't be here until we've run generate-content
|
||||
|
||||
export async function getMdxSource(source: string) {
|
||||
return serialize(source, {
|
||||
scope,
|
||||
mdxOptions: {
|
||||
remarkPlugins: [remarkGfm],
|
||||
rehypePlugins: [
|
||||
rehypeHighlight,
|
||||
rehypeAutolinkHeadings,
|
||||
[rehypeSlug, { enableCustomId: true, maintainCase: false, removeAccents: true }],
|
||||
],
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
export async function getContent(): Promise<GeneratedContent> {
|
||||
return jsonContent as any
|
||||
}
|
||||
|
||||
export async function getMarkdownContent() {
|
||||
return (await getContent()).content as Record<string, string>
|
||||
}
|
||||
|
||||
export async function getArticles() {
|
||||
return (await getContent()).articles as Record<string, Article>
|
||||
}
|
||||
|
||||
export async function getSections() {
|
||||
return (await getContent()).sections as Section[]
|
||||
}
|
||||
|
||||
export async function getSection(sectionId: string) {
|
||||
const sections = await getSections()
|
||||
return sections.find((section) => section.id === sectionId)!
|
||||
}
|
||||
|
||||
export async function getCategories(sectionId: string) {
|
||||
return Object.values((await getSection(sectionId)).categories!)
|
||||
}
|
||||
|
||||
export async function getCategory(sectionId: string, id: string) {
|
||||
return (await getSection(sectionId)).categories!.find((c) => c.id === id)!
|
||||
}
|
||||
|
||||
export async function getCategoryItems(sectionId: string, id: string) {
|
||||
const section = await getSection(sectionId)
|
||||
const category = section.categories!.find((c) => c.id === id)!
|
||||
const articles = await getArticles()
|
||||
return category.articleIds.map((id) => articles[id])
|
||||
}
|
||||
|
||||
export async function getArticle(articleId: string) {
|
||||
const article = (await getArticles())[articleId]
|
||||
if (process.env.NODE_ENV !== 'development' && article.status !== Status.Published) {
|
||||
throw Error(`Could not find a article with articleId ${articleId}`)
|
||||
}
|
||||
return article
|
||||
}
|
||||
|
||||
export async function getArticleSource(articleId: string) {
|
||||
const markdown = await getMarkdownContent()
|
||||
return getMdxSource(markdown[articleId])
|
||||
}
|
||||
|
||||
export async function getLinks(articleId: string) {
|
||||
const article = (await getArticles())[articleId]
|
||||
if (!article) throw Error(`Could not find a article with articleId ${articleId}`)
|
||||
return {
|
||||
prev: article.prev ? await getArticle(article.prev) : null,
|
||||
next: article.next ? await getArticle(article.next) : null,
|
||||
}
|
||||
}
|
||||
|
||||
export async function getArticlePathsForSection(sectionId: string) {
|
||||
const section = await getSection(sectionId)
|
||||
return section.categories.map((category) => ({
|
||||
params: { sectionId, categoryId: category.id },
|
||||
}))
|
||||
}
|
||||
|
||||
export async function getArticlePathsForCategory(sectionId: string, categoryId: string) {
|
||||
const section = await getSection(sectionId)
|
||||
const category = section.categories!.find((c) => c.id === categoryId)!
|
||||
return category.articleIds.map((articleId) => ({
|
||||
params: { sectionId, categoryId, articleId },
|
||||
}))
|
||||
}
|
||||
|
||||
export async function getCategoryPaths(sectionId: string) {
|
||||
const section = await getSection(sectionId)
|
||||
const results: { params: { sectionId: string; categoryId: string } }[] = []
|
||||
if (section.categories) {
|
||||
for (const category of section.categories) {
|
||||
// for (const articleId of category.articleIds) {
|
||||
results.push({ params: { sectionId, categoryId: category.id } })
|
||||
// }
|
||||
}
|
||||
}
|
||||
|
||||
return results
|
||||
}
|
||||
|
||||
export async function getAllSlugsForSection(sectionId: string) {
|
||||
const section = await getSection(sectionId)
|
||||
const results: { params: { sectionId: string; categoryId: string; articleId: string } }[] = []
|
||||
if (section.categories) {
|
||||
for (const category of section.categories) {
|
||||
for (const articleId of category.articleIds) {
|
||||
results.push({ params: { sectionId, categoryId: category.id, articleId } })
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return results
|
||||
}
|
|
@ -1,28 +0,0 @@
|
|||
export const GA_TRACKING_ID = process.env.GA_MEASUREMENT_ID
|
||||
|
||||
type GTagEvent = {
|
||||
action: string
|
||||
category: string
|
||||
label: string
|
||||
value: number
|
||||
}
|
||||
|
||||
export const pageview = (url: URL): void => {
|
||||
if ('gtag' in window) {
|
||||
const win = window as any
|
||||
win?.gtag('config', GA_TRACKING_ID, {
|
||||
page_path: url,
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
export const event = ({ action, category, label, value }: GTagEvent): void => {
|
||||
if ('gtag' in window) {
|
||||
const win = window as any
|
||||
win?.gtag('event', action, {
|
||||
event_category: category,
|
||||
event_label: label,
|
||||
value: value,
|
||||
})
|
||||
}
|
||||
}
|
|
@ -1,19 +0,0 @@
|
|||
import router from 'next/router'
|
||||
import { useEffect } from 'react'
|
||||
import * as gtag from './gtag'
|
||||
|
||||
function handleRouteChange(url: URL) {
|
||||
gtag.pageview(url)
|
||||
}
|
||||
|
||||
export default function useGtag() {
|
||||
useEffect(() => {
|
||||
if (process.env.NODE_ENV !== 'production') return
|
||||
|
||||
router.events.on('routeChangeComplete', handleRouteChange)
|
||||
|
||||
return () => {
|
||||
router.events.off('routeChangeComplete', handleRouteChange)
|
||||
}
|
||||
}, [])
|
||||
}
|
29
docs/docs/installation.mdx
Normal file
|
@ -0,0 +1,29 @@
|
|||
---
|
||||
title: Installation
|
||||
status: published
|
||||
author: steveruizok
|
||||
date: 3/22/2023
|
||||
order: 1
|
||||
---
|
||||
|
||||
At the moment the `@tldraw/tldraw` package is in alpha. We also ship a canary version which is always up to date with the main branch of tldraw [repository](https://github.com/tldraw/tldraw).
|
||||
|
||||
## Alpha
|
||||
|
||||
First, install the `@tldraw/tldraw` package using `@alpha` for the latest.
|
||||
|
||||
```bash
|
||||
yarn add @tldraw/tldraw@alpha
|
||||
# or
|
||||
npm install @tldraw/tldraw@alpha
|
||||
```
|
||||
|
||||
## Canary
|
||||
|
||||
To get the very latest version, use the [latest canary release](https://www.npmjs.com/package/@tldraw/tldraw?activeTab=versions). Docs for the very latest version are also available at [canary.tldraw.dev](https://canary.tldraw.dev).
|
||||
|
||||
```bash
|
||||
yarn add @tldraw/tldraw@canary
|
||||
# or
|
||||
npm install @tldraw/tldraw@canary
|
||||
```
|
50
docs/docs/introduction.mdx
Normal file
|
@ -0,0 +1,50 @@
|
|||
---
|
||||
title: Introduction
|
||||
status: published
|
||||
author: steveruizok
|
||||
date: 3/22/2023
|
||||
order: 0
|
||||
---
|
||||
|
||||
Welcome to the tldraw developer docs.
|
||||
|
||||
Here at tldraw, we make two things: a very good multiplayer whiteboard (at [tldraw.com](https://tldraw.com)), and the [open source library](https://github.com/tldraw/tldraw) that powers it. This page provides documentation and reference for that open source library.
|
||||
|
||||
```tsx
|
||||
import { Tldraw } from '@tldraw/tldraw'
|
||||
import '@tldraw/tldraw/tldraw.css'
|
||||
|
||||
export default function () {
|
||||
return (
|
||||
<div style={{ position: 'fixed', inset: 0 }}>
|
||||
<Tldraw />
|
||||
</div>
|
||||
)
|
||||
}
|
||||
```
|
||||
|
||||
You can use the `<Tldraw>` React component to build on top of the default tldraw experience. It's easy to use and easy to extend with your own [custom shapes](/docs/shapes), [custom tools](/docs/tools), and [user interface](/docs/user-interface) overrides.
|
||||
|
||||
You can also use the [Editor API](/docs/editor) to create, update, and delete shapes, control the camera, or do just about anything else.
|
||||
|
||||
If you want to go even deeper, you can use the `<TldrawEditor>` component as a more minimal engine without the default tldraw shapes or user interface.
|
||||
|
||||
|
||||
Best of all, you can easily plug tldraw into the [collaboration backend](/docs/collaboration) of your choice.
|
||||
|
||||
- Want to explore the code? Visit the [GitHub repo](https://github.com/tldraw/tldraw).
|
||||
- Want to try it out? Visit the [examples sandbox](https://stackblitz.com/github/tldraw/tldraw/tree/examples?file=src%2F1-basic%2FBasicExample.tsx).
|
||||
|
||||
Otherwise, continue on to the [installation](/docs/installation) and [usage](/docs/usage) guides.
|
||||
|
||||
## Community
|
||||
|
||||
Found a bug or want to request a feature? Create an issue [here](https://github.com/tldraw/tldraw/issues). To connect with the team and other users, join us on our [Discord](https://discord.gg/JMbeb96jsh).
|
||||
|
||||
If you spot an issue with these docs, please use the links at the bottom of each page to suggest a change.
|
||||
|
||||
## License
|
||||
|
||||
Our open source libraries are licensed and distributed under Apache-2.0.
|
||||
|
||||
Our plan is to keep these libraries permissively licensed while we develop a commercial offering for teams who want more from tldraw. If you're planning to use use tldraw in a commercial product, please reach out at [hello@tldraw.com](mailto://hello@tldraw.com).
|
48
docs/docs/usage.mdx
Normal file
|
@ -0,0 +1,48 @@
|
|||
---
|
||||
title: Usage
|
||||
status: published
|
||||
author: steveruizok
|
||||
date: 3/22/2023
|
||||
order: 2
|
||||
---
|
||||
|
||||
The `<Tldraw>` component is the easiest way to get started. To use it, create a file like this one:
|
||||
|
||||
```tsx
|
||||
import { Tldraw } from '@tldraw/tldraw'
|
||||
import '@tldraw/tldraw/tldraw.css'
|
||||
|
||||
export default function () {
|
||||
return (
|
||||
<div style={{ position: 'fixed', inset: 0 }} >
|
||||
<Tldraw />
|
||||
</div>
|
||||
)
|
||||
}
|
||||
```
|
||||
|
||||
### CSS
|
||||
|
||||
In order to use the `<Tldraw>` component, you should also import the `tldraw.css` file from the `@tldraw/tldraw` package. You can alternatively import this file inside of another CSS file using the `@import` syntax.
|
||||
|
||||
You can overwrite these files with other CSS or copy the contents into a different file and import that instead.
|
||||
|
||||
### HTML
|
||||
|
||||
If you're using the `<Tldraw>` component in a full-screen app, you probably also want to update your `index.html`'s meta viewport element as shown below.
|
||||
|
||||
```html
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" />
|
||||
```
|
||||
|
||||
This may not be critical to `<Tldraw>` performing correctly, however some features (such as safe area positioning) will only work correctly if these viewport options are set.
|
||||
|
||||
## Using in Next.js, Create React App, Vite, etc.
|
||||
|
||||
Check the [examples repository](https://github.com/tldraw/examples) to see examples of tldraw being used in various frameworks.
|
||||
|
||||
By the way, the `<Tldraw>` component can't be server-rendered. If you're using the component in a server-rendered framework (such as Next.js) then you need to import it dynamically.
|
||||
|
||||
## Going deeper
|
||||
|
||||
The `<Tldraw>` component combines two lower-level components: `<TldrawEditor>` and `<TldrawUi>`. If you want to have more granular control, you can use those lower-level components directly. See [this example](https://github.com/tldraw/tldraw/blob/main/apps/examples/src/5-exploded/ExplodedExample.tsx) for reference.
|
20
docs/gen/ACCEPTED_ASSET_TYPE-var.mdx
Normal file
|
@ -0,0 +1,20 @@
|
|||
---
|
||||
title: ACCEPTED_ASSET_TYPE
|
||||
status: published
|
||||
category: editor
|
||||
group: Variable
|
||||
author: api
|
||||
date: 06/23/2023
|
||||
order: 0
|
||||
---<Small>Public Readonly Variable</Small>
|
||||
|
||||
|
||||
|
||||
|
||||
##### Signature
|
||||
|
||||
|
||||
```ts
|
||||
ACCEPTED_ASSET_TYPE: string
|
||||
```
|
||||
|
20
docs/gen/ACCEPTED_IMG_TYPE-var.mdx
Normal file
|
@ -0,0 +1,20 @@
|
|||
---
|
||||
title: ACCEPTED_IMG_TYPE
|
||||
status: published
|
||||
category: editor
|
||||
group: Variable
|
||||
author: api
|
||||
date: 06/23/2023
|
||||
order: 1
|
||||
---<Small>Public Readonly Variable</Small>
|
||||
|
||||
|
||||
|
||||
|
||||
##### Signature
|
||||
|
||||
|
||||
```ts
|
||||
ACCEPTED_IMG_TYPE: string[]
|
||||
```
|
||||
|
20
docs/gen/ACCEPTED_VID_TYPE-var.mdx
Normal file
|
@ -0,0 +1,20 @@
|
|||
---
|
||||
title: ACCEPTED_VID_TYPE
|
||||
status: published
|
||||
category: editor
|
||||
group: Variable
|
||||
author: api
|
||||
date: 06/23/2023
|
||||
order: 2
|
||||
---<Small>Public Readonly Variable</Small>
|
||||
|
||||
|
||||
|
||||
|
||||
##### Signature
|
||||
|
||||
|
||||
```ts
|
||||
ACCEPTED_VID_TYPE: string[]
|
||||
```
|
||||
|
24
docs/gen/AllRecords-type.mdx
Normal file
|
@ -0,0 +1,24 @@
|
|||
---
|
||||
title: AllRecords
|
||||
status: published
|
||||
category: store
|
||||
group: TypeAlias
|
||||
author: api
|
||||
date: 06/23/2023
|
||||
order: 0
|
||||
---<Small>Public TypeAlias</Small>
|
||||
|
||||
Get the type of all records in a record store.
|
||||
|
||||
|
||||
##### Signature
|
||||
|
||||
|
||||
```ts
|
||||
type AllRecords<T extends Store<any>> = ExtractR<ExtractRecordType<T>>
|
||||
```
|
||||
|
||||
##### References
|
||||
|
||||
[Store](/gen/store/Store-class), [ExtractR](/gen/store/~ExtractR-type), [ExtractRecordType](/gen/store/~ExtractRecordType-type)
|
||||
|
26
docs/gen/ArrowShape-var.mdx
Normal file
|
@ -0,0 +1,26 @@
|
|||
---
|
||||
title: ArrowShape
|
||||
status: published
|
||||
category: editor
|
||||
group: Variable
|
||||
author: api
|
||||
date: 06/23/2023
|
||||
order: 3
|
||||
---<Small>Public Readonly Variable</Small>
|
||||
|
||||
|
||||
|
||||
|
||||
##### Signature
|
||||
|
||||
|
||||
```ts
|
||||
ArrowShape: import('../../../config/defineShape').TLShapeInfo<
|
||||
import('@tldraw/tlschema').TLArrowShape
|
||||
>
|
||||
```
|
||||
|
||||
##### References
|
||||
|
||||
[TLShapeInfo](/gen/editor/TLShapeInfo-type), [TLArrowShape](/gen/tlschema/TLArrowShape-type)
|
||||
|
34
docs/gen/ArrowShapeArrowheadEndStyle-var.mdx
Normal file
|
@ -0,0 +1,34 @@
|
|||
---
|
||||
title: ArrowShapeArrowheadEndStyle
|
||||
status: published
|
||||
category: tlschema
|
||||
group: Variable
|
||||
author: api
|
||||
date: 06/23/2023
|
||||
order: 0
|
||||
---<Small>Public Readonly Variable</Small>
|
||||
|
||||
|
||||
|
||||
|
||||
##### Signature
|
||||
|
||||
|
||||
```ts
|
||||
ArrowShapeArrowheadEndStyle: import('../styles/StyleProp').EnumStyleProp<
|
||||
| 'arrow'
|
||||
| 'bar'
|
||||
| 'diamond'
|
||||
| 'dot'
|
||||
| 'inverted'
|
||||
| 'none'
|
||||
| 'pipe'
|
||||
| 'square'
|
||||
| 'triangle'
|
||||
>
|
||||
```
|
||||
|
||||
##### References
|
||||
|
||||
[EnumStyleProp](/gen/tlschema/EnumStyleProp-class)
|
||||
|
34
docs/gen/ArrowShapeArrowheadStartStyle-var.mdx
Normal file
|
@ -0,0 +1,34 @@
|
|||
---
|
||||
title: ArrowShapeArrowheadStartStyle
|
||||
status: published
|
||||
category: tlschema
|
||||
group: Variable
|
||||
author: api
|
||||
date: 06/23/2023
|
||||
order: 1
|
||||
---<Small>Public Readonly Variable</Small>
|
||||
|
||||
|
||||
|
||||
|
||||
##### Signature
|
||||
|
||||
|
||||
```ts
|
||||
ArrowShapeArrowheadStartStyle: import('../styles/StyleProp').EnumStyleProp<
|
||||
| 'arrow'
|
||||
| 'bar'
|
||||
| 'diamond'
|
||||
| 'dot'
|
||||
| 'inverted'
|
||||
| 'none'
|
||||
| 'pipe'
|
||||
| 'square'
|
||||
| 'triangle'
|
||||
>
|
||||
```
|
||||
|
||||
##### References
|
||||
|
||||
[EnumStyleProp](/gen/tlschema/EnumStyleProp-class)
|
||||
|
925
docs/gen/ArrowShapeUtil-class.mdx
Normal file
|
@ -0,0 +1,925 @@
|
|||
---
|
||||
title: ArrowShapeUtil
|
||||
status: published
|
||||
category: editor
|
||||
group: Class
|
||||
author: api
|
||||
date: 06/23/2023
|
||||
order: 4
|
||||
---<Small>Public Class</Small>
|
||||
|
||||
<details>
|
||||
<summary>Table of Contents</summary>
|
||||
- [Properties](#properties)
|
||||
- [canBind](#ArrowShapeUtil-canBind-member)
|
||||
- [canEdit](#ArrowShapeUtil-canEdit-member)
|
||||
- [canSnap](#ArrowShapeUtil-canSnap-member)
|
||||
- [hideResizeHandles](#ArrowShapeUtil-hideResizeHandles-member)
|
||||
- [hideRotateHandle](#ArrowShapeUtil-hideRotateHandle-member)
|
||||
- [hideSelectionBoundsBg](#ArrowShapeUtil-hideSelectionBoundsBg-member)
|
||||
- [hideSelectionBoundsFg](#ArrowShapeUtil-hideSelectionBoundsFg-member)
|
||||
- [isClosed](#ArrowShapeUtil-isClosed-member)
|
||||
- [labelBoundsCache](#ArrowShapeUtil-labelBoundsCache-member)
|
||||
- [onDoubleClickHandle](#ArrowShapeUtil-onDoubleClickHandle-member)
|
||||
- [onEditEnd](#ArrowShapeUtil-onEditEnd-member)
|
||||
- [onHandleChange](#ArrowShapeUtil-onHandleChange-member)
|
||||
- [onResize](#ArrowShapeUtil-onResize-member)
|
||||
- [onTranslateStart](#ArrowShapeUtil-onTranslateStart-member)
|
||||
- [type](#ArrowShapeUtil-type-member)
|
||||
- [Methods](#methods)
|
||||
- [component](#ArrowShapeUtil-component-member-1)
|
||||
- [getArrowInfo](#ArrowShapeUtil-getArrowInfo-member-1)
|
||||
- [getBounds](#ArrowShapeUtil-getBounds-member-1)
|
||||
- [getCenter](#ArrowShapeUtil-getCenter-member-1)
|
||||
- [getDefaultProps](#ArrowShapeUtil-getDefaultProps-member-1)
|
||||
- [getHandles](#ArrowShapeUtil-getHandles-member-1)
|
||||
- [getLabelBounds](#ArrowShapeUtil-getLabelBounds-member-1)
|
||||
- [getOutline](#ArrowShapeUtil-getOutline-member-1)
|
||||
- [getOutlineWithoutLabel](#ArrowShapeUtil-getOutlineWithoutLabel-member-1)
|
||||
- [hitTestLineSegment](#ArrowShapeUtil-hitTestLineSegment-member-1)
|
||||
- [hitTestPoint](#ArrowShapeUtil-hitTestPoint-member-1)
|
||||
- [indicator](#ArrowShapeUtil-indicator-member-1)
|
||||
- [snapPoints](#ArrowShapeUtil-snapPoints-member-1)
|
||||
- [toSvg](#ArrowShapeUtil-toSvg-member-1)
|
||||
</details>
|
||||
|
||||
|
||||
|
||||
|
||||
##### Signature
|
||||
|
||||
|
||||
```ts
|
||||
class ArrowShapeUtil extends ShapeUtil<TLArrowShape> {}
|
||||
```
|
||||
|
||||
##### References
|
||||
|
||||
[ShapeUtil](/gen/editor/ShapeUtil-class), [TLArrowShape](/gen/tlschema/TLArrowShape-type)
|
||||
|
||||
---
|
||||
|
||||
## Properties
|
||||
|
||||
### `canBind` \{#ArrowShapeUtil-canBind-member}
|
||||
|
||||
<Small>Public Property</Small>
|
||||
|
||||
##### Signature
|
||||
|
||||
|
||||
```ts
|
||||
canBind: () => boolean
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### `canEdit` \{#ArrowShapeUtil-canEdit-member}
|
||||
|
||||
<Small>Public Property</Small>
|
||||
|
||||
##### Signature
|
||||
|
||||
|
||||
```ts
|
||||
canEdit: () => boolean
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### `canSnap` \{#ArrowShapeUtil-canSnap-member}
|
||||
|
||||
<Small>Public Property</Small>
|
||||
|
||||
##### Signature
|
||||
|
||||
|
||||
```ts
|
||||
canSnap: () => boolean
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### `hideResizeHandles` \{#ArrowShapeUtil-hideResizeHandles-member}
|
||||
|
||||
<Small>Public Property</Small>
|
||||
|
||||
##### Signature
|
||||
|
||||
|
||||
```ts
|
||||
hideResizeHandles: TLShapeUtilFlag<TLArrowShape>
|
||||
```
|
||||
|
||||
##### References
|
||||
|
||||
[TLShapeUtilFlag](/gen/editor/TLShapeUtilFlag-type), [TLArrowShape](/gen/tlschema/TLArrowShape-type)
|
||||
|
||||
---
|
||||
|
||||
### `hideRotateHandle` \{#ArrowShapeUtil-hideRotateHandle-member}
|
||||
|
||||
<Small>Public Property</Small>
|
||||
|
||||
##### Signature
|
||||
|
||||
|
||||
```ts
|
||||
hideRotateHandle: TLShapeUtilFlag<TLArrowShape>
|
||||
```
|
||||
|
||||
##### References
|
||||
|
||||
[TLShapeUtilFlag](/gen/editor/TLShapeUtilFlag-type), [TLArrowShape](/gen/tlschema/TLArrowShape-type)
|
||||
|
||||
---
|
||||
|
||||
### `hideSelectionBoundsBg` \{#ArrowShapeUtil-hideSelectionBoundsBg-member}
|
||||
|
||||
<Small>Public Property</Small>
|
||||
|
||||
##### Signature
|
||||
|
||||
|
||||
```ts
|
||||
hideSelectionBoundsBg: TLShapeUtilFlag<TLArrowShape>
|
||||
```
|
||||
|
||||
##### References
|
||||
|
||||
[TLShapeUtilFlag](/gen/editor/TLShapeUtilFlag-type), [TLArrowShape](/gen/tlschema/TLArrowShape-type)
|
||||
|
||||
---
|
||||
|
||||
### `hideSelectionBoundsFg` \{#ArrowShapeUtil-hideSelectionBoundsFg-member}
|
||||
|
||||
<Small>Public Property</Small>
|
||||
|
||||
##### Signature
|
||||
|
||||
|
||||
```ts
|
||||
hideSelectionBoundsFg: TLShapeUtilFlag<TLArrowShape>
|
||||
```
|
||||
|
||||
##### References
|
||||
|
||||
[TLShapeUtilFlag](/gen/editor/TLShapeUtilFlag-type), [TLArrowShape](/gen/tlschema/TLArrowShape-type)
|
||||
|
||||
---
|
||||
|
||||
### `isClosed` \{#ArrowShapeUtil-isClosed-member}
|
||||
|
||||
<Small>Public Property</Small>
|
||||
|
||||
##### Signature
|
||||
|
||||
|
||||
```ts
|
||||
isClosed: () => boolean
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### `labelBoundsCache` \{#ArrowShapeUtil-labelBoundsCache-member}
|
||||
|
||||
<Small>Public Readonly Property</Small>
|
||||
|
||||
##### Signature
|
||||
|
||||
|
||||
```ts
|
||||
get labelBoundsCache(): ComputedCache<Box2d | null, TLArrowShape>
|
||||
```
|
||||
|
||||
##### References
|
||||
|
||||
[ComputedCache](/gen/store/ComputedCache-type), [Box2d](/gen/primitives/Box2d-class), [TLArrowShape](/gen/tlschema/TLArrowShape-type)
|
||||
|
||||
---
|
||||
|
||||
### `onDoubleClickHandle` \{#ArrowShapeUtil-onDoubleClickHandle-member}
|
||||
|
||||
<Small>Public Property</Small>
|
||||
|
||||
##### Signature
|
||||
|
||||
|
||||
```ts
|
||||
onDoubleClickHandle: (
|
||||
shape: TLArrowShape,
|
||||
handle: TLHandle
|
||||
) => TLShapePartial<TLArrowShape> | void
|
||||
```
|
||||
|
||||
##### References
|
||||
|
||||
[TLArrowShape](/gen/tlschema/TLArrowShape-type), [TLHandle](/gen/tlschema/TLHandle-interface), [TLShapePartial](/gen/tlschema/TLShapePartial-type)
|
||||
|
||||
---
|
||||
|
||||
### `onEditEnd` \{#ArrowShapeUtil-onEditEnd-member}
|
||||
|
||||
<Small>Public Property</Small>
|
||||
|
||||
##### Signature
|
||||
|
||||
|
||||
```ts
|
||||
onEditEnd: TLOnEditEndHandler<TLArrowShape>
|
||||
```
|
||||
|
||||
##### References
|
||||
|
||||
[TLOnEditEndHandler](/gen/editor/TLOnEditEndHandler-type), [TLArrowShape](/gen/tlschema/TLArrowShape-type)
|
||||
|
||||
---
|
||||
|
||||
### `onHandleChange` \{#ArrowShapeUtil-onHandleChange-member}
|
||||
|
||||
<Small>Public Property</Small>
|
||||
|
||||
##### Signature
|
||||
|
||||
|
||||
```ts
|
||||
onHandleChange: TLOnHandleChangeHandler<TLArrowShape>
|
||||
```
|
||||
|
||||
##### References
|
||||
|
||||
[TLOnHandleChangeHandler](/gen/editor/TLOnHandleChangeHandler-type), [TLArrowShape](/gen/tlschema/TLArrowShape-type)
|
||||
|
||||
---
|
||||
|
||||
### `onResize` \{#ArrowShapeUtil-onResize-member}
|
||||
|
||||
<Small>Public Property</Small>
|
||||
|
||||
##### Signature
|
||||
|
||||
|
||||
```ts
|
||||
onResize: TLOnResizeHandler<TLArrowShape>
|
||||
```
|
||||
|
||||
##### References
|
||||
|
||||
[TLOnResizeHandler](/gen/editor/TLOnResizeHandler-type), [TLArrowShape](/gen/tlschema/TLArrowShape-type)
|
||||
|
||||
---
|
||||
|
||||
### `onTranslateStart` \{#ArrowShapeUtil-onTranslateStart-member}
|
||||
|
||||
<Small>Public Property</Small>
|
||||
|
||||
##### Signature
|
||||
|
||||
|
||||
```ts
|
||||
onTranslateStart: TLOnTranslateStartHandler<TLArrowShape>
|
||||
```
|
||||
|
||||
##### References
|
||||
|
||||
[TLOnTranslateStartHandler](/gen/editor/TLOnTranslateStartHandler-type), [TLArrowShape](/gen/tlschema/TLArrowShape-type)
|
||||
|
||||
---
|
||||
|
||||
### `type` \{#ArrowShapeUtil-type-member}
|
||||
|
||||
<Small>Public Static Property</Small>
|
||||
|
||||
##### Signature
|
||||
|
||||
|
||||
```ts
|
||||
static type: 'arrow'
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Methods
|
||||
|
||||
### `component()` \{#ArrowShapeUtil-component-member-1}
|
||||
|
||||
<Small>Public Method</Small>
|
||||
|
||||
##### Parameters
|
||||
|
||||
|
||||
<ParametersTable>
|
||||
|
||||
<ParametersTableRow>
|
||||
<ParametersTableName>
|
||||
|
||||
`shape`
|
||||
|
||||
</ParametersTableName>
|
||||
<ParametersTableDescription>
|
||||
|
||||
```ts
|
||||
TLArrowShape
|
||||
```
|
||||
|
||||
|
||||
|
||||
</ParametersTableDescription>
|
||||
</ParametersTableRow>
|
||||
</ParametersTable>
|
||||
|
||||
##### Returns
|
||||
|
||||
|
||||
```ts
|
||||
JSX.Element | null
|
||||
```
|
||||
|
||||
##### References
|
||||
|
||||
[TLArrowShape](/gen/tlschema/TLArrowShape-type), [JSX.Element](/gen/@types/react-__global-JSX-Element-interface)
|
||||
|
||||
---
|
||||
|
||||
### `getArrowInfo()` \{#ArrowShapeUtil-getArrowInfo-member-1}
|
||||
|
||||
<Small>Public Method</Small>
|
||||
|
||||
##### Parameters
|
||||
|
||||
|
||||
<ParametersTable>
|
||||
|
||||
<ParametersTableRow>
|
||||
<ParametersTableName>
|
||||
|
||||
`shape`
|
||||
|
||||
</ParametersTableName>
|
||||
<ParametersTableDescription>
|
||||
|
||||
```ts
|
||||
TLArrowShape
|
||||
```
|
||||
|
||||
|
||||
|
||||
</ParametersTableDescription>
|
||||
</ParametersTableRow>
|
||||
</ParametersTable>
|
||||
|
||||
##### Returns
|
||||
|
||||
|
||||
```ts
|
||||
ArrowInfo | undefined
|
||||
```
|
||||
|
||||
##### References
|
||||
|
||||
[TLArrowShape](/gen/tlschema/TLArrowShape-type), [ArrowInfo](/gen/editor/~ArrowInfo-type)
|
||||
|
||||
---
|
||||
|
||||
### `getBounds()` \{#ArrowShapeUtil-getBounds-member-1}
|
||||
|
||||
<Small>Public Method</Small>
|
||||
|
||||
##### Parameters
|
||||
|
||||
|
||||
<ParametersTable>
|
||||
|
||||
<ParametersTableRow>
|
||||
<ParametersTableName>
|
||||
|
||||
`shape`
|
||||
|
||||
</ParametersTableName>
|
||||
<ParametersTableDescription>
|
||||
|
||||
```ts
|
||||
TLArrowShape
|
||||
```
|
||||
|
||||
|
||||
|
||||
</ParametersTableDescription>
|
||||
</ParametersTableRow>
|
||||
</ParametersTable>
|
||||
|
||||
##### Returns
|
||||
|
||||
|
||||
```ts
|
||||
Box2d
|
||||
```
|
||||
|
||||
##### References
|
||||
|
||||
[TLArrowShape](/gen/tlschema/TLArrowShape-type), [Box2d](/gen/primitives/Box2d-class)
|
||||
|
||||
---
|
||||
|
||||
### `getCenter()` \{#ArrowShapeUtil-getCenter-member-1}
|
||||
|
||||
<Small>Public Method</Small>
|
||||
|
||||
##### Parameters
|
||||
|
||||
|
||||
<ParametersTable>
|
||||
|
||||
<ParametersTableRow>
|
||||
<ParametersTableName>
|
||||
|
||||
`shape`
|
||||
|
||||
</ParametersTableName>
|
||||
<ParametersTableDescription>
|
||||
|
||||
```ts
|
||||
TLArrowShape
|
||||
```
|
||||
|
||||
|
||||
|
||||
</ParametersTableDescription>
|
||||
</ParametersTableRow>
|
||||
</ParametersTable>
|
||||
|
||||
##### Returns
|
||||
|
||||
|
||||
```ts
|
||||
Vec2d
|
||||
```
|
||||
|
||||
##### References
|
||||
|
||||
[TLArrowShape](/gen/tlschema/TLArrowShape-type), [Vec2d](/gen/primitives/Vec2d-class)
|
||||
|
||||
---
|
||||
|
||||
### `getDefaultProps()` \{#ArrowShapeUtil-getDefaultProps-member-1}
|
||||
|
||||
<Small>Public Method</Small>
|
||||
|
||||
##### Parameters
|
||||
|
||||
|
||||
None
|
||||
|
||||
##### Returns
|
||||
|
||||
|
||||
```ts
|
||||
TLArrowShape['props']
|
||||
```
|
||||
|
||||
##### References
|
||||
|
||||
[TLArrowShape](/gen/tlschema/TLArrowShape-type)
|
||||
|
||||
---
|
||||
|
||||
### `getHandles()` \{#ArrowShapeUtil-getHandles-member-1}
|
||||
|
||||
<Small>Public Method</Small>
|
||||
|
||||
##### Parameters
|
||||
|
||||
|
||||
<ParametersTable>
|
||||
|
||||
<ParametersTableRow>
|
||||
<ParametersTableName>
|
||||
|
||||
`shape`
|
||||
|
||||
</ParametersTableName>
|
||||
<ParametersTableDescription>
|
||||
|
||||
```ts
|
||||
TLArrowShape
|
||||
```
|
||||
|
||||
|
||||
|
||||
</ParametersTableDescription>
|
||||
</ParametersTableRow>
|
||||
</ParametersTable>
|
||||
|
||||
##### Returns
|
||||
|
||||
|
||||
```ts
|
||||
TLHandle[]
|
||||
```
|
||||
|
||||
##### References
|
||||
|
||||
[TLArrowShape](/gen/tlschema/TLArrowShape-type), [TLHandle](/gen/tlschema/TLHandle-interface)
|
||||
|
||||
---
|
||||
|
||||
### `getLabelBounds()` \{#ArrowShapeUtil-getLabelBounds-member-1}
|
||||
|
||||
<Small>Public Method</Small>
|
||||
|
||||
##### Parameters
|
||||
|
||||
|
||||
<ParametersTable>
|
||||
|
||||
<ParametersTableRow>
|
||||
<ParametersTableName>
|
||||
|
||||
`shape`
|
||||
|
||||
</ParametersTableName>
|
||||
<ParametersTableDescription>
|
||||
|
||||
```ts
|
||||
TLArrowShape
|
||||
```
|
||||
|
||||
|
||||
|
||||
</ParametersTableDescription>
|
||||
</ParametersTableRow>
|
||||
</ParametersTable>
|
||||
|
||||
##### Returns
|
||||
|
||||
|
||||
```ts
|
||||
Box2d | null
|
||||
```
|
||||
|
||||
##### References
|
||||
|
||||
[TLArrowShape](/gen/tlschema/TLArrowShape-type), [Box2d](/gen/primitives/Box2d-class)
|
||||
|
||||
---
|
||||
|
||||
### `getOutline()` \{#ArrowShapeUtil-getOutline-member-1}
|
||||
|
||||
<Small>Public Method</Small>
|
||||
|
||||
##### Parameters
|
||||
|
||||
|
||||
<ParametersTable>
|
||||
|
||||
<ParametersTableRow>
|
||||
<ParametersTableName>
|
||||
|
||||
`shape`
|
||||
|
||||
</ParametersTableName>
|
||||
<ParametersTableDescription>
|
||||
|
||||
```ts
|
||||
TLArrowShape
|
||||
```
|
||||
|
||||
|
||||
|
||||
</ParametersTableDescription>
|
||||
</ParametersTableRow>
|
||||
</ParametersTable>
|
||||
|
||||
##### Returns
|
||||
|
||||
|
||||
```ts
|
||||
Vec2d[]
|
||||
```
|
||||
|
||||
##### References
|
||||
|
||||
[TLArrowShape](/gen/tlschema/TLArrowShape-type), [Vec2d](/gen/primitives/Vec2d-class)
|
||||
|
||||
---
|
||||
|
||||
### `getOutlineWithoutLabel()` \{#ArrowShapeUtil-getOutlineWithoutLabel-member-1}
|
||||
|
||||
<Small>Public Method</Small>
|
||||
|
||||
##### Parameters
|
||||
|
||||
|
||||
<ParametersTable>
|
||||
|
||||
<ParametersTableRow>
|
||||
<ParametersTableName>
|
||||
|
||||
`shape`
|
||||
|
||||
</ParametersTableName>
|
||||
<ParametersTableDescription>
|
||||
|
||||
```ts
|
||||
TLArrowShape
|
||||
```
|
||||
|
||||
|
||||
|
||||
</ParametersTableDescription>
|
||||
</ParametersTableRow>
|
||||
</ParametersTable>
|
||||
|
||||
##### Returns
|
||||
|
||||
|
||||
```ts
|
||||
Vec2d[]
|
||||
```
|
||||
|
||||
##### References
|
||||
|
||||
[TLArrowShape](/gen/tlschema/TLArrowShape-type), [Vec2d](/gen/primitives/Vec2d-class)
|
||||
|
||||
---
|
||||
|
||||
### `hitTestLineSegment()` \{#ArrowShapeUtil-hitTestLineSegment-member-1}
|
||||
|
||||
<Small>Public Method</Small>
|
||||
|
||||
##### Parameters
|
||||
|
||||
|
||||
<ParametersTable>
|
||||
|
||||
<ParametersTableRow>
|
||||
<ParametersTableName>
|
||||
|
||||
`shape`
|
||||
|
||||
</ParametersTableName>
|
||||
<ParametersTableDescription>
|
||||
|
||||
```ts
|
||||
TLArrowShape
|
||||
```
|
||||
|
||||
|
||||
|
||||
</ParametersTableDescription>
|
||||
</ParametersTableRow>
|
||||
<ParametersTableRow>
|
||||
<ParametersTableName>
|
||||
|
||||
`A`
|
||||
|
||||
</ParametersTableName>
|
||||
<ParametersTableDescription>
|
||||
|
||||
```ts
|
||||
VecLike
|
||||
```
|
||||
|
||||
|
||||
|
||||
</ParametersTableDescription>
|
||||
</ParametersTableRow>
|
||||
<ParametersTableRow>
|
||||
<ParametersTableName>
|
||||
|
||||
`B`
|
||||
|
||||
</ParametersTableName>
|
||||
<ParametersTableDescription>
|
||||
|
||||
```ts
|
||||
VecLike
|
||||
```
|
||||
|
||||
|
||||
|
||||
</ParametersTableDescription>
|
||||
</ParametersTableRow>
|
||||
</ParametersTable>
|
||||
|
||||
##### Returns
|
||||
|
||||
|
||||
```ts
|
||||
boolean
|
||||
```
|
||||
|
||||
##### References
|
||||
|
||||
[TLArrowShape](/gen/tlschema/TLArrowShape-type), [VecLike](/gen/primitives/VecLike-type)
|
||||
|
||||
---
|
||||
|
||||
### `hitTestPoint()` \{#ArrowShapeUtil-hitTestPoint-member-1}
|
||||
|
||||
<Small>Public Method</Small>
|
||||
|
||||
##### Parameters
|
||||
|
||||
|
||||
<ParametersTable>
|
||||
|
||||
<ParametersTableRow>
|
||||
<ParametersTableName>
|
||||
|
||||
`shape`
|
||||
|
||||
</ParametersTableName>
|
||||
<ParametersTableDescription>
|
||||
|
||||
```ts
|
||||
TLArrowShape
|
||||
```
|
||||
|
||||
|
||||
|
||||
</ParametersTableDescription>
|
||||
</ParametersTableRow>
|
||||
<ParametersTableRow>
|
||||
<ParametersTableName>
|
||||
|
||||
`point`
|
||||
|
||||
</ParametersTableName>
|
||||
<ParametersTableDescription>
|
||||
|
||||
```ts
|
||||
VecLike
|
||||
```
|
||||
|
||||
|
||||
|
||||
</ParametersTableDescription>
|
||||
</ParametersTableRow>
|
||||
</ParametersTable>
|
||||
|
||||
##### Returns
|
||||
|
||||
|
||||
```ts
|
||||
boolean
|
||||
```
|
||||
|
||||
##### References
|
||||
|
||||
[TLArrowShape](/gen/tlschema/TLArrowShape-type), [VecLike](/gen/primitives/VecLike-type)
|
||||
|
||||
---
|
||||
|
||||
### `indicator()` \{#ArrowShapeUtil-indicator-member-1}
|
||||
|
||||
<Small>Public Method</Small>
|
||||
|
||||
##### Parameters
|
||||
|
||||
|
||||
<ParametersTable>
|
||||
|
||||
<ParametersTableRow>
|
||||
<ParametersTableName>
|
||||
|
||||
`shape`
|
||||
|
||||
</ParametersTableName>
|
||||
<ParametersTableDescription>
|
||||
|
||||
```ts
|
||||
TLArrowShape
|
||||
```
|
||||
|
||||
|
||||
|
||||
</ParametersTableDescription>
|
||||
</ParametersTableRow>
|
||||
</ParametersTable>
|
||||
|
||||
##### Returns
|
||||
|
||||
|
||||
```ts
|
||||
JSX.Element | null
|
||||
```
|
||||
|
||||
##### References
|
||||
|
||||
[TLArrowShape](/gen/tlschema/TLArrowShape-type), [JSX.Element](/gen/@types/react-__global-JSX-Element-interface)
|
||||
|
||||
---
|
||||
|
||||
### `snapPoints()` \{#ArrowShapeUtil-snapPoints-member-1}
|
||||
|
||||
<Small>Public Method</Small>
|
||||
|
||||
##### Parameters
|
||||
|
||||
|
||||
<ParametersTable>
|
||||
|
||||
<ParametersTableRow>
|
||||
<ParametersTableName>
|
||||
|
||||
`_shape`
|
||||
|
||||
</ParametersTableName>
|
||||
<ParametersTableDescription>
|
||||
|
||||
```ts
|
||||
TLArrowShape
|
||||
```
|
||||
|
||||
|
||||
|
||||
</ParametersTableDescription>
|
||||
</ParametersTableRow>
|
||||
</ParametersTable>
|
||||
|
||||
##### Returns
|
||||
|
||||
|
||||
```ts
|
||||
Vec2d[]
|
||||
```
|
||||
|
||||
##### References
|
||||
|
||||
[TLArrowShape](/gen/tlschema/TLArrowShape-type), [Vec2d](/gen/primitives/Vec2d-class)
|
||||
|
||||
---
|
||||
|
||||
### `toSvg()` \{#ArrowShapeUtil-toSvg-member-1}
|
||||
|
||||
<Small>Public Method</Small>
|
||||
|
||||
##### Parameters
|
||||
|
||||
|
||||
<ParametersTable>
|
||||
|
||||
<ParametersTableRow>
|
||||
<ParametersTableName>
|
||||
|
||||
`shape`
|
||||
|
||||
</ParametersTableName>
|
||||
<ParametersTableDescription>
|
||||
|
||||
```ts
|
||||
TLArrowShape
|
||||
```
|
||||
|
||||
|
||||
|
||||
</ParametersTableDescription>
|
||||
</ParametersTableRow>
|
||||
<ParametersTableRow>
|
||||
<ParametersTableName>
|
||||
|
||||
`font`
|
||||
|
||||
</ParametersTableName>
|
||||
<ParametersTableDescription>
|
||||
|
||||
```ts
|
||||
string
|
||||
```
|
||||
|
||||
|
||||
|
||||
</ParametersTableDescription>
|
||||
</ParametersTableRow>
|
||||
<ParametersTableRow>
|
||||
<ParametersTableName>
|
||||
|
||||
`colors`
|
||||
|
||||
</ParametersTableName>
|
||||
<ParametersTableDescription>
|
||||
|
||||
```ts
|
||||
TLExportColors
|
||||
```
|
||||
|
||||
|
||||
|
||||
</ParametersTableDescription>
|
||||
</ParametersTableRow>
|
||||
</ParametersTable>
|
||||
|
||||
##### Returns
|
||||
|
||||
|
||||
```ts
|
||||
SVGGElement
|
||||
```
|
||||
|
||||
##### References
|
||||
|
||||
[TLArrowShape](/gen/tlschema/TLArrowShape-type), [TLExportColors](/gen/editor/~TLExportColors-type), [SVGGElement](/gen/SVGGElement-interface)
|
||||
|
||||
---
|
||||
|
24
docs/gen/AssetRecordType-var.mdx
Normal file
|
@ -0,0 +1,24 @@
|
|||
---
|
||||
title: AssetRecordType
|
||||
status: published
|
||||
category: tlschema
|
||||
group: Variable
|
||||
author: api
|
||||
date: 06/23/2023
|
||||
order: 4
|
||||
---<Small>Public Readonly Variable</Small>
|
||||
|
||||
|
||||
|
||||
|
||||
##### Signature
|
||||
|
||||
|
||||
```ts
|
||||
AssetRecordType: import('@tldraw/store').RecordType<TLAsset, 'props' | 'type'>
|
||||
```
|
||||
|
||||
##### References
|
||||
|
||||
[RecordType](/gen/store/RecordType-class), [TLAsset](/gen/tlschema/TLAsset-type)
|
||||
|
97
docs/gen/BaseBoxShapeTool-class.mdx
Normal file
|
@ -0,0 +1,97 @@
|
|||
---
|
||||
title: BaseBoxShapeTool
|
||||
status: published
|
||||
category: editor
|
||||
group: Class
|
||||
author: api
|
||||
date: 06/23/2023
|
||||
order: 5
|
||||
---<Small>Public Class</Small>
|
||||
|
||||
<details>
|
||||
<summary>Table of Contents</summary>
|
||||
- [Properties](#properties)
|
||||
- [children](#BaseBoxShapeTool-children-member)
|
||||
- [id](#BaseBoxShapeTool-id-member)
|
||||
- [initial](#BaseBoxShapeTool-initial-member)
|
||||
- [shapeType](#BaseBoxShapeTool-shapeType-member)
|
||||
</details>
|
||||
|
||||
|
||||
|
||||
|
||||
##### Signature
|
||||
|
||||
|
||||
```ts
|
||||
abstract class BaseBoxShapeTool extends StateNode {}
|
||||
```
|
||||
|
||||
##### References
|
||||
|
||||
[StateNode](/gen/editor/StateNode-class)
|
||||
|
||||
---
|
||||
|
||||
## Properties
|
||||
|
||||
### `children` \{#BaseBoxShapeTool-children-member}
|
||||
|
||||
<Small>Public Static Property</Small>
|
||||
|
||||
##### Signature
|
||||
|
||||
|
||||
```ts
|
||||
static children: () => (typeof Idle | typeof Pointing)[]
|
||||
```
|
||||
|
||||
##### References
|
||||
|
||||
[Idle](/gen/editor/~Idle_4-class), [Pointing](/gen/editor/~Pointing_2-class)
|
||||
|
||||
---
|
||||
|
||||
### `id` \{#BaseBoxShapeTool-id-member}
|
||||
|
||||
<Small>Public Static Property</Small>
|
||||
|
||||
##### Signature
|
||||
|
||||
|
||||
```ts
|
||||
static id: string
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### `initial` \{#BaseBoxShapeTool-initial-member}
|
||||
|
||||
<Small>Public Static Property</Small>
|
||||
|
||||
##### Signature
|
||||
|
||||
|
||||
```ts
|
||||
static initial: string
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### `shapeType` \{#BaseBoxShapeTool-shapeType-member}
|
||||
|
||||
<Small>Public Property</Small>
|
||||
|
||||
##### Signature
|
||||
|
||||
|
||||
```ts
|
||||
abstract shapeType: TLShapeUtilConstructor<any>
|
||||
```
|
||||
|
||||
##### References
|
||||
|
||||
[TLShapeUtilConstructor](/gen/editor/TLShapeUtilConstructor-interface)
|
||||
|
||||
---
|
||||
|
309
docs/gen/BaseBoxShapeUtil-class.mdx
Normal file
|
@ -0,0 +1,309 @@
|
|||
---
|
||||
title: BaseBoxShapeUtil
|
||||
status: published
|
||||
category: editor
|
||||
group: Class
|
||||
author: api
|
||||
date: 06/23/2023
|
||||
order: 6
|
||||
---<Small>Public Class</Small>
|
||||
|
||||
<details>
|
||||
<summary>Table of Contents</summary>
|
||||
- [Properties](#properties)
|
||||
- [onResize](#BaseBoxShapeUtil-onResize-member)
|
||||
- [Methods](#methods)
|
||||
- [getBounds](#BaseBoxShapeUtil-getBounds-member-1)
|
||||
- [getCenter](#BaseBoxShapeUtil-getCenter-member-1)
|
||||
- [getOutline](#BaseBoxShapeUtil-getOutline-member-1)
|
||||
- [hitTestLineSegment](#BaseBoxShapeUtil-hitTestLineSegment-member-1)
|
||||
- [hitTestPoint](#BaseBoxShapeUtil-hitTestPoint-member-1)
|
||||
</details>
|
||||
|
||||
|
||||
|
||||
|
||||
##### Signature
|
||||
|
||||
|
||||
```ts
|
||||
abstract class BaseBoxShapeUtil<
|
||||
Shape extends TLBaseBoxShape
|
||||
> extends ShapeUtil<Shape> {}
|
||||
```
|
||||
|
||||
##### References
|
||||
|
||||
[TLBaseBoxShape](/gen/editor/TLBaseBoxShape-type), [ShapeUtil](/gen/editor/ShapeUtil-class)
|
||||
|
||||
---
|
||||
|
||||
## Properties
|
||||
|
||||
### `onResize` \{#BaseBoxShapeUtil-onResize-member}
|
||||
|
||||
<Small>Public Property</Small>
|
||||
|
||||
##### Signature
|
||||
|
||||
|
||||
```ts
|
||||
onResize: TLOnResizeHandler<any>
|
||||
```
|
||||
|
||||
##### References
|
||||
|
||||
[TLOnResizeHandler](/gen/editor/TLOnResizeHandler-type)
|
||||
|
||||
---
|
||||
|
||||
## Methods
|
||||
|
||||
### `getBounds()` \{#BaseBoxShapeUtil-getBounds-member-1}
|
||||
|
||||
<Small>Public Method</Small>
|
||||
|
||||
##### Parameters
|
||||
|
||||
|
||||
<ParametersTable>
|
||||
|
||||
<ParametersTableRow>
|
||||
<ParametersTableName>
|
||||
|
||||
`shape`
|
||||
|
||||
</ParametersTableName>
|
||||
<ParametersTableDescription>
|
||||
|
||||
```ts
|
||||
Shape
|
||||
```
|
||||
|
||||
|
||||
|
||||
</ParametersTableDescription>
|
||||
</ParametersTableRow>
|
||||
</ParametersTable>
|
||||
|
||||
##### Returns
|
||||
|
||||
|
||||
```ts
|
||||
Box2d
|
||||
```
|
||||
|
||||
##### References
|
||||
|
||||
[Box2d](/gen/primitives/Box2d-class)
|
||||
|
||||
---
|
||||
|
||||
### `getCenter()` \{#BaseBoxShapeUtil-getCenter-member-1}
|
||||
|
||||
<Small>Public Method</Small>
|
||||
|
||||
##### Parameters
|
||||
|
||||
|
||||
<ParametersTable>
|
||||
|
||||
<ParametersTableRow>
|
||||
<ParametersTableName>
|
||||
|
||||
`shape`
|
||||
|
||||
</ParametersTableName>
|
||||
<ParametersTableDescription>
|
||||
|
||||
```ts
|
||||
Shape
|
||||
```
|
||||
|
||||
|
||||
|
||||
</ParametersTableDescription>
|
||||
</ParametersTableRow>
|
||||
</ParametersTable>
|
||||
|
||||
##### Returns
|
||||
|
||||
|
||||
```ts
|
||||
Vec2d
|
||||
```
|
||||
|
||||
##### References
|
||||
|
||||
[Vec2d](/gen/primitives/Vec2d-class)
|
||||
|
||||
---
|
||||
|
||||
### `getOutline()` \{#BaseBoxShapeUtil-getOutline-member-1}
|
||||
|
||||
<Small>Public Method</Small>
|
||||
|
||||
##### Parameters
|
||||
|
||||
|
||||
<ParametersTable>
|
||||
|
||||
<ParametersTableRow>
|
||||
<ParametersTableName>
|
||||
|
||||
`shape`
|
||||
|
||||
</ParametersTableName>
|
||||
<ParametersTableDescription>
|
||||
|
||||
```ts
|
||||
Shape
|
||||
```
|
||||
|
||||
|
||||
|
||||
</ParametersTableDescription>
|
||||
</ParametersTableRow>
|
||||
</ParametersTable>
|
||||
|
||||
##### Returns
|
||||
|
||||
|
||||
```ts
|
||||
Vec2d[]
|
||||
```
|
||||
|
||||
##### References
|
||||
|
||||
[Vec2d](/gen/primitives/Vec2d-class)
|
||||
|
||||
---
|
||||
|
||||
### `hitTestLineSegment()` \{#BaseBoxShapeUtil-hitTestLineSegment-member-1}
|
||||
|
||||
<Small>Public Method</Small>
|
||||
|
||||
##### Parameters
|
||||
|
||||
|
||||
<ParametersTable>
|
||||
|
||||
<ParametersTableRow>
|
||||
<ParametersTableName>
|
||||
|
||||
`shape`
|
||||
|
||||
</ParametersTableName>
|
||||
<ParametersTableDescription>
|
||||
|
||||
```ts
|
||||
Shape
|
||||
```
|
||||
|
||||
|
||||
|
||||
</ParametersTableDescription>
|
||||
</ParametersTableRow>
|
||||
<ParametersTableRow>
|
||||
<ParametersTableName>
|
||||
|
||||
`A`
|
||||
|
||||
</ParametersTableName>
|
||||
<ParametersTableDescription>
|
||||
|
||||
```ts
|
||||
VecLike
|
||||
```
|
||||
|
||||
|
||||
|
||||
</ParametersTableDescription>
|
||||
</ParametersTableRow>
|
||||
<ParametersTableRow>
|
||||
<ParametersTableName>
|
||||
|
||||
`B`
|
||||
|
||||
</ParametersTableName>
|
||||
<ParametersTableDescription>
|
||||
|
||||
```ts
|
||||
VecLike
|
||||
```
|
||||
|
||||
|
||||
|
||||
</ParametersTableDescription>
|
||||
</ParametersTableRow>
|
||||
</ParametersTable>
|
||||
|
||||
##### Returns
|
||||
|
||||
|
||||
```ts
|
||||
boolean
|
||||
```
|
||||
|
||||
##### References
|
||||
|
||||
[VecLike](/gen/primitives/VecLike-type)
|
||||
|
||||
---
|
||||
|
||||
### `hitTestPoint()` \{#BaseBoxShapeUtil-hitTestPoint-member-1}
|
||||
|
||||
<Small>Public Method</Small>
|
||||
|
||||
##### Parameters
|
||||
|
||||
|
||||
<ParametersTable>
|
||||
|
||||
<ParametersTableRow>
|
||||
<ParametersTableName>
|
||||
|
||||
`shape`
|
||||
|
||||
</ParametersTableName>
|
||||
<ParametersTableDescription>
|
||||
|
||||
```ts
|
||||
Shape
|
||||
```
|
||||
|
||||
|
||||
|
||||
</ParametersTableDescription>
|
||||
</ParametersTableRow>
|
||||
<ParametersTableRow>
|
||||
<ParametersTableName>
|
||||
|
||||
`point`
|
||||
|
||||
</ParametersTableName>
|
||||
<ParametersTableDescription>
|
||||
|
||||
```ts
|
||||
VecLike
|
||||
```
|
||||
|
||||
|
||||
|
||||
</ParametersTableDescription>
|
||||
</ParametersTableRow>
|
||||
</ParametersTable>
|
||||
|
||||
##### Returns
|
||||
|
||||
|
||||
```ts
|
||||
boolean
|
||||
```
|
||||
|
||||
##### References
|
||||
|
||||
[VecLike](/gen/primitives/VecLike-type)
|
||||
|
||||
---
|
||||
|
64
docs/gen/BaseRecord-interface.mdx
Normal file
|
@ -0,0 +1,64 @@
|
|||
---
|
||||
title: BaseRecord
|
||||
status: published
|
||||
category: store
|
||||
group: Interface
|
||||
author: api
|
||||
date: 06/23/2023
|
||||
order: 2
|
||||
---<Small>Public Interface</Small>
|
||||
|
||||
<details>
|
||||
<summary>Table of Contents</summary>
|
||||
- [Properties](#properties)
|
||||
- [id](#BaseRecord-id-member)
|
||||
- [typeName](#BaseRecord-typeName-member)
|
||||
</details>
|
||||
|
||||
The base record that all records must extend.
|
||||
|
||||
|
||||
##### Signature
|
||||
|
||||
|
||||
```ts
|
||||
interface BaseRecord<
|
||||
TypeName extends string,
|
||||
Id extends RecordId<UnknownRecord>
|
||||
> {}
|
||||
```
|
||||
|
||||
##### References
|
||||
|
||||
[RecordId](/gen/store/RecordId-type), [UnknownRecord](/gen/store/UnknownRecord-type)
|
||||
|
||||
---
|
||||
|
||||
## Properties
|
||||
|
||||
### `id` \{#BaseRecord-id-member}
|
||||
|
||||
<Small>Public Readonly PropertySignature</Small>
|
||||
|
||||
##### Signature
|
||||
|
||||
|
||||
```ts
|
||||
readonly id: Id
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### `typeName` \{#BaseRecord-typeName-member}
|
||||
|
||||
<Small>Public Readonly PropertySignature</Small>
|
||||
|
||||
##### Signature
|
||||
|
||||
|
||||
```ts
|
||||
readonly typeName: TypeName
|
||||
```
|
||||
|
||||
---
|
||||
|
26
docs/gen/BookmarkShape-var.mdx
Normal file
|
@ -0,0 +1,26 @@
|
|||
---
|
||||
title: BookmarkShape
|
||||
status: published
|
||||
category: editor
|
||||
group: Variable
|
||||
author: api
|
||||
date: 06/23/2023
|
||||
order: 8
|
||||
---<Small>Public Readonly Variable</Small>
|
||||
|
||||
|
||||
|
||||
|
||||
##### Signature
|
||||
|
||||
|
||||
```ts
|
||||
BookmarkShape: import('../../../config/defineShape').TLShapeInfo<
|
||||
import('@tldraw/tlschema').TLBookmarkShape
|
||||
>
|
||||
```
|
||||
|
||||
##### References
|
||||
|
||||
[TLShapeInfo](/gen/editor/TLShapeInfo-type), [TLBookmarkShape](/gen/tlschema/TLBookmarkShape-type)
|
||||
|
233
docs/gen/BookmarkShapeUtil-class.mdx
Normal file
|
@ -0,0 +1,233 @@
|
|||
---
|
||||
title: BookmarkShapeUtil
|
||||
status: published
|
||||
category: editor
|
||||
group: Class
|
||||
author: api
|
||||
date: 06/23/2023
|
||||
order: 9
|
||||
---<Small>Public Class</Small>
|
||||
|
||||
<details>
|
||||
<summary>Table of Contents</summary>
|
||||
- [Properties](#properties)
|
||||
- [canResize](#BookmarkShapeUtil-canResize-member)
|
||||
- [hideSelectionBoundsBg](#BookmarkShapeUtil-hideSelectionBoundsBg-member)
|
||||
- [hideSelectionBoundsFg](#BookmarkShapeUtil-hideSelectionBoundsFg-member)
|
||||
- [onBeforeCreate](#BookmarkShapeUtil-onBeforeCreate-member)
|
||||
- [onBeforeUpdate](#BookmarkShapeUtil-onBeforeUpdate-member)
|
||||
- [type](#BookmarkShapeUtil-type-member)
|
||||
- [Methods](#methods)
|
||||
- [component](#BookmarkShapeUtil-component-member-1)
|
||||
- [getDefaultProps](#BookmarkShapeUtil-getDefaultProps-member-1)
|
||||
- [indicator](#BookmarkShapeUtil-indicator-member-1)
|
||||
</details>
|
||||
|
||||
|
||||
|
||||
|
||||
##### Signature
|
||||
|
||||
|
||||
```ts
|
||||
class BookmarkShapeUtil extends BaseBoxShapeUtil<TLBookmarkShape> {}
|
||||
```
|
||||
|
||||
##### References
|
||||
|
||||
[BaseBoxShapeUtil](/gen/editor/BaseBoxShapeUtil-class), [TLBookmarkShape](/gen/tlschema/TLBookmarkShape-type)
|
||||
|
||||
---
|
||||
|
||||
## Properties
|
||||
|
||||
### `canResize` \{#BookmarkShapeUtil-canResize-member}
|
||||
|
||||
<Small>Public Property</Small>
|
||||
|
||||
##### Signature
|
||||
|
||||
|
||||
```ts
|
||||
canResize: () => boolean
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### `hideSelectionBoundsBg` \{#BookmarkShapeUtil-hideSelectionBoundsBg-member}
|
||||
|
||||
<Small>Public Property</Small>
|
||||
|
||||
##### Signature
|
||||
|
||||
|
||||
```ts
|
||||
hideSelectionBoundsBg: () => boolean
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### `hideSelectionBoundsFg` \{#BookmarkShapeUtil-hideSelectionBoundsFg-member}
|
||||
|
||||
<Small>Public Property</Small>
|
||||
|
||||
##### Signature
|
||||
|
||||
|
||||
```ts
|
||||
hideSelectionBoundsFg: () => boolean
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### `onBeforeCreate` \{#BookmarkShapeUtil-onBeforeCreate-member}
|
||||
|
||||
<Small>Public Property</Small>
|
||||
|
||||
##### Signature
|
||||
|
||||
|
||||
```ts
|
||||
onBeforeCreate?: TLOnBeforeCreateHandler<TLBookmarkShape>
|
||||
```
|
||||
|
||||
##### References
|
||||
|
||||
[TLOnBeforeCreateHandler](/gen/editor/TLOnBeforeCreateHandler-type), [TLBookmarkShape](/gen/tlschema/TLBookmarkShape-type)
|
||||
|
||||
---
|
||||
|
||||
### `onBeforeUpdate` \{#BookmarkShapeUtil-onBeforeUpdate-member}
|
||||
|
||||
<Small>Public Property</Small>
|
||||
|
||||
##### Signature
|
||||
|
||||
|
||||
```ts
|
||||
onBeforeUpdate?: TLOnBeforeUpdateHandler<TLBookmarkShape>
|
||||
```
|
||||
|
||||
##### References
|
||||
|
||||
[TLOnBeforeUpdateHandler](/gen/editor/TLOnBeforeUpdateHandler-type), [TLBookmarkShape](/gen/tlschema/TLBookmarkShape-type)
|
||||
|
||||
---
|
||||
|
||||
### `type` \{#BookmarkShapeUtil-type-member}
|
||||
|
||||
<Small>Public Static Property</Small>
|
||||
|
||||
##### Signature
|
||||
|
||||
|
||||
```ts
|
||||
static type: 'bookmark'
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Methods
|
||||
|
||||
### `component()` \{#BookmarkShapeUtil-component-member-1}
|
||||
|
||||
<Small>Public Method</Small>
|
||||
|
||||
##### Parameters
|
||||
|
||||
|
||||
<ParametersTable>
|
||||
|
||||
<ParametersTableRow>
|
||||
<ParametersTableName>
|
||||
|
||||
`shape`
|
||||
|
||||
</ParametersTableName>
|
||||
<ParametersTableDescription>
|
||||
|
||||
```ts
|
||||
TLBookmarkShape
|
||||
```
|
||||
|
||||
|
||||
|
||||
</ParametersTableDescription>
|
||||
</ParametersTableRow>
|
||||
</ParametersTable>
|
||||
|
||||
##### Returns
|
||||
|
||||
|
||||
```ts
|
||||
JSX.Element
|
||||
```
|
||||
|
||||
##### References
|
||||
|
||||
[TLBookmarkShape](/gen/tlschema/TLBookmarkShape-type), [JSX.Element](/gen/@types/react-__global-JSX-Element-interface)
|
||||
|
||||
---
|
||||
|
||||
### `getDefaultProps()` \{#BookmarkShapeUtil-getDefaultProps-member-1}
|
||||
|
||||
<Small>Public Method</Small>
|
||||
|
||||
##### Parameters
|
||||
|
||||
|
||||
None
|
||||
|
||||
##### Returns
|
||||
|
||||
|
||||
```ts
|
||||
TLBookmarkShape['props']
|
||||
```
|
||||
|
||||
##### References
|
||||
|
||||
[TLBookmarkShape](/gen/tlschema/TLBookmarkShape-type)
|
||||
|
||||
---
|
||||
|
||||
### `indicator()` \{#BookmarkShapeUtil-indicator-member-1}
|
||||
|
||||
<Small>Public Method</Small>
|
||||
|
||||
##### Parameters
|
||||
|
||||
|
||||
<ParametersTable>
|
||||
|
||||
<ParametersTableRow>
|
||||
<ParametersTableName>
|
||||
|
||||
`shape`
|
||||
|
||||
</ParametersTableName>
|
||||
<ParametersTableDescription>
|
||||
|
||||
```ts
|
||||
TLBookmarkShape
|
||||
```
|
||||
|
||||
|
||||
|
||||
</ParametersTableDescription>
|
||||
</ParametersTableRow>
|
||||
</ParametersTable>
|
||||
|
||||
##### Returns
|
||||
|
||||
|
||||
```ts
|
||||
JSX.Element
|
||||
```
|
||||
|
||||
##### References
|
||||
|
||||
[TLBookmarkShape](/gen/tlschema/TLBookmarkShape-type), [JSX.Element](/gen/@types/react-__global-JSX-Element-interface)
|
||||
|
||||
---
|
||||
|
1664
docs/gen/Box2d-class.mdx
Normal file
85
docs/gen/Box2dModel-interface.mdx
Normal file
|
@ -0,0 +1,85 @@
|
|||
---
|
||||
title: Box2dModel
|
||||
status: published
|
||||
category: tlschema
|
||||
group: Interface
|
||||
author: api
|
||||
date: 06/23/2023
|
||||
order: 6
|
||||
---<Small>Public Interface</Small>
|
||||
|
||||
<details>
|
||||
<summary>Table of Contents</summary>
|
||||
- [Properties](#properties)
|
||||
- [h](#Box2dModel-h-member)
|
||||
- [w](#Box2dModel-w-member)
|
||||
- [x](#Box2dModel-x-member)
|
||||
- [y](#Box2dModel-y-member)
|
||||
</details>
|
||||
|
||||
A serializable model for 2D boxes.
|
||||
|
||||
|
||||
##### Signature
|
||||
|
||||
|
||||
```ts
|
||||
interface Box2dModel {}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Properties
|
||||
|
||||
### `h` \{#Box2dModel-h-member}
|
||||
|
||||
<Small>Public PropertySignature</Small>
|
||||
|
||||
##### Signature
|
||||
|
||||
|
||||
```ts
|
||||
h: number
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### `w` \{#Box2dModel-w-member}
|
||||
|
||||
<Small>Public PropertySignature</Small>
|
||||
|
||||
##### Signature
|
||||
|
||||
|
||||
```ts
|
||||
w: number
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### `x` \{#Box2dModel-x-member}
|
||||
|
||||
<Small>Public PropertySignature</Small>
|
||||
|
||||
##### Signature
|
||||
|
||||
|
||||
```ts
|
||||
x: number
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### `y` \{#Box2dModel-y-member}
|
||||
|
||||
<Small>Public PropertySignature</Small>
|
||||
|
||||
##### Signature
|
||||
|
||||
|
||||
```ts
|
||||
y: number
|
||||
```
|
||||
|
||||
---
|
||||
|
49
docs/gen/BreakPointProvider-function-1.mdx
Normal file
|
@ -0,0 +1,49 @@
|
|||
---
|
||||
title: BreakPointProvider
|
||||
status: published
|
||||
category: ui
|
||||
group: Function
|
||||
author: api
|
||||
date: 06/23/2023
|
||||
order: 0
|
||||
---<Small>Public Function</Small>
|
||||
|
||||
|
||||
|
||||
|
||||
##### Parameters
|
||||
|
||||
|
||||
<ParametersTable>
|
||||
|
||||
<ParametersTableRow>
|
||||
<ParametersTableName>
|
||||
|
||||
`{ children }`
|
||||
|
||||
</ParametersTableName>
|
||||
<ParametersTableDescription>
|
||||
|
||||
```ts
|
||||
{
|
||||
children: any
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
|
||||
</ParametersTableDescription>
|
||||
</ParametersTableRow>
|
||||
</ParametersTable>
|
||||
|
||||
##### Returns
|
||||
|
||||
|
||||
```ts
|
||||
JSX.Element
|
||||
```
|
||||
|
||||
##### References
|
||||
|
||||
[JSX.Element](/gen/@types/react-__global-JSX-Element-interface)
|
||||
|
26
docs/gen/Button-var.mdx
Normal file
|
@ -0,0 +1,26 @@
|
|||
---
|
||||
title: Button
|
||||
status: published
|
||||
category: ui
|
||||
group: Variable
|
||||
author: api
|
||||
date: 06/23/2023
|
||||
order: 1
|
||||
---<Small>Public Readonly Variable</Small>
|
||||
|
||||
|
||||
|
||||
|
||||
##### Signature
|
||||
|
||||
|
||||
```ts
|
||||
Button: React.ForwardRefExoticComponent<
|
||||
TLUiButtonProps & React.RefAttributes<HTMLButtonElement>
|
||||
>
|
||||
```
|
||||
|
||||
##### References
|
||||
|
||||
[React.ForwardRefExoticComponent](/gen/@types/react-React-ForwardRefExoticComponent-interface), [TLUiButtonProps](/gen/ui/TLUiButtonProps-interface), [React.RefAttributes](/gen/@types/react-React-RefAttributes-interface), [HTMLButtonElement](/gen/HTMLButtonElement-interface)
|
||||
|
24
docs/gen/CameraRecordType-var.mdx
Normal file
|
@ -0,0 +1,24 @@
|
|||
---
|
||||
title: CameraRecordType
|
||||
status: published
|
||||
category: tlschema
|
||||
group: Variable
|
||||
author: api
|
||||
date: 06/23/2023
|
||||
order: 8
|
||||
---<Small>Public Readonly Variable</Small>
|
||||
|
||||
|
||||
|
||||
|
||||
##### Signature
|
||||
|
||||
|
||||
```ts
|
||||
CameraRecordType: import('@tldraw/store').RecordType<TLCamera, never>
|
||||
```
|
||||
|
||||
##### References
|
||||
|
||||
[RecordType](/gen/store/RecordType-class), [TLCamera](/gen/tlschema/TLCamera-interface)
|
||||
|