reka-ui 2.1.1 → 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 (1290) hide show
  1. package/README.md +1 -1
  2. package/dist/Accordion/AccordionContent.cjs +2 -1
  3. package/dist/Accordion/AccordionContent.cjs.map +1 -1
  4. package/dist/Accordion/AccordionContent.js +3 -2
  5. package/dist/Accordion/AccordionContent.js.map +1 -1
  6. package/dist/Accordion/AccordionHeader.cjs.map +1 -1
  7. package/dist/Accordion/AccordionHeader.js +1 -1
  8. package/dist/Accordion/AccordionHeader.js.map +1 -1
  9. package/dist/Accordion/AccordionItem.cjs +2 -2
  10. package/dist/Accordion/AccordionItem.cjs.map +1 -1
  11. package/dist/Accordion/AccordionItem.js +3 -3
  12. package/dist/Accordion/AccordionItem.js.map +1 -1
  13. package/dist/Accordion/AccordionRoot.cjs +1 -1
  14. package/dist/Accordion/AccordionRoot.cjs.map +1 -1
  15. package/dist/Accordion/AccordionRoot.js +2 -2
  16. package/dist/Accordion/AccordionRoot.js.map +1 -1
  17. package/dist/Accordion/AccordionTrigger.cjs +2 -2
  18. package/dist/Accordion/AccordionTrigger.cjs.map +1 -1
  19. package/dist/Accordion/AccordionTrigger.js +3 -3
  20. package/dist/Accordion/AccordionTrigger.js.map +1 -1
  21. package/dist/AlertDialog/AlertDialogAction.js +1 -1
  22. package/dist/AlertDialog/AlertDialogCancel.cjs.map +1 -1
  23. package/dist/AlertDialog/AlertDialogCancel.js +1 -1
  24. package/dist/AlertDialog/AlertDialogCancel.js.map +1 -1
  25. package/dist/AlertDialog/AlertDialogContent.cjs +1 -1
  26. package/dist/AlertDialog/AlertDialogContent.cjs.map +1 -1
  27. package/dist/AlertDialog/AlertDialogContent.js +2 -2
  28. package/dist/AlertDialog/AlertDialogContent.js.map +1 -1
  29. package/dist/AlertDialog/AlertDialogDescription.js +1 -1
  30. package/dist/AlertDialog/AlertDialogOverlay.js +1 -1
  31. package/dist/AlertDialog/AlertDialogPortal.js +1 -1
  32. package/dist/AlertDialog/AlertDialogRoot.js +1 -1
  33. package/dist/AlertDialog/AlertDialogTitle.js +1 -1
  34. package/dist/AlertDialog/AlertDialogTrigger.js +1 -1
  35. package/dist/AspectRatio/AspectRatio.cjs.map +1 -1
  36. package/dist/AspectRatio/AspectRatio.js +1 -1
  37. package/dist/AspectRatio/AspectRatio.js.map +1 -1
  38. package/dist/Avatar/AvatarFallback.cjs.map +1 -1
  39. package/dist/Avatar/AvatarFallback.js +1 -1
  40. package/dist/Avatar/AvatarFallback.js.map +1 -1
  41. package/dist/Avatar/AvatarImage.cjs.map +1 -1
  42. package/dist/Avatar/AvatarImage.js +1 -1
  43. package/dist/Avatar/AvatarImage.js.map +1 -1
  44. package/dist/Avatar/AvatarRoot.cjs +1 -1
  45. package/dist/Avatar/AvatarRoot.cjs.map +1 -1
  46. package/dist/Avatar/AvatarRoot.js +2 -2
  47. package/dist/Avatar/AvatarRoot.js.map +1 -1
  48. package/dist/Avatar/utils.cjs.map +1 -1
  49. package/dist/Avatar/utils.js.map +1 -1
  50. package/dist/Calendar/CalendarCell.cjs +3 -3
  51. package/dist/Calendar/CalendarCell.js +4 -4
  52. package/dist/Calendar/CalendarCellTrigger.cjs +74 -50
  53. package/dist/Calendar/CalendarCellTrigger.cjs.map +1 -1
  54. package/dist/Calendar/CalendarCellTrigger.js +75 -51
  55. package/dist/Calendar/CalendarCellTrigger.js.map +1 -1
  56. package/dist/Calendar/CalendarGrid.cjs +2 -2
  57. package/dist/Calendar/CalendarGrid.cjs.map +1 -1
  58. package/dist/Calendar/CalendarGrid.js +3 -3
  59. package/dist/Calendar/CalendarGrid.js.map +1 -1
  60. package/dist/Calendar/CalendarGridBody.js +1 -1
  61. package/dist/Calendar/CalendarGridHead.js +1 -1
  62. package/dist/Calendar/CalendarGridRow.js +1 -1
  63. package/dist/Calendar/CalendarHeadCell.js +1 -1
  64. package/dist/Calendar/CalendarHeader.js +1 -1
  65. package/dist/Calendar/CalendarHeading.cjs +2 -2
  66. package/dist/Calendar/CalendarHeading.js +3 -3
  67. package/dist/Calendar/CalendarNext.cjs +3 -3
  68. package/dist/Calendar/CalendarNext.cjs.map +1 -1
  69. package/dist/Calendar/CalendarNext.js +4 -4
  70. package/dist/Calendar/CalendarNext.js.map +1 -1
  71. package/dist/Calendar/CalendarPrev.cjs +3 -3
  72. package/dist/Calendar/CalendarPrev.cjs.map +1 -1
  73. package/dist/Calendar/CalendarPrev.js +4 -4
  74. package/dist/Calendar/CalendarPrev.js.map +1 -1
  75. package/dist/Calendar/CalendarRoot.cjs +14 -12
  76. package/dist/Calendar/CalendarRoot.cjs.map +1 -1
  77. package/dist/Calendar/CalendarRoot.js +15 -13
  78. package/dist/Calendar/CalendarRoot.js.map +1 -1
  79. package/dist/Calendar/useCalendar.cjs +2 -2
  80. package/dist/Calendar/useCalendar.cjs.map +1 -1
  81. package/dist/Calendar/useCalendar.js +2 -2
  82. package/dist/Calendar/useCalendar.js.map +1 -1
  83. package/dist/Calendar/utils.cjs +9 -0
  84. package/dist/Calendar/utils.cjs.map +1 -0
  85. package/dist/Calendar/utils.js +7 -0
  86. package/dist/Calendar/utils.js.map +1 -0
  87. package/dist/Checkbox/CheckboxGroupRoot.cjs +3 -3
  88. package/dist/Checkbox/CheckboxGroupRoot.cjs.map +1 -1
  89. package/dist/Checkbox/CheckboxGroupRoot.js +4 -4
  90. package/dist/Checkbox/CheckboxGroupRoot.js.map +1 -1
  91. package/dist/Checkbox/CheckboxIndicator.cjs +1 -1
  92. package/dist/Checkbox/CheckboxIndicator.cjs.map +1 -1
  93. package/dist/Checkbox/CheckboxIndicator.js +2 -2
  94. package/dist/Checkbox/CheckboxIndicator.js.map +1 -1
  95. package/dist/Checkbox/CheckboxRoot.cjs +9 -9
  96. package/dist/Checkbox/CheckboxRoot.cjs.map +1 -1
  97. package/dist/Checkbox/CheckboxRoot.js +10 -10
  98. package/dist/Checkbox/CheckboxRoot.js.map +1 -1
  99. package/dist/Collapsible/CollapsibleContent.cjs +5 -5
  100. package/dist/Collapsible/CollapsibleContent.cjs.map +1 -1
  101. package/dist/Collapsible/CollapsibleContent.js +6 -6
  102. package/dist/Collapsible/CollapsibleContent.js.map +1 -1
  103. package/dist/Collapsible/CollapsibleRoot.cjs +4 -4
  104. package/dist/Collapsible/CollapsibleRoot.cjs.map +1 -1
  105. package/dist/Collapsible/CollapsibleRoot.js +5 -5
  106. package/dist/Collapsible/CollapsibleRoot.js.map +1 -1
  107. package/dist/Collapsible/CollapsibleTrigger.cjs +3 -3
  108. package/dist/Collapsible/CollapsibleTrigger.js +4 -4
  109. package/dist/Collection/Collection.cjs.map +1 -1
  110. package/dist/Collection/Collection.js.map +1 -1
  111. package/dist/Combobox/ComboboxAnchor.cjs.map +1 -1
  112. package/dist/Combobox/ComboboxAnchor.js +1 -1
  113. package/dist/Combobox/ComboboxAnchor.js.map +1 -1
  114. package/dist/Combobox/ComboboxArrow.cjs.map +1 -1
  115. package/dist/Combobox/ComboboxArrow.js +1 -1
  116. package/dist/Combobox/ComboboxArrow.js.map +1 -1
  117. package/dist/Combobox/ComboboxCancel.cjs +2 -1
  118. package/dist/Combobox/ComboboxCancel.cjs.map +1 -1
  119. package/dist/Combobox/ComboboxCancel.js +3 -2
  120. package/dist/Combobox/ComboboxCancel.js.map +1 -1
  121. package/dist/Combobox/ComboboxContent.cjs +1 -1
  122. package/dist/Combobox/ComboboxContent.cjs.map +1 -1
  123. package/dist/Combobox/ComboboxContent.js +2 -2
  124. package/dist/Combobox/ComboboxContent.js.map +1 -1
  125. package/dist/Combobox/ComboboxContentImpl.cjs +2 -2
  126. package/dist/Combobox/ComboboxContentImpl.cjs.map +1 -1
  127. package/dist/Combobox/ComboboxContentImpl.js +3 -3
  128. package/dist/Combobox/ComboboxContentImpl.js.map +1 -1
  129. package/dist/Combobox/ComboboxEmpty.cjs.map +1 -1
  130. package/dist/Combobox/ComboboxEmpty.js +1 -1
  131. package/dist/Combobox/ComboboxEmpty.js.map +1 -1
  132. package/dist/Combobox/ComboboxGroup.cjs +3 -3
  133. package/dist/Combobox/ComboboxGroup.cjs.map +1 -1
  134. package/dist/Combobox/ComboboxGroup.js +4 -4
  135. package/dist/Combobox/ComboboxGroup.js.map +1 -1
  136. package/dist/Combobox/ComboboxInput.cjs +10 -2
  137. package/dist/Combobox/ComboboxInput.cjs.map +1 -1
  138. package/dist/Combobox/ComboboxInput.js +11 -3
  139. package/dist/Combobox/ComboboxInput.js.map +1 -1
  140. package/dist/Combobox/ComboboxItem.cjs +6 -5
  141. package/dist/Combobox/ComboboxItem.cjs.map +1 -1
  142. package/dist/Combobox/ComboboxItem.js +7 -6
  143. package/dist/Combobox/ComboboxItem.js.map +1 -1
  144. package/dist/Combobox/ComboboxItemIndicator.js +1 -1
  145. package/dist/Combobox/ComboboxLabel.cjs +2 -2
  146. package/dist/Combobox/ComboboxLabel.cjs.map +1 -1
  147. package/dist/Combobox/ComboboxLabel.js +3 -3
  148. package/dist/Combobox/ComboboxLabel.js.map +1 -1
  149. package/dist/Combobox/ComboboxPortal.js +1 -1
  150. package/dist/Combobox/ComboboxRoot.cjs +7 -7
  151. package/dist/Combobox/ComboboxRoot.cjs.map +1 -1
  152. package/dist/Combobox/ComboboxRoot.js +8 -8
  153. package/dist/Combobox/ComboboxRoot.js.map +1 -1
  154. package/dist/Combobox/ComboboxSeparator.js +1 -1
  155. package/dist/Combobox/ComboboxTrigger.cjs +3 -3
  156. package/dist/Combobox/ComboboxTrigger.js +4 -4
  157. package/dist/Combobox/ComboboxViewport.cjs +1 -1
  158. package/dist/Combobox/ComboboxViewport.js +2 -2
  159. package/dist/Combobox/ComboboxVirtualizer.cjs.map +1 -1
  160. package/dist/Combobox/ComboboxVirtualizer.js +1 -1
  161. package/dist/Combobox/ComboboxVirtualizer.js.map +1 -1
  162. package/dist/ConfigProvider/ConfigProvider.cjs +2 -2
  163. package/dist/ConfigProvider/ConfigProvider.js +2 -2
  164. package/dist/ContextMenu/ContextMenuArrow.js +1 -1
  165. package/dist/ContextMenu/ContextMenuCheckboxItem.js +1 -1
  166. package/dist/ContextMenu/ContextMenuContent.cjs.map +1 -1
  167. package/dist/ContextMenu/ContextMenuContent.js +1 -1
  168. package/dist/ContextMenu/ContextMenuContent.js.map +1 -1
  169. package/dist/ContextMenu/ContextMenuGroup.js +1 -1
  170. package/dist/ContextMenu/ContextMenuItem.js +1 -1
  171. package/dist/ContextMenu/ContextMenuItemIndicator.js +1 -1
  172. package/dist/ContextMenu/ContextMenuLabel.js +1 -1
  173. package/dist/ContextMenu/ContextMenuPortal.cjs.map +1 -1
  174. package/dist/ContextMenu/ContextMenuPortal.js +1 -1
  175. package/dist/ContextMenu/ContextMenuPortal.js.map +1 -1
  176. package/dist/ContextMenu/ContextMenuRadioGroup.js +1 -1
  177. package/dist/ContextMenu/ContextMenuRadioItem.js +1 -1
  178. package/dist/ContextMenu/ContextMenuRoot.cjs +1 -1
  179. package/dist/ContextMenu/ContextMenuRoot.cjs.map +1 -1
  180. package/dist/ContextMenu/ContextMenuRoot.js +2 -2
  181. package/dist/ContextMenu/ContextMenuRoot.js.map +1 -1
  182. package/dist/ContextMenu/ContextMenuSeparator.js +1 -1
  183. package/dist/ContextMenu/ContextMenuSub.cjs +3 -3
  184. package/dist/ContextMenu/ContextMenuSub.cjs.map +1 -1
  185. package/dist/ContextMenu/ContextMenuSub.js +4 -4
  186. package/dist/ContextMenu/ContextMenuSub.js.map +1 -1
  187. package/dist/ContextMenu/ContextMenuSubContent.js +1 -1
  188. package/dist/ContextMenu/ContextMenuSubTrigger.js +1 -1
  189. package/dist/ContextMenu/ContextMenuTrigger.cjs +3 -3
  190. package/dist/ContextMenu/ContextMenuTrigger.cjs.map +1 -1
  191. package/dist/ContextMenu/ContextMenuTrigger.js +4 -4
  192. package/dist/ContextMenu/ContextMenuTrigger.js.map +1 -1
  193. package/dist/DateField/DateFieldInput.cjs +5 -5
  194. package/dist/DateField/DateFieldInput.cjs.map +1 -1
  195. package/dist/DateField/DateFieldInput.js +6 -6
  196. package/dist/DateField/DateFieldInput.js.map +1 -1
  197. package/dist/DateField/DateFieldRoot.cjs +10 -10
  198. package/dist/DateField/DateFieldRoot.cjs.map +1 -1
  199. package/dist/DateField/DateFieldRoot.js +11 -11
  200. package/dist/DateField/DateFieldRoot.js.map +1 -1
  201. package/dist/DatePicker/DatePickerArrow.cjs.map +1 -1
  202. package/dist/DatePicker/DatePickerArrow.js +1 -1
  203. package/dist/DatePicker/DatePickerArrow.js.map +1 -1
  204. package/dist/DatePicker/DatePickerCalendar.cjs.map +1 -1
  205. package/dist/DatePicker/DatePickerCalendar.js +1 -1
  206. package/dist/DatePicker/DatePickerCalendar.js.map +1 -1
  207. package/dist/DatePicker/DatePickerCell.cjs.map +1 -1
  208. package/dist/DatePicker/DatePickerCell.js +1 -1
  209. package/dist/DatePicker/DatePickerCell.js.map +1 -1
  210. package/dist/DatePicker/DatePickerCellTrigger.cjs.map +1 -1
  211. package/dist/DatePicker/DatePickerCellTrigger.js +1 -1
  212. package/dist/DatePicker/DatePickerCellTrigger.js.map +1 -1
  213. package/dist/DatePicker/DatePickerClose.cjs.map +1 -1
  214. package/dist/DatePicker/DatePickerClose.js +1 -1
  215. package/dist/DatePicker/DatePickerClose.js.map +1 -1
  216. package/dist/DatePicker/DatePickerContent.cjs.map +1 -1
  217. package/dist/DatePicker/DatePickerContent.js +1 -1
  218. package/dist/DatePicker/DatePickerContent.js.map +1 -1
  219. package/dist/DatePicker/DatePickerField.js +1 -1
  220. package/dist/DatePicker/DatePickerGrid.cjs.map +1 -1
  221. package/dist/DatePicker/DatePickerGrid.js +1 -1
  222. package/dist/DatePicker/DatePickerGrid.js.map +1 -1
  223. package/dist/DatePicker/DatePickerGridBody.cjs.map +1 -1
  224. package/dist/DatePicker/DatePickerGridBody.js +1 -1
  225. package/dist/DatePicker/DatePickerGridBody.js.map +1 -1
  226. package/dist/DatePicker/DatePickerGridHead.cjs.map +1 -1
  227. package/dist/DatePicker/DatePickerGridHead.js +1 -1
  228. package/dist/DatePicker/DatePickerGridHead.js.map +1 -1
  229. package/dist/DatePicker/DatePickerGridRow.cjs.map +1 -1
  230. package/dist/DatePicker/DatePickerGridRow.js +1 -1
  231. package/dist/DatePicker/DatePickerGridRow.js.map +1 -1
  232. package/dist/DatePicker/DatePickerHeadCell.cjs.map +1 -1
  233. package/dist/DatePicker/DatePickerHeadCell.js +1 -1
  234. package/dist/DatePicker/DatePickerHeadCell.js.map +1 -1
  235. package/dist/DatePicker/DatePickerHeader.cjs.map +1 -1
  236. package/dist/DatePicker/DatePickerHeader.js +1 -1
  237. package/dist/DatePicker/DatePickerHeader.js.map +1 -1
  238. package/dist/DatePicker/DatePickerHeading.cjs.map +1 -1
  239. package/dist/DatePicker/DatePickerHeading.js +1 -1
  240. package/dist/DatePicker/DatePickerHeading.js.map +1 -1
  241. package/dist/DatePicker/DatePickerInput.cjs.map +1 -1
  242. package/dist/DatePicker/DatePickerInput.js +1 -1
  243. package/dist/DatePicker/DatePickerInput.js.map +1 -1
  244. package/dist/DatePicker/DatePickerNext.cjs.map +1 -1
  245. package/dist/DatePicker/DatePickerNext.js +1 -1
  246. package/dist/DatePicker/DatePickerNext.js.map +1 -1
  247. package/dist/DatePicker/DatePickerPrev.cjs.map +1 -1
  248. package/dist/DatePicker/DatePickerPrev.js +1 -1
  249. package/dist/DatePicker/DatePickerPrev.js.map +1 -1
  250. package/dist/DatePicker/DatePickerRoot.cjs +11 -11
  251. package/dist/DatePicker/DatePickerRoot.cjs.map +1 -1
  252. package/dist/DatePicker/DatePickerRoot.js +12 -12
  253. package/dist/DatePicker/DatePickerRoot.js.map +1 -1
  254. package/dist/DatePicker/DatePickerTrigger.cjs.map +1 -1
  255. package/dist/DatePicker/DatePickerTrigger.js +1 -1
  256. package/dist/DatePicker/DatePickerTrigger.js.map +1 -1
  257. package/dist/DateRangeField/DateRangeFieldInput.cjs +5 -5
  258. package/dist/DateRangeField/DateRangeFieldInput.cjs.map +1 -1
  259. package/dist/DateRangeField/DateRangeFieldInput.js +6 -6
  260. package/dist/DateRangeField/DateRangeFieldInput.js.map +1 -1
  261. package/dist/DateRangeField/DateRangeFieldRoot.cjs +22 -18
  262. package/dist/DateRangeField/DateRangeFieldRoot.cjs.map +1 -1
  263. package/dist/DateRangeField/DateRangeFieldRoot.js +23 -19
  264. package/dist/DateRangeField/DateRangeFieldRoot.js.map +1 -1
  265. package/dist/DateRangePicker/DateRangePickerAnchor.cjs.map +1 -1
  266. package/dist/DateRangePicker/DateRangePickerAnchor.js +1 -1
  267. package/dist/DateRangePicker/DateRangePickerAnchor.js.map +1 -1
  268. package/dist/DateRangePicker/DateRangePickerArrow.cjs.map +1 -1
  269. package/dist/DateRangePicker/DateRangePickerArrow.js +1 -1
  270. package/dist/DateRangePicker/DateRangePickerArrow.js.map +1 -1
  271. package/dist/DateRangePicker/DateRangePickerCalendar.cjs +1 -0
  272. package/dist/DateRangePicker/DateRangePickerCalendar.cjs.map +1 -1
  273. package/dist/DateRangePicker/DateRangePickerCalendar.js +2 -1
  274. package/dist/DateRangePicker/DateRangePickerCalendar.js.map +1 -1
  275. package/dist/DateRangePicker/DateRangePickerCell.cjs.map +1 -1
  276. package/dist/DateRangePicker/DateRangePickerCell.js +1 -1
  277. package/dist/DateRangePicker/DateRangePickerCell.js.map +1 -1
  278. package/dist/DateRangePicker/DateRangePickerCellTrigger.js +1 -1
  279. package/dist/DateRangePicker/DateRangePickerClose.cjs.map +1 -1
  280. package/dist/DateRangePicker/DateRangePickerClose.js +1 -1
  281. package/dist/DateRangePicker/DateRangePickerClose.js.map +1 -1
  282. package/dist/DateRangePicker/DateRangePickerContent.cjs.map +1 -1
  283. package/dist/DateRangePicker/DateRangePickerContent.js +1 -1
  284. package/dist/DateRangePicker/DateRangePickerContent.js.map +1 -1
  285. package/dist/DateRangePicker/DateRangePickerField.js +1 -1
  286. package/dist/DateRangePicker/DateRangePickerGrid.cjs.map +1 -1
  287. package/dist/DateRangePicker/DateRangePickerGrid.js +1 -1
  288. package/dist/DateRangePicker/DateRangePickerGrid.js.map +1 -1
  289. package/dist/DateRangePicker/DateRangePickerGridBody.cjs.map +1 -1
  290. package/dist/DateRangePicker/DateRangePickerGridBody.js +1 -1
  291. package/dist/DateRangePicker/DateRangePickerGridBody.js.map +1 -1
  292. package/dist/DateRangePicker/DateRangePickerGridHead.cjs.map +1 -1
  293. package/dist/DateRangePicker/DateRangePickerGridHead.js +1 -1
  294. package/dist/DateRangePicker/DateRangePickerGridHead.js.map +1 -1
  295. package/dist/DateRangePicker/DateRangePickerGridRow.cjs.map +1 -1
  296. package/dist/DateRangePicker/DateRangePickerGridRow.js +1 -1
  297. package/dist/DateRangePicker/DateRangePickerGridRow.js.map +1 -1
  298. package/dist/DateRangePicker/DateRangePickerHeadCell.cjs.map +1 -1
  299. package/dist/DateRangePicker/DateRangePickerHeadCell.js +1 -1
  300. package/dist/DateRangePicker/DateRangePickerHeadCell.js.map +1 -1
  301. package/dist/DateRangePicker/DateRangePickerHeader.cjs.map +1 -1
  302. package/dist/DateRangePicker/DateRangePickerHeader.js +1 -1
  303. package/dist/DateRangePicker/DateRangePickerHeader.js.map +1 -1
  304. package/dist/DateRangePicker/DateRangePickerHeading.cjs.map +1 -1
  305. package/dist/DateRangePicker/DateRangePickerHeading.js +1 -1
  306. package/dist/DateRangePicker/DateRangePickerHeading.js.map +1 -1
  307. package/dist/DateRangePicker/DateRangePickerInput.cjs.map +1 -1
  308. package/dist/DateRangePicker/DateRangePickerInput.js +1 -1
  309. package/dist/DateRangePicker/DateRangePickerInput.js.map +1 -1
  310. package/dist/DateRangePicker/DateRangePickerNext.cjs.map +1 -1
  311. package/dist/DateRangePicker/DateRangePickerNext.js +1 -1
  312. package/dist/DateRangePicker/DateRangePickerNext.js.map +1 -1
  313. package/dist/DateRangePicker/DateRangePickerPrev.cjs.map +1 -1
  314. package/dist/DateRangePicker/DateRangePickerPrev.js +1 -1
  315. package/dist/DateRangePicker/DateRangePickerPrev.js.map +1 -1
  316. package/dist/DateRangePicker/DateRangePickerRoot.cjs +14 -11
  317. package/dist/DateRangePicker/DateRangePickerRoot.cjs.map +1 -1
  318. package/dist/DateRangePicker/DateRangePickerRoot.js +15 -12
  319. package/dist/DateRangePicker/DateRangePickerRoot.js.map +1 -1
  320. package/dist/DateRangePicker/DateRangePickerTrigger.cjs.map +1 -1
  321. package/dist/DateRangePicker/DateRangePickerTrigger.js +1 -1
  322. package/dist/DateRangePicker/DateRangePickerTrigger.js.map +1 -1
  323. package/dist/Dialog/DialogClose.cjs +2 -2
  324. package/dist/Dialog/DialogClose.cjs.map +1 -1
  325. package/dist/Dialog/DialogClose.js +3 -3
  326. package/dist/Dialog/DialogClose.js.map +1 -1
  327. package/dist/Dialog/DialogContent.cjs.map +1 -1
  328. package/dist/Dialog/DialogContent.js +1 -1
  329. package/dist/Dialog/DialogContent.js.map +1 -1
  330. package/dist/Dialog/DialogContentImpl.cjs +2 -2
  331. package/dist/Dialog/DialogContentImpl.cjs.map +1 -1
  332. package/dist/Dialog/DialogContentImpl.js +3 -3
  333. package/dist/Dialog/DialogContentImpl.js.map +1 -1
  334. package/dist/Dialog/DialogContentModal.cjs.map +1 -1
  335. package/dist/Dialog/DialogContentModal.js +1 -1
  336. package/dist/Dialog/DialogContentModal.js.map +1 -1
  337. package/dist/Dialog/DialogContentNonModal.cjs.map +1 -1
  338. package/dist/Dialog/DialogContentNonModal.js +1 -1
  339. package/dist/Dialog/DialogContentNonModal.js.map +1 -1
  340. package/dist/Dialog/DialogDescription.cjs.map +1 -1
  341. package/dist/Dialog/DialogDescription.js +1 -1
  342. package/dist/Dialog/DialogDescription.js.map +1 -1
  343. package/dist/Dialog/DialogOverlay.cjs.map +1 -1
  344. package/dist/Dialog/DialogOverlay.js +1 -1
  345. package/dist/Dialog/DialogOverlay.js.map +1 -1
  346. package/dist/Dialog/DialogOverlayImpl.cjs.map +1 -1
  347. package/dist/Dialog/DialogOverlayImpl.js +1 -1
  348. package/dist/Dialog/DialogOverlayImpl.js.map +1 -1
  349. package/dist/Dialog/DialogPortal.js +1 -1
  350. package/dist/Dialog/DialogRoot.cjs +2 -2
  351. package/dist/Dialog/DialogRoot.cjs.map +1 -1
  352. package/dist/Dialog/DialogRoot.js +2 -2
  353. package/dist/Dialog/DialogRoot.js.map +1 -1
  354. package/dist/Dialog/DialogTitle.cjs.map +1 -1
  355. package/dist/Dialog/DialogTitle.js +1 -1
  356. package/dist/Dialog/DialogTitle.js.map +1 -1
  357. package/dist/Dialog/DialogTrigger.cjs +4 -4
  358. package/dist/Dialog/DialogTrigger.cjs.map +1 -1
  359. package/dist/Dialog/DialogTrigger.js +5 -5
  360. package/dist/Dialog/DialogTrigger.js.map +1 -1
  361. package/dist/Dialog/utils.cjs.map +1 -1
  362. package/dist/Dialog/utils.js.map +1 -1
  363. package/dist/DismissableLayer/DismissableLayer.cjs +1 -1
  364. package/dist/DismissableLayer/DismissableLayer.cjs.map +1 -1
  365. package/dist/DismissableLayer/DismissableLayer.js +2 -2
  366. package/dist/DismissableLayer/DismissableLayer.js.map +1 -1
  367. package/dist/DismissableLayer/DismissableLayerBranch.js +1 -1
  368. package/dist/DismissableLayer/utils.cjs +5 -3
  369. package/dist/DismissableLayer/utils.cjs.map +1 -1
  370. package/dist/DismissableLayer/utils.js +5 -3
  371. package/dist/DismissableLayer/utils.js.map +1 -1
  372. package/dist/DropdownMenu/DropdownMenuArrow.js +1 -1
  373. package/dist/DropdownMenu/DropdownMenuCheckboxItem.js +1 -1
  374. package/dist/DropdownMenu/DropdownMenuContent.cjs +2 -2
  375. package/dist/DropdownMenu/DropdownMenuContent.cjs.map +1 -1
  376. package/dist/DropdownMenu/DropdownMenuContent.js +3 -3
  377. package/dist/DropdownMenu/DropdownMenuContent.js.map +1 -1
  378. package/dist/DropdownMenu/DropdownMenuGroup.js +1 -1
  379. package/dist/DropdownMenu/DropdownMenuItem.js +1 -1
  380. package/dist/DropdownMenu/DropdownMenuItemIndicator.js +1 -1
  381. package/dist/DropdownMenu/DropdownMenuLabel.js +1 -1
  382. package/dist/DropdownMenu/DropdownMenuPortal.js +1 -1
  383. package/dist/DropdownMenu/DropdownMenuRadioGroup.js +1 -1
  384. package/dist/DropdownMenu/DropdownMenuRadioItem.js +1 -1
  385. package/dist/DropdownMenu/DropdownMenuRoot.cjs +4 -4
  386. package/dist/DropdownMenu/DropdownMenuRoot.cjs.map +1 -1
  387. package/dist/DropdownMenu/DropdownMenuRoot.js +5 -5
  388. package/dist/DropdownMenu/DropdownMenuRoot.js.map +1 -1
  389. package/dist/DropdownMenu/DropdownMenuSeparator.js +1 -1
  390. package/dist/DropdownMenu/DropdownMenuSub.cjs +3 -3
  391. package/dist/DropdownMenu/DropdownMenuSub.cjs.map +1 -1
  392. package/dist/DropdownMenu/DropdownMenuSub.js +4 -4
  393. package/dist/DropdownMenu/DropdownMenuSub.js.map +1 -1
  394. package/dist/DropdownMenu/DropdownMenuSubContent.js +1 -1
  395. package/dist/DropdownMenu/DropdownMenuSubTrigger.js +1 -1
  396. package/dist/DropdownMenu/DropdownMenuTrigger.cjs +5 -5
  397. package/dist/DropdownMenu/DropdownMenuTrigger.cjs.map +1 -1
  398. package/dist/DropdownMenu/DropdownMenuTrigger.js +6 -6
  399. package/dist/DropdownMenu/DropdownMenuTrigger.js.map +1 -1
  400. package/dist/Editable/EditableArea.cjs +7 -7
  401. package/dist/Editable/EditableArea.js +8 -8
  402. package/dist/Editable/EditableCancelTrigger.cjs +4 -4
  403. package/dist/Editable/EditableCancelTrigger.js +5 -5
  404. package/dist/Editable/EditableEditTrigger.cjs +4 -4
  405. package/dist/Editable/EditableEditTrigger.js +5 -5
  406. package/dist/Editable/EditableInput.cjs +4 -4
  407. package/dist/Editable/EditableInput.cjs.map +1 -1
  408. package/dist/Editable/EditableInput.js +5 -5
  409. package/dist/Editable/EditableInput.js.map +1 -1
  410. package/dist/Editable/EditablePreview.cjs +4 -4
  411. package/dist/Editable/EditablePreview.cjs.map +1 -1
  412. package/dist/Editable/EditablePreview.js +5 -5
  413. package/dist/Editable/EditablePreview.js.map +1 -1
  414. package/dist/Editable/EditableRoot.cjs +2 -2
  415. package/dist/Editable/EditableRoot.cjs.map +1 -1
  416. package/dist/Editable/EditableRoot.js +3 -3
  417. package/dist/Editable/EditableRoot.js.map +1 -1
  418. package/dist/Editable/EditableSubmitTrigger.cjs +4 -4
  419. package/dist/Editable/EditableSubmitTrigger.js +5 -5
  420. package/dist/FocusScope/FocusScope.cjs +1 -1
  421. package/dist/FocusScope/FocusScope.cjs.map +1 -1
  422. package/dist/FocusScope/FocusScope.js +2 -2
  423. package/dist/FocusScope/FocusScope.js.map +1 -1
  424. package/dist/FocusScope/utils.cjs +1 -1
  425. package/dist/FocusScope/utils.cjs.map +1 -1
  426. package/dist/FocusScope/utils.js +1 -1
  427. package/dist/FocusScope/utils.js.map +1 -1
  428. package/dist/HoverCard/HoverCardArrow.js +1 -1
  429. package/dist/HoverCard/HoverCardContent.cjs +1 -1
  430. package/dist/HoverCard/HoverCardContent.cjs.map +1 -1
  431. package/dist/HoverCard/HoverCardContent.js +2 -2
  432. package/dist/HoverCard/HoverCardContent.js.map +1 -1
  433. package/dist/HoverCard/HoverCardContentImpl.cjs +5 -5
  434. package/dist/HoverCard/HoverCardContentImpl.cjs.map +1 -1
  435. package/dist/HoverCard/HoverCardContentImpl.js +6 -6
  436. package/dist/HoverCard/HoverCardContentImpl.js.map +1 -1
  437. package/dist/HoverCard/HoverCardPortal.js +1 -1
  438. package/dist/HoverCard/HoverCardRoot.cjs +4 -4
  439. package/dist/HoverCard/HoverCardRoot.cjs.map +1 -1
  440. package/dist/HoverCard/HoverCardRoot.js +5 -5
  441. package/dist/HoverCard/HoverCardRoot.js.map +1 -1
  442. package/dist/HoverCard/HoverCardTrigger.cjs +1 -1
  443. package/dist/HoverCard/HoverCardTrigger.cjs.map +1 -1
  444. package/dist/HoverCard/HoverCardTrigger.js +2 -2
  445. package/dist/HoverCard/HoverCardTrigger.js.map +1 -1
  446. package/dist/HoverCard/utils.cjs +1 -1
  447. package/dist/HoverCard/utils.cjs.map +1 -1
  448. package/dist/HoverCard/utils.js +1 -1
  449. package/dist/HoverCard/utils.js.map +1 -1
  450. package/dist/Label/Label.js +1 -1
  451. package/dist/Listbox/ListboxContent.cjs +3 -3
  452. package/dist/Listbox/ListboxContent.cjs.map +1 -1
  453. package/dist/Listbox/ListboxContent.js +4 -4
  454. package/dist/Listbox/ListboxContent.js.map +1 -1
  455. package/dist/Listbox/ListboxFilter.cjs +8 -5
  456. package/dist/Listbox/ListboxFilter.cjs.map +1 -1
  457. package/dist/Listbox/ListboxFilter.js +9 -6
  458. package/dist/Listbox/ListboxFilter.js.map +1 -1
  459. package/dist/Listbox/ListboxGroup.cjs +2 -2
  460. package/dist/Listbox/ListboxGroup.cjs.map +1 -1
  461. package/dist/Listbox/ListboxGroup.js +3 -3
  462. package/dist/Listbox/ListboxGroup.js.map +1 -1
  463. package/dist/Listbox/ListboxGroupLabel.js +1 -1
  464. package/dist/Listbox/ListboxItem.cjs +7 -7
  465. package/dist/Listbox/ListboxItem.cjs.map +1 -1
  466. package/dist/Listbox/ListboxItem.js +8 -8
  467. package/dist/Listbox/ListboxItem.js.map +1 -1
  468. package/dist/Listbox/ListboxItemIndicator.cjs.map +1 -1
  469. package/dist/Listbox/ListboxItemIndicator.js +1 -1
  470. package/dist/Listbox/ListboxItemIndicator.js.map +1 -1
  471. package/dist/Listbox/ListboxRoot.cjs +8 -8
  472. package/dist/Listbox/ListboxRoot.cjs.map +1 -1
  473. package/dist/Listbox/ListboxRoot.js +9 -9
  474. package/dist/Listbox/ListboxRoot.js.map +1 -1
  475. package/dist/Listbox/ListboxVirtualizer.cjs +4 -4
  476. package/dist/Listbox/ListboxVirtualizer.cjs.map +1 -1
  477. package/dist/Listbox/ListboxVirtualizer.js +5 -5
  478. package/dist/Listbox/ListboxVirtualizer.js.map +1 -1
  479. package/dist/Listbox/utils.cjs +2 -2
  480. package/dist/Listbox/utils.cjs.map +1 -1
  481. package/dist/Listbox/utils.js +2 -2
  482. package/dist/Listbox/utils.js.map +1 -1
  483. package/dist/Menu/MenuAnchor.cjs.map +1 -1
  484. package/dist/Menu/MenuAnchor.js +1 -1
  485. package/dist/Menu/MenuAnchor.js.map +1 -1
  486. package/dist/Menu/MenuArrow.js +1 -1
  487. package/dist/Menu/MenuCheckboxItem.cjs +1 -1
  488. package/dist/Menu/MenuCheckboxItem.cjs.map +1 -1
  489. package/dist/Menu/MenuCheckboxItem.js +2 -2
  490. package/dist/Menu/MenuCheckboxItem.js.map +1 -1
  491. package/dist/Menu/MenuContent.cjs.map +1 -1
  492. package/dist/Menu/MenuContent.js +1 -1
  493. package/dist/Menu/MenuContent.js.map +1 -1
  494. package/dist/Menu/MenuContentImpl.cjs +3 -3
  495. package/dist/Menu/MenuContentImpl.cjs.map +1 -1
  496. package/dist/Menu/MenuContentImpl.js +5 -5
  497. package/dist/Menu/MenuContentImpl.js.map +1 -1
  498. package/dist/Menu/MenuGroup.js +1 -1
  499. package/dist/Menu/MenuItem.cjs.map +1 -1
  500. package/dist/Menu/MenuItem.js +1 -1
  501. package/dist/Menu/MenuItem.js.map +1 -1
  502. package/dist/Menu/MenuItemImpl.cjs +4 -4
  503. package/dist/Menu/MenuItemImpl.cjs.map +1 -1
  504. package/dist/Menu/MenuItemImpl.js +5 -5
  505. package/dist/Menu/MenuItemImpl.js.map +1 -1
  506. package/dist/Menu/MenuItemIndicator.cjs +1 -1
  507. package/dist/Menu/MenuItemIndicator.cjs.map +1 -1
  508. package/dist/Menu/MenuItemIndicator.js +2 -2
  509. package/dist/Menu/MenuItemIndicator.js.map +1 -1
  510. package/dist/Menu/MenuLabel.js +1 -1
  511. package/dist/Menu/MenuPortal.js +1 -1
  512. package/dist/Menu/MenuRadioGroup.js +1 -1
  513. package/dist/Menu/MenuRadioItem.cjs +1 -1
  514. package/dist/Menu/MenuRadioItem.cjs.map +1 -1
  515. package/dist/Menu/MenuRadioItem.js +2 -2
  516. package/dist/Menu/MenuRadioItem.js.map +1 -1
  517. package/dist/Menu/MenuRoot.cjs +2 -2
  518. package/dist/Menu/MenuRoot.cjs.map +1 -1
  519. package/dist/Menu/MenuRoot.js +3 -3
  520. package/dist/Menu/MenuRoot.js.map +1 -1
  521. package/dist/Menu/MenuRootContentModal.cjs.map +1 -1
  522. package/dist/Menu/MenuRootContentModal.js +1 -1
  523. package/dist/Menu/MenuRootContentModal.js.map +1 -1
  524. package/dist/Menu/MenuRootContentNonModal.cjs.map +1 -1
  525. package/dist/Menu/MenuRootContentNonModal.js +1 -1
  526. package/dist/Menu/MenuRootContentNonModal.js.map +1 -1
  527. package/dist/Menu/MenuSeparator.js +1 -1
  528. package/dist/Menu/MenuSub.cjs +3 -3
  529. package/dist/Menu/MenuSub.cjs.map +1 -1
  530. package/dist/Menu/MenuSub.js +4 -4
  531. package/dist/Menu/MenuSub.js.map +1 -1
  532. package/dist/Menu/MenuSubContent.cjs +1 -1
  533. package/dist/Menu/MenuSubContent.cjs.map +1 -1
  534. package/dist/Menu/MenuSubContent.js +2 -2
  535. package/dist/Menu/MenuSubContent.js.map +1 -1
  536. package/dist/Menu/MenuSubTrigger.cjs +3 -3
  537. package/dist/Menu/MenuSubTrigger.cjs.map +1 -1
  538. package/dist/Menu/MenuSubTrigger.js +4 -4
  539. package/dist/Menu/MenuSubTrigger.js.map +1 -1
  540. package/dist/Menubar/MenubarArrow.js +1 -1
  541. package/dist/Menubar/MenubarCheckboxItem.js +1 -1
  542. package/dist/Menubar/MenubarContent.cjs +2 -2
  543. package/dist/Menubar/MenubarContent.cjs.map +1 -1
  544. package/dist/Menubar/MenubarContent.js +3 -3
  545. package/dist/Menubar/MenubarContent.js.map +1 -1
  546. package/dist/Menubar/MenubarGroup.cjs.map +1 -1
  547. package/dist/Menubar/MenubarGroup.js +1 -1
  548. package/dist/Menubar/MenubarGroup.js.map +1 -1
  549. package/dist/Menubar/MenubarItem.js +1 -1
  550. package/dist/Menubar/MenubarItemIndicator.js +1 -1
  551. package/dist/Menubar/MenubarLabel.js +1 -1
  552. package/dist/Menubar/MenubarMenu.cjs +1 -1
  553. package/dist/Menubar/MenubarMenu.cjs.map +1 -1
  554. package/dist/Menubar/MenubarMenu.js +2 -2
  555. package/dist/Menubar/MenubarMenu.js.map +1 -1
  556. package/dist/Menubar/MenubarPortal.js +1 -1
  557. package/dist/Menubar/MenubarRadioGroup.js +1 -1
  558. package/dist/Menubar/MenubarRadioItem.js +1 -1
  559. package/dist/Menubar/MenubarRoot.cjs +3 -3
  560. package/dist/Menubar/MenubarRoot.cjs.map +1 -1
  561. package/dist/Menubar/MenubarRoot.js +4 -4
  562. package/dist/Menubar/MenubarRoot.js.map +1 -1
  563. package/dist/Menubar/MenubarSeparator.js +1 -1
  564. package/dist/Menubar/MenubarSub.cjs +3 -3
  565. package/dist/Menubar/MenubarSub.cjs.map +1 -1
  566. package/dist/Menubar/MenubarSub.js +4 -4
  567. package/dist/Menubar/MenubarSub.js.map +1 -1
  568. package/dist/Menubar/MenubarSubContent.cjs.map +1 -1
  569. package/dist/Menubar/MenubarSubContent.js +1 -1
  570. package/dist/Menubar/MenubarSubContent.js.map +1 -1
  571. package/dist/Menubar/MenubarSubTrigger.js +1 -1
  572. package/dist/Menubar/MenubarTrigger.cjs +6 -6
  573. package/dist/Menubar/MenubarTrigger.cjs.map +1 -1
  574. package/dist/Menubar/MenubarTrigger.js +7 -7
  575. package/dist/Menubar/MenubarTrigger.js.map +1 -1
  576. package/dist/NavigationMenu/NavigationMenuContent.cjs +2 -2
  577. package/dist/NavigationMenu/NavigationMenuContent.cjs.map +1 -1
  578. package/dist/NavigationMenu/NavigationMenuContent.js +3 -3
  579. package/dist/NavigationMenu/NavigationMenuContent.js.map +1 -1
  580. package/dist/NavigationMenu/NavigationMenuContentImpl.cjs +2 -2
  581. package/dist/NavigationMenu/NavigationMenuContentImpl.cjs.map +1 -1
  582. package/dist/NavigationMenu/NavigationMenuContentImpl.js +3 -3
  583. package/dist/NavigationMenu/NavigationMenuContentImpl.js.map +1 -1
  584. package/dist/NavigationMenu/NavigationMenuIndicator.cjs.map +1 -1
  585. package/dist/NavigationMenu/NavigationMenuIndicator.js +1 -1
  586. package/dist/NavigationMenu/NavigationMenuIndicator.js.map +1 -1
  587. package/dist/NavigationMenu/NavigationMenuItem.cjs +2 -2
  588. package/dist/NavigationMenu/NavigationMenuItem.cjs.map +1 -1
  589. package/dist/NavigationMenu/NavigationMenuItem.js +3 -3
  590. package/dist/NavigationMenu/NavigationMenuItem.js.map +1 -1
  591. package/dist/NavigationMenu/NavigationMenuLink.cjs +2 -2
  592. package/dist/NavigationMenu/NavigationMenuLink.cjs.map +1 -1
  593. package/dist/NavigationMenu/NavigationMenuLink.js +3 -3
  594. package/dist/NavigationMenu/NavigationMenuLink.js.map +1 -1
  595. package/dist/NavigationMenu/NavigationMenuList.cjs.map +1 -1
  596. package/dist/NavigationMenu/NavigationMenuList.js +1 -1
  597. package/dist/NavigationMenu/NavigationMenuList.js.map +1 -1
  598. package/dist/NavigationMenu/NavigationMenuRoot.cjs +4 -4
  599. package/dist/NavigationMenu/NavigationMenuRoot.cjs.map +1 -1
  600. package/dist/NavigationMenu/NavigationMenuRoot.js +5 -5
  601. package/dist/NavigationMenu/NavigationMenuRoot.js.map +1 -1
  602. package/dist/NavigationMenu/NavigationMenuSub.cjs +1 -1
  603. package/dist/NavigationMenu/NavigationMenuSub.cjs.map +1 -1
  604. package/dist/NavigationMenu/NavigationMenuSub.js +2 -2
  605. package/dist/NavigationMenu/NavigationMenuSub.js.map +1 -1
  606. package/dist/NavigationMenu/NavigationMenuTrigger.cjs +2 -2
  607. package/dist/NavigationMenu/NavigationMenuTrigger.cjs.map +1 -1
  608. package/dist/NavigationMenu/NavigationMenuTrigger.js +3 -3
  609. package/dist/NavigationMenu/NavigationMenuTrigger.js.map +1 -1
  610. package/dist/NavigationMenu/NavigationMenuViewport.cjs +7 -7
  611. package/dist/NavigationMenu/NavigationMenuViewport.cjs.map +1 -1
  612. package/dist/NavigationMenu/NavigationMenuViewport.js +9 -9
  613. package/dist/NavigationMenu/NavigationMenuViewport.js.map +1 -1
  614. package/dist/NavigationMenu/utils.cjs +1 -1
  615. package/dist/NavigationMenu/utils.cjs.map +1 -1
  616. package/dist/NavigationMenu/utils.js +1 -1
  617. package/dist/NavigationMenu/utils.js.map +1 -1
  618. package/dist/NumberField/NumberFieldDecrement.cjs +6 -6
  619. package/dist/NumberField/NumberFieldDecrement.cjs.map +1 -1
  620. package/dist/NumberField/NumberFieldDecrement.js +7 -7
  621. package/dist/NumberField/NumberFieldDecrement.js.map +1 -1
  622. package/dist/NumberField/NumberFieldIncrement.cjs +5 -5
  623. package/dist/NumberField/NumberFieldIncrement.cjs.map +1 -1
  624. package/dist/NumberField/NumberFieldIncrement.js +6 -6
  625. package/dist/NumberField/NumberFieldIncrement.js.map +1 -1
  626. package/dist/NumberField/NumberFieldInput.cjs +4 -4
  627. package/dist/NumberField/NumberFieldInput.cjs.map +1 -1
  628. package/dist/NumberField/NumberFieldInput.js +5 -5
  629. package/dist/NumberField/NumberFieldInput.js.map +1 -1
  630. package/dist/NumberField/NumberFieldRoot.cjs +7 -7
  631. package/dist/NumberField/NumberFieldRoot.cjs.map +1 -1
  632. package/dist/NumberField/NumberFieldRoot.js +8 -8
  633. package/dist/NumberField/NumberFieldRoot.js.map +1 -1
  634. package/dist/NumberField/utils.cjs.map +1 -1
  635. package/dist/NumberField/utils.js.map +1 -1
  636. package/dist/Pagination/PaginationEllipsis.js +1 -1
  637. package/dist/Pagination/PaginationFirst.cjs +1 -1
  638. package/dist/Pagination/PaginationFirst.cjs.map +1 -1
  639. package/dist/Pagination/PaginationFirst.js +2 -2
  640. package/dist/Pagination/PaginationFirst.js.map +1 -1
  641. package/dist/Pagination/PaginationLast.cjs +1 -1
  642. package/dist/Pagination/PaginationLast.cjs.map +1 -1
  643. package/dist/Pagination/PaginationLast.js +2 -2
  644. package/dist/Pagination/PaginationLast.js.map +1 -1
  645. package/dist/Pagination/PaginationList.js +1 -1
  646. package/dist/Pagination/PaginationListItem.cjs +3 -3
  647. package/dist/Pagination/PaginationListItem.cjs.map +1 -1
  648. package/dist/Pagination/PaginationListItem.js +4 -4
  649. package/dist/Pagination/PaginationListItem.js.map +1 -1
  650. package/dist/Pagination/PaginationNext.cjs +1 -1
  651. package/dist/Pagination/PaginationNext.cjs.map +1 -1
  652. package/dist/Pagination/PaginationNext.js +2 -2
  653. package/dist/Pagination/PaginationNext.js.map +1 -1
  654. package/dist/Pagination/PaginationPrev.cjs +1 -1
  655. package/dist/Pagination/PaginationPrev.cjs.map +1 -1
  656. package/dist/Pagination/PaginationPrev.js +2 -2
  657. package/dist/Pagination/PaginationPrev.js.map +1 -1
  658. package/dist/Pagination/PaginationRoot.cjs +2 -2
  659. package/dist/Pagination/PaginationRoot.cjs.map +1 -1
  660. package/dist/Pagination/PaginationRoot.js +3 -3
  661. package/dist/Pagination/PaginationRoot.js.map +1 -1
  662. package/dist/Pagination/utils.cjs.map +1 -1
  663. package/dist/Pagination/utils.js.map +1 -1
  664. package/dist/PinInput/PinInputInput.cjs +4 -4
  665. package/dist/PinInput/PinInputInput.cjs.map +1 -1
  666. package/dist/PinInput/PinInputInput.js +5 -5
  667. package/dist/PinInput/PinInputInput.js.map +1 -1
  668. package/dist/PinInput/PinInputRoot.cjs +4 -4
  669. package/dist/PinInput/PinInputRoot.cjs.map +1 -1
  670. package/dist/PinInput/PinInputRoot.js +5 -5
  671. package/dist/PinInput/PinInputRoot.js.map +1 -1
  672. package/dist/Popover/PopoverAnchor.cjs.map +1 -1
  673. package/dist/Popover/PopoverAnchor.js +1 -1
  674. package/dist/Popover/PopoverAnchor.js.map +1 -1
  675. package/dist/Popover/PopoverArrow.js +1 -1
  676. package/dist/Popover/PopoverClose.cjs +1 -1
  677. package/dist/Popover/PopoverClose.cjs.map +1 -1
  678. package/dist/Popover/PopoverClose.js +2 -2
  679. package/dist/Popover/PopoverClose.js.map +1 -1
  680. package/dist/Popover/PopoverContent.cjs +1 -1
  681. package/dist/Popover/PopoverContent.cjs.map +1 -1
  682. package/dist/Popover/PopoverContent.js +2 -2
  683. package/dist/Popover/PopoverContent.js.map +1 -1
  684. package/dist/Popover/PopoverContentImpl.cjs +1 -1
  685. package/dist/Popover/PopoverContentImpl.cjs.map +1 -1
  686. package/dist/Popover/PopoverContentImpl.js +2 -2
  687. package/dist/Popover/PopoverContentImpl.js.map +1 -1
  688. package/dist/Popover/PopoverContentModal.cjs +1 -1
  689. package/dist/Popover/PopoverContentModal.cjs.map +1 -1
  690. package/dist/Popover/PopoverContentModal.js +2 -2
  691. package/dist/Popover/PopoverContentModal.js.map +1 -1
  692. package/dist/Popover/PopoverContentNonModal.cjs.map +1 -1
  693. package/dist/Popover/PopoverContentNonModal.js +1 -1
  694. package/dist/Popover/PopoverContentNonModal.js.map +1 -1
  695. package/dist/Popover/PopoverPortal.js +1 -1
  696. package/dist/Popover/PopoverRoot.cjs +3 -3
  697. package/dist/Popover/PopoverRoot.cjs.map +1 -1
  698. package/dist/Popover/PopoverRoot.js +4 -4
  699. package/dist/Popover/PopoverRoot.js.map +1 -1
  700. package/dist/Popover/PopoverTrigger.cjs +3 -3
  701. package/dist/Popover/PopoverTrigger.cjs.map +1 -1
  702. package/dist/Popover/PopoverTrigger.js +4 -4
  703. package/dist/Popover/PopoverTrigger.js.map +1 -1
  704. package/dist/Popper/PopperAnchor.cjs.map +1 -1
  705. package/dist/Popper/PopperAnchor.js +1 -1
  706. package/dist/Popper/PopperAnchor.js.map +1 -1
  707. package/dist/Popper/PopperArrow.cjs +4 -4
  708. package/dist/Popper/PopperArrow.cjs.map +1 -1
  709. package/dist/Popper/PopperArrow.js +5 -5
  710. package/dist/Popper/PopperArrow.js.map +1 -1
  711. package/dist/Popper/PopperContent.cjs +4 -4
  712. package/dist/Popper/PopperContent.cjs.map +1 -1
  713. package/dist/Popper/PopperContent.js +5 -5
  714. package/dist/Popper/PopperContent.js.map +1 -1
  715. package/dist/Popper/PopperRoot.cjs.map +1 -1
  716. package/dist/Popper/PopperRoot.js.map +1 -1
  717. package/dist/Presence/Presence.cjs +1 -1
  718. package/dist/Presence/Presence.cjs.map +1 -1
  719. package/dist/Presence/Presence.js +1 -1
  720. package/dist/Presence/Presence.js.map +1 -1
  721. package/dist/Presence/usePresence.cjs +4 -4
  722. package/dist/Presence/usePresence.cjs.map +1 -1
  723. package/dist/Presence/usePresence.js +4 -4
  724. package/dist/Presence/usePresence.js.map +1 -1
  725. package/dist/Primitive/Primitive.cjs +1 -1
  726. package/dist/Primitive/Primitive.cjs.map +1 -1
  727. package/dist/Primitive/Primitive.js +1 -1
  728. package/dist/Primitive/Primitive.js.map +1 -1
  729. package/dist/Primitive/Slot.cjs.map +1 -1
  730. package/dist/Primitive/Slot.js.map +1 -1
  731. package/dist/Primitive/usePrimitiveElement.cjs.map +1 -1
  732. package/dist/Primitive/usePrimitiveElement.js.map +1 -1
  733. package/dist/Progress/ProgressIndicator.cjs +1 -1
  734. package/dist/Progress/ProgressIndicator.cjs.map +1 -1
  735. package/dist/Progress/ProgressIndicator.js +2 -2
  736. package/dist/Progress/ProgressIndicator.js.map +1 -1
  737. package/dist/Progress/ProgressRoot.cjs +5 -5
  738. package/dist/Progress/ProgressRoot.cjs.map +1 -1
  739. package/dist/Progress/ProgressRoot.js +6 -6
  740. package/dist/Progress/ProgressRoot.js.map +1 -1
  741. package/dist/RadioGroup/Radio.cjs +6 -6
  742. package/dist/RadioGroup/Radio.cjs.map +1 -1
  743. package/dist/RadioGroup/Radio.js +7 -7
  744. package/dist/RadioGroup/Radio.js.map +1 -1
  745. package/dist/RadioGroup/RadioGroupIndicator.cjs +1 -1
  746. package/dist/RadioGroup/RadioGroupIndicator.cjs.map +1 -1
  747. package/dist/RadioGroup/RadioGroupIndicator.js +2 -2
  748. package/dist/RadioGroup/RadioGroupIndicator.js.map +1 -1
  749. package/dist/RadioGroup/RadioGroupItem.cjs +3 -3
  750. package/dist/RadioGroup/RadioGroupItem.cjs.map +1 -1
  751. package/dist/RadioGroup/RadioGroupItem.js +4 -4
  752. package/dist/RadioGroup/RadioGroupItem.js.map +1 -1
  753. package/dist/RadioGroup/RadioGroupRoot.cjs +5 -5
  754. package/dist/RadioGroup/RadioGroupRoot.cjs.map +1 -1
  755. package/dist/RadioGroup/RadioGroupRoot.js +6 -6
  756. package/dist/RadioGroup/RadioGroupRoot.js.map +1 -1
  757. package/dist/RadioGroup/utils.cjs.map +1 -1
  758. package/dist/RadioGroup/utils.js.map +1 -1
  759. package/dist/RangeCalendar/RangeCalendarCell.cjs +3 -3
  760. package/dist/RangeCalendar/RangeCalendarCell.js +4 -4
  761. package/dist/RangeCalendar/RangeCalendarCellTrigger.cjs +85 -61
  762. package/dist/RangeCalendar/RangeCalendarCellTrigger.cjs.map +1 -1
  763. package/dist/RangeCalendar/RangeCalendarCellTrigger.js +86 -62
  764. package/dist/RangeCalendar/RangeCalendarCellTrigger.js.map +1 -1
  765. package/dist/RangeCalendar/RangeCalendarGrid.cjs +2 -2
  766. package/dist/RangeCalendar/RangeCalendarGrid.cjs.map +1 -1
  767. package/dist/RangeCalendar/RangeCalendarGrid.js +3 -3
  768. package/dist/RangeCalendar/RangeCalendarGrid.js.map +1 -1
  769. package/dist/RangeCalendar/RangeCalendarGridBody.js +1 -1
  770. package/dist/RangeCalendar/RangeCalendarGridHead.js +1 -1
  771. package/dist/RangeCalendar/RangeCalendarGridRow.js +1 -1
  772. package/dist/RangeCalendar/RangeCalendarHeadCell.js +1 -1
  773. package/dist/RangeCalendar/RangeCalendarHeader.js +1 -1
  774. package/dist/RangeCalendar/RangeCalendarHeading.cjs +2 -2
  775. package/dist/RangeCalendar/RangeCalendarHeading.js +3 -3
  776. package/dist/RangeCalendar/RangeCalendarNext.cjs +3 -3
  777. package/dist/RangeCalendar/RangeCalendarNext.cjs.map +1 -1
  778. package/dist/RangeCalendar/RangeCalendarNext.js +4 -4
  779. package/dist/RangeCalendar/RangeCalendarNext.js.map +1 -1
  780. package/dist/RangeCalendar/RangeCalendarPrev.cjs +3 -3
  781. package/dist/RangeCalendar/RangeCalendarPrev.cjs.map +1 -1
  782. package/dist/RangeCalendar/RangeCalendarPrev.js +4 -4
  783. package/dist/RangeCalendar/RangeCalendarPrev.js.map +1 -1
  784. package/dist/RangeCalendar/RangeCalendarRoot.cjs +24 -17
  785. package/dist/RangeCalendar/RangeCalendarRoot.cjs.map +1 -1
  786. package/dist/RangeCalendar/RangeCalendarRoot.js +25 -18
  787. package/dist/RangeCalendar/RangeCalendarRoot.js.map +1 -1
  788. package/dist/RangeCalendar/useRangeCalendar.cjs +8 -2
  789. package/dist/RangeCalendar/useRangeCalendar.cjs.map +1 -1
  790. package/dist/RangeCalendar/useRangeCalendar.js +8 -2
  791. package/dist/RangeCalendar/useRangeCalendar.js.map +1 -1
  792. package/dist/RovingFocus/RovingFocusGroup.cjs +5 -5
  793. package/dist/RovingFocus/RovingFocusGroup.cjs.map +1 -1
  794. package/dist/RovingFocus/RovingFocusGroup.js +6 -6
  795. package/dist/RovingFocus/RovingFocusGroup.js.map +1 -1
  796. package/dist/RovingFocus/RovingFocusItem.cjs +5 -5
  797. package/dist/RovingFocus/RovingFocusItem.cjs.map +1 -1
  798. package/dist/RovingFocus/RovingFocusItem.js +6 -6
  799. package/dist/RovingFocus/RovingFocusItem.js.map +1 -1
  800. package/dist/RovingFocus/utils.cjs +2 -2
  801. package/dist/RovingFocus/utils.cjs.map +1 -1
  802. package/dist/RovingFocus/utils.js +2 -2
  803. package/dist/RovingFocus/utils.js.map +1 -1
  804. package/dist/ScrollArea/ScrollAreaCorner.cjs.map +1 -1
  805. package/dist/ScrollArea/ScrollAreaCorner.js +1 -1
  806. package/dist/ScrollArea/ScrollAreaCorner.js.map +1 -1
  807. package/dist/ScrollArea/ScrollAreaCornerImpl.cjs +3 -3
  808. package/dist/ScrollArea/ScrollAreaCornerImpl.cjs.map +1 -1
  809. package/dist/ScrollArea/ScrollAreaCornerImpl.js +4 -4
  810. package/dist/ScrollArea/ScrollAreaCornerImpl.js.map +1 -1
  811. package/dist/ScrollArea/ScrollAreaRoot.cjs +4 -4
  812. package/dist/ScrollArea/ScrollAreaRoot.cjs.map +1 -1
  813. package/dist/ScrollArea/ScrollAreaRoot.js +5 -5
  814. package/dist/ScrollArea/ScrollAreaRoot.js.map +1 -1
  815. package/dist/ScrollArea/ScrollAreaScrollbar.cjs +2 -2
  816. package/dist/ScrollArea/ScrollAreaScrollbar.cjs.map +1 -1
  817. package/dist/ScrollArea/ScrollAreaScrollbar.js +3 -3
  818. package/dist/ScrollArea/ScrollAreaScrollbar.js.map +1 -1
  819. package/dist/ScrollArea/ScrollAreaScrollbarAuto.cjs.map +1 -1
  820. package/dist/ScrollArea/ScrollAreaScrollbarAuto.js +1 -1
  821. package/dist/ScrollArea/ScrollAreaScrollbarAuto.js.map +1 -1
  822. package/dist/ScrollArea/ScrollAreaScrollbarHover.cjs.map +1 -1
  823. package/dist/ScrollArea/ScrollAreaScrollbarHover.js +1 -1
  824. package/dist/ScrollArea/ScrollAreaScrollbarHover.js.map +1 -1
  825. package/dist/ScrollArea/ScrollAreaScrollbarImpl.cjs +1 -1
  826. package/dist/ScrollArea/ScrollAreaScrollbarImpl.cjs.map +1 -1
  827. package/dist/ScrollArea/ScrollAreaScrollbarImpl.js +2 -2
  828. package/dist/ScrollArea/ScrollAreaScrollbarImpl.js.map +1 -1
  829. package/dist/ScrollArea/ScrollAreaScrollbarScroll.cjs.map +1 -1
  830. package/dist/ScrollArea/ScrollAreaScrollbarScroll.js +1 -1
  831. package/dist/ScrollArea/ScrollAreaScrollbarScroll.js.map +1 -1
  832. package/dist/ScrollArea/ScrollAreaScrollbarVisible.cjs.map +1 -1
  833. package/dist/ScrollArea/ScrollAreaScrollbarVisible.js +1 -1
  834. package/dist/ScrollArea/ScrollAreaScrollbarVisible.js.map +1 -1
  835. package/dist/ScrollArea/ScrollAreaScrollbarX.cjs +1 -1
  836. package/dist/ScrollArea/ScrollAreaScrollbarX.cjs.map +1 -1
  837. package/dist/ScrollArea/ScrollAreaScrollbarX.js +2 -2
  838. package/dist/ScrollArea/ScrollAreaScrollbarX.js.map +1 -1
  839. package/dist/ScrollArea/ScrollAreaScrollbarY.cjs +3 -3
  840. package/dist/ScrollArea/ScrollAreaScrollbarY.cjs.map +1 -1
  841. package/dist/ScrollArea/ScrollAreaScrollbarY.js +4 -4
  842. package/dist/ScrollArea/ScrollAreaScrollbarY.js.map +1 -1
  843. package/dist/ScrollArea/ScrollAreaThumb.cjs.map +1 -1
  844. package/dist/ScrollArea/ScrollAreaThumb.js +1 -1
  845. package/dist/ScrollArea/ScrollAreaThumb.js.map +1 -1
  846. package/dist/ScrollArea/ScrollAreaViewport.cjs +2 -2
  847. package/dist/ScrollArea/ScrollAreaViewport.cjs.map +1 -1
  848. package/dist/ScrollArea/ScrollAreaViewport.js +3 -3
  849. package/dist/ScrollArea/ScrollAreaViewport.js.map +1 -1
  850. package/dist/ScrollArea/utils.cjs.map +1 -1
  851. package/dist/ScrollArea/utils.js.map +1 -1
  852. package/dist/Select/BubbleSelect.cjs +2 -2
  853. package/dist/Select/BubbleSelect.cjs.map +1 -1
  854. package/dist/Select/BubbleSelect.js +3 -3
  855. package/dist/Select/BubbleSelect.js.map +1 -1
  856. package/dist/Select/SelectArrow.cjs +1 -1
  857. package/dist/Select/SelectArrow.cjs.map +1 -1
  858. package/dist/Select/SelectArrow.js +2 -2
  859. package/dist/Select/SelectArrow.js.map +1 -1
  860. package/dist/Select/SelectContent.cjs.map +1 -1
  861. package/dist/Select/SelectContent.js +1 -1
  862. package/dist/Select/SelectContent.js.map +1 -1
  863. package/dist/Select/SelectContentImpl.cjs +5 -5
  864. package/dist/Select/SelectContentImpl.cjs.map +1 -1
  865. package/dist/Select/SelectContentImpl.js +6 -6
  866. package/dist/Select/SelectContentImpl.js.map +1 -1
  867. package/dist/Select/SelectGroup.cjs +2 -2
  868. package/dist/Select/SelectGroup.cjs.map +1 -1
  869. package/dist/Select/SelectGroup.js +3 -3
  870. package/dist/Select/SelectGroup.js.map +1 -1
  871. package/dist/Select/SelectIcon.js +1 -1
  872. package/dist/Select/SelectItem.cjs +7 -7
  873. package/dist/Select/SelectItem.cjs.map +1 -1
  874. package/dist/Select/SelectItem.js +8 -8
  875. package/dist/Select/SelectItem.js.map +1 -1
  876. package/dist/Select/SelectItemAlignedPosition.cjs +2 -2
  877. package/dist/Select/SelectItemAlignedPosition.cjs.map +1 -1
  878. package/dist/Select/SelectItemAlignedPosition.js +3 -3
  879. package/dist/Select/SelectItemAlignedPosition.js.map +1 -1
  880. package/dist/Select/SelectItemIndicator.cjs.map +1 -1
  881. package/dist/Select/SelectItemIndicator.js +1 -1
  882. package/dist/Select/SelectItemIndicator.js.map +1 -1
  883. package/dist/Select/SelectItemText.cjs.map +1 -1
  884. package/dist/Select/SelectItemText.js +1 -1
  885. package/dist/Select/SelectItemText.js.map +1 -1
  886. package/dist/Select/SelectLabel.js +1 -1
  887. package/dist/Select/SelectPopperPosition.cjs +1 -1
  888. package/dist/Select/SelectPopperPosition.cjs.map +1 -1
  889. package/dist/Select/SelectPopperPosition.js +2 -2
  890. package/dist/Select/SelectPopperPosition.js.map +1 -1
  891. package/dist/Select/SelectPortal.js +1 -1
  892. package/dist/Select/SelectProvider.cjs.map +1 -1
  893. package/dist/Select/SelectProvider.js.map +1 -1
  894. package/dist/Select/SelectRoot.cjs +8 -8
  895. package/dist/Select/SelectRoot.cjs.map +1 -1
  896. package/dist/Select/SelectRoot.js +9 -9
  897. package/dist/Select/SelectRoot.js.map +1 -1
  898. package/dist/Select/SelectScrollButtonImpl.cjs.map +1 -1
  899. package/dist/Select/SelectScrollButtonImpl.js +1 -1
  900. package/dist/Select/SelectScrollButtonImpl.js.map +1 -1
  901. package/dist/Select/SelectScrollDownButton.cjs +2 -2
  902. package/dist/Select/SelectScrollDownButton.cjs.map +1 -1
  903. package/dist/Select/SelectScrollDownButton.js +3 -3
  904. package/dist/Select/SelectScrollDownButton.js.map +1 -1
  905. package/dist/Select/SelectScrollUpButton.cjs +1 -1
  906. package/dist/Select/SelectScrollUpButton.cjs.map +1 -1
  907. package/dist/Select/SelectScrollUpButton.js +2 -2
  908. package/dist/Select/SelectScrollUpButton.js.map +1 -1
  909. package/dist/Select/SelectSeparator.js +1 -1
  910. package/dist/Select/SelectTrigger.cjs +6 -6
  911. package/dist/Select/SelectTrigger.cjs.map +1 -1
  912. package/dist/Select/SelectTrigger.js +7 -7
  913. package/dist/Select/SelectTrigger.js.map +1 -1
  914. package/dist/Select/SelectValue.cjs +3 -2
  915. package/dist/Select/SelectValue.cjs.map +1 -1
  916. package/dist/Select/SelectValue.js +4 -3
  917. package/dist/Select/SelectValue.js.map +1 -1
  918. package/dist/Select/SelectViewport.cjs +2 -2
  919. package/dist/Select/SelectViewport.cjs.map +1 -1
  920. package/dist/Select/SelectViewport.js +3 -3
  921. package/dist/Select/SelectViewport.js.map +1 -1
  922. package/dist/Select/utils.cjs +6 -2
  923. package/dist/Select/utils.cjs.map +1 -1
  924. package/dist/Select/utils.js +6 -3
  925. package/dist/Select/utils.js.map +1 -1
  926. package/dist/Separator/Separator.js +1 -1
  927. package/dist/Slider/SliderHorizontal.cjs +2 -2
  928. package/dist/Slider/SliderHorizontal.cjs.map +1 -1
  929. package/dist/Slider/SliderHorizontal.js +3 -3
  930. package/dist/Slider/SliderHorizontal.js.map +1 -1
  931. package/dist/Slider/SliderImpl.js +1 -1
  932. package/dist/Slider/SliderRange.cjs +1 -1
  933. package/dist/Slider/SliderRange.cjs.map +1 -1
  934. package/dist/Slider/SliderRange.js +2 -2
  935. package/dist/Slider/SliderRange.js.map +1 -1
  936. package/dist/Slider/SliderRoot.cjs +4 -4
  937. package/dist/Slider/SliderRoot.cjs.map +1 -1
  938. package/dist/Slider/SliderRoot.js +5 -5
  939. package/dist/Slider/SliderRoot.js.map +1 -1
  940. package/dist/Slider/SliderThumb.cjs +1 -1
  941. package/dist/Slider/SliderThumb.cjs.map +1 -1
  942. package/dist/Slider/SliderThumb.js +2 -2
  943. package/dist/Slider/SliderThumb.js.map +1 -1
  944. package/dist/Slider/SliderThumbImpl.cjs +5 -5
  945. package/dist/Slider/SliderThumbImpl.cjs.map +1 -1
  946. package/dist/Slider/SliderThumbImpl.js +6 -6
  947. package/dist/Slider/SliderThumbImpl.js.map +1 -1
  948. package/dist/Slider/SliderTrack.cjs +1 -1
  949. package/dist/Slider/SliderTrack.js +2 -2
  950. package/dist/Slider/SliderVertical.cjs +2 -2
  951. package/dist/Slider/SliderVertical.cjs.map +1 -1
  952. package/dist/Slider/SliderVertical.js +3 -3
  953. package/dist/Slider/SliderVertical.js.map +1 -1
  954. package/dist/Slider/utils.cjs +1 -1
  955. package/dist/Slider/utils.cjs.map +1 -1
  956. package/dist/Slider/utils.js +1 -1
  957. package/dist/Slider/utils.js.map +1 -1
  958. package/dist/Splitter/SplitterGroup.cjs +7 -7
  959. package/dist/Splitter/SplitterGroup.cjs.map +1 -1
  960. package/dist/Splitter/SplitterGroup.js +8 -8
  961. package/dist/Splitter/SplitterGroup.js.map +1 -1
  962. package/dist/Splitter/SplitterPanel.cjs +3 -3
  963. package/dist/Splitter/SplitterPanel.cjs.map +1 -1
  964. package/dist/Splitter/SplitterPanel.js +4 -4
  965. package/dist/Splitter/SplitterPanel.js.map +1 -1
  966. package/dist/Splitter/SplitterResizeHandle.cjs +3 -3
  967. package/dist/Splitter/SplitterResizeHandle.cjs.map +1 -1
  968. package/dist/Splitter/SplitterResizeHandle.js +4 -4
  969. package/dist/Splitter/SplitterResizeHandle.js.map +1 -1
  970. package/dist/Stepper/StepperDescription.cjs +1 -1
  971. package/dist/Stepper/StepperDescription.cjs.map +1 -1
  972. package/dist/Stepper/StepperDescription.js +2 -2
  973. package/dist/Stepper/StepperDescription.js.map +1 -1
  974. package/dist/Stepper/StepperIndicator.cjs.map +1 -1
  975. package/dist/Stepper/StepperIndicator.js +1 -1
  976. package/dist/Stepper/StepperIndicator.js.map +1 -1
  977. package/dist/Stepper/StepperItem.cjs +6 -6
  978. package/dist/Stepper/StepperItem.cjs.map +1 -1
  979. package/dist/Stepper/StepperItem.js +7 -7
  980. package/dist/Stepper/StepperItem.js.map +1 -1
  981. package/dist/Stepper/StepperRoot.cjs +3 -3
  982. package/dist/Stepper/StepperRoot.cjs.map +1 -1
  983. package/dist/Stepper/StepperRoot.js +4 -4
  984. package/dist/Stepper/StepperRoot.js.map +1 -1
  985. package/dist/Stepper/StepperSeparator.cjs.map +1 -1
  986. package/dist/Stepper/StepperSeparator.js +1 -1
  987. package/dist/Stepper/StepperSeparator.js.map +1 -1
  988. package/dist/Stepper/StepperTitle.cjs.map +1 -1
  989. package/dist/Stepper/StepperTitle.js +1 -1
  990. package/dist/Stepper/StepperTitle.js.map +1 -1
  991. package/dist/Stepper/StepperTrigger.cjs +6 -6
  992. package/dist/Stepper/StepperTrigger.cjs.map +1 -1
  993. package/dist/Stepper/StepperTrigger.js +7 -7
  994. package/dist/Stepper/StepperTrigger.js.map +1 -1
  995. package/dist/Switch/SwitchRoot.cjs +6 -6
  996. package/dist/Switch/SwitchRoot.cjs.map +1 -1
  997. package/dist/Switch/SwitchRoot.js +7 -7
  998. package/dist/Switch/SwitchRoot.js.map +1 -1
  999. package/dist/Switch/SwitchThumb.cjs +1 -1
  1000. package/dist/Switch/SwitchThumb.cjs.map +1 -1
  1001. package/dist/Switch/SwitchThumb.js +2 -2
  1002. package/dist/Switch/SwitchThumb.js.map +1 -1
  1003. package/dist/Tabs/TabsContent.cjs +2 -2
  1004. package/dist/Tabs/TabsContent.cjs.map +1 -1
  1005. package/dist/Tabs/TabsContent.js +3 -3
  1006. package/dist/Tabs/TabsContent.js.map +1 -1
  1007. package/dist/Tabs/TabsIndicator.cjs.map +1 -1
  1008. package/dist/Tabs/TabsIndicator.js +1 -1
  1009. package/dist/Tabs/TabsIndicator.js.map +1 -1
  1010. package/dist/Tabs/TabsList.cjs +2 -2
  1011. package/dist/Tabs/TabsList.cjs.map +1 -1
  1012. package/dist/Tabs/TabsList.js +3 -3
  1013. package/dist/Tabs/TabsList.js.map +1 -1
  1014. package/dist/Tabs/TabsRoot.cjs +3 -3
  1015. package/dist/Tabs/TabsRoot.cjs.map +1 -1
  1016. package/dist/Tabs/TabsRoot.js +4 -4
  1017. package/dist/Tabs/TabsRoot.js.map +1 -1
  1018. package/dist/Tabs/TabsTrigger.cjs +3 -3
  1019. package/dist/Tabs/TabsTrigger.cjs.map +1 -1
  1020. package/dist/Tabs/TabsTrigger.js +4 -4
  1021. package/dist/Tabs/TabsTrigger.js.map +1 -1
  1022. package/dist/TagsInput/TagsInputClear.cjs +3 -3
  1023. package/dist/TagsInput/TagsInputClear.cjs.map +1 -1
  1024. package/dist/TagsInput/TagsInputClear.js +4 -4
  1025. package/dist/TagsInput/TagsInputClear.js.map +1 -1
  1026. package/dist/TagsInput/TagsInputInput.cjs +2 -2
  1027. package/dist/TagsInput/TagsInputInput.cjs.map +1 -1
  1028. package/dist/TagsInput/TagsInputInput.js +3 -3
  1029. package/dist/TagsInput/TagsInputInput.js.map +1 -1
  1030. package/dist/TagsInput/TagsInputItem.cjs +2 -2
  1031. package/dist/TagsInput/TagsInputItem.cjs.map +1 -1
  1032. package/dist/TagsInput/TagsInputItem.js +3 -3
  1033. package/dist/TagsInput/TagsInputItem.js.map +1 -1
  1034. package/dist/TagsInput/TagsInputItemDelete.cjs +3 -3
  1035. package/dist/TagsInput/TagsInputItemDelete.cjs.map +1 -1
  1036. package/dist/TagsInput/TagsInputItemDelete.js +4 -4
  1037. package/dist/TagsInput/TagsInputItemDelete.js.map +1 -1
  1038. package/dist/TagsInput/TagsInputItemText.cjs +2 -2
  1039. package/dist/TagsInput/TagsInputItemText.cjs.map +1 -1
  1040. package/dist/TagsInput/TagsInputItemText.js +3 -3
  1041. package/dist/TagsInput/TagsInputItemText.js.map +1 -1
  1042. package/dist/TagsInput/TagsInputRoot.cjs +7 -7
  1043. package/dist/TagsInput/TagsInputRoot.cjs.map +1 -1
  1044. package/dist/TagsInput/TagsInputRoot.js +8 -8
  1045. package/dist/TagsInput/TagsInputRoot.js.map +1 -1
  1046. package/dist/Teleport/Teleport.js +1 -1
  1047. package/dist/TimeField/TimeFieldInput.cjs +5 -5
  1048. package/dist/TimeField/TimeFieldInput.cjs.map +1 -1
  1049. package/dist/TimeField/TimeFieldInput.js +6 -6
  1050. package/dist/TimeField/TimeFieldInput.js.map +1 -1
  1051. package/dist/TimeField/TimeFieldRoot.cjs +18 -15
  1052. package/dist/TimeField/TimeFieldRoot.cjs.map +1 -1
  1053. package/dist/TimeField/TimeFieldRoot.js +19 -16
  1054. package/dist/TimeField/TimeFieldRoot.js.map +1 -1
  1055. package/dist/Toast/FocusProxy.js +1 -1
  1056. package/dist/Toast/ToastAction.js +1 -1
  1057. package/dist/Toast/ToastAnnounce.cjs +1 -1
  1058. package/dist/Toast/ToastAnnounce.cjs.map +1 -1
  1059. package/dist/Toast/ToastAnnounce.js +2 -2
  1060. package/dist/Toast/ToastAnnounce.js.map +1 -1
  1061. package/dist/Toast/ToastAnnounceExclude.cjs +1 -1
  1062. package/dist/Toast/ToastAnnounceExclude.js +2 -2
  1063. package/dist/Toast/ToastClose.cjs +1 -1
  1064. package/dist/Toast/ToastClose.js +2 -2
  1065. package/dist/Toast/ToastDescription.js +1 -1
  1066. package/dist/Toast/ToastPortal.js +1 -1
  1067. package/dist/Toast/ToastProvider.cjs.map +1 -1
  1068. package/dist/Toast/ToastProvider.js.map +1 -1
  1069. package/dist/Toast/ToastRoot.cjs +30 -22
  1070. package/dist/Toast/ToastRoot.cjs.map +1 -1
  1071. package/dist/Toast/ToastRoot.js +31 -23
  1072. package/dist/Toast/ToastRoot.js.map +1 -1
  1073. package/dist/Toast/ToastRootImpl.cjs +3 -3
  1074. package/dist/Toast/ToastRootImpl.cjs.map +1 -1
  1075. package/dist/Toast/ToastRootImpl.js +4 -4
  1076. package/dist/Toast/ToastRootImpl.js.map +1 -1
  1077. package/dist/Toast/ToastTitle.js +1 -1
  1078. package/dist/Toast/ToastViewport.cjs +5 -5
  1079. package/dist/Toast/ToastViewport.cjs.map +1 -1
  1080. package/dist/Toast/ToastViewport.js +6 -6
  1081. package/dist/Toast/ToastViewport.js.map +1 -1
  1082. package/dist/Toast/utils.js +1 -1
  1083. package/dist/Toggle/Toggle.cjs +4 -4
  1084. package/dist/Toggle/Toggle.cjs.map +1 -1
  1085. package/dist/Toggle/Toggle.js +5 -5
  1086. package/dist/Toggle/Toggle.js.map +1 -1
  1087. package/dist/ToggleGroup/ToggleGroupItem.cjs +1 -1
  1088. package/dist/ToggleGroup/ToggleGroupItem.cjs.map +1 -1
  1089. package/dist/ToggleGroup/ToggleGroupItem.js +2 -2
  1090. package/dist/ToggleGroup/ToggleGroupItem.js.map +1 -1
  1091. package/dist/ToggleGroup/ToggleGroupRoot.cjs +4 -4
  1092. package/dist/ToggleGroup/ToggleGroupRoot.cjs.map +1 -1
  1093. package/dist/ToggleGroup/ToggleGroupRoot.js +5 -5
  1094. package/dist/ToggleGroup/ToggleGroupRoot.js.map +1 -1
  1095. package/dist/Toolbar/ToolbarButton.cjs +2 -2
  1096. package/dist/Toolbar/ToolbarButton.js +3 -3
  1097. package/dist/Toolbar/ToolbarLink.cjs +1 -1
  1098. package/dist/Toolbar/ToolbarLink.js +2 -2
  1099. package/dist/Toolbar/ToolbarRoot.cjs +2 -2
  1100. package/dist/Toolbar/ToolbarRoot.cjs.map +1 -1
  1101. package/dist/Toolbar/ToolbarRoot.js +3 -3
  1102. package/dist/Toolbar/ToolbarRoot.js.map +1 -1
  1103. package/dist/Toolbar/ToolbarSeparator.cjs +1 -1
  1104. package/dist/Toolbar/ToolbarSeparator.js +2 -2
  1105. package/dist/Toolbar/ToolbarToggleGroup.cjs +1 -1
  1106. package/dist/Toolbar/ToolbarToggleGroup.cjs.map +1 -1
  1107. package/dist/Toolbar/ToolbarToggleGroup.js +2 -2
  1108. package/dist/Toolbar/ToolbarToggleGroup.js.map +1 -1
  1109. package/dist/Toolbar/ToolbarToggleItem.cjs.map +1 -1
  1110. package/dist/Toolbar/ToolbarToggleItem.js +1 -1
  1111. package/dist/Toolbar/ToolbarToggleItem.js.map +1 -1
  1112. package/dist/Tooltip/TooltipArrow.js +1 -1
  1113. package/dist/Tooltip/TooltipContent.cjs +1 -1
  1114. package/dist/Tooltip/TooltipContent.cjs.map +1 -1
  1115. package/dist/Tooltip/TooltipContent.js +2 -2
  1116. package/dist/Tooltip/TooltipContent.js.map +1 -1
  1117. package/dist/Tooltip/TooltipContentHoverable.cjs.map +1 -1
  1118. package/dist/Tooltip/TooltipContentHoverable.js +1 -1
  1119. package/dist/Tooltip/TooltipContentHoverable.js.map +1 -1
  1120. package/dist/Tooltip/TooltipContentImpl.cjs +3 -3
  1121. package/dist/Tooltip/TooltipContentImpl.cjs.map +1 -1
  1122. package/dist/Tooltip/TooltipContentImpl.js +4 -4
  1123. package/dist/Tooltip/TooltipContentImpl.js.map +1 -1
  1124. package/dist/Tooltip/TooltipPortal.js +1 -1
  1125. package/dist/Tooltip/TooltipProvider.cjs +1 -1
  1126. package/dist/Tooltip/TooltipProvider.js +1 -1
  1127. package/dist/Tooltip/TooltipRoot.cjs +9 -9
  1128. package/dist/Tooltip/TooltipRoot.cjs.map +1 -1
  1129. package/dist/Tooltip/TooltipRoot.js +10 -10
  1130. package/dist/Tooltip/TooltipRoot.js.map +1 -1
  1131. package/dist/Tooltip/TooltipTrigger.cjs +6 -3
  1132. package/dist/Tooltip/TooltipTrigger.cjs.map +1 -1
  1133. package/dist/Tooltip/TooltipTrigger.js +7 -4
  1134. package/dist/Tooltip/TooltipTrigger.js.map +1 -1
  1135. package/dist/Tree/TreeItem.cjs +5 -5
  1136. package/dist/Tree/TreeItem.cjs.map +1 -1
  1137. package/dist/Tree/TreeItem.js +6 -6
  1138. package/dist/Tree/TreeItem.js.map +1 -1
  1139. package/dist/Tree/TreeRoot.cjs +9 -9
  1140. package/dist/Tree/TreeRoot.cjs.map +1 -1
  1141. package/dist/Tree/TreeRoot.js +10 -10
  1142. package/dist/Tree/TreeRoot.js.map +1 -1
  1143. package/dist/Tree/TreeVirtualizer.cjs +3 -3
  1144. package/dist/Tree/TreeVirtualizer.cjs.map +1 -1
  1145. package/dist/Tree/TreeVirtualizer.js +4 -4
  1146. package/dist/Tree/TreeVirtualizer.js.map +1 -1
  1147. package/dist/Tree/utils.cjs.map +1 -1
  1148. package/dist/Tree/utils.js.map +1 -1
  1149. package/dist/Viewport/Viewport.js +1 -1
  1150. package/dist/VisuallyHidden/VisuallyHidden.cjs +3 -3
  1151. package/dist/VisuallyHidden/VisuallyHidden.js +4 -4
  1152. package/dist/VisuallyHidden/VisuallyHiddenInput.cjs +9 -3
  1153. package/dist/VisuallyHidden/VisuallyHiddenInput.cjs.map +1 -1
  1154. package/dist/VisuallyHidden/VisuallyHiddenInput.js +10 -4
  1155. package/dist/VisuallyHidden/VisuallyHiddenInput.js.map +1 -1
  1156. package/dist/VisuallyHidden/VisuallyHiddenInputBubble.cjs +1 -1
  1157. package/dist/VisuallyHidden/VisuallyHiddenInputBubble.cjs.map +1 -1
  1158. package/dist/VisuallyHidden/VisuallyHiddenInputBubble.js +2 -2
  1159. package/dist/VisuallyHidden/VisuallyHiddenInputBubble.js.map +1 -1
  1160. package/dist/component/Arrow.cjs +2 -2
  1161. package/dist/component/Arrow.js +3 -3
  1162. package/dist/component/BaseSeparator.cjs +1 -1
  1163. package/dist/component/BaseSeparator.cjs.map +1 -1
  1164. package/dist/component/BaseSeparator.js +2 -2
  1165. package/dist/component/BaseSeparator.js.map +1 -1
  1166. package/dist/composables/useWindowSplitterBehavior.cjs.map +1 -1
  1167. package/dist/composables/useWindowSplitterBehavior.js.map +1 -1
  1168. package/dist/composables/useWindowSplitterPanelGroupBehavior.cjs +3 -3
  1169. package/dist/composables/useWindowSplitterPanelGroupBehavior.cjs.map +1 -1
  1170. package/dist/composables/useWindowSplitterPanelGroupBehavior.js +3 -3
  1171. package/dist/composables/useWindowSplitterPanelGroupBehavior.js.map +1 -1
  1172. package/dist/constant/components.cjs +4 -0
  1173. package/dist/constant/components.cjs.map +1 -1
  1174. package/dist/constant/components.js +4 -0
  1175. package/dist/constant/components.js.map +1 -1
  1176. package/dist/date/calendar.cjs +1 -1
  1177. package/dist/date/calendar.cjs.map +1 -1
  1178. package/dist/date/calendar.js +1 -1
  1179. package/dist/date/calendar.js.map +1 -1
  1180. package/dist/date/comparators.cjs +6 -4
  1181. package/dist/date/comparators.cjs.map +1 -1
  1182. package/dist/date/comparators.js +7 -5
  1183. package/dist/date/comparators.js.map +1 -1
  1184. package/dist/date/parser.cjs +2 -2
  1185. package/dist/date/parser.cjs.map +1 -1
  1186. package/dist/date/parser.js +3 -3
  1187. package/dist/date/parser.js.map +1 -1
  1188. package/dist/date/useDateField.cjs +9 -9
  1189. package/dist/date/useDateField.cjs.map +1 -1
  1190. package/dist/date/useDateField.js +10 -10
  1191. package/dist/date/useDateField.js.map +1 -1
  1192. package/dist/date/utils.cjs +9 -9
  1193. package/dist/date/utils.cjs.map +1 -1
  1194. package/dist/date/utils.js +9 -9
  1195. package/dist/date/utils.js.map +1 -1
  1196. package/dist/date.d.ts +2 -2
  1197. package/dist/index.cjs +378 -374
  1198. package/dist/index.cjs.map +1 -1
  1199. package/dist/index.d.ts +1265 -1336
  1200. package/dist/index.js +175 -173
  1201. package/dist/index.js.map +1 -1
  1202. package/dist/shared/createContext.cjs.map +1 -1
  1203. package/dist/shared/createContext.js.map +1 -1
  1204. package/dist/shared/nullish.cjs +1 -1
  1205. package/dist/shared/nullish.cjs.map +1 -1
  1206. package/dist/shared/nullish.js +1 -1
  1207. package/dist/shared/nullish.js.map +1 -1
  1208. package/dist/shared/renderSlotFragments.cjs.map +1 -1
  1209. package/dist/shared/renderSlotFragments.js.map +1 -1
  1210. package/dist/shared/useArrowNavigation.cjs.map +1 -1
  1211. package/dist/shared/useArrowNavigation.js.map +1 -1
  1212. package/dist/shared/useBodyScrollLock.cjs +3 -3
  1213. package/dist/shared/useBodyScrollLock.cjs.map +1 -1
  1214. package/dist/shared/useBodyScrollLock.js +4 -4
  1215. package/dist/shared/useBodyScrollLock.js.map +1 -1
  1216. package/dist/shared/useDateFormatter.cjs +1 -1
  1217. package/dist/shared/useDateFormatter.cjs.map +1 -1
  1218. package/dist/shared/useDateFormatter.js +2 -2
  1219. package/dist/shared/useDateFormatter.js.map +1 -1
  1220. package/dist/shared/useDirection.cjs.map +1 -1
  1221. package/dist/shared/useDirection.js.map +1 -1
  1222. package/dist/shared/useFilter.cjs.map +1 -1
  1223. package/dist/shared/useFilter.js.map +1 -1
  1224. package/dist/shared/useFormControl.cjs.map +1 -1
  1225. package/dist/shared/useFormControl.js.map +1 -1
  1226. package/dist/shared/useForwardExpose.cjs.map +1 -1
  1227. package/dist/shared/useForwardExpose.js.map +1 -1
  1228. package/dist/shared/useForwardProps.cjs +2 -2
  1229. package/dist/shared/useForwardProps.cjs.map +1 -1
  1230. package/dist/shared/useForwardProps.js +2 -2
  1231. package/dist/shared/useForwardProps.js.map +1 -1
  1232. package/dist/shared/useForwardPropsEmits.cjs.map +1 -1
  1233. package/dist/shared/useForwardPropsEmits.js.map +1 -1
  1234. package/dist/shared/useGraceArea.cjs +2 -2
  1235. package/dist/shared/useGraceArea.cjs.map +1 -1
  1236. package/dist/shared/useGraceArea.js +2 -2
  1237. package/dist/shared/useGraceArea.js.map +1 -1
  1238. package/dist/shared/useHideOthers.cjs.map +1 -1
  1239. package/dist/shared/useHideOthers.js.map +1 -1
  1240. package/dist/shared/useId.cjs +1 -1
  1241. package/dist/shared/useId.cjs.map +1 -1
  1242. package/dist/shared/useId.js +1 -1
  1243. package/dist/shared/useId.js.map +1 -1
  1244. package/dist/shared/useLocale.cjs.map +1 -1
  1245. package/dist/shared/useLocale.js.map +1 -1
  1246. package/dist/shared/useNonce.cjs.map +1 -1
  1247. package/dist/shared/useNonce.js.map +1 -1
  1248. package/dist/shared/useSelectionBehavior.cjs +3 -3
  1249. package/dist/shared/useSelectionBehavior.cjs.map +1 -1
  1250. package/dist/shared/useSelectionBehavior.js +3 -3
  1251. package/dist/shared/useSelectionBehavior.js.map +1 -1
  1252. package/dist/shared/useSingleOrMultipleValue.cjs +6 -6
  1253. package/dist/shared/useSingleOrMultipleValue.cjs.map +1 -1
  1254. package/dist/shared/useSingleOrMultipleValue.js +6 -6
  1255. package/dist/shared/useSingleOrMultipleValue.js.map +1 -1
  1256. package/dist/shared/useSize.cjs +1 -1
  1257. package/dist/shared/useSize.cjs.map +1 -1
  1258. package/dist/shared/useSize.js +1 -1
  1259. package/dist/shared/useSize.js.map +1 -1
  1260. package/dist/shared/useStateMachine.cjs.map +1 -1
  1261. package/dist/shared/useStateMachine.js.map +1 -1
  1262. package/dist/shared/useTypeahead.cjs +1 -1
  1263. package/dist/shared/useTypeahead.cjs.map +1 -1
  1264. package/dist/shared/useTypeahead.js +1 -1
  1265. package/dist/shared/useTypeahead.js.map +1 -1
  1266. package/dist/shared/withDefault.cjs.map +1 -1
  1267. package/dist/shared/withDefault.js.map +1 -1
  1268. package/dist/utils/calculate.cjs +1 -1
  1269. package/dist/utils/calculate.cjs.map +1 -1
  1270. package/dist/utils/calculate.js +1 -1
  1271. package/dist/utils/calculate.js.map +1 -1
  1272. package/dist/utils/dom.cjs.map +1 -1
  1273. package/dist/utils/dom.js.map +1 -1
  1274. package/dist/utils/layout.cjs +1 -1
  1275. package/dist/utils/layout.cjs.map +1 -1
  1276. package/dist/utils/layout.js +1 -1
  1277. package/dist/utils/layout.js.map +1 -1
  1278. package/dist/utils/registry.cjs +1 -1
  1279. package/dist/utils/registry.cjs.map +1 -1
  1280. package/dist/utils/registry.js +1 -1
  1281. package/dist/utils/registry.js.map +1 -1
  1282. package/dist/utils/resizePanel.cjs +1 -1
  1283. package/dist/utils/resizePanel.cjs.map +1 -1
  1284. package/dist/utils/resizePanel.js +1 -1
  1285. package/dist/utils/resizePanel.js.map +1 -1
  1286. package/dist/utils/style.cjs +2 -2
  1287. package/dist/utils/style.cjs.map +1 -1
  1288. package/dist/utils/style.js +3 -3
  1289. package/dist/utils/style.js.map +1 -1
  1290. package/package.json +7 -8
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sources":["../../src/ScrollArea/utils.ts"],"sourcesContent":["import { clamp } from '@/shared'\nimport type { Direction, Sizes } from './types'\n\n// https://github.com/tmcw-up-for-adoption/simple-linear-scale/blob/master/index.js\nfunction linearScale(\n input: readonly [number, number],\n output: readonly [number, number],\n) {\n return (value: number) => {\n if (input[0] === input[1] || output[0] === output[1])\n return output[0]\n const ratio = (output[1] - output[0]) / (input[1] - input[0])\n return output[0] + ratio * (value - input[0])\n }\n}\n\nexport function getThumbSize(sizes: Sizes) {\n const ratio = getThumbRatio(sizes.viewport, sizes.content)\n const scrollbarPadding\n = sizes.scrollbar.paddingStart + sizes.scrollbar.paddingEnd\n const thumbSize = (sizes.scrollbar.size - scrollbarPadding) * ratio\n // minimum of 18 matches macOS minimum\n return Math.max(thumbSize, 18)\n}\n\nexport function getThumbRatio(viewportSize: number, contentSize: number) {\n const ratio = viewportSize / contentSize\n return Number.isNaN(ratio) ? 0 : ratio\n}\n\n// Custom scroll handler to avoid scroll-linked effects\n// https://developer.mozilla.org/en-US/docs/Mozilla/Performance/Scroll-linked_effects\nexport function addUnlinkedScrollListener(\n node: HTMLElement,\n handler = () => {},\n) {\n let prevPosition = { left: node.scrollLeft, top: node.scrollTop }\n let rAF = 0;\n (function loop() {\n const position = { left: node.scrollLeft, top: node.scrollTop }\n const isHorizontalScroll = prevPosition.left !== position.left\n const isVerticalScroll = prevPosition.top !== position.top\n if (isHorizontalScroll || isVerticalScroll)\n handler()\n prevPosition = position\n rAF = window.requestAnimationFrame(loop)\n })()\n return () => window.cancelAnimationFrame(rAF)\n}\n\nexport function getThumbOffsetFromScroll(\n scrollPos: number,\n sizes: Sizes,\n dir: Direction = 'ltr',\n) {\n const thumbSizePx = getThumbSize(sizes)\n const scrollbarPadding\n = sizes.scrollbar.paddingStart + sizes.scrollbar.paddingEnd\n const scrollbar = sizes.scrollbar.size - scrollbarPadding\n const maxScrollPos = sizes.content - sizes.viewport\n const maxThumbPos = scrollbar - thumbSizePx\n const scrollClampRange\n = dir === 'ltr' ? [0, maxScrollPos] : [maxScrollPos * -1, 0]\n const scrollWithoutMomentum = clamp(\n scrollPos,\n scrollClampRange[0],\n scrollClampRange[1],\n )\n const interpolate = linearScale([0, maxScrollPos], [0, maxThumbPos])\n return interpolate(scrollWithoutMomentum)\n}\n\nexport function toInt(value?: string) {\n return value ? Number.parseInt(value, 10) : 0\n}\n\nexport function getScrollPositionFromPointer(\n pointerPos: number,\n pointerOffset: number,\n sizes: Sizes,\n dir: Direction = 'ltr',\n) {\n const thumbSizePx = getThumbSize(sizes)\n const thumbCenter = thumbSizePx / 2\n const offset = pointerOffset || thumbCenter\n const thumbOffsetFromEnd = thumbSizePx - offset\n const minPointerPos = sizes.scrollbar.paddingStart + offset\n const maxPointerPos\n = sizes.scrollbar.size - sizes.scrollbar.paddingEnd - thumbOffsetFromEnd\n const maxScrollPos = sizes.content - sizes.viewport\n const scrollRange\n = dir === 'ltr' ? [0, maxScrollPos] : [maxScrollPos * -1, 0]\n const interpolate = linearScale(\n [minPointerPos, maxPointerPos],\n scrollRange as [number, number],\n )\n return interpolate(pointerPos)\n}\n\nexport function isScrollingWithinScrollbarBounds(\n scrollPos: number,\n maxScrollPos: number,\n) {\n return scrollPos > 0 && scrollPos < maxScrollPos\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sources":["../../src/ScrollArea/utils.ts"],"sourcesContent":["import type { Direction, Sizes } from './types'\nimport { clamp } from '@/shared'\n\n// https://github.com/tmcw-up-for-adoption/simple-linear-scale/blob/master/index.js\nfunction linearScale(\n input: readonly [number, number],\n output: readonly [number, number],\n) {\n return (value: number) => {\n if (input[0] === input[1] || output[0] === output[1])\n return output[0]\n const ratio = (output[1] - output[0]) / (input[1] - input[0])\n return output[0] + ratio * (value - input[0])\n }\n}\n\nexport function getThumbSize(sizes: Sizes) {\n const ratio = getThumbRatio(sizes.viewport, sizes.content)\n const scrollbarPadding\n = sizes.scrollbar.paddingStart + sizes.scrollbar.paddingEnd\n const thumbSize = (sizes.scrollbar.size - scrollbarPadding) * ratio\n // minimum of 18 matches macOS minimum\n return Math.max(thumbSize, 18)\n}\n\nexport function getThumbRatio(viewportSize: number, contentSize: number) {\n const ratio = viewportSize / contentSize\n return Number.isNaN(ratio) ? 0 : ratio\n}\n\n// Custom scroll handler to avoid scroll-linked effects\n// https://developer.mozilla.org/en-US/docs/Mozilla/Performance/Scroll-linked_effects\nexport function addUnlinkedScrollListener(\n node: HTMLElement,\n handler = () => {},\n) {\n let prevPosition = { left: node.scrollLeft, top: node.scrollTop }\n let rAF = 0;\n (function loop() {\n const position = { left: node.scrollLeft, top: node.scrollTop }\n const isHorizontalScroll = prevPosition.left !== position.left\n const isVerticalScroll = prevPosition.top !== position.top\n if (isHorizontalScroll || isVerticalScroll)\n handler()\n prevPosition = position\n rAF = window.requestAnimationFrame(loop)\n })()\n return () => window.cancelAnimationFrame(rAF)\n}\n\nexport function getThumbOffsetFromScroll(\n scrollPos: number,\n sizes: Sizes,\n dir: Direction = 'ltr',\n) {\n const thumbSizePx = getThumbSize(sizes)\n const scrollbarPadding\n = sizes.scrollbar.paddingStart + sizes.scrollbar.paddingEnd\n const scrollbar = sizes.scrollbar.size - scrollbarPadding\n const maxScrollPos = sizes.content - sizes.viewport\n const maxThumbPos = scrollbar - thumbSizePx\n const scrollClampRange\n = dir === 'ltr' ? [0, maxScrollPos] : [maxScrollPos * -1, 0]\n const scrollWithoutMomentum = clamp(\n scrollPos,\n scrollClampRange[0],\n scrollClampRange[1],\n )\n const interpolate = linearScale([0, maxScrollPos], [0, maxThumbPos])\n return interpolate(scrollWithoutMomentum)\n}\n\nexport function toInt(value?: string) {\n return value ? Number.parseInt(value, 10) : 0\n}\n\nexport function getScrollPositionFromPointer(\n pointerPos: number,\n pointerOffset: number,\n sizes: Sizes,\n dir: Direction = 'ltr',\n) {\n const thumbSizePx = getThumbSize(sizes)\n const thumbCenter = thumbSizePx / 2\n const offset = pointerOffset || thumbCenter\n const thumbOffsetFromEnd = thumbSizePx - offset\n const minPointerPos = sizes.scrollbar.paddingStart + offset\n const maxPointerPos\n = sizes.scrollbar.size - sizes.scrollbar.paddingEnd - thumbOffsetFromEnd\n const maxScrollPos = sizes.content - sizes.viewport\n const scrollRange\n = dir === 'ltr' ? [0, maxScrollPos] : [maxScrollPos * -1, 0]\n const interpolate = linearScale(\n [minPointerPos, maxPointerPos],\n scrollRange as [number, number],\n )\n return interpolate(pointerPos)\n}\n\nexport function isScrollingWithinScrollbarBounds(\n scrollPos: number,\n maxScrollPos: number,\n) {\n return scrollPos > 0 && scrollPos < maxScrollPos\n}\n"],"names":[],"mappings":"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"}
@@ -26,10 +26,10 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
26
26
  "value"
