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":"NavigationMenuRoot.js","sources":["../../src/NavigationMenu/NavigationMenuRoot.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { Ref } from 'vue'\n\nimport type { PrimitiveProps } from '@/Primitive'\nimport type { Direction, Orientation } from './utils'\nimport { createContext, useDirection, useForwardExpose, useId } from '@/shared'\nimport { useCollection } from '@/Collection'\n\nexport interface NavigationMenuRootProps extends PrimitiveProps {\n /** The controlled value of the menu item to activate. Can be used as `v-model`. */\n modelValue?: string\n /**\n * The value of the menu item that should be active when initially rendered.\n *\n * Use when you do not need to control the value state.\n */\n defaultValue?: string\n /**\n * The reading direction of the combobox when applicable.\n *\n * If omitted, inherits globally from `ConfigProvider` or assumes LTR (left-to-right) reading mode.\n */\n dir?: Direction\n /** The orientation of the menu. */\n orientation?: Orientation\n /**\n * The duration from when the pointer enters the trigger until the tooltip gets opened.\n * @defaultValue 200\n */\n delayDuration?: number\n /**\n * How much time a user has to enter another trigger without incurring a delay again.\n * @defaultValue 300\n */\n skipDelayDuration?: number\n\n /**\n * If `true`, menu cannot be open by click on trigger\n * @defaultValue false\n */\n disableClickTrigger?: boolean\n /**\n * If `true`, menu cannot be open by hover on trigger\n * @defaultValue false\n */\n disableHoverTrigger?: boolean\n /**\n * If `true`, menu will not close during pointer leave event\n * @defaultValue false\n */\n disablePointerLeaveClose?: boolean\n\n /**\n * When `true`, the element will be unmounted on closed state.\n *\n * @defaultValue `true`\n */\n unmountOnHide?: boolean\n}\nexport type NavigationMenuRootEmits = {\n /** Event handler called when the value changes. */\n 'update:modelValue': [value: string]\n}\n\nexport interface NavigationMenuContext {\n isRootMenu: boolean\n modelValue: Ref<string>\n previousValue: Ref<string>\n baseId: string\n dir: Ref<Direction>\n orientation: Orientation\n disableClickTrigger: Ref<boolean>\n disableHoverTrigger: Ref<boolean>\n unmountOnHide: Ref<boolean>\n rootNavigationMenu: Ref<HTMLElement | undefined>\n activeTrigger: Ref<HTMLElement | undefined>\n indicatorTrack: Ref<HTMLElement | undefined>\n onIndicatorTrackChange: (indicatorTrack: HTMLElement | undefined) => void\n viewport: Ref<HTMLElement | undefined>\n onViewportChange: (viewport: HTMLElement | undefined) => void\n onTriggerEnter: (itemValue: string) => void\n onTriggerLeave: () => void\n onContentEnter: (itemValue: string) => void\n onContentLeave: () => void\n onItemSelect: (itemValue: string) => void\n onItemDismiss: () => void\n}\n\nexport const [injectNavigationMenuContext, provideNavigationMenuContext]\n = createContext<NavigationMenuContext>(['NavigationMenuRoot', 'NavigationMenuSub'], 'NavigationMenuContext')\n</script>\n\n<script setup lang=\"ts\">\nimport {\n computed,\n ref,\n toRefs,\n watchEffect,\n} from 'vue'\nimport { refAutoReset, useDebounceFn, useVModel } from '@vueuse/core'\nimport {\n Primitive,\n} from '@/Primitive'\n\nconst props = withDefaults(defineProps<NavigationMenuRootProps>(), {\n modelValue: undefined,\n delayDuration: 200,\n skipDelayDuration: 300,\n orientation: 'horizontal',\n disableClickTrigger: false,\n disableHoverTrigger: false,\n unmountOnHide: true,\n as: 'nav',\n})\nconst emits = defineEmits<NavigationMenuRootEmits>()\n\ndefineSlots<{\n default: (props: {\n /** Current input values */\n modelValue: typeof modelValue.value\n }) => any\n}>()\n\nconst modelValue = useVModel(props, 'modelValue', emits, {\n defaultValue: props.defaultValue ?? '',\n passive: (props.modelValue === undefined) as false,\n}) as Ref<string>\nconst previousValue = ref('')\n\nconst { forwardRef, currentElement: rootNavigationMenu } = useForwardExpose()\n\nconst indicatorTrack = ref<HTMLElement>()\nconst viewport = ref<HTMLElement>()\nconst activeTrigger = ref<HTMLElement>()\n\nconst { getItems, CollectionSlot } = useCollection({ key: 'NavigationMenu', isProvider: true })\n\nconst { delayDuration, skipDelayDuration, dir: propDir, disableClickTrigger, disableHoverTrigger, unmountOnHide } = toRefs(props)\nconst dir = useDirection(propDir)\n\nconst isDelaySkipped = refAutoReset(false, skipDelayDuration)\nconst computedDelay = computed(() => {\n const isOpen = modelValue.value !== ''\n if (isOpen || isDelaySkipped.value)\n return 150 // 150ms for user to switch trigger or move into content view\n else return delayDuration.value\n})\n\nconst debouncedFn = useDebounceFn((val?: string) => {\n // passing `undefined` meant to reset the debounce timer\n if (typeof val === 'string') {\n previousValue.value = modelValue.value\n modelValue.value = val\n }\n}, computedDelay)\n\nwatchEffect(() => {\n if (!modelValue.value)\n return\n\n const items = getItems().map(i => i.ref)\n activeTrigger.value = items.find(item =>\n item.id.includes(modelValue.value),\n )\n})\n\nprovideNavigationMenuContext({\n isRootMenu: true,\n modelValue,\n previousValue,\n baseId: useId(undefined, 'reka-navigation-menu'),\n disableClickTrigger,\n disableHoverTrigger,\n dir,\n unmountOnHide,\n orientation: props.orientation,\n rootNavigationMenu,\n indicatorTrack,\n activeTrigger,\n onIndicatorTrackChange: (val) => {\n indicatorTrack.value = val\n },\n viewport,\n onViewportChange: (val) => {\n viewport.value = val\n },\n onTriggerEnter: (val) => {\n debouncedFn(val)\n },\n onTriggerLeave: () => {\n isDelaySkipped.value = true\n debouncedFn('')\n },\n onContentEnter: () => {\n debouncedFn()\n },\n onContentLeave: () => {\n if (!props.disablePointerLeaveClose)\n debouncedFn('')\n },\n onItemSelect: (val) => {\n // When selecting item we trigger update immediately\n previousValue.value = modelValue.value\n modelValue.value = val\n },\n onItemDismiss: () => {\n previousValue.value = modelValue.value\n modelValue.value = ''\n },\n})\n</script>\n\n<template>\n <CollectionSlot>\n <Primitive\n :ref=\"forwardRef\"\n aria-label=\"Main\"\n :as=\"as\"\n :as-child=\"asChild\"\n :data-orientation=\"orientation\"\n :dir=\"dir\"\n data-reka-navigation-menu\n >\n <slot :model-value=\"modelValue\" />\n </Primitive>\n </CollectionSlot>\n</template>\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"NavigationMenuRoot.js","sources":["../../src/NavigationMenu/NavigationMenuRoot.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { Ref } from 'vue'\n\nimport type { 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":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"NavigationMenuSub.cjs","sources":["../../src/NavigationMenu/NavigationMenuSub.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { Ref } from 'vue'\nimport type { Orientation } from './utils'\nimport type { PrimitiveProps } from '@/Primitive'\nimport { useCollection } from '@/Collection'\n\nexport type NavigationMenuSubEmits = {\n /** Event handler called when the value changes. */\n 'update:modelValue': [value: string]\n}\n\nexport interface NavigationMenuSubProps extends PrimitiveProps {\n /** The controlled value of the sub 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 /** The orientation of the menu. */\n orientation?: Orientation\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { ref, watchEffect } from 'vue'\nimport { useVModel } from '@vueuse/core'\nimport { injectNavigationMenuContext, provideNavigationMenuContext } from './NavigationMenuRoot.vue'\nimport {\n Primitive,\n} from '@/Primitive'\nimport { useForwardExpose } from '@/shared'\n\nconst props = withDefaults(defineProps<NavigationMenuSubProps>(), {\n orientation: 'horizontal',\n})\nconst emits = defineEmits<NavigationMenuSubEmits>()\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 menuContext = injectNavigationMenuContext()\nconst { forwardRef, currentElement } = useForwardExpose()\n\nconst indicatorTrack = ref<HTMLElement>()\nconst viewport = ref<HTMLElement>()\nconst activeTrigger = ref<HTMLElement>()\n\nconst { getItems, CollectionSlot } = useCollection({ key: 'NavigationMenu', isProvider: true })\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 ...menuContext,\n isRootMenu: false,\n modelValue,\n previousValue,\n activeTrigger,\n orientation: props.orientation,\n rootNavigationMenu: currentElement,\n indicatorTrack,\n onIndicatorTrackChange: (val) => {\n indicatorTrack.value = val\n },\n viewport,\n onViewportChange: (val) => {\n viewport.value = val\n },\n\n onTriggerEnter: (val) => {\n modelValue.value = val\n },\n onTriggerLeave: () => {\n // do nothing for submenu\n },\n onContentEnter: () => {\n // do nothing for submenu\n },\n onContentLeave: () => {\n // do nothing for submenu\n },\n onItemSelect: (val) => {\n modelValue.value = val\n },\n onItemDismiss: () => {\n modelValue.value = ''\n },\n})\n</script>\n\n<template>\n <CollectionSlot>\n <Primitive\n :ref=\"forwardRef\"\n :data-orientation=\"orientation\"\n :as-child=\"props.asChild\"\n :as=\"as\"\n data-reka-navigation-menu\n >\n <slot :model-value=\"modelValue\" />\n </Primitive>\n </CollectionSlot>\n</template>\n"],"names":["useVModel","ref","injectNavigationMenuContext","useForwardExpose","useCollection","watchEffect","provideNavigationMenuContext"],"mappings":";;;;;;;;;;;;;;;;;;;;AAkCA,IAAA,MAAM,KAAQ,GAAA,OAAA;AAGd,IAAA,MAAM,KAAQ,GAAA,MAAA;AASd,IAAA,MAAM,UAAa,GAAAA,cAAA,CAAU,KAAO,EAAA,YAAA,EAAc,KAAO,EAAA;AAAA,MACvD,YAAA,EAAc,MAAM,YAAgB,IAAA,EAAA;AAAA,MACpC,OAAA,EAAU,MAAM,UAAe,KAAA;AAAA,KAChC,CAAA;AACD,IAAM,MAAA,aAAA,GAAgBC,QAAI,EAAE,CAAA;AAE5B,IAAA,MAAM,cAAcC,6DAA4B,EAAA;AAChD,IAAA,MAAM,EAAE,UAAA,EAAY,cAAe,EAAA,GAAIC,wCAAiB,EAAA;AAExD,IAAA,MAAM,iBAAiBF,OAAiB,EAAA;AACxC,IAAA,MAAM,WAAWA,OAAiB,EAAA;AAClC,IAAA,MAAM,gBAAgBA,OAAiB,EAAA;AAEvC,IAAM,MAAA,EAAE,QAAU,EAAA,cAAA,EAAmB,GAAAG,mCAAA,CAAc,EAAE,GAAK,EAAA,gBAAA,EAAkB,UAAY,EAAA,IAAA,EAAM,CAAA;AAE9F,IAAAC,eAAA,CAAY,MAAM;AAChB,MAAA,IAAI,CAAC,UAAW,CAAA,KAAA;AACd,QAAA;AAEF,MAAA,MAAM,QAAQ,QAAS,EAAA,CAAE,GAAI,CAAA,CAAA,CAAA,KAAK,EAAE,GAAG,CAAA;AACvC,MAAA,aAAA,CAAc,QAAQ,KAAM,CAAA,IAAA;AAAA,QAAK,CAC/B,IAAA,KAAA,IAAA,CAAK,EAAG,CAAA,QAAA,CAAS,WAAW,KAAK;AAAA,OACnC;AAAA,KACD,CAAA;AAED,IAA6BC,8DAAA,CAAA;AAAA,MAC3B,GAAG,WAAA;AAAA,MACH,UAAY,EAAA,KAAA;AAAA,MACZ,UAAA;AAAA,MACA,aAAA;AAAA,MACA,aAAA;AAAA,MACA,aAAa,KAAM,CAAA,WAAA;AAAA,MACnB,kBAAoB,EAAA,cAAA;AAAA,MACpB,cAAA;AAAA,MACA,sBAAA,EAAwB,CAAC,GAAQ,KAAA;AAC/B,QAAA,cAAA,CAAe,KAAQ,GAAA,GAAA;AAAA,OACzB;AAAA,MACA,QAAA;AAAA,MACA,gBAAA,EAAkB,CAAC,GAAQ,KAAA;AACzB,QAAA,QAAA,CAAS,KAAQ,GAAA,GAAA;AAAA,OACnB;AAAA,MAEA,cAAA,EAAgB,CAAC,GAAQ,KAAA;AACvB,QAAA,UAAA,CAAW,KAAQ,GAAA,GAAA;AAAA,OACrB;AAAA,MACA,gBAAgB,MAAM;AAAA,OAEtB;AAAA,MACA,gBAAgB,MAAM;AAAA,OAEtB;AAAA,MACA,gBAAgB,MAAM;AAAA,OAEtB;AAAA,MACA,YAAA,EAAc,CAAC,GAAQ,KAAA;AACrB,QAAA,UAAA,CAAW,KAAQ,GAAA,GAAA;AAAA,OACrB;AAAA,MACA,eAAe,MAAM;AACnB,QAAA,UAAA,CAAW,KAAQ,GAAA,EAAA;AAAA;AACrB,KACD,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"NavigationMenuSub.cjs","sources":["../../src/NavigationMenu/NavigationMenuSub.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { Ref } from 'vue'\nimport type { Orientation } from './utils'\nimport type { PrimitiveProps } from '@/Primitive'\nimport { useCollection } from '@/Collection'\n\nexport type NavigationMenuSubEmits = {\n /** Event handler called when the value changes. */\n 'update:modelValue': [value: string]\n}\n\nexport interface NavigationMenuSubProps extends PrimitiveProps {\n /** The controlled value of the sub 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 /** The orientation of the menu. */\n orientation?: Orientation\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { useVModel } from '@vueuse/core'\nimport { ref, watchEffect } from 'vue'\nimport {\n Primitive,\n} from '@/Primitive'\nimport { useForwardExpose } from '@/shared'\nimport { injectNavigationMenuContext, provideNavigationMenuContext } from './NavigationMenuRoot.vue'\n\nconst props = withDefaults(defineProps<NavigationMenuSubProps>(), {\n orientation: 'horizontal',\n})\nconst emits = defineEmits<NavigationMenuSubEmits>()\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 menuContext = injectNavigationMenuContext()\nconst { forwardRef, currentElement } = useForwardExpose()\n\nconst indicatorTrack = ref<HTMLElement>()\nconst viewport = ref<HTMLElement>()\nconst activeTrigger = ref<HTMLElement>()\n\nconst { getItems, CollectionSlot } = useCollection({ key: 'NavigationMenu', isProvider: true })\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 ...menuContext,\n isRootMenu: false,\n modelValue,\n previousValue,\n activeTrigger,\n orientation: props.orientation,\n rootNavigationMenu: currentElement,\n indicatorTrack,\n onIndicatorTrackChange: (val) => {\n indicatorTrack.value = val\n },\n viewport,\n onViewportChange: (val) => {\n viewport.value = val\n },\n\n onTriggerEnter: (val) => {\n modelValue.value = val\n },\n onTriggerLeave: () => {\n // do nothing for submenu\n },\n onContentEnter: () => {\n // do nothing for submenu\n },\n onContentLeave: () => {\n // do nothing for submenu\n },\n onItemSelect: (val) => {\n modelValue.value = val\n },\n onItemDismiss: () => {\n modelValue.value = ''\n },\n})\n</script>\n\n<template>\n <CollectionSlot>\n <Primitive\n :ref=\"forwardRef\"\n :data-orientation=\"orientation\"\n :as-child=\"props.asChild\"\n :as=\"as\"\n data-reka-navigation-menu\n >\n <slot :model-value=\"modelValue\" />\n </Primitive>\n </CollectionSlot>\n</template>\n"],"names":["useVModel","ref","injectNavigationMenuContext","useForwardExpose","useCollection","watchEffect","provideNavigationMenuContext"],"mappings":";;;;;;;;;;;;;;;;;;;;AAkCA,IAAA,MAAM,KAAQ,GAAA,OAAA;AAGd,IAAA,MAAM,KAAQ,GAAA,MAAA;AASd,IAAA,MAAM,UAAa,GAAAA,cAAA,CAAU,KAAO,EAAA,YAAA,EAAc,KAAO,EAAA;AAAA,MACvD,YAAA,EAAc,MAAM,YAAgB,IAAA,EAAA;AAAA,MACpC,OAAA,EAAU,MAAM,UAAe,KAAA;AAAA,KAChC,CAAA;AACD,IAAM,MAAA,aAAA,GAAgBC,QAAI,EAAE,CAAA;AAE5B,IAAA,MAAM,cAAcC,6DAA4B,EAAA;AAChD,IAAA,MAAM,EAAE,UAAA,EAAY,cAAe,EAAA,GAAIC,wCAAiB,EAAA;AAExD,IAAA,MAAM,iBAAiBF,OAAiB,EAAA;AACxC,IAAA,MAAM,WAAWA,OAAiB,EAAA;AAClC,IAAA,MAAM,gBAAgBA,OAAiB,EAAA;AAEvC,IAAM,MAAA,EAAE,QAAU,EAAA,cAAA,EAAmB,GAAAG,mCAAA,CAAc,EAAE,GAAK,EAAA,gBAAA,EAAkB,UAAY,EAAA,IAAA,EAAM,CAAA;AAE9F,IAAAC,eAAA,CAAY,MAAM;AAChB,MAAA,IAAI,CAAC,UAAW,CAAA,KAAA;AACd,QAAA;AAEF,MAAA,MAAM,QAAQ,QAAS,EAAA,CAAE,GAAI,CAAA,CAAA,CAAA,KAAK,EAAE,GAAG,CAAA;AACvC,MAAA,aAAA,CAAc,QAAQ,KAAM,CAAA,IAAA;AAAA,QAAK,CAC/B,IAAA,KAAA,IAAA,CAAK,EAAG,CAAA,QAAA,CAAS,WAAW,KAAK;AAAA,OACnC;AAAA,KACD,CAAA;AAED,IAA6BC,8DAAA,CAAA;AAAA,MAC3B,GAAG,WAAA;AAAA,MACH,UAAY,EAAA,KAAA;AAAA,MACZ,UAAA;AAAA,MACA,aAAA;AAAA,MACA,aAAA;AAAA,MACA,aAAa,KAAM,CAAA,WAAA;AAAA,MACnB,kBAAoB,EAAA,cAAA;AAAA,MACpB,cAAA;AAAA,MACA,sBAAA,EAAwB,CAAC,GAAQ,KAAA;AAC/B,QAAA,cAAA,CAAe,KAAQ,GAAA,GAAA;AAAA,OACzB;AAAA,MACA,QAAA;AAAA,MACA,gBAAA,EAAkB,CAAC,GAAQ,KAAA;AACzB,QAAA,QAAA,CAAS,KAAQ,GAAA,GAAA;AAAA,OACnB;AAAA,MAEA,cAAA,EAAgB,CAAC,GAAQ,KAAA;AACvB,QAAA,UAAA,CAAW,KAAQ,GAAA,GAAA;AAAA,OACrB;AAAA,MACA,gBAAgB,MAAM;AAAA,OAEtB;AAAA,MACA,gBAAgB,MAAM;AAAA,OAEtB;AAAA,MACA,gBAAgB,MAAM;AAAA,OAEtB;AAAA,MACA,YAAA,EAAc,CAAC,GAAQ,KAAA;AACrB,QAAA,UAAA,CAAW,KAAQ,GAAA,GAAA;AAAA,OACrB;AAAA,MACA,eAAe,MAAM;AACnB,QAAA,UAAA,CAAW,KAAQ,GAAA,EAAA;AAAA;AACrB,KACD,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"NavigationMenuSub.js","sources":["../../src/NavigationMenu/NavigationMenuSub.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { Ref } from 'vue'\nimport type { Orientation } from './utils'\nimport type { PrimitiveProps } from '@/Primitive'\nimport { useCollection } from '@/Collection'\n\nexport type NavigationMenuSubEmits = {\n /** Event handler called when the value changes. */\n 'update:modelValue': [value: string]\n}\n\nexport interface NavigationMenuSubProps extends PrimitiveProps {\n /** The controlled value of the sub 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 /** The orientation of the menu. */\n orientation?: Orientation\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { ref, watchEffect } from 'vue'\nimport { useVModel } from '@vueuse/core'\nimport { injectNavigationMenuContext, provideNavigationMenuContext } from './NavigationMenuRoot.vue'\nimport {\n Primitive,\n} from '@/Primitive'\nimport { useForwardExpose } from '@/shared'\n\nconst props = withDefaults(defineProps<NavigationMenuSubProps>(), {\n orientation: 'horizontal',\n})\nconst emits = defineEmits<NavigationMenuSubEmits>()\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 menuContext = injectNavigationMenuContext()\nconst { forwardRef, currentElement } = useForwardExpose()\n\nconst indicatorTrack = ref<HTMLElement>()\nconst viewport = ref<HTMLElement>()\nconst activeTrigger = ref<HTMLElement>()\n\nconst { getItems, CollectionSlot } = useCollection({ key: 'NavigationMenu', isProvider: true })\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 ...menuContext,\n isRootMenu: false,\n modelValue,\n previousValue,\n activeTrigger,\n orientation: props.orientation,\n rootNavigationMenu: currentElement,\n indicatorTrack,\n onIndicatorTrackChange: (val) => {\n indicatorTrack.value = val\n },\n viewport,\n onViewportChange: (val) => {\n viewport.value = val\n },\n\n onTriggerEnter: (val) => {\n modelValue.value = val\n },\n onTriggerLeave: () => {\n // do nothing for submenu\n },\n onContentEnter: () => {\n // do nothing for submenu\n },\n onContentLeave: () => {\n // do nothing for submenu\n },\n onItemSelect: (val) => {\n modelValue.value = val\n },\n onItemDismiss: () => {\n modelValue.value = ''\n },\n})\n</script>\n\n<template>\n <CollectionSlot>\n <Primitive\n :ref=\"forwardRef\"\n :data-orientation=\"orientation\"\n :as-child=\"props.asChild\"\n :as=\"as\"\n data-reka-navigation-menu\n >\n <slot :model-value=\"modelValue\" />\n </Primitive>\n </CollectionSlot>\n</template>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAkCA,IAAA,MAAM,KAAQ,GAAA,OAAA;AAGd,IAAA,MAAM,KAAQ,GAAA,MAAA;AASd,IAAA,MAAM,UAAa,GAAA,SAAA,CAAU,KAAO,EAAA,YAAA,EAAc,KAAO,EAAA;AAAA,MACvD,YAAA,EAAc,MAAM,YAAgB,IAAA,EAAA;AAAA,MACpC,OAAA,EAAU,MAAM,UAAe,KAAA;AAAA,KAChC,CAAA;AACD,IAAM,MAAA,aAAA,GAAgB,IAAI,EAAE,CAAA;AAE5B,IAAA,MAAM,cAAc,2BAA4B,EAAA;AAChD,IAAA,MAAM,EAAE,UAAA,EAAY,cAAe,EAAA,GAAI,gBAAiB,EAAA;AAExD,IAAA,MAAM,iBAAiB,GAAiB,EAAA;AACxC,IAAA,MAAM,WAAW,GAAiB,EAAA;AAClC,IAAA,MAAM,gBAAgB,GAAiB,EAAA;AAEvC,IAAM,MAAA,EAAE,QAAU,EAAA,cAAA,EAAmB,GAAA,aAAA,CAAc,EAAE,GAAK,EAAA,gBAAA,EAAkB,UAAY,EAAA,IAAA,EAAM,CAAA;AAE9F,IAAA,WAAA,CAAY,MAAM;AAChB,MAAA,IAAI,CAAC,UAAW,CAAA,KAAA;AACd,QAAA;AAEF,MAAA,MAAM,QAAQ,QAAS,EAAA,CAAE,GAAI,CAAA,CAAA,CAAA,KAAK,EAAE,GAAG,CAAA;AACvC,MAAA,aAAA,CAAc,QAAQ,KAAM,CAAA,IAAA;AAAA,QAAK,CAC/B,IAAA,KAAA,IAAA,CAAK,EAAG,CAAA,QAAA,CAAS,WAAW,KAAK;AAAA,OACnC;AAAA,KACD,CAAA;AAED,IAA6B,4BAAA,CAAA;AAAA,MAC3B,GAAG,WAAA;AAAA,MACH,UAAY,EAAA,KAAA;AAAA,MACZ,UAAA;AAAA,MACA,aAAA;AAAA,MACA,aAAA;AAAA,MACA,aAAa,KAAM,CAAA,WAAA;AAAA,MACnB,kBAAoB,EAAA,cAAA;AAAA,MACpB,cAAA;AAAA,MACA,sBAAA,EAAwB,CAAC,GAAQ,KAAA;AAC/B,QAAA,cAAA,CAAe,KAAQ,GAAA,GAAA;AAAA,OACzB;AAAA,MACA,QAAA;AAAA,MACA,gBAAA,EAAkB,CAAC,GAAQ,KAAA;AACzB,QAAA,QAAA,CAAS,KAAQ,GAAA,GAAA;AAAA,OACnB;AAAA,MAEA,cAAA,EAAgB,CAAC,GAAQ,KAAA;AACvB,QAAA,UAAA,CAAW,KAAQ,GAAA,GAAA;AAAA,OACrB;AAAA,MACA,gBAAgB,MAAM;AAAA,OAEtB;AAAA,MACA,gBAAgB,MAAM;AAAA,OAEtB;AAAA,MACA,gBAAgB,MAAM;AAAA,OAEtB;AAAA,MACA,YAAA,EAAc,CAAC,GAAQ,KAAA;AACrB,QAAA,UAAA,CAAW,KAAQ,GAAA,GAAA;AAAA,OACrB;AAAA,MACA,eAAe,MAAM;AACnB,QAAA,UAAA,CAAW,KAAQ,GAAA,EAAA;AAAA;AACrB,KACD,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"NavigationMenuSub.js","sources":["../../src/NavigationMenu/NavigationMenuSub.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { Ref } from 'vue'\nimport type { Orientation } from './utils'\nimport type { PrimitiveProps } from '@/Primitive'\nimport { useCollection } from '@/Collection'\n\nexport type NavigationMenuSubEmits = {\n /** Event handler called when the value changes. */\n 'update:modelValue': [value: string]\n}\n\nexport interface NavigationMenuSubProps extends PrimitiveProps {\n /** The controlled value of the sub 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 /** The orientation of the menu. */\n orientation?: Orientation\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { useVModel } from '@vueuse/core'\nimport { ref, watchEffect } from 'vue'\nimport {\n Primitive,\n} from '@/Primitive'\nimport { useForwardExpose } from '@/shared'\nimport { injectNavigationMenuContext, provideNavigationMenuContext } from './NavigationMenuRoot.vue'\n\nconst props = withDefaults(defineProps<NavigationMenuSubProps>(), {\n orientation: 'horizontal',\n})\nconst emits = defineEmits<NavigationMenuSubEmits>()\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 menuContext = injectNavigationMenuContext()\nconst { forwardRef, currentElement } = useForwardExpose()\n\nconst indicatorTrack = ref<HTMLElement>()\nconst viewport = ref<HTMLElement>()\nconst activeTrigger = ref<HTMLElement>()\n\nconst { getItems, CollectionSlot } = useCollection({ key: 'NavigationMenu', isProvider: true })\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 ...menuContext,\n isRootMenu: false,\n modelValue,\n previousValue,\n activeTrigger,\n orientation: props.orientation,\n rootNavigationMenu: currentElement,\n indicatorTrack,\n onIndicatorTrackChange: (val) => {\n indicatorTrack.value = val\n },\n viewport,\n onViewportChange: (val) => {\n viewport.value = val\n },\n\n onTriggerEnter: (val) => {\n modelValue.value = val\n },\n onTriggerLeave: () => {\n // do nothing for submenu\n },\n onContentEnter: () => {\n // do nothing for submenu\n },\n onContentLeave: () => {\n // do nothing for submenu\n },\n onItemSelect: (val) => {\n modelValue.value = val\n },\n onItemDismiss: () => {\n modelValue.value = ''\n },\n})\n</script>\n\n<template>\n <CollectionSlot>\n <Primitive\n :ref=\"forwardRef\"\n :data-orientation=\"orientation\"\n :as-child=\"props.asChild\"\n :as=\"as\"\n data-reka-navigation-menu\n >\n <slot :model-value=\"modelValue\" />\n </Primitive>\n </CollectionSlot>\n</template>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAkCA,IAAA,MAAM,KAAQ,GAAA,OAAA;AAGd,IAAA,MAAM,KAAQ,GAAA,MAAA;AASd,IAAA,MAAM,UAAa,GAAA,SAAA,CAAU,KAAO,EAAA,YAAA,EAAc,KAAO,EAAA;AAAA,MACvD,YAAA,EAAc,MAAM,YAAgB,IAAA,EAAA;AAAA,MACpC,OAAA,EAAU,MAAM,UAAe,KAAA;AAAA,KAChC,CAAA;AACD,IAAM,MAAA,aAAA,GAAgB,IAAI,EAAE,CAAA;AAE5B,IAAA,MAAM,cAAc,2BAA4B,EAAA;AAChD,IAAA,MAAM,EAAE,UAAA,EAAY,cAAe,EAAA,GAAI,gBAAiB,EAAA;AAExD,IAAA,MAAM,iBAAiB,GAAiB,EAAA;AACxC,IAAA,MAAM,WAAW,GAAiB,EAAA;AAClC,IAAA,MAAM,gBAAgB,GAAiB,EAAA;AAEvC,IAAM,MAAA,EAAE,QAAU,EAAA,cAAA,EAAmB,GAAA,aAAA,CAAc,EAAE,GAAK,EAAA,gBAAA,EAAkB,UAAY,EAAA,IAAA,EAAM,CAAA;AAE9F,IAAA,WAAA,CAAY,MAAM;AAChB,MAAA,IAAI,CAAC,UAAW,CAAA,KAAA;AACd,QAAA;AAEF,MAAA,MAAM,QAAQ,QAAS,EAAA,CAAE,GAAI,CAAA,CAAA,CAAA,KAAK,EAAE,GAAG,CAAA;AACvC,MAAA,aAAA,CAAc,QAAQ,KAAM,CAAA,IAAA;AAAA,QAAK,CAC/B,IAAA,KAAA,IAAA,CAAK,EAAG,CAAA,QAAA,CAAS,WAAW,KAAK;AAAA,OACnC;AAAA,KACD,CAAA;AAED,IAA6B,4BAAA,CAAA;AAAA,MAC3B,GAAG,WAAA;AAAA,MACH,UAAY,EAAA,KAAA;AAAA,MACZ,UAAA;AAAA,MACA,aAAA;AAAA,MACA,aAAA;AAAA,MACA,aAAa,KAAM,CAAA,WAAA;AAAA,MACnB,kBAAoB,EAAA,cAAA;AAAA,MACpB,cAAA;AAAA,MACA,sBAAA,EAAwB,CAAC,GAAQ,KAAA;AAC/B,QAAA,cAAA,CAAe,KAAQ,GAAA,GAAA;AAAA,OACzB;AAAA,MACA,QAAA;AAAA,MACA,gBAAA,EAAkB,CAAC,GAAQ,KAAA;AACzB,QAAA,QAAA,CAAS,KAAQ,GAAA,GAAA;AAAA,OACnB;AAAA,MAEA,cAAA,EAAgB,CAAC,GAAQ,KAAA;AACvB,QAAA,UAAA,CAAW,KAAQ,GAAA,GAAA;AAAA,OACrB;AAAA,MACA,gBAAgB,MAAM;AAAA,OAEtB;AAAA,MACA,gBAAgB,MAAM;AAAA,OAEtB;AAAA,MACA,gBAAgB,MAAM;AAAA,OAEtB;AAAA,MACA,YAAA,EAAc,CAAC,GAAQ,KAAA;AACrB,QAAA,UAAA,CAAW,KAAQ,GAAA,GAAA;AAAA,OACrB;AAAA,MACA,eAAe,MAAM;AACnB,QAAA,UAAA,CAAW,KAAQ,GAAA,EAAA;AAAA;AACrB,KACD,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"NavigationMenuTrigger.cjs","sources":["../../src/NavigationMenu/NavigationMenuTrigger.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { VNode } from 'vue'\nimport type { PrimitiveProps } from '@/Primitive'\nimport { useForwardExpose } from '@/shared'\nimport { useCollection } from '@/Collection'\n\nexport interface NavigationMenuTriggerProps extends PrimitiveProps {\n /** When `true`, prevents the user from interacting with item */\n disabled?: boolean\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { computed, onMounted, ref } from 'vue'\nimport { refAutoReset, unrefElement } from '@vueuse/core'\nimport { injectNavigationMenuContext } from './NavigationMenuRoot.vue'\nimport { injectNavigationMenuItemContext } from './NavigationMenuItem.vue'\nimport { getOpenState, makeContentId, makeTriggerId } from './utils'\nimport {\n Primitive,\n} from '@/Primitive'\nimport { VisuallyHidden } from '@/VisuallyHidden'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst props = withDefaults(defineProps<NavigationMenuTriggerProps>(), {\n as: 'button',\n})\n\nconst menuContext = injectNavigationMenuContext()\nconst itemContext = injectNavigationMenuItemContext()\n\nconst { CollectionItem } = useCollection({ key: 'NavigationMenu' })\nconst { forwardRef, currentElement: triggerElement } = useForwardExpose()\nconst triggerId = ref('')\nconst contentId = ref('')\n\nconst hasPointerMoveOpenedRef = refAutoReset(false, 300)\nconst wasClickCloseRef = ref(false)\n\nconst open = computed(() => itemContext.value === menuContext.modelValue.value)\n\nonMounted(() => {\n itemContext.triggerRef = triggerElement\n triggerId.value = makeTriggerId(menuContext.baseId, itemContext.value)\n contentId.value = makeContentId(menuContext.baseId, itemContext.value)\n})\n\nfunction handlePointerEnter() {\n if (menuContext.disableHoverTrigger.value)\n return\n\n wasClickCloseRef.value = false\n itemContext.wasEscapeCloseRef.value = false\n}\n\nfunction handlePointerMove(ev: PointerEvent) {\n if (menuContext.disableHoverTrigger.value)\n return\n\n if (ev.pointerType === 'mouse') {\n if (\n props.disabled\n || wasClickCloseRef.value\n || itemContext.wasEscapeCloseRef.value\n || hasPointerMoveOpenedRef.value\n ) {\n return\n }\n\n menuContext.onTriggerEnter(itemContext.value)\n hasPointerMoveOpenedRef.value = true\n }\n}\n\nfunction handlePointerLeave(ev: PointerEvent) {\n if (menuContext.disableHoverTrigger.value)\n return\n\n if (ev.pointerType === 'mouse') {\n if (props.disabled)\n return\n menuContext.onTriggerLeave()\n hasPointerMoveOpenedRef.value = false\n }\n}\n\nfunction handleClick(event: PointerEvent) {\n if (event.pointerType === 'mouse' && menuContext.disableClickTrigger.value)\n return\n\n // if open via pointermove, we prevent click event\n if (hasPointerMoveOpenedRef.value)\n return\n\n if (open.value)\n menuContext.onItemSelect('')\n else menuContext.onItemSelect(itemContext.value)\n\n wasClickCloseRef.value = open.value\n}\n\nfunction handleKeydown(ev: KeyboardEvent) {\n const verticalEntryKey = menuContext.dir.value === 'rtl' ? 'ArrowLeft' : 'ArrowRight'\n const entryKey = { horizontal: 'ArrowDown', vertical: verticalEntryKey }[\n menuContext.orientation\n ]\n if (open.value && ev.key === entryKey) {\n itemContext.onEntryKeyDown()\n // Prevent FocusGroupItem from handling the event\n ev.preventDefault()\n ev.stopPropagation()\n }\n}\n\nfunction setFocusProxyRef(node: VNode) {\n // @ts-expect-error unrefElement expect MaybeRef, but also support Vnode\n itemContext.focusProxyRef.value = unrefElement(node)\n return undefined\n}\n\nfunction handleVisuallyHiddenFocus(ev: FocusEvent) {\n const content = document.getElementById(itemContext.contentId)\n const prevFocusedElement = ev.relatedTarget as HTMLElement | null\n\n const wasTriggerFocused = prevFocusedElement === triggerElement.value\n const wasFocusFromContent = content?.contains(prevFocusedElement)\n\n if (wasTriggerFocused || !wasFocusFromContent)\n itemContext.onFocusProxyEnter(wasTriggerFocused ? 'start' : 'end')\n}\n</script>\n\n<template>\n <CollectionItem>\n <Primitive\n :id=\"triggerId\"\n :ref=\"forwardRef\"\n :disabled=\"disabled\"\n :data-disabled=\"disabled ? '' : undefined\"\n :data-state=\"getOpenState(open)\"\n data-navigation-menu-trigger\n :aria-expanded=\"open\"\n :aria-controls=\"contentId\"\n :as-child=\"props.asChild\"\n :as=\"as\"\n v-bind=\"$attrs\"\n @pointerenter=\"handlePointerEnter\"\n @pointermove=\"handlePointerMove\"\n @pointerleave=\"handlePointerLeave\"\n @click=\"handleClick\"\n @keydown=\"handleKeydown\"\n >\n <slot />\n </Primitive>\n </CollectionItem>\n\n <template v-if=\"open\">\n <VisuallyHidden\n :ref=\"setFocusProxyRef\"\n aria-hidden=\"true\"\n :tabindex=\"0\"\n @focus=\"handleVisuallyHiddenFocus\"\n />\n <span\n v-if=\"menuContext.viewport\"\n :aria-owns=\"contentId\"\n />\n </template>\n</template>\n"],"names":["injectNavigationMenuContext","injectNavigationMenuItemContext","useCollection","useForwardExpose","ref","refAutoReset","computed","onMounted","makeTriggerId","makeContentId","unrefElement"],"mappings":"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"}
1
+ {"version":3,"file":"NavigationMenuTrigger.cjs","sources":["../../src/NavigationMenu/NavigationMenuTrigger.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { VNode } from 'vue'\nimport type { PrimitiveProps } from '@/Primitive'\nimport { useCollection } from '@/Collection'\nimport { useForwardExpose } from '@/shared'\n\nexport interface NavigationMenuTriggerProps extends PrimitiveProps {\n /** When `true`, prevents the user from interacting with item */\n disabled?: boolean\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { refAutoReset, unrefElement } from '@vueuse/core'\nimport { computed, onMounted, ref } from 'vue'\nimport {\n Primitive,\n} from '@/Primitive'\nimport { VisuallyHidden } from '@/VisuallyHidden'\nimport { injectNavigationMenuItemContext } from './NavigationMenuItem.vue'\nimport { injectNavigationMenuContext } from './NavigationMenuRoot.vue'\nimport { getOpenState, makeContentId, makeTriggerId } from './utils'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst props = withDefaults(defineProps<NavigationMenuTriggerProps>(), {\n as: 'button',\n})\n\nconst menuContext = injectNavigationMenuContext()\nconst itemContext = injectNavigationMenuItemContext()\n\nconst { CollectionItem } = useCollection({ key: 'NavigationMenu' })\nconst { forwardRef, currentElement: triggerElement } = useForwardExpose()\nconst triggerId = ref('')\nconst contentId = ref('')\n\nconst hasPointerMoveOpenedRef = refAutoReset(false, 300)\nconst wasClickCloseRef = ref(false)\n\nconst open = computed(() => itemContext.value === menuContext.modelValue.value)\n\nonMounted(() => {\n itemContext.triggerRef = triggerElement\n triggerId.value = makeTriggerId(menuContext.baseId, itemContext.value)\n contentId.value = makeContentId(menuContext.baseId, itemContext.value)\n})\n\nfunction handlePointerEnter() {\n if (menuContext.disableHoverTrigger.value)\n return\n\n wasClickCloseRef.value = false\n itemContext.wasEscapeCloseRef.value = false\n}\n\nfunction handlePointerMove(ev: PointerEvent) {\n if (menuContext.disableHoverTrigger.value)\n return\n\n if (ev.pointerType === 'mouse') {\n if (\n props.disabled\n || wasClickCloseRef.value\n || itemContext.wasEscapeCloseRef.value\n || hasPointerMoveOpenedRef.value\n ) {\n return\n }\n\n menuContext.onTriggerEnter(itemContext.value)\n hasPointerMoveOpenedRef.value = true\n }\n}\n\nfunction handlePointerLeave(ev: PointerEvent) {\n if (menuContext.disableHoverTrigger.value)\n return\n\n if (ev.pointerType === 'mouse') {\n if (props.disabled)\n return\n menuContext.onTriggerLeave()\n hasPointerMoveOpenedRef.value = false\n }\n}\n\nfunction handleClick(event: PointerEvent) {\n if (event.pointerType === 'mouse' && menuContext.disableClickTrigger.value)\n return\n\n // if open via pointermove, we prevent click event\n if (hasPointerMoveOpenedRef.value)\n return\n\n if (open.value)\n menuContext.onItemSelect('')\n else menuContext.onItemSelect(itemContext.value)\n\n wasClickCloseRef.value = open.value\n}\n\nfunction handleKeydown(ev: KeyboardEvent) {\n const verticalEntryKey = menuContext.dir.value === 'rtl' ? 'ArrowLeft' : 'ArrowRight'\n const entryKey = { horizontal: 'ArrowDown', vertical: verticalEntryKey }[\n menuContext.orientation\n ]\n if (open.value && ev.key === entryKey) {\n itemContext.onEntryKeyDown()\n // Prevent FocusGroupItem from handling the event\n ev.preventDefault()\n ev.stopPropagation()\n }\n}\n\nfunction setFocusProxyRef(node: VNode) {\n // @ts-expect-error unrefElement expect MaybeRef, but also support Vnode\n itemContext.focusProxyRef.value = unrefElement(node)\n return undefined\n}\n\nfunction handleVisuallyHiddenFocus(ev: FocusEvent) {\n const content = document.getElementById(itemContext.contentId)\n const prevFocusedElement = ev.relatedTarget as HTMLElement | null\n\n const wasTriggerFocused = prevFocusedElement === triggerElement.value\n const wasFocusFromContent = content?.contains(prevFocusedElement)\n\n if (wasTriggerFocused || !wasFocusFromContent)\n itemContext.onFocusProxyEnter(wasTriggerFocused ? 'start' : 'end')\n}\n</script>\n\n<template>\n <CollectionItem>\n <Primitive\n :id=\"triggerId\"\n :ref=\"forwardRef\"\n :disabled=\"disabled\"\n :data-disabled=\"disabled ? '' : undefined\"\n :data-state=\"getOpenState(open)\"\n data-navigation-menu-trigger\n :aria-expanded=\"open\"\n :aria-controls=\"contentId\"\n :as-child=\"props.asChild\"\n :as=\"as\"\n v-bind=\"$attrs\"\n @pointerenter=\"handlePointerEnter\"\n @pointermove=\"handlePointerMove\"\n @pointerleave=\"handlePointerLeave\"\n @click=\"handleClick\"\n @keydown=\"handleKeydown\"\n >\n <slot />\n </Primitive>\n </CollectionItem>\n\n <template v-if=\"open\">\n <VisuallyHidden\n :ref=\"setFocusProxyRef\"\n aria-hidden=\"true\"\n :tabindex=\"0\"\n @focus=\"handleVisuallyHiddenFocus\"\n />\n <span\n v-if=\"menuContext.viewport\"\n :aria-owns=\"contentId\"\n />\n </template>\n</template>\n"],"names":["injectNavigationMenuContext","injectNavigationMenuItemContext","useCollection","useForwardExpose","ref","refAutoReset","computed","onMounted","makeTriggerId","makeContentId","unrefElement"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"NavigationMenuTrigger.js","sources":["../../src/NavigationMenu/NavigationMenuTrigger.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { VNode } from 'vue'\nimport type { PrimitiveProps } from '@/Primitive'\nimport { useForwardExpose } from '@/shared'\nimport { useCollection } from '@/Collection'\n\nexport interface NavigationMenuTriggerProps extends PrimitiveProps {\n /** When `true`, prevents the user from interacting with item */\n disabled?: boolean\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { computed, onMounted, ref } from 'vue'\nimport { refAutoReset, unrefElement } from '@vueuse/core'\nimport { injectNavigationMenuContext } from './NavigationMenuRoot.vue'\nimport { injectNavigationMenuItemContext } from './NavigationMenuItem.vue'\nimport { getOpenState, makeContentId, makeTriggerId } from './utils'\nimport {\n Primitive,\n} from '@/Primitive'\nimport { VisuallyHidden } from '@/VisuallyHidden'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst props = withDefaults(defineProps<NavigationMenuTriggerProps>(), {\n as: 'button',\n})\n\nconst menuContext = injectNavigationMenuContext()\nconst itemContext = injectNavigationMenuItemContext()\n\nconst { CollectionItem } = useCollection({ key: 'NavigationMenu' })\nconst { forwardRef, currentElement: triggerElement } = useForwardExpose()\nconst triggerId = ref('')\nconst contentId = ref('')\n\nconst hasPointerMoveOpenedRef = refAutoReset(false, 300)\nconst wasClickCloseRef = ref(false)\n\nconst open = computed(() => itemContext.value === menuContext.modelValue.value)\n\nonMounted(() => {\n itemContext.triggerRef = triggerElement\n triggerId.value = makeTriggerId(menuContext.baseId, itemContext.value)\n contentId.value = makeContentId(menuContext.baseId, itemContext.value)\n})\n\nfunction handlePointerEnter() {\n if (menuContext.disableHoverTrigger.value)\n return\n\n wasClickCloseRef.value = false\n itemContext.wasEscapeCloseRef.value = false\n}\n\nfunction handlePointerMove(ev: PointerEvent) {\n if (menuContext.disableHoverTrigger.value)\n return\n\n if (ev.pointerType === 'mouse') {\n if (\n props.disabled\n || wasClickCloseRef.value\n || itemContext.wasEscapeCloseRef.value\n || hasPointerMoveOpenedRef.value\n ) {\n return\n }\n\n menuContext.onTriggerEnter(itemContext.value)\n hasPointerMoveOpenedRef.value = true\n }\n}\n\nfunction handlePointerLeave(ev: PointerEvent) {\n if (menuContext.disableHoverTrigger.value)\n return\n\n if (ev.pointerType === 'mouse') {\n if (props.disabled)\n return\n menuContext.onTriggerLeave()\n hasPointerMoveOpenedRef.value = false\n }\n}\n\nfunction handleClick(event: PointerEvent) {\n if (event.pointerType === 'mouse' && menuContext.disableClickTrigger.value)\n return\n\n // if open via pointermove, we prevent click event\n if (hasPointerMoveOpenedRef.value)\n return\n\n if (open.value)\n menuContext.onItemSelect('')\n else menuContext.onItemSelect(itemContext.value)\n\n wasClickCloseRef.value = open.value\n}\n\nfunction handleKeydown(ev: KeyboardEvent) {\n const verticalEntryKey = menuContext.dir.value === 'rtl' ? 'ArrowLeft' : 'ArrowRight'\n const entryKey = { horizontal: 'ArrowDown', vertical: verticalEntryKey }[\n menuContext.orientation\n ]\n if (open.value && ev.key === entryKey) {\n itemContext.onEntryKeyDown()\n // Prevent FocusGroupItem from handling the event\n ev.preventDefault()\n ev.stopPropagation()\n }\n}\n\nfunction setFocusProxyRef(node: VNode) {\n // @ts-expect-error unrefElement expect MaybeRef, but also support Vnode\n itemContext.focusProxyRef.value = unrefElement(node)\n return undefined\n}\n\nfunction handleVisuallyHiddenFocus(ev: FocusEvent) {\n const content = document.getElementById(itemContext.contentId)\n const prevFocusedElement = ev.relatedTarget as HTMLElement | null\n\n const wasTriggerFocused = prevFocusedElement === triggerElement.value\n const wasFocusFromContent = content?.contains(prevFocusedElement)\n\n if (wasTriggerFocused || !wasFocusFromContent)\n itemContext.onFocusProxyEnter(wasTriggerFocused ? 'start' : 'end')\n}\n</script>\n\n<template>\n <CollectionItem>\n <Primitive\n :id=\"triggerId\"\n :ref=\"forwardRef\"\n :disabled=\"disabled\"\n :data-disabled=\"disabled ? '' : undefined\"\n :data-state=\"getOpenState(open)\"\n data-navigation-menu-trigger\n :aria-expanded=\"open\"\n :aria-controls=\"contentId\"\n :as-child=\"props.asChild\"\n :as=\"as\"\n v-bind=\"$attrs\"\n @pointerenter=\"handlePointerEnter\"\n @pointermove=\"handlePointerMove\"\n @pointerleave=\"handlePointerLeave\"\n @click=\"handleClick\"\n @keydown=\"handleKeydown\"\n >\n <slot />\n </Primitive>\n </CollectionItem>\n\n <template v-if=\"open\">\n <VisuallyHidden\n :ref=\"setFocusProxyRef\"\n aria-hidden=\"true\"\n :tabindex=\"0\"\n @focus=\"handleVisuallyHiddenFocus\"\n />\n <span\n v-if=\"menuContext.viewport\"\n :aria-owns=\"contentId\"\n />\n </template>\n</template>\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"NavigationMenuTrigger.js","sources":["../../src/NavigationMenu/NavigationMenuTrigger.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { VNode } from 'vue'\nimport type { PrimitiveProps } from '@/Primitive'\nimport { useCollection } from '@/Collection'\nimport { useForwardExpose } from '@/shared'\n\nexport interface NavigationMenuTriggerProps extends PrimitiveProps {\n /** When `true`, prevents the user from interacting with item */\n disabled?: boolean\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { refAutoReset, unrefElement } from '@vueuse/core'\nimport { computed, onMounted, ref } from 'vue'\nimport {\n Primitive,\n} from '@/Primitive'\nimport { VisuallyHidden } from '@/VisuallyHidden'\nimport { injectNavigationMenuItemContext } from './NavigationMenuItem.vue'\nimport { injectNavigationMenuContext } from './NavigationMenuRoot.vue'\nimport { getOpenState, makeContentId, makeTriggerId } from './utils'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst props = withDefaults(defineProps<NavigationMenuTriggerProps>(), {\n as: 'button',\n})\n\nconst menuContext = injectNavigationMenuContext()\nconst itemContext = injectNavigationMenuItemContext()\n\nconst { CollectionItem } = useCollection({ key: 'NavigationMenu' })\nconst { forwardRef, currentElement: triggerElement } = useForwardExpose()\nconst triggerId = ref('')\nconst contentId = ref('')\n\nconst hasPointerMoveOpenedRef = refAutoReset(false, 300)\nconst wasClickCloseRef = ref(false)\n\nconst open = computed(() => itemContext.value === menuContext.modelValue.value)\n\nonMounted(() => {\n itemContext.triggerRef = triggerElement\n triggerId.value = makeTriggerId(menuContext.baseId, itemContext.value)\n contentId.value = makeContentId(menuContext.baseId, itemContext.value)\n})\n\nfunction handlePointerEnter() {\n if (menuContext.disableHoverTrigger.value)\n return\n\n wasClickCloseRef.value = false\n itemContext.wasEscapeCloseRef.value = false\n}\n\nfunction handlePointerMove(ev: PointerEvent) {\n if (menuContext.disableHoverTrigger.value)\n return\n\n if (ev.pointerType === 'mouse') {\n if (\n props.disabled\n || wasClickCloseRef.value\n || itemContext.wasEscapeCloseRef.value\n || hasPointerMoveOpenedRef.value\n ) {\n return\n }\n\n menuContext.onTriggerEnter(itemContext.value)\n hasPointerMoveOpenedRef.value = true\n }\n}\n\nfunction handlePointerLeave(ev: PointerEvent) {\n if (menuContext.disableHoverTrigger.value)\n return\n\n if (ev.pointerType === 'mouse') {\n if (props.disabled)\n return\n menuContext.onTriggerLeave()\n hasPointerMoveOpenedRef.value = false\n }\n}\n\nfunction handleClick(event: PointerEvent) {\n if (event.pointerType === 'mouse' && menuContext.disableClickTrigger.value)\n return\n\n // if open via pointermove, we prevent click event\n if (hasPointerMoveOpenedRef.value)\n return\n\n if (open.value)\n menuContext.onItemSelect('')\n else menuContext.onItemSelect(itemContext.value)\n\n wasClickCloseRef.value = open.value\n}\n\nfunction handleKeydown(ev: KeyboardEvent) {\n const verticalEntryKey = menuContext.dir.value === 'rtl' ? 'ArrowLeft' : 'ArrowRight'\n const entryKey = { horizontal: 'ArrowDown', vertical: verticalEntryKey }[\n menuContext.orientation\n ]\n if (open.value && ev.key === entryKey) {\n itemContext.onEntryKeyDown()\n // Prevent FocusGroupItem from handling the event\n ev.preventDefault()\n ev.stopPropagation()\n }\n}\n\nfunction setFocusProxyRef(node: VNode) {\n // @ts-expect-error unrefElement expect MaybeRef, but also support Vnode\n itemContext.focusProxyRef.value = unrefElement(node)\n return undefined\n}\n\nfunction handleVisuallyHiddenFocus(ev: FocusEvent) {\n const content = document.getElementById(itemContext.contentId)\n const prevFocusedElement = ev.relatedTarget as HTMLElement | null\n\n const wasTriggerFocused = prevFocusedElement === triggerElement.value\n const wasFocusFromContent = content?.contains(prevFocusedElement)\n\n if (wasTriggerFocused || !wasFocusFromContent)\n itemContext.onFocusProxyEnter(wasTriggerFocused ? 'start' : 'end')\n}\n</script>\n\n<template>\n <CollectionItem>\n <Primitive\n :id=\"triggerId\"\n :ref=\"forwardRef\"\n :disabled=\"disabled\"\n :data-disabled=\"disabled ? '' : undefined\"\n :data-state=\"getOpenState(open)\"\n data-navigation-menu-trigger\n :aria-expanded=\"open\"\n :aria-controls=\"contentId\"\n :as-child=\"props.asChild\"\n :as=\"as\"\n v-bind=\"$attrs\"\n @pointerenter=\"handlePointerEnter\"\n @pointermove=\"handlePointerMove\"\n @pointerleave=\"handlePointerLeave\"\n @click=\"handleClick\"\n @keydown=\"handleKeydown\"\n >\n <slot />\n </Primitive>\n </CollectionItem>\n\n <template v-if=\"open\">\n <VisuallyHidden\n :ref=\"setFocusProxyRef\"\n aria-hidden=\"true\"\n :tabindex=\"0\"\n @focus=\"handleVisuallyHiddenFocus\"\n />\n <span\n v-if=\"menuContext.viewport\"\n :aria-owns=\"contentId\"\n />\n </template>\n</template>\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"NavigationMenuViewport.cjs","sources":["../../src/NavigationMenu/NavigationMenuViewport.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { PrimitiveProps } from '@/Primitive'\nimport { useForwardExpose } from '@/shared'\n\nexport interface NavigationMenuViewportProps 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 * Placement of the viewport for css variables `(--reka-navigation-menu-viewport-left, --reka-navigation-menu-viewport-top)`.\n * @defaultValue 'center'\n */\n align?: 'start' | 'center' | 'end'\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { computed, ref, watch } from 'vue'\nimport { useResizeObserver } from '@vueuse/core'\nimport { injectNavigationMenuContext } from './NavigationMenuRoot.vue'\nimport { getOpenState, whenMouse } from './utils'\nimport {\n Primitive,\n} from '@/Primitive'\nimport { Presence } from '@/Presence'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst props = withDefaults(defineProps<NavigationMenuViewportProps>(), {\n align: 'center',\n})\n\nconst { forwardRef, currentElement } = useForwardExpose()\n\nconst menuContext = injectNavigationMenuContext()\nconst { activeTrigger, rootNavigationMenu, modelValue } = menuContext\n\nconst size = ref<{ width: number, height: number }>()\nconst position = ref<{ left: number, top: number }>()\n\nconst open = computed(() => !!menuContext.modelValue.value)\n\nwatch(currentElement, () => {\n menuContext.onViewportChange(currentElement.value)\n})\n\nconst content = ref<HTMLElement>()\n\nwatch([modelValue, open], () => {\n if (!currentElement.value)\n return\n\n requestAnimationFrame(() => {\n const el = (currentElement.value as HTMLElement)?.querySelector('[data-state=open]') as HTMLElement | undefined\n content.value = el\n })\n}, { immediate: true, flush: 'post' })\n\nfunction updatePosition() {\n if (content.value && activeTrigger.value && rootNavigationMenu.value) {\n const bodyWidth = document.documentElement.offsetWidth\n const bodyHeight = document.documentElement.offsetHeight\n const rootRect = rootNavigationMenu.value.getBoundingClientRect()\n const rect = activeTrigger.value.getBoundingClientRect()\n const { offsetWidth, offsetHeight } = content.value\n\n // Find the beginning of the position of the menu item\n const startPositionLeft = rect.left - rootRect.left\n const startPositionTop = rect.top - rootRect.top\n\n // Aligning to specified alignment\n let posLeft = null\n let posTop = null\n switch (props.align) {\n case 'start':\n posLeft = startPositionLeft\n posTop = startPositionTop\n break\n case 'end':\n posLeft = startPositionLeft - offsetWidth + rect.width\n posTop = startPositionTop - offsetHeight + rect.height\n break\n default:\n // center\n posLeft = startPositionLeft - offsetWidth / 2 + rect.width / 2\n posTop = startPositionTop - offsetHeight / 2 + rect.height / 2\n }\n\n const screenOffset = 10\n\n // Do not let go of the left side of the screen\n if (posLeft + rootRect.left < screenOffset) {\n posLeft = screenOffset - rootRect.left\n }\n\n // Now also check the right side of the screen\n const rightOffset = posLeft + rootRect.left + offsetWidth\n if (rightOffset > bodyWidth - screenOffset) {\n posLeft -= rightOffset - bodyWidth + screenOffset\n\n // Recheck the left side of the screen\n if (posLeft < screenOffset - rootRect.left) {\n // Just set the menu to the full width of the screen\n posLeft = screenOffset - rootRect.left\n }\n }\n\n // Do not let go of the top side of the screen\n if (posTop + rootRect.top < screenOffset) {\n posTop = screenOffset - rootRect.top\n }\n\n // Now also check the bottom side of the screen\n const bottomOffset = posTop + rootRect.top + offsetHeight\n if (bottomOffset > bodyHeight - screenOffset) {\n posTop -= bottomOffset - bodyHeight + screenOffset\n\n // Recheck the top side of the screen\n if (posTop < screenOffset - rootRect.top) {\n // Just set the menu to the full height of the screen\n posTop = screenOffset - rootRect.top\n }\n }\n\n // Possible blurring font with decimal values\n posLeft = Math.round(posLeft)\n posTop = Math.round(posTop)\n\n position.value = {\n left: posLeft,\n top: posTop,\n }\n }\n}\n\nuseResizeObserver(content, () => {\n if (content.value) {\n size.value = {\n width: content.value.offsetWidth,\n height: content.value.offsetHeight,\n }\n updatePosition()\n }\n})\n\nuseResizeObserver([globalThis.document?.body, rootNavigationMenu], () => {\n updatePosition()\n})\n</script>\n\n<template>\n <Presence\n v-slot=\"{ present }\"\n :present=\"forceMount || open\"\n :force-mount=\"!menuContext.unmountOnHide.value\"\n @after-leave=\"() => {\n size = undefined\n position = undefined\n }\"\n >\n <Primitive\n v-bind=\"$attrs\"\n :ref=\"forwardRef\"\n :as=\"as\"\n :as-child=\"asChild\"\n :data-state=\"getOpenState(open)\"\n :data-orientation=\"menuContext.orientation\"\n :style=\"{\n // Prevent interaction when animating out\n pointerEvents: !open && menuContext.isRootMenu ? 'none' : undefined,\n ['--reka-navigation-menu-viewport-width']: size ? `${size?.width}px` : undefined,\n ['--reka-navigation-menu-viewport-height']: size ? `${size?.height}px` : undefined,\n ['--reka-navigation-menu-viewport-left']: position ? `${position?.left}px` : undefined,\n ['--reka-navigation-menu-viewport-top']: position ? `${position?.top}px` : undefined,\n }\"\n :hidden=\"!present\"\n @pointerenter=\"menuContext.onContentEnter(menuContext.modelValue.value)\"\n @pointerleave=\"whenMouse(() => menuContext.onContentLeave())($event)\"\n >\n <slot />\n </Primitive>\n </Presence>\n</template>\n"],"names":["useForwardExpose","injectNavigationMenuContext","ref","computed","watch","useResizeObserver"],"mappings":"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"}
1
+ {"version":3,"file":"NavigationMenuViewport.cjs","sources":["../../src/NavigationMenu/NavigationMenuViewport.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { PrimitiveProps } from '@/Primitive'\nimport { useForwardExpose } from '@/shared'\n\nexport interface NavigationMenuViewportProps 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 * Placement of the viewport for css variables `(--reka-navigation-menu-viewport-left, --reka-navigation-menu-viewport-top)`.\n * @defaultValue 'center'\n */\n align?: 'start' | 'center' | 'end'\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { useResizeObserver } from '@vueuse/core'\nimport { computed, ref, watch } from 'vue'\nimport { Presence } from '@/Presence'\nimport {\n Primitive,\n} from '@/Primitive'\nimport { injectNavigationMenuContext } from './NavigationMenuRoot.vue'\nimport { getOpenState, whenMouse } from './utils'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst props = withDefaults(defineProps<NavigationMenuViewportProps>(), {\n align: 'center',\n})\n\nconst { forwardRef, currentElement } = useForwardExpose()\n\nconst menuContext = injectNavigationMenuContext()\nconst { activeTrigger, rootNavigationMenu, modelValue } = menuContext\n\nconst size = ref<{ width: number, height: number }>()\nconst position = ref<{ left: number, top: number }>()\n\nconst open = computed(() => !!menuContext.modelValue.value)\n\nwatch(currentElement, () => {\n menuContext.onViewportChange(currentElement.value)\n})\n\nconst content = ref<HTMLElement>()\n\nwatch([modelValue, open], () => {\n if (!currentElement.value)\n return\n\n requestAnimationFrame(() => {\n const el = (currentElement.value as HTMLElement)?.querySelector('[data-state=open]') as HTMLElement | undefined\n content.value = el\n })\n}, { immediate: true, flush: 'post' })\n\nfunction updatePosition() {\n if (content.value && activeTrigger.value && rootNavigationMenu.value) {\n const bodyWidth = document.documentElement.offsetWidth\n const bodyHeight = document.documentElement.offsetHeight\n const rootRect = rootNavigationMenu.value.getBoundingClientRect()\n const rect = activeTrigger.value.getBoundingClientRect()\n const { offsetWidth, offsetHeight } = content.value\n\n // Find the beginning of the position of the menu item\n const startPositionLeft = rect.left - rootRect.left\n const startPositionTop = rect.top - rootRect.top\n\n // Aligning to specified alignment\n let posLeft = null\n let posTop = null\n switch (props.align) {\n case 'start':\n posLeft = startPositionLeft\n posTop = startPositionTop\n break\n case 'end':\n posLeft = startPositionLeft - offsetWidth + rect.width\n posTop = startPositionTop - offsetHeight + rect.height\n break\n default:\n // center\n posLeft = startPositionLeft - offsetWidth / 2 + rect.width / 2\n posTop = startPositionTop - offsetHeight / 2 + rect.height / 2\n }\n\n const screenOffset = 10\n\n // Do not let go of the left side of the screen\n if (posLeft + rootRect.left < screenOffset) {\n posLeft = screenOffset - rootRect.left\n }\n\n // Now also check the right side of the screen\n const rightOffset = posLeft + rootRect.left + offsetWidth\n if (rightOffset > bodyWidth - screenOffset) {\n posLeft -= rightOffset - bodyWidth + screenOffset\n\n // Recheck the left side of the screen\n if (posLeft < screenOffset - rootRect.left) {\n // Just set the menu to the full width of the screen\n posLeft = screenOffset - rootRect.left\n }\n }\n\n // Do not let go of the top side of the screen\n if (posTop + rootRect.top < screenOffset) {\n posTop = screenOffset - rootRect.top\n }\n\n // Now also check the bottom side of the screen\n const bottomOffset = posTop + rootRect.top + offsetHeight\n if (bottomOffset > bodyHeight - screenOffset) {\n posTop -= bottomOffset - bodyHeight + screenOffset\n\n // Recheck the top side of the screen\n if (posTop < screenOffset - rootRect.top) {\n // Just set the menu to the full height of the screen\n posTop = screenOffset - rootRect.top\n }\n }\n\n // Possible blurring font with decimal values\n posLeft = Math.round(posLeft)\n posTop = Math.round(posTop)\n\n position.value = {\n left: posLeft,\n top: posTop,\n }\n }\n}\n\nuseResizeObserver(content, () => {\n if (content.value) {\n size.value = {\n width: content.value.offsetWidth,\n height: content.value.offsetHeight,\n }\n updatePosition()\n }\n})\n\nuseResizeObserver([globalThis.document?.body, rootNavigationMenu], () => {\n updatePosition()\n})\n</script>\n\n<template>\n <Presence\n v-slot=\"{ present }\"\n :present=\"forceMount || open\"\n :force-mount=\"!menuContext.unmountOnHide.value\"\n @after-leave=\"() => {\n size = undefined\n position = undefined\n }\"\n >\n <Primitive\n v-bind=\"$attrs\"\n :ref=\"forwardRef\"\n :as=\"as\"\n :as-child=\"asChild\"\n :data-state=\"getOpenState(open)\"\n :data-orientation=\"menuContext.orientation\"\n :style=\"{\n // Prevent interaction when animating out\n pointerEvents: !open && menuContext.isRootMenu ? 'none' : undefined,\n ['--reka-navigation-menu-viewport-width']: size ? `${size?.width}px` : undefined,\n ['--reka-navigation-menu-viewport-height']: size ? `${size?.height}px` : undefined,\n ['--reka-navigation-menu-viewport-left']: position ? `${position?.left}px` : undefined,\n ['--reka-navigation-menu-viewport-top']: position ? `${position?.top}px` : undefined,\n }\"\n :hidden=\"!present\"\n @pointerenter=\"menuContext.onContentEnter(menuContext.modelValue.value)\"\n @pointerleave=\"whenMouse(() => menuContext.onContentLeave())($event)\"\n >\n <slot />\n </Primitive>\n </Presence>\n</template>\n"],"names":["useForwardExpose","injectNavigationMenuContext","ref","computed","watch","useResizeObserver"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"NavigationMenuViewport.js","sources":["../../src/NavigationMenu/NavigationMenuViewport.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { PrimitiveProps } from '@/Primitive'\nimport { useForwardExpose } from '@/shared'\n\nexport interface NavigationMenuViewportProps 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 * Placement of the viewport for css variables `(--reka-navigation-menu-viewport-left, --reka-navigation-menu-viewport-top)`.\n * @defaultValue 'center'\n */\n align?: 'start' | 'center' | 'end'\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { computed, ref, watch } from 'vue'\nimport { useResizeObserver } from '@vueuse/core'\nimport { injectNavigationMenuContext } from './NavigationMenuRoot.vue'\nimport { getOpenState, whenMouse } from './utils'\nimport {\n Primitive,\n} from '@/Primitive'\nimport { Presence } from '@/Presence'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst props = withDefaults(defineProps<NavigationMenuViewportProps>(), {\n align: 'center',\n})\n\nconst { forwardRef, currentElement } = useForwardExpose()\n\nconst menuContext = injectNavigationMenuContext()\nconst { activeTrigger, rootNavigationMenu, modelValue } = menuContext\n\nconst size = ref<{ width: number, height: number }>()\nconst position = ref<{ left: number, top: number }>()\n\nconst open = computed(() => !!menuContext.modelValue.value)\n\nwatch(currentElement, () => {\n menuContext.onViewportChange(currentElement.value)\n})\n\nconst content = ref<HTMLElement>()\n\nwatch([modelValue, open], () => {\n if (!currentElement.value)\n return\n\n requestAnimationFrame(() => {\n const el = (currentElement.value as HTMLElement)?.querySelector('[data-state=open]') as HTMLElement | undefined\n content.value = el\n })\n}, { immediate: true, flush: 'post' })\n\nfunction updatePosition() {\n if (content.value && activeTrigger.value && rootNavigationMenu.value) {\n const bodyWidth = document.documentElement.offsetWidth\n const bodyHeight = document.documentElement.offsetHeight\n const rootRect = rootNavigationMenu.value.getBoundingClientRect()\n const rect = activeTrigger.value.getBoundingClientRect()\n const { offsetWidth, offsetHeight } = content.value\n\n // Find the beginning of the position of the menu item\n const startPositionLeft = rect.left - rootRect.left\n const startPositionTop = rect.top - rootRect.top\n\n // Aligning to specified alignment\n let posLeft = null\n let posTop = null\n switch (props.align) {\n case 'start':\n posLeft = startPositionLeft\n posTop = startPositionTop\n break\n case 'end':\n posLeft = startPositionLeft - offsetWidth + rect.width\n posTop = startPositionTop - offsetHeight + rect.height\n break\n default:\n // center\n posLeft = startPositionLeft - offsetWidth / 2 + rect.width / 2\n posTop = startPositionTop - offsetHeight / 2 + rect.height / 2\n }\n\n const screenOffset = 10\n\n // Do not let go of the left side of the screen\n if (posLeft + rootRect.left < screenOffset) {\n posLeft = screenOffset - rootRect.left\n }\n\n // Now also check the right side of the screen\n const rightOffset = posLeft + rootRect.left + offsetWidth\n if (rightOffset > bodyWidth - screenOffset) {\n posLeft -= rightOffset - bodyWidth + screenOffset\n\n // Recheck the left side of the screen\n if (posLeft < screenOffset - rootRect.left) {\n // Just set the menu to the full width of the screen\n posLeft = screenOffset - rootRect.left\n }\n }\n\n // Do not let go of the top side of the screen\n if (posTop + rootRect.top < screenOffset) {\n posTop = screenOffset - rootRect.top\n }\n\n // Now also check the bottom side of the screen\n const bottomOffset = posTop + rootRect.top + offsetHeight\n if (bottomOffset > bodyHeight - screenOffset) {\n posTop -= bottomOffset - bodyHeight + screenOffset\n\n // Recheck the top side of the screen\n if (posTop < screenOffset - rootRect.top) {\n // Just set the menu to the full height of the screen\n posTop = screenOffset - rootRect.top\n }\n }\n\n // Possible blurring font with decimal values\n posLeft = Math.round(posLeft)\n posTop = Math.round(posTop)\n\n position.value = {\n left: posLeft,\n top: posTop,\n }\n }\n}\n\nuseResizeObserver(content, () => {\n if (content.value) {\n size.value = {\n width: content.value.offsetWidth,\n height: content.value.offsetHeight,\n }\n updatePosition()\n }\n})\n\nuseResizeObserver([globalThis.document?.body, rootNavigationMenu], () => {\n updatePosition()\n})\n</script>\n\n<template>\n <Presence\n v-slot=\"{ present }\"\n :present=\"forceMount || open\"\n :force-mount=\"!menuContext.unmountOnHide.value\"\n @after-leave=\"() => {\n size = undefined\n position = undefined\n }\"\n >\n <Primitive\n v-bind=\"$attrs\"\n :ref=\"forwardRef\"\n :as=\"as\"\n :as-child=\"asChild\"\n :data-state=\"getOpenState(open)\"\n :data-orientation=\"menuContext.orientation\"\n :style=\"{\n // Prevent interaction when animating out\n pointerEvents: !open && menuContext.isRootMenu ? 'none' : undefined,\n ['--reka-navigation-menu-viewport-width']: size ? `${size?.width}px` : undefined,\n ['--reka-navigation-menu-viewport-height']: size ? `${size?.height}px` : undefined,\n ['--reka-navigation-menu-viewport-left']: position ? `${position?.left}px` : undefined,\n ['--reka-navigation-menu-viewport-top']: position ? `${position?.top}px` : undefined,\n }\"\n :hidden=\"!present\"\n @pointerenter=\"menuContext.onContentEnter(menuContext.modelValue.value)\"\n @pointerleave=\"whenMouse(() => menuContext.onContentLeave())($event)\"\n >\n <slot />\n </Primitive>\n </Presence>\n</template>\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"NavigationMenuViewport.js","sources":["../../src/NavigationMenu/NavigationMenuViewport.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { PrimitiveProps } from '@/Primitive'\nimport { useForwardExpose } from '@/shared'\n\nexport interface NavigationMenuViewportProps 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 * Placement of the viewport for css variables `(--reka-navigation-menu-viewport-left, --reka-navigation-menu-viewport-top)`.\n * @defaultValue 'center'\n */\n align?: 'start' | 'center' | 'end'\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { useResizeObserver } from '@vueuse/core'\nimport { computed, ref, watch } from 'vue'\nimport { Presence } from '@/Presence'\nimport {\n Primitive,\n} from '@/Primitive'\nimport { injectNavigationMenuContext } from './NavigationMenuRoot.vue'\nimport { getOpenState, whenMouse } from './utils'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst props = withDefaults(defineProps<NavigationMenuViewportProps>(), {\n align: 'center',\n})\n\nconst { forwardRef, currentElement } = useForwardExpose()\n\nconst menuContext = injectNavigationMenuContext()\nconst { activeTrigger, rootNavigationMenu, modelValue } = menuContext\n\nconst size = ref<{ width: number, height: number }>()\nconst position = ref<{ left: number, top: number }>()\n\nconst open = computed(() => !!menuContext.modelValue.value)\n\nwatch(currentElement, () => {\n menuContext.onViewportChange(currentElement.value)\n})\n\nconst content = ref<HTMLElement>()\n\nwatch([modelValue, open], () => {\n if (!currentElement.value)\n return\n\n requestAnimationFrame(() => {\n const el = (currentElement.value as HTMLElement)?.querySelector('[data-state=open]') as HTMLElement | undefined\n content.value = el\n })\n}, { immediate: true, flush: 'post' })\n\nfunction updatePosition() {\n if (content.value && activeTrigger.value && rootNavigationMenu.value) {\n const bodyWidth = document.documentElement.offsetWidth\n const bodyHeight = document.documentElement.offsetHeight\n const rootRect = rootNavigationMenu.value.getBoundingClientRect()\n const rect = activeTrigger.value.getBoundingClientRect()\n const { offsetWidth, offsetHeight } = content.value\n\n // Find the beginning of the position of the menu item\n const startPositionLeft = rect.left - rootRect.left\n const startPositionTop = rect.top - rootRect.top\n\n // Aligning to specified alignment\n let posLeft = null\n let posTop = null\n switch (props.align) {\n case 'start':\n posLeft = startPositionLeft\n posTop = startPositionTop\n break\n case 'end':\n posLeft = startPositionLeft - offsetWidth + rect.width\n posTop = startPositionTop - offsetHeight + rect.height\n break\n default:\n // center\n posLeft = startPositionLeft - offsetWidth / 2 + rect.width / 2\n posTop = startPositionTop - offsetHeight / 2 + rect.height / 2\n }\n\n const screenOffset = 10\n\n // Do not let go of the left side of the screen\n if (posLeft + rootRect.left < screenOffset) {\n posLeft = screenOffset - rootRect.left\n }\n\n // Now also check the right side of the screen\n const rightOffset = posLeft + rootRect.left + offsetWidth\n if (rightOffset > bodyWidth - screenOffset) {\n posLeft -= rightOffset - bodyWidth + screenOffset\n\n // Recheck the left side of the screen\n if (posLeft < screenOffset - rootRect.left) {\n // Just set the menu to the full width of the screen\n posLeft = screenOffset - rootRect.left\n }\n }\n\n // Do not let go of the top side of the screen\n if (posTop + rootRect.top < screenOffset) {\n posTop = screenOffset - rootRect.top\n }\n\n // Now also check the bottom side of the screen\n const bottomOffset = posTop + rootRect.top + offsetHeight\n if (bottomOffset > bodyHeight - screenOffset) {\n posTop -= bottomOffset - bodyHeight + screenOffset\n\n // Recheck the top side of the screen\n if (posTop < screenOffset - rootRect.top) {\n // Just set the menu to the full height of the screen\n posTop = screenOffset - rootRect.top\n }\n }\n\n // Possible blurring font with decimal values\n posLeft = Math.round(posLeft)\n posTop = Math.round(posTop)\n\n position.value = {\n left: posLeft,\n top: posTop,\n }\n }\n}\n\nuseResizeObserver(content, () => {\n if (content.value) {\n size.value = {\n width: content.value.offsetWidth,\n height: content.value.offsetHeight,\n }\n updatePosition()\n }\n})\n\nuseResizeObserver([globalThis.document?.body, rootNavigationMenu], () => {\n updatePosition()\n})\n</script>\n\n<template>\n <Presence\n v-slot=\"{ present }\"\n :present=\"forceMount || open\"\n :force-mount=\"!menuContext.unmountOnHide.value\"\n @after-leave=\"() => {\n size = undefined\n position = undefined\n }\"\n >\n <Primitive\n v-bind=\"$attrs\"\n :ref=\"forwardRef\"\n :as=\"as\"\n :as-child=\"asChild\"\n :data-state=\"getOpenState(open)\"\n :data-orientation=\"menuContext.orientation\"\n :style=\"{\n // Prevent interaction when animating out\n pointerEvents: !open && menuContext.isRootMenu ? 'none' : undefined,\n ['--reka-navigation-menu-viewport-width']: size ? `${size?.width}px` : undefined,\n ['--reka-navigation-menu-viewport-height']: size ? `${size?.height}px` : undefined,\n ['--reka-navigation-menu-viewport-left']: position ? `${position?.left}px` : undefined,\n ['--reka-navigation-menu-viewport-top']: position ? `${position?.top}px` : undefined,\n }\"\n :hidden=\"!present\"\n @pointerenter=\"menuContext.onContentEnter(menuContext.modelValue.value)\"\n @pointerleave=\"whenMouse(() => menuContext.onContentLeave())($event)\"\n >\n <slot />\n </Primitive>\n </Presence>\n</template>\n"],"names":[],"mappings":"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"}
@@ -2,9 +2,9 @@
2
2
 
3
3
  const vue = require('vue');
4
4
  const NumberField_utils = require('./utils.cjs');
5
+ const NumberField_NumberFieldRoot = require('./NumberFieldRoot.cjs');
5
6
  const Primitive_usePrimitiveElement = require('../Primitive/usePrimitiveElement.cjs');
6
7
  const Primitive_Primitive = require('../Primitive/Primitive.cjs');
7
- const NumberField_NumberFieldRoot = require('./NumberFieldRoot.cjs');
8
8
 
9
9
  const _sfc_main = /* @__PURE__ */ vue.defineComponent({
10
10
  __name: "NumberFieldDecrement",
@@ -1 +1 @@
1
- {"version":3,"file":"NumberFieldDecrement.cjs","sources":["../../src/NumberField/NumberFieldDecrement.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { PrimitiveProps } from '@/Primitive'\nimport { injectNumberFieldRootContext } from './NumberFieldRoot.vue'\nimport { usePressedHold } from './utils'\nimport { computed } from 'vue'\n\nexport interface NumberFieldDecrementProps extends PrimitiveProps {\n disabled?: boolean\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { Primitive, usePrimitiveElement } from '@/Primitive'\n\nconst props = withDefaults(defineProps<NumberFieldDecrementProps>(), {\n as: 'button',\n})\n\nconst rootContext = injectNumberFieldRootContext()\nconst isDisabled = computed(() => rootContext.disabled?.value || props.disabled || rootContext.isDecreaseDisabled.value)\n\nconst { primitiveElement, currentElement } = usePrimitiveElement()\nconst { isPressed, onTrigger } = usePressedHold({ target: currentElement, disabled: isDisabled })\n\nonTrigger(() => {\n rootContext.handleDecrease()\n})\n</script>\n\n<template>\n <Primitive\n v-bind=\"props\"\n ref=\"primitiveElement\"\n tabindex=\"-1\"\n aria-label=\"Decrease\"\n :type=\"as === 'button' ? 'button' : undefined\"\n :style=\"{\n userSelect: isPressed ? 'none' : undefined,\n }\"\n :disabled=\"isDisabled ? '' : undefined\"\n :data-disabled=\"isDisabled ? '' : undefined\"\n :data-pressed=\"isPressed ? 'true' : undefined\"\n @contextmenu.prevent\n >\n <slot />\n </Primitive>\n</template>\n"],"names":["injectNumberFieldRootContext","computed","usePrimitiveElement","usePressedHold"],"mappings":";;;;;;;;;;;;;;;;AAcA,IAAA,MAAM,KAAQ,GAAA,OAAA;AAId,IAAA,MAAM,cAAcA,wDAA6B,EAAA;AACjD,IAAM,MAAA,UAAA,GAAaC,YAAS,CAAA,MAAM,WAAY,CAAA,QAAA,EAAU,SAAS,KAAM,CAAA,QAAA,IAAY,WAAY,CAAA,kBAAA,CAAmB,KAAK,CAAA;AAEvH,IAAA,MAAM,EAAE,gBAAA,EAAkB,cAAe,EAAA,GAAIC,iDAAoB,EAAA;AACjE,IAAM,MAAA,EAAE,SAAW,EAAA,SAAA,EAAc,GAAAC,gCAAA,CAAe,EAAE,MAAQ,EAAA,cAAA,EAAgB,QAAU,EAAA,UAAA,EAAY,CAAA;AAEhG,IAAA,SAAA,CAAU,MAAM;AACd,MAAA,WAAA,CAAY,cAAe,EAAA;AAAA,KAC5B,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"NumberFieldDecrement.cjs","sources":["../../src/NumberField/NumberFieldDecrement.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { PrimitiveProps } from '@/Primitive'\nimport { computed } from 'vue'\nimport { injectNumberFieldRootContext } from './NumberFieldRoot.vue'\nimport { usePressedHold } from './utils'\n\nexport interface NumberFieldDecrementProps extends PrimitiveProps {\n disabled?: boolean\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { Primitive, usePrimitiveElement } from '@/Primitive'\n\nconst props = withDefaults(defineProps<NumberFieldDecrementProps>(), {\n as: 'button',\n})\n\nconst rootContext = injectNumberFieldRootContext()\nconst isDisabled = computed(() => rootContext.disabled?.value || props.disabled || rootContext.isDecreaseDisabled.value)\n\nconst { primitiveElement, currentElement } = usePrimitiveElement()\nconst { isPressed, onTrigger } = usePressedHold({ target: currentElement, disabled: isDisabled })\n\nonTrigger(() => {\n rootContext.handleDecrease()\n})\n</script>\n\n<template>\n <Primitive\n v-bind=\"props\"\n ref=\"primitiveElement\"\n tabindex=\"-1\"\n aria-label=\"Decrease\"\n :type=\"as === 'button' ? 'button' : undefined\"\n :style=\"{\n userSelect: isPressed ? 'none' : undefined,\n }\"\n :disabled=\"isDisabled ? '' : undefined\"\n :data-disabled=\"isDisabled ? '' : undefined\"\n :data-pressed=\"isPressed ? 'true' : undefined\"\n @contextmenu.prevent\n >\n <slot />\n </Primitive>\n</template>\n"],"names":["injectNumberFieldRootContext","computed","usePrimitiveElement","usePressedHold"],"mappings":";;;;;;;;;;;;;;;;AAcA,IAAA,MAAM,KAAQ,GAAA,OAAA;AAId,IAAA,MAAM,cAAcA,wDAA6B,EAAA;AACjD,IAAM,MAAA,UAAA,GAAaC,YAAS,CAAA,MAAM,WAAY,CAAA,QAAA,EAAU,SAAS,KAAM,CAAA,QAAA,IAAY,WAAY,CAAA,kBAAA,CAAmB,KAAK,CAAA;AAEvH,IAAA,MAAM,EAAE,gBAAA,EAAkB,cAAe,EAAA,GAAIC,iDAAoB,EAAA;AACjE,IAAM,MAAA,EAAE,SAAW,EAAA,SAAA,EAAc,GAAAC,gCAAA,CAAe,EAAE,MAAQ,EAAA,cAAA,EAAgB,QAAU,EAAA,UAAA,EAAY,CAAA;AAEhG,IAAA,SAAA,CAAU,MAAM;AACd,MAAA,WAAA,CAAY,cAAe,EAAA;AAAA,KAC5B,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,8 +1,8 @@
1
1
  import { defineComponent, computed, createBlock, openBlock, unref, mergeProps, withModifiers, withCtx, renderSlot } from 'vue';
2
2
  import { u as usePressedHold } from './utils.js';
3
+ import { i as injectNumberFieldRootContext } from './NumberFieldRoot.js';
3
4
  import { u as usePrimitiveElement } from '../Primitive/usePrimitiveElement.js';
4
5
  import { P as Primitive } from '../Primitive/Primitive.js';
5
- import { i as injectNumberFieldRootContext } from './NumberFieldRoot.js';
6
6
 
7
7
  const _sfc_main = /* @__PURE__ */ defineComponent({
8
8
  __name: "NumberFieldDecrement",
@@ -1 +1 @@
1
- {"version":3,"file":"NumberFieldDecrement.js","sources":["../../src/NumberField/NumberFieldDecrement.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { PrimitiveProps } from '@/Primitive'\nimport { injectNumberFieldRootContext } from './NumberFieldRoot.vue'\nimport { usePressedHold } from './utils'\nimport { computed } from 'vue'\n\nexport interface NumberFieldDecrementProps extends PrimitiveProps {\n disabled?: boolean\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { Primitive, usePrimitiveElement } from '@/Primitive'\n\nconst props = withDefaults(defineProps<NumberFieldDecrementProps>(), {\n as: 'button',\n})\n\nconst rootContext = injectNumberFieldRootContext()\nconst isDisabled = computed(() => rootContext.disabled?.value || props.disabled || rootContext.isDecreaseDisabled.value)\n\nconst { primitiveElement, currentElement } = usePrimitiveElement()\nconst { isPressed, onTrigger } = usePressedHold({ target: currentElement, disabled: isDisabled })\n\nonTrigger(() => {\n rootContext.handleDecrease()\n})\n</script>\n\n<template>\n <Primitive\n v-bind=\"props\"\n ref=\"primitiveElement\"\n tabindex=\"-1\"\n aria-label=\"Decrease\"\n :type=\"as === 'button' ? 'button' : undefined\"\n :style=\"{\n userSelect: isPressed ? 'none' : undefined,\n }\"\n :disabled=\"isDisabled ? '' : undefined\"\n :data-disabled=\"isDisabled ? '' : undefined\"\n :data-pressed=\"isPressed ? 'true' : undefined\"\n @contextmenu.prevent\n >\n <slot />\n </Primitive>\n</template>\n"],"names":[],"mappings":";;;;;;;;;;;;;;AAcA,IAAA,MAAM,KAAQ,GAAA,OAAA;AAId,IAAA,MAAM,cAAc,4BAA6B,EAAA;AACjD,IAAM,MAAA,UAAA,GAAa,QAAS,CAAA,MAAM,WAAY,CAAA,QAAA,EAAU,SAAS,KAAM,CAAA,QAAA,IAAY,WAAY,CAAA,kBAAA,CAAmB,KAAK,CAAA;AAEvH,IAAA,MAAM,EAAE,gBAAA,EAAkB,cAAe,EAAA,GAAI,mBAAoB,EAAA;AACjE,IAAM,MAAA,EAAE,SAAW,EAAA,SAAA,EAAc,GAAA,cAAA,CAAe,EAAE,MAAQ,EAAA,cAAA,EAAgB,QAAU,EAAA,UAAA,EAAY,CAAA;AAEhG,IAAA,SAAA,CAAU,MAAM;AACd,MAAA,WAAA,CAAY,cAAe,EAAA;AAAA,KAC5B,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"NumberFieldDecrement.js","sources":["../../src/NumberField/NumberFieldDecrement.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { PrimitiveProps } from '@/Primitive'\nimport { computed } from 'vue'\nimport { injectNumberFieldRootContext } from './NumberFieldRoot.vue'\nimport { usePressedHold } from './utils'\n\nexport interface NumberFieldDecrementProps extends PrimitiveProps {\n disabled?: boolean\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { Primitive, usePrimitiveElement } from '@/Primitive'\n\nconst props = withDefaults(defineProps<NumberFieldDecrementProps>(), {\n as: 'button',\n})\n\nconst rootContext = injectNumberFieldRootContext()\nconst isDisabled = computed(() => rootContext.disabled?.value || props.disabled || rootContext.isDecreaseDisabled.value)\n\nconst { primitiveElement, currentElement } = usePrimitiveElement()\nconst { isPressed, onTrigger } = usePressedHold({ target: currentElement, disabled: isDisabled })\n\nonTrigger(() => {\n rootContext.handleDecrease()\n})\n</script>\n\n<template>\n <Primitive\n v-bind=\"props\"\n ref=\"primitiveElement\"\n tabindex=\"-1\"\n aria-label=\"Decrease\"\n :type=\"as === 'button' ? 'button' : undefined\"\n :style=\"{\n userSelect: isPressed ? 'none' : undefined,\n }\"\n :disabled=\"isDisabled ? '' : undefined\"\n :data-disabled=\"isDisabled ? '' : undefined\"\n :data-pressed=\"isPressed ? 'true' : undefined\"\n @contextmenu.prevent\n >\n <slot />\n </Primitive>\n</template>\n"],"names":[],"mappings":";;;;;;;;;;;;;;AAcA,IAAA,MAAM,KAAQ,GAAA,OAAA;AAId,IAAA,MAAM,cAAc,4BAA6B,EAAA;AACjD,IAAM,MAAA,UAAA,GAAa,QAAS,CAAA,MAAM,WAAY,CAAA,QAAA,EAAU,SAAS,KAAM,CAAA,QAAA,IAAY,WAAY,CAAA,kBAAA,CAAmB,KAAK,CAAA;AAEvH,IAAA,MAAM,EAAE,gBAAA,EAAkB,cAAe,EAAA,GAAI,mBAAoB,EAAA;AACjE,IAAM,MAAA,EAAE,SAAW,EAAA,SAAA,EAAc,GAAA,cAAA,CAAe,EAAE,MAAQ,EAAA,cAAA,EAAgB,QAAU,EAAA,UAAA,EAAY,CAAA;AAEhG,IAAA,SAAA,CAAU,MAAM;AACd,MAAA,WAAA,CAAY,cAAe,EAAA;AAAA,KAC5B,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"NumberFieldIncrement.cjs","sources":["../../src/NumberField/NumberFieldIncrement.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { PrimitiveProps } from '@/Primitive'\nimport { injectNumberFieldRootContext } from './NumberFieldRoot.vue'\nimport { usePressedHold } from './utils'\nimport { computed } from 'vue'\n\nexport interface NumberFieldIncrementProps extends PrimitiveProps {\n disabled?: boolean\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { Primitive, usePrimitiveElement } from '@/Primitive'\n\nconst props = withDefaults(defineProps<NumberFieldIncrementProps>(), {\n as: 'button',\n})\n\nconst rootContext = injectNumberFieldRootContext()\nconst isDisabled = computed(() => rootContext.disabled?.value || props.disabled || rootContext.isIncreaseDisabled.value)\n\nconst { primitiveElement, currentElement } = usePrimitiveElement()\nconst { isPressed, onTrigger } = usePressedHold({ target: currentElement, disabled: isDisabled })\n\nonTrigger(() => {\n rootContext.handleIncrease()\n})\n</script>\n\n<template>\n <Primitive\n v-bind=\"props\"\n ref=\"primitiveElement\"\n tabindex=\"-1\"\n aria-label=\"Increase\"\n :type=\"as === 'button' ? 'button' : undefined\"\n :style=\"{\n userSelect: isPressed ? 'none' : undefined,\n }\"\n :disabled=\"isDisabled ? '' : undefined\"\n :data-disabled=\"isDisabled ? '' : undefined\"\n :data-pressed=\"isPressed ? 'true' : undefined\"\n @contextmenu.prevent\n >\n <slot />\n </Primitive>\n</template>\n"],"names":["injectNumberFieldRootContext","computed","usePrimitiveElement","usePressedHold"],"mappings":";;;;;;;;;;;;;;;;AAcA,IAAA,MAAM,KAAQ,GAAA,OAAA;AAId,IAAA,MAAM,cAAcA,wDAA6B,EAAA;AACjD,IAAM,MAAA,UAAA,GAAaC,YAAS,CAAA,MAAM,WAAY,CAAA,QAAA,EAAU,SAAS,KAAM,CAAA,QAAA,IAAY,WAAY,CAAA,kBAAA,CAAmB,KAAK,CAAA;AAEvH,IAAA,MAAM,EAAE,gBAAA,EAAkB,cAAe,EAAA,GAAIC,iDAAoB,EAAA;AACjE,IAAM,MAAA,EAAE,SAAW,EAAA,SAAA,EAAc,GAAAC,gCAAA,CAAe,EAAE,MAAQ,EAAA,cAAA,EAAgB,QAAU,EAAA,UAAA,EAAY,CAAA;AAEhG,IAAA,SAAA,CAAU,MAAM;AACd,MAAA,WAAA,CAAY,cAAe,EAAA;AAAA,KAC5B,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"NumberFieldIncrement.cjs","sources":["../../src/NumberField/NumberFieldIncrement.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { PrimitiveProps } from '@/Primitive'\nimport { computed } from 'vue'\nimport { injectNumberFieldRootContext } from './NumberFieldRoot.vue'\nimport { usePressedHold } from './utils'\n\nexport interface NumberFieldIncrementProps extends PrimitiveProps {\n disabled?: boolean\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { Primitive, usePrimitiveElement } from '@/Primitive'\n\nconst props = withDefaults(defineProps<NumberFieldIncrementProps>(), {\n as: 'button',\n})\n\nconst rootContext = injectNumberFieldRootContext()\nconst isDisabled = computed(() => rootContext.disabled?.value || props.disabled || rootContext.isIncreaseDisabled.value)\n\nconst { primitiveElement, currentElement } = usePrimitiveElement()\nconst { isPressed, onTrigger } = usePressedHold({ target: currentElement, disabled: isDisabled })\n\nonTrigger(() => {\n rootContext.handleIncrease()\n})\n</script>\n\n<template>\n <Primitive\n v-bind=\"props\"\n ref=\"primitiveElement\"\n tabindex=\"-1\"\n aria-label=\"Increase\"\n :type=\"as === 'button' ? 'button' : undefined\"\n :style=\"{\n userSelect: isPressed ? 'none' : undefined,\n }\"\n :disabled=\"isDisabled ? '' : undefined\"\n :data-disabled=\"isDisabled ? '' : undefined\"\n :data-pressed=\"isPressed ? 'true' : undefined\"\n @contextmenu.prevent\n >\n <slot />\n </Primitive>\n</template>\n"],"names":["injectNumberFieldRootContext","computed","usePrimitiveElement","usePressedHold"],"mappings":";;;;;;;;;;;;;;;;AAcA,IAAA,MAAM,KAAQ,GAAA,OAAA;AAId,IAAA,MAAM,cAAcA,wDAA6B,EAAA;AACjD,IAAM,MAAA,UAAA,GAAaC,YAAS,CAAA,MAAM,WAAY,CAAA,QAAA,EAAU,SAAS,KAAM,CAAA,QAAA,IAAY,WAAY,CAAA,kBAAA,CAAmB,KAAK,CAAA;AAEvH,IAAA,MAAM,EAAE,gBAAA,EAAkB,cAAe,EAAA,GAAIC,iDAAoB,EAAA;AACjE,IAAM,MAAA,EAAE,SAAW,EAAA,SAAA,EAAc,GAAAC,gCAAA,CAAe,EAAE,MAAQ,EAAA,cAAA,EAAgB,QAAU,EAAA,UAAA,EAAY,CAAA;AAEhG,IAAA,SAAA,CAAU,MAAM;AACd,MAAA,WAAA,CAAY,cAAe,EAAA;AAAA,KAC5B,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"NumberFieldIncrement.js","sources":["../../src/NumberField/NumberFieldIncrement.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { PrimitiveProps } from '@/Primitive'\nimport { injectNumberFieldRootContext } from './NumberFieldRoot.vue'\nimport { usePressedHold } from './utils'\nimport { computed } from 'vue'\n\nexport interface NumberFieldIncrementProps extends PrimitiveProps {\n disabled?: boolean\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { Primitive, usePrimitiveElement } from '@/Primitive'\n\nconst props = withDefaults(defineProps<NumberFieldIncrementProps>(), {\n as: 'button',\n})\n\nconst rootContext = injectNumberFieldRootContext()\nconst isDisabled = computed(() => rootContext.disabled?.value || props.disabled || rootContext.isIncreaseDisabled.value)\n\nconst { primitiveElement, currentElement } = usePrimitiveElement()\nconst { isPressed, onTrigger } = usePressedHold({ target: currentElement, disabled: isDisabled })\n\nonTrigger(() => {\n rootContext.handleIncrease()\n})\n</script>\n\n<template>\n <Primitive\n v-bind=\"props\"\n ref=\"primitiveElement\"\n tabindex=\"-1\"\n aria-label=\"Increase\"\n :type=\"as === 'button' ? 'button' : undefined\"\n :style=\"{\n userSelect: isPressed ? 'none' : undefined,\n }\"\n :disabled=\"isDisabled ? '' : undefined\"\n :data-disabled=\"isDisabled ? '' : undefined\"\n :data-pressed=\"isPressed ? 'true' : undefined\"\n @contextmenu.prevent\n >\n <slot />\n </Primitive>\n</template>\n"],"names":[],"mappings":";;;;;;;;;;;;;;AAcA,IAAA,MAAM,KAAQ,GAAA,OAAA;AAId,IAAA,MAAM,cAAc,4BAA6B,EAAA;AACjD,IAAM,MAAA,UAAA,GAAa,QAAS,CAAA,MAAM,WAAY,CAAA,QAAA,EAAU,SAAS,KAAM,CAAA,QAAA,IAAY,WAAY,CAAA,kBAAA,CAAmB,KAAK,CAAA;AAEvH,IAAA,MAAM,EAAE,gBAAA,EAAkB,cAAe,EAAA,GAAI,mBAAoB,EAAA;AACjE,IAAM,MAAA,EAAE,SAAW,EAAA,SAAA,EAAc,GAAA,cAAA,CAAe,EAAE,MAAQ,EAAA,cAAA,EAAgB,QAAU,EAAA,UAAA,EAAY,CAAA;AAEhG,IAAA,SAAA,CAAU,MAAM;AACd,MAAA,WAAA,CAAY,cAAe,EAAA;AAAA,KAC5B,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"NumberFieldIncrement.js","sources":["../../src/NumberField/NumberFieldIncrement.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { PrimitiveProps } from '@/Primitive'\nimport { computed } from 'vue'\nimport { injectNumberFieldRootContext } from './NumberFieldRoot.vue'\nimport { usePressedHold } from './utils'\n\nexport interface NumberFieldIncrementProps extends PrimitiveProps {\n disabled?: boolean\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { Primitive, usePrimitiveElement } from '@/Primitive'\n\nconst props = withDefaults(defineProps<NumberFieldIncrementProps>(), {\n as: 'button',\n})\n\nconst rootContext = injectNumberFieldRootContext()\nconst isDisabled = computed(() => rootContext.disabled?.value || props.disabled || rootContext.isIncreaseDisabled.value)\n\nconst { primitiveElement, currentElement } = usePrimitiveElement()\nconst { isPressed, onTrigger } = usePressedHold({ target: currentElement, disabled: isDisabled })\n\nonTrigger(() => {\n rootContext.handleIncrease()\n})\n</script>\n\n<template>\n <Primitive\n v-bind=\"props\"\n ref=\"primitiveElement\"\n tabindex=\"-1\"\n aria-label=\"Increase\"\n :type=\"as === 'button' ? 'button' : undefined\"\n :style=\"{\n userSelect: isPressed ? 'none' : undefined,\n }\"\n :disabled=\"isDisabled ? '' : undefined\"\n :data-disabled=\"isDisabled ? '' : undefined\"\n :data-pressed=\"isPressed ? 'true' : undefined\"\n @contextmenu.prevent\n >\n <slot />\n </Primitive>\n</template>\n"],"names":[],"mappings":";;;;;;;;;;;;;;AAcA,IAAA,MAAM,KAAQ,GAAA,OAAA;AAId,IAAA,MAAM,cAAc,4BAA6B,EAAA;AACjD,IAAM,MAAA,UAAA,GAAa,QAAS,CAAA,MAAM,WAAY,CAAA,QAAA,EAAU,SAAS,KAAM,CAAA,QAAA,IAAY,WAAY,CAAA,kBAAA,CAAmB,KAAK,CAAA;AAEvH,IAAA,MAAM,EAAE,gBAAA,EAAkB,cAAe,EAAA,GAAI,mBAAoB,EAAA;AACjE,IAAM,MAAA,EAAE,SAAW,EAAA,SAAA,EAAc,GAAA,cAAA,CAAe,EAAE,MAAQ,EAAA,cAAA,EAAgB,QAAU,EAAA,UAAA,EAAY,CAAA;AAEhG,IAAA,SAAA,CAAU,MAAM;AACd,MAAA,WAAA,CAAY,cAAe,EAAA;AAAA,KAC5B,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -2,9 +2,9 @@
2
2
 
3
3
  const vue = require('vue');
4
4
  const Primitive_usePrimitiveElement = require('../Primitive/usePrimitiveElement.cjs');
5
- const NumberField_NumberFieldRoot = require('./NumberFieldRoot.cjs');
6
5
  const Primitive_Primitive = require('../Primitive/Primitive.cjs');
7
6
  const shared_getActiveElement = require('../shared/getActiveElement.cjs');
7
+ const NumberField_NumberFieldRoot = require('./NumberFieldRoot.cjs');
8
8
 
9
9
  const _sfc_main = /* @__PURE__ */ vue.defineComponent({
10
10
  __name: "NumberFieldInput",
@@ -25,9 +25,9 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
25
25
  return;
26
26
  event.preventDefault();
27
27
  if (event.deltaY > 0)
28
- rootContext.handleIncrease();
28
+ rootContext.invertWheelChange.value ? rootContext.handleDecrease() : rootContext.handleIncrease();
29
29
  else if (event.deltaY < 0)
30
- rootContext.handleDecrease();
30
+ rootContext.invertWheelChange.value ? rootContext.handleIncrease() : rootContext.handleDecrease();
31
31
  }
32
32
  vue.onMounted(() => {
33
33
  rootContext.onInputElement(currentElement.value);
@@ -1 +1 @@
1
- {"version":3,"file":"NumberFieldInput.cjs","sources":["../../src/NumberField/NumberFieldInput.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { PrimitiveProps } from '@/Primitive'\nimport { injectNumberFieldRootContext } from './NumberFieldRoot.vue'\nimport { onMounted, ref, watch } from 'vue'\nimport { getActiveElement } from '@/shared'\n\nexport interface NumberFieldInputProps extends PrimitiveProps {\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { Primitive, usePrimitiveElement } from '@/Primitive'\n\nconst props = withDefaults(defineProps<NumberFieldInputProps>(), {\n as: 'input',\n})\n\nconst { primitiveElement, currentElement } = usePrimitiveElement()\nconst rootContext = injectNumberFieldRootContext()\n\nfunction handleWheelEvent(event: WheelEvent) {\n if (rootContext.disableWheelChange.value)\n return\n\n // only handle when in focus\n if (event.target !== getActiveElement())\n return\n\n // if on a trackpad, users can scroll in both X and Y at once, check the magnitude of the change\n // if it's mostly in the X direction, then just return, the user probably doesn't mean to inc/dec\n // this isn't perfect, events come in fast with small deltas and a part of the scroll may give a false indication\n // especially if the user is scrolling near 45deg\n if (Math.abs(event.deltaY) <= Math.abs(event.deltaX))\n return\n\n event.preventDefault()\n if (event.deltaY > 0)\n rootContext.handleIncrease()\n else if (event.deltaY < 0)\n rootContext.handleDecrease()\n}\n\nonMounted(() => {\n rootContext.onInputElement(currentElement.value as HTMLInputElement)\n})\n\nconst inputValue = ref(rootContext.textValue.value)\nwatch(() => rootContext.textValue.value, () => {\n inputValue.value = rootContext.textValue.value\n}, { immediate: true, deep: true })\n\nfunction handleChange() {\n requestAnimationFrame(() => {\n inputValue.value = rootContext.textValue.value\n })\n}\n</script>\n\n<template>\n <Primitive\n v-bind=\"props\"\n :id=\"rootContext.id.value\"\n ref=\"primitiveElement\"\n :value=\"inputValue\"\n role=\"spinbutton\"\n type=\"text\"\n tabindex=\"0\"\n :inputmode=\"rootContext.inputMode.value\"\n :disabled=\"rootContext.disabled.value ? '' : undefined\"\n :data-disabled=\"rootContext.disabled.value ? '' : undefined\"\n autocomplete=\"off\"\n autocorrect=\"off\"\n spellcheck=\"false\"\n aria-roledescription=\"Number field\"\n :aria-valuenow=\"rootContext.modelValue.value\"\n :aria-valuemin=\"rootContext.min.value\"\n :aria-valuemax=\"rootContext.max.value\"\n @keydown.up.prevent=\"rootContext.handleIncrease()\"\n @keydown.down.prevent=\"rootContext.handleDecrease()\"\n @keydown.page-up.prevent=\"rootContext.handleIncrease(10)\"\n @keydown.page-down.prevent=\"rootContext.handleDecrease(10)\"\n @keydown.home.prevent=\"rootContext.handleMinMaxValue('min')\"\n @keydown.end.prevent=\"rootContext.handleMinMaxValue('max')\"\n @wheel=\"handleWheelEvent\"\n @beforeinput=\"(event: InputEvent) => {\n const target = event.target as HTMLInputElement\n let nextValue\n = target.value.slice(0, target.selectionStart ?? undefined)\n + (event.data ?? '')\n + target.value.slice(target.selectionEnd ?? undefined);\n\n // validate\n if (!rootContext.validate(nextValue))\n event.preventDefault()\n }\"\n @input=\"(event: InputEvent) => {\n const target = event.target as HTMLInputElement\n inputValue = target.value\n }\"\n @change=\"handleChange\"\n @keydown.enter=\"rootContext.applyInputValue($event.target?.value)\"\n @blur=\"rootContext.applyInputValue($event.target?.value)\"\n >\n <slot />\n </Primitive>\n</template>\n"],"names":["usePrimitiveElement","injectNumberFieldRootContext","getActiveElement","onMounted","ref","watch"],"mappings":";;;;;;;;;;;;;;;AAaA,IAAA,MAAM,KAAQ,GAAA,OAAA;AAId,IAAA,MAAM,EAAE,gBAAA,EAAkB,cAAe,EAAA,GAAIA,iDAAoB,EAAA;AACjE,IAAA,MAAM,cAAcC,wDAA6B,EAAA;AAEjD,IAAA,SAAS,iBAAiB,KAAmB,EAAA;AAC3C,MAAA,IAAI,YAAY,kBAAmB,CAAA,KAAA;AACjC,QAAA;AAGF,MAAI,IAAA,KAAA,CAAM,WAAWC,wCAAiB,EAAA;AACpC,QAAA;AAMF,MAAI,IAAA,IAAA,CAAK,IAAI,KAAM,CAAA,MAAM,KAAK,IAAK,CAAA,GAAA,CAAI,MAAM,MAAM,CAAA;AACjD,QAAA;AAEF,MAAA,KAAA,CAAM,cAAe,EAAA;AACrB,MAAA,IAAI,MAAM,MAAS,GAAA,CAAA;AACjB,QAAA,WAAA,CAAY,cAAe,EAAA;AAAA,WAAA,IACpB,MAAM,MAAS,GAAA,CAAA;AACtB,QAAA,WAAA,CAAY,cAAe,EAAA;AAAA;AAG/B,IAAAC,aAAA,CAAU,MAAM;AACd,MAAY,WAAA,CAAA,cAAA,CAAe,eAAe,KAAyB,CAAA;AAAA,KACpE,CAAA;AAED,IAAA,MAAM,UAAa,GAAAC,OAAA,CAAI,WAAY,CAAA,SAAA,CAAU,KAAK,CAAA;AAClD,IAAAC,SAAA,CAAM,MAAM,WAAA,CAAY,SAAU,CAAA,KAAA,EAAO,MAAM;AAC7C,MAAW,UAAA,CAAA,KAAA,GAAQ,YAAY,SAAU,CAAA,KAAA;AAAA,OACxC,EAAE,SAAA,EAAW,IAAM,EAAA,IAAA,EAAM,MAAM,CAAA;AAElC,IAAA,SAAS,YAAe,GAAA;AACtB,MAAA,qBAAA,CAAsB,MAAM;AAC1B,QAAW,UAAA,CAAA,KAAA,GAAQ,YAAY,SAAU,CAAA,KAAA;AAAA,OAC1C,CAAA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"NumberFieldInput.cjs","sources":["../../src/NumberField/NumberFieldInput.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { PrimitiveProps } from '@/Primitive'\nimport { onMounted, ref, watch } from 'vue'\nimport { getActiveElement } from '@/shared'\nimport { injectNumberFieldRootContext } from './NumberFieldRoot.vue'\n\nexport interface NumberFieldInputProps extends PrimitiveProps {\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { Primitive, usePrimitiveElement } from '@/Primitive'\n\nconst props = withDefaults(defineProps<NumberFieldInputProps>(), {\n as: 'input',\n})\n\nconst { primitiveElement, currentElement } = usePrimitiveElement()\nconst rootContext = injectNumberFieldRootContext()\n\nfunction handleWheelEvent(event: WheelEvent) {\n if (rootContext.disableWheelChange.value)\n return\n\n // only handle when in focus\n if (event.target !== getActiveElement())\n return\n\n // if on a trackpad, users can scroll in both X and Y at once, check the magnitude of the change\n // if it's mostly in the X direction, then just return, the user probably doesn't mean to inc/dec\n // this isn't perfect, events come in fast with small deltas and a part of the scroll may give a false indication\n // especially if the user is scrolling near 45deg\n if (Math.abs(event.deltaY) <= Math.abs(event.deltaX))\n return\n\n event.preventDefault()\n if (event.deltaY > 0)\n rootContext.invertWheelChange.value ? rootContext.handleDecrease() : rootContext.handleIncrease()\n else if (event.deltaY < 0)\n rootContext.invertWheelChange.value ? rootContext.handleIncrease() : rootContext.handleDecrease()\n}\n\nonMounted(() => {\n rootContext.onInputElement(currentElement.value as HTMLInputElement)\n})\n\nconst inputValue = ref(rootContext.textValue.value)\nwatch(() => rootContext.textValue.value, () => {\n inputValue.value = rootContext.textValue.value\n}, { immediate: true, deep: true })\n\nfunction handleChange() {\n requestAnimationFrame(() => {\n inputValue.value = rootContext.textValue.value\n })\n}\n</script>\n\n<template>\n <Primitive\n v-bind=\"props\"\n :id=\"rootContext.id.value\"\n ref=\"primitiveElement\"\n :value=\"inputValue\"\n role=\"spinbutton\"\n type=\"text\"\n tabindex=\"0\"\n :inputmode=\"rootContext.inputMode.value\"\n :disabled=\"rootContext.disabled.value ? '' : undefined\"\n :data-disabled=\"rootContext.disabled.value ? '' : undefined\"\n autocomplete=\"off\"\n autocorrect=\"off\"\n spellcheck=\"false\"\n aria-roledescription=\"Number field\"\n :aria-valuenow=\"rootContext.modelValue.value\"\n :aria-valuemin=\"rootContext.min.value\"\n :aria-valuemax=\"rootContext.max.value\"\n @keydown.up.prevent=\"rootContext.handleIncrease()\"\n @keydown.down.prevent=\"rootContext.handleDecrease()\"\n @keydown.page-up.prevent=\"rootContext.handleIncrease(10)\"\n @keydown.page-down.prevent=\"rootContext.handleDecrease(10)\"\n @keydown.home.prevent=\"rootContext.handleMinMaxValue('min')\"\n @keydown.end.prevent=\"rootContext.handleMinMaxValue('max')\"\n @wheel=\"handleWheelEvent\"\n @beforeinput=\"(event: InputEvent) => {\n const target = event.target as HTMLInputElement\n let nextValue\n = target.value.slice(0, target.selectionStart ?? undefined)\n + (event.data ?? '')\n + target.value.slice(target.selectionEnd ?? undefined);\n\n // validate\n if (!rootContext.validate(nextValue))\n event.preventDefault()\n }\"\n @input=\"(event: InputEvent) => {\n const target = event.target as HTMLInputElement\n inputValue = target.value\n }\"\n @change=\"handleChange\"\n @keydown.enter=\"rootContext.applyInputValue($event.target?.value)\"\n @blur=\"rootContext.applyInputValue($event.target?.value)\"\n >\n <slot />\n </Primitive>\n</template>\n"],"names":["usePrimitiveElement","injectNumberFieldRootContext","getActiveElement","onMounted","ref","watch"],"mappings":";;;;;;;;;;;;;;;AAaA,IAAA,MAAM,KAAQ,GAAA,OAAA;AAId,IAAA,MAAM,EAAE,gBAAA,EAAkB,cAAe,EAAA,GAAIA,iDAAoB,EAAA;AACjE,IAAA,MAAM,cAAcC,wDAA6B,EAAA;AAEjD,IAAA,SAAS,iBAAiB,KAAmB,EAAA;AAC3C,MAAA,IAAI,YAAY,kBAAmB,CAAA,KAAA;AACjC,QAAA;AAGF,MAAI,IAAA,KAAA,CAAM,WAAWC,wCAAiB,EAAA;AACpC,QAAA;AAMF,MAAI,IAAA,IAAA,CAAK,IAAI,KAAM,CAAA,MAAM,KAAK,IAAK,CAAA,GAAA,CAAI,MAAM,MAAM,CAAA;AACjD,QAAA;AAEF,MAAA,KAAA,CAAM,cAAe,EAAA;AACrB,MAAA,IAAI,MAAM,MAAS,GAAA,CAAA;AACjB,QAAA,WAAA,CAAY,kBAAkB,KAAQ,GAAA,WAAA,CAAY,cAAe,EAAA,GAAI,YAAY,cAAe,EAAA;AAAA,WAAA,IACzF,MAAM,MAAS,GAAA,CAAA;AACtB,QAAA,WAAA,CAAY,kBAAkB,KAAQ,GAAA,WAAA,CAAY,cAAe,EAAA,GAAI,YAAY,cAAe,EAAA;AAAA;AAGpG,IAAAC,aAAA,CAAU,MAAM;AACd,MAAY,WAAA,CAAA,cAAA,CAAe,eAAe,KAAyB,CAAA;AAAA,KACpE,CAAA;AAED,IAAA,MAAM,UAAa,GAAAC,OAAA,CAAI,WAAY,CAAA,SAAA,CAAU,KAAK,CAAA;AAClD,IAAAC,SAAA,CAAM,MAAM,WAAA,CAAY,SAAU,CAAA,KAAA,EAAO,MAAM;AAC7C,MAAW,UAAA,CAAA,KAAA,GAAQ,YAAY,SAAU,CAAA,KAAA;AAAA,OACxC,EAAE,SAAA,EAAW,IAAM,EAAA,IAAA,EAAM,MAAM,CAAA;AAElC,IAAA,SAAS,YAAe,GAAA;AACtB,MAAA,qBAAA,CAAsB,MAAM;AAC1B,QAAW,UAAA,CAAA,KAAA,GAAQ,YAAY,SAAU,CAAA,KAAA;AAAA,OAC1C,CAAA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,8 +1,8 @@
1
1
  import { defineComponent, onMounted, ref, watch, createBlock, openBlock, unref, mergeProps, withKeys, withModifiers, withCtx, renderSlot } from 'vue';
2
2
  import { u as usePrimitiveElement } from '../Primitive/usePrimitiveElement.js';
3
- import { i as injectNumberFieldRootContext } from './NumberFieldRoot.js';
4
3
  import { P as Primitive } from '../Primitive/Primitive.js';
5
4
  import { g as getActiveElement } from '../shared/getActiveElement.js';
5
+ import { i as injectNumberFieldRootContext } from './NumberFieldRoot.js';
6
6
 
7
7
  const _sfc_main = /* @__PURE__ */ defineComponent({
8
8
  __name: "NumberFieldInput",
@@ -23,9 +23,9 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
23
23
  return;
24
24
  event.preventDefault();
25
25
  if (event.deltaY > 0)
26
- rootContext.handleIncrease();
26
+ rootContext.invertWheelChange.value ? rootContext.handleDecrease() : rootContext.handleIncrease();
27
27
  else if (event.deltaY < 0)
28
- rootContext.handleDecrease();
28
+ rootContext.invertWheelChange.value ? rootContext.handleIncrease() : rootContext.handleDecrease();
29
29
  }
30
30
  onMounted(() => {
31
31
  rootContext.onInputElement(currentElement.value);
@@ -1 +1 @@
1
- {"version":3,"file":"NumberFieldInput.js","sources":["../../src/NumberField/NumberFieldInput.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { PrimitiveProps } from '@/Primitive'\nimport { injectNumberFieldRootContext } from './NumberFieldRoot.vue'\nimport { onMounted, ref, watch } from 'vue'\nimport { getActiveElement } from '@/shared'\n\nexport interface NumberFieldInputProps extends PrimitiveProps {\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { Primitive, usePrimitiveElement } from '@/Primitive'\n\nconst props = withDefaults(defineProps<NumberFieldInputProps>(), {\n as: 'input',\n})\n\nconst { primitiveElement, currentElement } = usePrimitiveElement()\nconst rootContext = injectNumberFieldRootContext()\n\nfunction handleWheelEvent(event: WheelEvent) {\n if (rootContext.disableWheelChange.value)\n return\n\n // only handle when in focus\n if (event.target !== getActiveElement())\n return\n\n // if on a trackpad, users can scroll in both X and Y at once, check the magnitude of the change\n // if it's mostly in the X direction, then just return, the user probably doesn't mean to inc/dec\n // this isn't perfect, events come in fast with small deltas and a part of the scroll may give a false indication\n // especially if the user is scrolling near 45deg\n if (Math.abs(event.deltaY) <= Math.abs(event.deltaX))\n return\n\n event.preventDefault()\n if (event.deltaY > 0)\n rootContext.handleIncrease()\n else if (event.deltaY < 0)\n rootContext.handleDecrease()\n}\n\nonMounted(() => {\n rootContext.onInputElement(currentElement.value as HTMLInputElement)\n})\n\nconst inputValue = ref(rootContext.textValue.value)\nwatch(() => rootContext.textValue.value, () => {\n inputValue.value = rootContext.textValue.value\n}, { immediate: true, deep: true })\n\nfunction handleChange() {\n requestAnimationFrame(() => {\n inputValue.value = rootContext.textValue.value\n })\n}\n</script>\n\n<template>\n <Primitive\n v-bind=\"props\"\n :id=\"rootContext.id.value\"\n ref=\"primitiveElement\"\n :value=\"inputValue\"\n role=\"spinbutton\"\n type=\"text\"\n tabindex=\"0\"\n :inputmode=\"rootContext.inputMode.value\"\n :disabled=\"rootContext.disabled.value ? '' : undefined\"\n :data-disabled=\"rootContext.disabled.value ? '' : undefined\"\n autocomplete=\"off\"\n autocorrect=\"off\"\n spellcheck=\"false\"\n aria-roledescription=\"Number field\"\n :aria-valuenow=\"rootContext.modelValue.value\"\n :aria-valuemin=\"rootContext.min.value\"\n :aria-valuemax=\"rootContext.max.value\"\n @keydown.up.prevent=\"rootContext.handleIncrease()\"\n @keydown.down.prevent=\"rootContext.handleDecrease()\"\n @keydown.page-up.prevent=\"rootContext.handleIncrease(10)\"\n @keydown.page-down.prevent=\"rootContext.handleDecrease(10)\"\n @keydown.home.prevent=\"rootContext.handleMinMaxValue('min')\"\n @keydown.end.prevent=\"rootContext.handleMinMaxValue('max')\"\n @wheel=\"handleWheelEvent\"\n @beforeinput=\"(event: InputEvent) => {\n const target = event.target as HTMLInputElement\n let nextValue\n = target.value.slice(0, target.selectionStart ?? undefined)\n + (event.data ?? '')\n + target.value.slice(target.selectionEnd ?? undefined);\n\n // validate\n if (!rootContext.validate(nextValue))\n event.preventDefault()\n }\"\n @input=\"(event: InputEvent) => {\n const target = event.target as HTMLInputElement\n inputValue = target.value\n }\"\n @change=\"handleChange\"\n @keydown.enter=\"rootContext.applyInputValue($event.target?.value)\"\n @blur=\"rootContext.applyInputValue($event.target?.value)\"\n >\n <slot />\n </Primitive>\n</template>\n"],"names":[],"mappings":";;;;;;;;;;;;;AAaA,IAAA,MAAM,KAAQ,GAAA,OAAA;AAId,IAAA,MAAM,EAAE,gBAAA,EAAkB,cAAe,EAAA,GAAI,mBAAoB,EAAA;AACjE,IAAA,MAAM,cAAc,4BAA6B,EAAA;AAEjD,IAAA,SAAS,iBAAiB,KAAmB,EAAA;AAC3C,MAAA,IAAI,YAAY,kBAAmB,CAAA,KAAA;AACjC,QAAA;AAGF,MAAI,IAAA,KAAA,CAAM,WAAW,gBAAiB,EAAA;AACpC,QAAA;AAMF,MAAI,IAAA,IAAA,CAAK,IAAI,KAAM,CAAA,MAAM,KAAK,IAAK,CAAA,GAAA,CAAI,MAAM,MAAM,CAAA;AACjD,QAAA;AAEF,MAAA,KAAA,CAAM,cAAe,EAAA;AACrB,MAAA,IAAI,MAAM,MAAS,GAAA,CAAA;AACjB,QAAA,WAAA,CAAY,cAAe,EAAA;AAAA,WAAA,IACpB,MAAM,MAAS,GAAA,CAAA;AACtB,QAAA,WAAA,CAAY,cAAe,EAAA;AAAA;AAG/B,IAAA,SAAA,CAAU,MAAM;AACd,MAAY,WAAA,CAAA,cAAA,CAAe,eAAe,KAAyB,CAAA;AAAA,KACpE,CAAA;AAED,IAAA,MAAM,UAAa,GAAA,GAAA,CAAI,WAAY,CAAA,SAAA,CAAU,KAAK,CAAA;AAClD,IAAA,KAAA,CAAM,MAAM,WAAA,CAAY,SAAU,CAAA,KAAA,EAAO,MAAM;AAC7C,MAAW,UAAA,CAAA,KAAA,GAAQ,YAAY,SAAU,CAAA,KAAA;AAAA,OACxC,EAAE,SAAA,EAAW,IAAM,EAAA,IAAA,EAAM,MAAM,CAAA;AAElC,IAAA,SAAS,YAAe,GAAA;AACtB,MAAA,qBAAA,CAAsB,MAAM;AAC1B,QAAW,UAAA,CAAA,KAAA,GAAQ,YAAY,SAAU,CAAA,KAAA;AAAA,OAC1C,CAAA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"NumberFieldInput.js","sources":["../../src/NumberField/NumberFieldInput.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { PrimitiveProps } from '@/Primitive'\nimport { onMounted, ref, watch } from 'vue'\nimport { getActiveElement } from '@/shared'\nimport { injectNumberFieldRootContext } from './NumberFieldRoot.vue'\n\nexport interface NumberFieldInputProps extends PrimitiveProps {\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { Primitive, usePrimitiveElement } from '@/Primitive'\n\nconst props = withDefaults(defineProps<NumberFieldInputProps>(), {\n as: 'input',\n})\n\nconst { primitiveElement, currentElement } = usePrimitiveElement()\nconst rootContext = injectNumberFieldRootContext()\n\nfunction handleWheelEvent(event: WheelEvent) {\n if (rootContext.disableWheelChange.value)\n return\n\n // only handle when in focus\n if (event.target !== getActiveElement())\n return\n\n // if on a trackpad, users can scroll in both X and Y at once, check the magnitude of the change\n // if it's mostly in the X direction, then just return, the user probably doesn't mean to inc/dec\n // this isn't perfect, events come in fast with small deltas and a part of the scroll may give a false indication\n // especially if the user is scrolling near 45deg\n if (Math.abs(event.deltaY) <= Math.abs(event.deltaX))\n return\n\n event.preventDefault()\n if (event.deltaY > 0)\n rootContext.invertWheelChange.value ? rootContext.handleDecrease() : rootContext.handleIncrease()\n else if (event.deltaY < 0)\n rootContext.invertWheelChange.value ? rootContext.handleIncrease() : rootContext.handleDecrease()\n}\n\nonMounted(() => {\n rootContext.onInputElement(currentElement.value as HTMLInputElement)\n})\n\nconst inputValue = ref(rootContext.textValue.value)\nwatch(() => rootContext.textValue.value, () => {\n inputValue.value = rootContext.textValue.value\n}, { immediate: true, deep: true })\n\nfunction handleChange() {\n requestAnimationFrame(() => {\n inputValue.value = rootContext.textValue.value\n })\n}\n</script>\n\n<template>\n <Primitive\n v-bind=\"props\"\n :id=\"rootContext.id.value\"\n ref=\"primitiveElement\"\n :value=\"inputValue\"\n role=\"spinbutton\"\n type=\"text\"\n tabindex=\"0\"\n :inputmode=\"rootContext.inputMode.value\"\n :disabled=\"rootContext.disabled.value ? '' : undefined\"\n :data-disabled=\"rootContext.disabled.value ? '' : undefined\"\n autocomplete=\"off\"\n autocorrect=\"off\"\n spellcheck=\"false\"\n aria-roledescription=\"Number field\"\n :aria-valuenow=\"rootContext.modelValue.value\"\n :aria-valuemin=\"rootContext.min.value\"\n :aria-valuemax=\"rootContext.max.value\"\n @keydown.up.prevent=\"rootContext.handleIncrease()\"\n @keydown.down.prevent=\"rootContext.handleDecrease()\"\n @keydown.page-up.prevent=\"rootContext.handleIncrease(10)\"\n @keydown.page-down.prevent=\"rootContext.handleDecrease(10)\"\n @keydown.home.prevent=\"rootContext.handleMinMaxValue('min')\"\n @keydown.end.prevent=\"rootContext.handleMinMaxValue('max')\"\n @wheel=\"handleWheelEvent\"\n @beforeinput=\"(event: InputEvent) => {\n const target = event.target as HTMLInputElement\n let nextValue\n = target.value.slice(0, target.selectionStart ?? undefined)\n + (event.data ?? '')\n + target.value.slice(target.selectionEnd ?? undefined);\n\n // validate\n if (!rootContext.validate(nextValue))\n event.preventDefault()\n }\"\n @input=\"(event: InputEvent) => {\n const target = event.target as HTMLInputElement\n inputValue = target.value\n }\"\n @change=\"handleChange\"\n @keydown.enter=\"rootContext.applyInputValue($event.target?.value)\"\n @blur=\"rootContext.applyInputValue($event.target?.value)\"\n >\n <slot />\n </Primitive>\n</template>\n"],"names":[],"mappings":";;;;;;;;;;;;;AAaA,IAAA,MAAM,KAAQ,GAAA,OAAA;AAId,IAAA,MAAM,EAAE,gBAAA,EAAkB,cAAe,EAAA,GAAI,mBAAoB,EAAA;AACjE,IAAA,MAAM,cAAc,4BAA6B,EAAA;AAEjD,IAAA,SAAS,iBAAiB,KAAmB,EAAA;AAC3C,MAAA,IAAI,YAAY,kBAAmB,CAAA,KAAA;AACjC,QAAA;AAGF,MAAI,IAAA,KAAA,CAAM,WAAW,gBAAiB,EAAA;AACpC,QAAA;AAMF,MAAI,IAAA,IAAA,CAAK,IAAI,KAAM,CAAA,MAAM,KAAK,IAAK,CAAA,GAAA,CAAI,MAAM,MAAM,CAAA;AACjD,QAAA;AAEF,MAAA,KAAA,CAAM,cAAe,EAAA;AACrB,MAAA,IAAI,MAAM,MAAS,GAAA,CAAA;AACjB,QAAA,WAAA,CAAY,kBAAkB,KAAQ,GAAA,WAAA,CAAY,cAAe,EAAA,GAAI,YAAY,cAAe,EAAA;AAAA,WAAA,IACzF,MAAM,MAAS,GAAA,CAAA;AACtB,QAAA,WAAA,CAAY,kBAAkB,KAAQ,GAAA,WAAA,CAAY,cAAe,EAAA,GAAI,YAAY,cAAe,EAAA;AAAA;AAGpG,IAAA,SAAA,CAAU,MAAM;AACd,MAAY,WAAA,CAAA,cAAA,CAAe,eAAe,KAAyB,CAAA;AAAA,KACpE,CAAA;AAED,IAAA,MAAM,UAAa,GAAA,GAAA,CAAI,WAAY,CAAA,SAAA,CAAU,KAAK,CAAA;AAClD,IAAA,KAAA,CAAM,MAAM,WAAA,CAAY,SAAU,CAAA,KAAA,EAAO,MAAM;AAC7C,MAAW,UAAA,CAAA,KAAA,GAAQ,YAAY,SAAU,CAAA,KAAA;AAAA,OACxC,EAAE,SAAA,EAAW,IAAM,EAAA,IAAA,EAAM,MAAM,CAAA;AAElC,IAAA,SAAS,YAAe,GAAA;AACtB,MAAA,qBAAA,CAAsB,MAAM;AAC1B,QAAW,UAAA,CAAA,KAAA,GAAQ,YAAY,SAAU,CAAA,KAAA;AAAA,OAC1C,CAAA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -10,6 +10,7 @@ const shared_useFormControl = require('../shared/useFormControl.cjs');
10
10
  const shared_clamp = require('../shared/clamp.cjs');
11
11
  const Primitive_Primitive = require('../Primitive/Primitive.cjs');
12
12
  const VisuallyHidden_VisuallyHiddenInput = require('../VisuallyHidden/VisuallyHiddenInput.cjs');
13
+ const shared_nullish = require('../shared/nullish.cjs');
13
14
 
14
15
  const [injectNumberFieldRootContext, provideNumberFieldRootContext] = shared_createContext.createContext("NumberFieldRoot");
15
16
  const _sfc_main = /* @__PURE__ */ vue.defineComponent({
@@ -28,6 +29,7 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
28
29
  locale: {},
29
30
  disabled: { type: Boolean },
30
31
  disableWheelChange: { type: Boolean },
32
+ invertWheelChange: { type: Boolean },
31
33
  id: {},
32
34
  asChild: { type: Boolean },
33
35
  as: { default: "div" },
@@ -38,7 +40,7 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
38
40
  setup(__props, { emit: __emit }) {
39
41
  const props = __props;
40
42
  const emits = __emit;
41
- const { disabled, disableWheelChange, min, max, step, stepSnapping, formatOptions, id, locale: propLocale } = vue.toRefs(props);
43
+ const { disabled, disableWheelChange, invertWheelChange, min, max, step, stepSnapping, formatOptions, id, locale: propLocale } = vue.toRefs(props);
42
44
  const modelValue = core.useVModel(props, "modelValue", emits, {
43
45
  defaultValue: props.defaultValue,
44
46
  passive: props.modelValue === void 0
@@ -48,10 +50,10 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
48
50
  const isFormControl = shared_useFormControl.useFormControl(currentElement);
49
51
  const inputEl = vue.ref();
50
52
  const isDecreaseDisabled = vue.computed(
51
- () => clampInputValue(modelValue.value) === min.value || (min.value && !isNaN(modelValue.value) ? NumberField_utils.handleDecimalOperation("-", modelValue.value, step.value) < min.value : false)
53
+ () => !shared_nullish.isNullish(modelValue.value) && (clampInputValue(modelValue.value) === min.value || min.value && !isNaN(modelValue.value) ? NumberField_utils.handleDecimalOperation("-", modelValue.value, step.value) < min.value : false)
52
54
  );
53
55
  const isIncreaseDisabled = vue.computed(
54
- () => clampInputValue(modelValue.value) === max.value || (max.value && !isNaN(modelValue.value) ? NumberField_utils.handleDecimalOperation("+", modelValue.value, step.value) > max.value : false)
56
+ () => !shared_nullish.isNullish(modelValue.value) && (clampInputValue(modelValue.value) === max.value || max.value && !isNaN(modelValue.value) ? NumberField_utils.handleDecimalOperation("+", modelValue.value, step.value) > max.value : false)
55
57
  );
56
58
  function handleChangingValue(type, multiplier = 1) {
57
59
  inputEl.value?.focus();
@@ -86,7 +88,7 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
86
88
  return hasDecimals ? "decimal" : "numeric";
87
89
  });
88
90
  const textValueFormatter = NumberField_utils.useNumberFormatter(locale, formatOptions);
89
- const textValue = vue.computed(() => isNaN(modelValue.value) ? "" : textValueFormatter.format(modelValue.value));
91
+ const textValue = vue.computed(() => shared_nullish.isNullish(modelValue.value) || isNaN(modelValue.value) ? "" : textValueFormatter.format(modelValue.value));
90
92
  function validate(val) {
91
93
  return numberParser.isValidPartialNumber(val, min.value, max.value);
92
94
  }
@@ -105,7 +107,7 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
105
107
  }
106
108
  function applyInputValue(val) {
107
109
  const parsedValue = numberParser.parse(val);
108
- modelValue.value = clampInputValue(parsedValue);
110
+ modelValue.value = isNaN(parsedValue) ? void 0 : clampInputValue(parsedValue);
109
111
  if (!val.length)
110
112
  return setInputValue(val);
111
113
  if (isNaN(parsedValue))
@@ -125,6 +127,7 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
125
127
  applyInputValue,
126
128
  disabled,
127
129
  disableWheelChange,
130
+ invertWheelChange,
128
131
  max,
129
132
  min,
130
133
  isDecreaseDisabled,