anniedrawing 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +33 -0
- package/LICENSE +21 -0
- package/NOTICE +292 -0
- package/README.md +162 -0
- package/dist/agent/describe.d.ts +12 -0
- package/dist/agent/index.d.ts +10 -0
- package/dist/agent/index.js +2 -0
- package/dist/agent/index.js.map +1 -0
- package/dist/agent/place.d.ts +4 -0
- package/dist/agent/query.d.ts +3 -0
- package/dist/agent/toolDefs.d.ts +343 -0
- package/dist/board.d.ts +193 -0
- package/dist/core/catalog.d.ts +22 -0
- package/dist/core/clipboard.d.ts +2 -0
- package/dist/core/defaults.d.ts +19 -0
- package/dist/core/doc.d.ts +2 -0
- package/dist/core/ids.d.ts +5 -0
- package/dist/core/index.d.ts +16 -0
- package/dist/core/index.js +1 -0
- package/dist/core/item.d.ts +25 -0
- package/dist/core/links.d.ts +21 -0
- package/dist/core/locks.d.ts +3 -0
- package/dist/core/migrate.d.ts +5 -0
- package/dist/core/paste.d.ts +27 -0
- package/dist/core/schema.d.ts +644 -0
- package/dist/core/types.d.ts +313 -0
- package/dist/docs/agents-repository.md +56 -0
- package/dist/docs/agents.md +157 -0
- package/dist/docs/api.md +258 -0
- package/dist/docs/board-js.md +345 -0
- package/dist/docs/code-of-conduct.md +11 -0
- package/dist/docs/contributing.md +35 -0
- package/dist/docs/decisions.md +107 -0
- package/dist/docs/extensions.md +122 -0
- package/dist/docs/format.md +79 -0
- package/dist/docs/index.html +993 -0
- package/dist/docs/license.txt +21 -0
- package/dist/docs/llms-full.txt +345 -0
- package/dist/docs/llms.txt +90 -0
- package/dist/docs/mcp.md +97 -0
- package/dist/docs/notice.txt +292 -0
- package/dist/docs/nunito-OFL.txt +93 -0
- package/dist/docs/releasing.md +38 -0
- package/dist/docs/security.md +33 -0
- package/dist/favicon.svg +1 -0
- package/dist/fellow.d.ts +7 -0
- package/dist/fellow.js +2 -0
- package/dist/fellow.js.map +1 -0
- package/dist/geo/box.d.ts +13 -0
- package/dist/geo/index.d.ts +5 -0
- package/dist/geo/picker.d.ts +25 -0
- package/dist/geo/router.d.ts +11 -0
- package/dist/geo/vec.d.ts +8 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.js +1 -0
- package/dist/input/autosave.d.ts +2 -0
- package/dist/input/cursors.d.ts +8 -0
- package/dist/input/measure.d.ts +6 -0
- package/dist/input/urlPaste.d.ts +18 -0
- package/dist/kinds/index.d.ts +2 -0
- package/dist/kinds/registry.d.ts +45 -0
- package/dist/porter/index.d.ts +5 -0
- package/dist/porter/indexedPng.d.ts +13 -0
- package/dist/porter/json.d.ts +3 -0
- package/dist/porter/png.d.ts +10 -0
- package/dist/porter/svg.d.ts +9 -0
- package/dist/shared/board-Bya0O1I7.js +2 -0
- package/dist/shared/board-Bya0O1I7.js.map +1 -0
- package/dist/shared/cards-DWgSVE54.js +2 -0
- package/dist/shared/cards-DWgSVE54.js.map +1 -0
- package/dist/shared/defaults-C-aC_B4z.js +2 -0
- package/dist/shared/defaults-C-aC_B4z.js.map +1 -0
- package/dist/shared/describe-DaWyf3qV.js +3 -0
- package/dist/shared/describe-DaWyf3qV.js.map +1 -0
- package/dist/shared/paste-C22i8o-g.js +2 -0
- package/dist/shared/paste-C22i8o-g.js.map +1 -0
- package/dist/shared/picker-Dv_i4iNP.js +2 -0
- package/dist/shared/picker-Dv_i4iNP.js.map +1 -0
- package/dist/shared/ui-Cay6AVqT.js +2 -0
- package/dist/shared/ui-Cay6AVqT.js.map +1 -0
- package/dist/shared/urlPaste-DN4JtgeB.js +2 -0
- package/dist/shared/urlPaste-DN4JtgeB.js.map +1 -0
- package/dist/stage/cards.d.ts +2 -0
- package/dist/stage/index.d.ts +3 -0
- package/dist/stage/itemView.d.ts +22 -0
- package/dist/stage/lens.d.ts +26 -0
- package/dist/stage/paint.d.ts +23 -0
- package/dist/stage/presence.d.ts +50 -0
- package/dist/stage/stage.d.ts +60 -0
- package/dist/style.css +2 -0
- package/dist/ui/icons.d.ts +2 -0
- package/dist/ui/index.d.ts +16 -0
- package/dist/ui/index.js +1 -0
- package/dist/ui/version.d.ts +3 -0
- package/llms-full.txt +345 -0
- package/llms.txt +90 -0
- package/package.json +120 -0
|
@@ -0,0 +1,292 @@
|
|
|
1
|
+
AnnieDrawing
|
|
2
|
+
Copyright 2026 Frontierz and AnnieDrawing contributors. MIT licensed.
|
|
3
|
+
Frontierz. Originally developed by Pau Garcia-Mila.
|
|
4
|
+
|
|
5
|
+
Independent implementation
|
|
6
|
+
The application code, documentation, inline icons and sample diagrams were
|
|
7
|
+
created for AnnieDrawing from its own product requirements. No implementation
|
|
8
|
+
from another drawing editor is incorporated. The GitHub mark in the board menu
|
|
9
|
+
is a trademark of GitHub, Inc., used only as a link to this project's
|
|
10
|
+
repository. Dependency use is listed below; this statement does not claim
|
|
11
|
+
ownership of third-party code or common ideas.
|
|
12
|
+
|
|
13
|
+
Direct runtime dependencies (MIT)
|
|
14
|
+
- @preact/signals-core — Preact contributors
|
|
15
|
+
- perfect-freehand — Steve Ruiz and contributors
|
|
16
|
+
- rbush — Vladimir Agafonkin
|
|
17
|
+
- valibot — Fabian Hiller and contributors
|
|
18
|
+
- nanoid — Andrey Sitnik
|
|
19
|
+
|
|
20
|
+
Optional integrations
|
|
21
|
+
- DOMPurify — dual licensed MPL-2.0 OR Apache-2.0; Cure53 and contributors.
|
|
22
|
+
AnnieDrawing consumers may use the Apache-2.0 option.
|
|
23
|
+
- ws in the separate MCP example — MIT; Einar Otto Stangvik and contributors
|
|
24
|
+
|
|
25
|
+
Demo typography
|
|
26
|
+
- Nunito variable font, distributed by @fontsource-variable/nunito,
|
|
27
|
+
uses SIL Open Font License 1.1. The demo self-hosts the installed font.
|
|
28
|
+
Original font copyright and the complete OFL text are in
|
|
29
|
+
node_modules/@fontsource-variable/nunito/LICENSE.
|
|
30
|
+
The library uses a system fallback when consumers do not supply the font.
|
|
31
|
+
|
|
32
|
+
The agent entry point also bundles @valibot/to-json-schema under MIT.
|
|
33
|
+
Build and test tooling includes TypeScript, Vite, Vitest, Playwright, Terser
|
|
34
|
+
and their transitive dependencies under the licenses in package-lock.json.
|
|
35
|
+
Vite 8 uses Lightning CSS (MPL-2.0) to minify CSS; it is not shipped as a
|
|
36
|
+
runtime dependency. Tooling is not a direct runtime dependency.
|
|
37
|
+
|
|
38
|
+
The release build preserves third-party license comments. Distributors must
|
|
39
|
+
retain applicable upstream notices for dependencies or font files they ship.
|
|
40
|
+
The lockfiles pin the exact dependency versions used for this checkout;
|
|
41
|
+
npm run check:licenses validates every locked package against a reviewed list.
|
|
42
|
+
Frontierz names and marks are not granted as trademarks by the MIT license.
|
|
43
|
+
GitHub and the GitHub logo are trademarks of GitHub, Inc.
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
--- @preact/signals-core ---
|
|
47
|
+
|
|
48
|
+
The MIT License (MIT)
|
|
49
|
+
|
|
50
|
+
Copyright (c) 2022-present Preact Team
|
|
51
|
+
|
|
52
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
53
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
54
|
+
in the Software without restriction, including without limitation the rights
|
|
55
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
56
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
57
|
+
furnished to do so, subject to the following conditions:
|
|
58
|
+
|
|
59
|
+
The above copyright notice and this permission notice shall be included in all
|
|
60
|
+
copies or substantial portions of the Software.
|
|
61
|
+
|
|
62
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
63
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
64
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
65
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
66
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
67
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
68
|
+
SOFTWARE.
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
--- perfect-freehand ---
|
|
73
|
+
|
|
74
|
+
MIT License
|
|
75
|
+
|
|
76
|
+
Copyright (c) 2021 Stephen Ruiz Ltd
|
|
77
|
+
|
|
78
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
79
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
80
|
+
in the Software without restriction, including without limitation the rights
|
|
81
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
82
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
83
|
+
furnished to do so, subject to the following conditions:
|
|
84
|
+
|
|
85
|
+
The above copyright notice and this permission notice shall be included in all
|
|
86
|
+
copies or substantial portions of the Software.
|
|
87
|
+
|
|
88
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
89
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
90
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
91
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
92
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
93
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
94
|
+
SOFTWARE.
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
--- rbush ---
|
|
99
|
+
|
|
100
|
+
MIT License
|
|
101
|
+
|
|
102
|
+
Copyright (c) 2024 Volodymyr Agafonkin
|
|
103
|
+
|
|
104
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
105
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
106
|
+
in the Software without restriction, including without limitation the rights
|
|
107
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
108
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
109
|
+
furnished to do so, subject to the following conditions:
|
|
110
|
+
|
|
111
|
+
The above copyright notice and this permission notice shall be included in
|
|
112
|
+
all copies or substantial portions of the Software.
|
|
113
|
+
|
|
114
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
115
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
116
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
117
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
118
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
119
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
120
|
+
THE SOFTWARE.
|
|
121
|
+
|
|
122
|
+
|
|
123
|
+
|
|
124
|
+
--- quickselect ---
|
|
125
|
+
|
|
126
|
+
ISC License
|
|
127
|
+
|
|
128
|
+
Copyright (c) 2024, Vladimir Agafonkin
|
|
129
|
+
|
|
130
|
+
Permission to use, copy, modify, and/or distribute this software for any purpose
|
|
131
|
+
with or without fee is hereby granted, provided that the above copyright notice
|
|
132
|
+
and this permission notice appear in all copies.
|
|
133
|
+
|
|
134
|
+
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
|
135
|
+
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
|
136
|
+
FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
|
137
|
+
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
|
|
138
|
+
OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
|
|
139
|
+
TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
|
|
140
|
+
THIS SOFTWARE.
|
|
141
|
+
|
|
142
|
+
|
|
143
|
+
|
|
144
|
+
--- valibot ---
|
|
145
|
+
|
|
146
|
+
MIT License
|
|
147
|
+
|
|
148
|
+
Copyright (c) Fabian Hiller
|
|
149
|
+
|
|
150
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
|
151
|
+
|
|
152
|
+
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
|
153
|
+
|
|
154
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
155
|
+
|
|
156
|
+
|
|
157
|
+
|
|
158
|
+
--- nanoid ---
|
|
159
|
+
|
|
160
|
+
The MIT License (MIT)
|
|
161
|
+
|
|
162
|
+
Copyright 2017 Andrey Sitnik <andrey@sitnik.es>
|
|
163
|
+
|
|
164
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
|
165
|
+
this software and associated documentation files (the "Software"), to deal in
|
|
166
|
+
the Software without restriction, including without limitation the rights to
|
|
167
|
+
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
|
168
|
+
the Software, and to permit persons to whom the Software is furnished to do so,
|
|
169
|
+
subject to the following conditions:
|
|
170
|
+
|
|
171
|
+
The above copyright notice and this permission notice shall be included in all
|
|
172
|
+
copies or substantial portions of the Software.
|
|
173
|
+
|
|
174
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
175
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
|
176
|
+
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
|
177
|
+
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
|
178
|
+
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
|
179
|
+
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
180
|
+
|
|
181
|
+
|
|
182
|
+
|
|
183
|
+
--- Nunito ---
|
|
184
|
+
|
|
185
|
+
Copyright 2014 The Nunito Project Authors (https://github.com/googlefonts/nunito) Nunito-Italic[wght].ttf: Copyright 2014 The Nunito Project Authors (https://github.com/googlefonts/nunito)
|
|
186
|
+
|
|
187
|
+
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
|
188
|
+
This license is copied below, and is also available with a FAQ at:
|
|
189
|
+
http://scripts.sil.org/OFL
|
|
190
|
+
|
|
191
|
+
|
|
192
|
+
-----------------------------------------------------------
|
|
193
|
+
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
|
|
194
|
+
-----------------------------------------------------------
|
|
195
|
+
|
|
196
|
+
PREAMBLE
|
|
197
|
+
The goals of the Open Font License (OFL) are to stimulate worldwide
|
|
198
|
+
development of collaborative font projects, to support the font creation
|
|
199
|
+
efforts of academic and linguistic communities, and to provide a free and
|
|
200
|
+
open framework in which fonts may be shared and improved in partnership
|
|
201
|
+
with others.
|
|
202
|
+
|
|
203
|
+
The OFL allows the licensed fonts to be used, studied, modified and
|
|
204
|
+
redistributed freely as long as they are not sold by themselves. The
|
|
205
|
+
fonts, including any derivative works, can be bundled, embedded,
|
|
206
|
+
redistributed and/or sold with any software provided that any reserved
|
|
207
|
+
names are not used by derivative works. The fonts and derivatives,
|
|
208
|
+
however, cannot be released under any other type of license. The
|
|
209
|
+
requirement for fonts to remain under this license does not apply
|
|
210
|
+
to any document created using the fonts or their derivatives.
|
|
211
|
+
|
|
212
|
+
DEFINITIONS
|
|
213
|
+
"Font Software" refers to the set of files released by the Copyright
|
|
214
|
+
Holder(s) under this license and clearly marked as such. This may
|
|
215
|
+
include source files, build scripts and documentation.
|
|
216
|
+
|
|
217
|
+
"Reserved Font Name" refers to any names specified as such after the
|
|
218
|
+
copyright statement(s).
|
|
219
|
+
|
|
220
|
+
"Original Version" refers to the collection of Font Software components as
|
|
221
|
+
distributed by the Copyright Holder(s).
|
|
222
|
+
|
|
223
|
+
"Modified Version" refers to any derivative made by adding to, deleting,
|
|
224
|
+
or substituting -- in part or in whole -- any of the components of the
|
|
225
|
+
Original Version, by changing formats or by porting the Font Software to a
|
|
226
|
+
new environment.
|
|
227
|
+
|
|
228
|
+
"Author" refers to any designer, engineer, programmer, technical
|
|
229
|
+
writer or other person who contributed to the Font Software.
|
|
230
|
+
|
|
231
|
+
PERMISSION & CONDITIONS
|
|
232
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
|
233
|
+
a copy of the Font Software, to use, study, copy, merge, embed, modify,
|
|
234
|
+
redistribute, and sell modified and unmodified copies of the Font
|
|
235
|
+
Software, subject to the following conditions:
|
|
236
|
+
|
|
237
|
+
1) Neither the Font Software nor any of its individual components,
|
|
238
|
+
in Original or Modified Versions, may be sold by itself.
|
|
239
|
+
|
|
240
|
+
2) Original or Modified Versions of the Font Software may be bundled,
|
|
241
|
+
redistributed and/or sold with any software, provided that each copy
|
|
242
|
+
contains the above copyright notice and this license. These can be
|
|
243
|
+
included either as stand-alone text files, human-readable headers or
|
|
244
|
+
in the appropriate machine-readable metadata fields within text or
|
|
245
|
+
binary files as long as those fields can be easily viewed by the user.
|
|
246
|
+
|
|
247
|
+
3) No Modified Version of the Font Software may use the Reserved Font
|
|
248
|
+
Name(s) unless explicit written permission is granted by the corresponding
|
|
249
|
+
Copyright Holder. This restriction only applies to the primary font name as
|
|
250
|
+
presented to the users.
|
|
251
|
+
|
|
252
|
+
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
|
|
253
|
+
Software shall not be used to promote, endorse or advertise any
|
|
254
|
+
Modified Version, except to acknowledge the contribution(s) of the
|
|
255
|
+
Copyright Holder(s) and the Author(s) or with their explicit written
|
|
256
|
+
permission.
|
|
257
|
+
|
|
258
|
+
5) The Font Software, modified or unmodified, in part or in whole,
|
|
259
|
+
must be distributed entirely under this license, and must not be
|
|
260
|
+
distributed under any other license. The requirement for fonts to
|
|
261
|
+
remain under this license does not apply to any document created
|
|
262
|
+
using the Font Software.
|
|
263
|
+
|
|
264
|
+
TERMINATION
|
|
265
|
+
This license becomes null and void if any of the above conditions are
|
|
266
|
+
not met.
|
|
267
|
+
|
|
268
|
+
DISCLAIMER
|
|
269
|
+
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
270
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
|
|
271
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
|
|
272
|
+
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
|
|
273
|
+
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
|
274
|
+
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
|
275
|
+
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
276
|
+
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
|
|
277
|
+
OTHER DEALINGS IN THE FONT SOFTWARE.
|
|
278
|
+
|
|
279
|
+
|
|
280
|
+
|
|
281
|
+
--- @valibot/to-json-schema (bundled in the agent entry point) ---
|
|
282
|
+
|
|
283
|
+
MIT License
|
|
284
|
+
|
|
285
|
+
Copyright (c) Fabian Hiller
|
|
286
|
+
|
|
287
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
|
288
|
+
|
|
289
|
+
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
|
290
|
+
|
|
291
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
292
|
+
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
Copyright 2014 The Nunito Project Authors (https://github.com/googlefonts/nunito) Nunito-Italic[wght].ttf: Copyright 2014 The Nunito Project Authors (https://github.com/googlefonts/nunito)
|
|
2
|
+
|
|
3
|
+
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
|
4
|
+
This license is copied below, and is also available with a FAQ at:
|
|
5
|
+
http://scripts.sil.org/OFL
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
-----------------------------------------------------------
|
|
9
|
+
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
|
|
10
|
+
-----------------------------------------------------------
|
|
11
|
+
|
|
12
|
+
PREAMBLE
|
|
13
|
+
The goals of the Open Font License (OFL) are to stimulate worldwide
|
|
14
|
+
development of collaborative font projects, to support the font creation
|
|
15
|
+
efforts of academic and linguistic communities, and to provide a free and
|
|
16
|
+
open framework in which fonts may be shared and improved in partnership
|
|
17
|
+
with others.
|
|
18
|
+
|
|
19
|
+
The OFL allows the licensed fonts to be used, studied, modified and
|
|
20
|
+
redistributed freely as long as they are not sold by themselves. The
|
|
21
|
+
fonts, including any derivative works, can be bundled, embedded,
|
|
22
|
+
redistributed and/or sold with any software provided that any reserved
|
|
23
|
+
names are not used by derivative works. The fonts and derivatives,
|
|
24
|
+
however, cannot be released under any other type of license. The
|
|
25
|
+
requirement for fonts to remain under this license does not apply
|
|
26
|
+
to any document created using the fonts or their derivatives.
|
|
27
|
+
|
|
28
|
+
DEFINITIONS
|
|
29
|
+
"Font Software" refers to the set of files released by the Copyright
|
|
30
|
+
Holder(s) under this license and clearly marked as such. This may
|
|
31
|
+
include source files, build scripts and documentation.
|
|
32
|
+
|
|
33
|
+
"Reserved Font Name" refers to any names specified as such after the
|
|
34
|
+
copyright statement(s).
|
|
35
|
+
|
|
36
|
+
"Original Version" refers to the collection of Font Software components as
|
|
37
|
+
distributed by the Copyright Holder(s).
|
|
38
|
+
|
|
39
|
+
"Modified Version" refers to any derivative made by adding to, deleting,
|
|
40
|
+
or substituting -- in part or in whole -- any of the components of the
|
|
41
|
+
Original Version, by changing formats or by porting the Font Software to a
|
|
42
|
+
new environment.
|
|
43
|
+
|
|
44
|
+
"Author" refers to any designer, engineer, programmer, technical
|
|
45
|
+
writer or other person who contributed to the Font Software.
|
|
46
|
+
|
|
47
|
+
PERMISSION & CONDITIONS
|
|
48
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
|
49
|
+
a copy of the Font Software, to use, study, copy, merge, embed, modify,
|
|
50
|
+
redistribute, and sell modified and unmodified copies of the Font
|
|
51
|
+
Software, subject to the following conditions:
|
|
52
|
+
|
|
53
|
+
1) Neither the Font Software nor any of its individual components,
|
|
54
|
+
in Original or Modified Versions, may be sold by itself.
|
|
55
|
+
|
|
56
|
+
2) Original or Modified Versions of the Font Software may be bundled,
|
|
57
|
+
redistributed and/or sold with any software, provided that each copy
|
|
58
|
+
contains the above copyright notice and this license. These can be
|
|
59
|
+
included either as stand-alone text files, human-readable headers or
|
|
60
|
+
in the appropriate machine-readable metadata fields within text or
|
|
61
|
+
binary files as long as those fields can be easily viewed by the user.
|
|
62
|
+
|
|
63
|
+
3) No Modified Version of the Font Software may use the Reserved Font
|
|
64
|
+
Name(s) unless explicit written permission is granted by the corresponding
|
|
65
|
+
Copyright Holder. This restriction only applies to the primary font name as
|
|
66
|
+
presented to the users.
|
|
67
|
+
|
|
68
|
+
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
|
|
69
|
+
Software shall not be used to promote, endorse or advertise any
|
|
70
|
+
Modified Version, except to acknowledge the contribution(s) of the
|
|
71
|
+
Copyright Holder(s) and the Author(s) or with their explicit written
|
|
72
|
+
permission.
|
|
73
|
+
|
|
74
|
+
5) The Font Software, modified or unmodified, in part or in whole,
|
|
75
|
+
must be distributed entirely under this license, and must not be
|
|
76
|
+
distributed under any other license. The requirement for fonts to
|
|
77
|
+
remain under this license does not apply to any document created
|
|
78
|
+
using the Font Software.
|
|
79
|
+
|
|
80
|
+
TERMINATION
|
|
81
|
+
This license becomes null and void if any of the above conditions are
|
|
82
|
+
not met.
|
|
83
|
+
|
|
84
|
+
DISCLAIMER
|
|
85
|
+
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
86
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
|
|
87
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
|
|
88
|
+
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
|
|
89
|
+
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
|
90
|
+
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
|
91
|
+
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
92
|
+
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
|
|
93
|
+
OTHER DEALINGS IN THE FONT SOFTWARE.
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# Release checklist
|
|
2
|
+
|
|
3
|
+
Publication is a maintainer action. The repository URL, issue tracker, and private contacts are pau@frontierz.com plus this GitHub project. The npm package is `anniedrawing`.
|
|
4
|
+
|
|
5
|
+
## Before publishing a version
|
|
6
|
+
|
|
7
|
+
- Confirm access to the `anniedrawing` npm package. Check the intended release version and update the changelog.
|
|
8
|
+
- Keep SECURITY.md and CODE_OF_CONDUCT.md pointed at pau@frontierz.com, and keep GitHub private vulnerability reporting enabled.
|
|
9
|
+
- Review the license, third-party notices, DCO requirements, and provenance. Keep full dependency and font notices in distributed bundles where required.
|
|
10
|
+
- Keep branch protection, required CI, Dependabot, and secret scanning enabled on the public repository.
|
|
11
|
+
|
|
12
|
+
## Verify the release tree
|
|
13
|
+
|
|
14
|
+
```sh
|
|
15
|
+
npm ci
|
|
16
|
+
npm ci --prefix examples/mcp
|
|
17
|
+
npm run check
|
|
18
|
+
npm run build:demo
|
|
19
|
+
npx playwright install --with-deps chromium firefox webkit
|
|
20
|
+
npm run test:e2e
|
|
21
|
+
npm run test:perf
|
|
22
|
+
npm test --prefix examples/mcp
|
|
23
|
+
node examples/mcp/live-smoke.mjs
|
|
24
|
+
npm run test:consumer
|
|
25
|
+
npm pack --dry-run
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
Inspect the tarball: compiled JavaScript, declarations, CSS, README, license, notices, changelog, and AI documentation. The package must not contain private source documents, local drawings, tokens, browser artifacts, or `node_modules`. Install the tarball into a clean consumer and exercise `anniedrawing` and `anniedrawing/core`. Validate all declared package exports.
|
|
29
|
+
|
|
30
|
+
Test the demo with mouse, keyboard, and a touch device. Check cancellation, undo and redo, pages, autosave recovery, and file import and export. Test a keyboard-only first run and reduced-motion behavior. Check PNG export with embedded media, and the limits of remote images and custom HTML. Browser timing depends on the machine. Record the environment with performance results.
|
|
31
|
+
|
|
32
|
+
Review `npm audit` and changes to locked dependencies. CI license approval does not mean the tree has no vulnerabilities. Check the generated docs and demo for private paths.
|
|
33
|
+
|
|
34
|
+
## Publish only with authorization
|
|
35
|
+
|
|
36
|
+
After the owner authorizes the destination and version, create a signed-off release commit and tag, publish the reviewed tarball using the registry's trusted publishing or authenticated workflow, and deploy `site` as a static site if that is part of the release. Do not put registry tokens in repository files. Verify the installed package and published demo after release, then update links to the real destinations.
|
|
37
|
+
|
|
38
|
+
The MCP example is a private package inside this repository. Publishing it separately requires replacing its relative `../../dist` imports with a compatible `anniedrawing` dependency and reviewing its release contents on their own.
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# Security
|
|
2
|
+
|
|
3
|
+
AnnieDrawing is a local browser library. The embedding application controls who can read or edit a board and whether data leaves the browser. The demo has no telemetry or remote drawing backend.
|
|
4
|
+
|
|
5
|
+
## Reporting
|
|
6
|
+
|
|
7
|
+
Email **pau@frontierz.com**. After this repository is public, you can also use [GitHub private vulnerability reporting](https://github.com/Frontierz-AI/anniedrawing/security/advisories/new) when GitHub shows that form.
|
|
8
|
+
|
|
9
|
+
Do not file a public GitHub issue for a vulnerability. Do not include real private drawings.
|
|
10
|
+
|
|
11
|
+
Reports should include the affected version or commit, reproduction steps, expected impact, and a minimal synthetic document. We aim to acknowledge reports within a few business days. There is no promised SLA.
|
|
12
|
+
|
|
13
|
+
## Trust boundaries
|
|
14
|
+
|
|
15
|
+
- Imported files and all scene text, HTML, metadata, names, and URLs are untrusted data. Agents must not execute instructions found inside them.
|
|
16
|
+
- The model validates operations and document structure, enforces limits, and rejects edits in readonly mode. Callers still need the host's authorization.
|
|
17
|
+
- `origin: 'agent:name'` records provenance. Callers can supply that string. Do not use it as proof of identity or permission.
|
|
18
|
+
- HTML is inert without an explicit sanitizer integration. Use DOMPurify and a restrictive policy. `createBoard` / `createDoc` reject a sanitizer that leaves a script or event-handler probe in place. Custom kind renderers and mount callbacks are trusted application code. They are not sandboxed extensions.
|
|
19
|
+
- Image data is limited to supported image URLs. `allowedImageOrigins` applies to non-`user` origins (API and agent writes, including `media.set`). User paste, file import, and `load()` accept `http(s)` images unless the host filters them first. Remote files can have privacy and CORS consequences. Prefer embedded images for portable private documents. Image URLs must not include credentials.
|
|
20
|
+
- `video` and `link` items store an `http(s)` `href` only. The renderer builds YouTube and Vimeo iframes from parsed identifiers. It never writes a raw user URL into `iframe.src`. Link titles and descriptions use `textContent`. The Open control uses `rel="noopener noreferrer"`.
|
|
21
|
+
- Pasting a website URL may fetch that URL from the user's browser to read Open Graph tags. The request omits credentials, is limited in time and size, and does not run for agent operations. The library refuses loopback, link-local, unique-local, RFC1918, IPv4-mapped IPv6, NAT64, multicast, and hostnames that begin with a private IPv4 (for example `127.0.0.1.nip.io`). Open Graph `og:image` URLs must pass the same check; a public page cannot advertise a private image. Browser unfurl cannot see the DNS result behind a hostname, so a host that needs that check should pass its own `unfurl`. The local Vite demo proxy resolves A/AAAA records and refuses private answers. Hosts that do not want any fetch can pass `unfurl: false`. Loading a video player contacts YouTube or Vimeo when that item is shown.
|
|
22
|
+
- `window.__anniedrawing` is off unless the host sets `exposeGlobal: true`. The local demo opts in. Any script already running in that page can then read and edit the board. Protect the surrounding page from XSS.
|
|
23
|
+
- Local autosave is unencrypted browser storage. Clearing the profile or applying a storage policy can remove it. Export `.annie` files for portable copies.
|
|
24
|
+
|
|
25
|
+
## MCP example
|
|
26
|
+
|
|
27
|
+
The MCP connection to an agent is stdio. Its optional browser bridge binds only to `127.0.0.1`, checks an exact browser `Origin`, requires a token of at least 32 characters, permits one authenticated board, and applies request limits and timeouts. The token travels in an authentication frame, never a URL. Generate a fresh random token per session. Connecting a board grants the local client the ability to read and edit it through the published tools.
|
|
28
|
+
|
|
29
|
+
Do not expose the bridge port on a public interface, place the token in source control, or attach a board automatically. Disconnect it when finished. A timeout is ambiguous for a mutation: re-read state before retrying. The bridge is a development integration for one local board.
|
|
30
|
+
|
|
31
|
+
## Maintenance
|
|
32
|
+
|
|
33
|
+
Run `npm run check:licenses`, review `npm audit` and dependency changes, and preserve lockfiles. The license checker is an allowlist. It does not replace legal review or a vulnerability scanner. Releases require a fresh review of dependency updates, sanitizer behavior, and export behavior. See [the release checklist](releasing.md).
|
package/dist/favicon.svg
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48"><rect width="48" height="48" rx="15" fill="#05D9AB"/><path d="M14 32 24 12l10 20M18 25h12" fill="none" stroke="#103639" stroke-linecap="round" stroke-linejoin="round" stroke-width="4"/><circle cx="35" cy="13" r="3" fill="#103639"/></svg>
|
package/dist/fellow.d.ts
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { type BoardOptions } from './board.js';
|
|
2
|
+
import type { AgentPresenceOptions, ApplyOptions, ApplyResult, ChangeLog } from './core/types.js';
|
|
3
|
+
export type { AgentPresenceOptions, ApplyOptions, ApplyResult, BoardOptions, ChangeLog };
|
|
4
|
+
export interface FellowBoardOptions extends BoardOptions {
|
|
5
|
+
fellowName?: string;
|
|
6
|
+
}
|
|
7
|
+
export declare function createFellowBoard(host: HTMLElement, options?: FellowBoardOptions): import("./board.js").Board;
|
package/dist/fellow.js
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{n as e}from"./shared/board-Bya0O1I7.js";function a(a,n={}){const{fellowName:t,...o}=n;return e(a,{agentHistory:"hidden",agentReveal:"fit",agentPlaceGap:120,agentPresence:{maxStops:3,durationScale:.55},exposeGlobal:!1,unfurl:!1,ui:{menu:!1,export:!1,pages:!1},...o,agentName:o.agentName??t})}export{a as createFellowBoard};
|
|
2
|
+
//# sourceMappingURL=fellow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fellow.js","names":[],"sources":["../src/fellow.ts"],"sourcesContent":["import { createBoard, type BoardOptions } from './board';\nimport type { AgentPresenceOptions, ApplyOptions, ApplyResult, ChangeLog } from './core/types';\n\nexport type { AgentPresenceOptions, ApplyOptions, ApplyResult, BoardOptions, ChangeLog };\n\nexport interface FellowBoardOptions extends BoardOptions {\n fellowName?: string;\n}\n\nexport function createFellowBoard(host: HTMLElement, options: FellowBoardOptions = {}) {\n const { fellowName, ...rest } = options;\n return createBoard(host, {\n agentHistory: 'hidden',\n agentReveal: 'fit',\n agentPlaceGap: 120,\n agentPresence: { maxStops: 3, durationScale: 0.55 },\n exposeGlobal: false,\n unfurl: false,\n ui: { menu: false, export: false, pages: false },\n ...rest,\n agentName: rest.agentName ?? fellowName,\n });\n}\n"],"mappings":"+CASA,SAAgB,EAAkB,EAAmB,EAA8B,CAAC,GAClF,MAAM,WAAE,KAAe,GAAS,EAChC,OAAO,EAAY,EAAM,CACvB,aAAc,SACd,YAAa,MACb,cAAe,IACf,cAAe,CAAE,SAAU,EAAG,cAAe,KAC7C,cAAc,EACd,QAAQ,EACR,GAAI,CAAE,MAAM,EAAO,QAAQ,EAAO,OAAO,MACtC,EACH,UAAW,EAAK,WAAa,GAEjC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { Box, Item, Point } from '../core/types.js';
|
|
2
|
+
import { type OutlineResolver } from './router.js';
|
|
3
|
+
export type ItemLookup = ((id: string) => Item | undefined) | Map<string, Item> | Record<string, Item> | Item[];
|
|
4
|
+
export declare function lookupItem(lookup: ItemLookup | undefined, id: string): Item | undefined;
|
|
5
|
+
export declare function flattenItems(items: Item[]): Item[];
|
|
6
|
+
export declare const centerOf: (b: Box) => Point;
|
|
7
|
+
export declare function boxCorners(box: Box, rotation?: number, origin?: Point): Point[];
|
|
8
|
+
export declare function boxFromPoints(points: Point[]): Box;
|
|
9
|
+
export declare function itemBounds(item: Item, lookup?: ItemLookup, outline?: OutlineResolver): Box;
|
|
10
|
+
export declare function boundsOf(items: Item[], lookup?: ItemLookup, outline?: OutlineResolver): Box;
|
|
11
|
+
export declare const intersects: (a: Box, b: Box) => boolean;
|
|
12
|
+
export declare const contains: (a: Box, b: Box) => boolean;
|
|
13
|
+
export declare const containsPoint: (b: Box, p: Point) => boolean;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { Box, Item, Outline, Point } from '../core/types.js';
|
|
2
|
+
import { type ItemLookup } from './box.js';
|
|
3
|
+
import { type OutlineResolver } from './router.js';
|
|
4
|
+
export interface PickOptions {
|
|
5
|
+
tolerance?: number;
|
|
6
|
+
enteredGroup?: string;
|
|
7
|
+
includeLocked?: boolean;
|
|
8
|
+
outline?: OutlineResolver;
|
|
9
|
+
ignore?: (item: Item) => boolean;
|
|
10
|
+
}
|
|
11
|
+
export declare function hitTest(item: Item, point: Point, tolerance?: number, lookup?: ItemLookup, outline?: Outline | Outline[] | OutlineResolver): boolean;
|
|
12
|
+
export declare class SpatialIndex {
|
|
13
|
+
private outline?;
|
|
14
|
+
private tree;
|
|
15
|
+
private lookup;
|
|
16
|
+
private entries;
|
|
17
|
+
constructor(items?: Item[], outline?: OutlineResolver | undefined);
|
|
18
|
+
set(items: Item[], outline?: OutlineResolver | undefined): void;
|
|
19
|
+
search(box: Box): Item[];
|
|
20
|
+
enclosed(box: Box, options?: {
|
|
21
|
+
enteredGroup?: string;
|
|
22
|
+
ignore?: (item: Item) => boolean;
|
|
23
|
+
}): Item[];
|
|
24
|
+
pick(point: Point, options?: PickOptions): Item | undefined;
|
|
25
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Box, Endpoint, Item, Outline, Point } from '../core/types.js';
|
|
2
|
+
import { type ItemLookup } from './box.js';
|
|
3
|
+
export type OutlineResolver = (item: Item) => Outline | Outline[] | undefined;
|
|
4
|
+
export declare function resolveEndpoint(endpoint: Endpoint | undefined, other: Endpoint | Point | undefined, lookup?: ItemLookup, outline?: OutlineResolver): Point;
|
|
5
|
+
export interface ConnectorGeometry {
|
|
6
|
+
points: Point[];
|
|
7
|
+
d: string;
|
|
8
|
+
midpoint: Point;
|
|
9
|
+
bounds: Box;
|
|
10
|
+
}
|
|
11
|
+
export declare function routeConnector(item: Item, lookup?: ItemLookup, outline?: OutlineResolver): ConnectorGeometry;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { Point } from '../core/types.js';
|
|
2
|
+
export declare const distance: (a: Point, b: Point) => number;
|
|
3
|
+
export declare function rotatePoint(p: Point, center: Point, degrees: number): Point;
|
|
4
|
+
export declare function segmentDistance(p: Point, a: Point, b: Point): number;
|
|
5
|
+
export declare function pointInPolygon(p: Point, polygon: Point[]): boolean;
|
|
6
|
+
export declare function simplifyPoints<T extends [number, number, number?]>(points: T[], epsilon?: number): T[];
|
|
7
|
+
/** Recursive simplification that also keeps pressure inflections. Used for freehand strokes. */
|
|
8
|
+
export declare function simplifyStroke<T extends [number, number, number?]>(points: T[], epsilon: number): T[];
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { Board, createBoard } from './board.js';
|
|
2
|
+
export type { BoardOptions, UiOptions, UiExportFormat } from './board.js';
|
|
3
|
+
export type * from './core/types.js';
|
|
4
|
+
export { CATALOG_VERSION, KIND_CATALOG, kindsSince } from './core/catalog.js';
|
|
5
|
+
export type { KindCatalogEntry, KindCatalogSnapshot } from './core/catalog.js';
|
|
6
|
+
export { defineKind, registerKind } from './kinds/index.js';
|
|
7
|
+
export type { KindDef, KindView, Outline, SVGContext } from './kinds/index.js';
|
package/dist/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{b as s,v as a,y as r}from"./shared/defaults-C-aC_B4z.js";import{i as o,n as t,r as d,t as e}from"./shared/board-Bya0O1I7.js";export{e as Board,a as CATALOG_VERSION,r as KIND_CATALOG,t as createBoard,d as defineKind,s as kindsSince,o as registerKind};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export declare const cursorArrow = "M8.5 6.5c-1.3-.5-2.5.7-2 2l6.1 19.4c.5 1.6 2.7 1.7 3.3.1l3.1-8a1.5 1.5 0 0 1 .9-.9l8-3.1c1.6-.6 1.5-2.8-.1-3.3Z";
|
|
2
|
+
export declare const selectionCursor: string;
|
|
3
|
+
export declare const drawingCursor: string;
|
|
4
|
+
export declare function cursorForTool(tool: string, state?: {
|
|
5
|
+
space?: boolean;
|
|
6
|
+
readonly?: boolean;
|
|
7
|
+
panning?: boolean;
|
|
8
|
+
}): string;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { type LinkPreview } from '../core/links.js';
|
|
2
|
+
import type { ApplyOptions, ApplyResult, Item, Op, Point } from '../core/types.js';
|
|
3
|
+
export interface PasteHost {
|
|
4
|
+
pageId: string;
|
|
5
|
+
items: Item[];
|
|
6
|
+
destroyed: boolean;
|
|
7
|
+
unfurl?: false | ((url: string) => Promise<LinkPreview | undefined>);
|
|
8
|
+
view: {
|
|
9
|
+
center: Point;
|
|
10
|
+
};
|
|
11
|
+
host: HTMLElement;
|
|
12
|
+
apply(ops: Op[], options?: ApplyOptions): ApplyResult;
|
|
13
|
+
select(ids: string[]): void;
|
|
14
|
+
get(id: string): Item | undefined;
|
|
15
|
+
}
|
|
16
|
+
/** Replace the href on an existing video or link item. */
|
|
17
|
+
export declare function updateHref(host: PasteHost, id: string, value: string): ApplyResult;
|
|
18
|
+
export declare function pastePlain(host: PasteHost, value: string, point?: Point): void;
|