@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,41 +1,41 @@
1
- import { createComponent as o, Portal as N, insert as l, effect as u, className as $, memo as B, template as a, setAttribute as A } from "solid-js/web";
2
- import { createSignal as F, createEffect as V, createMemo as d, Show as m, For as j } from "solid-js";
1
+ import { createComponent as o, Portal as N, insert as a, effect as m, className as $, memo as B, template as l, setAttribute as A } from "solid-js/web";
2
+ import { createSignal as F, createEffect as V, createMemo as d, Show as u, For as j } from "solid-js";
3
3
  import { Presence as U, Motion as X } from "../../node_modules/.pnpm/solid-motionone@1.0.4_solid-js@1.9.17/node_modules/solid-motionone/dist/index.js";
4
- import { cn as f } from "../../utils/cn.js";
4
+ import { cn as p } from "../../utils/cn.js";
5
5
  import { useFileBrowserDrag as G } from "../../context/FileBrowserDragContext.js";
6
6
  import { FileItemIcon as W } from "./FileIcons.js";
7
- var Y = /* @__PURE__ */ a('<div class="text-[10px] text-muted-foreground pl-6">and <!> more...'), q = /* @__PURE__ */ a("<span>Drop to move"), y = /* @__PURE__ */ a("<div>"), H = /* @__PURE__ */ a('<div class="flex items-center gap-2.5 text-xs text-foreground"><span class="flex-shrink-0 w-4 h-4"></span><span class="truncate font-medium">'), J = /* @__PURE__ */ a("<span>Cannot drop here"), K = /* @__PURE__ */ a('<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><polyline points="20 6 9 17 4 12">'), L = /* @__PURE__ */ a('<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><line x1=18 y1=6 x2=6 y2=18></line><line x1=6 y1=6 x2=18 y2=18>');
7
+ var Y = /* @__PURE__ */ l('<div class="text-caption text-[var(--floe-ink-soft)] pl-6">and <!> more...'), q = /* @__PURE__ */ l("<span>Drop to move"), y = /* @__PURE__ */ l("<div>"), H = /* @__PURE__ */ l('<div class="flex items-center gap-2.5 text-xs text-foreground"><span class="flex-shrink-0 w-4 h-4"></span><span class="truncate font-medium">'), J = /* @__PURE__ */ l("<span>Cannot drop here"), K = /* @__PURE__ */ l('<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><polyline points="20 6 9 17 4 12">'), L = /* @__PURE__ */ l('<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><line x1=18 y1=6 x2=6 y2=18></line><line x1=6 y1=6 x2=18 y2=18>');
8
8
  const x = 3, P = 4, T = 4, Q = 0.2;
