@keboola/design 10.1.0 → 11.0.1

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 (382) hide show
  1. package/AGENTS.md +2 -0
  2. package/dist/AIKit-Dre37SJr.js +1320 -0
  3. package/dist/AIKit-Dre37SJr.js.map +1 -0
  4. package/dist/Alert-DfZq9kGe.js +133 -0
  5. package/dist/Alert-DfZq9kGe.js.map +1 -0
  6. package/dist/AlertModal-BUC4Es8o.js +222 -0
  7. package/dist/AlertModal-BUC4Es8o.js.map +1 -0
  8. package/dist/AppShell-B5GQN6Zs.js +143 -0
  9. package/dist/AppShell-B5GQN6Zs.js.map +1 -0
  10. package/dist/AutoSaveTextarea-BeuWuszr.js +58 -0
  11. package/dist/AutoSaveTextarea-BeuWuszr.js.map +1 -0
  12. package/dist/Badge-Ch26CXoP.js +195 -0
  13. package/dist/Badge-Ch26CXoP.js.map +1 -0
  14. package/dist/BrandEditor-B8o9zdZO.js +903 -0
  15. package/dist/BrandEditor-B8o9zdZO.js.map +1 -0
  16. package/dist/BrandLogo-CJkRd0F8.js +46 -0
  17. package/dist/BrandLogo-CJkRd0F8.js.map +1 -0
  18. package/dist/Breadcrumb-DJp7WwSv.js +330 -0
  19. package/dist/Breadcrumb-DJp7WwSv.js.map +1 -0
  20. package/dist/Button-nzmDNS2q.js +391 -0
  21. package/dist/Button-nzmDNS2q.js.map +1 -0
  22. package/dist/Calendar-cG5NIJ4O.js +6768 -0
  23. package/dist/Calendar-cG5NIJ4O.js.map +1 -0
  24. package/dist/Card-BAoZ35CV.js +105 -0
  25. package/dist/Card-BAoZ35CV.js.map +1 -0
  26. package/dist/Checkbox-GJ8-srt4.js +97 -0
  27. package/dist/Checkbox-GJ8-srt4.js.map +1 -0
  28. package/dist/Clipboard-CBJZiviP.js +58 -0
  29. package/dist/Clipboard-CBJZiviP.js.map +1 -0
  30. package/dist/ClipboardButton-ez5V3fkk.js +43 -0
  31. package/dist/ClipboardButton-ez5V3fkk.js.map +1 -0
  32. package/dist/CodeEditor-BfQJfbhL.js +952 -0
  33. package/dist/CodeEditor-BfQJfbhL.js.map +1 -0
  34. package/dist/Collapsible-BQXWEOBC.js +34 -0
  35. package/dist/Collapsible-BQXWEOBC.js.map +1 -0
  36. package/dist/ColorInput-Dx8Dsv7Y.js +180 -0
  37. package/dist/ColorInput-Dx8Dsv7Y.js.map +1 -0
  38. package/dist/ColorModeSwitch-CCqj7tjE.js +77 -0
  39. package/dist/ColorModeSwitch-CCqj7tjE.js.map +1 -0
  40. package/dist/Combobox-c_xBjf0P.js +439 -0
  41. package/dist/Combobox-c_xBjf0P.js.map +1 -0
  42. package/dist/Command-CQ_bQsJp.js +102 -0
  43. package/dist/Command-CQ_bQsJp.js.map +1 -0
  44. package/dist/CopyField-BJ96zvXs.js +322 -0
  45. package/dist/CopyField-BJ96zvXs.js.map +1 -0
  46. package/dist/DateInput-CMD3dY-T.js +141 -0
  47. package/dist/DateInput-CMD3dY-T.js.map +1 -0
  48. package/dist/DatePicker-BbFbmsGl.js +24 -0
  49. package/dist/DatePicker-BbFbmsGl.js.map +1 -0
  50. package/dist/DateRangeInput-D3BhiKyk.js +139 -0
  51. package/dist/DateRangeInput-D3BhiKyk.js.map +1 -0
  52. package/dist/DateRangePicker-BiUgtt_M.js +159 -0
  53. package/dist/DateRangePicker-BiUgtt_M.js.map +1 -0
  54. package/dist/DiagramSkeleton-lwBS2YBa.js +11 -0
  55. package/dist/DiagramSkeleton-lwBS2YBa.js.map +1 -0
  56. package/dist/DiffView-ppTIzh2h.js +429 -0
  57. package/dist/DiffView-ppTIzh2h.js.map +1 -0
  58. package/dist/DropdownMenu-B6ZbYvaM.js +327 -0
  59. package/dist/DropdownMenu-B6ZbYvaM.js.map +1 -0
  60. package/dist/FieldBox-D7DYtX_m.js +70 -0
  61. package/dist/FieldBox-D7DYtX_m.js.map +1 -0
  62. package/dist/FileUpload-sXRv7JiY.js +2527 -0
  63. package/dist/FileUpload-sXRv7JiY.js.map +1 -0
  64. package/dist/Form-BDCef6O9.js +371 -0
  65. package/dist/Form-BDCef6O9.js.map +1 -0
  66. package/dist/FormGroup-S9mPNHKH.js +124 -0
  67. package/dist/FormGroup-S9mPNHKH.js.map +1 -0
  68. package/dist/FullScreenModal-CJa2VkJ2.js +96 -0
  69. package/dist/FullScreenModal-CJa2VkJ2.js.map +1 -0
  70. package/dist/HoverCard-WfDkLK1s.js +31 -0
  71. package/dist/HoverCard-WfDkLK1s.js.map +1 -0
  72. package/dist/InputGroup-BJWsI35s.js +292 -0
  73. package/dist/InputGroup-BJWsI35s.js.map +1 -0
  74. package/dist/Kbd-CxHAo1oo.js +111 -0
  75. package/dist/Kbd-CxHAo1oo.js.map +1 -0
  76. package/dist/MarkedText-Ckbft5mw.js +44 -0
  77. package/dist/MarkedText-Ckbft5mw.js.map +1 -0
  78. package/dist/MermaidDiagram-BB06gymm.js +399 -0
  79. package/dist/MermaidDiagram-BB06gymm.js.map +1 -0
  80. package/dist/Modal-BA5Wc3sx.js +185 -0
  81. package/dist/Modal-BA5Wc3sx.js.map +1 -0
  82. package/dist/ModalTitle-C76ke2eo.js +28 -0
  83. package/dist/ModalTitle-C76ke2eo.js.map +1 -0
  84. package/dist/MultiActionButtonGroup-CiBHxsSk.js +33 -0
  85. package/dist/MultiActionButtonGroup-CiBHxsSk.js.map +1 -0
  86. package/dist/Navbar-t16usFZQ.js +322 -0
  87. package/dist/Navbar-t16usFZQ.js.map +1 -0
  88. package/dist/OtpInput-CbbymqYs.js +93 -0
  89. package/dist/OtpInput-CbbymqYs.js.map +1 -0
  90. package/dist/PageHeader-Q3IpCnQd.js +177 -0
  91. package/dist/PageHeader-Q3IpCnQd.js.map +1 -0
  92. package/dist/PageLayout-DSVM-ASz.js +176 -0
  93. package/dist/PageLayout-DSVM-ASz.js.map +1 -0
  94. package/dist/PageToolbar-0_1OBzaZ.js +153 -0
  95. package/dist/PageToolbar-0_1OBzaZ.js.map +1 -0
  96. package/dist/Pagination-CM_Rszz-.js +70 -0
  97. package/dist/Pagination-CM_Rszz-.js.map +1 -0
  98. package/dist/Popconfirm-BGe1jLov.js +170 -0
  99. package/dist/Popconfirm-BGe1jLov.js.map +1 -0
  100. package/dist/Popover-Ca0V6AD1.js +92 -0
  101. package/dist/Popover-Ca0V6AD1.js.map +1 -0
  102. package/dist/RadioGroup-sIveSsNa.js +233 -0
  103. package/dist/RadioGroup-sIveSsNa.js.map +1 -0
  104. package/dist/Resizable-D3vYToZH.js +52 -0
  105. package/dist/Resizable-D3vYToZH.js.map +1 -0
  106. package/dist/Search-3UiqNZRj.js +184 -0
  107. package/dist/Search-3UiqNZRj.js.map +1 -0
  108. package/dist/SearchInput-D2fcOv7E.js +102 -0
  109. package/dist/SearchInput-D2fcOv7E.js.map +1 -0
  110. package/dist/SectionNav--7bw2b6u.js +276 -0
  111. package/dist/SectionNav--7bw2b6u.js.map +1 -0
  112. package/dist/Select-4YX38G5h.js +181 -0
  113. package/dist/Select-4YX38G5h.js.map +1 -0
  114. package/dist/Sheet-BQrX8-h5.js +169 -0
  115. package/dist/Sheet-BQrX8-h5.js.map +1 -0
  116. package/dist/Sidebar-ROaR_AqC.js +799 -0
  117. package/dist/Sidebar-ROaR_AqC.js.map +1 -0
  118. package/dist/Slider-Da_3mS5v.js +127 -0
  119. package/dist/Slider-Da_3mS5v.js.map +1 -0
  120. package/dist/Stepper-C8sm9ZFM.js +325 -0
  121. package/dist/Stepper-C8sm9ZFM.js.map +1 -0
  122. package/dist/Switch-CX2A0v50.js +201 -0
  123. package/dist/Switch-CX2A0v50.js.map +1 -0
  124. package/dist/Table-CvYuTuNU.js +104 -0
  125. package/dist/Table-CvYuTuNU.js.map +1 -0
  126. package/dist/Tabs-EAihyqCt.js +74 -0
  127. package/dist/Tabs-EAihyqCt.js.map +1 -0
  128. package/dist/TextInput-BGed-V13.js +110 -0
  129. package/dist/TextInput-BGed-V13.js.map +1 -0
  130. package/dist/ThemeProvider-QncUrfJn.js +203 -0
  131. package/dist/ThemeProvider-QncUrfJn.js.map +1 -0
  132. package/dist/TimePicker-B_NegL-7.js +98 -0
  133. package/dist/TimePicker-B_NegL-7.js.map +1 -0
  134. package/dist/Timeline-6btyJl4D.js +154 -0
  135. package/dist/Timeline-6btyJl4D.js.map +1 -0
  136. package/dist/Toast-DQSbs3oA.js +49 -0
  137. package/dist/Toast-DQSbs3oA.js.map +1 -0
  138. package/dist/ToggleGroup-Cy_10Mvu.js +47 -0
  139. package/dist/ToggleGroup-Cy_10Mvu.js.map +1 -0
  140. package/dist/Workbench-BzE-Vvd9.js +293 -0
  141. package/dist/Workbench-BzE-Vvd9.js.map +1 -0
  142. package/dist/ZoomableSvg-DG9PnAm8.js +248 -0
  143. package/dist/ZoomableSvg-DG9PnAm8.js.map +1 -0
  144. package/dist/charts.d.ts +124 -111
  145. package/dist/charts.js +303 -249
  146. package/dist/charts.js.map +1 -1
  147. package/dist/classNames-BzrkDnOD.js +9 -0
  148. package/dist/classNames-BzrkDnOD.js.map +1 -0
  149. package/dist/constants-D6JcsD4_.d.ts +41 -0
  150. package/dist/context-KxxeMHbR.js +62 -0
  151. package/dist/context-KxxeMHbR.js.map +1 -0
  152. package/dist/editors.d.ts +180 -173
  153. package/dist/editors.js +747 -420
  154. package/dist/editors.js.map +1 -1
  155. package/dist/escapeStringRegexp-8MxP2knR.js +6 -0
  156. package/dist/escapeStringRegexp-8MxP2knR.js.map +1 -0
  157. package/dist/icons-Cek151jC.js +640 -0
  158. package/dist/icons-Cek151jC.js.map +1 -0
  159. package/dist/icons.d.ts +2 -41
  160. package/dist/icons.js +2 -4
  161. package/dist/index-m-kQEWiY.d.ts +54 -0
  162. package/dist/index.d.ts +6192 -9904
  163. package/dist/index.js +112 -15803
  164. package/dist/internal/blocks/AIKit.js +2 -0
  165. package/dist/internal/blocks/AppShell.js +2 -0
  166. package/dist/internal/blocks/AutoSaveTextarea.js +2 -0
  167. package/dist/internal/blocks/BrandEditor.js +2 -0
  168. package/dist/internal/blocks/ChartPanel.js +46 -0
  169. package/dist/internal/blocks/ChartPanel.js.map +1 -0
  170. package/dist/internal/blocks/ClipboardButton.js +2 -0
  171. package/dist/internal/blocks/ColorInput.js +2 -0
  172. package/dist/internal/blocks/ColorModeSwitch.js +2 -0
  173. package/dist/internal/blocks/Command.js +2 -0
  174. package/dist/internal/blocks/CopyField.js +2 -0
  175. package/dist/internal/blocks/DashboardHero.js +59 -0
  176. package/dist/internal/blocks/DashboardHero.js.map +1 -0
  177. package/dist/internal/blocks/DateInput.js +2 -0
  178. package/dist/internal/blocks/DateRangeInput.js +2 -0
  179. package/dist/internal/blocks/EmptyConfigurationActionCard.js +16 -0
  180. package/dist/internal/blocks/EmptyConfigurationActionCard.js.map +1 -0
  181. package/dist/internal/blocks/EmptyState.js +142 -0
  182. package/dist/internal/blocks/EmptyState.js.map +1 -0
  183. package/dist/internal/blocks/ErrorState.js +179 -0
  184. package/dist/internal/blocks/ErrorState.js.map +1 -0
  185. package/dist/internal/blocks/ExportMenu.js +41 -0
  186. package/dist/internal/blocks/ExportMenu.js.map +1 -0
  187. package/dist/internal/blocks/Form.js +2 -0
  188. package/dist/internal/blocks/FormGroup.js +2 -0
  189. package/dist/internal/blocks/GoogleButton.js +95 -0
  190. package/dist/internal/blocks/GoogleButton.js.map +1 -0
  191. package/dist/internal/blocks/MicrosoftButton.js +64 -0
  192. package/dist/internal/blocks/MicrosoftButton.js.map +1 -0
  193. package/dist/internal/blocks/MultiActionButtonGroup.js +2 -0
  194. package/dist/internal/blocks/MultiCombobox.js +188 -0
  195. package/dist/internal/blocks/MultiCombobox.js.map +1 -0
  196. package/dist/internal/blocks/NumberInput.js +44 -0
  197. package/dist/internal/blocks/NumberInput.js.map +1 -0
  198. package/dist/internal/blocks/OtpInput.js +2 -0
  199. package/dist/internal/blocks/PageHeader.js +2 -0
  200. package/dist/internal/blocks/PageLayout.js +2 -0
  201. package/dist/internal/blocks/PageToolbar.js +2 -0
  202. package/dist/internal/blocks/PasswordInput.js +97 -0
  203. package/dist/internal/blocks/PasswordInput.js.map +1 -0
  204. package/dist/internal/blocks/SearchInput.js +2 -0
  205. package/dist/internal/blocks/SearchInputWithNavigation.js +65 -0
  206. package/dist/internal/blocks/SearchInputWithNavigation.js.map +1 -0
  207. package/dist/internal/blocks/SectionNav.js +2 -0
  208. package/dist/internal/blocks/SplitButton.js +46 -0
  209. package/dist/internal/blocks/SplitButton.js.map +1 -0
  210. package/dist/internal/blocks/StatCard.js +97 -0
  211. package/dist/internal/blocks/StatCard.js.map +1 -0
  212. package/dist/internal/blocks/TextInput.js +2 -0
  213. package/dist/internal/blocks/Textarea.js +32 -0
  214. package/dist/internal/blocks/Textarea.js.map +1 -0
  215. package/dist/internal/blocks/TimeInput.js +77 -0
  216. package/dist/internal/blocks/TimeInput.js.map +1 -0
  217. package/dist/internal/components/Alert.js +2 -0
  218. package/dist/internal/components/AlertModal.js +2 -0
  219. package/dist/internal/components/Avatar.js +53 -0
  220. package/dist/internal/components/Avatar.js.map +1 -0
  221. package/dist/internal/components/Badge.js +2 -0
  222. package/dist/internal/components/BrandLogo.js +2 -0
  223. package/dist/internal/components/Breadcrumb.js +2 -0
  224. package/dist/internal/components/Button.js +2 -0
  225. package/dist/internal/components/ButtonGroup.js +66 -0
  226. package/dist/internal/components/ButtonGroup.js.map +1 -0
  227. package/dist/internal/components/Calendar.js +2 -0
  228. package/dist/internal/components/Card.js +2 -0
  229. package/dist/internal/components/Checkbox.js +2 -0
  230. package/dist/internal/components/Clipboard.js +2 -0
  231. package/dist/internal/components/Collapsible.js +2 -0
  232. package/dist/internal/components/CollapsiblePanel.js +87 -0
  233. package/dist/internal/components/CollapsiblePanel.js.map +1 -0
  234. package/dist/internal/components/Combobox.js +2 -0
  235. package/dist/internal/components/DatePicker.js +2 -0
  236. package/dist/internal/components/DateRangePicker.js +2 -0
  237. package/dist/internal/components/DiffView.js +2 -0
  238. package/dist/internal/components/DotsLoader.js +18 -0
  239. package/dist/internal/components/DotsLoader.js.map +1 -0
  240. package/dist/internal/components/DropdownMenu.js +2 -0
  241. package/dist/internal/components/EmptySearchContent.js +12 -0
  242. package/dist/internal/components/EmptySearchContent.js.map +1 -0
  243. package/dist/internal/components/FileUpload.js +2 -0
  244. package/dist/internal/components/FullScreenModal.js +2 -0
  245. package/dist/internal/components/HelpBlock.js +25 -0
  246. package/dist/internal/components/HelpBlock.js.map +1 -0
  247. package/dist/internal/components/HoverCard.js +2 -0
  248. package/dist/internal/components/InputGroup.js +2 -0
  249. package/dist/internal/components/Kbd.js +2 -0
  250. package/dist/internal/components/Label.js +39 -0
  251. package/dist/internal/components/Label.js.map +1 -0
  252. package/dist/internal/components/Link.js +22 -0
  253. package/dist/internal/components/Link.js.map +1 -0
  254. package/dist/internal/components/MarkedText.js +2 -0
  255. package/dist/internal/components/MergeEditor/ConflictStatus/ConflictStatusIndicator.js +20 -0
  256. package/dist/internal/components/MergeEditor/ConflictStatus/ConflictStatusIndicator.js.map +1 -0
  257. package/dist/internal/components/MergeEditor/PaneHeader.js +13 -0
  258. package/dist/internal/components/MergeEditor/PaneHeader.js.map +1 -0
  259. package/dist/internal/components/MergeEditor/constants.js +18 -0
  260. package/dist/internal/components/MergeEditor/constants.js.map +1 -0
  261. package/dist/internal/components/MergeEditor/useMergeDiff.js +2 -0
  262. package/dist/internal/components/Modal.js +2 -0
  263. package/dist/internal/components/Navbar.js +2 -0
  264. package/dist/internal/components/Pagination.js +2 -0
  265. package/dist/internal/components/PanelWithDetails.js +31 -0
  266. package/dist/internal/components/PanelWithDetails.js.map +1 -0
  267. package/dist/internal/components/Popconfirm.js +2 -0
  268. package/dist/internal/components/Popover.js +2 -0
  269. package/dist/internal/components/Progress.js +47 -0
  270. package/dist/internal/components/Progress.js.map +1 -0
  271. package/dist/internal/components/RadioGroup.js +2 -0
  272. package/dist/internal/components/Resizable.js +2 -0
  273. package/dist/internal/components/ScrollArea.js +42 -0
  274. package/dist/internal/components/ScrollArea.js.map +1 -0
  275. package/dist/internal/components/Search.js +2 -0
  276. package/dist/internal/components/Select.js +2 -0
  277. package/dist/internal/components/Separator.js +84 -0
  278. package/dist/internal/components/Separator.js.map +1 -0
  279. package/dist/internal/components/Sheet.js +2 -0
  280. package/dist/internal/components/Sidebar.js +2 -0
  281. package/dist/internal/components/Skeleton/Skeleton.js +39 -0
  282. package/dist/internal/components/Skeleton/Skeleton.js.map +1 -0
  283. package/dist/internal/components/Skeleton/SkeletonList.js +41 -0
  284. package/dist/internal/components/Skeleton/SkeletonList.js.map +1 -0
  285. package/dist/internal/components/Slider.js +2 -0
  286. package/dist/internal/components/SpotlightBackdrop.js +132 -0
  287. package/dist/internal/components/SpotlightBackdrop.js.map +1 -0
  288. package/dist/internal/components/Stepper.js +2 -0
  289. package/dist/internal/components/Switch.js +2 -0
  290. package/dist/internal/components/Table.js +2 -0
  291. package/dist/internal/components/Tabs.js +2 -0
  292. package/dist/internal/components/ThemeProvider.js +3 -0
  293. package/dist/internal/components/TimePicker.js +2 -0
  294. package/dist/internal/components/Timeline.js +2 -0
  295. package/dist/internal/components/Toast.js +3 -0
  296. package/dist/internal/components/Toggle.js +169 -0
  297. package/dist/internal/components/Toggle.js.map +1 -0
  298. package/dist/internal/components/ToggleGroup.js +2 -0
  299. package/dist/internal/components/Tooltip.js +2 -0
  300. package/dist/internal/components/Truncated.js +45 -0
  301. package/dist/internal/components/Truncated.js.map +1 -0
  302. package/dist/internal/components/Workbench.js +2 -0
  303. package/dist/internal/components/ZoomableSvg.js +2 -0
  304. package/dist/internal/hooks/useAutosizeInput.js +77 -0
  305. package/dist/internal/hooks/useAutosizeInput.js.map +1 -0
  306. package/dist/internal/hooks/useScrollbarPosition.js +45 -0
  307. package/dist/internal/hooks/useScrollbarPosition.js.map +1 -0
  308. package/dist/internal/hooks/useStableCallback.js +29 -0
  309. package/dist/internal/hooks/useStableCallback.js.map +1 -0
  310. package/dist/internal/utils/mergeRefs.js +20 -0
  311. package/dist/internal/utils/mergeRefs.js.map +1 -0
  312. package/dist/internal/utils.js +5 -0
  313. package/dist/markdown-editor.d.ts +72 -72
  314. package/dist/markdown-editor.js +1122 -1193
  315. package/dist/markdown-editor.js.map +1 -1
  316. package/dist/mermaid.d.ts +12 -12
  317. package/dist/mermaid.js +2 -10
  318. package/dist/rjsf.d.ts +33 -34
  319. package/dist/rjsf.js +1543 -1600
  320. package/dist/rjsf.js.map +1 -1
  321. package/dist/rolldown-runtime-Bdc48AWt.js +33 -0
  322. package/dist/styles-DSUP_-9Z.js +158 -0
  323. package/dist/styles-DSUP_-9Z.js.map +1 -0
  324. package/dist/styles.css +1 -1
  325. package/dist/testing.d.ts +8 -7
  326. package/dist/testing.js +36 -16
  327. package/dist/testing.js.map +1 -1
  328. package/dist/themeTokens-BNg98Mu9.js +85 -0
  329. package/dist/themeTokens-BNg98Mu9.js.map +1 -0
  330. package/dist/toast-CjkURw0M.js +184 -0
  331. package/dist/toast-CjkURw0M.js.map +1 -0
  332. package/dist/useColorSchemeState-CYqcUfSH.js +61 -0
  333. package/dist/useColorSchemeState-CYqcUfSH.js.map +1 -0
  334. package/dist/useControllableState-M6494mCT.js +31 -0
  335. package/dist/useControllableState-M6494mCT.js.map +1 -0
  336. package/dist/useElement-DkF6esWL.js +15 -0
  337. package/dist/useElement-DkF6esWL.js.map +1 -0
  338. package/dist/useMergeDiff-CvowEXJ1.js +465 -0
  339. package/dist/useMergeDiff-CvowEXJ1.js.map +1 -0
  340. package/dist/utils-D0c5VAyF.js +308 -0
  341. package/dist/utils-D0c5VAyF.js.map +1 -0
  342. package/package.json +10 -9
  343. package/src/styles.css +35 -7
  344. package/src/theme.css +64 -0
  345. package/dist/MermaidDiagram-EOKJHQQV.js +0 -10
  346. package/dist/MermaidDiagram-EOKJHQQV.js.map +0 -1
  347. package/dist/chunk-63NSN2VL.js +0 -274
  348. package/dist/chunk-63NSN2VL.js.map +0 -1
  349. package/dist/chunk-6FPEI4EM.js +0 -6683
  350. package/dist/chunk-6FPEI4EM.js.map +0 -1
  351. package/dist/chunk-7PUUHEJQ.js +0 -1313
  352. package/dist/chunk-7PUUHEJQ.js.map +0 -1
  353. package/dist/chunk-BOHNXTMM.js +0 -606
  354. package/dist/chunk-BOHNXTMM.js.map +0 -1
  355. package/dist/chunk-C3L3TBBT.js +0 -242
  356. package/dist/chunk-C3L3TBBT.js.map +0 -1
  357. package/dist/chunk-CTCFYWJC.js +0 -407
  358. package/dist/chunk-CTCFYWJC.js.map +0 -1
  359. package/dist/chunk-ESBL3IPF.js +0 -23
  360. package/dist/chunk-ESBL3IPF.js.map +0 -1
  361. package/dist/chunk-IJTHFNNJ.js +0 -261
  362. package/dist/chunk-IJTHFNNJ.js.map +0 -1
  363. package/dist/chunk-JP7PNHLH.js +0 -40
  364. package/dist/chunk-JP7PNHLH.js.map +0 -1
  365. package/dist/chunk-KPNAW5MU.js +0 -229
  366. package/dist/chunk-KPNAW5MU.js.map +0 -1
  367. package/dist/chunk-L37JJ6MR.js +0 -152
  368. package/dist/chunk-L37JJ6MR.js.map +0 -1
  369. package/dist/chunk-Q7NWXLCT.js +0 -90
  370. package/dist/chunk-Q7NWXLCT.js.map +0 -1
  371. package/dist/chunk-SYIEF644.js +0 -1016
  372. package/dist/chunk-SYIEF644.js.map +0 -1
  373. package/dist/chunk-VMFSRV5H.js +0 -16
  374. package/dist/chunk-VMFSRV5H.js.map +0 -1
  375. package/dist/chunk-VPPM7UUQ.js +0 -47
  376. package/dist/chunk-VPPM7UUQ.js.map +0 -1
  377. package/dist/chunk-XV3UUOYF.js +0 -845
  378. package/dist/chunk-XV3UUOYF.js.map +0 -1
  379. package/dist/constants-D3gaMY-W.d.ts +0 -39
  380. package/dist/icons.js.map +0 -1
  381. package/dist/index.js.map +0 -1
  382. package/dist/mermaid.js.map +0 -1
