reka-ui 2.1.0 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (817) hide show
  1. package/README.md +1 -1
  2. package/dist/Accordion/AccordionContent.cjs +2 -1
  3. package/dist/Accordion/AccordionContent.cjs.map +1 -1
  4. package/dist/Accordion/AccordionContent.js +3 -2
  5. package/dist/Accordion/AccordionContent.js.map +1 -1
  6. package/dist/Accordion/AccordionHeader.js +1 -1
  7. package/dist/Accordion/AccordionItem.cjs +2 -2
  8. package/dist/Accordion/AccordionItem.cjs.map +1 -1
  9. package/dist/Accordion/AccordionItem.js +3 -3
  10. package/dist/Accordion/AccordionItem.js.map +1 -1
  11. package/dist/Accordion/AccordionRoot.cjs +1 -1
  12. package/dist/Accordion/AccordionRoot.js +2 -2
  13. package/dist/Accordion/AccordionTrigger.cjs +2 -2
  14. package/dist/Accordion/AccordionTrigger.cjs.map +1 -1
  15. package/dist/Accordion/AccordionTrigger.js +3 -3
  16. package/dist/Accordion/AccordionTrigger.js.map +1 -1
  17. package/dist/AlertDialog/AlertDialogAction.js +1 -1
  18. package/dist/AlertDialog/AlertDialogCancel.js +1 -1
  19. package/dist/AlertDialog/AlertDialogContent.cjs +1 -1
  20. package/dist/AlertDialog/AlertDialogContent.js +2 -2
  21. package/dist/AlertDialog/AlertDialogDescription.js +1 -1
  22. package/dist/AlertDialog/AlertDialogOverlay.js +1 -1
  23. package/dist/AlertDialog/AlertDialogPortal.js +1 -1
  24. package/dist/AlertDialog/AlertDialogRoot.js +1 -1
  25. package/dist/AlertDialog/AlertDialogTitle.js +1 -1
  26. package/dist/AlertDialog/AlertDialogTrigger.js +1 -1
  27. package/dist/AspectRatio/AspectRatio.js +1 -1
  28. package/dist/Avatar/AvatarFallback.js +1 -1
  29. package/dist/Avatar/AvatarImage.js +1 -1
  30. package/dist/Avatar/AvatarRoot.cjs +1 -1
  31. package/dist/Avatar/AvatarRoot.js +2 -2
  32. package/dist/Calendar/CalendarCell.cjs +2 -2
  33. package/dist/Calendar/CalendarCell.js +3 -3
  34. package/dist/Calendar/CalendarCellTrigger.cjs +74 -48
  35. package/dist/Calendar/CalendarCellTrigger.cjs.map +1 -1
  36. package/dist/Calendar/CalendarCellTrigger.js +75 -49
  37. package/dist/Calendar/CalendarCellTrigger.js.map +1 -1
  38. package/dist/Calendar/CalendarGrid.cjs +2 -2
  39. package/dist/Calendar/CalendarGrid.cjs.map +1 -1
  40. package/dist/Calendar/CalendarGrid.js +3 -3
  41. package/dist/Calendar/CalendarGrid.js.map +1 -1
  42. package/dist/Calendar/CalendarGridBody.js +1 -1
  43. package/dist/Calendar/CalendarGridHead.js +1 -1
  44. package/dist/Calendar/CalendarGridRow.js +1 -1
  45. package/dist/Calendar/CalendarHeadCell.js +1 -1
  46. package/dist/Calendar/CalendarHeader.js +1 -1
  47. package/dist/Calendar/CalendarHeading.cjs +1 -1
  48. package/dist/Calendar/CalendarHeading.js +2 -2
  49. package/dist/Calendar/CalendarNext.cjs +3 -3
  50. package/dist/Calendar/CalendarNext.js +4 -4
  51. package/dist/Calendar/CalendarPrev.cjs +3 -3
  52. package/dist/Calendar/CalendarPrev.js +4 -4
  53. package/dist/Calendar/CalendarRoot.cjs +14 -12
  54. package/dist/Calendar/CalendarRoot.cjs.map +1 -1
  55. package/dist/Calendar/CalendarRoot.js +15 -13
  56. package/dist/Calendar/CalendarRoot.js.map +1 -1
  57. package/dist/Calendar/useCalendar.js +1 -1
  58. package/dist/Calendar/utils.cjs +9 -0
  59. package/dist/Calendar/utils.cjs.map +1 -0
  60. package/dist/Calendar/utils.js +7 -0
  61. package/dist/Calendar/utils.js.map +1 -0
  62. package/dist/Checkbox/CheckboxGroupRoot.cjs +3 -3
  63. package/dist/Checkbox/CheckboxGroupRoot.js +4 -4
  64. package/dist/Checkbox/CheckboxIndicator.cjs +1 -1
  65. package/dist/Checkbox/CheckboxIndicator.js +2 -2
  66. package/dist/Checkbox/CheckboxRoot.cjs +8 -8
  67. package/dist/Checkbox/CheckboxRoot.cjs.map +1 -1
  68. package/dist/Checkbox/CheckboxRoot.js +10 -10
  69. package/dist/Checkbox/CheckboxRoot.js.map +1 -1
  70. package/dist/Collapsible/CollapsibleContent.cjs +4 -4
  71. package/dist/Collapsible/CollapsibleContent.cjs.map +1 -1
  72. package/dist/Collapsible/CollapsibleContent.js +5 -5
  73. package/dist/Collapsible/CollapsibleContent.js.map +1 -1
  74. package/dist/Collapsible/CollapsibleRoot.cjs +4 -4
  75. package/dist/Collapsible/CollapsibleRoot.js +5 -5
  76. package/dist/Collapsible/CollapsibleTrigger.cjs +2 -2
  77. package/dist/Collapsible/CollapsibleTrigger.js +3 -3
  78. package/dist/Combobox/ComboboxAnchor.js +1 -1
  79. package/dist/Combobox/ComboboxArrow.js +1 -1
  80. package/dist/Combobox/ComboboxCancel.cjs +1 -1
  81. package/dist/Combobox/ComboboxCancel.js +2 -2
  82. package/dist/Combobox/ComboboxContent.cjs +1 -1
  83. package/dist/Combobox/ComboboxContent.cjs.map +1 -1
  84. package/dist/Combobox/ComboboxContent.js +2 -2
  85. package/dist/Combobox/ComboboxContent.js.map +1 -1
  86. package/dist/Combobox/ComboboxContentImpl.cjs +1 -1
  87. package/dist/Combobox/ComboboxContentImpl.js +2 -2
  88. package/dist/Combobox/ComboboxEmpty.js +1 -1
  89. package/dist/Combobox/ComboboxGroup.cjs +3 -3
  90. package/dist/Combobox/ComboboxGroup.cjs.map +1 -1
  91. package/dist/Combobox/ComboboxGroup.js +4 -4
  92. package/dist/Combobox/ComboboxGroup.js.map +1 -1
  93. package/dist/Combobox/ComboboxInput.cjs +1 -1
  94. package/dist/Combobox/ComboboxInput.js +2 -2
  95. package/dist/Combobox/ComboboxItem.cjs +2 -5
  96. package/dist/Combobox/ComboboxItem.cjs.map +1 -1
  97. package/dist/Combobox/ComboboxItem.js +4 -6
  98. package/dist/Combobox/ComboboxItem.js.map +1 -1
  99. package/dist/Combobox/ComboboxItemIndicator.js +1 -1
  100. package/dist/Combobox/ComboboxLabel.cjs +1 -1
  101. package/dist/Combobox/ComboboxLabel.cjs.map +1 -1
  102. package/dist/Combobox/ComboboxLabel.js +2 -2
  103. package/dist/Combobox/ComboboxLabel.js.map +1 -1
  104. package/dist/Combobox/ComboboxPortal.js +1 -1
  105. package/dist/Combobox/ComboboxRoot.cjs +7 -7
  106. package/dist/Combobox/ComboboxRoot.cjs.map +1 -1
  107. package/dist/Combobox/ComboboxRoot.js +8 -8
  108. package/dist/Combobox/ComboboxRoot.js.map +1 -1
  109. package/dist/Combobox/ComboboxSeparator.js +1 -1
  110. package/dist/Combobox/ComboboxTrigger.cjs +3 -3
  111. package/dist/Combobox/ComboboxTrigger.js +4 -4
  112. package/dist/Combobox/ComboboxViewport.cjs +1 -1
  113. package/dist/Combobox/ComboboxViewport.js +2 -2
  114. package/dist/Combobox/ComboboxVirtualizer.js +1 -1
  115. package/dist/ConfigProvider/ConfigProvider.cjs +2 -2
  116. package/dist/ConfigProvider/ConfigProvider.js +2 -2
  117. package/dist/ContextMenu/ContextMenuArrow.js +1 -1
  118. package/dist/ContextMenu/ContextMenuCheckboxItem.js +1 -1
  119. package/dist/ContextMenu/ContextMenuContent.js +1 -1
  120. package/dist/ContextMenu/ContextMenuGroup.js +1 -1
  121. package/dist/ContextMenu/ContextMenuItem.js +1 -1
  122. package/dist/ContextMenu/ContextMenuItemIndicator.js +1 -1
  123. package/dist/ContextMenu/ContextMenuLabel.js +1 -1
  124. package/dist/ContextMenu/ContextMenuPortal.js +1 -1
  125. package/dist/ContextMenu/ContextMenuRadioGroup.js +1 -1
  126. package/dist/ContextMenu/ContextMenuRadioItem.js +1 -1
  127. package/dist/ContextMenu/ContextMenuRoot.cjs +1 -1
  128. package/dist/ContextMenu/ContextMenuRoot.js +2 -2
  129. package/dist/ContextMenu/ContextMenuSeparator.js +1 -1
  130. package/dist/ContextMenu/ContextMenuSub.cjs +2 -2
  131. package/dist/ContextMenu/ContextMenuSub.js +3 -3
  132. package/dist/ContextMenu/ContextMenuSubContent.js +1 -1
  133. package/dist/ContextMenu/ContextMenuSubTrigger.js +1 -1
  134. package/dist/ContextMenu/ContextMenuTrigger.cjs +1 -1
  135. package/dist/ContextMenu/ContextMenuTrigger.js +2 -2
  136. package/dist/DateField/DateFieldInput.cjs +5 -5
  137. package/dist/DateField/DateFieldInput.js +6 -6
  138. package/dist/DateField/DateFieldRoot.cjs +10 -10
  139. package/dist/DateField/DateFieldRoot.js +11 -11
  140. package/dist/DatePicker/DatePickerArrow.js +1 -1
  141. package/dist/DatePicker/DatePickerCalendar.js +1 -1
  142. package/dist/DatePicker/DatePickerCell.js +1 -1
  143. package/dist/DatePicker/DatePickerCellTrigger.js +1 -1
  144. package/dist/DatePicker/DatePickerClose.js +1 -1
  145. package/dist/DatePicker/DatePickerContent.js +1 -1
  146. package/dist/DatePicker/DatePickerField.js +1 -1
  147. package/dist/DatePicker/DatePickerGrid.js +1 -1
  148. package/dist/DatePicker/DatePickerGridBody.js +1 -1
  149. package/dist/DatePicker/DatePickerGridHead.js +1 -1
  150. package/dist/DatePicker/DatePickerGridRow.js +1 -1
  151. package/dist/DatePicker/DatePickerHeadCell.js +1 -1
  152. package/dist/DatePicker/DatePickerHeader.js +1 -1
  153. package/dist/DatePicker/DatePickerHeading.js +1 -1
  154. package/dist/DatePicker/DatePickerInput.js +1 -1
  155. package/dist/DatePicker/DatePickerNext.js +1 -1
  156. package/dist/DatePicker/DatePickerPrev.js +1 -1
  157. package/dist/DatePicker/DatePickerRoot.cjs +11 -11
  158. package/dist/DatePicker/DatePickerRoot.cjs.map +1 -1
  159. package/dist/DatePicker/DatePickerRoot.js +12 -12
  160. package/dist/DatePicker/DatePickerRoot.js.map +1 -1
  161. package/dist/DatePicker/DatePickerTrigger.js +1 -1
  162. package/dist/DateRangeField/DateRangeFieldInput.cjs +5 -5
  163. package/dist/DateRangeField/DateRangeFieldInput.js +6 -6
  164. package/dist/DateRangeField/DateRangeFieldRoot.cjs +22 -18
  165. package/dist/DateRangeField/DateRangeFieldRoot.cjs.map +1 -1
  166. package/dist/DateRangeField/DateRangeFieldRoot.js +23 -19
  167. package/dist/DateRangeField/DateRangeFieldRoot.js.map +1 -1
  168. package/dist/DateRangePicker/DateRangePickerAnchor.js +1 -1
  169. package/dist/DateRangePicker/DateRangePickerArrow.js +1 -1
  170. package/dist/DateRangePicker/DateRangePickerCalendar.js +1 -1
  171. package/dist/DateRangePicker/DateRangePickerCell.js +1 -1
  172. package/dist/DateRangePicker/DateRangePickerCellTrigger.js +1 -1
  173. package/dist/DateRangePicker/DateRangePickerClose.js +1 -1
  174. package/dist/DateRangePicker/DateRangePickerContent.js +1 -1
  175. package/dist/DateRangePicker/DateRangePickerField.js +1 -1
  176. package/dist/DateRangePicker/DateRangePickerGrid.js +1 -1
  177. package/dist/DateRangePicker/DateRangePickerGridBody.js +1 -1
  178. package/dist/DateRangePicker/DateRangePickerGridHead.js +1 -1
  179. package/dist/DateRangePicker/DateRangePickerGridRow.js +1 -1
  180. package/dist/DateRangePicker/DateRangePickerHeadCell.js +1 -1
  181. package/dist/DateRangePicker/DateRangePickerHeader.js +1 -1
  182. package/dist/DateRangePicker/DateRangePickerHeading.js +1 -1
  183. package/dist/DateRangePicker/DateRangePickerInput.js +1 -1
  184. package/dist/DateRangePicker/DateRangePickerNext.js +1 -1
  185. package/dist/DateRangePicker/DateRangePickerPrev.js +1 -1
  186. package/dist/DateRangePicker/DateRangePickerRoot.cjs +11 -11
  187. package/dist/DateRangePicker/DateRangePickerRoot.cjs.map +1 -1
  188. package/dist/DateRangePicker/DateRangePickerRoot.js +12 -12
  189. package/dist/DateRangePicker/DateRangePickerRoot.js.map +1 -1
  190. package/dist/DateRangePicker/DateRangePickerTrigger.js +1 -1
  191. package/dist/Dialog/DialogClose.cjs +1 -1
  192. package/dist/Dialog/DialogClose.js +2 -2
  193. package/dist/Dialog/DialogContent.js +1 -1
  194. package/dist/Dialog/DialogContentImpl.cjs +2 -2
  195. package/dist/Dialog/DialogContentImpl.cjs.map +1 -1
  196. package/dist/Dialog/DialogContentImpl.js +3 -3
  197. package/dist/Dialog/DialogContentImpl.js.map +1 -1
  198. package/dist/Dialog/DialogContentModal.js +1 -1
  199. package/dist/Dialog/DialogContentNonModal.js +1 -1
  200. package/dist/Dialog/DialogDescription.js +1 -1
  201. package/dist/Dialog/DialogOverlay.js +1 -1
  202. package/dist/Dialog/DialogOverlayImpl.js +1 -1
  203. package/dist/Dialog/DialogPortal.js +1 -1
  204. package/dist/Dialog/DialogRoot.cjs +2 -2
  205. package/dist/Dialog/DialogRoot.js +2 -2
  206. package/dist/Dialog/DialogTitle.js +1 -1
  207. package/dist/Dialog/DialogTrigger.cjs +3 -3
  208. package/dist/Dialog/DialogTrigger.cjs.map +1 -1
  209. package/dist/Dialog/DialogTrigger.js +4 -4
  210. package/dist/Dialog/DialogTrigger.js.map +1 -1
  211. package/dist/DismissableLayer/DismissableLayer.cjs +1 -1
  212. package/dist/DismissableLayer/DismissableLayer.js +2 -2
  213. package/dist/DismissableLayer/DismissableLayerBranch.js +1 -1
  214. package/dist/DismissableLayer/utils.cjs +1 -0
  215. package/dist/DismissableLayer/utils.cjs.map +1 -1
  216. package/dist/DismissableLayer/utils.js +1 -0
  217. package/dist/DismissableLayer/utils.js.map +1 -1
  218. package/dist/DropdownMenu/DropdownMenuArrow.js +1 -1
  219. package/dist/DropdownMenu/DropdownMenuCheckboxItem.js +1 -1
  220. package/dist/DropdownMenu/DropdownMenuContent.cjs +1 -1
  221. package/dist/DropdownMenu/DropdownMenuContent.cjs.map +1 -1
  222. package/dist/DropdownMenu/DropdownMenuContent.js +2 -2
  223. package/dist/DropdownMenu/DropdownMenuContent.js.map +1 -1
  224. package/dist/DropdownMenu/DropdownMenuGroup.js +1 -1
  225. package/dist/DropdownMenu/DropdownMenuItem.js +1 -1
  226. package/dist/DropdownMenu/DropdownMenuItemIndicator.js +1 -1
  227. package/dist/DropdownMenu/DropdownMenuLabel.js +1 -1
  228. package/dist/DropdownMenu/DropdownMenuPortal.js +1 -1
  229. package/dist/DropdownMenu/DropdownMenuRadioGroup.js +1 -1
  230. package/dist/DropdownMenu/DropdownMenuRadioItem.js +1 -1
  231. package/dist/DropdownMenu/DropdownMenuRoot.cjs +3 -3
  232. package/dist/DropdownMenu/DropdownMenuRoot.js +4 -4
  233. package/dist/DropdownMenu/DropdownMenuSeparator.js +1 -1
  234. package/dist/DropdownMenu/DropdownMenuSub.cjs +2 -2
  235. package/dist/DropdownMenu/DropdownMenuSub.cjs.map +1 -1
  236. package/dist/DropdownMenu/DropdownMenuSub.js +3 -3
  237. package/dist/DropdownMenu/DropdownMenuSub.js.map +1 -1
  238. package/dist/DropdownMenu/DropdownMenuSubContent.js +1 -1
  239. package/dist/DropdownMenu/DropdownMenuSubTrigger.js +1 -1
  240. package/dist/DropdownMenu/DropdownMenuTrigger.cjs +4 -4
  241. package/dist/DropdownMenu/DropdownMenuTrigger.cjs.map +1 -1
  242. package/dist/DropdownMenu/DropdownMenuTrigger.js +5 -5
  243. package/dist/DropdownMenu/DropdownMenuTrigger.js.map +1 -1
  244. package/dist/Editable/EditableArea.cjs +7 -7
  245. package/dist/Editable/EditableArea.js +8 -8
  246. package/dist/Editable/EditableCancelTrigger.cjs +4 -4
  247. package/dist/Editable/EditableCancelTrigger.js +5 -5
  248. package/dist/Editable/EditableEditTrigger.cjs +4 -4
  249. package/dist/Editable/EditableEditTrigger.js +5 -5
  250. package/dist/Editable/EditableInput.cjs +4 -4
  251. package/dist/Editable/EditableInput.js +5 -5
  252. package/dist/Editable/EditablePreview.cjs +4 -4
  253. package/dist/Editable/EditablePreview.js +5 -5
  254. package/dist/Editable/EditableRoot.cjs +2 -2
  255. package/dist/Editable/EditableRoot.js +3 -3
  256. package/dist/Editable/EditableSubmitTrigger.cjs +4 -4
  257. package/dist/Editable/EditableSubmitTrigger.js +5 -5
  258. package/dist/FocusScope/FocusScope.js +1 -1
  259. package/dist/FocusScope/utils.cjs +1 -1
  260. package/dist/FocusScope/utils.cjs.map +1 -1
  261. package/dist/FocusScope/utils.js +1 -1
  262. package/dist/FocusScope/utils.js.map +1 -1
  263. package/dist/HoverCard/HoverCardArrow.js +1 -1
  264. package/dist/HoverCard/HoverCardContent.js +1 -1
  265. package/dist/HoverCard/HoverCardContentImpl.cjs +2 -2
  266. package/dist/HoverCard/HoverCardContentImpl.js +3 -3
  267. package/dist/HoverCard/HoverCardPortal.js +1 -1
  268. package/dist/HoverCard/HoverCardRoot.cjs +3 -3
  269. package/dist/HoverCard/HoverCardRoot.cjs.map +1 -1
  270. package/dist/HoverCard/HoverCardRoot.js +4 -4
  271. package/dist/HoverCard/HoverCardRoot.js.map +1 -1
  272. package/dist/HoverCard/HoverCardTrigger.js +1 -1
  273. package/dist/HoverCard/utils.cjs +1 -1
  274. package/dist/HoverCard/utils.cjs.map +1 -1
  275. package/dist/HoverCard/utils.js +1 -1
  276. package/dist/HoverCard/utils.js.map +1 -1
  277. package/dist/Label/Label.js +1 -1
  278. package/dist/Listbox/ListboxContent.cjs +2 -2
  279. package/dist/Listbox/ListboxContent.js +3 -3
  280. package/dist/Listbox/ListboxFilter.cjs +8 -5
  281. package/dist/Listbox/ListboxFilter.cjs.map +1 -1
  282. package/dist/Listbox/ListboxFilter.js +9 -6
  283. package/dist/Listbox/ListboxFilter.js.map +1 -1
  284. package/dist/Listbox/ListboxGroup.cjs +2 -2
  285. package/dist/Listbox/ListboxGroup.cjs.map +1 -1
  286. package/dist/Listbox/ListboxGroup.js +3 -3
  287. package/dist/Listbox/ListboxGroup.js.map +1 -1
  288. package/dist/Listbox/ListboxGroupLabel.js +1 -1
  289. package/dist/Listbox/ListboxItem.cjs +6 -6
  290. package/dist/Listbox/ListboxItem.cjs.map +1 -1
  291. package/dist/Listbox/ListboxItem.js +7 -7
  292. package/dist/Listbox/ListboxItem.js.map +1 -1
  293. package/dist/Listbox/ListboxItemIndicator.js +1 -1
  294. package/dist/Listbox/ListboxRoot.cjs +6 -6
  295. package/dist/Listbox/ListboxRoot.cjs.map +1 -1
  296. package/dist/Listbox/ListboxRoot.js +7 -7
  297. package/dist/Listbox/ListboxRoot.js.map +1 -1
  298. package/dist/Listbox/ListboxVirtualizer.js +1 -1
  299. package/dist/Listbox/utils.cjs +2 -2
  300. package/dist/Listbox/utils.cjs.map +1 -1
  301. package/dist/Listbox/utils.js +2 -2
  302. package/dist/Listbox/utils.js.map +1 -1
  303. package/dist/Menu/MenuAnchor.js +1 -1
  304. package/dist/Menu/MenuArrow.js +1 -1
  305. package/dist/Menu/MenuCheckboxItem.js +1 -1
  306. package/dist/Menu/MenuContent.js +1 -1
  307. package/dist/Menu/MenuContentImpl.cjs +2 -2
  308. package/dist/Menu/MenuContentImpl.js +4 -4
  309. package/dist/Menu/MenuGroup.js +1 -1
  310. package/dist/Menu/MenuItem.js +1 -1
  311. package/dist/Menu/MenuItemImpl.cjs +3 -3
  312. package/dist/Menu/MenuItemImpl.js +4 -4
  313. package/dist/Menu/MenuItemIndicator.cjs +1 -1
  314. package/dist/Menu/MenuItemIndicator.js +2 -2
  315. package/dist/Menu/MenuLabel.js +1 -1
  316. package/dist/Menu/MenuPortal.js +1 -1
  317. package/dist/Menu/MenuRadioGroup.js +1 -1
  318. package/dist/Menu/MenuRadioItem.js +1 -1
  319. package/dist/Menu/MenuRoot.js +1 -1
  320. package/dist/Menu/MenuRootContentModal.js +1 -1
  321. package/dist/Menu/MenuRootContentNonModal.js +1 -1
  322. package/dist/Menu/MenuSeparator.js +1 -1
  323. package/dist/Menu/MenuSub.cjs +2 -2
  324. package/dist/Menu/MenuSub.js +3 -3
  325. package/dist/Menu/MenuSubContent.cjs +1 -1
  326. package/dist/Menu/MenuSubContent.cjs.map +1 -1
  327. package/dist/Menu/MenuSubContent.js +2 -2
  328. package/dist/Menu/MenuSubContent.js.map +1 -1
  329. package/dist/Menu/MenuSubTrigger.cjs +2 -2
  330. package/dist/Menu/MenuSubTrigger.cjs.map +1 -1
  331. package/dist/Menu/MenuSubTrigger.js +3 -3
  332. package/dist/Menu/MenuSubTrigger.js.map +1 -1
  333. package/dist/Menubar/MenubarArrow.js +1 -1
  334. package/dist/Menubar/MenubarCheckboxItem.js +1 -1
  335. package/dist/Menubar/MenubarContent.cjs +1 -1
  336. package/dist/Menubar/MenubarContent.cjs.map +1 -1
  337. package/dist/Menubar/MenubarContent.js +2 -2
  338. package/dist/Menubar/MenubarContent.js.map +1 -1
  339. package/dist/Menubar/MenubarGroup.js +1 -1
  340. package/dist/Menubar/MenubarItem.js +1 -1
  341. package/dist/Menubar/MenubarItemIndicator.js +1 -1
  342. package/dist/Menubar/MenubarLabel.js +1 -1
  343. package/dist/Menubar/MenubarMenu.cjs +1 -1
  344. package/dist/Menubar/MenubarMenu.js +2 -2
  345. package/dist/Menubar/MenubarPortal.js +1 -1
  346. package/dist/Menubar/MenubarRadioGroup.js +1 -1
  347. package/dist/Menubar/MenubarRadioItem.js +1 -1
  348. package/dist/Menubar/MenubarRoot.cjs +3 -3
  349. package/dist/Menubar/MenubarRoot.js +4 -4
  350. package/dist/Menubar/MenubarSeparator.js +1 -1
  351. package/dist/Menubar/MenubarSub.cjs +2 -2
  352. package/dist/Menubar/MenubarSub.js +3 -3
  353. package/dist/Menubar/MenubarSubContent.js +1 -1
  354. package/dist/Menubar/MenubarSubTrigger.js +1 -1
  355. package/dist/Menubar/MenubarTrigger.cjs +5 -5
  356. package/dist/Menubar/MenubarTrigger.js +6 -6
  357. package/dist/NavigationMenu/NavigationMenuContent.cjs +1 -1
  358. package/dist/NavigationMenu/NavigationMenuContent.js +2 -2
  359. package/dist/NavigationMenu/NavigationMenuContentImpl.cjs +1 -1
  360. package/dist/NavigationMenu/NavigationMenuContentImpl.cjs.map +1 -1
  361. package/dist/NavigationMenu/NavigationMenuContentImpl.js +2 -2
  362. package/dist/NavigationMenu/NavigationMenuContentImpl.js.map +1 -1
  363. package/dist/NavigationMenu/NavigationMenuIndicator.js +1 -1
  364. package/dist/NavigationMenu/NavigationMenuItem.cjs +2 -2
  365. package/dist/NavigationMenu/NavigationMenuItem.cjs.map +1 -1
  366. package/dist/NavigationMenu/NavigationMenuItem.js +3 -3
  367. package/dist/NavigationMenu/NavigationMenuItem.js.map +1 -1
  368. package/dist/NavigationMenu/NavigationMenuLink.cjs +2 -2
  369. package/dist/NavigationMenu/NavigationMenuLink.js +3 -3
  370. package/dist/NavigationMenu/NavigationMenuList.js +1 -1
  371. package/dist/NavigationMenu/NavigationMenuRoot.cjs +4 -4
  372. package/dist/NavigationMenu/NavigationMenuRoot.cjs.map +1 -1
  373. package/dist/NavigationMenu/NavigationMenuRoot.js +5 -5
  374. package/dist/NavigationMenu/NavigationMenuRoot.js.map +1 -1
  375. package/dist/NavigationMenu/NavigationMenuSub.cjs +12 -2
  376. package/dist/NavigationMenu/NavigationMenuSub.cjs.map +1 -1
  377. package/dist/NavigationMenu/NavigationMenuSub.js +13 -3
  378. package/dist/NavigationMenu/NavigationMenuSub.js.map +1 -1
  379. package/dist/NavigationMenu/NavigationMenuTrigger.cjs +2 -2
  380. package/dist/NavigationMenu/NavigationMenuTrigger.cjs.map +1 -1
  381. package/dist/NavigationMenu/NavigationMenuTrigger.js +3 -3
  382. package/dist/NavigationMenu/NavigationMenuTrigger.js.map +1 -1
  383. package/dist/NavigationMenu/NavigationMenuViewport.cjs +8 -8
  384. package/dist/NavigationMenu/NavigationMenuViewport.cjs.map +1 -1
  385. package/dist/NavigationMenu/NavigationMenuViewport.js +10 -10
  386. package/dist/NavigationMenu/NavigationMenuViewport.js.map +1 -1
  387. package/dist/NavigationMenu/utils.cjs +1 -1
  388. package/dist/NavigationMenu/utils.cjs.map +1 -1
  389. package/dist/NavigationMenu/utils.js +1 -1
  390. package/dist/NavigationMenu/utils.js.map +1 -1
  391. package/dist/NumberField/NumberFieldDecrement.cjs +5 -5
  392. package/dist/NumberField/NumberFieldDecrement.js +6 -6
  393. package/dist/NumberField/NumberFieldIncrement.cjs +5 -5
  394. package/dist/NumberField/NumberFieldIncrement.js +6 -6
  395. package/dist/NumberField/NumberFieldInput.cjs +3 -3
  396. package/dist/NumberField/NumberFieldInput.js +4 -4
  397. package/dist/NumberField/NumberFieldRoot.cjs +7 -7
  398. package/dist/NumberField/NumberFieldRoot.cjs.map +1 -1
  399. package/dist/NumberField/NumberFieldRoot.js +8 -8
  400. package/dist/NumberField/NumberFieldRoot.js.map +1 -1
  401. package/dist/NumberField/utils.js +1 -1
  402. package/dist/Pagination/PaginationEllipsis.js +1 -1
  403. package/dist/Pagination/PaginationFirst.cjs +1 -1
  404. package/dist/Pagination/PaginationFirst.js +2 -2
  405. package/dist/Pagination/PaginationLast.cjs +1 -1
  406. package/dist/Pagination/PaginationLast.js +2 -2
  407. package/dist/Pagination/PaginationList.js +1 -1
  408. package/dist/Pagination/PaginationListItem.cjs +3 -3
  409. package/dist/Pagination/PaginationListItem.js +4 -4
  410. package/dist/Pagination/PaginationNext.cjs +1 -1
  411. package/dist/Pagination/PaginationNext.js +2 -2
  412. package/dist/Pagination/PaginationPrev.cjs +1 -1
  413. package/dist/Pagination/PaginationPrev.js +2 -2
  414. package/dist/Pagination/PaginationRoot.cjs +2 -2
  415. package/dist/Pagination/PaginationRoot.js +3 -3
  416. package/dist/PinInput/PinInputInput.cjs +4 -4
  417. package/dist/PinInput/PinInputInput.cjs.map +1 -1
  418. package/dist/PinInput/PinInputInput.js +5 -5
  419. package/dist/PinInput/PinInputInput.js.map +1 -1
  420. package/dist/PinInput/PinInputRoot.cjs +4 -4
  421. package/dist/PinInput/PinInputRoot.js +5 -5
  422. package/dist/Popover/PopoverAnchor.js +1 -1
  423. package/dist/Popover/PopoverArrow.js +1 -1
  424. package/dist/Popover/PopoverClose.cjs +1 -1
  425. package/dist/Popover/PopoverClose.js +2 -2
  426. package/dist/Popover/PopoverContent.cjs +1 -1
  427. package/dist/Popover/PopoverContent.cjs.map +1 -1
  428. package/dist/Popover/PopoverContent.js +2 -2
  429. package/dist/Popover/PopoverContent.js.map +1 -1
  430. package/dist/Popover/PopoverContentImpl.js +1 -1
  431. package/dist/Popover/PopoverContentModal.js +1 -1
  432. package/dist/Popover/PopoverContentNonModal.js +1 -1
  433. package/dist/Popover/PopoverPortal.js +1 -1
  434. package/dist/Popover/PopoverRoot.cjs +2 -2
  435. package/dist/Popover/PopoverRoot.js +3 -3
  436. package/dist/Popover/PopoverTrigger.cjs +2 -2
  437. package/dist/Popover/PopoverTrigger.cjs.map +1 -1
  438. package/dist/Popover/PopoverTrigger.js +3 -3
  439. package/dist/Popover/PopoverTrigger.js.map +1 -1
  440. package/dist/Popper/PopperAnchor.js +1 -1
  441. package/dist/Popper/PopperArrow.cjs +4 -4
  442. package/dist/Popper/PopperArrow.js +5 -5
  443. package/dist/Popper/PopperContent.cjs +3 -3
  444. package/dist/Popper/PopperContent.cjs.map +1 -1
  445. package/dist/Popper/PopperContent.js +5 -5
  446. package/dist/Popper/PopperContent.js.map +1 -1
  447. package/dist/Presence/usePresence.cjs +2 -2
  448. package/dist/Presence/usePresence.cjs.map +1 -1
  449. package/dist/Presence/usePresence.js +2 -2
  450. package/dist/Presence/usePresence.js.map +1 -1
  451. package/dist/Primitive/Primitive.cjs +1 -1
  452. package/dist/Primitive/Primitive.cjs.map +1 -1
  453. package/dist/Primitive/Primitive.js +1 -1
  454. package/dist/Primitive/Primitive.js.map +1 -1
  455. package/dist/Progress/ProgressIndicator.cjs +1 -1
  456. package/dist/Progress/ProgressIndicator.js +2 -2
  457. package/dist/Progress/ProgressRoot.cjs +5 -5
  458. package/dist/Progress/ProgressRoot.js +6 -6
  459. package/dist/RadioGroup/Radio.cjs +6 -6
  460. package/dist/RadioGroup/Radio.cjs.map +1 -1
  461. package/dist/RadioGroup/Radio.js +7 -7
  462. package/dist/RadioGroup/Radio.js.map +1 -1
  463. package/dist/RadioGroup/RadioGroupIndicator.cjs +1 -1
  464. package/dist/RadioGroup/RadioGroupIndicator.js +2 -2
  465. package/dist/RadioGroup/RadioGroupItem.cjs +2 -2
  466. package/dist/RadioGroup/RadioGroupItem.js +3 -3
  467. package/dist/RadioGroup/RadioGroupRoot.cjs +5 -5
  468. package/dist/RadioGroup/RadioGroupRoot.js +6 -6
  469. package/dist/RangeCalendar/RangeCalendarCell.cjs +2 -2
  470. package/dist/RangeCalendar/RangeCalendarCell.js +3 -3
  471. package/dist/RangeCalendar/RangeCalendarCellTrigger.cjs +84 -58
  472. package/dist/RangeCalendar/RangeCalendarCellTrigger.cjs.map +1 -1
  473. package/dist/RangeCalendar/RangeCalendarCellTrigger.js +85 -59
  474. package/dist/RangeCalendar/RangeCalendarCellTrigger.js.map +1 -1
  475. package/dist/RangeCalendar/RangeCalendarGrid.cjs +2 -2
  476. package/dist/RangeCalendar/RangeCalendarGrid.cjs.map +1 -1
  477. package/dist/RangeCalendar/RangeCalendarGrid.js +3 -3
  478. package/dist/RangeCalendar/RangeCalendarGrid.js.map +1 -1
  479. package/dist/RangeCalendar/RangeCalendarGridBody.js +1 -1
  480. package/dist/RangeCalendar/RangeCalendarGridHead.js +1 -1
  481. package/dist/RangeCalendar/RangeCalendarGridRow.js +1 -1
  482. package/dist/RangeCalendar/RangeCalendarHeadCell.js +1 -1
  483. package/dist/RangeCalendar/RangeCalendarHeader.js +1 -1
  484. package/dist/RangeCalendar/RangeCalendarHeading.cjs +1 -1
  485. package/dist/RangeCalendar/RangeCalendarHeading.js +2 -2
  486. package/dist/RangeCalendar/RangeCalendarNext.cjs +3 -3
  487. package/dist/RangeCalendar/RangeCalendarNext.js +4 -4
  488. package/dist/RangeCalendar/RangeCalendarPrev.cjs +3 -3
  489. package/dist/RangeCalendar/RangeCalendarPrev.js +4 -4
  490. package/dist/RangeCalendar/RangeCalendarRoot.cjs +18 -16
  491. package/dist/RangeCalendar/RangeCalendarRoot.cjs.map +1 -1
  492. package/dist/RangeCalendar/RangeCalendarRoot.js +19 -17
  493. package/dist/RangeCalendar/RangeCalendarRoot.js.map +1 -1
  494. package/dist/RovingFocus/RovingFocusGroup.cjs +4 -4
  495. package/dist/RovingFocus/RovingFocusGroup.cjs.map +1 -1
  496. package/dist/RovingFocus/RovingFocusGroup.js +5 -5
  497. package/dist/RovingFocus/RovingFocusGroup.js.map +1 -1
  498. package/dist/RovingFocus/RovingFocusItem.cjs +4 -4
  499. package/dist/RovingFocus/RovingFocusItem.cjs.map +1 -1
  500. package/dist/RovingFocus/RovingFocusItem.js +5 -5
  501. package/dist/RovingFocus/RovingFocusItem.js.map +1 -1
  502. package/dist/RovingFocus/utils.cjs +2 -2
  503. package/dist/RovingFocus/utils.cjs.map +1 -1
  504. package/dist/RovingFocus/utils.js +2 -2
  505. package/dist/RovingFocus/utils.js.map +1 -1
  506. package/dist/ScrollArea/ScrollAreaCorner.js +1 -1
  507. package/dist/ScrollArea/ScrollAreaCornerImpl.cjs +2 -2
  508. package/dist/ScrollArea/ScrollAreaCornerImpl.js +3 -3
  509. package/dist/ScrollArea/ScrollAreaRoot.cjs +4 -4
  510. package/dist/ScrollArea/ScrollAreaRoot.cjs.map +1 -1
  511. package/dist/ScrollArea/ScrollAreaRoot.js +5 -5
  512. package/dist/ScrollArea/ScrollAreaRoot.js.map +1 -1
  513. package/dist/ScrollArea/ScrollAreaScrollbar.cjs +1 -1
  514. package/dist/ScrollArea/ScrollAreaScrollbar.js +2 -2
  515. package/dist/ScrollArea/ScrollAreaScrollbarAuto.js +1 -1
  516. package/dist/ScrollArea/ScrollAreaScrollbarHover.js +1 -1
  517. package/dist/ScrollArea/ScrollAreaScrollbarImpl.cjs +1 -1
  518. package/dist/ScrollArea/ScrollAreaScrollbarImpl.cjs.map +1 -1
  519. package/dist/ScrollArea/ScrollAreaScrollbarImpl.js +2 -2
  520. package/dist/ScrollArea/ScrollAreaScrollbarImpl.js.map +1 -1
  521. package/dist/ScrollArea/ScrollAreaScrollbarScroll.js +1 -1
  522. package/dist/ScrollArea/ScrollAreaScrollbarVisible.js +1 -1
  523. package/dist/ScrollArea/ScrollAreaScrollbarX.cjs +1 -1
  524. package/dist/ScrollArea/ScrollAreaScrollbarX.js +2 -2
  525. package/dist/ScrollArea/ScrollAreaScrollbarY.cjs +3 -3
  526. package/dist/ScrollArea/ScrollAreaScrollbarY.js +4 -4
  527. package/dist/ScrollArea/ScrollAreaThumb.js +1 -1
  528. package/dist/ScrollArea/ScrollAreaViewport.cjs +1 -1
  529. package/dist/ScrollArea/ScrollAreaViewport.js +2 -2
  530. package/dist/Select/BubbleSelect.cjs +2 -2
  531. package/dist/Select/BubbleSelect.cjs.map +1 -1
  532. package/dist/Select/BubbleSelect.js +3 -3
  533. package/dist/Select/BubbleSelect.js.map +1 -1
  534. package/dist/Select/SelectArrow.js +1 -1
  535. package/dist/Select/SelectContent.js +1 -1
  536. package/dist/Select/SelectContentImpl.cjs +17 -7
  537. package/dist/Select/SelectContentImpl.cjs.map +1 -1
  538. package/dist/Select/SelectContentImpl.js +18 -8
  539. package/dist/Select/SelectContentImpl.js.map +1 -1
  540. package/dist/Select/SelectGroup.cjs +2 -2
  541. package/dist/Select/SelectGroup.cjs.map +1 -1
  542. package/dist/Select/SelectGroup.js +3 -3
  543. package/dist/Select/SelectGroup.js.map +1 -1
  544. package/dist/Select/SelectIcon.js +1 -1
  545. package/dist/Select/SelectItem.cjs +6 -6
  546. package/dist/Select/SelectItem.cjs.map +1 -1
  547. package/dist/Select/SelectItem.js +7 -7
  548. package/dist/Select/SelectItem.js.map +1 -1
  549. package/dist/Select/SelectItemAlignedPosition.cjs +1 -1
  550. package/dist/Select/SelectItemAlignedPosition.js +2 -2
  551. package/dist/Select/SelectItemIndicator.js +1 -1
  552. package/dist/Select/SelectItemText.js +1 -1
  553. package/dist/Select/SelectLabel.js +1 -1
  554. package/dist/Select/SelectPopperPosition.js +1 -1
  555. package/dist/Select/SelectPortal.js +1 -1
  556. package/dist/Select/SelectRoot.cjs +6 -6
  557. package/dist/Select/SelectRoot.cjs.map +1 -1
  558. package/dist/Select/SelectRoot.js +7 -7
  559. package/dist/Select/SelectRoot.js.map +1 -1
  560. package/dist/Select/SelectScrollButtonImpl.js +1 -1
  561. package/dist/Select/SelectScrollDownButton.cjs +1 -1
  562. package/dist/Select/SelectScrollDownButton.cjs.map +1 -1
  563. package/dist/Select/SelectScrollDownButton.js +2 -2
  564. package/dist/Select/SelectScrollDownButton.js.map +1 -1
  565. package/dist/Select/SelectScrollUpButton.cjs +1 -1
  566. package/dist/Select/SelectScrollUpButton.cjs.map +1 -1
  567. package/dist/Select/SelectScrollUpButton.js +2 -2
  568. package/dist/Select/SelectScrollUpButton.js.map +1 -1
  569. package/dist/Select/SelectSeparator.js +1 -1
  570. package/dist/Select/SelectTrigger.cjs +4 -4
  571. package/dist/Select/SelectTrigger.cjs.map +1 -1
  572. package/dist/Select/SelectTrigger.js +5 -5
  573. package/dist/Select/SelectTrigger.js.map +1 -1
  574. package/dist/Select/SelectValue.cjs +1 -1
  575. package/dist/Select/SelectValue.js +2 -2
  576. package/dist/Select/SelectViewport.cjs +1 -1
  577. package/dist/Select/SelectViewport.cjs.map +1 -1
  578. package/dist/Select/SelectViewport.js +2 -2
  579. package/dist/Select/SelectViewport.js.map +1 -1
  580. package/dist/Select/utils.cjs +2 -2
  581. package/dist/Select/utils.cjs.map +1 -1
  582. package/dist/Select/utils.js +2 -2
  583. package/dist/Select/utils.js.map +1 -1
  584. package/dist/Separator/Separator.js +1 -1
  585. package/dist/Slider/SliderHorizontal.cjs +2 -2
  586. package/dist/Slider/SliderHorizontal.js +3 -3
  587. package/dist/Slider/SliderImpl.js +1 -1
  588. package/dist/Slider/SliderRange.cjs +1 -1
  589. package/dist/Slider/SliderRange.js +2 -2
  590. package/dist/Slider/SliderRoot.cjs +4 -4
  591. package/dist/Slider/SliderRoot.cjs.map +1 -1
  592. package/dist/Slider/SliderRoot.js +5 -5
  593. package/dist/Slider/SliderRoot.js.map +1 -1
  594. package/dist/Slider/SliderThumb.cjs +1 -1
  595. package/dist/Slider/SliderThumb.cjs.map +1 -1
  596. package/dist/Slider/SliderThumb.js +2 -2
  597. package/dist/Slider/SliderThumb.js.map +1 -1
  598. package/dist/Slider/SliderThumbImpl.cjs +4 -4
  599. package/dist/Slider/SliderThumbImpl.cjs.map +1 -1
  600. package/dist/Slider/SliderThumbImpl.js +5 -5
  601. package/dist/Slider/SliderThumbImpl.js.map +1 -1
  602. package/dist/Slider/SliderTrack.cjs +1 -1
  603. package/dist/Slider/SliderTrack.js +2 -2
  604. package/dist/Slider/SliderVertical.cjs +2 -2
  605. package/dist/Slider/SliderVertical.js +3 -3
  606. package/dist/Slider/utils.cjs +1 -1
  607. package/dist/Slider/utils.cjs.map +1 -1
  608. package/dist/Slider/utils.js +1 -1
  609. package/dist/Slider/utils.js.map +1 -1
  610. package/dist/Splitter/SplitterGroup.cjs +2 -2
  611. package/dist/Splitter/SplitterGroup.cjs.map +1 -1
  612. package/dist/Splitter/SplitterGroup.js +3 -3
  613. package/dist/Splitter/SplitterGroup.js.map +1 -1
  614. package/dist/Splitter/SplitterPanel.cjs +3 -3
  615. package/dist/Splitter/SplitterPanel.cjs.map +1 -1
  616. package/dist/Splitter/SplitterPanel.js +4 -4
  617. package/dist/Splitter/SplitterPanel.js.map +1 -1
  618. package/dist/Splitter/SplitterResizeHandle.cjs +2 -2
  619. package/dist/Splitter/SplitterResizeHandle.js +3 -3
  620. package/dist/Stepper/StepperDescription.js +1 -1
  621. package/dist/Stepper/StepperIndicator.js +1 -1
  622. package/dist/Stepper/StepperItem.cjs +6 -6
  623. package/dist/Stepper/StepperItem.cjs.map +1 -1
  624. package/dist/Stepper/StepperItem.js +7 -7
  625. package/dist/Stepper/StepperItem.js.map +1 -1
  626. package/dist/Stepper/StepperRoot.cjs +3 -3
  627. package/dist/Stepper/StepperRoot.js +4 -4
  628. package/dist/Stepper/StepperSeparator.js +1 -1
  629. package/dist/Stepper/StepperTitle.js +1 -1
  630. package/dist/Stepper/StepperTrigger.cjs +5 -5
  631. package/dist/Stepper/StepperTrigger.cjs.map +1 -1
  632. package/dist/Stepper/StepperTrigger.js +6 -6
  633. package/dist/Stepper/StepperTrigger.js.map +1 -1
  634. package/dist/Switch/SwitchRoot.cjs +6 -6
  635. package/dist/Switch/SwitchRoot.cjs.map +1 -1
  636. package/dist/Switch/SwitchRoot.js +7 -7
  637. package/dist/Switch/SwitchRoot.js.map +1 -1
  638. package/dist/Switch/SwitchThumb.cjs +1 -1
  639. package/dist/Switch/SwitchThumb.js +2 -2
  640. package/dist/Tabs/TabsContent.cjs +1 -1
  641. package/dist/Tabs/TabsContent.js +2 -2
  642. package/dist/Tabs/TabsIndicator.js +1 -1
  643. package/dist/Tabs/TabsList.cjs +1 -1
  644. package/dist/Tabs/TabsList.js +2 -2
  645. package/dist/Tabs/TabsRoot.cjs +3 -3
  646. package/dist/Tabs/TabsRoot.cjs.map +1 -1
  647. package/dist/Tabs/TabsRoot.js +4 -4
  648. package/dist/Tabs/TabsRoot.js.map +1 -1
  649. package/dist/Tabs/TabsTrigger.cjs +3 -3
  650. package/dist/Tabs/TabsTrigger.js +4 -4
  651. package/dist/TagsInput/TagsInputClear.cjs +2 -2
  652. package/dist/TagsInput/TagsInputClear.js +3 -3
  653. package/dist/TagsInput/TagsInputInput.cjs +1 -1
  654. package/dist/TagsInput/TagsInputInput.js +2 -2
  655. package/dist/TagsInput/TagsInputItem.cjs +2 -2
  656. package/dist/TagsInput/TagsInputItem.js +3 -3
  657. package/dist/TagsInput/TagsInputItemDelete.cjs +4 -3
  658. package/dist/TagsInput/TagsInputItemDelete.cjs.map +1 -1
  659. package/dist/TagsInput/TagsInputItemDelete.js +5 -4
  660. package/dist/TagsInput/TagsInputItemDelete.js.map +1 -1
  661. package/dist/TagsInput/TagsInputItemText.cjs +1 -1
  662. package/dist/TagsInput/TagsInputItemText.cjs.map +1 -1
  663. package/dist/TagsInput/TagsInputItemText.js +2 -2
  664. package/dist/TagsInput/TagsInputItemText.js.map +1 -1
  665. package/dist/TagsInput/TagsInputRoot.cjs +7 -7
  666. package/dist/TagsInput/TagsInputRoot.cjs.map +1 -1
  667. package/dist/TagsInput/TagsInputRoot.js +8 -8
  668. package/dist/TagsInput/TagsInputRoot.js.map +1 -1
  669. package/dist/Teleport/Teleport.js +1 -1
  670. package/dist/TimeField/TimeFieldInput.cjs +5 -5
  671. package/dist/TimeField/TimeFieldInput.js +6 -6
  672. package/dist/TimeField/TimeFieldRoot.cjs +17 -14
  673. package/dist/TimeField/TimeFieldRoot.cjs.map +1 -1
  674. package/dist/TimeField/TimeFieldRoot.js +19 -16
  675. package/dist/TimeField/TimeFieldRoot.js.map +1 -1
  676. package/dist/Toast/FocusProxy.js +1 -1
  677. package/dist/Toast/ToastAction.js +1 -1
  678. package/dist/Toast/ToastAnnounce.js +1 -1
  679. package/dist/Toast/ToastAnnounceExclude.cjs +1 -1
  680. package/dist/Toast/ToastAnnounceExclude.js +2 -2
  681. package/dist/Toast/ToastClose.cjs +3 -3
  682. package/dist/Toast/ToastClose.cjs.map +1 -1
  683. package/dist/Toast/ToastClose.js +4 -4
  684. package/dist/Toast/ToastClose.js.map +1 -1
  685. package/dist/Toast/ToastDescription.js +1 -1
  686. package/dist/Toast/ToastPortal.js +1 -1
  687. package/dist/Toast/ToastRoot.cjs +5 -2
  688. package/dist/Toast/ToastRoot.cjs.map +1 -1
  689. package/dist/Toast/ToastRoot.js +6 -3
  690. package/dist/Toast/ToastRoot.js.map +1 -1
  691. package/dist/Toast/ToastRootImpl.cjs +7 -4
  692. package/dist/Toast/ToastRootImpl.cjs.map +1 -1
  693. package/dist/Toast/ToastRootImpl.js +9 -6
  694. package/dist/Toast/ToastRootImpl.js.map +1 -1
  695. package/dist/Toast/ToastTitle.js +1 -1
  696. package/dist/Toast/ToastViewport.cjs +3 -3
  697. package/dist/Toast/ToastViewport.js +4 -4
  698. package/dist/Toast/utils.js +1 -1
  699. package/dist/Toggle/Toggle.cjs +4 -4
  700. package/dist/Toggle/Toggle.js +5 -5
  701. package/dist/ToggleGroup/ToggleGroupItem.cjs +1 -1
  702. package/dist/ToggleGroup/ToggleGroupItem.js +2 -2
  703. package/dist/ToggleGroup/ToggleGroupRoot.cjs +4 -4
  704. package/dist/ToggleGroup/ToggleGroupRoot.js +5 -5
  705. package/dist/Toolbar/ToolbarButton.cjs +2 -2
  706. package/dist/Toolbar/ToolbarButton.js +3 -3
  707. package/dist/Toolbar/ToolbarLink.cjs +1 -1
  708. package/dist/Toolbar/ToolbarLink.js +2 -2
  709. package/dist/Toolbar/ToolbarRoot.cjs +2 -2
  710. package/dist/Toolbar/ToolbarRoot.js +3 -3
  711. package/dist/Toolbar/ToolbarSeparator.js +1 -1
  712. package/dist/Toolbar/ToolbarToggleGroup.js +1 -1
  713. package/dist/Toolbar/ToolbarToggleItem.js +1 -1
  714. package/dist/Tooltip/TooltipArrow.js +1 -1
  715. package/dist/Tooltip/TooltipContent.js +1 -1
  716. package/dist/Tooltip/TooltipContentHoverable.js +1 -1
  717. package/dist/Tooltip/TooltipContentImpl.js +1 -1
  718. package/dist/Tooltip/TooltipPortal.js +1 -1
  719. package/dist/Tooltip/TooltipProvider.cjs +1 -1
  720. package/dist/Tooltip/TooltipProvider.js +1 -1
  721. package/dist/Tooltip/TooltipRoot.cjs +8 -8
  722. package/dist/Tooltip/TooltipRoot.js +9 -9
  723. package/dist/Tooltip/TooltipTrigger.cjs +2 -2
  724. package/dist/Tooltip/TooltipTrigger.cjs.map +1 -1
  725. package/dist/Tooltip/TooltipTrigger.js +3 -3
  726. package/dist/Tooltip/TooltipTrigger.js.map +1 -1
  727. package/dist/Tree/TreeItem.cjs +5 -5
  728. package/dist/Tree/TreeItem.cjs.map +1 -1
  729. package/dist/Tree/TreeItem.js +6 -6
  730. package/dist/Tree/TreeItem.js.map +1 -1
  731. package/dist/Tree/TreeRoot.cjs +8 -8
  732. package/dist/Tree/TreeRoot.cjs.map +1 -1
  733. package/dist/Tree/TreeRoot.js +9 -9
  734. package/dist/Tree/TreeRoot.js.map +1 -1
  735. package/dist/Tree/TreeVirtualizer.js +1 -1
  736. package/dist/Viewport/Viewport.js +1 -1
  737. package/dist/VisuallyHidden/VisuallyHidden.cjs +3 -3
  738. package/dist/VisuallyHidden/VisuallyHidden.js +4 -4
  739. package/dist/VisuallyHidden/VisuallyHiddenInput.cjs +9 -3
  740. package/dist/VisuallyHidden/VisuallyHiddenInput.cjs.map +1 -1
  741. package/dist/VisuallyHidden/VisuallyHiddenInput.js +10 -4
  742. package/dist/VisuallyHidden/VisuallyHiddenInput.js.map +1 -1
  743. package/dist/VisuallyHidden/VisuallyHiddenInputBubble.cjs +1 -1
  744. package/dist/VisuallyHidden/VisuallyHiddenInputBubble.js +2 -2
  745. package/dist/component/Arrow.cjs +2 -2
  746. package/dist/component/Arrow.js +3 -3
  747. package/dist/component/BaseSeparator.cjs +1 -1
  748. package/dist/component/BaseSeparator.js +2 -2
  749. package/dist/constant/components.cjs +4 -0
  750. package/dist/constant/components.cjs.map +1 -1
  751. package/dist/constant/components.js +4 -0
  752. package/dist/constant/components.js.map +1 -1
  753. package/dist/date/comparators.cjs +1 -1
  754. package/dist/date/comparators.cjs.map +1 -1
  755. package/dist/date/comparators.js +2 -2
  756. package/dist/date/comparators.js.map +1 -1
  757. package/dist/date/parser.cjs +2 -2
  758. package/dist/date/parser.js +3 -3
  759. package/dist/date/useDateField.cjs +9 -9
  760. package/dist/date/useDateField.cjs.map +1 -1
  761. package/dist/date/useDateField.js +10 -10
  762. package/dist/date/useDateField.js.map +1 -1
  763. package/dist/date/utils.cjs +2 -2
  764. package/dist/date/utils.cjs.map +1 -1
  765. package/dist/date/utils.js +2 -2
  766. package/dist/date/utils.js.map +1 -1
  767. package/dist/index.cjs +91 -87
  768. package/dist/index.cjs.map +1 -1
  769. package/dist/index.d.ts +75 -12
  770. package/dist/index.js +43 -41
  771. package/dist/index.js.map +1 -1
  772. package/dist/shared/nullish.cjs +1 -1
  773. package/dist/shared/nullish.cjs.map +1 -1
  774. package/dist/shared/nullish.js +1 -1
  775. package/dist/shared/nullish.js.map +1 -1
  776. package/dist/shared/useBodyScrollLock.cjs +2 -2
  777. package/dist/shared/useBodyScrollLock.cjs.map +1 -1
  778. package/dist/shared/useBodyScrollLock.js +4 -4
  779. package/dist/shared/useBodyScrollLock.js.map +1 -1
  780. package/dist/shared/useDateFormatter.js +2 -2
  781. package/dist/shared/useForwardProps.cjs +2 -2
  782. package/dist/shared/useForwardProps.cjs.map +1 -1
  783. package/dist/shared/useForwardProps.js +2 -2
  784. package/dist/shared/useForwardProps.js.map +1 -1
  785. package/dist/shared/useGraceArea.cjs +1 -1
  786. package/dist/shared/useGraceArea.cjs.map +1 -1
  787. package/dist/shared/useGraceArea.js +1 -1
  788. package/dist/shared/useGraceArea.js.map +1 -1
  789. package/dist/shared/useId.cjs +1 -1
  790. package/dist/shared/useId.cjs.map +1 -1
  791. package/dist/shared/useId.js +1 -1
  792. package/dist/shared/useId.js.map +1 -1
  793. package/dist/shared/useSelectionBehavior.cjs +1 -1
  794. package/dist/shared/useSelectionBehavior.cjs.map +1 -1
  795. package/dist/shared/useSelectionBehavior.js +1 -1
  796. package/dist/shared/useSelectionBehavior.js.map +1 -1
  797. package/dist/shared/useSingleOrMultipleValue.cjs +5 -5
  798. package/dist/shared/useSingleOrMultipleValue.cjs.map +1 -1
  799. package/dist/shared/useSingleOrMultipleValue.js +5 -5
  800. package/dist/shared/useSingleOrMultipleValue.js.map +1 -1
  801. package/dist/shared/useSize.cjs +1 -1
  802. package/dist/shared/useSize.cjs.map +1 -1
  803. package/dist/shared/useSize.js +1 -1
  804. package/dist/shared/useSize.js.map +1 -1
  805. package/dist/shared/useTypeahead.cjs +1 -1
  806. package/dist/shared/useTypeahead.cjs.map +1 -1
  807. package/dist/shared/useTypeahead.js +1 -1
  808. package/dist/shared/useTypeahead.js.map +1 -1
  809. package/dist/utils/layout.cjs +1 -1
  810. package/dist/utils/layout.cjs.map +1 -1
  811. package/dist/utils/layout.js +1 -1
  812. package/dist/utils/layout.js.map +1 -1
  813. package/dist/utils/style.cjs +2 -2
  814. package/dist/utils/style.cjs.map +1 -1
  815. package/dist/utils/style.js +3 -3
  816. package/dist/utils/style.js.map +1 -1
  817. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"ListboxRoot.cjs","sources":["../../src/Listbox/ListboxRoot.vue"],"sourcesContent":["<script lang=\"ts\">\nimport { createContext, findValuesBetween, useDirection, useFormControl, useKbd, useTypeahead } from '@/shared'\nimport { Primitive } from '..'\nimport { type PrimitiveProps, usePrimitiveElement } from '@/Primitive'\nimport type { AcceptableValue, DataOrientation, Direction, FormFieldProps } from '@/shared/types'\nimport { getFocusIntent } from '@/RovingFocus/utils'\n\ntype ListboxRootContext<T> = {\n modelValue: Ref<T | Array<T> | undefined>\n onValueChange: (val: T) => void\n multiple: Ref<boolean>\n orientation: Ref<DataOrientation>\n dir: Ref<Direction>\n disabled: Ref<boolean>\n highlightOnHover: Ref<boolean>\n highlightedElement: Ref<HTMLElement | null>\n isVirtual: Ref<boolean>\n virtualFocusHook: EventHook<Event | null | undefined>\n virtualKeydownHook: EventHook<KeyboardEvent>\n virtualHighlightHook: EventHook<any>\n by?: string | ((a: T, b: T) => boolean)\n firstValue?: Ref<T | undefined>\n selectionBehavior?: Ref<'toggle' | 'replace'>\n\n focusable: Ref<boolean>\n\n onLeave: (event: Event) => void\n onEnter: (event: Event) => void\n changeHighlight: (el: HTMLElement, scrollIntoView?: boolean) => void\n onKeydownNavigation: (event: KeyboardEvent) => void\n onKeydownEnter: (event: KeyboardEvent) => void\n onKeydownTypeAhead: (event: KeyboardEvent) => void\n onCompositionStart: () => void\n onCompositionEnd: () => void\n highlightFirstItem: (event: InputEvent) => void\n}\n\nexport const [injectListboxRootContext, provideListboxRootContext]\n = createContext<ListboxRootContext<AcceptableValue>>('ListboxRoot')\n\nexport interface ListboxRootProps<T = AcceptableValue> extends PrimitiveProps, FormFieldProps {\n /** The controlled value of the listbox. Can be binded with with `v-model`. */\n modelValue?: T | Array<T>\n /** The value of the listbox when initially rendered. Use when you do not need to control the state of the Listbox */\n defaultValue?: T | Array<T>\n /** Whether multiple options can be selected or not. */\n multiple?: boolean\n /** The orientation of the listbox. <br>Mainly so arrow navigation is done accordingly (left & right vs. up & down) */\n orientation?: DataOrientation\n /** The reading direction of the listbox when applicable. <br> If omitted, inherits globally from `ConfigProvider` or assumes LTR (left-to-right) reading mode. */\n dir?: Direction\n /** When `true`, prevents the user from interacting with listbox */\n disabled?: boolean\n /**\n * How multiple selection should behave in the collection.\n * @defaultValue 'toggle'\n */\n selectionBehavior?: 'toggle' | 'replace'\n /** When `true`, hover over item will trigger highlight */\n highlightOnHover?: boolean\n /** Use this to compare objects by a particular field, or pass your own comparison function for complete control over how objects are compared. */\n by?: string | ((a: T, b: T) => boolean)\n}\n\nexport type ListboxRootEmits<T = AcceptableValue> = {\n /** Event handler called when the value changes. */\n 'update:modelValue': [value: T]\n /** Event handler when highlighted element changes. */\n 'highlight': [payload: { ref: HTMLElement, value: T } | undefined]\n /** Event handler called when container is being focused. Can be prevented. */\n 'entryFocus': [event: CustomEvent]\n /** Event handler called when the mouse leave the container */\n 'leave': [event: Event]\n}\n</script>\n\n<script setup lang=\"ts\" generic=\"T extends AcceptableValue = AcceptableValue\">\nimport { type EventHook, createEventHook, useVModel } from '@vueuse/core'\nimport { type Ref, nextTick, ref, toRefs, watch } from 'vue'\nimport { compare } from './utils'\nimport { useCollection } from '@/Collection'\nimport { VisuallyHiddenInput } from '@/VisuallyHidden'\n\nconst props = withDefaults(defineProps<ListboxRootProps>(), {\n selectionBehavior: 'toggle',\n orientation: 'vertical',\n})\nconst emits = defineEmits<ListboxRootEmits>()\n\ndefineSlots<{\n default: (props: {\n /** Current active value */\n modelValue: typeof modelValue.value\n }) => any\n}>()\n\nconst { multiple, highlightOnHover, orientation, disabled, selectionBehavior, dir: propDir } = toRefs(props)\nconst { getItems } = useCollection<{ value: T }>({ isProvider: true })\nconst { handleTypeaheadSearch } = useTypeahead()\nconst { primitiveElement, currentElement } = usePrimitiveElement()\nconst kbd = useKbd()\nconst dir = useDirection(propDir)\n\nconst isFormControl = useFormControl(currentElement)\n\nconst firstValue = ref<T>()\nconst isUserAction = ref(false)\nconst focusable = ref(true)\nconst modelValue = useVModel(props, 'modelValue', emits, {\n defaultValue: props.defaultValue ?? (multiple.value ? [] : undefined),\n passive: (props.modelValue === undefined) as false,\n deep: true,\n}) as Ref<T | T[] | undefined>\n\nfunction onValueChange(val: T) {\n isUserAction.value = true\n if (props.multiple) {\n const modelArray = Array.isArray(modelValue.value) ? [...modelValue.value] : []\n const index = modelArray.findIndex(i => compare(i, val, props.by))\n if (props.selectionBehavior === 'toggle') {\n index === -1 ? modelArray.push(val) : modelArray.splice(index, 1)\n modelValue.value = modelArray\n }\n else {\n modelValue.value = [val]\n firstValue.value = val\n }\n }\n else {\n if (props.selectionBehavior === 'toggle') {\n if (compare(modelValue.value, val, props.by))\n modelValue.value = undefined\n else\n modelValue.value = val\n }\n else {\n modelValue.value = val\n }\n }\n setTimeout(() => {\n isUserAction.value = false\n }, 1)\n}\n\nconst highlightedElement = ref<HTMLElement | null>(null)\nconst previousElement = ref<HTMLElement | null>(null)\nconst isVirtual = ref(false)\nconst isComposing = ref(false)\nconst virtualFocusHook = createEventHook<Event | null | undefined>()\nconst virtualKeydownHook = createEventHook<KeyboardEvent>()\nconst virtualHighlightHook = createEventHook<T>()\n\nfunction getCollectionItem() {\n return getItems().map(i => i.ref).filter(i => i.dataset.disabled !== '')\n}\n\nfunction changeHighlight(el: HTMLElement, scrollIntoView = true) {\n if (!el)\n return\n\n highlightedElement.value = el\n if (focusable.value)\n highlightedElement.value.focus()\n if (scrollIntoView)\n highlightedElement.value.scrollIntoView({ block: 'nearest' })\n\n const highlightedItem = getItems().find(i => i.ref === el)\n emits('highlight', highlightedItem)\n}\n\nfunction highlightItem(value: T) {\n if (isVirtual.value) {\n virtualHighlightHook.trigger(value)\n }\n else {\n const item = getItems().find(i => compare(i.value, value, props.by))\n if (item) {\n highlightedElement.value = item.ref\n changeHighlight(item.ref)\n }\n }\n}\n\nfunction onKeydownEnter(event: KeyboardEvent) {\n if (highlightedElement.value && highlightedElement.value.isConnected) {\n event.preventDefault()\n event.stopPropagation()\n\n if (!isComposing.value) {\n highlightedElement.value.click()\n }\n }\n}\n\nfunction onKeydownTypeAhead(event: KeyboardEvent) {\n if (!focusable.value)\n return\n isUserAction.value = true\n if (isVirtual.value) {\n virtualKeydownHook.trigger(event)\n }\n else {\n const isMetaKey = event.altKey || event.ctrlKey || event.metaKey\n\n if (isMetaKey && event.key === 'a' && multiple.value) {\n const collection = getItems()\n const values = collection.map(i => i.value)\n modelValue.value = [...values]\n event.preventDefault()\n changeHighlight(collection[collection.length - 1].ref)\n }\n else if (!isMetaKey) {\n const el = handleTypeaheadSearch(event.key, getItems())\n if (el)\n changeHighlight(el)\n }\n }\n setTimeout(() => {\n isUserAction.value = false\n }, 1)\n}\n\nfunction onCompositionStart() {\n isComposing.value = true\n}\nfunction onCompositionEnd() {\n requestAnimationFrame(() => {\n isComposing.value = false\n })\n}\n\nfunction highlightFirstItem() {\n nextTick(() => {\n const event = new KeyboardEvent('keydown', { key: 'PageUp' })\n onKeydownNavigation(event)\n })\n}\n\nfunction onLeave(event: Event) {\n const el = highlightedElement.value\n\n if ((el as Node)?.isConnected) {\n previousElement.value = el\n }\n\n highlightedElement.value = null\n emits('leave', event)\n}\n\nfunction onEnter(event: Event) {\n const entryFocusEvent = new CustomEvent('listbox.entryFocus', { bubbles: false, cancelable: true })\n event.currentTarget?.dispatchEvent(entryFocusEvent)\n emits('entryFocus', entryFocusEvent)\n\n if (entryFocusEvent.defaultPrevented)\n return\n\n if (previousElement.value) {\n changeHighlight(previousElement.value)\n }\n else {\n const el = getCollectionItem()?.[0]\n changeHighlight(el)\n }\n}\n\nfunction onKeydownNavigation(event: KeyboardEvent) {\n const intent = getFocusIntent(event, orientation.value, dir.value)\n if (!intent)\n return\n\n let collection = getCollectionItem()\n if (highlightedElement.value) {\n if (intent === 'last') {\n collection.reverse()\n }\n else if (intent === 'prev' || intent === 'next') {\n if (intent === 'prev')\n collection.reverse()\n\n const currentIndex = collection.indexOf(highlightedElement.value)\n collection = collection.slice(currentIndex + 1)\n }\n handleMultipleReplace(event, collection[0])\n }\n\n if (collection.length) {\n const index = !highlightedElement.value && intent === 'prev' ? collection.length - 1 : 0\n changeHighlight(collection[index])\n }\n\n if (isVirtual.value)\n return virtualKeydownHook.trigger(event)\n}\n\nfunction handleMultipleReplace(event: KeyboardEvent, targetEl: HTMLElement) {\n if (isVirtual.value || props.selectionBehavior !== 'replace' || !multiple.value || !Array.isArray(modelValue.value))\n return\n const isMetaKey = event.altKey || event.ctrlKey || event.metaKey\n if (isMetaKey && !event.shiftKey)\n return\n\n if (event.shiftKey) {\n const collection = getItems().filter(i => i.ref.dataset.disabled !== '')\n let lastValue = collection.find(i => i.ref === targetEl)?.value\n\n if (event.key === kbd.END)\n lastValue = collection[collection.length - 1].value\n else if (event.key === kbd.HOME)\n lastValue = collection[0].value\n\n if (!lastValue || !firstValue.value)\n return\n\n const values = findValuesBetween(collection.map(i => i.value), firstValue.value, lastValue)\n modelValue.value = values\n }\n}\n\nasync function highlightSelected(event?: Event) {\n await nextTick()\n if (isVirtual.value) {\n // Trigger on nextTick for Virtualizer to be mounted\n virtualFocusHook.trigger(event)\n }\n else {\n const collection = getCollectionItem()\n const item = collection.find(i => i.dataset.state === 'checked')\n if (item)\n changeHighlight(item)\n else if (collection.length)\n changeHighlight(collection[0])\n }\n}\n\n// watch for only programmatic changes\nwatch(modelValue, () => {\n if (!isUserAction.value) {\n nextTick(() => {\n highlightSelected()\n })\n }\n}, { immediate: true, deep: true })\n\ndefineExpose({\n highlightedElement,\n highlightItem,\n highlightFirstItem,\n highlightSelected,\n getItems,\n})\n\nprovideListboxRootContext({\n modelValue,\n // @ts-expect-error ignoring\n onValueChange,\n multiple,\n orientation,\n dir,\n disabled,\n highlightOnHover,\n highlightedElement,\n isVirtual,\n virtualFocusHook,\n virtualKeydownHook,\n virtualHighlightHook,\n by: props.by,\n firstValue,\n selectionBehavior,\n\n focusable,\n onLeave,\n onEnter,\n changeHighlight,\n onKeydownEnter,\n onKeydownNavigation,\n onKeydownTypeAhead,\n onCompositionStart,\n onCompositionEnd,\n highlightFirstItem,\n})\n</script>\n\n<template>\n <Primitive\n ref=\"primitiveElement\"\n :as=\"as\"\n :as-child=\"asChild\"\n :dir=\"dir\"\n :data-disabled=\"disabled ? '' : undefined\"\n @pointerleave=\"onLeave\"\n @focusout=\"async (event: FocusEvent) => {\n const target = (event.relatedTarget || event.target) as HTMLElement | null\n await nextTick()\n if (highlightedElement && currentElement && !currentElement.contains(target)) {\n onLeave(event)\n }\n }\"\n >\n <slot :model-value=\"modelValue\" />\n\n <VisuallyHiddenInput\n v-if=\"isFormControl && name\"\n :name=\"name\"\n :value=\"modelValue\"\n :disabled=\"disabled\"\n :required=\"required\"\n />\n </Primitive>\n</template>\n"],"names":["createContext","toRefs","useCollection","useTypeahead","usePrimitiveElement","useKbd","useDirection","useFormControl","ref","useVModel","compare","createEventHook","nextTick","getFocusIntent","findValuesBetween","watch"],"mappings":"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"}
