@handled-ai/design-system 0.8.0 → 0.9.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 (336) hide show
  1. package/README.md +14 -4
  2. package/dist/charts/bar-chart-component.d.ts +24 -0
  3. package/dist/charts/bar-chart-component.js +123 -0
  4. package/dist/charts/bar-chart-component.js.map +1 -0
  5. package/dist/charts/chart-tooltip.d.ts +26 -0
  6. package/dist/charts/chart-tooltip.js +69 -0
  7. package/dist/charts/chart-tooltip.js.map +1 -0
  8. package/dist/charts/chart.d.ts +64 -0
  9. package/dist/charts/chart.js +285 -0
  10. package/dist/charts/chart.js.map +1 -0
  11. package/dist/charts/donut-chart.d.ts +21 -0
  12. package/dist/charts/donut-chart.js +96 -0
  13. package/dist/charts/donut-chart.js.map +1 -0
  14. package/dist/charts/index.d.ts +11 -0
  15. package/dist/charts/index.js +10 -0
  16. package/dist/charts/index.js.map +1 -0
  17. package/dist/charts/pipeline-overview.d.ts +76 -0
  18. package/dist/charts/pipeline-overview.js +372 -0
  19. package/dist/charts/pipeline-overview.js.map +1 -0
  20. package/dist/charts/sankey-chart.d.ts +52 -0
  21. package/dist/charts/sankey-chart.js +219 -0
  22. package/dist/charts/sankey-chart.js.map +1 -0
  23. package/dist/charts/top-line-metrics.d.ts +26 -0
  24. package/dist/charts/top-line-metrics.js +224 -0
  25. package/dist/charts/top-line-metrics.js.map +1 -0
  26. package/dist/charts/trend-area-chart.d.ts +21 -0
  27. package/dist/charts/trend-area-chart.js +150 -0
  28. package/dist/charts/trend-area-chart.js.map +1 -0
  29. package/dist/charts/volume-analysis-chart.d.ts +19 -0
  30. package/dist/charts/volume-analysis-chart.js +121 -0
  31. package/dist/charts/volume-analysis-chart.js.map +1 -0
  32. package/dist/components/activity-detail.d.ts +38 -0
  33. package/dist/components/activity-detail.js +163 -0
  34. package/dist/components/activity-detail.js.map +1 -0
  35. package/dist/components/activity-log.d.ts +21 -0
  36. package/dist/components/activity-log.js +61 -0
  37. package/dist/components/activity-log.js.map +1 -0
  38. package/dist/components/agent-popover.d.ts +71 -0
  39. package/dist/components/agent-popover.js +282 -0
  40. package/dist/components/agent-popover.js.map +1 -0
  41. package/dist/components/agent-widget.d.ts +24 -0
  42. package/dist/components/agent-widget.js +117 -0
  43. package/dist/components/agent-widget.js.map +1 -0
  44. package/dist/components/avatar.d.ts +13 -0
  45. package/dist/components/avatar.js +140 -0
  46. package/dist/components/avatar.js.map +1 -0
  47. package/dist/components/badge.d.ts +12 -0
  48. package/dist/components/badge.js +75 -0
  49. package/dist/components/badge.js.map +1 -0
  50. package/dist/components/button.d.ts +13 -0
  51. package/dist/components/button.js +83 -0
  52. package/dist/components/button.js.map +1 -0
  53. package/dist/components/card.d.ts +11 -0
  54. package/dist/components/card.js +119 -0
  55. package/dist/components/card.js.map +1 -0
  56. package/dist/components/contact-list.d.ts +34 -0
  57. package/dist/components/contact-list.js +84 -0
  58. package/dist/components/contact-list.js.map +1 -0
  59. package/dist/components/dashboard-cards.d.ts +10 -0
  60. package/dist/components/dashboard-cards.js +164 -0
  61. package/dist/components/dashboard-cards.js.map +1 -0
  62. package/dist/components/data-table-display.d.ts +19 -0
  63. package/dist/components/data-table-display.js +109 -0
  64. package/dist/components/data-table-display.js.map +1 -0
  65. package/dist/components/data-table-filter.d.ts +18 -0
  66. package/dist/components/data-table-filter.js +107 -0
  67. package/dist/components/data-table-filter.js.map +1 -0
  68. package/dist/components/data-table-quick-views.d.ts +13 -0
  69. package/dist/components/data-table-quick-views.js +90 -0
  70. package/dist/components/data-table-quick-views.js.map +1 -0
  71. package/dist/components/data-table-toolbar.d.ts +18 -0
  72. package/dist/components/data-table-toolbar.js +45 -0
  73. package/dist/components/data-table-toolbar.js.map +1 -0
  74. package/dist/components/data-table.d.ts +39 -0
  75. package/dist/components/data-table.js +821 -0
  76. package/dist/components/data-table.js.map +1 -0
  77. package/dist/components/detail-view.d.ts +44 -0
  78. package/dist/components/detail-view.js +165 -0
  79. package/dist/components/detail-view.js.map +1 -0
  80. package/dist/components/dialog.d.ts +19 -0
  81. package/dist/components/dialog.js +188 -0
  82. package/dist/components/dialog.js.map +1 -0
  83. package/dist/components/dropdown-menu.d.ts +27 -0
  84. package/dist/components/dropdown-menu.js +279 -0
  85. package/dist/components/dropdown-menu.js.map +1 -0
  86. package/dist/components/entity-panel.d.ts +69 -0
  87. package/dist/components/entity-panel.js +584 -0
  88. package/dist/components/entity-panel.js.map +1 -0
  89. package/dist/components/inbox-row.d.ts +27 -0
  90. package/dist/components/inbox-row.js +139 -0
  91. package/dist/components/inbox-row.js.map +1 -0
  92. package/dist/components/inbox-toolbar.d.ts +21 -0
  93. package/dist/components/inbox-toolbar.js +203 -0
  94. package/dist/components/inbox-toolbar.js.map +1 -0
  95. package/dist/components/input.d.ts +5 -0
  96. package/dist/components/input.js +50 -0
  97. package/dist/components/input.js.map +1 -0
  98. package/dist/components/insights-filter-bar.d.ts +21 -0
  99. package/dist/components/insights-filter-bar.js +99 -0
  100. package/dist/components/insights-filter-bar.js.map +1 -0
  101. package/dist/components/item-list-display.d.ts +22 -0
  102. package/dist/components/item-list-display.js +240 -0
  103. package/dist/components/item-list-display.js.map +1 -0
  104. package/dist/components/item-list-filter.d.ts +16 -0
  105. package/dist/components/item-list-filter.js +87 -0
  106. package/dist/components/item-list-filter.js.map +1 -0
  107. package/dist/components/item-list-toolbar.d.ts +25 -0
  108. package/dist/components/item-list-toolbar.js +79 -0
  109. package/dist/components/item-list-toolbar.js.map +1 -0
  110. package/dist/components/item-list.d.ts +20 -0
  111. package/dist/components/item-list.js +702 -0
  112. package/dist/components/item-list.js.map +1 -0
  113. package/dist/components/label.d.ts +6 -0
  114. package/dist/components/label.js +55 -0
  115. package/dist/components/label.js.map +1 -0
  116. package/dist/components/message.d.ts +23 -0
  117. package/dist/components/message.js +117 -0
  118. package/dist/components/message.js.map +1 -0
  119. package/dist/components/metric-card.d.ts +25 -0
  120. package/dist/components/metric-card.js +107 -0
  121. package/dist/components/metric-card.js.map +1 -0
  122. package/dist/components/performance-metrics-table.d.ts +38 -0
  123. package/dist/components/performance-metrics-table.js +342 -0
  124. package/dist/components/performance-metrics-table.js.map +1 -0
  125. package/dist/components/preview-list.d.ts +14 -0
  126. package/dist/components/preview-list.js +83 -0
  127. package/dist/components/preview-list.js.map +1 -0
  128. package/dist/components/progress.d.ts +6 -0
  129. package/dist/components/progress.js +69 -0
  130. package/dist/components/progress.js.map +1 -0
  131. package/dist/components/quick-action-chat-area.d.ts +24 -0
  132. package/dist/components/quick-action-chat-area.js +178 -0
  133. package/dist/components/quick-action-chat-area.js.map +1 -0
  134. package/dist/components/quick-action-modal.d.ts +30 -0
  135. package/dist/components/quick-action-modal.js +288 -0
  136. package/dist/components/quick-action-modal.js.map +1 -0
  137. package/dist/components/quick-action-sidebar-nav.d.ts +51 -0
  138. package/dist/components/quick-action-sidebar-nav.js +528 -0
  139. package/dist/components/quick-action-sidebar-nav.js.map +1 -0
  140. package/dist/components/recommended-actions-section.d.ts +23 -0
  141. package/dist/components/recommended-actions-section.js +215 -0
  142. package/dist/components/recommended-actions-section.js.map +1 -0
  143. package/dist/components/report-card.d.ts +26 -0
  144. package/dist/components/report-card.js +69 -0
  145. package/dist/components/report-card.js.map +1 -0
  146. package/dist/components/score-analysis-modal.d.ts +26 -0
  147. package/dist/components/score-analysis-modal.js +141 -0
  148. package/dist/components/score-analysis-modal.js.map +1 -0
  149. package/dist/components/score-breakdown.d.ts +17 -0
  150. package/dist/components/score-breakdown.js +162 -0
  151. package/dist/components/score-breakdown.js.map +1 -0
  152. package/dist/components/score-feedback.d.ts +40 -0
  153. package/dist/components/score-feedback.js +209 -0
  154. package/dist/components/score-feedback.js.map +1 -0
  155. package/dist/components/score-ring.d.ts +14 -0
  156. package/dist/components/score-ring.js +79 -0
  157. package/dist/components/score-ring.js.map +1 -0
  158. package/dist/components/scroll-area.d.ts +7 -0
  159. package/dist/components/scroll-area.js +101 -0
  160. package/dist/components/scroll-area.js.map +1 -0
  161. package/dist/components/select.d.ts +17 -0
  162. package/dist/components/select.js +228 -0
  163. package/dist/components/select.js.map +1 -0
  164. package/dist/components/separator.d.ts +6 -0
  165. package/dist/components/separator.js +61 -0
  166. package/dist/components/separator.js.map +1 -0
  167. package/dist/components/sheet.d.ts +16 -0
  168. package/dist/components/sheet.js +168 -0
  169. package/dist/components/sheet.js.map +1 -0
  170. package/dist/components/sidebar.d.ts +73 -0
  171. package/dist/components/sidebar.js +723 -0
  172. package/dist/components/sidebar.js.map +1 -0
  173. package/dist/components/signal-feedback-inline.d.ts +51 -0
  174. package/dist/components/signal-feedback-inline.js +548 -0
  175. package/dist/components/signal-feedback-inline.js.map +1 -0
  176. package/dist/components/simple-data-table.d.ts +15 -0
  177. package/dist/components/simple-data-table.js +91 -0
  178. package/dist/components/simple-data-table.js.map +1 -0
  179. package/dist/components/skeleton.d.ts +5 -0
  180. package/dist/components/skeleton.js +44 -0
  181. package/dist/components/skeleton.js.map +1 -0
  182. package/dist/components/status-badge.d.ts +10 -0
  183. package/dist/components/status-badge.js +82 -0
  184. package/dist/components/status-badge.js.map +1 -0
  185. package/dist/components/styled-bar-list.d.ts +20 -0
  186. package/dist/components/styled-bar-list.js +59 -0
  187. package/dist/components/styled-bar-list.js.map +1 -0
  188. package/dist/components/suggested-actions.d.ts +110 -0
  189. package/dist/components/suggested-actions.js +1538 -0
  190. package/dist/components/suggested-actions.js.map +1 -0
  191. package/dist/components/table.d.ts +12 -0
  192. package/dist/components/table.js +147 -0
  193. package/dist/components/table.js.map +1 -0
  194. package/dist/components/tabs.d.ts +14 -0
  195. package/dist/components/tabs.js +129 -0
  196. package/dist/components/tabs.js.map +1 -0
  197. package/dist/components/textarea.d.ts +5 -0
  198. package/dist/components/textarea.js +47 -0
  199. package/dist/components/textarea.js.map +1 -0
  200. package/dist/components/timeline-activity.d.ts +34 -0
  201. package/dist/components/timeline-activity.js +181 -0
  202. package/dist/components/timeline-activity.js.map +1 -0
  203. package/dist/components/tooltip.d.ts +9 -0
  204. package/dist/components/tooltip.js +93 -0
  205. package/dist/components/tooltip.js.map +1 -0
  206. package/dist/components/view-mode-toggle.d.ts +16 -0
  207. package/dist/components/view-mode-toggle.js +24 -0
  208. package/dist/components/view-mode-toggle.js.map +1 -0
  209. package/dist/hooks/use-mobile.d.ts +3 -0
  210. package/dist/hooks/use-mobile.js +21 -0
  211. package/dist/hooks/use-mobile.js.map +1 -0
  212. package/dist/index.d.ts +68 -1878
  213. package/dist/index.js +69 -10918
  214. package/dist/index.js.map +1 -1
  215. package/dist/lib/icons.d.ts +18 -0
  216. package/dist/lib/icons.js +21 -0
  217. package/dist/lib/icons.js.map +1 -0
  218. package/dist/lib/utils.d.ts +5 -0
  219. package/dist/lib/utils.js +9 -0
  220. package/dist/lib/utils.js.map +1 -0
  221. package/dist/prototype/index.d.ts +20 -0
  222. package/dist/prototype/index.js +8 -0
  223. package/dist/prototype/index.js.map +1 -0
  224. package/dist/prototype/prototype-accounts-view.d.ts +22 -0
  225. package/dist/prototype/prototype-accounts-view.js +70 -0
  226. package/dist/prototype/prototype-accounts-view.js.map +1 -0
  227. package/dist/prototype/prototype-admin-view.d.ts +21 -0
  228. package/dist/prototype/prototype-admin-view.js +53 -0
  229. package/dist/prototype/prototype-admin-view.js.map +1 -0
  230. package/dist/prototype/prototype-config.d.ts +226 -0
  231. package/dist/prototype/prototype-config.js +1 -0
  232. package/dist/prototype/prototype-config.js.map +1 -0
  233. package/dist/prototype/prototype-inbox-view.d.ts +48 -0
  234. package/dist/prototype/prototype-inbox-view.js +701 -0
  235. package/dist/prototype/prototype-inbox-view.js.map +1 -0
  236. package/dist/prototype/prototype-insights-view.d.ts +23 -0
  237. package/dist/prototype/prototype-insights-view.js +335 -0
  238. package/dist/prototype/prototype-insights-view.js.map +1 -0
  239. package/dist/prototype/prototype-shell.d.ts +40 -0
  240. package/dist/prototype/prototype-shell.js +190 -0
  241. package/dist/prototype/prototype-shell.js.map +1 -0
  242. package/dist/prototype/prototype-work-queue-view.d.ts +8 -0
  243. package/dist/prototype/prototype-work-queue-view.js +17 -0
  244. package/dist/prototype/prototype-work-queue-view.js.map +1 -0
  245. package/dist/three/agent-orb.d.ts +39 -0
  246. package/dist/three/agent-orb.js +500 -0
  247. package/dist/three/agent-orb.js.map +1 -0
  248. package/dist/three/index.d.ts +2 -0
  249. package/dist/three/index.js +2 -0
  250. package/dist/three/index.js.map +1 -0
  251. package/package.json +98 -17
  252. package/src/charts/bar-chart-component.tsx +150 -0
  253. package/src/charts/chart-tooltip.tsx +86 -0
  254. package/src/charts/chart.tsx +371 -0
  255. package/src/charts/donut-chart.tsx +112 -0
  256. package/src/charts/index.ts +13 -0
  257. package/src/charts/pipeline-overview.tsx +476 -0
  258. package/src/charts/sankey-chart.tsx +290 -0
  259. package/src/charts/top-line-metrics.tsx +261 -0
  260. package/src/charts/trend-area-chart.tsx +150 -0
  261. package/src/charts/volume-analysis-chart.tsx +124 -0
  262. package/src/components/activity-detail.tsx +233 -0
  263. package/src/components/activity-log.tsx +89 -0
  264. package/src/components/agent-popover.tsx +373 -0
  265. package/src/components/agent-widget.tsx +163 -0
  266. package/src/components/avatar.tsx +109 -0
  267. package/src/components/badge.tsx +48 -0
  268. package/src/components/button.tsx +59 -0
  269. package/src/components/card.tsx +92 -0
  270. package/src/components/contact-list.tsx +121 -0
  271. package/src/components/dashboard-cards.tsx +170 -0
  272. package/src/components/data-table-display.tsx +139 -0
  273. package/src/components/data-table-filter.tsx +138 -0
  274. package/src/components/data-table-quick-views.tsx +103 -0
  275. package/src/components/data-table-toolbar.tsx +56 -0
  276. package/src/components/data-table.tsx +915 -0
  277. package/src/components/detail-view.tsx +237 -0
  278. package/src/components/dialog.tsx +158 -0
  279. package/src/components/dropdown-menu.tsx +257 -0
  280. package/src/components/entity-panel.tsx +767 -0
  281. package/src/components/inbox-row.tsx +132 -0
  282. package/src/components/inbox-toolbar.tsx +213 -0
  283. package/src/components/input.tsx +21 -0
  284. package/src/components/insights-filter-bar.tsx +132 -0
  285. package/src/components/item-list-display.tsx +278 -0
  286. package/src/components/item-list-filter.tsx +118 -0
  287. package/src/components/item-list-toolbar.tsx +97 -0
  288. package/src/components/item-list.tsx +843 -0
  289. package/src/components/label.tsx +24 -0
  290. package/src/components/message.tsx +83 -0
  291. package/src/components/metric-card.tsx +178 -0
  292. package/src/components/performance-metrics-table.tsx +442 -0
  293. package/src/components/preview-list.tsx +62 -0
  294. package/src/components/progress.tsx +31 -0
  295. package/src/components/quick-action-chat-area.tsx +156 -0
  296. package/src/components/quick-action-modal.tsx +331 -0
  297. package/src/components/quick-action-sidebar-nav.tsx +592 -0
  298. package/src/components/recommended-actions-section.tsx +258 -0
  299. package/src/components/report-card.tsx +106 -0
  300. package/src/components/score-analysis-modal.tsx +172 -0
  301. package/src/components/score-breakdown.tsx +179 -0
  302. package/src/components/score-feedback.tsx +288 -0
  303. package/src/components/score-ring.tsx +87 -0
  304. package/src/components/scroll-area.tsx +58 -0
  305. package/src/components/select.tsx +190 -0
  306. package/src/components/separator.tsx +28 -0
  307. package/src/components/sheet.tsx +143 -0
  308. package/src/components/sidebar.tsx +726 -0
  309. package/src/components/signal-feedback-inline.tsx +591 -0
  310. package/src/components/simple-data-table.tsx +124 -0
  311. package/src/components/skeleton.tsx +15 -0
  312. package/src/components/status-badge.tsx +63 -0
  313. package/src/components/styled-bar-list.tsx +70 -0
  314. package/src/components/suggested-actions.tsx +1985 -0
  315. package/src/components/table.tsx +116 -0
  316. package/src/components/tabs.tsx +91 -0
  317. package/src/components/textarea.tsx +18 -0
  318. package/src/components/timeline-activity.tsx +234 -0
  319. package/src/components/tooltip.tsx +57 -0
  320. package/src/components/view-mode-toggle.tsx +39 -0
  321. package/src/hooks/use-mobile.ts +21 -0
  322. package/src/index.ts +77 -0
  323. package/src/lib/icons.ts +18 -0
  324. package/src/lib/utils.ts +6 -0
  325. package/src/prototype/index.ts +11 -0
  326. package/src/prototype/prototype-accounts-view.tsx +112 -0
  327. package/src/prototype/prototype-admin-view.tsx +67 -0
  328. package/src/prototype/prototype-config.ts +243 -0
  329. package/src/prototype/prototype-inbox-view.tsx +810 -0
  330. package/src/prototype/prototype-insights-view.tsx +379 -0
  331. package/src/prototype/prototype-shell.tsx +219 -0
  332. package/src/prototype/prototype-work-queue-view.tsx +30 -0
  333. package/src/styles/globals.css +299 -0
  334. package/src/three/agent-orb.tsx +557 -0
  335. package/src/three/index.ts +5 -0
  336. package/src/types/r3f.d.ts +8 -0
