@szum-tech/design-system 3.15.0 → 3.17.0

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 (80) hide show
  1. package/dist/{chunk-PTZVUZNQ.cjs → chunk-35H6T7OQ.cjs} +562 -5
  2. package/dist/{chunk-3MH6P44N.js → chunk-3DP3VMPN.js} +1 -1
  3. package/dist/{chunk-6X26XC6P.cjs → chunk-5B37TQYT.cjs} +4 -3
  4. package/dist/{chunk-XJIUGEPN.js → chunk-A72LE53B.js} +1 -1
  5. package/dist/{chunk-OH323B3O.js → chunk-AAPMLWYK.js} +537 -5
  6. package/dist/{chunk-UIOBJSKZ.cjs → chunk-DUAM4RTP.cjs} +1 -1
  7. package/dist/{chunk-XY3ZNUWR.cjs → chunk-F7NFSDOD.cjs} +17 -4
  8. package/dist/{chunk-DTYX7CYN.cjs → chunk-HPICKLBZ.cjs} +2 -2
  9. package/dist/chunk-I3E75OQX.js +16 -0
  10. package/dist/chunk-KTAIBRTH.cjs +10 -0
  11. package/dist/{chunk-KGGCA634.js → chunk-L2TRMQNN.js} +1 -1
  12. package/dist/chunk-NXEZE7LG.js +15 -0
  13. package/dist/chunk-OXZQGDTR.js +208 -0
  14. package/dist/{chunk-4IGU5SVP.js → chunk-P4IL77YC.js} +16 -4
  15. package/dist/{chunk-CAIAZGSW.cjs → chunk-RKFU4DS3.cjs} +2 -2
  16. package/dist/chunk-SHPJGB2L.cjs +19 -0
  17. package/dist/{chunk-CFJ44JVK.cjs → chunk-UNOMGKAZ.cjs} +2 -2
  18. package/dist/{chunk-Q2MJKFIE.js → chunk-WCQ5WKCQ.js} +1 -1
  19. package/dist/chunk-X7WREEFD.js +8 -0
  20. package/dist/chunk-YBFG2IRJ.cjs +225 -0
  21. package/dist/components/badge-overflow/index.cjs +2 -2
  22. package/dist/components/badge-overflow/index.js +1 -1
  23. package/dist/components/breadcrump/index.cjs +80 -0
  24. package/dist/components/breadcrump/index.d.cts +21 -0
  25. package/dist/components/breadcrump/index.d.ts +21 -0
  26. package/dist/components/breadcrump/index.js +72 -0
  27. package/dist/components/button/index.cjs +22 -19
  28. package/dist/components/button/index.js +21 -18
  29. package/dist/components/carousel/index.cjs +23 -20
  30. package/dist/components/carousel/index.js +21 -18
  31. package/dist/components/collapsible/index.cjs +18 -0
  32. package/dist/components/collapsible/index.d.cts +12 -0
  33. package/dist/components/collapsible/index.d.ts +12 -0
  34. package/dist/components/collapsible/index.js +1 -0
  35. package/dist/components/color-picker/index.cjs +32 -29
  36. package/dist/components/color-picker/index.js +21 -18
  37. package/dist/components/dropdown-menu/index.cjs +71 -0
  38. package/dist/components/dropdown-menu/index.d.cts +67 -0
  39. package/dist/components/dropdown-menu/index.d.ts +67 -0
  40. package/dist/components/dropdown-menu/index.js +2 -0
  41. package/dist/components/field/index.cjs +12 -12
  42. package/dist/components/field/index.js +2 -2
  43. package/dist/components/header/index.cjs +3 -2
  44. package/dist/components/header/index.d.cts +11 -2
  45. package/dist/components/header/index.d.ts +11 -2
  46. package/dist/components/header/index.js +2 -1
  47. package/dist/components/index.cjs +346 -163
  48. package/dist/components/index.d.cts +6 -1
  49. package/dist/components/index.d.ts +6 -1
  50. package/dist/components/index.js +21 -18
  51. package/dist/components/item/index.cjs +12 -12
  52. package/dist/components/item/index.js +2 -2
  53. package/dist/components/masonry/index.cjs +4 -4
  54. package/dist/components/masonry/index.js +2 -2
  55. package/dist/components/separator/index.cjs +2 -2
  56. package/dist/components/separator/index.js +1 -1
  57. package/dist/components/sidebar/index.cjs +148 -0
  58. package/dist/components/sidebar/index.d.cts +135 -0
  59. package/dist/components/sidebar/index.d.ts +135 -0
  60. package/dist/components/sidebar/index.js +43 -0
  61. package/dist/components/skeleton/index.cjs +11 -0
  62. package/dist/components/skeleton/index.d.cts +7 -0
  63. package/dist/components/skeleton/index.d.ts +7 -0
  64. package/dist/components/skeleton/index.js +2 -0
  65. package/dist/components/stepper/index.cjs +40 -37
  66. package/dist/components/stepper/index.js +21 -18
  67. package/dist/components/timeline/index.cjs +1 -1
  68. package/dist/components/timeline/index.js +1 -1
  69. package/dist/components/toaster/index.cjs +23 -20
  70. package/dist/components/toaster/index.js +21 -18
  71. package/dist/components/tooltip/index.d.cts +2 -4
  72. package/dist/components/tooltip/index.d.ts +2 -4
  73. package/dist/hooks/index.cjs +8 -4
  74. package/dist/hooks/index.d.cts +3 -1
  75. package/dist/hooks/index.d.ts +3 -1
  76. package/dist/hooks/index.js +1 -1
  77. package/dist/tooltip-content-DqtogPBq.d.cts +8 -0
  78. package/dist/tooltip-content-DqtogPBq.d.ts +8 -0
  79. package/package.json +1 -1
  80. package/dist/chunk-VT5GDGZJ.js +0 -15
