@health-samurai/react-components 0.0.0-alpha.3 → 0.0.0-alpha.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (251) hide show
  1. package/dist/bundle.css +687 -446
  2. package/dist/src/components/code-editor/http/grammar/http.d.ts +3 -0
  3. package/dist/src/components/code-editor/http/grammar/http.d.ts.map +1 -0
  4. package/dist/src/components/code-editor/http/grammar/http.grammar +74 -0
  5. package/dist/src/components/code-editor/http/grammar/http.js +38 -0
  6. package/dist/src/components/code-editor/http/grammar/http.js.map +1 -0
  7. package/dist/src/components/code-editor/http/grammar/http.terms.d.ts +2 -0
  8. package/dist/src/components/code-editor/http/grammar/http.terms.d.ts.map +1 -0
  9. package/dist/src/components/code-editor/http/grammar/http.terms.js +4 -0
  10. package/dist/src/components/code-editor/http/grammar/http.terms.js.map +1 -0
  11. package/dist/src/components/code-editor/http/grammar/http.test.d.ts +2 -0
  12. package/dist/src/components/code-editor/http/grammar/http.test.d.ts.map +1 -0
  13. package/dist/src/components/code-editor/http/grammar/http.test.js +80 -0
  14. package/dist/src/components/code-editor/http/grammar/http.test.js.map +1 -0
  15. package/dist/src/components/code-editor/http/index.d.ts +4 -0
  16. package/dist/src/components/code-editor/http/index.d.ts.map +1 -0
  17. package/dist/src/components/code-editor/http/index.js +66 -0
  18. package/dist/src/components/code-editor/http/index.js.map +1 -0
  19. package/dist/src/components/code-editor/index.d.ts +13 -2
  20. package/dist/src/components/code-editor/index.d.ts.map +1 -1
  21. package/dist/src/components/code-editor/index.js +161 -20
  22. package/dist/src/components/code-editor/index.js.map +1 -1
  23. package/dist/src/components/code-editor.stories.js +3 -1
  24. package/dist/src/components/code-editor.stories.js.map +1 -1
  25. package/dist/src/components/request-line-editor.d.ts +11 -35
  26. package/dist/src/components/request-line-editor.d.ts.map +1 -1
  27. package/dist/src/components/request-line-editor.js +51 -49
  28. package/dist/src/components/request-line-editor.js.map +1 -1
  29. package/dist/src/components/request-line-editor.stories.d.ts.map +1 -1
  30. package/dist/src/components/request-line-editor.stories.js +17 -53
  31. package/dist/src/components/request-line-editor.stories.js.map +1 -1
  32. package/dist/src/components/tree-view.d.ts +16 -0
  33. package/dist/src/components/tree-view.d.ts.map +1 -0
  34. package/dist/src/components/tree-view.js +67 -0
  35. package/dist/src/components/tree-view.js.map +1 -0
  36. package/dist/src/components/tree-view.stories.d.ts +13 -0
  37. package/dist/src/components/tree-view.stories.d.ts.map +1 -0
  38. package/dist/src/components/tree-view.stories.js +274 -0
  39. package/dist/src/components/tree-view.stories.js.map +1 -0
  40. package/dist/src/icons.d.ts +3 -0
  41. package/dist/src/icons.d.ts.map +1 -0
  42. package/dist/src/icons.js +47 -0
  43. package/dist/src/icons.js.map +1 -0
  44. package/dist/src/index.css +42 -3
  45. package/dist/src/index.d.ts +1 -1
  46. package/dist/src/index.d.ts.map +1 -1
  47. package/dist/src/index.js +1 -1
  48. package/dist/src/index.js.map +1 -1
  49. package/dist/src/shadcn/components/ui/accordion.d.ts.map +1 -1
  50. package/dist/src/shadcn/components/ui/accordion.js +23 -5
  51. package/dist/src/shadcn/components/ui/accordion.js.map +1 -1
  52. package/dist/src/shadcn/components/ui/alert.d.ts.map +1 -1
  53. package/dist/src/shadcn/components/ui/alert.js +12 -5
  54. package/dist/src/shadcn/components/ui/alert.js.map +1 -1
  55. package/dist/src/shadcn/components/ui/avatar.d.ts.map +1 -1
  56. package/dist/src/shadcn/components/ui/avatar.js +4 -3
  57. package/dist/src/shadcn/components/ui/avatar.js.map +1 -1
  58. package/dist/src/shadcn/components/ui/badge.d.ts.map +1 -1
  59. package/dist/src/shadcn/components/ui/badge.js +16 -5
  60. package/dist/src/shadcn/components/ui/badge.js.map +1 -1
  61. package/dist/src/shadcn/components/ui/breadcrumb.d.ts.map +1 -1
  62. package/dist/src/shadcn/components/ui/breadcrumb.js +6 -6
  63. package/dist/src/shadcn/components/ui/breadcrumb.js.map +1 -1
  64. package/dist/src/shadcn/components/ui/button.d.ts.map +1 -1
  65. package/dist/src/shadcn/components/ui/button.js +19 -11
  66. package/dist/src/shadcn/components/ui/button.js.map +1 -1
  67. package/dist/src/shadcn/components/ui/card.d.ts.map +1 -1
  68. package/dist/src/shadcn/components/ui/card.js +14 -6
  69. package/dist/src/shadcn/components/ui/card.js.map +1 -1
  70. package/dist/src/shadcn/components/ui/carousel.d.ts.map +1 -1
  71. package/dist/src/shadcn/components/ui/carousel.js +1 -0
  72. package/dist/src/shadcn/components/ui/carousel.js.map +1 -1
  73. package/dist/src/shadcn/components/ui/checkbox.d.ts.map +1 -1
  74. package/dist/src/shadcn/components/ui/checkbox.js +20 -5
  75. package/dist/src/shadcn/components/ui/checkbox.js.map +1 -1
  76. package/dist/src/shadcn/components/ui/checkbox.stories.d.ts.map +1 -1
  77. package/dist/src/shadcn/components/ui/checkbox.stories.js +44 -35
  78. package/dist/src/shadcn/components/ui/checkbox.stories.js.map +1 -1
  79. package/dist/src/shadcn/components/ui/combobox.d.ts +18 -0
  80. package/dist/src/shadcn/components/ui/combobox.d.ts.map +1 -0
  81. package/dist/src/shadcn/components/ui/combobox.js +121 -0
  82. package/dist/src/shadcn/components/ui/combobox.js.map +1 -0
  83. package/dist/src/shadcn/components/ui/combobox.stories.d.ts +11 -0
  84. package/dist/src/shadcn/components/ui/combobox.stories.d.ts.map +1 -0
  85. package/dist/src/shadcn/components/ui/combobox.stories.js +16 -0
  86. package/dist/src/shadcn/components/ui/combobox.stories.js.map +1 -0
  87. package/dist/src/shadcn/components/ui/command.d.ts.map +1 -1
  88. package/dist/src/shadcn/components/ui/command.js +73 -12
  89. package/dist/src/shadcn/components/ui/command.js.map +1 -1
  90. package/dist/src/shadcn/components/ui/command.stories.js +0 -1
  91. package/dist/src/shadcn/components/ui/command.stories.js.map +1 -1
  92. package/dist/src/shadcn/components/ui/dialog.d.ts.map +1 -1
  93. package/dist/src/shadcn/components/ui/dialog.js +35 -7
  94. package/dist/src/shadcn/components/ui/dialog.js.map +1 -1
  95. package/dist/src/shadcn/components/ui/drawer.d.ts.map +1 -1
  96. package/dist/src/shadcn/components/ui/drawer.js +26 -5
  97. package/dist/src/shadcn/components/ui/drawer.js.map +1 -1
  98. package/dist/src/shadcn/components/ui/dropdown-menu.d.ts.map +1 -1
  99. package/dist/src/shadcn/components/ui/dropdown-menu.js +12 -1
  100. package/dist/src/shadcn/components/ui/dropdown-menu.js.map +1 -1
  101. package/dist/src/shadcn/components/ui/form.d.ts.map +1 -1
  102. package/dist/src/shadcn/components/ui/form.js +12 -4
  103. package/dist/src/shadcn/components/ui/form.js.map +1 -1
  104. package/dist/src/shadcn/components/ui/input-otp.d.ts.map +1 -1
  105. package/dist/src/shadcn/components/ui/input-otp.js +1 -0
  106. package/dist/src/shadcn/components/ui/input-otp.js.map +1 -1
  107. package/dist/src/shadcn/components/ui/input.d.ts.map +1 -1
  108. package/dist/src/shadcn/components/ui/input.js +87 -16
  109. package/dist/src/shadcn/components/ui/input.js.map +1 -1
  110. package/dist/src/shadcn/components/ui/label.d.ts.map +1 -1
  111. package/dist/src/shadcn/components/ui/label.js +8 -1
  112. package/dist/src/shadcn/components/ui/label.js.map +1 -1
  113. package/dist/src/shadcn/components/ui/menubar.d.ts.map +1 -1
  114. package/dist/src/shadcn/components/ui/menubar.js +35 -13
  115. package/dist/src/shadcn/components/ui/menubar.js.map +1 -1
  116. package/dist/src/shadcn/components/ui/pagination.d.ts.map +1 -1
  117. package/dist/src/shadcn/components/ui/pagination.js +6 -6
  118. package/dist/src/shadcn/components/ui/pagination.js.map +1 -1
  119. package/dist/src/shadcn/components/ui/popover.d.ts.map +1 -1
  120. package/dist/src/shadcn/components/ui/popover.js +12 -1
  121. package/dist/src/shadcn/components/ui/popover.js.map +1 -1
  122. package/dist/src/shadcn/components/ui/progress.d.ts.map +1 -1
  123. package/dist/src/shadcn/components/ui/progress.js +6 -2
  124. package/dist/src/shadcn/components/ui/progress.js.map +1 -1
  125. package/dist/src/shadcn/components/ui/radio-group.d.ts.map +1 -1
  126. package/dist/src/shadcn/components/ui/radio-group.js +11 -6
  127. package/dist/src/shadcn/components/ui/radio-group.js.map +1 -1
  128. package/dist/src/shadcn/components/ui/radio-group.stories.d.ts.map +1 -1
  129. package/dist/src/shadcn/components/ui/radio-group.stories.js +57 -34
  130. package/dist/src/shadcn/components/ui/radio-group.stories.js.map +1 -1
  131. package/dist/src/shadcn/components/ui/resizable.d.ts.map +1 -1
  132. package/dist/src/shadcn/components/ui/resizable.js +1 -0
  133. package/dist/src/shadcn/components/ui/resizable.js.map +1 -1
  134. package/dist/src/shadcn/components/ui/scroll-area.d.ts.map +1 -1
  135. package/dist/src/shadcn/components/ui/scroll-area.js +9 -3
  136. package/dist/src/shadcn/components/ui/scroll-area.js.map +1 -1
  137. package/dist/src/shadcn/components/ui/select.d.ts.map +1 -1
  138. package/dist/src/shadcn/components/ui/select.js +49 -14
  139. package/dist/src/shadcn/components/ui/select.js.map +1 -1
  140. package/dist/src/shadcn/components/ui/select.stories.d.ts.map +1 -1
  141. package/dist/src/shadcn/components/ui/select.stories.js +1 -4
  142. package/dist/src/shadcn/components/ui/select.stories.js.map +1 -1
  143. package/dist/src/shadcn/components/ui/separator.d.ts.map +1 -1
  144. package/dist/src/shadcn/components/ui/separator.js +7 -1
  145. package/dist/src/shadcn/components/ui/separator.js.map +1 -1
  146. package/dist/src/shadcn/components/ui/sidebar.d.ts.map +1 -1
  147. package/dist/src/shadcn/components/ui/sidebar.js +20 -6
  148. package/dist/src/shadcn/components/ui/sidebar.js.map +1 -1
  149. package/dist/src/shadcn/components/ui/skeleton.d.ts.map +1 -1
  150. package/dist/src/shadcn/components/ui/skeleton.js +3 -1
  151. package/dist/src/shadcn/components/ui/skeleton.js.map +1 -1
  152. package/dist/src/shadcn/components/ui/slider.d.ts.map +1 -1
  153. package/dist/src/shadcn/components/ui/slider.js +34 -4
  154. package/dist/src/shadcn/components/ui/slider.js.map +1 -1
  155. package/dist/src/shadcn/components/ui/sonner.d.ts +16 -1
  156. package/dist/src/shadcn/components/ui/sonner.d.ts.map +1 -1
  157. package/dist/src/shadcn/components/ui/sonner.js +23 -3
  158. package/dist/src/shadcn/components/ui/sonner.js.map +1 -1
  159. package/dist/src/shadcn/components/ui/sonner.stories.d.ts.map +1 -1
  160. package/dist/src/shadcn/components/ui/sonner.stories.js +19 -11
  161. package/dist/src/shadcn/components/ui/sonner.stories.js.map +1 -1
  162. package/dist/src/shadcn/components/ui/switch.d.ts.map +1 -1
  163. package/dist/src/shadcn/components/ui/switch.js +18 -2
  164. package/dist/src/shadcn/components/ui/switch.js.map +1 -1
  165. package/dist/src/shadcn/components/ui/table.d.ts.map +1 -1
  166. package/dist/src/shadcn/components/ui/table.js +12 -8
  167. package/dist/src/shadcn/components/ui/table.js.map +1 -1
  168. package/dist/src/shadcn/components/ui/tabs.d.ts +21 -3
  169. package/dist/src/shadcn/components/ui/tabs.d.ts.map +1 -1
  170. package/dist/src/shadcn/components/ui/tabs.js +314 -9
  171. package/dist/src/shadcn/components/ui/tabs.js.map +1 -1
  172. package/dist/src/shadcn/components/ui/tabs.stories.d.ts.map +1 -1
  173. package/dist/src/shadcn/components/ui/tabs.stories.js +50 -1
  174. package/dist/src/shadcn/components/ui/tabs.stories.js.map +1 -1
  175. package/dist/src/shadcn/components/ui/textarea.d.ts.map +1 -1
  176. package/dist/src/shadcn/components/ui/textarea.js +15 -1
  177. package/dist/src/shadcn/components/ui/textarea.js.map +1 -1
  178. package/dist/src/shadcn/components/ui/toggle-group.d.ts.map +1 -1
  179. package/dist/src/shadcn/components/ui/toggle-group.js +7 -2
  180. package/dist/src/shadcn/components/ui/toggle-group.js.map +1 -1
  181. package/dist/src/shadcn/components/ui/toggle.d.ts.map +1 -1
  182. package/dist/src/shadcn/components/ui/toggle.js +18 -6
  183. package/dist/src/shadcn/components/ui/toggle.js.map +1 -1
  184. package/dist/src/shadcn/components/ui/tooltip.d.ts.map +1 -1
  185. package/dist/src/shadcn/components/ui/tooltip.js +11 -1
  186. package/dist/src/shadcn/components/ui/tooltip.js.map +1 -1
  187. package/dist/src/shadcn/components/ui/tree.d.ts +20 -0
  188. package/dist/src/shadcn/components/ui/tree.d.ts.map +1 -0
  189. package/dist/src/shadcn/components/ui/tree.js +111 -0
  190. package/dist/src/shadcn/components/ui/tree.js.map +1 -0
  191. package/package.json +9 -2
  192. package/src/components/code-editor/http/grammar/http.grammar +74 -0
  193. package/src/components/code-editor/http/grammar/http.terms.ts +9 -0
  194. package/src/components/code-editor/http/grammar/http.test.ts +110 -0
  195. package/src/components/code-editor/http/grammar/http.ts +21 -0
  196. package/src/components/code-editor/http/index.ts +87 -0
  197. package/src/components/code-editor/index.tsx +182 -21
  198. package/src/components/code-editor.stories.tsx +1 -1
  199. package/src/components/request-line-editor.stories.tsx +17 -27
  200. package/src/components/request-line-editor.tsx +72 -61
  201. package/src/components/tree-view.stories.tsx +260 -0
  202. package/src/components/tree-view.tsx +101 -0
  203. package/src/icons.tsx +45 -0
  204. package/src/index.css +42 -3
  205. package/src/index.tsx +1 -1
  206. package/src/shadcn/components/ui/accordion.tsx +66 -8
  207. package/src/shadcn/components/ui/alert.tsx +53 -15
  208. package/src/shadcn/components/ui/avatar.tsx +17 -6
  209. package/src/shadcn/components/ui/badge.tsx +67 -18
  210. package/src/shadcn/components/ui/breadcrumb.tsx +35 -7
  211. package/src/shadcn/components/ui/button.tsx +118 -57
  212. package/src/shadcn/components/ui/card.tsx +44 -13
  213. package/src/shadcn/components/ui/carousel.tsx +1 -0
  214. package/src/shadcn/components/ui/checkbox.stories.tsx +20 -24
  215. package/src/shadcn/components/ui/checkbox.tsx +45 -4
  216. package/src/shadcn/components/ui/combobox.stories.tsx +19 -0
  217. package/src/shadcn/components/ui/combobox.tsx +142 -0
  218. package/src/shadcn/components/ui/command.stories.tsx +1 -1
  219. package/src/shadcn/components/ui/command.tsx +192 -36
  220. package/src/shadcn/components/ui/dialog.tsx +101 -13
  221. package/src/shadcn/components/ui/drawer.tsx +93 -18
  222. package/src/shadcn/components/ui/dropdown-menu.tsx +38 -9
  223. package/src/shadcn/components/ui/form.tsx +16 -4
  224. package/src/shadcn/components/ui/input-otp.tsx +1 -0
  225. package/src/shadcn/components/ui/input.tsx +281 -29
  226. package/src/shadcn/components/ui/label.tsx +21 -4
  227. package/src/shadcn/components/ui/menubar.tsx +188 -43
  228. package/src/shadcn/components/ui/pagination.tsx +12 -6
  229. package/src/shadcn/components/ui/popover.tsx +35 -4
  230. package/src/shadcn/components/ui/progress.tsx +21 -5
  231. package/src/shadcn/components/ui/radio-group.stories.tsx +22 -14
  232. package/src/shadcn/components/ui/radio-group.tsx +42 -5
  233. package/src/shadcn/components/ui/resizable.tsx +1 -0
  234. package/src/shadcn/components/ui/scroll-area.tsx +33 -5
  235. package/src/shadcn/components/ui/select.stories.tsx +0 -2
  236. package/src/shadcn/components/ui/select.tsx +184 -33
  237. package/src/shadcn/components/ui/separator.tsx +15 -5
  238. package/src/shadcn/components/ui/sidebar.tsx +68 -26
  239. package/src/shadcn/components/ui/skeleton.tsx +4 -1
  240. package/src/shadcn/components/ui/slider.tsx +82 -11
  241. package/src/shadcn/components/ui/sonner.stories.tsx +19 -15
  242. package/src/shadcn/components/ui/sonner.tsx +53 -3
  243. package/src/shadcn/components/ui/switch.tsx +53 -7
  244. package/src/shadcn/components/ui/table.tsx +38 -11
  245. package/src/shadcn/components/ui/tabs.stories.tsx +32 -0
  246. package/src/shadcn/components/ui/tabs.tsx +455 -17
  247. package/src/shadcn/components/ui/textarea.tsx +42 -4
  248. package/src/shadcn/components/ui/toggle-group.tsx +28 -5
  249. package/src/shadcn/components/ui/toggle.tsx +59 -18
  250. package/src/shadcn/components/ui/tooltip.tsx +33 -8
  251. package/src/shadcn/components/ui/tree.tsx +200 -0