@@ -0,0 +1,799 @@
1
+ import { cn } from "./classNames-BzrkDnOD.js";
2
+ import { Tooltip, TooltipProvider } from "./utils-D0c5VAyF.js";
3
+ import { mergeRefs } from "./internal/utils/mergeRefs.js";
4
+ import { ChevronDown, Search } from "./icons-Cek151jC.js";
5
+ import { DropdownMenu } from "./DropdownMenu-B6ZbYvaM.js";
6
+ import { ScrollArea } from "./internal/components/ScrollArea.js";
7
+ import { Separator } from "./internal/components/Separator.js";
8
+ import { HoverCard } from "./HoverCard-WfDkLK1s.js";
9
+ import { Collapsible } from "./Collapsible-BQXWEOBC.js";
10
+ import { BrandLogo } from "./BrandLogo-CJkRd0F8.js";
11
+ import { useElement } from "./useElement-DkF6esWL.js";
12
+ import { useScrollbarPosition } from "./internal/hooks/useScrollbarPosition.js";
13
+ import { Root, Slot, Slottable } from "@radix-ui/react-slot";
14
+ import { createContext, use, useCallback, useEffect, useLayoutEffect, useMemo, useReducer, useRef, useState } from "react";
15
+ import { jsx, jsxs } from "react/jsx-runtime";
16
+ //#region src/components/Sidebar/SidebarProvider/useTransitionPresence.ts
17
+ const FALLBACK_TIMEOUT_MS = 500;
18
+ const reducer = (state, event) => {
19
+ switch (event) {
20
+ case "MOUNT": return "mounted";
21
+ case "TRANSITION_OUT": return state === "mounted" ? "unmountSuspended" : state;
22
+ case "TRANSITION_END": return state === "unmountSuspended" ? "unmounted" : state;
23
+ default: return state;
24
+ }
25
+ };
26
+ const useTransitionPresence = ({ mounted, keepMounted = false }) => {
27
+ const [state, send] = useReducer(reducer, mounted ? "mounted" : "unmounted");
28
+ useLayoutEffect(() => {
29
+ if (keepMounted) return;
30
+ mounted ? send("MOUNT") : send("TRANSITION_OUT");
31
+ }, [mounted, keepMounted]);
32
+ useEffect(() => {
33
+ if (state !== "unmountSuspended") return;
34
+ const id = setTimeout(() => send("TRANSITION_END"), FALLBACK_TIMEOUT_MS);
35
+ return () => clearTimeout(id);
36
+ }, [state]);
37
+ return useMemo(() => ({
38
+ isMounted: keepMounted || state !== "unmounted",
39
+ completeUnmount: () => send("TRANSITION_END")
40
+ }), [state, keepMounted]);
41
+ };
42
+ //#endregion
43
+ //#region src/components/Sidebar/SidebarContent.tsx
44
+ const SidebarContent = ({ ref, className, children, contentRef }) => {
45
+ const { setElement, isBottom, isTop, isMiddle } = useScrollbarPosition();
46
+ const mergedRefs = mergeRefs(ref ?? null, (ref) => setElement(ref));
47
+ return /* @__PURE__ */ jsx(ScrollArea, {
48
+ ref: mergedRefs,
49
+ type: "scroll",
50
+ className: "tw:group/sidebar-content tw:flex-1",
51
+ "data-slot": "sidebar-content",
52
+ scrollBarClassName: "tw:w-1.5",
53
+ viewPortClassName: cn("tw:overflow-x-hidden", "tw:overscroll-contain", "tw:[&>div]:!flex", "tw:group-first/sidebar-content:before:hidden", "tw:group-last/sidebar-content:after:hidden", "tw:!box-border", {
54
+ "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,
55
+ "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
56
+ }),
57
+ children: /* @__PURE__ */ jsx("div", {
58
+ ref: contentRef,
59
+ className: cn("tw:flex", "tw:flex-1", "tw:flex-col", "tw:gap-1", "tw:overflow-x-hidden", "tw:p-2", className),
60
+ children
61
+ })
62
+ });
63
+ };
64
+ //#endregion
65
+ //#region src/components/Sidebar/utils.ts
66
+ const SidebarWidthInPx = {
67
+ MIN_DEFAULT: 256,
68
+ COLLAPSED_ICON: 52,
69
+ FLOATING_VARIANT_PADDING: 8
70
+ };
71
+ const floatingSideCount = {
72
+ "sided-floating": 1,
73
+ floating: 2,
74
+ inset: 0,
75
+ none: 0
76
+ };
77
+ const calcEffectiveWidths = ({ variant, width: customWidth, collapsible, state, mode }) => {
78
+ if (variant === "none") return {
79
+ sidebar: 0,
80
+ gap: 0,
81
+ fill: 0
82
+ };
83
+ const padding = floatingSideCount[variant] * SidebarWidthInPx.FLOATING_VARIANT_PADDING;
84
+ const width = Math.max(customWidth ?? 0, SidebarWidthInPx.MIN_DEFAULT) + padding;
85
+ const iconWidth = SidebarWidthInPx.COLLAPSED_ICON + padding;
86
+ const isExpanded = state === "expanded";
87
+ const reduction = variant === "inset" ? 0 : SidebarWidthInPx.FLOATING_VARIANT_PADDING;
88
+ const iconWidths = (() => {
89
+ const sidebar = isExpanded ? width : iconWidth;
90
+ const gap = mode === "expand-on-hover" ? iconWidth : sidebar;
91
+ return {
92
+ sidebar,
93
+ gap,
94
+ fill: gap - reduction
95
+ };
96
+ })();
97
+ const offCanvasWidths = (() => {
98
+ const sidebar = width;
99
+ const gap = isExpanded ? width : SidebarWidthInPx.FLOATING_VARIANT_PADDING;
100
+ return {
101
+ sidebar,
102
+ gap,
103
+ fill: gap - reduction
104
+ };
105
+ })();
106
+ return collapsible === "icon" ? iconWidths : offCanvasWidths;
107
+ };
108
+ //#endregion
109
+ //#region src/components/Sidebar/SidebarProvider/context.ts
110
+ const SidebarContext = createContext(null);
111
+ /**
112
+ * The sidebar if there is one, `null` otherwise — for code that ENHANCES a page when the app shell is
113
+ * around it (borrowing width, collapsing a panel) and must still render without one, in a test, a
114
+ * story, or an embedded surface. Anything that genuinely requires a sidebar keeps `useSidebar`.
115
+ */
116
+ const useOptionalSidebar = (side = "left") => use(SidebarContext)?.[side] ?? null;
117
+ const useSidebar = (side = "left") => {
118
+ const context = use(SidebarContext);
119
+ if (context === null) throw new Error("useSidebar must be used within a SidebarProvider.");
120
+ return context[side];
121
+ };
122
+ //#endregion
123
+ //#region src/components/Sidebar/SidebarProvider/useHoverTracking.ts
124
+ const PORTAL_OPEN_SELECTORS_STRING = ["[aria-haspopup=\"menu\"][aria-expanded=true]", "[aria-haspopup=\"dialog\"][aria-expanded=true]"].join(",");
125
+ const useHoverTracking = (sidebarElement) => {
126
+ const [isHovered, setIsHovered] = useState(false);
127
+ const isLockedRef = useRef(false);
128
+ useEffect(() => {
129
+ if (!sidebarElement) return;
130
+ const handleMouseEnter = () => setIsHovered(true);
131
+ const handleMouseLeave = () => {
132
+ if (isLockedRef.current) return;
133
+ setIsHovered(false);
134
+ };
135
+ sidebarElement.addEventListener("mouseenter", handleMouseEnter);
136
+ sidebarElement.addEventListener("mouseleave", handleMouseLeave);
137
+ return () => {
138
+ sidebarElement.removeEventListener("mouseenter", handleMouseEnter);
139
+ sidebarElement.removeEventListener("mouseleave", handleMouseLeave);
140
+ };
141
+ }, [sidebarElement]);
142
+ useEffect(() => {
143
+ if (!sidebarElement) return;
144
+ let animationFrameId;
145
+ const observer = new MutationObserver(() => {
146
+ const hasOpenPortal = sidebarElement.querySelector(PORTAL_OPEN_SELECTORS_STRING) !== null;
147
+ isLockedRef.current = hasOpenPortal;
148
+ if (hasOpenPortal) return;
149
+ animationFrameId = requestAnimationFrame(() => {
150
+ setIsHovered(sidebarElement.matches(":hover"));
151
+ });
152
+ });
153
+ isLockedRef.current = sidebarElement.querySelector(PORTAL_OPEN_SELECTORS_STRING) !== null;
154
+ observer.observe(sidebarElement, {
155
+ attributes: true,
156
+ attributeFilter: ["aria-expanded"],
157
+ subtree: true
158
+ });
159
+ return () => {
160
+ cancelAnimationFrame(animationFrameId);
161
+ observer.disconnect();
162
+ };
163
+ }, [sidebarElement]);
164
+ return isHovered;
165
+ };
166
+ //#endregion
167
+ //#region src/components/Sidebar/SidebarProvider/useSidebarState.ts
168
+ const useSidebarState = ({ defaultMode, mode: modeProp, onModeChange }) => {
169
+ const [sidebarElement, setSidebarElement] = useElement();
170
+ const isHovered = useHoverTracking(sidebarElement);
171
+ const [_mode, _setMode] = useState(defaultMode ?? "expanded");
172
+ const mode = modeProp ?? _mode;
173
+ const setMode = useCallback((dispatch) => {
174
+ const newState = typeof dispatch === "function" ? dispatch(mode) : dispatch;
175
+ (onModeChange ?? _setMode)(newState);
176
+ }, [onModeChange, mode]);
177
+ const toggle = useCallback(() => {
178
+ setMode((currState) => currState === "expanded" ? "collapsed" : "expanded");
179
+ }, [setMode]);
180
+ const state = (() => {
181
+ if (mode === "expand-on-hover") return isHovered ? "expanded" : "collapsed";
182
+ return mode;
183
+ })();
184
+ return useMemo(() => ({
185
+ isHovered,
186
+ toggle,
187
+ setMode,
188
+ mode,
189
+ state,
190
+ sidebarElement,
191
+ setSidebarElement
192
+ }), [
193
+ isHovered,
194
+ toggle,
195
+ setMode,
196
+ mode,
197
+ state,
198
+ sidebarElement,
199
+ setSidebarElement
200
+ ]);
201
+ };
202
+ //#endregion
203
+ //#region src/components/Sidebar/SidebarProvider/SidebarProvider.tsx
204
+ const DEFAULT_SIDEBAR_VARIANT = "none";
205
+ const DEFAULT_SIDEBAR_MODE = "expanded";
206
+ const DEFAULT_SIDEBAR_COLLAPSIBLE = "off-canvas";
207
+ const SidebarProvider = ({ children, defaultLeftMode = DEFAULT_SIDEBAR_MODE, leftMode, onLeftModeChange, defaultRightMode = DEFAULT_SIDEBAR_MODE, rightMode, onRightModeChange, leftCollapsible = DEFAULT_SIDEBAR_COLLAPSIBLE, leftVariant = DEFAULT_SIDEBAR_VARIANT, leftWidth, rightCollapsible = DEFAULT_SIDEBAR_COLLAPSIBLE, rightVariant = DEFAULT_SIDEBAR_VARIANT, rightWidth, onLeftWidthChange, onRightWidthChange, defaultFilledSide = null }) => {
208
+ const [filledSide, setFilledSide] = useState(defaultFilledSide);
209
+ const [isLeftDragging, setIsLeftDragging] = useState(false);
210
+ const [isRightDragging, setIsRightDragging] = useState(false);
211
+ const [leftDragWidth, setLeftDragWidth] = useState(null);
212
+ const [rightDragWidth, setRightDragWidth] = useState(null);
213
+ if (leftDragWidth !== null && leftWidth === leftDragWidth) setLeftDragWidth(null);
214
+ if (rightDragWidth !== null && rightWidth === rightDragWidth) setRightDragWidth(null);
215
+ const leftState = useSidebarState({
216
+ defaultMode: defaultLeftMode,
217
+ mode: leftMode,
218
+ onModeChange: onLeftModeChange
219
+ });
220
+ const rightState = useSidebarState({
221
+ defaultMode: defaultRightMode,
222
+ mode: rightMode,
223
+ onModeChange: onRightModeChange
224
+ });
225
+ const toggleLeftFill = useCallback(() => setFilledSide((prev) => prev === "left" ? null : "left"), []);
226
+ const toggleRightFill = useCallback(() => setFilledSide((prev) => prev === "right" ? null : "right"), []);
227
+ const value = useMemo(() => ({
228
+ left: {
229
+ ...leftState,
230
+ isFill: filledSide === "left",
231
+ toggleFill: toggleLeftFill,
232
+ widths: calcEffectiveWidths({
233
+ variant: leftVariant,
234
+ width: leftDragWidth ?? leftWidth,
235
+ collapsible: leftCollapsible,
236
+ state: leftState.state,
237
+ mode: leftState.mode
238
+ }),
239
+ collapsible: leftCollapsible,
240
+ variant: leftVariant,
241
+ baseWidth: leftDragWidth ?? leftWidth,
242
+ onWidthChange: onLeftWidthChange,
243
+ setDragWidth: setLeftDragWidth,
244
+ isDragging: isLeftDragging,
245
+ setIsDragging: setIsLeftDragging
246
+ },
247
+ right: {
248
+ ...rightState,
249
+ isFill: filledSide === "right",
250
+ toggleFill: toggleRightFill,
251
+ widths: calcEffectiveWidths({
252
+ variant: rightVariant,
253
+ width: rightDragWidth ?? rightWidth,
254
+ collapsible: rightCollapsible,
255
+ state: rightState.state,
256
+ mode: rightState.mode
257
+ }),
258
+ collapsible: rightCollapsible,
259
+ variant: rightVariant,
260
+ baseWidth: rightDragWidth ?? rightWidth,
261
+ onWidthChange: onRightWidthChange,
262
+ setDragWidth: setRightDragWidth,
263
+ isDragging: isRightDragging,
264
+ setIsDragging: setIsRightDragging
265
+ }
266
+ }), [
267
+ leftState,
268
+ filledSide,
269
+ toggleLeftFill,
270
+ leftVariant,
271
+ leftWidth,
272
+ leftDragWidth,
273
+ leftCollapsible,
274
+ onLeftWidthChange,
275
+ isLeftDragging,
276
+ rightState,
277
+ toggleRightFill,
278
+ rightVariant,
279
+ rightWidth,
280
+ rightDragWidth,
281
+ rightCollapsible,
282
+ onRightWidthChange,
283
+ isRightDragging
284
+ ]);
285
+ return /* @__PURE__ */ jsx(SidebarContext, {
286
+ value,
287
+ children
288
+ });
289
+ };
290
+ //#endregion
291
+ //#region src/components/Sidebar/SidebarFillTrigger.tsx
292
+ const SidebarFillTrigger = ({ ref, side = "left", onClick, ...rest }) => {
293
+ const { toggleFill, isFill } = useSidebar(side);
294
+ const handleOnClick = (event) => {
295
+ toggleFill();
296
+ onClick?.(event);
297
+ };
298
+ return /* @__PURE__ */ jsx(Slot, {
299
+ ...rest,
300
+ ref,
301
+ onClick: handleOnClick,
302
+ "aria-selected": isFill
303
+ });
304
+ };
305
+ //#endregion
306
+ //#region src/components/Sidebar/SidebarFooter.tsx
307
+ const SidebarFooter = ({ className, ...props }) => /* @__PURE__ */ jsx("div", {
308
+ "data-slot": "sidebar-footer",
309
+ className: cn("tw:flex", "tw:flex-col", "tw:gap-2", "tw:p-2", className),
310
+ ...props
311
+ });
312
+ //#endregion
313
+ //#region src/components/Sidebar/SidebarGroup/SidebarGroup.tsx
314
+ const SidebarGroup = ({ className, ...props }) => /* @__PURE__ */ jsx("div", {
315
+ className: cn("tw:group/sidebar-group", "tw:relative", "tw:w-full", "tw:flex", "tw:flex-col", "tw:min-w-0", "tw:rounded-lg", className),
316
+ ...props
317
+ });
318
+ //#endregion
319
+ //#region src/components/Sidebar/SidebarGroup/SidebarGroupContent.tsx
320
+ const SidebarGroupContent = ({ className, ...props }) => /* @__PURE__ */ jsx("div", {
321
+ className: cn("tw:flex", "tw:flex-col", "tw:gap-2", "tw:w-full", className),
322
+ ...props
323
+ });
324
+ //#endregion
325
+ //#region src/components/Sidebar/SidebarGroup/SidebarGroupAction.tsx
326
+ const SidebarGroupAction = ({ ref, className, type = "button", children, ...props }) => /* @__PURE__ */ jsx("button", {
327
+ ...props,
328
+ type,
329
+ ref,
330
+ className: cn("tw:group-data-[state=collapsed]/sidebar:hidden", "tw:absolute", "tw:right-1.5", "tw:top-2", "tw:flex", "tw:items-center", "tw:justify-center", "tw:size-5", "tw:text-neutral-800", "tw:rounded-full", "tw:[&_svg:not([class*=\"tw:size-\"])]:size-3", "tw:[&_svg]:text-neutral-400", "tw:hover:[&_svg]:text-secondary-600", "tw:hover:bg-neutral-100", "tw:focus-visible:ring-4", "tw:focus-visible:ring-ring/30", "tw:focus-visible:outline", "tw:focus-visible:outline-1", "tw:focus-visible:outline-ring", className),
331
+ children
332
+ });
333
+ //#endregion
334
+ //#region src/components/Sidebar/SidebarGroup/SidebarGroupLabel.tsx
335
+ const SidebarGroupLabel = ({ ref, className, children, ...props }) => /* @__PURE__ */ jsxs("div", {
336
+ ref,
337
+ className: cn("tw:relative", "tw:flex", "tw:flex-col", "tw:shrink-0", "tw:h-8", "tw:px-2", "tw:-mb-1", "tw:rounded-lg", "tw:uppercase", "tw:font-sans", "tw:text-xs", "tw:tracking-[1px]", className),
338
+ ...props,
339
+ children: [/* @__PURE__ */ jsx(Separator, {
340
+ orientation: "horizontal",
341
+ size: "3/4",
342
+ className: cn("tw:opacity-0", "tw:group-data-[state=collapsed]/sidebar:opacity-100", "tw:absolute", "tw:w-full", "tw:left-0", "tw:top-1/2 tw:-translate-y-1/2", "tw:transition-opacity", "tw:duration-200", "tw:ease-linear")
343
+ }), /* @__PURE__ */ jsx("span", {
344
+ className: cn("tw:flex", "tw:group-data-[state=collapsed]/sidebar:opacity-0", "tw:items-center", "tw:flex-1", "tw:text-muted-foreground", "tw:whitespace-nowrap", "tw:transition-opacity", "tw:duration-200", "tw:ease-linear"),
345
+ children
346
+ })]
347
+ });
348
+ //#endregion
349
+ //#region src/components/Sidebar/SidebarInstanceContext.ts
350
+ const SidebarInstanceContext = createContext(null);
351
+ const useSidebarInstance = () => {
352
+ const context = use(SidebarInstanceContext);
353
+ if (context === null) throw new Error("useSidebarInstance must be used within a SidebarInstanceContext.");
354
+ return context;
355
+ };
356
+ //#endregion
357
+ //#region src/components/Sidebar/SidebarHeader.tsx
358
+ const SidebarHeader = ({ className, children, ...props }) => {
359
+ const variant = use(SidebarInstanceContext)?.state === "collapsed" ? "mark" : "wordmark";
360
+ const fallback = /* @__PURE__ */ jsx(BrandLogo, {
361
+ variant,
362
+ className: "tw:h-7"
363
+ });
364
+ return /* @__PURE__ */ jsx("div", {
365
+ "data-slot": "sidebar-header",
366
+ className: cn("tw:peer/sidebar-header", "tw:flex", "tw:flex-col", "tw:gap-2", "tw:p-2", className),
367
+ ...props,
368
+ children: children ?? fallback
369
+ });
370
+ };
371
+ //#endregion
372
+ //#region src/components/Sidebar/SidebarMenu/SidebarMenu.tsx
373
+ const SidebarMenu = ({ className, ...props }) => /* @__PURE__ */ jsx("ul", {
374
+ "data-sidebar": "menu",
375
+ className: cn("tw:flex", "tw:w-full", "tw:min-w-0", "tw:flex-col", "tw:gap-1", "tw:transition-[margin,opacity]", "tw:duration-200", "tw:ease-linear", "tw:pl-0", className),
376
+ ...props
377
+ });
378
+ //#endregion
379
+ //#region src/components/Sidebar/SidebarMenu/SidebarMenuIcon.tsx
380
+ const SidebarMenuIcon = ({ ref, className, children, ...rest }) => /* @__PURE__ */ jsx("span", {
381
+ ...rest,
382
+ ref,
383
+ className: cn("tw:inline-flex", "tw:items-center", "tw:justify-center", "tw:aspect-square", "tw:shrink-0", "tw:p-0.5", "tw:text-sidebar-primary", "tw:[&_svg:not([class*=\"tw:size-\"])]:size-4", className),
384
+ children
385
+ });
386
+ //#endregion
387
+ //#region src/components/Sidebar/SidebarMenu/SidebarMenuButton.tsx
388
+ const SidebarMenuButton = ({ ref, "aria-selected": selected, className, children, asChild = false, icon, tooltip, ...props }) => {
389
+ const Component = asChild ? Root : "button";
390
+ const { state, mode, side } = useSidebarInstance();
391
+ const button = /* @__PURE__ */ jsxs(Component, {
392
+ ...props,
393
+ ref,
394
+ "data-slot": "sidebar-menu-button",
395
+ ...asChild ? {} : { type: "button" },
396
+ ...selected === void 0 ? {} : { "aria-selected": selected },
397
+ className: cn("tw:peer/sidebar-menu-button", "tw:group/sidebar-menu-button", "tw:group-data-[state=expanded]/sidebar:group-has-[[data-slot=sidebar-menu-action][data-hover-only=false]]/sidebar-menu-item:pr-8", "tw:group-data-[state=expanded]/sidebar:[&:has(+[data-slot=\"sidebar-menu-action\"])]:group-hover/sidebar-menu-item:pr-8", "tw:group-data-[state=expanded]/sidebar:[&:has(+[data-slot=\"sidebar-menu-action\"])]:group-focus-within/sidebar-menu-item:pr-8", "tw:group-data-[state=expanded]/sidebar:[&:has(+[data-slot=\"sidebar-menu-action\"][data-hover-only=true][data-state=open])]:pr-8", "tw:flex", "tw:w-full", "tw:gap-2", "tw:items-center", "tw:z-10", "tw:font-normal", "tw:text-sidebar-foreground", "tw:p-2", "tw:whitespace-nowrap", "tw:overflow-hidden", "tw:rounded-lg", "tw:text-start", "tw:no-underline", "tw:select-none", "tw:hover:not-disabled:bg-sidebar-accent", "tw:hover:text-sidebar-accent-foreground", "tw:focus:text-sidebar-accent-foreground", "tw:data-[slot=dropdown-menu-trigger]:data-[state=open]:bg-sidebar-accent", "tw:disabled:opacity-50", "tw:disabled:cursor-not-allowed", "tw:aria-selected:font-medium", "tw:aria-selected:bg-sidebar-accent", "tw:aria-selected:cursor-default", "tw:aria-[current=page]:bg-sidebar-accent", "tw:aria-[current=page]:font-medium", "tw:aria-[current=page]:focus:text-sidebar-accent-foreground", "tw:focus-visible:outline-hidden", "tw:focus-visible:z-10", "tw:focus-visible:ring-2", "tw:focus-visible:ring-sidebar-ring/50", "tw:focus-visible:text-sidebar-foreground", className),
398
+ tabIndex: 0,
399
+ children: [icon && /* @__PURE__ */ jsx(SidebarMenuIcon, { children: icon }), /* @__PURE__ */ jsx(Slottable, { children })]
400
+ });
401
+ if (state === "collapsed" && mode !== "expand-on-hover" && tooltip) return /* @__PURE__ */ jsx(Tooltip, {
402
+ tooltip,
403
+ placement: side === "right" ? "left" : "right",
404
+ triggerAsChild: true,
405
+ children: button
406
+ });
407
+ return button;
408
+ };
409
+ //#endregion
410
+ //#region src/components/Sidebar/SidebarMenu/SidebarMenuItem.tsx
411
+ const SidebarMenuItem = ({ className, ...props }) => /* @__PURE__ */ jsx("li", {
412
+ className: cn("tw:group/sidebar-menu-item", "tw:relative", className),
413
+ ...props
414
+ });
415
+ //#endregion
416
+ //#region src/components/Sidebar/SidebarMenu/SidebarMenuAction.tsx
417
+ const SidebarMenuAction = ({ ref, className, asChild = false, showOnHover = false, children, ...props }) => {
418
+ return /* @__PURE__ */ jsx(asChild ? Slot : "button", {
419
+ ...props,
420
+ "data-slot": "sidebar-menu-action",
421
+ "data-hover-only": showOnHover,
422
+ ref,
423
+ className: cn("tw:absolute", "tw:top-1/2", "tw:-translate-y-1/2", "tw:right-3", "tw:z-10", "tw:p-0.5", "tw:flex", "tw:items-center", "tw:justify-center", "tw:aspect-square", "tw:data-[hover-only=true]:opacity-0", "tw:group-data-[state=collapsed]/sidebar:hidden", "tw:group-data-[state=expanded]/sidebar:group-hover/sidebar-menu-item:opacity-100", "tw:group-data-[state=expanded]/sidebar:group-focus-within/sidebar-menu-item:opacity-100", "tw:group-data-[state=expanded]/sidebar:data-[hover-only=true]:data-[state=open]:opacity-100", "tw:size-4", "tw:rounded", "tw:[&_svg]:shrink-0", "tw:[&_svg:not([class*=\"tw:size-\"])]:size-3.5", "tw:[&_svg]:text-sidebar-accent-foreground", "tw:focus-visible:outline-hidden", "tw:focus-visible:z-10", "tw:focus-visible:ring-2", "tw:focus-visible:ring-sidebar-ring/50", "tw:focus-visible:text-sidebar-foreground", className),
424
+ children
425
+ });
426
+ };
427
+ //#endregion
428
+ //#region src/components/Sidebar/SidebarMenu/SidebarSearchInput.tsx
429
+ const wrapperClassnames = cn("tw:group/search-input", "tw:relative", "tw:flex", "tw:items-center", "tw:min-h-9", "tw:rounded-lg", "tw:border", "tw:transition-all", "tw:group-data-[state=collapsed]/sidebar:cursor-pointer", "tw:group-data-[state=collapsed]/sidebar:border-transparent", "tw:group-data-[state=collapsed]/sidebar:hover:bg-sidebar-accent", "tw:group-data-[state=expanded]/sidebar:cursor-text", "tw:group-data-[state=expanded]/sidebar:px-2", "tw:group-data-[state=expanded]/sidebar:border-neutral-200", "tw:focus-within:ring-2", "tw:focus-within:ring-sidebar-ring/50", "tw:focus-within:text-sidebar-foreground");
430
+ const SidebarSearchInput = ({ ref: forwardedRef, className, ...inputProps }) => {
431
+ const { side } = useSidebarInstance();
432
+ const { setMode } = useSidebar(side);
433
+ const inputRef = useRef(null);
434
+ const handleFocus = () => {
435
+ setMode("expanded");
436
+ };
437
+ return /* @__PURE__ */ jsxs("div", {
438
+ className: cn(wrapperClassnames, className),
439
+ children: [/* @__PURE__ */ jsx(Search, { className: cn("tw:pointer-events-none", "tw:absolute", "tw:left-2", "tw:size-4", "tw:text-sidebar-primary", "tw:group-data-[state=expanded]/sidebar:text-neutral-400") }), /* @__PURE__ */ jsx("input", {
440
+ ref: mergeRefs(forwardedRef ?? null, inputRef),
441
+ ...inputProps,
442
+ onFocus: (e) => {
443
+ handleFocus();
444
+ inputProps.onFocus?.(e);
445
+ },
446
+ className: cn("tw:w-full", "tw:bg-transparent", "tw:text-sm", "tw:font-sans", "tw:outline-hidden", "tw:placeholder:text-neutral-400", "tw:group-data-[state=collapsed]/sidebar:opacity-0", "tw:group-data-[state=collapsed]/sidebar:cursor-pointer", "tw:group-data-[state=expanded]/sidebar:pl-6")
447
+ })]
448
+ });
449
+ };
450
+ //#endregion
451
+ //#region src/components/Sidebar/SidebarMenu/SidebarMenuCard.tsx
452
+ const Title = ({ children }) => /* @__PURE__ */ jsx("div", {
453
+ className: "tw:flex tw:select-none tw:gap-2 tw:text-sm tw:font-semibold",
454
+ children
455
+ });
456
+ const Content = ({ children, className }) => /* @__PURE__ */ jsx("div", {
457
+ className: cn("tw:whitespace-pre-line", "tw:group-data-[fill=false]/sidebar:group-data-[state=collapsed]/sidebar:group-data-[collapsible=icon]/sidebar:invisible", className),
458
+ children
459
+ });
460
+ const SidebarMenuCard = ({ children, className, icon, title, ...rest }) => {
461
+ const [isOpen, setIsOpen] = useState(false);
462
+ const { side = "left" } = useSidebarInstance();
463
+ const { state, isFill } = useSidebar(side);
464
+ const isExpanded = state === "expanded" || isFill;
465
+ const handleOnOpenChange = useCallback((open) => {
466
+ setIsOpen(isExpanded || document.hidden ? false : open);
467
+ }, [isExpanded]);
468
+ return /* @__PURE__ */ jsxs(HoverCard, {
469
+ open: isOpen,
470
+ onOpenChange: handleOnOpenChange,
471
+ children: [/* @__PURE__ */ jsx(HoverCard.Trigger, {
472
+ asChild: true,
473
+ children: /* @__PURE__ */ jsx("div", {
474
+ ...rest,
475
+ "data-slot": "sidebar-menu-card",
476
+ tabIndex: isExpanded ? -1 : 0,
477
+ className: cn("tw:group/sidebar-menu-card", "tw:peer/sidebar-menu-card", "tw:overflow-hidden", "tw:border", "tw:border-sidebar-border", "tw:rounded-2xl", "tw:grid", "tw:grid-rows-[1fr]", "tw:flex-1", "tw:p-4", "tw:group-data-[fill=false]/sidebar:group-data-[state=collapsed]/sidebar:group-data-[collapsible=icon]/sidebar:p-2", "tw:group-data-[fill=false]/sidebar:group-data-[state=collapsed]/sidebar:group-data-[collapsible=icon]/sidebar:border-transparent", "tw:group-data-[fill=false]/sidebar:group-data-[state=collapsed]/sidebar:group-data-[collapsible=icon]/sidebar:grid-rows-[18px]", "tw:group-data-[fill=false]/sidebar:group-data-[state=collapsed]/sidebar:group-data-[collapsible=icon]/sidebar:rounded-md", "tw:outline-hidden", "tw:group-data-[fill=false]/sidebar:group-data-[state=collapsed]/sidebar:group-data-[collapsible=icon]/sidebar:hover:bg-sidebar-accent", "tw:group-data-[fill=false]/sidebar:group-data-[state=collapsed]/sidebar:group-data-[collapsible=icon]/sidebar:focus-visible:ring-2", "tw:group-data-[fill=false]/sidebar:group-data-[state=collapsed]/sidebar:group-data-[collapsible=icon]/sidebar:focus-visible:ring-sidebar-ring/50", "tw:transition-[padding,border]", "tw:duration-200", "tw:ease-linear"),
478
+ children: /* @__PURE__ */ jsxs("div", {
479
+ className: "tw:flex tw:flex-col tw:gap-2",
480
+ children: [/* @__PURE__ */ jsxs(Title, { children: [/* @__PURE__ */ jsx(SidebarMenuIcon, {
481
+ className: "tw:p-px",
482
+ children: icon
483
+ }), title] }), /* @__PURE__ */ jsx(Content, {
484
+ className,
485
+ children
486
+ })]
487
+ })
488
+ })
489
+ }), /* @__PURE__ */ jsxs(HoverCard.Content, {
490
+ sideOffset: 10,
491
+ align: "center",
492
+ side: side === "left" ? "right" : "left",
493
+ className: "tw:flex tw:flex-col tw:gap-2",
494
+ children: [/* @__PURE__ */ jsx(Title, { children: title }), /* @__PURE__ */ jsx(Content, {
495
+ className,
496
+ children
497
+ })]
498
+ })]
499
+ });
500
+ };
501
+ //#endregion
502
+ //#region src/components/Sidebar/SidebarMenu/SidebarMenuBadge.tsx
503
+ const SidebarMenuBadge = ({ ref, className, ...props }) => {
504
+ return /* @__PURE__ */ jsx("div", {
505
+ ref,
506
+ "data-slot": "sidebar-menu-badge",
507
+ "data-sidebar": "menu-badge",
508
+ className: cn("tw:flex", "tw:items-center", "tw:justify-center", "tw:z-20", "tw:absolute", "tw:peer-[]/sidebar-menu-button:right-2", "tw:peer-[]/sidebar-menu-card:right-4", "tw:peer-[]/sidebar-menu-card:top-4", "tw:group-data-[state=collapsed]/sidebar:group-data-[collapsible=icon]/sidebar:right-0", "tw:group-data-[state=collapsed]/sidebar:group-data-[collapsible=icon]/sidebar:-top-1", "tw:text-xs", "tw:text-sidebar-primary-foreground", "tw:bg-sidebar-primary", "tw:px-1", "tw:min-w-5", "tw:h-5", "tw:rounded-full", "tw:pointer-events-none", "tw:font-medium", "tw:tabular-nums", "tw:select-none", "tw:transition-[top,right]", "tw:delay-50", "tw:ease-linear", className),
509
+ ...props
510
+ });
511
+ };
512
+ //#endregion
513
+ //#region src/components/Sidebar/SidebarMenu/SidebarMenuSub.tsx
514
+ const SidebarMenuSub = ({ children, icon, isActive = false, label, defaultOpen = false, open: openProp, onOpenChange }) => {
515
+ const { state, side, mode } = useSidebarInstance();
516
+ const [open, setOpen] = useState(null);
517
+ const [innerCollapsibleOpen, setInnerCollapsibleOpen] = useState(defaultOpen);
518
+ const isCollapsibleOpen = (() => {
519
+ if (state === "collapsed") return false;
520
+ return openProp ?? innerCollapsibleOpen;
521
+ })();
522
+ const isDropdownMenu = mode === "expand-on-hover" || mode === "collapsed";
523
+ const handleCollapsibleOpenChange = (open) => {
524
+ if (openProp === void 0) setInnerCollapsibleOpen(open);
525
+ onOpenChange?.(open);
526
+ };
527
+ const handleDropdownOpenChange = (open) => {
528
+ setOpen(open ? "open-dropdown-menu" : null);
529
+ };
530
+ const handleTooltipOpenChange = (open) => {
531
+ setOpen((currentOpen) => {
532
+ if (currentOpen === "open-dropdown-menu") return "open-dropdown-menu";
533
+ if (state === "expanded") return null;
534
+ return open ? "open-tooltip" : null;
535
+ });
536
+ };
537
+ if (isDropdownMenu) return /* @__PURE__ */ jsxs(DropdownMenu, {
538
+ open: open === "open-dropdown-menu",
539
+ onOpenChange: handleDropdownOpenChange,
540
+ children: [/* @__PURE__ */ jsxs(Tooltip.Root, {
541
+ open: open === "open-tooltip",
542
+ onOpenChange: handleTooltipOpenChange,
543
+ children: [/* @__PURE__ */ jsx(Tooltip.Trigger, {
544
+ asChild: true,
545
+ children: /* @__PURE__ */ jsx(DropdownMenu.Trigger, {
546
+ asChild: true,
547
+ children: /* @__PURE__ */ jsx(SidebarMenuButton, {
548
+ icon,
549
+ "data-active": isActive,
550
+ className: cn("tw:data-[active=true]:bg-sidebar-accent", "tw:data-[active=true]:font-medium"),
551
+ children: label
552
+ })
553
+ })
554
+ }), /* @__PURE__ */ jsx(Tooltip.Content, {
555
+ variant: "action",
556
+ placement: side,
557
+ children: label
558
+ })]
559
+ }), /* @__PURE__ */ jsxs(DropdownMenu.Content, {
560
+ side,
561
+ align: "start",
562
+ children: [/* @__PURE__ */ jsx(DropdownMenu.Label, { children: label }), children]
563
+ })]
564
+ });
565
+ return /* @__PURE__ */ jsxs(Collapsible, {
566
+ open: isCollapsibleOpen,
567
+ onOpenChange: handleCollapsibleOpenChange,
568
+ children: [/* @__PURE__ */ jsx(Collapsible.Trigger, {
569
+ asChild: true,
570
+ children: /* @__PURE__ */ jsxs(SidebarMenuButton, {
571
+ icon,
572
+ "data-active": isActive && !isCollapsibleOpen,
573
+ className: cn("tw:group", "tw:data-[active=true]:bg-sidebar-accent", "tw:data-[active=true]:font-medium"),
574
+ children: [label, /* @__PURE__ */ jsx(ChevronDown, { className: "tw:ml-auto tw:size-5 tw:transition-transform tw:duration-200 tw:group-data-[state=open]:rotate-180" })]
575
+ })
576
+ }), /* @__PURE__ */ jsx(Collapsible.Content, { children: /* @__PURE__ */ jsx("ul", {
577
+ "data-sidebar": "menu-sub",
578
+ className: cn("tw:ml-3.5", "tw:flex", "tw:min-w-0", "tw:translate-x-px", "tw:flex-col", "tw:gap-1", "tw:border-l", "tw:border-sidebar-border", "tw:py-0.5", "tw:pl-2.5", "tw:pr-0", "tw:list-none"),
579
+ children
580
+ }) })]
581
+ });
582
+ };
583
+ //#endregion
584
+ //#region src/components/Sidebar/SidebarMenu/SidebarMenuSubItem.tsx
585
+ const SidebarMenuSubItem = ({ ref, className, asChild = false, children, disabled, "aria-current": ariaCurrent, ...props }) => {
586
+ const { mode } = useSidebarInstance();
587
+ if (mode === "collapsed" || mode === "expand-on-hover") return /* @__PURE__ */ jsx(DropdownMenu.Item, {
588
+ "aria-current": ariaCurrent,
589
+ asChild,
590
+ disabled,
591
+ className: cn("tw:focus:!bg-sidebar-accent", "tw:aria-[current=page]:bg-sidebar-accent", "tw:aria-[current=page]:focus:text-sidebar-accent-foreground", className),
592
+ children
593
+ });
594
+ return /* @__PURE__ */ jsx("li", {
595
+ className: "tw:group/sidebar-menu-sub-item tw:relative",
596
+ children: /* @__PURE__ */ jsx(asChild ? Root : "button", {
597
+ ...props,
598
+ ref,
599
+ "aria-current": ariaCurrent,
600
+ "data-slot": "sidebar-menu-sub-button",
601
+ type: "button",
602
+ disabled,
603
+ className: cn("tw:flex", "tw:items-center", "tw:gap-2", "tw:h-7", "tw:w-full", "tw:min-w-0", "tw:px-2", "tw:text-sidebar-foreground", "tw:text-sm", "tw:font-normal", "tw:text-start", "tw:whitespace-nowrap", "tw:overflow-hidden", "tw:rounded-md", "tw:no-underline", "tw:select-none", "tw:outline-hidden", "tw:hover:not-disabled:bg-sidebar-accent", "tw:hover:text-sidebar-accent-foreground", "tw:focus:text-sidebar-accent-foreground", "tw:aria-selected:font-medium", "tw:aria-selected:bg-sidebar-accent", "tw:aria-[current=page]:bg-sidebar-accent", "tw:aria-[current=page]:font-medium", "tw:disabled:opacity-50", "tw:disabled:cursor-not-allowed", "tw:focus-visible:outline-hidden", "tw:focus-visible:ring-2", "tw:focus-visible:ring-sidebar-ring/50", className),
604
+ children: /* @__PURE__ */ jsx(Slottable, { children })
605
+ })
606
+ });
607
+ };
608
+ //#endregion
609
+ //#region src/components/Sidebar/useResizeSidebar.ts
610
+ const DEFAULT_MIN_WIDTH = 384;
611
+ const DEFAULT_MAX_WIDTH = 800;
612
+ const useResizeSidebar = ({ side, minWidth = DEFAULT_MIN_WIDTH, maxWidth = DEFAULT_MAX_WIDTH }) => {
613
+ const { onWidthChange, baseWidth, isFill, state, isDragging, setIsDragging, setDragWidth } = useSidebar(side);
614
+ const isResizable = state === "expanded" && !isFill && onWidthChange !== void 0;
615
+ const startXRef = useRef(0);
616
+ const startWidthRef = useRef(0);
617
+ const cleanupRef = useRef(null);
618
+ useEffect(() => {
619
+ return () => {
620
+ cleanupRef.current?.();
621
+ document.body.style.cursor = "";
622
+ document.body.style.userSelect = "";
623
+ };
624
+ }, []);
625
+ const clampToRange = useCallback((width) => {
626
+ const effectiveMax = Math.max(minWidth, Math.min(maxWidth, window.innerWidth * .5));
627
+ return Math.round(Math.min(effectiveMax, Math.max(minWidth, width)));
628
+ }, [minWidth, maxWidth]);
629
+ return {
630
+ handleProps: {
631
+ onMouseDown: useCallback((e) => {
632
+ if (!isResizable || isDragging) return;
633
+ cleanupRef.current?.();
634
+ setIsDragging(true);
635
+ startWidthRef.current = baseWidth ?? SidebarWidthInPx.MIN_DEFAULT;
636
+ startXRef.current = e.clientX;
637
+ const handleMouseMove = (moveEvent) => {
638
+ const delta = side === "right" ? startXRef.current - moveEvent.clientX : moveEvent.clientX - startXRef.current;
639
+ setDragWidth(clampToRange(startWidthRef.current + delta));
640
+ };
641
+ const handleMouseUp = (upEvent) => {
642
+ const delta = side === "right" ? startXRef.current - upEvent.clientX : upEvent.clientX - startXRef.current;
643
+ onWidthChange?.(clampToRange(startWidthRef.current + delta));
644
+ setIsDragging(false);
645
+ document.removeEventListener("mousemove", handleMouseMove);
646
+ document.removeEventListener("mouseup", handleMouseUp);
647
+ document.body.style.cursor = "";
648
+ document.body.style.userSelect = "";
649
+ cleanupRef.current = null;
650
+ };
651
+ document.body.style.cursor = "col-resize";
652
+ document.body.style.userSelect = "none";
653
+ document.addEventListener("mousemove", handleMouseMove);
654
+ document.addEventListener("mouseup", handleMouseUp);
655
+ cleanupRef.current = () => {
656
+ document.removeEventListener("mousemove", handleMouseMove);
657
+ document.removeEventListener("mouseup", handleMouseUp);
658
+ setIsDragging(false);
659
+ setDragWidth(null);
660
+ };
661
+ }, [
662
+ isResizable,
663
+ isDragging,
664
+ side,
665
+ onWidthChange,
666
+ baseWidth,
667
+ setIsDragging,
668
+ setDragWidth,
669
+ clampToRange
670
+ ]),
671
+ onDoubleClick: useCallback(() => {
672
+ onWidthChange?.(minWidth);
673
+ }, [onWidthChange, minWidth])
674
+ },
675
+ isDragging,
676
+ isResizable
677
+ };
678
+ };
679
+ //#endregion
680
+ //#region src/components/Sidebar/SidebarResizeHandle.tsx
681
+ const SidebarResizeHandle = ({ side, minWidth, maxWidth }) => {
682
+ const { handleProps, isResizable } = useResizeSidebar({
683
+ side,
684
+ minWidth,
685
+ maxWidth
686
+ });
687
+ if (!isResizable) return null;
688
+ return /* @__PURE__ */ jsx("div", {
689
+ ...handleProps,
690
+ "aria-hidden": true,
691
+ className: cn("tw:absolute tw:inset-y-0 tw:z-10 tw:w-3", side === "right" ? "tw:left-0" : "tw:right-0", "tw:cursor-col-resize")
692
+ });
693
+ };
694
+ //#endregion
695
+ //#region src/components/Sidebar/SidebarSeparator.tsx
696
+ const SidebarSeparator = ({ className, ...props }) => /* @__PURE__ */ jsx(Separator, {
697
+ ...props,
698
+ orientation: "horizontal",
699
+ size: "full",
700
+ className: cn("tw:before:bg-sidebar-border tw:p-2", className)
701
+ });
702
+ //#endregion
703
+ //#region src/components/Sidebar/SidebarTrigger.tsx
704
+ const SidebarTrigger = ({ side = "left", onClick, hideWhenCollapsed = false, className, ...rest }) => {
705
+ const { toggle } = useSidebar(side);
706
+ const handleOnClick = (event) => {
707
+ toggle();
708
+ onClick?.(event);
709
+ };
710
+ return /* @__PURE__ */ jsx(Slot, {
711
+ ...rest,
712
+ onClick: handleOnClick,
713
+ className: cn({ "tw:group-data-[state=collapsed]/sidebar:hidden": hideWhenCollapsed }, className)
714
+ });
715
+ };
716
+ //#endregion
717
+ //#region src/components/Sidebar/Sidebar.tsx
718
+ const Sidebar = ({ children, className, id, side = "left", style, container = false, keepMounted, resizable = false }) => {
719
+ const oppositeSide = side === "left" ? "right" : "left";
720
+ const { setSidebarElement, state, mode, isFill, widths, collapsible, variant, isDragging } = useSidebar(side);
721
+ const { isMounted, completeUnmount } = useTransitionPresence({
722
+ mounted: collapsible !== "off-canvas" || mode !== "collapsed",
723
+ keepMounted
724
+ });
725
+ const { widths: oppositeWidths } = useSidebar(oppositeSide);
726
+ const sidebarInstanceContextValue = useMemo(() => ({
727
+ state,
728
+ mode,
729
+ side
730
+ }), [
731
+ state,
732
+ mode,
733
+ side
734
+ ]);
735
+ const handleTransitionEnd = (event) => {
736
+ if (event.target !== event.currentTarget) return;
737
+ completeUnmount();
738
+ };
739
+ const styles = {
740
+ "--sidebar-floating-padding": `${SidebarWidthInPx.FLOATING_VARIANT_PADDING}px`,
741
+ "--sidebar-width": `${widths.sidebar}px`,
742
+ "--sidebar-width-gap": `${widths.gap}px`,
743
+ "--opposite-sidebar-width": `${oppositeWidths.fill}px`
744
+ };
745
+ if (variant === "none") return null;
746
+ return /* @__PURE__ */ jsx(TooltipProvider, { children: /* @__PURE__ */ jsx(SidebarInstanceContext, {
747
+ value: sidebarInstanceContextValue,
748
+ children: /* @__PURE__ */ jsxs("div", {
749
+ id,
750
+ ref: setSidebarElement,
751
+ "data-state": state,
752
+ "data-side": side,
753
+ "data-mode": mode,
754
+ "data-collapsible": collapsible,
755
+ "data-variant": variant,
756
+ "data-fill": isFill,
757
+ style: styles,
758
+ className: cn("tailwindcss-preflight", "tw:flex", "tw:relative", mode === "expand-on-hover" ? "tw:z-[51]" : "tw:z-50", { "tw:group/sidebar tw:peer/sidebar": !container }, "tw:[&>[data-slot=gap]]:w-(--sidebar-width-gap)", "tw:[&[data-side=right]>[data-slot=gap]]:rotate-180", "tw:[&>[data-slot=sidebar-wrapper]]:w-(--sidebar-width)", "tw:[&[data-side=left]>[data-slot=sidebar-wrapper]]:left-0", "tw:[&[data-side=right]>[data-slot=sidebar-wrapper]]:right-0", "tw:[&[data-state=collapsed][data-collapsible=off-canvas][data-side=left]>[data-slot=sidebar-wrapper]]:-translate-x-full", "tw:[&[data-state=collapsed][data-collapsible=off-canvas][data-side=right]>[data-slot=sidebar-wrapper]]:translate-x-full", "tw:[&[data-variant=sided-floating]>[data-slot=sidebar-wrapper]]:pt-(--sidebar-floating-padding)", "tw:[&[data-variant=sided-floating][data-side=left]>[data-slot=sidebar-wrapper]]:pr-(--sidebar-floating-padding)", "tw:[&[data-variant=sided-floating][data-side=right]>[data-slot=sidebar-wrapper]]:pl-(--sidebar-floating-padding)", "tw:[&[data-variant=floating]>[data-slot=sidebar-wrapper]]:p-(--sidebar-floating-padding)", "tw:[&[data-fill=true]>[data-slot=sidebar-wrapper]]:!w-[calc(100svw-var(--opposite-sidebar-width))]", "tw:[&[data-fill=true][data-variant=floating]>[data-slot=sidebar-wrapper]]:!p-(--sidebar-floating-padding)", "tw:[&[data-fill=true][data-variant=sided-floating][data-side=left]>[data-slot=sidebar-wrapper]>[data-slot=sidebar]]:!rounded-tr-xl", "tw:[&[data-fill=true][data-variant=sided-floating][data-side=right]>[data-slot=sidebar-wrapper]>[data-slot=sidebar]]:!rounded-tl-xl", "tw:[&[data-variant=inset][data-side=left]>[data-slot=sidebar-wrapper]>[data-slot=sidebar]]:border-r", "tw:[&[data-variant=inset][data-side=right]>[data-slot=sidebar-wrapper]>[data-slot=sidebar]]:border-l", "tw:[&[data-variant=floating]>[data-slot=sidebar-wrapper]>[data-slot=sidebar]]:shadow", "tw:[&[data-variant=floating]>[data-slot=sidebar-wrapper]>[data-slot=sidebar]]:rounded-xl", "tw:[&[data-variant=sided-floating]>[data-slot=sidebar-wrapper]>[data-slot=sidebar]]:shadow", "tw:[&[data-variant=sided-floating][data-side=left]>[data-slot=sidebar-wrapper]>[data-slot=sidebar]]:rounded-tr-xl", "tw:[&[data-variant=sided-floating][data-side=right]>[data-slot=sidebar-wrapper]>[data-slot=sidebar]]:rounded-tl-xl", "tw:[&[data-variant=sided-floating][data-side=left]>[data-slot=sidebar-wrapper]>[data-slot=sidebar]]:border-r", "tw:[&[data-variant=sided-floating][data-side=right]>[data-slot=sidebar-wrapper]>[data-slot=sidebar]]:border-l", isDragging ? "tw:transition-none" : "tw:transition-[width,translate,transform] tw:duration-200 tw:ease-linear"),
759
+ children: [/* @__PURE__ */ jsx("div", {
760
+ "data-slot": "gap",
761
+ className: cn("tw:bg-transparent", isDragging ? "" : "tw:transition-[width] tw:duration-200 tw:ease-linear")
762
+ }), /* @__PURE__ */ jsxs("div", {
763
+ "data-slot": "sidebar-wrapper",
764
+ onTransitionEnd: handleTransitionEnd,
765
+ className: cn("tw:fixed", "tw:inset-y-0", "tw:border-neutral-100", isDragging ? "tw:transition-none" : "tw:transition-[width,translate,transform] tw:duration-200 tw:ease-linear", className),
766
+ style,
767
+ children: [resizable && /* @__PURE__ */ jsx(SidebarResizeHandle, { side }), /* @__PURE__ */ jsx("div", {
768
+ "data-slot": "sidebar",
769
+ className: cn("tw:bg-sidebar", "tw:overflow-hidden", "tw:relative", "tw:flex", "tw:flex-col", "tw:size-full", "tw:border-sidebar-border", "tw:group-[]/sidebar:pt-2"),
770
+ children: isMounted ? children : null
771
+ })]
772
+ })]
773
+ })
774
+ }) });
775
+ };
776
+ Sidebar.Header = SidebarHeader;
777
+ Sidebar.Content = SidebarContent;
778
+ Sidebar.Footer = SidebarFooter;
779
+ Sidebar.Trigger = SidebarTrigger;
780
+ Sidebar.FillTrigger = SidebarFillTrigger;
781
+ Sidebar.Separator = SidebarSeparator;
782
+ Sidebar.MenuIcon = SidebarMenuIcon;
783
+ Sidebar.Group = SidebarGroup;
784
+ Sidebar.GroupLabel = SidebarGroupLabel;
785
+ Sidebar.GroupContent = SidebarGroupContent;
786
+ Sidebar.GroupAction = SidebarGroupAction;
787
+ Sidebar.Menu = SidebarMenu;
788
+ Sidebar.MenuItem = SidebarMenuItem;
789
+ Sidebar.MenuButton = SidebarMenuButton;
790
+ Sidebar.MenuAction = SidebarMenuAction;
791
+ Sidebar.SearchInput = SidebarSearchInput;
792
+ Sidebar.MenuCard = SidebarMenuCard;
793
+ Sidebar.MenuBadge = SidebarMenuBadge;
794
+ Sidebar.SubMenu = SidebarMenuSub;
795
+ Sidebar.SubItem = SidebarMenuSubItem;
796
+ //#endregion
797
+ export { Sidebar, SidebarProvider, useOptionalSidebar, useSidebar };
798
+
799
+ //# sourceMappingURL=Sidebar-ROaR_AqC.js.map