@floegence/floe-webapp-core 0.86.63 → 0.86.64

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,21 +1,22 @@
1
- import { createComponent as r, use as G, setAttribute as c, style as ne, Portal as ae, spread as I, mergeProps as E, memo as p, insert as i, effect as P, className as q, template as m } from "solid-js/web";
2
- import { createSignal as T, onMount as le, onCleanup as M, createUniqueId as ie, createEffect as K, createMemo as U, Show as u, untrack as V } from "solid-js";
1
+ import { createComponent as r, use as q, setAttribute as c, style as ne, Portal as ae, spread as E, mergeProps as M, memo as x, insert as s, effect as P, className as K, template as m } from "solid-js/web";
2
+ import { createSignal as T, onMount as le, onCleanup as B, createUniqueId as ie, createEffect as j, createMemo as U, Show as u, untrack as V } from "solid-js";
3
3
  import { cn as g } from "../../utils/cn.js";
4
- import { Button as j } from "./Button.js";
4
+ import { Button as H } from "./Button.js";
5
5
  import { X as de } from "../icons/index.js";
6
- import { useResolvedFloeConfig as fe } from "../../context/FloeConfigContext.js";
7
- import { useOverlayMask as se } from "../../hooks/useOverlayMask.js";
8
- import { resolveSurfacePortalHost as ce, DIALOG_SURFACE_BOUNDARY_ATTR as k, SURFACE_PORTAL_LAYER_ATTR as ue, DIALOG_SURFACE_HOST_ATTR as ge, isSurfacePortalMode as z, projectSurfacePortalRect as me, resolveSurfacePortalBoundaryRect as he, resolveSurfacePortalMount as ve } from "./dialogSurfaceScope.js";
6
+ import { useResolvedFloeConfig as se } from "../../context/FloeConfigContext.js";
7
+ import { useOverlayMask as fe } from "../../hooks/useOverlayMask.js";
8
+ import { resolveSurfacePortalHost as ce, DIALOG_SURFACE_BOUNDARY_ATTR as S, SURFACE_PORTAL_LAYER_ATTR as ue, DIALOG_SURFACE_HOST_ATTR as ge, isSurfacePortalMode as z, projectSurfacePortalRect as me, resolveSurfacePortalBoundaryRect as he, resolveSurfacePortalMount as ve } from "./dialogSurfaceScope.js";
9
9
  import { LOCAL_INTERACTION_SURFACE_ATTR as ye } from "./localInteractionSurface.js";