1
+ {"version":3,"file":"ListboxRoot.cjs","sources":["../../src/Listbox/ListboxRoot.vue"],"sourcesContent":["<script lang=\"ts\">\nimport { createContext, findValuesBetween, useDirection, useFormControl, useKbd, useTypeahead } from '@/shared'\nimport { Primitive } from '..'\nimport { type PrimitiveProps, usePrimitiveElement } from '@/Primitive'\nimport type { AcceptableValue, DataOrientation, Direction, FormFieldProps } from '@/shared/types'\nimport { getFocusIntent } from '@/RovingFocus/utils'\n\ntype ListboxRootContext<T> = {\n modelValue: Ref<T | Array<T> | undefined>\n onValueChange: (val: T) => void\n multiple: Ref<boolean>\n orientation: Ref<DataOrientation>\n dir: Ref<Direction>\n disabled: Ref<boolean>\n highlightOnHover: Ref<boolean>\n highlightedElement: Ref<HTMLElement | null>\n isVirtual: Ref<boolean>\n virtualFocusHook: EventHook<Event | null | undefined>\n virtualKeydownHook: EventHook<KeyboardEvent>\n virtualHighlightHook: EventHook<any>\n by?: string | ((a: T, b: T) => boolean)\n firstValue?: Ref<T | undefined>\n selectionBehavior?: Ref<'toggle' | 'replace'>\n\n focusable: Ref<boolean>\n\n onLeave: (event: Event) => void\n onEnter: (event: Event) => void\n changeHighlight: (el: HTMLElement, scrollIntoView?: boolean) => void\n onKeydownNavigation: (event: KeyboardEvent) => void\n onKeydownEnter: (event: KeyboardEvent) => void\n onKeydownTypeAhead: (event: KeyboardEvent) => void\n onCompositionStart: () => void\n onCompositionEnd: () => void\n highlightFirstItem: (event: InputEvent) => void\n}\n\nexport const [injectListboxRootContext, provideListboxRootContext]\n = createContext<ListboxRootContext<AcceptableValue>>('ListboxRoot')\n\nexport interface ListboxRootProps<T = AcceptableValue> extends PrimitiveProps, FormFieldProps {\n /** The controlled value of the listbox. Can be binded with with `v-model`. */\n modelValue?: T | Array<T>\n /** The value of the listbox when initially rendered. Use when you do not need to control the state of the Listbox */\n defaultValue?: T | Array<T>\n /** Whether multiple options can be selected or not. */\n multiple?: boolean\n /** The orientation of the listbox. <br>Mainly so arrow navigation is done accordingly (left & right vs. up & down) */\n orientation?: DataOrientation\n /** The reading direction of the listbox when applicable. <br> If omitted, inherits globally from `ConfigProvider` or assumes LTR (left-to-right) reading mode. */\n dir?: Direction\n /** When `true`, prevents the user from interacting with listbox */\n disabled?: boolean\n /**\n * How multiple selection should behave in the collection.\n * @defaultValue 'toggle'\n */\n selectionBehavior?: 'toggle' | 'replace'\n /** When `true`, hover over item will trigger highlight */\n highlightOnHover?: boolean\n /** Use this to compare objects by a particular field, or pass your own comparison function for complete control over how objects are compared. */\n by?: string | ((a: T, b: T) => boolean)\n}\n\nexport type ListboxRootEmits<T = AcceptableValue> = {\n /** Event handler called when the value changes. */\n 'update:modelValue': [value: T]\n /** Event handler when highlighted element changes. */\n 'highlight': [payload: { ref: HTMLElement, value: T } | undefined]\n /** Event handler called when container is being focused. Can be prevented. */\n 'entryFocus': [event: CustomEvent]\n /** Event handler called when the mouse leave the container */\n 'leave': [event: Event]\n}\n</script>\n\n<script setup lang=\"ts\" generic=\"T extends AcceptableValue = AcceptableValue\">\nimport { type EventHook, createEventHook, useVModel } from '@vueuse/core'\nimport { type Ref, nextTick, ref, toRefs, watch } from 'vue'\nimport { compare } from './utils'\nimport { useCollection } from '@/Collection'\nimport { VisuallyHiddenInput } from '@/VisuallyHidden'\n\nconst props = withDefaults(defineProps<ListboxRootProps>(), {\n selectionBehavior: 'toggle',\n orientation: 'vertical',\n})\nconst emits = defineEmits<ListboxRootEmits>()\n\ndefineSlots<{\n default: (props: {\n /** Current active value */\n modelValue: typeof modelValue.value\n }) => any\n}>()\n\nconst { multiple, highlightOnHover, orientation, disabled, selectionBehavior, dir: propDir } = toRefs(props)\nconst { getItems } = useCollection<{ value: T }>({ isProvider: true })\nconst { handleTypeaheadSearch } = useTypeahead()\nconst { primitiveElement, currentElement } = usePrimitiveElement()\nconst kbd = useKbd()\nconst dir = useDirection(propDir)\n\nconst isFormControl = useFormControl(currentElement)\n\nconst firstValue = ref<T>()\nconst isUserAction = ref(false)\nconst focusable = ref(true)\nconst modelValue = useVModel(props, 'modelValue', emits, {\n defaultValue: props.defaultValue ?? (multiple.value ? [] : undefined),\n passive: (props.modelValue === undefined) as false,\n deep: true,\n}) as Ref<T | T[] | undefined>\n\nfunction onValueChange(val: T) {\n isUserAction.value = true\n if (props.multiple) {\n const modelArray = Array.isArray(modelValue.value) ? [...modelValue.value] : []\n const index = modelArray.findIndex(i => compare(i, val, props.by))\n if (props.selectionBehavior === 'toggle') {\n index === -1 ? modelArray.push(val) : modelArray.splice(index, 1)\n modelValue.value = modelArray\n }\n else {\n modelValue.value = [val]\n firstValue.value = val\n }\n }\n else {\n if (props.selectionBehavior === 'toggle') {\n if (compare(modelValue.value, val, props.by))\n modelValue.value = undefined\n else\n modelValue.value = val\n }\n else {\n modelValue.value = val\n }\n }\n setTimeout(() => {\n isUserAction.value = false\n }, 1)\n}\n\nconst highlightedElement = ref<HTMLElement | null>(null)\nconst previousElement = ref<HTMLElement | null>(null)\nconst isVirtual = ref(false)\nconst isComposing = ref(false)\nconst virtualFocusHook = createEventHook<Event | null | undefined>()\nconst virtualKeydownHook = createEventHook<KeyboardEvent>()\nconst virtualHighlightHook = createEventHook<T>()\n\nfunction getCollectionItem() {\n return getItems().map(i => i.ref).filter(i => i.dataset.disabled !== '')\n}\n\nfunction changeHighlight(el: HTMLElement, scrollIntoView = true) {\n if (!el)\n return\n\n highlightedElement.value = el\n if (focusable.value)\n highlightedElement.value.focus()\n if (scrollIntoView)\n highlightedElement.value.scrollIntoView({ block: 'nearest' })\n\n const highlightedItem = getItems().find(i => i.ref === el)\n emits('highlight', highlightedItem)\n}\n\nfunction highlightItem(value: T) {\n if (isVirtual.value) {\n virtualHighlightHook.trigger(value)\n }\n else {\n const item = getItems().find(i => compare(i.value, value, props.by))\n if (item) {\n highlightedElement.value = item.ref\n changeHighlight(item.ref)\n }\n }\n}\n\nfunction onKeydownEnter(event: KeyboardEvent) {\n if (highlightedElement.value && highlightedElement.value.isConnected) {\n event.preventDefault()\n event.stopPropagation()\n\n if (!isComposing.value) {\n highlightedElement.value.click()\n }\n }\n}\n\nfunction onKeydownTypeAhead(event: KeyboardEvent) {\n if (!focusable.value)\n return\n isUserAction.value = true\n if (isVirtual.value) {\n virtualKeydownHook.trigger(event)\n }\n else {\n const isMetaKey = event.altKey || event.ctrlKey || event.metaKey\n\n if (isMetaKey && event.key === 'a' && multiple.value) {\n const collection = getItems()\n const values = collection.map(i => i.value)\n modelValue.value = [...values]\n event.preventDefault()\n changeHighlight(collection[collection.length - 1].ref)\n }\n else if (!isMetaKey) {\n const el = handleTypeaheadSearch(event.key, getItems())\n if (el)\n changeHighlight(el)\n }\n }\n setTimeout(() => {\n isUserAction.value = false\n }, 1)\n}\n\nfunction onCompositionStart() {\n isComposing.value = true\n}\nfunction onCompositionEnd() {\n requestAnimationFrame(() => {\n isComposing.value = false\n })\n}\n\nfunction highlightFirstItem() {\n nextTick(() => {\n const event = new KeyboardEvent('keydown', { key: 'PageUp' })\n onKeydownNavigation(event)\n })\n}\n\nfunction onLeave(event: Event) {\n const el = highlightedElement.value\n\n if ((el as Node)?.isConnected) {\n previousElement.value = el\n }\n\n highlightedElement.value = null\n emits('leave', event)\n}\n\nfunction onEnter(event: Event) {\n const entryFocusEvent = new CustomEvent('listbox.entryFocus', { bubbles: false, cancelable: true })\n event.currentTarget?.dispatchEvent(entryFocusEvent)\n emits('entryFocus', entryFocusEvent)\n\n if (entryFocusEvent.defaultPrevented)\n return\n\n if (previousElement.value) {\n changeHighlight(previousElement.value)\n }\n else {\n const el = getCollectionItem()?.[0]\n changeHighlight(el)\n }\n}\n\nfunction onKeydownNavigation(event: KeyboardEvent) {\n const intent = getFocusIntent(event, orientation.value, dir.value)\n if (!intent)\n return\n\n let collection = getCollectionItem()\n if (highlightedElement.value) {\n if (intent === 'last') {\n collection.reverse()\n }\n else if (intent === 'prev' || intent === 'next') {\n if (intent === 'prev')\n collection.reverse()\n\n const currentIndex = collection.indexOf(highlightedElement.value)\n collection = collection.slice(currentIndex + 1)\n }\n handleMultipleReplace(event, collection[0])\n }\n\n if (collection.length) {\n const index = !highlightedElement.value && intent === 'prev' ? collection.length - 1 : 0\n changeHighlight(collection[index])\n }\n\n if (isVirtual.value)\n return virtualKeydownHook.trigger(event)\n}\n\nfunction handleMultipleReplace(event: KeyboardEvent, targetEl: HTMLElement) {\n if (isVirtual.value || props.selectionBehavior !== 'replace' || !multiple.value || !Array.isArray(modelValue.value))\n return\n const isMetaKey = event.altKey || event.ctrlKey || event.metaKey\n if (isMetaKey && !event.shiftKey)\n return\n\n if (event.shiftKey) {\n const collection = getItems().filter(i => i.ref.dataset.disabled !== '')\n let lastValue = collection.find(i => i.ref === targetEl)?.value\n\n if (event.key === kbd.END)\n lastValue = collection[collection.length - 1].value\n else if (event.key === kbd.HOME)\n lastValue = collection[0].value\n\n if (!lastValue || !firstValue.value)\n return\n\n const values = findValuesBetween(collection.map(i => i.value), firstValue.value, lastValue)\n modelValue.value = values\n }\n}\n\nasync function highlightSelected(event?: Event) {\n await nextTick()\n if (isVirtual.value) {\n // Trigger on nextTick for Virtualizer to be mounted\n virtualFocusHook.trigger(event)\n }\n else {\n const collection = getCollectionItem()\n const item = collection.find(i => i.dataset.state === 'checked')\n if (item)\n changeHighlight(item)\n else if (collection.length)\n changeHighlight(collection[0])\n }\n}\n\n// watch for only programmatic changes\nwatch(modelValue, () => {\n if (!isUserAction.value) {\n nextTick(() => {\n highlightSelected()\n })\n }\n}, { immediate: true, deep: true })\n\ndefineExpose({\n highlightedElement,\n highlightItem,\n highlightFirstItem,\n highlightSelected,\n getItems,\n})\n\nprovideListboxRootContext({\n modelValue,\n // @ts-expect-error ignoring\n onValueChange,\n multiple,\n orientation,\n dir,\n disabled,\n highlightOnHover,\n highlightedElement,\n isVirtual,\n virtualFocusHook,\n virtualKeydownHook,\n virtualHighlightHook,\n by: props.by,\n firstValue,\n selectionBehavior,\n\n focusable,\n onLeave,\n onEnter,\n changeHighlight,\n onKeydownEnter,\n onKeydownNavigation,\n onKeydownTypeAhead,\n onCompositionStart,\n onCompositionEnd,\n highlightFirstItem,\n})\n</script>\n\n<template>\n <Primitive\n ref=\"primitiveElement\"\n :as=\"as\"\n :as-child=\"asChild\"\n :dir=\"dir\"\n :data-disabled=\"disabled ? '' : undefined\"\n @pointerleave=\"onLeave\"\n @focusout=\"async (event: FocusEvent) => {\n const target = (event.relatedTarget || event.target) as HTMLElement | null\n await nextTick()\n if (highlightedElement && currentElement && !currentElement.contains(target)) {\n onLeave(event)\n }\n }\"\n >\n <slot :model-value=\"modelValue\" />\n\n <VisuallyHiddenInput\n v-if=\"isFormControl && name\"\n :name=\"name\"\n :value=\"modelValue\"\n :disabled=\"disabled\"\n :required=\"required\"\n />\n </Primitive>\n</template>\n"],"names":["createContext","toRefs","useCollection","useTypeahead","usePrimitiveElement","useKbd","useDirection","useFormControl","ref","useVModel","compare","createEventHook","nextTick","getFocusIntent","findValuesBetween","watch"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { defineComponent, toRefs, ref, watch, nextTick, openBlock, createBlock, unref, withCtx, renderSlot, createCommentVNode } from 'vue';
1
+ import { defineComponent, toRefs, ref, watch, nextTick, createBlock, openBlock, unref, withCtx, renderSlot, createCommentVNode } from 'vue';
2
2
  import { useVModel, createEventHook } from '@vueuse/core';
3
3
  import { c as compare } from './utils.js';
4
4
  import { u as useCollection } from '../Collection/Collection.js';
@@ -8,11 +8,11 @@ import { u as useTypeahead } from '../shared/useTypeahead.js';
8
8
  import { u as usePrimitiveElement } from '../Primitive/usePrimitiveElement.js';
9
9
  import { u as useDirection } from '../shared/useDirection.js';
10
10
  import { u as useFormControl } from '../shared/useFormControl.js';
11
+ import { c as createContext } from '../shared/createContext.js';
11
12
  import { P as Primitive } from '../Primitive/Primitive.js';
12
13
  import { _ as _sfc_main$1 } from '../VisuallyHidden/VisuallyHiddenInput.js';
13
- import { c as createContext } from '../shared/createContext.js';
14
- import { f as findValuesBetween } from '../shared/arrays.js';
15
14
  import { u as useKbd } from '../shared/useKbd.js';
15
+ import { f as findValuesBetween } from '../shared/arrays.js';
16
16
 
17
17
  const [injectListboxRootContext, provideListboxRootContext] = createContext("ListboxRoot");
18
18
  const _sfc_main = /* @__PURE__ */ defineComponent({
@@ -47,8 +47,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
47
47
  const isUserAction = ref(false);
48
48
  const focusable = ref(true);
49
49
  const modelValue = useVModel(props, "modelValue", emits, {
50
- defaultValue: props.defaultValue ?? (multiple.value ? [] : undefined),
51
- passive: props.modelValue === undefined,
50
+ defaultValue: props.defaultValue ?? (multiple.value ? [] : void 0),
51
+ passive: props.modelValue === void 0,
52
52
  deep: true
53
53
  });
54
54
  function onValueChange(val) {
@@ -66,7 +66,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
66
66
  } else {
67
67
  if (props.selectionBehavior === "toggle") {
68
68
  if (compare(modelValue.value, val, props.by))
69
- modelValue.value = undefined;
69
+ modelValue.value = void 0;
70
70
  else
71
71
  modelValue.value = val;
72
72
  } else {
@@ -281,7 +281,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
281
281
  as: _ctx.as,
282
282
  "as-child": _ctx.asChild,
283
283
  dir: unref(dir),
284
- "data-disabled": unref(disabled) ? "" : undefined,
284
+ "data-disabled": unref(disabled) ? "" : void 0,
285
285
  onPointerleave: onLeave,
286
286
  onFocusout: _cache[0] || (_cache[0] = async (event) => {
287
287
  const target = event.relatedTarget || event.target;
@@ -1 +1 @@
1
- {"version":3,"file":"ListboxRoot.js","sources":["../../src/Listbox/ListboxRoot.vue"],"sourcesContent":["<script lang=\"ts\">\nimport { createContext, findValuesBetween, useDirection, useFormControl, useKbd, useTypeahead } from '@/shared'\nimport { Primitive } from '..'\nimport { type PrimitiveProps, usePrimitiveElement } from '@/Primitive'\nimport type { AcceptableValue, DataOrientation, Direction, FormFieldProps } from '@/shared/types'\nimport { getFocusIntent } from '@/RovingFocus/utils'\n\ntype ListboxRootContext<T> = {\n modelValue: Ref<T | Array<T> | undefined>\n onValueChange: (val: T) => void\n multiple: Ref<boolean>\n orientation: Ref<DataOrientation>\n dir: Ref<Direction>\n disabled: Ref<boolean>\n highlightOnHover: Ref<boolean>\n highlightedElement: Ref<HTMLElement | null>\n isVirtual: Ref<boolean>\n virtualFocusHook: EventHook<Event | null | undefined>\n virtualKeydownHook: EventHook<KeyboardEvent>\n virtualHighlightHook: EventHook<any>\n by?: string | ((a: T, b: T) => boolean)\n firstValue?: Ref<T | undefined>\n selectionBehavior?: Ref<'toggle' | 'replace'>\n\n focusable: Ref<boolean>\n\n onLeave: (event: Event) => void\n onEnter: (event: Event) => void\n changeHighlight: (el: HTMLElement, scrollIntoView?: boolean) => void\n onKeydownNavigation: (event: KeyboardEvent) => void\n onKeydownEnter: (event: KeyboardEvent) => void\n onKeydownTypeAhead: (event: KeyboardEvent) => void\n onCompositionStart: () => void\n onCompositionEnd: () => void\n highlightFirstItem: (event: InputEvent) => void\n}\n\nexport const [injectListboxRootContext, provideListboxRootContext]\n = createContext<ListboxRootContext<AcceptableValue>>('ListboxRoot')\n\nexport interface ListboxRootProps<T = AcceptableValue> extends PrimitiveProps, FormFieldProps {\n /** The controlled value of the listbox. Can be binded with with `v-model`. */\n modelValue?: T | Array<T>\n /** The value of the listbox when initially rendered. Use when you do not need to control the state of the Listbox */\n defaultValue?: T | Array<T>\n /** Whether multiple options can be selected or not. */\n multiple?: boolean\n /** The orientation of the listbox. <br>Mainly so arrow navigation is done accordingly (left & right vs. up & down) */\n orientation?: DataOrientation\n /** The reading direction of the listbox when applicable. <br> If omitted, inherits globally from `ConfigProvider` or assumes LTR (left-to-right) reading mode. */\n dir?: Direction\n /** When `true`, prevents the user from interacting with listbox */\n disabled?: boolean\n /**\n * How multiple selection should behave in the collection.\n * @defaultValue 'toggle'\n */\n selectionBehavior?: 'toggle' | 'replace'\n /** When `true`, hover over item will trigger highlight */\n highlightOnHover?: boolean\n /** Use this to compare objects by a particular field, or pass your own comparison function for complete control over how objects are compared. */\n by?: string | ((a: T, b: T) => boolean)\n}\n\nexport type ListboxRootEmits<T = AcceptableValue> = {\n /** Event handler called when the value changes. */\n 'update:modelValue': [value: T]\n /** Event handler when highlighted element changes. */\n 'highlight': [payload: { ref: HTMLElement, value: T } | undefined]\n /** Event handler called when container is being focused. Can be prevented. */\n 'entryFocus': [event: CustomEvent]\n /** Event handler called when the mouse leave the container */\n 'leave': [event: Event]\n}\n</script>\n\n<script setup lang=\"ts\" generic=\"T extends AcceptableValue = AcceptableValue\">\nimport { type EventHook, createEventHook, useVModel } from '@vueuse/core'\nimport { type Ref, nextTick, ref, toRefs, watch } from 'vue'\nimport { compare } from './utils'\nimport { useCollection } from '@/Collection'\nimport { VisuallyHiddenInput } from '@/VisuallyHidden'\n\nconst props = withDefaults(defineProps<ListboxRootProps>(), {\n selectionBehavior: 'toggle',\n orientation: 'vertical',\n})\nconst emits = defineEmits<ListboxRootEmits>()\n\ndefineSlots<{\n default: (props: {\n /** Current active value */\n modelValue: typeof modelValue.value\n }) => any\n}>()\n\nconst { multiple, highlightOnHover, orientation, disabled, selectionBehavior, dir: propDir } = toRefs(props)\nconst { getItems } = useCollection<{ value: T }>({ isProvider: true })\nconst { handleTypeaheadSearch } = useTypeahead()\nconst { primitiveElement, currentElement } = usePrimitiveElement()\nconst kbd = useKbd()\nconst dir = useDirection(propDir)\n\nconst isFormControl = useFormControl(currentElement)\n\nconst firstValue = ref<T>()\nconst isUserAction = ref(false)\nconst focusable = ref(true)\nconst modelValue = useVModel(props, 'modelValue', emits, {\n defaultValue: props.defaultValue ?? (multiple.value ? [] : undefined),\n passive: (props.modelValue === undefined) as false,\n deep: true,\n}) as Ref<T | T[] | undefined>\n\nfunction onValueChange(val: T) {\n isUserAction.value = true\n if (props.multiple) {\n const modelArray = Array.isArray(modelValue.value) ? [...modelValue.value] : []\n const index = modelArray.findIndex(i => compare(i, val, props.by))\n if (props.selectionBehavior === 'toggle') {\n index === -1 ? modelArray.push(val) : modelArray.splice(index, 1)\n modelValue.value = modelArray\n }\n else {\n modelValue.value = [val]\n firstValue.value = val\n }\n }\n else {\n if (props.selectionBehavior === 'toggle') {\n if (compare(modelValue.value, val, props.by))\n modelValue.value = undefined\n else\n modelValue.value = val\n }\n else {\n modelValue.value = val\n }\n }\n setTimeout(() => {\n isUserAction.value = false\n }, 1)\n}\n\nconst highlightedElement = ref<HTMLElement | null>(null)\nconst previousElement = ref<HTMLElement | null>(null)\nconst isVirtual = ref(false)\nconst isComposing = ref(false)\nconst virtualFocusHook = createEventHook<Event | null | undefined>()\nconst virtualKeydownHook = createEventHook<KeyboardEvent>()\nconst virtualHighlightHook = createEventHook<T>()\n\nfunction getCollectionItem() {\n return getItems().map(i => i.ref).filter(i => i.dataset.disabled !== '')\n}\n\nfunction changeHighlight(el: HTMLElement, scrollIntoView = true) {\n if (!el)\n return\n\n highlightedElement.value = el\n if (focusable.value)\n highlightedElement.value.focus()\n if (scrollIntoView)\n highlightedElement.value.scrollIntoView({ block: 'nearest' })\n\n const highlightedItem = getItems().find(i => i.ref === el)\n emits('highlight', highlightedItem)\n}\n\nfunction highlightItem(value: T) {\n if (isVirtual.value) {\n virtualHighlightHook.trigger(value)\n }\n else {\n const item = getItems().find(i => compare(i.value, value, props.by))\n if (item) {\n highlightedElement.value = item.ref\n changeHighlight(item.ref)\n }\n }\n}\n\nfunction onKeydownEnter(event: KeyboardEvent) {\n if (highlightedElement.value && highlightedElement.value.isConnected) {\n event.preventDefault()\n event.stopPropagation()\n\n if (!isComposing.value) {\n highlightedElement.value.click()\n }\n }\n}\n\nfunction onKeydownTypeAhead(event: KeyboardEvent) {\n if (!focusable.value)\n return\n isUserAction.value = true\n if (isVirtual.value) {\n virtualKeydownHook.trigger(event)\n }\n else {\n const isMetaKey = event.altKey || event.ctrlKey || event.metaKey\n\n if (isMetaKey && event.key === 'a' && multiple.value) {\n const collection = getItems()\n const values = collection.map(i => i.value)\n modelValue.value = [...values]\n event.preventDefault()\n changeHighlight(collection[collection.length - 1].ref)\n }\n else if (!isMetaKey) {\n const el = handleTypeaheadSearch(event.key, getItems())\n if (el)\n changeHighlight(el)\n }\n }\n setTimeout(() => {\n isUserAction.value = false\n }, 1)\n}\n\nfunction onCompositionStart() {\n isComposing.value = true\n}\nfunction onCompositionEnd() {\n requestAnimationFrame(() => {\n isComposing.value = false\n })\n}\n\nfunction highlightFirstItem() {\n nextTick(() => {\n const event = new KeyboardEvent('keydown', { key: 'PageUp' })\n onKeydownNavigation(event)\n })\n}\n\nfunction onLeave(event: Event) {\n const el = highlightedElement.value\n\n if ((el as Node)?.isConnected) {\n previousElement.value = el\n }\n\n highlightedElement.value = null\n emits('leave', event)\n}\n\nfunction onEnter(event: Event) {\n const entryFocusEvent = new CustomEvent('listbox.entryFocus', { bubbles: false, cancelable: true })\n event.currentTarget?.dispatchEvent(entryFocusEvent)\n emits('entryFocus', entryFocusEvent)\n\n if (entryFocusEvent.defaultPrevented)\n return\n\n if (previousElement.value) {\n changeHighlight(previousElement.value)\n }\n else {\n const el = getCollectionItem()?.[0]\n changeHighlight(el)\n }\n}\n\nfunction onKeydownNavigation(event: KeyboardEvent) {\n const intent = getFocusIntent(event, orientation.value, dir.value)\n if (!intent)\n return\n\n let collection = getCollectionItem()\n if (highlightedElement.value) {\n if (intent === 'last') {\n collection.reverse()\n }\n else if (intent === 'prev' || intent === 'next') {\n if (intent === 'prev')\n collection.reverse()\n\n const currentIndex = collection.indexOf(highlightedElement.value)\n collection = collection.slice(currentIndex + 1)\n }\n handleMultipleReplace(event, collection[0])\n }\n\n if (collection.length) {\n const index = !highlightedElement.value && intent === 'prev' ? collection.length - 1 : 0\n changeHighlight(collection[index])\n }\n\n if (isVirtual.value)\n return virtualKeydownHook.trigger(event)\n}\n\nfunction handleMultipleReplace(event: KeyboardEvent, targetEl: HTMLElement) {\n if (isVirtual.value || props.selectionBehavior !== 'replace' || !multiple.value || !Array.isArray(modelValue.value))\n return\n const isMetaKey = event.altKey || event.ctrlKey || event.metaKey\n if (isMetaKey && !event.shiftKey)\n return\n\n if (event.shiftKey) {\n const collection = getItems().filter(i => i.ref.dataset.disabled !== '')\n let lastValue = collection.find(i => i.ref === targetEl)?.value\n\n if (event.key === kbd.END)\n lastValue = collection[collection.length - 1].value\n else if (event.key === kbd.HOME)\n lastValue = collection[0].value\n\n if (!lastValue || !firstValue.value)\n return\n\n const values = findValuesBetween(collection.map(i => i.value), firstValue.value, lastValue)\n modelValue.value = values\n }\n}\n\nasync function highlightSelected(event?: Event) {\n await nextTick()\n if (isVirtual.value) {\n // Trigger on nextTick for Virtualizer to be mounted\n virtualFocusHook.trigger(event)\n }\n else {\n const collection = getCollectionItem()\n const item = collection.find(i => i.dataset.state === 'checked')\n if (item)\n changeHighlight(item)\n else if (collection.length)\n changeHighlight(collection[0])\n }\n}\n\n// watch for only programmatic changes\nwatch(modelValue, () => {\n if (!isUserAction.value) {\n nextTick(() => {\n highlightSelected()\n })\n }\n}, { immediate: true, deep: true })\n\ndefineExpose({\n highlightedElement,\n highlightItem,\n highlightFirstItem,\n highlightSelected,\n getItems,\n})\n\nprovideListboxRootContext({\n modelValue,\n // @ts-expect-error ignoring\n onValueChange,\n multiple,\n orientation,\n dir,\n disabled,\n highlightOnHover,\n highlightedElement,\n isVirtual,\n virtualFocusHook,\n virtualKeydownHook,\n virtualHighlightHook,\n by: props.by,\n firstValue,\n selectionBehavior,\n\n focusable,\n onLeave,\n onEnter,\n changeHighlight,\n onKeydownEnter,\n onKeydownNavigation,\n onKeydownTypeAhead,\n onCompositionStart,\n onCompositionEnd,\n highlightFirstItem,\n})\n</script>\n\n<template>\n <Primitive\n ref=\"primitiveElement\"\n :as=\"as\"\n :as-child=\"asChild\"\n :dir=\"dir\"\n :data-disabled=\"disabled ? '' : undefined\"\n @pointerleave=\"onLeave\"\n @focusout=\"async (event: FocusEvent) => {\n const target = (event.relatedTarget || event.target) as HTMLElement | null\n await nextTick()\n if (highlightedElement && currentElement && !currentElement.contains(target)) {\n onLeave(event)\n }\n }\"\n >\n <slot :model-value=\"modelValue\" />\n\n <VisuallyHiddenInput\n v-if=\"isFormControl && name\"\n :name=\"name\"\n :value=\"modelValue\"\n :disabled=\"disabled\"\n :required=\"required\"\n />\n </Primitive>\n</template>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAqCO,MAAM,CAAC,wBAAA,EAA0B,yBAAyB,CAAA,GAC7D,cAAmD,aAAa;;;;;;;;;;;;;;;;;;;;AA6CpE,IAAA,MAAM,KAAQ,GAAA,OAAA;AAId,IAAA,MAAM,KAAQ,GAAA,MAAA;AASd,IAAM,MAAA,EAAE,QAAU,EAAA,gBAAA,EAAkB,WAAa,EAAA,QAAA,EAAU,mBAAmB,GAAK,EAAA,OAAA,EAAY,GAAA,MAAA,CAAO,KAAK,CAAA;AAC3G,IAAA,MAAM,EAAE,QAAS,EAAA,GAAI,cAA4B,EAAE,UAAA,EAAY,MAAM,CAAA;AACrE,IAAM,MAAA,EAAE,qBAAsB,EAAA,GAAI,YAAa,EAAA;AAC/C,IAAA,MAAM,EAAE,gBAAA,EAAkB,cAAe,EAAA,GAAI,mBAAoB,EAAA;AACjE,IAAA,MAAM,MAAM,MAAO,EAAA;AACnB,IAAM,MAAA,GAAA,GAAM,aAAa,OAAO,CAAA;AAEhC,IAAM,MAAA,aAAA,GAAgB,eAAe,cAAc,CAAA;AAEnD,IAAA,MAAM,aAAa,GAAO,EAAA;AAC1B,IAAM,MAAA,YAAA,GAAe,IAAI,KAAK,CAAA;AAC9B,IAAM,MAAA,SAAA,GAAY,IAAI,IAAI,CAAA;AAC1B,IAAA,MAAM,UAAa,GAAA,SAAA,CAAU,KAAO,EAAA,YAAA,EAAc,KAAO,EAAA;AAAA,MACvD,cAAc,KAAM,CAAA,YAAA,KAAiB,QAAS,CAAA,KAAA,GAAQ,EAAK,GAAA,SAAA,CAAA;AAAA,MAC3D,OAAA,EAAU,MAAM,UAAe,KAAA,SAAA;AAAA,MAC/B,IAAM,EAAA;AAAA,KACP,CAAA;AAED,IAAA,SAAS,cAAc,GAAQ,EAAA;AAC7B,MAAA,YAAA,CAAa,KAAQ,GAAA,IAAA;AACrB,MAAA,IAAI,MAAM,QAAU,EAAA;AAClB,QAAM,MAAA,UAAA,GAAa,KAAM,CAAA,OAAA,CAAQ,UAAW,CAAA,KAAK,CAAI,GAAA,CAAC,GAAG,UAAA,CAAW,KAAK,CAAA,GAAI,EAAC;AAC9E,QAAM,MAAA,KAAA,GAAQ,WAAW,SAAU,CAAA,CAAA,CAAA,KAAK,QAAQ,CAAG,EAAA,GAAA,EAAK,KAAM,CAAA,EAAE,CAAC,CAAA;AACjE,QAAI,IAAA,KAAA,CAAM,sBAAsB,QAAU,EAAA;AACxC,UAAU,KAAA,KAAA,EAAA,GAAK,WAAW,IAAK,CAAA,GAAG,IAAI,UAAW,CAAA,MAAA,CAAO,OAAO,CAAC,CAAA;AAChE,UAAA,UAAA,CAAW,KAAQ,GAAA,UAAA;AAAA,SAEhB,MAAA;AACH,UAAW,UAAA,CAAA,KAAA,GAAQ,CAAC,GAAG,CAAA;AACvB,UAAA,UAAA,CAAW,KAAQ,GAAA,GAAA;AAAA;AACrB,OAEG,MAAA;AACH,QAAI,IAAA,KAAA,CAAM,sBAAsB,QAAU,EAAA;AACxC,UAAA,IAAI,OAAQ,CAAA,UAAA,CAAW,KAAO,EAAA,GAAA,EAAK,MAAM,EAAE,CAAA;AACzC,YAAA,UAAA,CAAW,KAAQ,GAAA,SAAA;AAAA;AAEnB,YAAA,UAAA,CAAW,KAAQ,GAAA,GAAA;AAAA,SAElB,MAAA;AACH,UAAA,UAAA,CAAW,KAAQ,GAAA,GAAA;AAAA;AACrB;AAEF,MAAA,UAAA,CAAW,MAAM;AACf,QAAA,YAAA,CAAa,KAAQ,GAAA,KAAA;AAAA,SACpB,CAAC,CAAA;AAAA;AAGN,IAAM,MAAA,kBAAA,GAAqB,IAAwB,IAAI,CAAA;AACvD,IAAM,MAAA,eAAA,GAAkB,IAAwB,IAAI,CAAA;AACpD,IAAM,MAAA,SAAA,GAAY,IAAI,KAAK,CAAA;AAC3B,IAAM,MAAA,WAAA,GAAc,IAAI,KAAK,CAAA;AAC7B,IAAA,MAAM,mBAAmB,eAA0C,EAAA;AACnE,IAAA,MAAM,qBAAqB,eAA+B,EAAA;AAC1D,IAAA,MAAM,uBAAuB,eAAmB,EAAA;AAEhD,IAAA,SAAS,iBAAoB,GAAA;AAC3B,MAAA,OAAO,QAAS,EAAA,CAAE,GAAI,CAAA,CAAA,CAAA,KAAK,CAAE,CAAA,GAAG,CAAE,CAAA,MAAA,CAAO,CAAK,CAAA,KAAA,CAAA,CAAE,OAAQ,CAAA,QAAA,KAAa,EAAE,CAAA;AAAA;AAGzE,IAAS,SAAA,eAAA,CAAgB,EAAiB,EAAA,cAAA,GAAiB,IAAM,EAAA;AAC/D,MAAA,IAAI,CAAC,EAAA;AACH,QAAA;AAEF,MAAA,kBAAA,CAAmB,KAAQ,GAAA,EAAA;AAC3B,MAAA,IAAI,SAAU,CAAA,KAAA;AACZ,QAAA,kBAAA,CAAmB,MAAM,KAAM,EAAA;AACjC,MAAI,IAAA,cAAA;AACF,QAAA,kBAAA,CAAmB,KAAM,CAAA,cAAA,CAAe,EAAE,KAAA,EAAO,WAAW,CAAA;AAE9D,MAAA,MAAM,kBAAkB,QAAS,EAAA,CAAE,KAAK,CAAK,CAAA,KAAA,CAAA,CAAE,QAAQ,EAAE,CAAA;AACzD,MAAA,KAAA,CAAM,aAAa,eAAe,CAAA;AAAA;AAGpC,IAAA,SAAS,cAAc,KAAU,EAAA;AAC/B,MAAA,IAAI,UAAU,KAAO,EAAA;AACnB,QAAA,oBAAA,CAAqB,QAAQ,KAAK,CAAA;AAAA,OAE/B,MAAA;AACH,QAAM,MAAA,IAAA,GAAO,QAAS,EAAA,CAAE,IAAK,CAAA,CAAA,CAAA,KAAK,OAAQ,CAAA,CAAA,CAAE,KAAO,EAAA,KAAA,EAAO,KAAM,CAAA,EAAE,CAAC,CAAA;AACnE,QAAA,IAAI,IAAM,EAAA;AACR,UAAA,kBAAA,CAAmB,QAAQ,IAAK,CAAA,GAAA;AAChC,UAAA,eAAA,CAAgB,KAAK,GAAG,CAAA;AAAA;AAC1B;AACF;AAGF,IAAA,SAAS,eAAe,KAAsB,EAAA;AAC5C,MAAA,IAAI,kBAAmB,CAAA,KAAA,IAAS,kBAAmB,CAAA,KAAA,CAAM,WAAa,EAAA;AACpE,QAAA,KAAA,CAAM,cAAe,EAAA;AACrB,QAAA,KAAA,CAAM,eAAgB,EAAA;AAEtB,QAAI,IAAA,CAAC,YAAY,KAAO,EAAA;AACtB,UAAA,kBAAA,CAAmB,MAAM,KAAM,EAAA;AAAA;AACjC;AACF;AAGF,IAAA,SAAS,mBAAmB,KAAsB,EAAA;AAChD,MAAA,IAAI,CAAC,SAAU,CAAA,KAAA;AACb,QAAA;AACF,MAAA,YAAA,CAAa,KAAQ,GAAA,IAAA;AACrB,MAAA,IAAI,UAAU,KAAO,EAAA;AACnB,QAAA,kBAAA,CAAmB,QAAQ,KAAK,CAAA;AAAA,OAE7B,MAAA;AACH,QAAA,MAAM,SAAY,GAAA,KAAA,CAAM,MAAU,IAAA,KAAA,CAAM,WAAW,KAAM,CAAA,OAAA;AAEzD,QAAA,IAAI,SAAa,IAAA,KAAA,CAAM,GAAQ,KAAA,GAAA,IAAO,SAAS,KAAO,EAAA;AACpD,UAAA,MAAM,aAAa,QAAS,EAAA;AAC5B,UAAA,MAAM,MAAS,GAAA,UAAA,CAAW,GAAI,CAAA,CAAA,CAAA,KAAK,EAAE,KAAK,CAAA;AAC1C,UAAW,UAAA,CAAA,KAAA,GAAQ,CAAC,GAAG,MAAM,CAAA;AAC7B,UAAA,KAAA,CAAM,cAAe,EAAA;AACrB,UAAA,eAAA,CAAgB,UAAW,CAAA,UAAA,CAAW,MAAS,GAAA,CAAC,EAAE,GAAG,CAAA;AAAA,SACvD,MAAA,IACS,CAAC,SAAW,EAAA;AACnB,UAAA,MAAM,EAAK,GAAA,qBAAA,CAAsB,KAAM,CAAA,GAAA,EAAK,UAAU,CAAA;AACtD,UAAI,IAAA,EAAA;AACF,YAAA,eAAA,CAAgB,EAAE,CAAA;AAAA;AACtB;AAEF,MAAA,UAAA,CAAW,MAAM;AACf,QAAA,YAAA,CAAa,KAAQ,GAAA,KAAA;AAAA,SACpB,CAAC,CAAA;AAAA;AAGN,IAAA,SAAS,kBAAqB,GAAA;AAC5B,MAAA,WAAA,CAAY,KAAQ,GAAA,IAAA;AAAA;AAEtB,IAAA,SAAS,gBAAmB,GAAA;AAC1B,MAAA,qBAAA,CAAsB,MAAM;AAC1B,QAAA,WAAA,CAAY,KAAQ,GAAA,KAAA;AAAA,OACrB,CAAA;AAAA;AAGH,IAAA,SAAS,kBAAqB,GAAA;AAC5B,MAAA,QAAA,CAAS,MAAM;AACb,QAAA,MAAM,QAAQ,IAAI,aAAA,CAAc,WAAW,EAAE,GAAA,EAAK,UAAU,CAAA;AAC5D,QAAA,mBAAA,CAAoB,KAAK,CAAA;AAAA,OAC1B,CAAA;AAAA;AAGH,IAAA,SAAS,QAAQ,KAAc,EAAA;AAC7B,MAAA,MAAM,KAAK,kBAAmB,CAAA,KAAA;AAE9B,MAAA,IAAK,IAAa,WAAa,EAAA;AAC7B,QAAA,eAAA,CAAgB,KAAQ,GAAA,EAAA;AAAA;AAG1B,MAAA,kBAAA,CAAmB,KAAQ,GAAA,IAAA;AAC3B,MAAA,KAAA,CAAM,SAAS,KAAK,CAAA;AAAA;AAGtB,IAAA,SAAS,QAAQ,KAAc,EAAA;AAC7B,MAAM,MAAA,eAAA,GAAkB,IAAI,WAAY,CAAA,oBAAA,EAAsB,EAAE,OAAS,EAAA,KAAA,EAAO,UAAY,EAAA,IAAA,EAAM,CAAA;AAClG,MAAM,KAAA,CAAA,aAAA,EAAe,cAAc,eAAe,CAAA;AAClD,MAAA,KAAA,CAAM,cAAc,eAAe,CAAA;AAEnC,MAAA,IAAI,eAAgB,CAAA,gBAAA;AAClB,QAAA;AAEF,MAAA,IAAI,gBAAgB,KAAO,EAAA;AACzB,QAAA,eAAA,CAAgB,gBAAgB,KAAK,CAAA;AAAA,OAElC,MAAA;AACH,QAAM,MAAA,EAAA,GAAK,iBAAkB,EAAA,GAAI,CAAC,CAAA;AAClC,QAAA,eAAA,CAAgB,EAAE,CAAA;AAAA;AACpB;AAGF,IAAA,SAAS,oBAAoB,KAAsB,EAAA;AACjD,MAAA,MAAM,SAAS,cAAe,CAAA,KAAA,EAAO,WAAY,CAAA,KAAA,EAAO,IAAI,KAAK,CAAA;AACjE,MAAA,IAAI,CAAC,MAAA;AACH,QAAA;AAEF,MAAA,IAAI,aAAa,iBAAkB,EAAA;AACnC,MAAA,IAAI,mBAAmB,KAAO,EAAA;AAC5B,QAAA,IAAI,WAAW,MAAQ,EAAA;AACrB,UAAA,UAAA,CAAW,OAAQ,EAAA;AAAA,SAEZ,MAAA,IAAA,MAAA,KAAW,MAAU,IAAA,MAAA,KAAW,MAAQ,EAAA;AAC/C,UAAA,IAAI,MAAW,KAAA,MAAA;AACb,YAAA,UAAA,CAAW,OAAQ,EAAA;AAErB,UAAA,MAAM,YAAe,GAAA,UAAA,CAAW,OAAQ,CAAA,kBAAA,CAAmB,KAAK,CAAA;AAChE,UAAa,UAAA,GAAA,UAAA,CAAW,KAAM,CAAA,YAAA,GAAe,CAAC,CAAA;AAAA;AAEhD,QAAsB,qBAAA,CAAA,KAAA,EAAO,UAAW,CAAA,CAAC,CAAC,CAAA;AAAA;AAG5C,MAAA,IAAI,WAAW,MAAQ,EAAA;AACrB,QAAM,MAAA,KAAA,GAAQ,CAAC,kBAAmB,CAAA,KAAA,IAAS,WAAW,MAAS,GAAA,UAAA,CAAW,SAAS,CAAI,GAAA,CAAA;AACvF,QAAgB,eAAA,CAAA,UAAA,CAAW,KAAK,CAAC,CAAA;AAAA;AAGnC,MAAA,IAAI,SAAU,CAAA,KAAA;AACZ,QAAO,OAAA,kBAAA,CAAmB,QAAQ,KAAK,CAAA;AAAA;AAG3C,IAAS,SAAA,qBAAA,CAAsB,OAAsB,QAAuB,EAAA;AAC1E,MAAA,IAAI,SAAU,CAAA,KAAA,IAAS,KAAM,CAAA,iBAAA,KAAsB,SAAa,IAAA,CAAC,QAAS,CAAA,KAAA,IAAS,CAAC,KAAA,CAAM,OAAQ,CAAA,UAAA,CAAW,KAAK,CAAA;AAChH,QAAA;AACF,MAAA,MAAM,SAAY,GAAA,KAAA,CAAM,MAAU,IAAA,KAAA,CAAM,WAAW,KAAM,CAAA,OAAA;AACzD,MAAI,IAAA,SAAA,IAAa,CAAC,KAAM,CAAA,QAAA;AACtB,QAAA;AAEF,MAAA,IAAI,MAAM,QAAU,EAAA;AAClB,QAAM,MAAA,UAAA,GAAa,UAAW,CAAA,MAAA,CAAO,OAAK,CAAE,CAAA,GAAA,CAAI,OAAQ,CAAA,QAAA,KAAa,EAAE,CAAA;AACvE,QAAA,IAAI,YAAY,UAAW,CAAA,IAAA,CAAK,OAAK,CAAE,CAAA,GAAA,KAAQ,QAAQ,CAAG,EAAA,KAAA;AAE1D,QAAI,IAAA,KAAA,CAAM,QAAQ,GAAI,CAAA,GAAA;AACpB,UAAA,SAAA,GAAY,UAAW,CAAA,UAAA,CAAW,MAAS,GAAA,CAAC,CAAE,CAAA,KAAA;AAAA,aACvC,IAAA,KAAA,CAAM,QAAQ,GAAI,CAAA,IAAA;AACzB,UAAY,SAAA,GAAA,UAAA,CAAW,CAAC,CAAE,CAAA,KAAA;AAE5B,QAAI,IAAA,CAAC,SAAa,IAAA,CAAC,UAAW,CAAA,KAAA;AAC5B,UAAA;AAEF,QAAM,MAAA,MAAA,GAAS,iBAAkB,CAAA,UAAA,CAAW,GAAI,CAAA,CAAA,CAAA,KAAK,EAAE,KAAK,CAAA,EAAG,UAAW,CAAA,KAAA,EAAO,SAAS,CAAA;AAC1F,QAAA,UAAA,CAAW,KAAQ,GAAA,MAAA;AAAA;AACrB;AAGF,IAAA,eAAe,kBAAkB,KAAe,EAAA;AAC9C,MAAA,MAAM,QAAS,EAAA;AACf,MAAA,IAAI,UAAU,KAAO,EAAA;AAEnB,QAAA,gBAAA,CAAiB,QAAQ,KAAK,CAAA;AAAA,OAE3B,MAAA;AACH,QAAA,MAAM,aAAa,iBAAkB,EAAA;AACrC,QAAA,MAAM,OAAO,UAAW,CAAA,IAAA,CAAK,OAAK,CAAE,CAAA,OAAA,CAAQ,UAAU,SAAS,CAAA;AAC/D,QAAI,IAAA,IAAA;AACF,UAAA,eAAA,CAAgB,IAAI,CAAA;AAAA,aAAA,IACb,UAAW,CAAA,MAAA;AAClB,UAAgB,eAAA,CAAA,UAAA,CAAW,CAAC,CAAC,CAAA;AAAA;AACjC;AAIF,IAAA,KAAA,CAAM,YAAY,MAAM;AACtB,MAAI,IAAA,CAAC,aAAa,KAAO,EAAA;AACvB,QAAA,QAAA,CAAS,MAAM;AACb,UAAkB,iBAAA,EAAA;AAAA,SACnB,CAAA;AAAA;AACH,OACC,EAAE,SAAA,EAAW,IAAM,EAAA,IAAA,EAAM,MAAM,CAAA;AAElC,IAAa,QAAA,CAAA;AAAA,MACX,kBAAA;AAAA,MACA,aAAA;AAAA,MACA,kBAAA;AAAA,MACA,iBAAA;AAAA,MACA;AAAA,KACD,CAAA;AAED,IAA0B,yBAAA,CAAA;AAAA,MACxB,UAAA;AAAA;AAAA,MAEA,aAAA;AAAA,MACA,QAAA;AAAA,MACA,WAAA;AAAA,MACA,GAAA;AAAA,MACA,QAAA;AAAA,MACA,gBAAA;AAAA,MACA,kBAAA;AAAA,MACA,SAAA;AAAA,MACA,gBAAA;AAAA,MACA,kBAAA;AAAA,MACA,oBAAA;AAAA,MACA,IAAI,KAAM,CAAA,EAAA;AAAA,MACV,UAAA;AAAA,MACA,iBAAA;AAAA,MAEA,SAAA;AAAA,MACA,OAAA;AAAA,MACA,OAAA;AAAA,MACA,eAAA;AAAA,MACA,cAAA;AAAA,MACA,mBAAA;AAAA,MACA,kBAAA;AAAA,MACA,kBAAA;AAAA,MACA,gBAAA;AAAA,MACA;AAAA,KACD,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"ListboxRoot.js","sources":["../../src/Listbox/ListboxRoot.vue"],"sourcesContent":["<script lang=\"ts\">\nimport { createContext, findValuesBetween, useDirection, useFormControl, useKbd, useTypeahead } from '@/shared'\nimport { Primitive } from '..'\nimport { type PrimitiveProps, usePrimitiveElement } from '@/Primitive'\nimport type { AcceptableValue, DataOrientation, Direction, FormFieldProps } from '@/shared/types'\nimport { getFocusIntent } from '@/RovingFocus/utils'\n\ntype ListboxRootContext<T> = {\n modelValue: Ref<T | Array<T> | undefined>\n onValueChange: (val: T) => void\n multiple: Ref<boolean>\n orientation: Ref<DataOrientation>\n dir: Ref<Direction>\n disabled: Ref<boolean>\n highlightOnHover: Ref<boolean>\n highlightedElement: Ref<HTMLElement | null>\n isVirtual: Ref<boolean>\n virtualFocusHook: EventHook<Event | null | undefined>\n virtualKeydownHook: EventHook<KeyboardEvent>\n virtualHighlightHook: EventHook<any>\n by?: string | ((a: T, b: T) => boolean)\n firstValue?: Ref<T | undefined>\n selectionBehavior?: Ref<'toggle' | 'replace'>\n\n focusable: Ref<boolean>\n\n onLeave: (event: Event) => void\n onEnter: (event: Event) => void\n changeHighlight: (el: HTMLElement, scrollIntoView?: boolean) => void\n onKeydownNavigation: (event: KeyboardEvent) => void\n onKeydownEnter: (event: KeyboardEvent) => void\n onKeydownTypeAhead: (event: KeyboardEvent) => void\n onCompositionStart: () => void\n onCompositionEnd: () => void\n highlightFirstItem: (event: InputEvent) => void\n}\n\nexport const [injectListboxRootContext, provideListboxRootContext]\n = createContext<ListboxRootContext<AcceptableValue>>('ListboxRoot')\n\nexport interface ListboxRootProps<T = AcceptableValue> extends PrimitiveProps, FormFieldProps {\n /** The controlled value of the listbox. Can be binded with with `v-model`. */\n modelValue?: T | Array<T>\n /** The value of the listbox when initially rendered. Use when you do not need to control the state of the Listbox */\n defaultValue?: T | Array<T>\n /** Whether multiple options can be selected or not. */\n multiple?: boolean\n /** The orientation of the listbox. <br>Mainly so arrow navigation is done accordingly (left & right vs. up & down) */\n orientation?: DataOrientation\n /** The reading direction of the listbox when applicable. <br> If omitted, inherits globally from `ConfigProvider` or assumes LTR (left-to-right) reading mode. */\n dir?: Direction\n /** When `true`, prevents the user from interacting with listbox */\n disabled?: boolean\n /**\n * How multiple selection should behave in the collection.\n * @defaultValue 'toggle'\n */\n selectionBehavior?: 'toggle' | 'replace'\n /** When `true`, hover over item will trigger highlight */\n highlightOnHover?: boolean\n /** Use this to compare objects by a particular field, or pass your own comparison function for complete control over how objects are compared. */\n by?: string | ((a: T, b: T) => boolean)\n}\n\nexport type ListboxRootEmits<T = AcceptableValue> = {\n /** Event handler called when the value changes. */\n 'update:modelValue': [value: T]\n /** Event handler when highlighted element changes. */\n 'highlight': [payload: { ref: HTMLElement, value: T } | undefined]\n /** Event handler called when container is being focused. Can be prevented. */\n 'entryFocus': [event: CustomEvent]\n /** Event handler called when the mouse leave the container */\n 'leave': [event: Event]\n}\n</script>\n\n<script setup lang=\"ts\" generic=\"T extends AcceptableValue = AcceptableValue\">\nimport { type EventHook, createEventHook, useVModel } from '@vueuse/core'\nimport { type Ref, nextTick, ref, toRefs, watch } from 'vue'\nimport { compare } from './utils'\nimport { useCollection } from '@/Collection'\nimport { VisuallyHiddenInput } from '@/VisuallyHidden'\n\nconst props = withDefaults(defineProps<ListboxRootProps>(), {\n selectionBehavior: 'toggle',\n orientation: 'vertical',\n})\nconst emits = defineEmits<ListboxRootEmits>()\n\ndefineSlots<{\n default: (props: {\n /** Current active value */\n modelValue: typeof modelValue.value\n }) => any\n}>()\n\nconst { multiple, highlightOnHover, orientation, disabled, selectionBehavior, dir: propDir } = toRefs(props)\nconst { getItems } = useCollection<{ value: T }>({ isProvider: true })\nconst { handleTypeaheadSearch } = useTypeahead()\nconst { primitiveElement, currentElement } = usePrimitiveElement()\nconst kbd = useKbd()\nconst dir = useDirection(propDir)\n\nconst isFormControl = useFormControl(currentElement)\n\nconst firstValue = ref<T>()\nconst isUserAction = ref(false)\nconst focusable = ref(true)\nconst modelValue = useVModel(props, 'modelValue', emits, {\n defaultValue: props.defaultValue ?? (multiple.value ? [] : undefined),\n passive: (props.modelValue === undefined) as false,\n deep: true,\n}) as Ref<T | T[] | undefined>\n\nfunction onValueChange(val: T) {\n isUserAction.value = true\n if (props.multiple) {\n const modelArray = Array.isArray(modelValue.value) ? [...modelValue.value] : []\n const index = modelArray.findIndex(i => compare(i, val, props.by))\n if (props.selectionBehavior === 'toggle') {\n index === -1 ? modelArray.push(val) : modelArray.splice(index, 1)\n modelValue.value = modelArray\n }\n else {\n modelValue.value = [val]\n firstValue.value = val\n }\n }\n else {\n if (props.selectionBehavior === 'toggle') {\n if (compare(modelValue.value, val, props.by))\n modelValue.value = undefined\n else\n modelValue.value = val\n }\n else {\n modelValue.value = val\n }\n }\n setTimeout(() => {\n isUserAction.value = false\n }, 1)\n}\n\nconst highlightedElement = ref<HTMLElement | null>(null)\nconst previousElement = ref<HTMLElement | null>(null)\nconst isVirtual = ref(false)\nconst isComposing = ref(false)\nconst virtualFocusHook = createEventHook<Event | null | undefined>()\nconst virtualKeydownHook = createEventHook<KeyboardEvent>()\nconst virtualHighlightHook = createEventHook<T>()\n\nfunction getCollectionItem() {\n return getItems().map(i => i.ref).filter(i => i.dataset.disabled !== '')\n}\n\nfunction changeHighlight(el: HTMLElement, scrollIntoView = true) {\n if (!el)\n return\n\n highlightedElement.value = el\n if (focusable.value)\n highlightedElement.value.focus()\n if (scrollIntoView)\n highlightedElement.value.scrollIntoView({ block: 'nearest' })\n\n const highlightedItem = getItems().find(i => i.ref === el)\n emits('highlight', highlightedItem)\n}\n\nfunction highlightItem(value: T) {\n if (isVirtual.value) {\n virtualHighlightHook.trigger(value)\n }\n else {\n const item = getItems().find(i => compare(i.value, value, props.by))\n if (item) {\n highlightedElement.value = item.ref\n changeHighlight(item.ref)\n }\n }\n}\n\nfunction onKeydownEnter(event: KeyboardEvent) {\n if (highlightedElement.value && highlightedElement.value.isConnected) {\n event.preventDefault()\n event.stopPropagation()\n\n if (!isComposing.value) {\n highlightedElement.value.click()\n }\n }\n}\n\nfunction onKeydownTypeAhead(event: KeyboardEvent) {\n if (!focusable.value)\n return\n isUserAction.value = true\n if (isVirtual.value) {\n virtualKeydownHook.trigger(event)\n }\n else {\n const isMetaKey = event.altKey || event.ctrlKey || event.metaKey\n\n if (isMetaKey && event.key === 'a' && multiple.value) {\n const collection = getItems()\n const values = collection.map(i => i.value)\n modelValue.value = [...values]\n event.preventDefault()\n changeHighlight(collection[collection.length - 1].ref)\n }\n else if (!isMetaKey) {\n const el = handleTypeaheadSearch(event.key, getItems())\n if (el)\n changeHighlight(el)\n }\n }\n setTimeout(() => {\n isUserAction.value = false\n }, 1)\n}\n\nfunction onCompositionStart() {\n isComposing.value = true\n}\nfunction onCompositionEnd() {\n requestAnimationFrame(() => {\n isComposing.value = false\n })\n}\n\nfunction highlightFirstItem() {\n nextTick(() => {\n const event = new KeyboardEvent('keydown', { key: 'PageUp' })\n onKeydownNavigation(event)\n })\n}\n\nfunction onLeave(event: Event) {\n const el = highlightedElement.value\n\n if ((el as Node)?.isConnected) {\n previousElement.value = el\n }\n\n highlightedElement.value = null\n emits('leave', event)\n}\n\nfunction onEnter(event: Event) {\n const entryFocusEvent = new CustomEvent('listbox.entryFocus', { bubbles: false, cancelable: true })\n event.currentTarget?.dispatchEvent(entryFocusEvent)\n emits('entryFocus', entryFocusEvent)\n\n if (entryFocusEvent.defaultPrevented)\n return\n\n if (previousElement.value) {\n changeHighlight(previousElement.value)\n }\n else {\n const el = getCollectionItem()?.[0]\n changeHighlight(el)\n }\n}\n\nfunction onKeydownNavigation(event: KeyboardEvent) {\n const intent = getFocusIntent(event, orientation.value, dir.value)\n if (!intent)\n return\n\n let collection = getCollectionItem()\n if (highlightedElement.value) {\n if (intent === 'last') {\n collection.reverse()\n }\n else if (intent === 'prev' || intent === 'next') {\n if (intent === 'prev')\n collection.reverse()\n\n const currentIndex = collection.indexOf(highlightedElement.value)\n collection = collection.slice(currentIndex + 1)\n }\n handleMultipleReplace(event, collection[0])\n }\n\n if (collection.length) {\n const index = !highlightedElement.value && intent === 'prev' ? collection.length - 1 : 0\n changeHighlight(collection[index])\n }\n\n if (isVirtual.value)\n return virtualKeydownHook.trigger(event)\n}\n\nfunction handleMultipleReplace(event: KeyboardEvent, targetEl: HTMLElement) {\n if (isVirtual.value || props.selectionBehavior !== 'replace' || !multiple.value || !Array.isArray(modelValue.value))\n return\n const isMetaKey = event.altKey || event.ctrlKey || event.metaKey\n if (isMetaKey && !event.shiftKey)\n return\n\n if (event.shiftKey) {\n const collection = getItems().filter(i => i.ref.dataset.disabled !== '')\n let lastValue = collection.find(i => i.ref === targetEl)?.value\n\n if (event.key === kbd.END)\n lastValue = collection[collection.length - 1].value\n else if (event.key === kbd.HOME)\n lastValue = collection[0].value\n\n if (!lastValue || !firstValue.value)\n return\n\n const values = findValuesBetween(collection.map(i => i.value), firstValue.value, lastValue)\n modelValue.value = values\n }\n}\n\nasync function highlightSelected(event?: Event) {\n await nextTick()\n if (isVirtual.value) {\n // Trigger on nextTick for Virtualizer to be mounted\n virtualFocusHook.trigger(event)\n }\n else {\n const collection = getCollectionItem()\n const item = collection.find(i => i.dataset.state === 'checked')\n if (item)\n changeHighlight(item)\n else if (collection.length)\n changeHighlight(collection[0])\n }\n}\n\n// watch for only programmatic changes\nwatch(modelValue, () => {\n if (!isUserAction.value) {\n nextTick(() => {\n highlightSelected()\n })\n }\n}, { immediate: true, deep: true })\n\ndefineExpose({\n highlightedElement,\n highlightItem,\n highlightFirstItem,\n highlightSelected,\n getItems,\n})\n\nprovideListboxRootContext({\n modelValue,\n // @ts-expect-error ignoring\n onValueChange,\n multiple,\n orientation,\n dir,\n disabled,\n highlightOnHover,\n highlightedElement,\n isVirtual,\n virtualFocusHook,\n virtualKeydownHook,\n virtualHighlightHook,\n by: props.by,\n firstValue,\n selectionBehavior,\n\n focusable,\n onLeave,\n onEnter,\n changeHighlight,\n onKeydownEnter,\n onKeydownNavigation,\n onKeydownTypeAhead,\n onCompositionStart,\n onCompositionEnd,\n highlightFirstItem,\n})\n</script>\n\n<template>\n <Primitive\n ref=\"primitiveElement\"\n :as=\"as\"\n :as-child=\"asChild\"\n :dir=\"dir\"\n :data-disabled=\"disabled ? '' : undefined\"\n @pointerleave=\"onLeave\"\n @focusout=\"async (event: FocusEvent) => {\n const target = (event.relatedTarget || event.target) as HTMLElement | null\n await nextTick()\n if (highlightedElement && currentElement && !currentElement.contains(target)) {\n onLeave(event)\n }\n }\"\n >\n <slot :model-value=\"modelValue\" />\n\n <VisuallyHiddenInput\n v-if=\"isFormControl && name\"\n :name=\"name\"\n :value=\"modelValue\"\n :disabled=\"disabled\"\n :required=\"required\"\n />\n </Primitive>\n</template>\n"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { defineComponent, useSlots, computed, Fragment, cloneVNode, openBlock, createElementBlock, normalizeStyle, unref, renderList, createBlock, resolveDynamicComponent } from 'vue';
1
+ import { defineComponent, useSlots, computed, Fragment, cloneVNode, createElementBlock, openBlock, normalizeStyle, unref, renderList, createBlock, resolveDynamicComponent } from 'vue';
2
2
  import { useVirtualizer } from '@tanstack/vue-virtual';
3
3
  import { c as compare, q as queryCheckedElement } from './utils.js';
4
4
  import { M as MAP_KEY_TO_FOCUS_INTENT } from '../RovingFocus/utils.js';
@@ -6,7 +6,7 @@ function queryCheckedElement(parentEl) {
6
6
  return parentEl?.querySelector("[data-state=checked]");
7
7
  }
8
8
  function valueComparator(value, currentValue, comparator) {
9
- if (value === undefined)
9
+ if (value === void 0)
10
10
  return false;
11
11
  else if (Array.isArray(value))
12
12
  return value.some((val) => compare(val, currentValue, comparator));
@@ -14,7 +14,7 @@ function valueComparator(value, currentValue, comparator) {
14
14
  return compare(value, currentValue, comparator);
15
15
  }
16
16
  function compare(value, currentValue, comparator) {
17
- if (value === undefined || currentValue === undefined)
17
+ if (value === void 0 || currentValue === void 0)
18
18
  return false;
19
19
  if (typeof value === "string")
20
20
  return value === currentValue;
@@ -1 +1 @@
1
- {"version":3,"file":"utils.cjs","sources":["../../src/Listbox/utils.ts"],"sourcesContent":["import { isEqual } from 'ohash'\n\nexport function queryCheckedElement(parentEl: HTMLElement | null) {\n return parentEl?.querySelector('[data-state=checked]') as HTMLElement | null\n}\n\nexport function valueComparator<T>(value: T | T[] | undefined, currentValue: T, comparator?: string | ((a: T, b: T) => boolean)) {\n if (value === undefined)\n return false\n else if (Array.isArray(value))\n return value.some(val => compare(val, currentValue, comparator))\n else\n return compare(value, currentValue, comparator)\n}\n\nexport function compare<T>(value?: T, currentValue?: T, comparator?: string | ((a: T, b: T) => boolean)) {\n if (value === undefined || currentValue === undefined)\n return false\n\n if (typeof value === 'string')\n return value === currentValue\n\n if (typeof comparator === 'function')\n return comparator(value, currentValue)\n\n if (typeof comparator === 'string')\n return value?.[comparator as keyof T] === currentValue?.[comparator as keyof T]\n\n return isEqual(value, currentValue)\n}\n"],"names":["isEqual"],"mappings":";;;;AAEO,SAAS,oBAAoB,QAA8B,EAAA;AAChE,EAAO,OAAA,QAAA,EAAU,cAAc,sBAAsB,CAAA;AACvD;AAEgB,SAAA,eAAA,CAAmB,KAA4B,EAAA,YAAA,EAAiB,UAAiD,EAAA;AAC/H,EAAA,IAAI,KAAU,KAAA,SAAA;AACZ,IAAO,OAAA,KAAA;AAAA,OACA,IAAA,KAAA,CAAM,QAAQ,KAAK,CAAA;AAC1B,IAAA,OAAO,MAAM,IAAK,CAAA,CAAA,GAAA,KAAO,QAAQ,GAAK,EAAA,YAAA,EAAc,UAAU,CAAC,CAAA;AAAA;AAE/D,IAAO,OAAA,OAAA,CAAQ,KAAO,EAAA,YAAA,EAAc,UAAU,CAAA;AAClD;AAEgB,SAAA,OAAA,CAAW,KAAW,EAAA,YAAA,EAAkB,UAAiD,EAAA;AACvG,EAAI,IAAA,KAAA,KAAU,aAAa,YAAiB,KAAA,SAAA;AAC1C,IAAO,OAAA,KAAA;AAET,EAAA,IAAI,OAAO,KAAU,KAAA,QAAA;AACnB,IAAA,OAAO,KAAU,KAAA,YAAA;AAEnB,EAAA,IAAI,OAAO,UAAe,KAAA,UAAA;AACxB,IAAO,OAAA,UAAA,CAAW,OAAO,YAAY,CAAA;AAEvC,EAAA,IAAI,OAAO,UAAe,KAAA,QAAA;AACxB,IAAA,OAAO,KAAQ,GAAA,UAAqB,CAAM,KAAA,YAAA,GAAe,UAAqB,CAAA;AAEhF,EAAO,OAAAA,aAAA,CAAQ,OAAO,YAAY,CAAA;AACpC;;;;;;"}
1
+ {"version":3,"file":"utils.cjs","sources":["../../src/Listbox/utils.ts"],"sourcesContent":["import { isEqual } from 'ohash'\n\nexport function queryCheckedElement(parentEl: HTMLElement | null) {\n return parentEl?.querySelector('[data-state=checked]') as HTMLElement | null\n}\n\nexport function valueComparator<T>(value: T | T[] | undefined, currentValue: T, comparator?: string | ((a: T, b: T) => boolean)) {\n if (value === undefined)\n return false\n else if (Array.isArray(value))\n return value.some(val => compare(val, currentValue, comparator))\n else\n return compare(value, currentValue, comparator)\n}\n\nexport function compare<T>(value?: T, currentValue?: T, comparator?: string | ((a: T, b: T) => boolean)) {\n if (value === undefined || currentValue === undefined)\n return false\n\n if (typeof value === 'string')\n return value === currentValue\n\n if (typeof comparator === 'function')\n return comparator(value, currentValue)\n\n if (typeof comparator === 'string')\n return value?.[comparator as keyof T] === currentValue?.[comparator as keyof T]\n\n return isEqual(value, currentValue)\n}\n"],"names":["isEqual"],"mappings":";;;;AAEO,SAAS,oBAAoB,QAA8B,EAAA;AAChE,EAAO,OAAA,QAAA,EAAU,cAAc,sBAAsB,CAAA;AACvD;AAEgB,SAAA,eAAA,CAAmB,KAA4B,EAAA,YAAA,EAAiB,UAAiD,EAAA;AAC/H,EAAA,IAAI,KAAU,KAAA,MAAA;AACZ,IAAO,OAAA,KAAA;AAAA,OACA,IAAA,KAAA,CAAM,QAAQ,KAAK,CAAA;AAC1B,IAAA,OAAO,MAAM,IAAK,CAAA,CAAA,GAAA,KAAO,QAAQ,GAAK,EAAA,YAAA,EAAc,UAAU,CAAC,CAAA;AAAA;AAE/D,IAAO,OAAA,OAAA,CAAQ,KAAO,EAAA,YAAA,EAAc,UAAU,CAAA;AAClD;AAEgB,SAAA,OAAA,CAAW,KAAW,EAAA,YAAA,EAAkB,UAAiD,EAAA;AACvG,EAAI,IAAA,KAAA,KAAU,UAAa,YAAiB,KAAA,MAAA;AAC1C,IAAO,OAAA,KAAA;AAET,EAAA,IAAI,OAAO,KAAU,KAAA,QAAA;AACnB,IAAA,OAAO,KAAU,KAAA,YAAA;AAEnB,EAAA,IAAI,OAAO,UAAe,KAAA,UAAA;AACxB,IAAO,OAAA,UAAA,CAAW,OAAO,YAAY,CAAA;AAEvC,EAAA,IAAI,OAAO,UAAe,KAAA,QAAA;AACxB,IAAA,OAAO,KAAQ,GAAA,UAAqB,CAAM,KAAA,YAAA,GAAe,UAAqB,CAAA;AAEhF,EAAO,OAAAA,aAAA,CAAQ,OAAO,YAAY,CAAA;AACpC;;;;;;"}
@@ -4,7 +4,7 @@ function queryCheckedElement(parentEl) {
4
4
  return parentEl?.querySelector("[data-state=checked]");
5
5
  }
6
6
  function valueComparator(value, currentValue, comparator) {
7
- if (value === undefined)
7
+ if (value === void 0)
8
8
  return false;
9
9
  else if (Array.isArray(value))
10
10
  return value.some((val) => compare(val, currentValue, comparator));
@@ -12,7 +12,7 @@ function valueComparator(value, currentValue, comparator) {
12
12
  return compare(value, currentValue, comparator);
13
13
  }
14
14
  function compare(value, currentValue, comparator) {
15
- if (value === undefined || currentValue === undefined)
15
+ if (value === void 0 || currentValue === void 0)
16
16
  return false;
17
17
  if (typeof value === "string")
18
18
  return value === currentValue;
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sources":["../../src/Listbox/utils.ts"],"sourcesContent":["import { isEqual } from 'ohash'\n\nexport function queryCheckedElement(parentEl: HTMLElement | null) {\n return parentEl?.querySelector('[data-state=checked]') as HTMLElement | null\n}\n\nexport function valueComparator<T>(value: T | T[] | undefined, currentValue: T, comparator?: string | ((a: T, b: T) => boolean)) {\n if (value === undefined)\n return false\n else if (Array.isArray(value))\n return value.some(val => compare(val, currentValue, comparator))\n else\n return compare(value, currentValue, comparator)\n}\n\nexport function compare<T>(value?: T, currentValue?: T, comparator?: string | ((a: T, b: T) => boolean)) {\n if (value === undefined || currentValue === undefined)\n return false\n\n if (typeof value === 'string')\n return value === currentValue\n\n if (typeof comparator === 'function')\n return comparator(value, currentValue)\n\n if (typeof comparator === 'string')\n return value?.[comparator as keyof T] === currentValue?.[comparator as keyof T]\n\n return isEqual(value, currentValue)\n}\n"],"names":[],"mappings":";;AAEO,SAAS,oBAAoB,QAA8B,EAAA;AAChE,EAAO,OAAA,QAAA,EAAU,cAAc,sBAAsB,CAAA;AACvD;AAEgB,SAAA,eAAA,CAAmB,KAA4B,EAAA,YAAA,EAAiB,UAAiD,EAAA;AAC/H,EAAA,IAAI,KAAU,KAAA,SAAA;AACZ,IAAO,OAAA,KAAA;AAAA,OACA,IAAA,KAAA,CAAM,QAAQ,KAAK,CAAA;AAC1B,IAAA,OAAO,MAAM,IAAK,CAAA,CAAA,GAAA,KAAO,QAAQ,GAAK,EAAA,YAAA,EAAc,UAAU,CAAC,CAAA;AAAA;AAE/D,IAAO,OAAA,OAAA,CAAQ,KAAO,EAAA,YAAA,EAAc,UAAU,CAAA;AAClD;AAEgB,SAAA,OAAA,CAAW,KAAW,EAAA,YAAA,EAAkB,UAAiD,EAAA;AACvG,EAAI,IAAA,KAAA,KAAU,aAAa,YAAiB,KAAA,SAAA;AAC1C,IAAO,OAAA,KAAA;AAET,EAAA,IAAI,OAAO,KAAU,KAAA,QAAA;AACnB,IAAA,OAAO,KAAU,KAAA,YAAA;AAEnB,EAAA,IAAI,OAAO,UAAe,KAAA,UAAA;AACxB,IAAO,OAAA,UAAA,CAAW,OAAO,YAAY,CAAA;AAEvC,EAAA,IAAI,OAAO,UAAe,KAAA,QAAA;AACxB,IAAA,OAAO,KAAQ,GAAA,UAAqB,CAAM,KAAA,YAAA,GAAe,UAAqB,CAAA;AAEhF,EAAO,OAAA,OAAA,CAAQ,OAAO,YAAY,CAAA;AACpC;;;;"}
1
+ {"version":3,"file":"utils.js","sources":["../../src/Listbox/utils.ts"],"sourcesContent":["import { isEqual } from 'ohash'\n\nexport function queryCheckedElement(parentEl: HTMLElement | null) {\n return parentEl?.querySelector('[data-state=checked]') as HTMLElement | null\n}\n\nexport function valueComparator<T>(value: T | T[] | undefined, currentValue: T, comparator?: string | ((a: T, b: T) => boolean)) {\n if (value === undefined)\n return false\n else if (Array.isArray(value))\n return value.some(val => compare(val, currentValue, comparator))\n else\n return compare(value, currentValue, comparator)\n}\n\nexport function compare<T>(value?: T, currentValue?: T, comparator?: string | ((a: T, b: T) => boolean)) {\n if (value === undefined || currentValue === undefined)\n return false\n\n if (typeof value === 'string')\n return value === currentValue\n\n if (typeof comparator === 'function')\n return comparator(value, currentValue)\n\n if (typeof comparator === 'string')\n return value?.[comparator as keyof T] === currentValue?.[comparator as keyof T]\n\n return isEqual(value, currentValue)\n}\n"],"names":[],"mappings":";;AAEO,SAAS,oBAAoB,QAA8B,EAAA;AAChE,EAAO,OAAA,QAAA,EAAU,cAAc,sBAAsB,CAAA;AACvD;AAEgB,SAAA,eAAA,CAAmB,KAA4B,EAAA,YAAA,EAAiB,UAAiD,EAAA;AAC/H,EAAA,IAAI,KAAU,KAAA,MAAA;AACZ,IAAO,OAAA,KAAA;AAAA,OACA,IAAA,KAAA,CAAM,QAAQ,KAAK,CAAA;AAC1B,IAAA,OAAO,MAAM,IAAK,CAAA,CAAA,GAAA,KAAO,QAAQ,GAAK,EAAA,YAAA,EAAc,UAAU,CAAC,CAAA;AAAA;AAE/D,IAAO,OAAA,OAAA,CAAQ,KAAO,EAAA,YAAA,EAAc,UAAU,CAAA;AAClD;AAEgB,SAAA,OAAA,CAAW,KAAW,EAAA,YAAA,EAAkB,UAAiD,EAAA;AACvG,EAAI,IAAA,KAAA,KAAU,UAAa,YAAiB,KAAA,MAAA;AAC1C,IAAO,OAAA,KAAA;AAET,EAAA,IAAI,OAAO,KAAU,KAAA,QAAA;AACnB,IAAA,OAAO,KAAU,KAAA,YAAA;AAEnB,EAAA,IAAI,OAAO,UAAe,KAAA,UAAA;AACxB,IAAO,OAAA,UAAA,CAAW,OAAO,YAAY,CAAA;AAEvC,EAAA,IAAI,OAAO,UAAe,KAAA,QAAA;AACxB,IAAA,OAAO,KAAQ,GAAA,UAAqB,CAAM,KAAA,YAAA,GAAe,UAAqB,CAAA;AAEhF,EAAO,OAAA,OAAA,CAAQ,OAAO,YAAY,CAAA;AACpC;;;;"}
@@ -1,4 +1,4 @@
1
- import { defineComponent, openBlock, createBlock, unref, normalizeProps, guardReactiveProps, withCtx, renderSlot } from 'vue';
1
+ import { defineComponent, createBlock, openBlock, unref, normalizeProps, guardReactiveProps, withCtx, renderSlot } from 'vue';
2
2
  import { _ as _sfc_main$1 } from '../Popper/PopperAnchor.js';
3
3
 
4
4
  const _sfc_main = /* @__PURE__ */ defineComponent({
@@ -1,4 +1,4 @@
1
- import { defineComponent, openBlock, createBlock, unref, normalizeProps, guardReactiveProps, withCtx, renderSlot } from 'vue';
1
+ import { defineComponent, createBlock, openBlock, unref, normalizeProps, guardReactiveProps, withCtx, renderSlot } from 'vue';
2
2
  import { _ as _sfc_main$1 } from '../Popper/PopperArrow.js';
3
3
 
4
4
  const _sfc_main = /* @__PURE__ */ defineComponent({
@@ -1,4 +1,4 @@
1
- import { defineComponent, openBlock, createBlock, mergeProps, unref, withCtx, renderSlot } from 'vue';
1
+ import { defineComponent, createBlock, openBlock, mergeProps, unref, withCtx, renderSlot } from 'vue';
2
2
  import { useVModel } from '@vueuse/core';
3
3
  import { i as isIndeterminate, a as getCheckedState } from './utils.js';
4
4
  import { _ as _sfc_main$1 } from './MenuItem.js';
@@ -1,4 +1,4 @@
1
- import { defineComponent, openBlock, createBlock, unref, withCtx, normalizeProps, mergeProps, renderSlot } from 'vue';
1
+ import { defineComponent, createBlock, openBlock, unref, withCtx, normalizeProps, mergeProps, renderSlot } from 'vue';
2
2
  import { _ as _sfc_main$1 } from './MenuRootContentModal.js';
3
3
  import { _ as _sfc_main$2 } from './MenuRootContentNonModal.js';
4
4
  import { u as useForwardPropsEmits } from '../shared/useForwardPropsEmits.js';
@@ -4,14 +4,14 @@ const vue = require('vue');
4
4
  const Menu_utils = require('./utils.cjs');
5
5
  const DismissableLayer_DismissableLayer = require('../DismissableLayer/DismissableLayer.cjs');
6
6
  const Popper_PopperContent = require('../Popper/PopperContent.cjs');
7
- const RovingFocus_RovingFocusGroup = require('../RovingFocus/RovingFocusGroup.cjs');
8
7
  const shared_useBodyScrollLock = require('../shared/useBodyScrollLock.cjs');
9
8
  const Menu_MenuRoot = require('./MenuRoot.cjs');
10
9
  const shared_useFocusGuards = require('../shared/useFocusGuards.cjs');
11
10
  const shared_useForwardExpose = require('../shared/useForwardExpose.cjs');
12
11
  const shared_useTypeahead = require('../shared/useTypeahead.cjs');
13
- const FocusScope_FocusScope = require('../FocusScope/FocusScope.cjs');
14
12
  const shared_createContext = require('../shared/createContext.cjs');
13
+ const FocusScope_FocusScope = require('../FocusScope/FocusScope.cjs');
14
+ const RovingFocus_RovingFocusGroup = require('../RovingFocus/RovingFocusGroup.cjs');
15
15
  const shared_useArrowNavigation = require('../shared/useArrowNavigation.cjs');
16
16
  const shared_getActiveElement = require('../shared/getActiveElement.cjs');
17
17
 
@@ -1,15 +1,15 @@
1
- import { defineComponent, mergeDefaults, toRefs, ref, watch, onUnmounted, openBlock, createBlock, unref, withCtx, createVNode, renderSlot } from 'vue';
1
+ import { defineComponent, mergeDefaults, toRefs, ref, watch, onUnmounted, createBlock, openBlock, unref, withCtx, createVNode, renderSlot } from 'vue';
2
2
  import { g as getOpenState, b as isPointerInGraceArea, F as FIRST_LAST_KEYS, L as LAST_KEYS, f as focusFirst, c as isMouseEvent } from './utils.js';
3
3
  import { _ as _sfc_main$2 } from '../DismissableLayer/DismissableLayer.js';
4
- import { P as PopperContentPropsDefaultValue, _ as _sfc_main$4 } from '../Popper/PopperContent.js';
5
- import { _ as _sfc_main$3 } from '../RovingFocus/RovingFocusGroup.js';
4
+ import { _ as _sfc_main$4, P as PopperContentPropsDefaultValue } from '../Popper/PopperContent.js';
6
5
  import { u as useBodyScrollLock } from '../shared/useBodyScrollLock.js';
7
6
  import { i as injectMenuContext, a as injectMenuRootContext } from './MenuRoot.js';
8
7
  import { u as useFocusGuards } from '../shared/useFocusGuards.js';
9
8
  import { u as useForwardExpose } from '../shared/useForwardExpose.js';
10
9
  import { u as useTypeahead } from '../shared/useTypeahead.js';
11
- import { _ as _sfc_main$1 } from '../FocusScope/FocusScope.js';
12
10
  import { c as createContext } from '../shared/createContext.js';
11
+ import { _ as _sfc_main$1 } from '../FocusScope/FocusScope.js';
12
+ import { _ as _sfc_main$3 } from '../RovingFocus/RovingFocusGroup.js';
13
13
  import { u as useArrowNavigation } from '../shared/useArrowNavigation.js';
14
14
  import { g as getActiveElement } from '../shared/getActiveElement.js';
15
15
 
@@ -1,4 +1,4 @@
1
- import { defineComponent, openBlock, createBlock, unref, mergeProps, withCtx, renderSlot } from 'vue';
1
+ import { defineComponent, createBlock, openBlock, unref, mergeProps, withCtx, renderSlot } from 'vue';
2
2
  import { P as Primitive } from '../Primitive/Primitive.js';
3
3
 
4
4
  const _sfc_main = /* @__PURE__ */ defineComponent({
@@ -1,4 +1,4 @@
1
- import { defineComponent, ref, openBlock, createBlock, mergeProps, unref, nextTick, withCtx, renderSlot } from 'vue';
1
+ import { defineComponent, ref, createBlock, openBlock, mergeProps, unref, nextTick, withCtx, renderSlot } from 'vue';
2
2
  import { _ as _sfc_main$1 } from './MenuItemImpl.js';
3
3
  import { S as SELECTION_KEYS, I as ITEM_SELECT } from './utils.js';
4
4
  import { u as useForwardExpose } from '../shared/useForwardExpose.js';
@@ -59,9 +59,9 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
59
59
  }, _ctx.$attrs, {
60
60
  as: _ctx.as,
61
61
  "as-child": _ctx.asChild,
62
- "aria-disabled": _ctx.disabled || undefined,
63
- "data-disabled": _ctx.disabled ? "" : undefined,
64
- "data-highlighted": isFocused.value ? "" : undefined,
62
+ "aria-disabled": _ctx.disabled || void 0,
63
+ "data-disabled": _ctx.disabled ? "" : void 0,
64
+ "data-highlighted": isFocused.value ? "" : void 0,
65
65
  onPointermove: handlePointerMove,
66
66
  onPointerleave: handlePointerLeave,
67
67
  onFocus: _cache[0] || (_cache[0] = async (event) => {
@@ -1,4 +1,4 @@
1
- import { defineComponent, ref, openBlock, createBlock, unref, withCtx, createVNode, mergeProps, nextTick, renderSlot } from 'vue';
1
+ import { defineComponent, ref, createBlock, openBlock, unref, withCtx, createVNode, mergeProps, nextTick, renderSlot } from 'vue';
2
2
  import { c as isMouseEvent } from './utils.js';
3
3
  import { u as useCollection } from '../Collection/Collection.js';
4
4
  import { i as injectMenuContentContext } from './MenuContentImpl.js';
@@ -57,9 +57,9 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
57
57
  }, _ctx.$attrs, {
58
58
  as: _ctx.as,
59
59
  "as-child": _ctx.asChild,
60
- "aria-disabled": _ctx.disabled || undefined,
61
- "data-disabled": _ctx.disabled ? "" : undefined,
62
- "data-highlighted": isFocused.value ? "" : undefined,
60
+ "aria-disabled": _ctx.disabled || void 0,
61
+ "data-disabled": _ctx.disabled ? "" : void 0,
62
+ "data-highlighted": isFocused.value ? "" : void 0,
63
63
  onPointermove: handlePointerMove,
64
64
  onPointerleave: handlePointerLeave,
65
65
  onFocus: _cache[0] || (_cache[0] = async (event) => {
@@ -2,9 +2,9 @@
2
2
 
3
3
  const vue = require('vue');
4
4
  const Menu_utils = require('./utils.cjs');
5
+ const shared_createContext = require('../shared/createContext.cjs');
5
6
  const Presence_Presence = require('../Presence/Presence.cjs');
6
7
  const Primitive_Primitive = require('../Primitive/Primitive.cjs');
7
- const shared_createContext = require('../shared/createContext.cjs');
8
8
 
9
9
  const [injectMenuItemIndicatorContext, provideMenuItemIndicatorContext] = shared_createContext.createContext(
10
10
  ["MenuCheckboxItem", "MenuRadioItem"],
@@ -1,8 +1,8 @@
1
- import { defineComponent, ref, openBlock, createBlock, unref, withCtx, createVNode, renderSlot } from 'vue';
1
+ import { defineComponent, ref, createBlock, openBlock, unref, withCtx, createVNode, renderSlot } from 'vue';
2
2
  import { i as isIndeterminate, a as getCheckedState } from './utils.js';
3
+ import { c as createContext } from '../shared/createContext.js';
3
4
  import { P as Presence } from '../Presence/Presence.js';
4
5
  import { P as Primitive } from '../Primitive/Primitive.js';
5
- import { c as createContext } from '../shared/createContext.js';
6
6
 
7
7
  const [injectMenuItemIndicatorContext, provideMenuItemIndicatorContext] = createContext(
8
8
  ["MenuCheckboxItem", "MenuRadioItem"],
@@ -1,4 +1,4 @@
1
- import { defineComponent, openBlock, createBlock, unref, normalizeProps, guardReactiveProps, withCtx, renderSlot } from 'vue';
1
+ import { defineComponent, createBlock, openBlock, unref, normalizeProps, guardReactiveProps, withCtx, renderSlot } from 'vue';
2
2
  import { P as Primitive } from '../Primitive/Primitive.js';
3
3
 
4
4
  const _sfc_main = /* @__PURE__ */ defineComponent({
@@ -1,4 +1,4 @@
1
- import { defineComponent, openBlock, createBlock, unref, normalizeProps, guardReactiveProps, withCtx, renderSlot } from 'vue';
1
+ import { defineComponent, createBlock, openBlock, unref, normalizeProps, guardReactiveProps, withCtx, renderSlot } from 'vue';
2
2
  import { _ as _sfc_main$1 } from '../Teleport/Teleport.js';
3
3
 
4
4
  const _sfc_main = /* @__PURE__ */ defineComponent({
@@ -1,4 +1,4 @@
1
- import { defineComponent, openBlock, createBlock, normalizeProps, guardReactiveProps, withCtx, renderSlot, unref } from 'vue';
1
+ import { defineComponent, createBlock, openBlock, normalizeProps, guardReactiveProps, withCtx, renderSlot, unref } from 'vue';
2
2
  import { useVModel } from '@vueuse/core';
3
3
  import { _ as _sfc_main$1 } from './MenuGroup.js';
4
4
  import { c as createContext } from '../shared/createContext.js';
@@ -1,4 +1,4 @@
1
- import { defineComponent, toRefs, computed, openBlock, createBlock, mergeProps, unref, withCtx, renderSlot } from 'vue';
1
+ import { defineComponent, toRefs, computed, createBlock, openBlock, mergeProps, unref, withCtx, renderSlot } from 'vue';
2
2
  import { a as getCheckedState } from './utils.js';
3
3
  import { _ as _sfc_main$1 } from './MenuItem.js';
4
4
  import { i as injectMenuRadioGroupContext } from './MenuRadioGroup.js';
@@ -1,4 +1,4 @@
1
- import { defineComponent, toRefs, ref, openBlock, createBlock, unref, withCtx, renderSlot } from 'vue';
1
+ import { defineComponent, toRefs, ref, createBlock, openBlock, unref, withCtx, renderSlot } from 'vue';
2
2
  import { useVModel } from '@vueuse/core';
3
3
  import { _ as _sfc_main$1 } from '../Popper/PopperRoot.js';
4
4
  import { u as useIsUsingKeyboard } from '../shared/useIsUsingKeyboard.js';
@@ -1,4 +1,4 @@
1
- import { defineComponent, openBlock, createBlock, mergeProps, unref, withModifiers, withCtx, renderSlot } from 'vue';
1
+ import { defineComponent, createBlock, openBlock, mergeProps, unref, withModifiers, withCtx, renderSlot } from 'vue';
2
2
  import { _ as _sfc_main$1 } from './MenuContentImpl.js';
3
3
  import { u as useForwardPropsEmits } from '../shared/useForwardPropsEmits.js';
4
4
  import { u as useForwardExpose } from '../shared/useForwardExpose.js';
@@ -1,4 +1,4 @@
1
- import { defineComponent, openBlock, createBlock, mergeProps, unref, withCtx, renderSlot } from 'vue';
1
+ import { defineComponent, createBlock, openBlock, mergeProps, unref, withCtx, renderSlot } from 'vue';
2
2
  import { _ as _sfc_main$1 } from './MenuContentImpl.js';
3
3
  import { u as useForwardPropsEmits } from '../shared/useForwardPropsEmits.js';
4
4
  import { i as injectMenuContext } from './MenuRoot.js';
@@ -1,4 +1,4 @@
1
- import { defineComponent, openBlock, createBlock, unref, mergeProps, withCtx, renderSlot } from 'vue';
1
+ import { defineComponent, createBlock, openBlock, unref, mergeProps, withCtx, renderSlot } from 'vue';
2
2
  import { P as Primitive } from '../Primitive/Primitive.js';
3
3
 
4
4
  const _sfc_main = /* @__PURE__ */ defineComponent({
@@ -10,7 +10,7 @@ const [injectMenuSubContext, provideMenuSubContext] = shared_createContext.creat
10
10
  const _sfc_main = /* @__PURE__ */ vue.defineComponent({
11
11
  __name: "MenuSub",
12
12
  props: {
13
- open: { type: Boolean, default: undefined }
13
+ open: { type: Boolean, default: void 0 }
14
14
  },
15
15
  emits: ["update:open"],
16
16
  setup(__props, { emit: __emit }) {
@@ -18,7 +18,7 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
18
18
  const emits = __emit;
19
19
  const open = core.useVModel(props, "open", emits, {
20
20
  defaultValue: false,
21
- passive: props.open === undefined
21
+ passive: props.open === void 0
22
22
  });
23
23
  const parentMenuContext = Menu_MenuRoot.injectMenuContext();
24
24
  const trigger = vue.ref();
@@ -1,4 +1,4 @@
1
- import { defineComponent, ref, watchEffect, openBlock, createBlock, unref, withCtx, renderSlot } from 'vue';
1
+ import { defineComponent, ref, watchEffect, createBlock, openBlock, unref, withCtx, renderSlot } from 'vue';
2
2
  import { useVModel } from '@vueuse/core';
3
3
  import { _ as _sfc_main$1 } from '../Popper/PopperRoot.js';
4
4
  import { i as injectMenuContext, p as provideMenuContext } from './MenuRoot.js';
@@ -8,7 +8,7 @@ const [injectMenuSubContext, provideMenuSubContext] = createContext("MenuSub");
8
8
  const _sfc_main = /* @__PURE__ */ defineComponent({
9
9
  __name: "MenuSub",
10
10
  props: {
11
- open: { type: Boolean, default: undefined }
11
+ open: { type: Boolean, default: void 0 }
12
12
  },
13
13
  emits: ["update:open"],
14
14
  setup(__props, { emit: __emit }) {
@@ -16,7 +16,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
16
16
  const emits = __emit;
17
17
  const open = useVModel(props, "open", emits, {
18
18
  defaultValue: false,
19
- passive: props.open === undefined
19
+ passive: props.open === void 0
20
20
  });
21
21
  const parentMenuContext = injectMenuContext();
22
22
  const trigger = ref();
@@ -40,7 +40,7 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
40
40
  const rootContext = Menu_MenuRoot.injectMenuRootContext();
41
41
  const menuSubContext = Menu_MenuSub.injectMenuSubContext();
42
42
  const { forwardRef, currentElement: subContentElement } = shared_useForwardExpose.useForwardExpose();
43
- menuSubContext.contentId ||= shared_useId.useId(undefined, "reka-menu-sub-content");
43
+ menuSubContext.contentId ||= shared_useId.useId(void 0, "reka-menu-sub-content");
44
44
  return (_ctx, _cache) => {
45
45
  return vue.openBlock(), vue.createBlock(vue.unref(Presence_Presence.Presence), {
46
46
  present: _ctx.forceMount || vue.unref(menuContext).open.value