@fragments-sdk/ui 0.12.0 → 0.14.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 (675) hide show
  1. package/dist/assets/ui.css +1642 -1679
  2. package/dist/chart.cjs.map +1 -1
  3. package/dist/chart.js.map +1 -1
  4. package/dist/codeblock.cjs +26 -18
  5. package/dist/codeblock.cjs.map +1 -1
  6. package/dist/codeblock.js +26 -18
  7. package/dist/codeblock.js.map +1 -1
  8. package/dist/components/Accordion/Accordion.module.scss.cjs +8 -8
  9. package/dist/components/Accordion/Accordion.module.scss.js +8 -8
  10. package/dist/components/Accordion/index.cjs +17 -6
  11. package/dist/components/Accordion/index.cjs.map +1 -1
  12. package/dist/components/Accordion/index.d.ts +25 -12
  13. package/dist/components/Accordion/index.d.ts.map +1 -1
  14. package/dist/components/Accordion/index.js +17 -6
  15. package/dist/components/Accordion/index.js.map +1 -1
  16. package/dist/components/Alert/Alert.module.scss.cjs +12 -12
  17. package/dist/components/Alert/Alert.module.scss.js +12 -12
  18. package/dist/components/Alert/index.cjs +37 -15
  19. package/dist/components/Alert/index.cjs.map +1 -1
  20. package/dist/components/Alert/index.d.ts +15 -22
  21. package/dist/components/Alert/index.d.ts.map +1 -1
  22. package/dist/components/Alert/index.js +37 -15
  23. package/dist/components/Alert/index.js.map +1 -1
  24. package/dist/components/AppShell/AppShell.module.scss.cjs +14 -14
  25. package/dist/components/AppShell/AppShell.module.scss.js +14 -14
  26. package/dist/components/AppShell/index.cjs +3 -1
  27. package/dist/components/AppShell/index.cjs.map +1 -1
  28. package/dist/components/AppShell/index.d.ts.map +1 -1
  29. package/dist/components/AppShell/index.js +3 -1
  30. package/dist/components/AppShell/index.js.map +1 -1
  31. package/dist/components/Avatar/index.cjs +9 -1
  32. package/dist/components/Avatar/index.cjs.map +1 -1
  33. package/dist/components/Avatar/index.d.ts +2 -0
  34. package/dist/components/Avatar/index.d.ts.map +1 -1
  35. package/dist/components/Avatar/index.js +9 -1
  36. package/dist/components/Avatar/index.js.map +1 -1
  37. package/dist/components/Badge/index.cjs +4 -2
  38. package/dist/components/Badge/index.cjs.map +1 -1
  39. package/dist/components/Badge/index.d.ts +3 -0
  40. package/dist/components/Badge/index.d.ts.map +1 -1
  41. package/dist/components/Badge/index.js +4 -2
  42. package/dist/components/Badge/index.js.map +1 -1
  43. package/dist/components/BentoGrid/BentoGrid.module.scss.cjs +11 -11
  44. package/dist/components/BentoGrid/BentoGrid.module.scss.js +11 -11
  45. package/dist/components/BentoGrid/index.cjs +8 -5
  46. package/dist/components/BentoGrid/index.cjs.map +1 -1
  47. package/dist/components/BentoGrid/index.d.ts +2 -8
  48. package/dist/components/BentoGrid/index.d.ts.map +1 -1
  49. package/dist/components/BentoGrid/index.js +8 -5
  50. package/dist/components/BentoGrid/index.js.map +1 -1
  51. package/dist/components/Box/index.cjs +12 -2
  52. package/dist/components/Box/index.cjs.map +1 -1
  53. package/dist/components/Box/index.d.ts +1 -1
  54. package/dist/components/Box/index.d.ts.map +1 -1
  55. package/dist/components/Box/index.js +12 -2
  56. package/dist/components/Box/index.js.map +1 -1
  57. package/dist/components/Breadcrumbs/index.cjs +3 -1
  58. package/dist/components/Breadcrumbs/index.cjs.map +1 -1
  59. package/dist/components/Breadcrumbs/index.d.ts +3 -1
  60. package/dist/components/Breadcrumbs/index.d.ts.map +1 -1
  61. package/dist/components/Breadcrumbs/index.js +3 -1
  62. package/dist/components/Breadcrumbs/index.js.map +1 -1
  63. package/dist/components/Button/Button.module.scss.cjs +11 -11
  64. package/dist/components/Button/Button.module.scss.js +11 -11
  65. package/dist/components/Button/index.cjs +5 -2
  66. package/dist/components/Button/index.cjs.map +1 -1
  67. package/dist/components/Button/index.d.ts +3 -3
  68. package/dist/components/Button/index.d.ts.map +1 -1
  69. package/dist/components/Button/index.js +5 -2
  70. package/dist/components/Button/index.js.map +1 -1
  71. package/dist/components/ButtonGroup/index.cjs +3 -2
  72. package/dist/components/ButtonGroup/index.cjs.map +1 -1
  73. package/dist/components/ButtonGroup/index.d.ts +1 -2
  74. package/dist/components/ButtonGroup/index.d.ts.map +1 -1
  75. package/dist/components/ButtonGroup/index.js +3 -2
  76. package/dist/components/ButtonGroup/index.js.map +1 -1
  77. package/dist/components/Card/Card.module.scss.cjs +14 -14
  78. package/dist/components/Card/Card.module.scss.js +14 -14
  79. package/dist/components/Card/index.cjs +3 -22
  80. package/dist/components/Card/index.cjs.map +1 -1
  81. package/dist/components/Card/index.d.ts +6 -11
  82. package/dist/components/Card/index.d.ts.map +1 -1
  83. package/dist/components/Card/index.js +3 -22
  84. package/dist/components/Card/index.js.map +1 -1
  85. package/dist/components/Chart/Chart.module.scss.cjs +15 -15
  86. package/dist/components/Chart/Chart.module.scss.js +15 -15
  87. package/dist/components/Chart/index.d.ts +3 -3
  88. package/dist/components/Chart/index.d.ts.map +1 -1
  89. package/dist/components/Checkbox/Checkbox.module.scss.cjs +10 -10
  90. package/dist/components/Checkbox/Checkbox.module.scss.js +10 -10
  91. package/dist/components/Checkbox/index.cjs +11 -4
  92. package/dist/components/Checkbox/index.cjs.map +1 -1
  93. package/dist/components/Checkbox/index.d.ts +6 -0
  94. package/dist/components/Checkbox/index.d.ts.map +1 -1
  95. package/dist/components/Checkbox/index.js +11 -4
  96. package/dist/components/Checkbox/index.js.map +1 -1
  97. package/dist/components/Chip/index.cjs +11 -3
  98. package/dist/components/Chip/index.cjs.map +1 -1
  99. package/dist/components/Chip/index.d.ts +1 -2
  100. package/dist/components/Chip/index.d.ts.map +1 -1
  101. package/dist/components/Chip/index.js +11 -3
  102. package/dist/components/Chip/index.js.map +1 -1
  103. package/dist/components/CodeBlock/CodeBlock.module.scss.cjs +20 -20
  104. package/dist/components/CodeBlock/CodeBlock.module.scss.js +20 -20
  105. package/dist/components/CodeBlock/index.d.ts +8 -2
  106. package/dist/components/CodeBlock/index.d.ts.map +1 -1
  107. package/dist/components/Collapsible/Collapsible.module.scss.cjs +10 -10
  108. package/dist/components/Collapsible/Collapsible.module.scss.js +10 -10
  109. package/dist/components/Collapsible/index.cjs +45 -10
  110. package/dist/components/Collapsible/index.cjs.map +1 -1
  111. package/dist/components/Collapsible/index.d.ts +6 -12
  112. package/dist/components/Collapsible/index.d.ts.map +1 -1
  113. package/dist/components/Collapsible/index.js +45 -10
  114. package/dist/components/Collapsible/index.js.map +1 -1
  115. package/dist/components/Combobox/Combobox.module.scss.cjs +15 -15
  116. package/dist/components/Combobox/Combobox.module.scss.js +15 -15
  117. package/dist/components/Combobox/index.cjs +86 -27
  118. package/dist/components/Combobox/index.cjs.map +1 -1
  119. package/dist/components/Combobox/index.d.ts +40 -23
  120. package/dist/components/Combobox/index.d.ts.map +1 -1
  121. package/dist/components/Combobox/index.js +86 -27
  122. package/dist/components/Combobox/index.js.map +1 -1
  123. package/dist/components/Command/Command.module.scss.cjs +11 -11
  124. package/dist/components/Command/Command.module.scss.js +11 -11
  125. package/dist/components/Command/index.cjs +55 -22
  126. package/dist/components/Command/index.cjs.map +1 -1
  127. package/dist/components/Command/index.d.ts +3 -3
  128. package/dist/components/Command/index.d.ts.map +1 -1
  129. package/dist/components/Command/index.js +55 -22
  130. package/dist/components/Command/index.js.map +1 -1
  131. package/dist/components/ConversationList/ConversationList.module.scss.cjs +10 -10
  132. package/dist/components/ConversationList/ConversationList.module.scss.js +10 -10
  133. package/dist/components/ConversationList/index.cjs +6 -3
  134. package/dist/components/ConversationList/index.cjs.map +1 -1
  135. package/dist/components/ConversationList/index.d.ts +1 -1
  136. package/dist/components/ConversationList/index.d.ts.map +1 -1
  137. package/dist/components/ConversationList/index.js +6 -3
  138. package/dist/components/ConversationList/index.js.map +1 -1
  139. package/dist/components/DataTable/DataTable.module.scss.cjs +26 -26
  140. package/dist/components/DataTable/DataTable.module.scss.js +26 -26
  141. package/dist/components/DataTable/index.cjs +25 -4
  142. package/dist/components/DataTable/index.cjs.map +1 -1
  143. package/dist/components/DataTable/index.d.ts +7 -2
  144. package/dist/components/DataTable/index.d.ts.map +1 -1
  145. package/dist/components/DataTable/index.js +25 -4
  146. package/dist/components/DataTable/index.js.map +1 -1
  147. package/dist/components/DatePicker/DatePicker.module.scss.cjs +26 -26
  148. package/dist/components/DatePicker/DatePicker.module.scss.js +26 -26
  149. package/dist/components/DatePicker/index.d.ts +4 -5
  150. package/dist/components/DatePicker/index.d.ts.map +1 -1
  151. package/dist/components/Dialog/Dialog.module.scss.cjs +14 -14
  152. package/dist/components/Dialog/Dialog.module.scss.js +14 -14
  153. package/dist/components/Dialog/index.cjs +14 -10
  154. package/dist/components/Dialog/index.cjs.map +1 -1
  155. package/dist/components/Dialog/index.d.ts +26 -17
  156. package/dist/components/Dialog/index.d.ts.map +1 -1
  157. package/dist/components/Dialog/index.js +14 -10
  158. package/dist/components/Dialog/index.js.map +1 -1
  159. package/dist/components/Drawer/Drawer.module.scss.cjs +26 -26
  160. package/dist/components/Drawer/Drawer.module.scss.js +26 -26
  161. package/dist/components/Drawer/index.cjs +41 -11
  162. package/dist/components/Drawer/index.cjs.map +1 -1
  163. package/dist/components/Drawer/index.d.ts +11 -13
  164. package/dist/components/Drawer/index.d.ts.map +1 -1
  165. package/dist/components/Drawer/index.js +24 -11
  166. package/dist/components/Drawer/index.js.map +1 -1
  167. package/dist/components/Editor/Editor.module.scss.cjs +17 -17
  168. package/dist/components/Editor/Editor.module.scss.js +17 -17
  169. package/dist/components/Editor/index.cjs +32 -7
  170. package/dist/components/Editor/index.cjs.map +1 -1
  171. package/dist/components/Editor/index.d.ts +16 -3
  172. package/dist/components/Editor/index.d.ts.map +1 -1
  173. package/dist/components/Editor/index.js +32 -7
  174. package/dist/components/Editor/index.js.map +1 -1
  175. package/dist/components/EmptyState/EmptyState.module.scss.cjs +8 -8
  176. package/dist/components/EmptyState/EmptyState.module.scss.js +8 -8
  177. package/dist/components/EmptyState/index.cjs +12 -8
  178. package/dist/components/EmptyState/index.cjs.map +1 -1
  179. package/dist/components/EmptyState/index.d.ts +8 -12
  180. package/dist/components/EmptyState/index.d.ts.map +1 -1
  181. package/dist/components/EmptyState/index.js +12 -8
  182. package/dist/components/EmptyState/index.js.map +1 -1
  183. package/dist/components/Fieldset/index.cjs +2 -2
  184. package/dist/components/Fieldset/index.cjs.map +1 -1
  185. package/dist/components/Fieldset/index.d.ts +2 -3
  186. package/dist/components/Fieldset/index.d.ts.map +1 -1
  187. package/dist/components/Fieldset/index.js +2 -2
  188. package/dist/components/Fieldset/index.js.map +1 -1
  189. package/dist/components/Form/index.cjs +13 -13
  190. package/dist/components/Form/index.cjs.map +1 -1
  191. package/dist/components/Form/index.d.ts +5 -2
  192. package/dist/components/Form/index.d.ts.map +1 -1
  193. package/dist/components/Form/index.js +13 -13
  194. package/dist/components/Form/index.js.map +1 -1
  195. package/dist/components/Grid/Grid.module.scss.cjs +57 -57
  196. package/dist/components/Grid/Grid.module.scss.js +57 -57
  197. package/dist/components/Grid/index.cjs +7 -4
  198. package/dist/components/Grid/index.cjs.map +1 -1
  199. package/dist/components/Grid/index.d.ts +5 -3
  200. package/dist/components/Grid/index.d.ts.map +1 -1
  201. package/dist/components/Grid/index.js +7 -4
  202. package/dist/components/Grid/index.js.map +1 -1
  203. package/dist/components/Header/Header.module.scss.cjs +21 -21
  204. package/dist/components/Header/Header.module.scss.js +21 -21
  205. package/dist/components/Header/index.cjs +61 -23
  206. package/dist/components/Header/index.cjs.map +1 -1
  207. package/dist/components/Header/index.d.ts +27 -34
  208. package/dist/components/Header/index.d.ts.map +1 -1
  209. package/dist/components/Header/index.js +61 -23
  210. package/dist/components/Header/index.js.map +1 -1
  211. package/dist/components/Icon/index.cjs +11 -1
  212. package/dist/components/Icon/index.cjs.map +1 -1
  213. package/dist/components/Icon/index.d.ts +28 -9
  214. package/dist/components/Icon/index.d.ts.map +1 -1
  215. package/dist/components/Icon/index.js +11 -1
  216. package/dist/components/Icon/index.js.map +1 -1
  217. package/dist/components/Image/index.cjs +15 -4
  218. package/dist/components/Image/index.cjs.map +1 -1
  219. package/dist/components/Image/index.d.ts +7 -1
  220. package/dist/components/Image/index.d.ts.map +1 -1
  221. package/dist/components/Image/index.js +15 -4
  222. package/dist/components/Image/index.js.map +1 -1
  223. package/dist/components/Input/Input.module.scss.cjs +13 -13
  224. package/dist/components/Input/Input.module.scss.js +13 -13
  225. package/dist/components/Input/index.cjs +79 -31
  226. package/dist/components/Input/index.cjs.map +1 -1
  227. package/dist/components/Input/index.d.ts +17 -3
  228. package/dist/components/Input/index.d.ts.map +1 -1
  229. package/dist/components/Input/index.js +79 -31
  230. package/dist/components/Input/index.js.map +1 -1
  231. package/dist/components/Link/index.cjs +17 -0
  232. package/dist/components/Link/index.cjs.map +1 -1
  233. package/dist/components/Link/index.d.ts.map +1 -1
  234. package/dist/components/Link/index.js +17 -0
  235. package/dist/components/Link/index.js.map +1 -1
  236. package/dist/components/Listbox/Listbox.module.scss.cjs +8 -8
  237. package/dist/components/Listbox/Listbox.module.scss.js +8 -8
  238. package/dist/components/Listbox/index.cjs +10 -6
  239. package/dist/components/Listbox/index.cjs.map +1 -1
  240. package/dist/components/Listbox/index.d.ts +2 -2
  241. package/dist/components/Listbox/index.d.ts.map +1 -1
  242. package/dist/components/Listbox/index.js +10 -6
  243. package/dist/components/Listbox/index.js.map +1 -1
  244. package/dist/components/Markdown/Markdown.module.scss.cjs +1 -1
  245. package/dist/components/Markdown/Markdown.module.scss.js +1 -1
  246. package/dist/components/Markdown/index.d.ts +4 -2
  247. package/dist/components/Markdown/index.d.ts.map +1 -1
  248. package/dist/components/Menu/Menu.module.scss.cjs +13 -13
  249. package/dist/components/Menu/Menu.module.scss.js +13 -13
  250. package/dist/components/Menu/index.cjs +41 -16
  251. package/dist/components/Menu/index.cjs.map +1 -1
  252. package/dist/components/Menu/index.d.ts +24 -27
  253. package/dist/components/Menu/index.d.ts.map +1 -1
  254. package/dist/components/Menu/index.js +41 -16
  255. package/dist/components/Menu/index.js.map +1 -1
  256. package/dist/components/Message/Message.module.scss.cjs +18 -18
  257. package/dist/components/Message/Message.module.scss.js +18 -18
  258. package/dist/components/NavigationMenu/NavigationMenu.module.scss.cjs +28 -28
  259. package/dist/components/NavigationMenu/NavigationMenu.module.scss.js +28 -28
  260. package/dist/components/NavigationMenu/NavigationMenuContext.cjs.map +1 -1
  261. package/dist/components/NavigationMenu/NavigationMenuContext.d.ts +9 -0
  262. package/dist/components/NavigationMenu/NavigationMenuContext.d.ts.map +1 -1
  263. package/dist/components/NavigationMenu/NavigationMenuContext.js.map +1 -1
  264. package/dist/components/NavigationMenu/index.cjs +92 -21
  265. package/dist/components/NavigationMenu/index.cjs.map +1 -1
  266. package/dist/components/NavigationMenu/index.d.ts +5 -1
  267. package/dist/components/NavigationMenu/index.d.ts.map +1 -1
  268. package/dist/components/NavigationMenu/index.js +92 -21
  269. package/dist/components/NavigationMenu/index.js.map +1 -1
  270. package/dist/components/NavigationMenu/useNavigationMenu.cjs +2 -0
  271. package/dist/components/NavigationMenu/useNavigationMenu.cjs.map +1 -1
  272. package/dist/components/NavigationMenu/useNavigationMenu.d.ts +1 -0
  273. package/dist/components/NavigationMenu/useNavigationMenu.d.ts.map +1 -1
  274. package/dist/components/NavigationMenu/useNavigationMenu.js +2 -0
  275. package/dist/components/NavigationMenu/useNavigationMenu.js.map +1 -1
  276. package/dist/components/Pagination/index.cjs +37 -9
  277. package/dist/components/Pagination/index.cjs.map +1 -1
  278. package/dist/components/Pagination/index.d.ts +2 -3
  279. package/dist/components/Pagination/index.d.ts.map +1 -1
  280. package/dist/components/Pagination/index.js +37 -9
  281. package/dist/components/Pagination/index.js.map +1 -1
  282. package/dist/components/Popover/Popover.module.scss.cjs +10 -10
  283. package/dist/components/Popover/Popover.module.scss.js +10 -10
  284. package/dist/components/Popover/index.cjs +52 -10
  285. package/dist/components/Popover/index.cjs.map +1 -1
  286. package/dist/components/Popover/index.d.ts +22 -16
  287. package/dist/components/Popover/index.d.ts.map +1 -1
  288. package/dist/components/Popover/index.js +35 -10
  289. package/dist/components/Popover/index.js.map +1 -1
  290. package/dist/components/Progress/index.cjs +3 -1
  291. package/dist/components/Progress/index.cjs.map +1 -1
  292. package/dist/components/Progress/index.d.ts.map +1 -1
  293. package/dist/components/Progress/index.js +3 -1
  294. package/dist/components/Progress/index.js.map +1 -1
  295. package/dist/components/Prompt/Prompt.module.scss.cjs +14 -14
  296. package/dist/components/Prompt/Prompt.module.scss.js +14 -14
  297. package/dist/components/Prompt/index.cjs +14 -2
  298. package/dist/components/Prompt/index.cjs.map +1 -1
  299. package/dist/components/Prompt/index.d.ts +8 -5
  300. package/dist/components/Prompt/index.d.ts.map +1 -1
  301. package/dist/components/Prompt/index.js +14 -2
  302. package/dist/components/Prompt/index.js.map +1 -1
  303. package/dist/components/RadioGroup/index.cjs +14 -6
  304. package/dist/components/RadioGroup/index.cjs.map +1 -1
  305. package/dist/components/RadioGroup/index.d.ts +12 -2
  306. package/dist/components/RadioGroup/index.d.ts.map +1 -1
  307. package/dist/components/RadioGroup/index.js +14 -6
  308. package/dist/components/RadioGroup/index.js.map +1 -1
  309. package/dist/components/Select/Select.module.scss.cjs +10 -10
  310. package/dist/components/Select/Select.module.scss.js +10 -10
  311. package/dist/components/Select/index.cjs +43 -29
  312. package/dist/components/Select/index.cjs.map +1 -1
  313. package/dist/components/Select/index.d.ts +12 -11
  314. package/dist/components/Select/index.d.ts.map +1 -1
  315. package/dist/components/Select/index.js +43 -29
  316. package/dist/components/Select/index.js.map +1 -1
  317. package/dist/components/Sidebar/Sidebar.module.scss.cjs +42 -42
  318. package/dist/components/Sidebar/Sidebar.module.scss.js +42 -42
  319. package/dist/components/Sidebar/index.cjs +73 -26
  320. package/dist/components/Sidebar/index.cjs.map +1 -1
  321. package/dist/components/Sidebar/index.d.ts +23 -35
  322. package/dist/components/Sidebar/index.d.ts.map +1 -1
  323. package/dist/components/Sidebar/index.js +73 -26
  324. package/dist/components/Sidebar/index.js.map +1 -1
  325. package/dist/components/Skeleton/index.cjs +6 -3
  326. package/dist/components/Skeleton/index.cjs.map +1 -1
  327. package/dist/components/Skeleton/index.d.ts +3 -7
  328. package/dist/components/Skeleton/index.d.ts.map +1 -1
  329. package/dist/components/Skeleton/index.js +6 -3
  330. package/dist/components/Skeleton/index.js.map +1 -1
  331. package/dist/components/Slider/Slider.module.scss.cjs +13 -10
  332. package/dist/components/Slider/Slider.module.scss.cjs.map +1 -1
  333. package/dist/components/Slider/Slider.module.scss.js +13 -10
  334. package/dist/components/Slider/Slider.module.scss.js.map +1 -1
  335. package/dist/components/Slider/index.cjs +33 -1
  336. package/dist/components/Slider/index.cjs.map +1 -1
  337. package/dist/components/Slider/index.d.ts +2 -0
  338. package/dist/components/Slider/index.d.ts.map +1 -1
  339. package/dist/components/Slider/index.js +33 -1
  340. package/dist/components/Slider/index.js.map +1 -1
  341. package/dist/components/Stack/index.cjs +12 -2
  342. package/dist/components/Stack/index.cjs.map +1 -1
  343. package/dist/components/Stack/index.d.ts +3 -2
  344. package/dist/components/Stack/index.d.ts.map +1 -1
  345. package/dist/components/Stack/index.js +12 -2
  346. package/dist/components/Stack/index.js.map +1 -1
  347. package/dist/components/Table/Table.module.scss.cjs +16 -16
  348. package/dist/components/Table/Table.module.scss.js +16 -16
  349. package/dist/components/Table/index.d.ts +10 -4
  350. package/dist/components/Table/index.d.ts.map +1 -1
  351. package/dist/components/TableOfContents/index.cjs +8 -5
  352. package/dist/components/TableOfContents/index.cjs.map +1 -1
  353. package/dist/components/TableOfContents/index.d.ts +2 -2
  354. package/dist/components/TableOfContents/index.d.ts.map +1 -1
  355. package/dist/components/TableOfContents/index.js +8 -5
  356. package/dist/components/TableOfContents/index.js.map +1 -1
  357. package/dist/components/Tabs/Tabs.module.scss.cjs +9 -9
  358. package/dist/components/Tabs/Tabs.module.scss.js +9 -9
  359. package/dist/components/Tabs/index.cjs +9 -6
  360. package/dist/components/Tabs/index.cjs.map +1 -1
  361. package/dist/components/Tabs/index.d.ts +4 -1
  362. package/dist/components/Tabs/index.d.ts.map +1 -1
  363. package/dist/components/Tabs/index.js +9 -6
  364. package/dist/components/Tabs/index.js.map +1 -1
  365. package/dist/components/Textarea/index.cjs +61 -43
  366. package/dist/components/Textarea/index.cjs.map +1 -1
  367. package/dist/components/Textarea/index.d.ts +9 -1
  368. package/dist/components/Textarea/index.d.ts.map +1 -1
  369. package/dist/components/Textarea/index.js +61 -43
  370. package/dist/components/Textarea/index.js.map +1 -1
  371. package/dist/components/Theme/index.cjs +3 -1
  372. package/dist/components/Theme/index.cjs.map +1 -1
  373. package/dist/components/Theme/index.d.ts +2 -4
  374. package/dist/components/Theme/index.d.ts.map +1 -1
  375. package/dist/components/Theme/index.js +3 -1
  376. package/dist/components/Theme/index.js.map +1 -1
  377. package/dist/components/ThinkingIndicator/ThinkingIndicator.module.scss.cjs +22 -22
  378. package/dist/components/ThinkingIndicator/ThinkingIndicator.module.scss.js +22 -22
  379. package/dist/components/Toast/Toast.module.scss.cjs +20 -20
  380. package/dist/components/Toast/Toast.module.scss.js +20 -20
  381. package/dist/components/Toast/index.cjs +15 -14
  382. package/dist/components/Toast/index.cjs.map +1 -1
  383. package/dist/components/Toast/index.d.ts +9 -5
  384. package/dist/components/Toast/index.d.ts.map +1 -1
  385. package/dist/components/Toast/index.js +15 -14
  386. package/dist/components/Toast/index.js.map +1 -1
  387. package/dist/components/Toggle/Toggle.module.scss.cjs +11 -11
  388. package/dist/components/Toggle/Toggle.module.scss.js +11 -11
  389. package/dist/components/Toggle/index.cjs +1 -1
  390. package/dist/components/Toggle/index.cjs.map +1 -1
  391. package/dist/components/Toggle/index.js +1 -1
  392. package/dist/components/Toggle/index.js.map +1 -1
  393. package/dist/components/ToggleGroup/ToggleGroup.module.scss.cjs +17 -17
  394. package/dist/components/ToggleGroup/ToggleGroup.module.scss.js +17 -17
  395. package/dist/components/ToggleGroup/index.cjs +27 -8
  396. package/dist/components/ToggleGroup/index.cjs.map +1 -1
  397. package/dist/components/ToggleGroup/index.d.ts +8 -3
  398. package/dist/components/ToggleGroup/index.d.ts.map +1 -1
  399. package/dist/components/ToggleGroup/index.js +27 -8
  400. package/dist/components/ToggleGroup/index.js.map +1 -1
  401. package/dist/components/Tooltip/Tooltip.module.scss.cjs +3 -3
  402. package/dist/components/Tooltip/Tooltip.module.scss.js +3 -3
  403. package/dist/components/Tooltip/index.cjs +32 -10
  404. package/dist/components/Tooltip/index.cjs.map +1 -1
  405. package/dist/components/Tooltip/index.d.ts +3 -1
  406. package/dist/components/Tooltip/index.d.ts.map +1 -1
  407. package/dist/components/Tooltip/index.js +32 -10
  408. package/dist/components/Tooltip/index.js.map +1 -1
  409. package/dist/components/VisuallyHidden/index.cjs +10 -2
  410. package/dist/components/VisuallyHidden/index.cjs.map +1 -1
  411. package/dist/components/VisuallyHidden/index.d.ts +1 -1
  412. package/dist/components/VisuallyHidden/index.d.ts.map +1 -1
  413. package/dist/components/VisuallyHidden/index.js +10 -2
  414. package/dist/components/VisuallyHidden/index.js.map +1 -1
  415. package/dist/datepicker.cjs +32 -11
  416. package/dist/datepicker.cjs.map +1 -1
  417. package/dist/datepicker.js +32 -11
  418. package/dist/datepicker.js.map +1 -1
  419. package/dist/index.cjs.map +1 -1
  420. package/dist/index.d.ts +2 -1
  421. package/dist/index.d.ts.map +1 -1
  422. package/dist/index.js.map +1 -1
  423. package/dist/markdown.cjs +5 -5
  424. package/dist/markdown.cjs.map +1 -1
  425. package/dist/markdown.js +5 -5
  426. package/dist/markdown.js.map +1 -1
  427. package/dist/table.cjs +19 -3
  428. package/dist/table.cjs.map +1 -1
  429. package/dist/table.js +19 -3
  430. package/dist/table.js.map +1 -1
  431. package/fragments.json +1 -1
  432. package/package.json +2 -2
  433. package/src/blocks/AccountSettings.block.ts +1 -1
  434. package/src/blocks/ActivityFeed.block.ts +1 -1
  435. package/src/blocks/ActivityFeedSkeleton.block.ts +1 -1
  436. package/src/blocks/BlogEditor.block.ts +1 -1
  437. package/src/blocks/ChatInterface.block.ts +1 -1
  438. package/src/blocks/ChatMessages.block.ts +1 -1
  439. package/src/blocks/CheckoutForm.block.ts +1 -1
  440. package/src/blocks/CommandPalette.block.ts +1 -1
  441. package/src/blocks/ContactForm.block.ts +1 -1
  442. package/src/blocks/DashboardLayout.block.ts +1 -1
  443. package/src/blocks/DashboardPage.block.ts +1 -1
  444. package/src/blocks/DashboardSkeleton.block.ts +1 -1
  445. package/src/blocks/DataTable.block.ts +1 -1
  446. package/src/blocks/EmptyState.block.ts +1 -1
  447. package/src/blocks/FAQSection.block.ts +1 -1
  448. package/src/blocks/FeatureGrid.block.ts +1 -1
  449. package/src/blocks/HeroSection.block.ts +1 -1
  450. package/src/blocks/LoginForm.block.ts +1 -1
  451. package/src/blocks/NavigationHeader.block.ts +1 -1
  452. package/src/blocks/PaginatedTable.block.ts +1 -1
  453. package/src/blocks/PricingComparison.block.ts +1 -1
  454. package/src/blocks/ProductCard.block.ts +1 -1
  455. package/src/blocks/RegistrationForm.block.ts +1 -1
  456. package/src/blocks/SettingsDrawer.block.ts +1 -1
  457. package/src/blocks/SettingsPanel.block.ts +1 -1
  458. package/src/blocks/ShoppingCart.block.ts +1 -1
  459. package/src/blocks/StatsCard.block.ts +1 -1
  460. package/src/blocks/StatsCardSkeleton.block.ts +1 -1
  461. package/src/blocks/TableSkeleton.block.ts +1 -1
  462. package/src/blocks/ThinkingStates.block.ts +1 -1
  463. package/src/components/Accordion/Accordion.fragment.tsx +7 -7
  464. package/src/components/Accordion/Accordion.module.scss +2 -2
  465. package/src/components/Accordion/Accordion.test.tsx +41 -5
  466. package/src/components/Accordion/index.tsx +41 -14
  467. package/src/components/Alert/Alert.fragment.tsx +5 -1
  468. package/src/components/Alert/Alert.module.scss +1 -1
  469. package/src/components/Alert/Alert.test.tsx +25 -0
  470. package/src/components/Alert/index.tsx +49 -30
  471. package/src/components/AppShell/AppShell.fragment.tsx +1 -1
  472. package/src/components/AppShell/AppShell.module.scss +5 -5
  473. package/src/components/AppShell/AppShell.test.tsx +12 -0
  474. package/src/components/AppShell/index.tsx +2 -0
  475. package/src/components/Avatar/Avatar.fragment.tsx +7 -1
  476. package/src/components/Avatar/Avatar.test.tsx +24 -2
  477. package/src/components/Avatar/index.tsx +13 -1
  478. package/src/components/Badge/Badge.fragment.tsx +16 -1
  479. package/src/components/Badge/Badge.test.tsx +8 -1
  480. package/src/components/Badge/index.tsx +7 -2
  481. package/src/components/BentoGrid/BentoGrid.fragment.tsx +3 -1
  482. package/src/components/BentoGrid/BentoGrid.module.scss +52 -16
  483. package/src/components/BentoGrid/BentoGrid.test.tsx +20 -0
  484. package/src/components/BentoGrid/index.tsx +9 -12
  485. package/src/components/Box/Box.fragment.tsx +3 -1
  486. package/src/components/Box/Box.test.tsx +14 -0
  487. package/src/components/Box/index.tsx +8 -2
  488. package/src/components/Breadcrumbs/Breadcrumbs.fragment.tsx +19 -1
  489. package/src/components/Breadcrumbs/Breadcrumbs.test.tsx +13 -0
  490. package/src/components/Breadcrumbs/index.tsx +5 -1
  491. package/src/components/Button/Button.fragment.tsx +28 -6
  492. package/src/components/Button/Button.module.scss +3 -3
  493. package/src/components/Button/Button.test.tsx +11 -0
  494. package/src/components/Button/index.tsx +16 -6
  495. package/src/components/ButtonGroup/ButtonGroup.fragment.tsx +4 -2
  496. package/src/components/ButtonGroup/ButtonGroup.test.tsx +10 -0
  497. package/src/components/ButtonGroup/index.tsx +3 -3
  498. package/src/components/Card/Card.fragment.tsx +24 -9
  499. package/src/components/Card/Card.module.scss +8 -8
  500. package/src/components/Card/Card.test.tsx +4 -5
  501. package/src/components/Card/index.tsx +8 -38
  502. package/src/components/Chart/Chart.fragment.tsx +5 -3
  503. package/src/components/Chart/Chart.module.scss +1 -1
  504. package/src/components/Chart/index.tsx +12 -10
  505. package/src/components/Checkbox/Checkbox.fragment.tsx +27 -1
  506. package/src/components/Checkbox/Checkbox.module.scss +3 -3
  507. package/src/components/Checkbox/index.tsx +16 -3
  508. package/src/components/Chip/Chip.fragment.tsx +20 -3
  509. package/src/components/Chip/Chip.test.tsx +28 -0
  510. package/src/components/Chip/index.tsx +14 -6
  511. package/src/components/CodeBlock/CodeBlock.fragment.tsx +3 -1
  512. package/src/components/CodeBlock/CodeBlock.module.scss +9 -9
  513. package/src/components/CodeBlock/CodeBlock.test.tsx +21 -0
  514. package/src/components/CodeBlock/index.tsx +23 -9
  515. package/src/components/Collapsible/Collapsible.fragment.tsx +1 -1
  516. package/src/components/Collapsible/Collapsible.module.scss +1 -1
  517. package/src/components/Collapsible/Collapsible.test.tsx +41 -0
  518. package/src/components/Collapsible/index.tsx +53 -16
  519. package/src/components/ColorPicker/ColorPicker.fragment.tsx +1 -1
  520. package/src/components/Combobox/Combobox.fragment.tsx +63 -9
  521. package/src/components/Combobox/Combobox.module.scss +4 -7
  522. package/src/components/Combobox/Combobox.test.tsx +79 -3
  523. package/src/components/Combobox/index.tsx +140 -51
  524. package/src/components/Command/Command.fragment.tsx +3 -3
  525. package/src/components/Command/Command.module.scss +5 -5
  526. package/src/components/Command/Command.test.tsx +110 -0
  527. package/src/components/Command/index.tsx +66 -20
  528. package/src/components/ConversationList/ConversationList.fragment.tsx +4 -3
  529. package/src/components/ConversationList/ConversationList.module.scss +5 -5
  530. package/src/components/ConversationList/ConversationList.test.tsx +21 -0
  531. package/src/components/ConversationList/index.tsx +8 -4
  532. package/src/components/DataTable/DataTable.fragment.tsx +12 -2
  533. package/src/components/DataTable/DataTable.module.scss +3 -3
  534. package/src/components/DataTable/DataTable.test.tsx +34 -4
  535. package/src/components/DataTable/index.tsx +44 -6
  536. package/src/components/DatePicker/DatePicker.fragment.tsx +3 -1
  537. package/src/components/DatePicker/DatePicker.module.scss +1 -1
  538. package/src/components/DatePicker/DatePicker.test.tsx +96 -0
  539. package/src/components/DatePicker/index.tsx +38 -16
  540. package/src/components/Dialog/Dialog.fragment.tsx +28 -1
  541. package/src/components/Dialog/Dialog.module.scss +6 -6
  542. package/src/components/Dialog/Dialog.test.tsx +23 -0
  543. package/src/components/Dialog/index.tsx +38 -21
  544. package/src/components/Drawer/Drawer.fragment.tsx +4 -1
  545. package/src/components/Drawer/Drawer.module.scss +3 -3
  546. package/src/components/Drawer/Drawer.test.tsx +35 -0
  547. package/src/components/Drawer/index.tsx +29 -18
  548. package/src/components/Editor/Editor.fragment.tsx +10 -3
  549. package/src/components/Editor/Editor.module.scss +4 -4
  550. package/src/components/Editor/Editor.test.tsx +68 -1
  551. package/src/components/Editor/index.tsx +60 -9
  552. package/src/components/EmptyState/EmptyState.fragment.tsx +3 -1
  553. package/src/components/EmptyState/EmptyState.module.scss +3 -3
  554. package/src/components/EmptyState/EmptyState.test.tsx +18 -0
  555. package/src/components/EmptyState/index.tsx +16 -16
  556. package/src/components/Field/Field.fragment.tsx +1 -1
  557. package/src/components/Fieldset/Fieldset.fragment.tsx +3 -1
  558. package/src/components/Fieldset/Fieldset.test.tsx +14 -0
  559. package/src/components/Fieldset/index.tsx +3 -4
  560. package/src/components/Form/Form.fragment.tsx +12 -7
  561. package/src/components/Form/index.tsx +13 -17
  562. package/src/components/Grid/Grid.fragment.tsx +4 -3
  563. package/src/components/Grid/Grid.module.scss +3 -3
  564. package/src/components/Grid/index.tsx +11 -6
  565. package/src/components/Header/Header.fragment.tsx +31 -1
  566. package/src/components/Header/Header.module.scss +6 -6
  567. package/src/components/Header/Header.test.tsx +95 -1
  568. package/src/components/Header/index.tsx +95 -46
  569. package/src/components/Icon/Icon.fragment.tsx +21 -8
  570. package/src/components/Icon/Icon.test.tsx +27 -3
  571. package/src/components/Icon/index.tsx +39 -15
  572. package/src/components/Image/Image.fragment.tsx +15 -1
  573. package/src/components/Image/Image.test.tsx +32 -1
  574. package/src/components/Image/index.tsx +24 -4
  575. package/src/components/Input/Input.fragment.tsx +49 -1
  576. package/src/components/Input/Input.module.scss +4 -2
  577. package/src/components/Input/Input.test.tsx +3 -3
  578. package/src/components/Input/index.tsx +103 -37
  579. package/src/components/Link/Link.fragment.tsx +7 -6
  580. package/src/components/Link/Link.test.tsx +17 -1
  581. package/src/components/Link/index.tsx +22 -0
  582. package/src/components/List/List.fragment.tsx +1 -1
  583. package/src/components/Listbox/Listbox.fragment.tsx +3 -3
  584. package/src/components/Listbox/Listbox.module.scss +4 -4
  585. package/src/components/Listbox/Listbox.test.tsx +14 -0
  586. package/src/components/Listbox/index.tsx +12 -2
  587. package/src/components/Loading/Loading.fragment.tsx +1 -1
  588. package/src/components/Markdown/Markdown.fragment.tsx +5 -3
  589. package/src/components/Markdown/Markdown.module.scss +5 -5
  590. package/src/components/Markdown/Markdown.test.tsx +6 -0
  591. package/src/components/Markdown/index.tsx +12 -9
  592. package/src/components/Menu/Menu.fragment.tsx +19 -1
  593. package/src/components/Menu/Menu.module.scss +11 -11
  594. package/src/components/Menu/index.tsx +50 -33
  595. package/src/components/Message/Message.fragment.tsx +1 -1
  596. package/src/components/Message/Message.module.scss +3 -3
  597. package/src/components/NavigationMenu/NavigationMenu.fragment.tsx +10 -2
  598. package/src/components/NavigationMenu/NavigationMenu.module.scss +7 -7
  599. package/src/components/NavigationMenu/NavigationMenu.test.tsx +88 -4
  600. package/src/components/NavigationMenu/NavigationMenuContext.ts +17 -0
  601. package/src/components/NavigationMenu/index.tsx +119 -20
  602. package/src/components/NavigationMenu/useNavigationMenu.ts +4 -0
  603. package/src/components/Pagination/Pagination.fragment.tsx +4 -1
  604. package/src/components/Pagination/Pagination.test.tsx +39 -0
  605. package/src/components/Pagination/index.tsx +36 -10
  606. package/src/components/Popover/Popover.fragment.tsx +18 -1
  607. package/src/components/Popover/Popover.module.scss +13 -13
  608. package/src/components/Popover/Popover.test.tsx +23 -0
  609. package/src/components/Popover/index.tsx +44 -22
  610. package/src/components/Progress/Progress.fragment.tsx +3 -1
  611. package/src/components/Progress/Progress.test.tsx +8 -0
  612. package/src/components/Progress/index.tsx +9 -1
  613. package/src/components/Prompt/Prompt.fragment.tsx +4 -1
  614. package/src/components/Prompt/Prompt.module.scss +3 -3
  615. package/src/components/Prompt/Prompt.test.tsx +19 -0
  616. package/src/components/Prompt/index.tsx +24 -6
  617. package/src/components/RadioGroup/RadioGroup.fragment.tsx +31 -1
  618. package/src/components/RadioGroup/index.tsx +22 -3
  619. package/src/components/ScrollArea/ScrollArea.fragment.tsx +1 -1
  620. package/src/components/Select/Select.fragment.tsx +30 -3
  621. package/src/components/Select/Select.module.scss +3 -3
  622. package/src/components/Select/Select.test.tsx +41 -0
  623. package/src/components/Select/index.tsx +55 -44
  624. package/src/components/Separator/Separator.fragment.tsx +1 -1
  625. package/src/components/Sidebar/Sidebar.fragment.tsx +3 -1
  626. package/src/components/Sidebar/Sidebar.module.scss +20 -20
  627. package/src/components/Sidebar/Sidebar.test.tsx +108 -4
  628. package/src/components/Sidebar/index.tsx +93 -51
  629. package/src/components/Skeleton/Skeleton.fragment.tsx +3 -1
  630. package/src/components/Skeleton/Skeleton.test.tsx +12 -0
  631. package/src/components/Skeleton/index.tsx +6 -7
  632. package/src/components/Slider/Slider.fragment.tsx +21 -1
  633. package/src/components/Slider/Slider.module.scss +31 -0
  634. package/src/components/Slider/Slider.test.tsx +16 -0
  635. package/src/components/Slider/index.tsx +40 -1
  636. package/src/components/Stack/Stack.fragment.tsx +3 -1
  637. package/src/components/Stack/index.tsx +13 -6
  638. package/src/components/Table/Table.fragment.tsx +43 -2
  639. package/src/components/Table/Table.module.scss +2 -2
  640. package/src/components/Table/index.tsx +23 -5
  641. package/src/components/TableOfContents/TableOfContents.fragment.tsx +4 -2
  642. package/src/components/TableOfContents/TableOfContents.test.tsx +34 -9
  643. package/src/components/TableOfContents/index.tsx +9 -5
  644. package/src/components/Tabs/Tabs.fragment.tsx +33 -8
  645. package/src/components/Tabs/Tabs.module.scss +8 -8
  646. package/src/components/Tabs/index.tsx +22 -14
  647. package/src/components/Text/Text.fragment.tsx +1 -1
  648. package/src/components/Textarea/Textarea.fragment.tsx +27 -1
  649. package/src/components/Textarea/index.tsx +39 -14
  650. package/src/components/Theme/Theme.fragment.tsx +3 -1
  651. package/src/components/Theme/Theme.test.tsx +11 -0
  652. package/src/components/Theme/index.tsx +3 -3
  653. package/src/components/ThinkingIndicator/ThinkingIndicator.fragment.tsx +1 -1
  654. package/src/components/ThinkingIndicator/ThinkingIndicator.module.scss +1 -1
  655. package/src/components/Toast/Toast.fragment.tsx +6 -3
  656. package/src/components/Toast/Toast.module.scss +8 -6
  657. package/src/components/Toast/index.tsx +24 -20
  658. package/src/components/Toggle/Toggle.fragment.tsx +1 -1
  659. package/src/components/Toggle/Toggle.module.scss +61 -21
  660. package/src/components/Toggle/index.tsx +3 -3
  661. package/src/components/ToggleGroup/ToggleGroup.fragment.tsx +33 -8
  662. package/src/components/ToggleGroup/ToggleGroup.module.scss +3 -3
  663. package/src/components/ToggleGroup/index.tsx +29 -9
  664. package/src/components/Tooltip/Tooltip.fragment.tsx +16 -1
  665. package/src/components/Tooltip/Tooltip.module.scss +1 -1
  666. package/src/components/Tooltip/Tooltip.test.tsx +17 -0
  667. package/src/components/Tooltip/index.tsx +60 -31
  668. package/src/components/VisuallyHidden/VisuallyHidden.fragment.tsx +3 -1
  669. package/src/components/VisuallyHidden/VisuallyHidden.test.tsx +12 -0
  670. package/src/components/VisuallyHidden/index.tsx +7 -3
  671. package/src/index.ts +3 -2
  672. package/src/tokens/_computed.scss +1 -19
  673. package/src/tokens/_density.scss +0 -42
  674. package/src/tokens/_mixins.scss +4 -0
  675. package/src/tokens/_variables.scss +12 -114