@@ -2,12 +2,18 @@
2
2
  import { jsx as _jsx } from "react/jsx-runtime";
3
3
  import * as SeparatorPrimitive from "@radix-ui/react-separator";
4
4
  import { cn } from "../../lib/utils.js";
5
+ // Separator styles
6
+ const separatorStyles = cn(// Background
7
+ "bg-border-separator", // Layout
8
+ "shrink-0", // Horizontal orientation
9
+ "data-[orientation=horizontal]:h-px", "data-[orientation=horizontal]:w-full", // Vertical orientation
10
+ "data-[orientation=vertical]:h-full", "data-[orientation=vertical]:w-px");
5
11
  function Separator({ className, orientation = "horizontal", decorative = true, ...props }) {
6
12
  return /*#__PURE__*/ _jsx(SeparatorPrimitive.Root, {
7
13
  "data-slot": "separator",
8
14
  decorative: decorative,
9
15
  orientation: orientation,
10
- className: cn("bg-bg-quaternary shrink-0 data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full", "data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px", className),
16
+ className: cn(separatorStyles, className),
11
17
  ...props
12
18
  });
13
19
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/shadcn/components/ui/separator.tsx"],"sourcesContent":["\"use client\";\nimport * as SeparatorPrimitive from \"@radix-ui/react-separator\";\nimport type * as React from \"react\";\n\nimport { cn } from \"#shadcn/lib/utils\";\n\nfunction Separator({\n\tclassName,\n\torientation = \"horizontal\",\n\tdecorative = true,\n\t...props\n}: React.ComponentProps<typeof SeparatorPrimitive.Root>) {\n\treturn (\n\t\t<SeparatorPrimitive.Root\n\t\t\tdata-slot=\"separator\"\n\t\t\tdecorative={decorative}\n\t\t\torientation={orientation}\n\t\t\tclassName={cn(\n\t\t\t\t\"bg-bg-quaternary shrink-0 data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full\",\n\t\t\t\t\"data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nexport { Separator };\n"],"names":["SeparatorPrimitive","cn","Separator","className","orientation","decorative","props","Root","data-slot"],"mappings":"AAAA;;AACA,YAAYA,wBAAwB,4BAA4B;AAGhE,SAASC,EAAE,QAAQ,qBAAoB;AAEvC,SAASC,UAAU,EAClBC,SAAS,EACTC,cAAc,YAAY,EAC1BC,aAAa,IAAI,EACjB,GAAGC,OACmD;IACtD,qBACC,KAACN,mBAAmBO,IAAI;QACvBC,aAAU;QACVH,YAAYA;QACZD,aAAaA;QACbD,WAAWF,GACV,qGACA,uEACAE;QAEA,GAAGG,KAAK;;AAGZ;AAEA,SAASJ,SAAS,GAAG"}
1
+ {"version":3,"sources":["../../../../../src/shadcn/components/ui/separator.tsx"],"sourcesContent":["\"use client\";\nimport * as SeparatorPrimitive from \"@radix-ui/react-separator\";\nimport type * as React from \"react\";\n\nimport { cn } from \"#shadcn/lib/utils\";\n\n// Separator styles\nconst separatorStyles = cn(\n\t// Background\n\t\"bg-border-separator\",\n\t// Layout\n\t\"shrink-0\",\n\t// Horizontal orientation\n\t\"data-[orientation=horizontal]:h-px\",\n\t\"data-[orientation=horizontal]:w-full\",\n\t// Vertical orientation\n\t\"data-[orientation=vertical]:h-full\",\n\t\"data-[orientation=vertical]:w-px\",\n);\n\nfunction Separator({\n\tclassName,\n\torientation = \"horizontal\",\n\tdecorative = true,\n\t...props\n}: React.ComponentProps<typeof SeparatorPrimitive.Root>) {\n\treturn (\n\t\t<SeparatorPrimitive.Root\n\t\t\tdata-slot=\"separator\"\n\t\t\tdecorative={decorative}\n\t\t\torientation={orientation}\n\t\t\tclassName={cn(separatorStyles, className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nexport { Separator };\n"],"names":["SeparatorPrimitive","cn","separatorStyles","Separator","className","orientation","decorative","props","Root","data-slot"],"mappings":"AAAA;;AACA,YAAYA,wBAAwB,4BAA4B;AAGhE,SAASC,EAAE,QAAQ,qBAAoB;AAEvC,mBAAmB;AACnB,MAAMC,kBAAkBD,GACvB,aAAa;AACb,uBACA,SAAS;AACT,YACA,yBAAyB;AACzB,sCACA,wCACA,uBAAuB;AACvB,sCACA;AAGD,SAASE,UAAU,EAClBC,SAAS,EACTC,cAAc,YAAY,EAC1BC,aAAa,IAAI,EACjB,GAAGC,OACmD;IACtD,qBACC,KAACP,mBAAmBQ,IAAI;QACvBC,aAAU;QACVH,YAAYA;QACZD,aAAaA;QACbD,WAAWH,GAAGC,iBAAiBE;QAC9B,GAAGG,KAAK;;AAGZ;AAEA,SAASJ,SAAS,GAAG"}
@@ -1 +1 @@
1
- {"version":3,"file":"sidebar.d.ts","sourceRoot":"","sources":["../../../../../src/shadcn/components/ui/sidebar.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sidebar.d.ts","sourceRoot":"","sources":["../../../../../src/shadcn/components/ui/sidebar.tsx"],"names":[],"mappings":"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"}
@@ -312,16 +312,30 @@ function SidebarMenuItem({ className, ...props }) {
312
312
  ...props
313
313
  });
314
314
  }
