@shellui/core 0.0.4 → 0.0.5

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 (32) hide show
  1. package/dist/{CookiePreferencesView-MhO9FO-4.js → CookiePreferencesView-CIXBJWNt.js} +3 -3
  2. package/dist/{CookiePreferencesView-MhO9FO-4.js.map → CookiePreferencesView-CIXBJWNt.js.map} +1 -1
  3. package/dist/{DefaultLayout-Dbb3uJED.js → DefaultLayout-Bztmv2c_.js} +74 -62
  4. package/dist/DefaultLayout-Bztmv2c_.js.map +1 -0
  5. package/dist/{FullscreenLayout-1SgPHWw-.js → FullscreenLayout-DiX6dbkf.js} +3 -3
  6. package/dist/{FullscreenLayout-1SgPHWw-.js.map → FullscreenLayout-DiX6dbkf.js.map} +1 -1
  7. package/dist/{HomeView-DYU-O_Il.js → HomeView-C610YU6V.js} +2 -2
  8. package/dist/{HomeView-DYU-O_Il.js.map → HomeView-C610YU6V.js.map} +1 -1
  9. package/dist/{NotFoundView-CeYjJNg0.js → NotFoundView-D00gYlq-.js} +2 -2
  10. package/dist/{NotFoundView-CeYjJNg0.js.map → NotFoundView-D00gYlq-.js.map} +1 -1
  11. package/dist/{OverlayShell-pzbqQW25.js → OverlayShell-CGjN4rTu.js} +2 -2
  12. package/dist/{OverlayShell-pzbqQW25.js.map → OverlayShell-CGjN4rTu.js.map} +1 -1
  13. package/dist/{SettingsView-Bndrta44.js → SettingsView-2QMtfS71.js} +4 -4
  14. package/dist/{SettingsView-Bndrta44.js.map → SettingsView-2QMtfS71.js.map} +1 -1
  15. package/dist/{WindowsLayout-CXGNPKoY.js → WindowsLayout-DkSNQDSb.js} +3 -3
  16. package/dist/{WindowsLayout-CXGNPKoY.js.map → WindowsLayout-DkSNQDSb.js.map} +1 -1
  17. package/dist/components/ui/sidebar.d.ts.map +1 -1
  18. package/dist/features/layouts/DefaultLayout.d.ts.map +1 -1
  19. package/dist/{index-lmRk5L6z.js → index-PsePV0Ng.js} +8 -8
  20. package/dist/{index-lmRk5L6z.js.map → index-PsePV0Ng.js.map} +1 -1
  21. package/dist/index.js +1 -1
  22. package/dist/{sidebar-ClIeZ2zb.js → sidebar-Cvm_uv4l.js} +123 -90
  23. package/dist/sidebar-Cvm_uv4l.js.map +1 -0
  24. package/dist/style.css +1 -1
  25. package/dist/{switch-8SzUJz7Q.js → switch-BjkiJBIa.js} +2 -2
  26. package/dist/{switch-8SzUJz7Q.js.map → switch-BjkiJBIa.js.map} +1 -1
  27. package/package.json +4 -3
  28. package/src/components/ui/sidebar.tsx +43 -5
  29. package/src/features/layouts/DefaultLayout.tsx +22 -6
  30. package/src/index.css +5 -0
  31. package/dist/DefaultLayout-Dbb3uJED.js.map +0 -1
  32. package/dist/sidebar-ClIeZ2zb.js.map +0 -1
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { A as s, t, v as n, w as a, u as C, x as i } from "./index-lmRk5L6z.js";
1
+ import { A as s, t, v as n, w as a, u as C, x as i } from "./index-PsePV0Ng.js";
2
2
  import { default as r } from "./constants/urls.js";
