@floegence/floe-webapp-core 0.15.9 → 0.15.11

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.
@@ -29,5 +29,7 @@ export interface DirectoryInputProps {
29
29
  class?: string;
30
30
  /** Maximum height for the tree panel (default: '200px') */
31
31
  treeMaxHeight?: string;
32
+ /** Whether the tree panel is expanded by default (default: true) */
33
+ defaultExpanded?: boolean;
32
34
  }
33
35
  export declare function DirectoryInput(props: DirectoryInputProps): import("solid-js").JSX.Element;
@@ -1,4 +1,4 @@
1
- import { type Accessor } from 'solid-js';
1
+ import { type Accessor, type JSX } from 'solid-js';
2
2
  export type NotificationType = 'info' | 'success' | 'warning' | 'error';
3
3
  export interface Notification {
4
4
  id: string;
@@ -23,10 +23,10 @@ export interface NotificationContextValue {
23
23
  }
24
24
  export declare function createNotificationService(): NotificationContextValue;
25
25
  export declare const NotificationProvider: (props: {
26
- children: import("solid-js").JSX.Element;
27
- }) => import("solid-js").JSX.Element, useNotification: () => NotificationContextValue;
26
+ children: JSX.Element;
27
+ }) => JSX.Element, useNotification: () => NotificationContextValue;
28
28
  /**
29
29
  * Notification toast container component
30
30
  * Place this at the root of your app
31
31
  */
