@keboola/design 11.0.0 → 11.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (670) hide show
  1. package/AGENTS.md +16 -1
  2. package/CHANGELOG.md +2138 -0
  3. package/COMPONENT-API.md +40 -1
  4. package/dist/AIKit-DiS0CVOW.js +1320 -0
  5. package/dist/AIKit-DiS0CVOW.js.map +1 -0
  6. package/dist/Alert-DfZq9kGe.js +133 -0
  7. package/dist/Alert-DfZq9kGe.js.map +1 -0
  8. package/dist/AlertModal-Dp_XuJBW.js +219 -0
  9. package/dist/AlertModal-Dp_XuJBW.js.map +1 -0
  10. package/dist/AppShell-B5GQN6Zs.js +143 -0
  11. package/dist/AppShell-B5GQN6Zs.js.map +1 -0
  12. package/dist/AutoSaveTextarea-BeuWuszr.js +58 -0
  13. package/dist/{chunk-UGT6DKWM.js.map → AutoSaveTextarea-BeuWuszr.js.map} +1 -1
  14. package/dist/Badge-Ch26CXoP.js +195 -0
  15. package/dist/Badge-Ch26CXoP.js.map +1 -0
  16. package/dist/BrandEditor-DyzgfVkl.js +903 -0
  17. package/dist/BrandEditor-DyzgfVkl.js.map +1 -0
  18. package/dist/BrandLogo-CJkRd0F8.js +46 -0
  19. package/dist/BrandLogo-CJkRd0F8.js.map +1 -0
  20. package/dist/Breadcrumb-Frst8MTA.js +330 -0
  21. package/dist/Breadcrumb-Frst8MTA.js.map +1 -0
  22. package/dist/Button-6xBX0nNl.js +391 -0
  23. package/dist/Button-6xBX0nNl.js.map +1 -0
  24. package/dist/Calendar-cG5NIJ4O.js +6768 -0
  25. package/dist/Calendar-cG5NIJ4O.js.map +1 -0
  26. package/dist/Card-BAoZ35CV.js +105 -0
  27. package/dist/Card-BAoZ35CV.js.map +1 -0
  28. package/dist/Checkbox-GJ8-srt4.js +97 -0
  29. package/dist/Checkbox-GJ8-srt4.js.map +1 -0
  30. package/dist/Clipboard-CBJZiviP.js +58 -0
  31. package/dist/Clipboard-CBJZiviP.js.map +1 -0
  32. package/dist/ClipboardButton-ClcluT0C.js +43 -0
  33. package/dist/ClipboardButton-ClcluT0C.js.map +1 -0
  34. package/dist/CodeEditor-DyaN-Ij2.js +1000 -0
  35. package/dist/CodeEditor-DyaN-Ij2.js.map +1 -0
  36. package/dist/Collapsible-BQXWEOBC.js +34 -0
  37. package/dist/Collapsible-BQXWEOBC.js.map +1 -0
  38. package/dist/ColorInput-B8z4j4Y_.js +180 -0
  39. package/dist/ColorInput-B8z4j4Y_.js.map +1 -0
  40. package/dist/ColorModeSwitch-dZFZyqy1.js +77 -0
  41. package/dist/ColorModeSwitch-dZFZyqy1.js.map +1 -0
  42. package/dist/Combobox-Dgm6Z4ib.js +443 -0
  43. package/dist/Combobox-Dgm6Z4ib.js.map +1 -0
  44. package/dist/Command-C0aZfVTq.js +102 -0
  45. package/dist/Command-C0aZfVTq.js.map +1 -0
  46. package/dist/CopyField-BJ96zvXs.js +322 -0
  47. package/dist/CopyField-BJ96zvXs.js.map +1 -0
  48. package/dist/DateInput-B3UdzRfW.js +141 -0
  49. package/dist/DateInput-B3UdzRfW.js.map +1 -0
  50. package/dist/DatePicker-Dw3DpbUh.js +24 -0
  51. package/dist/DatePicker-Dw3DpbUh.js.map +1 -0
  52. package/dist/DateRangeInput-DTuySEiq.js +139 -0
  53. package/dist/DateRangeInput-DTuySEiq.js.map +1 -0
  54. package/dist/DateRangePicker-DCmMHg4s.js +159 -0
  55. package/dist/DateRangePicker-DCmMHg4s.js.map +1 -0
  56. package/dist/DiagramSkeleton-lwBS2YBa.js +11 -0
  57. package/dist/DiagramSkeleton-lwBS2YBa.js.map +1 -0
  58. package/dist/DiffView-ppTIzh2h.js +429 -0
  59. package/dist/DiffView-ppTIzh2h.js.map +1 -0
  60. package/dist/DropdownMenu-t90tVw6l.js +327 -0
  61. package/dist/DropdownMenu-t90tVw6l.js.map +1 -0
  62. package/dist/FieldBox-D7DYtX_m.js +70 -0
  63. package/dist/FieldBox-D7DYtX_m.js.map +1 -0
  64. package/dist/FieldItem-CAPj9lj3.d.ts +111 -0
  65. package/dist/FieldItem-D-h1NeBo.js +108 -0
  66. package/dist/FieldItem-D-h1NeBo.js.map +1 -0
  67. package/dist/FileUpload-BRv0TaZk.js +2527 -0
  68. package/dist/FileUpload-BRv0TaZk.js.map +1 -0
  69. package/dist/Form-DHvcFoEi.js +311 -0
  70. package/dist/Form-DHvcFoEi.js.map +1 -0
  71. package/dist/FormGroup-C41n65cE.js +124 -0
  72. package/dist/FormGroup-C41n65cE.js.map +1 -0
  73. package/dist/FullScreenModal-Cb3PGgh4.js +96 -0
  74. package/dist/FullScreenModal-Cb3PGgh4.js.map +1 -0
  75. package/dist/HoverCard-WfDkLK1s.js +31 -0
  76. package/dist/HoverCard-WfDkLK1s.js.map +1 -0
  77. package/dist/InputGroup-CdTq8H7c.js +292 -0
  78. package/dist/InputGroup-CdTq8H7c.js.map +1 -0
  79. package/dist/Kbd-CxHAo1oo.js +111 -0
  80. package/dist/Kbd-CxHAo1oo.js.map +1 -0
  81. package/dist/MarkedText-Ckbft5mw.js +44 -0
  82. package/dist/MarkedText-Ckbft5mw.js.map +1 -0
  83. package/dist/MermaidDiagram-ChL3WIQT.js +399 -0
  84. package/dist/MermaidDiagram-ChL3WIQT.js.map +1 -0
  85. package/dist/Modal-wqG8nJiK.js +185 -0
  86. package/dist/Modal-wqG8nJiK.js.map +1 -0
  87. package/dist/ModalTitle-C76ke2eo.js +28 -0
  88. package/dist/ModalTitle-C76ke2eo.js.map +1 -0
  89. package/dist/MultiActionButtonGroup-BiIIubiL.js +33 -0
  90. package/dist/MultiActionButtonGroup-BiIIubiL.js.map +1 -0
  91. package/dist/Navbar-BfaPeLUL.js +325 -0
  92. package/dist/Navbar-BfaPeLUL.js.map +1 -0
  93. package/dist/OtpInput-CbbymqYs.js +93 -0
  94. package/dist/OtpInput-CbbymqYs.js.map +1 -0
  95. package/dist/PageHeader-Q3IpCnQd.js +177 -0
  96. package/dist/PageHeader-Q3IpCnQd.js.map +1 -0
  97. package/dist/PageLayout-DSVM-ASz.js +176 -0
  98. package/dist/PageLayout-DSVM-ASz.js.map +1 -0
  99. package/dist/PageToolbar-OQg3mPF-.js +153 -0
  100. package/dist/PageToolbar-OQg3mPF-.js.map +1 -0
  101. package/dist/Pagination-Cjfda8KG.js +70 -0
  102. package/dist/Pagination-Cjfda8KG.js.map +1 -0
  103. package/dist/Popconfirm-D7_vfxFd.js +167 -0
  104. package/dist/Popconfirm-D7_vfxFd.js.map +1 -0
  105. package/dist/Popover-CzeHjvrB.js +85 -0
  106. package/dist/Popover-CzeHjvrB.js.map +1 -0
  107. package/dist/RadioGroup-sIveSsNa.js +233 -0
  108. package/dist/RadioGroup-sIveSsNa.js.map +1 -0
  109. package/dist/Resizable-D3vYToZH.js +52 -0
  110. package/dist/Resizable-D3vYToZH.js.map +1 -0
  111. package/dist/Search-3UiqNZRj.js +184 -0
  112. package/dist/Search-3UiqNZRj.js.map +1 -0
  113. package/dist/SearchInput-C7dF_Ir-.js +102 -0
  114. package/dist/SearchInput-C7dF_Ir-.js.map +1 -0
  115. package/dist/SectionNav-8NoTOKO8.js +276 -0
  116. package/dist/SectionNav-8NoTOKO8.js.map +1 -0
  117. package/dist/Select-Is0VkePH.js +181 -0
  118. package/dist/Select-Is0VkePH.js.map +1 -0
  119. package/dist/Sheet-Dw9BDvjI.js +169 -0
  120. package/dist/Sheet-Dw9BDvjI.js.map +1 -0
  121. package/dist/Sidebar-Dcb4rinA.js +799 -0
  122. package/dist/Sidebar-Dcb4rinA.js.map +1 -0
  123. package/dist/Slider-BOPfMOMm.js +127 -0
  124. package/dist/Slider-BOPfMOMm.js.map +1 -0
  125. package/dist/Stepper-C8sm9ZFM.js +325 -0
  126. package/dist/Stepper-C8sm9ZFM.js.map +1 -0
  127. package/dist/Switch-CX2A0v50.js +201 -0
  128. package/dist/Switch-CX2A0v50.js.map +1 -0
  129. package/dist/Table-CvYuTuNU.js +104 -0
  130. package/dist/Table-CvYuTuNU.js.map +1 -0
  131. package/dist/Tabs-UMQuDoW8.js +74 -0
  132. package/dist/Tabs-UMQuDoW8.js.map +1 -0
  133. package/dist/TextInput-CMuN1WfY.js +110 -0
  134. package/dist/TextInput-CMuN1WfY.js.map +1 -0
  135. package/dist/ThemeProvider-QncUrfJn.js +203 -0
  136. package/dist/ThemeProvider-QncUrfJn.js.map +1 -0
  137. package/dist/TimePicker-D9zktB8A.js +98 -0
  138. package/dist/TimePicker-D9zktB8A.js.map +1 -0
  139. package/dist/Timeline-6btyJl4D.js +154 -0
  140. package/dist/Timeline-6btyJl4D.js.map +1 -0
  141. package/dist/Toast-DQSbs3oA.js +49 -0
  142. package/dist/Toast-DQSbs3oA.js.map +1 -0
  143. package/dist/ToggleGroup-Cy_10Mvu.js +47 -0
  144. package/dist/ToggleGroup-Cy_10Mvu.js.map +1 -0
  145. package/dist/Workbench-BzE-Vvd9.js +293 -0
  146. package/dist/Workbench-BzE-Vvd9.js.map +1 -0
  147. package/dist/ZoomableSvg-CZEu6sAq.js +248 -0
  148. package/dist/ZoomableSvg-CZEu6sAq.js.map +1 -0
  149. package/dist/charts.d.ts +110 -103
  150. package/dist/charts.js +303 -254
  151. package/dist/charts.js.map +1 -1
  152. package/dist/classNames-BzrkDnOD.js +9 -0
  153. package/dist/classNames-BzrkDnOD.js.map +1 -0
  154. package/dist/context-KxxeMHbR.js +62 -0
  155. package/dist/context-KxxeMHbR.js.map +1 -0
  156. package/dist/editors.d.ts +244 -175
  157. package/dist/editors.js +802 -428
  158. package/dist/editors.js.map +1 -1
  159. package/dist/escapeStringRegexp-8MxP2knR.js +6 -0
  160. package/dist/escapeStringRegexp-8MxP2knR.js.map +1 -0
  161. package/dist/icons-Cek151jC.js +640 -0
  162. package/dist/icons-Cek151jC.js.map +1 -0
  163. package/dist/icons.d.ts +2 -41
  164. package/dist/icons.js +2 -9
  165. package/dist/index-m-kQEWiY.d.ts +54 -0
  166. package/dist/index.d.ts +6191 -9891
  167. package/dist/index.js +113 -124
  168. package/dist/internal/blocks/AIKit.js +2 -30
  169. package/dist/internal/blocks/AppShell.js +2 -11
  170. package/dist/internal/blocks/AutoSaveTextarea.js +2 -14
  171. package/dist/internal/blocks/BrandEditor.js +2 -23
  172. package/dist/internal/blocks/ChartPanel.js +45 -9
  173. package/dist/internal/blocks/ChartPanel.js.map +1 -1
  174. package/dist/internal/blocks/ClipboardButton.js +2 -12
  175. package/dist/internal/blocks/ColorInput.js +2 -13
  176. package/dist/internal/blocks/ColorModeSwitch.js +2 -13
  177. package/dist/internal/blocks/Command.js +2 -15
  178. package/dist/internal/blocks/CopyField.js +2 -11
  179. package/dist/internal/blocks/DashboardHero.js +58 -8
  180. package/dist/internal/blocks/DashboardHero.js.map +1 -1
  181. package/dist/internal/blocks/DateInput.js +2 -16
  182. package/dist/internal/blocks/DateRangeInput.js +2 -16
  183. package/dist/internal/blocks/EmptyConfigurationActionCard.js +15 -9
  184. package/dist/internal/blocks/EmptyConfigurationActionCard.js.map +1 -1
  185. package/dist/internal/blocks/EmptyState.js +141 -3
  186. package/dist/internal/blocks/EmptyState.js.map +1 -1
  187. package/dist/internal/blocks/ErrorState.js +178 -4
  188. package/dist/internal/blocks/ErrorState.js.map +1 -1
  189. package/dist/internal/blocks/ExportMenu.js +40 -12
  190. package/dist/internal/blocks/ExportMenu.js.map +1 -1
  191. package/dist/internal/blocks/Form/connectors/MultiComboboxField.js +56 -0
  192. package/dist/internal/blocks/Form/connectors/MultiComboboxField.js.map +1 -0
  193. package/dist/internal/blocks/Form.js +2 -29
  194. package/dist/internal/blocks/FormGroup.js +2 -18
  195. package/dist/internal/blocks/GoogleButton.js +94 -9
  196. package/dist/internal/blocks/GoogleButton.js.map +1 -1
  197. package/dist/internal/blocks/MicrosoftButton.js +63 -9
  198. package/dist/internal/blocks/MicrosoftButton.js.map +1 -1
  199. package/dist/internal/blocks/MultiActionButtonGroup.js +2 -12
  200. package/dist/internal/blocks/MultiCombobox.js +192 -13
  201. package/dist/internal/blocks/MultiCombobox.js.map +1 -1
  202. package/dist/internal/blocks/NumberInput.js +43 -11
  203. package/dist/internal/blocks/NumberInput.js.map +1 -1
  204. package/dist/internal/blocks/OtpInput.js +2 -10
  205. package/dist/internal/blocks/PageHeader.js +2 -9
  206. package/dist/internal/blocks/PageLayout.js +2 -9
  207. package/dist/internal/blocks/PageToolbar.js +2 -13
  208. package/dist/internal/blocks/PasswordInput.js +96 -12
  209. package/dist/internal/blocks/PasswordInput.js.map +1 -1
  210. package/dist/internal/blocks/SearchInput.js +2 -12
  211. package/dist/internal/blocks/SearchInputWithNavigation.js +64 -15
  212. package/dist/internal/blocks/SearchInputWithNavigation.js.map +1 -1
  213. package/dist/internal/blocks/SectionNav.js +2 -15
  214. package/dist/internal/blocks/SplitButton.js +45 -13
  215. package/dist/internal/blocks/SplitButton.js.map +1 -1
  216. package/dist/internal/blocks/StatCard.js +96 -9
  217. package/dist/internal/blocks/StatCard.js.map +1 -1
  218. package/dist/internal/blocks/TextInput.js +2 -13
  219. package/dist/internal/blocks/Textarea.js +31 -12
  220. package/dist/internal/blocks/Textarea.js.map +1 -1
  221. package/dist/internal/blocks/TimeInput.js +76 -16
  222. package/dist/internal/blocks/TimeInput.js.map +1 -1
  223. package/dist/internal/components/Alert.js +2 -11
  224. package/dist/internal/components/AlertModal.js +2 -11
  225. package/dist/internal/components/Avatar.js +52 -8
  226. package/dist/internal/components/Avatar.js.map +1 -1
  227. package/dist/internal/components/Badge.js +2 -9
  228. package/dist/internal/components/BrandLogo.js +2 -11
  229. package/dist/internal/components/Breadcrumb.js +2 -14
  230. package/dist/internal/components/Button.js +2 -10
  231. package/dist/internal/components/ButtonGroup.js +65 -8
  232. package/dist/internal/components/ButtonGroup.js.map +1 -1
  233. package/dist/internal/components/Calendar.js +2 -9
  234. package/dist/internal/components/Card.js +2 -9
  235. package/dist/internal/components/Checkbox.js +2 -11
  236. package/dist/internal/components/Clipboard.js +2 -9
  237. package/dist/internal/components/Collapsible.js +2 -9
  238. package/dist/internal/components/CollapsiblePanel.js +86 -10
  239. package/dist/internal/components/CollapsiblePanel.js.map +1 -1
  240. package/dist/internal/components/Combobox.js +2 -13
  241. package/dist/internal/components/DatePicker.js +2 -11
  242. package/dist/internal/components/DateRangePicker.js +2 -17
  243. package/dist/internal/components/DiffView.js +2 -9
  244. package/dist/internal/components/DotsLoader.js +17 -4
  245. package/dist/internal/components/DotsLoader.js.map +1 -1
  246. package/dist/internal/components/DropdownMenu.js +2 -11
  247. package/dist/internal/components/EmptySearchContent.js +11 -3
  248. package/dist/internal/components/EmptySearchContent.js.map +1 -1
  249. package/dist/internal/components/FileUpload.js +2 -11
  250. package/dist/internal/components/FullScreenModal.js +2 -12
  251. package/dist/internal/components/HelpBlock.js +24 -3
  252. package/dist/internal/components/HelpBlock.js.map +1 -1
  253. package/dist/internal/components/HoverCard.js +2 -9
  254. package/dist/internal/components/InputGroup.js +2 -11
  255. package/dist/internal/components/Kbd.js +2 -9
  256. package/dist/internal/components/Label.js +38 -8
  257. package/dist/internal/components/Label.js.map +1 -1
  258. package/dist/internal/components/Link.js +21 -8
  259. package/dist/internal/components/Link.js.map +1 -1
  260. package/dist/internal/components/MarkedText.js +2 -5
  261. package/dist/internal/components/MergeEditor/ConflictStatus/ConflictStatusIndicator.js +19 -9
  262. package/dist/internal/components/MergeEditor/ConflictStatus/ConflictStatusIndicator.js.map +1 -1
  263. package/dist/internal/components/MergeEditor/PaneHeader.js +12 -3
  264. package/dist/internal/components/MergeEditor/PaneHeader.js.map +1 -1
  265. package/dist/internal/components/MergeEditor/constants.js +17 -3
  266. package/dist/internal/components/MergeEditor/constants.js.map +1 -1
  267. package/dist/internal/components/MergeEditor/useMergeDiff.js +2 -5
  268. package/dist/internal/components/Modal.js +2 -13
  269. package/dist/internal/components/Navbar.js +2 -14
  270. package/dist/internal/components/Pagination.js +2 -11
  271. package/dist/internal/components/PanelWithDetails.js +30 -10
  272. package/dist/internal/components/PanelWithDetails.js.map +1 -1
  273. package/dist/internal/components/Popconfirm.js +2 -12
  274. package/dist/internal/components/Popover.js +2 -9
  275. package/dist/internal/components/Progress.js +46 -8
  276. package/dist/internal/components/Progress.js.map +1 -1
  277. package/dist/internal/components/RadioGroup.js +2 -12
  278. package/dist/internal/components/Resizable.js +2 -9
  279. package/dist/internal/components/ScrollArea.js +41 -8
  280. package/dist/internal/components/ScrollArea.js.map +1 -1
  281. package/dist/internal/components/Search.js +2 -10
  282. package/dist/internal/components/Select.js +2 -12
  283. package/dist/internal/components/Separator.js +83 -8
  284. package/dist/internal/components/Separator.js.map +1 -1
  285. package/dist/internal/components/Sheet.js +2 -12
  286. package/dist/internal/components/Sidebar.js +2 -20
  287. package/dist/internal/components/Skeleton/Skeleton.js +38 -8
  288. package/dist/internal/components/Skeleton/Skeleton.js.map +1 -1
  289. package/dist/internal/components/Skeleton/SkeletonList.js +40 -9
  290. package/dist/internal/components/Skeleton/SkeletonList.js.map +1 -1
  291. package/dist/internal/components/Slider.js +2 -11
  292. package/dist/internal/components/SpotlightBackdrop.js +131 -8
  293. package/dist/internal/components/SpotlightBackdrop.js.map +1 -1
  294. package/dist/internal/components/Stepper.js +2 -10
  295. package/dist/internal/components/Switch.js +2 -10
  296. package/dist/internal/components/Table.js +2 -10
  297. package/dist/internal/components/Tabs.js +2 -12
  298. package/dist/internal/components/ThemeProvider.js +3 -10
  299. package/dist/internal/components/TimePicker.js +2 -12
  300. package/dist/internal/components/Timeline.js +2 -10
  301. package/dist/internal/components/Toast.js +3 -11
  302. package/dist/internal/components/Toggle.js +168 -8
  303. package/dist/internal/components/Toggle.js.map +1 -1
  304. package/dist/internal/components/ToggleGroup.js +2 -9
  305. package/dist/internal/components/Tooltip.js +2 -8
  306. package/dist/internal/components/Truncated.js +44 -8
  307. package/dist/internal/components/Truncated.js.map +1 -1
  308. package/dist/internal/components/Workbench.js +2 -11
  309. package/dist/internal/components/ZoomableSvg.js +2 -13
  310. package/dist/internal/hooks/useAutosizeInput.js +76 -3
  311. package/dist/internal/hooks/useAutosizeInput.js.map +1 -1
  312. package/dist/internal/hooks/useScrollbarPosition.js +44 -4
  313. package/dist/internal/hooks/useScrollbarPosition.js.map +1 -1
  314. package/dist/internal/hooks/useStableCallback.js +28 -3
  315. package/dist/internal/hooks/useStableCallback.js.map +1 -1
  316. package/dist/internal/utils/mergeRefs.js +19 -3
  317. package/dist/internal/utils/mergeRefs.js.map +1 -1
  318. package/dist/internal/utils.js +5 -8
  319. package/dist/markdown-editor.d.ts +72 -72
  320. package/dist/markdown-editor.js +1122 -1207
  321. package/dist/markdown-editor.js.map +1 -1
  322. package/dist/mermaid.d.ts +12 -12
  323. package/dist/mermaid.js +2 -18
  324. package/dist/rjsf.d.ts +45 -34
  325. package/dist/rjsf.js +1601 -1671
  326. package/dist/rjsf.js.map +1 -1
  327. package/dist/rolldown-runtime-Bdc48AWt.js +33 -0
  328. package/dist/styles-DSUP_-9Z.js +158 -0
  329. package/dist/styles-DSUP_-9Z.js.map +1 -0
  330. package/dist/styles.css +1 -1
  331. package/dist/testing.d.ts +8 -7
  332. package/dist/testing.js +36 -21
  333. package/dist/testing.js.map +1 -1
  334. package/dist/themeTokens-BNg98Mu9.js +85 -0
  335. package/dist/themeTokens-BNg98Mu9.js.map +1 -0
  336. package/dist/toast-CjkURw0M.js +184 -0
  337. package/dist/toast-CjkURw0M.js.map +1 -0
  338. package/dist/useColorSchemeState-CYqcUfSH.js +61 -0
  339. package/dist/useColorSchemeState-CYqcUfSH.js.map +1 -0
  340. package/dist/useControllableState-M6494mCT.js +31 -0
  341. package/dist/useControllableState-M6494mCT.js.map +1 -0
  342. package/dist/useElement-DkF6esWL.js +15 -0
  343. package/dist/useElement-DkF6esWL.js.map +1 -0
  344. package/dist/useMergeDiff-CvowEXJ1.js +465 -0
  345. package/dist/useMergeDiff-CvowEXJ1.js.map +1 -0
  346. package/dist/utils-D0c5VAyF.js +308 -0
  347. package/dist/utils-D0c5VAyF.js.map +1 -0
  348. package/package.json +11 -10
  349. package/dist/MermaidDiagram-ZU5KAVRT.js +0 -18
  350. package/dist/MermaidDiagram-ZU5KAVRT.js.map +0 -1
  351. package/dist/chunk-2YYJDKSP.js +0 -51
  352. package/dist/chunk-2YYJDKSP.js.map +0 -1
  353. package/dist/chunk-3P5UUCFI.js +0 -385
  354. package/dist/chunk-3P5UUCFI.js.map +0 -1
  355. package/dist/chunk-3QDFDDWZ.js +0 -99
  356. package/dist/chunk-3QDFDDWZ.js.map +0 -1
  357. package/dist/chunk-3W27OLK5.js +0 -15
  358. package/dist/chunk-3W27OLK5.js.map +0 -1
  359. package/dist/chunk-4FIZZONW.js +0 -40
  360. package/dist/chunk-4FIZZONW.js.map +0 -1
  361. package/dist/chunk-4GIAXOJG.js +0 -133
  362. package/dist/chunk-4GIAXOJG.js.map +0 -1
  363. package/dist/chunk-52NDNMK7.js +0 -99
  364. package/dist/chunk-52NDNMK7.js.map +0 -1
  365. package/dist/chunk-576G5OES.js +0 -201
  366. package/dist/chunk-576G5OES.js.map +0 -1
  367. package/dist/chunk-5AIE6SET.js +0 -659
  368. package/dist/chunk-5AIE6SET.js.map +0 -1
  369. package/dist/chunk-5FTNAZRW.js +0 -327
  370. package/dist/chunk-5FTNAZRW.js.map +0 -1
  371. package/dist/chunk-5IG2S7ZY.js +0 -70
  372. package/dist/chunk-5IG2S7ZY.js.map +0 -1
  373. package/dist/chunk-5QCXHNCW.js +0 -404
  374. package/dist/chunk-5QCXHNCW.js.map +0 -1
  375. package/dist/chunk-6DUMGC7Y.js +0 -105
  376. package/dist/chunk-6DUMGC7Y.js.map +0 -1
  377. package/dist/chunk-6J25CVST.js +0 -174
  378. package/dist/chunk-6J25CVST.js.map +0 -1
  379. package/dist/chunk-6NN35XOP.js +0 -120
  380. package/dist/chunk-6NN35XOP.js.map +0 -1
  381. package/dist/chunk-6NZBVA4T.js +0 -24
  382. package/dist/chunk-6NZBVA4T.js.map +0 -1
  383. package/dist/chunk-6W5BHRCL.js +0 -295
  384. package/dist/chunk-6W5BHRCL.js.map +0 -1
  385. package/dist/chunk-72BKRCEG.js +0 -409
  386. package/dist/chunk-72BKRCEG.js.map +0 -1
  387. package/dist/chunk-7GTI3PPI.js +0 -95
  388. package/dist/chunk-7GTI3PPI.js.map +0 -1
  389. package/dist/chunk-7P6PLZ4B.js +0 -74
  390. package/dist/chunk-7P6PLZ4B.js.map +0 -1
  391. package/dist/chunk-7WZWY5IA.js +0 -46
  392. package/dist/chunk-7WZWY5IA.js.map +0 -1
  393. package/dist/chunk-AIYO2632.js +0 -489
  394. package/dist/chunk-AIYO2632.js.map +0 -1
  395. package/dist/chunk-ANFZWPNE.js +0 -112
  396. package/dist/chunk-ANFZWPNE.js.map +0 -1
  397. package/dist/chunk-ANZTVAJU.js +0 -73
  398. package/dist/chunk-ANZTVAJU.js.map +0 -1
  399. package/dist/chunk-BD5BTJKX.js +0 -166
  400. package/dist/chunk-BD5BTJKX.js.map +0 -1
  401. package/dist/chunk-BHGIDSRJ.js +0 -140
  402. package/dist/chunk-BHGIDSRJ.js.map +0 -1
  403. package/dist/chunk-BSQWZITZ.js +0 -507
  404. package/dist/chunk-BSQWZITZ.js.map +0 -1
  405. package/dist/chunk-D3LAIK62.js +0 -23
  406. package/dist/chunk-D3LAIK62.js.map +0 -1
  407. package/dist/chunk-DODCR43C.js +0 -155
  408. package/dist/chunk-DODCR43C.js.map +0 -1
  409. package/dist/chunk-EEK5NGZF.js +0 -40
  410. package/dist/chunk-EEK5NGZF.js.map +0 -1
  411. package/dist/chunk-ENRG7TXA.js +0 -11
  412. package/dist/chunk-ENRG7TXA.js.map +0 -1
  413. package/dist/chunk-EQRMGIGY.js +0 -239
  414. package/dist/chunk-EQRMGIGY.js.map +0 -1
  415. package/dist/chunk-ERAHK5YQ.js +0 -495
  416. package/dist/chunk-ERAHK5YQ.js.map +0 -1
  417. package/dist/chunk-F3FOFY2P.js +0 -124
  418. package/dist/chunk-F3FOFY2P.js.map +0 -1
  419. package/dist/chunk-F6BTWFOC.js +0 -507
  420. package/dist/chunk-F6BTWFOC.js.map +0 -1
  421. package/dist/chunk-F6J6NNAL.js +0 -34
  422. package/dist/chunk-F6J6NNAL.js.map +0 -1
  423. package/dist/chunk-FCHJ7D5O.js +0 -59
  424. package/dist/chunk-FCHJ7D5O.js.map +0 -1
  425. package/dist/chunk-FFJTEQCC.js +0 -80
  426. package/dist/chunk-FFJTEQCC.js.map +0 -1
  427. package/dist/chunk-FUFMVW7O.js +0 -64
  428. package/dist/chunk-FUFMVW7O.js.map +0 -1
  429. package/dist/chunk-FVPGQ6UE.js +0 -25
  430. package/dist/chunk-FVPGQ6UE.js.map +0 -1
  431. package/dist/chunk-G3PMV62Z.js +0 -33
  432. package/dist/chunk-G3PMV62Z.js.map +0 -1
  433. package/dist/chunk-GACFOW3E.js +0 -51
  434. package/dist/chunk-GACFOW3E.js.map +0 -1
  435. package/dist/chunk-GDT6HQMK.js +0 -42
  436. package/dist/chunk-GDT6HQMK.js.map +0 -1
  437. package/dist/chunk-HLGU22C6.js +0 -2589
  438. package/dist/chunk-HLGU22C6.js.map +0 -1
  439. package/dist/chunk-HPMYYGP7.js +0 -134
  440. package/dist/chunk-HPMYYGP7.js.map +0 -1
  441. package/dist/chunk-I2UCOD45.js +0 -197
  442. package/dist/chunk-I2UCOD45.js.map +0 -1
  443. package/dist/chunk-IEGDZUVM.js +0 -75
  444. package/dist/chunk-IEGDZUVM.js.map +0 -1
  445. package/dist/chunk-IIS7INHF.js +0 -47
  446. package/dist/chunk-IIS7INHF.js.map +0 -1
  447. package/dist/chunk-ITELSEFU.js +0 -256
  448. package/dist/chunk-ITELSEFU.js.map +0 -1
  449. package/dist/chunk-IXAYNBOY.js +0 -407
  450. package/dist/chunk-IXAYNBOY.js.map +0 -1
  451. package/dist/chunk-JUW2ETEI.js +0 -191
  452. package/dist/chunk-JUW2ETEI.js.map +0 -1
  453. package/dist/chunk-K65C7CVE.js +0 -127
  454. package/dist/chunk-K65C7CVE.js.map +0 -1
  455. package/dist/chunk-KDI64MCY.js +0 -189
  456. package/dist/chunk-KDI64MCY.js.map +0 -1
  457. package/dist/chunk-KN4ASMH5.js +0 -160
  458. package/dist/chunk-KN4ASMH5.js.map +0 -1
  459. package/dist/chunk-KQW7QNTU.js +0 -1549
  460. package/dist/chunk-KQW7QNTU.js.map +0 -1
  461. package/dist/chunk-KR7NXXHC.js +0 -66
  462. package/dist/chunk-KR7NXXHC.js.map +0 -1
  463. package/dist/chunk-KRZKIVMA.js +0 -142
  464. package/dist/chunk-KRZKIVMA.js.map +0 -1
  465. package/dist/chunk-KTTLLKGQ.js +0 -185
  466. package/dist/chunk-KTTLLKGQ.js.map +0 -1
  467. package/dist/chunk-KWKSHPDP.js +0 -234
  468. package/dist/chunk-KWKSHPDP.js.map +0 -1
  469. package/dist/chunk-KZVC7OYG.js +0 -57
  470. package/dist/chunk-KZVC7OYG.js.map +0 -1
  471. package/dist/chunk-L5DHUN2V.js +0 -204
  472. package/dist/chunk-L5DHUN2V.js.map +0 -1
  473. package/dist/chunk-LCTGEH57.js +0 -1376
  474. package/dist/chunk-LCTGEH57.js.map +0 -1
  475. package/dist/chunk-LXLIQ2D6.js +0 -12
  476. package/dist/chunk-LXLIQ2D6.js.map +0 -1
  477. package/dist/chunk-M4CTURKX.js +0 -84
  478. package/dist/chunk-M4CTURKX.js.map +0 -1
  479. package/dist/chunk-M6LTUPVP.js +0 -301
  480. package/dist/chunk-M6LTUPVP.js.map +0 -1
  481. package/dist/chunk-MA6RRHDT.js +0 -291
  482. package/dist/chunk-MA6RRHDT.js.map +0 -1
  483. package/dist/chunk-MODE4QIA.js +0 -6
  484. package/dist/chunk-MODE4QIA.js.map +0 -1
  485. package/dist/chunk-MVILMVGG.js +0 -118
  486. package/dist/chunk-MVILMVGG.js.map +0 -1
  487. package/dist/chunk-MWS4VCLV.js +0 -17
  488. package/dist/chunk-MWS4VCLV.js.map +0 -1
  489. package/dist/chunk-NEUX74SO.js +0 -315
  490. package/dist/chunk-NEUX74SO.js.map +0 -1
  491. package/dist/chunk-NFHKYBRD.js +0 -156
  492. package/dist/chunk-NFHKYBRD.js.map +0 -1
  493. package/dist/chunk-NHJNNXD3.js +0 -89
  494. package/dist/chunk-NHJNNXD3.js.map +0 -1
  495. package/dist/chunk-O2BF3HZL.js +0 -33
  496. package/dist/chunk-O2BF3HZL.js.map +0 -1
  497. package/dist/chunk-OANXCZYD.js +0 -212
  498. package/dist/chunk-OANXCZYD.js.map +0 -1
  499. package/dist/chunk-ODJF7YIP.js +0 -230
  500. package/dist/chunk-ODJF7YIP.js.map +0 -1
  501. package/dist/chunk-ON4BJTHI.js +0 -101
  502. package/dist/chunk-ON4BJTHI.js.map +0 -1
  503. package/dist/chunk-OTL5WXIJ.js +0 -16
  504. package/dist/chunk-OTL5WXIJ.js.map +0 -1
  505. package/dist/chunk-PACNBKJV.js +0 -47
  506. package/dist/chunk-PACNBKJV.js.map +0 -1
  507. package/dist/chunk-PROCA7K7.js +0 -23
  508. package/dist/chunk-PROCA7K7.js.map +0 -1
  509. package/dist/chunk-QGMIPA67.js +0 -85
  510. package/dist/chunk-QGMIPA67.js.map +0 -1
  511. package/dist/chunk-QQA37LFB.js +0 -190
  512. package/dist/chunk-QQA37LFB.js.map +0 -1
  513. package/dist/chunk-QZAWRSEB.js +0 -61
  514. package/dist/chunk-QZAWRSEB.js.map +0 -1
  515. package/dist/chunk-R74KGWNS.js +0 -699
  516. package/dist/chunk-R74KGWNS.js.map +0 -1
  517. package/dist/chunk-RFDLHMKL.js +0 -110
  518. package/dist/chunk-RFDLHMKL.js.map +0 -1
  519. package/dist/chunk-RL64HN7S.js +0 -40
  520. package/dist/chunk-RL64HN7S.js.map +0 -1
  521. package/dist/chunk-RMRQKPL7.js +0 -115
  522. package/dist/chunk-RMRQKPL7.js.map +0 -1
  523. package/dist/chunk-RQVK4IYC.js +0 -606
  524. package/dist/chunk-RQVK4IYC.js.map +0 -1
  525. package/dist/chunk-RTW56PWZ.js +0 -59
  526. package/dist/chunk-RTW56PWZ.js.map +0 -1
  527. package/dist/chunk-RUTPQNLR.js +0 -266
  528. package/dist/chunk-RUTPQNLR.js.map +0 -1
  529. package/dist/chunk-S6TAF63G.js +0 -25
  530. package/dist/chunk-S6TAF63G.js.map +0 -1
  531. package/dist/chunk-SBGAUGXY.js +0 -224
  532. package/dist/chunk-SBGAUGXY.js.map +0 -1
  533. package/dist/chunk-SC275NHZ.js +0 -407
  534. package/dist/chunk-SC275NHZ.js.map +0 -1
  535. package/dist/chunk-SCQPU4UE.js +0 -97
  536. package/dist/chunk-SCQPU4UE.js.map +0 -1
  537. package/dist/chunk-SFFF2WQP.js +0 -8
  538. package/dist/chunk-SFFF2WQP.js.map +0 -1
  539. package/dist/chunk-SJYMHZKA.js +0 -36
  540. package/dist/chunk-SJYMHZKA.js.map +0 -1
  541. package/dist/chunk-SLCCUJVN.js +0 -125
  542. package/dist/chunk-SLCCUJVN.js.map +0 -1
  543. package/dist/chunk-SVBSNSD4.js +0 -259
  544. package/dist/chunk-SVBSNSD4.js.map +0 -1
  545. package/dist/chunk-SVPLTL35.js +0 -62
  546. package/dist/chunk-SVPLTL35.js.map +0 -1
  547. package/dist/chunk-SWQFYNYG.js +0 -338
  548. package/dist/chunk-SWQFYNYG.js.map +0 -1
  549. package/dist/chunk-THHB4EWS.js +0 -72
  550. package/dist/chunk-THHB4EWS.js.map +0 -1
  551. package/dist/chunk-TUCDD33E.js +0 -246
  552. package/dist/chunk-TUCDD33E.js.map +0 -1
  553. package/dist/chunk-TV4WAP2R.js +0 -14
  554. package/dist/chunk-TV4WAP2R.js.map +0 -1
  555. package/dist/chunk-U3A6YBTZ.js +0 -134
  556. package/dist/chunk-U3A6YBTZ.js.map +0 -1
  557. package/dist/chunk-UGT6DKWM.js +0 -95
  558. package/dist/chunk-VSERHUWD.js +0 -212
  559. package/dist/chunk-VSERHUWD.js.map +0 -1
  560. package/dist/chunk-VYG7BDXC.js +0 -49
  561. package/dist/chunk-VYG7BDXC.js.map +0 -1
  562. package/dist/chunk-WETKNYZX.js +0 -52
  563. package/dist/chunk-WETKNYZX.js.map +0 -1
  564. package/dist/chunk-WGG4AML3.js +0 -216
  565. package/dist/chunk-WGG4AML3.js.map +0 -1
  566. package/dist/chunk-WKAUEL6I.js +0 -30
  567. package/dist/chunk-WKAUEL6I.js.map +0 -1
  568. package/dist/chunk-WPOLA5CG.js +0 -81
  569. package/dist/chunk-WPOLA5CG.js.map +0 -1
  570. package/dist/chunk-WPVETCGJ.js +0 -254
  571. package/dist/chunk-WPVETCGJ.js.map +0 -1
  572. package/dist/chunk-WTSM3A7E.js +0 -13
  573. package/dist/chunk-WTSM3A7E.js.map +0 -1
  574. package/dist/chunk-WU3F2K3T.js +0 -148
  575. package/dist/chunk-WU3F2K3T.js.map +0 -1
  576. package/dist/chunk-WZZK2DTZ.js +0 -39
  577. package/dist/chunk-WZZK2DTZ.js.map +0 -1
  578. package/dist/chunk-X4IHLKRD.js +0 -42
  579. package/dist/chunk-X4IHLKRD.js.map +0 -1
  580. package/dist/chunk-XAHEXZJC.js +0 -80
  581. package/dist/chunk-XAHEXZJC.js.map +0 -1
  582. package/dist/chunk-XCYGJDUX.js +0 -31
  583. package/dist/chunk-XCYGJDUX.js.map +0 -1
  584. package/dist/chunk-Y4W3JORC.js +0 -104
  585. package/dist/chunk-Y4W3JORC.js.map +0 -1
  586. package/dist/chunk-YFZJ3ZLG.js +0 -1297
  587. package/dist/chunk-YFZJ3ZLG.js.map +0 -1
  588. package/dist/chunk-YI3WLXEN.js +0 -4387
  589. package/dist/chunk-YI3WLXEN.js.map +0 -1
  590. package/dist/chunk-ZBKFSPD3.js +0 -29
  591. package/dist/chunk-ZBKFSPD3.js.map +0 -1
  592. package/dist/chunk-ZOERRQ6A.js +0 -79
  593. package/dist/chunk-ZOERRQ6A.js.map +0 -1
  594. package/dist/chunk-ZSTGUKHU.js +0 -10
  595. package/dist/chunk-ZSTGUKHU.js.map +0 -1
  596. package/dist/chunk-ZUEHDL27.js +0 -65
  597. package/dist/chunk-ZUEHDL27.js.map +0 -1
  598. package/dist/constants-D3gaMY-W.d.ts +0 -39
  599. package/dist/icons.js.map +0 -1
  600. package/dist/index.js.map +0 -1
  601. package/dist/internal/blocks/AIKit.js.map +0 -1
  602. package/dist/internal/blocks/AppShell.js.map +0 -1
  603. package/dist/internal/blocks/AutoSaveTextarea.js.map +0 -1
  604. package/dist/internal/blocks/BrandEditor.js.map +0 -1
  605. package/dist/internal/blocks/ClipboardButton.js.map +0 -1
  606. package/dist/internal/blocks/ColorInput.js.map +0 -1
  607. package/dist/internal/blocks/ColorModeSwitch.js.map +0 -1
  608. package/dist/internal/blocks/Command.js.map +0 -1
  609. package/dist/internal/blocks/CopyField.js.map +0 -1
  610. package/dist/internal/blocks/DateInput.js.map +0 -1
  611. package/dist/internal/blocks/DateRangeInput.js.map +0 -1
  612. package/dist/internal/blocks/Form.js.map +0 -1
  613. package/dist/internal/blocks/FormGroup.js.map +0 -1
  614. package/dist/internal/blocks/MultiActionButtonGroup.js.map +0 -1
  615. package/dist/internal/blocks/OtpInput.js.map +0 -1
  616. package/dist/internal/blocks/PageHeader.js.map +0 -1
  617. package/dist/internal/blocks/PageLayout.js.map +0 -1
  618. package/dist/internal/blocks/PageToolbar.js.map +0 -1
  619. package/dist/internal/blocks/SearchInput.js.map +0 -1
  620. package/dist/internal/blocks/SectionNav.js.map +0 -1
  621. package/dist/internal/blocks/TextInput.js.map +0 -1
  622. package/dist/internal/components/Alert.js.map +0 -1
  623. package/dist/internal/components/AlertModal.js.map +0 -1
  624. package/dist/internal/components/Badge.js.map +0 -1
  625. package/dist/internal/components/BrandLogo.js.map +0 -1
  626. package/dist/internal/components/Breadcrumb.js.map +0 -1
  627. package/dist/internal/components/Button.js.map +0 -1
  628. package/dist/internal/components/Calendar.js.map +0 -1
  629. package/dist/internal/components/Card.js.map +0 -1
  630. package/dist/internal/components/Checkbox.js.map +0 -1
  631. package/dist/internal/components/Clipboard.js.map +0 -1
  632. package/dist/internal/components/Collapsible.js.map +0 -1
  633. package/dist/internal/components/Combobox.js.map +0 -1
  634. package/dist/internal/components/DatePicker.js.map +0 -1
  635. package/dist/internal/components/DateRangePicker.js.map +0 -1
  636. package/dist/internal/components/DiffView.js.map +0 -1
  637. package/dist/internal/components/DropdownMenu.js.map +0 -1
  638. package/dist/internal/components/FileUpload.js.map +0 -1
  639. package/dist/internal/components/FullScreenModal.js.map +0 -1
  640. package/dist/internal/components/HoverCard.js.map +0 -1
  641. package/dist/internal/components/InputGroup.js.map +0 -1
  642. package/dist/internal/components/Kbd.js.map +0 -1
  643. package/dist/internal/components/MarkedText.js.map +0 -1
  644. package/dist/internal/components/MergeEditor/useMergeDiff.js.map +0 -1
  645. package/dist/internal/components/Modal.js.map +0 -1
  646. package/dist/internal/components/Navbar.js.map +0 -1
  647. package/dist/internal/components/Pagination.js.map +0 -1
  648. package/dist/internal/components/Popconfirm.js.map +0 -1
  649. package/dist/internal/components/Popover.js.map +0 -1
  650. package/dist/internal/components/RadioGroup.js.map +0 -1
  651. package/dist/internal/components/Resizable.js.map +0 -1
  652. package/dist/internal/components/Search.js.map +0 -1
  653. package/dist/internal/components/Select.js.map +0 -1
  654. package/dist/internal/components/Sheet.js.map +0 -1
  655. package/dist/internal/components/Sidebar.js.map +0 -1
  656. package/dist/internal/components/Slider.js.map +0 -1
  657. package/dist/internal/components/Stepper.js.map +0 -1
  658. package/dist/internal/components/Switch.js.map +0 -1
  659. package/dist/internal/components/Table.js.map +0 -1
  660. package/dist/internal/components/Tabs.js.map +0 -1
  661. package/dist/internal/components/ThemeProvider.js.map +0 -1
  662. package/dist/internal/components/TimePicker.js.map +0 -1
  663. package/dist/internal/components/Timeline.js.map +0 -1
  664. package/dist/internal/components/Toast.js.map +0 -1
  665. package/dist/internal/components/ToggleGroup.js.map +0 -1
  666. package/dist/internal/components/Tooltip.js.map +0 -1
  667. package/dist/internal/components/Workbench.js.map +0 -1
  668. package/dist/internal/components/ZoomableSvg.js.map +0 -1
  669. package/dist/internal/utils.js.map +0 -1
  670. package/dist/mermaid.js.map +0 -1