3
3
  export {
4
4
  s as App,
@@ -1,30 +1,30 @@
1
- import { jsx as t, jsxs as m } from "react/jsx-runtime";
1
+ import { jsx as t, jsxs as d } from "react/jsx-runtime";
2
2
  import { forwardRef as i, useState as f, useCallback as v, createContext as x, useContext as h } from "react";
3
- import { Slot as d } from "@radix-ui/react-slot";
3
+ import { Slot as l } from "@radix-ui/react-slot";
4
4
  import { cva as S } from "class-variance-authority";
5
- import { c as s, Z as y } from "./index-lmRk5L6z.js";
6
- const p = x(void 0), c = () => {
7
- const e = h(p);
5
+ import { c as o, Z as y } from "./index-PsePV0Ng.js";
6
+ const m = x(void 0), u = () => {
7
+ const e = h(m);
8
8
  if (!e)
9
9
  throw new Error("useSidebar must be used within a SidebarProvider");
10
10
  return e;
11
11
  }, K = ({ children: e }) => {
12
- const [r, a] = f(!1), o = v(() => {
12
+ const [r, a] = f(!1), s = v(() => {
13
13
  a((n) => !n);
14
14
  }, []);
15
- return /* @__PURE__ */ t(p.Provider, { value: { isCollapsed: r, toggle: o }, children: e });
15
+ return /* @__PURE__ */ t(m.Provider, { value: { isCollapsed: r, toggle: s }, children: e });
16
16
  }, N = i(
17
17
  ({ className: e, ...r }, a) => {
18
- const { isCollapsed: o } = c();
18
+ const { isCollapsed: s } = u();
19
19
  return /* @__PURE__ */ t(
20
20
  "div",
21
21
  {
22
22
  ref: a,
23
23
  "data-sidebar": "sidebar",
24
- "data-collapsed": o,
25
- className: s(
24
+ "data-collapsed": s,
25
+ className: o(
26
26
  "flex h-full flex-col gap-2 border-r bg-sidebar-background p-2 text-sidebar-foreground transition-all duration-300 ease-in-out overflow-hidden",
27
- o ? "w-0 border-r-0 p-0" : "w-64",
27
+ s ? "w-0 border-r-0 p-0" : "w-64",
28
28
  e
29
29
  ),
30
30
  ...r
@@ -33,73 +33,106 @@ const p = x(void 0), c = () => {
33
33
  }
34
34
  );
35
35
  N.displayName = "Sidebar";
36
- const w = i(
36
+ const w = () => /* @__PURE__ */ d(
37
+ "svg",
38
+ {
39
+ xmlns: "http://www.w3.org/2000/svg",
40
+ width: "24",
41
+ height: "24",
42
+ viewBox: "0 0 24 24",
43
+ fill: "none",
44
+ stroke: "currentColor",
45
+ strokeWidth: "2",
46
+ strokeLinecap: "round",
47
+ strokeLinejoin: "round",
48
+ className: "h-5 w-5 transition-transform duration-300",
49
+ "aria-hidden": !0,
50
+ children: [
51
+ /* @__PURE__ */ t("rect", { width: "18", height: "18", x: "3", y: "3", rx: "2" }),
52
+ /* @__PURE__ */ t("path", { d: "M9 3v18" }),
53
+ /* @__PURE__ */ t("path", { d: "m14 9 3 3-3 3" })
54
+ ]
55
+ }
56
+ ), C = () => /* @__PURE__ */ d(
57
+ "svg",
58
+ {
59
+ xmlns: "http://www.w3.org/2000/svg",
60
+ width: "24",
61
+ height: "24",
62
+ viewBox: "0 0 24 24",
63
+ fill: "none",
64
+ stroke: "currentColor",
65
+ strokeWidth: "2",
66
+ strokeLinecap: "round",
67
+ strokeLinejoin: "round",
68
+ className: "h-5 w-5 transition-transform duration-300",
69
+ "aria-hidden": !0,
70
+ children: [
71
+ /* @__PURE__ */ t("rect", { width: "18", height: "18", x: "3", y: "3", rx: "2" }),
72
+ /* @__PURE__ */ t("path", { d: "M9 3v18" }),
73
+ /* @__PURE__ */ t("path", { d: "m16 15-3-3 3-3" })
74
+ ]
75
+ }
76
+ ), M = i(
37
77
  ({ className: e, ...r }, a) => {
38
- const { toggle: o, isCollapsed: n } = c();
78
+ const { toggle: s, isCollapsed: n } = u();
39
79
  return /* @__PURE__ */ t(
40
80
  "button",
41
81
  {
42
82
  ref: a,
43
- onClick: o,
44
- className: s(
83
+ onClick: s,
84
+ className: o(
45
85
  "relative flex items-center justify-center rounded-md p-2 text-foreground transition-colors hover:opacity-90 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring shadow-lg backdrop-blur-md cursor-pointer bg-background/95 border border-border",
46
86
  e
47
87
  ),
48
88
  "aria-label": n ? "Expand sidebar" : "Collapse sidebar",
49
89
  style: { zIndex: y.SIDEBAR_TRIGGER },
50
90
  ...r,
51
- children: /* @__PURE__ */ t(
52
- "img",
53
- {
54
- src: n ? "/icons/panel-left.svg" : "/icons/panel-left-closed.svg",
55
- alt: "",
56
- className: "h-5 w-5 transition-transform duration-300"
57
- }
58
- )
91
+ children: n ? /* @__PURE__ */ t(w, {}) : /* @__PURE__ */ t(C, {})
59
92
  }
60
93
  );
61
94
  }
62
95
  );
63
- w.displayName = "SidebarTrigger";
64
- const C = i(
96
+ M.displayName = "SidebarTrigger";
97
+ const k = i(
65
98
  ({ className: e, ...r }, a) => /* @__PURE__ */ t(
66
99
  "div",
67
100
  {
68
101
  ref: a,
69
- className: s("flex flex-col gap-2 p-2", e),
102
+ className: o("flex flex-col gap-2 p-2", e),
70
103
  ...r
71
104
  }
72
105
  )
73
106
  );
74
- C.displayName = "SidebarHeader";
75
- const M = i(
107
+ k.displayName = "SidebarHeader";
108
+ const I = i(
76
109
  ({ className: e, ...r }, a) => /* @__PURE__ */ t(
77
110
  "div",
78
111
  {
79
112
  ref: a,
80
- className: s("flex flex-1 flex-col gap-2 overflow-auto", e),
113
+ className: o("flex flex-1 flex-col gap-2 overflow-auto", e),
81
114
  ...r
82
115
  }
83
116
  )
84
117
  );
85
- M.displayName = "SidebarContent";
86
- const k = i(
118
+ I.displayName = "SidebarContent";
119
+ const B = i(
87
120
  ({ className: e, ...r }, a) => /* @__PURE__ */ t(
88
121
  "div",
89
122
  {
90
123
  ref: a,
91
- className: s("flex flex-col gap-2 p-2", e),
124
+ className: o("flex flex-col gap-2 p-2", e),
92
125
  ...r
93
126
  }
94
127
  )
95
128
  );
96
- k.displayName = "SidebarFooter";
129
+ B.displayName = "SidebarFooter";
97
130
  const G = i(
98
131
  ({ className: e, ...r }, a) => /* @__PURE__ */ t(
99
132
  "div",
100
133
  {
101
134
  ref: a,
102
- className: s("group/sidebar-group", e),
135
+ className: o("group/sidebar-group", e),
103
136
  ...r
104
137
  }
105
138
  )
@@ -110,7 +143,7 @@ const _ = i(
110
143
  "div",
111
144
  {
112
145
  ref: a,
113
- className: s(
146
+ className: o(
114
147
  "flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium text-sidebar-foreground/70 outline-none ring-sidebar-ring transition-[margin,opa] ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0",
115
148
  e
116
149
  ),
@@ -120,30 +153,30 @@ const _ = i(
120
153
  )
121
154
  );
122
155
  _.displayName = "SidebarGroupLabel";
123
- const I = i(({ className: e, asChild: r = !1, ...a }, o) => /* @__PURE__ */ t(
124
- r ? d : "button",
156
+ const j = i(({ className: e, asChild: r = !1, ...a }, s) => /* @__PURE__ */ t(
157
+ r ? l : "button",
125
158
  {
126
- ref: o,
127
- className: s(
159
+ ref: s,
160
+ className: o(
128
161
  "absolute right-2 top-1/2 -translate-y-1/2 rounded-md p-1.5 text-sidebar-foreground outline-none ring-sidebar-ring transition-opacity hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:opacity-100 focus-visible:ring-2 group-hover/sidebar-group:opacity-100 peer-data-[size=sm]/sidebar-group-action:opacity-0 [&>svg]:size-4 [&>svg]:shrink-0",
129
162
  e
130
163
  ),
131
164
  ...a
132
165
  }
133
166
  ));
134
- I.displayName = "SidebarGroupAction";
135
- const B = i(
167
+ j.displayName = "SidebarGroupAction";
168
+ const L = i(
136
169
  ({ className: e, ...r }, a) => /* @__PURE__ */ t(
137
170
  "div",
138
171
  {
139
172
  ref: a,
140
- className: s("w-full text-sm", e),
173
+ className: o("w-full text-sm", e),
141
174
  ...r
142
175
  }
143
176
  )
144
177
  );
145
- B.displayName = "SidebarGroupContent";
146
- const j = S(
178
+ L.displayName = "SidebarGroupContent";
179
+ const z = S(
147
180
  "flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm transition-colors hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:bg-sidebar-accent focus-visible:text-sidebar-accent-foreground focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground",
148
181
  {
149
182
  variants: {
@@ -162,52 +195,52 @@ const j = S(
162
195
  size: "default"
163
196
  }
164
197
  }
165
- ), z = i(({ className: e, variant: r, size: a, asChild: o = !1, isActive: n, children: l, ...u }, g) => {
166
- const { isCollapsed: b } = c();
198
+ ), A = i(({ className: e, variant: r, size: a, asChild: s = !1, isActive: n, children: c, ...b }, g) => {
199
+ const { isCollapsed: p } = u();
167
200
  return /* @__PURE__ */ t(
168
- o ? d : "button",
201
+ s ? l : "button",
169
202
  {
170
203
  ref: g,
171
204
  "data-active": n,
172
- "data-collapsed": b,
173
- className: s(
174
- j({ variant: r, size: a }),
175
- b && "justify-center",
205
+ "data-collapsed": p,
206
+ className: o(
207
+ z({ variant: r, size: a }),
208
+ p && "justify-center",
176
209
  e
177
210
  ),
178
- ...u,
179
- children: l
211
+ ...b,
212
+ children: c
180
213
  }
181
214
  );
182
215
  });
183
- z.displayName = "SidebarMenuButton";
184
- const A = i(
216
+ A.displayName = "SidebarMenuButton";
217
+ const E = i(
185
218
  ({ className: e, ...r }, a) => /* @__PURE__ */ t(
186
219
  "ul",
187
220
  {
188
221
  ref: a,
189
- className: s("flex w-full min-w-0 flex-col gap-1", e),
222
+ className: o("flex w-full min-w-0 flex-col gap-1", e),
190
223
  ...r
191
224
  }
192
225
  )
193
226
  );
194
- A.displayName = "SidebarMenu";
195
- const E = i(
227
+ E.displayName = "SidebarMenu";
228
+ const P = i(
196
229
  ({ className: e, ...r }, a) => /* @__PURE__ */ t(
197
230
  "li",
198
231
  {
199
232
  ref: a,
200
- className: s("group/menu-item relative", e),
233
+ className: o("group/menu-item relative", e),
201
234
  ...r
202
235
  }
203
236
  )
204
237
  );
205
- E.displayName = "SidebarMenuItem";
206
- const R = i(({ className: e, asChild: r = !1, ...a }, o) => /* @__PURE__ */ t(
207
- r ? d : "button",
238
+ P.displayName = "SidebarMenuItem";
239
+ const R = i(({ className: e, asChild: r = !1, ...a }, s) => /* @__PURE__ */ t(
240
+ r ? l : "button",
208
241
  {
209
- ref: o,
210
- className: s(
242
+ ref: s,
243
+ className: o(
211
244
  "absolute right-2 top-1/2 flex -translate-y-1/2 items-center justify-center rounded-md p-1 text-sidebar-foreground opacity-0 transition-opacity group-hover/menu-item:opacity-100 group-focus/menu-item:opacity-100 [&:has(~:hover)]:opacity-100 [&:has(~:focus)]:opacity-100",
212
245
  e
213
246
  ),
@@ -220,7 +253,7 @@ const F = i(
220
253
  "div",
221
254
  {
222
255
  ref: a,
223
- className: s(
256
+ className: o(
224
257
  "absolute right-2 top-1/2 flex -translate-y-1/2 items-center justify-center rounded-md px-1.5 py-0.5 text-xs font-medium tabular-nums text-sidebar-foreground",
225
258
  e
226
259
  ),
@@ -229,28 +262,28 @@ const F = i(
229
262
  )
230
263
  );
231
264
  F.displayName = "SidebarMenuBadge";
232
- const P = i(({ className: e, showIcon: r = !1, ...a }, o) => /* @__PURE__ */ m(
265
+ const T = i(({ className: e, showIcon: r = !1, ...a }, s) => /* @__PURE__ */ d(
233
266
  "div",
234
267
  {
235
- ref: o,
236
- className: s("flex items-center gap-2 px-2 py-1.5", e),
268
+ ref: s,
269
+ className: o("flex items-center gap-2 px-2 py-1.5", e),
237
270
  ...a,
238
271
  children: [
239
272
  r && /* @__PURE__ */ t("div", { className: "flex h-4 w-4 rounded-md bg-sidebar-primary/10" }),
240
- /* @__PURE__ */ m("div", { className: "flex flex-1 flex-col gap-1.5", children: [
273
+ /* @__PURE__ */ d("div", { className: "flex flex-1 flex-col gap-1.5", children: [
241
274
  /* @__PURE__ */ t("div", { className: "h-2.5 w-16 rounded-md bg-sidebar-primary/10" }),
242
275
  /* @__PURE__ */ t("div", { className: "h-2.5 w-24 rounded-md bg-sidebar-primary/10" })
243
276
  ] })
244
277
  ]
245
278
  }
246
279
  ));
247
- P.displayName = "SidebarMenuSkeleton";
248
- const T = i(
280
+ T.displayName = "SidebarMenuSkeleton";
281
+ const D = i(
249
282
  ({ className: e, ...r }, a) => /* @__PURE__ */ t(
250
283
  "ul",
251
284
  {
252
285
  ref: a,
253
- className: s(
286
+ className: o(
254
287
  "ml-4 mt-1 flex min-w-0 flex-col gap-0.5 border-l border-sidebar-border pl-2.5",
255
288
  e
256
289
  ),
@@ -258,14 +291,14 @@ const T = i(
258
291
  }
259
292
  )
260
293
  );
261
- T.displayName = "SidebarMenuSub";
262
- const D = i(({ className: e, asChild: r = !1, size: a = "md", isActive: o, ...n }, l) => /* @__PURE__ */ t(
263
- r ? d : "a",
294
+ D.displayName = "SidebarMenuSub";
295
+ const H = i(({ className: e, asChild: r = !1, size: a = "md", isActive: s, ...n }, c) => /* @__PURE__ */ t(
296
+ r ? l : "a",
264
297
  {
265
- ref: l,
298
+ ref: c,
266
299
  "data-size": a,
267
- "data-active": o,
268
- className: s(
300
+ "data-active": s,
301
+ className: o(
269
302
  "flex min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md p-2 text-sidebar-foreground outline-none ring-sidebar-ring transition-[width,height,padding] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0",
270
303
  a === "sm" && "text-xs",
271
304
  a === "md" && "text-sm",
@@ -275,29 +308,29 @@ const D = i(({ className: e, asChild: r = !1, size: a = "md", isActive: o, ...n
275
308
  ...n
276
309
  }
277
310
  ));
278
- D.displayName = "SidebarMenuSubButton";
279
- const H = i(
311
+ H.displayName = "SidebarMenuSubButton";
312
+ const V = i(
280
313
  ({ className: e, ...r }, a) => /* @__PURE__ */ t(
281
314
  "li",
282
315
  {
283
316
  ref: a,
284
- className: s("group/menu-sub-item relative", e),
317
+ className: o("group/menu-sub-item relative", e),
285
318
  ...r
286
319
  }
287
320
  )
288
321
  );
289
- H.displayName = "SidebarMenuSubItem";
322
+ V.displayName = "SidebarMenuSubItem";
290
323
  export {
291
324
  K as S,
292
325
  N as a,
293
- C as b,
294
- M as c,
295
- k as d,
326
+ k as b,
327
+ I as c,
328
+ B as d,
296
329
  G as e,
297
330
  _ as f,
298
- B as g,
299
- A as h,
300
- E as i,
301
- z as j
331
+ L as g,
332
+ E as h,
333
+ P as i,
334
+ A as j
302
335
  };
303
- //# sourceMappingURL=sidebar-ClIeZ2zb.js.map
336
+ //# sourceMappingURL=sidebar-Cvm_uv4l.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sidebar-Cvm_uv4l.js","sources":["../src/components/ui/sidebar.tsx"],"sourcesContent":["import {\n createContext,\n useContext,\n useState,\n useCallback,\n forwardRef,\n type ReactNode,\n type HTMLAttributes,\n type ButtonHTMLAttributes,\n type AnchorHTMLAttributes,\n} from 'react';\nimport { Slot } from '@radix-ui/react-slot';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '@/lib/utils';\nimport { Z_INDEX } from '@/lib/z-index';\n\ntype SidebarContextValue = {\n isCollapsed: boolean;\n toggle: () => void;\n};\n\nconst SidebarContext = createContext<SidebarContextValue | undefined>(undefined);\n\nconst useSidebar = () => {\n const context = useContext(SidebarContext);\n if (!context) {\n throw new Error('useSidebar must be used within a SidebarProvider');\n }\n return context;\n};\n\nconst SidebarProvider = ({ children }: { children: ReactNode }) => {\n const [isCollapsed, setIsCollapsed] = useState(false);\n\n const toggle = useCallback(() => {\n setIsCollapsed((prev) => !prev);\n }, []);\n\n return (\n <SidebarContext.Provider value={{ isCollapsed, toggle }}>{children}</SidebarContext.Provider>\n );\n};\n\nconst Sidebar = forwardRef<HTMLDivElement, HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => {\n const { isCollapsed } = useSidebar();\n\n return (\n <div\n ref={ref}\n data-sidebar=\"sidebar\"\n data-collapsed={isCollapsed}\n className={cn(\n 'flex h-full flex-col gap-2 border-r bg-sidebar-background p-2 text-sidebar-foreground transition-all duration-300 ease-in-out overflow-hidden',\n isCollapsed ? 'w-0 border-r-0 p-0' : 'w-64',\n className,\n )}\n {...props}\n />\n );\n },\n);\nSidebar.displayName = 'Sidebar';\n\n/** Inline SVG: panel-left-open (expand sidebar) */\nconst PanelLeftOpenIcon = () => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className=\"h-5 w-5 transition-transform duration-300\"\n aria-hidden\n >\n <rect width=\"18\" height=\"18\" x=\"3\" y=\"3\" rx=\"2\" />\n <path d=\"M9 3v18\" />\n <path d=\"m14 9 3 3-3 3\" />\n </svg>\n);\n\n/** Inline SVG: panel-left-close (collapse sidebar) */\nconst PanelLeftCloseIcon = () => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className=\"h-5 w-5 transition-transform duration-300\"\n aria-hidden\n >\n <rect width=\"18\" height=\"18\" x=\"3\" y=\"3\" rx=\"2\" />\n <path d=\"M9 3v18\" />\n <path d=\"m16 15-3-3 3-3\" />\n </svg>\n);\n\nconst SidebarTrigger = forwardRef<HTMLButtonElement, ButtonHTMLAttributes<HTMLButtonElement>>(\n ({ className, ...props }, ref) => {\n const { toggle, isCollapsed } = useSidebar();\n\n return (\n <button\n ref={ref}\n onClick={toggle}\n className={cn(\n 'relative flex items-center justify-center rounded-md p-2 text-foreground transition-colors hover:opacity-90 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring shadow-lg backdrop-blur-md cursor-pointer bg-background/95 border border-border',\n className,\n )}\n aria-label={isCollapsed ? 'Expand sidebar' : 'Collapse sidebar'}\n style={{ zIndex: Z_INDEX.SIDEBAR_TRIGGER }}\n {...props}\n >\n {isCollapsed ? <PanelLeftOpenIcon /> : <PanelLeftCloseIcon />}\n </button>\n );\n },\n);\nSidebarTrigger.displayName = 'SidebarTrigger';\n\nconst SidebarHeader = forwardRef<HTMLDivElement, HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={cn('flex flex-col gap-2 p-2', className)}\n {...props}\n />\n );\n },\n);\nSidebarHeader.displayName = 'SidebarHeader';\n\nconst SidebarContent = forwardRef<HTMLDivElement, HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={cn('flex flex-1 flex-col gap-2 overflow-auto', className)}\n {...props}\n />\n );\n },\n);\nSidebarContent.displayName = 'SidebarContent';\n\nconst SidebarFooter = forwardRef<HTMLDivElement, HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={cn('flex flex-col gap-2 p-2', className)}\n {...props}\n />\n );\n },\n);\nSidebarFooter.displayName = 'SidebarFooter';\n\nconst SidebarGroup = forwardRef<HTMLDivElement, HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={cn('group/sidebar-group', className)}\n {...props}\n />\n );\n },\n);\nSidebarGroup.displayName = 'SidebarGroup';\n\nconst SidebarGroupLabel = forwardRef<HTMLDivElement, HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={cn(\n 'flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium text-sidebar-foreground/70 outline-none ring-sidebar-ring transition-[margin,opa] ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0',\n className,\n )}\n style={{ fontFamily: 'var(--heading-font-family, inherit)' }}\n {...props}\n />\n );\n },\n);\nSidebarGroupLabel.displayName = 'SidebarGroupLabel';\n\nconst SidebarGroupAction = forwardRef<\n HTMLButtonElement,\n ButtonHTMLAttributes<HTMLButtonElement> & {\n asChild?: boolean;\n }\n>(({ className, asChild = false, ...props }, ref) => {\n const Comp = asChild ? Slot : 'button';\n return (\n <Comp\n ref={ref}\n className={cn(\n 'absolute right-2 top-1/2 -translate-y-1/2 rounded-md p-1.5 text-sidebar-foreground outline-none ring-sidebar-ring transition-opacity hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:opacity-100 focus-visible:ring-2 group-hover/sidebar-group:opacity-100 peer-data-[size=sm]/sidebar-group-action:opacity-0 [&>svg]:size-4 [&>svg]:shrink-0',\n className,\n )}\n {...props}\n />\n );\n});\nSidebarGroupAction.displayName = 'SidebarGroupAction';\n\nconst SidebarGroupContent = forwardRef<HTMLDivElement, HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={cn('w-full text-sm', className)}\n {...props}\n />\n );\n },\n);\nSidebarGroupContent.displayName = 'SidebarGroupContent';\n\nconst sidebarMenuButtonVariants = cva(\n 'flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm transition-colors hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:bg-sidebar-accent focus-visible:text-sidebar-accent-foreground focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground',\n {\n variants: {\n variant: {\n default: 'hover:bg-sidebar-accent hover:text-sidebar-accent-foreground',\n outline:\n 'bg-background shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_hsl(var(--sidebar-ring))]',\n },\n size: {\n default: 'h-8 text-sm',\n sm: 'h-7 text-xs',\n lg: 'h-12 text-base',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n },\n);\n\nconst SidebarMenuButton = forwardRef<\n HTMLButtonElement,\n ButtonHTMLAttributes<HTMLButtonElement> &\n VariantProps<typeof sidebarMenuButtonVariants> & {\n asChild?: boolean;\n isActive?: boolean;\n }\n>(({ className, variant, size, asChild = false, isActive, children, ...props }, ref) => {\n const { isCollapsed } = useSidebar();\n const Comp = asChild ? Slot : 'button';\n\n return (\n <Comp\n ref={ref}\n data-active={isActive}\n data-collapsed={isCollapsed}\n className={cn(\n sidebarMenuButtonVariants({ variant, size }),\n isCollapsed && 'justify-center',\n className,\n )}\n {...props}\n >\n {children}\n </Comp>\n );\n});\nSidebarMenuButton.displayName = 'SidebarMenuButton';\n\nconst SidebarMenu = forwardRef<HTMLUListElement, HTMLAttributes<HTMLUListElement>>(\n ({ className, ...props }, ref) => {\n return (\n <ul\n ref={ref}\n className={cn('flex w-full min-w-0 flex-col gap-1', className)}\n {...props}\n />\n );\n },\n);\nSidebarMenu.displayName = 'SidebarMenu';\n\nconst SidebarMenuItem = forwardRef<HTMLLIElement, HTMLAttributes<HTMLLIElement>>(\n ({ className, ...props }, ref) => {\n return (\n <li\n ref={ref}\n className={cn('group/menu-item relative', className)}\n {...props}\n />\n );\n },\n);\nSidebarMenuItem.displayName = 'SidebarMenuItem';\n\nconst SidebarMenuAction = forwardRef<\n HTMLButtonElement,\n ButtonHTMLAttributes<HTMLButtonElement> & {\n asChild?: boolean;\n }\n>(({ className, asChild = false, ...props }, ref) => {\n const Comp = asChild ? Slot : 'button';\n return (\n <Comp\n ref={ref}\n className={cn(\n 'absolute right-2 top-1/2 flex -translate-y-1/2 items-center justify-center rounded-md p-1 text-sidebar-foreground opacity-0 transition-opacity group-hover/menu-item:opacity-100 group-focus/menu-item:opacity-100 [&:has(~:hover)]:opacity-100 [&:has(~:focus)]:opacity-100',\n className,\n )}\n {...props}\n />\n );\n});\nSidebarMenuAction.displayName = 'SidebarMenuAction';\n\nconst SidebarMenuBadge = forwardRef<HTMLDivElement, HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={cn(\n 'absolute right-2 top-1/2 flex -translate-y-1/2 items-center justify-center rounded-md px-1.5 py-0.5 text-xs font-medium tabular-nums text-sidebar-foreground',\n className,\n )}\n {...props}\n />\n );\n },\n);\nSidebarMenuBadge.displayName = 'SidebarMenuBadge';\n\nconst SidebarMenuSkeleton = forwardRef<\n HTMLDivElement,\n HTMLAttributes<HTMLDivElement> & {\n showIcon?: boolean;\n }\n>(({ className, showIcon = false, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={cn('flex items-center gap-2 px-2 py-1.5', className)}\n {...props}\n >\n {showIcon && <div className=\"flex h-4 w-4 rounded-md bg-sidebar-primary/10\" />}\n <div className=\"flex flex-1 flex-col gap-1.5\">\n <div className=\"h-2.5 w-16 rounded-md bg-sidebar-primary/10\" />\n <div className=\"h-2.5 w-24 rounded-md bg-sidebar-primary/10\" />\n </div>\n </div>\n );\n});\nSidebarMenuSkeleton.displayName = 'SidebarMenuSkeleton';\n\nconst SidebarMenuSub = forwardRef<HTMLUListElement, HTMLAttributes<HTMLUListElement>>(\n ({ className, ...props }, ref) => {\n return (\n <ul\n ref={ref}\n className={cn(\n 'ml-4 mt-1 flex min-w-0 flex-col gap-0.5 border-l border-sidebar-border pl-2.5',\n className,\n )}\n {...props}\n />\n );\n },\n);\nSidebarMenuSub.displayName = 'SidebarMenuSub';\n\nconst SidebarMenuSubButton = forwardRef<\n HTMLAnchorElement,\n AnchorHTMLAttributes<HTMLAnchorElement> & {\n asChild?: boolean;\n size?: 'sm' | 'md' | 'lg';\n isActive?: boolean;\n }\n>(({ className, asChild = false, size = 'md', isActive, ...props }, ref) => {\n const Comp = asChild ? Slot : 'a';\n return (\n <Comp\n ref={ref}\n data-size={size}\n data-active={isActive}\n className={cn(\n 'flex min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md p-2 text-sidebar-foreground outline-none ring-sidebar-ring transition-[width,height,padding] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0',\n size === 'sm' && 'text-xs',\n size === 'md' && 'text-sm',\n size === 'lg' && 'text-base',\n className,\n )}\n {...props}\n />\n );\n});\nSidebarMenuSubButton.displayName = 'SidebarMenuSubButton';\n\nconst SidebarMenuSubItem = forwardRef<HTMLLIElement, HTMLAttributes<HTMLLIElement>>(\n ({ className, ...props }, ref) => {\n return (\n <li\n ref={ref}\n className={cn('group/menu-sub-item relative', className)}\n {...props}\n />\n );\n },\n);\nSidebarMenuSubItem.displayName = 'SidebarMenuSubItem';\n\nexport {\n Sidebar,\n SidebarProvider,\n SidebarTrigger,\n SidebarHeader,\n SidebarContent,\n SidebarFooter,\n SidebarGroup,\n SidebarGroupLabel,\n SidebarGroupAction,\n SidebarGroupContent,\n SidebarMenu,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarMenuAction,\n SidebarMenuBadge,\n SidebarMenuSkeleton,\n SidebarMenuSub,\n SidebarMenuSubButton,\n SidebarMenuSubItem,\n useSidebar,\n};\n"],"names":["SidebarContext","createContext","useSidebar","context","useContext","SidebarProvider","children","isCollapsed","setIsCollapsed","useState","toggle","useCallback","prev","jsx","Sidebar","forwardRef","className","props","ref","cn","PanelLeftOpenIcon","jsxs","PanelLeftCloseIcon","SidebarTrigger","Z_INDEX","SidebarHeader","SidebarContent","SidebarFooter","SidebarGroup","SidebarGroupLabel","SidebarGroupAction","asChild","Slot","SidebarGroupContent","sidebarMenuButtonVariants","cva","SidebarMenuButton","variant","size","isActive","SidebarMenu","SidebarMenuItem","SidebarMenuAction","SidebarMenuBadge","SidebarMenuSkeleton","showIcon","SidebarMenuSub","SidebarMenuSubButton","SidebarMenuSubItem"],"mappings":"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"}