@oh-just-another/react-ui 0.58.0 → 0.60.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.
Files changed (71) hide show
  1. package/CHANGELOG.md +177 -0
  2. package/README.md +7 -4
  3. package/dist/.tsbuildinfo +1 -1
  4. package/dist/color-swatch-picker.d.ts +8 -1
  5. package/dist/color-swatch-picker.d.ts.map +1 -1
  6. package/dist/color-swatch-picker.js +7 -3
  7. package/dist/color-swatch-picker.js.map +1 -1
  8. package/dist/constants.d.ts +43 -0
  9. package/dist/constants.d.ts.map +1 -1
  10. package/dist/constants.js +43 -0
  11. package/dist/constants.js.map +1 -1
  12. package/dist/context-menu.d.ts.map +1 -1
  13. package/dist/context-menu.js +8 -4
  14. package/dist/context-menu.js.map +1 -1
  15. package/dist/context.d.ts +1 -1
  16. package/dist/context.js +1 -1
  17. package/dist/diagram-canvas.d.ts +4 -2
  18. package/dist/diagram-canvas.d.ts.map +1 -1
  19. package/dist/diagram-canvas.js +1 -1
  20. package/dist/diagram-canvas.js.map +1 -1
  21. package/dist/diagram-root.d.ts +8 -2
  22. package/dist/diagram-root.d.ts.map +1 -1
  23. package/dist/diagram-root.js +11 -2
  24. package/dist/diagram-root.js.map +1 -1
  25. package/dist/drawing-panel.d.ts +14 -0
  26. package/dist/drawing-panel.d.ts.map +1 -0
  27. package/dist/drawing-panel.js +54 -0
  28. package/dist/drawing-panel.js.map +1 -0
  29. package/dist/help-dialog.d.ts.map +1 -1
  30. package/dist/help-dialog.js +11 -4
  31. package/dist/help-dialog.js.map +1 -1
  32. package/dist/hooks.d.ts +19 -3
  33. package/dist/hooks.d.ts.map +1 -1
  34. package/dist/hooks.js +21 -3
  35. package/dist/hooks.js.map +1 -1
  36. package/dist/index.d.ts +7 -2
  37. package/dist/index.d.ts.map +1 -1
  38. package/dist/index.js +7 -2
  39. package/dist/index.js.map +1 -1
  40. package/dist/link-caption-editor.d.ts +3 -3
  41. package/dist/link-caption-editor.d.ts.map +1 -1
  42. package/dist/link-caption-editor.js +8 -5
  43. package/dist/link-caption-editor.js.map +1 -1
  44. package/dist/minimap.d.ts +25 -0
  45. package/dist/minimap.d.ts.map +1 -0
  46. package/dist/minimap.js +196 -0
  47. package/dist/minimap.js.map +1 -0
  48. package/dist/property-panel.d.ts.map +1 -1
  49. package/dist/property-panel.js +166 -26
  50. package/dist/property-panel.js.map +1 -1
  51. package/dist/search-overlay.d.ts +18 -0
  52. package/dist/search-overlay.d.ts.map +1 -0
  53. package/dist/search-overlay.js +162 -0
  54. package/dist/search-overlay.js.map +1 -0
  55. package/dist/selection-floating-panel.d.ts.map +1 -1
  56. package/dist/selection-floating-panel.js +5 -2
  57. package/dist/selection-floating-panel.js.map +1 -1
  58. package/dist/stats-panel.d.ts +14 -0
  59. package/dist/stats-panel.d.ts.map +1 -0
  60. package/dist/stats-panel.js +104 -0
  61. package/dist/stats-panel.js.map +1 -0
  62. package/dist/toolbar.d.ts +2 -2
  63. package/dist/toolbar.d.ts.map +1 -1
  64. package/dist/toolbar.js +26 -12
  65. package/dist/toolbar.js.map +1 -1
  66. package/dist/zen-mode.d.ts +30 -0
  67. package/dist/zen-mode.d.ts.map +1 -0
  68. package/dist/zen-mode.js +62 -0
  69. package/dist/zen-mode.js.map +1 -0
  70. package/package.json +8 -8
  71. package/src/styles.css +4 -1
