ics-ui-kit 0.1.12 → 0.1.14

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 (295) hide show
  1. package/README.md +36 -36
  2. package/dist/AlertContext-CxjW1LVL.js.map +1 -1
  3. package/dist/{AlertIcon-5B6AgZpe.js → AlertIcon-BphnEYvV.js} +3 -3
  4. package/dist/AlertIcon-BphnEYvV.js.map +1 -0
  5. package/dist/Button-Dg89xRSi.js.map +1 -1
  6. package/dist/ButtonBase-e6qyv6mD.js.map +1 -1
  7. package/dist/{CheckboxField-cX09-eBX.js → CheckboxField-2zNFubvm.js} +2 -2
  8. package/dist/CheckboxField-2zNFubvm.js.map +1 -0
  9. package/dist/Combination-DeIugdgY.js +353 -0
  10. package/dist/Combination-DeIugdgY.js.map +1 -0
  11. package/dist/{Command-ClIm4U7r.js → Command-D5zgJ7-y.js} +3 -3
  12. package/dist/Command-D5zgJ7-y.js.map +1 -0
  13. package/dist/ComponentVariantProvider-brk0g-hm.js.map +1 -1
  14. package/dist/Description-BTPMlTT-.js.map +1 -1
  15. package/dist/{Dialog-Bs1B5Iu8.js → Dialog-CdnsGyJD.js} +3 -3
  16. package/dist/Dialog-CdnsGyJD.js.map +1 -0
  17. package/dist/Divider-DPW5ZhZ8.js.map +1 -1
  18. package/dist/EmptyState-DRKjscH-.js.map +1 -1
  19. package/dist/ErrorState-B26k67-z.js.map +1 -1
  20. package/dist/FeatureIcon-BGE0Orkc.js.map +1 -1
  21. package/dist/Field-CP_-li9L.js +90 -0
  22. package/dist/Field-CP_-li9L.js.map +1 -0
  23. package/dist/{FieldLabel-QJ4rJFOi.js → FieldLabel-eyKmeWRn.js} +2 -2
  24. package/dist/FieldLabel-eyKmeWRn.js.map +1 -0
  25. package/dist/FolderSvg-cw0DxNVy.js.map +1 -1
  26. package/dist/{FormFooterTemplate-DPB6Dkxn.js → FormFooterTemplate-Cfn5Nmge.js} +3 -3
  27. package/dist/FormFooterTemplate-Cfn5Nmge.js.map +1 -0
  28. package/dist/FormHeader--F6b2aRk.js.map +1 -1
  29. package/dist/{FormStack-DO15vBgd.js → FormStack-Cc_ELdWL.js} +3 -3
  30. package/dist/FormStack-Cc_ELdWL.js.map +1 -0
  31. package/dist/HintState-BxrCAWqq.js.map +1 -1
  32. package/dist/Icon-DH3ev9GK.js.map +1 -1
  33. package/dist/IconButton-DwkpNgn3.js.map +1 -1
  34. package/dist/{IconTooltip-CKJKGHbk.js → IconTooltip-RSxvnBgH.js} +2 -2
  35. package/dist/IconTooltip-RSxvnBgH.js.map +1 -0
  36. package/dist/Indicator-AqxHWPA9.js.map +1 -1
  37. package/dist/InputGroup-BvD9Igmt.js.map +1 -1
  38. package/dist/InputOTP-B2e1nfSO.js.map +1 -1
  39. package/dist/Loader-BpHiL6W-.js.map +1 -1
  40. package/dist/MenuItem-d19Ty84F.js.map +1 -1
  41. package/dist/MenuItemShortcut-D1faeIXp.js.map +1 -1
  42. package/dist/MenuItemText-CRpaPbvg.js.map +1 -1
  43. package/dist/Overlay-CVt011mY.js.map +1 -1
  44. package/dist/{Popover-CY_d3Ggn.js → Popover-CRVD7AtB.js} +20 -19
  45. package/dist/Popover-CRVD7AtB.js.map +1 -0
  46. package/dist/RichButton-DuPTenmS.js.map +1 -1
  47. package/dist/ScrollArea-CuuTeDn3.js.map +1 -1
  48. package/dist/ScrollShadowContainer-DdrnF8qU.js.map +1 -1
  49. package/dist/{SearchSelectTag-DFCX9zT1.js → SearchSelectTag-CA7Ie3Nx.js} +2 -2
  50. package/dist/SearchSelectTag-CA7Ie3Nx.js.map +1 -0
  51. package/dist/{Select-B2WcoFf5.js → Select-MLPTpIl5.js} +24 -23
  52. package/dist/Select-MLPTpIl5.js.map +1 -0
  53. package/dist/{Sheet-zTMuP7C8.js → Sheet-qTIXsqm0.js} +3 -3
  54. package/dist/Sheet-qTIXsqm0.js.map +1 -0
  55. package/dist/Shortcut-D8L15_ed.js.map +1 -1
  56. package/dist/Skeleton-y6I-i9q5.js.map +1 -1
  57. package/dist/TableFillHandle-C_yvCTSl.js +65 -0
  58. package/dist/TableFillHandle-C_yvCTSl.js.map +1 -0
  59. package/dist/Tag-DdHXTyKF.js.map +1 -1
  60. package/dist/Text-DeBE8AKl.js.map +1 -1
  61. package/dist/TextInput-Cj50ImXi.js.map +1 -1
  62. package/dist/{TextOverflowTooltip-DlUgic5y.js → TextOverflowTooltip-B1I5qwAT.js} +2 -2
  63. package/dist/TextOverflowTooltip-B1I5qwAT.js.map +1 -0
  64. package/dist/Toggle-v_HT3Gm2.js.map +1 -1
  65. package/dist/{Tooltip-C4rVuWr4.js → Tooltip-7Duaau0S.js} +3 -3
  66. package/dist/Tooltip-7Duaau0S.js.map +1 -0
  67. package/dist/TriggerButton-CfDObWP9.js.map +1 -1
  68. package/dist/blocks/auth/otp-form.js +1 -1
  69. package/dist/blocks/auth/otp-form.js.map +1 -1
  70. package/dist/circle-BbEzypQJ.js +14 -0
  71. package/dist/circle-BbEzypQJ.js.map +1 -0
  72. package/dist/cn-dsXlqdJg.js.map +1 -1
  73. package/dist/components/alert/Alert.d.ts +4 -0
  74. package/dist/components/alert/Alert.stories.d.ts +1 -0
  75. package/dist/components/alert-dialog.js +3 -3
  76. package/dist/components/alert-dialog.js.map +1 -1
  77. package/dist/components/alert.js +18 -18
  78. package/dist/components/alert.js.map +1 -1
  79. package/dist/components/avatar.js.map +1 -1
  80. package/dist/components/background-pattern.js.map +1 -1
  81. package/dist/components/badge.js.map +1 -1
  82. package/dist/components/banner.js.map +1 -1
  83. package/dist/components/breadcrumb.js.map +1 -1
  84. package/dist/components/button.js.map +1 -1
  85. package/dist/components/calendar.js.map +1 -1
  86. package/dist/components/card.js +1 -1
  87. package/dist/components/card.js.map +1 -1
  88. package/dist/components/carousel.js.map +1 -1
  89. package/dist/components/checkbox.js +1 -1
  90. package/dist/components/collapsible.js.map +1 -1
  91. package/dist/components/color-tile.js.map +1 -1
  92. package/dist/components/command/Command.stories.d.ts +1 -0
  93. package/dist/components/command.js +1 -1
  94. package/dist/components/container.js.map +1 -1
  95. package/dist/components/context-menu/ContextMenu.d.ts +27 -0
  96. package/dist/components/context-menu/ContextMenu.stories.d.ts +10 -0
  97. package/dist/components/context-menu/index.d.ts +1 -0
  98. package/dist/components/context-menu.d.ts +2 -0
  99. package/dist/components/context-menu.js +2675 -0
  100. package/dist/components/context-menu.js.map +1 -0
  101. package/dist/components/counter.js.map +1 -1
  102. package/dist/components/dialog.js +3 -3
  103. package/dist/components/dialog.js.map +1 -1
  104. package/dist/components/divider.js.map +1 -1
  105. package/dist/components/drawer.js +3 -3
  106. package/dist/components/drawer.js.map +1 -1
  107. package/dist/components/dropdown.js +26 -25
  108. package/dist/components/dropdown.js.map +1 -1
  109. package/dist/components/error-state.js.map +1 -1
  110. package/dist/components/field/Field.d.ts +4 -0
  111. package/dist/components/field/Field.stories.d.ts +1 -0
  112. package/dist/components/field.js +1 -1
  113. package/dist/components/file-upload.js +2 -2
  114. package/dist/components/file-upload.js.map +1 -1
  115. package/dist/components/form.js +3 -3
  116. package/dist/components/form.js.map +1 -1
  117. package/dist/components/glass-toolbar.js.map +1 -1
  118. package/dist/components/icon-tooltip.js +1 -1
  119. package/dist/components/image-placeholder.js.map +1 -1
  120. package/dist/components/image-preview.js.map +1 -1
  121. package/dist/components/image-uploader.js.map +1 -1
  122. package/dist/components/input.js.map +1 -1
  123. package/dist/components/label.js +1 -1
  124. package/dist/components/menu-item.js.map +1 -1
  125. package/dist/components/overflow-tooltip.js +1 -1
  126. package/dist/components/page-state.js.map +1 -1
  127. package/dist/components/popover.js +1 -1
  128. package/dist/components/portal-container.js +2 -2
  129. package/dist/components/portal-container.js.map +1 -1
  130. package/dist/components/progress-circle.js.map +1 -1
  131. package/dist/components/progress.js.map +1 -1
  132. package/dist/components/prose.js.map +1 -1
  133. package/dist/components/radio-group.js +63 -72
  134. package/dist/components/radio-group.js.map +1 -1
  135. package/dist/components/resizable.js.map +1 -1
  136. package/dist/components/scheduler.js +1 -1
  137. package/dist/components/scheduler.js.map +1 -1
  138. package/dist/components/search-select.js +4 -4
  139. package/dist/components/search-select.js.map +1 -1
  140. package/dist/components/select.js +1 -1
  141. package/dist/components/sheet.js +1 -1
  142. package/dist/components/sidebar.js +206 -212
  143. package/dist/components/sidebar.js.map +1 -1
  144. package/dist/components/slider.js.map +1 -1
  145. package/dist/components/stepper.js.map +1 -1
  146. package/dist/components/switch/Switch.d.ts +1 -1
  147. package/dist/components/switch.js +5 -2
  148. package/dist/components/switch.js.map +1 -1
  149. package/dist/components/system-state.js +1 -1
  150. package/dist/components/system-state.js.map +1 -1
  151. package/dist/components/table/Table.d.ts +109 -5
  152. package/dist/components/table/Table.stories.d.ts +285 -9
  153. package/dist/components/table/column-reorder/index.d.ts +1 -0
  154. package/dist/components/table/column-reorder/useColumnReorder.d.ts +82 -0
  155. package/dist/components/table/column-reorder.d.ts +2 -0
  156. package/dist/components/table/column-reorder.js +6 -0
  157. package/dist/components/table/column-reorder.js.map +1 -0
  158. package/dist/components/table/column-resize/columnAutoFit.d.ts +21 -0
  159. package/dist/components/table/column-resize/columnResizeSession.d.ts +9 -0
  160. package/dist/components/table/column-resize/index.d.ts +3 -0
  161. package/dist/components/table/column-resize/useColumnResize.d.ts +52 -0
  162. package/dist/components/table/column-resize.d.ts +2 -0
  163. package/dist/components/table/column-resize.js +7 -0
  164. package/dist/components/table/column-resize.js.map +1 -0
  165. package/dist/components/table/editable/TableFillHandle.d.ts +23 -0
  166. package/dist/components/table/editable/cellRange.d.ts +83 -0
  167. package/dist/components/table/editable/editableCell.d.ts +90 -0
  168. package/dist/components/table/editable/index.d.ts +3 -0
  169. package/dist/components/table/editable.d.ts +2 -0
  170. package/dist/components/table/editable.js +12 -0
  171. package/dist/components/table/editable.js.map +1 -0
  172. package/dist/components/table/index.d.ts +8 -1
  173. package/dist/components/table/opaqueCell.d.ts +47 -0
  174. package/dist/components/table/rowTint.d.ts +60 -0
  175. package/dist/components/table/sticky/index.d.ts +1 -0
  176. package/dist/components/table/sticky/stickyCell.d.ts +105 -0
  177. package/dist/components/table/sticky.d.ts +2 -0
  178. package/dist/components/table/sticky.js +22 -0
  179. package/dist/components/table/sticky.js.map +1 -0
  180. package/dist/components/table/tableStoryData.d.ts +84 -0
  181. package/dist/components/table/tableStoryParts.d.ts +72 -0
  182. package/dist/components/table/tree/TableTree.d.ts +106 -0
  183. package/dist/components/table/tree/index.d.ts +3 -0
  184. package/dist/components/table/tree/treeGeometry.d.ts +86 -0
  185. package/dist/components/table/tree/treeModel.d.ts +87 -0
  186. package/dist/components/table/tree.d.ts +2 -0
  187. package/dist/components/table/tree.js +19 -0
  188. package/dist/components/table/tree.js.map +1 -0
  189. package/dist/components/table.js +52 -79
  190. package/dist/components/table.js.map +1 -1
  191. package/dist/components/tabs.js.map +1 -1
  192. package/dist/components/tag-input.js +2 -2
  193. package/dist/components/tag-input.js.map +1 -1
  194. package/dist/components/textarea.js.map +1 -1
  195. package/dist/components/timer.js.map +1 -1
  196. package/dist/components/toast.js.map +1 -1
  197. package/dist/components/toggle-group.js.map +1 -1
  198. package/dist/components/toolbar.js +1 -2
  199. package/dist/components/toolbar.js.map +1 -1
  200. package/dist/components/tooltip.js +1 -1
  201. package/dist/floating-ui.react-dom-BwDfy92G.js +1309 -0
  202. package/dist/floating-ui.react-dom-BwDfy92G.js.map +1 -0
  203. package/dist/formatBytes-C4QXq5lC.js.map +1 -1
  204. package/dist/hooks.js +1 -1
  205. package/dist/index-0ioNhtNM.js.map +1 -1
  206. package/dist/index-1SnkxfPR.js +230 -0
  207. package/dist/index-1SnkxfPR.js.map +1 -0
  208. package/dist/index-437EL2iq.js.map +1 -1
  209. package/dist/index-BDrapWDv.js.map +1 -1
  210. package/dist/index-BGQepRFJ.js.map +1 -1
  211. package/dist/index-BVqs-uqP.js.map +1 -1
  212. package/dist/index-BZPx6jYI.js.map +1 -1
  213. package/dist/index-Bb23HztA.js.map +1 -1
  214. package/dist/index-BjtNfqNq.js +333 -0
  215. package/dist/index-BjtNfqNq.js.map +1 -0
  216. package/dist/index-BpWB3aFK.js.map +1 -1
  217. package/dist/index-ByaXH_ih.js.map +1 -1
  218. package/dist/index-CCKe-Mpx.js.map +1 -1
  219. package/dist/index-CFaU3UXv.js.map +1 -1
  220. package/dist/index-CLuiUUQ8.js.map +1 -1
  221. package/dist/{index-CQD-Njgt.js → index-CMxHunQ4.js} +26 -25
  222. package/dist/index-CMxHunQ4.js.map +1 -0
  223. package/dist/index-CmBeyp2d.js.map +1 -1
  224. package/dist/index-DFZozV_h.js.map +1 -1
  225. package/dist/index-DHsfW5Rj.js.map +1 -1
  226. package/dist/index-DHyZ_0Ut.js.map +1 -1
  227. package/dist/index-DLcqcWxM.js.map +1 -1
  228. package/dist/index-DnnQs07z.js.map +1 -1
  229. package/dist/index-Uiy0Xwy2.js.map +1 -1
  230. package/dist/index-_ITz1IyW.js.map +1 -1
  231. package/dist/index.js.map +1 -1
  232. package/dist/inputBaseStyles-DbzD_jvq.js.map +1 -1
  233. package/dist/lib/utils/dom.d.ts +72 -0
  234. package/dist/lib/utils/styles.d.ts +1 -0
  235. package/dist/lib/utils.js.map +1 -1
  236. package/dist/opaqueCell-SGaiyL54.js +31 -0
  237. package/dist/opaqueCell-SGaiyL54.js.map +1 -0
  238. package/dist/plus-BpxYPnAG.js +15 -0
  239. package/dist/plus-BpxYPnAG.js.map +1 -0
  240. package/dist/styles-scoped.css +6684 -6413
  241. package/dist/styles.css +6423 -6152
  242. package/dist/theme.css +364 -362
  243. package/dist/treeModel-BlPWVj4W.js +319 -0
  244. package/dist/treeModel-BlPWVj4W.js.map +1 -0
  245. package/dist/types/css.d.ts +4 -4
  246. package/dist/useBreakpoints-DHvp74UL.js +31 -0
  247. package/dist/useBreakpoints-DHvp74UL.js.map +1 -0
  248. package/dist/useColumnReorder-BxVZQ_Y5.js +119 -0
  249. package/dist/useColumnReorder-BxVZQ_Y5.js.map +1 -0
  250. package/dist/useColumnResize-wjfEyBBg.js +130 -0
  251. package/dist/useColumnResize-wjfEyBBg.js.map +1 -0
  252. package/dist/useDebounce-BRah78CF.js.map +1 -1
  253. package/dist/useFileUpload-Bnl3P8mP.js.map +1 -1
  254. package/dist/useItemsKeyboardNavigation-CmeOR30y.js.map +1 -1
  255. package/dist/useMergeRefs-qoKniYqT.js.map +1 -1
  256. package/dist/usePortalContainer-BAIp0kSF.js +44 -0
  257. package/dist/usePortalContainer-BAIp0kSF.js.map +1 -0
  258. package/dist/vendors/date-fns/index.d.ts +7 -14
  259. package/dist/vendors/date-fns/locale/en-US/index.d.ts +4 -0
  260. package/dist/vendors/date-fns/locale/ru/index.d.ts +4 -0
  261. package/dist/vendors/react-day-picker/index.d.ts +8 -17
  262. package/dist/vendors/react-hook-form/index.d.ts +8 -15
  263. package/dist/vendors/tanstack/react-table/index.d.ts +12 -0
  264. package/dist/vendors/tanstack/react-table.js.map +1 -1
  265. package/dist/vendors/zod/index.d.ts +8 -9
  266. package/dist/zod-BMNoK3aM.js.map +1 -1
  267. package/package.json +207 -205
  268. package/tailwind.preset.js +452 -448
  269. package/dist/AlertIcon-5B6AgZpe.js.map +0 -1
  270. package/dist/CheckboxField-cX09-eBX.js.map +0 -1
  271. package/dist/Command-ClIm4U7r.js.map +0 -1
  272. package/dist/Dialog-Bs1B5Iu8.js.map +0 -1
  273. package/dist/Field-BiIWtq9o.js +0 -86
  274. package/dist/Field-BiIWtq9o.js.map +0 -1
  275. package/dist/FieldLabel-QJ4rJFOi.js.map +0 -1
  276. package/dist/FormFooterTemplate-DPB6Dkxn.js.map +0 -1
  277. package/dist/FormStack-DO15vBgd.js.map +0 -1
  278. package/dist/IconTooltip-CKJKGHbk.js.map +0 -1
  279. package/dist/Popover-CY_d3Ggn.js.map +0 -1
  280. package/dist/SearchSelectTag-DFCX9zT1.js.map +0 -1
  281. package/dist/Select-B2WcoFf5.js.map +0 -1
  282. package/dist/Sheet-zTMuP7C8.js.map +0 -1
  283. package/dist/TextOverflowTooltip-DlUgic5y.js.map +0 -1
  284. package/dist/Tooltip-C4rVuWr4.js.map +0 -1
  285. package/dist/components/data-table/DataTable.stories.d.ts +0 -8
  286. package/dist/design-tokens.source.json +0 -1
  287. package/dist/index-BzCriPiK.js +0 -671
  288. package/dist/index-BzCriPiK.js.map +0 -1
  289. package/dist/index-CQD-Njgt.js.map +0 -1
  290. package/dist/index-DRo26PBK.js +0 -1525
  291. package/dist/index-DRo26PBK.js.map +0 -1
  292. package/dist/useBreakpoints-D8wKOvil.js +0 -103
  293. package/dist/useBreakpoints-D8wKOvil.js.map +0 -1
  294. package/dist/usePortalContainer-ae6EzS08.js +0 -39
  295. package/dist/usePortalContainer-ae6EzS08.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"sidebar.js","sources":["../../node_modules/.pnpm/lucide-react@0.460.0_react@18.3.1/node_modules/lucide-react/dist/esm/icons/panel-left.js","../../node_modules/.pnpm/lucide-react@0.460.0_react@18.3.1/node_modules/lucide-react/dist/esm/icons/plus.js","../../src/components/sidebar/SidebarContext.tsx","../../src/components/sidebar/Sidebar.tsx"],"sourcesContent":["/**\n * @license lucide-react v0.460.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst PanelLeft = createLucideIcon(\"PanelLeft\", [\n [\"rect\", { width: \"18\", height: \"18\", x: \"3\", y: \"3\", rx: \"2\", key: \"afitv7\" }],\n [\"path\", { d: \"M9 3v18\", key: \"fh3hqa\" }]\n]);\n\nexport { PanelLeft as default };\n//# sourceMappingURL=panel-left.js.map\n","/**\n * @license lucide-react v0.460.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Plus = createLucideIcon(\"Plus\", [\n [\"path\", { d: \"M5 12h14\", key: \"1ays0h\" }],\n [\"path\", { d: \"M12 5v14\", key: \"s699le\" }]\n]);\n\nexport { Plus as default };\n//# sourceMappingURL=plus.js.map\n","import React from \"react\";\r\n\r\nexport type SidebarContextProps = {\r\n\tstate: \"expanded\" | \"collapsed\";\r\n\topen: boolean;\r\n\tsetOpen: (open: boolean) => void;\r\n\topenMobile: boolean;\r\n\tsetOpenMobile: (open: boolean) => void;\r\n\tisMobile: boolean;\r\n\ttoggleSidebar: () => void;\r\n};\r\n\r\nexport const SidebarContext = React.createContext<SidebarContextProps | null>(null);\r\n\r\nexport function useSidebar() {\r\n\tconst context = React.useContext(SidebarContext);\r\n\tif (!context) {\r\n\t\tthrow new Error(\"useSidebar must be used within a SidebarProvider.\");\r\n\t}\r\n\r\n\treturn context;\r\n}\r\n","import { useIsMobile } from \"@/hooks/useBreakpoints\";\r\nimport React from \"react\";\r\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from \"../tooltip\";\r\nimport { cn } from \"@/lib/utils\";\r\nimport { Sheet, SheetContent, SheetDescription, SheetHeader, SheetTitle } from \"../sheet/Sheet\";\r\nimport { Button, IconButton } from \"../button\";\r\nimport { PanelLeft, Plus } from \"lucide-react\";\r\nimport { TextInput } from \"../input\";\r\nimport { Divider } from \"../divider\";\r\nimport { Slot } from \"@radix-ui/react-slot\";\r\nimport { tv } from \"tailwind-variants\";\r\nimport { Skeleton } from \"../skeleton\";\r\nimport { SidebarContext, SidebarContextProps, useSidebar } from \"./SidebarContext\";\r\nimport { ScrollShadowContainer } from \"../scroll-shadow-container\";\r\nimport { VariantsConfig } from \"@/lib/utils/variants\";\r\n\r\nconst SIDEBAR_COOKIE_NAME = \"sidebar_state\";\r\nconst SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;\r\nconst SIDEBAR_WIDTH = \"16rem\";\r\nconst SIDEBAR_WIDTH_MOBILE = \"18rem\";\r\nconst SIDEBAR_WIDTH_ICON = \"3rem\";\r\nconst SIDEBAR_KEYBOARD_SHORTCUT = \"b\";\r\n\r\nconst sizebarProviderStyles = tv({\r\n\tbase: \"group/sidebar-wrapper flex min-h-svh w-full has-[[data-variant=inset]]:bg-primary-bg\"\r\n});\r\n\r\nconst SidebarProvider = React.forwardRef<\r\n\tHTMLDivElement,\r\n\tReact.ComponentProps<\"div\"> & {\r\n\t\tdefaultOpen?: boolean;\r\n\t\topen?: boolean;\r\n\t\tonOpenChange?: (open: boolean) => void;\r\n\t}\r\n>(({ defaultOpen = true, open: openProp, onOpenChange: setOpenProp, className, style, children, ...props }, ref) => {\r\n\tconst isMobile = useIsMobile();\r\n\tconst [openMobile, setOpenMobile] = React.useState(false);\r\n\r\n\t// This is the internal state of the sidebar.\r\n\t// We use openProp and setOpenProp for control from outside the component.\r\n\tconst [_open, _setOpen] = React.useState(defaultOpen);\r\n\tconst open = openProp ?? _open;\r\n\tconst setOpen = React.useCallback(\r\n\t\t(value: boolean | ((value: boolean) => boolean)) => {\r\n\t\t\tconst openState = typeof value === \"function\" ? value(open) : value;\r\n\t\t\tif (setOpenProp) {\r\n\t\t\t\tsetOpenProp(openState);\r\n\t\t\t} else {\r\n\t\t\t\t_setOpen(openState);\r\n\t\t\t}\r\n\r\n\t\t\t// This sets the cookie to keep the sidebar state.\r\n\t\t\tdocument.cookie = `${SIDEBAR_COOKIE_NAME}=${openState}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`;\r\n\t\t},\r\n\t\t[setOpenProp, open]\r\n\t);\r\n\r\n\t// Helper to toggle the sidebar.\r\n\tconst toggleSidebar = React.useCallback(() => {\r\n\t\treturn isMobile ? setOpenMobile((open) => !open) : setOpen((open) => !open);\r\n\t}, [isMobile, setOpen, setOpenMobile]);\r\n\r\n\t// Adds a keyboard shortcut to toggle the sidebar.\r\n\tReact.useEffect(() => {\r\n\t\tconst handleKeyDown = (event: KeyboardEvent) => {\r\n\t\t\tif (event.key === SIDEBAR_KEYBOARD_SHORTCUT && (event.metaKey || event.ctrlKey)) {\r\n\t\t\t\tevent.preventDefault();\r\n\t\t\t\ttoggleSidebar();\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\twindow.addEventListener(\"keydown\", handleKeyDown);\r\n\t\treturn () => window.removeEventListener(\"keydown\", handleKeyDown);\r\n\t}, [toggleSidebar]);\r\n\r\n\t// We add a state so that we can do data-state=\"expanded\" or \"collapsed\".\r\n\t// This makes it easier to style the sidebar with Tailwind classes.\r\n\tconst state = open ? \"expanded\" : \"collapsed\";\r\n\r\n\tconst contextValue = React.useMemo<SidebarContextProps>(\r\n\t\t() => ({\r\n\t\t\tstate,\r\n\t\t\topen,\r\n\t\t\tsetOpen,\r\n\t\t\tisMobile,\r\n\t\t\topenMobile,\r\n\t\t\tsetOpenMobile,\r\n\t\t\ttoggleSidebar\r\n\t\t}),\r\n\t\t[state, open, setOpen, isMobile, openMobile, setOpenMobile, toggleSidebar]\r\n\t);\r\n\r\n\treturn (\r\n\t\t<SidebarContext.Provider value={contextValue}>\r\n\t\t\t<TooltipProvider delayDuration={0}>\r\n\t\t\t\t<div\r\n\t\t\t\t\tstyle={\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\"--sidebar-width\": SIDEBAR_WIDTH,\r\n\t\t\t\t\t\t\t\"--sidebar-width-icon\": SIDEBAR_WIDTH_ICON,\r\n\t\t\t\t\t\t\t...style\r\n\t\t\t\t\t\t} as React.CSSProperties\r\n\t\t\t\t\t}\r\n\t\t\t\t\tclassName={sizebarProviderStyles({ className })}\r\n\t\t\t\t\tref={ref}\r\n\t\t\t\t\t{...props}\r\n\t\t\t\t>\r\n\t\t\t\t\t{children}\r\n\t\t\t\t</div>\r\n\t\t\t</TooltipProvider>\r\n\t\t</SidebarContext.Provider>\r\n\t);\r\n});\r\nSidebarProvider.displayName = \"SidebarProvider\";\r\n\r\nconst Sidebar = React.forwardRef<\r\n\tHTMLDivElement,\r\n\tReact.ComponentProps<\"div\"> & {\r\n\t\tside?: \"left\" | \"right\";\r\n\t\tvariant?: \"sidebar\" | \"floating\" | \"inset\";\r\n\t\tcollapsible?: \"offcanvas\" | \"icon\" | \"none\";\r\n\t}\r\n>(({ side = \"left\", variant = \"sidebar\", collapsible = \"offcanvas\", className, children, ...props }, ref) => {\r\n\tconst { isMobile, state, openMobile, setOpenMobile } = useSidebar();\r\n\r\n\tif (collapsible === \"none\") {\r\n\t\treturn (\r\n\t\t\t<div\r\n\t\t\t\tclassName={cn(\r\n\t\t\t\t\t\"text-sidebar-foreground flex h-full w-[--sidebar-width] flex-col bg-sidebar-bg\",\r\n\t\t\t\t\tclassName\r\n\t\t\t\t)}\r\n\t\t\t\tref={ref}\r\n\t\t\t\t{...props}\r\n\t\t\t>\r\n\t\t\t\t{children}\r\n\t\t\t</div>\r\n\t\t);\r\n\t}\r\n\r\n\tif (isMobile) {\r\n\t\treturn (\r\n\t\t\t<Sheet open={openMobile} onOpenChange={setOpenMobile} {...props}>\r\n\t\t\t\t<SheetContent\r\n\t\t\t\t\tdata-sidebar=\"sidebar\"\r\n\t\t\t\t\tdata-mobile=\"true\"\r\n\t\t\t\t\tclassName=\"w-[--sidebar-width] bg-sidebar-bg p-0 text-secondary-fg [&>button]:hidden\"\r\n\t\t\t\t\tstyle={\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\"--sidebar-width\": SIDEBAR_WIDTH_MOBILE\r\n\t\t\t\t\t\t} as React.CSSProperties\r\n\t\t\t\t\t}\r\n\t\t\t\t\tside={side}\r\n\t\t\t\t>\r\n\t\t\t\t\t<SheetHeader className=\"sr-only\">\r\n\t\t\t\t\t\t<SheetTitle>Sidebar</SheetTitle>\r\n\t\t\t\t\t\t<SheetDescription>Displays the mobile sidebar.</SheetDescription>\r\n\t\t\t\t\t</SheetHeader>\r\n\t\t\t\t\t<div className=\"flex h-full w-full flex-col\">{children}</div>\r\n\t\t\t\t</SheetContent>\r\n\t\t\t</Sheet>\r\n\t\t);\r\n\t}\r\n\r\n\treturn (\r\n\t\t<div\r\n\t\t\tref={ref}\r\n\t\t\tclassName=\"text-sidebar-foreground group peer hidden md:block\"\r\n\t\t\tdata-state={state}\r\n\t\t\tdata-collapsible={state === \"collapsed\" ? collapsible : \"\"}\r\n\t\t\tdata-variant={variant}\r\n\t\t\tdata-side={side}\r\n\t\t>\r\n\t\t\t{/* This is what handles the sidebar gap on desktop */}\r\n\t\t\t<div\r\n\t\t\t\tclassName={cn(\r\n\t\t\t\t\t\"relative w-[--sidebar-width] bg-transparent transition-[width] duration-200 ease-linear\",\r\n\t\t\t\t\t\"group-data-[collapsible=offcanvas]:w-0\",\r\n\t\t\t\t\t\"group-data-[side=right]:rotate-180\",\r\n\t\t\t\t\tvariant === \"floating\" || variant === \"inset\"\r\n\t\t\t\t\t\t? \"group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)_+_theme(spacing.4))]\"\r\n\t\t\t\t\t\t: \"group-data-[collapsible=icon]:w-[--sidebar-width-icon]\"\r\n\t\t\t\t)}\r\n\t\t\t/>\r\n\t\t\t<div\r\n\t\t\t\tclassName={cn(\r\n\t\t\t\t\t\"fixed inset-y-0 z-10 hidden h-svh w-[--sidebar-width] transition-[left,right,width] duration-200 ease-linear md:flex\",\r\n\t\t\t\t\tside === \"left\"\r\n\t\t\t\t\t\t? \"left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]\"\r\n\t\t\t\t\t\t: \"right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]\",\r\n\t\t\t\t\t// Adjust the padding for floating and inset variants.\r\n\t\t\t\t\tvariant === \"floating\" || variant === \"inset\"\r\n\t\t\t\t\t\t? \"p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)_+_theme(spacing.4)_+2px)]\"\r\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 group-data-[side=left]:border-secondary-border group-data-[side=right]:border-secondary-border\",\r\n\t\t\t\t\tclassName\r\n\t\t\t\t)}\r\n\t\t\t\t{...props}\r\n\t\t\t>\r\n\t\t\t\t<div\r\n\t\t\t\t\tdata-sidebar=\"sidebar\"\r\n\t\t\t\t\tclassName=\"flex h-full w-full flex-col bg-sidebar-bg group-data-[variant=floating]:rounded-xl group-data-[variant=floating]:border-0.5 group-data-[variant=floating]:border-primary-border group-data-[variant=floating]:shadow-soft-xl\"\r\n\t\t\t\t>\r\n\t\t\t\t\t{children}\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t);\r\n});\r\n\r\nSidebar.displayName = \"Sidebar\";\r\n\r\nconst SidebarTrigger = React.forwardRef<React.ElementRef<typeof Button>, React.ComponentProps<typeof Button>>(\r\n\t({ onClick, ...props }, ref) => {\r\n\t\tconst { toggleSidebar } = useSidebar();\r\n\r\n\t\treturn (\r\n\t\t\t<IconButton\r\n\t\t\t\ticon={PanelLeft}\r\n\t\t\t\tref={ref}\r\n\t\t\t\tdata-sidebar=\"trigger\"\r\n\t\t\t\tvariant=\"ghost\"\r\n\t\t\t\tonClick={(event) => {\r\n\t\t\t\t\tonClick?.(event);\r\n\t\t\t\t\ttoggleSidebar();\r\n\t\t\t\t}}\r\n\t\t\t\t{...props}\r\n\t\t\t>\r\n\t\t\t\t<span className=\"sr-only\">Toggle Sidebar</span>\r\n\t\t\t</IconButton>\r\n\t\t);\r\n\t}\r\n);\r\n\r\nSidebarTrigger.displayName = \"SidebarTrigger\";\r\n\r\nconst sidebarRailStyles = tv({\r\n\tbase: [\r\n\t\t\"absolute inset-y-0 z-20 hidden w-[5px] -translate-x-1/2 transition-all ease-linear after:absolute after:inset-y-0 after:left-1/2 after:w-0 hover:after:-translate-x-1/2 hover:after:border-l hover:after:border-primary-border group-data-[side=left]:-right-[5px] group-data-[side=right]:left-0 sm:flex\",\r\n\t\t\"cursor-ew-resize\",\r\n\t\t\"group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full group-data-[collapsible=offcanvas]:hover:bg-secondary-border\",\r\n\t\t\"[[data-side=left][data-collapsible=offcanvas]_&]:-right-[2.5px]\",\r\n\t\t\"[[data-side=right][data-collapsible=offcanvas]_&]:-left-[2.5px]\"\r\n\t]\r\n});\r\n\r\nconst SidebarRail = React.forwardRef<HTMLButtonElement, React.ComponentProps<\"button\">>(\r\n\t({ className, ...props }, ref) => {\r\n\t\tconst { toggleSidebar } = useSidebar();\r\n\r\n\t\treturn (\r\n\t\t\t<button\r\n\t\t\t\tref={ref}\r\n\t\t\t\tdata-sidebar=\"rail\"\r\n\t\t\t\taria-label=\"Toggle Sidebar\"\r\n\t\t\t\ttabIndex={-1}\r\n\t\t\t\tonClick={toggleSidebar}\r\n\t\t\t\ttitle=\"Toggle Sidebar\"\r\n\t\t\t\tclassName={sidebarRailStyles({ className })}\r\n\t\t\t\t{...props}\r\n\t\t\t/>\r\n\t\t);\r\n\t}\r\n);\r\n\r\nSidebarRail.displayName = \"SidebarRail\";\r\n\r\nconst sidebarInsetStyles = tv({\r\n\tbase: [\r\n\t\t\"relative flex w-full flex-1 flex-col bg-secondary-bg\",\r\n\t\t\"md:peer-data-[variant=inset]:m-2 md:peer-data-[state=collapsed]:peer-data-[variant=inset]:ml-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow\"\r\n\t]\r\n});\r\n\r\nconst SidebarInset = React.forwardRef<HTMLDivElement, React.ComponentProps<\"main\">>(({ className, ...props }, ref) => {\r\n\treturn <main ref={ref} className={sidebarInsetStyles({ className })} {...props} />;\r\n});\r\n\r\nSidebarInset.displayName = \"SidebarInset\";\r\n\r\nconst sidebarInputStyles = tv({\r\n\tbase: \"h-8 w-full shadow-none\"\r\n});\r\n\r\nconst SidebarInput = React.forwardRef<React.ElementRef<typeof TextInput>, React.ComponentProps<typeof TextInput>>(\r\n\t({ className, ...props }, ref) => {\r\n\t\treturn <TextInput ref={ref} data-sidebar=\"input\" className={sidebarInputStyles({ className })} {...props} />;\r\n\t}\r\n);\r\n\r\nSidebarInput.displayName = \"SidebarInput\";\r\n\r\nconst sidebarHeaderStyles = tv({\r\n\tbase: \"flex flex-col gap-2 p-2 group-data-[variant=floating]:px-2.5\"\r\n});\r\n\r\nconst SidebarHeader = React.forwardRef<HTMLDivElement, React.ComponentProps<\"div\">>(({ className, ...props }, ref) => {\r\n\treturn <div ref={ref} data-sidebar=\"header\" className={sidebarHeaderStyles({ className })} {...props} />;\r\n});\r\n\r\nSidebarHeader.displayName = \"SidebarHeader\";\r\n\r\nconst sidebarFooterStyles = tv({\r\n\tbase: \"flex flex-col gap-2 p-2 group-data-[variant=floating]:px-2.5\"\r\n});\r\n\r\nconst SidebarFooter = React.forwardRef<HTMLDivElement, React.ComponentProps<\"div\">>(({ className, ...props }, ref) => {\r\n\treturn <div ref={ref} data-sidebar=\"footer\" className={sidebarFooterStyles({ className })} {...props} />;\r\n});\r\n\r\nSidebarFooter.displayName = \"SidebarFooter\";\r\n\r\nconst sidebarSeparatorStyles = tv({\r\n\tbase: \"w-auto bg-secondary-border\"\r\n});\r\n\r\nconst SidebarSeparator = React.forwardRef<React.ElementRef<typeof Divider>, React.ComponentProps<typeof Divider>>(\r\n\t({ className, ...props }, ref) => {\r\n\t\treturn (\r\n\t\t\t<Divider\r\n\t\t\t\tref={ref}\r\n\t\t\t\torientation=\"horizontal\"\r\n\t\t\t\tdata-sidebar=\"separator\"\r\n\t\t\t\tclassName={sidebarSeparatorStyles({ className })}\r\n\t\t\t\t{...props}\r\n\t\t\t/>\r\n\t\t);\r\n\t}\r\n);\r\n\r\nSidebarSeparator.displayName = \"SidebarSeparator\";\r\n\r\nconst sidebarContentStyles = tv({\r\n\tslots: {\r\n\t\tcontent: \"flex flex-1 flex-col gap-2 group-data-[collapsible=icon]:overflow-hidden\"\r\n\t}\r\n});\r\n\r\nconst SidebarContent = React.forwardRef<HTMLDivElement, React.ComponentProps<\"div\">>(\r\n\t({ className, children, ...props }, ref) => {\r\n\t\tconst styles = sidebarContentStyles();\r\n\r\n\t\treturn (\r\n\t\t\t<ScrollShadowContainer\r\n\t\t\t\tref={ref}\r\n\t\t\t\tdata-sidebar=\"content\"\r\n\t\t\t\tclassName={styles.content({ className })}\r\n\t\t\t\tshadowSize={32}\r\n\t\t\t\t{...props}\r\n\t\t\t>\r\n\t\t\t\t{children}\r\n\t\t\t</ScrollShadowContainer>\r\n\t\t);\r\n\t}\r\n);\r\n\r\nSidebarContent.displayName = \"SidebarContent\";\r\n\r\nconst sidebarGroupStyles = tv({\r\n\tbase: \"relative flex w-full min-w-0 flex-col p-2 group-data-[variant=floating]:px-2.5\"\r\n});\r\n\r\nconst SidebarGroup = React.forwardRef<HTMLDivElement, React.ComponentProps<\"div\">>(({ className, ...props }, ref) => {\r\n\treturn <div ref={ref} data-sidebar=\"group\" className={sidebarGroupStyles({ className })} {...props} />;\r\n});\r\n\r\nSidebarGroup.displayName = \"SidebarGroup\";\r\n\r\nconst sidebarGroupLabelStyles = tv({\r\n\tbase: [\r\n\t\t\"flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium text-secondary-fg/70 outline-none transition-[margin,opacity] duration-200 ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0\",\r\n\t\t\"group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0\"\r\n\t]\r\n});\r\n\r\nconst SidebarGroupLabel = React.forwardRef<HTMLDivElement, React.ComponentProps<\"div\"> & { asChild?: boolean }>(\r\n\t({ className, asChild = false, ...props }, ref) => {\r\n\t\tconst Comp = asChild ? Slot : \"div\";\r\n\r\n\t\treturn (\r\n\t\t\t<Comp ref={ref} data-sidebar=\"group-label\" className={sidebarGroupLabelStyles({ className })} {...props} />\r\n\t\t);\r\n\t}\r\n);\r\n\r\nSidebarGroupLabel.displayName = \"SidebarGroupLabel\";\r\n\r\nconst sidebarGroupActionStyles = tv({\r\n\tbase: [\r\n\t\t\"focus-visible:ring-primary2 absolute right-3 top-3.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-muted outline-none transition-transform hover:text-primary-fg focus-visible:shadow-focus [&>svg]:size-4 [&>svg]:shrink-0\",\r\n\t\t// Increases the hit area of the button on mobile.\r\n\t\t\"after:absolute after:-inset-2 after:md:hidden\",\r\n\t\t\"group-data-[collapsible=icon]:hidden\"\r\n\t]\r\n});\r\n\r\nconst SidebarGroupAction = React.forwardRef<HTMLButtonElement, React.ComponentProps<\"button\"> & { asChild?: boolean }>(\r\n\t({ className, asChild = false, ...props }, ref) => {\r\n\t\tconst Comp = asChild ? Slot : \"button\";\r\n\r\n\t\treturn (\r\n\t\t\t<Comp\r\n\t\t\t\tref={ref}\r\n\t\t\t\tdata-sidebar=\"group-action\"\r\n\t\t\t\tclassName={sidebarGroupActionStyles({ className })}\r\n\t\t\t\t{...props}\r\n\t\t\t/>\r\n\t\t);\r\n\t}\r\n);\r\n\r\nSidebarGroupAction.displayName = \"SidebarGroupAction\";\r\n\r\nconst sidebarGroupContentStyles = tv({\r\n\tbase: \"w-full text-sm\"\r\n});\r\n\r\nconst SidebarGroupContent = React.forwardRef<HTMLDivElement, React.ComponentProps<\"div\">>(\r\n\t({ className, ...props }, ref) => (\r\n\t\t<div ref={ref} data-sidebar=\"group-content\" className={sidebarGroupContentStyles({ className })} {...props} />\r\n\t)\r\n);\r\n\r\nSidebarGroupContent.displayName = \"SidebarGroupContent\";\r\n\r\nconst sidebarMenuStyles = tv({\r\n\tbase: \"flex w-full min-w-0 flex-col gap-1\"\r\n});\r\n\r\nconst SidebarMenu = React.forwardRef<HTMLUListElement, React.ComponentProps<\"ul\">>(({ className, ...props }, ref) => (\r\n\t<ul ref={ref} data-sidebar=\"menu\" className={sidebarMenuStyles({ className })} {...props} />\r\n));\r\n\r\nSidebarMenu.displayName = \"SidebarMenu\";\r\n\r\nconst sidebarMenuItemStyles = tv({\r\n\tbase: \"group/menu-item relative\"\r\n});\r\n\r\nconst SidebarMenuItem = React.forwardRef<HTMLLIElement, React.ComponentProps<\"li\">>(({ className, ...props }, ref) => (\r\n\t<li ref={ref} data-sidebar=\"menu-item\" className={sidebarMenuItemStyles({ className })} {...props} />\r\n));\r\n\r\nSidebarMenuItem.displayName = \"SidebarMenuItem\";\r\n\r\nexport interface SidebarMenuButtonVariants {\r\n\tvariant?: \"default\" | \"outline\";\r\n\tsize?: \"default\" | \"sm\" | \"lg\";\r\n}\r\n\r\nconst sidebarMenuButtonStyles = tv({\r\n\tbase: [\r\n\t\t\"peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md bg-primary-bg p-2 text-left text-sm text-secondary-fg outline-none transition-[width,height,padding]\",\r\n\t\t\"hover:bg-primary-bg-hover hover:text-primary-fg focus-visible:shadow-focus\",\r\n\t\t\"disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50\",\r\n\t\t\"data-[active=true]:bg-primary-bg-hover data-[active=true]:font-medium data-[active=true]:text-primary-accent\",\r\n\t\t\"data-[active=true]:hover:bg-primary-bg-hover data-[active=true]:hover:text-primary-accent\",\r\n\t\t\"data-[state=open]:hover:bg-primary-bg-hover data-[state=open]:hover:text-primary-fg\",\r\n\t\t\"data-[active=true]:data-[state=open]:hover:bg-primary-bg-hover data-[active=true]:data-[state=open]:hover:text-primary-accent\",\r\n\t\t\"group-data-[collapsible=icon]:!size-8 group-data-[collapsible=icon]:!p-2 [&>span:last-child]:truncate\",\r\n\t\t\"[&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:text-muted [&[data-active=true]>svg]:text-primary-accent\",\r\n\t\t\"group-data-[collapsible=icon]:[&>svg]:text-secondary-fg group-data-[collapsible=icon]:[&>svg]:hover:text-primary-fg group-data-[collapsible=icon]:[&[data-active=true]>svg]:text-primary-accent\",\r\n\t\t\"group-has-[[data-sidebar=menu-action]]/menu-item:pr-8\"\r\n\t],\r\n\tvariants: {\r\n\t\tvariant: {\r\n\t\t\tdefault: \"hover:bg-primary-bg-hover hover:text-primary-fg\",\r\n\t\t\toutline:\r\n\t\t\t\t\"border border-secondary-border bg-primary-bg shadow-soft-sm hover:bg-primary-bg-hover hover:text-primary-fg\"\r\n\t\t},\r\n\t\tsize: {\r\n\t\t\tdefault: \"h-8 text-sm\",\r\n\t\t\tsm: \"h-7 text-xs\",\r\n\t\t\tlg: \"h-12 text-sm group-data-[collapsible=icon]:!p-0\"\r\n\t\t}\r\n\t} satisfies VariantsConfig<SidebarMenuButtonVariants>,\r\n\tdefaultVariants: {\r\n\t\tvariant: \"default\",\r\n\t\tsize: \"default\"\r\n\t}\r\n});\r\n\r\nconst SidebarMenuButton = React.forwardRef<\r\n\tHTMLButtonElement,\r\n\tReact.ComponentProps<\"button\"> & {\r\n\t\tasChild?: boolean;\r\n\t\tisActive?: boolean;\r\n\t\ttooltip?: string | React.ComponentProps<typeof TooltipContent>;\r\n\t} & SidebarMenuButtonVariants\r\n>(({ asChild = false, isActive = false, variant = \"default\", size = \"default\", tooltip, className, ...props }, ref) => {\r\n\tconst Comp = asChild ? Slot : \"button\";\r\n\tconst { isMobile, state } = useSidebar();\r\n\r\n\tconst button = (\r\n\t\t<Comp\r\n\t\t\tref={ref}\r\n\t\t\tdata-sidebar=\"menu-button\"\r\n\t\t\tdata-size={size}\r\n\t\t\tdata-active={isActive}\r\n\t\t\tclassName={cn(sidebarMenuButtonStyles({ variant, size }), className)}\r\n\t\t\t{...props}\r\n\t\t/>\r\n\t);\r\n\r\n\tif (!tooltip) {\r\n\t\treturn button;\r\n\t}\r\n\r\n\tif (typeof tooltip === \"string\") {\r\n\t\ttooltip = {\r\n\t\t\tchildren: tooltip\r\n\t\t};\r\n\t}\r\n\r\n\treturn (\r\n\t\t<Tooltip>\r\n\t\t\t<TooltipTrigger asChild>{button}</TooltipTrigger>\r\n\t\t\t<TooltipContent side=\"right\" align=\"center\" hidden={state !== \"collapsed\" || isMobile} {...tooltip} />\r\n\t\t</Tooltip>\r\n\t);\r\n});\r\n\r\nSidebarMenuButton.displayName = \"SidebarMenuButton\";\r\n\r\nconst sidebarMenuActionStyles = tv({\r\n\tbase: [\r\n\t\t\"absolute right-1 top-1.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-muted outline-none transition-transform hover:text-primary-fg focus-visible:ring-1 focus-visible:ring-primary peer-hover/menu-button:text-primary-fg [&>svg]:size-4 [&>svg]:shrink-0\",\r\n\t\t// Increases the hit area of the button on mobile.\r\n\t\t\"after:absolute after:-inset-2 after:md:hidden\",\r\n\t\t\"peer-data-[size=sm]/menu-button:top-1\",\r\n\t\t\"peer-data-[size=default]/menu-button:top-1.5\",\r\n\t\t\"peer-data-[size=lg]/menu-button:top-2.5\",\r\n\t\t\"group-data-[collapsible=icon]:hidden\"\r\n\t],\r\n\tvariants: {\r\n\t\tisHover: {\r\n\t\t\ttrue: \"group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 peer-data-[active=true]/menu-button:text-primary-accent md:opacity-0\"\r\n\t\t}\r\n\t}\r\n});\r\n\r\nconst SidebarMenuAction = React.forwardRef<\r\n\tHTMLButtonElement,\r\n\tReact.ComponentProps<\"button\"> & {\r\n\t\tasChild?: boolean;\r\n\t\tshowOnHover?: boolean;\r\n\t}\r\n>(({ className, asChild = false, showOnHover = false, ...props }, ref) => {\r\n\tconst Comp = asChild ? Slot : \"button\";\r\n\r\n\treturn (\r\n\t\t<Comp\r\n\t\t\tref={ref}\r\n\t\t\tdata-sidebar=\"menu-action\"\r\n\t\t\tclassName={sidebarMenuActionStyles({ isHover: showOnHover, className })}\r\n\t\t\t{...props}\r\n\t\t/>\r\n\t);\r\n});\r\n\r\nSidebarMenuAction.displayName = \"SidebarMenuAction\";\r\n\r\nconst sidebarMenuBadgeStyles = tv({\r\n\tbase: [\r\n\t\t\"pointer-events-none absolute right-1 flex h-5 min-w-5 select-none items-center justify-center rounded-md px-1 text-xs font-normal tabular-nums leading-none text-muted\",\r\n\t\t\"peer-hover/menu-button:text-muted peer-disabled/menu-button:opacity-50 peer-data-[active=true]/menu-button:text-muted\",\r\n\t\t\"peer-data-[size=sm]/menu-button:top-1\",\r\n\t\t\"peer-data-[size=default]/menu-button:top-1.5\",\r\n\t\t\"peer-data-[size=lg]/menu-button:top-2.5\",\r\n\t\t\"group-data-[collapsible=icon]:hidden\"\r\n\t]\r\n});\r\n\r\nconst SidebarMenuBadge = React.forwardRef<HTMLDivElement, React.ComponentProps<\"div\">>(\r\n\t({ className, ...props }, ref) => (\r\n\t\t<div ref={ref} data-sidebar=\"menu-badge\" className={sidebarMenuBadgeStyles({ className })} {...props} />\r\n\t)\r\n);\r\n\r\nSidebarMenuBadge.displayName = \"SidebarMenuBadge\";\r\n\r\nconst sidebarMenuSkeletonStyles = tv({\r\n\tslots: {\r\n\t\twrapper: \"flex h-8 items-center gap-2 rounded-md px-2\",\r\n\t\tskeleton: \"h-4 max-w-[--skeleton-width] flex-1\",\r\n\t\tskeletonIcon: \"size-4 rounded-md\"\r\n\t}\r\n});\r\n\r\nconst SidebarMenuSkeleton = React.forwardRef<\r\n\tHTMLDivElement,\r\n\tReact.ComponentProps<\"div\"> & {\r\n\t\tshowIcon?: boolean;\r\n\t}\r\n>(({ className, showIcon = false, ...props }, ref) => {\r\n\t// Random width between 50 to 90%.\r\n\tconst width = React.useMemo(() => {\r\n\t\treturn `${Math.floor(Math.random() * 40) + 50}%`;\r\n\t}, []);\r\n\r\n\tconst styles = sidebarMenuSkeletonStyles();\r\n\r\n\treturn (\r\n\t\t<div ref={ref} data-sidebar=\"menu-skeleton\" className={styles.wrapper({ className })} {...props}>\r\n\t\t\t{showIcon && <Skeleton className={styles.skeletonIcon()} data-sidebar=\"menu-skeleton-icon\" />}\r\n\t\t\t<Skeleton\r\n\t\t\t\tclassName={styles.skeleton()}\r\n\t\t\t\tdata-sidebar=\"menu-skeleton-text\"\r\n\t\t\t\tstyle={\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t\"--skeleton-width\": width\r\n\t\t\t\t\t} as React.CSSProperties\r\n\t\t\t\t}\r\n\t\t\t/>\r\n\t\t</div>\r\n\t);\r\n});\r\n\r\nSidebarMenuSkeleton.displayName = \"SidebarMenuSkeleton\";\r\n\r\nconst sidebarMenuSubStyles = tv({\r\n\tbase: [\r\n\t\t\"ml-3.5 flex min-w-0 flex-col gap-1 border-l border-secondary-border py-0.5 pl-2.5\",\r\n\t\t\"group-data-[collapsible=icon]:hidden\"\r\n\t]\r\n});\r\n\r\nconst SidebarMenuSub = React.forwardRef<HTMLUListElement, React.ComponentProps<\"ul\">>(\r\n\t({ className, ...props }, ref) => (\r\n\t\t<ul ref={ref} data-sidebar=\"menu-sub\" className={sidebarMenuSubStyles({ className })} {...props} />\r\n\t)\r\n);\r\n\r\nSidebarMenuSub.displayName = \"SidebarMenuSub\";\r\n\r\nconst sidebarMenuSubItemStyles = tv({\r\n\tbase: \"rounded-md focus-visible:shadow-focus focus-visible:outline-none\"\r\n});\r\n\r\nconst SidebarMenuSubItem = React.forwardRef<HTMLLIElement, React.ComponentProps<\"li\">>(\r\n\t({ className, ...props }, ref) => <li ref={ref} className={sidebarMenuSubItemStyles({ className })} {...props} />\r\n);\r\n\r\nSidebarMenuSubItem.displayName = \"SidebarMenuSubItem\";\r\n\r\nconst sidebarMenuSubButtonStyles = tv({\r\n\tbase: [\r\n\t\t\"flex h-7 min-w-0 items-center gap-2 overflow-hidden rounded-md px-2 text-secondary-fg outline-none hover:bg-secondary-bg-hover hover:text-primary-fg focus-visible:mr-0.5 focus-visible:shadow-focus 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 [&>svg]:text-primary-fg\",\r\n\t\t\"data-[active=true]:bg-primary-bg-hover data-[active=true]:text-primary-accent\",\r\n\t\t\"group-data-[collapsible=icon]:hidden\"\r\n\t],\r\n\tvariants: {\r\n\t\tsize: {\r\n\t\t\tsm: \"text-xs\",\r\n\t\t\tmd: \"text-sm\"\r\n\t\t}\r\n\t}\r\n});\r\n\r\nconst SidebarMenuSubButton = React.forwardRef<\r\n\tHTMLAnchorElement,\r\n\tReact.ComponentProps<\"a\"> & {\r\n\t\tasChild?: boolean;\r\n\t\tsize?: \"sm\" | \"md\";\r\n\t\tisActive?: boolean;\r\n\t}\r\n>(({ asChild = false, size = \"md\", isActive, className, ...props }, ref) => {\r\n\tconst Comp = asChild ? Slot : \"a\";\r\n\r\n\treturn (\r\n\t\t<Comp\r\n\t\t\tref={ref}\r\n\t\t\tdata-sidebar=\"menu-sub-button\"\r\n\t\t\tdata-size={size}\r\n\t\t\tdata-active={isActive}\r\n\t\t\tclassName={sidebarMenuSubButtonStyles({ size, className })}\r\n\t\t\t{...props}\r\n\t\t/>\r\n\t);\r\n});\r\n\r\nSidebarMenuSubButton.displayName = \"SidebarMenuSubButton\";\r\n\r\nconst sidebarInsertionLineStyles = tv({\r\n\tslots: {\r\n\t\twrapper: \"group/insertion flex cursor-pointer flex-row items-center border-none bg-transparent p-0\",\r\n\t\ticon: \"peer/icon h-4 w-4 p-0.5 text-muted opacity-0 group-hover/insertion:opacity-100\",\r\n\t\tline: \"h-px w-full bg-transparent group-hover/insertion:bg-muted peer-hover/icon:bg-primary-fg\"\r\n\t}\r\n});\r\n\r\nexport type SidebarInsertionLineProps = React.HTMLAttributes<HTMLDivElement>;\r\n\r\nconst SidebarInsertionLine = React.forwardRef<HTMLDivElement, SidebarInsertionLineProps>(\r\n\t({ className, ...props }, ref) => {\r\n\t\tconst styles = sidebarInsertionLineStyles();\r\n\t\treturn (\r\n\t\t\t<div data-sidebar=\"sidebar-insertion-line\" className={styles.wrapper({ className })} ref={ref} {...props}>\r\n\t\t\t\t<IconButton icon={Plus} size=\"xs\" className={styles.icon()} variant=\"link\" />\r\n\t\t\t\t<div className={styles.line()} />\r\n\t\t\t</div>\r\n\t\t);\r\n\t}\r\n);\r\nSidebarInsertionLine.displayName = \"SidebarInsertionLine\";\r\n\r\nexport {\r\n\tSidebar,\r\n\tSidebarContent,\r\n\tSidebarFooter,\r\n\tSidebarGroup,\r\n\tSidebarGroupAction,\r\n\tSidebarGroupContent,\r\n\tSidebarGroupLabel,\r\n\tSidebarHeader,\r\n\tSidebarInput,\r\n\tSidebarInset,\r\n\tSidebarMenu,\r\n\tSidebarMenuAction,\r\n\tSidebarMenuBadge,\r\n\tSidebarMenuButton,\r\n\tSidebarMenuItem,\r\n\tSidebarMenuSkeleton,\r\n\tSidebarMenuSub,\r\n\tSidebarMenuSubButton,\r\n\tSidebarMenuSubItem,\r\n\tSidebarProvider,\r\n\tSidebarRail,\r\n\tSidebarSeparator,\r\n\tSidebarInsertionLine,\r\n\tSidebarTrigger\r\n};\r\n"],"names":["PanelLeft","createLucideIcon","Plus","SidebarContext","React","useSidebar","context","SIDEBAR_COOKIE_NAME","SIDEBAR_COOKIE_MAX_AGE","SIDEBAR_WIDTH","SIDEBAR_WIDTH_MOBILE","SIDEBAR_WIDTH_ICON","SIDEBAR_KEYBOARD_SHORTCUT","sizebarProviderStyles","tv","SidebarProvider","defaultOpen","openProp","setOpenProp","className","style","children","props","ref","isMobile","useIsMobile","openMobile","setOpenMobile","_open","_setOpen","open","setOpen","value","openState","toggleSidebar","handleKeyDown","event","state","contextValue","jsx","TooltipProvider","Sidebar","side","variant","collapsible","cn","Sheet","jsxs","SheetContent","SheetHeader","SheetTitle","SheetDescription","SidebarTrigger","onClick","IconButton","sidebarRailStyles","SidebarRail","sidebarInsetStyles","SidebarInset","sidebarInputStyles","SidebarInput","TextInput","sidebarHeaderStyles","SidebarHeader","sidebarFooterStyles","SidebarFooter","sidebarSeparatorStyles","SidebarSeparator","Divider","sidebarContentStyles","SidebarContent","styles","ScrollShadowContainer","sidebarGroupStyles","SidebarGroup","sidebarGroupLabelStyles","SidebarGroupLabel","asChild","Slot","sidebarGroupActionStyles","SidebarGroupAction","sidebarGroupContentStyles","SidebarGroupContent","sidebarMenuStyles","SidebarMenu","sidebarMenuItemStyles","SidebarMenuItem","sidebarMenuButtonStyles","SidebarMenuButton","isActive","size","tooltip","Comp","button","Tooltip","TooltipTrigger","TooltipContent","sidebarMenuActionStyles","SidebarMenuAction","showOnHover","sidebarMenuBadgeStyles","SidebarMenuBadge","sidebarMenuSkeletonStyles","SidebarMenuSkeleton","showIcon","width","Skeleton","sidebarMenuSubStyles","SidebarMenuSub","sidebarMenuSubItemStyles","SidebarMenuSubItem","sidebarMenuSubButtonStyles","SidebarMenuSubButton","sidebarInsertionLineStyles","SidebarInsertionLine"],"mappings":"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","x_google_ignoreList":[0,1]}
