@bendyline/squisq-editor-react 2.3.1 → 2.3.2
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/NOTICE.md +3 -3
- package/README.md +1 -1
- package/THIRD_PARTY_LICENSES.txt +308 -0
- package/dist/{chunk-TRCKHRBS.js → chunk-6QFPBDTY.js} +126 -45
- package/dist/index.d.ts +3 -3
- package/dist/index.js +6 -5
- package/dist/shell/index.d.ts +1 -1
- package/dist/shell/index.js +1 -1
- package/dist/{shell-BxSCBm4H.d.ts → shell-DYdK5qFd.d.ts} +7 -1
- package/dist/styles/index.css +8 -4
- package/dist/styles/index.d.ts +1 -0
- package/package.json +12 -8
package/NOTICE.md
CHANGED
|
@@ -28,7 +28,7 @@ Third-party components remain under their respective license terms.
|
|
|
28
28
|
| @monaco-editor/react _(bundled)_ | 4.7.0 | MIT | https://github.com/suren-atoyan/monaco-react |
|
|
29
29
|
| @monaco-editor/loader _(bundled)_ | 1.7.0 | MIT | https://github.com/suren-atoyan/monaco-loader |
|
|
30
30
|
| state-local _(bundled)_ | 1.0.7 | MIT | https://github.com/suren-atoyan/state-local |
|
|
31
|
-
| monaco-editor _(peer)_ |
|
|
31
|
+
| monaco-editor _(peer)_ | ~0.50.0 | MIT | https://github.com/microsoft/monaco-editor |
|
|
32
32
|
| react _(peer)_ | ^18.0.0 \|\| ^19.0.0 | MIT | https://github.com/facebook/react |
|
|
33
33
|
| react-dom _(peer)_ | ^18.0.0 \|\| ^19.0.0 | MIT | https://github.com/facebook/react |
|
|
34
34
|
|
|
@@ -36,5 +36,5 @@ Font Awesome Free contains icon artwork under CC-BY-4.0, font files under
|
|
|
36
36
|
OFL-1.1, and CSS/JavaScript under MIT. Attribution is required when its icon
|
|
37
37
|
artwork is redistributed. The Monaco React adapter, loader, and state-local
|
|
38
38
|
are bundled so consumers do not inherit the adapter's mandatory Monaco peer.
|
|
39
|
-
|
|
40
|
-
|
|
39
|
+
Exact third-party license texts for the bundled adapter, loader, state helper,
|
|
40
|
+
and Font Awesome assets are shipped in THIRD_PARTY_LICENSES.txt.
|
package/README.md
CHANGED
|
@@ -14,7 +14,7 @@ npm install @bendyline/squisq-editor-react @bendyline/squisq @bendyline/squisq-r
|
|
|
14
14
|
```
|
|
15
15
|
|
|
16
16
|
**Peer dependencies:** `react` and `react-dom` (v18 or v19), plus
|
|
17
|
-
`monaco-editor` (
|
|
17
|
+
`monaco-editor` (~0.50.0). Monaco is loaded lazily at runtime, but it is a
|
|
18
18
|
required peer because the package's public TypeScript declarations expose
|
|
19
19
|
Monaco editor types. Tiptap is bundled as a regular dependency — you don't
|
|
20
20
|
need to install it yourself.
|
|
@@ -0,0 +1,308 @@
|
|
|
1
|
+
THIRD-PARTY LICENSES FOR @bendyline/squisq-editor-react
|
|
2
|
+
|
|
3
|
+
Generated from the actual esbuild input graph. Package-local license, copying,
|
|
4
|
+
and notice files are reproduced verbatim. When an npm tarball omits its
|
|
5
|
+
repository license, the pinned upstream copy is vendored and identified below.
|
|
6
|
+
|
|
7
|
+
COMPONENTS
|
|
8
|
+
- @fortawesome/fontawesome-free@7.2.0 ((CC-BY-4.0 AND OFL-1.1 AND MIT)); files: LICENSE.txt
|
|
9
|
+
- @monaco-editor/loader@1.7.0 (MIT); files: LICENSE
|
|
10
|
+
- @monaco-editor/react@4.7.0 (MIT); files: LICENSE
|
|
11
|
+
- @tiptap/core@2.27.2 (MIT); files: VENDORED-tiptap-2.27.2.txt
|
|
12
|
+
- @tiptap/extension-heading@2.27.2 (MIT); files: VENDORED-tiptap-2.27.2.txt
|
|
13
|
+
- state-local@1.0.7 (MIT); files: LICENSE
|
|
14
|
+
|
|
15
|
+
==============================================================================
|
|
16
|
+
@fortawesome/fontawesome-free@7.2.0 - LICENSE.txt
|
|
17
|
+
==============================================================================
|
|
18
|
+
Fonticons, Inc. (https://fontawesome.com)
|
|
19
|
+
|
|
20
|
+
--------------------------------------------------------------------------------
|
|
21
|
+
|
|
22
|
+
Font Awesome Free License
|
|
23
|
+
|
|
24
|
+
Font Awesome Free is free, open source, and GPL friendly. You can use it for
|
|
25
|
+
commercial projects, open source projects, or really almost whatever you want.
|
|
26
|
+
Full Font Awesome Free license: https://fontawesome.com/license/free.
|
|
27
|
+
|
|
28
|
+
--------------------------------------------------------------------------------
|
|
29
|
+
|
|
30
|
+
# Icons: CC BY 4.0 License (https://creativecommons.org/licenses/by/4.0/)
|
|
31
|
+
|
|
32
|
+
The Font Awesome Free download is licensed under a Creative Commons
|
|
33
|
+
Attribution 4.0 International License and applies to all icons packaged
|
|
34
|
+
as SVG and JS file types.
|
|
35
|
+
|
|
36
|
+
--------------------------------------------------------------------------------
|
|
37
|
+
|
|
38
|
+
# Fonts: SIL OFL 1.1 License
|
|
39
|
+
|
|
40
|
+
In the Font Awesome Free download, the SIL OFL license applies to all icons
|
|
41
|
+
packaged as web and desktop font files.
|
|
42
|
+
|
|
43
|
+
Copyright (c) 2026 Fonticons, Inc. (https://fontawesome.com)
|
|
44
|
+
with Reserved Font Name: "Font Awesome".
|
|
45
|
+
|
|
46
|
+
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
|
47
|
+
This license is copied below, and is also available with a FAQ at:
|
|
48
|
+
http://scripts.sil.org/OFL
|
|
49
|
+
|
|
50
|
+
SIL OPEN FONT LICENSE
|
|
51
|
+
Version 1.1 - 26 February 2007
|
|
52
|
+
|
|
53
|
+
PREAMBLE
|
|
54
|
+
The goals of the Open Font License (OFL) are to stimulate worldwide
|
|
55
|
+
development of collaborative font projects, to support the font creation
|
|
56
|
+
efforts of academic and linguistic communities, and to provide a free and
|
|
57
|
+
open framework in which fonts may be shared and improved in partnership
|
|
58
|
+
with others.
|
|
59
|
+
|
|
60
|
+
The OFL allows the licensed fonts to be used, studied, modified and
|
|
61
|
+
redistributed freely as long as they are not sold by themselves. The
|
|
62
|
+
fonts, including any derivative works, can be bundled, embedded,
|
|
63
|
+
redistributed and/or sold with any software provided that any reserved
|
|
64
|
+
names are not used by derivative works. The fonts and derivatives,
|
|
65
|
+
however, cannot be released under any other type of license. The
|
|
66
|
+
requirement for fonts to remain under this license does not apply
|
|
67
|
+
to any document created using the fonts or their derivatives.
|
|
68
|
+
|
|
69
|
+
DEFINITIONS
|
|
70
|
+
"Font Software" refers to the set of files released by the Copyright
|
|
71
|
+
Holder(s) under this license and clearly marked as such. This may
|
|
72
|
+
include source files, build scripts and documentation.
|
|
73
|
+
|
|
74
|
+
"Reserved Font Name" refers to any names specified as such after the
|
|
75
|
+
copyright statement(s).
|
|
76
|
+
|
|
77
|
+
"Original Version" refers to the collection of Font Software components as
|
|
78
|
+
distributed by the Copyright Holder(s).
|
|
79
|
+
|
|
80
|
+
"Modified Version" refers to any derivative made by adding to, deleting,
|
|
81
|
+
or substituting — in part or in whole — any of the components of the
|
|
82
|
+
Original Version, by changing formats or by porting the Font Software to a
|
|
83
|
+
new environment.
|
|
84
|
+
|
|
85
|
+
"Author" refers to any designer, engineer, programmer, technical
|
|
86
|
+
writer or other person who contributed to the Font Software.
|
|
87
|
+
|
|
88
|
+
PERMISSION & CONDITIONS
|
|
89
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
|
90
|
+
a copy of the Font Software, to use, study, copy, merge, embed, modify,
|
|
91
|
+
redistribute, and sell modified and unmodified copies of the Font
|
|
92
|
+
Software, subject to the following conditions:
|
|
93
|
+
|
|
94
|
+
1) Neither the Font Software nor any of its individual components,
|
|
95
|
+
in Original or Modified Versions, may be sold by itself.
|
|
96
|
+
|
|
97
|
+
2) Original or Modified Versions of the Font Software may be bundled,
|
|
98
|
+
redistributed and/or sold with any software, provided that each copy
|
|
99
|
+
contains the above copyright notice and this license. These can be
|
|
100
|
+
included either as stand-alone text files, human-readable headers or
|
|
101
|
+
in the appropriate machine-readable metadata fields within text or
|
|
102
|
+
binary files as long as those fields can be easily viewed by the user.
|
|
103
|
+
|
|
104
|
+
3) No Modified Version of the Font Software may use the Reserved Font
|
|
105
|
+
Name(s) unless explicit written permission is granted by the corresponding
|
|
106
|
+
Copyright Holder. This restriction only applies to the primary font name as
|
|
107
|
+
presented to the users.
|
|
108
|
+
|
|
109
|
+
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
|
|
110
|
+
Software shall not be used to promote, endorse or advertise any
|
|
111
|
+
Modified Version, except to acknowledge the contribution(s) of the
|
|
112
|
+
Copyright Holder(s) and the Author(s) or with their explicit written
|
|
113
|
+
permission.
|
|
114
|
+
|
|
115
|
+
5) The Font Software, modified or unmodified, in part or in whole,
|
|
116
|
+
must be distributed entirely under this license, and must not be
|
|
117
|
+
distributed under any other license. The requirement for fonts to
|
|
118
|
+
remain under this license does not apply to any document created
|
|
119
|
+
using the Font Software.
|
|
120
|
+
|
|
121
|
+
TERMINATION
|
|
122
|
+
This license becomes null and void if any of the above conditions are
|
|
123
|
+
not met.
|
|
124
|
+
|
|
125
|
+
DISCLAIMER
|
|
126
|
+
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
127
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
|
|
128
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
|
|
129
|
+
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
|
|
130
|
+
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
|
131
|
+
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
|
132
|
+
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
133
|
+
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
|
|
134
|
+
OTHER DEALINGS IN THE FONT SOFTWARE.
|
|
135
|
+
|
|
136
|
+
--------------------------------------------------------------------------------
|
|
137
|
+
|
|
138
|
+
# Code: MIT License (https://opensource.org/licenses/MIT)
|
|
139
|
+
|
|
140
|
+
In the Font Awesome Free download, the MIT license applies to all non-font and
|
|
141
|
+
non-icon files.
|
|
142
|
+
|
|
143
|
+
Copyright 2026 Fonticons, Inc.
|
|
144
|
+
|
|
145
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
|
146
|
+
this software and associated documentation files (the "Software"), to deal in the
|
|
147
|
+
Software without restriction, including without limitation the rights to use, copy,
|
|
148
|
+
modify, merge, publish, distribute, sublicense, and/or sell copies of the Software,
|
|
149
|
+
and to permit persons to whom the Software is furnished to do so, subject to the
|
|
150
|
+
following conditions:
|
|
151
|
+
|
|
152
|
+
The above copyright notice and this permission notice shall be included in all
|
|
153
|
+
copies or substantial portions of the Software.
|
|
154
|
+
|
|
155
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
|
156
|
+
INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
|
|
157
|
+
PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
|
158
|
+
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
|
159
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
|
160
|
+
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
161
|
+
|
|
162
|
+
--------------------------------------------------------------------------------
|
|
163
|
+
|
|
164
|
+
# Attribution
|
|
165
|
+
|
|
166
|
+
Attribution is required by MIT, SIL OFL, and CC BY licenses. Downloaded Font
|
|
167
|
+
Awesome Free files already contain embedded comments with sufficient
|
|
168
|
+
attribution, so you shouldn't need to do anything additional when using these
|
|
169
|
+
files normally.
|
|
170
|
+
|
|
171
|
+
We've kept attribution comments terse, so we ask that you do not actively work
|
|
172
|
+
to remove them from files, especially code. They're a great way for folks to
|
|
173
|
+
learn about Font Awesome.
|
|
174
|
+
|
|
175
|
+
--------------------------------------------------------------------------------
|
|
176
|
+
|
|
177
|
+
# Brand Icons
|
|
178
|
+
|
|
179
|
+
All brand icons are trademarks of their respective owners. The use of these
|
|
180
|
+
trademarks does not indicate endorsement of the trademark holder by Font
|
|
181
|
+
Awesome, nor vice versa. **Please do not use brand logos for any purpose except
|
|
182
|
+
to represent the company, product, or service to which they refer.**
|
|
183
|
+
|
|
184
|
+
==============================================================================
|
|
185
|
+
@monaco-editor/loader@1.7.0 - LICENSE
|
|
186
|
+
==============================================================================
|
|
187
|
+
MIT License
|
|
188
|
+
|
|
189
|
+
Copyright (c) 2021 Suren Atoyan
|
|
190
|
+
|
|
191
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
192
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
193
|
+
in the Software without restriction, including without limitation the rights
|
|
194
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
195
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
196
|
+
furnished to do so, subject to the following conditions:
|
|
197
|
+
|
|
198
|
+
The above copyright notice and this permission notice shall be included in all
|
|
199
|
+
copies or substantial portions of the Software.
|
|
200
|
+
|
|
201
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
202
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
203
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
204
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
205
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
206
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
207
|
+
SOFTWARE.
|
|
208
|
+
|
|
209
|
+
==============================================================================
|
|
210
|
+
@monaco-editor/react@4.7.0 - LICENSE
|
|
211
|
+
==============================================================================
|
|
212
|
+
MIT License
|
|
213
|
+
|
|
214
|
+
Copyright (c) 2018 Suren Atoyan
|
|
215
|
+
|
|
216
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
217
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
218
|
+
in the Software without restriction, including without limitation the rights
|
|
219
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
220
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
221
|
+
furnished to do so, subject to the following conditions:
|
|
222
|
+
|
|
223
|
+
The above copyright notice and this permission notice shall be included in all
|
|
224
|
+
copies or substantial portions of the Software.
|
|
225
|
+
|
|
226
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
227
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
228
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
229
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
230
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
231
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
232
|
+
SOFTWARE.
|
|
233
|
+
|
|
234
|
+
==============================================================================
|
|
235
|
+
@tiptap/core@2.27.2 - VENDORED-tiptap-2.27.2.txt
|
|
236
|
+
==============================================================================
|
|
237
|
+
MIT License
|
|
238
|
+
|
|
239
|
+
Copyright (c) 2025, Tiptap GmbH
|
|
240
|
+
|
|
241
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
242
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
243
|
+
in the Software without restriction, including without limitation the rights
|
|
244
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
245
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
246
|
+
furnished to do so, subject to the following conditions:
|
|
247
|
+
|
|
248
|
+
The above copyright notice and this permission notice shall be included in all
|
|
249
|
+
copies or substantial portions of the Software.
|
|
250
|
+
|
|
251
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
252
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
253
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
254
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
255
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
256
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
257
|
+
SOFTWARE.
|
|
258
|
+
|
|
259
|
+
==============================================================================
|
|
260
|
+
@tiptap/extension-heading@2.27.2 - VENDORED-tiptap-2.27.2.txt
|
|
261
|
+
==============================================================================
|
|
262
|
+
MIT License
|
|
263
|
+
|
|
264
|
+
Copyright (c) 2025, Tiptap GmbH
|
|
265
|
+
|
|
266
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
267
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
268
|
+
in the Software without restriction, including without limitation the rights
|
|
269
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
270
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
271
|
+
furnished to do so, subject to the following conditions:
|
|
272
|
+
|
|
273
|
+
The above copyright notice and this permission notice shall be included in all
|
|
274
|
+
copies or substantial portions of the Software.
|
|
275
|
+
|
|
276
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
277
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
278
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
279
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
280
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
281
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
282
|
+
SOFTWARE.
|
|
283
|
+
|
|
284
|
+
==============================================================================
|
|
285
|
+
state-local@1.0.7 - LICENSE
|
|
286
|
+
==============================================================================
|
|
287
|
+
MIT License
|
|
288
|
+
|
|
289
|
+
Copyright (c) 2020 Suren Atoyan
|
|
290
|
+
|
|
291
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
292
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
293
|
+
in the Software without restriction, including without limitation the rights
|
|
294
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
295
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
296
|
+
furnished to do so, subject to the following conditions:
|
|
297
|
+
|
|
298
|
+
The above copyright notice and this permission notice shall be included in all
|
|
299
|
+
copies or substantial portions of the Software.
|
|
300
|
+
|
|
301
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
302
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
303
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
304
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
305
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
306
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
307
|
+
SOFTWARE.
|
|
308
|
+
|
|
@@ -16653,9 +16653,19 @@ function ManagerContent({
|
|
|
16653
16653
|
import { createPortal as createPortal8 } from "react-dom";
|
|
16654
16654
|
|
|
16655
16655
|
// src/mediaEntries.ts
|
|
16656
|
+
var IMAGE_EDIT_STATE_FILENAME = "state.json";
|
|
16657
|
+
function pathSegments(path) {
|
|
16658
|
+
return path.split(/[\\/]+/).filter(Boolean);
|
|
16659
|
+
}
|
|
16656
16660
|
function isVisibleMediaEntry(entry) {
|
|
16657
|
-
const
|
|
16658
|
-
|
|
16661
|
+
const segments = pathSegments(entry.name);
|
|
16662
|
+
const lowerSegments = segments.map((segment) => segment.toLowerCase());
|
|
16663
|
+
const basename = lowerSegments[lowerSegments.length - 1] ?? "";
|
|
16664
|
+
if (basename === ".gitignore") return false;
|
|
16665
|
+
if (lowerSegments.includes(".versions")) return false;
|
|
16666
|
+
const parent = lowerSegments[lowerSegments.length - 2] ?? "";
|
|
16667
|
+
const isImageEditState = basename === IMAGE_EDIT_STATE_FILENAME && (lowerSegments.includes(".imageedits") || parent.endsWith("_files"));
|
|
16668
|
+
return !isImageEditState;
|
|
16659
16669
|
}
|
|
16660
16670
|
function filterVisibleMediaEntries(entries) {
|
|
16661
16671
|
return entries.filter(isVisibleMediaEntry);
|
|
@@ -17111,6 +17121,16 @@ function markPreviewRanges(ranges, selectedIndex) {
|
|
|
17111
17121
|
return marks;
|
|
17112
17122
|
}
|
|
17113
17123
|
|
|
17124
|
+
// src/platformShortcuts.ts
|
|
17125
|
+
function resolvePlatform(explicitPlatform) {
|
|
17126
|
+
if (explicitPlatform !== void 0) return explicitPlatform;
|
|
17127
|
+
if (typeof navigator === "undefined") return "";
|
|
17128
|
+
return navigator.platform;
|
|
17129
|
+
}
|
|
17130
|
+
function platformShortcut(key, platform) {
|
|
17131
|
+
return /Mac|iPhone|iPad|iPod/i.test(resolvePlatform(platform)) ? `\u2318${key}` : `Ctrl+${key}`;
|
|
17132
|
+
}
|
|
17133
|
+
|
|
17114
17134
|
// src/toolbar/toolbarButtons.tsx
|
|
17115
17135
|
import { jsx as jsx38 } from "react/jsx-runtime";
|
|
17116
17136
|
var BUTTONS = [
|
|
@@ -17500,9 +17520,9 @@ function insertLayoutBlock(editor) {
|
|
|
17500
17520
|
// src/Toolbar.tsx
|
|
17501
17521
|
import { Fragment as Fragment13, jsx as jsx39, jsxs as jsxs29 } from "react/jsx-runtime";
|
|
17502
17522
|
var VIEWS = [
|
|
17503
|
-
{ id: "wysiwyg", label: "Write",
|
|
17504
|
-
{ id: "raw", label: "Source",
|
|
17505
|
-
{ id: "preview", label: "Use",
|
|
17523
|
+
{ id: "wysiwyg", label: "Write", shortcutKey: "1" },
|
|
17524
|
+
{ id: "raw", label: "Source", shortcutKey: "2" },
|
|
17525
|
+
{ id: "preview", label: "Use", shortcutKey: "3" }
|
|
17506
17526
|
];
|
|
17507
17527
|
var BLOCK_META_KEYS = new Set(Object.keys(KNOWN_BLOCK_META_KEYS));
|
|
17508
17528
|
function findBlockBySourceLine(blocks, lineNumber) {
|
|
@@ -18716,7 +18736,7 @@ ${TASK_LIST_MARKDOWN}
|
|
|
18716
18736
|
}
|
|
18717
18737
|
setActiveView(view.id);
|
|
18718
18738
|
},
|
|
18719
|
-
"data-tooltip": `${viewLabel} (${view.
|
|
18739
|
+
"data-tooltip": `${viewLabel} (${platformShortcut(view.shortcutKey)})`,
|
|
18720
18740
|
children: [
|
|
18721
18741
|
/* @__PURE__ */ jsx39(
|
|
18722
18742
|
"span",
|
|
@@ -25431,8 +25451,24 @@ function useCodeSnippetData(editor, blockId) {
|
|
|
25431
25451
|
}, [editor, blockId, version]);
|
|
25432
25452
|
}
|
|
25433
25453
|
|
|
25454
|
+
// src/codeSnippet/codeSnippetSizing.ts
|
|
25455
|
+
var CODE_SNIPPET_HEADER_HEIGHT = 34;
|
|
25456
|
+
var CODE_SNIPPET_LINE_HEIGHT = 20;
|
|
25457
|
+
var CODE_SNIPPET_VERTICAL_PADDING = 20;
|
|
25458
|
+
var CODE_SNIPPET_SHELL_BORDER = 2;
|
|
25459
|
+
var CODE_SNIPPET_EXTRA_LINES = 1;
|
|
25460
|
+
function codeSnippetAutoHeight(source) {
|
|
25461
|
+
const sourceLineCount = source.split("\n").length;
|
|
25462
|
+
return CODE_SNIPPET_SHELL_BORDER + CODE_SNIPPET_HEADER_HEIGHT + CODE_SNIPPET_VERTICAL_PADDING + (sourceLineCount + CODE_SNIPPET_EXTRA_LINES) * CODE_SNIPPET_LINE_HEIGHT;
|
|
25463
|
+
}
|
|
25464
|
+
|
|
25434
25465
|
// src/codeSnippet/CodeSnippetWidget.tsx
|
|
25435
25466
|
import { jsx as jsx47, jsxs as jsxs36 } from "react/jsx-runtime";
|
|
25467
|
+
var nextCodeSnippetModelInstanceId = 0;
|
|
25468
|
+
function allocateCodeSnippetModelInstanceId() {
|
|
25469
|
+
nextCodeSnippetModelInstanceId += 1;
|
|
25470
|
+
return nextCodeSnippetModelInstanceId;
|
|
25471
|
+
}
|
|
25436
25472
|
function schemeFromHost(host) {
|
|
25437
25473
|
return host?.closest("[data-theme]")?.dataset.theme === "dark" ? "dark" : "light";
|
|
25438
25474
|
}
|
|
@@ -25471,6 +25507,7 @@ function CodeSnippetWidget({
|
|
|
25471
25507
|
const { ready } = useMonacoLoader();
|
|
25472
25508
|
const colorScheme = useHostColorScheme(host);
|
|
25473
25509
|
const editable = useEditorEditable(editor);
|
|
25510
|
+
const [modelInstanceId] = useState39(allocateCodeSnippetModelInstanceId);
|
|
25474
25511
|
const handleChange = useCallback34(
|
|
25475
25512
|
(value) => {
|
|
25476
25513
|
if (!editable) return;
|
|
@@ -25489,37 +25526,46 @@ function CodeSnippetWidget({
|
|
|
25489
25526
|
/[^a-z0-9_-]/g,
|
|
25490
25527
|
"-"
|
|
25491
25528
|
);
|
|
25492
|
-
return /* @__PURE__ */ jsxs36(
|
|
25493
|
-
|
|
25494
|
-
|
|
25495
|
-
|
|
25496
|
-
|
|
25497
|
-
|
|
25498
|
-
|
|
25499
|
-
|
|
25500
|
-
|
|
25501
|
-
|
|
25502
|
-
|
|
25503
|
-
|
|
25504
|
-
|
|
25505
|
-
|
|
25506
|
-
|
|
25507
|
-
|
|
25508
|
-
|
|
25509
|
-
|
|
25510
|
-
|
|
25511
|
-
|
|
25512
|
-
|
|
25513
|
-
|
|
25514
|
-
|
|
25515
|
-
|
|
25516
|
-
|
|
25517
|
-
|
|
25518
|
-
|
|
25519
|
-
|
|
25520
|
-
|
|
25521
|
-
|
|
25522
|
-
|
|
25529
|
+
return /* @__PURE__ */ jsxs36(
|
|
25530
|
+
"div",
|
|
25531
|
+
{
|
|
25532
|
+
className: "squisq-code-snippet-shell",
|
|
25533
|
+
"data-language": data.fenceLanguage,
|
|
25534
|
+
style: { height: codeSnippetAutoHeight(data.source) },
|
|
25535
|
+
children: [
|
|
25536
|
+
/* @__PURE__ */ jsx47("div", { className: "squisq-code-snippet-header", children: /* @__PURE__ */ jsxs36("span", { className: "squisq-code-snippet-title", children: [
|
|
25537
|
+
/* @__PURE__ */ jsx47(Icon, { icon: "fa-solid fa-file-code" }),
|
|
25538
|
+
/* @__PURE__ */ jsx47("span", { children: data.label })
|
|
25539
|
+
] }) }),
|
|
25540
|
+
/* @__PURE__ */ jsx47("div", { className: "squisq-code-snippet-editor", "aria-label": `${data.label} code editor`, children: ready ? /* @__PURE__ */ jsx47(
|
|
25541
|
+
Ft,
|
|
25542
|
+
{
|
|
25543
|
+
path: `inmemory://squisq/code-snippet/${modelInstanceId}/${blockId}.${modelSuffix || "txt"}`,
|
|
25544
|
+
language: data.monacoLanguage,
|
|
25545
|
+
theme: colorScheme === "dark" ? "vs-dark" : "vs",
|
|
25546
|
+
value: data.source,
|
|
25547
|
+
onChange: handleChange,
|
|
25548
|
+
onMount: handleMount,
|
|
25549
|
+
options: {
|
|
25550
|
+
automaticLayout: true,
|
|
25551
|
+
contextmenu: true,
|
|
25552
|
+
folding: true,
|
|
25553
|
+
fontSize: 13,
|
|
25554
|
+
lineHeight: CODE_SNIPPET_LINE_HEIGHT,
|
|
25555
|
+
lineNumbers: "on",
|
|
25556
|
+
minimap: { enabled: false },
|
|
25557
|
+
padding: { top: 10, bottom: 10 },
|
|
25558
|
+
readOnly: !editable,
|
|
25559
|
+
renderLineHighlight: "line",
|
|
25560
|
+
scrollBeyondLastLine: false,
|
|
25561
|
+
tabSize: 2,
|
|
25562
|
+
wordWrap: "off"
|
|
25563
|
+
}
|
|
25564
|
+
}
|
|
25565
|
+
) : /* @__PURE__ */ jsx47("div", { className: "squisq-code-snippet-loading", children: "Loading code editor\u2026" }) })
|
|
25566
|
+
]
|
|
25567
|
+
}
|
|
25568
|
+
);
|
|
25523
25569
|
}
|
|
25524
25570
|
|
|
25525
25571
|
// src/codeSnippet/CodeSnippetExtension.ts
|
|
@@ -29945,6 +29991,7 @@ function InlinePreviewGutter({
|
|
|
29945
29991
|
});
|
|
29946
29992
|
}, [items, connectorTops]);
|
|
29947
29993
|
const isEmpty2 = items.length === 0;
|
|
29994
|
+
if (isEmpty2) return null;
|
|
29948
29995
|
const totalWidth = width + connectorWidth;
|
|
29949
29996
|
const gutterStyle = {
|
|
29950
29997
|
position: "relative",
|
|
@@ -30035,14 +30082,7 @@ function InlinePreviewGutter({
|
|
|
30035
30082
|
})
|
|
30036
30083
|
}
|
|
30037
30084
|
),
|
|
30038
|
-
|
|
30039
|
-
"div",
|
|
30040
|
-
{
|
|
30041
|
-
className: "squisq-inline-preview-empty",
|
|
30042
|
-
style: { position: "absolute", top: 12, left: connectorWidth + 12, right: 12 },
|
|
30043
|
-
children: /* @__PURE__ */ jsx55("p", { children: "Tag a heading with a template to see a preview here." })
|
|
30044
|
-
}
|
|
30045
|
-
) : /* @__PURE__ */ jsx55(MediaContext3.Provider, { value: mediaProvider ?? null, children: items.map((item) => {
|
|
30085
|
+
/* @__PURE__ */ jsx55(MediaContext3.Provider, { value: mediaProvider ?? null, children: items.map((item) => {
|
|
30046
30086
|
const top = positions.get(item.id);
|
|
30047
30087
|
const hidden = top == null;
|
|
30048
30088
|
return /* @__PURE__ */ jsxs42(
|
|
@@ -34372,6 +34412,7 @@ function EditorShell({
|
|
|
34372
34412
|
articleId = "untitled",
|
|
34373
34413
|
basePath = "/",
|
|
34374
34414
|
onChange,
|
|
34415
|
+
onLinkClick,
|
|
34375
34416
|
colorScheme = "light",
|
|
34376
34417
|
className,
|
|
34377
34418
|
height = "100vh",
|
|
@@ -34470,6 +34511,7 @@ function EditorShell({
|
|
|
34470
34511
|
{
|
|
34471
34512
|
basePath,
|
|
34472
34513
|
onChange,
|
|
34514
|
+
onLinkClick,
|
|
34473
34515
|
className,
|
|
34474
34516
|
height,
|
|
34475
34517
|
minHeight,
|
|
@@ -34523,6 +34565,7 @@ function UseModeProviders({
|
|
|
34523
34565
|
function EditorShellInner({
|
|
34524
34566
|
basePath,
|
|
34525
34567
|
onChange,
|
|
34568
|
+
onLinkClick,
|
|
34526
34569
|
className,
|
|
34527
34570
|
height,
|
|
34528
34571
|
minHeight,
|
|
@@ -34723,14 +34766,51 @@ ${snippet}` : snippet);
|
|
|
34723
34766
|
},
|
|
34724
34767
|
[showPlayTab]
|
|
34725
34768
|
);
|
|
34769
|
+
const handleShellLinkClick = useCallback50(
|
|
34770
|
+
(event) => {
|
|
34771
|
+
if (!onLinkClick || event.button !== 0) return;
|
|
34772
|
+
const anchor = event.target.closest?.("a[href]");
|
|
34773
|
+
if (!anchor || !event.currentTarget.contains(anchor)) return;
|
|
34774
|
+
const href = anchor.getAttribute("href");
|
|
34775
|
+
if (!href || onLinkClick(href) === false) return;
|
|
34776
|
+
event.preventDefault();
|
|
34777
|
+
event.stopPropagation();
|
|
34778
|
+
},
|
|
34779
|
+
[onLinkClick]
|
|
34780
|
+
);
|
|
34781
|
+
const handleShellLinkMouseOver = useCallback50(
|
|
34782
|
+
(event) => {
|
|
34783
|
+
if (!onLinkClick) return;
|
|
34784
|
+
const anchor = event.target.closest?.("a[href]");
|
|
34785
|
+
if (!anchor || !event.currentTarget.contains(anchor)) return;
|
|
34786
|
+
const href = anchor.getAttribute("href");
|
|
34787
|
+
if (!href || anchor.hasAttribute("title") && !anchor.hasAttribute("data-squisq-link-title")) {
|
|
34788
|
+
return;
|
|
34789
|
+
}
|
|
34790
|
+
anchor.setAttribute("title", href);
|
|
34791
|
+
anchor.setAttribute("data-squisq-link-title", "true");
|
|
34792
|
+
},
|
|
34793
|
+
[onLinkClick]
|
|
34794
|
+
);
|
|
34795
|
+
const handleShellLinkMouseOut = useCallback50((event) => {
|
|
34796
|
+
const anchor = event.target.closest?.("a[data-squisq-link-title]");
|
|
34797
|
+
if (!anchor || !event.currentTarget.contains(anchor)) return;
|
|
34798
|
+
if (event.relatedTarget instanceof Node && anchor.contains(event.relatedTarget)) return;
|
|
34799
|
+
anchor.removeAttribute("title");
|
|
34800
|
+
anchor.removeAttribute("data-squisq-link-title");
|
|
34801
|
+
}, []);
|
|
34726
34802
|
const autoGrow = minHeight !== void 0 || maxHeight !== void 0;
|
|
34727
34803
|
return /* @__PURE__ */ jsxs53(
|
|
34728
34804
|
"div",
|
|
34729
34805
|
{
|
|
34730
34806
|
ref: shellRef,
|
|
34731
34807
|
onKeyDown: handleShellKeyDown,
|
|
34808
|
+
onClickCapture: handleShellLinkClick,
|
|
34809
|
+
onMouseOverCapture: handleShellLinkMouseOver,
|
|
34810
|
+
onMouseOutCapture: handleShellLinkMouseOut,
|
|
34732
34811
|
className: `squisq-editor-shell ${className || ""}`,
|
|
34733
34812
|
"data-theme": colorScheme,
|
|
34813
|
+
"data-link-handler": onLinkClick ? "true" : void 0,
|
|
34734
34814
|
"data-full-width": fullWidth ? "true" : void 0,
|
|
34735
34815
|
"data-thin-margins": thinMargins ? "true" : void 0,
|
|
34736
34816
|
"data-outline-visible": isMarkdownMode && outlineVisible ? "true" : void 0,
|
|
@@ -35125,6 +35205,7 @@ export {
|
|
|
35125
35205
|
DEFAULT_MERMAID_DIAGRAM_TYPE,
|
|
35126
35206
|
mermaidDiagramMarkdown,
|
|
35127
35207
|
MermaidDiagramTypeThumbnail,
|
|
35208
|
+
platformShortcut,
|
|
35128
35209
|
Toolbar,
|
|
35129
35210
|
StatusBar,
|
|
35130
35211
|
RawEditor,
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { C as CodeContext, S as SceneTextChannel } from './shell-
|
|
2
|
-
export { B as BlockTagVisibility, a as CodeContextSection, D as DocumentLinkCandidate, b as DocumentLinkProvider, E as EditorActions, c as EditorColorScheme, d as EditorContextValue, e as EditorMode, f as EditorProvider, g as EditorProviderProps, h as EditorShell, i as EditorShellProps, j as EditorState, k as EditorView, I as ImageDisplayMode, L as LayoutMode, M as MentionCandidate, l as MentionProvider, P as PreviewPanel, m as PreviewPanelProps, R as RawEditor, n as RawEditorProps, T as ThemeInheritance, V as ViewPreferences, W as WriteCanvasSettings, o as WysiwygEditor, p as WysiwygEditorProps, u as useEditorContext } from './shell-
|
|
1
|
+
import { C as CodeContext, S as SceneTextChannel } from './shell-DYdK5qFd.js';
|
|
2
|
+
export { B as BlockTagVisibility, a as CodeContextSection, D as DocumentLinkCandidate, b as DocumentLinkProvider, E as EditorActions, c as EditorColorScheme, d as EditorContextValue, e as EditorMode, f as EditorProvider, g as EditorProviderProps, h as EditorShell, i as EditorShellProps, j as EditorState, k as EditorView, I as ImageDisplayMode, L as LayoutMode, M as MentionCandidate, l as MentionProvider, P as PreviewPanel, m as PreviewPanelProps, R as RawEditor, n as RawEditorProps, T as ThemeInheritance, V as ViewPreferences, W as WriteCanvasSettings, o as WysiwygEditor, p as WysiwygEditorProps, u as useEditorContext } from './shell-DYdK5qFd.js';
|
|
3
3
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
4
4
|
import * as react from 'react';
|
|
5
5
|
import { ReactNode, CSSProperties } from 'react';
|
|
@@ -1104,7 +1104,7 @@ interface InlinePreviewGutterProps {
|
|
|
1104
1104
|
*/
|
|
1105
1105
|
mediaProvider?: MediaProvider | null;
|
|
1106
1106
|
}
|
|
1107
|
-
declare function InlinePreviewGutter({ width, basePath, viewport, className, connectorWidth, mediaProvider, }: InlinePreviewGutterProps): react_jsx_runtime.JSX.Element;
|
|
1107
|
+
declare function InlinePreviewGutter({ width, basePath, viewport, className, connectorWidth, mediaProvider, }: InlinePreviewGutterProps): react_jsx_runtime.JSX.Element | null;
|
|
1108
1108
|
|
|
1109
1109
|
interface MediaBinProps {
|
|
1110
1110
|
/** The active MediaProvider (null when no media context is available) */
|
package/dist/index.js
CHANGED
|
@@ -123,6 +123,7 @@ import {
|
|
|
123
123
|
outdentItemOp,
|
|
124
124
|
parseTimelineForNode,
|
|
125
125
|
partitionFiles,
|
|
126
|
+
platformShortcut,
|
|
126
127
|
processMediaFiles,
|
|
127
128
|
processTextFile,
|
|
128
129
|
processTextFiles,
|
|
@@ -178,7 +179,7 @@ import {
|
|
|
178
179
|
usePreviewSettings,
|
|
179
180
|
useTimelineData,
|
|
180
181
|
useTreeViewData
|
|
181
|
-
} from "./chunk-
|
|
182
|
+
} from "./chunk-6QFPBDTY.js";
|
|
182
183
|
import {
|
|
183
184
|
JsonEditor
|
|
184
185
|
} from "./chunk-54UGTQBO.js";
|
|
@@ -324,9 +325,9 @@ function defaultIconFor(entry) {
|
|
|
324
325
|
// src/ViewSwitcher.tsx
|
|
325
326
|
import { jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
|
|
326
327
|
var VIEWS = [
|
|
327
|
-
{ id: "wysiwyg", label: "Write",
|
|
328
|
-
{ id: "raw", label: "Source",
|
|
329
|
-
{ id: "preview", label: "Use",
|
|
328
|
+
{ id: "wysiwyg", label: "Write", shortcutKey: "1" },
|
|
329
|
+
{ id: "raw", label: "Source", shortcutKey: "2" },
|
|
330
|
+
{ id: "preview", label: "Use", shortcutKey: "3" }
|
|
330
331
|
];
|
|
331
332
|
function ViewSwitcher({ className }) {
|
|
332
333
|
const { activeView, setActiveView, editorMode } = useEditorContext();
|
|
@@ -345,7 +346,7 @@ function ViewSwitcher({ className }) {
|
|
|
345
346
|
"aria-selected": activeView === view.id,
|
|
346
347
|
className: `squisq-view-tab ${activeView === view.id ? "squisq-view-tab--active" : ""}`,
|
|
347
348
|
onClick: () => setActiveView(view.id),
|
|
348
|
-
title: `${view.label} (${view.
|
|
349
|
+
title: `${view.label} (${platformShortcut(view.shortcutKey)})`,
|
|
349
350
|
children: [
|
|
350
351
|
/* @__PURE__ */ jsx2("span", { className: "squisq-view-tab-label squisq-view-tab-label--long", children: view.label }),
|
|
351
352
|
view.shortLabel && view.shortLabel !== view.label && /* @__PURE__ */ jsx2("span", { className: "squisq-view-tab-label squisq-view-tab-label--short", children: view.shortLabel })
|
package/dist/shell/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { B as BlockTagVisibility, D as DocumentLinkCandidate, b as DocumentLinkProvider, E as EditorActions, c as EditorColorScheme, d as EditorContextValue, e as EditorMode, f as EditorProvider, g as EditorProviderProps, h as EditorShell, i as EditorShellProps, j as EditorState, k as EditorView, I as ImageDisplayMode, L as LayoutMode, M as MentionCandidate, l as MentionProvider, P as PreviewPanel, m as PreviewPanelProps, R as RawEditor, n as RawEditorProps, T as ThemeInheritance, V as ViewPreferences, o as WysiwygEditor, p as WysiwygEditorProps, u as useEditorContext } from '../shell-
|
|
1
|
+
export { B as BlockTagVisibility, D as DocumentLinkCandidate, b as DocumentLinkProvider, E as EditorActions, c as EditorColorScheme, d as EditorContextValue, e as EditorMode, f as EditorProvider, g as EditorProviderProps, h as EditorShell, i as EditorShellProps, j as EditorState, k as EditorView, I as ImageDisplayMode, L as LayoutMode, M as MentionCandidate, l as MentionProvider, P as PreviewPanel, m as PreviewPanelProps, R as RawEditor, n as RawEditorProps, T as ThemeInheritance, V as ViewPreferences, o as WysiwygEditor, p as WysiwygEditorProps, u as useEditorContext } from '../shell-DYdK5qFd.js';
|
|
2
2
|
import 'react/jsx-runtime';
|
|
3
3
|
import 'react';
|
|
4
4
|
import '@bendyline/squisq/schemas';
|
package/dist/shell/index.js
CHANGED
|
@@ -631,6 +631,12 @@ interface EditorShellProps {
|
|
|
631
631
|
basePath?: string;
|
|
632
632
|
/** Called when markdown source changes */
|
|
633
633
|
onChange?: (source: string) => void;
|
|
634
|
+
/**
|
|
635
|
+
* Delegate link activation to the embedding host. The callback receives the
|
|
636
|
+
* literal href as authored. Return `false` to allow the browser's default
|
|
637
|
+
* navigation; any other return (or void) marks the link as handled.
|
|
638
|
+
*/
|
|
639
|
+
onLinkClick?: (href: string) => boolean | undefined;
|
|
634
640
|
/**
|
|
635
641
|
* Light/dark chrome color scheme for the editor shell — toolbar, tabs,
|
|
636
642
|
* status bar, and side panes (default: `'light'`). This is the editor's
|
|
@@ -977,7 +983,7 @@ interface EditorShellProps {
|
|
|
977
983
|
* Complete markdown editor shell with toolbar, view switcher, and three
|
|
978
984
|
* editing modes: Raw (Monaco), WYSIWYG (Tiptap), and Preview.
|
|
979
985
|
*/
|
|
980
|
-
declare function EditorShell({ initialMarkdown, initialView, articleId, basePath, onChange, colorScheme, className, height, minHeight, maxHeight, mediaProvider, workspaceContainer, allowVersioning, versionBasename, versioningPrunePolicy, versioningAutoSaveIdleMs, onSaveVersion, showFilesToggle, toolbarSlotLeft, toolbarSlotAfterActions, toolbarSlotRight, statusBarSlotRight, showPlayTab, submitOnEnter, codeContext, fullWidth, uxFont, thinMargins, writeCanvasSettings, showStatusBar, imageDisplayMode, fileName, language, findMode, onFindModeChange, mentionProvider, documentLinkProvider, linkSchemes, allowRecording, allowNarrate, placeholder, readOnly, imageSrc, imageAlt, imageMode, imageEditorContainer, onImageExport, inlinePreview, inlinePreviewWidth, outline, outlineWidth, blockTags, blockTagVisibility, themeInheritance, viewPreferences, onViewPreferencesChange, themeOverride, }: EditorShellProps): react_jsx_runtime.JSX.Element;
|
|
986
|
+
declare function EditorShell({ initialMarkdown, initialView, articleId, basePath, onChange, onLinkClick, colorScheme, className, height, minHeight, maxHeight, mediaProvider, workspaceContainer, allowVersioning, versionBasename, versioningPrunePolicy, versioningAutoSaveIdleMs, onSaveVersion, showFilesToggle, toolbarSlotLeft, toolbarSlotAfterActions, toolbarSlotRight, statusBarSlotRight, showPlayTab, submitOnEnter, codeContext, fullWidth, uxFont, thinMargins, writeCanvasSettings, showStatusBar, imageDisplayMode, fileName, language, findMode, onFindModeChange, mentionProvider, documentLinkProvider, linkSchemes, allowRecording, allowNarrate, placeholder, readOnly, imageSrc, imageAlt, imageMode, imageEditorContainer, onImageExport, inlinePreview, inlinePreviewWidth, outline, outlineWidth, blockTags, blockTagVisibility, themeInheritance, viewPreferences, onViewPreferencesChange, themeOverride, }: EditorShellProps): react_jsx_runtime.JSX.Element;
|
|
981
987
|
|
|
982
988
|
/**
|
|
983
989
|
* RawEditor
|
package/dist/styles/index.css
CHANGED
|
@@ -7390,6 +7390,7 @@
|
|
|
7390
7390
|
}
|
|
7391
7391
|
.squisq-toolbar-view-tab-label {
|
|
7392
7392
|
display: inline-block;
|
|
7393
|
+
transform: translateY(1px);
|
|
7393
7394
|
}
|
|
7394
7395
|
.squisq-toolbar-view-tab-label--short {
|
|
7395
7396
|
display: none;
|
|
@@ -7435,6 +7436,7 @@
|
|
|
7435
7436
|
justify-content: center;
|
|
7436
7437
|
width: 32px;
|
|
7437
7438
|
height: 28px;
|
|
7439
|
+
padding: 2px 0 0;
|
|
7438
7440
|
flex-shrink: 0;
|
|
7439
7441
|
border: none;
|
|
7440
7442
|
border-radius: 4px;
|
|
@@ -9387,6 +9389,9 @@
|
|
|
9387
9389
|
text-decoration-thickness: 1px;
|
|
9388
9390
|
text-underline-offset: 2px;
|
|
9389
9391
|
}
|
|
9392
|
+
.squisq-editor-shell[data-link-handler=true] a[href] {
|
|
9393
|
+
cursor: pointer;
|
|
9394
|
+
}
|
|
9390
9395
|
.squisq-wysiwyg-editor p.is-editor-empty:first-child::before {
|
|
9391
9396
|
content: attr(data-placeholder);
|
|
9392
9397
|
float: left;
|
|
@@ -15202,15 +15207,14 @@
|
|
|
15202
15207
|
box-sizing: border-box;
|
|
15203
15208
|
display: flex;
|
|
15204
15209
|
width: 100%;
|
|
15205
|
-
height:
|
|
15206
|
-
min-height: 128px;
|
|
15210
|
+
min-height: 96px;
|
|
15207
15211
|
max-height: 70vh;
|
|
15208
15212
|
flex-direction: column;
|
|
15209
15213
|
overflow: hidden;
|
|
15210
15214
|
resize: vertical;
|
|
15211
15215
|
border: 1px solid var(--squisq-border, #d1d5db);
|
|
15212
15216
|
border-radius: 8px;
|
|
15213
|
-
background: var(--squisq-surface, #ffffff);
|
|
15217
|
+
background: var(--squisq-surface, var(--squisq-input-bg, #ffffff));
|
|
15214
15218
|
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
|
|
15215
15219
|
}
|
|
15216
15220
|
.squisq-code-snippet-header {
|
|
@@ -15220,7 +15224,7 @@
|
|
|
15220
15224
|
align-items: center;
|
|
15221
15225
|
padding: 0 10px;
|
|
15222
15226
|
border-bottom: 1px solid var(--squisq-border, #d1d5db);
|
|
15223
|
-
background: var(--squisq-surface-muted, #f8fafc);
|
|
15227
|
+
background: var(--squisq-surface-muted, var(--squisq-input-bg, #f8fafc));
|
|
15224
15228
|
color: var(--squisq-text-muted, #64748b);
|
|
15225
15229
|
font-family: var(--squisq-ux-font, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);
|
|
15226
15230
|
font-size: 12px;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bendyline/squisq-editor-react",
|
|
3
|
-
"version": "2.3.
|
|
3
|
+
"version": "2.3.2",
|
|
4
4
|
"description": "React editor shell with raw/WYSIWYG/preview modes for Squisq documents",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Bendyline",
|
|
@@ -32,7 +32,8 @@
|
|
|
32
32
|
"dist",
|
|
33
33
|
"!dist/**/*.map",
|
|
34
34
|
"LICENSE",
|
|
35
|
-
"NOTICE.md"
|
|
35
|
+
"NOTICE.md",
|
|
36
|
+
"THIRD_PARTY_LICENSES.txt"
|
|
36
37
|
],
|
|
37
38
|
"exports": {
|
|
38
39
|
".": {
|
|
@@ -63,22 +64,25 @@
|
|
|
63
64
|
"types": "./dist/teleprompter/index.d.ts",
|
|
64
65
|
"import": "./dist/teleprompter/index.js"
|
|
65
66
|
},
|
|
66
|
-
"./styles":
|
|
67
|
+
"./styles": {
|
|
68
|
+
"types": "./dist/styles/index.d.ts",
|
|
69
|
+
"default": "./dist/styles/index.css"
|
|
70
|
+
}
|
|
67
71
|
},
|
|
68
72
|
"scripts": {
|
|
69
|
-
"build": "tsup && node ../../scripts/build-styles.mjs && node ../../scripts/remove-empty-chunks.mjs dist",
|
|
73
|
+
"build": "tsup && node ../../scripts/build-styles.mjs && node ../../scripts/generate-bundle-licenses.mjs . @fortawesome/fontawesome-free && node ../../scripts/remove-empty-chunks.mjs dist",
|
|
70
74
|
"dev": "concurrently -n js,dts -c blue,gray -r \"tsup --watch --no-dts --no-clean\" \"tsup --watch --dts-only --no-clean\"",
|
|
71
75
|
"typecheck": "tsc --noEmit"
|
|
72
76
|
},
|
|
73
77
|
"peerDependencies": {
|
|
74
|
-
"monaco-editor": "
|
|
78
|
+
"monaco-editor": "~0.50.0",
|
|
75
79
|
"react": "^18.0.0 || ^19.0.0",
|
|
76
80
|
"react-dom": "^18.0.0 || ^19.0.0"
|
|
77
81
|
},
|
|
78
82
|
"dependencies": {
|
|
79
|
-
"@bendyline/squisq": "2.3.
|
|
80
|
-
"@bendyline/squisq-formats": "2.3.
|
|
81
|
-
"@bendyline/squisq-react": "2.3.
|
|
83
|
+
"@bendyline/squisq": "2.3.1",
|
|
84
|
+
"@bendyline/squisq-formats": "2.3.1",
|
|
85
|
+
"@bendyline/squisq-react": "2.3.1",
|
|
82
86
|
"@fortawesome/fontawesome-free": "7.2.0",
|
|
83
87
|
"@tiptap/extension-image": "2.27.2",
|
|
84
88
|
"@tiptap/extension-link": "2.27.2",
|