@edv4h/usketch-plugin-debug-hud 3.0.5 → 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.
Files changed (48) hide show
  1. package/README.md +50 -0
  2. package/dist/board-meta-types.d.ts +19 -0
  3. package/dist/board-meta-types.d.ts.map +1 -0
  4. package/dist/board-meta-types.js +8 -0
  5. package/dist/board-meta-types.js.map +1 -0
  6. package/dist/debug-hud.d.ts +7 -2
  7. package/dist/debug-hud.d.ts.map +1 -1
  8. package/dist/debug-hud.js +28 -4
  9. package/dist/debug-hud.js.map +1 -1
  10. package/dist/event-logger.d.ts.map +1 -1
  11. package/dist/fps-counter.d.ts.map +1 -1
  12. package/dist/overlays/minimap.d.ts +5 -2
  13. package/dist/overlays/minimap.d.ts.map +1 -1
  14. package/dist/overlays/minimap.js +47 -25
  15. package/dist/overlays/minimap.js.map +1 -1
  16. package/dist/overlays/shape-bounds-overlay.js +1 -1
  17. package/dist/panels/controls-panel.d.ts +25 -0
  18. package/dist/panels/controls-panel.d.ts.map +1 -0
  19. package/dist/panels/controls-panel.js +268 -0
  20. package/dist/panels/controls-panel.js.map +1 -0
  21. package/dist/panels/events-panel.d.ts.map +1 -1
  22. package/dist/panels/events-panel.js +3 -2
  23. package/dist/panels/events-panel.js.map +1 -1
  24. package/dist/panels/general-panel.d.ts +3 -1
  25. package/dist/panels/general-panel.d.ts.map +1 -1
  26. package/dist/panels/general-panel.js +7 -4
  27. package/dist/panels/general-panel.js.map +1 -1
  28. package/dist/panels/members-panel.d.ts +10 -0
  29. package/dist/panels/members-panel.d.ts.map +1 -0
  30. package/dist/panels/members-panel.js +59 -0
  31. package/dist/panels/members-panel.js.map +1 -0
  32. package/dist/panels/shapes-panel.d.ts +5 -1
  33. package/dist/panels/shapes-panel.d.ts.map +1 -1
  34. package/dist/panels/shapes-panel.js +19 -20
  35. package/dist/panels/shapes-panel.js.map +1 -1
  36. package/dist/plugin.d.ts.map +1 -1
  37. package/dist/plugin.js +5 -1
  38. package/dist/plugin.js.map +1 -1
  39. package/dist/pointer-tracker.d.ts.map +1 -1
  40. package/dist/presence-types.d.ts +23 -0
  41. package/dist/presence-types.d.ts.map +1 -0
  42. package/dist/presence-types.js +8 -0
  43. package/dist/presence-types.js.map +1 -0
  44. package/dist/stop-propagation.d.ts +27 -0
  45. package/dist/stop-propagation.d.ts.map +1 -0
  46. package/dist/stop-propagation.js +26 -0
  47. package/dist/stop-propagation.js.map +1 -0
  48. package/package.json +4 -4