@@ -1,45 +1,45 @@
1
- const root = "_root_1owm0_1";
2
- const mobile = "_mobile_1owm0_14";
3
- const collapsed = "_collapsed_1owm0_20";
4
- const header = "_header_1owm0_23";
5
- const nav = "_nav_1owm0_27";
6
- const sectionLabel = "_sectionLabel_1owm0_30";
7
- const itemLabel = "_itemLabel_1owm0_41";
8
- const itemBadge = "_itemBadge_1owm0_42";
9
- const itemChevron = "_itemChevron_1owm0_43";
10
- const item = "_item_1owm0_41";
11
- const itemIcon = "_itemIcon_1owm0_51";
12
- const footer = "_footer_1owm0_54";
13
- const collapseToggle = "_collapseToggle_1owm0_58";
14
- const collapsedNoIcons = "_collapsedNoIcons_1owm0_62";
15
- const collapseToggleFloating = "_collapseToggleFloating_1owm0_71";
16
- const positionRight = "_positionRight_1owm0_85";
17
- const navScrollArea = "_navScrollArea_1owm0_112";
18
- const section = "_section_1owm0_30";
19
- const sectionHeader = "_sectionHeader_1owm0_121";
20
- const sectionTrigger = "_sectionTrigger_1owm0_128";
21
- const sectionActionWrapper = "_sectionActionWrapper_1owm0_144";
22
- const sectionAction = "_sectionAction_1owm0_144";
23
- const sectionList = "_sectionList_1owm0_190";
24
- const sectionCollapsible = "_sectionCollapsible_1owm0_196";
25
- const itemWrapper = "_itemWrapper_1owm0_209";
26
- const itemDisabled = "_itemDisabled_1owm0_253";
27
- const itemActive = "_itemActive_1owm0_262";
28
- const itemExpanded = "_itemExpanded_1owm0_342";
29
- const submenu = "_submenu_1owm0_346";
30
- const submenuWrapper = "_submenuWrapper_1owm0_356";
31
- const subItemWrapper = "_subItemWrapper_1owm0_364";
32
- const subItem = "_subItem_1owm0_364";
33
- const subItemDisabled = "_subItemDisabled_1owm0_421";
34
- const subItemActive = "_subItemActive_1owm0_430";
35
- const trigger = "_trigger_1owm0_452";
36
- const overlay = "_overlay_1owm0_493";
37
- const offcanvasCollapsed = "_offcanvasCollapsed_1owm0_563";
38
- const rail = "_rail_1owm0_570";
39
- const railCollapsed = "_railCollapsed_1owm0_638";
40
- const menuSkeleton = "_menuSkeleton_1owm0_642";
41
- const skeletonItem = "_skeletonItem_1owm0_649";
42
- const skeletonLabel = "_skeletonLabel_1owm0_657";
1
+ const root = "_root_1kyk4_1";
2
+ const mobile = "_mobile_1kyk4_14";
3
+ const collapsed = "_collapsed_1kyk4_20";
4
+ const header = "_header_1kyk4_23";
5
+ const nav = "_nav_1kyk4_27";
6
+ const sectionLabel = "_sectionLabel_1kyk4_30";
7
+ const itemLabel = "_itemLabel_1kyk4_41";
8
+ const itemBadge = "_itemBadge_1kyk4_42";
9
+ const itemChevron = "_itemChevron_1kyk4_43";
10
+ const item = "_item_1kyk4_41";
11
+ const itemIcon = "_itemIcon_1kyk4_51";
12
+ const footer = "_footer_1kyk4_54";
13
+ const collapseToggle = "_collapseToggle_1kyk4_58";
14
+ const collapsedNoIcons = "_collapsedNoIcons_1kyk4_62";
15
+ const collapseToggleFloating = "_collapseToggleFloating_1kyk4_71";
16
+ const positionRight = "_positionRight_1kyk4_85";
17
+ const navScrollArea = "_navScrollArea_1kyk4_112";
18
+ const section = "_section_1kyk4_30";
19
+ const sectionHeader = "_sectionHeader_1kyk4_121";
20
+ const sectionTrigger = "_sectionTrigger_1kyk4_128";
21
+ const sectionActionWrapper = "_sectionActionWrapper_1kyk4_144";
22
+ const sectionAction = "_sectionAction_1kyk4_144";
23
+ const sectionList = "_sectionList_1kyk4_190";
24
+ const sectionCollapsible = "_sectionCollapsible_1kyk4_196";
25
+ const itemWrapper = "_itemWrapper_1kyk4_209";
26
+ const itemDisabled = "_itemDisabled_1kyk4_253";
27
+ const itemActive = "_itemActive_1kyk4_262";
28
+ const itemExpanded = "_itemExpanded_1kyk4_342";
29
+ const submenu = "_submenu_1kyk4_346";
30
+ const submenuWrapper = "_submenuWrapper_1kyk4_356";
31
+ const subItemWrapper = "_subItemWrapper_1kyk4_364";
32
+ const subItem = "_subItem_1kyk4_364";
33
+ const subItemDisabled = "_subItemDisabled_1kyk4_421";
34
+ const subItemActive = "_subItemActive_1kyk4_430";
35
+ const trigger = "_trigger_1kyk4_452";
36
+ const overlay = "_overlay_1kyk4_493";
37
+ const offcanvasCollapsed = "_offcanvasCollapsed_1kyk4_563";
38
+ const rail = "_rail_1kyk4_570";
39
+ const railCollapsed = "_railCollapsed_1kyk4_638";
40
+ const menuSkeleton = "_menuSkeleton_1kyk4_642";
41
+ const skeletonItem = "_skeletonItem_1kyk4_649";
42
+ const skeletonLabel = "_skeletonLabel_1kyk4_657";
43
43
  const styles = {
44
44
  root,
45
45
  mobile,
@@ -26,6 +26,13 @@ function _interopNamespaceDefault(e) {
26
26
  return Object.freeze(n);
27
27
  }
28
28
  const React__namespace = /* @__PURE__ */ _interopNamespaceDefault(React);
29
+ function composeEventHandlers(userHandler, internalHandler) {
30
+ return (event) => {
31
+ userHandler == null ? void 0 : userHandler(event);
32
+ if (event.defaultPrevented) return;
33
+ internalHandler(event);
34
+ };
35
+ }
29
36
  function MenuIcon() {
30
37
  return /* @__PURE__ */ jsxRuntime.jsx(
31
38
  "svg",
@@ -370,16 +377,26 @@ function SidebarRoot({
370
377
  );
371
378
  return /* @__PURE__ */ jsxRuntime.jsx(SidebarContext.Provider, { value: contextValue, children: content });
372
379
  }
373
- function SidebarHeader({ children, collapsedContent, className }) {
380
+ function SidebarHeader({
381
+ children,
382
+ collapsedContent,
383
+ className,
384
+ ...htmlProps
385
+ }) {
374
386
  const { collapsed, isMobile } = useSidebarContext();
375
387
  const isCollapsed = collapsed && !isMobile;
376
388
  const classes = [Sidebar_module.default.header, className].filter(Boolean).join(" ");
377
389
  const content = isCollapsed && collapsedContent ? collapsedContent : children;
378
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: classes, children: content });
390
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { ...htmlProps, className: classes, children: content });
379
391
  }
380
- function SidebarNav({ children, "aria-label": ariaLabel = "Main navigation", className }) {
392
+ function SidebarNav({
393
+ children,
394
+ "aria-label": ariaLabel = "Main navigation",
395
+ className,
396
+ ...htmlProps
397
+ }) {
381
398
  const classes = [Sidebar_module.default.nav, className].filter(Boolean).join(" ");
382
- return /* @__PURE__ */ jsxRuntime.jsx("nav", { className: classes, "aria-label": ariaLabel, children: /* @__PURE__ */ jsxRuntime.jsx(index$2.ScrollArea, { orientation: "vertical", showFades: true, className: Sidebar_module.default.navScrollArea, children }) });
399
+ return /* @__PURE__ */ jsxRuntime.jsx("nav", { ...htmlProps, className: classes, "aria-label": ariaLabel, children: /* @__PURE__ */ jsxRuntime.jsx(index$2.ScrollArea, { orientation: "vertical", showFades: true, className: Sidebar_module.default.navScrollArea, children }) });
383
400
  }
384
401
  function SidebarSection({
385
402
  children,
@@ -387,7 +404,8 @@ function SidebarSection({
387
404
  action,
388
405
  collapsible: isCollapsibleProp = false,
389
406
  defaultOpen = true,
390
- className
407
+ className,
408
+ ...htmlProps
391
409
  }) {
392
410
  const { collapsed, isMobile } = useSidebarContext();
393
411
  const classes = [
@@ -398,7 +416,7 @@ function SidebarSection({
398
416
  const showAction = action && (!collapsed || isMobile);
399
417
  const isCollapsible = isCollapsibleProp && showLabel;
400
418
  if (!isCollapsible) {
401
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: classes, role: "group", "aria-label": label, children: [
419
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { ...htmlProps, className: classes, role: "group", "aria-label": label, children: [
402
420
  (showLabel || showAction) && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: Sidebar_module.default.sectionHeader, children: [
403
421
  showLabel && /* @__PURE__ */ jsxRuntime.jsx("div", { className: Sidebar_module.default.sectionLabel, children: label }),
404
422
  showAction && /* @__PURE__ */ jsxRuntime.jsx("div", { className: Sidebar_module.default.sectionActionWrapper, children: action })
@@ -406,7 +424,7 @@ function SidebarSection({
406
424
  /* @__PURE__ */ jsxRuntime.jsx("ul", { className: Sidebar_module.default.sectionList, children })
407
425
  ] });
408
426
  }
409
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: classes, role: "group", "aria-label": label, children: /* @__PURE__ */ jsxRuntime.jsxs(index$1.Collapsible, { defaultOpen, className: Sidebar_module.default.sectionCollapsible, children: [
427
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { ...htmlProps, className: classes, role: "group", "aria-label": label, children: /* @__PURE__ */ jsxRuntime.jsxs(index$1.Collapsible, { defaultOpen, className: Sidebar_module.default.sectionCollapsible, children: [
410
428
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: Sidebar_module.default.sectionHeader, children: [
411
429
  /* @__PURE__ */ jsxRuntime.jsx(
412
430
  index$1.Collapsible.Trigger,
@@ -425,15 +443,17 @@ function SidebarSectionAction({
425
443
  children,
426
444
  onClick,
427
445
  "aria-label": ariaLabel,
428
- className
446
+ className,
447
+ ...htmlProps
429
448
  }) {
430
449
  const classes = [Sidebar_module.default.sectionAction, className].filter(Boolean).join(" ");
431
450
  return /* @__PURE__ */ jsxRuntime.jsx(
432
451
  "button",
433
452
  {
434
453
  type: "button",
454
+ ...htmlProps,
435
455
  className: classes,
436
- onClick,
456
+ onClick: (event) => onClick == null ? void 0 : onClick(event),
437
457
  "aria-label": ariaLabel,
438
458
  children
439
459
  }
@@ -480,7 +500,7 @@ function SidebarItem({
480
500
  e.preventDefault();
481
501
  setExpanded(!expanded);
482
502
  }
483
- onClick == null ? void 0 : onClick();
503
+ onClick == null ? void 0 : onClick(e);
484
504
  };
485
505
  let labelText;
486
506
  if (asChild && React__namespace.isValidElement(children)) {
@@ -506,11 +526,16 @@ function SidebarItem({
506
526
  };
507
527
  let itemElement;
508
528
  if (asChild && React__namespace.isValidElement(children)) {
529
+ const childProps = children.props;
509
530
  itemElement = React__namespace.cloneElement(children, {
510
531
  ...itemProps,
511
532
  ...rest,
533
+ onClick: composeEventHandlers(
534
+ childProps.onClick,
535
+ (event) => handleClick(event)
536
+ ),
512
537
  // Merge classNames
513
- className: [classes, children.props.className].filter(Boolean).join(" "),
538
+ className: [classes, childProps.className].filter(Boolean).join(" "),
514
539
  children: itemContent
515
540
  });
516
541
  } else if (href) {
@@ -549,7 +574,7 @@ function SidebarSubItem({
549
574
  e.preventDefault();
550
575
  return;
551
576
  }
552
- onClick == null ? void 0 : onClick();
577
+ onClick == null ? void 0 : onClick(e);
553
578
  };
554
579
  const itemProps = {
555
580
  className: classes,
@@ -564,11 +589,17 @@ function SidebarSubItem({
564
589
  function SidebarSubmenu({ children }) {
565
590
  return /* @__PURE__ */ jsxRuntime.jsx("li", { className: Sidebar_module.default.submenuWrapper, children: /* @__PURE__ */ jsxRuntime.jsx("ul", { className: Sidebar_module.default.submenu, children }) });
566
591
  }
567
- function SidebarFooter({ children, className }) {
592
+ function SidebarFooter({ children, className, ...htmlProps }) {
568
593
  const classes = [Sidebar_module.default.footer, className].filter(Boolean).join(" ");
569
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: classes, children });
594
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { ...htmlProps, className: classes, children });
570
595
  }
571
- function SidebarTrigger({ children, "aria-label": ariaLabel = "Toggle navigation", className }) {
596
+ function SidebarTrigger({
597
+ children,
598
+ "aria-label": ariaLabel = "Toggle navigation",
599
+ className,
600
+ onClick,
601
+ ...htmlProps
602
+ }) {
572
603
  const { open, setOpen, isMobile, sidebarId } = useSidebarContext();
573
604
  if (!isMobile) {
574
605
  return null;
@@ -577,9 +608,10 @@ function SidebarTrigger({ children, "aria-label": ariaLabel = "Toggle navigation
577
608
  return /* @__PURE__ */ jsxRuntime.jsx(
578
609
  "button",
579
610
  {
611
+ ...htmlProps,
580
612
  type: "button",
581
613
  className: classes,
582
- onClick: () => setOpen(!open),
614
+ onClick: composeEventHandlers(onClick, () => setOpen(!open)),
583
615
  "aria-label": ariaLabel,
584
616
  "aria-expanded": open,
585
617
  "aria-controls": sidebarId,
@@ -587,7 +619,7 @@ function SidebarTrigger({ children, "aria-label": ariaLabel = "Toggle navigation
587
619
  }
588
620
  );
589
621
  }
590
- function SidebarOverlay({ className }) {
622
+ function SidebarOverlay({ className, onClick, ...htmlProps }) {
591
623
  const { open, setOpen, isMobile } = useSidebarContext();
592
624
  if (!isMobile || !open) {
593
625
  return null;
@@ -596,14 +628,20 @@ function SidebarOverlay({ className }) {
596
628
  return /* @__PURE__ */ jsxRuntime.jsx(
597
629
  "div",
598
630
  {
631
+ ...htmlProps,
599
632
  className: classes,
600
- onClick: () => setOpen(false),
633
+ onClick: composeEventHandlers(onClick, () => setOpen(false)),
601
634
  "aria-hidden": "true",
602
635
  "data-state": open ? "open" : "closed"
603
636
  }
604
637
  );
605
638
  }
606
- function SidebarCollapseToggle({ "aria-label": ariaLabel, className }) {
639
+ function SidebarCollapseToggle({
640
+ "aria-label": ariaLabel,
641
+ className,
642
+ onClick,
643
+ ...htmlProps
644
+ }) {
607
645
  const { collapsed, setCollapsed, isMobile, collapsible, hasIcons } = useSidebarContext();
608
646
  if (isMobile || collapsible === "none") {
609
647
  return null;
@@ -618,15 +656,22 @@ function SidebarCollapseToggle({ "aria-label": ariaLabel, className }) {
618
656
  return /* @__PURE__ */ jsxRuntime.jsx(
619
657
  "button",
620
658
  {
659
+ ...htmlProps,
621
660
  type: "button",
622
661
  className: classes,
623
- onClick: () => setCollapsed(!collapsed),
662
+ onClick: composeEventHandlers(onClick, () => setCollapsed(!collapsed)),
624
663
  "aria-label": label,
625
664
  children: /* @__PURE__ */ jsxRuntime.jsx(CollapsePanelIcon, {})
626
665
  }
627
666
  );
628
667
  }
629
- function SidebarRail({ className }) {
668
+ function SidebarRail({
669
+ className,
670
+ onClick,
671
+ title,
672
+ "aria-label": ariaLabel,
673
+ ...htmlProps
674
+ }) {
630
675
  const { collapsed, setCollapsed, isMobile, collapsible } = useSidebarContext();
631
676
  if (isMobile || collapsible === "none") {
632
677
  return null;
@@ -639,24 +684,26 @@ function SidebarRail({ className }) {
639
684
  return /* @__PURE__ */ jsxRuntime.jsx(
640
685
  "button",
641
686
  {
687
+ ...htmlProps,
642
688
  type: "button",
643
689
  className: classes,
644
- onClick: () => setCollapsed(!collapsed),
645
- "aria-label": collapsed ? "Expand sidebar" : "Collapse sidebar",
646
- title: collapsed ? "Expand sidebar" : "Collapse sidebar"
690
+ onClick: composeEventHandlers(onClick, () => setCollapsed(!collapsed)),
691
+ "aria-label": ariaLabel ?? (collapsed ? "Expand sidebar" : "Collapse sidebar"),
692
+ title: title ?? (collapsed ? "Expand sidebar" : "Collapse sidebar")
647
693
  }
648
694
  );
649
695
  }
650
696
  function SidebarMenuSkeleton({
651
697
  count = 5,
652
698
  showIcon = true,
653
- className
699
+ className,
700
+ ...htmlProps
654
701
  }) {
655
702
  const { collapsed, isMobile } = useSidebarContext();
656
703
  const isCollapsed = collapsed && !isMobile;
657
704
  const classes = [Sidebar_module.default.menuSkeleton, className].filter(Boolean).join(" ");
658
705
  const labelWidths = ["64%", "72%", "68%", "79%", "74%", "66%", "83%", "70%"];
659
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: classes, "aria-hidden": "true", children: Array.from({ length: count }).map((_, i) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: Sidebar_module.default.skeletonItem, children: [
706
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { ...htmlProps, className: classes, "aria-hidden": "true", children: Array.from({ length: count }).map((_, i) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: Sidebar_module.default.skeletonItem, children: [
660
707
  showIcon && /* @__PURE__ */ jsxRuntime.jsx(index.Skeleton, { variant: "avatar", size: "sm" }),
661
708
  !isCollapsed && /* @__PURE__ */ jsxRuntime.jsx(
662
709
  index.Skeleton,
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../../../src/components/Sidebar/index.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport styles from './Sidebar.module.scss';\nimport { Tooltip } from '../Tooltip';\nimport { Skeleton } from '../Skeleton';\nimport { Collapsible } from '../Collapsible';\nimport { ScrollArea } from '../ScrollArea';\nimport { useFocusTrap } from '../../utils/a11y';\nimport { useKeyboardShortcut } from '../../utils/keyboard-shortcuts';\n\n// ============================================\n// Types\n// ============================================\n\n/** Collapse behavior mode */\nexport type SidebarCollapsible = 'icon' | 'offcanvas' | 'none';\n\nexport interface SidebarProviderProps {\n children: React.ReactNode;\n /** Icon-only mode (desktop) - controlled */\n collapsed?: boolean;\n /** Initial collapsed state (uncontrolled) */\n defaultCollapsed?: boolean;\n /** Callback when collapsed state changes */\n onCollapsedChange?: (collapsed: boolean) => void;\n /** Mobile drawer state - controlled */\n open?: boolean;\n /** Initial open state (uncontrolled) */\n defaultOpen?: boolean;\n /** Callback when open state changes */\n onOpenChange?: (open: boolean) => void;\n /** Width of expanded sidebar */\n width?: string;\n /** Width when collapsed */\n collapsedWidth?: string;\n /** Sidebar position */\n position?: 'left' | 'right';\n /** Collapse behavior: 'icon' (default), 'offcanvas', or 'none' */\n collapsible?: SidebarCollapsible;\n /** Enable Cmd/Ctrl+B keyboard shortcut to toggle sidebar */\n enableKeyboardShortcut?: boolean;\n}\n\nexport interface SidebarProps extends React.HTMLAttributes<HTMLElement> {\n children: React.ReactNode;\n /** Icon-only mode (desktop) - controlled */\n collapsed?: boolean;\n /** Initial collapsed state (uncontrolled) */\n defaultCollapsed?: boolean;\n /** Callback when collapsed state changes */\n onCollapsedChange?: (collapsed: boolean) => void;\n /** Mobile drawer state - controlled */\n open?: boolean;\n /** Initial open state (uncontrolled) */\n defaultOpen?: boolean;\n /** Callback when open state changes */\n onOpenChange?: (open: boolean) => void;\n /** Width of expanded sidebar */\n width?: string;\n /** Width when collapsed */\n collapsedWidth?: string;\n /** Sidebar position */\n position?: 'left' | 'right';\n /** Collapse behavior: 'icon' (default), 'offcanvas', or 'none' */\n collapsible?: SidebarCollapsible;\n}\n\nexport interface SidebarHeaderProps {\n children: React.ReactNode;\n /** Content to show when sidebar is collapsed (e.g., just logo icon) */\n collapsedContent?: React.ReactNode;\n className?: string;\n}\n\nexport interface SidebarNavProps {\n children: React.ReactNode;\n /** Accessible label for navigation */\n 'aria-label'?: string;\n className?: string;\n}\n\nexport interface SidebarSectionProps {\n children: React.ReactNode;\n /** Optional section label */\n label?: string;\n /** Action element to display in the section header (e.g., \"Add\" button) */\n action?: React.ReactNode;\n /** Enable collapsible behavior */\n collapsible?: boolean;\n /** Default expanded state (only applies when collapsible is true) */\n defaultOpen?: boolean;\n className?: string;\n}\n\nexport interface SidebarSectionActionProps {\n children: React.ReactNode;\n /** Click handler */\n onClick?: () => void;\n /** Accessible label */\n 'aria-label'?: string;\n className?: string;\n}\n\nexport interface SidebarItemProps extends Omit<React.HTMLAttributes<HTMLElement>, 'onClick'> {\n children: React.ReactNode;\n /** Icon element (required for collapsed mode visibility) */\n icon?: React.ReactNode;\n /** Whether item is currently active/selected */\n active?: boolean;\n /** Disabled state */\n disabled?: boolean;\n /** Badge content (e.g., notification count) */\n badge?: React.ReactNode;\n /** Renders as anchor if provided */\n href?: string;\n /** Click handler (renders as button) */\n onClick?: () => void;\n /** Whether this item has a submenu */\n hasSubmenu?: boolean;\n /** Whether submenu is expanded (controlled) */\n expanded?: boolean;\n /** Initial expanded state (uncontrolled) */\n defaultExpanded?: boolean;\n /** Callback when expanded state changes */\n onExpandedChange?: (expanded: boolean) => void;\n /**\n * Render as child element (polymorphic). When true, clones the single child\n * and merges sidebar item props. Useful for rendering as Next.js Link, etc.\n */\n asChild?: boolean;\n}\n\nexport interface SidebarSubItemProps extends Omit<React.HTMLAttributes<HTMLElement>, 'onClick'> {\n children: React.ReactNode;\n /** Whether item is currently active/selected */\n active?: boolean;\n /** Disabled state */\n disabled?: boolean;\n /** Renders as anchor if provided */\n href?: string;\n /** Click handler (renders as button) */\n onClick?: () => void;\n}\n\nexport interface SidebarFooterProps {\n children: React.ReactNode;\n className?: string;\n}\n\nexport interface SidebarTriggerProps {\n /** Custom trigger element (uses render prop pattern) */\n children?: React.ReactNode;\n /** Accessible label */\n 'aria-label'?: string;\n className?: string;\n}\n\nexport interface SidebarOverlayProps {\n className?: string;\n}\n\nexport interface SidebarCollapseToggleProps {\n /** Accessible label */\n 'aria-label'?: string;\n className?: string;\n}\n\nexport interface SidebarRailProps {\n className?: string;\n}\n\nexport interface SidebarMenuSkeletonProps {\n /** Number of skeleton items to render */\n count?: number;\n /** Show icons in skeleton items */\n showIcon?: boolean;\n className?: string;\n}\n\n// ============================================\n// Icons\n// ============================================\n\nfunction MenuIcon() {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 256 256\"\n fill=\"currentColor\"\n aria-hidden=\"true\"\n >\n <path d=\"M224,128a8,8,0,0,1-8,8H40a8,8,0,0,1,0-16H216A8,8,0,0,1,224,128ZM40,72H216a8,8,0,0,0,0-16H40a8,8,0,0,0,0,16ZM216,184H40a8,8,0,0,0,0,16H216a8,8,0,0,0,0-16Z\" />\n </svg>\n );\n}\n\nfunction CloseIcon() {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 256 256\"\n fill=\"currentColor\"\n aria-hidden=\"true\"\n >\n <path d=\"M205.66,194.34a8,8,0,0,1-11.32,11.32L128,139.31,61.66,205.66a8,8,0,0,1-11.32-11.32L116.69,128,50.34,61.66A8,8,0,0,1,61.66,50.34L128,116.69l66.34-66.35a8,8,0,0,1,11.32,11.32L139.31,128Z\" />\n </svg>\n );\n}\n\nfunction CollapsePanelIcon() {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 256 256\"\n fill=\"currentColor\"\n aria-hidden=\"true\"\n >\n <path d=\"M216,40H40A16,16,0,0,0,24,56V200a16,16,0,0,0,16,16H216a16,16,0,0,0,16-16V56A16,16,0,0,0,216,40ZM40,56H80V200H40ZM216,200H96V56H216V200Z\" />\n </svg>\n );\n}\n\nfunction ChevronRightIcon() {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 256 256\"\n fill=\"currentColor\"\n aria-hidden=\"true\"\n >\n <path d=\"M181.66,133.66l-80,80a8,8,0,0,1-11.32-11.32L164.69,128,90.34,53.66a8,8,0,0,1,11.32-11.32l80,80A8,8,0,0,1,181.66,133.66Z\" />\n </svg>\n );\n}\n\n// ============================================\n// Context\n// ============================================\n\ninterface SidebarContextValue {\n collapsed: boolean;\n setCollapsed: (collapsed: boolean) => void;\n open: boolean;\n setOpen: (open: boolean) => void;\n isMobile: boolean;\n position: 'left' | 'right';\n width: string;\n collapsedWidth: string;\n collapsible: SidebarCollapsible;\n hasIcons: boolean;\n toggleSidebar: () => void;\n sidebarId: string;\n}\n\nconst SidebarContext = React.createContext<SidebarContextValue | null>(null);\n\n/**\n * Hook to access sidebar state and controls.\n * Returns safe defaults if used outside a SidebarProvider/Sidebar.\n */\nfunction useSidebar() {\n const context = React.useContext(SidebarContext);\n if (!context) {\n // Return safe defaults when used outside provider\n return {\n collapsed: false,\n setCollapsed: () => {},\n open: false,\n setOpen: () => {},\n isMobile: false,\n position: 'left' as const,\n width: '240px',\n collapsedWidth: '56px',\n collapsible: 'icon' as SidebarCollapsible,\n hasIcons: true,\n toggleSidebar: () => {},\n sidebarId: 'sidebar',\n state: 'expanded' as 'expanded' | 'collapsed' | 'open' | 'closed',\n };\n }\n return {\n ...context,\n state: context.isMobile\n ? (context.open ? 'open' : 'closed')\n : (context.collapsed ? 'collapsed' : 'expanded'),\n };\n}\n\n/**\n * @deprecated Use `useSidebar` instead. This will be removed in a future version.\n */\nfunction useSidebarContext() {\n const context = React.useContext(SidebarContext);\n if (!context) {\n throw new Error('Sidebar compound components must be used within a Sidebar');\n }\n return context;\n}\n\n// ============================================\n// Hooks\n// ============================================\n\nfunction useIsMobile() {\n const [isMobile, setIsMobile] = React.useState(false);\n\n React.useEffect(() => {\n const mq = window.matchMedia('(max-width: 767px)');\n setIsMobile(mq.matches);\n const handler = (e: MediaQueryListEvent) => setIsMobile(e.matches);\n mq.addEventListener('change', handler);\n return () => mq.removeEventListener('change', handler);\n }, []);\n\n return isMobile;\n}\n\nfunction useControllableState<T>(\n controlledValue: T | undefined,\n defaultValue: T,\n onChange?: (value: T) => void\n): [T, (value: T) => void] {\n const [uncontrolledValue, setUncontrolledValue] = React.useState(defaultValue);\n const isControlled = controlledValue !== undefined;\n const value = isControlled ? controlledValue : uncontrolledValue;\n\n const setValue = React.useCallback(\n (newValue: T) => {\n if (!isControlled) {\n setUncontrolledValue(newValue);\n }\n onChange?.(newValue);\n },\n [isControlled, onChange]\n );\n\n return [value, setValue];\n}\n\nfunction hasSidebarItemIcons(children: React.ReactNode): boolean {\n let found = false;\n\n const visit = (nodes: React.ReactNode) => {\n React.Children.forEach(nodes, child => {\n if (found || !React.isValidElement(child)) return;\n\n if (child.type === SidebarItem) {\n const props = child.props as SidebarItemProps;\n if (props.icon) {\n found = true;\n return;\n }\n }\n\n const childProps = child.props as { children?: React.ReactNode };\n if (childProps?.children) {\n visit(childProps.children);\n }\n });\n };\n\n visit(children);\n return found;\n}\n\n// ============================================\n// Components\n// ============================================\n\n/**\n * SidebarProvider - Wrap your app layout to provide sidebar state to children.\n * This enables external triggers and keyboard shortcuts.\n */\nfunction SidebarProvider({\n children,\n collapsed: controlledCollapsed,\n defaultCollapsed = false,\n onCollapsedChange,\n open: controlledOpen,\n defaultOpen = false,\n onOpenChange,\n width = '240px',\n collapsedWidth = '56px',\n position = 'left',\n collapsible = 'icon',\n enableKeyboardShortcut = true,\n}: SidebarProviderProps) {\n const isMobile = useIsMobile();\n const sidebarId = React.useId();\n\n const [collapsed, setCollapsed] = useControllableState(\n controlledCollapsed,\n defaultCollapsed,\n onCollapsedChange\n );\n\n const [open, setOpen] = useControllableState(\n controlledOpen,\n defaultOpen,\n onOpenChange\n );\n\n const toggleSidebar = React.useCallback(() => {\n if (collapsible === 'none') return;\n if (isMobile) {\n setOpen(!open);\n } else {\n setCollapsed(!collapsed);\n }\n }, [isMobile, open, collapsed, setOpen, setCollapsed, collapsible]);\n\n // Handle Cmd/Ctrl+B keyboard shortcut (skips editable elements like Editor)\n useKeyboardShortcut({\n name: 'SIDEBAR_TOGGLE',\n handler: toggleSidebar,\n enabled: enableKeyboardShortcut && collapsible !== 'none',\n });\n\n // Handle escape key for mobile drawer\n React.useEffect(() => {\n if (!isMobile || !open) return;\n\n const handleEscape = (e: KeyboardEvent) => {\n if (e.key === 'Escape') {\n setOpen(false);\n }\n };\n\n document.addEventListener('keydown', handleEscape);\n return () => document.removeEventListener('keydown', handleEscape);\n }, [isMobile, open, setOpen]);\n\n // Lock body scroll when mobile drawer is open\n React.useEffect(() => {\n if (!isMobile) return;\n\n if (open) {\n document.body.style.overflow = 'hidden';\n } else {\n document.body.style.overflow = '';\n }\n\n return () => {\n document.body.style.overflow = '';\n };\n }, [isMobile, open]);\n\n const contextValue: SidebarContextValue = {\n collapsed,\n setCollapsed,\n open,\n setOpen,\n isMobile,\n position,\n width,\n collapsedWidth,\n collapsible,\n hasIcons: true,\n toggleSidebar,\n sidebarId,\n };\n\n return (\n <SidebarContext.Provider value={contextValue}>\n {children}\n </SidebarContext.Provider>\n );\n}\n\nfunction SidebarRoot({\n children,\n collapsed: controlledCollapsed,\n defaultCollapsed = false,\n onCollapsedChange,\n open: controlledOpen,\n defaultOpen = false,\n onOpenChange,\n width = '240px',\n collapsedWidth = '56px',\n position = 'left',\n collapsible = 'icon',\n className,\n style: styleProp,\n 'aria-label': ariaLabel,\n ...htmlProps\n}: SidebarProps) {\n // Check if we're inside a SidebarProvider\n const existingContext = React.useContext(SidebarContext);\n const isMobile = useIsMobile();\n\n const [internalCollapsed, setInternalCollapsed] = useControllableState(\n controlledCollapsed,\n defaultCollapsed,\n onCollapsedChange\n );\n\n const [internalOpen, setInternalOpen] = useControllableState(\n controlledOpen,\n defaultOpen,\n onOpenChange\n );\n\n // Use existing context values if inside a provider, otherwise use internal state\n const collapsed = existingContext ? existingContext.collapsed : internalCollapsed;\n const setCollapsed = existingContext ? existingContext.setCollapsed : setInternalCollapsed;\n const open = existingContext ? existingContext.open : internalOpen;\n const setOpen = existingContext ? existingContext.setOpen : setInternalOpen;\n const resolvedPosition = existingContext ? existingContext.position : position;\n const resolvedWidth = existingContext ? existingContext.width : width;\n const resolvedCollapsedWidth = existingContext ? existingContext.collapsedWidth : collapsedWidth;\n const resolvedCollapsible = existingContext ? existingContext.collapsible : collapsible;\n const hasIcons = React.useMemo(() => hasSidebarItemIcons(children), [children]);\n const shouldCollapseToZero = !isMobile && resolvedCollapsible === 'icon' && collapsed && !hasIcons;\n const isOffcanvasCollapsed = !isMobile && resolvedCollapsible === 'offcanvas' && collapsed;\n const effectiveCollapsedWidth = (shouldCollapseToZero || isOffcanvasCollapsed) ? '0px' : resolvedCollapsedWidth;\n const sidebarId = React.useId();\n const resolvedSidebarId = existingContext ? existingContext.sidebarId : sidebarId;\n const sidebarRef = React.useRef<HTMLElement>(null);\n\n useFocusTrap(sidebarRef, isMobile && open);\n\n const toggleSidebar = React.useCallback(() => {\n if (resolvedCollapsible === 'none') return;\n if (isMobile) {\n setOpen(!open);\n } else {\n setCollapsed(!collapsed);\n }\n }, [isMobile, open, collapsed, setOpen, setCollapsed, resolvedCollapsible]);\n\n // Handle escape key for mobile drawer (only if no provider)\n React.useEffect(() => {\n if (existingContext) return; // Provider handles this\n if (!isMobile || !open) return;\n\n const handleEscape = (e: KeyboardEvent) => {\n if (e.key === 'Escape') {\n setOpen(false);\n }\n };\n\n document.addEventListener('keydown', handleEscape);\n return () => document.removeEventListener('keydown', handleEscape);\n }, [existingContext, isMobile, open, setOpen]);\n\n // Lock body scroll when mobile drawer is open (only if no provider)\n React.useEffect(() => {\n if (existingContext) return; // Provider handles this\n if (!isMobile) return;\n\n if (open) {\n document.body.style.overflow = 'hidden';\n } else {\n document.body.style.overflow = '';\n }\n\n return () => {\n document.body.style.overflow = '';\n };\n }, [existingContext, isMobile, open]);\n\n const contextValue: SidebarContextValue = {\n ...(existingContext || {\n collapsed,\n setCollapsed,\n open,\n setOpen,\n isMobile,\n position: resolvedPosition,\n width: resolvedWidth,\n collapsedWidth: resolvedCollapsedWidth,\n collapsible: resolvedCollapsible,\n hasIcons,\n toggleSidebar,\n sidebarId: resolvedSidebarId,\n }),\n hasIcons,\n };\n\n const isCollapsedForStyle = resolvedCollapsible === 'icon' && collapsed;\n\n const classes = [\n styles.root,\n isMobile && styles.mobile,\n !isMobile && isCollapsedForStyle && styles.collapsed,\n !isMobile && isCollapsedForStyle && shouldCollapseToZero && styles.collapsedNoIcons,\n isOffcanvasCollapsed && styles.offcanvasCollapsed,\n resolvedPosition === 'right' && styles.positionRight,\n className,\n ].filter(Boolean).join(' ');\n\n const style: React.CSSProperties = {\n '--sidebar-width': resolvedWidth,\n '--sidebar-collapsed-width': resolvedCollapsedWidth,\n '--sidebar-effective-collapsed-width': effectiveCollapsedWidth,\n ...styleProp,\n } as React.CSSProperties;\n\n const content = (\n <aside\n ref={sidebarRef}\n id={resolvedSidebarId}\n {...htmlProps}\n className={classes}\n style={style}\n role={isMobile ? 'dialog' : undefined}\n aria-modal={isMobile && open ? true : undefined}\n aria-hidden={isMobile && !open ? true : undefined}\n aria-label={isMobile ? (ariaLabel || 'Sidebar navigation') : ariaLabel}\n data-state={isMobile ? (open ? 'open' : 'closed') : (collapsed ? 'collapsed' : 'expanded')}\n data-position={resolvedPosition}\n data-collapsible={resolvedCollapsible}\n data-icon-collapse={resolvedCollapsible === 'icon' ? (hasIcons ? 'icons' : 'none') : undefined}\n >\n {children}\n </aside>\n );\n\n return (\n <SidebarContext.Provider value={contextValue}>\n {content}\n </SidebarContext.Provider>\n );\n}\n\nfunction SidebarHeader({ children, collapsedContent, className }: SidebarHeaderProps) {\n const { collapsed, isMobile } = useSidebarContext();\n const isCollapsed = collapsed && !isMobile;\n const classes = [styles.header, className].filter(Boolean).join(' ');\n\n // Show collapsed content when sidebar is collapsed (and we have it), otherwise show children\n const content = isCollapsed && collapsedContent ? collapsedContent : children;\n\n return <div className={classes}>{content}</div>;\n}\n\nfunction SidebarNav({ children, 'aria-label': ariaLabel = 'Main navigation', className }: SidebarNavProps) {\n const classes = [styles.nav, className].filter(Boolean).join(' ');\n return (\n <nav className={classes} aria-label={ariaLabel}>\n <ScrollArea orientation=\"vertical\" showFades className={styles.navScrollArea}>\n {children}\n </ScrollArea>\n </nav>\n );\n}\n\nfunction SidebarSection({\n children,\n label,\n action,\n collapsible: isCollapsibleProp = false,\n defaultOpen = true,\n className\n}: SidebarSectionProps) {\n const { collapsed, isMobile } = useSidebarContext();\n\n const classes = [\n styles.section,\n className\n ].filter(Boolean).join(' ');\n\n const showLabel = label && (!collapsed || isMobile);\n const showAction = action && (!collapsed || isMobile);\n const isCollapsible = isCollapsibleProp && showLabel;\n\n // Non-collapsible section\n if (!isCollapsible) {\n return (\n <div className={classes} role=\"group\" aria-label={label}>\n {(showLabel || showAction) && (\n <div className={styles.sectionHeader}>\n {showLabel && <div className={styles.sectionLabel}>{label}</div>}\n {showAction && <div className={styles.sectionActionWrapper}>{action}</div>}\n </div>\n )}\n <ul className={styles.sectionList}>\n {children}\n </ul>\n </div>\n );\n }\n\n // Collapsible section using Collapsible component\n return (\n <div className={classes} role=\"group\" aria-label={label}>\n <Collapsible defaultOpen={defaultOpen} className={styles.sectionCollapsible}>\n <div className={styles.sectionHeader}>\n <Collapsible.Trigger\n className={styles.sectionTrigger}\n chevronPosition=\"end\"\n >\n <span className={styles.sectionLabel}>{label}</span>\n </Collapsible.Trigger>\n {showAction && <div className={styles.sectionActionWrapper}>{action}</div>}\n </div>\n <Collapsible.Content className={styles.sectionContent}>\n <ul className={styles.sectionList}>\n {children}\n </ul>\n </Collapsible.Content>\n </Collapsible>\n </div>\n );\n}\n\nfunction SidebarSectionAction({\n children,\n onClick,\n 'aria-label': ariaLabel,\n className,\n}: SidebarSectionActionProps) {\n const classes = [styles.sectionAction, className].filter(Boolean).join(' ');\n\n return (\n <button\n type=\"button\"\n className={classes}\n onClick={onClick}\n aria-label={ariaLabel}\n >\n {children}\n </button>\n );\n}\n\nfunction SidebarItem({\n children,\n icon,\n active = false,\n disabled = false,\n badge,\n href,\n onClick,\n hasSubmenu = false,\n expanded: controlledExpanded,\n defaultExpanded = false,\n onExpandedChange,\n asChild = false,\n className,\n ...rest\n}: SidebarItemProps) {\n const { collapsed, isMobile } = useSidebarContext();\n const [expanded, setExpanded] = useControllableState(\n controlledExpanded,\n defaultExpanded,\n onExpandedChange\n );\n\n const isCollapsed = collapsed && !isMobile;\n const showLabel = !isCollapsed;\n\n const classes = [\n styles.item,\n active && styles.itemActive,\n disabled && styles.itemDisabled,\n hasSubmenu && styles.itemHasSubmenu,\n expanded && styles.itemExpanded,\n className,\n ].filter(Boolean).join(' ');\n\n const handleClick = (e: React.MouseEvent) => {\n if (disabled) {\n e.preventDefault();\n return;\n }\n if (hasSubmenu) {\n e.preventDefault();\n setExpanded(!expanded);\n }\n onClick?.();\n };\n\n // Extract text content from children for aria-label when collapsed\n // For asChild, try to extract from the child's children prop\n let labelText: string | undefined;\n if (asChild && React.isValidElement(children)) {\n const childProps = children.props as { children?: React.ReactNode };\n labelText = typeof childProps.children === 'string' ? childProps.children : undefined;\n } else {\n labelText = typeof children === 'string' ? children : undefined;\n }\n\n const itemContent = (\n <>\n {icon && <span className={styles.itemIcon}>{icon}</span>}\n {showLabel && <span className={styles.itemLabel}>{asChild && React.isValidElement(children) ? (children.props as { children?: React.ReactNode }).children : children}</span>}\n {showLabel && badge && <span className={styles.itemBadge}>{badge}</span>}\n {showLabel && hasSubmenu && (\n <span className={styles.itemChevron}>\n <ChevronRightIcon />\n </span>\n )}\n </>\n );\n\n const itemProps = {\n className: classes,\n onClick: handleClick,\n 'aria-current': active ? 'page' as const : undefined,\n 'aria-disabled': disabled || undefined,\n 'aria-expanded': hasSubmenu ? expanded : undefined,\n 'aria-label': isCollapsed ? labelText : undefined,\n tabIndex: disabled ? -1 : 0,\n };\n\n let itemElement: React.ReactElement;\n\n if (asChild && React.isValidElement(children)) {\n // Clone the child element and merge props\n itemElement = React.cloneElement(children, {\n ...itemProps,\n ...rest,\n // Merge classNames\n className: [classes, (children.props as { className?: string }).className].filter(Boolean).join(' '),\n children: itemContent,\n } as React.HTMLAttributes<HTMLElement>);\n } else if (href) {\n itemElement = (\n <a {...itemProps} {...rest} href={href}>\n {itemContent}\n </a>\n );\n } else {\n itemElement = (\n <button {...itemProps} {...rest} type=\"button\">\n {itemContent}\n </button>\n );\n }\n\n // Wrap in tooltip when collapsed\n const wrappedItem = isCollapsed ? (\n <Tooltip content={labelText || children} side=\"right\" delay={100}>\n {itemElement}\n </Tooltip>\n ) : (\n itemElement\n );\n\n const wrapperClasses = [\n styles.itemWrapper,\n expanded && styles.itemExpanded,\n ].filter(Boolean).join(' ');\n\n return <li className={wrapperClasses}>{wrappedItem}</li>;\n}\n\nfunction SidebarSubItem({\n children,\n active = false,\n disabled = false,\n href,\n onClick,\n className,\n ...rest\n}: SidebarSubItemProps) {\n const { collapsed, isMobile } = useSidebarContext();\n\n // Don't render sub-items when collapsed (unless mobile)\n if (collapsed && !isMobile) {\n return null;\n }\n\n const classes = [\n styles.subItem,\n active && styles.subItemActive,\n disabled && styles.subItemDisabled,\n className,\n ].filter(Boolean).join(' ');\n\n const handleClick = (e: React.MouseEvent) => {\n if (disabled) {\n e.preventDefault();\n return;\n }\n onClick?.();\n };\n\n const itemProps = {\n className: classes,\n onClick: handleClick,\n 'aria-current': active ? 'page' as const : undefined,\n 'aria-disabled': disabled,\n tabIndex: disabled ? -1 : 0,\n };\n\n const itemElement = href ? (\n <a {...itemProps} {...rest} href={href}>\n {children}\n </a>\n ) : (\n <button {...itemProps} {...rest} type=\"button\">\n {children}\n </button>\n );\n\n return <li className={styles.subItemWrapper}>{itemElement}</li>;\n}\n\nfunction SidebarSubmenu({ children }: { children: React.ReactNode }) {\n return (\n <li className={styles.submenuWrapper}>\n <ul className={styles.submenu}>\n {children}\n </ul>\n </li>\n );\n}\n\nfunction SidebarFooter({ children, className }: SidebarFooterProps) {\n const classes = [styles.footer, className].filter(Boolean).join(' ');\n return <div className={classes}>{children}</div>;\n}\n\nfunction SidebarTrigger({ children, 'aria-label': ariaLabel = 'Toggle navigation', className }: SidebarTriggerProps) {\n const { open, setOpen, isMobile, sidebarId } = useSidebarContext();\n\n // Only render trigger on mobile\n if (!isMobile) {\n return null;\n }\n\n const classes = [styles.trigger, className].filter(Boolean).join(' ');\n\n return (\n <button\n type=\"button\"\n className={classes}\n onClick={() => setOpen(!open)}\n aria-label={ariaLabel}\n aria-expanded={open}\n aria-controls={sidebarId}\n >\n {children || (open ? <CloseIcon /> : <MenuIcon />)}\n </button>\n );\n}\n\nfunction SidebarOverlay({ className }: SidebarOverlayProps) {\n const { open, setOpen, isMobile } = useSidebarContext();\n\n // Only render overlay on mobile when open\n if (!isMobile || !open) {\n return null;\n }\n\n const classes = [styles.overlay, className].filter(Boolean).join(' ');\n\n return (\n <div\n className={classes}\n onClick={() => setOpen(false)}\n aria-hidden=\"true\"\n data-state={open ? 'open' : 'closed'}\n />\n );\n}\n\nfunction SidebarCollapseToggle({ 'aria-label': ariaLabel, className }: SidebarCollapseToggleProps) {\n const { collapsed, setCollapsed, isMobile, collapsible, hasIcons } = useSidebarContext();\n\n // Don't show on mobile or when collapsing is disabled\n if (isMobile || collapsible === 'none') {\n return null;\n }\n\n const shouldFloat = collapsed && (\n (collapsible === 'icon' && !hasIcons) ||\n collapsible === 'offcanvas'\n );\n const classes = [\n styles.collapseToggle,\n shouldFloat && styles.collapseToggleFloating,\n className,\n ].filter(Boolean).join(' ');\n const label = ariaLabel || (collapsed ? 'Expand sidebar' : 'Collapse sidebar');\n\n return (\n <button\n type=\"button\"\n className={classes}\n onClick={() => setCollapsed(!collapsed)}\n aria-label={label}\n >\n <CollapsePanelIcon />\n </button>\n );\n}\n\nfunction SidebarRail({ className }: SidebarRailProps) {\n const { collapsed, setCollapsed, isMobile, collapsible } = useSidebarContext();\n\n // Don't show on mobile or when collapsing is disabled\n if (isMobile || collapsible === 'none') {\n return null;\n }\n\n const classes = [\n styles.rail,\n collapsed && styles.railCollapsed,\n className,\n ].filter(Boolean).join(' ');\n\n return (\n <button\n type=\"button\"\n className={classes}\n onClick={() => setCollapsed(!collapsed)}\n aria-label={collapsed ? 'Expand sidebar' : 'Collapse sidebar'}\n title={collapsed ? 'Expand sidebar' : 'Collapse sidebar'}\n />\n );\n}\n\nfunction SidebarMenuSkeleton({\n count = 5,\n showIcon = true,\n className,\n}: SidebarMenuSkeletonProps) {\n const { collapsed, isMobile } = useSidebarContext();\n const isCollapsed = collapsed && !isMobile;\n\n const classes = [styles.menuSkeleton, className].filter(Boolean).join(' ');\n const labelWidths = ['64%', '72%', '68%', '79%', '74%', '66%', '83%', '70%'];\n\n return (\n <div className={classes} aria-hidden=\"true\">\n {Array.from({ length: count }).map((_, i) => (\n <div key={i} className={styles.skeletonItem}>\n {showIcon && <Skeleton variant=\"avatar\" size=\"sm\" />}\n {!isCollapsed && (\n <Skeleton\n variant=\"text\"\n className={styles.skeletonLabel}\n width={labelWidths[i % labelWidths.length]}\n />\n )}\n </div>\n ))}\n </div>\n );\n}\n\n// ============================================\n// Export compound component\n// ============================================\n\nexport const Sidebar = Object.assign(SidebarRoot, {\n Header: SidebarHeader,\n Nav: SidebarNav,\n Section: SidebarSection,\n SectionAction: SidebarSectionAction,\n Item: SidebarItem,\n SubItem: SidebarSubItem,\n Submenu: SidebarSubmenu,\n Footer: SidebarFooter,\n Trigger: SidebarTrigger,\n Overlay: SidebarOverlay,\n CollapseToggle: SidebarCollapseToggle,\n Rail: SidebarRail,\n MenuSkeleton: SidebarMenuSkeleton,\n});\n\n// Re-export individual components\nexport {\n SidebarProvider,\n SidebarRoot,\n SidebarHeader,\n SidebarNav,\n SidebarSection,\n SidebarSectionAction,\n SidebarItem,\n SidebarSubItem,\n SidebarSubmenu,\n SidebarFooter,\n SidebarTrigger,\n SidebarOverlay,\n SidebarCollapseToggle,\n SidebarRail,\n SidebarMenuSkeleton,\n};\n\n// Export hooks\nexport { useSidebar };\n\n// Export context hook for backwards compatibility (deprecated)\nexport { useSidebarContext };\n"],"names":["jsx","React","useKeyboardShortcut","useFocusTrap","styles","ScrollArea","jsxs","Collapsible","Fragment","Tooltip","Skeleton"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs","sources":["../../../src/components/Sidebar/index.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport styles from './Sidebar.module.scss';\nimport { Tooltip } from '../Tooltip';\nimport { Skeleton } from '../Skeleton';\nimport { Collapsible } from '../Collapsible';\nimport { ScrollArea } from '../ScrollArea';\nimport { useFocusTrap } from '../../utils/a11y';\nimport { useKeyboardShortcut } from '../../utils/keyboard-shortcuts';\n\nfunction composeEventHandlers<E extends { defaultPrevented: boolean }>(\n userHandler: ((event: E) => void) | undefined,\n internalHandler: (event: E) => void\n) {\n return (event: E) => {\n userHandler?.(event);\n if (event.defaultPrevented) return;\n internalHandler(event);\n };\n}\n\n// ============================================\n// Types\n// ============================================\n\n/** Collapse behavior mode */\nexport type SidebarCollapsible = 'icon' | 'offcanvas' | 'none';\n\nexport interface SidebarProviderProps {\n children: React.ReactNode;\n /** Icon-only mode (desktop) - controlled */\n collapsed?: boolean;\n /** Initial collapsed state (uncontrolled) */\n defaultCollapsed?: boolean;\n /** Callback when collapsed state changes */\n onCollapsedChange?: (collapsed: boolean) => void;\n /** Mobile drawer state - controlled */\n open?: boolean;\n /** Initial open state (uncontrolled) */\n defaultOpen?: boolean;\n /** Callback when open state changes */\n onOpenChange?: (open: boolean) => void;\n /** Width of expanded sidebar */\n width?: string;\n /** Width when collapsed */\n collapsedWidth?: string;\n /** Sidebar position */\n position?: 'left' | 'right';\n /** Collapse behavior: 'icon' (default), 'offcanvas', or 'none' */\n collapsible?: SidebarCollapsible;\n /** Enable Cmd/Ctrl+B keyboard shortcut to toggle sidebar */\n enableKeyboardShortcut?: boolean;\n}\n\nexport interface SidebarProps extends React.HTMLAttributes<HTMLElement> {\n children: React.ReactNode;\n /** Icon-only mode (desktop) - controlled */\n collapsed?: boolean;\n /** Initial collapsed state (uncontrolled) */\n defaultCollapsed?: boolean;\n /** Callback when collapsed state changes */\n onCollapsedChange?: (collapsed: boolean) => void;\n /** Mobile drawer state - controlled */\n open?: boolean;\n /** Initial open state (uncontrolled) */\n defaultOpen?: boolean;\n /** Callback when open state changes */\n onOpenChange?: (open: boolean) => void;\n /** Width of expanded sidebar */\n width?: string;\n /** Width when collapsed */\n collapsedWidth?: string;\n /** Sidebar position */\n position?: 'left' | 'right';\n /** Collapse behavior: 'icon' (default), 'offcanvas', or 'none' */\n collapsible?: SidebarCollapsible;\n}\n\nexport interface SidebarHeaderProps extends React.HTMLAttributes<HTMLDivElement> {\n children: React.ReactNode;\n /** Content to show when sidebar is collapsed (e.g., just logo icon) */\n collapsedContent?: React.ReactNode;\n}\n\nexport interface SidebarNavProps extends React.HTMLAttributes<HTMLElement> {\n children: React.ReactNode;\n /** Accessible label for navigation */\n 'aria-label'?: string;\n}\n\nexport interface SidebarSectionProps extends React.HTMLAttributes<HTMLDivElement> {\n children: React.ReactNode;\n /** Optional section label */\n label?: string;\n /** Action element to display in the section header (e.g., \"Add\" button) */\n action?: React.ReactNode;\n /** Enable collapsible behavior */\n collapsible?: boolean;\n /** Default expanded state (only applies when collapsible is true) */\n defaultOpen?: boolean;\n}\n\nexport interface SidebarSectionActionProps extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, 'onClick'> {\n children: React.ReactNode;\n /** Click handler */\n onClick?: React.MouseEventHandler<HTMLButtonElement>;\n /** Accessible label */\n 'aria-label'?: string;\n}\n\nexport interface SidebarItemProps extends Omit<React.HTMLAttributes<HTMLElement>, 'onClick'> {\n children: React.ReactNode;\n /** Icon element (required for collapsed mode visibility) */\n icon?: React.ReactNode;\n /** Whether item is currently active/selected */\n active?: boolean;\n /** Disabled state */\n disabled?: boolean;\n /** Badge content (e.g., notification count) */\n badge?: React.ReactNode;\n /** Renders as anchor if provided */\n href?: string;\n /** Click handler (renders as button) */\n onClick?: React.MouseEventHandler<HTMLElement>;\n /** Whether this item has a submenu */\n hasSubmenu?: boolean;\n /** Whether submenu is expanded (controlled) */\n expanded?: boolean;\n /** Initial expanded state (uncontrolled) */\n defaultExpanded?: boolean;\n /** Callback when expanded state changes */\n onExpandedChange?: (expanded: boolean) => void;\n /**\n * Render as child element (polymorphic). When true, clones the single child\n * and merges sidebar item props. Useful for rendering as Next.js Link, etc.\n */\n asChild?: boolean;\n}\n\nexport interface SidebarSubItemProps extends Omit<React.HTMLAttributes<HTMLElement>, 'onClick'> {\n children: React.ReactNode;\n /** Whether item is currently active/selected */\n active?: boolean;\n /** Disabled state */\n disabled?: boolean;\n /** Renders as anchor if provided */\n href?: string;\n /** Click handler (renders as button) */\n onClick?: React.MouseEventHandler<HTMLElement>;\n}\n\nexport interface SidebarFooterProps extends React.HTMLAttributes<HTMLDivElement> {\n children: React.ReactNode;\n}\n\nexport interface SidebarTriggerProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n /** Custom trigger element (uses render prop pattern) */\n children?: React.ReactNode;\n /** Accessible label */\n 'aria-label'?: string;\n}\n\nexport type SidebarOverlayProps = React.HTMLAttributes<HTMLDivElement>;\n\nexport interface SidebarCollapseToggleProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n /** Accessible label */\n 'aria-label'?: string;\n}\n\nexport type SidebarRailProps = React.ButtonHTMLAttributes<HTMLButtonElement>;\n\nexport interface SidebarMenuSkeletonProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Number of skeleton items to render */\n count?: number;\n /** Show icons in skeleton items */\n showIcon?: boolean;\n}\n\n// ============================================\n// Icons\n// ============================================\n\nfunction MenuIcon() {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 256 256\"\n fill=\"currentColor\"\n aria-hidden=\"true\"\n >\n <path d=\"M224,128a8,8,0,0,1-8,8H40a8,8,0,0,1,0-16H216A8,8,0,0,1,224,128ZM40,72H216a8,8,0,0,0,0-16H40a8,8,0,0,0,0,16ZM216,184H40a8,8,0,0,0,0,16H216a8,8,0,0,0,0-16Z\" />\n </svg>\n );\n}\n\nfunction CloseIcon() {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 256 256\"\n fill=\"currentColor\"\n aria-hidden=\"true\"\n >\n <path d=\"M205.66,194.34a8,8,0,0,1-11.32,11.32L128,139.31,61.66,205.66a8,8,0,0,1-11.32-11.32L116.69,128,50.34,61.66A8,8,0,0,1,61.66,50.34L128,116.69l66.34-66.35a8,8,0,0,1,11.32,11.32L139.31,128Z\" />\n </svg>\n );\n}\n\nfunction CollapsePanelIcon() {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 256 256\"\n fill=\"currentColor\"\n aria-hidden=\"true\"\n >\n <path d=\"M216,40H40A16,16,0,0,0,24,56V200a16,16,0,0,0,16,16H216a16,16,0,0,0,16-16V56A16,16,0,0,0,216,40ZM40,56H80V200H40ZM216,200H96V56H216V200Z\" />\n </svg>\n );\n}\n\nfunction ChevronRightIcon() {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 256 256\"\n fill=\"currentColor\"\n aria-hidden=\"true\"\n >\n <path d=\"M181.66,133.66l-80,80a8,8,0,0,1-11.32-11.32L164.69,128,90.34,53.66a8,8,0,0,1,11.32-11.32l80,80A8,8,0,0,1,181.66,133.66Z\" />\n </svg>\n );\n}\n\n// ============================================\n// Context\n// ============================================\n\ninterface SidebarContextValue {\n collapsed: boolean;\n setCollapsed: (collapsed: boolean) => void;\n open: boolean;\n setOpen: (open: boolean) => void;\n isMobile: boolean;\n position: 'left' | 'right';\n width: string;\n collapsedWidth: string;\n collapsible: SidebarCollapsible;\n hasIcons: boolean;\n toggleSidebar: () => void;\n sidebarId: string;\n}\n\nconst SidebarContext = React.createContext<SidebarContextValue | null>(null);\n\n/**\n * Hook to access sidebar state and controls.\n * Returns safe defaults if used outside a SidebarProvider/Sidebar.\n */\nfunction useSidebar() {\n const context = React.useContext(SidebarContext);\n if (!context) {\n // Return safe defaults when used outside provider\n return {\n collapsed: false,\n setCollapsed: () => {},\n open: false,\n setOpen: () => {},\n isMobile: false,\n position: 'left' as const,\n width: '240px',\n collapsedWidth: '56px',\n collapsible: 'icon' as SidebarCollapsible,\n hasIcons: true,\n toggleSidebar: () => {},\n sidebarId: 'sidebar',\n state: 'expanded' as 'expanded' | 'collapsed' | 'open' | 'closed',\n };\n }\n return {\n ...context,\n state: context.isMobile\n ? (context.open ? 'open' : 'closed')\n : (context.collapsed ? 'collapsed' : 'expanded'),\n };\n}\n\n/**\n * @deprecated Use `useSidebar` instead. This will be removed in a future version.\n */\nfunction useSidebarContext() {\n const context = React.useContext(SidebarContext);\n if (!context) {\n throw new Error('Sidebar compound components must be used within a Sidebar');\n }\n return context;\n}\n\n// ============================================\n// Hooks\n// ============================================\n\nfunction useIsMobile() {\n const [isMobile, setIsMobile] = React.useState(false);\n\n React.useEffect(() => {\n const mq = window.matchMedia('(max-width: 767px)');\n setIsMobile(mq.matches);\n const handler = (e: MediaQueryListEvent) => setIsMobile(e.matches);\n mq.addEventListener('change', handler);\n return () => mq.removeEventListener('change', handler);\n }, []);\n\n return isMobile;\n}\n\nfunction useControllableState<T>(\n controlledValue: T | undefined,\n defaultValue: T,\n onChange?: (value: T) => void\n): [T, (value: T) => void] {\n const [uncontrolledValue, setUncontrolledValue] = React.useState(defaultValue);\n const isControlled = controlledValue !== undefined;\n const value = isControlled ? controlledValue : uncontrolledValue;\n\n const setValue = React.useCallback(\n (newValue: T) => {\n if (!isControlled) {\n setUncontrolledValue(newValue);\n }\n onChange?.(newValue);\n },\n [isControlled, onChange]\n );\n\n return [value, setValue];\n}\n\nfunction hasSidebarItemIcons(children: React.ReactNode): boolean {\n let found = false;\n\n const visit = (nodes: React.ReactNode) => {\n React.Children.forEach(nodes, child => {\n if (found || !React.isValidElement(child)) return;\n\n if (child.type === SidebarItem) {\n const props = child.props as SidebarItemProps;\n if (props.icon) {\n found = true;\n return;\n }\n }\n\n const childProps = child.props as { children?: React.ReactNode };\n if (childProps?.children) {\n visit(childProps.children);\n }\n });\n };\n\n visit(children);\n return found;\n}\n\n// ============================================\n// Components\n// ============================================\n\n/**\n * SidebarProvider - Wrap your app layout to provide sidebar state to children.\n * This enables external triggers and keyboard shortcuts.\n */\nfunction SidebarProvider({\n children,\n collapsed: controlledCollapsed,\n defaultCollapsed = false,\n onCollapsedChange,\n open: controlledOpen,\n defaultOpen = false,\n onOpenChange,\n width = '240px',\n collapsedWidth = '56px',\n position = 'left',\n collapsible = 'icon',\n enableKeyboardShortcut = true,\n}: SidebarProviderProps) {\n const isMobile = useIsMobile();\n const sidebarId = React.useId();\n\n const [collapsed, setCollapsed] = useControllableState(\n controlledCollapsed,\n defaultCollapsed,\n onCollapsedChange\n );\n\n const [open, setOpen] = useControllableState(\n controlledOpen,\n defaultOpen,\n onOpenChange\n );\n\n const toggleSidebar = React.useCallback(() => {\n if (collapsible === 'none') return;\n if (isMobile) {\n setOpen(!open);\n } else {\n setCollapsed(!collapsed);\n }\n }, [isMobile, open, collapsed, setOpen, setCollapsed, collapsible]);\n\n // Handle Cmd/Ctrl+B keyboard shortcut (skips editable elements like Editor)\n useKeyboardShortcut({\n name: 'SIDEBAR_TOGGLE',\n handler: toggleSidebar,\n enabled: enableKeyboardShortcut && collapsible !== 'none',\n });\n\n // Handle escape key for mobile drawer\n React.useEffect(() => {\n if (!isMobile || !open) return;\n\n const handleEscape = (e: KeyboardEvent) => {\n if (e.key === 'Escape') {\n setOpen(false);\n }\n };\n\n document.addEventListener('keydown', handleEscape);\n return () => document.removeEventListener('keydown', handleEscape);\n }, [isMobile, open, setOpen]);\n\n // Lock body scroll when mobile drawer is open\n React.useEffect(() => {\n if (!isMobile) return;\n\n if (open) {\n document.body.style.overflow = 'hidden';\n } else {\n document.body.style.overflow = '';\n }\n\n return () => {\n document.body.style.overflow = '';\n };\n }, [isMobile, open]);\n\n const contextValue: SidebarContextValue = {\n collapsed,\n setCollapsed,\n open,\n setOpen,\n isMobile,\n position,\n width,\n collapsedWidth,\n collapsible,\n hasIcons: true,\n toggleSidebar,\n sidebarId,\n };\n\n return (\n <SidebarContext.Provider value={contextValue}>\n {children}\n </SidebarContext.Provider>\n );\n}\n\nfunction SidebarRoot({\n children,\n collapsed: controlledCollapsed,\n defaultCollapsed = false,\n onCollapsedChange,\n open: controlledOpen,\n defaultOpen = false,\n onOpenChange,\n width = '240px',\n collapsedWidth = '56px',\n position = 'left',\n collapsible = 'icon',\n className,\n style: styleProp,\n 'aria-label': ariaLabel,\n ...htmlProps\n}: SidebarProps) {\n // Check if we're inside a SidebarProvider\n const existingContext = React.useContext(SidebarContext);\n const isMobile = useIsMobile();\n\n const [internalCollapsed, setInternalCollapsed] = useControllableState(\n controlledCollapsed,\n defaultCollapsed,\n onCollapsedChange\n );\n\n const [internalOpen, setInternalOpen] = useControllableState(\n controlledOpen,\n defaultOpen,\n onOpenChange\n );\n\n // Use existing context values if inside a provider, otherwise use internal state\n const collapsed = existingContext ? existingContext.collapsed : internalCollapsed;\n const setCollapsed = existingContext ? existingContext.setCollapsed : setInternalCollapsed;\n const open = existingContext ? existingContext.open : internalOpen;\n const setOpen = existingContext ? existingContext.setOpen : setInternalOpen;\n const resolvedPosition = existingContext ? existingContext.position : position;\n const resolvedWidth = existingContext ? existingContext.width : width;\n const resolvedCollapsedWidth = existingContext ? existingContext.collapsedWidth : collapsedWidth;\n const resolvedCollapsible = existingContext ? existingContext.collapsible : collapsible;\n const hasIcons = React.useMemo(() => hasSidebarItemIcons(children), [children]);\n const shouldCollapseToZero = !isMobile && resolvedCollapsible === 'icon' && collapsed && !hasIcons;\n const isOffcanvasCollapsed = !isMobile && resolvedCollapsible === 'offcanvas' && collapsed;\n const effectiveCollapsedWidth = (shouldCollapseToZero || isOffcanvasCollapsed) ? '0px' : resolvedCollapsedWidth;\n const sidebarId = React.useId();\n const resolvedSidebarId = existingContext ? existingContext.sidebarId : sidebarId;\n const sidebarRef = React.useRef<HTMLElement>(null);\n\n useFocusTrap(sidebarRef, isMobile && open);\n\n const toggleSidebar = React.useCallback(() => {\n if (resolvedCollapsible === 'none') return;\n if (isMobile) {\n setOpen(!open);\n } else {\n setCollapsed(!collapsed);\n }\n }, [isMobile, open, collapsed, setOpen, setCollapsed, resolvedCollapsible]);\n\n // Handle escape key for mobile drawer (only if no provider)\n React.useEffect(() => {\n if (existingContext) return; // Provider handles this\n if (!isMobile || !open) return;\n\n const handleEscape = (e: KeyboardEvent) => {\n if (e.key === 'Escape') {\n setOpen(false);\n }\n };\n\n document.addEventListener('keydown', handleEscape);\n return () => document.removeEventListener('keydown', handleEscape);\n }, [existingContext, isMobile, open, setOpen]);\n\n // Lock body scroll when mobile drawer is open (only if no provider)\n React.useEffect(() => {\n if (existingContext) return; // Provider handles this\n if (!isMobile) return;\n\n if (open) {\n document.body.style.overflow = 'hidden';\n } else {\n document.body.style.overflow = '';\n }\n\n return () => {\n document.body.style.overflow = '';\n };\n }, [existingContext, isMobile, open]);\n\n const contextValue: SidebarContextValue = {\n ...(existingContext || {\n collapsed,\n setCollapsed,\n open,\n setOpen,\n isMobile,\n position: resolvedPosition,\n width: resolvedWidth,\n collapsedWidth: resolvedCollapsedWidth,\n collapsible: resolvedCollapsible,\n hasIcons,\n toggleSidebar,\n sidebarId: resolvedSidebarId,\n }),\n hasIcons,\n };\n\n const isCollapsedForStyle = resolvedCollapsible === 'icon' && collapsed;\n\n const classes = [\n styles.root,\n isMobile && styles.mobile,\n !isMobile && isCollapsedForStyle && styles.collapsed,\n !isMobile && isCollapsedForStyle && shouldCollapseToZero && styles.collapsedNoIcons,\n isOffcanvasCollapsed && styles.offcanvasCollapsed,\n resolvedPosition === 'right' && styles.positionRight,\n className,\n ].filter(Boolean).join(' ');\n\n const style: React.CSSProperties = {\n '--sidebar-width': resolvedWidth,\n '--sidebar-collapsed-width': resolvedCollapsedWidth,\n '--sidebar-effective-collapsed-width': effectiveCollapsedWidth,\n ...styleProp,\n } as React.CSSProperties;\n\n const content = (\n <aside\n ref={sidebarRef}\n id={resolvedSidebarId}\n {...htmlProps}\n className={classes}\n style={style}\n role={isMobile ? 'dialog' : undefined}\n aria-modal={isMobile && open ? true : undefined}\n aria-hidden={isMobile && !open ? true : undefined}\n aria-label={isMobile ? (ariaLabel || 'Sidebar navigation') : ariaLabel}\n data-state={isMobile ? (open ? 'open' : 'closed') : (collapsed ? 'collapsed' : 'expanded')}\n data-position={resolvedPosition}\n data-collapsible={resolvedCollapsible}\n data-icon-collapse={resolvedCollapsible === 'icon' ? (hasIcons ? 'icons' : 'none') : undefined}\n >\n {children}\n </aside>\n );\n\n return (\n <SidebarContext.Provider value={contextValue}>\n {content}\n </SidebarContext.Provider>\n );\n}\n\nfunction SidebarHeader({\n children,\n collapsedContent,\n className,\n ...htmlProps\n}: SidebarHeaderProps) {\n const { collapsed, isMobile } = useSidebarContext();\n const isCollapsed = collapsed && !isMobile;\n const classes = [styles.header, className].filter(Boolean).join(' ');\n\n // Show collapsed content when sidebar is collapsed (and we have it), otherwise show children\n const content = isCollapsed && collapsedContent ? collapsedContent : children;\n\n return <div {...htmlProps} className={classes}>{content}</div>;\n}\n\nfunction SidebarNav({\n children,\n 'aria-label': ariaLabel = 'Main navigation',\n className,\n ...htmlProps\n}: SidebarNavProps) {\n const classes = [styles.nav, className].filter(Boolean).join(' ');\n return (\n <nav {...htmlProps} className={classes} aria-label={ariaLabel}>\n <ScrollArea orientation=\"vertical\" showFades className={styles.navScrollArea}>\n {children}\n </ScrollArea>\n </nav>\n );\n}\n\nfunction SidebarSection({\n children,\n label,\n action,\n collapsible: isCollapsibleProp = false,\n defaultOpen = true,\n className,\n ...htmlProps\n}: SidebarSectionProps) {\n const { collapsed, isMobile } = useSidebarContext();\n\n const classes = [\n styles.section,\n className\n ].filter(Boolean).join(' ');\n\n const showLabel = label && (!collapsed || isMobile);\n const showAction = action && (!collapsed || isMobile);\n const isCollapsible = isCollapsibleProp && showLabel;\n\n // Non-collapsible section\n if (!isCollapsible) {\n return (\n <div {...htmlProps} className={classes} role=\"group\" aria-label={label}>\n {(showLabel || showAction) && (\n <div className={styles.sectionHeader}>\n {showLabel && <div className={styles.sectionLabel}>{label}</div>}\n {showAction && <div className={styles.sectionActionWrapper}>{action}</div>}\n </div>\n )}\n <ul className={styles.sectionList}>\n {children}\n </ul>\n </div>\n );\n }\n\n // Collapsible section using Collapsible component\n return (\n <div {...htmlProps} className={classes} role=\"group\" aria-label={label}>\n <Collapsible defaultOpen={defaultOpen} className={styles.sectionCollapsible}>\n <div className={styles.sectionHeader}>\n <Collapsible.Trigger\n className={styles.sectionTrigger}\n chevronPosition=\"end\"\n >\n <span className={styles.sectionLabel}>{label}</span>\n </Collapsible.Trigger>\n {showAction && <div className={styles.sectionActionWrapper}>{action}</div>}\n </div>\n <Collapsible.Content className={styles.sectionContent}>\n <ul className={styles.sectionList}>\n {children}\n </ul>\n </Collapsible.Content>\n </Collapsible>\n </div>\n );\n}\n\nfunction SidebarSectionAction({\n children,\n onClick,\n 'aria-label': ariaLabel,\n className,\n ...htmlProps\n}: SidebarSectionActionProps) {\n const classes = [styles.sectionAction, className].filter(Boolean).join(' ');\n\n return (\n <button\n type=\"button\"\n {...htmlProps}\n className={classes}\n onClick={(event) => onClick?.(event)}\n aria-label={ariaLabel}\n >\n {children}\n </button>\n );\n}\n\nfunction SidebarItem({\n children,\n icon,\n active = false,\n disabled = false,\n badge,\n href,\n onClick,\n hasSubmenu = false,\n expanded: controlledExpanded,\n defaultExpanded = false,\n onExpandedChange,\n asChild = false,\n className,\n ...rest\n}: SidebarItemProps) {\n const { collapsed, isMobile } = useSidebarContext();\n const [expanded, setExpanded] = useControllableState(\n controlledExpanded,\n defaultExpanded,\n onExpandedChange\n );\n\n const isCollapsed = collapsed && !isMobile;\n const showLabel = !isCollapsed;\n\n const classes = [\n styles.item,\n active && styles.itemActive,\n disabled && styles.itemDisabled,\n hasSubmenu && styles.itemHasSubmenu,\n expanded && styles.itemExpanded,\n className,\n ].filter(Boolean).join(' ');\n\n const handleClick = (e: React.MouseEvent<HTMLElement>) => {\n if (disabled) {\n e.preventDefault();\n return;\n }\n if (hasSubmenu) {\n e.preventDefault();\n setExpanded(!expanded);\n }\n onClick?.(e);\n };\n\n // Extract text content from children for aria-label when collapsed\n // For asChild, try to extract from the child's children prop\n let labelText: string | undefined;\n if (asChild && React.isValidElement(children)) {\n const childProps = children.props as { children?: React.ReactNode };\n labelText = typeof childProps.children === 'string' ? childProps.children : undefined;\n } else {\n labelText = typeof children === 'string' ? children : undefined;\n }\n\n const itemContent = (\n <>\n {icon && <span className={styles.itemIcon}>{icon}</span>}\n {showLabel && <span className={styles.itemLabel}>{asChild && React.isValidElement(children) ? (children.props as { children?: React.ReactNode }).children : children}</span>}\n {showLabel && badge && <span className={styles.itemBadge}>{badge}</span>}\n {showLabel && hasSubmenu && (\n <span className={styles.itemChevron}>\n <ChevronRightIcon />\n </span>\n )}\n </>\n );\n\n const itemProps = {\n className: classes,\n onClick: handleClick,\n 'aria-current': active ? 'page' as const : undefined,\n 'aria-disabled': disabled || undefined,\n 'aria-expanded': hasSubmenu ? expanded : undefined,\n 'aria-label': isCollapsed ? labelText : undefined,\n tabIndex: disabled ? -1 : 0,\n };\n\n let itemElement: React.ReactElement;\n\n if (asChild && React.isValidElement(children)) {\n // Clone the child element and merge props\n const childProps = children.props as {\n className?: string;\n onClick?: (event: React.MouseEvent<HTMLElement>) => void;\n };\n itemElement = React.cloneElement(children, {\n ...itemProps,\n ...rest,\n onClick: composeEventHandlers(\n childProps.onClick,\n (event: React.MouseEvent<HTMLElement>) => handleClick(event)\n ),\n // Merge classNames\n className: [classes, childProps.className].filter(Boolean).join(' '),\n children: itemContent,\n } as React.HTMLAttributes<HTMLElement>);\n } else if (href) {\n itemElement = (\n <a {...itemProps} {...rest} href={href}>\n {itemContent}\n </a>\n );\n } else {\n itemElement = (\n <button {...itemProps} {...rest} type=\"button\">\n {itemContent}\n </button>\n );\n }\n\n // Wrap in tooltip when collapsed\n const wrappedItem = isCollapsed ? (\n <Tooltip content={labelText || children} side=\"right\" delay={100}>\n {itemElement}\n </Tooltip>\n ) : (\n itemElement\n );\n\n const wrapperClasses = [\n styles.itemWrapper,\n expanded && styles.itemExpanded,\n ].filter(Boolean).join(' ');\n\n return <li className={wrapperClasses}>{wrappedItem}</li>;\n}\n\nfunction SidebarSubItem({\n children,\n active = false,\n disabled = false,\n href,\n onClick,\n className,\n ...rest\n}: SidebarSubItemProps) {\n const { collapsed, isMobile } = useSidebarContext();\n\n // Don't render sub-items when collapsed (unless mobile)\n if (collapsed && !isMobile) {\n return null;\n }\n\n const classes = [\n styles.subItem,\n active && styles.subItemActive,\n disabled && styles.subItemDisabled,\n className,\n ].filter(Boolean).join(' ');\n\n const handleClick = (e: React.MouseEvent<HTMLElement>) => {\n if (disabled) {\n e.preventDefault();\n return;\n }\n onClick?.(e);\n };\n\n const itemProps = {\n className: classes,\n onClick: handleClick,\n 'aria-current': active ? 'page' as const : undefined,\n 'aria-disabled': disabled,\n tabIndex: disabled ? -1 : 0,\n };\n\n const itemElement = href ? (\n <a {...itemProps} {...rest} href={href}>\n {children}\n </a>\n ) : (\n <button {...itemProps} {...rest} type=\"button\">\n {children}\n </button>\n );\n\n return <li className={styles.subItemWrapper}>{itemElement}</li>;\n}\n\nfunction SidebarSubmenu({ children }: { children: React.ReactNode }) {\n return (\n <li className={styles.submenuWrapper}>\n <ul className={styles.submenu}>\n {children}\n </ul>\n </li>\n );\n}\n\nfunction SidebarFooter({ children, className, ...htmlProps }: SidebarFooterProps) {\n const classes = [styles.footer, className].filter(Boolean).join(' ');\n return <div {...htmlProps} className={classes}>{children}</div>;\n}\n\nfunction SidebarTrigger({\n children,\n 'aria-label': ariaLabel = 'Toggle navigation',\n className,\n onClick,\n ...htmlProps\n}: SidebarTriggerProps) {\n const { open, setOpen, isMobile, sidebarId } = useSidebarContext();\n\n // Only render trigger on mobile\n if (!isMobile) {\n return null;\n }\n\n const classes = [styles.trigger, className].filter(Boolean).join(' ');\n\n return (\n <button\n {...htmlProps}\n type=\"button\"\n className={classes}\n onClick={composeEventHandlers(onClick, () => setOpen(!open))}\n aria-label={ariaLabel}\n aria-expanded={open}\n aria-controls={sidebarId}\n >\n {children || (open ? <CloseIcon /> : <MenuIcon />)}\n </button>\n );\n}\n\nfunction SidebarOverlay({ className, onClick, ...htmlProps }: SidebarOverlayProps) {\n const { open, setOpen, isMobile } = useSidebarContext();\n\n // Only render overlay on mobile when open\n if (!isMobile || !open) {\n return null;\n }\n\n const classes = [styles.overlay, className].filter(Boolean).join(' ');\n\n return (\n <div\n {...htmlProps}\n className={classes}\n onClick={composeEventHandlers(onClick, () => setOpen(false))}\n aria-hidden=\"true\"\n data-state={open ? 'open' : 'closed'}\n />\n );\n}\n\nfunction SidebarCollapseToggle({\n 'aria-label': ariaLabel,\n className,\n onClick,\n ...htmlProps\n}: SidebarCollapseToggleProps) {\n const { collapsed, setCollapsed, isMobile, collapsible, hasIcons } = useSidebarContext();\n\n // Don't show on mobile or when collapsing is disabled\n if (isMobile || collapsible === 'none') {\n return null;\n }\n\n const shouldFloat = collapsed && (\n (collapsible === 'icon' && !hasIcons) ||\n collapsible === 'offcanvas'\n );\n const classes = [\n styles.collapseToggle,\n shouldFloat && styles.collapseToggleFloating,\n className,\n ].filter(Boolean).join(' ');\n const label = ariaLabel || (collapsed ? 'Expand sidebar' : 'Collapse sidebar');\n\n return (\n <button\n {...htmlProps}\n type=\"button\"\n className={classes}\n onClick={composeEventHandlers(onClick, () => setCollapsed(!collapsed))}\n aria-label={label}\n >\n <CollapsePanelIcon />\n </button>\n );\n}\n\nfunction SidebarRail({\n className,\n onClick,\n title,\n 'aria-label': ariaLabel,\n ...htmlProps\n}: SidebarRailProps) {\n const { collapsed, setCollapsed, isMobile, collapsible } = useSidebarContext();\n\n // Don't show on mobile or when collapsing is disabled\n if (isMobile || collapsible === 'none') {\n return null;\n }\n\n const classes = [\n styles.rail,\n collapsed && styles.railCollapsed,\n className,\n ].filter(Boolean).join(' ');\n\n return (\n <button\n {...htmlProps}\n type=\"button\"\n className={classes}\n onClick={composeEventHandlers(onClick, () => setCollapsed(!collapsed))}\n aria-label={ariaLabel ?? (collapsed ? 'Expand sidebar' : 'Collapse sidebar')}\n title={title ?? (collapsed ? 'Expand sidebar' : 'Collapse sidebar')}\n />\n );\n}\n\nfunction SidebarMenuSkeleton({\n count = 5,\n showIcon = true,\n className,\n ...htmlProps\n}: SidebarMenuSkeletonProps) {\n const { collapsed, isMobile } = useSidebarContext();\n const isCollapsed = collapsed && !isMobile;\n\n const classes = [styles.menuSkeleton, className].filter(Boolean).join(' ');\n const labelWidths = ['64%', '72%', '68%', '79%', '74%', '66%', '83%', '70%'];\n\n return (\n <div {...htmlProps} className={classes} aria-hidden=\"true\">\n {Array.from({ length: count }).map((_, i) => (\n <div key={i} className={styles.skeletonItem}>\n {showIcon && <Skeleton variant=\"avatar\" size=\"sm\" />}\n {!isCollapsed && (\n <Skeleton\n variant=\"text\"\n className={styles.skeletonLabel}\n width={labelWidths[i % labelWidths.length]}\n />\n )}\n </div>\n ))}\n </div>\n );\n}\n\n// ============================================\n// Export compound component\n// ============================================\n\nexport const Sidebar = Object.assign(SidebarRoot, {\n Header: SidebarHeader,\n Nav: SidebarNav,\n Section: SidebarSection,\n SectionAction: SidebarSectionAction,\n Item: SidebarItem,\n SubItem: SidebarSubItem,\n Submenu: SidebarSubmenu,\n Footer: SidebarFooter,\n Trigger: SidebarTrigger,\n Overlay: SidebarOverlay,\n CollapseToggle: SidebarCollapseToggle,\n Rail: SidebarRail,\n MenuSkeleton: SidebarMenuSkeleton,\n});\n\n// Re-export individual components\nexport {\n SidebarProvider,\n SidebarRoot,\n SidebarHeader,\n SidebarNav,\n SidebarSection,\n SidebarSectionAction,\n SidebarItem,\n SidebarSubItem,\n SidebarSubmenu,\n SidebarFooter,\n SidebarTrigger,\n SidebarOverlay,\n SidebarCollapseToggle,\n SidebarRail,\n SidebarMenuSkeleton,\n};\n\n// Export hooks\nexport { useSidebar };\n\n// Export context hook for backwards compatibility (deprecated)\nexport { useSidebarContext };\n"],"names":["jsx","React","useKeyboardShortcut","useFocusTrap","styles","ScrollArea","jsxs","Collapsible","Fragment","Tooltip","Skeleton"],"mappings":"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"}