@floegence/floe-webapp-core 0.86.58 → 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 +266 -261
  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,28 +1,28 @@
1
- import { insert as o, createComponent as l, use as H, setAttribute as g, effect as P, className as de, memo as C, spread as te, mergeProps as re, template as f, delegateEvents as ce } from "solid-js/web";
2
- import { createSignal as E, createEffect as T, on as ae, untrack as ue, createMemo as V, createUniqueId as ge, Show as h, For as N } from "solid-js";
1
+ import { insert as s, createComponent as l, use as H, setAttribute as v, effect as P, className as ce, memo as C, spread as te, mergeProps as re, template as f, delegateEvents as de } from "solid-js/web";
2
+ import { createSignal as E, createEffect as T, on as ae, untrack as ue, createMemo as V, createUniqueId as ve, Show as h, For as N } from "solid-js";
3
3
  import { cn as L } from "../../../utils/cn.js";
4
- import { FileItemIcon as ve } from "../../file-browser/FileIcons.js";
5
- import { FolderOpen as le, ChevronRight as U } from "../../icons/index.js";
4
+ import { FileItemIcon as ge } from "../../file-browser/FileIcons.js";
5
+ import { FolderOpen as le, ChevronRight as q } from "../../icons/index.js";
6
6
  import { Button as z } from "../Button.js";
7
- import { Input as j } from "../Input.js";
7
+ import { Input as U } from "../Input.js";
8
8
  import { PickerDirectoryRow as ie, DirectoryFavoriteButton as fe } from "./DirectoryFavorites.js";
9
9
  import { resolveTabNavigationTargetId as he } from "../Tabs.js";
10
- import { createFilesystemPickerDataSource as be, parsePickerPath as q, defaultPickerCopy as me, PickerNavigationError as we } from "./PickerNavigation.js";
10
+ import { createFilesystemPickerDataSource as be, parsePickerPath as j, defaultPickerCopy as me, PickerNavigationError as we } from "./PickerNavigation.js";
11
11
  import { pickerParentPath as Xe } from "./PickerNavigation.js";