@@ -0,0 +1,268 @@
1
+ import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useEffect, useReducer, useState } from "react";
3
+ import { STOP_CANVAS_PROPAGATION } from "../stop-propagation.js";
4
+ import { ACCENT, INLINE_INPUT, MINI_BUTTON, MINI_BUTTON_ACCENT, PANEL_BASE, TEXT_LABEL, TEXT_MUTED, } from "../styles.js";
5
+ /** Expanded / collapsed dock widths (kept in sync with DebugHud's sibling offset). */
6
+ export const CONTROLS_DOCK_WIDTH = 248;
7
+ export const CONTROLS_DOCK_COLLAPSED = 30;
8
+ /**
9
+ * Universal control dock. Drives plugin operations without any demo-app UI: a
10
+ * tool palette (`tools.getOrdered()`), the declarative action registry, a raw
11
+ * event-emit fallback, and default-style controls. Full-height, collapsible,
12
+ * with collapsible sections.
13
+ */
14
+ export function ControlsPanel({ store, tools, actions, events, activeToolId, collapsed, onToggleCollapsed, shapesSection, }) {
15
+ // Re-render when actions register/unregister at runtime.
16
+ const [, bump] = useReducer((n) => n + 1, 0);
17
+ useEffect(() => actions.subscribe(bump), [actions]);
18
+ // Filter over the action registry (label / group / id).
19
+ const [actionQuery, setActionQuery] = useState("");
20
+ if (collapsed) {
21
+ return (_jsx("button", { type: "button", ...STOP_CANVAS_PROPAGATION, onClick: (e) => {
22
+ e.stopPropagation();
23
+ onToggleCollapsed();
24
+ }, style: collapsedStripStyle, title: "Open controls", children: _jsx("span", { style: { writingMode: "vertical-rl", letterSpacing: 1 }, children: "Controls \u203A" }) }));
25
+ }
26
+ const toolList = tools.getOrdered();
27
+ const actionList = actions.getOrdered();
28
+ const q = actionQuery.trim().toLowerCase();
29
+ const filteredActions = q
30
+ ? actionList.filter(({ action }) => `${action.label} ${action.group ?? ""} ${action.id}`.toLowerCase().includes(q))
31
+ : actionList;
32
+ const groups = groupActions(filteredActions);
33
+ return (_jsxs("div", { ...STOP_CANVAS_PROPAGATION, style: dockStyle, children: [_jsxs("div", { style: headerStyle, children: [_jsx("span", { style: { color: ACCENT, fontWeight: 700 }, children: "Controls" }), _jsx("button", { type: "button", onClick: onToggleCollapsed, style: MINI_BUTTON, title: "Collapse", children: "\u2039" })] }), _jsx("input", { value: actionQuery, onChange: (e) => setActionQuery(e.target.value), placeholder: "\u30A2\u30AF\u30B7\u30E7\u30F3\u3092\u691C\u7D22\u2026", style: { ...INLINE_INPUT, width: "100%", marginBottom: 6 } }), _jsx(Section, { title: "Tools", children: _jsx("div", { style: toolGridStyle, children: toolList.map(({ id, definition }) => (_jsx("button", { type: "button", title: id, onClick: () => store.setActiveToolId(id), style: {
34
+ ...MINI_BUTTON,
35
+ display: "flex",
36
+ alignItems: "center",
37
+ justifyContent: "center",
38
+ width: 28,
39
+ height: 28,
40
+ background: id === activeToolId ? ACCENT : "rgba(255,255,255,0.1)",
41
+ }, children: _jsx(IconSlot, { render: definition.icon }) }, id))) }) }), groups.map(([group, items]) => (_jsx(Section, { title: group, children: items.map(({ id, action }) => (_jsx(ActionRow, { action: action, onAfterRun: bump }, id))) }, group))), filteredActions.length === 0 && (_jsx("div", { style: { color: TEXT_MUTED, fontSize: 10, marginBottom: 6 }, children: actionList.length === 0 ? (_jsxs(_Fragment, { children: ["No registered actions. Plugins expose operations via ", _jsx("code", { children: "ctx.actions.register" }), "."] })) : ("一致するアクションがありません") })), shapesSection && (_jsx(Section, { title: "Shapes", defaultOpen: false, children: shapesSection })), _jsx(Section, { title: "Emit event", defaultOpen: false, children: _jsx(EventConsole, { events: events }) }), _jsx(Section, { title: "Style", defaultOpen: false, children: _jsx(StyleControls, { store: store }) })] }));
42
+ }
43
+ /** Collapsible section with a clickable header. */
44
+ function Section({ title, defaultOpen = true, children, }) {
45
+ const [open, setOpen] = useState(defaultOpen);
46
+ return (_jsxs("div", { style: sectionStyle, children: [_jsxs("button", { type: "button", onClick: () => setOpen((o) => !o), style: sectionHeaderStyle, title: open ? "Collapse" : "Expand", children: [_jsx("span", { style: { color: ACCENT, marginRight: 6, fontSize: 8 }, children: open ? "▼" : "▶" }), title] }), open && _jsx("div", { style: sectionBodyStyle, children: children })] }));
47
+ }
48
+ function groupActions(list) {
49
+ const map = new Map();
50
+ for (const entry of list) {
51
+ const g = entry.action.group ?? "Actions";
52
+ const bucket = map.get(g) ?? [];
53
+ bucket.push(entry);
54
+ map.set(g, bucket);
55
+ }
56
+ return [...map.entries()];
57
+ }
58
+ function IconSlot({ render }) {
59
+ try {
60
+ return render();
61
+ }
62
+ catch {
63
+ return _jsx("span", { children: "?" });
64
+ }
65
+ }
66
+ /** One action: a button (no params) or inline param controls + Run. */
67
+ function ActionRow({ action, onAfterRun }) {
68
+ const [args, setArgs] = useState(() => defaultArgs(action.params));
69
+ const enabled = action.isEnabled ? action.isEnabled() : true;
70
+ const active = action.isActive?.() ?? false;
71
+ // アクション実行後に必ず親を再レンダーさせ、isActive/isEnabled を再評価する。
72
+ // これがないと、store を変えずプラグインローカル状態だけ更新する toggle 系で
73
+ // インジケータが次の無関係な再レンダーまで stale になる。
74
+ // run は void | Promise<void>。同期例外・非同期 reject を握りつぶさずログし、
75
+ // finally で onAfterRun を必ず呼んで UI 反映を保証する。
76
+ const run = (a) => {
77
+ try {
78
+ const result = action.run(a);
79
+ if (result && typeof result.then === "function") {
80
+ result.catch((err) => console.error(`Action "${action.id}" failed:`, err));
81
+ }
82
+ }
83
+ catch (err) {
84
+ console.error(`Action "${action.id}" failed:`, err);
85
+ }
86
+ finally {
87
+ onAfterRun();
88
+ }
89
+ };
90
+ if (!action.params || action.params.length === 0) {
91
+ return (_jsxs("button", { type: "button", disabled: !enabled, onClick: () => run({}), style: {
92
+ ...(active ? MINI_BUTTON_ACCENT : MINI_BUTTON),
93
+ display: "block",
94
+ width: "100%",
95
+ textAlign: "left",
96
+ marginBottom: 3,
97
+ opacity: enabled ? 1 : 0.4,
98
+ }, children: [active ? "● " : "", action.label] }));
99
+ }
100
+ return (_jsxs("div", { style: { marginBottom: 4 }, children: [_jsx("div", { style: { color: TEXT_LABEL, fontSize: 10 }, children: action.label }), _jsxs("div", { style: { display: "flex", flexWrap: "wrap", gap: 4, alignItems: "center" }, children: [action.params.map((p) => (_jsx(ParamControl, { param: p, value: args[p.name], onChange: (v) => setArgs((prev) => ({ ...prev, [p.name]: v })) }, p.name))), _jsx("button", { type: "button", disabled: !enabled, onClick: () => run(args), style: { ...MINI_BUTTON_ACCENT, opacity: enabled ? 1 : 0.4 }, children: "Run" })] })] }));
101
+ }
102
+ function defaultArgs(params) {
103
+ const out = {};
104
+ for (const p of params ?? []) {
105
+ if (p.default !== undefined)
106
+ out[p.name] = p.default;
107
+ else if (p.type === "enum")
108
+ out[p.name] = p.options?.[0]?.value;
109
+ else if (p.type === "boolean")
110
+ out[p.name] = false;
111
+ else if (p.type === "number")
112
+ out[p.name] = p.min ?? 0;
113
+ else if (p.type === "color")
114
+ out[p.name] = "#000000";
115
+ else
116
+ out[p.name] = "";
117
+ }
118
+ return out;
119
+ }
120
+ function ParamControl({ param, value, onChange, }) {
121
+ switch (param.type) {
122
+ case "enum":
123
+ return (_jsx("select", { value: String(value ?? ""), onChange: (e) => onChange(e.target.value), style: { ...INLINE_INPUT, width: "auto" }, children: param.options?.map((o) => (_jsx("option", { value: o.value, children: o.label }, o.value))) }));
124
+ case "boolean":
125
+ return (_jsx("input", { type: "checkbox", checked: Boolean(value), onChange: (e) => onChange(e.target.checked) }));
126
+ case "color":
127
+ return (_jsx("input", { type: "color", value: String(value ?? "#000000"), onChange: (e) => onChange(e.target.value) }));
128
+ case "number":
129
+ return (_jsx("input", { type: "number", value: Number(value ?? 0), min: param.min, max: param.max, step: param.step, onChange: (e) => onChange(Number(e.target.value)), style: INLINE_INPUT }));
130
+ default:
131
+ return (_jsx("input", { type: "text", value: String(value ?? ""), onChange: (e) => onChange(e.target.value), style: INLINE_INPUT }));
132
+ }
133
+ }
134
+ /** Emit an arbitrary event with a JSON payload — the universal fallback. */
135
+ function EventConsole({ events }) {
136
+ const [name, setName] = useState("");
137
+ const [payload, setPayload] = useState("{}");
138
+ const [err, setErr] = useState(null);
139
+ const emit = () => {
140
+ if (!name.trim())
141
+ return;
142
+ let data = {};
143
+ if (payload.trim()) {
144
+ try {
145
+ data = JSON.parse(payload);
146
+ }
147
+ catch {
148
+ setErr("invalid JSON");
149
+ return;
150
+ }
151
+ }
152
+ setErr(null);
153
+ events.emit(name.trim(), data);
154
+ };
155
+ return (_jsxs("div", { children: [_jsx("input", { type: "text", value: name, placeholder: "event:name", onChange: (e) => setName(e.target.value), style: { ...INLINE_INPUT, width: "100%", marginBottom: 3 } }), _jsx("textarea", { value: payload, onChange: (e) => setPayload(e.target.value), spellCheck: false, style: {
156
+ ...INLINE_INPUT,
157
+ width: "100%",
158
+ height: 36,
159
+ resize: "vertical",
160
+ marginBottom: 3,
161
+ } }), _jsxs("div", { style: { display: "flex", gap: 4, alignItems: "center" }, children: [_jsx("button", { type: "button", onClick: emit, style: MINI_BUTTON_ACCENT, children: "Emit" }), err && _jsx("span", { style: { color: "#f87171", fontSize: 10 }, children: err })] })] }));
162
+ }
163
+ /** Edit the default draw style (applies to new shapes via setStyleSettings). */
164
+ function StyleControls({ store }) {
165
+ const s = store.getStyleSettings();
166
+ // setStyleSettings はストア側で既存設定にマージする({ ...styleSettings, ...patch })。
167
+ // ここで render 時点の `s` と再マージすると stale な値を書き戻し、並行変更
168
+ // (fill 変更直後の stroke 変更など)を打ち消しかねないので patch だけ渡す。
169
+ const set = (patch) => store.setStyleSettings(patch);
170
+ const clearCanvas = () => {
171
+ const ids = [...store.getShapes().keys()];
172
+ if (ids.length === 0)
173
+ return;
174
+ // HUD が本番でも出るようになったため、誤爆防止に確認を挟む。
175
+ // deleteShape 直呼びは undo 履歴を通らない破壊的操作である点も明示する。
176
+ if (typeof window !== "undefined" &&
177
+ !window.confirm(`Delete all ${ids.length} shape(s)? This cannot be undone.`)) {
178
+ return;
179
+ }
180
+ for (const id of ids)
181
+ store.deleteShape(id);
182
+ };
183
+ return (_jsxs("div", { children: [_jsxs("div", { style: { display: "flex", gap: 6, alignItems: "center", marginBottom: 4 }, children: [_jsxs("label", { style: swatchLabel, children: ["fill", _jsx("input", { type: "color", value: toHex(s.fill), onChange: (e) => set({ fill: e.target.value }) })] }), _jsxs("label", { style: swatchLabel, children: ["stroke", _jsx("input", { type: "color", value: toHex(s.stroke), onChange: (e) => set({ stroke: e.target.value }) })] })] }), _jsx("button", { type: "button", onClick: clearCanvas, style: { ...MINI_BUTTON, color: "#f87171", borderColor: "#f87171" }, children: "Clear canvas" })] }));
184
+ }
185
+ function toHex(color) {
186
+ return typeof color === "string" && /^#[0-9a-fA-F]{6}$/.test(color) ? color : "#000000";
187
+ }
188
+ const dockStyle = {
189
+ ...PANEL_BASE,
190
+ // width must include padding so DebugHud's sibling offset (based on the
191
+ // nominal width) actually clears the dock — otherwise content-box padding
192
+ // makes the dock ~20px wider than expected and the minimap overlaps it.
193
+ boxSizing: "border-box",
194
+ position: "absolute",
195
+ left: 8,
196
+ top: 8,
197
+ bottom: 8,
198
+ width: CONTROLS_DOCK_WIDTH,
199
+ overflowY: "auto",
200
+ };
201
+ const collapsedStripStyle = {
202
+ ...PANEL_BASE,
203
+ boxSizing: "border-box",
204
+ position: "absolute",
205
+ left: 8,
206
+ top: 8,
207
+ bottom: 8,
208
+ width: CONTROLS_DOCK_COLLAPSED,
209
+ display: "flex",
210
+ alignItems: "center",
211
+ justifyContent: "center",
212
+ cursor: "pointer",
213
+ border: "none",
214
+ color: ACCENT,
215
+ fontSize: 11,
216
+ fontWeight: 700,
217
+ };
218
+ const headerStyle = {
219
+ display: "flex",
220
+ alignItems: "center",
221
+ justifyContent: "space-between",
222
+ marginBottom: 2,
223
+ fontSize: 11,
224
+ };
225
+ // セクションごとに区切り線 + 上マージンを付けて境界を明確にする。
226
+ const sectionStyle = {
227
+ marginTop: 10,
228
+ paddingTop: 10,
229
+ borderTop: "1px solid rgba(255, 255, 255, 0.1)",
230
+ };
231
+ // ヘッダーは大文字 + トラッキング + やや明るい色でスキャンしやすくする。
232
+ const sectionHeaderStyle = {
233
+ display: "flex",
234
+ alignItems: "center",
235
+ width: "100%",
236
+ textAlign: "left",
237
+ background: "transparent",
238
+ border: "none",
239
+ cursor: "pointer",
240
+ padding: 0,
241
+ margin: 0,
242
+ fontFamily: "inherit",
243
+ color: "#c9c9d4",
244
+ fontSize: 10.5,
245
+ fontWeight: 600,
246
+ letterSpacing: 0.6,
247
+ textTransform: "uppercase",
248
+ };
249
+ // 本文はインデント + 左のレールで「ヘッダー配下」であることを視覚化する。
250
+ const sectionBodyStyle = {
251
+ marginTop: 8,
252
+ marginLeft: 3,
253
+ paddingLeft: 9,
254
+ borderLeft: "1px solid rgba(255, 255, 255, 0.08)",
255
+ };
256
+ const toolGridStyle = {
257
+ display: "flex",
258
+ flexWrap: "wrap",
259
+ gap: 4,
260
+ };
261
+ const swatchLabel = {
262
+ display: "flex",
263
+ alignItems: "center",
264
+ gap: 3,
265
+ color: TEXT_LABEL,
266
+ fontSize: 10,
267
+ };
268
+ //# sourceMappingURL=controls-panel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"controls-panel.js","sourceRoot":"","sources":["../../src/panels/controls-panel.tsx"],"names":[],"mappings":";AAUA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACxD,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EACN,MAAM,EACN,YAAY,EACZ,WAAW,EACX,kBAAkB,EAClB,UAAU,EACV,UAAU,EACV,UAAU,GACV,MAAM,cAAc,CAAC;AAEtB,sFAAsF;AACtF,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,CAAC;AACvC,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAE,CAAC;AAc1C;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,EAC7B,KAAK,EACL,KAAK,EACL,OAAO,EACP,MAAM,EACN,YAAY,EACZ,SAAS,EACT,iBAAiB,EACjB,aAAa,GACO;IACpB,yDAAyD;IACzD,MAAM,CAAC,EAAE,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IACrD,SAAS,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAEpD,wDAAwD;IACxD,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IAEnD,IAAI,SAAS,EAAE,CAAC;QACf,OAAO,CACN,iBACC,IAAI,EAAC,QAAQ,KACT,uBAAuB,EAC3B,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;gBACd,CAAC,CAAC,eAAe,EAAE,CAAC;gBACpB,iBAAiB,EAAE,CAAC;YACrB,CAAC,EACD,KAAK,EAAE,mBAAmB,EAC1B,KAAK,EAAC,eAAe,YAErB,eAAM,KAAK,EAAE,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,CAAC,EAAE,gCAAmB,GACxE,CACT,CAAC;IACH,CAAC;IAED,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,EAAE,CAAC;IACpC,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IACxC,MAAM,CAAC,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC3C,MAAM,eAAe,GAAG,CAAC;QACxB,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CACjC,GAAG,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,IAAI,EAAE,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAC9E;QACF,CAAC,CAAC,UAAU,CAAC;IACd,MAAM,MAAM,GAAG,YAAY,CAAC,eAAe,CAAC,CAAC;IAE7C,OAAO,CACN,kBAAS,uBAAuB,EAAE,KAAK,EAAE,SAAS,aACjD,eAAK,KAAK,EAAE,WAAW,aACtB,eAAM,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,yBAAiB,EAChE,iBAAQ,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAE,iBAAiB,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAC,UAAU,uBAE7E,IACJ,EAEN,gBACC,KAAK,EAAE,WAAW,EAClB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAC/C,WAAW,EAAC,wDAAW,EACvB,KAAK,EAAE,EAAE,GAAG,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,EAAE,GACzD,EAEF,KAAC,OAAO,IAAC,KAAK,EAAC,OAAO,YACrB,cAAK,KAAK,EAAE,aAAa,YACvB,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CACrC,iBACC,IAAI,EAAC,QAAQ,EAEb,KAAK,EAAE,EAAE,EACT,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,EAAE,CAAC,EACxC,KAAK,EAAE;4BACN,GAAG,WAAW;4BACd,OAAO,EAAE,MAAM;4BACf,UAAU,EAAE,QAAQ;4BACpB,cAAc,EAAE,QAAQ;4BACxB,KAAK,EAAE,EAAE;4BACT,MAAM,EAAE,EAAE;4BACV,UAAU,EAAE,EAAE,KAAK,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,uBAAuB;yBAClE,YAED,KAAC,QAAQ,IAAC,MAAM,EAAE,UAAU,CAAC,IAAI,GAAI,IAbhC,EAAE,CAcC,CACT,CAAC,GACG,GACG,EAET,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAC/B,KAAC,OAAO,IAAa,KAAK,EAAE,KAAK,YAC/B,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAC9B,KAAC,SAAS,IAAU,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,IAApC,EAAE,CAAsC,CACxD,CAAC,IAHW,KAAK,CAIT,CACV,CAAC,EACD,eAAe,CAAC,MAAM,KAAK,CAAC,IAAI,CAChC,cAAK,KAAK,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC,EAAE,YAC9D,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAC1B,uFACsD,kDAAiC,SAEpF,CACH,CAAC,CAAC,CAAC,CACH,iBAAiB,CACjB,GACI,CACN,EAEA,aAAa,IAAI,CACjB,KAAC,OAAO,IAAC,KAAK,EAAC,QAAQ,EAAC,WAAW,EAAE,KAAK,YACxC,aAAa,GACL,CACV,EAED,KAAC,OAAO,IAAC,KAAK,EAAC,YAAY,EAAC,WAAW,EAAE,KAAK,YAC7C,KAAC,YAAY,IAAC,MAAM,EAAE,MAAM,GAAI,GACvB,EAEV,KAAC,OAAO,IAAC,KAAK,EAAC,OAAO,EAAC,WAAW,EAAE,KAAK,YACxC,KAAC,aAAa,IAAC,KAAK,EAAE,KAAK,GAAI,GACtB,IACL,CACN,CAAC;AACH,CAAC;AAED,mDAAmD;AACnD,SAAS,OAAO,CAAC,EAChB,KAAK,EACL,WAAW,GAAG,IAAI,EAClB,QAAQ,GAKR;IACA,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC;IAC9C,OAAO,CACN,eAAK,KAAK,EAAE,YAAY,aACvB,kBACC,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EACjC,KAAK,EAAE,kBAAkB,EACzB,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,aAEnC,eAAM,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,YAAG,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAQ,EACrF,KAAK,IACE,EACR,IAAI,IAAI,cAAK,KAAK,EAAE,gBAAgB,YAAG,QAAQ,GAAO,IAClD,CACN,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CACpB,IAAqD;IAErD,MAAM,GAAG,GAAG,IAAI,GAAG,EAAkD,CAAC;IACtE,KAAK,MAAM,KAAK,IAAI,IAAI,EAAE,CAAC;QAC1B,MAAM,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,SAAS,CAAC;QAC1C,MAAM,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAChC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnB,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IACpB,CAAC;IACD,OAAO,CAAC,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;AAC3B,CAAC;AAED,SAAS,QAAQ,CAAC,EAAE,MAAM,EAAwC;IACjE,IAAI,CAAC;QACJ,OAAO,MAAM,EAAE,CAAC;IACjB,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,+BAAc,CAAC;IACvB,CAAC;AACF,CAAC;AAED,uEAAuE;AACvE,SAAS,SAAS,CAAC,EAAE,MAAM,EAAE,UAAU,EAAoD;IAC1F,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAA0B,GAAG,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IAC5F,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAC7D,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,EAAE,EAAE,IAAI,KAAK,CAAC;IAE5C,kDAAkD;IAClD,+CAA+C;IAC/C,kCAAkC;IAClC,yDAAyD;IACzD,0CAA0C;IAC1C,MAAM,GAAG,GAAG,CAAC,CAA0B,EAAE,EAAE;QAC1C,IAAI,CAAC;YACJ,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC7B,IAAI,MAAM,IAAI,OAAQ,MAA2B,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;gBACtE,MAA2B,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAC1C,OAAO,CAAC,KAAK,CAAC,WAAW,MAAM,CAAC,EAAE,WAAW,EAAE,GAAG,CAAC,CACnD,CAAC;YACH,CAAC;QACF,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACd,OAAO,CAAC,KAAK,CAAC,WAAW,MAAM,CAAC,EAAE,WAAW,EAAE,GAAG,CAAC,CAAC;QACrD,CAAC;gBAAS,CAAC;YACV,UAAU,EAAE,CAAC;QACd,CAAC;IACF,CAAC,CAAC;IAEF,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAClD,OAAO,CACN,kBACC,IAAI,EAAC,QAAQ,EACb,QAAQ,EAAE,CAAC,OAAO,EAClB,OAAO,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EACtB,KAAK,EAAE;gBACN,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,WAAW,CAAC;gBAC9C,OAAO,EAAE,OAAO;gBAChB,KAAK,EAAE,MAAM;gBACb,SAAS,EAAE,MAAM;gBACjB,YAAY,EAAE,CAAC;gBACf,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG;aAC1B,aAEA,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAClB,MAAM,CAAC,KAAK,IACL,CACT,CAAC;IACH,CAAC;IAED,OAAO,CACN,eAAK,KAAK,EAAE,EAAE,YAAY,EAAE,CAAC,EAAE,aAC9B,cAAK,KAAK,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,EAAE,YAAG,MAAM,CAAC,KAAK,GAAO,EACrE,eAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,aAC7E,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CACzB,KAAC,YAAY,IAEZ,KAAK,EAAE,CAAC,EACR,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EACnB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,IAHzD,CAAC,CAAC,IAAI,CAIV,CACF,CAAC,EACF,iBACC,IAAI,EAAC,QAAQ,EACb,QAAQ,EAAE,CAAC,OAAO,EAClB,OAAO,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EACxB,KAAK,EAAE,EAAE,GAAG,kBAAkB,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,oBAGpD,IACJ,IACD,CACN,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAAC,MAAsB;IAC1C,MAAM,GAAG,GAA4B,EAAE,CAAC;IACxC,KAAK,MAAM,CAAC,IAAI,MAAM,IAAI,EAAE,EAAE,CAAC;QAC9B,IAAI,CAAC,CAAC,OAAO,KAAK,SAAS;YAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC;aAChD,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM;YAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC;aAC3D,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS;YAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;aAC9C,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ;YAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;aAClD,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO;YAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC;;YAChD,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,CAAC;IACD,OAAO,GAAG,CAAC;AACZ,CAAC;AAED,SAAS,YAAY,CAAC,EACrB,KAAK,EACL,KAAK,EACL,QAAQ,GAKR;IACA,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACpB,KAAK,MAAM;YACV,OAAO,CACN,iBACC,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,EAC1B,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EACzC,KAAK,EAAE,EAAE,GAAG,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,YAExC,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAC1B,iBAAsB,KAAK,EAAE,CAAC,CAAC,KAAK,YAClC,CAAC,CAAC,KAAK,IADI,CAAC,CAAC,KAAK,CAEX,CACT,CAAC,GACM,CACT,CAAC;QACH,KAAK,SAAS;YACb,OAAO,CACN,gBACC,IAAI,EAAC,UAAU,EACf,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,EACvB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAC1C,CACF,CAAC;QACH,KAAK,OAAO;YACX,OAAO,CACN,gBACC,IAAI,EAAC,OAAO,EACZ,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,SAAS,CAAC,EACjC,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,GACxC,CACF,CAAC;QACH,KAAK,QAAQ;YACZ,OAAO,CACN,gBACC,IAAI,EAAC,QAAQ,EACb,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC,EACzB,GAAG,EAAE,KAAK,CAAC,GAAG,EACd,GAAG,EAAE,KAAK,CAAC,GAAG,EACd,IAAI,EAAE,KAAK,CAAC,IAAI,EAChB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EACjD,KAAK,EAAE,YAAY,GAClB,CACF,CAAC;QACH;YACC,OAAO,CACN,gBACC,IAAI,EAAC,MAAM,EACX,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,EAC1B,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EACzC,KAAK,EAAE,YAAY,GAClB,CACF,CAAC;IACJ,CAAC;AACF,CAAC;AAED,4EAA4E;AAC5E,SAAS,YAAY,CAAC,EAAE,MAAM,EAAwB;IACrD,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACrC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC7C,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IAEpD,MAAM,IAAI,GAAG,GAAG,EAAE;QACjB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YAAE,OAAO;QACzB,IAAI,IAAI,GAAY,EAAE,CAAC;QACvB,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;YACpB,IAAI,CAAC;gBACJ,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC5B,CAAC;YAAC,MAAM,CAAC;gBACR,MAAM,CAAC,cAAc,CAAC,CAAC;gBACvB,OAAO;YACR,CAAC;QACF,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,CAAC;QACb,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC;IAChC,CAAC,CAAC;IAEF,OAAO,CACN,0BACC,gBACC,IAAI,EAAC,MAAM,EACX,KAAK,EAAE,IAAI,EACX,WAAW,EAAC,YAAY,EACxB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EACxC,KAAK,EAAE,EAAE,GAAG,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,EAAE,GACzD,EACF,mBACC,KAAK,EAAE,OAAO,EACd,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAC3C,UAAU,EAAE,KAAK,EACjB,KAAK,EAAE;oBACN,GAAG,YAAY;oBACf,KAAK,EAAE,MAAM;oBACb,MAAM,EAAE,EAAE;oBACV,MAAM,EAAE,UAAU;oBAClB,YAAY,EAAE,CAAC;iBACf,GACA,EACF,eAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,aAC5D,iBAAQ,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,kBAAkB,qBAErD,EACR,GAAG,IAAI,eAAM,KAAK,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,YAAG,GAAG,GAAQ,IAChE,IACD,CACN,CAAC;AACH,CAAC;AAED,gFAAgF;AAChF,SAAS,aAAa,CAAC,EAAE,KAAK,EAAyB;IACtD,MAAM,CAAC,GAAG,KAAK,CAAC,gBAAgB,EAAE,CAAC;IACnC,qEAAqE;IACrE,iDAAiD;IACjD,kDAAkD;IAClD,MAAM,GAAG,GAAG,CAAC,KAA0B,EAAE,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAE1E,MAAM,WAAW,GAAG,GAAG,EAAE;QACxB,MAAM,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;QAC1C,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAC7B,kCAAkC;QAClC,+CAA+C;QAC/C,IACC,OAAO,MAAM,KAAK,WAAW;YAC7B,CAAC,MAAM,CAAC,OAAO,CAAC,cAAc,GAAG,CAAC,MAAM,mCAAmC,CAAC,EAC3E,CAAC;YACF,OAAO;QACR,CAAC;QACD,KAAK,MAAM,EAAE,IAAI,GAAG;YAAE,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;IAC7C,CAAC,CAAC;IAEF,OAAO,CACN,0BACC,eAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC,EAAE,aAC7E,iBAAO,KAAK,EAAE,WAAW,qBAExB,gBACC,IAAI,EAAC,OAAO,EACZ,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EACpB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,GAC7C,IACK,EACR,iBAAO,KAAK,EAAE,WAAW,uBAExB,gBACC,IAAI,EAAC,OAAO,EACZ,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,EACtB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,GAC/C,IACK,IACH,EACN,iBACC,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,WAAW,EACpB,KAAK,EAAE,EAAE,GAAG,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,6BAG3D,IACJ,CACN,CAAC;AACH,CAAC;AAED,SAAS,KAAK,CAAC,KAAc;IAC5B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AACzF,CAAC;AAED,MAAM,SAAS,GAAwB;IACtC,GAAG,UAAU;IACb,wEAAwE;IACxE,0EAA0E;IAC1E,wEAAwE;IACxE,SAAS,EAAE,YAAY;IACvB,QAAQ,EAAE,UAAU;IACpB,IAAI,EAAE,CAAC;IACP,GAAG,EAAE,CAAC;IACN,MAAM,EAAE,CAAC;IACT,KAAK,EAAE,mBAAmB;IAC1B,SAAS,EAAE,MAAM;CACjB,CAAC;AAEF,MAAM,mBAAmB,GAAwB;IAChD,GAAG,UAAU;IACb,SAAS,EAAE,YAAY;IACvB,QAAQ,EAAE,UAAU;IACpB,IAAI,EAAE,CAAC;IACP,GAAG,EAAE,CAAC;IACN,MAAM,EAAE,CAAC;IACT,KAAK,EAAE,uBAAuB;IAC9B,OAAO,EAAE,MAAM;IACf,UAAU,EAAE,QAAQ;IACpB,cAAc,EAAE,QAAQ;IACxB,MAAM,EAAE,SAAS;IACjB,MAAM,EAAE,MAAM;IACd,KAAK,EAAE,MAAM;IACb,QAAQ,EAAE,EAAE;IACZ,UAAU,EAAE,GAAG;CACf,CAAC;AAEF,MAAM,WAAW,GAAwB;IACxC,OAAO,EAAE,MAAM;IACf,UAAU,EAAE,QAAQ;IACpB,cAAc,EAAE,eAAe;IAC/B,YAAY,EAAE,CAAC;IACf,QAAQ,EAAE,EAAE;CACZ,CAAC;AAEF,oCAAoC;AACpC,MAAM,YAAY,GAAwB;IACzC,SAAS,EAAE,EAAE;IACb,UAAU,EAAE,EAAE;IACd,SAAS,EAAE,oCAAoC;CAC/C,CAAC;AAEF,yCAAyC;AACzC,MAAM,kBAAkB,GAAwB;IAC/C,OAAO,EAAE,MAAM;IACf,UAAU,EAAE,QAAQ;IACpB,KAAK,EAAE,MAAM;IACb,SAAS,EAAE,MAAM;IACjB,UAAU,EAAE,aAAa;IACzB,MAAM,EAAE,MAAM;IACd,MAAM,EAAE,SAAS;IACjB,OAAO,EAAE,CAAC;IACV,MAAM,EAAE,CAAC;IACT,UAAU,EAAE,SAAS;IACrB,KAAK,EAAE,SAAS;IAChB,QAAQ,EAAE,IAAI;IACd,UAAU,EAAE,GAAG;IACf,aAAa,EAAE,GAAG;IAClB,aAAa,EAAE,WAAW;CAC1B,CAAC;AAEF,wCAAwC;AACxC,MAAM,gBAAgB,GAAwB;IAC7C,SAAS,EAAE,CAAC;IACZ,UAAU,EAAE,CAAC;IACb,WAAW,EAAE,CAAC;IACd,UAAU,EAAE,qCAAqC;CACjD,CAAC;AAEF,MAAM,aAAa,GAAwB;IAC1C,OAAO,EAAE,MAAM;IACf,QAAQ,EAAE,MAAM;IAChB,GAAG,EAAE,CAAC;CACN,CAAC;AAEF,MAAM,WAAW,GAAwB;IACxC,OAAO,EAAE,MAAM;IACf,UAAU,EAAE,QAAQ;IACpB,GAAG,EAAE,CAAC;IACN,KAAK,EAAE,UAAU;IACjB,QAAQ,EAAE,EAAE;CACZ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"events-panel.d.ts","sourceRoot":"","sources":["../../src/panels/events-panel.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAiB,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGrE,UAAU,gBAAgB;IACzB,WAAW,EAAE,WAAW,CAAC;CACzB;AA4BD,wBAAgB,WAAW,CAAC,EAAE,WAAW,EAAE,EAAE,gBAAgB,+BAwE5D"}
1
+ {"version":3,"file":"events-panel.d.ts","sourceRoot":"","sources":["../../src/panels/events-panel.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAiB,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAIrE,UAAU,gBAAgB;IACzB,WAAW,EAAE,WAAW,CAAC;CACzB;AA4BD,wBAAgB,WAAW,CAAC,EAAE,WAAW,EAAE,EAAE,gBAAgB,+BAyE5D"}
@@ -1,5 +1,6 @@
1
- import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useCallback, useState, useSyncExternalStore } from "react";
3
+ import { STOP_CANVAS_PROPAGATION } from "../stop-propagation.js";
3
4
  import { LABEL_STYLE, MINI_BUTTON, PANEL_BASE, SCROLLABLE_STYLE, TEXT_MUTED } from "../styles.js";
