@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,49 +1,49 @@
1
- import { createComponent as g, use as T, setAttribute as a, insert as f, effect as S, memo as j, className as M, template as h, delegateEvents as q } from "solid-js/web";
2
- import { createUniqueId as A, createEffect as _, onCleanup as E, createMemo as F, Show as B, untrack as K } from "solid-js";
1
+ import { createComponent as h, use as j, setAttribute as a, insert as f, effect as S, memo as q, className as _, template as b, delegateEvents as A } from "solid-js/web";
2
+ import { createUniqueId as D, createEffect as E, onCleanup as F, createMemo as M, Show as B, untrack as K } from "solid-js";
3
3
  import { useOverlayMask as O } from "../../hooks/useOverlayMask.js";
4
4
  import { createFloatingPresence as z } from "../ui/floatingPresence.js";
5
- import { cn as D } from "../../utils/cn.js";
5
+ import { cn as I } from "../../utils/cn.js";
6
6
  import { deferAfterPaint as L } from "../../utils/defer.js";
7
7
  import { X as R } from "../icons/index.js";
8
- var U = /* @__PURE__ */ h('<header class="flex shrink-0 items-center gap-2 border-b px-4 py-2"><h2 class="min-w-0 flex-1 text-base font-semibold"></h2><button type=button data-floe-autofocus class="flex h-11 w-11 shrink-0 items-center justify-center rounded-md hover:bg-muted focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring">'), W = /* @__PURE__ */ h('<div data-floe-mobile-navigation-overlay class="absolute inset-0 z-50 overflow-hidden p-2"><div class="absolute inset-0 floe-floating-presence floe-floating-backdrop floe-bottom-drawer-backdrop"data-floe-mobile-navigation-backdrop></div><div class="relative pointer-events-none flex h-full min-h-0 items-end justify-center"><div role=dialog tabindex=-1 data-floe-mobile-navigation-panel data-floe-surface=floating data-floe-surface-portal-layer=true style="max-height:min(680px, 86%);border-radius:24px"><div>'), X = /* @__PURE__ */ h("<h2 class=sr-only>");
8
+ var U = /* @__PURE__ */ b('<header class="flex shrink-0 items-center gap-2 border-b px-4 py-2"><h2 class="min-w-0 flex-1 text-base font-semibold"></h2><button type=button data-floe-autofocus class="flex h-11 w-11 shrink-0 items-center justify-center rounded-control hover:bg-[var(--floe-state-hover)] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring">'), W = /* @__PURE__ */ b('<div data-floe-mobile-navigation-overlay class="absolute inset-0 z-50 overflow-hidden p-2"><div class="absolute inset-0 floe-floating-presence floe-floating-backdrop floe-bottom-drawer-backdrop"data-floe-mobile-navigation-backdrop></div><div class="relative pointer-events-none flex h-full min-h-0 items-end justify-center"><div role=dialog tabindex=-1 data-floe-mobile-navigation-panel data-floe-surface=floating data-floe-surface-portal-layer=true style="max-height:min(680px, 86%);border-radius:24px"><div>'), X = /* @__PURE__ */ b("<h2 class=sr-only>");
9
9
  function p(t) {
10
- const v = `mobile-navigation-${A()}`, r = z({
10
+ const v = `mobile-navigation-${D()}`, r = z({
11
11
  open: () => t.open,
12
- exitDurationMs: 180
12
+ element: () => o
13
13
  });
14
- let i, d = null;
14
+ let o, d = null;
15
15
  const m = () => {
16
16
  d = t.trigger ?? null, t.onOpenChange(!1);
17
17
  };
18
- _(() => {
18
+ E(() => {
19
19
  const n = r.mounted();
20
20
  if (t.onPresenceChange?.(n), !n && d) {
21
- const l = d;
22
- d = null, l.isConnected && !l.closest("[hidden], [inert]") && l.focus({
21
+ const i = d;
22
+ d = null, i.isConnected && !i.closest("[hidden], [inert]") && i.focus({
23
23
  preventScroll: !0
24
24
  });
25
25
  }
26
- }), E(() => t.onPresenceChange?.(!1));
27
- const I = F(() => t.open ? t.id : null);
28
- _(() => {
29
- const n = I();
26
+ }), F(() => t.onPresenceChange?.(!1));
27
+ const N = M(() => t.open ? t.id : null);
28
+ E(() => {
29
+ const n = N();
30
30
  if (n === null) return;
31
31
  d = null;
32
- let l = !0;
33
- E(() => {
34
- l = !1;
32
+ let i = !0;
33
+ F(() => {
34
+ i = !1;
35
35
  }), L(() => K(() => {
36
- if (!l || !t.open || t.id !== n || !i?.isConnected) return;
37
- const u = i.ownerDocument.activeElement;
38
- u && i.contains(u) || (i.querySelector("[data-floe-autofocus]") ?? i).focus({
36
+ if (!i || !t.open || t.id !== n || !o?.isConnected) return;
37
+ const u = o.ownerDocument.activeElement;
38
+ u && o.contains(u) || (o.querySelector("[data-floe-autofocus]") ?? o).focus({
39
39
  preventScroll: !0
40
40
  });
41
41
  }));
42
42
  }), O({
43
43
  open: r.mounted,
44
- root: () => i,
45
- focusRoots: () => [i, t.navigation()].filter((n) => !!n),
46
- containsTarget: (n) => n instanceof Node && !!(i?.contains(n) || t.navigation()?.contains(n)),
44
+ root: () => o,
45
+ focusRoots: () => [o, t.navigation()].filter((n) => !!n),
46
+ containsTarget: (n) => n instanceof Node && !!(o?.contains(n) || t.navigation()?.contains(n)),
47
47
  onClose: m,
48
48
  lockBodyScroll: !1,
49
49
  trapFocus: !0,
@@ -53,18 +53,18 @@ function p(t) {
53
53
  autoFocus: !1,
54
54
  restoreFocus: !1
55
55
  });
56
- const N = F(() => t.children);
57
- return g(B, {
56
+ const T = M(() => t.children);
57
+ return h(B, {
58
58
  get when() {
59
59
  return r.mounted();
60
60
  },
61
61
  get children() {
62
- var n = W(), l = n.firstChild, u = l.nextSibling, o = u.firstChild, b = o.firstChild;
63
- l.$$click = () => {
62
+ var n = W(), i = n.firstChild, u = i.nextSibling, l = u.firstChild, g = l.firstChild;
63
+ i.$$click = () => {
64
64
  t.open && m();
65
- }, o.$$keydown = (e) => t.onKeyDown?.(e);
66
- var x = i;
67
- return typeof x == "function" ? T(x, o) : i = o, a(o, "aria-labelledby", v), f(o, g(B, {
65
+ }, l.$$keydown = (e) => t.onKeyDown?.(e);
66
+ var x = o;
67
+ return typeof x == "function" ? j(x, l) : o = l, a(l, "aria-labelledby", v), f(l, h(B, {
68
68
  get when() {
69
69
  return t.header === void 0;
70
70
  },
@@ -72,17 +72,17 @@ function p(t) {
72
72
  return [(() => {
73
73
  var e = X();
74
74
  return a(e, "id", v), f(e, () => t.title), e;
75
- })(), j(() => t.header)];
75
+ })(), q(() => t.header)];
76
76
  },
77
77
  get children() {
78
78
  var e = U(), s = e.firstChild, c = s.nextSibling;
79
- return a(s, "id", v), f(s, () => t.title), c.$$click = m, f(c, g(R, {
79
+ return a(s, "id", v), f(s, () => t.title), c.$$click = m, f(c, h(R, {
80
80
  class: "h-5 w-5"
81
81
  })), S(() => a(c, "aria-label", t.closeLabel ?? "Close")), e;
82
82
  }
83
- }), b), f(b, N), S((e) => {
84
- var s = r.state(), c = r.state(), y = t.id, w = r.state(), k = r.exiting(), C = r.exiting() ? "true" : void 0, $ = D("pointer-events-auto relative flex min-h-0 w-full max-w-[640px] flex-col border border-border bg-card text-card-foreground shadow-xl floe-floating-presence floe-bottom-drawer-panel", t.class), P = D("flex min-h-0 flex-col overflow-auto overscroll-contain", t.contentClass);
85
- return s !== e.e && a(n, "data-floating-presence", e.e = s), c !== e.t && a(l, "data-floating-presence", e.t = c), y !== e.a && a(o, "id", e.a = y), w !== e.o && a(o, "data-floating-presence", e.o = w), k !== e.i && (o.inert = e.i = k), C !== e.n && a(o, "aria-hidden", e.n = C), $ !== e.s && M(o, e.s = $), P !== e.h && M(b, e.h = P), e;
83
+ }), g), f(g, T), S((e) => {
84
+ var s = r.state(), c = r.state(), y = t.id, w = r.state(), k = r.exiting(), C = r.exiting() ? "true" : void 0, $ = I("pointer-events-auto relative flex min-h-0 w-full max-w-[640px] flex-col border border-[var(--floe-line)] bg-card text-card-foreground shadow-[var(--floe-elevation-float-strong)] floe-floating-presence floe-bottom-drawer-panel", t.class), P = I("flex min-h-0 flex-col overflow-auto overscroll-contain", t.contentClass);
85
+ return s !== e.e && a(n, "data-floating-presence", e.e = s), c !== e.t && a(i, "data-floating-presence", e.t = c), y !== e.a && a(l, "id", e.a = y), w !== e.o && a(l, "data-floating-presence", e.o = w), k !== e.i && (l.inert = e.i = k), C !== e.n && a(l, "aria-hidden", e.n = C), $ !== e.s && _(l, e.s = $), P !== e.h && _(g, e.h = P), e;
86
86
  }, {
87
87
  e: void 0,
88
88
  t: void 0,
@@ -96,7 +96,7 @@ function p(t) {
96
96
  }
97
97
  });
98
98
  }
99
- q(["click", "keydown"]);
99
+ A(["click", "keydown"]);
100
100
  export {
101
101
  p as MobileNavigationPanel
102
102
  };
@@ -1,62 +1,62 @@
1
- import { use as R, insert as u, createComponent as d, effect as _, className as C, setAttribute as s, template as v, Dynamic as j, memo as q, delegateEvents as B } from "solid-js/web";
1
+ import { use as R, insert as f, createComponent as d, effect as _, className as y, setAttribute as v, template as m, Dynamic as j, memo as q, delegateEvents as B } from "solid-js/web";
2
2
  import { createSignal as E, onMount as z, onCleanup as D, Show as S, For as F } from "solid-js";
3
3
  import { cn as A } from "../../utils/cn.js";
4
4
  import { deferNonBlocking as W } from "../../utils/defer.js";
5
- var H = /* @__PURE__ */ v('<div class="absolute left-0 top-0 bottom-0 w-8 bg-gradient-to-r from-background to-transparent z-10 pointer-events-none">'), N = /* @__PURE__ */ v('<div class="absolute right-0 top-0 bottom-0 w-8 bg-gradient-to-l from-background to-transparent z-10 pointer-events-none">'), T = /* @__PURE__ */ v('<div data-floe-mobile-navigation-actions class="flex shrink-0 border-l border-border">'), P = /* @__PURE__ */ v('<nav data-floe-shell-slot=mobile-tab-bar style=border-top-color:var(--bottom-bar-border)><div class="relative flex h-14"><div class="relative min-w-0 flex-1"><div class="h-full flex items-center overflow-x-auto scrollbar-hide snap-x snap-mandatory"role=tablist aria-orientation=horizontal style=-webkit-overflow-scrolling:touch>'), U = /* @__PURE__ */ v("<span>"), V = /* @__PURE__ */ v('<div class="absolute bottom-0 left-1/2 -translate-x-1/2 w-8 h-0.5 bg-primary rounded-t">'), G = /* @__PURE__ */ v("<button type=button><div></div><span>");
5
+ var H = /* @__PURE__ */ m('<div class="absolute left-0 top-0 bottom-0 w-8 bg-gradient-to-r from-background to-transparent z-10 pointer-events-none">'), N = /* @__PURE__ */ m('<div class="absolute right-0 top-0 bottom-0 w-8 bg-gradient-to-l from-background to-transparent z-10 pointer-events-none">'), T = /* @__PURE__ */ m('<div data-floe-mobile-navigation-actions class="flex shrink-0 border-l border-[var(--floe-line)]">'), P = /* @__PURE__ */ m('<nav data-floe-shell-slot=mobile-tab-bar style=border-top-color:var(--bottom-bar-border)><div class="relative flex h-14"><div class="relative min-w-0 flex-1"><div class="h-full flex items-center overflow-x-auto scrollbar-hide snap-x snap-mandatory"role=tablist aria-orientation=horizontal style=-webkit-overflow-scrolling:touch>'), U = /* @__PURE__ */ m("<span>"), V = /* @__PURE__ */ m('<div class="absolute bottom-0 left-1/2 -translate-x-1/2 w-8 h-0.5 bg-primary rounded-t">'), G = /* @__PURE__ */ m("<button type=button><div></div><span>");
6
6
  function Y(e) {
7
- let r;
7
+ let a;
8
8
  const [$, b] = E(!1), [i, h] = E(!1);
9
- let f = null;
9
+ let u = null;
10
10
  const g = () => {
11
- r && (b(r.scrollLeft > 0), h(r.scrollLeft < r.scrollWidth - r.clientWidth - 1));
11
+ a && (b(a.scrollLeft > 0), h(a.scrollLeft < a.scrollWidth - a.clientWidth - 1));
12
12
  }, t = () => {
13
- if (f === null) {
13
+ if (u === null) {
14
14
  if (typeof requestAnimationFrame > "u") {
15
15
  g();
16
16
  return;
17
17
  }
18
- f = requestAnimationFrame(() => {
19
- f = null, g();
18
+ u = requestAnimationFrame(() => {
19
+ u = null, g();
20
20
  });
21
21
  }
22
22
  }, o = () => e.items, I = (l) => {
23
- const a = o()[l];
24
- if (a) {
25
- if (a.onClick) {
26
- W(() => a.onClick());
23
+ const r = o()[l];
24
+ if (r) {
25
+ if (r.onClick) {
26
+ W(() => r.onClick());
27
27
  return;
28
28
  }
29
- e.onSelect(a.id);
29
+ e.onSelect(r.id);
30
30
  }
31
31
  };
32
32
  return z(() => {
33
33
  g();
34
- const l = e.items.findIndex((a) => a.id === e.activeId);
35
- if (l > 0 && r) {
36
- const a = r.scrollWidth / e.items.length;
37
- r.scrollLeft = Math.max(0, a * l - r.clientWidth / 2 + a / 2);
34
+ const l = e.items.findIndex((r) => r.id === e.activeId);
35
+ if (l > 0 && a) {
36
+ const r = a.scrollWidth / e.items.length;
37
+ a.scrollLeft = Math.max(0, r * l - a.clientWidth / 2 + r / 2);
38
38
  }
39
39
  }), D(() => {
40
- f !== null && typeof cancelAnimationFrame < "u" && (cancelAnimationFrame(f), f = null);
40
+ u !== null && typeof cancelAnimationFrame < "u" && (cancelAnimationFrame(u), u = null);
41
41
  }), (() => {
42
- var l = P(), a = l.firstChild, x = a.firstChild, m = x.firstChild, w = e.ref;
43
- typeof w == "function" ? R(w, l) : e.ref = l, u(x, d(S, {
42
+ var l = P(), r = l.firstChild, x = r.firstChild, s = x.firstChild, w = e.ref;
43
+ typeof w == "function" ? R(w, l) : e.ref = l, f(x, d(S, {
44
44
  get when() {
45
45
  return $();
46
46
  },
47
47
  get children() {
48
48
  return H();
49
49
  }
50
- }), m), u(x, d(S, {
50
+ }), s), f(x, d(S, {
51
51
  get when() {
52
52
  return i();
53
53
  },
54
54
  get children() {
55
55
  return N();
56
56
  }
57
- }), m), m.addEventListener("scroll", t);
58
- var y = r;
59
- return typeof y == "function" ? R(y, m) : r = m, u(m, d(F, {
57
+ }), s), s.addEventListener("scroll", t);
58
+ var C = a;
59
+ return typeof C == "function" ? R(C, s) : a = s, f(s, d(F, {
60
60
  get each() {
61
61
  return e.items;
62
62
  },
@@ -78,13 +78,13 @@ function Y(e) {
78
78
  },
79
79
  onKeyboardSelect: (k) => I(k)
80
80
  })
81
- })), u(a, d(S, {
81
+ })), f(r, d(S, {
82
82
  get when() {
83
83
  return e.actions?.length;
84
84
  },
85
85
  get children() {
86
86
  var n = T();
87
- return u(n, d(F, {
87
+ return f(n, d(F, {
88
88
  get each() {
89
89
  return e.actions;
90
90
  },
@@ -104,10 +104,10 @@ function Y(e) {
104
104
  var c = e.hidden, k = A(
105
105
  // Same safe-area rule as TopBar: keep the visual bar height stable, and
106
106
  // add safe-area padding on an outer wrapper (avoid squeezing content).
107
- "relative shrink-0 bg-background border-t border-border safe-bottom safe-left safe-right",
107
+ "relative shrink-0 bg-background border-t border-[var(--floe-line)] safe-bottom safe-left safe-right",
108
108
  e.class
109
109
  ), L = e.ariaLabel;
110
- return c !== n.e && (l.hidden = n.e = c), k !== n.t && C(l, n.t = k), L !== n.a && s(l, "aria-label", n.a = L), n;
110
+ return c !== n.e && (l.hidden = n.e = c), k !== n.t && y(l, n.t = k), L !== n.a && v(l, "aria-label", n.a = L), n;
111
111
  }, {
112
112
  e: void 0,
113
113
  t: void 0,
@@ -116,12 +116,12 @@ function Y(e) {
116
116
  })();
117
117
  }
118
118
  function M(e) {
119
- let r;
119
+ let a;
120
120
  const $ = () => typeof e.item.ariaExpanded == "function" ? e.item.ariaExpanded() : e.item.ariaExpanded;
121
- z(() => e.item.buttonRef?.(r ?? null)), D(() => e.item.buttonRef?.(null));
121
+ z(() => e.item.buttonRef?.(a ?? null)), D(() => e.item.buttonRef?.(null));
122
122
  const b = () => typeof e.item.badge == "function" ? e.item.badge() : e.item.badge;
123
123
  return (() => {
124
- var i = G(), h = i.firstChild, f = h.nextSibling;
124
+ var i = G(), h = i.firstChild, u = h.nextSibling;
125
125
  i.$$keydown = (t) => {
126
126
  if (e.action) return;
127
127
  let o = null;
@@ -145,24 +145,24 @@ function M(e) {
145
145
  }
146
146
  t.preventDefault(), e.onKeyboardSelect(o);
147
147
  }, i.$$click = () => e.onClick();
148
- var g = r;
149
- return typeof g == "function" ? R(g, i) : r = i, u(h, d(j, {
148
+ var g = a;
149
+ return typeof g == "function" ? R(g, i) : a = i, f(h, d(j, {
150
150
  get component() {
151
151
  return e.item.icon;
152
152
  },
153
153
  class: "w-6 h-6"
154
- }), null), u(h, d(S, {
154
+ }), null), f(h, d(S, {
155
155
  get when() {
156
156
  return b();
157
157
  },
158
158
  get children() {
159
159
  var t = U();
160
- return u(t, (() => {
160
+ return f(t, (() => {
161
161
  var o = q(() => typeof b() == "number" && b() > 99);
162
162
  return () => o() ? "99+" : b();
163
- })()), _(() => C(t, A("absolute -top-1 -right-2 min-w-4 h-4 px-1", "flex items-center justify-center", "text-[10px] font-medium rounded-full", "bg-primary text-primary-foreground"))), t;
163
+ })()), _(() => y(t, A("absolute -top-1 -right-2 min-w-4 h-4 px-1", "flex items-center justify-center", "text-caption font-medium rounded-full", "bg-primary text-primary-foreground"))), t;
164
164
  }
165
- }), null), u(f, () => e.item.label), u(i, d(S, {
165
+ }), null), f(u, () => e.item.label), f(i, d(S, {
166
166
  get when() {
167
167
  return e.isActive;
168
168
  },
@@ -170,8 +170,8 @@ function M(e) {
170
170
  return V();
171
171
  }
172
172
  }), null), _((t) => {
173
- var o = A("relative flex-shrink-0 flex flex-col items-center justify-center", "min-w-16 h-full px-4 snap-center", "transition-[color] duration-150", "focus:outline-none focus-visible:bg-muted", e.action && "w-16 px-1", $() && "bg-muted text-foreground", e.isActive ? "text-primary" : "text-muted-foreground active:text-foreground"), I = e.item.label, l = e.action ? void 0 : e.isActive, a = $(), x = e.item.ariaControls, m = e.item.ariaHasPopup, w = e.action ? void 0 : "tab", y = e.action || e.isActive ? 0 : -1, n = A("relative transition-transform duration-150", e.isActive && "scale-110"), c = A("mt-1 text-[10px] font-medium truncate max-w-full", e.isActive && "font-semibold");
174
- return o !== t.e && C(i, t.e = o), I !== t.t && s(i, "aria-label", t.t = I), l !== t.a && s(i, "aria-selected", t.a = l), a !== t.o && s(i, "aria-expanded", t.o = a), x !== t.i && s(i, "aria-controls", t.i = x), m !== t.n && s(i, "aria-haspopup", t.n = m), w !== t.s && s(i, "role", t.s = w), y !== t.h && s(i, "tabindex", t.h = y), n !== t.r && C(h, t.r = n), c !== t.d && C(f, t.d = c), t;
173
+ var o = A("relative flex-shrink-0 flex flex-col items-center justify-center", "min-w-16 h-full px-4 snap-center", "transition-[color,background-color] duration-[var(--floe-duration-fast)] ease-[var(--floe-ease-out)]", "hover:bg-[var(--floe-state-hover)] focus:outline-none focus-visible:bg-[var(--floe-state-press)]", e.action && "w-16 px-1", $() && "bg-[var(--floe-state-selected)] text-foreground", e.isActive ? "text-[var(--floe-accent-ink)]" : "text-[var(--floe-ink-soft)] active:text-foreground"), I = e.item.label, l = e.action ? void 0 : e.isActive, r = $(), x = e.item.ariaControls, s = e.item.ariaHasPopup, w = e.action ? void 0 : "tab", C = e.action || e.isActive ? 0 : -1, n = A("relative transition-transform duration-[var(--floe-duration-fast)]", e.isActive && "scale-110"), c = A("mt-1 text-caption font-medium truncate max-w-full", e.isActive && "font-semibold");
174
+ return o !== t.e && y(i, t.e = o), I !== t.t && v(i, "aria-label", t.t = I), l !== t.a && v(i, "aria-selected", t.a = l), r !== t.o && v(i, "aria-expanded", t.o = r), x !== t.i && v(i, "aria-controls", t.i = x), s !== t.n && v(i, "aria-haspopup", t.n = s), w !== t.s && v(i, "role", t.s = w), C !== t.h && v(i, "tabindex", t.h = C), n !== t.r && y(h, t.r = n), c !== t.d && y(u, t.d = c), t;
175
175
  }, {
176
176
  e: void 0,
177
177
  t: void 0,
@@ -1,33 +1,33 @@
1
- import { insert as t, effect as n, className as l, memo as u, template as a } from "solid-js/web";
1
+ import { insert as r, effect as n, className as l, memo as u, template as a } from "solid-js/web";
2
2
  import "solid-js";
3
3
  import { cn as i } from "../../utils/cn.js";
4
- var o = /* @__PURE__ */ a("<div>"), m = /* @__PURE__ */ a("<div><span class=truncate>"), s = /* @__PURE__ */ a('<div class="flex items-center gap-1 ml-2">');
5
- function $(r) {
4
+ var f = /* @__PURE__ */ a("<div>"), m = /* @__PURE__ */ a("<div><span class=truncate>"), s = /* @__PURE__ */ a('<div class="flex items-center gap-1 ml-2">');
5
+ function $(t) {
6
6
  return (() => {
7
- var e = o();
8
- return t(e, () => r.children), n(() => l(e, i("flex flex-col h-full overflow-hidden", "bg-card text-card-foreground", r.class))), e;
7
+ var e = f();
8
+ return r(e, () => t.children), n(() => l(e, i("flex flex-col h-full overflow-hidden", "bg-card text-card-foreground", t.class))), e;
9
9
  })();
10
10
  }
11
- function h(r) {
11
+ function h(t) {
12
12
  return (() => {
13
- var e = m(), d = e.firstChild;
14
- return t(d, () => r.children), t(e, (() => {
15
- var f = u(() => !!r.actions);
16
- return () => f() && (() => {
13
+ var e = m(), o = e.firstChild;
14
+ return r(o, () => t.children), r(e, (() => {
15
+ var d = u(() => !!t.actions);
16
+ return () => d() && (() => {
17
17
  var c = s();
18
- return t(c, () => r.actions), c;
18
+ return r(c, () => t.actions), c;
19
19
  })();
20
- })(), null), n(() => l(e, i("flex items-center justify-between px-3 py-1.5", "border-b border-border", "text-xs font-medium tracking-tight", r.class))), e;
20
+ })(), null), n(() => l(e, i("flex items-center justify-between px-3 py-1.5", "border-b border-[var(--floe-line)]", "text-xs font-medium tracking-tight", t.class))), e;
21
21
  })();
22
22
  }
23
- function b(r) {
23
+ function g(t) {
24
24
  return (() => {
25
- var e = o();
26
- return t(e, () => r.children), n(() => l(e, i("flex-1 overflow-auto", !r.noPadding && "p-3", r.class))), e;
25
+ var e = f();
26
+ return r(e, () => t.children), n(() => l(e, i("flex-1 overflow-auto", !t.noPadding && "p-3", t.class))), e;
27
27
  })();
28
28
  }
29
29
  export {
30
30
  $ as Panel,
31
- b as PanelContent,
31
+ g as PanelContent,
32
32
  h as PanelHeader
33
33
  };
@@ -1,12 +1,12 @@
1
1
  import { effect as D, className as f, setAttribute as A, template as C, use as S, delegateEvents as k } from "solid-js/web";
2
2
  import { createSignal as F, onCleanup as H } from "solid-js";
3
- import { cn as g } from "../../utils/cn.js";
3
+ import { cn as v } from "../../utils/cn.js";
4
4
  import { startHotInteraction as E } from "../../utils/hotInteraction.js";
5
5
  var q = /* @__PURE__ */ C("<div role=separator style=touch-action:none><div></div><div>");
6
6
  function N(e) {
7
7
  const [a, p] = F(!1);
8
- let n = 0, o = 0, s = null, u, l = null, c = null;
9
- const v = (t) => {
8
+ let r = 0, n = 0, s = null, u, l = null, c = null;
9
+ const g = (t) => {
10
10
  if (!t) {
11
11
  c?.(), c = null;
12
12
  return;
@@ -16,24 +16,24 @@ function N(e) {
16
16
  cursor: e.direction === "horizontal" ? "col-resize" : "row-resize",
17
17
  lockUserSelect: !0
18
18
  });
19
- }, m = () => {
19
+ }, h = () => {
20
20
  if (!a()) return;
21
21
  l !== null && typeof cancelAnimationFrame < "u" && (cancelAnimationFrame(l), l = null);
22
- const t = o - n;
23
- t !== 0 && (e.onResize(t), n = o), p(!1), s = null, v(!1), e.onResizeEnd?.();
24
- }, h = (t) => e.direction === "horizontal" ? t.clientX : t.clientY, x = (t) => {
25
- t.pointerType === "mouse" && t.button !== 0 || (t.preventDefault(), s = t.pointerId, p(!0), n = h(t), o = n, v(!0), e.onResizeStart?.(), u?.setPointerCapture(t.pointerId));
22
+ const t = n - r;
23
+ t !== 0 && (e.onResize(t), r = n), p(!1), s = null, g(!1), e.onResizeEnd?.();
24
+ }, m = (t) => e.direction === "horizontal" ? t.clientX : t.clientY, P = (t) => {
25
+ t.pointerType === "mouse" && t.button !== 0 || (t.preventDefault(), s = t.pointerId, p(!0), r = m(t), n = r, g(!0), e.onResizeStart?.(), u?.setPointerCapture(t.pointerId));
26
26
  }, R = (t) => {
27
- if (!(!a() || s !== t.pointerId) && (o = h(t), l === null)) {
27
+ if (!(!a() || s !== t.pointerId) && (n = m(t), l === null)) {
28
28
  if (typeof requestAnimationFrame > "u") {
29
- const i = o - n;
30
- i !== 0 && (e.onResize(i), n = o);
29
+ const i = n - r;
30
+ i !== 0 && (e.onResize(i), r = n);
31
31
  return;
32
32
  }
33
33
  l = requestAnimationFrame(() => {
34
34
  if (l = null, !a()) return;
35
- const i = o - n;
36
- i !== 0 && (e.onResize(i), n = o);
35
+ const i = n - r;
36
+ i !== 0 && (e.onResize(i), r = n);
37
37
  });
38
38
  }
39
39
  }, y = (t) => {
@@ -42,18 +42,18 @@ function N(e) {
42
42
  u?.releasePointerCapture(t.pointerId);
43
43
  } catch {
44
44
  }
45
- m();
45
+ h();
46
46
  }
47
47
  };
48
- H(() => m());
48
+ H(() => h());
49
49
  const d = () => e.direction === "horizontal";
50
50
  return (() => {
51
51
  var t = q(), i = t.firstChild, $ = i.nextSibling;
52
- t.addEventListener("pointercancel", y), t.$$pointerup = y, t.$$pointermove = R, t.$$pointerdown = x;
52
+ t.addEventListener("pointercancel", y), t.$$pointerup = y, t.$$pointermove = R, t.$$pointerdown = P;
53
53
  var z = u;
54
- return typeof z == "function" ? S(z, t) : u = t, D((r) => {
55
- var b = g("absolute z-20 group", d() ? "top-0 right-0 w-1 h-full cursor-col-resize hover:w-1.5 transition-[background-color,width] duration-100" : "left-0 top-0 h-1 w-full cursor-row-resize hover:h-1.5 transition-[background-color,height] duration-100", a() && "bg-primary", !a() && "hover:bg-primary/50", e.class), w = d() ? "vertical" : "horizontal", I = g("absolute pointer-events-none", d() ? "top-0 bottom-0 left-1/2 w-px -translate-x-1/2" : "left-0 right-0 top-1/2 h-px -translate-y-1/2", a() && "bg-primary opacity-100", !a() && "bg-primary/50 opacity-0 group-hover:opacity-100"), P = g("absolute opacity-0 group-hover:opacity-100 transition-opacity duration-150", d() ? "top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-0.5 h-8 rounded-full bg-muted-foreground/30" : "left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 h-0.5 w-8 rounded-full bg-muted-foreground/30");
56
- return b !== r.e && f(t, r.e = b), w !== r.t && A(t, "aria-orientation", r.t = w), I !== r.a && f(i, r.a = I), P !== r.o && f($, r.o = P), r;
54
+ return typeof z == "function" ? S(z, t) : u = t, D((o) => {
55
+ var b = v("absolute z-20 group", d() ? "top-0 right-0 w-1 h-full cursor-col-resize hover:w-1.5 transition-[background-color,width] duration-[var(--floe-duration-fast)]" : "left-0 top-0 h-1 w-full cursor-row-resize hover:h-1.5 transition-[background-color,height] duration-[var(--floe-duration-fast)]", a() && "bg-primary", !a() && "hover:bg-[var(--floe-accent-line)]", e.class), w = d() ? "vertical" : "horizontal", I = v("absolute pointer-events-none", d() ? "top-0 bottom-0 left-1/2 w-px -translate-x-1/2" : "left-0 right-0 top-1/2 h-px -translate-y-1/2", a() && "bg-primary opacity-100", !a() && "bg-primary/50 opacity-0 group-hover:opacity-100"), x = v("absolute opacity-0 group-hover:opacity-100 transition-opacity duration-[var(--floe-duration-fast)]", d() ? "top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-px h-8 rounded-full bg-[var(--floe-control-edge)]" : "left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 h-px w-8 rounded-full bg-[var(--floe-control-edge)]");
56
+ return b !== o.e && f(t, o.e = b), w !== o.t && A(t, "aria-orientation", o.t = w), I !== o.a && f(i, o.a = I), x !== o.o && f($, o.o = x), o;
57
57
  }, {
58
58
  e: void 0,
59
59
  t: void 0,