@vjdesigns/vjdesigns-ui 2.3.0 → 2.5.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 (454) hide show
  1. package/LICENSE +15 -0
  2. package/README.md +45 -1
  3. package/dist/ai/llms-full.txt +199 -107
  4. package/dist/ai/registry.json +217 -77
  5. package/dist/components/data-display/Accordion/Accordion.cjs.js +1 -1
  6. package/dist/components/data-display/Accordion/Accordion.mjs +22 -22
  7. package/dist/components/data-display/Accordion/Accordion.module.css.mjs +1 -2
  8. package/dist/components/data-display/Avatar/Avatar.cjs.js +1 -1
  9. package/dist/components/data-display/Avatar/Avatar.mjs +92 -92
  10. package/dist/components/data-display/Avatar/Avatar.module.css.mjs +1 -2
  11. package/dist/components/data-display/Badge/Badge.cjs.js +1 -1
  12. package/dist/components/data-display/Badge/Badge.d.ts +7 -2
  13. package/dist/components/data-display/Badge/Badge.mjs +4 -3
  14. package/dist/components/data-display/Badge/Badge.module.css.cjs.js +1 -1
  15. package/dist/components/data-display/Badge/Badge.module.css.mjs +34 -34
  16. package/dist/components/data-display/Card/Card.cjs.js +1 -1
  17. package/dist/components/data-display/Card/Card.mjs +2 -2
  18. package/dist/components/data-display/Card/Card.module.css.mjs +1 -2
  19. package/dist/components/data-display/Carousel/Carousel.cjs.js +1 -1
  20. package/dist/components/data-display/Carousel/Carousel.mjs +42 -42
  21. package/dist/components/data-display/Carousel/Carousel.module.css.mjs +1 -2
  22. package/dist/components/data-display/Chat/Chat.cjs.js +1 -1
  23. package/dist/components/data-display/Chat/Chat.mjs +114 -118
  24. package/dist/components/data-display/Chat/Chat.module.css.mjs +1 -2
  25. package/dist/components/data-display/Chat/streams.mjs +1 -2
  26. package/dist/components/data-display/Chip/Chip.cjs.js +1 -1
  27. package/dist/components/data-display/Chip/Chip.mjs +50 -54
  28. package/dist/components/data-display/Chip/Chip.module.css.mjs +1 -2
  29. package/dist/components/data-display/CodeBlock/CodeBlock.cjs.js +4 -4
  30. package/dist/components/data-display/CodeBlock/CodeBlock.mjs +113 -113
  31. package/dist/components/data-display/CodeBlock/CodeBlock.module.css.mjs +1 -2
  32. package/dist/components/data-display/CodeBlock/tokenize.mjs +1 -2
  33. package/dist/components/data-display/DataGrid/DataGrid.cjs.js +1 -1
  34. package/dist/components/data-display/DataGrid/DataGrid.d.ts +14 -3
  35. package/dist/components/data-display/DataGrid/DataGrid.mjs +352 -267
  36. package/dist/components/data-display/DataGrid/DataGrid.module.css.cjs.js +1 -1
  37. package/dist/components/data-display/DataGrid/DataGrid.module.css.mjs +6 -5
  38. package/dist/components/data-display/DataGrid/dataGridUtils.cjs.js +1 -1
  39. package/dist/components/data-display/DataGrid/dataGridUtils.d.ts +18 -0
  40. package/dist/components/data-display/DataGrid/dataGridUtils.mjs +100 -32
  41. package/dist/components/data-display/EmptyState/EmptyState.cjs.js +1 -1
  42. package/dist/components/data-display/EmptyState/EmptyState.mjs +53 -53
  43. package/dist/components/data-display/EmptyState/EmptyState.module.css.mjs +1 -2
  44. package/dist/components/data-display/Image/Image.cjs.js +1 -1
  45. package/dist/components/data-display/Image/Image.mjs +6 -6
  46. package/dist/components/data-display/Image/Image.module.css.mjs +1 -2
  47. package/dist/components/data-display/List/List.cjs.js +1 -1
  48. package/dist/components/data-display/List/List.mjs +68 -68
  49. package/dist/components/data-display/List/List.module.css.mjs +1 -2
  50. package/dist/components/data-display/Stat/Stat.cjs.js +1 -1
  51. package/dist/components/data-display/Stat/Stat.mjs +112 -112
  52. package/dist/components/data-display/Stat/Stat.module.css.mjs +1 -2
  53. package/dist/components/data-display/Table/Table.cjs.js +1 -1
  54. package/dist/components/data-display/Table/Table.mjs +187 -183
  55. package/dist/components/data-display/Table/Table.module.css.mjs +1 -2
  56. package/dist/components/data-display/Table/useTable.cjs.js +1 -1
  57. package/dist/components/data-display/Table/useTable.mjs +2 -2
  58. package/dist/components/data-display/Timeline/Timeline.cjs.js +1 -1
  59. package/dist/components/data-display/Timeline/Timeline.mjs +64 -64
  60. package/dist/components/data-display/Timeline/Timeline.module.css.mjs +1 -2
  61. package/dist/components/data-display/TreeView/TreeView.cjs.js +1 -1
  62. package/dist/components/data-display/TreeView/TreeView.mjs +107 -119
  63. package/dist/components/data-display/TreeView/TreeView.module.css.mjs +1 -2
  64. package/dist/components/data-display/TreeView/treeUtils.mjs +1 -2
  65. package/dist/components/data-display/VirtualList/VirtualList.cjs.js +1 -1
  66. package/dist/components/data-display/VirtualList/VirtualList.mjs +2 -2
  67. package/dist/components/data-display/VirtualList/VirtualList.module.css.mjs +1 -2
  68. package/dist/components/feedback/Alert/Alert.cjs.js +1 -1
  69. package/dist/components/feedback/Alert/Alert.mjs +56 -56
  70. package/dist/components/feedback/Alert/Alert.module.css.mjs +1 -2
  71. package/dist/components/feedback/Banner/Banner.cjs.js +1 -1
  72. package/dist/components/feedback/Banner/Banner.mjs +48 -48
  73. package/dist/components/feedback/Banner/Banner.module.css.mjs +1 -2
  74. package/dist/components/feedback/ErrorSummary/ErrorSummary.cjs.js +1 -1
  75. package/dist/components/feedback/ErrorSummary/ErrorSummary.mjs +10 -10
  76. package/dist/components/feedback/ErrorSummary/ErrorSummary.module.css.mjs +1 -2
  77. package/dist/components/feedback/Progress/Progress.cjs.js +1 -1
  78. package/dist/components/feedback/Progress/Progress.mjs +2 -2
  79. package/dist/components/feedback/Progress/Progress.module.css.mjs +1 -2
  80. package/dist/components/feedback/Skeleton/Skeleton.cjs.js +1 -1
  81. package/dist/components/feedback/Skeleton/Skeleton.mjs +73 -73
  82. package/dist/components/feedback/Skeleton/Skeleton.module.css.mjs +1 -2
  83. package/dist/components/feedback/Spinner/Spinner.cjs.js +1 -1
  84. package/dist/components/feedback/Spinner/Spinner.mjs +29 -29
  85. package/dist/components/feedback/Spinner/Spinner.module.css.mjs +1 -2
  86. package/dist/components/feedback/Toast/Toast.cjs.js +1 -1
  87. package/dist/components/feedback/Toast/Toast.mjs +42 -42
  88. package/dist/components/feedback/Toast/Toast.module.css.mjs +1 -2
  89. package/dist/components/feedback/Toast/ToastItem.cjs.js +1 -1
  90. package/dist/components/feedback/Toast/ToastItem.mjs +10 -10
  91. package/dist/components/feedback/Toast/ToastProvider.cjs.js +1 -1
  92. package/dist/components/feedback/Toast/ToastProvider.mjs +11 -11
  93. package/dist/components/feedback/Toast/ToastViewport.cjs.js +1 -1
  94. package/dist/components/feedback/Toast/ToastViewport.mjs +30 -30
  95. package/dist/components/feedback/Toast/toastStore.mjs +1 -2
  96. package/dist/components/feedback/Toast/toastTiming.cjs.js +1 -1
  97. package/dist/components/feedback/Toast/toastTiming.mjs +2 -2
  98. package/dist/components/feedback/Toast/useToast.cjs.js +1 -1
  99. package/dist/components/feedback/Toast/useToast.mjs +2 -2
  100. package/dist/components/feedback/Toast/useToastAnnouncer.cjs.js +1 -1
  101. package/dist/components/feedback/Toast/useToastAnnouncer.mjs +2 -2
  102. package/dist/components/forms/CheckBox/CheckBox.cjs.js +1 -1
  103. package/dist/components/forms/CheckBox/CheckBox.mjs +2 -2
  104. package/dist/components/forms/CheckBox/CheckBox.module.css.mjs +1 -2
  105. package/dist/components/forms/ColorPicker/ColorInput.cjs.js +1 -1
  106. package/dist/components/forms/ColorPicker/ColorInput.mjs +43 -43
  107. package/dist/components/forms/ColorPicker/ColorPicker.cjs.js +1 -1
  108. package/dist/components/forms/ColorPicker/ColorPicker.mjs +153 -153
  109. package/dist/components/forms/ColorPicker/ColorPicker.module.css.mjs +1 -2
  110. package/dist/components/forms/ColorPicker/colorUtils.mjs +1 -2
  111. package/dist/components/forms/Combobox/Combobox.cjs.js +1 -1
  112. package/dist/components/forms/Combobox/Combobox.mjs +200 -213
  113. package/dist/components/forms/Combobox/Combobox.module.css.mjs +1 -2
  114. package/dist/components/forms/Combobox/ComboboxPopup.cjs.js +1 -1
  115. package/dist/components/forms/Combobox/ComboboxPopup.mjs +164 -121
  116. package/dist/components/forms/Combobox/comboboxUtils.cjs.js +1 -1
  117. package/dist/components/forms/Combobox/comboboxUtils.d.ts +4 -1
  118. package/dist/components/forms/Combobox/comboboxUtils.mjs +21 -20
  119. package/dist/components/forms/DatePicker/Calendar.cjs.js +1 -1
  120. package/dist/components/forms/DatePicker/Calendar.mjs +60 -66
  121. package/dist/components/forms/DatePicker/Calendar.module.css.mjs +1 -2
  122. package/dist/components/forms/DatePicker/DatePicker.cjs.js +1 -1
  123. package/dist/components/forms/DatePicker/DatePicker.mjs +72 -74
  124. package/dist/components/forms/DatePicker/DatePicker.module.css.mjs +1 -2
  125. package/dist/components/forms/DatePicker/DateRangePicker.cjs.js +1 -1
  126. package/dist/components/forms/DatePicker/DateRangePicker.mjs +117 -117
  127. package/dist/components/forms/DatePicker/DateRangePicker.module.css.mjs +1 -2
  128. package/dist/components/forms/DatePicker/dateUtils.mjs +1 -2
  129. package/dist/components/forms/DateTimePicker/DateTimePicker.cjs.js +1 -1
  130. package/dist/components/forms/DateTimePicker/DateTimePicker.mjs +19 -19
  131. package/dist/components/forms/DateTimePicker/DateTimePicker.module.css.mjs +1 -2
  132. package/dist/components/forms/Field/Field.cjs.js +1 -1
  133. package/dist/components/forms/Field/Field.mjs +14 -14
  134. package/dist/components/forms/Field/Field.module.css.mjs +1 -2
  135. package/dist/components/forms/Field/FieldContext.cjs.js +1 -1
  136. package/dist/components/forms/Field/FieldContext.mjs +2 -2
  137. package/dist/components/forms/FileUpload/FileUpload.cjs.js +1 -1
  138. package/dist/components/forms/FileUpload/FileUpload.mjs +250 -255
  139. package/dist/components/forms/FileUpload/FileUpload.module.css.mjs +1 -2
  140. package/dist/components/forms/Input/Input.cjs.js +1 -1
  141. package/dist/components/forms/Input/Input.mjs +35 -35
  142. package/dist/components/forms/Input/Input.module.css.mjs +1 -2
  143. package/dist/components/forms/NumberInput/NumberInput.cjs.js +1 -1
  144. package/dist/components/forms/NumberInput/NumberInput.mjs +137 -142
  145. package/dist/components/forms/NumberInput/NumberInput.module.css.mjs +1 -2
  146. package/dist/components/forms/PasswordInput/PasswordInput.cjs.js +1 -1
  147. package/dist/components/forms/PasswordInput/PasswordInput.mjs +142 -142
  148. package/dist/components/forms/PasswordInput/PasswordInput.module.css.mjs +1 -2
  149. package/dist/components/forms/PinInput/PinInput.cjs.js +1 -1
  150. package/dist/components/forms/PinInput/PinInput.mjs +12 -12
  151. package/dist/components/forms/PinInput/PinInput.module.css.mjs +1 -2
  152. package/dist/components/forms/Radio/Radio.cjs.js +1 -1
  153. package/dist/components/forms/Radio/Radio.mjs +2 -2
  154. package/dist/components/forms/Radio/Radio.module.css.mjs +1 -2
  155. package/dist/components/forms/Rating/Rating.cjs.js +1 -1
  156. package/dist/components/forms/Rating/Rating.mjs +110 -109
  157. package/dist/components/forms/Rating/Rating.module.css.mjs +1 -2
  158. package/dist/components/forms/SearchInput/SearchInput.cjs.js +1 -1
  159. package/dist/components/forms/SearchInput/SearchInput.mjs +118 -126
  160. package/dist/components/forms/SearchInput/SearchInput.module.css.mjs +1 -2
  161. package/dist/components/forms/SegmentedControl/SegmentedControl.cjs.js +1 -1
  162. package/dist/components/forms/SegmentedControl/SegmentedControl.mjs +46 -43
  163. package/dist/components/forms/SegmentedControl/SegmentedControl.module.css.mjs +1 -2
  164. package/dist/components/forms/Select/Select.cjs.js +1 -1
  165. package/dist/components/forms/Select/Select.mjs +2 -2
  166. package/dist/components/forms/Select/Select.module.css.mjs +1 -2
  167. package/dist/components/forms/Slider/Slider.cjs.js +1 -1
  168. package/dist/components/forms/Slider/Slider.mjs +2 -2
  169. package/dist/components/forms/Slider/Slider.module.css.mjs +1 -2
  170. package/dist/components/forms/Switch/Switch.cjs.js +1 -1
  171. package/dist/components/forms/Switch/Switch.mjs +39 -39
  172. package/dist/components/forms/Switch/Switch.module.css.mjs +1 -2
  173. package/dist/components/forms/TagInput/TagInput.cjs.js +1 -1
  174. package/dist/components/forms/TagInput/TagInput.mjs +197 -203
  175. package/dist/components/forms/TagInput/TagInput.module.css.mjs +1 -2
  176. package/dist/components/forms/Textarea/Textarea.cjs.js +1 -1
  177. package/dist/components/forms/Textarea/Textarea.mjs +59 -59
  178. package/dist/components/forms/Textarea/Textarea.module.css.mjs +1 -2
  179. package/dist/components/forms/TimePicker/TimePicker.cjs.js +1 -1
  180. package/dist/components/forms/TimePicker/TimePicker.mjs +14 -16
  181. package/dist/components/forms/TimePicker/TimePicker.module.css.mjs +1 -2
  182. package/dist/components/forms/TimePicker/timeUtils.cjs.js +1 -1
  183. package/dist/components/forms/TimePicker/timeUtils.d.ts +4 -1
  184. package/dist/components/forms/TimePicker/timeUtils.mjs +43 -38
  185. package/dist/components/forms/ToggleGroup/ToggleGroup.cjs.js +1 -1
  186. package/dist/components/forms/ToggleGroup/ToggleGroup.mjs +10 -10
  187. package/dist/components/forms/ToggleGroup/ToggleGroup.module.css.mjs +1 -2
  188. package/dist/components/layout/Box/Box.mjs +1 -2
  189. package/dist/components/layout/Box/Box.module.css.mjs +1 -2
  190. package/dist/components/layout/Container/Container.mjs +1 -2
  191. package/dist/components/layout/Container/Container.module.css.mjs +1 -2
  192. package/dist/components/layout/Divider/Divider.mjs +1 -2
  193. package/dist/components/layout/Divider/Divider.module.css.mjs +1 -2
  194. package/dist/components/layout/Flex/Flex.cjs.js +1 -1
  195. package/dist/components/layout/Flex/Flex.mjs +12 -13
  196. package/dist/components/layout/Flex/Flex.module.css.mjs +1 -2
  197. package/dist/components/layout/Grid/Grid.cjs.js +1 -1
  198. package/dist/components/layout/Grid/Grid.mjs +20 -21
  199. package/dist/components/layout/Grid/Grid.module.css.mjs +1 -2
  200. package/dist/components/layout/ResizablePanels/ResizablePanels.cjs.js +1 -1
  201. package/dist/components/layout/ResizablePanels/ResizablePanels.mjs +17 -17
  202. package/dist/components/layout/ResizablePanels/ResizablePanels.module.css.mjs +1 -2
  203. package/dist/components/layout/ScrollArea/ScrollArea.cjs.js +1 -1
  204. package/dist/components/layout/ScrollArea/ScrollArea.mjs +2 -2
  205. package/dist/components/layout/ScrollArea/ScrollArea.module.css.mjs +1 -2
  206. package/dist/components/layout/Stack/Stack.cjs.js +1 -1
  207. package/dist/components/layout/Stack/Stack.mjs +8 -9
  208. package/dist/components/layout/Stack/Stack.module.css.mjs +1 -2
  209. package/dist/components/navigation/Breadcrumbs/Breadcrumbs.cjs.js +1 -1
  210. package/dist/components/navigation/Breadcrumbs/Breadcrumbs.mjs +41 -41
  211. package/dist/components/navigation/Breadcrumbs/Breadcrumbs.module.css.mjs +1 -2
  212. package/dist/components/navigation/ContextMenu/ContextMenu.cjs.js +1 -1
  213. package/dist/components/navigation/ContextMenu/ContextMenu.mjs +48 -48
  214. package/dist/components/navigation/ContextMenu/ContextMenu.module.css.mjs +1 -2
  215. package/dist/components/navigation/Link/Link.cjs.js +1 -1
  216. package/dist/components/navigation/Link/Link.mjs +6 -7
  217. package/dist/components/navigation/Link/Link.module.css.mjs +1 -2
  218. package/dist/components/navigation/Menu/Menu.cjs.js +1 -1
  219. package/dist/components/navigation/Menu/Menu.mjs +11 -11
  220. package/dist/components/navigation/Menu/Menu.module.css.mjs +1 -2
  221. package/dist/components/navigation/Menu/MenuContent.cjs.js +1 -1
  222. package/dist/components/navigation/Menu/MenuContent.mjs +46 -46
  223. package/dist/components/navigation/Menu/MenuContext.cjs.js +1 -1
  224. package/dist/components/navigation/Menu/MenuContext.mjs +2 -2
  225. package/dist/components/navigation/Menu/MenuItem.cjs.js +1 -1
  226. package/dist/components/navigation/Menu/MenuItem.mjs +35 -39
  227. package/dist/components/navigation/Menu/MenuSub.cjs.js +1 -1
  228. package/dist/components/navigation/Menu/MenuSub.mjs +16 -20
  229. package/dist/components/navigation/Menu/useMenuRoot.cjs.js +1 -1
  230. package/dist/components/navigation/Menu/useMenuRoot.mjs +2 -2
  231. package/dist/components/navigation/Navbar/Navbar.cjs.js +1 -1
  232. package/dist/components/navigation/Navbar/Navbar.d.ts +65 -2
  233. package/dist/components/navigation/Navbar/Navbar.mjs +315 -175
  234. package/dist/components/navigation/Navbar/Navbar.module.css.cjs.js +1 -1
  235. package/dist/components/navigation/Navbar/Navbar.module.css.mjs +21 -13
  236. package/dist/components/navigation/Pagination/Pagination.cjs.js +1 -1
  237. package/dist/components/navigation/Pagination/Pagination.mjs +31 -35
  238. package/dist/components/navigation/Pagination/Pagination.module.css.mjs +1 -2
  239. package/dist/components/navigation/Sidebar/Sidebar.cjs.js +1 -1
  240. package/dist/components/navigation/Sidebar/Sidebar.mjs +52 -52
  241. package/dist/components/navigation/Sidebar/Sidebar.module.css.mjs +1 -2
  242. package/dist/components/navigation/Sidebar/SidebarContext.cjs.js +1 -1
  243. package/dist/components/navigation/Sidebar/SidebarContext.mjs +2 -2
  244. package/dist/components/navigation/Sidebar/SidebarParts.cjs.js +1 -1
  245. package/dist/components/navigation/Sidebar/SidebarParts.mjs +76 -80
  246. package/dist/components/navigation/SkipLink/SkipLink.cjs.js +1 -1
  247. package/dist/components/navigation/SkipLink/SkipLink.mjs +12 -12
  248. package/dist/components/navigation/SkipLink/SkipLink.module.css.mjs +1 -2
  249. package/dist/components/navigation/Stepper/Stepper.cjs.js +1 -1
  250. package/dist/components/navigation/Stepper/Stepper.mjs +46 -46
  251. package/dist/components/navigation/Stepper/Stepper.module.css.mjs +1 -2
  252. package/dist/components/navigation/Tabs/Tabs.cjs.js +1 -1
  253. package/dist/components/navigation/Tabs/Tabs.mjs +2 -2
  254. package/dist/components/navigation/Tabs/Tabs.module.css.mjs +1 -2
  255. package/dist/components/overlays/CommandPalette/CommandPalette.cjs.js +1 -1
  256. package/dist/components/overlays/CommandPalette/CommandPalette.mjs +206 -206
  257. package/dist/components/overlays/CommandPalette/CommandPalette.module.css.mjs +1 -2
  258. package/dist/components/overlays/CommandPalette/CommandPaletteContext.cjs.js +1 -1
  259. package/dist/components/overlays/CommandPalette/CommandPaletteContext.mjs +2 -2
  260. package/dist/components/overlays/CommandPalette/CommandPaletteParts.cjs.js +1 -1
  261. package/dist/components/overlays/CommandPalette/CommandPaletteParts.mjs +104 -104
  262. package/dist/components/overlays/CommandPalette/commandPaletteUtils.cjs.js +1 -1
  263. package/dist/components/overlays/CommandPalette/commandPaletteUtils.mjs +62 -60
  264. package/dist/components/overlays/Drawer/Drawer.cjs.js +1 -1
  265. package/dist/components/overlays/Drawer/Drawer.mjs +31 -31
  266. package/dist/components/overlays/Drawer/Drawer.module.css.mjs +1 -2
  267. package/dist/components/overlays/Drawer/DrawerContent.cjs.js +1 -1
  268. package/dist/components/overlays/Drawer/DrawerContent.mjs +99 -99
  269. package/dist/components/overlays/Drawer/DrawerContext.cjs.js +1 -1
  270. package/dist/components/overlays/Drawer/DrawerContext.mjs +2 -2
  271. package/dist/components/overlays/Drawer/DrawerParts.cjs.js +1 -1
  272. package/dist/components/overlays/Drawer/DrawerParts.mjs +18 -18
  273. package/dist/components/overlays/Drawer/internal.mjs +1 -2
  274. package/dist/components/overlays/Drawer/useDragToClose.cjs.js +1 -1
  275. package/dist/components/overlays/Drawer/useDragToClose.mjs +2 -2
  276. package/dist/components/overlays/HoverCard/HoverCard.cjs.js +1 -1
  277. package/dist/components/overlays/HoverCard/HoverCard.mjs +31 -31
  278. package/dist/components/overlays/HoverCard/HoverCard.module.css.mjs +1 -2
  279. package/dist/components/overlays/Modal/ConfirmModal.cjs.js +1 -1
  280. package/dist/components/overlays/Modal/ConfirmModal.mjs +21 -23
  281. package/dist/components/overlays/Modal/Modal.cjs.js +1 -1
  282. package/dist/components/overlays/Modal/Modal.mjs +47 -47
  283. package/dist/components/overlays/Modal/Modal.module.css.mjs +1 -2
  284. package/dist/components/overlays/Modal/ModalContent.cjs.js +1 -1
  285. package/dist/components/overlays/Modal/ModalContent.mjs +24 -24
  286. package/dist/components/overlays/Modal/ModalContext.cjs.js +1 -1
  287. package/dist/components/overlays/Modal/ModalContext.mjs +2 -2
  288. package/dist/components/overlays/Modal/useScrollRegion.cjs.js +1 -1
  289. package/dist/components/overlays/Modal/useScrollRegion.mjs +2 -2
  290. package/dist/components/overlays/Popover/Popover.cjs.js +1 -1
  291. package/dist/components/overlays/Popover/Popover.mjs +40 -40
  292. package/dist/components/overlays/Popover/Popover.module.css.mjs +1 -2
  293. package/dist/components/overlays/Popover/PopoverContent.cjs.js +1 -1
  294. package/dist/components/overlays/Popover/PopoverContent.mjs +39 -39
  295. package/dist/components/overlays/Popover/PopoverContext.cjs.js +1 -1
  296. package/dist/components/overlays/Popover/PopoverContext.mjs +2 -2
  297. package/dist/components/overlays/Tooltip/Tooltip.cjs.js +1 -1
  298. package/dist/components/overlays/Tooltip/Tooltip.mjs +100 -95
  299. package/dist/components/overlays/Tooltip/Tooltip.module.css.mjs +1 -2
  300. package/dist/components/primitives/Button/Button.cjs.js +1 -1
  301. package/dist/components/primitives/Button/Button.mjs +59 -63
  302. package/dist/components/primitives/Button/Button.module.css.mjs +1 -2
  303. package/dist/components/primitives/Icon/Icon.cjs.js +1 -1
  304. package/dist/components/primitives/Icon/Icon.mjs +5 -6
  305. package/dist/components/primitives/Icon/Icon.module.css.mjs +1 -2
  306. package/dist/components/primitives/Icon/IconSvg.mjs +1 -2
  307. package/dist/components/primitives/Icon/icons.mjs +1 -2
  308. package/dist/components/primitives/Kbd/Kbd.cjs.js +1 -1
  309. package/dist/components/primitives/Kbd/Kbd.mjs +30 -30
  310. package/dist/components/primitives/Kbd/Kbd.module.css.mjs +1 -2
  311. package/dist/components/primitives/Typography/Typography.mjs +1 -2
  312. package/dist/components/primitives/Typography/Typography.module.css.mjs +1 -2
  313. package/dist/components/utilities/LocaleProvider/LocaleProvider.cjs.js +1 -1
  314. package/dist/components/utilities/LocaleProvider/LocaleProvider.mjs +11 -11
  315. package/dist/components/utilities/LocaleProvider/LocaleProvider.module.css.mjs +1 -2
  316. package/dist/components/utilities/Portal/Portal.cjs.js +1 -1
  317. package/dist/components/utilities/Portal/Portal.mjs +2 -2
  318. package/dist/components/utilities/Theme/Theme.cjs.js +1 -1
  319. package/dist/components/utilities/Theme/Theme.mjs +13 -13
  320. package/dist/components/utilities/Theme/Theme.module.css.mjs +1 -2
  321. package/dist/components/utilities/VisuallyHidden/VisuallyHidden.mjs +1 -2
  322. package/dist/components/utilities/VisuallyHidden/VisuallyHidden.module.css.mjs +1 -2
  323. package/dist/hooks/elementSource.cjs.js +1 -1
  324. package/dist/hooks/elementSource.mjs +4 -3
  325. package/dist/hooks/useClipboard.cjs.js +1 -1
  326. package/dist/hooks/useClipboard.mjs +2 -2
  327. package/dist/hooks/useControllableState.cjs.js +1 -1
  328. package/dist/hooks/useControllableState.mjs +2 -2
  329. package/dist/hooks/useDisclosure.cjs.js +1 -1
  330. package/dist/hooks/useDisclosure.mjs +2 -2
  331. package/dist/hooks/useDismiss.cjs.js +1 -1
  332. package/dist/hooks/useDismiss.mjs +2 -2
  333. package/dist/hooks/useElementObservers.cjs.js +1 -1
  334. package/dist/hooks/useElementObservers.mjs +2 -2
  335. package/dist/hooks/useEnvironment.cjs.js +1 -1
  336. package/dist/hooks/useEnvironment.mjs +2 -2
  337. package/dist/hooks/useFloatingPosition.cjs.js +1 -1
  338. package/dist/hooks/useFloatingPosition.mjs +2 -2
  339. package/dist/hooks/useFocusTrap.cjs.js +1 -1
  340. package/dist/hooks/useFocusTrap.mjs +4 -15
  341. package/dist/hooks/useFormReset.cjs.js +1 -1
  342. package/dist/hooks/useFormReset.mjs +2 -2
  343. package/dist/hooks/useFormValidation.cjs.js +1 -1
  344. package/dist/hooks/useFormValidation.mjs +2 -2
  345. package/dist/hooks/useHotkeys.cjs.js +1 -1
  346. package/dist/hooks/useHotkeys.mjs +2 -2
  347. package/dist/hooks/useInertOutside.cjs.js +1 -1
  348. package/dist/hooks/useInertOutside.mjs +5 -9
  349. package/dist/hooks/useMediaQuery.cjs.js +1 -1
  350. package/dist/hooks/useMediaQuery.mjs +2 -2
  351. package/dist/hooks/useMergedRef.cjs.js +1 -1
  352. package/dist/hooks/useMergedRef.mjs +2 -2
  353. package/dist/hooks/useOverlayLayer.cjs.js +1 -1
  354. package/dist/hooks/useOverlayLayer.mjs +3 -3
  355. package/dist/hooks/useResponsiveValue.cjs.js +1 -1
  356. package/dist/hooks/useResponsiveValue.mjs +2 -2
  357. package/dist/hooks/useScrollLock.cjs.js +1 -1
  358. package/dist/hooks/useScrollLock.mjs +2 -2
  359. package/dist/hooks/useStorage.cjs.js +1 -1
  360. package/dist/hooks/useStorage.mjs +2 -2
  361. package/dist/hooks/useTiming.cjs.js +1 -1
  362. package/dist/hooks/useTiming.mjs +10 -15
  363. package/dist/hooks/useVirtualizer.cjs.js +1 -1
  364. package/dist/hooks/useVirtualizer.d.ts +13 -0
  365. package/dist/hooks/useVirtualizer.mjs +93 -54
  366. package/dist/i18n/en.cjs.js +1 -1
  367. package/dist/i18n/en.mjs +2 -2
  368. package/dist/i18n/merge.mjs +1 -2
  369. package/dist/i18n/plural.mjs +1 -2
  370. package/dist/i18n/types.d.ts +5 -0
  371. package/dist/index.cjs.js +1 -1
  372. package/dist/index.mjs +114 -114
  373. package/dist/locales/ar.cjs.js +1 -1
  374. package/dist/locales/ar.mjs +2 -2
  375. package/dist/locales/bn.cjs.js +1 -1
  376. package/dist/locales/bn.mjs +2 -2
  377. package/dist/locales/cs.cjs.js +1 -1
  378. package/dist/locales/cs.mjs +2 -2
  379. package/dist/locales/da.cjs.js +1 -1
  380. package/dist/locales/da.mjs +2 -2
  381. package/dist/locales/de.cjs.js +1 -1
  382. package/dist/locales/de.mjs +2 -2
  383. package/dist/locales/el.cjs.js +1 -1
  384. package/dist/locales/el.mjs +2 -2
  385. package/dist/locales/es.cjs.js +1 -1
  386. package/dist/locales/es.mjs +2 -2
  387. package/dist/locales/fa.cjs.js +1 -1
  388. package/dist/locales/fa.mjs +2 -2
  389. package/dist/locales/fi.cjs.js +1 -1
  390. package/dist/locales/fi.mjs +2 -2
  391. package/dist/locales/fr.cjs.js +1 -1
  392. package/dist/locales/fr.mjs +2 -2
  393. package/dist/locales/he.cjs.js +1 -1
  394. package/dist/locales/he.mjs +2 -2
  395. package/dist/locales/hi.cjs.js +1 -1
  396. package/dist/locales/hi.mjs +2 -2
  397. package/dist/locales/hu.cjs.js +1 -1
  398. package/dist/locales/hu.mjs +2 -2
  399. package/dist/locales/id.cjs.js +1 -1
  400. package/dist/locales/id.mjs +2 -2
  401. package/dist/locales/it.cjs.js +1 -1
  402. package/dist/locales/it.mjs +2 -2
  403. package/dist/locales/ja.cjs.js +1 -1
  404. package/dist/locales/ja.mjs +2 -2
  405. package/dist/locales/ko.cjs.js +1 -1
  406. package/dist/locales/ko.mjs +2 -2
  407. package/dist/locales/nb.cjs.js +1 -1
  408. package/dist/locales/nb.mjs +2 -2
  409. package/dist/locales/nl.cjs.js +1 -1
  410. package/dist/locales/nl.mjs +2 -2
  411. package/dist/locales/pl.cjs.js +1 -1
  412. package/dist/locales/pl.mjs +2 -2
  413. package/dist/locales/pt-BR.cjs.js +1 -1
  414. package/dist/locales/pt-BR.mjs +2 -2
  415. package/dist/locales/ro.cjs.js +1 -1
  416. package/dist/locales/ro.mjs +2 -2
  417. package/dist/locales/ru.cjs.js +1 -1
  418. package/dist/locales/ru.mjs +2 -2
  419. package/dist/locales/sv.cjs.js +1 -1
  420. package/dist/locales/sv.mjs +2 -2
  421. package/dist/locales/th.cjs.js +1 -1
  422. package/dist/locales/th.mjs +2 -2
  423. package/dist/locales/tr.cjs.js +1 -1
  424. package/dist/locales/tr.mjs +2 -2
  425. package/dist/locales/uk.cjs.js +1 -1
  426. package/dist/locales/uk.mjs +2 -2
  427. package/dist/locales/ur.cjs.js +1 -1
  428. package/dist/locales/ur.mjs +2 -2
  429. package/dist/locales/vi.cjs.js +1 -1
  430. package/dist/locales/vi.mjs +2 -2
  431. package/dist/locales/zh-Hans.cjs.js +1 -1
  432. package/dist/locales/zh-Hans.mjs +2 -2
  433. package/dist/locales/zh-Hant.cjs.js +1 -1
  434. package/dist/locales/zh-Hant.mjs +2 -2
  435. package/dist/types/common.mjs +1 -2
  436. package/dist/utils/announce.cjs.js +1 -1
  437. package/dist/utils/announce.mjs +3 -4
  438. package/dist/utils/brandPalette.mjs +1 -2
  439. package/dist/utils/clipboard.mjs +1 -2
  440. package/dist/utils/cx.mjs +1 -2
  441. package/dist/utils/fillSlot.cjs.js +1 -1
  442. package/dist/utils/fillSlot.mjs +2 -2
  443. package/dist/utils/flattenChildren.mjs +1 -2
  444. package/dist/utils/hotkeys.mjs +1 -2
  445. package/dist/utils/intl.cjs.js +1 -0
  446. package/dist/utils/intl.d.ts +10 -0
  447. package/dist/utils/intl.mjs +15 -0
  448. package/dist/utils/refs.mjs +1 -2
  449. package/dist/utils/responsive.mjs +1 -2
  450. package/dist/utils/slot.mjs +1 -2
  451. package/dist/utils/validators.mjs +1 -2
  452. package/dist/vjdesigns-ui.css +1 -1
  453. package/dist/vjdesigns-ui.css.d.ts +2 -0
  454. package/package.json +24 -14
