@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
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"template-editor.js","names":[],"sources":["../../../src/components/editor/template-editor.tsx"],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export interface ToolbarDropdownLabels {
|
|
2
|
+
/** Accessible name used when the caller passes an empty `label`. */
|
|
3
|
+
menu: string;
|
|
4
|
+
}
|
|
5
|
+
export declare const DEFAULT_TOOLBAR_DROPDOWN_LABELS: ToolbarDropdownLabels;
|
|
6
|
+
export interface ToolbarDropdownProps {
|
|
7
|
+
/** Trigger's accessible name and tooltip copy. Already caller-supplied — localize it app-side. */
|
|
8
|
+
label: string;
|
|
9
|
+
icon?: React.ReactNode;
|
|
10
|
+
children: React.ReactNode | ((close: () => void) => React.ReactNode);
|
|
11
|
+
className?: string;
|
|
12
|
+
onClose?: () => void;
|
|
13
|
+
/** When false, clicking outside will NOT close the dropdown. Default: true */
|
|
14
|
+
closeOnOutsideClick?: boolean;
|
|
15
|
+
/** Disables the trigger button and prevents opening. */
|
|
16
|
+
disabled?: boolean;
|
|
17
|
+
labels?: Partial<ToolbarDropdownLabels>;
|
|
18
|
+
"data-testid"?: string;
|
|
19
|
+
}
|
|
20
|
+
export declare function ToolbarDropdown({ label, icon, children, className, onClose, closeOnOutsideClick, disabled, labels, "data-testid": dataTestId, }: ToolbarDropdownProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { cn as e } from "../../lib/utils.js";
|
|
3
|
+
import { Box as t } from "../layout/box.js";
|
|
4
|
+
import { Text as n } from "../typography/text.js";
|
|
5
|
+
import { Tooltip as r, TooltipContent as i, TooltipProvider as a, TooltipTrigger as o } from "../overlays/tooltip.js";
|
|
6
|
+
import { useEffect as s, useLayoutEffect as c, useRef as l, useState as u } from "react";
|
|
7
|
+
import { jsx as d, jsxs as f } from "react/jsx-runtime";
|
|
8
|
+
//#region src/components/editor/toolbar-dropdown.tsx
|
|
9
|
+
var p = "absolute top-full left-0 mt-1 z-[var(--z-popover)] bg-popover border border-border rounded-md shadow-lg max-w-[calc(100vw-16px)] overflow-x-auto", m = { menu: "Menu" };
|
|
10
|
+
function h({ label: h, icon: g, children: _, className: v, onClose: y, closeOnOutsideClick: b = !0, disabled: x = !1, labels: S, "data-testid": C }) {
|
|
11
|
+
let w = {
|
|
12
|
+
...m,
|
|
13
|
+
...S
|
|
14
|
+
}, [T, E] = u(!1), D = l(null), O = l(null), [k, A] = u(0);
|
|
15
|
+
return c(() => {
|
|
16
|
+
if (!T) return;
|
|
17
|
+
let e = () => {
|
|
18
|
+
let e = O.current;
|
|
19
|
+
if (!e) return;
|
|
20
|
+
let t = e.style.transform;
|
|
21
|
+
e.style.transform = "none";
|
|
22
|
+
let n = e.getBoundingClientRect();
|
|
23
|
+
e.style.transform = t;
|
|
24
|
+
let r = document.documentElement.clientWidth, i = 0;
|
|
25
|
+
n.right > r - 8 && (i = r - 8 - n.right), n.left + i < 8 && (i = 8 - n.left), A(i);
|
|
26
|
+
};
|
|
27
|
+
e();
|
|
28
|
+
let t = new ResizeObserver(e);
|
|
29
|
+
return O.current && t.observe(O.current), window.addEventListener("resize", e), () => {
|
|
30
|
+
t.disconnect(), window.removeEventListener("resize", e);
|
|
31
|
+
};
|
|
32
|
+
}, [T]), s(() => {
|
|
33
|
+
if (!T || !b) return;
|
|
34
|
+
function e(e) {
|
|
35
|
+
D.current && !D.current.contains(e.target) && (E(!1), y?.());
|
|
36
|
+
}
|
|
37
|
+
return document.addEventListener("mousedown", e), () => document.removeEventListener("mousedown", e);
|
|
38
|
+
}, [
|
|
39
|
+
T,
|
|
40
|
+
b,
|
|
41
|
+
y
|
|
42
|
+
]), s(() => {
|
|
43
|
+
if (!T) return;
|
|
44
|
+
function e(e) {
|
|
45
|
+
e.key === "Escape" && (e.stopPropagation(), E(!1), y?.());
|
|
46
|
+
}
|
|
47
|
+
return document.addEventListener("keydown", e, !0), () => document.removeEventListener("keydown", e, !0);
|
|
48
|
+
}, [T, y]), /* @__PURE__ */ d(a, { children: /* @__PURE__ */ f(t, {
|
|
49
|
+
ref: D,
|
|
50
|
+
className: "relative",
|
|
51
|
+
children: [/* @__PURE__ */ f(r, { children: [/* @__PURE__ */ d(o, {
|
|
52
|
+
asChild: !0,
|
|
53
|
+
children: /* @__PURE__ */ f("button", {
|
|
54
|
+
type: "button",
|
|
55
|
+
disabled: x,
|
|
56
|
+
"data-testid": C,
|
|
57
|
+
onClick: () => {
|
|
58
|
+
x || E(!T);
|
|
59
|
+
},
|
|
60
|
+
className: e("flex items-center justify-center p-1.5 rounded-md", "hover:bg-muted/50 transition-colors", "border border-transparent", T && "bg-muted/70 border-border", x && "opacity-60 cursor-not-allowed", v),
|
|
61
|
+
"aria-expanded": T,
|
|
62
|
+
"aria-haspopup": "true",
|
|
63
|
+
"aria-label": h || w.menu,
|
|
64
|
+
children: [g && /* @__PURE__ */ d(n, {
|
|
65
|
+
as: "span",
|
|
66
|
+
className: "w-4 h-4",
|
|
67
|
+
children: g
|
|
68
|
+
}), h && /* @__PURE__ */ d(n, {
|
|
69
|
+
as: "span",
|
|
70
|
+
className: "sr-only",
|
|
71
|
+
children: h
|
|
72
|
+
})]
|
|
73
|
+
})
|
|
74
|
+
}), h && /* @__PURE__ */ d(i, { children: /* @__PURE__ */ d(n, { children: h }) })] }), T && /* @__PURE__ */ d(t, {
|
|
75
|
+
ref: O,
|
|
76
|
+
"data-testid": "toolbar-dropdown-panel",
|
|
77
|
+
className: p,
|
|
78
|
+
style: { transform: k ? `translateX(${k}px)` : void 0 },
|
|
79
|
+
children: typeof _ == "function" ? _(() => {
|
|
80
|
+
E(!1), y?.();
|
|
81
|
+
}) : _
|
|
82
|
+
})]
|
|
83
|
+
}) });
|
|
84
|
+
}
|
|
85
|
+
//#endregion
|
|
86
|
+
export { m as DEFAULT_TOOLBAR_DROPDOWN_LABELS, h as ToolbarDropdown };
|
|
87
|
+
|
|
88
|
+
//# sourceMappingURL=toolbar-dropdown.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toolbar-dropdown.js","names":[],"sources":["../../../src/components/editor/toolbar-dropdown.tsx"],"mappings":"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"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Draw-mode utilities — cell-level editing of template lines.
|
|
3
|
+
*
|
|
4
|
+
* A "positional" line maps 1:1 to board cells: each literal character is one
|
|
5
|
+
* cell and each color marker ({{red}}) is one cell. Dynamic tokens
|
|
6
|
+
* (variables, fill_space, formulas, wrapped text) have no fixed width, so
|
|
7
|
+
* painting a line drops them (the user is choosing to draw over them; undo
|
|
8
|
+
* restores).
|
|
9
|
+
*/
|
|
10
|
+
import { type BoardColorToken } from "../constants";
|
|
11
|
+
/**
|
|
12
|
+
* The active drawing tool: a color brush, the eraser, or a stamp character
|
|
13
|
+
* picked from the toolbar's character dropdown.
|
|
14
|
+
*/
|
|
15
|
+
export type DrawBrush = {
|
|
16
|
+
kind: "color";
|
|
17
|
+
color: BoardColorToken;
|
|
18
|
+
} | {
|
|
19
|
+
kind: "eraser";
|
|
20
|
+
} | {
|
|
21
|
+
kind: "char";
|
|
22
|
+
char: string;
|
|
23
|
+
};
|
|
24
|
+
/** One board cell: a single literal character, or a "{{color}}" marker. */
|
|
25
|
+
export type Cell = string;
|
|
26
|
+
export interface CellPaint {
|
|
27
|
+
col: number;
|
|
28
|
+
/** Cell content to write: "{{color}}", a literal character, or " " to erase. */
|
|
29
|
+
cell: Cell;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* The stampable character set — every REAL character on the board (A-Z,
|
|
33
|
+
* digits, punctuation incl. °), i.e. BOARD_CHARS codes 1-62 minus blank
|
|
34
|
+
* (that's the eraser) and the undefined placeholder slots (43, 45, 51, 57,
|
|
35
|
+
* 58, 61), which BOARD_CHARS stores as ' ' to keep its indices aligned with
|
|
36
|
+
* the hardware character codes.
|
|
37
|
+
*
|
|
38
|
+
* PORTING NOTE: the app hand-copied this list with a "mirroring BOARD_CHARS"
|
|
39
|
+
* comment. FiestaUI owns BOARD_CHARS, so it is derived here instead — the
|
|
40
|
+
* mirror can no longer fall out of sync with the character set it mirrors.
|
|
41
|
+
* Slicing [1, 63) drops blank (0) and the color tiles (63-71); filtering ' '
|
|
42
|
+
* drops the undefined-code placeholders.
|
|
43
|
+
*/
|
|
44
|
+
export declare const DRAW_CHARS: string[];
|
|
45
|
+
/** Maps the active brush to the cell content it writes. */
|
|
46
|
+
export declare function brushToCell(brush: DrawBrush): Cell;
|
|
47
|
+
export declare function lineToCells(line: string): Cell[];
|
|
48
|
+
export declare function cellsToLine(cells: Cell[]): string;
|
|
49
|
+
export declare function isPositionalLine(line: string): boolean;
|
|
50
|
+
export declare function paintLine(line: string, paints: CellPaint[], cols: number): string;
|
|
51
|
+
/**
|
|
52
|
+
* Render a positional line for BoardDisplay's parser, which expects
|
|
53
|
+
* single-bracket color markers ({red}) after server-side rendering.
|
|
54
|
+
*/
|
|
55
|
+
export declare function renderPositionalLine(line: string): string;
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { BOARD_CHARS as e } from "../../../lib/board-characters.js";
|
|
2
|
+
import { BOARD_CODE_TO_COLOR as t, BOARD_COLOR_CODES as n } from "../constants.js";
|
|
3
|
+
//#region src/components/editor/utils/draw-mode.ts
|
|
4
|
+
var r = e.slice(1, 63).filter((e) => e !== " "), i = /^\{\{([a-z]+)\}\}$/;
|
|
5
|
+
function a(e) {
|
|
6
|
+
return e === "purple" ? "violet" : e;
|
|
7
|
+
}
|
|
8
|
+
function o(e) {
|
|
9
|
+
return `{{${a(e)}}}`;
|
|
10
|
+
}
|
|
11
|
+
function s(e) {
|
|
12
|
+
switch (e.kind) {
|
|
13
|
+
case "color": return o(e.color);
|
|
14
|
+
case "eraser": return " ";
|
|
15
|
+
case "char": {
|
|
16
|
+
let t = e.char.toUpperCase();
|
|
17
|
+
return t.length === 1 && r.includes(t) ? t : (console.warn(`[draw-mode] Invalid stamp character ${JSON.stringify(e.char)} — erasing instead.`), " ");
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
function c(e) {
|
|
22
|
+
let r = [], i = !1, a = e;
|
|
23
|
+
for (; a.length > 0;) {
|
|
24
|
+
let e = a.match(/^\{\{([^}]+)\}\}/);
|
|
25
|
+
if (e) {
|
|
26
|
+
let t = e[1].trim().toLowerCase();
|
|
27
|
+
Object.hasOwn(n, t) ? r.push(o(t)) : i = !0, a = a.slice(e[0].length);
|
|
28
|
+
continue;
|
|
29
|
+
}
|
|
30
|
+
let s = a.match(/^\{([a-z0-9]+)\}/i);
|
|
31
|
+
if (s) {
|
|
32
|
+
let e = s[1].toLowerCase(), i = Number(e);
|
|
33
|
+
if (Object.hasOwn(n, e)) {
|
|
34
|
+
r.push(o(e)), a = a.slice(s[0].length);
|
|
35
|
+
continue;
|
|
36
|
+
}
|
|
37
|
+
if (Number.isInteger(i) && i >= 63 && i <= 71) {
|
|
38
|
+
r.push(o(t[i])), a = a.slice(s[0].length);
|
|
39
|
+
continue;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
r.push(a[0]), a = a.slice(1);
|
|
43
|
+
}
|
|
44
|
+
return {
|
|
45
|
+
cells: r,
|
|
46
|
+
droppedDynamic: i
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
function l(e) {
|
|
50
|
+
return c(e).cells;
|
|
51
|
+
}
|
|
52
|
+
function u(e) {
|
|
53
|
+
let t = e.length;
|
|
54
|
+
for (; t > 0 && e[t - 1] === " ";) t--;
|
|
55
|
+
return e.slice(0, t).join("");
|
|
56
|
+
}
|
|
57
|
+
function d(e) {
|
|
58
|
+
return !c(e).droppedDynamic;
|
|
59
|
+
}
|
|
60
|
+
function f(e, t, n) {
|
|
61
|
+
let r = l(e);
|
|
62
|
+
r.length > n && (r.length = n);
|
|
63
|
+
let i = t.filter((e) => e.col >= 0 && e.col < n);
|
|
64
|
+
for (let e of i) {
|
|
65
|
+
for (; r.length <= e.col;) r.push(" ");
|
|
66
|
+
r[e.col] = e.cell;
|
|
67
|
+
}
|
|
68
|
+
return u(r);
|
|
69
|
+
}
|
|
70
|
+
function p(e) {
|
|
71
|
+
return l(e).map((e) => {
|
|
72
|
+
let t = e.match(i);
|
|
73
|
+
return t ? `{${t[1]}}` : e;
|
|
74
|
+
}).join("");
|
|
75
|
+
}
|
|
76
|
+
//#endregion
|
|
77
|
+
export { r as DRAW_CHARS, s as brushToCell, u as cellsToLine, d as isPositionalLine, l as lineToCells, f as paintLine, p as renderPositionalLine };
|
|
78
|
+
|
|
79
|
+
//# sourceMappingURL=draw-mode.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"draw-mode.js","names":[],"sources":["../../../../src/components/editor/utils/draw-mode.ts"],"mappings":";;;AA0CA,IAAa,IAAuB,EAAY,MAAM,GAAG,EAAE,CAAC,CAAC,QAAQ,MAAS,MAAS,GAAG,GAEpF,IAAgB;AAGtB,SAAS,EAAe,GAAwC;CAC9D,OAAO,MAAU,WAAW,WAAW;AACzC;AAEA,SAAS,EAAU,GAA8B;CAC/C,OAAO,KAAK,EAAe,CAAK,EAAE;AACpC;AAGA,SAAgB,EAAY,GAAwB;CAClD,QAAQ,EAAM,MAAd;EACE,KAAK,SACH,OAAO,EAAU,EAAM,KAAK;EAC9B,KAAK,UACH,OAAO;EACT,KAAK,QAAQ;GACX,IAAM,IAAO,EAAM,KAAK,YAAY;GAGpC,OAFI,EAAK,WAAW,KAAK,EAAW,SAAS,CAAI,IAAU,KAC3D,QAAQ,KAAK,uCAAuC,KAAK,UAAU,EAAM,IAAI,EAAE,oBAAoB,GAC5F;EACT;CACF;AACF;AAMA,SAAS,EAAa,GAA0D;CAC9E,IAAM,IAAgB,CAAC,GACnB,IAAiB,IACjB,IAAY;CAEhB,OAAO,EAAU,SAAS,IAAG;EAC3B,IAAM,IAAM,EAAU,MAAM,kBAAkB;EAC9C,IAAI,GAAK;GACP,IAAM,IAAU,EAAI,EAAE,CAAC,KAAK,CAAC,CAAC,YAAY;GAO1C,AANI,OAAO,OAAO,GAAmB,CAAO,IAC1C,EAAM,KAAK,EAAU,CAA0B,CAAC,IAGhD,IAAiB,IAEnB,IAAY,EAAU,MAAM,EAAI,EAAE,CAAC,MAAM;GACzC;EACF;EAEA,IAAM,IAAS,EAAU,MAAM,mBAAmB;EAClD,IAAI,GAAQ;GACV,IAAM,IAAQ,EAAO,EAAE,CAAC,YAAY,GAC9B,IAAU,OAAO,CAAK;GAC5B,IAAI,OAAO,OAAO,GAAmB,CAAK,GAAG;IAE3C,AADA,EAAM,KAAK,EAAU,CAAwB,CAAC,GAC9C,IAAY,EAAU,MAAM,EAAO,EAAE,CAAC,MAAM;IAC5C;GACF;GACA,IAAI,OAAO,UAAU,CAAO,KAAK,KAAW,MAAM,KAAW,IAAI;IAE/D,AADA,EAAM,KAAK,EAAU,EAAoB,EAAQ,CAAC,GAClD,IAAY,EAAU,MAAM,EAAO,EAAE,CAAC,MAAM;IAC5C;GACF;EAEF;EAGA,AADA,EAAM,KAAK,EAAU,EAAE,GACvB,IAAY,EAAU,MAAM,CAAC;CAC/B;CAEA,OAAO;EAAE;EAAO;CAAe;AACjC;AAEA,SAAgB,EAAY,GAAsB;CAChD,OAAO,EAAa,CAAI,CAAC,CAAC;AAC5B;AAEA,SAAgB,EAAY,GAAuB;CACjD,IAAI,IAAM,EAAM;CAChB,OAAO,IAAM,KAAK,EAAM,IAAM,OAAO,MAAK;CAC1C,OAAO,EAAM,MAAM,GAAG,CAAG,CAAC,CAAC,KAAK,EAAE;AACpC;AAEA,SAAgB,EAAiB,GAAuB;CACtD,OAAO,CAAC,EAAa,CAAI,CAAC,CAAC;AAC7B;AAEA,SAAgB,EAAU,GAAc,GAAqB,GAAsB;CACjF,IAAM,IAAQ,EAAY,CAAI;CAC9B,AAAI,EAAM,SAAS,MAAM,EAAM,SAAS;CAExC,IAAM,IAAc,EAAO,QAAQ,MAAM,EAAE,OAAO,KAAK,EAAE,MAAM,CAAI;CACnE,KAAK,IAAM,KAAS,GAAa;EAC/B,OAAO,EAAM,UAAU,EAAM,MAAK,EAAM,KAAK,GAAG;EAChD,EAAM,EAAM,OAAO,EAAM;CAC3B;CACA,OAAO,EAAY,CAAK;AAC1B;AAMA,SAAgB,EAAqB,GAAsB;CACzD,OAAO,EAAY,CAAI,CAAC,CACrB,KAAK,MAAS;EACb,IAAM,IAAI,EAAK,MAAM,CAAa;EAClC,OAAO,IAAI,IAAI,EAAE,GAAG,KAAK;CAC3B,CAAC,CAAC,CACD,KAAK,EAAE;AACZ"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Utility functions for inserting template content into TipTap editor
|
|
3
|
+
* at the current cursor position
|
|
4
|
+
*/
|
|
5
|
+
import type { Editor } from "@tiptap/react";
|
|
6
|
+
/**
|
|
7
|
+
* Insert template content at the current cursor position in the editor
|
|
8
|
+
* @param editor - The TipTap editor instance
|
|
9
|
+
* @param templateString - Template string to insert (e.g., "{{weather.temperature}}", "{red}", "{{fill_space}}")
|
|
10
|
+
*/
|
|
11
|
+
export declare function insertTemplateContent(editor: Editor, templateString: string): void;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { parseLineContent as e } from "./serialization.js";
|
|
2
|
+
//#region src/components/editor/utils/insertion.ts
|
|
3
|
+
function t(t, n) {
|
|
4
|
+
if (!t || !t.state) {
|
|
5
|
+
console.warn("Cannot insert content: editor is not available or not initialized");
|
|
6
|
+
return;
|
|
7
|
+
}
|
|
8
|
+
let r = e(n);
|
|
9
|
+
if (r.length === 0) return;
|
|
10
|
+
if (!t.state.selection) {
|
|
11
|
+
console.warn("Cannot insert content: editor selection is not available");
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
let { from: i } = t.state.selection;
|
|
15
|
+
t.chain().focus().insertContent(r).run();
|
|
16
|
+
let a = 0;
|
|
17
|
+
r.forEach(() => {
|
|
18
|
+
a += 1;
|
|
19
|
+
});
|
|
20
|
+
let o = i + a;
|
|
21
|
+
t.commands.setTextSelection(o);
|
|
22
|
+
}
|
|
23
|
+
//#endregion
|
|
24
|
+
export { t as insertTemplateContent };
|
|
25
|
+
|
|
26
|
+
//# sourceMappingURL=insertion.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"insertion.js","names":[],"sources":["../../../../src/components/editor/utils/insertion.ts"],"mappings":";;AAcA,SAAgB,EAAsB,GAAgB,GAA8B;CAClF,IAAI,CAAC,KAAU,CAAC,EAAO,OAAO;EAC5B,QAAQ,KAAK,mEAAmE;EAChF;CACF;CAGA,IAAM,IAAQ,EAAiB,CAAc;CAE7C,IAAI,EAAM,WAAW,GACnB;CAIF,IAAI,CAAC,EAAO,MAAM,WAAW;EAC3B,QAAQ,KAAK,0DAA0D;EACvE;CACF;CAEA,IAAM,EAAE,YAAS,EAAO,MAAM;CAG9B,EAAO,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,cAAc,CAAK,CAAC,CAAC,IAAI;CAIhD,IAAI,IAAe;CACnB,EAAM,cAAc;EAElB,KAAgB;CAClB,CAAC;CAGD,IAAM,IAAc,IAAO;CAC3B,EAAO,SAAS,iBAAiB,CAAW;AAC9C"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Character counting logic for FiestaBoard.
|
|
3
|
+
*
|
|
4
|
+
* Must match backend logic in src/templates/engine.py `_count_tiles()`. The
|
|
5
|
+
* per-node-type widths below are a parity contract with that function: if the
|
|
6
|
+
* editor and the renderer disagree about how many tiles a token occupies, the
|
|
7
|
+
* overflow warning lies. Change one, change both.
|
|
8
|
+
*/
|
|
9
|
+
import type { JSONContent } from "@tiptap/react";
|
|
10
|
+
/**
|
|
11
|
+
* Calculate the rendered length of a line in characters/tiles.
|
|
12
|
+
* Matches backend _count_tiles() logic.
|
|
13
|
+
*/
|
|
14
|
+
export declare function calculateLineLength(lineContent: JSONContent[]): number;
|
|
15
|
+
/**
|
|
16
|
+
* Check if a line will overflow the board width.
|
|
17
|
+
*
|
|
18
|
+
* PORTED FIX: the app read a module-level `BOARD_WIDTH` constant here, which
|
|
19
|
+
* hard-coded flagship's 22 columns. Editing a Note template (15 columns) — or
|
|
20
|
+
* any note_array — therefore reported "no overflow" for lines that overflow on
|
|
21
|
+
* the real hardware. `boardWidth` is now a required parameter so the caller's
|
|
22
|
+
* device always decides. Resolve it with `resolveDimensions(deviceType).cols`
|
|
23
|
+
* (see ../constants); reach for DEFAULT_BOARD_WIDTH only when no device is
|
|
24
|
+
* known at all.
|
|
25
|
+
*
|
|
26
|
+
* @param lineContent Inline nodes of a single line.
|
|
27
|
+
* @param boardWidth Columns available on the target device.
|
|
28
|
+
*/
|
|
29
|
+
export declare function willOverflow(lineContent: JSONContent[], boardWidth: number): boolean;
|
|
30
|
+
/**
|
|
31
|
+
* Get overflow amount (0 if no overflow).
|
|
32
|
+
*
|
|
33
|
+
* @param lineContent Inline nodes of a single line.
|
|
34
|
+
* @param boardWidth Columns available on the target device.
|
|
35
|
+
*/
|
|
36
|
+
export declare function getOverflowAmount(lineContent: JSONContent[], boardWidth: number): number;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import "../constants.js";
|
|
2
|
+
//#region src/components/editor/utils/length-calculator.ts
|
|
3
|
+
function e(e) {
|
|
4
|
+
if (!e || e.length === 0) return 0;
|
|
5
|
+
let t = 0;
|
|
6
|
+
for (let n of e) switch (n.type) {
|
|
7
|
+
case "text":
|
|
8
|
+
t += (n.text || "").replaceAll("", "").length;
|
|
9
|
+
break;
|
|
10
|
+
case "variable":
|
|
11
|
+
t += n.attrs?.maxLength || 10;
|
|
12
|
+
break;
|
|
13
|
+
case "colorTile":
|
|
14
|
+
t += 1;
|
|
15
|
+
break;
|
|
16
|
+
case "fillSpace":
|
|
17
|
+
t += 0;
|
|
18
|
+
break;
|
|
19
|
+
case "formula": t += n.attrs?.estimatedLength ?? 10;
|
|
20
|
+
}
|
|
21
|
+
return t;
|
|
22
|
+
}
|
|
23
|
+
function t(t, n) {
|
|
24
|
+
return e(t) > n;
|
|
25
|
+
}
|
|
26
|
+
function n(t, n) {
|
|
27
|
+
return Math.max(0, e(t) - n);
|
|
28
|
+
}
|
|
29
|
+
//#endregion
|
|
30
|
+
export { e as calculateLineLength, n as getOverflowAmount, t as willOverflow };
|
|
31
|
+
|
|
32
|
+
//# sourceMappingURL=length-calculator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"length-calculator.js","names":[],"sources":["../../../../src/components/editor/utils/length-calculator.ts"],"mappings":";;AAiBA,SAAgB,EAAoB,GAAoC;CACtE,IAAI,CAAC,KAAe,EAAY,WAAW,GACzC,OAAO;CAGT,IAAI,IAAY;CAEhB,KAAK,IAAM,KAAQ,GACjB,QAAQ,EAAK,MAAb;EACE,KAAK;GAEH,MAAc,EAAK,QAAQ,GAAA,CAAI,WAAA,KAA0B,EAAE,CAAC,CAAC;GAC7D;EAEF,KAAK;GAEH,KAAa,EAAK,OAAO,aAAa;GACtC;EAEF,KAAK;GAEH,KAAa;GACb;EAEF,KAAK;GAEH,KAAa;GACb;EAEF,KAAK,WAEH,KAAa,EAAK,OAAO,mBAAmB;CAKhD;CAGF,OAAO;AACT;AAgBA,SAAgB,EAAa,GAA4B,GAA6B;CACpF,OAAO,EAAoB,CAAW,IAAI;AAC5C;AAQA,SAAgB,EAAkB,GAA4B,GAA4B;CACxF,OAAO,KAAK,IAAI,GAAG,EAAoB,CAAW,IAAI,CAAU;AAClE"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Template string ↔ TipTap document serialization
|
|
3
|
+
* Handles parsing and serializing template syntax while maintaining compatibility
|
|
4
|
+
*/
|
|
5
|
+
import type { JSONContent } from "@tiptap/react";
|
|
6
|
+
/**
|
|
7
|
+
* Simplified parser - treats template as single block with line breaks.
|
|
8
|
+
* @param maxLines Number of lines for this device (6 for Flagship, 3 for Note).
|
|
9
|
+
* Used only for padding (ensures at least maxLines lines).
|
|
10
|
+
*/
|
|
11
|
+
export declare function parseTemplateSimple(template: string, maxLines?: number): JSONContent;
|
|
12
|
+
/**
|
|
13
|
+
* Simplified serializer - converts back to plain text with \n.
|
|
14
|
+
* @param maxLines Number of lines for this device (6 for Flagship, 3 for Note).
|
|
15
|
+
*/
|
|
16
|
+
export declare function serializeTemplateSimple(doc: JSONContent, maxLines?: number): string;
|
|
17
|
+
/**
|
|
18
|
+
* A parsed variable filter, e.g. `|pad:3` → `{ name: "pad", arg: "3" }`.
|
|
19
|
+
*
|
|
20
|
+
* `arg` (singular string) is the contract: it is what {@link parseVariable}
|
|
21
|
+
* produces, what the filter picker produces, and what VariableNode declares as
|
|
22
|
+
* its `filters` attribute. `args` is tolerated on read only — see below.
|
|
23
|
+
*/
|
|
24
|
+
export interface TemplateFilter {
|
|
25
|
+
name: string;
|
|
26
|
+
arg?: string;
|
|
27
|
+
/** @deprecated Legacy plural form; accepted on read, never written. */
|
|
28
|
+
args?: string[];
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Parse line content into TipTap nodes
|
|
32
|
+
* Exported for use in insertion utilities
|
|
33
|
+
*/
|
|
34
|
+
export declare function parseLineContent(text: string): JSONContent[];
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
import { BOARD_COLOR_CODES as e, DEFAULT_BOARD_LINES as t, FILL_SPACE_REPEAT_VAR as n, FILL_SPACE_VAR as r } from "../constants.js";
|
|
2
|
+
//#region src/components/editor/utils/serialization.ts
|
|
3
|
+
var i = "";
|
|
4
|
+
function a(e, n = t) {
|
|
5
|
+
let r = e.split("\n"), a = [];
|
|
6
|
+
r.forEach((e, t) => {
|
|
7
|
+
if (a.push({
|
|
8
|
+
type: "text",
|
|
9
|
+
text: i
|
|
10
|
+
}), e) {
|
|
11
|
+
let t = u(e);
|
|
12
|
+
a.push(...t);
|
|
13
|
+
}
|
|
14
|
+
a.push({
|
|
15
|
+
type: "text",
|
|
16
|
+
text: i
|
|
17
|
+
}), t < r.length - 1 && a.push({ type: "hardBreak" });
|
|
18
|
+
});
|
|
19
|
+
let o = r.length;
|
|
20
|
+
for (let e = o; e < n; e++) a.length > 0 && a[a.length - 1].type !== "hardBreak" && a.push({ type: "hardBreak" }), a.push({
|
|
21
|
+
type: "text",
|
|
22
|
+
text: i
|
|
23
|
+
}), a.push({
|
|
24
|
+
type: "text",
|
|
25
|
+
text: i
|
|
26
|
+
}), e < n - 1 && a.push({ type: "hardBreak" });
|
|
27
|
+
return {
|
|
28
|
+
type: "doc",
|
|
29
|
+
content: [{
|
|
30
|
+
type: "paragraph",
|
|
31
|
+
content: a.length > 0 ? a : void 0
|
|
32
|
+
}]
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
function o(e, n = t) {
|
|
36
|
+
let r = Array.from({ length: n }, () => "").join("\n");
|
|
37
|
+
if (!e.content || e.content.length === 0) return r;
|
|
38
|
+
let i = [], a = "", o = e.content[0];
|
|
39
|
+
if (!o || !o.content) return r;
|
|
40
|
+
for (let e of o.content) e.type === "hardBreak" ? (i.push(a), a = "") : a += s(e);
|
|
41
|
+
for (i.push(a); i.length < n;) i.push("");
|
|
42
|
+
return i.join("\n");
|
|
43
|
+
}
|
|
44
|
+
function s(e) {
|
|
45
|
+
switch (e.type) {
|
|
46
|
+
case "text": return (e.text || "").replaceAll(i, "").toUpperCase();
|
|
47
|
+
case "variable": {
|
|
48
|
+
let t = (e.attrs?.filters || []).map((e) => `|${e.name}${c(e)}`).join("");
|
|
49
|
+
return `{{${e.attrs?.pluginId}.${e.attrs?.field}${t}}}`;
|
|
50
|
+
}
|
|
51
|
+
case "colorTile": return `{{${e.attrs?.color}}}`;
|
|
52
|
+
case "fillSpace": {
|
|
53
|
+
let t = e.attrs?.repeatChar;
|
|
54
|
+
return t && t !== " " ? `{{${n}:${t}}}` : `{{${r}}}`;
|
|
55
|
+
}
|
|
56
|
+
case "wrappedText": return `{{${e.attrs?.text}|wrap}}`;
|
|
57
|
+
case "formula": return `{{= ${e.attrs?.expression} }}`;
|
|
58
|
+
default: return "";
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
function c(e) {
|
|
62
|
+
return e.arg !== void 0 && e.arg !== "" ? `:${e.arg}` : e.args && e.args.length > 0 ? `:${e.args.join(",")}` : "";
|
|
63
|
+
}
|
|
64
|
+
var l = /* @__PURE__ */ new Set([
|
|
65
|
+
"variable",
|
|
66
|
+
"colorTile",
|
|
67
|
+
"fillSpace",
|
|
68
|
+
"formula"
|
|
69
|
+
]);
|
|
70
|
+
function u(t) {
|
|
71
|
+
let n = [], r = t;
|
|
72
|
+
for (; r.length > 0;) {
|
|
73
|
+
let t = r.match(/^\{\{([^}]+)\}\}/);
|
|
74
|
+
if (t) {
|
|
75
|
+
let i = t[1], a = t[0], o = i.toLowerCase();
|
|
76
|
+
if (Object.hasOwn(e, o)) n.push({
|
|
77
|
+
type: "colorTile",
|
|
78
|
+
attrs: {
|
|
79
|
+
color: o,
|
|
80
|
+
code: e[o]
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
else if (i.toLowerCase() === "fill_space") n.push({
|
|
84
|
+
type: "fillSpace",
|
|
85
|
+
attrs: { id: d() }
|
|
86
|
+
});
|
|
87
|
+
else if (i.toLowerCase().startsWith("fill_space_repeat")) {
|
|
88
|
+
let e = " ";
|
|
89
|
+
if (i.includes(":")) {
|
|
90
|
+
let t = i.split(":");
|
|
91
|
+
t.length > 1 && t[1] && (e = t[1]);
|
|
92
|
+
}
|
|
93
|
+
n.push({
|
|
94
|
+
type: "fillSpace",
|
|
95
|
+
attrs: {
|
|
96
|
+
id: d(),
|
|
97
|
+
repeatChar: e
|
|
98
|
+
}
|
|
99
|
+
});
|
|
100
|
+
} else if (i.trimStart().startsWith("=")) {
|
|
101
|
+
let e = i.trimStart().slice(1).trim();
|
|
102
|
+
n.push({
|
|
103
|
+
type: "formula",
|
|
104
|
+
attrs: { expression: e }
|
|
105
|
+
});
|
|
106
|
+
} else {
|
|
107
|
+
let { varPath: e, filters: t } = f(i), r = e.indexOf("."), a = r === -1 ? e : e.slice(0, r), o = r === -1 ? "" : e.slice(r + 1);
|
|
108
|
+
n.push({
|
|
109
|
+
type: "variable",
|
|
110
|
+
attrs: {
|
|
111
|
+
pluginId: a || "",
|
|
112
|
+
field: o || "",
|
|
113
|
+
filters: t
|
|
114
|
+
}
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
r = r.slice(a.length);
|
|
118
|
+
continue;
|
|
119
|
+
}
|
|
120
|
+
let i = r.match(/^\{([a-z]+)\}/i);
|
|
121
|
+
if (i) {
|
|
122
|
+
let t = i[1].toLowerCase();
|
|
123
|
+
if (Object.hasOwn(e, t)) {
|
|
124
|
+
n.push({
|
|
125
|
+
type: "colorTile",
|
|
126
|
+
attrs: {
|
|
127
|
+
color: t,
|
|
128
|
+
code: e[t]
|
|
129
|
+
}
|
|
130
|
+
}), r = r.slice(i[0].length);
|
|
131
|
+
continue;
|
|
132
|
+
}
|
|
133
|
+
n.push({
|
|
134
|
+
type: "text",
|
|
135
|
+
text: i[0]
|
|
136
|
+
}), r = r.slice(i[0].length);
|
|
137
|
+
continue;
|
|
138
|
+
}
|
|
139
|
+
let a = r.search(/\{\{|\{[a-z]+\}/i);
|
|
140
|
+
if (a === -1) {
|
|
141
|
+
r && n.push({
|
|
142
|
+
type: "text",
|
|
143
|
+
text: r
|
|
144
|
+
});
|
|
145
|
+
break;
|
|
146
|
+
}
|
|
147
|
+
a > 0 ? (n.push({
|
|
148
|
+
type: "text",
|
|
149
|
+
text: r.slice(0, a)
|
|
150
|
+
}), r = r.slice(a)) : (n.push({
|
|
151
|
+
type: "text",
|
|
152
|
+
text: r[0]
|
|
153
|
+
}), r = r.slice(1));
|
|
154
|
+
}
|
|
155
|
+
let a = [];
|
|
156
|
+
for (let e of n) l.has(e.type) ? (a.push({
|
|
157
|
+
type: "text",
|
|
158
|
+
text: i
|
|
159
|
+
}), a.push(e), a.push({
|
|
160
|
+
type: "text",
|
|
161
|
+
text: i
|
|
162
|
+
})) : a.push(e);
|
|
163
|
+
return a;
|
|
164
|
+
}
|
|
165
|
+
function d() {
|
|
166
|
+
return Math.random().toString(36).slice(2, 11);
|
|
167
|
+
}
|
|
168
|
+
function f(e) {
|
|
169
|
+
let t = e.split("|");
|
|
170
|
+
return {
|
|
171
|
+
varPath: t[0].trim(),
|
|
172
|
+
filters: t.slice(1).map((e) => {
|
|
173
|
+
let t = e.indexOf(":");
|
|
174
|
+
return t === -1 ? { name: e.trim() } : {
|
|
175
|
+
name: e.slice(0, t).trim(),
|
|
176
|
+
arg: e.slice(t + 1).trim()
|
|
177
|
+
};
|
|
178
|
+
})
|
|
179
|
+
};
|
|
180
|
+
}
|
|
181
|
+
//#endregion
|
|
182
|
+
export { u as parseLineContent, a as parseTemplateSimple, o as serializeTemplateSimple };
|
|
183
|
+
|
|
184
|
+
//# sourceMappingURL=serialization.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serialization.js","names":[],"sources":["../../../../src/components/editor/utils/serialization.ts"],"mappings":"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"}
|