@fiestaboard/ui 3.1.0 → 3.2.0
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/dist/components/editor/color-picker-content.d.ts +25 -0
- package/dist/components/editor/color-picker-content.js +118 -0
- package/dist/components/editor/color-picker-content.js.map +1 -0
- package/dist/components/editor/constants.d.ts +87 -0
- package/dist/components/editor/constants.js +29 -0
- package/dist/components/editor/constants.js.map +1 -0
- package/dist/components/editor/draw-char-picker-content.d.ts +22 -0
- package/dist/components/editor/draw-char-picker-content.js +79 -0
- package/dist/components/editor/draw-char-picker-content.js.map +1 -0
- package/dist/components/editor/extensions/color-tile-node.d.ts +10 -0
- package/dist/components/editor/extensions/color-tile-node.js +43 -0
- package/dist/components/editor/extensions/color-tile-node.js.map +1 -0
- package/dist/components/editor/extensions/fill-space-node.d.ts +10 -0
- package/dist/components/editor/extensions/fill-space-node.js +40 -0
- package/dist/components/editor/extensions/fill-space-node.js.map +1 -0
- package/dist/components/editor/extensions/formula-node.d.ts +6 -0
- package/dist/components/editor/extensions/formula-node.js +40 -0
- package/dist/components/editor/extensions/formula-node.js.map +1 -0
- package/dist/components/editor/extensions/line-navigation.d.ts +18 -0
- package/dist/components/editor/extensions/line-navigation.js +16 -0
- package/dist/components/editor/extensions/line-navigation.js.map +1 -0
- package/dist/components/editor/extensions/single-paragraph-doc.d.ts +15 -0
- package/dist/components/editor/extensions/single-paragraph-doc.js +11 -0
- package/dist/components/editor/extensions/single-paragraph-doc.js.map +1 -0
- package/dist/components/editor/extensions/trailing-newline.d.ts +13 -0
- package/dist/components/editor/extensions/trailing-newline.js +27 -0
- package/dist/components/editor/extensions/trailing-newline.js.map +1 -0
- package/dist/components/editor/extensions/variable-node.d.ts +15 -0
- package/dist/components/editor/extensions/variable-node.js +56 -0
- package/dist/components/editor/extensions/variable-node.js.map +1 -0
- package/dist/components/editor/extensions/wrapped-text-node.d.ts +9 -0
- package/dist/components/editor/extensions/wrapped-text-node.js +31 -0
- package/dist/components/editor/extensions/wrapped-text-node.js.map +1 -0
- package/dist/components/editor/filter-picker-content.d.ts +24 -0
- package/dist/components/editor/filter-picker-content.js +146 -0
- package/dist/components/editor/filter-picker-content.js.map +1 -0
- package/dist/components/editor/formatting-picker-content.d.ts +30 -0
- package/dist/components/editor/formatting-picker-content.js +154 -0
- package/dist/components/editor/formatting-picker-content.js.map +1 -0
- package/dist/components/editor/formula/formula-editor-panel.d.ts +102 -0
- package/dist/components/editor/formula/formula-editor-panel.js +527 -0
- package/dist/components/editor/formula/formula-editor-panel.js.map +1 -0
- package/dist/components/editor/node-views/color-tile-node-view.d.ts +21 -0
- package/dist/components/editor/node-views/color-tile-node-view.js +66 -0
- package/dist/components/editor/node-views/color-tile-node-view.js.map +1 -0
- package/dist/components/editor/node-views/fill-space-node-view.d.ts +16 -0
- package/dist/components/editor/node-views/fill-space-node-view.js +43 -0
- package/dist/components/editor/node-views/fill-space-node-view.js.map +1 -0
- package/dist/components/editor/node-views/formula-node-view.d.ts +39 -0
- package/dist/components/editor/node-views/formula-node-view.js +109 -0
- package/dist/components/editor/node-views/formula-node-view.js.map +1 -0
- package/dist/components/editor/node-views/node-view-context.d.ts +58 -0
- package/dist/components/editor/node-views/node-view-context.js +22 -0
- package/dist/components/editor/node-views/node-view-context.js.map +1 -0
- package/dist/components/editor/node-views/variable-node-view.d.ts +16 -0
- package/dist/components/editor/node-views/variable-node-view.js +63 -0
- package/dist/components/editor/node-views/variable-node-view.js.map +1 -0
- package/dist/components/editor/node-views/wrapped-text-view.d.ts +14 -0
- package/dist/components/editor/node-views/wrapped-text-view.js +46 -0
- package/dist/components/editor/node-views/wrapped-text-view.js.map +1 -0
- package/dist/components/editor/template-editor-toolbar.d.ts +146 -0
- package/dist/components/editor/template-editor-toolbar.js +434 -0
- package/dist/components/editor/template-editor-toolbar.js.map +1 -0
- package/dist/components/editor/template-editor.d.ts +109 -0
- package/dist/components/editor/template-editor.js +662 -0
- package/dist/components/editor/template-editor.js.map +1 -0
- package/dist/components/editor/toolbar-dropdown.d.ts +20 -0
- package/dist/components/editor/toolbar-dropdown.js +88 -0
- package/dist/components/editor/toolbar-dropdown.js.map +1 -0
- package/dist/components/editor/utils/draw-mode.d.ts +55 -0
- package/dist/components/editor/utils/draw-mode.js +79 -0
- package/dist/components/editor/utils/draw-mode.js.map +1 -0
- package/dist/components/editor/utils/insertion.d.ts +11 -0
- package/dist/components/editor/utils/insertion.js +26 -0
- package/dist/components/editor/utils/insertion.js.map +1 -0
- package/dist/components/editor/utils/length-calculator.d.ts +36 -0
- package/dist/components/editor/utils/length-calculator.js +32 -0
- package/dist/components/editor/utils/length-calculator.js.map +1 -0
- package/dist/components/editor/utils/serialization.d.ts +34 -0
- package/dist/components/editor/utils/serialization.js +184 -0
- package/dist/components/editor/utils/serialization.js.map +1 -0
- package/dist/components/editor/utils/stroke-transaction.d.ts +36 -0
- package/dist/components/editor/utils/stroke-transaction.js +57 -0
- package/dist/components/editor/utils/stroke-transaction.js.map +1 -0
- package/dist/components/editor/variable-picker-content.d.ts +130 -0
- package/dist/components/editor/variable-picker-content.js +422 -0
- package/dist/components/editor/variable-picker-content.js.map +1 -0
- package/dist/editor.css +164 -0
- package/dist/index.d.ts +28 -0
- package/dist/index.js +41 -13
- package/dist/lib/board-colors.d.ts +16 -0
- package/dist/lib/board-colors.js +14 -14
- package/dist/lib/board-colors.js.map +1 -1
- package/dist/lib/use-deps-changed.d.ts +33 -0
- package/dist/lib/use-deps-changed.js +11 -0
- package/dist/lib/use-deps-changed.js.map +1 -0
- package/package.json +50 -2
package/dist/editor.css
ADDED
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Template editor stylesheet — ProseMirror surface rules for
|
|
3
|
+
* `components/editor/template-editor.tsx`.
|
|
4
|
+
*
|
|
5
|
+
* Opt-in subpath, exactly like `fonts.css`: nothing in the package imports it,
|
|
6
|
+
* so an app that never renders the editor never pays for it. Consumers of
|
|
7
|
+
* `TemplateEditor` MUST import it once, alongside `theme.css`:
|
|
8
|
+
*
|
|
9
|
+
* import "@fiestaboard/ui/theme.css";
|
|
10
|
+
* import "@fiestaboard/ui/editor.css";
|
|
11
|
+
*
|
|
12
|
+
* Ported verbatim from the FiestaBoard app, where these rules lived in an
|
|
13
|
+
* inline `<style>` element rendered inside the editor component — i.e. the
|
|
14
|
+
* whole sheet was re-parsed on every mount, duplicated per instance, and could
|
|
15
|
+
* not be treeshaken, cached, or overridden by app CSS with predictable
|
|
16
|
+
* ordering. They are global on purpose: ProseMirror owns the DOM inside
|
|
17
|
+
* `.ProseMirror` and Tailwind utilities cannot reach nodes it creates
|
|
18
|
+
* (`<br>`, node-view wrappers, the `::before` placeholder). Tailwind
|
|
19
|
+
* arbitrary-variant classes that CAN reach their target stay inline on the
|
|
20
|
+
* component.
|
|
21
|
+
*
|
|
22
|
+
* `var(--primary)`, `var(--muted-foreground)` come from theme.css.
|
|
23
|
+
*/
|
|
24
|
+
|
|
25
|
+
/* Ensure ProseMirror container looks like a single textarea */
|
|
26
|
+
.ProseMirror {
|
|
27
|
+
margin: 0;
|
|
28
|
+
padding: 0;
|
|
29
|
+
width: 100%;
|
|
30
|
+
max-width: 100%;
|
|
31
|
+
overflow: visible;
|
|
32
|
+
outline: none;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/* Placeholder for first empty line only - textarea-like */
|
|
36
|
+
.ProseMirror[data-placeholder] > p:first-child:empty::before {
|
|
37
|
+
content: attr(data-placeholder);
|
|
38
|
+
color: var(--muted-foreground);
|
|
39
|
+
pointer-events: none;
|
|
40
|
+
position: absolute;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
.ProseMirror:focus[data-placeholder] > p:first-child:empty::before {
|
|
44
|
+
opacity: 0.5;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/* Standard paragraph - no wrapping, fixed line height */
|
|
48
|
+
.ProseMirror > p {
|
|
49
|
+
margin: 0;
|
|
50
|
+
padding: 0;
|
|
51
|
+
text-transform: uppercase;
|
|
52
|
+
font-family: "Courier New", "Courier", monospace;
|
|
53
|
+
font-size: 0.875rem;
|
|
54
|
+
letter-spacing: 0;
|
|
55
|
+
line-height: 1.5rem;
|
|
56
|
+
white-space: nowrap;
|
|
57
|
+
overflow: visible; /* Let content flow naturally, limit via input handling */
|
|
58
|
+
display: block;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/* Hard breaks create line breaks naturally */
|
|
62
|
+
.ProseMirror br {
|
|
63
|
+
display: block;
|
|
64
|
+
content: "";
|
|
65
|
+
margin: 0;
|
|
66
|
+
padding: 0;
|
|
67
|
+
line-height: 0;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
/* Prevent any extra spacing around hard breaks */
|
|
71
|
+
.ProseMirror br::before,
|
|
72
|
+
.ProseMirror br::after {
|
|
73
|
+
content: none;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
/* Empty paragraph minimum height */
|
|
77
|
+
.ProseMirror > p:empty {
|
|
78
|
+
min-height: 1.5rem;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
/* Cursor styling */
|
|
82
|
+
.ProseMirror {
|
|
83
|
+
caret-color: var(--primary);
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
.ProseMirror:focus {
|
|
87
|
+
outline: none;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
/* Inline nodes - keep them truly inline, no wrapping */
|
|
91
|
+
.ProseMirror [data-type="variable"],
|
|
92
|
+
.ProseMirror [data-type="color-tile"],
|
|
93
|
+
.ProseMirror [data-type="fill-space"],
|
|
94
|
+
.ProseMirror [data-type="wrapped-text"] {
|
|
95
|
+
display: inline-block !important;
|
|
96
|
+
vertical-align: middle;
|
|
97
|
+
white-space: nowrap;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
/* Node view wrappers - prevent wrapping */
|
|
101
|
+
.ProseMirror [data-node-view-wrapper] {
|
|
102
|
+
display: inline-block !important;
|
|
103
|
+
vertical-align: middle;
|
|
104
|
+
white-space: nowrap;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
/* Ensure text nodes also don't wrap */
|
|
108
|
+
.ProseMirror p > span {
|
|
109
|
+
white-space: nowrap;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
/* All inline nodes must not exceed line height */
|
|
113
|
+
.ProseMirror [data-type="variable"],
|
|
114
|
+
.ProseMirror [data-type="color-tile"],
|
|
115
|
+
.ProseMirror [data-type="fill-space"],
|
|
116
|
+
.ProseMirror [data-type="wrapped-text"] {
|
|
117
|
+
max-height: 1.4rem !important;
|
|
118
|
+
height: auto !important;
|
|
119
|
+
line-height: 1.4rem;
|
|
120
|
+
vertical-align: middle;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
/* Text should be monospace and equal width - each character is exactly 1ch */
|
|
124
|
+
.ProseMirror {
|
|
125
|
+
font-family: "Courier New", "Courier", monospace;
|
|
126
|
+
font-variant-numeric: tabular-nums;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
/* Don't transform node views (they handle their own display) */
|
|
130
|
+
.ProseMirror [data-type="variable"],
|
|
131
|
+
.ProseMirror [data-type="color-tile"],
|
|
132
|
+
.ProseMirror [data-type="fill-space"],
|
|
133
|
+
.ProseMirror [data-type="wrapped-text"] {
|
|
134
|
+
text-transform: none;
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
/* Enable dragging for nodes with data-drag-handle */
|
|
138
|
+
.ProseMirror [data-drag-handle] {
|
|
139
|
+
cursor: grab;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
.ProseMirror [data-drag-handle]:active {
|
|
143
|
+
cursor: grabbing;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
/* Ensure no weird spacing around inline nodes */
|
|
147
|
+
.ProseMirror [data-type="variable"]::before,
|
|
148
|
+
.ProseMirror [data-type="variable"]::after,
|
|
149
|
+
.ProseMirror [data-type="color-tile"]::before,
|
|
150
|
+
.ProseMirror [data-type="color-tile"]::after {
|
|
151
|
+
content: none;
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
/* Range-selection highlight for inline atom nodes (color tiles,
|
|
155
|
+
variables, fill-space). onSelectionUpdate adds this
|
|
156
|
+
class to any atom node DOM element inside the selection range,
|
|
157
|
+
giving shift+arrow and click-drag a visible highlight without
|
|
158
|
+
needing user-select: all (which made Safari treat clicks on a
|
|
159
|
+
tag as selecting the entire line). */
|
|
160
|
+
.ProseMirror .selected-inline {
|
|
161
|
+
outline: 2px solid var(--primary);
|
|
162
|
+
outline-offset: 1px;
|
|
163
|
+
border-radius: 3px;
|
|
164
|
+
}
|
package/dist/index.d.ts
CHANGED
|
@@ -76,3 +76,31 @@ export * from "./components/plugin/board-showcase";
|
|
|
76
76
|
export * from "./components/plugin/plugin-card";
|
|
77
77
|
export * from "./components/plugin/plugin-category-badge";
|
|
78
78
|
export * from "./components/plugin/scaled-board-teaser";
|
|
79
|
+
export * from "./components/editor/constants";
|
|
80
|
+
export * from "./components/editor/template-editor";
|
|
81
|
+
export * from "./components/editor/template-editor-toolbar";
|
|
82
|
+
export * from "./components/editor/toolbar-dropdown";
|
|
83
|
+
export * from "./components/editor/color-picker-content";
|
|
84
|
+
export * from "./components/editor/draw-char-picker-content";
|
|
85
|
+
export * from "./components/editor/filter-picker-content";
|
|
86
|
+
export * from "./components/editor/formatting-picker-content";
|
|
87
|
+
export * from "./components/editor/variable-picker-content";
|
|
88
|
+
export * from "./components/editor/extensions/color-tile-node";
|
|
89
|
+
export * from "./components/editor/extensions/fill-space-node";
|
|
90
|
+
export * from "./components/editor/extensions/formula-node";
|
|
91
|
+
export * from "./components/editor/extensions/line-navigation";
|
|
92
|
+
export * from "./components/editor/extensions/single-paragraph-doc";
|
|
93
|
+
export * from "./components/editor/extensions/trailing-newline";
|
|
94
|
+
export * from "./components/editor/extensions/variable-node";
|
|
95
|
+
export * from "./components/editor/extensions/wrapped-text-node";
|
|
96
|
+
export * from "./components/editor/node-views/color-tile-node-view";
|
|
97
|
+
export * from "./components/editor/node-views/fill-space-node-view";
|
|
98
|
+
export * from "./components/editor/node-views/formula-node-view";
|
|
99
|
+
export * from "./components/editor/node-views/node-view-context";
|
|
100
|
+
export * from "./components/editor/node-views/variable-node-view";
|
|
101
|
+
export * from "./components/editor/node-views/wrapped-text-view";
|
|
102
|
+
export * from "./components/editor/utils/draw-mode";
|
|
103
|
+
export * from "./components/editor/utils/insertion";
|
|
104
|
+
export * from "./components/editor/utils/length-calculator";
|
|
105
|
+
export * from "./components/editor/utils/serialization";
|
|
106
|
+
export * from "./components/editor/utils/stroke-transaction";
|
package/dist/index.js
CHANGED
|
@@ -56,16 +56,44 @@ import { Sidebar as Zt } from "./components/chrome/sidebar.js";
|
|
|
56
56
|
import { SkipToContent as Qt } from "./components/chrome/skip-to-content.js";
|
|
57
57
|
import { ThemeToggle as $t } from "./components/chrome/theme-toggle.js";
|
|
58
58
|
import { HIDE_FESTIVE_COOKIE as en, PRIDE_SEASON as tn, SEASONS as nn, fireSeasonBurst as rn, getActiveSeason as an, readCookieString as on, shouldShowPride as sn, useActiveSeason as cn, usePrideActive as ln } from "./lib/seasons.js";
|
|
59
|
-
import { ALL_COLOR_CODES as un, AVAILABLE_COLORS as dn, BOARD_COLORS as fn, COLOR_CODE_MAP as pn, COLOR_DISPLAY as mn,
|
|
60
|
-
import { BOARD_CHARS as
|
|
61
|
-
import { DEVICE_DIMENSIONS as
|
|
62
|
-
import { BoardDisplay as
|
|
63
|
-
import { BoardTeaser as
|
|
64
|
-
import { ScaledBoardDisplay as
|
|
65
|
-
import { StaticBoardDisplay as
|
|
66
|
-
import { DEFAULT_SHAPE_LABELS as
|
|
67
|
-
import { BoardShowcase as
|
|
68
|
-
import { PLUGIN_CATEGORIES as
|
|
69
|
-
import { ScaledBoardTeaser as
|
|
70
|
-
import { PluginCard as
|
|
71
|
-
|
|
59
|
+
import { ALL_COLOR_CODES as un, AVAILABLE_COLORS as dn, BOARD_COLORS as fn, COLOR_CODE_MAP as pn, COLOR_DISPLAY as mn, FIESTABOARD_COLORS as hn, getBoardColor as gn, isValidBoardColor as _n, resolveColorCode as vn } from "./lib/board-colors.js";
|
|
60
|
+
import { BOARD_CHARS as yn, EXTRA_CHARS as bn, getCharFromToken as xn, getCharIndex as Sn, isColorTile as Cn, messageToGrid as wn, messageToText as Tn, parseLine as En, tokensEqual as Dn } from "./lib/board-characters.js";
|
|
61
|
+
import { DEVICE_DIMENSIONS as On, MAX_NOTES_PER_AXIS as kn, NOTE_COLS as An, NOTE_ROWS as jn, isNoteArray as Mn, noteArrayDimensions as Nn, resolveDimensions as Pn } from "./lib/board-dimensions.js";
|
|
62
|
+
import { BoardDisplay as Fn, FLAP_SPEED_PRESETS as In, deriveFlapTiming as Ln, resolveFlapSpeed as Rn } from "./components/board/board-display.js";
|
|
63
|
+
import { BoardTeaser as zn } from "./components/board/board-teaser.js";
|
|
64
|
+
import { ScaledBoardDisplay as Bn } from "./components/board/scaled-board-display.js";
|
|
65
|
+
import { StaticBoardDisplay as Vn } from "./components/board/static-board-display.js";
|
|
66
|
+
import { DEFAULT_SHAPE_LABELS as Hn, previewLabel as Un, previewLabels as Wn, previewMessage as Gn } from "./lib/board-previews.js";
|
|
67
|
+
import { BoardShowcase as Kn, DEFAULT_SHOWCASE_LABELS as qn } from "./components/plugin/board-showcase.js";
|
|
68
|
+
import { PLUGIN_CATEGORIES as Jn, PluginCategoryBadge as Yn } from "./components/plugin/plugin-category-badge.js";
|
|
69
|
+
import { ScaledBoardTeaser as Xn } from "./components/plugin/scaled-board-teaser.js";
|
|
70
|
+
import { PluginCard as Zn } from "./components/plugin/plugin-card.js";
|
|
71
|
+
import { BOARD_CODE_TO_COLOR as Qn, BOARD_COLOR_CODES as $n, CURSOR_ANCHOR as er, DEFAULT_BOARD_LINES as tr, DEFAULT_BOARD_WIDTH as nr, FILL_SPACE_REPEAT_VAR as rr, FILL_SPACE_VAR as ir } from "./components/editor/constants.js";
|
|
72
|
+
import { NodeViewInjectionProvider as ar, useNodeViewInjection as or } from "./components/editor/node-views/node-view-context.js";
|
|
73
|
+
import { ColorTileNodeView as sr, DEFAULT_COLOR_TILE_NODE_VIEW_LABELS as cr } from "./components/editor/node-views/color-tile-node-view.js";
|
|
74
|
+
import { ColorTileNode as lr } from "./components/editor/extensions/color-tile-node.js";
|
|
75
|
+
import { DEFAULT_FILL_SPACE_NODE_VIEW_LABELS as ur, FillSpaceNodeView as dr } from "./components/editor/node-views/fill-space-node-view.js";
|
|
76
|
+
import { FillSpaceNode as fr } from "./components/editor/extensions/fill-space-node.js";
|
|
77
|
+
import { DEFAULT_FORMULA_NODE_VIEW_LABELS as pr, FormulaNodeView as mr } from "./components/editor/node-views/formula-node-view.js";
|
|
78
|
+
import { FormulaNode as hr } from "./components/editor/extensions/formula-node.js";
|
|
79
|
+
import { LineNavigation as gr } from "./components/editor/extensions/line-navigation.js";
|
|
80
|
+
import { SingleParagraphDoc as _r } from "./components/editor/extensions/single-paragraph-doc.js";
|
|
81
|
+
import { TrailingNewline as vr } from "./components/editor/extensions/trailing-newline.js";
|
|
82
|
+
import { DEFAULT_VARIABLE_NODE_VIEW_LABELS as yr, VariableNodeView as br } from "./components/editor/node-views/variable-node-view.js";
|
|
83
|
+
import { VariableNode as xr } from "./components/editor/extensions/variable-node.js";
|
|
84
|
+
import { DEFAULT_WRAPPED_TEXT_VIEW_LABELS as Sr, WrappedTextView as Cr } from "./components/editor/node-views/wrapped-text-view.js";
|
|
85
|
+
import { WrappedTextNode as wr } from "./components/editor/extensions/wrapped-text-node.js";
|
|
86
|
+
import { ColorPickerContent as Tr, DEFAULT_COLOR_PICKER_LABELS as Er } from "./components/editor/color-picker-content.js";
|
|
87
|
+
import { DRAW_CHARS as Dr, brushToCell as Or, cellsToLine as kr, isPositionalLine as Ar, lineToCells as jr, paintLine as Mr, renderPositionalLine as Nr } from "./components/editor/utils/draw-mode.js";
|
|
88
|
+
import { DEFAULT_DRAW_CHAR_PICKER_LABELS as Pr, DrawCharPickerContent as Fr } from "./components/editor/draw-char-picker-content.js";
|
|
89
|
+
import { DEFAULT_FORMATTING_PICKER_LABELS as Ir, FormattingPickerContent as Lr } from "./components/editor/formatting-picker-content.js";
|
|
90
|
+
import { DEFAULT_TOOLBAR_DROPDOWN_LABELS as Rr, ToolbarDropdown as zr } from "./components/editor/toolbar-dropdown.js";
|
|
91
|
+
import { parseLineContent as Br, parseTemplateSimple as Vr, serializeTemplateSimple as Hr } from "./components/editor/utils/serialization.js";
|
|
92
|
+
import { insertTemplateContent as Ur } from "./components/editor/utils/insertion.js";
|
|
93
|
+
import { DEFAULT_TEMPLATE_EDITOR_TOOLBAR_LABELS as Wr, TemplateEditorToolbar as Gr } from "./components/editor/template-editor-toolbar.js";
|
|
94
|
+
import { buildStrokeTransaction as Kr, lineRanges as qr } from "./components/editor/utils/stroke-transaction.js";
|
|
95
|
+
import { DEFAULT_TEMPLATE_EDITOR_LABELS as Jr, TemplateEditor as Yr } from "./components/editor/template-editor.js";
|
|
96
|
+
import { DEFAULT_FILTER_PICKER_LABELS as Xr, FilterPickerContent as Zr } from "./components/editor/filter-picker-content.js";
|
|
97
|
+
import { DEFAULT_VARIABLE_PICKER_LABELS as Qr, VariablePickerContent as $r, createLucideIconResolver as ei, getPluginsWithNestedArrays as ti } from "./components/editor/variable-picker-content.js";
|
|
98
|
+
import { calculateLineLength as ni, getOverflowAmount as ri, willOverflow as ii } from "./components/editor/utils/length-calculator.js";
|
|
99
|
+
export { un as ALL_COLOR_CODES, dn as AVAILABLE_COLORS, t as Accordion, n as AccordionContent, r as AccordionItem, i as AccordionTrigger, _ as Alert, v as AlertDescription, L as AlertDialog, R as AlertDialogAction, z as AlertDialogCancel, B as AlertDialogContent, V as AlertDialogDescription, H as AlertDialogFooter, U as AlertDialogHeader, W as AlertDialogOverlay, G as AlertDialogPortal, K as AlertDialogTitle, q as AlertDialogTrigger, y as AlertTitle, g as Aurora, yn as BOARD_CHARS, Qn as BOARD_CODE_TO_COLOR, fn as BOARD_COLORS, $n as BOARD_COLOR_CODES, x as Badge, Fn as BoardDisplay, It as BoardIcon, Lt as BoardSelector, Kn as BoardShowcase, zn as BoardTeaser, M as Box, E as Button, pn as COLOR_CODE_MAP, mn as COLOR_DISPLAY, er as CURSOR_ANCHOR, a as Card, o as CardAction, s as CardContent, c as CardDescription, l as CardFooter, u as CardHeader, d as CardTitle, O as Checkbox, Ee as Code, f as Collapsible, p as CollapsibleContent, m as CollapsibleTrigger, Tr as ColorPickerContent, lr as ColorTileNode, sr as ColorTileNodeView, tr as DEFAULT_BOARD_LINES, nr as DEFAULT_BOARD_WIDTH, Er as DEFAULT_COLOR_PICKER_LABELS, cr as DEFAULT_COLOR_TILE_NODE_VIEW_LABELS, Pr as DEFAULT_DRAW_CHAR_PICKER_LABELS, ur as DEFAULT_FILL_SPACE_NODE_VIEW_LABELS, Xr as DEFAULT_FILTER_PICKER_LABELS, Ir as DEFAULT_FORMATTING_PICKER_LABELS, pr as DEFAULT_FORMULA_NODE_VIEW_LABELS, Hn as DEFAULT_SHAPE_LABELS, qn as DEFAULT_SHOWCASE_LABELS, Jr as DEFAULT_TEMPLATE_EDITOR_LABELS, Wr as DEFAULT_TEMPLATE_EDITOR_TOOLBAR_LABELS, Rr as DEFAULT_TOOLBAR_DROPDOWN_LABELS, yr as DEFAULT_VARIABLE_NODE_VIEW_LABELS, Qr as DEFAULT_VARIABLE_PICKER_LABELS, Sr as DEFAULT_WRAPPED_TEXT_VIEW_LABELS, On as DEVICE_DIMENSIONS, Dr as DRAW_CHARS, We as DecryptedText, J as Dialog, Y as DialogClose, X as DialogContent, Z as DialogDescription, Q as DialogFooter, $ as DialogHeader, ee as DialogOverlay, te as DialogPortal, ne as DialogTitle, re as DialogTrigger, Fr as DrawCharPickerContent, ie as DropdownMenu, ae as DropdownMenuCheckboxItem, oe as DropdownMenuContent, se as DropdownMenuGroup, ce as DropdownMenuItem, le as DropdownMenuLabel, ue as DropdownMenuPortal, de as DropdownMenuRadioGroup, fe as DropdownMenuRadioItem, pe as DropdownMenuSeparator, me as DropdownMenuShortcut, he as DropdownMenuSub, ge as DropdownMenuSubContent, _e as DropdownMenuSubTrigger, ve as DropdownMenuTrigger, bn as EXTRA_CHARS, C as EmptyState, hn as FIESTABOARD_COLORS, Rt as FIESTA_ICON_DATA_URI, zt as FIESTA_ICON_PALETTE, Bt as FIESTA_ICON_SVG, rr as FILL_SPACE_REPEAT_VAR, ir as FILL_SPACE_VAR, In as FLAP_SPEED_PRESETS, Ge as FadeContent, Vt as FiestaIcon, Ht as FiestaLogo, fr as FillSpaceNode, dr as FillSpaceNodeView, Zr as FilterPickerContent, N as Flex, Lr as FormattingPickerContent, hr as FormulaNode, mr as FormulaNodeView, F as Grid, en as HIDE_FESTIVE_COOKIE, De as Heading, k as Input, h as JsonTree, A as Label, Ut as LanguageSelector, gr as LineNavigation, ke as List, Ae as ListItem, kn as MAX_NOTES_PER_AXIS, Wt as MainContent, An as NOTE_COLS, jn as NOTE_ROWS, ar as NodeViewInjectionProvider, Jn as PLUGIN_CATEGORIES, tn as PRIDE_SEASON, Gt as PageHeader, Kt as PageIconGradientDefs, qt as PageLayout, Jt as PageToolbar, Zn as PluginCard, Yn as PluginCategoryBadge, ye as Popover, be as PopoverClose, xe as PopoverContent, Se as PopoverDescription, Ce as PopoverTitle, we as PopoverTrigger, nn as SEASONS, Bn as ScaledBoardDisplay, Xn as ScaledBoardTeaser, Me as ScrollArea, Ne as ScrollBar, j as SecretInput, dt as SegmentedControl, ft as SegmentedControlItem, Ye as Select, Xe as SelectContent, Ze as SelectGroup, Qe as SelectItem, $e as SelectLabel, et as SelectScrollDownButton, tt as SelectScrollUpButton, nt as SelectSeparator, rt as SelectTrigger, it as SelectValue, xt as Sheet, St as SheetClose, Ct as SheetContent, wt as SheetDescription, Tt as SheetFooter, Et as SheetHeader, Dt as SheetOverlay, Ot as SheetPortal, kt as SheetTitle, At as SheetTrigger, Zt as Sidebar, Yt as SidebarAurora, Xt as SidebarAuroraHorizontal, _r as SingleParagraphDoc, Ke as Skeleton, Qt as SkipToContent, at as Slider, w as Spinner, yt as Stack, Vn as StaticBoardDisplay, qe as StatusDot, ot as Switch, Pe as Table, Fe as TableBody, Ie as TableCell, Le as TableHead, Re as TableHeader, ze as TableRow, Be as Tabs, Ve as TabsContent, He as TabsList, Ue as TabsTrigger, Yr as TemplateEditor, Gr as TemplateEditorToolbar, ct as Text, Ft as TextLink, st as Textarea, $t as ThemeToggle, ut as TimePicker, pt as ToggleCard, mt as ToggleCardGroup, zr as ToolbarDropdown, jt as Tooltip, Mt as TooltipContent, Nt as TooltipProvider, Pt as TooltipTrigger, vr as TrailingNewline, xr as VariableNode, br as VariableNodeView, $r as VariablePickerContent, wr as WrappedTextNode, Cr as WrappedTextView, b as alertVariants, S as badgeVariants, Or as brushToCell, Kr as buildStrokeTransaction, D as buttonVariants, ni as calculateLineLength, kr as cellsToLine, e as cn, ei as createLucideIconResolver, Ln as deriveFlapTiming, rn as fireSeasonBurst, P as flexVariants, an as getActiveSeason, gn as getBoardColor, xn as getCharFromToken, Sn as getCharIndex, ri as getOverflowAmount, ti as getPluginsWithNestedArrays, I as gridVariants, Oe as headingVariants, Ur as insertTemplateContent, Cn as isColorTile, Mn as isNoteArray, Ar as isPositionalLine, _n as isValidBoardColor, qr as lineRanges, jr as lineToCells, je as listVariants, wn as messageToGrid, Tn as messageToText, Nn as noteArrayDimensions, Mr as paintLine, En as parseLine, Br as parseLineContent, Vr as parseTemplateSimple, Un as previewLabel, Wn as previewLabels, Gn as previewMessage, on as readCookieString, Nr as renderPositionalLine, vn as resolveColorCode, Pn as resolveDimensions, Rn as resolveFlapSpeed, ht as segmentedControlItemVariants, gt as segmentedControlVariants, Hr as serializeTemplateSimple, sn as shouldShowPride, T as spinnerVariants, bt as stackVariants, Je as statusDotVariants, lt as textVariants, _t as toggleCardGroupVariants, vt as toggleCardVariants, Dn as tokensEqual, cn as useActiveSeason, or as useNodeViewInjection, Te as usePopoverClose, ln as usePrideActive, ii as willOverflow };
|
|
@@ -31,6 +31,22 @@ export declare const BOARD_COLORS: {
|
|
|
31
31
|
readonly white: "#ffffff";
|
|
32
32
|
readonly black: "#1a1a1a";
|
|
33
33
|
};
|
|
34
|
+
/**
|
|
35
|
+
* Legacy alias. The FiestaBoard app named this exact map `FIESTABOARD_COLORS`
|
|
36
|
+
* (`@/lib/board-colors`), and its template-editor components import it by that
|
|
37
|
+
* name. Same object, same name → hex contract — kept so the app can drop its
|
|
38
|
+
* local copy without a rename sweep. Prefer `BOARD_COLORS` in new code.
|
|
39
|
+
*/
|
|
40
|
+
export declare const FIESTABOARD_COLORS: {
|
|
41
|
+
readonly red: "#eb4034";
|
|
42
|
+
readonly orange: "#f5a623";
|
|
43
|
+
readonly yellow: "#f8e71c";
|
|
44
|
+
readonly green: "#7ed321";
|
|
45
|
+
readonly blue: "#4a90d9";
|
|
46
|
+
readonly violet: "#9b59b6";
|
|
47
|
+
readonly white: "#ffffff";
|
|
48
|
+
readonly black: "#1a1a1a";
|
|
49
|
+
};
|
|
34
50
|
export type BoardColorName = keyof typeof BOARD_COLORS;
|
|
35
51
|
export declare const COLOR_CODE_MAP: Record<string, string>;
|
|
36
52
|
export declare const ALL_COLOR_CODES: Record<string, string>;
|
package/dist/lib/board-colors.js
CHANGED
|
@@ -8,7 +8,7 @@ var e = {
|
|
|
8
8
|
violet: "#9b59b6",
|
|
9
9
|
white: "#ffffff",
|
|
10
10
|
black: "#1a1a1a"
|
|
11
|
-
}, t = {
|
|
11
|
+
}, t = e, n = {
|
|
12
12
|
63: e.red,
|
|
13
13
|
64: e.orange,
|
|
14
14
|
65: e.yellow,
|
|
@@ -18,8 +18,8 @@ var e = {
|
|
|
18
18
|
69: e.white,
|
|
19
19
|
70: e.black,
|
|
20
20
|
71: e.black
|
|
21
|
-
},
|
|
22
|
-
...
|
|
21
|
+
}, r = Object.assign(Object.create(null), {
|
|
22
|
+
...n,
|
|
23
23
|
red: e.red,
|
|
24
24
|
orange: e.orange,
|
|
25
25
|
yellow: e.yellow,
|
|
@@ -29,7 +29,7 @@ var e = {
|
|
|
29
29
|
purple: e.violet,
|
|
30
30
|
white: e.white,
|
|
31
31
|
black: e.black
|
|
32
|
-
}),
|
|
32
|
+
}), i = [
|
|
33
33
|
"red",
|
|
34
34
|
"orange",
|
|
35
35
|
"yellow",
|
|
@@ -38,7 +38,7 @@ var e = {
|
|
|
38
38
|
"violet",
|
|
39
39
|
"white",
|
|
40
40
|
"black"
|
|
41
|
-
],
|
|
41
|
+
], a = {
|
|
42
42
|
red: {
|
|
43
43
|
bg: "bg-board-red",
|
|
44
44
|
text: "text-board-black"
|
|
@@ -72,22 +72,22 @@ var e = {
|
|
|
72
72
|
text: "text-board-white"
|
|
73
73
|
}
|
|
74
74
|
};
|
|
75
|
-
function
|
|
76
|
-
let
|
|
77
|
-
return
|
|
75
|
+
function o(t) {
|
|
76
|
+
let n = t.toLowerCase();
|
|
77
|
+
return r[t] || r[n] || e.black;
|
|
78
78
|
}
|
|
79
|
-
function
|
|
79
|
+
function s(e) {
|
|
80
80
|
let t = e.toLowerCase();
|
|
81
|
-
return Object.hasOwn(
|
|
81
|
+
return Object.hasOwn(r, e) || Object.hasOwn(r, t);
|
|
82
82
|
}
|
|
83
|
-
function
|
|
84
|
-
if (
|
|
83
|
+
function c(t, n) {
|
|
84
|
+
if (n) {
|
|
85
85
|
if (t === "69" || t === "white") return e.black;
|
|
86
86
|
if (t === "70" || t === "black") return e.white;
|
|
87
87
|
}
|
|
88
|
-
return
|
|
88
|
+
return r[t] || e.black;
|
|
89
89
|
}
|
|
90
90
|
//#endregion
|
|
91
|
-
export {
|
|
91
|
+
export { r as ALL_COLOR_CODES, i as AVAILABLE_COLORS, e as BOARD_COLORS, n as COLOR_CODE_MAP, a as COLOR_DISPLAY, t as FIESTABOARD_COLORS, o as getBoardColor, s as isValidBoardColor, c as resolveColorCode };
|
|
92
92
|
|
|
93
93
|
//# sourceMappingURL=board-colors.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"board-colors.js","names":[],"sources":["../../src/lib/board-colors.ts"],"mappings":";AAyBA,IAAa,IAAe;CAC1B,KAAK;CACL,QAAQ;CACR,QAAQ;CACR,OAAO;CACP,MAAM;CACN,QAAQ;CACR,OAAO;CACP,OAAO;AACT,
|
|
1
|
+
{"version":3,"file":"board-colors.js","names":[],"sources":["../../src/lib/board-colors.ts"],"mappings":";AAyBA,IAAa,IAAe;CAC1B,KAAK;CACL,QAAQ;CACR,QAAQ;CACR,OAAO;CACP,MAAM;CACN,QAAQ;CACR,OAAO;CACP,OAAO;AACT,GAQa,IAAqB,GAMrB,IAAyC;CACpD,IAAM,EAAa;CACnB,IAAM,EAAa;CACnB,IAAM,EAAa;CACnB,IAAM,EAAa;CACnB,IAAM,EAAa;CACnB,IAAM,EAAa;CACnB,IAAM,EAAa;CACnB,IAAM,EAAa;CACnB,IAAM,EAAa;AACrB,GAOa,IAA0C,OAAO,OAAO,OAAO,OAAO,IAAI,GAAG;CAExF,GAAG;CAEH,KAAK,EAAa;CAClB,QAAQ,EAAa;CACrB,QAAQ,EAAa;CACrB,OAAO,EAAa;CACpB,MAAM,EAAa;CACnB,QAAQ,EAAa;CACrB,QAAQ,EAAa;CACrB,OAAO,EAAa;CACpB,OAAO,EAAa;AACtB,CAAC,GAGY,IAAqC;CAChD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF,GAIa,IAAsE;CACjF,KAAK;EAAE,IAAI;EAAgB,MAAM;CAAmB;CACpD,QAAQ;EAAE,IAAI;EAAmB,MAAM;CAAmB;CAC1D,QAAQ;EAAE,IAAI;EAAmB,MAAM;CAAmB;CAC1D,OAAO;EAAE,IAAI;EAAkB,MAAM;CAAmB;CACxD,MAAM;EAAE,IAAI;EAAiB,MAAM;CAAmB;CACtD,QAAQ;EAAE,IAAI;EAAmB,MAAM;CAAmB;CAC1D,OAAO;EAAE,IAAI;EAAyB,MAAM;CAAmB;CAC/D,OAAO;EAAE,IAAI;EAAkB,MAAM;CAAmB;AAC1D;AAGA,SAAgB,EAAc,GAA4B;CACxD,IAAM,IAAW,EAAW,YAAY;CACxC,OAAO,EAAgB,MAAe,EAAgB,MAAa,EAAa;AAClF;AAGA,SAAgB,EAAkB,GAAwB;CACxD,IAAM,IAAW,EAAM,YAAY;CACnC,OAAO,OAAO,OAAO,GAAiB,CAAK,KAAK,OAAO,OAAO,GAAiB,CAAQ;AACzF;AAMA,SAAgB,EAAiB,GAAc,GAA+B;CAC5E,IAAI,GAAc;EAChB,IAAI,MAAS,QAAQ,MAAS,SAAS,OAAO,EAAa;EAC3D,IAAI,MAAS,QAAQ,MAAS,SAAS,OAAO,EAAa;CAC7D;CACA,OAAO,EAAgB,MAAS,EAAa;AAC/C"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Render-phase equivalent of `useEffect(fn, deps)` for the specific job of
|
|
3
|
+
* mirroring an external value (a query result, a prop) into local state.
|
|
4
|
+
*
|
|
5
|
+
* Returns `true` on the first render, and on any later render where one of
|
|
6
|
+
* `deps` changed identity — i.e. exactly the renders after which
|
|
7
|
+
* `useEffect(fn, deps)` would have fired. Callers do their `setState` calls
|
|
8
|
+
* inside that branch, during render, instead of in an effect:
|
|
9
|
+
*
|
|
10
|
+
* ```tsx
|
|
11
|
+
* const settingsChanged = useDepsChanged([data?.general]);
|
|
12
|
+
* if (settingsChanged && data?.general) {
|
|
13
|
+
* setTimezone(data.general.timezone ?? DEFAULT_TZ);
|
|
14
|
+
* }
|
|
15
|
+
* ```
|
|
16
|
+
*
|
|
17
|
+
* Why this is better than the effect it replaces: React restarts the render
|
|
18
|
+
* immediately when a component sets its own state during render, *before*
|
|
19
|
+
* committing — so the mirrored value is on screen in the first commit. The
|
|
20
|
+
* effect version commits the stale value, paints, then re-renders, which is
|
|
21
|
+
* the cascading render that `react-hooks/set-state-in-effect` warns about
|
|
22
|
+
* (and, per the React docs, a state update during render of the *same*
|
|
23
|
+
* component is the supported way to adjust state when a prop changes:
|
|
24
|
+
* https://react.dev/reference/react/useState#storing-information-from-previous-renders).
|
|
25
|
+
*
|
|
26
|
+
* Constraints, same as any render-phase update:
|
|
27
|
+
* - Only call `setState` for THIS component inside the branch. Calling a
|
|
28
|
+
* parent's setter (or a router/toast side effect) during render is illegal;
|
|
29
|
+
* those must stay in an effect.
|
|
30
|
+
* - The branch must be idempotent. It runs once per change because the deps
|
|
31
|
+
* snapshot is taken as soon as it fires.
|
|
32
|
+
*/
|
|
33
|
+
export declare function useDepsChanged(deps: readonly unknown[]): boolean;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { useState as e } from "react";
|
|
3
|
+
//#region src/lib/use-deps-changed.ts
|
|
4
|
+
function t(t) {
|
|
5
|
+
let [n, r] = e(null);
|
|
6
|
+
return n === null || n.length !== t.length || t.some((e, t) => !Object.is(e, n[t])) ? (r(t), !0) : !1;
|
|
7
|
+
}
|
|
8
|
+
//#endregion
|
|
9
|
+
export { t as useDepsChanged };
|
|
10
|
+
|
|
11
|
+
//# sourceMappingURL=use-deps-changed.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-deps-changed.js","names":[],"sources":["../../src/lib/use-deps-changed.ts"],"mappings":";;;AAoCA,SAAgB,EAAe,GAAmC;CAChE,IAAM,CAAC,GAAM,KAAW,EAAoC,IAAI;CAOhE,OALI,MAAS,QAAQ,EAAK,WAAW,EAAK,UAAU,EAAK,MAAM,GAAK,MAAM,CAAC,OAAO,GAAG,GAAK,EAAK,EAAE,CAAC,KAChG,EAAQ,CAAI,GACL,MAGF;AACT"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fiestaboard/ui",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.2.0",
|
|
4
4
|
"description": "FiestaUI — the FiestaBoard design system. React components on Base UI with Tailwind v4 design tokens.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -28,6 +28,7 @@
|
|
|
28
28
|
},
|
|
29
29
|
"./theme.css": "./dist/theme.css",
|
|
30
30
|
"./fonts.css": "./dist/fonts.css",
|
|
31
|
+
"./editor.css": "./dist/editor.css",
|
|
31
32
|
"./seasons/*.css": "./dist/seasons/*.css",
|
|
32
33
|
"./package.json": "./package.json",
|
|
33
34
|
"./*": {
|
|
@@ -36,7 +37,7 @@
|
|
|
36
37
|
}
|
|
37
38
|
},
|
|
38
39
|
"scripts": {
|
|
39
|
-
"build": "vite build && tsc -p tsconfig.build.json && cp src/styles/theme.css dist/theme.css && cp src/styles/fonts.css dist/fonts.css && cp -r src/styles/seasons dist/seasons",
|
|
40
|
+
"build": "vite build && tsc -p tsconfig.build.json && cp src/styles/theme.css dist/theme.css && cp src/styles/fonts.css dist/fonts.css && cp src/styles/editor.css dist/editor.css && cp -r src/styles/seasons dist/seasons",
|
|
40
41
|
"typecheck": "tsc --noEmit",
|
|
41
42
|
"lint": "eslint",
|
|
42
43
|
"lint:fix": "eslint --fix",
|
|
@@ -66,16 +67,34 @@
|
|
|
66
67
|
"tw-animate-css": "^1.4.0"
|
|
67
68
|
},
|
|
68
69
|
"peerDependencies": {
|
|
70
|
+
"@codemirror/commands": "^6.10.4",
|
|
71
|
+
"@codemirror/language": "^6.12.4",
|
|
72
|
+
"@codemirror/state": "^6.7.1",
|
|
73
|
+
"@codemirror/view": "^6.43.8",
|
|
74
|
+
"@lezer/highlight": "^1.2.3",
|
|
75
|
+
"@tiptap/core": "^3.29.2",
|
|
76
|
+
"@tiptap/pm": "^3.29.2",
|
|
77
|
+
"@tiptap/react": "^3.29.2",
|
|
78
|
+
"@tiptap/starter-kit": "^3.29.2",
|
|
69
79
|
"lucide-react": ">=1.23.0",
|
|
70
80
|
"react": "^19.0.0",
|
|
71
81
|
"react-dom": "^19.0.0",
|
|
72
82
|
"tailwindcss": "^4.0.0"
|
|
73
83
|
},
|
|
74
84
|
"devDependencies": {
|
|
85
|
+
"@codemirror/commands": "^6.10.4",
|
|
86
|
+
"@codemirror/language": "^6.12.4",
|
|
87
|
+
"@codemirror/state": "^6.7.1",
|
|
88
|
+
"@codemirror/view": "^6.43.8",
|
|
89
|
+
"@lezer/highlight": "^1.2.3",
|
|
75
90
|
"@storybook/addon-a11y": "^10.5.5",
|
|
76
91
|
"@storybook/react-vite": "^10.5.5",
|
|
77
92
|
"@storybook/test-runner": "^0.24.4",
|
|
78
93
|
"@tailwindcss/vite": "^4",
|
|
94
|
+
"@tiptap/core": "^3.29.2",
|
|
95
|
+
"@tiptap/pm": "^3.29.2",
|
|
96
|
+
"@tiptap/react": "^3.29.2",
|
|
97
|
+
"@tiptap/starter-kit": "^3.29.2",
|
|
79
98
|
"@types/node": "^26",
|
|
80
99
|
"@types/react": "^19",
|
|
81
100
|
"@types/react-dom": "^19",
|
|
@@ -106,5 +125,34 @@
|
|
|
106
125
|
"publishConfig": {
|
|
107
126
|
"registry": "https://registry.npmjs.org",
|
|
108
127
|
"access": "public"
|
|
128
|
+
},
|
|
129
|
+
"peerDependenciesMeta": {
|
|
130
|
+
"@codemirror/commands": {
|
|
131
|
+
"optional": true
|
|
132
|
+
},
|
|
133
|
+
"@codemirror/language": {
|
|
134
|
+
"optional": true
|
|
135
|
+
},
|
|
136
|
+
"@codemirror/state": {
|
|
137
|
+
"optional": true
|
|
138
|
+
},
|
|
139
|
+
"@codemirror/view": {
|
|
140
|
+
"optional": true
|
|
141
|
+
},
|
|
142
|
+
"@lezer/highlight": {
|
|
143
|
+
"optional": true
|
|
144
|
+
},
|
|
145
|
+
"@tiptap/core": {
|
|
146
|
+
"optional": true
|
|
147
|
+
},
|
|
148
|
+
"@tiptap/pm": {
|
|
149
|
+
"optional": true
|
|
150
|
+
},
|
|
151
|
+
"@tiptap/react": {
|
|
152
|
+
"optional": true
|
|
153
|
+
},
|
|
154
|
+
"@tiptap/starter-kit": {
|
|
155
|
+
"optional": true
|
|
156
|
+
}
|
|
109
157
|
}
|
|
110
158
|
}
|