@@ -1,14 +1,15 @@
1
- import { OverlayLayerProvider as e, useOverlayLayer as t } from "../../../hooks/useOverlayLayer.mjs";
2
- import { useFloatingPosition as n } from "../../../hooks/useFloatingPosition.mjs";
3
- import { focusWhenReady as r } from "../../../hooks/useFocusTrap.mjs";
4
- import { useMergedRef as i } from "../../../hooks/useMergedRef.mjs";
5
- import { cx as a } from "../../../utils/cx.mjs";
6
- import { Portal as o } from "../../utilities/Portal/Portal.mjs";
1
+ "use client";
2
+ import { useFloatingPosition as e } from "../../../hooks/useFloatingPosition.mjs";
3
+ import { focusWhenReady as t } from "../../../hooks/useFocusTrap.mjs";
4
+ import { OverlayLayerProvider as n, useOverlayLayer as r } from "../../../hooks/useOverlayLayer.mjs";
5
+ import { cx as i } from "../../../utils/cx.mjs";
6
+ import { Portal as a } from "../../utilities/Portal/Portal.mjs";
7
+ import { useMergedRef as o } from "../../../hooks/useMergedRef.mjs";
7
8
  import { ITEM_ATTR as s, MenuLevelContext as c, defaultSubPlacement as l, focusItem as u, getItemText as d, getMenuItems as f, useMenuLevel as p, useMenuTree as m } from "./MenuContext.mjs";
