reka-ui 2.2.0 → 2.2.1

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 (842) hide show
  1. package/dist/Accordion/AccordionHeader.cjs.map +1 -1
  2. package/dist/Accordion/AccordionHeader.js.map +1 -1
  3. package/dist/Accordion/AccordionItem.cjs.map +1 -1
  4. package/dist/Accordion/AccordionItem.js.map +1 -1
  5. package/dist/Accordion/AccordionRoot.cjs.map +1 -1
  6. package/dist/Accordion/AccordionRoot.js.map +1 -1
  7. package/dist/Accordion/AccordionTrigger.cjs.map +1 -1
  8. package/dist/Accordion/AccordionTrigger.js.map +1 -1
  9. package/dist/AlertDialog/AlertDialogCancel.cjs.map +1 -1
  10. package/dist/AlertDialog/AlertDialogCancel.js.map +1 -1
  11. package/dist/AlertDialog/AlertDialogContent.cjs.map +1 -1
  12. package/dist/AlertDialog/AlertDialogContent.js.map +1 -1
  13. package/dist/AspectRatio/AspectRatio.cjs.map +1 -1
  14. package/dist/AspectRatio/AspectRatio.js.map +1 -1
  15. package/dist/Avatar/AvatarFallback.cjs.map +1 -1
  16. package/dist/Avatar/AvatarFallback.js.map +1 -1
  17. package/dist/Avatar/AvatarImage.cjs.map +1 -1
  18. package/dist/Avatar/AvatarImage.js.map +1 -1
  19. package/dist/Avatar/AvatarRoot.cjs.map +1 -1
  20. package/dist/Avatar/AvatarRoot.js.map +1 -1
  21. package/dist/Avatar/utils.cjs.map +1 -1
  22. package/dist/Avatar/utils.js.map +1 -1
  23. package/dist/Calendar/CalendarCell.cjs +1 -1
  24. package/dist/Calendar/CalendarCell.js +1 -1
  25. package/dist/Calendar/CalendarCellTrigger.cjs.map +1 -1
  26. package/dist/Calendar/CalendarCellTrigger.js.map +1 -1
  27. package/dist/Calendar/CalendarHeading.cjs +1 -1
  28. package/dist/Calendar/CalendarHeading.js +1 -1
  29. package/dist/Calendar/CalendarNext.cjs.map +1 -1
  30. package/dist/Calendar/CalendarNext.js.map +1 -1
  31. package/dist/Calendar/CalendarPrev.cjs.map +1 -1
  32. package/dist/Calendar/CalendarPrev.js.map +1 -1
  33. package/dist/Calendar/CalendarRoot.cjs.map +1 -1
  34. package/dist/Calendar/CalendarRoot.js.map +1 -1
  35. package/dist/Calendar/useCalendar.cjs +2 -2
  36. package/dist/Calendar/useCalendar.cjs.map +1 -1
  37. package/dist/Calendar/useCalendar.js +2 -2
  38. package/dist/Calendar/useCalendar.js.map +1 -1
  39. package/dist/Checkbox/CheckboxGroupRoot.cjs +1 -1
  40. package/dist/Checkbox/CheckboxGroupRoot.cjs.map +1 -1
  41. package/dist/Checkbox/CheckboxGroupRoot.js +1 -1
  42. package/dist/Checkbox/CheckboxGroupRoot.js.map +1 -1
  43. package/dist/Checkbox/CheckboxIndicator.cjs.map +1 -1
  44. package/dist/Checkbox/CheckboxIndicator.js.map +1 -1
  45. package/dist/Checkbox/CheckboxRoot.cjs +1 -1
  46. package/dist/Checkbox/CheckboxRoot.cjs.map +1 -1
  47. package/dist/Checkbox/CheckboxRoot.js +1 -1
  48. package/dist/Checkbox/CheckboxRoot.js.map +1 -1
  49. package/dist/Collapsible/CollapsibleContent.cjs +1 -1
  50. package/dist/Collapsible/CollapsibleContent.cjs.map +1 -1
  51. package/dist/Collapsible/CollapsibleContent.js +1 -1
  52. package/dist/Collapsible/CollapsibleContent.js.map +1 -1
  53. package/dist/Collapsible/CollapsibleRoot.cjs.map +1 -1
  54. package/dist/Collapsible/CollapsibleRoot.js.map +1 -1
  55. package/dist/Collapsible/CollapsibleTrigger.cjs +1 -1
  56. package/dist/Collapsible/CollapsibleTrigger.js +1 -1
  57. package/dist/Collection/Collection.cjs.map +1 -1
  58. package/dist/Collection/Collection.js.map +1 -1
  59. package/dist/Combobox/ComboboxAnchor.cjs.map +1 -1
  60. package/dist/Combobox/ComboboxAnchor.js.map +1 -1
  61. package/dist/Combobox/ComboboxArrow.cjs.map +1 -1
  62. package/dist/Combobox/ComboboxArrow.js.map +1 -1
  63. package/dist/Combobox/ComboboxCancel.cjs +1 -0
  64. package/dist/Combobox/ComboboxCancel.cjs.map +1 -1
  65. package/dist/Combobox/ComboboxCancel.js +1 -0
  66. package/dist/Combobox/ComboboxCancel.js.map +1 -1
  67. package/dist/Combobox/ComboboxContent.cjs.map +1 -1
  68. package/dist/Combobox/ComboboxContent.js.map +1 -1
  69. package/dist/Combobox/ComboboxContentImpl.cjs +2 -2
  70. package/dist/Combobox/ComboboxContentImpl.cjs.map +1 -1
  71. package/dist/Combobox/ComboboxContentImpl.js +2 -2
  72. package/dist/Combobox/ComboboxContentImpl.js.map +1 -1
  73. package/dist/Combobox/ComboboxEmpty.cjs.map +1 -1
  74. package/dist/Combobox/ComboboxEmpty.js.map +1 -1
  75. package/dist/Combobox/ComboboxGroup.cjs +1 -1
  76. package/dist/Combobox/ComboboxGroup.js +1 -1
  77. package/dist/Combobox/ComboboxInput.cjs +9 -1
  78. package/dist/Combobox/ComboboxInput.cjs.map +1 -1
  79. package/dist/Combobox/ComboboxInput.js +9 -1
  80. package/dist/Combobox/ComboboxInput.js.map +1 -1
  81. package/dist/Combobox/ComboboxItem.cjs +4 -3
  82. package/dist/Combobox/ComboboxItem.cjs.map +1 -1
  83. package/dist/Combobox/ComboboxItem.js +4 -3
  84. package/dist/Combobox/ComboboxItem.js.map +1 -1
  85. package/dist/Combobox/ComboboxLabel.cjs +1 -1
  86. package/dist/Combobox/ComboboxLabel.js +1 -1
  87. package/dist/Combobox/ComboboxRoot.cjs.map +1 -1
  88. package/dist/Combobox/ComboboxRoot.js.map +1 -1
  89. package/dist/Combobox/ComboboxVirtualizer.cjs.map +1 -1
  90. package/dist/Combobox/ComboboxVirtualizer.js.map +1 -1
  91. package/dist/ContextMenu/ContextMenuContent.cjs.map +1 -1
  92. package/dist/ContextMenu/ContextMenuContent.js.map +1 -1
  93. package/dist/ContextMenu/ContextMenuPortal.cjs.map +1 -1
  94. package/dist/ContextMenu/ContextMenuPortal.js.map +1 -1
  95. package/dist/ContextMenu/ContextMenuRoot.cjs.map +1 -1
  96. package/dist/ContextMenu/ContextMenuRoot.js.map +1 -1
  97. package/dist/ContextMenu/ContextMenuSub.cjs +1 -1
  98. package/dist/ContextMenu/ContextMenuSub.cjs.map +1 -1
  99. package/dist/ContextMenu/ContextMenuSub.js +1 -1
  100. package/dist/ContextMenu/ContextMenuSub.js.map +1 -1
  101. package/dist/ContextMenu/ContextMenuTrigger.cjs +2 -2
  102. package/dist/ContextMenu/ContextMenuTrigger.cjs.map +1 -1
  103. package/dist/ContextMenu/ContextMenuTrigger.js +2 -2
  104. package/dist/ContextMenu/ContextMenuTrigger.js.map +1 -1
  105. package/dist/DateField/DateFieldInput.cjs.map +1 -1
  106. package/dist/DateField/DateFieldInput.js.map +1 -1
  107. package/dist/DateField/DateFieldRoot.cjs.map +1 -1
  108. package/dist/DateField/DateFieldRoot.js.map +1 -1
  109. package/dist/DatePicker/DatePickerArrow.cjs.map +1 -1
  110. package/dist/DatePicker/DatePickerArrow.js.map +1 -1
  111. package/dist/DatePicker/DatePickerCalendar.cjs.map +1 -1
  112. package/dist/DatePicker/DatePickerCalendar.js.map +1 -1
  113. package/dist/DatePicker/DatePickerCell.cjs.map +1 -1
  114. package/dist/DatePicker/DatePickerCell.js.map +1 -1
  115. package/dist/DatePicker/DatePickerCellTrigger.cjs.map +1 -1
  116. package/dist/DatePicker/DatePickerCellTrigger.js.map +1 -1
  117. package/dist/DatePicker/DatePickerClose.cjs.map +1 -1
  118. package/dist/DatePicker/DatePickerClose.js.map +1 -1
  119. package/dist/DatePicker/DatePickerContent.cjs.map +1 -1
  120. package/dist/DatePicker/DatePickerContent.js.map +1 -1
  121. package/dist/DatePicker/DatePickerGrid.cjs.map +1 -1
  122. package/dist/DatePicker/DatePickerGrid.js.map +1 -1
  123. package/dist/DatePicker/DatePickerGridBody.cjs.map +1 -1
  124. package/dist/DatePicker/DatePickerGridBody.js.map +1 -1
  125. package/dist/DatePicker/DatePickerGridHead.cjs.map +1 -1
  126. package/dist/DatePicker/DatePickerGridHead.js.map +1 -1
  127. package/dist/DatePicker/DatePickerGridRow.cjs.map +1 -1
  128. package/dist/DatePicker/DatePickerGridRow.js.map +1 -1
  129. package/dist/DatePicker/DatePickerHeadCell.cjs.map +1 -1
  130. package/dist/DatePicker/DatePickerHeadCell.js.map +1 -1
  131. package/dist/DatePicker/DatePickerHeader.cjs.map +1 -1
  132. package/dist/DatePicker/DatePickerHeader.js.map +1 -1
  133. package/dist/DatePicker/DatePickerHeading.cjs.map +1 -1
  134. package/dist/DatePicker/DatePickerHeading.js.map +1 -1
  135. package/dist/DatePicker/DatePickerInput.cjs.map +1 -1
  136. package/dist/DatePicker/DatePickerInput.js.map +1 -1
  137. package/dist/DatePicker/DatePickerNext.cjs.map +1 -1
  138. package/dist/DatePicker/DatePickerNext.js.map +1 -1
  139. package/dist/DatePicker/DatePickerPrev.cjs.map +1 -1
  140. package/dist/DatePicker/DatePickerPrev.js.map +1 -1
  141. package/dist/DatePicker/DatePickerRoot.cjs.map +1 -1
  142. package/dist/DatePicker/DatePickerRoot.js.map +1 -1
  143. package/dist/DatePicker/DatePickerTrigger.cjs.map +1 -1
  144. package/dist/DatePicker/DatePickerTrigger.js.map +1 -1
  145. package/dist/DateRangeField/DateRangeFieldInput.cjs.map +1 -1
  146. package/dist/DateRangeField/DateRangeFieldInput.js.map +1 -1
  147. package/dist/DateRangeField/DateRangeFieldRoot.cjs.map +1 -1
  148. package/dist/DateRangeField/DateRangeFieldRoot.js.map +1 -1
  149. package/dist/DateRangePicker/DateRangePickerAnchor.cjs.map +1 -1
  150. package/dist/DateRangePicker/DateRangePickerAnchor.js.map +1 -1
  151. package/dist/DateRangePicker/DateRangePickerArrow.cjs.map +1 -1
  152. package/dist/DateRangePicker/DateRangePickerArrow.js.map +1 -1
  153. package/dist/DateRangePicker/DateRangePickerCalendar.cjs +1 -0
  154. package/dist/DateRangePicker/DateRangePickerCalendar.cjs.map +1 -1
  155. package/dist/DateRangePicker/DateRangePickerCalendar.js +1 -0
  156. package/dist/DateRangePicker/DateRangePickerCalendar.js.map +1 -1
  157. package/dist/DateRangePicker/DateRangePickerCell.cjs.map +1 -1
  158. package/dist/DateRangePicker/DateRangePickerCell.js.map +1 -1
  159. package/dist/DateRangePicker/DateRangePickerClose.cjs.map +1 -1
  160. package/dist/DateRangePicker/DateRangePickerClose.js.map +1 -1
  161. package/dist/DateRangePicker/DateRangePickerContent.cjs.map +1 -1
  162. package/dist/DateRangePicker/DateRangePickerContent.js.map +1 -1
  163. package/dist/DateRangePicker/DateRangePickerGrid.cjs.map +1 -1
  164. package/dist/DateRangePicker/DateRangePickerGrid.js.map +1 -1
  165. package/dist/DateRangePicker/DateRangePickerGridBody.cjs.map +1 -1
  166. package/dist/DateRangePicker/DateRangePickerGridBody.js.map +1 -1
  167. package/dist/DateRangePicker/DateRangePickerGridHead.cjs.map +1 -1
  168. package/dist/DateRangePicker/DateRangePickerGridHead.js.map +1 -1
  169. package/dist/DateRangePicker/DateRangePickerGridRow.cjs.map +1 -1
  170. package/dist/DateRangePicker/DateRangePickerGridRow.js.map +1 -1
  171. package/dist/DateRangePicker/DateRangePickerHeadCell.cjs.map +1 -1
  172. package/dist/DateRangePicker/DateRangePickerHeadCell.js.map +1 -1
  173. package/dist/DateRangePicker/DateRangePickerHeader.cjs.map +1 -1
  174. package/dist/DateRangePicker/DateRangePickerHeader.js.map +1 -1
  175. package/dist/DateRangePicker/DateRangePickerHeading.cjs.map +1 -1
  176. package/dist/DateRangePicker/DateRangePickerHeading.js.map +1 -1
  177. package/dist/DateRangePicker/DateRangePickerInput.cjs.map +1 -1
  178. package/dist/DateRangePicker/DateRangePickerInput.js.map +1 -1
  179. package/dist/DateRangePicker/DateRangePickerNext.cjs.map +1 -1
  180. package/dist/DateRangePicker/DateRangePickerNext.js.map +1 -1
  181. package/dist/DateRangePicker/DateRangePickerPrev.cjs.map +1 -1
  182. package/dist/DateRangePicker/DateRangePickerPrev.js.map +1 -1
  183. package/dist/DateRangePicker/DateRangePickerRoot.cjs +3 -0
  184. package/dist/DateRangePicker/DateRangePickerRoot.cjs.map +1 -1
  185. package/dist/DateRangePicker/DateRangePickerRoot.js +3 -0
  186. package/dist/DateRangePicker/DateRangePickerRoot.js.map +1 -1
  187. package/dist/DateRangePicker/DateRangePickerTrigger.cjs.map +1 -1
  188. package/dist/DateRangePicker/DateRangePickerTrigger.js.map +1 -1
  189. package/dist/Dialog/DialogClose.cjs +1 -1
  190. package/dist/Dialog/DialogClose.cjs.map +1 -1
  191. package/dist/Dialog/DialogClose.js +1 -1
  192. package/dist/Dialog/DialogClose.js.map +1 -1
  193. package/dist/Dialog/DialogContent.cjs.map +1 -1
  194. package/dist/Dialog/DialogContent.js.map +1 -1
  195. package/dist/Dialog/DialogContentImpl.cjs.map +1 -1
  196. package/dist/Dialog/DialogContentImpl.js.map +1 -1
  197. package/dist/Dialog/DialogContentModal.cjs.map +1 -1
  198. package/dist/Dialog/DialogContentModal.js.map +1 -1
  199. package/dist/Dialog/DialogContentNonModal.cjs.map +1 -1
  200. package/dist/Dialog/DialogContentNonModal.js.map +1 -1
  201. package/dist/Dialog/DialogDescription.cjs.map +1 -1
  202. package/dist/Dialog/DialogDescription.js.map +1 -1
  203. package/dist/Dialog/DialogOverlay.cjs.map +1 -1
  204. package/dist/Dialog/DialogOverlay.js.map +1 -1
  205. package/dist/Dialog/DialogOverlayImpl.cjs.map +1 -1
  206. package/dist/Dialog/DialogOverlayImpl.js.map +1 -1
  207. package/dist/Dialog/DialogRoot.cjs.map +1 -1
  208. package/dist/Dialog/DialogRoot.js.map +1 -1
  209. package/dist/Dialog/DialogTitle.cjs.map +1 -1
  210. package/dist/Dialog/DialogTitle.js.map +1 -1
  211. package/dist/Dialog/DialogTrigger.cjs +1 -1
  212. package/dist/Dialog/DialogTrigger.cjs.map +1 -1
  213. package/dist/Dialog/DialogTrigger.js +1 -1
  214. package/dist/Dialog/DialogTrigger.js.map +1 -1
  215. package/dist/Dialog/utils.cjs.map +1 -1
  216. package/dist/Dialog/utils.js.map +1 -1
  217. package/dist/DismissableLayer/DismissableLayer.cjs.map +1 -1
  218. package/dist/DismissableLayer/DismissableLayer.js.map +1 -1
  219. package/dist/DismissableLayer/utils.cjs +4 -3
  220. package/dist/DismissableLayer/utils.cjs.map +1 -1
  221. package/dist/DismissableLayer/utils.js +4 -3
  222. package/dist/DismissableLayer/utils.js.map +1 -1
  223. package/dist/DropdownMenu/DropdownMenuContent.cjs +1 -1
  224. package/dist/DropdownMenu/DropdownMenuContent.cjs.map +1 -1
  225. package/dist/DropdownMenu/DropdownMenuContent.js +1 -1
  226. package/dist/DropdownMenu/DropdownMenuContent.js.map +1 -1
  227. package/dist/DropdownMenu/DropdownMenuRoot.cjs +1 -1
  228. package/dist/DropdownMenu/DropdownMenuRoot.cjs.map +1 -1
  229. package/dist/DropdownMenu/DropdownMenuRoot.js +1 -1
  230. package/dist/DropdownMenu/DropdownMenuRoot.js.map +1 -1
  231. package/dist/DropdownMenu/DropdownMenuSub.cjs +1 -1
  232. package/dist/DropdownMenu/DropdownMenuSub.cjs.map +1 -1
  233. package/dist/DropdownMenu/DropdownMenuSub.js +1 -1
  234. package/dist/DropdownMenu/DropdownMenuSub.js.map +1 -1
  235. package/dist/DropdownMenu/DropdownMenuTrigger.cjs +1 -1
  236. package/dist/DropdownMenu/DropdownMenuTrigger.cjs.map +1 -1
  237. package/dist/DropdownMenu/DropdownMenuTrigger.js +1 -1
  238. package/dist/DropdownMenu/DropdownMenuTrigger.js.map +1 -1
  239. package/dist/Editable/EditableInput.cjs.map +1 -1
  240. package/dist/Editable/EditableInput.js.map +1 -1
  241. package/dist/Editable/EditablePreview.cjs.map +1 -1
  242. package/dist/Editable/EditablePreview.js.map +1 -1
  243. package/dist/Editable/EditableRoot.cjs.map +1 -1
  244. package/dist/Editable/EditableRoot.js.map +1 -1
  245. package/dist/FocusScope/FocusScope.cjs +1 -1
  246. package/dist/FocusScope/FocusScope.cjs.map +1 -1
  247. package/dist/FocusScope/FocusScope.js +1 -1
  248. package/dist/FocusScope/FocusScope.js.map +1 -1
  249. package/dist/HoverCard/HoverCardContent.cjs +1 -1
  250. package/dist/HoverCard/HoverCardContent.cjs.map +1 -1
  251. package/dist/HoverCard/HoverCardContent.js +1 -1
  252. package/dist/HoverCard/HoverCardContent.js.map +1 -1
  253. package/dist/HoverCard/HoverCardContentImpl.cjs +3 -3
  254. package/dist/HoverCard/HoverCardContentImpl.cjs.map +1 -1
  255. package/dist/HoverCard/HoverCardContentImpl.js +3 -3
  256. package/dist/HoverCard/HoverCardContentImpl.js.map +1 -1
  257. package/dist/HoverCard/HoverCardRoot.cjs +1 -1
  258. package/dist/HoverCard/HoverCardRoot.cjs.map +1 -1
  259. package/dist/HoverCard/HoverCardRoot.js +1 -1
  260. package/dist/HoverCard/HoverCardRoot.js.map +1 -1
  261. package/dist/HoverCard/HoverCardTrigger.cjs +1 -1
  262. package/dist/HoverCard/HoverCardTrigger.cjs.map +1 -1
  263. package/dist/HoverCard/HoverCardTrigger.js +1 -1
  264. package/dist/HoverCard/HoverCardTrigger.js.map +1 -1
  265. package/dist/Listbox/ListboxContent.cjs +1 -1
  266. package/dist/Listbox/ListboxContent.cjs.map +1 -1
  267. package/dist/Listbox/ListboxContent.js +1 -1
  268. package/dist/Listbox/ListboxContent.js.map +1 -1
  269. package/dist/Listbox/ListboxFilter.cjs.map +1 -1
  270. package/dist/Listbox/ListboxFilter.js.map +1 -1
  271. package/dist/Listbox/ListboxItem.cjs +2 -2
  272. package/dist/Listbox/ListboxItem.cjs.map +1 -1
  273. package/dist/Listbox/ListboxItem.js +2 -2
  274. package/dist/Listbox/ListboxItem.js.map +1 -1
  275. package/dist/Listbox/ListboxItemIndicator.cjs.map +1 -1
  276. package/dist/Listbox/ListboxItemIndicator.js.map +1 -1
  277. package/dist/Listbox/ListboxRoot.cjs +3 -3
  278. package/dist/Listbox/ListboxRoot.cjs.map +1 -1
  279. package/dist/Listbox/ListboxRoot.js +3 -3
  280. package/dist/Listbox/ListboxRoot.js.map +1 -1
  281. package/dist/Listbox/ListboxVirtualizer.cjs +4 -4
  282. package/dist/Listbox/ListboxVirtualizer.cjs.map +1 -1
  283. package/dist/Listbox/ListboxVirtualizer.js +4 -4
  284. package/dist/Listbox/ListboxVirtualizer.js.map +1 -1
  285. package/dist/Menu/MenuAnchor.cjs.map +1 -1
  286. package/dist/Menu/MenuAnchor.js.map +1 -1
  287. package/dist/Menu/MenuCheckboxItem.cjs +1 -1
  288. package/dist/Menu/MenuCheckboxItem.cjs.map +1 -1
  289. package/dist/Menu/MenuCheckboxItem.js +1 -1
  290. package/dist/Menu/MenuCheckboxItem.js.map +1 -1
  291. package/dist/Menu/MenuContent.cjs.map +1 -1
  292. package/dist/Menu/MenuContent.js.map +1 -1
  293. package/dist/Menu/MenuContentImpl.cjs +2 -2
  294. package/dist/Menu/MenuContentImpl.cjs.map +1 -1
  295. package/dist/Menu/MenuContentImpl.js +2 -2
  296. package/dist/Menu/MenuContentImpl.js.map +1 -1
  297. package/dist/Menu/MenuItem.cjs.map +1 -1
  298. package/dist/Menu/MenuItem.js.map +1 -1
  299. package/dist/Menu/MenuItemImpl.cjs +1 -1
  300. package/dist/Menu/MenuItemImpl.cjs.map +1 -1
  301. package/dist/Menu/MenuItemImpl.js +1 -1
  302. package/dist/Menu/MenuItemImpl.js.map +1 -1
  303. package/dist/Menu/MenuItemIndicator.cjs.map +1 -1
  304. package/dist/Menu/MenuItemIndicator.js.map +1 -1
  305. package/dist/Menu/MenuRadioItem.cjs +1 -1
  306. package/dist/Menu/MenuRadioItem.cjs.map +1 -1
  307. package/dist/Menu/MenuRadioItem.js +1 -1
  308. package/dist/Menu/MenuRadioItem.js.map +1 -1
  309. package/dist/Menu/MenuRoot.cjs +2 -2
  310. package/dist/Menu/MenuRoot.cjs.map +1 -1
  311. package/dist/Menu/MenuRoot.js +2 -2
  312. package/dist/Menu/MenuRoot.js.map +1 -1
  313. package/dist/Menu/MenuRootContentModal.cjs.map +1 -1
  314. package/dist/Menu/MenuRootContentModal.js.map +1 -1
  315. package/dist/Menu/MenuRootContentNonModal.cjs.map +1 -1
  316. package/dist/Menu/MenuRootContentNonModal.js.map +1 -1
  317. package/dist/Menu/MenuSub.cjs +1 -1
  318. package/dist/Menu/MenuSub.cjs.map +1 -1
  319. package/dist/Menu/MenuSub.js +1 -1
  320. package/dist/Menu/MenuSub.js.map +1 -1
  321. package/dist/Menu/MenuSubContent.cjs.map +1 -1
  322. package/dist/Menu/MenuSubContent.js.map +1 -1
  323. package/dist/Menu/MenuSubTrigger.cjs +1 -1
  324. package/dist/Menu/MenuSubTrigger.cjs.map +1 -1
  325. package/dist/Menu/MenuSubTrigger.js +1 -1
  326. package/dist/Menu/MenuSubTrigger.js.map +1 -1
  327. package/dist/Menubar/MenubarContent.cjs +1 -1
  328. package/dist/Menubar/MenubarContent.cjs.map +1 -1
  329. package/dist/Menubar/MenubarContent.js +1 -1
  330. package/dist/Menubar/MenubarContent.js.map +1 -1
  331. package/dist/Menubar/MenubarGroup.cjs.map +1 -1
  332. package/dist/Menubar/MenubarGroup.js.map +1 -1
  333. package/dist/Menubar/MenubarMenu.cjs.map +1 -1
  334. package/dist/Menubar/MenubarMenu.js.map +1 -1
  335. package/dist/Menubar/MenubarRoot.cjs.map +1 -1
  336. package/dist/Menubar/MenubarRoot.js.map +1 -1
  337. package/dist/Menubar/MenubarSub.cjs +1 -1
  338. package/dist/Menubar/MenubarSub.cjs.map +1 -1
  339. package/dist/Menubar/MenubarSub.js +1 -1
  340. package/dist/Menubar/MenubarSub.js.map +1 -1
  341. package/dist/Menubar/MenubarSubContent.cjs.map +1 -1
  342. package/dist/Menubar/MenubarSubContent.js.map +1 -1
  343. package/dist/Menubar/MenubarTrigger.cjs +1 -1
  344. package/dist/Menubar/MenubarTrigger.cjs.map +1 -1
  345. package/dist/Menubar/MenubarTrigger.js +1 -1
  346. package/dist/Menubar/MenubarTrigger.js.map +1 -1
  347. package/dist/NavigationMenu/NavigationMenuContent.cjs +1 -1
  348. package/dist/NavigationMenu/NavigationMenuContent.cjs.map +1 -1
  349. package/dist/NavigationMenu/NavigationMenuContent.js +1 -1
  350. package/dist/NavigationMenu/NavigationMenuContent.js.map +1 -1
  351. package/dist/NavigationMenu/NavigationMenuContentImpl.cjs +1 -1
  352. package/dist/NavigationMenu/NavigationMenuContentImpl.cjs.map +1 -1
  353. package/dist/NavigationMenu/NavigationMenuContentImpl.js +1 -1
  354. package/dist/NavigationMenu/NavigationMenuContentImpl.js.map +1 -1
  355. package/dist/NavigationMenu/NavigationMenuIndicator.cjs.map +1 -1
  356. package/dist/NavigationMenu/NavigationMenuIndicator.js.map +1 -1
  357. package/dist/NavigationMenu/NavigationMenuItem.cjs.map +1 -1
  358. package/dist/NavigationMenu/NavigationMenuItem.js.map +1 -1
  359. package/dist/NavigationMenu/NavigationMenuLink.cjs.map +1 -1
  360. package/dist/NavigationMenu/NavigationMenuLink.js.map +1 -1
  361. package/dist/NavigationMenu/NavigationMenuList.cjs.map +1 -1
  362. package/dist/NavigationMenu/NavigationMenuList.js.map +1 -1
  363. package/dist/NavigationMenu/NavigationMenuRoot.cjs.map +1 -1
  364. package/dist/NavigationMenu/NavigationMenuRoot.js.map +1 -1
  365. package/dist/NavigationMenu/NavigationMenuSub.cjs.map +1 -1
  366. package/dist/NavigationMenu/NavigationMenuSub.js.map +1 -1
  367. package/dist/NavigationMenu/NavigationMenuTrigger.cjs.map +1 -1
  368. package/dist/NavigationMenu/NavigationMenuTrigger.js.map +1 -1
  369. package/dist/NavigationMenu/NavigationMenuViewport.cjs.map +1 -1
  370. package/dist/NavigationMenu/NavigationMenuViewport.js.map +1 -1
  371. package/dist/NumberField/NumberFieldDecrement.cjs +1 -1
  372. package/dist/NumberField/NumberFieldDecrement.cjs.map +1 -1
  373. package/dist/NumberField/NumberFieldDecrement.js +1 -1
  374. package/dist/NumberField/NumberFieldDecrement.js.map +1 -1
  375. package/dist/NumberField/NumberFieldIncrement.cjs.map +1 -1
  376. package/dist/NumberField/NumberFieldIncrement.js.map +1 -1
  377. package/dist/NumberField/NumberFieldInput.cjs +1 -1
  378. package/dist/NumberField/NumberFieldInput.cjs.map +1 -1
  379. package/dist/NumberField/NumberFieldInput.js +1 -1
  380. package/dist/NumberField/NumberFieldInput.js.map +1 -1
  381. package/dist/NumberField/NumberFieldRoot.cjs.map +1 -1
  382. package/dist/NumberField/NumberFieldRoot.js.map +1 -1
  383. package/dist/NumberField/utils.cjs.map +1 -1
  384. package/dist/NumberField/utils.js +1 -1
  385. package/dist/NumberField/utils.js.map +1 -1
  386. package/dist/Pagination/PaginationFirst.cjs.map +1 -1
  387. package/dist/Pagination/PaginationFirst.js.map +1 -1
  388. package/dist/Pagination/PaginationLast.cjs.map +1 -1
  389. package/dist/Pagination/PaginationLast.js.map +1 -1
  390. package/dist/Pagination/PaginationListItem.cjs.map +1 -1
  391. package/dist/Pagination/PaginationListItem.js.map +1 -1
  392. package/dist/Pagination/PaginationNext.cjs.map +1 -1
  393. package/dist/Pagination/PaginationNext.js.map +1 -1
  394. package/dist/Pagination/PaginationPrev.cjs.map +1 -1
  395. package/dist/Pagination/PaginationPrev.js.map +1 -1
  396. package/dist/Pagination/PaginationRoot.cjs.map +1 -1
  397. package/dist/Pagination/PaginationRoot.js.map +1 -1
  398. package/dist/Pagination/utils.cjs.map +1 -1
  399. package/dist/Pagination/utils.js.map +1 -1
  400. package/dist/PinInput/PinInputInput.cjs.map +1 -1
  401. package/dist/PinInput/PinInputInput.js.map +1 -1
  402. package/dist/PinInput/PinInputRoot.cjs.map +1 -1
  403. package/dist/PinInput/PinInputRoot.js.map +1 -1
  404. package/dist/Popover/PopoverAnchor.cjs.map +1 -1
  405. package/dist/Popover/PopoverAnchor.js.map +1 -1
  406. package/dist/Popover/PopoverClose.cjs.map +1 -1
  407. package/dist/Popover/PopoverClose.js.map +1 -1
  408. package/dist/Popover/PopoverContent.cjs.map +1 -1
  409. package/dist/Popover/PopoverContent.js.map +1 -1
  410. package/dist/Popover/PopoverContentImpl.cjs +1 -1
  411. package/dist/Popover/PopoverContentImpl.cjs.map +1 -1
  412. package/dist/Popover/PopoverContentImpl.js +1 -1
  413. package/dist/Popover/PopoverContentImpl.js.map +1 -1
  414. package/dist/Popover/PopoverContentModal.cjs +1 -1
  415. package/dist/Popover/PopoverContentModal.cjs.map +1 -1
  416. package/dist/Popover/PopoverContentModal.js +1 -1
  417. package/dist/Popover/PopoverContentModal.js.map +1 -1
  418. package/dist/Popover/PopoverContentNonModal.cjs.map +1 -1
  419. package/dist/Popover/PopoverContentNonModal.js.map +1 -1
  420. package/dist/Popover/PopoverRoot.cjs +1 -1
  421. package/dist/Popover/PopoverRoot.cjs.map +1 -1
  422. package/dist/Popover/PopoverRoot.js +1 -1
  423. package/dist/Popover/PopoverRoot.js.map +1 -1
  424. package/dist/Popover/PopoverTrigger.cjs +1 -1
  425. package/dist/Popover/PopoverTrigger.cjs.map +1 -1
  426. package/dist/Popover/PopoverTrigger.js +1 -1
  427. package/dist/Popover/PopoverTrigger.js.map +1 -1
  428. package/dist/Popper/PopperAnchor.cjs.map +1 -1
  429. package/dist/Popper/PopperAnchor.js.map +1 -1
  430. package/dist/Popper/PopperArrow.cjs.map +1 -1
  431. package/dist/Popper/PopperArrow.js.map +1 -1
  432. package/dist/Popper/PopperContent.cjs +2 -2
  433. package/dist/Popper/PopperContent.cjs.map +1 -1
  434. package/dist/Popper/PopperContent.js +2 -2
  435. package/dist/Popper/PopperContent.js.map +1 -1
  436. package/dist/Popper/PopperRoot.cjs.map +1 -1
  437. package/dist/Popper/PopperRoot.js.map +1 -1
  438. package/dist/Presence/Presence.cjs +1 -1
  439. package/dist/Presence/Presence.cjs.map +1 -1
  440. package/dist/Presence/Presence.js +1 -1
  441. package/dist/Presence/Presence.js.map +1 -1
  442. package/dist/Presence/usePresence.cjs +2 -2
  443. package/dist/Presence/usePresence.cjs.map +1 -1
  444. package/dist/Presence/usePresence.js +2 -2
  445. package/dist/Presence/usePresence.js.map +1 -1
  446. package/dist/Primitive/Primitive.cjs.map +1 -1
  447. package/dist/Primitive/Primitive.js.map +1 -1
  448. package/dist/Primitive/Slot.cjs.map +1 -1
  449. package/dist/Primitive/Slot.js.map +1 -1
  450. package/dist/Primitive/usePrimitiveElement.cjs.map +1 -1
  451. package/dist/Primitive/usePrimitiveElement.js.map +1 -1
  452. package/dist/Progress/ProgressIndicator.cjs.map +1 -1
  453. package/dist/Progress/ProgressIndicator.js.map +1 -1
  454. package/dist/Progress/ProgressRoot.cjs.map +1 -1
  455. package/dist/Progress/ProgressRoot.js.map +1 -1
  456. package/dist/RadioGroup/Radio.cjs.map +1 -1
  457. package/dist/RadioGroup/Radio.js.map +1 -1
  458. package/dist/RadioGroup/RadioGroupIndicator.cjs.map +1 -1
  459. package/dist/RadioGroup/RadioGroupIndicator.js.map +1 -1
  460. package/dist/RadioGroup/RadioGroupItem.cjs +1 -1
  461. package/dist/RadioGroup/RadioGroupItem.cjs.map +1 -1
  462. package/dist/RadioGroup/RadioGroupItem.js +1 -1
  463. package/dist/RadioGroup/RadioGroupItem.js.map +1 -1
  464. package/dist/RadioGroup/RadioGroupRoot.cjs.map +1 -1
  465. package/dist/RadioGroup/RadioGroupRoot.js.map +1 -1
  466. package/dist/RadioGroup/utils.cjs.map +1 -1
  467. package/dist/RadioGroup/utils.js.map +1 -1
  468. package/dist/RangeCalendar/RangeCalendarCell.cjs +1 -1
  469. package/dist/RangeCalendar/RangeCalendarCell.js +1 -1
  470. package/dist/RangeCalendar/RangeCalendarCellTrigger.cjs +2 -2
  471. package/dist/RangeCalendar/RangeCalendarCellTrigger.cjs.map +1 -1
  472. package/dist/RangeCalendar/RangeCalendarCellTrigger.js +2 -2
  473. package/dist/RangeCalendar/RangeCalendarCellTrigger.js.map +1 -1
  474. package/dist/RangeCalendar/RangeCalendarGrid.cjs.map +1 -1
  475. package/dist/RangeCalendar/RangeCalendarGrid.js.map +1 -1
  476. package/dist/RangeCalendar/RangeCalendarHeading.cjs +1 -1
  477. package/dist/RangeCalendar/RangeCalendarHeading.js +1 -1
  478. package/dist/RangeCalendar/RangeCalendarNext.cjs.map +1 -1
  479. package/dist/RangeCalendar/RangeCalendarNext.js.map +1 -1
  480. package/dist/RangeCalendar/RangeCalendarPrev.cjs.map +1 -1
  481. package/dist/RangeCalendar/RangeCalendarPrev.js.map +1 -1
  482. package/dist/RangeCalendar/RangeCalendarRoot.cjs +8 -3
  483. package/dist/RangeCalendar/RangeCalendarRoot.cjs.map +1 -1
  484. package/dist/RangeCalendar/RangeCalendarRoot.js +8 -3
  485. package/dist/RangeCalendar/RangeCalendarRoot.js.map +1 -1
  486. package/dist/RangeCalendar/useRangeCalendar.cjs +8 -2
  487. package/dist/RangeCalendar/useRangeCalendar.cjs.map +1 -1
  488. package/dist/RangeCalendar/useRangeCalendar.js +8 -2
  489. package/dist/RangeCalendar/useRangeCalendar.js.map +1 -1
  490. package/dist/RovingFocus/RovingFocusGroup.cjs +1 -1
  491. package/dist/RovingFocus/RovingFocusGroup.cjs.map +1 -1
  492. package/dist/RovingFocus/RovingFocusGroup.js +1 -1
  493. package/dist/RovingFocus/RovingFocusGroup.js.map +1 -1
  494. package/dist/RovingFocus/RovingFocusItem.cjs +1 -1
  495. package/dist/RovingFocus/RovingFocusItem.cjs.map +1 -1
  496. package/dist/RovingFocus/RovingFocusItem.js +1 -1
  497. package/dist/RovingFocus/RovingFocusItem.js.map +1 -1
  498. package/dist/ScrollArea/ScrollAreaCorner.cjs.map +1 -1
  499. package/dist/ScrollArea/ScrollAreaCorner.js.map +1 -1
  500. package/dist/ScrollArea/ScrollAreaCornerImpl.cjs +1 -1
  501. package/dist/ScrollArea/ScrollAreaCornerImpl.cjs.map +1 -1
  502. package/dist/ScrollArea/ScrollAreaCornerImpl.js +1 -1
  503. package/dist/ScrollArea/ScrollAreaCornerImpl.js.map +1 -1
  504. package/dist/ScrollArea/ScrollAreaRoot.cjs.map +1 -1
  505. package/dist/ScrollArea/ScrollAreaRoot.js.map +1 -1
  506. package/dist/ScrollArea/ScrollAreaScrollbar.cjs +1 -1
  507. package/dist/ScrollArea/ScrollAreaScrollbar.cjs.map +1 -1
  508. package/dist/ScrollArea/ScrollAreaScrollbar.js +1 -1
  509. package/dist/ScrollArea/ScrollAreaScrollbar.js.map +1 -1
  510. package/dist/ScrollArea/ScrollAreaScrollbarAuto.cjs.map +1 -1
  511. package/dist/ScrollArea/ScrollAreaScrollbarAuto.js.map +1 -1
  512. package/dist/ScrollArea/ScrollAreaScrollbarHover.cjs.map +1 -1
  513. package/dist/ScrollArea/ScrollAreaScrollbarHover.js.map +1 -1
  514. package/dist/ScrollArea/ScrollAreaScrollbarImpl.cjs.map +1 -1
  515. package/dist/ScrollArea/ScrollAreaScrollbarImpl.js.map +1 -1
  516. package/dist/ScrollArea/ScrollAreaScrollbarScroll.cjs.map +1 -1
  517. package/dist/ScrollArea/ScrollAreaScrollbarScroll.js.map +1 -1
  518. package/dist/ScrollArea/ScrollAreaScrollbarVisible.cjs.map +1 -1
  519. package/dist/ScrollArea/ScrollAreaScrollbarVisible.js.map +1 -1
  520. package/dist/ScrollArea/ScrollAreaScrollbarX.cjs.map +1 -1
  521. package/dist/ScrollArea/ScrollAreaScrollbarX.js.map +1 -1
  522. package/dist/ScrollArea/ScrollAreaScrollbarY.cjs.map +1 -1
  523. package/dist/ScrollArea/ScrollAreaScrollbarY.js.map +1 -1
  524. package/dist/ScrollArea/ScrollAreaThumb.cjs.map +1 -1
  525. package/dist/ScrollArea/ScrollAreaThumb.js.map +1 -1
  526. package/dist/ScrollArea/ScrollAreaViewport.cjs +1 -1
  527. package/dist/ScrollArea/ScrollAreaViewport.cjs.map +1 -1
  528. package/dist/ScrollArea/ScrollAreaViewport.js +1 -1
  529. package/dist/ScrollArea/ScrollAreaViewport.js.map +1 -1
  530. package/dist/ScrollArea/utils.cjs.map +1 -1
  531. package/dist/ScrollArea/utils.js.map +1 -1
  532. package/dist/Select/BubbleSelect.cjs.map +1 -1
  533. package/dist/Select/BubbleSelect.js.map +1 -1
  534. package/dist/Select/SelectArrow.cjs +1 -1
  535. package/dist/Select/SelectArrow.cjs.map +1 -1
  536. package/dist/Select/SelectArrow.js +1 -1
  537. package/dist/Select/SelectArrow.js.map +1 -1
  538. package/dist/Select/SelectContent.cjs.map +1 -1
  539. package/dist/Select/SelectContent.js.map +1 -1
  540. package/dist/Select/SelectContentImpl.cjs +4 -4
  541. package/dist/Select/SelectContentImpl.cjs.map +1 -1
  542. package/dist/Select/SelectContentImpl.js +4 -4
  543. package/dist/Select/SelectContentImpl.js.map +1 -1
  544. package/dist/Select/SelectItem.cjs +1 -1
  545. package/dist/Select/SelectItem.cjs.map +1 -1
  546. package/dist/Select/SelectItem.js +1 -1
  547. package/dist/Select/SelectItem.js.map +1 -1
  548. package/dist/Select/SelectItemAlignedPosition.cjs +1 -1
  549. package/dist/Select/SelectItemAlignedPosition.cjs.map +1 -1
  550. package/dist/Select/SelectItemAlignedPosition.js +1 -1
  551. package/dist/Select/SelectItemAlignedPosition.js.map +1 -1
  552. package/dist/Select/SelectItemIndicator.cjs.map +1 -1
  553. package/dist/Select/SelectItemIndicator.js.map +1 -1
  554. package/dist/Select/SelectItemText.cjs.map +1 -1
  555. package/dist/Select/SelectItemText.js.map +1 -1
  556. package/dist/Select/SelectPopperPosition.cjs +1 -1
  557. package/dist/Select/SelectPopperPosition.cjs.map +1 -1
  558. package/dist/Select/SelectPopperPosition.js +1 -1
  559. package/dist/Select/SelectPopperPosition.js.map +1 -1
  560. package/dist/Select/SelectProvider.cjs.map +1 -1
  561. package/dist/Select/SelectProvider.js.map +1 -1
  562. package/dist/Select/SelectRoot.cjs +2 -2
  563. package/dist/Select/SelectRoot.cjs.map +1 -1
  564. package/dist/Select/SelectRoot.js +2 -2
  565. package/dist/Select/SelectRoot.js.map +1 -1
  566. package/dist/Select/SelectScrollButtonImpl.cjs.map +1 -1
  567. package/dist/Select/SelectScrollButtonImpl.js.map +1 -1
  568. package/dist/Select/SelectScrollDownButton.cjs +1 -1
  569. package/dist/Select/SelectScrollDownButton.cjs.map +1 -1
  570. package/dist/Select/SelectScrollDownButton.js +1 -1
  571. package/dist/Select/SelectScrollDownButton.js.map +1 -1
  572. package/dist/Select/SelectTrigger.cjs +3 -3
  573. package/dist/Select/SelectTrigger.cjs.map +1 -1
  574. package/dist/Select/SelectTrigger.js +3 -3
  575. package/dist/Select/SelectTrigger.js.map +1 -1
  576. package/dist/Select/SelectValue.cjs +2 -1
  577. package/dist/Select/SelectValue.cjs.map +1 -1
  578. package/dist/Select/SelectValue.js +2 -1
  579. package/dist/Select/SelectValue.js.map +1 -1
  580. package/dist/Select/SelectViewport.cjs +1 -1
  581. package/dist/Select/SelectViewport.cjs.map +1 -1
  582. package/dist/Select/SelectViewport.js +1 -1
  583. package/dist/Select/SelectViewport.js.map +1 -1
  584. package/dist/Select/utils.cjs +4 -0
  585. package/dist/Select/utils.cjs.map +1 -1
  586. package/dist/Select/utils.js +4 -1
  587. package/dist/Select/utils.js.map +1 -1
  588. package/dist/Slider/SliderHorizontal.cjs.map +1 -1
  589. package/dist/Slider/SliderHorizontal.js.map +1 -1
  590. package/dist/Slider/SliderRange.cjs.map +1 -1
  591. package/dist/Slider/SliderRange.js.map +1 -1
  592. package/dist/Slider/SliderRoot.cjs +1 -1
  593. package/dist/Slider/SliderRoot.cjs.map +1 -1
  594. package/dist/Slider/SliderRoot.js +1 -1
  595. package/dist/Slider/SliderRoot.js.map +1 -1
  596. package/dist/Slider/SliderThumb.cjs +1 -1
  597. package/dist/Slider/SliderThumb.cjs.map +1 -1
  598. package/dist/Slider/SliderThumb.js +1 -1
  599. package/dist/Slider/SliderThumb.js.map +1 -1
  600. package/dist/Slider/SliderThumbImpl.cjs +1 -1
  601. package/dist/Slider/SliderThumbImpl.cjs.map +1 -1
  602. package/dist/Slider/SliderThumbImpl.js +1 -1
  603. package/dist/Slider/SliderThumbImpl.js.map +1 -1
  604. package/dist/Slider/SliderVertical.cjs.map +1 -1
  605. package/dist/Slider/SliderVertical.js.map +1 -1
  606. package/dist/Splitter/SplitterGroup.cjs +5 -5
  607. package/dist/Splitter/SplitterGroup.cjs.map +1 -1
  608. package/dist/Splitter/SplitterGroup.js +5 -5
  609. package/dist/Splitter/SplitterGroup.js.map +1 -1
  610. package/dist/Splitter/SplitterPanel.cjs.map +1 -1
  611. package/dist/Splitter/SplitterPanel.js.map +1 -1
  612. package/dist/Splitter/SplitterResizeHandle.cjs +1 -1
  613. package/dist/Splitter/SplitterResizeHandle.cjs.map +1 -1
  614. package/dist/Splitter/SplitterResizeHandle.js +1 -1
  615. package/dist/Splitter/SplitterResizeHandle.js.map +1 -1
  616. package/dist/Stepper/StepperDescription.cjs +1 -1
  617. package/dist/Stepper/StepperDescription.cjs.map +1 -1
  618. package/dist/Stepper/StepperDescription.js +1 -1
  619. package/dist/Stepper/StepperDescription.js.map +1 -1
  620. package/dist/Stepper/StepperIndicator.cjs.map +1 -1
  621. package/dist/Stepper/StepperIndicator.js.map +1 -1
  622. package/dist/Stepper/StepperItem.cjs.map +1 -1
  623. package/dist/Stepper/StepperItem.js.map +1 -1
  624. package/dist/Stepper/StepperRoot.cjs.map +1 -1
  625. package/dist/Stepper/StepperRoot.js.map +1 -1
  626. package/dist/Stepper/StepperSeparator.cjs.map +1 -1
  627. package/dist/Stepper/StepperSeparator.js.map +1 -1
  628. package/dist/Stepper/StepperTitle.cjs.map +1 -1
  629. package/dist/Stepper/StepperTitle.js.map +1 -1
  630. package/dist/Stepper/StepperTrigger.cjs +1 -1
  631. package/dist/Stepper/StepperTrigger.cjs.map +1 -1
  632. package/dist/Stepper/StepperTrigger.js +1 -1
  633. package/dist/Stepper/StepperTrigger.js.map +1 -1
  634. package/dist/Switch/SwitchRoot.cjs.map +1 -1
  635. package/dist/Switch/SwitchRoot.js.map +1 -1
  636. package/dist/Switch/SwitchThumb.cjs.map +1 -1
  637. package/dist/Switch/SwitchThumb.js.map +1 -1
  638. package/dist/Tabs/TabsContent.cjs +1 -1
  639. package/dist/Tabs/TabsContent.cjs.map +1 -1
  640. package/dist/Tabs/TabsContent.js +1 -1
  641. package/dist/Tabs/TabsContent.js.map +1 -1
  642. package/dist/Tabs/TabsIndicator.cjs.map +1 -1
  643. package/dist/Tabs/TabsIndicator.js.map +1 -1
  644. package/dist/Tabs/TabsList.cjs +1 -1
  645. package/dist/Tabs/TabsList.cjs.map +1 -1
  646. package/dist/Tabs/TabsList.js +1 -1
  647. package/dist/Tabs/TabsList.js.map +1 -1
  648. package/dist/Tabs/TabsRoot.cjs.map +1 -1
  649. package/dist/Tabs/TabsRoot.js.map +1 -1
  650. package/dist/Tabs/TabsTrigger.cjs.map +1 -1
  651. package/dist/Tabs/TabsTrigger.js.map +1 -1
  652. package/dist/TagsInput/TagsInputClear.cjs +1 -1
  653. package/dist/TagsInput/TagsInputClear.cjs.map +1 -1
  654. package/dist/TagsInput/TagsInputClear.js +1 -1
  655. package/dist/TagsInput/TagsInputClear.js.map +1 -1
  656. package/dist/TagsInput/TagsInputInput.cjs +1 -1
  657. package/dist/TagsInput/TagsInputInput.cjs.map +1 -1
  658. package/dist/TagsInput/TagsInputInput.js +1 -1
  659. package/dist/TagsInput/TagsInputInput.js.map +1 -1
  660. package/dist/TagsInput/TagsInputItem.cjs.map +1 -1
  661. package/dist/TagsInput/TagsInputItem.js.map +1 -1
  662. package/dist/TagsInput/TagsInputItemDelete.cjs +1 -1
  663. package/dist/TagsInput/TagsInputItemDelete.cjs.map +1 -1
  664. package/dist/TagsInput/TagsInputItemDelete.js +1 -1
  665. package/dist/TagsInput/TagsInputItemDelete.js.map +1 -1
  666. package/dist/TagsInput/TagsInputItemText.cjs +1 -1
  667. package/dist/TagsInput/TagsInputItemText.cjs.map +1 -1
  668. package/dist/TagsInput/TagsInputItemText.js +1 -1
  669. package/dist/TagsInput/TagsInputItemText.js.map +1 -1
  670. package/dist/TagsInput/TagsInputRoot.cjs.map +1 -1
  671. package/dist/TagsInput/TagsInputRoot.js.map +1 -1
  672. package/dist/TimeField/TimeFieldInput.cjs.map +1 -1
  673. package/dist/TimeField/TimeFieldInput.js.map +1 -1
  674. package/dist/TimeField/TimeFieldRoot.cjs +1 -1
  675. package/dist/TimeField/TimeFieldRoot.cjs.map +1 -1
  676. package/dist/TimeField/TimeFieldRoot.js +1 -1
  677. package/dist/TimeField/TimeFieldRoot.js.map +1 -1
  678. package/dist/Toast/ToastAnnounce.cjs +1 -1
  679. package/dist/Toast/ToastAnnounce.cjs.map +1 -1
  680. package/dist/Toast/ToastAnnounce.js +1 -1
  681. package/dist/Toast/ToastAnnounce.js.map +1 -1
  682. package/dist/Toast/ToastProvider.cjs.map +1 -1
  683. package/dist/Toast/ToastProvider.js.map +1 -1
  684. package/dist/Toast/ToastRoot.cjs +28 -20
  685. package/dist/Toast/ToastRoot.cjs.map +1 -1
  686. package/dist/Toast/ToastRoot.js +28 -20
  687. package/dist/Toast/ToastRoot.js.map +1 -1
  688. package/dist/Toast/ToastRootImpl.cjs +3 -3
  689. package/dist/Toast/ToastRootImpl.cjs.map +1 -1
  690. package/dist/Toast/ToastRootImpl.js +3 -3
  691. package/dist/Toast/ToastRootImpl.js.map +1 -1
  692. package/dist/Toast/ToastViewport.cjs +2 -2
  693. package/dist/Toast/ToastViewport.cjs.map +1 -1
  694. package/dist/Toast/ToastViewport.js +2 -2
  695. package/dist/Toast/ToastViewport.js.map +1 -1
  696. package/dist/Toggle/Toggle.cjs.map +1 -1
  697. package/dist/Toggle/Toggle.js.map +1 -1
  698. package/dist/ToggleGroup/ToggleGroupItem.cjs.map +1 -1
  699. package/dist/ToggleGroup/ToggleGroupItem.js.map +1 -1
  700. package/dist/ToggleGroup/ToggleGroupRoot.cjs.map +1 -1
  701. package/dist/ToggleGroup/ToggleGroupRoot.js.map +1 -1
  702. package/dist/Toolbar/ToolbarRoot.cjs.map +1 -1
  703. package/dist/Toolbar/ToolbarRoot.js.map +1 -1
  704. package/dist/Toolbar/ToolbarSeparator.cjs +1 -1
  705. package/dist/Toolbar/ToolbarSeparator.js +1 -1
  706. package/dist/Toolbar/ToolbarToggleGroup.cjs +1 -1
  707. package/dist/Toolbar/ToolbarToggleGroup.cjs.map +1 -1
  708. package/dist/Toolbar/ToolbarToggleGroup.js +1 -1
  709. package/dist/Toolbar/ToolbarToggleGroup.js.map +1 -1
  710. package/dist/Toolbar/ToolbarToggleItem.cjs.map +1 -1
  711. package/dist/Toolbar/ToolbarToggleItem.js.map +1 -1
  712. package/dist/Tooltip/TooltipContent.cjs +1 -1
  713. package/dist/Tooltip/TooltipContent.cjs.map +1 -1
  714. package/dist/Tooltip/TooltipContent.js +1 -1
  715. package/dist/Tooltip/TooltipContent.js.map +1 -1
  716. package/dist/Tooltip/TooltipContentHoverable.cjs.map +1 -1
  717. package/dist/Tooltip/TooltipContentHoverable.js.map +1 -1
  718. package/dist/Tooltip/TooltipContentImpl.cjs +3 -3
  719. package/dist/Tooltip/TooltipContentImpl.cjs.map +1 -1
  720. package/dist/Tooltip/TooltipContentImpl.js +3 -3
  721. package/dist/Tooltip/TooltipContentImpl.js.map +1 -1
  722. package/dist/Tooltip/TooltipRoot.cjs +1 -1
  723. package/dist/Tooltip/TooltipRoot.cjs.map +1 -1
  724. package/dist/Tooltip/TooltipRoot.js +1 -1
  725. package/dist/Tooltip/TooltipRoot.js.map +1 -1
  726. package/dist/Tooltip/TooltipTrigger.cjs +4 -1
  727. package/dist/Tooltip/TooltipTrigger.cjs.map +1 -1
  728. package/dist/Tooltip/TooltipTrigger.js +4 -1
  729. package/dist/Tooltip/TooltipTrigger.js.map +1 -1
  730. package/dist/Tree/TreeItem.cjs.map +1 -1
  731. package/dist/Tree/TreeItem.js.map +1 -1
  732. package/dist/Tree/TreeRoot.cjs +1 -1
  733. package/dist/Tree/TreeRoot.cjs.map +1 -1
  734. package/dist/Tree/TreeRoot.js +1 -1
  735. package/dist/Tree/TreeRoot.js.map +1 -1
  736. package/dist/Tree/TreeVirtualizer.cjs +3 -3
  737. package/dist/Tree/TreeVirtualizer.cjs.map +1 -1
  738. package/dist/Tree/TreeVirtualizer.js +3 -3
  739. package/dist/Tree/TreeVirtualizer.js.map +1 -1
  740. package/dist/Tree/utils.cjs.map +1 -1
  741. package/dist/Tree/utils.js.map +1 -1
  742. package/dist/VisuallyHidden/VisuallyHiddenInput.cjs.map +1 -1
  743. package/dist/VisuallyHidden/VisuallyHiddenInput.js.map +1 -1
  744. package/dist/VisuallyHidden/VisuallyHiddenInputBubble.cjs.map +1 -1
  745. package/dist/VisuallyHidden/VisuallyHiddenInputBubble.js.map +1 -1
  746. package/dist/component/BaseSeparator.cjs.map +1 -1
  747. package/dist/component/BaseSeparator.js.map +1 -1
  748. package/dist/composables/useWindowSplitterBehavior.cjs.map +1 -1
  749. package/dist/composables/useWindowSplitterBehavior.js.map +1 -1
  750. package/dist/composables/useWindowSplitterPanelGroupBehavior.cjs +3 -3
  751. package/dist/composables/useWindowSplitterPanelGroupBehavior.cjs.map +1 -1
  752. package/dist/composables/useWindowSplitterPanelGroupBehavior.js +3 -3
  753. package/dist/composables/useWindowSplitterPanelGroupBehavior.js.map +1 -1
  754. package/dist/date/calendar.cjs +1 -1
  755. package/dist/date/calendar.cjs.map +1 -1
  756. package/dist/date/calendar.js +1 -1
  757. package/dist/date/calendar.js.map +1 -1
  758. package/dist/date/comparators.cjs +6 -4
  759. package/dist/date/comparators.cjs.map +1 -1
  760. package/dist/date/comparators.js +6 -4
  761. package/dist/date/comparators.js.map +1 -1
  762. package/dist/date/parser.cjs.map +1 -1
  763. package/dist/date/parser.js.map +1 -1
  764. package/dist/date/useDateField.cjs.map +1 -1
  765. package/dist/date/useDateField.js.map +1 -1
  766. package/dist/date/utils.cjs +7 -7
  767. package/dist/date/utils.cjs.map +1 -1
  768. package/dist/date/utils.js +7 -7
  769. package/dist/date/utils.js.map +1 -1
  770. package/dist/date.d.ts +2 -2
  771. package/dist/index.cjs +347 -347
  772. package/dist/index.cjs.map +1 -1
  773. package/dist/index.d.ts +1188 -1323
  774. package/dist/index.js +161 -161
  775. package/dist/index.js.map +1 -1
  776. package/dist/shared/createContext.cjs.map +1 -1
  777. package/dist/shared/createContext.js.map +1 -1
  778. package/dist/shared/renderSlotFragments.cjs.map +1 -1
  779. package/dist/shared/renderSlotFragments.js.map +1 -1
  780. package/dist/shared/useArrowNavigation.cjs.map +1 -1
  781. package/dist/shared/useArrowNavigation.js.map +1 -1
  782. package/dist/shared/useBodyScrollLock.cjs +1 -1
  783. package/dist/shared/useBodyScrollLock.cjs.map +1 -1
  784. package/dist/shared/useBodyScrollLock.js +1 -1
  785. package/dist/shared/useBodyScrollLock.js.map +1 -1
  786. package/dist/shared/useDateFormatter.cjs +1 -1
  787. package/dist/shared/useDateFormatter.cjs.map +1 -1
  788. package/dist/shared/useDateFormatter.js +1 -1
  789. package/dist/shared/useDateFormatter.js.map +1 -1
  790. package/dist/shared/useDirection.cjs.map +1 -1
  791. package/dist/shared/useDirection.js.map +1 -1
  792. package/dist/shared/useFilter.cjs.map +1 -1
  793. package/dist/shared/useFilter.js.map +1 -1
  794. package/dist/shared/useFormControl.cjs.map +1 -1
  795. package/dist/shared/useFormControl.js.map +1 -1
  796. package/dist/shared/useForwardExpose.cjs.map +1 -1
  797. package/dist/shared/useForwardExpose.js.map +1 -1
  798. package/dist/shared/useForwardProps.cjs.map +1 -1
  799. package/dist/shared/useForwardProps.js.map +1 -1
  800. package/dist/shared/useForwardPropsEmits.cjs.map +1 -1
  801. package/dist/shared/useForwardPropsEmits.js.map +1 -1
  802. package/dist/shared/useGraceArea.cjs +1 -1
  803. package/dist/shared/useGraceArea.cjs.map +1 -1
  804. package/dist/shared/useGraceArea.js +1 -1
  805. package/dist/shared/useGraceArea.js.map +1 -1
  806. package/dist/shared/useHideOthers.cjs.map +1 -1
  807. package/dist/shared/useHideOthers.js.map +1 -1
  808. package/dist/shared/useLocale.cjs.map +1 -1
  809. package/dist/shared/useLocale.js.map +1 -1
  810. package/dist/shared/useNonce.cjs.map +1 -1
  811. package/dist/shared/useNonce.js.map +1 -1
  812. package/dist/shared/useSelectionBehavior.cjs +2 -2
  813. package/dist/shared/useSelectionBehavior.cjs.map +1 -1
  814. package/dist/shared/useSelectionBehavior.js +2 -2
  815. package/dist/shared/useSelectionBehavior.js.map +1 -1
  816. package/dist/shared/useSingleOrMultipleValue.cjs +1 -1
  817. package/dist/shared/useSingleOrMultipleValue.cjs.map +1 -1
  818. package/dist/shared/useSingleOrMultipleValue.js +1 -1
  819. package/dist/shared/useSingleOrMultipleValue.js.map +1 -1
  820. package/dist/shared/useSize.cjs.map +1 -1
  821. package/dist/shared/useSize.js.map +1 -1
  822. package/dist/shared/useStateMachine.cjs.map +1 -1
  823. package/dist/shared/useStateMachine.js.map +1 -1
  824. package/dist/shared/withDefault.cjs.map +1 -1
  825. package/dist/shared/withDefault.js.map +1 -1
  826. package/dist/utils/calculate.cjs +1 -1
  827. package/dist/utils/calculate.cjs.map +1 -1
  828. package/dist/utils/calculate.js +1 -1
  829. package/dist/utils/calculate.js.map +1 -1
  830. package/dist/utils/dom.cjs.map +1 -1
  831. package/dist/utils/dom.js.map +1 -1
  832. package/dist/utils/registry.cjs +1 -1
  833. package/dist/utils/registry.cjs.map +1 -1
  834. package/dist/utils/registry.js +1 -1
  835. package/dist/utils/registry.js.map +1 -1
  836. package/dist/utils/resizePanel.cjs +1 -1
  837. package/dist/utils/resizePanel.cjs.map +1 -1
  838. package/dist/utils/resizePanel.js +1 -1
  839. package/dist/utils/resizePanel.js.map +1 -1
  840. package/dist/utils/style.cjs.map +1 -1
  841. package/dist/utils/style.js.map +1 -1
  842. package/package.json +7 -8
