@floegence/floe-webapp-core 0.86.60 → 0.86.62

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.
Files changed (103) hide show
  1. package/dist/components/chat/blocks/BlockRenderer.js +1 -1
  2. package/dist/components/chat/blocks/CodeDiffBlock.js +56 -56
  3. package/dist/components/chat/blocks/ImageBlock.js +1 -1
  4. package/dist/components/chat/blocks/ToolCallBlock.js +57 -57
  5. package/dist/components/chat/status/ConnectionStatus.js +10 -10
  6. package/dist/components/deck/DeckCell.js +25 -25
  7. package/dist/components/deck/DeckContextMenu.js +20 -20
  8. package/dist/components/deck/DeckGrid.js +1 -1
  9. package/dist/components/deck/DeckTopBar.js +42 -42
  10. package/dist/components/deck/DropZonePreview.js +6 -6
  11. package/dist/components/deck/LayoutSelector.js +53 -53
  12. package/dist/components/deck/WidgetFrame.js +28 -28
  13. package/dist/components/deck/WidgetPalette.js +31 -31
  14. package/dist/components/deck/WidgetTypeSwitcher.js +31 -31
  15. package/dist/components/file-browser/Breadcrumb.js +27 -27
  16. package/dist/components/file-browser/DirectoryTree.js +15 -15
  17. package/dist/components/file-browser/DragPreview.js +58 -58
  18. package/dist/components/file-browser/FileBrowser.js +17 -17
  19. package/dist/components/file-browser/FileBrowserStatusBar.js +18 -18
  20. package/dist/components/file-browser/FileBrowserToolbar.js +27 -27
  21. package/dist/components/file-browser/FileContextMenu.js +47 -47
  22. package/dist/components/file-browser/FileGridView.js +53 -51
  23. package/dist/components/file-browser/FileItemDecorations.js +30 -27
  24. package/dist/components/file-browser/FileListView.js +114 -114
  25. package/dist/components/icons/index.js +1357 -1357
  26. package/dist/components/launchpad/Launchpad.js +14 -14
  27. package/dist/components/launchpad/LaunchpadGrid.js +7 -7
  28. package/dist/components/launchpad/LaunchpadItem.js +11 -11
  29. package/dist/components/launchpad/LaunchpadPagination.js +16 -16
  30. package/dist/components/launchpad/LaunchpadSearch.js +9 -9
  31. package/dist/components/layout/ActivityBar.js +52 -55
  32. package/dist/components/layout/BottomBar.js +17 -17
  33. package/dist/components/layout/MobileNavigationPanel.js +36 -36
  34. package/dist/components/layout/MobileTabBar.js +39 -39
  35. package/dist/components/layout/Panel.js +16 -16
  36. package/dist/components/layout/ResizeHandle.js +19 -19
  37. package/dist/components/layout/Shell.js +50 -50
  38. package/dist/components/layout/Sidebar.js +37 -36
  39. package/dist/components/layout/SidebarPane.js +19 -19
  40. package/dist/components/layout/TopBar.js +16 -16
  41. package/dist/components/layout/TopBarIconButton.js +15 -15
  42. package/dist/components/loading/LoadingOverlay.js +9 -9
  43. package/dist/components/loading/Skeleton.js +11 -11
  44. package/dist/components/ui/Button.js +36 -36
  45. package/dist/components/ui/Card.d.ts +11 -62
  46. package/dist/components/ui/Card.js +64 -237
  47. package/dist/components/ui/Checkbox.js +79 -79
  48. package/dist/components/ui/CommandPalette.js +56 -55
  49. package/dist/components/ui/Dialog.js +91 -93
  50. package/dist/components/ui/DirectoryInput.js +22 -22
  51. package/dist/components/ui/DirectoryPicker.js +8 -8
  52. package/dist/components/ui/Dropdown.js +89 -87
  53. package/dist/components/ui/FeedbackIndicator.js +57 -57
  54. package/dist/components/ui/FileOpenPicker.js +37 -37
  55. package/dist/components/ui/FileSavePicker.js +41 -41
  56. package/dist/components/ui/FloatingWindow.js +213 -205
  57. package/dist/components/ui/Form.js +76 -76
  58. package/dist/components/ui/HighlightBlock.js +14 -14
  59. package/dist/components/ui/Input.js +106 -109
  60. package/dist/components/ui/Pagination.js +86 -86
  61. package/dist/components/ui/Popover.d.ts +33 -0
  62. package/dist/components/ui/Popover.js +133 -0
  63. package/dist/components/ui/ProcessingIndicator.js +344 -345
  64. package/dist/components/ui/Progress.js +94 -97
  65. package/dist/components/ui/QuoteBlock.js +25 -25
  66. package/dist/components/ui/Radio.js +91 -91
  67. package/dist/components/ui/SegmentedControl.js +24 -24
  68. package/dist/components/ui/Stepper.js +68 -60
  69. package/dist/components/ui/Switch.js +25 -25
  70. package/dist/components/ui/Tabs.js +99 -87
  71. package/dist/components/ui/Tag.js +12 -9
  72. package/dist/components/ui/Tooltip.js +30 -30
  73. package/dist/components/ui/floatingPresence.d.ts +7 -0
  74. package/dist/components/ui/floatingPresence.js +80 -39
  75. package/dist/components/ui/index.d.ts +2 -1
  76. package/dist/components/ui/picker/DirectoryFavorites.js +27 -27
  77. package/dist/components/ui/picker/PickerBase.js +107 -107
  78. package/dist/context/NotificationContext.js +4 -4
  79. package/dist/context/ThemeContext.js +71 -70
  80. package/dist/floe.css +205 -43
  81. package/dist/full.js +650 -652
  82. package/dist/language.css +320 -0
  83. package/dist/primitives.css +23 -17
  84. package/dist/standalone.css +1 -0
  85. package/dist/styles/themes/classicSemanticTokens.d.ts +122 -122
  86. package/dist/styles/themes/classicSemanticTokens.js +140 -138
  87. package/dist/styles/themes/index.d.ts +3 -1
  88. package/dist/styles/themes/index.js +10 -10
  89. package/dist/styles/themes/presets.d.ts +2 -2
  90. package/dist/styles/themes/presets.js +34 -34
  91. package/dist/styles/tokens.d.ts +152 -68
  92. package/dist/styles/tokens.js +87 -49
  93. package/dist/styles.css +1 -1
  94. package/dist/surface.css +161 -116
  95. package/dist/themes/dark.css +64 -64
  96. package/dist/themes/light.css +64 -64
  97. package/dist/ui.css +171 -255
  98. package/dist/ui.js +176 -178
  99. package/dist/utils/hotInteraction.d.ts +7 -0
  100. package/dist/utils/hotInteraction.js +12 -12
  101. package/dist/widgets/TerminalWidget.js +28 -28
  102. package/dist/workbench-composition.css +15 -15
  103. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
