@floegence/floe-webapp-core 0.36.1 → 0.36.2

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,13 +1,11 @@
1
- import { use as d, insert as a, createComponent as i, effect as l, template as c } from "solid-js/web";
2
- import { For as g } from "solid-js";
3
- import { WorkbenchWidget as u } from "./WorkbenchWidget.js";
4
- import { getWidgetEntry as m } from "./widgets/widgetRegistry.js";
5
- import { InfiniteCanvas as v } from "../ui/InfiniteCanvas.js";
6
- var s = /* @__PURE__ */ c("<div class=workbench-canvas__field><div class=workbench-canvas__grid aria-hidden=true>"), f = /* @__PURE__ */ c("<div class=workbench-canvas>");
7
- function b(e) {
1
+ import { use as r, insert as o, createComponent as i, effect as a, template as g } from "solid-js/web";
2
+ import { WorkbenchCanvasField as c } from "./WorkbenchCanvasField.js";
3
+ import { InfiniteCanvas as u } from "../ui/InfiniteCanvas.js";
4
+ var m = /* @__PURE__ */ g("<div class=workbench-canvas>");
5
+ function C(e) {
8
6
  return (() => {
9
- var t = f(), o = e.setCanvasFrameRef;
10
- return typeof o == "function" ? d(o, t) : e.setCanvasFrameRef = t, a(t, i(v, {
7
+ var t = m(), n = e.setCanvasFrameRef;
8
+ return typeof n == "function" ? r(n, t) : e.setCanvasFrameRef = t, o(t, i(u, {
11
9
  ariaLabel: "Workbench canvas",
12
10
  class: "workbench-canvas__infinite",
13
11
  get viewport() {
@@ -23,61 +21,57 @@ function b(e) {
23
21
  return e.locked;
24
22
  },
25
23
  get children() {
26
- var r = s();
27
- return r.firstChild, a(r, i(g, {
28
- get each() {
24
+ return i(c, {
25
+ get widgetDefinitions() {
26
+ return e.widgetDefinitions;
27
+ },
28
+ get widgets() {
29
29
  return e.widgets;
30
30
  },
31
- children: (n) => i(u, {
32
- get definition() {
33
- return m(n.type, e.widgetDefinitions);
34
- },
35
- item: n,
36
- get selected() {
37
- return e.selectedWidgetId === n.id;
38
- },
39
- get optimisticFront() {
40
- return e.optimisticFrontWidgetId === n.id;
41
- },
42
- get topZIndex() {
43
- return e.topZIndex;
44
- },
45
- get viewportScale() {
46
- return e.viewport.scale;
47
- },
48
- get locked() {
49
- return e.locked;
50
- },
51
- get filtered() {
52
- return !e.filters[n.type];
53
- },
54
- get onSelect() {
55
- return e.onSelectWidget;
56
- },
57
- get onContextMenu() {
58
- return e.onWidgetContextMenu;
59
- },
60
- get onStartOptimisticFront() {
61
- return e.onStartOptimisticFront;
62
- },
63
- get onCommitFront() {
64
- return e.onCommitFront;
65
- },
66
- get onCommitMove() {
67
- return e.onCommitMove;
68
- },
69
- get onCommitResize() {
70
- return e.onCommitResize;
71
- },
72
- get onRequestDelete() {
73
- return e.onRequestDelete;
74
- }
75
- })
76
- }), null), r;
31
+ get selectedWidgetId() {
32
+ return e.selectedWidgetId;
33
+ },
34
+ get optimisticFrontWidgetId() {
35
+ return e.optimisticFrontWidgetId;
36
+ },
37
+ get topZIndex() {
38
+ return e.topZIndex;
39
+ },
40
+ get viewportScale() {
41
+ return e.viewport.scale;
42
+ },
43
+ get locked() {
44
+ return e.locked;
45
+ },
46
+ get filters() {
47
+ return e.filters;
48
+ },
49
+ get onSelectWidget() {
50
+ return e.onSelectWidget;
51
+ },
52
+ get onWidgetContextMenu() {
53
+ return e.onWidgetContextMenu;
54
+ },
55
+ get onStartOptimisticFront() {
56
+ return e.onStartOptimisticFront;
57
+ },
58
+ get onCommitFront() {
59
+ return e.onCommitFront;
60
+ },
61
+ get onCommitMove() {
62
+ return e.onCommitMove;
63
+ },
64
+ get onCommitResize() {
65
+ return e.onCommitResize;
66
+ },
67
+ get onRequestDelete() {
68
+ return e.onRequestDelete;
69
+ }
70
+ });
77
71
  }
78
- })), l(() => t.classList.toggle("is-locked", !!e.locked)), t;
72
+ })), a(() => t.classList.toggle("is-locked", !!e.locked)), t;
79
73
  })();
80
74
  }
81
75
  export {
82
- b as WorkbenchCanvas
76
+ C as WorkbenchCanvas
83
77
  };
@@ -0,0 +1,25 @@
1
+ import type { WorkbenchWidgetDefinition, WorkbenchWidgetItem, WorkbenchWidgetType } from './types';
2
+ export interface WorkbenchCanvasFieldProps {
3
+ widgetDefinitions: readonly WorkbenchWidgetDefinition[];
4
+ widgets: readonly WorkbenchWidgetItem[];
5
+ selectedWidgetId: string | null;
6
+ optimisticFrontWidgetId: string | null;
7
+ topZIndex: number;
8
+ viewportScale: number;
9
+ locked: boolean;
10
+ filters: Record<WorkbenchWidgetType, boolean>;
11
+ onSelectWidget: (widgetId: string) => void;
12
+ onWidgetContextMenu: (event: MouseEvent, item: WorkbenchWidgetItem) => void;
13
+ onStartOptimisticFront: (widgetId: string) => void;
14
+ onCommitFront: (widgetId: string) => void;
15
+ onCommitMove: (widgetId: string, position: {
16
+ x: number;
17
+ y: number;
18
+ }) => void;
19
+ onCommitResize: (widgetId: string, size: {
20
+ width: number;
21
+ height: number;
22
+ }) => void;
23
+ onRequestDelete: (widgetId: string) => void;
24
+ }
25
+ export declare function WorkbenchCanvasField(props: WorkbenchCanvasFieldProps): import("solid-js").JSX.Element;
@@ -0,0 +1,145 @@
1
+ import { insert as o, createComponent as g, template as u } from "solid-js/web";
2
+ import { createMemo as r, For as m } from "solid-js";
3
+ import { getWidgetEntry as c } from "./widgets/widgetRegistry.js";
4
+ import { WorkbenchWidget as l } from "./WorkbenchWidget.js";
5
+ var a = /* @__PURE__ */ u("<div class=workbench-canvas__field><div class=workbench-canvas__grid aria-hidden=true>");
6
+ function w(t) {
7
+ const e = r((n) => {
8
+ const i = t.widgetById().get(t.widgetId);
9
+ if (i) return i;
10
+ if (n) return n;
11
+ throw new Error(`Workbench widget ${t.widgetId} is missing from the render map.`);
12
+ }), d = r(() => c(e().type, t.widgetDefinitions));
13
+ return g(l, {
14
+ get definition() {
15
+ return d();
16
+ },
17
+ get widgetId() {
18
+ return t.widgetId;
19
+ },
20
+ get widgetTitle() {
21
+ return e().title;
22
+ },
23
+ get widgetType() {
24
+ return e().type;
25
+ },
26
+ get x() {
27
+ return e().x;
28
+ },
29
+ get y() {
30
+ return e().y;
31
+ },
32
+ get width() {
33
+ return e().width;
34
+ },
35
+ get height() {
36
+ return e().height;
37
+ },
38
+ get zIndex() {
39
+ return e().z_index;
40
+ },
41
+ itemSnapshot: e,
42
+ get selected() {
43
+ return t.selectedWidgetId === t.widgetId;
44
+ },
45
+ get optimisticFront() {
46
+ return t.optimisticFrontWidgetId === t.widgetId;
47
+ },
48
+ get topZIndex() {
49
+ return t.topZIndex;
50
+ },
51
+ get viewportScale() {
52
+ return t.viewportScale;
53
+ },
54
+ get locked() {
55
+ return t.locked;
56
+ },
57
+ get filtered() {
58
+ return !t.filters[e().type];
59
+ },
60
+ get onSelect() {
61
+ return t.onSelectWidget;
62
+ },
63
+ get onContextMenu() {
64
+ return t.onWidgetContextMenu;
65
+ },
66
+ get onStartOptimisticFront() {
67
+ return t.onStartOptimisticFront;
68
+ },
69
+ get onCommitFront() {
70
+ return t.onCommitFront;
71
+ },
72
+ get onCommitMove() {
73
+ return t.onCommitMove;
74
+ },
75
+ get onCommitResize() {
76
+ return t.onCommitResize;
77
+ },
78
+ get onRequestDelete() {
79
+ return t.onRequestDelete;
80
+ }
81
+ });
82
+ }
83
+ function W(t) {
84
+ const e = r(() => t.widgets.map((n) => n.id)), d = r(() => new Map(t.widgets.map((n) => [n.id, n])));
85
+ return (() => {
86
+ var n = a();
87
+ return n.firstChild, o(n, g(m, {
88
+ get each() {
89
+ return e();
90
+ },
91
+ children: (i) => g(w, {
92
+ widgetId: i,
93
+ get widgetDefinitions() {
94
+ return t.widgetDefinitions;
95
+ },
96
+ get widgets() {
97
+ return t.widgets;
98
+ },
99
+ widgetById: d,
100
+ get selectedWidgetId() {
101
+ return t.selectedWidgetId;
102
+ },
103
+ get optimisticFrontWidgetId() {
104
+ return t.optimisticFrontWidgetId;
105
+ },
106
+ get topZIndex() {
107
+ return t.topZIndex;
108
+ },
109
+ get viewportScale() {
110
+ return t.viewportScale;
111
+ },
112
+ get locked() {
113
+ return t.locked;
114
+ },
115
+ get filters() {
116
+ return t.filters;
117
+ },
118
+ get onSelectWidget() {
119
+ return t.onSelectWidget;
120
+ },
121
+ get onWidgetContextMenu() {
122
+ return t.onWidgetContextMenu;
123
+ },
124
+ get onStartOptimisticFront() {
125
+ return t.onStartOptimisticFront;
126
+ },
127
+ get onCommitFront() {
128
+ return t.onCommitFront;
129
+ },
130
+ get onCommitMove() {
131
+ return t.onCommitMove;
132
+ },
133
+ get onCommitResize() {
134
+ return t.onCommitResize;
135
+ },
136
+ get onRequestDelete() {
137
+ return t.onRequestDelete;
138
+ }
139
+ })
140
+ }), null), n;
141
+ })();
142
+ }
143
+ export {
144
+ W as WorkbenchCanvasField
145
+ };
@@ -1,8 +1,16 @@
1
1
  import { type JSX } from 'solid-js';
2
- import type { WorkbenchWidgetDefinition, WorkbenchWidgetItem } from './types';
2
+ import type { WorkbenchWidgetDefinition, WorkbenchWidgetItem, WorkbenchWidgetType } from './types';
3
3
  export interface WorkbenchWidgetProps {
4
4
  definition: WorkbenchWidgetDefinition;
5
- item: WorkbenchWidgetItem;
5
+ widgetId: string;
6
+ widgetTitle: string;
7
+ widgetType: WorkbenchWidgetType;
8
+ x: number;
9
+ y: number;
10
+ width: number;
11
+ height: number;
12
+ zIndex: number;
13
+ itemSnapshot: () => WorkbenchWidgetItem;
6
14
  selected: boolean;
7
15
  optimisticFront: boolean;
8
16
  topZIndex: number;
@@ -1,35 +1,35 @@
1
- import { insert as m, createComponent as f, memo as B, effect as G, setAttribute as N, setStyleProperty as v, template as A, delegateEvents as O } from "solid-js/web";
2
- import { createSignal as R, onCleanup as T, untrack as I, createMemo as H } from "solid-js";
1
+ import { insert as u, createComponent as v, memo as E, effect as B, setAttribute as G, setStyleProperty as m, template as A, delegateEvents as N } from "solid-js/web";
2
+ import { createSignal as R, onCleanup as O, untrack as I, createMemo as H } from "solid-js";
3
3
  import { startHotInteraction as P } from "../../utils/hotInteraction.js";
4
4
  import { GripVertical as q, X as V } from "../icons/index.js";
5
- var Z = /* @__PURE__ */ A('<article class=workbench-widget><header class=workbench-widget__header><button type=button class=workbench-widget__drag aria-label="Drag widget"data-floe-canvas-interactive=true></button><div class=workbench-widget__title-area><span class=workbench-widget__title></span></div><button type=button class=workbench-widget__close aria-label="Remove widget"data-floe-canvas-interactive=true></button></header><div class=workbench-widget__body data-floe-canvas-interactive=true>'), j = /* @__PURE__ */ A('<div class=workbench-widget__resize aria-label="Resize widget"data-floe-canvas-interactive=true><svg class=workbench-widget__resize-glyph viewBox="0 0 12 12"aria-hidden=true><path d="M12 0 L0 12"></path><path d="M12 4 L4 12"></path><path d="M12 8 L8 12">');
5
+ var Z = /* @__PURE__ */ A('<article class=workbench-widget data-floe-dialog-surface-host=true><header class=workbench-widget__header><button type=button class=workbench-widget__drag aria-label="Drag widget"data-floe-canvas-interactive=true></button><div class=workbench-widget__title-area><span class=workbench-widget__title></span></div><button type=button class=workbench-widget__close aria-label="Remove widget"data-floe-canvas-interactive=true></button></header><div class=workbench-widget__body data-floe-canvas-interactive=true>'), j = /* @__PURE__ */ A('<div class=workbench-widget__resize aria-label="Resize widget"data-floe-canvas-interactive=true><svg class=workbench-widget__resize-glyph viewBox="0 0 12 12"aria-hidden=true><path d="M12 0 L0 12"></path><path d="M12 4 L4 12"></path><path d="M12 8 L8 12">');
6
6
  const J = 220, K = 160;
7
7
  function et(e) {
8
- const [u, x] = R(null), [b, C] = R(null);
9
- let g, w;
10
- T(() => {
11
- g?.abort(), g = void 0, w?.abort(), w = void 0, I(u)?.stopInteraction(), I(b)?.stopInteraction();
8
+ const [b, x] = R(null), [f, C] = R(null);
9
+ let h, w;
10
+ O(() => {
11
+ h?.abort(), h = void 0, w?.abort(), w = void 0, I(b)?.stopInteraction(), I(f)?.stopInteraction();
12
12
  });
13
- const M = () => u() !== null, _ = () => b() !== null, k = H(() => {
14
- const i = u();
13
+ const M = () => b() !== null, k = () => f() !== null, y = H(() => {
14
+ const i = b();
15
15
  return i ? {
16
16
  x: i.worldX,
17
17
  y: i.worldY
18
18
  } : {
19
- x: e.item.x,
20
- y: e.item.y
19
+ x: e.x,
20
+ y: e.y
21
21
  };
22
- }), y = H(() => {
23
- const i = b();
22
+ }), _ = H(() => {
23
+ const i = f();
24
24
  return i ? {
25
25
  width: i.width,
26
26
  height: i.height
27
27
  } : {
28
- width: e.item.width,
29
- height: e.item.height
28
+ width: e.width,
29
+ height: e.height
30
30
  };
31
31
  }), $ = (i) => {
32
- const o = I(u);
32
+ const o = I(b);
33
33
  if (!o) return;
34
34
  const a = {
35
35
  x: o.worldX,
@@ -37,11 +37,11 @@ function et(e) {
37
37
  }, r = {
38
38
  x: o.startWorldX,
39
39
  y: o.startWorldY
40
- }, d = i && (Math.abs(a.x - r.x) > 1 || Math.abs(a.y - r.y) > 1);
41
- e.onCommitFront(e.item.id), d && e.onCommitMove(e.item.id, a), o.stopInteraction(), x(null), g?.abort(), g = void 0;
40
+ }, l = i && (Math.abs(a.x - r.x) > 1 || Math.abs(a.y - r.y) > 1);
41
+ e.onCommitFront(e.widgetId), l && e.onCommitMove(e.widgetId, a), o.stopInteraction(), x(null), h?.abort(), h = void 0;
42
42
  }, F = (i) => {
43
43
  if (i.button !== 0 || e.locked) return;
44
- i.preventDefault(), i.stopPropagation(), g?.abort(), e.onStartOptimisticFront(e.item.id);
44
+ i.preventDefault(), i.stopPropagation(), h?.abort(), e.onStartOptimisticFront(e.widgetId);
45
45
  const o = P({
46
46
  kind: "drag",
47
47
  cursor: "grabbing"
@@ -50,10 +50,10 @@ function et(e) {
50
50
  pointerId: i.pointerId,
51
51
  startClientX: i.clientX,
52
52
  startClientY: i.clientY,
53
- startWorldX: e.item.x,
54
- startWorldY: e.item.y,
55
- worldX: e.item.x,
56
- worldY: e.item.y,
53
+ startWorldX: e.x,
54
+ startWorldY: e.y,
55
+ worldX: e.x,
56
+ worldY: e.y,
57
57
  moved: !1,
58
58
  scale: a,
59
59
  stopInteraction: o
@@ -61,39 +61,39 @@ function et(e) {
61
61
  const r = (t) => {
62
62
  x((n) => {
63
63
  if (!n || n.pointerId !== t.pointerId) return n;
64
- const c = n.startWorldX + (t.clientX - n.startClientX) / n.scale, h = n.startWorldY + (t.clientY - n.startClientY) / n.scale;
64
+ const c = n.startWorldX + (t.clientX - n.startClientX) / n.scale, g = n.startWorldY + (t.clientY - n.startClientY) / n.scale;
65
65
  return {
66
66
  ...n,
67
67
  worldX: c,
68
- worldY: h,
69
- moved: n.moved || Math.abs(c - n.startWorldX) > 2 || Math.abs(h - n.startWorldY) > 2
68
+ worldY: g,
69
+ moved: n.moved || Math.abs(c - n.startWorldX) > 2 || Math.abs(g - n.startWorldY) > 2
70
70
  };
71
71
  });
72
- }, d = (t) => {
72
+ }, l = (t) => {
73
73
  t.pointerId === i.pointerId && $(!0);
74
74
  }, s = (t) => {
75
75
  t.pointerId === i.pointerId && $(!1);
76
- }, l = new AbortController();
77
- g = l, window.addEventListener("pointermove", r, {
78
- signal: l.signal
79
- }), window.addEventListener("pointerup", d, {
76
+ }, d = new AbortController();
77
+ h = d, window.addEventListener("pointermove", r, {
78
+ signal: d.signal
79
+ }), window.addEventListener("pointerup", l, {
80
80
  once: !0,
81
- signal: l.signal
81
+ signal: d.signal
82
82
  }), window.addEventListener("pointercancel", s, {
83
83
  once: !0,
84
- signal: l.signal
84
+ signal: d.signal
85
85
  });
86
- }, X = (i) => {
87
- const o = I(b);
86
+ }, S = (i) => {
87
+ const o = I(f);
88
88
  if (!o) return;
89
89
  const a = {
90
90
  width: o.width,
91
91
  height: o.height
92
92
  }, r = Math.abs(o.width - o.startWidth) > 1 || Math.abs(o.height - o.startHeight) > 1;
93
- i && r && e.onCommitResize(e.item.id, a), o.stopInteraction(), C(null), w?.abort(), w = void 0;
94
- }, E = (i) => {
93
+ i && r && e.onCommitResize(e.widgetId, a), o.stopInteraction(), C(null), w?.abort(), w = void 0;
94
+ }, T = (i) => {
95
95
  if (i.button !== 0 || e.locked) return;
96
- i.preventDefault(), i.stopPropagation(), w?.abort(), e.onStartOptimisticFront(e.item.id);
96
+ i.preventDefault(), i.stopPropagation(), w?.abort(), e.onStartOptimisticFront(e.widgetId);
97
97
  const o = P({
98
98
  kind: "drag",
99
99
  cursor: "nwse-resize"
@@ -102,77 +102,77 @@ function et(e) {
102
102
  pointerId: i.pointerId,
103
103
  startClientX: i.clientX,
104
104
  startClientY: i.clientY,
105
- startWidth: e.item.width,
106
- startHeight: e.item.height,
107
- width: e.item.width,
108
- height: e.item.height,
105
+ startWidth: e.width,
106
+ startHeight: e.height,
107
+ width: e.width,
108
+ height: e.height,
109
109
  scale: a,
110
110
  stopInteraction: o
111
111
  });
112
112
  const r = (t) => {
113
113
  C((n) => {
114
114
  if (!n || n.pointerId !== t.pointerId) return n;
115
- const c = Math.max(J, n.startWidth + (t.clientX - n.startClientX) / n.scale), h = Math.max(K, n.startHeight + (t.clientY - n.startClientY) / n.scale);
115
+ const c = Math.max(J, n.startWidth + (t.clientX - n.startClientX) / n.scale), g = Math.max(K, n.startHeight + (t.clientY - n.startClientY) / n.scale);
116
116
  return {
117
117
  ...n,
118
118
  width: c,
119
- height: h
119
+ height: g
120
120
  };
121
121
  });
122
- }, d = (t) => {
123
- t.pointerId === i.pointerId && X(!0);
122
+ }, l = (t) => {
123
+ t.pointerId === i.pointerId && S(!0);
124
124
  }, s = (t) => {
125
- t.pointerId === i.pointerId && X(!1);
126
- }, l = new AbortController();
127
- w = l, window.addEventListener("pointermove", r, {
128
- signal: l.signal
129
- }), window.addEventListener("pointerup", d, {
125
+ t.pointerId === i.pointerId && S(!1);
126
+ }, d = new AbortController();
127
+ w = d, window.addEventListener("pointermove", r, {
128
+ signal: d.signal
129
+ }), window.addEventListener("pointerup", l, {
130
130
  once: !0,
131
- signal: l.signal
131
+ signal: d.signal
132
132
  }), window.addEventListener("pointercancel", s, {
133
133
  once: !0,
134
- signal: l.signal
134
+ signal: d.signal
135
135
  });
136
136
  };
137
137
  return (() => {
138
- var i = Z(), o = i.firstChild, a = o.firstChild, r = a.nextSibling, d = r.firstChild, s = r.nextSibling, l = o.nextSibling;
138
+ var i = Z(), o = i.firstChild, a = o.firstChild, r = a.nextSibling, l = r.firstChild, s = r.nextSibling, d = o.nextSibling;
139
139
  return i.$$click = () => {
140
- e.onSelect(e.item.id), e.onCommitFront(e.item.id);
140
+ e.onSelect(e.widgetId), e.onCommitFront(e.widgetId);
141
141
  }, i.$$contextmenu = (t) => {
142
- t.preventDefault(), t.stopPropagation(), e.onContextMenu(t, e.item);
143
- }, a.$$pointerdown = F, m(a, f(q, {
142
+ t.preventDefault(), t.stopPropagation(), e.onContextMenu(t, e.itemSnapshot());
143
+ }, a.$$pointerdown = F, u(a, v(q, {
144
144
  class: "w-3.5 h-3.5"
145
- })), m(r, () => {
145
+ })), u(r, () => {
146
146
  const t = e.definition.icon;
147
- return f(t, {
147
+ return v(t, {
148
148
  class: "w-3.5 h-3.5"
149
149
  });
150
- }, d), m(d, () => e.item.title), s.$$click = (t) => {
151
- t.stopPropagation(), t.preventDefault(), e.onRequestDelete(e.item.id);
152
- }, s.$$pointerdown = (t) => t.stopPropagation(), m(s, f(V, {
150
+ }, l), u(l, () => e.widgetTitle), s.$$click = (t) => {
151
+ t.stopPropagation(), t.preventDefault(), e.onRequestDelete(e.widgetId);
152
+ }, s.$$pointerdown = (t) => t.stopPropagation(), u(s, v(V, {
153
153
  class: "w-3 h-3"
154
- })), m(l, () => {
154
+ })), u(d, () => {
155
155
  const t = e.definition.body;
156
- return f(t, {
156
+ return v(t, {
157
157
  get widgetId() {
158
- return e.item.id;
158
+ return e.widgetId;
159
159
  },
160
160
  get title() {
161
- return e.item.title;
161
+ return e.widgetTitle;
162
162
  },
163
163
  get type() {
164
- return e.item.type;
164
+ return e.widgetType;
165
165
  }
166
166
  });
167
- }), m(i, (() => {
168
- var t = B(() => !!e.locked);
167
+ }), u(i, (() => {
168
+ var t = E(() => !!e.locked);
169
169
  return () => t() ? null : (() => {
170
170
  var n = j();
171
- return n.$$pointerdown = E, n;
171
+ return n.$$pointerdown = T, n;
172
172
  })();
173
- })(), null), G((t) => {
174
- var n = !!e.selected, c = !!M(), h = !!_(), z = !!e.filtered, S = e.item.id, Y = `translate(${k().x}px, ${k().y}px)`, W = `${y().width}px`, L = `${y().height}px`, D = M() || _() || e.optimisticFront ? `${e.topZIndex + 1}` : `${e.item.z_index}`;
175
- return n !== t.e && i.classList.toggle("is-selected", t.e = n), c !== t.t && i.classList.toggle("is-dragging", t.t = c), h !== t.a && i.classList.toggle("is-resizing", t.a = h), z !== t.o && i.classList.toggle("is-filtered-out", t.o = z), S !== t.i && N(i, "data-floe-workbench-widget-id", t.i = S), Y !== t.n && v(i, "transform", t.n = Y), W !== t.s && v(i, "width", t.s = W), L !== t.h && v(i, "height", t.h = L), D !== t.r && v(i, "z-index", t.r = D), t;
173
+ })(), null), B((t) => {
174
+ var n = !!e.selected, c = !!M(), g = !!k(), X = !!e.filtered, z = e.widgetId, Y = `translate(${y().x}px, ${y().y}px)`, W = `${_().width}px`, L = `${_().height}px`, D = M() || k() || e.optimisticFront ? `${e.topZIndex + 1}` : `${e.zIndex}`;
175
+ return n !== t.e && i.classList.toggle("is-selected", t.e = n), c !== t.t && i.classList.toggle("is-dragging", t.t = c), g !== t.a && i.classList.toggle("is-resizing", t.a = g), X !== t.o && i.classList.toggle("is-filtered-out", t.o = X), z !== t.i && G(i, "data-floe-workbench-widget-id", t.i = z), Y !== t.n && m(i, "transform", t.n = Y), W !== t.s && m(i, "width", t.s = W), L !== t.h && m(i, "height", t.h = L), D !== t.r && m(i, "z-index", t.r = D), t;
176
176
  }, {
177
177
  e: void 0,
178
178
  t: void 0,
@@ -186,7 +186,7 @@ function et(e) {
186
186
  }), i;
187
187
  })();
188
188
  }
189
- O(["contextmenu", "click", "pointerdown"]);
189
+ N(["contextmenu", "click", "pointerdown"]);
190
190
  export {
191
191
  et as WorkbenchWidget
192
192
  };
@@ -1,6 +1,7 @@
1
1
  import { type Accessor } from 'solid-js';
2
2
  export type OverlayScrollBlockMode = 'none' | 'outside' | 'all';
3
3
  export type OverlayEscapeCloseMode = 'none' | 'inside' | 'always';
4
+ type MaybeAccessor<T> = T | Accessor<T>;
4
5
  export interface UseOverlayMaskOptions {
5
6
  open: Accessor<boolean>;
6
7
  root: Accessor<HTMLElement | undefined>;
@@ -10,17 +11,17 @@ export interface UseOverlayMaskOptions {
10
11
  /** Optional alternate close path for Escape pressed outside the overlay surface. */
11
12
  onEscapeOutside?: () => void;
12
13
  /** Lock `document.body` scroll while the overlay is open (default: true). */
13
- lockBodyScroll?: boolean;
14
+ lockBodyScroll?: MaybeAccessor<boolean | undefined>;
14
15
  /** Prevent scroll via wheel events (default: none). */
15
- blockWheel?: OverlayScrollBlockMode;
16
+ blockWheel?: MaybeAccessor<OverlayScrollBlockMode | undefined>;
16
17
  /** Prevent scroll via touch-move events (default: none). */
17
- blockTouchMove?: OverlayScrollBlockMode;
18
+ blockTouchMove?: MaybeAccessor<OverlayScrollBlockMode | undefined>;
18
19
  /** Keep tab focus within the overlay root (default: true). */
19
- trapFocus?: boolean;
20
+ trapFocus?: MaybeAccessor<boolean | undefined>;
20
21
  /** Close on Escape and never leak to underlying window handlers (default: always). */
21
- closeOnEscape?: boolean | OverlayEscapeCloseMode;
22
+ closeOnEscape?: MaybeAccessor<boolean | OverlayEscapeCloseMode | undefined>;
22
23
  /** Stop bubbling keydown events to window-level hotkeys (default: true). */
23
- blockHotkeys?: boolean;
24
+ blockHotkeys?: MaybeAccessor<boolean | undefined>;
24
25
  /**
25
26
  * Allow a small set of global keybinds to continue bubbling to window-level handlers
26
27
  * while the overlay is focused. This is primarily used by floating overlays that must
@@ -28,10 +29,11 @@ export interface UseOverlayMaskOptions {
28
29
  */
29
30
  allowHotkeys?: readonly string[] | Accessor<readonly string[] | undefined>;
30
31
  /** Auto-focus on open (default: true). */
31
- autoFocus?: boolean | {
32
+ autoFocus?: MaybeAccessor<boolean | {
32
33
  selector?: string;
33
- };
34
+ } | undefined>;
34
35
  /** Restore focus to the previously active element on close (default: true). */
35
- restoreFocus?: boolean;
36
+ restoreFocus?: MaybeAccessor<boolean | undefined>;
36
37
  }
37
38
  export declare function useOverlayMask(options: UseOverlayMaskOptions): void;
39
+ export {};