@@ -1,8 +1,8 @@
1
1
  import { defineComponent, onMounted, watch, createBlock, openBlock, unref, withKeys, withModifiers, isRef, withCtx, renderSlot, nextTick } from 'vue';
2
2
  import { useVModel } from '@vueuse/core';
3
- import { i as injectComboboxRootContext } from './ComboboxRoot.js';
4
3
  import { u as usePrimitiveElement } from '../Primitive/usePrimitiveElement.js';
5
4
  import { _ as _sfc_main$1 } from '../Listbox/ListboxFilter.js';
5
+ import { i as injectComboboxRootContext } from './ComboboxRoot.js';
6
6
  import { i as injectListboxRootContext } from '../Listbox/ListboxRoot.js';
7
7
 
8
8
  const _sfc_main = /* @__PURE__ */ defineComponent({
@@ -69,6 +69,14 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
69
69
  if (!rootContext.isUserInputted.value && rootContext.resetSearchTermOnSelect.value)
70
70
  resetSearchTerm();
71
71
  }, { immediate: true, deep: true });
72
+ watch(
73
+ () => props.modelValue,
74
+ () => {
75
+ if (props.modelValue !== void 0) {
76
+ rootContext.filterState.search = props.modelValue;
77
+ }
78
+ }
79
+ );
72
80
  return (_ctx, _cache) => {
73
81
  return openBlock(), createBlock(unref(_sfc_main$1), {
74
82
  ref_key: "primitiveElement",
@@ -1 +1 @@
1
- {"version":3,"file":"ComboboxInput.js","sources":["../../src/Combobox/ComboboxInput.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { ListboxFilterEmits, ListboxFilterProps } from '@/Listbox'\nimport { useVModel } from '@vueuse/core'\nimport { usePrimitiveElement } from '@/Primitive'\nimport { nextTick, onMounted, watch } from 'vue'\n\nexport type ComboboxInputEmits = ListboxFilterEmits\nexport interface ComboboxInputProps extends ListboxFilterProps {\n /** The display value of input for selected item. Does not work with `multiple`. */\n displayValue?: (val: any) => string\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { injectComboboxRootContext } from './ComboboxRoot.vue'\nimport { injectListboxRootContext } from '@/Listbox/ListboxRoot.vue'\nimport { ListboxFilter } from '@/Listbox'\n\nconst props = withDefaults(defineProps<ComboboxInputProps>(), {\n as: 'input',\n})\nconst emits = defineEmits<ComboboxInputEmits>()\n\nconst rootContext = injectComboboxRootContext()\nconst listboxContext = injectListboxRootContext()\nconst { primitiveElement, currentElement } = usePrimitiveElement()\n\nconst modelValue = useVModel(props, 'modelValue', emits, {\n passive: (props.modelValue === undefined) as false,\n})\n\nonMounted(() => {\n if (currentElement.value)\n rootContext.onInputElementChange(currentElement.value as HTMLInputElement)\n})\n\nfunction handleKeyDown(ev: KeyboardEvent) {\n if (!rootContext.open.value)\n rootContext.onOpenChange(true)\n}\n\nfunction handleInput(event: InputEvent) {\n const target = event.target as HTMLInputElement\n if (!rootContext.open.value) {\n rootContext.onOpenChange(true)\n nextTick(() => {\n if (target.value) {\n rootContext.filterState.search = target.value\n listboxContext.highlightFirstItem(event)\n }\n })\n }\n else {\n rootContext.filterState.search = target.value\n }\n}\n\nfunction resetSearchTerm() {\n const rootModelValue = rootContext.modelValue.value\n\n if (props.displayValue) {\n modelValue.value = props.displayValue(rootModelValue)\n }\n else if (!rootContext.multiple.value && rootModelValue && !Array.isArray(rootModelValue)) {\n if (typeof rootModelValue !== 'object')\n modelValue.value = rootModelValue.toString()\n else modelValue.value = ''\n }\n else {\n modelValue.value = ''\n }\n\n nextTick(() => {\n // Temporary force reassign\n // eslint-disable-next-line no-self-assign\n modelValue.value = modelValue.value\n })\n}\n\nrootContext.onResetSearchTerm(() => {\n resetSearchTerm()\n})\n\nwatch(rootContext.modelValue, async () => {\n if (!rootContext.isUserInputted.value && rootContext.resetSearchTermOnSelect.value)\n resetSearchTerm()\n}, { immediate: true, deep: true })\n</script>\n\n<template>\n <ListboxFilter\n ref=\"primitiveElement\"\n v-model=\"modelValue\"\n :as=\"as\"\n :as-child=\"asChild\"\n :auto-focus=\"autoFocus\"\n :aria-expanded=\"rootContext.open.value\"\n :aria-controls=\"rootContext.contentId\"\n aria-autocomplete=\"list\"\n role=\"combobox\"\n autocomplete=\"false\"\n @input=\"handleInput\"\n @keydown.down.up.prevent=\"handleKeyDown\"\n >\n <slot />\n </ListboxFilter>\n</template>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AAkBA,IAAA,MAAM,KAAQ,GAAA,OAAA;AAGd,IAAA,MAAM,KAAQ,GAAA,MAAA;AAEd,IAAA,MAAM,cAAc,yBAA0B,EAAA;AAC9C,IAAA,MAAM,iBAAiB,wBAAyB,EAAA;AAChD,IAAA,MAAM,EAAE,gBAAA,EAAkB,cAAe,EAAA,GAAI,mBAAoB,EAAA;AAEjE,IAAA,MAAM,UAAa,GAAA,SAAA,CAAU,KAAO,EAAA,YAAA,EAAc,KAAO,EAAA;AAAA,MACvD,OAAA,EAAU,MAAM,UAAe,KAAA;AAAA,KAChC,CAAA;AAED,IAAA,SAAA,CAAU,MAAM;AACd,MAAA,IAAI,cAAe,CAAA,KAAA;AACjB,QAAY,WAAA,CAAA,oBAAA,CAAqB,eAAe,KAAyB,CAAA;AAAA,KAC5E,CAAA;AAED,IAAA,SAAS,cAAc,EAAmB,EAAA;AACxC,MAAI,IAAA,CAAC,YAAY,IAAK,CAAA,KAAA;AACpB,QAAA,WAAA,CAAY,aAAa,IAAI,CAAA;AAAA;AAGjC,IAAA,SAAS,YAAY,KAAmB,EAAA;AACtC,MAAA,MAAM,SAAS,KAAM,CAAA,MAAA;AACrB,MAAI,IAAA,CAAC,WAAY,CAAA,IAAA,CAAK,KAAO,EAAA;AAC3B,QAAA,WAAA,CAAY,aAAa,IAAI,CAAA;AAC7B,QAAA,QAAA,CAAS,MAAM;AACb,UAAA,IAAI,OAAO,KAAO,EAAA;AAChB,YAAY,WAAA,CAAA,WAAA,CAAY,SAAS,MAAO,CAAA,KAAA;AACxC,YAAA,cAAA,CAAe,mBAAmB,KAAK,CAAA;AAAA;AACzC,SACD,CAAA;AAAA,OAEE,MAAA;AACH,QAAY,WAAA,CAAA,WAAA,CAAY,SAAS,MAAO,CAAA,KAAA;AAAA;AAC1C;AAGF,IAAA,SAAS,eAAkB,GAAA;AACzB,MAAM,MAAA,cAAA,GAAiB,YAAY,UAAW,CAAA,KAAA;AAE9C,MAAA,IAAI,MAAM,YAAc,EAAA;AACtB,QAAW,UAAA,CAAA,KAAA,GAAQ,KAAM,CAAA,YAAA,CAAa,cAAc,CAAA;AAAA,OACtD,MAAA,IACS,CAAC,WAAA,CAAY,QAAS,CAAA,KAAA,IAAS,kBAAkB,CAAC,KAAA,CAAM,OAAQ,CAAA,cAAc,CAAG,EAAA;AACxF,QAAA,IAAI,OAAO,cAAmB,KAAA,QAAA;AAC5B,UAAW,UAAA,CAAA,KAAA,GAAQ,eAAe,QAAS,EAAA;AAAA,wBAC7B,KAAQ,GAAA,EAAA;AAAA,OAErB,MAAA;AACH,QAAA,UAAA,CAAW,KAAQ,GAAA,EAAA;AAAA;AAGrB,MAAA,QAAA,CAAS,MAAM;AAGb,QAAA,UAAA,CAAW,QAAQ,UAAW,CAAA,KAAA;AAAA,OAC/B,CAAA;AAAA;AAGH,IAAA,WAAA,CAAY,kBAAkB,MAAM;AAClC,MAAgB,eAAA,EAAA;AAAA,KACjB,CAAA;AAED,IAAM,KAAA,CAAA,WAAA,CAAY,YAAY,YAAY;AACxC,MAAA,IAAI,CAAC,WAAA,CAAY,cAAe,CAAA,KAAA,IAAS,YAAY,uBAAwB,CAAA,KAAA;AAC3E,QAAgB,eAAA,EAAA;AAAA,OACjB,EAAE,SAAA,EAAW,IAAM,EAAA,IAAA,EAAM,MAAM,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"ComboboxInput.js","sources":["../../src/Combobox/ComboboxInput.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { ListboxFilterEmits, ListboxFilterProps } from '@/Listbox'\nimport { usePrimitiveElement } from '@/Primitive'\nimport { useVModel } from '@vueuse/core'\nimport { nextTick, onMounted, watch } from 'vue'\n\nexport type ComboboxInputEmits = ListboxFilterEmits\nexport interface ComboboxInputProps extends ListboxFilterProps {\n /** The display value of input for selected item. Does not work with `multiple`. */\n displayValue?: (val: any) => string\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { ListboxFilter } from '@/Listbox'\nimport { injectListboxRootContext } from '@/Listbox/ListboxRoot.vue'\nimport { injectComboboxRootContext } from './ComboboxRoot.vue'\n\nconst props = withDefaults(defineProps<ComboboxInputProps>(), {\n as: 'input',\n})\nconst emits = defineEmits<ComboboxInputEmits>()\n\nconst rootContext = injectComboboxRootContext()\nconst listboxContext = injectListboxRootContext()\nconst { primitiveElement, currentElement } = usePrimitiveElement()\n\nconst modelValue = useVModel(props, 'modelValue', emits, {\n passive: (props.modelValue === undefined) as false,\n})\n\nonMounted(() => {\n if (currentElement.value)\n rootContext.onInputElementChange(currentElement.value as HTMLInputElement)\n})\n\nfunction handleKeyDown(ev: KeyboardEvent) {\n if (!rootContext.open.value)\n rootContext.onOpenChange(true)\n}\n\nfunction handleInput(event: InputEvent) {\n const target = event.target as HTMLInputElement\n if (!rootContext.open.value) {\n rootContext.onOpenChange(true)\n nextTick(() => {\n if (target.value) {\n rootContext.filterState.search = target.value\n listboxContext.highlightFirstItem(event)\n }\n })\n }\n else {\n rootContext.filterState.search = target.value\n }\n}\n\nfunction resetSearchTerm() {\n const rootModelValue = rootContext.modelValue.value\n\n if (props.displayValue) {\n modelValue.value = props.displayValue(rootModelValue)\n }\n else if (!rootContext.multiple.value && rootModelValue && !Array.isArray(rootModelValue)) {\n if (typeof rootModelValue !== 'object')\n modelValue.value = rootModelValue.toString()\n else modelValue.value = ''\n }\n else {\n modelValue.value = ''\n }\n\n nextTick(() => {\n // Temporary force reassign\n // eslint-disable-next-line no-self-assign\n modelValue.value = modelValue.value\n })\n}\n\nrootContext.onResetSearchTerm(() => {\n resetSearchTerm()\n})\n\nwatch(rootContext.modelValue, async () => {\n if (!rootContext.isUserInputted.value && rootContext.resetSearchTermOnSelect.value)\n resetSearchTerm()\n}, { immediate: true, deep: true })\n\nwatch(\n () => props.modelValue,\n () => {\n if (props.modelValue !== undefined) {\n rootContext.filterState.search = props.modelValue\n }\n },\n)\n</script>\n\n<template>\n <ListboxFilter\n ref=\"primitiveElement\"\n v-model=\"modelValue\"\n :as=\"as\"\n :as-child=\"asChild\"\n :auto-focus=\"autoFocus\"\n :aria-expanded=\"rootContext.open.value\"\n :aria-controls=\"rootContext.contentId\"\n aria-autocomplete=\"list\"\n role=\"combobox\"\n autocomplete=\"false\"\n @input=\"handleInput\"\n @keydown.down.up.prevent=\"handleKeyDown\"\n >\n <slot />\n </ListboxFilter>\n</template>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AAkBA,IAAA,MAAM,KAAQ,GAAA,OAAA;AAGd,IAAA,MAAM,KAAQ,GAAA,MAAA;AAEd,IAAA,MAAM,cAAc,yBAA0B,EAAA;AAC9C,IAAA,MAAM,iBAAiB,wBAAyB,EAAA;AAChD,IAAA,MAAM,EAAE,gBAAA,EAAkB,cAAe,EAAA,GAAI,mBAAoB,EAAA;AAEjE,IAAA,MAAM,UAAa,GAAA,SAAA,CAAU,KAAO,EAAA,YAAA,EAAc,KAAO,EAAA;AAAA,MACvD,OAAA,EAAU,MAAM,UAAe,KAAA;AAAA,KAChC,CAAA;AAED,IAAA,SAAA,CAAU,MAAM;AACd,MAAA,IAAI,cAAe,CAAA,KAAA;AACjB,QAAY,WAAA,CAAA,oBAAA,CAAqB,eAAe,KAAyB,CAAA;AAAA,KAC5E,CAAA;AAED,IAAA,SAAS,cAAc,EAAmB,EAAA;AACxC,MAAI,IAAA,CAAC,YAAY,IAAK,CAAA,KAAA;AACpB,QAAA,WAAA,CAAY,aAAa,IAAI,CAAA;AAAA;AAGjC,IAAA,SAAS,YAAY,KAAmB,EAAA;AACtC,MAAA,MAAM,SAAS,KAAM,CAAA,MAAA;AACrB,MAAI,IAAA,CAAC,WAAY,CAAA,IAAA,CAAK,KAAO,EAAA;AAC3B,QAAA,WAAA,CAAY,aAAa,IAAI,CAAA;AAC7B,QAAA,QAAA,CAAS,MAAM;AACb,UAAA,IAAI,OAAO,KAAO,EAAA;AAChB,YAAY,WAAA,CAAA,WAAA,CAAY,SAAS,MAAO,CAAA,KAAA;AACxC,YAAA,cAAA,CAAe,mBAAmB,KAAK,CAAA;AAAA;AACzC,SACD,CAAA;AAAA,OAEE,MAAA;AACH,QAAY,WAAA,CAAA,WAAA,CAAY,SAAS,MAAO,CAAA,KAAA;AAAA;AAC1C;AAGF,IAAA,SAAS,eAAkB,GAAA;AACzB,MAAM,MAAA,cAAA,GAAiB,YAAY,UAAW,CAAA,KAAA;AAE9C,MAAA,IAAI,MAAM,YAAc,EAAA;AACtB,QAAW,UAAA,CAAA,KAAA,GAAQ,KAAM,CAAA,YAAA,CAAa,cAAc,CAAA;AAAA,OACtD,MAAA,IACS,CAAC,WAAA,CAAY,QAAS,CAAA,KAAA,IAAS,kBAAkB,CAAC,KAAA,CAAM,OAAQ,CAAA,cAAc,CAAG,EAAA;AACxF,QAAA,IAAI,OAAO,cAAmB,KAAA,QAAA;AAC5B,UAAW,UAAA,CAAA,KAAA,GAAQ,eAAe,QAAS,EAAA;AAAA,wBAC7B,KAAQ,GAAA,EAAA;AAAA,OAErB,MAAA;AACH,QAAA,UAAA,CAAW,KAAQ,GAAA,EAAA;AAAA;AAGrB,MAAA,QAAA,CAAS,MAAM;AAGb,QAAA,UAAA,CAAW,QAAQ,UAAW,CAAA,KAAA;AAAA,OAC/B,CAAA;AAAA;AAGH,IAAA,WAAA,CAAY,kBAAkB,MAAM;AAClC,MAAgB,eAAA,EAAA;AAAA,KACjB,CAAA;AAED,IAAM,KAAA,CAAA,WAAA,CAAY,YAAY,YAAY;AACxC,MAAA,IAAI,CAAC,WAAA,CAAY,cAAe,CAAA,KAAA,IAAS,YAAY,uBAAwB,CAAA,KAAA;AAC3E,QAAgB,eAAA,EAAA;AAAA,OACjB,EAAE,SAAA,EAAW,IAAM,EAAA,IAAA,EAAM,MAAM,CAAA;AAElC,IAAA,KAAA;AAAA,MACE,MAAM,KAAM,CAAA,UAAA;AAAA,MACZ,MAAM;AACJ,QAAI,IAAA,KAAA,CAAM,eAAe,MAAW,EAAA;AAClC,UAAY,WAAA,CAAA,WAAA,CAAY,SAAS,KAAM,CAAA,UAAA;AAAA;AACzC;AACF,KACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -2,10 +2,10 @@
2
2
 
3
3
  const vue = require('vue');
4
4
  const shared_useId = require('../shared/useId.cjs');
5
+ const Combobox_ComboboxGroup = require('./ComboboxGroup.cjs');
5
6
  const Primitive_usePrimitiveElement = require('../Primitive/usePrimitiveElement.cjs');
6
7
  const Listbox_ListboxItem = require('../Listbox/ListboxItem.cjs');
7
8
  const Combobox_ComboboxRoot = require('./ComboboxRoot.cjs');
8
- const Combobox_ComboboxGroup = require('./ComboboxGroup.cjs');
9
9
 
10
10
  const _sfc_main = /* @__PURE__ */ vue.defineComponent({
11
11
  __name: "ComboboxItem",
@@ -59,11 +59,12 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
59
59
  id: vue.unref(id),
60
60
  ref_key: "primitiveElement",
61
61
  ref: primitiveElement,
62
+ disabled: vue.unref(rootContext).disabled.value || _ctx.disabled,
62
63
  onSelect: _cache[0] || (_cache[0] = (event) => {
63
64
  emits("select", event);
64
65
  if (event.defaultPrevented)
65
66
  return;
66
- if (!vue.unref(rootContext).multiple.value) {
67
+ if (!vue.unref(rootContext).multiple.value && !_ctx.disabled && !vue.unref(rootContext).disabled.value) {
67
68
  event.preventDefault();
68
69
  vue.unref(rootContext).onOpenChange(false);
69
70
  vue.unref(rootContext).modelValue.value = props.value;
@@ -76,7 +77,7 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
76
77
  ])
77
78
  ]),
78
79
  _: 3
79
- }, 16, ["id"])) : vue.createCommentVNode("", true);
80
+ }, 16, ["id", "disabled"])) : vue.createCommentVNode("", true);
80
81
  };
81
82
  }
82
83
  });
@@ -1 +1 @@
1
- {"version":3,"file":"ComboboxItem.cjs","sources":["../../src/Combobox/ComboboxItem.vue"],"sourcesContent":["<script lang=\"ts\">\nimport { computed, onMounted, onUnmounted } from 'vue'\nimport type { ListboxItemEmits, ListboxItemProps } from '@/Listbox'\nimport { useId } from '@/shared'\nimport { injectComboboxRootContext } from './ComboboxRoot.vue'\nimport type { AcceptableValue } from '@/shared/types'\nimport { injectComboboxGroupContext } from './ComboboxGroup.vue'\nimport { usePrimitiveElement } from '@/Primitive'\n\nexport { injectListboxItemContext as injectComboboxItemContext } from '@/Listbox'\n\nexport type ComboboxItemEmits<T = AcceptableValue> = ListboxItemEmits<T>\nexport interface ComboboxItemProps<T = AcceptableValue> extends ListboxItemProps<T> {\n /**\n * A string representation of the item contents.\n *\n * If the children are not plain text, then the `textValue` prop must also be set to a plain text representation, which will be used for autocomplete in the ComboBox.\n */\n textValue?: string\n}\n</script>\n\n<script setup lang=\"ts\" generic=\"T extends AcceptableValue = AcceptableValue\">\nimport { ListboxItem } from '@/Listbox'\n\nconst props = defineProps<ComboboxItemProps<T>>()\nconst emits = defineEmits<ComboboxItemEmits<T>>()\n\nconst id = useId(undefined, 'reka-combobox-item')\nconst rootContext = injectComboboxRootContext()\nconst groupContext = injectComboboxGroupContext(null)\n\nconst { primitiveElement, currentElement } = usePrimitiveElement()\n\nif (props.value === '') {\n throw new Error(\n 'A <ComboboxItem /> must have a value prop that is not an empty string. This is because the Combobox value can be set to an empty string to clear the selection and show the placeholder.',\n )\n}\n\nconst isRender = computed(() => {\n if (rootContext.isVirtual.value || rootContext.ignoreFilter.value || !rootContext.filterState.search) {\n return true\n }\n else {\n const filteredCurrentItem = rootContext.filterState.filtered.items.get(id)\n // If the filtered items is undefined means not in the all times map yet\n // Do the first render to add into the map\n if (filteredCurrentItem === undefined) {\n return true\n }\n\n // Check with filter\n return filteredCurrentItem > 0\n }\n})\n\nonMounted(() => {\n // textValue to perform filter\n rootContext.allItems.value.set(id, props.textValue || currentElement.value.textContent || currentElement.value.innerText)\n\n const groupId = groupContext?.id\n if (groupId) {\n if (!rootContext.allGroups.value.has(groupId)) {\n rootContext.allGroups.value.set(groupId, new Set([id]))\n }\n else {\n rootContext.allGroups.value.get(groupId)?.add(id)\n }\n }\n})\nonUnmounted(() => {\n rootContext.allItems.value.delete(id)\n})\n</script>\n\n<template>\n <ListboxItem\n v-if=\"isRender\"\n v-bind=\"props\"\n :id=\"id\"\n ref=\"primitiveElement\"\n @select=\"(event) => {\n emits('select', event as any)\n if (event.defaultPrevented)\n return\n\n if (!rootContext.multiple.value) {\n event.preventDefault()\n rootContext.onOpenChange(false)\n rootContext.modelValue.value = props.value\n }\n }\"\n >\n <slot>{{ value }}</slot>\n </ListboxItem>\n</template>\n"],"names":["useId","injectComboboxRootContext","injectComboboxGroupContext","usePrimitiveElement","computed","onMounted","onUnmounted"],"mappings":";;;;;;;;;;;;;;;;;;;;AAyBA,IAAA,MAAM,KAAQ,GAAA,OAAA;AACd,IAAA,MAAM,KAAQ,GAAA,MAAA;AAEd,IAAM,MAAA,EAAA,GAAKA,kBAAM,CAAA,MAAA,EAAW,oBAAoB,CAAA;AAChD,IAAA,MAAM,cAAcC,+CAA0B,EAAA;AAC9C,IAAM,MAAA,YAAA,GAAeC,kDAA2B,IAAI,CAAA;AAEpD,IAAA,MAAM,EAAE,gBAAA,EAAkB,cAAe,EAAA,GAAIC,iDAAoB,EAAA;AAEjE,IAAI,IAAA,KAAA,CAAM,UAAU,EAAI,EAAA;AACtB,MAAA,MAAM,IAAI,KAAA;AAAA,QACR;AAAA,OACF;AAAA;AAGF,IAAM,MAAA,QAAA,GAAWC,aAAS,MAAM;AAC9B,MAAI,IAAA,WAAA,CAAY,UAAU,KAAS,IAAA,WAAA,CAAY,aAAa,KAAS,IAAA,CAAC,WAAY,CAAA,WAAA,CAAY,MAAQ,EAAA;AACpG,QAAO,OAAA,IAAA;AAAA,OAEJ,MAAA;AACH,QAAA,MAAM,sBAAsB,WAAY,CAAA,WAAA,CAAY,QAAS,CAAA,KAAA,CAAM,IAAI,EAAE,CAAA;AAGzE,QAAA,IAAI,wBAAwB,MAAW,EAAA;AACrC,UAAO,OAAA,IAAA;AAAA;AAIT,QAAA,OAAO,mBAAsB,GAAA,CAAA;AAAA;AAC/B,KACD,CAAA;AAED,IAAAC,aAAA,CAAU,MAAM;AAEd,MAAY,WAAA,CAAA,QAAA,CAAS,KAAM,CAAA,GAAA,CAAI,EAAI,EAAA,KAAA,CAAM,SAAa,IAAA,cAAA,CAAe,KAAM,CAAA,WAAA,IAAe,cAAe,CAAA,KAAA,CAAM,SAAS,CAAA;AAExH,MAAA,MAAM,UAAU,YAAc,EAAA,EAAA;AAC9B,MAAA,IAAI,OAAS,EAAA;AACX,QAAA,IAAI,CAAC,WAAY,CAAA,SAAA,CAAU,KAAM,CAAA,GAAA,CAAI,OAAO,CAAG,EAAA;AAC7C,UAAY,WAAA,CAAA,SAAA,CAAU,MAAM,GAAI,CAAA,OAAA,sBAAa,GAAI,CAAA,CAAC,EAAE,CAAC,CAAC,CAAA;AAAA,SAEnD,MAAA;AACH,UAAA,WAAA,CAAY,UAAU,KAAM,CAAA,GAAA,CAAI,OAAO,CAAA,EAAG,IAAI,EAAE,CAAA;AAAA;AAClD;AACF,KACD,CAAA;AACD,IAAAC,eAAA,CAAY,MAAM;AAChB,MAAY,WAAA,CAAA,QAAA,CAAS,KAAM,CAAA,MAAA,CAAO,EAAE,CAAA;AAAA,KACrC,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"ComboboxItem.cjs","sources":["../../src/Combobox/ComboboxItem.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { ListboxItemEmits, ListboxItemProps } from '@/Listbox'\nimport type { AcceptableValue } from '@/shared/types'\nimport { usePrimitiveElement } from '@/Primitive'\nimport { useId } from '@/shared'\nimport { computed, onMounted, onUnmounted } from 'vue'\nimport { injectComboboxGroupContext } from './ComboboxGroup.vue'\nimport { injectComboboxRootContext } from './ComboboxRoot.vue'\n\nexport { injectListboxItemContext as injectComboboxItemContext } from '@/Listbox'\n\nexport type ComboboxItemEmits<T = AcceptableValue> = ListboxItemEmits<T>\nexport interface ComboboxItemProps<T = AcceptableValue> extends ListboxItemProps<T> {\n /**\n * A string representation of the item contents.\n *\n * If the children are not plain text, then the `textValue` prop must also be set to a plain text representation, which will be used for autocomplete in the ComboBox.\n */\n textValue?: string\n}\n</script>\n\n<script setup lang=\"ts\" generic=\"T extends AcceptableValue = AcceptableValue\">\nimport { ListboxItem } from '@/Listbox'\n\nconst props = defineProps<ComboboxItemProps<T>>()\nconst emits = defineEmits<ComboboxItemEmits<T>>()\n\nconst id = useId(undefined, 'reka-combobox-item')\nconst rootContext = injectComboboxRootContext()\nconst groupContext = injectComboboxGroupContext(null)\n\nconst { primitiveElement, currentElement } = usePrimitiveElement()\n\nif (props.value === '') {\n throw new Error(\n 'A <ComboboxItem /> must have a value prop that is not an empty string. This is because the Combobox value can be set to an empty string to clear the selection and show the placeholder.',\n )\n}\n\nconst isRender = computed(() => {\n if (rootContext.isVirtual.value || rootContext.ignoreFilter.value || !rootContext.filterState.search) {\n return true\n }\n else {\n const filteredCurrentItem = rootContext.filterState.filtered.items.get(id)\n // If the filtered items is undefined means not in the all times map yet\n // Do the first render to add into the map\n if (filteredCurrentItem === undefined) {\n return true\n }\n\n // Check with filter\n return filteredCurrentItem > 0\n }\n})\n\nonMounted(() => {\n // textValue to perform filter\n rootContext.allItems.value.set(id, props.textValue || currentElement.value.textContent || currentElement.value.innerText)\n\n const groupId = groupContext?.id\n if (groupId) {\n if (!rootContext.allGroups.value.has(groupId)) {\n rootContext.allGroups.value.set(groupId, new Set([id]))\n }\n else {\n rootContext.allGroups.value.get(groupId)?.add(id)\n }\n }\n})\nonUnmounted(() => {\n rootContext.allItems.value.delete(id)\n})\n</script>\n\n<template>\n <ListboxItem\n v-if=\"isRender\"\n v-bind=\"props\"\n :id=\"id\"\n ref=\"primitiveElement\"\n :disabled=\"rootContext.disabled.value || disabled\"\n @select=\"(event) => {\n emits('select', event as any)\n if (event.defaultPrevented)\n return\n\n if (!rootContext.multiple.value && !disabled && !rootContext.disabled.value) {\n event.preventDefault()\n rootContext.onOpenChange(false)\n rootContext.modelValue.value = props.value\n }\n }\"\n >\n <slot>{{ value }}</slot>\n </ListboxItem>\n</template>\n"],"names":["useId","injectComboboxRootContext","injectComboboxGroupContext","usePrimitiveElement","computed","onMounted","onUnmounted"],"mappings":";;;;;;;;;;;;;;;;;;;;AAyBA,IAAA,MAAM,KAAQ,GAAA,OAAA;AACd,IAAA,MAAM,KAAQ,GAAA,MAAA;AAEd,IAAM,MAAA,EAAA,GAAKA,kBAAM,CAAA,MAAA,EAAW,oBAAoB,CAAA;AAChD,IAAA,MAAM,cAAcC,+CAA0B,EAAA;AAC9C,IAAM,MAAA,YAAA,GAAeC,kDAA2B,IAAI,CAAA;AAEpD,IAAA,MAAM,EAAE,gBAAA,EAAkB,cAAe,EAAA,GAAIC,iDAAoB,EAAA;AAEjE,IAAI,IAAA,KAAA,CAAM,UAAU,EAAI,EAAA;AACtB,MAAA,MAAM,IAAI,KAAA;AAAA,QACR;AAAA,OACF;AAAA;AAGF,IAAM,MAAA,QAAA,GAAWC,aAAS,MAAM;AAC9B,MAAI,IAAA,WAAA,CAAY,UAAU,KAAS,IAAA,WAAA,CAAY,aAAa,KAAS,IAAA,CAAC,WAAY,CAAA,WAAA,CAAY,MAAQ,EAAA;AACpG,QAAO,OAAA,IAAA;AAAA,OAEJ,MAAA;AACH,QAAA,MAAM,sBAAsB,WAAY,CAAA,WAAA,CAAY,QAAS,CAAA,KAAA,CAAM,IAAI,EAAE,CAAA;AAGzE,QAAA,IAAI,wBAAwB,MAAW,EAAA;AACrC,UAAO,OAAA,IAAA;AAAA;AAIT,QAAA,OAAO,mBAAsB,GAAA,CAAA;AAAA;AAC/B,KACD,CAAA;AAED,IAAAC,aAAA,CAAU,MAAM;AAEd,MAAY,WAAA,CAAA,QAAA,CAAS,KAAM,CAAA,GAAA,CAAI,EAAI,EAAA,KAAA,CAAM,SAAa,IAAA,cAAA,CAAe,KAAM,CAAA,WAAA,IAAe,cAAe,CAAA,KAAA,CAAM,SAAS,CAAA;AAExH,MAAA,MAAM,UAAU,YAAc,EAAA,EAAA;AAC9B,MAAA,IAAI,OAAS,EAAA;AACX,QAAA,IAAI,CAAC,WAAY,CAAA,SAAA,CAAU,KAAM,CAAA,GAAA,CAAI,OAAO,CAAG,EAAA;AAC7C,UAAY,WAAA,CAAA,SAAA,CAAU,MAAM,GAAI,CAAA,OAAA,sBAAa,GAAI,CAAA,CAAC,EAAE,CAAC,CAAC,CAAA;AAAA,SAEnD,MAAA;AACH,UAAA,WAAA,CAAY,UAAU,KAAM,CAAA,GAAA,CAAI,OAAO,CAAA,EAAG,IAAI,EAAE,CAAA;AAAA;AAClD;AACF,KACD,CAAA;AACD,IAAAC,eAAA,CAAY,MAAM;AAChB,MAAY,WAAA,CAAA,QAAA,CAAS,KAAM,CAAA,MAAA,CAAO,EAAE,CAAA;AAAA,KACrC,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,9 +1,9 @@
1
1
  import { defineComponent, computed, onMounted, onUnmounted, createBlock, createCommentVNode, openBlock, unref, mergeProps, withCtx, renderSlot, createTextVNode, toDisplayString } from 'vue';
2
2
  import { u as useId } from '../shared/useId.js';
3
+ import { i as injectComboboxGroupContext } from './ComboboxGroup.js';
3
4
  import { u as usePrimitiveElement } from '../Primitive/usePrimitiveElement.js';
4
5
  import { _ as _sfc_main$1 } from '../Listbox/ListboxItem.js';
5
6
  import { i as injectComboboxRootContext } from './ComboboxRoot.js';
6
- import { i as injectComboboxGroupContext } from './ComboboxGroup.js';
7
7
 
8
8
  const _sfc_main = /* @__PURE__ */ defineComponent({
9
9
  __name: "ComboboxItem",
@@ -57,11 +57,12 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
57
57
  id: unref(id),
58
58
  ref_key: "primitiveElement",
59
59
  ref: primitiveElement,
60
+ disabled: unref(rootContext).disabled.value || _ctx.disabled,
60
61
  onSelect: _cache[0] || (_cache[0] = (event) => {
61
62
  emits("select", event);
62
63
  if (event.defaultPrevented)
63
64
  return;
64
- if (!unref(rootContext).multiple.value) {
65
+ if (!unref(rootContext).multiple.value && !_ctx.disabled && !unref(rootContext).disabled.value) {
65
66
  event.preventDefault();
66
67
  unref(rootContext).onOpenChange(false);
67
68
  unref(rootContext).modelValue.value = props.value;
@@ -74,7 +75,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
74
75
  ])
75
76
  ]),
76
77
  _: 3
77
- }, 16, ["id"])) : createCommentVNode("", true);
78
+ }, 16, ["id", "disabled"])) : createCommentVNode("", true);
78
79
  };
