@ravenopsnet/ui 0.0.1 → 0.0.2

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 (118) hide show
  1. package/README.md +1 -1
  2. package/dist/components/theme-provider.d.ts +15 -0
  3. package/dist/components/ui/accordion.d.ts +6 -0
  4. package/dist/components/ui/alert-dialog.d.ts +18 -0
  5. package/dist/components/ui/alert-dialog.js +95 -0
  6. package/dist/components/ui/alert.d.ts +10 -0
  7. package/dist/components/ui/alert.js +43 -0
  8. package/dist/components/ui/aspect-ratio.d.ts +4 -0
  9. package/dist/components/ui/aspect-ratio.js +13 -0
  10. package/dist/components/ui/avatar.d.ts +11 -0
  11. package/dist/components/ui/avatar.js +50 -0
  12. package/dist/components/ui/badge.d.ts +7 -0
  13. package/dist/components/ui/badge.js +29 -0
  14. package/dist/components/ui/breadcrumb.d.ts +10 -0
  15. package/dist/components/ui/breadcrumb.js +72 -0
  16. package/dist/components/ui/button-group.d.ts +10 -0
  17. package/dist/components/ui/button-group.js +41 -0
  18. package/dist/components/ui/button.d.ts +8 -0
  19. package/dist/components/ui/button.js +44 -0
  20. package/dist/components/ui/calendar.d.ts +10 -0
  21. package/dist/components/ui/calendar.js +96 -0
  22. package/dist/components/ui/card.d.ts +11 -0
  23. package/dist/components/ui/card.js +56 -0
  24. package/dist/components/ui/carousel.d.ts +28 -0
  25. package/dist/components/ui/carousel.js +111 -0
  26. package/dist/components/ui/chart.d.ts +44 -0
  27. package/dist/components/ui/chart.js +130 -0
  28. package/dist/components/ui/checkbox.d.ts +3 -0
  29. package/dist/components/ui/checkbox.js +20 -0
  30. package/dist/components/ui/collapsible.d.ts +5 -0
  31. package/dist/components/ui/collapsible.js +23 -0
  32. package/dist/components/ui/combobox.d.ts +24 -0
  33. package/dist/components/ui/combobox.js +161 -0
  34. package/dist/components/ui/command.d.ts +19 -0
  35. package/dist/components/ui/context-menu.d.ts +29 -0
  36. package/dist/components/ui/context-menu.js +133 -0
  37. package/dist/components/ui/dialog.d.ts +17 -0
  38. package/dist/components/ui/dialog.js +91 -0
  39. package/dist/components/ui/direction.d.ts +1 -0
  40. package/dist/components/ui/direction.js +2 -0
  41. package/dist/components/ui/drawer.d.ts +13 -0
  42. package/dist/components/ui/drawer.js +78 -0
  43. package/dist/components/ui/dropdown-menu.d.ts +29 -0
  44. package/dist/components/ui/dropdown-menu.js +136 -0
  45. package/dist/components/ui/empty.d.ts +11 -0
  46. package/dist/components/ui/empty.js +59 -0
  47. package/dist/components/ui/field.d.ts +24 -0
  48. package/dist/components/ui/field.js +107 -0
  49. package/dist/components/ui/hover-card.d.ts +5 -0
  50. package/dist/components/ui/hover-card.js +36 -0
  51. package/dist/components/ui/input-group.d.ts +18 -0
  52. package/dist/components/ui/input-group.js +78 -0
  53. package/dist/components/ui/input-otp.d.ts +11 -0
  54. package/dist/components/ui/input-otp.js +46 -0
  55. package/dist/components/ui/input.d.ts +3 -0
  56. package/dist/components/ui/input.js +15 -0
  57. package/dist/components/ui/item.d.ts +22 -0
  58. package/dist/components/ui/item.js +121 -0
  59. package/dist/components/ui/kbd.d.ts +3 -0
  60. package/dist/components/ui/kbd.js +19 -0
  61. package/dist/components/ui/label.d.ts +3 -0
  62. package/dist/components/ui/label.js +14 -0
  63. package/dist/components/ui/menubar.d.ts +29 -0
  64. package/dist/components/ui/menubar.js +136 -0
  65. package/dist/components/ui/native-select.d.ts +8 -0
  66. package/dist/components/ui/native-select.js +38 -0
  67. package/dist/components/ui/navigation-menu.d.ts +11 -0
  68. package/dist/components/ui/navigation-menu.js +82 -0
  69. package/dist/components/ui/pagination.d.ts +17 -0
  70. package/dist/components/ui/pagination.js +86 -0
  71. package/dist/components/ui/popover.d.ts +9 -0
  72. package/dist/components/ui/popover.js +54 -0
  73. package/dist/components/ui/progress.d.ts +7 -0
  74. package/dist/components/ui/radio-group.d.ts +5 -0
  75. package/dist/components/ui/radio-group.js +26 -0
  76. package/dist/components/ui/resizable.d.ts +7 -0
  77. package/dist/components/ui/resizable.js +28 -0
  78. package/dist/components/ui/scroll-area.d.ts +4 -0
  79. package/dist/components/ui/scroll-area.js +35 -0
  80. package/dist/components/ui/select.d.ts +15 -0
  81. package/dist/components/ui/select.js +98 -0
  82. package/dist/components/ui/separator.d.ts +3 -0
  83. package/dist/components/ui/separator.js +14 -0
  84. package/dist/components/ui/sheet.d.ts +14 -0
  85. package/dist/components/ui/sheet.js +89 -0
  86. package/dist/components/ui/sidebar.d.ts +63 -0
  87. package/dist/components/ui/sidebar.js +358 -0
  88. package/dist/components/ui/skeleton.d.ts +2 -0
  89. package/dist/components/ui/skeleton.js +12 -0
  90. package/dist/components/ui/slider.d.ts +3 -0
  91. package/dist/components/ui/slider.js +33 -0
  92. package/dist/components/ui/sonner.d.ts +3 -0
  93. package/dist/components/ui/sonner.js +30 -0
  94. package/dist/components/ui/spinner.d.ts +2 -0
  95. package/dist/components/ui/spinner.js +14 -0
  96. package/dist/components/ui/switch.d.ts +5 -0
  97. package/dist/components/ui/switch.js +18 -0
  98. package/dist/components/ui/table.d.ts +10 -0
  99. package/dist/components/ui/table.js +67 -0
  100. package/dist/components/ui/tabs.d.ts +10 -0
  101. package/dist/components/ui/tabs.js +44 -0
  102. package/dist/components/ui/textarea.d.ts +3 -0
  103. package/dist/components/ui/textarea.js +13 -0
  104. package/dist/components/ui/toggle-group.d.ts +11 -0
  105. package/dist/components/ui/toggle-group.js +52 -0
  106. package/dist/components/ui/toggle.d.ts +8 -0
  107. package/dist/components/ui/toggle.js +36 -0
  108. package/dist/components/ui/tooltip.d.ts +6 -0
  109. package/dist/components/ui/tooltip.js +40 -0
  110. package/dist/hooks/use-mobile.d.ts +1 -0
  111. package/dist/hooks/use-mobile.js +14 -0
  112. package/dist/index.css +1 -1
  113. package/dist/index.d.ts +52 -1
  114. package/dist/index.js +54 -40132
  115. package/dist/lib/utils.d.ts +2 -0
  116. package/dist/lib/utils.js +8 -0
  117. package/package.json +1 -1
  118. package/dist/vite.svg +0 -1