32
- export declare function NotificationContainer(): import("solid-js").JSX.Element;
32
+ export declare function NotificationContainer(): JSX.Element;
package/dist/index126.js CHANGED
@@ -1,20 +1,10 @@
1
- function W(t) {
2
- const c = t.labels, i = c.length;
3
- if (i <= 2) return;
4
- const n = t.viewBoxWidth;
5
- if (!Number.isFinite(n) || n <= 0) return;
6
- const x = t.padding.left, s = t.padding.right, o = n - x - s;
7
- if (!Number.isFinite(o) || o <= 0) return;
8
- const e = t.viewportWidthPx, m = typeof e == "number" && Number.isFinite(e) && e > 0 ? Math.min(1, e / n) : 1, l = o * m;
9
- let a = 0;
10
- for (const r of c)
11
- r && r.length > a && (a = r.length);
12
- if (a <= 0) return;
13
- const f = t.axisFontSizePx ?? 10, u = t.avgCharWidthFactor ?? 0.6, g = t.minGapPx ?? 6, d = a * f * u + g, h = l / Math.max(1, i - 1);
14
- if (h >= d) return;
15
- const v = Math.max(1, Math.ceil(d / Math.max(1, h))), P = Math.floor((i - 1) / v) + 1;
16
- return Math.max(2, Math.min(i, P));
1
+ function i(e) {
2
+ return e.activeIsFullScreen || e.mobileSidebarOpen ? e.activeId : "";
3
+ }
4
+ function t(e) {
5
+ return e.clickedIsFullScreen ? { nextActiveId: e.clickedId, nextMobileSidebarOpen: !1 } : e.clickedId === e.activeId && e.mobileSidebarOpen ? { nextActiveId: e.clickedId, nextMobileSidebarOpen: !1 } : { nextActiveId: e.clickedId, nextMobileSidebarOpen: !0 };
17
6
  }
18
7
  export {
19
- W as computeAutoMaxXAxisLabels
8
+ i as resolveMobileTabActiveId,
9
+ t as resolveMobileTabSelect
20
10
  };
package/dist/index127.js CHANGED
@@ -1,21 +1,21 @@
1
- import { createComponent as n, Portal as D, insert as o, Dynamic as I, effect as p, className as x, setStyleProperty as F, memo as E, template as l, setAttribute as y } from "solid-js/web";
2
- import { createMemo as b, Show as m, For as P } from "solid-js";
3
- import { cn as h } from "./index113.js";
1
+ import { createComponent as n, Portal as D, insert as o, Dynamic as I, effect as m, className as x, setStyleProperty as F, memo as E, template as i, setAttribute as y } from "solid-js/web";
2
+ import { createMemo as b, Show as g, For as P } from "solid-js";
3
+ import { cn as f } from "./index113.js";
4
4
  import { useFileBrowserDrag as R } from "./index105.js";
5
5
  import { FolderIcon as T, getFileIcon as O } from "./index56.js";
6
- var V = /* @__PURE__ */ l('<div class="text-[10px] text-muted-foreground pl-6">and <!> more...'), j = /* @__PURE__ */ l("<span>Drop to move"), $ = /* @__PURE__ */ l("<div>"), z = /* @__PURE__ */ l("<div><div>"), B = /* @__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">'), M = /* @__PURE__ */ l("<span>Cannot drop here"), A = /* @__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">'), U = /* @__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>');
6
+ var V = /* @__PURE__ */ i('<div class="text-[10px] text-muted-foreground pl-6">and <!> more...'), j = /* @__PURE__ */ i("<span>Drop to move"), $ = /* @__PURE__ */ i("<div>"), z = /* @__PURE__ */ i("<div><div>"), B = /* @__PURE__ */ i('<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">'), M = /* @__PURE__ */ i("<span>Cannot drop here"), A = /* @__PURE__ */ i('<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">'), U = /* @__PURE__ */ i('<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
7
  const w = 3, X = 16, N = 16;
8
8
  function L() {
9
- const d = R(), r = () => d?.dragState(), k = () => r()?.isDragging ?? !1, c = () => r()?.draggedItems ?? [], v = () => r()?.pointerPosition ?? {
9
+ const d = R(), r = () => d?.dragState(), S = () => r()?.isDragging ?? !1, c = () => r()?.draggedItems ?? [], v = () => r()?.pointerPosition ?? {
10
10
  x: 0,
11
11
  y: 0
12
- }, g = () => r()?.isValidDrop ?? !1, f = () => !!r()?.dropTarget, S = b(() => c().slice(0, w).map((a) => a.item)), _ = b(() => {
12
+ }, u = () => r()?.isValidDrop ?? !1, h = () => !!r()?.dropTarget, k = b(() => c().slice(0, w).map((a) => a.item)), _ = b(() => {
13
13
  const t = c().length;
14
14
  return t > w ? t - w : 0;
15
15
  }), C = (t) => t.type === "folder" ? T : O(t.extension);
16
- return n(m, {
16
+ return n(g, {
17
17
  get when() {
18
- return E(() => !!k())() && c().length > 0;
18
+ return E(() => !!S())() && c().length > 0;
19
19
  },
20
20
  get children() {
21
21
  return n(D, {
@@ -23,34 +23,34 @@ function L() {
23
23
  var t = z(), a = t.firstChild;
24
24
  return o(a, n(P, {
25
25
  get each() {
26
- return S();
26
+ return k();
27
27
  },
28
28
  children: (e) => (() => {
29
- var s = B(), i = s.firstChild, u = i.nextSibling;
30
- return o(i, n(I, {
29
+ var s = B(), l = s.firstChild, p = l.nextSibling;
30
+ return o(l, n(I, {
31
31
  get component() {
32
32
  return C(e);
33
33
  },
34
34
  class: "w-4 h-4"
35
- })), o(u, () => e.name), s;
35
+ })), o(p, () => e.name), s;
36
36
  })()
37
- }), null), o(a, n(m, {
37
+ }), null), o(a, n(g, {
38
38
  get when() {
39
39
  return _() > 0;
40
40
  },
41
41
  get children() {
42
- var e = V(), s = e.firstChild, i = s.nextSibling;
43
- return i.nextSibling, o(e, _, i), e;
42
+ var e = V(), s = e.firstChild, l = s.nextSibling;
43
+ return l.nextSibling, o(e, _, l), e;
44
44
  }
45
- }), null), o(a, n(m, {
45
+ }), null), o(a, n(g, {
46
46
  get when() {
47
- return f();
47
+ return h();
48
48
  },
49
49
  get children() {
50
50
  var e = $();
51
- return o(e, n(m, {
51
+ return o(e, n(g, {
52
52
  get when() {
53
- return g();
53
+ return u();
54
54
  },
55
55
  get fallback() {
56
56
  return [n(Y, {
@@ -62,43 +62,43 @@ function L() {
62
62
  class: "w-3.5 h-3.5"
63
63
  }), j()];
64
64
  }
65
- })), p(() => x(e, h("flex items-center gap-1.5 pt-1.5 mt-1 border-t border-border/50 text-[11px] font-medium", "transition-colors duration-150", g() ? "text-primary" : "text-destructive"))), e;
65
+ })), m(() => x(e, f("flex items-center gap-1.5 pt-1.5 mt-1 border-t border-border text-[11px] font-medium", "transition-colors duration-150", u() ? "text-success" : "text-error"))), e;
66
66
  }
67
- }), null), o(t, n(m, {
67
+ }), null), o(t, n(g, {
68
68
  get when() {
69
69
  return c().length > 1;
70
70
  },
71
71
  get children() {
72
72
  var e = $();
73
- return o(e, () => c().length), p(() => x(e, h(
73
+ return o(e, () => c().length), m(() => x(e, f(
74
74
  "absolute -top-2 -right-2",
75
- "min-w-[20px] h-5 px-1 rounded-full",
76
- "bg-primary text-primary-foreground",
75
+ "min-w-[20px] h-5 px-1.5 rounded-full",
76
+ "bg-foreground text-background",
77
77
  "flex items-center justify-center",
78
78
  "text-[10px] font-semibold",
79
- "shadow-lg shadow-primary/30",
80
- // Subtle pulse on first render
79
+ "shadow-sm",
80
+ // Entrance animation
81
81
  "animate-in zoom-in-50 duration-200"
82
82
  ))), e;
83
83
  }
84
- }), null), p((e) => {
85
- var s = h(
84
+ }), null), m((e) => {
85
+ var s = f(
86
86
  "fixed top-0 left-0 pointer-events-none z-[9999]",
87
87
  // GPU-accelerated transform for smooth movement
88
88
  "will-change-transform"
89
- ), i = `translate3d(${v().x + X}px, ${v().y + N}px, 0)`, u = h(
89
+ ), l = `translate3d(${v().x + X}px, ${v().y + N}px, 0)`, p = f(
90
90
  "flex flex-col gap-1 p-2.5 rounded-lg",
91
- "bg-popover/95 backdrop-blur-sm border border-border",
92
- "shadow-xl shadow-black/10",
91
+ "bg-card border border-border",
92
+ "shadow-md",
93
93
  "min-w-[150px] max-w-[220px]",
94
94
  // Entrance animation
95
95
  "animate-in fade-in zoom-in-95 duration-150",
96
96
  // Visual feedback for valid/invalid drop with smooth transition
97
97
  "transition-[border-color,box-shadow] duration-150",
98
- f() && g() && "border-primary shadow-primary/20",
99
- f() && !g() && "border-destructive shadow-destructive/20"
98
+ h() && u() && "border-success/60",
99
+ h() && !u() && "border-error/60"
100
100
  );
101
- return s !== e.e && x(t, e.e = s), i !== e.t && F(t, "transform", e.t = i), u !== e.a && x(a, e.a = u), e;
101
+ return s !== e.e && x(t, e.e = s), l !== e.t && F(t, "transform", e.t = l), p !== e.a && x(a, e.a = p), e;
102
102
  }, {
103
103
  e: void 0,
104
104
  t: void 0,
@@ -112,13 +112,13 @@ function L() {
112
112
  function W(d) {
113
113
  return (() => {
114
114
  var r = A();
115
- return p(() => y(r, "class", d.class)), r;
115
+ return m(() => y(r, "class", d.class)), r;
116
116
  })();
117
117
  }
118
118
  function Y(d) {
119
119
  return (() => {
120
120
  var r = U();
121
- return p(() => y(r, "class", d.class)), r;
121
+ return m(() => y(r, "class", d.class)), r;
122
122
  })();
123
123
  }
124
124
  export {
package/dist/index130.js CHANGED
@@ -1,10 +1,20 @@
1
- function i(e) {
2
- return e.activeIsFullScreen || e.mobileSidebarOpen ? e.activeId : "";
3
- }
4
- function t(e) {
5
- return e.clickedIsFullScreen ? { nextActiveId: e.clickedId, nextMobileSidebarOpen: !1 } : e.clickedId === e.activeId && e.mobileSidebarOpen ? { nextActiveId: e.clickedId, nextMobileSidebarOpen: !1 } : { nextActiveId: e.clickedId, nextMobileSidebarOpen: !0 };
1
+ function W(t) {
2
+ const c = t.labels, i = c.length;
3
+ if (i <= 2) return;
4
+ const n = t.viewBoxWidth;
5
+ if (!Number.isFinite(n) || n <= 0) return;
6
+ const x = t.padding.left, s = t.padding.right, o = n - x - s;
7
+ if (!Number.isFinite(o) || o <= 0) return;
8
+ const e = t.viewportWidthPx, m = typeof e == "number" && Number.isFinite(e) && e > 0 ? Math.min(1, e / n) : 1, l = o * m;
9
+ let a = 0;
10
+ for (const r of c)
11
+ r && r.length > a && (a = r.length);
12
+ if (a <= 0) return;
13
+ const f = t.axisFontSizePx ?? 10, u = t.avgCharWidthFactor ?? 0.6, g = t.minGapPx ?? 6, d = a * f * u + g, h = l / Math.max(1, i - 1);
14
+ if (h >= d) return;
15
+ const v = Math.max(1, Math.ceil(d / Math.max(1, h))), P = Math.floor((i - 1) / v) + 1;
16
+ return Math.max(2, Math.min(i, P));
6
17
  }
7
18
  export {
8
- i as resolveMobileTabActiveId,
9
- t as resolveMobileTabSelect
19
+ W as computeAutoMaxXAxisLabels
10
20
  };
package/dist/index2.js CHANGED
@@ -1,5 +1,5 @@
1
- import { delegateEvents as H, insert as a, createComponent as i, Dynamic as $, memo as p, effect as I, className as T, setStyleProperty as R, template as v } from "solid-js/web";
2
- import { createSignal as P, createEffect as g, createMemo as x, For as _, Show as u } from "solid-js";
1
+ import { delegateEvents as H, insert as a, createComponent as i, Dynamic as $, memo as p, effect as I, className as T, setStyleProperty as R, template as g } from "solid-js/web";
2
+ import { createSignal as P, createEffect as v, createMemo as x, For as _, Show as u } from "solid-js";
3
3
  import { useLayout as W } from "./index97.js";
4
4
  import { useResolvedFloeConfig as E } from "./index95.js";
5
5
  import { useMediaQuery as Q } from "./index106.js";
@@ -11,102 +11,101 @@ import { BottomBar as j } from "./index6.js";
11
11
  import { MobileTabBar as q } from "./index7.js";
12
12
  import { ActivityBar as G } from "./index3.js";
13
13
  import { ResizeHandle as M } from "./index8.js";
14
- import { resolveMobileTabActiveId as J, resolveMobileTabSelect as K } from "./index130.js";
15
- var B = /* @__PURE__ */ v('<div class="flex items-center gap-2">'), U = /* @__PURE__ */ v('<div class="absolute inset-0 z-40 bg-black/30 cursor-pointer">'), V = /* @__PURE__ */ v('<div><div class="h-full overflow-auto overscroll-contain">'), X = /* @__PURE__ */ v('<div class="relative shrink-0 border-t border-border bg-terminal-background overflow-hidden">'), Y = /* @__PURE__ */ v('<div><div class="flex-1 min-h-0 flex overflow-hidden relative"><div class="flex-1 min-w-0 flex flex-col overflow-hidden"><main class="flex-1 min-h-0 overflow-auto overscroll-contain">');
16
- function be(l) {
17
- const t = W(), k = E(), d = Q(k.config.layout.mobileQuery), [S, b] = P(!1), c = () => l.sidebarMode === "hidden", w = (e) => t.setSidebarActiveTab(e, {
18
- openSidebar: !c()
19
- }), m = (() => {
14
+ import { resolveMobileTabActiveId as J, resolveMobileTabSelect as K } from "./index126.js";
15
+ var B = /* @__PURE__ */ g('<div class="flex items-center gap-2">'), U = /* @__PURE__ */ g('<div class="absolute inset-0 z-40 bg-black/30 cursor-pointer">'), V = /* @__PURE__ */ g('<div><div class="h-full overflow-auto overscroll-contain">'), X = /* @__PURE__ */ g('<div class="relative shrink-0 border-t border-border bg-terminal-background overflow-hidden">'), Y = /* @__PURE__ */ g('<div><div class="flex-1 min-h-0 flex overflow-hidden relative"><div class="flex-1 min-w-0 flex flex-col overflow-hidden"><main class="flex-1 min-h-0 overflow-auto overscroll-contain">');
16
+ function be(o) {
17
+ const t = W(), k = E(), s = Q(k.config.layout.mobileQuery), [S, b] = P(!1), d = () => o.sidebarMode === "hidden", w = (e) => t.setSidebarActiveTab(e, {
18
+ openSidebar: !d()
19
+ }), c = (() => {
20
20
  try {
21
21
  return D();
22
22
  } catch {
23
23
  return null;
24
24
  }
25
25
  })();
26
- g(() => {
27
- c() && b(!1);
28
- }), g(() => {
29
- const e = d();
26
+ v(() => {
27
+ d() && b(!1);
28
+ }), v(() => {
29
+ const e = s();
30
30
  t.isMobile() !== e && t.setIsMobile(e);
31
- }), g(() => {
32
- d() || b(!1);
31
+ }), v(() => {
32
+ s() || b(!1);
33
33
  });
34
- const f = x(() => l.activityItems ? l.activityItems : m ? m.sidebarItems().filter((e) => !!e.icon).filter((e) => !(d() && e.sidebar?.hiddenOnMobile)).map((e) => ({
34
+ const f = x(() => o.activityItems ? o.activityItems : c ? c.sidebarItems().filter((e) => !!e.icon).filter((e) => !(s() && e.sidebar?.hiddenOnMobile)).map((e) => ({
35
35
  id: e.id,
36
36
  icon: e.icon,
37
37
  label: e.name,
38
38
  badge: e.sidebar?.badge
39
39
  })) : []), y = (e) => {
40
- if (c()) return;
41
- if (l.sidebarContent) return l.sidebarContent(e);
42
- if (!m) return;
43
- const n = m.getComponent(e);
44
- if (n?.sidebar && !n.sidebar.fullScreen)
40
+ if (d()) return;
41
+ if (o.sidebarContent) return o.sidebarContent(e);
42
+ if (!c) return;
43
+ const l = c.getComponent(e);
44
+ if (l?.sidebar && !l.sidebar.fullScreen)
45
45
  return i($, {
46
46
  get component() {
47
- return n.component;
47
+ return l.component;
48
48
  }
49
49
  });
50
- }, C = x(() => c() ? !0 : m ? m.getComponent(t.sidebarActiveTab())?.sidebar?.fullScreen ?? !1 : !1);
51
- g(() => {
52
- d() && C() && b(!1);
50
+ }, C = x(() => d() ? !0 : c ? c.getComponent(t.sidebarActiveTab())?.sidebar?.fullScreen ?? !1 : !1);
51
+ v(() => {
52
+ s() && C() && b(!1);
53
53
  });
54
54
  const z = x(() => {
55
- if (l.bottomBarItems) return l.bottomBarItems;
56
- if (!m) return;
57
- const e = [...m.statusBarItems()].sort((o, r) => (o.order ?? 100) - (r.order ?? 100)), n = e.filter((o) => o.position === "left"), s = e.filter((o) => o.position === "right");
55
+ if (o.bottomBarItems) return o.bottomBarItems;
56
+ if (!c) return;
57
+ const e = [...c.statusBarItems()].sort((n, r) => (n.order ?? 100) - (r.order ?? 100)), l = e.filter((n) => n.position === "left"), m = e.filter((n) => n.position === "right");
58
58
  return [(() => {
59
- var o = B();
60
- return a(o, i(_, {
61
- each: n,
59
+ var n = B();
60
+ return a(n, i(_, {
61
+ each: l,
62
62
  children: (r) => i($, {
63
63
  get component() {
64
64
  return r.component;
65
65
  }
66
66
  })
67
- })), o;
67
+ })), n;
68
68
  })(), (() => {
69
- var o = B();
70
- return a(o, i(_, {
71
- each: s,
69
+ var n = B();
70
+ return a(n, i(_, {
71
+ each: m,
72
72
  children: (r) => i($, {
73
73
  get component() {
74
74
  return r.component;
75
75
  }
76
76
  })
77
- })), o;
77
+ })), n;
78
78
  })()];
79
79
  });
80
- g(() => {
80
+ v(() => {
81
81
  const e = f();
82
82
  if (!e.length) return;
83
- const n = t.sidebarActiveTab();
84
- (!n || !e.some((s) => s.id === n)) && w(e[0].id);
83
+ t.sidebarActiveTab() || w(e[0].id);
85
84
  });
86
85
  const O = (e) => {
87
- const n = c() ? !0 : m?.getComponent(e)?.sidebar?.fullScreen ?? !1, {
88
- nextActiveId: s,
89
- nextMobileSidebarOpen: o
86
+ const l = d() ? !0 : c?.getComponent(e)?.sidebar?.fullScreen ?? !1, {
87
+ nextActiveId: m,
88
+ nextMobileSidebarOpen: n
90
89
  } = K({
91
90
  clickedId: e,
92
91
  activeId: t.sidebarActiveTab(),
93
92
  mobileSidebarOpen: S(),
94
- clickedIsFullScreen: n
93
+ clickedIsFullScreen: l
95
94
  });
96
- t.sidebarActiveTab() !== s && w(s), b(o);
97
- }, F = () => c() ? !0 : t.sidebarCollapsed();
95
+ t.sidebarActiveTab() !== m && w(m), b(n);
96
+ }, F = () => d() ? !0 : t.sidebarCollapsed();
98
97
  return (() => {
99
- var e = Y(), n = e.firstChild, s = n.firstChild, o = s.firstChild;
98
+ var e = Y(), l = e.firstChild, m = l.firstChild, n = m.firstChild;
100
99
  return a(e, i(N, {
101
100
  get logo() {
102
- return l.logo;
101
+ return o.logo;
103
102
  },
104
103
  get actions() {
105
- return l.topBarActions;
104
+ return o.topBarActions;
106
105
  }
107
- }), n), a(n, i(u, {
106
+ }), l), a(l, i(u, {
108
107
  get when() {
109
- return !d();
108
+ return !s();
110
109
  },
111
110
  get children() {
112
111
  return [i(u, {
@@ -119,7 +118,7 @@ function be(l) {
119
118
  return f();
120
119
  },
121
120
  get bottomItems() {
122
- return l.activityBottomItems;
121
+ return o.activityBottomItems;
123
122
  },
124
123
  get activeId() {
125
124
  return t.sidebarActiveTab();
@@ -129,13 +128,13 @@ function be(l) {
129
128
  return F();
130
129
  },
131
130
  get onCollapsedChange() {
132
- return p(() => !!c())() ? void 0 : t.setSidebarCollapsed;
131
+ return p(() => !!d())() ? void 0 : t.setSidebarCollapsed;
133
132
  }
134
133
  });
135
134
  }
136
135
  }), i(u, {
137
136
  get when() {
138
- return !c();
137
+ return !d();
139
138
  },
140
139
  get children() {
141
140
  return i(L, {
@@ -158,9 +157,9 @@ function be(l) {
158
157
  }
159
158
  })];
160
159
  }
161
- }), s), a(n, i(u, {
160
+ }), m), a(l, i(u, {
162
161
  get when() {
163
- return p(() => !!(d() && S()))() && !c();
162
+ return p(() => !!(s() && S()))() && !d();
164
163
  },
165
164
  get children() {
166
165
  return [(() => {
@@ -171,20 +170,20 @@ function be(l) {
171
170
  return a(h, () => y(t.sidebarActiveTab())), I(() => T(r, A("absolute left-0 top-0 bottom-0 z-50", "w-72 max-w-[80vw]", "bg-sidebar border-r border-sidebar-border", "shadow-xl", "animate-in slide-in-from-left duration-200"))), r;
172
171
  })()];
173
172
  }
174
- }), s), a(o, () => l.children), a(s, i(u, {
173
+ }), m), a(n, () => o.children), a(m, i(u, {
175
174
  get when() {
176
- return p(() => !!(!d() && t.terminalOpened()))() && l.terminalPanel;
175
+ return p(() => !!(!s() && t.terminalOpened()))() && o.terminalPanel;
177
176
  },
178
177
  get children() {
179
178
  var r = X();
180
179
  return a(r, i(M, {
181
180
  direction: "vertical",
182
181
  onResize: (h) => t.setTerminalHeight(t.terminalHeight() - h)
183
- }), null), a(r, () => l.terminalPanel, null), I((h) => R(r, "height", `${t.terminalHeight()}px`)), r;
182
+ }), null), a(r, () => o.terminalPanel, null), I((h) => R(r, "height", `${t.terminalHeight()}px`)), r;
184
183
  }
185
184
  }), null), a(e, i(u, {
186
185
  get when() {
187
- return !d();
186
+ return !s();
188
187
  },
189
188
  get children() {
190
189
  return i(j, {
@@ -195,7 +194,7 @@ function be(l) {
195
194
  }
196
195
  }), null), a(e, i(u, {
197
196
  get when() {
198
- return p(() => !!d())() && f().length > 0;
197
+ return p(() => !!s())() && f().length > 0;
199
198
  },
200
199
  get children() {
201
200
  return i(q, {
@@ -218,7 +217,7 @@ function be(l) {
218
217
  "bg-background text-foreground",
219
218
  // Prevent overscroll on the shell container
220
219
  "overscroll-none",
221
- l.class
220
+ o.class
222
221
  ))), e;
223
222
  })();
224
223
  }
package/dist/index30.js CHANGED
@@ -1,9 +1,9 @@
1
- import { delegateEvents as k, insert as n, createComponent as a, memo as y, effect as S, className as p, template as u } from "solid-js/web";
2
- import { splitProps as E, createSignal as $, createEffect as C, on as _, Show as g } from "solid-js";
3
- import { cn as c } from "./index113.js";
1
+ import { delegateEvents as k, insert as o, createComponent as a, memo as y, effect as S, className as p, template as c } from "solid-js/web";
2
+ import { splitProps as $, createSignal as C, createEffect as f, on as _, Show as g } from "solid-js";
3
+ import { cn as u } from "./index113.js";
4
4
  import { usePickerTree as T, PickerBreadcrumb as F, PickerFolderTree as L } from "./index32.js";
5
5
  import { Folder as z, ChevronRight as R } from "./index42.js";
6
- var B = /* @__PURE__ */ u('<div class="border border-input rounded-b-md overflow-hidden bg-background shadow-sm border-t-0"><div class="px-2 py-1 border-b border-border/50 bg-muted/30">'), D = /* @__PURE__ */ u('<p class="mt-1 text-[11px] text-error"role=alert>'), H = /* @__PURE__ */ u('<p class="mt-1 text-[11px] text-muted-foreground">'), M = /* @__PURE__ */ u("<div><button type=button><span>");
6
+ var B = /* @__PURE__ */ c('<div class="border border-input rounded-b-md overflow-hidden bg-background shadow-sm border-t-0"><div class="px-2 py-1 border-b border-border/50 bg-muted/30">'), D = /* @__PURE__ */ c('<p class="mt-1 text-[11px] text-error"role=alert>'), H = /* @__PURE__ */ c('<p class="mt-1 text-[11px] text-muted-foreground">'), M = /* @__PURE__ */ c("<div><button type=button><span>");
7
7
  const I = {
8
8
  sm: {
9
9
  container: "h-7 px-2",
@@ -21,8 +21,12 @@ const I = {
21
21
  text: "text-sm"
22
22
  }
23
23
  };
24
- function A(f) {
25
- const [e] = E(f, ["value", "onChange", "files", "onExpand", "placeholder", "homePath", "homeLabel", "initialPath", "disabled", "size", "error", "helperText", "class", "treeMaxHeight"]), [d, b] = $(!1), v = () => e.size ?? "md", i = () => I[v()], o = T({
24
+ function A(b) {
25
+ const [e] = $(b, ["value", "onChange", "files", "onExpand", "placeholder", "homePath", "homeLabel", "initialPath", "disabled", "size", "error", "helperText", "class", "treeMaxHeight", "defaultExpanded"]), [d, v] = C(e.defaultExpanded !== !1), P = () => e.size ?? "md", i = () => I[P()];
26
+ f(() => {
27
+ d() && e.files.length === 0 && e.onExpand && e.onExpand("/");
28
+ });
29
+ const n = T({
26
30
  initialPath: e.initialPath ?? "/",
27
31
  open: () => !0,
28
32
  files: () => e.files,
@@ -30,63 +34,63 @@ function A(f) {
30
34
  homeLabel: e.homeLabel,
31
35
  homePath: e.homePath
32
36
  });
33
- C(_(o.selectedPath, (r) => {
37
+ f(_(n.selectedPath, (r) => {
34
38
  if (!d()) return;
35
- const l = o.toDisplayPath(r);
39
+ const l = n.toDisplayPath(r);
36
40
  e.onChange?.(l);
37
41
  }));
38
- const P = () => {
42
+ const E = () => {
39
43
  if (e.disabled) return;
40
44
  const r = d();
41
- !r && e.files.length === 0 && e.onExpand && e.onExpand("/"), b(!r);
45
+ !r && e.files.length === 0 && e.onExpand && e.onExpand("/"), v(!r);
42
46
  }, w = () => e.value ? e.homePath && e.value.startsWith(e.homePath) ? "~" + (e.value.slice(e.homePath.length) || "") : e.value : null;
43
47
  return (() => {
44
48
  var r = M(), l = r.firstChild, h = l.firstChild;
45
- return l.$$click = P, n(l, a(z, {
49
+ return l.$$click = E, o(l, a(z, {
46
50
  get class() {
47
- return c("text-muted-foreground flex-shrink-0", i().icon);
51
+ return u("text-muted-foreground flex-shrink-0", i().icon);
48
52
  }
49
- }), h), n(h, () => w() || e.placeholder || "Select a directory..."), n(l, a(R, {
53
+ }), h), o(h, () => w() || e.placeholder || "Select a directory..."), o(l, a(R, {
50
54
  get class() {
51
- return c("text-muted-foreground flex-shrink-0 transition-transform duration-150", i().icon, d() && "rotate-90");
55
+ return u("text-muted-foreground flex-shrink-0 transition-transform duration-150", i().icon, d() && "rotate-90");
52
56
  }
53
- }), null), n(r, a(g, {
57
+ }), null), o(r, a(g, {
54
58
  get when() {
55
59
  return d();
56
60
  },
57
61
  get children() {
58
62
  var t = B(), s = t.firstChild;
59
- return n(s, a(F, {
63
+ return o(s, a(F, {
60
64
  get segments() {
61
- return o.breadcrumbSegments;
65
+ return n.breadcrumbSegments;
62
66
  },
63
67
  get onClick() {
64
- return o.handleBreadcrumbClick;
68
+ return n.handleBreadcrumbClick;
65
69
  }
66
- })), n(t, a(L, {
70
+ })), o(t, a(L, {
67
71
  get rootFolders() {
68
- return o.rootFolders;
72
+ return n.rootFolders;
69
73
  },
70
74
  get selectedPath() {
71
- return o.selectedPath;
75
+ return n.selectedPath;
72
76
  },
73
77
  get expandedPaths() {
74
- return o.expandedPaths;
78
+ return n.expandedPaths;
75
79
  },
76
80
  get onToggle() {
77
- return o.toggleExpand;
81
+ return n.toggleExpand;
78
82
  },
79
83
  get onSelect() {
80
- return o.handleSelectFolder;
84
+ return n.handleSelectFolder;
81
85
  },
82
86
  get onSelectRoot() {
83
- return o.handleSelectRoot;
87
+ return n.handleSelectRoot;
84
88
  },
85
89
  get isSelectable() {
86
- return o.isSelectable;
90
+ return n.isSelectable;
87
91
  },
88
92
  get homeLabel() {
89
- return o.homeLabel;
93
+ return n.homeLabel;
90
94
  },
91
95
  class: "border-0 rounded-none",
92
96
  get style() {
@@ -96,24 +100,24 @@ function A(f) {
96
100
  }
97
101
  }), null), t;
98
102
  }
99
- }), null), n(r, a(g, {
103
+ }), null), o(r, a(g, {
100
104
  get when() {
101
105
  return e.error;
102
106
  },
103
107
  get children() {
104
108
  var t = D();
105
- return n(t, () => e.error), t;
109
+ return o(t, () => e.error), t;
106
110
  }
107
- }), null), n(r, a(g, {
111
+ }), null), o(r, a(g, {
108
112
  get when() {
109
113
  return y(() => !!e.helperText)() && !e.error;
110
114
  },
111
115
  get children() {
112
116
  var t = H();
113
- return n(t, () => e.helperText), t;
117
+ return o(t, () => e.helperText), t;
114
118
  }
115
119
  }), null), S((t) => {
116
- var s = e.disabled, m = c("w-full flex items-center gap-2 rounded border border-input bg-background shadow-sm", "transition-colors duration-100 cursor-pointer", "hover:bg-muted/50", "focus:outline-none focus:ring-1 focus:ring-ring focus:border-ring", "disabled:cursor-not-allowed disabled:opacity-50", e.error && "border-error focus:ring-error", d() && "rounded-b-none border-b-0", i().container, e.class), x = c("flex-1 text-left truncate font-mono", i().text, e.value ? "text-foreground" : "text-muted-foreground/60");
120
+ var s = e.disabled, m = u("w-full flex items-center gap-2 rounded border border-input bg-background shadow-sm", "transition-colors duration-100 cursor-pointer", "hover:bg-muted/50", "focus:outline-none focus:ring-1 focus:ring-ring focus:border-ring", "disabled:cursor-not-allowed disabled:opacity-50", e.error && "border-error focus:ring-error", d() && "rounded-b-none border-b-0", i().container, e.class), x = u("flex-1 text-left truncate font-mono", i().text, e.value ? "text-foreground" : "text-muted-foreground/60");
117
121
  return s !== t.e && (l.disabled = t.e = s), m !== t.t && p(l, t.t = m), x !== t.a && p(h, t.a = x), t;
118
122
  }, {
119
123
  e: void 0,
package/dist/index37.js CHANGED
@@ -2,7 +2,7 @@ import { delegateEvents as te, createComponent as $, mergeProps as ee, insert as
2
2
  import { splitProps as _t, createUniqueId as Xt, createMemo as K, createSignal as pt, createEffect as wt, onCleanup as Mt, Show as ot, For as z, untrack as qt } from "solid-js";
3
3
  import { cn as Tt } from "./index113.js";
4
4
  import { useResizeObserver as ne } from "./index108.js";
5
- import { computeAutoMaxXAxisLabels as re } from "./index126.js";
5
+ import { computeAutoMaxXAxisLabels as re } from "./index130.js";
6
6
  var It = /* @__PURE__ */ A("<div class=chart-title>"), Et = /* @__PURE__ */ A("<svg><g class=chart-grid></svg>", !1, !0, !1), ae = /* @__PURE__ */ A("<div class=chart-legend>"), oe = /* @__PURE__ */ A('<div><svg class=chart-svg preserveAspectRatio="xMidYMid meet"><defs></defs><rect fill=transparent class=chart-hover-area></rect><g class=chart-axis-labels></g><g class=chart-axis-labels>'), se = /* @__PURE__ */ A("<svg><linearGradient x1=0% y1=0% x2=0% y2=100%><stop offset=0% style=stop-opacity:0.4></stop><stop offset=100% style=stop-opacity:0.05></svg>", !1, !0, !1), Dt = /* @__PURE__ */ A("<svg><line class=chart-grid-line></svg>", !1, !0, !1), ie = /* @__PURE__ */ A("<svg><text class=chart-axis-label text-anchor=end dominant-baseline=middle></svg>", !1, !0, !1), le = /* @__PURE__ */ A("<svg><text class=chart-axis-label></svg>", !1, !0, !1), ce = /* @__PURE__ */ A("<svg><path class=chart-area></svg>", !1, !0, !1), de = /* @__PURE__ */ A("<svg><path fill=none stroke-width=2 stroke-linecap=round stroke-linejoin=round class=chart-line></svg>", !1, !0, !1), ue = /* @__PURE__ */ A("<svg><circle stroke-width=2 class=chart-point><title></svg>", !1, !0, !1), he = /* @__PURE__ */ A("<svg><line class=chart-crosshair></svg>", !1, !0, !1), ve = /* @__PURE__ */ A("<svg><rect rx=4 class=chart-tooltip-bg></svg>", !1, !0, !1), ge = /* @__PURE__ */ A("<svg><text class=chart-tooltip-label></svg>", !1, !0, !1), me = /* @__PURE__ */ A("<svg><circle r=6 class=chart-crosshair-point></svg>", !1, !0, !1), fe = /* @__PURE__ */ A("<svg><g><circle r=4></circle><text class=chart-tooltip-value>: </svg>", !1, !0, !1), xe = /* @__PURE__ */ A("<div class=chart-legend-item><div class=chart-legend-color></div><span class=chart-legend-label>"), be = /* @__PURE__ */ A('<div><svg class=chart-svg preserveAspectRatio="xMidYMid meet"><defs></defs><g class=chart-axis-labels>'), $e = /* @__PURE__ */ A("<svg><linearGradient x1=0% y1=0% x2=0% y2=100%><stop offset=0% style=stop-opacity:1></stop><stop offset=100% style=stop-opacity:0.7></svg>", !1, !0, !1), ye = /* @__PURE__ */ A("<svg><text class=chart-bar-value text-anchor=middle></svg>", !1, !0, !1), pe = /* @__PURE__ */ A("<svg><g><rect rx=2 class=chart-bar><title></svg>", !1, !0, !1), Me = /* @__PURE__ */ A("<svg><text class=chart-axis-label text-anchor=middle></svg>", !1, !0, !1), we = /* @__PURE__ */ A("<svg><text class=chart-pie-center-label text-anchor=middle dominant-baseline=middle></svg>", !1, !0, !1), Le = /* @__PURE__ */ A("<svg><text class=chart-pie-center-sublabel text-anchor=middle dominant-baseline=middle>Total</svg>", !1, !0, !1), Ae = /* @__PURE__ */ A("<div class=chart-pie-legend>"), Ce = /* @__PURE__ */ A('<div><div class=chart-pie-wrapper><svg class="chart-svg chart-pie-svg"><defs>'), _e = /* @__PURE__ */ A("<svg><linearGradient x1=0% y1=0% x2=100% y2=100%><stop offset=0% style=stop-opacity:1></stop><stop offset=100% style=stop-opacity:0.8></svg>", !1, !0, !1), Pe = /* @__PURE__ */ A("<svg><path class=chart-pie-slice><title></svg>", !1, !0, !1), Se = /* @__PURE__ */ A("<div class=chart-legend-item><div class=chart-legend-color></div><span class=chart-legend-label></span><span class=chart-legend-value>%"), Fe = /* @__PURE__ */ A("<div class=chart-monitoring-status><div class=chart-monitoring-dot></div><span>Live"), Te = /* @__PURE__ */ A("<div><div class=chart-monitoring-header>");
7
7
  const Lt = [
8
8
  "var(--primary)",