@@ -1,11 +1,15 @@
1
1
  'use strict';
2
2
 
3
- var chunkMNDQXDV4_cjs = require('./chunk-MNDQXDV4.cjs');
3
+ var chunkA7SBXO2Y_cjs = require('./chunk-A7SBXO2Y.cjs');
4
4
  var chunk3WSQRFUY_cjs = require('./chunk-3WSQRFUY.cjs');
5
- var chunkGEDBA3JU_cjs = require('./chunk-GEDBA3JU.cjs');
5
+ var chunkMNDQXDV4_cjs = require('./chunk-MNDQXDV4.cjs');
6
6
  var chunk6HX7ETL3_cjs = require('./chunk-6HX7ETL3.cjs');
7
+ var chunk375QAB65_cjs = require('./chunk-375QAB65.cjs');
8
+ var chunkKTAIBRTH_cjs = require('./chunk-KTAIBRTH.cjs');
7
9
  var chunkB4M7Q5KX_cjs = require('./chunk-B4M7Q5KX.cjs');
8
- var chunkXY3ZNUWR_cjs = require('./chunk-XY3ZNUWR.cjs');
10
+ var chunkGEDBA3JU_cjs = require('./chunk-GEDBA3JU.cjs');
11
+ var chunkDUAM4RTP_cjs = require('./chunk-DUAM4RTP.cjs');
12
+ var chunkF7NFSDOD_cjs = require('./chunk-F7NFSDOD.cjs');
9
13
  var chunkN4TYSZSU_cjs = require('./chunk-N4TYSZSU.cjs');
10
14
  var chunkH2BWO3SI_cjs = require('./chunk-H2BWO3SI.cjs');
11
15
  var React16 = require('react');
