@aaas-pro/library 0.0.0-stage → 0.1.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 (247) hide show
  1. package/README.md +107 -2
  2. package/dist/components/address-picker.d.ts +18 -0
  3. package/dist/components/address-picker.js +46 -0
  4. package/dist/components/card-date-filter.d.ts +12 -0
  5. package/dist/components/card-date-filter.js +95 -0
  6. package/dist/components/date-time-picker.d.ts +12 -0
  7. package/dist/components/date-time-picker.js +96 -0
  8. package/dist/components/detail-dialog.d.ts +48 -0
  9. package/dist/components/detail-dialog.js +97 -0
  10. package/dist/components/document-links.d.ts +13 -0
  11. package/dist/components/document-links.js +19 -0
  12. package/dist/components/draft-row-actions.d.ts +14 -0
  13. package/dist/components/draft-row-actions.js +70 -0
  14. package/dist/components/error-boundary.d.ts +14 -0
  15. package/dist/components/error-boundary.js +35 -0
  16. package/dist/components/glow-card.d.ts +13 -0
  17. package/dist/components/glow-card.js +48 -0
  18. package/dist/components/org-picker.d.ts +17 -0
  19. package/dist/components/org-picker.js +56 -0
  20. package/dist/components/overflow-row-actions.d.ts +29 -0
  21. package/dist/components/overflow-row-actions.js +135 -0
  22. package/dist/components/page-header.d.ts +21 -0
  23. package/dist/components/page-header.js +21 -0
  24. package/dist/components/permission-button.d.ts +4 -0
  25. package/dist/components/permission-button.js +17 -0
  26. package/dist/components/permission-context.d.ts +12 -0
  27. package/dist/components/permission-context.js +17 -0
  28. package/dist/components/person-picker.d.ts +20 -0
  29. package/dist/components/person-picker.js +38 -0
  30. package/dist/components/process-flow-bar.d.ts +15 -0
  31. package/dist/components/process-flow-bar.js +19 -0
  32. package/dist/components/product-picker.d.ts +19 -0
  33. package/dist/components/product-picker.js +155 -0
  34. package/dist/components/ref-doc-picker.d.ts +24 -0
  35. package/dist/components/ref-doc-picker.js +139 -0
  36. package/dist/components/scroll-to-top.d.ts +1 -0
  37. package/dist/components/scroll-to-top.js +20 -0
  38. package/dist/components/state-view.d.ts +26 -0
  39. package/dist/components/state-view.js +75 -0
  40. package/dist/components/theme-switcher.d.ts +27 -0
  41. package/dist/components/theme-switcher.js +77 -0
  42. package/dist/components/time-filter.d.ts +7 -0
  43. package/dist/components/time-filter.js +65 -0
  44. package/dist/components/ui/accordion.d.ts +7 -0
  45. package/dist/components/ui/accordion.js +64 -0
  46. package/dist/components/ui/alert-dialog.d.ts +15 -0
  47. package/dist/components/ui/alert-dialog.js +160 -0
  48. package/dist/components/ui/alert.d.ts +12 -0
  49. package/dist/components/ui/alert.js +66 -0
  50. package/dist/components/ui/aspect-ratio.d.ts +3 -0
  51. package/dist/components/ui/aspect-ratio.js +10 -0
  52. package/dist/components/ui/avatar.d.ts +6 -0
  53. package/dist/components/ui/avatar.js +53 -0
  54. package/dist/components/ui/badge.d.ts +12 -0
  55. package/dist/components/ui/badge.js +44 -0
  56. package/dist/components/ui/breadcrumb.d.ts +11 -0
  57. package/dist/components/ui/breadcrumb.js +103 -0
  58. package/dist/components/ui/button-group.d.ts +14 -0
  59. package/dist/components/ui/button-group.js +76 -0
  60. package/dist/components/ui/button.d.ts +20 -0
  61. package/dist/components/ui/button.js +93 -0
  62. package/dist/components/ui/calendar.d.ts +73 -0
  63. package/dist/components/ui/calendar.js +103 -0
  64. package/dist/components/ui/card.d.ts +9 -0
  65. package/dist/components/ui/card.js +90 -0
  66. package/dist/components/ui/carousel.d.ts +14 -0
  67. package/dist/components/ui/carousel.js +200 -0
  68. package/dist/components/ui/chart.d.ts +43 -0
  69. package/dist/components/ui/chart.js +252 -0
  70. package/dist/components/ui/checkbox.d.ts +4 -0
  71. package/dist/components/ui/checkbox.js +31 -0
  72. package/dist/components/ui/collapsible.d.ts +5 -0
  73. package/dist/components/ui/collapsible.js +34 -0
  74. package/dist/components/ui/command.d.ts +18 -0
  75. package/dist/components/ui/command.js +170 -0
  76. package/dist/components/ui/context-menu.d.ts +26 -0
  77. package/dist/components/ui/context-menu.js +237 -0
  78. package/dist/components/ui/dialog.d.ts +17 -0
  79. package/dist/components/ui/dialog.js +139 -0
  80. package/dist/components/ui/drawer.d.ts +13 -0
  81. package/dist/components/ui/drawer.js +129 -0
  82. package/dist/components/ui/dropdown-menu.d.ts +26 -0
  83. package/dist/components/ui/dropdown-menu.js +245 -0
  84. package/dist/components/ui/empty.d.ts +14 -0
  85. package/dist/components/ui/empty.js +102 -0
  86. package/dist/components/ui/field.d.ts +27 -0
  87. package/dist/components/ui/field.js +229 -0
  88. package/dist/components/ui/form.d.ts +26 -0
  89. package/dist/components/ui/form.js +118 -0
  90. package/dist/components/ui/hover-card.d.ts +6 -0
  91. package/dist/components/ui/hover-card.js +39 -0
  92. package/dist/components/ui/input-group.d.ts +22 -0
  93. package/dist/components/ui/input-group.js +156 -0
  94. package/dist/components/ui/input-otp.d.ts +11 -0
  95. package/dist/components/ui/input-otp.js +66 -0
  96. package/dist/components/ui/input.d.ts +3 -0
  97. package/dist/components/ui/input.js +21 -0
  98. package/dist/components/ui/item.d.ts +29 -0
  99. package/dist/components/ui/item.js +187 -0
  100. package/dist/components/ui/kbd.d.ts +3 -0
  101. package/dist/components/ui/kbd.js +31 -0
  102. package/dist/components/ui/label.d.ts +4 -0
  103. package/dist/components/ui/label.js +22 -0
  104. package/dist/components/ui/menubar.d.ts +26 -0
  105. package/dist/components/ui/menubar.js +252 -0
  106. package/dist/components/ui/navigation-menu.d.ts +17 -0
  107. package/dist/components/ui/navigation-menu.js +170 -0
  108. package/dist/components/ui/pagination.d.ts +13 -0
  109. package/dist/components/ui/pagination.js +118 -0
  110. package/dist/components/ui/popover.d.ts +8 -0
  111. package/dist/components/ui/popover.js +47 -0
  112. package/dist/components/ui/progress.d.ts +4 -0
  113. package/dist/components/ui/progress.js +34 -0
  114. package/dist/components/ui/radio-group.d.ts +5 -0
  115. package/dist/components/ui/radio-group.js +45 -0
  116. package/dist/components/ui/resizable.d.ts +7 -0
  117. package/dist/components/ui/resizable.js +49 -0
  118. package/dist/components/ui/scroll-area.d.ts +5 -0
  119. package/dist/components/ui/scroll-area.js +60 -0
  120. package/dist/components/ui/select.d.ts +17 -0
  121. package/dist/components/ui/select.js +215 -0
  122. package/dist/components/ui/separator.d.ts +4 -0
  123. package/dist/components/ui/separator.js +26 -0
  124. package/dist/components/ui/sheet.d.ts +13 -0
  125. package/dist/components/ui/sheet.js +127 -0
  126. package/dist/components/ui/sidebar.d.ts +72 -0
  127. package/dist/components/ui/sidebar.js +656 -0
  128. package/dist/components/ui/skeleton.d.ts +2 -0
  129. package/dist/components/ui/skeleton.js +15 -0
  130. package/dist/components/ui/slider.d.ts +4 -0
  131. package/dist/components/ui/slider.js +63 -0
  132. package/dist/components/ui/sonner.d.ts +4 -0
  133. package/dist/components/ui/sonner.js +34 -0
  134. package/dist/components/ui/spinner.d.ts +2 -0
  135. package/dist/components/ui/spinner.js +17 -0
  136. package/dist/components/ui/switch.d.ts +4 -0
  137. package/dist/components/ui/switch.js +31 -0
  138. package/dist/components/ui/table.d.ts +10 -0
  139. package/dist/components/ui/table.js +114 -0
  140. package/dist/components/ui/tabs.d.ts +7 -0
  141. package/dist/components/ui/tabs.js +67 -0
  142. package/dist/components/ui/textarea.d.ts +3 -0
  143. package/dist/components/ui/textarea.js +18 -0
  144. package/dist/components/ui/toggle-group.d.ts +9 -0
  145. package/dist/components/ui/toggle-group.js +68 -0
  146. package/dist/components/ui/toggle.d.ts +12 -0
  147. package/dist/components/ui/toggle.js +43 -0
  148. package/dist/components/ui/tooltip.d.ts +7 -0
  149. package/dist/components/ui/tooltip.js +56 -0
  150. package/dist/hooks/use-mobile.d.ts +1 -0
  151. package/dist/hooks/use-mobile.js +18 -0
  152. package/dist/icons/index.d.ts +57 -0
  153. package/dist/icons/index.js +115 -0
  154. package/dist/icons/paths.d.ts +556 -0
  155. package/dist/icons/paths.js +231 -0
  156. package/dist/index.d.ts +68 -0
  157. package/dist/index.js +399 -0
  158. package/dist/internal/selection-base.d.ts +37 -0
  159. package/dist/internal/selection-base.js +40 -0
  160. package/dist/lib/class-names.d.ts +6 -0
  161. package/dist/lib/class-names.js +159 -0
  162. package/dist/lib/utils.d.ts +3 -0
  163. package/dist/lib/utils.js +7 -0
  164. package/dist/lib/variants.d.ts +21 -0
  165. package/dist/lib/variants.js +21 -0
  166. package/dist/primitives/accordion.d.ts +29 -0
  167. package/dist/primitives/accordion.js +49 -0
  168. package/dist/primitives/alert-dialog.d.ts +10 -0
  169. package/dist/primitives/alert-dialog.js +22 -0
  170. package/dist/primitives/aspect-ratio.d.ts +4 -0
  171. package/dist/primitives/aspect-ratio.js +7 -0
  172. package/dist/primitives/avatar.d.ts +8 -0
  173. package/dist/primitives/avatar.js +45 -0
  174. package/dist/primitives/carousel.d.ts +22 -0
  175. package/dist/primitives/carousel.js +78 -0
  176. package/dist/primitives/chart.d.ts +71 -0
  177. package/dist/primitives/chart.js +125 -0
  178. package/dist/primitives/checkbox.d.ts +13 -0
  179. package/dist/primitives/checkbox.js +24 -0
  180. package/dist/primitives/collapsible.d.ts +14 -0
  181. package/dist/primitives/collapsible.js +29 -0
  182. package/dist/primitives/command.d.ts +43 -0
  183. package/dist/primitives/command.js +98 -0
  184. package/dist/primitives/context-menu.d.ts +24 -0
  185. package/dist/primitives/context-menu.js +19 -0
  186. package/dist/primitives/core.d.ts +25 -0
  187. package/dist/primitives/core.js +89 -0
  188. package/dist/primitives/dialog.d.ts +7 -0
  189. package/dist/primitives/dialog.js +15 -0
  190. package/dist/primitives/drawer.d.ts +30 -0
  191. package/dist/primitives/drawer.js +39 -0
  192. package/dist/primitives/dropdown-menu.d.ts +24 -0
  193. package/dist/primitives/dropdown-menu.js +19 -0
  194. package/dist/primitives/form.d.ts +154 -0
  195. package/dist/primitives/form.js +139 -0
  196. package/dist/primitives/hover-card.d.ts +4 -0
  197. package/dist/primitives/hover-card.js +8 -0
  198. package/dist/primitives/input-otp.d.ts +21 -0
  199. package/dist/primitives/input-otp.js +78 -0
  200. package/dist/primitives/label.d.ts +2 -0
  201. package/dist/primitives/label.js +7 -0
  202. package/dist/primitives/layer.d.ts +84 -0
  203. package/dist/primitives/layer.js +300 -0
  204. package/dist/primitives/menu.d.ts +56 -0
  205. package/dist/primitives/menu.js +126 -0
  206. package/dist/primitives/menubar.d.ts +91 -0
  207. package/dist/primitives/menubar.js +44 -0
  208. package/dist/primitives/navigation-menu.d.ts +32 -0
  209. package/dist/primitives/navigation-menu.js +121 -0
  210. package/dist/primitives/popover.d.ts +4 -0
  211. package/dist/primitives/popover.js +12 -0
  212. package/dist/primitives/progress.d.ts +7 -0
  213. package/dist/primitives/progress.js +13 -0
  214. package/dist/primitives/radio-group.d.ts +18 -0
  215. package/dist/primitives/radio-group.js +36 -0
  216. package/dist/primitives/resizable.d.ts +19 -0
  217. package/dist/primitives/resizable.js +91 -0
  218. package/dist/primitives/scroll-area.d.ts +12 -0
  219. package/dist/primitives/scroll-area.js +26 -0
  220. package/dist/primitives/select.d.ts +42 -0
  221. package/dist/primitives/select.js +167 -0
  222. package/dist/primitives/separator.d.ts +5 -0
  223. package/dist/primitives/separator.js +7 -0
  224. package/dist/primitives/slider.d.ts +25 -0
  225. package/dist/primitives/slider.js +98 -0
  226. package/dist/primitives/slot.d.ts +1 -0
  227. package/dist/primitives/slot.js +4 -0
  228. package/dist/primitives/switch.d.ts +11 -0
  229. package/dist/primitives/switch.js +22 -0
  230. package/dist/primitives/tabs.d.ts +23 -0
  231. package/dist/primitives/tabs.js +38 -0
  232. package/dist/primitives/toast.d.ts +55 -0
  233. package/dist/primitives/toast.js +86 -0
  234. package/dist/primitives/toggle-group.d.ts +24 -0
  235. package/dist/primitives/toggle-group.js +33 -0
  236. package/dist/primitives/toggle.d.ts +7 -0
  237. package/dist/primitives/toggle.js +13 -0
  238. package/dist/primitives/tooltip.d.ts +7 -0
  239. package/dist/primitives/tooltip.js +10 -0
  240. package/dist/style-entry.d.ts +1 -0
  241. package/dist/style-entry.js +1 -0
  242. package/dist/styles.css +7016 -0
  243. package/dist/styles.js +1 -0
  244. package/dist/theme/index.d.ts +110 -0
  245. package/dist/theme/index.js +199 -0
  246. package/licenses/Lucide.txt +15 -0
  247. package/package.json +67 -4