1
+ {"version":3,"file":"sidebar.js","sources":["../../node_modules/.pnpm/lucide-react@0.460.0_react@18.3.1/node_modules/lucide-react/dist/esm/icons/panel-left.js","../../src/components/sidebar/SidebarContext.tsx","../../src/components/sidebar/Sidebar.tsx"],"sourcesContent":["/**\n * @license lucide-react v0.460.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst PanelLeft = createLucideIcon(\"PanelLeft\", [\n [\"rect\", { width: \"18\", height: \"18\", x: \"3\", y: \"3\", rx: \"2\", key: \"afitv7\" }],\n [\"path\", { d: \"M9 3v18\", key: \"fh3hqa\" }]\n]);\n\nexport { PanelLeft as default };\n//# sourceMappingURL=panel-left.js.map\n","import React from \"react\";\n\nexport type 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\nexport const SidebarContext = React.createContext<SidebarContextProps | null>(null);\n\nexport function 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","import { useIsMobile } from \"@/hooks/useBreakpoints\";\nimport React from \"react\";\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from \"../tooltip\";\nimport { cn } from \"@/lib/utils\";\nimport { Sheet, SheetContent, SheetDescription, SheetHeader, SheetTitle } from \"../sheet/Sheet\";\nimport { Button, IconButton } from \"../button\";\nimport { PanelLeft, Plus } from \"lucide-react\";\nimport { TextInput } from \"../input\";\nimport { Divider } from \"../divider\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { tv } from \"tailwind-variants\";\nimport { Skeleton } from \"../skeleton\";\nimport { SidebarContext, SidebarContextProps, useSidebar } from \"./SidebarContext\";\nimport { ScrollShadowContainer } from \"../scroll-shadow-container\";\nimport { VariantsConfig } from \"@/lib/utils/variants\";\n\nconst SIDEBAR_COOKIE_NAME = \"sidebar_state\";\nconst SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;\nconst SIDEBAR_WIDTH = \"16rem\";\nconst SIDEBAR_WIDTH_MOBILE = \"18rem\";\nconst SIDEBAR_WIDTH_ICON = \"3rem\";\nconst SIDEBAR_KEYBOARD_SHORTCUT = \"b\";\n\nconst sizebarProviderStyles = tv({\n\tbase: \"group/sidebar-wrapper flex min-h-svh w-full has-[[data-variant=inset]]:bg-primary-bg\"\n});\n\nconst SidebarProvider = React.forwardRef<\n\tHTMLDivElement,\n\tReact.ComponentProps<\"div\"> & {\n\t\tdefaultOpen?: boolean;\n\t\topen?: boolean;\n\t\tonOpenChange?: (open: boolean) => void;\n\t}\n>(({ defaultOpen = true, open: openProp, onOpenChange: setOpenProp, className, style, children, ...props }, ref) => {\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\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\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 (event.key === SIDEBAR_KEYBOARD_SHORTCUT && (event.metaKey || event.ctrlKey)) {\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\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\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={sizebarProviderStyles({ className })}\n\t\t\t\t\tref={ref}\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});\nSidebarProvider.displayName = \"SidebarProvider\";\n\nconst Sidebar = React.forwardRef<\n\tHTMLDivElement,\n\tReact.ComponentProps<\"div\"> & {\n\t\tside?: \"left\" | \"right\";\n\t\tvariant?: \"sidebar\" | \"floating\" | \"inset\";\n\t\tcollapsible?: \"offcanvas\" | \"icon\" | \"none\";\n\t}\n>(({ side = \"left\", variant = \"sidebar\", collapsible = \"offcanvas\", className, children, ...props }, ref) => {\n\tconst { state, openMobile, setOpenMobile } = useSidebar();\n\n\tif (collapsible === \"none\") {\n\t\treturn (\n\t\t\t<div\n\t\t\t\tclassName={cn(\n\t\t\t\t\t\"text-sidebar-foreground flex h-full w-[--sidebar-width] flex-col bg-sidebar-bg\",\n\t\t\t\t\tclassName\n\t\t\t\t)}\n\t\t\t\tref={ref}\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\treturn (\n\t\t<>\n\t\t\t<div className=\"contents lg:hidden\">\n\t\t\t\t<Sheet open={openMobile} onOpenChange={setOpenMobile} {...props}>\n\t\t\t\t\t<SheetContent\n\t\t\t\t\t\tdata-sidebar=\"sidebar\"\n\t\t\t\t\t\tdata-mobile=\"true\"\n\t\t\t\t\t\tclassName=\"w-[--sidebar-width] bg-sidebar-bg p-0 text-secondary-fg [&>button]:hidden\"\n\t\t\t\t\t\tstyle={\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"--sidebar-width\": SIDEBAR_WIDTH_MOBILE\n\t\t\t\t\t\t\t} as React.CSSProperties\n\t\t\t\t\t\t}\n\t\t\t\t\t\tside={side}\n\t\t\t\t\t>\n\t\t\t\t\t\t<SheetHeader className=\"sr-only\">\n\t\t\t\t\t\t\t<SheetTitle>Sidebar</SheetTitle>\n\t\t\t\t\t\t\t<SheetDescription>Displays the mobile sidebar.</SheetDescription>\n\t\t\t\t\t\t</SheetHeader>\n\t\t\t\t\t\t<div className=\"flex h-full w-full flex-col\">{children}</div>\n\t\t\t\t\t</SheetContent>\n\t\t\t\t</Sheet>\n\t\t\t</div>\n\n\t\t\t<div\n\t\t\t\tref={ref}\n\t\t\t\tclassName=\"text-sidebar-foreground group peer hidden lg:block\"\n\t\t\t\tdata-state={state}\n\t\t\t\tdata-collapsible={state === \"collapsed\" ? collapsible : \"\"}\n\t\t\t\tdata-variant={variant}\n\t\t\t\tdata-side={side}\n\t\t\t>\n\t\t\t\t{/* This is what handles the sidebar gap on desktop */}\n\t\t\t\t<div\n\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\"relative w-[--sidebar-width] bg-transparent transition-[width] duration-200 ease-linear\",\n\t\t\t\t\t\t\"group-data-[collapsible=offcanvas]:w-0\",\n\t\t\t\t\t\t\"group-data-[side=right]:rotate-180\",\n\t\t\t\t\t\tvariant === \"floating\" || variant === \"inset\"\n\t\t\t\t\t\t\t? \"group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)_+_theme(spacing.4))]\"\n\t\t\t\t\t\t\t: \"group-data-[collapsible=icon]:w-[--sidebar-width-icon]\"\n\t\t\t\t\t)}\n\t\t\t\t/>\n\n\t\t\t\t<div\n\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\"fixed inset-y-0 z-10 hidden h-svh w-[--sidebar-width] transition-[left,right,width] duration-200 ease-linear lg:flex\",\n\t\t\t\t\t\tside === \"left\"\n\t\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\t: \"right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]\",\n\t\t\t\t\t\t// Adjust the padding for floating and inset variants.\n\t\t\t\t\t\tvariant === \"floating\" || variant === \"inset\"\n\t\t\t\t\t\t\t? \"p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)_+_theme(spacing.4)_+2px)]\"\n\t\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 group-data-[side=left]:border-secondary-border group-data-[side=right]:border-secondary-border\",\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<div\n\t\t\t\t\t\tdata-sidebar=\"sidebar\"\n\t\t\t\t\t\tclassName=\"flex h-full w-full flex-col bg-sidebar-bg group-data-[variant=floating]:rounded-xl group-data-[variant=floating]:border-0.5 group-data-[variant=floating]:border-primary-border group-data-[variant=floating]:shadow-soft-xl\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{children}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</>\n\t);\n});\n\nSidebar.displayName = \"Sidebar\";\n\nconst SidebarTrigger = React.forwardRef<React.ElementRef<typeof Button>, React.ComponentProps<typeof Button>>(\n\t({ onClick, ...props }, ref) => {\n\t\tconst { toggleSidebar } = useSidebar();\n\n\t\treturn (\n\t\t\t<IconButton\n\t\t\t\ticon={PanelLeft}\n\t\t\t\tref={ref}\n\t\t\t\tdata-sidebar=\"trigger\"\n\t\t\t\tvariant=\"ghost\"\n\t\t\t\tonClick={(event) => {\n\t\t\t\t\tonClick?.(event);\n\t\t\t\t\ttoggleSidebar();\n\t\t\t\t}}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t<span className=\"sr-only\">Toggle Sidebar</span>\n\t\t\t</IconButton>\n\t\t);\n\t}\n);\n\nSidebarTrigger.displayName = \"SidebarTrigger\";\n\nconst sidebarRailStyles = tv({\n\tbase: [\n\t\t\"absolute inset-y-0 z-20 hidden w-[5px] -translate-x-1/2 transition-all ease-linear after:absolute after:inset-y-0 after:left-1/2 after:w-0 hover:after:-translate-x-1/2 hover:after:border-l hover:after:border-primary-border group-data-[side=left]:-right-[5px] group-data-[side=right]:left-0 sm:flex\",\n\t\t\"cursor-ew-resize\",\n\t\t\"group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full group-data-[collapsible=offcanvas]:hover:bg-secondary-border\",\n\t\t\"[[data-side=left][data-collapsible=offcanvas]_&]:-right-[2.5px]\",\n\t\t\"[[data-side=right][data-collapsible=offcanvas]_&]:-left-[2.5px]\"\n\t]\n});\n\nconst SidebarRail = React.forwardRef<HTMLButtonElement, React.ComponentProps<\"button\">>(\n\t({ className, ...props }, ref) => {\n\t\tconst { toggleSidebar } = useSidebar();\n\n\t\treturn (\n\t\t\t<button\n\t\t\t\tref={ref}\n\t\t\t\tdata-sidebar=\"rail\"\n\t\t\t\taria-label=\"Toggle Sidebar\"\n\t\t\t\ttabIndex={-1}\n\t\t\t\tonClick={toggleSidebar}\n\t\t\t\ttitle=\"Toggle Sidebar\"\n\t\t\t\tclassName={sidebarRailStyles({ className })}\n\t\t\t\t{...props}\n\t\t\t/>\n\t\t);\n\t}\n);\n\nSidebarRail.displayName = \"SidebarRail\";\n\nconst sidebarInsetStyles = tv({\n\tbase: [\n\t\t\"relative flex w-full flex-1 flex-col bg-secondary-bg\",\n\t\t\"md:peer-data-[variant=inset]:m-2 md:peer-data-[state=collapsed]:peer-data-[variant=inset]:ml-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow\"\n\t]\n});\n\nconst SidebarInset = React.forwardRef<HTMLDivElement, React.ComponentProps<\"main\">>(({ className, ...props }, ref) => {\n\treturn <main ref={ref} className={sidebarInsetStyles({ className })} {...props} />;\n});\n\nSidebarInset.displayName = \"SidebarInset\";\n\nconst sidebarInputStyles = tv({\n\tbase: \"h-8 w-full shadow-none\"\n});\n\nconst SidebarInput = React.forwardRef<React.ElementRef<typeof TextInput>, React.ComponentProps<typeof TextInput>>(\n\t({ className, ...props }, ref) => {\n\t\treturn <TextInput ref={ref} data-sidebar=\"input\" className={sidebarInputStyles({ className })} {...props} />;\n\t}\n);\n\nSidebarInput.displayName = \"SidebarInput\";\n\nconst sidebarHeaderStyles = tv({\n\tbase: \"flex flex-col gap-2 p-2 group-data-[variant=floating]:px-2.5\"\n});\n\nconst SidebarHeader = React.forwardRef<HTMLDivElement, React.ComponentProps<\"div\">>(({ className, ...props }, ref) => {\n\treturn <div ref={ref} data-sidebar=\"header\" className={sidebarHeaderStyles({ className })} {...props} />;\n});\n\nSidebarHeader.displayName = \"SidebarHeader\";\n\nconst sidebarFooterStyles = tv({\n\tbase: \"flex flex-col gap-2 p-2 group-data-[variant=floating]:px-2.5\"\n});\n\nconst SidebarFooter = React.forwardRef<HTMLDivElement, React.ComponentProps<\"div\">>(({ className, ...props }, ref) => {\n\treturn <div ref={ref} data-sidebar=\"footer\" className={sidebarFooterStyles({ className })} {...props} />;\n});\n\nSidebarFooter.displayName = \"SidebarFooter\";\n\nconst sidebarSeparatorStyles = tv({\n\tbase: \"w-auto bg-secondary-border\"\n});\n\nconst SidebarSeparator = React.forwardRef<React.ElementRef<typeof Divider>, React.ComponentProps<typeof Divider>>(\n\t({ className, ...props }, ref) => {\n\t\treturn (\n\t\t\t<Divider\n\t\t\t\tref={ref}\n\t\t\t\torientation=\"horizontal\"\n\t\t\t\tdata-sidebar=\"separator\"\n\t\t\t\tclassName={sidebarSeparatorStyles({ className })}\n\t\t\t\t{...props}\n\t\t\t/>\n\t\t);\n\t}\n);\n\nSidebarSeparator.displayName = \"SidebarSeparator\";\n\nconst sidebarContentStyles = tv({\n\tslots: {\n\t\tcontent: \"flex flex-1 flex-col gap-2 group-data-[collapsible=icon]:overflow-hidden\"\n\t}\n});\n\nconst SidebarContent = React.forwardRef<HTMLDivElement, React.ComponentProps<\"div\">>(\n\t({ className, children, ...props }, ref) => {\n\t\tconst styles = sidebarContentStyles();\n\n\t\treturn (\n\t\t\t<ScrollShadowContainer\n\t\t\t\tref={ref}\n\t\t\t\tdata-sidebar=\"content\"\n\t\t\t\tclassName={styles.content({ className })}\n\t\t\t\tshadowSize={32}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</ScrollShadowContainer>\n\t\t);\n\t}\n);\n\nSidebarContent.displayName = \"SidebarContent\";\n\nconst sidebarGroupStyles = tv({\n\tbase: \"relative flex w-full min-w-0 flex-col p-2 group-data-[variant=floating]:px-2.5\"\n});\n\nconst SidebarGroup = React.forwardRef<HTMLDivElement, React.ComponentProps<\"div\">>(({ className, ...props }, ref) => {\n\treturn <div ref={ref} data-sidebar=\"group\" className={sidebarGroupStyles({ className })} {...props} />;\n});\n\nSidebarGroup.displayName = \"SidebarGroup\";\n\nconst sidebarGroupLabelStyles = tv({\n\tbase: [\n\t\t\"flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium text-secondary-fg/70 outline-none transition-[margin,opacity] duration-200 ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0\",\n\t\t\"group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0\"\n\t]\n});\n\nconst SidebarGroupLabel = React.forwardRef<HTMLDivElement, React.ComponentProps<\"div\"> & { asChild?: boolean }>(\n\t({ className, asChild = false, ...props }, ref) => {\n\t\tconst Comp = asChild ? Slot : \"div\";\n\n\t\treturn (\n\t\t\t<Comp ref={ref} data-sidebar=\"group-label\" className={sidebarGroupLabelStyles({ className })} {...props} />\n\t\t);\n\t}\n);\n\nSidebarGroupLabel.displayName = \"SidebarGroupLabel\";\n\nconst sidebarGroupActionStyles = tv({\n\tbase: [\n\t\t\"focus-visible:ring-primary2 absolute right-3 top-3.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-muted outline-none transition-transform hover:text-primary-fg focus-visible:shadow-focus [&>svg]:size-4 [&>svg]:shrink-0\",\n\t\t// Increases the hit area of the button on mobile.\n\t\t\"after:absolute after:-inset-2 after:md:hidden\",\n\t\t\"group-data-[collapsible=icon]:hidden\"\n\t]\n});\n\nconst SidebarGroupAction = React.forwardRef<HTMLButtonElement, React.ComponentProps<\"button\"> & { asChild?: boolean }>(\n\t({ className, asChild = false, ...props }, ref) => {\n\t\tconst Comp = asChild ? Slot : \"button\";\n\n\t\treturn (\n\t\t\t<Comp\n\t\t\t\tref={ref}\n\t\t\t\tdata-sidebar=\"group-action\"\n\t\t\t\tclassName={sidebarGroupActionStyles({ className })}\n\t\t\t\t{...props}\n\t\t\t/>\n\t\t);\n\t}\n);\n\nSidebarGroupAction.displayName = \"SidebarGroupAction\";\n\nconst sidebarGroupContentStyles = tv({\n\tbase: \"w-full text-sm\"\n});\n\nconst SidebarGroupContent = React.forwardRef<HTMLDivElement, React.ComponentProps<\"div\">>(\n\t({ className, ...props }, ref) => (\n\t\t<div ref={ref} data-sidebar=\"group-content\" className={sidebarGroupContentStyles({ className })} {...props} />\n\t)\n);\n\nSidebarGroupContent.displayName = \"SidebarGroupContent\";\n\nconst sidebarMenuStyles = tv({\n\tbase: \"flex w-full min-w-0 flex-col gap-1\"\n});\n\nconst SidebarMenu = React.forwardRef<HTMLUListElement, React.ComponentProps<\"ul\">>(({ className, ...props }, ref) => (\n\t<ul ref={ref} data-sidebar=\"menu\" className={sidebarMenuStyles({ className })} {...props} />\n));\n\nSidebarMenu.displayName = \"SidebarMenu\";\n\nconst sidebarMenuItemStyles = tv({\n\tbase: \"group/menu-item relative\"\n});\n\nconst SidebarMenuItem = React.forwardRef<HTMLLIElement, React.ComponentProps<\"li\">>(({ className, ...props }, ref) => (\n\t<li ref={ref} data-sidebar=\"menu-item\" className={sidebarMenuItemStyles({ className })} {...props} />\n));\n\nSidebarMenuItem.displayName = \"SidebarMenuItem\";\n\nexport interface SidebarMenuButtonVariants {\n\tvariant?: \"default\" | \"outline\";\n\tsize?: \"default\" | \"sm\" | \"lg\";\n}\n\nconst sidebarMenuButtonStyles = tv({\n\tbase: [\n\t\t\"peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md bg-primary-bg p-2 text-left text-sm text-secondary-fg outline-none transition-[width,height,padding]\",\n\t\t\"hover:bg-primary-bg-hover hover:text-primary-fg focus-visible:shadow-focus\",\n\t\t\"disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50\",\n\t\t\"data-[active=true]:bg-primary-bg-hover data-[active=true]:font-medium data-[active=true]:text-primary-accent\",\n\t\t\"data-[active=true]:hover:bg-primary-bg-hover data-[active=true]:hover:text-primary-accent\",\n\t\t\"data-[state=open]:hover:bg-primary-bg-hover data-[state=open]:hover:text-primary-fg\",\n\t\t\"data-[active=true]:data-[state=open]:hover:bg-primary-bg-hover data-[active=true]:data-[state=open]:hover:text-primary-accent\",\n\t\t\"group-data-[collapsible=icon]:!size-8 group-data-[collapsible=icon]:!p-2 [&>span:last-child]:truncate\",\n\t\t\"[&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:text-muted [&[data-active=true]>svg]:text-primary-accent\",\n\t\t\"group-data-[collapsible=icon]:[&>svg]:text-secondary-fg group-data-[collapsible=icon]:[&>svg]:hover:text-primary-fg group-data-[collapsible=icon]:[&[data-active=true]>svg]:text-primary-accent\",\n\t\t\"group-has-[[data-sidebar=menu-action]]/menu-item:pr-8\"\n\t],\n\tvariants: {\n\t\tvariant: {\n\t\t\tdefault: \"hover:bg-primary-bg-hover hover:text-primary-fg\",\n\t\t\toutline:\n\t\t\t\t\"border border-secondary-border bg-primary-bg shadow-soft-sm hover:bg-primary-bg-hover hover:text-primary-fg\"\n\t\t},\n\t\tsize: {\n\t\t\tdefault: \"h-8 text-sm\",\n\t\t\tsm: \"h-7 text-xs\",\n\t\t\tlg: \"h-12 text-sm group-data-[collapsible=icon]:!p-0\"\n\t\t}\n\t} satisfies VariantsConfig<SidebarMenuButtonVariants>,\n\tdefaultVariants: {\n\t\tvariant: \"default\",\n\t\tsize: \"default\"\n\t}\n});\n\nconst SidebarMenuButton = React.forwardRef<\n\tHTMLButtonElement,\n\tReact.ComponentProps<\"button\"> & {\n\t\tasChild?: boolean;\n\t\tisActive?: boolean;\n\t\ttooltip?: string | React.ComponentProps<typeof TooltipContent>;\n\t} & SidebarMenuButtonVariants\n>(({ asChild = false, isActive = false, variant = \"default\", size = \"default\", tooltip, className, ...props }, ref) => {\n\tconst Comp = asChild ? Slot : \"button\";\n\tconst { isMobile, state } = useSidebar();\n\n\tconst button = (\n\t\t<Comp\n\t\t\tref={ref}\n\t\t\tdata-sidebar=\"menu-button\"\n\t\t\tdata-size={size}\n\t\t\tdata-active={isActive}\n\t\t\tclassName={cn(sidebarMenuButtonStyles({ 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 side=\"right\" align=\"center\" hidden={state !== \"collapsed\" || isMobile} {...tooltip} />\n\t\t</Tooltip>\n\t);\n});\n\nSidebarMenuButton.displayName = \"SidebarMenuButton\";\n\nconst sidebarMenuActionStyles = tv({\n\tbase: [\n\t\t\"absolute right-1 top-1.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-muted outline-none transition-transform hover:text-primary-fg focus-visible:ring-1 focus-visible:ring-primary peer-hover/menu-button:text-primary-fg [&>svg]:size-4 [&>svg]:shrink-0\",\n\t\t// Increases the hit area of the button on mobile.\n\t\t\"after:absolute after:-inset-2 after:md:hidden\",\n\t\t\"peer-data-[size=sm]/menu-button:top-1\",\n\t\t\"peer-data-[size=default]/menu-button:top-1.5\",\n\t\t\"peer-data-[size=lg]/menu-button:top-2.5\",\n\t\t\"group-data-[collapsible=icon]:hidden\"\n\t],\n\tvariants: {\n\t\tisHover: {\n\t\t\ttrue: \"group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 peer-data-[active=true]/menu-button:text-primary-accent md:opacity-0\"\n\t\t}\n\t}\n});\n\nconst SidebarMenuAction = React.forwardRef<\n\tHTMLButtonElement,\n\tReact.ComponentProps<\"button\"> & {\n\t\tasChild?: boolean;\n\t\tshowOnHover?: boolean;\n\t}\n>(({ className, asChild = false, showOnHover = false, ...props }, ref) => {\n\tconst Comp = asChild ? Slot : \"button\";\n\n\treturn (\n\t\t<Comp\n\t\t\tref={ref}\n\t\t\tdata-sidebar=\"menu-action\"\n\t\t\tclassName={sidebarMenuActionStyles({ isHover: showOnHover, className })}\n\t\t\t{...props}\n\t\t/>\n\t);\n});\n\nSidebarMenuAction.displayName = \"SidebarMenuAction\";\n\nconst sidebarMenuBadgeStyles = tv({\n\tbase: [\n\t\t\"pointer-events-none absolute right-1 flex h-5 min-w-5 select-none items-center justify-center rounded-md px-1 text-xs font-normal tabular-nums leading-none text-muted\",\n\t\t\"peer-hover/menu-button:text-muted peer-disabled/menu-button:opacity-50 peer-data-[active=true]/menu-button:text-muted\",\n\t\t\"peer-data-[size=sm]/menu-button:top-1\",\n\t\t\"peer-data-[size=default]/menu-button:top-1.5\",\n\t\t\"peer-data-[size=lg]/menu-button:top-2.5\",\n\t\t\"group-data-[collapsible=icon]:hidden\"\n\t]\n});\n\nconst SidebarMenuBadge = React.forwardRef<HTMLDivElement, React.ComponentProps<\"div\">>(\n\t({ className, ...props }, ref) => (\n\t\t<div ref={ref} data-sidebar=\"menu-badge\" className={sidebarMenuBadgeStyles({ className })} {...props} />\n\t)\n);\n\nSidebarMenuBadge.displayName = \"SidebarMenuBadge\";\n\nconst sidebarMenuSkeletonStyles = tv({\n\tslots: {\n\t\twrapper: \"flex h-8 items-center gap-2 rounded-md px-2\",\n\t\tskeleton: \"h-4 max-w-[--skeleton-width] flex-1\",\n\t\tskeletonIcon: \"size-4 rounded-md\"\n\t}\n});\n\nconst SidebarMenuSkeleton = React.forwardRef<\n\tHTMLDivElement,\n\tReact.ComponentProps<\"div\"> & {\n\t\tshowIcon?: boolean;\n\t}\n>(({ className, showIcon = false, ...props }, ref) => {\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\tconst styles = sidebarMenuSkeletonStyles();\n\n\treturn (\n\t\t<div ref={ref} data-sidebar=\"menu-skeleton\" className={styles.wrapper({ className })} {...props}>\n\t\t\t{showIcon && <Skeleton className={styles.skeletonIcon()} data-sidebar=\"menu-skeleton-icon\" />}\n\t\t\t<Skeleton\n\t\t\t\tclassName={styles.skeleton()}\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\nSidebarMenuSkeleton.displayName = \"SidebarMenuSkeleton\";\n\nconst sidebarMenuSubStyles = tv({\n\tbase: [\n\t\t\"ml-3.5 flex min-w-0 flex-col gap-1 border-l border-secondary-border py-0.5 pl-2.5\",\n\t\t\"group-data-[collapsible=icon]:hidden\"\n\t]\n});\n\nconst SidebarMenuSub = React.forwardRef<HTMLUListElement, React.ComponentProps<\"ul\">>(\n\t({ className, ...props }, ref) => (\n\t\t<ul ref={ref} data-sidebar=\"menu-sub\" className={sidebarMenuSubStyles({ className })} {...props} />\n\t)\n);\n\nSidebarMenuSub.displayName = \"SidebarMenuSub\";\n\nconst sidebarMenuSubItemStyles = tv({\n\tbase: \"rounded-md focus-visible:shadow-focus focus-visible:outline-none\"\n});\n\nconst SidebarMenuSubItem = React.forwardRef<HTMLLIElement, React.ComponentProps<\"li\">>(\n\t({ className, ...props }, ref) => <li ref={ref} className={sidebarMenuSubItemStyles({ className })} {...props} />\n);\n\nSidebarMenuSubItem.displayName = \"SidebarMenuSubItem\";\n\nconst sidebarMenuSubButtonStyles = tv({\n\tbase: [\n\t\t\"flex h-7 min-w-0 items-center gap-2 overflow-hidden rounded-md px-2 text-secondary-fg outline-none hover:bg-secondary-bg-hover hover:text-primary-fg focus-visible:mr-0.5 focus-visible:shadow-focus 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 [&>svg]:text-primary-fg\",\n\t\t\"data-[active=true]:bg-primary-bg-hover data-[active=true]:text-primary-accent\",\n\t\t\"group-data-[collapsible=icon]:hidden\"\n\t],\n\tvariants: {\n\t\tsize: {\n\t\t\tsm: \"text-xs\",\n\t\t\tmd: \"text-sm\"\n\t\t}\n\t}\n});\n\nconst SidebarMenuSubButton = React.forwardRef<\n\tHTMLAnchorElement,\n\tReact.ComponentProps<\"a\"> & {\n\t\tasChild?: boolean;\n\t\tsize?: \"sm\" | \"md\";\n\t\tisActive?: boolean;\n\t}\n>(({ asChild = false, size = \"md\", isActive, className, ...props }, ref) => {\n\tconst Comp = asChild ? Slot : \"a\";\n\n\treturn (\n\t\t<Comp\n\t\t\tref={ref}\n\t\t\tdata-sidebar=\"menu-sub-button\"\n\t\t\tdata-size={size}\n\t\t\tdata-active={isActive}\n\t\t\tclassName={sidebarMenuSubButtonStyles({ size, className })}\n\t\t\t{...props}\n\t\t/>\n\t);\n});\n\nSidebarMenuSubButton.displayName = \"SidebarMenuSubButton\";\n\nconst sidebarInsertionLineStyles = tv({\n\tslots: {\n\t\twrapper: \"group/insertion flex cursor-pointer flex-row items-center border-none bg-transparent p-0\",\n\t\ticon: \"peer/icon h-4 w-4 p-0.5 text-muted opacity-0 group-hover/insertion:opacity-100\",\n\t\tline: \"h-px w-full bg-transparent group-hover/insertion:bg-muted peer-hover/icon:bg-primary-fg\"\n\t}\n});\n\nexport type SidebarInsertionLineProps = React.HTMLAttributes<HTMLDivElement>;\n\nconst SidebarInsertionLine = React.forwardRef<HTMLDivElement, SidebarInsertionLineProps>(\n\t({ className, ...props }, ref) => {\n\t\tconst styles = sidebarInsertionLineStyles();\n\t\treturn (\n\t\t\t<div data-sidebar=\"sidebar-insertion-line\" className={styles.wrapper({ className })} ref={ref} {...props}>\n\t\t\t\t<IconButton icon={Plus} size=\"xs\" className={styles.icon()} variant=\"link\" />\n\t\t\t\t<div className={styles.line()} />\n\t\t\t</div>\n\t\t);\n\t}\n);\nSidebarInsertionLine.displayName = \"SidebarInsertionLine\";\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\tSidebarInsertionLine,\n\tSidebarTrigger\n};\n"],"names":["PanelLeft","createLucideIcon","SidebarContext","React","useSidebar","context","SIDEBAR_COOKIE_NAME","SIDEBAR_COOKIE_MAX_AGE","SIDEBAR_WIDTH","SIDEBAR_WIDTH_MOBILE","SIDEBAR_WIDTH_ICON","SIDEBAR_KEYBOARD_SHORTCUT","sizebarProviderStyles","tv","SidebarProvider","defaultOpen","openProp","setOpenProp","className","style","children","props","ref","isMobile","useIsMobile","openMobile","setOpenMobile","_open","_setOpen","open","setOpen","value","openState","toggleSidebar","handleKeyDown","event","state","contextValue","jsx","TooltipProvider","Sidebar","side","variant","collapsible","cn","jsxs","Fragment","Sheet","SheetContent","SheetHeader","SheetTitle","SheetDescription","SidebarTrigger","onClick","IconButton","sidebarRailStyles","SidebarRail","sidebarInsetStyles","SidebarInset","sidebarInputStyles","SidebarInput","TextInput","sidebarHeaderStyles","SidebarHeader","sidebarFooterStyles","SidebarFooter","sidebarSeparatorStyles","SidebarSeparator","Divider","sidebarContentStyles","SidebarContent","styles","ScrollShadowContainer","sidebarGroupStyles","SidebarGroup","sidebarGroupLabelStyles","SidebarGroupLabel","asChild","Slot","sidebarGroupActionStyles","SidebarGroupAction","sidebarGroupContentStyles","SidebarGroupContent","sidebarMenuStyles","SidebarMenu","sidebarMenuItemStyles","SidebarMenuItem","sidebarMenuButtonStyles","SidebarMenuButton","isActive","size","tooltip","Comp","button","Tooltip","TooltipTrigger","TooltipContent","sidebarMenuActionStyles","SidebarMenuAction","showOnHover","sidebarMenuBadgeStyles","SidebarMenuBadge","sidebarMenuSkeletonStyles","SidebarMenuSkeleton","showIcon","width","Skeleton","sidebarMenuSubStyles","SidebarMenuSub","sidebarMenuSubItemStyles","SidebarMenuSubItem","sidebarMenuSubButtonStyles","SidebarMenuSubButton","sidebarInsertionLineStyles","SidebarInsertionLine","Plus"],"mappings":"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","x_google_ignoreList":[0]}
@@ -1 +1 @@
1
- {"version":3,"file":"slider.js","sources":["../../node_modules/.pnpm/@radix-ui+react-slider@1.3._90b01d55a02a48d8f097dc170ff43e62/node_modules/@radix-ui/react-slider/dist/index.mjs","../../src/components/slider/Slider.tsx","../../src/components/slider/components/SliderTrack.tsx","../../src/components/slider/components/SliderRange.tsx","../../src/components/slider/components/SliderThumb.tsx"],"sourcesContent":["\"use client\";\n\n// src/slider.tsx\nimport * as React from \"react\";\nimport { clamp } from \"@radix-ui/number\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { useDirection } from \"@radix-ui/react-direction\";\nimport { usePrevious } from \"@radix-ui/react-use-previous\";\nimport { useSize } from \"@radix-ui/react-use-size\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { createCollection } from \"@radix-ui/react-collection\";\nimport { jsx, jsxs } from \"react/jsx-runtime\";\nvar PAGE_KEYS = [\"PageUp\", \"PageDown\"];\nvar ARROW_KEYS = [\"ArrowUp\", \"ArrowDown\", \"ArrowLeft\", \"ArrowRight\"];\nvar BACK_KEYS = {\n \"from-left\": [\"Home\", \"PageDown\", \"ArrowDown\", \"ArrowLeft\"],\n \"from-right\": [\"Home\", \"PageDown\", \"ArrowDown\", \"ArrowRight\"],\n \"from-bottom\": [\"Home\", \"PageDown\", \"ArrowDown\", \"ArrowLeft\"],\n \"from-top\": [\"Home\", \"PageDown\", \"ArrowUp\", \"ArrowLeft\"]\n};\nvar SLIDER_NAME = \"Slider\";\nvar [Collection, useCollection, createCollectionScope] = createCollection(SLIDER_NAME);\nvar [createSliderContext, createSliderScope] = createContextScope(SLIDER_NAME, [\n createCollectionScope\n]);\nvar [SliderProvider, useSliderContext] = createSliderContext(SLIDER_NAME);\nvar Slider = React.forwardRef(\n (props, forwardedRef) => {\n const {\n name,\n min = 0,\n max = 100,\n step = 1,\n orientation = \"horizontal\",\n disabled = false,\n minStepsBetweenThumbs = 0,\n defaultValue = [min],\n value,\n onValueChange = () => {\n },\n onValueCommit = () => {\n },\n inverted = false,\n form,\n ...sliderProps\n } = props;\n const thumbRefs = React.useRef(/* @__PURE__ */ new Set());\n const valueIndexToChangeRef = React.useRef(0);\n const isHorizontal = orientation === \"horizontal\";\n const SliderOrientation = isHorizontal ? SliderHorizontal : SliderVertical;\n const [values = [], setValues] = useControllableState({\n prop: value,\n defaultProp: defaultValue,\n onChange: (value2) => {\n const thumbs = [...thumbRefs.current];\n thumbs[valueIndexToChangeRef.current]?.focus();\n onValueChange(value2);\n }\n });\n const valuesBeforeSlideStartRef = React.useRef(values);\n function handleSlideStart(value2) {\n const closestIndex = getClosestValueIndex(values, value2);\n updateValues(value2, closestIndex);\n }\n function handleSlideMove(value2) {\n updateValues(value2, valueIndexToChangeRef.current);\n }\n function handleSlideEnd() {\n const prevValue = valuesBeforeSlideStartRef.current[valueIndexToChangeRef.current];\n const nextValue = values[valueIndexToChangeRef.current];\n const hasChanged = nextValue !== prevValue;\n if (hasChanged) onValueCommit(values);\n }\n function updateValues(value2, atIndex, { commit } = { commit: false }) {\n const decimalCount = getDecimalCount(step);\n const snapToStep = roundValue(Math.round((value2 - min) / step) * step + min, decimalCount);\n const nextValue = clamp(snapToStep, [min, max]);\n setValues((prevValues = []) => {\n const nextValues = getNextSortedValues(prevValues, nextValue, atIndex);\n if (hasMinStepsBetweenValues(nextValues, minStepsBetweenThumbs * step)) {\n valueIndexToChangeRef.current = nextValues.indexOf(nextValue);\n const hasChanged = String(nextValues) !== String(prevValues);\n if (hasChanged && commit) onValueCommit(nextValues);\n return hasChanged ? nextValues : prevValues;\n } else {\n return prevValues;\n }\n });\n }\n return /* @__PURE__ */ jsx(\n SliderProvider,\n {\n scope: props.__scopeSlider,\n name,\n disabled,\n min,\n max,\n valueIndexToChangeRef,\n thumbs: thumbRefs.current,\n values,\n orientation,\n form,\n children: /* @__PURE__ */ jsx(Collection.Provider, { scope: props.__scopeSlider, children: /* @__PURE__ */ jsx(Collection.Slot, { scope: props.__scopeSlider, children: /* @__PURE__ */ jsx(\n SliderOrientation,\n {\n \"aria-disabled\": disabled,\n \"data-disabled\": disabled ? \"\" : void 0,\n ...sliderProps,\n ref: forwardedRef,\n onPointerDown: composeEventHandlers(sliderProps.onPointerDown, () => {\n if (!disabled) valuesBeforeSlideStartRef.current = values;\n }),\n min,\n max,\n inverted,\n onSlideStart: disabled ? void 0 : handleSlideStart,\n onSlideMove: disabled ? void 0 : handleSlideMove,\n onSlideEnd: disabled ? void 0 : handleSlideEnd,\n onHomeKeyDown: () => !disabled && updateValues(min, 0, { commit: true }),\n onEndKeyDown: () => !disabled && updateValues(max, values.length - 1, { commit: true }),\n onStepKeyDown: ({ event, direction: stepDirection }) => {\n if (!disabled) {\n const isPageKey = PAGE_KEYS.includes(event.key);\n const isSkipKey = isPageKey || event.shiftKey && ARROW_KEYS.includes(event.key);\n const multiplier = isSkipKey ? 10 : 1;\n const atIndex = valueIndexToChangeRef.current;\n const value2 = values[atIndex];\n const stepInDirection = step * multiplier * stepDirection;\n updateValues(value2 + stepInDirection, atIndex, { commit: true });\n }\n }\n }\n ) }) })\n }\n );\n }\n);\nSlider.displayName = SLIDER_NAME;\nvar [SliderOrientationProvider, useSliderOrientationContext] = createSliderContext(SLIDER_NAME, {\n startEdge: \"left\",\n endEdge: \"right\",\n size: \"width\",\n direction: 1\n});\nvar SliderHorizontal = React.forwardRef(\n (props, forwardedRef) => {\n const {\n min,\n max,\n dir,\n inverted,\n onSlideStart,\n onSlideMove,\n onSlideEnd,\n onStepKeyDown,\n ...sliderProps\n } = props;\n const [slider, setSlider] = React.useState(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setSlider(node));\n const rectRef = React.useRef(void 0);\n const direction = useDirection(dir);\n const isDirectionLTR = direction === \"ltr\";\n const isSlidingFromLeft = isDirectionLTR && !inverted || !isDirectionLTR && inverted;\n function getValueFromPointer(pointerPosition) {\n const rect = rectRef.current || slider.getBoundingClientRect();\n const input = [0, rect.width];\n const output = isSlidingFromLeft ? [min, max] : [max, min];\n const value = linearScale(input, output);\n rectRef.current = rect;\n return value(pointerPosition - rect.left);\n }\n return /* @__PURE__ */ jsx(\n SliderOrientationProvider,\n {\n scope: props.__scopeSlider,\n startEdge: isSlidingFromLeft ? \"left\" : \"right\",\n endEdge: isSlidingFromLeft ? \"right\" : \"left\",\n direction: isSlidingFromLeft ? 1 : -1,\n size: \"width\",\n children: /* @__PURE__ */ jsx(\n SliderImpl,\n {\n dir: direction,\n \"data-orientation\": \"horizontal\",\n ...sliderProps,\n ref: composedRefs,\n style: {\n ...sliderProps.style,\n [\"--radix-slider-thumb-transform\"]: \"translateX(-50%)\"\n },\n onSlideStart: (event) => {\n const value = getValueFromPointer(event.clientX);\n onSlideStart?.(value);\n },\n onSlideMove: (event) => {\n const value = getValueFromPointer(event.clientX);\n onSlideMove?.(value);\n },\n onSlideEnd: () => {\n rectRef.current = void 0;\n onSlideEnd?.();\n },\n onStepKeyDown: (event) => {\n const slideDirection = isSlidingFromLeft ? \"from-left\" : \"from-right\";\n const isBackKey = BACK_KEYS[slideDirection].includes(event.key);\n onStepKeyDown?.({ event, direction: isBackKey ? -1 : 1 });\n }\n }\n )\n }\n );\n }\n);\nvar SliderVertical = React.forwardRef(\n (props, forwardedRef) => {\n const {\n min,\n max,\n inverted,\n onSlideStart,\n onSlideMove,\n onSlideEnd,\n onStepKeyDown,\n ...sliderProps\n } = props;\n const sliderRef = React.useRef(null);\n const ref = useComposedRefs(forwardedRef, sliderRef);\n const rectRef = React.useRef(void 0);\n const isSlidingFromBottom = !inverted;\n function getValueFromPointer(pointerPosition) {\n const rect = rectRef.current || sliderRef.current.getBoundingClientRect();\n const input = [0, rect.height];\n const output = isSlidingFromBottom ? [max, min] : [min, max];\n const value = linearScale(input, output);\n rectRef.current = rect;\n return value(pointerPosition - rect.top);\n }\n return /* @__PURE__ */ jsx(\n SliderOrientationProvider,\n {\n scope: props.__scopeSlider,\n startEdge: isSlidingFromBottom ? \"bottom\" : \"top\",\n endEdge: isSlidingFromBottom ? \"top\" : \"bottom\",\n size: \"height\",\n direction: isSlidingFromBottom ? 1 : -1,\n children: /* @__PURE__ */ jsx(\n SliderImpl,\n {\n \"data-orientation\": \"vertical\",\n ...sliderProps,\n ref,\n style: {\n ...sliderProps.style,\n [\"--radix-slider-thumb-transform\"]: \"translateY(50%)\"\n },\n onSlideStart: (event) => {\n const value = getValueFromPointer(event.clientY);\n onSlideStart?.(value);\n },\n onSlideMove: (event) => {\n const value = getValueFromPointer(event.clientY);\n onSlideMove?.(value);\n },\n onSlideEnd: () => {\n rectRef.current = void 0;\n onSlideEnd?.();\n },\n onStepKeyDown: (event) => {\n const slideDirection = isSlidingFromBottom ? \"from-bottom\" : \"from-top\";\n const isBackKey = BACK_KEYS[slideDirection].includes(event.key);\n onStepKeyDown?.({ event, direction: isBackKey ? -1 : 1 });\n }\n }\n )\n }\n );\n }\n);\nvar SliderImpl = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeSlider,\n onSlideStart,\n onSlideMove,\n onSlideEnd,\n onHomeKeyDown,\n onEndKeyDown,\n onStepKeyDown,\n ...sliderProps\n } = props;\n const context = useSliderContext(SLIDER_NAME, __scopeSlider);\n return /* @__PURE__ */ jsx(\n Primitive.span,\n {\n ...sliderProps,\n ref: forwardedRef,\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n if (event.key === \"Home\") {\n onHomeKeyDown(event);\n event.preventDefault();\n } else if (event.key === \"End\") {\n onEndKeyDown(event);\n event.preventDefault();\n } else if (PAGE_KEYS.concat(ARROW_KEYS).includes(event.key)) {\n onStepKeyDown(event);\n event.preventDefault();\n }\n }),\n onPointerDown: composeEventHandlers(props.onPointerDown, (event) => {\n const target = event.target;\n target.setPointerCapture(event.pointerId);\n event.preventDefault();\n if (context.thumbs.has(target)) {\n target.focus();\n } else {\n onSlideStart(event);\n }\n }),\n onPointerMove: composeEventHandlers(props.onPointerMove, (event) => {\n const target = event.target;\n if (target.hasPointerCapture(event.pointerId)) onSlideMove(event);\n }),\n onPointerUp: composeEventHandlers(props.onPointerUp, (event) => {\n const target = event.target;\n if (target.hasPointerCapture(event.pointerId)) {\n target.releasePointerCapture(event.pointerId);\n onSlideEnd(event);\n }\n })\n }\n );\n }\n);\nvar TRACK_NAME = \"SliderTrack\";\nvar SliderTrack = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSlider, ...trackProps } = props;\n const context = useSliderContext(TRACK_NAME, __scopeSlider);\n return /* @__PURE__ */ jsx(\n Primitive.span,\n {\n \"data-disabled\": context.disabled ? \"\" : void 0,\n \"data-orientation\": context.orientation,\n ...trackProps,\n ref: forwardedRef\n }\n );\n }\n);\nSliderTrack.displayName = TRACK_NAME;\nvar RANGE_NAME = \"SliderRange\";\nvar SliderRange = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSlider, ...rangeProps } = props;\n const context = useSliderContext(RANGE_NAME, __scopeSlider);\n const orientation = useSliderOrientationContext(RANGE_NAME, __scopeSlider);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const valuesCount = context.values.length;\n const percentages = context.values.map(\n (value) => convertValueToPercentage(value, context.min, context.max)\n );\n const offsetStart = valuesCount > 1 ? Math.min(...percentages) : 0;\n const offsetEnd = 100 - Math.max(...percentages);\n return /* @__PURE__ */ jsx(\n Primitive.span,\n {\n \"data-orientation\": context.orientation,\n \"data-disabled\": context.disabled ? \"\" : void 0,\n ...rangeProps,\n ref: composedRefs,\n style: {\n ...props.style,\n [orientation.startEdge]: offsetStart + \"%\",\n [orientation.endEdge]: offsetEnd + \"%\"\n }\n }\n );\n }\n);\nSliderRange.displayName = RANGE_NAME;\nvar THUMB_NAME = \"SliderThumb\";\nvar SliderThumb = React.forwardRef(\n (props, forwardedRef) => {\n const getItems = useCollection(props.__scopeSlider);\n const [thumb, setThumb] = React.useState(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setThumb(node));\n const index = React.useMemo(\n () => thumb ? getItems().findIndex((item) => item.ref.current === thumb) : -1,\n [getItems, thumb]\n );\n return /* @__PURE__ */ jsx(SliderThumbImpl, { ...props, ref: composedRefs, index });\n }\n);\nvar SliderThumbImpl = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSlider, index, name, ...thumbProps } = props;\n const context = useSliderContext(THUMB_NAME, __scopeSlider);\n const orientation = useSliderOrientationContext(THUMB_NAME, __scopeSlider);\n const [thumb, setThumb] = React.useState(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setThumb(node));\n const isFormControl = thumb ? context.form || !!thumb.closest(\"form\") : true;\n const size = useSize(thumb);\n const value = context.values[index];\n const percent = value === void 0 ? 0 : convertValueToPercentage(value, context.min, context.max);\n const label = getLabel(index, context.values.length);\n const orientationSize = size?.[orientation.size];\n const thumbInBoundsOffset = orientationSize ? getThumbInBoundsOffset(orientationSize, percent, orientation.direction) : 0;\n React.useEffect(() => {\n if (thumb) {\n context.thumbs.add(thumb);\n return () => {\n context.thumbs.delete(thumb);\n };\n }\n }, [thumb, context.thumbs]);\n return /* @__PURE__ */ jsxs(\n \"span\",\n {\n style: {\n transform: \"var(--radix-slider-thumb-transform)\",\n position: \"absolute\",\n [orientation.startEdge]: `calc(${percent}% + ${thumbInBoundsOffset}px)`\n },\n children: [\n /* @__PURE__ */ jsx(Collection.ItemSlot, { scope: props.__scopeSlider, children: /* @__PURE__ */ jsx(\n Primitive.span,\n {\n role: \"slider\",\n \"aria-label\": props[\"aria-label\"] || label,\n \"aria-valuemin\": context.min,\n \"aria-valuenow\": value,\n \"aria-valuemax\": context.max,\n \"aria-orientation\": context.orientation,\n \"data-orientation\": context.orientation,\n \"data-disabled\": context.disabled ? \"\" : void 0,\n tabIndex: context.disabled ? void 0 : 0,\n ...thumbProps,\n ref: composedRefs,\n style: value === void 0 ? { display: \"none\" } : props.style,\n onFocus: composeEventHandlers(props.onFocus, () => {\n context.valueIndexToChangeRef.current = index;\n })\n }\n ) }),\n isFormControl && /* @__PURE__ */ jsx(\n SliderBubbleInput,\n {\n name: name ?? (context.name ? context.name + (context.values.length > 1 ? \"[]\" : \"\") : void 0),\n form: context.form,\n value\n },\n index\n )\n ]\n }\n );\n }\n);\nSliderThumb.displayName = THUMB_NAME;\nvar BUBBLE_INPUT_NAME = \"RadioBubbleInput\";\nvar SliderBubbleInput = React.forwardRef(\n ({ __scopeSlider, value, ...props }, forwardedRef) => {\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(ref, forwardedRef);\n const prevValue = usePrevious(value);\n React.useEffect(() => {\n const input = ref.current;\n if (!input) return;\n const inputProto = window.HTMLInputElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(inputProto, \"value\");\n const setValue = descriptor.set;\n if (prevValue !== value && setValue) {\n const event = new Event(\"input\", { bubbles: true });\n setValue.call(input, value);\n input.dispatchEvent(event);\n }\n }, [prevValue, value]);\n return /* @__PURE__ */ jsx(\n Primitive.input,\n {\n style: { display: \"none\" },\n ...props,\n ref: composedRefs,\n defaultValue: value\n }\n );\n }\n);\nSliderBubbleInput.displayName = BUBBLE_INPUT_NAME;\nfunction getNextSortedValues(prevValues = [], nextValue, atIndex) {\n const nextValues = [...prevValues];\n nextValues[atIndex] = nextValue;\n return nextValues.sort((a, b) => a - b);\n}\nfunction convertValueToPercentage(value, min, max) {\n const maxSteps = max - min;\n const percentPerStep = 100 / maxSteps;\n const percentage = percentPerStep * (value - min);\n return clamp(percentage, [0, 100]);\n}\nfunction getLabel(index, totalValues) {\n if (totalValues > 2) {\n return `Value ${index + 1} of ${totalValues}`;\n } else if (totalValues === 2) {\n return [\"Minimum\", \"Maximum\"][index];\n } else {\n return void 0;\n }\n}\nfunction getClosestValueIndex(values, nextValue) {\n if (values.length === 1) return 0;\n const distances = values.map((value) => Math.abs(value - nextValue));\n const closestDistance = Math.min(...distances);\n return distances.indexOf(closestDistance);\n}\nfunction getThumbInBoundsOffset(width, left, direction) {\n const halfWidth = width / 2;\n const halfPercent = 50;\n const offset = linearScale([0, halfPercent], [0, halfWidth]);\n return (halfWidth - offset(left) * direction) * direction;\n}\nfunction getStepsBetweenValues(values) {\n return values.slice(0, -1).map((value, index) => values[index + 1] - value);\n}\nfunction hasMinStepsBetweenValues(values, minStepsBetweenValues) {\n if (minStepsBetweenValues > 0) {\n const stepsBetweenValues = getStepsBetweenValues(values);\n const actualMinStepsBetweenValues = Math.min(...stepsBetweenValues);\n return actualMinStepsBetweenValues >= minStepsBetweenValues;\n }\n return true;\n}\nfunction linearScale(input, output) {\n return (value) => {\n if (input[0] === input[1] || output[0] === output[1]) return output[0];\n const ratio = (output[1] - output[0]) / (input[1] - input[0]);\n return output[0] + ratio * (value - input[0]);\n };\n}\nfunction getDecimalCount(value) {\n return (String(value).split(\".\")[1] || \"\").length;\n}\nfunction roundValue(value, decimalCount) {\n const rounder = Math.pow(10, decimalCount);\n return Math.round(value * rounder) / rounder;\n}\nvar Root = Slider;\nvar Track = SliderTrack;\nvar Range = SliderRange;\nvar Thumb = SliderThumb;\nexport {\n Range,\n Root,\n Slider,\n SliderRange,\n SliderThumb,\n SliderTrack,\n Thumb,\n Track,\n createSliderScope\n};\n//# sourceMappingURL=index.mjs.map\n","import * as React from \"react\";\r\nimport * as SliderPrimitive from \"@radix-ui/react-slider\";\r\nimport { tv } from \"tailwind-variants\";\r\n\r\nexport type SliderProps = React.ComponentPropsWithoutRef<typeof SliderPrimitive.Root>;\r\n\r\nconst slyderStyles = tv({\r\n\tbase: \"relative flex touch-none select-none items-center data-[orientation=vertical]:h-full data-[orientation=horizontal]:w-full data-[orientation=vertical]:w-5 data-[orientation=vertical]:flex-col\"\r\n});\r\n\r\nexport const Slider = React.forwardRef<React.ElementRef<typeof SliderPrimitive.Root>, SliderProps>(\r\n\t({ className, children, ...props }, ref) => {\r\n\t\treturn (\r\n\t\t\t<SliderPrimitive.Root ref={ref} className={slyderStyles({ className })} {...props}>\r\n\t\t\t\t{children}\r\n\t\t\t</SliderPrimitive.Root>\r\n\t\t);\r\n\t}\r\n);\r\n\r\nSlider.displayName = SliderPrimitive.Root.displayName;\r\n","import { tv } from \"tailwind-variants\";\r\nimport * as SliderPrimitive from \"@radix-ui/react-slider\";\r\nimport React from \"react\";\r\n\r\nexport type SliderTrackProps = React.ComponentPropsWithoutRef<typeof SliderPrimitive.Track>;\r\n\r\nconst slyderTrackStyles = tv({\r\n\tbase: \"relative grow overflow-hidden rounded-full bg-secondary-bg-hover data-[orientation=horizontal]:h-1.5 data-[orientation=vertical]:h-full data-[orientation=horizontal]:w-full data-[orientation=vertical]:w-1.5\"\r\n});\r\n\r\nexport const SliderTrack = React.forwardRef<React.ElementRef<typeof SliderPrimitive.Root>, SliderTrackProps>(\r\n\t({ className, children, ...props }, ref) => {\r\n\t\treturn (\r\n\t\t\t<SliderPrimitive.Track ref={ref} className={slyderTrackStyles({ className })} {...props}>\r\n\t\t\t\t{children}\r\n\t\t\t</SliderPrimitive.Track>\r\n\t\t);\r\n\t}\r\n);\r\n\r\nSliderTrack.displayName = SliderPrimitive.Track.displayName;\r\n","import { tv } from \"tailwind-variants\";\r\nimport * as SliderPrimitive from \"@radix-ui/react-slider\";\r\nimport React from \"react\";\r\n\r\nexport type SliderRangeProps = React.ComponentPropsWithoutRef<typeof SliderPrimitive.Range>;\r\n\r\nconst slyderRangeStyles = tv({\r\n\tbase: \"absolute bg-primary-accent data-[orientation=horizontal]:h-full data-[orientation=vertical]:w-full\"\r\n});\r\n\r\nexport const SliderRange = React.forwardRef<React.ElementRef<typeof SliderPrimitive.Root>, SliderRangeProps>(\r\n\t({ className, ...props }, ref) => {\r\n\t\treturn <SliderPrimitive.Range ref={ref} className={slyderRangeStyles(className)} {...props} />;\r\n\t}\r\n);\r\n\r\nSliderRange.displayName = SliderPrimitive.Range.displayName;\r\n","import { tv } from \"tailwind-variants\";\r\nimport * as SliderPrimitive from \"@radix-ui/react-slider\";\r\nimport React from \"react\";\r\n\r\nexport type SliderThumbProps = React.ComponentPropsWithoutRef<typeof SliderPrimitive.Thumb>;\r\n\r\nconst slyderThumbStyles = tv({\r\n\tbase: \"block h-4 w-4 rounded-full border border-primary-fg bg-secondary-bg shadow-soft-base transition-colors hover:shadow-focus focus-visible:shadow-focus focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50\"\r\n});\r\n\r\nexport const SliderThumb = React.forwardRef<React.ElementRef<typeof SliderPrimitive.Root>, SliderThumbProps>(\r\n\t({ className, ...props }, ref) => {\r\n\t\treturn <SliderPrimitive.Thumb ref={ref} className={slyderThumbStyles({ className })} {...props} />;\r\n\t}\r\n);\r\n\r\nSliderThumb.displayName = SliderPrimitive.Thumb.displayName;\r\n"],"names":["PAGE_KEYS","ARROW_KEYS","BACK_KEYS","SLIDER_NAME","Collection","useCollection","createCollectionScope","createCollection","createSliderContext","createSliderScope","createContextScope","SliderProvider","useSliderContext","Slider","React","props","forwardedRef","name","min","max","step","orientation","disabled","minStepsBetweenThumbs","defaultValue","value","onValueChange","onValueCommit","inverted","form","sliderProps","thumbRefs","valueIndexToChangeRef","SliderOrientation","SliderHorizontal","SliderVertical","values","setValues","useControllableState","value2","valuesBeforeSlideStartRef","handleSlideStart","closestIndex","getClosestValueIndex","updateValues","handleSlideMove","handleSlideEnd","prevValue","atIndex","commit","decimalCount","getDecimalCount","snapToStep","roundValue","nextValue","clamp","prevValues","nextValues","getNextSortedValues","hasMinStepsBetweenValues","hasChanged","jsx","composeEventHandlers","event","stepDirection","multiplier","stepInDirection","SliderOrientationProvider","useSliderOrientationContext","dir","onSlideStart","onSlideMove","onSlideEnd","onStepKeyDown","slider","setSlider","composedRefs","useComposedRefs","node","rectRef","direction","useDirection","isDirectionLTR","isSlidingFromLeft","getValueFromPointer","pointerPosition","rect","input","linearScale","SliderImpl","isBackKey","sliderRef","ref","isSlidingFromBottom","__scopeSlider","onHomeKeyDown","onEndKeyDown","context","Primitive","target","TRACK_NAME","SliderTrack","trackProps","RANGE_NAME","SliderRange","rangeProps","valuesCount","percentages","convertValueToPercentage","offsetStart","offsetEnd","THUMB_NAME","SliderThumb","getItems","thumb","setThumb","index","item","SliderThumbImpl","thumbProps","isFormControl","size","useSize","percent","label","getLabel","orientationSize","thumbInBoundsOffset","getThumbInBoundsOffset","jsxs","SliderBubbleInput","BUBBLE_INPUT_NAME","usePrevious","inputProto","setValue","b","percentage","totalValues","distances","closestDistance","width","left","halfWidth","offset","getStepsBetweenValues","minStepsBetweenValues","stepsBetweenValues","output","ratio","rounder","Root","Track","Range","Thumb","slyderStyles","tv","className","children","SliderPrimitive.Root","slyderTrackStyles","SliderPrimitive.Track","slyderRangeStyles","SliderPrimitive.Range","slyderThumbStyles","SliderPrimitive.Thumb"],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"slider.js","sources":["../../node_modules/.pnpm/@radix-ui+react-slider@1.3.6_@types+react-dom@18.3.6_@types+react@18.3.20__@types+react_90b01d55a02a48d8f097dc170ff43e62/node_modules/@radix-ui/react-slider/dist/index.mjs","../../src/components/slider/Slider.tsx","../../src/components/slider/components/SliderTrack.tsx","../../src/components/slider/components/SliderRange.tsx","../../src/components/slider/components/SliderThumb.tsx"],"sourcesContent":["\"use client\";\n\n// src/slider.tsx\nimport * as React from \"react\";\nimport { clamp } from \"@radix-ui/number\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { useDirection } from \"@radix-ui/react-direction\";\nimport { usePrevious } from \"@radix-ui/react-use-previous\";\nimport { useSize } from \"@radix-ui/react-use-size\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { createCollection } from \"@radix-ui/react-collection\";\nimport { jsx, jsxs } from \"react/jsx-runtime\";\nvar PAGE_KEYS = [\"PageUp\", \"PageDown\"];\nvar ARROW_KEYS = [\"ArrowUp\", \"ArrowDown\", \"ArrowLeft\", \"ArrowRight\"];\nvar BACK_KEYS = {\n \"from-left\": [\"Home\", \"PageDown\", \"ArrowDown\", \"ArrowLeft\"],\n \"from-right\": [\"Home\", \"PageDown\", \"ArrowDown\", \"ArrowRight\"],\n \"from-bottom\": [\"Home\", \"PageDown\", \"ArrowDown\", \"ArrowLeft\"],\n \"from-top\": [\"Home\", \"PageDown\", \"ArrowUp\", \"ArrowLeft\"]\n};\nvar SLIDER_NAME = \"Slider\";\nvar [Collection, useCollection, createCollectionScope] = createCollection(SLIDER_NAME);\nvar [createSliderContext, createSliderScope] = createContextScope(SLIDER_NAME, [\n createCollectionScope\n]);\nvar [SliderProvider, useSliderContext] = createSliderContext(SLIDER_NAME);\nvar Slider = React.forwardRef(\n (props, forwardedRef) => {\n const {\n name,\n min = 0,\n max = 100,\n step = 1,\n orientation = \"horizontal\",\n disabled = false,\n minStepsBetweenThumbs = 0,\n defaultValue = [min],\n value,\n onValueChange = () => {\n },\n onValueCommit = () => {\n },\n inverted = false,\n form,\n ...sliderProps\n } = props;\n const thumbRefs = React.useRef(/* @__PURE__ */ new Set());\n const valueIndexToChangeRef = React.useRef(0);\n const isHorizontal = orientation === \"horizontal\";\n const SliderOrientation = isHorizontal ? SliderHorizontal : SliderVertical;\n const [values = [], setValues] = useControllableState({\n prop: value,\n defaultProp: defaultValue,\n onChange: (value2) => {\n const thumbs = [...thumbRefs.current];\n thumbs[valueIndexToChangeRef.current]?.focus();\n onValueChange(value2);\n }\n });\n const valuesBeforeSlideStartRef = React.useRef(values);\n function handleSlideStart(value2) {\n const closestIndex = getClosestValueIndex(values, value2);\n updateValues(value2, closestIndex);\n }\n function handleSlideMove(value2) {\n updateValues(value2, valueIndexToChangeRef.current);\n }\n function handleSlideEnd() {\n const prevValue = valuesBeforeSlideStartRef.current[valueIndexToChangeRef.current];\n const nextValue = values[valueIndexToChangeRef.current];\n const hasChanged = nextValue !== prevValue;\n if (hasChanged) onValueCommit(values);\n }\n function updateValues(value2, atIndex, { commit } = { commit: false }) {\n const decimalCount = getDecimalCount(step);\n const snapToStep = roundValue(Math.round((value2 - min) / step) * step + min, decimalCount);\n const nextValue = clamp(snapToStep, [min, max]);\n setValues((prevValues = []) => {\n const nextValues = getNextSortedValues(prevValues, nextValue, atIndex);\n if (hasMinStepsBetweenValues(nextValues, minStepsBetweenThumbs * step)) {\n valueIndexToChangeRef.current = nextValues.indexOf(nextValue);\n const hasChanged = String(nextValues) !== String(prevValues);\n if (hasChanged && commit) onValueCommit(nextValues);\n return hasChanged ? nextValues : prevValues;\n } else {\n return prevValues;\n }\n });\n }\n return /* @__PURE__ */ jsx(\n SliderProvider,\n {\n scope: props.__scopeSlider,\n name,\n disabled,\n min,\n max,\n valueIndexToChangeRef,\n thumbs: thumbRefs.current,\n values,\n orientation,\n form,\n children: /* @__PURE__ */ jsx(Collection.Provider, { scope: props.__scopeSlider, children: /* @__PURE__ */ jsx(Collection.Slot, { scope: props.__scopeSlider, children: /* @__PURE__ */ jsx(\n SliderOrientation,\n {\n \"aria-disabled\": disabled,\n \"data-disabled\": disabled ? \"\" : void 0,\n ...sliderProps,\n ref: forwardedRef,\n onPointerDown: composeEventHandlers(sliderProps.onPointerDown, () => {\n if (!disabled) valuesBeforeSlideStartRef.current = values;\n }),\n min,\n max,\n inverted,\n onSlideStart: disabled ? void 0 : handleSlideStart,\n onSlideMove: disabled ? void 0 : handleSlideMove,\n onSlideEnd: disabled ? void 0 : handleSlideEnd,\n onHomeKeyDown: () => !disabled && updateValues(min, 0, { commit: true }),\n onEndKeyDown: () => !disabled && updateValues(max, values.length - 1, { commit: true }),\n onStepKeyDown: ({ event, direction: stepDirection }) => {\n if (!disabled) {\n const isPageKey = PAGE_KEYS.includes(event.key);\n const isSkipKey = isPageKey || event.shiftKey && ARROW_KEYS.includes(event.key);\n const multiplier = isSkipKey ? 10 : 1;\n const atIndex = valueIndexToChangeRef.current;\n const value2 = values[atIndex];\n const stepInDirection = step * multiplier * stepDirection;\n updateValues(value2 + stepInDirection, atIndex, { commit: true });\n }\n }\n }\n ) }) })\n }\n );\n }\n);\nSlider.displayName = SLIDER_NAME;\nvar [SliderOrientationProvider, useSliderOrientationContext] = createSliderContext(SLIDER_NAME, {\n startEdge: \"left\",\n endEdge: \"right\",\n size: \"width\",\n direction: 1\n});\nvar SliderHorizontal = React.forwardRef(\n (props, forwardedRef) => {\n const {\n min,\n max,\n dir,\n inverted,\n onSlideStart,\n onSlideMove,\n onSlideEnd,\n onStepKeyDown,\n ...sliderProps\n } = props;\n const [slider, setSlider] = React.useState(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setSlider(node));\n const rectRef = React.useRef(void 0);\n const direction = useDirection(dir);\n const isDirectionLTR = direction === \"ltr\";\n const isSlidingFromLeft = isDirectionLTR && !inverted || !isDirectionLTR && inverted;\n function getValueFromPointer(pointerPosition) {\n const rect = rectRef.current || slider.getBoundingClientRect();\n const input = [0, rect.width];\n const output = isSlidingFromLeft ? [min, max] : [max, min];\n const value = linearScale(input, output);\n rectRef.current = rect;\n return value(pointerPosition - rect.left);\n }\n return /* @__PURE__ */ jsx(\n SliderOrientationProvider,\n {\n scope: props.__scopeSlider,\n startEdge: isSlidingFromLeft ? \"left\" : \"right\",\n endEdge: isSlidingFromLeft ? \"right\" : \"left\",\n direction: isSlidingFromLeft ? 1 : -1,\n size: \"width\",\n children: /* @__PURE__ */ jsx(\n SliderImpl,\n {\n dir: direction,\n \"data-orientation\": \"horizontal\",\n ...sliderProps,\n ref: composedRefs,\n style: {\n ...sliderProps.style,\n [\"--radix-slider-thumb-transform\"]: \"translateX(-50%)\"\n },\n onSlideStart: (event) => {\n const value = getValueFromPointer(event.clientX);\n onSlideStart?.(value);\n },\n onSlideMove: (event) => {\n const value = getValueFromPointer(event.clientX);\n onSlideMove?.(value);\n },\n onSlideEnd: () => {\n rectRef.current = void 0;\n onSlideEnd?.();\n },\n onStepKeyDown: (event) => {\n const slideDirection = isSlidingFromLeft ? \"from-left\" : \"from-right\";\n const isBackKey = BACK_KEYS[slideDirection].includes(event.key);\n onStepKeyDown?.({ event, direction: isBackKey ? -1 : 1 });\n }\n }\n )\n }\n );\n }\n);\nvar SliderVertical = React.forwardRef(\n (props, forwardedRef) => {\n const {\n min,\n max,\n inverted,\n onSlideStart,\n onSlideMove,\n onSlideEnd,\n onStepKeyDown,\n ...sliderProps\n } = props;\n const sliderRef = React.useRef(null);\n const ref = useComposedRefs(forwardedRef, sliderRef);\n const rectRef = React.useRef(void 0);\n const isSlidingFromBottom = !inverted;\n function getValueFromPointer(pointerPosition) {\n const rect = rectRef.current || sliderRef.current.getBoundingClientRect();\n const input = [0, rect.height];\n const output = isSlidingFromBottom ? [max, min] : [min, max];\n const value = linearScale(input, output);\n rectRef.current = rect;\n return value(pointerPosition - rect.top);\n }\n return /* @__PURE__ */ jsx(\n SliderOrientationProvider,\n {\n scope: props.__scopeSlider,\n startEdge: isSlidingFromBottom ? \"bottom\" : \"top\",\n endEdge: isSlidingFromBottom ? \"top\" : \"bottom\",\n size: \"height\",\n direction: isSlidingFromBottom ? 1 : -1,\n children: /* @__PURE__ */ jsx(\n SliderImpl,\n {\n \"data-orientation\": \"vertical\",\n ...sliderProps,\n ref,\n style: {\n ...sliderProps.style,\n [\"--radix-slider-thumb-transform\"]: \"translateY(50%)\"\n },\n onSlideStart: (event) => {\n const value = getValueFromPointer(event.clientY);\n onSlideStart?.(value);\n },\n onSlideMove: (event) => {\n const value = getValueFromPointer(event.clientY);\n onSlideMove?.(value);\n },\n onSlideEnd: () => {\n rectRef.current = void 0;\n onSlideEnd?.();\n },\n onStepKeyDown: (event) => {\n const slideDirection = isSlidingFromBottom ? \"from-bottom\" : \"from-top\";\n const isBackKey = BACK_KEYS[slideDirection].includes(event.key);\n onStepKeyDown?.({ event, direction: isBackKey ? -1 : 1 });\n }\n }\n )\n }\n );\n }\n);\nvar SliderImpl = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeSlider,\n onSlideStart,\n onSlideMove,\n onSlideEnd,\n onHomeKeyDown,\n onEndKeyDown,\n onStepKeyDown,\n ...sliderProps\n } = props;\n const context = useSliderContext(SLIDER_NAME, __scopeSlider);\n return /* @__PURE__ */ jsx(\n Primitive.span,\n {\n ...sliderProps,\n ref: forwardedRef,\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n if (event.key === \"Home\") {\n onHomeKeyDown(event);\n event.preventDefault();\n } else if (event.key === \"End\") {\n onEndKeyDown(event);\n event.preventDefault();\n } else if (PAGE_KEYS.concat(ARROW_KEYS).includes(event.key)) {\n onStepKeyDown(event);\n event.preventDefault();\n }\n }),\n onPointerDown: composeEventHandlers(props.onPointerDown, (event) => {\n const target = event.target;\n target.setPointerCapture(event.pointerId);\n event.preventDefault();\n if (context.thumbs.has(target)) {\n target.focus();\n } else {\n onSlideStart(event);\n }\n }),\n onPointerMove: composeEventHandlers(props.onPointerMove, (event) => {\n const target = event.target;\n if (target.hasPointerCapture(event.pointerId)) onSlideMove(event);\n }),\n onPointerUp: composeEventHandlers(props.onPointerUp, (event) => {\n const target = event.target;\n if (target.hasPointerCapture(event.pointerId)) {\n target.releasePointerCapture(event.pointerId);\n onSlideEnd(event);\n }\n })\n }\n );\n }\n);\nvar TRACK_NAME = \"SliderTrack\";\nvar SliderTrack = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSlider, ...trackProps } = props;\n const context = useSliderContext(TRACK_NAME, __scopeSlider);\n return /* @__PURE__ */ jsx(\n Primitive.span,\n {\n \"data-disabled\": context.disabled ? \"\" : void 0,\n \"data-orientation\": context.orientation,\n ...trackProps,\n ref: forwardedRef\n }\n );\n }\n);\nSliderTrack.displayName = TRACK_NAME;\nvar RANGE_NAME = \"SliderRange\";\nvar SliderRange = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSlider, ...rangeProps } = props;\n const context = useSliderContext(RANGE_NAME, __scopeSlider);\n const orientation = useSliderOrientationContext(RANGE_NAME, __scopeSlider);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const valuesCount = context.values.length;\n const percentages = context.values.map(\n (value) => convertValueToPercentage(value, context.min, context.max)\n );\n const offsetStart = valuesCount > 1 ? Math.min(...percentages) : 0;\n const offsetEnd = 100 - Math.max(...percentages);\n return /* @__PURE__ */ jsx(\n Primitive.span,\n {\n \"data-orientation\": context.orientation,\n \"data-disabled\": context.disabled ? \"\" : void 0,\n ...rangeProps,\n ref: composedRefs,\n style: {\n ...props.style,\n [orientation.startEdge]: offsetStart + \"%\",\n [orientation.endEdge]: offsetEnd + \"%\"\n }\n }\n );\n }\n);\nSliderRange.displayName = RANGE_NAME;\nvar THUMB_NAME = \"SliderThumb\";\nvar SliderThumb = React.forwardRef(\n (props, forwardedRef) => {\n const getItems = useCollection(props.__scopeSlider);\n const [thumb, setThumb] = React.useState(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setThumb(node));\n const index = React.useMemo(\n () => thumb ? getItems().findIndex((item) => item.ref.current === thumb) : -1,\n [getItems, thumb]\n );\n return /* @__PURE__ */ jsx(SliderThumbImpl, { ...props, ref: composedRefs, index });\n }\n);\nvar SliderThumbImpl = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSlider, index, name, ...thumbProps } = props;\n const context = useSliderContext(THUMB_NAME, __scopeSlider);\n const orientation = useSliderOrientationContext(THUMB_NAME, __scopeSlider);\n const [thumb, setThumb] = React.useState(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setThumb(node));\n const isFormControl = thumb ? context.form || !!thumb.closest(\"form\") : true;\n const size = useSize(thumb);\n const value = context.values[index];\n const percent = value === void 0 ? 0 : convertValueToPercentage(value, context.min, context.max);\n const label = getLabel(index, context.values.length);\n const orientationSize = size?.[orientation.size];\n const thumbInBoundsOffset = orientationSize ? getThumbInBoundsOffset(orientationSize, percent, orientation.direction) : 0;\n React.useEffect(() => {\n if (thumb) {\n context.thumbs.add(thumb);\n return () => {\n context.thumbs.delete(thumb);\n };\n }\n }, [thumb, context.thumbs]);\n return /* @__PURE__ */ jsxs(\n \"span\",\n {\n style: {\n transform: \"var(--radix-slider-thumb-transform)\",\n position: \"absolute\",\n [orientation.startEdge]: `calc(${percent}% + ${thumbInBoundsOffset}px)`\n },\n children: [\n /* @__PURE__ */ jsx(Collection.ItemSlot, { scope: props.__scopeSlider, children: /* @__PURE__ */ jsx(\n Primitive.span,\n {\n role: \"slider\",\n \"aria-label\": props[\"aria-label\"] || label,\n \"aria-valuemin\": context.min,\n \"aria-valuenow\": value,\n \"aria-valuemax\": context.max,\n \"aria-orientation\": context.orientation,\n \"data-orientation\": context.orientation,\n \"data-disabled\": context.disabled ? \"\" : void 0,\n tabIndex: context.disabled ? void 0 : 0,\n ...thumbProps,\n ref: composedRefs,\n style: value === void 0 ? { display: \"none\" } : props.style,\n onFocus: composeEventHandlers(props.onFocus, () => {\n context.valueIndexToChangeRef.current = index;\n })\n }\n ) }),\n isFormControl && /* @__PURE__ */ jsx(\n SliderBubbleInput,\n {\n name: name ?? (context.name ? context.name + (context.values.length > 1 ? \"[]\" : \"\") : void 0),\n form: context.form,\n value\n },\n index\n )\n ]\n }\n );\n }\n);\nSliderThumb.displayName = THUMB_NAME;\nvar BUBBLE_INPUT_NAME = \"RadioBubbleInput\";\nvar SliderBubbleInput = React.forwardRef(\n ({ __scopeSlider, value, ...props }, forwardedRef) => {\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(ref, forwardedRef);\n const prevValue = usePrevious(value);\n React.useEffect(() => {\n const input = ref.current;\n if (!input) return;\n const inputProto = window.HTMLInputElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(inputProto, \"value\");\n const setValue = descriptor.set;\n if (prevValue !== value && setValue) {\n const event = new Event(\"input\", { bubbles: true });\n setValue.call(input, value);\n input.dispatchEvent(event);\n }\n }, [prevValue, value]);\n return /* @__PURE__ */ jsx(\n Primitive.input,\n {\n style: { display: \"none\" },\n ...props,\n ref: composedRefs,\n defaultValue: value\n }\n );\n }\n);\nSliderBubbleInput.displayName = BUBBLE_INPUT_NAME;\nfunction getNextSortedValues(prevValues = [], nextValue, atIndex) {\n const nextValues = [...prevValues];\n nextValues[atIndex] = nextValue;\n return nextValues.sort((a, b) => a - b);\n}\nfunction convertValueToPercentage(value, min, max) {\n const maxSteps = max - min;\n const percentPerStep = 100 / maxSteps;\n const percentage = percentPerStep * (value - min);\n return clamp(percentage, [0, 100]);\n}\nfunction getLabel(index, totalValues) {\n if (totalValues > 2) {\n return `Value ${index + 1} of ${totalValues}`;\n } else if (totalValues === 2) {\n return [\"Minimum\", \"Maximum\"][index];\n } else {\n return void 0;\n }\n}\nfunction getClosestValueIndex(values, nextValue) {\n if (values.length === 1) return 0;\n const distances = values.map((value) => Math.abs(value - nextValue));\n const closestDistance = Math.min(...distances);\n return distances.indexOf(closestDistance);\n}\nfunction getThumbInBoundsOffset(width, left, direction) {\n const halfWidth = width / 2;\n const halfPercent = 50;\n const offset = linearScale([0, halfPercent], [0, halfWidth]);\n return (halfWidth - offset(left) * direction) * direction;\n}\nfunction getStepsBetweenValues(values) {\n return values.slice(0, -1).map((value, index) => values[index + 1] - value);\n}\nfunction hasMinStepsBetweenValues(values, minStepsBetweenValues) {\n if (minStepsBetweenValues > 0) {\n const stepsBetweenValues = getStepsBetweenValues(values);\n const actualMinStepsBetweenValues = Math.min(...stepsBetweenValues);\n return actualMinStepsBetweenValues >= minStepsBetweenValues;\n }\n return true;\n}\nfunction linearScale(input, output) {\n return (value) => {\n if (input[0] === input[1] || output[0] === output[1]) return output[0];\n const ratio = (output[1] - output[0]) / (input[1] - input[0]);\n return output[0] + ratio * (value - input[0]);\n };\n}\nfunction getDecimalCount(value) {\n return (String(value).split(\".\")[1] || \"\").length;\n}\nfunction roundValue(value, decimalCount) {\n const rounder = Math.pow(10, decimalCount);\n return Math.round(value * rounder) / rounder;\n}\nvar Root = Slider;\nvar Track = SliderTrack;\nvar Range = SliderRange;\nvar Thumb = SliderThumb;\nexport {\n Range,\n Root,\n Slider,\n SliderRange,\n SliderThumb,\n SliderTrack,\n Thumb,\n Track,\n createSliderScope\n};\n//# sourceMappingURL=index.mjs.map\n","import * as React from \"react\";\nimport * as SliderPrimitive from \"@radix-ui/react-slider\";\nimport { tv } from \"tailwind-variants\";\n\nexport type SliderProps = React.ComponentPropsWithoutRef<typeof SliderPrimitive.Root>;\n\nconst slyderStyles = tv({\n\tbase: \"relative flex touch-none select-none items-center data-[orientation=vertical]:h-full data-[orientation=horizontal]:w-full data-[orientation=vertical]:w-5 data-[orientation=vertical]:flex-col\"\n});\n\nexport const Slider = React.forwardRef<React.ElementRef<typeof SliderPrimitive.Root>, SliderProps>(\n\t({ className, children, ...props }, ref) => {\n\t\treturn (\n\t\t\t<SliderPrimitive.Root ref={ref} className={slyderStyles({ className })} {...props}>\n\t\t\t\t{children}\n\t\t\t</SliderPrimitive.Root>\n\t\t);\n\t}\n);\n\nSlider.displayName = SliderPrimitive.Root.displayName;\n","import { tv } from \"tailwind-variants\";\nimport * as SliderPrimitive from \"@radix-ui/react-slider\";\nimport React from \"react\";\n\nexport type SliderTrackProps = React.ComponentPropsWithoutRef<typeof SliderPrimitive.Track>;\n\nconst slyderTrackStyles = tv({\n\tbase: \"relative grow overflow-hidden rounded-full bg-secondary-bg-hover data-[orientation=horizontal]:h-1.5 data-[orientation=vertical]:h-full data-[orientation=horizontal]:w-full data-[orientation=vertical]:w-1.5\"\n});\n\nexport const SliderTrack = React.forwardRef<React.ElementRef<typeof SliderPrimitive.Root>, SliderTrackProps>(\n\t({ className, children, ...props }, ref) => {\n\t\treturn (\n\t\t\t<SliderPrimitive.Track ref={ref} className={slyderTrackStyles({ className })} {...props}>\n\t\t\t\t{children}\n\t\t\t</SliderPrimitive.Track>\n\t\t);\n\t}\n);\n\nSliderTrack.displayName = SliderPrimitive.Track.displayName;\n","import { tv } from \"tailwind-variants\";\nimport * as SliderPrimitive from \"@radix-ui/react-slider\";\nimport React from \"react\";\n\nexport type SliderRangeProps = React.ComponentPropsWithoutRef<typeof SliderPrimitive.Range>;\n\nconst slyderRangeStyles = tv({\n\tbase: \"absolute bg-primary-accent data-[orientation=horizontal]:h-full data-[orientation=vertical]:w-full\"\n});\n\nexport const SliderRange = React.forwardRef<React.ElementRef<typeof SliderPrimitive.Root>, SliderRangeProps>(\n\t({ className, ...props }, ref) => {\n\t\treturn <SliderPrimitive.Range ref={ref} className={slyderRangeStyles(className)} {...props} />;\n\t}\n);\n\nSliderRange.displayName = SliderPrimitive.Range.displayName;\n","import { tv } from \"tailwind-variants\";\nimport * as SliderPrimitive from \"@radix-ui/react-slider\";\nimport React from \"react\";\n\nexport type SliderThumbProps = React.ComponentPropsWithoutRef<typeof SliderPrimitive.Thumb>;\n\nconst slyderThumbStyles = tv({\n\tbase: \"block h-4 w-4 rounded-full border border-primary-fg bg-secondary-bg shadow-soft-base transition-colors hover:shadow-focus focus-visible:shadow-focus focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50\"\n});\n\nexport const SliderThumb = React.forwardRef<React.ElementRef<typeof SliderPrimitive.Root>, SliderThumbProps>(\n\t({ className, ...props }, ref) => {\n\t\treturn <SliderPrimitive.Thumb ref={ref} className={slyderThumbStyles({ className })} {...props} />;\n\t}\n);\n\nSliderThumb.displayName = SliderPrimitive.Thumb.displayName;\n"],"names":["PAGE_KEYS","ARROW_KEYS","BACK_KEYS","SLIDER_NAME","Collection","useCollection","createCollectionScope","createCollection","createSliderContext","createSliderScope","createContextScope","SliderProvider","useSliderContext","Slider","React","props","forwardedRef","name","min","max","step","orientation","disabled","minStepsBetweenThumbs","defaultValue","value","onValueChange","onValueCommit","inverted","form","sliderProps","thumbRefs","valueIndexToChangeRef","SliderOrientation","SliderHorizontal","SliderVertical","values","setValues","useControllableState","value2","valuesBeforeSlideStartRef","handleSlideStart","closestIndex","getClosestValueIndex","updateValues","handleSlideMove","handleSlideEnd","prevValue","atIndex","commit","decimalCount","getDecimalCount","snapToStep","roundValue","nextValue","clamp","prevValues","nextValues","getNextSortedValues","hasMinStepsBetweenValues","hasChanged","jsx","composeEventHandlers","event","stepDirection","multiplier","stepInDirection","SliderOrientationProvider","useSliderOrientationContext","dir","onSlideStart","onSlideMove","onSlideEnd","onStepKeyDown","slider","setSlider","composedRefs","useComposedRefs","node","rectRef","direction","useDirection","isDirectionLTR","isSlidingFromLeft","getValueFromPointer","pointerPosition","rect","input","linearScale","SliderImpl","isBackKey","sliderRef","ref","isSlidingFromBottom","__scopeSlider","onHomeKeyDown","onEndKeyDown","context","Primitive","target","TRACK_NAME","SliderTrack","trackProps","RANGE_NAME","SliderRange","rangeProps","valuesCount","percentages","convertValueToPercentage","offsetStart","offsetEnd","THUMB_NAME","SliderThumb","getItems","thumb","setThumb","index","item","SliderThumbImpl","thumbProps","isFormControl","size","useSize","percent","label","getLabel","orientationSize","thumbInBoundsOffset","getThumbInBoundsOffset","jsxs","SliderBubbleInput","BUBBLE_INPUT_NAME","usePrevious","inputProto","setValue","b","percentage","totalValues","distances","closestDistance","width","left","halfWidth","offset","getStepsBetweenValues","minStepsBetweenValues","stepsBetweenValues","output","ratio","rounder","Root","Track","Range","Thumb","slyderStyles","tv","className","children","SliderPrimitive.Root","slyderTrackStyles","SliderPrimitive.Track","slyderRangeStyles","SliderPrimitive.Range","slyderThumbStyles","SliderPrimitive.Thumb"],"mappings":"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","x_google_ignoreList":[0]}
@@ -1 +1 @@
1
- {"version":3,"file":"stepper.js","sources":["../../src/components/stepper/StepperContext.tsx","../../src/components/stepper/Stepper.tsx","../../src/components/stepper/components/stepper-item/StepperItemContext.tsx","../../src/components/stepper/components/stepper-item/StepperItem.tsx","../../src/components/stepper/components/stepper-indicator/StepperIndicator.tsx","../../src/components/stepper/components/stepper-title/StepperTitle.tsx","../../src/components/stepper/components/stepper-trigger/StepperTrigger.tsx","../../src/components/stepper/stepper-separator/StepperSeparator.tsx","../../src/components/stepper/components/stepper-description/StepperDescription.tsx"],"sourcesContent":["import { createContext, useContext } from \"react\";\r\n\r\ntype StepperContextValue = {\r\n\tactiveStep: number;\r\n\tsetActiveStep: (step: number) => void;\r\n\torientation: \"horizontal\" | \"vertical\";\r\n};\r\n\r\nexport const StepperContext = createContext<StepperContextValue | undefined>(undefined);\r\n\r\nexport const useStepper = () => {\r\n\tconst context = useContext(StepperContext);\r\n\tif (!context) {\r\n\t\tthrow new Error(\"useStepper must be used within a Stepper\");\r\n\t}\r\n\treturn context;\r\n};\r\n","import * as React from \"react\";\r\nimport { StepperContext } from \"@/components/stepper/StepperContext\";\r\nimport { tv } from \"tailwind-variants\";\r\n\r\nexport interface StepperProps extends React.HTMLAttributes<HTMLDivElement> {\r\n\tdefaultValue?: number;\r\n\tvalue?: number;\r\n\tonValueChange?: (value: number) => void;\r\n\torientation?: \"horizontal\" | \"vertical\";\r\n}\r\n\r\nconst stepperStyles = tv({\r\n\tbase: \"group/stepper inline-flex data-[orientation=horizontal]:w-full data-[orientation=horizontal]:flex-row data-[orientation=vertical]:flex-col\"\r\n});\r\n\r\nexport function Stepper({\r\n\tdefaultValue = 0,\r\n\tvalue,\r\n\tonValueChange,\r\n\torientation = \"horizontal\",\r\n\tclassName,\r\n\t...props\r\n}: StepperProps) {\r\n\tconst [activeStep, setInternalStep] = React.useState(defaultValue);\r\n\r\n\tconst setActiveStep = React.useCallback(\r\n\t\t(step: number) => {\r\n\t\t\tif (value === undefined) {\r\n\t\t\t\tsetInternalStep(step);\r\n\t\t\t}\r\n\t\t\tonValueChange?.(step);\r\n\t\t},\r\n\t\t[value, onValueChange]\r\n\t);\r\n\r\n\tconst currentStep = value ?? activeStep;\r\n\r\n\treturn (\r\n\t\t<StepperContext.Provider\r\n\t\t\tvalue={{\r\n\t\t\t\tactiveStep: currentStep,\r\n\t\t\t\tsetActiveStep,\r\n\t\t\t\torientation\r\n\t\t\t}}\r\n\t\t>\r\n\t\t\t<div\r\n\t\t\t\tdata-slot=\"stepper\"\r\n\t\t\t\tclassName={stepperStyles({ className })}\r\n\t\t\t\tdata-orientation={orientation}\r\n\t\t\t\t{...props}\r\n\t\t\t/>\r\n\t\t</StepperContext.Provider>\r\n\t);\r\n}\r\n","import { createContext, useContext } from \"react\";\r\n\r\ntype StepItemContextValue = {\r\n\tstep: number;\r\n\tstate: StepState;\r\n\tisDisabled: boolean;\r\n\tisLoading: boolean;\r\n};\r\n\r\nexport type StepState = \"active\" | \"completed\" | \"inactive\" | \"loading\";\r\n\r\nexport const StepItemContext = createContext<StepItemContextValue | undefined>(undefined);\r\n\r\nexport const useStepItem = () => {\r\n\tconst context = useContext(StepItemContext);\r\n\tif (!context) {\r\n\t\tthrow new Error(\"useStepItem must be used within a StepperItem\");\r\n\t}\r\n\treturn context;\r\n};\r\n","import { StepItemContext, StepState } from \"@/components/stepper/components/stepper-item/StepperItemContext\";\r\nimport { useStepper } from \"@/components/stepper/StepperContext\";\r\nimport { tv } from \"tailwind-variants\";\r\n\r\nexport interface StepperItemProps extends React.HTMLAttributes<HTMLDivElement> {\r\n\tstep: number;\r\n\tcompleted?: boolean;\r\n\tdisabled?: boolean;\r\n\tloading?: boolean;\r\n}\r\n\r\nconst stepperItemStyles = tv({\r\n\tbase: \"group/step flex items-center group-data-[orientation=horizontal]/stepper:flex-row group-data-[orientation=vertical]/stepper:flex-col\"\r\n});\r\n\r\nexport function StepperItem({\r\n\tstep,\r\n\tcompleted = false,\r\n\tdisabled = false,\r\n\tloading = false,\r\n\tclassName,\r\n\tchildren,\r\n\t...props\r\n}: StepperItemProps) {\r\n\tconst { activeStep } = useStepper();\r\n\r\n\tconst state: StepState = completed || step < activeStep ? \"completed\" : activeStep === step ? \"active\" : \"inactive\";\r\n\r\n\tconst isLoading = loading && step === activeStep;\r\n\r\n\treturn (\r\n\t\t<StepItemContext.Provider value={{ step, state, isDisabled: disabled, isLoading }}>\r\n\t\t\t<div\r\n\t\t\t\tdata-slot=\"stepper-item\"\r\n\t\t\t\tclassName={stepperItemStyles({ className })}\r\n\t\t\t\tdata-state={state}\r\n\t\t\t\t{...(isLoading ? { \"data-loading\": true } : {})}\r\n\t\t\t\t{...props}\r\n\t\t\t>\r\n\t\t\t\t{children}\r\n\t\t\t</div>\r\n\t\t</StepItemContext.Provider>\r\n\t);\r\n}\r\n","import { Icon } from \"@/components/icon\";\r\nimport { useStepItem } from \"@/components/stepper/components/stepper-item/StepperItemContext\";\r\nimport { CheckIcon, LoaderCircleIcon } from \"lucide-react\";\r\nimport { tv } from \"tailwind-variants\";\r\n\r\nexport interface StepperIndicatorProps extends React.HTMLAttributes<HTMLDivElement> {\r\n\tasChild?: boolean;\r\n}\r\n\r\nconst stepperIndicatorStyles = tv({\r\n\tslots: {\r\n\t\tindicator:\r\n\t\t\t\"relative flex size-6 shrink-0 items-center justify-center rounded-full bg-secondary-border text-xs font-medium text-muted data-[state=active]:bg-primary-accent data-[state=completed]:bg-primary-accent data-[state=active]:text-primary-bg data-[state=completed]:text-primary-bg\",\r\n\t\tstep: \"group-data-loading/step:scale-0 group-data-loading/step:opacity-0 group-data-loading/step:transition-none transition-all group-data-[state=completed]/step:scale-0 group-data-[state=completed]/step:opacity-0\",\r\n\t\tcheck: \"absolute scale-0 opacity-0 transition-all group-data-[state=completed]/step:scale-100 group-data-[state=completed]/step:opacity-100\",\r\n\t\tloader: \"absolute transition-all\"\r\n\t}\r\n});\r\n\r\nexport function StepperIndicator({ asChild = false, className, children, ...props }: StepperIndicatorProps) {\r\n\tconst { state, step, isLoading } = useStepItem();\r\n\tconst styles = stepperIndicatorStyles();\r\n\r\n\treturn (\r\n\t\t<span data-slot=\"stepper-indicator\" className={styles.indicator({ className })} data-state={state} {...props}>\r\n\t\t\t{asChild ? (\r\n\t\t\t\tchildren\r\n\t\t\t) : (\r\n\t\t\t\t<>\r\n\t\t\t\t\t<span className={styles.step()}>{step}</span>\r\n\t\t\t\t\t<Icon icon={CheckIcon} className={styles.check()} aria-hidden=\"true\" />\r\n\t\t\t\t\t{isLoading && (\r\n\t\t\t\t\t\t<span className={styles.loader()}>\r\n\t\t\t\t\t\t\t<Icon icon={LoaderCircleIcon} className=\"animate-spin\" aria-hidden=\"true\" />\r\n\t\t\t\t\t\t</span>\r\n\t\t\t\t\t)}\r\n\t\t\t\t</>\r\n\t\t\t)}\r\n\t\t</span>\r\n\t);\r\n}\r\n","import { tv } from \"tailwind-variants\";\r\n\r\nconst stepperTitleStyles = tv({\r\n\tbase: \"text-sm font-medium text-primary-fg\"\r\n});\r\n\r\nexport function StepperTitle({ className, ...props }: React.HTMLAttributes<HTMLHeadingElement>) {\r\n\treturn <h3 data-slot=\"stepper-title\" className={stepperTitleStyles({ className })} {...props} />;\r\n}\r\n","import { useStepItem } from \"@/components/stepper/components/stepper-item/StepperItemContext\";\r\nimport { useStepper } from \"@/components/stepper/StepperContext\";\r\nimport { Slot } from \"@radix-ui/react-slot\";\r\nimport { tv } from \"tailwind-variants\";\r\n\r\nexport interface StepperTriggerProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\r\n\tasChild?: boolean;\r\n}\r\n\r\nconst stepperTriggerStyles = tv({\r\n\tbase: \"inline-flex items-center gap-3 rounded-full outline-none focus-visible:z-10 focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50\"\r\n});\r\n\r\nexport function StepperTrigger({ asChild = false, className, children, ...props }: StepperTriggerProps) {\r\n\tconst { setActiveStep } = useStepper();\r\n\tconst { step, isDisabled } = useStepItem();\r\n\r\n\tif (asChild) {\r\n\t\tconst Comp = asChild ? Slot : \"span\";\r\n\t\treturn (\r\n\t\t\t<Comp data-slot=\"stepper-trigger\" className={className}>\r\n\t\t\t\t{children}\r\n\t\t\t</Comp>\r\n\t\t);\r\n\t}\r\n\r\n\treturn (\r\n\t\t<button\r\n\t\t\tdata-slot=\"stepper-trigger\"\r\n\t\t\tclassName={stepperTriggerStyles({ className })}\r\n\t\t\tonClick={() => setActiveStep(step)}\r\n\t\t\tdisabled={isDisabled}\r\n\t\t\t{...props}\r\n\t\t>\r\n\t\t\t{children}\r\n\t\t</button>\r\n\t);\r\n}\r\n","import { tv } from \"tailwind-variants\";\r\n\r\nconst stepperSeparatorStyles = tv({\r\n\tbase: \"m-0.5 bg-secondary-border group-data-[orientation=horizontal]/stepper:h-0.5 group-data-[orientation=vertical]/stepper:h-12 group-data-[orientation=horizontal]/stepper:w-full group-data-[orientation=vertical]/stepper:w-0.5 group-data-[orientation=horizontal]/stepper:flex-1 group-data-[state=completed]/step:bg-primary\"\r\n});\r\n\r\nexport function StepperSeparator({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) {\r\n\treturn <div data-slot=\"stepper-separator\" className={stepperSeparatorStyles({ className })} {...props} />;\r\n}\r\n","import { tv } from \"tailwind-variants\";\r\n\r\nconst stepperDescriptionStyles = tv({\r\n\tbase: \"text-sm text-muted\"\r\n});\r\n\r\nexport function StepperDescription({ className, ...props }: React.HTMLAttributes<HTMLParagraphElement>) {\r\n\treturn <p data-slot=\"stepper-description\" className={stepperDescriptionStyles({ className })} {...props} />;\r\n}\r\n"],"names":["StepperContext","createContext","useStepper","context","useContext","stepperStyles","tv","Stepper","defaultValue","value","onValueChange","orientation","className","props","activeStep","setInternalStep","React","setActiveStep","step","currentStep","jsx","StepItemContext","useStepItem","stepperItemStyles","StepperItem","completed","disabled","loading","children","state","isLoading","stepperIndicatorStyles","StepperIndicator","asChild","styles","jsxs","Fragment","Icon","CheckIcon","LoaderCircleIcon","stepperTitleStyles","StepperTitle","stepperTriggerStyles","StepperTrigger","isDisabled","Slot","stepperSeparatorStyles","StepperSeparator","stepperDescriptionStyles","StepperDescription"],"mappings":"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"}
1
+ {"version":3,"file":"stepper.js","sources":["../../src/components/stepper/StepperContext.tsx","../../src/components/stepper/Stepper.tsx","../../src/components/stepper/components/stepper-item/StepperItemContext.tsx","../../src/components/stepper/components/stepper-item/StepperItem.tsx","../../src/components/stepper/components/stepper-indicator/StepperIndicator.tsx","../../src/components/stepper/components/stepper-title/StepperTitle.tsx","../../src/components/stepper/components/stepper-trigger/StepperTrigger.tsx","../../src/components/stepper/stepper-separator/StepperSeparator.tsx","../../src/components/stepper/components/stepper-description/StepperDescription.tsx"],"sourcesContent":["import { createContext, useContext } from \"react\";\n\ntype StepperContextValue = {\n\tactiveStep: number;\n\tsetActiveStep: (step: number) => void;\n\torientation: \"horizontal\" | \"vertical\";\n};\n\nexport const StepperContext = createContext<StepperContextValue | undefined>(undefined);\n\nexport const useStepper = () => {\n\tconst context = useContext(StepperContext);\n\tif (!context) {\n\t\tthrow new Error(\"useStepper must be used within a Stepper\");\n\t}\n\treturn context;\n};\n","import * as React from \"react\";\nimport { StepperContext } from \"@/components/stepper/StepperContext\";\nimport { tv } from \"tailwind-variants\";\n\nexport interface StepperProps extends React.HTMLAttributes<HTMLDivElement> {\n\tdefaultValue?: number;\n\tvalue?: number;\n\tonValueChange?: (value: number) => void;\n\torientation?: \"horizontal\" | \"vertical\";\n}\n\nconst stepperStyles = tv({\n\tbase: \"group/stepper inline-flex data-[orientation=horizontal]:w-full data-[orientation=horizontal]:flex-row data-[orientation=vertical]:flex-col\"\n});\n\nexport function Stepper({\n\tdefaultValue = 0,\n\tvalue,\n\tonValueChange,\n\torientation = \"horizontal\",\n\tclassName,\n\t...props\n}: StepperProps) {\n\tconst [activeStep, setInternalStep] = React.useState(defaultValue);\n\n\tconst setActiveStep = React.useCallback(\n\t\t(step: number) => {\n\t\t\tif (value === undefined) {\n\t\t\t\tsetInternalStep(step);\n\t\t\t}\n\t\t\tonValueChange?.(step);\n\t\t},\n\t\t[value, onValueChange]\n\t);\n\n\tconst currentStep = value ?? activeStep;\n\n\treturn (\n\t\t<StepperContext.Provider\n\t\t\tvalue={{\n\t\t\t\tactiveStep: currentStep,\n\t\t\t\tsetActiveStep,\n\t\t\t\torientation\n\t\t\t}}\n\t\t>\n\t\t\t<div\n\t\t\t\tdata-slot=\"stepper\"\n\t\t\t\tclassName={stepperStyles({ className })}\n\t\t\t\tdata-orientation={orientation}\n\t\t\t\t{...props}\n\t\t\t/>\n\t\t</StepperContext.Provider>\n\t);\n}\n","import { createContext, useContext } from \"react\";\n\ntype StepItemContextValue = {\n\tstep: number;\n\tstate: StepState;\n\tisDisabled: boolean;\n\tisLoading: boolean;\n};\n\nexport type StepState = \"active\" | \"completed\" | \"inactive\" | \"loading\";\n\nexport const StepItemContext = createContext<StepItemContextValue | undefined>(undefined);\n\nexport const useStepItem = () => {\n\tconst context = useContext(StepItemContext);\n\tif (!context) {\n\t\tthrow new Error(\"useStepItem must be used within a StepperItem\");\n\t}\n\treturn context;\n};\n","import { StepItemContext, StepState } from \"@/components/stepper/components/stepper-item/StepperItemContext\";\nimport { useStepper } from \"@/components/stepper/StepperContext\";\nimport { tv } from \"tailwind-variants\";\n\nexport interface StepperItemProps extends React.HTMLAttributes<HTMLDivElement> {\n\tstep: number;\n\tcompleted?: boolean;\n\tdisabled?: boolean;\n\tloading?: boolean;\n}\n\nconst stepperItemStyles = tv({\n\tbase: \"group/step flex items-center group-data-[orientation=horizontal]/stepper:flex-row group-data-[orientation=vertical]/stepper:flex-col\"\n});\n\nexport function StepperItem({\n\tstep,\n\tcompleted = false,\n\tdisabled = false,\n\tloading = false,\n\tclassName,\n\tchildren,\n\t...props\n}: StepperItemProps) {\n\tconst { activeStep } = useStepper();\n\n\tconst state: StepState = completed || step < activeStep ? \"completed\" : activeStep === step ? \"active\" : \"inactive\";\n\n\tconst isLoading = loading && step === activeStep;\n\n\treturn (\n\t\t<StepItemContext.Provider value={{ step, state, isDisabled: disabled, isLoading }}>\n\t\t\t<div\n\t\t\t\tdata-slot=\"stepper-item\"\n\t\t\t\tclassName={stepperItemStyles({ className })}\n\t\t\t\tdata-state={state}\n\t\t\t\t{...(isLoading ? { \"data-loading\": true } : {})}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</div>\n\t\t</StepItemContext.Provider>\n\t);\n}\n","import { Icon } from \"@/components/icon\";\nimport { useStepItem } from \"@/components/stepper/components/stepper-item/StepperItemContext\";\nimport { CheckIcon, LoaderCircleIcon } from \"lucide-react\";\nimport { tv } from \"tailwind-variants\";\n\nexport interface StepperIndicatorProps extends React.HTMLAttributes<HTMLDivElement> {\n\tasChild?: boolean;\n}\n\nconst stepperIndicatorStyles = tv({\n\tslots: {\n\t\tindicator:\n\t\t\t\"relative flex size-6 shrink-0 items-center justify-center rounded-full bg-secondary-border text-xs font-medium text-muted data-[state=active]:bg-primary-accent data-[state=completed]:bg-primary-accent data-[state=active]:text-primary-bg data-[state=completed]:text-primary-bg\",\n\t\tstep: \"group-data-loading/step:scale-0 group-data-loading/step:opacity-0 group-data-loading/step:transition-none transition-all group-data-[state=completed]/step:scale-0 group-data-[state=completed]/step:opacity-0\",\n\t\tcheck: \"absolute scale-0 opacity-0 transition-all group-data-[state=completed]/step:scale-100 group-data-[state=completed]/step:opacity-100\",\n\t\tloader: \"absolute transition-all\"\n\t}\n});\n\nexport function StepperIndicator({ asChild = false, className, children, ...props }: StepperIndicatorProps) {\n\tconst { state, step, isLoading } = useStepItem();\n\tconst styles = stepperIndicatorStyles();\n\n\treturn (\n\t\t<span data-slot=\"stepper-indicator\" className={styles.indicator({ className })} data-state={state} {...props}>\n\t\t\t{asChild ? (\n\t\t\t\tchildren\n\t\t\t) : (\n\t\t\t\t<>\n\t\t\t\t\t<span className={styles.step()}>{step}</span>\n\t\t\t\t\t<Icon icon={CheckIcon} className={styles.check()} aria-hidden=\"true\" />\n\t\t\t\t\t{isLoading && (\n\t\t\t\t\t\t<span className={styles.loader()}>\n\t\t\t\t\t\t\t<Icon icon={LoaderCircleIcon} className=\"animate-spin\" aria-hidden=\"true\" />\n\t\t\t\t\t\t</span>\n\t\t\t\t\t)}\n\t\t\t\t</>\n\t\t\t)}\n\t\t</span>\n\t);\n}\n","import { tv } from \"tailwind-variants\";\n\nconst stepperTitleStyles = tv({\n\tbase: \"text-sm font-medium text-primary-fg\"\n});\n\nexport function StepperTitle({ className, ...props }: React.HTMLAttributes<HTMLHeadingElement>) {\n\treturn <h3 data-slot=\"stepper-title\" className={stepperTitleStyles({ className })} {...props} />;\n}\n","import { useStepItem } from \"@/components/stepper/components/stepper-item/StepperItemContext\";\nimport { useStepper } from \"@/components/stepper/StepperContext\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { tv } from \"tailwind-variants\";\n\nexport interface StepperTriggerProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n\tasChild?: boolean;\n}\n\nconst stepperTriggerStyles = tv({\n\tbase: \"inline-flex items-center gap-3 rounded-full outline-none focus-visible:z-10 focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50\"\n});\n\nexport function StepperTrigger({ asChild = false, className, children, ...props }: StepperTriggerProps) {\n\tconst { setActiveStep } = useStepper();\n\tconst { step, isDisabled } = useStepItem();\n\n\tif (asChild) {\n\t\tconst Comp = asChild ? Slot : \"span\";\n\t\treturn (\n\t\t\t<Comp data-slot=\"stepper-trigger\" className={className}>\n\t\t\t\t{children}\n\t\t\t</Comp>\n\t\t);\n\t}\n\n\treturn (\n\t\t<button\n\t\t\tdata-slot=\"stepper-trigger\"\n\t\t\tclassName={stepperTriggerStyles({ className })}\n\t\t\tonClick={() => setActiveStep(step)}\n\t\t\tdisabled={isDisabled}\n\t\t\t{...props}\n\t\t>\n\t\t\t{children}\n\t\t</button>\n\t);\n}\n","import { tv } from \"tailwind-variants\";\n\nconst stepperSeparatorStyles = tv({\n\tbase: \"m-0.5 bg-secondary-border group-data-[orientation=horizontal]/stepper:h-0.5 group-data-[orientation=vertical]/stepper:h-12 group-data-[orientation=horizontal]/stepper:w-full group-data-[orientation=vertical]/stepper:w-0.5 group-data-[orientation=horizontal]/stepper:flex-1 group-data-[state=completed]/step:bg-primary\"\n});\n\nexport function StepperSeparator({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) {\n\treturn <div data-slot=\"stepper-separator\" className={stepperSeparatorStyles({ className })} {...props} />;\n}\n","import { tv } from \"tailwind-variants\";\n\nconst stepperDescriptionStyles = tv({\n\tbase: \"text-sm text-muted\"\n});\n\nexport function StepperDescription({ className, ...props }: React.HTMLAttributes<HTMLParagraphElement>) {\n\treturn <p data-slot=\"stepper-description\" className={stepperDescriptionStyles({ className })} {...props} />;\n}\n"],"names":["StepperContext","createContext","useStepper","context","useContext","stepperStyles","tv","Stepper","defaultValue","value","onValueChange","orientation","className","props","activeStep","setInternalStep","React","setActiveStep","step","currentStep","jsx","StepItemContext","useStepItem","stepperItemStyles","StepperItem","completed","disabled","loading","children","state","isLoading","stepperIndicatorStyles","StepperIndicator","asChild","styles","jsxs","Fragment","Icon","CheckIcon","LoaderCircleIcon","stepperTitleStyles","StepperTitle","stepperTriggerStyles","StepperTrigger","isDisabled","Slot","stepperSeparatorStyles","StepperSeparator","stepperDescriptionStyles","StepperDescription"],"mappings":"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"}
@@ -2,7 +2,7 @@ import * as React from "react";
2
2
  import * as SwitchPrimitives from "@radix-ui/react-switch";