79
80
  }
80
81
  });
@@ -1 +1 @@
1
- {"version":3,"file":"ComboboxItem.js","sources":["../../src/Combobox/ComboboxItem.vue"],"sourcesContent":["<script lang=\"ts\">\nimport { computed, onMounted, onUnmounted } from 'vue'\nimport type { ListboxItemEmits, ListboxItemProps } from '@/Listbox'\nimport { useId } from '@/shared'\nimport { injectComboboxRootContext } from './ComboboxRoot.vue'\nimport type { AcceptableValue } from '@/shared/types'\nimport { injectComboboxGroupContext } from './ComboboxGroup.vue'\nimport { usePrimitiveElement } from '@/Primitive'\n\nexport { injectListboxItemContext as injectComboboxItemContext } from '@/Listbox'\n\nexport type ComboboxItemEmits<T = AcceptableValue> = ListboxItemEmits<T>\nexport interface ComboboxItemProps<T = AcceptableValue> extends ListboxItemProps<T> {\n /**\n * A string representation of the item contents.\n *\n * If the children are not plain text, then the `textValue` prop must also be set to a plain text representation, which will be used for autocomplete in the ComboBox.\n */\n textValue?: string\n}\n</script>\n\n<script setup lang=\"ts\" generic=\"T extends AcceptableValue = AcceptableValue\">\nimport { ListboxItem } from '@/Listbox'\n\nconst props = defineProps<ComboboxItemProps<T>>()\nconst emits = defineEmits<ComboboxItemEmits<T>>()\n\nconst id = useId(undefined, 'reka-combobox-item')\nconst rootContext = injectComboboxRootContext()\nconst groupContext = injectComboboxGroupContext(null)\n\nconst { primitiveElement, currentElement } = usePrimitiveElement()\n\nif (props.value === '') {\n throw new Error(\n 'A <ComboboxItem /> must have a value prop that is not an empty string. This is because the Combobox value can be set to an empty string to clear the selection and show the placeholder.',\n )\n}\n\nconst isRender = computed(() => {\n if (rootContext.isVirtual.value || rootContext.ignoreFilter.value || !rootContext.filterState.search) {\n return true\n }\n else {\n const filteredCurrentItem = rootContext.filterState.filtered.items.get(id)\n // If the filtered items is undefined means not in the all times map yet\n // Do the first render to add into the map\n if (filteredCurrentItem === undefined) {\n return true\n }\n\n // Check with filter\n return filteredCurrentItem > 0\n }\n})\n\nonMounted(() => {\n // textValue to perform filter\n rootContext.allItems.value.set(id, props.textValue || currentElement.value.textContent || currentElement.value.innerText)\n\n const groupId = groupContext?.id\n if (groupId) {\n if (!rootContext.allGroups.value.has(groupId)) {\n rootContext.allGroups.value.set(groupId, new Set([id]))\n }\n else {\n rootContext.allGroups.value.get(groupId)?.add(id)\n }\n }\n})\nonUnmounted(() => {\n rootContext.allItems.value.delete(id)\n})\n</script>\n\n<template>\n <ListboxItem\n v-if=\"isRender\"\n v-bind=\"props\"\n :id=\"id\"\n ref=\"primitiveElement\"\n @select=\"(event) => {\n emits('select', event as any)\n if (event.defaultPrevented)\n return\n\n if (!rootContext.multiple.value) {\n event.preventDefault()\n rootContext.onOpenChange(false)\n rootContext.modelValue.value = props.value\n }\n }\"\n >\n <slot>{{ value }}</slot>\n </ListboxItem>\n</template>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAyBA,IAAA,MAAM,KAAQ,GAAA,OAAA;AACd,IAAA,MAAM,KAAQ,GAAA,MAAA;AAEd,IAAM,MAAA,EAAA,GAAK,KAAM,CAAA,MAAA,EAAW,oBAAoB,CAAA;AAChD,IAAA,MAAM,cAAc,yBAA0B,EAAA;AAC9C,IAAM,MAAA,YAAA,GAAe,2BAA2B,IAAI,CAAA;AAEpD,IAAA,MAAM,EAAE,gBAAA,EAAkB,cAAe,EAAA,GAAI,mBAAoB,EAAA;AAEjE,IAAI,IAAA,KAAA,CAAM,UAAU,EAAI,EAAA;AACtB,MAAA,MAAM,IAAI,KAAA;AAAA,QACR;AAAA,OACF;AAAA;AAGF,IAAM,MAAA,QAAA,GAAW,SAAS,MAAM;AAC9B,MAAI,IAAA,WAAA,CAAY,UAAU,KAAS,IAAA,WAAA,CAAY,aAAa,KAAS,IAAA,CAAC,WAAY,CAAA,WAAA,CAAY,MAAQ,EAAA;AACpG,QAAO,OAAA,IAAA;AAAA,OAEJ,MAAA;AACH,QAAA,MAAM,sBAAsB,WAAY,CAAA,WAAA,CAAY,QAAS,CAAA,KAAA,CAAM,IAAI,EAAE,CAAA;AAGzE,QAAA,IAAI,wBAAwB,MAAW,EAAA;AACrC,UAAO,OAAA,IAAA;AAAA;AAIT,QAAA,OAAO,mBAAsB,GAAA,CAAA;AAAA;AAC/B,KACD,CAAA;AAED,IAAA,SAAA,CAAU,MAAM;AAEd,MAAY,WAAA,CAAA,QAAA,CAAS,KAAM,CAAA,GAAA,CAAI,EAAI,EAAA,KAAA,CAAM,SAAa,IAAA,cAAA,CAAe,KAAM,CAAA,WAAA,IAAe,cAAe,CAAA,KAAA,CAAM,SAAS,CAAA;AAExH,MAAA,MAAM,UAAU,YAAc,EAAA,EAAA;AAC9B,MAAA,IAAI,OAAS,EAAA;AACX,QAAA,IAAI,CAAC,WAAY,CAAA,SAAA,CAAU,KAAM,CAAA,GAAA,CAAI,OAAO,CAAG,EAAA;AAC7C,UAAY,WAAA,CAAA,SAAA,CAAU,MAAM,GAAI,CAAA,OAAA,sBAAa,GAAI,CAAA,CAAC,EAAE,CAAC,CAAC,CAAA;AAAA,SAEnD,MAAA;AACH,UAAA,WAAA,CAAY,UAAU,KAAM,CAAA,GAAA,CAAI,OAAO,CAAA,EAAG,IAAI,EAAE,CAAA;AAAA;AAClD;AACF,KACD,CAAA;AACD,IAAA,WAAA,CAAY,MAAM;AAChB,MAAY,WAAA,CAAA,QAAA,CAAS,KAAM,CAAA,MAAA,CAAO,EAAE,CAAA;AAAA,KACrC,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"ComboboxItem.js","sources":["../../src/Combobox/ComboboxItem.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { ListboxItemEmits, ListboxItemProps } from '@/Listbox'\nimport type { AcceptableValue } from '@/shared/types'\nimport { usePrimitiveElement } from '@/Primitive'\nimport { useId } from '@/shared'\nimport { computed, onMounted, onUnmounted } from 'vue'\nimport { injectComboboxGroupContext } from './ComboboxGroup.vue'\nimport { injectComboboxRootContext } from './ComboboxRoot.vue'\n\nexport { injectListboxItemContext as injectComboboxItemContext } from '@/Listbox'\n\nexport type ComboboxItemEmits<T = AcceptableValue> = ListboxItemEmits<T>\nexport interface ComboboxItemProps<T = AcceptableValue> extends ListboxItemProps<T> {\n /**\n * A string representation of the item contents.\n *\n * If the children are not plain text, then the `textValue` prop must also be set to a plain text representation, which will be used for autocomplete in the ComboBox.\n */\n textValue?: string\n}\n</script>\n\n<script setup lang=\"ts\" generic=\"T extends AcceptableValue = AcceptableValue\">\nimport { ListboxItem } from '@/Listbox'\n\nconst props = defineProps<ComboboxItemProps<T>>()\nconst emits = defineEmits<ComboboxItemEmits<T>>()\n\nconst id = useId(undefined, 'reka-combobox-item')\nconst rootContext = injectComboboxRootContext()\nconst groupContext = injectComboboxGroupContext(null)\n\nconst { primitiveElement, currentElement } = usePrimitiveElement()\n\nif (props.value === '') {\n throw new Error(\n 'A <ComboboxItem /> must have a value prop that is not an empty string. This is because the Combobox value can be set to an empty string to clear the selection and show the placeholder.',\n )\n}\n\nconst isRender = computed(() => {\n if (rootContext.isVirtual.value || rootContext.ignoreFilter.value || !rootContext.filterState.search) {\n return true\n }\n else {\n const filteredCurrentItem = rootContext.filterState.filtered.items.get(id)\n // If the filtered items is undefined means not in the all times map yet\n // Do the first render to add into the map\n if (filteredCurrentItem === undefined) {\n return true\n }\n\n // Check with filter\n return filteredCurrentItem > 0\n }\n})\n\nonMounted(() => {\n // textValue to perform filter\n rootContext.allItems.value.set(id, props.textValue || currentElement.value.textContent || currentElement.value.innerText)\n\n const groupId = groupContext?.id\n if (groupId) {\n if (!rootContext.allGroups.value.has(groupId)) {\n rootContext.allGroups.value.set(groupId, new Set([id]))\n }\n else {\n rootContext.allGroups.value.get(groupId)?.add(id)\n }\n }\n})\nonUnmounted(() => {\n rootContext.allItems.value.delete(id)\n})\n</script>\n\n<template>\n <ListboxItem\n v-if=\"isRender\"\n v-bind=\"props\"\n :id=\"id\"\n ref=\"primitiveElement\"\n :disabled=\"rootContext.disabled.value || disabled\"\n @select=\"(event) => {\n emits('select', event as any)\n if (event.defaultPrevented)\n return\n\n if (!rootContext.multiple.value && !disabled && !rootContext.disabled.value) {\n event.preventDefault()\n rootContext.onOpenChange(false)\n rootContext.modelValue.value = props.value\n }\n }\"\n >\n <slot>{{ value }}</slot>\n </ListboxItem>\n</template>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAyBA,IAAA,MAAM,KAAQ,GAAA,OAAA;AACd,IAAA,MAAM,KAAQ,GAAA,MAAA;AAEd,IAAM,MAAA,EAAA,GAAK,KAAM,CAAA,MAAA,EAAW,oBAAoB,CAAA;AAChD,IAAA,MAAM,cAAc,yBAA0B,EAAA;AAC9C,IAAM,MAAA,YAAA,GAAe,2BAA2B,IAAI,CAAA;AAEpD,IAAA,MAAM,EAAE,gBAAA,EAAkB,cAAe,EAAA,GAAI,mBAAoB,EAAA;AAEjE,IAAI,IAAA,KAAA,CAAM,UAAU,EAAI,EAAA;AACtB,MAAA,MAAM,IAAI,KAAA;AAAA,QACR;AAAA,OACF;AAAA;AAGF,IAAM,MAAA,QAAA,GAAW,SAAS,MAAM;AAC9B,MAAI,IAAA,WAAA,CAAY,UAAU,KAAS,IAAA,WAAA,CAAY,aAAa,KAAS,IAAA,CAAC,WAAY,CAAA,WAAA,CAAY,MAAQ,EAAA;AACpG,QAAO,OAAA,IAAA;AAAA,OAEJ,MAAA;AACH,QAAA,MAAM,sBAAsB,WAAY,CAAA,WAAA,CAAY,QAAS,CAAA,KAAA,CAAM,IAAI,EAAE,CAAA;AAGzE,QAAA,IAAI,wBAAwB,MAAW,EAAA;AACrC,UAAO,OAAA,IAAA;AAAA;AAIT,QAAA,OAAO,mBAAsB,GAAA,CAAA;AAAA;AAC/B,KACD,CAAA;AAED,IAAA,SAAA,CAAU,MAAM;AAEd,MAAY,WAAA,CAAA,QAAA,CAAS,KAAM,CAAA,GAAA,CAAI,EAAI,EAAA,KAAA,CAAM,SAAa,IAAA,cAAA,CAAe,KAAM,CAAA,WAAA,IAAe,cAAe,CAAA,KAAA,CAAM,SAAS,CAAA;AAExH,MAAA,MAAM,UAAU,YAAc,EAAA,EAAA;AAC9B,MAAA,IAAI,OAAS,EAAA;AACX,QAAA,IAAI,CAAC,WAAY,CAAA,SAAA,CAAU,KAAM,CAAA,GAAA,CAAI,OAAO,CAAG,EAAA;AAC7C,UAAY,WAAA,CAAA,SAAA,CAAU,MAAM,GAAI,CAAA,OAAA,sBAAa,GAAI,CAAA,CAAC,EAAE,CAAC,CAAC,CAAA;AAAA,SAEnD,MAAA;AACH,UAAA,WAAA,CAAY,UAAU,KAAM,CAAA,GAAA,CAAI,OAAO,CAAA,EAAG,IAAI,EAAE,CAAA;AAAA;AAClD;AACF,KACD,CAAA;AACD,IAAA,WAAA,CAAY,MAAM;AAChB,MAAY,WAAA,CAAA,QAAA,CAAS,KAAM,CAAA,MAAA,CAAO,EAAE,CAAA;AAAA,KACrC,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -2,9 +2,9 @@
2
2
 
3
3
  const vue = require('vue');
4
4
  const shared_useForwardExpose = require('../shared/useForwardExpose.cjs');
5
- const Combobox_ComboboxGroup = require('./ComboboxGroup.cjs');
6
5
  const shared_useId = require('../shared/useId.cjs');
7
6
  const Primitive_Primitive = require('../Primitive/Primitive.cjs');
7
+ const Combobox_ComboboxGroup = require('./ComboboxGroup.cjs');
8
8
 
9
9
  const _sfc_main = /* @__PURE__ */ vue.defineComponent({
10
10
  __name: "ComboboxLabel",
@@ -1,8 +1,8 @@
1
1
  import { defineComponent, createBlock, openBlock, unref, mergeProps, withCtx, renderSlot } from 'vue';
2
2
  import { u as useForwardExpose } from '../shared/useForwardExpose.js';
3
- import { i as injectComboboxGroupContext } from './ComboboxGroup.js';
4
3
  import { u as useId } from '../shared/useId.js';
5
4
  import { P as Primitive } from '../Primitive/Primitive.js';
5
+ import { i as injectComboboxGroupContext } from './ComboboxGroup.js';
6
6
 
7
7
  const _sfc_main = /* @__PURE__ */ defineComponent({
8
8
  __name: "ComboboxLabel",
@@ -1 +1 @@
1
- {"version":3,"file":"ComboboxRoot.cjs","sources":["../../src/Combobox/ComboboxRoot.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { Ref } from 'vue'\nimport type { ListboxRootProps } from '@/Listbox'\nimport { createContext, useDirection, useFilter } from '@/shared'\nimport { usePrimitiveElement } from '@/Primitive'\nimport type { AcceptableValue, GenericComponentInstance } from '@/shared/types'\n\ntype ComboboxRootContext<T> = {\n modelValue: Ref<T | Array<T>>\n multiple: Ref<boolean>\n disabled: Ref<boolean>\n open: Ref<boolean>\n onOpenChange: (value: boolean) => void\n isUserInputted: Ref<boolean>\n isVirtual: Ref<boolean>\n contentId: string\n inputElement: Ref<HTMLInputElement | undefined>\n onInputElementChange: (el: HTMLInputElement) => void\n triggerElement: Ref<HTMLElement | undefined>\n onTriggerElementChange: (el: HTMLElement) => void\n highlightedElement: Ref<HTMLElement | undefined>\n parentElement: Ref<HTMLElement | undefined>\n resetSearchTermOnSelect: Ref<boolean>\n onResetSearchTerm: EventHookOn\n allItems: Ref<Map<string, string>>\n allGroups: Ref<Map<string, Set<string>>>\n filterState: {\n search: string\n filtered: { count: number, items: Map<string, number>, groups: Set<string> }\n }\n ignoreFilter: Ref<boolean>\n}\n\nexport const [injectComboboxRootContext, provideComboboxRootContext]\n = createContext<ComboboxRootContext<AcceptableValue>>('ComboboxRoot')\n\nexport type ComboboxRootEmits<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 the open state of the combobox changes. */\n 'update:open': [value: boolean]\n}\n\nexport interface ComboboxRootProps<T = AcceptableValue> extends Omit<ListboxRootProps<T>, 'orientation' | 'selectionBehavior' > {\n /** The controlled open state of the Combobox. Can be binded with with `v-model:open`. */\n open?: boolean\n /** The open state of the combobox when it is initially rendered. <br> Use when you do not need to control its open state. */\n defaultOpen?: boolean\n /**\n * Whether to reset the searchTerm when the Combobox input blurred\n * @defaultValue `true`\n */\n resetSearchTermOnBlur?: boolean\n /**\n * Whether to reset the searchTerm when the Combobox value is selected\n * @defaultValue `true`\n */\n resetSearchTermOnSelect?: boolean\n /**\n * When `true`, disable the default filters\n */\n ignoreFilter?: boolean\n}\n</script>\n\n<script setup lang=\"ts\" generic=\"T extends AcceptableValue = AcceptableValue\">\nimport { computed, getCurrentInstance, nextTick, onMounted, reactive, ref, toRefs, watch } from 'vue'\nimport { PopperRoot } from '@/Popper'\nimport { type EventHookOn, createEventHook, useVModel } from '@vueuse/core'\nimport { ListboxRoot } from '@/Listbox'\n\nconst props = withDefaults(defineProps<ComboboxRootProps<T>>(), {\n open: undefined,\n resetSearchTermOnBlur: true,\n resetSearchTermOnSelect: true,\n})\nconst emits = defineEmits<ComboboxRootEmits<T>>()\n\ndefineSlots<{\n default: (props: {\n /** Current open state */\n open: typeof open.value\n /** Current active value */\n modelValue: typeof modelValue.value\n }) => any\n}>()\n\nconst { primitiveElement, currentElement: parentElement } = usePrimitiveElement<GenericComponentInstance<typeof ListboxRoot>>()\nconst { multiple, disabled, ignoreFilter, resetSearchTermOnSelect, dir: propDir } = toRefs(props)\n\nconst dir = useDirection(propDir)\n\nconst modelValue = useVModel(props, 'modelValue', emits, {\n // @ts-expect-error ignore the type error here\n defaultValue: props.defaultValue ?? (multiple.value ? [] : undefined),\n passive: (props.modelValue === undefined) as false,\n deep: true,\n}) as Ref<T | T[]>\n\nconst open = useVModel(props, 'open', emits, {\n defaultValue: props.defaultOpen,\n passive: (props.open === undefined) as false,\n}) as Ref<boolean>\n\nasync function onOpenChange(val: boolean) {\n open.value = val\n filterState.search = ''\n\n if (val) {\n // make sure dom is ready then only highlight the selected\n await nextTick()\n primitiveElement.value?.highlightSelected()\n isUserInputted.value = true\n }\n else {\n isUserInputted.value = false\n }\n\n inputElement.value?.focus()\n setTimeout(() => {\n if (!val && props.resetSearchTermOnBlur)\n resetSearchTerm.trigger()\n }, 1)\n}\n\nconst resetSearchTerm = createEventHook()\nconst isUserInputted = ref(false)\nconst isVirtual = ref(false)\nconst inputElement = ref<HTMLInputElement>()\nconst triggerElement = ref<HTMLElement>()\n\nconst highlightedElement = computed(() => primitiveElement.value?.highlightedElement ?? undefined)\n\nconst allItems = ref<Map<string, string>>(new Map())\nconst allGroups = ref<Map<string, Set<string>>>(new Map())\n\nconst { contains } = useFilter({ sensitivity: 'base' })\nconst filterState = reactive({\n search: '',\n filtered: {\n /** The count of all visible items. */\n count: 0,\n /** Map from visible item id to its search score. */\n items: new Map() as Map<string, number>,\n /** Set of groups with at least one visible item. */\n groups: new Set() as Set<string>,\n },\n})\n\nfunction filterItems() {\n if (!filterState.search || props.ignoreFilter || isVirtual.value) {\n filterState.filtered.count = allItems.value.size\n // Do nothing, each item will know to show itself because search is empty\n return\n }\n\n // Reset the groups\n filterState.filtered.groups = new Set()\n let itemCount = 0\n\n // Check which items should be included\n for (const [id, value] of allItems.value) {\n const score = contains(value, filterState.search)\n filterState.filtered.items.set(id, score ? 1 : 0)\n if (score)\n itemCount++\n }\n\n // Check which groups have at least 1 item shown\n for (const [groupId, group] of allGroups.value) {\n for (const itemId of group) {\n if (filterState.filtered.items.get(itemId)! > 0) {\n filterState.filtered.groups.add(groupId)\n break\n }\n }\n }\n\n filterState.filtered.count = itemCount\n}\n\nwatch([() => filterState.search, () => allItems.value.size], () => {\n filterItems()\n}, { immediate: true })\n\nwatch(() => open.value, () => {\n // nextTick to allow multiple items to be mounted first\n nextTick(() => {\n if (open.value)\n filterItems()\n })\n}, { flush: 'post' })\n\nconst inst = getCurrentInstance()\nonMounted(() => {\n if (inst?.exposed) {\n inst.exposed.highlightItem = primitiveElement.value?.highlightItem\n inst.exposed.highlightFirstItem = primitiveElement.value?.highlightFirstItem\n inst.exposed.highlightSelected = primitiveElement.value?.highlightSelected\n }\n})\n\ndefineExpose({\n filtered: computed(() => filterState.filtered),\n highlightedElement,\n highlightItem: primitiveElement.value?.highlightItem,\n highlightFirstItem: primitiveElement.value?.highlightFirstItem,\n highlightSelected: primitiveElement.value?.highlightSelected,\n})\n\nprovideComboboxRootContext({\n modelValue,\n multiple,\n disabled,\n open,\n onOpenChange,\n contentId: '',\n isUserInputted,\n isVirtual,\n inputElement,\n highlightedElement,\n onInputElementChange: val => inputElement.value = val,\n triggerElement,\n onTriggerElementChange: val => triggerElement.value = val,\n parentElement,\n resetSearchTermOnSelect,\n onResetSearchTerm: resetSearchTerm.on,\n allItems,\n allGroups,\n filterState,\n ignoreFilter,\n})\n</script>\n\n<template>\n <PopperRoot>\n <ListboxRoot\n ref=\"primitiveElement\"\n v-bind=\"$attrs\"\n v-model=\"modelValue\"\n :style=\"{\n pointerEvents: open ? 'auto' : undefined,\n }\"\n :as=\"as\"\n :as-child=\"asChild\"\n :dir=\"dir\"\n :multiple=\"multiple\"\n :name=\"name\"\n :required=\"required\"\n :disabled=\"disabled\"\n :highlight-on-hover=\"true\"\n :by=\"props.by as any\"\n @highlight=\"emits('highlight', $event as any)\"\n >\n <slot\n :open=\"open\"\n :model-value=\"modelValue\"\n />\n </ListboxRoot>\n </PopperRoot>\n</template>\n"],"names":["createContext","usePrimitiveElement","toRefs","useDirection","useVModel","nextTick","createEventHook","ref","computed","useFilter","reactive","watch","getCurrentInstance","onMounted"],"mappings":"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"}
1
+ {"version":3,"file":"ComboboxRoot.cjs","sources":["../../src/Combobox/ComboboxRoot.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { ListboxRootProps } from '@/Listbox'\nimport type { AcceptableValue, GenericComponentInstance } from '@/shared/types'\nimport type { Ref } from 'vue'\nimport { usePrimitiveElement } from '@/Primitive'\nimport { createContext, useDirection, useFilter } from '@/shared'\n\ntype ComboboxRootContext<T> = {\n modelValue: Ref<T | Array<T>>\n multiple: Ref<boolean>\n disabled: Ref<boolean>\n open: Ref<boolean>\n onOpenChange: (value: boolean) => void\n isUserInputted: Ref<boolean>\n isVirtual: Ref<boolean>\n contentId: string\n inputElement: Ref<HTMLInputElement | undefined>\n onInputElementChange: (el: HTMLInputElement) => void\n triggerElement: Ref<HTMLElement | undefined>\n onTriggerElementChange: (el: HTMLElement) => void\n highlightedElement: Ref<HTMLElement | undefined>\n parentElement: Ref<HTMLElement | undefined>\n resetSearchTermOnSelect: Ref<boolean>\n onResetSearchTerm: EventHookOn\n allItems: Ref<Map<string, string>>\n allGroups: Ref<Map<string, Set<string>>>\n filterState: {\n search: string\n filtered: { count: number, items: Map<string, number>, groups: Set<string> }\n }\n ignoreFilter: Ref<boolean>\n}\n\nexport const [injectComboboxRootContext, provideComboboxRootContext]\n = createContext<ComboboxRootContext<AcceptableValue>>('ComboboxRoot')\n\nexport type ComboboxRootEmits<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 the open state of the combobox changes. */\n 'update:open': [value: boolean]\n}\n\nexport interface ComboboxRootProps<T = AcceptableValue> extends Omit<ListboxRootProps<T>, 'orientation' | 'selectionBehavior'> {\n /** The controlled open state of the Combobox. Can be binded with with `v-model:open`. */\n open?: boolean\n /** The open state of the combobox when it is initially rendered. <br> Use when you do not need to control its open state. */\n defaultOpen?: boolean\n /**\n * Whether to reset the searchTerm when the Combobox input blurred\n * @defaultValue `true`\n */\n resetSearchTermOnBlur?: boolean\n /**\n * Whether to reset the searchTerm when the Combobox value is selected\n * @defaultValue `true`\n */\n resetSearchTermOnSelect?: boolean\n /**\n * When `true`, disable the default filters\n */\n ignoreFilter?: boolean\n}\n</script>\n\n<script setup lang=\"ts\" generic=\"T extends AcceptableValue = AcceptableValue\">\nimport type { EventHookOn } from '@vueuse/core'\nimport { ListboxRoot } from '@/Listbox'\nimport { PopperRoot } from '@/Popper'\nimport { createEventHook, useVModel } from '@vueuse/core'\nimport { computed, getCurrentInstance, nextTick, onMounted, reactive, ref, toRefs, watch } from 'vue'\n\nconst props = withDefaults(defineProps<ComboboxRootProps<T>>(), {\n open: undefined,\n resetSearchTermOnBlur: true,\n resetSearchTermOnSelect: true,\n})\nconst emits = defineEmits<ComboboxRootEmits<T>>()\n\ndefineSlots<{\n default: (props: {\n /** Current open state */\n open: typeof open.value\n /** Current active value */\n modelValue: typeof modelValue.value\n }) => any\n}>()\n\nconst { primitiveElement, currentElement: parentElement } = usePrimitiveElement<GenericComponentInstance<typeof ListboxRoot>>()\nconst { multiple, disabled, ignoreFilter, resetSearchTermOnSelect, dir: propDir } = toRefs(props)\n\nconst dir = useDirection(propDir)\n\nconst modelValue = useVModel(props, 'modelValue', emits, {\n // @ts-expect-error ignore the type error here\n defaultValue: props.defaultValue ?? (multiple.value ? [] : undefined),\n passive: (props.modelValue === undefined) as false,\n deep: true,\n}) as Ref<T | T[]>\n\nconst open = useVModel(props, 'open', emits, {\n defaultValue: props.defaultOpen,\n passive: (props.open === undefined) as false,\n}) as Ref<boolean>\n\nasync function onOpenChange(val: boolean) {\n open.value = val\n filterState.search = ''\n\n if (val) {\n // make sure dom is ready then only highlight the selected\n await nextTick()\n primitiveElement.value?.highlightSelected()\n isUserInputted.value = true\n }\n else {\n isUserInputted.value = false\n }\n\n inputElement.value?.focus()\n setTimeout(() => {\n if (!val && props.resetSearchTermOnBlur)\n resetSearchTerm.trigger()\n }, 1)\n}\n\nconst resetSearchTerm = createEventHook()\nconst isUserInputted = ref(false)\nconst isVirtual = ref(false)\nconst inputElement = ref<HTMLInputElement>()\nconst triggerElement = ref<HTMLElement>()\n\nconst highlightedElement = computed(() => primitiveElement.value?.highlightedElement ?? undefined)\n\nconst allItems = ref<Map<string, string>>(new Map())\nconst allGroups = ref<Map<string, Set<string>>>(new Map())\n\nconst { contains } = useFilter({ sensitivity: 'base' })\nconst filterState = reactive({\n search: '',\n filtered: {\n /** The count of all visible items. */\n count: 0,\n /** Map from visible item id to its search score. */\n items: new Map() as Map<string, number>,\n /** Set of groups with at least one visible item. */\n groups: new Set() as Set<string>,\n },\n})\n\nfunction filterItems() {\n if (!filterState.search || props.ignoreFilter || isVirtual.value) {\n filterState.filtered.count = allItems.value.size\n // Do nothing, each item will know to show itself because search is empty\n return\n }\n\n // Reset the groups\n filterState.filtered.groups = new Set()\n let itemCount = 0\n\n // Check which items should be included\n for (const [id, value] of allItems.value) {\n const score = contains(value, filterState.search)\n filterState.filtered.items.set(id, score ? 1 : 0)\n if (score)\n itemCount++\n }\n\n // Check which groups have at least 1 item shown\n for (const [groupId, group] of allGroups.value) {\n for (const itemId of group) {\n if (filterState.filtered.items.get(itemId)! > 0) {\n filterState.filtered.groups.add(groupId)\n break\n }\n }\n }\n\n filterState.filtered.count = itemCount\n}\n\nwatch([() => filterState.search, () => allItems.value.size], () => {\n filterItems()\n}, { immediate: true })\n\nwatch(() => open.value, () => {\n // nextTick to allow multiple items to be mounted first\n nextTick(() => {\n if (open.value)\n filterItems()\n })\n}, { flush: 'post' })\n\nconst inst = getCurrentInstance()\nonMounted(() => {\n if (inst?.exposed) {\n inst.exposed.highlightItem = primitiveElement.value?.highlightItem\n inst.exposed.highlightFirstItem = primitiveElement.value?.highlightFirstItem\n inst.exposed.highlightSelected = primitiveElement.value?.highlightSelected\n }\n})\n\ndefineExpose({\n filtered: computed(() => filterState.filtered),\n highlightedElement,\n highlightItem: primitiveElement.value?.highlightItem,\n highlightFirstItem: primitiveElement.value?.highlightFirstItem,\n highlightSelected: primitiveElement.value?.highlightSelected,\n})\n\nprovideComboboxRootContext({\n modelValue,\n multiple,\n disabled,\n open,\n onOpenChange,\n contentId: '',\n isUserInputted,\n isVirtual,\n inputElement,\n highlightedElement,\n onInputElementChange: val => inputElement.value = val,\n triggerElement,\n onTriggerElementChange: val => triggerElement.value = val,\n parentElement,\n resetSearchTermOnSelect,\n onResetSearchTerm: resetSearchTerm.on,\n allItems,\n allGroups,\n filterState,\n ignoreFilter,\n})\n</script>\n\n<template>\n <PopperRoot>\n <ListboxRoot\n ref=\"primitiveElement\"\n v-bind=\"$attrs\"\n v-model=\"modelValue\"\n :style=\"{\n pointerEvents: open ? 'auto' : undefined,\n }\"\n :as=\"as\"\n :as-child=\"asChild\"\n :dir=\"dir\"\n :multiple=\"multiple\"\n :name=\"name\"\n :required=\"required\"\n :disabled=\"disabled\"\n :highlight-on-hover=\"true\"\n :by=\"props.by as any\"\n @highlight=\"emits('highlight', $event as any)\"\n >\n <slot\n :open=\"open\"\n :model-value=\"modelValue\"\n />\n </ListboxRoot>\n </PopperRoot>\n</template>\n"],"names":["createContext","usePrimitiveElement","toRefs","useDirection","useVModel","nextTick","createEventHook","ref","computed","useFilter","reactive","watch","getCurrentInstance","onMounted"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ComboboxRoot.js","sources":["../../src/Combobox/ComboboxRoot.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { Ref } from 'vue'\nimport type { ListboxRootProps } from '@/Listbox'\nimport { createContext, useDirection, useFilter } from '@/shared'\nimport { usePrimitiveElement } from '@/Primitive'\nimport type { AcceptableValue, GenericComponentInstance } from '@/shared/types'\n\ntype ComboboxRootContext<T> = {\n modelValue: Ref<T | Array<T>>\n multiple: Ref<boolean>\n disabled: Ref<boolean>\n open: Ref<boolean>\n onOpenChange: (value: boolean) => void\n isUserInputted: Ref<boolean>\n isVirtual: Ref<boolean>\n contentId: string\n inputElement: Ref<HTMLInputElement | undefined>\n onInputElementChange: (el: HTMLInputElement) => void\n triggerElement: Ref<HTMLElement | undefined>\n onTriggerElementChange: (el: HTMLElement) => void\n highlightedElement: Ref<HTMLElement | undefined>\n parentElement: Ref<HTMLElement | undefined>\n resetSearchTermOnSelect: Ref<boolean>\n onResetSearchTerm: EventHookOn\n allItems: Ref<Map<string, string>>\n allGroups: Ref<Map<string, Set<string>>>\n filterState: {\n search: string\n filtered: { count: number, items: Map<string, number>, groups: Set<string> }\n }\n ignoreFilter: Ref<boolean>\n}\n\nexport const [injectComboboxRootContext, provideComboboxRootContext]\n = createContext<ComboboxRootContext<AcceptableValue>>('ComboboxRoot')\n\nexport type ComboboxRootEmits<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 the open state of the combobox changes. */\n 'update:open': [value: boolean]\n}\n\nexport interface ComboboxRootProps<T = AcceptableValue> extends Omit<ListboxRootProps<T>, 'orientation' | 'selectionBehavior' > {\n /** The controlled open state of the Combobox. Can be binded with with `v-model:open`. */\n open?: boolean\n /** The open state of the combobox when it is initially rendered. <br> Use when you do not need to control its open state. */\n defaultOpen?: boolean\n /**\n * Whether to reset the searchTerm when the Combobox input blurred\n * @defaultValue `true`\n */\n resetSearchTermOnBlur?: boolean\n /**\n * Whether to reset the searchTerm when the Combobox value is selected\n * @defaultValue `true`\n */\n resetSearchTermOnSelect?: boolean\n /**\n * When `true`, disable the default filters\n */\n ignoreFilter?: boolean\n}\n</script>\n\n<script setup lang=\"ts\" generic=\"T extends AcceptableValue = AcceptableValue\">\nimport { computed, getCurrentInstance, nextTick, onMounted, reactive, ref, toRefs, watch } from 'vue'\nimport { PopperRoot } from '@/Popper'\nimport { type EventHookOn, createEventHook, useVModel } from '@vueuse/core'\nimport { ListboxRoot } from '@/Listbox'\n\nconst props = withDefaults(defineProps<ComboboxRootProps<T>>(), {\n open: undefined,\n resetSearchTermOnBlur: true,\n resetSearchTermOnSelect: true,\n})\nconst emits = defineEmits<ComboboxRootEmits<T>>()\n\ndefineSlots<{\n default: (props: {\n /** Current open state */\n open: typeof open.value\n /** Current active value */\n modelValue: typeof modelValue.value\n }) => any\n}>()\n\nconst { primitiveElement, currentElement: parentElement } = usePrimitiveElement<GenericComponentInstance<typeof ListboxRoot>>()\nconst { multiple, disabled, ignoreFilter, resetSearchTermOnSelect, dir: propDir } = toRefs(props)\n\nconst dir = useDirection(propDir)\n\nconst modelValue = useVModel(props, 'modelValue', emits, {\n // @ts-expect-error ignore the type error here\n defaultValue: props.defaultValue ?? (multiple.value ? [] : undefined),\n passive: (props.modelValue === undefined) as false,\n deep: true,\n}) as Ref<T | T[]>\n\nconst open = useVModel(props, 'open', emits, {\n defaultValue: props.defaultOpen,\n passive: (props.open === undefined) as false,\n}) as Ref<boolean>\n\nasync function onOpenChange(val: boolean) {\n open.value = val\n filterState.search = ''\n\n if (val) {\n // make sure dom is ready then only highlight the selected\n await nextTick()\n primitiveElement.value?.highlightSelected()\n isUserInputted.value = true\n }\n else {\n isUserInputted.value = false\n }\n\n inputElement.value?.focus()\n setTimeout(() => {\n if (!val && props.resetSearchTermOnBlur)\n resetSearchTerm.trigger()\n }, 1)\n}\n\nconst resetSearchTerm = createEventHook()\nconst isUserInputted = ref(false)\nconst isVirtual = ref(false)\nconst inputElement = ref<HTMLInputElement>()\nconst triggerElement = ref<HTMLElement>()\n\nconst highlightedElement = computed(() => primitiveElement.value?.highlightedElement ?? undefined)\n\nconst allItems = ref<Map<string, string>>(new Map())\nconst allGroups = ref<Map<string, Set<string>>>(new Map())\n\nconst { contains } = useFilter({ sensitivity: 'base' })\nconst filterState = reactive({\n search: '',\n filtered: {\n /** The count of all visible items. */\n count: 0,\n /** Map from visible item id to its search score. */\n items: new Map() as Map<string, number>,\n /** Set of groups with at least one visible item. */\n groups: new Set() as Set<string>,\n },\n})\n\nfunction filterItems() {\n if (!filterState.search || props.ignoreFilter || isVirtual.value) {\n filterState.filtered.count = allItems.value.size\n // Do nothing, each item will know to show itself because search is empty\n return\n }\n\n // Reset the groups\n filterState.filtered.groups = new Set()\n let itemCount = 0\n\n // Check which items should be included\n for (const [id, value] of allItems.value) {\n const score = contains(value, filterState.search)\n filterState.filtered.items.set(id, score ? 1 : 0)\n if (score)\n itemCount++\n }\n\n // Check which groups have at least 1 item shown\n for (const [groupId, group] of allGroups.value) {\n for (const itemId of group) {\n if (filterState.filtered.items.get(itemId)! > 0) {\n filterState.filtered.groups.add(groupId)\n break\n }\n }\n }\n\n filterState.filtered.count = itemCount\n}\n\nwatch([() => filterState.search, () => allItems.value.size], () => {\n filterItems()\n}, { immediate: true })\n\nwatch(() => open.value, () => {\n // nextTick to allow multiple items to be mounted first\n nextTick(() => {\n if (open.value)\n filterItems()\n })\n}, { flush: 'post' })\n\nconst inst = getCurrentInstance()\nonMounted(() => {\n if (inst?.exposed) {\n inst.exposed.highlightItem = primitiveElement.value?.highlightItem\n inst.exposed.highlightFirstItem = primitiveElement.value?.highlightFirstItem\n inst.exposed.highlightSelected = primitiveElement.value?.highlightSelected\n }\n})\n\ndefineExpose({\n filtered: computed(() => filterState.filtered),\n highlightedElement,\n highlightItem: primitiveElement.value?.highlightItem,\n highlightFirstItem: primitiveElement.value?.highlightFirstItem,\n highlightSelected: primitiveElement.value?.highlightSelected,\n})\n\nprovideComboboxRootContext({\n modelValue,\n multiple,\n disabled,\n open,\n onOpenChange,\n contentId: '',\n isUserInputted,\n isVirtual,\n inputElement,\n highlightedElement,\n onInputElementChange: val => inputElement.value = val,\n triggerElement,\n onTriggerElementChange: val => triggerElement.value = val,\n parentElement,\n resetSearchTermOnSelect,\n onResetSearchTerm: resetSearchTerm.on,\n allItems,\n allGroups,\n filterState,\n ignoreFilter,\n})\n</script>\n\n<template>\n <PopperRoot>\n <ListboxRoot\n ref=\"primitiveElement\"\n v-bind=\"$attrs\"\n v-model=\"modelValue\"\n :style=\"{\n pointerEvents: open ? 'auto' : undefined,\n }\"\n :as=\"as\"\n :as-child=\"asChild\"\n :dir=\"dir\"\n :multiple=\"multiple\"\n :name=\"name\"\n :required=\"required\"\n :disabled=\"disabled\"\n :highlight-on-hover=\"true\"\n :by=\"props.by as any\"\n @highlight=\"emits('highlight', $event as any)\"\n >\n <slot\n :open=\"open\"\n :model-value=\"modelValue\"\n />\n </ListboxRoot>\n </PopperRoot>\n</template>\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ComboboxRoot.js","sources":["../../src/Combobox/ComboboxRoot.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { ListboxRootProps } from '@/Listbox'\nimport type { AcceptableValue, GenericComponentInstance } from '@/shared/types'\nimport type { Ref } from 'vue'\nimport { usePrimitiveElement } from '@/Primitive'\nimport { createContext, useDirection, useFilter } from '@/shared'\n\ntype ComboboxRootContext<T> = {\n modelValue: Ref<T | Array<T>>\n multiple: Ref<boolean>\n disabled: Ref<boolean>\n open: Ref<boolean>\n onOpenChange: (value: boolean) => void\n isUserInputted: Ref<boolean>\n isVirtual: Ref<boolean>\n contentId: string\n inputElement: Ref<HTMLInputElement | undefined>\n onInputElementChange: (el: HTMLInputElement) => void\n triggerElement: Ref<HTMLElement | undefined>\n onTriggerElementChange: (el: HTMLElement) => void\n highlightedElement: Ref<HTMLElement | undefined>\n parentElement: Ref<HTMLElement | undefined>\n resetSearchTermOnSelect: Ref<boolean>\n onResetSearchTerm: EventHookOn\n allItems: Ref<Map<string, string>>\n allGroups: Ref<Map<string, Set<string>>>\n filterState: {\n search: string\n filtered: { count: number, items: Map<string, number>, groups: Set<string> }\n }\n ignoreFilter: Ref<boolean>\n}\n\nexport const [injectComboboxRootContext, provideComboboxRootContext]\n = createContext<ComboboxRootContext<AcceptableValue>>('ComboboxRoot')\n\nexport type ComboboxRootEmits<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 the open state of the combobox changes. */\n 'update:open': [value: boolean]\n}\n\nexport interface ComboboxRootProps<T = AcceptableValue> extends Omit<ListboxRootProps<T>, 'orientation' | 'selectionBehavior'> {\n /** The controlled open state of the Combobox. Can be binded with with `v-model:open`. */\n open?: boolean\n /** The open state of the combobox when it is initially rendered. <br> Use when you do not need to control its open state. */\n defaultOpen?: boolean\n /**\n * Whether to reset the searchTerm when the Combobox input blurred\n * @defaultValue `true`\n */\n resetSearchTermOnBlur?: boolean\n /**\n * Whether to reset the searchTerm when the Combobox value is selected\n * @defaultValue `true`\n */\n resetSearchTermOnSelect?: boolean\n /**\n * When `true`, disable the default filters\n */\n ignoreFilter?: boolean\n}\n</script>\n\n<script setup lang=\"ts\" generic=\"T extends AcceptableValue = AcceptableValue\">\nimport type { EventHookOn } from '@vueuse/core'\nimport { ListboxRoot } from '@/Listbox'\nimport { PopperRoot } from '@/Popper'\nimport { createEventHook, useVModel } from '@vueuse/core'\nimport { computed, getCurrentInstance, nextTick, onMounted, reactive, ref, toRefs, watch } from 'vue'\n\nconst props = withDefaults(defineProps<ComboboxRootProps<T>>(), {\n open: undefined,\n resetSearchTermOnBlur: true,\n resetSearchTermOnSelect: true,\n})\nconst emits = defineEmits<ComboboxRootEmits<T>>()\n\ndefineSlots<{\n default: (props: {\n /** Current open state */\n open: typeof open.value\n /** Current active value */\n modelValue: typeof modelValue.value\n }) => any\n}>()\n\nconst { primitiveElement, currentElement: parentElement } = usePrimitiveElement<GenericComponentInstance<typeof ListboxRoot>>()\nconst { multiple, disabled, ignoreFilter, resetSearchTermOnSelect, dir: propDir } = toRefs(props)\n\nconst dir = useDirection(propDir)\n\nconst modelValue = useVModel(props, 'modelValue', emits, {\n // @ts-expect-error ignore the type error here\n defaultValue: props.defaultValue ?? (multiple.value ? [] : undefined),\n passive: (props.modelValue === undefined) as false,\n deep: true,\n}) as Ref<T | T[]>\n\nconst open = useVModel(props, 'open', emits, {\n defaultValue: props.defaultOpen,\n passive: (props.open === undefined) as false,\n}) as Ref<boolean>\n\nasync function onOpenChange(val: boolean) {\n open.value = val\n filterState.search = ''\n\n if (val) {\n // make sure dom is ready then only highlight the selected\n await nextTick()\n primitiveElement.value?.highlightSelected()\n isUserInputted.value = true\n }\n else {\n isUserInputted.value = false\n }\n\n inputElement.value?.focus()\n setTimeout(() => {\n if (!val && props.resetSearchTermOnBlur)\n resetSearchTerm.trigger()\n }, 1)\n}\n\nconst resetSearchTerm = createEventHook()\nconst isUserInputted = ref(false)\nconst isVirtual = ref(false)\nconst inputElement = ref<HTMLInputElement>()\nconst triggerElement = ref<HTMLElement>()\n\nconst highlightedElement = computed(() => primitiveElement.value?.highlightedElement ?? undefined)\n\nconst allItems = ref<Map<string, string>>(new Map())\nconst allGroups = ref<Map<string, Set<string>>>(new Map())\n\nconst { contains } = useFilter({ sensitivity: 'base' })\nconst filterState = reactive({\n search: '',\n filtered: {\n /** The count of all visible items. */\n count: 0,\n /** Map from visible item id to its search score. */\n items: new Map() as Map<string, number>,\n /** Set of groups with at least one visible item. */\n groups: new Set() as Set<string>,\n },\n})\n\nfunction filterItems() {\n if (!filterState.search || props.ignoreFilter || isVirtual.value) {\n filterState.filtered.count = allItems.value.size\n // Do nothing, each item will know to show itself because search is empty\n return\n }\n\n // Reset the groups\n filterState.filtered.groups = new Set()\n let itemCount = 0\n\n // Check which items should be included\n for (const [id, value] of allItems.value) {\n const score = contains(value, filterState.search)\n filterState.filtered.items.set(id, score ? 1 : 0)\n if (score)\n itemCount++\n }\n\n // Check which groups have at least 1 item shown\n for (const [groupId, group] of allGroups.value) {\n for (const itemId of group) {\n if (filterState.filtered.items.get(itemId)! > 0) {\n filterState.filtered.groups.add(groupId)\n break\n }\n }\n }\n\n filterState.filtered.count = itemCount\n}\n\nwatch([() => filterState.search, () => allItems.value.size], () => {\n filterItems()\n}, { immediate: true })\n\nwatch(() => open.value, () => {\n // nextTick to allow multiple items to be mounted first\n nextTick(() => {\n if (open.value)\n filterItems()\n })\n}, { flush: 'post' })\n\nconst inst = getCurrentInstance()\nonMounted(() => {\n if (inst?.exposed) {\n inst.exposed.highlightItem = primitiveElement.value?.highlightItem\n inst.exposed.highlightFirstItem = primitiveElement.value?.highlightFirstItem\n inst.exposed.highlightSelected = primitiveElement.value?.highlightSelected\n }\n})\n\ndefineExpose({\n filtered: computed(() => filterState.filtered),\n highlightedElement,\n highlightItem: primitiveElement.value?.highlightItem,\n highlightFirstItem: primitiveElement.value?.highlightFirstItem,\n highlightSelected: primitiveElement.value?.highlightSelected,\n})\n\nprovideComboboxRootContext({\n modelValue,\n multiple,\n disabled,\n open,\n onOpenChange,\n contentId: '',\n isUserInputted,\n isVirtual,\n inputElement,\n highlightedElement,\n onInputElementChange: val => inputElement.value = val,\n triggerElement,\n onTriggerElementChange: val => triggerElement.value = val,\n parentElement,\n resetSearchTermOnSelect,\n onResetSearchTerm: resetSearchTerm.on,\n allItems,\n allGroups,\n filterState,\n ignoreFilter,\n})\n</script>\n\n<template>\n <PopperRoot>\n <ListboxRoot\n ref=\"primitiveElement\"\n v-bind=\"$attrs\"\n v-model=\"modelValue\"\n :style=\"{\n pointerEvents: open ? 'auto' : undefined,\n }\"\n :as=\"as\"\n :as-child=\"asChild\"\n :dir=\"dir\"\n :multiple=\"multiple\"\n :name=\"name\"\n :required=\"required\"\n :disabled=\"disabled\"\n :highlight-on-hover=\"true\"\n :by=\"props.by as any\"\n @highlight=\"emits('highlight', $event as any)\"\n >\n <slot\n :open=\"open\"\n :model-value=\"modelValue\"\n />\n </ListboxRoot>\n </PopperRoot>\n</template>\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ComboboxVirtualizer.cjs","sources":["../../src/Combobox/ComboboxVirtualizer.vue"],"sourcesContent":["<script lang=\"ts\">\nexport interface ComboboxVirtualizerProps<T extends AcceptableValue = AcceptableValue> extends ListboxVirtualizerProps<T> {}\n</script>\n\n<script setup lang=\"ts\" generic=\"T extends AcceptableValue = AcceptableValue\">\nimport ListboxVirtualizer, { type ListboxVirtualizerProps } from '@/Listbox/ListboxVirtualizer.vue'\nimport type { AcceptableValue } from '@/shared/types'\nimport { injectComboboxRootContext } from './ComboboxRoot.vue'\nimport type { VirtualItem, Virtualizer } from '@tanstack/vue-virtual'\n\nconst props = defineProps<ComboboxVirtualizerProps<T>>()\n\ndefineSlots<{\n default: (props: {\n option: T\n virtualizer: Virtualizer<HTMLElement, Element>\n virtualItem: VirtualItem\n }) => any\n}>()\n\nconst rootContext = injectComboboxRootContext()\n// set virtual true when this component mounted\nrootContext.isVirtual.value = true\n</script>\n\n<template>\n <ListboxVirtualizer\n v-slot=\"slotProps\"\n v-bind=\"props\"\n >\n <slot v-bind=\"slotProps\" />\n </ListboxVirtualizer>\n</template>\n"],"names":["injectComboboxRootContext"],"mappings":";;;;;;;;;;;;;;;AAUA,IAAA,MAAM,KAAQ,GAAA,OAAA;AAUd,IAAA,MAAM,cAAcA,+CAA0B,EAAA;AAE9C,IAAA,WAAA,CAAY,UAAU,KAAQ,GAAA,IAAA;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"ComboboxVirtualizer.cjs","sources":["../../src/Combobox/ComboboxVirtualizer.vue"],"sourcesContent":["<script lang=\"ts\">\nexport interface ComboboxVirtualizerProps<T extends AcceptableValue = AcceptableValue> extends ListboxVirtualizerProps<T> {}\n</script>\n\n<script setup lang=\"ts\" generic=\"T extends AcceptableValue = AcceptableValue\">\nimport type { ListboxVirtualizerProps } from '@/Listbox/ListboxVirtualizer.vue'\nimport type { AcceptableValue } from '@/shared/types'\nimport type { VirtualItem, Virtualizer } from '@tanstack/vue-virtual'\nimport ListboxVirtualizer from '@/Listbox/ListboxVirtualizer.vue'\nimport { injectComboboxRootContext } from './ComboboxRoot.vue'\n\nconst props = defineProps<ComboboxVirtualizerProps<T>>()\n\ndefineSlots<{\n default: (props: {\n option: T\n virtualizer: Virtualizer<HTMLElement, Element>\n virtualItem: VirtualItem\n }) => any\n}>()\n\nconst rootContext = injectComboboxRootContext()\n// set virtual true when this component mounted\nrootContext.isVirtual.value = true\n</script>\n\n<template>\n <ListboxVirtualizer\n v-slot=\"slotProps\"\n v-bind=\"props\"\n >\n <slot v-bind=\"slotProps\" />\n </ListboxVirtualizer>\n</template>\n"],"names":["injectComboboxRootContext"],"mappings":";;;;;;;;;;;;;;;AAWA,IAAA,MAAM,KAAQ,GAAA,OAAA;AAUd,IAAA,MAAM,cAAcA,+CAA0B,EAAA;AAE9C,IAAA,WAAA,CAAY,UAAU,KAAQ,GAAA,IAAA;;;;;;;;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"ComboboxVirtualizer.js","sources":["../../src/Combobox/ComboboxVirtualizer.vue"],"sourcesContent":["<script lang=\"ts\">\nexport interface ComboboxVirtualizerProps<T extends AcceptableValue = AcceptableValue> extends ListboxVirtualizerProps<T> {}\n</script>\n\n<script setup lang=\"ts\" generic=\"T extends AcceptableValue = AcceptableValue\">\nimport ListboxVirtualizer, { type ListboxVirtualizerProps } from '@/Listbox/ListboxVirtualizer.vue'\nimport type { AcceptableValue } from '@/shared/types'\nimport { injectComboboxRootContext } from './ComboboxRoot.vue'\nimport type { VirtualItem, Virtualizer } from '@tanstack/vue-virtual'\n\nconst props = defineProps<ComboboxVirtualizerProps<T>>()\n\ndefineSlots<{\n default: (props: {\n option: T\n virtualizer: Virtualizer<HTMLElement, Element>\n virtualItem: VirtualItem\n }) => any\n}>()\n\nconst rootContext = injectComboboxRootContext()\n// set virtual true when this component mounted\nrootContext.isVirtual.value = true\n</script>\n\n<template>\n <ListboxVirtualizer\n v-slot=\"slotProps\"\n v-bind=\"props\"\n >\n <slot v-bind=\"slotProps\" />\n </ListboxVirtualizer>\n</template>\n"],"names":[],"mappings":";;;;;;;;;;;;;AAUA,IAAA,MAAM,KAAQ,GAAA,OAAA;AAUd,IAAA,MAAM,cAAc,yBAA0B,EAAA;AAE9C,IAAA,WAAA,CAAY,UAAU,KAAQ,GAAA,IAAA;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"ComboboxVirtualizer.js","sources":["../../src/Combobox/ComboboxVirtualizer.vue"],"sourcesContent":["<script lang=\"ts\">\nexport interface ComboboxVirtualizerProps<T extends AcceptableValue = AcceptableValue> extends ListboxVirtualizerProps<T> {}\n</script>\n\n<script setup lang=\"ts\" generic=\"T extends AcceptableValue = AcceptableValue\">\nimport type { ListboxVirtualizerProps } from '@/Listbox/ListboxVirtualizer.vue'\nimport type { AcceptableValue } from '@/shared/types'\nimport type { VirtualItem, Virtualizer } from '@tanstack/vue-virtual'\nimport ListboxVirtualizer from '@/Listbox/ListboxVirtualizer.vue'\nimport { injectComboboxRootContext } from './ComboboxRoot.vue'\n\nconst props = defineProps<ComboboxVirtualizerProps<T>>()\n\ndefineSlots<{\n default: (props: {\n option: T\n virtualizer: Virtualizer<HTMLElement, Element>\n virtualItem: VirtualItem\n }) => any\n}>()\n\nconst rootContext = injectComboboxRootContext()\n// set virtual true when this component mounted\nrootContext.isVirtual.value = true\n</script>\n\n<template>\n <ListboxVirtualizer\n v-slot=\"slotProps\"\n v-bind=\"props\"\n >\n <slot v-bind=\"slotProps\" />\n </ListboxVirtualizer>\n</template>\n"],"names":[],"mappings":";;;;;;;;;;;;;AAWA,IAAA,MAAM,KAAQ,GAAA,OAAA;AAUd,IAAA,MAAM,cAAc,yBAA0B,EAAA;AAE9C,IAAA,WAAA,CAAY,UAAU,KAAQ,GAAA,IAAA;;;;;;;;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"ContextMenuContent.cjs","sources":["../../src/ContextMenu/ContextMenuContent.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type {\n MenuContentEmits,\n MenuContentProps,\n} from '@/Menu'\nimport { useForwardExpose, useForwardPropsEmits } from '@/shared'\n\nexport type ContextMenuContentEmits = MenuContentEmits\n\nexport interface ContextMenuContentProps\n extends Omit<\n MenuContentProps,\n | 'side'\n | 'sideOffset'\n | 'align'\n | 'arrowPadding'\n | 'updatePositionStrategy'\n > {}\n</script>\n\n<script setup lang=\"ts\">\nimport { ref } from 'vue'\nimport { injectContextMenuRootContext } from './ContextMenuRoot.vue'\nimport { MenuContent } from '@/Menu'\n\nconst props = withDefaults(defineProps<ContextMenuContentProps>(), {\n alignOffset: 0,\n avoidCollisions: true,\n collisionBoundary: () => [],\n collisionPadding: 0,\n sticky: 'partial',\n hideWhenDetached: false,\n})\nconst emits = defineEmits<ContextMenuContentEmits>()\nconst forwarded = useForwardPropsEmits(props, emits)\n\nuseForwardExpose()\nconst rootContext = injectContextMenuRootContext()\nconst hasInteractedOutside = ref(false)\n</script>\n\n<template>\n <MenuContent\n v-bind=\"forwarded\"\n side=\"right\"\n :side-offset=\"2\"\n align=\"start\"\n update-position-strategy=\"always\"\n :style=\"{\n '--reka-context-menu-content-transform-origin':\n 'var(--reka-popper-transform-origin)',\n '--reka-context-menu-content-available-width':\n 'var(--reka-popper-available-width)',\n '--reka-context-menu-content-available-height':\n 'var(--reka-popper-available-height)',\n '--reka-context-menu-trigger-width': 'var(--reka-popper-anchor-width)',\n '--reka-context-menu-trigger-height':\n 'var(--reka-popper-anchor-height)',\n }\"\n @close-auto-focus=\"\n (event) => {\n if (!event.defaultPrevented && hasInteractedOutside) {\n event.preventDefault();\n }\n hasInteractedOutside = false;\n }\n \"\n @interact-outside=\"\n (event) => {\n const originalEvent = event.detail.originalEvent as PointerEvent\n // Prevent closing when right click (button=2) with the trigger element\n if (originalEvent.button === 2 && event.target === rootContext.triggerElement.value) {\n event.preventDefault()\n }\n if (!event.defaultPrevented && !rootContext.modal.value)\n hasInteractedOutside = true;\n }\n \"\n >\n <slot />\n </MenuContent>\n</template>\n"],"names":["useForwardPropsEmits","useForwardExpose","injectContextMenuRootContext","ref"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyBA,IAAA,MAAM,KAAQ,GAAA,OAAA;AAQd,IAAA,MAAM,KAAQ,GAAA,MAAA;AACd,IAAM,MAAA,SAAA,GAAYA,gDAAqB,CAAA,KAAA,EAAO,KAAK,CAAA;AAEnD,IAAiBC,wCAAA,EAAA;AACjB,IAAA,MAAM,cAAcC,wDAA6B,EAAA;AACjD,IAAM,MAAA,oBAAA,GAAuBC,QAAI,KAAK,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"ContextMenuContent.cjs","sources":["../../src/ContextMenu/ContextMenuContent.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type {\n MenuContentEmits,\n MenuContentProps,\n} from '@/Menu'\nimport { useForwardExpose, useForwardPropsEmits } from '@/shared'\n\nexport type ContextMenuContentEmits = MenuContentEmits\n\nexport interface ContextMenuContentProps\n extends Omit<\n MenuContentProps,\n | 'side'\n | 'sideOffset'\n | 'align'\n | 'arrowPadding'\n | 'updatePositionStrategy'\n > {}\n</script>\n\n<script setup lang=\"ts\">\nimport { MenuContent } from '@/Menu'\nimport { ref } from 'vue'\nimport { injectContextMenuRootContext } from './ContextMenuRoot.vue'\n\nconst props = withDefaults(defineProps<ContextMenuContentProps>(), {\n alignOffset: 0,\n avoidCollisions: true,\n collisionBoundary: () => [],\n collisionPadding: 0,\n sticky: 'partial',\n hideWhenDetached: false,\n})\nconst emits = defineEmits<ContextMenuContentEmits>()\nconst forwarded = useForwardPropsEmits(props, emits)\n\nuseForwardExpose()\nconst rootContext = injectContextMenuRootContext()\nconst hasInteractedOutside = ref(false)\n</script>\n\n<template>\n <MenuContent\n v-bind=\"forwarded\"\n side=\"right\"\n :side-offset=\"2\"\n align=\"start\"\n update-position-strategy=\"always\"\n :style=\"{\n '--reka-context-menu-content-transform-origin':\n 'var(--reka-popper-transform-origin)',\n '--reka-context-menu-content-available-width':\n 'var(--reka-popper-available-width)',\n '--reka-context-menu-content-available-height':\n 'var(--reka-popper-available-height)',\n '--reka-context-menu-trigger-width': 'var(--reka-popper-anchor-width)',\n '--reka-context-menu-trigger-height':\n 'var(--reka-popper-anchor-height)',\n }\"\n @close-auto-focus=\"\n (event) => {\n if (!event.defaultPrevented && hasInteractedOutside) {\n event.preventDefault();\n }\n hasInteractedOutside = false;\n }\n \"\n @interact-outside=\"\n (event) => {\n const originalEvent = event.detail.originalEvent as PointerEvent\n // Prevent closing when right click (button=2) with the trigger element\n if (originalEvent.button === 2 && event.target === rootContext.triggerElement.value) {\n event.preventDefault()\n }\n if (!event.defaultPrevented && !rootContext.modal.value)\n hasInteractedOutside = true;\n }\n \"\n >\n <slot />\n </MenuContent>\n</template>\n"],"names":["useForwardPropsEmits","useForwardExpose","injectContextMenuRootContext","ref"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyBA,IAAA,MAAM,KAAQ,GAAA,OAAA;AAQd,IAAA,MAAM,KAAQ,GAAA,MAAA;AACd,IAAM,MAAA,SAAA,GAAYA,gDAAqB,CAAA,KAAA,EAAO,KAAK,CAAA;AAEnD,IAAiBC,wCAAA,EAAA;AACjB,IAAA,MAAM,cAAcC,wDAA6B,EAAA;AACjD,IAAM,MAAA,oBAAA,GAAuBC,QAAI,KAAK,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"ContextMenuContent.js","sources":["../../src/ContextMenu/ContextMenuContent.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type {\n MenuContentEmits,\n MenuContentProps,\n} from '@/Menu'\nimport { useForwardExpose, useForwardPropsEmits } from '@/shared'\n\nexport type ContextMenuContentEmits = MenuContentEmits\n\nexport interface ContextMenuContentProps\n extends Omit<\n MenuContentProps,\n | 'side'\n | 'sideOffset'\n | 'align'\n | 'arrowPadding'\n | 'updatePositionStrategy'\n > {}\n</script>\n\n<script setup lang=\"ts\">\nimport { ref } from 'vue'\nimport { injectContextMenuRootContext } from './ContextMenuRoot.vue'\nimport { MenuContent } from '@/Menu'\n\nconst props = withDefaults(defineProps<ContextMenuContentProps>(), {\n alignOffset: 0,\n avoidCollisions: true,\n collisionBoundary: () => [],\n collisionPadding: 0,\n sticky: 'partial',\n hideWhenDetached: false,\n})\nconst emits = defineEmits<ContextMenuContentEmits>()\nconst forwarded = useForwardPropsEmits(props, emits)\n\nuseForwardExpose()\nconst rootContext = injectContextMenuRootContext()\nconst hasInteractedOutside = ref(false)\n</script>\n\n<template>\n <MenuContent\n v-bind=\"forwarded\"\n side=\"right\"\n :side-offset=\"2\"\n align=\"start\"\n update-position-strategy=\"always\"\n :style=\"{\n '--reka-context-menu-content-transform-origin':\n 'var(--reka-popper-transform-origin)',\n '--reka-context-menu-content-available-width':\n 'var(--reka-popper-available-width)',\n '--reka-context-menu-content-available-height':\n 'var(--reka-popper-available-height)',\n '--reka-context-menu-trigger-width': 'var(--reka-popper-anchor-width)',\n '--reka-context-menu-trigger-height':\n 'var(--reka-popper-anchor-height)',\n }\"\n @close-auto-focus=\"\n (event) => {\n if (!event.defaultPrevented && hasInteractedOutside) {\n event.preventDefault();\n }\n hasInteractedOutside = false;\n }\n \"\n @interact-outside=\"\n (event) => {\n const originalEvent = event.detail.originalEvent as PointerEvent\n // Prevent closing when right click (button=2) with the trigger element\n if (originalEvent.button === 2 && event.target === rootContext.triggerElement.value) {\n event.preventDefault()\n }\n if (!event.defaultPrevented && !rootContext.modal.value)\n hasInteractedOutside = true;\n }\n \"\n >\n <slot />\n </MenuContent>\n</template>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAyBA,IAAA,MAAM,KAAQ,GAAA,OAAA;AAQd,IAAA,MAAM,KAAQ,GAAA,MAAA;AACd,IAAM,MAAA,SAAA,GAAY,oBAAqB,CAAA,KAAA,EAAO,KAAK,CAAA;AAEnD,IAAiB,gBAAA,EAAA;AACjB,IAAA,MAAM,cAAc,4BAA6B,EAAA;AACjD,IAAM,MAAA,oBAAA,GAAuB,IAAI,KAAK,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"ContextMenuContent.js","sources":["../../src/ContextMenu/ContextMenuContent.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type {\n MenuContentEmits,\n MenuContentProps,\n} from '@/Menu'\nimport { useForwardExpose, useForwardPropsEmits } from '@/shared'\n\nexport type ContextMenuContentEmits = MenuContentEmits\n\nexport interface ContextMenuContentProps\n extends Omit<\n MenuContentProps,\n | 'side'\n | 'sideOffset'\n | 'align'\n | 'arrowPadding'\n | 'updatePositionStrategy'\n > {}\n</script>\n\n<script setup lang=\"ts\">\nimport { MenuContent } from '@/Menu'\nimport { ref } from 'vue'\nimport { injectContextMenuRootContext } from './ContextMenuRoot.vue'\n\nconst props = withDefaults(defineProps<ContextMenuContentProps>(), {\n alignOffset: 0,\n avoidCollisions: true,\n collisionBoundary: () => [],\n collisionPadding: 0,\n sticky: 'partial',\n hideWhenDetached: false,\n})\nconst emits = defineEmits<ContextMenuContentEmits>()\nconst forwarded = useForwardPropsEmits(props, emits)\n\nuseForwardExpose()\nconst rootContext = injectContextMenuRootContext()\nconst hasInteractedOutside = ref(false)\n</script>\n\n<template>\n <MenuContent\n v-bind=\"forwarded\"\n side=\"right\"\n :side-offset=\"2\"\n align=\"start\"\n update-position-strategy=\"always\"\n :style=\"{\n '--reka-context-menu-content-transform-origin':\n 'var(--reka-popper-transform-origin)',\n '--reka-context-menu-content-available-width':\n 'var(--reka-popper-available-width)',\n '--reka-context-menu-content-available-height':\n 'var(--reka-popper-available-height)',\n '--reka-context-menu-trigger-width': 'var(--reka-popper-anchor-width)',\n '--reka-context-menu-trigger-height':\n 'var(--reka-popper-anchor-height)',\n }\"\n @close-auto-focus=\"\n (event) => {\n if (!event.defaultPrevented && hasInteractedOutside) {\n event.preventDefault();\n }\n hasInteractedOutside = false;\n }\n \"\n @interact-outside=\"\n (event) => {\n const originalEvent = event.detail.originalEvent as PointerEvent\n // Prevent closing when right click (button=2) with the trigger element\n if (originalEvent.button === 2 && event.target === rootContext.triggerElement.value) {\n event.preventDefault()\n }\n if (!event.defaultPrevented && !rootContext.modal.value)\n hasInteractedOutside = true;\n }\n \"\n >\n <slot />\n </MenuContent>\n</template>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAyBA,IAAA,MAAM,KAAQ,GAAA,OAAA;AAQd,IAAA,MAAM,KAAQ,GAAA,MAAA;AACd,IAAM,MAAA,SAAA,GAAY,oBAAqB,CAAA,KAAA,EAAO,KAAK,CAAA;AAEnD,IAAiB,gBAAA,EAAA;AACjB,IAAA,MAAM,cAAc,4BAA6B,EAAA;AACjD,IAAM,MAAA,oBAAA,GAAuB,IAAI,KAAK,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"ContextMenuPortal.cjs","sources":["../../src/ContextMenu/ContextMenuPortal.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { MenuPortal, type MenuPortalProps } from '@/Menu'\n\nexport interface ContextMenuPortalProps extends MenuPortalProps {}\nconst props = defineProps<ContextMenuPortalProps>()\n</script>\n\n<template>\n <MenuPortal v-bind=\"props\">\n <slot />\n </MenuPortal>\n</template>\n"],"names":[],"mappings":";;;;;;;;;;;;;;AAIA,IAAA,MAAM,KAAQ,GAAA,OAAA;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"ContextMenuPortal.cjs","sources":["../../src/ContextMenu/ContextMenuPortal.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { MenuPortalProps } from '@/Menu'\nimport { MenuPortal } from '@/Menu'\n\nexport interface ContextMenuPortalProps extends MenuPortalProps {}\nconst props = defineProps<ContextMenuPortalProps>()\n</script>\n\n<template>\n <MenuPortal v-bind=\"props\">\n <slot />\n </MenuPortal>\n</template>\n"],"names":[],"mappings":";;;;;;;;;;;;;;AAKA,IAAA,MAAM,KAAQ,GAAA,OAAA;;;;;;;;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"ContextMenuPortal.js","sources":["../../src/ContextMenu/ContextMenuPortal.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { MenuPortal, type MenuPortalProps } from '@/Menu'\n\nexport interface ContextMenuPortalProps extends MenuPortalProps {}\nconst props = defineProps<ContextMenuPortalProps>()\n</script>\n\n<template>\n <MenuPortal v-bind=\"props\">\n <slot />\n </MenuPortal>\n</template>\n"],"names":[],"mappings":";;;;;;;;;;;;AAIA,IAAA,MAAM,KAAQ,GAAA,OAAA;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"ContextMenuPortal.js","sources":["../../src/ContextMenu/ContextMenuPortal.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { MenuPortalProps } from '@/Menu'\nimport { MenuPortal } from '@/Menu'\n\nexport interface ContextMenuPortalProps extends MenuPortalProps {}\nconst props = defineProps<ContextMenuPortalProps>()\n</script>\n\n<template>\n <MenuPortal v-bind=\"props\">\n <slot />\n </MenuPortal>\n</template>\n"],"names":[],"mappings":";;;;;;;;;;;;AAKA,IAAA,MAAM,KAAQ,GAAA,OAAA;;;;;;;;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"ContextMenuRoot.cjs","sources":["../../src/ContextMenu/ContextMenuRoot.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { Ref } from 'vue'\nimport type { Direction } from '@/shared/types'\nimport { createContext, useDirection, useForwardExpose } from '@/shared'\nimport type { MenuEmits, MenuProps } from '@/Menu'\n\ntype ContextMenuRootContext = {\n open: Ref<boolean>\n onOpenChange: (open: boolean) => void\n modal: Ref<boolean>\n dir: Ref<Direction>\n triggerElement: Ref<HTMLElement | undefined>\n}\n\nexport interface ContextMenuRootProps extends Omit<MenuProps, 'open'> {}\nexport type ContextMenuRootEmits = MenuEmits\n\nexport const [injectContextMenuRootContext, provideContextMenuRootContext]\n = createContext<ContextMenuRootContext>('ContextMenuRoot')\n</script>\n\n<script setup lang=\"ts\">\nimport { ref, toRefs, watch } from 'vue'\nimport { MenuRoot } from '@/Menu'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst props = withDefaults(defineProps<ContextMenuRootProps>(), {\n modal: true,\n})\nconst emits = defineEmits<ContextMenuRootEmits>()\nconst { dir: propDir, modal } = toRefs(props)\nuseForwardExpose()\nconst dir = useDirection(propDir)\n\nconst open = ref(false)\nconst triggerElement = ref<HTMLElement>()\n\nprovideContextMenuRootContext({\n open,\n onOpenChange: (value: boolean) => {\n open.value = value\n },\n dir,\n modal,\n triggerElement,\n})\n\nwatch(open, (value) => {\n emits('update:open', value)\n})\n</script>\n\n<template>\n <MenuRoot\n v-model:open=\"open\"\n :dir=\"dir\"\n :modal=\"modal\"\n >\n <slot />\n </MenuRoot>\n</template>\n"],"names":["createContext","toRefs","useForwardExpose","useDirection","ref","watch"],"mappings":";;;;;;;;AAiBO,MAAM,CAAC,4BAAA,EAA8B,6BAA6B,CAAA,GACrEA,mCAAsC,iBAAiB;;;;;;;;;;;;AAW3D,IAAA,MAAM,KAAQ,GAAA,OAAA;AAGd,IAAA,MAAM,KAAQ,GAAA,MAAA;AACd,IAAA,MAAM,EAAE,GAAK,EAAA,OAAA,EAAS,KAAM,EAAA,GAAIC,WAAO,KAAK,CAAA;AAC5C,IAAiBC,wCAAA,EAAA;AACjB,IAAM,MAAA,GAAA,GAAMC,iCAAa,OAAO,CAAA;AAEhC,IAAM,MAAA,IAAA,GAAOC,QAAI,KAAK,CAAA;AACtB,IAAA,MAAM,iBAAiBA,OAAiB,EAAA;AAExC,IAA8B,6BAAA,CAAA;AAAA,MAC5B,IAAA;AAAA,MACA,YAAA,EAAc,CAAC,KAAmB,KAAA;AAChC,QAAA,IAAA,CAAK,KAAQ,GAAA,KAAA;AAAA,OACf;AAAA,MACA,GAAA;AAAA,MACA,KAAA;AAAA,MACA;AAAA,KACD,CAAA;AAED,IAAMC,SAAA,CAAA,IAAA,EAAM,CAAC,KAAU,KAAA;AACrB,MAAA,KAAA,CAAM,eAAe,KAAK,CAAA;AAAA,KAC3B,CAAA;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"ContextMenuRoot.cjs","sources":["../../src/ContextMenu/ContextMenuRoot.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { MenuEmits, MenuProps } from '@/Menu'\nimport type { Direction } from '@/shared/types'\nimport type { Ref } from 'vue'\nimport { createContext, useDirection, useForwardExpose } from '@/shared'\n\ntype ContextMenuRootContext = {\n open: Ref<boolean>\n onOpenChange: (open: boolean) => void\n modal: Ref<boolean>\n dir: Ref<Direction>\n triggerElement: Ref<HTMLElement | undefined>\n}\n\nexport interface ContextMenuRootProps extends Omit<MenuProps, 'open'> {}\nexport type ContextMenuRootEmits = MenuEmits\n\nexport const [injectContextMenuRootContext, provideContextMenuRootContext]\n = createContext<ContextMenuRootContext>('ContextMenuRoot')\n</script>\n\n<script setup lang=\"ts\">\nimport { MenuRoot } from '@/Menu'\nimport { ref, toRefs, watch } from 'vue'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst props = withDefaults(defineProps<ContextMenuRootProps>(), {\n modal: true,\n})\nconst emits = defineEmits<ContextMenuRootEmits>()\nconst { dir: propDir, modal } = toRefs(props)\nuseForwardExpose()\nconst dir = useDirection(propDir)\n\nconst open = ref(false)\nconst triggerElement = ref<HTMLElement>()\n\nprovideContextMenuRootContext({\n open,\n onOpenChange: (value: boolean) => {\n open.value = value\n },\n dir,\n modal,\n triggerElement,\n})\n\nwatch(open, (value) => {\n emits('update:open', value)\n})\n</script>\n\n<template>\n <MenuRoot\n v-model:open=\"open\"\n :dir=\"dir\"\n :modal=\"modal\"\n >\n <slot />\n </MenuRoot>\n</template>\n"],"names":["createContext","toRefs","useForwardExpose","useDirection","ref","watch"],"mappings":";;;;;;;;AAiBO,MAAM,CAAC,4BAAA,EAA8B,6BAA6B,CAAA,GACrEA,mCAAsC,iBAAiB;;;;;;;;;;;;AAW3D,IAAA,MAAM,KAAQ,GAAA,OAAA;AAGd,IAAA,MAAM,KAAQ,GAAA,MAAA;AACd,IAAA,MAAM,EAAE,GAAK,EAAA,OAAA,EAAS,KAAM,EAAA,GAAIC,WAAO,KAAK,CAAA;AAC5C,IAAiBC,wCAAA,EAAA;AACjB,IAAM,MAAA,GAAA,GAAMC,iCAAa,OAAO,CAAA;AAEhC,IAAM,MAAA,IAAA,GAAOC,QAAI,KAAK,CAAA;AACtB,IAAA,MAAM,iBAAiBA,OAAiB,EAAA;AAExC,IAA8B,6BAAA,CAAA;AAAA,MAC5B,IAAA;AAAA,MACA,YAAA,EAAc,CAAC,KAAmB,KAAA;AAChC,QAAA,IAAA,CAAK,KAAQ,GAAA,KAAA;AAAA,OACf;AAAA,MACA,GAAA;AAAA,MACA,KAAA;AAAA,MACA;AAAA,KACD,CAAA;AAED,IAAMC,SAAA,CAAA,IAAA,EAAM,CAAC,KAAU,KAAA;AACrB,MAAA,KAAA,CAAM,eAAe,KAAK,CAAA;AAAA,KAC3B,CAAA;;;;;;;;;;;;;;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"ContextMenuRoot.js","sources":["../../src/ContextMenu/ContextMenuRoot.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { Ref } from 'vue'\nimport type { Direction } from '@/shared/types'\nimport { createContext, useDirection, useForwardExpose } from '@/shared'\nimport type { MenuEmits, MenuProps } from '@/Menu'\n\ntype ContextMenuRootContext = {\n open: Ref<boolean>\n onOpenChange: (open: boolean) => void\n modal: Ref<boolean>\n dir: Ref<Direction>\n triggerElement: Ref<HTMLElement | undefined>\n}\n\nexport interface ContextMenuRootProps extends Omit<MenuProps, 'open'> {}\nexport type ContextMenuRootEmits = MenuEmits\n\nexport const [injectContextMenuRootContext, provideContextMenuRootContext]\n = createContext<ContextMenuRootContext>('ContextMenuRoot')\n</script>\n\n<script setup lang=\"ts\">\nimport { ref, toRefs, watch } from 'vue'\nimport { MenuRoot } from '@/Menu'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst props = withDefaults(defineProps<ContextMenuRootProps>(), {\n modal: true,\n})\nconst emits = defineEmits<ContextMenuRootEmits>()\nconst { dir: propDir, modal } = toRefs(props)\nuseForwardExpose()\nconst dir = useDirection(propDir)\n\nconst open = ref(false)\nconst triggerElement = ref<HTMLElement>()\n\nprovideContextMenuRootContext({\n open,\n onOpenChange: (value: boolean) => {\n open.value = value\n },\n dir,\n modal,\n triggerElement,\n})\n\nwatch(open, (value) => {\n emits('update:open', value)\n})\n</script>\n\n<template>\n <MenuRoot\n v-model:open=\"open\"\n :dir=\"dir\"\n :modal=\"modal\"\n >\n <slot />\n </MenuRoot>\n</template>\n"],"names":[],"mappings":";;;;;;AAiBO,MAAM,CAAC,4BAAA,EAA8B,6BAA6B,CAAA,GACrE,cAAsC,iBAAiB;;;;;;;;;;;;AAW3D,IAAA,MAAM,KAAQ,GAAA,OAAA;AAGd,IAAA,MAAM,KAAQ,GAAA,MAAA;AACd,IAAA,MAAM,EAAE,GAAK,EAAA,OAAA,EAAS,KAAM,EAAA,GAAI,OAAO,KAAK,CAAA;AAC5C,IAAiB,gBAAA,EAAA;AACjB,IAAM,MAAA,GAAA,GAAM,aAAa,OAAO,CAAA;AAEhC,IAAM,MAAA,IAAA,GAAO,IAAI,KAAK,CAAA;AACtB,IAAA,MAAM,iBAAiB,GAAiB,EAAA;AAExC,IAA8B,6BAAA,CAAA;AAAA,MAC5B,IAAA;AAAA,MACA,YAAA,EAAc,CAAC,KAAmB,KAAA;AAChC,QAAA,IAAA,CAAK,KAAQ,GAAA,KAAA;AAAA,OACf;AAAA,MACA,GAAA;AAAA,MACA,KAAA;AAAA,MACA;AAAA,KACD,CAAA;AAED,IAAM,KAAA,CAAA,IAAA,EAAM,CAAC,KAAU,KAAA;AACrB,MAAA,KAAA,CAAM,eAAe,KAAK,CAAA;AAAA,KAC3B,CAAA;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"ContextMenuRoot.js","sources":["../../src/ContextMenu/ContextMenuRoot.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { MenuEmits, MenuProps } from '@/Menu'\nimport type { Direction } from '@/shared/types'\nimport type { Ref } from 'vue'\nimport { createContext, useDirection, useForwardExpose } from '@/shared'\n\ntype ContextMenuRootContext = {\n open: Ref<boolean>\n onOpenChange: (open: boolean) => void\n modal: Ref<boolean>\n dir: Ref<Direction>\n triggerElement: Ref<HTMLElement | undefined>\n}\n\nexport interface ContextMenuRootProps extends Omit<MenuProps, 'open'> {}\nexport type ContextMenuRootEmits = MenuEmits\n\nexport const [injectContextMenuRootContext, provideContextMenuRootContext]\n = createContext<ContextMenuRootContext>('ContextMenuRoot')\n</script>\n\n<script setup lang=\"ts\">\nimport { MenuRoot } from '@/Menu'\nimport { ref, toRefs, watch } from 'vue'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst props = withDefaults(defineProps<ContextMenuRootProps>(), {\n modal: true,\n})\nconst emits = defineEmits<ContextMenuRootEmits>()\nconst { dir: propDir, modal } = toRefs(props)\nuseForwardExpose()\nconst dir = useDirection(propDir)\n\nconst open = ref(false)\nconst triggerElement = ref<HTMLElement>()\n\nprovideContextMenuRootContext({\n open,\n onOpenChange: (value: boolean) => {\n open.value = value\n },\n dir,\n modal,\n triggerElement,\n})\n\nwatch(open, (value) => {\n emits('update:open', value)\n})\n</script>\n\n<template>\n <MenuRoot\n v-model:open=\"open\"\n :dir=\"dir\"\n :modal=\"modal\"\n >\n <slot />\n </MenuRoot>\n</template>\n"],"names":[],"mappings":";;;;;;AAiBO,MAAM,CAAC,4BAAA,EAA8B,6BAA6B,CAAA,GACrE,cAAsC,iBAAiB;;;;;;;;;;;;AAW3D,IAAA,MAAM,KAAQ,GAAA,OAAA;AAGd,IAAA,MAAM,KAAQ,GAAA,MAAA;AACd,IAAA,MAAM,EAAE,GAAK,EAAA,OAAA,EAAS,KAAM,EAAA,GAAI,OAAO,KAAK,CAAA;AAC5C,IAAiB,gBAAA,EAAA;AACjB,IAAM,MAAA,GAAA,GAAM,aAAa,OAAO,CAAA;AAEhC,IAAM,MAAA,IAAA,GAAO,IAAI,KAAK,CAAA;AACtB,IAAA,MAAM,iBAAiB,GAAiB,EAAA;AAExC,IAA8B,6BAAA,CAAA;AAAA,MAC5B,IAAA;AAAA,MACA,YAAA,EAAc,CAAC,KAAmB,KAAA;AAChC,QAAA,IAAA,CAAK,KAAQ,GAAA,KAAA;AAAA,OACf;AAAA,MACA,GAAA;AAAA,MACA,KAAA;AAAA,MACA;AAAA,KACD,CAAA;AAED,IAAM,KAAA,CAAA,IAAA,EAAM,CAAC,KAAU,KAAA;AACrB,MAAA,KAAA,CAAM,eAAe,KAAK,CAAA;AAAA,KAC3B,CAAA;;;;;;;;;;;;;;;;;;;"}
@@ -1,8 +1,8 @@
1
1
  'use strict';
