reka-ui 2.1.1 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (796) hide show
  1. package/README.md +1 -1
  2. package/dist/Accordion/AccordionContent.cjs +2 -1
  3. package/dist/Accordion/AccordionContent.cjs.map +1 -1
  4. package/dist/Accordion/AccordionContent.js +3 -2
  5. package/dist/Accordion/AccordionContent.js.map +1 -1
  6. package/dist/Accordion/AccordionHeader.js +1 -1
  7. package/dist/Accordion/AccordionItem.cjs +2 -2
  8. package/dist/Accordion/AccordionItem.cjs.map +1 -1
  9. package/dist/Accordion/AccordionItem.js +3 -3
  10. package/dist/Accordion/AccordionItem.js.map +1 -1
  11. package/dist/Accordion/AccordionRoot.cjs +1 -1
  12. package/dist/Accordion/AccordionRoot.js +2 -2
  13. package/dist/Accordion/AccordionTrigger.cjs +2 -2
  14. package/dist/Accordion/AccordionTrigger.cjs.map +1 -1
  15. package/dist/Accordion/AccordionTrigger.js +3 -3
  16. package/dist/Accordion/AccordionTrigger.js.map +1 -1
  17. package/dist/AlertDialog/AlertDialogAction.js +1 -1
  18. package/dist/AlertDialog/AlertDialogCancel.js +1 -1
  19. package/dist/AlertDialog/AlertDialogContent.cjs +1 -1
  20. package/dist/AlertDialog/AlertDialogContent.js +2 -2
  21. package/dist/AlertDialog/AlertDialogDescription.js +1 -1
  22. package/dist/AlertDialog/AlertDialogOverlay.js +1 -1
  23. package/dist/AlertDialog/AlertDialogPortal.js +1 -1
  24. package/dist/AlertDialog/AlertDialogRoot.js +1 -1
  25. package/dist/AlertDialog/AlertDialogTitle.js +1 -1
  26. package/dist/AlertDialog/AlertDialogTrigger.js +1 -1
  27. package/dist/AspectRatio/AspectRatio.js +1 -1
  28. package/dist/Avatar/AvatarFallback.js +1 -1
  29. package/dist/Avatar/AvatarImage.js +1 -1
  30. package/dist/Avatar/AvatarRoot.cjs +1 -1
  31. package/dist/Avatar/AvatarRoot.js +2 -2
  32. package/dist/Calendar/CalendarCell.cjs +2 -2
  33. package/dist/Calendar/CalendarCell.js +3 -3
  34. package/dist/Calendar/CalendarCellTrigger.cjs +74 -50
  35. package/dist/Calendar/CalendarCellTrigger.cjs.map +1 -1
  36. package/dist/Calendar/CalendarCellTrigger.js +75 -51
  37. package/dist/Calendar/CalendarCellTrigger.js.map +1 -1
  38. package/dist/Calendar/CalendarGrid.cjs +2 -2
  39. package/dist/Calendar/CalendarGrid.cjs.map +1 -1
  40. package/dist/Calendar/CalendarGrid.js +3 -3
  41. package/dist/Calendar/CalendarGrid.js.map +1 -1
  42. package/dist/Calendar/CalendarGridBody.js +1 -1
  43. package/dist/Calendar/CalendarGridHead.js +1 -1
  44. package/dist/Calendar/CalendarGridRow.js +1 -1
  45. package/dist/Calendar/CalendarHeadCell.js +1 -1
  46. package/dist/Calendar/CalendarHeader.js +1 -1
  47. package/dist/Calendar/CalendarHeading.cjs +1 -1
  48. package/dist/Calendar/CalendarHeading.js +2 -2
  49. package/dist/Calendar/CalendarNext.cjs +3 -3
  50. package/dist/Calendar/CalendarNext.js +4 -4
  51. package/dist/Calendar/CalendarPrev.cjs +3 -3
  52. package/dist/Calendar/CalendarPrev.js +4 -4
  53. package/dist/Calendar/CalendarRoot.cjs +14 -12
  54. package/dist/Calendar/CalendarRoot.cjs.map +1 -1
  55. package/dist/Calendar/CalendarRoot.js +15 -13
  56. package/dist/Calendar/CalendarRoot.js.map +1 -1
  57. package/dist/Calendar/useCalendar.js +1 -1
  58. package/dist/Calendar/utils.cjs +9 -0
  59. package/dist/Calendar/utils.cjs.map +1 -0
  60. package/dist/Calendar/utils.js +7 -0
  61. package/dist/Calendar/utils.js.map +1 -0
  62. package/dist/Checkbox/CheckboxGroupRoot.cjs +3 -3
  63. package/dist/Checkbox/CheckboxGroupRoot.js +4 -4
  64. package/dist/Checkbox/CheckboxIndicator.cjs +1 -1
  65. package/dist/Checkbox/CheckboxIndicator.js +2 -2
  66. package/dist/Checkbox/CheckboxRoot.cjs +8 -8
  67. package/dist/Checkbox/CheckboxRoot.cjs.map +1 -1
  68. package/dist/Checkbox/CheckboxRoot.js +10 -10
  69. package/dist/Checkbox/CheckboxRoot.js.map +1 -1
  70. package/dist/Collapsible/CollapsibleContent.cjs +4 -4
  71. package/dist/Collapsible/CollapsibleContent.cjs.map +1 -1
  72. package/dist/Collapsible/CollapsibleContent.js +5 -5
  73. package/dist/Collapsible/CollapsibleContent.js.map +1 -1
  74. package/dist/Collapsible/CollapsibleRoot.cjs +4 -4
  75. package/dist/Collapsible/CollapsibleRoot.js +5 -5
  76. package/dist/Collapsible/CollapsibleTrigger.cjs +2 -2
  77. package/dist/Collapsible/CollapsibleTrigger.js +3 -3
  78. package/dist/Combobox/ComboboxAnchor.js +1 -1
  79. package/dist/Combobox/ComboboxArrow.js +1 -1
  80. package/dist/Combobox/ComboboxCancel.cjs +1 -1
  81. package/dist/Combobox/ComboboxCancel.js +2 -2
  82. package/dist/Combobox/ComboboxContent.cjs +1 -1
  83. package/dist/Combobox/ComboboxContent.cjs.map +1 -1
  84. package/dist/Combobox/ComboboxContent.js +2 -2
  85. package/dist/Combobox/ComboboxContent.js.map +1 -1
  86. package/dist/Combobox/ComboboxContentImpl.cjs +1 -1
  87. package/dist/Combobox/ComboboxContentImpl.js +2 -2
  88. package/dist/Combobox/ComboboxEmpty.js +1 -1
  89. package/dist/Combobox/ComboboxGroup.cjs +3 -3
  90. package/dist/Combobox/ComboboxGroup.cjs.map +1 -1
  91. package/dist/Combobox/ComboboxGroup.js +4 -4
  92. package/dist/Combobox/ComboboxGroup.js.map +1 -1
  93. package/dist/Combobox/ComboboxInput.cjs +1 -1
  94. package/dist/Combobox/ComboboxInput.js +2 -2
  95. package/dist/Combobox/ComboboxItem.cjs +2 -2
  96. package/dist/Combobox/ComboboxItem.cjs.map +1 -1
  97. package/dist/Combobox/ComboboxItem.js +3 -3
  98. package/dist/Combobox/ComboboxItem.js.map +1 -1
  99. package/dist/Combobox/ComboboxItemIndicator.js +1 -1
  100. package/dist/Combobox/ComboboxLabel.cjs +1 -1
  101. package/dist/Combobox/ComboboxLabel.cjs.map +1 -1
  102. package/dist/Combobox/ComboboxLabel.js +2 -2
  103. package/dist/Combobox/ComboboxLabel.js.map +1 -1
  104. package/dist/Combobox/ComboboxPortal.js +1 -1
  105. package/dist/Combobox/ComboboxRoot.cjs +7 -7
  106. package/dist/Combobox/ComboboxRoot.cjs.map +1 -1
  107. package/dist/Combobox/ComboboxRoot.js +8 -8
  108. package/dist/Combobox/ComboboxRoot.js.map +1 -1
  109. package/dist/Combobox/ComboboxSeparator.js +1 -1
  110. package/dist/Combobox/ComboboxTrigger.cjs +3 -3
  111. package/dist/Combobox/ComboboxTrigger.js +4 -4
  112. package/dist/Combobox/ComboboxViewport.cjs +1 -1
  113. package/dist/Combobox/ComboboxViewport.js +2 -2
  114. package/dist/Combobox/ComboboxVirtualizer.js +1 -1
  115. package/dist/ConfigProvider/ConfigProvider.cjs +2 -2
  116. package/dist/ConfigProvider/ConfigProvider.js +2 -2
  117. package/dist/ContextMenu/ContextMenuArrow.js +1 -1
  118. package/dist/ContextMenu/ContextMenuCheckboxItem.js +1 -1
  119. package/dist/ContextMenu/ContextMenuContent.js +1 -1
  120. package/dist/ContextMenu/ContextMenuGroup.js +1 -1
  121. package/dist/ContextMenu/ContextMenuItem.js +1 -1
  122. package/dist/ContextMenu/ContextMenuItemIndicator.js +1 -1
  123. package/dist/ContextMenu/ContextMenuLabel.js +1 -1
  124. package/dist/ContextMenu/ContextMenuPortal.js +1 -1
  125. package/dist/ContextMenu/ContextMenuRadioGroup.js +1 -1
  126. package/dist/ContextMenu/ContextMenuRadioItem.js +1 -1
  127. package/dist/ContextMenu/ContextMenuRoot.cjs +1 -1
  128. package/dist/ContextMenu/ContextMenuRoot.js +2 -2
  129. package/dist/ContextMenu/ContextMenuSeparator.js +1 -1
  130. package/dist/ContextMenu/ContextMenuSub.cjs +2 -2
  131. package/dist/ContextMenu/ContextMenuSub.js +3 -3
  132. package/dist/ContextMenu/ContextMenuSubContent.js +1 -1
  133. package/dist/ContextMenu/ContextMenuSubTrigger.js +1 -1
  134. package/dist/ContextMenu/ContextMenuTrigger.cjs +1 -1
  135. package/dist/ContextMenu/ContextMenuTrigger.js +2 -2
  136. package/dist/DateField/DateFieldInput.cjs +5 -5
  137. package/dist/DateField/DateFieldInput.js +6 -6
  138. package/dist/DateField/DateFieldRoot.cjs +10 -10
  139. package/dist/DateField/DateFieldRoot.js +11 -11
  140. package/dist/DatePicker/DatePickerArrow.js +1 -1
  141. package/dist/DatePicker/DatePickerCalendar.js +1 -1
  142. package/dist/DatePicker/DatePickerCell.js +1 -1
  143. package/dist/DatePicker/DatePickerCellTrigger.js +1 -1
  144. package/dist/DatePicker/DatePickerClose.js +1 -1
  145. package/dist/DatePicker/DatePickerContent.js +1 -1
  146. package/dist/DatePicker/DatePickerField.js +1 -1
  147. package/dist/DatePicker/DatePickerGrid.js +1 -1
  148. package/dist/DatePicker/DatePickerGridBody.js +1 -1
  149. package/dist/DatePicker/DatePickerGridHead.js +1 -1
  150. package/dist/DatePicker/DatePickerGridRow.js +1 -1
  151. package/dist/DatePicker/DatePickerHeadCell.js +1 -1
  152. package/dist/DatePicker/DatePickerHeader.js +1 -1
  153. package/dist/DatePicker/DatePickerHeading.js +1 -1
  154. package/dist/DatePicker/DatePickerInput.js +1 -1
  155. package/dist/DatePicker/DatePickerNext.js +1 -1
  156. package/dist/DatePicker/DatePickerPrev.js +1 -1
  157. package/dist/DatePicker/DatePickerRoot.cjs +11 -11
  158. package/dist/DatePicker/DatePickerRoot.cjs.map +1 -1
  159. package/dist/DatePicker/DatePickerRoot.js +12 -12
  160. package/dist/DatePicker/DatePickerRoot.js.map +1 -1
  161. package/dist/DatePicker/DatePickerTrigger.js +1 -1
  162. package/dist/DateRangeField/DateRangeFieldInput.cjs +5 -5
  163. package/dist/DateRangeField/DateRangeFieldInput.js +6 -6
  164. package/dist/DateRangeField/DateRangeFieldRoot.cjs +22 -18
  165. package/dist/DateRangeField/DateRangeFieldRoot.cjs.map +1 -1
  166. package/dist/DateRangeField/DateRangeFieldRoot.js +23 -19
  167. package/dist/DateRangeField/DateRangeFieldRoot.js.map +1 -1
  168. package/dist/DateRangePicker/DateRangePickerAnchor.js +1 -1
  169. package/dist/DateRangePicker/DateRangePickerArrow.js +1 -1
  170. package/dist/DateRangePicker/DateRangePickerCalendar.js +1 -1
  171. package/dist/DateRangePicker/DateRangePickerCell.js +1 -1
  172. package/dist/DateRangePicker/DateRangePickerCellTrigger.js +1 -1
  173. package/dist/DateRangePicker/DateRangePickerClose.js +1 -1
  174. package/dist/DateRangePicker/DateRangePickerContent.js +1 -1
  175. package/dist/DateRangePicker/DateRangePickerField.js +1 -1
  176. package/dist/DateRangePicker/DateRangePickerGrid.js +1 -1
  177. package/dist/DateRangePicker/DateRangePickerGridBody.js +1 -1
  178. package/dist/DateRangePicker/DateRangePickerGridHead.js +1 -1
  179. package/dist/DateRangePicker/DateRangePickerGridRow.js +1 -1
  180. package/dist/DateRangePicker/DateRangePickerHeadCell.js +1 -1
  181. package/dist/DateRangePicker/DateRangePickerHeader.js +1 -1
  182. package/dist/DateRangePicker/DateRangePickerHeading.js +1 -1
  183. package/dist/DateRangePicker/DateRangePickerInput.js +1 -1
  184. package/dist/DateRangePicker/DateRangePickerNext.js +1 -1
  185. package/dist/DateRangePicker/DateRangePickerPrev.js +1 -1
  186. package/dist/DateRangePicker/DateRangePickerRoot.cjs +11 -11
  187. package/dist/DateRangePicker/DateRangePickerRoot.cjs.map +1 -1
  188. package/dist/DateRangePicker/DateRangePickerRoot.js +12 -12
  189. package/dist/DateRangePicker/DateRangePickerRoot.js.map +1 -1
  190. package/dist/DateRangePicker/DateRangePickerTrigger.js +1 -1
  191. package/dist/Dialog/DialogClose.cjs +1 -1
  192. package/dist/Dialog/DialogClose.js +2 -2
  193. package/dist/Dialog/DialogContent.js +1 -1
  194. package/dist/Dialog/DialogContentImpl.cjs +2 -2
  195. package/dist/Dialog/DialogContentImpl.cjs.map +1 -1
  196. package/dist/Dialog/DialogContentImpl.js +3 -3
  197. package/dist/Dialog/DialogContentImpl.js.map +1 -1
  198. package/dist/Dialog/DialogContentModal.js +1 -1
  199. package/dist/Dialog/DialogContentNonModal.js +1 -1
  200. package/dist/Dialog/DialogDescription.js +1 -1
  201. package/dist/Dialog/DialogOverlay.js +1 -1
  202. package/dist/Dialog/DialogOverlayImpl.js +1 -1
  203. package/dist/Dialog/DialogPortal.js +1 -1
  204. package/dist/Dialog/DialogRoot.cjs +2 -2
  205. package/dist/Dialog/DialogRoot.js +2 -2
  206. package/dist/Dialog/DialogTitle.js +1 -1
  207. package/dist/Dialog/DialogTrigger.cjs +3 -3
  208. package/dist/Dialog/DialogTrigger.cjs.map +1 -1
  209. package/dist/Dialog/DialogTrigger.js +4 -4
  210. package/dist/Dialog/DialogTrigger.js.map +1 -1
  211. package/dist/DismissableLayer/DismissableLayer.cjs +1 -1
  212. package/dist/DismissableLayer/DismissableLayer.js +2 -2
  213. package/dist/DismissableLayer/DismissableLayerBranch.js +1 -1
  214. package/dist/DismissableLayer/utils.cjs +1 -0
  215. package/dist/DismissableLayer/utils.cjs.map +1 -1
  216. package/dist/DismissableLayer/utils.js +1 -0
  217. package/dist/DismissableLayer/utils.js.map +1 -1
  218. package/dist/DropdownMenu/DropdownMenuArrow.js +1 -1
  219. package/dist/DropdownMenu/DropdownMenuCheckboxItem.js +1 -1
  220. package/dist/DropdownMenu/DropdownMenuContent.cjs +1 -1
  221. package/dist/DropdownMenu/DropdownMenuContent.cjs.map +1 -1
  222. package/dist/DropdownMenu/DropdownMenuContent.js +2 -2
  223. package/dist/DropdownMenu/DropdownMenuContent.js.map +1 -1
  224. package/dist/DropdownMenu/DropdownMenuGroup.js +1 -1
  225. package/dist/DropdownMenu/DropdownMenuItem.js +1 -1
  226. package/dist/DropdownMenu/DropdownMenuItemIndicator.js +1 -1
  227. package/dist/DropdownMenu/DropdownMenuLabel.js +1 -1
  228. package/dist/DropdownMenu/DropdownMenuPortal.js +1 -1
  229. package/dist/DropdownMenu/DropdownMenuRadioGroup.js +1 -1
  230. package/dist/DropdownMenu/DropdownMenuRadioItem.js +1 -1
  231. package/dist/DropdownMenu/DropdownMenuRoot.cjs +3 -3
  232. package/dist/DropdownMenu/DropdownMenuRoot.js +4 -4
  233. package/dist/DropdownMenu/DropdownMenuSeparator.js +1 -1
  234. package/dist/DropdownMenu/DropdownMenuSub.cjs +2 -2
  235. package/dist/DropdownMenu/DropdownMenuSub.cjs.map +1 -1
  236. package/dist/DropdownMenu/DropdownMenuSub.js +3 -3
  237. package/dist/DropdownMenu/DropdownMenuSub.js.map +1 -1
  238. package/dist/DropdownMenu/DropdownMenuSubContent.js +1 -1
  239. package/dist/DropdownMenu/DropdownMenuSubTrigger.js +1 -1
  240. package/dist/DropdownMenu/DropdownMenuTrigger.cjs +4 -4
  241. package/dist/DropdownMenu/DropdownMenuTrigger.cjs.map +1 -1
  242. package/dist/DropdownMenu/DropdownMenuTrigger.js +5 -5
  243. package/dist/DropdownMenu/DropdownMenuTrigger.js.map +1 -1
  244. package/dist/Editable/EditableArea.cjs +7 -7
  245. package/dist/Editable/EditableArea.js +8 -8
  246. package/dist/Editable/EditableCancelTrigger.cjs +4 -4
  247. package/dist/Editable/EditableCancelTrigger.js +5 -5
  248. package/dist/Editable/EditableEditTrigger.cjs +4 -4
  249. package/dist/Editable/EditableEditTrigger.js +5 -5
  250. package/dist/Editable/EditableInput.cjs +4 -4
  251. package/dist/Editable/EditableInput.js +5 -5
  252. package/dist/Editable/EditablePreview.cjs +4 -4
  253. package/dist/Editable/EditablePreview.js +5 -5
  254. package/dist/Editable/EditableRoot.cjs +2 -2
  255. package/dist/Editable/EditableRoot.js +3 -3
  256. package/dist/Editable/EditableSubmitTrigger.cjs +4 -4
  257. package/dist/Editable/EditableSubmitTrigger.js +5 -5
  258. package/dist/FocusScope/FocusScope.js +1 -1
  259. package/dist/FocusScope/utils.cjs +1 -1
  260. package/dist/FocusScope/utils.cjs.map +1 -1
  261. package/dist/FocusScope/utils.js +1 -1
  262. package/dist/FocusScope/utils.js.map +1 -1
  263. package/dist/HoverCard/HoverCardArrow.js +1 -1
  264. package/dist/HoverCard/HoverCardContent.js +1 -1
  265. package/dist/HoverCard/HoverCardContentImpl.cjs +2 -2
  266. package/dist/HoverCard/HoverCardContentImpl.js +3 -3
  267. package/dist/HoverCard/HoverCardPortal.js +1 -1
  268. package/dist/HoverCard/HoverCardRoot.cjs +3 -3
  269. package/dist/HoverCard/HoverCardRoot.js +4 -4
  270. package/dist/HoverCard/HoverCardTrigger.js +1 -1
  271. package/dist/HoverCard/utils.cjs +1 -1
  272. package/dist/HoverCard/utils.cjs.map +1 -1
  273. package/dist/HoverCard/utils.js +1 -1
  274. package/dist/HoverCard/utils.js.map +1 -1
  275. package/dist/Label/Label.js +1 -1
  276. package/dist/Listbox/ListboxContent.cjs +2 -2
  277. package/dist/Listbox/ListboxContent.js +3 -3
  278. package/dist/Listbox/ListboxFilter.cjs +8 -5
  279. package/dist/Listbox/ListboxFilter.cjs.map +1 -1
  280. package/dist/Listbox/ListboxFilter.js +9 -6
  281. package/dist/Listbox/ListboxFilter.js.map +1 -1
  282. package/dist/Listbox/ListboxGroup.cjs +2 -2
  283. package/dist/Listbox/ListboxGroup.cjs.map +1 -1
  284. package/dist/Listbox/ListboxGroup.js +3 -3
  285. package/dist/Listbox/ListboxGroup.js.map +1 -1
  286. package/dist/Listbox/ListboxGroupLabel.js +1 -1
  287. package/dist/Listbox/ListboxItem.cjs +6 -6
  288. package/dist/Listbox/ListboxItem.cjs.map +1 -1
  289. package/dist/Listbox/ListboxItem.js +7 -7
  290. package/dist/Listbox/ListboxItem.js.map +1 -1
  291. package/dist/Listbox/ListboxItemIndicator.js +1 -1
  292. package/dist/Listbox/ListboxRoot.cjs +6 -6
  293. package/dist/Listbox/ListboxRoot.cjs.map +1 -1
  294. package/dist/Listbox/ListboxRoot.js +7 -7
  295. package/dist/Listbox/ListboxRoot.js.map +1 -1
  296. package/dist/Listbox/ListboxVirtualizer.js +1 -1
  297. package/dist/Listbox/utils.cjs +2 -2
  298. package/dist/Listbox/utils.cjs.map +1 -1
  299. package/dist/Listbox/utils.js +2 -2
  300. package/dist/Listbox/utils.js.map +1 -1
  301. package/dist/Menu/MenuAnchor.js +1 -1
  302. package/dist/Menu/MenuArrow.js +1 -1
  303. package/dist/Menu/MenuCheckboxItem.js +1 -1
  304. package/dist/Menu/MenuContent.js +1 -1
  305. package/dist/Menu/MenuContentImpl.cjs +2 -2
  306. package/dist/Menu/MenuContentImpl.js +4 -4
  307. package/dist/Menu/MenuGroup.js +1 -1
  308. package/dist/Menu/MenuItem.js +1 -1
  309. package/dist/Menu/MenuItemImpl.cjs +3 -3
  310. package/dist/Menu/MenuItemImpl.js +4 -4
  311. package/dist/Menu/MenuItemIndicator.cjs +1 -1
  312. package/dist/Menu/MenuItemIndicator.js +2 -2
  313. package/dist/Menu/MenuLabel.js +1 -1
  314. package/dist/Menu/MenuPortal.js +1 -1
  315. package/dist/Menu/MenuRadioGroup.js +1 -1
  316. package/dist/Menu/MenuRadioItem.js +1 -1
  317. package/dist/Menu/MenuRoot.js +1 -1
  318. package/dist/Menu/MenuRootContentModal.js +1 -1
  319. package/dist/Menu/MenuRootContentNonModal.js +1 -1
  320. package/dist/Menu/MenuSeparator.js +1 -1
  321. package/dist/Menu/MenuSub.cjs +2 -2
  322. package/dist/Menu/MenuSub.js +3 -3
  323. package/dist/Menu/MenuSubContent.cjs +1 -1
  324. package/dist/Menu/MenuSubContent.cjs.map +1 -1
  325. package/dist/Menu/MenuSubContent.js +2 -2
  326. package/dist/Menu/MenuSubContent.js.map +1 -1
  327. package/dist/Menu/MenuSubTrigger.cjs +2 -2
  328. package/dist/Menu/MenuSubTrigger.cjs.map +1 -1
  329. package/dist/Menu/MenuSubTrigger.js +3 -3
  330. package/dist/Menu/MenuSubTrigger.js.map +1 -1
  331. package/dist/Menubar/MenubarArrow.js +1 -1
  332. package/dist/Menubar/MenubarCheckboxItem.js +1 -1
  333. package/dist/Menubar/MenubarContent.cjs +1 -1
  334. package/dist/Menubar/MenubarContent.cjs.map +1 -1
  335. package/dist/Menubar/MenubarContent.js +2 -2
  336. package/dist/Menubar/MenubarContent.js.map +1 -1
  337. package/dist/Menubar/MenubarGroup.js +1 -1
  338. package/dist/Menubar/MenubarItem.js +1 -1
  339. package/dist/Menubar/MenubarItemIndicator.js +1 -1
  340. package/dist/Menubar/MenubarLabel.js +1 -1
  341. package/dist/Menubar/MenubarMenu.cjs +1 -1
  342. package/dist/Menubar/MenubarMenu.js +2 -2
  343. package/dist/Menubar/MenubarPortal.js +1 -1
  344. package/dist/Menubar/MenubarRadioGroup.js +1 -1
  345. package/dist/Menubar/MenubarRadioItem.js +1 -1
  346. package/dist/Menubar/MenubarRoot.cjs +3 -3
  347. package/dist/Menubar/MenubarRoot.js +4 -4
  348. package/dist/Menubar/MenubarSeparator.js +1 -1
  349. package/dist/Menubar/MenubarSub.cjs +2 -2
  350. package/dist/Menubar/MenubarSub.js +3 -3
  351. package/dist/Menubar/MenubarSubContent.js +1 -1
  352. package/dist/Menubar/MenubarSubTrigger.js +1 -1
  353. package/dist/Menubar/MenubarTrigger.cjs +5 -5
  354. package/dist/Menubar/MenubarTrigger.js +6 -6
  355. package/dist/NavigationMenu/NavigationMenuContent.cjs +1 -1
  356. package/dist/NavigationMenu/NavigationMenuContent.js +2 -2
  357. package/dist/NavigationMenu/NavigationMenuContentImpl.cjs +1 -1
  358. package/dist/NavigationMenu/NavigationMenuContentImpl.cjs.map +1 -1
  359. package/dist/NavigationMenu/NavigationMenuContentImpl.js +2 -2
  360. package/dist/NavigationMenu/NavigationMenuContentImpl.js.map +1 -1
  361. package/dist/NavigationMenu/NavigationMenuIndicator.js +1 -1
  362. package/dist/NavigationMenu/NavigationMenuItem.cjs +2 -2
  363. package/dist/NavigationMenu/NavigationMenuItem.cjs.map +1 -1
  364. package/dist/NavigationMenu/NavigationMenuItem.js +3 -3
  365. package/dist/NavigationMenu/NavigationMenuItem.js.map +1 -1
  366. package/dist/NavigationMenu/NavigationMenuLink.cjs +2 -2
  367. package/dist/NavigationMenu/NavigationMenuLink.js +3 -3
  368. package/dist/NavigationMenu/NavigationMenuList.js +1 -1
  369. package/dist/NavigationMenu/NavigationMenuRoot.cjs +4 -4
  370. package/dist/NavigationMenu/NavigationMenuRoot.cjs.map +1 -1
  371. package/dist/NavigationMenu/NavigationMenuRoot.js +5 -5
  372. package/dist/NavigationMenu/NavigationMenuRoot.js.map +1 -1
  373. package/dist/NavigationMenu/NavigationMenuSub.cjs +1 -1
  374. package/dist/NavigationMenu/NavigationMenuSub.js +2 -2
  375. package/dist/NavigationMenu/NavigationMenuTrigger.cjs +2 -2
  376. package/dist/NavigationMenu/NavigationMenuTrigger.cjs.map +1 -1
  377. package/dist/NavigationMenu/NavigationMenuTrigger.js +3 -3
  378. package/dist/NavigationMenu/NavigationMenuTrigger.js.map +1 -1
  379. package/dist/NavigationMenu/NavigationMenuViewport.cjs +7 -7
  380. package/dist/NavigationMenu/NavigationMenuViewport.js +9 -9
  381. package/dist/NavigationMenu/utils.cjs +1 -1
  382. package/dist/NavigationMenu/utils.cjs.map +1 -1
  383. package/dist/NavigationMenu/utils.js +1 -1
  384. package/dist/NavigationMenu/utils.js.map +1 -1
  385. package/dist/NumberField/NumberFieldDecrement.cjs +5 -5
  386. package/dist/NumberField/NumberFieldDecrement.js +6 -6
  387. package/dist/NumberField/NumberFieldIncrement.cjs +5 -5
  388. package/dist/NumberField/NumberFieldIncrement.js +6 -6
  389. package/dist/NumberField/NumberFieldInput.cjs +3 -3
  390. package/dist/NumberField/NumberFieldInput.js +4 -4
  391. package/dist/NumberField/NumberFieldRoot.cjs +7 -7
  392. package/dist/NumberField/NumberFieldRoot.cjs.map +1 -1
  393. package/dist/NumberField/NumberFieldRoot.js +8 -8
  394. package/dist/NumberField/NumberFieldRoot.js.map +1 -1
  395. package/dist/NumberField/utils.js +1 -1
  396. package/dist/Pagination/PaginationEllipsis.js +1 -1
  397. package/dist/Pagination/PaginationFirst.cjs +1 -1
  398. package/dist/Pagination/PaginationFirst.js +2 -2
  399. package/dist/Pagination/PaginationLast.cjs +1 -1
  400. package/dist/Pagination/PaginationLast.js +2 -2
  401. package/dist/Pagination/PaginationList.js +1 -1
  402. package/dist/Pagination/PaginationListItem.cjs +3 -3
  403. package/dist/Pagination/PaginationListItem.js +4 -4
  404. package/dist/Pagination/PaginationNext.cjs +1 -1
  405. package/dist/Pagination/PaginationNext.js +2 -2
  406. package/dist/Pagination/PaginationPrev.cjs +1 -1
  407. package/dist/Pagination/PaginationPrev.js +2 -2
  408. package/dist/Pagination/PaginationRoot.cjs +2 -2
  409. package/dist/Pagination/PaginationRoot.js +3 -3
  410. package/dist/PinInput/PinInputInput.cjs +4 -4
  411. package/dist/PinInput/PinInputInput.cjs.map +1 -1
  412. package/dist/PinInput/PinInputInput.js +5 -5
  413. package/dist/PinInput/PinInputInput.js.map +1 -1
  414. package/dist/PinInput/PinInputRoot.cjs +4 -4
  415. package/dist/PinInput/PinInputRoot.js +5 -5
  416. package/dist/Popover/PopoverAnchor.js +1 -1
  417. package/dist/Popover/PopoverArrow.js +1 -1
  418. package/dist/Popover/PopoverClose.cjs +1 -1
  419. package/dist/Popover/PopoverClose.js +2 -2
  420. package/dist/Popover/PopoverContent.cjs +1 -1
  421. package/dist/Popover/PopoverContent.cjs.map +1 -1
  422. package/dist/Popover/PopoverContent.js +2 -2
  423. package/dist/Popover/PopoverContent.js.map +1 -1
  424. package/dist/Popover/PopoverContentImpl.js +1 -1
  425. package/dist/Popover/PopoverContentModal.js +1 -1
  426. package/dist/Popover/PopoverContentNonModal.js +1 -1
  427. package/dist/Popover/PopoverPortal.js +1 -1
  428. package/dist/Popover/PopoverRoot.cjs +2 -2
  429. package/dist/Popover/PopoverRoot.js +3 -3
  430. package/dist/Popover/PopoverTrigger.cjs +2 -2
  431. package/dist/Popover/PopoverTrigger.cjs.map +1 -1
  432. package/dist/Popover/PopoverTrigger.js +3 -3
  433. package/dist/Popover/PopoverTrigger.js.map +1 -1
  434. package/dist/Popper/PopperAnchor.js +1 -1
  435. package/dist/Popper/PopperArrow.cjs +4 -4
  436. package/dist/Popper/PopperArrow.js +5 -5
  437. package/dist/Popper/PopperContent.cjs +3 -3
  438. package/dist/Popper/PopperContent.cjs.map +1 -1
  439. package/dist/Popper/PopperContent.js +5 -5
  440. package/dist/Popper/PopperContent.js.map +1 -1
  441. package/dist/Presence/usePresence.cjs +2 -2
  442. package/dist/Presence/usePresence.cjs.map +1 -1
  443. package/dist/Presence/usePresence.js +2 -2
  444. package/dist/Presence/usePresence.js.map +1 -1
  445. package/dist/Primitive/Primitive.cjs +1 -1
  446. package/dist/Primitive/Primitive.cjs.map +1 -1
  447. package/dist/Primitive/Primitive.js +1 -1
  448. package/dist/Primitive/Primitive.js.map +1 -1
  449. package/dist/Progress/ProgressIndicator.cjs +1 -1
  450. package/dist/Progress/ProgressIndicator.js +2 -2
  451. package/dist/Progress/ProgressRoot.cjs +5 -5
  452. package/dist/Progress/ProgressRoot.js +6 -6
  453. package/dist/RadioGroup/Radio.cjs +6 -6
  454. package/dist/RadioGroup/Radio.cjs.map +1 -1
  455. package/dist/RadioGroup/Radio.js +7 -7
  456. package/dist/RadioGroup/Radio.js.map +1 -1
  457. package/dist/RadioGroup/RadioGroupIndicator.cjs +1 -1
  458. package/dist/RadioGroup/RadioGroupIndicator.js +2 -2
  459. package/dist/RadioGroup/RadioGroupItem.cjs +2 -2
  460. package/dist/RadioGroup/RadioGroupItem.js +3 -3
  461. package/dist/RadioGroup/RadioGroupRoot.cjs +5 -5
  462. package/dist/RadioGroup/RadioGroupRoot.js +6 -6
  463. package/dist/RangeCalendar/RangeCalendarCell.cjs +2 -2
  464. package/dist/RangeCalendar/RangeCalendarCell.js +3 -3
  465. package/dist/RangeCalendar/RangeCalendarCellTrigger.cjs +84 -60
  466. package/dist/RangeCalendar/RangeCalendarCellTrigger.cjs.map +1 -1
  467. package/dist/RangeCalendar/RangeCalendarCellTrigger.js +85 -61
  468. package/dist/RangeCalendar/RangeCalendarCellTrigger.js.map +1 -1
  469. package/dist/RangeCalendar/RangeCalendarGrid.cjs +2 -2
  470. package/dist/RangeCalendar/RangeCalendarGrid.cjs.map +1 -1
  471. package/dist/RangeCalendar/RangeCalendarGrid.js +3 -3
  472. package/dist/RangeCalendar/RangeCalendarGrid.js.map +1 -1
  473. package/dist/RangeCalendar/RangeCalendarGridBody.js +1 -1
  474. package/dist/RangeCalendar/RangeCalendarGridHead.js +1 -1
  475. package/dist/RangeCalendar/RangeCalendarGridRow.js +1 -1
  476. package/dist/RangeCalendar/RangeCalendarHeadCell.js +1 -1
  477. package/dist/RangeCalendar/RangeCalendarHeader.js +1 -1
  478. package/dist/RangeCalendar/RangeCalendarHeading.cjs +1 -1
  479. package/dist/RangeCalendar/RangeCalendarHeading.js +2 -2
  480. package/dist/RangeCalendar/RangeCalendarNext.cjs +3 -3
  481. package/dist/RangeCalendar/RangeCalendarNext.js +4 -4
  482. package/dist/RangeCalendar/RangeCalendarPrev.cjs +3 -3
  483. package/dist/RangeCalendar/RangeCalendarPrev.js +4 -4
  484. package/dist/RangeCalendar/RangeCalendarRoot.cjs +17 -15
  485. package/dist/RangeCalendar/RangeCalendarRoot.cjs.map +1 -1
  486. package/dist/RangeCalendar/RangeCalendarRoot.js +18 -16
  487. package/dist/RangeCalendar/RangeCalendarRoot.js.map +1 -1
  488. package/dist/RovingFocus/RovingFocusGroup.cjs +4 -4
  489. package/dist/RovingFocus/RovingFocusGroup.cjs.map +1 -1
  490. package/dist/RovingFocus/RovingFocusGroup.js +5 -5
  491. package/dist/RovingFocus/RovingFocusGroup.js.map +1 -1
  492. package/dist/RovingFocus/RovingFocusItem.cjs +4 -4
  493. package/dist/RovingFocus/RovingFocusItem.cjs.map +1 -1
  494. package/dist/RovingFocus/RovingFocusItem.js +5 -5
  495. package/dist/RovingFocus/RovingFocusItem.js.map +1 -1
  496. package/dist/RovingFocus/utils.cjs +2 -2
  497. package/dist/RovingFocus/utils.cjs.map +1 -1
  498. package/dist/RovingFocus/utils.js +2 -2
  499. package/dist/RovingFocus/utils.js.map +1 -1
  500. package/dist/ScrollArea/ScrollAreaCorner.js +1 -1
  501. package/dist/ScrollArea/ScrollAreaCornerImpl.cjs +2 -2
  502. package/dist/ScrollArea/ScrollAreaCornerImpl.js +3 -3
  503. package/dist/ScrollArea/ScrollAreaRoot.cjs +4 -4
  504. package/dist/ScrollArea/ScrollAreaRoot.cjs.map +1 -1
  505. package/dist/ScrollArea/ScrollAreaRoot.js +5 -5
  506. package/dist/ScrollArea/ScrollAreaRoot.js.map +1 -1
  507. package/dist/ScrollArea/ScrollAreaScrollbar.cjs +1 -1
  508. package/dist/ScrollArea/ScrollAreaScrollbar.js +2 -2
  509. package/dist/ScrollArea/ScrollAreaScrollbarAuto.js +1 -1
  510. package/dist/ScrollArea/ScrollAreaScrollbarHover.js +1 -1
  511. package/dist/ScrollArea/ScrollAreaScrollbarImpl.cjs +1 -1
  512. package/dist/ScrollArea/ScrollAreaScrollbarImpl.cjs.map +1 -1
  513. package/dist/ScrollArea/ScrollAreaScrollbarImpl.js +2 -2
  514. package/dist/ScrollArea/ScrollAreaScrollbarImpl.js.map +1 -1
  515. package/dist/ScrollArea/ScrollAreaScrollbarScroll.js +1 -1
  516. package/dist/ScrollArea/ScrollAreaScrollbarVisible.js +1 -1
  517. package/dist/ScrollArea/ScrollAreaScrollbarX.cjs +1 -1
  518. package/dist/ScrollArea/ScrollAreaScrollbarX.js +2 -2
  519. package/dist/ScrollArea/ScrollAreaScrollbarY.cjs +3 -3
  520. package/dist/ScrollArea/ScrollAreaScrollbarY.js +4 -4
  521. package/dist/ScrollArea/ScrollAreaThumb.js +1 -1
  522. package/dist/ScrollArea/ScrollAreaViewport.cjs +1 -1
  523. package/dist/ScrollArea/ScrollAreaViewport.js +2 -2
  524. package/dist/Select/BubbleSelect.cjs +2 -2
  525. package/dist/Select/BubbleSelect.cjs.map +1 -1
  526. package/dist/Select/BubbleSelect.js +3 -3
  527. package/dist/Select/BubbleSelect.js.map +1 -1
  528. package/dist/Select/SelectArrow.js +1 -1
  529. package/dist/Select/SelectContent.js +1 -1
  530. package/dist/Select/SelectContentImpl.cjs +2 -2
  531. package/dist/Select/SelectContentImpl.js +3 -3
  532. package/dist/Select/SelectGroup.cjs +2 -2
  533. package/dist/Select/SelectGroup.cjs.map +1 -1
  534. package/dist/Select/SelectGroup.js +3 -3
  535. package/dist/Select/SelectGroup.js.map +1 -1
  536. package/dist/Select/SelectIcon.js +1 -1
  537. package/dist/Select/SelectItem.cjs +6 -6
  538. package/dist/Select/SelectItem.cjs.map +1 -1
  539. package/dist/Select/SelectItem.js +7 -7
  540. package/dist/Select/SelectItem.js.map +1 -1
  541. package/dist/Select/SelectItemAlignedPosition.cjs +1 -1
  542. package/dist/Select/SelectItemAlignedPosition.js +2 -2
  543. package/dist/Select/SelectItemIndicator.js +1 -1
  544. package/dist/Select/SelectItemText.js +1 -1
  545. package/dist/Select/SelectLabel.js +1 -1
  546. package/dist/Select/SelectPopperPosition.js +1 -1
  547. package/dist/Select/SelectPortal.js +1 -1
  548. package/dist/Select/SelectRoot.cjs +6 -6
  549. package/dist/Select/SelectRoot.cjs.map +1 -1
  550. package/dist/Select/SelectRoot.js +7 -7
  551. package/dist/Select/SelectRoot.js.map +1 -1
  552. package/dist/Select/SelectScrollButtonImpl.js +1 -1
  553. package/dist/Select/SelectScrollDownButton.cjs +1 -1
  554. package/dist/Select/SelectScrollDownButton.cjs.map +1 -1
  555. package/dist/Select/SelectScrollDownButton.js +2 -2
  556. package/dist/Select/SelectScrollDownButton.js.map +1 -1
  557. package/dist/Select/SelectScrollUpButton.cjs +1 -1
  558. package/dist/Select/SelectScrollUpButton.cjs.map +1 -1
  559. package/dist/Select/SelectScrollUpButton.js +2 -2
  560. package/dist/Select/SelectScrollUpButton.js.map +1 -1
  561. package/dist/Select/SelectSeparator.js +1 -1
  562. package/dist/Select/SelectTrigger.cjs +4 -4
  563. package/dist/Select/SelectTrigger.cjs.map +1 -1
  564. package/dist/Select/SelectTrigger.js +5 -5
  565. package/dist/Select/SelectTrigger.js.map +1 -1
  566. package/dist/Select/SelectValue.cjs +1 -1
  567. package/dist/Select/SelectValue.js +2 -2
  568. package/dist/Select/SelectViewport.cjs +1 -1
  569. package/dist/Select/SelectViewport.cjs.map +1 -1
  570. package/dist/Select/SelectViewport.js +2 -2
  571. package/dist/Select/SelectViewport.js.map +1 -1
  572. package/dist/Select/utils.cjs +2 -2
  573. package/dist/Select/utils.cjs.map +1 -1
  574. package/dist/Select/utils.js +2 -2
  575. package/dist/Select/utils.js.map +1 -1
  576. package/dist/Separator/Separator.js +1 -1
  577. package/dist/Slider/SliderHorizontal.cjs +2 -2
  578. package/dist/Slider/SliderHorizontal.js +3 -3
  579. package/dist/Slider/SliderImpl.js +1 -1
  580. package/dist/Slider/SliderRange.cjs +1 -1
  581. package/dist/Slider/SliderRange.js +2 -2
  582. package/dist/Slider/SliderRoot.cjs +3 -3
  583. package/dist/Slider/SliderRoot.js +4 -4
  584. package/dist/Slider/SliderThumb.js +1 -1
  585. package/dist/Slider/SliderThumbImpl.cjs +4 -4
  586. package/dist/Slider/SliderThumbImpl.cjs.map +1 -1
  587. package/dist/Slider/SliderThumbImpl.js +5 -5
  588. package/dist/Slider/SliderThumbImpl.js.map +1 -1
  589. package/dist/Slider/SliderTrack.cjs +1 -1
  590. package/dist/Slider/SliderTrack.js +2 -2
  591. package/dist/Slider/SliderVertical.cjs +2 -2
  592. package/dist/Slider/SliderVertical.js +3 -3
  593. package/dist/Slider/utils.cjs +1 -1
  594. package/dist/Slider/utils.cjs.map +1 -1
  595. package/dist/Slider/utils.js +1 -1
  596. package/dist/Slider/utils.js.map +1 -1
  597. package/dist/Splitter/SplitterGroup.cjs +2 -2
  598. package/dist/Splitter/SplitterGroup.cjs.map +1 -1
  599. package/dist/Splitter/SplitterGroup.js +3 -3
  600. package/dist/Splitter/SplitterGroup.js.map +1 -1
  601. package/dist/Splitter/SplitterPanel.cjs +3 -3
  602. package/dist/Splitter/SplitterPanel.cjs.map +1 -1
  603. package/dist/Splitter/SplitterPanel.js +4 -4
  604. package/dist/Splitter/SplitterPanel.js.map +1 -1
  605. package/dist/Splitter/SplitterResizeHandle.cjs +2 -2
  606. package/dist/Splitter/SplitterResizeHandle.js +3 -3
  607. package/dist/Stepper/StepperDescription.js +1 -1
  608. package/dist/Stepper/StepperIndicator.js +1 -1
  609. package/dist/Stepper/StepperItem.cjs +6 -6
  610. package/dist/Stepper/StepperItem.cjs.map +1 -1
  611. package/dist/Stepper/StepperItem.js +7 -7
  612. package/dist/Stepper/StepperItem.js.map +1 -1
  613. package/dist/Stepper/StepperRoot.cjs +3 -3
  614. package/dist/Stepper/StepperRoot.js +4 -4
  615. package/dist/Stepper/StepperSeparator.js +1 -1
  616. package/dist/Stepper/StepperTitle.js +1 -1
  617. package/dist/Stepper/StepperTrigger.cjs +5 -5
  618. package/dist/Stepper/StepperTrigger.cjs.map +1 -1
  619. package/dist/Stepper/StepperTrigger.js +6 -6
  620. package/dist/Stepper/StepperTrigger.js.map +1 -1
  621. package/dist/Switch/SwitchRoot.cjs +6 -6
  622. package/dist/Switch/SwitchRoot.cjs.map +1 -1
  623. package/dist/Switch/SwitchRoot.js +7 -7
  624. package/dist/Switch/SwitchRoot.js.map +1 -1
  625. package/dist/Switch/SwitchThumb.cjs +1 -1
  626. package/dist/Switch/SwitchThumb.js +2 -2
  627. package/dist/Tabs/TabsContent.cjs +1 -1
  628. package/dist/Tabs/TabsContent.js +2 -2
  629. package/dist/Tabs/TabsIndicator.js +1 -1
  630. package/dist/Tabs/TabsList.cjs +1 -1
  631. package/dist/Tabs/TabsList.js +2 -2
  632. package/dist/Tabs/TabsRoot.cjs +3 -3
  633. package/dist/Tabs/TabsRoot.cjs.map +1 -1
  634. package/dist/Tabs/TabsRoot.js +4 -4
  635. package/dist/Tabs/TabsRoot.js.map +1 -1
  636. package/dist/Tabs/TabsTrigger.cjs +3 -3
  637. package/dist/Tabs/TabsTrigger.js +4 -4
  638. package/dist/TagsInput/TagsInputClear.cjs +2 -2
  639. package/dist/TagsInput/TagsInputClear.js +3 -3
  640. package/dist/TagsInput/TagsInputInput.cjs +1 -1
  641. package/dist/TagsInput/TagsInputInput.js +2 -2
  642. package/dist/TagsInput/TagsInputItem.cjs +2 -2
  643. package/dist/TagsInput/TagsInputItem.js +3 -3
  644. package/dist/TagsInput/TagsInputItemDelete.cjs +2 -2
  645. package/dist/TagsInput/TagsInputItemDelete.js +3 -3
  646. package/dist/TagsInput/TagsInputItemText.cjs +1 -1
  647. package/dist/TagsInput/TagsInputItemText.cjs.map +1 -1
  648. package/dist/TagsInput/TagsInputItemText.js +2 -2
  649. package/dist/TagsInput/TagsInputItemText.js.map +1 -1
  650. package/dist/TagsInput/TagsInputRoot.cjs +7 -7
  651. package/dist/TagsInput/TagsInputRoot.cjs.map +1 -1
  652. package/dist/TagsInput/TagsInputRoot.js +8 -8
  653. package/dist/TagsInput/TagsInputRoot.js.map +1 -1
  654. package/dist/Teleport/Teleport.js +1 -1
  655. package/dist/TimeField/TimeFieldInput.cjs +5 -5
  656. package/dist/TimeField/TimeFieldInput.js +6 -6
  657. package/dist/TimeField/TimeFieldRoot.cjs +17 -14
  658. package/dist/TimeField/TimeFieldRoot.cjs.map +1 -1
  659. package/dist/TimeField/TimeFieldRoot.js +19 -16
  660. package/dist/TimeField/TimeFieldRoot.js.map +1 -1
  661. package/dist/Toast/FocusProxy.js +1 -1
  662. package/dist/Toast/ToastAction.js +1 -1
  663. package/dist/Toast/ToastAnnounce.js +1 -1
  664. package/dist/Toast/ToastAnnounceExclude.cjs +1 -1
  665. package/dist/Toast/ToastAnnounceExclude.js +2 -2
  666. package/dist/Toast/ToastClose.cjs +1 -1
  667. package/dist/Toast/ToastClose.js +2 -2
  668. package/dist/Toast/ToastDescription.js +1 -1
  669. package/dist/Toast/ToastPortal.js +1 -1
  670. package/dist/Toast/ToastRoot.cjs +2 -2
  671. package/dist/Toast/ToastRoot.js +3 -3
  672. package/dist/Toast/ToastRootImpl.cjs +1 -1
  673. package/dist/Toast/ToastRootImpl.js +3 -3
  674. package/dist/Toast/ToastTitle.js +1 -1
  675. package/dist/Toast/ToastViewport.cjs +3 -3
  676. package/dist/Toast/ToastViewport.js +4 -4
  677. package/dist/Toast/utils.js +1 -1
  678. package/dist/Toggle/Toggle.cjs +4 -4
  679. package/dist/Toggle/Toggle.js +5 -5
  680. package/dist/ToggleGroup/ToggleGroupItem.cjs +1 -1
  681. package/dist/ToggleGroup/ToggleGroupItem.js +2 -2
  682. package/dist/ToggleGroup/ToggleGroupRoot.cjs +4 -4
  683. package/dist/ToggleGroup/ToggleGroupRoot.js +5 -5
  684. package/dist/Toolbar/ToolbarButton.cjs +2 -2
  685. package/dist/Toolbar/ToolbarButton.js +3 -3
  686. package/dist/Toolbar/ToolbarLink.cjs +1 -1
  687. package/dist/Toolbar/ToolbarLink.js +2 -2
  688. package/dist/Toolbar/ToolbarRoot.cjs +2 -2
  689. package/dist/Toolbar/ToolbarRoot.js +3 -3
  690. package/dist/Toolbar/ToolbarSeparator.js +1 -1
  691. package/dist/Toolbar/ToolbarToggleGroup.js +1 -1
  692. package/dist/Toolbar/ToolbarToggleItem.js +1 -1
  693. package/dist/Tooltip/TooltipArrow.js +1 -1
  694. package/dist/Tooltip/TooltipContent.js +1 -1
  695. package/dist/Tooltip/TooltipContentHoverable.js +1 -1
  696. package/dist/Tooltip/TooltipContentImpl.js +1 -1
  697. package/dist/Tooltip/TooltipPortal.js +1 -1
  698. package/dist/Tooltip/TooltipProvider.cjs +1 -1
  699. package/dist/Tooltip/TooltipProvider.js +1 -1
  700. package/dist/Tooltip/TooltipRoot.cjs +8 -8
  701. package/dist/Tooltip/TooltipRoot.js +9 -9
  702. package/dist/Tooltip/TooltipTrigger.cjs +2 -2
  703. package/dist/Tooltip/TooltipTrigger.cjs.map +1 -1
  704. package/dist/Tooltip/TooltipTrigger.js +3 -3
  705. package/dist/Tooltip/TooltipTrigger.js.map +1 -1
  706. package/dist/Tree/TreeItem.cjs +5 -5
  707. package/dist/Tree/TreeItem.cjs.map +1 -1
  708. package/dist/Tree/TreeItem.js +6 -6
  709. package/dist/Tree/TreeItem.js.map +1 -1
  710. package/dist/Tree/TreeRoot.cjs +8 -8
  711. package/dist/Tree/TreeRoot.cjs.map +1 -1
  712. package/dist/Tree/TreeRoot.js +9 -9
  713. package/dist/Tree/TreeRoot.js.map +1 -1
  714. package/dist/Tree/TreeVirtualizer.js +1 -1
  715. package/dist/Viewport/Viewport.js +1 -1
  716. package/dist/VisuallyHidden/VisuallyHidden.cjs +3 -3
  717. package/dist/VisuallyHidden/VisuallyHidden.js +4 -4
  718. package/dist/VisuallyHidden/VisuallyHiddenInput.cjs +9 -3
  719. package/dist/VisuallyHidden/VisuallyHiddenInput.cjs.map +1 -1
  720. package/dist/VisuallyHidden/VisuallyHiddenInput.js +10 -4
  721. package/dist/VisuallyHidden/VisuallyHiddenInput.js.map +1 -1
  722. package/dist/VisuallyHidden/VisuallyHiddenInputBubble.cjs +1 -1
  723. package/dist/VisuallyHidden/VisuallyHiddenInputBubble.js +2 -2
  724. package/dist/component/Arrow.cjs +2 -2
  725. package/dist/component/Arrow.js +3 -3
  726. package/dist/component/BaseSeparator.cjs +1 -1
  727. package/dist/component/BaseSeparator.js +2 -2
  728. package/dist/constant/components.cjs +4 -0
  729. package/dist/constant/components.cjs.map +1 -1
  730. package/dist/constant/components.js +4 -0
  731. package/dist/constant/components.js.map +1 -1
  732. package/dist/date/comparators.cjs +1 -1
  733. package/dist/date/comparators.cjs.map +1 -1
  734. package/dist/date/comparators.js +2 -2
  735. package/dist/date/comparators.js.map +1 -1
  736. package/dist/date/parser.cjs +2 -2
  737. package/dist/date/parser.js +3 -3
  738. package/dist/date/useDateField.cjs +9 -9
  739. package/dist/date/useDateField.cjs.map +1 -1
  740. package/dist/date/useDateField.js +10 -10
  741. package/dist/date/useDateField.js.map +1 -1
  742. package/dist/date/utils.cjs +2 -2
  743. package/dist/date/utils.cjs.map +1 -1
  744. package/dist/date/utils.js +2 -2
  745. package/dist/date/utils.js.map +1 -1
  746. package/dist/index.cjs +91 -87
  747. package/dist/index.cjs.map +1 -1
  748. package/dist/index.d.ts +66 -2
  749. package/dist/index.js +42 -40
  750. package/dist/index.js.map +1 -1
  751. package/dist/shared/nullish.cjs +1 -1
  752. package/dist/shared/nullish.cjs.map +1 -1
  753. package/dist/shared/nullish.js +1 -1
  754. package/dist/shared/nullish.js.map +1 -1
  755. package/dist/shared/useBodyScrollLock.cjs +2 -2
  756. package/dist/shared/useBodyScrollLock.cjs.map +1 -1
  757. package/dist/shared/useBodyScrollLock.js +4 -4
  758. package/dist/shared/useBodyScrollLock.js.map +1 -1
  759. package/dist/shared/useDateFormatter.js +2 -2
  760. package/dist/shared/useForwardProps.cjs +2 -2
  761. package/dist/shared/useForwardProps.cjs.map +1 -1
  762. package/dist/shared/useForwardProps.js +2 -2
  763. package/dist/shared/useForwardProps.js.map +1 -1
  764. package/dist/shared/useGraceArea.cjs +1 -1
  765. package/dist/shared/useGraceArea.cjs.map +1 -1
  766. package/dist/shared/useGraceArea.js +1 -1
  767. package/dist/shared/useGraceArea.js.map +1 -1
  768. package/dist/shared/useId.cjs +1 -1
  769. package/dist/shared/useId.cjs.map +1 -1
  770. package/dist/shared/useId.js +1 -1
  771. package/dist/shared/useId.js.map +1 -1
  772. package/dist/shared/useSelectionBehavior.cjs +1 -1
  773. package/dist/shared/useSelectionBehavior.cjs.map +1 -1
  774. package/dist/shared/useSelectionBehavior.js +1 -1
  775. package/dist/shared/useSelectionBehavior.js.map +1 -1
  776. package/dist/shared/useSingleOrMultipleValue.cjs +5 -5
  777. package/dist/shared/useSingleOrMultipleValue.cjs.map +1 -1
  778. package/dist/shared/useSingleOrMultipleValue.js +5 -5
  779. package/dist/shared/useSingleOrMultipleValue.js.map +1 -1
  780. package/dist/shared/useSize.cjs +1 -1
  781. package/dist/shared/useSize.cjs.map +1 -1
  782. package/dist/shared/useSize.js +1 -1
  783. package/dist/shared/useSize.js.map +1 -1
  784. package/dist/shared/useTypeahead.cjs +1 -1
  785. package/dist/shared/useTypeahead.cjs.map +1 -1
  786. package/dist/shared/useTypeahead.js +1 -1
  787. package/dist/shared/useTypeahead.js.map +1 -1
  788. package/dist/utils/layout.cjs +1 -1
  789. package/dist/utils/layout.cjs.map +1 -1
  790. package/dist/utils/layout.js +1 -1
  791. package/dist/utils/layout.js.map +1 -1
  792. package/dist/utils/style.cjs +2 -2
  793. package/dist/utils/style.cjs.map +1 -1
  794. package/dist/utils/style.js +3 -3
  795. package/dist/utils/style.js.map +1 -1
  796. package/package.json +2 -2