10
- import { createFloatingPresence as we } from "./floatingPresence.js";
11
- import { useDialogPlacement as be } from "./DialogPlacementContext.js";
12
- import { observeViewport as pe, viewportStyle as xe } from "../../viewport.js";
13
- import { resolveFloatingBoundary as $e } from "./surfaceFloatingBoundary.js";
14
- var Ae = /* @__PURE__ */ m("<span aria-hidden=true>"), Ce = /* @__PURE__ */ m('<h2 class="text-[length:var(--floe-type-heading-sm)] font-semibold leading-[var(--floe-line-heading)] tracking-[var(--floe-tracking-tight)] text-[var(--floe-ink)]">'), _e = /* @__PURE__ */ m('<div data-floe-dialog-header class="flex shrink-0 items-start justify-between gap-[var(--floe-gap-control)] px-[var(--floe-pad-group)] py-[var(--floe-pad-control)] border-b border-[var(--floe-line)]"><div>'), ke = /* @__PURE__ */ m('<p class="mb-3 shrink-0 text-[length:var(--floe-type-body)] leading-[var(--floe-line-body)] text-[var(--floe-ink-soft)] last:mb-0">'), Se = /* @__PURE__ */ m('<div data-floe-dialog-footer class="flex shrink-0 items-center justify-end gap-[var(--floe-gap-control)] px-[var(--floe-pad-group)] py-[var(--floe-pad-control)] border-t border-[var(--floe-line)]">'), Oe = /* @__PURE__ */ m("<div><div></div><div><div data-floe-surface=floating><div data-floe-dialog-body>"), Re = /* @__PURE__ */ m("<h2 class=sr-only>");
15
- const De = {
10
+ import { createFloatingPresence as be } from "./floatingPresence.js";
11
+ import { observeDialogHeight as we } from "./dialogHeightMotion.js";
12
+ import { useDialogPlacement as pe } from "./DialogPlacementContext.js";
13
+ import { observeViewport as xe, viewportStyle as $e } from "../../viewport.js";
14
+ import { resolveFloatingBoundary as Ae } from "./surfaceFloatingBoundary.js";
15
+ var Ce = /* @__PURE__ */ m("<span aria-hidden=true>"), _e = /* @__PURE__ */ m('<h2 class="text-[length:var(--floe-type-heading-sm)] font-semibold leading-[var(--floe-line-heading)] tracking-[var(--floe-tracking-tight)] text-[var(--floe-ink)]">'), ke = /* @__PURE__ */ m('<div data-floe-dialog-header class="flex shrink-0 items-start justify-between gap-[var(--floe-gap-control)] px-[var(--floe-pad-group)] py-[var(--floe-pad-control)] border-b border-[var(--floe-line)]"><div>'), Se = /* @__PURE__ */ m('<p class="mb-3 shrink-0 text-[length:var(--floe-type-body)] leading-[var(--floe-line-body)] text-[var(--floe-ink-soft)] last:mb-0">'), Oe = /* @__PURE__ */ m('<div data-floe-dialog-footer class="flex shrink-0 items-center justify-end gap-[var(--floe-gap-control)] px-[var(--floe-pad-group)] py-[var(--floe-pad-control)] border-t border-[var(--floe-line)]">'), Re = /* @__PURE__ */ m("<div><div></div><div><div data-floe-surface=floating><div data-floe-dialog-body>"), De = /* @__PURE__ */ m("<h2 class=sr-only>");
16
+ const Pe = {
16
17
  display: "none"
17
18
  };
18
- function Pe(e) {
19
+ function Te(e) {
19
20
  if (typeof queueMicrotask == "function") {
20
21
  queueMicrotask(e);
21
22
  return;
@@ -25,59 +26,64 @@ function Pe(e) {
25
26
  function Z(e) {
26
27
  return `${e.left}|${e.top}|${e.right}|${e.bottom}|${e.width}|${e.height}`;
27
28
  }
28
- function Te(e) {
29
+ function Be(e) {
29
30
  return typeof window < "u" && typeof window.requestAnimationFrame == "function" ? window.requestAnimationFrame(e) : window.setTimeout(() => e(Date.now()), 16);
30
31
  }
31
- function Be(e) {
32
+ function Fe(e) {
32
33
  if (typeof window < "u" && typeof window.cancelAnimationFrame == "function") {
33
34
  window.cancelAnimationFrame(e);
34
35
  return;
35
36
  }
36
37
  window.clearTimeout(e);
37
38
  }
38
- function Fe(e) {
39
- const x = be(), [n, W] = T();
40
- le(() => M(pe(window, W)));
41
- const s = ie(), B = () => `dialog-${s}-title`, H = () => `dialog-${s}-description`;
42
- let S;
43
- const [O, Y] = T(null), [L, X] = T(0), [J, Q] = T(0), $ = () => e.presentation === "side-drawer", h = () => e.presentation === "bottom-drawer", f = we({
44
- open: () => e.open && !!O() && L() > 0,
45
- element: () => S
46
- }), A = () => f.mounted() && !!O() && L() > 0;
47
- K(() => e.onPresenceChange?.(A())), M(() => e.onPresenceChange?.(!1));
39
+ function Ie(e) {
40
+ const $ = pe(), [n, W] = T();
41
+ le(() => B(xe(window, W)));
42
+ const f = ie(), F = () => `dialog-${f}-title`, L = () => `dialog-${f}-description`;
43
+ let A;
44
+ const [O, Y] = T(null), [N, X] = T(0), [J, Q] = T(0), C = () => e.presentation === "side-drawer", h = () => e.presentation === "bottom-drawer", i = be({
45
+ open: () => e.open && !!O() && N() > 0,
46
+ element: () => A
47
+ }), v = () => i.mounted() && !!O() && N() > 0;
48
+ j(() => {
49
+ const t = A, l = i.state();
50
+ !t || l !== "open" || !v() || B(we(t, {
51
+ isSettled: () => i.state() === "open"
52
+ }));
53
+ }), j(() => e.onPresenceChange?.(v())), B(() => e.onPresenceChange?.(!1));
48
54
  const ee = (t) => {
49
- Y(t), Pe(() => {
50
- V(O) === t && X((d) => d + 1);
55
+ Y(t), Te(() => {
56
+ V(O) === t && X((l) => l + 1);
51
57
  });
52
- }, R = U(() => A() ? ce({
58
+ }, R = U(() => v() ? ce({
53
59
  owner: O()
54
60
  }) : {
55
61
  host: null,
56
62
  boundaryHost: null,
57
63
  mountHost: null,
58
64
  mode: "global"
59
- }), C = () => `dialog-boundary-${s}`, a = () => x.mode() === "auto" && z(R()), te = () => a() ? ve(R()) : void 0, N = () => e.globalZIndex ?? x.globalZIndex(), F = (t) => me($e(t, void 0, V(n)?.safeArea) ?? he(t), t), oe = () => F(R()), D = U(() => (J(), n(), oe())), re = (t) => typeof Element < "u" && t instanceof Element ? !!t.closest(`[${k}="${C()}"]`) : typeof Node < "u" && t instanceof Node ? !!t.parentElement?.closest(`[${k}="${C()}"]`) : !1;
60
- return K(() => {
65
+ }), _ = () => `dialog-boundary-${f}`, a = () => $.mode() === "auto" && z(R()), te = () => a() ? ve(R()) : void 0, G = () => e.globalZIndex ?? $.globalZIndex(), I = (t) => me(Ae(t, void 0, V(n)?.safeArea) ?? he(t), t), oe = () => I(R()), D = U(() => (J(), n(), oe())), re = (t) => typeof Element < "u" && t instanceof Element ? !!t.closest(`[${S}="${_()}"]`) : typeof Node < "u" && t instanceof Node ? !!t.parentElement?.closest(`[${S}="${_()}"]`) : !1;
66
+ return j(() => {
61
67
  const t = R();
62
- if (!A() || !a() || typeof window > "u")
68
+ if (!v() || !a() || typeof window > "u")
63
69
  return;
64
- let d = !1, v = null, l = Z(F(t));
65
- const y = () => {
66
- if (d || !z(t))
70
+ let l = !1, y = null, d = Z(I(t));
71
+ const b = () => {
72
+ if (l || !z(t))
67
73
  return;
68
- const o = Z(F(t));
69
- o !== l && (l = o, Q((w) => w + 1));
70
- }, _ = () => {
71
- d || (v = Te(() => {
72
- y(), _();
74
+ const o = Z(I(t));
75
+ o !== d && (d = o, Q((w) => w + 1));
76
+ }, k = () => {
77
+ l || (y = Be(() => {
78
+ b(), k();
73
79
  }));
74
80
  };
75
- _(), M(() => {
76
- d = !0, v !== null && Be(v);
81
+ k(), B(() => {
82
+ l = !0, y !== null && Fe(y);
77
83
  });
78
- }), se({
79
- open: A,
80
- root: () => S,
84
+ }), fe({
85
+ open: v,
86
+ root: () => A,
81
87
  containsTarget: re,
82
88
  onClose: () => e.onOpenChange(!1),
83
89
  lockBodyScroll: () => !a(),
@@ -90,11 +96,11 @@ function Fe(e) {
90
96
  blockTouchMove: () => a() ? "none" : "outside",
91
97
  restoreFocus: !0
92
98
  }), [(() => {
93
- var t = Ae();
94
- return G(ee, t), c(t, "data-floe-dialog-owner-anchor", s), ne(t, De), t;
99
+ var t = Ce();
100
+ return q(ee, t), c(t, "data-floe-dialog-owner-anchor", f), ne(t, Pe), t;
95
101
  })(), r(u, {
96
102
  get when() {
97
- return A();
103
+ return v();
98
104
  },
99
105
  get children() {
100
106
  return r(ae, {
@@ -102,8 +108,8 @@ function Fe(e) {
102
108
  return te();
103
109
  },
104
110
  get children() {
105
- var t = Oe(), d = t.firstChild, v = d.nextSibling, l = v.firstChild, y = l.firstChild;
106
- c(t, "data-floe-dialog-overlay-root", s), I(t, E({
111
+ var t = Re(), l = t.firstChild, y = l.nextSibling, d = y.firstChild, b = d.firstChild;
112
+ c(t, "data-floe-dialog-overlay-root", f), E(t, M({
107
113
  get "data-floe-dialog-mode"() {
108
114
  return a() ? "surface" : "global";
109
115
  },
@@ -111,28 +117,28 @@ function Fe(e) {
111
117
  return e.presentation ?? "dialog";
112
118
  },
113
119
  get "data-floating-presence"() {
114
- return f.state();
120
+ return i.state();
115
121
  },
116
122
  get "aria-hidden"() {
117
- return f.exiting() ? "true" : void 0;
123
+ return i.exiting() ? "true" : void 0;
118
124
  }
119
125
  }, {
120
126
  [ye]: "true"
121
127
  }, () => ({
122
128
  [ue]: "true",
123
- [k]: C()
129
+ [S]: _()
124
130
  }), {
125
131
  get class() {
126
- return g(a() ? g("absolute z-20 box-border", !$() && "p-3") : g("fixed box-border p-4", N() === void 0 && "z-50"), h() && "floe-bottom-drawer-overlay", $() && "floe-side-drawer-overlay", f.exiting() && !h() && "pointer-events-none");
132
+ return g(a() ? g("absolute z-20 box-border", !C() && "p-3") : g("fixed box-border p-4", G() === void 0 && "z-50"), h() && "floe-bottom-drawer-overlay", C() && "floe-side-drawer-overlay", i.exiting() && !h() && "pointer-events-none");
127
133
  },
128
134
  get style() {
129
- return p(() => !!a())() ? {
135
+ return x(() => !!a())() ? {
130
136
  left: `${D().left}px`,
131
137
  top: `${D().top}px`,
132
138
  width: `${D().width}px`,
133
139
  height: `${D().height}px`
134
140
  } : {
135
- ...n() ? xe(n()) : {
141
+ ...n() ? $e(n()) : {
136
142
  inset: "0"
137
143
  },
138
144
  "--floe-dialog-safe-top": `${(n()?.safeArea.top ?? 0) / (n()?.fixedScale ?? 1)}px`,
@@ -143,33 +149,33 @@ function Fe(e) {
143
149
  "padding-right": "max(var(--floe-dialog-gap-x, 1rem), var(--floe-dialog-safe-right))",
144
150
  "padding-bottom": "max(var(--floe-dialog-gap-y, 1rem), var(--floe-dialog-safe-bottom))",
145
151
  "padding-left": "max(var(--floe-dialog-gap-x, 1rem), var(--floe-dialog-safe-left))",
146
- "z-index": N()
152
+ "z-index": G()
147
153
  };
148
154
  }
149
- }), !1, !0), c(d, "data-floe-dialog-backdrop", s), I(d, E(() => ({
150
- [k]: C()
155
+ }), !1, !0), c(l, "data-floe-dialog-backdrop", f), E(l, M(() => ({
156
+ [S]: _()
151
157
  }), {
152
158
  get "data-floating-presence"() {
153
- return f.state();
159
+ return i.state();
154
160
  },
155
161
  get class() {
156
162
  return g("absolute inset-0 floe-floating-presence floe-floating-backdrop", e.closeOnBackdropClick === !1 ? "cursor-default" : "cursor-pointer", h() ? "floe-bottom-drawer-backdrop" : a() ? "bg-background/72 backdrop-blur-[2px]" : "bg-background/80 backdrop-blur-sm");
157
163
  },
158
164
  onClick: () => {
159
- !f.exiting() && e.closeOnBackdropClick !== !1 && e.onOpenChange(!1);
165
+ !i.exiting() && e.closeOnBackdropClick !== !1 && e.onOpenChange(!1);
160
166
  }
161
167
  }), !1, !1);
162
- var _ = S;
163
- return typeof _ == "function" ? G(_, l) : S = l, c(l, "data-floe-dialog-panel", s), I(l, E({
168
+ var k = A;
169
+ return typeof k == "function" ? q(k, d) : A = d, c(d, "data-floe-dialog-panel", f), E(d, M({
164
170
  get "data-floe-drawer-side"() {
165
- return p(() => !!$())() ? e.drawerSide ?? "right" : void 0;
171
+ return x(() => !!C())() ? e.drawerSide ?? "right" : void 0;
166
172
  }
167
173
  }, () => ({
168
- [k]: C(),
174
+ [S]: _(),
169
175
  [ge]: "true"
170
176
  }), {
171
177
  get class() {
172
- return g(a() ? "flex max-h-[calc(100%-1rem)] w-[min(32rem,calc(100%-1rem))] max-w-[calc(100%-1rem)] flex-col" : "w-full max-w-md", "bg-popover text-popover-foreground rounded-panel shadow-[var(--floe-elevation-float-strong)]", "border border-[var(--floe-line)]", "floe-floating-presence", h() ? "floe-bottom-drawer-panel" : $() ? "floe-side-drawer-panel" : "floe-floating-dialog-panel", "pointer-events-auto flex flex-col", e.class);
178
+ return g(a() ? "flex max-h-[calc(100%-1rem)] w-[min(32rem,calc(100%-1rem))] max-w-[calc(100%-1rem)] flex-col" : "w-full max-w-md", "bg-popover text-popover-foreground rounded-panel shadow-[var(--floe-elevation-float-strong)]", "border border-[var(--floe-line)]", "floe-floating-presence", h() ? "floe-bottom-drawer-panel" : C() ? "floe-side-drawer-panel" : "floe-floating-dialog-panel", "pointer-events-auto flex flex-col", e.class);
173
179
  },
174
180
  style: {
175
181
  "max-height": "100%",
@@ -177,24 +183,24 @@ function Fe(e) {
177
183
  "min-width": "0"
178
184
  },
179
185
  get "data-floating-presence"() {
180
- return f.state();
186
+ return i.state();
181
187
  },
182
188
  get inert() {
183
- return p(() => !!h())() && f.exiting();
189
+ return x(() => !!h())() && i.exiting();
184
190
  },
185
191
  role: "dialog",
186
192
  get "aria-modal"() {
187
193
  return a() ? void 0 : "true";
188
194
  },
189
195
  get "aria-labelledby"() {
190
- return p(() => !!e.title)() ? B() : void 0;
196
+ return x(() => !!e.title)() ? F() : void 0;
191
197
  },
192
198
  get "aria-describedby"() {
193
- return p(() => !!e.bodyDescription)() ? H() : void 0;
199
+ return x(() => !!e.bodyDescription)() ? L() : void 0;
194
200
  },
195
201
  onKeyDown: (o) => e.onKeyDown?.(o),
196
202
  tabIndex: -1
197
- }), !1, !0), i(l, r(u, {
203
+ }), !1, !0), s(d, r(u, {
198
204
  get when() {
199
205
  return e.header === void 0;
200
206
  },
@@ -204,10 +210,10 @@ function Fe(e) {
204
210
  return e.title;
205
211
  },
206
212
  get children() {
207
- var o = Re();
208
- return i(o, () => e.title), P(() => c(o, "id", B())), o;
213
+ var o = De();
214
+ return s(o, () => e.title), P(() => c(o, "id", F())), o;
209
215
  }
210
- }), p(() => e.header)];
216
+ }), x(() => e.header)];
211
217
  },
212
218
  get children() {
213
219
  return r(u, {
@@ -215,16 +221,16 @@ function Fe(e) {
215
221
  return e.title;
216
222
  },
217
223
  get children() {
218
- var o = _e(), w = o.firstChild;
219
- return i(w, r(u, {
224
+ var o = ke(), w = o.firstChild;
225
+ return s(w, r(u, {
220
226
  get when() {
221
227
  return e.title;
222
228
  },
223
229
  get children() {
224
- var b = Ce();
225
- return i(b, () => e.title), P(() => c(b, "id", B())), b;
230
+ var p = _e();
231
+ return s(p, () => e.title), P(() => c(p, "id", F())), p;
226
232
  }
227
- })), i(o, r(j, {
233
+ })), s(o, r(H, {
228
234
  variant: "ghost-destructive",
229
235
  size: "icon",
230
236
  class: "-my-2 -mr-2 h-[46px] w-[46px] shrink-0 sm:my-0 sm:-mr-1 sm:h-6 sm:w-6",
@@ -241,25 +247,25 @@ function Fe(e) {
241
247
  }
242
248
  });
243
249
  }
244
- }), y), i(y, r(u, {
250
+ }), b), s(b, r(u, {
245
251
  get when() {
246
252
  return e.bodyDescription;
247
253
  },
248
254
  get children() {
249
- var o = ke();
250
- return i(o, () => e.bodyDescription), P(() => c(o, "id", H())), o;
255
+ var o = Se();
256
+ return s(o, () => e.bodyDescription), P(() => c(o, "id", L())), o;
251
257
  }
252
- }), null), i(y, () => e.children, null), i(l, r(u, {
258
+ }), null), s(b, () => e.children, null), s(d, r(u, {
253
259
  get when() {
254
260
  return e.footer;
255
261
  },
256
262
  get children() {
257
- var o = Se();
258
- return i(o, () => e.footer), o;
263
+ var o = Oe();
264
+ return s(o, () => e.footer), o;
259
265
  }
260
266
  }), null), P((o) => {
261
- var w = g("pointer-events-none relative z-[1] flex h-full w-full", $() ? e.drawerSide === "left" ? "items-stretch justify-start" : "items-stretch justify-end" : h() ? "items-end justify-center" : "items-center justify-center"), b = g("min-h-0 flex-1 overflow-auto overscroll-contain px-[var(--floe-pad-group)] py-[var(--floe-pad-group)]", e.contentClass);
262
- return w !== o.e && q(v, o.e = w), b !== o.t && q(y, o.t = b), o;
267
+ var w = g("pointer-events-none relative z-[1] flex h-full w-full", C() ? e.drawerSide === "left" ? "items-stretch justify-start" : "items-stretch justify-end" : h() ? "items-end justify-center" : "items-center justify-center"), p = g("min-h-0 flex-1 overflow-auto overscroll-contain px-[var(--floe-pad-group)] py-[var(--floe-pad-group)]", e.contentClass);
268
+ return w !== o.e && K(y, o.e = w), p !== o.t && K(b, o.t = p), o;
263
269
  }, {
264
270
  e: void 0,
265
271
  t: void 0
@@ -269,9 +275,9 @@ function Fe(e) {
269
275
  }
270
276
  })];
271
277
  }
272
- function We(e) {
273
- const x = fe();
274
- return r(Fe, {
278
+ function Xe(e) {
279
+ const $ = se();
280
+ return r(Ie, {
275
281
  get open() {
276
282
  return e.open;
277
283
  },
@@ -288,16 +294,16 @@ function We(e) {
288
294
  return e.globalZIndex;
289
295
  },
290
296
  get footer() {
291
- return [r(j, {
297
+ return [r(H, {
292
298
  variant: "ghost",
293
299
  onClick: () => e.onOpenChange(!1),
294
300
  get disabled() {
295
301
  return e.loading;
296
302
  },
297
303
  get children() {
298
- return e.cancelText ?? x.config.strings.confirmDialog.cancel;
304
+ return e.cancelText ?? $.config.strings.confirmDialog.cancel;
299
305
  }
300
- }), r(j, {
306
+ }), r(H, {
301
307
  get variant() {
302
308
  return e.variant === "destructive" ? "destructive" : "primary";
303
309
  },
@@ -308,7 +314,7 @@ function We(e) {
308
314
  return e.loading;
309
315
  },
310
316
  get children() {
311
- return e.confirmText ?? x.config.strings.confirmDialog.confirm;
317
+ return e.confirmText ?? $.config.strings.confirmDialog.confirm;
312
318
  }
313
319
  })];
314
320
  },
@@ -318,6 +324,6 @@ function We(e) {
318
324
  });
319
325
  }
320
326
  export {
321
- We as ConfirmDialog,
322
- Fe as Dialog
327
+ Xe as ConfirmDialog,
328
+ Ie as Dialog
323
329
  };
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Animate the panel from its previous height to whatever its content now needs.
3
+ * Returns a disposer. A panel that is entering, exiting, suspended, or hidden
4
+ * is left alone: its own opening motion already owns the box, and animating a
5
+ * height nobody can see only queues late frames.
6
+ */
7
+ export declare function observeDialogHeight(element: HTMLElement, options?: {
8
+ isSettled?: () => boolean;
9
+ }): () => void;
@@ -0,0 +1,49 @@
1
+ function g() {
2
+ const e = globalThis.matchMedia;
3
+ return typeof e != "function" ? !1 : e.call(globalThis, "(prefers-reduced-motion: reduce)").matches;
4
+ }
5
+ function p(e, l = {}) {
6
+ const u = globalThis.ResizeObserver;
7
+ if (typeof u != "function") return () => {
8
+ };
9
+ const f = () => e.offsetHeight, d = () => typeof e.getAnimations == "function" && e.getAnimations().some((t) => t !== n && t.playState === "running");
10
+ let a = f(), n = null, c = !1, i = null;
11
+ const b = () => {
12
+ n = null, e.style.willChange = "", !c && i && i.observe(e, { box: "border-box" });
13
+ }, h = (t) => {
14
+ const r = a;
15
+ if (a = t, !Number.isFinite(r) || Math.abs(r - t) < 0.5 || g()) return;
16
+ i?.unobserve(e);
17
+ const o = e.animate(
18
+ [{ height: `${r}px` }, { height: `${t}px` }],
19
+ {
20
+ duration: 220,
21
+ easing: "cubic-bezier(0.22, 1, 0.36, 1)",
22
+ fill: "none"
23
+ }
24
+ );
25
+ n = o, e.style.willChange = "height", o.addEventListener("finish", () => {
26
+ if (c) return;
27
+ b();
28
+ const s = f();
29
+ Math.abs(s - a) >= 0.5 && h(s);
30
+ }), o.oncancel = () => {
31
+ c || b();
32
+ };
33
+ };
34
+ return i = new u((t) => {
35
+ const r = t[t.length - 1];
36
+ if (!r || n) return;
37
+ const o = Array.isArray(r.borderBoxSize) ? r.borderBoxSize[0] : r.borderBoxSize, s = o ? o.blockSize : r.contentRect.height;
38
+ if (l.isSettled && !l.isSettled() || d()) {
39
+ a = s;
40
+ return;
41
+ }
42
+ h(s);
43
+ }), i.observe(e, { box: "border-box" }), () => {
44
+ c = !0, i.disconnect(), n?.cancel(), n = null, e.style.willChange = "";
45
+ };
46
+ }
47
+ export {
48
+ p as observeDialogHeight
49
+ };
@@ -11,6 +11,7 @@ export { FloatingWindow, type FloatingWindowProps } from './FloatingWindow';
11
11
  export { SurfaceFloatingPanel, type SurfaceFloatingPanelProps, type SurfaceFloatingPanelHandleProps, } from './SurfaceFloatingPanel';
12
12
  export type { SurfaceFloatingPanelBoundaryInsets, SurfaceFloatingPanelPosition, } from './surfaceFloatingPanelGeometry';
13
13
  export { createFloatingPresence, type FloatingPresence, type FloatingPresenceOptions, type FloatingPresenceState, } from './floatingPresence';
14
+ export { observeDialogHeight } from './dialogHeightMotion';
14
15
  export { MENU_ITEM_SELECTOR, focusMenuItem, getMenuItems, handleMenuKeyboardNavigation, moveMenuFocus, type MenuDismissReason, type MenuFocusMode, type MenuItemNavigationOptions, type MenuKeyboardNavigationOptions, } from './menuUtils';
15
16
  export { resolveFloatingWindowViewport, type FloatingWindowRect, type FloatingWindowViewport, type FloatingWindowViewportInsets, } from './floatingWindowGeometry';
16
17
  export { Dropdown, Select, type DropdownProps, type DropdownItem, type SelectProps, } from './Dropdown';
package/dist/full.js CHANGED
@@ -1,11 +1,11 @@
1
1
  import { FloeProvider as r } from "./app/FloeProvider.js";
2
2
  import { applyShellThemeAttribute as i, applySurfaceStyleAttribute as n, applyTheme as a, builtInThemes as l, getSystemTheme as c, isFloeSurfaceStyle as m, isThemeType as s, mergeThemeTokenMaps as p, resolveThemeTokenOverrides as f, resolveThemeTokens as d, syncThemeTokenOverrides as x } from "./styles/themes/index.js";
3
3
  import { floeColorTokenCategories as T, floeDesignTokens as I, floeFontFamilyTokens as u, floeMotionTokens as g, floeRadiusTokens as C, floeSharedCssVariables as h, floeSpacingTokens as k, floeSurfaceTokens as F, floeThemeColorVariables as E, floeTypographyTokens as P, getFloeColorTokenValue as R } from "./styles/tokens.js";
4
- import { Activity as L, ActivityIcon as y, AlertCircle as D, AlertTriangle as _, ArchiveIcon as v, ArrowDown as M, ArrowLeft as B, ArrowRight as O, ArrowRightLeft as W, ArrowUp as b, AtSign as w, AwardIcon as N, BarChart as H, BatteryIcon as U, Bell as G, BellIcon as V, Bookmark as K, BookmarkIcon as z, Bot as X, BotIcon as Z, BugIcon as Q, Calendar as Y, CalendarIcon as q, Camera as j, CameraIcon as J, ChartIcon as $, Check as ee, CheckCircle as oe, CheckIcon as re, ChevronDown as te, ChevronLeft as ie, ChevronRight as ne, ChevronUp as ae, ChevronsUpDown as le, CircleStop as ce, Clock as me, ClockIcon as se, CloseIcon as pe, Cloud as fe, CloudIcon as de, Code as xe, CodeIcon as Se, CompassIcon as Te, Copy as Ie, CopyCheck as ue, CopyCheckIcon as ge, CopyIcon as Ce, Cpu as he, CreditCardIcon as ke, Database as Fe, DatabaseIcon as Ee, DollarIcon as Pe, Download as Re, DownloadIcon as Ae, EditIcon as Le, ErrorIcon as ye, ExternalLink as De, Eye as _e, EyeIcon as ve, EyeOff as Me, FileCode as Be, FilePlus as Oe, FilePlusIcon as We, FileText as be, Files as we, Filter as Ne, FilterIcon as He, FireIcon as Ue, Folder as Ge, FolderOpen as Ve, FolderPlus as Ke, FolderPlusIcon as ze, GiftIcon as Xe, GitBranch as Ze, GitBranchIcon as Qe, Globe as Ye, GlobeIcon as qe, Grid as je, Grid3x3 as Je, GripVertical as $e, Hash as eo, HeadphonesIcon as oo, Heart as ro, HeartIcon as to, HelpIcon as io, Highlighter as no, History as ao, Home as lo, HomeIcon as co, Image as mo, ImageIcon as so, Info as po, InfoIcon as fo, Key as xo, KeyIcon as So, Layers as To, LayersIcon as Io, LayoutDashboard as uo, Link as go, LinkIcon as Co, Loader2 as ho, LoadingIcon as ko, Lock as Fo, LockIcon as Eo, MagicIcon as Po, Mail as Ro, MailIcon as Ao, MapPinIcon as Lo, Maximize as yo, Menu as Do, MessageIcon as _o, MessageSquare as vo, Mic as Mo, MicIcon as Bo, MicOff as Oo, Minus as Wo, MinusIcon as bo, MonitorPointer as wo, Moon as No, MoonIcon as Ho, MoreHorizontal as Uo, MoreVertical as Go, MuteIcon as Vo, Package as Ko, PackageIcon as zo, Paperclip as Xo, Paste as Zo, PasteIcon as Qo, Pause as Yo, PauseIcon as qo, Pencil as jo, Phone as Jo, PieChart as $o, Pin as er, PinIcon as or, Play as rr, PlayIcon as tr, Plus as ir, PlusIcon as nr, PowerIcon as ar, PrinterIcon as lr, Quote as cr, Refresh as mr, RefreshIcon as sr, Region as pr, Restore as fr, RocketIcon as dr, Save as xr, SaveIcon as Sr, Search as Tr, SearchIcon as Ir, Send as ur, SendIcon as gr, Settings as Cr, SettingsIcon as hr, ShareIcon as kr, Shield as Fr, ShieldCheck as Er, ShieldIcon as Pr, SparkleIcon as Rr, Sparkles as Ar, Star as Lr, StarIcon as yr, Stop as Dr, StopFilled as _r, SuccessIcon as vr, Sun as Mr, SunIcon as Br, TagIcon as Or, TargetIcon as Wr, Terminal as br, TerminalIcon as wr, TextTool as Nr, ThumbsDownIcon as Hr, ThumbsUpIcon as Ur, Timer as Gr, Trash as Vr, TrashIcon as Kr, TrendingDown as zr, TrendingUp as Xr, Unlock as Zr, Upload as Qr, UploadIcon as Yr, User as qr, UserIcon as jr, Video as Jr, VideoIcon as $r, Volume as et, VolumeIcon as ot, VolumeOff as rt, Wand as tt, WarningIcon as it, WifiIcon as nt, WifiOffIcon as at, Workflow as lt, X as ct, XCircle as mt, Zap as st, ZapIcon as pt } from "./components/icons/index.js";
4
+ import { Activity as L, ActivityIcon as y, AlertCircle as D, AlertTriangle as v, ArchiveIcon as _, ArrowDown as M, ArrowLeft as B, ArrowRight as O, ArrowRightLeft as W, ArrowUp as b, AtSign as w, AwardIcon as N, BarChart as H, BatteryIcon as U, Bell as G, BellIcon as V, Bookmark as K, BookmarkIcon as z, Bot as X, BotIcon as Z, BugIcon as Q, Calendar as Y, CalendarIcon as q, Camera as j, CameraIcon as J, ChartIcon as $, Check as ee, CheckCircle as oe, CheckIcon as re, ChevronDown as te, ChevronLeft as ie, ChevronRight as ne, ChevronUp as ae, ChevronsUpDown as le, CircleStop as ce, Clock as me, ClockIcon as se, CloseIcon as pe, Cloud as fe, CloudIcon as de, Code as xe, CodeIcon as Se, CompassIcon as Te, Copy as Ie, CopyCheck as ue, CopyCheckIcon as ge, CopyIcon as Ce, Cpu as he, CreditCardIcon as ke, Database as Fe, DatabaseIcon as Ee, DollarIcon as Pe, Download as Re, DownloadIcon as Ae, EditIcon as Le, ErrorIcon as ye, ExternalLink as De, Eye as ve, EyeIcon as _e, EyeOff as Me, FileCode as Be, FilePlus as Oe, FilePlusIcon as We, FileText as be, Files as we, Filter as Ne, FilterIcon as He, FireIcon as Ue, Folder as Ge, FolderOpen as Ve, FolderPlus as Ke, FolderPlusIcon as ze, GiftIcon as Xe, GitBranch as Ze, GitBranchIcon as Qe, Globe as Ye, GlobeIcon as qe, Grid as je, Grid3x3 as Je, GripVertical as $e, Hash as eo, HeadphonesIcon as oo, Heart as ro, HeartIcon as to, HelpIcon as io, Highlighter as no, History as ao, Home as lo, HomeIcon as co, Image as mo, ImageIcon as so, Info as po, InfoIcon as fo, Key as xo, KeyIcon as So, Layers as To, LayersIcon as Io, LayoutDashboard as uo, Link as go, LinkIcon as Co, Loader2 as ho, LoadingIcon as ko, Lock as Fo, LockIcon as Eo, MagicIcon as Po, Mail as Ro, MailIcon as Ao, MapPinIcon as Lo, Maximize as yo, Menu as Do, MessageIcon as vo, MessageSquare as _o, Mic as Mo, MicIcon as Bo, MicOff as Oo, Minus as Wo, MinusIcon as bo, MonitorPointer as wo, Moon as No, MoonIcon as Ho, MoreHorizontal as Uo, MoreVertical as Go, MuteIcon as Vo, Package as Ko, PackageIcon as zo, Paperclip as Xo, Paste as Zo, PasteIcon as Qo, Pause as Yo, PauseIcon as qo, Pencil as jo, Phone as Jo, PieChart as $o, Pin as er, PinIcon as or, Play as rr, PlayIcon as tr, Plus as ir, PlusIcon as nr, PowerIcon as ar, PrinterIcon as lr, Quote as cr, Refresh as mr, RefreshIcon as sr, Region as pr, Restore as fr, RocketIcon as dr, Save as xr, SaveIcon as Sr, Search as Tr, SearchIcon as Ir, Send as ur, SendIcon as gr, Settings as Cr, SettingsIcon as hr, ShareIcon as kr, Shield as Fr, ShieldCheck as Er, ShieldIcon as Pr, SparkleIcon as Rr, Sparkles as Ar, Star as Lr, StarIcon as yr, Stop as Dr, StopFilled as vr, SuccessIcon as _r, Sun as Mr, SunIcon as Br, TagIcon as Or, TargetIcon as Wr, Terminal as br, TerminalIcon as wr, TextTool as Nr, ThumbsDownIcon as Hr, ThumbsUpIcon as Ur, Timer as Gr, Trash as Vr, TrashIcon as Kr, TrendingDown as zr, TrendingUp as Xr, Unlock as Zr, Upload as Qr, UploadIcon as Yr, User as qr, UserIcon as jr, Video as Jr, VideoIcon as $r, Volume as et, VolumeIcon as ot, VolumeOff as rt, Wand as tt, WarningIcon as it, WifiIcon as nt, WifiOffIcon as at, Workflow as lt, X as ct, XCircle as mt, Zap as st, ZapIcon as pt } from "./components/icons/index.js";
5
5
  import { DEFAULT_TERMINAL_WORKSPACE_PROFILE as dt, normalizeTerminalWorkspaceProfile as xt } from "./terminal/workspaceProfile.js";
6
6
  import { clampTerminalCursor as Tt, createTerminalEditorState as It, deleteTerminalTextBackward as ut, insertTerminalText as gt, moveTerminalCursor as Ct, navigateTerminalHistory as ht } from "./terminal/editorModel.js";
7
7
  import { applyTerminalSessionSuggestion as Ft, createTerminalSessionState as Et, dispatchTerminalSessionKey as Pt, getTerminalPromptPreview as Rt, getTerminalSessionSuggestions as At, setTerminalSessionInputValue as Lt, submitTerminalSession as yt } from "./terminal/sessionModel.js";
8
- import { runTerminalMockCommand as _t } from "./terminal/mockRuntime.js";
8
+ import { runTerminalMockCommand as vt } from "./terminal/mockRuntime.js";
9
9
  import { DEFAULT_TERMINAL_SUGGESTION_PROVIDERS as Mt, applyTerminalSuggestion as Bt, autocompleteTerminalInput as Ot, createTerminalFullLineSuggestion as Wt, createTerminalTokenSuggestion as bt, getTerminalSuggestions as wt, matchesTerminalSuggestionPrefix as Nt, parseTerminalSuggestionContext as Ht, terminalCommandTokenSuggestionProvider as Ut, terminalHistorySuggestionProvider as Gt, terminalPathSuggestionProvider as Vt, terminalRootSuggestionProvider as Kt, terminalSnippetSuggestionProvider as zt } from "./terminal/suggestionEngine.js";
10
10
  import { ActivityAppsMain as Zt } from "./app/ActivityAppsMain.js";
11
11
  import { ActivityBar as Yt } from "./components/layout/ActivityBar.js";
@@ -13,7 +13,7 @@ import { ActivityRailIcons as jt, RailChat as Jt, RailDesignTokens as $t, RailFi
13
13
  import { ActualSize as li, Clipboard as ci, ExitFullscreen as mi, Fullscreen as si, Keyboard as pi, Monitor as fi, Scan as di, SlidersHorizontal as xi, Unplug as Si } from "./components/icons/RemoteControlIcons.js";
14
14
  import { AffixInput as Ii, Input as ui, NumberInput as gi, Textarea as Ci } from "./components/ui/Input.js";
15
15
  import { AppViewport as ki } from "./components/layout/AppViewport.js";
16
- import { ArchiveFileIcon as Ei, AudioFileIcon as Pi, BrokenSymlinkIcon as Ri, CodeFileIcon as Ai, ConfigFileIcon as Li, DocumentFileIcon as yi, FileIcon as Di, FileItemIcon as _i, FolderIcon as vi, FolderOpenIcon as Mi, ImageFileIcon as Bi, JavaScriptFileIcon as Oi, ShellScriptFileIcon as Wi, StyleFileIcon as bi, SymlinkFileIcon as wi, SymlinkFolderIcon as Ni, SymlinkFolderOpenIcon as Hi, TypeScriptFileIcon as Ui, VideoFileIcon as Gi, getFileIcon as Vi, resolveFileItemIcon as Ki } from "./components/file-browser/FileIcons.js";
16
+ import { ArchiveFileIcon as Ei, AudioFileIcon as Pi, BrokenSymlinkIcon as Ri, CodeFileIcon as Ai, ConfigFileIcon as Li, DocumentFileIcon as yi, FileIcon as Di, FileItemIcon as vi, FolderIcon as _i, FolderOpenIcon as Mi, ImageFileIcon as Bi, JavaScriptFileIcon as Oi, ShellScriptFileIcon as Wi, StyleFileIcon as bi, SymlinkFileIcon as wi, SymlinkFolderIcon as Ni, SymlinkFolderOpenIcon as Hi, TypeScriptFileIcon as Ui, VideoFileIcon as Gi, getFileIcon as Vi, resolveFileItemIcon as Ki } from "./components/file-browser/FileIcons.js";
17
17
  import { AreaChart as Xi, DataBarChart as Zi, DataPieChart as Qi, LineChart as Yi, MonitoringChart as qi } from "./components/ui/Charts.js";
18
18
  import { AttachmentPreview as Ji } from "./components/chat/input/AttachmentPreview.js";
19
19
  import { BUILT_IN_SHELL_THEME_DEFAULTS as en, REQUIRED_SHELL_THEME_TOKENS as on, assertUniqueThemePresetNames as rn, builtInShellThemePresets as tn, createShellThemePreset as nn, getShellThemePresetsForMode as an, normalizeShellThemeSelection as ln, presetSupportsMode as cn, resolveShellThemePresetName as mn } from "./styles/themes/presets.js";
@@ -21,7 +21,7 @@ import { BlockRenderer as pn } from "./components/chat/blocks/BlockRenderer.js";
21
21
  import { BottomBarCompanion as dn } from "./components/layout/BottomBarCompanion.js";
22
22
  import { Breadcrumb as Sn } from "./components/file-browser/Breadcrumb.js";
23
23
  import { Button as In } from "./components/ui/Button.js";
24
- import { CANVAS_WHEEL_INTERACTIVE_ATTR as gn, DEFAULT_CANVAS_WHEEL_INTERACTIVE_SELECTOR as Cn, DEFAULT_LOCAL_INTERACTION_SURFACE_SELECTOR as hn, DEFAULT_WORKBENCH_TEXT_SELECTION_SURFACE_SELECTOR as kn, DEFAULT_WORKBENCH_WIDGET_ACTIVATION_SURFACE_SELECTOR as Fn, DEFAULT_WORKBENCH_WIDGET_SHELL_SELECTOR as En, LOCAL_INTERACTION_SURFACE_ATTR as Pn, WORKBENCH_TEXT_SELECTION_SURFACE_ATTR as Rn, WORKBENCH_WIDGET_ACTIVATION_SURFACE_ATTR as An, WORKBENCH_WIDGET_SHELL_ATTR as Ln, isLocalInteractionSurfaceTarget as yn, resolveSurfaceInteractionTargetRole as Dn, resolveSurfaceWheelRouting as _n, resolveWorkbenchWidgetEventOwnership as vn, resolveWorkbenchWidgetLocalTypingTarget as Mn, resolveWorkbenchWidgetTextSelectionTarget as Bn, shouldActivateWorkbenchWidgetLocalTarget as On } from "./components/ui/localInteractionSurface.js";
24
+ import { CANVAS_WHEEL_INTERACTIVE_ATTR as gn, DEFAULT_CANVAS_WHEEL_INTERACTIVE_SELECTOR as Cn, DEFAULT_LOCAL_INTERACTION_SURFACE_SELECTOR as hn, DEFAULT_WORKBENCH_TEXT_SELECTION_SURFACE_SELECTOR as kn, DEFAULT_WORKBENCH_WIDGET_ACTIVATION_SURFACE_SELECTOR as Fn, DEFAULT_WORKBENCH_WIDGET_SHELL_SELECTOR as En, LOCAL_INTERACTION_SURFACE_ATTR as Pn, WORKBENCH_TEXT_SELECTION_SURFACE_ATTR as Rn, WORKBENCH_WIDGET_ACTIVATION_SURFACE_ATTR as An, WORKBENCH_WIDGET_SHELL_ATTR as Ln, isLocalInteractionSurfaceTarget as yn, resolveSurfaceInteractionTargetRole as Dn, resolveSurfaceWheelRouting as vn, resolveWorkbenchWidgetEventOwnership as _n, resolveWorkbenchWidgetLocalTypingTarget as Mn, resolveWorkbenchWidgetTextSelectionTarget as Bn, shouldActivateWorkbenchWidgetLocalTarget as On } from "./components/ui/localInteractionSurface.js";
25
25
  import { Card as bn, CardContent as wn, CardDescription as Nn, CardFooter as Hn, CardHeader as Un, CardTitle as Gn } from "./components/ui/Card.js";
26
26
  import { ChatContainer as Kn } from "./components/chat/ChatContainer.js";
27
27
  import { ChatInput as Xn } from "./components/chat/input/ChatInput.js";
@@ -36,7 +36,7 @@ import { CommandProvider as xa, createCommandService as Sa, useCommand as Ta } f
36
36
  import { ComponentRegistryProvider as ua, createComponentRegistry as ga, hasComponentRegistryContext as Ca, useComponentContextFactory as ha, useComponentRegistry as ka, useOptionalComponentRegistry as Fa } from "./context/ComponentRegistry.js";
37
37
  import { ConfirmDialog as Pa, Dialog as Ra } from "./components/ui/Dialog.js";
38
38
  import { ConnectionStatus as La } from "./components/chat/status/ConnectionStatus.js";
39
- import { DECK_GRID_CONFIG as Da, getGridConfigFromElement as _a } from "./components/deck/deckGridMetrics.js";
39
+ import { DECK_GRID_CONFIG as Da, getGridConfigFromElement as va } from "./components/deck/deckGridMetrics.js";
40
40
  import { DEFAULT_FLOE_CONFIG as Ma, FloeConfigProvider as Ba, useFloeConfig as Oa, useResolvedFloeConfig as Wa } from "./context/FloeConfigContext.js";
41
41
  import { DEFAULT_VIRTUAL_LIST_CONFIG as wa } from "./components/chat/types.js";
42
42
  import { DIALOG_SURFACE_BOUNDARY_ATTR as Ha, DIALOG_SURFACE_HOST_ATTR as Ua, SURFACE_PORTAL_HOST_ATTR as Ga, SURFACE_PORTAL_LAYER_ATTR as Va, __resetSurfacePortalScopeForTests as Ka, ensureSurfacePortalInteractionTracking as za, isSurfacePortalMode as Xa, projectSurfacePortalPosition as Za, projectSurfacePortalRect as Qa, resolveSurfacePortalBoundaryRect as Ya, resolveSurfacePortalHost as qa, resolveSurfacePortalMount as ja, resolveSurfacePortalMountRect as Ja } from "./components/ui/dialogSurfaceScope.js";
@@ -52,7 +52,7 @@ import { DirectoryPicker as ul } from "./components/ui/DirectoryPicker.js";
52
52
  import { DirectoryTree as Cl } from "./components/file-browser/DirectoryTree.js";
53
53
  import { DisplayModePageShell as kl } from "./components/layout/DisplayModePageShell.js";
54
54
  import { DisplayModeSwitcher as El, sanitizeDisplayMode as Pl } from "./components/layout/DisplayModeSwitcher.js";
55
- import { DockActivity as Al, DockBot as Ll, DockCode as yl, DockCpu as Dl, DockFileCode as _l, DockFolder as vl, DockGlobe as Ml, DockLayers as Bl, DockLayoutDashboard as Ol, DockMessageSquare as Wl, DockRegion as bl, DockSearch as wl, DockSparkles as Nl, DockTerminal as Hl, DockText as Ul } from "./components/icons/DockIcons.js";
55
+ import { DockActivity as Al, DockBot as Ll, DockCode as yl, DockCpu as Dl, DockFileCode as vl, DockFolder as _l, DockGlobe as Ml, DockLayers as Bl, DockLayoutDashboard as Ol, DockMessageSquare as Wl, DockRegion as bl, DockSearch as wl, DockSparkles as Nl, DockTerminal as Hl, DockText as Ul } from "./components/icons/DockIcons.js";
56
56
  import { DropZonePreview as Vl } from "./components/deck/DropZonePreview.js";
57
57
  import { Dropdown as zl, Select as Xl } from "./components/ui/Dropdown.js";
58
58
  import { ErrorBlock as Ql, HighlightBlock as Yl, InfoBlock as ql, NoteBlock as jl, SuccessBlock as Jl, TipBlock as $l, WarningBlock as ec } from "./components/ui/HighlightBlock.js";
@@ -68,7 +68,7 @@ import { FileBrowserToolbar as Fc } from "./components/file-browser/FileBrowserT
68
68
  import { FileContextMenu as Pc } from "./components/file-browser/FileContextMenu.js";
69
69
  import { FileGridView as Ac } from "./components/file-browser/FileGridView.js";
70
70
  import { FileListView as yc } from "./components/file-browser/FileListView.js";
71
- import { FileOpenPicker as _c, normalizeFileOpenSelection as vc, updateFileOpenSelection as Mc } from "./components/ui/FileOpenPicker.js";
71
+ import { FileOpenPicker as vc, normalizeFileOpenSelection as _c, updateFileOpenSelection as Mc } from "./components/ui/FileOpenPicker.js";
72
72
  import { FileSavePicker as Oc } from "./components/ui/FileSavePicker.js";
73
73
  import { FilesSidebarWidget as bc, SearchSidebarWidget as wc, SettingsSidebarWidget as Nc, ShowcaseSidebarWidget as Hc, SidebarWidget as Uc } from "./widgets/SidebarWidget.js";
74
74
  import { FloatingWindow as Vc } from "./components/ui/FloatingWindow.js";
@@ -86,7 +86,7 @@ import { LaunchpadItem as hm } from "./components/launchpad/LaunchpadItem.js";
86
86
  import { LaunchpadModal as Fm } from "./components/launchpad/LaunchpadModal.js";
87
87
  import { LaunchpadPagination as Pm } from "./components/launchpad/LaunchpadPagination.js";
88
88
  import { LaunchpadSearch as Am } from "./components/launchpad/LaunchpadSearch.js";
89
- import { LayoutProvider as ym, createLayoutService as Dm, useLayout as _m, useMobileLayout as vm } from "./context/LayoutContext.js";
89
+ import { LayoutProvider as ym, createLayoutService as Dm, useLayout as vm, useMobileLayout as _m } from "./context/LayoutContext.js";
90
90
  import { LayoutSelector as Bm } from "./components/deck/LayoutSelector.js";
91
91
  import { LoadingOverlay as Wm } from "./components/loading/LoadingOverlay.js";
92
92
  import { MENU_ITEM_SELECTOR as wm, focusMenuItem as Nm, getMenuItems as Hm, handleMenuKeyboardNavigation as Um, moveMenuFocus as Gm } from "./components/ui/menuUtils.js";
@@ -102,7 +102,7 @@ import { MetricsWidget as as } from "./widgets/MetricsWidget.js";
102
102
  import { MobileKeyboard as cs } from "./components/ui/MobileKeyboard.js";
103
103
  import { MobileTabBar as ss } from "./components/layout/MobileTabBar.js";
104
104
  import { NOTES_CONTEXT_MENU_WIDTH_PX as fs, NotesContextMenu as ds, estimateNotesContextMenuHeight as xs } from "./components/notes/NotesContextMenu.js";
105
- import { NOTES_SCALE_MAX as Ts, NOTES_SCALE_MIN as Is, NOTE_BUCKET_METRICS as us, NOTE_COLOR_TOKENS as gs, TOPIC_ACCENT_TOKENS as Cs, TOPIC_ICON_KEYS as hs, applyNotesEvent as ks, centerViewportOnWorldPoint as Fs, clampScale as Es, computeBoardBounds as Ps, createDefaultNotesSnapshot as Rs, groupTrashItems as As, mergeBoardBounds as Ls, nextLocalZIndex as ys, normalizeNotesSnapshot as Ds, noteBucketMetrics as _s, promoteLocalItem as vs, removeSnapshotItem as Ms, removeSnapshotTopic as Bs, removeSnapshotTrashItem as Os, replaceSnapshotItem as Ws, replaceSnapshotTopic as bs, replaceSnapshotTrashItem as ws, screenToWorld as Ns, visibleWorldRect as Hs, worldToScreen as Us, zoomViewportAtPoint as Gs } from "./components/notes/types.js";
105
+ import { NOTES_SCALE_MAX as Ts, NOTES_SCALE_MIN as Is, NOTE_BUCKET_METRICS as us, NOTE_COLOR_TOKENS as gs, TOPIC_ACCENT_TOKENS as Cs, TOPIC_ICON_KEYS as hs, applyNotesEvent as ks, centerViewportOnWorldPoint as Fs, clampScale as Es, computeBoardBounds as Ps, createDefaultNotesSnapshot as Rs, groupTrashItems as As, mergeBoardBounds as Ls, nextLocalZIndex as ys, normalizeNotesSnapshot as Ds, noteBucketMetrics as vs, promoteLocalItem as _s, removeSnapshotItem as Ms, removeSnapshotTopic as Bs, removeSnapshotTrashItem as Os, replaceSnapshotItem as Ws, replaceSnapshotTopic as bs, replaceSnapshotTrashItem as ws, screenToWorld as Ns, visibleWorldRect as Hs, worldToScreen as Us, zoomViewportAtPoint as Gs } from "./components/notes/types.js";
106
106
  import { NOTE_COLOR_LABELS as Ks, NotesAnimalIcon as zs, NotesOverlayIcon as Xs, NotesTrashCanIcon as Zs, TOPIC_ACCENT_LABELS as Qs } from "./components/notes/notesAppearance.js";
107
107
  import { NotesOverlay as qs } from "./components/notes/NotesOverlay.js";
108
108
  import { NotificationContainer as Js, NotificationProvider as $s, createNotificationService as ep, useNotification as op } from "./context/NotificationContext.js";
@@ -116,7 +116,7 @@ import { QuoteBlock as Cp } from "./components/ui/QuoteBlock.js";
116
116
  import { RadioGroup as kp, RadioList as Fp, RadioOption as Ep } from "./components/ui/Radio.js";
117
117
  import { ResizeHandle as Rp } from "./components/layout/ResizeHandle.js";
118
118
  import { SegmentedControl as Lp } from "./components/ui/SegmentedControl.js";
119
- import { SettingRow as Dp, SettingsLayout as _p, SettingsList as vp, SettingsNavigation as Mp, SettingsSection as Bp } from "./components/ui/Settings.js";
119
+ import { SettingRow as Dp, SettingsLayout as vp, SettingsList as _p, SettingsNavigation as Mp, SettingsSection as Bp } from "./components/ui/Settings.js";
120
120
  import { Shell as Wp } from "./components/layout/Shell.js";
121
121
  import { ShellBlock as wp } from "./components/chat/blocks/ShellBlock.js";
122
122
  import { Sidebar as Hp, SidebarContent as Up, SidebarItem as Gp, SidebarItemList as Vp, SidebarSection as Kp } from "./components/layout/Sidebar.js";
@@ -136,7 +136,7 @@ import { TabPanel as kf, Tabs as Ff } from "./components/ui/Tabs.js";
136
136
  import { Tag as Pf } from "./components/ui/Tag.js";
137
137
  import { TerminalWidget as Af, createTerminalWidget as Lf } from "./widgets/TerminalWidget.js";
138
138
  import { TextBlock as Df } from "./components/chat/blocks/TextBlock.js";
139
- import { ThemeProvider as vf, createThemeService as Mf, useTheme as Bf } from "./context/ThemeContext.js";
139
+ import { ThemeProvider as _f, createThemeService as Mf, useTheme as Bf } from "./context/ThemeContext.js";
140
140
  import { ThemeToggle as Wf } from "./components/layout/ThemeToggle.js";
141
141
  import { ThinkingBlock as wf } from "./components/chat/blocks/ThinkingBlock.js";
142
142
  import { ToolCallBlock as Hf } from "./components/chat/blocks/ToolCallBlock.js";
@@ -155,7 +155,7 @@ import { WorkingIndicator as Td } from "./components/chat/status/WorkingIndicato
155
155
  import { applyDragDelta as ud, applyResizeDelta as gd, getGridCellSize as Cd, pixelDeltaToGridDelta as hd, positionToGridArea as kd, snapToGrid as Fd } from "./utils/gridLayout.js";
156
156
  import { buildAssistantNoticeEvents as Pd, createStreamEventBuilder as Rd, isStreamEvent as Ad } from "./components/chat/streamEvents.js";
157
157
  import { calculateFitScale as yd } from "./utils/fitScale.js";
158
- import { checkCollision as _d, constrainPosition as vd, findFreePosition as Md, hasCollision as Bd, sameGridPosition as Od } from "./utils/gridCollision.js";
158
+ import { checkCollision as vd, constrainPosition as _d, findFreePosition as Md, hasCollision as Bd, sameGridPosition as Od } from "./utils/gridCollision.js";
159
159
  import { classifyArchiveFileName as bd } from "./components/file-browser/archiveFiles.js";
160
160
  import { clientToCanvasLocal as Nd, clientToCanvasWorld as Hd, createViewportFromZoomAnchor as Ud, isPointInsideCanvasRect as Gd, localToCanvasWorld as Vd } from "./components/ui/canvasGeometry.js";
161
161
  import { cn as zd } from "./utils/cn.js";
@@ -168,7 +168,7 @@ import { createDocumentAssetRecovery as Fx } from "./app/createDocumentAssetReco
168
168
  import { createFloatingPresence as Px } from "./components/ui/floatingPresence.js";
169
169
  import { createInputHistoryController as Ax } from "./components/chat/input/createInputHistoryController.js";
170
170
  import { createLongPressContextMenuHandlers as yx } from "./components/file-browser/longPressContextMenu.js";
171
- import { createRetainedContent as _x } from "./hooks/createRetainedContent.js";
171
+ import { createRetainedContent as vx } from "./hooks/createRetainedContent.js";
172
172
  import { createSimpleContext as Mx } from "./context/createSimpleContext.js";
173
173
  import { createUIFirstSelection as Ox } from "./utils/uiFirstSelection.js";
174
174
  import { createVirtualListLayout as bx } from "./components/chat/hooks/virtualListLayout.js";
@@ -179,21 +179,22 @@ import { intersectSurfaceRects as mS } from "./components/ui/surfaceFloatingBoun
179
179
  import { isTypingElement as pS, shouldIgnoreHotkeys as fS } from "./utils/dom.js";
180
180
  import { lockBodyStyle as xS } from "./utils/bodyStyleLock.js";
181
181
  import { markdownMediaKind as TS, markdownMediaPlaceholder as IS, readMarkdownMediaPlaceholder as uS, safeMarkdownMediaURL as gS, sandboxedMarkdownHtml as CS } from "./components/chat/markdown/media.js";
182
- import { registerCommandContributions as kS, useCommandContributions as FS } from "./hooks/useCommandContributions.js";
183
- import { resolveFloatingWindowViewport as PS } from "./components/ui/floatingWindowGeometry.js";
184
- import { secureRandomUUID as AS } from "./utils/secureRandom.js";
185
- import { startPointerSession as yS } from "./components/ui/pointerSession.js";
186
- import { useAttachments as _S } from "./components/chat/hooks/useAttachments.js";
187
- import { useAutoScroll as MS } from "./components/chat/hooks/useAutoScroll.js";
188
- import { useDebounce as OS } from "./hooks/useDebounce.js";
189
- import { useDeckDrag as bS } from "./hooks/useDeckDrag.js";
190
- import { useFileBrowserDropTarget as NS, useFileBrowserItemDrag as HS } from "./hooks/useFileBrowserDrag.js";
191
- import { useKeybind as GS } from "./hooks/useKeybind.js";
192
- import { useMediaQuery as KS } from "./hooks/useMediaQuery.js";
193
- import { useOverlayMask as XS } from "./hooks/useOverlayMask.js";
194
- import { usePersisted as QS } from "./hooks/usePersisted.js";
195
- import { useResizeObserver as qS } from "./hooks/useResizeObserver.js";
196
- import { useVirtualList as JS } from "./components/chat/hooks/useVirtualList.js";
182
+ import { observeDialogHeight as kS } from "./components/ui/dialogHeightMotion.js";
183
+ import { registerCommandContributions as ES, useCommandContributions as PS } from "./hooks/useCommandContributions.js";
184
+ import { resolveFloatingWindowViewport as AS } from "./components/ui/floatingWindowGeometry.js";
185
+ import { secureRandomUUID as yS } from "./utils/secureRandom.js";
186
+ import { startPointerSession as vS } from "./components/ui/pointerSession.js";
187
+ import { useAttachments as MS } from "./components/chat/hooks/useAttachments.js";
188
+ import { useAutoScroll as OS } from "./components/chat/hooks/useAutoScroll.js";
189
+ import { useDebounce as bS } from "./hooks/useDebounce.js";
190
+ import { useDeckDrag as NS } from "./hooks/useDeckDrag.js";
191
+ import { useFileBrowserDropTarget as US, useFileBrowserItemDrag as GS } from "./hooks/useFileBrowserDrag.js";
192
+ import { useKeybind as KS } from "./hooks/useKeybind.js";
193
+ import { useMediaQuery as XS } from "./hooks/useMediaQuery.js";
194
+ import { useOverlayMask as QS } from "./hooks/useOverlayMask.js";
195
+ import { usePersisted as qS } from "./hooks/usePersisted.js";
196
+ import { useResizeObserver as JS } from "./hooks/useResizeObserver.js";
197
+ import { useVirtualList as eT } from "./components/chat/hooks/useVirtualList.js";
197
198
  export {
198
199
  L as Activity,
199
200
  Zt as ActivityAppsMain,
@@ -203,10 +204,10 @@ export {
203
204
  li as ActualSize,
204
205
  Ii as AffixInput,
205
206
  D as AlertCircle,
206
- _ as AlertTriangle,
207
+ v as AlertTriangle,
207
208
  ki as AppViewport,
208
209
  Ei as ArchiveFileIcon,
209
- v as ArchiveIcon,
210
+ _ as ArchiveIcon,
210
211
  Xi as AreaChart,
211
212
  M as ArrowDown,
212
213
  B as ArrowLeft,
@@ -318,8 +319,8 @@ export {
318
319
  Ll as DockBot,
319
320
  yl as DockCode,
320
321
  Dl as DockCpu,
321
- _l as DockFileCode,
322
- vl as DockFolder,
322
+ vl as DockFileCode,
323
+ _l as DockFolder,
323
324
  Ml as DockGlobe,
324
325
  Bl as DockLayers,
325
326
  Ol as DockLayoutDashboard,
@@ -340,8 +341,8 @@ export {
340
341
  ye as ErrorIcon,
341
342
  mi as ExitFullscreen,
342
343
  De as ExternalLink,
343
- _e as Eye,
344
- ve as EyeIcon,
344
+ ve as Eye,
345
+ _e as EyeIcon,
345
346
  Me as EyeOff,
346
347
  rc as FLOE_GEOMETRY_SURFACE_ATTR,
347
348
  tc as FLOE_HOT_INTERACTION_ATTR,
@@ -357,9 +358,9 @@ export {
357
358
  Pc as FileContextMenu,
358
359
  Ac as FileGridView,
359
360
  Di as FileIcon,
360
- _i as FileItemIcon,
361
+ vi as FileItemIcon,
361
362
  yc as FileListView,
362
- _c as FileOpenPicker,
363
+ vc as FileOpenPicker,
363
364
  Oe as FilePlus,
364
365
  We as FilePlusIcon,
365
366
  Oc as FileSavePicker,
@@ -376,7 +377,7 @@ export {
376
377
  Zc as FloeRegistryContributions,
377
378
  Yc as FloeRegistryRuntime,
378
379
  Ge as Folder,
379
- vi as FolderIcon,
380
+ _i as FolderIcon,
380
381
  Ve as FolderOpen,
381
382
  Mi as FolderOpenIcon,
382
383
  Ke as FolderPlus,
@@ -459,10 +460,10 @@ export {
459
460
  qm as MessageActions,
460
461
  Jm as MessageAvatar,
461
462
  es as MessageBubble,
462
- _o as MessageIcon,
463
+ vo as MessageIcon,
463
464
  rs as MessageItem,
464
465
  is as MessageMeta,
465
- vo as MessageSquare,
466
+ _o as MessageSquare,
466
467
  as as MetricsWidget,
467
468
  Mo as Mic,
468
469
  Bo as MicIcon,
@@ -556,8 +557,8 @@ export {
556
557
  Dp as SettingRow,
557
558
  Cr as Settings,
558
559
  hr as SettingsIcon,
559
- _p as SettingsLayout,
560
- vp as SettingsList,
560
+ vp as SettingsLayout,
561
+ _p as SettingsList,
561
562
  Mp as SettingsNavigation,
562
563
  Bp as SettingsSection,
563
564
  Nc as SettingsSidebarWidget,
@@ -591,11 +592,11 @@ export {
591
592
  af as Stepper,
592
593
  aa as StepsProgress,
593
594
  Dr as Stop,
594
- _r as StopFilled,
595
+ vr as StopFilled,
595
596
  sf as StreamingCursor,
596
597
  bi as StyleFileIcon,
597
598
  Jl as SuccessBlock,
598
- vr as SuccessIcon,
599
+ _r as SuccessIcon,
599
600
  Mr as Sun,
600
601
  Br as SunIcon,
601
602
  ff as SurfaceAnchoredLayer,
@@ -620,7 +621,7 @@ export {
620
621
  Df as TextBlock,
621
622
  Nr as TextTool,
622
623
  Ci as Textarea,
623
- vf as ThemeProvider,
624
+ _f as ThemeProvider,
624
625
  Wf as ThemeToggle,
625
626
  wf as ThinkingBlock,
626
627
  Hr as ThumbsDownIcon,
@@ -687,7 +688,7 @@ export {
687
688
  l as builtInThemes,
688
689
  yd as calculateFitScale,
689
690
  Fs as centerViewportOnWorldPoint,
690
- _d as checkCollision,
691
+ vd as checkCollision,
691
692
  Es as clampScale,
692
693
  Tt as clampTerminalCursor,
693
694
  bd as classifyArchiveFileName,
@@ -703,7 +704,7 @@ export {
703
704
  Sx as configureShikiWorker,
704
705
  Tx as configureSyncHighlighter,
705
706
  sx as configureSyncMermaid,
706
- vd as constrainPosition,
707
+ _d as constrainPosition,
707
708
  hx as createAdaptiveSidebar,
708
709
  Sa as createCommandService,
709
710
  ga as createComponentRegistry,
@@ -718,7 +719,7 @@ export {
718
719
  yx as createLongPressContextMenuHandlers,
719
720
  rx as createMarkdownWorker,
720
721
  ep as createNotificationService,
721
- _x as createRetainedContent,
722
+ vx as createRetainedContent,
722
723
  nn as createShellThemePreset,
723
724
  Mx as createSimpleContext,
724
725
  Rd as createStreamEventBuilder,
@@ -758,7 +759,7 @@ export {
758
759
  Vi as getFileIcon,
759
760
  R as getFloeColorTokenValue,
760
761
  Cd as getGridCellSize,
761
- _a as getGridConfigFromElement,
762
+ va as getGridConfigFromElement,
762
763
  Hm as getMenuItems,
763
764
  an as getShellThemePresetsForMode,
764
765
  c as getSystemTheme,
@@ -798,11 +799,12 @@ export {
798
799
  Ct as moveTerminalCursor,
799
800
  ht as navigateTerminalHistory,
800
801
  ys as nextLocalZIndex,
801
- vc as normalizeFileOpenSelection,
802
+ _c as normalizeFileOpenSelection,
802
803
  Ds as normalizeNotesSnapshot,
803
804
  ln as normalizeShellThemeSelection,
804
805
  xt as normalizeTerminalWorkspaceProfile,
805
- _s as noteBucketMetrics,
806
+ vs as noteBucketMetrics,
807
+ kS as observeDialogHeight,
806
808
  Zx as panelResize,
807
809
  lS as parseKeybind,
808
810
  xp as parsePickerPath,
@@ -813,9 +815,9 @@ export {
813
815
  cn as presetSupportsMode,
814
816
  Za as projectSurfacePortalPosition,
815
817
  Qa as projectSurfacePortalRect,
816
- vs as promoteLocalItem,
818
+ _s as promoteLocalItem,
817
819
  uS as readMarkdownMediaPlaceholder,
818
- kS as registerCommandContributions,
820
+ ES as registerCommandContributions,
819
821
  Ms as removeSnapshotItem,
820
822
  Bs as removeSnapshotTopic,
821
823
  Os as removeSnapshotTrashItem,
@@ -826,27 +828,27 @@ export {
826
828
  bs as replaceSnapshotTopic,
827
829
  ws as replaceSnapshotTrashItem,
828
830
  Ki as resolveFileItemIcon,
829
- PS as resolveFloatingWindowViewport,
831
+ AS as resolveFloatingWindowViewport,
830
832
  mn as resolveShellThemePresetName,
831
833
  Dn as resolveSurfaceInteractionTargetRole,
832
834
  Ya as resolveSurfacePortalBoundaryRect,
833
835
  qa as resolveSurfacePortalHost,
834
836
  ja as resolveSurfacePortalMount,
835
837
  Ja as resolveSurfacePortalMountRect,
836
- _n as resolveSurfaceWheelRouting,
838
+ vn as resolveSurfaceWheelRouting,
837
839
  f as resolveThemeTokenOverrides,
838
840
  d as resolveThemeTokens,
839
- vn as resolveWorkbenchWidgetEventOwnership,
841
+ _n as resolveWorkbenchWidgetEventOwnership,
840
842
  Mn as resolveWorkbenchWidgetLocalTypingTarget,
841
843
  Bn as resolveWorkbenchWidgetTextSelectionTarget,
842
- _t as runTerminalMockCommand,
844
+ vt as runTerminalMockCommand,
843
845
  gS as safeMarkdownMediaURL,
844
846
  Od as sameGridPosition,
845
847
  CS as sandboxedMarkdownHtml,
846
848
  Pl as sanitizeDisplayMode,
847
849
  Yx as scaleIn,
848
850
  Ns as screenToWorld,
849
- AS as secureRandomUUID,
851
+ yS as secureRandomUUID,
850
852
  Lt as setTerminalSessionInputValue,
851
853
  On as shouldActivateWorkbenchWidgetLocalTarget,
852
854
  fS as shouldIgnoreHotkeys,
@@ -858,7 +860,7 @@ export {
858
860
  Fd as snapToGrid,
859
861
  oS as springConfig,
860
862
  ic as startHotInteraction,
861
- yS as startPointerSession,
863
+ vS as startPointerSession,
862
864
  yt as submitTerminalSession,
863
865
  x as syncThemeTokenOverrides,
864
866
  Ut as terminalCommandTokenSuggestionProvider,
@@ -871,38 +873,38 @@ export {
871
873
  fx as terminateMermaidWorker,
872
874
  ux as terminateShikiWorker,
873
875
  Mc as updateFileOpenSelection,
874
- _S as useAttachments,
875
- MS as useAutoScroll,
876
+ MS as useAttachments,
877
+ OS as useAutoScroll,
876
878
  Yn as useChatContext,
877
879
  gx as useCodeHighlight,
878
880
  Ta as useCommand,
879
- FS as useCommandContributions,
881
+ PS as useCommandContributions,
880
882
  ha as useComponentContextFactory,
881
883
  ka as useComponentRegistry,
882
884
  sd as useCurrentWidgetId,
883
- OS as useDebounce,
885
+ bS as useDebounce,
884
886
  cl as useDeck,
885
- bS as useDeckDrag,
887
+ NS as useDeckDrag,
886
888
  gc as useFileBrowser,
887
889
  Tc as useFileBrowserDrag,
888
- NS as useFileBrowserDropTarget,
889
- HS as useFileBrowserItemDrag,
890
+ US as useFileBrowserDropTarget,
891
+ GS as useFileBrowserItemDrag,
890
892
  Oa as useFloeConfig,
891
893
  lm as useFormSubmitting,
892
- GS as useKeybind,
893
- _m as useLayout,
894
- KS as useMediaQuery,
894
+ KS as useKeybind,
895
+ vm as useLayout,
896
+ XS as useMediaQuery,
895
897
  dx as useMermaid,
896
- vm as useMobileLayout,
898
+ _m as useMobileLayout,
897
899
  op as useNotification,
898
900
  Fa as useOptionalComponentRegistry,
899
- XS as useOverlayMask,
900
- QS as usePersisted,
901
- qS as useResizeObserver,
901
+ QS as useOverlayMask,
902
+ qS as usePersisted,
903
+ JS as useResizeObserver,
902
904
  Wa as useResolvedFloeConfig,
903
905
  Bf as useTheme,
904
906
  Yf as useViewActivation,
905
- JS as useVirtualList,
907
+ eT as useVirtualList,
906
908
  nd as useWidgetRegistry,
907
909
  pd as useWidgetState,
908
910
  fd as useWidgetStateContext,
package/dist/ui.js CHANGED
@@ -1,8 +1,8 @@
1
1
  import { AffixInput as e, Input as t, NumberInput as a, Textarea as i } from "./components/ui/Input.js";
2
2
  import { AreaChart as c, DataBarChart as p, DataPieChart as l, LineChart as m, MonitoringChart as T } from "./components/ui/Charts.js";
3
3
  import { Button as s } from "./components/ui/Button.js";
4
- import { CANVAS_WHEEL_INTERACTIVE_ATTR as E, DEFAULT_CANVAS_WHEEL_INTERACTIVE_SELECTOR as C, DEFAULT_LOCAL_INTERACTION_SURFACE_SELECTOR as x, DEFAULT_WORKBENCH_TEXT_SELECTION_SURFACE_SELECTOR as _, DEFAULT_WORKBENCH_WIDGET_ACTIVATION_SURFACE_SELECTOR as R, DEFAULT_WORKBENCH_WIDGET_SHELL_SELECTOR as A, LOCAL_INTERACTION_SURFACE_ATTR as u, WORKBENCH_TEXT_SELECTION_SURFACE_ATTR as g, WORKBENCH_WIDGET_ACTIVATION_SURFACE_ATTR as F, WORKBENCH_WIDGET_SHELL_ATTR as L, isLocalInteractionSurfaceTarget as d, resolveSurfaceInteractionTargetRole as P, resolveSurfaceWheelRouting as I, resolveWorkbenchWidgetEventOwnership as O, resolveWorkbenchWidgetLocalTypingTarget as W, resolveWorkbenchWidgetTextSelectionTarget as v, shouldActivateWorkbenchWidgetLocalTarget as D } from "./components/ui/localInteractionSurface.js";
5
- import { Card as k, CardContent as h, CardDescription as B, CardFooter as b, CardHeader as U, CardTitle as H } from "./components/ui/Card.js";
4
+ import { CANVAS_WHEEL_INTERACTIVE_ATTR as E, DEFAULT_CANVAS_WHEEL_INTERACTIVE_SELECTOR as C, DEFAULT_LOCAL_INTERACTION_SURFACE_SELECTOR as x, DEFAULT_WORKBENCH_TEXT_SELECTION_SURFACE_SELECTOR as _, DEFAULT_WORKBENCH_WIDGET_ACTIVATION_SURFACE_SELECTOR as R, DEFAULT_WORKBENCH_WIDGET_SHELL_SELECTOR as A, LOCAL_INTERACTION_SURFACE_ATTR as g, WORKBENCH_TEXT_SELECTION_SURFACE_ATTR as u, WORKBENCH_WIDGET_ACTIVATION_SURFACE_ATTR as F, WORKBENCH_WIDGET_SHELL_ATTR as L, isLocalInteractionSurfaceTarget as d, resolveSurfaceInteractionTargetRole as P, resolveSurfaceWheelRouting as I, resolveWorkbenchWidgetEventOwnership as O, resolveWorkbenchWidgetLocalTypingTarget as W, resolveWorkbenchWidgetTextSelectionTarget as v, shouldActivateWorkbenchWidgetLocalTarget as D } from "./components/ui/localInteractionSurface.js";
5
+ import { Card as h, CardContent as k, CardDescription as b, CardFooter as B, CardHeader as H, CardTitle as U } from "./components/ui/Card.js";
6
6
  import { Checkbox as M, CheckboxGroup as w, CheckboxList as K } from "./components/ui/Checkbox.js";
7
7
  import { CircularProgress as V, LinearProgress as z, SegmentedProgress as j, StepsProgress as X } from "./components/ui/Progress.js";
8
8
  import { CommandPalette as Q } from "./components/ui/CommandPalette.js";
@@ -12,10 +12,10 @@ import { DialogPlacementProvider as So } from "./components/ui/DialogPlacementCo
12
12
  import { DirectoryFavoriteButton as Co } from "./components/ui/picker/DirectoryFavorites.js";
13
13
  import { DirectoryInput as _o } from "./components/ui/DirectoryInput.js";
14
14
  import { DirectoryPicker as Ao } from "./components/ui/DirectoryPicker.js";
15
- import { Dropdown as go, Select as Fo } from "./components/ui/Dropdown.js";
15
+ import { Dropdown as uo, Select as Fo } from "./components/ui/Dropdown.js";
16
16
  import { ErrorBlock as Po, HighlightBlock as Io, InfoBlock as Oo, NoteBlock as Wo, SuccessBlock as vo, TipBlock as Do, WarningBlock as No } from "./components/ui/HighlightBlock.js";
17
- import { FeedbackIndicator as ho } from "./components/ui/FeedbackIndicator.js";
18
- import { FileOpenPicker as bo, normalizeFileOpenSelection as Uo, updateFileOpenSelection as Ho } from "./components/ui/FileOpenPicker.js";
17
+ import { FeedbackIndicator as ko } from "./components/ui/FeedbackIndicator.js";
18
+ import { FileOpenPicker as Bo, normalizeFileOpenSelection as Ho, updateFileOpenSelection as Uo } from "./components/ui/FileOpenPicker.js";
19
19
  import { FileSavePicker as Mo } from "./components/ui/FileSavePicker.js";
20
20
  import { FloatingWindow as Ko } from "./components/ui/FloatingWindow.js";
21
21
  import { Form as Vo, FormActions as zo, FormControl as jo, FormDescription as Xo, FormDivider as Yo, FormField as Qo, FormLabel as Zo, FormMessage as qo, FormRow as Jo, FormSection as $o, useFormSubmitting as or } from "./components/ui/Form.js";
@@ -25,13 +25,13 @@ import { MENU_ITEM_SELECTOR as nr, focusMenuItem as cr, getMenuItems as pr, hand
25
25
  import { MobileKeyboard as fr } from "./components/ui/MobileKeyboard.js";
26
26
  import { Pagination as Sr } from "./components/ui/Pagination.js";
27
27
  import { PersistentHorizontalScrollbar as Cr } from "./components/ui/PersistentHorizontalScrollbar.js";
28
- import { PickerNavigationError as _r, createFilesystemPickerDataSource as Rr, formatPickerPath as Ar, parsePickerPath as ur } from "./components/ui/picker/PickerNavigation.js";
28
+ import { PickerNavigationError as _r, createFilesystemPickerDataSource as Rr, formatPickerPath as Ar, parsePickerPath as gr } from "./components/ui/picker/PickerNavigation.js";
29
29
  import { Popover as Fr } from "./components/ui/Popover.js";
30
30
  import { ProcessingIndicator as dr } from "./components/ui/ProcessingIndicator.js";
31
31
  import { QuoteBlock as Ir } from "./components/ui/QuoteBlock.js";
32
32
  import { RadioGroup as Wr, RadioList as vr, RadioOption as Dr } from "./components/ui/Radio.js";
33
- import { SegmentedControl as kr } from "./components/ui/SegmentedControl.js";
34
- import { SettingRow as Br, SettingsLayout as br, SettingsList as Ur, SettingsNavigation as Hr, SettingsSection as yr } from "./components/ui/Settings.js";
33
+ import { SegmentedControl as hr } from "./components/ui/SegmentedControl.js";
34
+ import { SettingRow as br, SettingsLayout as Br, SettingsList as Hr, SettingsNavigation as Ur, SettingsSection as yr } from "./components/ui/Settings.js";
35
35
  import { StableText as wr } from "./components/ui/StableText.js";
36
36
  import { StatusRegion as Gr } from "./components/ui/StatusRegion.js";
37
37
  import { Stepper as zr, Wizard as jr, useWizard as Xr } from "./components/ui/Stepper.js";
@@ -45,19 +45,20 @@ import { Tooltip as pe } from "./components/ui/Tooltip.js";
45
45
  import { clientToCanvasLocal as me, clientToCanvasWorld as Te, createViewportFromZoomAnchor as fe, isPointInsideCanvasRect as se, localToCanvasWorld as Se } from "./components/ui/canvasGeometry.js";
46
46
  import { createFloatingPresence as Ce } from "./components/ui/floatingPresence.js";
47
47
  import { intersectSurfaceRects as _e } from "./components/ui/surfaceFloatingBoundary.js";
48
- import { resolveFloatingWindowViewport as Ae } from "./components/ui/floatingWindowGeometry.js";
49
- import { startPointerSession as ge } from "./components/ui/pointerSession.js";
48
+ import { observeDialogHeight as Ae } from "./components/ui/dialogHeightMotion.js";
49
+ import { resolveFloatingWindowViewport as ue } from "./components/ui/floatingWindowGeometry.js";
50
+ import { startPointerSession as Le } from "./components/ui/pointerSession.js";
50
51
  export {
51
52
  e as AffixInput,
52
53
  c as AreaChart,
53
54
  s as Button,
54
55
  E as CANVAS_WHEEL_INTERACTIVE_ATTR,
55
- k as Card,
56
- h as CardContent,
57
- B as CardDescription,
58
- b as CardFooter,
59
- U as CardHeader,
60
- H as CardTitle,
56
+ h as Card,
57
+ k as CardContent,
58
+ b as CardDescription,
59
+ B as CardFooter,
60
+ H as CardHeader,
61
+ U as CardTitle,
61
62
  M as Checkbox,
62
63
  w as CheckboxGroup,
63
64
  K as CheckboxList,
@@ -78,10 +79,10 @@ export {
78
79
  Co as DirectoryFavoriteButton,
79
80
  _o as DirectoryInput,
80
81
  Ao as DirectoryPicker,
81
- go as Dropdown,
82
+ uo as Dropdown,
82
83
  Po as ErrorBlock,
83
- ho as FeedbackIndicator,
84
- bo as FileOpenPicker,
84
+ ko as FeedbackIndicator,
85
+ Bo as FileOpenPicker,
85
86
  Mo as FileSavePicker,
86
87
  Ko as FloatingWindow,
87
88
  Vo as Form,
@@ -99,7 +100,7 @@ export {
99
100
  Oo as InfoBlock,
100
101
  t as Input,
101
102
  ar as KeyedFor,
102
- u as LOCAL_INTERACTION_SURFACE_ATTR,
103
+ g as LOCAL_INTERACTION_SURFACE_ATTR,
103
104
  m as LineChart,
104
105
  z as LinearProgress,
105
106
  nr as MENU_ITEM_SELECTOR,
@@ -118,13 +119,13 @@ export {
118
119
  Dr as RadioOption,
119
120
  eo as SURFACE_PORTAL_HOST_ATTR,
120
121
  to as SURFACE_PORTAL_LAYER_ATTR,
121
- kr as SegmentedControl,
122
+ hr as SegmentedControl,
122
123
  j as SegmentedProgress,
123
124
  Fo as Select,
124
- Br as SettingRow,
125
- br as SettingsLayout,
126
- Ur as SettingsList,
127
- Hr as SettingsNavigation,
125
+ br as SettingRow,
126
+ Br as SettingsLayout,
127
+ Hr as SettingsList,
128
+ Ur as SettingsNavigation,
128
129
  yr as SettingsSection,
129
130
  wr as StableText,
130
131
  Gr as StatusRegion,
@@ -141,7 +142,7 @@ export {
141
142
  i as Textarea,
142
143
  Do as TipBlock,
143
144
  pe as Tooltip,
144
- g as WORKBENCH_TEXT_SELECTION_SURFACE_ATTR,
145
+ u as WORKBENCH_TEXT_SELECTION_SURFACE_ATTR,
145
146
  F as WORKBENCH_WIDGET_ACTIVATION_SURFACE_ATTR,
146
147
  L as WORKBENCH_WIDGET_SHELL_ATTR,
147
148
  No as WarningBlock,
@@ -163,11 +164,12 @@ export {
163
164
  no as isSurfacePortalMode,
164
165
  Se as localToCanvasWorld,
165
166
  mr as moveMenuFocus,
166
- Uo as normalizeFileOpenSelection,
167
- ur as parsePickerPath,
167
+ Ho as normalizeFileOpenSelection,
168
+ Ae as observeDialogHeight,
169
+ gr as parsePickerPath,
168
170
  co as projectSurfacePortalPosition,
169
171
  po as projectSurfacePortalRect,
170
- Ae as resolveFloatingWindowViewport,
172
+ ue as resolveFloatingWindowViewport,
171
173
  P as resolveSurfaceInteractionTargetRole,
172
174
  lo as resolveSurfacePortalBoundaryRect,
173
175
  mo as resolveSurfacePortalHost,
@@ -178,8 +180,8 @@ export {
178
180
  W as resolveWorkbenchWidgetLocalTypingTarget,
179
181
  v as resolveWorkbenchWidgetTextSelectionTarget,
180
182
  D as shouldActivateWorkbenchWidgetLocalTarget,
181
- ge as startPointerSession,
182
- Ho as updateFileOpenSelection,
183
+ Le as startPointerSession,
184
+ Uo as updateFileOpenSelection,
183
185
  or as useFormSubmitting,
184
186
  Xr as useWizard
185
187
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@floegence/floe-webapp-core",
3
- "version": "0.86.63",
3
+ "version": "0.86.64",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",