- import { createComponent as r, Dynamic as V, insert as d, use as j, effect as P, setStyleProperty as G, memo as k, className as A, setAttribute as w, mergeProps as ze, template as g, delegateEvents as Fe } from "solid-js/web";
2
- import { createSignal as M, onMount as He, onCleanup as Ee, createEffect as B, createMemo as x, For as J, Show as h, batch as Ve } from "solid-js";
1
+ import { createComponent as r, Dynamic as V, insert as d, use as j, effect as P, setStyleProperty as G, memo as k, className as A, setAttribute as w, mergeProps as ze, template as h, delegateEvents as Fe } from "solid-js/web";
2
+ import { createSignal as M, onMount as He, onCleanup as Ee, createEffect as B, createMemo as I, For as J, Show as g, batch as Ve } from "solid-js";
3
3
  import { observeViewport as _e } from "../../viewport.js";
4
4
  import { useLayout as De } from "../../context/LayoutContext.js";
5
5
  import { useResolvedFloeConfig as qe } from "../../context/FloeConfigContext.js";
@@ -9,7 +9,7 @@ import { useResizeObserver as je } from "../../hooks/useResizeObserver.js";
9
9
  import { Dialog as Ge } from "../ui/Dialog.js";
10
10
  import { DialogPlacementProvider as Je } from "../ui/DialogPlacementContext.js";
11
11
  import { useOverlayMask as Qe } from "../../hooks/useOverlayMask.js";
12
- import { cn as I } from "../../utils/cn.js";
12
+ import { cn as x } from "../../utils/cn.js";
13
13
  import { deferAfterPaint as Xe, deferNonBlocking as Ye } from "../../utils/defer.js";
14
14
  import { useComponentRegistry as Ze } from "../../context/ComponentRegistry.js";
15
15
  import { Sidebar as et } from "./Sidebar.js";
@@ -24,15 +24,15 @@ import { resolveMobileTabActiveId as lt, resolveMobileTabSelect as st } from "./
24
24
  import { KeepAliveStack as dt } from "./KeepAliveStack.js";
25
25
  import { resolveShellSidebarActiveTabChange as ct } from "./sidebarVisibilityMotion.js";
26
26
  import { createUIFirstSelection as bt } from "../../utils/uiFirstSelection.js";