315
- const sidebarMenuButtonVariants = cva(cn("typo-body text-text-secondary flex items-center gap-2 overflow-hidden rounded-lg py-2 px-[0.44rem] outline-hidden ", "ring-sidebar-ring transition-all focus-visible:ring-2 active:bg-bg-quaternary 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-bg-brand-secondary data-[active=true]:text-text-primary data-[state=open]:hover:bg-sidebar-accent", "data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:py-2! group-data-[collapsible=icon]:px-[0.44rem]!", "[&>span:last-child]:truncate [&>svg]:size-5 [&>svg]:shrink-0 hover:bg-bg-secondary hover:text-text-primary", "data-[active=true]:[&>svg]:text-text-brand-primary w-full"), {
315
+ // Base sidebar menu button styles
316
+ const baseSidebarMenuButtonStyles = cn(// Layout
317
+ "flex", "items-center", "gap-2", "w-full", "overflow-hidden", // Shape
318
+ "rounded-lg", // Spacing
319
+ "py-2", "px-[0.44rem]", // Typography
320
+ "typo-body", "text-text-secondary", // Interaction
321
+ "outline-hidden", "transition-all", "cursor-pointer", // Focus
322
+ "focus-visible:ring-2", "focus-visible:ring-utility-blue/70", // Hover
323
+ "hover:bg-bg-secondary", "hover:text-text-primary", // Active
324
+ "active:bg-bg-quaternary", "data-[active=true]:bg-bg-brand-secondary", "data-[active=true]:text-text-primary", "data-[active=true]:[&>svg]:text-text-brand-primary", // Open state
325
+ "data-[state=open]:hover:bg-bg-secondary", "data-[state=open]:hover:text-text-primary", // Disabled
326
+ "disabled:pointer-events-none", "disabled:opacity-50", "aria-disabled:pointer-events-none", "aria-disabled:opacity-50", // Group styles
327
+ "group-has-data-[sidebar=menu-action]/menu-item:pr-8", "group-data-[collapsible=icon]:py-2!", "group-data-[collapsible=icon]:px-[0.44rem]!", // Content styles
328
+ "[&>span:last-child]:truncate", "[&>svg]:size-5", "[&>svg]:shrink-0");
329
+ const sidebarMenuButtonVariants = cva(baseSidebarMenuButtonStyles, {
316
330
  variants: {
317
331
  variant: {
318
- default: "",
319
- outline: "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))]"
332
+ default: cn(""),
333
+ outline: cn("shadow-[0_0_0_1px_hsl(var(--sidebar-border))]", "hover:bg-bg-secondary", "hover:text-text-primary", "hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]")
320
334
  },
321
335
  size: {
322
- default: "",
323
- sm: "",
324
- lg: "h-12 text-sm group-data-[collapsible=icon]:p-0!"
336
+ default: cn(""),
337
+ sm: cn(""),
338
+ lg: cn("h-12", "text-sm", "group-data-[collapsible=icon]:p-0!")
325
339
  }
326
340
  },
327
341
  defaultVariants: {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/shadcn/components/ui/sidebar.tsx"],"sourcesContent":["\"use client\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { PanelLeftIcon } from \"lucide-react\";\nimport * as React from \"react\";\nimport { Button } from \"#shadcn/components/ui/button\";\nimport { Input } from \"#shadcn/components/ui/input\";\nimport { Separator } from \"#shadcn/components/ui/separator\";\nimport {\n\tSheet,\n\tSheetContent,\n\tSheetDescription,\n\tSheetHeader,\n\tSheetTitle,\n} from \"#shadcn/components/ui/sheet\";\nimport { Skeleton } from \"#shadcn/components/ui/skeleton\";\nimport {\n\tTooltip,\n\tTooltipContent,\n\tTooltipProvider,\n\tTooltipTrigger,\n} from \"#shadcn/components/ui/tooltip\";\nimport { useIsMobile } from \"#shadcn/hooks/use-mobile\";\nimport { cn } from \"#shadcn/lib/utils\";\n\nconst SIDEBAR_COOKIE_NAME = \"sidebar_state\";\nconst SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;\nconst SIDEBAR_WIDTH = \"13.75rem\";\nconst SIDEBAR_WIDTH_MOBILE = \"18rem\";\nconst SIDEBAR_WIDTH_ICON = \"3.125rem\";\nconst SIDEBAR_KEYBOARD_SHORTCUT = \"b\";\n\ntype SidebarContextProps = {\n\tstate: \"expanded\" | \"collapsed\";\n\topen: boolean;\n\tsetOpen: (open: boolean) => void;\n\topenMobile: boolean;\n\tsetOpenMobile: (open: boolean) => void;\n\tisMobile: boolean;\n\ttoggleSidebar: () => void;\n};\n\nconst SidebarContext = React.createContext<SidebarContextProps | null>(null);\n\nfunction useSidebar() {\n\tconst context = React.useContext(SidebarContext);\n\tif (!context) {\n\t\tthrow new Error(\"useSidebar must be used within a SidebarProvider.\");\n\t}\n\n\treturn context;\n}\n\nfunction SidebarProvider({\n\tdefaultOpen = true,\n\topen: openProp,\n\tonOpenChange: setOpenProp,\n\tclassName,\n\tstyle,\n\tchildren,\n\t...props\n}: React.ComponentProps<\"div\"> & {\n\tdefaultOpen?: boolean;\n\topen?: boolean;\n\tonOpenChange?: (open: boolean) => void;\n}) {\n\tconst isMobile = useIsMobile();\n\tconst [openMobile, setOpenMobile] = React.useState(false);\n\n\t// This is the internal state of the sidebar.\n\t// We use openProp and setOpenProp for control from outside the component.\n\tconst [_open, _setOpen] = React.useState(defaultOpen);\n\tconst open = openProp ?? _open;\n\tconst setOpen = React.useCallback(\n\t\t(value: boolean | ((value: boolean) => boolean)) => {\n\t\t\tconst openState = typeof value === \"function\" ? value(open) : value;\n\t\t\tif (setOpenProp) {\n\t\t\t\tsetOpenProp(openState);\n\t\t\t} else {\n\t\t\t\t_setOpen(openState);\n\t\t\t}\n\n\t\t\t// This sets the cookie to keep the sidebar state.\n\t\t\t// biome-ignore lint/suspicious/noDocumentCookie: FIXME: unchanged shadcn\n\t\t\tdocument.cookie = `${SIDEBAR_COOKIE_NAME}=${openState}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`;\n\t\t},\n\t\t[setOpenProp, open],\n\t);\n\n\t// Helper to toggle the sidebar.\n\t// biome-ignore lint/correctness/useExhaustiveDependencies: FIXME: unchanged shadcn\n\tconst toggleSidebar = React.useCallback(() => {\n\t\treturn isMobile ? setOpenMobile((open) => !open) : setOpen((open) => !open);\n\t}, [isMobile, setOpen, setOpenMobile]);\n\n\t// Adds a keyboard shortcut to toggle the sidebar.\n\tReact.useEffect(() => {\n\t\tconst handleKeyDown = (event: KeyboardEvent) => {\n\t\t\tif (\n\t\t\t\tevent.key === SIDEBAR_KEYBOARD_SHORTCUT &&\n\t\t\t\t(event.metaKey || event.ctrlKey)\n\t\t\t) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\ttoggleSidebar();\n\t\t\t}\n\t\t};\n\n\t\twindow.addEventListener(\"keydown\", handleKeyDown);\n\t\treturn () => window.removeEventListener(\"keydown\", handleKeyDown);\n\t}, [toggleSidebar]);\n\n\t// We add a state so that we can do data-state=\"expanded\" or \"collapsed\".\n\t// This makes it easier to style the sidebar with Tailwind classes.\n\tconst state = open ? \"expanded\" : \"collapsed\";\n\n\t// biome-ignore lint/correctness/useExhaustiveDependencies: FIXME: unchanged shadcn\n\tconst contextValue = React.useMemo<SidebarContextProps>(\n\t\t() => ({\n\t\t\tstate,\n\t\t\topen,\n\t\t\tsetOpen,\n\t\t\tisMobile,\n\t\t\topenMobile,\n\t\t\tsetOpenMobile,\n\t\t\ttoggleSidebar,\n\t\t}),\n\t\t[state, open, setOpen, isMobile, openMobile, setOpenMobile, toggleSidebar],\n\t);\n\n\treturn (\n\t\t<SidebarContext.Provider value={contextValue}>\n\t\t\t<TooltipProvider delayDuration={0}>\n\t\t\t\t<div\n\t\t\t\t\tdata-slot=\"sidebar-wrapper\"\n\t\t\t\t\tstyle={\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"--sidebar-width\": SIDEBAR_WIDTH,\n\t\t\t\t\t\t\t\"--sidebar-width-icon\": SIDEBAR_WIDTH_ICON,\n\t\t\t\t\t\t\t...style,\n\t\t\t\t\t\t} as React.CSSProperties\n\t\t\t\t\t}\n\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\"group/sidebar-wrapper has-data-[variant=inset]:bg-sidebar flex min-h-svh w-full box-content\",\n\t\t\t\t\t\tclassName,\n\t\t\t\t\t)}\n\t\t\t\t\t{...props}\n\t\t\t\t>\n\t\t\t\t\t{children}\n\t\t\t\t</div>\n\t\t\t</TooltipProvider>\n\t\t</SidebarContext.Provider>\n\t);\n}\n\nfunction Sidebar({\n\tside = \"left\",\n\tvariant = \"sidebar\",\n\tcollapsible = \"offcanvas\",\n\tclassName,\n\tchildren,\n\t...props\n}: React.ComponentProps<\"div\"> & {\n\tside?: \"left\" | \"right\";\n\tvariant?: \"sidebar\" | \"floating\" | \"inset\";\n\tcollapsible?: \"offcanvas\" | \"icon\" | \"none\";\n}) {\n\tconst { isMobile, state, openMobile, setOpenMobile } = useSidebar();\n\n\tif (collapsible === \"none\") {\n\t\treturn (\n\t\t\t<div\n\t\t\t\tdata-slot=\"sidebar\"\n\t\t\t\tclassName={cn(\n\t\t\t\t\t\"bg-sidebar text-sidebar-foreground flex h-full w-(--sidebar-width) flex-col\",\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</div>\n\t\t);\n\t}\n\n\tif (isMobile) {\n\t\treturn (\n\t\t\t<Sheet open={openMobile} onOpenChange={setOpenMobile} {...props}>\n\t\t\t\t<SheetContent\n\t\t\t\t\tdata-sidebar=\"sidebar\"\n\t\t\t\t\tdata-slot=\"sidebar\"\n\t\t\t\t\tdata-mobile=\"true\"\n\t\t\t\t\tclassName=\"bg-sidebar text-sidebar-foreground w-(--sidebar-width) p-0 [&>button]:hidden\"\n\t\t\t\t\tstyle={\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"--sidebar-width\": SIDEBAR_WIDTH_MOBILE,\n\t\t\t\t\t\t} as React.CSSProperties\n\t\t\t\t\t}\n\t\t\t\t\tside={side}\n\t\t\t\t>\n\t\t\t\t\t<SheetHeader className=\"sr-only\">\n\t\t\t\t\t\t<SheetTitle>Sidebar</SheetTitle>\n\t\t\t\t\t\t<SheetDescription>Displays the mobile sidebar.</SheetDescription>\n\t\t\t\t\t</SheetHeader>\n\t\t\t\t\t<div className=\"flex h-full w-full flex-col\">{children}</div>\n\t\t\t\t</SheetContent>\n\t\t\t</Sheet>\n\t\t);\n\t}\n\n\treturn (\n\t\t<div\n\t\t\tclassName=\"group peer text-sidebar-foreground hidden md:block\"\n\t\t\tdata-state={state}\n\t\t\tdata-collapsible={state === \"collapsed\" ? collapsible : \"\"}\n\t\t\tdata-variant={variant}\n\t\t\tdata-side={side}\n\t\t\tdata-slot=\"sidebar\"\n\t\t>\n\t\t\t{/* This is what handles the sidebar gap on desktop */}\n\t\t\t<div\n\t\t\t\tdata-slot=\"sidebar-gap\"\n\t\t\t\tclassName={cn(\n\t\t\t\t\t\"relative w-(--sidebar-width) bg-transparent transition-[width] duration-120 ease-linear\",\n\t\t\t\t\t\"group-data-[collapsible=offcanvas]:w-0\",\n\t\t\t\t\t\"group-data-[side=right]:rotate-180\",\n\t\t\t\t\tvariant === \"floating\" || variant === \"inset\"\n\t\t\t\t\t\t? \"group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]\"\n\t\t\t\t\t\t: \"group-data-[collapsible=icon]:w-(--sidebar-width-icon)\",\n\t\t\t\t)}\n\t\t\t/>\n\t\t\t<div\n\t\t\t\tdata-slot=\"sidebar-container\"\n\t\t\t\tclassName={cn(\n\t\t\t\t\t\"fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] duration-120 ease-linear md:flex box-content\",\n\t\t\t\t\tside === \"left\"\n\t\t\t\t\t\t? \"left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]\"\n\t\t\t\t\t\t: \"right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]\",\n\t\t\t\t\t// Adjust the padding for floating and inset variants.\n\t\t\t\t\tvariant === \"floating\" || variant === \"inset\"\n\t\t\t\t\t\t? \"p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]\"\n\t\t\t\t\t\t: \"group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l\",\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t<div\n\t\t\t\t\tdata-sidebar=\"sidebar\"\n\t\t\t\t\tdata-slot=\"sidebar-inner\"\n\t\t\t\t\tclassName=\"bg-bg-primary 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\"\n\t\t\t\t>\n\t\t\t\t\t{children}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n\nfunction SidebarTrigger({\n\tclassName,\n\tonClick,\n\t...props\n}: React.ComponentProps<typeof Button>) {\n\tconst { toggleSidebar } = useSidebar();\n\n\treturn (\n\t\t<Button\n\t\t\tdata-sidebar=\"trigger\"\n\t\t\tdata-slot=\"sidebar-trigger\"\n\t\t\tvariant=\"ghost\"\n\t\t\tsize=\"small\"\n\t\t\tclassName={cn(\"size-7\", className)}\n\t\t\tonClick={(event) => {\n\t\t\t\tonClick?.(event);\n\t\t\t\ttoggleSidebar();\n\t\t\t}}\n\t\t\t{...props}\n\t\t>\n\t\t\t<PanelLeftIcon />\n\t\t\t<span className=\"sr-only\">Toggle Sidebar</span>\n\t\t</Button>\n\t);\n}\n\nfunction SidebarRail({ className, ...props }: React.ComponentProps<\"button\">) {\n\tconst { toggleSidebar } = useSidebar();\n\n\treturn (\n\t\t<button\n\t\t\tdata-sidebar=\"rail\"\n\t\t\tdata-slot=\"sidebar-rail\"\n\t\t\taria-label=\"Toggle Sidebar\"\n\t\t\ttabIndex={-1}\n\t\t\tonClick={toggleSidebar}\n\t\t\ttitle=\"Toggle Sidebar\"\n\t\t\tclassName={cn(\n\t\t\t\t\"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\",\n\t\t\t\t\"in-data-[side=left]:cursor-w-resize in-data-[side=right]:cursor-e-resize\",\n\t\t\t\t\"[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize\",\n\t\t\t\t\"hover:group-data-[collapsible=offcanvas]:bg-sidebar group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full\",\n\t\t\t\t\"[[data-side=left][data-collapsible=offcanvas]_&]:-right-2\",\n\t\t\t\t\"[[data-side=right][data-collapsible=offcanvas]_&]:-left-2\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SidebarInset({ className, ...props }: React.ComponentProps<\"main\">) {\n\treturn (\n\t\t<main\n\t\t\tdata-slot=\"sidebar-inset\"\n\t\t\tclassName={cn(\n\t\t\t\t\"bg-background relative flex w-full flex-1 flex-col\",\n\t\t\t\t\"md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl\",\n\t\t\t\t\"md:peer-data-[variant=inset]:shadow-sm md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-2\",\n\t\t\t\t\"peer-has-data-[sidebar-mode=hover]:fixed peer-has-data-[sidebar-mode=hover]:h-full peer-has-data-[sidebar-mode=hover]:grow\",\n\t\t\t\t\"peer-has-data-[sidebar-mode=hover]:left-(--sidebar-width-icon)\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SidebarInput({\n\tclassName,\n\t...props\n}: React.ComponentProps<typeof Input>) {\n\treturn (\n\t\t<Input\n\t\t\tdata-slot=\"sidebar-input\"\n\t\t\tdata-sidebar=\"input\"\n\t\t\tclassName={cn(\"bg-background h-8 w-full shadow-none\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SidebarHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n\treturn (\n\t\t<div\n\t\t\tdata-slot=\"sidebar-header\"\n\t\t\tdata-sidebar=\"header\"\n\t\t\tclassName={cn(\"flex flex-col gap-2 p-2\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SidebarFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n\treturn (\n\t\t<div\n\t\t\tdata-slot=\"sidebar-footer\"\n\t\t\tdata-sidebar=\"footer\"\n\t\t\tclassName={cn(\"flex flex-col gap-2 p-2 pb-3\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SidebarSeparator({\n\tclassName,\n\t...props\n}: React.ComponentProps<typeof Separator>) {\n\treturn (\n\t\t<Separator\n\t\t\tdata-slot=\"sidebar-separator\"\n\t\t\tdata-sidebar=\"separator\"\n\t\t\tclassName={cn(\"border-border-secondary w-auto\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SidebarContent({ className, ...props }: React.ComponentProps<\"div\">) {\n\treturn (\n\t\t<div\n\t\t\tdata-slot=\"sidebar-content\"\n\t\t\tdata-sidebar=\"content\"\n\t\t\tclassName={cn(\n\t\t\t\t\"flex min-h-0 flex-1 flex-col gap-1 p-2 pt-3 overflow-auto group-data-[collapsible=icon]:overflow-hidden\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SidebarGroup({ className, ...props }: React.ComponentProps<\"div\">) {\n\treturn (\n\t\t<div\n\t\t\tdata-slot=\"sidebar-group\"\n\t\t\tdata-sidebar=\"group\"\n\t\t\tclassName={cn(\"relative flex w-full min-w-0 flex-col\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SidebarGroupLabel({\n\tclassName,\n\tasChild = false,\n\t...props\n}: React.ComponentProps<\"div\"> & { asChild?: boolean }) {\n\tconst Comp = asChild ? Slot : \"div\";\n\n\treturn (\n\t\t<Comp\n\t\t\tdata-slot=\"sidebar-group-label\"\n\t\t\tdata-sidebar=\"group-label\"\n\t\t\tclassName={cn(\n\t\t\t\t\"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\",\n\t\t\t\t\"group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SidebarGroupAction({\n\tclassName,\n\tasChild = false,\n\t...props\n}: React.ComponentProps<\"button\"> & { asChild?: boolean }) {\n\tconst Comp = asChild ? Slot : \"button\";\n\n\treturn (\n\t\t<Comp\n\t\t\tdata-slot=\"sidebar-group-action\"\n\t\t\tdata-sidebar=\"group-action\"\n\t\t\tclassName={cn(\n\t\t\t\t\"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\",\n\t\t\t\t// Increases the hit area of the button on mobile.\n\t\t\t\t\"after:absolute after:-inset-2 md:after:hidden\",\n\t\t\t\t\"group-data-[collapsible=icon]:hidden\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SidebarGroupContent({\n\tclassName,\n\t...props\n}: React.ComponentProps<\"div\">) {\n\treturn (\n\t\t<div\n\t\t\tdata-slot=\"sidebar-group-content\"\n\t\t\tdata-sidebar=\"group-content\"\n\t\t\tclassName={cn(\"w-full text-sm\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SidebarMenu({ className, ...props }: React.ComponentProps<\"ul\">) {\n\treturn (\n\t\t<ul\n\t\t\tdata-slot=\"sidebar-menu\"\n\t\t\tdata-sidebar=\"menu\"\n\t\t\tclassName={cn(\"flex w-full min-w-0 flex-col gap-0.5\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SidebarMenuItem({ className, ...props }: React.ComponentProps<\"li\">) {\n\treturn (\n\t\t<li\n\t\t\tdata-slot=\"sidebar-menu-item\"\n\t\t\tdata-sidebar=\"menu-item\"\n\t\t\tclassName={cn(\"group/menu-item relative\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nconst sidebarMenuButtonVariants = cva(\n\tcn(\n\t\t\"typo-body text-text-secondary flex items-center gap-2 overflow-hidden rounded-lg py-2 px-[0.44rem] outline-hidden \",\n\t\t\"ring-sidebar-ring transition-all focus-visible:ring-2 active:bg-bg-quaternary disabled:pointer-events-none\",\n\t\t\"disabled:opacity-50 group-has-data-[sidebar=menu-action]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50\",\n\t\t\"data-[active=true]:bg-bg-brand-secondary data-[active=true]:text-text-primary data-[state=open]:hover:bg-sidebar-accent\",\n\t\t\"data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:py-2! group-data-[collapsible=icon]:px-[0.44rem]!\",\n\t\t\"[&>span:last-child]:truncate [&>svg]:size-5 [&>svg]:shrink-0 hover:bg-bg-secondary hover:text-text-primary\",\n\t\t\"data-[active=true]:[&>svg]:text-text-brand-primary w-full\",\n\t),\n\t{\n\t\tvariants: {\n\t\t\tvariant: {\n\t\t\t\tdefault: \"\",\n\t\t\t\toutline:\n\t\t\t\t\t\"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))]\",\n\t\t\t},\n\t\t\tsize: {\n\t\t\t\tdefault: \"\",\n\t\t\t\tsm: \"\",\n\t\t\t\tlg: \"h-12 text-sm group-data-[collapsible=icon]:p-0!\",\n\t\t\t},\n\t\t},\n\t\tdefaultVariants: {\n\t\t\tvariant: \"default\",\n\t\t\tsize: \"default\",\n\t\t},\n\t},\n);\n\nfunction SidebarMenuButton({\n\tasChild = false,\n\tisActive = false,\n\tvariant = \"default\",\n\tsize = \"default\",\n\ttooltip,\n\tclassName,\n\t...props\n}: React.ComponentProps<\"button\"> & {\n\tasChild?: boolean;\n\tisActive?: boolean;\n\ttooltip?: string | React.ComponentProps<typeof TooltipContent>;\n} & VariantProps<typeof sidebarMenuButtonVariants>) {\n\tconst Comp = asChild ? Slot : \"button\";\n\tconst { isMobile, state } = useSidebar();\n\n\tconst button = (\n\t\t<Comp\n\t\t\tdata-slot=\"sidebar-menu-button\"\n\t\t\tdata-sidebar=\"menu-button\"\n\t\t\tdata-size={size}\n\t\t\tdata-active={isActive}\n\t\t\tclassName={cn(sidebarMenuButtonVariants({ variant, size }), className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n\n\tif (!tooltip) {\n\t\treturn button;\n\t}\n\n\tif (typeof tooltip === \"string\") {\n\t\ttooltip = {\n\t\t\tchildren: tooltip,\n\t\t};\n\t}\n\n\treturn (\n\t\t<Tooltip>\n\t\t\t<TooltipTrigger asChild>{button}</TooltipTrigger>\n\t\t\t<TooltipContent\n\t\t\t\tside=\"right\"\n\t\t\t\talign=\"center\"\n\t\t\t\thidden={state !== \"collapsed\" || isMobile}\n\t\t\t\t{...tooltip}\n\t\t\t/>\n\t\t</Tooltip>\n\t);\n}\n\nfunction SidebarMenuAction({\n\tclassName,\n\tasChild = false,\n\tshowOnHover = false,\n\t...props\n}: React.ComponentProps<\"button\"> & {\n\tasChild?: boolean;\n\tshowOnHover?: boolean;\n}) {\n\tconst Comp = asChild ? Slot : \"button\";\n\n\treturn (\n\t\t<Comp\n\t\t\tdata-slot=\"sidebar-menu-action\"\n\t\t\tdata-sidebar=\"menu-action\"\n\t\t\tclassName={cn(\n\t\t\t\t\"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\",\n\t\t\t\t// Increases the hit area of the button on mobile.\n\t\t\t\t\"after:absolute after:-inset-2 md:after:hidden\",\n\t\t\t\t\"peer-data-[size=sm]/menu-button:top-1\",\n\t\t\t\t\"peer-data-[size=default]/menu-button:top-1.5\",\n\t\t\t\t\"peer-data-[size=lg]/menu-button:top-2.5\",\n\t\t\t\t\"group-data-[collapsible=icon]:hidden\",\n\t\t\t\tshowOnHover &&\n\t\t\t\t\t\"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\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SidebarMenuBadge({\n\tclassName,\n\t...props\n}: React.ComponentProps<\"div\">) {\n\treturn (\n\t\t<div\n\t\t\tdata-slot=\"sidebar-menu-badge\"\n\t\t\tdata-sidebar=\"menu-badge\"\n\t\t\tclassName={cn(\n\t\t\t\t\"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\",\n\t\t\t\t\"peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[active=true]/menu-button:text-sidebar-accent-foreground\",\n\t\t\t\t\"peer-data-[size=sm]/menu-button:top-1\",\n\t\t\t\t\"peer-data-[size=default]/menu-button:top-1.5\",\n\t\t\t\t\"peer-data-[size=lg]/menu-button:top-2.5\",\n\t\t\t\t\"group-data-[collapsible=icon]:hidden\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SidebarMenuSkeleton({\n\tclassName,\n\tshowIcon = false,\n\t...props\n}: React.ComponentProps<\"div\"> & {\n\tshowIcon?: boolean;\n}) {\n\t// Random width between 50 to 90%.\n\tconst width = React.useMemo(() => {\n\t\treturn `${Math.floor(Math.random() * 40) + 50}%`;\n\t}, []);\n\n\treturn (\n\t\t<div\n\t\t\tdata-slot=\"sidebar-menu-skeleton\"\n\t\t\tdata-sidebar=\"menu-skeleton\"\n\t\t\tclassName={cn(\"flex h-8 items-center gap-2 rounded-md px-2\", className)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{showIcon && (\n\t\t\t\t<Skeleton\n\t\t\t\t\tclassName=\"size-4 rounded-md\"\n\t\t\t\t\tdata-sidebar=\"menu-skeleton-icon\"\n\t\t\t\t/>\n\t\t\t)}\n\t\t\t<Skeleton\n\t\t\t\tclassName=\"h-4 max-w-(--skeleton-width) flex-1\"\n\t\t\t\tdata-sidebar=\"menu-skeleton-text\"\n\t\t\t\tstyle={\n\t\t\t\t\t{\n\t\t\t\t\t\t\"--skeleton-width\": width,\n\t\t\t\t\t} as React.CSSProperties\n\t\t\t\t}\n\t\t\t/>\n\t\t</div>\n\t);\n}\n\nfunction SidebarMenuSub({ className, ...props }: React.ComponentProps<\"ul\">) {\n\treturn (\n\t\t<ul\n\t\t\tdata-slot=\"sidebar-menu-sub\"\n\t\t\tdata-sidebar=\"menu-sub\"\n\t\t\tclassName={cn(\n\t\t\t\t\"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\",\n\t\t\t\t\"group-data-[collapsible=icon]:hidden\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SidebarMenuSubItem({\n\tclassName,\n\t...props\n}: React.ComponentProps<\"li\">) {\n\treturn (\n\t\t<li\n\t\t\tdata-slot=\"sidebar-menu-sub-item\"\n\t\t\tdata-sidebar=\"menu-sub-item\"\n\t\t\tclassName={cn(\"group/menu-sub-item relative\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SidebarMenuSubButton({\n\tasChild = false,\n\tsize = \"md\",\n\tisActive = false,\n\tclassName,\n\t...props\n}: React.ComponentProps<\"a\"> & {\n\tasChild?: boolean;\n\tsize?: \"sm\" | \"md\";\n\tisActive?: boolean;\n}) {\n\tconst Comp = asChild ? Slot : \"a\";\n\n\treturn (\n\t\t<Comp\n\t\t\tdata-slot=\"sidebar-menu-sub-button\"\n\t\t\tdata-sidebar=\"menu-sub-button\"\n\t\t\tdata-size={size}\n\t\t\tdata-active={isActive}\n\t\t\tclassName={cn(\n\t\t\t\t\"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\",\n\t\t\t\t\"data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground\",\n\t\t\t\tsize === \"sm\" && \"text-xs\",\n\t\t\t\tsize === \"md\" && \"text-sm\",\n\t\t\t\t\"group-data-[collapsible=icon]:hidden\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nexport {\n\tSidebar,\n\tSidebarContent,\n\tSidebarFooter,\n\tSidebarGroup,\n\tSidebarGroupAction,\n\tSidebarGroupContent,\n\tSidebarGroupLabel,\n\tSidebarHeader,\n\tSidebarInput,\n\tSidebarInset,\n\tSidebarMenu,\n\tSidebarMenuAction,\n\tSidebarMenuBadge,\n\tSidebarMenuButton,\n\tSidebarMenuItem,\n\tSidebarMenuSkeleton,\n\tSidebarMenuSub,\n\tSidebarMenuSubButton,\n\tSidebarMenuSubItem,\n\tSidebarProvider,\n\tSidebarRail,\n\tSidebarSeparator,\n\tSidebarTrigger,\n\tuseSidebar,\n};\n"],"names":["Slot","cva","PanelLeftIcon","React","Button","Input","Separator","Sheet","SheetContent","SheetDescription","SheetHeader","SheetTitle","Skeleton","Tooltip","TooltipContent","TooltipProvider","TooltipTrigger","useIsMobile","cn","SIDEBAR_COOKIE_NAME","SIDEBAR_COOKIE_MAX_AGE","SIDEBAR_WIDTH","SIDEBAR_WIDTH_MOBILE","SIDEBAR_WIDTH_ICON","SIDEBAR_KEYBOARD_SHORTCUT","SidebarContext","createContext","useSidebar","context","useContext","Error","SidebarProvider","defaultOpen","open","openProp","onOpenChange","setOpenProp","className","style","children","props","isMobile","openMobile","setOpenMobile","useState","_open","_setOpen","setOpen","useCallback","value","openState","document","cookie","toggleSidebar","useEffect","handleKeyDown","event","key","metaKey","ctrlKey","preventDefault","window","addEventListener","removeEventListener","state","contextValue","useMemo","Provider","delayDuration","div","data-slot","Sidebar","side","variant","collapsible","data-sidebar","data-mobile","data-state","data-collapsible","data-variant","data-side","SidebarTrigger","onClick","size","span","SidebarRail","button","aria-label","tabIndex","title","SidebarInset","main","SidebarInput","SidebarHeader","SidebarFooter","SidebarSeparator","SidebarContent","SidebarGroup","SidebarGroupLabel","asChild","Comp","SidebarGroupAction","SidebarGroupContent","SidebarMenu","ul","SidebarMenuItem","li","sidebarMenuButtonVariants","variants","default","outline","sm","lg","defaultVariants","SidebarMenuButton","isActive","tooltip","data-size","data-active","align","hidden","SidebarMenuAction","showOnHover","SidebarMenuBadge","SidebarMenuSkeleton","showIcon","width","Math","floor","random","SidebarMenuSub","SidebarMenuSubItem","SidebarMenuSubButton"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../src/shadcn/components/ui/sidebar.tsx"],"sourcesContent":["\"use client\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { PanelLeftIcon } from \"lucide-react\";\nimport * as React from \"react\";\nimport { Button } from \"#shadcn/components/ui/button\";\nimport { Input } from \"#shadcn/components/ui/input\";\nimport { Separator } from \"#shadcn/components/ui/separator\";\nimport {\n\tSheet,\n\tSheetContent,\n\tSheetDescription,\n\tSheetHeader,\n\tSheetTitle,\n} from \"#shadcn/components/ui/sheet\";\nimport { Skeleton } from \"#shadcn/components/ui/skeleton\";\nimport {\n\tTooltip,\n\tTooltipContent,\n\tTooltipProvider,\n\tTooltipTrigger,\n} from \"#shadcn/components/ui/tooltip\";\nimport { useIsMobile } from \"#shadcn/hooks/use-mobile\";\nimport { cn } from \"#shadcn/lib/utils\";\n\nconst SIDEBAR_COOKIE_NAME = \"sidebar_state\";\nconst SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;\nconst SIDEBAR_WIDTH = \"13.75rem\";\nconst SIDEBAR_WIDTH_MOBILE = \"18rem\";\nconst SIDEBAR_WIDTH_ICON = \"3.125rem\";\nconst SIDEBAR_KEYBOARD_SHORTCUT = \"b\";\n\ntype SidebarContextProps = {\n\tstate: \"expanded\" | \"collapsed\";\n\topen: boolean;\n\tsetOpen: (open: boolean) => void;\n\topenMobile: boolean;\n\tsetOpenMobile: (open: boolean) => void;\n\tisMobile: boolean;\n\ttoggleSidebar: () => void;\n};\n\nconst SidebarContext = React.createContext<SidebarContextProps | null>(null);\n\nfunction useSidebar() {\n\tconst context = React.useContext(SidebarContext);\n\tif (!context) {\n\t\tthrow new Error(\"useSidebar must be used within a SidebarProvider.\");\n\t}\n\n\treturn context;\n}\n\nfunction SidebarProvider({\n\tdefaultOpen = true,\n\topen: openProp,\n\tonOpenChange: setOpenProp,\n\tclassName,\n\tstyle,\n\tchildren,\n\t...props\n}: React.ComponentProps<\"div\"> & {\n\tdefaultOpen?: boolean;\n\topen?: boolean;\n\tonOpenChange?: (open: boolean) => void;\n}) {\n\tconst isMobile = useIsMobile();\n\tconst [openMobile, setOpenMobile] = React.useState(false);\n\n\t// This is the internal state of the sidebar.\n\t// We use openProp and setOpenProp for control from outside the component.\n\tconst [_open, _setOpen] = React.useState(defaultOpen);\n\tconst open = openProp ?? _open;\n\tconst setOpen = React.useCallback(\n\t\t(value: boolean | ((value: boolean) => boolean)) => {\n\t\t\tconst openState = typeof value === \"function\" ? value(open) : value;\n\t\t\tif (setOpenProp) {\n\t\t\t\tsetOpenProp(openState);\n\t\t\t} else {\n\t\t\t\t_setOpen(openState);\n\t\t\t}\n\n\t\t\t// This sets the cookie to keep the sidebar state.\n\t\t\t// biome-ignore lint/suspicious/noDocumentCookie: FIXME: unchanged shadcn\n\t\t\tdocument.cookie = `${SIDEBAR_COOKIE_NAME}=${openState}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`;\n\t\t},\n\t\t[setOpenProp, open],\n\t);\n\n\t// Helper to toggle the sidebar.\n\t// biome-ignore lint/correctness/useExhaustiveDependencies: FIXME: unchanged shadcn\n\tconst toggleSidebar = React.useCallback(() => {\n\t\treturn isMobile ? setOpenMobile((open) => !open) : setOpen((open) => !open);\n\t}, [isMobile, setOpen, setOpenMobile]);\n\n\t// Adds a keyboard shortcut to toggle the sidebar.\n\tReact.useEffect(() => {\n\t\tconst handleKeyDown = (event: KeyboardEvent) => {\n\t\t\tif (\n\t\t\t\tevent.key === SIDEBAR_KEYBOARD_SHORTCUT &&\n\t\t\t\t(event.metaKey || event.ctrlKey)\n\t\t\t) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\ttoggleSidebar();\n\t\t\t}\n\t\t};\n\n\t\twindow.addEventListener(\"keydown\", handleKeyDown);\n\t\treturn () => window.removeEventListener(\"keydown\", handleKeyDown);\n\t}, [toggleSidebar]);\n\n\t// We add a state so that we can do data-state=\"expanded\" or \"collapsed\".\n\t// This makes it easier to style the sidebar with Tailwind classes.\n\tconst state = open ? \"expanded\" : \"collapsed\";\n\n\t// biome-ignore lint/correctness/useExhaustiveDependencies: FIXME: unchanged shadcn\n\tconst contextValue = React.useMemo<SidebarContextProps>(\n\t\t() => ({\n\t\t\tstate,\n\t\t\topen,\n\t\t\tsetOpen,\n\t\t\tisMobile,\n\t\t\topenMobile,\n\t\t\tsetOpenMobile,\n\t\t\ttoggleSidebar,\n\t\t}),\n\t\t[state, open, setOpen, isMobile, openMobile, setOpenMobile, toggleSidebar],\n\t);\n\n\treturn (\n\t\t<SidebarContext.Provider value={contextValue}>\n\t\t\t<TooltipProvider delayDuration={0}>\n\t\t\t\t<div\n\t\t\t\t\tdata-slot=\"sidebar-wrapper\"\n\t\t\t\t\tstyle={\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"--sidebar-width\": SIDEBAR_WIDTH,\n\t\t\t\t\t\t\t\"--sidebar-width-icon\": SIDEBAR_WIDTH_ICON,\n\t\t\t\t\t\t\t...style,\n\t\t\t\t\t\t} as React.CSSProperties\n\t\t\t\t\t}\n\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\"group/sidebar-wrapper has-data-[variant=inset]:bg-sidebar flex min-h-svh w-full box-content\",\n\t\t\t\t\t\tclassName,\n\t\t\t\t\t)}\n\t\t\t\t\t{...props}\n\t\t\t\t>\n\t\t\t\t\t{children}\n\t\t\t\t</div>\n\t\t\t</TooltipProvider>\n\t\t</SidebarContext.Provider>\n\t);\n}\n\nfunction Sidebar({\n\tside = \"left\",\n\tvariant = \"sidebar\",\n\tcollapsible = \"offcanvas\",\n\tclassName,\n\tchildren,\n\t...props\n}: React.ComponentProps<\"div\"> & {\n\tside?: \"left\" | \"right\";\n\tvariant?: \"sidebar\" | \"floating\" | \"inset\";\n\tcollapsible?: \"offcanvas\" | \"icon\" | \"none\";\n}) {\n\tconst { isMobile, state, openMobile, setOpenMobile } = useSidebar();\n\n\tif (collapsible === \"none\") {\n\t\treturn (\n\t\t\t<div\n\t\t\t\tdata-slot=\"sidebar\"\n\t\t\t\tclassName={cn(\n\t\t\t\t\t\"bg-sidebar text-sidebar-foreground flex h-full w-(--sidebar-width) flex-col\",\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</div>\n\t\t);\n\t}\n\n\tif (isMobile) {\n\t\treturn (\n\t\t\t<Sheet open={openMobile} onOpenChange={setOpenMobile} {...props}>\n\t\t\t\t<SheetContent\n\t\t\t\t\tdata-sidebar=\"sidebar\"\n\t\t\t\t\tdata-slot=\"sidebar\"\n\t\t\t\t\tdata-mobile=\"true\"\n\t\t\t\t\tclassName=\"bg-sidebar text-sidebar-foreground w-(--sidebar-width) p-0 [&>button]:hidden\"\n\t\t\t\t\tstyle={\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"--sidebar-width\": SIDEBAR_WIDTH_MOBILE,\n\t\t\t\t\t\t} as React.CSSProperties\n\t\t\t\t\t}\n\t\t\t\t\tside={side}\n\t\t\t\t>\n\t\t\t\t\t<SheetHeader className=\"sr-only\">\n\t\t\t\t\t\t<SheetTitle>Sidebar</SheetTitle>\n\t\t\t\t\t\t<SheetDescription>Displays the mobile sidebar.</SheetDescription>\n\t\t\t\t\t</SheetHeader>\n\t\t\t\t\t<div className=\"flex h-full w-full flex-col\">{children}</div>\n\t\t\t\t</SheetContent>\n\t\t\t</Sheet>\n\t\t);\n\t}\n\n\treturn (\n\t\t<div\n\t\t\tclassName=\"group peer text-sidebar-foreground hidden md:block\"\n\t\t\tdata-state={state}\n\t\t\tdata-collapsible={state === \"collapsed\" ? collapsible : \"\"}\n\t\t\tdata-variant={variant}\n\t\t\tdata-side={side}\n\t\t\tdata-slot=\"sidebar\"\n\t\t>\n\t\t\t{/* This is what handles the sidebar gap on desktop */}\n\t\t\t<div\n\t\t\t\tdata-slot=\"sidebar-gap\"\n\t\t\t\tclassName={cn(\n\t\t\t\t\t\"relative w-(--sidebar-width) bg-transparent transition-[width] duration-120 ease-linear\",\n\t\t\t\t\t\"group-data-[collapsible=offcanvas]:w-0\",\n\t\t\t\t\t\"group-data-[side=right]:rotate-180\",\n\t\t\t\t\tvariant === \"floating\" || variant === \"inset\"\n\t\t\t\t\t\t? \"group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]\"\n\t\t\t\t\t\t: \"group-data-[collapsible=icon]:w-(--sidebar-width-icon)\",\n\t\t\t\t)}\n\t\t\t/>\n\t\t\t<div\n\t\t\t\tdata-slot=\"sidebar-container\"\n\t\t\t\tclassName={cn(\n\t\t\t\t\t\"fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] duration-120 ease-linear md:flex box-content\",\n\t\t\t\t\tside === \"left\"\n\t\t\t\t\t\t? \"left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]\"\n\t\t\t\t\t\t: \"right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]\",\n\t\t\t\t\t// Adjust the padding for floating and inset variants.\n\t\t\t\t\tvariant === \"floating\" || variant === \"inset\"\n\t\t\t\t\t\t? \"p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]\"\n\t\t\t\t\t\t: \"group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l\",\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t<div\n\t\t\t\t\tdata-sidebar=\"sidebar\"\n\t\t\t\t\tdata-slot=\"sidebar-inner\"\n\t\t\t\t\tclassName=\"bg-bg-primary 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\"\n\t\t\t\t>\n\t\t\t\t\t{children}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n\nfunction SidebarTrigger({\n\tclassName,\n\tonClick,\n\t...props\n}: React.ComponentProps<typeof Button>) {\n\tconst { toggleSidebar } = useSidebar();\n\n\treturn (\n\t\t<Button\n\t\t\tdata-sidebar=\"trigger\"\n\t\t\tdata-slot=\"sidebar-trigger\"\n\t\t\tvariant=\"ghost\"\n\t\t\tsize=\"small\"\n\t\t\tclassName={cn(\"size-7\", className)}\n\t\t\tonClick={(event) => {\n\t\t\t\tonClick?.(event);\n\t\t\t\ttoggleSidebar();\n\t\t\t}}\n\t\t\t{...props}\n\t\t>\n\t\t\t<PanelLeftIcon />\n\t\t\t<span className=\"sr-only\">Toggle Sidebar</span>\n\t\t</Button>\n\t);\n}\n\nfunction SidebarRail({ className, ...props }: React.ComponentProps<\"button\">) {\n\tconst { toggleSidebar } = useSidebar();\n\n\treturn (\n\t\t<button\n\t\t\tdata-sidebar=\"rail\"\n\t\t\tdata-slot=\"sidebar-rail\"\n\t\t\taria-label=\"Toggle Sidebar\"\n\t\t\ttabIndex={-1}\n\t\t\tonClick={toggleSidebar}\n\t\t\ttitle=\"Toggle Sidebar\"\n\t\t\tclassName={cn(\n\t\t\t\t\"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\",\n\t\t\t\t\"in-data-[side=left]:cursor-w-resize in-data-[side=right]:cursor-e-resize\",\n\t\t\t\t\"[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize\",\n\t\t\t\t\"hover:group-data-[collapsible=offcanvas]:bg-sidebar group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full\",\n\t\t\t\t\"[[data-side=left][data-collapsible=offcanvas]_&]:-right-2\",\n\t\t\t\t\"[[data-side=right][data-collapsible=offcanvas]_&]:-left-2\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SidebarInset({ className, ...props }: React.ComponentProps<\"main\">) {\n\treturn (\n\t\t<main\n\t\t\tdata-slot=\"sidebar-inset\"\n\t\t\tclassName={cn(\n\t\t\t\t\"bg-background relative flex w-full flex-1 flex-col\",\n\t\t\t\t\"md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl\",\n\t\t\t\t\"md:peer-data-[variant=inset]:shadow-sm md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-2\",\n\t\t\t\t\"peer-has-data-[sidebar-mode=hover]:fixed peer-has-data-[sidebar-mode=hover]:h-full peer-has-data-[sidebar-mode=hover]:grow\",\n\t\t\t\t\"peer-has-data-[sidebar-mode=hover]:left-(--sidebar-width-icon)\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SidebarInput({\n\tclassName,\n\t...props\n}: React.ComponentProps<typeof Input>) {\n\treturn (\n\t\t<Input\n\t\t\tdata-slot=\"sidebar-input\"\n\t\t\tdata-sidebar=\"input\"\n\t\t\tclassName={cn(\"bg-background h-8 w-full shadow-none\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SidebarHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n\treturn (\n\t\t<div\n\t\t\tdata-slot=\"sidebar-header\"\n\t\t\tdata-sidebar=\"header\"\n\t\t\tclassName={cn(\"flex flex-col gap-2 p-2\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SidebarFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n\treturn (\n\t\t<div\n\t\t\tdata-slot=\"sidebar-footer\"\n\t\t\tdata-sidebar=\"footer\"\n\t\t\tclassName={cn(\"flex flex-col gap-2 p-2 pb-3\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SidebarSeparator({\n\tclassName,\n\t...props\n}: React.ComponentProps<typeof Separator>) {\n\treturn (\n\t\t<Separator\n\t\t\tdata-slot=\"sidebar-separator\"\n\t\t\tdata-sidebar=\"separator\"\n\t\t\tclassName={cn(\"border-border-secondary w-auto\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SidebarContent({ className, ...props }: React.ComponentProps<\"div\">) {\n\treturn (\n\t\t<div\n\t\t\tdata-slot=\"sidebar-content\"\n\t\t\tdata-sidebar=\"content\"\n\t\t\tclassName={cn(\n\t\t\t\t\"flex min-h-0 flex-1 flex-col gap-1 p-2 pt-3 overflow-auto group-data-[collapsible=icon]:overflow-hidden\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SidebarGroup({ className, ...props }: React.ComponentProps<\"div\">) {\n\treturn (\n\t\t<div\n\t\t\tdata-slot=\"sidebar-group\"\n\t\t\tdata-sidebar=\"group\"\n\t\t\tclassName={cn(\"relative flex w-full min-w-0 flex-col\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SidebarGroupLabel({\n\tclassName,\n\tasChild = false,\n\t...props\n}: React.ComponentProps<\"div\"> & { asChild?: boolean }) {\n\tconst Comp = asChild ? Slot : \"div\";\n\n\treturn (\n\t\t<Comp\n\t\t\tdata-slot=\"sidebar-group-label\"\n\t\t\tdata-sidebar=\"group-label\"\n\t\t\tclassName={cn(\n\t\t\t\t\"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\",\n\t\t\t\t\"group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SidebarGroupAction({\n\tclassName,\n\tasChild = false,\n\t...props\n}: React.ComponentProps<\"button\"> & { asChild?: boolean }) {\n\tconst Comp = asChild ? Slot : \"button\";\n\n\treturn (\n\t\t<Comp\n\t\t\tdata-slot=\"sidebar-group-action\"\n\t\t\tdata-sidebar=\"group-action\"\n\t\t\tclassName={cn(\n\t\t\t\t\"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\",\n\t\t\t\t// Increases the hit area of the button on mobile.\n\t\t\t\t\"after:absolute after:-inset-2 md:after:hidden\",\n\t\t\t\t\"group-data-[collapsible=icon]:hidden\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SidebarGroupContent({\n\tclassName,\n\t...props\n}: React.ComponentProps<\"div\">) {\n\treturn (\n\t\t<div\n\t\t\tdata-slot=\"sidebar-group-content\"\n\t\t\tdata-sidebar=\"group-content\"\n\t\t\tclassName={cn(\"w-full text-sm\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SidebarMenu({ className, ...props }: React.ComponentProps<\"ul\">) {\n\treturn (\n\t\t<ul\n\t\t\tdata-slot=\"sidebar-menu\"\n\t\t\tdata-sidebar=\"menu\"\n\t\t\tclassName={cn(\"flex w-full min-w-0 flex-col gap-0.5\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SidebarMenuItem({ className, ...props }: React.ComponentProps<\"li\">) {\n\treturn (\n\t\t<li\n\t\t\tdata-slot=\"sidebar-menu-item\"\n\t\t\tdata-sidebar=\"menu-item\"\n\t\t\tclassName={cn(\"group/menu-item relative\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\n// Base sidebar menu button styles\nconst baseSidebarMenuButtonStyles = cn(\n\t// Layout\n\t\"flex\",\n\t\"items-center\",\n\t\"gap-2\",\n\t\"w-full\",\n\t\"overflow-hidden\",\n\t// Shape\n\t\"rounded-lg\",\n\t// Spacing\n\t\"py-2\",\n\t\"px-[0.44rem]\",\n\t// Typography\n\t\"typo-body\",\n\t\"text-text-secondary\",\n\t// Interaction\n\t\"outline-hidden\",\n\t\"transition-all\",\n\t\"cursor-pointer\",\n\t// Focus\n\t\"focus-visible:ring-2\",\n\t\"focus-visible:ring-utility-blue/70\",\n\t// Hover\n\t\"hover:bg-bg-secondary\",\n\t\"hover:text-text-primary\",\n\t// Active\n\t\"active:bg-bg-quaternary\",\n\t\"data-[active=true]:bg-bg-brand-secondary\",\n\t\"data-[active=true]:text-text-primary\",\n\t\"data-[active=true]:[&>svg]:text-text-brand-primary\",\n\t// Open state\n\t\"data-[state=open]:hover:bg-bg-secondary\",\n\t\"data-[state=open]:hover:text-text-primary\",\n\t// Disabled\n\t\"disabled:pointer-events-none\",\n\t\"disabled:opacity-50\",\n\t\"aria-disabled:pointer-events-none\",\n\t\"aria-disabled:opacity-50\",\n\t// Group styles\n\t\"group-has-data-[sidebar=menu-action]/menu-item:pr-8\",\n\t\"group-data-[collapsible=icon]:py-2!\",\n\t\"group-data-[collapsible=icon]:px-[0.44rem]!\",\n\t// Content styles\n\t\"[&>span:last-child]:truncate\",\n\t\"[&>svg]:size-5\",\n\t\"[&>svg]:shrink-0\",\n);\n\nconst sidebarMenuButtonVariants = cva(baseSidebarMenuButtonStyles, {\n\tvariants: {\n\t\tvariant: {\n\t\t\tdefault: cn(\"\"),\n\t\t\toutline: cn(\n\t\t\t\t\"shadow-[0_0_0_1px_hsl(var(--sidebar-border))]\",\n\t\t\t\t\"hover:bg-bg-secondary\",\n\t\t\t\t\"hover:text-text-primary\",\n\t\t\t\t\"hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]\",\n\t\t\t),\n\t\t},\n\t\tsize: {\n\t\t\tdefault: cn(\"\"),\n\t\t\tsm: cn(\"\"),\n\t\t\tlg: cn(\"h-12\", \"text-sm\", \"group-data-[collapsible=icon]:p-0!\"),\n\t\t},\n\t},\n\tdefaultVariants: {\n\t\tvariant: \"default\",\n\t\tsize: \"default\",\n\t},\n});\n\nfunction SidebarMenuButton({\n\tasChild = false,\n\tisActive = false,\n\tvariant = \"default\",\n\tsize = \"default\",\n\ttooltip,\n\tclassName,\n\t...props\n}: React.ComponentProps<\"button\"> & {\n\tasChild?: boolean;\n\tisActive?: boolean;\n\ttooltip?: string | React.ComponentProps<typeof TooltipContent>;\n} & VariantProps<typeof sidebarMenuButtonVariants>) {\n\tconst Comp = asChild ? Slot : \"button\";\n\tconst { isMobile, state } = useSidebar();\n\n\tconst button = (\n\t\t<Comp\n\t\t\tdata-slot=\"sidebar-menu-button\"\n\t\t\tdata-sidebar=\"menu-button\"\n\t\t\tdata-size={size}\n\t\t\tdata-active={isActive}\n\t\t\tclassName={cn(sidebarMenuButtonVariants({ variant, size }), className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n\n\tif (!tooltip) {\n\t\treturn button;\n\t}\n\n\tif (typeof tooltip === \"string\") {\n\t\ttooltip = {\n\t\t\tchildren: tooltip,\n\t\t};\n\t}\n\n\treturn (\n\t\t<Tooltip>\n\t\t\t<TooltipTrigger asChild>{button}</TooltipTrigger>\n\t\t\t<TooltipContent\n\t\t\t\tside=\"right\"\n\t\t\t\talign=\"center\"\n\t\t\t\thidden={state !== \"collapsed\" || isMobile}\n\t\t\t\t{...tooltip}\n\t\t\t/>\n\t\t</Tooltip>\n\t);\n}\n\nfunction SidebarMenuAction({\n\tclassName,\n\tasChild = false,\n\tshowOnHover = false,\n\t...props\n}: React.ComponentProps<\"button\"> & {\n\tasChild?: boolean;\n\tshowOnHover?: boolean;\n}) {\n\tconst Comp = asChild ? Slot : \"button\";\n\n\treturn (\n\t\t<Comp\n\t\t\tdata-slot=\"sidebar-menu-action\"\n\t\t\tdata-sidebar=\"menu-action\"\n\t\t\tclassName={cn(\n\t\t\t\t\"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\",\n\t\t\t\t// Increases the hit area of the button on mobile.\n\t\t\t\t\"after:absolute after:-inset-2 md:after:hidden\",\n\t\t\t\t\"peer-data-[size=sm]/menu-button:top-1\",\n\t\t\t\t\"peer-data-[size=default]/menu-button:top-1.5\",\n\t\t\t\t\"peer-data-[size=lg]/menu-button:top-2.5\",\n\t\t\t\t\"group-data-[collapsible=icon]:hidden\",\n\t\t\t\tshowOnHover &&\n\t\t\t\t\t\"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\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SidebarMenuBadge({\n\tclassName,\n\t...props\n}: React.ComponentProps<\"div\">) {\n\treturn (\n\t\t<div\n\t\t\tdata-slot=\"sidebar-menu-badge\"\n\t\t\tdata-sidebar=\"menu-badge\"\n\t\t\tclassName={cn(\n\t\t\t\t\"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\",\n\t\t\t\t\"peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[active=true]/menu-button:text-sidebar-accent-foreground\",\n\t\t\t\t\"peer-data-[size=sm]/menu-button:top-1\",\n\t\t\t\t\"peer-data-[size=default]/menu-button:top-1.5\",\n\t\t\t\t\"peer-data-[size=lg]/menu-button:top-2.5\",\n\t\t\t\t\"group-data-[collapsible=icon]:hidden\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SidebarMenuSkeleton({\n\tclassName,\n\tshowIcon = false,\n\t...props\n}: React.ComponentProps<\"div\"> & {\n\tshowIcon?: boolean;\n}) {\n\t// Random width between 50 to 90%.\n\tconst width = React.useMemo(() => {\n\t\treturn `${Math.floor(Math.random() * 40) + 50}%`;\n\t}, []);\n\n\treturn (\n\t\t<div\n\t\t\tdata-slot=\"sidebar-menu-skeleton\"\n\t\t\tdata-sidebar=\"menu-skeleton\"\n\t\t\tclassName={cn(\"flex h-8 items-center gap-2 rounded-md px-2\", className)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{showIcon && (\n\t\t\t\t<Skeleton\n\t\t\t\t\tclassName=\"size-4 rounded-md\"\n\t\t\t\t\tdata-sidebar=\"menu-skeleton-icon\"\n\t\t\t\t/>\n\t\t\t)}\n\t\t\t<Skeleton\n\t\t\t\tclassName=\"h-4 max-w-(--skeleton-width) flex-1\"\n\t\t\t\tdata-sidebar=\"menu-skeleton-text\"\n\t\t\t\tstyle={\n\t\t\t\t\t{\n\t\t\t\t\t\t\"--skeleton-width\": width,\n\t\t\t\t\t} as React.CSSProperties\n\t\t\t\t}\n\t\t\t/>\n\t\t</div>\n\t);\n}\n\nfunction SidebarMenuSub({ className, ...props }: React.ComponentProps<\"ul\">) {\n\treturn (\n\t\t<ul\n\t\t\tdata-slot=\"sidebar-menu-sub\"\n\t\t\tdata-sidebar=\"menu-sub\"\n\t\t\tclassName={cn(\n\t\t\t\t\"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\",\n\t\t\t\t\"group-data-[collapsible=icon]:hidden\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SidebarMenuSubItem({\n\tclassName,\n\t...props\n}: React.ComponentProps<\"li\">) {\n\treturn (\n\t\t<li\n\t\t\tdata-slot=\"sidebar-menu-sub-item\"\n\t\t\tdata-sidebar=\"menu-sub-item\"\n\t\t\tclassName={cn(\"group/menu-sub-item relative\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SidebarMenuSubButton({\n\tasChild = false,\n\tsize = \"md\",\n\tisActive = false,\n\tclassName,\n\t...props\n}: React.ComponentProps<\"a\"> & {\n\tasChild?: boolean;\n\tsize?: \"sm\" | \"md\";\n\tisActive?: boolean;\n}) {\n\tconst Comp = asChild ? Slot : \"a\";\n\n\treturn (\n\t\t<Comp\n\t\t\tdata-slot=\"sidebar-menu-sub-button\"\n\t\t\tdata-sidebar=\"menu-sub-button\"\n\t\t\tdata-size={size}\n\t\t\tdata-active={isActive}\n\t\t\tclassName={cn(\n\t\t\t\t\"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\",\n\t\t\t\t\"data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground\",\n\t\t\t\tsize === \"sm\" && \"text-xs\",\n\t\t\t\tsize === \"md\" && \"text-sm\",\n\t\t\t\t\"group-data-[collapsible=icon]:hidden\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nexport {\n\tSidebar,\n\tSidebarContent,\n\tSidebarFooter,\n\tSidebarGroup,\n\tSidebarGroupAction,\n\tSidebarGroupContent,\n\tSidebarGroupLabel,\n\tSidebarHeader,\n\tSidebarInput,\n\tSidebarInset,\n\tSidebarMenu,\n\tSidebarMenuAction,\n\tSidebarMenuBadge,\n\tSidebarMenuButton,\n\tSidebarMenuItem,\n\tSidebarMenuSkeleton,\n\tSidebarMenuSub,\n\tSidebarMenuSubButton,\n\tSidebarMenuSubItem,\n\tSidebarProvider,\n\tSidebarRail,\n\tSidebarSeparator,\n\tSidebarTrigger,\n\tuseSidebar,\n};\n"],"names":["Slot","cva","PanelLeftIcon","React","Button","Input","Separator","Sheet","SheetContent","SheetDescription","SheetHeader","SheetTitle","Skeleton","Tooltip","TooltipContent","TooltipProvider","TooltipTrigger","useIsMobile","cn","SIDEBAR_COOKIE_NAME","SIDEBAR_COOKIE_MAX_AGE","SIDEBAR_WIDTH","SIDEBAR_WIDTH_MOBILE","SIDEBAR_WIDTH_ICON","SIDEBAR_KEYBOARD_SHORTCUT","SidebarContext","createContext","useSidebar","context","useContext","Error","SidebarProvider","defaultOpen","open","openProp","onOpenChange","setOpenProp","className","style","children","props","isMobile","openMobile","setOpenMobile","useState","_open","_setOpen","setOpen","useCallback","value","openState","document","cookie","toggleSidebar","useEffect","handleKeyDown","event","key","metaKey","ctrlKey","preventDefault","window","addEventListener","removeEventListener","state","contextValue","useMemo","Provider","delayDuration","div","data-slot","Sidebar","side","variant","collapsible","data-sidebar","data-mobile","data-state","data-collapsible","data-variant","data-side","SidebarTrigger","onClick","size","span","SidebarRail","button","aria-label","tabIndex","title","SidebarInset","main","SidebarInput","SidebarHeader","SidebarFooter","SidebarSeparator","SidebarContent","SidebarGroup","SidebarGroupLabel","asChild","Comp","SidebarGroupAction","SidebarGroupContent","SidebarMenu","ul","SidebarMenuItem","li","baseSidebarMenuButtonStyles","sidebarMenuButtonVariants","variants","default","outline","sm","lg","defaultVariants","SidebarMenuButton","isActive","tooltip","data-size","data-active","align","hidden","SidebarMenuAction","showOnHover","SidebarMenuBadge","SidebarMenuSkeleton","showIcon","width","Math","floor","random","SidebarMenuSub","SidebarMenuSubItem","SidebarMenuSubButton"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"skeleton.d.ts","sourceRoot":"","sources":["../../../../../src/shadcn/components/ui/skeleton.tsx"],"names":[],"mappings":"AAEA,iBAAS,QAAQ,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,2CAQrE;AAED,OAAO,EAAE,QAAQ,EAAE,CAAC"}
1
+ {"version":3,"file":"skeleton.d.ts","sourceRoot":"","sources":["../../../../../src/shadcn/components/ui/skeleton.tsx"],"names":[],"mappings":"AAKA,iBAAS,QAAQ,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,2CAQrE;AAED,OAAO,EAAE,QAAQ,EAAE,CAAC"}
@@ -1,9 +1,11 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { cn } from "../../lib/utils.js";
3
+ // Skeleton styles
4
+ const skeletonStyles = cn("bg-bg-tertiary", "animate-pulse", "rounded-md");
3
5
  function Skeleton({ className, ...props }) {
4
6
  return /*#__PURE__*/ _jsx("div", {
5
7
  "data-slot": "skeleton",
6
- className: cn("bg-accent animate-pulse rounded-md", className),
8
+ className: cn(skeletonStyles, className),
7
9
  ...props
8
10
  });
9
11
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/shadcn/components/ui/skeleton.tsx"],"sourcesContent":["import { cn } from \"#shadcn/lib/utils\";\n\nfunction Skeleton({ className, ...props }: React.ComponentProps<\"div\">) {\n\treturn (\n\t\t<div\n\t\t\tdata-slot=\"skeleton\"\n\t\t\tclassName={cn(\"bg-accent animate-pulse rounded-md\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nexport { Skeleton };\n"],"names":["cn","Skeleton","className","props","div","data-slot"],"mappings":";AAAA,SAASA,EAAE,QAAQ,qBAAoB;AAEvC,SAASC,SAAS,EAAEC,SAAS,EAAE,GAAGC,OAAoC;IACrE,qBACC,KAACC;QACAC,aAAU;QACVH,WAAWF,GAAG,sCAAsCE;QACnD,GAAGC,KAAK;;AAGZ;AAEA,SAASF,QAAQ,GAAG"}
1
+ {"version":3,"sources":["../../../../../src/shadcn/components/ui/skeleton.tsx"],"sourcesContent":["import { cn } from \"#shadcn/lib/utils\";\n\n// Skeleton styles\nconst skeletonStyles = cn(\"bg-bg-tertiary\", \"animate-pulse\", \"rounded-md\");\n\nfunction Skeleton({ className, ...props }: React.ComponentProps<\"div\">) {\n\treturn (\n\t\t<div\n\t\t\tdata-slot=\"skeleton\"\n\t\t\tclassName={cn(skeletonStyles, className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nexport { Skeleton };\n"],"names":["cn","skeletonStyles","Skeleton","className","props","div","data-slot"],"mappings":";AAAA,SAASA,EAAE,QAAQ,qBAAoB;AAEvC,kBAAkB;AAClB,MAAMC,iBAAiBD,GAAG,kBAAkB,iBAAiB;AAE7D,SAASE,SAAS,EAAEC,SAAS,EAAE,GAAGC,OAAoC;IACrE,qBACC,KAACC;QACAC,aAAU;QACVH,WAAWH,GAAGC,gBAAgBE;QAC7B,GAAGC,KAAK;;AAGZ;AAEA,SAASF,QAAQ,GAAG"}
@@ -1 +1 @@
1
- {"version":3,"file":"slider.d.ts","sourceRoot":"","sources":["../../../../../src/shadcn/components/ui/slider.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,eAAe,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,iBAAS,MAAM,CAAC,EACf,SAAS,EACT,YAAY,EACZ,KAAK,EACL,GAAO,EACP,GAAS,EACT,GAAG,KAAK,EACR,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,IAAI,CAAC,2CA+CnD;AAED,OAAO,EAAE,MAAM,EAAE,CAAC"}
1
+ {"version":3,"file":"slider.d.ts","sourceRoot":"","sources":["../../../../../src/shadcn/components/ui/slider.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,eAAe,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAkF/B,iBAAS,MAAM,CAAC,EACf,SAAS,EACT,YAAY,EACZ,KAAK,EACL,GAAO,EACP,GAAS,EACT,GAAG,KAAK,EACR,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,IAAI,CAAC,2CAwCnD;AAED,OAAO,EAAE,MAAM,EAAE,CAAC"}
@@ -3,6 +3,36 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import * as SliderPrimitive from "@radix-ui/react-slider";
4
4
  import * as React from "react";
5
5
  import { cn } from "../../lib/utils.js";
6
+ // Slider root styles
7
+ const sliderRootStyles = cn(// Layout
8
+ "relative", "flex", "w-full", "items-center", // Interaction
9
+ "touch-none", "select-none", // Disabled
10
+ "data-[disabled]:opacity-50", // Vertical orientation
11
+ "data-[orientation=vertical]:h-full", "data-[orientation=vertical]:min-h-44", "data-[orientation=vertical]:w-auto", "data-[orientation=vertical]:flex-col");
12
+ // Slider track styles
13
+ const sliderTrackStyles = cn(// Background
14
+ "bg-bg-quaternary", // Layout
15
+ "relative", "grow", "overflow-hidden", // Shape
16
+ "rounded-full", // Horizontal orientation
17
+ "data-[orientation=horizontal]:h-1.5", "data-[orientation=horizontal]:w-full", // Vertical orientation
18
+ "data-[orientation=vertical]:h-full", "data-[orientation=vertical]:w-1.5");
19
+ // Slider range styles
20
+ const sliderRangeStyles = cn(// Background
21
+ "bg-bg-link", // Layout
22
+ "absolute", // Horizontal orientation
23
+ "data-[orientation=horizontal]:h-full", // Vertical orientation
24
+ "data-[orientation=vertical]:w-full");
25
+ // Slider thumb styles
26
+ const sliderThumbStyles = cn(// Layout
27
+ "block", "size-4", "shrink-0", // Shape
28
+ "rounded-full", // Borders
29
+ "border", "border-border-link", // Background
30
+ "bg-bg-primary", // Shadow
31
+ "shadow-sm", // Transitions
32
+ "transition-[color,box-shadow]", // Hover
33
+ "hover:ring-4", "hover:ring-utility-blue/70", // Focus
34
+ "focus-visible:ring-4", "focus-visible:ring-utility-blue/70", "focus-visible:outline-hidden", // Disabled
35
+ "disabled:pointer-events-none", "disabled:opacity-50");
6
36
  function Slider({ className, defaultValue, value, min = 0, max = 100, ...props }) {
7
37
  const _values = React.useMemo(()=>Array.isArray(value) ? value : Array.isArray(defaultValue) ? defaultValue : [
8
38
  min,
@@ -23,22 +53,22 @@ function Slider({ className, defaultValue, value, min = 0, max = 100, ...props }
23
53
  } : {},
24
54
  min: min,
25
55
  max: max,
26
- className: cn("relative flex w-full touch-none items-center select-none data-[disabled]:opacity-50 data-[orientation=vertical]:h-full data-[orientation=vertical]:min-h-44 data-[orientation=vertical]:w-auto data-[orientation=vertical]:flex-col", className),
56
+ className: cn(sliderRootStyles, className),
27
57
  ...props,
28
58
  children: [
29
59
  /*#__PURE__*/ _jsx(SliderPrimitive.Track, {
30
60
  "data-slot": "slider-track",
31
- className: cn("bg-muted relative grow overflow-hidden rounded-full data-[orientation=horizontal]:h-1.5 data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-1.5"),
61
+ className: sliderTrackStyles,
32
62
  children: /*#__PURE__*/ _jsx(SliderPrimitive.Range, {
33
63
  "data-slot": "slider-range",
34
- className: cn("bg-primary absolute data-[orientation=horizontal]:h-full data-[orientation=vertical]:w-full")
64
+ className: sliderRangeStyles
35
65
  })
36
66
  }),
37
67
  Array.from({
38
68
  length: _values.length
39
69
  }, (_, index)=>/*#__PURE__*/ _jsx(SliderPrimitive.Thumb, {
40
70
  "data-slot": "slider-thumb",
41
- className: "border-primary bg-background ring-ring/50 block size-4 shrink-0 rounded-full border shadow-sm transition-[color,box-shadow] hover:ring-4 focus-visible:ring-4 focus-visible:outline-hidden disabled:pointer-events-none disabled:opacity-50"
71
+ className: sliderThumbStyles
42
72
  }, index))
43
73
  ]
44
74
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/shadcn/components/ui/slider.tsx"],"sourcesContent":["\"use client\";\nimport * as SliderPrimitive from \"@radix-ui/react-slider\";\nimport * as React from \"react\";\n\nimport { cn } from \"#shadcn/lib/utils\";\n\nfunction Slider({\n\tclassName,\n\tdefaultValue,\n\tvalue,\n\tmin = 0,\n\tmax = 100,\n\t...props\n}: React.ComponentProps<typeof SliderPrimitive.Root>) {\n\tconst _values = React.useMemo(\n\t\t() =>\n\t\t\tArray.isArray(value)\n\t\t\t\t? value\n\t\t\t\t: Array.isArray(defaultValue)\n\t\t\t\t\t? defaultValue\n\t\t\t\t\t: [min, max],\n\t\t[value, defaultValue, min, max],\n\t);\n\n\treturn (\n\t\t<SliderPrimitive.Root\n\t\t\tdata-slot=\"slider\"\n\t\t\t{...(defaultValue !== undefined ? { defaultValue } : {})}\n\t\t\t{...(value !== undefined ? { value } : {})}\n\t\t\tmin={min}\n\t\t\tmax={max}\n\t\t\tclassName={cn(\n\t\t\t\t\"relative flex w-full touch-none items-center select-none data-[disabled]:opacity-50 data-[orientation=vertical]:h-full data-[orientation=vertical]:min-h-44 data-[orientation=vertical]:w-auto data-[orientation=vertical]:flex-col\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t<SliderPrimitive.Track\n\t\t\t\tdata-slot=\"slider-track\"\n\t\t\t\tclassName={cn(\n\t\t\t\t\t\"bg-muted relative grow overflow-hidden rounded-full data-[orientation=horizontal]:h-1.5 data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-1.5\",\n\t\t\t\t)}\n\t\t\t>\n\t\t\t\t<SliderPrimitive.Range\n\t\t\t\t\tdata-slot=\"slider-range\"\n\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\"bg-primary absolute data-[orientation=horizontal]:h-full data-[orientation=vertical]:w-full\",\n\t\t\t\t\t)}\n\t\t\t\t/>\n\t\t\t</SliderPrimitive.Track>\n\t\t\t{Array.from({ length: _values.length }, (_, index) => (\n\t\t\t\t<SliderPrimitive.Thumb\n\t\t\t\t\tdata-slot=\"slider-thumb\"\n\t\t\t\t\t// biome-ignore lint/suspicious/noArrayIndexKey: FIXME: unchanged shadcn\n\t\t\t\t\tkey={index}\n\t\t\t\t\tclassName=\"border-primary bg-background ring-ring/50 block size-4 shrink-0 rounded-full border shadow-sm transition-[color,box-shadow] hover:ring-4 focus-visible:ring-4 focus-visible:outline-hidden disabled:pointer-events-none disabled:opacity-50\"\n\t\t\t\t/>\n\t\t\t))}\n\t\t</SliderPrimitive.Root>\n\t);\n}\n\nexport { Slider };\n"],"names":["SliderPrimitive","React","cn","Slider","className","defaultValue","value","min","max","props","_values","useMemo","Array","isArray","Root","data-slot","undefined","Track","Range","from","length","_","index","Thumb"],"mappings":"AAAA;;AACA,YAAYA,qBAAqB,yBAAyB;AAC1D,YAAYC,WAAW,QAAQ;AAE/B,SAASC,EAAE,QAAQ,qBAAoB;AAEvC,SAASC,OAAO,EACfC,SAAS,EACTC,YAAY,EACZC,KAAK,EACLC,MAAM,CAAC,EACPC,MAAM,GAAG,EACT,GAAGC,OACgD;IACnD,MAAMC,UAAUT,MAAMU,OAAO,CAC5B,IACCC,MAAMC,OAAO,CAACP,SACXA,QACAM,MAAMC,OAAO,CAACR,gBACbA,eACA;YAACE;YAAKC;SAAI,EACf;QAACF;QAAOD;QAAcE;QAAKC;KAAI;IAGhC,qBACC,MAACR,gBAAgBc,IAAI;QACpBC,aAAU;QACT,GAAIV,iBAAiBW,YAAY;YAAEX;QAAa,IAAI,CAAC,CAAC;QACtD,GAAIC,UAAUU,YAAY;YAAEV;QAAM,IAAI,CAAC,CAAC;QACzCC,KAAKA;QACLC,KAAKA;QACLJ,WAAWF,GACV,uOACAE;QAEA,GAAGK,KAAK;;0BAET,KAACT,gBAAgBiB,KAAK;gBACrBF,aAAU;gBACVX,WAAWF,GACV;0BAGD,cAAA,KAACF,gBAAgBkB,KAAK;oBACrBH,aAAU;oBACVX,WAAWF,GACV;;;YAIFU,MAAMO,IAAI,CAAC;gBAAEC,QAAQV,QAAQU,MAAM;YAAC,GAAG,CAACC,GAAGC,sBAC3C,KAACtB,gBAAgBuB,KAAK;oBACrBR,aAAU;oBAGVX,WAAU;mBADLkB;;;AAMV;AAEA,SAASnB,MAAM,GAAG"}
1
+ {"version":3,"sources":["../../../../../src/shadcn/components/ui/slider.tsx"],"sourcesContent":["\"use client\";\nimport * as SliderPrimitive from \"@radix-ui/react-slider\";\nimport * as React from \"react\";\n\nimport { cn } from \"#shadcn/lib/utils\";\n\n// Slider root styles\nconst sliderRootStyles = cn(\n\t// Layout\n\t\"relative\",\n\t\"flex\",\n\t\"w-full\",\n\t\"items-center\",\n\t// Interaction\n\t\"touch-none\",\n\t\"select-none\",\n\t// Disabled\n\t\"data-[disabled]:opacity-50\",\n\t// Vertical orientation\n\t\"data-[orientation=vertical]:h-full\",\n\t\"data-[orientation=vertical]:min-h-44\",\n\t\"data-[orientation=vertical]:w-auto\",\n\t\"data-[orientation=vertical]:flex-col\",\n);\n\n// Slider track styles\nconst sliderTrackStyles = cn(\n\t// Background\n\t\"bg-bg-quaternary\",\n\t// Layout\n\t\"relative\",\n\t\"grow\",\n\t\"overflow-hidden\",\n\t// Shape\n\t\"rounded-full\",\n\t// Horizontal orientation\n\t\"data-[orientation=horizontal]:h-1.5\",\n\t\"data-[orientation=horizontal]:w-full\",\n\t// Vertical orientation\n\t\"data-[orientation=vertical]:h-full\",\n\t\"data-[orientation=vertical]:w-1.5\",\n);\n\n// Slider range styles\nconst sliderRangeStyles = cn(\n\t// Background\n\t\"bg-bg-link\",\n\t// Layout\n\t\"absolute\",\n\t// Horizontal orientation\n\t\"data-[orientation=horizontal]:h-full\",\n\t// Vertical orientation\n\t\"data-[orientation=vertical]:w-full\",\n);\n\n// Slider thumb styles\nconst sliderThumbStyles = cn(\n\t// Layout\n\t\"block\",\n\t\"size-4\",\n\t\"shrink-0\",\n\t// Shape\n\t\"rounded-full\",\n\t// Borders\n\t\"border\",\n\t\"border-border-link\",\n\t// Background\n\t\"bg-bg-primary\",\n\t// Shadow\n\t\"shadow-sm\",\n\t// Transitions\n\t\"transition-[color,box-shadow]\",\n\t// Hover\n\t\"hover:ring-4\",\n\t\"hover:ring-utility-blue/70\",\n\t// Focus\n\t\"focus-visible:ring-4\",\n\t\"focus-visible:ring-utility-blue/70\",\n\t\"focus-visible:outline-hidden\",\n\t// Disabled\n\t\"disabled:pointer-events-none\",\n\t\"disabled:opacity-50\",\n);\n\nfunction Slider({\n\tclassName,\n\tdefaultValue,\n\tvalue,\n\tmin = 0,\n\tmax = 100,\n\t...props\n}: React.ComponentProps<typeof SliderPrimitive.Root>) {\n\tconst _values = React.useMemo(\n\t\t() =>\n\t\t\tArray.isArray(value)\n\t\t\t\t? value\n\t\t\t\t: Array.isArray(defaultValue)\n\t\t\t\t\t? defaultValue\n\t\t\t\t\t: [min, max],\n\t\t[value, defaultValue, min, max],\n\t);\n\n\treturn (\n\t\t<SliderPrimitive.Root\n\t\t\tdata-slot=\"slider\"\n\t\t\t{...(defaultValue !== undefined ? { defaultValue } : {})}\n\t\t\t{...(value !== undefined ? { value } : {})}\n\t\t\tmin={min}\n\t\t\tmax={max}\n\t\t\tclassName={cn(sliderRootStyles, className)}\n\t\t\t{...props}\n\t\t>\n\t\t\t<SliderPrimitive.Track\n\t\t\t\tdata-slot=\"slider-track\"\n\t\t\t\tclassName={sliderTrackStyles}\n\t\t\t>\n\t\t\t\t<SliderPrimitive.Range\n\t\t\t\t\tdata-slot=\"slider-range\"\n\t\t\t\t\tclassName={sliderRangeStyles}\n\t\t\t\t/>\n\t\t\t</SliderPrimitive.Track>\n\t\t\t{Array.from({ length: _values.length }, (_, index) => (\n\t\t\t\t<SliderPrimitive.Thumb\n\t\t\t\t\tdata-slot=\"slider-thumb\"\n\t\t\t\t\t// biome-ignore lint/suspicious/noArrayIndexKey: FIXME: unchanged shadcn\n\t\t\t\t\tkey={index}\n\t\t\t\t\tclassName={sliderThumbStyles}\n\t\t\t\t/>\n\t\t\t))}\n\t\t</SliderPrimitive.Root>\n\t);\n}\n\nexport { Slider };\n"],"names":["SliderPrimitive","React","cn","sliderRootStyles","sliderTrackStyles","sliderRangeStyles","sliderThumbStyles","Slider","className","defaultValue","value","min","max","props","_values","useMemo","Array","isArray","Root","data-slot","undefined","Track","Range","from","length","_","index","Thumb"],"mappings":"AAAA;;AACA,YAAYA,qBAAqB,yBAAyB;AAC1D,YAAYC,WAAW,QAAQ;AAE/B,SAASC,EAAE,QAAQ,qBAAoB;AAEvC,qBAAqB;AACrB,MAAMC,mBAAmBD,GACxB,SAAS;AACT,YACA,QACA,UACA,gBACA,cAAc;AACd,cACA,eACA,WAAW;AACX,8BACA,uBAAuB;AACvB,sCACA,wCACA,sCACA;AAGD,sBAAsB;AACtB,MAAME,oBAAoBF,GACzB,aAAa;AACb,oBACA,SAAS;AACT,YACA,QACA,mBACA,QAAQ;AACR,gBACA,yBAAyB;AACzB,uCACA,wCACA,uBAAuB;AACvB,sCACA;AAGD,sBAAsB;AACtB,MAAMG,oBAAoBH,GACzB,aAAa;AACb,cACA,SAAS;AACT,YACA,yBAAyB;AACzB,wCACA,uBAAuB;AACvB;AAGD,sBAAsB;AACtB,MAAMI,oBAAoBJ,GACzB,SAAS;AACT,SACA,UACA,YACA,QAAQ;AACR,gBACA,UAAU;AACV,UACA,sBACA,aAAa;AACb,iBACA,SAAS;AACT,aACA,cAAc;AACd,iCACA,QAAQ;AACR,gBACA,8BACA,QAAQ;AACR,wBACA,sCACA,gCACA,WAAW;AACX,gCACA;AAGD,SAASK,OAAO,EACfC,SAAS,EACTC,YAAY,EACZC,KAAK,EACLC,MAAM,CAAC,EACPC,MAAM,GAAG,EACT,GAAGC,OACgD;IACnD,MAAMC,UAAUb,MAAMc,OAAO,CAC5B,IACCC,MAAMC,OAAO,CAACP,SACXA,QACAM,MAAMC,OAAO,CAACR,gBACbA,eACA;YAACE;YAAKC;SAAI,EACf;QAACF;QAAOD;QAAcE;QAAKC;KAAI;IAGhC,qBACC,MAACZ,gBAAgBkB,IAAI;QACpBC,aAAU;QACT,GAAIV,iBAAiBW,YAAY;YAAEX;QAAa,IAAI,CAAC,CAAC;QACtD,GAAIC,UAAUU,YAAY;YAAEV;QAAM,IAAI,CAAC,CAAC;QACzCC,KAAKA;QACLC,KAAKA;QACLJ,WAAWN,GAAGC,kBAAkBK;QAC/B,GAAGK,KAAK;;0BAET,KAACb,gBAAgBqB,KAAK;gBACrBF,aAAU;gBACVX,WAAWJ;0BAEX,cAAA,KAACJ,gBAAgBsB,KAAK;oBACrBH,aAAU;oBACVX,WAAWH;;;YAGZW,MAAMO,IAAI,CAAC;gBAAEC,QAAQV,QAAQU,MAAM;YAAC,GAAG,CAACC,GAAGC,sBAC3C,KAAC1B,gBAAgB2B,KAAK;oBACrBR,aAAU;oBAGVX,WAAWF;mBADNoB;;;AAMV;AAEA,SAASnB,MAAM,GAAG"}
@@ -1,4 +1,19 @@
1
+ import type { VariantProps } from "class-variance-authority";
1
2
  import { type ToasterProps } from "sonner";
3
+ import { type buttonVariants } from "./button";
2
4
  declare const Toaster: ({ ...props }: ToasterProps) => import("react/jsx-runtime").JSX.Element;
3
- export { Toaster };
5
+ declare const toast: (message: string, options?: {
6
+ description?: string;
7
+ action?: {
8
+ label: string;
9
+ onClick: () => void;
10
+ variant?: VariantProps<typeof buttonVariants>["variant"];
11
+ };
12
+ cancel?: {
13
+ label: string;
14
+ onClick: () => void;
15
+ variant?: VariantProps<typeof buttonVariants>["variant"];
16
+ };
17
+ }) => string | number;
18
+ export { Toaster, toast };
4
19
  //# sourceMappingURL=sonner.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sonner.d.ts","sourceRoot":"","sources":["../../../../../src/shadcn/components/ui/sonner.tsx"],"names":[],"mappings":"AACA,OAAO,EAAqB,KAAK,YAAY,EAAE,MAAM,QAAQ,CAAC;AAE9D,QAAA,MAAM,OAAO,GAAI,cAAc,YAAY,4CAiB1C,CAAC;AAEF,OAAO,EAAE,OAAO,EAAE,CAAC"}
1
+ {"version":3,"file":"sonner.d.ts","sourceRoot":"","sources":["../../../../../src/shadcn/components/ui/sonner.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAE7D,OAAO,EAGN,KAAK,YAAY,EACjB,MAAM,QAAQ,CAAC;AAChB,OAAO,EAAU,KAAK,cAAc,EAAE,MAAM,UAAU,CAAC;AAEvD,QAAA,MAAM,OAAO,GAAI,cAAc,YAAY,4CAmB1C,CAAC;AAGF,QAAA,MAAM,KAAK,GACV,SAAS,MAAM,EACf,UAAU;IACT,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE;QACR,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,IAAI,CAAC;QACpB,OAAO,CAAC,EAAE,YAAY,CAAC,OAAO,cAAc,CAAC,CAAC,SAAS,CAAC,CAAC;KACzD,CAAC;IACF,MAAM,CAAC,EAAE;QACR,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,IAAI,CAAC;QACpB,OAAO,CAAC,EAAE,YAAY,CAAC,OAAO,cAAc,CAAC,CAAC,SAAS,CAAC,CAAC;KACzD,CAAC;CACF,oBAuBD,CAAC;AAEF,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC"}
@@ -1,10 +1,12 @@
1
+ "use client";
1
2
  import { jsx as _jsx } from "react/jsx-runtime";
2
3
  import { useTheme } from "next-themes";
3
- import { Toaster as Sonner } from "sonner";
4
+ import { Toaster as Sonner, toast as sonnerToast } from "sonner";
5
+ import { Button } from "./button.js";
4
6
  const Toaster = ({ ...props })=>{
5
7
  const { theme = "system" } = useTheme();
6
8
  return /*#__PURE__*/ _jsx(Sonner, {
7
- theme: theme,
9
+ theme: theme === "system" ? "system" : theme === "dark" ? "dark" : "light",
8
10
  className: "toaster group",
9
11
  style: {
10
12
  "--normal-bg": "var(--popover)",
@@ -14,6 +16,24 @@ const Toaster = ({ ...props })=>{
14
16
  ...props
15
17
  });
16
18
  };
17
- export { Toaster };
19
+ // Custom toast wrapper with our buttons
20
+ const toast = (message, options)=>{
21
+ return sonnerToast(message, {
22
+ ...options,
23
+ action: options?.action ? /*#__PURE__*/ _jsx(Button, {
24
+ variant: options.action.variant || "secondary",
25
+ size: "small",
26
+ onClick: options.action.onClick,
27
+ children: options.action.label
28
+ }) : undefined,
29
+ cancel: options?.cancel ? /*#__PURE__*/ _jsx(Button, {
30
+ variant: options.cancel.variant || "ghost",
31
+ size: "small",
32
+ onClick: options.cancel.onClick,
33
+ children: options.cancel.label
34
+ }) : undefined
35
+ });
36
+ };
37
+ export { Toaster, toast };
18
38
 
19
39
  //# sourceMappingURL=sonner.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/shadcn/components/ui/sonner.tsx"],"sourcesContent":["import { useTheme } from \"next-themes\";\nimport { Toaster as Sonner, type ToasterProps } from \"sonner\";\n\nconst Toaster = ({ ...props }: ToasterProps) => {\n\tconst { theme = \"system\" } = useTheme();\n\n\treturn (\n\t\t<Sonner\n\t\t\ttheme={theme as ToasterProps[\"theme\"] & {}}\n\t\t\tclassName=\"toaster group\"\n\t\t\tstyle={\n\t\t\t\t{\n\t\t\t\t\t\"--normal-bg\": \"var(--popover)\",\n\t\t\t\t\t\"--normal-text\": \"var(--popover-foreground)\",\n\t\t\t\t\t\"--normal-border\": \"var(--border)\",\n\t\t\t\t} as React.CSSProperties\n\t\t\t}\n\t\t\t{...props}\n\t\t/>\n\t);\n};\n\nexport { Toaster };\n"],"names":["useTheme","Toaster","Sonner","props","theme","className","style"],"mappings":";AAAA,SAASA,QAAQ,QAAQ,cAAc;AACvC,SAASC,WAAWC,MAAM,QAA2B,SAAS;AAE9D,MAAMD,UAAU,CAAC,EAAE,GAAGE,OAAqB;IAC1C,MAAM,EAAEC,QAAQ,QAAQ,EAAE,GAAGJ;IAE7B,qBACC,KAACE;QACAE,OAAOA;QACPC,WAAU;QACVC,OACC;YACC,eAAe;YACf,iBAAiB;YACjB,mBAAmB;QACpB;QAEA,GAAGH,KAAK;;AAGZ;AAEA,SAASF,OAAO,GAAG"}
1
+ {"version":3,"sources":["../../../../../src/shadcn/components/ui/sonner.tsx"],"sourcesContent":["\"use client\";\n\nimport type { VariantProps } from \"class-variance-authority\";\nimport { useTheme } from \"next-themes\";\nimport {\n\tToaster as Sonner,\n\ttoast as sonnerToast,\n\ttype ToasterProps,\n} from \"sonner\";\nimport { Button, type buttonVariants } from \"./button\";\n\nconst Toaster = ({ ...props }: ToasterProps) => {\n\tconst { theme = \"system\" } = useTheme();\n\n\treturn (\n\t\t<Sonner\n\t\t\ttheme={\n\t\t\t\ttheme === \"system\" ? \"system\" : theme === \"dark\" ? \"dark\" : \"light\"\n\t\t\t}\n\t\t\tclassName=\"toaster group\"\n\t\t\tstyle={\n\t\t\t\t{\n\t\t\t\t\t\"--normal-bg\": \"var(--popover)\",\n\t\t\t\t\t\"--normal-text\": \"var(--popover-foreground)\",\n\t\t\t\t\t\"--normal-border\": \"var(--border)\",\n\t\t\t\t} as React.CSSProperties\n\t\t\t}\n\t\t\t{...props}\n\t\t/>\n\t);\n};\n\n// Custom toast wrapper with our buttons\nconst toast = (\n\tmessage: string,\n\toptions?: {\n\t\tdescription?: string;\n\t\taction?: {\n\t\t\tlabel: string;\n\t\t\tonClick: () => void;\n\t\t\tvariant?: VariantProps<typeof buttonVariants>[\"variant\"];\n\t\t};\n\t\tcancel?: {\n\t\t\tlabel: string;\n\t\t\tonClick: () => void;\n\t\t\tvariant?: VariantProps<typeof buttonVariants>[\"variant\"];\n\t\t};\n\t},\n) => {\n\treturn sonnerToast(message, {\n\t\t...options,\n\t\taction: options?.action ? (\n\t\t\t<Button\n\t\t\t\tvariant={options.action.variant || \"secondary\"}\n\t\t\t\tsize=\"small\"\n\t\t\t\tonClick={options.action.onClick}\n\t\t\t>\n\t\t\t\t{options.action.label}\n\t\t\t</Button>\n\t\t) : undefined,\n\t\tcancel: options?.cancel ? (\n\t\t\t<Button\n\t\t\t\tvariant={options.cancel.variant || \"ghost\"}\n\t\t\t\tsize=\"small\"\n\t\t\t\tonClick={options.cancel.onClick}\n\t\t\t>\n\t\t\t\t{options.cancel.label}\n\t\t\t</Button>\n\t\t) : undefined,\n\t});\n};\n\nexport { Toaster, toast };\n"],"names":["useTheme","Toaster","Sonner","toast","sonnerToast","Button","props","theme","className","style","message","options","action","variant","size","onClick","label","undefined","cancel"],"mappings":"AAAA;;AAGA,SAASA,QAAQ,QAAQ,cAAc;AACvC,SACCC,WAAWC,MAAM,EACjBC,SAASC,WAAW,QAEd,SAAS;AAChB,SAASC,MAAM,QAA6B,cAAW;AAEvD,MAAMJ,UAAU,CAAC,EAAE,GAAGK,OAAqB;IAC1C,MAAM,EAAEC,QAAQ,QAAQ,EAAE,GAAGP;IAE7B,qBACC,KAACE;QACAK,OACCA,UAAU,WAAW,WAAWA,UAAU,SAAS,SAAS;QAE7DC,WAAU;QACVC,OACC;YACC,eAAe;YACf,iBAAiB;YACjB,mBAAmB;QACpB;QAEA,GAAGH,KAAK;;AAGZ;AAEA,wCAAwC;AACxC,MAAMH,QAAQ,CACbO,SACAC;IAcA,OAAOP,YAAYM,SAAS;QAC3B,GAAGC,OAAO;QACVC,QAAQD,SAASC,uBAChB,KAACP;YACAQ,SAASF,QAAQC,MAAM,CAACC,OAAO,IAAI;YACnCC,MAAK;YACLC,SAASJ,QAAQC,MAAM,CAACG,OAAO;sBAE9BJ,QAAQC,MAAM,CAACI,KAAK;aAEnBC;QACJC,QAAQP,SAASO,uBAChB,KAACb;YACAQ,SAASF,QAAQO,MAAM,CAACL,OAAO,IAAI;YACnCC,MAAK;YACLC,SAASJ,QAAQO,MAAM,CAACH,OAAO;sBAE9BJ,QAAQO,MAAM,CAACF,KAAK;aAEnBC;IACL;AACD;AAEA,SAAShB,OAAO,EAAEE,KAAK,GAAG"}
@@ -1 +1 @@
1
- {"version":3,"file":"sonner.stories.d.ts","sourceRoot":"","sources":["../../../../../src/shadcn/components/ui/sonner.stories.tsx"],"names":[],"mappings":"AAIA,QAAA,MAAM,IAAI;;CAEM,CAAC;AACjB,eAAe,IAAI,CAAC;AAIpB,eAAO,MAAM,IAAI;;CAiBA,CAAC"}
1
+ {"version":3,"file":"sonner.stories.d.ts","sourceRoot":"","sources":["../../../../../src/shadcn/components/ui/sonner.stories.tsx"],"names":[],"mappings":"AAIA,QAAA,MAAM,IAAI;;CAEM,CAAC;AACjB,eAAe,IAAI,CAAC;AAIpB,eAAO,MAAM,IAAI;;CAqBA,CAAC"}
@@ -1,21 +1,29 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { toast } from "sonner";
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
2
  import { Button } from "./button.js";
3
+ import { Toaster, toast } from "./sonner.js";
4
4
  const meta = {
5
5
  title: "Component/Sonner"
6
6
  };
7
7
  export default meta;
8
8
  export const Demo = {
9
- render: ()=>/*#__PURE__*/ _jsx(Button, {
10
- variant: "secondary",
11
- onClick: ()=>toast("Event has been created", {
12
- description: "Sunday, December 03, 2023 at 9:00 AM",
13
- action: {
14
- label: "Undo",
15
- onClick: ()=>console.log("Undo")
16
- }
9
+ render: ()=>/*#__PURE__*/ _jsxs("div", {
10
+ children: [
11
+ /*#__PURE__*/ _jsx(Button, {
12
+ variant: "secondary",
13
+ onClick: ()=>toast("Event has been created", {
14
+ description: "Sunday, December 03, 2023 at 9:00 AM",
15
+ action: {
16
+ label: "Undo",
17
+ variant: "primary",
18
+ onClick: ()=>console.log("Undo")
19
+ }
20
+ }),
21
+ children: "Show Toast"
17
22
  }),
18
- children: "Show Toast"
23
+ /*#__PURE__*/ _jsx(Toaster, {
24
+ position: "top-center"
25
+ })
26
+ ]
19
27
  })
20
28
  };
21
29
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/shadcn/components/ui/sonner.stories.tsx"],"sourcesContent":["import type { Meta, StoryObj } from \"@storybook/react-vite\";\nimport { toast } from \"sonner\";\nimport { Button } from \"#shadcn/components/ui/button\";\n\nconst meta = {\n\ttitle: \"Component/Sonner\",\n} satisfies Meta;\nexport default meta;\n\ntype Story = StoryObj<typeof meta>;\n\nexport const Demo = {\n\trender: () => (\n\t\t<Button\n\t\t\tvariant=\"secondary\"\n\t\t\tonClick={() =>\n\t\t\t\ttoast(\"Event has been created\", {\n\t\t\t\t\tdescription: \"Sunday, December 03, 2023 at 9:00 AM\",\n\t\t\t\t\taction: {\n\t\t\t\t\t\tlabel: \"Undo\",\n\t\t\t\t\t\tonClick: () => console.log(\"Undo\"),\n\t\t\t\t\t},\n\t\t\t\t})\n\t\t\t}\n\t\t>\n\t\t\tShow Toast\n\t\t</Button>\n\t),\n} satisfies Story;\n"],"names":["toast","Button","meta","title","Demo","render","variant","onClick","description","action","label","console","log"],"mappings":";AACA,SAASA,KAAK,QAAQ,SAAS;AAC/B,SAASC,MAAM,QAAQ,cAA+B;AAEtD,MAAMC,OAAO;IACZC,OAAO;AACR;AACA,eAAeD,KAAK;AAIpB,OAAO,MAAME,OAAO;IACnBC,QAAQ,kBACP,KAACJ;YACAK,SAAQ;YACRC,SAAS,IACRP,MAAM,0BAA0B;oBAC/BQ,aAAa;oBACbC,QAAQ;wBACPC,OAAO;wBACPH,SAAS,IAAMI,QAAQC,GAAG,CAAC;oBAC5B;gBACD;sBAED;;AAIH,EAAkB"}
1
+ {"version":3,"sources":["../../../../../src/shadcn/components/ui/sonner.stories.tsx"],"sourcesContent":["import type { Meta, StoryObj } from \"@storybook/react-vite\";\nimport { Button } from \"#shadcn/components/ui/button\";\nimport { Toaster, toast } from \"#shadcn/components/ui/sonner\";\n\nconst meta = {\n\ttitle: \"Component/Sonner\",\n} satisfies Meta;\nexport default meta;\n\ntype Story = StoryObj<typeof meta>;\n\nexport const Demo = {\n\trender: () => (\n\t\t<div>\n\t\t\t<Button\n\t\t\t\tvariant=\"secondary\"\n\t\t\t\tonClick={() =>\n\t\t\t\t\ttoast(\"Event has been created\", {\n\t\t\t\t\t\tdescription: \"Sunday, December 03, 2023 at 9:00 AM\",\n\t\t\t\t\t\taction: {\n\t\t\t\t\t\t\tlabel: \"Undo\",\n\t\t\t\t\t\t\tvariant: \"primary\",\n\t\t\t\t\t\t\tonClick: () => console.log(\"Undo\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t>\n\t\t\t\tShow Toast\n\t\t\t</Button>\n\t\t\t<Toaster position=\"top-center\" />\n\t\t</div>\n\t),\n} satisfies Story;\n"],"names":["Button","Toaster","toast","meta","title","Demo","render","div","variant","onClick","description","action","label","console","log","position"],"mappings":";AACA,SAASA,MAAM,QAAQ,cAA+B;AACtD,SAASC,OAAO,EAAEC,KAAK,QAAQ,cAA+B;AAE9D,MAAMC,OAAO;IACZC,OAAO;AACR;AACA,eAAeD,KAAK;AAIpB,OAAO,MAAME,OAAO;IACnBC,QAAQ,kBACP,MAACC;;8BACA,KAACP;oBACAQ,SAAQ;oBACRC,SAAS,IACRP,MAAM,0BAA0B;4BAC/BQ,aAAa;4BACbC,QAAQ;gCACPC,OAAO;gCACPJ,SAAS;gCACTC,SAAS,IAAMI,QAAQC,GAAG,CAAC;4BAC5B;wBACD;8BAED;;8BAGD,KAACb;oBAAQc,UAAS;;;;AAGrB,EAAkB"}
@@ -1 +1 @@
1
- {"version":3,"file":"switch.d.ts","sourceRoot":"","sources":["../../../../../src/shadcn/components/ui/switch.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,eAAe,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAIpC,iBAAS,MAAM,CAAC,EACf,SAAS,EACT,GAAG,KAAK,EACR,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,IAAI,CAAC,2CAkBnD;AAED,OAAO,EAAE,MAAM,EAAE,CAAC"}
1
+ {"version":3,"file":"switch.d.ts","sourceRoot":"","sources":["../../../../../src/shadcn/components/ui/switch.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,eAAe,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAuDpC,iBAAS,MAAM,CAAC,EACf,SAAS,EACT,GAAG,KAAK,EACR,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,IAAI,CAAC,2CAanD;AAED,OAAO,EAAE,MAAM,EAAE,CAAC"}
@@ -2,14 +2,30 @@
2
2
  import { jsx as _jsx } from "react/jsx-runtime";
3
3
  import * as SwitchPrimitive from "@radix-ui/react-switch";
4
4
  import { cn } from "../../lib/utils.js";
5
+ // Switch root styles
6
+ const switchRootStyles = cn(// Layout
7
+ "peer", "inline-flex", "items-center", "shrink-0", // Size
8
+ "h-[1.15rem]", "w-8", // Shape
9
+ "rounded-full", "border", "border-transparent", // Interaction
10
+ "transition-all", "outline-none", "cursor-pointer", // States
11
+ "data-[state=unchecked]:bg-bg-quaternary", "data-[state=checked]:bg-bg-link", "hover:data-[state=unchecked]:bg-bg-tertiary", "hover:data-[state=checked]:bg-bg-link_hover", // Focus
12
+ "focus-visible:ring-2", "focus-visible:ring-utility-blue/70", // Disabled
13
+ "disabled:cursor-not-allowed", "disabled:opacity-50", "disabled:data-[state=checked]:bg-bg-disabled", "disabled:data-[state=unchecked]:bg-bg-disabled");
14
+ // Switch thumb styles
15
+ const switchThumbStyles = cn(// Layout
16
+ "pointer-events-none", "block", // Size
17
+ "size-4", // Shape
18
+ "rounded-full", "ring-0", // Color
19
+ "bg-bg-primary", // Animation
20
+ "transition-transform", "data-[state=checked]:translate-x-[calc(100%-2px)]", "data-[state=unchecked]:translate-x-0");
5
21
  function Switch({ className, ...props }) {
6
22
  return /*#__PURE__*/ _jsx(SwitchPrimitive.Root, {
7
23
  "data-slot": "switch",
8
- className: cn("peer data-[state=checked]:bg-primary data-[state=unchecked]:bg-input focus-visible:border-ring focus-visible:ring-ring/50 dark:data-[state=unchecked]:bg-input/80 inline-flex h-[1.15rem] w-8 shrink-0 items-center rounded-full border border-transparent shadow-xs transition-all outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50", className),
24
+ className: cn(switchRootStyles, className),
9
25
  ...props,
10
26
  children: /*#__PURE__*/ _jsx(SwitchPrimitive.Thumb, {
11
27
  "data-slot": "switch-thumb",
12
- className: cn("bg-background dark:data-[state=unchecked]:bg-foreground dark:data-[state=checked]:bg-primary-foreground pointer-events-none block size-4 rounded-full ring-0 transition-transform data-[state=checked]:translate-x-[calc(100%-2px)] data-[state=unchecked]:translate-x-0")
28
+ className: switchThumbStyles
13
29
  })
14
30
  });
15
31
  }