@floegence/floe-webapp-core 0.36.13 → 0.36.16
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/deck/DeckCell.js +46 -38
- package/dist/components/file-browser/FileContextMenu.js +8 -6
- package/dist/components/ui/Dialog.js +62 -52
- package/dist/components/ui/Dropdown.js +50 -48
- package/dist/components/ui/FloatingWindow.js +73 -69
- package/dist/components/ui/InfiniteCanvas.d.ts +2 -0
- package/dist/components/ui/InfiniteCanvas.js +121 -101
- package/dist/components/ui/canvasGeometry.d.ts +32 -0
- package/dist/components/ui/canvasGeometry.js +33 -0
- package/dist/components/ui/dialogSurfaceScope.d.ts +8 -8
- package/dist/components/ui/dialogSurfaceScope.js +108 -62
- package/dist/components/ui/index.d.ts +2 -0
- package/dist/components/ui/surfacePortalScope.d.ts +1 -1
- package/dist/components/ui/surfacePortalTypes.d.ts +8 -0
- package/dist/components/workbench/WorkbenchCanvas.d.ts +4 -0
- package/dist/components/workbench/WorkbenchCanvas.js +52 -26
- package/dist/components/workbench/WorkbenchCanvasField.d.ts +2 -0
- package/dist/components/workbench/WorkbenchCanvasField.js +18 -6
- package/dist/components/workbench/WorkbenchHud.d.ts +9 -0
- package/dist/components/workbench/WorkbenchHud.js +24 -10
- package/dist/components/workbench/WorkbenchSurface.js +56 -36
- package/dist/components/workbench/WorkbenchThemeSelector.d.ts +6 -0
- package/dist/components/workbench/WorkbenchThemeSelector.js +77 -0
- package/dist/components/workbench/WorkbenchWidget.d.ts +2 -0
- package/dist/components/workbench/WorkbenchWidget.js +205 -164
- package/dist/components/workbench/index.d.ts +2 -0
- package/dist/components/workbench/types.d.ts +2 -0
- package/dist/components/workbench/useWorkbenchModel.d.ts +6 -0
- package/dist/components/workbench/useWorkbenchModel.js +115 -106
- package/dist/components/workbench/workbenchHelpers.js +53 -50
- package/dist/components/workbench/workbenchThemes.d.ts +32 -0
- package/dist/components/workbench/workbenchThemes.js +82 -0
- package/dist/full.js +611 -591
- package/dist/styles.css +1 -1
- package/dist/ui.js +120 -100
- package/dist/workbench-themes.css +1106 -0
- package/dist/workbench.css +492 -96
- package/dist/workbench.js +35 -27
- package/package.json +1 -1
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
import { use as
|
|
2
|
-
import { createMemo as o, Show as h, For as
|
|
3
|
-
import { WorkbenchCanvasField as
|
|
4
|
-
import { WorkbenchWidget as
|
|
1
|
+
import { use as C, insert as m, createComponent as i, effect as R, template as w } from "solid-js/web";
|
|
2
|
+
import { createMemo as o, Show as h, For as W } from "solid-js";
|
|
3
|
+
import { WorkbenchCanvasField as F } from "./WorkbenchCanvasField.js";
|
|
4
|
+
import { WorkbenchWidget as y } from "./WorkbenchWidget.js";
|
|
5
5
|
import { createWorkbenchRenderLayerMap as I, resolveWorkbenchWidgetRenderMode as l } from "./workbenchHelpers.js";
|
|
6
|
-
import { getWidgetEntry as
|
|
6
|
+
import { getWidgetEntry as u } from "./widgets/widgetRegistry.js";
|
|
7
7
|
import { InfiniteCanvas as S } from "../ui/InfiniteCanvas.js";
|
|
8
|
-
var
|
|
9
|
-
function
|
|
8
|
+
var k = /* @__PURE__ */ w("<div class=workbench-canvas><div class=workbench-canvas__atmosphere aria-hidden=true>"), M = /* @__PURE__ */ w("<div class=workbench-canvas__projected-layer>");
|
|
9
|
+
function q(e) {
|
|
10
10
|
const n = o((g) => {
|
|
11
11
|
const d = e.widgetById().get(e.widgetId);
|
|
12
12
|
if (d) return d;
|
|
13
13
|
if (g) return g;
|
|
14
14
|
throw new Error(`Workbench widget ${e.widgetId} is missing from the projected render map.`);
|
|
15
|
-
}), a = o(() =>
|
|
16
|
-
return i(
|
|
15
|
+
}), a = o(() => u(n().type, e.widgetDefinitions));
|
|
16
|
+
return i(y, {
|
|
17
17
|
get definition() {
|
|
18
18
|
return a();
|
|
19
19
|
},
|
|
@@ -85,22 +85,30 @@ function b(e) {
|
|
|
85
85
|
get onCommitResize() {
|
|
86
86
|
return e.onCommitResize;
|
|
87
87
|
},
|
|
88
|
+
get onRequestOverview() {
|
|
89
|
+
return e.onRequestOverview;
|
|
90
|
+
},
|
|
91
|
+
get onRequestFit() {
|
|
92
|
+
return e.onRequestFit;
|
|
93
|
+
},
|
|
88
94
|
get onRequestDelete() {
|
|
89
95
|
return e.onRequestDelete;
|
|
90
96
|
}
|
|
91
97
|
});
|
|
92
98
|
}
|
|
93
|
-
function
|
|
99
|
+
function V(e) {
|
|
94
100
|
const n = o(() => new Map(e.widgets.map((t) => [t.id, t]))), a = o(() => I(e.widgets)), g = o(() => e.widgets.filter((t) => {
|
|
95
|
-
const r =
|
|
101
|
+
const r = u(t.type, e.widgetDefinitions);
|
|
96
102
|
return l(r) === "canvas_scaled";
|
|
97
103
|
})), d = o(() => e.widgets.filter((t) => {
|
|
98
|
-
const r =
|
|
104
|
+
const r = u(t.type, e.widgetDefinitions);
|
|
99
105
|
return l(r) === "projected_surface";
|
|
100
|
-
}).map((t) => t.id)),
|
|
106
|
+
}).map((t) => t.id)), s = () => e.canvasFrameSize.width > 0 && e.canvasFrameSize.height > 0;
|
|
101
107
|
return (() => {
|
|
102
|
-
var t =
|
|
103
|
-
|
|
108
|
+
var t = k();
|
|
109
|
+
t.firstChild;
|
|
110
|
+
var r = e.setCanvasFrameRef;
|
|
111
|
+
return typeof r == "function" ? C(r, t) : e.setCanvasFrameRef = t, m(t, i(S, {
|
|
104
112
|
ariaLabel: "Workbench canvas",
|
|
105
113
|
class: "workbench-canvas__infinite",
|
|
106
114
|
get viewport() {
|
|
@@ -109,24 +117,30 @@ function q(e) {
|
|
|
109
117
|
get onViewportChange() {
|
|
110
118
|
return e.onViewportCommit;
|
|
111
119
|
},
|
|
120
|
+
get onViewportInteractionStart() {
|
|
121
|
+
return e.onViewportInteractionStart;
|
|
122
|
+
},
|
|
112
123
|
get onCanvasContextMenu() {
|
|
113
124
|
return e.onCanvasContextMenu;
|
|
114
125
|
},
|
|
126
|
+
get onCanvasPointerDown() {
|
|
127
|
+
return e.onCanvasPointerDown;
|
|
128
|
+
},
|
|
115
129
|
get disablePanZoom() {
|
|
116
130
|
return e.locked;
|
|
117
131
|
},
|
|
118
|
-
overlay: (
|
|
132
|
+
overlay: (v) => i(h, {
|
|
119
133
|
get when() {
|
|
120
134
|
return d().length > 0;
|
|
121
135
|
},
|
|
122
136
|
get children() {
|
|
123
|
-
var
|
|
124
|
-
return m(
|
|
137
|
+
var c = M();
|
|
138
|
+
return m(c, i(W, {
|
|
125
139
|
get each() {
|
|
126
140
|
return d();
|
|
127
141
|
},
|
|
128
|
-
children: (
|
|
129
|
-
widgetId:
|
|
142
|
+
children: (f) => i(q, {
|
|
143
|
+
widgetId: f,
|
|
130
144
|
get widgetDefinitions() {
|
|
131
145
|
return e.widgetDefinitions;
|
|
132
146
|
},
|
|
@@ -174,19 +188,25 @@ function q(e) {
|
|
|
174
188
|
get onCommitResize() {
|
|
175
189
|
return e.onCommitResize;
|
|
176
190
|
},
|
|
191
|
+
get onRequestOverview() {
|
|
192
|
+
return e.onRequestOverview;
|
|
193
|
+
},
|
|
194
|
+
get onRequestFit() {
|
|
195
|
+
return e.onRequestFit;
|
|
196
|
+
},
|
|
177
197
|
get onRequestDelete() {
|
|
178
198
|
return e.onRequestDelete;
|
|
179
199
|
},
|
|
180
|
-
projectedViewport:
|
|
200
|
+
projectedViewport: v,
|
|
181
201
|
get surfaceReady() {
|
|
182
|
-
return
|
|
202
|
+
return s();
|
|
183
203
|
}
|
|
184
204
|
})
|
|
185
|
-
})),
|
|
205
|
+
})), c;
|
|
186
206
|
}
|
|
187
207
|
}),
|
|
188
208
|
get children() {
|
|
189
|
-
return i(
|
|
209
|
+
return i(F, {
|
|
190
210
|
get widgetDefinitions() {
|
|
191
211
|
return e.widgetDefinitions;
|
|
192
212
|
},
|
|
@@ -226,14 +246,20 @@ function q(e) {
|
|
|
226
246
|
get onCommitResize() {
|
|
227
247
|
return e.onCommitResize;
|
|
228
248
|
},
|
|
249
|
+
get onRequestOverview() {
|
|
250
|
+
return e.onRequestOverview;
|
|
251
|
+
},
|
|
252
|
+
get onRequestFit() {
|
|
253
|
+
return e.onRequestFit;
|
|
254
|
+
},
|
|
229
255
|
get onRequestDelete() {
|
|
230
256
|
return e.onRequestDelete;
|
|
231
257
|
}
|
|
232
258
|
});
|
|
233
259
|
}
|
|
234
|
-
})),
|
|
260
|
+
}), null), R(() => t.classList.toggle("is-locked", !!e.locked)), t;
|
|
235
261
|
})();
|
|
236
262
|
}
|
|
237
263
|
export {
|
|
238
|
-
|
|
264
|
+
V as WorkbenchCanvas
|
|
239
265
|
};
|
|
@@ -19,6 +19,8 @@ export interface WorkbenchCanvasFieldProps {
|
|
|
19
19
|
width: number;
|
|
20
20
|
height: number;
|
|
21
21
|
}) => void;
|
|
22
|
+
onRequestOverview: (item: WorkbenchWidgetItem) => void;
|
|
23
|
+
onRequestFit: (item: WorkbenchWidgetItem) => void;
|
|
22
24
|
onRequestDelete: (widgetId: string) => void;
|
|
23
25
|
}
|
|
24
26
|
export declare function WorkbenchCanvasField(props: WorkbenchCanvasFieldProps): import("solid-js").JSX.Element;
|
|
@@ -3,8 +3,8 @@ import { createMemo as i, For as c } from "solid-js";
|
|
|
3
3
|
import { createWorkbenchRenderLayerMap as a } from "./workbenchHelpers.js";
|
|
4
4
|
import { getWidgetEntry as l } from "./widgets/widgetRegistry.js";
|
|
5
5
|
import { WorkbenchWidget as w } from "./WorkbenchWidget.js";
|
|
6
|
-
var
|
|
7
|
-
function
|
|
6
|
+
var v = /* @__PURE__ */ m("<div class=workbench-canvas__field><div class=workbench-canvas__grid aria-hidden=true>");
|
|
7
|
+
function f(e) {
|
|
8
8
|
const t = i((r) => {
|
|
9
9
|
const n = e.widgetById().get(e.widgetId);
|
|
10
10
|
if (n) return n;
|
|
@@ -76,20 +76,26 @@ function W(e) {
|
|
|
76
76
|
get onCommitResize() {
|
|
77
77
|
return e.onCommitResize;
|
|
78
78
|
},
|
|
79
|
+
get onRequestOverview() {
|
|
80
|
+
return e.onRequestOverview;
|
|
81
|
+
},
|
|
82
|
+
get onRequestFit() {
|
|
83
|
+
return e.onRequestFit;
|
|
84
|
+
},
|
|
79
85
|
get onRequestDelete() {
|
|
80
86
|
return e.onRequestDelete;
|
|
81
87
|
}
|
|
82
88
|
});
|
|
83
89
|
}
|
|
84
|
-
function
|
|
90
|
+
function F(e) {
|
|
85
91
|
const t = i(() => e.widgets.map((n) => n.id)), d = i(() => new Map(e.widgets.map((n) => [n.id, n]))), r = i(() => a(e.widgets));
|
|
86
92
|
return (() => {
|
|
87
|
-
var n =
|
|
93
|
+
var n = v();
|
|
88
94
|
return n.firstChild, u(n, g(c, {
|
|
89
95
|
get each() {
|
|
90
96
|
return t();
|
|
91
97
|
},
|
|
92
|
-
children: (o) => g(
|
|
98
|
+
children: (o) => g(f, {
|
|
93
99
|
widgetId: o,
|
|
94
100
|
get widgetDefinitions() {
|
|
95
101
|
return e.widgetDefinitions;
|
|
@@ -132,6 +138,12 @@ function v(e) {
|
|
|
132
138
|
get onCommitResize() {
|
|
133
139
|
return e.onCommitResize;
|
|
134
140
|
},
|
|
141
|
+
get onRequestOverview() {
|
|
142
|
+
return e.onRequestOverview;
|
|
143
|
+
},
|
|
144
|
+
get onRequestFit() {
|
|
145
|
+
return e.onRequestFit;
|
|
146
|
+
},
|
|
135
147
|
get onRequestDelete() {
|
|
136
148
|
return e.onRequestDelete;
|
|
137
149
|
}
|
|
@@ -140,5 +152,5 @@ function v(e) {
|
|
|
140
152
|
})();
|
|
141
153
|
}
|
|
142
154
|
export {
|
|
143
|
-
|
|
155
|
+
F as WorkbenchCanvasField
|
|
144
156
|
};
|
|
@@ -1,6 +1,15 @@
|
|
|
1
|
+
import type { WorkbenchThemeId } from './workbenchThemes';
|
|
1
2
|
export interface WorkbenchHudProps {
|
|
2
3
|
scaleLabel: string;
|
|
3
4
|
onZoomOut: () => void;
|
|
4
5
|
onZoomIn: () => void;
|
|
6
|
+
/**
|
|
7
|
+
* Current workbench theme. When provided alongside {@link onSelectTheme},
|
|
8
|
+
* the HUD renders an inline theme selector next to the zoom controls.
|
|
9
|
+
* Omit both to hide the selector entirely (e.g. when the consumer provides
|
|
10
|
+
* its own theming UI elsewhere).
|
|
11
|
+
*/
|
|
12
|
+
activeTheme?: WorkbenchThemeId;
|
|
13
|
+
onSelectTheme?: (id: WorkbenchThemeId) => void;
|
|
5
14
|
}
|
|
6
15
|
export declare function WorkbenchHud(props: WorkbenchHudProps): import("solid-js").JSX.Element;
|
|
@@ -1,17 +1,31 @@
|
|
|
1
|
-
import { insert as n, createComponent as
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
import { insert as n, createComponent as o, memo as h, template as i, delegateEvents as u } from "solid-js/web";
|
|
2
|
+
import { Show as m } from "solid-js";
|
|
3
|
+
import { Minus as b, Plus as d } from "../icons/index.js";
|
|
4
|
+
import { WorkbenchThemeSelector as s } from "./WorkbenchThemeSelector.js";
|
|
5
|
+
var _ = /* @__PURE__ */ i("<div class=workbench-hud__divider aria-hidden=true>"), v = /* @__PURE__ */ i('<div class=workbench-hud data-floe-canvas-interactive=true><button type=button class=workbench-hud__button aria-label="Zoom out"></button><div class=workbench-hud__scale></div><button type=button class=workbench-hud__button aria-label="Zoom in">');
|
|
6
|
+
function S(e) {
|
|
5
7
|
return (() => {
|
|
6
|
-
var
|
|
7
|
-
return
|
|
8
|
+
var l = v(), t = l.firstChild, c = t.nextSibling, r = c.nextSibling;
|
|
9
|
+
return n(l, o(m, {
|
|
10
|
+
get when() {
|
|
11
|
+
return h(() => !!e.activeTheme)() && e.onSelectTheme;
|
|
12
|
+
},
|
|
13
|
+
get children() {
|
|
14
|
+
return [o(s, {
|
|
15
|
+
get activeTheme() {
|
|
16
|
+
return e.activeTheme;
|
|
17
|
+
},
|
|
18
|
+
onSelect: (a) => e.onSelectTheme?.(a)
|
|
19
|
+
}), _()];
|
|
20
|
+
}
|
|
21
|
+
}), t), t.$$click = () => e.onZoomOut(), n(t, o(b, {
|
|
8
22
|
class: "w-3.5 h-3.5"
|
|
9
|
-
})), n(
|
|
23
|
+
})), n(c, () => e.scaleLabel), r.$$click = () => e.onZoomIn(), n(r, o(d, {
|
|
10
24
|
class: "w-3.5 h-3.5"
|
|
11
|
-
})),
|
|
25
|
+
})), l;
|
|
12
26
|
})();
|
|
13
27
|
}
|
|
14
|
-
|
|
28
|
+
u(["click"]);
|
|
15
29
|
export {
|
|
16
|
-
|
|
30
|
+
S as WorkbenchHud
|
|
17
31
|
};
|
|
@@ -1,17 +1,18 @@
|
|
|
1
|
-
import { insert as c, createComponent as a, Portal as
|
|
2
|
-
import { createEffect as s, onCleanup as u, Show as
|
|
3
|
-
import { isTypingElement as
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
1
|
+
import { insert as c, createComponent as a, Portal as v, addEventListener as w, effect as h, className as k, setAttribute as p, template as g, delegateEvents as W } from "solid-js/web";
|
|
2
|
+
import { createEffect as s, onCleanup as u, Show as b } from "solid-js";
|
|
3
|
+
import { isTypingElement as C } from "../../utils/dom.js";
|
|
4
|
+
import { clientToCanvasWorld as A } from "../ui/canvasGeometry.js";
|
|
5
|
+
import { WorkbenchCanvas as D } from "./WorkbenchCanvas.js";
|
|
6
|
+
import { WorkbenchContextMenu as y } from "./WorkbenchContextMenu.js";
|
|
7
|
+
import { WorkbenchFilterBar as S } from "./WorkbenchFilterBar.js";
|
|
8
|
+
import { WorkbenchHud as x } from "./WorkbenchHud.js";
|
|
8
9
|
import { WorkbenchLockButton as M } from "./WorkbenchLockButton.js";
|
|
9
10
|
import { installWorkbenchContextMenuDismissListeners as F } from "./workbenchContextMenuDismiss.js";
|
|
10
|
-
import { useWorkbenchModel as
|
|
11
|
-
var
|
|
12
|
-
const
|
|
13
|
-
function
|
|
14
|
-
const e =
|
|
11
|
+
import { useWorkbenchModel as R } from "./useWorkbenchModel.js";
|
|
12
|
+
var T = /* @__PURE__ */ g("<div class=workbench-menu-backdrop data-floe-workbench-boundary=true>"), L = /* @__PURE__ */ g("<div><div class=workbench-surface__body data-floe-workbench-canvas-frame=true>");
|
|
13
|
+
const E = "F1";
|
|
14
|
+
function H(i) {
|
|
15
|
+
const e = R({
|
|
15
16
|
state: () => i.state(),
|
|
16
17
|
setState: (t) => i.setState(t),
|
|
17
18
|
widgetDefinitions: () => i.widgetDefinitions,
|
|
@@ -30,7 +31,7 @@ function P(i) {
|
|
|
30
31
|
i.onApiReady?.(null);
|
|
31
32
|
});
|
|
32
33
|
});
|
|
33
|
-
const
|
|
34
|
+
const l = () => i.lockShortcut === void 0 ? E : i.lockShortcut;
|
|
34
35
|
s(() => {
|
|
35
36
|
if (typeof window > "u" || !e.contextMenu.state()) return;
|
|
36
37
|
const t = F({
|
|
@@ -40,14 +41,14 @@ function P(i) {
|
|
|
40
41
|
u(() => t());
|
|
41
42
|
}), s(() => {
|
|
42
43
|
if (i.enableKeyboard === !1 || typeof document > "u") return;
|
|
43
|
-
const t =
|
|
44
|
+
const t = l(), r = (n) => {
|
|
44
45
|
if (n.defaultPrevented || n.isComposing) return;
|
|
45
46
|
if (t !== null && n.key === t) {
|
|
46
47
|
n.preventDefault(), e.lock.toggle();
|
|
47
48
|
return;
|
|
48
49
|
}
|
|
49
50
|
const o = n.target;
|
|
50
|
-
if (!(o instanceof Element &&
|
|
51
|
+
if (!(o instanceof Element && C(o)))
|
|
51
52
|
switch (n.key) {
|
|
52
53
|
case "ArrowUp":
|
|
53
54
|
n.preventDefault(), e.navigation.handleArrowNavigation("up");
|
|
@@ -73,20 +74,17 @@ function P(i) {
|
|
|
73
74
|
const n = document.querySelector('[data-floe-workbench-canvas-frame="true"]');
|
|
74
75
|
if (!n) return null;
|
|
75
76
|
const o = n.getBoundingClientRect();
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
worldX: (w - l.x) / l.scale,
|
|
81
|
-
worldY: (v - l.y) / l.scale
|
|
82
|
-
};
|
|
77
|
+
return A(o, e.viewport(), {
|
|
78
|
+
clientX: t,
|
|
79
|
+
clientY: r
|
|
80
|
+
});
|
|
83
81
|
}, f = (t, r, n) => {
|
|
84
82
|
const o = m(r, n);
|
|
85
83
|
o && e.widgetActions.addWidgetAtCursor(t, o.worldX, o.worldY);
|
|
86
84
|
};
|
|
87
85
|
return (() => {
|
|
88
|
-
var t =
|
|
89
|
-
return c(r, a(
|
|
86
|
+
var t = L(), r = t.firstChild;
|
|
87
|
+
return c(r, a(D, {
|
|
90
88
|
get widgetDefinitions() {
|
|
91
89
|
return e.widgetDefinitions();
|
|
92
90
|
},
|
|
@@ -117,9 +115,15 @@ function P(i) {
|
|
|
117
115
|
get onViewportCommit() {
|
|
118
116
|
return e.canvas.commitViewport;
|
|
119
117
|
},
|
|
118
|
+
get onViewportInteractionStart() {
|
|
119
|
+
return e.canvas.cancelViewportNavigation;
|
|
120
|
+
},
|
|
120
121
|
get onCanvasContextMenu() {
|
|
121
122
|
return e.canvas.openCanvasContextMenu;
|
|
122
123
|
},
|
|
124
|
+
get onCanvasPointerDown() {
|
|
125
|
+
return e.selection.clear;
|
|
126
|
+
},
|
|
123
127
|
get onSelectWidget() {
|
|
124
128
|
return e.canvas.selectWidget;
|
|
125
129
|
},
|
|
@@ -138,6 +142,12 @@ function P(i) {
|
|
|
138
142
|
get onCommitResize() {
|
|
139
143
|
return e.canvas.commitResize;
|
|
140
144
|
},
|
|
145
|
+
get onRequestOverview() {
|
|
146
|
+
return e.navigation.overviewWidget;
|
|
147
|
+
},
|
|
148
|
+
get onRequestFit() {
|
|
149
|
+
return e.navigation.fitWidget;
|
|
150
|
+
},
|
|
141
151
|
get onRequestDelete() {
|
|
142
152
|
return e.widgetActions.deleteWidget;
|
|
143
153
|
}
|
|
@@ -149,9 +159,9 @@ function P(i) {
|
|
|
149
159
|
return e.lock.toggle;
|
|
150
160
|
},
|
|
151
161
|
get shortcutLabel() {
|
|
152
|
-
return
|
|
162
|
+
return l() ?? void 0;
|
|
153
163
|
}
|
|
154
|
-
}), null), c(t, a(
|
|
164
|
+
}), null), c(t, a(S, {
|
|
155
165
|
get widgetDefinitions() {
|
|
156
166
|
return e.widgetDefinitions();
|
|
157
167
|
},
|
|
@@ -168,7 +178,7 @@ function P(i) {
|
|
|
168
178
|
return e.filter.showAll;
|
|
169
179
|
},
|
|
170
180
|
onCreateAt: f
|
|
171
|
-
}), null), c(t, a(
|
|
181
|
+
}), null), c(t, a(x, {
|
|
172
182
|
get scaleLabel() {
|
|
173
183
|
return e.scaleLabel();
|
|
174
184
|
},
|
|
@@ -177,18 +187,22 @@ function P(i) {
|
|
|
177
187
|
},
|
|
178
188
|
get onZoomIn() {
|
|
179
189
|
return e.hud.zoomIn;
|
|
180
|
-
}
|
|
181
|
-
|
|
190
|
+
},
|
|
191
|
+
get activeTheme() {
|
|
192
|
+
return e.theme();
|
|
193
|
+
},
|
|
194
|
+
onSelectTheme: (n) => e.appearance.setTheme(n)
|
|
195
|
+
}), null), c(t, a(b, {
|
|
182
196
|
get when() {
|
|
183
197
|
return e.contextMenu.state();
|
|
184
198
|
},
|
|
185
199
|
get children() {
|
|
186
|
-
return a(
|
|
200
|
+
return a(v, {
|
|
187
201
|
get children() {
|
|
188
202
|
return [(() => {
|
|
189
|
-
var n =
|
|
190
|
-
return
|
|
191
|
-
})(), a(
|
|
203
|
+
var n = T();
|
|
204
|
+
return w(n, "contextmenu", e.contextMenu.retarget, !0), n;
|
|
205
|
+
})(), a(y, {
|
|
192
206
|
get x() {
|
|
193
207
|
return e.contextMenu.position()?.left ?? 0;
|
|
194
208
|
},
|
|
@@ -202,10 +216,16 @@ function P(i) {
|
|
|
202
216
|
}
|
|
203
217
|
});
|
|
204
218
|
}
|
|
205
|
-
}), null),
|
|
219
|
+
}), null), h((n) => {
|
|
220
|
+
var o = `workbench-surface${i.class ? ` ${i.class}` : ""}`, d = e.theme();
|
|
221
|
+
return o !== n.e && k(t, n.e = o), d !== n.t && p(t, "data-workbench-theme", n.t = d), n;
|
|
222
|
+
}, {
|
|
223
|
+
e: void 0,
|
|
224
|
+
t: void 0
|
|
225
|
+
}), t;
|
|
206
226
|
})();
|
|
207
227
|
}
|
|
208
|
-
|
|
228
|
+
W(["contextmenu"]);
|
|
209
229
|
export {
|
|
210
|
-
|
|
230
|
+
H as WorkbenchSurface
|
|
211
231
|
};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { type WorkbenchThemeId } from './workbenchThemes';
|
|
2
|
+
export interface WorkbenchThemeSelectorProps {
|
|
3
|
+
activeTheme: WorkbenchThemeId;
|
|
4
|
+
onSelect: (id: WorkbenchThemeId) => void;
|
|
5
|
+
}
|
|
6
|
+
export declare function WorkbenchThemeSelector(props: WorkbenchThemeSelectorProps): import("solid-js").JSX.Element;
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { createComponent as l, insert as c, template as o, effect as $, setAttribute as k, setStyleProperty as h, delegateEvents as S } from "solid-js/web";
|
|
2
|
+
import { createMemo as u, For as T } from "solid-js";
|
|
3
|
+
import { Sparkles as C } from "../icons/index.js";
|
|
4
|
+
import { Dropdown as x } from "../ui/Dropdown.js";
|
|
5
|
+
import { workbenchThemeMeta as W, WORKBENCH_THEMES as E } from "./workbenchThemes.js";
|
|
6
|
+
var y = /* @__PURE__ */ o("<div class=workbench-theme-selector data-floe-canvas-interactive=true>"), L = /* @__PURE__ */ o("<span class=workbench-theme-selector__trigger-inner>"), M = /* @__PURE__ */ o('<div class=workbench-theme-grid role=radiogroup aria-label="Workbench theme"><div class=workbench-theme-grid__header>Workbench theme</div><div class=workbench-theme-grid__items>'), p = /* @__PURE__ */ o("<button type=button class=workbench-theme-tile role=radio><span class=workbench-theme-tile__canvas aria-hidden=true><span class=workbench-theme-tile__widget></span><span class=workbench-theme-tile__dot></span></span><span class=workbench-theme-tile__meta><span class=workbench-theme-tile__label></span><span class=workbench-theme-tile__description>");
|
|
7
|
+
function K(e) {
|
|
8
|
+
const r = u(() => W(e.activeTheme).label), a = u(() => [{
|
|
9
|
+
id: "theme-grid",
|
|
10
|
+
label: "Theme",
|
|
11
|
+
keepOpen: !0,
|
|
12
|
+
content: () => l(A, {
|
|
13
|
+
get activeTheme() {
|
|
14
|
+
return e.activeTheme;
|
|
15
|
+
},
|
|
16
|
+
onSelect: (i) => e.onSelect(i)
|
|
17
|
+
})
|
|
18
|
+
}]);
|
|
19
|
+
return (() => {
|
|
20
|
+
var i = y();
|
|
21
|
+
return c(i, l(x, {
|
|
22
|
+
get trigger() {
|
|
23
|
+
return (() => {
|
|
24
|
+
var n = L();
|
|
25
|
+
return c(n, l(C, {
|
|
26
|
+
class: "w-3.5 h-3.5"
|
|
27
|
+
})), n;
|
|
28
|
+
})();
|
|
29
|
+
},
|
|
30
|
+
get triggerAriaLabel() {
|
|
31
|
+
return `Workbench theme · ${r()}`;
|
|
32
|
+
},
|
|
33
|
+
triggerClass: "workbench-theme-selector__trigger",
|
|
34
|
+
get items() {
|
|
35
|
+
return a();
|
|
36
|
+
},
|
|
37
|
+
onSelect: () => {
|
|
38
|
+
},
|
|
39
|
+
align: "end"
|
|
40
|
+
})), i;
|
|
41
|
+
})();
|
|
42
|
+
}
|
|
43
|
+
function A(e) {
|
|
44
|
+
return (() => {
|
|
45
|
+
var r = M(), a = r.firstChild, i = a.nextSibling;
|
|
46
|
+
return c(i, l(T, {
|
|
47
|
+
each: E,
|
|
48
|
+
children: (n) => l(H, {
|
|
49
|
+
theme: n,
|
|
50
|
+
get active() {
|
|
51
|
+
return n.id === e.activeTheme;
|
|
52
|
+
},
|
|
53
|
+
onClick: () => e.onSelect(n.id)
|
|
54
|
+
})
|
|
55
|
+
})), r;
|
|
56
|
+
})();
|
|
57
|
+
}
|
|
58
|
+
function H(e) {
|
|
59
|
+
return (() => {
|
|
60
|
+
var r = p(), a = r.firstChild, i = a.firstChild, n = i.nextSibling, w = a.nextSibling, s = w.firstChild, f = s.nextSibling;
|
|
61
|
+
return r.$$click = () => e.onClick(), c(s, () => e.theme.label), c(f, () => e.theme.description), $((t) => {
|
|
62
|
+
var m = !!e.active, d = e.active, v = e.active, b = e.theme.preview.canvas, g = e.theme.preview.widget, _ = e.theme.preview.accent;
|
|
63
|
+
return m !== t.e && r.classList.toggle("is-active", t.e = m), d !== t.t && k(r, "aria-pressed", t.t = d), v !== t.a && k(r, "aria-checked", t.a = v), b !== t.o && h(a, "background", t.o = b), g !== t.i && h(i, "background", t.i = g), _ !== t.n && h(n, "background", t.n = _), t;
|
|
64
|
+
}, {
|
|
65
|
+
e: void 0,
|
|
66
|
+
t: void 0,
|
|
67
|
+
a: void 0,
|
|
68
|
+
o: void 0,
|
|
69
|
+
i: void 0,
|
|
70
|
+
n: void 0
|
|
71
|
+
}), r;
|
|
72
|
+
})();
|
|
73
|
+
}
|
|
74
|
+
S(["click"]);
|
|
75
|
+
export {
|
|
76
|
+
K as WorkbenchThemeSelector
|
|
77
|
+
};
|
|
@@ -32,6 +32,8 @@ export interface WorkbenchWidgetProps {
|
|
|
32
32
|
width: number;
|
|
33
33
|
height: number;
|
|
34
34
|
}) => void;
|
|
35
|
+
onRequestOverview: (item: WorkbenchWidgetItem) => void;
|
|
36
|
+
onRequestFit: (item: WorkbenchWidgetItem) => void;
|
|
35
37
|
onRequestDelete: (widgetId: string) => void;
|
|
36
38
|
}
|
|
37
39
|
export declare function WorkbenchWidget(props: WorkbenchWidgetProps): JSX.Element;
|