@@ -3,11 +3,11 @@
3
3
  const vue = require('vue');
4
4
  const NavigationMenu_utils = require('./utils.cjs');
5
5
  const Collection_Collection = require('../Collection/Collection.cjs');
6
+ const shared_createContext = require('../shared/createContext.cjs');
6
7
  const shared_useForwardExpose = require('../shared/useForwardExpose.cjs');
7
8
  const NavigationMenu_NavigationMenuRoot = require('./NavigationMenuRoot.cjs');
8
9
  const shared_useId = require('../shared/useId.cjs');
9
10
  const Primitive_Primitive = require('../Primitive/Primitive.cjs');
10
- const shared_createContext = require('../shared/createContext.cjs');
11
11
  const shared_getActiveElement = require('../shared/getActiveElement.cjs');
12
12
  const shared_useArrowNavigation = require('../shared/useArrowNavigation.cjs');
13
13
 
@@ -80,7 +80,7 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
80
80
  ).map((i) => i.ref);
81
81
  if (!itemsArray.includes(currentFocus))
82
82
  return;
83
- const newSelectedElement = shared_useArrowNavigation.useArrowNavigation(ev, currentFocus, undefined, {
83
+ const newSelectedElement = shared_useArrowNavigation.useArrowNavigation(ev, currentFocus, void 0, {
84
84
  itemsArray,
85
85
  loop: false
86
86
  });
@@ -1 +1 @@
1
- {"version":3,"file":"NavigationMenuItem.cjs","sources":["../../src/NavigationMenu/NavigationMenuItem.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { Ref } from 'vue'\nimport type { PrimitiveProps } from '@/Primitive'\nimport { useCollection } from '@/Collection'\nimport { createContext, getActiveElement, useArrowNavigation, useForwardExpose, useId } from '@/shared'\n\nexport interface NavigationMenuItemProps extends PrimitiveProps {\n /**\n * A unique value that associates the item with an active value when the navigation menu is controlled.\n *\n * This prop is managed automatically when uncontrolled.\n */\n value?: string\n}\n\nexport type NavigationMenuItemContext = {\n value: string\n contentId: string\n triggerRef: Ref<HTMLElement | undefined>\n focusProxyRef: Ref<HTMLElement | undefined>\n wasEscapeCloseRef: Ref<boolean>\n onEntryKeyDown: () => void\n onFocusProxyEnter: (side: 'start' | 'end') => void\n onContentFocusOutside: () => void\n onRootContentClose: () => void\n}\n\nexport const [injectNavigationMenuItemContext, provideNavigationMenuItemContext]\n = createContext<NavigationMenuItemContext>('NavigationMenuItem')\n</script>\n\n<script setup lang=\"ts\">\nimport { ref } from 'vue'\nimport { injectNavigationMenuContext } from './NavigationMenuRoot.vue'\nimport { Primitive } from '@/Primitive'\nimport {\n focusFirst,\n getTabbableCandidates,\n makeContentId,\n removeFromTabOrder,\n} from './utils'\n\nconst props = withDefaults(defineProps<NavigationMenuItemProps>(), {\n as: 'li',\n})\n\nuseForwardExpose()\nconst { getItems } = useCollection({ key: 'NavigationMenu' })\n\nconst context = injectNavigationMenuContext()\n\nconst value = useId(props.value)\nconst triggerRef = ref<HTMLElement>()\nconst focusProxyRef = ref<HTMLElement>()\n\nconst contentId = makeContentId(context.baseId, value)\n\nlet restoreContentTabOrderRef: () => void = () => ({})\n\nconst wasEscapeCloseRef = ref(false)\nasync function handleContentEntry(side = 'start') {\n const el = document.getElementById(contentId)\n if (el) {\n restoreContentTabOrderRef()\n const candidates = getTabbableCandidates(el)\n if (candidates.length)\n focusFirst(side === 'start' ? candidates : candidates.reverse())\n }\n}\n\nfunction handleContentExit() {\n const el = document.getElementById(contentId)\n if (el) {\n const candidates = getTabbableCandidates(el)\n if (candidates.length)\n restoreContentTabOrderRef = removeFromTabOrder(candidates)\n }\n}\n\nprovideNavigationMenuItemContext({\n value,\n contentId,\n triggerRef,\n focusProxyRef,\n wasEscapeCloseRef,\n onEntryKeyDown: handleContentEntry,\n onFocusProxyEnter: handleContentEntry,\n onContentFocusOutside: handleContentExit,\n onRootContentClose: handleContentExit,\n})\n\nfunction handleClose() {\n context.onItemDismiss()\n triggerRef.value?.focus()\n}\n\nfunction handleKeydown(ev: KeyboardEvent) {\n const currentFocus = getActiveElement() as HTMLElement\n if (ev.keyCode === 32 || ev.key === 'Enter') {\n if (context.modelValue.value === value) {\n handleClose()\n ev.preventDefault()\n return\n }\n else {\n (ev.target as HTMLElement).click()\n ev.preventDefault()\n return\n }\n }\n\n const itemsArray = getItems().filter(i =>\n i.ref.parentElement?.hasAttribute('data-menu-item'),\n ).map(i => i.ref)\n\n // prevent triggering when the focus is on link\n if (!itemsArray.includes(currentFocus))\n return\n\n const newSelectedElement = useArrowNavigation(ev, currentFocus, undefined, {\n itemsArray,\n loop: false,\n })\n\n if (newSelectedElement)\n newSelectedElement?.focus()\n\n ev.preventDefault()\n ev.stopPropagation()\n}\n</script>\n\n<template>\n <Primitive\n :as-child=\"asChild\"\n :as=\"as\"\n data-menu-item\n @keydown.up.down.left.right.home.end.space=\"handleKeydown\"\n >\n <slot />\n </Primitive>\n</template>\n"],"names":["createContext","useForwardExpose","useCollection","injectNavigationMenuContext","useId","ref","makeContentId","getTabbableCandidates","focusFirst","removeFromTabOrder","getActiveElement","useArrowNavigation"],"mappings":"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"}
1
+ {"version":3,"file":"NavigationMenuItem.cjs","sources":["../../src/NavigationMenu/NavigationMenuItem.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { Ref } from 'vue'\nimport type { PrimitiveProps } from '@/Primitive'\nimport { useCollection } from '@/Collection'\nimport { createContext, getActiveElement, useArrowNavigation, useForwardExpose, useId } from '@/shared'\n\nexport interface NavigationMenuItemProps extends PrimitiveProps {\n /**\n * A unique value that associates the item with an active value when the navigation menu is controlled.\n *\n * This prop is managed automatically when uncontrolled.\n */\n value?: string\n}\n\nexport type NavigationMenuItemContext = {\n value: string\n contentId: string\n triggerRef: Ref<HTMLElement | undefined>\n focusProxyRef: Ref<HTMLElement | undefined>\n wasEscapeCloseRef: Ref<boolean>\n onEntryKeyDown: () => void\n onFocusProxyEnter: (side: 'start' | 'end') => void\n onContentFocusOutside: () => void\n onRootContentClose: () => void\n}\n\nexport const [injectNavigationMenuItemContext, provideNavigationMenuItemContext]\n = createContext<NavigationMenuItemContext>('NavigationMenuItem')\n</script>\n\n<script setup lang=\"ts\">\nimport { ref } from 'vue'\nimport { injectNavigationMenuContext } from './NavigationMenuRoot.vue'\nimport { Primitive } from '@/Primitive'\nimport {\n focusFirst,\n getTabbableCandidates,\n makeContentId,\n removeFromTabOrder,\n} from './utils'\n\nconst props = withDefaults(defineProps<NavigationMenuItemProps>(), {\n as: 'li',\n})\n\nuseForwardExpose()\nconst { getItems } = useCollection({ key: 'NavigationMenu' })\n\nconst context = injectNavigationMenuContext()\n\nconst value = useId(props.value)\nconst triggerRef = ref<HTMLElement>()\nconst focusProxyRef = ref<HTMLElement>()\n\nconst contentId = makeContentId(context.baseId, value)\n\nlet restoreContentTabOrderRef: () => void = () => ({})\n\nconst wasEscapeCloseRef = ref(false)\nasync function handleContentEntry(side = 'start') {\n const el = document.getElementById(contentId)\n if (el) {\n restoreContentTabOrderRef()\n const candidates = getTabbableCandidates(el)\n if (candidates.length)\n focusFirst(side === 'start' ? candidates : candidates.reverse())\n }\n}\n\nfunction handleContentExit() {\n const el = document.getElementById(contentId)\n if (el) {\n const candidates = getTabbableCandidates(el)\n if (candidates.length)\n restoreContentTabOrderRef = removeFromTabOrder(candidates)\n }\n}\n\nprovideNavigationMenuItemContext({\n value,\n contentId,\n triggerRef,\n focusProxyRef,\n wasEscapeCloseRef,\n onEntryKeyDown: handleContentEntry,\n onFocusProxyEnter: handleContentEntry,\n onContentFocusOutside: handleContentExit,\n onRootContentClose: handleContentExit,\n})\n\nfunction handleClose() {\n context.onItemDismiss()\n triggerRef.value?.focus()\n}\n\nfunction handleKeydown(ev: KeyboardEvent) {\n const currentFocus = getActiveElement() as HTMLElement\n if (ev.keyCode === 32 || ev.key === 'Enter') {\n if (context.modelValue.value === value) {\n handleClose()\n ev.preventDefault()\n return\n }\n else {\n (ev.target as HTMLElement).click()\n ev.preventDefault()\n return\n }\n }\n\n const itemsArray = getItems().filter(i =>\n i.ref.parentElement?.hasAttribute('data-menu-item'),\n ).map(i => i.ref)\n\n // prevent triggering when the focus is on link\n if (!itemsArray.includes(currentFocus))\n return\n\n const newSelectedElement = useArrowNavigation(ev, currentFocus, undefined, {\n itemsArray,\n loop: false,\n })\n\n if (newSelectedElement)\n newSelectedElement?.focus()\n\n ev.preventDefault()\n ev.stopPropagation()\n}\n</script>\n\n<template>\n <Primitive\n :as-child=\"asChild\"\n :as=\"as\"\n data-menu-item\n @keydown.up.down.left.right.home.end.space=\"handleKeydown\"\n >\n <slot />\n </Primitive>\n</template>\n"],"names":["createContext","useForwardExpose","useCollection","injectNavigationMenuContext","useId","ref","makeContentId","getTabbableCandidates","focusFirst","removeFromTabOrder","getActiveElement","useArrowNavigation"],"mappings":"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"}
@@ -1,11 +1,11 @@
1
- import { defineComponent, ref, openBlock, createBlock, unref, withKeys, withCtx, renderSlot } from 'vue';
1
+ import { defineComponent, ref, createBlock, openBlock, unref, withKeys, withCtx, renderSlot } from 'vue';
2
2
  import { a as makeContentId, b as getTabbableCandidates, f as focusFirst, r as removeFromTabOrder } from './utils.js';
3
3
  import { u as useCollection } from '../Collection/Collection.js';
4
+ import { c as createContext } from '../shared/createContext.js';
4
5
  import { u as useForwardExpose } from '../shared/useForwardExpose.js';
5
6
  import { i as injectNavigationMenuContext } from './NavigationMenuRoot.js';
6
7
  import { u as useId } from '../shared/useId.js';
7
8
  import { P as Primitive } from '../Primitive/Primitive.js';
8
- import { c as createContext } from '../shared/createContext.js';
9
9
  import { g as getActiveElement } from '../shared/getActiveElement.js';
10
10
  import { u as useArrowNavigation } from '../shared/useArrowNavigation.js';
11
11
 
@@ -78,7 +78,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
78
78
  ).map((i) => i.ref);
79
79
  if (!itemsArray.includes(currentFocus))
80
80
  return;
81
- const newSelectedElement = useArrowNavigation(ev, currentFocus, undefined, {
81
+ const newSelectedElement = useArrowNavigation(ev, currentFocus, void 0, {
82
82
  itemsArray,
83
83
  loop: false
84
84
  });
@@ -1 +1 @@
1
- {"version":3,"file":"NavigationMenuItem.js","sources":["../../src/NavigationMenu/NavigationMenuItem.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { Ref } from 'vue'\nimport type { PrimitiveProps } from '@/Primitive'\nimport { useCollection } from '@/Collection'\nimport { createContext, getActiveElement, useArrowNavigation, useForwardExpose, useId } from '@/shared'\n\nexport interface NavigationMenuItemProps extends PrimitiveProps {\n /**\n * A unique value that associates the item with an active value when the navigation menu is controlled.\n *\n * This prop is managed automatically when uncontrolled.\n */\n value?: string\n}\n\nexport type NavigationMenuItemContext = {\n value: string\n contentId: string\n triggerRef: Ref<HTMLElement | undefined>\n focusProxyRef: Ref<HTMLElement | undefined>\n wasEscapeCloseRef: Ref<boolean>\n onEntryKeyDown: () => void\n onFocusProxyEnter: (side: 'start' | 'end') => void\n onContentFocusOutside: () => void\n onRootContentClose: () => void\n}\n\nexport const [injectNavigationMenuItemContext, provideNavigationMenuItemContext]\n = createContext<NavigationMenuItemContext>('NavigationMenuItem')\n</script>\n\n<script setup lang=\"ts\">\nimport { ref } from 'vue'\nimport { injectNavigationMenuContext } from './NavigationMenuRoot.vue'\nimport { Primitive } from '@/Primitive'\nimport {\n focusFirst,\n getTabbableCandidates,\n makeContentId,\n removeFromTabOrder,\n} from './utils'\n\nconst props = withDefaults(defineProps<NavigationMenuItemProps>(), {\n as: 'li',\n})\n\nuseForwardExpose()\nconst { getItems } = useCollection({ key: 'NavigationMenu' })\n\nconst context = injectNavigationMenuContext()\n\nconst value = useId(props.value)\nconst triggerRef = ref<HTMLElement>()\nconst focusProxyRef = ref<HTMLElement>()\n\nconst contentId = makeContentId(context.baseId, value)\n\nlet restoreContentTabOrderRef: () => void = () => ({})\n\nconst wasEscapeCloseRef = ref(false)\nasync function handleContentEntry(side = 'start') {\n const el = document.getElementById(contentId)\n if (el) {\n restoreContentTabOrderRef()\n const candidates = getTabbableCandidates(el)\n if (candidates.length)\n focusFirst(side === 'start' ? candidates : candidates.reverse())\n }\n}\n\nfunction handleContentExit() {\n const el = document.getElementById(contentId)\n if (el) {\n const candidates = getTabbableCandidates(el)\n if (candidates.length)\n restoreContentTabOrderRef = removeFromTabOrder(candidates)\n }\n}\n\nprovideNavigationMenuItemContext({\n value,\n contentId,\n triggerRef,\n focusProxyRef,\n wasEscapeCloseRef,\n onEntryKeyDown: handleContentEntry,\n onFocusProxyEnter: handleContentEntry,\n onContentFocusOutside: handleContentExit,\n onRootContentClose: handleContentExit,\n})\n\nfunction handleClose() {\n context.onItemDismiss()\n triggerRef.value?.focus()\n}\n\nfunction handleKeydown(ev: KeyboardEvent) {\n const currentFocus = getActiveElement() as HTMLElement\n if (ev.keyCode === 32 || ev.key === 'Enter') {\n if (context.modelValue.value === value) {\n handleClose()\n ev.preventDefault()\n return\n }\n else {\n (ev.target as HTMLElement).click()\n ev.preventDefault()\n return\n }\n }\n\n const itemsArray = getItems().filter(i =>\n i.ref.parentElement?.hasAttribute('data-menu-item'),\n ).map(i => i.ref)\n\n // prevent triggering when the focus is on link\n if (!itemsArray.includes(currentFocus))\n return\n\n const newSelectedElement = useArrowNavigation(ev, currentFocus, undefined, {\n itemsArray,\n loop: false,\n })\n\n if (newSelectedElement)\n newSelectedElement?.focus()\n\n ev.preventDefault()\n ev.stopPropagation()\n}\n</script>\n\n<template>\n <Primitive\n :as-child=\"asChild\"\n :as=\"as\"\n data-menu-item\n @keydown.up.down.left.right.home.end.space=\"handleKeydown\"\n >\n <slot />\n </Primitive>\n</template>\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"NavigationMenuItem.js","sources":["../../src/NavigationMenu/NavigationMenuItem.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { Ref } from 'vue'\nimport type { PrimitiveProps } from '@/Primitive'\nimport { useCollection } from '@/Collection'\nimport { createContext, getActiveElement, useArrowNavigation, useForwardExpose, useId } from '@/shared'\n\nexport interface NavigationMenuItemProps extends PrimitiveProps {\n /**\n * A unique value that associates the item with an active value when the navigation menu is controlled.\n *\n * This prop is managed automatically when uncontrolled.\n */\n value?: string\n}\n\nexport type NavigationMenuItemContext = {\n value: string\n contentId: string\n triggerRef: Ref<HTMLElement | undefined>\n focusProxyRef: Ref<HTMLElement | undefined>\n wasEscapeCloseRef: Ref<boolean>\n onEntryKeyDown: () => void\n onFocusProxyEnter: (side: 'start' | 'end') => void\n onContentFocusOutside: () => void\n onRootContentClose: () => void\n}\n\nexport const [injectNavigationMenuItemContext, provideNavigationMenuItemContext]\n = createContext<NavigationMenuItemContext>('NavigationMenuItem')\n</script>\n\n<script setup lang=\"ts\">\nimport { ref } from 'vue'\nimport { injectNavigationMenuContext } from './NavigationMenuRoot.vue'\nimport { Primitive } from '@/Primitive'\nimport {\n focusFirst,\n getTabbableCandidates,\n makeContentId,\n removeFromTabOrder,\n} from './utils'\n\nconst props = withDefaults(defineProps<NavigationMenuItemProps>(), {\n as: 'li',\n})\n\nuseForwardExpose()\nconst { getItems } = useCollection({ key: 'NavigationMenu' })\n\nconst context = injectNavigationMenuContext()\n\nconst value = useId(props.value)\nconst triggerRef = ref<HTMLElement>()\nconst focusProxyRef = ref<HTMLElement>()\n\nconst contentId = makeContentId(context.baseId, value)\n\nlet restoreContentTabOrderRef: () => void = () => ({})\n\nconst wasEscapeCloseRef = ref(false)\nasync function handleContentEntry(side = 'start') {\n const el = document.getElementById(contentId)\n if (el) {\n restoreContentTabOrderRef()\n const candidates = getTabbableCandidates(el)\n if (candidates.length)\n focusFirst(side === 'start' ? candidates : candidates.reverse())\n }\n}\n\nfunction handleContentExit() {\n const el = document.getElementById(contentId)\n if (el) {\n const candidates = getTabbableCandidates(el)\n if (candidates.length)\n restoreContentTabOrderRef = removeFromTabOrder(candidates)\n }\n}\n\nprovideNavigationMenuItemContext({\n value,\n contentId,\n triggerRef,\n focusProxyRef,\n wasEscapeCloseRef,\n onEntryKeyDown: handleContentEntry,\n onFocusProxyEnter: handleContentEntry,\n onContentFocusOutside: handleContentExit,\n onRootContentClose: handleContentExit,\n})\n\nfunction handleClose() {\n context.onItemDismiss()\n triggerRef.value?.focus()\n}\n\nfunction handleKeydown(ev: KeyboardEvent) {\n const currentFocus = getActiveElement() as HTMLElement\n if (ev.keyCode === 32 || ev.key === 'Enter') {\n if (context.modelValue.value === value) {\n handleClose()\n ev.preventDefault()\n return\n }\n else {\n (ev.target as HTMLElement).click()\n ev.preventDefault()\n return\n }\n }\n\n const itemsArray = getItems().filter(i =>\n i.ref.parentElement?.hasAttribute('data-menu-item'),\n ).map(i => i.ref)\n\n // prevent triggering when the focus is on link\n if (!itemsArray.includes(currentFocus))\n return\n\n const newSelectedElement = useArrowNavigation(ev, currentFocus, undefined, {\n itemsArray,\n loop: false,\n })\n\n if (newSelectedElement)\n newSelectedElement?.focus()\n\n ev.preventDefault()\n ev.stopPropagation()\n}\n</script>\n\n<template>\n <Primitive\n :as-child=\"asChild\"\n :as=\"as\"\n data-menu-item\n @keydown.up.down.left.right.home.end.space=\"handleKeydown\"\n >\n <slot />\n </Primitive>\n</template>\n"],"names":[],"mappings":"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"}
@@ -44,8 +44,8 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
44
44
  default: vue.withCtx(() => [
45
45
  vue.createVNode(vue.unref(Primitive_Primitive.Primitive), {
46
46
  as: _ctx.as,
47
- "data-active": _ctx.active ? "" : undefined,
48
- "aria-current": _ctx.active ? "page" : undefined,
47
+ "data-active": _ctx.active ? "" : void 0,
48
+ "aria-current": _ctx.active ? "page" : void 0,
49
49
  "as-child": props.asChild,
50
50
  onClick: handleClick
51
51
  }, {
@@ -1,4 +1,4 @@
1
- import { defineComponent, openBlock, createBlock, unref, withCtx, createVNode, renderSlot } from 'vue';
1
+ import { defineComponent, createBlock, openBlock, unref, withCtx, createVNode, renderSlot } from 'vue';
2
2
  import { L as LINK_SELECT, E as EVENT_ROOT_CONTENT_DISMISS } from './utils.js';
3
3
  import { u as useCollection } from '../Collection/Collection.js';
4
4
  import { u as useForwardExpose } from '../shared/useForwardExpose.js';
@@ -42,8 +42,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
42
42
  default: withCtx(() => [
43
43
  createVNode(unref(Primitive), {
44
44
  as: _ctx.as,
45
- "data-active": _ctx.active ? "" : undefined,
46
- "aria-current": _ctx.active ? "page" : undefined,
45
+ "data-active": _ctx.active ? "" : void 0,
46
+ "aria-current": _ctx.active ? "page" : void 0,
47
47
  "as-child": props.asChild,
48
48
  onClick: handleClick
49
49
  }, {
@@ -1,4 +1,4 @@
1
- import { defineComponent, onMounted, openBlock, createBlock, unref, withCtx, createVNode, mergeProps, renderSlot } from 'vue';
1
+ import { defineComponent, onMounted, createBlock, openBlock, unref, withCtx, createVNode, mergeProps, renderSlot } from 'vue';
2
2
  import { u as useForwardExpose } from '../shared/useForwardExpose.js';
3
3
  import { P as Primitive } from '../Primitive/Primitive.js';
4
4
  import { i as injectNavigationMenuContext } from './NavigationMenuRoot.js';
@@ -3,17 +3,17 @@
3
3
  const vue = require('vue');
4
4
  const core = require('@vueuse/core');
5
5
  const Collection_Collection = require('../Collection/Collection.cjs');
6
+ const shared_createContext = require('../shared/createContext.cjs');
6
7
  const shared_useForwardExpose = require('../shared/useForwardExpose.cjs');
7
8
  const shared_useDirection = require('../shared/useDirection.cjs');
8
9
  const shared_useId = require('../shared/useId.cjs');
9
10
  const Primitive_Primitive = require('../Primitive/Primitive.cjs');
10
- const shared_createContext = require('../shared/createContext.cjs');
11
11
 
12
12
  const [injectNavigationMenuContext, provideNavigationMenuContext] = shared_createContext.createContext(["NavigationMenuRoot", "NavigationMenuSub"], "NavigationMenuContext");
13
13
  const _sfc_main = /* @__PURE__ */ vue.defineComponent({
14
14
  __name: "NavigationMenuRoot",
15
15
  props: {
16
- modelValue: { default: undefined },
16
+ modelValue: { default: void 0 },
17
17
  defaultValue: {},
18
18
  dir: {},
19
19
  orientation: { default: "horizontal" },
@@ -32,7 +32,7 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
32
32
  const emits = __emit;
33
33
  const modelValue = core.useVModel(props, "modelValue", emits, {
34
34
  defaultValue: props.defaultValue ?? "",
35
- passive: props.modelValue === undefined
35
+ passive: props.modelValue === void 0
36
36
  });
37
37
  const previousValue = vue.ref("");
38
38
  const { forwardRef, currentElement: rootNavigationMenu } = shared_useForwardExpose.useForwardExpose();
@@ -67,7 +67,7 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
67
67
  isRootMenu: true,
68
68
  modelValue,
69
69
  previousValue,
70
- baseId: shared_useId.useId(undefined, "reka-navigation-menu"),
70
+ baseId: shared_useId.useId(void 0, "reka-navigation-menu"),
71
71
  disableClickTrigger,
72
72
  disableHoverTrigger,
73
73
  dir,
@@ -1 +1 @@
1
- {"version":3,"file":"NavigationMenuRoot.cjs","sources":["../../src/NavigationMenu/NavigationMenuRoot.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { Ref } from 'vue'\n\nimport type { PrimitiveProps } from '@/Primitive'\nimport type { Direction, Orientation } from './utils'\nimport { createContext, useDirection, useForwardExpose, useId } from '@/shared'\nimport { useCollection } from '@/Collection'\n\nexport interface NavigationMenuRootProps extends PrimitiveProps {\n /** The controlled value of the menu item to activate. Can be used as `v-model`. */\n modelValue?: string\n /**\n * The value of the menu item that should be active when initially rendered.\n *\n * Use when you do not need to control the value state.\n */\n defaultValue?: string\n /**\n * The reading direction of the combobox when applicable.\n *\n * If omitted, inherits globally from `ConfigProvider` or assumes LTR (left-to-right) reading mode.\n */\n dir?: Direction\n /** The orientation of the menu. */\n orientation?: Orientation\n /**\n * The duration from when the pointer enters the trigger until the tooltip gets opened.\n * @defaultValue 200\n */\n delayDuration?: number\n /**\n * How much time a user has to enter another trigger without incurring a delay again.\n * @defaultValue 300\n */\n skipDelayDuration?: number\n\n /**\n * If `true`, menu cannot be open by click on trigger\n * @defaultValue false\n */\n disableClickTrigger?: boolean\n /**\n * If `true`, menu cannot be open by hover on trigger\n * @defaultValue false\n */\n disableHoverTrigger?: boolean\n /**\n * If `true`, menu will not close during pointer leave event\n * @defaultValue false\n */\n disablePointerLeaveClose?: boolean\n\n /**\n * When `true`, the element will be unmounted on closed state.\n *\n * @defaultValue `true`\n */\n unmountOnHide?: boolean\n}\nexport type NavigationMenuRootEmits = {\n /** Event handler called when the value changes. */\n 'update:modelValue': [value: string]\n}\n\nexport interface NavigationMenuContext {\n isRootMenu: boolean\n modelValue: Ref<string>\n previousValue: Ref<string>\n baseId: string\n dir: Ref<Direction>\n orientation: Orientation\n disableClickTrigger: Ref<boolean>\n disableHoverTrigger: Ref<boolean>\n unmountOnHide: Ref<boolean>\n rootNavigationMenu: Ref<HTMLElement | undefined>\n activeTrigger: Ref<HTMLElement | undefined>\n indicatorTrack: Ref<HTMLElement | undefined>\n onIndicatorTrackChange: (indicatorTrack: HTMLElement | undefined) => void\n viewport: Ref<HTMLElement | undefined>\n onViewportChange: (viewport: HTMLElement | undefined) => void\n onTriggerEnter: (itemValue: string) => void\n onTriggerLeave: () => void\n onContentEnter: (itemValue: string) => void\n onContentLeave: () => void\n onItemSelect: (itemValue: string) => void\n onItemDismiss: () => void\n}\n\nexport const [injectNavigationMenuContext, provideNavigationMenuContext]\n = createContext<NavigationMenuContext>(['NavigationMenuRoot', 'NavigationMenuSub'], 'NavigationMenuContext')\n</script>\n\n<script setup lang=\"ts\">\nimport {\n computed,\n ref,\n toRefs,\n watchEffect,\n} from 'vue'\nimport { refAutoReset, useDebounceFn, useVModel } from '@vueuse/core'\nimport {\n Primitive,\n} from '@/Primitive'\n\nconst props = withDefaults(defineProps<NavigationMenuRootProps>(), {\n modelValue: undefined,\n delayDuration: 200,\n skipDelayDuration: 300,\n orientation: 'horizontal',\n disableClickTrigger: false,\n disableHoverTrigger: false,\n unmountOnHide: true,\n as: 'nav',\n})\nconst emits = defineEmits<NavigationMenuRootEmits>()\n\ndefineSlots<{\n default: (props: {\n /** Current input values */\n modelValue: typeof modelValue.value\n }) => any\n}>()\n\nconst modelValue = useVModel(props, 'modelValue', emits, {\n defaultValue: props.defaultValue ?? '',\n passive: (props.modelValue === undefined) as false,\n}) as Ref<string>\nconst previousValue = ref('')\n\nconst { forwardRef, currentElement: rootNavigationMenu } = useForwardExpose()\n\nconst indicatorTrack = ref<HTMLElement>()\nconst viewport = ref<HTMLElement>()\nconst activeTrigger = ref<HTMLElement>()\n\nconst { getItems, CollectionSlot } = useCollection({ key: 'NavigationMenu', isProvider: true })\n\nconst { delayDuration, skipDelayDuration, dir: propDir, disableClickTrigger, disableHoverTrigger, unmountOnHide } = toRefs(props)\nconst dir = useDirection(propDir)\n\nconst isDelaySkipped = refAutoReset(false, skipDelayDuration)\nconst computedDelay = computed(() => {\n const isOpen = modelValue.value !== ''\n if (isOpen || isDelaySkipped.value)\n return 150 // 150ms for user to switch trigger or move into content view\n else return delayDuration.value\n})\n\nconst debouncedFn = useDebounceFn((val?: string) => {\n // passing `undefined` meant to reset the debounce timer\n if (typeof val === 'string') {\n previousValue.value = modelValue.value\n modelValue.value = val\n }\n}, computedDelay)\n\nwatchEffect(() => {\n if (!modelValue.value)\n return\n\n const items = getItems().map(i => i.ref)\n activeTrigger.value = items.find(item =>\n item.id.includes(modelValue.value),\n )\n})\n\nprovideNavigationMenuContext({\n isRootMenu: true,\n modelValue,\n previousValue,\n baseId: useId(undefined, 'reka-navigation-menu'),\n disableClickTrigger,\n disableHoverTrigger,\n dir,\n unmountOnHide,\n orientation: props.orientation,\n rootNavigationMenu,\n indicatorTrack,\n activeTrigger,\n onIndicatorTrackChange: (val) => {\n indicatorTrack.value = val\n },\n viewport,\n onViewportChange: (val) => {\n viewport.value = val\n },\n onTriggerEnter: (val) => {\n debouncedFn(val)\n },\n onTriggerLeave: () => {\n isDelaySkipped.value = true\n debouncedFn('')\n },\n onContentEnter: () => {\n debouncedFn()\n },\n onContentLeave: () => {\n if (!props.disablePointerLeaveClose)\n debouncedFn('')\n },\n onItemSelect: (val) => {\n // When selecting item we trigger update immediately\n previousValue.value = modelValue.value\n modelValue.value = val\n },\n onItemDismiss: () => {\n previousValue.value = modelValue.value\n modelValue.value = ''\n },\n})\n</script>\n\n<template>\n <CollectionSlot>\n <Primitive\n :ref=\"forwardRef\"\n aria-label=\"Main\"\n :as=\"as\"\n :as-child=\"asChild\"\n :data-orientation=\"orientation\"\n :dir=\"dir\"\n data-reka-navigation-menu\n >\n <slot :model-value=\"modelValue\" />\n </Primitive>\n </CollectionSlot>\n</template>\n"],"names":["createContext","useVModel","ref","useForwardExpose","useCollection","toRefs","useDirection","refAutoReset","computed","useDebounceFn","watchEffect","useId"],"mappings":"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"}
1
+ {"version":3,"file":"NavigationMenuRoot.cjs","sources":["../../src/NavigationMenu/NavigationMenuRoot.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { Ref } from 'vue'\n\nimport type { PrimitiveProps } from '@/Primitive'\nimport type { Direction, Orientation } from './utils'\nimport { createContext, useDirection, useForwardExpose, useId } from '@/shared'\nimport { useCollection } from '@/Collection'\n\nexport interface NavigationMenuRootProps extends PrimitiveProps {\n /** The controlled value of the menu item to activate. Can be used as `v-model`. */\n modelValue?: string\n /**\n * The value of the menu item that should be active when initially rendered.\n *\n * Use when you do not need to control the value state.\n */\n defaultValue?: string\n /**\n * The reading direction of the combobox when applicable.\n *\n * If omitted, inherits globally from `ConfigProvider` or assumes LTR (left-to-right) reading mode.\n */\n dir?: Direction\n /** The orientation of the menu. */\n orientation?: Orientation\n /**\n * The duration from when the pointer enters the trigger until the tooltip gets opened.\n * @defaultValue 200\n */\n delayDuration?: number\n /**\n * How much time a user has to enter another trigger without incurring a delay again.\n * @defaultValue 300\n */\n skipDelayDuration?: number\n\n /**\n * If `true`, menu cannot be open by click on trigger\n * @defaultValue false\n */\n disableClickTrigger?: boolean\n /**\n * If `true`, menu cannot be open by hover on trigger\n * @defaultValue false\n */\n disableHoverTrigger?: boolean\n /**\n * If `true`, menu will not close during pointer leave event\n * @defaultValue false\n */\n disablePointerLeaveClose?: boolean\n\n /**\n * When `true`, the element will be unmounted on closed state.\n *\n * @defaultValue `true`\n */\n unmountOnHide?: boolean\n}\nexport type NavigationMenuRootEmits = {\n /** Event handler called when the value changes. */\n 'update:modelValue': [value: string]\n}\n\nexport interface NavigationMenuContext {\n isRootMenu: boolean\n modelValue: Ref<string>\n previousValue: Ref<string>\n baseId: string\n dir: Ref<Direction>\n orientation: Orientation\n disableClickTrigger: Ref<boolean>\n disableHoverTrigger: Ref<boolean>\n unmountOnHide: Ref<boolean>\n rootNavigationMenu: Ref<HTMLElement | undefined>\n activeTrigger: Ref<HTMLElement | undefined>\n indicatorTrack: Ref<HTMLElement | undefined>\n onIndicatorTrackChange: (indicatorTrack: HTMLElement | undefined) => void\n viewport: Ref<HTMLElement | undefined>\n onViewportChange: (viewport: HTMLElement | undefined) => void\n onTriggerEnter: (itemValue: string) => void\n onTriggerLeave: () => void\n onContentEnter: (itemValue: string) => void\n onContentLeave: () => void\n onItemSelect: (itemValue: string) => void\n onItemDismiss: () => void\n}\n\nexport const [injectNavigationMenuContext, provideNavigationMenuContext]\n = createContext<NavigationMenuContext>(['NavigationMenuRoot', 'NavigationMenuSub'], 'NavigationMenuContext')\n</script>\n\n<script setup lang=\"ts\">\nimport {\n computed,\n ref,\n toRefs,\n watchEffect,\n} from 'vue'\nimport { refAutoReset, useDebounceFn, useVModel } from '@vueuse/core'\nimport {\n Primitive,\n} from '@/Primitive'\n\nconst props = withDefaults(defineProps<NavigationMenuRootProps>(), {\n modelValue: undefined,\n delayDuration: 200,\n skipDelayDuration: 300,\n orientation: 'horizontal',\n disableClickTrigger: false,\n disableHoverTrigger: false,\n unmountOnHide: true,\n as: 'nav',\n})\nconst emits = defineEmits<NavigationMenuRootEmits>()\n\ndefineSlots<{\n default: (props: {\n /** Current input values */\n modelValue: typeof modelValue.value\n }) => any\n}>()\n\nconst modelValue = useVModel(props, 'modelValue', emits, {\n defaultValue: props.defaultValue ?? '',\n passive: (props.modelValue === undefined) as false,\n}) as Ref<string>\nconst previousValue = ref('')\n\nconst { forwardRef, currentElement: rootNavigationMenu } = useForwardExpose()\n\nconst indicatorTrack = ref<HTMLElement>()\nconst viewport = ref<HTMLElement>()\nconst activeTrigger = ref<HTMLElement>()\n\nconst { getItems, CollectionSlot } = useCollection({ key: 'NavigationMenu', isProvider: true })\n\nconst { delayDuration, skipDelayDuration, dir: propDir, disableClickTrigger, disableHoverTrigger, unmountOnHide } = toRefs(props)\nconst dir = useDirection(propDir)\n\nconst isDelaySkipped = refAutoReset(false, skipDelayDuration)\nconst computedDelay = computed(() => {\n const isOpen = modelValue.value !== ''\n if (isOpen || isDelaySkipped.value)\n return 150 // 150ms for user to switch trigger or move into content view\n else return delayDuration.value\n})\n\nconst debouncedFn = useDebounceFn((val?: string) => {\n // passing `undefined` meant to reset the debounce timer\n if (typeof val === 'string') {\n previousValue.value = modelValue.value\n modelValue.value = val\n }\n}, computedDelay)\n\nwatchEffect(() => {\n if (!modelValue.value)\n return\n\n const items = getItems().map(i => i.ref)\n activeTrigger.value = items.find(item =>\n item.id.includes(modelValue.value),\n )\n})\n\nprovideNavigationMenuContext({\n isRootMenu: true,\n modelValue,\n previousValue,\n baseId: useId(undefined, 'reka-navigation-menu'),\n disableClickTrigger,\n disableHoverTrigger,\n dir,\n unmountOnHide,\n orientation: props.orientation,\n rootNavigationMenu,\n indicatorTrack,\n activeTrigger,\n onIndicatorTrackChange: (val) => {\n indicatorTrack.value = val\n },\n viewport,\n onViewportChange: (val) => {\n viewport.value = val\n },\n onTriggerEnter: (val) => {\n debouncedFn(val)\n },\n onTriggerLeave: () => {\n isDelaySkipped.value = true\n debouncedFn('')\n },\n onContentEnter: () => {\n debouncedFn()\n },\n onContentLeave: () => {\n if (!props.disablePointerLeaveClose)\n debouncedFn('')\n },\n onItemSelect: (val) => {\n // When selecting item we trigger update immediately\n previousValue.value = modelValue.value\n modelValue.value = val\n },\n onItemDismiss: () => {\n previousValue.value = modelValue.value\n modelValue.value = ''\n },\n})\n</script>\n\n<template>\n <CollectionSlot>\n <Primitive\n :ref=\"forwardRef\"\n aria-label=\"Main\"\n :as=\"as\"\n :as-child=\"asChild\"\n :data-orientation=\"orientation\"\n :dir=\"dir\"\n data-reka-navigation-menu\n >\n <slot :model-value=\"modelValue\" />\n </Primitive>\n </CollectionSlot>\n</template>\n"],"names":["createContext","useVModel","ref","useForwardExpose","useCollection","toRefs","useDirection","refAutoReset","computed","useDebounceFn","watchEffect","useId"],"mappings":"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"}
@@ -1,17 +1,17 @@
1
- import { defineComponent, ref, toRefs, computed, watchEffect, openBlock, createBlock, unref, withCtx, createVNode, renderSlot } from 'vue';
1
+ import { defineComponent, ref, toRefs, computed, watchEffect, createBlock, openBlock, unref, withCtx, createVNode, renderSlot } from 'vue';
2
2
  import { useVModel, refAutoReset, useDebounceFn } from '@vueuse/core';
3
3
  import { u as useCollection } from '../Collection/Collection.js';
4
+ import { c as createContext } from '../shared/createContext.js';
4
5
  import { u as useForwardExpose } from '../shared/useForwardExpose.js';
5
6
  import { u as useDirection } from '../shared/useDirection.js';
6
7
  import { u as useId } from '../shared/useId.js';
7
8
  import { P as Primitive } from '../Primitive/Primitive.js';
8
- import { c as createContext } from '../shared/createContext.js';
9
9
 
10
10
  const [injectNavigationMenuContext, provideNavigationMenuContext] = createContext(["NavigationMenuRoot", "NavigationMenuSub"], "NavigationMenuContext");
11
11
  const _sfc_main = /* @__PURE__ */ defineComponent({
12
12
  __name: "NavigationMenuRoot",
13
13
  props: {
14
- modelValue: { default: undefined },
14
+ modelValue: { default: void 0 },
15
15
  defaultValue: {},
16
16
  dir: {},
17
17
  orientation: { default: "horizontal" },
@@ -30,7 +30,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
30
30
  const emits = __emit;
31
31
  const modelValue = useVModel(props, "modelValue", emits, {
32
32
  defaultValue: props.defaultValue ?? "",
33
- passive: props.modelValue === undefined
33
+ passive: props.modelValue === void 0
34
34
  });
35
35
  const previousValue = ref("");
36
36
  const { forwardRef, currentElement: rootNavigationMenu } = useForwardExpose();
@@ -65,7 +65,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
65
65
  isRootMenu: true,
66
66
  modelValue,
67
67
  previousValue,
68
- baseId: useId(undefined, "reka-navigation-menu"),
68
+ baseId: useId(void 0, "reka-navigation-menu"),
69
69
  disableClickTrigger,
70
70
  disableHoverTrigger,
71
71
  dir,
@@ -1 +1 @@
1
- {"version":3,"file":"NavigationMenuRoot.js","sources":["../../src/NavigationMenu/NavigationMenuRoot.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { Ref } from 'vue'\n\nimport type { PrimitiveProps } from '@/Primitive'\nimport type { Direction, Orientation } from './utils'\nimport { createContext, useDirection, useForwardExpose, useId } from '@/shared'\nimport { useCollection } from '@/Collection'\n\nexport interface NavigationMenuRootProps extends PrimitiveProps {\n /** The controlled value of the menu item to activate. Can be used as `v-model`. */\n modelValue?: string\n /**\n * The value of the menu item that should be active when initially rendered.\n *\n * Use when you do not need to control the value state.\n */\n defaultValue?: string\n /**\n * The reading direction of the combobox when applicable.\n *\n * If omitted, inherits globally from `ConfigProvider` or assumes LTR (left-to-right) reading mode.\n */\n dir?: Direction\n /** The orientation of the menu. */\n orientation?: Orientation\n /**\n * The duration from when the pointer enters the trigger until the tooltip gets opened.\n * @defaultValue 200\n */\n delayDuration?: number\n /**\n * How much time a user has to enter another trigger without incurring a delay again.\n * @defaultValue 300\n */\n skipDelayDuration?: number\n\n /**\n * If `true`, menu cannot be open by click on trigger\n * @defaultValue false\n */\n disableClickTrigger?: boolean\n /**\n * If `true`, menu cannot be open by hover on trigger\n * @defaultValue false\n */\n disableHoverTrigger?: boolean\n /**\n * If `true`, menu will not close during pointer leave event\n * @defaultValue false\n */\n disablePointerLeaveClose?: boolean\n\n /**\n * When `true`, the element will be unmounted on closed state.\n *\n * @defaultValue `true`\n */\n unmountOnHide?: boolean\n}\nexport type NavigationMenuRootEmits = {\n /** Event handler called when the value changes. */\n 'update:modelValue': [value: string]\n}\n\nexport interface NavigationMenuContext {\n isRootMenu: boolean\n modelValue: Ref<string>\n previousValue: Ref<string>\n baseId: string\n dir: Ref<Direction>\n orientation: Orientation\n disableClickTrigger: Ref<boolean>\n disableHoverTrigger: Ref<boolean>\n unmountOnHide: Ref<boolean>\n rootNavigationMenu: Ref<HTMLElement | undefined>\n activeTrigger: Ref<HTMLElement | undefined>\n indicatorTrack: Ref<HTMLElement | undefined>\n onIndicatorTrackChange: (indicatorTrack: HTMLElement | undefined) => void\n viewport: Ref<HTMLElement | undefined>\n onViewportChange: (viewport: HTMLElement | undefined) => void\n onTriggerEnter: (itemValue: string) => void\n onTriggerLeave: () => void\n onContentEnter: (itemValue: string) => void\n onContentLeave: () => void\n onItemSelect: (itemValue: string) => void\n onItemDismiss: () => void\n}\n\nexport const [injectNavigationMenuContext, provideNavigationMenuContext]\n = createContext<NavigationMenuContext>(['NavigationMenuRoot', 'NavigationMenuSub'], 'NavigationMenuContext')\n</script>\n\n<script setup lang=\"ts\">\nimport {\n computed,\n ref,\n toRefs,\n watchEffect,\n} from 'vue'\nimport { refAutoReset, useDebounceFn, useVModel } from '@vueuse/core'\nimport {\n Primitive,\n} from '@/Primitive'\n\nconst props = withDefaults(defineProps<NavigationMenuRootProps>(), {\n modelValue: undefined,\n delayDuration: 200,\n skipDelayDuration: 300,\n orientation: 'horizontal',\n disableClickTrigger: false,\n disableHoverTrigger: false,\n unmountOnHide: true,\n as: 'nav',\n})\nconst emits = defineEmits<NavigationMenuRootEmits>()\n\ndefineSlots<{\n default: (props: {\n /** Current input values */\n modelValue: typeof modelValue.value\n }) => any\n}>()\n\nconst modelValue = useVModel(props, 'modelValue', emits, {\n defaultValue: props.defaultValue ?? '',\n passive: (props.modelValue === undefined) as false,\n}) as Ref<string>\nconst previousValue = ref('')\n\nconst { forwardRef, currentElement: rootNavigationMenu } = useForwardExpose()\n\nconst indicatorTrack = ref<HTMLElement>()\nconst viewport = ref<HTMLElement>()\nconst activeTrigger = ref<HTMLElement>()\n\nconst { getItems, CollectionSlot } = useCollection({ key: 'NavigationMenu', isProvider: true })\n\nconst { delayDuration, skipDelayDuration, dir: propDir, disableClickTrigger, disableHoverTrigger, unmountOnHide } = toRefs(props)\nconst dir = useDirection(propDir)\n\nconst isDelaySkipped = refAutoReset(false, skipDelayDuration)\nconst computedDelay = computed(() => {\n const isOpen = modelValue.value !== ''\n if (isOpen || isDelaySkipped.value)\n return 150 // 150ms for user to switch trigger or move into content view\n else return delayDuration.value\n})\n\nconst debouncedFn = useDebounceFn((val?: string) => {\n // passing `undefined` meant to reset the debounce timer\n if (typeof val === 'string') {\n previousValue.value = modelValue.value\n modelValue.value = val\n }\n}, computedDelay)\n\nwatchEffect(() => {\n if (!modelValue.value)\n return\n\n const items = getItems().map(i => i.ref)\n activeTrigger.value = items.find(item =>\n item.id.includes(modelValue.value),\n )\n})\n\nprovideNavigationMenuContext({\n isRootMenu: true,\n modelValue,\n previousValue,\n baseId: useId(undefined, 'reka-navigation-menu'),\n disableClickTrigger,\n disableHoverTrigger,\n dir,\n unmountOnHide,\n orientation: props.orientation,\n rootNavigationMenu,\n indicatorTrack,\n activeTrigger,\n onIndicatorTrackChange: (val) => {\n indicatorTrack.value = val\n },\n viewport,\n onViewportChange: (val) => {\n viewport.value = val\n },\n onTriggerEnter: (val) => {\n debouncedFn(val)\n },\n onTriggerLeave: () => {\n isDelaySkipped.value = true\n debouncedFn('')\n },\n onContentEnter: () => {\n debouncedFn()\n },\n onContentLeave: () => {\n if (!props.disablePointerLeaveClose)\n debouncedFn('')\n },\n onItemSelect: (val) => {\n // When selecting item we trigger update immediately\n previousValue.value = modelValue.value\n modelValue.value = val\n },\n onItemDismiss: () => {\n previousValue.value = modelValue.value\n modelValue.value = ''\n },\n})\n</script>\n\n<template>\n <CollectionSlot>\n <Primitive\n :ref=\"forwardRef\"\n aria-label=\"Main\"\n :as=\"as\"\n :as-child=\"asChild\"\n :data-orientation=\"orientation\"\n :dir=\"dir\"\n data-reka-navigation-menu\n >\n <slot :model-value=\"modelValue\" />\n </Primitive>\n </CollectionSlot>\n</template>\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"NavigationMenuRoot.js","sources":["../../src/NavigationMenu/NavigationMenuRoot.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { Ref } from 'vue'\n\nimport type { PrimitiveProps } from '@/Primitive'\nimport type { Direction, Orientation } from './utils'\nimport { createContext, useDirection, useForwardExpose, useId } from '@/shared'\nimport { useCollection } from '@/Collection'\n\nexport interface NavigationMenuRootProps extends PrimitiveProps {\n /** The controlled value of the menu item to activate. Can be used as `v-model`. */\n modelValue?: string\n /**\n * The value of the menu item that should be active when initially rendered.\n *\n * Use when you do not need to control the value state.\n */\n defaultValue?: string\n /**\n * The reading direction of the combobox when applicable.\n *\n * If omitted, inherits globally from `ConfigProvider` or assumes LTR (left-to-right) reading mode.\n */\n dir?: Direction\n /** The orientation of the menu. */\n orientation?: Orientation\n /**\n * The duration from when the pointer enters the trigger until the tooltip gets opened.\n * @defaultValue 200\n */\n delayDuration?: number\n /**\n * How much time a user has to enter another trigger without incurring a delay again.\n * @defaultValue 300\n */\n skipDelayDuration?: number\n\n /**\n * If `true`, menu cannot be open by click on trigger\n * @defaultValue false\n */\n disableClickTrigger?: boolean\n /**\n * If `true`, menu cannot be open by hover on trigger\n * @defaultValue false\n */\n disableHoverTrigger?: boolean\n /**\n * If `true`, menu will not close during pointer leave event\n * @defaultValue false\n */\n disablePointerLeaveClose?: boolean\n\n /**\n * When `true`, the element will be unmounted on closed state.\n *\n * @defaultValue `true`\n */\n unmountOnHide?: boolean\n}\nexport type NavigationMenuRootEmits = {\n /** Event handler called when the value changes. */\n 'update:modelValue': [value: string]\n}\n\nexport interface NavigationMenuContext {\n isRootMenu: boolean\n modelValue: Ref<string>\n previousValue: Ref<string>\n baseId: string\n dir: Ref<Direction>\n orientation: Orientation\n disableClickTrigger: Ref<boolean>\n disableHoverTrigger: Ref<boolean>\n unmountOnHide: Ref<boolean>\n rootNavigationMenu: Ref<HTMLElement | undefined>\n activeTrigger: Ref<HTMLElement | undefined>\n indicatorTrack: Ref<HTMLElement | undefined>\n onIndicatorTrackChange: (indicatorTrack: HTMLElement | undefined) => void\n viewport: Ref<HTMLElement | undefined>\n onViewportChange: (viewport: HTMLElement | undefined) => void\n onTriggerEnter: (itemValue: string) => void\n onTriggerLeave: () => void\n onContentEnter: (itemValue: string) => void\n onContentLeave: () => void\n onItemSelect: (itemValue: string) => void\n onItemDismiss: () => void\n}\n\nexport const [injectNavigationMenuContext, provideNavigationMenuContext]\n = createContext<NavigationMenuContext>(['NavigationMenuRoot', 'NavigationMenuSub'], 'NavigationMenuContext')\n</script>\n\n<script setup lang=\"ts\">\nimport {\n computed,\n ref,\n toRefs,\n watchEffect,\n} from 'vue'\nimport { refAutoReset, useDebounceFn, useVModel } from '@vueuse/core'\nimport {\n Primitive,\n} from '@/Primitive'\n\nconst props = withDefaults(defineProps<NavigationMenuRootProps>(), {\n modelValue: undefined,\n delayDuration: 200,\n skipDelayDuration: 300,\n orientation: 'horizontal',\n disableClickTrigger: false,\n disableHoverTrigger: false,\n unmountOnHide: true,\n as: 'nav',\n})\nconst emits = defineEmits<NavigationMenuRootEmits>()\n\ndefineSlots<{\n default: (props: {\n /** Current input values */\n modelValue: typeof modelValue.value\n }) => any\n}>()\n\nconst modelValue = useVModel(props, 'modelValue', emits, {\n defaultValue: props.defaultValue ?? '',\n passive: (props.modelValue === undefined) as false,\n}) as Ref<string>\nconst previousValue = ref('')\n\nconst { forwardRef, currentElement: rootNavigationMenu } = useForwardExpose()\n\nconst indicatorTrack = ref<HTMLElement>()\nconst viewport = ref<HTMLElement>()\nconst activeTrigger = ref<HTMLElement>()\n\nconst { getItems, CollectionSlot } = useCollection({ key: 'NavigationMenu', isProvider: true })\n\nconst { delayDuration, skipDelayDuration, dir: propDir, disableClickTrigger, disableHoverTrigger, unmountOnHide } = toRefs(props)\nconst dir = useDirection(propDir)\n\nconst isDelaySkipped = refAutoReset(false, skipDelayDuration)\nconst computedDelay = computed(() => {\n const isOpen = modelValue.value !== ''\n if (isOpen || isDelaySkipped.value)\n return 150 // 150ms for user to switch trigger or move into content view\n else return delayDuration.value\n})\n\nconst debouncedFn = useDebounceFn((val?: string) => {\n // passing `undefined` meant to reset the debounce timer\n if (typeof val === 'string') {\n previousValue.value = modelValue.value\n modelValue.value = val\n }\n}, computedDelay)\n\nwatchEffect(() => {\n if (!modelValue.value)\n return\n\n const items = getItems().map(i => i.ref)\n activeTrigger.value = items.find(item =>\n item.id.includes(modelValue.value),\n )\n})\n\nprovideNavigationMenuContext({\n isRootMenu: true,\n modelValue,\n previousValue,\n baseId: useId(undefined, 'reka-navigation-menu'),\n disableClickTrigger,\n disableHoverTrigger,\n dir,\n unmountOnHide,\n orientation: props.orientation,\n rootNavigationMenu,\n indicatorTrack,\n activeTrigger,\n onIndicatorTrackChange: (val) => {\n indicatorTrack.value = val\n },\n viewport,\n onViewportChange: (val) => {\n viewport.value = val\n },\n onTriggerEnter: (val) => {\n debouncedFn(val)\n },\n onTriggerLeave: () => {\n isDelaySkipped.value = true\n debouncedFn('')\n },\n onContentEnter: () => {\n debouncedFn()\n },\n onContentLeave: () => {\n if (!props.disablePointerLeaveClose)\n debouncedFn('')\n },\n onItemSelect: (val) => {\n // When selecting item we trigger update immediately\n previousValue.value = modelValue.value\n modelValue.value = val\n },\n onItemDismiss: () => {\n previousValue.value = modelValue.value\n modelValue.value = ''\n },\n})\n</script>\n\n<template>\n <CollectionSlot>\n <Primitive\n :ref=\"forwardRef\"\n aria-label=\"Main\"\n :as=\"as\"\n :as-child=\"asChild\"\n :data-orientation=\"orientation\"\n :dir=\"dir\"\n data-reka-navigation-menu\n >\n <slot :model-value=\"modelValue\" />\n </Primitive>\n </CollectionSlot>\n</template>\n"],"names":[],"mappings":"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"}
@@ -22,7 +22,7 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
22
22
  const emits = __emit;
23
23
  const modelValue = core.useVModel(props, "modelValue", emits, {
24
24
  defaultValue: props.defaultValue ?? "",
25
- passive: props.modelValue === undefined
25
+ passive: props.modelValue === void 0
26
26
  });
27
27
  const previousValue = vue.ref("");
28
28
  const menuContext = NavigationMenu_NavigationMenuRoot.injectNavigationMenuContext();
@@ -1,4 +1,4 @@
1
- import { defineComponent, ref, watchEffect, openBlock, createBlock, unref, withCtx, createVNode, renderSlot } from 'vue';
1
+ import { defineComponent, ref, watchEffect, createBlock, openBlock, unref, withCtx, createVNode, renderSlot } from 'vue';
2
2
  import { useVModel } from '@vueuse/core';
3
3
  import { u as useCollection } from '../Collection/Collection.js';
4
4
  import { u as useForwardExpose } from '../shared/useForwardExpose.js';
@@ -20,7 +20,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
20
20
  const emits = __emit;
21
21
  const modelValue = useVModel(props, "modelValue", emits, {
22
22
  defaultValue: props.defaultValue ?? "",
23
- passive: props.modelValue === undefined
23
+ passive: props.modelValue === void 0
24
24
  });
25
25
  const previousValue = ref("");
26
26
  const menuContext = injectNavigationMenuContext();
@@ -85,7 +85,7 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
85
85
  }
86
86
  function setFocusProxyRef(node) {
87
87
  itemContext.focusProxyRef.value = core.unrefElement(node);
88
- return undefined;
88
+ return void 0;
89
89
  }
90
90
  function handleVisuallyHiddenFocus(ev) {
91
91
  const content = document.getElementById(itemContext.contentId);
@@ -103,7 +103,7 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
103
103
  id: triggerId.value,
104
104
  ref: vue.unref(forwardRef),
105
105
  disabled: _ctx.disabled,
106
- "data-disabled": _ctx.disabled ? "" : undefined,
106
+ "data-disabled": _ctx.disabled ? "" : void 0,
107
107
  "data-state": vue.unref(NavigationMenu_utils.getOpenState)(open.value),
108
108
  "data-navigation-menu-trigger": "",
109
109
  "aria-expanded": open.value,
@@ -1 +1 @@
1
- {"version":3,"file":"NavigationMenuTrigger.cjs","sources":["../../src/NavigationMenu/NavigationMenuTrigger.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { VNode } from 'vue'\nimport type { PrimitiveProps } from '@/Primitive'\nimport { useForwardExpose } from '@/shared'\nimport { useCollection } from '@/Collection'\n\nexport interface NavigationMenuTriggerProps extends PrimitiveProps {\n /** When `true`, prevents the user from interacting with item */\n disabled?: boolean\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { computed, onMounted, ref } from 'vue'\nimport { refAutoReset, unrefElement } from '@vueuse/core'\nimport { injectNavigationMenuContext } from './NavigationMenuRoot.vue'\nimport { injectNavigationMenuItemContext } from './NavigationMenuItem.vue'\nimport { getOpenState, makeContentId, makeTriggerId } from './utils'\nimport {\n Primitive,\n} from '@/Primitive'\nimport { VisuallyHidden } from '@/VisuallyHidden'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst props = withDefaults(defineProps<NavigationMenuTriggerProps>(), {\n as: 'button',\n})\n\nconst menuContext = injectNavigationMenuContext()\nconst itemContext = injectNavigationMenuItemContext()\n\nconst { CollectionItem } = useCollection({ key: 'NavigationMenu' })\nconst { forwardRef, currentElement: triggerElement } = useForwardExpose()\nconst triggerId = ref('')\nconst contentId = ref('')\n\nconst hasPointerMoveOpenedRef = refAutoReset(false, 300)\nconst wasClickCloseRef = ref(false)\n\nconst open = computed(() => itemContext.value === menuContext.modelValue.value)\n\nonMounted(() => {\n itemContext.triggerRef = triggerElement\n triggerId.value = makeTriggerId(menuContext.baseId, itemContext.value)\n contentId.value = makeContentId(menuContext.baseId, itemContext.value)\n})\n\nfunction handlePointerEnter() {\n if (menuContext.disableHoverTrigger.value)\n return\n\n wasClickCloseRef.value = false\n itemContext.wasEscapeCloseRef.value = false\n}\n\nfunction handlePointerMove(ev: PointerEvent) {\n if (menuContext.disableHoverTrigger.value)\n return\n\n if (ev.pointerType === 'mouse') {\n if (\n props.disabled\n || wasClickCloseRef.value\n || itemContext.wasEscapeCloseRef.value\n || hasPointerMoveOpenedRef.value\n ) {\n return\n }\n\n menuContext.onTriggerEnter(itemContext.value)\n hasPointerMoveOpenedRef.value = true\n }\n}\n\nfunction handlePointerLeave(ev: PointerEvent) {\n if (menuContext.disableHoverTrigger.value)\n return\n\n if (ev.pointerType === 'mouse') {\n if (props.disabled)\n return\n menuContext.onTriggerLeave()\n hasPointerMoveOpenedRef.value = false\n }\n}\n\nfunction handleClick(event: PointerEvent) {\n if (event.pointerType === 'mouse' && menuContext.disableClickTrigger.value)\n return\n\n // if open via pointermove, we prevent click event\n if (hasPointerMoveOpenedRef.value)\n return\n\n if (open.value)\n menuContext.onItemSelect('')\n else menuContext.onItemSelect(itemContext.value)\n\n wasClickCloseRef.value = open.value\n}\n\nfunction handleKeydown(ev: KeyboardEvent) {\n const verticalEntryKey = menuContext.dir.value === 'rtl' ? 'ArrowLeft' : 'ArrowRight'\n const entryKey = { horizontal: 'ArrowDown', vertical: verticalEntryKey }[\n menuContext.orientation\n ]\n if (open.value && ev.key === entryKey) {\n itemContext.onEntryKeyDown()\n // Prevent FocusGroupItem from handling the event\n ev.preventDefault()\n ev.stopPropagation()\n }\n}\n\nfunction setFocusProxyRef(node: VNode) {\n // @ts-expect-error unrefElement expect MaybeRef, but also support Vnode\n itemContext.focusProxyRef.value = unrefElement(node)\n return undefined\n}\n\nfunction handleVisuallyHiddenFocus(ev: FocusEvent) {\n const content = document.getElementById(itemContext.contentId)\n const prevFocusedElement = ev.relatedTarget as HTMLElement | null\n\n const wasTriggerFocused = prevFocusedElement === triggerElement.value\n const wasFocusFromContent = content?.contains(prevFocusedElement)\n\n if (wasTriggerFocused || !wasFocusFromContent)\n itemContext.onFocusProxyEnter(wasTriggerFocused ? 'start' : 'end')\n}\n</script>\n\n<template>\n <CollectionItem>\n <Primitive\n :id=\"triggerId\"\n :ref=\"forwardRef\"\n :disabled=\"disabled\"\n :data-disabled=\"disabled ? '' : undefined\"\n :data-state=\"getOpenState(open)\"\n data-navigation-menu-trigger\n :aria-expanded=\"open\"\n :aria-controls=\"contentId\"\n :as-child=\"props.asChild\"\n :as=\"as\"\n v-bind=\"$attrs\"\n @pointerenter=\"handlePointerEnter\"\n @pointermove=\"handlePointerMove\"\n @pointerleave=\"handlePointerLeave\"\n @click=\"handleClick\"\n @keydown=\"handleKeydown\"\n >\n <slot />\n </Primitive>\n </CollectionItem>\n\n <template v-if=\"open\">\n <VisuallyHidden\n :ref=\"setFocusProxyRef\"\n aria-hidden=\"true\"\n :tabindex=\"0\"\n @focus=\"handleVisuallyHiddenFocus\"\n />\n <span\n v-if=\"menuContext.viewport\"\n :aria-owns=\"contentId\"\n />\n </template>\n</template>\n"],"names":["injectNavigationMenuContext","injectNavigationMenuItemContext","useCollection","useForwardExpose","ref","refAutoReset","computed","onMounted","makeTriggerId","makeContentId","unrefElement"],"mappings":"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"}
1
+ {"version":3,"file":"NavigationMenuTrigger.cjs","sources":["../../src/NavigationMenu/NavigationMenuTrigger.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { VNode } from 'vue'\nimport type { PrimitiveProps } from '@/Primitive'\nimport { useForwardExpose } from '@/shared'\nimport { useCollection } from '@/Collection'\n\nexport interface NavigationMenuTriggerProps extends PrimitiveProps {\n /** When `true`, prevents the user from interacting with item */\n disabled?: boolean\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { computed, onMounted, ref } from 'vue'\nimport { refAutoReset, unrefElement } from '@vueuse/core'\nimport { injectNavigationMenuContext } from './NavigationMenuRoot.vue'\nimport { injectNavigationMenuItemContext } from './NavigationMenuItem.vue'\nimport { getOpenState, makeContentId, makeTriggerId } from './utils'\nimport {\n Primitive,\n} from '@/Primitive'\nimport { VisuallyHidden } from '@/VisuallyHidden'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst props = withDefaults(defineProps<NavigationMenuTriggerProps>(), {\n as: 'button',\n})\n\nconst menuContext = injectNavigationMenuContext()\nconst itemContext = injectNavigationMenuItemContext()\n\nconst { CollectionItem } = useCollection({ key: 'NavigationMenu' })\nconst { forwardRef, currentElement: triggerElement } = useForwardExpose()\nconst triggerId = ref('')\nconst contentId = ref('')\n\nconst hasPointerMoveOpenedRef = refAutoReset(false, 300)\nconst wasClickCloseRef = ref(false)\n\nconst open = computed(() => itemContext.value === menuContext.modelValue.value)\n\nonMounted(() => {\n itemContext.triggerRef = triggerElement\n triggerId.value = makeTriggerId(menuContext.baseId, itemContext.value)\n contentId.value = makeContentId(menuContext.baseId, itemContext.value)\n})\n\nfunction handlePointerEnter() {\n if (menuContext.disableHoverTrigger.value)\n return\n\n wasClickCloseRef.value = false\n itemContext.wasEscapeCloseRef.value = false\n}\n\nfunction handlePointerMove(ev: PointerEvent) {\n if (menuContext.disableHoverTrigger.value)\n return\n\n if (ev.pointerType === 'mouse') {\n if (\n props.disabled\n || wasClickCloseRef.value\n || itemContext.wasEscapeCloseRef.value\n || hasPointerMoveOpenedRef.value\n ) {\n return\n }\n\n menuContext.onTriggerEnter(itemContext.value)\n hasPointerMoveOpenedRef.value = true\n }\n}\n\nfunction handlePointerLeave(ev: PointerEvent) {\n if (menuContext.disableHoverTrigger.value)\n return\n\n if (ev.pointerType === 'mouse') {\n if (props.disabled)\n return\n menuContext.onTriggerLeave()\n hasPointerMoveOpenedRef.value = false\n }\n}\n\nfunction handleClick(event: PointerEvent) {\n if (event.pointerType === 'mouse' && menuContext.disableClickTrigger.value)\n return\n\n // if open via pointermove, we prevent click event\n if (hasPointerMoveOpenedRef.value)\n return\n\n if (open.value)\n menuContext.onItemSelect('')\n else menuContext.onItemSelect(itemContext.value)\n\n wasClickCloseRef.value = open.value\n}\n\nfunction handleKeydown(ev: KeyboardEvent) {\n const verticalEntryKey = menuContext.dir.value === 'rtl' ? 'ArrowLeft' : 'ArrowRight'\n const entryKey = { horizontal: 'ArrowDown', vertical: verticalEntryKey }[\n menuContext.orientation\n ]\n if (open.value && ev.key === entryKey) {\n itemContext.onEntryKeyDown()\n // Prevent FocusGroupItem from handling the event\n ev.preventDefault()\n ev.stopPropagation()\n }\n}\n\nfunction setFocusProxyRef(node: VNode) {\n // @ts-expect-error unrefElement expect MaybeRef, but also support Vnode\n itemContext.focusProxyRef.value = unrefElement(node)\n return undefined\n}\n\nfunction handleVisuallyHiddenFocus(ev: FocusEvent) {\n const content = document.getElementById(itemContext.contentId)\n const prevFocusedElement = ev.relatedTarget as HTMLElement | null\n\n const wasTriggerFocused = prevFocusedElement === triggerElement.value\n const wasFocusFromContent = content?.contains(prevFocusedElement)\n\n if (wasTriggerFocused || !wasFocusFromContent)\n itemContext.onFocusProxyEnter(wasTriggerFocused ? 'start' : 'end')\n}\n</script>\n\n<template>\n <CollectionItem>\n <Primitive\n :id=\"triggerId\"\n :ref=\"forwardRef\"\n :disabled=\"disabled\"\n :data-disabled=\"disabled ? '' : undefined\"\n :data-state=\"getOpenState(open)\"\n data-navigation-menu-trigger\n :aria-expanded=\"open\"\n :aria-controls=\"contentId\"\n :as-child=\"props.asChild\"\n :as=\"as\"\n v-bind=\"$attrs\"\n @pointerenter=\"handlePointerEnter\"\n @pointermove=\"handlePointerMove\"\n @pointerleave=\"handlePointerLeave\"\n @click=\"handleClick\"\n @keydown=\"handleKeydown\"\n >\n <slot />\n </Primitive>\n </CollectionItem>\n\n <template v-if=\"open\">\n <VisuallyHidden\n :ref=\"setFocusProxyRef\"\n aria-hidden=\"true\"\n :tabindex=\"0\"\n @focus=\"handleVisuallyHiddenFocus\"\n />\n <span\n v-if=\"menuContext.viewport\"\n :aria-owns=\"contentId\"\n />\n </template>\n</template>\n"],"names":["injectNavigationMenuContext","injectNavigationMenuItemContext","useCollection","useForwardExpose","ref","refAutoReset","computed","onMounted","makeTriggerId","makeContentId","unrefElement"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { defineComponent, ref, computed, onMounted, openBlock, createElementBlock, Fragment, createVNode, unref, withCtx, mergeProps, renderSlot, createCommentVNode } from 'vue';
1
+ import { defineComponent, ref, computed, onMounted, createElementBlock, openBlock, Fragment, createVNode, createCommentVNode, unref, withCtx, mergeProps, renderSlot } from 'vue';
2
2
  import { refAutoReset, unrefElement } from '@vueuse/core';
3
3
  import { m as makeTriggerId, a as makeContentId, g as getOpenState } from './utils.js';
4
4
  import { u as useCollection } from '../Collection/Collection.js';
@@ -83,7 +83,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
83
83
  }
84
84
  function setFocusProxyRef(node) {
85
85
  itemContext.focusProxyRef.value = unrefElement(node);
86
- return undefined;
86
+ return void 0;
87
87
  }
88
88
  function handleVisuallyHiddenFocus(ev) {
89
89
  const content = document.getElementById(itemContext.contentId);
@@ -101,7 +101,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
101
101
  id: triggerId.value,
102
102
  ref: unref(forwardRef),
103
103
  disabled: _ctx.disabled,
104
- "data-disabled": _ctx.disabled ? "" : undefined,
104
+ "data-disabled": _ctx.disabled ? "" : void 0,
105
105
  "data-state": unref(getOpenState)(open.value),
106
106
  "data-navigation-menu-trigger": "",
107
107
  "aria-expanded": open.value,
@@ -1 +1 @@
1
- {"version":3,"file":"NavigationMenuTrigger.js","sources":["../../src/NavigationMenu/NavigationMenuTrigger.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { VNode } from 'vue'\nimport type { PrimitiveProps } from '@/Primitive'\nimport { useForwardExpose } from '@/shared'\nimport { useCollection } from '@/Collection'\n\nexport interface NavigationMenuTriggerProps extends PrimitiveProps {\n /** When `true`, prevents the user from interacting with item */\n disabled?: boolean\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { computed, onMounted, ref } from 'vue'\nimport { refAutoReset, unrefElement } from '@vueuse/core'\nimport { injectNavigationMenuContext } from './NavigationMenuRoot.vue'\nimport { injectNavigationMenuItemContext } from './NavigationMenuItem.vue'\nimport { getOpenState, makeContentId, makeTriggerId } from './utils'\nimport {\n Primitive,\n} from '@/Primitive'\nimport { VisuallyHidden } from '@/VisuallyHidden'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst props = withDefaults(defineProps<NavigationMenuTriggerProps>(), {\n as: 'button',\n})\n\nconst menuContext = injectNavigationMenuContext()\nconst itemContext = injectNavigationMenuItemContext()\n\nconst { CollectionItem } = useCollection({ key: 'NavigationMenu' })\nconst { forwardRef, currentElement: triggerElement } = useForwardExpose()\nconst triggerId = ref('')\nconst contentId = ref('')\n\nconst hasPointerMoveOpenedRef = refAutoReset(false, 300)\nconst wasClickCloseRef = ref(false)\n\nconst open = computed(() => itemContext.value === menuContext.modelValue.value)\n\nonMounted(() => {\n itemContext.triggerRef = triggerElement\n triggerId.value = makeTriggerId(menuContext.baseId, itemContext.value)\n contentId.value = makeContentId(menuContext.baseId, itemContext.value)\n})\n\nfunction handlePointerEnter() {\n if (menuContext.disableHoverTrigger.value)\n return\n\n wasClickCloseRef.value = false\n itemContext.wasEscapeCloseRef.value = false\n}\n\nfunction handlePointerMove(ev: PointerEvent) {\n if (menuContext.disableHoverTrigger.value)\n return\n\n if (ev.pointerType === 'mouse') {\n if (\n props.disabled\n || wasClickCloseRef.value\n || itemContext.wasEscapeCloseRef.value\n || hasPointerMoveOpenedRef.value\n ) {\n return\n }\n\n menuContext.onTriggerEnter(itemContext.value)\n hasPointerMoveOpenedRef.value = true\n }\n}\n\nfunction handlePointerLeave(ev: PointerEvent) {\n if (menuContext.disableHoverTrigger.value)\n return\n\n if (ev.pointerType === 'mouse') {\n if (props.disabled)\n return\n menuContext.onTriggerLeave()\n hasPointerMoveOpenedRef.value = false\n }\n}\n\nfunction handleClick(event: PointerEvent) {\n if (event.pointerType === 'mouse' && menuContext.disableClickTrigger.value)\n return\n\n // if open via pointermove, we prevent click event\n if (hasPointerMoveOpenedRef.value)\n return\n\n if (open.value)\n menuContext.onItemSelect('')\n else menuContext.onItemSelect(itemContext.value)\n\n wasClickCloseRef.value = open.value\n}\n\nfunction handleKeydown(ev: KeyboardEvent) {\n const verticalEntryKey = menuContext.dir.value === 'rtl' ? 'ArrowLeft' : 'ArrowRight'\n const entryKey = { horizontal: 'ArrowDown', vertical: verticalEntryKey }[\n menuContext.orientation\n ]\n if (open.value && ev.key === entryKey) {\n itemContext.onEntryKeyDown()\n // Prevent FocusGroupItem from handling the event\n ev.preventDefault()\n ev.stopPropagation()\n }\n}\n\nfunction setFocusProxyRef(node: VNode) {\n // @ts-expect-error unrefElement expect MaybeRef, but also support Vnode\n itemContext.focusProxyRef.value = unrefElement(node)\n return undefined\n}\n\nfunction handleVisuallyHiddenFocus(ev: FocusEvent) {\n const content = document.getElementById(itemContext.contentId)\n const prevFocusedElement = ev.relatedTarget as HTMLElement | null\n\n const wasTriggerFocused = prevFocusedElement === triggerElement.value\n const wasFocusFromContent = content?.contains(prevFocusedElement)\n\n if (wasTriggerFocused || !wasFocusFromContent)\n itemContext.onFocusProxyEnter(wasTriggerFocused ? 'start' : 'end')\n}\n</script>\n\n<template>\n <CollectionItem>\n <Primitive\n :id=\"triggerId\"\n :ref=\"forwardRef\"\n :disabled=\"disabled\"\n :data-disabled=\"disabled ? '' : undefined\"\n :data-state=\"getOpenState(open)\"\n data-navigation-menu-trigger\n :aria-expanded=\"open\"\n :aria-controls=\"contentId\"\n :as-child=\"props.asChild\"\n :as=\"as\"\n v-bind=\"$attrs\"\n @pointerenter=\"handlePointerEnter\"\n @pointermove=\"handlePointerMove\"\n @pointerleave=\"handlePointerLeave\"\n @click=\"handleClick\"\n @keydown=\"handleKeydown\"\n >\n <slot />\n </Primitive>\n </CollectionItem>\n\n <template v-if=\"open\">\n <VisuallyHidden\n :ref=\"setFocusProxyRef\"\n aria-hidden=\"true\"\n :tabindex=\"0\"\n @focus=\"handleVisuallyHiddenFocus\"\n />\n <span\n v-if=\"menuContext.viewport\"\n :aria-owns=\"contentId\"\n />\n </template>\n</template>\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"NavigationMenuTrigger.js","sources":["../../src/NavigationMenu/NavigationMenuTrigger.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { VNode } from 'vue'\nimport type { PrimitiveProps } from '@/Primitive'\nimport { useForwardExpose } from '@/shared'\nimport { useCollection } from '@/Collection'\n\nexport interface NavigationMenuTriggerProps extends PrimitiveProps {\n /** When `true`, prevents the user from interacting with item */\n disabled?: boolean\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { computed, onMounted, ref } from 'vue'\nimport { refAutoReset, unrefElement } from '@vueuse/core'\nimport { injectNavigationMenuContext } from './NavigationMenuRoot.vue'\nimport { injectNavigationMenuItemContext } from './NavigationMenuItem.vue'\nimport { getOpenState, makeContentId, makeTriggerId } from './utils'\nimport {\n Primitive,\n} from '@/Primitive'\nimport { VisuallyHidden } from '@/VisuallyHidden'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst props = withDefaults(defineProps<NavigationMenuTriggerProps>(), {\n as: 'button',\n})\n\nconst menuContext = injectNavigationMenuContext()\nconst itemContext = injectNavigationMenuItemContext()\n\nconst { CollectionItem } = useCollection({ key: 'NavigationMenu' })\nconst { forwardRef, currentElement: triggerElement } = useForwardExpose()\nconst triggerId = ref('')\nconst contentId = ref('')\n\nconst hasPointerMoveOpenedRef = refAutoReset(false, 300)\nconst wasClickCloseRef = ref(false)\n\nconst open = computed(() => itemContext.value === menuContext.modelValue.value)\n\nonMounted(() => {\n itemContext.triggerRef = triggerElement\n triggerId.value = makeTriggerId(menuContext.baseId, itemContext.value)\n contentId.value = makeContentId(menuContext.baseId, itemContext.value)\n})\n\nfunction handlePointerEnter() {\n if (menuContext.disableHoverTrigger.value)\n return\n\n wasClickCloseRef.value = false\n itemContext.wasEscapeCloseRef.value = false\n}\n\nfunction handlePointerMove(ev: PointerEvent) {\n if (menuContext.disableHoverTrigger.value)\n return\n\n if (ev.pointerType === 'mouse') {\n if (\n props.disabled\n || wasClickCloseRef.value\n || itemContext.wasEscapeCloseRef.value\n || hasPointerMoveOpenedRef.value\n ) {\n return\n }\n\n menuContext.onTriggerEnter(itemContext.value)\n hasPointerMoveOpenedRef.value = true\n }\n}\n\nfunction handlePointerLeave(ev: PointerEvent) {\n if (menuContext.disableHoverTrigger.value)\n return\n\n if (ev.pointerType === 'mouse') {\n if (props.disabled)\n return\n menuContext.onTriggerLeave()\n hasPointerMoveOpenedRef.value = false\n }\n}\n\nfunction handleClick(event: PointerEvent) {\n if (event.pointerType === 'mouse' && menuContext.disableClickTrigger.value)\n return\n\n // if open via pointermove, we prevent click event\n if (hasPointerMoveOpenedRef.value)\n return\n\n if (open.value)\n menuContext.onItemSelect('')\n else menuContext.onItemSelect(itemContext.value)\n\n wasClickCloseRef.value = open.value\n}\n\nfunction handleKeydown(ev: KeyboardEvent) {\n const verticalEntryKey = menuContext.dir.value === 'rtl' ? 'ArrowLeft' : 'ArrowRight'\n const entryKey = { horizontal: 'ArrowDown', vertical: verticalEntryKey }[\n menuContext.orientation\n ]\n if (open.value && ev.key === entryKey) {\n itemContext.onEntryKeyDown()\n // Prevent FocusGroupItem from handling the event\n ev.preventDefault()\n ev.stopPropagation()\n }\n}\n\nfunction setFocusProxyRef(node: VNode) {\n // @ts-expect-error unrefElement expect MaybeRef, but also support Vnode\n itemContext.focusProxyRef.value = unrefElement(node)\n return undefined\n}\n\nfunction handleVisuallyHiddenFocus(ev: FocusEvent) {\n const content = document.getElementById(itemContext.contentId)\n const prevFocusedElement = ev.relatedTarget as HTMLElement | null\n\n const wasTriggerFocused = prevFocusedElement === triggerElement.value\n const wasFocusFromContent = content?.contains(prevFocusedElement)\n\n if (wasTriggerFocused || !wasFocusFromContent)\n itemContext.onFocusProxyEnter(wasTriggerFocused ? 'start' : 'end')\n}\n</script>\n\n<template>\n <CollectionItem>\n <Primitive\n :id=\"triggerId\"\n :ref=\"forwardRef\"\n :disabled=\"disabled\"\n :data-disabled=\"disabled ? '' : undefined\"\n :data-state=\"getOpenState(open)\"\n data-navigation-menu-trigger\n :aria-expanded=\"open\"\n :aria-controls=\"contentId\"\n :as-child=\"props.asChild\"\n :as=\"as\"\n v-bind=\"$attrs\"\n @pointerenter=\"handlePointerEnter\"\n @pointermove=\"handlePointerMove\"\n @pointerleave=\"handlePointerLeave\"\n @click=\"handleClick\"\n @keydown=\"handleKeydown\"\n >\n <slot />\n </Primitive>\n </CollectionItem>\n\n <template v-if=\"open\">\n <VisuallyHidden\n :ref=\"setFocusProxyRef\"\n aria-hidden=\"true\"\n :tabindex=\"0\"\n @focus=\"handleVisuallyHiddenFocus\"\n />\n <span\n v-if=\"menuContext.viewport\"\n :aria-owns=\"contentId\"\n />\n </template>\n</template>\n"],"names":[],"mappings":"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"}
@@ -109,8 +109,8 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
109
109
  present: _ctx.forceMount || open.value,
110
110
  "force-mount": !vue.unref(menuContext).unmountOnHide.value,
111
111
  onAfterLeave: _cache[2] || (_cache[2] = () => {
112
- size.value = undefined;
113
- position.value = undefined;
112
+ size.value = void 0;
113
+ position.value = void 0;
114
114
  })
115
115
  }, {
116
116
  default: vue.withCtx(({ present }) => [
@@ -122,11 +122,11 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
122
122
  "data-orientation": vue.unref(menuContext).orientation,
123
123
  style: {
124
124
  // Prevent interaction when animating out
125
- pointerEvents: !open.value && vue.unref(menuContext).isRootMenu ? "none" : undefined,
126
- ["--reka-navigation-menu-viewport-width"]: size.value ? `${size.value?.width}px` : undefined,
127
- ["--reka-navigation-menu-viewport-height"]: size.value ? `${size.value?.height}px` : undefined,
128
- ["--reka-navigation-menu-viewport-left"]: position.value ? `${position.value?.left}px` : undefined,
129
- ["--reka-navigation-menu-viewport-top"]: position.value ? `${position.value?.top}px` : undefined
125
+ pointerEvents: !open.value && vue.unref(menuContext).isRootMenu ? "none" : void 0,
126
+ ["--reka-navigation-menu-viewport-width"]: size.value ? `${size.value?.width}px` : void 0,
127
+ ["--reka-navigation-menu-viewport-height"]: size.value ? `${size.value?.height}px` : void 0,
128
+ ["--reka-navigation-menu-viewport-left"]: position.value ? `${position.value?.left}px` : void 0,
129
+ ["--reka-navigation-menu-viewport-top"]: position.value ? `${position.value?.top}px` : void 0
130
130
  },
131
131
  hidden: !present,
132
132
  onPointerenter: _cache[0] || (_cache[0] = ($event) => vue.unref(menuContext).onContentEnter(vue.unref(menuContext).modelValue.value)),
@@ -1,6 +1,6 @@
1
- import { defineComponent, ref, computed, watch, openBlock, createBlock, unref, withCtx, createVNode, mergeProps, renderSlot } from 'vue';
1
+ import { defineComponent, ref, computed, watch, createBlock, openBlock, unref, withCtx, createVNode, mergeProps, renderSlot } from 'vue';
2
2
  import { useResizeObserver } from '@vueuse/core';
3
- import { g as getOpenState, w as whenMouse } from './utils.js';
3
+ import { w as whenMouse, g as getOpenState } from './utils.js';
4
4
  import { u as useForwardExpose } from '../shared/useForwardExpose.js';
5
5
  import { P as Presence } from '../Presence/Presence.js';
6
6
  import { P as Primitive } from '../Primitive/Primitive.js';
@@ -107,8 +107,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
107
107
  present: _ctx.forceMount || open.value,
108
108
  "force-mount": !unref(menuContext).unmountOnHide.value,
109
109
  onAfterLeave: _cache[2] || (_cache[2] = () => {
110
- size.value = undefined;
111
- position.value = undefined;
110
+ size.value = void 0;
111
+ position.value = void 0;
112
112
  })
113
113
  }, {
114
114
  default: withCtx(({ present }) => [
@@ -120,11 +120,11 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
120
120
  "data-orientation": unref(menuContext).orientation,
121
121
  style: {
122
122
  // Prevent interaction when animating out
123
- pointerEvents: !open.value && unref(menuContext).isRootMenu ? "none" : undefined,
124
- ["--reka-navigation-menu-viewport-width"]: size.value ? `${size.value?.width}px` : undefined,
125
- ["--reka-navigation-menu-viewport-height"]: size.value ? `${size.value?.height}px` : undefined,
126
- ["--reka-navigation-menu-viewport-left"]: position.value ? `${position.value?.left}px` : undefined,
127
- ["--reka-navigation-menu-viewport-top"]: position.value ? `${position.value?.top}px` : undefined
123
+ pointerEvents: !open.value && unref(menuContext).isRootMenu ? "none" : void 0,
124
+ ["--reka-navigation-menu-viewport-width"]: size.value ? `${size.value?.width}px` : void 0,
125
+ ["--reka-navigation-menu-viewport-height"]: size.value ? `${size.value?.height}px` : void 0,
126
+ ["--reka-navigation-menu-viewport-left"]: position.value ? `${position.value?.left}px` : void 0,
127
+ ["--reka-navigation-menu-viewport-top"]: position.value ? `${position.value?.top}px` : void 0
128
128
  },
129
129
  hidden: !present,
130
130
  onPointerenter: _cache[0] || (_cache[0] = ($event) => unref(menuContext).onContentEnter(unref(menuContext).modelValue.value)),
@@ -48,7 +48,7 @@ function removeFromTabOrder(candidates) {
48
48
  };
49
49
  }
50
50
  function whenMouse(handler) {
51
- return (event) => event.pointerType === "mouse" ? handler(event) : undefined;
51
+ return (event) => event.pointerType === "mouse" ? handler(event) : void 0;
52
52
  }
53
53
 
54
54
  exports.EVENT_ROOT_CONTENT_DISMISS = EVENT_ROOT_CONTENT_DISMISS;
@@ -1 +1 @@
1
- {"version":3,"file":"utils.cjs","sources":["../../src/NavigationMenu/utils.ts"],"sourcesContent":["import { getActiveElement } from '@/shared'\n\nexport type Orientation = 'vertical' | 'horizontal'\nexport type Direction = 'ltr' | 'rtl'\n\nexport function getOpenState(open: boolean) {\n return open ? 'open' : 'closed'\n}\n\nexport function makeTriggerId(baseId: string, value: string) {\n return `${baseId}-trigger-${value}`\n}\n\nexport function makeContentId(baseId: string, value: string) {\n return `${baseId}-content-${value}`\n}\n\nexport const LINK_SELECT = 'navigationMenu.linkSelect'\nexport const EVENT_ROOT_CONTENT_DISMISS = 'navigationMenu.rootContentDismiss'\n\n/**\n * Returns a list of potential tabbable candidates.\n *\n * NOTE: This is only a close approximation. For example it doesn't take into account cases like when\n * elements are not visible. This cannot be worked out easily by just reading a property, but rather\n * necessitate runtime knowledge (computed styles, etc). We deal with these cases separately.\n *\n * See: https://developer.mozilla.org/en-US/docs/Web/API/TreeWalker\n * Credit: https://github.com/discord/focus-layers/blob/master/src/util/wrapFocus.tsx#L1\n */\nexport function getTabbableCandidates(container: HTMLElement) {\n const nodes: HTMLElement[] = []\n const walker = document.createTreeWalker(container, NodeFilter.SHOW_ELEMENT, {\n acceptNode: (node: any) => {\n const isHiddenInput = node.tagName === 'INPUT' && node.type === 'hidden'\n if (node.disabled || node.hidden || isHiddenInput)\n return NodeFilter.FILTER_SKIP\n // `.tabIndex` is not the same as the `tabindex` attribute. It works on the\n // runtime's understanding of tabbability, so this automatically accounts\n // for any kind of element that could be tabbed to.\n return node.tabIndex >= 0\n ? NodeFilter.FILTER_ACCEPT\n : NodeFilter.FILTER_SKIP\n },\n })\n while (walker.nextNode()) nodes.push(walker.currentNode as HTMLElement)\n // we do not take into account the order of nodes with positive `tabIndex` as it\n // hinders accessibility to have tab order different from visual order.\n return nodes\n}\n\nexport function focusFirst(candidates: HTMLElement[]) {\n const previouslyFocusedElement = getActiveElement()\n return candidates.some((candidate) => {\n // if focus is already where we want to go, we don't want to keep going through the candidates\n if (candidate === previouslyFocusedElement)\n return true\n candidate.focus()\n return getActiveElement() !== previouslyFocusedElement\n })\n}\n\nexport function removeFromTabOrder(candidates: HTMLElement[]) {\n candidates.forEach((candidate) => {\n candidate.dataset.tabindex = candidate.getAttribute('tabindex') || ''\n candidate.setAttribute('tabindex', '-1')\n })\n return () => {\n candidates.forEach((candidate) => {\n const prevTabIndex = candidate.dataset.tabindex as string\n candidate.setAttribute('tabindex', prevTabIndex)\n })\n }\n}\n\nexport function whenMouse<E extends PointerEvent>(handler: (event?: E) => void) {\n return (event: E) => (event.pointerType === 'mouse' ? handler(event) : undefined)\n}\n"],"names":["getActiveElement"],"mappings":";;;;AAKO,SAAS,aAAa,IAAe,EAAA;AAC1C,EAAA,OAAO,OAAO,MAAS,GAAA,QAAA;AACzB;AAEgB,SAAA,aAAA,CAAc,QAAgB,KAAe,EAAA;AAC3D,EAAO,OAAA,CAAA,EAAG,MAAM,CAAA,SAAA,EAAY,KAAK,CAAA,CAAA;AACnC;AAEgB,SAAA,aAAA,CAAc,QAAgB,KAAe,EAAA;AAC3D,EAAO,OAAA,CAAA,EAAG,MAAM,CAAA,SAAA,EAAY,KAAK,CAAA,CAAA;AACnC;AAEO,MAAM,WAAc,GAAA;AACpB,MAAM,0BAA6B,GAAA;AAYnC,SAAS,sBAAsB,SAAwB,EAAA;AAC5D,EAAA,MAAM,QAAuB,EAAC;AAC9B,EAAA,MAAM,MAAS,GAAA,QAAA,CAAS,gBAAiB,CAAA,SAAA,EAAW,WAAW,YAAc,EAAA;AAAA,IAC3E,UAAA,EAAY,CAAC,IAAc,KAAA;AACzB,MAAA,MAAM,aAAgB,GAAA,IAAA,CAAK,OAAY,KAAA,OAAA,IAAW,KAAK,IAAS,KAAA,QAAA;AAChE,MAAI,IAAA,IAAA,CAAK,QAAY,IAAA,IAAA,CAAK,MAAU,IAAA,aAAA;AAClC,QAAA,OAAO,UAAW,CAAA,WAAA;AAIpB,MAAA,OAAO,IAAK,CAAA,QAAA,IAAY,CACpB,GAAA,UAAA,CAAW,gBACX,UAAW,CAAA,WAAA;AAAA;AACjB,GACD,CAAA;AACD,EAAA,OAAO,OAAO,QAAS,EAAA,EAAS,KAAA,CAAA,IAAA,CAAK,OAAO,WAA0B,CAAA;AAGtE,EAAO,OAAA,KAAA;AACT;AAEO,SAAS,WAAW,UAA2B,EAAA;AACpD,EAAA,MAAM,2BAA2BA,wCAAiB,EAAA;AAClD,EAAO,OAAA,UAAA,CAAW,IAAK,CAAA,CAAC,SAAc,KAAA;AAEpC,IAAA,IAAI,SAAc,KAAA,wBAAA;AAChB,MAAO,OAAA,IAAA;AACT,IAAA,SAAA,CAAU,KAAM,EAAA;AAChB,IAAA,OAAOA,0CAAuB,KAAA,wBAAA;AAAA,GAC/B,CAAA;AACH;AAEO,SAAS,mBAAmB,UAA2B,EAAA;AAC5D,EAAW,UAAA,CAAA,OAAA,CAAQ,CAAC,SAAc,KAAA;AAChC,IAAA,SAAA,CAAU,OAAQ,CAAA,QAAA,GAAW,SAAU,CAAA,YAAA,CAAa,UAAU,CAAK,IAAA,EAAA;AACnE,IAAU,SAAA,CAAA,YAAA,CAAa,YAAY,IAAI,CAAA;AAAA,GACxC,CAAA;AACD,EAAA,OAAO,MAAM;AACX,IAAW,UAAA,CAAA,OAAA,CAAQ,CAAC,SAAc,KAAA;AAChC,MAAM,MAAA,YAAA,GAAe,UAAU,OAAQ,CAAA,QAAA;AACvC,MAAU,SAAA,CAAA,YAAA,CAAa,YAAY,YAAY,CAAA;AAAA,KAChD,CAAA;AAAA,GACH;AACF;AAEO,SAAS,UAAkC,OAA8B,EAAA;AAC9E,EAAA,OAAO,CAAC,KAAc,KAAA,KAAA,CAAM,gBAAgB,OAAU,GAAA,OAAA,CAAQ,KAAK,CAAI,GAAA,SAAA;AACzE;;;;;;;;;;;;"}
1
+ {"version":3,"file":"utils.cjs","sources":["../../src/NavigationMenu/utils.ts"],"sourcesContent":["import { getActiveElement } from '@/shared'\n\nexport type Orientation = 'vertical' | 'horizontal'\nexport type Direction = 'ltr' | 'rtl'\n\nexport function getOpenState(open: boolean) {\n return open ? 'open' : 'closed'\n}\n\nexport function makeTriggerId(baseId: string, value: string) {\n return `${baseId}-trigger-${value}`\n}\n\nexport function makeContentId(baseId: string, value: string) {\n return `${baseId}-content-${value}`\n}\n\nexport const LINK_SELECT = 'navigationMenu.linkSelect'\nexport const EVENT_ROOT_CONTENT_DISMISS = 'navigationMenu.rootContentDismiss'\n\n/**\n * Returns a list of potential tabbable candidates.\n *\n * NOTE: This is only a close approximation. For example it doesn't take into account cases like when\n * elements are not visible. This cannot be worked out easily by just reading a property, but rather\n * necessitate runtime knowledge (computed styles, etc). We deal with these cases separately.\n *\n * See: https://developer.mozilla.org/en-US/docs/Web/API/TreeWalker\n * Credit: https://github.com/discord/focus-layers/blob/master/src/util/wrapFocus.tsx#L1\n */\nexport function getTabbableCandidates(container: HTMLElement) {\n const nodes: HTMLElement[] = []\n const walker = document.createTreeWalker(container, NodeFilter.SHOW_ELEMENT, {\n acceptNode: (node: any) => {\n const isHiddenInput = node.tagName === 'INPUT' && node.type === 'hidden'\n if (node.disabled || node.hidden || isHiddenInput)\n return NodeFilter.FILTER_SKIP\n // `.tabIndex` is not the same as the `tabindex` attribute. It works on the\n // runtime's understanding of tabbability, so this automatically accounts\n // for any kind of element that could be tabbed to.\n return node.tabIndex >= 0\n ? NodeFilter.FILTER_ACCEPT\n : NodeFilter.FILTER_SKIP\n },\n })\n while (walker.nextNode()) nodes.push(walker.currentNode as HTMLElement)\n // we do not take into account the order of nodes with positive `tabIndex` as it\n // hinders accessibility to have tab order different from visual order.\n return nodes\n}\n\nexport function focusFirst(candidates: HTMLElement[]) {\n const previouslyFocusedElement = getActiveElement()\n return candidates.some((candidate) => {\n // if focus is already where we want to go, we don't want to keep going through the candidates\n if (candidate === previouslyFocusedElement)\n return true\n candidate.focus()\n return getActiveElement() !== previouslyFocusedElement\n })\n}\n\nexport function removeFromTabOrder(candidates: HTMLElement[]) {\n candidates.forEach((candidate) => {\n candidate.dataset.tabindex = candidate.getAttribute('tabindex') || ''\n candidate.setAttribute('tabindex', '-1')\n })\n return () => {\n candidates.forEach((candidate) => {\n const prevTabIndex = candidate.dataset.tabindex as string\n candidate.setAttribute('tabindex', prevTabIndex)\n })\n }\n}\n\nexport function whenMouse<E extends PointerEvent>(handler: (event?: E) => void) {\n return (event: E) => (event.pointerType === 'mouse' ? handler(event) : undefined)\n}\n"],"names":["getActiveElement"],"mappings":";;;;AAKO,SAAS,aAAa,IAAe,EAAA;AAC1C,EAAA,OAAO,OAAO,MAAS,GAAA,QAAA;AACzB;AAEgB,SAAA,aAAA,CAAc,QAAgB,KAAe,EAAA;AAC3D,EAAO,OAAA,CAAA,EAAG,MAAM,CAAA,SAAA,EAAY,KAAK,CAAA,CAAA;AACnC;AAEgB,SAAA,aAAA,CAAc,QAAgB,KAAe,EAAA;AAC3D,EAAO,OAAA,CAAA,EAAG,MAAM,CAAA,SAAA,EAAY,KAAK,CAAA,CAAA;AACnC;AAEO,MAAM,WAAc,GAAA;AACpB,MAAM,0BAA6B,GAAA;AAYnC,SAAS,sBAAsB,SAAwB,EAAA;AAC5D,EAAA,MAAM,QAAuB,EAAC;AAC9B,EAAA,MAAM,MAAS,GAAA,QAAA,CAAS,gBAAiB,CAAA,SAAA,EAAW,WAAW,YAAc,EAAA;AAAA,IAC3E,UAAA,EAAY,CAAC,IAAc,KAAA;AACzB,MAAA,MAAM,aAAgB,GAAA,IAAA,CAAK,OAAY,KAAA,OAAA,IAAW,KAAK,IAAS,KAAA,QAAA;AAChE,MAAI,IAAA,IAAA,CAAK,QAAY,IAAA,IAAA,CAAK,MAAU,IAAA,aAAA;AAClC,QAAA,OAAO,UAAW,CAAA,WAAA;AAIpB,MAAA,OAAO,IAAK,CAAA,QAAA,IAAY,CACpB,GAAA,UAAA,CAAW,gBACX,UAAW,CAAA,WAAA;AAAA;AACjB,GACD,CAAA;AACD,EAAA,OAAO,OAAO,QAAS,EAAA,EAAS,KAAA,CAAA,IAAA,CAAK,OAAO,WAA0B,CAAA;AAGtE,EAAO,OAAA,KAAA;AACT;AAEO,SAAS,WAAW,UAA2B,EAAA;AACpD,EAAA,MAAM,2BAA2BA,wCAAiB,EAAA;AAClD,EAAO,OAAA,UAAA,CAAW,IAAK,CAAA,CAAC,SAAc,KAAA;AAEpC,IAAA,IAAI,SAAc,KAAA,wBAAA;AAChB,MAAO,OAAA,IAAA;AACT,IAAA,SAAA,CAAU,KAAM,EAAA;AAChB,IAAA,OAAOA,0CAAuB,KAAA,wBAAA;AAAA,GAC/B,CAAA;AACH;AAEO,SAAS,mBAAmB,UAA2B,EAAA;AAC5D,EAAW,UAAA,CAAA,OAAA,CAAQ,CAAC,SAAc,KAAA;AAChC,IAAA,SAAA,CAAU,OAAQ,CAAA,QAAA,GAAW,SAAU,CAAA,YAAA,CAAa,UAAU,CAAK,IAAA,EAAA;AACnE,IAAU,SAAA,CAAA,YAAA,CAAa,YAAY,IAAI,CAAA;AAAA,GACxC,CAAA;AACD,EAAA,OAAO,MAAM;AACX,IAAW,UAAA,CAAA,OAAA,CAAQ,CAAC,SAAc,KAAA;AAChC,MAAM,MAAA,YAAA,GAAe,UAAU,OAAQ,CAAA,QAAA;AACvC,MAAU,SAAA,CAAA,YAAA,CAAa,YAAY,YAAY,CAAA;AAAA,KAChD,CAAA;AAAA,GACH;AACF;AAEO,SAAS,UAAkC,OAA8B,EAAA;AAC9E,EAAA,OAAO,CAAC,KAAc,KAAA,KAAA,CAAM,gBAAgB,OAAU,GAAA,OAAA,CAAQ,KAAK,CAAI,GAAA,MAAA;AACzE;;;;;;;;;;;;"}
@@ -46,7 +46,7 @@ function removeFromTabOrder(candidates) {
46
46
  };
47
47
  }
48
48
  function whenMouse(handler) {
49
- return (event) => event.pointerType === "mouse" ? handler(event) : undefined;
49
+ return (event) => event.pointerType === "mouse" ? handler(event) : void 0;
50
50
  }
51
51
 
52
52
  export { EVENT_ROOT_CONTENT_DISMISS as E, LINK_SELECT as L, makeContentId as a, getTabbableCandidates as b, focusFirst as f, getOpenState as g, makeTriggerId as m, removeFromTabOrder as r, whenMouse as w };