@floegence/floe-webapp-core 0.36.69 → 0.36.71

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,54 +1,60 @@
1
- import { insert as a, createComponent as x, effect as y, className as p, template as c, delegateEvents as g } from "solid-js/web";
2
- import { createSignal as w, onCleanup as $, Show as T } from "solid-js";
3
- import { cn as m } from "../../utils/cn.js";
4
- var S = /* @__PURE__ */ c("<div role=tooltip><div>"), C = /* @__PURE__ */ c('<div class="relative inline-block">');
5
- function L(r) {
6
- const [b, n] = w(!1);
1
+ import { insert as i, createComponent as T, effect as $, className as v, setAttribute as b, template as h, delegateEvents as S } from "solid-js/web";
2
+ import { createSignal as C, onCleanup as E, Show as L } from "solid-js";
3
+ import { cn as g } from "../../utils/cn.js";
4
+ import { createFloatingPresence as P } from "./floatingPresence.js";
5
+ var k = /* @__PURE__ */ h("<div role=tooltip><div>"), z = /* @__PURE__ */ h('<div class="relative inline-block">');
6
+ function N(o) {
7
+ const [x, n] = C(!1), a = P({
8
+ open: x,
9
+ exitDurationMs: 80
10
+ });
7
11
  let e;
8
- $(() => {
12
+ E(() => {
9
13
  e && (clearTimeout(e), e = void 0);
10
14
  });
11
- const i = () => {
15
+ const s = () => {
12
16
  e && clearTimeout(e);
13
- const t = r.delay ?? 300;
17
+ const t = o.delay ?? 300;
14
18
  if (t <= 0) {
15
19
  n(!0);
16
20
  return;
17
21
  }
18
22
  e = setTimeout(() => n(!0), t);
19
- }, s = () => {
23
+ }, d = () => {
20
24
  e && (clearTimeout(e), e = void 0), n(!1);
21
- }, v = {
25
+ }, y = {
22
26
  top: "bottom-full left-1/2 -translate-x-1/2 mb-2",
23
27
  bottom: "top-full left-1/2 -translate-x-1/2 mt-2",
24
28
  left: "right-full top-1/2 -translate-y-1/2 mr-2",
25
29
  right: "left-full top-1/2 -translate-y-1/2 ml-2"
26
- }, h = {
30
+ }, w = {
27
31
  top: "top-full left-1/2 -translate-x-1/2 border-t-popover border-x-transparent border-b-transparent",
28
32
  bottom: "bottom-full left-1/2 -translate-x-1/2 border-b-popover border-x-transparent border-t-transparent",
29
33
  left: "left-full top-1/2 -translate-y-1/2 border-l-popover border-y-transparent border-r-transparent",
30
34
  right: "right-full top-1/2 -translate-y-1/2 border-r-popover border-y-transparent border-l-transparent"
31
35
  };
32
36
  return (() => {
33
- var t = C();
34
- return t.$$focusout = s, t.$$focusin = i, t.addEventListener("mouseleave", s), t.addEventListener("mouseenter", i), a(t, () => r.children, null), a(t, x(T, {
37
+ var t = z();
38
+ return t.$$focusout = d, t.$$focusin = s, t.addEventListener("mouseleave", d), t.addEventListener("mouseenter", s), i(t, () => o.children, null), i(t, T(L, {
35
39
  get when() {
36
- return b();
40
+ return a.mounted();
37
41
  },
38
42
  get children() {
39
- var l = S(), d = l.firstChild;
40
- return a(l, () => r.content, d), y((o) => {
41
- var u = m("absolute z-50 px-2 py-1", "bg-popover text-popover-foreground text-xs rounded shadow-md", "whitespace-nowrap", "animate-in fade-in zoom-in-95", v[r.placement ?? "top"], r.class), f = m("absolute w-0 h-0 border-4", h[r.placement ?? "top"]);
42
- return u !== o.e && p(l, o.e = u), f !== o.t && p(d, o.t = f), o;
43
+ var l = k(), u = l.firstChild;
44
+ return i(l, () => o.content, u), $((r) => {
45
+ var f = g("absolute z-50 px-2 py-1", "bg-popover text-popover-foreground text-xs rounded shadow-md", "whitespace-nowrap", "floe-floating-presence floe-floating-tooltip", y[o.placement ?? "top"], o.class), p = a.state(), c = a.exiting() ? "true" : void 0, m = g("absolute w-0 h-0 border-4", w[o.placement ?? "top"]);
46
+ return f !== r.e && v(l, r.e = f), p !== r.t && b(l, "data-floating-presence", r.t = p), c !== r.a && b(l, "aria-hidden", r.a = c), m !== r.o && v(u, r.o = m), r;
43
47
  }, {
44
48
  e: void 0,
45
- t: void 0
49
+ t: void 0,
50
+ a: void 0,
51
+ o: void 0
46
52
  }), l;
47
53
  }
48
54
  }), null), t;
49
55
  })();
50
56
  }
51
- g(["focusin", "focusout"]);
57
+ S(["focusin", "focusout"]);
52
58
  export {
53
- L as Tooltip
59
+ N as Tooltip
54
60
  };
@@ -0,0 +1,13 @@
1
+ import { type Accessor } from 'solid-js';
2
+ export type FloatingPresenceState = 'entering' | 'open' | 'exiting';
3
+ export interface FloatingPresenceOptions {
4
+ open: Accessor<boolean>;
5
+ exitDurationMs?: number;
6
+ reducedMotionExitDurationMs?: number;
7
+ }
8
+ export interface FloatingPresence {
9
+ mounted: Accessor<boolean>;
10
+ state: Accessor<FloatingPresenceState>;
11
+ exiting: Accessor<boolean>;
12
+ }
13
+ export declare function createFloatingPresence(options: FloatingPresenceOptions): FloatingPresence;
@@ -0,0 +1,54 @@
1
+ import { createSignal as f, createEffect as d, untrack as o, onCleanup as s } from "solid-js";
2
+ function w() {
3
+ return typeof window > "u" || typeof window.matchMedia != "function" ? !1 : window.matchMedia("(prefers-reduced-motion: reduce)").matches;
4
+ }
5
+ function x(e) {
6
+ return typeof window < "u" && typeof window.requestAnimationFrame == "function" ? window.requestAnimationFrame(e) : globalThis.setTimeout(e, 16);
7
+ }
8
+ function g(e) {
9
+ if (typeof window < "u" && typeof window.cancelAnimationFrame == "function") {
10
+ window.cancelAnimationFrame(e);
11
+ return;
12
+ }
13
+ globalThis.clearTimeout(e);
14
+ }
15
+ function p(e) {
16
+ return w() ? Math.max(0, e.reducedMotionExitDurationMs ?? 1) : Math.max(0, e.exitDurationMs ?? 120);
17
+ }
18
+ function F(e) {
19
+ const [u, a] = f(e.open()), [c, i] = f(
20
+ e.open() ? "entering" : "exiting"
21
+ );
22
+ let n = null, t = null;
23
+ const r = () => {
24
+ n !== null && (g(n), n = null);
25
+ }, l = () => {
26
+ t !== null && (globalThis.clearTimeout(t), t = null);
27
+ };
28
+ return d(() => {
29
+ if (e.open()) {
30
+ l(), r(), a(!0), i("entering"), n = x(() => {
31
+ n = null, o(e.open) && i("open");
32
+ });
33
+ return;
34
+ }
35
+ if (r(), !o(u)) {
36
+ i("exiting");
37
+ return;
38
+ }
39
+ i("exiting");
40
+ const m = p(e);
41
+ t = globalThis.setTimeout(() => {
42
+ t = null, o(e.open) || a(!1);
43
+ }, m);
44
+ }), s(() => {
45
+ r(), l();
46
+ }), {
47
+ mounted: u,
48
+ state: c,
49
+ exiting: () => c() === "exiting"
50
+ };
51
+ }
52
+ export {
53
+ F as createFloatingPresence
54
+ };
@@ -3,6 +3,7 @@ export { Tag, type TagProps, type TagVariant, type TagSize } from './Tag';
3
3
  export { Input, Textarea, NumberInput, AffixInput, type InputProps, type InputSize, type TextareaProps, type NumberInputProps, type AffixInputProps, type AffixOption, } from './Input';
4
4
  export { Dialog, ConfirmDialog, type DialogProps, type ConfirmDialogProps } from './Dialog';
5
5
  export { FloatingWindow, type FloatingWindowProps } from './FloatingWindow';
6
+ export { createFloatingPresence, type FloatingPresence, type FloatingPresenceOptions, type FloatingPresenceState, } from './floatingPresence';
6
7
  export { resolveFloatingWindowViewport, type FloatingWindowRect, type FloatingWindowViewport, type FloatingWindowViewportInsets, } from './floatingWindowGeometry';
7
8
  export { Dropdown, Select, type DropdownProps, type DropdownItem, type SelectProps, } from './Dropdown';
8
9
  export { SurfaceFloatingLayer, type SurfaceFloatingLayerPosition, type SurfaceFloatingLayerProps, type SurfaceFloatingLayerSize, } from './SurfaceFloatingLayer';
package/dist/floe.css CHANGED
@@ -426,6 +426,91 @@
426
426
 
427
427
  /* Animation utilities */
428
428
  @layer utilities {
429
+ .floe-floating-presence {
430
+ --floe-floating-enter-duration: 140ms;
431
+ --floe-floating-exit-duration: 110ms;
432
+ --floe-floating-enter-x: 0;
433
+ --floe-floating-enter-y: 0;
434
+ --floe-floating-exit-x: 0;
435
+ --floe-floating-exit-y: 0;
436
+ --floe-floating-enter-scale: 0.98;
437
+ --floe-floating-exit-scale: 0.985;
438
+ opacity: 1;
439
+ translate: 0 0;
440
+ scale: 1;
441
+ transform-origin: var(--floe-floating-origin, center);
442
+ transition:
443
+ opacity var(--floe-floating-enter-duration) ease-out,
444
+ translate var(--floe-floating-enter-duration) cubic-bezier(0.2, 0.8, 0.2, 1),
445
+ scale var(--floe-floating-enter-duration) cubic-bezier(0.2, 0.8, 0.2, 1);
446
+ will-change: opacity, translate, scale;
447
+ }
448
+
449
+ .floe-floating-presence[data-floating-presence='entering'] {
450
+ opacity: 0;
451
+ translate: var(--floe-floating-enter-x) var(--floe-floating-enter-y);
452
+ scale: var(--floe-floating-enter-scale);
453
+ }
454
+
455
+ .floe-floating-presence[data-floating-presence='exiting'] {
456
+ opacity: 0;
457
+ pointer-events: none;
458
+ translate: var(--floe-floating-exit-x) var(--floe-floating-exit-y);
459
+ scale: var(--floe-floating-exit-scale);
460
+ transition:
461
+ opacity var(--floe-floating-exit-duration) ease-in,
462
+ translate var(--floe-floating-exit-duration) cubic-bezier(0.4, 0, 1, 1),
463
+ scale var(--floe-floating-exit-duration) cubic-bezier(0.4, 0, 1, 1);
464
+ }
465
+
466
+ .floe-floating-presence--suspended {
467
+ transition: none !important;
468
+ }
469
+
470
+ .floe-floating-backdrop {
471
+ --floe-floating-enter-scale: 1;
472
+ --floe-floating-exit-scale: 1;
473
+ }
474
+
475
+ .floe-floating-dialog-panel {
476
+ --floe-floating-enter-y: 0.25rem;
477
+ --floe-floating-exit-y: 0.125rem;
478
+ --floe-floating-enter-scale: 0.975;
479
+ --floe-floating-exit-scale: 0.985;
480
+ }
481
+
482
+ .floe-floating-menu {
483
+ --floe-floating-enter-duration: 120ms;
484
+ --floe-floating-exit-duration: 100ms;
485
+ --floe-floating-enter-y: -0.25rem;
486
+ --floe-floating-exit-y: -0.125rem;
487
+ --floe-floating-enter-scale: 0.985;
488
+ --floe-floating-exit-scale: 0.992;
489
+ --floe-floating-origin: top;
490
+ }
491
+
492
+ .floe-floating-submenu {
493
+ --floe-floating-enter-x: -0.25rem;
494
+ --floe-floating-exit-x: -0.125rem;
495
+ --floe-floating-origin: left top;
496
+ }
497
+
498
+ .floe-floating-tooltip {
499
+ --floe-floating-enter-duration: 80ms;
500
+ --floe-floating-exit-duration: 70ms;
501
+ --floe-floating-enter-y: -0.125rem;
502
+ --floe-floating-exit-y: -0.0625rem;
503
+ --floe-floating-enter-scale: 0.98;
504
+ --floe-floating-exit-scale: 0.99;
505
+ }
506
+
507
+ .floe-floating-window-motion {
508
+ --floe-floating-enter-duration: 150ms;
509
+ --floe-floating-exit-duration: 120ms;
510
+ --floe-floating-enter-scale: 0.985;
511
+ --floe-floating-exit-scale: 0.985;
512
+ }
513
+
429
514
  .animate-in {
430
515
  animation: animate-in 200ms ease-out;
431
516
  }
@@ -474,6 +559,15 @@
474
559
  .scrollbar-hide::-webkit-scrollbar {
475
560
  display: none;
476
561
  }
562
+
563
+ @media (prefers-reduced-motion: reduce) {
564
+ .floe-floating-presence {
565
+ transition: opacity 1ms linear;
566
+ translate: none !important;
567
+ scale: none !important;
568
+ will-change: opacity;
569
+ }
570
+ }
477
571
  }
478
572
 
479
573
  @keyframes animate-in {
package/dist/full.js CHANGED
@@ -139,25 +139,26 @@ import { computeCodeDiff as ff, computeCodeDiffSync as df, configureDiffWorker a
139
139
  import { configureMarkdownWorker as uf, createMarkdownWorker as kf, hasMarkdownWorker as hf, renderMarkdown as Ff, renderMarkdownSync as Ef, terminateMarkdownWorker as Af, waitForMarkdownWorker as Pf } from "./components/chat/hooks/useMarkdown.js";
140
140
  import { configureMermaidWorker as Lf, configureSyncMermaid as Rf, renderMermaid as _f, terminateMermaidWorker as vf, useMermaid as yf } from "./components/chat/hooks/useMermaid.js";
141
141
  import { configureShikiWorker as Of, configureSyncHighlighter as Wf, highlightCode as Mf, terminateShikiWorker as Nf, useCodeHighlight as wf } from "./components/chat/hooks/useCodeHighlight.js";
142
- import { createSimpleContext as Hf } from "./context/createSimpleContext.js";
143
- import { deferAfterPaint as Gf, deferNonBlocking as Vf } from "./utils/defer.js";
144
- import { duration as zf, easing as Xf, fadeIn as Zf, listContainer as Yf, listItem as Qf, panelResize as jf, popIn as qf, scaleIn as Jf, sidebarVariants as $f, slideInFromBottom as ed, slideInFromLeft as od, slideInFromRight as rd, slideInFromTop as td, springConfig as id } from "./utils/animations.js";
145
- import { formatKeybind as ad, isMacLikePlatform as cd, isPrimaryModKeyPressed as ld, matchKeybind as md, parseKeybind as sd } from "./utils/keybind.js";
146
- import { isTypingElement as fd, shouldIgnoreHotkeys as dd } from "./utils/dom.js";
147
- import { lockBodyStyle as Id } from "./utils/bodyStyleLock.js";
148
- import { registerCommandContributions as Cd, useCommandContributions as Sd } from "./hooks/useCommandContributions.js";
149
- import { resolveFloatingWindowViewport as ud } from "./components/ui/floatingWindowGeometry.js";
150
- import { startPointerSession as hd } from "./components/ui/pointerSession.js";
151
- import { useAttachments as Ed } from "./components/chat/hooks/useAttachments.js";
152
- import { useAutoScroll as Pd } from "./components/chat/hooks/useAutoScroll.js";
153
- import { useDebounce as Ld } from "./hooks/useDebounce.js";
154
- import { useDeckDrag as _d } from "./hooks/useDeckDrag.js";
155
- import { useFileBrowserDropTarget as yd, useFileBrowserItemDrag as Bd } from "./hooks/useFileBrowserDrag.js";
156
- import { useKeybind as Wd } from "./hooks/useKeybind.js";
157
- import { useMediaQuery as Nd } from "./hooks/useMediaQuery.js";
158
- import { usePersisted as bd } from "./hooks/usePersisted.js";
159
- import { useResizeObserver as Ud } from "./hooks/useResizeObserver.js";
160
- import { useVirtualList as Vd } from "./components/chat/hooks/useVirtualList.js";
142
+ import { createFloatingPresence as Hf } from "./components/ui/floatingPresence.js";
143
+ import { createSimpleContext as Gf } from "./context/createSimpleContext.js";
144
+ import { deferAfterPaint as Kf, deferNonBlocking as zf } from "./utils/defer.js";
145
+ import { duration as Zf, easing as Yf, fadeIn as Qf, listContainer as jf, listItem as qf, panelResize as Jf, popIn as $f, scaleIn as ed, sidebarVariants as od, slideInFromBottom as rd, slideInFromLeft as td, slideInFromRight as id, slideInFromTop as nd, springConfig as ad } from "./utils/animations.js";
146
+ import { formatKeybind as ld, isMacLikePlatform as md, isPrimaryModKeyPressed as sd, matchKeybind as pd, parseKeybind as fd } from "./utils/keybind.js";
147
+ import { isTypingElement as Td, shouldIgnoreHotkeys as Id } from "./utils/dom.js";
148
+ import { lockBodyStyle as Cd } from "./utils/bodyStyleLock.js";
149
+ import { registerCommandContributions as gd, useCommandContributions as ud } from "./hooks/useCommandContributions.js";
150
+ import { resolveFloatingWindowViewport as hd } from "./components/ui/floatingWindowGeometry.js";
151
+ import { startPointerSession as Ed } from "./components/ui/pointerSession.js";
152
+ import { useAttachments as Pd } from "./components/chat/hooks/useAttachments.js";
153
+ import { useAutoScroll as Ld } from "./components/chat/hooks/useAutoScroll.js";
154
+ import { useDebounce as _d } from "./hooks/useDebounce.js";
155
+ import { useDeckDrag as yd } from "./hooks/useDeckDrag.js";
156
+ import { useFileBrowserDropTarget as Od, useFileBrowserItemDrag as Wd } from "./hooks/useFileBrowserDrag.js";
157
+ import { useKeybind as Nd } from "./hooks/useKeybind.js";
158
+ import { useMediaQuery as bd } from "./hooks/useMediaQuery.js";
159
+ import { usePersisted as Ud } from "./hooks/usePersisted.js";
160
+ import { useResizeObserver as Vd } from "./hooks/useResizeObserver.js";
161
+ import { useVirtualList as zd } from "./components/chat/hooks/useVirtualList.js";
161
162
  export {
162
163
  F as Activity,
163
164
  bt as ActivityAppsMain,
@@ -626,10 +627,11 @@ export {
626
627
  Pa as createDeckService,
627
628
  um as createDefaultNotesSnapshot,
628
629
  If as createDiffWorker,
630
+ Hf as createFloatingPresence,
629
631
  Bl as createLayoutService,
630
632
  kf as createMarkdownWorker,
631
633
  Ym as createNotificationService,
632
- Hf as createSimpleContext,
634
+ Gf as createSimpleContext,
633
635
  Yp as createStreamEventBuilder,
634
636
  mt as createTerminalEditorState,
635
637
  Lt as createTerminalFullLineSuggestion,
@@ -639,15 +641,15 @@ export {
639
641
  tp as createThemeService,
640
642
  af as createViewportFromZoomAnchor,
641
643
  Pp as createWidgetRegistry,
642
- Gf as deferAfterPaint,
643
- Vf as deferNonBlocking,
644
+ Kf as deferAfterPaint,
645
+ zf as deferNonBlocking,
644
646
  st as deleteTerminalTextBackward,
645
647
  Ct as dispatchTerminalSessionKey,
646
- zf as duration,
647
- Xf as easing,
648
+ Zf as duration,
649
+ Yf as easing,
648
650
  sa as ensureSurfacePortalInteractionTracking,
649
651
  lm as estimateNotesContextMenuHeight,
650
- Zf as fadeIn,
652
+ Qf as fadeIn,
651
653
  $p as findFreePosition,
652
654
  f as floeColorTokenCategories,
653
655
  d as floeDesignTokens,
@@ -658,7 +660,7 @@ export {
658
660
  S as floeSpacingTokens,
659
661
  g as floeThemeColorVariables,
660
662
  u as floeTypographyTokens,
661
- ad as formatKeybind,
663
+ ld as formatKeybind,
662
664
  vi as getFileIcon,
663
665
  k as getFloeColorTokenValue,
664
666
  Gp as getGridCellSize,
@@ -676,17 +678,17 @@ export {
676
678
  Mf as highlightCode,
677
679
  pt as insertTerminalText,
678
680
  en as isLocalInteractionSurfaceTarget,
679
- cd as isMacLikePlatform,
681
+ md as isMacLikePlatform,
680
682
  cf as isPointInsideCanvasRect,
681
- ld as isPrimaryModKeyPressed,
683
+ sd as isPrimaryModKeyPressed,
682
684
  Qp as isStreamEvent,
683
685
  pa as isSurfacePortalMode,
684
- fd as isTypingElement,
685
- Yf as listContainer,
686
- Qf as listItem,
686
+ Td as isTypingElement,
687
+ jf as listContainer,
688
+ qf as listItem,
687
689
  lf as localToCanvasWorld,
688
- Id as lockBodyStyle,
689
- md as matchKeybind,
690
+ Cd as lockBodyStyle,
691
+ pd as matchKeybind,
690
692
  vt as matchesTerminalSuggestionPrefix,
691
693
  hm as mergeBoardBounds,
692
694
  c as mergeThemeTokenMaps,
@@ -696,16 +698,16 @@ export {
696
698
  Em as normalizeNotesSnapshot,
697
699
  at as normalizeTerminalWorkspaceProfile,
698
700
  Am as noteBucketMetrics,
699
- jf as panelResize,
700
- sd as parseKeybind,
701
+ Jf as panelResize,
702
+ fd as parseKeybind,
701
703
  yt as parseTerminalSuggestionContext,
702
704
  Vp as pixelDeltaToGridDelta,
703
- qf as popIn,
705
+ $f as popIn,
704
706
  Kp as positionToGridArea,
705
707
  fa as projectSurfacePortalPosition,
706
708
  da as projectSurfacePortalRect,
707
709
  Pm as promoteLocalItem,
708
- Cd as registerCommandContributions,
710
+ gd as registerCommandContributions,
709
711
  Dm as removeSnapshotItem,
710
712
  Lm as removeSnapshotTopic,
711
713
  Rm as removeSnapshotTrashItem,
@@ -716,7 +718,7 @@ export {
716
718
  vm as replaceSnapshotTopic,
717
719
  ym as replaceSnapshotTrashItem,
718
720
  yi as resolveFileItemIcon,
719
- ud as resolveFloatingWindowViewport,
721
+ hd as resolveFloatingWindowViewport,
720
722
  on as resolveSurfaceInteractionTargetRole,
721
723
  Ta as resolveSurfacePortalBoundaryRect,
722
724
  Ia as resolveSurfacePortalHost,
@@ -731,20 +733,20 @@ export {
731
733
  Ft as runTerminalMockCommand,
732
734
  of as sameGridPosition,
733
735
  Ha as sanitizeDisplayMode,
734
- Jf as scaleIn,
736
+ ed as scaleIn,
735
737
  Bm as screenToWorld,
736
738
  ut as setTerminalSessionInputValue,
737
739
  cn as shouldActivateWorkbenchWidgetLocalTarget,
738
- dd as shouldIgnoreHotkeys,
739
- $f as sidebarVariants,
740
- ed as slideInFromBottom,
741
- od as slideInFromLeft,
742
- rd as slideInFromRight,
743
- td as slideInFromTop,
740
+ Id as shouldIgnoreHotkeys,
741
+ od as sidebarVariants,
742
+ rd as slideInFromBottom,
743
+ td as slideInFromLeft,
744
+ id as slideInFromRight,
745
+ nd as slideInFromTop,
744
746
  zp as snapToGrid,
745
- id as springConfig,
747
+ ad as springConfig,
746
748
  gc as startHotInteraction,
747
- hd as startPointerSession,
749
+ Ed as startPointerSession,
748
750
  kt as submitTerminalSession,
749
751
  s as syncThemeTokenOverrides,
750
752
  Bt as terminalCommandTokenSuggestionProvider,
@@ -756,36 +758,36 @@ export {
756
758
  Af as terminateMarkdownWorker,
757
759
  vf as terminateMermaidWorker,
758
760
  Nf as terminateShikiWorker,
759
- Ed as useAttachments,
760
- Pd as useAutoScroll,
761
+ Pd as useAttachments,
762
+ Ld as useAutoScroll,
761
763
  Tn as useChatContext,
762
764
  wf as useCodeHighlight,
763
765
  Wn as useCommand,
764
- Sd as useCommandContributions,
766
+ ud as useCommandContributions,
765
767
  Hn as useComponentContextFactory,
766
768
  Un as useComponentRegistry,
767
769
  yp as useCurrentWidgetId,
768
- Ld as useDebounce,
770
+ _d as useDebounce,
769
771
  Da as useDeck,
770
- _d as useDeckDrag,
772
+ yd as useDeckDrag,
771
773
  yc as useFileBrowser,
772
774
  Rc as useFileBrowserDrag,
773
- yd as useFileBrowserDropTarget,
774
- Bd as useFileBrowserItemDrag,
775
+ Od as useFileBrowserDropTarget,
776
+ Wd as useFileBrowserItemDrag,
775
777
  ea as useFloeConfig,
776
778
  fl as useFormSubmitting,
777
- Wd as useKeybind,
779
+ Nd as useKeybind,
778
780
  Ol as useLayout,
779
- Nd as useMediaQuery,
781
+ bd as useMediaQuery,
780
782
  yf as useMermaid,
781
783
  Qm as useNotification,
782
784
  Gn as useOptionalComponentRegistry,
783
- bd as usePersisted,
784
- Ud as useResizeObserver,
785
+ Ud as usePersisted,
786
+ Vd as useResizeObserver,
785
787
  oa as useResolvedFloeConfig,
786
788
  ip as useTheme,
787
789
  Cp as useViewActivation,
788
- Vd as useVirtualList,
790
+ zd as useVirtualList,
789
791
  Dp as useWidgetRegistry,
790
792
  Bp as useWidgetState,
791
793
  Op as useWidgetStateContext,