4
5
  const EVENT_COLORS = {
5
6
  // canvas events — each action gets its own shade
@@ -30,7 +31,7 @@ export function EventsPanel({ eventLogger }) {
30
31
  const filtered = filter
31
32
  ? events.filter((e) => e.event.toLowerCase().includes(filter.toLowerCase()))
32
33
  : events;
33
- return (_jsxs("div", { style: {
34
+ return (_jsxs("div", { ...STOP_CANVAS_PROPAGATION, style: {
34
35
  ...PANEL_BASE,
35
36
  position: "absolute",
36
37
  bottom: 8,
@@ -1 +1 @@
1
- {"version":3,"file":"events-panel.js","sourceRoot":"","sources":["../../src/panels/events-panel.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"events-panel.js","sourceRoot":"","sources":["../../src/panels/events-panel.tsx"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import type { BoardStore, CommandRegistry, EventBus, LayerManager, ShapeRegistry, ToolRegistry, Viewport } from "@edv4h/usketch-shared";
2
+ import type { BoardMetaTrackerLike } from "../board-meta-types.js";
2
3
  import type { FpsCounter } from "../fps-counter.js";
3
4
  import type { PointerTracker } from "../pointer-tracker.js";
4
5
  import type { SyncStatusTrackerLike } from "../sync-status-types.js";
@@ -11,10 +12,11 @@ interface GeneralPanelProps {
11
12
  layers: LayerManager;
12
13
  shapes: ShapeRegistry;
13
14
  syncStatus?: SyncStatusTrackerLike;
15
+ boardMeta?: BoardMetaTrackerLike;
14
16
  events: EventBus;
15
17
  viewport: Viewport;
16
18
  activeToolId: string;
17
19
  }
18
- export declare function GeneralPanel({ store, fpsCounter, pointerTracker, commands, tools, layers, shapes, syncStatus, events, viewport, activeToolId, }: GeneralPanelProps): import("react").JSX.Element;
20
+ export declare function GeneralPanel({ store, fpsCounter, pointerTracker, commands, tools, layers, shapes, syncStatus, boardMeta, events, viewport, activeToolId, }: GeneralPanelProps): import("react").JSX.Element;
19
21
  export {};
20
22
  //# sourceMappingURL=general-panel.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"general-panel.d.ts","sourceRoot":"","sources":["../../src/panels/general-panel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,UAAU,EACV,eAAe,EACf,QAAQ,EACR,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,QAAQ,EACR,MAAM,uBAAuB,CAAC;AAG/B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAW5D,OAAO,KAAK,EAAsB,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAQzF,UAAU,iBAAiB;IAC1B,KAAK,EAAE,UAAU,CAAC;IAClB,UAAU,EAAE,UAAU,CAAC;IACvB,cAAc,EAAE,cAAc,CAAC;IAC/B,QAAQ,EAAE,eAAe,CAAC;IAC1B,KAAK,EAAE,YAAY,CAAC;IACpB,MAAM,EAAE,YAAY,CAAC;IACrB,MAAM,EAAE,aAAa,CAAC;IACtB,UAAU,CAAC,EAAE,qBAAqB,CAAC;IACnC,MAAM,EAAE,QAAQ,CAAC;IACjB,QAAQ,EAAE,QAAQ,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;CACrB;AAmCD,wBAAgB,YAAY,CAAC,EAC5B,KAAK,EACL,UAAU,EACV,cAAc,EACd,QAAQ,EACR,KAAK,EACL,MAAM,EACN,MAAM,EACN,UAAU,EACV,MAAM,EACN,QAAQ,EACR,YAAY,GACZ,EAAE,iBAAiB,+BAkOnB"}
1
+ {"version":3,"file":"general-panel.d.ts","sourceRoot":"","sources":["../../src/panels/general-panel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,UAAU,EACV,eAAe,EACf,QAAQ,EACR,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,QAAQ,EACR,MAAM,uBAAuB,CAAC;AAE/B,OAAO,KAAK,EAAqB,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAEtF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAY5D,OAAO,KAAK,EAAsB,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAQzF,UAAU,iBAAiB;IAC1B,KAAK,EAAE,UAAU,CAAC;IAClB,UAAU,EAAE,UAAU,CAAC;IACvB,cAAc,EAAE,cAAc,CAAC;IAC/B,QAAQ,EAAE,eAAe,CAAC;IAC1B,KAAK,EAAE,YAAY,CAAC;IACpB,MAAM,EAAE,YAAY,CAAC;IACrB,MAAM,EAAE,aAAa,CAAC;IACtB,UAAU,CAAC,EAAE,qBAAqB,CAAC;IACnC,SAAS,CAAC,EAAE,oBAAoB,CAAC;IACjC,MAAM,EAAE,QAAQ,CAAC;IACjB,QAAQ,EAAE,QAAQ,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;CACrB;AAqCD,wBAAgB,YAAY,CAAC,EAC5B,KAAK,EACL,UAAU,EACV,cAAc,EACd,QAAQ,EACR,KAAK,EACL,MAAM,EACN,MAAM,EACN,UAAU,EACV,SAAS,EACT,MAAM,EACN,QAAQ,EACR,YAAY,GACZ,EAAE,iBAAiB,+BAoPnB"}
@@ -1,7 +1,9 @@
1
- import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useCallback, useEffect, useState, useSyncExternalStore } from "react";
3
3
  import { FpsGraph } from "../components/fps-graph.js";
4
+ import { STOP_CANVAS_PROPAGATION } from "../stop-propagation.js";
4
5
  import { fmt, fpsColor, INLINE_INPUT, LABEL_STYLE, MINI_BUTTON, MINI_BUTTON_ACCENT, PANEL_BASE, SECTION_STYLE, } from "../styles.js";
6
+ const DEFAULT_BOARD_META = { name: null, isCloud: false };
5
7
  const DEFAULT_SYNC_SNAPSHOT = {
6
8
  state: "loading",
7
9
  shapeCount: 0,
@@ -32,10 +34,11 @@ function formatTimestamp(ts) {
32
34
  const d = new Date(ts);
33
35
  return `${d.getHours().toString().padStart(2, "0")}:${d.getMinutes().toString().padStart(2, "0")}:${d.getSeconds().toString().padStart(2, "0")}`;
34
36
  }
35
- export function GeneralPanel({ store, fpsCounter, pointerTracker, commands, tools, layers, shapes, syncStatus, events, viewport, activeToolId, }) {
37
+ export function GeneralPanel({ store, fpsCounter, pointerTracker, commands, tools, layers, shapes, syncStatus, boardMeta, events, viewport, activeToolId, }) {
36
38
  const fps = useSyncExternalStore(useCallback((cb) => fpsCounter.subscribe(cb), [fpsCounter]), () => fpsCounter.getSnapshot());
37
39
  const pointer = useSyncExternalStore(useCallback((cb) => pointerTracker.subscribe(cb), [pointerTracker]), () => pointerTracker.getSnapshot());
38
40
  const syncSnapshot = useSyncExternalStore(useCallback((cb) => (syncStatus ? syncStatus.subscribe(cb) : () => { }), [syncStatus]), () => syncStatus?.getSnapshot() ?? DEFAULT_SYNC_SNAPSHOT);
41
+ const board = useSyncExternalStore(useCallback((cb) => (boardMeta ? boardMeta.subscribe(cb) : () => { }), [boardMeta]), () => boardMeta?.getSnapshot() ?? DEFAULT_BOARD_META);
39
42
  const canUndo = commands.canUndo();
40
43
  const canRedo = commands.canRedo();
41
44
  const historySize = commands.getHistorySize();
@@ -64,13 +67,13 @@ export function GeneralPanel({ store, fpsCounter, pointerTracker, commands, tool
64
67
  }
65
68
  setEditingViewport(false);
66
69
  };
67
- return (_jsxs("div", { style: {
70
+ return (_jsxs("div", { ...STOP_CANVAS_PROPAGATION, style: {
68
71
  ...PANEL_BASE,
69
72
  position: "absolute",
70
73
  top: 8,
71
74
  right: 8,
72
75
  width: 220,
73
- }, children: [_jsxs("div", { style: SECTION_STYLE, children: [_jsxs("span", { style: { color: fpsColor(fps), fontWeight: "bold" }, children: [fps, " FPS"] }), _jsx(FpsGraph, { fpsCounter: fpsCounter })] }), _jsxs("div", { style: SECTION_STYLE, children: [_jsxs("div", { style: LABEL_STYLE, children: ["Viewport", " ", !editingViewport && (_jsx("button", { type: "button", style: MINI_BUTTON, onClick: startEditViewport, children: "edit" }))] }), editingViewport ? (_jsxs("div", { style: { display: "flex", gap: 3, alignItems: "center" }, children: [_jsx("input", { style: INLINE_INPUT, value: vpDraft.x, onChange: (e) => setVpDraft((d) => ({ ...d, x: e.target.value })), onKeyDown: (e) => e.key === "Enter" && commitViewport() }), _jsx("input", { style: INLINE_INPUT, value: vpDraft.y, onChange: (e) => setVpDraft((d) => ({ ...d, y: e.target.value })), onKeyDown: (e) => e.key === "Enter" && commitViewport() }), _jsx("input", { style: { ...INLINE_INPUT, width: 36 }, value: vpDraft.zoom, onChange: (e) => setVpDraft((d) => ({ ...d, zoom: e.target.value })), onKeyDown: (e) => e.key === "Enter" && commitViewport() }), _jsx("button", { type: "button", style: MINI_BUTTON_ACCENT, onClick: commitViewport, children: "OK" })] })) : (_jsxs("div", { children: ["x: ", fmt(viewport.x), " y: ", fmt(viewport.y), " zoom: ", fmt(viewport.zoom)] }))] }), _jsxs("div", { style: SECTION_STYLE, children: [_jsx("div", { style: LABEL_STYLE, children: "Active Tool" }), _jsx("div", { children: activeToolId })] }), _jsxs("div", { style: SECTION_STYLE, children: [_jsx("div", { style: LABEL_STYLE, children: "Pointer" }), _jsxs("div", { children: ["world: (", fmt(pointer.world.x), ", ", fmt(pointer.world.y), ")"] }), _jsxs("div", { children: ["screen: (", fmt(pointer.screen.x), ", ", fmt(pointer.screen.y), ")"] })] }), _jsxs("div", { style: SECTION_STYLE, children: [_jsxs("div", { style: LABEL_STYLE, children: ["History (", historyCursor + 1, "/", historySize, ")"] }), _jsxs("div", { style: { display: "flex", gap: 4 }, children: [_jsx("button", { type: "button", style: { ...MINI_BUTTON, opacity: canUndo ? 1 : 0.3 }, disabled: !canUndo, onClick: () => commands.undo(), children: "\u27F5 Undo" }), _jsx("button", { type: "button", style: { ...MINI_BUTTON, opacity: canRedo ? 1 : 0.3 }, disabled: !canRedo, onClick: () => commands.redo(), children: "Redo \u27F6" })] })] }), _jsxs("div", { style: SECTION_STYLE, children: [_jsx("div", { style: LABEL_STYLE, children: "Persistence (Yjs + IndexedDB)" }), _jsxs("div", { style: { display: "flex", alignItems: "center", gap: 5 }, children: [_jsx("span", { style: {
76
+ }, children: [_jsxs("div", { style: SECTION_STYLE, children: [_jsx("div", { style: LABEL_STYLE, children: "Board" }), _jsx("div", { style: { fontWeight: 600, color: "#e5e7eb", wordBreak: "break-word" }, children: board.name ?? "(untitled)" }), _jsxs("div", { style: { color: "#888" }, children: [board.isCloud ? "☁ Cloud" : "🖥 Local", board.id ? ` · ${board.id}` : ""] })] }), _jsxs("div", { style: SECTION_STYLE, children: [_jsxs("span", { style: { color: fpsColor(fps), fontWeight: "bold" }, children: [fps, " FPS"] }), _jsx(FpsGraph, { fpsCounter: fpsCounter })] }), _jsxs("div", { style: SECTION_STYLE, children: [_jsxs("div", { style: LABEL_STYLE, children: ["Viewport", " ", !editingViewport && (_jsx("button", { type: "button", style: MINI_BUTTON, onClick: startEditViewport, children: "edit" }))] }), editingViewport ? (_jsxs("div", { style: { display: "flex", gap: 3, alignItems: "center" }, children: [_jsx("input", { style: INLINE_INPUT, value: vpDraft.x, onChange: (e) => setVpDraft((d) => ({ ...d, x: e.target.value })), onKeyDown: (e) => e.key === "Enter" && commitViewport() }), _jsx("input", { style: INLINE_INPUT, value: vpDraft.y, onChange: (e) => setVpDraft((d) => ({ ...d, y: e.target.value })), onKeyDown: (e) => e.key === "Enter" && commitViewport() }), _jsx("input", { style: { ...INLINE_INPUT, width: 36 }, value: vpDraft.zoom, onChange: (e) => setVpDraft((d) => ({ ...d, zoom: e.target.value })), onKeyDown: (e) => e.key === "Enter" && commitViewport() }), _jsx("button", { type: "button", style: MINI_BUTTON_ACCENT, onClick: commitViewport, children: "OK" })] })) : (_jsxs("div", { children: ["x: ", fmt(viewport.x), " y: ", fmt(viewport.y), " zoom: ", fmt(viewport.zoom)] }))] }), _jsxs("div", { style: SECTION_STYLE, children: [_jsx("div", { style: LABEL_STYLE, children: "Active Tool" }), _jsx("div", { children: activeToolId })] }), _jsxs("div", { style: SECTION_STYLE, children: [_jsx("div", { style: LABEL_STYLE, children: "Pointer" }), _jsxs("div", { children: ["world: (", fmt(pointer.world.x), ", ", fmt(pointer.world.y), ")"] }), _jsxs("div", { children: ["screen: (", fmt(pointer.screen.x), ", ", fmt(pointer.screen.y), ")"] })] }), _jsxs("div", { style: SECTION_STYLE, children: [_jsxs("div", { style: LABEL_STYLE, children: ["History (", historyCursor + 1, "/", historySize, ")"] }), _jsxs("div", { style: { display: "flex", gap: 4 }, children: [_jsx("button", { type: "button", style: { ...MINI_BUTTON, opacity: canUndo ? 1 : 0.3 }, disabled: !canUndo, onClick: () => commands.undo(), children: "\u27F5 Undo" }), _jsx("button", { type: "button", style: { ...MINI_BUTTON, opacity: canRedo ? 1 : 0.3 }, disabled: !canRedo, onClick: () => commands.redo(), children: "Redo \u27F6" })] })] }), _jsxs("div", { style: SECTION_STYLE, children: [_jsx("div", { style: LABEL_STYLE, children: "Persistence (Yjs + IndexedDB)" }), _jsxs("div", { style: { display: "flex", alignItems: "center", gap: 5 }, children: [_jsx("span", { style: {
74
77
  display: "inline-block",
75
78
  width: 7,
76
79
  height: 7,
@@ -1 +1 @@
1
- {"version":3,"file":"general-panel.js","sourceRoot":"","sources":["../../src/panels/general-panel.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"general-panel.js","sourceRoot":"","sources":["../../src/panels/general-panel.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type { PresenceTrackerLike } from "../presence-types.js";
2
+ /**
3
+ * オンラインメンバーのアバター一覧。旧 TopBar の PresencePill を Control HUD の
4
+ * 独立パネルへ移したもの。`globalThis.__usketchPresence`(app.tsx が供給)を購読し、
5
+ * 他メンバーがいる時だけ表示する。General パネルの左隣(右上クラスタ)に配置。
6
+ */
7
+ export declare function MembersPanel({ presence }: {
8
+ presence?: PresenceTrackerLike;
9
+ }): import("react").JSX.Element | null;
10
+ //# sourceMappingURL=members-panel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"members-panel.d.ts","sourceRoot":"","sources":["../../src/panels/members-panel.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAoB,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAiBlF;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,CAAC,EAAE,mBAAmB,CAAA;CAAE,sCAqE5E"}
@@ -0,0 +1,59 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useCallback, useSyncExternalStore } from "react";
3
+ import { STOP_CANVAS_PROPAGATION } from "../stop-propagation.js";
4
+ import { PANEL_BASE, TEXT_MUTED } from "../styles.js";
5
+ const EMPTY = { members: [] };
6
+ const STATUS_DOT = {
7
+ active: "#22c55e",
8
+ away: "#eab308",
9
+ busy: "#ef4444",
10
+ presenting: "#3b82f6",
11
+ };
12
+ function initial(name) {
13
+ return name?.[0]?.toUpperCase() ?? "?";
14
+ }
15
+ /**
16
+ * オンラインメンバーのアバター一覧。旧 TopBar の PresencePill を Control HUD の
17
+ * 独立パネルへ移したもの。`globalThis.__usketchPresence`(app.tsx が供給)を購読し、
18
+ * 他メンバーがいる時だけ表示する。General パネルの左隣(右上クラスタ)に配置。
19
+ */
20
+ export function MembersPanel({ presence }) {
21
+ const subscribe = useCallback((cb) => presence?.subscribe(cb) ?? (() => { }), [presence]);
22
+ const getSnapshot = useCallback(() => presence?.getSnapshot() ?? EMPTY, [presence]);
23
+ const snap = useSyncExternalStore(subscribe, getSnapshot, getSnapshot);
24
+ const members = snap.members;
25
+ // 他メンバーがいなければ非表示(solo 時は出さない)。
26
+ if (members.length === 0)
27
+ return null;
28
+ return (_jsxs("div", { ...STOP_CANVAS_PROPAGATION, style: {
29
+ ...PANEL_BASE,
30
+ position: "absolute",
31
+ top: 8,
32
+ right: 238,
33
+ width: 180,
34
+ }, children: [_jsxs("div", { style: { color: TEXT_MUTED, marginBottom: 6 }, children: ["Members (", members.length, ")"] }), _jsx("div", { style: { display: "flex", flexDirection: "column", gap: 4 }, children: members.map((m) => (_jsxs("div", { style: { display: "flex", alignItems: "center", gap: 6 }, children: [_jsx("span", { style: {
35
+ width: 18,
36
+ height: 18,
37
+ borderRadius: "50%",
38
+ background: m.color,
39
+ color: "#fff",
40
+ fontSize: 10,
41
+ fontWeight: 700,
42
+ display: "inline-flex",
43
+ alignItems: "center",
44
+ justifyContent: "center",
45
+ flexShrink: 0,
46
+ }, children: initial(m.name) }), _jsx("span", { style: {
47
+ flex: 1,
48
+ overflow: "hidden",
49
+ textOverflow: "ellipsis",
50
+ whiteSpace: "nowrap",
51
+ }, children: m.name }), _jsx("span", { title: m.status ?? "active", style: {
52
+ width: 8,
53
+ height: 8,
54
+ borderRadius: "50%",
55
+ background: STATUS_DOT[m.status ?? "active"] ?? STATUS_DOT.active,
56
+ flexShrink: 0,
57
+ } })] }, m.clientId))) })] }));
58
+ }
59
+ //# sourceMappingURL=members-panel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"members-panel.js","sourceRoot":"","sources":["../../src/panels/members-panel.tsx"],"names":[],"mappings":"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"}
@@ -9,7 +9,11 @@ interface ShapesPanelProps {
9
9
  /** Shapes that exist locally but the server hasn't acknowledged. Empty if the
10
10
  * sync layer doesn't track divergence. */
11
11
  unconfirmedShapeIds?: ReadonlySet<string>;
12
+ /** Left offset so the panel clears the Controls dock. Default 8. */
13
+ offsetLeft?: number;
14
+ /** Render inline (inside the Controls dock section) instead of a floating panel. */
15
+ docked?: boolean;
12
16
  }
13
- export declare function ShapesPanel({ store, commands, shapes, selection, registry, onHoverShape, unconfirmedShapeIds, }: ShapesPanelProps): import("react").JSX.Element;
17
+ export declare function ShapesPanel({ store, commands, shapes, selection, registry, onHoverShape, unconfirmedShapeIds, offsetLeft, docked, }: ShapesPanelProps): import("react").JSX.Element;
14
18
  export {};
15
19
  //# sourceMappingURL=shapes-panel.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"shapes-panel.d.ts","sourceRoot":"","sources":["../../src/panels/shapes-panel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAenG,UAAU,gBAAgB;IACzB,KAAK,EAAE,UAAU,CAAC;IAClB,QAAQ,EAAE,eAAe,CAAC;IAC1B,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACvC,SAAS,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC/B,QAAQ,EAAE,aAAa,CAAC;IACxB,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAC1C;8CAC0C;IAC1C,mBAAmB,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CAC1C;AA+DD,wBAAgB,WAAW,CAAC,EAC3B,KAAK,EACL,QAAQ,EACR,MAAM,EACN,SAAS,EACT,QAAQ,EACR,YAAY,EACZ,mBAAmB,GACnB,EAAE,gBAAgB,+BAqJlB"}
1
+ {"version":3,"file":"shapes-panel.d.ts","sourceRoot":"","sources":["../../src/panels/shapes-panel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAenG,UAAU,gBAAgB;IACzB,KAAK,EAAE,UAAU,CAAC;IAClB,QAAQ,EAAE,eAAe,CAAC;IAC1B,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACvC,SAAS,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC/B,QAAQ,EAAE,aAAa,CAAC;IACxB,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAC1C;8CAC0C;IAC1C,mBAAmB,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC1C,oEAAoE;IACpE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oFAAoF;IACpF,MAAM,CAAC,EAAE,OAAO,CAAC;CACjB;AA+DD,wBAAgB,WAAW,CAAC,EAC3B,KAAK,EACL,QAAQ,EACR,MAAM,EACN,SAAS,EACT,QAAQ,EACR,YAAY,EACZ,mBAAmB,EACnB,UAAc,EACd,MAAc,GACd,EAAE,gBAAgB,+BA8JlB"}