27
- var de = /* @__PURE__ */ g('<div class="flex items-center gap-2">'), ut = /* @__PURE__ */ g('<div class="h-full min-h-0 overflow-auto">'), mt = /* @__PURE__ */ g('<div class="flex shrink-0 min-h-0">'), ft = /* @__PURE__ */ g('<div class="h-full min-h-0"style=max-width:100%>'), vt = /* @__PURE__ */ g("<div data-floe-shell-slot=mobile-sidebar-backdrop>"), ht = /* @__PURE__ */ g('<div data-floe-shell-slot=mobile-sidebar-drawer tabindex=-1 role=dialog aria-modal=true><div class="h-full overflow-auto overscroll-contain">'), gt = /* @__PURE__ */ g("<div data-floe-shell-slot=terminal-panel style=border-top-color:var(--terminal-panel-border)>"), St = /* @__PURE__ */ g('<div data-floe-shell-slot=mobile-accessory class="relative shrink-0">'), yt = /* @__PURE__ */ g('<div data-floe-shell><a></a><div class="relative flex min-h-0 flex-1 flex-col overflow-hidden"data-floe-shell-slot=mobile-content-boundary><div data-floe-shell-slot=main-layout class="flex-1 min-h-0 flex overflow-hidden relative"><div data-floe-shell-slot=content-area><main data-floe-shell-slot=main tabindex=-1>');
27
+ var de = /* @__PURE__ */ h('<div class="flex items-center gap-2">'), ut = /* @__PURE__ */ h('<div class="h-full min-h-0 overflow-auto">'), ft = /* @__PURE__ */ h('<div class="flex shrink-0 min-h-0">'), mt = /* @__PURE__ */ h('<div class="h-full min-h-0"style=max-width:100%>'), vt = /* @__PURE__ */ h("<div data-floe-shell-slot=mobile-sidebar-backdrop>"), gt = /* @__PURE__ */ h('<div data-floe-shell-slot=mobile-sidebar-drawer tabindex=-1 role=dialog aria-modal=true><div class="h-full overflow-auto overscroll-contain">'), ht = /* @__PURE__ */ h("<div data-floe-shell-slot=terminal-panel style=border-top-color:var(--terminal-panel-border)>"), St = /* @__PURE__ */ h('<div data-floe-shell-slot=mobile-accessory class="relative shrink-0">'), yt = /* @__PURE__ */ h('<div data-floe-shell><a></a><div class="relative flex min-h-0 flex-1 flex-col overflow-hidden"data-floe-shell-slot=mobile-content-boundary><div data-floe-shell-slot=main-layout class="flex-1 min-h-0 flex overflow-hidden relative"><div data-floe-shell-slot=content-area><main data-floe-shell-slot=main tabindex=-1>');
28
28
  function Ut(i) {
29
29
  const [ce, be] = M(!1);
30
30
  He(() => {
31
31
  Ee(_e(window, (e) => be(e.keyboardOpen)));
32
32
  });
33
- const o = De(), ue = qe(), l = o.isMobile, [me, fe] = M(), [ve, he] = M(), ge = je(ve), W = /* @__PURE__ */ new Map(), [_, L] = M(!1), [Se, ye] = M(!1), Ce = Ue({
34
- container: me,
35
- sidebarWidth: () => (D() ?? o.sidebarWidth()) + (ge()?.width ?? 0),
33
+ const o = De(), ue = qe(), l = o.isMobile, [fe, me] = M(), [ve, ge] = M(), he = je(ve), W = /* @__PURE__ */ new Map(), [_, L] = M(!1), [Se, ye] = M(!1), Ce = Ue({
34
+ container: fe,
35
+ sidebarWidth: () => (D() ?? o.sidebarWidth()) + (he()?.width ?? 0),
36
36
  minContentWidth: () => i.sidebarMinContentWidth ?? 0
37
37
  }), S = () => !l() && !!i.sidebarMinContentWidth && !u() && Ce() === "overlay";
38
38
  B(() => {
@@ -100,13 +100,13 @@ function Ut(i) {
100
100
  const e = o.sidebarVisibilityMotion(), a = o.sidebarVisibilityMotionRevision();
101
101
  e === "instant" && Xe(() => o.clearSidebarVisibilityMotion(a));
102
102
  });
103
- const T = x(() => i.activityItems ? i.activityItems : c ? c.sidebarItems().filter((e) => !!e.icon).filter((e) => !(l() && e.sidebar?.hiddenOnMobile)).map((e) => ({
103
+ const T = I(() => i.activityItems ? i.activityItems : c ? c.sidebarItems().filter((e) => !!e.icon).filter((e) => !(l() && e.sidebar?.hiddenOnMobile)).map((e) => ({
104
104
  id: e.id,
105
105
  icon: e.icon,
106
106
  label: e.name,
107
107
  badge: e.sidebar?.badge,
108
108
  collapseBehavior: e.sidebar?.collapseBehavior ?? (e.sidebar?.fullScreen ? "preserve" : "toggle")
109
- })) : []), Ae = x(() => T().map((e) => ({
109
+ })) : []), Ae = I(() => T().map((e) => ({
110
110
  ...e,
111
111
  buttonRef: (a) => {
112
112
  a ? W.set(e.id, a) : W.delete(e.id), e.buttonRef?.(a);
@@ -119,25 +119,25 @@ function Ut(i) {
119
119
  S() ? (e || W.get(o.sidebarActiveTab())?.focus({
120
120
  preventScroll: !0
121
121
  }), L(!e)) : o.setSidebarCollapsed(e);
122
- }, xe = x(() => u() ? [] : i.sidebarContent ? [] : c ? c.sidebarItems().filter((e) => !(l() && e.sidebar?.hiddenOnMobile)).filter((e) => e.sidebar?.fullScreen !== !0 && e.sidebar?.renderIn !== "main").map((e) => ({
122
+ }, Ie = I(() => u() ? [] : i.sidebarContent ? [] : c ? c.sidebarItems().filter((e) => !(l() && e.sidebar?.hiddenOnMobile)).filter((e) => e.sidebar?.fullScreen !== !0 && e.sidebar?.renderIn !== "main").map((e) => ({
123
123
  id: e.id,
124
124
  render: () => r(V, {
125
125
  get component() {
126
126
  return e.component;
127
127
  }
128
128
  })
129
- })) : []), Ie = (e) => {
129
+ })) : []), xe = (e) => {
130
130
  if (!u()) {
131
131
  if (i.sidebarContent) return i.sidebarContent(e);
132
132
  if (c)
133
133
  return r(dt, {
134
134
  get views() {
135
- return xe();
135
+ return Ie();
136
136
  },
137
137
  activeId: e
138
138
  });
139
139
  }
140
- }, N = x(() => u() ? !0 : c ? c.getComponent(o.sidebarActiveTab())?.sidebar?.fullScreen ?? !1 : !1), Pe = x(() => {
140
+ }, N = I(() => u() ? !0 : c ? c.getComponent(o.sidebarActiveTab())?.sidebar?.fullScreen ?? !1 : !1), Pe = I(() => {
141
141
  if (u()) return !0;
142
142
  if (!c) return !1;
143
143
  const e = c.getComponent(o.sidebarActiveTab());
@@ -146,7 +146,7 @@ function Ut(i) {
146
146
  B(() => {
147
147
  l() && N() && y(!1);
148
148
  });
149
- const Te = x(() => {
149
+ const Te = I(() => {
150
150
  if (l() || i.bottomBarMode === "hidden") return;
151
151
  if (i.bottomBarItems) return i.bottomBarItems;
152
152
  if (!c) return;
@@ -209,7 +209,7 @@ function Ut(i) {
209
209
  return;
210
210
  }
211
211
  X(e.id);
212
- }, Oe = x(() => {
212
+ }, Oe = I(() => {
213
213
  const e = i.topBarActions;
214
214
  if (!l() || (i.activityBottomItemsMobileMode ?? "hidden") !== "topBar") return e;
215
215
  const s = i.activityBottomItems ?? [];
@@ -230,7 +230,7 @@ function Ut(i) {
230
230
  }
231
231
  })
232
232
  }), e] : e;
233
- }), Re = () => u() || (S() ? !_() : o.sidebarCollapsed()), Y = () => D() ?? o.sidebarWidth(), f = () => ue.config.accessibility, We = () => {
233
+ }), Re = () => u() || (S() ? !_() : o.sidebarCollapsed()), Y = () => D() ?? o.sidebarWidth(), m = () => ue.config.accessibility, We = () => {
234
234
  q(o.sidebarWidth());
235
235
  }, Le = (e) => {
236
236
  q((a) => o.clampSidebarWidth((a ?? o.sidebarWidth()) + e));
@@ -253,7 +253,7 @@ function Ut(i) {
253
253
  });
254
254
  const pe = () => {
255
255
  if (typeof document > "u") return;
256
- const e = document.getElementById(f().mainContentId);
256
+ const e = document.getElementById(m().mainContentId);
257
257
  if (!(!e || !(e instanceof HTMLElement)))
258
258
  try {
259
259
  e.focus();
@@ -261,11 +261,11 @@ function Ut(i) {
261
261
  }
262
262
  }, U = Ke(() => (() => {
263
263
  var e = ut();
264
- return d(e, () => Ie(o.sidebarActiveTab())), e;
264
+ return d(e, () => xe(o.sidebarActiveTab())), e;
265
265
  })());
266
266
  return (() => {
267
267
  var e = yt(), a = e.firstChild, s = a.nextSibling, n = s.firstChild, b = n.firstChild, E = b.firstChild;
268
- return a.$$click = () => pe(), d(a, () => f().skipLinkLabel), d(e, r(h, {
268
+ return a.$$click = () => pe(), d(a, () => m().skipLinkLabel), d(e, r(g, {
269
269
  get when() {
270
270
  return !l() || i.topBarMobileMode !== "hidden";
271
271
  },
@@ -278,25 +278,25 @@ function Ut(i) {
278
278
  return Oe();
279
279
  },
280
280
  get ariaLabel() {
281
- return f().topBarLabel;
281
+ return m().topBarLabel;
282
282
  },
283
283
  get class() {
284
284
  return i.slotClassNames?.topBar;
285
285
  }
286
286
  });
287
287
  }
288
- }), s), j(fe, n), d(n, r(h, {
288
+ }), s), j(me, n), d(n, r(g, {
289
289
  get when() {
290
290
  return !l();
291
291
  },
292
292
  get children() {
293
- return [r(h, {
293
+ return [r(g, {
294
294
  get when() {
295
295
  return T().length > 0;
296
296
  },
297
297
  get children() {
298
- var t = mt();
299
- return j(he, t), d(t, r(at, {
298
+ var t = ft();
299
+ return j(ge, t), d(t, r(at, {
300
300
  get items() {
301
301
  return Ae();
302
302
  },
@@ -314,19 +314,19 @@ function Ut(i) {
314
314
  return u() ? void 0 : Be;
315
315
  },
316
316
  get ariaLabel() {
317
- return f().primaryNavigationLabel;
317
+ return m().primaryNavigationLabel;
318
318
  },
319
319
  get class() {
320
320
  return i.slotClassNames?.activityBar;
321
321
  }
322
322
  })), t;
323
323
  }
324
- }), r(h, {
324
+ }), r(g, {
325
325
  get when() {
326
326
  return !u();
327
327
  },
328
328
  get children() {
329
- return r(h, {
329
+ return r(g, {
330
330
  get when() {
331
331
  return S();
332
332
  },
@@ -342,7 +342,7 @@ function Ut(i) {
342
342
  return o.sidebarVisibilityMotion();
343
343
  },
344
344
  get ariaLabel() {
345
- return f().sidebarLabel;
345
+ return m().sidebarLabel;
346
346
  },
347
347
  get resizer() {
348
348
  return r(se, {
@@ -373,13 +373,13 @@ function Ut(i) {
373
373
  presentation: "side-drawer",
374
374
  drawerSide: "left",
375
375
  get title() {
376
- return f().sidebarLabel;
376
+ return m().sidebarLabel;
377
377
  },
378
378
  class: "floe-adaptive-shell-sidebar w-fit max-w-[calc(100%-48px)]",
379
379
  contentClass: "flex-1 min-h-0 overflow-hidden p-0",
380
380
  get children() {
381
- var t = ft();
382
- return d(t, r(U, {})), P((m) => G(t, "width", `${Y()}px`)), t;
381
+ var t = mt();
382
+ return d(t, r(U, {})), P((f) => G(t, "width", `${Y()}px`)), t;
383
383
  }
384
384
  });
385
385
  }
@@ -389,18 +389,18 @@ function Ut(i) {
389
389
  }
390
390
  })];
391
391
  }
392
- }), b), d(n, r(h, {
392
+ }), b), d(n, r(g, {
393
393
  get when() {
394
394
  return k(() => !!(l() && $()))() && !u();
395
395
  },
396
396
  get children() {
397
397
  return [(() => {
398
398
  var t = vt();
399
- return t.$$click = () => y(!1), P(() => A(t, I("absolute inset-0 z-40 bg-black/30 cursor-pointer", i.slotClassNames?.mobileSidebarBackdrop))), t;
399
+ return t.$$click = () => y(!1), P(() => A(t, x("absolute inset-0 z-40 bg-black/30 cursor-pointer", i.slotClassNames?.mobileSidebarBackdrop))), t;
400
400
  })(), (() => {
401
- var t = ht(), m = t.firstChild, C = K;
402
- return typeof C == "function" ? j(C, t) : K = t, d(m, r(U, {})), P((v) => {
403
- var O = I("absolute left-0 top-0 bottom-0 z-50", "w-72 max-w-[80vw]", "bg-sidebar border-r border-sidebar-border", "shadow-xl", "animate-in slide-in-from-left duration-200", i.slotClassNames?.mobileSidebarDrawer), R = f().sidebarLabel;
401
+ var t = gt(), f = t.firstChild, C = K;
402
+ return typeof C == "function" ? j(C, t) : K = t, d(f, r(U, {})), P((v) => {
403
+ var O = x("absolute left-0 top-0 bottom-0 z-50", "w-72 max-w-[80vw]", "bg-sidebar border-r border-sidebar-border", "shadow-[var(--floe-elevation-float-strong)]", "animate-in slide-in-from-left duration-[var(--floe-duration-base)]", i.slotClassNames?.mobileSidebarDrawer), R = m().sidebarLabel;
404
404
  return O !== v.e && A(t, v.e = O), R !== v.t && w(t, "aria-label", v.t = R), v;
405
405
  }, {
406
406
  e: void 0,
@@ -408,24 +408,24 @@ function Ut(i) {
408
408
  }), t;
409
409
  })()];
410
410
  }
411
- }), b), d(E, () => i.children), d(b, r(h, {
411
+ }), b), d(E, () => i.children), d(b, r(g, {
412
412
  get when() {
413
413
  return k(() => !!(!l() && o.terminalOpened()))() && i.terminalPanel;
414
414
  },
415
415
  get children() {
416
- var t = gt();
416
+ var t = ht();
417
417
  return d(t, r(se, {
418
418
  direction: "vertical",
419
- onResize: (m) => o.setTerminalHeight(o.terminalHeight() - m)
420
- }), null), d(t, () => i.terminalPanel, null), P((m) => {
421
- var C = I("relative shrink-0 border-t border-border bg-terminal-background overflow-hidden", i.slotClassNames?.terminalPanel), v = `${o.terminalHeight()}px`;
422
- return C !== m.e && A(t, m.e = C), v !== m.t && G(t, "height", m.t = v), m;
419
+ onResize: (f) => o.setTerminalHeight(o.terminalHeight() - f)
420
+ }), null), d(t, () => i.terminalPanel, null), P((f) => {
421
+ var C = x("relative shrink-0 border-t border-[var(--floe-line)] bg-terminal-background overflow-hidden", i.slotClassNames?.terminalPanel), v = `${o.terminalHeight()}px`;
422
+ return C !== f.e && A(t, f.e = C), v !== f.t && G(t, "height", f.t = v), f;
423
423
  }, {
424
424
  e: void 0,
425
425
  t: void 0
426
426
  }), t;
427
427
  }
428
- }), null), d(s, r(h, {
428
+ }), null), d(s, r(g, {
429
429
  get when() {
430
430
  return k(() => !!l())() && i.mobileAccessory;
431
431
  },
@@ -433,7 +433,7 @@ function Ut(i) {
433
433
  var t = St();
434
434
  return d(t, () => i.mobileAccessory), P(() => t.inert = p()), t;
435
435
  }
436
- }), null), d(s, r(h, {
436
+ }), null), d(s, r(g, {
437
437
  get when() {
438
438
  return k(() => !!l())() && i.mobileNavigationPanel;
439
439
  },
@@ -445,7 +445,7 @@ function Ut(i) {
445
445
  }
446
446
  }));
447
447
  }
448
- }), null), d(e, r(h, {
448
+ }), null), d(e, r(g, {
449
449
  get when() {
450
450
  return k(() => !l())() && i.bottomBarMode !== "hidden";
451
451
  },
@@ -462,7 +462,7 @@ function Ut(i) {
462
462
  }
463
463
  });
464
464
  }
465
- }), null), d(e, r(h, {
465
+ }), null), d(e, r(g, {
466
466
  get when() {
467
467
  return k(() => !!l())() && (T().length > 0 || i.mobileNavigationActions?.length);
468
468
  },
@@ -493,7 +493,7 @@ function Ut(i) {
493
493
  },
494
494
  onSelect: X,
495
495
  get ariaLabel() {
496
- return f().mobileNavigationLabel;
496
+ return m().mobileNavigationLabel;
497
497
  },
498
498
  get class() {
499
499
  return i.slotClassNames?.mobileTabBar;
@@ -501,7 +501,7 @@ function Ut(i) {
501
501
  });
502
502
  }
503
503
  }), null), P((t) => {
504
- var m = i.fillParent ? "100%" : void 0, C = I(
504
+ var f = i.fillParent ? "100%" : void 0, C = x(
505
505
  // Use dvh when supported to avoid mobile browser UI causing layout jumps.
506
506
  "h-screen h-[100dvh] w-full flex flex-col overflow-hidden",
507
507
  "bg-background text-foreground",
@@ -510,8 +510,8 @@ function Ut(i) {
510
510
  l() && i.topBarMobileMode === "hidden" && "safe-top",
511
511
  i.slotClassNames?.root,
512
512
  i.class
513
- ), v = `#${f().mainContentId}`, O = I("fixed left-3 top-3 z-[120] rounded-md bg-primary px-3 py-2 text-xs font-medium text-primary-foreground shadow-md", "transition-transform duration-150 motion-reduce:transition-none", "-translate-y-[200%] focus:translate-y-0"), R = p(), Z = p() ? "true" : void 0, ee = i.sidebarMinContentWidth ? "true" : void 0, te = i.sidebarMinContentWidth ? "true" : void 0, ie = S() ? "overlay" : "inline", re = Se(), ne = I("flex-1 min-w-0 flex flex-col overflow-hidden", i.slotClassNames?.contentArea), oe = I("flex-1 min-h-0 overflow-auto overscroll-contain", i.slotClassNames?.main), ae = f().mainContentId, le = f().mainLabel;
514
- return m !== t.e && G(e, "height", t.e = m), C !== t.t && A(e, t.t = C), v !== t.a && w(a, "href", t.a = v), O !== t.o && A(a, t.o = O), R !== t.i && (n.inert = t.i = R), Z !== t.n && w(n, "aria-hidden", t.n = Z), ee !== t.s && w(n, "data-floe-dialog-surface-host", t.s = ee), te !== t.h && w(n, "data-floe-surface-portal-layer", t.h = te), ie !== t.r && w(n, "data-floe-shell-sidebar-presentation", t.r = ie), re !== t.d && (b.inert = t.d = re), ne !== t.l && A(b, t.l = ne), oe !== t.u && A(E, t.u = oe), ae !== t.c && w(E, "id", t.c = ae), le !== t.w && w(E, "aria-label", t.w = le), t;
513
+ ), v = `#${m().mainContentId}`, O = x("fixed left-3 top-3 z-[120] rounded-md bg-primary px-3 py-2 text-xs font-medium text-primary-foreground shadow-[var(--floe-elevation-raised)]", "transition-transform duration-[var(--floe-duration-fast)] motion-reduce:transition-none", "-translate-y-[200%] focus:translate-y-0"), R = p(), Z = p() ? "true" : void 0, ee = i.sidebarMinContentWidth ? "true" : void 0, te = i.sidebarMinContentWidth ? "true" : void 0, ie = S() ? "overlay" : "inline", re = Se(), ne = x("flex-1 min-w-0 flex flex-col overflow-hidden", i.slotClassNames?.contentArea), oe = x("flex-1 min-h-0 overflow-auto overscroll-contain", i.slotClassNames?.main), ae = m().mainContentId, le = m().mainLabel;
514
+ return f !== t.e && G(e, "height", t.e = f), C !== t.t && A(e, t.t = C), v !== t.a && w(a, "href", t.a = v), O !== t.o && A(a, t.o = O), R !== t.i && (n.inert = t.i = R), Z !== t.n && w(n, "aria-hidden", t.n = Z), ee !== t.s && w(n, "data-floe-dialog-surface-host", t.s = ee), te !== t.h && w(n, "data-floe-surface-portal-layer", t.h = te), ie !== t.r && w(n, "data-floe-shell-sidebar-presentation", t.r = ie), re !== t.d && (b.inert = t.d = re), ne !== t.l && A(b, t.l = ne), oe !== t.u && A(E, t.u = oe), ae !== t.c && w(E, "id", t.c = ae), le !== t.w && w(E, "aria-label", t.w = le), t;
515
515
  }, {
516
516
  e: void 0,
517
517
  t: void 0,
@@ -1,14 +1,14 @@
1
- import { insert as l, effect as s, setAttribute as f, className as c, setStyleProperty as u, memo as w, template as d, delegateEvents as S } from "solid-js/web";
1
+ import { insert as n, effect as d, setAttribute as f, className as s, setStyleProperty as u, memo as $, template as c, delegateEvents as _ } from "solid-js/web";
2
2
  import "solid-js";
3
3
  import { cn as v } from "../../utils/cn.js";
4
- var k = /* @__PURE__ */ d('<aside data-floe-shell-slot=sidebar data-floe-geometry-surface=shell-sidebar><div class="flex-1 overflow-auto overscroll-contain">'), _ = /* @__PURE__ */ d("<div>"), C = /* @__PURE__ */ d("<section><div class=flex-1>"), I = /* @__PURE__ */ d('<div class="flex items-center justify-between px-2.5 py-2 text-[11px] font-semibold uppercase tracking-wider text-muted-foreground/60"><span>'), L = /* @__PURE__ */ d('<button type=button><span class="flex-1 truncate text-left">'), M = /* @__PURE__ */ d('<span class="flex-shrink-0 w-4 h-4 opacity-60">');
5
- function E(e) {
6
- const t = () => e.collapsed ?? !1, a = () => e.width ?? 350, n = () => e.visibilityMotion ?? "animated";
4
+ var S = /* @__PURE__ */ c('<aside data-floe-shell-slot=sidebar data-floe-geometry-surface=shell-sidebar><div class="flex-1 overflow-auto overscroll-contain">'), k = /* @__PURE__ */ c("<div>"), C = /* @__PURE__ */ c("<section><div class=flex-1>"), q = /* @__PURE__ */ c('<div class="flex items-center justify-between px-2.5 py-2 text-caption font-semibold uppercase tracking-wider text-[var(--floe-ink-quiet)]"><span>'), I = /* @__PURE__ */ c('<button type=button data-floe-interactive=row><span class="flex-1 truncate text-left">'), L = /* @__PURE__ */ c("<span>");
5
+ function A(e) {
6
+ const t = () => e.collapsed ?? !1, a = () => e.width ?? 350, l = () => e.visibilityMotion ?? "animated";
7
7
  return (() => {
8
- var i = k(), o = i.firstChild;
9
- return l(o, () => e.children), l(i, () => e.resizer, null), s((r) => {
10
- var b = n(), h = v("relative h-full flex flex-col shrink-0 min-h-0", "bg-sidebar text-sidebar-foreground", "border-r border-sidebar-border", "overflow-hidden", n() === "animated" && "transition-[width] duration-150 ease-out", e.class), m = t() ? "0px" : `${a()}px`, x = t() ? "hidden" : "visible", g = t() ? "0px" : void 0, y = e.ariaLabel, $ = t() ? "true" : void 0;
11
- return b !== r.e && f(i, "data-floe-sidebar-visibility-motion", r.e = b), h !== r.t && c(i, r.t = h), m !== r.a && u(i, "width", r.a = m), x !== r.o && u(i, "visibility", r.o = x), g !== r.i && u(i, "border-right-width", r.i = g), y !== r.n && f(i, "aria-label", r.n = y), $ !== r.s && f(i, "aria-hidden", r.s = $), r;
8
+ var i = S(), o = i.firstChild;
9
+ return n(o, () => e.children), n(i, () => e.resizer, null), d((r) => {
10
+ var b = l(), h = v("relative h-full flex flex-col shrink-0 min-h-0", "bg-sidebar text-sidebar-foreground", "border-r border-sidebar-border", "overflow-hidden", l() === "animated" && "transition-[width] duration-[var(--floe-duration-fast)] ease-out", e.class), m = t() ? "0px" : `${a()}px`, x = t() ? "hidden" : "visible", g = t() ? "0px" : void 0, w = e.ariaLabel, y = t() ? "true" : void 0;
11
+ return b !== r.e && f(i, "data-floe-sidebar-visibility-motion", r.e = b), h !== r.t && s(i, r.t = h), m !== r.a && u(i, "width", r.a = m), x !== r.o && u(i, "visibility", r.o = x), g !== r.i && u(i, "border-right-width", r.i = g), w !== r.n && f(i, "aria-label", r.n = w), y !== r.s && f(i, "aria-hidden", r.s = y), r;
12
12
  }, {
13
13
  e: void 0,
14
14
  t: void 0,
@@ -20,53 +20,54 @@ function E(e) {
20
20
  }), i;
21
21
  })();
22
22
  }
23
- function N(e) {
23
+ function E(e) {
24
24
  return (() => {
25
- var t = _();
26
- return l(t, () => e.children), s(() => c(t, v("p-2.5 space-y-3", e.class))), t;
25
+ var t = k();
26
+ return n(t, () => e.children), d(() => s(t, v("p-2.5 space-y-3", e.class))), t;
27
27
  })();
28
28
  }
29
- function P(e) {
29
+ function N(e) {
30
30
  return (() => {
31
- var t = _();
32
- return l(t, () => e.children), s(() => c(t, v("space-y-0.5", e.class))), t;
31
+ var t = k();
32
+ return n(t, () => e.children), d(() => s(t, v("space-y-0.5", e.class))), t;
33
33
  })();
34
34
  }
35
- function q(e) {
35
+ function P(e) {
36
36
  return (() => {
37
37
  var t = C(), a = t.firstChild;
38
- return l(t, (() => {
39
- var n = w(() => !!e.title);
40
- return () => n() && (() => {
41
- var i = I(), o = i.firstChild;
42
- return l(o, () => e.title), l(i, () => e.actions, null), i;
38
+ return n(t, (() => {
39
+ var l = $(() => !!e.title);
40
+ return () => l() && (() => {
41
+ var i = q(), o = i.firstChild;
42
+ return n(o, () => e.title), n(i, () => e.actions, null), i;
43
43
  })();
44
- })(), a), l(a, () => e.children), s(() => c(t, v("flex flex-col", e.class))), t;
44
+ })(), a), n(a, () => e.children), d(() => s(t, v("flex flex-col", e.class))), t;
45
45
  })();
46
46
  }
47
47
  function B(e) {
48
48
  return (() => {
49
- var t = L(), a = t.firstChild;
50
- return t.$$click = () => e.onClick?.(), l(t, (() => {
51
- var n = w(() => !!e.icon);
52
- return () => n() && (() => {
53
- var i = M();
54
- return l(i, () => e.icon), i;
49
+ var t = I(), a = t.firstChild;
50
+ return t.$$click = () => e.onClick?.(), n(t, (() => {
51
+ var l = $(() => !!e.icon);
52
+ return () => l() && (() => {
53
+ var i = L();
54
+ return n(i, () => e.icon), d(() => s(i, v("flex-shrink-0 w-4 h-4 transition-colors duration-[var(--floe-duration-fast)] ease-[var(--floe-ease-out)]", e.active ? "text-[var(--floe-ink-soft)]" : "text-[var(--floe-ink-quiet)] group-hover:text-[var(--floe-ink)]"))), i;
55
55
  })();
56
- })(), a), l(a, () => e.children), s((n) => {
57
- var i = v("w-full min-h-[var(--floe-row-height)] flex items-center gap-2 px-2.5 py-1 text-[length:var(--floe-type-control)] leading-[var(--floe-line-control)] cursor-pointer", "transition-colors duration-75", "hover:bg-sidebar-accent/80 hover:text-sidebar-accent-foreground", "focus:outline-none focus-visible:ring-1 focus-visible:ring-inset focus-visible:ring-sidebar-ring", e.active && "bg-sidebar-accent text-sidebar-accent-foreground font-medium", e.class), o = e.indent ? `${10 + e.indent * 10}px` : void 0;
58
- return i !== n.e && c(t, n.e = i), o !== n.t && u(t, "padding-left", n.t = o), n;
56
+ })(), a), n(a, () => e.children), d((l) => {
57
+ var i = e.active ? "true" : void 0, o = v("group w-full min-h-[var(--floe-row-height)] flex items-center gap-2 pl-2.5 pr-2 mx-1 rounded-sm", "text-[length:var(--floe-type-control)] leading-[var(--floe-line-control)] cursor-pointer", "text-[var(--floe-ink-soft)]", "focus:outline-none focus-visible:ring-1 focus-visible:ring-inset focus-visible:ring-ring", e.active && "text-foreground font-medium", e.class), r = e.indent ? `${10 + e.indent * 10}px` : void 0;
58
+ return i !== l.e && f(t, "data-selected", l.e = i), o !== l.t && s(t, l.t = o), r !== l.a && u(t, "padding-left", l.a = r), l;
59
59
  }, {
60
60
  e: void 0,
61
- t: void 0
61
+ t: void 0,
62
+ a: void 0
62
63
  }), t;
63
64
  })();
64
65
  }
65
- S(["click"]);
66
+ _(["click"]);
66
67
  export {
67
- E as Sidebar,
68
- N as SidebarContent,
68
+ A as Sidebar,
69
+ E as SidebarContent,
69
70
  B as SidebarItem,
70
- P as SidebarItemList,
71
- q as SidebarSection
71
+ N as SidebarItemList,
72
+ P as SidebarSection
72
73
  };
@@ -1,43 +1,43 @@
1
- import { insert as r, createComponent as o, use as E, effect as S, className as d, setStyleProperty as _, setAttribute as f, template as a, delegateEvents as L } from "solid-js/web";
2
- import { Show as s } from "solid-js";
1
+ import { insert as o, createComponent as r, use as E, effect as S, className as d, setStyleProperty as _, setAttribute as b, template as s, delegateEvents as L } from "solid-js/web";
2
+ import { Show as a } from "solid-js";
3
3
  import { useLayout as O } from "../../context/LayoutContext.js";
4
4
  import { cn as c } from "../../utils/cn.js";
5
5
  import { ResizeHandle as P } from "./ResizeHandle.js";
6
- var H = /* @__PURE__ */ a('<div class="min-w-0 flex items-center gap-1.5">'), N = /* @__PURE__ */ a('<button type=button class="flex items-center justify-center w-5 h-5 rounded cursor-pointer hover:bg-sidebar-accent/80 transition-colors focus:outline-none focus-visible:ring-1 focus-visible:ring-sidebar-ring focus-visible:ring-inset"aria-label="Close sidebar"><svg xmlns=http://www.w3.org/2000/svg viewBox="0 0 24 24"fill=none stroke=currentColor stroke-width=2 stroke-linecap=round stroke-linejoin=round class="w-3.5 h-3.5"><path d="M18 6 6 18"></path><path d="m6 6 12 12">'), q = /* @__PURE__ */ a('<div class="flex min-w-0 items-center gap-1.5">'), D = /* @__PURE__ */ a('<aside data-floe-geometry-surface=sidebar-pane><div><div class="flex items-center justify-between px-3 py-2 border-b border-sidebar-border"><span class="text-[11px] font-semibold uppercase tracking-wider text-muted-foreground/60"></span></div><div>'), F = /* @__PURE__ */ a("<div>");
6
+ var q = /* @__PURE__ */ s('<div class="min-w-0 flex items-center gap-1.5">'), H = /* @__PURE__ */ s('<button type=button class="flex items-center justify-center w-5 h-5 rounded-xs cursor-pointer hover:bg-[var(--floe-state-hover)] focus:outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-inset"aria-label="Close sidebar"><svg xmlns=http://www.w3.org/2000/svg viewBox="0 0 24 24"fill=none stroke=currentColor stroke-width=2 stroke-linecap=round stroke-linejoin=round class="w-3.5 h-3.5"><path d="M18 6 6 18"></path><path d="m6 6 12 12">'), N = /* @__PURE__ */ s('<div class="flex min-w-0 items-center gap-1.5">'), D = /* @__PURE__ */ s('<aside data-floe-geometry-surface=sidebar-pane><div><div class="flex items-center justify-between px-3 py-2 border-b border-sidebar-border"><span class="text-caption font-semibold uppercase tracking-wider text-[var(--floe-ink-quiet)]"></span></div><div>'), F = /* @__PURE__ */ s("<div>");
7
7
  function T(t) {
8
- const A = O(), m = () => A.isMobile(), g = () => t.width ?? 240, u = () => t.open ?? !0, l = () => m() && t.mobileOverlay !== !1 && u(), w = () => l() && typeof t.onClose == "function", B = () => l() && t.mobileBackdrop !== !1 && typeof t.onClose == "function", M = () => t.resizable && u() && !m() && typeof t.onResize == "function";
8
+ const A = O(), m = () => A.isMobile(), w = () => t.width ?? 240, u = () => t.open ?? !0, l = () => m() && t.mobileOverlay !== !1 && u(), g = () => l() && typeof t.onClose == "function", B = () => l() && t.mobileBackdrop !== !1 && typeof t.onClose == "function", M = () => t.resizable && u() && !m() && typeof t.onResize == "function";
9
9
  return [(() => {
10
- var i = D(), h = i.firstChild, v = h.firstChild, j = v.firstChild, b = v.nextSibling;
11
- return r(j, () => t.title), r(v, o(s, {
10
+ var i = D(), v = i.firstChild, f = v.firstChild, j = f.firstChild, h = f.nextSibling;
11
+ return o(j, () => t.title), o(f, r(a, {
12
12
  get when() {
13
- return t.headerActions || w();
13
+ return t.headerActions || g();
14
14
  },
15
15
  get children() {
16
- var e = q();
17
- return r(e, o(s, {
16
+ var e = N();
17
+ return o(e, r(a, {
18
18
  get when() {
19
19
  return t.headerActions;
20
20
  },
21
21
  get children() {
22
- var n = H();
23
- return r(n, () => t.headerActions), n;
22
+ var n = q();
23
+ return o(n, () => t.headerActions), n;
24
24
  }
25
- }), null), r(e, o(s, {
25
+ }), null), o(e, r(a, {
26
26
  get when() {
27
- return w();
27
+ return g();
28
28
  },
29
29
  get children() {
30
- var n = N();
30
+ var n = H();
31
31
  return n.$$click = () => t.onClose?.(), n;
32
32
  }
33
33
  }), null), e;
34
34
  }
35
- }), null), E((e) => t.bodyRef?.(e), b), r(b, () => t.children), r(i, o(s, {
35
+ }), null), E((e) => t.bodyRef?.(e), h), o(h, () => t.children), o(i, r(a, {
36
36
  get when() {
37
37
  return M();
38
38
  },
39
39
  get children() {
40
- return o(P, {
40
+ return r(P, {
41
41
  direction: "horizontal",
42
42
  onResize: (e) => t.onResize?.(e),
43
43
  get onResizeStart() {
@@ -49,8 +49,8 @@ function T(t) {
49
49
  });
50
50
  }
51
51
  }), null), S((e) => {
52
- var n = c("flex-shrink-0 border-r border-border bg-sidebar relative", "transition-[width,transform,box-shadow] duration-200 ease-out", "overflow-hidden", l() && "absolute inset-y-0 left-0 z-10 shadow-lg", t.class), x = u() ? `${g()}px` : "0px", y = l() ? "dialog" : void 0, k = l() ? "true" : void 0, C = t.ariaLabel, z = c("h-full flex flex-col", t.innerClass), $ = `${g()}px`, R = c("flex-1 min-h-0 overflow-auto", t.bodyClass);
53
- return n !== e.e && d(i, e.e = n), x !== e.t && _(i, "width", e.t = x), y !== e.a && f(i, "role", e.a = y), k !== e.o && f(i, "aria-modal", e.o = k), C !== e.i && f(i, "aria-label", e.i = C), z !== e.n && d(h, e.n = z), $ !== e.s && _(h, "width", e.s = $), R !== e.h && d(b, e.h = R), e;
52
+ var n = c("flex-shrink-0 border-r border-[var(--floe-line)] bg-sidebar relative", "transition-[width,transform,box-shadow] duration-[var(--floe-duration-base)] ease-out", "overflow-hidden", l() && "absolute inset-y-0 left-0 z-10 shadow-[var(--floe-elevation-float)]", t.class), x = u() ? `${w()}px` : "0px", y = l() ? "dialog" : void 0, k = l() ? "true" : void 0, C = t.ariaLabel, z = c("h-full flex flex-col", t.innerClass), $ = `${w()}px`, R = c("flex-1 min-h-0 overflow-auto", t.bodyClass);
53
+ return n !== e.e && d(i, e.e = n), x !== e.t && _(i, "width", e.t = x), y !== e.a && b(i, "role", e.a = y), k !== e.o && b(i, "aria-modal", e.o = k), C !== e.i && b(i, "aria-label", e.i = C), z !== e.n && d(v, e.n = z), $ !== e.s && _(v, "width", e.s = $), R !== e.h && d(h, e.h = R), e;
54
54
  }, {
55
55
  e: void 0,
56
56
  t: void 0,
@@ -61,7 +61,7 @@ function T(t) {
61
61
  s: void 0,
62
62
  h: void 0
63
63
  }), i;
64
- })(), o(s, {
64
+ })(), r(a, {
65
65
  get when() {
66
66
  return B();
67
67
  },
@@ -1,15 +1,15 @@
1
- import { insert as t, createComponent as s, effect as y, className as h, setAttribute as $, template as l, delegateEvents as _ } from "solid-js/web";
2
- import { Show as v } from "solid-js";
3
- import { cn as x } from "../../utils/cn.js";
4
- import { useCommand as w } from "../../context/CommandContext.js";
1
+ import { insert as t, createComponent as d, effect as y, className as v, setAttribute as $, template as i, delegateEvents as w } from "solid-js/web";
2
+ import { Show as h } from "solid-js";
3
+ import { cn as p } from "../../utils/cn.js";
4
+ import { useCommand as _ } from "../../context/CommandContext.js";
5
5
  import { Search as C } from "../icons/index.js";
6
6
  import { useResolvedFloeConfig as S } from "../../context/FloeConfigContext.js";
7
- var B = /* @__PURE__ */ l('<span class="font-medium text-[11px] tracking-tight hidden sm:inline">'), E = /* @__PURE__ */ l('<kbd class="hidden md:inline text-[10px] px-1 py-0.5 rounded bg-background/60 border border-border/40 font-mono shrink-0 leading-none">'), F = /* @__PURE__ */ l('<header data-floe-shell-slot=top-bar style=background-color:var(--activity-bar);border-bottom-color:var(--top-bar-border)><div class="h-10 flex items-center gap-2 px-3"><div class="flex items-center gap-2 flex-shrink-0"></div><button type=button><span class="flex-1 text-left hidden sm:inline truncate"></span></button><div class="flex items-center gap-0.5">'), j = /* @__PURE__ */ l('<div class="w-6 h-6 rounded bg-primary flex items-center justify-center text-primary-foreground text-xs font-bold">F');
7
+ var B = /* @__PURE__ */ i('<span class="font-medium text-caption tracking-tight hidden sm:inline">'), E = /* @__PURE__ */ i('<kbd class="hidden md:inline text-caption px-1 py-0.5 rounded-xs bg-background/60 border border-[var(--floe-line)] font-mono shrink-0 leading-none">'), F = /* @__PURE__ */ i('<header data-floe-shell-slot=top-bar style=background-color:var(--activity-bar);border-bottom-color:var(--top-bar-border)><div class="h-10 flex items-center gap-2 px-3"><div class="flex items-center gap-2 flex-shrink-0"></div><button type=button><span class="flex-1 text-left hidden sm:inline truncate"></span></button><div class="flex items-center gap-0.5">'), j = /* @__PURE__ */ i('<div class="w-6 h-6 rounded-xs bg-primary flex items-center justify-center text-primary-foreground text-xs font-bold">F');
8
8
  function R(o) {
9
- const c = w(), a = S(), n = () => a.config.commands.palette.enabled;
9
+ const c = _(), a = S(), n = () => a.config.commands.palette.enabled;
10
10
  return (() => {
11
- var i = F(), p = i.firstChild, d = p.firstChild, r = d.nextSibling, m = r.firstChild, k = r.nextSibling;
12
- return t(d, () => o.logo || j(), null), t(d, s(v, {
11
+ var l = F(), x = l.firstChild, s = x.firstChild, r = s.nextSibling, f = r.firstChild, k = r.nextSibling;
12
+ return t(s, () => o.logo || j(), null), t(s, d(h, {
13
13
  get when() {
14
14
  return o.title;
15
15
  },
@@ -17,9 +17,9 @@ function R(o) {
17
17
  var e = B();
18
18
  return t(e, () => o.title), e;
19
19
  }
20
- }), null), r.$$click = () => n() && c.open(), t(r, s(C, {
20
+ }), null), r.$$click = () => n() && c.open(), t(r, d(C, {
21
21
  class: "w-3 h-3 shrink-0"
22
- }), m), t(m, () => a.config.strings.topBar.searchPlaceholder), t(r, s(v, {
22
+ }), f), t(f, () => a.config.strings.topBar.searchPlaceholder), t(r, d(h, {
23
23
  get when() {
24
24
  return n();
25
25
  },
@@ -28,22 +28,22 @@ function R(o) {
28
28
  return t(e, () => c.getKeybindDisplay(a.config.commands.palette.keybind)), e;
29
29
  }
30
30
  }), null), t(k, () => o.actions), y((e) => {
31
- var b = x(
31
+ var m = p(
32
32
  // Safe-area padding must not be applied on a fixed-height element (border-box),
33
33
  // otherwise the content gets squeezed on iOS notch devices.
34
- "shrink-0 bg-background border-b border-border safe-top safe-left safe-right",
34
+ "shrink-0 bg-background border-b border-[var(--floe-line)] safe-top safe-left safe-right",
35
35
  o.class
36
- ), f = o.ariaLabel, u = !n(), g = x("flex-1 max-w-sm flex items-center gap-2 h-[26px] px-2.5", n() ? "cursor-pointer" : "cursor-not-allowed", "text-[11px] text-muted-foreground tracking-tight", "bg-muted/30 hover:bg-muted/60 rounded-md", "border border-border/40 hover:border-border/70", "transition-colors duration-100", "focus:outline-none focus-visible:ring-1 focus-visible:ring-ring", !n() && "opacity-50 hover:bg-muted/30");
37
- return b !== e.e && h(i, e.e = b), f !== e.t && $(i, "aria-label", e.t = f), u !== e.a && (r.disabled = e.a = u), g !== e.o && h(r, e.o = g), e;
36
+ ), b = o.ariaLabel, g = !n(), u = p("flex-1 max-w-sm flex items-center gap-2 h-[26px] px-2.5", n() ? "cursor-pointer" : "cursor-not-allowed", "text-caption text-[var(--floe-ink-soft)] tracking-tight", "bg-[var(--floe-well)] hover:bg-[var(--floe-well-strong)] rounded-control", "border border-[var(--floe-line)]", "transition-[background-color,border-color,color] duration-[var(--floe-duration-fast)] ease-[var(--floe-ease-in-out)]", "focus:outline-none focus-visible:ring-1 focus-visible:ring-ring", !n() && "opacity-50 hover:bg-transparent");
37
+ return m !== e.e && v(l, e.e = m), b !== e.t && $(l, "aria-label", e.t = b), g !== e.a && (r.disabled = e.a = g), u !== e.o && v(r, e.o = u), e;
38
38
  }, {
39
39
  e: void 0,
40
40
  t: void 0,
41
41
  a: void 0,
42
42
  o: void 0
43
- }), i;
43
+ }), l;
44
44
  })();
45
45
  }
46
- _(["click"]);
46
+ w(["click"]);
47
47
  export {
48
48
  R as TopBar
49
49
  };