@@ -0,0 +1,656 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import * as React from "react";
3
+ import { cva } from "../../lib/variants.js";
4
+ import { PanelLeftIcon } from "../../icons/index.js";
5
+ import { useIsMobile } from "../../hooks/use-mobile.js";
6
+ import { cn } from "../../lib/utils.js";
7
+ import { Button } from "./button.js";
8
+ import { Input } from "./input.js";
9
+ import { Separator } from "./separator.js";
10
+ import { Sheet, SheetContent, SheetHeader, SheetTitle, SheetDescription } from "./sheet.js";
11
+ import { Skeleton } from "./skeleton.js";
12
+ import { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider } from "./tooltip.js";
13
+ import { Slot } from "../../primitives/core.js";
14
+ const SIDEBAR_COOKIE_NAME = "sidebar_state";
15
+ const SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;
16
+ const SIDEBAR_WIDTH = "16rem";
17
+ const SIDEBAR_WIDTH_MOBILE = "18rem";
18
+ const SIDEBAR_WIDTH_ICON = "3rem";
19
+ const SIDEBAR_KEYBOARD_SHORTCUT = "b";
20
+ const SidebarContext = React.createContext(null);
21
+ function useSidebar() {
22
+ const context = React.useContext(SidebarContext);
23
+ if (!context) {
24
+ throw new Error("useSidebar must be used within a SidebarProvider.");
25
+ }
26
+ return context;
27
+ }
28
+ function SidebarProvider({
29
+ defaultOpen = true,
30
+ open: openProp,
31
+ onOpenChange: setOpenProp,
32
+ className,
33
+ style,
34
+ children,
35
+ ...props
36
+ }) {
37
+ const isMobile = useIsMobile();
38
+ const [openMobile, setOpenMobile] = React.useState(false);
39
+ const [_open, _setOpen] = React.useState(defaultOpen);
40
+ const open = openProp ?? _open;
41
+ const setOpen = React.useCallback(
42
+ (value) => {
43
+ const openState = typeof value === "function" ? value(open) : value;
44
+ if (setOpenProp) {
45
+ setOpenProp(openState);
46
+ } else {
47
+ _setOpen(openState);
48
+ }
49
+ document.cookie = `${SIDEBAR_COOKIE_NAME}=${openState}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`;
50
+ },
51
+ [setOpenProp, open]
52
+ );
53
+ const toggleSidebar = React.useCallback(() => {
54
+ return isMobile ? setOpenMobile((open2) => !open2) : setOpen((open2) => !open2);
55
+ }, [isMobile, setOpen, setOpenMobile]);
56
+ React.useEffect(() => {
57
+ const handleKeyDown = (event) => {
58
+ if (event.key === SIDEBAR_KEYBOARD_SHORTCUT && (event.metaKey || event.ctrlKey)) {
59
+ event.preventDefault();
60
+ toggleSidebar();
61
+ }
62
+ };
63
+ window.addEventListener("keydown", handleKeyDown);
64
+ return () => window.removeEventListener("keydown", handleKeyDown);
65
+ }, [toggleSidebar]);
66
+ const state = open ? "expanded" : "collapsed";
67
+ const contextValue = React.useMemo(
68
+ () => ({
69
+ state,
70
+ open,
71
+ setOpen,
72
+ isMobile,
73
+ openMobile,
74
+ setOpenMobile,
75
+ toggleSidebar
76
+ }),
77
+ [state, open, setOpen, isMobile, openMobile, setOpenMobile, toggleSidebar]
78
+ );
79
+ return /* @__PURE__ */ jsx(SidebarContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsx(TooltipProvider, { delayDuration: 0, children: /* @__PURE__ */ jsx(
80
+ "div",
81
+ {
82
+ "data-slot": "sidebar-wrapper",
83
+ style: {
84
+ "--sidebar-width": SIDEBAR_WIDTH,
85
+ "--sidebar-width-icon": SIDEBAR_WIDTH_ICON,
86
+ ...style
87
+ },
88
+ className: cn(
89
+ "group/sidebar-wrapper has-data-[variant=inset]:bg-sidebar flex min-h-svh w-full",
90
+ className
91
+ ),
92
+ ...props,
93
+ children
94
+ }
95
+ ) }) });
96
+ }
97
+ function Sidebar({
98
+ side = "left",
99
+ variant = "sidebar",
100
+ collapsible = "offcanvas",
101
+ className,
102
+ children,
103
+ ...props
104
+ }) {
105
+ const { isMobile, state, openMobile, setOpenMobile } = useSidebar();
106
+ if (collapsible === "none") {
107
+ return /* @__PURE__ */ jsx(
108
+ "div",
109
+ {
110
+ "data-slot": "sidebar",
111
+ className: cn(
112
+ "bg-sidebar text-sidebar-foreground flex h-full w-(--sidebar-width) flex-col",
113
+ className
114
+ ),
115
+ ...props,
116
+ children
117
+ }
118
+ );
119
+ }
120
+ if (isMobile) {
121
+ return /* @__PURE__ */ jsx(Sheet, { open: openMobile, onOpenChange: setOpenMobile, ...props, children: /* @__PURE__ */ jsxs(
122
+ SheetContent,
123
+ {
124
+ "data-sidebar": "sidebar",
125
+ "data-slot": "sidebar",
126
+ "data-mobile": "true",
127
+ className: "bg-sidebar text-sidebar-foreground w-(--sidebar-width) p-0 [&>button]:hidden",
128
+ style: {
129
+ "--sidebar-width": SIDEBAR_WIDTH_MOBILE
130
+ },
131
+ side,
132
+ children: [
133
+ /* @__PURE__ */ jsxs(SheetHeader, { className: "sr-only", children: [
134
+ /* @__PURE__ */ jsx(SheetTitle, { children: "Sidebar" }),
135
+ /* @__PURE__ */ jsx(SheetDescription, { children: "Displays the mobile sidebar." })
136
+ ] }),
137
+ /* @__PURE__ */ jsx("div", { className: "flex h-full w-full flex-col", children })
138
+ ]
139
+ }
140
+ ) });
141
+ }
142
+ return /* @__PURE__ */ jsxs(
143
+ "div",
144
+ {
145
+ className: "group peer text-sidebar-foreground hidden md:block",
146
+ "data-state": state,
147
+ "data-collapsible": state === "collapsed" ? collapsible : "",
148
+ "data-variant": variant,
149
+ "data-side": side,
150
+ "data-slot": "sidebar",
151
+ children: [
152
+ /* @__PURE__ */ jsx(
153
+ "div",
154
+ {
155
+ "data-slot": "sidebar-gap",
156
+ className: cn(
157
+ "relative w-(--sidebar-width) bg-transparent transition-[width] duration-200 ease-linear",
158
+ "group-data-[collapsible=offcanvas]:w-0",
159
+ "group-data-[side=right]:rotate-180",
160
+ variant === "floating" || variant === "inset" ? "group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]" : "group-data-[collapsible=icon]:w-(--sidebar-width-icon)"
161
+ )
162
+ }
163
+ ),
164
+ /* @__PURE__ */ jsx(
165
+ "div",
166
+ {
167
+ "data-slot": "sidebar-container",
168
+ className: cn(
169
+ "fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear md:flex",
170
+ side === "left" ? "left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]" : "right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]",
171
+ // Adjust the padding for floating and inset variants.
172
+ 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",
173
+ className
174
+ ),
175
+ ...props,
176
+ children: /* @__PURE__ */ jsx(
177
+ "div",
178
+ {
179
+ "data-sidebar": "sidebar",
180
+ "data-slot": "sidebar-inner",
181
+ className: "bg-sidebar group-data-[variant=floating]:border-sidebar-border flex h-full w-full flex-col group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:shadow-sm",
182
+ children
183
+ }
184
+ )
185
+ }
186
+ )
187
+ ]
188
+ }
189
+ );
190
+ }
191
+ function SidebarTrigger({
192
+ className,
193
+ onClick,
194
+ ...props
195
+ }) {
196
+ const { toggleSidebar } = useSidebar();
197
+ return /* @__PURE__ */ jsxs(
198
+ Button,
199
+ {
200
+ "data-sidebar": "trigger",
201
+ "data-slot": "sidebar-trigger",
202
+ variant: "ghost",
203
+ size: "icon",
204
+ className: cn("size-7", className),
205
+ onClick: (event) => {
206
+ onClick?.(event);
207
+ toggleSidebar();
208
+ },
209
+ ...props,
210
+ children: [
211
+ /* @__PURE__ */ jsx(PanelLeftIcon, {}),
212
+ /* @__PURE__ */ jsx("span", { className: "sr-only", children: "Toggle Sidebar" })
213
+ ]
214
+ }
215
+ );
216
+ }
217
+ function SidebarRail({ className, ...props }) {
218
+ const { toggleSidebar } = useSidebar();
219
+ return /* @__PURE__ */ jsx(
220
+ "button",
221
+ {
222
+ "data-sidebar": "rail",
223
+ "data-slot": "sidebar-rail",
224
+ "aria-label": "Toggle Sidebar",
225
+ tabIndex: -1,
226
+ onClick: toggleSidebar,
227
+ title: "Toggle Sidebar",
228
+ className: cn(
229
+ "hover:after:bg-sidebar-border absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear group-data-[side=left]:-right-4 group-data-[side=right]:left-0 after:absolute after:inset-y-0 after:left-1/2 after:w-[2px] sm:flex",
230
+ "in-data-[side=left]:cursor-w-resize in-data-[side=right]:cursor-e-resize",
231
+ "[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize",
232
+ "hover:group-data-[collapsible=offcanvas]:bg-sidebar group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full",
233
+ "[[data-side=left][data-collapsible=offcanvas]_&]:-right-2",
234
+ "[[data-side=right][data-collapsible=offcanvas]_&]:-left-2",
235
+ className
236
+ ),
237
+ ...props
238
+ }
239
+ );
240
+ }
241
+ function SidebarInset({ className, ...props }) {
242
+ return /* @__PURE__ */ jsx(
243
+ "main",
244
+ {
245
+ "data-slot": "sidebar-inset",
246
+ className: cn(
247
+ "bg-background relative flex w-full flex-1 flex-col",
248
+ "md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow-sm md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-2",
249
+ className
250
+ ),
251
+ ...props
252
+ }
253
+ );
254
+ }
255
+ function SidebarInput({
256
+ className,
257
+ ...props
258
+ }) {
259
+ return /* @__PURE__ */ jsx(
260
+ Input,
261
+ {
262
+ "data-slot": "sidebar-input",
263
+ "data-sidebar": "input",
264
+ className: cn("bg-background h-8 w-full shadow-none", className),
265
+ ...props
266
+ }
267
+ );
268
+ }
269
+ function SidebarHeader({ className, ...props }) {
270
+ return /* @__PURE__ */ jsx(
271
+ "div",
272
+ {
273
+ "data-slot": "sidebar-header",
274
+ "data-sidebar": "header",
275
+ className: cn("flex flex-col gap-2 p-2", className),
276
+ ...props
277
+ }
278
+ );
279
+ }
280
+ function SidebarFooter({ className, ...props }) {
281
+ return /* @__PURE__ */ jsx(
282
+ "div",
283
+ {
284
+ "data-slot": "sidebar-footer",
285
+ "data-sidebar": "footer",
286
+ className: cn("flex flex-col gap-2 p-2", className),
287
+ ...props
288
+ }
289
+ );
290
+ }
291
+ function SidebarSeparator({
292
+ className,
293
+ ...props
294
+ }) {
295
+ return /* @__PURE__ */ jsx(
296
+ Separator,
297
+ {
298
+ "data-slot": "sidebar-separator",
299
+ "data-sidebar": "separator",
300
+ className: cn("bg-sidebar-border mx-2 w-auto", className),
301
+ ...props
302
+ }
303
+ );
304
+ }
305
+ function SidebarContent({ className, ...props }) {
306
+ return /* @__PURE__ */ jsx(
307
+ "div",
308
+ {
309
+ "data-slot": "sidebar-content",
310
+ "data-sidebar": "content",
311
+ className: cn(
312
+ "flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden",
313
+ className
314
+ ),
315
+ ...props
316
+ }
317
+ );
318
+ }
319
+ function SidebarGroup({ className, ...props }) {
320
+ return /* @__PURE__ */ jsx(
321
+ "div",
322
+ {
323
+ "data-slot": "sidebar-group",
324
+ "data-sidebar": "group",
325
+ className: cn("relative flex w-full min-w-0 flex-col p-2", className),
326
+ ...props
327
+ }
328
+ );
329
+ }
330
+ function SidebarGroupLabel({
331
+ className,
332
+ asChild = false,
333
+ ...props
334
+ }) {
335
+ const Comp = asChild ? Slot : "div";
336
+ return /* @__PURE__ */ jsx(
337
+ Comp,
338
+ {
339
+ "data-slot": "sidebar-group-label",
340
+ "data-sidebar": "group-label",
341
+ className: cn(
342
+ "text-sidebar-foreground/70 ring-sidebar-ring flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium outline-hidden transition-[margin,opacity] duration-200 ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0",
343
+ "group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0",
344
+ className
345
+ ),
346
+ ...props
347
+ }
348
+ );
349
+ }
350
+ function SidebarGroupAction({
351
+ className,
352
+ asChild = false,
353
+ ...props
354
+ }) {
355
+ const Comp = asChild ? Slot : "button";
356
+ return /* @__PURE__ */ jsx(
357
+ Comp,
358
+ {
359
+ "data-slot": "sidebar-group-action",
360
+ "data-sidebar": "group-action",
361
+ className: cn(
362
+ "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-md p-0 outline-hidden transition-transform focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0",
363
+ // Increases the hit area of the button on mobile.
364
+ "after:absolute after:-inset-2 md:after:hidden",
365
+ "group-data-[collapsible=icon]:hidden",
366
+ className
367
+ ),
368
+ ...props
369
+ }
370
+ );
371
+ }
372
+ function SidebarGroupContent({
373
+ className,
374
+ ...props
375
+ }) {
376
+ return /* @__PURE__ */ jsx(
377
+ "div",
378
+ {
379
+ "data-slot": "sidebar-group-content",
380
+ "data-sidebar": "group-content",
381
+ className: cn("w-full text-sm", className),
382
+ ...props
383
+ }
384
+ );
385
+ }
386
+ function SidebarMenu({ className, ...props }) {
387
+ return /* @__PURE__ */ jsx(
388
+ "ul",
389
+ {
390
+ "data-slot": "sidebar-menu",
391
+ "data-sidebar": "menu",
392
+ className: cn("flex w-full min-w-0 flex-col gap-1", className),
393
+ ...props
394
+ }
395
+ );
396
+ }
397
+ function SidebarMenuItem({ className, ...props }) {
398
+ return /* @__PURE__ */ jsx(
399
+ "li",
400
+ {
401
+ "data-slot": "sidebar-menu-item",
402
+ "data-sidebar": "menu-item",
403
+ className: cn("group/menu-item relative", className),
404
+ ...props
405
+ }
406
+ );
407
+ }
408
+ const sidebarMenuButtonVariants = cva(
409
+ "peer/menu-button flex w-full items-center gap-3 overflow-hidden rounded-lg px-3 text-left text-sm text-sidebar-foreground outline-none ring-sidebar-ring/20 transition-[color,background-color,box-shadow] duration-150 hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent disabled:cursor-not-allowed disabled:text-sidebar-foreground/35 disabled:hover:bg-transparent group-has-data-[sidebar=menu-action]/menu-item:pr-8 aria-disabled:cursor-not-allowed aria-disabled:text-sidebar-foreground/35 aria-disabled:hover:bg-transparent data-[active=true]:bg-[color-mix(in_srgb,var(--sidebar-primary)_12%,var(--sidebar))] data-[active=true]:text-sidebar-primary data-[active=true]:hover:bg-[color-mix(in_srgb,var(--sidebar-primary)_16%,var(--sidebar))] group-data-[collapsible=icon]:size-10! group-data-[collapsible=icon]:justify-center group-data-[collapsible=icon]:p-3! group-data-[collapsible=icon]:[&>span]:sr-only [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0",
410
+ {
411
+ variants: {
412
+ variant: {
413
+ default: "hover:bg-sidebar-accent hover:text-sidebar-accent-foreground",
414
+ outline: "border border-sidebar-border bg-sidebar hover:bg-sidebar-accent hover:text-sidebar-accent-foreground"
415
+ },
416
+ size: {
417
+ default: "h-10 text-sm",
418
+ sm: "h-8 text-xs",
419
+ lg: "h-12 text-sm group-data-[collapsible=icon]:p-0!"
420
+ }
421
+ },
422
+ defaultVariants: {
423
+ variant: "default",
424
+ size: "default"
425
+ }
426
+ }
427
+ );
428
+ function SidebarMenuButton({
429
+ asChild = false,
430
+ isActive = false,
431
+ variant = "default",
432
+ size = "default",
433
+ tooltip,
434
+ className,
435
+ ...props
436
+ }) {
437
+ const Comp = asChild ? Slot : "button";
438
+ const { isMobile, state } = useSidebar();
439
+ const unavailable = props.disabled || props["aria-disabled"] === true || props["aria-disabled"] === "true";
440
+ const button = /* @__PURE__ */ jsx(
441
+ Comp,
442
+ {
443
+ "data-slot": "sidebar-menu-button",
444
+ "data-sidebar": "menu-button",
445
+ "data-size": size,
446
+ "data-active": isActive,
447
+ type: asChild ? void 0 : "button",
448
+ "aria-current": isActive && props["aria-expanded"] === void 0 ? "page" : void 0,
449
+ className: cn(sidebarMenuButtonVariants({ variant, size }), className),
450
+ ...props,
451
+ onClickCapture: (event) => {
452
+ if (unavailable) {
453
+ event.preventDefault();
454
+ event.stopPropagation();
455
+ return;
456
+ }
457
+ props.onClickCapture?.(event);
458
+ }
459
+ }
460
+ );
461
+ if (!tooltip) {
462
+ return button;
463
+ }
464
+ if (typeof tooltip === "string") {
465
+ tooltip = {
466
+ children: tooltip
467
+ };
468
+ }
469
+ return /* @__PURE__ */ jsxs(Tooltip, { children: [
470
+ /* @__PURE__ */ jsx(TooltipTrigger, { asChild: true, children: button }),
471
+ /* @__PURE__ */ jsx(
472
+ TooltipContent,
473
+ {
474
+ side: "right",
475
+ align: "center",
476
+ hidden: state !== "collapsed" || isMobile,
477
+ ...tooltip
478
+ }
479
+ )
480
+ ] });
481
+ }
482
+ function SidebarMenuAction({
483
+ className,
484
+ asChild = false,
485
+ showOnHover = false,
486
+ ...props
487
+ }) {
488
+ const Comp = asChild ? Slot : "button";
489
+ return /* @__PURE__ */ jsx(
490
+ Comp,
491
+ {
492
+ "data-slot": "sidebar-menu-action",
493
+ "data-sidebar": "menu-action",
494
+ className: cn(
495
+ "text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground peer-hover/menu-button:text-sidebar-accent-foreground absolute top-1.5 right-1 flex aspect-square w-5 items-center justify-center rounded-md p-0 outline-hidden transition-transform focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0",
496
+ // Increases the hit area of the button on mobile.
497
+ "after:absolute after:-inset-2 md:after:hidden",
498
+ "peer-data-[size=sm]/menu-button:top-1",
499
+ "peer-data-[size=default]/menu-button:top-1.5",
500
+ "peer-data-[size=lg]/menu-button:top-2.5",
501
+ "group-data-[collapsible=icon]:hidden",
502
+ showOnHover && "peer-data-[active=true]/menu-button:text-sidebar-accent-foreground group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 md:opacity-0",
503
+ className
504
+ ),
505
+ ...props
506
+ }
507
+ );
508
+ }
509
+ function SidebarMenuBadge({
510
+ className,
511
+ ...props
512
+ }) {
513
+ return /* @__PURE__ */ jsx(
514
+ "div",
515
+ {
516
+ "data-slot": "sidebar-menu-badge",
517
+ "data-sidebar": "menu-badge",
518
+ className: cn(
519
+ "text-sidebar-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",
520
+ "peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[active=true]/menu-button:text-sidebar-accent-foreground",
521
+ "peer-data-[size=sm]/menu-button:top-1",
522
+ "peer-data-[size=default]/menu-button:top-1.5",
523
+ "peer-data-[size=lg]/menu-button:top-2.5",
524
+ "group-data-[collapsible=icon]:hidden",
525
+ className
526
+ ),
527
+ ...props
528
+ }
529
+ );
530
+ }
531
+ function SidebarMenuSkeleton({
532
+ className,
533
+ showIcon = false,
534
+ ...props
535
+ }) {
536
+ const width = "70%";
537
+ return /* @__PURE__ */ jsxs(
538
+ "div",
539
+ {
540
+ "data-slot": "sidebar-menu-skeleton",
541
+ "data-sidebar": "menu-skeleton",
542
+ className: cn("flex h-8 items-center gap-2 rounded-md px-2", className),
543
+ ...props,
544
+ children: [
545
+ showIcon && /* @__PURE__ */ jsx(
546
+ Skeleton,
547
+ {
548
+ className: "size-4 rounded-md",
549
+ "data-sidebar": "menu-skeleton-icon"
550
+ }
551
+ ),
552
+ /* @__PURE__ */ jsx(
553
+ Skeleton,
554
+ {
555
+ className: "h-4 max-w-(--skeleton-width) flex-1",
556
+ "data-sidebar": "menu-skeleton-text",
557
+ style: {
558
+ "--skeleton-width": width
559
+ }
560
+ }
561
+ )
562
+ ]
563
+ }
564
+ );
565
+ }
566
+ function SidebarMenuSub({ className, ...props }) {
567
+ return /* @__PURE__ */ jsx(
568
+ "ul",
569
+ {
570
+ "data-slot": "sidebar-menu-sub",
571
+ "data-sidebar": "menu-sub",
572
+ className: cn(
573
+ "flex min-w-0 flex-col gap-1 pt-1",
574
+ "group-data-[collapsible=icon]:hidden",
575
+ className
576
+ ),
577
+ ...props
578
+ }
579
+ );
580
+ }
581
+ function SidebarMenuSubItem({
582
+ className,
583
+ ...props
584
+ }) {
585
+ return /* @__PURE__ */ jsx(
586
+ "li",
587
+ {
588
+ "data-slot": "sidebar-menu-sub-item",
589
+ "data-sidebar": "menu-sub-item",
590
+ className: cn("group/menu-sub-item relative", className),
591
+ ...props
592
+ }
593
+ );
594
+ }
595
+ function SidebarMenuSubButton({
596
+ asChild = false,
597
+ size = "md",
598
+ isActive = false,
599
+ className,
600
+ ...props
601
+ }) {
602
+ const Comp = asChild ? Slot : "a";
603
+ return /* @__PURE__ */ jsx(
604
+ Comp,
605
+ {
606
+ "data-slot": "sidebar-menu-sub-button",
607
+ "data-sidebar": "menu-sub-button",
608
+ "data-size": size,
609
+ "data-active": isActive,
610
+ className: cn(
611
+ "text-sidebar-foreground ring-sidebar-ring/20 hover:bg-sidebar-accent hover:text-sidebar-accent-foreground active:bg-sidebar-accent flex h-10 w-full min-w-0 items-center gap-3 overflow-hidden rounded-lg pl-10 pr-3 text-left outline-none transition-colors focus-visible:ring-2 aria-disabled:cursor-not-allowed aria-disabled:text-sidebar-foreground/35 aria-disabled:hover:bg-transparent [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0",
612
+ "data-[active=true]:bg-[color-mix(in_srgb,var(--sidebar-primary)_12%,var(--sidebar))] data-[active=true]:text-sidebar-primary data-[active=true]:hover:bg-[color-mix(in_srgb,var(--sidebar-primary)_16%,var(--sidebar))]",
613
+ size === "sm" && "h-8 text-xs",
614
+ size === "md" && "text-sm",
615
+ "group-data-[collapsible=icon]:hidden",
616
+ className
617
+ ),
618
+ ...props,
619
+ "aria-current": props["aria-current"] ?? (isActive ? "page" : void 0),
620
+ onClickCapture: (event) => {
621
+ if (props["aria-disabled"] === true || props["aria-disabled"] === "true") {
622
+ event.preventDefault();
623
+ event.stopPropagation();
624
+ return;
625
+ }
626
+ props.onClickCapture?.(event);
627
+ }
628
+ }
629
+ );
630
+ }
631
+ export {
632
+ Sidebar,
633
+ SidebarContent,
634
+ SidebarFooter,
635
+ SidebarGroup,
636
+ SidebarGroupAction,
637
+ SidebarGroupContent,
638
+ SidebarGroupLabel,
639
+ SidebarHeader,
640
+ SidebarInput,
641
+ SidebarInset,
642
+ SidebarMenu,
643
+ SidebarMenuAction,
644
+ SidebarMenuBadge,
645
+ SidebarMenuButton,
646
+ SidebarMenuItem,
647
+ SidebarMenuSkeleton,
648
+ SidebarMenuSub,
649
+ SidebarMenuSubButton,
650
+ SidebarMenuSubItem,
651
+ SidebarProvider,
652
+ SidebarRail,
653
+ SidebarSeparator,
654
+ SidebarTrigger,
655
+ useSidebar
656
+ };
@@ -0,0 +1,2 @@
1
+ declare function Skeleton({ className, ...props }: React.ComponentProps<"div">): import("react").JSX.Element;
2
+ export { Skeleton };
@@ -0,0 +1,15 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ import { cn } from "../../lib/utils.js";
3
+ function Skeleton({ className, ...props }) {
4
+ return /* @__PURE__ */ jsx(
5
+ "div",
6
+ {
7
+ "data-slot": "skeleton",
8
+ className: cn("bg-[color-mix(in_srgb,var(--foreground)_7%,transparent)] animate-shimmer rounded-md", className),
9
+ ...props
10
+ }
11
+ );
12
+ }
13
+ export {
14
+ Skeleton
15
+ };
@@ -0,0 +1,4 @@
1
+ import * as React from "react";
2
+ import * as SliderPrimitive from "../../primitives/slider";
3
+ declare function Slider({ className, defaultValue, value, min, max, ...props }: React.ComponentProps<typeof SliderPrimitive.Root>): React.JSX.Element;
4
+ export { Slider };