@@ -1,1376 +0,0 @@
1
- import { useScrollbarPosition } from './chunk-VYG7BDXC.js';
2
- import { useElement } from './chunk-MWS4VCLV.js';
3
- import { BrandLogo } from './chunk-4FIZZONW.js';
4
- import { HoverCard } from './chunk-5IG2S7ZY.js';
5
- import { DropdownMenu } from './chunk-ERAHK5YQ.js';
6
- import { Collapsible } from './chunk-FVPGQ6UE.js';
7
- import { Separator } from './chunk-6DUMGC7Y.js';
8
- import { ScrollArea } from './chunk-THHB4EWS.js';
9
- import { Search, ChevronDown } from './chunk-RQVK4IYC.js';
10
- import { TooltipProvider, Tooltip } from './chunk-SWQFYNYG.js';
11
- import { mergeRefs } from './chunk-3W27OLK5.js';
12
- import { cn } from './chunk-LXLIQ2D6.js';
13
- import { createContext, use, useState, useCallback, useMemo, useReducer, useLayoutEffect, useEffect, useRef } from 'react';
14
- import { jsx, jsxs } from 'react/jsx-runtime';
15
- import { Slot, Root, Slottable } from '@radix-ui/react-slot';
16
-
17
- var FALLBACK_TIMEOUT_MS = 500;
18
- var reducer = (state, event) => {
19
- switch (event) {
20
- case "MOUNT":
21
- return "mounted";
22
- case "TRANSITION_OUT":
23
- return state === "mounted" ? "unmountSuspended" : state;
24
- case "TRANSITION_END":
25
- return state === "unmountSuspended" ? "unmounted" : state;
26
- default:
27
- return state;
28
- }
29
- };
30
- var useTransitionPresence = ({
31
- mounted,
32
- keepMounted = false
33
- }) => {
34
- const [state, send] = useReducer(reducer, mounted ? "mounted" : "unmounted");
35
- useLayoutEffect(() => {
36
- if (keepMounted) return;
37
- mounted ? send("MOUNT") : send("TRANSITION_OUT");
38
- }, [mounted, keepMounted]);
39
- useEffect(() => {
40
- if (state !== "unmountSuspended") return;
41
- const id = setTimeout(() => send("TRANSITION_END"), FALLBACK_TIMEOUT_MS);
42
- return () => clearTimeout(id);
43
- }, [state]);
44
- return useMemo(
45
- () => ({
46
- isMounted: keepMounted || state !== "unmounted",
47
- completeUnmount: () => send("TRANSITION_END")
48
- }),
49
- [state, keepMounted]
50
- );
51
- };
52
- var SidebarContent = ({ ref, className, children, contentRef }) => {
53
- const { setElement, isBottom, isTop, isMiddle } = useScrollbarPosition();
54
- const mergedRefs = mergeRefs(ref ?? null, (ref2) => setElement(ref2));
55
- return /* @__PURE__ */ jsx(
56
- ScrollArea,
57
- {
58
- ref: mergedRefs,
59
- type: "scroll",
60
- className: "tw:group/sidebar-content tw:flex-1",
61
- "data-slot": "sidebar-content",
62
- scrollBarClassName: "tw:w-1.5",
63
- viewPortClassName: cn(
64
- "tw:overflow-x-hidden",
65
- "tw:overscroll-contain",
66
- "tw:[&>div]:!flex",
67
- // overflow fix for scrollbar
68
- // Hide scroll-position-based borders (top/bottom) if SidebarHeader or SidebarFooter is omitted.
69
- "tw:group-first/sidebar-content:before:hidden",
70
- "tw:group-last/sidebar-content:after:hidden",
71
- "tw:!box-border",
72
- {
73
- 'tw:before:absolute tw:before:top-0 tw:before:left-0 tw:before:right-0 tw:before:h-px tw:before:bg-sidebar-border tw:before:z-10 tw:before:content-[""]': isBottom || isMiddle,
74
- 'tw:after:absolute tw:after:bottom-0 tw:after:left-0 tw:after:right-0 tw:after:h-px tw:after:bg-sidebar-border tw:after:z-10 tw:after:content-[""]': isTop || isMiddle
75
- }
76
- ),
77
- children: /* @__PURE__ */ jsx(
78
- "div",
79
- {
80
- ref: contentRef,
81
- className: cn(
82
- "tw:flex",
83
- "tw:flex-1",
84
- "tw:flex-col",
85
- "tw:gap-1",
86
- "tw:overflow-x-hidden",
87
- "tw:p-2",
88
- className
89
- ),
90
- children
91
- }
92
- )
93
- }
94
- );
95
- };
96
-
97
- // src/components/Sidebar/utils.ts
98
- var SidebarWidthInPx = {
99
- MIN_DEFAULT: 256,
100
- // 8 px / 36 px / 8 px = 52 px
101
- // left padding / icon width / right padding
102
- COLLAPSED_ICON: 52,
103
- // padding from every side for floating variant (see --sidebar-floating-padding)
104
- FLOATING_VARIANT_PADDING: 8
105
- };
106
- var floatingSideCount = {
107
- "sided-floating": 1,
108
- floating: 2,
109
- inset: 0,
110
- none: 0
111
- };
112
- var calcEffectiveWidths = ({
113
- variant,
114
- width: customWidth,
115
- collapsible,
116
- state,
117
- mode
118
- }) => {
119
- if (variant === "none") return { sidebar: 0, gap: 0, fill: 0 };
120
- const padding = floatingSideCount[variant] * SidebarWidthInPx.FLOATING_VARIANT_PADDING;
121
- const width = Math.max(customWidth ?? 0, SidebarWidthInPx.MIN_DEFAULT) + padding;
122
- const iconWidth = SidebarWidthInPx.COLLAPSED_ICON + padding;
123
- const isExpanded = state === "expanded";
124
- const reduction = variant === "inset" ? 0 : SidebarWidthInPx.FLOATING_VARIANT_PADDING;
125
- const iconWidths = (() => {
126
- const sidebar = isExpanded ? width : iconWidth;
127
- const gap = mode === "expand-on-hover" ? iconWidth : sidebar;
128
- const fill = gap - reduction;
129
- return { sidebar, gap, fill };
130
- })();
131
- const offCanvasWidths = (() => {
132
- const sidebar = width;
133
- const gap = isExpanded ? width : SidebarWidthInPx.FLOATING_VARIANT_PADDING;
134
- const fill = gap - reduction;
135
- return { sidebar, gap, fill };
136
- })();
137
- return collapsible === "icon" ? iconWidths : offCanvasWidths;
138
- };
139
- var SidebarContext = createContext(null);
140
- var useOptionalSidebar = (side = "left") => use(SidebarContext)?.[side] ?? null;
141
- var useSidebar = (side = "left") => {
142
- const context = use(SidebarContext);
143
- if (context === null) throw new Error("useSidebar must be used within a SidebarProvider.");
144
- return context[side];
145
- };
146
- var PORTAL_OPEN_SELECTORS = [
147
- '[aria-haspopup="menu"][aria-expanded=true]',
148
- // DropdownMenu
149
- '[aria-haspopup="dialog"][aria-expanded=true]'
150
- // Popover, Dialogs (Modal, Sheet)
151
- ];
152
- var PORTAL_OPEN_SELECTORS_STRING = PORTAL_OPEN_SELECTORS.join(",");
153
- var useHoverTracking = (sidebarElement) => {
154
- const [isHovered, setIsHovered] = useState(false);
155
- const isLockedRef = useRef(false);
156
- useEffect(() => {
157
- if (!sidebarElement) return;
158
- const handleMouseEnter = () => setIsHovered(true);
159
- const handleMouseLeave = () => {
160
- if (isLockedRef.current) return;
161
- setIsHovered(false);
162
- };
163
- sidebarElement.addEventListener("mouseenter", handleMouseEnter);
164
- sidebarElement.addEventListener("mouseleave", handleMouseLeave);
165
- return () => {
166
- sidebarElement.removeEventListener("mouseenter", handleMouseEnter);
167
- sidebarElement.removeEventListener("mouseleave", handleMouseLeave);
168
- };
169
- }, [sidebarElement]);
170
- useEffect(() => {
171
- if (!sidebarElement) return;
172
- let animationFrameId;
173
- const observer = new MutationObserver(() => {
174
- const hasOpenPortal = sidebarElement.querySelector(PORTAL_OPEN_SELECTORS_STRING) !== null;
175
- isLockedRef.current = hasOpenPortal;
176
- if (hasOpenPortal) return;
177
- animationFrameId = requestAnimationFrame(() => {
178
- setIsHovered(sidebarElement.matches(":hover"));
179
- });
180
- });
181
- isLockedRef.current = sidebarElement.querySelector(PORTAL_OPEN_SELECTORS_STRING) !== null;
182
- observer.observe(sidebarElement, {
183
- attributes: true,
184
- attributeFilter: ["aria-expanded"],
185
- subtree: true
186
- });
187
- return () => {
188
- cancelAnimationFrame(animationFrameId);
189
- observer.disconnect();
190
- };
191
- }, [sidebarElement]);
192
- return isHovered;
193
- };
194
-
195
- // src/components/Sidebar/SidebarProvider/useSidebarState.ts
196
- var useSidebarState = ({ defaultMode, mode: modeProp, onModeChange }) => {
197
- const [sidebarElement, setSidebarElement] = useElement();
198
- const isHovered = useHoverTracking(sidebarElement);
199
- const [_mode, _setMode] = useState(defaultMode ?? "expanded");
200
- const mode = modeProp ?? _mode;
201
- const setMode = useCallback(
202
- (dispatch) => {
203
- const newState = typeof dispatch === "function" ? dispatch(mode) : dispatch;
204
- const set = onModeChange ?? _setMode;
205
- set(newState);
206
- },
207
- [onModeChange, mode]
208
- );
209
- const toggle = useCallback(() => {
210
- setMode((currState) => currState === "expanded" ? "collapsed" : "expanded");
211
- }, [setMode]);
212
- const state = (() => {
213
- if (mode === "expand-on-hover") return isHovered ? "expanded" : "collapsed";
214
- return mode;
215
- })();
216
- return useMemo(
217
- () => ({
218
- isHovered,
219
- toggle,
220
- setMode,
221
- mode,
222
- state,
223
- sidebarElement,
224
- setSidebarElement
225
- }),
226
- [isHovered, toggle, setMode, mode, state, sidebarElement, setSidebarElement]
227
- );
228
- };
229
- var DEFAULT_SIDEBAR_VARIANT = "none";
230
- var DEFAULT_SIDEBAR_MODE = "expanded";
231
- var DEFAULT_SIDEBAR_COLLAPSIBLE = "off-canvas";
232
- var SidebarProvider = ({
233
- children,
234
- // left state
235
- defaultLeftMode = DEFAULT_SIDEBAR_MODE,
236
- leftMode,
237
- onLeftModeChange,
238
- // right state
239
- defaultRightMode = DEFAULT_SIDEBAR_MODE,
240
- rightMode,
241
- onRightModeChange,
242
- // left
243
- leftCollapsible = DEFAULT_SIDEBAR_COLLAPSIBLE,
244
- leftVariant = DEFAULT_SIDEBAR_VARIANT,
245
- leftWidth,
246
- // right
247
- rightCollapsible = DEFAULT_SIDEBAR_COLLAPSIBLE,
248
- rightVariant = DEFAULT_SIDEBAR_VARIANT,
249
- rightWidth,
250
- // width change callbacks
251
- onLeftWidthChange,
252
- onRightWidthChange,
253
- // fill
254
- defaultFilledSide = null
255
- }) => {
256
- const [filledSide, setFilledSide] = useState(defaultFilledSide);
257
- const [isLeftDragging, setIsLeftDragging] = useState(false);
258
- const [isRightDragging, setIsRightDragging] = useState(false);
259
- const [leftDragWidth, setLeftDragWidth] = useState(null);
260
- const [rightDragWidth, setRightDragWidth] = useState(null);
261
- if (leftDragWidth !== null && leftWidth === leftDragWidth) setLeftDragWidth(null);
262
- if (rightDragWidth !== null && rightWidth === rightDragWidth) setRightDragWidth(null);
263
- const leftState = useSidebarState({
264
- defaultMode: defaultLeftMode,
265
- mode: leftMode,
266
- onModeChange: onLeftModeChange
267
- });
268
- const rightState = useSidebarState({
269
- defaultMode: defaultRightMode,
270
- mode: rightMode,
271
- onModeChange: onRightModeChange
272
- });
273
- const toggleLeftFill = useCallback(
274
- () => setFilledSide((prev) => prev === "left" ? null : "left"),
275
- []
276
- );
277
- const toggleRightFill = useCallback(
278
- () => setFilledSide((prev) => prev === "right" ? null : "right"),
279
- []
280
- );
281
- const value = useMemo(
282
- () => ({
283
- left: {
284
- ...leftState,
285
- isFill: filledSide === "left",
286
- toggleFill: toggleLeftFill,
287
- widths: calcEffectiveWidths({
288
- variant: leftVariant,
289
- width: leftDragWidth ?? leftWidth,
290
- collapsible: leftCollapsible,
291
- state: leftState.state,
292
- mode: leftState.mode
293
- }),
294
- collapsible: leftCollapsible,
295
- variant: leftVariant,
296
- baseWidth: leftDragWidth ?? leftWidth,
297
- onWidthChange: onLeftWidthChange,
298
- setDragWidth: setLeftDragWidth,
299
- isDragging: isLeftDragging,
300
- setIsDragging: setIsLeftDragging
301
- },
302
- right: {
303
- ...rightState,
304
- isFill: filledSide === "right",
305
- toggleFill: toggleRightFill,
306
- widths: calcEffectiveWidths({
307
- variant: rightVariant,
308
- width: rightDragWidth ?? rightWidth,
309
- collapsible: rightCollapsible,
310
- state: rightState.state,
311
- mode: rightState.mode
312
- }),
313
- collapsible: rightCollapsible,
314
- variant: rightVariant,
315
- baseWidth: rightDragWidth ?? rightWidth,
316
- onWidthChange: onRightWidthChange,
317
- setDragWidth: setRightDragWidth,
318
- isDragging: isRightDragging,
319
- setIsDragging: setIsRightDragging
320
- }
321
- }),
322
- [
323
- leftState,
324
- filledSide,
325
- toggleLeftFill,
326
- leftVariant,
327
- leftWidth,
328
- leftDragWidth,
329
- leftCollapsible,
330
- onLeftWidthChange,
331
- isLeftDragging,
332
- rightState,
333
- toggleRightFill,
334
- rightVariant,
335
- rightWidth,
336
- rightDragWidth,
337
- rightCollapsible,
338
- onRightWidthChange,
339
- isRightDragging
340
- ]
341
- );
342
- return /* @__PURE__ */ jsx(SidebarContext, { value, children });
343
- };
344
- var SidebarFillTrigger = ({ ref, side = "left", onClick, ...rest }) => {
345
- const { toggleFill, isFill } = useSidebar(side);
346
- const handleOnClick = (event) => {
347
- toggleFill();
348
- onClick?.(event);
349
- };
350
- return /* @__PURE__ */ jsx(Slot, { ...rest, ref, onClick: handleOnClick, "aria-selected": isFill });
351
- };
352
- var SidebarFooter = ({ className, ...props }) => /* @__PURE__ */ jsx(
353
- "div",
354
- {
355
- "data-slot": "sidebar-footer",
356
- className: cn("tw:flex", "tw:flex-col", "tw:gap-2", "tw:p-2", className),
357
- ...props
358
- }
359
- );
360
- var SidebarGroup = ({ className, ...props }) => /* @__PURE__ */ jsx(
361
- "div",
362
- {
363
- className: cn(
364
- "tw:group/sidebar-group",
365
- "tw:relative",
366
- "tw:w-full",
367
- // positioning
368
- "tw:flex",
369
- "tw:flex-col",
370
- "tw:min-w-0",
371
- "tw:rounded-lg",
372
- className
373
- ),
374
- ...props
375
- }
376
- );
377
- var SidebarGroupContent = ({ className, ...props }) => /* @__PURE__ */ jsx(
378
- "div",
379
- {
380
- className: cn(
381
- // positioning
382
- "tw:flex",
383
- "tw:flex-col",
384
- "tw:gap-2",
385
- "tw:w-full",
386
- className
387
- ),
388
- ...props
389
- }
390
- );
391
- var SidebarGroupAction = ({
392
- ref,
393
- className,
394
- type = "button",
395
- children,
396
- ...props
397
- }) => /* @__PURE__ */ jsx(
398
- "button",
399
- {
400
- ...props,
401
- type,
402
- ref,
403
- className: cn(
404
- "tw:group-data-[state=collapsed]/sidebar:hidden",
405
- // positioning
406
- "tw:absolute",
407
- "tw:right-1.5",
408
- "tw:top-2",
409
- "tw:flex",
410
- "tw:items-center",
411
- "tw:justify-center",
412
- // sizing
413
- "tw:size-5",
414
- // styles
415
- "tw:text-neutral-800",
416
- "tw:rounded-full",
417
- // svg defaults: size + colour
418
- 'tw:[&_svg:not([class*="tw:size-"])]:size-3',
419
- "tw:[&_svg]:text-neutral-400",
420
- "tw:hover:[&_svg]:text-secondary-600",
421
- "tw:hover:bg-neutral-100",
422
- "tw:focus-visible:ring-4",
423
- "tw:focus-visible:ring-ring/30",
424
- "tw:focus-visible:outline",
425
- "tw:focus-visible:outline-1",
426
- "tw:focus-visible:outline-ring",
427
- className
428
- ),
429
- children
430
- }
431
- );
432
- var SidebarGroupLabel = ({
433
- ref,
434
- className,
435
- children,
436
- ...props
437
- }) => /* @__PURE__ */ jsxs(
438
- "div",
439
- {
440
- ref,
441
- className: cn(
442
- "tw:relative",
443
- // positioning
444
- "tw:flex",
445
- "tw:flex-col",
446
- "tw:shrink-0",
447
- // styling
448
- "tw:h-8",
449
- "tw:px-2",
450
- "tw:-mb-1",
451
- "tw:rounded-lg",
452
- // text
453
- "tw:uppercase",
454
- "tw:font-sans",
455
- "tw:text-xs",
456
- "tw:tracking-[1px]",
457
- className
458
- ),
459
- ...props,
460
- children: [
461
- /* @__PURE__ */ jsx(
462
- Separator,
463
- {
464
- orientation: "horizontal",
465
- size: "3/4",
466
- className: cn(
467
- "tw:opacity-0",
468
- "tw:group-data-[state=collapsed]/sidebar:opacity-100",
469
- // positioning
470
- "tw:absolute",
471
- "tw:w-full",
472
- "tw:left-0",
473
- "tw:top-1/2 tw:-translate-y-1/2",
474
- "tw:transition-opacity",
475
- "tw:duration-200",
476
- "tw:ease-linear"
477
- )
478
- }
479
- ),
480
- /* @__PURE__ */ jsx(
481
- "span",
482
- {
483
- className: cn(
484
- "tw:flex",
485
- "tw:group-data-[state=collapsed]/sidebar:opacity-0",
486
- "tw:items-center",
487
- "tw:flex-1",
488
- "tw:text-muted-foreground",
489
- "tw:whitespace-nowrap",
490
- // transition
491
- "tw:transition-opacity",
492
- "tw:duration-200",
493
- "tw:ease-linear"
494
- ),
495
- children
496
- }
497
- )
498
- ]
499
- }
500
- );
501
- var SidebarInstanceContext = createContext(null);
502
- var useSidebarInstance = () => {
503
- const context = use(SidebarInstanceContext);
504
- if (context === null)
505
- throw new Error("useSidebarInstance must be used within a SidebarInstanceContext.");
506
- return context;
507
- };
508
- var SidebarHeader = ({ className, children, ...props }) => {
509
- const instance = use(SidebarInstanceContext);
510
- const variant = instance?.state === "collapsed" ? "mark" : "wordmark";
511
- const fallback = /* @__PURE__ */ jsx(BrandLogo, { variant, className: "tw:h-7" });
512
- return /* @__PURE__ */ jsx(
513
- "div",
514
- {
515
- "data-slot": "sidebar-header",
516
- className: cn(
517
- "tw:peer/sidebar-header",
518
- "tw:flex",
519
- "tw:flex-col",
520
- "tw:gap-2",
521
- "tw:p-2",
522
- className
523
- ),
524
- ...props,
525
- children: children ?? fallback
526
- }
527
- );
528
- };
529
- var SidebarMenu = ({ className, ...props }) => /* @__PURE__ */ jsx(
530
- "ul",
531
- {
532
- "data-sidebar": "menu",
533
- className: cn(
534
- "tw:flex",
535
- "tw:w-full",
536
- "tw:min-w-0",
537
- "tw:flex-col",
538
- "tw:gap-1",
539
- // transition
540
- "tw:transition-[margin,opacity]",
541
- "tw:duration-200",
542
- "tw:ease-linear",
543
- // TODO: remove when boostrap is gone
544
- "tw:pl-0",
545
- className
546
- ),
547
- ...props
548
- }
549
- );
550
- var SidebarMenuIcon = ({ ref, className, children, ...rest }) => /* @__PURE__ */ jsx(
551
- "span",
552
- {
553
- ...rest,
554
- ref,
555
- className: cn(
556
- "tw:inline-flex",
557
- "tw:items-center",
558
- "tw:justify-center",
559
- "tw:aspect-square",
560
- "tw:shrink-0",
561
- "tw:p-0.5",
562
- "tw:text-sidebar-primary",
563
- 'tw:[&_svg:not([class*="tw:size-"])]:size-4',
564
- className
565
- ),
566
- children
567
- }
568
- );
569
- var SidebarMenuButton = ({
570
- ref,
571
- "aria-selected": selected,
572
- className,
573
- children,
574
- asChild = false,
575
- icon,
576
- tooltip,
577
- ...props
578
- }) => {
579
- const Component = asChild ? Root : "button";
580
- const { state, mode, side } = useSidebarInstance();
581
- const button = /* @__PURE__ */ jsxs(
582
- Component,
583
- {
584
- ...props,
585
- ref,
586
- "data-slot": "sidebar-menu-button",
587
- ...asChild ? {} : { type: "button" },
588
- ...selected === void 0 ? {} : { "aria-selected": selected },
589
- className: cn(
590
- "tw:peer/sidebar-menu-button",
591
- "tw:group/sidebar-menu-button",
592
- // if <SidebarMenuAction /> visible, prevent the text from being under the action button.
593
- "tw:group-data-[state=expanded]/sidebar:group-has-[[data-slot=sidebar-menu-action][data-hover-only=false]]/sidebar-menu-item:pr-8",
594
- 'tw:group-data-[state=expanded]/sidebar:[&:has(+[data-slot="sidebar-menu-action"])]:group-hover/sidebar-menu-item:pr-8',
595
- 'tw:group-data-[state=expanded]/sidebar:[&:has(+[data-slot="sidebar-menu-action"])]:group-focus-within/sidebar-menu-item:pr-8',
596
- 'tw:group-data-[state=expanded]/sidebar:[&:has(+[data-slot="sidebar-menu-action"][data-hover-only=true][data-state=open])]:pr-8',
597
- "tw:flex",
598
- "tw:w-full",
599
- "tw:gap-2",
600
- "tw:items-center",
601
- "tw:z-10",
602
- "tw:font-normal",
603
- "tw:text-sidebar-foreground",
604
- "tw:p-2",
605
- "tw:whitespace-nowrap",
606
- "tw:overflow-hidden",
607
- "tw:rounded-lg",
608
- "tw:text-start",
609
- "tw:no-underline",
610
- "tw:select-none",
611
- // hover
612
- "tw:hover:not-disabled:bg-sidebar-accent",
613
- "tw:hover:text-sidebar-accent-foreground",
614
- "tw:focus:text-sidebar-accent-foreground",
615
- // anchor override
616
- "tw:data-[slot=dropdown-menu-trigger]:data-[state=open]:bg-sidebar-accent",
617
- // disabled
618
- "tw:disabled:opacity-50",
619
- "tw:disabled:cursor-not-allowed",
620
- // active
621
- "tw:aria-selected:font-medium",
622
- "tw:aria-selected:bg-sidebar-accent",
623
- "tw:aria-selected:cursor-default",
624
- // active for links https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Reference/Attributes/aria-current
625
- "tw:aria-[current=page]:bg-sidebar-accent",
626
- "tw:aria-[current=page]:font-medium",
627
- "tw:aria-[current=page]:focus:text-sidebar-accent-foreground",
628
- // focus-visible
629
- "tw:focus-visible:outline-hidden",
630
- "tw:focus-visible:z-10",
631
- "tw:focus-visible:ring-2",
632
- "tw:focus-visible:ring-sidebar-ring/50",
633
- "tw:focus-visible:text-sidebar-foreground",
634
- // anchor override
635
- className
636
- ),
637
- tabIndex: 0,
638
- children: [
639
- icon && /* @__PURE__ */ jsx(SidebarMenuIcon, { children: icon }),
640
- /* @__PURE__ */ jsx(Slottable, { children })
641
- ]
642
- }
643
- );
644
- const shouldShowTooltip = state === "collapsed" && mode !== "expand-on-hover" && tooltip;
645
- if (shouldShowTooltip) {
646
- const tooltipPlacement = side === "right" ? "left" : "right";
647
- return /* @__PURE__ */ jsx(Tooltip, { tooltip, placement: tooltipPlacement, triggerAsChild: true, children: button });
648
- }
649
- return button;
650
- };
651
- var SidebarMenuItem = ({ className, ...props }) => /* @__PURE__ */ jsx("li", { className: cn("tw:group/sidebar-menu-item", "tw:relative", className), ...props });
652
- var SidebarMenuAction = ({
653
- ref,
654
- className,
655
- asChild = false,
656
- showOnHover = false,
657
- children,
658
- ...props
659
- }) => {
660
- const Comp = asChild ? Slot : "button";
661
- return /* @__PURE__ */ jsx(
662
- Comp,
663
- {
664
- ...props,
665
- "data-slot": "sidebar-menu-action",
666
- "data-hover-only": showOnHover,
667
- ref,
668
- className: cn(
669
- "tw:absolute",
670
- "tw:top-1/2",
671
- "tw:-translate-y-1/2",
672
- "tw:right-3",
673
- "tw:z-10",
674
- "tw:p-0.5",
675
- // display
676
- "tw:flex",
677
- "tw:items-center",
678
- "tw:justify-center",
679
- "tw:aspect-square",
680
- // hiding
681
- "tw:data-[hover-only=true]:opacity-0",
682
- "tw:group-data-[state=collapsed]/sidebar:hidden",
683
- "tw:group-data-[state=expanded]/sidebar:group-hover/sidebar-menu-item:opacity-100",
684
- "tw:group-data-[state=expanded]/sidebar:group-focus-within/sidebar-menu-item:opacity-100",
685
- // keyboard navigation
686
- "tw:group-data-[state=expanded]/sidebar:data-[hover-only=true]:data-[state=open]:opacity-100",
687
- // for triggers (dropdown, tooltip, popover)
688
- "tw:size-4",
689
- "tw:rounded",
690
- // icon styling
691
- "tw:[&_svg]:shrink-0",
692
- 'tw:[&_svg:not([class*="tw:size-"])]:size-3.5',
693
- "tw:[&_svg]:text-sidebar-accent-foreground",
694
- // focus visible
695
- "tw:focus-visible:outline-hidden",
696
- "tw:focus-visible:z-10",
697
- "tw:focus-visible:ring-2",
698
- "tw:focus-visible:ring-sidebar-ring/50",
699
- "tw:focus-visible:text-sidebar-foreground",
700
- className
701
- ),
702
- children
703
- }
704
- );
705
- };
706
- var wrapperClassnames = cn(
707
- "tw:group/search-input",
708
- "tw:relative",
709
- "tw:flex",
710
- "tw:items-center",
711
- "tw:min-h-9",
712
- "tw:rounded-lg",
713
- "tw:border",
714
- "tw:transition-all",
715
- // collapsed state - transparent border/bg, hover like search button
716
- "tw:group-data-[state=collapsed]/sidebar:cursor-pointer",
717
- "tw:group-data-[state=collapsed]/sidebar:border-transparent",
718
- "tw:group-data-[state=collapsed]/sidebar:hover:bg-sidebar-accent",
719
- // expanded state - visible border/bg, padding for input, text cursor
720
- "tw:group-data-[state=expanded]/sidebar:cursor-text",
721
- "tw:group-data-[state=expanded]/sidebar:px-2",
722
- "tw:group-data-[state=expanded]/sidebar:border-neutral-200",
723
- // focus styles (only relevant when expanded)
724
- "tw:focus-within:ring-2",
725
- "tw:focus-within:ring-sidebar-ring/50",
726
- "tw:focus-within:text-sidebar-foreground"
727
- );
728
- var SidebarSearchInput = ({ ref: forwardedRef, className, ...inputProps }) => {
729
- const { side } = useSidebarInstance();
730
- const { setMode } = useSidebar(side);
731
- const inputRef = useRef(null);
732
- const handleFocus = () => {
733
- setMode("expanded");
734
- };
735
- return /* @__PURE__ */ jsxs("div", { className: cn(wrapperClassnames, className), children: [
736
- /* @__PURE__ */ jsx(
737
- Search,
738
- {
739
- className: cn(
740
- "tw:pointer-events-none",
741
- "tw:absolute",
742
- "tw:left-2",
743
- "tw:size-4",
744
- "tw:text-sidebar-primary",
745
- "tw:group-data-[state=expanded]/sidebar:text-neutral-400"
746
- )
747
- }
748
- ),
749
- /* @__PURE__ */ jsx(
750
- "input",
751
- {
752
- ref: mergeRefs(forwardedRef ?? null, inputRef),
753
- ...inputProps,
754
- onFocus: (e) => {
755
- handleFocus();
756
- inputProps.onFocus?.(e);
757
- },
758
- className: cn(
759
- "tw:w-full",
760
- "tw:bg-transparent",
761
- "tw:text-sm",
762
- "tw:font-sans",
763
- "tw:outline-hidden",
764
- "tw:placeholder:text-neutral-400",
765
- // collapsed state - visually hidden but still focusable for a11y
766
- "tw:group-data-[state=collapsed]/sidebar:opacity-0",
767
- "tw:group-data-[state=collapsed]/sidebar:cursor-pointer",
768
- // expanded state
769
- "tw:group-data-[state=expanded]/sidebar:pl-6"
770
- )
771
- }
772
- )
773
- ] });
774
- };
775
- var Title = ({ children }) => /* @__PURE__ */ jsx("div", { className: "tw:flex tw:select-none tw:gap-2 tw:text-sm tw:font-semibold", children });
776
- var Content = ({ children, className }) => /* @__PURE__ */ jsx(
777
- "div",
778
- {
779
- className: cn(
780
- "tw:whitespace-pre-line",
781
- "tw:group-data-[fill=false]/sidebar:group-data-[state=collapsed]/sidebar:group-data-[collapsible=icon]/sidebar:invisible",
782
- className
783
- ),
784
- children
785
- }
786
- );
787
- var SidebarMenuCard = ({ children, className, icon, title, ...rest }) => {
788
- const [isOpen, setIsOpen] = useState(false);
789
- const { side = "left" } = useSidebarInstance();
790
- const { state, isFill } = useSidebar(side);
791
- const isExpanded = state === "expanded" || isFill;
792
- const handleOnOpenChange = useCallback(
793
- (open) => {
794
- setIsOpen(isExpanded || document.hidden ? false : open);
795
- },
796
- [isExpanded]
797
- );
798
- return /* @__PURE__ */ jsxs(HoverCard, { open: isOpen, onOpenChange: handleOnOpenChange, children: [
799
- /* @__PURE__ */ jsx(HoverCard.Trigger, { asChild: true, children: /* @__PURE__ */ jsx(
800
- "div",
801
- {
802
- ...rest,
803
- "data-slot": "sidebar-menu-card",
804
- tabIndex: isExpanded ? -1 : 0,
805
- className: cn(
806
- "tw:group/sidebar-menu-card",
807
- "tw:peer/sidebar-menu-card",
808
- "tw:overflow-hidden",
809
- "tw:border",
810
- "tw:border-sidebar-border",
811
- "tw:rounded-2xl",
812
- // layout
813
- "tw:grid",
814
- "tw:grid-rows-[1fr]",
815
- "tw:flex-1",
816
- "tw:p-4",
817
- // icon collapsed
818
- "tw:group-data-[fill=false]/sidebar:group-data-[state=collapsed]/sidebar:group-data-[collapsible=icon]/sidebar:p-2",
819
- "tw:group-data-[fill=false]/sidebar:group-data-[state=collapsed]/sidebar:group-data-[collapsible=icon]/sidebar:border-transparent",
820
- "tw:group-data-[fill=false]/sidebar:group-data-[state=collapsed]/sidebar:group-data-[collapsible=icon]/sidebar:grid-rows-[18px]",
821
- "tw:group-data-[fill=false]/sidebar:group-data-[state=collapsed]/sidebar:group-data-[collapsible=icon]/sidebar:rounded-md",
822
- // focus-visible
823
- "tw:outline-hidden",
824
- "tw:group-data-[fill=false]/sidebar:group-data-[state=collapsed]/sidebar:group-data-[collapsible=icon]/sidebar:hover:bg-sidebar-accent",
825
- "tw:group-data-[fill=false]/sidebar:group-data-[state=collapsed]/sidebar:group-data-[collapsible=icon]/sidebar:focus-visible:ring-2",
826
- "tw:group-data-[fill=false]/sidebar:group-data-[state=collapsed]/sidebar:group-data-[collapsible=icon]/sidebar:focus-visible:ring-sidebar-ring/50",
827
- // transition
828
- "tw:transition-[padding,border]",
829
- "tw:duration-200",
830
- "tw:ease-linear"
831
- ),
832
- children: /* @__PURE__ */ jsxs("div", { className: "tw:flex tw:flex-col tw:gap-2", children: [
833
- /* @__PURE__ */ jsxs(Title, { children: [
834
- /* @__PURE__ */ jsx(SidebarMenuIcon, { className: "tw:p-px", children: icon }),
835
- title
836
- ] }),
837
- /* @__PURE__ */ jsx(Content, { className, children })
838
- ] })
839
- }
840
- ) }),
841
- /* @__PURE__ */ jsxs(
842
- HoverCard.Content,
843
- {
844
- sideOffset: 10,
845
- align: "center",
846
- side: side === "left" ? "right" : "left",
847
- className: "tw:flex tw:flex-col tw:gap-2",
848
- children: [
849
- /* @__PURE__ */ jsx(Title, { children: title }),
850
- /* @__PURE__ */ jsx(Content, { className, children })
851
- ]
852
- }
853
- )
854
- ] });
855
- };
856
- var SidebarMenuBadge = ({ ref, className, ...props }) => {
857
- return /* @__PURE__ */ jsx(
858
- "div",
859
- {
860
- ref,
861
- "data-slot": "sidebar-menu-badge",
862
- "data-sidebar": "menu-badge",
863
- className: cn(
864
- // layout
865
- "tw:flex",
866
- "tw:items-center",
867
- "tw:justify-center",
868
- "tw:z-20",
869
- "tw:absolute",
870
- // menu button position
871
- "tw:peer-[]/sidebar-menu-button:right-2",
872
- // menu card position
873
- "tw:peer-[]/sidebar-menu-card:right-4",
874
- "tw:peer-[]/sidebar-menu-card:top-4",
875
- // icon collapsed position
876
- "tw:group-data-[state=collapsed]/sidebar:group-data-[collapsible=icon]/sidebar:right-0",
877
- "tw:group-data-[state=collapsed]/sidebar:group-data-[collapsible=icon]/sidebar:-top-1",
878
- "tw:text-xs",
879
- "tw:text-sidebar-primary-foreground",
880
- "tw:bg-sidebar-primary",
881
- "tw:px-1",
882
- "tw:min-w-5",
883
- "tw:h-5",
884
- "tw:rounded-full",
885
- "tw:pointer-events-none",
886
- "tw:font-medium",
887
- "tw:tabular-nums",
888
- "tw:select-none",
889
- "tw:transition-[top,right]",
890
- "tw:delay-50",
891
- "tw:ease-linear",
892
- className
893
- ),
894
- ...props
895
- }
896
- );
897
- };
898
- var SidebarMenuSub = ({
899
- children,
900
- icon,
901
- isActive = false,
902
- label,
903
- // collapsible props
904
- defaultOpen = false,
905
- open: openProp,
906
- onOpenChange
907
- }) => {
908
- const { state, side, mode } = useSidebarInstance();
909
- const [open, setOpen] = useState(null);
910
- const [innerCollapsibleOpen, setInnerCollapsibleOpen] = useState(defaultOpen);
911
- const isCollapsibleOpen = (() => {
912
- if (state === "collapsed") return false;
913
- return openProp ?? innerCollapsibleOpen;
914
- })();
915
- const isDropdownMenu = mode === "expand-on-hover" || mode === "collapsed";
916
- const handleCollapsibleOpenChange = (open2) => {
917
- if (openProp === void 0) setInnerCollapsibleOpen(open2);
918
- onOpenChange?.(open2);
919
- };
920
- const handleDropdownOpenChange = (open2) => {
921
- setOpen(open2 ? "open-dropdown-menu" : null);
922
- };
923
- const handleTooltipOpenChange = (open2) => {
924
- setOpen((currentOpen) => {
925
- if (currentOpen === "open-dropdown-menu") return "open-dropdown-menu";
926
- if (state === "expanded") return null;
927
- return open2 ? "open-tooltip" : null;
928
- });
929
- };
930
- if (isDropdownMenu) {
931
- return /* @__PURE__ */ jsxs(DropdownMenu, { open: open === "open-dropdown-menu", onOpenChange: handleDropdownOpenChange, children: [
932
- /* @__PURE__ */ jsxs(Tooltip.Root, { open: open === "open-tooltip", onOpenChange: handleTooltipOpenChange, children: [
933
- /* @__PURE__ */ jsx(Tooltip.Trigger, { asChild: true, children: /* @__PURE__ */ jsx(DropdownMenu.Trigger, { asChild: true, children: /* @__PURE__ */ jsx(
934
- SidebarMenuButton,
935
- {
936
- icon,
937
- "data-active": isActive,
938
- className: cn(
939
- "tw:data-[active=true]:bg-sidebar-accent",
940
- "tw:data-[active=true]:font-medium"
941
- ),
942
- children: label
943
- }
944
- ) }) }),
945
- /* @__PURE__ */ jsx(Tooltip.Content, { variant: "action", placement: side, children: label })
946
- ] }),
947
- /* @__PURE__ */ jsxs(DropdownMenu.Content, { side, align: "start", children: [
948
- /* @__PURE__ */ jsx(DropdownMenu.Label, { children: label }),
949
- children
950
- ] })
951
- ] });
952
- }
953
- return /* @__PURE__ */ jsxs(Collapsible, { open: isCollapsibleOpen, onOpenChange: handleCollapsibleOpenChange, children: [
954
- /* @__PURE__ */ jsx(Collapsible.Trigger, { asChild: true, children: /* @__PURE__ */ jsxs(
955
- SidebarMenuButton,
956
- {
957
- icon,
958
- "data-active": isActive && !isCollapsibleOpen,
959
- className: cn(
960
- "tw:group",
961
- "tw:data-[active=true]:bg-sidebar-accent",
962
- "tw:data-[active=true]:font-medium"
963
- ),
964
- children: [
965
- label,
966
- /* @__PURE__ */ jsx(ChevronDown, { className: "tw:ml-auto tw:size-5 tw:transition-transform tw:duration-200 tw:group-data-[state=open]:rotate-180" })
967
- ]
968
- }
969
- ) }),
970
- /* @__PURE__ */ jsx(Collapsible.Content, { children: /* @__PURE__ */ jsx(
971
- "ul",
972
- {
973
- "data-sidebar": "menu-sub",
974
- className: cn(
975
- "tw:ml-3.5",
976
- "tw:flex",
977
- "tw:min-w-0",
978
- "tw:translate-x-px",
979
- "tw:flex-col",
980
- "tw:gap-1",
981
- "tw:border-l",
982
- "tw:border-sidebar-border",
983
- "tw:py-0.5",
984
- "tw:pl-2.5",
985
- "tw:pr-0",
986
- // TODO: remove when bootstrap is gone
987
- "tw:list-none"
988
- ),
989
- children
990
- }
991
- ) })
992
- ] });
993
- };
994
- var SidebarMenuSubItem = ({
995
- ref,
996
- className,
997
- asChild = false,
998
- children,
999
- disabled,
1000
- "aria-current": ariaCurrent,
1001
- ...props
1002
- }) => {
1003
- const { mode } = useSidebarInstance();
1004
- const isDropdownMenu = mode === "collapsed" || mode === "expand-on-hover";
1005
- if (isDropdownMenu) {
1006
- return /* @__PURE__ */ jsx(
1007
- DropdownMenu.Item,
1008
- {
1009
- "aria-current": ariaCurrent,
1010
- asChild,
1011
- disabled,
1012
- className: cn(
1013
- // use sidebar colors for active and focus states
1014
- "tw:focus:!bg-sidebar-accent",
1015
- "tw:aria-[current=page]:bg-sidebar-accent",
1016
- "tw:aria-[current=page]:focus:text-sidebar-accent-foreground",
1017
- className
1018
- ),
1019
- children
1020
- }
1021
- );
1022
- }
1023
- const Component = asChild ? Root : "button";
1024
- return /* @__PURE__ */ jsx("li", { className: "tw:group/sidebar-menu-sub-item tw:relative", children: /* @__PURE__ */ jsx(
1025
- Component,
1026
- {
1027
- ...props,
1028
- ref,
1029
- "aria-current": ariaCurrent,
1030
- "data-slot": "sidebar-menu-sub-button",
1031
- type: "button",
1032
- disabled,
1033
- className: cn(
1034
- // layout
1035
- "tw:flex",
1036
- "tw:items-center",
1037
- "tw:gap-2",
1038
- // sizing
1039
- "tw:h-7",
1040
- "tw:w-full",
1041
- "tw:min-w-0",
1042
- "tw:px-2",
1043
- //font
1044
- "tw:text-sidebar-foreground",
1045
- "tw:text-sm",
1046
- "tw:font-normal",
1047
- "tw:text-start",
1048
- "tw:whitespace-nowrap",
1049
- "tw:overflow-hidden",
1050
- "tw:rounded-md",
1051
- "tw:no-underline",
1052
- "tw:select-none",
1053
- "tw:outline-hidden",
1054
- // hover
1055
- "tw:hover:not-disabled:bg-sidebar-accent",
1056
- "tw:hover:text-sidebar-accent-foreground",
1057
- "tw:focus:text-sidebar-accent-foreground",
1058
- // active
1059
- "tw:aria-selected:font-medium",
1060
- "tw:aria-selected:bg-sidebar-accent",
1061
- "tw:aria-[current=page]:bg-sidebar-accent",
1062
- "tw:aria-[current=page]:font-medium",
1063
- // disabled
1064
- "tw:disabled:opacity-50",
1065
- "tw:disabled:cursor-not-allowed",
1066
- // focus-visible
1067
- "tw:focus-visible:outline-hidden",
1068
- "tw:focus-visible:ring-2",
1069
- "tw:focus-visible:ring-sidebar-ring/50",
1070
- className
1071
- ),
1072
- children: /* @__PURE__ */ jsx(Slottable, { children })
1073
- }
1074
- ) });
1075
- };
1076
- var DEFAULT_MIN_WIDTH = 384;
1077
- var DEFAULT_MAX_WIDTH = 800;
1078
- var useResizeSidebar = ({
1079
- side,
1080
- minWidth = DEFAULT_MIN_WIDTH,
1081
- maxWidth = DEFAULT_MAX_WIDTH
1082
- }) => {
1083
- const { onWidthChange, baseWidth, isFill, state, isDragging, setIsDragging, setDragWidth } = useSidebar(side);
1084
- const isResizable = state === "expanded" && !isFill && onWidthChange !== void 0;
1085
- const startXRef = useRef(0);
1086
- const startWidthRef = useRef(0);
1087
- const cleanupRef = useRef(null);
1088
- useEffect(() => {
1089
- return () => {
1090
- cleanupRef.current?.();
1091
- document.body.style.cursor = "";
1092
- document.body.style.userSelect = "";
1093
- };
1094
- }, []);
1095
- const clampToRange = useCallback(
1096
- (width) => {
1097
- const effectiveMax = Math.max(minWidth, Math.min(maxWidth, window.innerWidth * 0.5));
1098
- return Math.round(Math.min(effectiveMax, Math.max(minWidth, width)));
1099
- },
1100
- [minWidth, maxWidth]
1101
- );
1102
- const handleMouseDown = useCallback(
1103
- (e) => {
1104
- if (!isResizable || isDragging) return;
1105
- cleanupRef.current?.();
1106
- setIsDragging(true);
1107
- startWidthRef.current = baseWidth ?? SidebarWidthInPx.MIN_DEFAULT;
1108
- startXRef.current = e.clientX;
1109
- const handleMouseMove = (moveEvent) => {
1110
- const delta = side === "right" ? startXRef.current - moveEvent.clientX : moveEvent.clientX - startXRef.current;
1111
- setDragWidth(clampToRange(startWidthRef.current + delta));
1112
- };
1113
- const handleMouseUp = (upEvent) => {
1114
- const delta = side === "right" ? startXRef.current - upEvent.clientX : upEvent.clientX - startXRef.current;
1115
- onWidthChange?.(clampToRange(startWidthRef.current + delta));
1116
- setIsDragging(false);
1117
- document.removeEventListener("mousemove", handleMouseMove);
1118
- document.removeEventListener("mouseup", handleMouseUp);
1119
- document.body.style.cursor = "";
1120
- document.body.style.userSelect = "";
1121
- cleanupRef.current = null;
1122
- };
1123
- document.body.style.cursor = "col-resize";
1124
- document.body.style.userSelect = "none";
1125
- document.addEventListener("mousemove", handleMouseMove);
1126
- document.addEventListener("mouseup", handleMouseUp);
1127
- cleanupRef.current = () => {
1128
- document.removeEventListener("mousemove", handleMouseMove);
1129
- document.removeEventListener("mouseup", handleMouseUp);
1130
- setIsDragging(false);
1131
- setDragWidth(null);
1132
- };
1133
- },
1134
- [
1135
- isResizable,
1136
- isDragging,
1137
- side,
1138
- onWidthChange,
1139
- baseWidth,
1140
- setIsDragging,
1141
- setDragWidth,
1142
- clampToRange
1143
- ]
1144
- );
1145
- const handleDoubleClick = useCallback(() => {
1146
- onWidthChange?.(minWidth);
1147
- }, [onWidthChange, minWidth]);
1148
- return {
1149
- handleProps: {
1150
- onMouseDown: handleMouseDown,
1151
- onDoubleClick: handleDoubleClick
1152
- },
1153
- isDragging,
1154
- isResizable
1155
- };
1156
- };
1157
- var SidebarResizeHandle = ({ side, minWidth, maxWidth }) => {
1158
- const { handleProps, isResizable } = useResizeSidebar({ side, minWidth, maxWidth });
1159
- if (!isResizable) return null;
1160
- return /* @__PURE__ */ jsx(
1161
- "div",
1162
- {
1163
- ...handleProps,
1164
- "aria-hidden": true,
1165
- className: cn(
1166
- "tw:absolute tw:inset-y-0 tw:z-10 tw:w-3",
1167
- side === "right" ? "tw:left-0" : "tw:right-0",
1168
- "tw:cursor-col-resize"
1169
- )
1170
- }
1171
- );
1172
- };
1173
- var SidebarSeparator = ({ className, ...props }) => /* @__PURE__ */ jsx(
1174
- Separator,
1175
- {
1176
- ...props,
1177
- orientation: "horizontal",
1178
- size: "full",
1179
- className: cn("tw:before:bg-sidebar-border tw:p-2", className)
1180
- }
1181
- );
1182
- var SidebarTrigger = ({
1183
- side = "left",
1184
- onClick,
1185
- hideWhenCollapsed = false,
1186
- className,
1187
- ...rest
1188
- }) => {
1189
- const { toggle } = useSidebar(side);
1190
- const handleOnClick = (event) => {
1191
- toggle();
1192
- onClick?.(event);
1193
- };
1194
- return /* @__PURE__ */ jsx(
1195
- Slot,
1196
- {
1197
- ...rest,
1198
- onClick: handleOnClick,
1199
- className: cn(
1200
- {
1201
- "tw:group-data-[state=collapsed]/sidebar:hidden": hideWhenCollapsed
1202
- },
1203
- className
1204
- )
1205
- }
1206
- );
1207
- };
1208
- var Sidebar = ({
1209
- children,
1210
- className,
1211
- id,
1212
- side = "left",
1213
- style,
1214
- container = false,
1215
- keepMounted,
1216
- resizable = false
1217
- }) => {
1218
- const oppositeSide = side === "left" ? "right" : "left";
1219
- const { setSidebarElement, state, mode, isFill, widths, collapsible, variant, isDragging } = useSidebar(side);
1220
- const { isMounted, completeUnmount } = useTransitionPresence({
1221
- mounted: collapsible !== "off-canvas" || mode !== "collapsed",
1222
- keepMounted
1223
- });
1224
- const { widths: oppositeWidths } = useSidebar(oppositeSide);
1225
- const sidebarInstanceContextValue = useMemo(() => ({ state, mode, side }), [state, mode, side]);
1226
- const handleTransitionEnd = (event) => {
1227
- if (event.target !== event.currentTarget) return;
1228
- completeUnmount();
1229
- };
1230
- const styles = {
1231
- "--sidebar-floating-padding": `${SidebarWidthInPx.FLOATING_VARIANT_PADDING}px`,
1232
- "--sidebar-width": `${widths.sidebar}px`,
1233
- "--sidebar-width-gap": `${widths.gap}px`,
1234
- "--opposite-sidebar-width": `${oppositeWidths.fill}px`
1235
- };
1236
- if (variant === "none") return null;
1237
- return /* @__PURE__ */ jsx(TooltipProvider, { children: /* @__PURE__ */ jsx(SidebarInstanceContext, { value: sidebarInstanceContextValue, children: /* @__PURE__ */ jsxs(
1238
- "div",
1239
- {
1240
- id,
1241
- ref: setSidebarElement,
1242
- "data-state": state,
1243
- "data-side": side,
1244
- "data-mode": mode,
1245
- "data-collapsible": collapsible,
1246
- "data-variant": variant,
1247
- "data-fill": isFill,
1248
- style: styles,
1249
- className: cn(
1250
- "tailwindcss-preflight",
1251
- "tw:flex",
1252
- "tw:relative",
1253
- // expand-on-hover needs a higher z-index so the expanding sidebar
1254
- // overlaps the opposite filled sidebar instead of sliding behind it
1255
- mode === "expand-on-hover" ? "tw:z-[51]" : "tw:z-50",
1256
- {
1257
- // group/peer scoping is only for page-level sidebars — container
1258
- // sidebars are nested inside other components and must not leak
1259
- // group/peer selectors to avoid clashing with the outer sidebar
1260
- "tw:group/sidebar tw:peer/sidebar": !container
1261
- },
1262
- // ── GAP DIV ──
1263
- "tw:[&>[data-slot=gap]]:w-(--sidebar-width-gap)",
1264
- "tw:[&[data-side=right]>[data-slot=gap]]:rotate-180",
1265
- // ── SIDEBAR-WRAPPER DIV ──
1266
- "tw:[&>[data-slot=sidebar-wrapper]]:w-(--sidebar-width)",
1267
- "tw:[&[data-side=left]>[data-slot=sidebar-wrapper]]:left-0",
1268
- "tw:[&[data-side=right]>[data-slot=sidebar-wrapper]]:right-0",
1269
- // Off-canvas hiding.
1270
- // - `translate-x-*` sets the standalone `translate` property, not `transform`.
1271
- // - The wrapper's transition list must therefore name `translate`, or the rail
1272
- // teleports instead of sliding.
1273
- "tw:[&[data-state=collapsed][data-collapsible=off-canvas][data-side=left]>[data-slot=sidebar-wrapper]]:-translate-x-full",
1274
- "tw:[&[data-state=collapsed][data-collapsible=off-canvas][data-side=right]>[data-slot=sidebar-wrapper]]:translate-x-full",
1275
- // floating variants styles
1276
- "tw:[&[data-variant=sided-floating]>[data-slot=sidebar-wrapper]]:pt-(--sidebar-floating-padding)",
1277
- "tw:[&[data-variant=sided-floating][data-side=left]>[data-slot=sidebar-wrapper]]:pr-(--sidebar-floating-padding)",
1278
- "tw:[&[data-variant=sided-floating][data-side=right]>[data-slot=sidebar-wrapper]]:pl-(--sidebar-floating-padding)",
1279
- "tw:[&[data-variant=floating]>[data-slot=sidebar-wrapper]]:p-(--sidebar-floating-padding)",
1280
- // fill state
1281
- "tw:[&[data-fill=true]>[data-slot=sidebar-wrapper]]:!w-[calc(100svw-var(--opposite-sidebar-width))]",
1282
- "tw:[&[data-fill=true][data-variant=floating]>[data-slot=sidebar-wrapper]]:!p-(--sidebar-floating-padding)",
1283
- "tw:[&[data-fill=true][data-variant=sided-floating][data-side=left]>[data-slot=sidebar-wrapper]>[data-slot=sidebar]]:!rounded-tr-xl",
1284
- "tw:[&[data-fill=true][data-variant=sided-floating][data-side=right]>[data-slot=sidebar-wrapper]>[data-slot=sidebar]]:!rounded-tl-xl",
1285
- // ── SIDEBAR DIV (INNERMOST) ──
1286
- "tw:[&[data-variant=inset][data-side=left]>[data-slot=sidebar-wrapper]>[data-slot=sidebar]]:border-r",
1287
- "tw:[&[data-variant=inset][data-side=right]>[data-slot=sidebar-wrapper]>[data-slot=sidebar]]:border-l",
1288
- "tw:[&[data-variant=floating]>[data-slot=sidebar-wrapper]>[data-slot=sidebar]]:shadow",
1289
- "tw:[&[data-variant=floating]>[data-slot=sidebar-wrapper]>[data-slot=sidebar]]:rounded-xl",
1290
- "tw:[&[data-variant=sided-floating]>[data-slot=sidebar-wrapper]>[data-slot=sidebar]]:shadow",
1291
- "tw:[&[data-variant=sided-floating][data-side=left]>[data-slot=sidebar-wrapper]>[data-slot=sidebar]]:rounded-tr-xl",
1292
- "tw:[&[data-variant=sided-floating][data-side=right]>[data-slot=sidebar-wrapper]>[data-slot=sidebar]]:rounded-tl-xl",
1293
- // The rail's inner edge, mirroring `inset`. The shadow above cannot carry
1294
- // this alone: a shadow needs a lighter ground to fall on, and on the dark
1295
- // scheme `--sidebar` is darker than `--background`, so the rail's edge
1296
- // dissolves into the page beside it.
1297
- "tw:[&[data-variant=sided-floating][data-side=left]>[data-slot=sidebar-wrapper]>[data-slot=sidebar]]:border-r",
1298
- "tw:[&[data-variant=sided-floating][data-side=right]>[data-slot=sidebar-wrapper]>[data-slot=sidebar]]:border-l",
1299
- // transitions
1300
- isDragging ? "tw:transition-none" : "tw:transition-[width,translate,transform] tw:duration-200 tw:ease-linear"
1301
- ),
1302
- children: [
1303
- /* @__PURE__ */ jsx(
1304
- "div",
1305
- {
1306
- "data-slot": "gap",
1307
- className: cn(
1308
- "tw:bg-transparent",
1309
- isDragging ? "" : "tw:transition-[width] tw:duration-200 tw:ease-linear"
1310
- )
1311
- }
1312
- ),
1313
- /* @__PURE__ */ jsxs(
1314
- "div",
1315
- {
1316
- "data-slot": "sidebar-wrapper",
1317
- onTransitionEnd: handleTransitionEnd,
1318
- className: cn(
1319
- "tw:fixed",
1320
- "tw:inset-y-0",
1321
- "tw:border-neutral-100",
1322
- // transition
1323
- isDragging ? "tw:transition-none" : "tw:transition-[width,translate,transform] tw:duration-200 tw:ease-linear",
1324
- className
1325
- ),
1326
- style,
1327
- children: [
1328
- resizable && /* @__PURE__ */ jsx(SidebarResizeHandle, { side }),
1329
- /* @__PURE__ */ jsx(
1330
- "div",
1331
- {
1332
- "data-slot": "sidebar",
1333
- className: cn(
1334
- "tw:bg-sidebar",
1335
- "tw:overflow-hidden",
1336
- "tw:relative",
1337
- "tw:flex",
1338
- "tw:flex-col",
1339
- "tw:size-full",
1340
- "tw:border-sidebar-border",
1341
- "tw:group-[]/sidebar:pt-2"
1342
- ),
1343
- children: isMounted ? children : null
1344
- }
1345
- )
1346
- ]
1347
- }
1348
- )
1349
- ]
1350
- }
1351
- ) }) });
1352
- };
1353
- Sidebar.Header = SidebarHeader;
1354
- Sidebar.Content = SidebarContent;
1355
- Sidebar.Footer = SidebarFooter;
1356
- Sidebar.Trigger = SidebarTrigger;
1357
- Sidebar.FillTrigger = SidebarFillTrigger;
1358
- Sidebar.Separator = SidebarSeparator;
1359
- Sidebar.MenuIcon = SidebarMenuIcon;
1360
- Sidebar.Group = SidebarGroup;
1361
- Sidebar.GroupLabel = SidebarGroupLabel;
1362
- Sidebar.GroupContent = SidebarGroupContent;
1363
- Sidebar.GroupAction = SidebarGroupAction;
1364
- Sidebar.Menu = SidebarMenu;
1365
- Sidebar.MenuItem = SidebarMenuItem;
1366
- Sidebar.MenuButton = SidebarMenuButton;
1367
- Sidebar.MenuAction = SidebarMenuAction;
1368
- Sidebar.SearchInput = SidebarSearchInput;
1369
- Sidebar.MenuCard = SidebarMenuCard;
1370
- Sidebar.MenuBadge = SidebarMenuBadge;
1371
- Sidebar.SubMenu = SidebarMenuSub;
1372
- Sidebar.SubItem = SidebarMenuSubItem;
1373
-
1374
- export { Sidebar, SidebarProvider, useOptionalSidebar, useSidebar };
1375
- //# sourceMappingURL=chunk-LCTGEH57.js.map
1376
- //# sourceMappingURL=chunk-LCTGEH57.js.map