@@ -0,0 +1,98 @@
1
+ "use client";
2
+ import { cn as e } from "../../lib/utils.js";
3
+ import "react";
4
+ import { jsx as t, jsxs as n } from "react/jsx-runtime";
5
+ import { CheckIcon as r, ChevronDownIcon as i, ChevronUpIcon as a } from "lucide-react";
6
+ import { Select as o } from "@base-ui/react/select";
7
+ //#region src/components/ui/select.tsx
8
+ var s = o.Root;
9
+ function c({ className: n, ...r }) {
10
+ return /* @__PURE__ */ t(o.Group, {
11
+ "data-slot": "select-group",
12
+ className: e("scroll-my-1 p-1", n),
13
+ ...r
14
+ });
15
+ }
16
+ function l({ className: n, ...r }) {
17
+ return /* @__PURE__ */ t(o.Value, {
18
+ "data-slot": "select-value",
19
+ className: e("flex flex-1 text-start", n),
20
+ ...r
21
+ });
22
+ }
23
+ function u({ className: r, size: a = "default", children: s, ...c }) {
24
+ return /* @__PURE__ */ n(o.Trigger, {
25
+ "data-slot": "select-trigger",
26
+ "data-size": a,
27
+ className: e("flex w-fit items-center justify-between gap-1.5 rounded-lg border border-input bg-transparent py-2 pe-2 ps-2.5 text-sm whitespace-nowrap transition-colors outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 data-placeholder:text-muted-foreground data-[size=default]:h-8 data-[size=sm]:h-7 data-[size=sm]:rounded-[min(var(--radius-md),10px)] *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-1.5 dark:bg-input/30 dark:hover:bg-input/50 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", r),
28
+ ...c,
29
+ children: [s, /* @__PURE__ */ t(o.Icon, { render: /* @__PURE__ */ t(i, { className: "pointer-events-none size-4 text-muted-foreground" }) })]
30
+ });
31
+ }
32
+ function d({ className: r, children: i, side: a = "bottom", sideOffset: s = 4, align: c = "center", alignOffset: l = 0, alignItemWithTrigger: u = !0, ...d }) {
33
+ return /* @__PURE__ */ t(o.Portal, { children: /* @__PURE__ */ t(o.Positioner, {
34
+ side: a,
35
+ sideOffset: s,
36
+ align: c,
37
+ alignOffset: l,
38
+ alignItemWithTrigger: u,
39
+ className: "isolate z-50",
40
+ children: /* @__PURE__ */ n(o.Popup, {
41
+ "data-slot": "select-content",
42
+ "data-align-trigger": u,
43
+ className: e("relative isolate z-50 max-h-(--available-height) w-(--anchor-width) min-w-36 origin-(--transform-origin) overflow-x-hidden overflow-y-auto rounded-lg bg-popover text-popover-foreground shadow-md ring-1 ring-foreground/10 duration-100 data-[align-trigger=true]:animate-none data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-start-2 data-[side=inline-start]:slide-in-from-end-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95", r),
44
+ ...d,
45
+ children: [
46
+ /* @__PURE__ */ t(h, {}),
47
+ /* @__PURE__ */ t(o.List, { children: i }),
48
+ /* @__PURE__ */ t(g, {})
49
+ ]
50
+ })
51
+ }) });
52
+ }
53
+ function f({ className: n, ...r }) {
54
+ return /* @__PURE__ */ t(o.GroupLabel, {
55
+ "data-slot": "select-label",
56
+ className: e("px-1.5 py-1 text-xs text-muted-foreground", n),
57
+ ...r
58
+ });
59
+ }
60
+ function p({ className: i, children: a, ...s }) {
61
+ return /* @__PURE__ */ n(o.Item, {
62
+ "data-slot": "select-item",
63
+ className: e("relative flex w-full cursor-default items-center gap-1.5 rounded-md py-1 pe-8 ps-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2", i),
64
+ ...s,
65
+ children: [/* @__PURE__ */ t(o.ItemText, {
66
+ className: "flex flex-1 shrink-0 gap-2 whitespace-nowrap",
67
+ children: a
68
+ }), /* @__PURE__ */ t(o.ItemIndicator, {
69
+ render: /* @__PURE__ */ t("span", { className: "pointer-events-none absolute end-2 flex size-4 items-center justify-center" }),
70
+ children: /* @__PURE__ */ t(r, { className: "pointer-events-none" })
71
+ })]
72
+ });
73
+ }
74
+ function m({ className: n, ...r }) {
75
+ return /* @__PURE__ */ t(o.Separator, {
76
+ "data-slot": "select-separator",
77
+ className: e("pointer-events-none -mx-1 my-1 h-px bg-border", n),
78
+ ...r
79
+ });
80
+ }
81
+ function h({ className: n, ...r }) {
82
+ return /* @__PURE__ */ t(o.ScrollUpArrow, {
83
+ "data-slot": "select-scroll-up-button",
84
+ className: e("top-0 z-10 flex w-full cursor-default items-center justify-center bg-popover py-1 [&_svg:not([class*='size-'])]:size-4", n),
85
+ ...r,
86
+ children: /* @__PURE__ */ t(a, {})
87
+ });
88
+ }
89
+ function g({ className: n, ...r }) {
90
+ return /* @__PURE__ */ t(o.ScrollDownArrow, {
91
+ "data-slot": "select-scroll-down-button",
92
+ className: e("bottom-0 z-10 flex w-full cursor-default items-center justify-center bg-popover py-1 [&_svg:not([class*='size-'])]:size-4", n),
93
+ ...r,
94
+ children: /* @__PURE__ */ t(i, {})
95
+ });
96
+ }
97
+ //#endregion
98
+ export { s as Select, d as SelectContent, c as SelectGroup, p as SelectItem, f as SelectLabel, g as SelectScrollDownButton, h as SelectScrollUpButton, m as SelectSeparator, u as SelectTrigger, l as SelectValue };
@@ -0,0 +1,3 @@
1
+ import { Separator as SeparatorPrimitive } from '@base-ui/react/separator';
2
+ declare function Separator({ className, orientation, ...props }: SeparatorPrimitive.Props): import("react").JSX.Element;
3
+ export { Separator };
@@ -0,0 +1,14 @@
1
+ import { cn as e } from "../../lib/utils.js";
2
+ import { jsx as t } from "react/jsx-runtime";
3
+ import { Separator as n } from "@base-ui/react/separator";
4
+ //#region src/components/ui/separator.tsx
5
+ function r({ className: r, orientation: i = "horizontal", ...a }) {
6
+ return /* @__PURE__ */ t(n, {
7
+ "data-slot": "separator",
8
+ orientation: i,
9
+ className: e("shrink-0 bg-border data-horizontal:h-px data-horizontal:w-full data-vertical:w-px data-vertical:self-stretch", r),
10
+ ...a
11
+ });
12
+ }
13
+ //#endregion
14
+ export { r as Separator };
@@ -0,0 +1,14 @@
1
+ import { Dialog as SheetPrimitive } from '@base-ui/react/dialog';
2
+ import * as React from "react";
3
+ declare function Sheet({ ...props }: SheetPrimitive.Root.Props): React.JSX.Element;
4
+ declare function SheetTrigger({ ...props }: SheetPrimitive.Trigger.Props): React.JSX.Element;
5
+ declare function SheetClose({ ...props }: SheetPrimitive.Close.Props): React.JSX.Element;
6
+ declare function SheetContent({ className, children, side, showCloseButton, ...props }: SheetPrimitive.Popup.Props & {
7
+ side?: "top" | "right" | "bottom" | "left";
8
+ showCloseButton?: boolean;
9
+ }): React.JSX.Element;
10
+ declare function SheetHeader({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
11
+ declare function SheetFooter({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
12
+ declare function SheetTitle({ className, ...props }: SheetPrimitive.Title.Props): React.JSX.Element;
13
+ declare function SheetDescription({ className, ...props }: SheetPrimitive.Description.Props): React.JSX.Element;
14
+ export { Sheet, SheetTrigger, SheetClose, SheetContent, SheetHeader, SheetFooter, SheetTitle, SheetDescription, };
@@ -0,0 +1,89 @@
1
+ "use client";
2
+ import { cn as e } from "../../lib/utils.js";
3
+ import { Button as t } from "./button.js";
4
+ import "react";
5
+ import { jsx as n, jsxs as r } from "react/jsx-runtime";
6
+ import { Dialog as i } from "@base-ui/react/dialog";
7
+ import { XIcon as a } from "lucide-react";
8
+ //#region src/components/ui/sheet.tsx
9
+ function o({ ...e }) {
10
+ return /* @__PURE__ */ n(i.Root, {
11
+ "data-slot": "sheet",
12
+ ...e
13
+ });
14
+ }
15
+ function s({ ...e }) {
16
+ return /* @__PURE__ */ n(i.Trigger, {
17
+ "data-slot": "sheet-trigger",
18
+ ...e
19
+ });
20
+ }
21
+ function c({ ...e }) {
22
+ return /* @__PURE__ */ n(i.Close, {
23
+ "data-slot": "sheet-close",
24
+ ...e
25
+ });
26
+ }
27
+ function l({ ...e }) {
28
+ return /* @__PURE__ */ n(i.Portal, {
29
+ "data-slot": "sheet-portal",
30
+ ...e
31
+ });
32
+ }
33
+ function u({ className: t, ...r }) {
34
+ return /* @__PURE__ */ n(i.Backdrop, {
35
+ "data-slot": "sheet-overlay",
36
+ className: e("fixed inset-0 z-50 bg-black/10 transition-opacity duration-150 data-ending-style:opacity-0 data-starting-style:opacity-0 supports-backdrop-filter:backdrop-blur-xs", t),
37
+ ...r
38
+ });
39
+ }
40
+ function d({ className: o, children: s, side: c = "right", showCloseButton: d = !0, ...f }) {
41
+ return /* @__PURE__ */ r(l, { children: [/* @__PURE__ */ n(u, {}), /* @__PURE__ */ r(i.Popup, {
42
+ "data-slot": "sheet-content",
43
+ "data-side": c,
44
+ className: e("fixed z-50 flex flex-col gap-4 bg-popover bg-clip-padding text-sm text-popover-foreground shadow-lg transition duration-200 ease-in-out data-ending-style:opacity-0 data-starting-style:opacity-0 data-[side=bottom]:inset-x-0 data-[side=bottom]:bottom-0 data-[side=bottom]:h-auto data-[side=bottom]:border-t data-[side=bottom]:data-ending-style:translate-y-[2.5rem] data-[side=bottom]:data-starting-style:translate-y-[2.5rem] data-[side=left]:inset-y-0 data-[side=left]:left-0 data-[side=left]:h-full data-[side=left]:w-3/4 data-[side=left]:border-e data-[side=left]:data-ending-style:translate-x-[-2.5rem] rtl:data-[side=left]:data-ending-style:-translate-x-[-2.5rem] data-[side=left]:data-starting-style:translate-x-[-2.5rem] rtl:data-[side=left]:data-starting-style:-translate-x-[-2.5rem] data-[side=right]:inset-y-0 data-[side=right]:right-0 data-[side=right]:h-full data-[side=right]:w-3/4 data-[side=right]:border-s data-[side=right]:data-ending-style:translate-x-[2.5rem] rtl:data-[side=right]:data-ending-style:-translate-x-[2.5rem] data-[side=right]:data-starting-style:translate-x-[2.5rem] rtl:data-[side=right]:data-starting-style:-translate-x-[2.5rem] data-[side=top]:inset-x-0 data-[side=top]:top-0 data-[side=top]:h-auto data-[side=top]:border-b data-[side=top]:data-ending-style:translate-y-[-2.5rem] data-[side=top]:data-starting-style:translate-y-[-2.5rem] data-[side=left]:sm:max-w-sm data-[side=right]:sm:max-w-sm", o),
45
+ ...f,
46
+ children: [s, d && /* @__PURE__ */ r(i.Close, {
47
+ "data-slot": "sheet-close",
48
+ render: /* @__PURE__ */ n(t, {
49
+ variant: "ghost",
50
+ className: "absolute top-3 end-3",
51
+ size: "icon-sm"
52
+ }),
53
+ children: [/* @__PURE__ */ n(a, {}), /* @__PURE__ */ n("span", {
54
+ className: "sr-only",
55
+ children: "Close"
56
+ })]
57
+ })]
58
+ })] });
59
+ }
60
+ function f({ className: t, ...r }) {
61
+ return /* @__PURE__ */ n("div", {
62
+ "data-slot": "sheet-header",
63
+ className: e("flex flex-col gap-0.5 p-4", t),
64
+ ...r
65
+ });
66
+ }
67
+ function p({ className: t, ...r }) {
68
+ return /* @__PURE__ */ n("div", {
69
+ "data-slot": "sheet-footer",
70
+ className: e("mt-auto flex flex-col gap-2 p-4", t),
71
+ ...r
72
+ });
73
+ }
74
+ function m({ className: t, ...r }) {
75
+ return /* @__PURE__ */ n(i.Title, {
76
+ "data-slot": "sheet-title",
77
+ className: e("font-heading text-base font-medium text-foreground", t),
78
+ ...r
79
+ });
80
+ }
81
+ function h({ className: t, ...r }) {
82
+ return /* @__PURE__ */ n(i.Description, {
83
+ "data-slot": "sheet-description",
84
+ className: e("text-sm text-muted-foreground", t),
85
+ ...r
86
+ });
87
+ }
88
+ //#endregion
89
+ export { o as Sheet, c as SheetClose, d as SheetContent, h as SheetDescription, p as SheetFooter, f as SheetHeader, m as SheetTitle, s as SheetTrigger };
@@ -0,0 +1,63 @@
1
+ import { useRender } from '@base-ui/react/use-render';
2
+ import { VariantProps } from 'class-variance-authority';
3
+ import { Button } from './button';
4
+ import { Input } from './input';
5
+ import { Separator } from './separator';
6
+ import { TooltipContent } from './tooltip';
7
+ import * as React from "react";
8
+ type SidebarContextProps = {
9
+ state: "expanded" | "collapsed";
10
+ open: boolean;
11
+ setOpen: (open: boolean) => void;
12
+ openMobile: boolean;
13
+ setOpenMobile: (open: boolean) => void;
14
+ isMobile: boolean;
15
+ toggleSidebar: () => void;
16
+ };
17
+ declare function useSidebar(): SidebarContextProps;
18
+ declare function SidebarProvider({ defaultOpen, open: openProp, onOpenChange: setOpenProp, className, style, children, ...props }: React.ComponentProps<"div"> & {
19
+ defaultOpen?: boolean;
20
+ open?: boolean;
21
+ onOpenChange?: (open: boolean) => void;
22
+ }): React.JSX.Element;
23
+ declare function Sidebar({ side, variant, collapsible, className, children, dir, ...props }: React.ComponentProps<"div"> & {
24
+ side?: "left" | "right";
25
+ variant?: "sidebar" | "floating" | "inset";
26
+ collapsible?: "offcanvas" | "icon" | "none";
27
+ }): React.JSX.Element;
28
+ declare function SidebarTrigger({ className, onClick, ...props }: React.ComponentProps<typeof Button>): React.JSX.Element;
29
+ declare function SidebarRail({ className, ...props }: React.ComponentProps<"button">): React.JSX.Element;
30
+ declare function SidebarInset({ className, ...props }: React.ComponentProps<"main">): React.JSX.Element;
31
+ declare function SidebarInput({ className, ...props }: React.ComponentProps<typeof Input>): React.JSX.Element;
32
+ declare function SidebarHeader({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
33
+ declare function SidebarFooter({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
34
+ declare function SidebarSeparator({ className, ...props }: React.ComponentProps<typeof Separator>): React.JSX.Element;
35
+ declare function SidebarContent({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
36
+ declare function SidebarGroup({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
37
+ declare function SidebarGroupLabel({ className, render, ...props }: useRender.ComponentProps<"div"> & React.ComponentProps<"div">): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
38
+ declare function SidebarGroupAction({ className, render, ...props }: useRender.ComponentProps<"button"> & React.ComponentProps<"button">): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
39
+ declare function SidebarGroupContent({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
40
+ declare function SidebarMenu({ className, ...props }: React.ComponentProps<"ul">): React.JSX.Element;
41
+ declare function SidebarMenuItem({ className, ...props }: React.ComponentProps<"li">): React.JSX.Element;
42
+ declare const sidebarMenuButtonVariants: (props?: ({
43
+ variant?: "default" | "outline" | null | undefined;
44
+ size?: "default" | "sm" | "lg" | null | undefined;
45
+ } & import('class-variance-authority/types').ClassProp) | undefined) => string;
46
+ declare function SidebarMenuButton({ render, isActive, variant, size, tooltip, className, ...props }: useRender.ComponentProps<"button"> & React.ComponentProps<"button"> & {
47
+ isActive?: boolean;
48
+ tooltip?: string | React.ComponentProps<typeof TooltipContent>;
49
+ } & VariantProps<typeof sidebarMenuButtonVariants>): React.JSX.Element;
50
+ declare function SidebarMenuAction({ className, render, showOnHover, ...props }: useRender.ComponentProps<"button"> & React.ComponentProps<"button"> & {
51
+ showOnHover?: boolean;
52
+ }): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
53
+ declare function SidebarMenuBadge({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
54
+ declare function SidebarMenuSkeleton({ className, showIcon, ...props }: React.ComponentProps<"div"> & {
55
+ showIcon?: boolean;
56
+ }): React.JSX.Element;
57
+ declare function SidebarMenuSub({ className, ...props }: React.ComponentProps<"ul">): React.JSX.Element;
58
+ declare function SidebarMenuSubItem({ className, ...props }: React.ComponentProps<"li">): React.JSX.Element;
59
+ declare function SidebarMenuSubButton({ render, size, isActive, className, ...props }: useRender.ComponentProps<"a"> & React.ComponentProps<"a"> & {
60
+ size?: "sm" | "md";
61
+ isActive?: boolean;
62
+ }): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
63
+ export { Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, useSidebar, };
@@ -0,0 +1,358 @@
1
+ "use client";
2
+ import { useIsMobile as e } from "../../hooks/use-mobile.js";
3
+ import { cn as t } from "../../lib/utils.js";
4
+ import { Button as n } from "./button.js";
5
+ import { Input as r } from "./input.js";
6
+ import { Separator as i } from "./separator.js";
7
+ import { Sheet as a, SheetContent as o, SheetDescription as s, SheetHeader as c, SheetTitle as l } from "./sheet.js";
8
+ import { Skeleton as u } from "./skeleton.js";
9
+ import { Tooltip as d, TooltipContent as f, TooltipTrigger as p } from "./tooltip.js";
10
+ import * as m from "react";
11
+ import { mergeProps as h } from "@base-ui/react/merge-props";
12
+ import { useRender as g } from "@base-ui/react/use-render";
13
+ import { cva as _ } from "class-variance-authority";
14
+ import { jsx as v, jsxs as y } from "react/jsx-runtime";
15
+ import { PanelLeftIcon as b } from "lucide-react";
16
+ //#region src/components/ui/sidebar.tsx
17
+ var x = "sidebar_state", S = 3600 * 24 * 7, C = "16rem", w = "18rem", T = "3rem", E = "b", D = m.createContext(null);
18
+ function O() {
19
+ let e = m.useContext(D);
20
+ if (!e) throw Error("useSidebar must be used within a SidebarProvider.");
21
+ return e;
22
+ }
23
+ function k({ defaultOpen: n = !0, open: r, onOpenChange: i, className: a, style: o, children: s, ...c }) {
24
+ let l = e(), [u, d] = m.useState(!1), [f, p] = m.useState(n), h = r ?? f, g = m.useCallback((e) => {
25
+ let t = typeof e == "function" ? e(h) : e;
26
+ i ? i(t) : p(t), document.cookie = `${x}=${t}; path=/; max-age=${S}`;
27
+ }, [i, h]), _ = m.useCallback(() => l ? d((e) => !e) : g((e) => !e), [
28
+ l,
29
+ g,
30
+ d
31
+ ]);
32
+ m.useEffect(() => {
33
+ let e = (e) => {
34
+ e.key === E && (e.metaKey || e.ctrlKey) && (e.preventDefault(), _());
35
+ };
36
+ return window.addEventListener("keydown", e), () => window.removeEventListener("keydown", e);
37
+ }, [_]);
38
+ let y = h ? "expanded" : "collapsed", b = m.useMemo(() => ({
39
+ state: y,
40
+ open: h,
41
+ setOpen: g,
42
+ isMobile: l,
43
+ openMobile: u,
44
+ setOpenMobile: d,
45
+ toggleSidebar: _
46
+ }), [
47
+ y,
48
+ h,
49
+ g,
50
+ l,
51
+ u,
52
+ d,
53
+ _
54
+ ]);
55
+ return /* @__PURE__ */ v(D.Provider, {
56
+ value: b,
57
+ children: /* @__PURE__ */ v("div", {
58
+ "data-slot": "sidebar-wrapper",
59
+ style: {
60
+ "--sidebar-width": C,
61
+ "--sidebar-width-icon": T,
62
+ ...o
63
+ },
64
+ className: t("group/sidebar-wrapper flex min-h-svh w-full has-data-[variant=inset]:bg-sidebar", a),
65
+ ...c,
66
+ children: s
67
+ })
68
+ });
69
+ }
70
+ function A({ side: e = "left", variant: n = "sidebar", collapsible: r = "offcanvas", className: i, children: u, dir: d, ...f }) {
71
+ let { isMobile: p, state: m, openMobile: h, setOpenMobile: g } = O();
72
+ return r === "none" ? /* @__PURE__ */ v("div", {
73
+ "data-slot": "sidebar",
74
+ className: t("flex h-full w-(--sidebar-width) flex-col bg-sidebar text-sidebar-foreground", i),
75
+ ...f,
76
+ children: u
77
+ }) : p ? /* @__PURE__ */ v(a, {
78
+ open: h,
79
+ onOpenChange: g,
80
+ ...f,
81
+ children: /* @__PURE__ */ y(o, {
82
+ dir: d,
83
+ "data-sidebar": "sidebar",
84
+ "data-slot": "sidebar",
85
+ "data-mobile": "true",
86
+ className: "w-(--sidebar-width) bg-sidebar p-0 text-sidebar-foreground [&>button]:hidden",
87
+ style: { "--sidebar-width": w },
88
+ side: e,
89
+ children: [/* @__PURE__ */ y(c, {
90
+ className: "sr-only",
91
+ children: [/* @__PURE__ */ v(l, { children: "Sidebar" }), /* @__PURE__ */ v(s, { children: "Displays the mobile sidebar." })]
92
+ }), /* @__PURE__ */ v("div", {
93
+ className: "flex h-full w-full flex-col",
94
+ children: u
95
+ })]
96
+ })
97
+ }) : /* @__PURE__ */ y("div", {
98
+ className: "group peer hidden text-sidebar-foreground md:block",
99
+ "data-state": m,
100
+ "data-collapsible": m === "collapsed" ? r : "",
101
+ "data-variant": n,
102
+ "data-side": e,
103
+ "data-slot": "sidebar",
104
+ children: [/* @__PURE__ */ v("div", {
105
+ "data-slot": "sidebar-gap",
106
+ className: t("relative w-(--sidebar-width) bg-transparent transition-[width] duration-200 ease-linear", "group-data-[collapsible=offcanvas]:w-0", "group-data-[side=right]:rotate-180", n === "floating" || n === "inset" ? "group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]" : "group-data-[collapsible=icon]:w-(--sidebar-width-icon)")
107
+ }), /* @__PURE__ */ v("div", {
108
+ "data-slot": "sidebar-container",
109
+ "data-side": e,
110
+ className: t("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", n === "floating" || n === "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-e group-data-[side=right]:border-s", i),
111
+ ...f,
112
+ children: /* @__PURE__ */ v("div", {
113
+ "data-sidebar": "sidebar",
114
+ "data-slot": "sidebar-inner",
115
+ className: "flex size-full flex-col bg-sidebar group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:shadow-sm group-data-[variant=floating]:ring-1 group-data-[variant=floating]:ring-sidebar-border",
116
+ children: u
117
+ })
118
+ })]
119
+ });
120
+ }
121
+ function j({ className: e, onClick: r, ...i }) {
122
+ let { toggleSidebar: a } = O();
123
+ return /* @__PURE__ */ y(n, {
124
+ "data-sidebar": "trigger",
125
+ "data-slot": "sidebar-trigger",
126
+ variant: "ghost",
127
+ size: "icon-sm",
128
+ className: t(e),
129
+ onClick: (e) => {
130
+ r?.(e), a();
131
+ },
132
+ ...i,
133
+ children: [/* @__PURE__ */ v(b, { className: "rtl:rotate-180" }), /* @__PURE__ */ v("span", {
134
+ className: "sr-only",
135
+ children: "Toggle Sidebar"
136
+ })]
137
+ });
138
+ }
139
+ function M({ className: e, ...n }) {
140
+ let { toggleSidebar: r } = O();
141
+ return /* @__PURE__ */ v("button", {
142
+ "data-sidebar": "rail",
143
+ "data-slot": "sidebar-rail",
144
+ "aria-label": "Toggle Sidebar",
145
+ tabIndex: -1,
146
+ onClick: r,
147
+ title: "Toggle Sidebar",
148
+ className: t("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] hover:after:bg-sidebar-border sm:flex ltr:-translate-x-1/2 rtl:-translate-x-1/2", "in-data-[side=left]:cursor-w-resize rtl:in-data-[side=left]:cursor-e-resize in-data-[side=right]:cursor-e-resize rtl:in-data-[side=right]:cursor-w-resize", "[[data-side=left][data-state=collapsed]_&]:cursor-e-resize rtl:[[data-side=left][data-state=collapsed]_&]:cursor-w-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize rtl:[[data-side=right][data-state=collapsed]_&]:cursor-e-resize", "group-data-[collapsible=offcanvas]:translate-x-0 rtl:group-data-[collapsible=offcanvas]:-translate-x-0 group-data-[collapsible=offcanvas]:after:start-full hover:group-data-[collapsible=offcanvas]:bg-sidebar", "[[data-side=left][data-collapsible=offcanvas]_&]:-end-2", "[[data-side=right][data-collapsible=offcanvas]_&]:-start-2", e),
149
+ ...n
150
+ });
151
+ }
152
+ function N({ className: e, ...n }) {
153
+ return /* @__PURE__ */ v("main", {
154
+ "data-slot": "sidebar-inset",
155
+ className: t("relative flex w-full flex-1 flex-col bg-background md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ms-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow-sm md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ms-2", e),
156
+ ...n
157
+ });
158
+ }
159
+ function P({ className: e, ...n }) {
160
+ return /* @__PURE__ */ v(r, {
161
+ "data-slot": "sidebar-input",
162
+ "data-sidebar": "input",
163
+ className: t("h-8 w-full bg-background shadow-none", e),
164
+ ...n
165
+ });
166
+ }
167
+ function F({ className: e, ...n }) {
168
+ return /* @__PURE__ */ v("div", {
169
+ "data-slot": "sidebar-header",
170
+ "data-sidebar": "header",
171
+ className: t("flex flex-col gap-2 p-2", e),
172
+ ...n
173
+ });
174
+ }
175
+ function I({ className: e, ...n }) {
176
+ return /* @__PURE__ */ v("div", {
177
+ "data-slot": "sidebar-footer",
178
+ "data-sidebar": "footer",
179
+ className: t("flex flex-col gap-2 p-2", e),
180
+ ...n
181
+ });
182
+ }
183
+ function L({ className: e, ...n }) {
184
+ return /* @__PURE__ */ v(i, {
185
+ "data-slot": "sidebar-separator",
186
+ "data-sidebar": "separator",
187
+ className: t("mx-2 w-auto bg-sidebar-border", e),
188
+ ...n
189
+ });
190
+ }
191
+ function R({ className: e, ...n }) {
192
+ return /* @__PURE__ */ v("div", {
193
+ "data-slot": "sidebar-content",
194
+ "data-sidebar": "content",
195
+ className: t("no-scrollbar flex min-h-0 flex-1 flex-col gap-0 overflow-auto group-data-[collapsible=icon]:overflow-hidden", e),
196
+ ...n
197
+ });
198
+ }
199
+ function z({ className: e, ...n }) {
200
+ return /* @__PURE__ */ v("div", {
201
+ "data-slot": "sidebar-group",
202
+ "data-sidebar": "group",
203
+ className: t("relative flex w-full min-w-0 flex-col p-2", e),
204
+ ...n
205
+ });
206
+ }
207
+ function B({ className: e, render: n, ...r }) {
208
+ return g({
209
+ defaultTagName: "div",
210
+ props: h({ className: t("flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium text-sidebar-foreground/70 ring-sidebar-ring 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", e) }, r),
211
+ render: n,
212
+ state: {
213
+ slot: "sidebar-group-label",
214
+ sidebar: "group-label"
215
+ }
216
+ });
217
+ }
218
+ function V({ className: e, render: n, ...r }) {
219
+ return g({
220
+ defaultTagName: "button",
221
+ props: h({ className: t("absolute top-3.5 end-3 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground ring-sidebar-ring outline-hidden transition-transform group-data-[collapsible=icon]:hidden after:absolute after:-inset-2 hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 md:after:hidden [&>svg]:size-4 [&>svg]:shrink-0", e) }, r),
222
+ render: n,
223
+ state: {
224
+ slot: "sidebar-group-action",
225
+ sidebar: "group-action"
226
+ }
227
+ });
228
+ }
229
+ function H({ className: e, ...n }) {
230
+ return /* @__PURE__ */ v("div", {
231
+ "data-slot": "sidebar-group-content",
232
+ "data-sidebar": "group-content",
233
+ className: t("w-full text-sm", e),
234
+ ...n
235
+ });
236
+ }
237
+ function U({ className: e, ...n }) {
238
+ return /* @__PURE__ */ v("ul", {
239
+ "data-slot": "sidebar-menu",
240
+ "data-sidebar": "menu",
241
+ className: t("flex w-full min-w-0 flex-col gap-0", e),
242
+ ...n
243
+ });
244
+ }
245
+ function W({ className: e, ...n }) {
246
+ return /* @__PURE__ */ v("li", {
247
+ "data-slot": "sidebar-menu-item",
248
+ "data-sidebar": "menu-item",
249
+ className: t("group/menu-item relative", e),
250
+ ...n
251
+ });
252
+ }
253
+ var G = _("peer/menu-button group/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-start text-sm ring-sidebar-ring outline-hidden transition-[width,height,padding] group-has-data-[sidebar=menu-action]/menu-item:pe-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 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-open:hover:bg-sidebar-accent data-open:hover:text-sidebar-accent-foreground data-active:bg-sidebar-accent data-active:font-medium data-active:text-sidebar-accent-foreground [&_svg]:size-4 [&_svg]:shrink-0 [&>span:last-child]:truncate", {
254
+ variants: {
255
+ variant: {
256
+ default: "hover:bg-sidebar-accent hover:text-sidebar-accent-foreground",
257
+ outline: "bg-background shadow-[0_0_0_1px_var(--sidebar-border)] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_var(--sidebar-accent)]"
258
+ },
259
+ size: {
260
+ default: "h-8 text-sm",
261
+ sm: "h-7 text-xs",
262
+ lg: "h-12 text-sm group-data-[collapsible=icon]:p-0!"
263
+ }
264
+ },
265
+ defaultVariants: {
266
+ variant: "default",
267
+ size: "default"
268
+ }
269
+ });
270
+ function K({ render: e, isActive: n = !1, variant: r = "default", size: i = "default", tooltip: a, className: o, ...s }) {
271
+ let { isMobile: c, state: l } = O(), u = g({
272
+ defaultTagName: "button",
273
+ props: h({ className: t(G({
274
+ variant: r,
275
+ size: i
276
+ }), o) }, s),
277
+ render: a ? /* @__PURE__ */ v(p, { render: e }) : e,
278
+ state: {
279
+ slot: "sidebar-menu-button",
280
+ sidebar: "menu-button",
281
+ size: i,
282
+ active: n
283
+ }
284
+ });
285
+ return a ? (typeof a == "string" && (a = { children: a }), /* @__PURE__ */ y(d, { children: [u, /* @__PURE__ */ v(f, {
286
+ side: "right",
287
+ align: "center",
288
+ hidden: l !== "collapsed" || c,
289
+ ...a
290
+ })] })) : u;
291
+ }
292
+ function q({ className: e, render: n, showOnHover: r = !1, ...i }) {
293
+ return g({
294
+ defaultTagName: "button",
295
+ props: h({ className: t("absolute top-1.5 end-1 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground ring-sidebar-ring outline-hidden transition-transform group-data-[collapsible=icon]:hidden peer-hover/menu-button:text-sidebar-accent-foreground 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 hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 md:after:hidden [&>svg]:size-4 [&>svg]:shrink-0", r && "group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 peer-data-active/menu-button:text-sidebar-accent-foreground aria-expanded:opacity-100 md:opacity-0", e) }, i),
296
+ render: n,
297
+ state: {
298
+ slot: "sidebar-menu-action",
299
+ sidebar: "menu-action"
300
+ }
301
+ });
302
+ }
303
+ function J({ className: e, ...n }) {
304
+ return /* @__PURE__ */ v("div", {
305
+ "data-slot": "sidebar-menu-badge",
306
+ "data-sidebar": "menu-badge",
307
+ className: t("pointer-events-none absolute end-1 flex h-5 min-w-5 items-center justify-center rounded-md px-1 text-xs font-medium text-sidebar-foreground tabular-nums select-none group-data-[collapsible=icon]:hidden peer-hover/menu-button:text-sidebar-accent-foreground 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 peer-data-active/menu-button:text-sidebar-accent-foreground", e),
308
+ ...n
309
+ });
310
+ }
311
+ function Y({ className: e, showIcon: n = !1, ...r }) {
312
+ let [i] = m.useState(() => `${Math.floor(Math.random() * 40) + 50}%`);
313
+ return /* @__PURE__ */ y("div", {
314
+ "data-slot": "sidebar-menu-skeleton",
315
+ "data-sidebar": "menu-skeleton",
316
+ className: t("flex h-8 items-center gap-2 rounded-md px-2", e),
317
+ ...r,
318
+ children: [n && /* @__PURE__ */ v(u, {
319
+ className: "size-4 rounded-md",
320
+ "data-sidebar": "menu-skeleton-icon"
321
+ }), /* @__PURE__ */ v(u, {
322
+ className: "h-4 max-w-(--skeleton-width) flex-1",
323
+ "data-sidebar": "menu-skeleton-text",
324
+ style: { "--skeleton-width": i }
325
+ })]
326
+ });
327
+ }
328
+ function X({ className: e, ...n }) {
329
+ return /* @__PURE__ */ v("ul", {
330
+ "data-slot": "sidebar-menu-sub",
331
+ "data-sidebar": "menu-sub",
332
+ className: t("mx-3.5 flex min-w-0 translate-x-px rtl:-translate-x-px flex-col gap-1 border-s border-sidebar-border px-2.5 py-0.5 group-data-[collapsible=icon]:hidden", e),
333
+ ...n
334
+ });
335
+ }
336
+ function Z({ className: e, ...n }) {
337
+ return /* @__PURE__ */ v("li", {
338
+ "data-slot": "sidebar-menu-sub-item",
339
+ "data-sidebar": "menu-sub-item",
340
+ className: t("group/menu-sub-item relative", e),
341
+ ...n
342
+ });
343
+ }
344
+ function Q({ render: e, size: n = "md", isActive: r = !1, className: i, ...a }) {
345
+ return g({
346
+ defaultTagName: "a",
347
+ props: h({ className: t("flex h-7 min-w-0 -translate-x-px rtl:translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 text-sidebar-foreground ring-sidebar-ring outline-hidden group-data-[collapsible=icon]:hidden 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-[size=md]:text-sm data-[size=sm]:text-xs data-active:bg-sidebar-accent data-active:text-sidebar-accent-foreground [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:text-sidebar-accent-foreground", i) }, a),
348
+ render: e,
349
+ state: {
350
+ slot: "sidebar-menu-sub-button",
351
+ sidebar: "menu-sub-button",
352
+ size: n,
353
+ active: r
354
+ }
355
+ });
356
+ }
357
+ //#endregion
358
+ export { A as Sidebar, R as SidebarContent, I as SidebarFooter, z as SidebarGroup, V as SidebarGroupAction, H as SidebarGroupContent, B as SidebarGroupLabel, F as SidebarHeader, P as SidebarInput, N as SidebarInset, U as SidebarMenu, q as SidebarMenuAction, J as SidebarMenuBadge, K as SidebarMenuButton, W as SidebarMenuItem, Y as SidebarMenuSkeleton, X as SidebarMenuSub, Q as SidebarMenuSubButton, Z as SidebarMenuSubItem, k as SidebarProvider, M as SidebarRail, L as SidebarSeparator, j as SidebarTrigger, O as useSidebar };
@@ -0,0 +1,2 @@
1
+ declare function Skeleton({ className, ...props }: React.ComponentProps<"div">): import("react").JSX.Element;
2
+ export { Skeleton };