@floegence/floe-webapp-core 0.52.4 → 0.52.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/ui/FloatingWindow.d.ts +2 -0
- package/dist/components/ui/FloatingWindow.js +148 -140
- package/dist/components/workbench/WorkbenchFilterBar.d.ts +5 -0
- package/dist/components/workbench/WorkbenchFilterBar.js +112 -107
- package/dist/components/workbench/WorkbenchSurface.d.ts +3 -1
- package/dist/components/workbench/WorkbenchSurface.js +3 -0
- package/dist/components/workbench/index.d.ts +1 -1
- package/package.json +1 -1
|
@@ -7,6 +7,8 @@ export interface FloatingWindowProps {
|
|
|
7
7
|
onOpenChange: (open: boolean) => void;
|
|
8
8
|
/** Window title */
|
|
9
9
|
title?: string;
|
|
10
|
+
/** Compact actions at the right of the title bar, before the window controls. */
|
|
11
|
+
headerActions?: JSX.Element;
|
|
10
12
|
/** Window content */
|
|
11
13
|
children: JSX.Element;
|
|
12
14
|
/** Optional footer content */
|
|
@@ -1,53 +1,53 @@
|
|
|
1
|
-
import { createComponent as a, Portal as
|
|
2
|
-
import { createUniqueId as
|
|
3
|
-
import { cn as
|
|
4
|
-
import { useLayout as
|
|
5
|
-
import { Button as
|
|
6
|
-
import { Restore as
|
|
7
|
-
import { startHotInteraction as
|
|
8
|
-
import { startPointerSession as
|
|
9
|
-
import { resolveFloatingWindowViewport as ge, normalizeFloatingWindowRect as me, resolveFloatingWindowRect as
|
|
10
|
-
import { createFloatingPresence as
|
|
1
|
+
import { createComponent as a, Portal as De, spread as ce, mergeProps as fe, memo as he, insert as c, effect as f, setAttribute as We, addEventListener as m, className as h, template as d, use as Oe, delegateEvents as He } from "solid-js/web";
|
|
2
|
+
import { createUniqueId as Ye, createSignal as p, onCleanup as L, onMount as Ne, createEffect as $, Show as x, batch as Xe, untrack as Ue } from "solid-js";
|
|
3
|
+
import { cn as k } from "../../utils/cn.js";
|
|
4
|
+
import { useLayout as qe } from "../../context/LayoutContext.js";
|
|
5
|
+
import { Button as we } from "./Button.js";
|
|
6
|
+
import { Restore as Be, Maximize as Ge, X as je } from "../icons/index.js";
|
|
7
|
+
import { startHotInteraction as Ve } from "../../utils/hotInteraction.js";
|
|
8
|
+
import { startPointerSession as Ze } from "./pointerSession.js";
|
|
9
|
+
import { resolveFloatingWindowViewport as ge, normalizeFloatingWindowRect as me, resolveFloatingWindowRect as Je } from "./floatingWindowGeometry.js";
|
|
10
|
+
import { createFloatingPresence as Ke } from "./floatingPresence.js";
|
|
11
11
|
import { LOCAL_INTERACTION_SURFACE_ATTR as ve } from "./localInteractionSurface.js";
|
|
12
|
-
import { SURFACE_PORTAL_LAYER_ATTR as
|
|
13
|
-
var
|
|
12
|
+
import { SURFACE_PORTAL_LAYER_ATTR as Qe, SURFACE_FLOATING_LAYER_ATTR as et } from "./dialogSurfaceScope.js";
|
|
13
|
+
var tt = /* @__PURE__ */ d('<h2 class="text-xs leading-none font-medium truncate select-none">'), nt = /* @__PURE__ */ d('<div data-floe-floating-window-header-actions=true class="flex shrink-0 cursor-default items-center gap-1"><span aria-hidden=true class="mx-2 h-4 w-px shrink-0 bg-border">'), it = /* @__PURE__ */ d('<div data-floe-floating-window-footer=true class="flex items-center justify-end gap-2 p-3 border-t border-border">'), ot = /* @__PURE__ */ d("<div data-floe-floating-window-resize-handle=n style=touch-action:none>"), rt = /* @__PURE__ */ d("<div data-floe-floating-window-resize-handle=s style=touch-action:none>"), lt = /* @__PURE__ */ d("<div data-floe-floating-window-resize-handle=e style=touch-action:none>"), at = /* @__PURE__ */ d("<div data-floe-floating-window-resize-handle=w style=touch-action:none>"), st = /* @__PURE__ */ d("<div data-floe-floating-window-resize-handle=ne style=touch-action:none>"), dt = /* @__PURE__ */ d("<div data-floe-floating-window-resize-handle=nw style=touch-action:none>"), ut = /* @__PURE__ */ d("<div data-floe-floating-window-resize-handle=se style=touch-action:none>"), ct = /* @__PURE__ */ d("<div data-floe-floating-window-resize-handle=sw style=touch-action:none>"), ft = /* @__PURE__ */ d('<div data-floe-geometry-surface=floating-window><div data-floe-dialog-surface-host=true><div data-floe-floating-window-titlebar=true style=touch-action:none><div class="flex-1 min-w-0 px-2"></div><div class="flex h-full shrink-0 items-stretch"></div></div><div data-floe-floating-window-content=true class="flex-1 overflow-auto p-3">');
|
|
14
14
|
function St(i) {
|
|
15
|
-
const
|
|
15
|
+
const G = () => i.resizable ?? !0, j = () => i.draggable ?? !0, M = () => i.minSize ?? {
|
|
16
16
|
width: 200,
|
|
17
17
|
height: 150
|
|
18
18
|
}, T = () => i.maxSize ?? {
|
|
19
19
|
width: 1 / 0,
|
|
20
20
|
height: 1 / 0
|
|
21
|
-
},
|
|
21
|
+
}, z = () => i.viewportInsets ?? {}, pe = () => i.zIndex ?? 100, xe = Ye(), ze = qe(), _ = () => ze.isMobile(), D = 16, V = () => `floating-window-${xe}-title`, [W, ye] = p(i.defaultPosition ?? {
|
|
22
22
|
x: 0,
|
|
23
23
|
y: 0
|
|
24
24
|
}), [O, be] = p(i.defaultSize ?? {
|
|
25
25
|
width: 400,
|
|
26
26
|
height: 300
|
|
27
|
-
}), [
|
|
27
|
+
}), [u, Z] = p(!1), [R, J] = p(!1), [E, K] = p(!1), [$e, H] = p(!1), S = Ke({
|
|
28
28
|
open: () => i.open,
|
|
29
29
|
exitDurationMs: 120
|
|
30
|
-
}), [
|
|
31
|
-
let
|
|
30
|
+
}), [_e, Se] = p(null);
|
|
31
|
+
let Q = {
|
|
32
32
|
x: 0,
|
|
33
33
|
y: 0
|
|
34
|
-
},
|
|
34
|
+
}, ee = {
|
|
35
35
|
x: 0,
|
|
36
36
|
y: 0,
|
|
37
37
|
width: 0,
|
|
38
38
|
height: 0
|
|
39
|
-
},
|
|
39
|
+
}, te = {
|
|
40
40
|
x: 0,
|
|
41
41
|
y: 0
|
|
42
|
-
},
|
|
42
|
+
}, ne = {
|
|
43
43
|
x: 0,
|
|
44
44
|
y: 0,
|
|
45
45
|
width: 0,
|
|
46
46
|
height: 0
|
|
47
|
-
},
|
|
47
|
+
}, ie = "se", l, s = null, A, v = null, I = {
|
|
48
48
|
x: 0,
|
|
49
49
|
y: 0
|
|
50
|
-
},
|
|
50
|
+
}, y = null, C = null, Y = !1, b = {
|
|
51
51
|
x: i.defaultPosition?.x ?? 0,
|
|
52
52
|
y: i.defaultPosition?.y ?? 0,
|
|
53
53
|
width: i.defaultSize?.width ?? 400,
|
|
@@ -64,16 +64,16 @@ function St(i) {
|
|
|
64
64
|
sw: "nesw-resize"
|
|
65
65
|
}, N = (e, t) => {
|
|
66
66
|
if (!e) {
|
|
67
|
-
|
|
67
|
+
C?.(), C = null;
|
|
68
68
|
return;
|
|
69
69
|
}
|
|
70
|
-
|
|
70
|
+
C?.(), C = Ve({
|
|
71
71
|
kind: v === "resize" ? "resize" : "drag",
|
|
72
72
|
cursor: t,
|
|
73
73
|
lockUserSelect: !0
|
|
74
74
|
});
|
|
75
|
-
},
|
|
76
|
-
|
|
75
|
+
}, oe = (e) => {
|
|
76
|
+
b = e, l && (l.style.transform = `translate3d(${e.x}px, ${e.y}px, 0)`, l.style.width = `${e.width}px`, l.style.height = `${e.height}px`);
|
|
77
77
|
}, X = () => {
|
|
78
78
|
const e = W(), t = O();
|
|
79
79
|
return {
|
|
@@ -83,7 +83,7 @@ function St(i) {
|
|
|
83
83
|
height: t.height
|
|
84
84
|
};
|
|
85
85
|
}, P = (e) => {
|
|
86
|
-
|
|
86
|
+
b = e, ye((t) => t.x === e.x && t.y === e.y ? t : {
|
|
87
87
|
x: e.x,
|
|
88
88
|
y: e.y
|
|
89
89
|
}), be((t) => t.width === e.width && t.height === e.height ? t : {
|
|
@@ -101,9 +101,9 @@ function St(i) {
|
|
|
101
101
|
const t = e instanceof Element ? e : null;
|
|
102
102
|
return t ? t.closest('button, input, select, textarea, a, [role="button"], [tabindex]:not([tabindex="-1"])') === null : !0;
|
|
103
103
|
}, U = (e) => !!l && e instanceof Node && l.contains(e), Ee = (e) => {
|
|
104
|
-
const r = (e instanceof Element ? e : null)?.closest('[role="menu"]')?.closest(`[${
|
|
104
|
+
const r = (e instanceof Element ? e : null)?.closest('[role="menu"]')?.closest(`[${et}="true"]`);
|
|
105
105
|
return !!(r && l?.contains(r));
|
|
106
|
-
},
|
|
106
|
+
}, Ae = () => {
|
|
107
107
|
if (!l) return null;
|
|
108
108
|
const e = l.getBoundingClientRect();
|
|
109
109
|
return {
|
|
@@ -112,23 +112,23 @@ function St(i) {
|
|
|
112
112
|
width: e.width,
|
|
113
113
|
height: e.height
|
|
114
114
|
};
|
|
115
|
-
},
|
|
116
|
-
i.open && (s === null || v === null || typeof window > "u" ||
|
|
115
|
+
}, re = () => {
|
|
116
|
+
i.open && (s === null || v === null || typeof window > "u" || oe(Je({
|
|
117
117
|
mode: v,
|
|
118
118
|
pointer: I,
|
|
119
|
-
dragStartPos:
|
|
120
|
-
dragStartRect:
|
|
121
|
-
resizeStartPos:
|
|
122
|
-
resizeStartRect:
|
|
123
|
-
resizeHandle:
|
|
124
|
-
minSize:
|
|
119
|
+
dragStartPos: Q,
|
|
120
|
+
dragStartRect: ee,
|
|
121
|
+
resizeStartPos: te,
|
|
122
|
+
resizeStartRect: ne,
|
|
123
|
+
resizeHandle: ie,
|
|
124
|
+
minSize: M(),
|
|
125
125
|
maxSize: T(),
|
|
126
126
|
viewport: {
|
|
127
127
|
width: window.innerWidth,
|
|
128
128
|
height: window.innerHeight
|
|
129
129
|
},
|
|
130
|
-
viewportInsets:
|
|
131
|
-
mobile:
|
|
130
|
+
viewportInsets: z(),
|
|
131
|
+
mobile: _(),
|
|
132
132
|
mobilePadding: D
|
|
133
133
|
})));
|
|
134
134
|
}, F = (e) => {
|
|
@@ -137,32 +137,32 @@ function St(i) {
|
|
|
137
137
|
width: window.innerWidth,
|
|
138
138
|
height: window.innerHeight
|
|
139
139
|
};
|
|
140
|
-
if (
|
|
141
|
-
P(ge(t,
|
|
140
|
+
if (u()) {
|
|
141
|
+
P(ge(t, z()));
|
|
142
142
|
return;
|
|
143
143
|
}
|
|
144
144
|
P(me({
|
|
145
145
|
rect: X(),
|
|
146
|
-
minSize:
|
|
146
|
+
minSize: M(),
|
|
147
147
|
maxSize: T(),
|
|
148
148
|
viewport: t,
|
|
149
|
-
viewportInsets:
|
|
150
|
-
mobile:
|
|
149
|
+
viewportInsets: z(),
|
|
150
|
+
mobile: _(),
|
|
151
151
|
mobilePadding: D,
|
|
152
152
|
center: e?.center ?? !1
|
|
153
153
|
}));
|
|
154
|
-
},
|
|
155
|
-
|
|
156
|
-
const t = e ?
|
|
157
|
-
|
|
158
|
-
t && P(t), s = null, v = null,
|
|
159
|
-
}), N(!1, ""),
|
|
154
|
+
}, le = (e) => {
|
|
155
|
+
y !== null && typeof cancelAnimationFrame < "u" && (cancelAnimationFrame(y), y = null), e && re();
|
|
156
|
+
const t = e ? Ae() ?? b : null;
|
|
157
|
+
Xe(() => {
|
|
158
|
+
t && P(t), s = null, v = null, J(!1), K(!1);
|
|
159
|
+
}), N(!1, ""), A = void 0;
|
|
160
160
|
}, q = (e = !1) => {
|
|
161
|
-
|
|
161
|
+
A ? A.stop({
|
|
162
162
|
commit: e
|
|
163
|
-
}) :
|
|
163
|
+
}) : le(e);
|
|
164
164
|
};
|
|
165
|
-
L(() => q(!1)),
|
|
165
|
+
L(() => q(!1)), Ne(() => {
|
|
166
166
|
i.open || F({
|
|
167
167
|
center: !i.defaultPosition
|
|
168
168
|
});
|
|
@@ -172,9 +172,9 @@ function St(i) {
|
|
|
172
172
|
});
|
|
173
173
|
};
|
|
174
174
|
window.addEventListener("resize", e), L(() => window.removeEventListener("resize", e));
|
|
175
|
-
}),
|
|
175
|
+
}), $(() => {
|
|
176
176
|
if (!i.open) return;
|
|
177
|
-
|
|
177
|
+
_();
|
|
178
178
|
const e = !Y && !i.defaultPosition, t = () => {
|
|
179
179
|
F({
|
|
180
180
|
center: e
|
|
@@ -185,11 +185,11 @@ function St(i) {
|
|
|
185
185
|
return;
|
|
186
186
|
}
|
|
187
187
|
requestAnimationFrame(t);
|
|
188
|
-
}),
|
|
189
|
-
!i.open || !Y || s !== null || (
|
|
188
|
+
}), $(() => {
|
|
189
|
+
!i.open || !Y || s !== null || (z(), Ue(() => F({
|
|
190
190
|
center: !1
|
|
191
191
|
})));
|
|
192
|
-
}),
|
|
192
|
+
}), $(() => {
|
|
193
193
|
if (!i.open) return;
|
|
194
194
|
const e = (t) => {
|
|
195
195
|
if (t.key !== "Escape") return;
|
|
@@ -197,13 +197,13 @@ function St(i) {
|
|
|
197
197
|
!U(t.target) && !U(o) || Ee(t.target) || (t.preventDefault(), typeof t.stopImmediatePropagation == "function" ? t.stopImmediatePropagation() : t.stopPropagation(), i.onOpenChange(!1));
|
|
198
198
|
};
|
|
199
199
|
document.addEventListener("keydown", e, !0), L(() => document.removeEventListener("keydown", e, !0));
|
|
200
|
-
}),
|
|
200
|
+
}), $(() => {
|
|
201
201
|
if (!i.open) {
|
|
202
202
|
H(!1), q(!1);
|
|
203
203
|
return;
|
|
204
204
|
}
|
|
205
205
|
H(!0);
|
|
206
|
-
}),
|
|
206
|
+
}), $(() => {
|
|
207
207
|
if (!i.open) return;
|
|
208
208
|
const e = (r) => {
|
|
209
209
|
H(U(r));
|
|
@@ -215,46 +215,46 @@ function St(i) {
|
|
|
215
215
|
document.addEventListener("pointerdown", t), document.addEventListener("focusin", o), L(() => {
|
|
216
216
|
document.removeEventListener("pointerdown", t), document.removeEventListener("focusin", o);
|
|
217
217
|
});
|
|
218
|
-
}),
|
|
218
|
+
}), $(() => {
|
|
219
219
|
if (!i.open) return;
|
|
220
220
|
const e = X();
|
|
221
|
-
s === null ?
|
|
221
|
+
s === null ? oe(e) : b = e;
|
|
222
222
|
});
|
|
223
|
-
const
|
|
224
|
-
!
|
|
223
|
+
const Ce = (e) => {
|
|
224
|
+
!j() || u() || s !== null || e.pointerType === "mouse" && e.button !== 0 || e.target?.closest('button, input, select, textarea, a, [role="button"], [data-floe-floating-window-header-actions]') || (e.preventDefault(), s = e.pointerId, v = "drag", J(!0), Q = {
|
|
225
225
|
x: e.clientX,
|
|
226
226
|
y: e.clientY
|
|
227
|
-
},
|
|
228
|
-
...
|
|
227
|
+
}, ee = {
|
|
228
|
+
...b
|
|
229
229
|
}, I = {
|
|
230
230
|
x: e.clientX,
|
|
231
231
|
y: e.clientY
|
|
232
232
|
}, N(!0, "grabbing"), se(e));
|
|
233
233
|
}, w = (e) => (t) => {
|
|
234
|
-
!
|
|
234
|
+
!G() || u() || s !== null || t.pointerType === "mouse" && t.button !== 0 || (t.preventDefault(), t.stopPropagation(), s = t.pointerId, v = "resize", K(!0), ie = e, te = {
|
|
235
235
|
x: t.clientX,
|
|
236
236
|
y: t.clientY
|
|
237
|
-
},
|
|
238
|
-
...
|
|
237
|
+
}, ne = {
|
|
238
|
+
...b
|
|
239
239
|
}, I = {
|
|
240
240
|
x: t.clientX,
|
|
241
241
|
y: t.clientY
|
|
242
242
|
}, N(!0, Ie[e]), se(t));
|
|
243
|
-
},
|
|
244
|
-
|
|
243
|
+
}, ae = () => {
|
|
244
|
+
y = null, re();
|
|
245
245
|
}, Fe = (e) => {
|
|
246
246
|
if (!(s === null || e.pointerId !== s) && v !== null && (I = {
|
|
247
247
|
x: e.clientX,
|
|
248
248
|
y: e.clientY
|
|
249
|
-
},
|
|
249
|
+
}, y === null)) {
|
|
250
250
|
if (typeof requestAnimationFrame > "u") {
|
|
251
|
-
|
|
251
|
+
ae();
|
|
252
252
|
return;
|
|
253
253
|
}
|
|
254
|
-
|
|
254
|
+
y = requestAnimationFrame(ae);
|
|
255
255
|
}
|
|
256
256
|
}, se = (e) => {
|
|
257
|
-
|
|
257
|
+
A = Ze({
|
|
258
258
|
pointerEvent: e,
|
|
259
259
|
captureEl: l,
|
|
260
260
|
onMove: Fe,
|
|
@@ -266,12 +266,12 @@ function St(i) {
|
|
|
266
266
|
I = {
|
|
267
267
|
x: r.latestClientX,
|
|
268
268
|
y: r.latestClientY
|
|
269
|
-
},
|
|
269
|
+
}, le(t || o === "pointer_cancel");
|
|
270
270
|
}
|
|
271
271
|
});
|
|
272
|
-
},
|
|
273
|
-
if (s !== null && q(!0),
|
|
274
|
-
const t =
|
|
272
|
+
}, de = () => {
|
|
273
|
+
if (s !== null && q(!0), u()) {
|
|
274
|
+
const t = _e();
|
|
275
275
|
t && P(me({
|
|
276
276
|
rect: {
|
|
277
277
|
x: t.position.x,
|
|
@@ -279,21 +279,21 @@ function St(i) {
|
|
|
279
279
|
width: t.size.width,
|
|
280
280
|
height: t.size.height
|
|
281
281
|
},
|
|
282
|
-
minSize:
|
|
282
|
+
minSize: M(),
|
|
283
283
|
maxSize: T(),
|
|
284
284
|
viewport: {
|
|
285
285
|
width: window.innerWidth,
|
|
286
286
|
height: window.innerHeight
|
|
287
287
|
},
|
|
288
|
-
viewportInsets:
|
|
289
|
-
mobile:
|
|
288
|
+
viewportInsets: z(),
|
|
289
|
+
mobile: _(),
|
|
290
290
|
mobilePadding: D,
|
|
291
291
|
center: !1
|
|
292
|
-
})),
|
|
292
|
+
})), Z(!1);
|
|
293
293
|
return;
|
|
294
294
|
}
|
|
295
295
|
const e = X();
|
|
296
|
-
|
|
296
|
+
Se({
|
|
297
297
|
position: {
|
|
298
298
|
x: e.x,
|
|
299
299
|
y: e.y
|
|
@@ -305,12 +305,12 @@ function St(i) {
|
|
|
305
305
|
}), P(ge({
|
|
306
306
|
width: window.innerWidth,
|
|
307
307
|
height: window.innerHeight
|
|
308
|
-
},
|
|
308
|
+
}, z())), Z(!0);
|
|
309
309
|
}, Le = (e) => {
|
|
310
|
-
e.target?.closest("button") ||
|
|
311
|
-
},
|
|
310
|
+
e.target?.closest("button, [data-floe-floating-window-header-actions]") || de();
|
|
311
|
+
}, ke = (e) => {
|
|
312
312
|
Re(e.target) && Pe();
|
|
313
|
-
},
|
|
313
|
+
}, g = (e) => k("absolute z-10", {
|
|
314
314
|
n: "cursor-ns-resize top-0 left-2 right-2 h-1",
|
|
315
315
|
s: "cursor-ns-resize bottom-0 left-2 right-2 h-1",
|
|
316
316
|
e: "cursor-ew-resize right-0 top-2 bottom-2 w-1",
|
|
@@ -320,26 +320,26 @@ function St(i) {
|
|
|
320
320
|
se: "cursor-nwse-resize bottom-0 right-0 w-2 h-2",
|
|
321
321
|
sw: "cursor-nesw-resize bottom-0 left-0 w-2 h-2"
|
|
322
322
|
}[e]);
|
|
323
|
-
return a(
|
|
323
|
+
return a(x, {
|
|
324
324
|
get when() {
|
|
325
|
-
return
|
|
325
|
+
return S.mounted();
|
|
326
326
|
},
|
|
327
327
|
get children() {
|
|
328
|
-
return a(
|
|
328
|
+
return a(De, {
|
|
329
329
|
get children() {
|
|
330
|
-
var e =
|
|
331
|
-
return typeof ue == "function" ?
|
|
330
|
+
var e = ft(), t = e.firstChild, o = t.firstChild, r = o.firstChild, B = r.nextSibling, Me = o.nextSibling, ue = l;
|
|
331
|
+
return typeof ue == "function" ? Oe(ue, e) : l = e, ce(e, fe({
|
|
332
332
|
get "data-floating-presence"() {
|
|
333
|
-
return
|
|
333
|
+
return S.state();
|
|
334
334
|
},
|
|
335
335
|
get "aria-hidden"() {
|
|
336
|
-
return
|
|
336
|
+
return S.exiting() ? "true" : void 0;
|
|
337
337
|
}
|
|
338
338
|
}, {
|
|
339
339
|
[ve]: "true"
|
|
340
340
|
}, {
|
|
341
341
|
get class() {
|
|
342
|
-
return
|
|
342
|
+
return k("fixed left-0 top-0 z-[100] flex flex-col", (R() || E()) && "select-none", S.exiting() && "pointer-events-none");
|
|
343
343
|
},
|
|
344
344
|
get style() {
|
|
345
345
|
return {
|
|
@@ -352,12 +352,12 @@ function St(i) {
|
|
|
352
352
|
},
|
|
353
353
|
role: "dialog",
|
|
354
354
|
get "aria-labelledby"() {
|
|
355
|
-
return
|
|
355
|
+
return he(() => !!i.title)() ? V() : void 0;
|
|
356
356
|
},
|
|
357
357
|
tabIndex: -1,
|
|
358
|
-
onPointerDown:
|
|
358
|
+
onPointerDown: ke
|
|
359
359
|
}), !1, !0), ce(t, fe({
|
|
360
|
-
[
|
|
360
|
+
[Qe]: "true"
|
|
361
361
|
}, {
|
|
362
362
|
"data-floe-floating-window-surface": "true",
|
|
363
363
|
"data-floe-surface": "floating",
|
|
@@ -365,59 +365,67 @@ function St(i) {
|
|
|
365
365
|
return R() || E() ? "true" : void 0;
|
|
366
366
|
},
|
|
367
367
|
get "data-floe-floating-window-state"() {
|
|
368
|
-
return
|
|
368
|
+
return $e() ? "active" : "inactive";
|
|
369
369
|
}
|
|
370
370
|
}, {
|
|
371
371
|
[ve]: "true"
|
|
372
372
|
}, {
|
|
373
373
|
get class() {
|
|
374
|
-
return
|
|
374
|
+
return k("relative flex h-full w-full flex-col overflow-hidden", "text-card-foreground rounded-md", "border", "floe-floating-presence floe-floating-window-motion", (R() || E()) && "floe-floating-presence--suspended", u() && "rounded-none", i.class);
|
|
375
375
|
},
|
|
376
376
|
get style() {
|
|
377
377
|
return {
|
|
378
|
-
"border-radius":
|
|
378
|
+
"border-radius": u() ? "0" : "10px"
|
|
379
379
|
};
|
|
380
380
|
},
|
|
381
381
|
get "data-floating-presence"() {
|
|
382
|
-
return
|
|
382
|
+
return S.state();
|
|
383
383
|
}
|
|
384
|
-
}), !1, !0), o.$$dblclick = Le, o.$$pointerdown =
|
|
384
|
+
}), !1, !0), o.$$dblclick = Le, o.$$pointerdown = Ce, c(r, a(x, {
|
|
385
385
|
get when() {
|
|
386
386
|
return i.title;
|
|
387
387
|
},
|
|
388
388
|
get children() {
|
|
389
|
-
var n =
|
|
390
|
-
return
|
|
389
|
+
var n = tt();
|
|
390
|
+
return c(n, () => i.title), f(() => We(n, "id", V())), n;
|
|
391
|
+
}
|
|
392
|
+
})), c(o, a(x, {
|
|
393
|
+
get when() {
|
|
394
|
+
return i.headerActions;
|
|
395
|
+
},
|
|
396
|
+
get children() {
|
|
397
|
+
var n = nt(), Te = n.firstChild;
|
|
398
|
+
return c(n, () => i.headerActions, Te), n;
|
|
391
399
|
}
|
|
392
|
-
})),
|
|
400
|
+
}), B), c(B, a(we, {
|
|
393
401
|
variant: "ghost",
|
|
394
402
|
size: "icon",
|
|
395
403
|
"data-floe-floating-window-control": "maximize",
|
|
396
404
|
class: "h-full w-9 shrink-0 rounded-none border-0 px-0 active:scale-100",
|
|
397
405
|
onClick: (n) => {
|
|
398
|
-
n.stopPropagation(),
|
|
406
|
+
n.stopPropagation(), de();
|
|
399
407
|
},
|
|
400
408
|
get "aria-label"() {
|
|
401
|
-
return
|
|
409
|
+
return u() ? "Restore" : "Maximize";
|
|
402
410
|
},
|
|
403
411
|
get children() {
|
|
404
|
-
return a(
|
|
412
|
+
return a(x, {
|
|
405
413
|
get when() {
|
|
406
|
-
return
|
|
414
|
+
return u();
|
|
407
415
|
},
|
|
408
416
|
get fallback() {
|
|
409
|
-
return a(
|
|
417
|
+
return a(Ge, {
|
|
410
418
|
class: "w-3 h-3"
|
|
411
419
|
});
|
|
412
420
|
},
|
|
413
421
|
get children() {
|
|
414
|
-
return a(
|
|
422
|
+
return a(Be, {
|
|
415
423
|
class: "w-3 h-3"
|
|
416
424
|
});
|
|
417
425
|
}
|
|
418
426
|
});
|
|
419
427
|
}
|
|
420
|
-
}), null),
|
|
428
|
+
}), null), c(B, a(we, {
|
|
421
429
|
variant: "ghost-destructive",
|
|
422
430
|
size: "icon",
|
|
423
431
|
"data-floe-floating-window-control": "close",
|
|
@@ -427,63 +435,63 @@ function St(i) {
|
|
|
427
435
|
},
|
|
428
436
|
"aria-label": "Close",
|
|
429
437
|
get children() {
|
|
430
|
-
return a(
|
|
438
|
+
return a(je, {
|
|
431
439
|
class: "w-3.5 h-3.5"
|
|
432
440
|
});
|
|
433
441
|
}
|
|
434
|
-
}), null),
|
|
442
|
+
}), null), c(Me, () => i.children), c(t, a(x, {
|
|
435
443
|
get when() {
|
|
436
444
|
return i.footer;
|
|
437
445
|
},
|
|
438
446
|
get children() {
|
|
439
|
-
var n =
|
|
440
|
-
return
|
|
447
|
+
var n = it();
|
|
448
|
+
return c(n, () => i.footer), n;
|
|
441
449
|
}
|
|
442
|
-
}), null),
|
|
450
|
+
}), null), c(t, a(x, {
|
|
443
451
|
get when() {
|
|
444
|
-
return
|
|
452
|
+
return he(() => !!G())() && !u();
|
|
445
453
|
},
|
|
446
454
|
get children() {
|
|
447
455
|
return [(() => {
|
|
448
|
-
var n =
|
|
449
|
-
return m(n, "pointerdown", w("n"), !0),
|
|
456
|
+
var n = ot();
|
|
457
|
+
return m(n, "pointerdown", w("n"), !0), f(() => h(n, g("n"))), n;
|
|
450
458
|
})(), (() => {
|
|
451
|
-
var n =
|
|
452
|
-
return m(n, "pointerdown", w("s"), !0),
|
|
453
|
-
})(), a(
|
|
459
|
+
var n = rt();
|
|
460
|
+
return m(n, "pointerdown", w("s"), !0), f(() => h(n, g("s"))), n;
|
|
461
|
+
})(), a(x, {
|
|
454
462
|
get when() {
|
|
455
|
-
return
|
|
463
|
+
return !_();
|
|
456
464
|
},
|
|
457
465
|
get children() {
|
|
458
466
|
return [(() => {
|
|
459
|
-
var n = ot();
|
|
460
|
-
return m(n, "pointerdown", w("e"), !0), c(() => f(n, h("e"))), n;
|
|
461
|
-
})(), (() => {
|
|
462
|
-
var n = rt();
|
|
463
|
-
return m(n, "pointerdown", w("w"), !0), c(() => f(n, h("w"))), n;
|
|
464
|
-
})(), (() => {
|
|
465
467
|
var n = lt();
|
|
466
|
-
return m(n, "pointerdown", w("
|
|
467
|
-
})(), (() => {
|
|
468
|
-
var n = st();
|
|
469
|
-
return m(n, "pointerdown", w("nw"), !0), c(() => f(n, h("nw"))), n;
|
|
468
|
+
return m(n, "pointerdown", w("e"), !0), f(() => h(n, g("e"))), n;
|
|
470
469
|
})(), (() => {
|
|
471
470
|
var n = at();
|
|
472
|
-
return m(n, "pointerdown", w("
|
|
471
|
+
return m(n, "pointerdown", w("w"), !0), f(() => h(n, g("w"))), n;
|
|
472
|
+
})(), (() => {
|
|
473
|
+
var n = st();
|
|
474
|
+
return m(n, "pointerdown", w("ne"), !0), f(() => h(n, g("ne"))), n;
|
|
473
475
|
})(), (() => {
|
|
474
476
|
var n = dt();
|
|
475
|
-
return m(n, "pointerdown", w("
|
|
477
|
+
return m(n, "pointerdown", w("nw"), !0), f(() => h(n, g("nw"))), n;
|
|
478
|
+
})(), (() => {
|
|
479
|
+
var n = ut();
|
|
480
|
+
return m(n, "pointerdown", w("se"), !0), f(() => h(n, g("se"))), n;
|
|
481
|
+
})(), (() => {
|
|
482
|
+
var n = ct();
|
|
483
|
+
return m(n, "pointerdown", w("sw"), !0), f(() => h(n, g("sw"))), n;
|
|
476
484
|
})()];
|
|
477
485
|
}
|
|
478
486
|
})];
|
|
479
487
|
}
|
|
480
|
-
}), null),
|
|
488
|
+
}), null), f(() => h(o, k("flex shrink-0 items-center justify-between h-8", "border-b", u() ? "rounded-none" : "rounded-t-md", j() && !u() && "cursor-move"))), e;
|
|
481
489
|
}
|
|
482
490
|
});
|
|
483
491
|
}
|
|
484
492
|
});
|
|
485
493
|
}
|
|
486
|
-
|
|
494
|
+
He(["pointerdown", "dblclick"]);
|
|
487
495
|
export {
|
|
488
496
|
St as FloatingWindow
|
|
489
497
|
};
|
|
@@ -8,6 +8,8 @@ export interface WorkbenchFilterBarProps {
|
|
|
8
8
|
widgets: readonly WorkbenchWidgetItem[];
|
|
9
9
|
filters: Record<string, boolean>;
|
|
10
10
|
mode?: WorkbenchInteractionMode;
|
|
11
|
+
/** Optional artwork shared by the mode trigger and menu; omitted entries use the built-in icons. */
|
|
12
|
+
modeIcons?: WorkbenchDockModeIcons;
|
|
11
13
|
/** Changes built-in Dock clicks without affecting drag-to-create behavior. */
|
|
12
14
|
activationMode?: WorkbenchDockItemActivationMode;
|
|
13
15
|
/** Solo a single dock component in the supplied mode scope; soloing it again shows the full scope. */
|
|
@@ -44,6 +46,9 @@ export type WorkbenchDockItemPresentation = Readonly<{
|
|
|
44
46
|
currentIndex: number | null;
|
|
45
47
|
active: boolean;
|
|
46
48
|
}>;
|
|
49
|
+
export type WorkbenchDockModeIcons = Readonly<Partial<Record<'work' | 'background', Component<{
|
|
50
|
+
class?: string;
|
|
51
|
+
}>>>>;
|
|
47
52
|
export type WorkbenchDockAction = Readonly<{
|
|
48
53
|
id: string;
|
|
49
54
|
label: string;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { insert as
|
|
2
|
-
import { createSignal as
|
|
1
|
+
import { insert as h, createComponent as l, effect as K, setAttribute as L, memo as B, className as Ke, template as $, addEventListener as Ce, Portal as We, setStyleProperty as Ne, use as Ve, delegateEvents as Ge } from "solid-js/web";
|
|
2
|
+
import { createSignal as de, onCleanup as p, createEffect as ee, createMemo as A, Show as R, For as te, Index as Ue } from "solid-js";
|
|
3
3
|
import { Motion as W } from "../../node_modules/.pnpm/solid-motionone@1.0.4_solid-js@1.9.11/node_modules/solid-motionone/dist/index.js";
|
|
4
4
|
import { easing as N, duration as V } from "../../utils/animations.js";
|
|
5
5
|
import { Plus as qe } from "../icons/index.js";
|
|
@@ -9,10 +9,10 @@ import { clientToCanvasWorld as Je } from "../ui/canvasGeometry.js";
|
|
|
9
9
|
import { isBarItemContextMenuKey as Qe, keyboardBarItemContextMenuRequest as Ze } from "../layout/barItemContextMenu.js";
|
|
10
10
|
import { createWorkbenchWidgetFrame as pe } from "./workbenchHelpers.js";
|
|
11
11
|
import { getWidgetEntry as et } from "./widgets/widgetRegistry.js";
|
|
12
|
-
import { WORKBENCH_EDGE_AUTO_PAN_FRAME_SELECTOR as
|
|
12
|
+
import { WORKBENCH_EDGE_AUTO_PAN_FRAME_SELECTOR as Ie, frameFromElement as Le, createWorkbenchEdgeAutoPanController as tt } from "./workbenchEdgeAutoPan.js";
|
|
13
13
|
import { DockLayoutDashboard as nt, DockLayers as ot, DockRegion as rt, DockText as it, DockMessageSquare as at } from "../icons/DockIcons.js";
|
|
14
|
-
var ct = /* @__PURE__ */
|
|
15
|
-
const Pe = 5, kt = 1e3,
|
|
14
|
+
var ct = /* @__PURE__ */ $("<button type=button class=workbench-dock__item>"), lt = /* @__PURE__ */ $('<button type=button class="workbench-dock__item workbench-dock__action">'), dt = /* @__PURE__ */ $("<span class=workbench-dock__external-placeholder aria-hidden=true>"), st = /* @__PURE__ */ $('<div class=workbench-dock__mode-popover role=menu aria-label="Canvas mode">'), ut = /* @__PURE__ */ $("<span class=workbench-dock__divider aria-hidden=true>"), gt = /* @__PURE__ */ $('<div data-floe-canvas-interactive=true><div class=workbench-dock__mode-switcher><button type=button class="workbench-dock__item workbench-dock__mode-trigger"aria-label="Switch canvas mode"aria-haspopup=menu></button></div><span class=workbench-dock__divider aria-hidden=true>'), vt = /* @__PURE__ */ $("<button type=button class=workbench-dock__mode-option role=menuitemradio><span class=workbench-dock__mode-option-icon></span><span class=workbench-dock__mode-option-copy><span class=workbench-dock__mode-option-label></span><span class=workbench-dock__mode-option-description>"), ft = /* @__PURE__ */ $("<div class=workbench-dock-ghost aria-hidden=true><div class=workbench-dock-ghost__halo></div><div class=workbench-dock-ghost__card><div class=workbench-dock-ghost__icon></div><div class=workbench-dock-ghost__copy><div class=workbench-dock-ghost__title></div><div class=workbench-dock-ghost__hint><span>");
|
|
15
|
+
const Pe = 5, kt = 1e3, mt = ".workbench-dock", ht = [{
|
|
16
16
|
mode: "work",
|
|
17
17
|
label: "Work Mode",
|
|
18
18
|
description: "Operate windows and sticky notes",
|
|
@@ -22,11 +22,11 @@ const Pe = 5, kt = 1e3, ht = ".workbench-dock", de = [{
|
|
|
22
22
|
label: "Composition Mode",
|
|
23
23
|
description: "Arrange regions and canvas text",
|
|
24
24
|
icon: ot
|
|
25
|
-
}],
|
|
25
|
+
}], wt = [{
|
|
26
26
|
tool: "sticky-note",
|
|
27
27
|
label: "Sticky",
|
|
28
28
|
icon: at
|
|
29
|
-
}],
|
|
29
|
+
}], bt = [{
|
|
30
30
|
tool: "background-region",
|
|
31
31
|
label: "Region",
|
|
32
32
|
icon: rt
|
|
@@ -35,20 +35,20 @@ const Pe = 5, kt = 1e3, ht = ".workbench-dock", de = [{
|
|
|
35
35
|
label: "Text",
|
|
36
36
|
icon: it
|
|
37
37
|
}];
|
|
38
|
-
function
|
|
39
|
-
const a = e?.closest(".workbench-surface")?.querySelector(
|
|
40
|
-
return a instanceof HTMLElement ?
|
|
38
|
+
function _t(e) {
|
|
39
|
+
const a = e?.closest(".workbench-surface")?.querySelector(Ie);
|
|
40
|
+
return a instanceof HTMLElement ? Le(a) : null;
|
|
41
41
|
}
|
|
42
42
|
function ue(e, v, a) {
|
|
43
43
|
return e >= a.left && e <= a.right && v >= a.top && v <= a.bottom;
|
|
44
44
|
}
|
|
45
|
-
function
|
|
45
|
+
function Dt(e, v, a) {
|
|
46
46
|
return a ? ue(e, v, a) : !1;
|
|
47
47
|
}
|
|
48
48
|
function xe(e, v, a) {
|
|
49
49
|
return Math.min(a, Math.max(v, e));
|
|
50
50
|
}
|
|
51
|
-
function
|
|
51
|
+
function Et(e, v, a, c, d) {
|
|
52
52
|
if (!e) return !1;
|
|
53
53
|
if (ue(v, a, e) || ue(c, d, e))
|
|
54
54
|
return !0;
|
|
@@ -64,7 +64,7 @@ function Dt(e, v, a, c, d) {
|
|
|
64
64
|
function Me(e, v, a) {
|
|
65
65
|
if (!a || typeof document.elementFromPoint != "function") return !1;
|
|
66
66
|
const c = document.elementFromPoint(e, v);
|
|
67
|
-
return c instanceof Element && c.closest(
|
|
67
|
+
return c instanceof Element && c.closest(mt) === a;
|
|
68
68
|
}
|
|
69
69
|
function se(e) {
|
|
70
70
|
const v = () => e.hoverOffset === -1 ? {
|
|
@@ -102,7 +102,7 @@ function se(e) {
|
|
|
102
102
|
};
|
|
103
103
|
return (() => {
|
|
104
104
|
var r = ct();
|
|
105
|
-
return r.$$keydown = s, r.$$contextmenu = d, r.$$click = P, r.$$pointerdown = c, r.addEventListener("pointerleave", () => e.onLeave()), r.addEventListener("pointerenter", () => e.onEnter()),
|
|
105
|
+
return r.$$keydown = s, r.$$contextmenu = d, r.$$click = P, r.$$pointerdown = c, r.addEventListener("pointerleave", () => e.onLeave()), r.addEventListener("pointerenter", () => e.onEnter()), h(r, l(W.span, {
|
|
106
106
|
class: "workbench-dock__tile",
|
|
107
107
|
get animate() {
|
|
108
108
|
return v();
|
|
@@ -121,7 +121,7 @@ function se(e) {
|
|
|
121
121
|
});
|
|
122
122
|
})();
|
|
123
123
|
}
|
|
124
|
-
}), null),
|
|
124
|
+
}), null), h(r, l(W.span, {
|
|
125
125
|
class: "workbench-dock__tooltip",
|
|
126
126
|
get animate() {
|
|
127
127
|
return {
|
|
@@ -139,8 +139,8 @@ function se(e) {
|
|
|
139
139
|
return B(() => e.activationMode === "focus-cycle")() ? b() : e.label;
|
|
140
140
|
}
|
|
141
141
|
}), null), K((i) => {
|
|
142
|
-
var D = e.kind === "host" ? e.id : void 0, x = e.kind === "widget" || e.kind === "tool" ? e.id : void 0, f = !!e.active, M = !!(e.filterable && !e.visible),
|
|
143
|
-
return D !== i.e &&
|
|
142
|
+
var D = e.kind === "host" ? e.id : void 0, x = e.kind === "widget" || e.kind === "tool" ? e.id : void 0, f = !!e.active, M = !!(e.filterable && !e.visible), X = !!a(), z = !!e.isDragging, Y = e.activationMode === "focus-cycle" && e.presentation ? b() : e.filterable ? `${e.label} — click to solo, drag to canvas to create` : `${e.label} — drag to canvas to create`, j = e.activationMode === "focus-cycle" ? e.presentation?.active : e.active, F = e.onContextMenu ? "menu" : void 0;
|
|
143
|
+
return D !== i.e && L(r, "data-workbench-dock-item", i.e = D), x !== i.t && L(r, "data-workbench-dock-component", i.t = x), f !== i.a && r.classList.toggle("is-active", i.a = f), M !== i.o && r.classList.toggle("is-filter-muted", i.o = M), X !== i.i && r.classList.toggle("is-hovered", i.i = X), z !== i.n && r.classList.toggle("is-source-dragging", i.n = z), Y !== i.s && L(r, "aria-label", i.s = Y), j !== i.h && L(r, "aria-pressed", i.h = j), F !== i.r && L(r, "aria-haspopup", i.r = F), i;
|
|
144
144
|
}, {
|
|
145
145
|
e: void 0,
|
|
146
146
|
t: void 0,
|
|
@@ -154,7 +154,7 @@ function se(e) {
|
|
|
154
154
|
}), r;
|
|
155
155
|
})();
|
|
156
156
|
}
|
|
157
|
-
function
|
|
157
|
+
function Ct(e) {
|
|
158
158
|
const v = () => e.hoverOffset === -1, a = () => ({
|
|
159
159
|
scale: 1,
|
|
160
160
|
y: 0,
|
|
@@ -162,7 +162,7 @@ function Et(e) {
|
|
|
162
162
|
}), c = e.action.icon;
|
|
163
163
|
return (() => {
|
|
164
164
|
var d = lt();
|
|
165
|
-
return d.$$click = (s) => e.onActivate(s.currentTarget), d.addEventListener("dragstart", (s) => s.preventDefault()), Ce(d, "pointerleave", e.onLeave), Ce(d, "pointerenter", e.onEnter),
|
|
165
|
+
return d.$$click = (s) => e.onActivate(s.currentTarget), d.addEventListener("dragstart", (s) => s.preventDefault()), Ce(d, "pointerleave", e.onLeave), Ce(d, "pointerenter", e.onEnter), L(d, "draggable", !1), h(d, l(W.span, {
|
|
166
166
|
class: "workbench-dock__tile",
|
|
167
167
|
get animate() {
|
|
168
168
|
return a();
|
|
@@ -178,7 +178,7 @@ function Et(e) {
|
|
|
178
178
|
class: "workbench-dock__icon"
|
|
179
179
|
});
|
|
180
180
|
}
|
|
181
|
-
}), null),
|
|
181
|
+
}), null), h(d, l(W.span, {
|
|
182
182
|
class: "workbench-dock__tooltip",
|
|
183
183
|
get animate() {
|
|
184
184
|
return {
|
|
@@ -197,7 +197,7 @@ function Et(e) {
|
|
|
197
197
|
}
|
|
198
198
|
}), null), K((s) => {
|
|
199
199
|
var P = e.action.id, b = !!e.action.active, r = !!v(), i = e.action.label, D = e.action.active;
|
|
200
|
-
return P !== s.e &&
|
|
200
|
+
return P !== s.e && L(d, "data-workbench-dock-action", s.e = P), b !== s.t && d.classList.toggle("is-active", s.t = b), r !== s.a && d.classList.toggle("is-hovered", s.a = r), i !== s.o && L(d, "aria-label", s.o = i), D !== s.i && L(d, "aria-pressed", s.i = D), s;
|
|
201
201
|
}, {
|
|
202
202
|
e: void 0,
|
|
203
203
|
t: void 0,
|
|
@@ -207,8 +207,8 @@ function Et(e) {
|
|
|
207
207
|
}), d;
|
|
208
208
|
})();
|
|
209
209
|
}
|
|
210
|
-
function
|
|
211
|
-
const [v, a] =
|
|
210
|
+
function Bt(e) {
|
|
211
|
+
const [v, a] = de(null), [c, d] = de(null), [s, P] = de(!1);
|
|
212
212
|
let b, r, i, D, x = null;
|
|
213
213
|
const f = () => e.activationMode === "focus-cycle" ? "focus-cycle" : "solo-filter";
|
|
214
214
|
p(() => {
|
|
@@ -240,13 +240,13 @@ function Ft(e) {
|
|
|
240
240
|
const M = (t) => {
|
|
241
241
|
const n = v();
|
|
242
242
|
return n === null || n <= G().length ? 0 : n === t ? -1 : n === t + 1 ? -2 : n === t - 1 ? 1 : 0;
|
|
243
|
-
},
|
|
243
|
+
}, X = () => {
|
|
244
244
|
D?.stop(), D = void 0, x = null;
|
|
245
245
|
}, z = () => {
|
|
246
246
|
!e.viewport || !e.onViewportCommit || (x = e.viewport, D?.stop(), D = tt({
|
|
247
247
|
readFrame: () => {
|
|
248
|
-
const n = b?.closest(".workbench-surface")?.querySelector(
|
|
249
|
-
return n instanceof HTMLElement ?
|
|
248
|
+
const n = b?.closest(".workbench-surface")?.querySelector(Ie);
|
|
249
|
+
return n instanceof HTMLElement ? Le(n) : null;
|
|
250
250
|
},
|
|
251
251
|
readViewport: () => x ?? e.viewport ?? null,
|
|
252
252
|
commitViewport: (t) => {
|
|
@@ -258,7 +258,7 @@ function Ft(e) {
|
|
|
258
258
|
return !!(t?.moved && t.hasEnteredCanvas && !Me(t.clientX, t.clientY, b));
|
|
259
259
|
}
|
|
260
260
|
}));
|
|
261
|
-
},
|
|
261
|
+
}, Y = (t, n, k, E) => {
|
|
262
262
|
if (e.onDockActivation?.({
|
|
263
263
|
kind: t,
|
|
264
264
|
id: String(n)
|
|
@@ -267,15 +267,15 @@ function Ft(e) {
|
|
|
267
267
|
e.dockItems?.find((o) => o.id === n)?.onActivate?.(E);
|
|
268
268
|
return;
|
|
269
269
|
}
|
|
270
|
-
const
|
|
270
|
+
const I = {
|
|
271
271
|
kind: t,
|
|
272
272
|
id: n,
|
|
273
273
|
label: k,
|
|
274
274
|
trigger: E
|
|
275
275
|
};
|
|
276
|
-
if (!e.onItemClick?.(
|
|
276
|
+
if (!e.onItemClick?.(I)) {
|
|
277
277
|
if (f() === "focus-cycle") {
|
|
278
|
-
e.onFocusCycleItem?.(
|
|
278
|
+
e.onFocusCycleItem?.(I);
|
|
279
279
|
return;
|
|
280
280
|
}
|
|
281
281
|
y() !== "background" && e.onSoloFilter(String(n), ke());
|
|
@@ -284,9 +284,9 @@ function Ft(e) {
|
|
|
284
284
|
const n = c();
|
|
285
285
|
if (!n) return;
|
|
286
286
|
const k = !n.moved, E = x ?? e.viewport;
|
|
287
|
-
if (n.stopInteraction(),
|
|
287
|
+
if (n.stopInteraction(), X(), d(null), r = void 0, n.kind === "external" && n.moved && i?.expire(), k) {
|
|
288
288
|
if (n.kind === "external" || !(n.trigger instanceof HTMLButtonElement)) return;
|
|
289
|
-
|
|
289
|
+
Y(n.kind, n.id, n.label, n.trigger);
|
|
290
290
|
return;
|
|
291
291
|
}
|
|
292
292
|
if (t && n.overDock && n.dockDrop) {
|
|
@@ -294,29 +294,29 @@ function Ft(e) {
|
|
|
294
294
|
return;
|
|
295
295
|
}
|
|
296
296
|
if (t && n.overCanvas && n.canvasPlacement) {
|
|
297
|
-
const
|
|
297
|
+
const I = n.canvasFrame && E ? Je(n.canvasFrame, E, {
|
|
298
298
|
clientX: n.clientX,
|
|
299
299
|
clientY: n.clientY
|
|
300
300
|
}) : null, o = n.canvasFrame ? {
|
|
301
301
|
dropAllowed: n.overCanvas,
|
|
302
302
|
canvasFrame: n.canvasFrame,
|
|
303
|
-
...
|
|
304
|
-
worldPoint:
|
|
303
|
+
...I ? {
|
|
304
|
+
worldPoint: I
|
|
305
305
|
} : {}
|
|
306
306
|
} : void 0;
|
|
307
307
|
n.canvasPlacement.onDrop(n.clientX, n.clientY, o);
|
|
308
308
|
}
|
|
309
|
-
},
|
|
309
|
+
}, F = (t, n, k, E, I, o, _, w, u = "before-components") => {
|
|
310
310
|
t.preventDefault(), r?.stop({
|
|
311
311
|
reason: "manual_stop",
|
|
312
312
|
commit: !1
|
|
313
313
|
}), z();
|
|
314
|
-
const C =
|
|
314
|
+
const C = _t(b);
|
|
315
315
|
d({
|
|
316
316
|
kind: n,
|
|
317
317
|
id: k,
|
|
318
318
|
label: E,
|
|
319
|
-
icon:
|
|
319
|
+
icon: I,
|
|
320
320
|
pointerId: t.pointerId,
|
|
321
321
|
startClientX: t.clientX,
|
|
322
322
|
startClientY: t.clientY,
|
|
@@ -339,38 +339,38 @@ function Ft(e) {
|
|
|
339
339
|
});
|
|
340
340
|
const T = (g) => {
|
|
341
341
|
let O = !1;
|
|
342
|
-
d((
|
|
343
|
-
if (!
|
|
344
|
-
const J = g.clientX -
|
|
345
|
-
if (
|
|
342
|
+
d((m) => {
|
|
343
|
+
if (!m || m.pointerId !== g.pointerId) return m;
|
|
344
|
+
const J = g.clientX - m.startClientX, Q = g.clientY - m.startClientY, H = m.moved || Math.abs(J) > Pe || Math.abs(Q) > Pe;
|
|
345
|
+
if (m.kind === "external" && H && !m.moved) {
|
|
346
346
|
let U;
|
|
347
347
|
const q = () => {
|
|
348
|
-
U !== void 0 && window.clearTimeout(U),
|
|
348
|
+
U !== void 0 && window.clearTimeout(U), m.trigger.removeEventListener("click", _e, !0), window.removeEventListener("pointerdown", De, !0), i?.clear === q && (i = void 0);
|
|
349
349
|
}, _e = (Ee) => {
|
|
350
350
|
Ee.preventDefault(), Ee.stopImmediatePropagation(), q();
|
|
351
351
|
}, De = () => q(), He = () => {
|
|
352
352
|
U !== void 0 && window.clearTimeout(U), U = window.setTimeout(q, kt);
|
|
353
353
|
};
|
|
354
|
-
|
|
354
|
+
m.trigger.addEventListener("click", _e, !0), window.addEventListener("pointerdown", De, !0), i = {
|
|
355
355
|
clear: q,
|
|
356
356
|
expire: He
|
|
357
357
|
};
|
|
358
358
|
}
|
|
359
|
-
const Z = Me(g.clientX, g.clientY, b), S =
|
|
359
|
+
const Z = Me(g.clientX, g.clientY, b), S = m.canvasFrame, he = H && Dt(g.clientX, g.clientY, S), we = he && !Z, Fe = H && !Z && Et(S, m.clientX, m.clientY, g.clientX, g.clientY), be = m.hasEnteredCanvas || he || Fe;
|
|
360
360
|
O = H && be && !Z;
|
|
361
361
|
const Be = S ? xe(g.clientX, S.left, S.right) : g.clientX, Re = S ? xe(g.clientY, S.top, S.bottom) : g.clientY;
|
|
362
362
|
return {
|
|
363
|
-
...
|
|
363
|
+
...m,
|
|
364
364
|
clientX: g.clientX,
|
|
365
365
|
clientY: g.clientY,
|
|
366
366
|
moved: H,
|
|
367
367
|
overDock: Z,
|
|
368
368
|
overCanvas: we,
|
|
369
369
|
hasEnteredCanvas: be,
|
|
370
|
-
preview: H && S &&
|
|
371
|
-
kind:
|
|
372
|
-
id:
|
|
373
|
-
label:
|
|
370
|
+
preview: H && S && m.canvasPlacement?.preview ? {
|
|
371
|
+
kind: m.canvasPlacement.preview.kind,
|
|
372
|
+
id: m.canvasPlacement.preview.id,
|
|
373
|
+
label: m.label,
|
|
374
374
|
clientX: Be,
|
|
375
375
|
clientY: Re,
|
|
376
376
|
dropAllowed: we,
|
|
@@ -401,11 +401,11 @@ function Ft(e) {
|
|
|
401
401
|
},
|
|
402
402
|
onDrop: (n, k, E) => {
|
|
403
403
|
if (!E?.worldPoint) return;
|
|
404
|
-
const
|
|
404
|
+
const I = et(t.widgetType, e.widgetDefinitions);
|
|
405
405
|
t.onDrop({
|
|
406
406
|
widgetType: t.widgetType,
|
|
407
407
|
centerWorld: E.worldPoint,
|
|
408
|
-
frame: pe(
|
|
408
|
+
frame: pe(I, {
|
|
409
409
|
anchor: "center",
|
|
410
410
|
worldX: E.worldPoint.worldX,
|
|
411
411
|
worldY: E.worldPoint.worldY
|
|
@@ -413,19 +413,22 @@ function Ft(e) {
|
|
|
413
413
|
});
|
|
414
414
|
}
|
|
415
415
|
} : null, ye = (t, n) => {
|
|
416
|
-
t.button !== 0 || !(t.currentTarget instanceof HTMLElement) || (i?.clear(), i = void 0,
|
|
416
|
+
t.button !== 0 || !(t.currentTarget instanceof HTMLElement) || (i?.clear(), i = void 0, F(t, "external", n.id, n.label, n.icon, t.currentTarget, ne(n.canvasPlacement), n.onDropToDock ?? null, n.dockPlacement ?? "before-components"));
|
|
417
417
|
};
|
|
418
418
|
ee(() => {
|
|
419
419
|
e.registerExternalDockDragController?.({
|
|
420
420
|
begin: ye
|
|
421
421
|
}), p(() => e.registerExternalDockDragController?.(null));
|
|
422
422
|
});
|
|
423
|
-
const Se = () => c()?.kind === "widget" ? c().id : null, Te = () => c()?.kind === "tool" ? c().id : null, Oe = () => c()?.kind === "external" ? c()?.icon : void 0, y = () => e.mode === "background" || e.mode === "annotation" ? "background" : "work",
|
|
423
|
+
const Se = () => c()?.kind === "widget" ? c().id : null, Te = () => c()?.kind === "tool" ? c().id : null, Oe = () => c()?.kind === "external" ? c()?.icon : void 0, y = () => e.mode === "background" || e.mode === "annotation" ? "background" : "work", oe = A(() => ht.map((t) => ({
|
|
424
|
+
...t,
|
|
425
|
+
icon: e.modeIcons?.[t.mode] ?? t.icon
|
|
426
|
+
}))), ge = A(() => oe().find((t) => t.mode === y()) ?? oe()[0]), re = A(() => y() === "background" ? bt.map((t) => ({
|
|
424
427
|
id: t.tool,
|
|
425
428
|
kind: "tool",
|
|
426
429
|
label: t.label,
|
|
427
430
|
icon: t.icon
|
|
428
|
-
})) : [...
|
|
431
|
+
})) : [...wt.map((t) => ({
|
|
429
432
|
id: t.tool,
|
|
430
433
|
kind: "tool",
|
|
431
434
|
label: t.label,
|
|
@@ -435,24 +438,24 @@ function Ft(e) {
|
|
|
435
438
|
kind: "widget",
|
|
436
439
|
label: t.label,
|
|
437
440
|
icon: t.icon
|
|
438
|
-
}))]), ve =
|
|
439
|
-
if (!
|
|
441
|
+
}))]), ve = A(() => y() === "background" ? [] : [...e.dockItems ?? []]), ie = A(() => ve().filter((t) => t.dockPlacement !== "after-components")), fe = A(() => ve().filter((t) => t.dockPlacement === "after-components")), G = A(() => y() === "background" ? [] : [...e.dockActions ?? []]), ke = A(() => re().map((t) => String(t.id))), ae = () => y() !== "background", Ae = (t) => !ae() || e.filters[t] !== !1, $e = (t) => {
|
|
442
|
+
if (!ae())
|
|
440
443
|
return !1;
|
|
441
444
|
const n = ke();
|
|
442
445
|
return n.length > 1 && n.every((k) => e.filters[k] !== !1 == (k === t));
|
|
443
446
|
}, Xe = (t, n) => f() === "focus-cycle" ? e.resolveItemPresentation?.({
|
|
444
447
|
kind: t,
|
|
445
448
|
id: n
|
|
446
|
-
}) : void 0,
|
|
449
|
+
}) : void 0, ce = () => v() === 0, Ye = () => ({
|
|
447
450
|
scale: 1,
|
|
448
451
|
y: 0,
|
|
449
452
|
x: 0
|
|
450
|
-
}),
|
|
453
|
+
}), le = (t) => {
|
|
451
454
|
const n = c();
|
|
452
455
|
return !!(n?.kind === "external" && n.moved && n.dockPlacement === t);
|
|
453
|
-
},
|
|
456
|
+
}, me = () => (() => {
|
|
454
457
|
var t = dt();
|
|
455
|
-
return
|
|
458
|
+
return h(t, l(R, {
|
|
456
459
|
get when() {
|
|
457
460
|
return Oe();
|
|
458
461
|
},
|
|
@@ -467,13 +470,13 @@ function Ft(e) {
|
|
|
467
470
|
return [(() => {
|
|
468
471
|
var t = gt(), n = t.firstChild, k = n.firstChild, E = n.nextSibling;
|
|
469
472
|
t.addEventListener("pointerleave", () => a(null));
|
|
470
|
-
var
|
|
471
|
-
return typeof
|
|
473
|
+
var I = b;
|
|
474
|
+
return typeof I == "function" ? Ve(I, t) : b = t, k.$$click = () => {
|
|
472
475
|
e.onDockActivation?.({
|
|
473
476
|
kind: "mode",
|
|
474
477
|
id: y()
|
|
475
478
|
}), P((o) => !o);
|
|
476
|
-
}, k.addEventListener("pointerleave", () => a((o) => o === 0 ? null : o)), k.addEventListener("pointerenter", () => a(0)),
|
|
479
|
+
}, k.addEventListener("pointerleave", () => a((o) => o === 0 ? null : o)), k.addEventListener("pointerenter", () => a(0)), h(k, l(W.span, {
|
|
477
480
|
class: "workbench-dock__tile",
|
|
478
481
|
get animate() {
|
|
479
482
|
return Ye();
|
|
@@ -492,12 +495,12 @@ function Ft(e) {
|
|
|
492
495
|
});
|
|
493
496
|
})();
|
|
494
497
|
}
|
|
495
|
-
}), null),
|
|
498
|
+
}), null), h(k, l(W.span, {
|
|
496
499
|
class: "workbench-dock__tooltip",
|
|
497
500
|
get animate() {
|
|
498
501
|
return {
|
|
499
|
-
opacity:
|
|
500
|
-
y:
|
|
502
|
+
opacity: ce() && !s() ? 1 : 0,
|
|
503
|
+
y: ce() && !s() ? -6 : 0
|
|
501
504
|
};
|
|
502
505
|
},
|
|
503
506
|
get transition() {
|
|
@@ -509,14 +512,16 @@ function Ft(e) {
|
|
|
509
512
|
get children() {
|
|
510
513
|
return ge().label;
|
|
511
514
|
}
|
|
512
|
-
}), null),
|
|
515
|
+
}), null), h(n, l(R, {
|
|
513
516
|
get when() {
|
|
514
517
|
return s();
|
|
515
518
|
},
|
|
516
519
|
get children() {
|
|
517
520
|
var o = st();
|
|
518
|
-
return
|
|
519
|
-
each
|
|
521
|
+
return h(o, l(te, {
|
|
522
|
+
get each() {
|
|
523
|
+
return oe();
|
|
524
|
+
},
|
|
520
525
|
children: (_) => {
|
|
521
526
|
const w = _.icon;
|
|
522
527
|
return (() => {
|
|
@@ -526,11 +531,11 @@ function Ft(e) {
|
|
|
526
531
|
kind: "mode",
|
|
527
532
|
id: _.mode
|
|
528
533
|
}), e.onSelectMode?.(_.mode), P(!1);
|
|
529
|
-
},
|
|
534
|
+
}, h(C, l(w, {
|
|
530
535
|
class: "workbench-dock__mode-icon"
|
|
531
|
-
})),
|
|
536
|
+
})), h(g, () => _.label), h(O, () => _.description), K((m) => {
|
|
532
537
|
var J = y() === _.mode, Q = y() === _.mode;
|
|
533
|
-
return J !==
|
|
538
|
+
return J !== m.e && u.classList.toggle("is-active", m.e = J), Q !== m.t && L(u, "aria-checked", m.t = Q), m;
|
|
534
539
|
}, {
|
|
535
540
|
e: void 0,
|
|
536
541
|
t: void 0
|
|
@@ -539,13 +544,13 @@ function Ft(e) {
|
|
|
539
544
|
}
|
|
540
545
|
})), o;
|
|
541
546
|
}
|
|
542
|
-
}), null),
|
|
547
|
+
}), null), h(t, l(Ue, {
|
|
543
548
|
get each() {
|
|
544
549
|
return G();
|
|
545
550
|
},
|
|
546
551
|
children: (o, _) => {
|
|
547
552
|
const w = () => _ + 1;
|
|
548
|
-
return l(
|
|
553
|
+
return l(Ct, {
|
|
549
554
|
get action() {
|
|
550
555
|
return o();
|
|
551
556
|
},
|
|
@@ -562,16 +567,16 @@ function Ft(e) {
|
|
|
562
567
|
}
|
|
563
568
|
});
|
|
564
569
|
}
|
|
565
|
-
}), E),
|
|
570
|
+
}), E), h(t, l(R, {
|
|
566
571
|
get when() {
|
|
567
|
-
return
|
|
572
|
+
return le("before-components");
|
|
568
573
|
},
|
|
569
574
|
get children() {
|
|
570
|
-
return l(
|
|
575
|
+
return l(me, {});
|
|
571
576
|
}
|
|
572
|
-
}), E),
|
|
577
|
+
}), E), h(t, l(te, {
|
|
573
578
|
get each() {
|
|
574
|
-
return
|
|
579
|
+
return ie();
|
|
575
580
|
},
|
|
576
581
|
children: (o, _) => {
|
|
577
582
|
const w = () => _() + G().length + 1;
|
|
@@ -606,18 +611,18 @@ function Ft(e) {
|
|
|
606
611
|
get onContextMenu() {
|
|
607
612
|
return o.onContextMenu;
|
|
608
613
|
},
|
|
609
|
-
onKeyboardActivate: (u) =>
|
|
614
|
+
onKeyboardActivate: (u) => Y("host", o.id, o.label, u),
|
|
610
615
|
onEnter: () => a(w()),
|
|
611
616
|
onLeave: () => a((u) => u === w() ? null : u),
|
|
612
|
-
onDragBegin:
|
|
617
|
+
onDragBegin: F
|
|
613
618
|
});
|
|
614
619
|
}
|
|
615
|
-
}), E),
|
|
620
|
+
}), E), h(t, l(te, {
|
|
616
621
|
get each() {
|
|
617
|
-
return
|
|
622
|
+
return re();
|
|
618
623
|
},
|
|
619
624
|
children: (o, _) => {
|
|
620
|
-
const w = () => _() + G().length +
|
|
625
|
+
const w = () => _() + G().length + ie().length + 1, u = () => Xe(o.kind, o.id);
|
|
621
626
|
return l(se, {
|
|
622
627
|
get id() {
|
|
623
628
|
return String(o.id);
|
|
@@ -638,7 +643,7 @@ function Ft(e) {
|
|
|
638
643
|
return B(() => f() === "focus-cycle")() ? !0 : Ae(String(o.id));
|
|
639
644
|
},
|
|
640
645
|
get filterable() {
|
|
641
|
-
return B(() => f() === "solo-filter")() &&
|
|
646
|
+
return B(() => f() === "solo-filter")() && ae();
|
|
642
647
|
},
|
|
643
648
|
get activationMode() {
|
|
644
649
|
return f();
|
|
@@ -669,23 +674,23 @@ function Ft(e) {
|
|
|
669
674
|
},
|
|
670
675
|
onEnter: () => a(w()),
|
|
671
676
|
onLeave: () => a((C) => C === w() ? null : C),
|
|
672
|
-
onKeyboardActivate: (C) =>
|
|
673
|
-
onDragBegin:
|
|
677
|
+
onKeyboardActivate: (C) => Y(o.kind, o.id, o.label, C),
|
|
678
|
+
onDragBegin: F
|
|
674
679
|
});
|
|
675
680
|
}
|
|
676
|
-
}), null),
|
|
681
|
+
}), null), h(t, l(R, {
|
|
677
682
|
get when() {
|
|
678
|
-
return fe().length > 0 ||
|
|
683
|
+
return fe().length > 0 || le("after-components");
|
|
679
684
|
},
|
|
680
685
|
get children() {
|
|
681
686
|
return ut();
|
|
682
687
|
}
|
|
683
|
-
}), null),
|
|
688
|
+
}), null), h(t, l(te, {
|
|
684
689
|
get each() {
|
|
685
690
|
return fe();
|
|
686
691
|
},
|
|
687
692
|
children: (o, _) => {
|
|
688
|
-
const w = () => _() + G().length +
|
|
693
|
+
const w = () => _() + G().length + ie().length + re().length + 1;
|
|
689
694
|
return l(se, {
|
|
690
695
|
get id() {
|
|
691
696
|
return o.id;
|
|
@@ -717,22 +722,22 @@ function Ft(e) {
|
|
|
717
722
|
get onContextMenu() {
|
|
718
723
|
return o.onContextMenu;
|
|
719
724
|
},
|
|
720
|
-
onKeyboardActivate: (u) =>
|
|
725
|
+
onKeyboardActivate: (u) => Y("host", o.id, o.label, u),
|
|
721
726
|
onEnter: () => a(w()),
|
|
722
727
|
onLeave: () => a((u) => u === w() ? null : u),
|
|
723
|
-
onDragBegin:
|
|
728
|
+
onDragBegin: F
|
|
724
729
|
});
|
|
725
730
|
}
|
|
726
|
-
}), null),
|
|
731
|
+
}), null), h(t, l(R, {
|
|
727
732
|
get when() {
|
|
728
|
-
return
|
|
733
|
+
return le("after-components");
|
|
729
734
|
},
|
|
730
735
|
get children() {
|
|
731
|
-
return l(
|
|
736
|
+
return l(me, {});
|
|
732
737
|
}
|
|
733
738
|
}), null), K((o) => {
|
|
734
|
-
var _ = `workbench-dock workbench-dock-material${c()?.kind === "external" && c()?.moved ? " is-external-drop-target" : ""}${c()?.kind === "external" && c()?.overDock ? " is-external-drop-allowed" : ""}`, w = y() === "background", u = !!(
|
|
735
|
-
return _ !== o.e && Ke(t, o.e = _), w !== o.t && k.classList.toggle("is-active", o.t = w), u !== o.a && k.classList.toggle("is-hovered", o.a = u), C !== o.o &&
|
|
739
|
+
var _ = `workbench-dock workbench-dock-material${c()?.kind === "external" && c()?.moved ? " is-external-drop-target" : ""}${c()?.kind === "external" && c()?.overDock ? " is-external-drop-allowed" : ""}`, w = y() === "background", u = !!(ce() || s()), C = s();
|
|
740
|
+
return _ !== o.e && Ke(t, o.e = _), w !== o.t && k.classList.toggle("is-active", o.t = w), u !== o.a && k.classList.toggle("is-hovered", o.a = u), C !== o.o && L(k, "aria-expanded", o.o = C), o;
|
|
736
741
|
}, {
|
|
737
742
|
e: void 0,
|
|
738
743
|
t: void 0,
|
|
@@ -744,13 +749,13 @@ function Ft(e) {
|
|
|
744
749
|
return !!(c()?.moved && !c()?.preview);
|
|
745
750
|
},
|
|
746
751
|
get children() {
|
|
747
|
-
return l(
|
|
752
|
+
return l(Pt, {
|
|
748
753
|
state: c
|
|
749
754
|
});
|
|
750
755
|
}
|
|
751
756
|
})];
|
|
752
757
|
}
|
|
753
|
-
function
|
|
758
|
+
function Pt(e) {
|
|
754
759
|
const v = () => {
|
|
755
760
|
const d = e.state();
|
|
756
761
|
return d ? `translate3d(${d.clientX + 14}px, ${d.clientY - 56}px, 0)` : "translate3d(0px, 0px, 0)";
|
|
@@ -758,7 +763,7 @@ function Ct(e) {
|
|
|
758
763
|
return l(We, {
|
|
759
764
|
get children() {
|
|
760
765
|
var d = ft(), s = d.firstChild, P = s.nextSibling, b = P.firstChild, r = b.nextSibling, i = r.firstChild, D = i.nextSibling, x = D.firstChild;
|
|
761
|
-
return
|
|
766
|
+
return h(b, l(R, {
|
|
762
767
|
get when() {
|
|
763
768
|
return c();
|
|
764
769
|
},
|
|
@@ -768,11 +773,11 @@ function Ct(e) {
|
|
|
768
773
|
class: "w-4 h-4"
|
|
769
774
|
});
|
|
770
775
|
}
|
|
771
|
-
})),
|
|
776
|
+
})), h(i, a), h(D, l(qe, {
|
|
772
777
|
class: "w-3 h-3"
|
|
773
|
-
}), x),
|
|
774
|
-
var M = !!(e.state()?.kind === "external" && e.state()?.overDock),
|
|
775
|
-
return M !== f.e && d.classList.toggle("is-over-dock", f.e = M),
|
|
778
|
+
}), x), h(x, () => e.state()?.kind === "external" ? "Pin to Dock" : "Drag onto canvas"), K((f) => {
|
|
779
|
+
var M = !!(e.state()?.kind === "external" && e.state()?.overDock), X = v();
|
|
780
|
+
return M !== f.e && d.classList.toggle("is-over-dock", f.e = M), X !== f.t && Ne(d, "transform", f.t = X), f;
|
|
776
781
|
}, {
|
|
777
782
|
e: void 0,
|
|
778
783
|
t: void 0
|
|
@@ -782,5 +787,5 @@ function Ct(e) {
|
|
|
782
787
|
}
|
|
783
788
|
Ge(["pointerdown", "click", "contextmenu", "keydown"]);
|
|
784
789
|
export {
|
|
785
|
-
|
|
790
|
+
Bt as WorkbenchDock
|
|
786
791
|
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type UIFirstSelectionEvent } from '../../utils/uiFirstSelection';
|
|
2
2
|
import { type WorkbenchContextMenuItem } from './WorkbenchContextMenu';
|
|
3
|
-
import { type WorkbenchDockItemActivation, type WorkbenchDockItemActivationMode, type WorkbenchDockAction, type WorkbenchExternalDockDragController, type WorkbenchHostDockItem } from './WorkbenchFilterBar';
|
|
3
|
+
import { type WorkbenchDockItemActivation, type WorkbenchDockItemActivationMode, type WorkbenchDockAction, type WorkbenchDockModeIcons, type WorkbenchExternalDockDragController, type WorkbenchHostDockItem } from './WorkbenchFilterBar';
|
|
4
4
|
import type { WorkbenchState, WorkbenchAnnotationItem, WorkbenchBackgroundLayer, WorkbenchBackgroundLayerDefaults, WorkbenchBackgroundLayerPatch, WorkbenchContextMenuState, WorkbenchInteractionAdapter, WorkbenchStickyNoteItem, WorkbenchStickyNotePatch, WorkbenchTextAnnotationDefaults, WorkbenchTextAnnotationPatch, WorkbenchWidgetDefinition, WorkbenchWidgetItem, WorkbenchWidgetType } from './types';
|
|
5
5
|
export interface WorkbenchCreateAtOptions {
|
|
6
6
|
worldX?: number;
|
|
@@ -73,6 +73,8 @@ export interface WorkbenchSurfaceProps {
|
|
|
73
73
|
*/
|
|
74
74
|
dockItemActivationMode?: WorkbenchDockItemActivationMode;
|
|
75
75
|
onDockItemClick?: (item: WorkbenchDockItemActivation) => boolean | void;
|
|
76
|
+
/** Host artwork for the Dock mode trigger and its menu. */
|
|
77
|
+
dockModeIcons?: WorkbenchDockModeIcons;
|
|
76
78
|
dockActions?: readonly WorkbenchDockAction[];
|
|
77
79
|
dockItems?: readonly WorkbenchHostDockItem[];
|
|
78
80
|
registerExternalDockDragController?: (controller: WorkbenchExternalDockDragController | null) => void;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export { WorkbenchOverlay, type WorkbenchOverlayProps } from './WorkbenchOverlay';
|
|
2
2
|
export { WorkbenchDockPopoverSurface, type WorkbenchDockPopoverSurfaceProps, } from './WorkbenchDockPopoverSurface';
|
|
3
3
|
export { WorkbenchSurface, type WorkbenchSurfaceApi, type WorkbenchCreateAtOptions, type WorkbenchCreateWidgetOptions, type WorkbenchContextMenuItemsResolver, type WorkbenchSurfaceProps, } from './WorkbenchSurface';
|
|
4
|
-
export type { WorkbenchDockAction, WorkbenchCanvasWidgetPlacement, WorkbenchDockCanvasPlacement, WorkbenchDockDropContext, WorkbenchDockItemPlacement, WorkbenchDockItemActivation, WorkbenchDockItemActivationMode, WorkbenchExternalDockDragController, WorkbenchExternalDockDragItem, WorkbenchHostDockItem, } from './WorkbenchFilterBar';
|
|
4
|
+
export type { WorkbenchDockAction, WorkbenchDockModeIcons, WorkbenchCanvasWidgetPlacement, WorkbenchDockCanvasPlacement, WorkbenchDockDropContext, WorkbenchDockItemPlacement, WorkbenchDockItemActivation, WorkbenchDockItemActivationMode, WorkbenchExternalDockDragController, WorkbenchExternalDockDragItem, WorkbenchHostDockItem, } from './WorkbenchFilterBar';
|
|
5
5
|
export type { BarItemContextMenuHandler, BarItemContextMenuRequest, BarItemContextMenuSource, } from '../layout/barItemContextMenu';
|
|
6
6
|
export { WorkbenchContextMenu, type WorkbenchContextMenuItem, type WorkbenchContextMenuProps, } from './WorkbenchContextMenu';
|
|
7
7
|
export { useWorkbenchModel, type UseWorkbenchModelOptions } from './useWorkbenchModel';
|