@@ -542,7 +546,7 @@ function ColorPickerImpl(props) {
542
546
  const store = useColorPickerStoreContext(COLOR_PICKER_IMPL_NAME);
543
547
  const dir = radixUi.Direction.useDirection(dirProp);
544
548
  const [formTrigger, setFormTrigger] = React16__namespace.useState(null);
545
- const composedRef = chunkXY3ZNUWR_cjs.useComposedRefs(ref, (node) => setFormTrigger(node));
549
+ const composedRef = chunkF7NFSDOD_cjs.useComposedRefs(ref, (node) => setFormTrigger(node));
546
550
  const isFormControl = formTrigger ? !!formTrigger.closest("form") : true;
547
551
  chunkN4TYSZSU_cjs.useIsomorphicLayoutEffect(() => {
548
552
  if (valueProp !== void 0) {
@@ -650,7 +654,7 @@ function ColorPickerArea(props) {
650
654
  const hsv = useColorPickerStore((state) => state.hsv);
651
655
  const isDraggingRef = React16__namespace.useRef(false);
652
656
  const areaRef = React16__namespace.useRef(null);
653
- const composedRef = chunkXY3ZNUWR_cjs.useComposedRefs(ref, areaRef);
657
+ const composedRef = chunkF7NFSDOD_cjs.useComposedRefs(ref, areaRef);
654
658
  const updateColorFromPosition = React16__namespace.useCallback(
655
659
  (clientX, clientY) => {
656
660
  if (!areaRef.current) return;
@@ -2204,6 +2208,534 @@ var Toaster = ({ theme = "system", ...props }) => {
2204
2208
  }
2205
2209
  );
2206
2210
  };
2211
+
2212
+ // src/components/sidebar/sidebar.constants.ts
2213
+ var SIDEBAR_COOKIE_NAME = "sidebar_state";
2214
+ var SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;
2215
+ var SIDEBAR_WIDTH = "16rem";
2216
+ var SIDEBAR_WIDTH_MOBILE = "18rem";
2217
+ var SIDEBAR_WIDTH_ICON = "3rem";
2218
+ var SIDEBAR_ROOT_NAME = "SidebarProvider";
2219
+ var SidebarContext = React16__namespace.createContext(null);
2220
+ function useSidebarContext(consumerName) {
2221
+ const context = React16__namespace.useContext(SidebarContext);
2222
+ if (!context) {
2223
+ throw new Error(`\`${consumerName}\` must be used within \`${SIDEBAR_ROOT_NAME}\``);
2224
+ }
2225
+ return context;
2226
+ }
2227
+ function useSidebar() {
2228
+ return useSidebarContext("useSidebar");
2229
+ }
2230
+ function SidebarProvider({
2231
+ defaultOpen = true,
2232
+ open: openProp,
2233
+ onOpenChange: setOpenProp,
2234
+ className,
2235
+ style,
2236
+ children,
2237
+ ...props
2238
+ }) {
2239
+ const isMobile = chunkF7NFSDOD_cjs.useIsMobile();
2240
+ const [openMobile, setOpenMobile] = React16__namespace.useState(false);
2241
+ const [_open, _setOpen] = React16__namespace.useState(defaultOpen);
2242
+ const open = openProp ?? _open;
2243
+ const setOpen = React16__namespace.useCallback(
2244
+ (value) => {
2245
+ const openState = typeof value === "function" ? value(open) : value;
2246
+ if (setOpenProp) {
2247
+ setOpenProp(openState);
2248
+ } else {
2249
+ _setOpen(openState);
2250
+ }
2251
+ document.cookie = `${SIDEBAR_COOKIE_NAME}=${openState}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`;
2252
+ },
2253
+ [setOpenProp, open]
2254
+ );
2255
+ const toggleSidebar = React16__namespace.useCallback(() => {
2256
+ return isMobile ? setOpenMobile((open2) => !open2) : setOpen((open2) => !open2);
2257
+ }, [isMobile, setOpen, setOpenMobile]);
2258
+ React16__namespace.useEffect(() => {
2259
+ const handleKeyDown = (event) => {
2260
+ if (event.key === "b" && (event.metaKey || event.ctrlKey)) {
2261
+ event.preventDefault();
2262
+ toggleSidebar();
2263
+ }
2264
+ };
2265
+ window.addEventListener("keydown", handleKeyDown);
2266
+ return () => window.removeEventListener("keydown", handleKeyDown);
2267
+ }, [toggleSidebar]);
2268
+ const state = open ? "expanded" : "collapsed";
2269
+ const contextValue = React16__namespace.useMemo(
2270
+ () => ({ state, open, setOpen, isMobile, openMobile, setOpenMobile, toggleSidebar }),
2271
+ [state, open, setOpen, isMobile, openMobile, setOpenMobile, toggleSidebar]
2272
+ );
2273
+ return /* @__PURE__ */ jsxRuntime.jsx(SidebarContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsxRuntime.jsx(
2274
+ "div",
2275
+ {
2276
+ "data-slot": "sidebar-wrapper",
2277
+ style: {
2278
+ "--sidebar-width": SIDEBAR_WIDTH,
2279
+ "--sidebar-width-icon": SIDEBAR_WIDTH_ICON,
2280
+ ...style
2281
+ },
2282
+ className: chunkH2BWO3SI_cjs.cn("group/sidebar-wrapper has-data-[variant=inset]:bg-sidebar flex min-h-svh w-full", className),
2283
+ ...props,
2284
+ children
2285
+ }
2286
+ ) });
2287
+ }
2288
+ function Sidebar({
2289
+ side = "left",
2290
+ variant = "sidebar",
2291
+ collapsible = "offcanvas",
2292
+ className,
2293
+ children,
2294
+ dir,
2295
+ ...props
2296
+ }) {
2297
+ const { isMobile, state, openMobile, setOpenMobile } = useSidebarContext("Sidebar");
2298
+ if (collapsible === "none") {
2299
+ return /* @__PURE__ */ jsxRuntime.jsx(
2300
+ "div",
2301
+ {
2302
+ "data-slot": "sidebar",
2303
+ className: chunkH2BWO3SI_cjs.cn("bg-sidebar text-sidebar-foreground flex h-full w-(--sidebar-width) flex-col", className),
2304
+ ...props,
2305
+ children
2306
+ }
2307
+ );
2308
+ }
2309
+ if (isMobile) {
2310
+ return /* @__PURE__ */ jsxRuntime.jsx(chunk375QAB65_cjs.Sheet, { open: openMobile, onOpenChange: setOpenMobile, ...props, children: /* @__PURE__ */ jsxRuntime.jsxs(
2311
+ chunk375QAB65_cjs.SheetContent,
2312
+ {
2313
+ dir,
2314
+ "data-sidebar": "sidebar",
2315
+ "data-slot": "sidebar",
2316
+ "data-mobile": "true",
2317
+ className: "bg-sidebar text-sidebar-foreground w-(--sidebar-width) p-0",
2318
+ style: { "--sidebar-width": SIDEBAR_WIDTH_MOBILE },
2319
+ side,
2320
+ showCloseButton: false,
2321
+ children: [
2322
+ /* @__PURE__ */ jsxRuntime.jsxs(chunk375QAB65_cjs.SheetHeader, { className: "sr-only", children: [
2323
+ /* @__PURE__ */ jsxRuntime.jsx(chunk375QAB65_cjs.SheetTitle, { children: "Sidebar" }),
2324
+ /* @__PURE__ */ jsxRuntime.jsx(chunk375QAB65_cjs.SheetDescription, { children: "Displays the mobile sidebar." })
2325
+ ] }),
2326
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-full w-full flex-col", children })
2327
+ ]
2328
+ }
2329
+ ) });
2330
+ }
2331
+ return /* @__PURE__ */ jsxRuntime.jsxs(
2332
+ "div",
2333
+ {
2334
+ className: "group peer text-sidebar-foreground hidden md:block",
2335
+ "data-state": state,
2336
+ "data-collapsible": state === "collapsed" ? collapsible : "",
2337
+ "data-variant": variant,
2338
+ "data-side": side,
2339
+ "data-slot": "sidebar",
2340
+ children: [
2341
+ /* @__PURE__ */ jsxRuntime.jsx(
2342
+ "div",
2343
+ {
2344
+ "data-slot": "sidebar-gap",
2345
+ className: chunkH2BWO3SI_cjs.cn(
2346
+ "relative w-(--sidebar-width) bg-transparent transition-[width] duration-200 ease-linear",
2347
+ "group-data-[collapsible=offcanvas]:w-0",
2348
+ "group-data-[side=right]:rotate-180",
2349
+ variant === "floating" || variant === "inset" ? "group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]" : "group-data-[collapsible=icon]:w-(--sidebar-width-icon)"
2350
+ )
2351
+ }
2352
+ ),
2353
+ /* @__PURE__ */ jsxRuntime.jsx(
2354
+ "div",
2355
+ {
2356
+ "data-slot": "sidebar-container",
2357
+ "data-side": side,
2358
+ className: chunkH2BWO3SI_cjs.cn(
2359
+ "fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear data-[side=left]:left-0 data-[side=left]:group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)] data-[side=right]:right-0 data-[side=right]:group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)] md:flex",
2360
+ variant === "floating" || variant === "inset" ? "p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]" : "group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l",
2361
+ className
2362
+ ),
2363
+ ...props,
2364
+ children: /* @__PURE__ */ jsxRuntime.jsx(
2365
+ "div",
2366
+ {
2367
+ "data-sidebar": "sidebar",
2368
+ "data-slot": "sidebar-inner",
2369
+ className: "bg-sidebar group-data-[variant=floating]:ring-sidebar-border flex size-full flex-col group-data-[variant=floating]:rounded group-data-[variant=floating]:shadow-sm group-data-[variant=floating]:ring-1",
2370
+ children
2371
+ }
2372
+ )
2373
+ }
2374
+ )
2375
+ ]
2376
+ }
2377
+ );
2378
+ }
2379
+ function SidebarTrigger({ className, onClick, ...props }) {
2380
+ const { toggleSidebar } = useSidebarContext("SidebarTrigger");
2381
+ return /* @__PURE__ */ jsxRuntime.jsxs(
2382
+ Button,
2383
+ {
2384
+ "data-sidebar": "trigger",
2385
+ "data-slot": "sidebar-trigger",
2386
+ variant: "ghost",
2387
+ size: "icon-sm",
2388
+ className: chunkH2BWO3SI_cjs.cn(className),
2389
+ onClick: (event) => {
2390
+ onClick?.(event);
2391
+ toggleSidebar();
2392
+ },
2393
+ ...props,
2394
+ children: [
2395
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.PanelLeftIcon, { className: "cn-rtl-flip" }),
2396
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: "Toggle Sidebar" })
2397
+ ]
2398
+ }
2399
+ );
2400
+ }
2401
+ function SidebarRail({ className, ...props }) {
2402
+ const { toggleSidebar } = useSidebarContext("SidebarRail");
2403
+ return /* @__PURE__ */ jsxRuntime.jsx(
2404
+ "button",
2405
+ {
2406
+ "data-sidebar": "rail",
2407
+ "data-slot": "sidebar-rail",
2408
+ "aria-label": "Toggle Sidebar",
2409
+ tabIndex: -1,
2410
+ onClick: toggleSidebar,
2411
+ title: "Toggle Sidebar",
2412
+ className: chunkH2BWO3SI_cjs.cn(
2413
+ "hover:after:bg-sidebar-border absolute inset-y-0 z-20 hidden w-4 transition-all ease-linear group-data-[side=left]:-right-4 group-data-[side=right]:left-0 after:absolute after:inset-y-0 after:start-1/2 after:w-[2px] sm:flex ltr:-translate-x-1/2 rtl:-translate-x-1/2",
2414
+ "in-data-[side=left]:cursor-w-resize in-data-[side=right]:cursor-e-resize",
2415
+ "[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize",
2416
+ "hover:group-data-[collapsible=offcanvas]:bg-sidebar group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full",
2417
+ "[[data-side=left][data-collapsible=offcanvas]_&]:-right-2",
2418
+ "[[data-side=right][data-collapsible=offcanvas]_&]:-left-2",
2419
+ className
2420
+ ),
2421
+ ...props
2422
+ }
2423
+ );
2424
+ }
2425
+ function SidebarInset({ className, ...props }) {
2426
+ return /* @__PURE__ */ jsxRuntime.jsx(
2427
+ "main",
2428
+ {
2429
+ "data-slot": "sidebar-inset",
2430
+ className: chunkH2BWO3SI_cjs.cn(
2431
+ "bg-background relative flex w-full flex-1 flex-col md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded md:peer-data-[variant=inset]:shadow-sm md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-2",
2432
+ className
2433
+ ),
2434
+ ...props
2435
+ }
2436
+ );
2437
+ }
2438
+ function SidebarInput({ className, ...props }) {
2439
+ return /* @__PURE__ */ jsxRuntime.jsx(
2440
+ chunkB4M7Q5KX_cjs.Input,
2441
+ {
2442
+ "data-slot": "sidebar-input",
2443
+ "data-sidebar": "input",
2444
+ className: chunkH2BWO3SI_cjs.cn("bg-background h-8 w-full shadow-none", className),
2445
+ ...props
2446
+ }
2447
+ );
2448
+ }
2449
+ function SidebarHeader({ className, ...props }) {
2450
+ return /* @__PURE__ */ jsxRuntime.jsx(
2451
+ "div",
2452
+ {
2453
+ "data-slot": "sidebar-header",
2454
+ "data-sidebar": "header",
2455
+ className: chunkH2BWO3SI_cjs.cn("flex flex-col gap-2 p-2", className),
2456
+ ...props
2457
+ }
2458
+ );
2459
+ }
2460
+ function SidebarFooter({ className, ...props }) {
2461
+ return /* @__PURE__ */ jsxRuntime.jsx(
2462
+ "div",
2463
+ {
2464
+ "data-slot": "sidebar-footer",
2465
+ "data-sidebar": "footer",
2466
+ className: chunkH2BWO3SI_cjs.cn("flex flex-col gap-2 p-2", className),
2467
+ ...props
2468
+ }
2469
+ );
2470
+ }
2471
+ function SidebarSeparator({ className, ...props }) {
2472
+ return /* @__PURE__ */ jsxRuntime.jsx(
2473
+ chunkDUAM4RTP_cjs.Separator,
2474
+ {
2475
+ "data-slot": "sidebar-separator",
2476
+ "data-sidebar": "separator",
2477
+ className: chunkH2BWO3SI_cjs.cn("bg-sidebar-border mx-2 w-auto", className),
2478
+ ...props
2479
+ }
2480
+ );
2481
+ }
2482
+ function SidebarContent({ className, ...props }) {
2483
+ return /* @__PURE__ */ jsxRuntime.jsx(
2484
+ "div",
2485
+ {
2486
+ "data-slot": "sidebar-content",
2487
+ "data-sidebar": "content",
2488
+ className: chunkH2BWO3SI_cjs.cn(
2489
+ "no-scrollbar flex min-h-0 flex-1 flex-col gap-0 overflow-auto group-data-[collapsible=icon]:overflow-hidden",
2490
+ className
2491
+ ),
2492
+ ...props
2493
+ }
2494
+ );
2495
+ }
2496
+ function SidebarGroup({ className, ...props }) {
2497
+ return /* @__PURE__ */ jsxRuntime.jsx(
2498
+ "div",
2499
+ {
2500
+ "data-slot": "sidebar-group",
2501
+ "data-sidebar": "group",
2502
+ className: chunkH2BWO3SI_cjs.cn("relative flex w-full min-w-0 flex-col p-2", className),
2503
+ ...props
2504
+ }
2505
+ );
2506
+ }
2507
+ function SidebarGroupLabel({ className, asChild = false, ...props }) {
2508
+ const Comp = asChild ? reactSlot.Slot : "div";
2509
+ return /* @__PURE__ */ jsxRuntime.jsx(
2510
+ Comp,
2511
+ {
2512
+ "data-slot": "sidebar-group-label",
2513
+ "data-sidebar": "group-label",
2514
+ className: chunkH2BWO3SI_cjs.cn(
2515
+ "text-sidebar-foreground/70 ring-sidebar-ring flex h-8 shrink-0 items-center rounded px-2 text-xs font-medium outline-hidden transition-[margin,opacity] duration-200 ease-linear group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0 focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0",
2516
+ className
2517
+ ),
2518
+ ...props
2519
+ }
2520
+ );
2521
+ }
2522
+ function SidebarGroupAction({ className, asChild = false, ...props }) {
2523
+ const Comp = asChild ? reactSlot.Slot : "button";
2524
+ return /* @__PURE__ */ jsxRuntime.jsx(
2525
+ Comp,
2526
+ {
2527
+ "data-slot": "sidebar-group-action",
2528
+ "data-sidebar": "group-action",
2529
+ className: chunkH2BWO3SI_cjs.cn(
2530
+ "text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground absolute top-3.5 right-3 flex aspect-square w-5 items-center justify-center rounded p-0 outline-hidden transition-transform group-data-[collapsible=icon]:hidden after:absolute after:-inset-2 focus-visible:ring-2 md:after:hidden [&>svg]:size-4 [&>svg]:shrink-0",
2531
+ className
2532
+ ),
2533
+ ...props
2534
+ }
2535
+ );
2536
+ }
2537
+ function SidebarGroupContent({ className, ...props }) {
2538
+ return /* @__PURE__ */ jsxRuntime.jsx(
2539
+ "div",
2540
+ {
2541
+ "data-slot": "sidebar-group-content",
2542
+ "data-sidebar": "group-content",
2543
+ className: chunkH2BWO3SI_cjs.cn("w-full text-sm", className),
2544
+ ...props
2545
+ }
2546
+ );
2547
+ }
2548
+ function SidebarMenu({ className, ...props }) {
2549
+ return /* @__PURE__ */ jsxRuntime.jsx(
2550
+ "ul",
2551
+ {
2552
+ "data-slot": "sidebar-menu",
2553
+ "data-sidebar": "menu",
2554
+ className: chunkH2BWO3SI_cjs.cn("flex w-full min-w-0 flex-col gap-0", className),
2555
+ ...props
2556
+ }
2557
+ );
2558
+ }
2559
+ function SidebarMenuItem({ className, ...props }) {
2560
+ return /* @__PURE__ */ jsxRuntime.jsx(
2561
+ "li",
2562
+ {
2563
+ "data-slot": "sidebar-menu-item",
2564
+ "data-sidebar": "menu-item",
2565
+ className: chunkH2BWO3SI_cjs.cn("group/menu-item relative", className),
2566
+ ...props
2567
+ }
2568
+ );
2569
+ }
2570
+ var sidebarMenuButtonVariants = classVarianceAuthority.cva(
2571
+ [
2572
+ "peer/menu-button group/menu-button flex w-full items-center gap-2 overflow-hidden rounded p-2 text-left text-sm ring-sidebar-ring outline-hidden transition-[width,height,padding] group-has-data-[sidebar=menu-action]/menu-item:pr-8 group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 [&>span:last-child]:truncate",
2573
+ "disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50",
2574
+ "active:bg-sidebar-accent active:text-sidebar-accent-foreground data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground",
2575
+ "data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground",
2576
+ "[&_svg]:size-4 [&_svg]:shrink-0"
2577
+ ],
2578
+ {
2579
+ variants: {
2580
+ variant: {
2581
+ default: "hover:bg-sidebar-accent hover:text-sidebar-accent-foreground",
2582
+ outline: "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-accent))]"
2583
+ },
2584
+ size: {
2585
+ default: "h-8 text-sm",
2586
+ sm: "h-7 text-xs",
2587
+ lg: "h-12 text-sm group-data-[collapsible=icon]:p-0!"
2588
+ }
2589
+ },
2590
+ defaultVariants: {
2591
+ variant: "default",
2592
+ size: "default"
2593
+ }
2594
+ }
2595
+ );
2596
+ function SidebarMenuButton({
2597
+ asChild = false,
2598
+ isActive = false,
2599
+ variant = "default",
2600
+ size = "default",
2601
+ tooltip,
2602
+ className,
2603
+ ...props
2604
+ }) {
2605
+ const Comp = asChild ? reactSlot.Slot : "button";
2606
+ const { isMobile, state } = useSidebarContext("SidebarMenuButton");
2607
+ const button = /* @__PURE__ */ jsxRuntime.jsx(
2608
+ Comp,
2609
+ {
2610
+ "data-slot": "sidebar-menu-button",
2611
+ "data-sidebar": "menu-button",
2612
+ "data-size": size,
2613
+ "data-active": isActive,
2614
+ className: chunkH2BWO3SI_cjs.cn(sidebarMenuButtonVariants({ variant, size }), className),
2615
+ ...props
2616
+ }
2617
+ );
2618
+ if (!tooltip) {
2619
+ return button;
2620
+ }
2621
+ if (typeof tooltip === "string") {
2622
+ tooltip = { children: tooltip };
2623
+ }
2624
+ return /* @__PURE__ */ jsxRuntime.jsxs(chunkA7SBXO2Y_cjs.Tooltip, { children: [
2625
+ /* @__PURE__ */ jsxRuntime.jsx(chunkA7SBXO2Y_cjs.TooltipTrigger, { asChild: true, children: button }),
2626
+ /* @__PURE__ */ jsxRuntime.jsx(chunkA7SBXO2Y_cjs.TooltipContent, { side: "right", align: "center", hidden: state !== "collapsed" || isMobile, ...tooltip })
2627
+ ] });
2628
+ }
2629
+ function SidebarMenuAction({
2630
+ className,
2631
+ asChild = false,
2632
+ showOnHover = false,
2633
+ ...props
2634
+ }) {
2635
+ const Comp = asChild ? reactSlot.Slot : "button";
2636
+ return /* @__PURE__ */ jsxRuntime.jsx(
2637
+ Comp,
2638
+ {
2639
+ "data-slot": "sidebar-menu-action",
2640
+ "data-sidebar": "menu-action",
2641
+ className: chunkH2BWO3SI_cjs.cn(
2642
+ "text-sidebar-foreground ring-sidebar-ring peer-hover/menu-button:text-sidebar-accent-foreground hover:bg-sidebar-accent hover:text-sidebar-accent-foreground absolute top-1.5 right-1 flex aspect-square w-5 items-center justify-center rounded p-0 outline-hidden transition-transform group-data-[collapsible=icon]:hidden peer-data-[size=default]/menu-button:top-1.5 peer-data-[size=lg]/menu-button:top-2.5 peer-data-[size=sm]/menu-button:top-1 after:absolute after:-inset-2 focus-visible:ring-2 md:after:hidden [&>svg]:size-4 [&>svg]:shrink-0",
2643
+ showOnHover && "peer-data-active/menu-button:text-sidebar-accent-foreground group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 aria-expanded:opacity-100 md:opacity-0",
2644
+ className
2645
+ ),
2646
+ ...props
2647
+ }
2648
+ );
2649
+ }
2650
+ function SidebarMenuBadge({ className, ...props }) {
2651
+ return /* @__PURE__ */ jsxRuntime.jsx(
2652
+ "div",
2653
+ {
2654
+ "data-slot": "sidebar-menu-badge",
2655
+ "data-sidebar": "menu-badge",
2656
+ className: chunkH2BWO3SI_cjs.cn(
2657
+ "text-sidebar-foreground peer-hover/menu-button:text-sidebar-accent-foreground peer-data-active/menu-button:text-sidebar-accent-foreground pointer-events-none absolute right-1 flex h-5 min-w-5 items-center justify-center rounded-md px-1 text-xs font-medium tabular-nums select-none group-data-[collapsible=icon]:hidden peer-data-[size=default]/menu-button:top-1.5 peer-data-[size=lg]/menu-button:top-2.5 peer-data-[size=sm]/menu-button:top-1",
2658
+ className
2659
+ ),
2660
+ ...props
2661
+ }
2662
+ );
2663
+ }
2664
+ function SidebarMenuSkeleton({ className, showIcon = false, ...props }) {
2665
+ const [width] = React16__namespace.useState(() => {
2666
+ return `${Math.floor(Math.random() * 40) + 50}%`;
2667
+ });
2668
+ return /* @__PURE__ */ jsxRuntime.jsxs(
2669
+ "div",
2670
+ {
2671
+ "data-slot": "sidebar-menu-skeleton",
2672
+ "data-sidebar": "menu-skeleton",
2673
+ className: chunkH2BWO3SI_cjs.cn("flex h-8 items-center gap-2 rounded px-2", className),
2674
+ ...props,
2675
+ children: [
2676
+ showIcon && /* @__PURE__ */ jsxRuntime.jsx(chunkKTAIBRTH_cjs.Skeleton, { className: "size-4 rounded", "data-sidebar": "menu-skeleton-icon" }),
2677
+ /* @__PURE__ */ jsxRuntime.jsx(
2678
+ chunkKTAIBRTH_cjs.Skeleton,
2679
+ {
2680
+ className: "h-4 max-w-(--skeleton-width) flex-1",
2681
+ "data-sidebar": "menu-skeleton-text",
2682
+ style: {
2683
+ "--skeleton-width": width
2684
+ }
2685
+ }
2686
+ )
2687
+ ]
2688
+ }
2689
+ );
2690
+ }
2691
+ function SidebarMenuSub({ className, ...props }) {
2692
+ return /* @__PURE__ */ jsxRuntime.jsx(
2693
+ "ul",
2694
+ {
2695
+ "data-slot": "sidebar-menu-sub",
2696
+ "data-sidebar": "menu-sub",
2697
+ className: chunkH2BWO3SI_cjs.cn(
2698
+ "border-sidebar-border mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l px-2.5 py-0.5 group-data-[collapsible=icon]:hidden",
2699
+ className
2700
+ ),
2701
+ ...props
2702
+ }
2703
+ );
2704
+ }
2705
+ function SidebarMenuSubItem({ className, ...props }) {
2706
+ return /* @__PURE__ */ jsxRuntime.jsx(
2707
+ "li",
2708
+ {
2709
+ "data-slot": "sidebar-menu-sub-item",
2710
+ "data-sidebar": "menu-sub-item",
2711
+ className: chunkH2BWO3SI_cjs.cn("group/menu-sub-item relative", className),
2712
+ ...props
2713
+ }
2714
+ );
2715
+ }
2716
+ function SidebarMenuSubButton({
2717
+ asChild = false,
2718
+ size = "md",
2719
+ isActive = false,
2720
+ className,
2721
+ ...props
2722
+ }) {
2723
+ const Comp = asChild ? reactSlot.Slot : "a";
2724
+ return /* @__PURE__ */ jsxRuntime.jsx(
2725
+ Comp,
2726
+ {
2727
+ "data-slot": "sidebar-menu-sub-button",
2728
+ "data-sidebar": "menu-sub-button",
2729
+ "data-size": size,
2730
+ "data-active": isActive,
2731
+ className: chunkH2BWO3SI_cjs.cn(
2732
+ "text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground active:bg-sidebar-accent active:text-sidebar-accent-foreground data-[state=active]:bg-sidebar-accent data-[state=active]:text-sidebar-accent-foreground [&>svg]:text-sidebar-accent-foreground flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded px-2 outline-hidden group-data-[collapsible=icon]:hidden focus-visible:ring-2 disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[size=md]:text-sm data-[size=sm]:text-xs [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0",
2733
+ className
2734
+ ),
2735
+ ...props
2736
+ }
2737
+ );
2738
+ }
2207
2739
  var buttonVariants = classVarianceAuthority.cva(
2208
2740
  [
2209
2741
  "inline-flex shrink-0 items-center justify-center gap-2 rounded text-sm font-medium whitespace-nowrap transition-all outline-none",
@@ -2332,6 +2864,29 @@ exports.ColorPickerHueSlider = ColorPickerHueSlider;
2332
2864
  exports.ColorPickerInput = ColorPickerInput;
2333
2865
  exports.ColorPickerSwatch = ColorPickerSwatch;
2334
2866
  exports.ColorPickerTrigger = ColorPickerTrigger;
2867
+ exports.Sidebar = Sidebar;
2868
+ exports.SidebarContent = SidebarContent;
2869
+ exports.SidebarFooter = SidebarFooter;
2870
+ exports.SidebarGroup = SidebarGroup;
2871
+ exports.SidebarGroupAction = SidebarGroupAction;
2872
+ exports.SidebarGroupContent = SidebarGroupContent;
2873
+ exports.SidebarGroupLabel = SidebarGroupLabel;
2874
+ exports.SidebarHeader = SidebarHeader;
2875
+ exports.SidebarInput = SidebarInput;
2876
+ exports.SidebarInset = SidebarInset;
2877
+ exports.SidebarMenu = SidebarMenu;
2878
+ exports.SidebarMenuAction = SidebarMenuAction;
2879
+ exports.SidebarMenuBadge = SidebarMenuBadge;
2880
+ exports.SidebarMenuButton = SidebarMenuButton;
2881
+ exports.SidebarMenuItem = SidebarMenuItem;
2882
+ exports.SidebarMenuSkeleton = SidebarMenuSkeleton;
2883
+ exports.SidebarMenuSub = SidebarMenuSub;
2884
+ exports.SidebarMenuSubButton = SidebarMenuSubButton;
2885
+ exports.SidebarMenuSubItem = SidebarMenuSubItem;
2886
+ exports.SidebarProvider = SidebarProvider;
2887
+ exports.SidebarRail = SidebarRail;
2888
+ exports.SidebarSeparator = SidebarSeparator;
2889
+ exports.SidebarTrigger = SidebarTrigger;
2335
2890
  exports.Stepper = Stepper;
2336
2891
  exports.StepperActivationMode = StepperActivationMode;
2337
2892
  exports.StepperContent = StepperContent;
@@ -2350,6 +2905,8 @@ exports.StepperTitle = StepperTitle;
2350
2905
  exports.StepperTrigger = StepperTrigger;
2351
2906
  exports.Toaster = Toaster;
2352
2907
  exports.useColorPickerStore = useColorPickerStore;
2908
+ exports.useSidebar = useSidebar;
2909
+ exports.useSidebarContext = useSidebarContext;
2353
2910
  exports.useStepperContext = useStepperContext;
2354
2911
  exports.useStepperFocusContext = useStepperFocusContext;
2355
2912
  exports.useStepperItemContext = useStepperItemContext;
@@ -1,4 +1,4 @@
1
- import { Separator } from './chunk-XJIUGEPN.js';
1
+ import { Separator } from './chunk-A72LE53B.js';
2
2
  import { Label } from './chunk-I3RSTJP6.js';
3
3
  import { cn } from './chunk-ZD2QRAOX.js';
4
4
  import { cva } from 'class-variance-authority';
@@ -1,15 +1,16 @@
1
1
  'use strict';
2
2
 
3
+ var chunkH2BWO3SI_cjs = require('./chunk-H2BWO3SI.cjs');
3
4
  var jsxRuntime = require('react/jsx-runtime');
4
5
 
5
- // src/components/header/header.tsx
6
- function Header({ children, ...props }) {
6
+ function Header({ children, variant = "container", ...props }) {
7
7
  return /* @__PURE__ */ jsxRuntime.jsx(
8
8
  "header",
9
9
  {
10
+ "data-slot": "header",
10
11
  className: "border-border/40 bg-background/95 supports-backdrop-filter:bg-background/60 sticky top-0 z-50 w-full border-b backdrop-blur",
11
12
  ...props,
12
- children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "container flex h-16 items-center", children })
13
+ children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: chunkH2BWO3SI_cjs.cn("flex h-16 items-center", variant === "container" ? "container" : "w-full px-4 sm:px-8"), children })
13
14
  }
14
15
  );
15
16
  }
@@ -10,7 +10,7 @@ function Separator({ className, orientation = "horizontal", decorative = false,
10
10
  decorative,
11
11
  orientation,
12
12
  className: cn(
13
- "bg-border shrink-0 data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px",
13
+ "bg-border shrink-0 data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:w-px data-[orientation=vertical]:self-stretch",
14
14
  className
15
15
  ),
16
16
  ...props