reka-ui 2.2.0 → 2.3.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 (902) hide show
  1. package/dist/Accordion/AccordionHeader.cjs.map +1 -1
  2. package/dist/Accordion/AccordionHeader.js.map +1 -1
  3. package/dist/Accordion/AccordionItem.cjs.map +1 -1
  4. package/dist/Accordion/AccordionItem.js.map +1 -1
  5. package/dist/Accordion/AccordionRoot.cjs.map +1 -1
  6. package/dist/Accordion/AccordionRoot.js.map +1 -1
  7. package/dist/Accordion/AccordionTrigger.cjs.map +1 -1
  8. package/dist/Accordion/AccordionTrigger.js.map +1 -1
  9. package/dist/AlertDialog/AlertDialogCancel.cjs.map +1 -1
  10. package/dist/AlertDialog/AlertDialogCancel.js.map +1 -1
  11. package/dist/AspectRatio/AspectRatio.cjs.map +1 -1
  12. package/dist/AspectRatio/AspectRatio.js.map +1 -1
  13. package/dist/Avatar/AvatarFallback.cjs +11 -14
  14. package/dist/Avatar/AvatarFallback.cjs.map +1 -1
  15. package/dist/Avatar/AvatarFallback.js +12 -15
  16. package/dist/Avatar/AvatarFallback.js.map +1 -1
  17. package/dist/Avatar/AvatarImage.cjs +3 -2
  18. package/dist/Avatar/AvatarImage.cjs.map +1 -1
  19. package/dist/Avatar/AvatarImage.js +3 -2
  20. package/dist/Avatar/AvatarImage.js.map +1 -1
  21. package/dist/Avatar/AvatarRoot.cjs +1 -1
  22. package/dist/Avatar/AvatarRoot.cjs.map +1 -1
  23. package/dist/Avatar/AvatarRoot.js +1 -1
  24. package/dist/Avatar/AvatarRoot.js.map +1 -1
  25. package/dist/Avatar/utils.cjs +43 -16
  26. package/dist/Avatar/utils.cjs.map +1 -1
  27. package/dist/Avatar/utils.js +44 -17
  28. package/dist/Avatar/utils.js.map +1 -1
  29. package/dist/Calendar/CalendarCell.cjs +3 -3
  30. package/dist/Calendar/CalendarCell.cjs.map +1 -1
  31. package/dist/Calendar/CalendarCell.js +3 -3
  32. package/dist/Calendar/CalendarCell.js.map +1 -1
  33. package/dist/Calendar/CalendarCellTrigger.cjs +5 -1
  34. package/dist/Calendar/CalendarCellTrigger.cjs.map +1 -1
  35. package/dist/Calendar/CalendarCellTrigger.js +5 -1
  36. package/dist/Calendar/CalendarCellTrigger.js.map +1 -1
  37. package/dist/Calendar/CalendarGrid.cjs.map +1 -1
  38. package/dist/Calendar/CalendarGrid.js.map +1 -1
  39. package/dist/Calendar/CalendarHeading.cjs +1 -1
  40. package/dist/Calendar/CalendarHeading.cjs.map +1 -1
  41. package/dist/Calendar/CalendarHeading.js +1 -1
  42. package/dist/Calendar/CalendarHeading.js.map +1 -1
  43. package/dist/Calendar/CalendarNext.cjs.map +1 -1
  44. package/dist/Calendar/CalendarNext.js.map +1 -1
  45. package/dist/Calendar/CalendarPrev.cjs.map +1 -1
  46. package/dist/Calendar/CalendarPrev.js.map +1 -1
  47. package/dist/Calendar/CalendarRoot.cjs +7 -4
  48. package/dist/Calendar/CalendarRoot.cjs.map +1 -1
  49. package/dist/Calendar/CalendarRoot.js +7 -4
  50. package/dist/Calendar/CalendarRoot.js.map +1 -1
  51. package/dist/Calendar/useCalendar.cjs.map +1 -1
  52. package/dist/Calendar/useCalendar.js.map +1 -1
  53. package/dist/Checkbox/CheckboxGroupRoot.cjs +1 -1
  54. package/dist/Checkbox/CheckboxGroupRoot.cjs.map +1 -1
  55. package/dist/Checkbox/CheckboxGroupRoot.js +1 -1
  56. package/dist/Checkbox/CheckboxGroupRoot.js.map +1 -1
  57. package/dist/Checkbox/CheckboxIndicator.cjs.map +1 -1
  58. package/dist/Checkbox/CheckboxIndicator.js.map +1 -1
  59. package/dist/Checkbox/CheckboxRoot.cjs +1 -1
  60. package/dist/Checkbox/CheckboxRoot.cjs.map +1 -1
  61. package/dist/Checkbox/CheckboxRoot.js +1 -1
  62. package/dist/Checkbox/CheckboxRoot.js.map +1 -1
  63. package/dist/Collapsible/CollapsibleContent.cjs +1 -1
  64. package/dist/Collapsible/CollapsibleContent.cjs.map +1 -1
  65. package/dist/Collapsible/CollapsibleContent.js +1 -1
  66. package/dist/Collapsible/CollapsibleContent.js.map +1 -1
  67. package/dist/Collapsible/CollapsibleRoot.cjs +2 -0
  68. package/dist/Collapsible/CollapsibleRoot.cjs.map +1 -1
  69. package/dist/Collapsible/CollapsibleRoot.js +2 -0
  70. package/dist/Collapsible/CollapsibleRoot.js.map +1 -1
  71. package/dist/Collapsible/CollapsibleTrigger.cjs +1 -1
  72. package/dist/Collapsible/CollapsibleTrigger.js +1 -1
  73. package/dist/Collection/Collection.cjs.map +1 -1
  74. package/dist/Collection/Collection.js.map +1 -1
  75. package/dist/Combobox/ComboboxAnchor.cjs.map +1 -1
  76. package/dist/Combobox/ComboboxAnchor.js.map +1 -1
  77. package/dist/Combobox/ComboboxArrow.cjs.map +1 -1
  78. package/dist/Combobox/ComboboxArrow.js.map +1 -1
  79. package/dist/Combobox/ComboboxCancel.cjs +1 -0
  80. package/dist/Combobox/ComboboxCancel.cjs.map +1 -1
  81. package/dist/Combobox/ComboboxCancel.js +1 -0
  82. package/dist/Combobox/ComboboxCancel.js.map +1 -1
  83. package/dist/Combobox/ComboboxContent.cjs.map +1 -1
  84. package/dist/Combobox/ComboboxContent.js.map +1 -1
  85. package/dist/Combobox/ComboboxContentImpl.cjs +2 -2
  86. package/dist/Combobox/ComboboxContentImpl.cjs.map +1 -1
  87. package/dist/Combobox/ComboboxContentImpl.js +2 -2
  88. package/dist/Combobox/ComboboxContentImpl.js.map +1 -1
  89. package/dist/Combobox/ComboboxEmpty.cjs.map +1 -1
  90. package/dist/Combobox/ComboboxEmpty.js.map +1 -1
  91. package/dist/Combobox/ComboboxGroup.cjs +1 -1
  92. package/dist/Combobox/ComboboxGroup.cjs.map +1 -1
  93. package/dist/Combobox/ComboboxGroup.js +1 -1
  94. package/dist/Combobox/ComboboxGroup.js.map +1 -1
  95. package/dist/Combobox/ComboboxInput.cjs +9 -1
  96. package/dist/Combobox/ComboboxInput.cjs.map +1 -1
  97. package/dist/Combobox/ComboboxInput.js +9 -1
  98. package/dist/Combobox/ComboboxInput.js.map +1 -1
  99. package/dist/Combobox/ComboboxItem.cjs +4 -3
  100. package/dist/Combobox/ComboboxItem.cjs.map +1 -1
  101. package/dist/Combobox/ComboboxItem.js +4 -3
  102. package/dist/Combobox/ComboboxItem.js.map +1 -1
  103. package/dist/Combobox/ComboboxLabel.cjs +1 -1
  104. package/dist/Combobox/ComboboxLabel.js +1 -1
  105. package/dist/Combobox/ComboboxRoot.cjs +1 -2
  106. package/dist/Combobox/ComboboxRoot.cjs.map +1 -1
  107. package/dist/Combobox/ComboboxRoot.js +1 -2
  108. package/dist/Combobox/ComboboxRoot.js.map +1 -1
  109. package/dist/Combobox/ComboboxTrigger.cjs.map +1 -1
  110. package/dist/Combobox/ComboboxTrigger.js.map +1 -1
  111. package/dist/Combobox/ComboboxViewport.cjs.map +1 -1
  112. package/dist/Combobox/ComboboxViewport.js.map +1 -1
  113. package/dist/Combobox/ComboboxVirtualizer.cjs.map +1 -1
  114. package/dist/Combobox/ComboboxVirtualizer.js.map +1 -1
  115. package/dist/ConfigProvider/ConfigProvider.cjs.map +1 -1
  116. package/dist/ConfigProvider/ConfigProvider.js.map +1 -1
  117. package/dist/ContextMenu/ContextMenuContent.cjs.map +1 -1
  118. package/dist/ContextMenu/ContextMenuContent.js.map +1 -1
  119. package/dist/ContextMenu/ContextMenuPortal.cjs.map +1 -1
  120. package/dist/ContextMenu/ContextMenuPortal.js.map +1 -1
  121. package/dist/ContextMenu/ContextMenuRoot.cjs.map +1 -1
  122. package/dist/ContextMenu/ContextMenuRoot.js.map +1 -1
  123. package/dist/ContextMenu/ContextMenuSub.cjs.map +1 -1
  124. package/dist/ContextMenu/ContextMenuSub.js.map +1 -1
  125. package/dist/ContextMenu/ContextMenuTrigger.cjs +2 -2
  126. package/dist/ContextMenu/ContextMenuTrigger.cjs.map +1 -1
  127. package/dist/ContextMenu/ContextMenuTrigger.js +2 -2
  128. package/dist/ContextMenu/ContextMenuTrigger.js.map +1 -1
  129. package/dist/DateField/DateFieldInput.cjs +1 -0
  130. package/dist/DateField/DateFieldInput.cjs.map +1 -1
  131. package/dist/DateField/DateFieldInput.js +1 -0
  132. package/dist/DateField/DateFieldInput.js.map +1 -1
  133. package/dist/DateField/DateFieldRoot.cjs +7 -1
  134. package/dist/DateField/DateFieldRoot.cjs.map +1 -1
  135. package/dist/DateField/DateFieldRoot.js +7 -1
  136. package/dist/DateField/DateFieldRoot.js.map +1 -1
  137. package/dist/DatePicker/DatePickerArrow.cjs.map +1 -1
  138. package/dist/DatePicker/DatePickerArrow.js.map +1 -1
  139. package/dist/DatePicker/DatePickerCalendar.cjs.map +1 -1
  140. package/dist/DatePicker/DatePickerCalendar.js.map +1 -1
  141. package/dist/DatePicker/DatePickerCell.cjs.map +1 -1
  142. package/dist/DatePicker/DatePickerCell.js.map +1 -1
  143. package/dist/DatePicker/DatePickerCellTrigger.cjs.map +1 -1
  144. package/dist/DatePicker/DatePickerCellTrigger.js.map +1 -1
  145. package/dist/DatePicker/DatePickerClose.cjs.map +1 -1
  146. package/dist/DatePicker/DatePickerClose.js.map +1 -1
  147. package/dist/DatePicker/DatePickerContent.cjs +8 -3
  148. package/dist/DatePicker/DatePickerContent.cjs.map +1 -1
  149. package/dist/DatePicker/DatePickerContent.js +9 -4
  150. package/dist/DatePicker/DatePickerContent.js.map +1 -1
  151. package/dist/DatePicker/DatePickerGrid.cjs.map +1 -1
  152. package/dist/DatePicker/DatePickerGrid.js.map +1 -1
  153. package/dist/DatePicker/DatePickerGridBody.cjs.map +1 -1
  154. package/dist/DatePicker/DatePickerGridBody.js.map +1 -1
  155. package/dist/DatePicker/DatePickerGridHead.cjs.map +1 -1
  156. package/dist/DatePicker/DatePickerGridHead.js.map +1 -1
  157. package/dist/DatePicker/DatePickerGridRow.cjs.map +1 -1
  158. package/dist/DatePicker/DatePickerGridRow.js.map +1 -1
  159. package/dist/DatePicker/DatePickerHeadCell.cjs.map +1 -1
  160. package/dist/DatePicker/DatePickerHeadCell.js.map +1 -1
  161. package/dist/DatePicker/DatePickerHeader.cjs.map +1 -1
  162. package/dist/DatePicker/DatePickerHeader.js.map +1 -1
  163. package/dist/DatePicker/DatePickerHeading.cjs.map +1 -1
  164. package/dist/DatePicker/DatePickerHeading.js.map +1 -1
  165. package/dist/DatePicker/DatePickerInput.cjs.map +1 -1
  166. package/dist/DatePicker/DatePickerInput.js.map +1 -1
  167. package/dist/DatePicker/DatePickerNext.cjs.map +1 -1
  168. package/dist/DatePicker/DatePickerNext.js.map +1 -1
  169. package/dist/DatePicker/DatePickerPrev.cjs.map +1 -1
  170. package/dist/DatePicker/DatePickerPrev.js.map +1 -1
  171. package/dist/DatePicker/DatePickerRoot.cjs +1 -0
  172. package/dist/DatePicker/DatePickerRoot.cjs.map +1 -1
  173. package/dist/DatePicker/DatePickerRoot.js +1 -0
  174. package/dist/DatePicker/DatePickerRoot.js.map +1 -1
  175. package/dist/DatePicker/DatePickerTrigger.cjs.map +1 -1
  176. package/dist/DatePicker/DatePickerTrigger.js.map +1 -1
  177. package/dist/DateRangeField/DateRangeFieldInput.cjs +1 -0
  178. package/dist/DateRangeField/DateRangeFieldInput.cjs.map +1 -1
  179. package/dist/DateRangeField/DateRangeFieldInput.js +1 -0
  180. package/dist/DateRangeField/DateRangeFieldInput.js.map +1 -1
  181. package/dist/DateRangeField/DateRangeFieldRoot.cjs +13 -9
  182. package/dist/DateRangeField/DateRangeFieldRoot.cjs.map +1 -1
  183. package/dist/DateRangeField/DateRangeFieldRoot.js +13 -9
  184. package/dist/DateRangeField/DateRangeFieldRoot.js.map +1 -1
  185. package/dist/DateRangePicker/DateRangePickerAnchor.cjs.map +1 -1
  186. package/dist/DateRangePicker/DateRangePickerAnchor.js.map +1 -1
  187. package/dist/DateRangePicker/DateRangePickerArrow.cjs.map +1 -1
  188. package/dist/DateRangePicker/DateRangePickerArrow.js.map +1 -1
  189. package/dist/DateRangePicker/DateRangePickerCalendar.cjs +3 -1
  190. package/dist/DateRangePicker/DateRangePickerCalendar.cjs.map +1 -1
  191. package/dist/DateRangePicker/DateRangePickerCalendar.js +3 -1
  192. package/dist/DateRangePicker/DateRangePickerCalendar.js.map +1 -1
  193. package/dist/DateRangePicker/DateRangePickerCell.cjs.map +1 -1
  194. package/dist/DateRangePicker/DateRangePickerCell.js.map +1 -1
  195. package/dist/DateRangePicker/DateRangePickerClose.cjs.map +1 -1
  196. package/dist/DateRangePicker/DateRangePickerClose.js.map +1 -1
  197. package/dist/DateRangePicker/DateRangePickerContent.cjs +8 -3
  198. package/dist/DateRangePicker/DateRangePickerContent.cjs.map +1 -1
  199. package/dist/DateRangePicker/DateRangePickerContent.js +9 -4
  200. package/dist/DateRangePicker/DateRangePickerContent.js.map +1 -1
  201. package/dist/DateRangePicker/DateRangePickerGrid.cjs.map +1 -1
  202. package/dist/DateRangePicker/DateRangePickerGrid.js.map +1 -1
  203. package/dist/DateRangePicker/DateRangePickerGridBody.cjs.map +1 -1
  204. package/dist/DateRangePicker/DateRangePickerGridBody.js.map +1 -1
  205. package/dist/DateRangePicker/DateRangePickerGridHead.cjs.map +1 -1
  206. package/dist/DateRangePicker/DateRangePickerGridHead.js.map +1 -1
  207. package/dist/DateRangePicker/DateRangePickerGridRow.cjs.map +1 -1
  208. package/dist/DateRangePicker/DateRangePickerGridRow.js.map +1 -1
  209. package/dist/DateRangePicker/DateRangePickerHeadCell.cjs.map +1 -1
  210. package/dist/DateRangePicker/DateRangePickerHeadCell.js.map +1 -1
  211. package/dist/DateRangePicker/DateRangePickerHeader.cjs.map +1 -1
  212. package/dist/DateRangePicker/DateRangePickerHeader.js.map +1 -1
  213. package/dist/DateRangePicker/DateRangePickerHeading.cjs.map +1 -1
  214. package/dist/DateRangePicker/DateRangePickerHeading.js.map +1 -1
  215. package/dist/DateRangePicker/DateRangePickerInput.cjs.map +1 -1
  216. package/dist/DateRangePicker/DateRangePickerInput.js.map +1 -1
  217. package/dist/DateRangePicker/DateRangePickerNext.cjs.map +1 -1
  218. package/dist/DateRangePicker/DateRangePickerNext.js.map +1 -1
  219. package/dist/DateRangePicker/DateRangePickerPrev.cjs.map +1 -1
  220. package/dist/DateRangePicker/DateRangePickerPrev.js.map +1 -1
  221. package/dist/DateRangePicker/DateRangePickerRoot.cjs +9 -2
  222. package/dist/DateRangePicker/DateRangePickerRoot.cjs.map +1 -1
  223. package/dist/DateRangePicker/DateRangePickerRoot.js +9 -2
  224. package/dist/DateRangePicker/DateRangePickerRoot.js.map +1 -1
  225. package/dist/DateRangePicker/DateRangePickerTrigger.cjs.map +1 -1
  226. package/dist/DateRangePicker/DateRangePickerTrigger.js.map +1 -1
  227. package/dist/Dialog/DialogClose.cjs +1 -1
  228. package/dist/Dialog/DialogClose.cjs.map +1 -1
  229. package/dist/Dialog/DialogClose.js +1 -1
  230. package/dist/Dialog/DialogClose.js.map +1 -1
  231. package/dist/Dialog/DialogContent.cjs.map +1 -1
  232. package/dist/Dialog/DialogContent.js.map +1 -1
  233. package/dist/Dialog/DialogContentImpl.cjs.map +1 -1
  234. package/dist/Dialog/DialogContentImpl.js.map +1 -1
  235. package/dist/Dialog/DialogContentModal.cjs.map +1 -1
  236. package/dist/Dialog/DialogContentModal.js.map +1 -1
  237. package/dist/Dialog/DialogContentNonModal.cjs.map +1 -1
  238. package/dist/Dialog/DialogContentNonModal.js.map +1 -1
  239. package/dist/Dialog/DialogDescription.cjs.map +1 -1
  240. package/dist/Dialog/DialogDescription.js.map +1 -1
  241. package/dist/Dialog/DialogOverlay.cjs.map +1 -1
  242. package/dist/Dialog/DialogOverlay.js.map +1 -1
  243. package/dist/Dialog/DialogOverlayImpl.cjs.map +1 -1
  244. package/dist/Dialog/DialogOverlayImpl.js.map +1 -1
  245. package/dist/Dialog/DialogRoot.cjs +4 -1
  246. package/dist/Dialog/DialogRoot.cjs.map +1 -1
  247. package/dist/Dialog/DialogRoot.js +4 -1
  248. package/dist/Dialog/DialogRoot.js.map +1 -1
  249. package/dist/Dialog/DialogTitle.cjs.map +1 -1
  250. package/dist/Dialog/DialogTitle.js.map +1 -1
  251. package/dist/Dialog/DialogTrigger.cjs +1 -1
  252. package/dist/Dialog/DialogTrigger.cjs.map +1 -1
  253. package/dist/Dialog/DialogTrigger.js +1 -1
  254. package/dist/Dialog/DialogTrigger.js.map +1 -1
  255. package/dist/Dialog/utils.cjs.map +1 -1
  256. package/dist/Dialog/utils.js.map +1 -1
  257. package/dist/DismissableLayer/DismissableLayer.cjs.map +1 -1
  258. package/dist/DismissableLayer/DismissableLayer.js.map +1 -1
  259. package/dist/DismissableLayer/DismissableLayerBranch.cjs.map +1 -1
  260. package/dist/DismissableLayer/DismissableLayerBranch.js.map +1 -1
  261. package/dist/DismissableLayer/utils.cjs +11 -6
  262. package/dist/DismissableLayer/utils.cjs.map +1 -1
  263. package/dist/DismissableLayer/utils.js +12 -7
  264. package/dist/DismissableLayer/utils.js.map +1 -1
  265. package/dist/DropdownMenu/DropdownMenuContent.cjs +1 -1
  266. package/dist/DropdownMenu/DropdownMenuContent.cjs.map +1 -1
  267. package/dist/DropdownMenu/DropdownMenuContent.js +1 -1
  268. package/dist/DropdownMenu/DropdownMenuContent.js.map +1 -1
  269. package/dist/DropdownMenu/DropdownMenuRoot.cjs.map +1 -1
  270. package/dist/DropdownMenu/DropdownMenuRoot.js.map +1 -1
  271. package/dist/DropdownMenu/DropdownMenuSub.cjs.map +1 -1
  272. package/dist/DropdownMenu/DropdownMenuSub.js.map +1 -1
  273. package/dist/DropdownMenu/DropdownMenuTrigger.cjs +1 -1
  274. package/dist/DropdownMenu/DropdownMenuTrigger.cjs.map +1 -1
  275. package/dist/DropdownMenu/DropdownMenuTrigger.js +1 -1
  276. package/dist/DropdownMenu/DropdownMenuTrigger.js.map +1 -1
  277. package/dist/Editable/EditableInput.cjs.map +1 -1
  278. package/dist/Editable/EditableInput.js.map +1 -1
  279. package/dist/Editable/EditablePreview.cjs.map +1 -1
  280. package/dist/Editable/EditablePreview.js.map +1 -1
  281. package/dist/Editable/EditableRoot.cjs +1 -1
  282. package/dist/Editable/EditableRoot.cjs.map +1 -1
  283. package/dist/Editable/EditableRoot.js +1 -1
  284. package/dist/Editable/EditableRoot.js.map +1 -1
  285. package/dist/FocusScope/FocusScope.cjs +1 -1
  286. package/dist/FocusScope/FocusScope.cjs.map +1 -1
  287. package/dist/FocusScope/FocusScope.js +1 -1
  288. package/dist/FocusScope/FocusScope.js.map +1 -1
  289. package/dist/HoverCard/HoverCardContent.cjs +1 -1
  290. package/dist/HoverCard/HoverCardContent.cjs.map +1 -1
  291. package/dist/HoverCard/HoverCardContent.js +1 -1
  292. package/dist/HoverCard/HoverCardContent.js.map +1 -1
  293. package/dist/HoverCard/HoverCardContentImpl.cjs +3 -3
  294. package/dist/HoverCard/HoverCardContentImpl.cjs.map +1 -1
  295. package/dist/HoverCard/HoverCardContentImpl.js +3 -3
  296. package/dist/HoverCard/HoverCardContentImpl.js.map +1 -1
  297. package/dist/HoverCard/HoverCardRoot.cjs.map +1 -1
  298. package/dist/HoverCard/HoverCardRoot.js.map +1 -1
  299. package/dist/HoverCard/HoverCardTrigger.cjs +1 -1
  300. package/dist/HoverCard/HoverCardTrigger.cjs.map +1 -1
  301. package/dist/HoverCard/HoverCardTrigger.js +1 -1
  302. package/dist/HoverCard/HoverCardTrigger.js.map +1 -1
  303. package/dist/Listbox/ListboxContent.cjs +1 -1
  304. package/dist/Listbox/ListboxContent.cjs.map +1 -1
  305. package/dist/Listbox/ListboxContent.js +1 -1
  306. package/dist/Listbox/ListboxContent.js.map +1 -1
  307. package/dist/Listbox/ListboxFilter.cjs.map +1 -1
  308. package/dist/Listbox/ListboxFilter.js.map +1 -1
  309. package/dist/Listbox/ListboxItem.cjs +2 -2
  310. package/dist/Listbox/ListboxItem.cjs.map +1 -1
  311. package/dist/Listbox/ListboxItem.js +2 -2
  312. package/dist/Listbox/ListboxItem.js.map +1 -1
  313. package/dist/Listbox/ListboxItemIndicator.cjs.map +1 -1
  314. package/dist/Listbox/ListboxItemIndicator.js.map +1 -1
  315. package/dist/Listbox/ListboxRoot.cjs +3 -3
  316. package/dist/Listbox/ListboxRoot.cjs.map +1 -1
  317. package/dist/Listbox/ListboxRoot.js +3 -3
  318. package/dist/Listbox/ListboxRoot.js.map +1 -1
  319. package/dist/Listbox/ListboxVirtualizer.cjs +4 -4
  320. package/dist/Listbox/ListboxVirtualizer.cjs.map +1 -1
  321. package/dist/Listbox/ListboxVirtualizer.js +4 -4
  322. package/dist/Listbox/ListboxVirtualizer.js.map +1 -1
  323. package/dist/Menu/MenuAnchor.cjs.map +1 -1
  324. package/dist/Menu/MenuAnchor.js.map +1 -1
  325. package/dist/Menu/MenuCheckboxItem.cjs +1 -1
  326. package/dist/Menu/MenuCheckboxItem.cjs.map +1 -1
  327. package/dist/Menu/MenuCheckboxItem.js +1 -1
  328. package/dist/Menu/MenuCheckboxItem.js.map +1 -1
  329. package/dist/Menu/MenuContent.cjs.map +1 -1
  330. package/dist/Menu/MenuContent.js.map +1 -1
  331. package/dist/Menu/MenuContentImpl.cjs +2 -2
  332. package/dist/Menu/MenuContentImpl.cjs.map +1 -1
  333. package/dist/Menu/MenuContentImpl.js +2 -2
  334. package/dist/Menu/MenuContentImpl.js.map +1 -1
  335. package/dist/Menu/MenuItem.cjs.map +1 -1
  336. package/dist/Menu/MenuItem.js.map +1 -1
  337. package/dist/Menu/MenuItemImpl.cjs +1 -1
  338. package/dist/Menu/MenuItemImpl.cjs.map +1 -1
  339. package/dist/Menu/MenuItemImpl.js +1 -1
  340. package/dist/Menu/MenuItemImpl.js.map +1 -1
  341. package/dist/Menu/MenuItemIndicator.cjs.map +1 -1
  342. package/dist/Menu/MenuItemIndicator.js.map +1 -1
  343. package/dist/Menu/MenuRadioGroup.cjs.map +1 -1
  344. package/dist/Menu/MenuRadioGroup.js.map +1 -1
  345. package/dist/Menu/MenuRadioItem.cjs +1 -1
  346. package/dist/Menu/MenuRadioItem.cjs.map +1 -1
  347. package/dist/Menu/MenuRadioItem.js +1 -1
  348. package/dist/Menu/MenuRadioItem.js.map +1 -1
  349. package/dist/Menu/MenuRoot.cjs +1 -1
  350. package/dist/Menu/MenuRoot.cjs.map +1 -1
  351. package/dist/Menu/MenuRoot.js +1 -1
  352. package/dist/Menu/MenuRoot.js.map +1 -1
  353. package/dist/Menu/MenuRootContentModal.cjs.map +1 -1
  354. package/dist/Menu/MenuRootContentModal.js.map +1 -1
  355. package/dist/Menu/MenuRootContentNonModal.cjs.map +1 -1
  356. package/dist/Menu/MenuRootContentNonModal.js.map +1 -1
  357. package/dist/Menu/MenuSub.cjs.map +1 -1
  358. package/dist/Menu/MenuSub.js.map +1 -1
  359. package/dist/Menu/MenuSubContent.cjs.map +1 -1
  360. package/dist/Menu/MenuSubContent.js.map +1 -1
  361. package/dist/Menu/MenuSubTrigger.cjs +1 -1
  362. package/dist/Menu/MenuSubTrigger.cjs.map +1 -1
  363. package/dist/Menu/MenuSubTrigger.js +1 -1
  364. package/dist/Menu/MenuSubTrigger.js.map +1 -1
  365. package/dist/Menubar/MenubarContent.cjs +1 -1
  366. package/dist/Menubar/MenubarContent.cjs.map +1 -1
  367. package/dist/Menubar/MenubarContent.js +1 -1
  368. package/dist/Menubar/MenubarContent.js.map +1 -1
  369. package/dist/Menubar/MenubarGroup.cjs.map +1 -1
  370. package/dist/Menubar/MenubarGroup.js.map +1 -1
  371. package/dist/Menubar/MenubarMenu.cjs.map +1 -1
  372. package/dist/Menubar/MenubarMenu.js.map +1 -1
  373. package/dist/Menubar/MenubarRoot.cjs.map +1 -1
  374. package/dist/Menubar/MenubarRoot.js.map +1 -1
  375. package/dist/Menubar/MenubarSub.cjs.map +1 -1
  376. package/dist/Menubar/MenubarSub.js.map +1 -1
  377. package/dist/Menubar/MenubarSubContent.cjs.map +1 -1
  378. package/dist/Menubar/MenubarSubContent.js.map +1 -1
  379. package/dist/Menubar/MenubarTrigger.cjs +1 -1
  380. package/dist/Menubar/MenubarTrigger.cjs.map +1 -1
  381. package/dist/Menubar/MenubarTrigger.js +1 -1
  382. package/dist/Menubar/MenubarTrigger.js.map +1 -1
  383. package/dist/NavigationMenu/NavigationMenuContent.cjs +1 -1
  384. package/dist/NavigationMenu/NavigationMenuContent.cjs.map +1 -1
  385. package/dist/NavigationMenu/NavigationMenuContent.js +1 -1
  386. package/dist/NavigationMenu/NavigationMenuContent.js.map +1 -1
  387. package/dist/NavigationMenu/NavigationMenuContentImpl.cjs +1 -1
  388. package/dist/NavigationMenu/NavigationMenuContentImpl.cjs.map +1 -1
  389. package/dist/NavigationMenu/NavigationMenuContentImpl.js +1 -1
  390. package/dist/NavigationMenu/NavigationMenuContentImpl.js.map +1 -1
  391. package/dist/NavigationMenu/NavigationMenuIndicator.cjs.map +1 -1
  392. package/dist/NavigationMenu/NavigationMenuIndicator.js.map +1 -1
  393. package/dist/NavigationMenu/NavigationMenuItem.cjs.map +1 -1
  394. package/dist/NavigationMenu/NavigationMenuItem.js.map +1 -1
  395. package/dist/NavigationMenu/NavigationMenuLink.cjs.map +1 -1
  396. package/dist/NavigationMenu/NavigationMenuLink.js.map +1 -1
  397. package/dist/NavigationMenu/NavigationMenuList.cjs.map +1 -1
  398. package/dist/NavigationMenu/NavigationMenuList.js.map +1 -1
  399. package/dist/NavigationMenu/NavigationMenuRoot.cjs.map +1 -1
  400. package/dist/NavigationMenu/NavigationMenuRoot.js.map +1 -1
  401. package/dist/NavigationMenu/NavigationMenuSub.cjs.map +1 -1
  402. package/dist/NavigationMenu/NavigationMenuSub.js.map +1 -1
  403. package/dist/NavigationMenu/NavigationMenuTrigger.cjs.map +1 -1
  404. package/dist/NavigationMenu/NavigationMenuTrigger.js.map +1 -1
  405. package/dist/NavigationMenu/NavigationMenuViewport.cjs.map +1 -1
  406. package/dist/NavigationMenu/NavigationMenuViewport.js.map +1 -1
  407. package/dist/NumberField/NumberFieldDecrement.cjs +1 -1
  408. package/dist/NumberField/NumberFieldDecrement.cjs.map +1 -1
  409. package/dist/NumberField/NumberFieldDecrement.js +1 -1
  410. package/dist/NumberField/NumberFieldDecrement.js.map +1 -1
  411. package/dist/NumberField/NumberFieldIncrement.cjs.map +1 -1
  412. package/dist/NumberField/NumberFieldIncrement.js.map +1 -1
  413. package/dist/NumberField/NumberFieldInput.cjs +3 -3
  414. package/dist/NumberField/NumberFieldInput.cjs.map +1 -1
  415. package/dist/NumberField/NumberFieldInput.js +3 -3
  416. package/dist/NumberField/NumberFieldInput.js.map +1 -1
  417. package/dist/NumberField/NumberFieldRoot.cjs +8 -5
  418. package/dist/NumberField/NumberFieldRoot.cjs.map +1 -1
  419. package/dist/NumberField/NumberFieldRoot.js +8 -5
  420. package/dist/NumberField/NumberFieldRoot.js.map +1 -1
  421. package/dist/NumberField/utils.cjs.map +1 -1
  422. package/dist/NumberField/utils.js +1 -1
  423. package/dist/NumberField/utils.js.map +1 -1
  424. package/dist/Pagination/PaginationList.cjs.map +1 -1
  425. package/dist/Pagination/PaginationList.js.map +1 -1
  426. package/dist/Pagination/PaginationRoot.cjs.map +1 -1
  427. package/dist/Pagination/PaginationRoot.js.map +1 -1
  428. package/dist/Pagination/utils.cjs.map +1 -1
  429. package/dist/Pagination/utils.js.map +1 -1
  430. package/dist/PinInput/PinInputInput.cjs +1 -1
  431. package/dist/PinInput/PinInputInput.cjs.map +1 -1
  432. package/dist/PinInput/PinInputInput.js +1 -1
  433. package/dist/PinInput/PinInputInput.js.map +1 -1
  434. package/dist/PinInput/PinInputRoot.cjs.map +1 -1
  435. package/dist/PinInput/PinInputRoot.js.map +1 -1
  436. package/dist/Popover/PopoverAnchor.cjs.map +1 -1
  437. package/dist/Popover/PopoverAnchor.js.map +1 -1
  438. package/dist/Popover/PopoverClose.cjs.map +1 -1
  439. package/dist/Popover/PopoverClose.js.map +1 -1
  440. package/dist/Popover/PopoverContent.cjs.map +1 -1
  441. package/dist/Popover/PopoverContent.js.map +1 -1
  442. package/dist/Popover/PopoverContentImpl.cjs +1 -1
  443. package/dist/Popover/PopoverContentImpl.cjs.map +1 -1
  444. package/dist/Popover/PopoverContentImpl.js +1 -1
  445. package/dist/Popover/PopoverContentImpl.js.map +1 -1
  446. package/dist/Popover/PopoverContentModal.cjs +1 -1
  447. package/dist/Popover/PopoverContentModal.cjs.map +1 -1
  448. package/dist/Popover/PopoverContentModal.js +1 -1
  449. package/dist/Popover/PopoverContentModal.js.map +1 -1
  450. package/dist/Popover/PopoverContentNonModal.cjs.map +1 -1
  451. package/dist/Popover/PopoverContentNonModal.js.map +1 -1
  452. package/dist/Popover/PopoverRoot.cjs.map +1 -1
  453. package/dist/Popover/PopoverRoot.js.map +1 -1
  454. package/dist/Popover/PopoverTrigger.cjs +1 -1
  455. package/dist/Popover/PopoverTrigger.cjs.map +1 -1
  456. package/dist/Popover/PopoverTrigger.js +1 -1
  457. package/dist/Popover/PopoverTrigger.js.map +1 -1
  458. package/dist/Popper/PopperAnchor.cjs.map +1 -1
  459. package/dist/Popper/PopperAnchor.js.map +1 -1
  460. package/dist/Popper/PopperArrow.cjs.map +1 -1
  461. package/dist/Popper/PopperArrow.js.map +1 -1
  462. package/dist/Popper/PopperContent.cjs +2 -2
  463. package/dist/Popper/PopperContent.cjs.map +1 -1
  464. package/dist/Popper/PopperContent.js +2 -2
  465. package/dist/Popper/PopperContent.js.map +1 -1
  466. package/dist/Popper/PopperRoot.cjs.map +1 -1
  467. package/dist/Popper/PopperRoot.js.map +1 -1
  468. package/dist/Presence/Presence.cjs +1 -1
  469. package/dist/Presence/Presence.cjs.map +1 -1
  470. package/dist/Presence/Presence.js +1 -1
  471. package/dist/Presence/Presence.js.map +1 -1
  472. package/dist/Presence/usePresence.cjs +2 -2
  473. package/dist/Presence/usePresence.cjs.map +1 -1
  474. package/dist/Presence/usePresence.js +2 -2
  475. package/dist/Presence/usePresence.js.map +1 -1
  476. package/dist/Primitive/Primitive.cjs.map +1 -1
  477. package/dist/Primitive/Primitive.js.map +1 -1
  478. package/dist/Primitive/Slot.cjs +1 -9
  479. package/dist/Primitive/Slot.cjs.map +1 -1
  480. package/dist/Primitive/Slot.js +1 -9
  481. package/dist/Primitive/Slot.js.map +1 -1
  482. package/dist/Primitive/usePrimitiveElement.cjs.map +1 -1
  483. package/dist/Primitive/usePrimitiveElement.js.map +1 -1
  484. package/dist/Progress/ProgressIndicator.cjs.map +1 -1
  485. package/dist/Progress/ProgressIndicator.js.map +1 -1
  486. package/dist/Progress/ProgressRoot.cjs +3 -2
  487. package/dist/Progress/ProgressRoot.cjs.map +1 -1
  488. package/dist/Progress/ProgressRoot.js +3 -2
  489. package/dist/Progress/ProgressRoot.js.map +1 -1
  490. package/dist/RadioGroup/Radio.cjs.map +1 -1
  491. package/dist/RadioGroup/Radio.js.map +1 -1
  492. package/dist/RadioGroup/RadioGroupIndicator.cjs.map +1 -1
  493. package/dist/RadioGroup/RadioGroupIndicator.js.map +1 -1
  494. package/dist/RadioGroup/RadioGroupItem.cjs +1 -1
  495. package/dist/RadioGroup/RadioGroupItem.cjs.map +1 -1
  496. package/dist/RadioGroup/RadioGroupItem.js +1 -1
  497. package/dist/RadioGroup/RadioGroupItem.js.map +1 -1
  498. package/dist/RadioGroup/RadioGroupRoot.cjs.map +1 -1
  499. package/dist/RadioGroup/RadioGroupRoot.js.map +1 -1
  500. package/dist/RadioGroup/utils.cjs.map +1 -1
  501. package/dist/RadioGroup/utils.js.map +1 -1
  502. package/dist/RangeCalendar/RangeCalendarCell.cjs +3 -3
  503. package/dist/RangeCalendar/RangeCalendarCell.cjs.map +1 -1
  504. package/dist/RangeCalendar/RangeCalendarCell.js +3 -3
  505. package/dist/RangeCalendar/RangeCalendarCell.js.map +1 -1
  506. package/dist/RangeCalendar/RangeCalendarCellTrigger.cjs +28 -9
  507. package/dist/RangeCalendar/RangeCalendarCellTrigger.cjs.map +1 -1
  508. package/dist/RangeCalendar/RangeCalendarCellTrigger.js +28 -9
  509. package/dist/RangeCalendar/RangeCalendarCellTrigger.js.map +1 -1
  510. package/dist/RangeCalendar/RangeCalendarHeading.cjs +1 -1
  511. package/dist/RangeCalendar/RangeCalendarHeading.cjs.map +1 -1
  512. package/dist/RangeCalendar/RangeCalendarHeading.js +1 -1
  513. package/dist/RangeCalendar/RangeCalendarHeading.js.map +1 -1
  514. package/dist/RangeCalendar/RangeCalendarNext.cjs.map +1 -1
  515. package/dist/RangeCalendar/RangeCalendarNext.js.map +1 -1
  516. package/dist/RangeCalendar/RangeCalendarPrev.cjs.map +1 -1
  517. package/dist/RangeCalendar/RangeCalendarPrev.js.map +1 -1
  518. package/dist/RangeCalendar/RangeCalendarRoot.cjs +32 -10
  519. package/dist/RangeCalendar/RangeCalendarRoot.cjs.map +1 -1
  520. package/dist/RangeCalendar/RangeCalendarRoot.js +32 -10
  521. package/dist/RangeCalendar/RangeCalendarRoot.js.map +1 -1
  522. package/dist/RangeCalendar/useRangeCalendar.cjs +26 -3
  523. package/dist/RangeCalendar/useRangeCalendar.cjs.map +1 -1
  524. package/dist/RangeCalendar/useRangeCalendar.js +26 -3
  525. package/dist/RangeCalendar/useRangeCalendar.js.map +1 -1
  526. package/dist/RovingFocus/RovingFocusGroup.cjs +1 -1
  527. package/dist/RovingFocus/RovingFocusGroup.cjs.map +1 -1
  528. package/dist/RovingFocus/RovingFocusGroup.js +1 -1
  529. package/dist/RovingFocus/RovingFocusGroup.js.map +1 -1
  530. package/dist/RovingFocus/RovingFocusItem.cjs +1 -1
  531. package/dist/RovingFocus/RovingFocusItem.cjs.map +1 -1
  532. package/dist/RovingFocus/RovingFocusItem.js +1 -1
  533. package/dist/RovingFocus/RovingFocusItem.js.map +1 -1
  534. package/dist/ScrollArea/ScrollAreaCorner.cjs.map +1 -1
  535. package/dist/ScrollArea/ScrollAreaCorner.js.map +1 -1
  536. package/dist/ScrollArea/ScrollAreaCornerImpl.cjs +1 -1
  537. package/dist/ScrollArea/ScrollAreaCornerImpl.cjs.map +1 -1
  538. package/dist/ScrollArea/ScrollAreaCornerImpl.js +1 -1
  539. package/dist/ScrollArea/ScrollAreaCornerImpl.js.map +1 -1
  540. package/dist/ScrollArea/ScrollAreaRoot.cjs.map +1 -1
  541. package/dist/ScrollArea/ScrollAreaRoot.js.map +1 -1
  542. package/dist/ScrollArea/ScrollAreaScrollbar.cjs +1 -1
  543. package/dist/ScrollArea/ScrollAreaScrollbar.cjs.map +1 -1
  544. package/dist/ScrollArea/ScrollAreaScrollbar.js +1 -1
  545. package/dist/ScrollArea/ScrollAreaScrollbar.js.map +1 -1
  546. package/dist/ScrollArea/ScrollAreaScrollbarAuto.cjs.map +1 -1
  547. package/dist/ScrollArea/ScrollAreaScrollbarAuto.js.map +1 -1
  548. package/dist/ScrollArea/ScrollAreaScrollbarHover.cjs.map +1 -1
  549. package/dist/ScrollArea/ScrollAreaScrollbarHover.js.map +1 -1
  550. package/dist/ScrollArea/ScrollAreaScrollbarImpl.cjs.map +1 -1
  551. package/dist/ScrollArea/ScrollAreaScrollbarImpl.js.map +1 -1
  552. package/dist/ScrollArea/ScrollAreaScrollbarScroll.cjs.map +1 -1
  553. package/dist/ScrollArea/ScrollAreaScrollbarScroll.js.map +1 -1
  554. package/dist/ScrollArea/ScrollAreaScrollbarVisible.cjs.map +1 -1
  555. package/dist/ScrollArea/ScrollAreaScrollbarVisible.js.map +1 -1
  556. package/dist/ScrollArea/ScrollAreaScrollbarX.cjs.map +1 -1
  557. package/dist/ScrollArea/ScrollAreaScrollbarX.js.map +1 -1
  558. package/dist/ScrollArea/ScrollAreaScrollbarY.cjs.map +1 -1
  559. package/dist/ScrollArea/ScrollAreaScrollbarY.js.map +1 -1
  560. package/dist/ScrollArea/ScrollAreaThumb.cjs.map +1 -1
  561. package/dist/ScrollArea/ScrollAreaThumb.js.map +1 -1
  562. package/dist/ScrollArea/ScrollAreaViewport.cjs +1 -1
  563. package/dist/ScrollArea/ScrollAreaViewport.cjs.map +1 -1
  564. package/dist/ScrollArea/ScrollAreaViewport.js +1 -1
  565. package/dist/ScrollArea/ScrollAreaViewport.js.map +1 -1
  566. package/dist/ScrollArea/utils.cjs.map +1 -1
  567. package/dist/ScrollArea/utils.js.map +1 -1
  568. package/dist/Select/SelectArrow.cjs +1 -1
  569. package/dist/Select/SelectArrow.cjs.map +1 -1
  570. package/dist/Select/SelectArrow.js +1 -1
  571. package/dist/Select/SelectArrow.js.map +1 -1
  572. package/dist/Select/SelectContent.cjs.map +1 -1
  573. package/dist/Select/SelectContent.js.map +1 -1
  574. package/dist/Select/SelectContentImpl.cjs +4 -4
  575. package/dist/Select/SelectContentImpl.cjs.map +1 -1
  576. package/dist/Select/SelectContentImpl.js +4 -4
  577. package/dist/Select/SelectContentImpl.js.map +1 -1
  578. package/dist/Select/SelectItem.cjs +1 -1
  579. package/dist/Select/SelectItem.cjs.map +1 -1
  580. package/dist/Select/SelectItem.js +1 -1
  581. package/dist/Select/SelectItem.js.map +1 -1
  582. package/dist/Select/SelectItemAlignedPosition.cjs +2 -2
  583. package/dist/Select/SelectItemAlignedPosition.cjs.map +1 -1
  584. package/dist/Select/SelectItemAlignedPosition.js +2 -2
  585. package/dist/Select/SelectItemAlignedPosition.js.map +1 -1
  586. package/dist/Select/SelectItemIndicator.cjs.map +1 -1
  587. package/dist/Select/SelectItemIndicator.js.map +1 -1
  588. package/dist/Select/SelectItemText.cjs.map +1 -1
  589. package/dist/Select/SelectItemText.js.map +1 -1
  590. package/dist/Select/SelectPopperPosition.cjs +1 -1
  591. package/dist/Select/SelectPopperPosition.cjs.map +1 -1
  592. package/dist/Select/SelectPopperPosition.js +1 -1
  593. package/dist/Select/SelectPopperPosition.js.map +1 -1
  594. package/dist/Select/SelectProvider.cjs.map +1 -1
  595. package/dist/Select/SelectProvider.js.map +1 -1
  596. package/dist/Select/SelectRoot.cjs +5 -3
  597. package/dist/Select/SelectRoot.cjs.map +1 -1
  598. package/dist/Select/SelectRoot.js +5 -3
  599. package/dist/Select/SelectRoot.js.map +1 -1
  600. package/dist/Select/SelectScrollButtonImpl.cjs.map +1 -1
  601. package/dist/Select/SelectScrollButtonImpl.js.map +1 -1
  602. package/dist/Select/SelectScrollDownButton.cjs +1 -1
  603. package/dist/Select/SelectScrollDownButton.cjs.map +1 -1
  604. package/dist/Select/SelectScrollDownButton.js +1 -1
  605. package/dist/Select/SelectScrollDownButton.js.map +1 -1
  606. package/dist/Select/SelectTrigger.cjs +3 -3
  607. package/dist/Select/SelectTrigger.cjs.map +1 -1
  608. package/dist/Select/SelectTrigger.js +3 -3
  609. package/dist/Select/SelectTrigger.js.map +1 -1
  610. package/dist/Select/SelectValue.cjs +2 -1
  611. package/dist/Select/SelectValue.cjs.map +1 -1
  612. package/dist/Select/SelectValue.js +2 -1
  613. package/dist/Select/SelectValue.js.map +1 -1
  614. package/dist/Select/SelectViewport.cjs +1 -1
  615. package/dist/Select/SelectViewport.cjs.map +1 -1
  616. package/dist/Select/SelectViewport.js +1 -1
  617. package/dist/Select/SelectViewport.js.map +1 -1
  618. package/dist/Select/utils.cjs +4 -0
  619. package/dist/Select/utils.cjs.map +1 -1
  620. package/dist/Select/utils.js +4 -1
  621. package/dist/Select/utils.js.map +1 -1
  622. package/dist/Slider/SliderHorizontal.cjs +7 -4
  623. package/dist/Slider/SliderHorizontal.cjs.map +1 -1
  624. package/dist/Slider/SliderHorizontal.js +7 -4
  625. package/dist/Slider/SliderHorizontal.js.map +1 -1
  626. package/dist/Slider/SliderRange.cjs +2 -2
  627. package/dist/Slider/SliderRange.cjs.map +1 -1
  628. package/dist/Slider/SliderRange.js +2 -2
  629. package/dist/Slider/SliderRange.js.map +1 -1
  630. package/dist/Slider/SliderRoot.cjs +1 -1
  631. package/dist/Slider/SliderRoot.cjs.map +1 -1
  632. package/dist/Slider/SliderRoot.js +1 -1
  633. package/dist/Slider/SliderRoot.js.map +1 -1
  634. package/dist/Slider/SliderThumb.cjs +1 -1
  635. package/dist/Slider/SliderThumb.cjs.map +1 -1
  636. package/dist/Slider/SliderThumb.js +1 -1
  637. package/dist/Slider/SliderThumb.js.map +1 -1
  638. package/dist/Slider/SliderThumbImpl.cjs +2 -2
  639. package/dist/Slider/SliderThumbImpl.cjs.map +1 -1
  640. package/dist/Slider/SliderThumbImpl.js +2 -2
  641. package/dist/Slider/SliderThumbImpl.js.map +1 -1
  642. package/dist/Slider/SliderVertical.cjs +7 -4
  643. package/dist/Slider/SliderVertical.cjs.map +1 -1
  644. package/dist/Slider/SliderVertical.js +7 -4
  645. package/dist/Slider/SliderVertical.js.map +1 -1
  646. package/dist/Slider/utils.cjs +1 -1
  647. package/dist/Slider/utils.cjs.map +1 -1
  648. package/dist/Slider/utils.js +1 -1
  649. package/dist/Slider/utils.js.map +1 -1
  650. package/dist/Splitter/SplitterGroup.cjs +5 -5
  651. package/dist/Splitter/SplitterGroup.cjs.map +1 -1
  652. package/dist/Splitter/SplitterGroup.js +5 -5
  653. package/dist/Splitter/SplitterGroup.js.map +1 -1
  654. package/dist/Splitter/SplitterPanel.cjs +16 -10
  655. package/dist/Splitter/SplitterPanel.cjs.map +1 -1
  656. package/dist/Splitter/SplitterPanel.js +16 -10
  657. package/dist/Splitter/SplitterPanel.js.map +1 -1
  658. package/dist/Splitter/SplitterResizeHandle.cjs +1 -1
  659. package/dist/Splitter/SplitterResizeHandle.cjs.map +1 -1
  660. package/dist/Splitter/SplitterResizeHandle.js +1 -1
  661. package/dist/Splitter/SplitterResizeHandle.js.map +1 -1
  662. package/dist/Stepper/StepperDescription.cjs +1 -1
  663. package/dist/Stepper/StepperDescription.cjs.map +1 -1
  664. package/dist/Stepper/StepperDescription.js +1 -1
  665. package/dist/Stepper/StepperDescription.js.map +1 -1
  666. package/dist/Stepper/StepperIndicator.cjs.map +1 -1
  667. package/dist/Stepper/StepperIndicator.js.map +1 -1
  668. package/dist/Stepper/StepperItem.cjs.map +1 -1
  669. package/dist/Stepper/StepperItem.js.map +1 -1
  670. package/dist/Stepper/StepperRoot.cjs +30 -3
  671. package/dist/Stepper/StepperRoot.cjs.map +1 -1
  672. package/dist/Stepper/StepperRoot.js +30 -3
  673. package/dist/Stepper/StepperRoot.js.map +1 -1
  674. package/dist/Stepper/StepperSeparator.cjs.map +1 -1
  675. package/dist/Stepper/StepperSeparator.js.map +1 -1
  676. package/dist/Stepper/StepperTitle.cjs.map +1 -1
  677. package/dist/Stepper/StepperTitle.js.map +1 -1
  678. package/dist/Stepper/StepperTrigger.cjs +1 -1
  679. package/dist/Stepper/StepperTrigger.cjs.map +1 -1
  680. package/dist/Stepper/StepperTrigger.js +1 -1
  681. package/dist/Stepper/StepperTrigger.js.map +1 -1
  682. package/dist/Switch/SwitchRoot.cjs.map +1 -1
  683. package/dist/Switch/SwitchRoot.js.map +1 -1
  684. package/dist/Switch/SwitchThumb.cjs.map +1 -1
  685. package/dist/Switch/SwitchThumb.js.map +1 -1
  686. package/dist/Tabs/TabsContent.cjs +1 -1
  687. package/dist/Tabs/TabsContent.cjs.map +1 -1
  688. package/dist/Tabs/TabsContent.js +1 -1
  689. package/dist/Tabs/TabsContent.js.map +1 -1
  690. package/dist/Tabs/TabsIndicator.cjs.map +1 -1
  691. package/dist/Tabs/TabsIndicator.js.map +1 -1
  692. package/dist/Tabs/TabsList.cjs +1 -1
  693. package/dist/Tabs/TabsList.cjs.map +1 -1
  694. package/dist/Tabs/TabsList.js +1 -1
  695. package/dist/Tabs/TabsList.js.map +1 -1
  696. package/dist/Tabs/TabsRoot.cjs.map +1 -1
  697. package/dist/Tabs/TabsRoot.js.map +1 -1
  698. package/dist/Tabs/TabsTrigger.cjs.map +1 -1
  699. package/dist/Tabs/TabsTrigger.js.map +1 -1
  700. package/dist/TagsInput/TagsInputClear.cjs +1 -1
  701. package/dist/TagsInput/TagsInputClear.cjs.map +1 -1
  702. package/dist/TagsInput/TagsInputClear.js +1 -1
  703. package/dist/TagsInput/TagsInputClear.js.map +1 -1
  704. package/dist/TagsInput/TagsInputInput.cjs +2 -1
  705. package/dist/TagsInput/TagsInputInput.cjs.map +1 -1
  706. package/dist/TagsInput/TagsInputInput.js +2 -1
  707. package/dist/TagsInput/TagsInputInput.js.map +1 -1
  708. package/dist/TagsInput/TagsInputItem.cjs.map +1 -1
  709. package/dist/TagsInput/TagsInputItem.js.map +1 -1
  710. package/dist/TagsInput/TagsInputItemDelete.cjs +1 -1
  711. package/dist/TagsInput/TagsInputItemDelete.cjs.map +1 -1
  712. package/dist/TagsInput/TagsInputItemDelete.js +1 -1
  713. package/dist/TagsInput/TagsInputItemDelete.js.map +1 -1
  714. package/dist/TagsInput/TagsInputItemText.cjs +1 -1
  715. package/dist/TagsInput/TagsInputItemText.cjs.map +1 -1
  716. package/dist/TagsInput/TagsInputItemText.js +1 -1
  717. package/dist/TagsInput/TagsInputItemText.js.map +1 -1
  718. package/dist/TagsInput/TagsInputRoot.cjs +1 -1
  719. package/dist/TagsInput/TagsInputRoot.cjs.map +1 -1
  720. package/dist/TagsInput/TagsInputRoot.js +1 -1
  721. package/dist/TagsInput/TagsInputRoot.js.map +1 -1
  722. package/dist/TimeField/TimeFieldInput.cjs +1 -0
  723. package/dist/TimeField/TimeFieldInput.cjs.map +1 -1
  724. package/dist/TimeField/TimeFieldInput.js +1 -0
  725. package/dist/TimeField/TimeFieldInput.js.map +1 -1
  726. package/dist/TimeField/TimeFieldRoot.cjs +12 -3
  727. package/dist/TimeField/TimeFieldRoot.cjs.map +1 -1
  728. package/dist/TimeField/TimeFieldRoot.js +12 -3
  729. package/dist/TimeField/TimeFieldRoot.js.map +1 -1
  730. package/dist/Toast/ToastAnnounce.cjs +1 -1
  731. package/dist/Toast/ToastAnnounce.cjs.map +1 -1
  732. package/dist/Toast/ToastAnnounce.js +1 -1
  733. package/dist/Toast/ToastAnnounce.js.map +1 -1
  734. package/dist/Toast/ToastProvider.cjs.map +1 -1
  735. package/dist/Toast/ToastProvider.js.map +1 -1
  736. package/dist/Toast/ToastRoot.cjs +28 -20
  737. package/dist/Toast/ToastRoot.cjs.map +1 -1
  738. package/dist/Toast/ToastRoot.js +28 -20
  739. package/dist/Toast/ToastRoot.js.map +1 -1
  740. package/dist/Toast/ToastRootImpl.cjs +2 -2
  741. package/dist/Toast/ToastRootImpl.cjs.map +1 -1
  742. package/dist/Toast/ToastRootImpl.js +2 -2
  743. package/dist/Toast/ToastRootImpl.js.map +1 -1
  744. package/dist/Toast/ToastViewport.cjs +2 -2
  745. package/dist/Toast/ToastViewport.cjs.map +1 -1
  746. package/dist/Toast/ToastViewport.js +2 -2
  747. package/dist/Toast/ToastViewport.js.map +1 -1
  748. package/dist/Toggle/Toggle.cjs.map +1 -1
  749. package/dist/Toggle/Toggle.js.map +1 -1
  750. package/dist/ToggleGroup/ToggleGroupItem.cjs.map +1 -1
  751. package/dist/ToggleGroup/ToggleGroupItem.js.map +1 -1
  752. package/dist/ToggleGroup/ToggleGroupRoot.cjs.map +1 -1
  753. package/dist/ToggleGroup/ToggleGroupRoot.js.map +1 -1
  754. package/dist/Toolbar/ToolbarSeparator.cjs +1 -1
  755. package/dist/Toolbar/ToolbarSeparator.js +1 -1
  756. package/dist/Toolbar/ToolbarToggleGroup.cjs +1 -1
  757. package/dist/Toolbar/ToolbarToggleGroup.cjs.map +1 -1
  758. package/dist/Toolbar/ToolbarToggleGroup.js +1 -1
  759. package/dist/Toolbar/ToolbarToggleGroup.js.map +1 -1
  760. package/dist/Toolbar/ToolbarToggleItem.cjs.map +1 -1
  761. package/dist/Toolbar/ToolbarToggleItem.js.map +1 -1
  762. package/dist/Tooltip/TooltipContent.cjs +1 -1
  763. package/dist/Tooltip/TooltipContent.cjs.map +1 -1
  764. package/dist/Tooltip/TooltipContent.js +1 -1
  765. package/dist/Tooltip/TooltipContent.js.map +1 -1
  766. package/dist/Tooltip/TooltipContentHoverable.cjs.map +1 -1
  767. package/dist/Tooltip/TooltipContentHoverable.js.map +1 -1
  768. package/dist/Tooltip/TooltipContentImpl.cjs +3 -3
  769. package/dist/Tooltip/TooltipContentImpl.cjs.map +1 -1
  770. package/dist/Tooltip/TooltipContentImpl.js +3 -3
  771. package/dist/Tooltip/TooltipContentImpl.js.map +1 -1
  772. package/dist/Tooltip/TooltipRoot.cjs.map +1 -1
  773. package/dist/Tooltip/TooltipRoot.js.map +1 -1
  774. package/dist/Tooltip/TooltipTrigger.cjs +4 -1
  775. package/dist/Tooltip/TooltipTrigger.cjs.map +1 -1
  776. package/dist/Tooltip/TooltipTrigger.js +4 -1
  777. package/dist/Tooltip/TooltipTrigger.js.map +1 -1
  778. package/dist/Tree/TreeItem.cjs +4 -1
  779. package/dist/Tree/TreeItem.cjs.map +1 -1
  780. package/dist/Tree/TreeItem.js +4 -1
  781. package/dist/Tree/TreeItem.js.map +1 -1
  782. package/dist/Tree/TreeRoot.cjs +28 -2
  783. package/dist/Tree/TreeRoot.cjs.map +1 -1
  784. package/dist/Tree/TreeRoot.js +28 -2
  785. package/dist/Tree/TreeRoot.js.map +1 -1
  786. package/dist/Tree/TreeVirtualizer.cjs +2 -2
  787. package/dist/Tree/TreeVirtualizer.cjs.map +1 -1
  788. package/dist/Tree/TreeVirtualizer.js +2 -2
  789. package/dist/Tree/TreeVirtualizer.js.map +1 -1
  790. package/dist/Tree/utils.cjs.map +1 -1
  791. package/dist/Tree/utils.js.map +1 -1
  792. package/dist/Viewport/Viewport.cjs.map +1 -1
  793. package/dist/Viewport/Viewport.js.map +1 -1
  794. package/dist/VisuallyHidden/VisuallyHiddenInput.cjs.map +1 -1
  795. package/dist/VisuallyHidden/VisuallyHiddenInput.js.map +1 -1
  796. package/dist/VisuallyHidden/VisuallyHiddenInputBubble.cjs.map +1 -1
  797. package/dist/VisuallyHidden/VisuallyHiddenInputBubble.js.map +1 -1
  798. package/dist/composables/useWindowSplitterBehavior.cjs.map +1 -1
  799. package/dist/composables/useWindowSplitterBehavior.js.map +1 -1
  800. package/dist/composables/useWindowSplitterPanelGroupBehavior.cjs +3 -3
  801. package/dist/composables/useWindowSplitterPanelGroupBehavior.cjs.map +1 -1
  802. package/dist/composables/useWindowSplitterPanelGroupBehavior.js +3 -3
  803. package/dist/composables/useWindowSplitterPanelGroupBehavior.js.map +1 -1
  804. package/dist/date/calendar.cjs +1 -1
  805. package/dist/date/calendar.cjs.map +1 -1
  806. package/dist/date/calendar.js +1 -1
  807. package/dist/date/calendar.js.map +1 -1
  808. package/dist/date/comparators.cjs +6 -4
  809. package/dist/date/comparators.cjs.map +1 -1
  810. package/dist/date/comparators.js +6 -4
  811. package/dist/date/comparators.js.map +1 -1
  812. package/dist/date/parser.cjs +22 -7
  813. package/dist/date/parser.cjs.map +1 -1
  814. package/dist/date/parser.js +23 -8
  815. package/dist/date/parser.js.map +1 -1
  816. package/dist/date/useDateField.cjs +21 -6
  817. package/dist/date/useDateField.cjs.map +1 -1
  818. package/dist/date/useDateField.js +21 -6
  819. package/dist/date/useDateField.js.map +1 -1
  820. package/dist/date/utils.cjs +37 -8
  821. package/dist/date/utils.cjs.map +1 -1
  822. package/dist/date/utils.js +36 -9
  823. package/dist/date/utils.js.map +1 -1
  824. package/dist/date.d.ts +2 -2
  825. package/dist/index.cjs +347 -347
  826. package/dist/index.cjs.map +1 -1
  827. package/dist/index.d.ts +1558 -1552
  828. package/dist/index.js +161 -161
  829. package/dist/index.js.map +1 -1
  830. package/dist/shared/createContext.cjs.map +1 -1
  831. package/dist/shared/createContext.js.map +1 -1
  832. package/dist/shared/renderSlotFragments.cjs.map +1 -1
  833. package/dist/shared/renderSlotFragments.js.map +1 -1
  834. package/dist/shared/useArrowNavigation.cjs.map +1 -1
  835. package/dist/shared/useArrowNavigation.js.map +1 -1
  836. package/dist/shared/useBodyScrollLock.cjs +3 -3
  837. package/dist/shared/useBodyScrollLock.cjs.map +1 -1
  838. package/dist/shared/useBodyScrollLock.js +3 -3
  839. package/dist/shared/useBodyScrollLock.js.map +1 -1
  840. package/dist/shared/useDateFormatter.cjs +12 -10
  841. package/dist/shared/useDateFormatter.cjs.map +1 -1
  842. package/dist/shared/useDateFormatter.js +12 -10
  843. package/dist/shared/useDateFormatter.js.map +1 -1
  844. package/dist/shared/useDirection.cjs.map +1 -1
  845. package/dist/shared/useDirection.js.map +1 -1
  846. package/dist/shared/useFilter.cjs.map +1 -1
  847. package/dist/shared/useFilter.js.map +1 -1
  848. package/dist/shared/useFormControl.cjs.map +1 -1
  849. package/dist/shared/useFormControl.js.map +1 -1
  850. package/dist/shared/useForwardExpose.cjs.map +1 -1
  851. package/dist/shared/useForwardExpose.js.map +1 -1
  852. package/dist/shared/useForwardProps.cjs +4 -2
  853. package/dist/shared/useForwardProps.cjs.map +1 -1
  854. package/dist/shared/useForwardProps.js +5 -3
  855. package/dist/shared/useForwardProps.js.map +1 -1
  856. package/dist/shared/useForwardPropsEmits.cjs.map +1 -1
  857. package/dist/shared/useForwardPropsEmits.js.map +1 -1
  858. package/dist/shared/useGraceArea.cjs +1 -1
  859. package/dist/shared/useGraceArea.cjs.map +1 -1
  860. package/dist/shared/useGraceArea.js +1 -1
  861. package/dist/shared/useGraceArea.js.map +1 -1
  862. package/dist/shared/useHideOthers.cjs.map +1 -1
  863. package/dist/shared/useHideOthers.js.map +1 -1
  864. package/dist/shared/useId.cjs +2 -2
  865. package/dist/shared/useId.cjs.map +1 -1
  866. package/dist/shared/useId.js +2 -2
  867. package/dist/shared/useId.js.map +1 -1
  868. package/dist/shared/useLocale.cjs.map +1 -1
  869. package/dist/shared/useLocale.js.map +1 -1
  870. package/dist/shared/useNonce.cjs.map +1 -1
  871. package/dist/shared/useNonce.js.map +1 -1
  872. package/dist/shared/useSelectionBehavior.cjs +2 -2
  873. package/dist/shared/useSelectionBehavior.cjs.map +1 -1
  874. package/dist/shared/useSelectionBehavior.js +2 -2
  875. package/dist/shared/useSelectionBehavior.js.map +1 -1
  876. package/dist/shared/useSingleOrMultipleValue.cjs +1 -1
  877. package/dist/shared/useSingleOrMultipleValue.cjs.map +1 -1
  878. package/dist/shared/useSingleOrMultipleValue.js +1 -1
  879. package/dist/shared/useSingleOrMultipleValue.js.map +1 -1
  880. package/dist/shared/useSize.cjs.map +1 -1
  881. package/dist/shared/useSize.js.map +1 -1
  882. package/dist/shared/useStateMachine.cjs.map +1 -1
  883. package/dist/shared/useStateMachine.js.map +1 -1
  884. package/dist/shared/withDefault.cjs.map +1 -1
  885. package/dist/shared/withDefault.js.map +1 -1
  886. package/dist/utils/calculate.cjs +1 -1
  887. package/dist/utils/calculate.cjs.map +1 -1
  888. package/dist/utils/calculate.js +1 -1
  889. package/dist/utils/calculate.js.map +1 -1
  890. package/dist/utils/dom.cjs.map +1 -1
  891. package/dist/utils/dom.js.map +1 -1
  892. package/dist/utils/registry.cjs +1 -1
  893. package/dist/utils/registry.cjs.map +1 -1
  894. package/dist/utils/registry.js +1 -1
  895. package/dist/utils/registry.js.map +1 -1
  896. package/dist/utils/resizePanel.cjs +1 -1
  897. package/dist/utils/resizePanel.cjs.map +1 -1
  898. package/dist/utils/resizePanel.js +1 -1
  899. package/dist/utils/resizePanel.js.map +1 -1
  900. package/dist/utils/style.cjs.map +1 -1
  901. package/dist/utils/style.js.map +1 -1
  902. package/package.json +7 -8
