@floegence/floe-webapp-core 0.45.0 → 0.46.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.
@@ -1,579 +1,671 @@
1
- import { use as j, spread as K, mergeProps as G, insert as v, createComponent as l, Portal as Z, addEventListener as J, template as R, delegateEvents as Q } from "solid-js/web";
2
- import { createSignal as W, createMemo as w, untrack as h, createEffect as k, onCleanup as y, Show as ee } from "solid-js";
3
- import { clientToCanvasWorld as T } from "../ui/canvasGeometry.js";
4
- import { createUIFirstSelection as te } from "../../utils/uiFirstSelection.js";
5
- import { WorkbenchCanvas as ne } from "./WorkbenchCanvas.js";
6
- import { WorkbenchContextMenu as oe } from "./WorkbenchContextMenu.js";
7
- import { WorkbenchDock as re } from "./WorkbenchFilterBar.js";
8
- import { WorkbenchHud as ie } from "./WorkbenchHud.js";
9
- import { WorkbenchLockButton as ae } from "./WorkbenchLockButton.js";
10
- import { installWorkbenchContextMenuDismissListeners as ce } from "./workbenchContextMenuDismiss.js";
11
- import { createContextMenuPosition as de, WORKBENCH_CONTEXT_MENU_WIDTH_PX as ue, estimateContextMenuHeight as se } from "./workbenchHelpers.js";
12
- import { resolveWorkbenchWidgetPlacementPreview as le, resolveWorkbenchToolPlacementPreview as ge } from "./workbenchPlacement.js";
13
- import { useWorkbenchModel as we } from "./useWorkbenchModel.js";
14
- import { resolveWorkbenchInteractionAdapter as me } from "./workbenchInteractionAdapter.js";
15
- import { SURFACE_PORTAL_LAYER_ATTR as fe, DIALOG_SURFACE_HOST_ATTR as ve } from "../ui/dialogSurfaceScope.js";
16
- var ke = /* @__PURE__ */ R("<div class=workbench-menu-backdrop data-floe-workbench-boundary=true>"), Ae = /* @__PURE__ */ R("<div><div class=workbench-surface__body data-floe-workbench-canvas-frame=true>");
17
- const ye = "F1";
18
- function B(i) {
19
- if (i)
1
+ import { use as ct, spread as at, mergeProps as dt, insert as C, createComponent as f, Portal as st, addEventListener as ut, template as X, delegateEvents as lt } from "solid-js/web";
2
+ import { createSignal as I, createMemo as m, untrack as b, createEffect as h, onCleanup as W, Show as gt } from "solid-js";
3
+ import { clientToCanvasWorld as O } from "../ui/canvasGeometry.js";
4
+ import { createUIFirstSelection as wt } from "../../utils/uiFirstSelection.js";
5
+ import { WorkbenchCanvas as ft } from "./WorkbenchCanvas.js";
6
+ import { WorkbenchContextMenu as kt } from "./WorkbenchContextMenu.js";
7
+ import { WorkbenchDock as mt } from "./WorkbenchFilterBar.js";
8
+ import { WorkbenchHud as vt } from "./WorkbenchHud.js";
9
+ import { WorkbenchLockButton as yt } from "./WorkbenchLockButton.js";
10
+ import { installWorkbenchContextMenuDismissListeners as At } from "./workbenchContextMenuDismiss.js";
11
+ import { createContextMenuPosition as Ct, WORKBENCH_CONTEXT_MENU_WIDTH_PX as ht, estimateContextMenuHeight as bt } from "./workbenchHelpers.js";
12
+ import { resolveWorkbenchWidgetPlacementPreview as Wt, resolveWorkbenchToolPlacementPreview as St } from "./workbenchPlacement.js";
13
+ import { useWorkbenchModel as pt } from "./useWorkbenchModel.js";
14
+ import { sortWorkbenchDockFocusCandidates as xt, workbenchDockFocusCandidateKey as R, resolveWorkbenchDockFocusCycle as It } from "./workbenchDockFocusCycle.js";
15
+ import { resolveWorkbenchInteractionAdapter as Dt } from "./workbenchInteractionAdapter.js";
16
+ import { SURFACE_PORTAL_LAYER_ATTR as Mt, DIALOG_SURFACE_HOST_ATTR as Lt } from "../ui/dialogSurfaceScope.js";
17
+ var Tt = /* @__PURE__ */ X("<div class=workbench-menu-backdrop data-floe-workbench-boundary=true>"), Ft = /* @__PURE__ */ X("<div><div class=workbench-surface__body data-floe-workbench-canvas-frame=true>");
18
+ const Bt = "F1";
19
+ function N(c) {
20
+ if (c)
20
21
  try {
21
- i.focus({
22
+ c.focus({
22
23
  preventScroll: !0
23
24
  });
24
25
  } catch {
25
- i.focus();
26
+ c.focus();
26
27
  }
27
28
  }
28
- function Fe(i) {
29
- const t = we({
30
- state: () => i.state(),
31
- setState: (e) => i.setState(e),
32
- widgetDefinitions: () => i.widgetDefinitions,
33
- textAnnotationDefaults: () => i.textAnnotationDefaults,
34
- backgroundLayerDefaults: () => i.backgroundLayerDefaults,
29
+ function Zt(c) {
30
+ const e = pt({
31
+ state: () => c.state(),
32
+ setState: (t) => c.setState(t),
33
+ widgetDefinitions: () => c.widgetDefinitions,
34
+ textAnnotationDefaults: () => c.textAnnotationDefaults,
35
+ backgroundLayerDefaults: () => c.backgroundLayerDefaults,
35
36
  onClose: () => {
36
37
  }
37
- }), u = te({
38
- committed: t.selectedWidgetId,
38
+ }), u = wt({
39
+ committed: e.selectedWidgetId,
39
40
  commitEqualRequests: !0,
40
- commit: (e, n) => {
41
- if (!e) {
42
- t.canvas.clearSelection();
41
+ commit: (t, n) => {
42
+ if (!t) {
43
+ e.canvas.clearSelection();
43
44
  return;
44
45
  }
45
- t.canvas.selectWidget(e), n?.bringToFront && t.canvas.commitFront(e);
46
+ e.canvas.selectWidget(t), n?.bringToFront && e.canvas.commitFront(t);
46
47
  },
47
- onEvent: (e) => i.onWidgetActivationEvent?.(e)
48
- }), E = () => i.widgetActivationMode === "after-paint" ? u.visual() : t.selectedWidgetId(), O = () => {
49
- if (i.widgetActivationMode !== "after-paint" || !u.pending())
50
- return t.selectedObject();
51
- const e = u.visual();
52
- return e ? {
48
+ onEvent: (t) => c.onWidgetActivationEvent?.(t)
49
+ }), Y = () => c.widgetActivationMode === "after-paint" ? u.visual() : e.selectedWidgetId(), S = () => {
50
+ if (c.widgetActivationMode !== "after-paint" || !u.pending())
51
+ return e.selectedObject();
52
+ const t = u.visual();
53
+ return t ? {
53
54
  kind: "widget",
54
- id: e
55
+ id: t
55
56
  } : null;
56
- }, F = (e) => {
57
- if (i.widgetActivationMode === "after-paint") {
58
- if (u.pending() && u.visual() === e) return;
59
- u.request(e, {
57
+ }, q = (t) => {
58
+ if (c.widgetActivationMode === "after-paint") {
59
+ if (u.pending() && u.visual() === t) return;
60
+ u.request(t, {
60
61
  bringToFront: !1
61
62
  });
62
63
  return;
63
64
  }
64
- t.canvas.selectWidget(e);
65
- }, N = (e) => {
66
- if (i.widgetActivationMode === "after-paint") {
67
- if (u.pending() && u.visual() === e) return;
68
- u.request(e, {
65
+ e.canvas.selectWidget(t);
66
+ }, D = (t) => {
67
+ if (c.widgetActivationMode === "after-paint") {
68
+ if (u.pending() && u.visual() === t) return;
69
+ u.request(t, {
69
70
  bringToFront: !0
70
71
  });
71
72
  return;
72
73
  }
73
- t.canvas.selectWidget(e), t.canvas.commitFront(e);
74
- }, [s, _] = W(null), [P, X] = W(null), c = w(() => me(i.interactionAdapter)), [S, g] = W(h(() => c().createInitialInputOwner())), p = w(() => {
75
- const e = i.launcherWidgetTypes;
76
- return !e || e.length <= 0 ? null : new Set(e);
77
- }), Y = w(() => {
78
- const e = t.widgetDefinitions(), n = p();
79
- return n ? e.filter((o) => n.has(o.type)) : e;
80
- }), b = w(() => {
81
- const e = t.contextMenu.state(), n = t.contextMenu.items(), o = p(), r = o ? n.filter((f) => {
82
- if (f.kind !== "action")
74
+ e.canvas.selectWidget(t), e.canvas.commitFront(t);
75
+ }, [l, P] = I(null), [z, V] = I(null), d = m(() => Dt(c.interactionAdapter)), [M, w] = I(b(() => d().createInitialInputOwner())), L = m(() => {
76
+ const t = c.launcherWidgetTypes;
77
+ return !t || t.length <= 0 ? null : new Set(t);
78
+ }), H = m(() => {
79
+ const t = e.widgetDefinitions(), n = L();
80
+ return n ? t.filter((o) => n.has(o.type)) : t;
81
+ }), T = m(() => {
82
+ const t = e.contextMenu.state(), n = e.contextMenu.items(), o = L(), r = o ? n.filter((s) => {
83
+ if (s.kind !== "action")
83
84
  return !0;
84
- const L = /^add-(.+)$/.exec(String(f.id ?? ""));
85
- return L ? o.has(L[1]) : !0;
85
+ const A = /^add-(.+)$/.exec(String(s.id ?? ""));
86
+ return A ? o.has(A[1]) : !0;
86
87
  }) : n;
87
- if (!e || !i.resolveContextMenuItems)
88
+ if (!t || !c.resolveContextMenuItems)
88
89
  return r;
89
- const a = e.target?.kind === "widget" ? e.target.id : !e.target && e.widgetId ? e.widgetId : null, d = a ? t.queries.findWidgetById(a) : null;
90
- return i.resolveContextMenuItems({
91
- menu: e,
90
+ const i = t.target?.kind === "widget" ? t.target.id : !t.target && t.widgetId ? t.widgetId : null, a = i ? e.queries.findWidgetById(i) : null;
91
+ return c.resolveContextMenuItems({
92
+ menu: t,
92
93
  items: r,
93
- widgets: t.widgets(),
94
- widget: d,
95
- closeMenu: t.contextMenu.close
94
+ widgets: e.widgets(),
95
+ widget: a,
96
+ closeMenu: e.contextMenu.close
96
97
  });
97
- }), D = w(() => {
98
- const e = t.contextMenu.state();
99
- if (!e) return;
100
- const n = b(), o = n.filter((a) => a.kind === "action").length, r = n.filter((a) => a.kind === "separator").length;
101
- return de({
102
- clientX: e.clientX,
103
- clientY: e.clientY,
104
- menuWidth: ue,
105
- menuHeight: se(o, r)
98
+ }), F = m(() => {
99
+ const t = e.contextMenu.state();
100
+ if (!t) return;
101
+ const n = T(), o = n.filter((i) => i.kind === "action").length, r = n.filter((i) => i.kind === "separator").length;
102
+ return Ct({
103
+ clientX: t.clientX,
104
+ clientY: t.clientY,
105
+ menuWidth: ht,
106
+ menuHeight: bt(o, r)
106
107
  });
107
- }), I = (e, n, o) => {
108
- const r = c(), a = r.findWidgetRoot(e), d = r.readWidgetId(a);
109
- if (d) {
110
- if (t.queries.findStickyNoteById(d)) {
111
- g(r.createCanvasInputOwner(n === "focus" ? "background_focus" : "background_pointer"));
108
+ }), B = (t, n, o) => {
109
+ const r = d(), i = r.findWidgetRoot(t), a = r.readWidgetId(i);
110
+ if (a) {
111
+ if (e.queries.findStickyNoteById(a)) {
112
+ w(r.createCanvasInputOwner(n === "focus" ? "background_focus" : "background_pointer"));
112
113
  return;
113
114
  }
114
- g(r.createWidgetInputOwner(d, n));
115
+ w(r.createWidgetInputOwner(a, n));
115
116
  return;
116
117
  }
117
- const f = s();
118
- f && e instanceof Node && f.contains(e) && g(r.createCanvasInputOwner(o));
119
- }, M = (e = "selection_cleared") => {
120
- const n = c(), o = s();
121
- t.selection.clear(), g(n.createCanvasInputOwner(e)), queueMicrotask(() => {
118
+ const s = l();
119
+ s && t instanceof Node && s.contains(t) && w(r.createCanvasInputOwner(o));
120
+ }, _ = (t = "selection_cleared") => {
121
+ const n = d(), o = l();
122
+ e.selection.clear(), w(n.createCanvasInputOwner(t)), queueMicrotask(() => {
122
123
  if (!o || typeof document > "u") return;
123
124
  const r = document.activeElement;
124
125
  if (!(r instanceof HTMLElement) || !o.contains(r)) {
125
- B(o);
126
+ N(o);
126
127
  return;
127
128
  }
128
- const a = n.findWidgetRoot(r);
129
- B(o), a && document.activeElement === r && r.isConnected && r.blur();
129
+ const i = n.findWidgetRoot(r);
130
+ N(o), i && document.activeElement === r && r.isConnected && r.blur();
130
131
  });
131
- }, A = () => {
132
- const e = s()?.querySelector('[data-floe-workbench-canvas-frame="true"]'), n = t.viewport(), o = e?.getBoundingClientRect(), r = o?.width ?? 0, a = o?.height ?? 0;
132
+ }, v = () => {
133
+ const t = l()?.querySelector('[data-floe-workbench-canvas-frame="true"]'), n = e.viewport(), o = t?.getBoundingClientRect(), r = o?.width ?? 0, i = o?.height ?? 0;
133
134
  return {
134
135
  worldX: r > 0 ? (r / 2 - n.x) / n.scale : 240,
135
- worldY: a > 0 ? (a / 2 - n.y) / n.scale : 180
136
+ worldY: i > 0 ? (i / 2 - n.y) / n.scale : 180
136
137
  };
137
- }, m = (e) => {
138
- const n = h(c), o = h(s);
138
+ }, k = (t) => {
139
+ const n = b(d), o = b(l);
139
140
  queueMicrotask(() => {
140
- n.focusWidgetElement(o, e), g(n.createWidgetInputOwner(e, "activation"));
141
+ n.focusWidgetElement(o, t), w(n.createWidgetInputOwner(t, "activation"));
142
+ });
143
+ };
144
+ let y = null;
145
+ const U = (t) => `${t.kind}:${String(t.id)}`, g = (t, n) => ({
146
+ kind: t,
147
+ id: n.id,
148
+ x: n.x,
149
+ y: n.y,
150
+ width: n.width,
151
+ height: n.height,
152
+ createdAtUnixMs: n.created_at_unix_ms
153
+ }), p = (t) => t.kind === "widget" ? e.widgets().filter((n) => n.type === t.id).map((n) => g("widget", n)) : t.id === "sticky-note" ? e.stickyNotes().map((n) => g("sticky_note", n)) : t.id === "text" ? e.annotations().map((n) => g("annotation", n)) : t.id === "background-region" ? e.backgroundLayers().map((n) => g("background_layer", n)) : [], $ = (t) => {
154
+ const n = b(l);
155
+ queueMicrotask(() => {
156
+ if (!n) return;
157
+ const o = t.kind === "sticky_note" ? "sticky" : t.kind === "annotation" ? "text" : t.kind === "background_layer" ? "region" : null;
158
+ if (!o) return;
159
+ const r = [...n.querySelectorAll("[data-wb-object-id]")].find((A) => A.getAttribute("data-wb-object-kind") === o && A.getAttribute("data-wb-object-id") === t.id);
160
+ if (!(r instanceof HTMLElement)) return;
161
+ const i = r.querySelector('[data-wb-part="content"]'), s = i instanceof HTMLElement && i.getAttribute("contenteditable") !== null && i.getAttribute("contenteditable") !== "false" ? i : r;
162
+ s.hasAttribute("tabindex") || (s.tabIndex = -1);
163
+ try {
164
+ s.focus({
165
+ preventScroll: !0
166
+ });
167
+ } catch {
168
+ s.focus();
169
+ }
170
+ w(d().createCanvasInputOwner("background_focus"));
171
+ });
172
+ }, j = (t) => {
173
+ e.navigation.centerOnWidget({
174
+ id: t.id,
175
+ type: "dock-focus-target",
176
+ title: "",
177
+ x: t.x,
178
+ y: t.y,
179
+ width: t.width,
180
+ height: t.height,
181
+ z_index: 0,
182
+ created_at_unix_ms: t.createdAtUnixMs
183
+ });
184
+ }, K = (t) => {
185
+ if (t.kind === "widget") {
186
+ const n = e.queries.findWidgetById(t.id);
187
+ if (!n) return;
188
+ D(n.id), e.navigation.centerOnWidget(n), k(n.id);
189
+ return;
190
+ }
191
+ t.kind === "sticky_note" ? e.canvas.selectStickyNote(t.id) : t.kind === "annotation" ? e.canvas.selectAnnotation(t.id) : e.canvas.selectBackgroundLayer(t.id), j(t), $(t);
192
+ }, G = (t) => {
193
+ const n = v();
194
+ if (t.kind === "widget") {
195
+ const o = e.widgetActions.addWidgetAtWorldCenter(t.id, n.worldX, n.worldY);
196
+ return o ? g("widget", o) : null;
197
+ }
198
+ return t.id === "sticky-note" ? g("sticky_note", e.widgetActions.addStickyNoteAtCursor(n.worldX, n.worldY)) : t.id === "text" ? g("annotation", e.widgetActions.addTextAnnotationAtCursor(n.worldX, n.worldY)) : t.id === "background-region" ? g("background_layer", e.widgetActions.addBackgroundLayerAtCursor(n.worldX, n.worldY)) : null;
199
+ }, Z = (t) => {
200
+ let n = p(t), o = S();
201
+ if (n.length === 0) {
202
+ const i = G(t);
203
+ if (!i) {
204
+ y = null;
205
+ return;
206
+ }
207
+ n = p(t), o = {
208
+ kind: i.kind,
209
+ id: i.id
210
+ };
211
+ }
212
+ const r = It({
213
+ dockItemKey: U(t),
214
+ candidates: n,
215
+ selectedObject: o,
216
+ session: y
141
217
  });
142
- }, q = (e) => {
143
- const n = t.navigation.fitWidget(e);
144
- m(n.id);
145
- }, V = (e) => {
146
- const n = t.navigation.overviewWidget(e);
147
- m(n.id);
218
+ y = r.session, r.target && K(r.target);
219
+ }, J = (t) => {
220
+ const n = xt(p(t)), o = S(), r = o ? R(o) : null, i = r ? n.findIndex((a) => R(a) === r) : -1;
221
+ return {
222
+ count: n.length,
223
+ currentIndex: i >= 0 ? i : null,
224
+ active: i >= 0
225
+ };
226
+ }, Q = (t) => {
227
+ y?.dockItemKey !== `${t.kind}:${t.id}` && (y = null);
228
+ }, tt = (t) => {
229
+ const n = e.navigation.fitWidget(t);
230
+ k(n.id);
231
+ }, et = (t) => {
232
+ const n = e.navigation.overviewWidget(t);
233
+ k(n.id);
148
234
  };
149
- k(() => {
150
- i.onApiReady?.({
151
- ensureWidget: (e, n) => t.widgetActions.ensureWidget(e, n) ?? null,
152
- createWidget: (e, n) => {
153
- const o = A(), r = t.widgetActions.addWidgetAtWorldCenter(e, n?.worldX ?? o.worldX, n?.worldY ?? o.worldY) ?? null;
154
- return r && n?.centerViewport !== !1 && t.navigation.centerOnWidget(r), r;
155
- },
156
- createTextAnnotation: (e) => {
157
- const n = A();
158
- return t.widgetActions.addTextAnnotationAtCursor(e?.worldX ?? n.worldX, e?.worldY ?? n.worldY) ?? null;
159
- },
160
- createStickyNote: (e) => {
161
- const n = A();
162
- return t.widgetActions.addStickyNoteAtCursor(e?.worldX ?? n.worldX, e?.worldY ?? n.worldY) ?? null;
163
- },
164
- createBackgroundLayer: (e) => {
165
- const n = A();
166
- return t.widgetActions.addBackgroundLayerAtCursor(e?.worldX ?? n.worldX, e?.worldY ?? n.worldY) ?? null;
167
- },
168
- clearSelection: () => M("selection_cleared"),
169
- focusWidget: (e, n) => {
170
- const o = t.navigation.focusWidget(e, n);
171
- return m(o.id), o;
172
- },
173
- fitWidget: (e) => {
174
- const n = t.navigation.fitWidget(e);
175
- return m(n.id), n;
176
- },
177
- overviewWidget: (e) => {
178
- const n = t.navigation.overviewWidget(e);
179
- return m(n.id), n;
180
- },
181
- findWidgetByType: (e) => t.queries.findWidgetByType(e),
182
- findWidgetById: (e) => t.queries.findWidgetById(e),
183
- findStickyNoteById: (e) => t.queries.findStickyNoteById(e),
184
- findAnnotationById: (e) => t.queries.findAnnotationById(e),
185
- findBackgroundLayerById: (e) => t.queries.findBackgroundLayerById(e),
186
- updateWidgetTitle: (e, n) => {
187
- const o = String(e ?? "").trim(), r = String(n ?? "").trim();
188
- !o || !r || i.setState((a) => ({
189
- ...a,
190
- widgets: a.widgets.map((d) => d.id === o && d.title !== r ? {
191
- ...d,
235
+ h(() => {
236
+ c.onApiReady?.({
237
+ ensureWidget: (t, n) => e.widgetActions.ensureWidget(t, n) ?? null,
238
+ createWidget: (t, n) => {
239
+ const o = v(), r = e.widgetActions.addWidgetAtWorldCenter(t, n?.worldX ?? o.worldX, n?.worldY ?? o.worldY) ?? null;
240
+ return r && n?.centerViewport !== !1 && e.navigation.centerOnWidget(r), r;
241
+ },
242
+ createTextAnnotation: (t) => {
243
+ const n = v();
244
+ return e.widgetActions.addTextAnnotationAtCursor(t?.worldX ?? n.worldX, t?.worldY ?? n.worldY) ?? null;
245
+ },
246
+ createStickyNote: (t) => {
247
+ const n = v();
248
+ return e.widgetActions.addStickyNoteAtCursor(t?.worldX ?? n.worldX, t?.worldY ?? n.worldY) ?? null;
249
+ },
250
+ createBackgroundLayer: (t) => {
251
+ const n = v();
252
+ return e.widgetActions.addBackgroundLayerAtCursor(t?.worldX ?? n.worldX, t?.worldY ?? n.worldY) ?? null;
253
+ },
254
+ clearSelection: () => _("selection_cleared"),
255
+ focusWidget: (t, n) => {
256
+ const o = e.navigation.focusWidget(t, n);
257
+ return k(o.id), o;
258
+ },
259
+ fitWidget: (t) => {
260
+ const n = e.navigation.fitWidget(t);
261
+ return k(n.id), n;
262
+ },
263
+ overviewWidget: (t) => {
264
+ const n = e.navigation.overviewWidget(t);
265
+ return k(n.id), n;
266
+ },
267
+ findWidgetByType: (t) => e.queries.findWidgetByType(t),
268
+ findWidgetById: (t) => e.queries.findWidgetById(t),
269
+ findStickyNoteById: (t) => e.queries.findStickyNoteById(t),
270
+ findAnnotationById: (t) => e.queries.findAnnotationById(t),
271
+ findBackgroundLayerById: (t) => e.queries.findBackgroundLayerById(t),
272
+ updateWidgetTitle: (t, n) => {
273
+ const o = String(t ?? "").trim(), r = String(n ?? "").trim();
274
+ !o || !r || c.setState((i) => ({
275
+ ...i,
276
+ widgets: i.widgets.map((a) => a.id === o && a.title !== r ? {
277
+ ...a,
192
278
  title: r
193
- } : d)
279
+ } : a)
194
280
  }));
195
281
  },
196
- updateStickyNote: (e, n) => t.widgetActions.updateStickyNote(e, n),
197
- updateTextAnnotation: (e, n) => t.widgetActions.updateTextAnnotation(e, n),
198
- updateBackgroundLayer: (e, n) => t.widgetActions.updateBackgroundLayer(e, n),
199
- deleteStickyNote: (e) => t.widgetActions.deleteStickyNote(e),
200
- deleteAnnotation: (e) => t.widgetActions.deleteAnnotation(e),
201
- deleteBackgroundLayer: (e) => t.widgetActions.deleteBackgroundLayer(e)
202
- }), y(() => {
203
- i.onApiReady?.(null);
282
+ updateStickyNote: (t, n) => e.widgetActions.updateStickyNote(t, n),
283
+ updateTextAnnotation: (t, n) => e.widgetActions.updateTextAnnotation(t, n),
284
+ updateBackgroundLayer: (t, n) => e.widgetActions.updateBackgroundLayer(t, n),
285
+ deleteStickyNote: (t) => e.widgetActions.deleteStickyNote(t),
286
+ deleteAnnotation: (t) => e.widgetActions.deleteAnnotation(t),
287
+ deleteBackgroundLayer: (t) => e.widgetActions.deleteBackgroundLayer(t)
288
+ }), W(() => {
289
+ c.onApiReady?.(null);
204
290
  });
205
291
  });
206
- const x = () => i.lockShortcut === void 0 ? ye : i.lockShortcut;
207
- k(() => {
208
- if (typeof window > "u" || !t.contextMenu.state()) return;
209
- const e = ce({
292
+ const E = () => c.lockShortcut === void 0 ? Bt : c.lockShortcut;
293
+ h(() => {
294
+ if (typeof window > "u" || !e.contextMenu.state()) return;
295
+ const t = At({
210
296
  ownerWindow: window,
211
- onDismiss: t.contextMenu.close
297
+ onDismiss: e.contextMenu.close
212
298
  });
213
- y(() => e());
214
- }), k(() => {
215
- const e = S();
216
- if (e.kind !== "widget") return;
217
- t.widgets().some((o) => o.id === e.widgetId) || g(c().createCanvasInputOwner("widget_removed"));
218
- }), k(() => {
219
- const e = s();
220
- if (!e) return;
299
+ W(() => t());
300
+ }), h(() => {
301
+ const t = M();
302
+ if (t.kind !== "widget") return;
303
+ e.widgets().some((o) => o.id === t.widgetId) || w(d().createCanvasInputOwner("widget_removed"));
304
+ }), h(() => {
305
+ const t = l();
306
+ if (!t) return;
221
307
  const n = (r) => {
222
- I(r.target, "pointer", "background_pointer");
308
+ B(r.target, "pointer", "background_pointer");
223
309
  }, o = (r) => {
224
- I(r.target, "focus", "background_focus");
310
+ B(r.target, "focus", "background_focus");
225
311
  };
226
- e.addEventListener("pointerdown", n, !0), e.addEventListener("focusin", o), y(() => {
227
- e.removeEventListener("pointerdown", n, !0), e.removeEventListener("focusin", o);
312
+ t.addEventListener("pointerdown", n, !0), t.addEventListener("focusin", o), W(() => {
313
+ t.removeEventListener("pointerdown", n, !0), t.removeEventListener("focusin", o);
228
314
  });
229
- }), k(() => {
230
- if (i.enableKeyboard === !1 || typeof document > "u") return;
231
- const e = x(), n = (o) => {
315
+ }), h(() => {
316
+ if (c.enableKeyboard === !1 || typeof document > "u") return;
317
+ const t = E(), n = (o) => {
232
318
  if (!(o.defaultPrevented || o.isComposing)) {
233
- if (e !== null && o.key === e) {
234
- o.preventDefault(), t.lock.toggle();
319
+ if (t !== null && o.key === t) {
320
+ o.preventDefault(), e.lock.toggle();
235
321
  return;
236
322
  }
237
- if (!c().shouldBypassGlobalHotkeys({
238
- root: s(),
323
+ if (!d().shouldBypassGlobalHotkeys({
324
+ root: l(),
239
325
  target: o.target,
240
- owner: S(),
241
- interactiveSelector: c().interactiveSelector
326
+ owner: M(),
327
+ interactiveSelector: d().interactiveSelector
242
328
  }))
243
329
  switch (o.key) {
244
330
  case "ArrowUp":
245
- o.preventDefault(), t.navigation.handleArrowNavigation("up");
331
+ o.preventDefault(), e.navigation.handleArrowNavigation("up");
246
332
  break;
247
333
  case "ArrowDown":
248
- o.preventDefault(), t.navigation.handleArrowNavigation("down");
334
+ o.preventDefault(), e.navigation.handleArrowNavigation("down");
249
335
  break;
250
336
  case "ArrowLeft":
251
- o.preventDefault(), t.navigation.handleArrowNavigation("left");
337
+ o.preventDefault(), e.navigation.handleArrowNavigation("left");
252
338
  break;
253
339
  case "ArrowRight":
254
- o.preventDefault(), t.navigation.handleArrowNavigation("right");
340
+ o.preventDefault(), e.navigation.handleArrowNavigation("right");
255
341
  break;
256
342
  case "Delete":
257
343
  case "Backspace":
258
- t.selectedObject() && (o.preventDefault(), t.widgetActions.deleteSelected());
344
+ e.selectedObject() && (o.preventDefault(), e.widgetActions.deleteSelected());
259
345
  break;
260
346
  }
261
347
  }
262
348
  };
263
- document.addEventListener("keydown", n, !0), y(() => document.removeEventListener("keydown", n, !0));
349
+ document.addEventListener("keydown", n, !0), W(() => document.removeEventListener("keydown", n, !0));
264
350
  });
265
- const C = (e, n, o) => {
351
+ const x = (t, n, o) => {
266
352
  if (o?.worldPoint)
267
353
  return o.worldPoint;
268
354
  if (o?.canvasFrame)
269
- return T(o.canvasFrame, t.viewport(), {
270
- clientX: e,
355
+ return O(o.canvasFrame, e.viewport(), {
356
+ clientX: t,
271
357
  clientY: n
272
358
  });
273
- const r = s()?.querySelector('[data-floe-workbench-canvas-frame="true"]');
359
+ const r = l()?.querySelector('[data-floe-workbench-canvas-frame="true"]');
274
360
  if (!r) return null;
275
- const a = r.getBoundingClientRect();
276
- return T(a, t.viewport(), {
277
- clientX: e,
361
+ const i = r.getBoundingClientRect();
362
+ return O(i, e.viewport(), {
363
+ clientX: t,
278
364
  clientY: n
279
365
  });
280
- }, z = (e, n, o, r) => {
281
- const a = C(n, o, r);
282
- a && t.widgetActions.addWidgetAtWorldCenter(e, a.worldX, a.worldY);
283
- }, H = (e, n, o, r) => {
284
- const a = C(n, o, r);
285
- if (a) {
286
- if (e === "sticky-note") {
287
- t.widgetActions.addStickyNoteAtCursor(a.worldX, a.worldY);
366
+ }, nt = (t, n, o, r) => {
367
+ const i = x(n, o, r);
368
+ i && e.widgetActions.addWidgetAtWorldCenter(t, i.worldX, i.worldY);
369
+ }, ot = (t, n, o, r) => {
370
+ const i = x(n, o, r);
371
+ if (i) {
372
+ if (t === "sticky-note") {
373
+ e.widgetActions.addStickyNoteAtCursor(i.worldX, i.worldY);
288
374
  return;
289
375
  }
290
- if (e === "text") {
291
- t.widgetActions.addTextAnnotationAtCursor(a.worldX, a.worldY);
376
+ if (t === "text") {
377
+ e.widgetActions.addTextAnnotationAtCursor(i.worldX, i.worldY);
292
378
  return;
293
379
  }
294
- e === "background-region" && t.widgetActions.addBackgroundLayerAtCursor(a.worldX, a.worldY);
380
+ t === "background-region" && e.widgetActions.addBackgroundLayerAtCursor(i.worldX, i.worldY);
295
381
  }
296
- }, U = (e) => {
297
- e.button === 0 && (c().findWidgetRoot(e.target) || M("background_pointer"));
298
- }, $ = w(() => {
299
- const e = P();
300
- if (!e) return null;
301
- const n = C(e.clientX, e.clientY, e);
302
- return n ? e.kind === "widget" ? le({
303
- type: e.id,
304
- widgetDefinitions: t.widgetDefinitions(),
382
+ }, rt = (t) => {
383
+ t.button === 0 && (d().findWidgetRoot(t.target) || _("background_pointer"));
384
+ }, it = m(() => {
385
+ const t = z();
386
+ if (!t) return null;
387
+ const n = x(t.clientX, t.clientY, t);
388
+ return n ? t.kind === "widget" ? Wt({
389
+ type: t.id,
390
+ widgetDefinitions: e.widgetDefinitions(),
305
391
  worldX: n.worldX,
306
392
  worldY: n.worldY,
307
- dropAllowed: e.dropAllowed
308
- }) : ge({
309
- tool: e.id,
310
- label: e.label,
393
+ dropAllowed: t.dropAllowed
394
+ }) : St({
395
+ tool: t.id,
396
+ label: t.label,
311
397
  worldX: n.worldX,
312
398
  worldY: n.worldY,
313
- dropAllowed: e.dropAllowed,
314
- textDefaults: i.textAnnotationDefaults,
315
- backgroundDefaults: i.backgroundLayerDefaults
399
+ dropAllowed: t.dropAllowed,
400
+ textDefaults: c.textAnnotationDefaults,
401
+ backgroundDefaults: c.backgroundLayerDefaults
316
402
  }) : null;
317
403
  });
318
404
  return (() => {
319
- var e = Ae(), n = e.firstChild;
320
- return j(_, e), K(e, G({
405
+ var t = Ft(), n = t.firstChild;
406
+ return ct(P, t), at(t, dt({
321
407
  get class() {
322
- return `workbench-surface${i.class ? ` ${i.class}` : ""}`;
408
+ return `workbench-surface${c.class ? ` ${c.class}` : ""}`;
323
409
  }
324
410
  }, () => ({
325
- [c().surfaceRootAttr]: "true",
326
- [c().dialogSurfaceHostAttr]: "true",
327
- [ve]: "true",
328
- [fe]: "true"
411
+ [d().surfaceRootAttr]: "true",
412
+ [d().dialogSurfaceHostAttr]: "true",
413
+ [Lt]: "true",
414
+ [Mt]: "true"
329
415
  }), {
330
416
  get "data-workbench-theme"() {
331
- return t.theme();
417
+ return e.theme();
332
418
  },
333
419
  get "data-workbench-mode"() {
334
- return t.mode();
420
+ return e.mode();
335
421
  },
336
422
  tabIndex: -1
337
- }), !1, !0), v(n, l(ne, {
423
+ }), !1, !0), C(n, f(ft, {
338
424
  get widgetDefinitions() {
339
- return t.widgetDefinitions();
425
+ return e.widgetDefinitions();
340
426
  },
341
427
  get widgets() {
342
- return t.widgets();
428
+ return e.widgets();
343
429
  },
344
430
  get stickyNotes() {
345
- return t.stickyNotes();
431
+ return e.stickyNotes();
346
432
  },
347
433
  get annotations() {
348
- return t.annotations();
434
+ return e.annotations();
349
435
  },
350
436
  get backgroundLayers() {
351
- return t.backgroundLayers();
437
+ return e.backgroundLayers();
352
438
  },
353
439
  get placementPreview() {
354
- return $();
440
+ return it();
355
441
  },
356
442
  get viewport() {
357
- return t.viewport();
443
+ return e.viewport();
358
444
  },
359
445
  get canvasFrameSize() {
360
- return t.canvasFrameSize();
446
+ return e.canvasFrameSize();
361
447
  },
362
448
  get selectedWidgetId() {
363
- return E();
449
+ return Y();
364
450
  },
365
451
  get selectedObject() {
366
- return O();
452
+ return S();
367
453
  },
368
454
  get mode() {
369
- return t.mode();
455
+ return e.mode();
370
456
  },
371
457
  get visualFrontOwnerId() {
372
- return t.visualFrontOwnerId();
458
+ return e.visualFrontOwnerId();
373
459
  },
374
460
  get locked() {
375
- return t.locked();
461
+ return e.locked();
376
462
  },
377
463
  get filters() {
378
- return t.filters();
464
+ return e.filters();
379
465
  },
380
466
  get interactionAdapter() {
381
- return c();
467
+ return d();
382
468
  },
383
469
  get setCanvasFrameRef() {
384
- return t.setCanvasFrameRef;
470
+ return e.setCanvasFrameRef;
385
471
  },
386
472
  get onViewportCommit() {
387
- return t.canvas.commitViewport;
473
+ return e.canvas.commitViewport;
388
474
  },
389
475
  get onViewportInteractionStart() {
390
- return t.canvas.cancelViewportNavigation;
476
+ return e.canvas.cancelViewportNavigation;
391
477
  },
392
478
  get onCanvasContextMenu() {
393
- return t.canvas.openCanvasContextMenu;
479
+ return e.canvas.openCanvasContextMenu;
394
480
  },
395
- onCanvasPointerDown: U,
396
- onSelectWidget: F,
397
- onActivateWidget: N,
481
+ onCanvasPointerDown: rt,
482
+ onSelectWidget: q,
483
+ onActivateWidget: D,
398
484
  get onWidgetContextMenu() {
399
- return t.canvas.openWidgetContextMenu;
485
+ return e.canvas.openWidgetContextMenu;
400
486
  },
401
487
  get onClaimVisualFrontOwner() {
402
- return t.canvas.claimVisualFrontOwner;
488
+ return e.canvas.claimVisualFrontOwner;
403
489
  },
404
490
  get onCommitFront() {
405
- return t.canvas.commitFront;
491
+ return e.canvas.commitFront;
406
492
  },
407
493
  get onCommitMove() {
408
- return t.canvas.commitMove;
494
+ return e.canvas.commitMove;
409
495
  },
410
496
  get onCommitResize() {
411
- return t.canvas.commitResize;
497
+ return e.canvas.commitResize;
412
498
  },
413
499
  get onSelectStickyNote() {
414
- return t.canvas.selectStickyNote;
500
+ return e.canvas.selectStickyNote;
415
501
  },
416
502
  get onStickyNoteContextMenu() {
417
- return t.canvas.openStickyNoteContextMenu;
503
+ return e.canvas.openStickyNoteContextMenu;
418
504
  },
419
505
  get onClaimStickyVisualFrontOwner() {
420
- return t.canvas.claimVisualFrontOwner;
506
+ return e.canvas.claimVisualFrontOwner;
421
507
  },
422
508
  get onCommitStickyFront() {
423
- return t.canvas.commitStickyFront;
509
+ return e.canvas.commitStickyFront;
424
510
  },
425
511
  get onCommitStickyMove() {
426
- return t.canvas.commitStickyMove;
512
+ return e.canvas.commitStickyMove;
427
513
  },
428
514
  get onCommitStickyResize() {
429
- return t.canvas.commitStickyResize;
515
+ return e.canvas.commitStickyResize;
430
516
  },
431
517
  get onUpdateStickyNote() {
432
- return t.widgetActions.updateStickyNote;
518
+ return e.widgetActions.updateStickyNote;
433
519
  },
434
520
  get onDeleteStickyNote() {
435
- return t.widgetActions.deleteStickyNote;
521
+ return e.widgetActions.deleteStickyNote;
436
522
  },
437
523
  get onSelectAnnotation() {
438
- return t.canvas.selectAnnotation;
524
+ return e.canvas.selectAnnotation;
439
525
  },
440
526
  get onAnnotationContextMenu() {
441
- return t.canvas.openAnnotationContextMenu;
527
+ return e.canvas.openAnnotationContextMenu;
442
528
  },
443
529
  get onCommitAnnotationMove() {
444
- return t.canvas.commitAnnotationMove;
530
+ return e.canvas.commitAnnotationMove;
445
531
  },
446
532
  get onCommitAnnotationResize() {
447
- return t.canvas.commitAnnotationResize;
533
+ return e.canvas.commitAnnotationResize;
448
534
  },
449
535
  get onUpdateTextAnnotation() {
450
- return t.widgetActions.updateTextAnnotation;
536
+ return e.widgetActions.updateTextAnnotation;
451
537
  },
452
538
  get onDeleteAnnotation() {
453
- return t.widgetActions.deleteAnnotation;
539
+ return e.widgetActions.deleteAnnotation;
454
540
  },
455
541
  get onSelectBackgroundLayer() {
456
- return t.canvas.selectBackgroundLayer;
542
+ return e.canvas.selectBackgroundLayer;
457
543
  },
458
544
  get onBackgroundLayerContextMenu() {
459
- return t.canvas.openBackgroundLayerContextMenu;
545
+ return e.canvas.openBackgroundLayerContextMenu;
460
546
  },
461
547
  get onCommitBackgroundMove() {
462
- return t.canvas.commitBackgroundMove;
548
+ return e.canvas.commitBackgroundMove;
463
549
  },
464
550
  get onCommitBackgroundResize() {
465
- return t.canvas.commitBackgroundResize;
551
+ return e.canvas.commitBackgroundResize;
466
552
  },
467
553
  get onUpdateBackgroundLayer() {
468
- return t.widgetActions.updateBackgroundLayer;
554
+ return e.widgetActions.updateBackgroundLayer;
469
555
  },
470
556
  get onDeleteBackgroundLayer() {
471
- return t.widgetActions.deleteBackgroundLayer;
557
+ return e.widgetActions.deleteBackgroundLayer;
472
558
  },
473
- onRequestOverview: V,
474
- onRequestFit: q,
559
+ onRequestOverview: et,
560
+ onRequestFit: tt,
475
561
  get onRequestDelete() {
476
- return i.onRequestDelete ?? t.widgetActions.deleteWidget;
562
+ return c.onRequestDelete ?? e.widgetActions.deleteWidget;
477
563
  },
478
564
  get onLayoutInteractionStart() {
479
- return i.onLayoutInteractionStart;
565
+ return c.onLayoutInteractionStart;
480
566
  },
481
567
  get onLayoutInteractionEnd() {
482
- return i.onLayoutInteractionEnd;
568
+ return c.onLayoutInteractionEnd;
483
569
  }
484
- })), v(e, l(ae, {
570
+ })), C(t, f(yt, {
485
571
  get locked() {
486
- return t.locked();
572
+ return e.locked();
487
573
  },
488
574
  get onToggle() {
489
- return t.lock.toggle;
575
+ return e.lock.toggle;
490
576
  },
491
577
  get shortcutLabel() {
492
- return x() ?? void 0;
578
+ return E() ?? void 0;
493
579
  }
494
- }), null), v(e, l(re, {
580
+ }), null), C(t, f(mt, {
495
581
  get widgetDefinitions() {
496
- return Y();
582
+ return H();
497
583
  },
498
584
  get widgets() {
499
- return t.widgets();
585
+ return e.widgets();
500
586
  },
501
587
  get filters() {
502
- return t.filters();
588
+ return e.filters();
503
589
  },
504
590
  get mode() {
505
- return t.mode();
591
+ return e.mode();
592
+ },
593
+ get activationMode() {
594
+ return c.dockItemActivationMode;
506
595
  },
507
596
  get viewport() {
508
- return t.viewport();
597
+ return e.viewport();
509
598
  },
510
599
  get onSoloFilter() {
511
- return t.filter.solo;
600
+ return e.filter.solo;
512
601
  },
602
+ onFocusCycleItem: Z,
603
+ resolveItemPresentation: J,
604
+ onDockActivation: Q,
513
605
  get onSelectMode() {
514
- return t.modes.setMode;
606
+ return e.modes.setMode;
515
607
  },
516
608
  get onViewportCommit() {
517
- return t.canvas.commitViewport;
609
+ return e.canvas.commitViewport;
518
610
  },
519
- onViewportInteractionStart: () => t.canvas.cancelViewportNavigation(),
520
- onCreateAt: z,
521
- onCreateToolAt: H,
611
+ onViewportInteractionStart: () => e.canvas.cancelViewportNavigation(),
612
+ onCreateAt: nt,
613
+ onCreateToolAt: ot,
522
614
  get onItemClick() {
523
- return i.onDockItemClick;
615
+ return c.onDockItemClick;
524
616
  },
525
617
  get dockActions() {
526
- return i.dockActions;
618
+ return c.dockActions;
527
619
  },
528
620
  get dockItems() {
529
- return i.dockItems;
621
+ return c.dockItems;
530
622
  },
531
623
  get registerExternalDockDragController() {
532
- return i.registerExternalDockDragController;
624
+ return c.registerExternalDockDragController;
533
625
  },
534
- onDragPreviewChange: X
535
- }), null), v(e, l(ie, {
626
+ onDragPreviewChange: V
627
+ }), null), C(t, f(vt, {
536
628
  get scaleLabel() {
537
- return t.scaleLabel();
629
+ return e.scaleLabel();
538
630
  },
539
631
  get onZoomOut() {
540
- return t.hud.zoomOut;
632
+ return e.hud.zoomOut;
541
633
  },
542
634
  get onZoomIn() {
543
- return t.hud.zoomIn;
635
+ return e.hud.zoomIn;
544
636
  },
545
637
  get activeTheme() {
546
- return t.theme();
638
+ return e.theme();
547
639
  },
548
- onSelectTheme: (o) => t.appearance.setTheme(o)
549
- }), null), v(e, l(ee, {
640
+ onSelectTheme: (o) => e.appearance.setTheme(o)
641
+ }), null), C(t, f(gt, {
550
642
  get when() {
551
- return t.contextMenu.state();
643
+ return e.contextMenu.state();
552
644
  },
553
645
  get children() {
554
- return l(Z, {
646
+ return f(st, {
555
647
  get children() {
556
648
  return [(() => {
557
- var o = ke();
558
- return J(o, "contextmenu", t.contextMenu.retarget, !0), o;
559
- })(), l(oe, {
649
+ var o = Tt();
650
+ return ut(o, "contextmenu", e.contextMenu.retarget, !0), o;
651
+ })(), f(kt, {
560
652
  get x() {
561
- return D()?.left ?? 0;
653
+ return F()?.left ?? 0;
562
654
  },
563
655
  get y() {
564
- return D()?.top ?? 0;
656
+ return F()?.top ?? 0;
565
657
  },
566
658
  get items() {
567
- return b();
659
+ return T();
568
660
  }
569
661
  })];
570
662
  }
571
663
  });
572
664
  }
573
- }), null), e;
665
+ }), null), t;
574
666
  })();
575
667
  }
576
- Q(["contextmenu"]);
668
+ lt(["contextmenu"]);
577
669
  export {
578
- Fe as WorkbenchSurface
670
+ Zt as WorkbenchSurface
579
671
  };