@floegence/floe-webapp-core 0.36.52 → 0.36.54

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,12 +1,14 @@
1
1
  import { type InfiniteCanvasContextMenuEvent } from '../../ui';
2
2
  import { type ResolvedWorkbenchInteractionAdapter } from './workbenchInteractionAdapter';
3
3
  import { type WorkbenchAnnotationItem, type WorkbenchBackgroundLayer, type WorkbenchInteractionMode, type WorkbenchInteractionAdapter, type WorkbenchSelection, type WorkbenchStickyNoteItem, type WorkbenchTextAnnotationPatch, type WorkbenchViewport, type WorkbenchWidgetDefinition, type WorkbenchWidgetItem, type WorkbenchWidgetMotionIntent } from './types';
4
+ import type { WorkbenchPlacementPreviewFrame } from './workbenchPlacement';
4
5
  export interface WorkbenchCanvasProps {
5
6
  widgetDefinitions: readonly WorkbenchWidgetDefinition[];
6
7
  widgets: readonly WorkbenchWidgetItem[];
7
8
  stickyNotes?: readonly WorkbenchStickyNoteItem[];
8
9
  annotations?: readonly WorkbenchAnnotationItem[];
9
10
  backgroundLayers?: readonly WorkbenchBackgroundLayer[];
11
+ placementPreview?: WorkbenchPlacementPreviewFrame | null;
10
12
  viewport: WorkbenchViewport;
11
13
  canvasFrameSize: {
12
14
  width: number;
@@ -1,23 +1,24 @@
1
- import { use as E, insert as S, createComponent as g, memo as k, effect as F, template as x } from "solid-js/web";
2
- import { createMemo as d, createSignal as _, Show as z, For as O } from "solid-js";
3
- import { resolveWorkbenchInteractionAdapter as V } from "./workbenchInteractionAdapter.js";
4
- import { WORKBENCH_BACKGROUND_REGION_FILTER_ID as q, WORKBENCH_TEXT_FILTER_ID as T, WORKBENCH_STICKY_FILTER_ID as U } from "./types.js";
5
- import { WorkbenchCanvasField as P } from "./WorkbenchCanvasField.js";
6
- import { WorkbenchBackgroundLayerView as G, WorkbenchAnnotationLayerView as $, WorkbenchLayerControlOverlayView as K, createWorkbenchTextEditorRegistry as H, WorkbenchStickyNote as Z } from "./WorkbenchLayerObjects.js";
7
- import { WorkbenchWidget as X } from "./WorkbenchWidget.js";
8
- import { createWorkbenchRenderLayerMap as Y, resolveWorkbenchModeStrategy as J, resolveWorkbenchWidgetRenderMode as j } from "./workbenchHelpers.js";
9
- import { createWorkbenchWidgetEnterMotionTracker as Q } from "./workbenchMotion.js";
10
- import { getWidgetEntry as L } from "./widgets/widgetRegistry.js";
11
- import { InfiniteCanvas as p } from "../ui/InfiniteCanvas.js";
12
- var ee = /* @__PURE__ */ x("<div class=workbench-canvas><div class=workbench-canvas__atmosphere aria-hidden=true>"), te = /* @__PURE__ */ x("<div class=workbench-canvas__projected-layer><div class=workbench-canvas__projected-work-layer>");
13
- function ne(e) {
1
+ import { use as _, insert as S, createComponent as g, memo as y, effect as F, template as B } from "solid-js/web";
2
+ import { createMemo as d, createSignal as z, Show as O, For as j } from "solid-js";
3
+ import { resolveWorkbenchInteractionAdapter as P } from "./workbenchInteractionAdapter.js";
4
+ import { WORKBENCH_BACKGROUND_REGION_FILTER_ID as V, WORKBENCH_TEXT_FILTER_ID as q, WORKBENCH_STICKY_FILTER_ID as T } from "./types.js";
5
+ import { WorkbenchCanvasField as U } from "./WorkbenchCanvasField.js";
6
+ import { WorkbenchPlacementPreview as G } from "./WorkbenchPlacementPreview.js";
7
+ import { WorkbenchBackgroundLayerView as $, WorkbenchAnnotationLayerView as K, WorkbenchLayerControlOverlayView as H, createWorkbenchTextEditorRegistry as Z, WorkbenchStickyNote as X } from "./WorkbenchLayerObjects.js";
8
+ import { WorkbenchWidget as Y } from "./WorkbenchWidget.js";
9
+ import { createWorkbenchRenderLayerMap as J, resolveWorkbenchModeStrategy as Q, resolveWorkbenchWidgetRenderMode as x } from "./workbenchHelpers.js";
10
+ import { createWorkbenchWidgetEnterMotionTracker as p } from "./workbenchMotion.js";
11
+ import { getWidgetEntry as R } from "./widgets/widgetRegistry.js";
12
+ import { InfiniteCanvas as ee } from "../ui/InfiniteCanvas.js";
13
+ var te = /* @__PURE__ */ B("<div class=workbench-canvas><div class=workbench-canvas__atmosphere aria-hidden=true>"), ne = /* @__PURE__ */ B("<div class=workbench-canvas__projected-layer><div class=workbench-canvas__projected-work-layer>");
14
+ function re(e) {
14
15
  const a = d((c) => {
15
16
  const C = e.widgetById().get(e.widgetId);
16
17
  if (C) return C;
17
18
  if (c) return c;
18
19
  throw new Error(`Workbench widget ${e.widgetId} is missing from the projected render map.`);
19
- }), r = d(() => L(a().type, e.widgetDefinitions));
20
- return g(X, {
20
+ }), r = d(() => R(a().type, e.widgetDefinitions));
21
+ return g(Y, {
21
22
  get definition() {
22
23
  return r();
23
24
  },
@@ -65,7 +66,7 @@ function ne(e) {
65
66
  return e.locked;
66
67
  },
67
68
  get filtered() {
68
- return k(() => !e.locked)() && e.filters[a().type] === !1;
69
+ return y(() => !e.locked)() && e.filters[a().type] === !1;
69
70
  },
70
71
  get interactionAdapter() {
71
72
  return e.interactionAdapter;
@@ -121,19 +122,19 @@ function ne(e) {
121
122
  }
122
123
  });
123
124
  }
124
- function re(e) {
125
+ function oe(e) {
125
126
  const a = d((r) => {
126
127
  const c = e.stickyNoteById().get(e.noteId);
127
128
  if (c) return c;
128
129
  if (r) return r;
129
130
  throw new Error(`Workbench sticky note ${e.noteId} is missing from the projected render map.`);
130
131
  });
131
- return g(Z, {
132
+ return g(X, {
132
133
  get item() {
133
134
  return a();
134
135
  },
135
136
  get selected() {
136
- return k(() => e.selectedObject?.kind === "sticky_note")() && e.selectedObject.id === e.noteId;
137
+ return y(() => e.selectedObject?.kind === "sticky_note")() && e.selectedObject.id === e.noteId;
137
138
  },
138
139
  get viewportScale() {
139
140
  return e.projectedViewport().scale;
@@ -175,8 +176,8 @@ function re(e) {
175
176
  }
176
177
  });
177
178
  }
178
- function Se(e) {
179
- const a = d(() => V(e.interactionAdapter)), r = Q(() => e.widgets.map((n) => n.id)), c = d(() => {
179
+ function Ce(e) {
180
+ const a = d(() => P(e.interactionAdapter)), r = p(() => e.widgets.map((n) => n.id)), c = d(() => {
180
181
  const n = e.widgetMotionById;
181
182
  if (!n)
182
183
  return r();
@@ -186,25 +187,25 @@ function Se(e) {
186
187
  for (const [o, u] of Object.entries(n))
187
188
  u !== void 0 && (m[o] = u);
188
189
  return m;
189
- }), C = d(() => new Map(e.widgets.map((n) => [n.id, n]))), B = d(() => (e.stickyNotes ?? []).map((n) => n.id)), N = d(() => new Map((e.stickyNotes ?? []).map((n) => [n.id, n]))), R = d(() => Y([...e.widgets, ...e.stickyNotes ?? []])), s = H(), [v, f] = _(null), I = d(() => J(e.mode)), w = d(() => I().workLayerLocked), l = d(() => I().layerEditingEnabled), A = d(() => e.widgets.filter((n) => {
190
- const m = L(n.type, e.widgetDefinitions);
191
- return j(m) === "canvas_scaled";
192
- })), b = d(() => e.widgets.filter((n) => {
193
- const m = L(n.type, e.widgetDefinitions);
194
- return j(m) === "projected_surface";
195
- }).map((n) => n.id)), M = d(() => b().length > 0), D = d(() => M() ? [] : e.stickyNotes ?? []), W = () => e.canvasFrameSize.width > 0 && e.canvasFrameSize.height > 0, h = M;
190
+ }), C = d(() => new Map(e.widgets.map((n) => [n.id, n]))), N = d(() => (e.stickyNotes ?? []).map((n) => n.id)), A = d(() => new Map((e.stickyNotes ?? []).map((n) => [n.id, n]))), b = d(() => J([...e.widgets, ...e.stickyNotes ?? []])), I = Z(), [v, f] = z(null), s = d(() => Q(e.mode)), w = d(() => s().workLayerLocked), l = d(() => s().layerEditingEnabled), D = d(() => e.widgets.filter((n) => {
191
+ const m = R(n.type, e.widgetDefinitions);
192
+ return x(m) === "canvas_scaled";
193
+ })), h = d(() => e.widgets.filter((n) => {
194
+ const m = R(n.type, e.widgetDefinitions);
195
+ return x(m) === "projected_surface";
196
+ }).map((n) => n.id)), M = d(() => h().length > 0), E = d(() => M() ? [] : e.stickyNotes ?? []), W = () => e.canvasFrameSize.width > 0 && e.canvasFrameSize.height > 0, L = M;
196
197
  return (() => {
197
- var n = ee();
198
+ var n = te();
198
199
  n.firstChild;
199
200
  var m = e.setCanvasFrameRef;
200
- return typeof m == "function" ? E(m, n) : e.setCanvasFrameRef = n, S(n, g(p, {
201
+ return typeof m == "function" ? _(m, n) : e.setCanvasFrameRef = n, S(n, g(ee, {
201
202
  ariaLabel: "Workbench canvas",
202
203
  class: "workbench-canvas__infinite",
203
204
  get viewport() {
204
205
  return e.viewport;
205
206
  },
206
207
  get minScale() {
207
- return I().minScale;
208
+ return s().minScale;
208
209
  },
209
210
  get onViewportChange() {
210
211
  return e.onViewportCommit;
@@ -232,13 +233,13 @@ function Se(e) {
232
233
  get disablePanZoom() {
233
234
  return e.locked;
234
235
  },
235
- overlay: (o) => g(z, {
236
+ overlay: (o) => [g(O, {
236
237
  get when() {
237
- return h();
238
+ return L();
238
239
  },
239
240
  get children() {
240
- var u = te(), y = u.firstChild;
241
- return S(u, g(G, {
241
+ var u = ne(), k = u.firstChild;
242
+ return S(u, g($, {
242
243
  get items() {
243
244
  return e.backgroundLayers ?? [];
244
245
  },
@@ -246,10 +247,10 @@ function Se(e) {
246
247
  return e.selectedObject ?? null;
247
248
  },
248
249
  get editable() {
249
- return k(() => !!l())() && !e.locked;
250
+ return y(() => !!l())() && !e.locked;
250
251
  },
251
252
  get filtered() {
252
- return e.filters[q] === !1;
253
+ return e.filters[V] === !1;
253
254
  },
254
255
  projection: "screen",
255
256
  get preview() {
@@ -262,7 +263,7 @@ function Se(e) {
262
263
  onSelect: (t) => e.onSelectBackgroundLayer?.(t),
263
264
  onContextMenu: (t, i) => e.onBackgroundLayerContextMenu?.(t, i),
264
265
  onCommitMove: (t, i) => e.onCommitBackgroundMove?.(t, i)
265
- }), y), S(u, g($, {
266
+ }), k), S(u, g(K, {
266
267
  get items() {
267
268
  return e.annotations ?? [];
268
269
  },
@@ -270,17 +271,17 @@ function Se(e) {
270
271
  return e.selectedObject ?? null;
271
272
  },
272
273
  get editable() {
273
- return k(() => !!l())() && !e.locked;
274
+ return y(() => !!l())() && !e.locked;
274
275
  },
275
276
  get filtered() {
276
- return e.filters[T] === !1;
277
+ return e.filters[q] === !1;
277
278
  },
278
279
  projection: "screen",
279
280
  get preview() {
280
281
  return v();
281
282
  },
282
283
  onPreviewGeometry: f,
283
- textEditorRegistry: s,
284
+ textEditorRegistry: I,
284
285
  get viewport() {
285
286
  return o();
286
287
  },
@@ -288,11 +289,11 @@ function Se(e) {
288
289
  onContextMenu: (t, i) => e.onAnnotationContextMenu?.(t, i),
289
290
  onCommitMove: (t, i) => e.onCommitAnnotationMove?.(t, i),
290
291
  onUpdate: (t, i) => e.onUpdateTextAnnotation?.(t, i)
291
- }), y), S(y, g(O, {
292
+ }), k), S(k, g(j, {
292
293
  get each() {
293
- return b();
294
+ return h();
294
295
  },
295
- children: (t) => g(ne, {
296
+ children: (t) => g(re, {
296
297
  widgetId: t,
297
298
  get widgetDefinitions() {
298
299
  return e.widgetDefinitions;
@@ -301,12 +302,12 @@ function Se(e) {
301
302
  return e.canvasFrameSize;
302
303
  },
303
304
  widgetById: C,
304
- renderLayers: R,
305
+ renderLayers: b,
305
306
  get widgetMotionById() {
306
307
  return c();
307
308
  },
308
309
  get selectedWidgetId() {
309
- return k(() => e.selectedObject?.kind === "widget")() ? e.selectedObject.id : e.selectedWidgetId;
310
+ return y(() => e.selectedObject?.kind === "widget")() ? e.selectedObject.id : e.selectedWidgetId;
310
311
  },
311
312
  get optimisticFrontWidgetId() {
312
313
  return e.optimisticFrontWidgetId;
@@ -367,17 +368,17 @@ function Se(e) {
367
368
  return W();
368
369
  }
369
370
  })
370
- }), null), S(y, g(O, {
371
+ }), null), S(k, g(j, {
371
372
  get each() {
372
- return B();
373
+ return N();
373
374
  },
374
- children: (t) => g(re, {
375
+ children: (t) => g(oe, {
375
376
  noteId: t,
376
- stickyNoteById: N,
377
+ stickyNoteById: A,
377
378
  get selectedObject() {
378
379
  return e.selectedObject;
379
380
  },
380
- renderLayers: R,
381
+ renderLayers: b,
381
382
  projectedViewport: o,
382
383
  get optimisticFrontWidgetId() {
383
384
  return e.optimisticFrontWidgetId;
@@ -386,7 +387,7 @@ function Se(e) {
386
387
  return e.locked || w();
387
388
  },
388
389
  get filtered() {
389
- return k(() => !w())() && e.filters[U] === !1;
390
+ return y(() => !w())() && e.filters[T] === !1;
390
391
  },
391
392
  get onSelectStickyNote() {
392
393
  return e.onSelectStickyNote;
@@ -422,7 +423,7 @@ function Se(e) {
422
423
  return W();
423
424
  }
424
425
  })
425
- }), null), S(u, g(K, {
426
+ }), null), S(u, g(H, {
426
427
  get annotations() {
427
428
  return e.annotations ?? [];
428
429
  },
@@ -433,7 +434,7 @@ function Se(e) {
433
434
  return e.selectedObject ?? null;
434
435
  },
435
436
  get editable() {
436
- return k(() => !!l())() && !e.locked;
437
+ return y(() => !!l())() && !e.locked;
437
438
  },
438
439
  get showRegionOutlines() {
439
440
  return l();
@@ -446,7 +447,7 @@ function Se(e) {
446
447
  return v();
447
448
  },
448
449
  onPreviewGeometry: f,
449
- textEditorRegistry: s,
450
+ textEditorRegistry: I,
450
451
  onCommitAnnotationMove: (t, i) => e.onCommitAnnotationMove?.(t, i),
451
452
  onCommitAnnotationResize: (t, i) => e.onCommitAnnotationResize?.(t, i),
452
453
  onUpdateTextAnnotation: (t, i) => e.onUpdateTextAnnotation?.(t, i),
@@ -456,17 +457,30 @@ function Se(e) {
456
457
  onDeleteBackgroundLayer: (t) => e.onDeleteBackgroundLayer?.(t)
457
458
  }), null), F(() => u.classList.toggle("is-work-layer-locked", !!w())), u;
458
459
  }
459
- }),
460
+ }), g(O, {
461
+ get when() {
462
+ return y(() => !!L())() ? e.placementPreview : null;
463
+ },
464
+ children: (u) => g(G, {
465
+ get preview() {
466
+ return u();
467
+ },
468
+ projection: "screen",
469
+ get viewport() {
470
+ return o();
471
+ }
472
+ })
473
+ })],
460
474
  get children() {
461
- return g(P, {
475
+ return g(U, {
462
476
  get widgetDefinitions() {
463
477
  return e.widgetDefinitions;
464
478
  },
465
479
  get widgets() {
466
- return A();
480
+ return D();
467
481
  },
468
482
  get stickyNotes() {
469
- return D();
483
+ return E();
470
484
  },
471
485
  get annotations() {
472
486
  return e.annotations ?? [];
@@ -474,6 +488,9 @@ function Se(e) {
474
488
  get backgroundLayers() {
475
489
  return e.backgroundLayers ?? [];
476
490
  },
491
+ get placementPreview() {
492
+ return e.placementPreview;
493
+ },
477
494
  get viewport() {
478
495
  return e.viewport;
479
496
  },
@@ -499,7 +516,7 @@ function Se(e) {
499
516
  return l();
500
517
  },
501
518
  get renderFreeformLayers() {
502
- return !h();
519
+ return !L();
503
520
  },
504
521
  get viewportScale() {
505
522
  return e.viewport.scale;
@@ -619,12 +636,12 @@ function Se(e) {
619
636
  return v();
620
637
  },
621
638
  onLayerGeometryPreview: f,
622
- textEditorRegistry: s
639
+ textEditorRegistry: I
623
640
  });
624
641
  }
625
642
  }), null), F((o) => {
626
- var u = !!e.locked, y = !!l();
627
- return u !== o.e && n.classList.toggle("is-locked", o.e = u), y !== o.t && n.classList.toggle("is-composition-mode", o.t = y), o;
643
+ var u = !!e.locked, k = !!l();
644
+ return u !== o.e && n.classList.toggle("is-locked", o.e = u), k !== o.t && n.classList.toggle("is-composition-mode", o.t = k), o;
628
645
  }, {
629
646
  e: void 0,
630
647
  t: void 0
@@ -632,5 +649,5 @@ function Se(e) {
632
649
  })();
633
650
  }
634
651
  export {
635
- Se as WorkbenchCanvas
652
+ Ce as WorkbenchCanvas
636
653
  };
@@ -1,5 +1,6 @@
1
1
  import { type ResolvedWorkbenchInteractionAdapter } from './workbenchInteractionAdapter';
2
2
  import { type WorkbenchWidgetItem, type WorkbenchAnnotationItem, type WorkbenchBackgroundLayer, type WorkbenchInteractionAdapter, type WorkbenchSelection, type WorkbenchStickyNoteItem, type WorkbenchTextAnnotationPatch, type WorkbenchViewport, type WorkbenchWidgetDefinition, type WorkbenchWidgetMotionIntent } from './types';
3
+ import type { WorkbenchPlacementPreviewFrame } from './workbenchPlacement';
3
4
  import { type WorkbenchLayerGeometryPreview, type WorkbenchTextEditorRegistry } from './WorkbenchLayerObjects';
4
5
  export interface WorkbenchCanvasFieldProps {
5
6
  widgetDefinitions: readonly WorkbenchWidgetDefinition[];
@@ -7,6 +8,7 @@ export interface WorkbenchCanvasFieldProps {
7
8
  stickyNotes?: readonly WorkbenchStickyNoteItem[];
8
9
  annotations?: readonly WorkbenchAnnotationItem[];
9
10
  backgroundLayers?: readonly WorkbenchBackgroundLayer[];
11
+ placementPreview?: WorkbenchPlacementPreviewFrame | null;
10
12
  viewport: WorkbenchViewport;
11
13
  selectedObject?: WorkbenchSelection | null;
12
14
  selectedWidgetId: string | null;
@@ -1,16 +1,17 @@
1
- import { insert as m, memo as g, createComponent as d, effect as M, template as O } from "solid-js/web";
1
+ import { insert as l, memo as g, createComponent as d, effect as M, template as O } from "solid-js/web";
2
2
  import { createMemo as a, createSignal as E, For as C } from "solid-js";
3
3
  import { resolveWorkbenchInteractionAdapter as B } from "./workbenchInteractionAdapter.js";
4
4
  import { WORKBENCH_BACKGROUND_REGION_FILTER_ID as x, WORKBENCH_TEXT_FILTER_ID as N, WORKBENCH_STICKY_FILTER_ID as _ } from "./types.js";
5
5
  import { createWorkbenchRenderLayerMap as A } from "./workbenchHelpers.js";
6
6
  import { getWidgetEntry as D } from "./widgets/widgetRegistry.js";
7
7
  import { WorkbenchWidget as s } from "./WorkbenchWidget.js";
8
- import { WorkbenchBackgroundLayerView as G, WorkbenchAnnotationLayerView as T, WorkbenchLayerControlOverlayView as j, createWorkbenchTextEditorRegistry as q, WorkbenchStickyNote as z } from "./WorkbenchLayerObjects.js";
9
- var P = /* @__PURE__ */ O("<div class=workbench-canvas__field><div class=workbench-canvas__grid aria-hidden=true></div><div class=workbench-work-layer>");
10
- function U(e) {
8
+ import { WorkbenchPlacementPreview as P } from "./WorkbenchPlacementPreview.js";
9
+ import { WorkbenchBackgroundLayerView as j, WorkbenchAnnotationLayerView as G, WorkbenchLayerControlOverlayView as T, createWorkbenchTextEditorRegistry as q, WorkbenchStickyNote as z } from "./WorkbenchLayerObjects.js";
10
+ var U = /* @__PURE__ */ O("<div class=workbench-canvas__field><div class=workbench-canvas__grid aria-hidden=true></div><div class=workbench-work-layer>");
11
+ function V(e) {
11
12
  const c = a((o) => {
12
- const l = e.widgetById().get(e.widgetId);
13
- if (l) return l;
13
+ const m = e.widgetById().get(e.widgetId);
14
+ if (m) return m;
14
15
  if (o) return o;
15
16
  throw new Error(`Workbench widget ${e.widgetId} is missing from the render map.`);
16
17
  }), n = a(() => D(c().type, e.widgetDefinitions));
@@ -111,7 +112,7 @@ function U(e) {
111
112
  }
112
113
  });
113
114
  }
114
- function V(e) {
115
+ function $(e) {
115
116
  const c = a((n) => {
116
117
  const o = e.stickyNoteById().get(e.noteId);
117
118
  if (o) return o;
@@ -159,19 +160,19 @@ function V(e) {
159
160
  }
160
161
  });
161
162
  }
162
- function p(e) {
163
- const c = a(() => B(e.interactionAdapter)), n = a(() => e.widgets.map((i) => i.id)), o = a(() => new Map(e.widgets.map((i) => [i.id, i]))), l = a(() => (e.stickyNotes ?? []).map((i) => i.id)), f = a(() => new Map((e.stickyNotes ?? []).map((i) => [i.id, i]))), R = q(), S = a(() => e.textEditorRegistry ?? R), v = a(() => A([...e.widgets, ...e.stickyNotes ?? []])), b = a(() => e.selectedObject?.kind === "widget" ? e.selectedObject.id : e.selectedWidgetId), L = a(() => e.locked || !!e.workLayerLocked), [W, h] = E(null), y = a(() => e.layerGeometryPreview === void 0 ? W() : e.layerGeometryPreview), w = (i) => {
163
+ function te(e) {
164
+ const c = a(() => B(e.interactionAdapter)), n = a(() => e.widgets.map((r) => r.id)), o = a(() => new Map(e.widgets.map((r) => [r.id, r]))), m = a(() => (e.stickyNotes ?? []).map((r) => r.id)), f = a(() => new Map((e.stickyNotes ?? []).map((r) => [r.id, r]))), R = q(), v = a(() => e.textEditorRegistry ?? R), S = a(() => A([...e.widgets, ...e.stickyNotes ?? []])), b = a(() => e.selectedObject?.kind === "widget" ? e.selectedObject.id : e.selectedWidgetId), L = a(() => e.locked || !!e.workLayerLocked), [W, h] = E(null), y = a(() => e.layerGeometryPreview === void 0 ? W() : e.layerGeometryPreview), w = (r) => {
164
165
  if (e.onLayerGeometryPreview) {
165
- e.onLayerGeometryPreview(i);
166
+ e.onLayerGeometryPreview(r);
166
167
  return;
167
168
  }
168
- h(i);
169
+ h(r);
169
170
  }, I = a(() => e.renderFreeformLayers !== !1);
170
171
  return (() => {
171
- var i = P(), F = i.firstChild, k = F.nextSibling;
172
- return m(i, (() => {
172
+ var r = U(), F = r.firstChild, k = F.nextSibling;
173
+ return l(r, (() => {
173
174
  var u = g(() => !!I());
174
- return () => u() ? [d(G, {
175
+ return () => u() ? [d(j, {
175
176
  get items() {
176
177
  return e.backgroundLayers ?? [];
177
178
  },
@@ -192,9 +193,9 @@ function p(e) {
192
193
  return e.viewport;
193
194
  },
194
195
  onSelect: (t) => e.onSelectBackgroundLayer?.(t),
195
- onContextMenu: (t, r) => e.onBackgroundLayerContextMenu?.(t, r),
196
- onCommitMove: (t, r) => e.onCommitBackgroundMove?.(t, r)
197
- }), d(T, {
196
+ onContextMenu: (t, i) => e.onBackgroundLayerContextMenu?.(t, i),
197
+ onCommitMove: (t, i) => e.onCommitBackgroundMove?.(t, i)
198
+ }), d(G, {
198
199
  get items() {
199
200
  return e.annotations ?? [];
200
201
  },
@@ -212,21 +213,21 @@ function p(e) {
212
213
  },
213
214
  onPreviewGeometry: w,
214
215
  get textEditorRegistry() {
215
- return S();
216
+ return v();
216
217
  },
217
218
  get viewport() {
218
219
  return e.viewport;
219
220
  },
220
221
  onSelect: (t) => e.onSelectAnnotation?.(t),
221
- onContextMenu: (t, r) => e.onAnnotationContextMenu?.(t, r),
222
- onCommitMove: (t, r) => e.onCommitAnnotationMove?.(t, r),
223
- onUpdate: (t, r) => e.onUpdateTextAnnotation?.(t, r)
222
+ onContextMenu: (t, i) => e.onAnnotationContextMenu?.(t, i),
223
+ onCommitMove: (t, i) => e.onCommitAnnotationMove?.(t, i),
224
+ onUpdate: (t, i) => e.onUpdateTextAnnotation?.(t, i)
224
225
  })] : null;
225
- })(), k), m(k, d(C, {
226
+ })(), k), l(k, d(C, {
226
227
  get each() {
227
228
  return n();
228
229
  },
229
- children: (u) => d(U, {
230
+ children: (u) => d(V, {
230
231
  widgetId: u,
231
232
  get widgetDefinitions() {
232
233
  return e.widgetDefinitions;
@@ -235,7 +236,7 @@ function p(e) {
235
236
  return e.widgets;
236
237
  },
237
238
  widgetById: o,
238
- renderLayers: v,
239
+ renderLayers: S,
239
240
  get viewport() {
240
241
  return e.viewport;
241
242
  },
@@ -300,11 +301,11 @@ function p(e) {
300
301
  return e.onLayoutInteractionEnd;
301
302
  }
302
303
  })
303
- }), null), m(k, d(C, {
304
+ }), null), l(k, d(C, {
304
305
  get each() {
305
- return l();
306
+ return m();
306
307
  },
307
- children: (u) => d(V, {
308
+ children: (u) => d($, {
308
309
  noteId: u,
309
310
  stickyNoteById: f,
310
311
  get selectedObject() {
@@ -352,11 +353,11 @@ function p(e) {
352
353
  get onLayoutInteractionEnd() {
353
354
  return e.onLayoutInteractionEnd;
354
355
  },
355
- renderLayers: v
356
+ renderLayers: S
356
357
  })
357
- }), null), m(i, (() => {
358
+ }), null), l(r, (() => {
358
359
  var u = g(() => !!I());
359
- return () => u() ? d(j, {
360
+ return () => u() ? d(T, {
360
361
  get annotations() {
361
362
  return e.annotations ?? [];
362
363
  },
@@ -380,19 +381,27 @@ function p(e) {
380
381
  },
381
382
  onPreviewGeometry: w,
382
383
  get textEditorRegistry() {
383
- return S();
384
+ return v();
384
385
  },
385
- onCommitAnnotationMove: (t, r) => e.onCommitAnnotationMove?.(t, r),
386
- onCommitAnnotationResize: (t, r) => e.onCommitAnnotationResize?.(t, r),
387
- onUpdateTextAnnotation: (t, r) => e.onUpdateTextAnnotation?.(t, r),
386
+ onCommitAnnotationMove: (t, i) => e.onCommitAnnotationMove?.(t, i),
387
+ onCommitAnnotationResize: (t, i) => e.onCommitAnnotationResize?.(t, i),
388
+ onUpdateTextAnnotation: (t, i) => e.onUpdateTextAnnotation?.(t, i),
388
389
  onDeleteAnnotation: (t) => e.onDeleteAnnotation?.(t),
389
- onCommitBackgroundResize: (t, r) => e.onCommitBackgroundResize?.(t, r),
390
- onUpdateBackgroundLayer: (t, r) => e.onUpdateBackgroundLayer?.(t, r),
390
+ onCommitBackgroundResize: (t, i) => e.onCommitBackgroundResize?.(t, i),
391
+ onUpdateBackgroundLayer: (t, i) => e.onUpdateBackgroundLayer?.(t, i),
391
392
  onDeleteBackgroundLayer: (t) => e.onDeleteBackgroundLayer?.(t)
392
393
  }) : null;
393
- })(), null), M(() => i.classList.toggle("is-work-layer-muted", !!e.workLayerLocked)), i;
394
+ })(), null), l(r, d(P, {
395
+ get preview() {
396
+ return e.placementPreview;
397
+ },
398
+ projection: "world",
399
+ get viewport() {
400
+ return e.viewport;
401
+ }
402
+ }), null), M(() => r.classList.toggle("is-work-layer-muted", !!e.workLayerLocked)), r;
394
403
  })();
395
404
  }
396
405
  export {
397
- p as WorkbenchCanvasField
406
+ te as WorkbenchCanvasField
398
407
  };
@@ -14,9 +14,17 @@ export interface WorkbenchFilterBarProps {
14
14
  */
15
15
  onCreateAt?: (type: WorkbenchWidgetType, clientX: number, clientY: number) => void;
16
16
  onCreateToolAt?: (tool: WorkbenchDockToolId, clientX: number, clientY: number) => void;
17
+ onDragPreviewChange?: (preview: WorkbenchDockDragPreview | null) => void;
17
18
  viewport?: WorkbenchViewport;
18
19
  onViewportCommit?: (viewport: WorkbenchViewport) => void;
19
20
  onViewportInteractionStart?: (kind: 'pan') => void;
20
21
  }
22
+ export type WorkbenchDockDragPreview = Readonly<{
23
+ kind: 'widget' | 'tool';
24
+ id: WorkbenchWidgetType | WorkbenchDockToolId;
25
+ label: string;
26
+ clientX: number;
27
+ clientY: number;
28
+ }>;
21
29
  export declare function WorkbenchDock(props: WorkbenchFilterBarProps): JSX.Element;
22
30
  export declare const WorkbenchFilterBar: typeof WorkbenchDock;