@floegence/floe-webapp-core 0.36.17 → 0.36.19

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,156 +1,175 @@
1
- import { insert as u, createComponent as g, template as m } from "solid-js/web";
2
- import { createMemo as i, For as c } from "solid-js";
3
- import { createWorkbenchRenderLayerMap as a } from "./workbenchHelpers.js";
4
- import { getWidgetEntry as l } from "./widgets/widgetRegistry.js";
5
- import { WorkbenchWidget as w } from "./WorkbenchWidget.js";
6
- var v = /* @__PURE__ */ m("<div class=workbench-canvas__field><div class=workbench-canvas__grid aria-hidden=true>");
7
- function f(e) {
8
- const t = i((r) => {
9
- const n = e.widgetById().get(e.widgetId);
10
- if (n) return n;
11
- if (r) return r;
12
- throw new Error(`Workbench widget ${e.widgetId} is missing from the render map.`);
13
- }), d = i(() => l(t().type, e.widgetDefinitions));
14
- return g(w, {
1
+ import { insert as a, createComponent as g, template as c } from "solid-js/web";
2
+ import { createMemo as r, For as m } from "solid-js";
3
+ import { resolveWorkbenchInteractionAdapter as l } from "./workbenchInteractionAdapter.js";
4
+ import { createWorkbenchRenderLayerMap as w } from "./workbenchHelpers.js";
5
+ import { getWidgetEntry as I } from "./widgets/widgetRegistry.js";
6
+ import { WorkbenchWidget as y } from "./WorkbenchWidget.js";
7
+ var v = /* @__PURE__ */ c("<div class=workbench-canvas__field><div class=workbench-canvas__grid aria-hidden=true>");
8
+ function f(t) {
9
+ const e = r((i) => {
10
+ const o = t.widgetById().get(t.widgetId);
11
+ if (o) return o;
12
+ if (i) return i;
13
+ throw new Error(`Workbench widget ${t.widgetId} is missing from the render map.`);
14
+ }), d = r(() => I(e().type, t.widgetDefinitions));
15
+ return g(y, {
15
16
  get definition() {
16
17
  return d();
17
18
  },
18
19
  get widgetId() {
19
- return e.widgetId;
20
+ return t.widgetId;
20
21
  },
21
22
  get widgetTitle() {
22
- return t().title;
23
+ return e().title;
23
24
  },
24
25
  get widgetType() {
25
- return t().type;
26
+ return e().type;
26
27
  },
27
28
  get x() {
28
- return t().x;
29
+ return e().x;
29
30
  },
30
31
  get y() {
31
- return t().y;
32
+ return e().y;
32
33
  },
33
34
  get width() {
34
- return t().width;
35
+ return e().width;
35
36
  },
36
37
  get height() {
37
- return t().height;
38
+ return e().height;
38
39
  },
39
40
  get renderLayer() {
40
- return e.renderLayers().byWidgetId.get(e.widgetId) ?? 1;
41
+ return t.renderLayers().byWidgetId.get(t.widgetId) ?? 1;
41
42
  },
42
- itemSnapshot: t,
43
+ itemSnapshot: e,
43
44
  get selected() {
44
- return e.selectedWidgetId === e.widgetId;
45
+ return t.selectedWidgetId === t.widgetId;
45
46
  },
46
47
  get optimisticFront() {
47
- return e.optimisticFrontWidgetId === e.widgetId;
48
+ return t.optimisticFrontWidgetId === t.widgetId;
48
49
  },
49
50
  get topRenderLayer() {
50
- return e.renderLayers().topRenderLayer;
51
+ return t.renderLayers().topRenderLayer;
51
52
  },
52
53
  get viewportScale() {
53
- return e.viewportScale;
54
+ return t.viewportScale;
54
55
  },
55
56
  get locked() {
56
- return e.locked;
57
+ return t.locked;
57
58
  },
58
59
  get filtered() {
59
- return !e.filters[t().type];
60
+ return !t.filters[e().type];
61
+ },
62
+ get interactionAdapter() {
63
+ return t.interactionAdapter;
60
64
  },
61
65
  get onSelect() {
62
- return e.onSelectWidget;
66
+ return t.onSelectWidget;
63
67
  },
64
68
  get onContextMenu() {
65
- return e.onWidgetContextMenu;
69
+ return t.onWidgetContextMenu;
66
70
  },
67
71
  get onStartOptimisticFront() {
68
- return e.onStartOptimisticFront;
72
+ return t.onStartOptimisticFront;
69
73
  },
70
74
  get onCommitFront() {
71
- return e.onCommitFront;
75
+ return t.onCommitFront;
72
76
  },
73
77
  get onCommitMove() {
74
- return e.onCommitMove;
78
+ return t.onCommitMove;
75
79
  },
76
80
  get onCommitResize() {
77
- return e.onCommitResize;
81
+ return t.onCommitResize;
78
82
  },
79
83
  get onRequestOverview() {
80
- return e.onRequestOverview;
84
+ return t.onRequestOverview;
81
85
  },
82
86
  get onRequestFit() {
83
- return e.onRequestFit;
87
+ return t.onRequestFit;
84
88
  },
85
89
  get onRequestDelete() {
86
- return e.onRequestDelete;
90
+ return t.onRequestDelete;
91
+ },
92
+ get onLayoutInteractionStart() {
93
+ return t.onLayoutInteractionStart;
94
+ },
95
+ get onLayoutInteractionEnd() {
96
+ return t.onLayoutInteractionEnd;
87
97
  }
88
98
  });
89
99
  }
90
- function F(e) {
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));
100
+ function s(t) {
101
+ const e = r(() => l(t.interactionAdapter)), d = r(() => t.widgets.map((n) => n.id)), i = r(() => new Map(t.widgets.map((n) => [n.id, n]))), o = r(() => w(t.widgets));
92
102
  return (() => {
93
103
  var n = v();
94
- return n.firstChild, u(n, g(c, {
104
+ return n.firstChild, a(n, g(m, {
95
105
  get each() {
96
- return t();
106
+ return d();
97
107
  },
98
- children: (o) => g(f, {
99
- widgetId: o,
108
+ children: (u) => g(f, {
109
+ widgetId: u,
100
110
  get widgetDefinitions() {
101
- return e.widgetDefinitions;
111
+ return t.widgetDefinitions;
102
112
  },
103
113
  get widgets() {
104
- return e.widgets;
114
+ return t.widgets;
105
115
  },
106
- widgetById: d,
107
- renderLayers: r,
116
+ widgetById: i,
117
+ renderLayers: o,
108
118
  get selectedWidgetId() {
109
- return e.selectedWidgetId;
119
+ return t.selectedWidgetId;
110
120
  },
111
121
  get optimisticFrontWidgetId() {
112
- return e.optimisticFrontWidgetId;
122
+ return t.optimisticFrontWidgetId;
113
123
  },
114
124
  get viewportScale() {
115
- return e.viewportScale;
125
+ return t.viewportScale;
116
126
  },
117
127
  get locked() {
118
- return e.locked;
128
+ return t.locked;
119
129
  },
120
130
  get filters() {
121
- return e.filters;
131
+ return t.filters;
132
+ },
133
+ get interactionAdapter() {
134
+ return e();
122
135
  },
123
136
  get onSelectWidget() {
124
- return e.onSelectWidget;
137
+ return t.onSelectWidget;
125
138
  },
126
139
  get onWidgetContextMenu() {
127
- return e.onWidgetContextMenu;
140
+ return t.onWidgetContextMenu;
128
141
  },
129
142
  get onStartOptimisticFront() {
130
- return e.onStartOptimisticFront;
143
+ return t.onStartOptimisticFront;
131
144
  },
132
145
  get onCommitFront() {
133
- return e.onCommitFront;
146
+ return t.onCommitFront;
134
147
  },
135
148
  get onCommitMove() {
136
- return e.onCommitMove;
149
+ return t.onCommitMove;
137
150
  },
138
151
  get onCommitResize() {
139
- return e.onCommitResize;
152
+ return t.onCommitResize;
140
153
  },
141
154
  get onRequestOverview() {
142
- return e.onRequestOverview;
155
+ return t.onRequestOverview;
143
156
  },
144
157
  get onRequestFit() {
145
- return e.onRequestFit;
158
+ return t.onRequestFit;
146
159
  },
147
160
  get onRequestDelete() {
148
- return e.onRequestDelete;
161
+ return t.onRequestDelete;
162
+ },
163
+ get onLayoutInteractionStart() {
164
+ return t.onLayoutInteractionStart;
165
+ },
166
+ get onLayoutInteractionEnd() {
167
+ return t.onLayoutInteractionEnd;
149
168
  }
150
169
  })
151
170
  }), null), n;
152
171
  })();
153
172
  }
154
173
  export {
155
- F as WorkbenchCanvasField
174
+ s as WorkbenchCanvasField
156
175
  };
@@ -1,10 +1,15 @@
1
- import type { WorkbenchState, WorkbenchWidgetDefinition, WorkbenchWidgetItem, WorkbenchWidgetType } from './types';
1
+ import type { WorkbenchState, WorkbenchInteractionAdapter, WorkbenchWidgetDefinition, WorkbenchWidgetItem, WorkbenchWidgetType } from './types';
2
2
  export interface WorkbenchSurfaceApi {
3
3
  ensureWidget: (type: WorkbenchWidgetType, options?: {
4
4
  centerViewport?: boolean;
5
5
  worldX?: number;
6
6
  worldY?: number;
7
7
  }) => WorkbenchWidgetItem | null;
8
+ createWidget: (type: WorkbenchWidgetType, options?: {
9
+ centerViewport?: boolean;
10
+ worldX?: number;
11
+ worldY?: number;
12
+ }) => WorkbenchWidgetItem | null;
8
13
  clearSelection: () => void;
9
14
  focusWidget: (widget: WorkbenchWidgetItem, options?: {
10
15
  centerViewport?: boolean;
@@ -12,6 +17,8 @@ export interface WorkbenchSurfaceApi {
12
17
  fitWidget: (widget: WorkbenchWidgetItem) => WorkbenchWidgetItem;
13
18
  overviewWidget: (widget: WorkbenchWidgetItem) => WorkbenchWidgetItem;
14
19
  findWidgetByType: (type: WorkbenchWidgetType) => WorkbenchWidgetItem | null;
20
+ findWidgetById: (widgetId: string) => WorkbenchWidgetItem | null;
21
+ updateWidgetTitle: (widgetId: string, title: string) => void;
15
22
  }
16
23
  export interface WorkbenchSurfaceProps {
17
24
  state: () => WorkbenchState;
@@ -32,6 +39,11 @@ export interface WorkbenchSurfaceProps {
32
39
  */
33
40
  class?: string;
34
41
  widgetDefinitions?: readonly WorkbenchWidgetDefinition[];
42
+ launcherWidgetTypes?: readonly WorkbenchWidgetType[];
43
+ interactionAdapter?: WorkbenchInteractionAdapter;
35
44
  onApiReady?: (api: WorkbenchSurfaceApi | null) => void;
45
+ onRequestDelete?: (widgetId: string) => void;
46
+ onLayoutInteractionStart?: () => void;
47
+ onLayoutInteractionEnd?: () => void;
36
48
  }
37
49
  export declare function WorkbenchSurface(props: WorkbenchSurfaceProps): import("solid-js").JSX.Element;