12
- var xe = /* @__PURE__ */ f('<div role=tablist class="mb-1 flex min-w-0 items-center gap-4 border-b border-border">'), ye = /* @__PURE__ */ f('<div class="flex min-w-0 items-start gap-1.5"><div class="min-w-0 flex-1">'), ke = /* @__PURE__ */ f('<div role=alert class="flex items-center gap-2 text-xs text-error"><span class="min-w-0 flex-1 break-words">'), $e = /* @__PURE__ */ f('<div class="flex items-start gap-2 rounded border border-error/30 bg-error/5 px-2 py-1.5 text-xs"role=alert><span class="min-w-0 flex-1 break-words">'), O = /* @__PURE__ */ f("<div>"), pe = /* @__PURE__ */ f('<div class="flex min-w-0 flex-col gap-2"data-filesystem-picker><div class="flex min-w-0 flex-col gap-2">'), Pe = /* @__PURE__ */ f('<div class="flex flex-wrap items-center gap-1">'), _e = /* @__PURE__ */ f("<button type=button role=tab>"), Fe = /* @__PURE__ */ f('<nav class="flex min-w-0 flex-wrap items-center gap-0.5 text-xs">'), Ce = /* @__PURE__ */ f("<span role=status>"), Ie = /* @__PURE__ */ f('<div class="flex flex-wrap items-center justify-between gap-2 text-xs text-muted-foreground"><label class="flex cursor-pointer items-center gap-1.5"><input type=checkbox class=cursor-pointer>'), Ee = /* @__PURE__ */ f('<button type=button class="max-w-full cursor-pointer truncate rounded px-1 py-0.5 hover:bg-muted focus-visible:ring-1 focus-visible:ring-ring">'), ne = /* @__PURE__ */ f('<p class="px-3 py-6 text-center text-xs text-muted-foreground"role=status>'), ze = /* @__PURE__ */ f('<p class="px-3 py-6 text-center text-xs text-muted-foreground">'), Ae = /* @__PURE__ */ f('<button type=button class="flex min-h-8 min-w-0 flex-1 cursor-pointer items-center gap-2 px-2 py-1.5 text-left text-xs hover:bg-accent/60 focus:outline-none focus-visible:ring-1 focus-visible:ring-inset focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50"><span class="min-w-0 flex-1 truncate">'), Ve = /* @__PURE__ */ f('<button type=button class="flex min-h-14 min-w-0 flex-1 cursor-pointer items-center gap-3 rounded-md px-2 py-2.5 text-left hover:bg-accent/60 focus:outline-none focus-visible:ring-1 focus-visible:ring-inset focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50"><span class="flex min-w-0 flex-1 flex-col gap-0.5"><span class="truncate text-xs font-medium"></span><span class="truncate text-[11px] text-muted-foreground">'), De = /* @__PURE__ */ f('<div class="flex items-center gap-1.5">'), Re = /* @__PURE__ */ f('<p role=alert class="text-xs text-error">');
12
+ var xe = /* @__PURE__ */ f('<div role=tablist class="mb-1 flex min-w-0 items-center gap-4 border-b border-[var(--floe-line)]">'), ye = /* @__PURE__ */ f('<div class="flex min-w-0 items-start gap-1.5"><div class="min-w-0 flex-1">'), ke = /* @__PURE__ */ f('<div role=alert class="flex items-center gap-2 text-xs text-error"><span class="min-w-0 flex-1 break-words">'), $e = /* @__PURE__ */ f('<div class="flex items-start gap-2 rounded-xs border border-error/30 bg-error/5 px-2 py-1.5 text-xs"role=alert><span class="min-w-0 flex-1 break-words">'), O = /* @__PURE__ */ f("<div>"), pe = /* @__PURE__ */ f('<div class="flex min-w-0 flex-col gap-2"data-filesystem-picker><div class="flex min-w-0 flex-col gap-2">'), Pe = /* @__PURE__ */ f('<div class="flex flex-wrap items-center gap-1">'), _e = /* @__PURE__ */ f("<button type=button role=tab>"), Fe = /* @__PURE__ */ f('<nav class="flex min-w-0 flex-wrap items-center gap-0.5 text-xs">'), Ce = /* @__PURE__ */ f("<span role=status>"), Ie = /* @__PURE__ */ f('<div class="flex flex-wrap items-center justify-between gap-2 text-xs text-[var(--floe-ink-soft)]"><label class="flex cursor-pointer items-center gap-1.5"><input type=checkbox class=cursor-pointer>'), Ee = /* @__PURE__ */ f('<button type=button class="max-w-full cursor-pointer truncate rounded-xs px-1 py-0.5 hover:bg-[var(--floe-state-hover)] focus-visible:ring-1 focus-visible:ring-ring">'), ne = /* @__PURE__ */ f('<p class="px-3 py-6 text-center text-xs text-[var(--floe-ink-soft)]"role=status>'), ze = /* @__PURE__ */ f('<p class="px-3 py-6 text-center text-xs text-[var(--floe-ink-soft)]">'), Ae = /* @__PURE__ */ f('<button type=button class="flex min-h-8 min-w-0 flex-1 cursor-pointer items-center gap-2 px-2 py-1.5 text-left text-xs hover:bg-[var(--floe-state-selected)] focus:outline-none focus-visible:ring-1 focus-visible:ring-inset focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50"><span class="min-w-0 flex-1 truncate">'), Ve = /* @__PURE__ */ f('<button type=button class="flex min-h-14 min-w-0 flex-1 cursor-pointer items-center gap-3 rounded-sm px-2 py-2.5 text-left hover:bg-[var(--floe-state-selected)] focus:outline-none focus-visible:ring-1 focus-visible:ring-inset focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50"><span class="flex min-w-0 flex-1 flex-col gap-0.5"><span class="truncate text-xs font-medium"></span><span class="truncate text-caption text-[var(--floe-ink-soft)]">'), De = /* @__PURE__ */ f('<div class="flex items-center gap-1.5">'), Re = /* @__PURE__ */ f('<p role=alert class="text-xs text-error">');
13
13
  function W(e) {
14
14
  return {
15
15
  ...me,
16
16
  ...e.copy
17
17
  };
18
18
  }