@@ -1 +1 @@
1
- {"version":3,"file":"MenubarSubContent.js","sources":["../../src/Menubar/MenubarSubContent.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type {\n MenuSubContentEmits,\n MenuSubContentProps,\n} from '@/Menu'\nimport { useCollection } from '@/Collection'\n\nexport type MenubarSubContentEmits = MenuSubContentEmits\n\nexport interface MenubarSubContentProps extends MenuSubContentProps {}\n</script>\n\n<script setup lang=\"ts\">\nimport { injectMenubarRootContext } from './MenubarRoot.vue'\nimport { injectMenubarMenuContext } from './MenubarMenu.vue'\nimport { MenuSubContent } from '@/Menu'\nimport { useForwardExpose, useForwardPropsEmits } from '@/shared'\nimport { wrapArray } from '@/shared/useTypeahead'\n\nconst props = defineProps<MenubarSubContentProps>()\nconst emits = defineEmits<MenubarSubContentEmits>()\nconst forwarded = useForwardPropsEmits(props, emits)\nuseForwardExpose()\n\nconst { getItems } = useCollection({ key: 'Menubar' })\n\nconst rootContext = injectMenubarRootContext()\nconst menuContext = injectMenubarMenuContext()\n\nfunction handleArrowNavigation(event: KeyboardEvent) {\n const target = event.target as HTMLElement\n const targetIsSubTrigger = target.hasAttribute(\n 'data-reka-menubar-subtrigger',\n )\n\n // Prevent navigation when we're opening a submenu\n if (targetIsSubTrigger)\n return\n\n let candidateValues = getItems().filter(i => i.ref.dataset.disabled !== '').map(i => i.ref.dataset.value)\n const currentIndex = candidateValues.indexOf(menuContext.value)\n\n candidateValues = rootContext.loop.value\n ? wrapArray(candidateValues, currentIndex + 1)\n : candidateValues.slice(currentIndex + 1)\n\n const [nextValue] = candidateValues\n if (nextValue)\n rootContext.onMenuOpen(nextValue)\n}\n</script>\n\n<template>\n <MenuSubContent\n v-bind=\"forwarded\"\n data-reka-menubar-content=\"\"\n :style=\"{\n '--reka-menubar-content-transform-origin':\n 'var(--reka-popper-transform-origin)',\n '--reka-menubar-content-available-width':\n 'var(--reka-popper-available-width)',\n '--reka-menubar-content-available-height':\n 'var(--reka-popper-available-height)',\n '--reka-menubar-trigger-width': 'var(--reka-popper-anchor-width)',\n '--reka-menubar-trigger-height': 'var(--reka-popper-anchor-height)',\n }\"\n @keydown.arrow-right=\"handleArrowNavigation\"\n >\n <slot />\n </MenuSubContent>\n</template>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmBA,IAAA,MAAM,KAAQ,GAAA,OAAA;AACd,IAAA,MAAM,KAAQ,GAAA,MAAA;AACd,IAAM,MAAA,SAAA,GAAY,oBAAqB,CAAA,KAAA,EAAO,KAAK,CAAA;AACnD,IAAiB,gBAAA,EAAA;AAEjB,IAAA,MAAM,EAAE,QAAS,EAAA,GAAI,cAAc,EAAE,GAAA,EAAK,WAAW,CAAA;AAErD,IAAA,MAAM,cAAc,wBAAyB,EAAA;AAC7C,IAAA,MAAM,cAAc,wBAAyB,EAAA;AAE7C,IAAA,SAAS,sBAAsB,KAAsB,EAAA;AACnD,MAAA,MAAM,SAAS,KAAM,CAAA,MAAA;AACrB,MAAA,MAAM,qBAAqB,MAAO,CAAA,YAAA;AAAA,QAChC;AAAA,OACF;AAGA,MAAI,IAAA,kBAAA;AACF,QAAA;AAEF,MAAA,IAAI,kBAAkB,QAAS,EAAA,CAAE,MAAO,CAAA,CAAA,CAAA,KAAK,EAAE,GAAI,CAAA,OAAA,CAAQ,QAAa,KAAA,EAAE,EAAE,GAAI,CAAA,CAAA,CAAA,KAAK,CAAE,CAAA,GAAA,CAAI,QAAQ,KAAK,CAAA;AACxG,MAAA,MAAM,YAAe,GAAA,eAAA,CAAgB,OAAQ,CAAA,WAAA,CAAY,KAAK,CAAA;AAE9D,MAAkB,eAAA,GAAA,WAAA,CAAY,IAAK,CAAA,KAAA,GAC/B,SAAU,CAAA,eAAA,EAAiB,YAAe,GAAA,CAAC,CAC3C,GAAA,eAAA,CAAgB,KAAM,CAAA,YAAA,GAAe,CAAC,CAAA;AAE1C,MAAM,MAAA,CAAC,SAAS,CAAI,GAAA,eAAA;AACpB,MAAI,IAAA,SAAA;AACF,QAAA,WAAA,CAAY,WAAW,SAAS,CAAA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"MenubarSubContent.js","sources":["../../src/Menubar/MenubarSubContent.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type {\n MenuSubContentEmits,\n MenuSubContentProps,\n} from '@/Menu'\nimport { useCollection } from '@/Collection'\n\nexport type MenubarSubContentEmits = MenuSubContentEmits\n\nexport interface MenubarSubContentProps extends MenuSubContentProps {}\n</script>\n\n<script setup lang=\"ts\">\nimport { MenuSubContent } from '@/Menu'\nimport { useForwardExpose, useForwardPropsEmits } from '@/shared'\nimport { wrapArray } from '@/shared/useTypeahead'\nimport { injectMenubarMenuContext } from './MenubarMenu.vue'\nimport { injectMenubarRootContext } from './MenubarRoot.vue'\n\nconst props = defineProps<MenubarSubContentProps>()\nconst emits = defineEmits<MenubarSubContentEmits>()\nconst forwarded = useForwardPropsEmits(props, emits)\nuseForwardExpose()\n\nconst { getItems } = useCollection({ key: 'Menubar' })\n\nconst rootContext = injectMenubarRootContext()\nconst menuContext = injectMenubarMenuContext()\n\nfunction handleArrowNavigation(event: KeyboardEvent) {\n const target = event.target as HTMLElement\n const targetIsSubTrigger = target.hasAttribute(\n 'data-reka-menubar-subtrigger',\n )\n\n // Prevent navigation when we're opening a submenu\n if (targetIsSubTrigger)\n return\n\n let candidateValues = getItems().filter(i => i.ref.dataset.disabled !== '').map(i => i.ref.dataset.value)\n const currentIndex = candidateValues.indexOf(menuContext.value)\n\n candidateValues = rootContext.loop.value\n ? wrapArray(candidateValues, currentIndex + 1)\n : candidateValues.slice(currentIndex + 1)\n\n const [nextValue] = candidateValues\n if (nextValue)\n rootContext.onMenuOpen(nextValue)\n}\n</script>\n\n<template>\n <MenuSubContent\n v-bind=\"forwarded\"\n data-reka-menubar-content=\"\"\n :style=\"{\n '--reka-menubar-content-transform-origin':\n 'var(--reka-popper-transform-origin)',\n '--reka-menubar-content-available-width':\n 'var(--reka-popper-available-width)',\n '--reka-menubar-content-available-height':\n 'var(--reka-popper-available-height)',\n '--reka-menubar-trigger-width': 'var(--reka-popper-anchor-width)',\n '--reka-menubar-trigger-height': 'var(--reka-popper-anchor-height)',\n }\"\n @keydown.arrow-right=\"handleArrowNavigation\"\n >\n <slot />\n </MenuSubContent>\n</template>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmBA,IAAA,MAAM,KAAQ,GAAA,OAAA;AACd,IAAA,MAAM,KAAQ,GAAA,MAAA;AACd,IAAM,MAAA,SAAA,GAAY,oBAAqB,CAAA,KAAA,EAAO,KAAK,CAAA;AACnD,IAAiB,gBAAA,EAAA;AAEjB,IAAA,MAAM,EAAE,QAAS,EAAA,GAAI,cAAc,EAAE,GAAA,EAAK,WAAW,CAAA;AAErD,IAAA,MAAM,cAAc,wBAAyB,EAAA;AAC7C,IAAA,MAAM,cAAc,wBAAyB,EAAA;AAE7C,IAAA,SAAS,sBAAsB,KAAsB,EAAA;AACnD,MAAA,MAAM,SAAS,KAAM,CAAA,MAAA;AACrB,MAAA,MAAM,qBAAqB,MAAO,CAAA,YAAA;AAAA,QAChC;AAAA,OACF;AAGA,MAAI,IAAA,kBAAA;AACF,QAAA;AAEF,MAAA,IAAI,kBAAkB,QAAS,EAAA,CAAE,MAAO,CAAA,CAAA,CAAA,KAAK,EAAE,GAAI,CAAA,OAAA,CAAQ,QAAa,KAAA,EAAE,EAAE,GAAI,CAAA,CAAA,CAAA,KAAK,CAAE,CAAA,GAAA,CAAI,QAAQ,KAAK,CAAA;AACxG,MAAA,MAAM,YAAe,GAAA,eAAA,CAAgB,OAAQ,CAAA,WAAA,CAAY,KAAK,CAAA;AAE9D,MAAkB,eAAA,GAAA,WAAA,CAAY,IAAK,CAAA,KAAA,GAC/B,SAAU,CAAA,eAAA,EAAiB,YAAe,GAAA,CAAC,CAC3C,GAAA,eAAA,CAAgB,KAAM,CAAA,YAAA,GAAe,CAAC,CAAA;AAE1C,MAAM,MAAA,CAAC,SAAS,CAAI,GAAA,eAAA;AACpB,MAAI,IAAA,SAAA;AACF,QAAA,WAAA,CAAY,WAAW,SAAS,CAAA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -3,11 +3,11 @@
3
3
  const vue = require('vue');
4
4
  const Menu_MenuAnchor = require('../Menu/MenuAnchor.cjs');
5
5
  const Collection_Collection = require('../Collection/Collection.cjs');
6
- const Menubar_MenubarMenu = require('./MenubarMenu.cjs');
7
6
  const shared_useForwardExpose = require('../shared/useForwardExpose.cjs');
8
7
  const RovingFocus_RovingFocusItem = require('../RovingFocus/RovingFocusItem.cjs');
9
8
  const Primitive_Primitive = require('../Primitive/Primitive.cjs');
10
9
  const Menubar_MenubarRoot = require('./MenubarRoot.cjs');
10
+ const Menubar_MenubarMenu = require('./MenubarMenu.cjs');
11
11
 
12
12
  const _sfc_main = /* @__PURE__ */ vue.defineComponent({
13
13
  __name: "MenubarTrigger",
@@ -1 +1 @@
1
- {"version":3,"file":"MenubarTrigger.cjs","sources":["../../src/Menubar/MenubarTrigger.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { PrimitiveProps } from '@/Primitive'\nimport { useForwardExpose } from '@/shared'\nimport { useCollection } from '@/Collection'\n\nexport interface MenubarTriggerProps 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 { injectMenubarRootContext } from './MenubarRoot.vue'\nimport { injectMenubarMenuContext } from './MenubarMenu.vue'\nimport {\n Primitive,\n} from '@/Primitive'\nimport { MenuAnchor } from '@/Menu'\nimport { RovingFocusItem } from '@/RovingFocus'\n\nwithDefaults(defineProps<MenubarTriggerProps>(), {\n as: 'button',\n})\nconst rootContext = injectMenubarRootContext()\nconst menuContext = injectMenubarMenuContext()\n\nconst { forwardRef, currentElement: triggerElement } = useForwardExpose()\nconst { CollectionItem } = useCollection({ key: 'Menubar' })\n\nconst isFocused = ref(false)\n\nconst open = computed(() => rootContext.modelValue.value === menuContext.value)\n\nonMounted(() => {\n menuContext.triggerElement = triggerElement\n})\n</script>\n\n<template>\n <RovingFocusItem\n as-child\n :focusable=\"!disabled\"\n :tab-stop-id=\"menuContext.value\"\n >\n <CollectionItem>\n <MenuAnchor as-child>\n <Primitive\n :id=\"menuContext.triggerId\"\n :ref=\"forwardRef\"\n :as=\"as\"\n :type=\"as === 'button' ? 'button' : undefined\"\n role=\"menuitem\"\n aria-haspopup=\"menu\"\n :aria-expanded=\"open\"\n :aria-controls=\"open ? menuContext.contentId : undefined\"\n :data-highlighted=\"isFocused ? '' : undefined\"\n :data-state=\"open ? 'open' : 'closed'\"\n :data-disabled=\"disabled ? '' : undefined\"\n :disabled=\"disabled\"\n :data-value=\"menuContext.value\"\n @pointerdown=\"(event) => {\n // only call handler if it's the left button (mousedown gets triggered by all mouse buttons)\n // but not when the control key is pressed (avoiding MacOS right click)\n if (!disabled && event.button === 0 && event.ctrlKey === false) {\n rootContext.onMenuOpen(menuContext.value);\n // prevent trigger focusing when opening\n // this allows the content to be given focus without competition\n if (!open) event.preventDefault();\n }\n }\"\n @pointerenter=\"() => {\n const menubarOpen = Boolean(rootContext.modelValue.value);\n if (menubarOpen && !open) {\n rootContext.onMenuOpen(menuContext.value);\n triggerElement?.focus()\n }\n }\"\n @keydown.enter.space.arrow-down=\"(event) => {\n if (disabled) return;\n if (['Enter', ' '].includes(event.key)) rootContext.onMenuToggle(menuContext.value);\n if (event.key === 'ArrowDown') rootContext.onMenuOpen(menuContext.value);\n // prevent keydown from scrolling window / first focused item to execute\n // that keydown (inadvertently closing the menu)\n if (['Enter', ' ', 'ArrowDown'].includes(event.key)) {\n menuContext.wasKeyboardTriggerOpenRef.value = true;\n event.preventDefault();\n }\n }\"\n @focus=\"isFocused = true\"\n @blur=\"isFocused = false\"\n >\n <slot />\n </Primitive>\n </MenuAnchor>\n </CollectionItem>\n </RovingFocusItem>\n</template>\n"],"names":["injectMenubarRootContext","injectMenubarMenuContext","useForwardExpose","useCollection","ref","computed","onMounted"],"mappings":";;;;;;;;;;;;;;;;;;;AAwBA,IAAA,MAAM,cAAcA,4CAAyB,EAAA;AAC7C,IAAA,MAAM,cAAcC,4CAAyB,EAAA;AAE7C,IAAA,MAAM,EAAE,UAAA,EAAY,cAAgB,EAAA,cAAA,KAAmBC,wCAAiB,EAAA;AACxE,IAAA,MAAM,EAAE,cAAe,EAAA,GAAIC,oCAAc,EAAE,GAAA,EAAK,WAAW,CAAA;AAE3D,IAAM,MAAA,SAAA,GAAYC,QAAI,KAAK,CAAA;AAE3B,IAAA,MAAM,OAAOC,YAAS,CAAA,MAAM,YAAY,UAAW,CAAA,KAAA,KAAU,YAAY,KAAK,CAAA;AAE9E,IAAAC,aAAA,CAAU,MAAM;AACd,MAAA,WAAA,CAAY,cAAiB,GAAA,cAAA;AAAA,KAC9B,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"MenubarTrigger.cjs","sources":["../../src/Menubar/MenubarTrigger.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { PrimitiveProps } from '@/Primitive'\nimport { useCollection } from '@/Collection'\nimport { useForwardExpose } from '@/shared'\n\nexport interface MenubarTriggerProps 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 { MenuAnchor } from '@/Menu'\nimport {\n Primitive,\n} from '@/Primitive'\nimport { RovingFocusItem } from '@/RovingFocus'\nimport { injectMenubarMenuContext } from './MenubarMenu.vue'\nimport { injectMenubarRootContext } from './MenubarRoot.vue'\n\nwithDefaults(defineProps<MenubarTriggerProps>(), {\n as: 'button',\n})\nconst rootContext = injectMenubarRootContext()\nconst menuContext = injectMenubarMenuContext()\n\nconst { forwardRef, currentElement: triggerElement } = useForwardExpose()\nconst { CollectionItem } = useCollection({ key: 'Menubar' })\n\nconst isFocused = ref(false)\n\nconst open = computed(() => rootContext.modelValue.value === menuContext.value)\n\nonMounted(() => {\n menuContext.triggerElement = triggerElement\n})\n</script>\n\n<template>\n <RovingFocusItem\n as-child\n :focusable=\"!disabled\"\n :tab-stop-id=\"menuContext.value\"\n >\n <CollectionItem>\n <MenuAnchor as-child>\n <Primitive\n :id=\"menuContext.triggerId\"\n :ref=\"forwardRef\"\n :as=\"as\"\n :type=\"as === 'button' ? 'button' : undefined\"\n role=\"menuitem\"\n aria-haspopup=\"menu\"\n :aria-expanded=\"open\"\n :aria-controls=\"open ? menuContext.contentId : undefined\"\n :data-highlighted=\"isFocused ? '' : undefined\"\n :data-state=\"open ? 'open' : 'closed'\"\n :data-disabled=\"disabled ? '' : undefined\"\n :disabled=\"disabled\"\n :data-value=\"menuContext.value\"\n @pointerdown=\"(event) => {\n // only call handler if it's the left button (mousedown gets triggered by all mouse buttons)\n // but not when the control key is pressed (avoiding MacOS right click)\n if (!disabled && event.button === 0 && event.ctrlKey === false) {\n rootContext.onMenuOpen(menuContext.value);\n // prevent trigger focusing when opening\n // this allows the content to be given focus without competition\n if (!open) event.preventDefault();\n }\n }\"\n @pointerenter=\"() => {\n const menubarOpen = Boolean(rootContext.modelValue.value);\n if (menubarOpen && !open) {\n rootContext.onMenuOpen(menuContext.value);\n triggerElement?.focus()\n }\n }\"\n @keydown.enter.space.arrow-down=\"(event) => {\n if (disabled) return;\n if (['Enter', ' '].includes(event.key)) rootContext.onMenuToggle(menuContext.value);\n if (event.key === 'ArrowDown') rootContext.onMenuOpen(menuContext.value);\n // prevent keydown from scrolling window / first focused item to execute\n // that keydown (inadvertently closing the menu)\n if (['Enter', ' ', 'ArrowDown'].includes(event.key)) {\n menuContext.wasKeyboardTriggerOpenRef.value = true;\n event.preventDefault();\n }\n }\"\n @focus=\"isFocused = true\"\n @blur=\"isFocused = false\"\n >\n <slot />\n </Primitive>\n </MenuAnchor>\n </CollectionItem>\n </RovingFocusItem>\n</template>\n"],"names":["injectMenubarRootContext","injectMenubarMenuContext","useForwardExpose","useCollection","ref","computed","onMounted"],"mappings":";;;;;;;;;;;;;;;;;;;AAwBA,IAAA,MAAM,cAAcA,4CAAyB,EAAA;AAC7C,IAAA,MAAM,cAAcC,4CAAyB,EAAA;AAE7C,IAAA,MAAM,EAAE,UAAA,EAAY,cAAgB,EAAA,cAAA,KAAmBC,wCAAiB,EAAA;AACxE,IAAA,MAAM,EAAE,cAAe,EAAA,GAAIC,oCAAc,EAAE,GAAA,EAAK,WAAW,CAAA;AAE3D,IAAM,MAAA,SAAA,GAAYC,QAAI,KAAK,CAAA;AAE3B,IAAA,MAAM,OAAOC,YAAS,CAAA,MAAM,YAAY,UAAW,CAAA,KAAA,KAAU,YAAY,KAAK,CAAA;AAE9E,IAAAC,aAAA,CAAU,MAAM;AACd,MAAA,WAAA,CAAY,cAAiB,GAAA,cAAA;AAAA,KAC9B,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,11 +1,11 @@
1
1
  import { defineComponent, ref, computed, onMounted, createBlock, openBlock, unref, withCtx, createVNode, withKeys, renderSlot } from 'vue';
2
2
  import { _ as _sfc_main$2 } from '../Menu/MenuAnchor.js';
3
3
  import { u as useCollection } from '../Collection/Collection.js';
4
- import { i as injectMenubarMenuContext } from './MenubarMenu.js';
5
4
  import { u as useForwardExpose } from '../shared/useForwardExpose.js';
6
5
  import { _ as _sfc_main$1 } from '../RovingFocus/RovingFocusItem.js';
7
6
  import { P as Primitive } from '../Primitive/Primitive.js';
8
7
  import { i as injectMenubarRootContext } from './MenubarRoot.js';
8
+ import { i as injectMenubarMenuContext } from './MenubarMenu.js';
9
9
 
10
10
  const _sfc_main = /* @__PURE__ */ defineComponent({
11
11
  __name: "MenubarTrigger",
@@ -1 +1 @@
1
- {"version":3,"file":"MenubarTrigger.js","sources":["../../src/Menubar/MenubarTrigger.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { PrimitiveProps } from '@/Primitive'\nimport { useForwardExpose } from '@/shared'\nimport { useCollection } from '@/Collection'\n\nexport interface MenubarTriggerProps 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 { injectMenubarRootContext } from './MenubarRoot.vue'\nimport { injectMenubarMenuContext } from './MenubarMenu.vue'\nimport {\n Primitive,\n} from '@/Primitive'\nimport { MenuAnchor } from '@/Menu'\nimport { RovingFocusItem } from '@/RovingFocus'\n\nwithDefaults(defineProps<MenubarTriggerProps>(), {\n as: 'button',\n})\nconst rootContext = injectMenubarRootContext()\nconst menuContext = injectMenubarMenuContext()\n\nconst { forwardRef, currentElement: triggerElement } = useForwardExpose()\nconst { CollectionItem } = useCollection({ key: 'Menubar' })\n\nconst isFocused = ref(false)\n\nconst open = computed(() => rootContext.modelValue.value === menuContext.value)\n\nonMounted(() => {\n menuContext.triggerElement = triggerElement\n})\n</script>\n\n<template>\n <RovingFocusItem\n as-child\n :focusable=\"!disabled\"\n :tab-stop-id=\"menuContext.value\"\n >\n <CollectionItem>\n <MenuAnchor as-child>\n <Primitive\n :id=\"menuContext.triggerId\"\n :ref=\"forwardRef\"\n :as=\"as\"\n :type=\"as === 'button' ? 'button' : undefined\"\n role=\"menuitem\"\n aria-haspopup=\"menu\"\n :aria-expanded=\"open\"\n :aria-controls=\"open ? menuContext.contentId : undefined\"\n :data-highlighted=\"isFocused ? '' : undefined\"\n :data-state=\"open ? 'open' : 'closed'\"\n :data-disabled=\"disabled ? '' : undefined\"\n :disabled=\"disabled\"\n :data-value=\"menuContext.value\"\n @pointerdown=\"(event) => {\n // only call handler if it's the left button (mousedown gets triggered by all mouse buttons)\n // but not when the control key is pressed (avoiding MacOS right click)\n if (!disabled && event.button === 0 && event.ctrlKey === false) {\n rootContext.onMenuOpen(menuContext.value);\n // prevent trigger focusing when opening\n // this allows the content to be given focus without competition\n if (!open) event.preventDefault();\n }\n }\"\n @pointerenter=\"() => {\n const menubarOpen = Boolean(rootContext.modelValue.value);\n if (menubarOpen && !open) {\n rootContext.onMenuOpen(menuContext.value);\n triggerElement?.focus()\n }\n }\"\n @keydown.enter.space.arrow-down=\"(event) => {\n if (disabled) return;\n if (['Enter', ' '].includes(event.key)) rootContext.onMenuToggle(menuContext.value);\n if (event.key === 'ArrowDown') rootContext.onMenuOpen(menuContext.value);\n // prevent keydown from scrolling window / first focused item to execute\n // that keydown (inadvertently closing the menu)\n if (['Enter', ' ', 'ArrowDown'].includes(event.key)) {\n menuContext.wasKeyboardTriggerOpenRef.value = true;\n event.preventDefault();\n }\n }\"\n @focus=\"isFocused = true\"\n @blur=\"isFocused = false\"\n >\n <slot />\n </Primitive>\n </MenuAnchor>\n </CollectionItem>\n </RovingFocusItem>\n</template>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAwBA,IAAA,MAAM,cAAc,wBAAyB,EAAA;AAC7C,IAAA,MAAM,cAAc,wBAAyB,EAAA;AAE7C,IAAA,MAAM,EAAE,UAAA,EAAY,cAAgB,EAAA,cAAA,KAAmB,gBAAiB,EAAA;AACxE,IAAA,MAAM,EAAE,cAAe,EAAA,GAAI,cAAc,EAAE,GAAA,EAAK,WAAW,CAAA;AAE3D,IAAM,MAAA,SAAA,GAAY,IAAI,KAAK,CAAA;AAE3B,IAAA,MAAM,OAAO,QAAS,CAAA,MAAM,YAAY,UAAW,CAAA,KAAA,KAAU,YAAY,KAAK,CAAA;AAE9E,IAAA,SAAA,CAAU,MAAM;AACd,MAAA,WAAA,CAAY,cAAiB,GAAA,cAAA;AAAA,KAC9B,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"MenubarTrigger.js","sources":["../../src/Menubar/MenubarTrigger.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { PrimitiveProps } from '@/Primitive'\nimport { useCollection } from '@/Collection'\nimport { useForwardExpose } from '@/shared'\n\nexport interface MenubarTriggerProps 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 { MenuAnchor } from '@/Menu'\nimport {\n Primitive,\n} from '@/Primitive'\nimport { RovingFocusItem } from '@/RovingFocus'\nimport { injectMenubarMenuContext } from './MenubarMenu.vue'\nimport { injectMenubarRootContext } from './MenubarRoot.vue'\n\nwithDefaults(defineProps<MenubarTriggerProps>(), {\n as: 'button',\n})\nconst rootContext = injectMenubarRootContext()\nconst menuContext = injectMenubarMenuContext()\n\nconst { forwardRef, currentElement: triggerElement } = useForwardExpose()\nconst { CollectionItem } = useCollection({ key: 'Menubar' })\n\nconst isFocused = ref(false)\n\nconst open = computed(() => rootContext.modelValue.value === menuContext.value)\n\nonMounted(() => {\n menuContext.triggerElement = triggerElement\n})\n</script>\n\n<template>\n <RovingFocusItem\n as-child\n :focusable=\"!disabled\"\n :tab-stop-id=\"menuContext.value\"\n >\n <CollectionItem>\n <MenuAnchor as-child>\n <Primitive\n :id=\"menuContext.triggerId\"\n :ref=\"forwardRef\"\n :as=\"as\"\n :type=\"as === 'button' ? 'button' : undefined\"\n role=\"menuitem\"\n aria-haspopup=\"menu\"\n :aria-expanded=\"open\"\n :aria-controls=\"open ? menuContext.contentId : undefined\"\n :data-highlighted=\"isFocused ? '' : undefined\"\n :data-state=\"open ? 'open' : 'closed'\"\n :data-disabled=\"disabled ? '' : undefined\"\n :disabled=\"disabled\"\n :data-value=\"menuContext.value\"\n @pointerdown=\"(event) => {\n // only call handler if it's the left button (mousedown gets triggered by all mouse buttons)\n // but not when the control key is pressed (avoiding MacOS right click)\n if (!disabled && event.button === 0 && event.ctrlKey === false) {\n rootContext.onMenuOpen(menuContext.value);\n // prevent trigger focusing when opening\n // this allows the content to be given focus without competition\n if (!open) event.preventDefault();\n }\n }\"\n @pointerenter=\"() => {\n const menubarOpen = Boolean(rootContext.modelValue.value);\n if (menubarOpen && !open) {\n rootContext.onMenuOpen(menuContext.value);\n triggerElement?.focus()\n }\n }\"\n @keydown.enter.space.arrow-down=\"(event) => {\n if (disabled) return;\n if (['Enter', ' '].includes(event.key)) rootContext.onMenuToggle(menuContext.value);\n if (event.key === 'ArrowDown') rootContext.onMenuOpen(menuContext.value);\n // prevent keydown from scrolling window / first focused item to execute\n // that keydown (inadvertently closing the menu)\n if (['Enter', ' ', 'ArrowDown'].includes(event.key)) {\n menuContext.wasKeyboardTriggerOpenRef.value = true;\n event.preventDefault();\n }\n }\"\n @focus=\"isFocused = true\"\n @blur=\"isFocused = false\"\n >\n <slot />\n </Primitive>\n </MenuAnchor>\n </CollectionItem>\n </RovingFocusItem>\n</template>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAwBA,IAAA,MAAM,cAAc,wBAAyB,EAAA;AAC7C,IAAA,MAAM,cAAc,wBAAyB,EAAA;AAE7C,IAAA,MAAM,EAAE,UAAA,EAAY,cAAgB,EAAA,cAAA,KAAmB,gBAAiB,EAAA;AACxE,IAAA,MAAM,EAAE,cAAe,EAAA,GAAI,cAAc,EAAE,GAAA,EAAK,WAAW,CAAA;AAE3D,IAAM,MAAA,SAAA,GAAY,IAAI,KAAK,CAAA;AAE3B,IAAA,MAAM,OAAO,QAAS,CAAA,MAAM,YAAY,UAAW,CAAA,KAAA,KAAU,YAAY,KAAK,CAAA;AAE9E,IAAA,SAAA,CAAU,MAAM;AACd,MAAA,WAAA,CAAY,cAAiB,GAAA,cAAA;AAAA,KAC9B,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,9 +1,9 @@
1
1
  'use strict';
2
2
 
3
3
  const vue = require('vue');
4
- const NavigationMenu_utils = require('./utils.cjs');
5
4
  const shared = require('@vueuse/shared');
6
5
  const NavigationMenu_NavigationMenuContentImpl = require('./NavigationMenuContentImpl.cjs');
6
+ const NavigationMenu_utils = require('./utils.cjs');
7
7
  const shared_useForwardPropsEmits = require('../shared/useForwardPropsEmits.cjs');
8
8
  const shared_useForwardExpose = require('../shared/useForwardExpose.cjs');
9
9
  const Presence_Presence = require('../Presence/Presence.cjs');
@@ -1 +1 @@
1
- {"version":3,"file":"NavigationMenuContent.cjs","sources":["../../src/NavigationMenu/NavigationMenuContent.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { NavigationMenuContentImplEmits, NavigationMenuContentImplProps } from './NavigationMenuContentImpl.vue'\n\nexport type NavigationMenuContentEmits = NavigationMenuContentImplEmits\n\nexport interface NavigationMenuContentProps extends NavigationMenuContentImplProps {\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with Vue animation libraries.\n */\n forceMount?: boolean\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { computed } from 'vue'\nimport { injectNavigationMenuContext } from './NavigationMenuRoot.vue'\nimport { injectNavigationMenuItemContext } from './NavigationMenuItem.vue'\nimport { getOpenState, whenMouse } from './utils'\nimport { Presence } from '@/Presence'\nimport { useForwardExpose, useForwardPropsEmits } from '@/shared'\nimport { isClient, reactiveOmit } from '@vueuse/shared'\nimport NavigationMenuContentImpl from './NavigationMenuContentImpl.vue'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst props = defineProps<NavigationMenuContentProps>()\nconst emits = defineEmits<NavigationMenuContentEmits>()\n\nconst forwarded = useForwardPropsEmits(reactiveOmit(props, 'forceMount'), emits)\nconst { forwardRef } = useForwardExpose()\n\nconst menuContext = injectNavigationMenuContext()\nconst itemContext = injectNavigationMenuItemContext()\n\nconst open = computed(() => itemContext.value === menuContext.modelValue.value)\n\n// We persist the last active content value as the viewport may be animating out\n// and we want the content to remain mounted for the lifecycle of the viewport.\nconst isLastActiveValue = computed(() => {\n if (menuContext.viewport.value) {\n if (!menuContext.modelValue.value && menuContext.previousValue.value)\n return (menuContext.previousValue.value === itemContext.value)\n }\n return false\n})\n</script>\n\n<template>\n <Teleport\n :to=\"isClient && menuContext.viewport.value ? menuContext.viewport.value : 'body'\"\n :disabled=\"isClient && menuContext.viewport.value ? !menuContext.viewport.value : true\"\n >\n <Presence\n v-slot=\"{ present }\"\n :present=\"forceMount || open || isLastActiveValue\"\n :force-mount=\"!menuContext.unmountOnHide.value\"\n >\n <NavigationMenuContentImpl\n :ref=\"forwardRef\"\n :data-state=\"getOpenState(open)\"\n :style=\"{\n pointerEvents: !open && menuContext.isRootMenu ? 'none' : undefined,\n }\"\n v-bind=\"{ ...$attrs, ...forwarded }\"\n :hidden=\"!present\"\n @pointerenter=\"menuContext.onContentEnter(itemContext.value)\"\n @pointerleave=\"whenMouse(() => menuContext.onContentLeave())($event)\"\n @pointer-down-outside=\"emits('pointerDownOutside', $event)\"\n @focus-outside=\"emits('focusOutside', $event)\"\n @interact-outside=\"emits('interactOutside', $event)\"\n >\n <slot />\n </NavigationMenuContentImpl>\n </Presence>\n </Teleport>\n</template>\n"],"names":["useForwardPropsEmits","reactiveOmit","useForwardExpose","injectNavigationMenuContext","injectNavigationMenuItemContext","computed"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AA4BA,IAAA,MAAM,KAAQ,GAAA,OAAA;AACd,IAAA,MAAM,KAAQ,GAAA,MAAA;AAEd,IAAA,MAAM,YAAYA,gDAAqB,CAAAC,mBAAA,CAAa,KAAO,EAAA,YAAY,GAAG,KAAK,CAAA;AAC/E,IAAM,MAAA,EAAE,UAAW,EAAA,GAAIC,wCAAiB,EAAA;AAExC,IAAA,MAAM,cAAcC,6DAA4B,EAAA;AAChD,IAAA,MAAM,cAAcC,iEAAgC,EAAA;AAEpD,IAAA,MAAM,OAAOC,YAAS,CAAA,MAAM,YAAY,KAAU,KAAA,WAAA,CAAY,WAAW,KAAK,CAAA;AAI9E,IAAM,MAAA,iBAAA,GAAoBA,aAAS,MAAM;AACvC,MAAI,IAAA,WAAA,CAAY,SAAS,KAAO,EAAA;AAC9B,QAAA,IAAI,CAAC,WAAA,CAAY,UAAW,CAAA,KAAA,IAAS,YAAY,aAAc,CAAA,KAAA;AAC7D,UAAQ,OAAA,WAAA,CAAY,aAAc,CAAA,KAAA,KAAU,WAAY,CAAA,KAAA;AAAA;AAE5D,MAAO,OAAA,KAAA;AAAA,KACR,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"NavigationMenuContent.cjs","sources":["../../src/NavigationMenu/NavigationMenuContent.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { NavigationMenuContentImplEmits, NavigationMenuContentImplProps } from './NavigationMenuContentImpl.vue'\n\nexport type NavigationMenuContentEmits = NavigationMenuContentImplEmits\n\nexport interface NavigationMenuContentProps extends NavigationMenuContentImplProps {\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with Vue animation libraries.\n */\n forceMount?: boolean\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { isClient, reactiveOmit } from '@vueuse/shared'\nimport { computed } from 'vue'\nimport { Presence } from '@/Presence'\nimport { useForwardExpose, useForwardPropsEmits } from '@/shared'\nimport NavigationMenuContentImpl from './NavigationMenuContentImpl.vue'\nimport { injectNavigationMenuItemContext } from './NavigationMenuItem.vue'\nimport { injectNavigationMenuContext } from './NavigationMenuRoot.vue'\nimport { getOpenState, whenMouse } from './utils'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst props = defineProps<NavigationMenuContentProps>()\nconst emits = defineEmits<NavigationMenuContentEmits>()\n\nconst forwarded = useForwardPropsEmits(reactiveOmit(props, 'forceMount'), emits)\nconst { forwardRef } = useForwardExpose()\n\nconst menuContext = injectNavigationMenuContext()\nconst itemContext = injectNavigationMenuItemContext()\n\nconst open = computed(() => itemContext.value === menuContext.modelValue.value)\n\n// We persist the last active content value as the viewport may be animating out\n// and we want the content to remain mounted for the lifecycle of the viewport.\nconst isLastActiveValue = computed(() => {\n if (menuContext.viewport.value) {\n if (!menuContext.modelValue.value && menuContext.previousValue.value)\n return (menuContext.previousValue.value === itemContext.value)\n }\n return false\n})\n</script>\n\n<template>\n <Teleport\n :to=\"isClient && menuContext.viewport.value ? menuContext.viewport.value : 'body'\"\n :disabled=\"isClient && menuContext.viewport.value ? !menuContext.viewport.value : true\"\n >\n <Presence\n v-slot=\"{ present }\"\n :present=\"forceMount || open || isLastActiveValue\"\n :force-mount=\"!menuContext.unmountOnHide.value\"\n >\n <NavigationMenuContentImpl\n :ref=\"forwardRef\"\n :data-state=\"getOpenState(open)\"\n :style=\"{\n pointerEvents: !open && menuContext.isRootMenu ? 'none' : undefined,\n }\"\n v-bind=\"{ ...$attrs, ...forwarded }\"\n :hidden=\"!present\"\n @pointerenter=\"menuContext.onContentEnter(itemContext.value)\"\n @pointerleave=\"whenMouse(() => menuContext.onContentLeave())($event)\"\n @pointer-down-outside=\"emits('pointerDownOutside', $event)\"\n @focus-outside=\"emits('focusOutside', $event)\"\n @interact-outside=\"emits('interactOutside', $event)\"\n >\n <slot />\n </NavigationMenuContentImpl>\n </Presence>\n </Teleport>\n</template>\n"],"names":["useForwardPropsEmits","reactiveOmit","useForwardExpose","injectNavigationMenuContext","injectNavigationMenuItemContext","computed"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AA4BA,IAAA,MAAM,KAAQ,GAAA,OAAA;AACd,IAAA,MAAM,KAAQ,GAAA,MAAA;AAEd,IAAA,MAAM,YAAYA,gDAAqB,CAAAC,mBAAA,CAAa,KAAO,EAAA,YAAY,GAAG,KAAK,CAAA;AAC/E,IAAM,MAAA,EAAE,UAAW,EAAA,GAAIC,wCAAiB,EAAA;AAExC,IAAA,MAAM,cAAcC,6DAA4B,EAAA;AAChD,IAAA,MAAM,cAAcC,iEAAgC,EAAA;AAEpD,IAAA,MAAM,OAAOC,YAAS,CAAA,MAAM,YAAY,KAAU,KAAA,WAAA,CAAY,WAAW,KAAK,CAAA;AAI9E,IAAM,MAAA,iBAAA,GAAoBA,aAAS,MAAM;AACvC,MAAI,IAAA,WAAA,CAAY,SAAS,KAAO,EAAA;AAC9B,QAAA,IAAI,CAAC,WAAA,CAAY,UAAW,CAAA,KAAA,IAAS,YAAY,aAAc,CAAA,KAAA;AAC7D,UAAQ,OAAA,WAAA,CAAY,aAAc,CAAA,KAAA,KAAU,WAAY,CAAA,KAAA;AAAA;AAE5D,MAAO,OAAA,KAAA;AAAA,KACR,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,7 +1,7 @@
1
1
  import { defineComponent, computed, createBlock, openBlock, Teleport, unref, createVNode, withCtx, mergeProps, renderSlot } from 'vue';
2
- import { g as getOpenState, w as whenMouse } from './utils.js';
3
2
  import { reactiveOmit, isClient } from '@vueuse/shared';
4
3
  import { _ as _sfc_main$1 } from './NavigationMenuContentImpl.js';
4
+ import { g as getOpenState, w as whenMouse } from './utils.js';
5
5
  import { u as useForwardPropsEmits } from '../shared/useForwardPropsEmits.js';
6
6
  import { u as useForwardExpose } from '../shared/useForwardExpose.js';
7
7
  import { P as Presence } from '../Presence/Presence.js';
@@ -1 +1 @@
1
- {"version":3,"file":"NavigationMenuContent.js","sources":["../../src/NavigationMenu/NavigationMenuContent.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { NavigationMenuContentImplEmits, NavigationMenuContentImplProps } from './NavigationMenuContentImpl.vue'\n\nexport type NavigationMenuContentEmits = NavigationMenuContentImplEmits\n\nexport interface NavigationMenuContentProps extends NavigationMenuContentImplProps {\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with Vue animation libraries.\n */\n forceMount?: boolean\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { computed } from 'vue'\nimport { injectNavigationMenuContext } from './NavigationMenuRoot.vue'\nimport { injectNavigationMenuItemContext } from './NavigationMenuItem.vue'\nimport { getOpenState, whenMouse } from './utils'\nimport { Presence } from '@/Presence'\nimport { useForwardExpose, useForwardPropsEmits } from '@/shared'\nimport { isClient, reactiveOmit } from '@vueuse/shared'\nimport NavigationMenuContentImpl from './NavigationMenuContentImpl.vue'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst props = defineProps<NavigationMenuContentProps>()\nconst emits = defineEmits<NavigationMenuContentEmits>()\n\nconst forwarded = useForwardPropsEmits(reactiveOmit(props, 'forceMount'), emits)\nconst { forwardRef } = useForwardExpose()\n\nconst menuContext = injectNavigationMenuContext()\nconst itemContext = injectNavigationMenuItemContext()\n\nconst open = computed(() => itemContext.value === menuContext.modelValue.value)\n\n// We persist the last active content value as the viewport may be animating out\n// and we want the content to remain mounted for the lifecycle of the viewport.\nconst isLastActiveValue = computed(() => {\n if (menuContext.viewport.value) {\n if (!menuContext.modelValue.value && menuContext.previousValue.value)\n return (menuContext.previousValue.value === itemContext.value)\n }\n return false\n})\n</script>\n\n<template>\n <Teleport\n :to=\"isClient && menuContext.viewport.value ? menuContext.viewport.value : 'body'\"\n :disabled=\"isClient && menuContext.viewport.value ? !menuContext.viewport.value : true\"\n >\n <Presence\n v-slot=\"{ present }\"\n :present=\"forceMount || open || isLastActiveValue\"\n :force-mount=\"!menuContext.unmountOnHide.value\"\n >\n <NavigationMenuContentImpl\n :ref=\"forwardRef\"\n :data-state=\"getOpenState(open)\"\n :style=\"{\n pointerEvents: !open && menuContext.isRootMenu ? 'none' : undefined,\n }\"\n v-bind=\"{ ...$attrs, ...forwarded }\"\n :hidden=\"!present\"\n @pointerenter=\"menuContext.onContentEnter(itemContext.value)\"\n @pointerleave=\"whenMouse(() => menuContext.onContentLeave())($event)\"\n @pointer-down-outside=\"emits('pointerDownOutside', $event)\"\n @focus-outside=\"emits('focusOutside', $event)\"\n @interact-outside=\"emits('interactOutside', $event)\"\n >\n <slot />\n </NavigationMenuContentImpl>\n </Presence>\n </Teleport>\n</template>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AA4BA,IAAA,MAAM,KAAQ,GAAA,OAAA;AACd,IAAA,MAAM,KAAQ,GAAA,MAAA;AAEd,IAAA,MAAM,YAAY,oBAAqB,CAAA,YAAA,CAAa,KAAO,EAAA,YAAY,GAAG,KAAK,CAAA;AAC/E,IAAM,MAAA,EAAE,UAAW,EAAA,GAAI,gBAAiB,EAAA;AAExC,IAAA,MAAM,cAAc,2BAA4B,EAAA;AAChD,IAAA,MAAM,cAAc,+BAAgC,EAAA;AAEpD,IAAA,MAAM,OAAO,QAAS,CAAA,MAAM,YAAY,KAAU,KAAA,WAAA,CAAY,WAAW,KAAK,CAAA;AAI9E,IAAM,MAAA,iBAAA,GAAoB,SAAS,MAAM;AACvC,MAAI,IAAA,WAAA,CAAY,SAAS,KAAO,EAAA;AAC9B,QAAA,IAAI,CAAC,WAAA,CAAY,UAAW,CAAA,KAAA,IAAS,YAAY,aAAc,CAAA,KAAA;AAC7D,UAAQ,OAAA,WAAA,CAAY,aAAc,CAAA,KAAA,KAAU,WAAY,CAAA,KAAA;AAAA;AAE5D,MAAO,OAAA,KAAA;AAAA,KACR,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"NavigationMenuContent.js","sources":["../../src/NavigationMenu/NavigationMenuContent.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { NavigationMenuContentImplEmits, NavigationMenuContentImplProps } from './NavigationMenuContentImpl.vue'\n\nexport type NavigationMenuContentEmits = NavigationMenuContentImplEmits\n\nexport interface NavigationMenuContentProps extends NavigationMenuContentImplProps {\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with Vue animation libraries.\n */\n forceMount?: boolean\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { isClient, reactiveOmit } from '@vueuse/shared'\nimport { computed } from 'vue'\nimport { Presence } from '@/Presence'\nimport { useForwardExpose, useForwardPropsEmits } from '@/shared'\nimport NavigationMenuContentImpl from './NavigationMenuContentImpl.vue'\nimport { injectNavigationMenuItemContext } from './NavigationMenuItem.vue'\nimport { injectNavigationMenuContext } from './NavigationMenuRoot.vue'\nimport { getOpenState, whenMouse } from './utils'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst props = defineProps<NavigationMenuContentProps>()\nconst emits = defineEmits<NavigationMenuContentEmits>()\n\nconst forwarded = useForwardPropsEmits(reactiveOmit(props, 'forceMount'), emits)\nconst { forwardRef } = useForwardExpose()\n\nconst menuContext = injectNavigationMenuContext()\nconst itemContext = injectNavigationMenuItemContext()\n\nconst open = computed(() => itemContext.value === menuContext.modelValue.value)\n\n// We persist the last active content value as the viewport may be animating out\n// and we want the content to remain mounted for the lifecycle of the viewport.\nconst isLastActiveValue = computed(() => {\n if (menuContext.viewport.value) {\n if (!menuContext.modelValue.value && menuContext.previousValue.value)\n return (menuContext.previousValue.value === itemContext.value)\n }\n return false\n})\n</script>\n\n<template>\n <Teleport\n :to=\"isClient && menuContext.viewport.value ? menuContext.viewport.value : 'body'\"\n :disabled=\"isClient && menuContext.viewport.value ? !menuContext.viewport.value : true\"\n >\n <Presence\n v-slot=\"{ present }\"\n :present=\"forceMount || open || isLastActiveValue\"\n :force-mount=\"!menuContext.unmountOnHide.value\"\n >\n <NavigationMenuContentImpl\n :ref=\"forwardRef\"\n :data-state=\"getOpenState(open)\"\n :style=\"{\n pointerEvents: !open && menuContext.isRootMenu ? 'none' : undefined,\n }\"\n v-bind=\"{ ...$attrs, ...forwarded }\"\n :hidden=\"!present\"\n @pointerenter=\"menuContext.onContentEnter(itemContext.value)\"\n @pointerleave=\"whenMouse(() => menuContext.onContentLeave())($event)\"\n @pointer-down-outside=\"emits('pointerDownOutside', $event)\"\n @focus-outside=\"emits('focusOutside', $event)\"\n @interact-outside=\"emits('interactOutside', $event)\"\n >\n <slot />\n </NavigationMenuContentImpl>\n </Presence>\n </Teleport>\n</template>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AA4BA,IAAA,MAAM,KAAQ,GAAA,OAAA;AACd,IAAA,MAAM,KAAQ,GAAA,MAAA;AAEd,IAAA,MAAM,YAAY,oBAAqB,CAAA,YAAA,CAAa,KAAO,EAAA,YAAY,GAAG,KAAK,CAAA;AAC/E,IAAM,MAAA,EAAE,UAAW,EAAA,GAAI,gBAAiB,EAAA;AAExC,IAAA,MAAM,cAAc,2BAA4B,EAAA;AAChD,IAAA,MAAM,cAAc,+BAAgC,EAAA;AAEpD,IAAA,MAAM,OAAO,QAAS,CAAA,MAAM,YAAY,KAAU,KAAA,WAAA,CAAY,WAAW,KAAK,CAAA;AAI9E,IAAM,MAAA,iBAAA,GAAoB,SAAS,MAAM;AACvC,MAAI,IAAA,WAAA,CAAY,SAAS,KAAO,EAAA;AAC9B,QAAA,IAAI,CAAC,WAAA,CAAY,UAAW,CAAA,KAAA,IAAS,YAAY,aAAc,CAAA,KAAA;AAC7D,UAAQ,OAAA,WAAA,CAAY,aAAc,CAAA,KAAA,KAAU,WAAY,CAAA,KAAA;AAAA;AAE5D,MAAO,OAAA,KAAA;AAAA,KACR,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,8 +1,8 @@
1
1
  'use strict';
2
2
 
3
3
  const vue = require('vue');
4
- const NavigationMenu_utils = require('./utils.cjs');
5
4
  const DismissableLayer_DismissableLayer = require('../DismissableLayer/DismissableLayer.cjs');
5
+ const NavigationMenu_utils = require('./utils.cjs');
6
6
  const Collection_Collection = require('../Collection/Collection.cjs');
7
7
  const shared_useForwardExpose = require('../shared/useForwardExpose.cjs');
8
8
  const NavigationMenu_NavigationMenuItem = require('./NavigationMenuItem.cjs');
@@ -1 +1 @@
1
- {"version":3,"file":"NavigationMenuContentImpl.cjs","sources":["../../src/NavigationMenu/NavigationMenuContentImpl.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type {\n DismissableLayerEmits,\n DismissableLayerProps,\n FocusOutsideEvent,\n} from '@/DismissableLayer'\nimport type { PointerDownOutsideEvent } from '@/DismissableLayer/utils'\nimport { useCollection } from '@/Collection'\n\ntype MotionAttribute = 'to-start' | 'to-end' | 'from-start' | 'from-end'\n\nexport type NavigationMenuContentImplEmits = DismissableLayerEmits\n\nexport interface NavigationMenuContentImplProps extends DismissableLayerProps {}\n</script>\n\n<script setup lang=\"ts\">\nimport { computed, ref, watchEffect } from 'vue'\nimport { injectNavigationMenuContext } from './NavigationMenuRoot.vue'\nimport {\n EVENT_ROOT_CONTENT_DISMISS,\n focusFirst,\n getOpenState,\n getTabbableCandidates,\n makeContentId,\n makeTriggerId,\n} from './utils'\nimport { DismissableLayer } from '@/DismissableLayer'\nimport { getActiveElement, useArrowNavigation, useForwardExpose } from '@/shared'\nimport { injectNavigationMenuItemContext } from './NavigationMenuItem.vue'\n\nconst props = defineProps<NavigationMenuContentImplProps>()\nconst emits = defineEmits<NavigationMenuContentImplEmits>()\n\nconst { getItems } = useCollection({ key: 'NavigationMenu' })\nconst { forwardRef, currentElement } = useForwardExpose()\n\nconst menuContext = injectNavigationMenuContext()\nconst itemContext = injectNavigationMenuItemContext()\n\nconst triggerId = makeTriggerId(menuContext.baseId, itemContext.value)\nconst contentId = makeContentId(menuContext.baseId, itemContext.value)\n\nconst prevMotionAttributeRef = ref<MotionAttribute | null>(null)\nconst motionAttribute = computed(() => {\n const values = getItems().map(i => i.ref.id.split('trigger-')[1])\n if (menuContext.dir.value === 'rtl')\n values.reverse()\n const index = values.indexOf(menuContext.modelValue.value)\n const prevIndex = values.indexOf(menuContext.previousValue.value)\n const isSelected = itemContext.value === menuContext.modelValue.value\n const wasSelected = prevIndex === values.indexOf(itemContext.value)\n\n // We only want to update selected and the last selected content\n // this avoids animations being interrupted outside of that range\n if (!isSelected && !wasSelected)\n return prevMotionAttributeRef.value\n\n const attribute = (() => {\n // Don't provide a direction on the initial open\n if (index !== prevIndex) {\n // If we're moving to this item from another\n if (isSelected && prevIndex !== -1)\n return index > prevIndex ? 'from-end' : 'from-start'\n // If we're leaving this item for another\n if (wasSelected && index !== -1)\n return index > prevIndex ? 'to-start' : 'to-end'\n }\n // Otherwise we're entering from closed or leaving the list\n // entirely and should not animate in any direction\n return null\n })()\n\n // eslint-disable-next-line vue/no-side-effects-in-computed-properties\n prevMotionAttributeRef.value = attribute\n return attribute\n})\n\nfunction handleFocusOutside(ev: FocusOutsideEvent) {\n emits('focusOutside', ev)\n emits('interactOutside', ev)\n\n const target = ev.detail.originalEvent.target as HTMLElement\n if (target.hasAttribute('data-navigation-menu-trigger'))\n ev.preventDefault()\n\n if (!ev.defaultPrevented) {\n itemContext.onContentFocusOutside()\n\n const target = ev.target as HTMLElement\n // Only dismiss content when focus moves outside of the menu\n if (menuContext.rootNavigationMenu?.value?.contains(target))\n ev.preventDefault()\n }\n}\n\nfunction handlePointerDownOutside(ev: PointerDownOutsideEvent) {\n emits('pointerDownOutside', ev)\n\n if (!ev.defaultPrevented) {\n const target = ev.target as HTMLElement\n const isTrigger = getItems().some(i =>\n i.ref.contains(target),\n )\n const isRootViewport\n = menuContext.isRootMenu && menuContext.viewport.value?.contains(target)\n\n if (isTrigger || isRootViewport || !menuContext.isRootMenu)\n ev.preventDefault()\n }\n}\n\nwatchEffect((cleanupFn) => {\n const content = currentElement.value\n if (menuContext.isRootMenu && content) {\n // Bubble dismiss to the root content node and focus its trigger\n const handleClose = () => {\n menuContext.onItemDismiss()\n itemContext.onRootContentClose()\n if (content.contains(getActiveElement()))\n itemContext.triggerRef.value?.focus()\n }\n content.addEventListener(EVENT_ROOT_CONTENT_DISMISS, handleClose)\n\n cleanupFn(() =>\n content.removeEventListener(EVENT_ROOT_CONTENT_DISMISS, handleClose),\n )\n }\n})\n\nfunction handleEscapeKeyDown(ev: KeyboardEvent) {\n emits('escapeKeyDown', ev)\n\n if (!ev.defaultPrevented) {\n menuContext.onItemDismiss()\n itemContext.triggerRef?.value?.focus()\n itemContext.wasEscapeCloseRef.value = true\n }\n}\n\nfunction handleKeydown(ev: KeyboardEvent) {\n // prevent parent menu triggering keydown event\n if ((ev.target as HTMLElement).closest('[data-reka-navigation-menu]') !== menuContext.rootNavigationMenu.value)\n return\n\n const isMetaKey = ev.altKey || ev.ctrlKey || ev.metaKey\n const isTabKey = ev.key === 'Tab' && !isMetaKey\n const candidates = getTabbableCandidates(ev.currentTarget as HTMLElement)\n\n if (isTabKey) {\n const focusedElement = getActiveElement()\n const index = candidates.findIndex(\n candidate => candidate === focusedElement,\n )\n const isMovingBackwards = ev.shiftKey\n const nextCandidates = isMovingBackwards\n ? candidates.slice(0, index).reverse()\n : candidates.slice(index + 1, candidates.length)\n\n if (focusFirst(nextCandidates)) {\n // prevent browser tab keydown because we've handled focus\n ev.preventDefault()\n }\n else {\n // If we can't focus that means we're at the edges\n // so focus the proxy and let browser handle\n // tab/shift+tab keypress on the proxy instead\n itemContext.focusProxyRef.value?.focus()\n return\n }\n }\n\n const newSelectedElement = useArrowNavigation(\n ev,\n getActiveElement() as HTMLElement,\n undefined,\n { itemsArray: candidates, loop: false, enableIgnoredElement: true },\n )\n newSelectedElement?.focus()\n}\n\nfunction handleDismiss() {\n const rootContentDismissEvent = new Event(EVENT_ROOT_CONTENT_DISMISS, {\n bubbles: true,\n cancelable: true,\n })\n currentElement.value?.dispatchEvent(rootContentDismissEvent)\n}\n</script>\n\n<template>\n <DismissableLayer\n :id=\"contentId\"\n :ref=\"forwardRef\"\n :aria-labelledby=\"triggerId\"\n :data-motion=\"motionAttribute\"\n :data-state=\"getOpenState(menuContext.modelValue.value === itemContext.value)\"\n :data-orientation=\"menuContext.orientation\"\n v-bind=\"props\"\n @keydown=\"handleKeydown\"\n @escape-key-down=\"handleEscapeKeyDown\"\n @pointer-down-outside=\"handlePointerDownOutside\"\n @focus-outside=\"handleFocusOutside\"\n @dismiss=\"handleDismiss\"\n >\n <slot />\n </DismissableLayer>\n</template>\n"],"names":["useCollection","useForwardExpose","injectNavigationMenuContext","injectNavigationMenuItemContext","makeTriggerId","makeContentId","ref","computed","target","watchEffect","getActiveElement","EVENT_ROOT_CONTENT_DISMISS","getTabbableCandidates","focusFirst","useArrowNavigation"],"mappings":"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"}
1
+ {"version":3,"file":"NavigationMenuContentImpl.cjs","sources":["../../src/NavigationMenu/NavigationMenuContentImpl.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type {\n DismissableLayerEmits,\n DismissableLayerProps,\n FocusOutsideEvent,\n} from '@/DismissableLayer'\nimport type { PointerDownOutsideEvent } from '@/DismissableLayer/utils'\nimport { useCollection } from '@/Collection'\n\ntype MotionAttribute = 'to-start' | 'to-end' | 'from-start' | 'from-end'\n\nexport type NavigationMenuContentImplEmits = DismissableLayerEmits\n\nexport interface NavigationMenuContentImplProps extends DismissableLayerProps {}\n</script>\n\n<script setup lang=\"ts\">\nimport { computed, ref, watchEffect } from 'vue'\nimport { DismissableLayer } from '@/DismissableLayer'\nimport { getActiveElement, useArrowNavigation, useForwardExpose } from '@/shared'\nimport { injectNavigationMenuItemContext } from './NavigationMenuItem.vue'\nimport { injectNavigationMenuContext } from './NavigationMenuRoot.vue'\nimport {\n EVENT_ROOT_CONTENT_DISMISS,\n focusFirst,\n getOpenState,\n getTabbableCandidates,\n makeContentId,\n makeTriggerId,\n} from './utils'\n\nconst props = defineProps<NavigationMenuContentImplProps>()\nconst emits = defineEmits<NavigationMenuContentImplEmits>()\n\nconst { getItems } = useCollection({ key: 'NavigationMenu' })\nconst { forwardRef, currentElement } = useForwardExpose()\n\nconst menuContext = injectNavigationMenuContext()\nconst itemContext = injectNavigationMenuItemContext()\n\nconst triggerId = makeTriggerId(menuContext.baseId, itemContext.value)\nconst contentId = makeContentId(menuContext.baseId, itemContext.value)\n\nconst prevMotionAttributeRef = ref<MotionAttribute | null>(null)\nconst motionAttribute = computed(() => {\n const values = getItems().map(i => i.ref.id.split('trigger-')[1])\n if (menuContext.dir.value === 'rtl')\n values.reverse()\n const index = values.indexOf(menuContext.modelValue.value)\n const prevIndex = values.indexOf(menuContext.previousValue.value)\n const isSelected = itemContext.value === menuContext.modelValue.value\n const wasSelected = prevIndex === values.indexOf(itemContext.value)\n\n // We only want to update selected and the last selected content\n // this avoids animations being interrupted outside of that range\n if (!isSelected && !wasSelected)\n return prevMotionAttributeRef.value\n\n const attribute = (() => {\n // Don't provide a direction on the initial open\n if (index !== prevIndex) {\n // If we're moving to this item from another\n if (isSelected && prevIndex !== -1)\n return index > prevIndex ? 'from-end' : 'from-start'\n // If we're leaving this item for another\n if (wasSelected && index !== -1)\n return index > prevIndex ? 'to-start' : 'to-end'\n }\n // Otherwise we're entering from closed or leaving the list\n // entirely and should not animate in any direction\n return null\n })()\n\n // eslint-disable-next-line vue/no-side-effects-in-computed-properties\n prevMotionAttributeRef.value = attribute\n return attribute\n})\n\nfunction handleFocusOutside(ev: FocusOutsideEvent) {\n emits('focusOutside', ev)\n emits('interactOutside', ev)\n\n const target = ev.detail.originalEvent.target as HTMLElement\n if (target.hasAttribute('data-navigation-menu-trigger'))\n ev.preventDefault()\n\n if (!ev.defaultPrevented) {\n itemContext.onContentFocusOutside()\n\n const target = ev.target as HTMLElement\n // Only dismiss content when focus moves outside of the menu\n if (menuContext.rootNavigationMenu?.value?.contains(target))\n ev.preventDefault()\n }\n}\n\nfunction handlePointerDownOutside(ev: PointerDownOutsideEvent) {\n emits('pointerDownOutside', ev)\n\n if (!ev.defaultPrevented) {\n const target = ev.target as HTMLElement\n const isTrigger = getItems().some(i =>\n i.ref.contains(target),\n )\n const isRootViewport\n = menuContext.isRootMenu && menuContext.viewport.value?.contains(target)\n\n if (isTrigger || isRootViewport || !menuContext.isRootMenu)\n ev.preventDefault()\n }\n}\n\nwatchEffect((cleanupFn) => {\n const content = currentElement.value\n if (menuContext.isRootMenu && content) {\n // Bubble dismiss to the root content node and focus its trigger\n const handleClose = () => {\n menuContext.onItemDismiss()\n itemContext.onRootContentClose()\n if (content.contains(getActiveElement()))\n itemContext.triggerRef.value?.focus()\n }\n content.addEventListener(EVENT_ROOT_CONTENT_DISMISS, handleClose)\n\n cleanupFn(() =>\n content.removeEventListener(EVENT_ROOT_CONTENT_DISMISS, handleClose),\n )\n }\n})\n\nfunction handleEscapeKeyDown(ev: KeyboardEvent) {\n emits('escapeKeyDown', ev)\n\n if (!ev.defaultPrevented) {\n menuContext.onItemDismiss()\n itemContext.triggerRef?.value?.focus()\n itemContext.wasEscapeCloseRef.value = true\n }\n}\n\nfunction handleKeydown(ev: KeyboardEvent) {\n // prevent parent menu triggering keydown event\n if ((ev.target as HTMLElement).closest('[data-reka-navigation-menu]') !== menuContext.rootNavigationMenu.value)\n return\n\n const isMetaKey = ev.altKey || ev.ctrlKey || ev.metaKey\n const isTabKey = ev.key === 'Tab' && !isMetaKey\n const candidates = getTabbableCandidates(ev.currentTarget as HTMLElement)\n\n if (isTabKey) {\n const focusedElement = getActiveElement()\n const index = candidates.findIndex(\n candidate => candidate === focusedElement,\n )\n const isMovingBackwards = ev.shiftKey\n const nextCandidates = isMovingBackwards\n ? candidates.slice(0, index).reverse()\n : candidates.slice(index + 1, candidates.length)\n\n if (focusFirst(nextCandidates)) {\n // prevent browser tab keydown because we've handled focus\n ev.preventDefault()\n }\n else {\n // If we can't focus that means we're at the edges\n // so focus the proxy and let browser handle\n // tab/shift+tab keypress on the proxy instead\n itemContext.focusProxyRef.value?.focus()\n return\n }\n }\n\n const newSelectedElement = useArrowNavigation(\n ev,\n getActiveElement() as HTMLElement,\n undefined,\n { itemsArray: candidates, loop: false, enableIgnoredElement: true },\n )\n newSelectedElement?.focus()\n}\n\nfunction handleDismiss() {\n const rootContentDismissEvent = new Event(EVENT_ROOT_CONTENT_DISMISS, {\n bubbles: true,\n cancelable: true,\n })\n currentElement.value?.dispatchEvent(rootContentDismissEvent)\n}\n</script>\n\n<template>\n <DismissableLayer\n :id=\"contentId\"\n :ref=\"forwardRef\"\n :aria-labelledby=\"triggerId\"\n :data-motion=\"motionAttribute\"\n :data-state=\"getOpenState(menuContext.modelValue.value === itemContext.value)\"\n :data-orientation=\"menuContext.orientation\"\n v-bind=\"props\"\n @keydown=\"handleKeydown\"\n @escape-key-down=\"handleEscapeKeyDown\"\n @pointer-down-outside=\"handlePointerDownOutside\"\n @focus-outside=\"handleFocusOutside\"\n @dismiss=\"handleDismiss\"\n >\n <slot />\n </DismissableLayer>\n</template>\n"],"names":["useCollection","useForwardExpose","injectNavigationMenuContext","injectNavigationMenuItemContext","makeTriggerId","makeContentId","ref","computed","target","watchEffect","getActiveElement","EVENT_ROOT_CONTENT_DISMISS","getTabbableCandidates","focusFirst","useArrowNavigation"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { defineComponent, ref, computed, watchEffect, createBlock, openBlock, unref, mergeProps, withCtx, renderSlot } from 'vue';
2
- import { m as makeTriggerId, a as makeContentId, E as EVENT_ROOT_CONTENT_DISMISS, g as getOpenState, b as getTabbableCandidates, f as focusFirst } from './utils.js';
3
2
  import { _ as _sfc_main$1 } from '../DismissableLayer/DismissableLayer.js';
3
+ import { m as makeTriggerId, a as makeContentId, E as EVENT_ROOT_CONTENT_DISMISS, g as getOpenState, b as getTabbableCandidates, f as focusFirst } from './utils.js';
4
4
  import { u as useCollection } from '../Collection/Collection.js';
5
5
  import { u as useForwardExpose } from '../shared/useForwardExpose.js';
6
6
  import { i as injectNavigationMenuItemContext } from './NavigationMenuItem.js';
@@ -1 +1 @@
1
- {"version":3,"file":"NavigationMenuContentImpl.js","sources":["../../src/NavigationMenu/NavigationMenuContentImpl.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type {\n DismissableLayerEmits,\n DismissableLayerProps,\n FocusOutsideEvent,\n} from '@/DismissableLayer'\nimport type { PointerDownOutsideEvent } from '@/DismissableLayer/utils'\nimport { useCollection } from '@/Collection'\n\ntype MotionAttribute = 'to-start' | 'to-end' | 'from-start' | 'from-end'\n\nexport type NavigationMenuContentImplEmits = DismissableLayerEmits\n\nexport interface NavigationMenuContentImplProps extends DismissableLayerProps {}\n</script>\n\n<script setup lang=\"ts\">\nimport { computed, ref, watchEffect } from 'vue'\nimport { injectNavigationMenuContext } from './NavigationMenuRoot.vue'\nimport {\n EVENT_ROOT_CONTENT_DISMISS,\n focusFirst,\n getOpenState,\n getTabbableCandidates,\n makeContentId,\n makeTriggerId,\n} from './utils'\nimport { DismissableLayer } from '@/DismissableLayer'\nimport { getActiveElement, useArrowNavigation, useForwardExpose } from '@/shared'\nimport { injectNavigationMenuItemContext } from './NavigationMenuItem.vue'\n\nconst props = defineProps<NavigationMenuContentImplProps>()\nconst emits = defineEmits<NavigationMenuContentImplEmits>()\n\nconst { getItems } = useCollection({ key: 'NavigationMenu' })\nconst { forwardRef, currentElement } = useForwardExpose()\n\nconst menuContext = injectNavigationMenuContext()\nconst itemContext = injectNavigationMenuItemContext()\n\nconst triggerId = makeTriggerId(menuContext.baseId, itemContext.value)\nconst contentId = makeContentId(menuContext.baseId, itemContext.value)\n\nconst prevMotionAttributeRef = ref<MotionAttribute | null>(null)\nconst motionAttribute = computed(() => {\n const values = getItems().map(i => i.ref.id.split('trigger-')[1])\n if (menuContext.dir.value === 'rtl')\n values.reverse()\n const index = values.indexOf(menuContext.modelValue.value)\n const prevIndex = values.indexOf(menuContext.previousValue.value)\n const isSelected = itemContext.value === menuContext.modelValue.value\n const wasSelected = prevIndex === values.indexOf(itemContext.value)\n\n // We only want to update selected and the last selected content\n // this avoids animations being interrupted outside of that range\n if (!isSelected && !wasSelected)\n return prevMotionAttributeRef.value\n\n const attribute = (() => {\n // Don't provide a direction on the initial open\n if (index !== prevIndex) {\n // If we're moving to this item from another\n if (isSelected && prevIndex !== -1)\n return index > prevIndex ? 'from-end' : 'from-start'\n // If we're leaving this item for another\n if (wasSelected && index !== -1)\n return index > prevIndex ? 'to-start' : 'to-end'\n }\n // Otherwise we're entering from closed or leaving the list\n // entirely and should not animate in any direction\n return null\n })()\n\n // eslint-disable-next-line vue/no-side-effects-in-computed-properties\n prevMotionAttributeRef.value = attribute\n return attribute\n})\n\nfunction handleFocusOutside(ev: FocusOutsideEvent) {\n emits('focusOutside', ev)\n emits('interactOutside', ev)\n\n const target = ev.detail.originalEvent.target as HTMLElement\n if (target.hasAttribute('data-navigation-menu-trigger'))\n ev.preventDefault()\n\n if (!ev.defaultPrevented) {\n itemContext.onContentFocusOutside()\n\n const target = ev.target as HTMLElement\n // Only dismiss content when focus moves outside of the menu\n if (menuContext.rootNavigationMenu?.value?.contains(target))\n ev.preventDefault()\n }\n}\n\nfunction handlePointerDownOutside(ev: PointerDownOutsideEvent) {\n emits('pointerDownOutside', ev)\n\n if (!ev.defaultPrevented) {\n const target = ev.target as HTMLElement\n const isTrigger = getItems().some(i =>\n i.ref.contains(target),\n )\n const isRootViewport\n = menuContext.isRootMenu && menuContext.viewport.value?.contains(target)\n\n if (isTrigger || isRootViewport || !menuContext.isRootMenu)\n ev.preventDefault()\n }\n}\n\nwatchEffect((cleanupFn) => {\n const content = currentElement.value\n if (menuContext.isRootMenu && content) {\n // Bubble dismiss to the root content node and focus its trigger\n const handleClose = () => {\n menuContext.onItemDismiss()\n itemContext.onRootContentClose()\n if (content.contains(getActiveElement()))\n itemContext.triggerRef.value?.focus()\n }\n content.addEventListener(EVENT_ROOT_CONTENT_DISMISS, handleClose)\n\n cleanupFn(() =>\n content.removeEventListener(EVENT_ROOT_CONTENT_DISMISS, handleClose),\n )\n }\n})\n\nfunction handleEscapeKeyDown(ev: KeyboardEvent) {\n emits('escapeKeyDown', ev)\n\n if (!ev.defaultPrevented) {\n menuContext.onItemDismiss()\n itemContext.triggerRef?.value?.focus()\n itemContext.wasEscapeCloseRef.value = true\n }\n}\n\nfunction handleKeydown(ev: KeyboardEvent) {\n // prevent parent menu triggering keydown event\n if ((ev.target as HTMLElement).closest('[data-reka-navigation-menu]') !== menuContext.rootNavigationMenu.value)\n return\n\n const isMetaKey = ev.altKey || ev.ctrlKey || ev.metaKey\n const isTabKey = ev.key === 'Tab' && !isMetaKey\n const candidates = getTabbableCandidates(ev.currentTarget as HTMLElement)\n\n if (isTabKey) {\n const focusedElement = getActiveElement()\n const index = candidates.findIndex(\n candidate => candidate === focusedElement,\n )\n const isMovingBackwards = ev.shiftKey\n const nextCandidates = isMovingBackwards\n ? candidates.slice(0, index).reverse()\n : candidates.slice(index + 1, candidates.length)\n\n if (focusFirst(nextCandidates)) {\n // prevent browser tab keydown because we've handled focus\n ev.preventDefault()\n }\n else {\n // If we can't focus that means we're at the edges\n // so focus the proxy and let browser handle\n // tab/shift+tab keypress on the proxy instead\n itemContext.focusProxyRef.value?.focus()\n return\n }\n }\n\n const newSelectedElement = useArrowNavigation(\n ev,\n getActiveElement() as HTMLElement,\n undefined,\n { itemsArray: candidates, loop: false, enableIgnoredElement: true },\n )\n newSelectedElement?.focus()\n}\n\nfunction handleDismiss() {\n const rootContentDismissEvent = new Event(EVENT_ROOT_CONTENT_DISMISS, {\n bubbles: true,\n cancelable: true,\n })\n currentElement.value?.dispatchEvent(rootContentDismissEvent)\n}\n</script>\n\n<template>\n <DismissableLayer\n :id=\"contentId\"\n :ref=\"forwardRef\"\n :aria-labelledby=\"triggerId\"\n :data-motion=\"motionAttribute\"\n :data-state=\"getOpenState(menuContext.modelValue.value === itemContext.value)\"\n :data-orientation=\"menuContext.orientation\"\n v-bind=\"props\"\n @keydown=\"handleKeydown\"\n @escape-key-down=\"handleEscapeKeyDown\"\n @pointer-down-outside=\"handlePointerDownOutside\"\n @focus-outside=\"handleFocusOutside\"\n @dismiss=\"handleDismiss\"\n >\n <slot />\n </DismissableLayer>\n</template>\n"],"names":["target"],"mappings":"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"}
1
+ {"version":3,"file":"NavigationMenuContentImpl.js","sources":["../../src/NavigationMenu/NavigationMenuContentImpl.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type {\n DismissableLayerEmits,\n DismissableLayerProps,\n FocusOutsideEvent,\n} from '@/DismissableLayer'\nimport type { PointerDownOutsideEvent } from '@/DismissableLayer/utils'\nimport { useCollection } from '@/Collection'\n\ntype MotionAttribute = 'to-start' | 'to-end' | 'from-start' | 'from-end'\n\nexport type NavigationMenuContentImplEmits = DismissableLayerEmits\n\nexport interface NavigationMenuContentImplProps extends DismissableLayerProps {}\n</script>\n\n<script setup lang=\"ts\">\nimport { computed, ref, watchEffect } from 'vue'\nimport { DismissableLayer } from '@/DismissableLayer'\nimport { getActiveElement, useArrowNavigation, useForwardExpose } from '@/shared'\nimport { injectNavigationMenuItemContext } from './NavigationMenuItem.vue'\nimport { injectNavigationMenuContext } from './NavigationMenuRoot.vue'\nimport {\n EVENT_ROOT_CONTENT_DISMISS,\n focusFirst,\n getOpenState,\n getTabbableCandidates,\n makeContentId,\n makeTriggerId,\n} from './utils'\n\nconst props = defineProps<NavigationMenuContentImplProps>()\nconst emits = defineEmits<NavigationMenuContentImplEmits>()\n\nconst { getItems } = useCollection({ key: 'NavigationMenu' })\nconst { forwardRef, currentElement } = useForwardExpose()\n\nconst menuContext = injectNavigationMenuContext()\nconst itemContext = injectNavigationMenuItemContext()\n\nconst triggerId = makeTriggerId(menuContext.baseId, itemContext.value)\nconst contentId = makeContentId(menuContext.baseId, itemContext.value)\n\nconst prevMotionAttributeRef = ref<MotionAttribute | null>(null)\nconst motionAttribute = computed(() => {\n const values = getItems().map(i => i.ref.id.split('trigger-')[1])\n if (menuContext.dir.value === 'rtl')\n values.reverse()\n const index = values.indexOf(menuContext.modelValue.value)\n const prevIndex = values.indexOf(menuContext.previousValue.value)\n const isSelected = itemContext.value === menuContext.modelValue.value\n const wasSelected = prevIndex === values.indexOf(itemContext.value)\n\n // We only want to update selected and the last selected content\n // this avoids animations being interrupted outside of that range\n if (!isSelected && !wasSelected)\n return prevMotionAttributeRef.value\n\n const attribute = (() => {\n // Don't provide a direction on the initial open\n if (index !== prevIndex) {\n // If we're moving to this item from another\n if (isSelected && prevIndex !== -1)\n return index > prevIndex ? 'from-end' : 'from-start'\n // If we're leaving this item for another\n if (wasSelected && index !== -1)\n return index > prevIndex ? 'to-start' : 'to-end'\n }\n // Otherwise we're entering from closed or leaving the list\n // entirely and should not animate in any direction\n return null\n })()\n\n // eslint-disable-next-line vue/no-side-effects-in-computed-properties\n prevMotionAttributeRef.value = attribute\n return attribute\n})\n\nfunction handleFocusOutside(ev: FocusOutsideEvent) {\n emits('focusOutside', ev)\n emits('interactOutside', ev)\n\n const target = ev.detail.originalEvent.target as HTMLElement\n if (target.hasAttribute('data-navigation-menu-trigger'))\n ev.preventDefault()\n\n if (!ev.defaultPrevented) {\n itemContext.onContentFocusOutside()\n\n const target = ev.target as HTMLElement\n // Only dismiss content when focus moves outside of the menu\n if (menuContext.rootNavigationMenu?.value?.contains(target))\n ev.preventDefault()\n }\n}\n\nfunction handlePointerDownOutside(ev: PointerDownOutsideEvent) {\n emits('pointerDownOutside', ev)\n\n if (!ev.defaultPrevented) {\n const target = ev.target as HTMLElement\n const isTrigger = getItems().some(i =>\n i.ref.contains(target),\n )\n const isRootViewport\n = menuContext.isRootMenu && menuContext.viewport.value?.contains(target)\n\n if (isTrigger || isRootViewport || !menuContext.isRootMenu)\n ev.preventDefault()\n }\n}\n\nwatchEffect((cleanupFn) => {\n const content = currentElement.value\n if (menuContext.isRootMenu && content) {\n // Bubble dismiss to the root content node and focus its trigger\n const handleClose = () => {\n menuContext.onItemDismiss()\n itemContext.onRootContentClose()\n if (content.contains(getActiveElement()))\n itemContext.triggerRef.value?.focus()\n }\n content.addEventListener(EVENT_ROOT_CONTENT_DISMISS, handleClose)\n\n cleanupFn(() =>\n content.removeEventListener(EVENT_ROOT_CONTENT_DISMISS, handleClose),\n )\n }\n})\n\nfunction handleEscapeKeyDown(ev: KeyboardEvent) {\n emits('escapeKeyDown', ev)\n\n if (!ev.defaultPrevented) {\n menuContext.onItemDismiss()\n itemContext.triggerRef?.value?.focus()\n itemContext.wasEscapeCloseRef.value = true\n }\n}\n\nfunction handleKeydown(ev: KeyboardEvent) {\n // prevent parent menu triggering keydown event\n if ((ev.target as HTMLElement).closest('[data-reka-navigation-menu]') !== menuContext.rootNavigationMenu.value)\n return\n\n const isMetaKey = ev.altKey || ev.ctrlKey || ev.metaKey\n const isTabKey = ev.key === 'Tab' && !isMetaKey\n const candidates = getTabbableCandidates(ev.currentTarget as HTMLElement)\n\n if (isTabKey) {\n const focusedElement = getActiveElement()\n const index = candidates.findIndex(\n candidate => candidate === focusedElement,\n )\n const isMovingBackwards = ev.shiftKey\n const nextCandidates = isMovingBackwards\n ? candidates.slice(0, index).reverse()\n : candidates.slice(index + 1, candidates.length)\n\n if (focusFirst(nextCandidates)) {\n // prevent browser tab keydown because we've handled focus\n ev.preventDefault()\n }\n else {\n // If we can't focus that means we're at the edges\n // so focus the proxy and let browser handle\n // tab/shift+tab keypress on the proxy instead\n itemContext.focusProxyRef.value?.focus()\n return\n }\n }\n\n const newSelectedElement = useArrowNavigation(\n ev,\n getActiveElement() as HTMLElement,\n undefined,\n { itemsArray: candidates, loop: false, enableIgnoredElement: true },\n )\n newSelectedElement?.focus()\n}\n\nfunction handleDismiss() {\n const rootContentDismissEvent = new Event(EVENT_ROOT_CONTENT_DISMISS, {\n bubbles: true,\n cancelable: true,\n })\n currentElement.value?.dispatchEvent(rootContentDismissEvent)\n}\n</script>\n\n<template>\n <DismissableLayer\n :id=\"contentId\"\n :ref=\"forwardRef\"\n :aria-labelledby=\"triggerId\"\n :data-motion=\"motionAttribute\"\n :data-state=\"getOpenState(menuContext.modelValue.value === itemContext.value)\"\n :data-orientation=\"menuContext.orientation\"\n v-bind=\"props\"\n @keydown=\"handleKeydown\"\n @escape-key-down=\"handleEscapeKeyDown\"\n @pointer-down-outside=\"handlePointerDownOutside\"\n @focus-outside=\"handleFocusOutside\"\n @dismiss=\"handleDismiss\"\n >\n <slot />\n </DismissableLayer>\n</template>\n"],"names":["target"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"NavigationMenuIndicator.cjs","sources":["../../src/NavigationMenu/NavigationMenuIndicator.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { PrimitiveProps } from '@/Primitive'\n\nexport interface NavigationMenuIndicatorProps extends PrimitiveProps {\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with Vue animation libraries.\n */\n forceMount?: boolean\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { computed, ref, watchEffect } from 'vue'\nimport { useResizeObserver } from '@vueuse/core'\nimport { injectNavigationMenuContext } from './NavigationMenuRoot.vue'\nimport { useForwardExpose } from '@/shared'\nimport { Primitive } from '@/Primitive'\nimport { Presence } from '@/Presence'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst props = defineProps<NavigationMenuIndicatorProps>()\n\nconst { forwardRef } = useForwardExpose()\nconst menuContext = injectNavigationMenuContext()\n\nconst indicatorStyle = ref<{ size: number, position: number }>()\nconst isHorizontal = computed(() => menuContext.orientation === 'horizontal')\nconst isVisible = computed(() => !!menuContext.modelValue.value)\nconst { activeTrigger } = menuContext\n\nfunction handlePositionChange() {\n if (!activeTrigger.value) {\n return\n }\n\n indicatorStyle.value = {\n size: isHorizontal.value\n ? activeTrigger.value.offsetWidth\n : activeTrigger.value.offsetHeight,\n position: isHorizontal.value\n ? activeTrigger.value.offsetLeft\n : activeTrigger.value.offsetTop,\n }\n}\n\nwatchEffect(() => {\n if (!menuContext.modelValue.value) {\n return\n }\n handlePositionChange()\n})\n\nuseResizeObserver(activeTrigger, handlePositionChange)\nuseResizeObserver(menuContext.indicatorTrack, handlePositionChange)\n</script>\n\n<template>\n <Teleport\n v-if=\"menuContext.indicatorTrack.value\"\n :to=\"menuContext.indicatorTrack.value\"\n >\n <Presence :present=\"forceMount || isVisible\">\n <Primitive\n :ref=\"forwardRef\"\n aria-hidden=\"true\"\n :data-state=\"isVisible ? 'visible' : 'hidden'\"\n :data-orientation=\"menuContext.orientation\"\n :as-child=\"props.asChild\"\n :as=\"as\"\n :style=\"{\n ...(indicatorStyle ? {\n '--reka-navigation-menu-indicator-size': `${indicatorStyle.size}px`,\n '--reka-navigation-menu-indicator-position': `${indicatorStyle.position}px`,\n } : {}),\n }\"\n v-bind=\"$attrs\"\n >\n <slot />\n </Primitive>\n </Presence>\n </Teleport>\n</template>\n"],"names":["useForwardExpose","injectNavigationMenuContext","ref","computed","watchEffect","useResizeObserver"],"mappings":";;;;;;;;;;;;;;;;;;;;AAwBA,IAAA,MAAM,KAAQ,GAAA,OAAA;AAEd,IAAM,MAAA,EAAE,UAAW,EAAA,GAAIA,wCAAiB,EAAA;AACxC,IAAA,MAAM,cAAcC,6DAA4B,EAAA;AAEhD,IAAA,MAAM,iBAAiBC,OAAwC,EAAA;AAC/D,IAAA,MAAM,YAAe,GAAAC,YAAA,CAAS,MAAM,WAAA,CAAY,gBAAgB,YAAY,CAAA;AAC5E,IAAA,MAAM,YAAYA,YAAS,CAAA,MAAM,CAAC,CAAC,WAAA,CAAY,WAAW,KAAK,CAAA;AAC/D,IAAM,MAAA,EAAE,eAAkB,GAAA,WAAA;AAE1B,IAAA,SAAS,oBAAuB,GAAA;AAC9B,MAAI,IAAA,CAAC,cAAc,KAAO,EAAA;AACxB,QAAA;AAAA;AAGF,MAAA,cAAA,CAAe,KAAQ,GAAA;AAAA,QACrB,MAAM,YAAa,CAAA,KAAA,GACf,cAAc,KAAM,CAAA,WAAA,GACpB,cAAc,KAAM,CAAA,YAAA;AAAA,QACxB,UAAU,YAAa,CAAA,KAAA,GACnB,cAAc,KAAM,CAAA,UAAA,GACpB,cAAc,KAAM,CAAA;AAAA,OAC1B;AAAA;AAGF,IAAAC,eAAA,CAAY,MAAM;AAChB,MAAI,IAAA,CAAC,WAAY,CAAA,UAAA,CAAW,KAAO,EAAA;AACjC,QAAA;AAAA;AAEF,MAAqB,oBAAA,EAAA;AAAA,KACtB,CAAA;AAED,IAAAC,sBAAA,CAAkB,eAAe,oBAAoB,CAAA;AACrD,IAAkBA,sBAAA,CAAA,WAAA,CAAY,gBAAgB,oBAAoB,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"NavigationMenuIndicator.cjs","sources":["../../src/NavigationMenu/NavigationMenuIndicator.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { PrimitiveProps } from '@/Primitive'\n\nexport interface NavigationMenuIndicatorProps extends PrimitiveProps {\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with Vue animation libraries.\n */\n forceMount?: boolean\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { useResizeObserver } from '@vueuse/core'\nimport { computed, ref, watchEffect } from 'vue'\nimport { Presence } from '@/Presence'\nimport { Primitive } from '@/Primitive'\nimport { useForwardExpose } from '@/shared'\nimport { injectNavigationMenuContext } from './NavigationMenuRoot.vue'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst props = defineProps<NavigationMenuIndicatorProps>()\n\nconst { forwardRef } = useForwardExpose()\nconst menuContext = injectNavigationMenuContext()\n\nconst indicatorStyle = ref<{ size: number, position: number }>()\nconst isHorizontal = computed(() => menuContext.orientation === 'horizontal')\nconst isVisible = computed(() => !!menuContext.modelValue.value)\nconst { activeTrigger } = menuContext\n\nfunction handlePositionChange() {\n if (!activeTrigger.value) {\n return\n }\n\n indicatorStyle.value = {\n size: isHorizontal.value\n ? activeTrigger.value.offsetWidth\n : activeTrigger.value.offsetHeight,\n position: isHorizontal.value\n ? activeTrigger.value.offsetLeft\n : activeTrigger.value.offsetTop,\n }\n}\n\nwatchEffect(() => {\n if (!menuContext.modelValue.value) {\n return\n }\n handlePositionChange()\n})\n\nuseResizeObserver(activeTrigger, handlePositionChange)\nuseResizeObserver(menuContext.indicatorTrack, handlePositionChange)\n</script>\n\n<template>\n <Teleport\n v-if=\"menuContext.indicatorTrack.value\"\n :to=\"menuContext.indicatorTrack.value\"\n >\n <Presence :present=\"forceMount || isVisible\">\n <Primitive\n :ref=\"forwardRef\"\n aria-hidden=\"true\"\n :data-state=\"isVisible ? 'visible' : 'hidden'\"\n :data-orientation=\"menuContext.orientation\"\n :as-child=\"props.asChild\"\n :as=\"as\"\n :style=\"{\n ...(indicatorStyle ? {\n '--reka-navigation-menu-indicator-size': `${indicatorStyle.size}px`,\n '--reka-navigation-menu-indicator-position': `${indicatorStyle.position}px`,\n } : {}),\n }\"\n v-bind=\"$attrs\"\n >\n <slot />\n </Primitive>\n </Presence>\n </Teleport>\n</template>\n"],"names":["useForwardExpose","injectNavigationMenuContext","ref","computed","watchEffect","useResizeObserver"],"mappings":";;;;;;;;;;;;;;;;;;;;AAwBA,IAAA,MAAM,KAAQ,GAAA,OAAA;AAEd,IAAM,MAAA,EAAE,UAAW,EAAA,GAAIA,wCAAiB,EAAA;AACxC,IAAA,MAAM,cAAcC,6DAA4B,EAAA;AAEhD,IAAA,MAAM,iBAAiBC,OAAwC,EAAA;AAC/D,IAAA,MAAM,YAAe,GAAAC,YAAA,CAAS,MAAM,WAAA,CAAY,gBAAgB,YAAY,CAAA;AAC5E,IAAA,MAAM,YAAYA,YAAS,CAAA,MAAM,CAAC,CAAC,WAAA,CAAY,WAAW,KAAK,CAAA;AAC/D,IAAM,MAAA,EAAE,eAAkB,GAAA,WAAA;AAE1B,IAAA,SAAS,oBAAuB,GAAA;AAC9B,MAAI,IAAA,CAAC,cAAc,KAAO,EAAA;AACxB,QAAA;AAAA;AAGF,MAAA,cAAA,CAAe,KAAQ,GAAA;AAAA,QACrB,MAAM,YAAa,CAAA,KAAA,GACf,cAAc,KAAM,CAAA,WAAA,GACpB,cAAc,KAAM,CAAA,YAAA;AAAA,QACxB,UAAU,YAAa,CAAA,KAAA,GACnB,cAAc,KAAM,CAAA,UAAA,GACpB,cAAc,KAAM,CAAA;AAAA,OAC1B;AAAA;AAGF,IAAAC,eAAA,CAAY,MAAM;AAChB,MAAI,IAAA,CAAC,WAAY,CAAA,UAAA,CAAW,KAAO,EAAA;AACjC,QAAA;AAAA;AAEF,MAAqB,oBAAA,EAAA;AAAA,KACtB,CAAA;AAED,IAAAC,sBAAA,CAAkB,eAAe,oBAAoB,CAAA;AACrD,IAAkBA,sBAAA,CAAA,WAAA,CAAY,gBAAgB,oBAAoB,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"NavigationMenuIndicator.js","sources":["../../src/NavigationMenu/NavigationMenuIndicator.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { PrimitiveProps } from '@/Primitive'\n\nexport interface NavigationMenuIndicatorProps extends PrimitiveProps {\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with Vue animation libraries.\n */\n forceMount?: boolean\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { computed, ref, watchEffect } from 'vue'\nimport { useResizeObserver } from '@vueuse/core'\nimport { injectNavigationMenuContext } from './NavigationMenuRoot.vue'\nimport { useForwardExpose } from '@/shared'\nimport { Primitive } from '@/Primitive'\nimport { Presence } from '@/Presence'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst props = defineProps<NavigationMenuIndicatorProps>()\n\nconst { forwardRef } = useForwardExpose()\nconst menuContext = injectNavigationMenuContext()\n\nconst indicatorStyle = ref<{ size: number, position: number }>()\nconst isHorizontal = computed(() => menuContext.orientation === 'horizontal')\nconst isVisible = computed(() => !!menuContext.modelValue.value)\nconst { activeTrigger } = menuContext\n\nfunction handlePositionChange() {\n if (!activeTrigger.value) {\n return\n }\n\n indicatorStyle.value = {\n size: isHorizontal.value\n ? activeTrigger.value.offsetWidth\n : activeTrigger.value.offsetHeight,\n position: isHorizontal.value\n ? activeTrigger.value.offsetLeft\n : activeTrigger.value.offsetTop,\n }\n}\n\nwatchEffect(() => {\n if (!menuContext.modelValue.value) {\n return\n }\n handlePositionChange()\n})\n\nuseResizeObserver(activeTrigger, handlePositionChange)\nuseResizeObserver(menuContext.indicatorTrack, handlePositionChange)\n</script>\n\n<template>\n <Teleport\n v-if=\"menuContext.indicatorTrack.value\"\n :to=\"menuContext.indicatorTrack.value\"\n >\n <Presence :present=\"forceMount || isVisible\">\n <Primitive\n :ref=\"forwardRef\"\n aria-hidden=\"true\"\n :data-state=\"isVisible ? 'visible' : 'hidden'\"\n :data-orientation=\"menuContext.orientation\"\n :as-child=\"props.asChild\"\n :as=\"as\"\n :style=\"{\n ...(indicatorStyle ? {\n '--reka-navigation-menu-indicator-size': `${indicatorStyle.size}px`,\n '--reka-navigation-menu-indicator-position': `${indicatorStyle.position}px`,\n } : {}),\n }\"\n v-bind=\"$attrs\"\n >\n <slot />\n </Primitive>\n </Presence>\n </Teleport>\n</template>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAwBA,IAAA,MAAM,KAAQ,GAAA,OAAA;AAEd,IAAM,MAAA,EAAE,UAAW,EAAA,GAAI,gBAAiB,EAAA;AACxC,IAAA,MAAM,cAAc,2BAA4B,EAAA;AAEhD,IAAA,MAAM,iBAAiB,GAAwC,EAAA;AAC/D,IAAA,MAAM,YAAe,GAAA,QAAA,CAAS,MAAM,WAAA,CAAY,gBAAgB,YAAY,CAAA;AAC5E,IAAA,MAAM,YAAY,QAAS,CAAA,MAAM,CAAC,CAAC,WAAA,CAAY,WAAW,KAAK,CAAA;AAC/D,IAAM,MAAA,EAAE,eAAkB,GAAA,WAAA;AAE1B,IAAA,SAAS,oBAAuB,GAAA;AAC9B,MAAI,IAAA,CAAC,cAAc,KAAO,EAAA;AACxB,QAAA;AAAA;AAGF,MAAA,cAAA,CAAe,KAAQ,GAAA;AAAA,QACrB,MAAM,YAAa,CAAA,KAAA,GACf,cAAc,KAAM,CAAA,WAAA,GACpB,cAAc,KAAM,CAAA,YAAA;AAAA,QACxB,UAAU,YAAa,CAAA,KAAA,GACnB,cAAc,KAAM,CAAA,UAAA,GACpB,cAAc,KAAM,CAAA;AAAA,OAC1B;AAAA;AAGF,IAAA,WAAA,CAAY,MAAM;AAChB,MAAI,IAAA,CAAC,WAAY,CAAA,UAAA,CAAW,KAAO,EAAA;AACjC,QAAA;AAAA;AAEF,MAAqB,oBAAA,EAAA;AAAA,KACtB,CAAA;AAED,IAAA,iBAAA,CAAkB,eAAe,oBAAoB,CAAA;AACrD,IAAkB,iBAAA,CAAA,WAAA,CAAY,gBAAgB,oBAAoB,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"NavigationMenuIndicator.js","sources":["../../src/NavigationMenu/NavigationMenuIndicator.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { PrimitiveProps } from '@/Primitive'\n\nexport interface NavigationMenuIndicatorProps extends PrimitiveProps {\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with Vue animation libraries.\n */\n forceMount?: boolean\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { useResizeObserver } from '@vueuse/core'\nimport { computed, ref, watchEffect } from 'vue'\nimport { Presence } from '@/Presence'\nimport { Primitive } from '@/Primitive'\nimport { useForwardExpose } from '@/shared'\nimport { injectNavigationMenuContext } from './NavigationMenuRoot.vue'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst props = defineProps<NavigationMenuIndicatorProps>()\n\nconst { forwardRef } = useForwardExpose()\nconst menuContext = injectNavigationMenuContext()\n\nconst indicatorStyle = ref<{ size: number, position: number }>()\nconst isHorizontal = computed(() => menuContext.orientation === 'horizontal')\nconst isVisible = computed(() => !!menuContext.modelValue.value)\nconst { activeTrigger } = menuContext\n\nfunction handlePositionChange() {\n if (!activeTrigger.value) {\n return\n }\n\n indicatorStyle.value = {\n size: isHorizontal.value\n ? activeTrigger.value.offsetWidth\n : activeTrigger.value.offsetHeight,\n position: isHorizontal.value\n ? activeTrigger.value.offsetLeft\n : activeTrigger.value.offsetTop,\n }\n}\n\nwatchEffect(() => {\n if (!menuContext.modelValue.value) {\n return\n }\n handlePositionChange()\n})\n\nuseResizeObserver(activeTrigger, handlePositionChange)\nuseResizeObserver(menuContext.indicatorTrack, handlePositionChange)\n</script>\n\n<template>\n <Teleport\n v-if=\"menuContext.indicatorTrack.value\"\n :to=\"menuContext.indicatorTrack.value\"\n >\n <Presence :present=\"forceMount || isVisible\">\n <Primitive\n :ref=\"forwardRef\"\n aria-hidden=\"true\"\n :data-state=\"isVisible ? 'visible' : 'hidden'\"\n :data-orientation=\"menuContext.orientation\"\n :as-child=\"props.asChild\"\n :as=\"as\"\n :style=\"{\n ...(indicatorStyle ? {\n '--reka-navigation-menu-indicator-size': `${indicatorStyle.size}px`,\n '--reka-navigation-menu-indicator-position': `${indicatorStyle.position}px`,\n } : {}),\n }\"\n v-bind=\"$attrs\"\n >\n <slot />\n </Primitive>\n </Presence>\n </Teleport>\n</template>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAwBA,IAAA,MAAM,KAAQ,GAAA,OAAA;AAEd,IAAM,MAAA,EAAE,UAAW,EAAA,GAAI,gBAAiB,EAAA;AACxC,IAAA,MAAM,cAAc,2BAA4B,EAAA;AAEhD,IAAA,MAAM,iBAAiB,GAAwC,EAAA;AAC/D,IAAA,MAAM,YAAe,GAAA,QAAA,CAAS,MAAM,WAAA,CAAY,gBAAgB,YAAY,CAAA;AAC5E,IAAA,MAAM,YAAY,QAAS,CAAA,MAAM,CAAC,CAAC,WAAA,CAAY,WAAW,KAAK,CAAA;AAC/D,IAAM,MAAA,EAAE,eAAkB,GAAA,WAAA;AAE1B,IAAA,SAAS,oBAAuB,GAAA;AAC9B,MAAI,IAAA,CAAC,cAAc,KAAO,EAAA;AACxB,QAAA;AAAA;AAGF,MAAA,cAAA,CAAe,KAAQ,GAAA;AAAA,QACrB,MAAM,YAAa,CAAA,KAAA,GACf,cAAc,KAAM,CAAA,WAAA,GACpB,cAAc,KAAM,CAAA,YAAA;AAAA,QACxB,UAAU,YAAa,CAAA,KAAA,GACnB,cAAc,KAAM,CAAA,UAAA,GACpB,cAAc,KAAM,CAAA;AAAA,OAC1B;AAAA;AAGF,IAAA,WAAA,CAAY,MAAM;AAChB,MAAI,IAAA,CAAC,WAAY,CAAA,UAAA,CAAW,KAAO,EAAA;AACjC,QAAA;AAAA;AAEF,MAAqB,oBAAA,EAAA;AAAA,KACtB,CAAA;AAED,IAAA,iBAAA,CAAkB,eAAe,oBAAoB,CAAA;AACrD,IAAkB,iBAAA,CAAA,WAAA,CAAY,gBAAgB,oBAAoB,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -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 { Primitive } from '@/Primitive'\nimport { injectNavigationMenuContext } from './NavigationMenuRoot.vue'\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 +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 { Primitive } from '@/Primitive'\nimport { injectNavigationMenuContext } from './NavigationMenuRoot.vue'\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 +1 @@
1
- {"version":3,"file":"NavigationMenuLink.cjs","sources":["../../src/NavigationMenu/NavigationMenuLink.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { PrimitiveProps } from '@/Primitive'\nimport { useForwardExpose } from '@/shared'\nimport { useCollection } from '@/Collection'\n\nexport type NavigationMenuLinkEmits = {\n /**\n * Event handler called when the user selects a link (via mouse or keyboard).\n *\n * Calling `event.preventDefault` in this handler will prevent the navigation menu from closing when selecting that link.\n */\n select: [payload: CustomEvent<{ originalEvent: Event }>]\n}\nexport interface NavigationMenuLinkProps extends PrimitiveProps {\n /** Used to identify the link as the currently active page. */\n active?: boolean\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { Primitive } from '@/Primitive'\nimport { EVENT_ROOT_CONTENT_DISMISS, LINK_SELECT } from './utils'\n\nconst props = withDefaults(defineProps<NavigationMenuLinkProps>(), {\n as: 'a',\n})\n\nconst emits = defineEmits<NavigationMenuLinkEmits>()\n\nconst { CollectionItem } = useCollection({ key: 'NavigationMenu' })\nuseForwardExpose()\n\nasync function handleClick(ev: MouseEvent) {\n const linkSelectEvent = new CustomEvent(LINK_SELECT, {\n bubbles: true,\n cancelable: true,\n detail: {\n originalEvent: ev,\n },\n })\n emits('select', linkSelectEvent)\n\n if (!linkSelectEvent.defaultPrevented && !ev.metaKey) {\n const rootContentDismissEvent = new CustomEvent(\n EVENT_ROOT_CONTENT_DISMISS,\n {\n bubbles: true,\n cancelable: true,\n },\n )\n ev.target?.dispatchEvent(rootContentDismissEvent)\n }\n}\n</script>\n\n<template>\n <CollectionItem>\n <Primitive\n :as=\"as\"\n :data-active=\"active ? '' : undefined\"\n :aria-current=\"active ? 'page' : undefined\"\n :as-child=\"props.asChild\"\n @click=\"handleClick\"\n >\n <slot />\n </Primitive>\n </CollectionItem>\n</template>\n"],"names":["useCollection","useForwardExpose","LINK_SELECT","EVENT_ROOT_CONTENT_DISMISS"],"mappings":";;;;;;;;;;;;;;;;;AAuBA,IAAA,MAAM,KAAQ,GAAA,OAAA;AAId,IAAA,MAAM,KAAQ,GAAA,MAAA;AAEd,IAAA,MAAM,EAAE,cAAe,EAAA,GAAIA,oCAAc,EAAE,GAAA,EAAK,kBAAkB,CAAA;AAClE,IAAiBC,wCAAA,EAAA;AAEjB,IAAA,eAAe,YAAY,EAAgB,EAAA;AACzC,MAAM,MAAA,eAAA,GAAkB,IAAI,WAAA,CAAYC,gCAAa,EAAA;AAAA,QACnD,OAAS,EAAA,IAAA;AAAA,QACT,UAAY,EAAA,IAAA;AAAA,QACZ,MAAQ,EAAA;AAAA,UACN,aAAe,EAAA;AAAA;AACjB,OACD,CAAA;AACD,MAAA,KAAA,CAAM,UAAU,eAAe,CAAA;AAE/B,MAAA,IAAI,CAAC,eAAA,CAAgB,gBAAoB,IAAA,CAAC,GAAG,OAAS,EAAA;AACpD,QAAA,MAAM,0BAA0B,IAAI,WAAA;AAAA,UAClCC,+CAAA;AAAA,UACA;AAAA,YACE,OAAS,EAAA,IAAA;AAAA,YACT,UAAY,EAAA;AAAA;AACd,SACF;AACA,QAAG,EAAA,CAAA,MAAA,EAAQ,cAAc,uBAAuB,CAAA;AAAA;AAClD;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"NavigationMenuLink.cjs","sources":["../../src/NavigationMenu/NavigationMenuLink.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { PrimitiveProps } from '@/Primitive'\nimport { useCollection } from '@/Collection'\nimport { useForwardExpose } from '@/shared'\n\nexport type NavigationMenuLinkEmits = {\n /**\n * Event handler called when the user selects a link (via mouse or keyboard).\n *\n * Calling `event.preventDefault` in this handler will prevent the navigation menu from closing when selecting that link.\n */\n select: [payload: CustomEvent<{ originalEvent: Event }>]\n}\nexport interface NavigationMenuLinkProps extends PrimitiveProps {\n /** Used to identify the link as the currently active page. */\n active?: boolean\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { Primitive } from '@/Primitive'\nimport { EVENT_ROOT_CONTENT_DISMISS, LINK_SELECT } from './utils'\n\nconst props = withDefaults(defineProps<NavigationMenuLinkProps>(), {\n as: 'a',\n})\n\nconst emits = defineEmits<NavigationMenuLinkEmits>()\n\nconst { CollectionItem } = useCollection({ key: 'NavigationMenu' })\nuseForwardExpose()\n\nasync function handleClick(ev: MouseEvent) {\n const linkSelectEvent = new CustomEvent(LINK_SELECT, {\n bubbles: true,\n cancelable: true,\n detail: {\n originalEvent: ev,\n },\n })\n emits('select', linkSelectEvent)\n\n if (!linkSelectEvent.defaultPrevented && !ev.metaKey) {\n const rootContentDismissEvent = new CustomEvent(\n EVENT_ROOT_CONTENT_DISMISS,\n {\n bubbles: true,\n cancelable: true,\n },\n )\n ev.target?.dispatchEvent(rootContentDismissEvent)\n }\n}\n</script>\n\n<template>\n <CollectionItem>\n <Primitive\n :as=\"as\"\n :data-active=\"active ? '' : undefined\"\n :aria-current=\"active ? 'page' : undefined\"\n :as-child=\"props.asChild\"\n @click=\"handleClick\"\n >\n <slot />\n </Primitive>\n </CollectionItem>\n</template>\n"],"names":["useCollection","useForwardExpose","LINK_SELECT","EVENT_ROOT_CONTENT_DISMISS"],"mappings":";;;;;;;;;;;;;;;;;AAuBA,IAAA,MAAM,KAAQ,GAAA,OAAA;AAId,IAAA,MAAM,KAAQ,GAAA,MAAA;AAEd,IAAA,MAAM,EAAE,cAAe,EAAA,GAAIA,oCAAc,EAAE,GAAA,EAAK,kBAAkB,CAAA;AAClE,IAAiBC,wCAAA,EAAA;AAEjB,IAAA,eAAe,YAAY,EAAgB,EAAA;AACzC,MAAM,MAAA,eAAA,GAAkB,IAAI,WAAA,CAAYC,gCAAa,EAAA;AAAA,QACnD,OAAS,EAAA,IAAA;AAAA,QACT,UAAY,EAAA,IAAA;AAAA,QACZ,MAAQ,EAAA;AAAA,UACN,aAAe,EAAA;AAAA;AACjB,OACD,CAAA;AACD,MAAA,KAAA,CAAM,UAAU,eAAe,CAAA;AAE/B,MAAA,IAAI,CAAC,eAAA,CAAgB,gBAAoB,IAAA,CAAC,GAAG,OAAS,EAAA;AACpD,QAAA,MAAM,0BAA0B,IAAI,WAAA;AAAA,UAClCC,+CAAA;AAAA,UACA;AAAA,YACE,OAAS,EAAA,IAAA;AAAA,YACT,UAAY,EAAA;AAAA;AACd,SACF;AACA,QAAG,EAAA,CAAA,MAAA,EAAQ,cAAc,uBAAuB,CAAA;AAAA;AAClD;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"NavigationMenuLink.js","sources":["../../src/NavigationMenu/NavigationMenuLink.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { PrimitiveProps } from '@/Primitive'\nimport { useForwardExpose } from '@/shared'\nimport { useCollection } from '@/Collection'\n\nexport type NavigationMenuLinkEmits = {\n /**\n * Event handler called when the user selects a link (via mouse or keyboard).\n *\n * Calling `event.preventDefault` in this handler will prevent the navigation menu from closing when selecting that link.\n */\n select: [payload: CustomEvent<{ originalEvent: Event }>]\n}\nexport interface NavigationMenuLinkProps extends PrimitiveProps {\n /** Used to identify the link as the currently active page. */\n active?: boolean\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { Primitive } from '@/Primitive'\nimport { EVENT_ROOT_CONTENT_DISMISS, LINK_SELECT } from './utils'\n\nconst props = withDefaults(defineProps<NavigationMenuLinkProps>(), {\n as: 'a',\n})\n\nconst emits = defineEmits<NavigationMenuLinkEmits>()\n\nconst { CollectionItem } = useCollection({ key: 'NavigationMenu' })\nuseForwardExpose()\n\nasync function handleClick(ev: MouseEvent) {\n const linkSelectEvent = new CustomEvent(LINK_SELECT, {\n bubbles: true,\n cancelable: true,\n detail: {\n originalEvent: ev,\n },\n })\n emits('select', linkSelectEvent)\n\n if (!linkSelectEvent.defaultPrevented && !ev.metaKey) {\n const rootContentDismissEvent = new CustomEvent(\n EVENT_ROOT_CONTENT_DISMISS,\n {\n bubbles: true,\n cancelable: true,\n },\n )\n ev.target?.dispatchEvent(rootContentDismissEvent)\n }\n}\n</script>\n\n<template>\n <CollectionItem>\n <Primitive\n :as=\"as\"\n :data-active=\"active ? '' : undefined\"\n :aria-current=\"active ? 'page' : undefined\"\n :as-child=\"props.asChild\"\n @click=\"handleClick\"\n >\n <slot />\n </Primitive>\n </CollectionItem>\n</template>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;AAuBA,IAAA,MAAM,KAAQ,GAAA,OAAA;AAId,IAAA,MAAM,KAAQ,GAAA,MAAA;AAEd,IAAA,MAAM,EAAE,cAAe,EAAA,GAAI,cAAc,EAAE,GAAA,EAAK,kBAAkB,CAAA;AAClE,IAAiB,gBAAA,EAAA;AAEjB,IAAA,eAAe,YAAY,EAAgB,EAAA;AACzC,MAAM,MAAA,eAAA,GAAkB,IAAI,WAAA,CAAY,WAAa,EAAA;AAAA,QACnD,OAAS,EAAA,IAAA;AAAA,QACT,UAAY,EAAA,IAAA;AAAA,QACZ,MAAQ,EAAA;AAAA,UACN,aAAe,EAAA;AAAA;AACjB,OACD,CAAA;AACD,MAAA,KAAA,CAAM,UAAU,eAAe,CAAA;AAE/B,MAAA,IAAI,CAAC,eAAA,CAAgB,gBAAoB,IAAA,CAAC,GAAG,OAAS,EAAA;AACpD,QAAA,MAAM,0BAA0B,IAAI,WAAA;AAAA,UAClC,0BAAA;AAAA,UACA;AAAA,YACE,OAAS,EAAA,IAAA;AAAA,YACT,UAAY,EAAA;AAAA;AACd,SACF;AACA,QAAG,EAAA,CAAA,MAAA,EAAQ,cAAc,uBAAuB,CAAA;AAAA;AAClD;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"NavigationMenuLink.js","sources":["../../src/NavigationMenu/NavigationMenuLink.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { PrimitiveProps } from '@/Primitive'\nimport { useCollection } from '@/Collection'\nimport { useForwardExpose } from '@/shared'\n\nexport type NavigationMenuLinkEmits = {\n /**\n * Event handler called when the user selects a link (via mouse or keyboard).\n *\n * Calling `event.preventDefault` in this handler will prevent the navigation menu from closing when selecting that link.\n */\n select: [payload: CustomEvent<{ originalEvent: Event }>]\n}\nexport interface NavigationMenuLinkProps extends PrimitiveProps {\n /** Used to identify the link as the currently active page. */\n active?: boolean\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { Primitive } from '@/Primitive'\nimport { EVENT_ROOT_CONTENT_DISMISS, LINK_SELECT } from './utils'\n\nconst props = withDefaults(defineProps<NavigationMenuLinkProps>(), {\n as: 'a',\n})\n\nconst emits = defineEmits<NavigationMenuLinkEmits>()\n\nconst { CollectionItem } = useCollection({ key: 'NavigationMenu' })\nuseForwardExpose()\n\nasync function handleClick(ev: MouseEvent) {\n const linkSelectEvent = new CustomEvent(LINK_SELECT, {\n bubbles: true,\n cancelable: true,\n detail: {\n originalEvent: ev,\n },\n })\n emits('select', linkSelectEvent)\n\n if (!linkSelectEvent.defaultPrevented && !ev.metaKey) {\n const rootContentDismissEvent = new CustomEvent(\n EVENT_ROOT_CONTENT_DISMISS,\n {\n bubbles: true,\n cancelable: true,\n },\n )\n ev.target?.dispatchEvent(rootContentDismissEvent)\n }\n}\n</script>\n\n<template>\n <CollectionItem>\n <Primitive\n :as=\"as\"\n :data-active=\"active ? '' : undefined\"\n :aria-current=\"active ? 'page' : undefined\"\n :as-child=\"props.asChild\"\n @click=\"handleClick\"\n >\n <slot />\n </Primitive>\n </CollectionItem>\n</template>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;AAuBA,IAAA,MAAM,KAAQ,GAAA,OAAA;AAId,IAAA,MAAM,KAAQ,GAAA,MAAA;AAEd,IAAA,MAAM,EAAE,cAAe,EAAA,GAAI,cAAc,EAAE,GAAA,EAAK,kBAAkB,CAAA;AAClE,IAAiB,gBAAA,EAAA;AAEjB,IAAA,eAAe,YAAY,EAAgB,EAAA;AACzC,MAAM,MAAA,eAAA,GAAkB,IAAI,WAAA,CAAY,WAAa,EAAA;AAAA,QACnD,OAAS,EAAA,IAAA;AAAA,QACT,UAAY,EAAA,IAAA;AAAA,QACZ,MAAQ,EAAA;AAAA,UACN,aAAe,EAAA;AAAA;AACjB,OACD,CAAA;AACD,MAAA,KAAA,CAAM,UAAU,eAAe,CAAA;AAE/B,MAAA,IAAI,CAAC,eAAA,CAAgB,gBAAoB,IAAA,CAAC,GAAG,OAAS,EAAA;AACpD,QAAA,MAAM,0BAA0B,IAAI,WAAA;AAAA,UAClC,0BAAA;AAAA,UACA;AAAA,YACE,OAAS,EAAA,IAAA;AAAA,YACT,UAAY,EAAA;AAAA;AACd,SACF;AACA,QAAG,EAAA,CAAA,MAAA,EAAQ,cAAc,uBAAuB,CAAA;AAAA;AAClD;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"NavigationMenuList.cjs","sources":["../../src/NavigationMenu/NavigationMenuList.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { PrimitiveProps } from '@/Primitive'\nimport { useForwardExpose } from '@/shared'\n\nexport interface NavigationMenuListProps extends PrimitiveProps {}\n</script>\n\n<script setup lang=\"ts\">\nimport { onMounted } from 'vue'\nimport { injectNavigationMenuContext } from './NavigationMenuRoot.vue'\nimport {\n Primitive,\n} from '@/Primitive'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst props = withDefaults(defineProps<NavigationMenuListProps>(), {\n as: 'ul',\n})\n\nconst menuContext = injectNavigationMenuContext()\nconst { forwardRef, currentElement } = useForwardExpose()\n\nonMounted(() => {\n menuContext.onIndicatorTrackChange(currentElement.value)\n})\n</script>\n\n<template>\n <Primitive\n :ref=\"forwardRef\"\n style=\"position: relative\"\n >\n <Primitive\n v-bind=\"$attrs\"\n :as-child=\"props.asChild\"\n :as=\"as\"\n :data-orientation=\"menuContext.orientation\"\n >\n <slot />\n </Primitive>\n </Primitive>\n</template>\n"],"names":["injectNavigationMenuContext","useForwardExpose","onMounted"],"mappings":";;;;;;;;;;;;;;;;;AAkBA,IAAA,MAAM,KAAQ,GAAA,OAAA;AAId,IAAA,MAAM,cAAcA,6DAA4B,EAAA;AAChD,IAAA,MAAM,EAAE,UAAA,EAAY,cAAe,EAAA,GAAIC,wCAAiB,EAAA;AAExD,IAAAC,aAAA,CAAU,MAAM;AACd,MAAY,WAAA,CAAA,sBAAA,CAAuB,eAAe,KAAK,CAAA;AAAA,KACxD,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"NavigationMenuList.cjs","sources":["../../src/NavigationMenu/NavigationMenuList.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { PrimitiveProps } from '@/Primitive'\nimport { useForwardExpose } from '@/shared'\n\nexport interface NavigationMenuListProps extends PrimitiveProps {}\n</script>\n\n<script setup lang=\"ts\">\nimport { onMounted } from 'vue'\nimport {\n Primitive,\n} from '@/Primitive'\nimport { injectNavigationMenuContext } from './NavigationMenuRoot.vue'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst props = withDefaults(defineProps<NavigationMenuListProps>(), {\n as: 'ul',\n})\n\nconst menuContext = injectNavigationMenuContext()\nconst { forwardRef, currentElement } = useForwardExpose()\n\nonMounted(() => {\n menuContext.onIndicatorTrackChange(currentElement.value)\n})\n</script>\n\n<template>\n <Primitive\n :ref=\"forwardRef\"\n style=\"position: relative\"\n >\n <Primitive\n v-bind=\"$attrs\"\n :as-child=\"props.asChild\"\n :as=\"as\"\n :data-orientation=\"menuContext.orientation\"\n >\n <slot />\n </Primitive>\n </Primitive>\n</template>\n"],"names":["injectNavigationMenuContext","useForwardExpose","onMounted"],"mappings":";;;;;;;;;;;;;;;;;AAkBA,IAAA,MAAM,KAAQ,GAAA,OAAA;AAId,IAAA,MAAM,cAAcA,6DAA4B,EAAA;AAChD,IAAA,MAAM,EAAE,UAAA,EAAY,cAAe,EAAA,GAAIC,wCAAiB,EAAA;AAExD,IAAAC,aAAA,CAAU,MAAM;AACd,MAAY,WAAA,CAAA,sBAAA,CAAuB,eAAe,KAAK,CAAA;AAAA,KACxD,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"NavigationMenuList.js","sources":["../../src/NavigationMenu/NavigationMenuList.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { PrimitiveProps } from '@/Primitive'\nimport { useForwardExpose } from '@/shared'\n\nexport interface NavigationMenuListProps extends PrimitiveProps {}\n</script>\n\n<script setup lang=\"ts\">\nimport { onMounted } from 'vue'\nimport { injectNavigationMenuContext } from './NavigationMenuRoot.vue'\nimport {\n Primitive,\n} from '@/Primitive'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst props = withDefaults(defineProps<NavigationMenuListProps>(), {\n as: 'ul',\n})\n\nconst menuContext = injectNavigationMenuContext()\nconst { forwardRef, currentElement } = useForwardExpose()\n\nonMounted(() => {\n menuContext.onIndicatorTrackChange(currentElement.value)\n})\n</script>\n\n<template>\n <Primitive\n :ref=\"forwardRef\"\n style=\"position: relative\"\n >\n <Primitive\n v-bind=\"$attrs\"\n :as-child=\"props.asChild\"\n :as=\"as\"\n :data-orientation=\"menuContext.orientation\"\n >\n <slot />\n </Primitive>\n </Primitive>\n</template>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;AAkBA,IAAA,MAAM,KAAQ,GAAA,OAAA;AAId,IAAA,MAAM,cAAc,2BAA4B,EAAA;AAChD,IAAA,MAAM,EAAE,UAAA,EAAY,cAAe,EAAA,GAAI,gBAAiB,EAAA;AAExD,IAAA,SAAA,CAAU,MAAM;AACd,MAAY,WAAA,CAAA,sBAAA,CAAuB,eAAe,KAAK,CAAA;AAAA,KACxD,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"NavigationMenuList.js","sources":["../../src/NavigationMenu/NavigationMenuList.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { PrimitiveProps } from '@/Primitive'\nimport { useForwardExpose } from '@/shared'\n\nexport interface NavigationMenuListProps extends PrimitiveProps {}\n</script>\n\n<script setup lang=\"ts\">\nimport { onMounted } from 'vue'\nimport {\n Primitive,\n} from '@/Primitive'\nimport { injectNavigationMenuContext } from './NavigationMenuRoot.vue'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst props = withDefaults(defineProps<NavigationMenuListProps>(), {\n as: 'ul',\n})\n\nconst menuContext = injectNavigationMenuContext()\nconst { forwardRef, currentElement } = useForwardExpose()\n\nonMounted(() => {\n menuContext.onIndicatorTrackChange(currentElement.value)\n})\n</script>\n\n<template>\n <Primitive\n :ref=\"forwardRef\"\n style=\"position: relative\"\n >\n <Primitive\n v-bind=\"$attrs\"\n :as-child=\"props.asChild\"\n :as=\"as\"\n :data-orientation=\"menuContext.orientation\"\n >\n <slot />\n </Primitive>\n </Primitive>\n</template>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;AAkBA,IAAA,MAAM,KAAQ,GAAA,OAAA;AAId,IAAA,MAAM,cAAc,2BAA4B,EAAA;AAChD,IAAA,MAAM,EAAE,UAAA,EAAY,cAAe,EAAA,GAAI,gBAAiB,EAAA;AAExD,IAAA,SAAA,CAAU,MAAM;AACd,MAAY,WAAA,CAAA,sBAAA,CAAuB,eAAe,KAAK,CAAA;AAAA,KACxD,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -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 { Direction, Orientation } from './utils'\nimport type { PrimitiveProps } from '@/Primitive'\nimport { useCollection } from '@/Collection'\nimport { createContext, useDirection, useForwardExpose, useId } from '@/shared'\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 { refAutoReset, useDebounceFn, useVModel } from '@vueuse/core'\nimport {\n computed,\n ref,\n toRefs,\n watchEffect,\n} from 'vue'\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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"}