27
27
  );
28
28
  const setValue = descriptor.set;
29
- if (cur !== prev && setValue) {
29
+ if (cur !== prev && setValue && selectElement.value) {
30
30
  const event = new Event("change", { bubbles: true });
31
31
  setValue.call(selectElement.value, cur);
32
- selectElement.value?.dispatchEvent(event);
32
+ selectElement.value.dispatchEvent(event);
33
33
  }
34
34
  });
35
35
  return (_ctx, _cache) => {
@@ -1 +1 @@
1
- {"version":3,"file":"BubbleSelect.cjs","sources":["../../src/Select/BubbleSelect.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ref, watch } from 'vue'\nimport { VisuallyHidden } from '@/VisuallyHidden'\n\ninterface BubbleSelectProps {\n autocomplete?: string\n autofocus?: boolean\n disabled?: boolean\n form?: string\n multiple?: boolean\n name?: string\n required?: boolean\n size?: number\n value?: any\n}\n\nconst props = defineProps<BubbleSelectProps>()\nconst selectElement = ref<HTMLElement>()\n\n// This would bubble \"change\" event to form, with the target as Select element.\nwatch(() => props.value, (cur, prev) => {\n const selectProto = window.HTMLSelectElement.prototype\n const descriptor = Object.getOwnPropertyDescriptor(\n selectProto,\n 'value',\n ) as PropertyDescriptor\n const setValue = descriptor.set\n if (cur !== prev && setValue) {\n const event = new Event('change', { bubbles: true })\n setValue.call(selectElement.value, cur)\n selectElement.value?.dispatchEvent(event)\n }\n})\n\n/**\n * We purposefully use a `select` here to support form autofill as much\n * as possible.\n *\n * We purposefully do not add the `value` attribute here to allow the value\n * to be set programmatically and bubble to any parent form `onChange` event.\n *\n * We use `VisuallyHidden` rather than `display: \"none\"` because Safari autofill\n * won't work otherwise.\n */\n</script>\n\n<template>\n <VisuallyHidden as-child>\n <select\n ref=\"selectElement\"\n v-bind=\"props\"\n >\n <slot />\n </select>\n </VisuallyHidden>\n</template>\n"],"names":["ref","watch"],"mappings":";;;;;;;;;;;;;;;;;;;AAgBA,IAAA,MAAM,KAAQ,GAAA,OAAA;AACd,IAAA,MAAM,gBAAgBA,OAAiB,EAAA;AAGvC,IAAAC,SAAA,CAAM,MAAM,KAAA,CAAM,KAAO,EAAA,CAAC,KAAK,IAAS,KAAA;AACtC,MAAM,MAAA,WAAA,GAAc,OAAO,iBAAkB,CAAA,SAAA;AAC7C,MAAA,MAAM,aAAa,MAAO,CAAA,wBAAA;AAAA,QACxB,WAAA;AAAA,QACA;AAAA,OACF;AACA,MAAA,MAAM,WAAW,UAAW,CAAA,GAAA;AAC5B,MAAI,IAAA,GAAA,KAAQ,QAAQ,QAAU,EAAA;AAC5B,QAAA,MAAM,QAAQ,IAAI,KAAA,CAAM,UAAU,EAAE,OAAA,EAAS,MAAM,CAAA;AACnD,QAAS,QAAA,CAAA,IAAA,CAAK,aAAc,CAAA,KAAA,EAAO,GAAG,CAAA;AACtC,QAAc,aAAA,CAAA,KAAA,EAAO,cAAc,KAAK,CAAA;AAAA;AAC1C,KACD,CAAA;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"BubbleSelect.cjs","sources":["../../src/Select/BubbleSelect.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { VisuallyHidden } from '@/VisuallyHidden'\nimport { ref, watch } from 'vue'\n\ninterface BubbleSelectProps {\n autocomplete?: string\n autofocus?: boolean\n disabled?: boolean\n form?: string\n multiple?: boolean\n name?: string\n required?: boolean\n size?: number\n value?: any\n}\n\nconst props = defineProps<BubbleSelectProps>()\nconst selectElement = ref<HTMLElement>()\n\n// This would bubble \"change\" event to form, with the target as Select element.\nwatch(() => props.value, (cur, prev) => {\n const selectProto = window.HTMLSelectElement.prototype\n const descriptor = Object.getOwnPropertyDescriptor(\n selectProto,\n 'value',\n ) as PropertyDescriptor\n const setValue = descriptor.set\n if (cur !== prev && setValue && selectElement.value) {\n const event = new Event('change', { bubbles: true })\n setValue.call(selectElement.value, cur)\n selectElement.value.dispatchEvent(event)\n }\n})\n\n/**\n * We purposefully use a `select` here to support form autofill as much\n * as possible.\n *\n * We purposefully do not add the `value` attribute here to allow the value\n * to be set programmatically and bubble to any parent form `onChange` event.\n *\n * We use `VisuallyHidden` rather than `display: \"none\"` because Safari autofill\n * won't work otherwise.\n */\n</script>\n\n<template>\n <VisuallyHidden as-child>\n <select\n ref=\"selectElement\"\n v-bind=\"props\"\n >\n <slot />\n </select>\n </VisuallyHidden>\n</template>\n"],"names":["ref","watch"],"mappings":";;;;;;;;;;;;;;;;;;;AAgBA,IAAA,MAAM,KAAQ,GAAA,OAAA;AACd,IAAA,MAAM,gBAAgBA,OAAiB,EAAA;AAGvC,IAAAC,SAAA,CAAM,MAAM,KAAA,CAAM,KAAO,EAAA,CAAC,KAAK,IAAS,KAAA;AACtC,MAAM,MAAA,WAAA,GAAc,OAAO,iBAAkB,CAAA,SAAA;AAC7C,MAAA,MAAM,aAAa,MAAO,CAAA,wBAAA;AAAA,QACxB,WAAA;AAAA,QACA;AAAA,OACF;AACA,MAAA,MAAM,WAAW,UAAW,CAAA,GAAA;AAC5B,MAAA,IAAI,GAAQ,KAAA,IAAA,IAAQ,QAAY,IAAA,aAAA,CAAc,KAAO,EAAA;AACnD,QAAA,MAAM,QAAQ,IAAI,KAAA,CAAM,UAAU,EAAE,OAAA,EAAS,MAAM,CAAA;AACnD,QAAS,QAAA,CAAA,IAAA,CAAK,aAAc,CAAA,KAAA,EAAO,GAAG,CAAA;AACtC,QAAc,aAAA,CAAA,KAAA,CAAM,cAAc,KAAK,CAAA;AAAA;AACzC,KACD,CAAA;;;;;;;;;;;;;;;;;;;"}
@@ -1,4 +1,4 @@
1
- import { defineComponent, ref, watch, openBlock, createBlock, unref, withCtx, createElementVNode, mergeProps, renderSlot } from 'vue';
1
+ import { defineComponent, ref, watch, createBlock, openBlock, unref, withCtx, createElementVNode, mergeProps, renderSlot } from 'vue';
2
2
  import { _ as _sfc_main$1 } from '../VisuallyHidden/VisuallyHidden.js';
3
3
 
4
4
  const _sfc_main = /* @__PURE__ */ defineComponent({
@@ -24,10 +24,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
24
24
  "value"
25
25
  );
26
26
  const setValue = descriptor.set;
27
- if (cur !== prev && setValue) {
27
+ if (cur !== prev && setValue && selectElement.value) {
28
28
  const event = new Event("change", { bubbles: true });
29
29
  setValue.call(selectElement.value, cur);
30
- selectElement.value?.dispatchEvent(event);
30
+ selectElement.value.dispatchEvent(event);
31
31
  }
32
32
  });
33
33
  return (_ctx, _cache) => {
@@ -1 +1 @@
1
- {"version":3,"file":"BubbleSelect.js","sources":["../../src/Select/BubbleSelect.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ref, watch } from 'vue'\nimport { VisuallyHidden } from '@/VisuallyHidden'\n\ninterface BubbleSelectProps {\n autocomplete?: string\n autofocus?: boolean\n disabled?: boolean\n form?: string\n multiple?: boolean\n name?: string\n required?: boolean\n size?: number\n value?: any\n}\n\nconst props = defineProps<BubbleSelectProps>()\nconst selectElement = ref<HTMLElement>()\n\n// This would bubble \"change\" event to form, with the target as Select element.\nwatch(() => props.value, (cur, prev) => {\n const selectProto = window.HTMLSelectElement.prototype\n const descriptor = Object.getOwnPropertyDescriptor(\n selectProto,\n 'value',\n ) as PropertyDescriptor\n const setValue = descriptor.set\n if (cur !== prev && setValue) {\n const event = new Event('change', { bubbles: true })\n setValue.call(selectElement.value, cur)\n selectElement.value?.dispatchEvent(event)\n }\n})\n\n/**\n * We purposefully use a `select` here to support form autofill as much\n * as possible.\n *\n * We purposefully do not add the `value` attribute here to allow the value\n * to be set programmatically and bubble to any parent form `onChange` event.\n *\n * We use `VisuallyHidden` rather than `display: \"none\"` because Safari autofill\n * won't work otherwise.\n */\n</script>\n\n<template>\n <VisuallyHidden as-child>\n <select\n ref=\"selectElement\"\n v-bind=\"props\"\n >\n <slot />\n </select>\n </VisuallyHidden>\n</template>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAgBA,IAAA,MAAM,KAAQ,GAAA,OAAA;AACd,IAAA,MAAM,gBAAgB,GAAiB,EAAA;AAGvC,IAAA,KAAA,CAAM,MAAM,KAAA,CAAM,KAAO,EAAA,CAAC,KAAK,IAAS,KAAA;AACtC,MAAM,MAAA,WAAA,GAAc,OAAO,iBAAkB,CAAA,SAAA;AAC7C,MAAA,MAAM,aAAa,MAAO,CAAA,wBAAA;AAAA,QACxB,WAAA;AAAA,QACA;AAAA,OACF;AACA,MAAA,MAAM,WAAW,UAAW,CAAA,GAAA;AAC5B,MAAI,IAAA,GAAA,KAAQ,QAAQ,QAAU,EAAA;AAC5B,QAAA,MAAM,QAAQ,IAAI,KAAA,CAAM,UAAU,EAAE,OAAA,EAAS,MAAM,CAAA;AACnD,QAAS,QAAA,CAAA,IAAA,CAAK,aAAc,CAAA,KAAA,EAAO,GAAG,CAAA;AACtC,QAAc,aAAA,CAAA,KAAA,EAAO,cAAc,KAAK,CAAA;AAAA;AAC1C,KACD,CAAA;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"BubbleSelect.js","sources":["../../src/Select/BubbleSelect.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { VisuallyHidden } from '@/VisuallyHidden'\nimport { ref, watch } from 'vue'\n\ninterface BubbleSelectProps {\n autocomplete?: string\n autofocus?: boolean\n disabled?: boolean\n form?: string\n multiple?: boolean\n name?: string\n required?: boolean\n size?: number\n value?: any\n}\n\nconst props = defineProps<BubbleSelectProps>()\nconst selectElement = ref<HTMLElement>()\n\n// This would bubble \"change\" event to form, with the target as Select element.\nwatch(() => props.value, (cur, prev) => {\n const selectProto = window.HTMLSelectElement.prototype\n const descriptor = Object.getOwnPropertyDescriptor(\n selectProto,\n 'value',\n ) as PropertyDescriptor\n const setValue = descriptor.set\n if (cur !== prev && setValue && selectElement.value) {\n const event = new Event('change', { bubbles: true })\n setValue.call(selectElement.value, cur)\n selectElement.value.dispatchEvent(event)\n }\n})\n\n/**\n * We purposefully use a `select` here to support form autofill as much\n * as possible.\n *\n * We purposefully do not add the `value` attribute here to allow the value\n * to be set programmatically and bubble to any parent form `onChange` event.\n *\n * We use `VisuallyHidden` rather than `display: \"none\"` because Safari autofill\n * won't work otherwise.\n */\n</script>\n\n<template>\n <VisuallyHidden as-child>\n <select\n ref=\"selectElement\"\n v-bind=\"props\"\n >\n <slot />\n </select>\n </VisuallyHidden>\n</template>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAgBA,IAAA,MAAM,KAAQ,GAAA,OAAA;AACd,IAAA,MAAM,gBAAgB,GAAiB,EAAA;AAGvC,IAAA,KAAA,CAAM,MAAM,KAAA,CAAM,KAAO,EAAA,CAAC,KAAK,IAAS,KAAA;AACtC,MAAM,MAAA,WAAA,GAAc,OAAO,iBAAkB,CAAA,SAAA;AAC7C,MAAA,MAAM,aAAa,MAAO,CAAA,wBAAA;AAAA,QACxB,WAAA;AAAA,QACA;AAAA,OACF;AACA,MAAA,MAAM,WAAW,UAAW,CAAA,GAAA;AAC5B,MAAA,IAAI,GAAQ,KAAA,IAAA,IAAQ,QAAY,IAAA,aAAA,CAAc,KAAO,EAAA;AACnD,QAAA,MAAM,QAAQ,IAAI,KAAA,CAAM,UAAU,EAAE,OAAA,EAAS,MAAM,CAAA;AACnD,QAAS,QAAA,CAAA,IAAA,CAAK,aAAc,CAAA,KAAA,EAAO,GAAG,CAAA;AACtC,QAAc,aAAA,CAAA,KAAA,CAAM,cAAc,KAAK,CAAA;AAAA;AACzC,KACD,CAAA;;;;;;;;;;;;;;;;;;;"}
@@ -2,8 +2,8 @@
2
2
 
3
3
  const vue = require('vue');
4
4
  const Popper_PopperArrow = require('../Popper/PopperArrow.cjs');
5
- const Select_SelectRoot = require('./SelectRoot.cjs');
6
5
  const Select_SelectContentImpl = require('./SelectContentImpl.cjs');
6
+ const Select_SelectRoot = require('./SelectRoot.cjs');
7
7
 
8
8
  const _sfc_main = /* @__PURE__ */ vue.defineComponent({
9
9
  __name: "SelectArrow",
@@ -1 +1 @@
1
- {"version":3,"file":"SelectArrow.cjs","sources":["../../src/Select/SelectArrow.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { PopperArrowProps } from '@/Popper'\n\nexport interface SelectArrowProps extends PopperArrowProps {}\n</script>\n\n<script setup lang=\"ts\">\nimport { injectSelectRootContext } from './SelectRoot.vue'\nimport { SelectContentDefaultContextValue, injectSelectContentContext } from './SelectContentImpl.vue'\nimport { PopperArrow } from '@/Popper'\n\nconst props = withDefaults(defineProps<SelectArrowProps>(), {\n width: 10,\n height: 5,\n as: 'svg',\n})\nconst rootContext = injectSelectRootContext()\nconst contentContext = injectSelectContentContext(SelectContentDefaultContextValue)\n</script>\n\n<template>\n <PopperArrow\n v-if=\"rootContext.open.value && contentContext.position === 'popper'\"\n v-bind=\"props\"\n >\n <slot />\n </PopperArrow>\n</template>\n"],"names":["injectSelectRootContext","injectSelectContentContext","SelectContentDefaultContextValue"],"mappings":";;;;;;;;;;;;;;;;;AAWA,IAAA,MAAM,KAAQ,GAAA,OAAA;AAKd,IAAA,MAAM,cAAcA,yCAAwB,EAAA;AAC5C,IAAM,MAAA,cAAA,GAAiBC,oDAA2BC,yDAAgC,CAAA;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"SelectArrow.cjs","sources":["../../src/Select/SelectArrow.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { PopperArrowProps } from '@/Popper'\n\nexport interface SelectArrowProps extends PopperArrowProps {}\n</script>\n\n<script setup lang=\"ts\">\nimport { PopperArrow } from '@/Popper'\nimport { injectSelectContentContext, SelectContentDefaultContextValue } from './SelectContentImpl.vue'\nimport { injectSelectRootContext } from './SelectRoot.vue'\n\nconst props = withDefaults(defineProps<SelectArrowProps>(), {\n width: 10,\n height: 5,\n as: 'svg',\n})\nconst rootContext = injectSelectRootContext()\nconst contentContext = injectSelectContentContext(SelectContentDefaultContextValue)\n</script>\n\n<template>\n <PopperArrow\n v-if=\"rootContext.open.value && contentContext.position === 'popper'\"\n v-bind=\"props\"\n >\n <slot />\n </PopperArrow>\n</template>\n"],"names":["injectSelectRootContext","injectSelectContentContext","SelectContentDefaultContextValue"],"mappings":";;;;;;;;;;;;;;;;;AAWA,IAAA,MAAM,KAAQ,GAAA,OAAA;AAKd,IAAA,MAAM,cAAcA,yCAAwB,EAAA;AAC5C,IAAM,MAAA,cAAA,GAAiBC,oDAA2BC,yDAAgC,CAAA;;;;;;;;;;;;;;"}
@@ -1,7 +1,7 @@
1
- import { defineComponent, unref, openBlock, createBlock, normalizeProps, mergeProps, withCtx, renderSlot, createCommentVNode } from 'vue';
1
+ import { defineComponent, createBlock, createCommentVNode, unref, openBlock, normalizeProps, mergeProps, withCtx, renderSlot } from 'vue';
2
2
  import { _ as _sfc_main$1 } from '../Popper/PopperArrow.js';
3
- import { i as injectSelectRootContext } from './SelectRoot.js';
4
3
  import { i as injectSelectContentContext, S as SelectContentDefaultContextValue } from './SelectContentImpl.js';
4
+ import { i as injectSelectRootContext } from './SelectRoot.js';
5
5
 
6
6
  const _sfc_main = /* @__PURE__ */ defineComponent({
7
7
  __name: "SelectArrow",
@@ -1 +1 @@
1
- {"version":3,"file":"SelectArrow.js","sources":["../../src/Select/SelectArrow.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { PopperArrowProps } from '@/Popper'\n\nexport interface SelectArrowProps extends PopperArrowProps {}\n</script>\n\n<script setup lang=\"ts\">\nimport { injectSelectRootContext } from './SelectRoot.vue'\nimport { SelectContentDefaultContextValue, injectSelectContentContext } from './SelectContentImpl.vue'\nimport { PopperArrow } from '@/Popper'\n\nconst props = withDefaults(defineProps<SelectArrowProps>(), {\n width: 10,\n height: 5,\n as: 'svg',\n})\nconst rootContext = injectSelectRootContext()\nconst contentContext = injectSelectContentContext(SelectContentDefaultContextValue)\n</script>\n\n<template>\n <PopperArrow\n v-if=\"rootContext.open.value && contentContext.position === 'popper'\"\n v-bind=\"props\"\n >\n <slot />\n </PopperArrow>\n</template>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;AAWA,IAAA,MAAM,KAAQ,GAAA,OAAA;AAKd,IAAA,MAAM,cAAc,uBAAwB,EAAA;AAC5C,IAAM,MAAA,cAAA,GAAiB,2BAA2B,gCAAgC,CAAA;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"SelectArrow.js","sources":["../../src/Select/SelectArrow.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { PopperArrowProps } from '@/Popper'\n\nexport interface SelectArrowProps extends PopperArrowProps {}\n</script>\n\n<script setup lang=\"ts\">\nimport { PopperArrow } from '@/Popper'\nimport { injectSelectContentContext, SelectContentDefaultContextValue } from './SelectContentImpl.vue'\nimport { injectSelectRootContext } from './SelectRoot.vue'\n\nconst props = withDefaults(defineProps<SelectArrowProps>(), {\n width: 10,\n height: 5,\n as: 'svg',\n})\nconst rootContext = injectSelectRootContext()\nconst contentContext = injectSelectContentContext(SelectContentDefaultContextValue)\n</script>\n\n<template>\n <PopperArrow\n v-if=\"rootContext.open.value && contentContext.position === 'popper'\"\n v-bind=\"props\"\n >\n <slot />\n </PopperArrow>\n</template>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;AAWA,IAAA,MAAM,KAAQ,GAAA,OAAA;AAKd,IAAA,MAAM,cAAc,uBAAwB,EAAA;AAC5C,IAAM,MAAA,cAAA,GAAiB,2BAA2B,gCAAgC,CAAA;;;;;;;;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"SelectContent.cjs","sources":["../../src/Select/SelectContent.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type {\n SelectContentImplEmits,\n SelectContentImplProps,\n} from './SelectContentImpl.vue'\n\nexport type SelectContentEmits = SelectContentImplEmits\n\nexport interface SelectContentProps extends SelectContentImplProps {\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with Vue animation libraries.\n */\n forceMount?: boolean\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { computed, onMounted, ref } from 'vue'\nimport SelectContentImpl from './SelectContentImpl.vue'\nimport { injectSelectRootContext } from './SelectRoot.vue'\nimport { Presence } from '@/Presence'\nimport { useForwardPropsEmits } from '@/shared'\nimport SelectProvider from './SelectProvider.vue'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst props = defineProps<SelectContentProps>()\n\nconst emits = defineEmits<SelectContentEmits>()\nconst forwarded = useForwardPropsEmits(props, emits)\n\nconst rootContext = injectSelectRootContext()\n\nconst fragment = ref<DocumentFragment>()\nonMounted(() => {\n fragment.value = new DocumentFragment()\n})\n\nconst presenceRef = ref<InstanceType<typeof Presence>>()\nconst renderPresence = computed(() => props.forceMount || rootContext.open.value)\n</script>\n\n<template>\n <Presence\n v-if=\"renderPresence\"\n ref=\"presenceRef\"\n :present=\"true\"\n >\n <SelectContentImpl v-bind=\"{ ...forwarded, ...$attrs }\">\n <slot />\n </SelectContentImpl>\n </Presence>\n\n <div v-else-if=\"!presenceRef?.present && fragment\">\n <Teleport :to=\"fragment\">\n <SelectProvider :context=\"rootContext\">\n <slot />\n </SelectProvider>\n </Teleport>\n </div>\n</template>\n"],"names":["useForwardPropsEmits","injectSelectRootContext","ref","onMounted","computed"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BA,IAAA,MAAM,KAAQ,GAAA,OAAA;AAEd,IAAA,MAAM,KAAQ,GAAA,MAAA;AACd,IAAM,MAAA,SAAA,GAAYA,gDAAqB,CAAA,KAAA,EAAO,KAAK,CAAA;AAEnD,IAAA,MAAM,cAAcC,yCAAwB,EAAA;AAE5C,IAAA,MAAM,WAAWC,OAAsB,EAAA;AACvC,IAAAC,aAAA,CAAU,MAAM;AACd,MAAS,QAAA,CAAA,KAAA,GAAQ,IAAI,gBAAiB,EAAA;AAAA,KACvC,CAAA;AAED,IAAA,MAAM,cAAcD,OAAmC,EAAA;AACvD,IAAA,MAAM,iBAAiBE,YAAS,CAAA,MAAM,MAAM,UAAc,IAAA,WAAA,CAAY,KAAK,KAAK,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"SelectContent.cjs","sources":["../../src/Select/SelectContent.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type {\n SelectContentImplEmits,\n SelectContentImplProps,\n} from './SelectContentImpl.vue'\n\nexport type SelectContentEmits = SelectContentImplEmits\n\nexport interface SelectContentProps extends SelectContentImplProps {\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with Vue animation libraries.\n */\n forceMount?: boolean\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { Presence } from '@/Presence'\nimport { useForwardPropsEmits } from '@/shared'\nimport { computed, onMounted, ref } from 'vue'\nimport SelectContentImpl from './SelectContentImpl.vue'\nimport SelectProvider from './SelectProvider.vue'\nimport { injectSelectRootContext } from './SelectRoot.vue'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst props = defineProps<SelectContentProps>()\n\nconst emits = defineEmits<SelectContentEmits>()\nconst forwarded = useForwardPropsEmits(props, emits)\n\nconst rootContext = injectSelectRootContext()\n\nconst fragment = ref<DocumentFragment>()\nonMounted(() => {\n fragment.value = new DocumentFragment()\n})\n\nconst presenceRef = ref<InstanceType<typeof Presence>>()\nconst renderPresence = computed(() => props.forceMount || rootContext.open.value)\n</script>\n\n<template>\n <Presence\n v-if=\"renderPresence\"\n ref=\"presenceRef\"\n :present=\"true\"\n >\n <SelectContentImpl v-bind=\"{ ...forwarded, ...$attrs }\">\n <slot />\n </SelectContentImpl>\n </Presence>\n\n <div v-else-if=\"!presenceRef?.present && fragment\">\n <Teleport :to=\"fragment\">\n <SelectProvider :context=\"rootContext\">\n <slot />\n </SelectProvider>\n </Teleport>\n </div>\n</template>\n"],"names":["useForwardPropsEmits","injectSelectRootContext","ref","onMounted","computed"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BA,IAAA,MAAM,KAAQ,GAAA,OAAA;AAEd,IAAA,MAAM,KAAQ,GAAA,MAAA;AACd,IAAM,MAAA,SAAA,GAAYA,gDAAqB,CAAA,KAAA,EAAO,KAAK,CAAA;AAEnD,IAAA,MAAM,cAAcC,yCAAwB,EAAA;AAE5C,IAAA,MAAM,WAAWC,OAAsB,EAAA;AACvC,IAAAC,aAAA,CAAU,MAAM;AACd,MAAS,QAAA,CAAA,KAAA,GAAQ,IAAI,gBAAiB,EAAA;AAAA,KACvC,CAAA;AAED,IAAA,MAAM,cAAcD,OAAmC,EAAA;AACvD,IAAA,MAAM,iBAAiBE,YAAS,CAAA,MAAM,MAAM,UAAc,IAAA,WAAA,CAAY,KAAK,KAAK,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,4 +1,4 @@
1
- import { defineComponent, ref, onMounted, computed, openBlock, createBlock, unref, withCtx, createVNode, normalizeProps, guardReactiveProps, renderSlot, createElementBlock, Teleport, createCommentVNode } from 'vue';
1
+ import { defineComponent, ref, onMounted, computed, createBlock, createElementBlock, createCommentVNode, openBlock, unref, withCtx, createVNode, normalizeProps, guardReactiveProps, renderSlot, Teleport } from 'vue';
2
2
  import { _ as _sfc_main$1 } from './SelectContentImpl.js';
3
3
  import { _ as _sfc_main$2 } from './SelectProvider.js';
4
4
  import { u as useForwardPropsEmits } from '../shared/useForwardPropsEmits.js';
@@ -1 +1 @@
1
- {"version":3,"file":"SelectContent.js","sources":["../../src/Select/SelectContent.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type {\n SelectContentImplEmits,\n SelectContentImplProps,\n} from './SelectContentImpl.vue'\n\nexport type SelectContentEmits = SelectContentImplEmits\n\nexport interface SelectContentProps extends SelectContentImplProps {\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with Vue animation libraries.\n */\n forceMount?: boolean\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { computed, onMounted, ref } from 'vue'\nimport SelectContentImpl from './SelectContentImpl.vue'\nimport { injectSelectRootContext } from './SelectRoot.vue'\nimport { Presence } from '@/Presence'\nimport { useForwardPropsEmits } from '@/shared'\nimport SelectProvider from './SelectProvider.vue'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst props = defineProps<SelectContentProps>()\n\nconst emits = defineEmits<SelectContentEmits>()\nconst forwarded = useForwardPropsEmits(props, emits)\n\nconst rootContext = injectSelectRootContext()\n\nconst fragment = ref<DocumentFragment>()\nonMounted(() => {\n fragment.value = new DocumentFragment()\n})\n\nconst presenceRef = ref<InstanceType<typeof Presence>>()\nconst renderPresence = computed(() => props.forceMount || rootContext.open.value)\n</script>\n\n<template>\n <Presence\n v-if=\"renderPresence\"\n ref=\"presenceRef\"\n :present=\"true\"\n >\n <SelectContentImpl v-bind=\"{ ...forwarded, ...$attrs }\">\n <slot />\n </SelectContentImpl>\n </Presence>\n\n <div v-else-if=\"!presenceRef?.present && fragment\">\n <Teleport :to=\"fragment\">\n <SelectProvider :context=\"rootContext\">\n <slot />\n </SelectProvider>\n </Teleport>\n </div>\n</template>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BA,IAAA,MAAM,KAAQ,GAAA,OAAA;AAEd,IAAA,MAAM,KAAQ,GAAA,MAAA;AACd,IAAM,MAAA,SAAA,GAAY,oBAAqB,CAAA,KAAA,EAAO,KAAK,CAAA;AAEnD,IAAA,MAAM,cAAc,uBAAwB,EAAA;AAE5C,IAAA,MAAM,WAAW,GAAsB,EAAA;AACvC,IAAA,SAAA,CAAU,MAAM;AACd,MAAS,QAAA,CAAA,KAAA,GAAQ,IAAI,gBAAiB,EAAA;AAAA,KACvC,CAAA;AAED,IAAA,MAAM,cAAc,GAAmC,EAAA;AACvD,IAAA,MAAM,iBAAiB,QAAS,CAAA,MAAM,MAAM,UAAc,IAAA,WAAA,CAAY,KAAK,KAAK,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"SelectContent.js","sources":["../../src/Select/SelectContent.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type {\n SelectContentImplEmits,\n SelectContentImplProps,\n} from './SelectContentImpl.vue'\n\nexport type SelectContentEmits = SelectContentImplEmits\n\nexport interface SelectContentProps extends SelectContentImplProps {\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with Vue animation libraries.\n */\n forceMount?: boolean\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { Presence } from '@/Presence'\nimport { useForwardPropsEmits } from '@/shared'\nimport { computed, onMounted, ref } from 'vue'\nimport SelectContentImpl from './SelectContentImpl.vue'\nimport SelectProvider from './SelectProvider.vue'\nimport { injectSelectRootContext } from './SelectRoot.vue'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst props = defineProps<SelectContentProps>()\n\nconst emits = defineEmits<SelectContentEmits>()\nconst forwarded = useForwardPropsEmits(props, emits)\n\nconst rootContext = injectSelectRootContext()\n\nconst fragment = ref<DocumentFragment>()\nonMounted(() => {\n fragment.value = new DocumentFragment()\n})\n\nconst presenceRef = ref<InstanceType<typeof Presence>>()\nconst renderPresence = computed(() => props.forceMount || rootContext.open.value)\n</script>\n\n<template>\n <Presence\n v-if=\"renderPresence\"\n ref=\"presenceRef\"\n :present=\"true\"\n >\n <SelectContentImpl v-bind=\"{ ...forwarded, ...$attrs }\">\n <slot />\n </SelectContentImpl>\n </Presence>\n\n <div v-else-if=\"!presenceRef?.present && fragment\">\n <Teleport :to=\"fragment\">\n <SelectProvider :context=\"rootContext\">\n <slot />\n </SelectProvider>\n </Teleport>\n </div>\n</template>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BA,IAAA,MAAM,KAAQ,GAAA,OAAA;AAEd,IAAA,MAAM,KAAQ,GAAA,MAAA;AACd,IAAM,MAAA,SAAA,GAAY,oBAAqB,CAAA,KAAA,EAAO,KAAK,CAAA;AAEnD,IAAA,MAAM,cAAc,uBAAwB,EAAA;AAE5C,IAAA,MAAM,WAAW,GAAsB,EAAA;AACvC,IAAA,SAAA,CAAU,MAAM;AACd,MAAS,QAAA,CAAA,KAAA,GAAQ,IAAI,gBAAiB,EAAA;AAAA,KACvC,CAAA;AAED,IAAA,MAAM,cAAc,GAAmC,EAAA;AACvD,IAAA,MAAM,iBAAiB,QAAS,CAAA,MAAM,MAAM,UAAc,IAAA,WAAA,CAAY,KAAK,KAAK,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,20 +1,20 @@
1
1
  'use strict';
2
2
 
3
3
  const vue = require('vue');
4
+ const DismissableLayer_DismissableLayer = require('../DismissableLayer/DismissableLayer.cjs');
5
+ const Menu_utils = require('../Menu/utils.cjs');
4
6
  const core = require('@vueuse/core');
5
7
  const Select_SelectItemAlignedPosition = require('./SelectItemAlignedPosition.cjs');
6
8
  const Select_SelectPopperPosition = require('./SelectPopperPosition.cjs');
7
- const DismissableLayer_DismissableLayer = require('../DismissableLayer/DismissableLayer.cjs');
8
- const Menu_utils = require('../Menu/utils.cjs');
9
+ const Collection_Collection = require('../Collection/Collection.cjs');
9
10
  const shared_useBodyScrollLock = require('../shared/useBodyScrollLock.cjs');
10
11
  const Select_utils = require('./utils.cjs');
11
- const Collection_Collection = require('../Collection/Collection.cjs');
12
+ const shared_createContext = require('../shared/createContext.cjs');
12
13
  const shared_useFocusGuards = require('../shared/useFocusGuards.cjs');
13
14
  const shared_useHideOthers = require('../shared/useHideOthers.cjs');
14
15
  const shared_useTypeahead = require('../shared/useTypeahead.cjs');
15
16
  const shared_useForwardProps = require('../shared/useForwardProps.cjs');
16
17
  const FocusScope_FocusScope = require('../FocusScope/FocusScope.cjs');
17
- const shared_createContext = require('../shared/createContext.cjs');
18
18
  const Select_SelectRoot = require('./SelectRoot.cjs');
19
19
 
20
20
  const SelectContentDefaultContextValue = {
@@ -215,7 +215,7 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
215
215
  id: vue.unref(rootContext).contentId,
216
216
  ref: (vnode) => {
217
217
  content.value = vue.unref(core.unrefElement)(vnode);
218
- return undefined;
218
+ return void 0;
219
219
  },
220
220
  role: "listbox",
221
221
  "data-state": vue.unref(rootContext).open.value ? "open" : "closed",
@@ -1 +1 @@
1
- {"version":3,"file":"SelectContentImpl.cjs","sources":["../../src/Select/SelectContentImpl.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type {\n ComponentPublicInstance,\n Ref,\n} from 'vue'\nimport type { PopperContentProps } from '@/Popper'\nimport type { PointerDownOutsideEvent } from '@/DismissableLayer'\nimport {\n createContext,\n useFocusGuards,\n useForwardProps,\n useHideOthers,\n useTypeahead,\n} from '@/shared'\nimport { useBodyScrollLock } from '@/shared/useBodyScrollLock'\nimport type { AcceptableValue } from '@/shared/types'\nimport { valueComparator } from './utils'\nimport { useCollection } from '@/Collection'\n\nexport interface SelectContentContext {\n content?: Ref<HTMLElement | undefined>\n viewport?: Ref<HTMLElement | undefined>\n onViewportChange: (node: HTMLElement | undefined) => void\n itemRefCallback: (\n node: HTMLElement | undefined,\n value: AcceptableValue,\n disabled: boolean\n ) => void\n selectedItem?: Ref<HTMLElement | undefined>\n onItemLeave?: () => void\n itemTextRefCallback: (\n node: HTMLElement | undefined,\n value: AcceptableValue,\n disabled: boolean\n ) => void\n focusSelectedItem?: () => void\n selectedItemText?: Ref<HTMLElement | undefined>\n position?: 'item-aligned' | 'popper'\n isPositioned?: Ref<boolean>\n searchRef?: Ref<string>\n}\n\nexport const SelectContentDefaultContextValue: SelectContentContext = {\n onViewportChange: () => {},\n itemTextRefCallback: () => {},\n itemRefCallback: () => {},\n}\n\nexport type SelectContentImplEmits = {\n closeAutoFocus: [event: Event]\n /**\n * Event handler called when the escape key is down.\n * Can be prevented.\n */\n escapeKeyDown: [event: KeyboardEvent]\n /**\n * Event handler called when a `pointerdown` event happens outside of the `DismissableLayer`.\n * Can be prevented.\n */\n pointerDownOutside: [event: PointerDownOutsideEvent]\n}\n\nexport interface SelectContentImplProps extends PopperContentProps {\n /**\n * The positioning mode to use\n *\n * `item-aligned (default)` - behaves similarly to a native MacOS menu by positioning content relative to the active item. <br>\n * `popper` - positions content in the same way as our other primitives, for example `Popover` or `DropdownMenu`.\n */\n position?: 'item-aligned' | 'popper'\n /**\n * The document.body will be lock, and scrolling will be disabled.\n *\n * @defaultValue true\n */\n bodyLock?: boolean\n}\n\nexport const [injectSelectContentContext, provideSelectContentContext]\n = createContext<SelectContentContext>('SelectContent')\n</script>\n\n<script setup lang=\"ts\">\nimport {\n computed,\n ref,\n watch,\n watchEffect,\n} from 'vue'\nimport { unrefElement } from '@vueuse/core'\nimport { injectSelectRootContext } from './SelectRoot.vue'\nimport SelectItemAlignedPosition from './SelectItemAlignedPosition.vue'\nimport SelectPopperPosition from './SelectPopperPosition.vue'\nimport { FocusScope } from '@/FocusScope'\nimport { DismissableLayer } from '@/DismissableLayer'\nimport { focusFirst } from '@/Menu/utils'\n\nconst props = withDefaults(defineProps<SelectContentImplProps>(), {\n align: 'start',\n position: 'item-aligned',\n bodyLock: true,\n})\nconst emits = defineEmits<SelectContentImplEmits>()\n\nconst rootContext = injectSelectRootContext()\n\nuseFocusGuards()\nuseBodyScrollLock(props.bodyLock)\nconst { CollectionSlot, getItems } = useCollection()\n\nconst content = ref<HTMLElement>()\nuseHideOthers(content)\n\nconst { search, handleTypeaheadSearch } = useTypeahead()\n\nconst viewport = ref<HTMLElement>()\nconst selectedItem = ref<HTMLElement>()\nconst selectedItemText = ref<HTMLElement>()\nconst isPositioned = ref(false)\nconst firstValidItemFoundRef = ref(false)\nconst firstSelectedItemInArrayFoundRef = ref(false)\n\nfunction focusSelectedItem() {\n if (selectedItem.value && content.value)\n focusFirst([selectedItem.value, content.value])\n}\n\nwatch(isPositioned, () => {\n focusSelectedItem()\n})\n\n// prevent selecting items on `pointerup` in some cases after opening from `pointerdown`\n// and close on `pointerup` outside.\nconst { onOpenChange, triggerPointerDownPosRef } = rootContext\nwatchEffect((cleanupFn) => {\n if (!content.value)\n return\n let pointerMoveDelta = { x: 0, y: 0 }\n\n const handlePointerMove = (event: PointerEvent) => {\n pointerMoveDelta = {\n x: Math.abs(\n Math.round(event.pageX) - (triggerPointerDownPosRef.value?.x ?? 0),\n ),\n y: Math.abs(\n Math.round(event.pageY) - (triggerPointerDownPosRef.value?.y ?? 0),\n ),\n }\n }\n const handlePointerUp = (event: PointerEvent) => {\n // Prevent options from being untappable on touch devices\n // https://github.com/unovue/reka-ui/issues/804\n if (event.pointerType === 'touch')\n return\n\n // If the pointer hasn't moved by a certain threshold then we prevent selecting item on `pointerup`.\n if (pointerMoveDelta.x <= 10 && pointerMoveDelta.y <= 10) {\n event.preventDefault()\n }\n else {\n // otherwise, if the event was outside the content, close.\n if (!content.value?.contains(event.target as HTMLElement))\n onOpenChange(false)\n }\n document.removeEventListener('pointermove', handlePointerMove)\n triggerPointerDownPosRef.value = null\n }\n\n if (triggerPointerDownPosRef.value !== null) {\n document.addEventListener('pointermove', handlePointerMove)\n document.addEventListener('pointerup', handlePointerUp, {\n capture: true,\n once: true,\n })\n }\n\n cleanupFn(() => {\n document.removeEventListener('pointermove', handlePointerMove)\n document.removeEventListener('pointerup', handlePointerUp, {\n capture: true,\n })\n })\n})\n\nfunction handleKeyDown(event: KeyboardEvent) {\n const isModifierKey = event.ctrlKey || event.altKey || event.metaKey\n\n // select should not be navigated using tab key so we prevent it\n if (event.key === 'Tab')\n event.preventDefault()\n\n if (!isModifierKey && event.key.length === 1)\n handleTypeaheadSearch(event.key, getItems())\n\n if (['ArrowUp', 'ArrowDown', 'Home', 'End'].includes(event.key)) {\n const collectionItems = getItems().map(i => i.ref)\n let candidateNodes = [...collectionItems]\n\n if (['ArrowUp', 'End'].includes(event.key))\n candidateNodes = candidateNodes.slice().reverse()\n\n if (['ArrowUp', 'ArrowDown'].includes(event.key)) {\n const currentElement = event.target as HTMLElement\n const currentIndex = candidateNodes.indexOf(currentElement)\n candidateNodes = candidateNodes.slice(currentIndex + 1)\n }\n setTimeout(() => focusFirst(candidateNodes))\n event.preventDefault()\n }\n}\n\nconst pickedProps = computed(() => {\n if (props.position === 'popper')\n return props\n else return {}\n})\n\nconst forwardedProps = useForwardProps(pickedProps.value)\n\nprovideSelectContentContext({\n content,\n viewport,\n onViewportChange: (node) => {\n viewport.value = node\n },\n itemRefCallback: (node, value, disabled) => {\n const isFirstValidItem = !firstValidItemFoundRef.value && !disabled\n const isSelectedItem = valueComparator(rootContext.modelValue.value, value, rootContext.by)\n\n if (rootContext.multiple.value) {\n if (firstSelectedItemInArrayFoundRef.value) {\n return\n }\n if (isSelectedItem || isFirstValidItem) {\n selectedItem.value = node\n\n // make sure to keep the first item highlighted when `multiple`\n if (isSelectedItem) {\n firstSelectedItemInArrayFoundRef.value = true\n }\n }\n }\n else {\n if (isSelectedItem || isFirstValidItem) {\n selectedItem.value = node\n }\n }\n\n if (isFirstValidItem) {\n firstValidItemFoundRef.value = true\n }\n },\n selectedItem,\n selectedItemText,\n onItemLeave: () => {\n content.value?.focus()\n },\n itemTextRefCallback: (node, value, disabled) => {\n const isFirstValidItem = !firstValidItemFoundRef.value && !disabled\n const isSelectedItem = valueComparator(rootContext.modelValue.value, value, rootContext.by)\n\n if (isSelectedItem || isFirstValidItem)\n selectedItemText.value = node\n },\n focusSelectedItem,\n position: props.position,\n isPositioned,\n searchRef: search,\n})\n</script>\n\n<template>\n <CollectionSlot>\n <FocusScope\n as-child\n @mount-auto-focus.prevent\n @unmount-auto-focus=\"\n (event) => {\n emits('closeAutoFocus', event);\n if (event.defaultPrevented) return;\n rootContext.triggerElement.value?.focus({ preventScroll: true });\n event.preventDefault();\n }\n \"\n >\n <DismissableLayer\n as-child\n disable-outside-pointer-events\n @focus-outside.prevent\n @dismiss=\"rootContext.onOpenChange(false)\"\n @escape-key-down=\"emits('escapeKeyDown', $event)\"\n @pointer-down-outside=\"emits('pointerDownOutside', $event)\"\n >\n <component\n :is=\"\n position === 'popper'\n ? SelectPopperPosition\n : SelectItemAlignedPosition\n \"\n v-bind=\"{ ...$attrs, ...forwardedProps }\"\n :id=\"rootContext.contentId\"\n :ref=\"\n (vnode: ComponentPublicInstance) => {\n content = unrefElement(vnode) as HTMLElement\n return undefined\n }\n \"\n role=\"listbox\"\n :data-state=\"rootContext.open.value ? 'open' : 'closed'\"\n :dir=\"rootContext.dir.value\"\n :style=\"{\n // flex layout so we can place the scroll buttons properly\n display: 'flex',\n flexDirection: 'column',\n // reset the outline by default as the content MAY get focused\n outline: 'none',\n }\"\n @contextmenu.prevent\n @placed=\"isPositioned = true\"\n @keydown=\"(handleKeyDown as any)\"\n >\n <slot />\n </component>\n </DismissableLayer>\n </FocusScope>\n </CollectionSlot>\n</template>\n"],"names":["createContext","injectSelectRootContext","useFocusGuards","useBodyScrollLock","useCollection","ref","useHideOthers","useTypeahead","focusFirst","watch","watchEffect","computed","useForwardProps","valueComparator"],"mappings":"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"}
1
+ {"version":3,"file":"SelectContentImpl.cjs","sources":["../../src/Select/SelectContentImpl.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { PointerDownOutsideEvent } from '@/DismissableLayer'\nimport type { PopperContentProps } from '@/Popper'\nimport type { AcceptableValue } from '@/shared/types'\nimport type {\n ComponentPublicInstance,\n Ref,\n} from 'vue'\nimport { useCollection } from '@/Collection'\nimport {\n createContext,\n useFocusGuards,\n useForwardProps,\n useHideOthers,\n useTypeahead,\n} from '@/shared'\nimport { useBodyScrollLock } from '@/shared/useBodyScrollLock'\nimport { valueComparator } from './utils'\n\nexport interface SelectContentContext {\n content?: Ref<HTMLElement | undefined>\n viewport?: Ref<HTMLElement | undefined>\n onViewportChange: (node: HTMLElement | undefined) => void\n itemRefCallback: (\n node: HTMLElement | undefined,\n value: AcceptableValue,\n disabled: boolean\n ) => void\n selectedItem?: Ref<HTMLElement | undefined>\n onItemLeave?: () => void\n itemTextRefCallback: (\n node: HTMLElement | undefined,\n value: AcceptableValue,\n disabled: boolean\n ) => void\n focusSelectedItem?: () => void\n selectedItemText?: Ref<HTMLElement | undefined>\n position?: 'item-aligned' | 'popper'\n isPositioned?: Ref<boolean>\n searchRef?: Ref<string>\n}\n\nexport const SelectContentDefaultContextValue: SelectContentContext = {\n onViewportChange: () => {},\n itemTextRefCallback: () => {},\n itemRefCallback: () => {},\n}\n\nexport type SelectContentImplEmits = {\n closeAutoFocus: [event: Event]\n /**\n * Event handler called when the escape key is down.\n * Can be prevented.\n */\n escapeKeyDown: [event: KeyboardEvent]\n /**\n * Event handler called when a `pointerdown` event happens outside of the `DismissableLayer`.\n * Can be prevented.\n */\n pointerDownOutside: [event: PointerDownOutsideEvent]\n}\n\nexport interface SelectContentImplProps extends PopperContentProps {\n /**\n * The positioning mode to use\n *\n * `item-aligned (default)` - behaves similarly to a native MacOS menu by positioning content relative to the active item. <br>\n * `popper` - positions content in the same way as our other primitives, for example `Popover` or `DropdownMenu`.\n */\n position?: 'item-aligned' | 'popper'\n /**\n * The document.body will be lock, and scrolling will be disabled.\n *\n * @defaultValue true\n */\n bodyLock?: boolean\n}\n\nexport const [injectSelectContentContext, provideSelectContentContext]\n = createContext<SelectContentContext>('SelectContent')\n</script>\n\n<script setup lang=\"ts\">\nimport { DismissableLayer } from '@/DismissableLayer'\nimport { FocusScope } from '@/FocusScope'\nimport { focusFirst } from '@/Menu/utils'\nimport { unrefElement } from '@vueuse/core'\nimport {\n computed,\n ref,\n watch,\n watchEffect,\n} from 'vue'\nimport SelectItemAlignedPosition from './SelectItemAlignedPosition.vue'\nimport SelectPopperPosition from './SelectPopperPosition.vue'\nimport { injectSelectRootContext } from './SelectRoot.vue'\n\nconst props = withDefaults(defineProps<SelectContentImplProps>(), {\n align: 'start',\n position: 'item-aligned',\n bodyLock: true,\n})\nconst emits = defineEmits<SelectContentImplEmits>()\n\nconst rootContext = injectSelectRootContext()\n\nuseFocusGuards()\nuseBodyScrollLock(props.bodyLock)\nconst { CollectionSlot, getItems } = useCollection()\n\nconst content = ref<HTMLElement>()\nuseHideOthers(content)\n\nconst { search, handleTypeaheadSearch } = useTypeahead()\n\nconst viewport = ref<HTMLElement>()\nconst selectedItem = ref<HTMLElement>()\nconst selectedItemText = ref<HTMLElement>()\nconst isPositioned = ref(false)\nconst firstValidItemFoundRef = ref(false)\nconst firstSelectedItemInArrayFoundRef = ref(false)\n\nfunction focusSelectedItem() {\n if (selectedItem.value && content.value)\n focusFirst([selectedItem.value, content.value])\n}\n\nwatch(isPositioned, () => {\n focusSelectedItem()\n})\n\n// prevent selecting items on `pointerup` in some cases after opening from `pointerdown`\n// and close on `pointerup` outside.\nconst { onOpenChange, triggerPointerDownPosRef } = rootContext\nwatchEffect((cleanupFn) => {\n if (!content.value)\n return\n let pointerMoveDelta = { x: 0, y: 0 }\n\n const handlePointerMove = (event: PointerEvent) => {\n pointerMoveDelta = {\n x: Math.abs(\n Math.round(event.pageX) - (triggerPointerDownPosRef.value?.x ?? 0),\n ),\n y: Math.abs(\n Math.round(event.pageY) - (triggerPointerDownPosRef.value?.y ?? 0),\n ),\n }\n }\n const handlePointerUp = (event: PointerEvent) => {\n // Prevent options from being untappable on touch devices\n // https://github.com/unovue/reka-ui/issues/804\n if (event.pointerType === 'touch')\n return\n\n // If the pointer hasn't moved by a certain threshold then we prevent selecting item on `pointerup`.\n if (pointerMoveDelta.x <= 10 && pointerMoveDelta.y <= 10) {\n event.preventDefault()\n }\n else {\n // otherwise, if the event was outside the content, close.\n if (!content.value?.contains(event.target as HTMLElement))\n onOpenChange(false)\n }\n document.removeEventListener('pointermove', handlePointerMove)\n triggerPointerDownPosRef.value = null\n }\n\n if (triggerPointerDownPosRef.value !== null) {\n document.addEventListener('pointermove', handlePointerMove)\n document.addEventListener('pointerup', handlePointerUp, {\n capture: true,\n once: true,\n })\n }\n\n cleanupFn(() => {\n document.removeEventListener('pointermove', handlePointerMove)\n document.removeEventListener('pointerup', handlePointerUp, {\n capture: true,\n })\n })\n})\n\nfunction handleKeyDown(event: KeyboardEvent) {\n const isModifierKey = event.ctrlKey || event.altKey || event.metaKey\n\n // select should not be navigated using tab key so we prevent it\n if (event.key === 'Tab')\n event.preventDefault()\n\n if (!isModifierKey && event.key.length === 1)\n handleTypeaheadSearch(event.key, getItems())\n\n if (['ArrowUp', 'ArrowDown', 'Home', 'End'].includes(event.key)) {\n const collectionItems = getItems().map(i => i.ref)\n let candidateNodes = [...collectionItems]\n\n if (['ArrowUp', 'End'].includes(event.key))\n candidateNodes = candidateNodes.slice().reverse()\n\n if (['ArrowUp', 'ArrowDown'].includes(event.key)) {\n const currentElement = event.target as HTMLElement\n const currentIndex = candidateNodes.indexOf(currentElement)\n candidateNodes = candidateNodes.slice(currentIndex + 1)\n }\n setTimeout(() => focusFirst(candidateNodes))\n event.preventDefault()\n }\n}\n\nconst pickedProps = computed(() => {\n if (props.position === 'popper')\n return props\n else return {}\n})\n\nconst forwardedProps = useForwardProps(pickedProps.value)\n\nprovideSelectContentContext({\n content,\n viewport,\n onViewportChange: (node) => {\n viewport.value = node\n },\n itemRefCallback: (node, value, disabled) => {\n const isFirstValidItem = !firstValidItemFoundRef.value && !disabled\n const isSelectedItem = valueComparator(rootContext.modelValue.value, value, rootContext.by)\n\n if (rootContext.multiple.value) {\n if (firstSelectedItemInArrayFoundRef.value) {\n return\n }\n if (isSelectedItem || isFirstValidItem) {\n selectedItem.value = node\n\n // make sure to keep the first item highlighted when `multiple`\n if (isSelectedItem) {\n firstSelectedItemInArrayFoundRef.value = true\n }\n }\n }\n else {\n if (isSelectedItem || isFirstValidItem) {\n selectedItem.value = node\n }\n }\n\n if (isFirstValidItem) {\n firstValidItemFoundRef.value = true\n }\n },\n selectedItem,\n selectedItemText,\n onItemLeave: () => {\n content.value?.focus()\n },\n itemTextRefCallback: (node, value, disabled) => {\n const isFirstValidItem = !firstValidItemFoundRef.value && !disabled\n const isSelectedItem = valueComparator(rootContext.modelValue.value, value, rootContext.by)\n\n if (isSelectedItem || isFirstValidItem)\n selectedItemText.value = node\n },\n focusSelectedItem,\n position: props.position,\n isPositioned,\n searchRef: search,\n})\n</script>\n\n<template>\n <CollectionSlot>\n <FocusScope\n as-child\n @mount-auto-focus.prevent\n @unmount-auto-focus=\"\n (event) => {\n emits('closeAutoFocus', event);\n if (event.defaultPrevented) return;\n rootContext.triggerElement.value?.focus({ preventScroll: true });\n event.preventDefault();\n }\n \"\n >\n <DismissableLayer\n as-child\n disable-outside-pointer-events\n @focus-outside.prevent\n @dismiss=\"rootContext.onOpenChange(false)\"\n @escape-key-down=\"emits('escapeKeyDown', $event)\"\n @pointer-down-outside=\"emits('pointerDownOutside', $event)\"\n >\n <component\n :is=\"\n position === 'popper'\n ? SelectPopperPosition\n : SelectItemAlignedPosition\n \"\n v-bind=\"{ ...$attrs, ...forwardedProps }\"\n :id=\"rootContext.contentId\"\n :ref=\"\n (vnode: ComponentPublicInstance) => {\n content = unrefElement(vnode) as HTMLElement\n return undefined\n }\n \"\n role=\"listbox\"\n :data-state=\"rootContext.open.value ? 'open' : 'closed'\"\n :dir=\"rootContext.dir.value\"\n :style=\"{\n // flex layout so we can place the scroll buttons properly\n display: 'flex',\n flexDirection: 'column',\n // reset the outline by default as the content MAY get focused\n outline: 'none',\n }\"\n @contextmenu.prevent\n @placed=\"isPositioned = true\"\n @keydown=\"(handleKeyDown as any)\"\n >\n <slot />\n </component>\n </DismissableLayer>\n </FocusScope>\n </CollectionSlot>\n</template>\n"],"names":["createContext","injectSelectRootContext","useFocusGuards","useBodyScrollLock","useCollection","ref","useHideOthers","useTypeahead","focusFirst","watch","watchEffect","computed","useForwardProps","valueComparator"],"mappings":"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"}
@@ -1,18 +1,18 @@
1
- import { defineComponent, ref, watch, watchEffect, computed, openBlock, createBlock, unref, withCtx, createVNode, withModifiers, resolveDynamicComponent, mergeProps, renderSlot } from 'vue';
1
+ import { defineComponent, ref, watch, watchEffect, computed, createBlock, openBlock, unref, withCtx, createVNode, withModifiers, resolveDynamicComponent, mergeProps, renderSlot } from 'vue';
2
+ import { _ as _sfc_main$2 } from '../DismissableLayer/DismissableLayer.js';
3
+ import { f as focusFirst } from '../Menu/utils.js';
2
4
  import { unrefElement } from '@vueuse/core';
3
5
  import { _ as _sfc_main$4 } from './SelectItemAlignedPosition.js';
4
6
  import { _ as _sfc_main$3 } from './SelectPopperPosition.js';
5
- import { _ as _sfc_main$2 } from '../DismissableLayer/DismissableLayer.js';
6
- import { f as focusFirst } from '../Menu/utils.js';
7
+ import { u as useCollection } from '../Collection/Collection.js';
7
8
  import { u as useBodyScrollLock } from '../shared/useBodyScrollLock.js';
8
9
  import { v as valueComparator } from './utils.js';
9
- import { u as useCollection } from '../Collection/Collection.js';
10
+ import { c as createContext } from '../shared/createContext.js';
10
11
  import { u as useFocusGuards } from '../shared/useFocusGuards.js';
11
12
  import { u as useHideOthers } from '../shared/useHideOthers.js';
12
13
  import { u as useTypeahead } from '../shared/useTypeahead.js';
13
14
  import { u as useForwardProps } from '../shared/useForwardProps.js';
14
15
  import { _ as _sfc_main$1 } from '../FocusScope/FocusScope.js';
15
- import { c as createContext } from '../shared/createContext.js';
16
16
  import { i as injectSelectRootContext } from './SelectRoot.js';
17
17
 
18
18
  const SelectContentDefaultContextValue = {
@@ -213,7 +213,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
213
213
  id: unref(rootContext).contentId,
214
214
  ref: (vnode) => {
215
215
  content.value = unref(unrefElement)(vnode);
216
- return undefined;
216
+ return void 0;
217
217
  },
218
218
  role: "listbox",
219
219
  "data-state": unref(rootContext).open.value ? "open" : "closed",
@@ -1 +1 @@
1
- {"version":3,"file":"SelectContentImpl.js","sources":["../../src/Select/SelectContentImpl.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type {\n ComponentPublicInstance,\n Ref,\n} from 'vue'\nimport type { PopperContentProps } from '@/Popper'\nimport type { PointerDownOutsideEvent } from '@/DismissableLayer'\nimport {\n createContext,\n useFocusGuards,\n useForwardProps,\n useHideOthers,\n useTypeahead,\n} from '@/shared'\nimport { useBodyScrollLock } from '@/shared/useBodyScrollLock'\nimport type { AcceptableValue } from '@/shared/types'\nimport { valueComparator } from './utils'\nimport { useCollection } from '@/Collection'\n\nexport interface SelectContentContext {\n content?: Ref<HTMLElement | undefined>\n viewport?: Ref<HTMLElement | undefined>\n onViewportChange: (node: HTMLElement | undefined) => void\n itemRefCallback: (\n node: HTMLElement | undefined,\n value: AcceptableValue,\n disabled: boolean\n ) => void\n selectedItem?: Ref<HTMLElement | undefined>\n onItemLeave?: () => void\n itemTextRefCallback: (\n node: HTMLElement | undefined,\n value: AcceptableValue,\n disabled: boolean\n ) => void\n focusSelectedItem?: () => void\n selectedItemText?: Ref<HTMLElement | undefined>\n position?: 'item-aligned' | 'popper'\n isPositioned?: Ref<boolean>\n searchRef?: Ref<string>\n}\n\nexport const SelectContentDefaultContextValue: SelectContentContext = {\n onViewportChange: () => {},\n itemTextRefCallback: () => {},\n itemRefCallback: () => {},\n}\n\nexport type SelectContentImplEmits = {\n closeAutoFocus: [event: Event]\n /**\n * Event handler called when the escape key is down.\n * Can be prevented.\n */\n escapeKeyDown: [event: KeyboardEvent]\n /**\n * Event handler called when a `pointerdown` event happens outside of the `DismissableLayer`.\n * Can be prevented.\n */\n pointerDownOutside: [event: PointerDownOutsideEvent]\n}\n\nexport interface SelectContentImplProps extends PopperContentProps {\n /**\n * The positioning mode to use\n *\n * `item-aligned (default)` - behaves similarly to a native MacOS menu by positioning content relative to the active item. <br>\n * `popper` - positions content in the same way as our other primitives, for example `Popover` or `DropdownMenu`.\n */\n position?: 'item-aligned' | 'popper'\n /**\n * The document.body will be lock, and scrolling will be disabled.\n *\n * @defaultValue true\n */\n bodyLock?: boolean\n}\n\nexport const [injectSelectContentContext, provideSelectContentContext]\n = createContext<SelectContentContext>('SelectContent')\n</script>\n\n<script setup lang=\"ts\">\nimport {\n computed,\n ref,\n watch,\n watchEffect,\n} from 'vue'\nimport { unrefElement } from '@vueuse/core'\nimport { injectSelectRootContext } from './SelectRoot.vue'\nimport SelectItemAlignedPosition from './SelectItemAlignedPosition.vue'\nimport SelectPopperPosition from './SelectPopperPosition.vue'\nimport { FocusScope } from '@/FocusScope'\nimport { DismissableLayer } from '@/DismissableLayer'\nimport { focusFirst } from '@/Menu/utils'\n\nconst props = withDefaults(defineProps<SelectContentImplProps>(), {\n align: 'start',\n position: 'item-aligned',\n bodyLock: true,\n})\nconst emits = defineEmits<SelectContentImplEmits>()\n\nconst rootContext = injectSelectRootContext()\n\nuseFocusGuards()\nuseBodyScrollLock(props.bodyLock)\nconst { CollectionSlot, getItems } = useCollection()\n\nconst content = ref<HTMLElement>()\nuseHideOthers(content)\n\nconst { search, handleTypeaheadSearch } = useTypeahead()\n\nconst viewport = ref<HTMLElement>()\nconst selectedItem = ref<HTMLElement>()\nconst selectedItemText = ref<HTMLElement>()\nconst isPositioned = ref(false)\nconst firstValidItemFoundRef = ref(false)\nconst firstSelectedItemInArrayFoundRef = ref(false)\n\nfunction focusSelectedItem() {\n if (selectedItem.value && content.value)\n focusFirst([selectedItem.value, content.value])\n}\n\nwatch(isPositioned, () => {\n focusSelectedItem()\n})\n\n// prevent selecting items on `pointerup` in some cases after opening from `pointerdown`\n// and close on `pointerup` outside.\nconst { onOpenChange, triggerPointerDownPosRef } = rootContext\nwatchEffect((cleanupFn) => {\n if (!content.value)\n return\n let pointerMoveDelta = { x: 0, y: 0 }\n\n const handlePointerMove = (event: PointerEvent) => {\n pointerMoveDelta = {\n x: Math.abs(\n Math.round(event.pageX) - (triggerPointerDownPosRef.value?.x ?? 0),\n ),\n y: Math.abs(\n Math.round(event.pageY) - (triggerPointerDownPosRef.value?.y ?? 0),\n ),\n }\n }\n const handlePointerUp = (event: PointerEvent) => {\n // Prevent options from being untappable on touch devices\n // https://github.com/unovue/reka-ui/issues/804\n if (event.pointerType === 'touch')\n return\n\n // If the pointer hasn't moved by a certain threshold then we prevent selecting item on `pointerup`.\n if (pointerMoveDelta.x <= 10 && pointerMoveDelta.y <= 10) {\n event.preventDefault()\n }\n else {\n // otherwise, if the event was outside the content, close.\n if (!content.value?.contains(event.target as HTMLElement))\n onOpenChange(false)\n }\n document.removeEventListener('pointermove', handlePointerMove)\n triggerPointerDownPosRef.value = null\n }\n\n if (triggerPointerDownPosRef.value !== null) {\n document.addEventListener('pointermove', handlePointerMove)\n document.addEventListener('pointerup', handlePointerUp, {\n capture: true,\n once: true,\n })\n }\n\n cleanupFn(() => {\n document.removeEventListener('pointermove', handlePointerMove)\n document.removeEventListener('pointerup', handlePointerUp, {\n capture: true,\n })\n })\n})\n\nfunction handleKeyDown(event: KeyboardEvent) {\n const isModifierKey = event.ctrlKey || event.altKey || event.metaKey\n\n // select should not be navigated using tab key so we prevent it\n if (event.key === 'Tab')\n event.preventDefault()\n\n if (!isModifierKey && event.key.length === 1)\n handleTypeaheadSearch(event.key, getItems())\n\n if (['ArrowUp', 'ArrowDown', 'Home', 'End'].includes(event.key)) {\n const collectionItems = getItems().map(i => i.ref)\n let candidateNodes = [...collectionItems]\n\n if (['ArrowUp', 'End'].includes(event.key))\n candidateNodes = candidateNodes.slice().reverse()\n\n if (['ArrowUp', 'ArrowDown'].includes(event.key)) {\n const currentElement = event.target as HTMLElement\n const currentIndex = candidateNodes.indexOf(currentElement)\n candidateNodes = candidateNodes.slice(currentIndex + 1)\n }\n setTimeout(() => focusFirst(candidateNodes))\n event.preventDefault()\n }\n}\n\nconst pickedProps = computed(() => {\n if (props.position === 'popper')\n return props\n else return {}\n})\n\nconst forwardedProps = useForwardProps(pickedProps.value)\n\nprovideSelectContentContext({\n content,\n viewport,\n onViewportChange: (node) => {\n viewport.value = node\n },\n itemRefCallback: (node, value, disabled) => {\n const isFirstValidItem = !firstValidItemFoundRef.value && !disabled\n const isSelectedItem = valueComparator(rootContext.modelValue.value, value, rootContext.by)\n\n if (rootContext.multiple.value) {\n if (firstSelectedItemInArrayFoundRef.value) {\n return\n }\n if (isSelectedItem || isFirstValidItem) {\n selectedItem.value = node\n\n // make sure to keep the first item highlighted when `multiple`\n if (isSelectedItem) {\n firstSelectedItemInArrayFoundRef.value = true\n }\n }\n }\n else {\n if (isSelectedItem || isFirstValidItem) {\n selectedItem.value = node\n }\n }\n\n if (isFirstValidItem) {\n firstValidItemFoundRef.value = true\n }\n },\n selectedItem,\n selectedItemText,\n onItemLeave: () => {\n content.value?.focus()\n },\n itemTextRefCallback: (node, value, disabled) => {\n const isFirstValidItem = !firstValidItemFoundRef.value && !disabled\n const isSelectedItem = valueComparator(rootContext.modelValue.value, value, rootContext.by)\n\n if (isSelectedItem || isFirstValidItem)\n selectedItemText.value = node\n },\n focusSelectedItem,\n position: props.position,\n isPositioned,\n searchRef: search,\n})\n</script>\n\n<template>\n <CollectionSlot>\n <FocusScope\n as-child\n @mount-auto-focus.prevent\n @unmount-auto-focus=\"\n (event) => {\n emits('closeAutoFocus', event);\n if (event.defaultPrevented) return;\n rootContext.triggerElement.value?.focus({ preventScroll: true });\n event.preventDefault();\n }\n \"\n >\n <DismissableLayer\n as-child\n disable-outside-pointer-events\n @focus-outside.prevent\n @dismiss=\"rootContext.onOpenChange(false)\"\n @escape-key-down=\"emits('escapeKeyDown', $event)\"\n @pointer-down-outside=\"emits('pointerDownOutside', $event)\"\n >\n <component\n :is=\"\n position === 'popper'\n ? SelectPopperPosition\n : SelectItemAlignedPosition\n \"\n v-bind=\"{ ...$attrs, ...forwardedProps }\"\n :id=\"rootContext.contentId\"\n :ref=\"\n (vnode: ComponentPublicInstance) => {\n content = unrefElement(vnode) as HTMLElement\n return undefined\n }\n \"\n role=\"listbox\"\n :data-state=\"rootContext.open.value ? 'open' : 'closed'\"\n :dir=\"rootContext.dir.value\"\n :style=\"{\n // flex layout so we can place the scroll buttons properly\n display: 'flex',\n flexDirection: 'column',\n // reset the outline by default as the content MAY get focused\n outline: 'none',\n }\"\n @contextmenu.prevent\n @placed=\"isPositioned = true\"\n @keydown=\"(handleKeyDown as any)\"\n >\n <slot />\n </component>\n </DismissableLayer>\n </FocusScope>\n </CollectionSlot>\n</template>\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SelectContentImpl.js","sources":["../../src/Select/SelectContentImpl.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { PointerDownOutsideEvent } from '@/DismissableLayer'\nimport type { PopperContentProps } from '@/Popper'\nimport type { AcceptableValue } from '@/shared/types'\nimport type {\n ComponentPublicInstance,\n Ref,\n} from 'vue'\nimport { useCollection } from '@/Collection'\nimport {\n createContext,\n useFocusGuards,\n useForwardProps,\n useHideOthers,\n useTypeahead,\n} from '@/shared'\nimport { useBodyScrollLock } from '@/shared/useBodyScrollLock'\nimport { valueComparator } from './utils'\n\nexport interface SelectContentContext {\n content?: Ref<HTMLElement | undefined>\n viewport?: Ref<HTMLElement | undefined>\n onViewportChange: (node: HTMLElement | undefined) => void\n itemRefCallback: (\n node: HTMLElement | undefined,\n value: AcceptableValue,\n disabled: boolean\n ) => void\n selectedItem?: Ref<HTMLElement | undefined>\n onItemLeave?: () => void\n itemTextRefCallback: (\n node: HTMLElement | undefined,\n value: AcceptableValue,\n disabled: boolean\n ) => void\n focusSelectedItem?: () => void\n selectedItemText?: Ref<HTMLElement | undefined>\n position?: 'item-aligned' | 'popper'\n isPositioned?: Ref<boolean>\n searchRef?: Ref<string>\n}\n\nexport const SelectContentDefaultContextValue: SelectContentContext = {\n onViewportChange: () => {},\n itemTextRefCallback: () => {},\n itemRefCallback: () => {},\n}\n\nexport type SelectContentImplEmits = {\n closeAutoFocus: [event: Event]\n /**\n * Event handler called when the escape key is down.\n * Can be prevented.\n */\n escapeKeyDown: [event: KeyboardEvent]\n /**\n * Event handler called when a `pointerdown` event happens outside of the `DismissableLayer`.\n * Can be prevented.\n */\n pointerDownOutside: [event: PointerDownOutsideEvent]\n}\n\nexport interface SelectContentImplProps extends PopperContentProps {\n /**\n * The positioning mode to use\n *\n * `item-aligned (default)` - behaves similarly to a native MacOS menu by positioning content relative to the active item. <br>\n * `popper` - positions content in the same way as our other primitives, for example `Popover` or `DropdownMenu`.\n */\n position?: 'item-aligned' | 'popper'\n /**\n * The document.body will be lock, and scrolling will be disabled.\n *\n * @defaultValue true\n */\n bodyLock?: boolean\n}\n\nexport const [injectSelectContentContext, provideSelectContentContext]\n = createContext<SelectContentContext>('SelectContent')\n</script>\n\n<script setup lang=\"ts\">\nimport { DismissableLayer } from '@/DismissableLayer'\nimport { FocusScope } from '@/FocusScope'\nimport { focusFirst } from '@/Menu/utils'\nimport { unrefElement } from '@vueuse/core'\nimport {\n computed,\n ref,\n watch,\n watchEffect,\n} from 'vue'\nimport SelectItemAlignedPosition from './SelectItemAlignedPosition.vue'\nimport SelectPopperPosition from './SelectPopperPosition.vue'\nimport { injectSelectRootContext } from './SelectRoot.vue'\n\nconst props = withDefaults(defineProps<SelectContentImplProps>(), {\n align: 'start',\n position: 'item-aligned',\n bodyLock: true,\n})\nconst emits = defineEmits<SelectContentImplEmits>()\n\nconst rootContext = injectSelectRootContext()\n\nuseFocusGuards()\nuseBodyScrollLock(props.bodyLock)\nconst { CollectionSlot, getItems } = useCollection()\n\nconst content = ref<HTMLElement>()\nuseHideOthers(content)\n\nconst { search, handleTypeaheadSearch } = useTypeahead()\n\nconst viewport = ref<HTMLElement>()\nconst selectedItem = ref<HTMLElement>()\nconst selectedItemText = ref<HTMLElement>()\nconst isPositioned = ref(false)\nconst firstValidItemFoundRef = ref(false)\nconst firstSelectedItemInArrayFoundRef = ref(false)\n\nfunction focusSelectedItem() {\n if (selectedItem.value && content.value)\n focusFirst([selectedItem.value, content.value])\n}\n\nwatch(isPositioned, () => {\n focusSelectedItem()\n})\n\n// prevent selecting items on `pointerup` in some cases after opening from `pointerdown`\n// and close on `pointerup` outside.\nconst { onOpenChange, triggerPointerDownPosRef } = rootContext\nwatchEffect((cleanupFn) => {\n if (!content.value)\n return\n let pointerMoveDelta = { x: 0, y: 0 }\n\n const handlePointerMove = (event: PointerEvent) => {\n pointerMoveDelta = {\n x: Math.abs(\n Math.round(event.pageX) - (triggerPointerDownPosRef.value?.x ?? 0),\n ),\n y: Math.abs(\n Math.round(event.pageY) - (triggerPointerDownPosRef.value?.y ?? 0),\n ),\n }\n }\n const handlePointerUp = (event: PointerEvent) => {\n // Prevent options from being untappable on touch devices\n // https://github.com/unovue/reka-ui/issues/804\n if (event.pointerType === 'touch')\n return\n\n // If the pointer hasn't moved by a certain threshold then we prevent selecting item on `pointerup`.\n if (pointerMoveDelta.x <= 10 && pointerMoveDelta.y <= 10) {\n event.preventDefault()\n }\n else {\n // otherwise, if the event was outside the content, close.\n if (!content.value?.contains(event.target as HTMLElement))\n onOpenChange(false)\n }\n document.removeEventListener('pointermove', handlePointerMove)\n triggerPointerDownPosRef.value = null\n }\n\n if (triggerPointerDownPosRef.value !== null) {\n document.addEventListener('pointermove', handlePointerMove)\n document.addEventListener('pointerup', handlePointerUp, {\n capture: true,\n once: true,\n })\n }\n\n cleanupFn(() => {\n document.removeEventListener('pointermove', handlePointerMove)\n document.removeEventListener('pointerup', handlePointerUp, {\n capture: true,\n })\n })\n})\n\nfunction handleKeyDown(event: KeyboardEvent) {\n const isModifierKey = event.ctrlKey || event.altKey || event.metaKey\n\n // select should not be navigated using tab key so we prevent it\n if (event.key === 'Tab')\n event.preventDefault()\n\n if (!isModifierKey && event.key.length === 1)\n handleTypeaheadSearch(event.key, getItems())\n\n if (['ArrowUp', 'ArrowDown', 'Home', 'End'].includes(event.key)) {\n const collectionItems = getItems().map(i => i.ref)\n let candidateNodes = [...collectionItems]\n\n if (['ArrowUp', 'End'].includes(event.key))\n candidateNodes = candidateNodes.slice().reverse()\n\n if (['ArrowUp', 'ArrowDown'].includes(event.key)) {\n const currentElement = event.target as HTMLElement\n const currentIndex = candidateNodes.indexOf(currentElement)\n candidateNodes = candidateNodes.slice(currentIndex + 1)\n }\n setTimeout(() => focusFirst(candidateNodes))\n event.preventDefault()\n }\n}\n\nconst pickedProps = computed(() => {\n if (props.position === 'popper')\n return props\n else return {}\n})\n\nconst forwardedProps = useForwardProps(pickedProps.value)\n\nprovideSelectContentContext({\n content,\n viewport,\n onViewportChange: (node) => {\n viewport.value = node\n },\n itemRefCallback: (node, value, disabled) => {\n const isFirstValidItem = !firstValidItemFoundRef.value && !disabled\n const isSelectedItem = valueComparator(rootContext.modelValue.value, value, rootContext.by)\n\n if (rootContext.multiple.value) {\n if (firstSelectedItemInArrayFoundRef.value) {\n return\n }\n if (isSelectedItem || isFirstValidItem) {\n selectedItem.value = node\n\n // make sure to keep the first item highlighted when `multiple`\n if (isSelectedItem) {\n firstSelectedItemInArrayFoundRef.value = true\n }\n }\n }\n else {\n if (isSelectedItem || isFirstValidItem) {\n selectedItem.value = node\n }\n }\n\n if (isFirstValidItem) {\n firstValidItemFoundRef.value = true\n }\n },\n selectedItem,\n selectedItemText,\n onItemLeave: () => {\n content.value?.focus()\n },\n itemTextRefCallback: (node, value, disabled) => {\n const isFirstValidItem = !firstValidItemFoundRef.value && !disabled\n const isSelectedItem = valueComparator(rootContext.modelValue.value, value, rootContext.by)\n\n if (isSelectedItem || isFirstValidItem)\n selectedItemText.value = node\n },\n focusSelectedItem,\n position: props.position,\n isPositioned,\n searchRef: search,\n})\n</script>\n\n<template>\n <CollectionSlot>\n <FocusScope\n as-child\n @mount-auto-focus.prevent\n @unmount-auto-focus=\"\n (event) => {\n emits('closeAutoFocus', event);\n if (event.defaultPrevented) return;\n rootContext.triggerElement.value?.focus({ preventScroll: true });\n event.preventDefault();\n }\n \"\n >\n <DismissableLayer\n as-child\n disable-outside-pointer-events\n @focus-outside.prevent\n @dismiss=\"rootContext.onOpenChange(false)\"\n @escape-key-down=\"emits('escapeKeyDown', $event)\"\n @pointer-down-outside=\"emits('pointerDownOutside', $event)\"\n >\n <component\n :is=\"\n position === 'popper'\n ? SelectPopperPosition\n : SelectItemAlignedPosition\n \"\n v-bind=\"{ ...$attrs, ...forwardedProps }\"\n :id=\"rootContext.contentId\"\n :ref=\"\n (vnode: ComponentPublicInstance) => {\n content = unrefElement(vnode) as HTMLElement\n return undefined\n }\n \"\n role=\"listbox\"\n :data-state=\"rootContext.open.value ? 'open' : 'closed'\"\n :dir=\"rootContext.dir.value\"\n :style=\"{\n // flex layout so we can place the scroll buttons properly\n display: 'flex',\n flexDirection: 'column',\n // reset the outline by default as the content MAY get focused\n outline: 'none',\n }\"\n @contextmenu.prevent\n @placed=\"isPositioned = true\"\n @keydown=\"(handleKeyDown as any)\"\n >\n <slot />\n </component>\n </DismissableLayer>\n </FocusScope>\n </CollectionSlot>\n</template>\n"],"names":[],"mappings":"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"}
@@ -1,9 +1,9 @@
1
1
  'use strict';
2
2
 
3
3
  const vue = require('vue');
4
+ const shared_createContext = require('../shared/createContext.cjs');
4
5
  const shared_useId = require('../shared/useId.cjs');
5
6
  const Primitive_Primitive = require('../Primitive/Primitive.cjs');
6
- const shared_createContext = require('../shared/createContext.cjs');
7
7
 
8
8
  const [injectSelectGroupContext, provideSelectGroupContext] = shared_createContext.createContext("SelectGroup");
9
9
  const _sfc_main = /* @__PURE__ */ vue.defineComponent({
@@ -14,7 +14,7 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
14
14
  },
15
15
  setup(__props) {
16
16
  const props = __props;
17
- const id = shared_useId.useId(undefined, "reka-select-group");
17
+ const id = shared_useId.useId(void 0, "reka-select-group");
18
18
  provideSelectGroupContext({ id });
19
19
  return (_ctx, _cache) => {
20
20
  return vue.openBlock(), vue.createBlock(vue.unref(Primitive_Primitive.Primitive), vue.mergeProps({ role: "group" }, props, { "aria-labelledby": vue.unref(id) }), {
@@ -1 +1 @@
1
- {"version":3,"file":"SelectGroup.cjs","sources":["../../src/Select/SelectGroup.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { PrimitiveProps } from '@/Primitive'\nimport { createContext, useId } from '@/shared'\n\nexport interface SelectGroupProps extends PrimitiveProps {}\n\ninterface SelectGroupContext {\n id: string\n}\n\nexport const [injectSelectGroupContext, provideSelectGroupContext]\n = createContext<SelectGroupContext>('SelectGroup')\n</script>\n\n<script setup lang=\"ts\">\nimport { Primitive } from '@/Primitive'\n\nconst props = defineProps<SelectGroupProps>()\n\nconst id = useId(undefined, 'reka-select-group')\nprovideSelectGroupContext({ id })\n</script>\n\n<template>\n <Primitive\n role=\"group\"\n v-bind=\"props\"\n :aria-labelledby=\"id\"\n >\n <slot />\n </Primitive>\n</template>\n"],"names":["createContext","useId"],"mappings":";;;;;;;AAUO,MAAM,CAAC,wBAAA,EAA0B,yBAAyB,CAAA,GAC7DA,mCAAkC,aAAa;;;;;;;;AAMnD,IAAA,MAAM,KAAQ,GAAA,OAAA;AAEd,IAAM,MAAA,EAAA,GAAKC,kBAAM,CAAA,SAAA,EAAW,mBAAmB,CAAA;AAC/C,IAA0B,yBAAA,CAAA,EAAE,IAAI,CAAA;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"SelectGroup.cjs","sources":["../../src/Select/SelectGroup.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { PrimitiveProps } from '@/Primitive'\nimport { createContext, useId } from '@/shared'\n\nexport interface SelectGroupProps extends PrimitiveProps {}\n\ninterface SelectGroupContext {\n id: string\n}\n\nexport const [injectSelectGroupContext, provideSelectGroupContext]\n = createContext<SelectGroupContext>('SelectGroup')\n</script>\n\n<script setup lang=\"ts\">\nimport { Primitive } from '@/Primitive'\n\nconst props = defineProps<SelectGroupProps>()\n\nconst id = useId(undefined, 'reka-select-group')\nprovideSelectGroupContext({ id })\n</script>\n\n<template>\n <Primitive\n role=\"group\"\n v-bind=\"props\"\n :aria-labelledby=\"id\"\n >\n <slot />\n </Primitive>\n</template>\n"],"names":["createContext","useId"],"mappings":";;;;;;;AAUO,MAAM,CAAC,wBAAA,EAA0B,yBAAyB,CAAA,GAC7DA,mCAAkC,aAAa;;;;;;;;AAMnD,IAAA,MAAM,KAAQ,GAAA,OAAA;AAEd,IAAM,MAAA,EAAA,GAAKC,kBAAM,CAAA,MAAA,EAAW,mBAAmB,CAAA;AAC/C,IAA0B,yBAAA,CAAA,EAAE,IAAI,CAAA;;;;;;;;;;;;;;;"}
@@ -1,7 +1,7 @@
1
- import { defineComponent, openBlock, createBlock, unref, mergeProps, withCtx, renderSlot } from 'vue';
1
+ import { defineComponent, createBlock, openBlock, unref, mergeProps, withCtx, renderSlot } from 'vue';
2
+ import { c as createContext } from '../shared/createContext.js';
2
3
  import { u as useId } from '../shared/useId.js';
3
4
  import { P as Primitive } from '../Primitive/Primitive.js';
4
- import { c as createContext } from '../shared/createContext.js';
5
5
 
6
6
  const [injectSelectGroupContext, provideSelectGroupContext] = createContext("SelectGroup");
7
7
  const _sfc_main = /* @__PURE__ */ defineComponent({
@@ -12,7 +12,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
12
12
  },
13
13
  setup(__props) {
14
14
  const props = __props;
15
- const id = useId(undefined, "reka-select-group");
15
+ const id = useId(void 0, "reka-select-group");
16
16
  provideSelectGroupContext({ id });
17
17
  return (_ctx, _cache) => {
18
18
  return openBlock(), createBlock(unref(Primitive), mergeProps({ role: "group" }, props, { "aria-labelledby": unref(id) }), {
@@ -1 +1 @@
1
- {"version":3,"file":"SelectGroup.js","sources":["../../src/Select/SelectGroup.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { PrimitiveProps } from '@/Primitive'\nimport { createContext, useId } from '@/shared'\n\nexport interface SelectGroupProps extends PrimitiveProps {}\n\ninterface SelectGroupContext {\n id: string\n}\n\nexport const [injectSelectGroupContext, provideSelectGroupContext]\n = createContext<SelectGroupContext>('SelectGroup')\n</script>\n\n<script setup lang=\"ts\">\nimport { Primitive } from '@/Primitive'\n\nconst props = defineProps<SelectGroupProps>()\n\nconst id = useId(undefined, 'reka-select-group')\nprovideSelectGroupContext({ id })\n</script>\n\n<template>\n <Primitive\n role=\"group\"\n v-bind=\"props\"\n :aria-labelledby=\"id\"\n >\n <slot />\n </Primitive>\n</template>\n"],"names":[],"mappings":";;;;;AAUO,MAAM,CAAC,wBAAA,EAA0B,yBAAyB,CAAA,GAC7D,cAAkC,aAAa;;;;;;;;AAMnD,IAAA,MAAM,KAAQ,GAAA,OAAA;AAEd,IAAM,MAAA,EAAA,GAAK,KAAM,CAAA,SAAA,EAAW,mBAAmB,CAAA;AAC/C,IAA0B,yBAAA,CAAA,EAAE,IAAI,CAAA;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"SelectGroup.js","sources":["../../src/Select/SelectGroup.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { PrimitiveProps } from '@/Primitive'\nimport { createContext, useId } from '@/shared'\n\nexport interface SelectGroupProps extends PrimitiveProps {}\n\ninterface SelectGroupContext {\n id: string\n}\n\nexport const [injectSelectGroupContext, provideSelectGroupContext]\n = createContext<SelectGroupContext>('SelectGroup')\n</script>\n\n<script setup lang=\"ts\">\nimport { Primitive } from '@/Primitive'\n\nconst props = defineProps<SelectGroupProps>()\n\nconst id = useId(undefined, 'reka-select-group')\nprovideSelectGroupContext({ id })\n</script>\n\n<template>\n <Primitive\n role=\"group\"\n v-bind=\"props\"\n :aria-labelledby=\"id\"\n >\n <slot />\n </Primitive>\n</template>\n"],"names":[],"mappings":";;;;;AAUO,MAAM,CAAC,wBAAA,EAA0B,yBAAyB,CAAA,GAC7D,cAAkC,aAAa;;;;;;;;AAMnD,IAAA,MAAM,KAAQ,GAAA,OAAA;AAEd,IAAM,MAAA,EAAA,GAAK,KAAM,CAAA,MAAA,EAAW,mBAAmB,CAAA;AAC/C,IAA0B,yBAAA,CAAA,EAAE,IAAI,CAAA;;;;;;;;;;;;;;"}
@@ -1,4 +1,4 @@
1
- import { defineComponent, openBlock, createBlock, unref, withCtx, renderSlot, createTextVNode } from 'vue';
1
+ import { defineComponent, createBlock, openBlock, unref, withCtx, renderSlot, createTextVNode } from 'vue';
2
2
  import { P as Primitive } from '../Primitive/Primitive.js';
3
3
 
4
4
  const _sfc_main = /* @__PURE__ */ defineComponent({
@@ -3,10 +3,10 @@
3
3
  const vue = require('vue');
4
4
  const Select_utils = require('./utils.cjs');
5
5
  const Collection_Collection = require('../Collection/Collection.cjs');
6
+ const shared_createContext = require('../shared/createContext.cjs');
6
7
  const shared_useForwardExpose = require('../shared/useForwardExpose.cjs');
7
8
  const shared_useId = require('../shared/useId.cjs');
8
9
  const Primitive_Primitive = require('../Primitive/Primitive.cjs');
9
- const shared_createContext = require('../shared/createContext.cjs');
10
10
  const shared_handleAndDispatchCustomEvent = require('../shared/handleAndDispatchCustomEvent.cjs');
11
11
  const shared_getActiveElement = require('../shared/getActiveElement.cjs');
12
12
  const Select_SelectRoot = require('./SelectRoot.cjs');
@@ -34,7 +34,7 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
34
34
  const isSelected = vue.computed(() => Select_utils.valueComparator(rootContext.modelValue?.value, props.value, rootContext.by));
35
35
  const isFocused = vue.ref(false);
36
36
  const textValue = vue.ref(props.textValue ?? "");
37
- const textId = shared_useId.useId(undefined, "reka-select-item-text");
37
+ const textId = shared_useId.useId(void 0, "reka-select-item-text");
38
38
  const SELECT_SELECT = "select.select";
39
39
  async function handleSelectCustomEvent(ev) {
40
40
  if (ev.defaultPrevented)
@@ -60,7 +60,7 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
60
60
  if (disabled.value) {
61
61
  contentContext.onItemLeave?.();
62
62
  } else {
63
- event.currentTarget.focus({ preventScroll: true });
63
+ event.currentTarget?.focus({ preventScroll: true });
64
64
  }
65
65
  }
66
66
  async function handlePointerLeave(event) {
@@ -114,12 +114,12 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
114
114
  ref: vue.unref(forwardRef),
115
115
  role: "option",
116
116
  "aria-labelledby": vue.unref(textId),
117
- "data-highlighted": isFocused.value ? "" : undefined,
117
+ "data-highlighted": isFocused.value ? "" : void 0,
118
118
  "aria-selected": isSelected.value,
119
119
  "data-state": isSelected.value ? "checked" : "unchecked",
120
- "aria-disabled": vue.unref(disabled) || undefined,
121
- "data-disabled": vue.unref(disabled) ? "" : undefined,
122
- tabindex: vue.unref(disabled) ? undefined : -1,
120
+ "aria-disabled": vue.unref(disabled) || void 0,
121
+ "data-disabled": vue.unref(disabled) ? "" : void 0,
122
+ tabindex: vue.unref(disabled) ? void 0 : -1,
123
123
  as: _ctx.as,
124
124
  "as-child": _ctx.asChild,
125
125
  onFocus: _cache[0] || (_cache[0] = ($event) => isFocused.value = true),
@@ -1 +1 @@
1
- {"version":3,"file":"SelectItem.cjs","sources":["../../src/Select/SelectItem.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { Ref } from 'vue'\nimport type { PrimitiveProps } from '@/Primitive'\nimport { createContext, getActiveElement, handleAndDispatchCustomEvent, useForwardExpose, useId } from '@/shared'\nimport type { AcceptableValue } from '@/shared/types'\nimport { useCollection } from '@/Collection'\n\ninterface SelectItemContext<T = AcceptableValue> {\n value: T\n textId: string\n disabled: Ref<boolean>\n isSelected: Ref<boolean>\n onItemTextChange: (node: HTMLElement | undefined) => void\n}\n\nexport const [injectSelectItemContext, provideSelectItemContext]\n = createContext<SelectItemContext>('SelectItem')\n\nexport type SelectEvent<T> = CustomEvent<{ originalEvent: PointerEvent | KeyboardEvent, value?: T }>\n\nexport type SelectItemEmits<T = AcceptableValue> = {\n /** Event handler called when the selecting item. <br> It can be prevented by calling `event.preventDefault`. */\n select: [event: SelectEvent<T>]\n}\n\nexport interface SelectItemProps<T = AcceptableValue> extends PrimitiveProps {\n /** The value given as data when submitted with a `name`. */\n value: T\n /** When `true`, prevents the user from interacting with the item. */\n disabled?: boolean\n /**\n * Optional text used for typeahead purposes.\n *\n * By default the typeahead behavior will use the `.textContent` of the `SelectItemText` part.\n *\n * Use this when the content is complex, or you have non-textual content inside.\n */\n textValue?: string\n}\n</script>\n\n<script setup lang=\"ts\" generic=\"T extends AcceptableValue = AcceptableValue\">\nimport {\n computed,\n nextTick,\n onMounted,\n ref,\n toRefs,\n} from 'vue'\nimport { injectSelectRootContext } from './SelectRoot.vue'\nimport { injectSelectContentContext } from './SelectContentImpl.vue'\nimport { SELECTION_KEYS, valueComparator } from './utils'\nimport { Primitive } from '@/Primitive'\n\nconst props = defineProps<SelectItemProps>()\nconst emits = defineEmits<SelectItemEmits<T>>()\nconst { disabled } = toRefs(props)\n\nconst rootContext = injectSelectRootContext()\nconst contentContext = injectSelectContentContext()\nconst { forwardRef, currentElement } = useForwardExpose()\nconst { CollectionItem } = useCollection()\n\nconst isSelected = computed(() => valueComparator(rootContext.modelValue?.value, props.value, rootContext.by))\nconst isFocused = ref(false)\nconst textValue = ref(props.textValue ?? '')\nconst textId = useId(undefined, 'reka-select-item-text')\n\nconst SELECT_SELECT = 'select.select'\n\nasync function handleSelectCustomEvent(ev: PointerEvent | KeyboardEvent) {\n if (ev.defaultPrevented)\n return\n\n const eventDetail = { originalEvent: ev, value: props.value as T }\n handleAndDispatchCustomEvent(SELECT_SELECT, handleSelect, eventDetail)\n}\n\nasync function handleSelect(ev: SelectEvent<T>) {\n await nextTick()\n emits('select', ev)\n if (ev.defaultPrevented)\n return\n\n if (!disabled.value) {\n rootContext.onValueChange(props.value)\n if (!rootContext.multiple.value)\n rootContext.onOpenChange(false)\n }\n}\n\nasync function handlePointerMove(event: PointerEvent) {\n await nextTick()\n if (event.defaultPrevented)\n return\n if (disabled.value) {\n contentContext.onItemLeave?.()\n }\n else {\n // even though safari doesn't support this option, it's acceptable\n // as it only means it might scroll a few pixels when using the pointer.\n (event.currentTarget as HTMLElement).focus({ preventScroll: true })\n }\n}\n\nasync function handlePointerLeave(event: PointerEvent) {\n await nextTick()\n if (event.defaultPrevented)\n return\n if (event.currentTarget === getActiveElement())\n contentContext.onItemLeave?.()\n}\n\nasync function handleKeyDown(event: KeyboardEvent) {\n await nextTick()\n if (event.defaultPrevented)\n return\n const isTypingAhead = contentContext.searchRef?.value !== ''\n if (isTypingAhead && event.key === ' ')\n return\n if (SELECTION_KEYS.includes(event.key))\n handleSelectCustomEvent(event)\n // prevent page scroll if using the space key to select an item\n if (event.key === ' ')\n event.preventDefault()\n}\n\nif (props.value === '') {\n throw new Error(\n 'A <SelectItem /> must have a value prop that is not an empty string. This is because the Select value can be set to an empty string to clear the selection and show the placeholder.',\n )\n}\n\nonMounted(() => {\n if (!currentElement.value)\n return\n contentContext.itemRefCallback(\n currentElement.value,\n props.value,\n props.disabled,\n )\n})\n\nprovideSelectItemContext({\n value: props.value,\n disabled,\n textId,\n isSelected,\n onItemTextChange: (node) => {\n textValue.value = ((textValue.value || node?.textContent) ?? '').trim()\n },\n})\n</script>\n\n<template>\n <CollectionItem :value=\"{ textValue }\">\n <Primitive\n :ref=\"forwardRef\"\n role=\"option\"\n :aria-labelledby=\"textId\"\n :data-highlighted=\"isFocused ? '' : undefined\"\n :aria-selected=\"isSelected\"\n :data-state=\"isSelected ? 'checked' : 'unchecked'\"\n :aria-disabled=\"disabled || undefined\"\n :data-disabled=\"disabled ? '' : undefined\"\n :tabindex=\"disabled ? undefined : -1\"\n :as=\"as\"\n :as-child=\"asChild\"\n @focus=\"isFocused = true\"\n @blur=\"isFocused = false\"\n @pointerup=\"handleSelectCustomEvent\"\n @pointerdown=\"(event) => {\n (event.currentTarget as HTMLElement).focus({ preventScroll: true })\n }\"\n @touchend.prevent.stop\n @pointermove=\"handlePointerMove\"\n @pointerleave=\"handlePointerLeave\"\n @keydown=\"handleKeyDown\"\n >\n <slot />\n </Primitive>\n </CollectionItem>\n</template>\n"],"names":["createContext","toRefs","injectSelectRootContext","injectSelectContentContext","useForwardExpose","useCollection","computed","valueComparator","ref","useId","handleAndDispatchCustomEvent","nextTick","getActiveElement","SELECTION_KEYS","onMounted"],"mappings":"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"}
1
+ {"version":3,"file":"SelectItem.cjs","sources":["../../src/Select/SelectItem.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { PrimitiveProps } from '@/Primitive'\nimport type { AcceptableValue } from '@/shared/types'\nimport type { Ref } from 'vue'\nimport { useCollection } from '@/Collection'\nimport { createContext, getActiveElement, handleAndDispatchCustomEvent, useForwardExpose, useId } from '@/shared'\n\ninterface SelectItemContext<T = AcceptableValue> {\n value: T\n textId: string\n disabled: Ref<boolean>\n isSelected: Ref<boolean>\n onItemTextChange: (node: HTMLElement | undefined) => void\n}\n\nexport const [injectSelectItemContext, provideSelectItemContext]\n = createContext<SelectItemContext>('SelectItem')\n\nexport type SelectEvent<T> = CustomEvent<{ originalEvent: PointerEvent | KeyboardEvent, value?: T }>\n\nexport type SelectItemEmits<T = AcceptableValue> = {\n /** Event handler called when the selecting item. <br> It can be prevented by calling `event.preventDefault`. */\n select: [event: SelectEvent<T>]\n}\n\nexport interface SelectItemProps<T = AcceptableValue> extends PrimitiveProps {\n /** The value given as data when submitted with a `name`. */\n value: T\n /** When `true`, prevents the user from interacting with the item. */\n disabled?: boolean\n /**\n * Optional text used for typeahead purposes.\n *\n * By default the typeahead behavior will use the `.textContent` of the `SelectItemText` part.\n *\n * Use this when the content is complex, or you have non-textual content inside.\n */\n textValue?: string\n}\n</script>\n\n<script setup lang=\"ts\" generic=\"T extends AcceptableValue = AcceptableValue\">\nimport { Primitive } from '@/Primitive'\nimport {\n computed,\n nextTick,\n onMounted,\n ref,\n toRefs,\n} from 'vue'\nimport { injectSelectContentContext } from './SelectContentImpl.vue'\nimport { injectSelectRootContext } from './SelectRoot.vue'\nimport { SELECTION_KEYS, valueComparator } from './utils'\n\nconst props = defineProps<SelectItemProps>()\nconst emits = defineEmits<SelectItemEmits<T>>()\nconst { disabled } = toRefs(props)\n\nconst rootContext = injectSelectRootContext()\nconst contentContext = injectSelectContentContext()\nconst { forwardRef, currentElement } = useForwardExpose()\nconst { CollectionItem } = useCollection()\n\nconst isSelected = computed(() => valueComparator(rootContext.modelValue?.value, props.value, rootContext.by))\nconst isFocused = ref(false)\nconst textValue = ref(props.textValue ?? '')\nconst textId = useId(undefined, 'reka-select-item-text')\n\nconst SELECT_SELECT = 'select.select'\n\nasync function handleSelectCustomEvent(ev: PointerEvent | KeyboardEvent) {\n if (ev.defaultPrevented)\n return\n\n const eventDetail = { originalEvent: ev, value: props.value as T }\n handleAndDispatchCustomEvent(SELECT_SELECT, handleSelect, eventDetail)\n}\n\nasync function handleSelect(ev: SelectEvent<T>) {\n await nextTick()\n emits('select', ev)\n if (ev.defaultPrevented)\n return\n\n if (!disabled.value) {\n rootContext.onValueChange(props.value)\n if (!rootContext.multiple.value)\n rootContext.onOpenChange(false)\n }\n}\n\nasync function handlePointerMove(event: PointerEvent) {\n await nextTick()\n if (event.defaultPrevented)\n return\n if (disabled.value) {\n contentContext.onItemLeave?.()\n }\n else {\n // even though safari doesn't support this option, it's acceptable\n // as it only means it might scroll a few pixels when using the pointer.\n (event.currentTarget as HTMLElement | null)?.focus({ preventScroll: true })\n }\n}\n\nasync function handlePointerLeave(event: PointerEvent) {\n await nextTick()\n if (event.defaultPrevented)\n return\n if (event.currentTarget === getActiveElement())\n contentContext.onItemLeave?.()\n}\n\nasync function handleKeyDown(event: KeyboardEvent) {\n await nextTick()\n if (event.defaultPrevented)\n return\n const isTypingAhead = contentContext.searchRef?.value !== ''\n if (isTypingAhead && event.key === ' ')\n return\n if (SELECTION_KEYS.includes(event.key))\n handleSelectCustomEvent(event)\n // prevent page scroll if using the space key to select an item\n if (event.key === ' ')\n event.preventDefault()\n}\n\nif (props.value === '') {\n throw new Error(\n 'A <SelectItem /> must have a value prop that is not an empty string. This is because the Select value can be set to an empty string to clear the selection and show the placeholder.',\n )\n}\n\nonMounted(() => {\n if (!currentElement.value)\n return\n contentContext.itemRefCallback(\n currentElement.value,\n props.value,\n props.disabled,\n )\n})\n\nprovideSelectItemContext({\n value: props.value,\n disabled,\n textId,\n isSelected,\n onItemTextChange: (node) => {\n textValue.value = ((textValue.value || node?.textContent) ?? '').trim()\n },\n})\n</script>\n\n<template>\n <CollectionItem :value=\"{ textValue }\">\n <Primitive\n :ref=\"forwardRef\"\n role=\"option\"\n :aria-labelledby=\"textId\"\n :data-highlighted=\"isFocused ? '' : undefined\"\n :aria-selected=\"isSelected\"\n :data-state=\"isSelected ? 'checked' : 'unchecked'\"\n :aria-disabled=\"disabled || undefined\"\n :data-disabled=\"disabled ? '' : undefined\"\n :tabindex=\"disabled ? undefined : -1\"\n :as=\"as\"\n :as-child=\"asChild\"\n @focus=\"isFocused = true\"\n @blur=\"isFocused = false\"\n @pointerup=\"handleSelectCustomEvent\"\n @pointerdown=\"(event) => {\n (event.currentTarget as HTMLElement).focus({ preventScroll: true })\n }\"\n @touchend.prevent.stop\n @pointermove=\"handlePointerMove\"\n @pointerleave=\"handlePointerLeave\"\n @keydown=\"handleKeyDown\"\n >\n <slot />\n </Primitive>\n </CollectionItem>\n</template>\n"],"names":["createContext","toRefs","injectSelectRootContext","injectSelectContentContext","useForwardExpose","useCollection","computed","valueComparator","ref","useId","handleAndDispatchCustomEvent","nextTick","getActiveElement","SELECTION_KEYS","onMounted"],"mappings":"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"}