@@ -0,0 +1,723 @@
1
+ "use client";
2
+
3
+ "use client";
4
+ var __defProp = Object.defineProperty;
5
+ var __defProps = Object.defineProperties;
6
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
7
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
8
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
9
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
10
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
11
+ var __spreadValues = (a, b) => {
12
+ for (var prop in b || (b = {}))
13
+ if (__hasOwnProp.call(b, prop))
14
+ __defNormalProp(a, prop, b[prop]);
15
+ if (__getOwnPropSymbols)
16
+ for (var prop of __getOwnPropSymbols(b)) {
17
+ if (__propIsEnum.call(b, prop))
18
+ __defNormalProp(a, prop, b[prop]);
19
+ }
20
+ return a;
21
+ };
22
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
23
+ var __objRest = (source, exclude) => {
24
+ var target = {};
25
+ for (var prop in source)
26
+ if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
27
+ target[prop] = source[prop];
28
+ if (source != null && __getOwnPropSymbols)
29
+ for (var prop of __getOwnPropSymbols(source)) {
30
+ if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
31
+ target[prop] = source[prop];
32
+ }
33
+ return target;
34
+ };
35
+ import { jsx, jsxs } from "react/jsx-runtime";
36
+ import * as React from "react";
37
+ import { Slot } from "radix-ui";
38
+ import { cva } from "class-variance-authority";
39
+ import { PanelLeftIcon } from "lucide-react";
40
+ import { useIsMobile } from "../hooks/use-mobile.js";
41
+ import { cn } from "../lib/utils.js";
42
+ import { Button } from "./button.js";
43
+ import { Input } from "./input.js";
44
+ import { Separator } from "./separator.js";
45
+ import {
46
+ Sheet,
47
+ SheetContent,
48
+ SheetDescription,
49
+ SheetHeader,
50
+ SheetTitle
51
+ } from "./sheet.js";
52
+ import { Skeleton } from "./skeleton.js";
53
+ import {
54
+ Tooltip,
55
+ TooltipContent,
56
+ TooltipProvider,
57
+ TooltipTrigger
58
+ } from "./tooltip.js";
59
+ const SIDEBAR_COOKIE_NAME = "sidebar_state";
60
+ const SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;
61
+ const SIDEBAR_WIDTH = "16rem";
62
+ const SIDEBAR_WIDTH_MOBILE = "18rem";
63
+ const SIDEBAR_WIDTH_ICON = "3rem";
64
+ const SIDEBAR_KEYBOARD_SHORTCUT = "b";
65
+ const SidebarContext = React.createContext(null);
66
+ function useSidebar() {
67
+ const context = React.useContext(SidebarContext);
68
+ if (!context) {
69
+ throw new Error("useSidebar must be used within a SidebarProvider.");
70
+ }
71
+ return context;
72
+ }
73
+ function SidebarProvider(_a) {
74
+ var _b = _a, {
75
+ defaultOpen = true,
76
+ open: openProp,
77
+ onOpenChange: setOpenProp,
78
+ className,
79
+ style,
80
+ children
81
+ } = _b, props = __objRest(_b, [
82
+ "defaultOpen",
83
+ "open",
84
+ "onOpenChange",
85
+ "className",
86
+ "style",
87
+ "children"
88
+ ]);
89
+ const isMobile = useIsMobile();
90
+ const [openMobile, setOpenMobile] = React.useState(false);
91
+ const [_open, _setOpen] = React.useState(defaultOpen);
92
+ const open = openProp != null ? openProp : _open;
93
+ const setOpen = React.useCallback(
94
+ (value) => {
95
+ const openState = typeof value === "function" ? value(open) : value;
96
+ if (setOpenProp) {
97
+ setOpenProp(openState);
98
+ } else {
99
+ _setOpen(openState);
100
+ }
101
+ document.cookie = `${SIDEBAR_COOKIE_NAME}=${openState}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`;
102
+ },
103
+ [setOpenProp, open]
104
+ );
105
+ const toggleSidebar = React.useCallback(() => {
106
+ return isMobile ? setOpenMobile((open2) => !open2) : setOpen((open2) => !open2);
107
+ }, [isMobile, setOpen, setOpenMobile]);
108
+ React.useEffect(() => {
109
+ const handleKeyDown = (event) => {
110
+ if (event.key === SIDEBAR_KEYBOARD_SHORTCUT && (event.metaKey || event.ctrlKey)) {
111
+ event.preventDefault();
112
+ toggleSidebar();
113
+ }
114
+ };
115
+ window.addEventListener("keydown", handleKeyDown);
116
+ return () => window.removeEventListener("keydown", handleKeyDown);
117
+ }, [toggleSidebar]);
118
+ const state = open ? "expanded" : "collapsed";
119
+ const contextValue = React.useMemo(
120
+ () => ({
121
+ state,
122
+ open,
123
+ setOpen,
124
+ isMobile,
125
+ openMobile,
126
+ setOpenMobile,
127
+ toggleSidebar
128
+ }),
129
+ [state, open, setOpen, isMobile, openMobile, setOpenMobile, toggleSidebar]
130
+ );
131
+ return /* @__PURE__ */ jsx(SidebarContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsx(TooltipProvider, { delayDuration: 0, children: /* @__PURE__ */ jsx(
132
+ "div",
133
+ __spreadProps(__spreadValues({
134
+ "data-slot": "sidebar-wrapper",
135
+ style: __spreadValues({
136
+ "--sidebar-width": SIDEBAR_WIDTH,
137
+ "--sidebar-width-icon": SIDEBAR_WIDTH_ICON
138
+ }, style),
139
+ className: cn(
140
+ "group/sidebar-wrapper has-data-[variant=inset]:bg-sidebar flex min-h-svh w-full",
141
+ className
142
+ )
143
+ }, props), {
144
+ children
145
+ })
146
+ ) }) });
147
+ }
148
+ function Sidebar(_c) {
149
+ var _d = _c, {
150
+ side = "left",
151
+ variant = "sidebar",
152
+ collapsible = "offcanvas",
153
+ className,
154
+ children
155
+ } = _d, props = __objRest(_d, [
156
+ "side",
157
+ "variant",
158
+ "collapsible",
159
+ "className",
160
+ "children"
161
+ ]);
162
+ const { isMobile, state, openMobile, setOpenMobile } = useSidebar();
163
+ if (collapsible === "none") {
164
+ return /* @__PURE__ */ jsx(
165
+ "div",
166
+ __spreadProps(__spreadValues({
167
+ "data-slot": "sidebar",
168
+ className: cn(
169
+ "bg-sidebar text-sidebar-foreground flex h-full w-(--sidebar-width) flex-col",
170
+ className
171
+ )
172
+ }, props), {
173
+ children
174
+ })
175
+ );
176
+ }
177
+ if (isMobile) {
178
+ return /* @__PURE__ */ jsx(Sheet, __spreadProps(__spreadValues({ open: openMobile, onOpenChange: setOpenMobile }, props), { children: /* @__PURE__ */ jsxs(
179
+ SheetContent,
180
+ {
181
+ "data-sidebar": "sidebar",
182
+ "data-slot": "sidebar",
183
+ "data-mobile": "true",
184
+ className: "bg-sidebar text-sidebar-foreground w-(--sidebar-width) p-0 [&>button]:hidden",
185
+ style: {
186
+ "--sidebar-width": SIDEBAR_WIDTH_MOBILE
187
+ },
188
+ side,
189
+ children: [
190
+ /* @__PURE__ */ jsxs(SheetHeader, { className: "sr-only", children: [
191
+ /* @__PURE__ */ jsx(SheetTitle, { children: "Sidebar" }),
192
+ /* @__PURE__ */ jsx(SheetDescription, { children: "Displays the mobile sidebar." })
193
+ ] }),
194
+ /* @__PURE__ */ jsx("div", { className: "flex h-full w-full flex-col", children })
195
+ ]
196
+ }
197
+ ) }));
198
+ }
199
+ return /* @__PURE__ */ jsxs(
200
+ "div",
201
+ {
202
+ className: "group peer text-sidebar-foreground hidden md:block",
203
+ "data-state": state,
204
+ "data-collapsible": state === "collapsed" ? collapsible : "",
205
+ "data-variant": variant,
206
+ "data-side": side,
207
+ "data-slot": "sidebar",
208
+ children: [
209
+ /* @__PURE__ */ jsx(
210
+ "div",
211
+ {
212
+ "data-slot": "sidebar-gap",
213
+ className: cn(
214
+ "relative w-(--sidebar-width) bg-transparent transition-[width] duration-200 ease-linear",
215
+ "group-data-[collapsible=offcanvas]:w-0",
216
+ "group-data-[side=right]:rotate-180",
217
+ variant === "floating" || variant === "inset" ? "group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]" : "group-data-[collapsible=icon]:w-(--sidebar-width-icon)"
218
+ )
219
+ }
220
+ ),
221
+ /* @__PURE__ */ jsx(
222
+ "div",
223
+ __spreadProps(__spreadValues({
224
+ "data-slot": "sidebar-container",
225
+ className: cn(
226
+ "fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear md:flex",
227
+ 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)]",
228
+ // Adjust the padding for floating and inset variants.
229
+ 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",
230
+ className
231
+ )
232
+ }, props), {
233
+ children: /* @__PURE__ */ jsx(
234
+ "div",
235
+ {
236
+ "data-sidebar": "sidebar",
237
+ "data-slot": "sidebar-inner",
238
+ 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",
239
+ children
240
+ }
241
+ )
242
+ })
243
+ )
244
+ ]
245
+ }
246
+ );
247
+ }
248
+ function SidebarTrigger(_e) {
249
+ var _f = _e, {
250
+ className,
251
+ onClick
252
+ } = _f, props = __objRest(_f, [
253
+ "className",
254
+ "onClick"
255
+ ]);
256
+ const { toggleSidebar } = useSidebar();
257
+ return /* @__PURE__ */ jsxs(
258
+ Button,
259
+ __spreadProps(__spreadValues({
260
+ "data-sidebar": "trigger",
261
+ "data-slot": "sidebar-trigger",
262
+ variant: "ghost",
263
+ size: "icon",
264
+ className: cn("size-7", className),
265
+ onClick: (event) => {
266
+ onClick == null ? void 0 : onClick(event);
267
+ toggleSidebar();
268
+ }
269
+ }, props), {
270
+ children: [
271
+ /* @__PURE__ */ jsx(PanelLeftIcon, {}),
272
+ /* @__PURE__ */ jsx("span", { className: "sr-only", children: "Toggle Sidebar" })
273
+ ]
274
+ })
275
+ );
276
+ }
277
+ function SidebarRail(_g) {
278
+ var _h = _g, { className } = _h, props = __objRest(_h, ["className"]);
279
+ const { toggleSidebar } = useSidebar();
280
+ return /* @__PURE__ */ jsx(
281
+ "button",
282
+ __spreadValues({
283
+ "data-sidebar": "rail",
284
+ "data-slot": "sidebar-rail",
285
+ "aria-label": "Toggle Sidebar",
286
+ tabIndex: -1,
287
+ onClick: toggleSidebar,
288
+ title: "Toggle Sidebar",
289
+ className: cn(
290
+ "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",
291
+ "in-data-[side=left]:cursor-w-resize in-data-[side=right]:cursor-e-resize",
292
+ "[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize",
293
+ "hover:group-data-[collapsible=offcanvas]:bg-sidebar group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full",
294
+ "[[data-side=left][data-collapsible=offcanvas]_&]:-right-2",
295
+ "[[data-side=right][data-collapsible=offcanvas]_&]:-left-2",
296
+ className
297
+ )
298
+ }, props)
299
+ );
300
+ }
301
+ function SidebarInset(_i) {
302
+ var _j = _i, { className } = _j, props = __objRest(_j, ["className"]);
303
+ return /* @__PURE__ */ jsx(
304
+ "main",
305
+ __spreadValues({
306
+ "data-slot": "sidebar-inset",
307
+ className: cn(
308
+ "bg-background relative flex w-full flex-1 flex-col",
309
+ "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",
310
+ className
311
+ )
312
+ }, props)
313
+ );
314
+ }
315
+ function SidebarInput(_k) {
316
+ var _l = _k, {
317
+ className
318
+ } = _l, props = __objRest(_l, [
319
+ "className"
320
+ ]);
321
+ return /* @__PURE__ */ jsx(
322
+ Input,
323
+ __spreadValues({
324
+ "data-slot": "sidebar-input",
325
+ "data-sidebar": "input",
326
+ className: cn("bg-background h-8 w-full shadow-none", className)
327
+ }, props)
328
+ );
329
+ }
330
+ function SidebarHeader(_m) {
331
+ var _n = _m, { className } = _n, props = __objRest(_n, ["className"]);
332
+ return /* @__PURE__ */ jsx(
333
+ "div",
334
+ __spreadValues({
335
+ "data-slot": "sidebar-header",
336
+ "data-sidebar": "header",
337
+ className: cn("flex flex-col gap-2 p-2", className)
338
+ }, props)
339
+ );
340
+ }
341
+ function SidebarFooter(_o) {
342
+ var _p = _o, { className } = _p, props = __objRest(_p, ["className"]);
343
+ return /* @__PURE__ */ jsx(
344
+ "div",
345
+ __spreadValues({
346
+ "data-slot": "sidebar-footer",
347
+ "data-sidebar": "footer",
348
+ className: cn("flex flex-col gap-2 p-2", className)
349
+ }, props)
350
+ );
351
+ }
352
+ function SidebarSeparator(_q) {
353
+ var _r = _q, {
354
+ className
355
+ } = _r, props = __objRest(_r, [
356
+ "className"
357
+ ]);
358
+ return /* @__PURE__ */ jsx(
359
+ Separator,
360
+ __spreadValues({
361
+ "data-slot": "sidebar-separator",
362
+ "data-sidebar": "separator",
363
+ className: cn("bg-sidebar-border mx-2 w-auto", className)
364
+ }, props)
365
+ );
366
+ }
367
+ function SidebarContent(_s) {
368
+ var _t = _s, { className } = _t, props = __objRest(_t, ["className"]);
369
+ return /* @__PURE__ */ jsx(
370
+ "div",
371
+ __spreadValues({
372
+ "data-slot": "sidebar-content",
373
+ "data-sidebar": "content",
374
+ className: cn(
375
+ "flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden",
376
+ className
377
+ )
378
+ }, props)
379
+ );
380
+ }
381
+ function SidebarGroup(_u) {
382
+ var _v = _u, { className } = _v, props = __objRest(_v, ["className"]);
383
+ return /* @__PURE__ */ jsx(
384
+ "div",
385
+ __spreadValues({
386
+ "data-slot": "sidebar-group",
387
+ "data-sidebar": "group",
388
+ className: cn("relative flex w-full min-w-0 flex-col p-2", className)
389
+ }, props)
390
+ );
391
+ }
392
+ function SidebarGroupLabel(_w) {
393
+ var _x = _w, {
394
+ className,
395
+ asChild = false
396
+ } = _x, props = __objRest(_x, [
397
+ "className",
398
+ "asChild"
399
+ ]);
400
+ const Comp = asChild ? Slot.Root : "div";
401
+ return /* @__PURE__ */ jsx(
402
+ Comp,
403
+ __spreadValues({
404
+ "data-slot": "sidebar-group-label",
405
+ "data-sidebar": "group-label",
406
+ className: cn(
407
+ "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",
408
+ "group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0",
409
+ className
410
+ )
411
+ }, props)
412
+ );
413
+ }
414
+ function SidebarGroupAction(_y) {
415
+ var _z = _y, {
416
+ className,
417
+ asChild = false
418
+ } = _z, props = __objRest(_z, [
419
+ "className",
420
+ "asChild"
421
+ ]);
422
+ const Comp = asChild ? Slot.Root : "button";
423
+ return /* @__PURE__ */ jsx(
424
+ Comp,
425
+ __spreadValues({
426
+ "data-slot": "sidebar-group-action",
427
+ "data-sidebar": "group-action",
428
+ className: cn(
429
+ "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",
430
+ // Increases the hit area of the button on mobile.
431
+ "after:absolute after:-inset-2 md:after:hidden",
432
+ "group-data-[collapsible=icon]:hidden",
433
+ className
434
+ )
435
+ }, props)
436
+ );
437
+ }
438
+ function SidebarGroupContent(_A) {
439
+ var _B = _A, {
440
+ className
441
+ } = _B, props = __objRest(_B, [
442
+ "className"
443
+ ]);
444
+ return /* @__PURE__ */ jsx(
445
+ "div",
446
+ __spreadValues({
447
+ "data-slot": "sidebar-group-content",
448
+ "data-sidebar": "group-content",
449
+ className: cn("w-full text-sm", className)
450
+ }, props)
451
+ );
452
+ }
453
+ function SidebarMenu(_C) {
454
+ var _D = _C, { className } = _D, props = __objRest(_D, ["className"]);
455
+ return /* @__PURE__ */ jsx(
456
+ "ul",
457
+ __spreadValues({
458
+ "data-slot": "sidebar-menu",
459
+ "data-sidebar": "menu",
460
+ className: cn("flex w-full min-w-0 flex-col gap-1", className)
461
+ }, props)
462
+ );
463
+ }
464
+ function SidebarMenuItem(_E) {
465
+ var _F = _E, { className } = _F, props = __objRest(_F, ["className"]);
466
+ return /* @__PURE__ */ jsx(
467
+ "li",
468
+ __spreadValues({
469
+ "data-slot": "sidebar-menu-item",
470
+ "data-sidebar": "menu-item",
471
+ className: cn("group/menu-item relative", className)
472
+ }, props)
473
+ );
474
+ }
475
+ const sidebarMenuButtonVariants = cva(
476
+ "peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm outline-hidden ring-sidebar-ring transition-[width,height,padding] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-data-[sidebar=menu-action]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0",
477
+ {
478
+ variants: {
479
+ variant: {
480
+ default: "hover:bg-sidebar-accent hover:text-sidebar-accent-foreground",
481
+ 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))]"
482
+ },
483
+ size: {
484
+ default: "h-8 text-sm",
485
+ sm: "h-7 text-xs",
486
+ lg: "h-12 text-sm group-data-[collapsible=icon]:p-0!"
487
+ }
488
+ },
489
+ defaultVariants: {
490
+ variant: "default",
491
+ size: "default"
492
+ }
493
+ }
494
+ );
495
+ function SidebarMenuButton(_G) {
496
+ var _H = _G, {
497
+ asChild = false,
498
+ isActive = false,
499
+ variant = "default",
500
+ size = "default",
501
+ tooltip,
502
+ className
503
+ } = _H, props = __objRest(_H, [
504
+ "asChild",
505
+ "isActive",
506
+ "variant",
507
+ "size",
508
+ "tooltip",
509
+ "className"
510
+ ]);
511
+ const Comp = asChild ? Slot.Root : "button";
512
+ const { isMobile, state } = useSidebar();
513
+ const button = /* @__PURE__ */ jsx(
514
+ Comp,
515
+ __spreadValues({
516
+ "data-slot": "sidebar-menu-button",
517
+ "data-sidebar": "menu-button",
518
+ "data-size": size,
519
+ "data-active": isActive,
520
+ className: cn(sidebarMenuButtonVariants({ variant, size }), className)
521
+ }, props)
522
+ );
523
+ if (!tooltip) {
524
+ return button;
525
+ }
526
+ if (typeof tooltip === "string") {
527
+ tooltip = {
528
+ children: tooltip
529
+ };
530
+ }
531
+ return /* @__PURE__ */ jsxs(Tooltip, { children: [
532
+ /* @__PURE__ */ jsx(TooltipTrigger, { asChild: true, children: button }),
533
+ /* @__PURE__ */ jsx(
534
+ TooltipContent,
535
+ __spreadValues({
536
+ side: "right",
537
+ align: "center",
538
+ hidden: state !== "collapsed" || isMobile
539
+ }, tooltip)
540
+ )
541
+ ] });
542
+ }
543
+ function SidebarMenuAction(_I) {
544
+ var _J = _I, {
545
+ className,
546
+ asChild = false,
547
+ showOnHover = false
548
+ } = _J, props = __objRest(_J, [
549
+ "className",
550
+ "asChild",
551
+ "showOnHover"
552
+ ]);
553
+ const Comp = asChild ? Slot.Root : "button";
554
+ return /* @__PURE__ */ jsx(
555
+ Comp,
556
+ __spreadValues({
557
+ "data-slot": "sidebar-menu-action",
558
+ "data-sidebar": "menu-action",
559
+ className: cn(
560
+ "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",
561
+ // Increases the hit area of the button on mobile.
562
+ "after:absolute after:-inset-2 md:after:hidden",
563
+ "peer-data-[size=sm]/menu-button:top-1",
564
+ "peer-data-[size=default]/menu-button:top-1.5",
565
+ "peer-data-[size=lg]/menu-button:top-2.5",
566
+ "group-data-[collapsible=icon]:hidden",
567
+ 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",
568
+ className
569
+ )
570
+ }, props)
571
+ );
572
+ }
573
+ function SidebarMenuBadge(_K) {
574
+ var _L = _K, {
575
+ className
576
+ } = _L, props = __objRest(_L, [
577
+ "className"
578
+ ]);
579
+ return /* @__PURE__ */ jsx(
580
+ "div",
581
+ __spreadValues({
582
+ "data-slot": "sidebar-menu-badge",
583
+ "data-sidebar": "menu-badge",
584
+ className: cn(
585
+ "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",
586
+ "peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[active=true]/menu-button:text-sidebar-accent-foreground",
587
+ "peer-data-[size=sm]/menu-button:top-1",
588
+ "peer-data-[size=default]/menu-button:top-1.5",
589
+ "peer-data-[size=lg]/menu-button:top-2.5",
590
+ "group-data-[collapsible=icon]:hidden",
591
+ className
592
+ )
593
+ }, props)
594
+ );
595
+ }
596
+ function SidebarMenuSkeleton(_M) {
597
+ var _N = _M, {
598
+ className,
599
+ showIcon = false
600
+ } = _N, props = __objRest(_N, [
601
+ "className",
602
+ "showIcon"
603
+ ]);
604
+ const width = React.useMemo(() => {
605
+ return `${Math.floor(Math.random() * 40) + 50}%`;
606
+ }, []);
607
+ return /* @__PURE__ */ jsxs(
608
+ "div",
609
+ __spreadProps(__spreadValues({
610
+ "data-slot": "sidebar-menu-skeleton",
611
+ "data-sidebar": "menu-skeleton",
612
+ className: cn("flex h-8 items-center gap-2 rounded-md px-2", className)
613
+ }, props), {
614
+ children: [
615
+ showIcon && /* @__PURE__ */ jsx(
616
+ Skeleton,
617
+ {
618
+ className: "size-4 rounded-md",
619
+ "data-sidebar": "menu-skeleton-icon"
620
+ }
621
+ ),
622
+ /* @__PURE__ */ jsx(
623
+ Skeleton,
624
+ {
625
+ className: "h-4 max-w-(--skeleton-width) flex-1",
626
+ "data-sidebar": "menu-skeleton-text",
627
+ style: {
628
+ "--skeleton-width": width
629
+ }
630
+ }
631
+ )
632
+ ]
633
+ })
634
+ );
635
+ }
636
+ function SidebarMenuSub(_O) {
637
+ var _P = _O, { className } = _P, props = __objRest(_P, ["className"]);
638
+ return /* @__PURE__ */ jsx(
639
+ "ul",
640
+ __spreadValues({
641
+ "data-slot": "sidebar-menu-sub",
642
+ "data-sidebar": "menu-sub",
643
+ className: cn(
644
+ "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",
645
+ "group-data-[collapsible=icon]:hidden",
646
+ className
647
+ )
648
+ }, props)
649
+ );
650
+ }
651
+ function SidebarMenuSubItem(_Q) {
652
+ var _R = _Q, {
653
+ className
654
+ } = _R, props = __objRest(_R, [
655
+ "className"
656
+ ]);
657
+ return /* @__PURE__ */ jsx(
658
+ "li",
659
+ __spreadValues({
660
+ "data-slot": "sidebar-menu-sub-item",
661
+ "data-sidebar": "menu-sub-item",
662
+ className: cn("group/menu-sub-item relative", className)
663
+ }, props)
664
+ );
665
+ }
666
+ function SidebarMenuSubButton(_S) {
667
+ var _T = _S, {
668
+ asChild = false,
669
+ size = "md",
670
+ isActive = false,
671
+ className
672
+ } = _T, props = __objRest(_T, [
673
+ "asChild",
674
+ "size",
675
+ "isActive",
676
+ "className"
677
+ ]);
678
+ const Comp = asChild ? Slot.Root : "a";
679
+ return /* @__PURE__ */ jsx(
680
+ Comp,
681
+ __spreadValues({
682
+ "data-slot": "sidebar-menu-sub-button",
683
+ "data-sidebar": "menu-sub-button",
684
+ "data-size": size,
685
+ "data-active": isActive,
686
+ className: cn(
687
+ "text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground active:bg-sidebar-accent 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-md px-2 outline-hidden focus-visible:ring-2 disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0",
688
+ "data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground",
689
+ size === "sm" && "text-xs",
690
+ size === "md" && "text-sm",
691
+ "group-data-[collapsible=icon]:hidden",
692
+ className
693
+ )
694
+ }, props)
695
+ );
696
+ }
697
+ export {
698
+ Sidebar,
699
+ SidebarContent,
700
+ SidebarFooter,
701
+ SidebarGroup,
702
+ SidebarGroupAction,
703
+ SidebarGroupContent,
704
+ SidebarGroupLabel,
705
+ SidebarHeader,
706
+ SidebarInput,
707
+ SidebarInset,
708
+ SidebarMenu,
709
+ SidebarMenuAction,
710
+ SidebarMenuBadge,
711
+ SidebarMenuButton,
712
+ SidebarMenuItem,
713
+ SidebarMenuSkeleton,
714
+ SidebarMenuSub,
715
+ SidebarMenuSubButton,
716
+ SidebarMenuSubItem,
717
+ SidebarProvider,
718
+ SidebarRail,
719
+ SidebarSeparator,
720
+ SidebarTrigger,
721
+ useSidebar
722
+ };
723
+ //# sourceMappingURL=sidebar.js.map