8
9
  import h from "./Menu.module.css.mjs";
9
10
  import { useEffect as g, useLayoutEffect as _, useRef as v, useState as y } from "react";
10
11
  import { jsx as b } from "react/jsx-runtime";
11
- //#region src/components/navigation/Menu/MenuContent.tsx
12
+ // src/components/navigation/Menu/MenuContent.tsx
12
13
  var x = {
13
14
  sm: h.sm,
14
15
  md: h.md,
@@ -21,7 +22,7 @@ function C(e, t) {
21
22
  }
22
23
  var w = ({ container: e, ...t }) => {
23
24
  let n = p("Menu.Content"), r = m("Menu.Content");
24
- return n.open ? /* @__PURE__ */ b(o, {
25
+ return n.open ? /* @__PURE__ */ b(a, {
25
26
  container: e,
26
27
  children: /* @__PURE__ */ b(T, {
27
28
  ...t,
@@ -29,49 +30,49 @@ var w = ({ container: e, ...t }) => {
29
30
  tree: r
30
31
  })
31
32
  }) : null;
32
- }, T = ({ level: o, tree: p, children: m, placement: w, offset: T, maxHeight: E, className: D, style: O, ref: k, onKeyDown: A, onPointerEnter: j, onFocus: M, "aria-label": N, "aria-labelledby": P, ...F }) => {
33
- let I = v(null), L = i(o.contentRef, k), [R, z] = y("ltr");
33
+ }, T = ({ level: a, tree: p, children: m, placement: w, offset: T, maxHeight: E, className: D, style: O, ref: k, onKeyDown: A, onPointerEnter: j, onFocus: M, "aria-label": N, "aria-labelledby": P, ...F }) => {
34
+ let I = v(null), L = o(a.contentRef, k), [R, z] = y("ltr");
34
35
  _(() => {
35
- let e = (o.anchorRef ?? o.triggerRef).current;
36
+ let e = (a.anchorRef ?? a.triggerRef).current;
36
37
  e && z(getComputedStyle(e).direction === "rtl" ? "rtl" : "ltr");
37
- }, [o.anchorRef, o.triggerRef]);
38
- let B = C(w ?? (o.isSub ? l(R === "rtl") : "bottom-start"), R === "rtl"), V = n(o.anchorRef ?? o.triggerRef, I, {
38
+ }, [a.anchorRef, a.triggerRef]);
39
+ let B = C(w ?? (a.isSub ? l(R === "rtl") : "bottom-start"), R === "rtl"), V = e(a.anchorRef ?? a.triggerRef, I, {
39
40
  open: !0,
40
41
  placement: B,
41
- offset: T ?? (o.isSub ? 4 : 8)
42
- }), H = V.isPositioned, U = V.placement.split("-")[0], W = t({
42
+ offset: T ?? (a.isSub ? 4 : 8)
43
+ }), H = V.isPositioned, U = V.placement.split("-")[0], W = r({
43
44
  active: !0,
44
- elements: () => [I, o.anchorRef ?? o.triggerRef],
45
- onEscape: () => o.setOpen(!1, { restore: "force" }),
45
+ elements: () => [I, a.anchorRef ?? a.triggerRef],
46
+ onEscape: () => a.setOpen(!1, { restore: "force" }),
46
47
  onOutsidePress: (e) => {
47
- if (o.isSub) {
48
- o.setOpen(!1, { restore: "auto" });
48
+ if (a.isSub) {
49
+ a.setOpen(!1, { restore: "auto" });
49
50
  return;
50
51
  }
51
52
  let t = e.target instanceof Element ? e.target : null;
52
- o.setOpen(!1, { restore: t?.closest("a[href],button:not([disabled]),input:not([disabled]),select:not([disabled]),textarea:not([disabled]),label,summary,iframe,[contenteditable='true'],[tabindex]") ? "none" : "deferred" });
53
+ a.setOpen(!1, { restore: t?.closest("a[href],button:not([disabled]),input:not([disabled]),select:not([disabled]),textarea:not([disabled]),label,summary,iframe,[contenteditable='true'],[tabindex]") ? "none" : "deferred" });
53
54
  }
54
55
  });
55
56
  g(() => {
56
- if (!H || o.openFocusRef.current === "none") return;
57
- let e = o.contentRef.current;
58
- if (e) return r(() => {
59
- let t = o.openFocusRef.current;
57
+ if (!H || a.openFocusRef.current === "none") return;
58
+ let e = a.contentRef.current;
59
+ if (e) return t(() => {
60
+ let t = a.openFocusRef.current;
60
61
  if (t === "none" || !e.isConnected) return null;
61
62
  let n = f(e), r = (t === "first" ? n[0] : t === "last" ? n[n.length - 1] : null) ?? e;
62
- return u(r), document.activeElement === r && (o.openFocusRef.current = "none"), r;
63
+ return u(r), document.activeElement === r && (a.openFocusRef.current = "none"), r;
63
64
  });
64
65
  }, [
65
66
  H,
66
- o.focusNonce,
67
- o.openFocusRef,
68
- o.contentRef
67
+ a.focusNonce,
68
+ a.openFocusRef,
69
+ a.contentRef
69
70
  ]), _(() => {
70
- let { contentRef: e, triggerRef: t, restoreModeRef: n, isSub: r } = o, i = e.current, a = `[data-menu-tree="${p.treeId}"]`;
71
+ let { contentRef: e, triggerRef: t, restoreModeRef: n, isSub: r } = a, i = e.current, o = `[data-menu-tree="${p.treeId}"]`;
71
72
  return () => {
72
73
  let e = n.current;
73
74
  if (n.current = "auto", r && p.closingAllRef.current) return;
74
- let o = document.activeElement, s = !o || o === document.body || (r ? !!i?.contains(o) : !!o.closest(a)), c = () => {
75
+ let a = document.activeElement, s = !a || a === document.body || (r ? !!i?.contains(a) : !!a.closest(o)), c = () => {
75
76
  let e = t.current;
76
77
  e?.isConnected && e.focus({ preventScroll: !0 });
77
78
  };
@@ -92,17 +93,17 @@ var w = ({ container: e, ...t }) => {
92
93
  c && u(c);
93
94
  }, q = (e) => {
94
95
  if (A?.(e), e.defaultPrevented) return;
95
- let t = o.contentRef.current, n = e.target;
96
+ let t = a.contentRef.current, n = e.target;
96
97
  if (!t || !t.contains(n)) return;
97
- let r = f(t), i = n.closest(`[${s}]`), a = i ? r.indexOf(i) : -1, c = getComputedStyle(t).direction === "rtl", l = c ? "ArrowLeft" : "ArrowRight", d = c ? "ArrowRight" : "ArrowLeft", m = r.length - 1, h = () => {
98
- o.openSub !== null && o.setOpenSub(null);
98
+ let r = f(t), i = n.closest(`[${s}]`), o = i ? r.indexOf(i) : -1, c = getComputedStyle(t).direction === "rtl", l = c ? "ArrowLeft" : "ArrowRight", d = c ? "ArrowRight" : "ArrowLeft", m = r.length - 1, h = () => {
99
+ a.openSub !== null && a.setOpenSub(null);
99
100
  };
100
101
  switch (e.key) {
101
102
  case "ArrowDown":
102
- e.preventDefault(), h(), r.length && u(r[(a + 1) % r.length]);
103
+ e.preventDefault(), h(), r.length && u(r[(o + 1) % r.length]);
103
104
  return;
104
105
  case "ArrowUp":
105
- e.preventDefault(), h(), r.length && u(r[a <= 0 ? m : a - 1]);
106
+ e.preventDefault(), h(), r.length && u(r[o <= 0 ? m : o - 1]);
106
107
  return;
107
108
  case "Home":
108
109
  case "PageUp":
@@ -116,12 +117,12 @@ var w = ({ container: e, ...t }) => {
116
117
  i?.getAttribute("aria-haspopup") === "menu" && (e.preventDefault(), i.click());
117
118
  return;
118
119
  case d:
119
- o.isSub && (e.preventDefault(), o.setOpen(!1, { restore: "force" }));
120
+ a.isSub && (e.preventDefault(), a.setOpen(!1, { restore: "force" }));
120
121
  return;
121
122
  case "Enter":
122
123
  case " ":
123
124
  if (e.key === " " && G.current.buffer) {
124
- e.preventDefault(), K(" ", r, a);
125
+ e.preventDefault(), K(" ", r, o);
125
126
  return;
126
127
  }
127
128
  if (i) {
@@ -132,22 +133,22 @@ var w = ({ container: e, ...t }) => {
132
133
  case "Tab":
133
134
  p.focusRootTrigger(), p.closeAll("none");
134
135
  return;
135
- default: e.key.length === 1 && !e.ctrlKey && !e.metaKey && !e.altKey && (e.preventDefault(), K(e.key, r, a));
136
+ default: e.key.length !== 1 || e.ctrlKey || e.metaKey || e.altKey || (e.preventDefault(), K(e.key, r, o));
136
137
  }
137
138
  }, J = (e) => {
138
139
  M?.(e);
139
- let t = o.contentRef.current, n = e.target;
140
+ let t = a.contentRef.current, n = e.target;
140
141
  if (t && n.hasAttribute("data-menu-item") && t.contains(n)) for (let e of f(t)) e.tabIndex = e === n ? 0 : -1;
141
142
  }, Y = (e) => {
142
- j?.(e), o.parent?.cancelSubTimer();
143
- }, X = P ?? (N ? void 0 : o.triggerRef.current?.id || o.triggerId), Z = E === void 0 ? O : {
143
+ j?.(e), a.parent?.cancelSubTimer();
144
+ }, X = P ?? (N ? void 0 : a.triggerRef.current?.id || a.triggerId), Z = E === void 0 ? O : {
144
145
  ...O,
145
146
  "--_max-h": typeof E == "number" ? `${E}px` : E
146
147
  };
147
- return /* @__PURE__ */ b(e, {
148
+ return /* @__PURE__ */ b(n, {
148
149
  layer: W,
149
150
  children: /* @__PURE__ */ b(c.Provider, {
150
- value: o,
151
+ value: a,
151
152
  children: /* @__PURE__ */ b("div", {
152
153
  ref: I,
153
154
  className: h.positioner,
@@ -160,9 +161,9 @@ var w = ({ container: e, ...t }) => {
160
161
  ...F,
161
162
  role: "menu",
162
163
  "aria-orientation": "vertical",
163
- id: o.contentId,
164
+ id: a.contentId,
164
165
  ref: L,
165
- className: a(h.content, x[p.size], D),
166
+ className: i(h.content, x[p.size], D),
166
167
  style: Z,
167
168
  "data-side": U,
168
169
  "data-state": "open",
@@ -176,5 +177,4 @@ var w = ({ container: e, ...t }) => {
176
177
  })
177
178
  });
178
179
  };
179
- //#endregion
180
180
  export { w as MenuContent, T as MenuSurface };
@@ -1 +1 @@
1
- let e=require("react");var t=(0,e.createContext)(null),n=(0,e.createContext)(null),r=(0,e.createContext)(null);function i(n){let r=(0,e.useContext)(t);if(!r)throw Error(`${n} must be rendered inside <Menu>.`);return r}function a(t){let r=(0,e.useContext)(n);if(!r)throw Error(`${t} must be rendered inside <Menu>.`);return r}function o(t){let n=(0,e.useContext)(r);if(!n)throw Error(`${t} must be rendered inside <Menu.Sub>.`);return n}function s(){let[t,n]=(0,e.useState)(null),r=(0,e.useRef)(void 0),i=(0,e.useRef)(void 0),a=(0,e.useCallback)(()=>{r.current!==void 0&&window.clearTimeout(r.current),r.current=void 0,i.current=void 0},[]),o=(0,e.useCallback)(e=>{a(),n(e)},[a]),s=(0,e.useCallback)(e=>{a(),n(t=>t===e?null:t)},[a]),c=(0,e.useCallback)((e,t)=>{(r.current===void 0||i.current!==e)&&(a(),i.current=e,r.current=window.setTimeout(()=>{r.current=void 0,i.current=void 0,n(e)},t))},[a]);return(0,e.useEffect)(()=>a,[a]),(0,e.useMemo)(()=>({openSub:t,setOpenSub:o,closeSub:s,scheduleSub:c,cancelSubTimer:a}),[t,o,s,c,a])}var c=`data-menu-item`;function l(e){return Array.from(e.querySelectorAll(`[${c}]`)).filter(t=>t.closest(`[role="menu"]`)===e)}function u(e){return e.getAttribute(`data-menu-text`)||(e.querySelector(`[data-menu-label]`)?.textContent??e.textContent??``).trim()}function d(e){e&&(e.focus({preventScroll:!0}),e.scrollIntoView?.({block:`nearest`}))}var f=`a[href],button:not([disabled]),input:not([disabled]),select:not([disabled]),textarea:not([disabled]),label,summary,iframe,[contenteditable='true'],[tabindex]`;function p(e){return e?`left-start`:`right-start`}exports.ITEM_ATTR=c,exports.MenuLevelContext=n,exports.MenuSubContext=r,exports.MenuTreeContext=t,exports.PRESS_FOCUSABLE=f,exports.defaultSubPlacement=p,exports.focusItem=d,exports.getItemText=u,exports.getMenuItems=l,exports.useMenuLevel=a,exports.useMenuSub=o,exports.useMenuTree=i,exports.useSubmenuState=s;
1
+ "use client";let e=require("react");var t=(0,e.createContext)(null),n=(0,e.createContext)(null),r=(0,e.createContext)(null);function i(n){let r=(0,e.useContext)(t);if(!r)throw Error(`${n} must be rendered inside <Menu>.`);return r}function a(t){let r=(0,e.useContext)(n);if(!r)throw Error(`${t} must be rendered inside <Menu>.`);return r}function o(t){let n=(0,e.useContext)(r);if(!n)throw Error(`${t} must be rendered inside <Menu.Sub>.`);return n}function s(){let[t,n]=(0,e.useState)(null),r=(0,e.useRef)(void 0),i=(0,e.useRef)(void 0),a=(0,e.useCallback)(()=>{r.current!==void 0&&window.clearTimeout(r.current),r.current=void 0,i.current=void 0},[]),o=(0,e.useCallback)(e=>{a(),n(e)},[a]),s=(0,e.useCallback)(e=>{a(),n(t=>t===e?null:t)},[a]),c=(0,e.useCallback)((e,t)=>{(r.current===void 0||i.current!==e)&&(a(),i.current=e,r.current=window.setTimeout(()=>{r.current=void 0,i.current=void 0,n(e)},t))},[a]);return(0,e.useEffect)(()=>a,[a]),(0,e.useMemo)(()=>({openSub:t,setOpenSub:o,closeSub:s,scheduleSub:c,cancelSubTimer:a}),[t,o,s,c,a])}var c=`data-menu-item`;function l(e){return Array.from(e.querySelectorAll(`[${c}]`)).filter(t=>t.closest(`[role="menu"]`)===e)}function u(e){return e.getAttribute(`data-menu-text`)||(e.querySelector(`[data-menu-label]`)?.textContent??e.textContent??``).trim()}function d(e){e&&(e.focus({preventScroll:!0}),e.scrollIntoView?.({block:`nearest`}))}var f=`a[href],button:not([disabled]),input:not([disabled]),select:not([disabled]),textarea:not([disabled]),label,summary,iframe,[contenteditable='true'],[tabindex]`;function p(e){return e?`left-start`:`right-start`}exports.ITEM_ATTR=c,exports.MenuLevelContext=n,exports.MenuSubContext=r,exports.MenuTreeContext=t,exports.PRESS_FOCUSABLE=f,exports.defaultSubPlacement=p,exports.focusItem=d,exports.getItemText=u,exports.getMenuItems=l,exports.useMenuLevel=a,exports.useMenuSub=o,exports.useMenuTree=i,exports.useSubmenuState=s;
@@ -1,5 +1,6 @@
1
+ "use client";
1
2
  import { createContext as e, useCallback as t, useContext as n, useEffect as r, useMemo as i, useRef as a, useState as o } from "react";
2
- //#region src/components/navigation/Menu/MenuContext.ts
3
+ // src/components/navigation/Menu/MenuContext.ts
3
4
  var s = e(null), c = e(null), l = e(null);
4
5
  function u(e) {
5
6
  let t = n(s);
@@ -56,5 +57,4 @@ var v = "a[href],button:not([disabled]),input:not([disabled]),select:not([disabl
56
57
  function y(e) {
57
58
  return e ? "left-start" : "right-start";
58
59
  }
59
- //#endregion
60
60
  export { m as ITEM_ATTR, c as MenuLevelContext, l as MenuSubContext, s as MenuTreeContext, v as PRESS_FOCUSABLE, y as defaultSubPlacement, _ as focusItem, g as getItemText, h as getMenuItems, d as useMenuLevel, f as useMenuSub, u as useMenuTree, p as useSubmenuState };
@@ -1 +1 @@
1
- const e=require("../../../hooks/useControllableState.cjs.js"),t=require("../../../hooks/useMergedRef.cjs.js"),n=require("../../../utils/cx.cjs.js"),r=require("../../primitives/Icon/icons.cjs.js"),i=require("../../primitives/Icon/Icon.cjs.js"),a=require("../../primitives/Kbd/Kbd.cjs.js"),o=require("./MenuContext.cjs.js"),s=require("./Menu.module.css.cjs.js");let c=require("react"),l=require("react/jsx-runtime");var u={neutral:void 0,danger:s.default.danger};function d(e){let t={target:e,defaultPrevented:!1,preventDefault:()=>{t.defaultPrevented=!0}};return t}var f={cmd:`Meta`,meta:`Meta`,ctrl:`Control`,alt:`Alt`,option:`Alt`,shift:`Shift`,enter:`Enter`,return:`Enter`,esc:`Escape`,tab:`Tab`,space:`Space`,backspace:`Backspace`,delete:`Delete`,capslock:`CapsLock`,up:`ArrowUp`,down:`ArrowDown`,left:`ArrowLeft`,right:`ArrowRight`,pageup:`PageUp`,pagedown:`PageDown`,home:`Home`,end:`End`};function p(e,t){return e.map(e=>{let n=e.toLowerCase();return n===`mod`?t===`mac`?`Meta`:`Control`:f[n]??(e.length===1?e.toUpperCase():e)}).join(`+`)}var m={sm:`sm`,md:`sm`,lg:`md`},h=100,g=300,_={x:NaN,y:NaN},v=({role:e,tone:r=`neutral`,disabled:i=!1,icon:c,indicator:d,shortcut:f,end:v,href:y,target:b,rel:x,subId:S,textValue:C,onActivate:w,children:T,className:E,onClick:D,onPointerMove:O,ref:k,"aria-keyshortcuts":A,...j})=>{let M=o.useMenuLevel(`Menu.Item`),N=o.useMenuTree(`Menu.Item`),P=a.useKbdPlatform(),F=t.useMergedRef(k),I=e=>{if(O?.(e),e.defaultPrevented||e.pointerType===`touch`)return;let t=_.x!==e.clientX||_.y!==e.clientY;if(_.x=e.clientX,_.y=e.clientY,!t)return;let n=e.currentTarget,r=S&&M.openSub===S?document.getElementById(n.getAttribute(`aria-controls`)??``):null,a=!!r&&r.contains(document.activeElement);document.activeElement!==n&&!a&&n.focus({preventScroll:!0}),S?M.openSub===S?M.cancelSubTimer():i||M.scheduleSub(S,h):M.openSub!==null&&M.scheduleSub(null,g)},L=e=>{if(i){e.preventDefault();return}D?.(e),!e.defaultPrevented&&w(e)},R=Array.isArray(f),z=A??(R?p(f,P):void 0),B={...j,ref:F,role:e,tabIndex:-1,"aria-disabled":i||void 0,"aria-keyshortcuts":z,"data-disabled":i?``:void 0,"data-menu-text":C,[o.ITEM_ATTR]:``,className:n.cx(s.default.item,u[r],E),onClick:L,onPointerMove:I},V=(0,l.jsxs)(l.Fragment,{children:[d!==void 0&&(0,l.jsx)(`span`,{"aria-hidden":`true`,className:s.default.indicator,children:d}),c&&(0,l.jsx)(`span`,{"aria-hidden":`true`,className:s.default.icon,children:c}),(0,l.jsx)(`span`,{className:s.default.label,"data-menu-label":``,children:T}),f!=null&&f!==!1&&(0,l.jsx)(`span`,{"aria-hidden":`true`,className:s.default.shortcut,children:R?(0,l.jsx)(a.KbdShortcut,{keys:f,size:m[N.size],variant:`soft`}):f}),v]});return y!==void 0&&!i?(0,l.jsx)(`a`,{...B,href:y,target:b,rel:x,children:V}):(0,l.jsx)(`div`,{...B,children:V})};function y(e,t){let n=o.useMenuTree(`Menu.Item`);return r=>{(e??n.closeOnSelect??t)&&!r.defaultPrevented&&n.closeAll(`force`)}}var b=({onSelect:e,closeOnSelect:t,...n})=>{let r=y(t,!0);return(0,l.jsx)(v,{...n,role:`menuitem`,onActivate:t=>{let n=d(t.currentTarget);e?.(n),r(n)}})},x=({checked:t,defaultChecked:n=!1,onCheckedChange:i,onSelect:a,closeOnSelect:o,...s})=>{let[c,u]=e.useControllableState({value:t,defaultValue:n,onChange:i}),f=y(o,!1);return(0,l.jsx)(v,{...s,role:`menuitemcheckbox`,"aria-checked":c,"data-state":c?`checked`:`unchecked`,indicator:c?(0,l.jsx)(r.CheckIcon,{size:`sm`,strokeWidth:3}):null,onActivate:e=>{let t=d(e.currentTarget);a?.(t),u(!c),f(t)}})},S=(0,c.createContext)(null);function C(){let e=(0,c.useId)(),[t,n]=(0,c.useState)(null);return{value:(0,c.useMemo)(()=>({defaultLabelId:e,setLabelId:n}),[e]),labelledBy:t??void 0}}var w=({className:e,children:t,...r})=>{let{value:i,labelledBy:a}=C();return(0,l.jsx)(S.Provider,{value:i,children:(0,l.jsx)(`div`,{role:`group`,"aria-labelledby":r[`aria-label`]?void 0:a,...r,className:n.cx(s.default.group,e),children:t})})},T=({className:e,id:t,...r})=>{let i=(0,c.useContext)(S),a=t??i?.defaultLabelId,o=i?.setLabelId;return(0,c.useLayoutEffect)(()=>{if(o&&a)return o(a),()=>o(null)},[o,a]),(0,l.jsx)(`div`,{...r,id:a,className:n.cx(s.default.groupLabel,e)})},E=({className:e,...t})=>(0,l.jsx)(`div`,{role:`separator`,"aria-orientation":`horizontal`,...t,className:n.cx(s.default.separator,e)}),D=(0,c.createContext)(null),O=({value:t,defaultValue:r,onValueChange:i,className:a,children:o,...u})=>{let[d,f]=e.useControllableState({value:t,defaultValue:r??null,onChange:e=>{e!==null&&i?.(e)}}),p=(0,c.useMemo)(()=>({value:d,setValue:f}),[d,f]),{value:m,labelledBy:h}=C();return(0,l.jsx)(S.Provider,{value:m,children:(0,l.jsx)(D.Provider,{value:p,children:(0,l.jsx)(`div`,{role:`group`,"aria-labelledby":u[`aria-label`]?void 0:h,...u,className:n.cx(s.default.group,a),children:o})})})},k=({value:e,onSelect:t,closeOnSelect:n,...r})=>{let a=(0,c.useContext)(D),o=y(n,!1);if(!a)throw Error(`Menu.RadioItem must be rendered inside <Menu.RadioGroup>.`);let s=a.value===e;return(0,l.jsx)(v,{...r,role:`menuitemradio`,"aria-checked":s,"data-state":s?`checked`:`unchecked`,indicator:s?(0,l.jsx)(i.Icon,{size:`sm`,children:(0,l.jsx)(`circle`,{cx:`12`,cy:`12`,r:`5`,fill:`currentColor`,stroke:`none`})}):null,onActivate:n=>{let r=d(n.currentTarget);t?.(r),a.setValue(e),o(r)}})};exports.MenuCheckboxItem=x,exports.MenuGroup=w,exports.MenuItem=b,exports.MenuItemBase=v,exports.MenuLabel=T,exports.MenuRadioGroup=O,exports.MenuRadioItem=k,exports.MenuSeparator=E;
1
+ "use client";const e=require("../../../hooks/useControllableState.cjs.js"),t=require("../../../utils/cx.cjs.js"),n=require("../../primitives/Icon/icons.cjs.js"),r=require("../../primitives/Icon/Icon.cjs.js"),i=require("../../primitives/Kbd/Kbd.cjs.js"),a=require("../../../hooks/useMergedRef.cjs.js"),o=require("./MenuContext.cjs.js"),s=require("./Menu.module.css.cjs.js");let c=require("react"),l=require("react/jsx-runtime");var u={neutral:void 0,danger:s.default.danger};function d(e){let t={target:e,defaultPrevented:!1,preventDefault:()=>{t.defaultPrevented=!0}};return t}var f={cmd:`Meta`,meta:`Meta`,ctrl:`Control`,alt:`Alt`,option:`Alt`,shift:`Shift`,enter:`Enter`,return:`Enter`,esc:`Escape`,tab:`Tab`,space:`Space`,backspace:`Backspace`,delete:`Delete`,capslock:`CapsLock`,up:`ArrowUp`,down:`ArrowDown`,left:`ArrowLeft`,right:`ArrowRight`,pageup:`PageUp`,pagedown:`PageDown`,home:`Home`,end:`End`};function p(e,t){return e.map(e=>{let n=e.toLowerCase();return n===`mod`?t===`mac`?`Meta`:`Control`:f[n]??(e.length===1?e.toUpperCase():e)}).join(`+`)}var m={sm:`sm`,md:`sm`,lg:`md`},h=100,g=300,_={x:NaN,y:NaN},v=({role:e,tone:n=`neutral`,disabled:r=!1,icon:c,indicator:d,shortcut:f,end:v,href:y,target:b,rel:x,subId:S,textValue:C,onActivate:w,children:T,className:E,onClick:D,onPointerMove:O,ref:k,"aria-keyshortcuts":A,...j})=>{let M=o.useMenuLevel(`Menu.Item`),N=o.useMenuTree(`Menu.Item`),P=i.useKbdPlatform(),F=a.useMergedRef(k),I=e=>{if(O?.(e),e.defaultPrevented||e.pointerType===`touch`)return;let t=_.x!==e.clientX||_.y!==e.clientY;if(_.x=e.clientX,_.y=e.clientY,!t)return;let n=e.currentTarget,i=S&&M.openSub===S?document.getElementById(n.getAttribute(`aria-controls`)??``):null,a=!!i&&i.contains(document.activeElement);document.activeElement!==n&&!a&&n.focus({preventScroll:!0}),S?M.openSub===S?M.cancelSubTimer():r||M.scheduleSub(S,h):M.openSub!==null&&M.scheduleSub(null,g)},L=e=>{r?e.preventDefault():(D?.(e),e.defaultPrevented||w(e))},R=Array.isArray(f),z=A??(R?p(f,P):void 0),B={...j,ref:F,role:e,tabIndex:-1,"aria-disabled":r||void 0,"aria-keyshortcuts":z,"data-disabled":r?``:void 0,"data-menu-text":C,[o.ITEM_ATTR]:``,className:t.cx(s.default.item,u[n],E),onClick:L,onPointerMove:I},V=(0,l.jsxs)(l.Fragment,{children:[d!==void 0&&(0,l.jsx)(`span`,{"aria-hidden":`true`,className:s.default.indicator,children:d}),c&&(0,l.jsx)(`span`,{"aria-hidden":`true`,className:s.default.icon,children:c}),(0,l.jsx)(`span`,{className:s.default.label,"data-menu-label":``,children:T}),f!=null&&f!==!1&&(0,l.jsx)(`span`,{"aria-hidden":`true`,className:s.default.shortcut,children:R?(0,l.jsx)(i.KbdShortcut,{keys:f,size:m[N.size],variant:`soft`}):f}),v]});return y!==void 0&&!r?(0,l.jsx)(`a`,{...B,href:y,target:b,rel:x,children:V}):(0,l.jsx)(`div`,{...B,children:V})};function y(e,t){let n=o.useMenuTree(`Menu.Item`);return r=>{(e??n.closeOnSelect??t)&&!r.defaultPrevented&&n.closeAll(`force`)}}var b=({onSelect:e,closeOnSelect:t,...n})=>{let r=y(t,!0);return(0,l.jsx)(v,{...n,role:`menuitem`,onActivate:t=>{let n=d(t.currentTarget);e?.(n),r(n)}})},x=({checked:t,defaultChecked:r=!1,onCheckedChange:i,onSelect:a,closeOnSelect:o,...s})=>{let[c,u]=e.useControllableState({value:t,defaultValue:r,onChange:i}),f=y(o,!1);return(0,l.jsx)(v,{...s,role:`menuitemcheckbox`,"aria-checked":c,"data-state":c?`checked`:`unchecked`,indicator:c?(0,l.jsx)(n.CheckIcon,{size:`sm`,strokeWidth:3}):null,onActivate:e=>{let t=d(e.currentTarget);a?.(t),u(!c),f(t)}})},S=(0,c.createContext)(null);function C(){let e=(0,c.useId)(),[t,n]=(0,c.useState)(null);return{value:(0,c.useMemo)(()=>({defaultLabelId:e,setLabelId:n}),[e]),labelledBy:t??void 0}}var w=({className:e,children:n,...r})=>{let{value:i,labelledBy:a}=C();return(0,l.jsx)(S.Provider,{value:i,children:(0,l.jsx)(`div`,{role:`group`,"aria-labelledby":r[`aria-label`]?void 0:a,...r,className:t.cx(s.default.group,e),children:n})})},T=({className:e,id:n,...r})=>{let i=(0,c.useContext)(S),a=n??i?.defaultLabelId,o=i?.setLabelId;return(0,c.useLayoutEffect)(()=>{if(o&&a)return o(a),()=>o(null)},[o,a]),(0,l.jsx)(`div`,{...r,id:a,className:t.cx(s.default.groupLabel,e)})},E=({className:e,...n})=>(0,l.jsx)(`div`,{role:`separator`,"aria-orientation":`horizontal`,...n,className:t.cx(s.default.separator,e)}),D=(0,c.createContext)(null),O=({value:n,defaultValue:r,onValueChange:i,className:a,children:o,...u})=>{let[d,f]=e.useControllableState({value:n,defaultValue:r??null,onChange:e=>{e!==null&&i?.(e)}}),p=(0,c.useMemo)(()=>({value:d,setValue:f}),[d,f]),{value:m,labelledBy:h}=C();return(0,l.jsx)(S.Provider,{value:m,children:(0,l.jsx)(D.Provider,{value:p,children:(0,l.jsx)(`div`,{role:`group`,"aria-labelledby":u[`aria-label`]?void 0:h,...u,className:t.cx(s.default.group,a),children:o})})})},k=({value:e,onSelect:t,closeOnSelect:n,...i})=>{let a=(0,c.useContext)(D),o=y(n,!1);if(!a)throw Error(`Menu.RadioItem must be rendered inside <Menu.RadioGroup>.`);let s=a.value===e;return(0,l.jsx)(v,{...i,role:`menuitemradio`,"aria-checked":s,"data-state":s?`checked`:`unchecked`,indicator:s?(0,l.jsx)(r.Icon,{size:`sm`,children:(0,l.jsx)(`circle`,{cx:`12`,cy:`12`,r:`5`,fill:`currentColor`,stroke:`none`})}):null,onActivate:n=>{let r=d(n.currentTarget);t?.(r),a.setValue(e),o(r)}})};exports.MenuCheckboxItem=x,exports.MenuGroup=w,exports.MenuItem=b,exports.MenuItemBase=v,exports.MenuLabel=T,exports.MenuRadioGroup=O,exports.MenuRadioItem=k,exports.MenuSeparator=E;
@@ -1,14 +1,15 @@
1
+ "use client";
1
2
  import { useControllableState as e } from "../../../hooks/useControllableState.mjs";
2
- import { useMergedRef as t } from "../../../hooks/useMergedRef.mjs";
3
- import { cx as n } from "../../../utils/cx.mjs";
4
- import { CheckIcon as r } from "../../primitives/Icon/icons.mjs";
5
- import { Icon as i } from "../../primitives/Icon/Icon.mjs";
6
- import { KbdShortcut as a, useKbdPlatform as o } from "../../primitives/Kbd/Kbd.mjs";
3
+ import { cx as t } from "../../../utils/cx.mjs";
4
+ import { CheckIcon as n } from "../../primitives/Icon/icons.mjs";
5
+ import { Icon as r } from "../../primitives/Icon/Icon.mjs";
6
+ import { KbdShortcut as i, useKbdPlatform as a } from "../../primitives/Kbd/Kbd.mjs";
7
+ import { useMergedRef as o } from "../../../hooks/useMergedRef.mjs";
7
8
  import { ITEM_ATTR as s, useMenuLevel as c, useMenuTree as l } from "./MenuContext.mjs";
8
9
  import u from "./Menu.module.css.mjs";
9
10
  import { createContext as d, useContext as f, useId as p, useLayoutEffect as m, useMemo as h, useState as g } from "react";
10
11
  import { Fragment as _, jsx as v, jsxs as y } from "react/jsx-runtime";
11
- //#region src/components/navigation/Menu/MenuItem.tsx
12
+ // src/components/navigation/Menu/MenuItem.tsx
12
13
  var b = {
13
14
  neutral: void 0,
14
15
  danger: u.danger
@@ -60,30 +61,26 @@ var w = {
60
61
  }, T = 100, E = 300, D = {
61
62
  x: NaN,
62
63
  y: NaN
63
- }, O = ({ role: e, tone: r = "neutral", disabled: i = !1, icon: d, indicator: f, shortcut: p, end: m, href: h, target: g, rel: x, subId: S, textValue: O, onActivate: k, children: A, className: j, onClick: M, onPointerMove: N, ref: P, "aria-keyshortcuts": F, ...I }) => {
64
- let L = c("Menu.Item"), R = l("Menu.Item"), z = o(), B = t(P), V = (e) => {
64
+ }, O = ({ role: e, tone: n = "neutral", disabled: r = !1, icon: d, indicator: f, shortcut: p, end: m, href: h, target: g, rel: x, subId: S, textValue: O, onActivate: k, children: A, className: j, onClick: M, onPointerMove: N, ref: P, "aria-keyshortcuts": F, ...I }) => {
65
+ let L = c("Menu.Item"), R = l("Menu.Item"), z = a(), B = o(P), V = (e) => {
65
66
  if (N?.(e), e.defaultPrevented || e.pointerType === "touch") return;
66
67
  let t = D.x !== e.clientX || D.y !== e.clientY;
67
68
  if (D.x = e.clientX, D.y = e.clientY, !t) return;
68
- let n = e.currentTarget, r = S && L.openSub === S ? document.getElementById(n.getAttribute("aria-controls") ?? "") : null, a = !!r && r.contains(document.activeElement);
69
- document.activeElement !== n && !a && n.focus({ preventScroll: !0 }), S ? L.openSub === S ? L.cancelSubTimer() : i || L.scheduleSub(S, T) : L.openSub !== null && L.scheduleSub(null, E);
69
+ let n = e.currentTarget, i = S && L.openSub === S ? document.getElementById(n.getAttribute("aria-controls") ?? "") : null, a = !!i && i.contains(document.activeElement);
70
+ document.activeElement !== n && !a && n.focus({ preventScroll: !0 }), S ? L.openSub === S ? L.cancelSubTimer() : r || L.scheduleSub(S, T) : L.openSub !== null && L.scheduleSub(null, E);
70
71
  }, H = (e) => {
71
- if (i) {
72
- e.preventDefault();
73
- return;
74
- }
75
- M?.(e), !e.defaultPrevented && k(e);
72
+ r ? e.preventDefault() : (M?.(e), e.defaultPrevented || k(e));
76
73
  }, U = Array.isArray(p), W = F ?? (U ? C(p, z) : void 0), G = {
77
74
  ...I,
78
75
  ref: B,
79
76
  role: e,
80
77
  tabIndex: -1,
81
- "aria-disabled": i || void 0,
78
+ "aria-disabled": r || void 0,
82
79
  "aria-keyshortcuts": W,
83
- "data-disabled": i ? "" : void 0,
80
+ "data-disabled": r ? "" : void 0,
84
81
  "data-menu-text": O,
85
82
  [s]: "",
86
- className: n(u.item, b[r], j),
83
+ className: t(u.item, b[n], j),
87
84
  onClick: H,
88
85
  onPointerMove: V
89
86
  }, K = /* @__PURE__ */ y(_, { children: [
@@ -105,7 +102,7 @@ var w = {
105
102
  p != null && p !== !1 && /* @__PURE__ */ v("span", {
106
103
  "aria-hidden": "true",
107
104
  className: u.shortcut,
108
- children: U ? /* @__PURE__ */ v(a, {
105
+ children: U ? /* @__PURE__ */ v(i, {
109
106
  keys: p,
110
107
  size: w[R.size],
111
108
  variant: "soft"
@@ -113,7 +110,7 @@ var w = {
113
110
  }),
114
111
  m
115
112
  ] });
116
- return h !== void 0 && !i ? /* @__PURE__ */ v("a", {
113
+ return h !== void 0 && !r ? /* @__PURE__ */ v("a", {
117
114
  ...G,
118
115
  href: h,
119
116
  target: g,
@@ -140,10 +137,10 @@ var A = ({ onSelect: e, closeOnSelect: t, ...n }) => {
140
137
  e?.(n), r(n);
141
138
  }
142
139
  });
143
- }, j = ({ checked: t, defaultChecked: n = !1, onCheckedChange: i, onSelect: a, closeOnSelect: o, ...s }) => {
140
+ }, j = ({ checked: t, defaultChecked: r = !1, onCheckedChange: i, onSelect: a, closeOnSelect: o, ...s }) => {
144
141
  let [c, l] = e({
145
142
  value: t,
146
- defaultValue: n,
143
+ defaultValue: r,
147
144
  onChange: i
148
145
  }), u = k(o, !1);
149
146
  return /* @__PURE__ */ v(O, {
@@ -151,7 +148,7 @@ var A = ({ onSelect: e, closeOnSelect: t, ...n }) => {
151
148
  role: "menuitemcheckbox",
152
149
  "aria-checked": c,
153
150
  "data-state": c ? "checked" : "unchecked",
154
- indicator: c ? /* @__PURE__ */ v(r, {
151
+ indicator: c ? /* @__PURE__ */ v(n, {
155
152
  size: "sm",
156
153
  strokeWidth: 3
157
154
  }) : null,
@@ -171,7 +168,7 @@ function N() {
171
168
  labelledBy: t ?? void 0
172
169
  };
173
170
  }
174
- var P = ({ className: e, children: t, ...r }) => {
171
+ var P = ({ className: e, children: n, ...r }) => {
175
172
  let { value: i, labelledBy: a } = N();
176
173
  return /* @__PURE__ */ v(M.Provider, {
177
174
  value: i,
@@ -179,27 +176,27 @@ var P = ({ className: e, children: t, ...r }) => {
179
176
  role: "group",
180
177
  "aria-labelledby": r["aria-label"] ? void 0 : a,
181
178
  ...r,
182
- className: n(u.group, e),
183
- children: t
179
+ className: t(u.group, e),
180
+ children: n
184
181
  })
185
182
  });
186
- }, F = ({ className: e, id: t, ...r }) => {
187
- let i = f(M), a = t ?? i?.defaultLabelId, o = i?.setLabelId;
183
+ }, F = ({ className: e, id: n, ...r }) => {
184
+ let i = f(M), a = n ?? i?.defaultLabelId, o = i?.setLabelId;
188
185
  return m(() => {
189
186
  if (o && a) return o(a), () => o(null);
190
187
  }, [o, a]), /* @__PURE__ */ v("div", {
191
188
  ...r,
192
189
  id: a,
193
- className: n(u.groupLabel, e)
190
+ className: t(u.groupLabel, e)
194
191
  });
195
- }, I = ({ className: e, ...t }) => /* @__PURE__ */ v("div", {
192
+ }, I = ({ className: e, ...n }) => /* @__PURE__ */ v("div", {
196
193
  role: "separator",
197
194
  "aria-orientation": "horizontal",
198
- ...t,
199
- className: n(u.separator, e)
200
- }), L = d(null), R = ({ value: t, defaultValue: r, onValueChange: i, className: a, children: o, ...s }) => {
195
+ ...n,
196
+ className: t(u.separator, e)
197
+ }), L = d(null), R = ({ value: n, defaultValue: r, onValueChange: i, className: a, children: o, ...s }) => {
201
198
  let [c, l] = e({
202
- value: t,
199
+ value: n,
203
200
  defaultValue: r ?? null,
204
201
  onChange: (e) => {
205
202
  e !== null && i?.(e);
@@ -216,21 +213,21 @@ var P = ({ className: e, children: t, ...r }) => {
216
213
  role: "group",
217
214
  "aria-labelledby": s["aria-label"] ? void 0 : p,
218
215
  ...s,
219
- className: n(u.group, a),
216
+ className: t(u.group, a),
220
217
  children: o
221
218
  })
222
219
  })
223
220
  });
224
- }, z = ({ value: e, onSelect: t, closeOnSelect: n, ...r }) => {
221
+ }, z = ({ value: e, onSelect: t, closeOnSelect: n, ...i }) => {
225
222
  let a = f(L), o = k(n, !1);
226
223
  if (!a) throw Error("Menu.RadioItem must be rendered inside <Menu.RadioGroup>.");
227
224
  let s = a.value === e;
228
225
  return /* @__PURE__ */ v(O, {
229
- ...r,
226
+ ...i,
230
227
  role: "menuitemradio",
231
228
  "aria-checked": s,
232
229
  "data-state": s ? "checked" : "unchecked",
233
- indicator: s ? /* @__PURE__ */ v(i, {
230
+ indicator: s ? /* @__PURE__ */ v(r, {
234
231
  size: "sm",
235
232
  children: /* @__PURE__ */ v("circle", {
236
233
  cx: "12",
@@ -246,5 +243,4 @@ var P = ({ className: e, children: t, ...r }) => {
246
243
  }
247
244
  });
248
245
  };
249
- //#endregion
250
246
  export { j as MenuCheckboxItem, P as MenuGroup, A as MenuItem, O as MenuItemBase, F as MenuLabel, R as MenuRadioGroup, z as MenuRadioItem, I as MenuSeparator };
@@ -1 +1 @@
1
- const e=require("../../../hooks/useMergedRef.cjs.js"),t=require("../../../utils/cx.cjs.js"),n=require("../../utilities/Portal/Portal.cjs.js"),r=require("../../primitives/Icon/icons.cjs.js"),i=require("./MenuContext.cjs.js"),a=require("./Menu.module.css.cjs.js"),o=require("./MenuContent.cjs.js"),s=require("./MenuItem.cjs.js");let c=require("react"),l=require("react/jsx-runtime");var u=({children:e,onOpenChange:t})=>{let n=i.useMenuLevel(`Menu.Sub`),r=`sub-${(0,c.useId)()}`,a=n.open&&n.openSub===r,o=(0,c.useRef)(null),s=(0,c.useRef)(null),u=(0,c.useRef)(`none`),d=(0,c.useRef)(`auto`),[f,p]=(0,c.useState)(0),m=i.useSubmenuState(),{setOpenSub:h}=m,{setOpenSub:g,closeSub:_}=n,v=(0,c.useCallback)((e,t={})=>{e?(d.current=`auto`,u.current=t.focus??`none`,p(e=>e+1),g(r)):(d.current=t.restore??`auto`,_(r))},[r,g,_]);(0,c.useEffect)(()=>{a||(h(null),u.current=`none`)},[a,h]);let y=(0,c.useRef)(t);y.current=t;let b=(0,c.useRef)(!0);(0,c.useEffect)(()=>{if(b.current){b.current=!1;return}y.current?.(a)},[a]);let x=(0,c.useMemo)(()=>({id:r,isSub:!0,open:a,setOpen:v,focusNonce:f,openFocusRef:u,restoreModeRef:d,triggerRef:o,contentRef:s,contentId:`${r}-menu`,triggerId:`${r}-trigger`,parent:n,...m}),[r,a,v,f,n,m]);return(0,l.jsx)(i.MenuSubContext.Provider,{value:x,children:e})},d=({ref:n,id:o,className:c,...u})=>{let d=i.useMenuSub(`Menu.SubTrigger`),f=e.useMergedRef(d.triggerRef,n);return(0,l.jsx)(s.MenuItemBase,{...u,ref:f,id:o??d.triggerId,role:`menuitem`,"aria-haspopup":`menu`,"aria-expanded":d.open,"aria-controls":d.open?d.contentId:void 0,"data-state":d.open?`open`:`closed`,subId:d.id,className:t.cx(a.default.subTrigger,c),end:(0,l.jsx)(`span`,{"aria-hidden":`true`,className:a.default.chevron,children:(0,l.jsx)(r.ChevronRightIcon,{size:`sm`})}),onActivate:e=>{d.setOpen(!0,{focus:e.detail===0?`first`:`none`})}})},f=({container:e,...t})=>{let r=i.useMenuSub(`Menu.SubContent`),a=i.useMenuTree(`Menu.SubContent`);return r.open?(0,l.jsx)(n.Portal,{container:e,children:(0,l.jsx)(o.MenuSurface,{...t,level:r,tree:a})}):null};exports.MenuSub=u,exports.MenuSubContent=f,exports.MenuSubTrigger=d;
1
+ "use client";const e=require("../../../utils/cx.cjs.js"),t=require("../../primitives/Icon/icons.cjs.js"),n=require("../../utilities/Portal/Portal.cjs.js"),r=require("../../../hooks/useMergedRef.cjs.js"),i=require("./MenuContext.cjs.js"),a=require("./MenuContent.cjs.js"),o=require("./MenuItem.cjs.js"),s=require("./Menu.module.css.cjs.js");let c=require("react"),l=require("react/jsx-runtime");var u=({children:e,onOpenChange:t})=>{let n=i.useMenuLevel(`Menu.Sub`),r=`sub-${(0,c.useId)()}`,a=n.open&&n.openSub===r,o=(0,c.useRef)(null),s=(0,c.useRef)(null),u=(0,c.useRef)(`none`),d=(0,c.useRef)(`auto`),[f,p]=(0,c.useState)(0),m=i.useSubmenuState(),{setOpenSub:h}=m,{setOpenSub:g,closeSub:_}=n,v=(0,c.useCallback)((e,t={})=>{e?(d.current=`auto`,u.current=t.focus??`none`,p(e=>e+1),g(r)):(d.current=t.restore??`auto`,_(r))},[r,g,_]);(0,c.useEffect)(()=>{a||(h(null),u.current=`none`)},[a,h]);let y=(0,c.useRef)(t);y.current=t;let b=(0,c.useRef)(!0);(0,c.useEffect)(()=>{b.current?b.current=!1:y.current?.(a)},[a]);let x=(0,c.useMemo)(()=>({id:r,isSub:!0,open:a,setOpen:v,focusNonce:f,openFocusRef:u,restoreModeRef:d,triggerRef:o,contentRef:s,contentId:`${r}-menu`,triggerId:`${r}-trigger`,parent:n,...m}),[r,a,v,f,n,m]);return(0,l.jsx)(i.MenuSubContext.Provider,{value:x,children:e})},d=({ref:n,id:a,className:c,...u})=>{let d=i.useMenuSub(`Menu.SubTrigger`),f=r.useMergedRef(d.triggerRef,n);return(0,l.jsx)(o.MenuItemBase,{...u,ref:f,id:a??d.triggerId,role:`menuitem`,"aria-haspopup":`menu`,"aria-expanded":d.open,"aria-controls":d.open?d.contentId:void 0,"data-state":d.open?`open`:`closed`,subId:d.id,className:e.cx(s.default.subTrigger,c),end:(0,l.jsx)(`span`,{"aria-hidden":`true`,className:s.default.chevron,children:(0,l.jsx)(t.ChevronRightIcon,{size:`sm`})}),onActivate:e=>{d.setOpen(!0,{focus:e.detail===0?`first`:`none`})}})},f=({container:e,...t})=>{let r=i.useMenuSub(`Menu.SubContent`),o=i.useMenuTree(`Menu.SubContent`);return r.open?(0,l.jsx)(n.Portal,{container:e,children:(0,l.jsx)(a.MenuSurface,{...t,level:r,tree:o})}):null};exports.MenuSub=u,exports.MenuSubContent=f,exports.MenuSubTrigger=d;
@@ -1,14 +1,15 @@
1
- import { useMergedRef as e } from "../../../hooks/useMergedRef.mjs";
2
- import { cx as t } from "../../../utils/cx.mjs";
1
+ "use client";
2
+ import { cx as e } from "../../../utils/cx.mjs";
3
+ import { ChevronRightIcon as t } from "../../primitives/Icon/icons.mjs";
3
4
  import { Portal as n } from "../../utilities/Portal/Portal.mjs";
4
- import { ChevronRightIcon as r } from "../../primitives/Icon/icons.mjs";
5
+ import { useMergedRef as r } from "../../../hooks/useMergedRef.mjs";
5
6
  import { MenuSubContext as i, useMenuLevel as a, useMenuSub as o, useMenuTree as s, useSubmenuState as c } from "./MenuContext.mjs";
6
- import l from "./Menu.module.css.mjs";
7
- import { MenuSurface as u } from "./MenuContent.mjs";
8
- import { MenuItemBase as d } from "./MenuItem.mjs";
7
+ import { MenuSurface as l } from "./MenuContent.mjs";
8
+ import { MenuItemBase as u } from "./MenuItem.mjs";
9
+ import d from "./Menu.module.css.mjs";
9
10
  import { useCallback as f, useEffect as p, useId as m, useMemo as h, useRef as g, useState as _ } from "react";
10
11
  import { jsx as v } from "react/jsx-runtime";
11
- //#region src/components/navigation/Menu/MenuSub.tsx
12
+ // src/components/navigation/Menu/MenuSub.tsx
12
13
  var y = ({ children: e, onOpenChange: t }) => {
13
14
  let n = a("Menu.Sub"), r = `sub-${m()}`, o = n.open && n.openSub === r, s = g(null), l = g(null), u = g("none"), d = g("auto"), [y, b] = _(0), x = c(), { setOpenSub: S } = x, { setOpenSub: C, closeSub: w } = n, T = f((e, t = {}) => {
14
15
  e ? (d.current = "auto", u.current = t.focus ?? "none", b((e) => e + 1), C(r)) : (d.current = t.restore ?? "auto", w(r));
@@ -24,11 +25,7 @@ var y = ({ children: e, onOpenChange: t }) => {
24
25
  E.current = t;
25
26
  let D = g(!0);
26
27
  p(() => {
27
- if (D.current) {
28
- D.current = !1;
29
- return;
30
- }
31
- E.current?.(o);
28
+ D.current ? D.current = !1 : E.current?.(o);
32
29
  }, [o]);
33
30
  let O = h(() => ({
34
31
  id: r,
@@ -57,10 +54,10 @@ var y = ({ children: e, onOpenChange: t }) => {
57
54
  children: e
58
55
  });
59
56
  }, b = ({ ref: n, id: i, className: a, ...s }) => {
60
- let c = o("Menu.SubTrigger"), u = e(c.triggerRef, n);
61
- return /* @__PURE__ */ v(d, {
57
+ let c = o("Menu.SubTrigger"), l = r(c.triggerRef, n);
58
+ return /* @__PURE__ */ v(u, {
62
59
  ...s,
63
- ref: u,
60
+ ref: l,
64
61
  id: i ?? c.triggerId,
65
62
  role: "menuitem",
66
63
  "aria-haspopup": "menu",
@@ -68,11 +65,11 @@ var y = ({ children: e, onOpenChange: t }) => {
68
65
  "aria-controls": c.open ? c.contentId : void 0,
69
66
  "data-state": c.open ? "open" : "closed",
70
67
  subId: c.id,
71
- className: t(l.subTrigger, a),
68
+ className: e(d.subTrigger, a),
72
69
  end: /* @__PURE__ */ v("span", {
73
70
  "aria-hidden": "true",
74
- className: l.chevron,
75
- children: /* @__PURE__ */ v(r, { size: "sm" })
71
+ className: d.chevron,
72
+ children: /* @__PURE__ */ v(t, { size: "sm" })
76
73
  }),
77
74
  onActivate: (e) => {
78
75
  c.setOpen(!0, { focus: e.detail === 0 ? "first" : "none" });
@@ -82,12 +79,11 @@ var y = ({ children: e, onOpenChange: t }) => {
82
79
  let r = o("Menu.SubContent"), i = s("Menu.SubContent");
83
80
  return r.open ? /* @__PURE__ */ v(n, {
84
81
  container: e,
85
- children: /* @__PURE__ */ v(u, {
82
+ children: /* @__PURE__ */ v(l, {
86
83
  ...t,
87
84
  level: r,
88
85
  tree: i
89
86
  })
90
87
  }) : null;
91
88
  };
92
- //#endregion
93
89
  export { y as MenuSub, x as MenuSubContent, b as MenuSubTrigger };
@@ -1 +1 @@
1
- const e=require("../../../hooks/useControllableState.cjs.js"),t=require("./MenuContext.cjs.js");let n=require("react");function r({open:r,defaultOpen:i=!1,onOpenChange:a,size:o=`md`,closeOnSelect:s,anchorRef:c}){let[l,u]=e.useControllableState({value:r,defaultValue:i,onChange:a}),d=(0,n.useRef)(null),f=(0,n.useRef)(null),p=(0,n.useRef)(i?`first`:`none`),m=(0,n.useRef)(`auto`),h=(0,n.useRef)(!1),[g,_]=(0,n.useState)(0),v=t.useSubmenuState(),{setOpenSub:y}=v,b=(0,n.useId)(),x=(0,n.useCallback)((e,t={})=>{e?(h.current=!1,m.current=`auto`,p.current=t.focus??`first`,_(e=>e+1)):m.current=t.restore??`auto`,u(e)},[u]);return(0,n.useEffect)(()=>{l?h.current=!1:y(null)},[l,y]),{level:(0,n.useMemo)(()=>({id:b,isSub:!1,open:l,setOpen:x,focusNonce:g,openFocusRef:p,restoreModeRef:m,triggerRef:d,anchorRef:c,contentRef:f,contentId:`${b}-menu`,triggerId:`${b}-trigger`,parent:null,...v}),[l,x,g,b,v,c]),tree:(0,n.useMemo)(()=>({treeId:b,size:o,closeOnSelect:s,closingAllRef:h,closeAll:(e=`force`)=>{h.current=!0,x(!1,{restore:e}),window.setTimeout(()=>{h.current=!1},0)},focusRootTrigger:()=>d.current?.focus({preventScroll:!0})}),[b,o,s,x])}}exports.useMenuRoot=r;
1
+ "use client";const e=require("../../../hooks/useControllableState.cjs.js"),t=require("./MenuContext.cjs.js");let n=require("react");function r({open:r,defaultOpen:i=!1,onOpenChange:a,size:o=`md`,closeOnSelect:s,anchorRef:c}){let[l,u]=e.useControllableState({value:r,defaultValue:i,onChange:a}),d=(0,n.useRef)(null),f=(0,n.useRef)(null),p=(0,n.useRef)(i?`first`:`none`),m=(0,n.useRef)(`auto`),h=(0,n.useRef)(!1),[g,_]=(0,n.useState)(0),v=t.useSubmenuState(),{setOpenSub:y}=v,b=(0,n.useId)(),x=(0,n.useCallback)((e,t={})=>{e?(h.current=!1,m.current=`auto`,p.current=t.focus??`first`,_(e=>e+1)):m.current=t.restore??`auto`,u(e)},[u]);return(0,n.useEffect)(()=>{l?h.current=!1:y(null)},[l,y]),{level:(0,n.useMemo)(()=>({id:b,isSub:!1,open:l,setOpen:x,focusNonce:g,openFocusRef:p,restoreModeRef:m,triggerRef:d,anchorRef:c,contentRef:f,contentId:`${b}-menu`,triggerId:`${b}-trigger`,parent:null,...v}),[l,x,g,b,v,c]),tree:(0,n.useMemo)(()=>({treeId:b,size:o,closeOnSelect:s,closingAllRef:h,closeAll:(e=`force`)=>{h.current=!0,x(!1,{restore:e}),window.setTimeout(()=>{h.current=!1},0)},focusRootTrigger:()=>d.current?.focus({preventScroll:!0})}),[b,o,s,x])}}exports.useMenuRoot=r;
@@ -1,7 +1,8 @@
1
+ "use client";
1
2
  import { useControllableState as e } from "../../../hooks/useControllableState.mjs";
2
3
  import { useSubmenuState as t } from "./MenuContext.mjs";
3
4
  import { useCallback as n, useEffect as r, useId as i, useMemo as a, useRef as o, useState as s } from "react";
4
- //#region src/components/navigation/Menu/useMenuRoot.ts
5
+ // src/components/navigation/Menu/useMenuRoot.ts
5
6
  function c({ open: c, defaultOpen: l = !1, onOpenChange: u, size: d = "md", closeOnSelect: f, anchorRef: p }) {
6
7
  let [m, h] = e({
7
8
  value: c,
@@ -55,5 +56,4 @@ function c({ open: c, defaultOpen: l = !1, onOpenChange: u, size: d = "md", clos
55
56
  ])
56
57
  };
57
58
  }
58
- //#endregion
59
59
  export { c as useMenuRoot };
@@ -1 +1 @@
1
- const e=require("../../../types/common.cjs.js"),t=require("../../../hooks/useControllableState.cjs.js"),n=require("../../utilities/LocaleProvider/LocaleProvider.cjs.js"),r=require("../../../hooks/useMergedRef.cjs.js"),i=require("../../../utils/responsive.cjs.js"),a=require("../../../utils/cx.cjs.js"),o=require("../../primitives/Button/Button.cjs.js"),s=require("../../primitives/Icon/icons.cjs.js"),c=require("../../layout/Container/Container.cjs.js"),l=require("../../overlays/Drawer/Drawer.cjs.js"),u=require("./Navbar.module.css.cjs.js");let d=require("react"),f=require("react/jsx-runtime");var p={accent:u.default.activeAccent,primary:u.default.activePrimary,neutral:u.default.activeNeutral},m={surface:u.default.surface,transparent:u.default.transparent,solid:u.default.solid},h={sm:u.default.sm,md:u.default.md,lg:u.default.lg},g={static:u.default.static,sticky:u.default.sticky,fixed:u.default.fixed},_={sm:u.default.collapseSm,md:u.default.collapseMd,lg:u.default.collapseLg},v=(0,d.createContext)(null);function y(e){let t=(0,d.useContext)(v);if(!t)throw Error(`${e} must be used inside <Navbar>.`);return t}var b=(0,d.createContext)(`bar`),x=(0,d.createContext)(!1);function S(e){for(let t=e.parentElement;t&&t!==document.body;t=t.parentElement){let{overflowY:e}=getComputedStyle(t);if(e===`auto`||e===`scroll`||e===`overlay`)return t}return document.documentElement}var C=({children:i,variant:l=`surface`,size:p=`md`,position:y=`sticky`,reserveScrollPadding:b=!0,bordered:x=!1,elevated:C=!1,elevateOnScroll:w=!1,contained:T=!0,maxWidth:E=`xl`,collapseBelow:D=`md`,open:O,defaultOpen:k=!1,onOpenChange:A,menuLabel:j,menuTitle:ee,menuSide:M=`end`,activeTone:N=`accent`,className:P,ref:F,...I})=>{let L=n.useMessages(),R=j??L.navbar.openMenu,z=ee??L.navbar.menu,B=(0,d.useRef)(null),V=r.useMergedRef(B,F);(0,d.useEffect)(()=>{let e=B.current;if(!e||y===`static`||!b)return;let t=y===`fixed`?document.documentElement:S(e),n=t.style.scrollPaddingTop,r=()=>{t.style.scrollPaddingTop=`${e.offsetHeight}px`};r();let i=typeof ResizeObserver>`u`?null:new ResizeObserver(r);return i?.observe(e),()=>{i?.disconnect(),t.style.scrollPaddingTop=n}},[y,b]);let[H,U]=t.useControllableState({value:O,defaultValue:k,onChange:A}),W=`${(0,d.useId)()}-menu`,G=(0,d.useRef)(null),[K,q]=(0,d.useState)(0),[J,Y]=(0,d.useState)(!1),X=(0,d.useCallback)(()=>(q(e=>e+1),()=>q(e=>e-1)),[]),Z=(0,d.useCallback)(e=>U(e),[U]),Q=(0,d.useRef)(!1);(0,d.useEffect)(()=>{if(!H||typeof window>`u`||!window.matchMedia)return;let t=window.matchMedia(`(min-width: ${e.breakpoints[D]}px)`),n=()=>{t.matches&&(Q.current=!0,Z(!1))};return n(),t.addEventListener(`change`,n),()=>t.removeEventListener(`change`,n)},[H,D,Z]),(0,d.useEffect)(()=>{if(H||!Q.current)return;Q.current=!1;let e=document.activeElement;(!e||e===document.body||document.getElementById(W)?.contains(e))&&G.current?.closest(`header`)?.querySelector(`nav a[href], nav button:not([disabled])`)?.focus()},[H,W]),(0,d.useEffect)(()=>{if(!w||typeof window>`u`)return;let e=0,t=()=>{e=0,Y(window.scrollY>0)},n=()=>{e||=window.requestAnimationFrame(t)};return t(),window.addEventListener(`scroll`,n,{passive:!0}),()=>{window.removeEventListener(`scroll`,n),e&&window.cancelAnimationFrame(e)}},[w]);let te=(0,d.useMemo)(()=>({open:H,setOpen:Z,menuId:W,menuTitle:z,menuSide:M,toggleRef:G,registerNav:X,activeTone:N}),[H,Z,W,z,M,X,N]),$=w&&J,ne=K>0;return(0,f.jsx)(v.Provider,{value:te,children:(0,f.jsx)(`header`,{"data-variant":l,...I,ref:V,className:a.cx(u.default.root,m[l],h[p],g[y],_[D],x&&u.default.bordered,(C||$)&&u.default.elevated,$&&u.default.scrolled,P),children:(0,f.jsxs)(c.Container,{size:E,fluid:!T,gutter:`responsive`,className:u.default.inner,children:[i,ne&&(0,f.jsx)(o.IconButton,{ref:G,"aria-label":R,"aria-haspopup":`dialog`,"aria-expanded":H,"aria-controls":H?W:void 0,variant:l===`solid`?`solid`:`ghost`,tone:l===`solid`?`primary`:`neutral`,size:p,className:u.default.toggle,onClick:()=>Z(!H),children:(0,f.jsx)(s.MenuIcon,{})})]})})})};C.displayName=`Navbar`;function w(e){let{as:t,className:n,children:r,...i}=e,o=t!==void 0||i.href!==void 0;return(0,f.jsx)(t??(o?`a`:`div`),{...i,className:a.cx(u.default.brand,o&&u.default.brandLink,n),children:r})}w.displayName=`Navbar.Brand`;var T={start:u.default.alignStart,center:u.default.alignCenter,end:u.default.alignEnd},E=i.responsiveClasses(u.default,`navGap`),D=({children:e,align:t=`start`,gap:r,className:o,style:s,"aria-label":c,"aria-labelledby":p,...m})=>{let h=n.useMessages(),g=c??h.navbar.nav,{open:_,setOpen:v,menuId:x,menuTitle:S,menuSide:C,toggleRef:w,registerNav:D}=y(`Navbar.Nav`);(0,d.useLayoutEffect)(()=>D(),[D]);let O={},k=[];return i.responsiveVars(`navbar-nav-gap`,r,e=>`var(--space-${e})`,E,O,k),(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)(`nav`,{"aria-label":p?void 0:g,"aria-labelledby":p,...m,className:a.cx(u.default.nav,T[t],...k,o),style:{...O,...s},children:(0,f.jsx)(b.Provider,{value:`bar`,children:(0,f.jsx)(`ul`,{className:u.default.list,children:e})})}),(0,f.jsx)(l.Drawer,{open:_,onOpenChange:v,side:C,size:`sm`,finalFocusRef:w,children:(0,f.jsxs)(l.Drawer.Content,{id:x,children:[(0,f.jsx)(l.Drawer.Header,{children:(0,f.jsx)(l.Drawer.Title,{children:S})}),(0,f.jsx)(l.Drawer.Body,{children:(0,f.jsx)(`nav`,{"aria-label":p?void 0:g,"aria-labelledby":p,children:(0,f.jsx)(b.Provider,{value:`drawer`,children:(0,f.jsx)(`ul`,{className:u.default.drawerList,children:e})})})})]})})]})};D.displayName=`Navbar.Nav`;var O=({className:e,children:t,showIn:n=`both`,ref:r,...i})=>{let o=(0,d.useContext)(b);return n!==`both`&&n!==o?null:(0,f.jsx)(`li`,{...i,ref:o===`drawer`?void 0:r,className:a.cx(u.default.item,o===`drawer`&&u.default.itemDrawer,e),children:(0,f.jsx)(x.Provider,{value:!0,children:t})})};O.displayName=`Navbar.Item`;function k(e){let{as:t,active:n=!1,icon:r,className:i,children:o,onClick:s,"aria-current":c,ref:l,...m}=e,h=(0,d.useContext)(b),g=(0,d.useContext)(x),_=(0,d.useContext)(v),y=t??`a`,S=e=>{s?.(e),h===`drawer`&&_?.setOpen(!1)},C=(0,f.jsxs)(y,{...m,ref:h===`drawer`?void 0:l,"aria-current":n?`page`:c,onClick:S,className:a.cx(u.default.link,h===`drawer`?u.default.linkDrawer:u.default.linkBar,n&&u.default.active,n&&p[_?.activeTone??`accent`],i),children:[r!=null&&(0,f.jsx)(`span`,{className:u.default.linkIcon,"aria-hidden":`true`,children:r}),(0,f.jsx)(`span`,{className:u.default.linkLabel,children:o})]});return g?C:(0,f.jsx)(`li`,{className:a.cx(u.default.item,h===`drawer`&&u.default.itemDrawer),children:C})}k.displayName=`Navbar.Link`;var A=({className:e,children:t,...n})=>(0,f.jsx)(`div`,{...n,className:a.cx(u.default.actions,e),children:t});A.displayName=`Navbar.Actions`;var j=Object.assign(C,{Brand:w,Nav:D,Item:O,Link:k,Actions:A});exports.Navbar=j,exports.NavbarActions=A,exports.NavbarBrand=w,exports.NavbarItem=O,exports.NavbarLink=k,exports.NavbarNav=D;
1
+ "use client";const e=require("../../../hooks/useControllableState.cjs.js"),t=require("../../../types/common.cjs.js"),n=require("../../../hooks/useMergedRef.cjs.js"),r=require("../../../utils/cx.cjs.js"),i=require("../../../utils/responsive.cjs.js"),a=require("../../data-display/Badge/Badge.cjs.js"),o=require("../../layout/Container/Container.cjs.js"),s=require("../../overlays/Drawer/Drawer.cjs.js"),c=require("../../primitives/Button/Button.cjs.js"),l=require("../../primitives/Icon/icons.cjs.js"),u=require("../../../hooks/useDismiss.cjs.js"),d=require("../../../hooks/useFloatingPosition.cjs.js"),f=require("./Navbar.module.css.cjs.js"),p=require("../../utilities/LocaleProvider/LocaleProvider.cjs.js");let m=require("react"),h=require("react/jsx-runtime");var g={accent:f.default.activeAccent,primary:f.default.activePrimary,neutral:f.default.activeNeutral},_={surface:f.default.surface,transparent:f.default.transparent,solid:f.default.solid},v={sm:f.default.sm,md:f.default.md,lg:f.default.lg},y={static:f.default.static,sticky:f.default.sticky,fixed:f.default.fixed},b={sm:f.default.collapseSm,md:f.default.collapseMd,lg:f.default.collapseLg},x=(0,m.createContext)(null);function S(e){let t=(0,m.useContext)(x);if(!t)throw Error(`${e} must be used inside <Navbar>.`);return t}var C=(0,m.createContext)(`bar`),w=(0,m.createContext)(null),T=(0,m.createContext)(!1);function E(e){for(let t=e.parentElement;t&&t!==document.body;t=t.parentElement){let{overflowY:e}=getComputedStyle(t);if(e===`auto`||e===`scroll`||e===`overlay`)return t}return document.documentElement}var D=({children:i,variant:a=`surface`,size:s=`md`,position:u=`sticky`,reserveScrollPadding:d=!0,bordered:g=!1,elevated:S=!1,elevateOnScroll:C=!1,contained:w=!0,maxWidth:T=`xl`,collapseBelow:D=`md`,open:O,defaultOpen:k=!1,onOpenChange:A,menuLabel:j,menuTitle:M,menuSide:N=`end`,activeTone:P=`accent`,className:F,ref:I,...L})=>{let R=p.useMessages(),z=j??R.navbar.openMenu,B=M??R.navbar.menu,V=(0,m.useRef)(null),H=n.useMergedRef(V,I);(0,m.useEffect)(()=>{let e=V.current;if(!e||u===`static`||!d)return;let t=u===`fixed`?document.documentElement:E(e),n=t.style.scrollPaddingTop,r=()=>{t.style.scrollPaddingTop=`${e.offsetHeight}px`};r();let i=typeof ResizeObserver>`u`?null:new ResizeObserver(r);return i?.observe(e),()=>{i?.disconnect(),t.style.scrollPaddingTop=n}},[u,d]);let[U,W]=e.useControllableState({value:O,defaultValue:k,onChange:A}),G=`${(0,m.useId)()}-menu`,K=(0,m.useRef)(null),[q,J]=(0,m.useState)(0),[ee,te]=(0,m.useState)(!1),[Y,ne]=(0,m.useState)(null),X=(0,m.useCallback)(()=>(J(e=>e+1),()=>J(e=>e-1)),[]),Z=(0,m.useCallback)(e=>W(e),[W]),Q=(0,m.useRef)(!1);(0,m.useEffect)(()=>{if(!U||typeof window>`u`||!window.matchMedia)return;let e=window.matchMedia(`(min-width: ${t.breakpoints[D]}px)`),n=()=>{e.matches&&(Q.current=!0,Z(!1))};return n(),e.addEventListener(`change`,n),()=>e.removeEventListener(`change`,n)},[U,D,Z]),(0,m.useEffect)(()=>{if(U||!Q.current)return;Q.current=!1;let e=document.activeElement;(!e||e===document.body||document.getElementById(G)?.contains(e))&&K.current?.closest(`header`)?.querySelector(`nav a[href], nav button:not([disabled])`)?.focus()},[U,G]),(0,m.useEffect)(()=>{if(!C||typeof window>`u`)return;let e=0,t=()=>{e=0,te(window.scrollY>0)},n=()=>{e||=window.requestAnimationFrame(t)};return t(),window.addEventListener(`scroll`,n,{passive:!0}),()=>{window.removeEventListener(`scroll`,n),e&&window.cancelAnimationFrame(e)}},[C]);let re=(0,m.useMemo)(()=>({open:U,setOpen:Z,menuId:G,menuTitle:B,menuSide:N,toggleRef:K,registerNav:X,activeTone:P,variant:a,openGroup:Y,setOpenGroup:ne}),[U,Z,G,B,N,X,P,a,Y]),$=C&&ee,ie=q>0;return(0,h.jsx)(x.Provider,{value:re,children:(0,h.jsx)(`header`,{"data-variant":a,...L,ref:H,className:r.cx(f.default.root,_[a],v[s],y[u],b[D],g&&f.default.bordered,(S||$)&&f.default.elevated,$&&f.default.scrolled,F),children:(0,h.jsxs)(o.Container,{size:T,fluid:!w,gutter:`responsive`,className:f.default.inner,children:[i,ie&&(0,h.jsx)(c.IconButton,{ref:K,"aria-label":z,"aria-haspopup":`dialog`,"aria-expanded":U,"aria-controls":U?G:void 0,variant:a===`solid`?`solid`:`ghost`,tone:a===`solid`?`primary`:`neutral`,size:s,className:f.default.toggle,onClick:()=>Z(!U),children:(0,h.jsx)(l.MenuIcon,{})})]})})})};D.displayName=`Navbar`;function O(e){let{as:t,className:n,children:i,...a}=e,o=t!==void 0||a.href!==void 0;return(0,h.jsx)(t??(o?`a`:`div`),{...a,className:r.cx(f.default.brand,o&&f.default.brandLink,n),children:i})}O.displayName=`Navbar.Brand`;var k={start:f.default.alignStart,center:f.default.alignCenter,end:f.default.alignEnd},A=i.responsiveClasses(f.default,`navGap`),j=({children:e,align:t=`start`,gap:n,className:a,style:o,"aria-label":c,"aria-labelledby":l,...u})=>{let d=p.useMessages(),g=c??d.navbar.nav,{open:_,setOpen:v,menuId:y,menuTitle:b,menuSide:x,toggleRef:w,registerNav:T}=S(`Navbar.Nav`);(0,m.useLayoutEffect)(()=>T(),[T]);let E={},D=[];return i.responsiveVars(`navbar-nav-gap`,n,e=>`var(--space-${e})`,A,E,D),(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(`nav`,{"aria-label":l?void 0:g,"aria-labelledby":l,...u,className:r.cx(f.default.nav,k[t],...D,a),style:{...E,...o},children:(0,h.jsx)(C.Provider,{value:`bar`,children:(0,h.jsx)(`ul`,{className:f.default.list,children:e})})}),(0,h.jsx)(s.Drawer,{open:_,onOpenChange:v,side:x,size:`sm`,finalFocusRef:w,children:(0,h.jsxs)(s.Drawer.Content,{id:y,children:[(0,h.jsx)(s.Drawer.Header,{children:(0,h.jsx)(s.Drawer.Title,{children:b})}),(0,h.jsx)(s.Drawer.Body,{children:(0,h.jsx)(`nav`,{"aria-label":l?void 0:g,"aria-labelledby":l,children:(0,h.jsx)(C.Provider,{value:`drawer`,children:(0,h.jsx)(`ul`,{className:f.default.drawerList,children:e})})})})]})})]})};j.displayName=`Navbar.Nav`;var M=({className:e,children:t,showIn:n=`both`,ref:i,...a})=>{let o=(0,m.useContext)(C);return n!==`both`&&n!==o?null:(0,h.jsx)(`li`,{...a,ref:o===`drawer`?void 0:i,className:r.cx(f.default.item,o===`drawer`&&f.default.itemDrawer,e),children:(0,h.jsx)(T.Provider,{value:!0,children:t})})};M.displayName=`Navbar.Item`;var N=e=>e!==void 0&&e!==``&&e!==0;function P(e,t,n,r){if(!N(e))return null;let i=r&&n===void 0,o={variant:i?`inverse`:`solid`,tone:i?`primary`:n??`accent`,size:`sm`,label:t};return(0,h.jsxs)(h.Fragment,{children:[` `,(0,h.jsx)(`span`,{className:f.default.linkBadge,children:typeof e==`number`?(0,h.jsx)(a.Badge,{...o,count:e}):(0,h.jsx)(a.Badge,{...o,children:e})})]})}var F={bar:f.default.linkBar,drawer:f.default.linkDrawer,panel:f.default.linkPanel};function I(e){let{as:t,active:n=!1,icon:i,badge:a,badgeLabel:o,badgeTone:s,className:c,children:l,onClick:u,"aria-current":d,ref:p,..._}=e,v=(0,m.useContext)(C),y=(0,m.useContext)(T),b=(0,m.useContext)(x),S=(0,m.useContext)(w),E=t??`a`,D=e=>{u?.(e),v===`drawer`&&b?.setOpen(!1),v===`panel`&&S?.()},O=(0,h.jsxs)(E,{..._,ref:v===`drawer`?void 0:p,"aria-current":n?`page`:d,onClick:D,className:r.cx(f.default.link,F[v],n&&f.default.active,n&&g[b?.activeTone??`accent`],c),children:[i!=null&&(0,h.jsx)(`span`,{className:f.default.linkIcon,"aria-hidden":`true`,children:i}),(0,h.jsx)(`span`,{className:f.default.linkLabel,children:l}),P(a,o,s,v===`bar`&&b?.variant===`solid`)]});return y?O:(0,h.jsx)(`li`,{className:r.cx(f.default.item,v!==`bar`&&f.default.itemDrawer),children:O})}I.displayName=`Navbar.Link`;var L=e=>e?`bottom-end`:`bottom-start`,R=({label:t,icon:n,children:i,active:a=!1,badge:o,badgeLabel:s,badgeTone:c,open:p,defaultOpen:_=!1,onOpenChange:v,disabled:y=!1,className:b,ref:x,...T})=>{let E=(0,m.useContext)(C),D=S(`Navbar.Group`),O=E===`bar`,k=(0,m.useId)(),A=`${k}-list`,j=(0,m.useRef)(null),M=(0,m.useRef)(null),N=(0,m.useRef)(!1),[F,I]=e.useControllableState({value:O?p:void 0,defaultValue:O?_:_||a,onChange:O?v:void 0}),{openGroup:R,setOpenGroup:z}=D;(0,m.useEffect)(()=>{O&&F&&z(k)},[O,F,k,z]),(0,m.useEffect)(()=>{O&&R!==null&&R!==k&&I(!1)},[O,R,k,I]);let B=(0,m.useCallback)(e=>{I(!1),e&&j.current?.focus()},[I]);u.useDismiss([j,M],{active:O&&F,onDismiss:e=>B(e.type===`keydown`)});let[V,H]=(0,m.useState)(!1);(0,m.useLayoutEffect)(()=>{O&&F&&j.current&&H(getComputedStyle(j.current).direction===`rtl`)},[O,F]);let U=d.useFloatingPosition(j,M,{open:O&&F,placement:L(V),offset:4}),W=(0,h.jsxs)(`button`,{ref:j,type:`button`,disabled:y,"aria-expanded":F,"aria-controls":F?A:void 0,onClick:()=>I(!F),className:r.cx(f.default.link,f.default.groupButton,O?f.default.linkBar:f.default.linkDrawer,F&&f.default.groupOpen,a&&f.default.active,a&&g[D.activeTone]),children:[n!=null&&(0,h.jsx)(`span`,{className:f.default.linkIcon,"aria-hidden":`true`,children:n}),(0,h.jsx)(`span`,{className:f.default.linkLabel,children:t}),P(o,s,c,O&&D.variant===`solid`),(0,h.jsx)(`span`,{className:f.default.chevron,"aria-hidden":`true`,children:(0,h.jsx)(l.ChevronDownIcon,{})})]});return O?(0,h.jsxs)(`li`,{...T,ref:x,className:r.cx(f.default.item,b),onPointerDown:()=>{N.current=!0,window.setTimeout(()=>{N.current=!1},0)},onBlur:e=>{let t=e.relatedTarget,n=N.current;N.current=!1,F&&(t?!e.currentTarget.contains(t):!n)&&I(!1)},children:[W,F&&(0,h.jsx)(`div`,{ref:M,className:f.default.panelPositioner,style:U.style,children:(0,h.jsx)(C.Provider,{value:`panel`,children:(0,h.jsx)(w.Provider,{value:()=>B(!1),children:(0,h.jsx)(`ul`,{id:A,className:f.default.panel,children:i})})})})]}):(0,h.jsxs)(`li`,{...T,className:r.cx(f.default.item,f.default.itemDrawer,b),children:[W,F&&(0,h.jsx)(`ul`,{id:A,className:f.default.drawerSubList,children:i})]})};R.displayName=`Navbar.Group`;var z=({className:e,children:t,...n})=>(0,h.jsx)(`div`,{...n,className:r.cx(f.default.actions,e),children:t});z.displayName=`Navbar.Actions`;var B=Object.assign(D,{Brand:O,Nav:j,Item:M,Link:I,Group:R,Actions:z});exports.Navbar=B,exports.NavbarActions=z,exports.NavbarBrand=O,exports.NavbarGroup=R,exports.NavbarItem=M,exports.NavbarLink=I,exports.NavbarNav=j;