3
3
  export interface SwitchVariants {
4
4
  size?: "xs" | "sm" | "md";
5
- theme?: "inverse";
5
+ theme?: "inverse" | "glass";
6
6
  }
7
7
  export type SwitchProps = React.ComponentPropsWithoutRef<typeof SwitchPrimitives.Root> & SwitchVariants;
8
8
  declare const Switch: React.ForwardRefExoticComponent<Omit<SwitchPrimitives.SwitchProps & React.RefAttributes<HTMLButtonElement>, "ref"> & SwitchVariants & React.RefAttributes<HTMLButtonElement>>;
@@ -9,7 +9,7 @@ import { u as A } from "../index-BZPx6jYI.js";
9
9
  import { u as L } from "../index-BGQepRFJ.js";
10
10
  import { T as N } from "../index-BVqs-uqP.js";
11
11
  import { u as U, n as W } from "../ComponentVariantProvider-brk0g-hm.js";
12
- import { F as q } from "../FieldLabel-QJ4rJFOi.js";
12
+ import { F as q } from "../FieldLabel-eyKmeWRn.js";
13
13
  import { D as O } from "../Description-BTPMlTT-.js";
14
14
  var g = "Switch", [$, he] = V(g), [X, G] = $(g), P = l.forwardRef(
15
15
  (r, n) => {
@@ -164,6 +164,9 @@ const Q = N({
164
164
  "data-[state=checked]:bg-inverse-primary-fg data-[state=checked]:hover:enabled:bg-inverse-secondary-fg"
165
165
  ],
166
166
  thumb: "bg-inverse-primary-bg"
167
+ },
168
+ glass: {
169
+ root: "data-[state=unchecked]:bg-primary-border"
167
170
  }
168
171
  }
169
172
  },
@@ -172,7 +175,7 @@ const Q = N({
172
175
  }
173
176
  }), T = l.forwardRef(
174
177
  ({ className: r, size: n, ...e }, o) => {
175
- const { variant: a } = U(), i = W(a, ["inverse"]), { root: c, thumb: t } = Q({ size: n, theme: i });
178
+ const { variant: a } = U(), i = W(a, ["inverse", "glass"]), { root: c, thumb: t } = Q({ size: n, theme: i });
176
179
  return /* @__PURE__ */ s(F, { className: c({ className: r }), ...e, ref: o, children: /* @__PURE__ */ s(K, { className: t() }) });
177
180
  }
178
181
  );