19
- function oe(e, s) {
19
+ function se(e, o) {
20
20
  const n = W(e);
21
- return s instanceof we ? n[s.kind] : e.formatError?.(s) || (s instanceof Error ? s.message : "") || n.loadFailed;
21
+ return o instanceof we ? n[o.kind] : e.formatError?.(o) || (o instanceof Error ? o.message : "") || n.loadFailed;
22
22
  }
23
- function Oe(e, s, n, y, _ = () => "browse") {
23
+ function Oe(e, o, n, y, _ = () => "browse") {
24
24
  const [m, F] = E("browse"), k = be(() => e, n);
25
- return T(ae(() => [s(), e.scopeKey], ([I]) => {
25
+ return T(ae(() => [o(), e.scopeKey], ([I]) => {
26
26
  k.close(), I && (F(_()), e.directoryFavorites?.onRefresh?.(), y?.(), k.open(e.initialPath));
27
27
  })), T(() => e.onValidityChange?.(k.valid() && m() === "browse")), {
28
28
  ...k,
@@ -31,7 +31,7 @@ function Oe(e, s, n, y, _ = () => "browse") {
31
31
  };
32
32
  }
33
33
  function We(e) {
34
- const s = () => W(e), n = ue(() => e.source), y = V(() => n.entries().filter((d) => d.type === "folder")), _ = V(() => n.context()?.roots.filter((d) => !d.hidden) ?? []), m = ge(), [F, k] = E(""), [I, $] = E(""), A = () => n.view() !== "browse", w = () => !!(e.suggestions?.paths.length || e.directoryFavorites), x = V(() => [...new Set((e.directoryFavorites?.paths ?? []).map((d) => q(d)).filter(Boolean))]), D = V(() => n.view() === "suggestions" ? e.suggestions?.paths ?? [] : x().filter((d) => d.toLocaleLowerCase().includes(F().trim().toLocaleLowerCase())));
34
+ const o = () => W(e), n = ue(() => e.source), y = V(() => n.entries().filter((c) => c.type === "folder")), _ = V(() => n.context()?.roots.filter((c) => !c.hidden) ?? []), m = ve(), [F, k] = E(""), [I, $] = E(""), A = () => n.view() !== "browse", w = () => !!(e.suggestions?.paths.length || e.directoryFavorites), x = V(() => [...new Set((e.directoryFavorites?.paths ?? []).map((c) => j(c)).filter(Boolean))]), D = V(() => n.view() === "suggestions" ? e.suggestions?.paths ?? [] : x().filter((c) => c.toLocaleLowerCase().includes(F().trim().toLocaleLowerCase())));
35
35
  T(ae(() => e.scopeKey, () => {
36
36
  k(""), $("");
37
37
  }));
@@ -42,46 +42,46 @@ function We(e) {
42
42
  disabled: e.disabled
43
43
  }] : [], ...e.directoryFavorites ? [{
44
44
  id: "favorites",
45
- label: s().favorites,
45
+ label: o().favorites,
46
46
  disabled: e.disabled
47
- }] : [], ..._().map((d) => ({
48
- id: `root:${d.id}`,
49
- label: d.label,
50
- path: d.pathAbs,
51
- disabled: e.disabled || d.permissions?.read === !1
47
+ }] : [], ..._().map((c) => ({
48
+ id: `root:${c.id}`,
49
+ label: c.label,
50
+ path: c.pathAbs,
51
+ disabled: e.disabled || c.permissions?.read === !1
52
52
  }))]), B = () => {
53
53
  if (A()) return n.view();
54
- const d = q(n.pathInput(), n.context()?.homePathAbs);
55
- return `root:${_().filter((i) => d === i.pathAbs || d.startsWith(i.pathAbs.replace(/\/$/, "") + "/")).sort((i, t) => t.pathAbs.length - i.pathAbs.length)[0]?.id ?? n.context()?.defaultRootId ?? _()[0]?.id}`;
56
- }, J = /* @__PURE__ */ new Map(), Q = [], X = (d, b, i, t) => {
54
+ const c = j(n.pathInput(), n.context()?.homePathAbs);
55
+ return `root:${_().filter((i) => c === i.pathAbs || c.startsWith(i.pathAbs.replace(/\/$/, "") + "/")).sort((i, t) => t.pathAbs.length - i.pathAbs.length)[0]?.id ?? n.context()?.defaultRootId ?? _()[0]?.id}`;
56
+ }, J = /* @__PURE__ */ new Map(), Q = [], X = (c, b, i, t) => {
57
57
  let a;
58
- d.key === "ArrowDown" && (a = Math.min(b + 1, t - 1)), d.key === "ArrowUp" && (a = Math.max(0, b - 1)), d.key === "Home" && (a = 0), d.key === "End" && (a = t - 1), a !== void 0 && (d.preventDefault(), d.stopPropagation(), i[a]?.focus(), i[a]?.scrollIntoView?.({
58
+ c.key === "ArrowDown" && (a = Math.min(b + 1, t - 1)), c.key === "ArrowUp" && (a = Math.max(0, b - 1)), c.key === "Home" && (a = 0), c.key === "End" && (a = t - 1), a !== void 0 && (c.preventDefault(), c.stopPropagation(), i[a]?.focus(), i[a]?.scrollIntoView?.({
59
59
  block: "nearest"
60
60
  }));
61
- }, se = V(() => {
62
- const d = n.currentPath();
63
- if (!d) return [];
61
+ }, oe = V(() => {
62
+ const c = n.currentPath();
63
+ if (!c) return [];
64
64
  let b = "";
65
65
  return [{
66
66
  path: "/",
67
- name: s().root
68
- }, ...d.split("/").filter(Boolean).map((i) => (b += `/${i}`, {
67
+ name: o().root
68
+ }, ...c.split("/").filter(Boolean).map((i) => (b += `/${i}`, {
69
69
  path: b,
70
70
  name: i
71
71
  }))];
72
- }), Y = [], S = (d) => {
73
- n.setView("browse"), n.navigate(d), K?.focus();
72
+ }), Y = [], S = (c) => {
73
+ n.setView("browse"), n.navigate(c), K?.focus();
74
74
  }, Z = () => S(n.pathInput());
75
75
  return (() => {
76
- var d = pe(), b = d.firstChild;
77
- return o(d, l(h, {
76
+ var c = pe(), b = c.firstChild;
77
+ return s(c, l(h, {
78
78
  get when() {
79
79
  return w();
80
80
  },
81
81
  get fallback() {
82
82
  return (() => {
83
83
  var i = Pe();
84
- return o(i, l(N, {
84
+ return s(i, l(N, {
85
85
  get each() {
86
86
  return _();
87
87
  },
@@ -104,12 +104,12 @@ function We(e) {
104
104
  return t.label;
105
105
  }
106
106
  })
107
- })), P(() => g(i, "aria-label", s().roots)), i;
107
+ })), P(() => v(i, "aria-label", o().roots)), i;
108
108
  })();
109
109
  },
110
110
  get children() {
111
111
  var i = xe();
112
- return o(i, l(N, {
112
+ return s(i, l(N, {
113
113
  get each() {
114
114
  return G();
115
115
  },
@@ -120,9 +120,9 @@ function We(e) {
120
120
  u && (r.preventDefault(), r.stopPropagation(), J.get(u)?.focus());
121
121
  }, a.$$click = () => {
122
122
  "path" in t ? S(t.path) : (n.setView(t.id), t.id === "favorites" && e.directoryFavorites?.onRefresh?.());
123
- }, H((r) => J.set(t.id, r), a), g(a, "aria-controls", m), o(a, () => t.label), P((r) => {
124
- var u = `${m}-${t.id}`, v = B() === t.id, p = B() === t.id ? 0 : -1, c = t.disabled, R = "path" in t ? t.path : t.label, M = L("min-w-0 cursor-pointer truncate border-b-2 px-0.5 py-2 text-xs font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50", B() === t.id ? "border-primary text-primary" : "border-transparent text-muted-foreground hover:text-foreground");
125
- return u !== r.e && g(a, "id", r.e = u), v !== r.t && g(a, "aria-selected", r.t = v), p !== r.a && g(a, "tabindex", r.a = p), c !== r.o && (a.disabled = r.o = c), R !== r.i && g(a, "title", r.i = R), M !== r.n && de(a, r.n = M), r;
123
+ }, H((r) => J.set(t.id, r), a), v(a, "aria-controls", m), s(a, () => t.label), P((r) => {
124
+ var u = `${m}-${t.id}`, g = B() === t.id, p = B() === t.id ? 0 : -1, d = t.disabled, R = "path" in t ? t.path : t.label, M = L("min-w-0 cursor-pointer truncate border-b-2 px-0.5 py-2 text-xs font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50", B() === t.id ? "border-primary text-[var(--floe-accent-ink)]" : "border-transparent text-[var(--floe-ink-soft)] hover:text-foreground");
125
+ return u !== r.e && v(a, "id", r.e = u), g !== r.t && v(a, "aria-selected", r.t = g), p !== r.a && v(a, "tabindex", r.a = p), d !== r.o && (a.disabled = r.o = d), R !== r.i && v(a, "title", r.i = R), M !== r.n && ce(a, r.n = M), r;
126
126
  }, {
127
127
  e: void 0,
128
128
  t: void 0,
@@ -132,22 +132,22 @@ function We(e) {
132
132
  n: void 0
133
133
  }), a;
134
134
  })()
135
- })), P(() => g(i, "aria-label", s().roots)), i;
135
+ })), P(() => v(i, "aria-label", o().roots)), i;
136
136
  }
137
- }), b), g(b, "id", m), o(b, l(h, {
137
+ }), b), v(b, "id", m), s(b, l(h, {
138
138
  get when() {
139
139
  return !A();
140
140
  },
141
141
  get children() {
142
142
  var i = ye(), t = i.firstChild;
143
- return o(t, l(j, {
143
+ return s(t, l(U, {
144
144
  ref(a) {
145
145
  var r = K;
146
146
  typeof r == "function" ? r(a) : K = a;
147
147
  },
148
148
  size: "sm",
149
149
  get "aria-label"() {
150
- return s().path;
150
+ return o().path;
151
151
  },
152
152
  placeholder: "/",
153
153
  get value() {
@@ -160,7 +160,7 @@ function We(e) {
160
160
  onKeyDown: (a) => {
161
161
  a.key === "Enter" && (a.preventDefault(), a.stopPropagation(), Z());
162
162
  }
163
- })), o(i, l(z, {
163
+ })), s(i, l(z, {
164
164
  size: "sm",
165
165
  variant: "outline",
166
166
  onClick: Z,
@@ -168,17 +168,17 @@ function We(e) {
168
168
  return e.disabled || !n.context() || !n.pathInput();
169
169
  },
170
170
  get children() {
171
- return s().go;
171
+ return o().go;
172
172
  }
173
173
  }), null), i;
174
174
  }
175
- }), null), o(b, l(h, {
175
+ }), null), s(b, l(h, {
176
176
  get when() {
177
177
  return I() || e.directoryFavorites?.error;
178
178
  },
179
179
  get children() {
180
180
  var i = ke(), t = i.firstChild;
181
- return o(t, () => I() || e.directoryFavorites?.error), o(i, l(z, {
181
+ return s(t, () => I() || e.directoryFavorites?.error), s(i, l(z, {
182
182
  size: "sm",
183
183
  variant: "ghost",
184
184
  get disabled() {
@@ -188,17 +188,17 @@ function We(e) {
188
188
  $(""), e.directoryFavorites?.onRefresh?.();
189
189
  },
190
190
  get children() {
191
- return s().retry;
191
+ return o().retry;
192
192
  }
193
193
  }), null), i;
194
194
  }
195
- }), null), o(b, l(h, {
195
+ }), null), s(b, l(h, {
196
196
  get when() {
197
197
  return C(() => !!n.error())() && !A();
198
198
  },
199
199
  get children() {
200
200
  var i = $e(), t = i.firstChild;
201
- return o(t, () => oe(e, n.error())), o(i, l(z, {
201
+ return s(t, () => se(e, n.error())), s(i, l(z, {
202
202
  size: "sm",
203
203
  variant: "ghost",
204
204
  onClick: () => {
@@ -208,44 +208,44 @@ function We(e) {
208
208
  return e.disabled || n.pending();
209
209
  },
210
210
  get children() {
211
- return s().retry;
211
+ return o().retry;
212
212
  }
213
213
  }), null), i;
214
214
  }
215
- }), null), o(b, l(h, {
215
+ }), null), s(b, l(h, {
216
216
  get when() {
217
217
  return A();
218
218
  },
219
219
  get fallback() {
220
220
  return [(() => {
221
221
  var i = Fe();
222
- return o(i, l(N, {
222
+ return s(i, l(N, {
223
223
  get each() {
224
- return se();
224
+ return oe();
225
225
  },
226
226
  children: (t, a) => [l(h, {
227
227
  get when() {
228
228
  return a() > 0;
229
229
  },
230
230
  get children() {
231
- return l(U, {
232
- class: "h-3 w-3 shrink-0 text-muted-foreground"
231
+ return l(q, {
232
+ class: "h-3 w-3 shrink-0 text-[var(--floe-ink-soft)]"
233
233
  });
234
234
  }
235
235
  }), (() => {
236
236
  var r = Ee();
237
237
  return r.$$click = () => {
238
238
  n.navigate(t.path);
239
- }, o(r, () => t.name), P((u) => {
240
- var v = t.path, p = e.disabled, c = t.path === n.currentPath() ? "location" : void 0;
241
- return v !== u.e && g(r, "title", u.e = v), p !== u.t && (r.disabled = u.t = p), c !== u.a && g(r, "aria-current", u.a = c), u;
239
+ }, s(r, () => t.name), P((u) => {
240
+ var g = t.path, p = e.disabled, d = t.path === n.currentPath() ? "location" : void 0;
241
+ return g !== u.e && v(r, "title", u.e = g), p !== u.t && (r.disabled = u.t = p), d !== u.a && v(r, "aria-current", u.a = d), u;
242
242
  }, {
243
243
  e: void 0,
244
244
  t: void 0,
245
245
  a: void 0
246
246
  }), r;
247
247
  })()]
248
- }), null), o(i, l(h, {
248
+ }), null), s(i, l(h, {
249
249
  get when() {
250
250
  return e.directoryFavorites;
251
251
  },
@@ -258,7 +258,7 @@ function We(e) {
258
258
  return e.directoryFavorites;
259
259
  },
260
260
  get copy() {
261
- return s();
261
+ return o();
262
262
  },
263
263
  get disabled() {
264
264
  return e.disabled || !n.valid();
@@ -266,26 +266,26 @@ function We(e) {
266
266
  onError: $
267
267
  });
268
268
  }
269
- }), null), P(() => g(i, "aria-label", s().currentDirectory)), i;
269
+ }), null), P(() => v(i, "aria-label", o().currentDirectory)), i;
270
270
  })(), (() => {
271
271
  var i = O();
272
272
  return te(i, re(() => e.scrollViewportProps, {
273
273
  get class() {
274
- return L("min-h-[120px] overflow-y-auto rounded border border-border", e.scrollViewportProps?.class);
274
+ return L("min-h-[120px] overflow-y-auto rounded-xs border border-[var(--floe-line)]", e.scrollViewportProps?.class);
275
275
  },
276
276
  get style() {
277
277
  return {
278
278
  "max-height": e.treeMaxHeight ?? "240px"
279
279
  };
280
280
  }
281
- }), !1, !0), o(i, l(h, {
281
+ }), !1, !0), s(i, l(h, {
282
282
  get when() {
283
283
  return !n.pending() || n.currentPath();
284
284
  },
285
285
  get fallback() {
286
286
  return (() => {
287
287
  var t = ne();
288
- return o(t, () => s().loading), t;
288
+ return s(t, () => o().loading), t;
289
289
  })();
290
290
  },
291
291
  get children() {
@@ -300,7 +300,7 @@ function We(e) {
300
300
  },
301
301
  get children() {
302
302
  var t = ze();
303
- return o(t, () => s().empty), t;
303
+ return s(t, () => o().empty), t;
304
304
  }
305
305
  });
306
306
  },
@@ -317,7 +317,7 @@ function We(e) {
317
317
  return e.directoryFavorites;
318
318
  },
319
319
  get copy() {
320
- return s();
320
+ return o();
321
321
  },
322
322
  get scopeKey() {
323
323
  return e.scopeKey;
@@ -328,21 +328,21 @@ function We(e) {
328
328
  onError: $,
329
329
  get children() {
330
330
  var r = Ae(), u = r.firstChild;
331
- return r.$$keydown = (v) => X(v, a(), Y, y().length), r.$$click = () => {
331
+ return r.$$keydown = (g) => X(g, a(), Y, y().length), r.$$click = () => {
332
332
  n.navigate(t.path);
333
- }, H((v) => {
333
+ }, H((g) => {
334
334
  T(() => {
335
- Y[a()] = v;
335
+ Y[a()] = g;
336
336
  });
337
- }, r), o(r, l(ve, {
337
+ }, r), s(r, l(ge, {
338
338
  item: t,
339
339
  size: 16,
340
340
  class: "h-4 w-4 shrink-0"
341
- }), u), o(u, () => t.name), o(r, l(U, {
342
- class: "h-3 w-3 shrink-0 text-muted-foreground"
343
- }), null), P((v) => {
344
- var p = t.path, c = e.disabled || e.filter?.(t) === !1;
345
- return p !== v.e && g(r, "data-picker-row-path", v.e = p), c !== v.t && (r.disabled = v.t = c), v;
341
+ }), u), s(u, () => t.name), s(r, l(q, {
342
+ class: "h-3 w-3 shrink-0 text-[var(--floe-ink-soft)]"
343
+ }), null), P((g) => {
344
+ var p = t.path, d = e.disabled || e.filter?.(t) === !1;
345
+ return p !== g.e && v(r, "data-picker-row-path", g.e = p), d !== g.t && (r.disabled = g.t = d), g;
346
346
  }, {
347
347
  e: void 0,
348
348
  t: void 0
@@ -358,13 +358,13 @@ function We(e) {
358
358
  var i = Ie(), t = i.firstChild, a = t.firstChild;
359
359
  return a.addEventListener("change", (r) => {
360
360
  n.setShowHidden(r.currentTarget.checked);
361
- }), o(t, () => s().showHidden, null), o(i, l(h, {
361
+ }), s(t, () => o().showHidden, null), s(i, l(h, {
362
362
  get when() {
363
363
  return C(() => !!n.pending())() && n.currentPath();
364
364
  },
365
365
  get children() {
366
366
  var r = Ce();
367
- return o(r, () => s().loading), r;
367
+ return s(r, () => o().loading), r;
368
368
  }
369
369
  }), null), P(() => a.disabled = e.disabled || !n.context()), P(() => a.checked = n.showHidden()), i;
370
370
  })(), l(h, {
@@ -382,13 +382,13 @@ function We(e) {
382
382
  return n.view() === "favorites";
383
383
  },
384
384
  get children() {
385
- return l(j, {
385
+ return l(U, {
386
386
  size: "sm",
387
387
  get "aria-label"() {
388
- return s().favoritesFilter;
388
+ return o().favoritesFilter;
389
389
  },
390
390
  get placeholder() {
391
- return s().favoritesFilter;
391
+ return o().favoritesFilter;
392
392
  },
393
393
  get value() {
394
394
  return F();
@@ -406,7 +406,7 @@ function We(e) {
406
406
  return n.view() === "favorites" ? "" : void 0;
407
407
  },
408
408
  get "aria-label"() {
409
- return C(() => n.view() === "favorites")() ? s().favorites : e.suggestions?.label;
409
+ return C(() => n.view() === "favorites")() ? o().favorites : e.suggestions?.label;
410
410
  },
411
411
  get "aria-busy"() {
412
412
  return C(() => n.view() === "favorites")() && e.directoryFavorites?.loading;
@@ -419,16 +419,16 @@ function We(e) {
419
419
  "max-height": e.treeMaxHeight ?? "240px"
420
420
  };
421
421
  }
422
- }), !1, !0), o(i, l(h, {
422
+ }), !1, !0), s(i, l(h, {
423
423
  get when() {
424
424
  return D().length;
425
425
  },
426
426
  get fallback() {
427
427
  return (() => {
428
428
  var t = ne();
429
- return o(t, (() => {
429
+ return s(t, (() => {
430
430
  var a = C(() => !!e.directoryFavorites?.loading);
431
- return () => a() ? s().loading : C(() => !!e.directoryFavorites?.error)() ? s().favoritesLoadFailed : C(() => !!F().trim())() ? s().favoritesNoMatches : s().favoritesEmpty;
431
+ return () => a() ? o().loading : C(() => !!e.directoryFavorites?.error)() ? o().favoritesLoadFailed : C(() => !!F().trim())() ? o().favoritesNoMatches : o().favoritesEmpty;
432
432
  })()), t;
433
433
  })();
434
434
  },
@@ -443,7 +443,7 @@ function We(e) {
443
443
  return e.directoryFavorites;
444
444
  },
445
445
  get copy() {
446
- return s();
446
+ return o();
447
447
  },
448
448
  get scopeKey() {
449
449
  return e.scopeKey;
@@ -453,20 +453,20 @@ function We(e) {
453
453
  },
454
454
  onError: $,
455
455
  get children() {
456
- var r = Ve(), u = r.firstChild, v = u.firstChild, p = v.nextSibling;
457
- return r.$$keydown = (c) => X(c, a(), Q, D().length), r.$$click = () => {
456
+ var r = Ve(), u = r.firstChild, g = u.firstChild, p = g.nextSibling;
457
+ return r.$$keydown = (d) => X(d, a(), Q, D().length), r.$$click = () => {
458
458
  S(t);
459
- }, H((c) => {
459
+ }, H((d) => {
460
460
  T(() => {
461
- Q[a()] = c;
461
+ Q[a()] = d;
462
462
  });
463
- }, r), g(r, "title", t), g(r, "aria-label", t), o(r, l(le, {
464
- class: "h-4 w-4 shrink-0 text-muted-foreground"
465
- }), u), o(v, () => t.split("/").filter(Boolean).at(-1) ?? s().root), o(p, t), o(r, l(U, {
466
- class: "h-3 w-3 shrink-0 text-muted-foreground/60"
467
- }), null), P((c) => {
463
+ }, r), v(r, "title", t), v(r, "aria-label", t), s(r, l(le, {
464
+ class: "h-4 w-4 shrink-0 text-[var(--floe-ink-soft)]"
465
+ }), u), s(g, () => t.split("/").filter(Boolean).at(-1) ?? o().root), s(p, t), s(r, l(q, {
466
+ class: "h-3 w-3 shrink-0 text-[var(--floe-ink-quiet)]"
467
+ }), null), P((d) => {
468
468
  var R = n.view() === "suggestions" ? t : void 0, M = n.view() === "favorites" ? t : void 0, ee = e.disabled || !n.context();
469
- return R !== c.e && g(r, "data-picker-suggested-path", c.e = R), M !== c.t && g(r, "data-picker-favorite-path", c.t = M), ee !== c.a && (r.disabled = c.a = ee), c;
469
+ return R !== d.e && v(r, "data-picker-suggested-path", d.e = R), M !== d.t && v(r, "data-picker-favorite-path", d.t = M), ee !== d.a && (r.disabled = d.a = ee), d;
470
470
  }, {
471
471
  e: void 0,
472
472
  t: void 0,
@@ -481,16 +481,16 @@ function We(e) {
481
481
  }
482
482
  }), null), P((i) => {
483
483
  var t = n.pending(), a = w() ? "tabpanel" : void 0, r = w() ? `${m}-${B()}` : void 0;
484
- return t !== i.e && g(d, "aria-busy", i.e = t), a !== i.t && g(b, "role", i.t = a), r !== i.a && g(b, "aria-labelledby", i.a = r), i;
484
+ return t !== i.e && v(c, "aria-busy", i.e = t), a !== i.t && v(b, "role", i.t = a), r !== i.a && v(b, "aria-labelledby", i.a = r), i;
485
485
  }, {
486
486
  e: void 0,
487
487
  t: void 0,
488
488
  a: void 0
489
- }), d;
489
+ }), c;
490
490
  })();
491
491
  }
492
492
  function Me(e) {
493
- const [s, n] = E(!1), [y, _] = E(""), [m, F] = E(!1), [k, I] = E(null), $ = () => W(e), A = async () => {
493
+ const [o, n] = E(!1), [y, _] = E(""), [m, F] = E(!1), [k, I] = E(null), $ = () => W(e), A = async () => {
494
494
  if (!y().trim() || !e.source.valid() || !e.onCreateFolder || m()) return;
495
495
  const w = e.source.currentPath();
496
496
  F(!0), I(null);
@@ -504,9 +504,9 @@ function Me(e) {
504
504
  };
505
505
  return (() => {
506
506
  var w = O();
507
- return o(w, l(h, {
507
+ return s(w, l(h, {
508
508
  get when() {
509
- return s();
509
+ return o();
510
510
  },
511
511
  get fallback() {
512
512
  return l(z, {
@@ -525,7 +525,7 @@ function Me(e) {
525
525
  },
526
526
  get children() {
527
527
  var x = De();
528
- return o(x, l(j, {
528
+ return s(x, l(U, {
529
529
  size: "sm",
530
530
  get "aria-label"() {
531
531
  return $().folderName;
@@ -537,7 +537,7 @@ function Me(e) {
537
537
  get disabled() {
538
538
  return e.disabled || m();
539
539
  }
540
- }), null), o(x, l(z, {
540
+ }), null), s(x, l(z, {
541
541
  size: "sm",
542
542
  get disabled() {
543
543
  return e.disabled || m() || !y().trim() || !e.source.valid();
@@ -548,7 +548,7 @@ function Me(e) {
548
548
  get children() {
549
549
  return $().create;
550
550
  }
551
- }), null), o(x, l(z, {
551
+ }), null), s(x, l(z, {
552
552
  size: "sm",
553
553
  variant: "ghost-destructive",
554
554
  get disabled() {
@@ -560,24 +560,24 @@ function Me(e) {
560
560
  }
561
561
  }), null), x;
562
562
  }
563
- }), null), o(w, l(h, {
563
+ }), null), s(w, l(h, {
564
564
  get when() {
565
565
  return k();
566
566
  },
567
567
  get children() {
568
568
  var x = Re();
569
- return o(x, () => oe(e, k())), x;
569
+ return s(x, () => se(e, k())), x;
570
570
  }
571
571
  }), null), w;
572
572
  })();
573
573
  }
574
- const Ge = q;
575
- ce(["click", "keydown"]);
574
+ const Ge = j;
575
+ de(["click", "keydown"]);
576
576
  export {
577
577
  We as PickerPanel,
578
578
  Xe as getParentPath,
579
579
  Ge as normalizePath,
580
580
  W as pickerCopy,
581
- oe as pickerErrorMessage,
581
+ se as pickerErrorMessage,
582
582
  Oe as usePickerNavigation
583
583
  };
@@ -97,8 +97,8 @@ function R(i) {
97
97
  error: () => A()
98
98
  }, s = () => i.notification.type === "error" || i.notification.type === "warning" ? "alert" : "status", f = () => s() === "alert" ? "assertive" : "polite";
99
99
  return (() => {
100
- var t = z(), e = t.firstChild, l = e.firstChild, r = l.nextSibling, p = r.firstChild, b = r.nextSibling;
101
- return u(l, () => n[i.notification.type]()), u(p, () => i.notification.title), u(r, d(x, {
100
+ var t = z(), e = t.firstChild, l = e.firstChild, r = l.nextSibling, b = r.firstChild, p = r.nextSibling;
101
+ return u(l, () => n[i.notification.type]()), u(b, () => i.notification.title), u(r, d(x, {
102
102
  get when() {
103
103
  return i.notification.message;
104
104
  },
@@ -114,8 +114,8 @@ function R(i) {
114
114
  var o = j();
115
115
  return o.$$click = () => i.notification.action?.onClick(), u(o, () => i.notification.action.label), o;
116
116
  }
117
- }), null), b.$$click = () => i.onDismiss(), k((o) => {
118
- var m = N("animate-in slide-in-from-right fade-in duration-200", "rounded-lg border border-border border-l-[3px] p-3.5", "shadow-md", "bg-card text-card-foreground", a[i.notification.type]), v = s(), g = f();
117
+ }), null), p.$$click = () => i.onDismiss(), k((o) => {
118
+ var m = N("animate-in slide-in-from-right fade-in duration-[var(--floe-duration-base)]", "rounded-control border border-border border-l-[3px] p-3.5", "shadow-md", "bg-card text-card-foreground", a[i.notification.type]), v = s(), g = f();
119
119
  return m !== o.e && $(t, o.e = m), v !== o.t && h(t, "role", o.t = v), g !== o.a && h(t, "aria-live", o.a = g), o;
120
120
  }, {
121
121
  e: void 0,