2
2
 
3
3
  const vue = require('vue');
4
- const core = require('@vueuse/core');
5
4
  const Menu_MenuSub = require('../Menu/MenuSub.cjs');
5
+ const core = require('@vueuse/core');
6
6
  const shared_useForwardExpose = require('../shared/useForwardExpose.cjs');
7
7
 
8
8
  const _sfc_main = /* @__PURE__ */ vue.defineComponent({
@@ -1 +1 @@
1
- {"version":3,"file":"ContextMenuSub.cjs","sources":["../../src/ContextMenu/ContextMenuSub.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { MenuSubEmits, MenuSubProps } from '@/Menu'\nimport type { Ref } from 'vue'\n\nexport type ContextMenuSubEmits = MenuSubEmits\nexport interface ContextMenuSubProps extends MenuSubProps {\n /** The open state of the submenu when it is initially rendered. Use when you do not need to control its open state. */\n defaultOpen?: boolean\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { useVModel } from '@vueuse/core'\nimport { MenuSub } from '@/Menu'\nimport { useForwardExpose } from '@/shared'\n\nconst props = withDefaults(defineProps<ContextMenuSubProps>(), {\n open: undefined,\n})\nconst emit = defineEmits<ContextMenuSubEmits>()\n\ndefineSlots<{\n default: (props: {\n /** Current open state */\n open: typeof open.value\n }) => any\n}>()\n\nuseForwardExpose()\n\nconst open = useVModel(props, 'open', emit, {\n defaultValue: props.defaultOpen,\n passive: (props.open === undefined) as false,\n}) as Ref<boolean>\n</script>\n\n<template>\n <MenuSub v-model:open=\"open\">\n <slot :open=\"open\" />\n </MenuSub>\n</template>\n"],"names":["useForwardExpose","useVModel"],"mappings":";;;;;;;;;;;;;;;AAgBA,IAAA,MAAM,KAAQ,GAAA,OAAA;AAGd,IAAA,MAAM,IAAO,GAAA,MAAA;AASb,IAAiBA,wCAAA,EAAA;AAEjB,IAAA,MAAM,IAAO,GAAAC,cAAA,CAAU,KAAO,EAAA,MAAA,EAAQ,IAAM,EAAA;AAAA,MAC1C,cAAc,KAAM,CAAA,WAAA;AAAA,MACpB,OAAA,EAAU,MAAM,IAAS,KAAA;AAAA,KAC1B,CAAA;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"ContextMenuSub.cjs","sources":["../../src/ContextMenu/ContextMenuSub.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { MenuSubEmits, MenuSubProps } from '@/Menu'\nimport type { Ref } from 'vue'\n\nexport type ContextMenuSubEmits = MenuSubEmits\nexport interface ContextMenuSubProps extends MenuSubProps {\n /** The open state of the submenu when it is initially rendered. Use when you do not need to control its open state. */\n defaultOpen?: boolean\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { MenuSub } from '@/Menu'\nimport { useForwardExpose } from '@/shared'\nimport { useVModel } from '@vueuse/core'\n\nconst props = withDefaults(defineProps<ContextMenuSubProps>(), {\n open: undefined,\n})\nconst emit = defineEmits<ContextMenuSubEmits>()\n\ndefineSlots<{\n default: (props: {\n /** Current open state */\n open: typeof open.value\n }) => any\n}>()\n\nuseForwardExpose()\n\nconst open = useVModel(props, 'open', emit, {\n defaultValue: props.defaultOpen,\n passive: (props.open === undefined) as false,\n}) as Ref<boolean>\n</script>\n\n<template>\n <MenuSub v-model:open=\"open\">\n <slot :open=\"open\" />\n </MenuSub>\n</template>\n"],"names":["useForwardExpose","useVModel"],"mappings":";;;;;;;;;;;;;;;AAgBA,IAAA,MAAM,KAAQ,GAAA,OAAA;AAGd,IAAA,MAAM,IAAO,GAAA,MAAA;AASb,IAAiBA,wCAAA,EAAA;AAEjB,IAAA,MAAM,IAAO,GAAAC,cAAA,CAAU,KAAO,EAAA,MAAA,EAAQ,IAAM,EAAA;AAAA,MAC1C,cAAc,KAAM,CAAA,WAAA;AAAA,MACpB,OAAA,EAAU,MAAM,IAAS,KAAA;AAAA,KAC1B,CAAA;;;;;;;;;;;;;;;;;"}
@@ -1,6 +1,6 @@
1
1
  import { defineComponent, createBlock, openBlock, unref, isRef, withCtx, renderSlot } from 'vue';
2
- import { useVModel } from '@vueuse/core';
3
2
  import { _ as _sfc_main$1 } from '../Menu/MenuSub.js';
3
+ import { useVModel } from '@vueuse/core';
4
4
  import { u as useForwardExpose } from '../shared/useForwardExpose.js';
5
5
 
6
6
  const _sfc_main = /* @__PURE__ */ defineComponent({
@@ -1 +1 @@
1
- {"version":3,"file":"ContextMenuSub.js","sources":["../../src/ContextMenu/ContextMenuSub.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { MenuSubEmits, MenuSubProps } from '@/Menu'\nimport type { Ref } from 'vue'\n\nexport type ContextMenuSubEmits = MenuSubEmits\nexport interface ContextMenuSubProps extends MenuSubProps {\n /** The open state of the submenu when it is initially rendered. Use when you do not need to control its open state. */\n defaultOpen?: boolean\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { useVModel } from '@vueuse/core'\nimport { MenuSub } from '@/Menu'\nimport { useForwardExpose } from '@/shared'\n\nconst props = withDefaults(defineProps<ContextMenuSubProps>(), {\n open: undefined,\n})\nconst emit = defineEmits<ContextMenuSubEmits>()\n\ndefineSlots<{\n default: (props: {\n /** Current open state */\n open: typeof open.value\n }) => any\n}>()\n\nuseForwardExpose()\n\nconst open = useVModel(props, 'open', emit, {\n defaultValue: props.defaultOpen,\n passive: (props.open === undefined) as false,\n}) as Ref<boolean>\n</script>\n\n<template>\n <MenuSub v-model:open=\"open\">\n <slot :open=\"open\" />\n </MenuSub>\n</template>\n"],"names":[],"mappings":";;;;;;;;;;;;;AAgBA,IAAA,MAAM,KAAQ,GAAA,OAAA;AAGd,IAAA,MAAM,IAAO,GAAA,MAAA;AASb,IAAiB,gBAAA,EAAA;AAEjB,IAAA,MAAM,IAAO,GAAA,SAAA,CAAU,KAAO,EAAA,MAAA,EAAQ,IAAM,EAAA;AAAA,MAC1C,cAAc,KAAM,CAAA,WAAA;AAAA,MACpB,OAAA,EAAU,MAAM,IAAS,KAAA;AAAA,KAC1B,CAAA;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"ContextMenuSub.js","sources":["../../src/ContextMenu/ContextMenuSub.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { MenuSubEmits, MenuSubProps } from '@/Menu'\nimport type { Ref } from 'vue'\n\nexport type ContextMenuSubEmits = MenuSubEmits\nexport interface ContextMenuSubProps extends MenuSubProps {\n /** The open state of the submenu when it is initially rendered. Use when you do not need to control its open state. */\n defaultOpen?: boolean\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { MenuSub } from '@/Menu'\nimport { useForwardExpose } from '@/shared'\nimport { useVModel } from '@vueuse/core'\n\nconst props = withDefaults(defineProps<ContextMenuSubProps>(), {\n open: undefined,\n})\nconst emit = defineEmits<ContextMenuSubEmits>()\n\ndefineSlots<{\n default: (props: {\n /** Current open state */\n open: typeof open.value\n }) => any\n}>()\n\nuseForwardExpose()\n\nconst open = useVModel(props, 'open', emit, {\n defaultValue: props.defaultOpen,\n passive: (props.open === undefined) as false,\n}) as Ref<boolean>\n</script>\n\n<template>\n <MenuSub v-model:open=\"open\">\n <slot :open=\"open\" />\n </MenuSub>\n</template>\n"],"names":[],"mappings":";;;;;;;;;;;;;AAgBA,IAAA,MAAM,KAAQ,GAAA,OAAA;AAGd,IAAA,MAAM,IAAO,GAAA,MAAA;AASb,IAAiB,gBAAA,EAAA;AAEjB,IAAA,MAAM,IAAO,GAAA,SAAA,CAAU,KAAO,EAAA,MAAA,EAAQ,IAAM,EAAA;AAAA,MAC1C,cAAc,KAAM,CAAA,WAAA;AAAA,MACpB,OAAA,EAAU,MAAM,IAAS,KAAA;AAAA,KAC1B,CAAA;;;;;;;;;;;;;;;;;"}
@@ -1,11 +1,11 @@
1
1
  'use strict';
2
2
 
3
3
  const vue = require('vue');
4
- const ContextMenu_utils = require('./utils.cjs');
5
4
  const Menu_MenuAnchor = require('../Menu/MenuAnchor.cjs');
5
+ const ContextMenu_utils = require('./utils.cjs');
6
6
  const shared_useForwardExpose = require('../shared/useForwardExpose.cjs');
7
- const ContextMenu_ContextMenuRoot = require('./ContextMenuRoot.cjs');
8
7
  const Primitive_Primitive = require('../Primitive/Primitive.cjs');
8
+ const ContextMenu_ContextMenuRoot = require('./ContextMenuRoot.cjs');
9
9
 
10
10
  const _sfc_main = /* @__PURE__ */ vue.defineComponent({
11
11
  ...{
@@ -1 +1 @@
1
- {"version":3,"file":"ContextMenuTrigger.cjs","sources":["../../src/ContextMenu/ContextMenuTrigger.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { Point } from '@/Menu/utils'\nimport type { PrimitiveProps } from '@/Primitive'\n\nexport interface ContextMenuTriggerProps extends PrimitiveProps {\n /**\n * When `true`, the context menu would not open when right-clicking.\n *\n * Note that this will also restore the native context menu.\n */\n disabled?: boolean\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { computed, nextTick, onMounted, ref, toRefs } from 'vue'\nimport { injectContextMenuRootContext } from './ContextMenuRoot.vue'\nimport { isTouchOrPen } from './utils'\nimport { useForwardExpose } from '@/shared'\nimport { Primitive } from '@/Primitive'\nimport { MenuAnchor } from '@/Menu'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst props = withDefaults(defineProps<ContextMenuTriggerProps>(), {\n as: 'span',\n disabled: false,\n})\nconst { disabled } = toRefs(props)\n\nconst { forwardRef, currentElement } = useForwardExpose()\nconst rootContext = injectContextMenuRootContext()\nconst point = ref<Point>({ x: 0, y: 0 })\nconst virtualEl = computed(() => ({\n getBoundingClientRect: () =>\n ({\n width: 0,\n height: 0,\n left: point.value.x,\n right: point.value.x,\n top: point.value.y,\n bottom: point.value.y,\n ...point.value,\n } as DOMRect),\n}))\n\nconst longPressTimer = ref(0)\nfunction clearLongPress() {\n window.clearTimeout(longPressTimer.value)\n}\n\nfunction handleOpen(event: MouseEvent | PointerEvent) {\n point.value = { x: event.clientX, y: event.clientY }\n rootContext.onOpenChange(true)\n}\n\nasync function handleContextMenu(event: PointerEvent) {\n if (!disabled.value) {\n await nextTick()\n if (!event.defaultPrevented) {\n clearLongPress()\n handleOpen(event)\n event.preventDefault()\n }\n }\n}\n\nasync function handlePointerDown(event: PointerEvent) {\n if (!disabled.value) {\n await nextTick()\n\n if (isTouchOrPen(event) && !event.defaultPrevented) {\n // clear the long press here in case there's multiple touch points\n clearLongPress()\n longPressTimer.value = window.setTimeout(() => handleOpen(event), 700)\n }\n }\n}\n\nasync function handlePointerEvent(event: PointerEvent) {\n if (!disabled.value) {\n await nextTick()\n if (isTouchOrPen(event) && !event.defaultPrevented)\n clearLongPress()\n }\n}\n\nonMounted(() => {\n if (currentElement.value) {\n rootContext.triggerElement.value = currentElement.value\n }\n})\n</script>\n\n<template>\n <MenuAnchor\n as=\"template\"\n :reference=\"virtualEl\"\n />\n\n <Primitive\n :ref=\"forwardRef\"\n :as=\"as\"\n :as-child=\"asChild\"\n :data-state=\"rootContext.open.value ? 'open' : 'closed'\"\n :data-disabled=\"disabled ? '' : undefined\"\n :style=\"{\n WebkitTouchCallout: 'none',\n pointerEvents: 'auto',\n }\"\n v-bind=\"$attrs\"\n @contextmenu=\"handleContextMenu\"\n @pointerdown=\"handlePointerDown\"\n @pointermove=\"handlePointerEvent\"\n @pointercancel=\"handlePointerEvent\"\n @pointerup=\"handlePointerEvent\"\n >\n <slot />\n </Primitive>\n</template>\n"],"names":["toRefs","useForwardExpose","injectContextMenuRootContext","ref","computed","nextTick","isTouchOrPen","onMounted"],"mappings":";;;;;;;;;;;;;;;;;;;;AA0BA,IAAA,MAAM,KAAQ,GAAA,OAAA;AAId,IAAA,MAAM,EAAE,QAAA,EAAa,GAAAA,UAAA,CAAO,KAAK,CAAA;AAEjC,IAAA,MAAM,EAAE,UAAA,EAAY,cAAe,EAAA,GAAIC,wCAAiB,EAAA;AACxD,IAAA,MAAM,cAAcC,wDAA6B,EAAA;AACjD,IAAA,MAAM,QAAQC,OAAW,CAAA,EAAE,GAAG,CAAG,EAAA,CAAA,EAAG,GAAG,CAAA;AACvC,IAAM,MAAA,SAAA,GAAYC,aAAS,OAAO;AAAA,MAChC,uBAAuB,OACpB;AAAA,QACC,KAAO,EAAA,CAAA;AAAA,QACP,MAAQ,EAAA,CAAA;AAAA,QACR,IAAA,EAAM,MAAM,KAAM,CAAA,CAAA;AAAA,QAClB,KAAA,EAAO,MAAM,KAAM,CAAA,CAAA;AAAA,QACnB,GAAA,EAAK,MAAM,KAAM,CAAA,CAAA;AAAA,QACjB,MAAA,EAAQ,MAAM,KAAM,CAAA,CAAA;AAAA,QACpB,GAAG,KAAM,CAAA;AAAA,OACX;AAAA,KACF,CAAA,CAAA;AAEF,IAAM,MAAA,cAAA,GAAiBD,QAAI,CAAC,CAAA;AAC5B,IAAA,SAAS,cAAiB,GAAA;AACxB,MAAO,MAAA,CAAA,YAAA,CAAa,eAAe,KAAK,CAAA;AAAA;AAG1C,IAAA,SAAS,WAAW,KAAkC,EAAA;AACpD,MAAA,KAAA,CAAM,QAAQ,EAAE,CAAA,EAAG,MAAM,OAAS,EAAA,CAAA,EAAG,MAAM,OAAQ,EAAA;AACnD,MAAA,WAAA,CAAY,aAAa,IAAI,CAAA;AAAA;AAG/B,IAAA,eAAe,kBAAkB,KAAqB,EAAA;AACpD,MAAI,IAAA,CAAC,SAAS,KAAO,EAAA;AACnB,QAAA,MAAME,YAAS,EAAA;AACf,QAAI,IAAA,CAAC,MAAM,gBAAkB,EAAA;AAC3B,UAAe,cAAA,EAAA;AACf,UAAA,UAAA,CAAW,KAAK,CAAA;AAChB,UAAA,KAAA,CAAM,cAAe,EAAA;AAAA;AACvB;AACF;AAGF,IAAA,eAAe,kBAAkB,KAAqB,EAAA;AACpD,MAAI,IAAA,CAAC,SAAS,KAAO,EAAA;AACnB,QAAA,MAAMA,YAAS,EAAA;AAEf,QAAA,IAAIC,8BAAa,CAAA,KAAK,CAAK,IAAA,CAAC,MAAM,gBAAkB,EAAA;AAElD,UAAe,cAAA,EAAA;AACf,UAAA,cAAA,CAAe,QAAQ,MAAO,CAAA,UAAA,CAAW,MAAM,UAAW,CAAA,KAAK,GAAG,GAAG,CAAA;AAAA;AACvE;AACF;AAGF,IAAA,eAAe,mBAAmB,KAAqB,EAAA;AACrD,MAAI,IAAA,CAAC,SAAS,KAAO,EAAA;AACnB,QAAA,MAAMD,YAAS,EAAA;AACf,QAAA,IAAIC,8BAAa,CAAA,KAAK,CAAK,IAAA,CAAC,KAAM,CAAA,gBAAA;AAChC,UAAe,cAAA,EAAA;AAAA;AACnB;AAGF,IAAAC,aAAA,CAAU,MAAM;AACd,MAAA,IAAI,eAAe,KAAO,EAAA;AACxB,QAAY,WAAA,CAAA,cAAA,CAAe,QAAQ,cAAe,CAAA,KAAA;AAAA;AACpD,KACD,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"ContextMenuTrigger.cjs","sources":["../../src/ContextMenu/ContextMenuTrigger.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { Point } from '@/Menu/utils'\nimport type { PrimitiveProps } from '@/Primitive'\n\nexport interface ContextMenuTriggerProps extends PrimitiveProps {\n /**\n * When `true`, the context menu would not open when right-clicking.\n *\n * Note that this will also restore the native context menu.\n */\n disabled?: boolean\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { MenuAnchor } from '@/Menu'\nimport { Primitive } from '@/Primitive'\nimport { useForwardExpose } from '@/shared'\nimport { computed, nextTick, onMounted, ref, toRefs } from 'vue'\nimport { injectContextMenuRootContext } from './ContextMenuRoot.vue'\nimport { isTouchOrPen } from './utils'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst props = withDefaults(defineProps<ContextMenuTriggerProps>(), {\n as: 'span',\n disabled: false,\n})\nconst { disabled } = toRefs(props)\n\nconst { forwardRef, currentElement } = useForwardExpose()\nconst rootContext = injectContextMenuRootContext()\nconst point = ref<Point>({ x: 0, y: 0 })\nconst virtualEl = computed(() => ({\n getBoundingClientRect: () =>\n ({\n width: 0,\n height: 0,\n left: point.value.x,\n right: point.value.x,\n top: point.value.y,\n bottom: point.value.y,\n ...point.value,\n } as DOMRect),\n}))\n\nconst longPressTimer = ref(0)\nfunction clearLongPress() {\n window.clearTimeout(longPressTimer.value)\n}\n\nfunction handleOpen(event: MouseEvent | PointerEvent) {\n point.value = { x: event.clientX, y: event.clientY }\n rootContext.onOpenChange(true)\n}\n\nasync function handleContextMenu(event: PointerEvent) {\n if (!disabled.value) {\n await nextTick()\n if (!event.defaultPrevented) {\n clearLongPress()\n handleOpen(event)\n event.preventDefault()\n }\n }\n}\n\nasync function handlePointerDown(event: PointerEvent) {\n if (!disabled.value) {\n await nextTick()\n\n if (isTouchOrPen(event) && !event.defaultPrevented) {\n // clear the long press here in case there's multiple touch points\n clearLongPress()\n longPressTimer.value = window.setTimeout(() => handleOpen(event), 700)\n }\n }\n}\n\nasync function handlePointerEvent(event: PointerEvent) {\n if (!disabled.value) {\n await nextTick()\n if (isTouchOrPen(event) && !event.defaultPrevented)\n clearLongPress()\n }\n}\n\nonMounted(() => {\n if (currentElement.value) {\n rootContext.triggerElement.value = currentElement.value\n }\n})\n</script>\n\n<template>\n <MenuAnchor\n as=\"template\"\n :reference=\"virtualEl\"\n />\n\n <Primitive\n :ref=\"forwardRef\"\n :as=\"as\"\n :as-child=\"asChild\"\n :data-state=\"rootContext.open.value ? 'open' : 'closed'\"\n :data-disabled=\"disabled ? '' : undefined\"\n :style=\"{\n WebkitTouchCallout: 'none',\n pointerEvents: 'auto',\n }\"\n v-bind=\"$attrs\"\n @contextmenu=\"handleContextMenu\"\n @pointerdown=\"handlePointerDown\"\n @pointermove=\"handlePointerEvent\"\n @pointercancel=\"handlePointerEvent\"\n @pointerup=\"handlePointerEvent\"\n >\n <slot />\n </Primitive>\n</template>\n"],"names":["toRefs","useForwardExpose","injectContextMenuRootContext","ref","computed","nextTick","isTouchOrPen","onMounted"],"mappings":";;;;;;;;;;;;;;;;;;;;AA0BA,IAAA,MAAM,KAAQ,GAAA,OAAA;AAId,IAAA,MAAM,EAAE,QAAA,EAAa,GAAAA,UAAA,CAAO,KAAK,CAAA;AAEjC,IAAA,MAAM,EAAE,UAAA,EAAY,cAAe,EAAA,GAAIC,wCAAiB,EAAA;AACxD,IAAA,MAAM,cAAcC,wDAA6B,EAAA;AACjD,IAAA,MAAM,QAAQC,OAAW,CAAA,EAAE,GAAG,CAAG,EAAA,CAAA,EAAG,GAAG,CAAA;AACvC,IAAM,MAAA,SAAA,GAAYC,aAAS,OAAO;AAAA,MAChC,uBAAuB,OACpB;AAAA,QACC,KAAO,EAAA,CAAA;AAAA,QACP,MAAQ,EAAA,CAAA;AAAA,QACR,IAAA,EAAM,MAAM,KAAM,CAAA,CAAA;AAAA,QAClB,KAAA,EAAO,MAAM,KAAM,CAAA,CAAA;AAAA,QACnB,GAAA,EAAK,MAAM,KAAM,CAAA,CAAA;AAAA,QACjB,MAAA,EAAQ,MAAM,KAAM,CAAA,CAAA;AAAA,QACpB,GAAG,KAAM,CAAA;AAAA,OACX;AAAA,KACF,CAAA,CAAA;AAEF,IAAM,MAAA,cAAA,GAAiBD,QAAI,CAAC,CAAA;AAC5B,IAAA,SAAS,cAAiB,GAAA;AACxB,MAAO,MAAA,CAAA,YAAA,CAAa,eAAe,KAAK,CAAA;AAAA;AAG1C,IAAA,SAAS,WAAW,KAAkC,EAAA;AACpD,MAAA,KAAA,CAAM,QAAQ,EAAE,CAAA,EAAG,MAAM,OAAS,EAAA,CAAA,EAAG,MAAM,OAAQ,EAAA;AACnD,MAAA,WAAA,CAAY,aAAa,IAAI,CAAA;AAAA;AAG/B,IAAA,eAAe,kBAAkB,KAAqB,EAAA;AACpD,MAAI,IAAA,CAAC,SAAS,KAAO,EAAA;AACnB,QAAA,MAAME,YAAS,EAAA;AACf,QAAI,IAAA,CAAC,MAAM,gBAAkB,EAAA;AAC3B,UAAe,cAAA,EAAA;AACf,UAAA,UAAA,CAAW,KAAK,CAAA;AAChB,UAAA,KAAA,CAAM,cAAe,EAAA;AAAA;AACvB;AACF;AAGF,IAAA,eAAe,kBAAkB,KAAqB,EAAA;AACpD,MAAI,IAAA,CAAC,SAAS,KAAO,EAAA;AACnB,QAAA,MAAMA,YAAS,EAAA;AAEf,QAAA,IAAIC,8BAAa,CAAA,KAAK,CAAK,IAAA,CAAC,MAAM,gBAAkB,EAAA;AAElD,UAAe,cAAA,EAAA;AACf,UAAA,cAAA,CAAe,QAAQ,MAAO,CAAA,UAAA,CAAW,MAAM,UAAW,CAAA,KAAK,GAAG,GAAG,CAAA;AAAA;AACvE;AACF;AAGF,IAAA,eAAe,mBAAmB,KAAqB,EAAA;AACrD,MAAI,IAAA,CAAC,SAAS,KAAO,EAAA;AACnB,QAAA,MAAMD,YAAS,EAAA;AACf,QAAA,IAAIC,8BAAa,CAAA,KAAK,CAAK,IAAA,CAAC,KAAM,CAAA,gBAAA;AAChC,UAAe,cAAA,EAAA;AAAA;AACnB;AAGF,IAAAC,aAAA,CAAU,MAAM;AACd,MAAA,IAAI,eAAe,KAAO,EAAA;AACxB,QAAY,WAAA,CAAA,cAAA,CAAe,QAAQ,cAAe,CAAA,KAAA;AAAA;AACpD,KACD,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,9 +1,9 @@
1
1
  import { defineComponent, toRefs, ref, computed, onMounted, createElementBlock, openBlock, Fragment, createVNode, unref, mergeProps, withCtx, renderSlot, nextTick } from 'vue';
2
- import { i as isTouchOrPen } from './utils.js';
3
2
  import { _ as _sfc_main$1 } from '../Menu/MenuAnchor.js';
3
+ import { i as isTouchOrPen } from './utils.js';
4
4
  import { u as useForwardExpose } from '../shared/useForwardExpose.js';
5
- import { i as injectContextMenuRootContext } from './ContextMenuRoot.js';
6
5
  import { P as Primitive } from '../Primitive/Primitive.js';
6
+ import { i as injectContextMenuRootContext } from './ContextMenuRoot.js';
7
7
 
8
8
  const _sfc_main = /* @__PURE__ */ defineComponent({
9
9
  ...{
@@ -1 +1 @@
1
- {"version":3,"file":"ContextMenuTrigger.js","sources":["../../src/ContextMenu/ContextMenuTrigger.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { Point } from '@/Menu/utils'\nimport type { PrimitiveProps } from '@/Primitive'\n\nexport interface ContextMenuTriggerProps extends PrimitiveProps {\n /**\n * When `true`, the context menu would not open when right-clicking.\n *\n * Note that this will also restore the native context menu.\n */\n disabled?: boolean\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { computed, nextTick, onMounted, ref, toRefs } from 'vue'\nimport { injectContextMenuRootContext } from './ContextMenuRoot.vue'\nimport { isTouchOrPen } from './utils'\nimport { useForwardExpose } from '@/shared'\nimport { Primitive } from '@/Primitive'\nimport { MenuAnchor } from '@/Menu'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst props = withDefaults(defineProps<ContextMenuTriggerProps>(), {\n as: 'span',\n disabled: false,\n})\nconst { disabled } = toRefs(props)\n\nconst { forwardRef, currentElement } = useForwardExpose()\nconst rootContext = injectContextMenuRootContext()\nconst point = ref<Point>({ x: 0, y: 0 })\nconst virtualEl = computed(() => ({\n getBoundingClientRect: () =>\n ({\n width: 0,\n height: 0,\n left: point.value.x,\n right: point.value.x,\n top: point.value.y,\n bottom: point.value.y,\n ...point.value,\n } as DOMRect),\n}))\n\nconst longPressTimer = ref(0)\nfunction clearLongPress() {\n window.clearTimeout(longPressTimer.value)\n}\n\nfunction handleOpen(event: MouseEvent | PointerEvent) {\n point.value = { x: event.clientX, y: event.clientY }\n rootContext.onOpenChange(true)\n}\n\nasync function handleContextMenu(event: PointerEvent) {\n if (!disabled.value) {\n await nextTick()\n if (!event.defaultPrevented) {\n clearLongPress()\n handleOpen(event)\n event.preventDefault()\n }\n }\n}\n\nasync function handlePointerDown(event: PointerEvent) {\n if (!disabled.value) {\n await nextTick()\n\n if (isTouchOrPen(event) && !event.defaultPrevented) {\n // clear the long press here in case there's multiple touch points\n clearLongPress()\n longPressTimer.value = window.setTimeout(() => handleOpen(event), 700)\n }\n }\n}\n\nasync function handlePointerEvent(event: PointerEvent) {\n if (!disabled.value) {\n await nextTick()\n if (isTouchOrPen(event) && !event.defaultPrevented)\n clearLongPress()\n }\n}\n\nonMounted(() => {\n if (currentElement.value) {\n rootContext.triggerElement.value = currentElement.value\n }\n})\n</script>\n\n<template>\n <MenuAnchor\n as=\"template\"\n :reference=\"virtualEl\"\n />\n\n <Primitive\n :ref=\"forwardRef\"\n :as=\"as\"\n :as-child=\"asChild\"\n :data-state=\"rootContext.open.value ? 'open' : 'closed'\"\n :data-disabled=\"disabled ? '' : undefined\"\n :style=\"{\n WebkitTouchCallout: 'none',\n pointerEvents: 'auto',\n }\"\n v-bind=\"$attrs\"\n @contextmenu=\"handleContextMenu\"\n @pointerdown=\"handlePointerDown\"\n @pointermove=\"handlePointerEvent\"\n @pointercancel=\"handlePointerEvent\"\n @pointerup=\"handlePointerEvent\"\n >\n <slot />\n </Primitive>\n</template>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AA0BA,IAAA,MAAM,KAAQ,GAAA,OAAA;AAId,IAAA,MAAM,EAAE,QAAA,EAAa,GAAA,MAAA,CAAO,KAAK,CAAA;AAEjC,IAAA,MAAM,EAAE,UAAA,EAAY,cAAe,EAAA,GAAI,gBAAiB,EAAA;AACxD,IAAA,MAAM,cAAc,4BAA6B,EAAA;AACjD,IAAA,MAAM,QAAQ,GAAW,CAAA,EAAE,GAAG,CAAG,EAAA,CAAA,EAAG,GAAG,CAAA;AACvC,IAAM,MAAA,SAAA,GAAY,SAAS,OAAO;AAAA,MAChC,uBAAuB,OACpB;AAAA,QACC,KAAO,EAAA,CAAA;AAAA,QACP,MAAQ,EAAA,CAAA;AAAA,QACR,IAAA,EAAM,MAAM,KAAM,CAAA,CAAA;AAAA,QAClB,KAAA,EAAO,MAAM,KAAM,CAAA,CAAA;AAAA,QACnB,GAAA,EAAK,MAAM,KAAM,CAAA,CAAA;AAAA,QACjB,MAAA,EAAQ,MAAM,KAAM,CAAA,CAAA;AAAA,QACpB,GAAG,KAAM,CAAA;AAAA,OACX;AAAA,KACF,CAAA,CAAA;AAEF,IAAM,MAAA,cAAA,GAAiB,IAAI,CAAC,CAAA;AAC5B,IAAA,SAAS,cAAiB,GAAA;AACxB,MAAO,MAAA,CAAA,YAAA,CAAa,eAAe,KAAK,CAAA;AAAA;AAG1C,IAAA,SAAS,WAAW,KAAkC,EAAA;AACpD,MAAA,KAAA,CAAM,QAAQ,EAAE,CAAA,EAAG,MAAM,OAAS,EAAA,CAAA,EAAG,MAAM,OAAQ,EAAA;AACnD,MAAA,WAAA,CAAY,aAAa,IAAI,CAAA;AAAA;AAG/B,IAAA,eAAe,kBAAkB,KAAqB,EAAA;AACpD,MAAI,IAAA,CAAC,SAAS,KAAO,EAAA;AACnB,QAAA,MAAM,QAAS,EAAA;AACf,QAAI,IAAA,CAAC,MAAM,gBAAkB,EAAA;AAC3B,UAAe,cAAA,EAAA;AACf,UAAA,UAAA,CAAW,KAAK,CAAA;AAChB,UAAA,KAAA,CAAM,cAAe,EAAA;AAAA;AACvB;AACF;AAGF,IAAA,eAAe,kBAAkB,KAAqB,EAAA;AACpD,MAAI,IAAA,CAAC,SAAS,KAAO,EAAA;AACnB,QAAA,MAAM,QAAS,EAAA;AAEf,QAAA,IAAI,YAAa,CAAA,KAAK,CAAK,IAAA,CAAC,MAAM,gBAAkB,EAAA;AAElD,UAAe,cAAA,EAAA;AACf,UAAA,cAAA,CAAe,QAAQ,MAAO,CAAA,UAAA,CAAW,MAAM,UAAW,CAAA,KAAK,GAAG,GAAG,CAAA;AAAA;AACvE;AACF;AAGF,IAAA,eAAe,mBAAmB,KAAqB,EAAA;AACrD,MAAI,IAAA,CAAC,SAAS,KAAO,EAAA;AACnB,QAAA,MAAM,QAAS,EAAA;AACf,QAAA,IAAI,YAAa,CAAA,KAAK,CAAK,IAAA,CAAC,KAAM,CAAA,gBAAA;AAChC,UAAe,cAAA,EAAA;AAAA;AACnB;AAGF,IAAA,SAAA,CAAU,MAAM;AACd,MAAA,IAAI,eAAe,KAAO,EAAA;AACxB,QAAY,WAAA,CAAA,cAAA,CAAe,QAAQ,cAAe,CAAA,KAAA;AAAA;AACpD,KACD,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"ContextMenuTrigger.js","sources":["../../src/ContextMenu/ContextMenuTrigger.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { Point } from '@/Menu/utils'\nimport type { PrimitiveProps } from '@/Primitive'\n\nexport interface ContextMenuTriggerProps extends PrimitiveProps {\n /**\n * When `true`, the context menu would not open when right-clicking.\n *\n * Note that this will also restore the native context menu.\n */\n disabled?: boolean\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { MenuAnchor } from '@/Menu'\nimport { Primitive } from '@/Primitive'\nimport { useForwardExpose } from '@/shared'\nimport { computed, nextTick, onMounted, ref, toRefs } from 'vue'\nimport { injectContextMenuRootContext } from './ContextMenuRoot.vue'\nimport { isTouchOrPen } from './utils'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst props = withDefaults(defineProps<ContextMenuTriggerProps>(), {\n as: 'span',\n disabled: false,\n})\nconst { disabled } = toRefs(props)\n\nconst { forwardRef, currentElement } = useForwardExpose()\nconst rootContext = injectContextMenuRootContext()\nconst point = ref<Point>({ x: 0, y: 0 })\nconst virtualEl = computed(() => ({\n getBoundingClientRect: () =>\n ({\n width: 0,\n height: 0,\n left: point.value.x,\n right: point.value.x,\n top: point.value.y,\n bottom: point.value.y,\n ...point.value,\n } as DOMRect),\n}))\n\nconst longPressTimer = ref(0)\nfunction clearLongPress() {\n window.clearTimeout(longPressTimer.value)\n}\n\nfunction handleOpen(event: MouseEvent | PointerEvent) {\n point.value = { x: event.clientX, y: event.clientY }\n rootContext.onOpenChange(true)\n}\n\nasync function handleContextMenu(event: PointerEvent) {\n if (!disabled.value) {\n await nextTick()\n if (!event.defaultPrevented) {\n clearLongPress()\n handleOpen(event)\n event.preventDefault()\n }\n }\n}\n\nasync function handlePointerDown(event: PointerEvent) {\n if (!disabled.value) {\n await nextTick()\n\n if (isTouchOrPen(event) && !event.defaultPrevented) {\n // clear the long press here in case there's multiple touch points\n clearLongPress()\n longPressTimer.value = window.setTimeout(() => handleOpen(event), 700)\n }\n }\n}\n\nasync function handlePointerEvent(event: PointerEvent) {\n if (!disabled.value) {\n await nextTick()\n if (isTouchOrPen(event) && !event.defaultPrevented)\n clearLongPress()\n }\n}\n\nonMounted(() => {\n if (currentElement.value) {\n rootContext.triggerElement.value = currentElement.value\n }\n})\n</script>\n\n<template>\n <MenuAnchor\n as=\"template\"\n :reference=\"virtualEl\"\n />\n\n <Primitive\n :ref=\"forwardRef\"\n :as=\"as\"\n :as-child=\"asChild\"\n :data-state=\"rootContext.open.value ? 'open' : 'closed'\"\n :data-disabled=\"disabled ? '' : undefined\"\n :style=\"{\n WebkitTouchCallout: 'none',\n pointerEvents: 'auto',\n }\"\n v-bind=\"$attrs\"\n @contextmenu=\"handleContextMenu\"\n @pointerdown=\"handlePointerDown\"\n @pointermove=\"handlePointerEvent\"\n @pointercancel=\"handlePointerEvent\"\n @pointerup=\"handlePointerEvent\"\n >\n <slot />\n </Primitive>\n</template>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AA0BA,IAAA,MAAM,KAAQ,GAAA,OAAA;AAId,IAAA,MAAM,EAAE,QAAA,EAAa,GAAA,MAAA,CAAO,KAAK,CAAA;AAEjC,IAAA,MAAM,EAAE,UAAA,EAAY,cAAe,EAAA,GAAI,gBAAiB,EAAA;AACxD,IAAA,MAAM,cAAc,4BAA6B,EAAA;AACjD,IAAA,MAAM,QAAQ,GAAW,CAAA,EAAE,GAAG,CAAG,EAAA,CAAA,EAAG,GAAG,CAAA;AACvC,IAAM,MAAA,SAAA,GAAY,SAAS,OAAO;AAAA,MAChC,uBAAuB,OACpB;AAAA,QACC,KAAO,EAAA,CAAA;AAAA,QACP,MAAQ,EAAA,CAAA;AAAA,QACR,IAAA,EAAM,MAAM,KAAM,CAAA,CAAA;AAAA,QAClB,KAAA,EAAO,MAAM,KAAM,CAAA,CAAA;AAAA,QACnB,GAAA,EAAK,MAAM,KAAM,CAAA,CAAA;AAAA,QACjB,MAAA,EAAQ,MAAM,KAAM,CAAA,CAAA;AAAA,QACpB,GAAG,KAAM,CAAA;AAAA,OACX;AAAA,KACF,CAAA,CAAA;AAEF,IAAM,MAAA,cAAA,GAAiB,IAAI,CAAC,CAAA;AAC5B,IAAA,SAAS,cAAiB,GAAA;AACxB,MAAO,MAAA,CAAA,YAAA,CAAa,eAAe,KAAK,CAAA;AAAA;AAG1C,IAAA,SAAS,WAAW,KAAkC,EAAA;AACpD,MAAA,KAAA,CAAM,QAAQ,EAAE,CAAA,EAAG,MAAM,OAAS,EAAA,CAAA,EAAG,MAAM,OAAQ,EAAA;AACnD,MAAA,WAAA,CAAY,aAAa,IAAI,CAAA;AAAA;AAG/B,IAAA,eAAe,kBAAkB,KAAqB,EAAA;AACpD,MAAI,IAAA,CAAC,SAAS,KAAO,EAAA;AACnB,QAAA,MAAM,QAAS,EAAA;AACf,QAAI,IAAA,CAAC,MAAM,gBAAkB,EAAA;AAC3B,UAAe,cAAA,EAAA;AACf,UAAA,UAAA,CAAW,KAAK,CAAA;AAChB,UAAA,KAAA,CAAM,cAAe,EAAA;AAAA;AACvB;AACF;AAGF,IAAA,eAAe,kBAAkB,KAAqB,EAAA;AACpD,MAAI,IAAA,CAAC,SAAS,KAAO,EAAA;AACnB,QAAA,MAAM,QAAS,EAAA;AAEf,QAAA,IAAI,YAAa,CAAA,KAAK,CAAK,IAAA,CAAC,MAAM,gBAAkB,EAAA;AAElD,UAAe,cAAA,EAAA;AACf,UAAA,cAAA,CAAe,QAAQ,MAAO,CAAA,UAAA,CAAW,MAAM,UAAW,CAAA,KAAK,GAAG,GAAG,CAAA;AAAA;AACvE;AACF;AAGF,IAAA,eAAe,mBAAmB,KAAqB,EAAA;AACrD,MAAI,IAAA,CAAC,SAAS,KAAO,EAAA;AACnB,QAAA,MAAM,QAAS,EAAA;AACf,QAAA,IAAI,YAAa,CAAA,KAAK,CAAK,IAAA,CAAC,KAAM,CAAA,gBAAA;AAChC,UAAe,cAAA,EAAA;AAAA;AACnB;AAGF,IAAA,SAAA,CAAU,MAAM;AACd,MAAA,IAAI,eAAe,KAAO,EAAA;AACxB,QAAY,WAAA,CAAA,cAAA,CAAe,QAAQ,cAAe,CAAA,KAAA;AAAA;AACpD,KACD,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}