@@ -0,0 +1,162 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useEffect, useMemo, useRef, useState, } from "react";
3
+ import { defaultActionRegistry, searchScene } from "@oh-just-another/state";
4
+ import { useDiagramOptional, useScene } from "./hooks.js";
5
+ import { SEARCH_ZOOM_PADDING_PX } from "./constants.js";
6
+ /**
7
+ * Text-search overlay (`⌘F`). A slim floating bar over the canvas: type a
8
+ * substring and it finds every text shape / frame name / edge label that
9
+ * contains it, selecting and framing the current match. `Enter` /
10
+ * `↓` / `⇧Enter` / `↑` walk the results (wrap-around); `Esc` closes.
11
+ *
12
+ * Self-contained like the command palette: manages its own open state and
13
+ * registers the `open-search` action so `⌘F` routes through the shared
14
+ * registry and shows in the help dialog. Mount once per host. Read-only
15
+ * safe (`viewMode`) — search never mutates the scene.
16
+ *
17
+ * The match index lives in `@oh-just-another/state` (`searchScene`), a pure
18
+ * function unit-tested on its own; this component only drives the UI and
19
+ * the select/zoom navigation.
20
+ */
21
+ export const SearchOverlay = () => {
22
+ const editor = useDiagramOptional();
23
+ const scene = useScene();
24
+ const [open, setOpen] = useState(false);
25
+ const [query, setQuery] = useState("");
26
+ const [active, setActive] = useState(0);
27
+ const inputRef = useRef(null);
28
+ useEffect(() => {
29
+ defaultActionRegistry.replace({
30
+ id: "open-search",
31
+ label: "Find text",
32
+ category: "other",
33
+ viewMode: true,
34
+ hotkey: { key: "f", meta: true },
35
+ perform: () => {
36
+ setOpen(true);
37
+ },
38
+ });
39
+ return () => {
40
+ defaultActionRegistry.unregister("open-search");
41
+ };
42
+ }, []);
43
+ const matches = useMemo(() => (query.trim() ? searchScene(scene, query) : []), [scene, query]);
44
+ // Focus (select + frame) the active match. Keyed on `active` / `query`
45
+ // only — NOT on `matches` — so the viewport change it causes (which mints
46
+ // a new scene → new `matches` array) can't loop the effect. Latest matches
47
+ // are read through a ref.
48
+ const matchesRef = useRef(matches);
49
+ matchesRef.current = matches;
50
+ useEffect(() => {
51
+ if (!open || !editor)
52
+ return;
53
+ const match = matchesRef.current[active];
54
+ if (!match)
55
+ return;
56
+ if (match.kind === "element") {
57
+ editor.setSelection([match.id]);
58
+ }
59
+ else {
60
+ editor.selectLink(match.id);
61
+ }
62
+ // Reveal (center) the match without filling the screen — a small hit stays
63
+ // small and just gets centered; zoom only drops to fit an oversized match.
64
+ editor.revealSelection(SEARCH_ZOOM_PADDING_PX);
65
+ }, [open, active, query, editor]);
66
+ // Reset transient state and focus the field whenever the bar opens.
67
+ useEffect(() => {
68
+ if (!open)
69
+ return;
70
+ setQuery("");
71
+ setActive(0);
72
+ const id = requestAnimationFrame(() => inputRef.current?.focus());
73
+ return () => {
74
+ cancelAnimationFrame(id);
75
+ };
76
+ }, [open]);
77
+ if (!open)
78
+ return null;
79
+ const close = () => {
80
+ // Reset the query/active index on close so reopening starts empty. Without
81
+ // this the retained non-empty query makes the reveal effect jump straight
82
+ // to the previous match on open — before the user types anything.
83
+ setQuery("");
84
+ setActive(0);
85
+ setOpen(false);
86
+ };
87
+ const step = (delta) => {
88
+ if (matches.length === 0)
89
+ return;
90
+ setActive((i) => (i + delta + matches.length) % matches.length);
91
+ };
92
+ const onInputKey = (ev) => {
93
+ if (ev.key === "Escape") {
94
+ ev.preventDefault();
95
+ ev.stopPropagation();
96
+ close();
97
+ }
98
+ else if (ev.key === "Enter") {
99
+ ev.preventDefault();
100
+ step(ev.shiftKey ? -1 : 1);
101
+ }
102
+ else if (ev.key === "ArrowDown") {
103
+ ev.preventDefault();
104
+ step(1);
105
+ }
106
+ else if (ev.key === "ArrowUp") {
107
+ ev.preventDefault();
108
+ step(-1);
109
+ }
110
+ };
111
+ const counter = matches.length === 0
112
+ ? query.trim()
113
+ ? "No results"
114
+ : ""
115
+ : `${String(active + 1)} of ${String(matches.length)}`;
116
+ return (_jsxs("div", { style: BAR_STYLE, role: "search", children: [_jsx("input", { ref: inputRef, value: query, onChange: (e) => {
117
+ setQuery(e.target.value);
118
+ setActive(0);
119
+ }, onKeyDown: onInputKey, placeholder: "Find in diagram\u2026", "aria-label": "Find text in diagram", style: INPUT_STYLE }), _jsx("span", { style: COUNTER_STYLE, "aria-live": "polite", children: counter }), _jsx("button", { type: "button", className: "du-icon-button", "aria-label": "Previous match", title: "Previous (\u21E7\u23CE)", disabled: matches.length === 0, onClick: () => {
120
+ step(-1);
121
+ }, style: NAV_BUTTON_STYLE, children: "\u2191" }), _jsx("button", { type: "button", className: "du-icon-button", "aria-label": "Next match", title: "Next (\u23CE)", disabled: matches.length === 0, onClick: () => {
122
+ step(1);
123
+ }, style: NAV_BUTTON_STYLE, children: "\u2193" }), _jsx("button", { type: "button", className: "du-icon-button", "aria-label": "Close search", title: "Close (Esc)", onClick: close, style: NAV_BUTTON_STYLE, children: "\u2715" })] }));
124
+ };
125
+ const BAR_STYLE = {
126
+ position: "absolute",
127
+ top: 64,
128
+ left: "50%",
129
+ transform: "translateX(-50%)",
130
+ display: "flex",
131
+ alignItems: "center",
132
+ gap: 6,
133
+ padding: "6px 8px",
134
+ borderRadius: 10,
135
+ background: "var(--du-ui-bg-solid)",
136
+ border: "1px solid var(--du-ui-border)",
137
+ boxShadow: "0 6px 24px rgba(0,0,0,0.18)",
138
+ color: "var(--du-text)",
139
+ zIndex: 80,
140
+ pointerEvents: "auto",
141
+ };
142
+ const INPUT_STYLE = {
143
+ border: "none",
144
+ outline: "none",
145
+ padding: "4px 8px",
146
+ fontSize: 14,
147
+ minWidth: 180,
148
+ background: "transparent",
149
+ color: "inherit",
150
+ };
151
+ const COUNTER_STYLE = {
152
+ fontSize: 12,
153
+ color: "var(--du-text-muted)",
154
+ minWidth: 56,
155
+ textAlign: "right",
156
+ whiteSpace: "nowrap",
157
+ };
158
+ const NAV_BUTTON_STYLE = {
159
+ minWidth: 28,
160
+ height: 28,
161
+ };
162
+ //# sourceMappingURL=search-overlay.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search-overlay.js","sourceRoot":"","sources":["../src/search-overlay.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"selection-floating-panel.d.ts","sourceRoot":"","sources":["../src/selection-floating-panel.tsx"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,SAAS,EAEf,MAAM,kBAAkB,CAAC;AAU1B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAYrD;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,2BAA2B;IAC1C;;;OAGG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB;;;OAGG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC;IAC/B;;;;;;;OAOG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE;QACnB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;KACxB,CAAC;CACH;AAED,eAAO,MAAM,sBAAsB,GAAI,yCAIpC,2BAAgC,uCAqJlC,CAAC;AA0CF,QAAA,MAAM,yBAAyB,GAC7B,QAAQ,MAAM,KACb;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,IAiD5D,CAAC;AAkBF,OAAO,EAAE,yBAAyB,IAAI,oCAAoC,EAAE,CAAC"}
1
+ {"version":3,"file":"selection-floating-panel.d.ts","sourceRoot":"","sources":["../src/selection-floating-panel.tsx"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,SAAS,EAEf,MAAM,kBAAkB,CAAC;AAU1B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAYrD;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,2BAA2B;IAC1C;;;OAGG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB;;;OAGG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC;IAC/B;;;;;;;OAOG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE;QACnB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;KACxB,CAAC;CACH;AAED,eAAO,MAAM,sBAAsB,GAAI,yCAIpC,2BAAgC,uCAwJlC,CAAC;AA0CF,QAAA,MAAM,yBAAyB,GAC7B,QAAQ,MAAM,KACb;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,IAiD5D,CAAC;AAkBF,OAAO,EAAE,yBAAyB,IAAI,oCAAoC,EAAE,CAAC"}
@@ -5,7 +5,7 @@ import { createPortal } from "react-dom";
5
5
  import { getDescendantsOf, getElementWorldBounds, isGroup, } from "@oh-just-another/scene";
6
6
  import { computeLinkWorldBounds } from "@oh-just-another/renderer-core";
7
7
  import { SELECTION_PANEL_OFFSET_PX, SELECTION_PANEL_EDGE_INSET_TOP_PX, SELECTION_PANEL_EDGE_INSET_RIGHT_PX, SELECTION_PANEL_EDGE_INSET_BOTTOM_PX, SELECTION_PANEL_EDGE_INSET_LEFT_PX, } from "./constants.js";
8
- import { useDiagramOptional, useMobileLayout } from "./hooks.js";
8
+ import { useDiagramOptional, useMobileLayout, useReadOnly } from "./hooks.js";
9
9
  import { usePortalContainer } from "./portal-container.js";
10
10
  import { PropertyPanel } from "./property-panel.js";
11
11
  export const SelectionFloatingPanel = ({ offset: gap = SELECTION_PANEL_OFFSET_PX, placement = "top", edgeInset, } = {}) => {
@@ -16,6 +16,7 @@ export const SelectionFloatingPanel = ({ offset: gap = SELECTION_PANEL_OFFSET_PX
16
16
  left: edgeInset?.left ?? SELECTION_PANEL_EDGE_INSET_LEFT_PX,
17
17
  };
18
18
  const editor = useDiagramOptional();
19
+ const readOnly = useReadOnly();
19
20
  const portalContainer = usePortalContainer();
20
21
  // On touch / narrow screens the panel docks to the bottom instead of
21
22
  // floating at the selection bbox — no floating-ui math.
@@ -115,7 +116,9 @@ export const SelectionFloatingPanel = ({ offset: gap = SELECTION_PANEL_OFFSET_PX
115
116
  edgePadding.bottom,
116
117
  edgePadding.left,
117
118
  ]);
118
- if (!editor || !hasSelection)
119
+ // Its only content is <PropertyPanel>, which is empty in read-only — hide
120
+ // the whole floating chrome so no stray toolbar shell appears in view mode.
121
+ if (!editor || !hasSelection || readOnly)
119
122
  return null;
120
123
  // Mobile: dock the panel to the bottom edge (above the bottom bar +
121
124
  // safe-area), full width. The PropertyPanel's own mobile variant shows
@@ -1 +1 @@
1
- {"version":3,"file":"selection-floating-panel.js","sourceRoot":"","sources":["../src/selection-floating-panel.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"selection-floating-panel.js","sourceRoot":"","sources":["../src/selection-floating-panel.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import { type ReactElement } from "react";
2
+ /**
3
+ * Read-only stats / dimensions overlay (`⌥/`). A small corner card showing
4
+ * the current selection's bounds (x / y / w / h and, for a single element,
5
+ * its rotation) plus scene totals (elements, edges, selected). Aggregates a
6
+ * multi-selection into one bounding box + count.
7
+ *
8
+ * Self-contained: manages its own visibility and registers the
9
+ * `toggle-stats` action so `⌥/` routes through the shared registry and
10
+ * shows in the help dialog. `viewMode` keeps it available in read-only.
11
+ * Purely observational — never mutates the scene.
12
+ */
13
+ export declare const StatsPanel: () => ReactElement | null;
14
+ //# sourceMappingURL=stats-panel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stats-panel.d.ts","sourceRoot":"","sources":["../src/stats-panel.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA2C,KAAK,YAAY,EAAkB,MAAM,OAAO,CAAC;AAInG;;;;;;;;;;GAUG;AACH,eAAO,MAAM,UAAU,QAAO,YAAY,GAAG,IAoE5C,CAAC"}
@@ -0,0 +1,104 @@
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useEffect, useState } from "react";
3
+ import { defaultActionRegistry } from "@oh-just-another/state";
4
+ import { useDiagramOptional } from "./hooks.js";
5
+ /**
6
+ * Read-only stats / dimensions overlay (`⌥/`). A small corner card showing
7
+ * the current selection's bounds (x / y / w / h and, for a single element,
8
+ * its rotation) plus scene totals (elements, edges, selected). Aggregates a
9
+ * multi-selection into one bounding box + count.
10
+ *
11
+ * Self-contained: manages its own visibility and registers the
12
+ * `toggle-stats` action so `⌥/` routes through the shared registry and
13
+ * shows in the help dialog. `viewMode` keeps it available in read-only.
14
+ * Purely observational — never mutates the scene.
15
+ */
16
+ export const StatsPanel = () => {
17
+ const editor = useDiagramOptional();
18
+ const [visible, setVisible] = useState(false);
19
+ // Re-render on any editor change (selection / link-selection / scene /
20
+ // viewport) so the read-out stays live regardless of which notify fired.
21
+ const [, force] = useState(0);
22
+ useEffect(() => {
23
+ defaultActionRegistry.replace({
24
+ id: "toggle-stats",
25
+ label: "Stats panel",
26
+ category: "other",
27
+ viewMode: true,
28
+ hotkey: { key: "/", alt: true },
29
+ perform: () => {
30
+ setVisible((v) => !v);
31
+ },
32
+ });
33
+ return () => {
34
+ defaultActionRegistry.unregister("toggle-stats");
35
+ };
36
+ }, []);
37
+ useEffect(() => {
38
+ if (!editor || !visible)
39
+ return undefined;
40
+ return editor.subscribe(() => {
41
+ force((n) => n + 1);
42
+ });
43
+ }, [editor, visible]);
44
+ if (!visible || !editor)
45
+ return null;
46
+ const bounds = editor.combinedSelectionBounds();
47
+ const selectedElements = editor.selection.size;
48
+ const selectedLinks = editor.selectedLinks.size;
49
+ const selectedTotal = selectedElements + selectedLinks;
50
+ const scene = editor.scene;
51
+ // Rotation is only meaningful for a single element (a multi-selection's
52
+ // AABB has no single angle).
53
+ let angleDeg = null;
54
+ if (selectedElements === 1 && selectedLinks === 0) {
55
+ const soleId = [...editor.selection][0];
56
+ const element = soleId ? scene.elements.get(soleId) : undefined;
57
+ if (element)
58
+ angleDeg = (element.rotation * 180) / Math.PI;
59
+ }
60
+ return (_jsxs("div", { style: PANEL_STYLE, role: "status", "aria-label": "Selection stats", "aria-live": "polite", children: [_jsx("div", { style: SECTION_TITLE_STYLE, children: "Selection" }), bounds ? (_jsxs(_Fragment, { children: [_jsx(Row, { label: "X", value: round(bounds.x) }), _jsx(Row, { label: "Y", value: round(bounds.y) }), _jsx(Row, { label: "W", value: round(bounds.width) }), _jsx(Row, { label: "H", value: round(bounds.height) }), angleDeg !== null ? _jsx(Row, { label: "\u2220", value: `${String(round(angleDeg))}°` }) : null, selectedTotal > 1 ? _jsx(Row, { label: "Count", value: String(selectedTotal) }) : null] })) : (_jsx("div", { style: EMPTY_STYLE, children: "Nothing selected" })), _jsx("div", { style: { ...SECTION_TITLE_STYLE, marginTop: 8 }, children: "Scene" }), _jsx(Row, { label: "Elements", value: String(scene.elements.size) }), _jsx(Row, { label: "Edges", value: String(scene.links.size) }), _jsx(Row, { label: "Selected", value: String(selectedTotal) })] }));
61
+ };
62
+ /** Round to at most one decimal, dropping a trailing `.0`. */
63
+ const round = (n) => Math.round(n * 10) / 10;
64
+ const Row = ({ label, value, }) => (_jsxs("div", { style: ROW_STYLE, children: [_jsx("span", { style: ROW_LABEL_STYLE, children: label }), _jsx("span", { style: ROW_VALUE_STYLE, children: value })] }));
65
+ const PANEL_STYLE = {
66
+ position: "absolute",
67
+ top: 64,
68
+ right: 12,
69
+ minWidth: 148,
70
+ padding: "8px 10px",
71
+ borderRadius: 10,
72
+ background: "var(--du-ui-bg-solid)",
73
+ border: "1px solid var(--du-ui-border)",
74
+ boxShadow: "0 6px 24px rgba(0,0,0,0.18)",
75
+ color: "var(--du-text)",
76
+ fontSize: 12,
77
+ zIndex: 80,
78
+ pointerEvents: "auto",
79
+ };
80
+ const SECTION_TITLE_STYLE = {
81
+ fontSize: 10,
82
+ textTransform: "uppercase",
83
+ letterSpacing: 0.6,
84
+ color: "var(--du-text-muted)",
85
+ marginBottom: 4,
86
+ };
87
+ const ROW_STYLE = {
88
+ display: "flex",
89
+ justifyContent: "space-between",
90
+ gap: 12,
91
+ lineHeight: "18px",
92
+ };
93
+ const ROW_LABEL_STYLE = {
94
+ color: "var(--du-text-muted)",
95
+ };
96
+ const ROW_VALUE_STYLE = {
97
+ fontVariantNumeric: "tabular-nums",
98
+ fontFamily: "ui-monospace, monospace",
99
+ };
100
+ const EMPTY_STYLE = {
101
+ color: "var(--du-text-muted)",
102
+ fontStyle: "italic",
103
+ };
104
+ //# sourceMappingURL=stats-panel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stats-panel.js","sourceRoot":"","sources":["../src/stats-panel.tsx"],"names":[],"mappings":"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"}
package/dist/toolbar.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { type CSSProperties, type ReactNode } from "react";
2
2
  import type { Editor, Mode } from "@oh-just-another/state";
3
3
  /**
4
- * Single toolbar item. Builtin `mode` items wire to `editor.setMode`;
4
+ * Single toolbar item. Builtin `mode` items wire to `editor.setActiveTool`;
5
5
  * `action` items receive the live editor and decide what to do; `divider`
6
6
  * draws a thin vertical separator. The `zoom-*` kinds let hosts place
7
7
  * individual zoom controls anywhere in the toolbar; `zoom` packs all
@@ -57,7 +57,7 @@ export type ToolbarItem = {
57
57
  } | {
58
58
  /**
59
59
  * Tool-lock toggle. Renders a pressed-when-locked button; click flips
60
- * `editor.toolLocked`. When locked, draw modes (rectangle / ellipse /
60
+ * `editor.activeTool.locked`. When locked, draw modes (rectangle / ellipse /
61
61
  * edge / brush) persist after each create instead of reverting to
62
62
  * select.
63
63
  */
@@ -1 +1 @@
1
- {"version":3,"file":"toolbar.d.ts","sourceRoot":"","sources":["../src/toolbar.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"toolbar.d.ts","sourceRoot":"","sources":["../src/toolbar.tsx"],"names":[],"mappings":"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"}
package/dist/toolbar.js CHANGED
@@ -1,9 +1,9 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useEffect, useState } from "react";
3
- import { Circle, Frame, Hand, Image as ImageIcon, Lock, MousePointer2, PenLine, Redo2, Slash, Square, Type, Undo2, } from "lucide-react";
3
+ import { Circle, Eraser, Frame, Hand, Image as ImageIcon, Lock, MousePointer2, PenLine, Radio, Redo2, Slash, Square, Type, Undo2, } from "lucide-react";
4
4
  import { defaultActionRegistry, formatHotkey } from "@oh-just-another/state";
5
5
  import { useEditorSelector } from "./context.js";
6
- import { useDiagramOptional, useHistory, useMode } from "./hooks.js";
6
+ import { useActiveTool, useDiagramOptional, useHistory, useReadOnly } from "./hooks.js";
7
7
  import { TOOLBAR_SEPARATOR_HEIGHT } from "./constants.js";
8
8
  import { Tooltip } from "./tooltip.js";
9
9
  /**
@@ -27,6 +27,8 @@ const ACTION_ICONS = {
27
27
  "mode-text": Type,
28
28
  "mode-edge": Slash,
29
29
  "mode-brush": PenLine,
30
+ "mode-erase": Eraser,
31
+ "mode-laser": Radio,
30
32
  "mode-frame": Frame,
31
33
  "insert-image": ImageIcon,
32
34
  "tool-lock": Lock,
@@ -57,7 +59,10 @@ const ActionRefButton = ({ id }) => {
57
59
  const Icon = action.iconId ? ACTION_ICONS[action.iconId] : undefined;
58
60
  const ctx = editor ? { editor } : null;
59
61
  const active = ctx ? (action.checked?.(ctx) ?? false) : false;
60
- const enabled = ctx ? (action.predicate ? action.predicate(ctx) : true) : false;
62
+ // Read-only gate: creating / mutating actions (no `viewMode`) disable
63
+ // themselves in view mode, matching the registry's dispatch gate.
64
+ const viewGated = !!editor?.readOnly && action.viewMode !== true;
65
+ const enabled = ctx && !viewGated ? (action.predicate ? action.predicate(ctx) : true) : false;
61
66
  const matchers = action.hotkey === undefined
62
67
  ? []
63
68
  : Array.isArray(action.hotkey)
@@ -127,6 +132,8 @@ export const DEFAULT_TOOLBAR = [
127
132
  { kind: "action-ref", id: "mode-text" },
128
133
  { kind: "action-ref", id: "mode-edge" },
129
134
  { kind: "action-ref", id: "mode-brush" },
135
+ { kind: "action-ref", id: "mode-erase" },
136
+ { kind: "action-ref", id: "mode-laser" },
130
137
  { kind: "action-ref", id: "mode-frame" },
131
138
  {
132
139
  kind: "action",
@@ -159,6 +166,8 @@ export const DEFAULT_VERTICAL_TOOLBAR = [
159
166
  { kind: "action-ref", id: "mode-text" },
160
167
  { kind: "action-ref", id: "mode-edge" },
161
168
  { kind: "action-ref", id: "mode-brush" },
169
+ { kind: "action-ref", id: "mode-erase" },
170
+ { kind: "action-ref", id: "mode-laser" },
162
171
  { kind: "action-ref", id: "mode-frame" },
163
172
  {
164
173
  kind: "action",
@@ -174,7 +183,8 @@ export const DEFAULT_VERTICAL_TOOLBAR = [
174
183
  ];
175
184
  export const Toolbar = ({ items = DEFAULT_TOOLBAR, style, className, orientation = "horizontal", }) => {
176
185
  const editor = useDiagramOptional();
177
- const mode = useMode();
186
+ const activeTool = useActiveTool();
187
+ const readOnly = useReadOnly();
178
188
  const { canUndo, canRedo, undo, redo } = useHistory();
179
189
  const vertical = orientation === "vertical";
180
190
  return (_jsx("div", { role: "toolbar", "aria-orientation": orientation, className: `du-button-group${vertical ? " du-button-group-vertical" : ""} ${className ?? ""}`.trim(), style: style, children: items.map((item, i) => {
@@ -184,32 +194,36 @@ export const Toolbar = ({ items = DEFAULT_TOOLBAR, style, className, orientation
184
194
  case "action-ref":
185
195
  return _jsx(ActionRefButton, { id: item.id }, i);
186
196
  case "mode": {
187
- const active = mode === item.mode;
188
- return (_jsx(ToolbarButton, { ...(item.title !== undefined ? { title: item.title } : {}), disabled: !editor, active: active, onClick: () => editor?.setMode(item.mode), children: item.label }, i));
197
+ const active = activeTool.type === item.mode;
198
+ // Only select / hand are navigation-safe; every other mode
199
+ // creates, so it disables in read-only.
200
+ const navSafe = item.mode === "select" || item.mode === "hand";
201
+ return (_jsx(ToolbarButton, { ...(item.title !== undefined ? { title: item.title } : {}), disabled: !editor || (readOnly && !navSafe), active: active, onClick: () => editor?.setActiveTool(item.mode), children: item.label }, i));
189
202
  }
190
203
  case "action":
191
- return (_jsx(ToolbarButton, { ...(item.title !== undefined ? { title: item.title } : {}), disabled: item.disabled ?? !editor, active: item.active, onClick: () => {
204
+ return (_jsx(ToolbarButton, { ...(item.title !== undefined ? { title: item.title } : {}), disabled: item.disabled ?? (!editor || readOnly), active: item.active, onClick: () => {
192
205
  if (editor)
193
206
  item.onClick(editor);
194
207
  }, children: item.label }, i));
195
208
  case "undo":
196
- return (_jsx(ToolbarButton, { disabled: !canUndo, onClick: undo, children: item.label ?? "Undo" }, i));
209
+ return (_jsx(ToolbarButton, { disabled: !canUndo || readOnly, onClick: undo, children: item.label ?? "Undo" }, i));
197
210
  case "redo":
198
- return (_jsx(ToolbarButton, { disabled: !canRedo, onClick: redo, children: item.label ?? "Redo" }, i));
211
+ return (_jsx(ToolbarButton, { disabled: !canRedo || readOnly, onClick: redo, children: item.label ?? "Redo" }, i));
199
212
  case "tool-lock":
200
213
  return (_jsx(ToolLockButton, { ...(item.label !== undefined ? { label: item.label } : {}), ...(item.title !== undefined ? { title: item.title } : {}) }, i));
201
214
  }
202
215
  }) }));
203
216
  };
204
217
  /**
205
- * Pressable tool-lock affordance. Reads `editor.toolLocked` reactively so
218
+ * Pressable tool-lock affordance. Reads `editor.activeTool.locked` reactively so
206
219
  * the active state stays in sync when the user toggles via hotkey or
207
220
  * context menu.
208
221
  */
209
222
  const ToolLockButton = ({ label = "🔒", title = "Lock current tool", }) => {
210
223
  const editor = useDiagramOptional();
211
- const locked = useEditorSelector((e) => e.toolLocked, false);
212
- return (_jsx(ToolbarButton, { disabled: !editor, title: title, active: locked, onClick: () => editor?.setToolLocked(!locked), children: label }));
224
+ const locked = useEditorSelector((e) => e.activeTool.locked, false);
225
+ const readOnly = useReadOnly();
226
+ return (_jsx(ToolbarButton, { disabled: !editor || readOnly, title: title, active: locked, onClick: () => editor?.setToolLocked(!locked), children: label }));
213
227
  };
214
228
  /** "−" — calls `editor.zoomOut()`. */
215
229
  export const ZoomOutButton = ({ label = "−", title = `Zoom out (${HK_ZOOM_OUT})`, className, style, }) => {
@@ -1 +1 @@
1
- {"version":3,"file":"toolbar.js","sourceRoot":"","sources":["../src/toolbar.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"toolbar.js","sourceRoot":"","sources":["../src/toolbar.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ import { type ReactNode } from "react";
2
+ /**
3
+ * Zen-mode state — a boolean flag plus setters. When on, the host chrome
4
+ * (toolbar, top/bottom bars, side panels) hides so the canvas fills the
5
+ * surface for focused work. Orthogonal to read-only: zen hides the UI,
6
+ * read-only forbids edits — either can be on independently.
7
+ */
8
+ export interface ZenModeApi {
9
+ readonly zen: boolean;
10
+ readonly setZen: (on: boolean) => void;
11
+ readonly toggle: () => void;
12
+ }
13
+ /**
14
+ * Provides zen-mode state to descendants and wires its hotkeys. `⌥Z`
15
+ * toggles; `Esc` exits (only while zen is active, so it doesn't swallow
16
+ * Escape elsewhere). Registers the toggle on the shared action registry
17
+ * (like the command palette) so it routes through hotkey dispatch and
18
+ * shows in the help dialog; `viewMode` keeps it live in read-only.
19
+ *
20
+ * Wrap the editor chrome in this provider and read {@link useZenMode} in
21
+ * the shell to hide UI when `zen` is true.
22
+ */
23
+ export declare const ZenModeProvider: ({ children }: {
24
+ readonly children: ReactNode;
25
+ }) => import("react/jsx-runtime").JSX.Element;
26
+ /** Read zen-mode state. Throws outside a {@link ZenModeProvider}. */
27
+ export declare const useZenMode: () => ZenModeApi;
28
+ /** Forgiving variant — returns `null` when no {@link ZenModeProvider} is above. */
29
+ export declare const useZenModeOptional: () => ZenModeApi | null;
30
+ //# sourceMappingURL=zen-mode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zen-mode.d.ts","sourceRoot":"","sources":["../src/zen-mode.tsx"],"names":[],"mappings":"AAAA,OAAO,EAOL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAGf;;;;;GAKG;AACH,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,QAAQ,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC;CAC7B;AAID;;;;;;;;;GASG;AACH,eAAO,MAAM,eAAe,GAAI,cAAc;IAAE,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAA;CAAE,4CAqC7E,CAAC;AAEF,qEAAqE;AACrE,eAAO,MAAM,UAAU,QAAO,UAM7B,CAAC;AAEF,mFAAmF;AACnF,eAAO,MAAM,kBAAkB,QAAO,UAAU,GAAG,IAAkC,CAAC"}