9
- function le() {
10
- const g = G(), n = () => g?.dragState(), S = () => n()?.isDragging ?? !1, C = () => n()?.isDragEnding ?? !1, [c, h] = F(null), [s, w] = F(!1);
11
- let _ = !1;
9
+ function ae() {
10
+ const g = G(), n = () => g?.dragState(), S = () => n()?.isDragging ?? !1, C = () => n()?.isDragEnding ?? !1, [c, h] = F(null), [i, v] = F(!1);
11
+ let w = !1;
12
12
  V(() => {
13
13
  const e = S(), t = C();
14
- if (e && !t && !_ && (h(null), w(!1)), t && !_) {
14
+ if (e && !t && !w && (h(null), v(!1)), t && !w) {
15
15
  const r = n();
16
16
  if (r && r.draggedItems.length > 0) {
17
- const i = r.pointerPosition;
17
+ const s = r.pointerPosition;
18
18
  h({
19
19
  items: r.draggedItems.map((D) => D.item),
20
20
  position: {
21
- x: i.x + P,
22
- y: i.y + T
21
+ x: s.x + P,
22
+ y: s.y + T
23
23
  },
24
24
  target: r.endAnimationTarget,
25
25
  committed: r.isDropCommitted
26
- }), w(!0);
26
+ }), v(!0);
27
27
  }
28
28
  }
29
- _ = t;
29
+ w = t;
30
30
  });
31
- const R = () => S() || C() || s(), E = d(() => {
31
+ const R = () => S() || C() || i(), k = d(() => {
32
32
  const e = c();
33
33
  return e ? e.items.slice(0, x) : (n()?.draggedItems ?? []).slice(0, x).map((r) => r.item);
34
- }), v = d(() => {
34
+ }), _ = d(() => {
35
35
  const e = c();
36
36
  return e ? e.items.length : n()?.draggedItems?.length ?? 0;
37
- }), k = d(() => {
38
- const e = v();
37
+ }), E = d(() => {
38
+ const e = _();
39
39
  return e > x ? e - x : 0;
40
40
  }), b = d(() => {
41
41
  const e = c();
@@ -52,27 +52,27 @@ function le() {
52
52
  }), z = d(() => {
53
53
  const e = c();
54
54
  return e?.committed && e?.target ? e.target : b();
55
- }), M = d(() => c()?.committed ?? !1), p = () => n()?.isValidDrop ?? !1, O = () => !!n()?.dropTarget, I = () => O() && !c();
55
+ }), M = d(() => c()?.committed ?? !1), f = () => n()?.isValidDrop ?? !1, O = () => !!n()?.dropTarget, I = () => O() && !c();
56
56
  return o(U, {
57
57
  get children() {
58
- return o(m, {
58
+ return o(u, {
59
59
  get when() {
60
- return B(() => !!R())() && E().length > 0;
60
+ return B(() => !!R())() && k().length > 0;
61
61
  },
62
62
  get children() {
63
63
  return o(N, {
64
64
  get children() {
65
65
  return o(X.div, {
66
66
  get class() {
67
- return f("fixed top-0 left-0 pointer-events-none z-[9999]", "will-change-transform");
67
+ return p("fixed top-0 left-0 pointer-events-none z-[9999]", "will-change-transform");
68
68
  },
69
69
  initial: !1,
70
70
  get animate() {
71
71
  return {
72
- x: s() ? z().x : b().x,
73
- y: s() ? z().y : b().y,
74
- opacity: s() ? 0 : 1,
75
- scale: s() ? 0.75 : 1
72
+ x: i() ? z().x : b().x,
73
+ y: i() ? z().y : b().y,
74
+ opacity: i() ? 0 : 1,
75
+ scale: i() ? 0.75 : 1
76
76
  };
77
77
  },
78
78
  exit: {
@@ -81,45 +81,45 @@ function le() {
81
81
  },
82
82
  get transition() {
83
83
  return {
84
- duration: s() ? Q : 0,
84
+ duration: i() ? Q : 0,
85
85
  easing: "ease-out"
86
86
  };
87
87
  },
88
88
  onMotionComplete: () => {
89
- s() && (w(!1), h(null));
89
+ i() && (v(!1), h(null));
90
90
  },
91
91
  get children() {
92
92
  return [(() => {
93
93
  var e = y();
94
- return l(e, o(j, {
94
+ return a(e, o(j, {
95
95
  get each() {
96
- return E();
96
+ return k();
97
97
  },
98
98
  children: (t) => (() => {
99
- var r = H(), i = r.firstChild, D = i.nextSibling;
100
- return l(i, o(W, {
99
+ var r = H(), s = r.firstChild, D = s.nextSibling;
100
+ return a(s, o(W, {
101
101
  item: t,
102
102
  size: 16,
103
103
  class: "w-4 h-4"
104
- })), l(D, () => t.name), r;
104
+ })), a(D, () => t.name), r;
105
105
  })()
106
- }), null), l(e, o(m, {
106
+ }), null), a(e, o(u, {
107
107
  get when() {
108
- return k() > 0;
108
+ return E() > 0;
109
109
  },
110
110
  get children() {
111
- var t = Y(), r = t.firstChild, i = r.nextSibling;
112
- return i.nextSibling, l(t, k, i), t;
111
+ var t = Y(), r = t.firstChild, s = r.nextSibling;
112
+ return s.nextSibling, a(t, E, s), t;
113
113
  }
114
- }), null), l(e, o(m, {
114
+ }), null), a(e, o(u, {
115
115
  get when() {
116
116
  return I();
117
117
  },
118
118
  get children() {
119
119
  var t = y();
120
- return l(t, o(m, {
120
+ return a(t, o(u, {
121
121
  get when() {
122
- return p();
122
+ return f();
123
123
  },
124
124
  get fallback() {
125
125
  return [o(ee, {
@@ -131,37 +131,37 @@ function le() {
131
131
  class: "w-3.5 h-3.5"
132
132
  }), q()];
133
133
  }
134
- })), u(() => $(t, f("flex items-center gap-1.5 pt-1.5 mt-1 border-t border-border text-[11px] font-medium", "transition-colors duration-150", p() ? "text-success" : "text-error"))), t;
134
+ })), m(() => $(t, p("flex items-center gap-1.5 pt-1.5 mt-1 border-t border-[var(--floe-line)] text-caption font-medium", "transition-colors duration-[var(--floe-duration-fast)]", f() ? "text-success" : "text-error"))), t;
135
135
  }
136
- }), null), u(() => $(e, f(
137
- "flex flex-col gap-1 p-2.5 rounded-lg",
138
- "bg-card border border-border",
139
- "shadow-md",
136
+ }), null), m(() => $(e, p(
137
+ "flex flex-col gap-1 p-2.5 rounded-control",
138
+ "bg-card border border-[var(--floe-line)]",
139
+ "shadow-[var(--floe-elevation-raised)]",
140
140
  "min-w-[150px] max-w-[220px]",
141
141
  // Entrance animation (only when not exiting)
142
- !s() && "animate-in fade-in zoom-in-95 duration-150",
142
+ !i() && "animate-in fade-in zoom-in-95 duration-[var(--floe-duration-fast)]",
143
143
  // Border transitions
144
- "transition-[border-color,box-shadow] duration-150",
145
- I() && p() && "border-success/60",
146
- I() && !p() && "border-error/60",
144
+ "transition-[border-color,box-shadow] duration-[var(--floe-duration-fast)]",
145
+ I() && f() && "border-success/60",
146
+ I() && !f() && "border-error/60",
147
147
  // Committed state
148
- s() && M() && "border-success/60"
148
+ i() && M() && "border-success/60"
149
149
  ))), e;
150
- })(), o(m, {
150
+ })(), o(u, {
151
151
  get when() {
152
- return v() > 1;
152
+ return _() > 1;
153
153
  },
154
154
  get children() {
155
155
  var e = y();
156
- return l(e, v), u(() => $(e, f(
156
+ return a(e, _), m(() => $(e, p(
157
157
  "absolute -top-2 -right-2",
158
158
  "min-w-[20px] h-5 px-1.5 rounded-full",
159
159
  "bg-foreground text-background",
160
160
  "flex items-center justify-center",
161
- "text-[10px] font-semibold",
162
- "shadow-sm",
161
+ "text-caption font-semibold",
162
+ "shadow-[var(--floe-elevation-raised)]",
163
163
  // Entrance animation (only when not exiting)
164
- !s() && "animate-in zoom-in-50 duration-200"
164
+ !i() && "animate-in zoom-in-50 duration-[var(--floe-duration-base)]"
165
165
  ))), e;
166
166
  }
167
167
  })];
@@ -177,15 +177,15 @@ function le() {
177
177
  function Z(g) {
178
178
  return (() => {
179
179
  var n = K();
180
- return u(() => A(n, "class", g.class)), n;
180
+ return m(() => A(n, "class", g.class)), n;
181
181
  })();
182
182
  }
183
183
  function ee(g) {
184
184
  return (() => {
185
185
  var n = L();
186
- return u(() => A(n, "class", g.class)), n;
186
+ return m(() => A(n, "class", g.class)), n;
187
187
  })();
188
188
  }
189
189
  export {
190
- le as FileBrowserDragPreview
190
+ ae as FileBrowserDragPreview
191
191
  };
@@ -14,7 +14,7 @@ import { FileBrowserToolbar as U } from "./FileBrowserToolbar.js";
14
14
  import { FileBrowserStatusBar as X } from "./FileBrowserStatusBar.js";
15
15
  import { FileContextMenu as Y } from "./FileContextMenu.js";
16
16
  import { FileBrowserDragPreview as Z } from "./DragPreview.js";
17
- var p = /* @__PURE__ */ S('<div class="border-b border-border">'), ee = /* @__PURE__ */ S('<div><div class="flex flex-1 min-h-0 relative"><div class="flex-1 min-w-0 flex flex-col"><div class="flex-1 min-h-0">');
17
+ var p = /* @__PURE__ */ S('<div class="border-b border-[var(--floe-line)]">'), ee = /* @__PURE__ */ S('<div><div class="flex flex-1 min-h-0 relative"><div class="flex-1 min-w-0 flex flex-col"><div class="flex-1 min-h-0">');
18
18
  function Ce(e) {
19
19
  return n(N, {
20
20
  get files() {
@@ -108,12 +108,12 @@ function Ce(e) {
108
108
  });
109
109
  }
110
110
  function te(e) {
111
- const r = T(), I = O(), l = q(), f = () => I.isMobile(), [h, c] = B(null), x = () => h() ?? r.sidebarWidth(), R = () => e.sidebarResizable ?? !0, o = () => (e.enableDragDrop ?? !0) && !!l, d = () => e.instanceId ?? `filebrowser-${Math.random().toString(36).slice(2, 9)}`;
111
+ const r = T(), I = O(), o = q(), f = () => I.isMobile(), [h, c] = B(null), x = () => h() ?? r.sidebarWidth(), R = () => e.sidebarResizable ?? !0, l = () => (e.enableDragDrop ?? !0) && !!o, s = () => e.instanceId ?? `filebrowser-${Math.random().toString(36).slice(2, 9)}`;
112
112
  let v, C = null, w = null;
113
113
  E(() => {
114
- if (!l || !o()) return;
114
+ if (!o || !l()) return;
115
115
  const t = {
116
- instanceId: d(),
116
+ instanceId: s(),
117
117
  currentPath: r.currentPath,
118
118
  files: r.files,
119
119
  onDragMove: e.onDragMove,
@@ -122,9 +122,9 @@ function te(e) {
122
122
  optimisticRemove: r.optimisticRemove,
123
123
  optimisticInsert: r.optimisticInsert
124
124
  };
125
- l.registerInstance(t);
125
+ o.registerInstance(t);
126
126
  }), L(() => {
127
- l && o() && l.unregisterInstance(d());
127
+ o && l() && o.unregisterInstance(s());
128
128
  });
129
129
  let M = !1, g = !1;
130
130
  _(() => {
@@ -140,13 +140,13 @@ function te(e) {
140
140
  }, y = () => !r.sidebarCollapsed() || !f(), P = () => {
141
141
  c(r.sidebarWidth());
142
142
  }, W = (t) => {
143
- c((s) => r.clampSidebarWidth((s ?? r.sidebarWidth()) + t));
143
+ c((d) => r.clampSidebarWidth((d ?? r.sidebarWidth()) + t));
144
144
  }, F = () => {
145
145
  const t = h();
146
146
  t !== null && (r.setSidebarWidth(t), c(null));
147
147
  };
148
148
  return (() => {
149
- var t = ee(), s = t.firstChild, u = s.firstChild, b = u.firstChild;
149
+ var t = ee(), d = t.firstChild, u = d.firstChild, b = u.firstChild;
150
150
  return t.$$keydown = D, a(t, n(m, {
151
151
  get when() {
152
152
  return e.header;
@@ -155,7 +155,7 @@ function te(e) {
155
155
  var i = p();
156
156
  return a(i, () => e.header), i;
157
157
  }
158
- }), s), a(s, n(G, {
158
+ }), d), a(d, n(G, {
159
159
  title: "Explorer",
160
160
  get width() {
161
161
  return x();
@@ -182,10 +182,10 @@ function te(e) {
182
182
  get children() {
183
183
  return n(j, {
184
184
  get instanceId() {
185
- return d();
185
+ return s();
186
186
  },
187
187
  get enableDragDrop() {
188
- return o();
188
+ return l();
189
189
  }
190
190
  });
191
191
  }
@@ -203,20 +203,20 @@ function te(e) {
203
203
  get fallback() {
204
204
  return n(Q, {
205
205
  get instanceId() {
206
- return d();
206
+ return s();
207
207
  },
208
208
  get enableDragDrop() {
209
- return o();
209
+ return l();
210
210
  }
211
211
  });
212
212
  },
213
213
  get children() {
214
214
  return n(J, {
215
215
  get instanceId() {
216
- return d();
216
+ return s();
217
217
  },
218
218
  get enableDragDrop() {
219
- return o();
219
+ return l();
220
220
  }
221
221
  });
222
222
  }
@@ -235,12 +235,12 @@ function te(e) {
235
235
  }
236
236
  }), null), a(t, n(m, {
237
237
  get when() {
238
- return o();
238
+ return l();
239
239
  },
240
240
  get children() {
241
241
  return n(Z, {});
242
242
  }
243
- }), null), A(() => $(t, K("flex flex-col h-full min-h-0 bg-background", "border border-border rounded-lg overflow-hidden", "shadow-sm", e.class))), t;
243
+ }), null), A(() => $(t, K("flex flex-col h-full min-h-0 bg-background", "border border-[var(--floe-line)] rounded-control overflow-hidden", "shadow-sm", e.class))), t;
244
244
  })();
245
245
  }
246
246
  k(["keydown"]);
@@ -1,9 +1,9 @@
1
- import { insert as i, createComponent as a, effect as f, className as v, setAttribute as h, template as u } from "solid-js/web";
2
- import { Show as d } from "solid-js";
1
+ import { insert as l, createComponent as a, effect as f, className as v, setAttribute as h, template as u } from "solid-js/web";
2
+ import { Show as m } from "solid-js";
3
3
  import { Skeleton as g } from "../loading/Skeleton.js";
4
4
  import { cn as w } from "../../utils/cn.js";
5
5
  import { useFileBrowser as $ } from "./FileBrowserContext.js";
6
- var b = /* @__PURE__ */ u("<span aria-hidden=true>·"), x = /* @__PURE__ */ u("<span>"), C = /* @__PURE__ */ u('<div class="flex flex-wrap items-center gap-1.5"><span>'), p = /* @__PURE__ */ u("<div>"), _ = /* @__PURE__ */ u("<div data-file-browser-status-bar=true>");
6
+ var x = /* @__PURE__ */ u("<span aria-hidden=true>·"), b = /* @__PURE__ */ u("<span>"), C = /* @__PURE__ */ u('<div class="flex flex-wrap items-center gap-1.5"><span>'), p = /* @__PURE__ */ u("<div>"), _ = /* @__PURE__ */ u("<div data-file-browser-status-bar=true>");
7
7
  function y(t) {
8
8
  return `${t} ${t === 1 ? "item" : "items"}`;
9
9
  }
@@ -11,10 +11,10 @@ function S(t) {
11
11
  return `${t} selected`;
12
12
  }
13
13
  function A(t) {
14
- const l = $(), m = () => l.currentFiles().length, s = () => l.selectedItems().size;
14
+ const i = $(), c = () => i.currentFiles().length, s = () => i.selectedItems().size;
15
15
  return (() => {
16
16
  var o = _();
17
- return i(o, a(d, {
17
+ return l(o, a(m, {
18
18
  get when() {
19
19
  return !t.initializing;
20
20
  },
@@ -28,32 +28,32 @@ function A(t) {
28
28
  get children() {
29
29
  return [(() => {
30
30
  var e = C(), n = e.firstChild;
31
- return i(n, () => t.formatItemCount?.(m()) ?? y(m())), i(e, a(d, {
31
+ return l(n, () => t.formatItemCount?.(c()) ?? y(c())), l(e, a(m, {
32
32
  get when() {
33
- return l.filterQueryApplied().trim();
33
+ return i.filterQueryApplied().trim();
34
34
  },
35
35
  get children() {
36
- return [b(), (() => {
37
- var r = x();
38
- return i(r, () => t.filteredLabel ?? "Filtered"), r;
36
+ return [x(), (() => {
37
+ var r = b();
38
+ return l(r, () => t.filteredLabel ?? "Filtered"), r;
39
39
  })()];
40
40
  }
41
- }), null), i(e, a(d, {
41
+ }), null), l(e, a(m, {
42
42
  get when() {
43
43
  return s() > 0;
44
44
  },
45
45
  get children() {
46
- return [b(), (() => {
47
- var r = x();
48
- return i(r, () => t.formatSelectedCount?.(s()) ?? S(s())), r;
46
+ return [x(), (() => {
47
+ var r = b();
48
+ return l(r, () => t.formatSelectedCount?.(s()) ?? S(s())), r;
49
49
  })()];
50
50
  }
51
51
  }), null), e;
52
52
  })(), (() => {
53
53
  var e = p();
54
- return i(e, () => l.currentPath()), f((n) => {
55
- var r = w("max-w-[200px] truncate text-right", t.pathClass), c = l.currentPath();
56
- return r !== n.e && v(e, n.e = r), c !== n.t && h(e, "title", n.t = c), n;
54
+ return l(e, () => i.currentPath()), f((n) => {
55
+ var r = w("max-w-[200px] truncate text-right", t.pathClass), d = i.currentPath();
56
+ return r !== n.e && v(e, n.e = r), d !== n.t && h(e, "title", n.t = d), n;
57
57
  }, {
58
58
  e: void 0,
59
59
  t: void 0
@@ -61,7 +61,7 @@ function A(t) {
61
61
  })()];
62
62
  }
63
63
  })), f((e) => {
64
- var n = t.initializing || void 0, r = w("flex flex-wrap items-center justify-between gap-2 border-t border-border px-3 py-1 text-[length:var(--floe-type-caption)] leading-4 text-muted-foreground", t.class);
64
+ var n = t.initializing || void 0, r = w("flex flex-wrap items-center justify-between gap-2 border-t border-[var(--floe-line)] px-3 py-1 text-[length:var(--floe-type-caption)] leading-4 text-[var(--floe-ink-soft)]", t.class);
65
65
  return n !== e.e && h(o, "aria-busy", e.e = n), r !== e.t && v(o, e.t = r), e;
66
66
  }, {
67
67
  e: void 0,
@@ -1,11 +1,11 @@
1
1
  import { addEventListener as M, insert as n, createComponent as l, use as S, effect as s, className as f, template as a, setAttribute as g, delegateEvents as Q } from "solid-js/web";
2
- import { onMount as R, Show as k } from "solid-js";
2
+ import { onMount as R, Show as y } from "solid-js";
3
3
  import { cn as v } from "../../utils/cn.js";
4
4
  import { deferAfterPaint as E } from "../../utils/defer.js";
5
5
  import { useFileBrowser as L } from "./FileBrowserContext.js";
6
6
  import { Breadcrumb as T } from "./Breadcrumb.js";
7
7
  import { Grid as V } from "../icons/index.js";
8
- var N = /* @__PURE__ */ a('<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><line x1=8 y1=6 x2=21 y2=6></line><line x1=8 y1=12 x2=21 y2=12></line><line x1=8 y1=18 x2=21 y2=18></line><line x1=3 y1=6 x2=3.01 y2=6></line><line x1=3 y1=12 x2=3.01 y2=12></line><line x1=3 y1=18 x2=3.01 y2=18>'), U = /* @__PURE__ */ a('<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><path d="M4 20h16a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.93a2 2 0 0 1-1.66-.9l-.82-1.2A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13c0 1.1.9 2 2 2Z"></path><path d="M12 10v6"></path><path d="m9 13 3-3 3 3">'), G = /* @__PURE__ */ a('<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><rect width=18 height=18 x=3 y=3 rx=2 ry=2></rect><line x1=9 y1=3 x2=9 y2=21>'), P = /* @__PURE__ */ a('<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><circle cx=11 cy=11 r=8></circle><path d="m21 21-4.3-4.3">'), D = /* @__PURE__ */ a('<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><path d="M18 6 6 18"></path><path d="m6 6 12 12">'), H = /* @__PURE__ */ a('<button type=button aria-label="Clear filter">'), K = /* @__PURE__ */ a('<div data-floe-input-surface class="flex items-center flex-1 gap-1 px-2 py-1 bg-muted/50 rounded-md border border-border/50"><input type=text placeholder=Filter... aria-label="Filter files by name">'), X = /* @__PURE__ */ a('<div class="ml-0.5 flex shrink-0 items-center gap-1">'), Z = /* @__PURE__ */ a('<div><button type=button aria-label="Toggle sidebar"></button><button type=button aria-label="Navigate to parent folder"></button><div></div><div></div><div class="flex items-center gap-0.5 p-0.5 bg-muted/50 rounded-md">'), q = /* @__PURE__ */ a('<button type=button aria-label="Filter files">'), z = /* @__PURE__ */ a("<button type=button>");
8
+ var N = /* @__PURE__ */ a('<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><line x1=8 y1=6 x2=21 y2=6></line><line x1=8 y1=12 x2=21 y2=12></line><line x1=8 y1=18 x2=21 y2=18></line><line x1=3 y1=6 x2=3.01 y2=6></line><line x1=3 y1=12 x2=3.01 y2=12></line><line x1=3 y1=18 x2=3.01 y2=18>'), U = /* @__PURE__ */ a('<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><path d="M4 20h16a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.93a2 2 0 0 1-1.66-.9l-.82-1.2A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13c0 1.1.9 2 2 2Z"></path><path d="M12 10v6"></path><path d="m9 13 3-3 3 3">'), G = /* @__PURE__ */ a('<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><rect width=18 height=18 x=3 y=3 rx=2 ry=2></rect><line x1=9 y1=3 x2=9 y2=21>'), P = /* @__PURE__ */ a('<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><circle cx=11 cy=11 r=8></circle><path d="m21 21-4.3-4.3">'), q = /* @__PURE__ */ a('<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><path d="M18 6 6 18"></path><path d="m6 6 12 12">'), D = /* @__PURE__ */ a('<button type=button aria-label="Clear filter">'), H = /* @__PURE__ */ a('<div data-floe-input-surface class="flex items-center flex-1 gap-1 px-2 py-1 bg-[var(--floe-well)] rounded-control border border-[var(--floe-line)]"><input type=text placeholder=Filter... aria-label="Filter files by name">'), K = /* @__PURE__ */ a('<div class="ml-0.5 flex shrink-0 items-center gap-1">'), X = /* @__PURE__ */ a('<div><button type=button aria-label="Toggle sidebar"></button><button type=button aria-label="Navigate to parent folder"></button><div></div><div></div><div class="flex items-center gap-0.5 p-0.5 bg-[var(--floe-well)] rounded-group">'), Z = /* @__PURE__ */ a('<button type=button aria-label="Filter files">'), z = /* @__PURE__ */ a("<button type=button>");
9
9
  const J = (r) => (() => {
10
10
  var e = N();
11
11
  return s(() => g(e, "class", r.class)), e;
@@ -19,20 +19,20 @@ const J = (r) => (() => {
19
19
  var e = P();
20
20
  return s(() => g(e, "class", r.class)), e;
21
21
  })(), Y = (r) => (() => {
22
- var e = D();
22
+ var e = q();
23
23
  return s(() => g(e, "class", r.class)), e;
24
24
  })();
25
25
  function se(r) {
26
26
  const e = L();
27
27
  let i;
28
- const c = () => {
28
+ const u = () => {
29
29
  const d = e.currentPath();
30
30
  return d !== "/" && d !== "";
31
- }, b = () => {
31
+ }, w = () => {
32
32
  e.isFilterActive() ? (e.setFilterQuery(""), e.setFilterActive(!1)) : (e.setFilterActive(!0), E(() => i?.focus()));
33
33
  }, h = () => {
34
34
  e.setFilterQuery(""), i?.focus();
35
- }, w = (d) => {
35
+ }, x = (d) => {
36
36
  d.key === "Escape" && (e.setFilterQuery(""), e.setFilterActive(!1));
37
37
  }, I = () => {
38
38
  e.filterQuery().trim() || e.setFilterActive(!1);
@@ -40,40 +40,40 @@ function se(r) {
40
40
  return R(() => {
41
41
  r.filterInputRef && i && r.filterInputRef(i);
42
42
  }), (() => {
43
- var d = Z(), x = d.firstChild, m = x.nextSibling, p = m.nextSibling, y = p.nextSibling, $ = y.nextSibling;
44
- return M(x, "click", e.toggleSidebar, !0), n(x, l(W, {
43
+ var d = X(), m = d.firstChild, b = m.nextSibling, p = b.nextSibling, k = p.nextSibling, $ = k.nextSibling;
44
+ return M(m, "click", e.toggleSidebar, !0), n(m, l(W, {
45
45
  class: "w-4 h-4"
46
- })), M(m, "click", e.navigateUp, !0), n(m, l(O, {
46
+ })), M(b, "click", e.navigateUp, !0), n(b, l(O, {
47
47
  class: "w-4 h-4"
48
- })), n(p, l(T, {})), n(y, l(k, {
48
+ })), n(p, l(T, {})), n(k, l(y, {
49
49
  get when() {
50
50
  return e.isFilterActive();
51
51
  },
52
52
  get fallback() {
53
53
  return (() => {
54
- var t = q();
55
- return t.$$click = b, n(t, l(j, {
54
+ var t = Z();
55
+ return t.$$click = w, n(t, l(j, {
56
56
  class: "w-4 h-4"
57
- })), s(() => f(t, v("flex items-center justify-center w-7 h-7 rounded cursor-pointer", "transition-colors duration-100", "hover:bg-muted/70", "focus:outline-none focus-visible:ring-1 focus-visible:ring-ring"))), t;
57
+ })), s(() => f(t, v("flex items-center justify-center w-7 h-7 rounded-xs cursor-pointer", "transition-colors duration-[var(--floe-duration-fast)]", "hover:bg-[var(--floe-state-press)]", "focus:outline-none focus-visible:ring-1 focus-visible:ring-ring"))), t;
58
58
  })();
59
59
  },
60
60
  get children() {
61
- var t = K(), u = t.firstChild;
61
+ var t = H(), c = t.firstChild;
62
62
  return n(t, l(j, {
63
- class: "w-3.5 h-3.5 text-muted-foreground flex-shrink-0"
64
- }), u), u.addEventListener("blur", I), u.$$keydown = w, u.$$input = (o) => e.setFilterQuery(o.currentTarget.value), S((o) => {
63
+ class: "w-3.5 h-3.5 text-[var(--floe-ink-soft)] flex-shrink-0"
64
+ }), c), c.addEventListener("blur", I), c.$$keydown = x, c.$$input = (o) => e.setFilterQuery(o.currentTarget.value), S((o) => {
65
65
  i = o, r.filterInputRef && r.filterInputRef(o);
66
- }, u), n(t, l(k, {
66
+ }, c), n(t, l(y, {
67
67
  get when() {
68
68
  return e.filterQuery();
69
69
  },
70
70
  get children() {
71
- var o = H();
71
+ var o = D();
72
72
  return o.$$click = h, n(o, l(Y, {
73
73
  class: "w-3 h-3"
74
- })), s(() => f(o, v("flex items-center justify-center w-4 h-4 rounded-sm cursor-pointer", "text-muted-foreground hover:text-foreground", "transition-colors duration-100"))), o;
74
+ })), s(() => f(o, v("flex items-center justify-center w-4 h-4 rounded-sm cursor-pointer", "text-[var(--floe-ink-soft)] hover:text-foreground", "transition-colors duration-[var(--floe-duration-fast)]"))), o;
75
75
  }
76
- }), null), s(() => f(u, v("flex-1 min-w-0 bg-transparent text-xs", "outline-none border-0 ring-0 shadow-none appearance-none", "focus:outline-none focus:ring-0", "placeholder:text-muted-foreground/60"))), s(() => u.value = e.filterQuery()), t;
76
+ }), null), s(() => f(c, v("flex-1 min-w-0 bg-transparent text-xs", "outline-none border-0 ring-0 shadow-none appearance-none", "focus:outline-none focus:ring-0", "placeholder:text-[var(--floe-ink-quiet)]"))), s(() => c.value = e.filterQuery()), t;
77
77
  }
78
78
  })), n($, l(B, {
79
79
  mode: "list",
@@ -91,17 +91,17 @@ function se(r) {
91
91
  onClick: () => e.setViewMode("grid"),
92
92
  icon: V,
93
93
  label: "Grid view"
94
- }), null), n(d, l(k, {
94
+ }), null), n(d, l(y, {
95
95
  get when() {
96
96
  return r.endActions;
97
97
  },
98
98
  get children() {
99
- var t = X();
99
+ var t = K();
100
100
  return n(t, () => r.endActions), t;
101
101
  }
102
102
  }), null), s((t) => {
103
- var u = v("flex items-center gap-2 px-2 py-1.5 border-b border-border", "bg-background/50 backdrop-blur-sm", r.class), o = v("md:hidden flex items-center justify-center w-7 h-7 rounded cursor-pointer", "transition-colors duration-100", "hover:bg-muted/70", "focus:outline-none focus-visible:ring-1 focus-visible:ring-ring", !e.sidebarCollapsed() && "bg-muted/50"), F = !c(), _ = v("flex items-center justify-center w-7 h-7 rounded cursor-pointer", "transition-colors duration-100", "hover:bg-muted/70", "focus:outline-none focus-visible:ring-1 focus-visible:ring-ring", "disabled:opacity-40 disabled:cursor-not-allowed disabled:hover:bg-transparent"), A = v("flex-1 min-w-0 overflow-hidden transition-all duration-200", e.isFilterActive() && "hidden sm:block sm:flex-1"), C = v("flex items-center gap-1 transition-all duration-200 ease-out", e.isFilterActive() ? "flex-1 sm:flex-none sm:w-48" : "w-7");
104
- return u !== t.e && f(d, t.e = u), o !== t.t && f(x, t.t = o), F !== t.a && (m.disabled = t.a = F), _ !== t.o && f(m, t.o = _), A !== t.i && f(p, t.i = A), C !== t.n && f(y, t.n = C), t;
103
+ var c = v("flex items-center gap-2 px-2 py-1.5 border-b border-[var(--floe-line)]", "bg-background/50 backdrop-blur-sm", r.class), o = v("md:hidden flex items-center justify-center w-7 h-7 rounded-xs cursor-pointer", "transition-colors duration-[var(--floe-duration-fast)]", "hover:bg-[var(--floe-state-press)]", "focus:outline-none focus-visible:ring-1 focus-visible:ring-ring", !e.sidebarCollapsed() && "bg-[var(--floe-well)]"), F = !u(), _ = v("flex items-center justify-center w-7 h-7 rounded-xs cursor-pointer", "transition-colors duration-[var(--floe-duration-fast)]", "hover:bg-[var(--floe-state-press)]", "focus:outline-none focus-visible:ring-1 focus-visible:ring-ring", "disabled:opacity-40 disabled:cursor-not-allowed disabled:hover:bg-transparent"), A = v("flex-1 min-w-0 overflow-hidden transition-colors duration-[var(--floe-duration-base)]", e.isFilterActive() && "hidden sm:block sm:flex-1"), C = v("flex items-center gap-1 transition-colors duration-[var(--floe-duration-base)] ease-out", e.isFilterActive() ? "flex-1 sm:flex-none sm:w-48" : "w-7");
104
+ return c !== t.e && f(d, t.e = c), o !== t.t && f(m, t.t = o), F !== t.a && (b.disabled = t.a = F), _ !== t.o && f(b, t.o = _), A !== t.i && f(p, t.i = A), C !== t.n && f(k, t.n = C), t;
105
105
  }, {
106
106
  e: void 0,
107
107
  t: void 0,
@@ -118,9 +118,9 @@ function B(r) {
118
118
  var i = z();
119
119
  return i.$$click = () => r.onClick(), n(i, l(r.icon, {
120
120
  class: "w-3.5 h-3.5"
121
- })), s((c) => {
122
- var b = v("flex items-center justify-center w-6 h-6 rounded cursor-pointer", "transition-all duration-150", "focus:outline-none focus-visible:ring-1 focus-visible:ring-ring", e() ? "bg-background shadow-sm text-foreground" : "text-muted-foreground hover:text-foreground"), h = r.label, w = e();
123
- return b !== c.e && f(i, c.e = b), h !== c.t && g(i, "aria-label", c.t = h), w !== c.a && g(i, "aria-pressed", c.a = w), c;
121
+ })), s((u) => {
122
+ var w = v("flex items-center justify-center w-6 h-6 rounded-sm cursor-pointer", "transition-colors duration-[var(--floe-duration-fast)]", "focus:outline-none focus-visible:ring-1 focus-visible:ring-ring", e() ? "bg-background shadow-[var(--floe-elevation-raised)] text-foreground" : "text-[var(--floe-ink-soft)] hover:text-foreground"), h = r.label, x = e();
123
+ return w !== u.e && f(i, u.e = w), h !== u.t && g(i, "aria-label", u.t = h), x !== u.a && g(i, "aria-pressed", u.a = x), u;
124
124
  }, {
125
125
  e: void 0,
126
126
  t: void 0,