@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
@@ -27,6 +27,13 @@ function _interopNamespaceDefault(e) {
27
27
  return Object.freeze(n);
28
28
  }
29
29
  const React__namespace = /* @__PURE__ */ _interopNamespaceDefault(React);
30
+ function composeNavMenuClickHandlers(childHandler, internalHandler) {
31
+ return (event) => {
32
+ childHandler == null ? void 0 : childHandler(event);
33
+ if (event.defaultPrevented) return;
34
+ internalHandler(event);
35
+ };
36
+ }
30
37
  function useIsMobile() {
31
38
  const [isMobile, setIsMobile] = React__namespace.useState(false);
32
39
  React__namespace.useEffect(() => {
@@ -39,6 +46,10 @@ function useIsMobile() {
39
46
  }, []);
40
47
  return isMobile;
41
48
  }
49
+ function renderNavigationMenuIcon(slot, state) {
50
+ if (slot === void 0) return void 0;
51
+ return typeof slot === "function" ? slot(state) : slot;
52
+ }
42
53
  function NavigationMenuRoot({
43
54
  children,
44
55
  value: controlledValue,
@@ -47,6 +58,7 @@ function NavigationMenuRoot({
47
58
  orientation = "horizontal",
48
59
  delayDuration = 200,
49
60
  skipDelayDuration = 300,
61
+ icons,
50
62
  className,
51
63
  "aria-label": ariaLabel = "Main navigation",
52
64
  ...htmlProps
@@ -70,9 +82,10 @@ function NavigationMenuRoot({
70
82
  ...state,
71
83
  orientation,
72
84
  isMobile,
73
- rootId
85
+ rootId,
86
+ icons
74
87
  }),
75
- [state, orientation, isMobile, rootId]
88
+ [state, orientation, isMobile, rootId, icons]
76
89
  );
77
90
  return /* @__PURE__ */ jsxRuntime.jsx(NavigationMenuContext.NavigationMenuContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsxRuntime.jsxs("nav", { ...htmlProps, className: classes, "aria-label": ariaLabel, "data-orientation": orientation, children: [
78
91
  children,
@@ -84,8 +97,11 @@ function NavigationMenuList({ children, className }) {
84
97
  const { orientation, triggerOrder, triggerRefs, value } = NavigationMenuContext.useNavigationMenuContext();
85
98
  const listRef = React__namespace.useRef(null);
86
99
  const handleKeyDown = (e) => {
100
+ var _a;
87
101
  const order = triggerOrder.current;
88
- const currentIdx = order.indexOf(value);
102
+ const focusedValue = (_a = document.activeElement) == null ? void 0 : _a.getAttribute("data-navmenu-value");
103
+ const currentValue = focusedValue || value;
104
+ const currentIdx = order.indexOf(currentValue);
89
105
  const newIdx = a11y.handleArrowNavigation(e, order, currentIdx >= 0 ? currentIdx : 0, {
90
106
  orientation: orientation === "horizontal" ? "horizontal" : "vertical",
91
107
  loop: true
@@ -113,12 +129,29 @@ function NavigationMenuList({ children, className }) {
113
129
  }
114
130
  );
115
131
  }
116
- let itemCounter = 0;
117
132
  function NavigationMenuItem({ children, value: valueProp, className }) {
118
133
  const rootCtx = NavigationMenuContext.useNavigationMenuContext();
119
- const [autoValue] = React__namespace.useState(() => valueProp || `navmenu-item-${++itemCounter}`);
134
+ const generatedValue = React__namespace.useId();
135
+ const autoValue = valueProp || `navmenu-item-${generatedValue}`;
120
136
  const triggerId = `${rootCtx.rootId}-trigger-${autoValue}`;
121
137
  const contentId = `${rootCtx.rootId}-content-${autoValue}`;
138
+ React__namespace.useEffect(() => {
139
+ if (!rootCtx.itemOrder.current.includes(autoValue)) {
140
+ rootCtx.itemOrder.current.push(autoValue);
141
+ }
142
+ const existing = rootCtx.itemInfoMap.current.get(autoValue);
143
+ if (!existing) {
144
+ rootCtx.itemInfoMap.current.set(autoValue, {
145
+ value: autoValue,
146
+ triggerLabel: "",
147
+ contentChildren: null
148
+ });
149
+ }
150
+ return () => {
151
+ rootCtx.itemOrder.current = rootCtx.itemOrder.current.filter((v) => v !== autoValue);
152
+ rootCtx.itemInfoMap.current.delete(autoValue);
153
+ };
154
+ }, [autoValue, rootCtx.itemInfoMap, rootCtx.itemOrder]);
122
155
  const itemCtx = React__namespace.useMemo(
123
156
  () => ({
124
157
  value: autoValue,
@@ -130,6 +163,7 @@ function NavigationMenuItem({ children, value: valueProp, className }) {
130
163
  return /* @__PURE__ */ jsxRuntime.jsx(NavigationMenuContext.NavigationMenuItemContext.Provider, { value: itemCtx, children: /* @__PURE__ */ jsxRuntime.jsx("li", { className, children }) });
131
164
  }
132
165
  function NavigationMenuTrigger({ children, className }) {
166
+ var _a;
133
167
  const ctx = NavigationMenuContext.useNavigationMenuContext();
134
168
  const itemCtx = NavigationMenuContext.useNavigationMenuItemContext();
135
169
  const isOpen = ctx.value === itemCtx.value;
@@ -181,7 +215,7 @@ function NavigationMenuTrigger({ children, className }) {
181
215
  }, ctx.delayDuration);
182
216
  };
183
217
  const handleKeyDown = (e) => {
184
- var _a;
218
+ var _a2;
185
219
  if (e.key === "Enter" || e.key === " ") {
186
220
  e.preventDefault();
187
221
  ctx.setValue(isOpen ? "" : itemCtx.value);
@@ -189,10 +223,15 @@ function NavigationMenuTrigger({ children, className }) {
189
223
  if (e.key === "Escape" && isOpen) {
190
224
  e.preventDefault();
191
225
  ctx.setValue("");
192
- (_a = triggerRef.current) == null ? void 0 : _a.focus();
226
+ (_a2 = triggerRef.current) == null ? void 0 : _a2.focus();
193
227
  }
194
228
  };
195
229
  const classes = [NavigationMenu_module.default.trigger, className].filter(Boolean).join(" ");
230
+ const chevronOverride = renderNavigationMenuIcon((_a = ctx.icons) == null ? void 0 : _a.triggerChevron, {
231
+ slot: "triggerChevron",
232
+ open: isOpen,
233
+ isMobile: ctx.isMobile
234
+ });
196
235
  return /* @__PURE__ */ jsxRuntime.jsxs(
197
236
  "button",
198
237
  {
@@ -200,6 +239,7 @@ function NavigationMenuTrigger({ children, className }) {
200
239
  type: "button",
201
240
  id: itemCtx.triggerId,
202
241
  className: classes,
242
+ "data-navmenu-value": itemCtx.value,
203
243
  "aria-expanded": isOpen,
204
244
  "aria-controls": itemCtx.contentId,
205
245
  "data-state": isOpen ? "open" : "closed",
@@ -209,7 +249,7 @@ function NavigationMenuTrigger({ children, className }) {
209
249
  onKeyDown: handleKeyDown,
210
250
  children: [
211
251
  children,
212
- /* @__PURE__ */ jsxRuntime.jsx(react.CaretDown, { size: 12, className: NavigationMenu_module.default.triggerChevron, "aria-hidden": true })
252
+ chevronOverride ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: NavigationMenu_module.default.triggerChevron, "aria-hidden": true, children: chevronOverride }) : /* @__PURE__ */ jsxRuntime.jsx(react.CaretDown, { size: 12, className: NavigationMenu_module.default.triggerChevron, "aria-hidden": true })
213
253
  ]
214
254
  }
215
255
  );
@@ -305,9 +345,24 @@ function NavigationMenuLink({
305
345
  ...htmlProps
306
346
  }) {
307
347
  const ctx = React__namespace.useContext(NavigationMenuContext.NavigationMenuContext);
348
+ const itemCtx = React__namespace.useContext(NavigationMenuContext.NavigationMenuItemContext);
308
349
  const isStructured = !!(title || description || icon);
350
+ React__namespace.useEffect(() => {
351
+ if (!ctx || !itemCtx) return;
352
+ const existing = ctx.itemInfoMap.current.get(itemCtx.value);
353
+ const fallbackLabel = typeof children === "string" ? children : title || "";
354
+ const resolvedHref = typeof href === "string" ? href : existing == null ? void 0 : existing.linkHref;
355
+ ctx.itemInfoMap.current.set(itemCtx.value, {
356
+ ...existing,
357
+ value: itemCtx.value,
358
+ triggerLabel: (existing == null ? void 0 : existing.triggerLabel) || fallbackLabel || "",
359
+ contentChildren: (existing == null ? void 0 : existing.contentChildren) ?? null,
360
+ linkHref: resolvedHref
361
+ });
362
+ }, [ctx, itemCtx, children, title, href]);
309
363
  const handleClick = (e) => {
310
364
  onClick == null ? void 0 : onClick(e);
365
+ if (e.defaultPrevented) return;
311
366
  if ((ctx == null ? void 0 : ctx.isMobile) && ctx.mobileOpen) {
312
367
  ctx.setMobileOpen(false);
313
368
  }
@@ -331,9 +386,11 @@ function NavigationMenuLink({
331
386
  onClick: handleClick
332
387
  };
333
388
  if (asChild && React__namespace.isValidElement(children)) {
389
+ const childProps = children.props;
334
390
  return React__namespace.cloneElement(children, {
335
391
  ...linkProps2,
336
- className: [classes2, children.props.className].filter(Boolean).join(" "),
392
+ onClick: composeNavMenuClickHandlers(childProps.onClick, handleClick),
393
+ className: [classes2, childProps.className].filter(Boolean).join(" "),
337
394
  children: /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
338
395
  icon && /* @__PURE__ */ jsxRuntime.jsx("span", { className: NavigationMenu_module.default.linkIcon, children: icon }),
339
396
  /* @__PURE__ */ jsxRuntime.jsxs("span", { className: NavigationMenu_module.default.linkBody, children: [
@@ -364,9 +421,11 @@ function NavigationMenuLink({
364
421
  onClick: handleClick
365
422
  };
366
423
  if (asChild && React__namespace.isValidElement(children)) {
424
+ const childProps = children.props;
367
425
  return React__namespace.cloneElement(children, {
368
426
  ...linkProps,
369
- className: [classes, children.props.className].filter(Boolean).join(" ")
427
+ onClick: composeNavMenuClickHandlers(childProps.onClick, handleClick),
428
+ className: [classes, childProps.className].filter(Boolean).join(" ")
370
429
  });
371
430
  }
372
431
  return /* @__PURE__ */ jsxRuntime.jsx("a", { ...linkProps, children });
@@ -463,7 +522,17 @@ function NavigationMenuMobileSection({ children, label }) {
463
522
  ] });
464
523
  }
465
524
  function MobileHamburger() {
466
- const { mobileOpen, setMobileOpen } = NavigationMenuContext.useNavigationMenuContext();
525
+ var _a, _b;
526
+ const ctx = NavigationMenuContext.useNavigationMenuContext();
527
+ const { mobileOpen, setMobileOpen } = ctx;
528
+ const iconOverride = renderNavigationMenuIcon(
529
+ mobileOpen ? (_a = ctx.icons) == null ? void 0 : _a.mobileClose : (_b = ctx.icons) == null ? void 0 : _b.mobileMenu,
530
+ {
531
+ slot: mobileOpen ? "mobileClose" : "mobileMenu",
532
+ open: mobileOpen,
533
+ isMobile: true
534
+ }
535
+ );
467
536
  return /* @__PURE__ */ jsxRuntime.jsx(
468
537
  "button",
469
538
  {
@@ -472,11 +541,12 @@ function MobileHamburger() {
472
541
  onClick: () => setMobileOpen(!mobileOpen),
473
542
  "aria-label": "Toggle navigation",
474
543
  "aria-expanded": mobileOpen,
475
- children: mobileOpen ? /* @__PURE__ */ jsxRuntime.jsx(react.X, { size: 24, "aria-hidden": true }) : /* @__PURE__ */ jsxRuntime.jsx(react.List, { size: 24, "aria-hidden": true })
544
+ children: iconOverride ?? (mobileOpen ? /* @__PURE__ */ jsxRuntime.jsx(react.X, { size: 24, "aria-hidden": true }) : /* @__PURE__ */ jsxRuntime.jsx(react.List, { size: 24, "aria-hidden": true }))
476
545
  }
477
546
  );
478
547
  }
479
548
  function MobileDrawer() {
549
+ var _a;
480
550
  const ctx = NavigationMenuContext.useNavigationMenuContext();
481
551
  const drawerRef = React__namespace.useRef(null);
482
552
  a11y.useFocusTrap(drawerRef, true);
@@ -495,14 +565,11 @@ function MobileDrawer() {
495
565
  document.addEventListener("keydown", handleKeyDown);
496
566
  return () => document.removeEventListener("keydown", handleKeyDown);
497
567
  }, [ctx]);
498
- const autoItems = React__namespace.useMemo(() => {
499
- const items = [];
500
- for (const value of ctx.triggerOrder.current) {
501
- const info = ctx.itemInfoMap.current.get(value);
502
- if (info) items.push(info);
503
- }
504
- return items;
505
- }, [ctx.triggerOrder, ctx.itemInfoMap]);
568
+ const autoItems = [];
569
+ for (const value of ctx.itemOrder.current) {
570
+ const info = ctx.itemInfoMap.current.get(value);
571
+ if (info) autoItems.push(info);
572
+ }
506
573
  const handleLinkClick = () => {
507
574
  ctx.setMobileOpen(false);
508
575
  };
@@ -533,7 +600,11 @@ function MobileDrawer() {
533
600
  className: NavigationMenu_module.default.drawerClose,
534
601
  onClick: () => ctx.setMobileOpen(false),
535
602
  "aria-label": "Close navigation",
536
- children: /* @__PURE__ */ jsxRuntime.jsx(react.X, { size: 20, "aria-hidden": true })
603
+ children: renderNavigationMenuIcon((_a = ctx.icons) == null ? void 0 : _a.drawerClose, {
604
+ slot: "drawerClose",
605
+ open: ctx.mobileOpen,
606
+ isMobile: true
607
+ }) ?? /* @__PURE__ */ jsxRuntime.jsx(react.X, { size: 20, "aria-hidden": true })
537
608
  }
538
609
  )
539
610
  ] }),
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../../../src/components/NavigationMenu/index.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { createPortal } from 'react-dom';\nimport { CaretDown, CaretRight, List, X } from '@phosphor-icons/react';\nimport { handleArrowNavigation, useFocusTrap } from '../../utils/a11y';\nimport { Collapsible } from '../Collapsible';\nimport { ScrollArea } from '../ScrollArea';\nimport {\n NavigationMenuContext,\n NavigationMenuItemContext,\n useNavigationMenuContext,\n useNavigationMenuItemContext,\n type NavigationMenuItemInfo,\n} from './NavigationMenuContext';\nimport { useNavigationMenu } from './useNavigationMenu';\nimport styles from './NavigationMenu.module.scss';\n\n// ============================================\n// Types\n// ============================================\n\nexport interface NavigationMenuProps extends React.HTMLAttributes<HTMLElement> {\n children: React.ReactNode;\n /** Controlled open item value */\n value?: string;\n /** Default open item value */\n defaultValue?: string;\n /** Callback when open item changes */\n onValueChange?: (value: string) => void;\n /** Menu orientation */\n orientation?: 'horizontal' | 'vertical';\n /** Delay before opening on hover (ms) */\n delayDuration?: number;\n /** Duration to skip delays between triggers (ms) */\n skipDelayDuration?: number;\n}\n\nexport interface NavigationMenuListProps {\n children: React.ReactNode;\n className?: string;\n}\n\nexport interface NavigationMenuItemProps {\n children: React.ReactNode;\n /** Unique item value (required for items with Trigger+Content) */\n value?: string;\n className?: string;\n}\n\nexport interface NavigationMenuTriggerProps {\n children: React.ReactNode;\n className?: string;\n}\n\nexport interface NavigationMenuContentProps {\n children: React.ReactNode;\n className?: string;\n}\n\nexport interface NavigationMenuLinkProps extends React.AnchorHTMLAttributes<HTMLAnchorElement> {\n /** Simple mode: children as text content */\n children?: React.ReactNode;\n /** Structured mode: title text */\n title?: string;\n /** Structured mode: description text */\n description?: string;\n /** Structured mode: icon element */\n icon?: React.ReactNode;\n /** Whether this link is the current page */\n active?: boolean;\n /** Highlighted card style */\n featured?: boolean;\n /** Render as child element (polymorphic) */\n asChild?: boolean;\n}\n\nexport interface NavigationMenuIndicatorProps {\n className?: string;\n}\n\nexport interface NavigationMenuViewportProps {\n className?: string;\n}\n\nexport interface NavigationMenuMobileContentProps {\n children: React.ReactNode;\n}\n\nexport interface NavigationMenuMobileBrandProps {\n children: React.ReactNode;\n}\n\nexport interface NavigationMenuMobileSectionProps {\n children: React.ReactNode;\n /** Section heading label */\n label?: string;\n}\n\n// ============================================\n// Hooks\n// ============================================\n\nfunction useIsMobile() {\n const [isMobile, setIsMobile] = React.useState(false);\n\n React.useEffect(() => {\n if (typeof window === 'undefined') return;\n\n const mq = window.matchMedia('(max-width: 767px)');\n setIsMobile(mq.matches);\n\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\n// ============================================\n// Root\n// ============================================\n\nfunction NavigationMenuRoot({\n children,\n value: controlledValue,\n defaultValue,\n onValueChange,\n orientation = 'horizontal',\n delayDuration = 200,\n skipDelayDuration = 300,\n className,\n 'aria-label': ariaLabel = 'Main navigation',\n ...htmlProps\n}: NavigationMenuProps) {\n const rootId = React.useId();\n const isMobile = useIsMobile();\n\n const state = useNavigationMenu({\n value: controlledValue,\n defaultValue,\n onValueChange,\n delayDuration,\n skipDelayDuration,\n });\n\n const classes = [\n styles.root,\n orientation === 'vertical' && styles.rootVertical,\n className,\n ].filter(Boolean).join(' ');\n\n const contextValue = React.useMemo(\n () => ({\n ...state,\n orientation,\n isMobile,\n rootId,\n }),\n [state, orientation, isMobile, rootId]\n );\n\n return (\n <NavigationMenuContext.Provider value={contextValue}>\n <nav {...htmlProps} className={classes} aria-label={ariaLabel} data-orientation={orientation}>\n {children}\n {isMobile && <MobileHamburger />}\n {isMobile && state.mobileOpen && <MobileDrawer />}\n </nav>\n </NavigationMenuContext.Provider>\n );\n}\n\n// ============================================\n// List\n// ============================================\n\nfunction NavigationMenuList({ children, className }: NavigationMenuListProps) {\n const { orientation, triggerOrder, triggerRefs, value } = useNavigationMenuContext();\n\n const listRef = React.useRef<HTMLUListElement>(null);\n\n const handleKeyDown = (e: React.KeyboardEvent) => {\n const order = triggerOrder.current;\n const currentIdx = order.indexOf(value);\n\n const newIdx = handleArrowNavigation(e, order, currentIdx >= 0 ? currentIdx : 0, {\n orientation: orientation === 'horizontal' ? 'horizontal' : 'vertical',\n loop: true,\n });\n\n if (newIdx !== undefined) {\n const targetValue = order[newIdx];\n const trigger = triggerRefs.current.get(targetValue);\n trigger?.focus();\n }\n };\n\n const classes = [\n styles.list,\n orientation === 'vertical' && styles.listVertical,\n className,\n ].filter(Boolean).join(' ');\n\n return (\n <ul\n ref={listRef}\n className={classes}\n role=\"list\"\n data-orientation={orientation}\n onKeyDown={handleKeyDown}\n >\n {children}\n </ul>\n );\n}\n\n// ============================================\n// Item\n// ============================================\n\nlet itemCounter = 0;\n\nfunction NavigationMenuItem({ children, value: valueProp, className }: NavigationMenuItemProps) {\n const rootCtx = useNavigationMenuContext();\n const [autoValue] = React.useState(() => valueProp || `navmenu-item-${++itemCounter}`);\n const triggerId = `${rootCtx.rootId}-trigger-${autoValue}`;\n const contentId = `${rootCtx.rootId}-content-${autoValue}`;\n\n const itemCtx = React.useMemo(\n () => ({\n value: autoValue,\n triggerId,\n contentId,\n }),\n [autoValue, triggerId, contentId]\n );\n\n return (\n <NavigationMenuItemContext.Provider value={itemCtx}>\n <li className={className}>{children}</li>\n </NavigationMenuItemContext.Provider>\n );\n}\n\n// ============================================\n// Trigger\n// ============================================\n\nfunction NavigationMenuTrigger({ children, className }: NavigationMenuTriggerProps) {\n const ctx = useNavigationMenuContext();\n const itemCtx = useNavigationMenuItemContext();\n const isOpen = ctx.value === itemCtx.value;\n\n // Register trigger\n const triggerRef = React.useRef<HTMLButtonElement>(null);\n\n React.useEffect(() => {\n if (triggerRef.current) {\n ctx.triggerRefs.current.set(itemCtx.value, triggerRef.current);\n if (!ctx.triggerOrder.current.includes(itemCtx.value)) {\n ctx.triggerOrder.current.push(itemCtx.value);\n }\n }\n return () => {\n ctx.triggerRefs.current.delete(itemCtx.value);\n ctx.triggerOrder.current = ctx.triggerOrder.current.filter(v => v !== itemCtx.value);\n };\n // Only register/unregister on mount/unmount\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [itemCtx.value]);\n\n // Register item info for mobile drawer\n React.useEffect(() => {\n const label = typeof children === 'string' ? children : '';\n const existing = ctx.itemInfoMap.current.get(itemCtx.value);\n ctx.itemInfoMap.current.set(itemCtx.value, {\n ...existing,\n value: itemCtx.value,\n triggerLabel: label || existing?.triggerLabel || '',\n } as NavigationMenuItemInfo);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [itemCtx.value, children]);\n\n const handleClick = () => {\n ctx.setValue(isOpen ? '' : itemCtx.value);\n };\n\n const handlePointerEnter = () => {\n if (ctx.closeTimerRef.current) {\n clearTimeout(ctx.closeTimerRef.current);\n ctx.closeTimerRef.current = null;\n }\n\n // Skip delay if recently open\n if (ctx.isRecentlyOpenRef.current) {\n ctx.setValue(itemCtx.value);\n return;\n }\n\n ctx.openTimerRef.current = setTimeout(() => {\n ctx.setValue(itemCtx.value);\n }, ctx.delayDuration);\n };\n\n const handlePointerLeave = () => {\n if (ctx.openTimerRef.current) {\n clearTimeout(ctx.openTimerRef.current);\n ctx.openTimerRef.current = null;\n }\n\n ctx.closeTimerRef.current = setTimeout(() => {\n ctx.setValue('');\n }, ctx.delayDuration);\n };\n\n const handleKeyDown = (e: React.KeyboardEvent) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n ctx.setValue(isOpen ? '' : itemCtx.value);\n }\n if (e.key === 'Escape' && isOpen) {\n e.preventDefault();\n ctx.setValue('');\n triggerRef.current?.focus();\n }\n };\n\n const classes = [styles.trigger, className].filter(Boolean).join(' ');\n\n return (\n <button\n ref={triggerRef}\n type=\"button\"\n id={itemCtx.triggerId}\n className={classes}\n aria-expanded={isOpen}\n aria-controls={itemCtx.contentId}\n data-state={isOpen ? 'open' : 'closed'}\n onClick={handleClick}\n onPointerEnter={handlePointerEnter}\n onPointerLeave={handlePointerLeave}\n onKeyDown={handleKeyDown}\n >\n {children}\n <CaretDown size={12} className={styles.triggerChevron} aria-hidden />\n </button>\n );\n}\n\n// ============================================\n// Content\n// ============================================\n\nfunction NavigationMenuContent({ children, className }: NavigationMenuContentProps) {\n const ctx = useNavigationMenuContext();\n const itemCtx = useNavigationMenuItemContext();\n const isOpen = ctx.value === itemCtx.value;\n const contentRef = React.useRef<HTMLDivElement>(null);\n\n // Register content children into item info (for mobile drawer)\n React.useEffect(() => {\n const existing = ctx.itemInfoMap.current.get(itemCtx.value);\n ctx.itemInfoMap.current.set(itemCtx.value, {\n ...existing,\n value: itemCtx.value,\n triggerLabel: existing?.triggerLabel || '',\n contentChildren: children,\n } as NavigationMenuItemInfo);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [itemCtx.value, children]);\n\n // Measure content for viewport animation\n React.useEffect(() => {\n if (!isOpen || !contentRef.current) return;\n\n const el = contentRef.current;\n const observer = new ResizeObserver(([entry]) => {\n if (entry) {\n ctx.setViewportSize({\n width: entry.contentRect.width,\n height: entry.contentRect.height,\n });\n }\n });\n observer.observe(el);\n\n // Initial measurement\n ctx.setViewportSize({\n width: el.scrollWidth,\n height: el.scrollHeight,\n });\n\n return () => observer.disconnect();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isOpen]);\n\n // Determine motion direction\n const prevValue = ctx.previousValue.current;\n const triggerOrder = ctx.triggerOrder.current;\n const prevIdx = triggerOrder.indexOf(prevValue);\n const currentIdx = triggerOrder.indexOf(itemCtx.value);\n let motion: string | undefined;\n if (isOpen && prevValue && prevValue !== itemCtx.value) {\n motion = currentIdx > prevIdx ? 'from-end' : 'from-start';\n }\n\n // Update previousValue when this content becomes active\n React.useEffect(() => {\n if (isOpen) {\n ctx.previousValue.current = itemCtx.value;\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isOpen, itemCtx.value]);\n\n if (!isOpen) return null;\n\n const classes = [styles.content, className].filter(Boolean).join(' ');\n\n const handlePointerEnter = () => {\n if (ctx.closeTimerRef.current) {\n clearTimeout(ctx.closeTimerRef.current);\n ctx.closeTimerRef.current = null;\n }\n };\n\n const handlePointerLeave = () => {\n ctx.closeTimerRef.current = setTimeout(() => {\n ctx.setValue('');\n }, ctx.delayDuration);\n };\n\n const contentElement = (\n <div\n ref={contentRef}\n id={itemCtx.contentId}\n className={classes}\n role=\"region\"\n aria-labelledby={itemCtx.triggerId}\n data-motion={motion}\n onPointerEnter={handlePointerEnter}\n onPointerLeave={handlePointerLeave}\n >\n {children}\n </div>\n );\n\n // Portal into viewport if it exists\n if (ctx.viewportRef.current) {\n return createPortal(contentElement, ctx.viewportRef.current);\n }\n\n return contentElement;\n}\n\n// ============================================\n// Link\n// ============================================\n\nfunction NavigationMenuLink({\n children,\n title,\n description,\n icon,\n active = false,\n featured = false,\n asChild = false,\n className,\n href,\n onClick,\n ...htmlProps\n}: NavigationMenuLinkProps) {\n const ctx = React.useContext(NavigationMenuContext);\n const isStructured = !!(title || description || icon);\n\n const handleClick = (e: React.MouseEvent<HTMLAnchorElement>) => {\n onClick?.(e);\n // Close mobile drawer on link click\n if (ctx?.isMobile && ctx.mobileOpen) {\n ctx.setMobileOpen(false);\n }\n // Close desktop menu\n if (ctx) {\n ctx.setValue('');\n }\n };\n\n // Structured mode (title + description + icon)\n if (isStructured) {\n const classes = [\n styles.link,\n styles.linkStructured,\n active && styles.linkActive,\n featured && styles.linkFeatured,\n className,\n ].filter(Boolean).join(' ');\n\n const linkProps = {\n ...htmlProps,\n className: classes,\n href,\n 'aria-current': active ? ('page' as const) : undefined,\n onClick: handleClick,\n };\n\n if (asChild && React.isValidElement(children)) {\n return React.cloneElement(children, {\n ...linkProps,\n className: [classes, (children.props as { className?: string }).className].filter(Boolean).join(' '),\n children: (\n <>\n {icon && <span className={styles.linkIcon}>{icon}</span>}\n <span className={styles.linkBody}>\n {title && <span className={styles.linkTitle}>{title}</span>}\n {description && <span className={styles.linkDescription}>{description}</span>}\n </span>\n </>\n ),\n } as React.HTMLAttributes<HTMLElement>);\n }\n\n return (\n <a {...linkProps}>\n {icon && <span className={styles.linkIcon}>{icon}</span>}\n <span className={styles.linkBody}>\n {title && <span className={styles.linkTitle}>{title}</span>}\n {description && <span className={styles.linkDescription}>{description}</span>}\n </span>\n </a>\n );\n }\n\n // Simple link mode\n const classes = [\n styles.link,\n active && styles.linkActive,\n className,\n ].filter(Boolean).join(' ');\n\n const linkProps = {\n ...htmlProps,\n className: classes,\n href,\n 'aria-current': active ? ('page' as const) : undefined,\n onClick: handleClick,\n };\n\n if (asChild && React.isValidElement(children)) {\n return React.cloneElement(children, {\n ...linkProps,\n className: [classes, (children.props as { className?: string }).className].filter(Boolean).join(' '),\n } as React.HTMLAttributes<HTMLElement>);\n }\n\n return <a {...linkProps}>{children}</a>;\n}\n\n// ============================================\n// Indicator\n// ============================================\n\nfunction NavigationMenuIndicator({ className }: NavigationMenuIndicatorProps) {\n const { value, triggerRefs } = useNavigationMenuContext();\n const [style, setStyle] = React.useState<React.CSSProperties>({ opacity: 0 });\n\n React.useEffect(() => {\n if (!value) {\n setStyle({ opacity: 0 });\n return;\n }\n const trigger = triggerRefs.current.get(value);\n if (trigger) {\n const parent = trigger.closest('ul');\n if (parent) {\n const parentRect = parent.getBoundingClientRect();\n const triggerRect = trigger.getBoundingClientRect();\n setStyle({\n left: triggerRect.left - parentRect.left,\n width: triggerRect.width,\n opacity: 1,\n });\n }\n }\n }, [value, triggerRefs]);\n\n const classes = [styles.indicator, className].filter(Boolean).join(' ');\n\n return <div className={classes} style={style} aria-hidden />;\n}\n\n// ============================================\n// Viewport\n// ============================================\n\nfunction NavigationMenuViewport({ className }: NavigationMenuViewportProps) {\n const ctx = useNavigationMenuContext();\n const { viewportSize, viewportRef, value, triggerRefs } = ctx;\n const isOpen = !!value;\n\n // Compute the active trigger's left offset relative to the nav root\n const [triggerLeft, setTriggerLeft] = React.useState(0);\n\n React.useEffect(() => {\n if (!isOpen || !value) return;\n const trigger = triggerRefs.current.get(value);\n if (!trigger || !viewportRef.current) return;\n\n const navRoot = viewportRef.current.parentElement;\n if (!navRoot) return;\n\n const navRect = navRoot.getBoundingClientRect();\n const triggerRect = trigger.getBoundingClientRect();\n setTriggerLeft(triggerRect.left - navRect.left);\n }, [isOpen, value, triggerRefs, viewportRef]);\n\n const cssVars = {\n '--fui-navmenu-viewport-width': isOpen ? `${viewportSize.width}px` : '0px',\n '--fui-navmenu-viewport-height': isOpen ? `${viewportSize.height}px` : '0px',\n '--fui-navmenu-viewport-left': `${triggerLeft}px`,\n } as React.CSSProperties;\n\n // Mark skip-delay state\n React.useEffect(() => {\n if (isOpen) {\n ctx.isRecentlyOpenRef.current = true;\n if (ctx.skipDelayTimerRef.current) {\n clearTimeout(ctx.skipDelayTimerRef.current);\n }\n } else {\n ctx.skipDelayTimerRef.current = setTimeout(() => {\n ctx.isRecentlyOpenRef.current = false;\n }, ctx.skipDelayDuration);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isOpen]);\n\n const classes = [styles.viewport, className].filter(Boolean).join(' ');\n\n return (\n <div\n ref={viewportRef}\n className={classes}\n style={cssVars}\n data-state={isOpen ? 'open' : 'closed'}\n role=\"presentation\"\n />\n );\n}\n\n// ============================================\n// MobileContent (slot for extra mobile sections)\n// ============================================\n\nfunction NavigationMenuMobileContent({ children }: NavigationMenuMobileContentProps) {\n const ctx = useNavigationMenuContext();\n\n React.useEffect(() => {\n ctx.setMobileContentChildren(children);\n return () => ctx.setMobileContentChildren(null);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [children]);\n\n // This component renders nothing visually on desktop or in the tree.\n // Its children are extracted into the mobile drawer via context.\n return null;\n}\n\n// ============================================\n// MobileBrand (slot for brand in mobile drawer header)\n// ============================================\n\nfunction NavigationMenuMobileBrand({ children }: NavigationMenuMobileBrandProps) {\n const ctx = useNavigationMenuContext();\n\n React.useEffect(() => {\n ctx.setMobileBrandChildren(children);\n return () => ctx.setMobileBrandChildren(null);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [children]);\n\n return null;\n}\n\n// ============================================\n// MobileSection\n// ============================================\n\nfunction NavigationMenuMobileSection({ children, label }: NavigationMenuMobileSectionProps) {\n return (\n <div role=\"group\" aria-label={label}>\n {label && <div className={styles.drawerSectionLabel}>{label}</div>}\n <div className={styles.drawerNav}>{children}</div>\n </div>\n );\n}\n\n// ============================================\n// Mobile Hamburger Button\n// ============================================\n\nfunction MobileHamburger() {\n const { mobileOpen, setMobileOpen } = useNavigationMenuContext();\n\n return (\n <button\n type=\"button\"\n className={styles.hamburger}\n onClick={() => setMobileOpen(!mobileOpen)}\n aria-label=\"Toggle navigation\"\n aria-expanded={mobileOpen}\n >\n {mobileOpen ? <X size={24} aria-hidden /> : <List size={24} aria-hidden />}\n </button>\n );\n}\n\n// ============================================\n// Mobile Drawer\n// ============================================\n\nfunction MobileDrawer() {\n const ctx = useNavigationMenuContext();\n const drawerRef = React.useRef<HTMLDivElement>(null);\n\n useFocusTrap(drawerRef, true);\n\n // Lock body scroll\n React.useEffect(() => {\n document.body.style.overflow = 'hidden';\n return () => {\n document.body.style.overflow = '';\n };\n }, []);\n\n // Handle Escape\n React.useEffect(() => {\n const handleKeyDown = (e: KeyboardEvent) => {\n if (e.key === 'Escape') {\n ctx.setMobileOpen(false);\n }\n };\n document.addEventListener('keydown', handleKeyDown);\n return () => document.removeEventListener('keydown', handleKeyDown);\n }, [ctx]);\n\n // Build auto-converted nav items from item info registry\n const autoItems = React.useMemo(() => {\n const items: NavigationMenuItemInfo[] = [];\n for (const value of ctx.triggerOrder.current) {\n const info = ctx.itemInfoMap.current.get(value);\n if (info) items.push(info);\n }\n return items;\n }, [ctx.triggerOrder, ctx.itemInfoMap]);\n\n const handleLinkClick = () => {\n ctx.setMobileOpen(false);\n };\n\n const drawerContent = (\n <>\n <div\n className={styles.drawerBackdrop}\n onClick={() => ctx.setMobileOpen(false)}\n aria-hidden\n />\n <div\n ref={drawerRef}\n className={styles.drawer}\n role=\"dialog\"\n aria-modal\n aria-label=\"Navigation\"\n >\n <div className={styles.drawerHeader}>\n {ctx.mobileBrandChildren ?? <span />}\n <button\n type=\"button\"\n className={styles.drawerClose}\n onClick={() => ctx.setMobileOpen(false)}\n aria-label=\"Close navigation\"\n >\n <X size={20} aria-hidden />\n </button>\n </div>\n <ScrollArea orientation=\"vertical\" className={styles.drawerBody}>\n {/* When MobileContent is provided, it takes full control of the drawer nav.\n Otherwise, auto-convert registered Trigger+Content items. */}\n {ctx.mobileContentChildren ? (\n ctx.mobileContentChildren\n ) : (\n <div className={styles.drawerNav}>\n {autoItems.map((item) =>\n item.contentChildren ? (\n <MobileCollapsibleSection\n key={item.value}\n label={item.triggerLabel}\n onLinkClick={handleLinkClick}\n >\n {item.contentChildren}\n </MobileCollapsibleSection>\n ) : item.linkHref ? (\n <a\n key={item.value}\n className={styles.drawerLink}\n href={item.linkHref}\n onClick={handleLinkClick}\n >\n {item.triggerLabel}\n </a>\n ) : null\n )}\n </div>\n )}\n </ScrollArea>\n </div>\n </>\n );\n\n if (typeof document === 'undefined') return null;\n return createPortal(drawerContent, document.body);\n}\n\n// ============================================\n// Mobile Collapsible Section (auto-converted)\n// ============================================\n\nfunction MobileCollapsibleSection({\n label,\n children,\n onLinkClick,\n}: {\n label: string;\n children: React.ReactNode;\n onLinkClick: () => void;\n}) {\n return (\n <Collapsible defaultOpen={false}>\n <Collapsible.Trigger className={styles.drawerCollapsibleTrigger}>\n {label}\n </Collapsible.Trigger>\n <Collapsible.Content>\n <div\n className={styles.drawerCollapsibleContent}\n onClick={onLinkClick}\n onKeyDown={(e) => { if (e.key === 'Enter') onLinkClick(); }}\n role=\"group\"\n >\n {children}\n </div>\n </Collapsible.Content>\n </Collapsible>\n );\n}\n\n// ============================================\n// Export Compound Component\n// ============================================\n\nexport const NavigationMenu = Object.assign(NavigationMenuRoot, {\n List: NavigationMenuList,\n Item: NavigationMenuItem,\n Trigger: NavigationMenuTrigger,\n Content: NavigationMenuContent,\n Link: NavigationMenuLink,\n Indicator: NavigationMenuIndicator,\n Viewport: NavigationMenuViewport,\n MobileBrand: NavigationMenuMobileBrand,\n MobileContent: NavigationMenuMobileContent,\n MobileSection: NavigationMenuMobileSection,\n});\n\nexport {\n NavigationMenuRoot,\n NavigationMenuList,\n NavigationMenuItem,\n NavigationMenuTrigger,\n NavigationMenuContent,\n NavigationMenuLink,\n NavigationMenuIndicator,\n NavigationMenuViewport,\n NavigationMenuMobileBrand,\n NavigationMenuMobileContent,\n NavigationMenuMobileSection,\n};\n"],"names":["React","useNavigationMenu","styles","jsx","NavigationMenuContext","jsxs","useNavigationMenuContext","handleArrowNavigation","NavigationMenuItemContext","useNavigationMenuItemContext","CaretDown","createPortal","classes","linkProps","Fragment","X","List","useFocusTrap","ScrollArea","Collapsible"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs","sources":["../../../src/components/NavigationMenu/index.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { createPortal } from 'react-dom';\nimport { CaretDown, List, X } from '@phosphor-icons/react';\nimport { handleArrowNavigation, useFocusTrap } from '../../utils/a11y';\nimport { Collapsible } from '../Collapsible';\nimport { ScrollArea } from '../ScrollArea';\nimport {\n NavigationMenuContext,\n NavigationMenuItemContext,\n useNavigationMenuContext,\n useNavigationMenuItemContext,\n type NavigationMenuItemInfo,\n type NavigationMenuIcons,\n type NavigationMenuIconRenderState,\n type NavigationMenuIconSlot,\n} from './NavigationMenuContext';\nimport { useNavigationMenu } from './useNavigationMenu';\nimport styles from './NavigationMenu.module.scss';\n\n// ============================================\n// Types\n// ============================================\n\nexport interface NavigationMenuProps extends React.HTMLAttributes<HTMLElement> {\n children: React.ReactNode;\n /** Controlled open item value */\n value?: string;\n /** Default open item value */\n defaultValue?: string;\n /** Callback when open item changes */\n onValueChange?: (value: string) => void;\n /** Menu orientation */\n orientation?: 'horizontal' | 'vertical';\n /** Delay before opening on hover (ms) */\n delayDuration?: number;\n /** Duration to skip delays between triggers (ms) */\n skipDelayDuration?: number;\n /** Optional icon overrides for trigger chevrons and mobile drawer controls */\n icons?: NavigationMenuIcons;\n}\n\nexport interface NavigationMenuListProps {\n children: React.ReactNode;\n className?: string;\n}\n\nexport interface NavigationMenuItemProps {\n children: React.ReactNode;\n /** Unique item value (required for items with Trigger+Content) */\n value?: string;\n className?: string;\n}\n\nexport interface NavigationMenuTriggerProps {\n children: React.ReactNode;\n className?: string;\n}\n\nexport interface NavigationMenuContentProps {\n children: React.ReactNode;\n className?: string;\n}\n\nexport interface NavigationMenuLinkProps extends React.AnchorHTMLAttributes<HTMLAnchorElement> {\n /** Simple mode: children as text content */\n children?: React.ReactNode;\n /** Structured mode: title text */\n title?: string;\n /** Structured mode: description text */\n description?: string;\n /** Structured mode: icon element */\n icon?: React.ReactNode;\n /** Whether this link is the current page */\n active?: boolean;\n /** Highlighted card style */\n featured?: boolean;\n /** Render as child element (polymorphic) */\n asChild?: boolean;\n}\n\nfunction composeNavMenuClickHandlers(\n childHandler: React.MouseEventHandler<HTMLElement> | undefined,\n internalHandler: React.MouseEventHandler<HTMLAnchorElement>,\n): React.MouseEventHandler<HTMLElement> {\n return (event) => {\n childHandler?.(event);\n if (event.defaultPrevented) return;\n internalHandler(event as React.MouseEvent<HTMLAnchorElement>);\n };\n}\n\nexport interface NavigationMenuIndicatorProps {\n className?: string;\n}\n\nexport interface NavigationMenuViewportProps {\n className?: string;\n}\n\nexport interface NavigationMenuMobileContentProps {\n children: React.ReactNode;\n}\n\nexport interface NavigationMenuMobileBrandProps {\n children: React.ReactNode;\n}\n\nexport interface NavigationMenuMobileSectionProps {\n children: React.ReactNode;\n /** Section heading label */\n label?: string;\n}\n\n// ============================================\n// Hooks\n// ============================================\n\nfunction useIsMobile() {\n const [isMobile, setIsMobile] = React.useState(false);\n\n React.useEffect(() => {\n if (typeof window === 'undefined') return;\n\n const mq = window.matchMedia('(max-width: 767px)');\n setIsMobile(mq.matches);\n\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 renderNavigationMenuIcon(\n slot: NavigationMenuIconSlot | undefined,\n state: NavigationMenuIconRenderState,\n): React.ReactNode {\n if (slot === undefined) return undefined;\n return typeof slot === 'function' ? slot(state) : slot;\n}\n\n// ============================================\n// Root\n// ============================================\n\nfunction NavigationMenuRoot({\n children,\n value: controlledValue,\n defaultValue,\n onValueChange,\n orientation = 'horizontal',\n delayDuration = 200,\n skipDelayDuration = 300,\n icons,\n className,\n 'aria-label': ariaLabel = 'Main navigation',\n ...htmlProps\n}: NavigationMenuProps) {\n const rootId = React.useId();\n const isMobile = useIsMobile();\n\n const state = useNavigationMenu({\n value: controlledValue,\n defaultValue,\n onValueChange,\n delayDuration,\n skipDelayDuration,\n });\n\n const classes = [\n styles.root,\n orientation === 'vertical' && styles.rootVertical,\n className,\n ].filter(Boolean).join(' ');\n\n const contextValue = React.useMemo(\n () => ({\n ...state,\n orientation,\n isMobile,\n rootId,\n icons,\n }),\n [state, orientation, isMobile, rootId, icons]\n );\n\n return (\n <NavigationMenuContext.Provider value={contextValue}>\n <nav {...htmlProps} className={classes} aria-label={ariaLabel} data-orientation={orientation}>\n {children}\n {isMobile && <MobileHamburger />}\n {isMobile && state.mobileOpen && <MobileDrawer />}\n </nav>\n </NavigationMenuContext.Provider>\n );\n}\n\n// ============================================\n// List\n// ============================================\n\nfunction NavigationMenuList({ children, className }: NavigationMenuListProps) {\n const { orientation, triggerOrder, triggerRefs, value } = useNavigationMenuContext();\n\n const listRef = React.useRef<HTMLUListElement>(null);\n\n const handleKeyDown = (e: React.KeyboardEvent) => {\n const order = triggerOrder.current;\n const focusedValue = (document.activeElement as HTMLElement | null)?.getAttribute('data-navmenu-value');\n const currentValue = focusedValue || value;\n const currentIdx = order.indexOf(currentValue);\n\n const newIdx = handleArrowNavigation(e, order, currentIdx >= 0 ? currentIdx : 0, {\n orientation: orientation === 'horizontal' ? 'horizontal' : 'vertical',\n loop: true,\n });\n\n if (newIdx !== undefined) {\n const targetValue = order[newIdx];\n const trigger = triggerRefs.current.get(targetValue);\n trigger?.focus();\n }\n };\n\n const classes = [\n styles.list,\n orientation === 'vertical' && styles.listVertical,\n className,\n ].filter(Boolean).join(' ');\n\n return (\n <ul\n ref={listRef}\n className={classes}\n role=\"list\"\n data-orientation={orientation}\n onKeyDown={handleKeyDown}\n >\n {children}\n </ul>\n );\n}\n\n// ============================================\n// Item\n// ============================================\n\nfunction NavigationMenuItem({ children, value: valueProp, className }: NavigationMenuItemProps) {\n const rootCtx = useNavigationMenuContext();\n const generatedValue = React.useId();\n const autoValue = valueProp || `navmenu-item-${generatedValue}`;\n const triggerId = `${rootCtx.rootId}-trigger-${autoValue}`;\n const contentId = `${rootCtx.rootId}-content-${autoValue}`;\n\n React.useEffect(() => {\n if (!rootCtx.itemOrder.current.includes(autoValue)) {\n rootCtx.itemOrder.current.push(autoValue);\n }\n\n const existing = rootCtx.itemInfoMap.current.get(autoValue);\n if (!existing) {\n rootCtx.itemInfoMap.current.set(autoValue, {\n value: autoValue,\n triggerLabel: '',\n contentChildren: null,\n });\n }\n\n return () => {\n rootCtx.itemOrder.current = rootCtx.itemOrder.current.filter(v => v !== autoValue);\n rootCtx.itemInfoMap.current.delete(autoValue);\n };\n }, [autoValue, rootCtx.itemInfoMap, rootCtx.itemOrder]);\n\n const itemCtx = React.useMemo(\n () => ({\n value: autoValue,\n triggerId,\n contentId,\n }),\n [autoValue, triggerId, contentId]\n );\n\n return (\n <NavigationMenuItemContext.Provider value={itemCtx}>\n <li className={className}>{children}</li>\n </NavigationMenuItemContext.Provider>\n );\n}\n\n// ============================================\n// Trigger\n// ============================================\n\nfunction NavigationMenuTrigger({ children, className }: NavigationMenuTriggerProps) {\n const ctx = useNavigationMenuContext();\n const itemCtx = useNavigationMenuItemContext();\n const isOpen = ctx.value === itemCtx.value;\n\n // Register trigger\n const triggerRef = React.useRef<HTMLButtonElement>(null);\n\n React.useEffect(() => {\n if (triggerRef.current) {\n ctx.triggerRefs.current.set(itemCtx.value, triggerRef.current);\n if (!ctx.triggerOrder.current.includes(itemCtx.value)) {\n ctx.triggerOrder.current.push(itemCtx.value);\n }\n }\n return () => {\n ctx.triggerRefs.current.delete(itemCtx.value);\n ctx.triggerOrder.current = ctx.triggerOrder.current.filter(v => v !== itemCtx.value);\n };\n // Only register/unregister on mount/unmount\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [itemCtx.value]);\n\n // Register item info for mobile drawer\n React.useEffect(() => {\n const label = typeof children === 'string' ? children : '';\n const existing = ctx.itemInfoMap.current.get(itemCtx.value);\n ctx.itemInfoMap.current.set(itemCtx.value, {\n ...existing,\n value: itemCtx.value,\n triggerLabel: label || existing?.triggerLabel || '',\n } as NavigationMenuItemInfo);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [itemCtx.value, children]);\n\n const handleClick = () => {\n ctx.setValue(isOpen ? '' : itemCtx.value);\n };\n\n const handlePointerEnter = () => {\n if (ctx.closeTimerRef.current) {\n clearTimeout(ctx.closeTimerRef.current);\n ctx.closeTimerRef.current = null;\n }\n\n // Skip delay if recently open\n if (ctx.isRecentlyOpenRef.current) {\n ctx.setValue(itemCtx.value);\n return;\n }\n\n ctx.openTimerRef.current = setTimeout(() => {\n ctx.setValue(itemCtx.value);\n }, ctx.delayDuration);\n };\n\n const handlePointerLeave = () => {\n if (ctx.openTimerRef.current) {\n clearTimeout(ctx.openTimerRef.current);\n ctx.openTimerRef.current = null;\n }\n\n ctx.closeTimerRef.current = setTimeout(() => {\n ctx.setValue('');\n }, ctx.delayDuration);\n };\n\n const handleKeyDown = (e: React.KeyboardEvent) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n ctx.setValue(isOpen ? '' : itemCtx.value);\n }\n if (e.key === 'Escape' && isOpen) {\n e.preventDefault();\n ctx.setValue('');\n triggerRef.current?.focus();\n }\n };\n\n const classes = [styles.trigger, className].filter(Boolean).join(' ');\n const chevronOverride = renderNavigationMenuIcon(ctx.icons?.triggerChevron, {\n slot: 'triggerChevron',\n open: isOpen,\n isMobile: ctx.isMobile,\n });\n\n return (\n <button\n ref={triggerRef}\n type=\"button\"\n id={itemCtx.triggerId}\n className={classes}\n data-navmenu-value={itemCtx.value}\n aria-expanded={isOpen}\n aria-controls={itemCtx.contentId}\n data-state={isOpen ? 'open' : 'closed'}\n onClick={handleClick}\n onPointerEnter={handlePointerEnter}\n onPointerLeave={handlePointerLeave}\n onKeyDown={handleKeyDown}\n >\n {children}\n {chevronOverride\n ? <span className={styles.triggerChevron} aria-hidden>{chevronOverride}</span>\n : <CaretDown size={12} className={styles.triggerChevron} aria-hidden />}\n </button>\n );\n}\n\n// ============================================\n// Content\n// ============================================\n\nfunction NavigationMenuContent({ children, className }: NavigationMenuContentProps) {\n const ctx = useNavigationMenuContext();\n const itemCtx = useNavigationMenuItemContext();\n const isOpen = ctx.value === itemCtx.value;\n const contentRef = React.useRef<HTMLDivElement>(null);\n\n // Register content children into item info (for mobile drawer)\n React.useEffect(() => {\n const existing = ctx.itemInfoMap.current.get(itemCtx.value);\n ctx.itemInfoMap.current.set(itemCtx.value, {\n ...existing,\n value: itemCtx.value,\n triggerLabel: existing?.triggerLabel || '',\n contentChildren: children,\n } as NavigationMenuItemInfo);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [itemCtx.value, children]);\n\n // Measure content for viewport animation\n React.useEffect(() => {\n if (!isOpen || !contentRef.current) return;\n\n const el = contentRef.current;\n const observer = new ResizeObserver(([entry]) => {\n if (entry) {\n ctx.setViewportSize({\n width: entry.contentRect.width,\n height: entry.contentRect.height,\n });\n }\n });\n observer.observe(el);\n\n // Initial measurement\n ctx.setViewportSize({\n width: el.scrollWidth,\n height: el.scrollHeight,\n });\n\n return () => observer.disconnect();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isOpen]);\n\n // Determine motion direction\n const prevValue = ctx.previousValue.current;\n const triggerOrder = ctx.triggerOrder.current;\n const prevIdx = triggerOrder.indexOf(prevValue);\n const currentIdx = triggerOrder.indexOf(itemCtx.value);\n let motion: string | undefined;\n if (isOpen && prevValue && prevValue !== itemCtx.value) {\n motion = currentIdx > prevIdx ? 'from-end' : 'from-start';\n }\n\n // Update previousValue when this content becomes active\n React.useEffect(() => {\n if (isOpen) {\n ctx.previousValue.current = itemCtx.value;\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isOpen, itemCtx.value]);\n\n if (!isOpen) return null;\n\n const classes = [styles.content, className].filter(Boolean).join(' ');\n\n const handlePointerEnter = () => {\n if (ctx.closeTimerRef.current) {\n clearTimeout(ctx.closeTimerRef.current);\n ctx.closeTimerRef.current = null;\n }\n };\n\n const handlePointerLeave = () => {\n ctx.closeTimerRef.current = setTimeout(() => {\n ctx.setValue('');\n }, ctx.delayDuration);\n };\n\n const contentElement = (\n <div\n ref={contentRef}\n id={itemCtx.contentId}\n className={classes}\n role=\"region\"\n aria-labelledby={itemCtx.triggerId}\n data-motion={motion}\n onPointerEnter={handlePointerEnter}\n onPointerLeave={handlePointerLeave}\n >\n {children}\n </div>\n );\n\n // Portal into viewport if it exists\n if (ctx.viewportRef.current) {\n return createPortal(contentElement, ctx.viewportRef.current);\n }\n\n return contentElement;\n}\n\n// ============================================\n// Link\n// ============================================\n\nfunction NavigationMenuLink({\n children,\n title,\n description,\n icon,\n active = false,\n featured = false,\n asChild = false,\n className,\n href,\n onClick,\n ...htmlProps\n}: NavigationMenuLinkProps) {\n const ctx = React.useContext(NavigationMenuContext);\n const itemCtx = React.useContext(NavigationMenuItemContext);\n const isStructured = !!(title || description || icon);\n\n React.useEffect(() => {\n if (!ctx || !itemCtx) return;\n\n const existing = ctx.itemInfoMap.current.get(itemCtx.value);\n const fallbackLabel = typeof children === 'string' ? children : title || '';\n const resolvedHref = typeof href === 'string' ? href : existing?.linkHref;\n\n ctx.itemInfoMap.current.set(itemCtx.value, {\n ...existing,\n value: itemCtx.value,\n triggerLabel: existing?.triggerLabel || fallbackLabel || '',\n contentChildren: existing?.contentChildren ?? null,\n linkHref: resolvedHref,\n });\n }, [ctx, itemCtx, children, title, href]);\n\n const handleClick = (e: React.MouseEvent<HTMLAnchorElement>) => {\n onClick?.(e);\n if (e.defaultPrevented) return;\n // Close mobile drawer on link click\n if (ctx?.isMobile && ctx.mobileOpen) {\n ctx.setMobileOpen(false);\n }\n // Close desktop menu\n if (ctx) {\n ctx.setValue('');\n }\n };\n\n // Structured mode (title + description + icon)\n if (isStructured) {\n const classes = [\n styles.link,\n styles.linkStructured,\n active && styles.linkActive,\n featured && styles.linkFeatured,\n className,\n ].filter(Boolean).join(' ');\n\n const linkProps = {\n ...htmlProps,\n className: classes,\n href,\n 'aria-current': active ? ('page' as const) : undefined,\n onClick: handleClick,\n };\n\n if (asChild && React.isValidElement(children)) {\n const childProps = children.props as {\n className?: string;\n onClick?: React.MouseEventHandler<HTMLElement>;\n };\n return React.cloneElement(children, {\n ...linkProps,\n onClick: composeNavMenuClickHandlers(childProps.onClick, handleClick),\n className: [classes, childProps.className].filter(Boolean).join(' '),\n children: (\n <>\n {icon && <span className={styles.linkIcon}>{icon}</span>}\n <span className={styles.linkBody}>\n {title && <span className={styles.linkTitle}>{title}</span>}\n {description && <span className={styles.linkDescription}>{description}</span>}\n </span>\n </>\n ),\n } as React.HTMLAttributes<HTMLElement>);\n }\n\n return (\n <a {...linkProps}>\n {icon && <span className={styles.linkIcon}>{icon}</span>}\n <span className={styles.linkBody}>\n {title && <span className={styles.linkTitle}>{title}</span>}\n {description && <span className={styles.linkDescription}>{description}</span>}\n </span>\n </a>\n );\n }\n\n // Simple link mode\n const classes = [\n styles.link,\n active && styles.linkActive,\n className,\n ].filter(Boolean).join(' ');\n\n const linkProps = {\n ...htmlProps,\n className: classes,\n href,\n 'aria-current': active ? ('page' as const) : undefined,\n onClick: handleClick,\n };\n\n if (asChild && React.isValidElement(children)) {\n const childProps = children.props as {\n className?: string;\n onClick?: React.MouseEventHandler<HTMLElement>;\n };\n return React.cloneElement(children, {\n ...linkProps,\n onClick: composeNavMenuClickHandlers(childProps.onClick, handleClick),\n className: [classes, childProps.className].filter(Boolean).join(' '),\n } as React.HTMLAttributes<HTMLElement>);\n }\n\n return <a {...linkProps}>{children}</a>;\n}\n\n// ============================================\n// Indicator\n// ============================================\n\nfunction NavigationMenuIndicator({ className }: NavigationMenuIndicatorProps) {\n const { value, triggerRefs } = useNavigationMenuContext();\n const [style, setStyle] = React.useState<React.CSSProperties>({ opacity: 0 });\n\n React.useEffect(() => {\n if (!value) {\n setStyle({ opacity: 0 });\n return;\n }\n const trigger = triggerRefs.current.get(value);\n if (trigger) {\n const parent = trigger.closest('ul');\n if (parent) {\n const parentRect = parent.getBoundingClientRect();\n const triggerRect = trigger.getBoundingClientRect();\n setStyle({\n left: triggerRect.left - parentRect.left,\n width: triggerRect.width,\n opacity: 1,\n });\n }\n }\n }, [value, triggerRefs]);\n\n const classes = [styles.indicator, className].filter(Boolean).join(' ');\n\n return <div className={classes} style={style} aria-hidden />;\n}\n\n// ============================================\n// Viewport\n// ============================================\n\nfunction NavigationMenuViewport({ className }: NavigationMenuViewportProps) {\n const ctx = useNavigationMenuContext();\n const { viewportSize, viewportRef, value, triggerRefs } = ctx;\n const isOpen = !!value;\n\n // Compute the active trigger's left offset relative to the nav root\n const [triggerLeft, setTriggerLeft] = React.useState(0);\n\n React.useEffect(() => {\n if (!isOpen || !value) return;\n const trigger = triggerRefs.current.get(value);\n if (!trigger || !viewportRef.current) return;\n\n const navRoot = viewportRef.current.parentElement;\n if (!navRoot) return;\n\n const navRect = navRoot.getBoundingClientRect();\n const triggerRect = trigger.getBoundingClientRect();\n setTriggerLeft(triggerRect.left - navRect.left);\n }, [isOpen, value, triggerRefs, viewportRef]);\n\n const cssVars = {\n '--fui-navmenu-viewport-width': isOpen ? `${viewportSize.width}px` : '0px',\n '--fui-navmenu-viewport-height': isOpen ? `${viewportSize.height}px` : '0px',\n '--fui-navmenu-viewport-left': `${triggerLeft}px`,\n } as React.CSSProperties;\n\n // Mark skip-delay state\n React.useEffect(() => {\n if (isOpen) {\n ctx.isRecentlyOpenRef.current = true;\n if (ctx.skipDelayTimerRef.current) {\n clearTimeout(ctx.skipDelayTimerRef.current);\n }\n } else {\n ctx.skipDelayTimerRef.current = setTimeout(() => {\n ctx.isRecentlyOpenRef.current = false;\n }, ctx.skipDelayDuration);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isOpen]);\n\n const classes = [styles.viewport, className].filter(Boolean).join(' ');\n\n return (\n <div\n ref={viewportRef}\n className={classes}\n style={cssVars}\n data-state={isOpen ? 'open' : 'closed'}\n role=\"presentation\"\n />\n );\n}\n\n// ============================================\n// MobileContent (slot for extra mobile sections)\n// ============================================\n\nfunction NavigationMenuMobileContent({ children }: NavigationMenuMobileContentProps) {\n const ctx = useNavigationMenuContext();\n\n React.useEffect(() => {\n ctx.setMobileContentChildren(children);\n return () => ctx.setMobileContentChildren(null);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [children]);\n\n // This component renders nothing visually on desktop or in the tree.\n // Its children are extracted into the mobile drawer via context.\n return null;\n}\n\n// ============================================\n// MobileBrand (slot for brand in mobile drawer header)\n// ============================================\n\nfunction NavigationMenuMobileBrand({ children }: NavigationMenuMobileBrandProps) {\n const ctx = useNavigationMenuContext();\n\n React.useEffect(() => {\n ctx.setMobileBrandChildren(children);\n return () => ctx.setMobileBrandChildren(null);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [children]);\n\n return null;\n}\n\n// ============================================\n// MobileSection\n// ============================================\n\nfunction NavigationMenuMobileSection({ children, label }: NavigationMenuMobileSectionProps) {\n return (\n <div role=\"group\" aria-label={label}>\n {label && <div className={styles.drawerSectionLabel}>{label}</div>}\n <div className={styles.drawerNav}>{children}</div>\n </div>\n );\n}\n\n// ============================================\n// Mobile Hamburger Button\n// ============================================\n\nfunction MobileHamburger() {\n const ctx = useNavigationMenuContext();\n const { mobileOpen, setMobileOpen } = ctx;\n const iconOverride = renderNavigationMenuIcon(\n mobileOpen ? ctx.icons?.mobileClose : ctx.icons?.mobileMenu,\n {\n slot: mobileOpen ? 'mobileClose' : 'mobileMenu',\n open: mobileOpen,\n isMobile: true,\n },\n );\n\n return (\n <button\n type=\"button\"\n className={styles.hamburger}\n onClick={() => setMobileOpen(!mobileOpen)}\n aria-label=\"Toggle navigation\"\n aria-expanded={mobileOpen}\n >\n {iconOverride ?? (mobileOpen ? <X size={24} aria-hidden /> : <List size={24} aria-hidden />)}\n </button>\n );\n}\n\n// ============================================\n// Mobile Drawer\n// ============================================\n\nfunction MobileDrawer() {\n const ctx = useNavigationMenuContext();\n const drawerRef = React.useRef<HTMLDivElement>(null);\n\n useFocusTrap(drawerRef, true);\n\n // Lock body scroll\n React.useEffect(() => {\n document.body.style.overflow = 'hidden';\n return () => {\n document.body.style.overflow = '';\n };\n }, []);\n\n // Handle Escape\n React.useEffect(() => {\n const handleKeyDown = (e: KeyboardEvent) => {\n if (e.key === 'Escape') {\n ctx.setMobileOpen(false);\n }\n };\n document.addEventListener('keydown', handleKeyDown);\n return () => document.removeEventListener('keydown', handleKeyDown);\n }, [ctx]);\n\n // Build auto-converted nav items from item info registry\n const autoItems: NavigationMenuItemInfo[] = [];\n for (const value of ctx.itemOrder.current) {\n const info = ctx.itemInfoMap.current.get(value);\n if (info) autoItems.push(info);\n }\n\n const handleLinkClick = () => {\n ctx.setMobileOpen(false);\n };\n\n const drawerContent = (\n <>\n <div\n className={styles.drawerBackdrop}\n onClick={() => ctx.setMobileOpen(false)}\n aria-hidden\n />\n <div\n ref={drawerRef}\n className={styles.drawer}\n role=\"dialog\"\n aria-modal\n aria-label=\"Navigation\"\n >\n <div className={styles.drawerHeader}>\n {ctx.mobileBrandChildren ?? <span />}\n <button\n type=\"button\"\n className={styles.drawerClose}\n onClick={() => ctx.setMobileOpen(false)}\n aria-label=\"Close navigation\"\n >\n {renderNavigationMenuIcon(ctx.icons?.drawerClose, {\n slot: 'drawerClose',\n open: ctx.mobileOpen,\n isMobile: true,\n }) ?? <X size={20} aria-hidden />}\n </button>\n </div>\n <ScrollArea orientation=\"vertical\" className={styles.drawerBody}>\n {/* When MobileContent is provided, it takes full control of the drawer nav.\n Otherwise, auto-convert registered Trigger+Content items. */}\n {ctx.mobileContentChildren ? (\n ctx.mobileContentChildren\n ) : (\n <div className={styles.drawerNav}>\n {autoItems.map((item) =>\n item.contentChildren ? (\n <MobileCollapsibleSection\n key={item.value}\n label={item.triggerLabel}\n onLinkClick={handleLinkClick}\n >\n {item.contentChildren}\n </MobileCollapsibleSection>\n ) : item.linkHref ? (\n <a\n key={item.value}\n className={styles.drawerLink}\n href={item.linkHref}\n onClick={handleLinkClick}\n >\n {item.triggerLabel}\n </a>\n ) : null\n )}\n </div>\n )}\n </ScrollArea>\n </div>\n </>\n );\n\n if (typeof document === 'undefined') return null;\n return createPortal(drawerContent, document.body);\n}\n\n// ============================================\n// Mobile Collapsible Section (auto-converted)\n// ============================================\n\nfunction MobileCollapsibleSection({\n label,\n children,\n onLinkClick,\n}: {\n label: string;\n children: React.ReactNode;\n onLinkClick: () => void;\n}) {\n return (\n <Collapsible defaultOpen={false}>\n <Collapsible.Trigger className={styles.drawerCollapsibleTrigger}>\n {label}\n </Collapsible.Trigger>\n <Collapsible.Content>\n <div\n className={styles.drawerCollapsibleContent}\n onClick={onLinkClick}\n onKeyDown={(e) => { if (e.key === 'Enter') onLinkClick(); }}\n role=\"group\"\n >\n {children}\n </div>\n </Collapsible.Content>\n </Collapsible>\n );\n}\n\n// ============================================\n// Export Compound Component\n// ============================================\n\nexport const NavigationMenu = Object.assign(NavigationMenuRoot, {\n List: NavigationMenuList,\n Item: NavigationMenuItem,\n Trigger: NavigationMenuTrigger,\n Content: NavigationMenuContent,\n Link: NavigationMenuLink,\n Indicator: NavigationMenuIndicator,\n Viewport: NavigationMenuViewport,\n MobileBrand: NavigationMenuMobileBrand,\n MobileContent: NavigationMenuMobileContent,\n MobileSection: NavigationMenuMobileSection,\n});\n\nexport {\n NavigationMenuRoot,\n NavigationMenuList,\n NavigationMenuItem,\n NavigationMenuTrigger,\n NavigationMenuContent,\n NavigationMenuLink,\n NavigationMenuIndicator,\n NavigationMenuViewport,\n NavigationMenuMobileBrand,\n NavigationMenuMobileContent,\n NavigationMenuMobileSection,\n};\n\nexport type {\n NavigationMenuIcons,\n NavigationMenuIconSlot,\n NavigationMenuIconRenderState,\n} from './NavigationMenuContext';\n"],"names":["React","useNavigationMenu","styles","jsx","NavigationMenuContext","jsxs","useNavigationMenuContext","handleArrowNavigation","NavigationMenuItemContext","useNavigationMenuItemContext","_a","CaretDown","createPortal","classes","linkProps","Fragment","X","List","useFocusTrap","ScrollArea","Collapsible"],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import * as React from 'react';
2
+ import { type NavigationMenuIcons } from './NavigationMenuContext';
2
3
  export interface NavigationMenuProps extends React.HTMLAttributes<HTMLElement> {
3
4
  children: React.ReactNode;
4
5
  /** Controlled open item value */
@@ -13,6 +14,8 @@ export interface NavigationMenuProps extends React.HTMLAttributes<HTMLElement> {
13
14
  delayDuration?: number;
14
15
  /** Duration to skip delays between triggers (ms) */
15
16
  skipDelayDuration?: number;
17
+ /** Optional icon overrides for trigger chevrons and mobile drawer controls */
18
+ icons?: NavigationMenuIcons;
16
19
  }
17
20
  export interface NavigationMenuListProps {
18
21
  children: React.ReactNode;
@@ -65,7 +68,7 @@ export interface NavigationMenuMobileSectionProps {
65
68
  /** Section heading label */
66
69
  label?: string;
67
70
  }
68
- declare function NavigationMenuRoot({ children, value: controlledValue, defaultValue, onValueChange, orientation, delayDuration, skipDelayDuration, className, 'aria-label': ariaLabel, ...htmlProps }: NavigationMenuProps): import("react/jsx-runtime").JSX.Element;
71
+ declare function NavigationMenuRoot({ children, value: controlledValue, defaultValue, onValueChange, orientation, delayDuration, skipDelayDuration, icons, className, 'aria-label': ariaLabel, ...htmlProps }: NavigationMenuProps): import("react/jsx-runtime").JSX.Element;
69
72
  declare function NavigationMenuList({ children, className }: NavigationMenuListProps): import("react/jsx-runtime").JSX.Element;
70
73
  declare function NavigationMenuItem({ children, value: valueProp, className }: NavigationMenuItemProps): import("react/jsx-runtime").JSX.Element;
71
74
  declare function NavigationMenuTrigger({ children, className }: NavigationMenuTriggerProps): import("react/jsx-runtime").JSX.Element;
@@ -89,4 +92,5 @@ export declare const NavigationMenu: typeof NavigationMenuRoot & {
89
92
  MobileSection: typeof NavigationMenuMobileSection;
90
93
  };
91
94
  export { NavigationMenuRoot, NavigationMenuList, NavigationMenuItem, NavigationMenuTrigger, NavigationMenuContent, NavigationMenuLink, NavigationMenuIndicator, NavigationMenuViewport, NavigationMenuMobileBrand, NavigationMenuMobileContent, NavigationMenuMobileSection, };
95
+ export type { NavigationMenuIcons, NavigationMenuIconSlot, NavigationMenuIconRenderState, } from './NavigationMenuContext';
92
96
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/NavigationMenu/index.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/NavigationMenu/index.tsx"],"names":[],"mappings":"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"}