reka-ui 2.2.0 → 2.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (902) hide show
  1. package/dist/Accordion/AccordionHeader.cjs.map +1 -1
  2. package/dist/Accordion/AccordionHeader.js.map +1 -1
  3. package/dist/Accordion/AccordionItem.cjs.map +1 -1
  4. package/dist/Accordion/AccordionItem.js.map +1 -1
  5. package/dist/Accordion/AccordionRoot.cjs.map +1 -1
  6. package/dist/Accordion/AccordionRoot.js.map +1 -1
  7. package/dist/Accordion/AccordionTrigger.cjs.map +1 -1
  8. package/dist/Accordion/AccordionTrigger.js.map +1 -1
  9. package/dist/AlertDialog/AlertDialogCancel.cjs.map +1 -1
  10. package/dist/AlertDialog/AlertDialogCancel.js.map +1 -1
  11. package/dist/AspectRatio/AspectRatio.cjs.map +1 -1
  12. package/dist/AspectRatio/AspectRatio.js.map +1 -1
  13. package/dist/Avatar/AvatarFallback.cjs +11 -14
  14. package/dist/Avatar/AvatarFallback.cjs.map +1 -1
  15. package/dist/Avatar/AvatarFallback.js +12 -15
  16. package/dist/Avatar/AvatarFallback.js.map +1 -1
  17. package/dist/Avatar/AvatarImage.cjs +3 -2
  18. package/dist/Avatar/AvatarImage.cjs.map +1 -1
  19. package/dist/Avatar/AvatarImage.js +3 -2
  20. package/dist/Avatar/AvatarImage.js.map +1 -1
  21. package/dist/Avatar/AvatarRoot.cjs +1 -1
  22. package/dist/Avatar/AvatarRoot.cjs.map +1 -1
  23. package/dist/Avatar/AvatarRoot.js +1 -1
  24. package/dist/Avatar/AvatarRoot.js.map +1 -1
  25. package/dist/Avatar/utils.cjs +43 -16
  26. package/dist/Avatar/utils.cjs.map +1 -1
  27. package/dist/Avatar/utils.js +44 -17
  28. package/dist/Avatar/utils.js.map +1 -1
  29. package/dist/Calendar/CalendarCell.cjs +3 -3
  30. package/dist/Calendar/CalendarCell.cjs.map +1 -1
  31. package/dist/Calendar/CalendarCell.js +3 -3
  32. package/dist/Calendar/CalendarCell.js.map +1 -1
  33. package/dist/Calendar/CalendarCellTrigger.cjs +5 -1
  34. package/dist/Calendar/CalendarCellTrigger.cjs.map +1 -1
  35. package/dist/Calendar/CalendarCellTrigger.js +5 -1
  36. package/dist/Calendar/CalendarCellTrigger.js.map +1 -1
  37. package/dist/Calendar/CalendarGrid.cjs.map +1 -1
  38. package/dist/Calendar/CalendarGrid.js.map +1 -1
  39. package/dist/Calendar/CalendarHeading.cjs +1 -1
  40. package/dist/Calendar/CalendarHeading.cjs.map +1 -1
  41. package/dist/Calendar/CalendarHeading.js +1 -1
  42. package/dist/Calendar/CalendarHeading.js.map +1 -1
  43. package/dist/Calendar/CalendarNext.cjs.map +1 -1
  44. package/dist/Calendar/CalendarNext.js.map +1 -1
  45. package/dist/Calendar/CalendarPrev.cjs.map +1 -1
  46. package/dist/Calendar/CalendarPrev.js.map +1 -1
  47. package/dist/Calendar/CalendarRoot.cjs +7 -4
  48. package/dist/Calendar/CalendarRoot.cjs.map +1 -1
  49. package/dist/Calendar/CalendarRoot.js +7 -4
  50. package/dist/Calendar/CalendarRoot.js.map +1 -1
  51. package/dist/Calendar/useCalendar.cjs.map +1 -1
  52. package/dist/Calendar/useCalendar.js.map +1 -1
  53. package/dist/Checkbox/CheckboxGroupRoot.cjs +1 -1
  54. package/dist/Checkbox/CheckboxGroupRoot.cjs.map +1 -1
  55. package/dist/Checkbox/CheckboxGroupRoot.js +1 -1
  56. package/dist/Checkbox/CheckboxGroupRoot.js.map +1 -1
  57. package/dist/Checkbox/CheckboxIndicator.cjs.map +1 -1
  58. package/dist/Checkbox/CheckboxIndicator.js.map +1 -1
  59. package/dist/Checkbox/CheckboxRoot.cjs +1 -1
  60. package/dist/Checkbox/CheckboxRoot.cjs.map +1 -1
  61. package/dist/Checkbox/CheckboxRoot.js +1 -1
  62. package/dist/Checkbox/CheckboxRoot.js.map +1 -1
  63. package/dist/Collapsible/CollapsibleContent.cjs +1 -1
  64. package/dist/Collapsible/CollapsibleContent.cjs.map +1 -1
  65. package/dist/Collapsible/CollapsibleContent.js +1 -1
  66. package/dist/Collapsible/CollapsibleContent.js.map +1 -1
  67. package/dist/Collapsible/CollapsibleRoot.cjs +2 -0
  68. package/dist/Collapsible/CollapsibleRoot.cjs.map +1 -1
  69. package/dist/Collapsible/CollapsibleRoot.js +2 -0
  70. package/dist/Collapsible/CollapsibleRoot.js.map +1 -1
  71. package/dist/Collapsible/CollapsibleTrigger.cjs +1 -1
  72. package/dist/Collapsible/CollapsibleTrigger.js +1 -1
  73. package/dist/Collection/Collection.cjs.map +1 -1
  74. package/dist/Collection/Collection.js.map +1 -1
  75. package/dist/Combobox/ComboboxAnchor.cjs.map +1 -1
  76. package/dist/Combobox/ComboboxAnchor.js.map +1 -1
  77. package/dist/Combobox/ComboboxArrow.cjs.map +1 -1
  78. package/dist/Combobox/ComboboxArrow.js.map +1 -1
  79. package/dist/Combobox/ComboboxCancel.cjs +1 -0
  80. package/dist/Combobox/ComboboxCancel.cjs.map +1 -1
  81. package/dist/Combobox/ComboboxCancel.js +1 -0
  82. package/dist/Combobox/ComboboxCancel.js.map +1 -1
  83. package/dist/Combobox/ComboboxContent.cjs.map +1 -1
  84. package/dist/Combobox/ComboboxContent.js.map +1 -1
  85. package/dist/Combobox/ComboboxContentImpl.cjs +2 -2
  86. package/dist/Combobox/ComboboxContentImpl.cjs.map +1 -1
  87. package/dist/Combobox/ComboboxContentImpl.js +2 -2
  88. package/dist/Combobox/ComboboxContentImpl.js.map +1 -1
  89. package/dist/Combobox/ComboboxEmpty.cjs.map +1 -1
  90. package/dist/Combobox/ComboboxEmpty.js.map +1 -1
  91. package/dist/Combobox/ComboboxGroup.cjs +1 -1
  92. package/dist/Combobox/ComboboxGroup.cjs.map +1 -1
  93. package/dist/Combobox/ComboboxGroup.js +1 -1
  94. package/dist/Combobox/ComboboxGroup.js.map +1 -1
  95. package/dist/Combobox/ComboboxInput.cjs +9 -1
  96. package/dist/Combobox/ComboboxInput.cjs.map +1 -1
  97. package/dist/Combobox/ComboboxInput.js +9 -1
  98. package/dist/Combobox/ComboboxInput.js.map +1 -1
  99. package/dist/Combobox/ComboboxItem.cjs +4 -3
  100. package/dist/Combobox/ComboboxItem.cjs.map +1 -1
  101. package/dist/Combobox/ComboboxItem.js +4 -3
  102. package/dist/Combobox/ComboboxItem.js.map +1 -1
  103. package/dist/Combobox/ComboboxLabel.cjs +1 -1
  104. package/dist/Combobox/ComboboxLabel.js +1 -1
  105. package/dist/Combobox/ComboboxRoot.cjs +1 -2
  106. package/dist/Combobox/ComboboxRoot.cjs.map +1 -1
  107. package/dist/Combobox/ComboboxRoot.js +1 -2
  108. package/dist/Combobox/ComboboxRoot.js.map +1 -1
  109. package/dist/Combobox/ComboboxTrigger.cjs.map +1 -1
  110. package/dist/Combobox/ComboboxTrigger.js.map +1 -1
  111. package/dist/Combobox/ComboboxViewport.cjs.map +1 -1
  112. package/dist/Combobox/ComboboxViewport.js.map +1 -1
  113. package/dist/Combobox/ComboboxVirtualizer.cjs.map +1 -1
  114. package/dist/Combobox/ComboboxVirtualizer.js.map +1 -1
  115. package/dist/ConfigProvider/ConfigProvider.cjs.map +1 -1
  116. package/dist/ConfigProvider/ConfigProvider.js.map +1 -1
  117. package/dist/ContextMenu/ContextMenuContent.cjs.map +1 -1
  118. package/dist/ContextMenu/ContextMenuContent.js.map +1 -1
  119. package/dist/ContextMenu/ContextMenuPortal.cjs.map +1 -1
  120. package/dist/ContextMenu/ContextMenuPortal.js.map +1 -1
  121. package/dist/ContextMenu/ContextMenuRoot.cjs.map +1 -1
  122. package/dist/ContextMenu/ContextMenuRoot.js.map +1 -1
  123. package/dist/ContextMenu/ContextMenuSub.cjs.map +1 -1
  124. package/dist/ContextMenu/ContextMenuSub.js.map +1 -1
  125. package/dist/ContextMenu/ContextMenuTrigger.cjs +2 -2
  126. package/dist/ContextMenu/ContextMenuTrigger.cjs.map +1 -1
  127. package/dist/ContextMenu/ContextMenuTrigger.js +2 -2
  128. package/dist/ContextMenu/ContextMenuTrigger.js.map +1 -1
  129. package/dist/DateField/DateFieldInput.cjs +1 -0
  130. package/dist/DateField/DateFieldInput.cjs.map +1 -1
  131. package/dist/DateField/DateFieldInput.js +1 -0
  132. package/dist/DateField/DateFieldInput.js.map +1 -1
  133. package/dist/DateField/DateFieldRoot.cjs +7 -1
  134. package/dist/DateField/DateFieldRoot.cjs.map +1 -1
  135. package/dist/DateField/DateFieldRoot.js +7 -1
  136. package/dist/DateField/DateFieldRoot.js.map +1 -1
  137. package/dist/DatePicker/DatePickerArrow.cjs.map +1 -1
  138. package/dist/DatePicker/DatePickerArrow.js.map +1 -1
  139. package/dist/DatePicker/DatePickerCalendar.cjs.map +1 -1
  140. package/dist/DatePicker/DatePickerCalendar.js.map +1 -1
  141. package/dist/DatePicker/DatePickerCell.cjs.map +1 -1
  142. package/dist/DatePicker/DatePickerCell.js.map +1 -1
  143. package/dist/DatePicker/DatePickerCellTrigger.cjs.map +1 -1
  144. package/dist/DatePicker/DatePickerCellTrigger.js.map +1 -1
  145. package/dist/DatePicker/DatePickerClose.cjs.map +1 -1
  146. package/dist/DatePicker/DatePickerClose.js.map +1 -1
  147. package/dist/DatePicker/DatePickerContent.cjs +8 -3
  148. package/dist/DatePicker/DatePickerContent.cjs.map +1 -1
  149. package/dist/DatePicker/DatePickerContent.js +9 -4
  150. package/dist/DatePicker/DatePickerContent.js.map +1 -1
  151. package/dist/DatePicker/DatePickerGrid.cjs.map +1 -1
  152. package/dist/DatePicker/DatePickerGrid.js.map +1 -1
  153. package/dist/DatePicker/DatePickerGridBody.cjs.map +1 -1
  154. package/dist/DatePicker/DatePickerGridBody.js.map +1 -1
  155. package/dist/DatePicker/DatePickerGridHead.cjs.map +1 -1
  156. package/dist/DatePicker/DatePickerGridHead.js.map +1 -1
  157. package/dist/DatePicker/DatePickerGridRow.cjs.map +1 -1
  158. package/dist/DatePicker/DatePickerGridRow.js.map +1 -1
  159. package/dist/DatePicker/DatePickerHeadCell.cjs.map +1 -1
  160. package/dist/DatePicker/DatePickerHeadCell.js.map +1 -1
  161. package/dist/DatePicker/DatePickerHeader.cjs.map +1 -1
  162. package/dist/DatePicker/DatePickerHeader.js.map +1 -1
  163. package/dist/DatePicker/DatePickerHeading.cjs.map +1 -1
  164. package/dist/DatePicker/DatePickerHeading.js.map +1 -1
  165. package/dist/DatePicker/DatePickerInput.cjs.map +1 -1
  166. package/dist/DatePicker/DatePickerInput.js.map +1 -1
  167. package/dist/DatePicker/DatePickerNext.cjs.map +1 -1
  168. package/dist/DatePicker/DatePickerNext.js.map +1 -1
  169. package/dist/DatePicker/DatePickerPrev.cjs.map +1 -1
  170. package/dist/DatePicker/DatePickerPrev.js.map +1 -1
  171. package/dist/DatePicker/DatePickerRoot.cjs +1 -0
  172. package/dist/DatePicker/DatePickerRoot.cjs.map +1 -1
  173. package/dist/DatePicker/DatePickerRoot.js +1 -0
  174. package/dist/DatePicker/DatePickerRoot.js.map +1 -1
  175. package/dist/DatePicker/DatePickerTrigger.cjs.map +1 -1
  176. package/dist/DatePicker/DatePickerTrigger.js.map +1 -1
  177. package/dist/DateRangeField/DateRangeFieldInput.cjs +1 -0
  178. package/dist/DateRangeField/DateRangeFieldInput.cjs.map +1 -1
  179. package/dist/DateRangeField/DateRangeFieldInput.js +1 -0
  180. package/dist/DateRangeField/DateRangeFieldInput.js.map +1 -1
  181. package/dist/DateRangeField/DateRangeFieldRoot.cjs +13 -9
  182. package/dist/DateRangeField/DateRangeFieldRoot.cjs.map +1 -1
  183. package/dist/DateRangeField/DateRangeFieldRoot.js +13 -9
  184. package/dist/DateRangeField/DateRangeFieldRoot.js.map +1 -1
  185. package/dist/DateRangePicker/DateRangePickerAnchor.cjs.map +1 -1
  186. package/dist/DateRangePicker/DateRangePickerAnchor.js.map +1 -1
  187. package/dist/DateRangePicker/DateRangePickerArrow.cjs.map +1 -1
  188. package/dist/DateRangePicker/DateRangePickerArrow.js.map +1 -1
  189. package/dist/DateRangePicker/DateRangePickerCalendar.cjs +3 -1
  190. package/dist/DateRangePicker/DateRangePickerCalendar.cjs.map +1 -1
  191. package/dist/DateRangePicker/DateRangePickerCalendar.js +3 -1
  192. package/dist/DateRangePicker/DateRangePickerCalendar.js.map +1 -1
  193. package/dist/DateRangePicker/DateRangePickerCell.cjs.map +1 -1
  194. package/dist/DateRangePicker/DateRangePickerCell.js.map +1 -1
  195. package/dist/DateRangePicker/DateRangePickerClose.cjs.map +1 -1
  196. package/dist/DateRangePicker/DateRangePickerClose.js.map +1 -1
  197. package/dist/DateRangePicker/DateRangePickerContent.cjs +8 -3
  198. package/dist/DateRangePicker/DateRangePickerContent.cjs.map +1 -1
  199. package/dist/DateRangePicker/DateRangePickerContent.js +9 -4
  200. package/dist/DateRangePicker/DateRangePickerContent.js.map +1 -1
  201. package/dist/DateRangePicker/DateRangePickerGrid.cjs.map +1 -1
  202. package/dist/DateRangePicker/DateRangePickerGrid.js.map +1 -1
  203. package/dist/DateRangePicker/DateRangePickerGridBody.cjs.map +1 -1
  204. package/dist/DateRangePicker/DateRangePickerGridBody.js.map +1 -1
  205. package/dist/DateRangePicker/DateRangePickerGridHead.cjs.map +1 -1
  206. package/dist/DateRangePicker/DateRangePickerGridHead.js.map +1 -1
  207. package/dist/DateRangePicker/DateRangePickerGridRow.cjs.map +1 -1
  208. package/dist/DateRangePicker/DateRangePickerGridRow.js.map +1 -1
  209. package/dist/DateRangePicker/DateRangePickerHeadCell.cjs.map +1 -1
  210. package/dist/DateRangePicker/DateRangePickerHeadCell.js.map +1 -1
  211. package/dist/DateRangePicker/DateRangePickerHeader.cjs.map +1 -1
  212. package/dist/DateRangePicker/DateRangePickerHeader.js.map +1 -1
  213. package/dist/DateRangePicker/DateRangePickerHeading.cjs.map +1 -1
  214. package/dist/DateRangePicker/DateRangePickerHeading.js.map +1 -1
  215. package/dist/DateRangePicker/DateRangePickerInput.cjs.map +1 -1
  216. package/dist/DateRangePicker/DateRangePickerInput.js.map +1 -1
  217. package/dist/DateRangePicker/DateRangePickerNext.cjs.map +1 -1
  218. package/dist/DateRangePicker/DateRangePickerNext.js.map +1 -1
  219. package/dist/DateRangePicker/DateRangePickerPrev.cjs.map +1 -1
  220. package/dist/DateRangePicker/DateRangePickerPrev.js.map +1 -1
  221. package/dist/DateRangePicker/DateRangePickerRoot.cjs +9 -2
  222. package/dist/DateRangePicker/DateRangePickerRoot.cjs.map +1 -1
  223. package/dist/DateRangePicker/DateRangePickerRoot.js +9 -2
  224. package/dist/DateRangePicker/DateRangePickerRoot.js.map +1 -1
  225. package/dist/DateRangePicker/DateRangePickerTrigger.cjs.map +1 -1
  226. package/dist/DateRangePicker/DateRangePickerTrigger.js.map +1 -1
  227. package/dist/Dialog/DialogClose.cjs +1 -1
  228. package/dist/Dialog/DialogClose.cjs.map +1 -1
  229. package/dist/Dialog/DialogClose.js +1 -1
  230. package/dist/Dialog/DialogClose.js.map +1 -1
  231. package/dist/Dialog/DialogContent.cjs.map +1 -1
  232. package/dist/Dialog/DialogContent.js.map +1 -1
  233. package/dist/Dialog/DialogContentImpl.cjs.map +1 -1
  234. package/dist/Dialog/DialogContentImpl.js.map +1 -1
  235. package/dist/Dialog/DialogContentModal.cjs.map +1 -1
  236. package/dist/Dialog/DialogContentModal.js.map +1 -1
  237. package/dist/Dialog/DialogContentNonModal.cjs.map +1 -1
  238. package/dist/Dialog/DialogContentNonModal.js.map +1 -1
  239. package/dist/Dialog/DialogDescription.cjs.map +1 -1
  240. package/dist/Dialog/DialogDescription.js.map +1 -1
  241. package/dist/Dialog/DialogOverlay.cjs.map +1 -1
  242. package/dist/Dialog/DialogOverlay.js.map +1 -1
  243. package/dist/Dialog/DialogOverlayImpl.cjs.map +1 -1
  244. package/dist/Dialog/DialogOverlayImpl.js.map +1 -1
  245. package/dist/Dialog/DialogRoot.cjs +4 -1
  246. package/dist/Dialog/DialogRoot.cjs.map +1 -1
  247. package/dist/Dialog/DialogRoot.js +4 -1
  248. package/dist/Dialog/DialogRoot.js.map +1 -1
  249. package/dist/Dialog/DialogTitle.cjs.map +1 -1
  250. package/dist/Dialog/DialogTitle.js.map +1 -1
  251. package/dist/Dialog/DialogTrigger.cjs +1 -1
  252. package/dist/Dialog/DialogTrigger.cjs.map +1 -1
  253. package/dist/Dialog/DialogTrigger.js +1 -1
  254. package/dist/Dialog/DialogTrigger.js.map +1 -1
  255. package/dist/Dialog/utils.cjs.map +1 -1
  256. package/dist/Dialog/utils.js.map +1 -1
  257. package/dist/DismissableLayer/DismissableLayer.cjs.map +1 -1
  258. package/dist/DismissableLayer/DismissableLayer.js.map +1 -1
  259. package/dist/DismissableLayer/DismissableLayerBranch.cjs.map +1 -1
  260. package/dist/DismissableLayer/DismissableLayerBranch.js.map +1 -1
  261. package/dist/DismissableLayer/utils.cjs +11 -6
  262. package/dist/DismissableLayer/utils.cjs.map +1 -1
  263. package/dist/DismissableLayer/utils.js +12 -7
  264. package/dist/DismissableLayer/utils.js.map +1 -1
  265. package/dist/DropdownMenu/DropdownMenuContent.cjs +1 -1
  266. package/dist/DropdownMenu/DropdownMenuContent.cjs.map +1 -1
  267. package/dist/DropdownMenu/DropdownMenuContent.js +1 -1
  268. package/dist/DropdownMenu/DropdownMenuContent.js.map +1 -1
  269. package/dist/DropdownMenu/DropdownMenuRoot.cjs.map +1 -1
  270. package/dist/DropdownMenu/DropdownMenuRoot.js.map +1 -1
  271. package/dist/DropdownMenu/DropdownMenuSub.cjs.map +1 -1
  272. package/dist/DropdownMenu/DropdownMenuSub.js.map +1 -1
  273. package/dist/DropdownMenu/DropdownMenuTrigger.cjs +1 -1
  274. package/dist/DropdownMenu/DropdownMenuTrigger.cjs.map +1 -1
  275. package/dist/DropdownMenu/DropdownMenuTrigger.js +1 -1
  276. package/dist/DropdownMenu/DropdownMenuTrigger.js.map +1 -1
  277. package/dist/Editable/EditableInput.cjs.map +1 -1
  278. package/dist/Editable/EditableInput.js.map +1 -1
  279. package/dist/Editable/EditablePreview.cjs.map +1 -1
  280. package/dist/Editable/EditablePreview.js.map +1 -1
  281. package/dist/Editable/EditableRoot.cjs +1 -1
  282. package/dist/Editable/EditableRoot.cjs.map +1 -1
  283. package/dist/Editable/EditableRoot.js +1 -1
  284. package/dist/Editable/EditableRoot.js.map +1 -1
  285. package/dist/FocusScope/FocusScope.cjs +1 -1
  286. package/dist/FocusScope/FocusScope.cjs.map +1 -1
  287. package/dist/FocusScope/FocusScope.js +1 -1
  288. package/dist/FocusScope/FocusScope.js.map +1 -1
  289. package/dist/HoverCard/HoverCardContent.cjs +1 -1
  290. package/dist/HoverCard/HoverCardContent.cjs.map +1 -1
  291. package/dist/HoverCard/HoverCardContent.js +1 -1
  292. package/dist/HoverCard/HoverCardContent.js.map +1 -1
  293. package/dist/HoverCard/HoverCardContentImpl.cjs +3 -3
  294. package/dist/HoverCard/HoverCardContentImpl.cjs.map +1 -1
  295. package/dist/HoverCard/HoverCardContentImpl.js +3 -3
  296. package/dist/HoverCard/HoverCardContentImpl.js.map +1 -1
  297. package/dist/HoverCard/HoverCardRoot.cjs.map +1 -1
  298. package/dist/HoverCard/HoverCardRoot.js.map +1 -1
  299. package/dist/HoverCard/HoverCardTrigger.cjs +1 -1
  300. package/dist/HoverCard/HoverCardTrigger.cjs.map +1 -1
  301. package/dist/HoverCard/HoverCardTrigger.js +1 -1
  302. package/dist/HoverCard/HoverCardTrigger.js.map +1 -1
  303. package/dist/Listbox/ListboxContent.cjs +1 -1
  304. package/dist/Listbox/ListboxContent.cjs.map +1 -1
  305. package/dist/Listbox/ListboxContent.js +1 -1
  306. package/dist/Listbox/ListboxContent.js.map +1 -1
  307. package/dist/Listbox/ListboxFilter.cjs.map +1 -1
  308. package/dist/Listbox/ListboxFilter.js.map +1 -1
  309. package/dist/Listbox/ListboxItem.cjs +2 -2
  310. package/dist/Listbox/ListboxItem.cjs.map +1 -1
  311. package/dist/Listbox/ListboxItem.js +2 -2
  312. package/dist/Listbox/ListboxItem.js.map +1 -1
  313. package/dist/Listbox/ListboxItemIndicator.cjs.map +1 -1
  314. package/dist/Listbox/ListboxItemIndicator.js.map +1 -1
  315. package/dist/Listbox/ListboxRoot.cjs +3 -3
  316. package/dist/Listbox/ListboxRoot.cjs.map +1 -1
  317. package/dist/Listbox/ListboxRoot.js +3 -3
  318. package/dist/Listbox/ListboxRoot.js.map +1 -1
  319. package/dist/Listbox/ListboxVirtualizer.cjs +4 -4
  320. package/dist/Listbox/ListboxVirtualizer.cjs.map +1 -1
  321. package/dist/Listbox/ListboxVirtualizer.js +4 -4
  322. package/dist/Listbox/ListboxVirtualizer.js.map +1 -1
  323. package/dist/Menu/MenuAnchor.cjs.map +1 -1
  324. package/dist/Menu/MenuAnchor.js.map +1 -1
  325. package/dist/Menu/MenuCheckboxItem.cjs +1 -1
  326. package/dist/Menu/MenuCheckboxItem.cjs.map +1 -1
  327. package/dist/Menu/MenuCheckboxItem.js +1 -1
  328. package/dist/Menu/MenuCheckboxItem.js.map +1 -1
  329. package/dist/Menu/MenuContent.cjs.map +1 -1
  330. package/dist/Menu/MenuContent.js.map +1 -1
  331. package/dist/Menu/MenuContentImpl.cjs +2 -2
  332. package/dist/Menu/MenuContentImpl.cjs.map +1 -1
  333. package/dist/Menu/MenuContentImpl.js +2 -2
  334. package/dist/Menu/MenuContentImpl.js.map +1 -1
  335. package/dist/Menu/MenuItem.cjs.map +1 -1
  336. package/dist/Menu/MenuItem.js.map +1 -1
  337. package/dist/Menu/MenuItemImpl.cjs +1 -1
  338. package/dist/Menu/MenuItemImpl.cjs.map +1 -1
  339. package/dist/Menu/MenuItemImpl.js +1 -1
  340. package/dist/Menu/MenuItemImpl.js.map +1 -1
  341. package/dist/Menu/MenuItemIndicator.cjs.map +1 -1
  342. package/dist/Menu/MenuItemIndicator.js.map +1 -1
  343. package/dist/Menu/MenuRadioGroup.cjs.map +1 -1
  344. package/dist/Menu/MenuRadioGroup.js.map +1 -1
  345. package/dist/Menu/MenuRadioItem.cjs +1 -1
  346. package/dist/Menu/MenuRadioItem.cjs.map +1 -1
  347. package/dist/Menu/MenuRadioItem.js +1 -1
  348. package/dist/Menu/MenuRadioItem.js.map +1 -1
  349. package/dist/Menu/MenuRoot.cjs +1 -1
  350. package/dist/Menu/MenuRoot.cjs.map +1 -1
  351. package/dist/Menu/MenuRoot.js +1 -1
  352. package/dist/Menu/MenuRoot.js.map +1 -1
  353. package/dist/Menu/MenuRootContentModal.cjs.map +1 -1
  354. package/dist/Menu/MenuRootContentModal.js.map +1 -1
  355. package/dist/Menu/MenuRootContentNonModal.cjs.map +1 -1
  356. package/dist/Menu/MenuRootContentNonModal.js.map +1 -1
  357. package/dist/Menu/MenuSub.cjs.map +1 -1
  358. package/dist/Menu/MenuSub.js.map +1 -1
  359. package/dist/Menu/MenuSubContent.cjs.map +1 -1
  360. package/dist/Menu/MenuSubContent.js.map +1 -1
  361. package/dist/Menu/MenuSubTrigger.cjs +1 -1
  362. package/dist/Menu/MenuSubTrigger.cjs.map +1 -1
  363. package/dist/Menu/MenuSubTrigger.js +1 -1
  364. package/dist/Menu/MenuSubTrigger.js.map +1 -1
  365. package/dist/Menubar/MenubarContent.cjs +1 -1
  366. package/dist/Menubar/MenubarContent.cjs.map +1 -1
  367. package/dist/Menubar/MenubarContent.js +1 -1
  368. package/dist/Menubar/MenubarContent.js.map +1 -1
  369. package/dist/Menubar/MenubarGroup.cjs.map +1 -1
  370. package/dist/Menubar/MenubarGroup.js.map +1 -1
  371. package/dist/Menubar/MenubarMenu.cjs.map +1 -1
  372. package/dist/Menubar/MenubarMenu.js.map +1 -1
  373. package/dist/Menubar/MenubarRoot.cjs.map +1 -1
  374. package/dist/Menubar/MenubarRoot.js.map +1 -1
  375. package/dist/Menubar/MenubarSub.cjs.map +1 -1
  376. package/dist/Menubar/MenubarSub.js.map +1 -1
  377. package/dist/Menubar/MenubarSubContent.cjs.map +1 -1
  378. package/dist/Menubar/MenubarSubContent.js.map +1 -1
  379. package/dist/Menubar/MenubarTrigger.cjs +1 -1
  380. package/dist/Menubar/MenubarTrigger.cjs.map +1 -1
  381. package/dist/Menubar/MenubarTrigger.js +1 -1
  382. package/dist/Menubar/MenubarTrigger.js.map +1 -1
  383. package/dist/NavigationMenu/NavigationMenuContent.cjs +1 -1
  384. package/dist/NavigationMenu/NavigationMenuContent.cjs.map +1 -1
  385. package/dist/NavigationMenu/NavigationMenuContent.js +1 -1
  386. package/dist/NavigationMenu/NavigationMenuContent.js.map +1 -1
  387. package/dist/NavigationMenu/NavigationMenuContentImpl.cjs +1 -1
  388. package/dist/NavigationMenu/NavigationMenuContentImpl.cjs.map +1 -1
  389. package/dist/NavigationMenu/NavigationMenuContentImpl.js +1 -1
  390. package/dist/NavigationMenu/NavigationMenuContentImpl.js.map +1 -1
  391. package/dist/NavigationMenu/NavigationMenuIndicator.cjs.map +1 -1
  392. package/dist/NavigationMenu/NavigationMenuIndicator.js.map +1 -1
  393. package/dist/NavigationMenu/NavigationMenuItem.cjs.map +1 -1
  394. package/dist/NavigationMenu/NavigationMenuItem.js.map +1 -1
  395. package/dist/NavigationMenu/NavigationMenuLink.cjs.map +1 -1
  396. package/dist/NavigationMenu/NavigationMenuLink.js.map +1 -1
  397. package/dist/NavigationMenu/NavigationMenuList.cjs.map +1 -1
  398. package/dist/NavigationMenu/NavigationMenuList.js.map +1 -1
  399. package/dist/NavigationMenu/NavigationMenuRoot.cjs.map +1 -1
  400. package/dist/NavigationMenu/NavigationMenuRoot.js.map +1 -1
  401. package/dist/NavigationMenu/NavigationMenuSub.cjs.map +1 -1
  402. package/dist/NavigationMenu/NavigationMenuSub.js.map +1 -1
  403. package/dist/NavigationMenu/NavigationMenuTrigger.cjs.map +1 -1
  404. package/dist/NavigationMenu/NavigationMenuTrigger.js.map +1 -1
  405. package/dist/NavigationMenu/NavigationMenuViewport.cjs.map +1 -1
  406. package/dist/NavigationMenu/NavigationMenuViewport.js.map +1 -1
  407. package/dist/NumberField/NumberFieldDecrement.cjs +1 -1
  408. package/dist/NumberField/NumberFieldDecrement.cjs.map +1 -1
  409. package/dist/NumberField/NumberFieldDecrement.js +1 -1
  410. package/dist/NumberField/NumberFieldDecrement.js.map +1 -1
  411. package/dist/NumberField/NumberFieldIncrement.cjs.map +1 -1
  412. package/dist/NumberField/NumberFieldIncrement.js.map +1 -1
  413. package/dist/NumberField/NumberFieldInput.cjs +3 -3
  414. package/dist/NumberField/NumberFieldInput.cjs.map +1 -1
  415. package/dist/NumberField/NumberFieldInput.js +3 -3
  416. package/dist/NumberField/NumberFieldInput.js.map +1 -1
  417. package/dist/NumberField/NumberFieldRoot.cjs +8 -5
  418. package/dist/NumberField/NumberFieldRoot.cjs.map +1 -1
  419. package/dist/NumberField/NumberFieldRoot.js +8 -5
  420. package/dist/NumberField/NumberFieldRoot.js.map +1 -1
  421. package/dist/NumberField/utils.cjs.map +1 -1
  422. package/dist/NumberField/utils.js +1 -1
  423. package/dist/NumberField/utils.js.map +1 -1
  424. package/dist/Pagination/PaginationList.cjs.map +1 -1
  425. package/dist/Pagination/PaginationList.js.map +1 -1
  426. package/dist/Pagination/PaginationRoot.cjs.map +1 -1
  427. package/dist/Pagination/PaginationRoot.js.map +1 -1
  428. package/dist/Pagination/utils.cjs.map +1 -1
  429. package/dist/Pagination/utils.js.map +1 -1
  430. package/dist/PinInput/PinInputInput.cjs +1 -1
  431. package/dist/PinInput/PinInputInput.cjs.map +1 -1
  432. package/dist/PinInput/PinInputInput.js +1 -1
  433. package/dist/PinInput/PinInputInput.js.map +1 -1
  434. package/dist/PinInput/PinInputRoot.cjs.map +1 -1
  435. package/dist/PinInput/PinInputRoot.js.map +1 -1
  436. package/dist/Popover/PopoverAnchor.cjs.map +1 -1
  437. package/dist/Popover/PopoverAnchor.js.map +1 -1
  438. package/dist/Popover/PopoverClose.cjs.map +1 -1
  439. package/dist/Popover/PopoverClose.js.map +1 -1
  440. package/dist/Popover/PopoverContent.cjs.map +1 -1
  441. package/dist/Popover/PopoverContent.js.map +1 -1
  442. package/dist/Popover/PopoverContentImpl.cjs +1 -1
  443. package/dist/Popover/PopoverContentImpl.cjs.map +1 -1
  444. package/dist/Popover/PopoverContentImpl.js +1 -1
  445. package/dist/Popover/PopoverContentImpl.js.map +1 -1
  446. package/dist/Popover/PopoverContentModal.cjs +1 -1
  447. package/dist/Popover/PopoverContentModal.cjs.map +1 -1
  448. package/dist/Popover/PopoverContentModal.js +1 -1
  449. package/dist/Popover/PopoverContentModal.js.map +1 -1
  450. package/dist/Popover/PopoverContentNonModal.cjs.map +1 -1
  451. package/dist/Popover/PopoverContentNonModal.js.map +1 -1
  452. package/dist/Popover/PopoverRoot.cjs.map +1 -1
  453. package/dist/Popover/PopoverRoot.js.map +1 -1
  454. package/dist/Popover/PopoverTrigger.cjs +1 -1
  455. package/dist/Popover/PopoverTrigger.cjs.map +1 -1
  456. package/dist/Popover/PopoverTrigger.js +1 -1
  457. package/dist/Popover/PopoverTrigger.js.map +1 -1
  458. package/dist/Popper/PopperAnchor.cjs.map +1 -1
  459. package/dist/Popper/PopperAnchor.js.map +1 -1
  460. package/dist/Popper/PopperArrow.cjs.map +1 -1
  461. package/dist/Popper/PopperArrow.js.map +1 -1
  462. package/dist/Popper/PopperContent.cjs +2 -2
  463. package/dist/Popper/PopperContent.cjs.map +1 -1
  464. package/dist/Popper/PopperContent.js +2 -2
  465. package/dist/Popper/PopperContent.js.map +1 -1
  466. package/dist/Popper/PopperRoot.cjs.map +1 -1
  467. package/dist/Popper/PopperRoot.js.map +1 -1
  468. package/dist/Presence/Presence.cjs +1 -1
  469. package/dist/Presence/Presence.cjs.map +1 -1
  470. package/dist/Presence/Presence.js +1 -1
  471. package/dist/Presence/Presence.js.map +1 -1
  472. package/dist/Presence/usePresence.cjs +2 -2
  473. package/dist/Presence/usePresence.cjs.map +1 -1
  474. package/dist/Presence/usePresence.js +2 -2
  475. package/dist/Presence/usePresence.js.map +1 -1
  476. package/dist/Primitive/Primitive.cjs.map +1 -1
  477. package/dist/Primitive/Primitive.js.map +1 -1
  478. package/dist/Primitive/Slot.cjs +1 -9
  479. package/dist/Primitive/Slot.cjs.map +1 -1
  480. package/dist/Primitive/Slot.js +1 -9
  481. package/dist/Primitive/Slot.js.map +1 -1
  482. package/dist/Primitive/usePrimitiveElement.cjs.map +1 -1
  483. package/dist/Primitive/usePrimitiveElement.js.map +1 -1
  484. package/dist/Progress/ProgressIndicator.cjs.map +1 -1
  485. package/dist/Progress/ProgressIndicator.js.map +1 -1
  486. package/dist/Progress/ProgressRoot.cjs +3 -2
  487. package/dist/Progress/ProgressRoot.cjs.map +1 -1
  488. package/dist/Progress/ProgressRoot.js +3 -2
  489. package/dist/Progress/ProgressRoot.js.map +1 -1
  490. package/dist/RadioGroup/Radio.cjs.map +1 -1
  491. package/dist/RadioGroup/Radio.js.map +1 -1
  492. package/dist/RadioGroup/RadioGroupIndicator.cjs.map +1 -1
  493. package/dist/RadioGroup/RadioGroupIndicator.js.map +1 -1
  494. package/dist/RadioGroup/RadioGroupItem.cjs +1 -1
  495. package/dist/RadioGroup/RadioGroupItem.cjs.map +1 -1
  496. package/dist/RadioGroup/RadioGroupItem.js +1 -1
  497. package/dist/RadioGroup/RadioGroupItem.js.map +1 -1
  498. package/dist/RadioGroup/RadioGroupRoot.cjs.map +1 -1
  499. package/dist/RadioGroup/RadioGroupRoot.js.map +1 -1
  500. package/dist/RadioGroup/utils.cjs.map +1 -1
  501. package/dist/RadioGroup/utils.js.map +1 -1
  502. package/dist/RangeCalendar/RangeCalendarCell.cjs +3 -3
  503. package/dist/RangeCalendar/RangeCalendarCell.cjs.map +1 -1
  504. package/dist/RangeCalendar/RangeCalendarCell.js +3 -3
  505. package/dist/RangeCalendar/RangeCalendarCell.js.map +1 -1
  506. package/dist/RangeCalendar/RangeCalendarCellTrigger.cjs +28 -9
  507. package/dist/RangeCalendar/RangeCalendarCellTrigger.cjs.map +1 -1
  508. package/dist/RangeCalendar/RangeCalendarCellTrigger.js +28 -9
  509. package/dist/RangeCalendar/RangeCalendarCellTrigger.js.map +1 -1
  510. package/dist/RangeCalendar/RangeCalendarHeading.cjs +1 -1
  511. package/dist/RangeCalendar/RangeCalendarHeading.cjs.map +1 -1
  512. package/dist/RangeCalendar/RangeCalendarHeading.js +1 -1
  513. package/dist/RangeCalendar/RangeCalendarHeading.js.map +1 -1
  514. package/dist/RangeCalendar/RangeCalendarNext.cjs.map +1 -1
  515. package/dist/RangeCalendar/RangeCalendarNext.js.map +1 -1
  516. package/dist/RangeCalendar/RangeCalendarPrev.cjs.map +1 -1
  517. package/dist/RangeCalendar/RangeCalendarPrev.js.map +1 -1
  518. package/dist/RangeCalendar/RangeCalendarRoot.cjs +32 -10
  519. package/dist/RangeCalendar/RangeCalendarRoot.cjs.map +1 -1
  520. package/dist/RangeCalendar/RangeCalendarRoot.js +32 -10
  521. package/dist/RangeCalendar/RangeCalendarRoot.js.map +1 -1
  522. package/dist/RangeCalendar/useRangeCalendar.cjs +26 -3
  523. package/dist/RangeCalendar/useRangeCalendar.cjs.map +1 -1
  524. package/dist/RangeCalendar/useRangeCalendar.js +26 -3
  525. package/dist/RangeCalendar/useRangeCalendar.js.map +1 -1
  526. package/dist/RovingFocus/RovingFocusGroup.cjs +1 -1
  527. package/dist/RovingFocus/RovingFocusGroup.cjs.map +1 -1
  528. package/dist/RovingFocus/RovingFocusGroup.js +1 -1
  529. package/dist/RovingFocus/RovingFocusGroup.js.map +1 -1
  530. package/dist/RovingFocus/RovingFocusItem.cjs +1 -1
  531. package/dist/RovingFocus/RovingFocusItem.cjs.map +1 -1
  532. package/dist/RovingFocus/RovingFocusItem.js +1 -1
  533. package/dist/RovingFocus/RovingFocusItem.js.map +1 -1
  534. package/dist/ScrollArea/ScrollAreaCorner.cjs.map +1 -1
  535. package/dist/ScrollArea/ScrollAreaCorner.js.map +1 -1
  536. package/dist/ScrollArea/ScrollAreaCornerImpl.cjs +1 -1
  537. package/dist/ScrollArea/ScrollAreaCornerImpl.cjs.map +1 -1
  538. package/dist/ScrollArea/ScrollAreaCornerImpl.js +1 -1
  539. package/dist/ScrollArea/ScrollAreaCornerImpl.js.map +1 -1
  540. package/dist/ScrollArea/ScrollAreaRoot.cjs.map +1 -1
  541. package/dist/ScrollArea/ScrollAreaRoot.js.map +1 -1
  542. package/dist/ScrollArea/ScrollAreaScrollbar.cjs +1 -1
  543. package/dist/ScrollArea/ScrollAreaScrollbar.cjs.map +1 -1
  544. package/dist/ScrollArea/ScrollAreaScrollbar.js +1 -1
  545. package/dist/ScrollArea/ScrollAreaScrollbar.js.map +1 -1
  546. package/dist/ScrollArea/ScrollAreaScrollbarAuto.cjs.map +1 -1
  547. package/dist/ScrollArea/ScrollAreaScrollbarAuto.js.map +1 -1
  548. package/dist/ScrollArea/ScrollAreaScrollbarHover.cjs.map +1 -1
  549. package/dist/ScrollArea/ScrollAreaScrollbarHover.js.map +1 -1
  550. package/dist/ScrollArea/ScrollAreaScrollbarImpl.cjs.map +1 -1
  551. package/dist/ScrollArea/ScrollAreaScrollbarImpl.js.map +1 -1
  552. package/dist/ScrollArea/ScrollAreaScrollbarScroll.cjs.map +1 -1
  553. package/dist/ScrollArea/ScrollAreaScrollbarScroll.js.map +1 -1
  554. package/dist/ScrollArea/ScrollAreaScrollbarVisible.cjs.map +1 -1
  555. package/dist/ScrollArea/ScrollAreaScrollbarVisible.js.map +1 -1
  556. package/dist/ScrollArea/ScrollAreaScrollbarX.cjs.map +1 -1
  557. package/dist/ScrollArea/ScrollAreaScrollbarX.js.map +1 -1
  558. package/dist/ScrollArea/ScrollAreaScrollbarY.cjs.map +1 -1
  559. package/dist/ScrollArea/ScrollAreaScrollbarY.js.map +1 -1
  560. package/dist/ScrollArea/ScrollAreaThumb.cjs.map +1 -1
  561. package/dist/ScrollArea/ScrollAreaThumb.js.map +1 -1
  562. package/dist/ScrollArea/ScrollAreaViewport.cjs +1 -1
  563. package/dist/ScrollArea/ScrollAreaViewport.cjs.map +1 -1
  564. package/dist/ScrollArea/ScrollAreaViewport.js +1 -1
  565. package/dist/ScrollArea/ScrollAreaViewport.js.map +1 -1
  566. package/dist/ScrollArea/utils.cjs.map +1 -1
  567. package/dist/ScrollArea/utils.js.map +1 -1
  568. package/dist/Select/SelectArrow.cjs +1 -1
  569. package/dist/Select/SelectArrow.cjs.map +1 -1
  570. package/dist/Select/SelectArrow.js +1 -1
  571. package/dist/Select/SelectArrow.js.map +1 -1
  572. package/dist/Select/SelectContent.cjs.map +1 -1
  573. package/dist/Select/SelectContent.js.map +1 -1
  574. package/dist/Select/SelectContentImpl.cjs +4 -4
  575. package/dist/Select/SelectContentImpl.cjs.map +1 -1
  576. package/dist/Select/SelectContentImpl.js +4 -4
  577. package/dist/Select/SelectContentImpl.js.map +1 -1
  578. package/dist/Select/SelectItem.cjs +1 -1
  579. package/dist/Select/SelectItem.cjs.map +1 -1
  580. package/dist/Select/SelectItem.js +1 -1
  581. package/dist/Select/SelectItem.js.map +1 -1
  582. package/dist/Select/SelectItemAlignedPosition.cjs +2 -2
  583. package/dist/Select/SelectItemAlignedPosition.cjs.map +1 -1
  584. package/dist/Select/SelectItemAlignedPosition.js +2 -2
  585. package/dist/Select/SelectItemAlignedPosition.js.map +1 -1
  586. package/dist/Select/SelectItemIndicator.cjs.map +1 -1
  587. package/dist/Select/SelectItemIndicator.js.map +1 -1
  588. package/dist/Select/SelectItemText.cjs.map +1 -1
  589. package/dist/Select/SelectItemText.js.map +1 -1
  590. package/dist/Select/SelectPopperPosition.cjs +1 -1
  591. package/dist/Select/SelectPopperPosition.cjs.map +1 -1
  592. package/dist/Select/SelectPopperPosition.js +1 -1
  593. package/dist/Select/SelectPopperPosition.js.map +1 -1
  594. package/dist/Select/SelectProvider.cjs.map +1 -1
  595. package/dist/Select/SelectProvider.js.map +1 -1
  596. package/dist/Select/SelectRoot.cjs +5 -3
  597. package/dist/Select/SelectRoot.cjs.map +1 -1
  598. package/dist/Select/SelectRoot.js +5 -3
  599. package/dist/Select/SelectRoot.js.map +1 -1
  600. package/dist/Select/SelectScrollButtonImpl.cjs.map +1 -1
  601. package/dist/Select/SelectScrollButtonImpl.js.map +1 -1
  602. package/dist/Select/SelectScrollDownButton.cjs +1 -1
  603. package/dist/Select/SelectScrollDownButton.cjs.map +1 -1
  604. package/dist/Select/SelectScrollDownButton.js +1 -1
  605. package/dist/Select/SelectScrollDownButton.js.map +1 -1
  606. package/dist/Select/SelectTrigger.cjs +3 -3
  607. package/dist/Select/SelectTrigger.cjs.map +1 -1
  608. package/dist/Select/SelectTrigger.js +3 -3
  609. package/dist/Select/SelectTrigger.js.map +1 -1
  610. package/dist/Select/SelectValue.cjs +2 -1
  611. package/dist/Select/SelectValue.cjs.map +1 -1
  612. package/dist/Select/SelectValue.js +2 -1
  613. package/dist/Select/SelectValue.js.map +1 -1
  614. package/dist/Select/SelectViewport.cjs +1 -1
  615. package/dist/Select/SelectViewport.cjs.map +1 -1
  616. package/dist/Select/SelectViewport.js +1 -1
  617. package/dist/Select/SelectViewport.js.map +1 -1
  618. package/dist/Select/utils.cjs +4 -0
  619. package/dist/Select/utils.cjs.map +1 -1
  620. package/dist/Select/utils.js +4 -1
  621. package/dist/Select/utils.js.map +1 -1
  622. package/dist/Slider/SliderHorizontal.cjs +7 -4
  623. package/dist/Slider/SliderHorizontal.cjs.map +1 -1
  624. package/dist/Slider/SliderHorizontal.js +7 -4
  625. package/dist/Slider/SliderHorizontal.js.map +1 -1
  626. package/dist/Slider/SliderRange.cjs +2 -2
  627. package/dist/Slider/SliderRange.cjs.map +1 -1
  628. package/dist/Slider/SliderRange.js +2 -2
  629. package/dist/Slider/SliderRange.js.map +1 -1
  630. package/dist/Slider/SliderRoot.cjs +1 -1
  631. package/dist/Slider/SliderRoot.cjs.map +1 -1
  632. package/dist/Slider/SliderRoot.js +1 -1
  633. package/dist/Slider/SliderRoot.js.map +1 -1
  634. package/dist/Slider/SliderThumb.cjs +1 -1
  635. package/dist/Slider/SliderThumb.cjs.map +1 -1
  636. package/dist/Slider/SliderThumb.js +1 -1
  637. package/dist/Slider/SliderThumb.js.map +1 -1
  638. package/dist/Slider/SliderThumbImpl.cjs +2 -2
  639. package/dist/Slider/SliderThumbImpl.cjs.map +1 -1
  640. package/dist/Slider/SliderThumbImpl.js +2 -2
  641. package/dist/Slider/SliderThumbImpl.js.map +1 -1
  642. package/dist/Slider/SliderVertical.cjs +7 -4
  643. package/dist/Slider/SliderVertical.cjs.map +1 -1
  644. package/dist/Slider/SliderVertical.js +7 -4
  645. package/dist/Slider/SliderVertical.js.map +1 -1
  646. package/dist/Slider/utils.cjs +1 -1
  647. package/dist/Slider/utils.cjs.map +1 -1
  648. package/dist/Slider/utils.js +1 -1
  649. package/dist/Slider/utils.js.map +1 -1
  650. package/dist/Splitter/SplitterGroup.cjs +5 -5
  651. package/dist/Splitter/SplitterGroup.cjs.map +1 -1
  652. package/dist/Splitter/SplitterGroup.js +5 -5
  653. package/dist/Splitter/SplitterGroup.js.map +1 -1
  654. package/dist/Splitter/SplitterPanel.cjs +16 -10
  655. package/dist/Splitter/SplitterPanel.cjs.map +1 -1
  656. package/dist/Splitter/SplitterPanel.js +16 -10
  657. package/dist/Splitter/SplitterPanel.js.map +1 -1
  658. package/dist/Splitter/SplitterResizeHandle.cjs +1 -1
  659. package/dist/Splitter/SplitterResizeHandle.cjs.map +1 -1
  660. package/dist/Splitter/SplitterResizeHandle.js +1 -1
  661. package/dist/Splitter/SplitterResizeHandle.js.map +1 -1
  662. package/dist/Stepper/StepperDescription.cjs +1 -1
  663. package/dist/Stepper/StepperDescription.cjs.map +1 -1
  664. package/dist/Stepper/StepperDescription.js +1 -1
  665. package/dist/Stepper/StepperDescription.js.map +1 -1
  666. package/dist/Stepper/StepperIndicator.cjs.map +1 -1
  667. package/dist/Stepper/StepperIndicator.js.map +1 -1
  668. package/dist/Stepper/StepperItem.cjs.map +1 -1
  669. package/dist/Stepper/StepperItem.js.map +1 -1
  670. package/dist/Stepper/StepperRoot.cjs +30 -3
  671. package/dist/Stepper/StepperRoot.cjs.map +1 -1
  672. package/dist/Stepper/StepperRoot.js +30 -3
  673. package/dist/Stepper/StepperRoot.js.map +1 -1
  674. package/dist/Stepper/StepperSeparator.cjs.map +1 -1
  675. package/dist/Stepper/StepperSeparator.js.map +1 -1
  676. package/dist/Stepper/StepperTitle.cjs.map +1 -1
  677. package/dist/Stepper/StepperTitle.js.map +1 -1
  678. package/dist/Stepper/StepperTrigger.cjs +1 -1
  679. package/dist/Stepper/StepperTrigger.cjs.map +1 -1
  680. package/dist/Stepper/StepperTrigger.js +1 -1
  681. package/dist/Stepper/StepperTrigger.js.map +1 -1
  682. package/dist/Switch/SwitchRoot.cjs.map +1 -1
  683. package/dist/Switch/SwitchRoot.js.map +1 -1
  684. package/dist/Switch/SwitchThumb.cjs.map +1 -1
  685. package/dist/Switch/SwitchThumb.js.map +1 -1
  686. package/dist/Tabs/TabsContent.cjs +1 -1
  687. package/dist/Tabs/TabsContent.cjs.map +1 -1
  688. package/dist/Tabs/TabsContent.js +1 -1
  689. package/dist/Tabs/TabsContent.js.map +1 -1
  690. package/dist/Tabs/TabsIndicator.cjs.map +1 -1
  691. package/dist/Tabs/TabsIndicator.js.map +1 -1
  692. package/dist/Tabs/TabsList.cjs +1 -1
  693. package/dist/Tabs/TabsList.cjs.map +1 -1
  694. package/dist/Tabs/TabsList.js +1 -1
  695. package/dist/Tabs/TabsList.js.map +1 -1
  696. package/dist/Tabs/TabsRoot.cjs.map +1 -1
  697. package/dist/Tabs/TabsRoot.js.map +1 -1
  698. package/dist/Tabs/TabsTrigger.cjs.map +1 -1
  699. package/dist/Tabs/TabsTrigger.js.map +1 -1
  700. package/dist/TagsInput/TagsInputClear.cjs +1 -1
  701. package/dist/TagsInput/TagsInputClear.cjs.map +1 -1
  702. package/dist/TagsInput/TagsInputClear.js +1 -1
  703. package/dist/TagsInput/TagsInputClear.js.map +1 -1
  704. package/dist/TagsInput/TagsInputInput.cjs +2 -1
  705. package/dist/TagsInput/TagsInputInput.cjs.map +1 -1
  706. package/dist/TagsInput/TagsInputInput.js +2 -1
  707. package/dist/TagsInput/TagsInputInput.js.map +1 -1
  708. package/dist/TagsInput/TagsInputItem.cjs.map +1 -1
  709. package/dist/TagsInput/TagsInputItem.js.map +1 -1
  710. package/dist/TagsInput/TagsInputItemDelete.cjs +1 -1
  711. package/dist/TagsInput/TagsInputItemDelete.cjs.map +1 -1
  712. package/dist/TagsInput/TagsInputItemDelete.js +1 -1
  713. package/dist/TagsInput/TagsInputItemDelete.js.map +1 -1
  714. package/dist/TagsInput/TagsInputItemText.cjs +1 -1
  715. package/dist/TagsInput/TagsInputItemText.cjs.map +1 -1
  716. package/dist/TagsInput/TagsInputItemText.js +1 -1
  717. package/dist/TagsInput/TagsInputItemText.js.map +1 -1
  718. package/dist/TagsInput/TagsInputRoot.cjs +1 -1
  719. package/dist/TagsInput/TagsInputRoot.cjs.map +1 -1
  720. package/dist/TagsInput/TagsInputRoot.js +1 -1
  721. package/dist/TagsInput/TagsInputRoot.js.map +1 -1
  722. package/dist/TimeField/TimeFieldInput.cjs +1 -0
  723. package/dist/TimeField/TimeFieldInput.cjs.map +1 -1
  724. package/dist/TimeField/TimeFieldInput.js +1 -0
  725. package/dist/TimeField/TimeFieldInput.js.map +1 -1
  726. package/dist/TimeField/TimeFieldRoot.cjs +12 -3
  727. package/dist/TimeField/TimeFieldRoot.cjs.map +1 -1
  728. package/dist/TimeField/TimeFieldRoot.js +12 -3
  729. package/dist/TimeField/TimeFieldRoot.js.map +1 -1
  730. package/dist/Toast/ToastAnnounce.cjs +1 -1
  731. package/dist/Toast/ToastAnnounce.cjs.map +1 -1
  732. package/dist/Toast/ToastAnnounce.js +1 -1
  733. package/dist/Toast/ToastAnnounce.js.map +1 -1
  734. package/dist/Toast/ToastProvider.cjs.map +1 -1
  735. package/dist/Toast/ToastProvider.js.map +1 -1
  736. package/dist/Toast/ToastRoot.cjs +28 -20
  737. package/dist/Toast/ToastRoot.cjs.map +1 -1
  738. package/dist/Toast/ToastRoot.js +28 -20
  739. package/dist/Toast/ToastRoot.js.map +1 -1
  740. package/dist/Toast/ToastRootImpl.cjs +2 -2
  741. package/dist/Toast/ToastRootImpl.cjs.map +1 -1
  742. package/dist/Toast/ToastRootImpl.js +2 -2
  743. package/dist/Toast/ToastRootImpl.js.map +1 -1
  744. package/dist/Toast/ToastViewport.cjs +2 -2
  745. package/dist/Toast/ToastViewport.cjs.map +1 -1
  746. package/dist/Toast/ToastViewport.js +2 -2
  747. package/dist/Toast/ToastViewport.js.map +1 -1
  748. package/dist/Toggle/Toggle.cjs.map +1 -1
  749. package/dist/Toggle/Toggle.js.map +1 -1
  750. package/dist/ToggleGroup/ToggleGroupItem.cjs.map +1 -1
  751. package/dist/ToggleGroup/ToggleGroupItem.js.map +1 -1
  752. package/dist/ToggleGroup/ToggleGroupRoot.cjs.map +1 -1
  753. package/dist/ToggleGroup/ToggleGroupRoot.js.map +1 -1
  754. package/dist/Toolbar/ToolbarSeparator.cjs +1 -1
  755. package/dist/Toolbar/ToolbarSeparator.js +1 -1
  756. package/dist/Toolbar/ToolbarToggleGroup.cjs +1 -1
  757. package/dist/Toolbar/ToolbarToggleGroup.cjs.map +1 -1
  758. package/dist/Toolbar/ToolbarToggleGroup.js +1 -1
  759. package/dist/Toolbar/ToolbarToggleGroup.js.map +1 -1
  760. package/dist/Toolbar/ToolbarToggleItem.cjs.map +1 -1
  761. package/dist/Toolbar/ToolbarToggleItem.js.map +1 -1
  762. package/dist/Tooltip/TooltipContent.cjs +1 -1
  763. package/dist/Tooltip/TooltipContent.cjs.map +1 -1
  764. package/dist/Tooltip/TooltipContent.js +1 -1
  765. package/dist/Tooltip/TooltipContent.js.map +1 -1
  766. package/dist/Tooltip/TooltipContentHoverable.cjs.map +1 -1
  767. package/dist/Tooltip/TooltipContentHoverable.js.map +1 -1
  768. package/dist/Tooltip/TooltipContentImpl.cjs +3 -3
  769. package/dist/Tooltip/TooltipContentImpl.cjs.map +1 -1
  770. package/dist/Tooltip/TooltipContentImpl.js +3 -3
  771. package/dist/Tooltip/TooltipContentImpl.js.map +1 -1
  772. package/dist/Tooltip/TooltipRoot.cjs.map +1 -1
  773. package/dist/Tooltip/TooltipRoot.js.map +1 -1
  774. package/dist/Tooltip/TooltipTrigger.cjs +4 -1
  775. package/dist/Tooltip/TooltipTrigger.cjs.map +1 -1
  776. package/dist/Tooltip/TooltipTrigger.js +4 -1
  777. package/dist/Tooltip/TooltipTrigger.js.map +1 -1
  778. package/dist/Tree/TreeItem.cjs +4 -1
  779. package/dist/Tree/TreeItem.cjs.map +1 -1
  780. package/dist/Tree/TreeItem.js +4 -1
  781. package/dist/Tree/TreeItem.js.map +1 -1
  782. package/dist/Tree/TreeRoot.cjs +28 -2
  783. package/dist/Tree/TreeRoot.cjs.map +1 -1
  784. package/dist/Tree/TreeRoot.js +28 -2
  785. package/dist/Tree/TreeRoot.js.map +1 -1
  786. package/dist/Tree/TreeVirtualizer.cjs +2 -2
  787. package/dist/Tree/TreeVirtualizer.cjs.map +1 -1
  788. package/dist/Tree/TreeVirtualizer.js +2 -2
  789. package/dist/Tree/TreeVirtualizer.js.map +1 -1
  790. package/dist/Tree/utils.cjs.map +1 -1
  791. package/dist/Tree/utils.js.map +1 -1
  792. package/dist/Viewport/Viewport.cjs.map +1 -1
  793. package/dist/Viewport/Viewport.js.map +1 -1
  794. package/dist/VisuallyHidden/VisuallyHiddenInput.cjs.map +1 -1
  795. package/dist/VisuallyHidden/VisuallyHiddenInput.js.map +1 -1
  796. package/dist/VisuallyHidden/VisuallyHiddenInputBubble.cjs.map +1 -1
  797. package/dist/VisuallyHidden/VisuallyHiddenInputBubble.js.map +1 -1
  798. package/dist/composables/useWindowSplitterBehavior.cjs.map +1 -1
  799. package/dist/composables/useWindowSplitterBehavior.js.map +1 -1
  800. package/dist/composables/useWindowSplitterPanelGroupBehavior.cjs +3 -3
  801. package/dist/composables/useWindowSplitterPanelGroupBehavior.cjs.map +1 -1
  802. package/dist/composables/useWindowSplitterPanelGroupBehavior.js +3 -3
  803. package/dist/composables/useWindowSplitterPanelGroupBehavior.js.map +1 -1
  804. package/dist/date/calendar.cjs +1 -1
  805. package/dist/date/calendar.cjs.map +1 -1
  806. package/dist/date/calendar.js +1 -1
  807. package/dist/date/calendar.js.map +1 -1
  808. package/dist/date/comparators.cjs +6 -4
  809. package/dist/date/comparators.cjs.map +1 -1
  810. package/dist/date/comparators.js +6 -4
  811. package/dist/date/comparators.js.map +1 -1
  812. package/dist/date/parser.cjs +22 -7
  813. package/dist/date/parser.cjs.map +1 -1
  814. package/dist/date/parser.js +23 -8
  815. package/dist/date/parser.js.map +1 -1
  816. package/dist/date/useDateField.cjs +21 -6
  817. package/dist/date/useDateField.cjs.map +1 -1
  818. package/dist/date/useDateField.js +21 -6
  819. package/dist/date/useDateField.js.map +1 -1
  820. package/dist/date/utils.cjs +37 -8
  821. package/dist/date/utils.cjs.map +1 -1
  822. package/dist/date/utils.js +36 -9
  823. package/dist/date/utils.js.map +1 -1
  824. package/dist/date.d.ts +2 -2
  825. package/dist/index.cjs +347 -347
  826. package/dist/index.cjs.map +1 -1
  827. package/dist/index.d.ts +1558 -1552
  828. package/dist/index.js +161 -161
  829. package/dist/index.js.map +1 -1
  830. package/dist/shared/createContext.cjs.map +1 -1
  831. package/dist/shared/createContext.js.map +1 -1
  832. package/dist/shared/renderSlotFragments.cjs.map +1 -1
  833. package/dist/shared/renderSlotFragments.js.map +1 -1
  834. package/dist/shared/useArrowNavigation.cjs.map +1 -1
  835. package/dist/shared/useArrowNavigation.js.map +1 -1
  836. package/dist/shared/useBodyScrollLock.cjs +3 -3
  837. package/dist/shared/useBodyScrollLock.cjs.map +1 -1
  838. package/dist/shared/useBodyScrollLock.js +3 -3
  839. package/dist/shared/useBodyScrollLock.js.map +1 -1
  840. package/dist/shared/useDateFormatter.cjs +12 -10
  841. package/dist/shared/useDateFormatter.cjs.map +1 -1
  842. package/dist/shared/useDateFormatter.js +12 -10
  843. package/dist/shared/useDateFormatter.js.map +1 -1
  844. package/dist/shared/useDirection.cjs.map +1 -1
  845. package/dist/shared/useDirection.js.map +1 -1
  846. package/dist/shared/useFilter.cjs.map +1 -1
  847. package/dist/shared/useFilter.js.map +1 -1
  848. package/dist/shared/useFormControl.cjs.map +1 -1
  849. package/dist/shared/useFormControl.js.map +1 -1
  850. package/dist/shared/useForwardExpose.cjs.map +1 -1
  851. package/dist/shared/useForwardExpose.js.map +1 -1
  852. package/dist/shared/useForwardProps.cjs +4 -2
  853. package/dist/shared/useForwardProps.cjs.map +1 -1
  854. package/dist/shared/useForwardProps.js +5 -3
  855. package/dist/shared/useForwardProps.js.map +1 -1
  856. package/dist/shared/useForwardPropsEmits.cjs.map +1 -1
  857. package/dist/shared/useForwardPropsEmits.js.map +1 -1
  858. package/dist/shared/useGraceArea.cjs +1 -1
  859. package/dist/shared/useGraceArea.cjs.map +1 -1
  860. package/dist/shared/useGraceArea.js +1 -1
  861. package/dist/shared/useGraceArea.js.map +1 -1
  862. package/dist/shared/useHideOthers.cjs.map +1 -1
  863. package/dist/shared/useHideOthers.js.map +1 -1
  864. package/dist/shared/useId.cjs +2 -2
  865. package/dist/shared/useId.cjs.map +1 -1
  866. package/dist/shared/useId.js +2 -2
  867. package/dist/shared/useId.js.map +1 -1
  868. package/dist/shared/useLocale.cjs.map +1 -1
  869. package/dist/shared/useLocale.js.map +1 -1
  870. package/dist/shared/useNonce.cjs.map +1 -1
  871. package/dist/shared/useNonce.js.map +1 -1
  872. package/dist/shared/useSelectionBehavior.cjs +2 -2
  873. package/dist/shared/useSelectionBehavior.cjs.map +1 -1
  874. package/dist/shared/useSelectionBehavior.js +2 -2
  875. package/dist/shared/useSelectionBehavior.js.map +1 -1
  876. package/dist/shared/useSingleOrMultipleValue.cjs +1 -1
  877. package/dist/shared/useSingleOrMultipleValue.cjs.map +1 -1
  878. package/dist/shared/useSingleOrMultipleValue.js +1 -1
  879. package/dist/shared/useSingleOrMultipleValue.js.map +1 -1
  880. package/dist/shared/useSize.cjs.map +1 -1
  881. package/dist/shared/useSize.js.map +1 -1
  882. package/dist/shared/useStateMachine.cjs.map +1 -1
  883. package/dist/shared/useStateMachine.js.map +1 -1
  884. package/dist/shared/withDefault.cjs.map +1 -1
  885. package/dist/shared/withDefault.js.map +1 -1
  886. package/dist/utils/calculate.cjs +1 -1
  887. package/dist/utils/calculate.cjs.map +1 -1
  888. package/dist/utils/calculate.js +1 -1
  889. package/dist/utils/calculate.js.map +1 -1
  890. package/dist/utils/dom.cjs.map +1 -1
  891. package/dist/utils/dom.js.map +1 -1
  892. package/dist/utils/registry.cjs +1 -1
  893. package/dist/utils/registry.cjs.map +1 -1
  894. package/dist/utils/registry.js +1 -1
  895. package/dist/utils/registry.js.map +1 -1
  896. package/dist/utils/resizePanel.cjs +1 -1
  897. package/dist/utils/resizePanel.cjs.map +1 -1
  898. package/dist/utils/resizePanel.js +1 -1
  899. package/dist/utils/resizePanel.js.map +1 -1
  900. package/dist/utils/style.cjs.map +1 -1
  901. package/dist/utils/style.js.map +1 -1
  902. package/package.json +7 -8
@@ -1 +1 @@
1
- {"version":3,"file":"PopperContent.js","sources":["../../src/Popper/PopperContent.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { Ref } from 'vue'\nimport type {\n Middleware,\n Placement,\n ReferenceElement,\n} from '@floating-ui/vue'\nimport type { PrimitiveProps } from '@/Primitive'\nimport { createContext, useForwardExpose, useSize } from '@/shared'\nimport type {\n Align,\n Side,\n} from './utils'\n\nexport const PopperContentPropsDefaultValue = {\n side: 'bottom' as Side,\n sideOffset: 0,\n align: 'center' as Align,\n alignOffset: 0,\n arrowPadding: 0,\n avoidCollisions: true,\n collisionBoundary: () => [],\n collisionPadding: 0,\n sticky: 'partial' as 'partial' | 'always',\n hideWhenDetached: false,\n positionStrategy: 'fixed' as 'absolute' | 'fixed',\n updatePositionStrategy: 'optimized' as 'optimized' | 'always',\n prioritizePosition: false,\n}\n\nexport interface PopperContentProps extends PrimitiveProps {\n /**\n * The preferred side of the trigger to render against when open.\n * Will be reversed when collisions occur and avoidCollisions\n * is enabled.\n *\n * @defaultValue \"top\"\n */\n side?: Side\n\n /**\n * The distance in pixels from the trigger.\n *\n * @defaultValue 0\n */\n sideOffset?: number\n\n /**\n * The preferred alignment against the trigger.\n * May change when collisions occur.\n *\n * @defaultValue \"center\"\n */\n align?: Align\n\n /**\n * An offset in pixels from the `start` or `end` alignment options.\n *\n * @defaultValue 0\n */\n alignOffset?: number\n\n /**\n * When `true`, overrides the side and align preferences\n * to prevent collisions with boundary edges.\n *\n * @defaultValue true\n */\n avoidCollisions?: boolean\n\n /**\n * The element used as the collision boundary. By default\n * this is the viewport, though you can provide additional\n * element(s) to be included in this check.\n *\n * @defaultValue []\n */\n collisionBoundary?: Element | null | Array<Element | null>\n\n /**\n * The distance in pixels from the boundary edges where collision\n * detection should occur. Accepts a number (same for all sides),\n * or a partial padding object, for example: { top: 20, left: 20 }.\n *\n * @defaultValue 0\n */\n collisionPadding?: number | Partial<Record<Side, number>>\n\n /**\n * The padding between the arrow and the edges of the content.\n * If your content has border-radius, this will prevent it from\n * overflowing the corners.\n *\n * @defaultValue 0\n */\n arrowPadding?: number\n\n /**\n * The sticky behavior on the align axis. `partial` will keep the\n * content in the boundary as long as the trigger is at least partially\n * in the boundary whilst \"always\" will keep the content in the boundary\n * regardless.\n *\n * @defaultValue \"partial\"\n */\n sticky?: 'partial' | 'always'\n\n /**\n * Whether to hide the content when the trigger becomes fully occluded.\n *\n * @defaultValue false\n */\n hideWhenDetached?: boolean\n\n /**\n * The type of CSS position property to use.\n */\n positionStrategy?: 'absolute' | 'fixed'\n\n /**\n * Strategy to update the position of the floating element on every animation frame.\n *\n * @defaultValue 'optimized'\n */\n updatePositionStrategy?: 'optimized' | 'always'\n\n /**\n * Whether to disable the update position for the content when the layout shifted.\n *\n * @defaultValue false\n */\n disableUpdateOnLayoutShift?: boolean\n\n /**\n * Force content to be position within the viewport.\n *\n * Might overlap the reference element, which may not be desired.\n *\n * @defaultValue false\n */\n prioritizePosition?: boolean\n\n /**\n * The custom element or virtual element that will be set as the reference\n * to position the floating element.\n *\n * If provided, it will replace the default anchor element.\n */\n reference?: ReferenceElement\n}\n\nexport interface PopperContentContext {\n placedSide: Ref<Side>\n onArrowChange: (arrow: HTMLElement | undefined) => void\n arrowX?: Ref<number>\n arrowY?: Ref<number>\n shouldHideArrow: Ref<boolean>\n}\n\nexport const [injectPopperContentContext, providePopperContentContext]\n = createContext<PopperContentContext>('PopperContent')\n</script>\n\n<script setup lang=\"ts\">\nimport { computed, ref, watchEffect, watchPostEffect } from 'vue'\nimport { computedEager } from '@vueuse/core'\nimport {\n autoUpdate,\n flip,\n arrow as floatingUIarrow,\n hide,\n limitShift,\n offset,\n shift,\n size,\n useFloating,\n} from '@floating-ui/vue'\nimport { injectPopperRootContext } from './PopperRoot.vue'\nimport {\n getSideAndAlignFromPlacement,\n isNotNull,\n transformOrigin,\n} from './utils'\nimport {\n Primitive,\n} from '@/Primitive'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst props = withDefaults(defineProps<PopperContentProps>(), {\n ...PopperContentPropsDefaultValue,\n})\nconst emits = defineEmits<{\n placed: [void]\n}>()\n\nconst rootContext = injectPopperRootContext()\nconst { forwardRef, currentElement: contentElement } = useForwardExpose()\n\nconst floatingRef = ref<HTMLElement>()\n\nconst arrow = ref<HTMLElement>()\nconst { width: arrowWidth, height: arrowHeight } = useSize(arrow)\n\nconst desiredPlacement = computed(\n () =>\n (props.side\n + (props.align !== 'center' ? `-${props.align}` : '')) as Placement,\n)\n\nconst collisionPadding = computed(() => {\n return typeof props.collisionPadding === 'number'\n ? props.collisionPadding\n : { top: 0, right: 0, bottom: 0, left: 0, ...props.collisionPadding }\n})\n\nconst boundary = computed(() => {\n return Array.isArray(props.collisionBoundary)\n ? props.collisionBoundary\n : [props.collisionBoundary]\n})\n\nconst detectOverflowOptions = computed(() => {\n return {\n padding: collisionPadding.value,\n boundary: boundary.value.filter(isNotNull),\n // with `strategy: 'fixed'`, this is the only way to get it to respect boundaries\n altBoundary: boundary.value.length > 0,\n }\n})\n\nconst computedMiddleware = computedEager(() => {\n return [\n offset({\n mainAxis: props.sideOffset + arrowHeight.value,\n alignmentAxis: props.alignOffset,\n }),\n props.prioritizePosition\n && props.avoidCollisions\n && flip({\n ...detectOverflowOptions.value,\n }),\n props.avoidCollisions\n && shift({\n mainAxis: true,\n crossAxis: !!props.prioritizePosition,\n limiter: props.sticky === 'partial' ? limitShift() : undefined,\n ...detectOverflowOptions.value,\n }),\n !props.prioritizePosition\n && props.avoidCollisions\n && flip({\n ...detectOverflowOptions.value,\n }),\n size({\n ...detectOverflowOptions.value,\n apply: ({ elements, rects, availableWidth, availableHeight }) => {\n const { width: anchorWidth, height: anchorHeight } = rects.reference\n const contentStyle = elements.floating.style\n contentStyle.setProperty(\n '--reka-popper-available-width',\n `${availableWidth}px`,\n )\n contentStyle.setProperty(\n '--reka-popper-available-height',\n `${availableHeight}px`,\n )\n contentStyle.setProperty(\n '--reka-popper-anchor-width',\n `${anchorWidth}px`,\n )\n contentStyle.setProperty(\n '--reka-popper-anchor-height',\n `${anchorHeight}px`,\n )\n },\n }),\n arrow.value\n && floatingUIarrow({ element: arrow.value, padding: props.arrowPadding }),\n transformOrigin({\n arrowWidth: arrowWidth.value,\n arrowHeight: arrowHeight.value,\n }),\n props.hideWhenDetached\n && hide({ strategy: 'referenceHidden', ...detectOverflowOptions.value }),\n ] as Middleware[]\n})\n\n// If provided custom reference, it will overwrite the default anchor element\nconst reference = computed(() => props.reference ?? rootContext.anchor.value)\n\nconst { floatingStyles, placement, isPositioned, middlewareData, update } = useFloating(\n reference,\n floatingRef,\n {\n strategy: props.positionStrategy,\n placement: desiredPlacement,\n whileElementsMounted: (...args) => {\n const cleanup = autoUpdate(...args, {\n layoutShift: !props.disableUpdateOnLayoutShift,\n animationFrame: props.updatePositionStrategy === 'always',\n })\n return cleanup\n },\n middleware: computedMiddleware,\n },\n)\n\nconst placedSide = computed(\n () => getSideAndAlignFromPlacement(placement.value)[0],\n)\nconst placedAlign = computed(\n () => getSideAndAlignFromPlacement(placement.value)[1],\n)\n\nwatchPostEffect(() => {\n if (isPositioned.value)\n emits('placed')\n})\n\nconst cannotCenterArrow = computed(\n () => middlewareData.value.arrow?.centerOffset !== 0,\n)\n\nconst contentZIndex = ref('')\nwatchEffect(() => {\n if (contentElement.value)\n contentZIndex.value = window.getComputedStyle(contentElement.value).zIndex\n})\n\nconst arrowX = computed(() => middlewareData.value.arrow?.x ?? 0)\nconst arrowY = computed(() => middlewareData.value.arrow?.y ?? 0)\n\nprovidePopperContentContext({\n placedSide,\n onArrowChange: element => arrow.value = element,\n arrowX,\n arrowY,\n shouldHideArrow: cannotCenterArrow,\n})\n</script>\n\n<template>\n <div\n ref=\"floatingRef\"\n data-reka-popper-content-wrapper=\"\"\n :style=\"{\n ...floatingStyles,\n transform: isPositioned ? floatingStyles.transform : 'translate(0, -200%)', // keep off the page when measuring\n minWidth: 'max-content',\n zIndex: contentZIndex,\n ['--reka-popper-transform-origin' as any]: [\n middlewareData.transformOrigin?.x,\n middlewareData.transformOrigin?.y,\n ].join(' '),\n\n // hide the content if using the hide middleware and should be hidden\n // set visibility to hidden and disable pointer events so the UI behaves\n // as if the PopperContent isn't there at all\n ...(middlewareData.hide?.referenceHidden && {\n visibility: 'hidden',\n pointerEvents: 'none',\n }),\n }\"\n >\n <Primitive\n :ref=\"forwardRef\"\n v-bind=\"$attrs\"\n :as-child=\"props.asChild\"\n :as=\"as\"\n :data-side=\"placedSide\"\n :data-align=\"placedAlign\"\n :style=\"{\n // if the PopperContent hasn't been placed yet (not all measurements done)\n // we prevent animations so that users's animation don't kick in too early referring wrong sides\n animation: !isPositioned ? 'none' : undefined,\n }\"\n >\n <slot />\n </Primitive>\n </div>\n</template>\n"],"names":["arrow","floatingUIarrow"],"mappings":"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"}
1
+ {"version":3,"file":"PopperContent.js","sources":["../../src/Popper/PopperContent.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type {\n Middleware,\n Placement,\n ReferenceElement,\n} from '@floating-ui/vue'\nimport type { Ref } from 'vue'\nimport type {\n Align,\n Side,\n} from './utils'\nimport type { PrimitiveProps } from '@/Primitive'\nimport { createContext, useForwardExpose, useSize } from '@/shared'\n\nexport const PopperContentPropsDefaultValue = {\n side: 'bottom' as Side,\n sideOffset: 0,\n align: 'center' as Align,\n alignOffset: 0,\n arrowPadding: 0,\n avoidCollisions: true,\n collisionBoundary: () => [],\n collisionPadding: 0,\n sticky: 'partial' as 'partial' | 'always',\n hideWhenDetached: false,\n positionStrategy: 'fixed' as 'absolute' | 'fixed',\n updatePositionStrategy: 'optimized' as 'optimized' | 'always',\n prioritizePosition: false,\n}\n\nexport interface PopperContentProps extends PrimitiveProps {\n /**\n * The preferred side of the trigger to render against when open.\n * Will be reversed when collisions occur and avoidCollisions\n * is enabled.\n *\n * @defaultValue \"top\"\n */\n side?: Side\n\n /**\n * The distance in pixels from the trigger.\n *\n * @defaultValue 0\n */\n sideOffset?: number\n\n /**\n * The preferred alignment against the trigger.\n * May change when collisions occur.\n *\n * @defaultValue \"center\"\n */\n align?: Align\n\n /**\n * An offset in pixels from the `start` or `end` alignment options.\n *\n * @defaultValue 0\n */\n alignOffset?: number\n\n /**\n * When `true`, overrides the side and align preferences\n * to prevent collisions with boundary edges.\n *\n * @defaultValue true\n */\n avoidCollisions?: boolean\n\n /**\n * The element used as the collision boundary. By default\n * this is the viewport, though you can provide additional\n * element(s) to be included in this check.\n *\n * @defaultValue []\n */\n collisionBoundary?: Element | null | Array<Element | null>\n\n /**\n * The distance in pixels from the boundary edges where collision\n * detection should occur. Accepts a number (same for all sides),\n * or a partial padding object, for example: { top: 20, left: 20 }.\n *\n * @defaultValue 0\n */\n collisionPadding?: number | Partial<Record<Side, number>>\n\n /**\n * The padding between the arrow and the edges of the content.\n * If your content has border-radius, this will prevent it from\n * overflowing the corners.\n *\n * @defaultValue 0\n */\n arrowPadding?: number\n\n /**\n * The sticky behavior on the align axis. `partial` will keep the\n * content in the boundary as long as the trigger is at least partially\n * in the boundary whilst \"always\" will keep the content in the boundary\n * regardless.\n *\n * @defaultValue \"partial\"\n */\n sticky?: 'partial' | 'always'\n\n /**\n * Whether to hide the content when the trigger becomes fully occluded.\n *\n * @defaultValue false\n */\n hideWhenDetached?: boolean\n\n /**\n * The type of CSS position property to use.\n */\n positionStrategy?: 'absolute' | 'fixed'\n\n /**\n * Strategy to update the position of the floating element on every animation frame.\n *\n * @defaultValue 'optimized'\n */\n updatePositionStrategy?: 'optimized' | 'always'\n\n /**\n * Whether to disable the update position for the content when the layout shifted.\n *\n * @defaultValue false\n */\n disableUpdateOnLayoutShift?: boolean\n\n /**\n * Force content to be position within the viewport.\n *\n * Might overlap the reference element, which may not be desired.\n *\n * @defaultValue false\n */\n prioritizePosition?: boolean\n\n /**\n * The custom element or virtual element that will be set as the reference\n * to position the floating element.\n *\n * If provided, it will replace the default anchor element.\n */\n reference?: ReferenceElement\n}\n\nexport interface PopperContentContext {\n placedSide: Ref<Side>\n onArrowChange: (arrow: HTMLElement | undefined) => void\n arrowX?: Ref<number>\n arrowY?: Ref<number>\n shouldHideArrow: Ref<boolean>\n}\n\nexport const [injectPopperContentContext, providePopperContentContext]\n = createContext<PopperContentContext>('PopperContent')\n</script>\n\n<script setup lang=\"ts\">\nimport {\n autoUpdate,\n flip,\n arrow as floatingUIarrow,\n hide,\n limitShift,\n offset,\n shift,\n size,\n useFloating,\n} from '@floating-ui/vue'\nimport { computedEager } from '@vueuse/core'\nimport { computed, ref, watchEffect, watchPostEffect } from 'vue'\nimport {\n Primitive,\n} from '@/Primitive'\nimport { injectPopperRootContext } from './PopperRoot.vue'\nimport {\n getSideAndAlignFromPlacement,\n isNotNull,\n transformOrigin,\n} from './utils'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst props = withDefaults(defineProps<PopperContentProps>(), {\n ...PopperContentPropsDefaultValue,\n})\nconst emits = defineEmits<{\n placed: [void]\n}>()\n\nconst rootContext = injectPopperRootContext()\nconst { forwardRef, currentElement: contentElement } = useForwardExpose()\n\nconst floatingRef = ref<HTMLElement>()\n\nconst arrow = ref<HTMLElement>()\nconst { width: arrowWidth, height: arrowHeight } = useSize(arrow)\n\nconst desiredPlacement = computed(\n () =>\n (props.side\n + (props.align !== 'center' ? `-${props.align}` : '')) as Placement,\n)\n\nconst collisionPadding = computed(() => {\n return typeof props.collisionPadding === 'number'\n ? props.collisionPadding\n : { top: 0, right: 0, bottom: 0, left: 0, ...props.collisionPadding }\n})\n\nconst boundary = computed(() => {\n return Array.isArray(props.collisionBoundary)\n ? props.collisionBoundary\n : [props.collisionBoundary]\n})\n\nconst detectOverflowOptions = computed(() => {\n return {\n padding: collisionPadding.value,\n boundary: boundary.value.filter(isNotNull),\n // with `strategy: 'fixed'`, this is the only way to get it to respect boundaries\n altBoundary: boundary.value.length > 0,\n }\n})\n\nconst computedMiddleware = computedEager(() => {\n return [\n offset({\n mainAxis: props.sideOffset + arrowHeight.value,\n alignmentAxis: props.alignOffset,\n }),\n props.prioritizePosition\n && props.avoidCollisions\n && flip({\n ...detectOverflowOptions.value,\n }),\n props.avoidCollisions\n && shift({\n mainAxis: true,\n crossAxis: !!props.prioritizePosition,\n limiter: props.sticky === 'partial' ? limitShift() : undefined,\n ...detectOverflowOptions.value,\n }),\n !props.prioritizePosition\n && props.avoidCollisions\n && flip({\n ...detectOverflowOptions.value,\n }),\n size({\n ...detectOverflowOptions.value,\n apply: ({ elements, rects, availableWidth, availableHeight }) => {\n const { width: anchorWidth, height: anchorHeight } = rects.reference\n const contentStyle = elements.floating.style\n contentStyle.setProperty(\n '--reka-popper-available-width',\n `${availableWidth}px`,\n )\n contentStyle.setProperty(\n '--reka-popper-available-height',\n `${availableHeight}px`,\n )\n contentStyle.setProperty(\n '--reka-popper-anchor-width',\n `${anchorWidth}px`,\n )\n contentStyle.setProperty(\n '--reka-popper-anchor-height',\n `${anchorHeight}px`,\n )\n },\n }),\n arrow.value\n && floatingUIarrow({ element: arrow.value, padding: props.arrowPadding }),\n transformOrigin({\n arrowWidth: arrowWidth.value,\n arrowHeight: arrowHeight.value,\n }),\n props.hideWhenDetached\n && hide({ strategy: 'referenceHidden', ...detectOverflowOptions.value }),\n ] as Middleware[]\n})\n\n// If provided custom reference, it will overwrite the default anchor element\nconst reference = computed(() => props.reference ?? rootContext.anchor.value)\n\nconst { floatingStyles, placement, isPositioned, middlewareData, update } = useFloating(\n reference,\n floatingRef,\n {\n strategy: props.positionStrategy,\n placement: desiredPlacement,\n whileElementsMounted: (...args) => {\n const cleanup = autoUpdate(...args, {\n layoutShift: !props.disableUpdateOnLayoutShift,\n animationFrame: props.updatePositionStrategy === 'always',\n })\n return cleanup\n },\n middleware: computedMiddleware,\n },\n)\n\nconst placedSide = computed(\n () => getSideAndAlignFromPlacement(placement.value)[0],\n)\nconst placedAlign = computed(\n () => getSideAndAlignFromPlacement(placement.value)[1],\n)\n\nwatchPostEffect(() => {\n if (isPositioned.value)\n emits('placed')\n})\n\nconst cannotCenterArrow = computed(\n () => middlewareData.value.arrow?.centerOffset !== 0,\n)\n\nconst contentZIndex = ref('')\nwatchEffect(() => {\n if (contentElement.value)\n contentZIndex.value = window.getComputedStyle(contentElement.value).zIndex\n})\n\nconst arrowX = computed(() => middlewareData.value.arrow?.x ?? 0)\nconst arrowY = computed(() => middlewareData.value.arrow?.y ?? 0)\n\nprovidePopperContentContext({\n placedSide,\n onArrowChange: element => arrow.value = element,\n arrowX,\n arrowY,\n shouldHideArrow: cannotCenterArrow,\n})\n</script>\n\n<template>\n <div\n ref=\"floatingRef\"\n data-reka-popper-content-wrapper=\"\"\n :style=\"{\n ...floatingStyles,\n transform: isPositioned ? floatingStyles.transform : 'translate(0, -200%)', // keep off the page when measuring\n minWidth: 'max-content',\n zIndex: contentZIndex,\n ['--reka-popper-transform-origin' as any]: [\n middlewareData.transformOrigin?.x,\n middlewareData.transformOrigin?.y,\n ].join(' '),\n\n // hide the content if using the hide middleware and should be hidden\n // set visibility to hidden and disable pointer events so the UI behaves\n // as if the PopperContent isn't there at all\n ...(middlewareData.hide?.referenceHidden && {\n visibility: 'hidden',\n pointerEvents: 'none',\n }),\n }\"\n >\n <Primitive\n :ref=\"forwardRef\"\n v-bind=\"$attrs\"\n :as-child=\"props.asChild\"\n :as=\"as\"\n :data-side=\"placedSide\"\n :data-align=\"placedAlign\"\n :style=\"{\n // if the PopperContent hasn't been placed yet (not all measurements done)\n // we prevent animations so that users's animation don't kick in too early referring wrong sides\n animation: !isPositioned ? 'none' : undefined,\n }\"\n >\n <slot />\n </Primitive>\n </div>\n</template>\n"],"names":["arrow","floatingUIarrow"],"mappings":";;;;;;;;;;AAcO,MAAM,8BAAiC,GAAA;AAAA,EAC5C,IAAM,EAAA,QAAA;AAAA,EACN,UAAY,EAAA,CAAA;AAAA,EACZ,KAAO,EAAA,QAAA;AAAA,EACP,WAAa,EAAA,CAAA;AAAA,EACb,YAAc,EAAA,CAAA;AAAA,EACd,eAAiB,EAAA,IAAA;AAAA,EACjB,iBAAA,EAAmB,MAAM,EAAC;AAAA,EAC1B,gBAAkB,EAAA,CAAA;AAAA,EAClB,MAAQ,EAAA,SAAA;AAAA,EACR,gBAAkB,EAAA,KAAA;AAAA,EAClB,gBAAkB,EAAA,OAAA;AAAA,EAClB,sBAAwB,EAAA,WAAA;AAAA,EACxB,kBAAoB,EAAA;AACtB;AAmIO,MAAM,CAAC,0BAAA,EAA4B,2BAA2B,CAAA,GACjE,cAAoC,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+BvD,IAAA,MAAM,KAAQ,GAAA,OAAA;AAGd,IAAA,MAAM,KAAQ,GAAA,MAAA;AAId,IAAA,MAAM,cAAc,uBAAwB,EAAA;AAC5C,IAAA,MAAM,EAAE,UAAA,EAAY,cAAgB,EAAA,cAAA,KAAmB,gBAAiB,EAAA;AAExE,IAAA,MAAM,cAAc,GAAiB,EAAA;AAErC,IAAA,MAAMA,UAAQ,GAAiB,EAAA;AAC/B,IAAA,MAAM,EAAE,KAAO,EAAA,UAAA,EAAY,QAAQ,WAAY,EAAA,GAAI,QAAQA,OAAK,CAAA;AAEhE,IAAA,MAAM,gBAAmB,GAAA,QAAA;AAAA,MACvB,MACG,MAAM,IACF,IAAA,KAAA,CAAM,UAAU,QAAW,GAAA,CAAA,CAAA,EAAI,KAAM,CAAA,KAAK,CAAK,CAAA,GAAA,EAAA;AAAA,KACxD;AAEA,IAAM,MAAA,gBAAA,GAAmB,SAAS,MAAM;AACtC,MAAA,OAAO,OAAO,KAAM,CAAA,gBAAA,KAAqB,QACrC,GAAA,KAAA,CAAM,mBACN,EAAE,GAAA,EAAK,CAAG,EAAA,KAAA,EAAO,GAAG,MAAQ,EAAA,CAAA,EAAG,MAAM,CAAG,EAAA,GAAG,MAAM,gBAAiB,EAAA;AAAA,KACvE,CAAA;AAED,IAAM,MAAA,QAAA,GAAW,SAAS,MAAM;AAC9B,MAAO,OAAA,KAAA,CAAM,QAAQ,KAAM,CAAA,iBAAiB,IACxC,KAAM,CAAA,iBAAA,GACN,CAAC,KAAA,CAAM,iBAAiB,CAAA;AAAA,KAC7B,CAAA;AAED,IAAM,MAAA,qBAAA,GAAwB,SAAS,MAAM;AAC3C,MAAO,OAAA;AAAA,QACL,SAAS,gBAAiB,CAAA,KAAA;AAAA,QAC1B,QAAU,EAAA,QAAA,CAAS,KAAM,CAAA,MAAA,CAAO,SAAS,CAAA;AAAA;AAAA,QAEzC,WAAA,EAAa,QAAS,CAAA,KAAA,CAAM,MAAS,GAAA;AAAA,OACvC;AAAA,KACD,CAAA;AAED,IAAM,MAAA,kBAAA,GAAqB,cAAc,MAAM;AAC7C,MAAO,OAAA;AAAA,QACL,MAAO,CAAA;AAAA,UACL,QAAA,EAAU,KAAM,CAAA,UAAA,GAAa,WAAY,CAAA,KAAA;AAAA,UACzC,eAAe,KAAM,CAAA;AAAA,SACtB,CAAA;AAAA,QACD,KAAM,CAAA,kBAAA,IACH,KAAM,CAAA,eAAA,IACN,IAAK,CAAA;AAAA,UACN,GAAG,qBAAsB,CAAA;AAAA,SAC1B,CAAA;AAAA,QACD,KAAA,CAAM,mBACH,KAAM,CAAA;AAAA,UACP,QAAU,EAAA,IAAA;AAAA,UACV,SAAA,EAAW,CAAC,CAAC,KAAM,CAAA,kBAAA;AAAA,UACnB,OAAS,EAAA,KAAA,CAAM,MAAW,KAAA,SAAA,GAAY,YAAe,GAAA,MAAA;AAAA,UACrD,GAAG,qBAAsB,CAAA;AAAA,SAC1B,CAAA;AAAA,QACD,CAAC,KAAA,CAAM,kBACJ,IAAA,KAAA,CAAM,mBACN,IAAK,CAAA;AAAA,UACN,GAAG,qBAAsB,CAAA;AAAA,SAC1B,CAAA;AAAA,QACD,IAAK,CAAA;AAAA,UACH,GAAG,qBAAsB,CAAA,KAAA;AAAA,UACzB,OAAO,CAAC,EAAE,UAAU,KAAO,EAAA,cAAA,EAAgB,iBAAsB,KAAA;AAC/D,YAAA,MAAM,EAAE,KAAO,EAAA,WAAA,EAAa,MAAQ,EAAA,YAAA,KAAiB,KAAM,CAAA,SAAA;AAC3D,YAAM,MAAA,YAAA,GAAe,SAAS,QAAS,CAAA,KAAA;AACvC,YAAa,YAAA,CAAA,WAAA;AAAA,cACX,+BAAA;AAAA,cACA,GAAG,cAAc,CAAA,EAAA;AAAA,aACnB;AACA,YAAa,YAAA,CAAA,WAAA;AAAA,cACX,gCAAA;AAAA,cACA,GAAG,eAAe,CAAA,EAAA;AAAA,aACpB;AACA,YAAa,YAAA,CAAA,WAAA;AAAA,cACX,4BAAA;AAAA,cACA,GAAG,WAAW,CAAA,EAAA;AAAA,aAChB;AACA,YAAa,YAAA,CAAA,WAAA;AAAA,cACX,6BAAA;AAAA,cACA,GAAG,YAAY,CAAA,EAAA;AAAA,aACjB;AAAA;AACF,SACD,CAAA;AAAA,QACDA,OAAA,CAAM,KACH,IAAAC,KAAA,CAAgB,EAAE,OAAA,EAASD,QAAM,KAAO,EAAA,OAAA,EAAS,KAAM,CAAA,YAAA,EAAc,CAAA;AAAA,QACxE,eAAgB,CAAA;AAAA,UACd,YAAY,UAAW,CAAA,KAAA;AAAA,UACvB,aAAa,WAAY,CAAA;AAAA,SAC1B,CAAA;AAAA,QACD,KAAA,CAAM,oBACH,IAAK,CAAA,EAAE,UAAU,iBAAmB,EAAA,GAAG,qBAAsB,CAAA,KAAA,EAAO;AAAA,OACzE;AAAA,KACD,CAAA;AAGD,IAAA,MAAM,YAAY,QAAS,CAAA,MAAM,MAAM,SAAa,IAAA,WAAA,CAAY,OAAO,KAAK,CAAA;AAE5E,IAAA,MAAM,EAAE,cAAgB,EAAA,SAAA,EAAW,YAAc,EAAA,cAAA,EAAgB,QAAW,GAAA,WAAA;AAAA,MAC1E,SAAA;AAAA,MACA,WAAA;AAAA,MACA;AAAA,QACE,UAAU,KAAM,CAAA,gBAAA;AAAA,QAChB,SAAW,EAAA,gBAAA;AAAA,QACX,oBAAA,EAAsB,IAAI,IAAS,KAAA;AACjC,UAAM,MAAA,OAAA,GAAU,UAAW,CAAA,GAAG,IAAM,EAAA;AAAA,YAClC,WAAA,EAAa,CAAC,KAAM,CAAA,0BAAA;AAAA,YACpB,cAAA,EAAgB,MAAM,sBAA2B,KAAA;AAAA,WAClD,CAAA;AACD,UAAO,OAAA,OAAA;AAAA,SACT;AAAA,QACA,UAAY,EAAA;AAAA;AACd,KACF;AAEA,IAAA,MAAM,UAAa,GAAA,QAAA;AAAA,MACjB,MAAM,4BAAA,CAA6B,SAAU,CAAA,KAAK,EAAE,CAAC;AAAA,KACvD;AACA,IAAA,MAAM,WAAc,GAAA,QAAA;AAAA,MAClB,MAAM,4BAAA,CAA6B,SAAU,CAAA,KAAK,EAAE,CAAC;AAAA,KACvD;AAEA,IAAA,eAAA,CAAgB,MAAM;AACpB,MAAA,IAAI,YAAa,CAAA,KAAA;AACf,QAAA,KAAA,CAAM,QAAQ,CAAA;AAAA,KACjB,CAAA;AAED,IAAA,MAAM,iBAAoB,GAAA,QAAA;AAAA,MACxB,MAAM,cAAA,CAAe,KAAM,CAAA,KAAA,EAAO,YAAiB,KAAA;AAAA,KACrD;AAEA,IAAM,MAAA,aAAA,GAAgB,IAAI,EAAE,CAAA;AAC5B,IAAA,WAAA,CAAY,MAAM;AAChB,MAAA,IAAI,cAAe,CAAA,KAAA;AACjB,QAAA,aAAA,CAAc,KAAQ,GAAA,MAAA,CAAO,gBAAiB,CAAA,cAAA,CAAe,KAAK,CAAE,CAAA,MAAA;AAAA,KACvE,CAAA;AAED,IAAA,MAAM,SAAS,QAAS,CAAA,MAAM,eAAe,KAAM,CAAA,KAAA,EAAO,KAAK,CAAC,CAAA;AAChE,IAAA,MAAM,SAAS,QAAS,CAAA,MAAM,eAAe,KAAM,CAAA,KAAA,EAAO,KAAK,CAAC,CAAA;AAEhE,IAA4B,2BAAA,CAAA;AAAA,MAC1B,UAAA;AAAA,MACA,aAAA,EAAe,CAAW,OAAA,KAAAA,OAAA,CAAM,KAAQ,GAAA,OAAA;AAAA,MACxC,MAAA;AAAA,MACA,MAAA;AAAA,MACA,eAAiB,EAAA;AAAA,KAClB,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"PopperRoot.cjs","sources":["../../src/Popper/PopperRoot.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { Ref } from 'vue'\nimport { createContext } from '@/shared'\nimport type { ReferenceElement } from '@floating-ui/vue'\n\nexport interface Measurable {\n getBoundingClientRect: () => DOMRect\n}\n\ninterface PopperRootContext {\n anchor: Ref<ReferenceElement | undefined >\n onAnchorChange: (element: ReferenceElement | undefined) => void\n}\n\nexport const [injectPopperRootContext, providePopperRootContext]\n = createContext<PopperRootContext>('PopperRoot')\n</script>\n\n<script setup lang=\"ts\">\nimport { ref } from 'vue'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst anchor = ref<ReferenceElement>()\n\nprovidePopperRootContext({\n anchor,\n onAnchorChange: element => anchor.value = element,\n})\n</script>\n\n<template>\n <slot />\n</template>\n"],"names":["createContext","ref"],"mappings":";;;;;AAcO,MAAM,CAAC,uBAAA,EAAyB,wBAAwB,CAAA,GAC3DA,mCAAiC,YAAY;;;;;;;AAUjD,IAAA,MAAM,SAASC,OAAsB,EAAA;AAErC,IAAyB,wBAAA,CAAA;AAAA,MACvB,MAAA;AAAA,MACA,cAAA,EAAgB,CAAW,OAAA,KAAA,MAAA,CAAO,KAAQ,GAAA;AAAA,KAC3C,CAAA;;;;;;;;;;"}
1
+ {"version":3,"file":"PopperRoot.cjs","sources":["../../src/Popper/PopperRoot.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { ReferenceElement } from '@floating-ui/vue'\nimport type { Ref } from 'vue'\nimport { createContext } from '@/shared'\n\nexport interface Measurable {\n getBoundingClientRect: () => DOMRect\n}\n\ninterface PopperRootContext {\n anchor: Ref<ReferenceElement | undefined>\n onAnchorChange: (element: ReferenceElement | undefined) => void\n}\n\nexport const [injectPopperRootContext, providePopperRootContext]\n = createContext<PopperRootContext>('PopperRoot')\n</script>\n\n<script setup lang=\"ts\">\nimport { ref } from 'vue'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst anchor = ref<ReferenceElement>()\n\nprovidePopperRootContext({\n anchor,\n onAnchorChange: element => anchor.value = element,\n})\n</script>\n\n<template>\n <slot />\n</template>\n"],"names":["createContext","ref"],"mappings":";;;;;AAcO,MAAM,CAAC,uBAAA,EAAyB,wBAAwB,CAAA,GAC3DA,mCAAiC,YAAY;;;;;;;AAUjD,IAAA,MAAM,SAASC,OAAsB,EAAA;AAErC,IAAyB,wBAAA,CAAA;AAAA,MACvB,MAAA;AAAA,MACA,cAAA,EAAgB,CAAW,OAAA,KAAA,MAAA,CAAO,KAAQ,GAAA;AAAA,KAC3C,CAAA;;;;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"PopperRoot.js","sources":["../../src/Popper/PopperRoot.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { Ref } from 'vue'\nimport { createContext } from '@/shared'\nimport type { ReferenceElement } from '@floating-ui/vue'\n\nexport interface Measurable {\n getBoundingClientRect: () => DOMRect\n}\n\ninterface PopperRootContext {\n anchor: Ref<ReferenceElement | undefined >\n onAnchorChange: (element: ReferenceElement | undefined) => void\n}\n\nexport const [injectPopperRootContext, providePopperRootContext]\n = createContext<PopperRootContext>('PopperRoot')\n</script>\n\n<script setup lang=\"ts\">\nimport { ref } from 'vue'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst anchor = ref<ReferenceElement>()\n\nprovidePopperRootContext({\n anchor,\n onAnchorChange: element => anchor.value = element,\n})\n</script>\n\n<template>\n <slot />\n</template>\n"],"names":[],"mappings":";;;AAcO,MAAM,CAAC,uBAAA,EAAyB,wBAAwB,CAAA,GAC3D,cAAiC,YAAY;;;;;;;AAUjD,IAAA,MAAM,SAAS,GAAsB,EAAA;AAErC,IAAyB,wBAAA,CAAA;AAAA,MACvB,MAAA;AAAA,MACA,cAAA,EAAgB,CAAW,OAAA,KAAA,MAAA,CAAO,KAAQ,GAAA;AAAA,KAC3C,CAAA;;;;;;;;;"}
1
+ {"version":3,"file":"PopperRoot.js","sources":["../../src/Popper/PopperRoot.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { ReferenceElement } from '@floating-ui/vue'\nimport type { Ref } from 'vue'\nimport { createContext } from '@/shared'\n\nexport interface Measurable {\n getBoundingClientRect: () => DOMRect\n}\n\ninterface PopperRootContext {\n anchor: Ref<ReferenceElement | undefined>\n onAnchorChange: (element: ReferenceElement | undefined) => void\n}\n\nexport const [injectPopperRootContext, providePopperRootContext]\n = createContext<PopperRootContext>('PopperRoot')\n</script>\n\n<script setup lang=\"ts\">\nimport { ref } from 'vue'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst anchor = ref<ReferenceElement>()\n\nprovidePopperRootContext({\n anchor,\n onAnchorChange: element => anchor.value = element,\n})\n</script>\n\n<template>\n <slot />\n</template>\n"],"names":[],"mappings":";;;AAcO,MAAM,CAAC,uBAAA,EAAyB,wBAAwB,CAAA,GAC3D,cAAiC,YAAY;;;;;;;AAUjD,IAAA,MAAM,SAAS,GAAsB,EAAA;AAErC,IAAyB,wBAAA,CAAA;AAAA,MACvB,MAAA;AAAA,MACA,cAAA,EAAgB,CAAW,OAAA,KAAA,MAAA,CAAO,KAAQ,GAAA;AAAA,KAC3C,CAAA;;;;;;;;;"}
@@ -1,8 +1,8 @@
1
1
  'use strict';
2
2
 
3
+ const core = require('@vueuse/core');
3
4
  const vue = require('vue');
4
5
  const Presence_usePresence = require('./usePresence.cjs');
5
- const core = require('@vueuse/core');
6
6
  const shared_renderSlotFragments = require('../shared/renderSlotFragments.cjs');
7
7
 
8
8
  const Presence = vue.defineComponent({
@@ -1 +1 @@
1
- {"version":3,"file":"Presence.cjs","sources":["../../src/Presence/Presence.ts"],"sourcesContent":["import {\n defineComponent,\n getCurrentInstance,\n h,\n ref,\n toRefs,\n} from 'vue'\nimport type {\n SlotsType,\n VNode,\n} from 'vue'\nimport { usePresence } from './usePresence'\nimport { renderSlotFragments } from '@/shared'\nimport { unrefElement } from '@vueuse/core'\n\nexport interface PresenceProps {\n /**\n * Conditional to mount or unmount the child element. Similar to `v-if`\n *\n * @required true\n */\n present: boolean\n /**\n * Force the element to render all the time.\n *\n * Useful for programmatically render grandchild component with the exposed `present`\n *\n * @defaultValue false\n */\n forceMount?: boolean\n}\n\nexport default defineComponent({\n name: 'Presence',\n props: {\n present: {\n type: Boolean,\n required: true,\n },\n forceMount: {\n type: Boolean,\n },\n },\n slots: {} as SlotsType<{\n default: (opts: { present: boolean }) => any\n }>,\n setup(props, { slots, expose }) {\n const { present, forceMount } = toRefs(props)\n\n const node = ref<HTMLElement>()\n // Mount composables once to prevent duplicated eventListener\n const { isPresent } = usePresence(present, node)\n expose({ present: isPresent })\n\n let children = slots.default({ present: isPresent.value })\n children = renderSlotFragments(children || [])\n const instance = getCurrentInstance()\n\n if (children && children?.length > 1) {\n const componentName = instance?.parent?.type.name\n ? `<${instance.parent.type.name} />`\n : 'component'\n\n throw new Error(\n [\n `Detected an invalid children for \\`${componentName}\\` for \\`Presence\\` component.`,\n '',\n 'Note: Presence works similarly to `v-if` directly, but it waits for animation/transition to finished before unmounting. So it expect only one direct child of valid VNode type.',\n 'You can apply a few solutions:',\n [\n 'Provide a single child element so that `presence` directive attach correctly.',\n 'Ensure the first child is an actual element instead of a raw text node or comment node.',\n ]\n .map(line => ` - ${line}`)\n .join('\\n'),\n ].join('\\n'),\n )\n }\n\n return () => {\n if (forceMount.value || present.value || isPresent.value) {\n return h(slots.default({ present: isPresent.value })[0] as VNode, {\n ref: (v) => {\n const el = unrefElement(v as HTMLElement)\n if (typeof el?.hasAttribute === 'undefined')\n return el\n\n // special case to handle animation for PopperContent\n if (el?.hasAttribute('data-reka-popper-content-wrapper'))\n node.value = el.firstElementChild as HTMLElement\n else\n node.value = el\n\n return el\n },\n })\n }\n else { return null }\n }\n },\n})\n"],"names":["defineComponent","toRefs","ref","usePresence","renderSlotFragments","getCurrentInstance","h","unrefElement"],"mappings":";;;;;;;AAgCA,iBAAeA,mBAAgB,CAAA;AAAA,EAC7B,IAAM,EAAA,UAAA;AAAA,EACN,KAAO,EAAA;AAAA,IACL,OAAS,EAAA;AAAA,MACP,IAAM,EAAA,OAAA;AAAA,MACN,QAAU,EAAA;AAAA,KACZ;AAAA,IACA,UAAY,EAAA;AAAA,MACV,IAAM,EAAA;AAAA;AACR,GACF;AAAA,EACA,OAAO,EAAC;AAAA,EAGR,KAAM,CAAA,KAAA,EAAO,EAAE,KAAA,EAAO,QAAU,EAAA;AAC9B,IAAA,MAAM,EAAE,OAAA,EAAS,UAAW,EAAA,GAAIC,WAAO,KAAK,CAAA;AAE5C,IAAA,MAAM,OAAOC,OAAiB,EAAA;AAE9B,IAAA,MAAM,EAAE,SAAA,EAAc,GAAAC,gCAAA,CAAY,SAAS,IAAI,CAAA;AAC/C,IAAO,MAAA,CAAA,EAAE,OAAS,EAAA,SAAA,EAAW,CAAA;AAE7B,IAAA,IAAI,WAAW,KAAM,CAAA,OAAA,CAAQ,EAAE,OAAS,EAAA,SAAA,CAAU,OAAO,CAAA;AACzD,IAAW,QAAA,GAAAC,8CAAA,CAAoB,QAAY,IAAA,EAAE,CAAA;AAC7C,IAAA,MAAM,WAAWC,sBAAmB,EAAA;AAEpC,IAAI,IAAA,QAAA,IAAY,QAAU,EAAA,MAAA,GAAS,CAAG,EAAA;AACpC,MAAM,MAAA,aAAA,GAAgB,QAAU,EAAA,MAAA,EAAQ,IAAK,CAAA,IAAA,GACzC,IAAI,QAAS,CAAA,MAAA,CAAO,IAAK,CAAA,IAAI,CAC7B,GAAA,CAAA,GAAA,WAAA;AAEJ,MAAA,MAAM,IAAI,KAAA;AAAA,QACR;AAAA,UACE,sCAAsC,aAAa,CAAA,+BAAA,CAAA;AAAA,UACnD,EAAA;AAAA,UACA,iLAAA;AAAA,UACA,gCAAA;AAAA,UACA;AAAA,YACE,+EAAA;AAAA,YACA;AAAA,WACF,CACG,IAAI,CAAQ,IAAA,KAAA,CAAA,IAAA,EAAO,IAAI,CAAE,CAAA,CAAA,CACzB,KAAK,IAAI;AAAA,SACd,CAAE,KAAK,IAAI;AAAA,OACb;AAAA;AAGF,IAAA,OAAO,MAAM;AACX,MAAA,IAAI,UAAW,CAAA,KAAA,IAAS,OAAQ,CAAA,KAAA,IAAS,UAAU,KAAO,EAAA;AACxD,QAAO,OAAAC,KAAA,CAAE,KAAM,CAAA,OAAA,CAAQ,EAAE,OAAA,EAAS,UAAU,KAAM,EAAC,CAAE,CAAA,CAAC,CAAY,EAAA;AAAA,UAChE,GAAA,EAAK,CAAC,CAAM,KAAA;AACV,YAAM,MAAA,EAAA,GAAKC,kBAAa,CAAgB,CAAA;AACxC,YAAI,IAAA,OAAO,IAAI,YAAiB,KAAA,WAAA;AAC9B,cAAO,OAAA,EAAA;AAGT,YAAI,IAAA,EAAA,EAAI,aAAa,kCAAkC,CAAA;AACrD,cAAA,IAAA,CAAK,QAAQ,EAAG,CAAA,iBAAA;AAAA;AAEhB,cAAA,IAAA,CAAK,KAAQ,GAAA,EAAA;AAEf,YAAO,OAAA,EAAA;AAAA;AACT,SACD,CAAA;AAAA,OAEE,MAAA;AAAE,QAAO,OAAA,IAAA;AAAA;AAAK,KACrB;AAAA;AAEJ,CAAC,CAAA;;;;"}
1
+ {"version":3,"file":"Presence.cjs","sources":["../../src/Presence/Presence.ts"],"sourcesContent":["import type {\n SlotsType,\n VNode,\n} from 'vue'\nimport { unrefElement } from '@vueuse/core'\nimport {\n defineComponent,\n getCurrentInstance,\n h,\n ref,\n toRefs,\n} from 'vue'\nimport { renderSlotFragments } from '@/shared'\nimport { usePresence } from './usePresence'\n\nexport interface PresenceProps {\n /**\n * Conditional to mount or unmount the child element. Similar to `v-if`\n *\n * @required true\n */\n present: boolean\n /**\n * Force the element to render all the time.\n *\n * Useful for programmatically render grandchild component with the exposed `present`\n *\n * @defaultValue false\n */\n forceMount?: boolean\n}\n\nexport default defineComponent({\n name: 'Presence',\n props: {\n present: {\n type: Boolean,\n required: true,\n },\n forceMount: {\n type: Boolean,\n },\n },\n slots: {} as SlotsType<{\n default: (opts: { present: boolean }) => any\n }>,\n setup(props, { slots, expose }) {\n const { present, forceMount } = toRefs(props)\n\n const node = ref<HTMLElement>()\n // Mount composables once to prevent duplicated eventListener\n const { isPresent } = usePresence(present, node)\n expose({ present: isPresent })\n\n let children = slots.default({ present: isPresent.value })\n children = renderSlotFragments(children || [])\n const instance = getCurrentInstance()\n\n if (children && children?.length > 1) {\n const componentName = instance?.parent?.type.name\n ? `<${instance.parent.type.name} />`\n : 'component'\n\n throw new Error(\n [\n `Detected an invalid children for \\`${componentName}\\` for \\`Presence\\` component.`,\n '',\n 'Note: Presence works similarly to `v-if` directly, but it waits for animation/transition to finished before unmounting. So it expect only one direct child of valid VNode type.',\n 'You can apply a few solutions:',\n [\n 'Provide a single child element so that `presence` directive attach correctly.',\n 'Ensure the first child is an actual element instead of a raw text node or comment node.',\n ]\n .map(line => ` - ${line}`)\n .join('\\n'),\n ].join('\\n'),\n )\n }\n\n return () => {\n if (forceMount.value || present.value || isPresent.value) {\n return h(slots.default({ present: isPresent.value })[0] as VNode, {\n ref: (v) => {\n const el = unrefElement(v as HTMLElement)\n if (typeof el?.hasAttribute === 'undefined')\n return el\n\n // special case to handle animation for PopperContent\n if (el?.hasAttribute('data-reka-popper-content-wrapper'))\n node.value = el.firstElementChild as HTMLElement\n else\n node.value = el\n\n return el\n },\n })\n }\n else { return null }\n }\n },\n})\n"],"names":["defineComponent","toRefs","ref","usePresence","renderSlotFragments","getCurrentInstance","h","unrefElement"],"mappings":";;;;;;;AAgCA,iBAAeA,mBAAgB,CAAA;AAAA,EAC7B,IAAM,EAAA,UAAA;AAAA,EACN,KAAO,EAAA;AAAA,IACL,OAAS,EAAA;AAAA,MACP,IAAM,EAAA,OAAA;AAAA,MACN,QAAU,EAAA;AAAA,KACZ;AAAA,IACA,UAAY,EAAA;AAAA,MACV,IAAM,EAAA;AAAA;AACR,GACF;AAAA,EACA,OAAO,EAAC;AAAA,EAGR,KAAM,CAAA,KAAA,EAAO,EAAE,KAAA,EAAO,QAAU,EAAA;AAC9B,IAAA,MAAM,EAAE,OAAA,EAAS,UAAW,EAAA,GAAIC,WAAO,KAAK,CAAA;AAE5C,IAAA,MAAM,OAAOC,OAAiB,EAAA;AAE9B,IAAA,MAAM,EAAE,SAAA,EAAc,GAAAC,gCAAA,CAAY,SAAS,IAAI,CAAA;AAC/C,IAAO,MAAA,CAAA,EAAE,OAAS,EAAA,SAAA,EAAW,CAAA;AAE7B,IAAA,IAAI,WAAW,KAAM,CAAA,OAAA,CAAQ,EAAE,OAAS,EAAA,SAAA,CAAU,OAAO,CAAA;AACzD,IAAW,QAAA,GAAAC,8CAAA,CAAoB,QAAY,IAAA,EAAE,CAAA;AAC7C,IAAA,MAAM,WAAWC,sBAAmB,EAAA;AAEpC,IAAI,IAAA,QAAA,IAAY,QAAU,EAAA,MAAA,GAAS,CAAG,EAAA;AACpC,MAAM,MAAA,aAAA,GAAgB,QAAU,EAAA,MAAA,EAAQ,IAAK,CAAA,IAAA,GACzC,IAAI,QAAS,CAAA,MAAA,CAAO,IAAK,CAAA,IAAI,CAC7B,GAAA,CAAA,GAAA,WAAA;AAEJ,MAAA,MAAM,IAAI,KAAA;AAAA,QACR;AAAA,UACE,sCAAsC,aAAa,CAAA,+BAAA,CAAA;AAAA,UACnD,EAAA;AAAA,UACA,iLAAA;AAAA,UACA,gCAAA;AAAA,UACA;AAAA,YACE,+EAAA;AAAA,YACA;AAAA,WACF,CACG,IAAI,CAAQ,IAAA,KAAA,CAAA,IAAA,EAAO,IAAI,CAAE,CAAA,CAAA,CACzB,KAAK,IAAI;AAAA,SACd,CAAE,KAAK,IAAI;AAAA,OACb;AAAA;AAGF,IAAA,OAAO,MAAM;AACX,MAAA,IAAI,UAAW,CAAA,KAAA,IAAS,OAAQ,CAAA,KAAA,IAAS,UAAU,KAAO,EAAA;AACxD,QAAO,OAAAC,KAAA,CAAE,KAAM,CAAA,OAAA,CAAQ,EAAE,OAAA,EAAS,UAAU,KAAM,EAAC,CAAE,CAAA,CAAC,CAAY,EAAA;AAAA,UAChE,GAAA,EAAK,CAAC,CAAM,KAAA;AACV,YAAM,MAAA,EAAA,GAAKC,kBAAa,CAAgB,CAAA;AACxC,YAAI,IAAA,OAAO,IAAI,YAAiB,KAAA,WAAA;AAC9B,cAAO,OAAA,EAAA;AAGT,YAAI,IAAA,EAAA,EAAI,aAAa,kCAAkC,CAAA;AACrD,cAAA,IAAA,CAAK,QAAQ,EAAG,CAAA,iBAAA;AAAA;AAEhB,cAAA,IAAA,CAAK,KAAQ,GAAA,EAAA;AAEf,YAAO,OAAA,EAAA;AAAA;AACT,SACD,CAAA;AAAA,OAEE,MAAA;AAAE,QAAO,OAAA,IAAA;AAAA;AAAK,KACrB;AAAA;AAEJ,CAAC,CAAA;;;;"}
@@ -1,6 +1,6 @@
1
+ import { unrefElement } from '@vueuse/core';
1
2
  import { defineComponent, toRefs, ref, getCurrentInstance, h } from 'vue';
2
3
  import { u as usePresence } from './usePresence.js';
3
- import { unrefElement } from '@vueuse/core';
4
4
  import { r as renderSlotFragments } from '../shared/renderSlotFragments.js';
5
5
 
6
6
  const Presence = defineComponent({
@@ -1 +1 @@
1
- {"version":3,"file":"Presence.js","sources":["../../src/Presence/Presence.ts"],"sourcesContent":["import {\n defineComponent,\n getCurrentInstance,\n h,\n ref,\n toRefs,\n} from 'vue'\nimport type {\n SlotsType,\n VNode,\n} from 'vue'\nimport { usePresence } from './usePresence'\nimport { renderSlotFragments } from '@/shared'\nimport { unrefElement } from '@vueuse/core'\n\nexport interface PresenceProps {\n /**\n * Conditional to mount or unmount the child element. Similar to `v-if`\n *\n * @required true\n */\n present: boolean\n /**\n * Force the element to render all the time.\n *\n * Useful for programmatically render grandchild component with the exposed `present`\n *\n * @defaultValue false\n */\n forceMount?: boolean\n}\n\nexport default defineComponent({\n name: 'Presence',\n props: {\n present: {\n type: Boolean,\n required: true,\n },\n forceMount: {\n type: Boolean,\n },\n },\n slots: {} as SlotsType<{\n default: (opts: { present: boolean }) => any\n }>,\n setup(props, { slots, expose }) {\n const { present, forceMount } = toRefs(props)\n\n const node = ref<HTMLElement>()\n // Mount composables once to prevent duplicated eventListener\n const { isPresent } = usePresence(present, node)\n expose({ present: isPresent })\n\n let children = slots.default({ present: isPresent.value })\n children = renderSlotFragments(children || [])\n const instance = getCurrentInstance()\n\n if (children && children?.length > 1) {\n const componentName = instance?.parent?.type.name\n ? `<${instance.parent.type.name} />`\n : 'component'\n\n throw new Error(\n [\n `Detected an invalid children for \\`${componentName}\\` for \\`Presence\\` component.`,\n '',\n 'Note: Presence works similarly to `v-if` directly, but it waits for animation/transition to finished before unmounting. So it expect only one direct child of valid VNode type.',\n 'You can apply a few solutions:',\n [\n 'Provide a single child element so that `presence` directive attach correctly.',\n 'Ensure the first child is an actual element instead of a raw text node or comment node.',\n ]\n .map(line => ` - ${line}`)\n .join('\\n'),\n ].join('\\n'),\n )\n }\n\n return () => {\n if (forceMount.value || present.value || isPresent.value) {\n return h(slots.default({ present: isPresent.value })[0] as VNode, {\n ref: (v) => {\n const el = unrefElement(v as HTMLElement)\n if (typeof el?.hasAttribute === 'undefined')\n return el\n\n // special case to handle animation for PopperContent\n if (el?.hasAttribute('data-reka-popper-content-wrapper'))\n node.value = el.firstElementChild as HTMLElement\n else\n node.value = el\n\n return el\n },\n })\n }\n else { return null }\n }\n },\n})\n"],"names":[],"mappings":";;;;;AAgCA,iBAAe,eAAgB,CAAA;AAAA,EAC7B,IAAM,EAAA,UAAA;AAAA,EACN,KAAO,EAAA;AAAA,IACL,OAAS,EAAA;AAAA,MACP,IAAM,EAAA,OAAA;AAAA,MACN,QAAU,EAAA;AAAA,KACZ;AAAA,IACA,UAAY,EAAA;AAAA,MACV,IAAM,EAAA;AAAA;AACR,GACF;AAAA,EACA,OAAO,EAAC;AAAA,EAGR,KAAM,CAAA,KAAA,EAAO,EAAE,KAAA,EAAO,QAAU,EAAA;AAC9B,IAAA,MAAM,EAAE,OAAA,EAAS,UAAW,EAAA,GAAI,OAAO,KAAK,CAAA;AAE5C,IAAA,MAAM,OAAO,GAAiB,EAAA;AAE9B,IAAA,MAAM,EAAE,SAAA,EAAc,GAAA,WAAA,CAAY,SAAS,IAAI,CAAA;AAC/C,IAAO,MAAA,CAAA,EAAE,OAAS,EAAA,SAAA,EAAW,CAAA;AAE7B,IAAA,IAAI,WAAW,KAAM,CAAA,OAAA,CAAQ,EAAE,OAAS,EAAA,SAAA,CAAU,OAAO,CAAA;AACzD,IAAW,QAAA,GAAA,mBAAA,CAAoB,QAAY,IAAA,EAAE,CAAA;AAC7C,IAAA,MAAM,WAAW,kBAAmB,EAAA;AAEpC,IAAI,IAAA,QAAA,IAAY,QAAU,EAAA,MAAA,GAAS,CAAG,EAAA;AACpC,MAAM,MAAA,aAAA,GAAgB,QAAU,EAAA,MAAA,EAAQ,IAAK,CAAA,IAAA,GACzC,IAAI,QAAS,CAAA,MAAA,CAAO,IAAK,CAAA,IAAI,CAC7B,GAAA,CAAA,GAAA,WAAA;AAEJ,MAAA,MAAM,IAAI,KAAA;AAAA,QACR;AAAA,UACE,sCAAsC,aAAa,CAAA,+BAAA,CAAA;AAAA,UACnD,EAAA;AAAA,UACA,iLAAA;AAAA,UACA,gCAAA;AAAA,UACA;AAAA,YACE,+EAAA;AAAA,YACA;AAAA,WACF,CACG,IAAI,CAAQ,IAAA,KAAA,CAAA,IAAA,EAAO,IAAI,CAAE,CAAA,CAAA,CACzB,KAAK,IAAI;AAAA,SACd,CAAE,KAAK,IAAI;AAAA,OACb;AAAA;AAGF,IAAA,OAAO,MAAM;AACX,MAAA,IAAI,UAAW,CAAA,KAAA,IAAS,OAAQ,CAAA,KAAA,IAAS,UAAU,KAAO,EAAA;AACxD,QAAO,OAAA,CAAA,CAAE,KAAM,CAAA,OAAA,CAAQ,EAAE,OAAA,EAAS,UAAU,KAAM,EAAC,CAAE,CAAA,CAAC,CAAY,EAAA;AAAA,UAChE,GAAA,EAAK,CAAC,CAAM,KAAA;AACV,YAAM,MAAA,EAAA,GAAK,aAAa,CAAgB,CAAA;AACxC,YAAI,IAAA,OAAO,IAAI,YAAiB,KAAA,WAAA;AAC9B,cAAO,OAAA,EAAA;AAGT,YAAI,IAAA,EAAA,EAAI,aAAa,kCAAkC,CAAA;AACrD,cAAA,IAAA,CAAK,QAAQ,EAAG,CAAA,iBAAA;AAAA;AAEhB,cAAA,IAAA,CAAK,KAAQ,GAAA,EAAA;AAEf,YAAO,OAAA,EAAA;AAAA;AACT,SACD,CAAA;AAAA,OAEE,MAAA;AAAE,QAAO,OAAA,IAAA;AAAA;AAAK,KACrB;AAAA;AAEJ,CAAC,CAAA;;;;"}
1
+ {"version":3,"file":"Presence.js","sources":["../../src/Presence/Presence.ts"],"sourcesContent":["import type {\n SlotsType,\n VNode,\n} from 'vue'\nimport { unrefElement } from '@vueuse/core'\nimport {\n defineComponent,\n getCurrentInstance,\n h,\n ref,\n toRefs,\n} from 'vue'\nimport { renderSlotFragments } from '@/shared'\nimport { usePresence } from './usePresence'\n\nexport interface PresenceProps {\n /**\n * Conditional to mount or unmount the child element. Similar to `v-if`\n *\n * @required true\n */\n present: boolean\n /**\n * Force the element to render all the time.\n *\n * Useful for programmatically render grandchild component with the exposed `present`\n *\n * @defaultValue false\n */\n forceMount?: boolean\n}\n\nexport default defineComponent({\n name: 'Presence',\n props: {\n present: {\n type: Boolean,\n required: true,\n },\n forceMount: {\n type: Boolean,\n },\n },\n slots: {} as SlotsType<{\n default: (opts: { present: boolean }) => any\n }>,\n setup(props, { slots, expose }) {\n const { present, forceMount } = toRefs(props)\n\n const node = ref<HTMLElement>()\n // Mount composables once to prevent duplicated eventListener\n const { isPresent } = usePresence(present, node)\n expose({ present: isPresent })\n\n let children = slots.default({ present: isPresent.value })\n children = renderSlotFragments(children || [])\n const instance = getCurrentInstance()\n\n if (children && children?.length > 1) {\n const componentName = instance?.parent?.type.name\n ? `<${instance.parent.type.name} />`\n : 'component'\n\n throw new Error(\n [\n `Detected an invalid children for \\`${componentName}\\` for \\`Presence\\` component.`,\n '',\n 'Note: Presence works similarly to `v-if` directly, but it waits for animation/transition to finished before unmounting. So it expect only one direct child of valid VNode type.',\n 'You can apply a few solutions:',\n [\n 'Provide a single child element so that `presence` directive attach correctly.',\n 'Ensure the first child is an actual element instead of a raw text node or comment node.',\n ]\n .map(line => ` - ${line}`)\n .join('\\n'),\n ].join('\\n'),\n )\n }\n\n return () => {\n if (forceMount.value || present.value || isPresent.value) {\n return h(slots.default({ present: isPresent.value })[0] as VNode, {\n ref: (v) => {\n const el = unrefElement(v as HTMLElement)\n if (typeof el?.hasAttribute === 'undefined')\n return el\n\n // special case to handle animation for PopperContent\n if (el?.hasAttribute('data-reka-popper-content-wrapper'))\n node.value = el.firstElementChild as HTMLElement\n else\n node.value = el\n\n return el\n },\n })\n }\n else { return null }\n }\n },\n})\n"],"names":[],"mappings":";;;;;AAgCA,iBAAe,eAAgB,CAAA;AAAA,EAC7B,IAAM,EAAA,UAAA;AAAA,EACN,KAAO,EAAA;AAAA,IACL,OAAS,EAAA;AAAA,MACP,IAAM,EAAA,OAAA;AAAA,MACN,QAAU,EAAA;AAAA,KACZ;AAAA,IACA,UAAY,EAAA;AAAA,MACV,IAAM,EAAA;AAAA;AACR,GACF;AAAA,EACA,OAAO,EAAC;AAAA,EAGR,KAAM,CAAA,KAAA,EAAO,EAAE,KAAA,EAAO,QAAU,EAAA;AAC9B,IAAA,MAAM,EAAE,OAAA,EAAS,UAAW,EAAA,GAAI,OAAO,KAAK,CAAA;AAE5C,IAAA,MAAM,OAAO,GAAiB,EAAA;AAE9B,IAAA,MAAM,EAAE,SAAA,EAAc,GAAA,WAAA,CAAY,SAAS,IAAI,CAAA;AAC/C,IAAO,MAAA,CAAA,EAAE,OAAS,EAAA,SAAA,EAAW,CAAA;AAE7B,IAAA,IAAI,WAAW,KAAM,CAAA,OAAA,CAAQ,EAAE,OAAS,EAAA,SAAA,CAAU,OAAO,CAAA;AACzD,IAAW,QAAA,GAAA,mBAAA,CAAoB,QAAY,IAAA,EAAE,CAAA;AAC7C,IAAA,MAAM,WAAW,kBAAmB,EAAA;AAEpC,IAAI,IAAA,QAAA,IAAY,QAAU,EAAA,MAAA,GAAS,CAAG,EAAA;AACpC,MAAM,MAAA,aAAA,GAAgB,QAAU,EAAA,MAAA,EAAQ,IAAK,CAAA,IAAA,GACzC,IAAI,QAAS,CAAA,MAAA,CAAO,IAAK,CAAA,IAAI,CAC7B,GAAA,CAAA,GAAA,WAAA;AAEJ,MAAA,MAAM,IAAI,KAAA;AAAA,QACR;AAAA,UACE,sCAAsC,aAAa,CAAA,+BAAA,CAAA;AAAA,UACnD,EAAA;AAAA,UACA,iLAAA;AAAA,UACA,gCAAA;AAAA,UACA;AAAA,YACE,+EAAA;AAAA,YACA;AAAA,WACF,CACG,IAAI,CAAQ,IAAA,KAAA,CAAA,IAAA,EAAO,IAAI,CAAE,CAAA,CAAA,CACzB,KAAK,IAAI;AAAA,SACd,CAAE,KAAK,IAAI;AAAA,OACb;AAAA;AAGF,IAAA,OAAO,MAAM;AACX,MAAA,IAAI,UAAW,CAAA,KAAA,IAAS,OAAQ,CAAA,KAAA,IAAS,UAAU,KAAO,EAAA;AACxD,QAAO,OAAA,CAAA,CAAE,KAAM,CAAA,OAAA,CAAQ,EAAE,OAAA,EAAS,UAAU,KAAM,EAAC,CAAE,CAAA,CAAC,CAAY,EAAA;AAAA,UAChE,GAAA,EAAK,CAAC,CAAM,KAAA;AACV,YAAM,MAAA,EAAA,GAAK,aAAa,CAAgB,CAAA;AACxC,YAAI,IAAA,OAAO,IAAI,YAAiB,KAAA,WAAA;AAC9B,cAAO,OAAA,EAAA;AAGT,YAAI,IAAA,EAAA,EAAI,aAAa,kCAAkC,CAAA;AACrD,cAAA,IAAA,CAAK,QAAQ,EAAG,CAAA,iBAAA;AAAA;AAEhB,cAAA,IAAA,CAAK,KAAQ,GAAA,EAAA;AAEf,YAAO,OAAA,EAAA;AAAA;AACT,SACD,CAAA;AAAA,OAEE,MAAA;AAAE,QAAO,OAAA,IAAA;AAAA;AAAK,KACrB;AAAA;AAEJ,CAAC,CAAA;;;;"}
@@ -1,8 +1,8 @@
1
1
  'use strict';
2
2
 
3
- const vue = require('vue');
4
- const shared = require('@vueuse/shared');
5
3
  const core = require('@vueuse/core');
4
+ const shared = require('@vueuse/shared');
5
+ const vue = require('vue');
6
6
  const shared_useStateMachine = require('../shared/useStateMachine.cjs');
7
7
 
8
8
  function usePresence(present, node) {
@@ -1 +1 @@
1
- {"version":3,"file":"usePresence.cjs","sources":["../../src/Presence/usePresence.ts"],"sourcesContent":["import { type Ref, computed, nextTick, onUnmounted, ref, watch } from 'vue'\nimport { useStateMachine } from '@/shared'\nimport { isClient } from '@vueuse/shared'\nimport { defaultWindow } from '@vueuse/core'\n\nexport function usePresence(\n present: Ref<boolean>,\n node: Ref<HTMLElement | undefined>,\n) {\n const stylesRef = ref<CSSStyleDeclaration>({} as any)\n const prevAnimationNameRef = ref<string>('none')\n const prevPresentRef = ref(present)\n const initialState = present.value ? 'mounted' : 'unmounted'\n let timeoutId: number | undefined\n const ownerWindow = node.value?.ownerDocument.defaultView ?? defaultWindow\n\n const { state, dispatch } = useStateMachine(initialState, {\n mounted: {\n UNMOUNT: 'unmounted',\n ANIMATION_OUT: 'unmountSuspended',\n },\n unmountSuspended: {\n MOUNT: 'mounted',\n ANIMATION_END: 'unmounted',\n },\n unmounted: {\n MOUNT: 'mounted',\n },\n })\n\n const dispatchCustomEvent = (name: 'enter' | 'after-enter' | 'leave' | 'after-leave') => {\n // We only dispatch this event because CustomEvent is not available in Node18\n // https://github.com/unovue/reka-ui/issues/930\n if (isClient) {\n const customEvent = new CustomEvent(name, { bubbles: false, cancelable: false })\n node.value?.dispatchEvent(customEvent)\n }\n }\n\n watch(\n present,\n async (currentPresent, prevPresent) => {\n const hasPresentChanged = prevPresent !== currentPresent\n await nextTick()\n if (hasPresentChanged) {\n const prevAnimationName = prevAnimationNameRef.value\n const currentAnimationName = getAnimationName(node.value)\n\n if (currentPresent) {\n dispatch('MOUNT')\n dispatchCustomEvent('enter')\n if (currentAnimationName === 'none')\n dispatchCustomEvent('after-enter')\n }\n else if (\n currentAnimationName === 'none' || currentAnimationName === 'undefined'\n || stylesRef.value?.display === 'none'\n ) {\n // If there is no exit animation or the element is hidden, animations won't run\n // so we unmount instantly rv\n dispatch('UNMOUNT')\n dispatchCustomEvent('leave')\n dispatchCustomEvent('after-leave')\n }\n else {\n /**\n * When `present` changes to `false`, we check changes to animation-name to\n * determine whether an animation has started. We chose this approach (reading\n * computed styles) because there is no `animationrun` event and `animationstart`\n * fires after `animation-delay` has expired which would be too late.\n */\n const isAnimating = prevAnimationName !== currentAnimationName\n if (prevPresent && isAnimating) {\n dispatch('ANIMATION_OUT')\n dispatchCustomEvent('leave')\n }\n else {\n dispatch('UNMOUNT')\n dispatchCustomEvent('after-leave')\n }\n }\n }\n },\n { immediate: true },\n )\n\n /**\n * Triggering an ANIMATION_OUT during an ANIMATION_IN will fire an `animationcancel`\n * event for ANIMATION_IN after we have entered `unmountSuspended` state. So, we\n * make sure we only trigger ANIMATION_END for the currently active animation.\n */\n const handleAnimationEnd = (event: AnimationEvent) => {\n const currentAnimationName = getAnimationName(node.value)\n const isCurrentAnimation = currentAnimationName.includes(\n event.animationName,\n )\n const directionName = state.value === 'mounted' ? 'enter' : 'leave'\n if (event.target === node.value && isCurrentAnimation) {\n dispatchCustomEvent(`after-${directionName}`)\n dispatch('ANIMATION_END')\n\n if (!prevPresentRef.value) {\n const currentFillMode = node.value.style.animationFillMode\n node.value.style.animationFillMode = 'forwards'\n // Reset the style after the node had time to unmount (for cases\n // where the component chooses not to unmount). Doing this any\n // sooner than `setTimeout` (e.g. with `requestAnimationFrame`)\n // still causes a flash.\n timeoutId = ownerWindow?.setTimeout(() => {\n if (node.value?.style.animationFillMode === 'forwards') {\n node.value.style.animationFillMode = currentFillMode\n }\n })\n }\n }\n // if no animation, immediately trigger 'ANIMATION_END'\n if (event.target === node.value && currentAnimationName === 'none')\n dispatch('ANIMATION_END')\n }\n const handleAnimationStart = (event: AnimationEvent) => {\n if (event.target === node.value) {\n // if animation occurred, store its name as the previous animation.\n prevAnimationNameRef.value = getAnimationName(node.value)\n }\n }\n\n const watcher = watch(\n node,\n (newNode, oldNode) => {\n if (newNode) {\n stylesRef.value = getComputedStyle(newNode)\n newNode.addEventListener('animationstart', handleAnimationStart)\n newNode.addEventListener('animationcancel', handleAnimationEnd)\n newNode.addEventListener('animationend', handleAnimationEnd)\n }\n else {\n // Transition to the unmounted state if the node is removed prematurely.\n // We avoid doing so during cleanup as the node may change but still exist.\n dispatch('ANIMATION_END')\n\n if (timeoutId !== undefined)\n ownerWindow?.clearTimeout(timeoutId)\n oldNode?.removeEventListener('animationstart', handleAnimationStart)\n oldNode?.removeEventListener('animationcancel', handleAnimationEnd)\n oldNode?.removeEventListener('animationend', handleAnimationEnd)\n }\n },\n { immediate: true },\n )\n\n const stateWatcher = watch(state, () => {\n const currentAnimationName = getAnimationName(node.value)\n prevAnimationNameRef.value\n = state.value === 'mounted' ? currentAnimationName : 'none'\n })\n\n onUnmounted(() => {\n watcher()\n stateWatcher()\n })\n\n const isPresent = computed(() =>\n ['mounted', 'unmountSuspended'].includes(state.value),\n )\n\n return {\n isPresent,\n }\n}\n\nfunction getAnimationName(node?: HTMLElement) {\n return node ? getComputedStyle(node).animationName || 'none' : 'none'\n}\n"],"names":["ref","defaultWindow","useStateMachine","isClient","watch","nextTick","onUnmounted","computed"],"mappings":"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"}
1
+ {"version":3,"file":"usePresence.cjs","sources":["../../src/Presence/usePresence.ts"],"sourcesContent":["import type { Ref } from 'vue'\nimport { defaultWindow } from '@vueuse/core'\nimport { isClient } from '@vueuse/shared'\nimport { computed, nextTick, onUnmounted, ref, watch } from 'vue'\nimport { useStateMachine } from '@/shared'\n\nexport function usePresence(\n present: Ref<boolean>,\n node: Ref<HTMLElement | undefined>,\n) {\n const stylesRef = ref<CSSStyleDeclaration>({} as any)\n const prevAnimationNameRef = ref<string>('none')\n const prevPresentRef = ref(present)\n const initialState = present.value ? 'mounted' : 'unmounted'\n let timeoutId: number | undefined\n const ownerWindow = node.value?.ownerDocument.defaultView ?? defaultWindow\n\n const { state, dispatch } = useStateMachine(initialState, {\n mounted: {\n UNMOUNT: 'unmounted',\n ANIMATION_OUT: 'unmountSuspended',\n },\n unmountSuspended: {\n MOUNT: 'mounted',\n ANIMATION_END: 'unmounted',\n },\n unmounted: {\n MOUNT: 'mounted',\n },\n })\n\n const dispatchCustomEvent = (name: 'enter' | 'after-enter' | 'leave' | 'after-leave') => {\n // We only dispatch this event because CustomEvent is not available in Node18\n // https://github.com/unovue/reka-ui/issues/930\n if (isClient) {\n const customEvent = new CustomEvent(name, { bubbles: false, cancelable: false })\n node.value?.dispatchEvent(customEvent)\n }\n }\n\n watch(\n present,\n async (currentPresent, prevPresent) => {\n const hasPresentChanged = prevPresent !== currentPresent\n await nextTick()\n if (hasPresentChanged) {\n const prevAnimationName = prevAnimationNameRef.value\n const currentAnimationName = getAnimationName(node.value)\n\n if (currentPresent) {\n dispatch('MOUNT')\n dispatchCustomEvent('enter')\n if (currentAnimationName === 'none')\n dispatchCustomEvent('after-enter')\n }\n else if (\n currentAnimationName === 'none' || currentAnimationName === 'undefined'\n || stylesRef.value?.display === 'none'\n ) {\n // If there is no exit animation or the element is hidden, animations won't run\n // so we unmount instantly rv\n dispatch('UNMOUNT')\n dispatchCustomEvent('leave')\n dispatchCustomEvent('after-leave')\n }\n else {\n /**\n * When `present` changes to `false`, we check changes to animation-name to\n * determine whether an animation has started. We chose this approach (reading\n * computed styles) because there is no `animationrun` event and `animationstart`\n * fires after `animation-delay` has expired which would be too late.\n */\n const isAnimating = prevAnimationName !== currentAnimationName\n if (prevPresent && isAnimating) {\n dispatch('ANIMATION_OUT')\n dispatchCustomEvent('leave')\n }\n else {\n dispatch('UNMOUNT')\n dispatchCustomEvent('after-leave')\n }\n }\n }\n },\n { immediate: true },\n )\n\n /**\n * Triggering an ANIMATION_OUT during an ANIMATION_IN will fire an `animationcancel`\n * event for ANIMATION_IN after we have entered `unmountSuspended` state. So, we\n * make sure we only trigger ANIMATION_END for the currently active animation.\n */\n const handleAnimationEnd = (event: AnimationEvent) => {\n const currentAnimationName = getAnimationName(node.value)\n const isCurrentAnimation = currentAnimationName.includes(\n event.animationName,\n )\n const directionName = state.value === 'mounted' ? 'enter' : 'leave'\n if (event.target === node.value && isCurrentAnimation) {\n dispatchCustomEvent(`after-${directionName}`)\n dispatch('ANIMATION_END')\n\n if (!prevPresentRef.value) {\n const currentFillMode = node.value.style.animationFillMode\n node.value.style.animationFillMode = 'forwards'\n // Reset the style after the node had time to unmount (for cases\n // where the component chooses not to unmount). Doing this any\n // sooner than `setTimeout` (e.g. with `requestAnimationFrame`)\n // still causes a flash.\n timeoutId = ownerWindow?.setTimeout(() => {\n if (node.value?.style.animationFillMode === 'forwards') {\n node.value.style.animationFillMode = currentFillMode\n }\n })\n }\n }\n // if no animation, immediately trigger 'ANIMATION_END'\n if (event.target === node.value && currentAnimationName === 'none')\n dispatch('ANIMATION_END')\n }\n const handleAnimationStart = (event: AnimationEvent) => {\n if (event.target === node.value) {\n // if animation occurred, store its name as the previous animation.\n prevAnimationNameRef.value = getAnimationName(node.value)\n }\n }\n\n const watcher = watch(\n node,\n (newNode, oldNode) => {\n if (newNode) {\n stylesRef.value = getComputedStyle(newNode)\n newNode.addEventListener('animationstart', handleAnimationStart)\n newNode.addEventListener('animationcancel', handleAnimationEnd)\n newNode.addEventListener('animationend', handleAnimationEnd)\n }\n else {\n // Transition to the unmounted state if the node is removed prematurely.\n // We avoid doing so during cleanup as the node may change but still exist.\n dispatch('ANIMATION_END')\n\n if (timeoutId !== undefined)\n ownerWindow?.clearTimeout(timeoutId)\n oldNode?.removeEventListener('animationstart', handleAnimationStart)\n oldNode?.removeEventListener('animationcancel', handleAnimationEnd)\n oldNode?.removeEventListener('animationend', handleAnimationEnd)\n }\n },\n { immediate: true },\n )\n\n const stateWatcher = watch(state, () => {\n const currentAnimationName = getAnimationName(node.value)\n prevAnimationNameRef.value\n = state.value === 'mounted' ? currentAnimationName : 'none'\n })\n\n onUnmounted(() => {\n watcher()\n stateWatcher()\n })\n\n const isPresent = computed(() =>\n ['mounted', 'unmountSuspended'].includes(state.value),\n )\n\n return {\n isPresent,\n }\n}\n\nfunction getAnimationName(node?: HTMLElement) {\n return node ? getComputedStyle(node).animationName || 'none' : 'none'\n}\n"],"names":["ref","defaultWindow","useStateMachine","isClient","watch","nextTick","onUnmounted","computed"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import { ref, watch, nextTick, onUnmounted, computed } from 'vue';
2
- import { isClient } from '@vueuse/shared';
3
1
  import { defaultWindow } from '@vueuse/core';
2
+ import { isClient } from '@vueuse/shared';
3
+ import { ref, watch, nextTick, onUnmounted, computed } from 'vue';
4
4
  import { u as useStateMachine } from '../shared/useStateMachine.js';
5
5
 
6
6
  function usePresence(present, node) {
@@ -1 +1 @@
1
- {"version":3,"file":"usePresence.js","sources":["../../src/Presence/usePresence.ts"],"sourcesContent":["import { type Ref, computed, nextTick, onUnmounted, ref, watch } from 'vue'\nimport { useStateMachine } from '@/shared'\nimport { isClient } from '@vueuse/shared'\nimport { defaultWindow } from '@vueuse/core'\n\nexport function usePresence(\n present: Ref<boolean>,\n node: Ref<HTMLElement | undefined>,\n) {\n const stylesRef = ref<CSSStyleDeclaration>({} as any)\n const prevAnimationNameRef = ref<string>('none')\n const prevPresentRef = ref(present)\n const initialState = present.value ? 'mounted' : 'unmounted'\n let timeoutId: number | undefined\n const ownerWindow = node.value?.ownerDocument.defaultView ?? defaultWindow\n\n const { state, dispatch } = useStateMachine(initialState, {\n mounted: {\n UNMOUNT: 'unmounted',\n ANIMATION_OUT: 'unmountSuspended',\n },\n unmountSuspended: {\n MOUNT: 'mounted',\n ANIMATION_END: 'unmounted',\n },\n unmounted: {\n MOUNT: 'mounted',\n },\n })\n\n const dispatchCustomEvent = (name: 'enter' | 'after-enter' | 'leave' | 'after-leave') => {\n // We only dispatch this event because CustomEvent is not available in Node18\n // https://github.com/unovue/reka-ui/issues/930\n if (isClient) {\n const customEvent = new CustomEvent(name, { bubbles: false, cancelable: false })\n node.value?.dispatchEvent(customEvent)\n }\n }\n\n watch(\n present,\n async (currentPresent, prevPresent) => {\n const hasPresentChanged = prevPresent !== currentPresent\n await nextTick()\n if (hasPresentChanged) {\n const prevAnimationName = prevAnimationNameRef.value\n const currentAnimationName = getAnimationName(node.value)\n\n if (currentPresent) {\n dispatch('MOUNT')\n dispatchCustomEvent('enter')\n if (currentAnimationName === 'none')\n dispatchCustomEvent('after-enter')\n }\n else if (\n currentAnimationName === 'none' || currentAnimationName === 'undefined'\n || stylesRef.value?.display === 'none'\n ) {\n // If there is no exit animation or the element is hidden, animations won't run\n // so we unmount instantly rv\n dispatch('UNMOUNT')\n dispatchCustomEvent('leave')\n dispatchCustomEvent('after-leave')\n }\n else {\n /**\n * When `present` changes to `false`, we check changes to animation-name to\n * determine whether an animation has started. We chose this approach (reading\n * computed styles) because there is no `animationrun` event and `animationstart`\n * fires after `animation-delay` has expired which would be too late.\n */\n const isAnimating = prevAnimationName !== currentAnimationName\n if (prevPresent && isAnimating) {\n dispatch('ANIMATION_OUT')\n dispatchCustomEvent('leave')\n }\n else {\n dispatch('UNMOUNT')\n dispatchCustomEvent('after-leave')\n }\n }\n }\n },\n { immediate: true },\n )\n\n /**\n * Triggering an ANIMATION_OUT during an ANIMATION_IN will fire an `animationcancel`\n * event for ANIMATION_IN after we have entered `unmountSuspended` state. So, we\n * make sure we only trigger ANIMATION_END for the currently active animation.\n */\n const handleAnimationEnd = (event: AnimationEvent) => {\n const currentAnimationName = getAnimationName(node.value)\n const isCurrentAnimation = currentAnimationName.includes(\n event.animationName,\n )\n const directionName = state.value === 'mounted' ? 'enter' : 'leave'\n if (event.target === node.value && isCurrentAnimation) {\n dispatchCustomEvent(`after-${directionName}`)\n dispatch('ANIMATION_END')\n\n if (!prevPresentRef.value) {\n const currentFillMode = node.value.style.animationFillMode\n node.value.style.animationFillMode = 'forwards'\n // Reset the style after the node had time to unmount (for cases\n // where the component chooses not to unmount). Doing this any\n // sooner than `setTimeout` (e.g. with `requestAnimationFrame`)\n // still causes a flash.\n timeoutId = ownerWindow?.setTimeout(() => {\n if (node.value?.style.animationFillMode === 'forwards') {\n node.value.style.animationFillMode = currentFillMode\n }\n })\n }\n }\n // if no animation, immediately trigger 'ANIMATION_END'\n if (event.target === node.value && currentAnimationName === 'none')\n dispatch('ANIMATION_END')\n }\n const handleAnimationStart = (event: AnimationEvent) => {\n if (event.target === node.value) {\n // if animation occurred, store its name as the previous animation.\n prevAnimationNameRef.value = getAnimationName(node.value)\n }\n }\n\n const watcher = watch(\n node,\n (newNode, oldNode) => {\n if (newNode) {\n stylesRef.value = getComputedStyle(newNode)\n newNode.addEventListener('animationstart', handleAnimationStart)\n newNode.addEventListener('animationcancel', handleAnimationEnd)\n newNode.addEventListener('animationend', handleAnimationEnd)\n }\n else {\n // Transition to the unmounted state if the node is removed prematurely.\n // We avoid doing so during cleanup as the node may change but still exist.\n dispatch('ANIMATION_END')\n\n if (timeoutId !== undefined)\n ownerWindow?.clearTimeout(timeoutId)\n oldNode?.removeEventListener('animationstart', handleAnimationStart)\n oldNode?.removeEventListener('animationcancel', handleAnimationEnd)\n oldNode?.removeEventListener('animationend', handleAnimationEnd)\n }\n },\n { immediate: true },\n )\n\n const stateWatcher = watch(state, () => {\n const currentAnimationName = getAnimationName(node.value)\n prevAnimationNameRef.value\n = state.value === 'mounted' ? currentAnimationName : 'none'\n })\n\n onUnmounted(() => {\n watcher()\n stateWatcher()\n })\n\n const isPresent = computed(() =>\n ['mounted', 'unmountSuspended'].includes(state.value),\n )\n\n return {\n isPresent,\n }\n}\n\nfunction getAnimationName(node?: HTMLElement) {\n return node ? getComputedStyle(node).animationName || 'none' : 'none'\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"usePresence.js","sources":["../../src/Presence/usePresence.ts"],"sourcesContent":["import type { Ref } from 'vue'\nimport { defaultWindow } from '@vueuse/core'\nimport { isClient } from '@vueuse/shared'\nimport { computed, nextTick, onUnmounted, ref, watch } from 'vue'\nimport { useStateMachine } from '@/shared'\n\nexport function usePresence(\n present: Ref<boolean>,\n node: Ref<HTMLElement | undefined>,\n) {\n const stylesRef = ref<CSSStyleDeclaration>({} as any)\n const prevAnimationNameRef = ref<string>('none')\n const prevPresentRef = ref(present)\n const initialState = present.value ? 'mounted' : 'unmounted'\n let timeoutId: number | undefined\n const ownerWindow = node.value?.ownerDocument.defaultView ?? defaultWindow\n\n const { state, dispatch } = useStateMachine(initialState, {\n mounted: {\n UNMOUNT: 'unmounted',\n ANIMATION_OUT: 'unmountSuspended',\n },\n unmountSuspended: {\n MOUNT: 'mounted',\n ANIMATION_END: 'unmounted',\n },\n unmounted: {\n MOUNT: 'mounted',\n },\n })\n\n const dispatchCustomEvent = (name: 'enter' | 'after-enter' | 'leave' | 'after-leave') => {\n // We only dispatch this event because CustomEvent is not available in Node18\n // https://github.com/unovue/reka-ui/issues/930\n if (isClient) {\n const customEvent = new CustomEvent(name, { bubbles: false, cancelable: false })\n node.value?.dispatchEvent(customEvent)\n }\n }\n\n watch(\n present,\n async (currentPresent, prevPresent) => {\n const hasPresentChanged = prevPresent !== currentPresent\n await nextTick()\n if (hasPresentChanged) {\n const prevAnimationName = prevAnimationNameRef.value\n const currentAnimationName = getAnimationName(node.value)\n\n if (currentPresent) {\n dispatch('MOUNT')\n dispatchCustomEvent('enter')\n if (currentAnimationName === 'none')\n dispatchCustomEvent('after-enter')\n }\n else if (\n currentAnimationName === 'none' || currentAnimationName === 'undefined'\n || stylesRef.value?.display === 'none'\n ) {\n // If there is no exit animation or the element is hidden, animations won't run\n // so we unmount instantly rv\n dispatch('UNMOUNT')\n dispatchCustomEvent('leave')\n dispatchCustomEvent('after-leave')\n }\n else {\n /**\n * When `present` changes to `false`, we check changes to animation-name to\n * determine whether an animation has started. We chose this approach (reading\n * computed styles) because there is no `animationrun` event and `animationstart`\n * fires after `animation-delay` has expired which would be too late.\n */\n const isAnimating = prevAnimationName !== currentAnimationName\n if (prevPresent && isAnimating) {\n dispatch('ANIMATION_OUT')\n dispatchCustomEvent('leave')\n }\n else {\n dispatch('UNMOUNT')\n dispatchCustomEvent('after-leave')\n }\n }\n }\n },\n { immediate: true },\n )\n\n /**\n * Triggering an ANIMATION_OUT during an ANIMATION_IN will fire an `animationcancel`\n * event for ANIMATION_IN after we have entered `unmountSuspended` state. So, we\n * make sure we only trigger ANIMATION_END for the currently active animation.\n */\n const handleAnimationEnd = (event: AnimationEvent) => {\n const currentAnimationName = getAnimationName(node.value)\n const isCurrentAnimation = currentAnimationName.includes(\n event.animationName,\n )\n const directionName = state.value === 'mounted' ? 'enter' : 'leave'\n if (event.target === node.value && isCurrentAnimation) {\n dispatchCustomEvent(`after-${directionName}`)\n dispatch('ANIMATION_END')\n\n if (!prevPresentRef.value) {\n const currentFillMode = node.value.style.animationFillMode\n node.value.style.animationFillMode = 'forwards'\n // Reset the style after the node had time to unmount (for cases\n // where the component chooses not to unmount). Doing this any\n // sooner than `setTimeout` (e.g. with `requestAnimationFrame`)\n // still causes a flash.\n timeoutId = ownerWindow?.setTimeout(() => {\n if (node.value?.style.animationFillMode === 'forwards') {\n node.value.style.animationFillMode = currentFillMode\n }\n })\n }\n }\n // if no animation, immediately trigger 'ANIMATION_END'\n if (event.target === node.value && currentAnimationName === 'none')\n dispatch('ANIMATION_END')\n }\n const handleAnimationStart = (event: AnimationEvent) => {\n if (event.target === node.value) {\n // if animation occurred, store its name as the previous animation.\n prevAnimationNameRef.value = getAnimationName(node.value)\n }\n }\n\n const watcher = watch(\n node,\n (newNode, oldNode) => {\n if (newNode) {\n stylesRef.value = getComputedStyle(newNode)\n newNode.addEventListener('animationstart', handleAnimationStart)\n newNode.addEventListener('animationcancel', handleAnimationEnd)\n newNode.addEventListener('animationend', handleAnimationEnd)\n }\n else {\n // Transition to the unmounted state if the node is removed prematurely.\n // We avoid doing so during cleanup as the node may change but still exist.\n dispatch('ANIMATION_END')\n\n if (timeoutId !== undefined)\n ownerWindow?.clearTimeout(timeoutId)\n oldNode?.removeEventListener('animationstart', handleAnimationStart)\n oldNode?.removeEventListener('animationcancel', handleAnimationEnd)\n oldNode?.removeEventListener('animationend', handleAnimationEnd)\n }\n },\n { immediate: true },\n )\n\n const stateWatcher = watch(state, () => {\n const currentAnimationName = getAnimationName(node.value)\n prevAnimationNameRef.value\n = state.value === 'mounted' ? currentAnimationName : 'none'\n })\n\n onUnmounted(() => {\n watcher()\n stateWatcher()\n })\n\n const isPresent = computed(() =>\n ['mounted', 'unmountSuspended'].includes(state.value),\n )\n\n return {\n isPresent,\n }\n}\n\nfunction getAnimationName(node?: HTMLElement) {\n return node ? getComputedStyle(node).animationName || 'none' : 'none'\n}\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Primitive.cjs","sources":["../../src/Primitive/Primitive.ts"],"sourcesContent":["import { type Component, type PropType, defineComponent, h } from 'vue'\nimport { Slot } from './Slot'\n\nexport type AsTag =\n | 'a'\n | 'button'\n | 'div'\n | 'form'\n | 'h2'\n | 'h3'\n | 'img'\n | 'input'\n | 'label'\n | 'li'\n | 'nav'\n | 'ol'\n | 'p'\n | 'span'\n | 'svg'\n | 'ul'\n | 'template'\n | ({} & string) // any other string\n\nexport interface PrimitiveProps {\n /**\n * Change the default rendered element for the one passed as a child, merging their props and behavior.\n *\n * Read our [Composition](https://www.reka-ui.com/docs/guides/composition) guide for more details.\n */\n asChild?: boolean\n /**\n * The element or component this component should render as. Can be overwritten by `asChild`.\n * @defaultValue \"div\"\n */\n as?: AsTag | Component\n}\n\n// For self closing tags, don't provide default slots because of hydration issue\nconst SELF_CLOSING_TAGS = ['area', 'img', 'input']\n\nexport const Primitive = defineComponent({\n name: 'Primitive',\n inheritAttrs: false,\n props: {\n asChild: {\n type: Boolean,\n default: false,\n },\n as: {\n type: [String, Object] as PropType<AsTag | Component>,\n default: 'div',\n },\n },\n setup(props, { attrs, slots }) {\n const asTag = props.asChild ? 'template' : props.as\n \n if (typeof asTag === 'string' && SELF_CLOSING_TAGS.includes(asTag))\n return () => h(asTag, attrs)\n\n if (asTag !== 'template')\n return () => h(props.as, attrs, { default: slots.default })\n\n return () => h(Slot, attrs, { default: slots.default })\n },\n})\n"],"names":["defineComponent","h","Slot"],"mappings":";;;;;AAsCA,MAAM,iBAAoB,GAAA,CAAC,MAAQ,EAAA,KAAA,EAAO,OAAO,CAAA;AAE1C,MAAM,YAAYA,mBAAgB,CAAA;AAAA,EACvC,IAAM,EAAA,WAAA;AAAA,EACN,YAAc,EAAA,KAAA;AAAA,EACd,KAAO,EAAA;AAAA,IACL,OAAS,EAAA;AAAA,MACP,IAAM,EAAA,OAAA;AAAA,MACN,OAAS,EAAA;AAAA,KACX;AAAA,IACA,EAAI,EAAA;AAAA,MACF,IAAA,EAAM,CAAC,MAAA,EAAQ,MAAM,CAAA;AAAA,MACrB,OAAS,EAAA;AAAA;AACX,GACF;AAAA,EACA,KAAM,CAAA,KAAA,EAAO,EAAE,KAAA,EAAO,OAAS,EAAA;AAC7B,IAAA,MAAM,KAAQ,GAAA,KAAA,CAAM,OAAU,GAAA,UAAA,GAAa,KAAM,CAAA,EAAA;AAEjD,IAAA,IAAI,OAAO,KAAA,KAAU,QAAY,IAAA,iBAAA,CAAkB,SAAS,KAAK,CAAA;AAC/D,MAAO,OAAA,MAAMC,KAAE,CAAA,KAAA,EAAO,KAAK,CAAA;AAE7B,IAAA,IAAI,KAAU,KAAA,UAAA;AACZ,MAAO,OAAA,MAAMA,MAAE,KAAM,CAAA,EAAA,EAAI,OAAO,EAAE,OAAA,EAAS,KAAM,CAAA,OAAA,EAAS,CAAA;AAE5D,IAAO,OAAA,MAAMA,MAAEC,mBAAM,EAAA,KAAA,EAAO,EAAE,OAAS,EAAA,KAAA,CAAM,SAAS,CAAA;AAAA;AAE1D,CAAC;;;;"}
1
+ {"version":3,"file":"Primitive.cjs","sources":["../../src/Primitive/Primitive.ts"],"sourcesContent":["import type { Component, PropType } from 'vue'\nimport { defineComponent, h } from 'vue'\nimport { Slot } from './Slot'\n\nexport type AsTag =\n | 'a'\n | 'button'\n | 'div'\n | 'form'\n | 'h2'\n | 'h3'\n | 'img'\n | 'input'\n | 'label'\n | 'li'\n | 'nav'\n | 'ol'\n | 'p'\n | 'span'\n | 'svg'\n | 'ul'\n | 'template'\n | ({} & string) // any other string\n\nexport interface PrimitiveProps {\n /**\n * Change the default rendered element for the one passed as a child, merging their props and behavior.\n *\n * Read our [Composition](https://www.reka-ui.com/docs/guides/composition) guide for more details.\n */\n asChild?: boolean\n /**\n * The element or component this component should render as. Can be overwritten by `asChild`.\n * @defaultValue \"div\"\n */\n as?: AsTag | Component\n}\n\n// For self closing tags, don't provide default slots because of hydration issue\nconst SELF_CLOSING_TAGS = ['area', 'img', 'input']\n\nexport const Primitive = defineComponent({\n name: 'Primitive',\n inheritAttrs: false,\n props: {\n asChild: {\n type: Boolean,\n default: false,\n },\n as: {\n type: [String, Object] as PropType<AsTag | Component>,\n default: 'div',\n },\n },\n setup(props, { attrs, slots }) {\n const asTag = props.asChild ? 'template' : props.as\n\n if (typeof asTag === 'string' && SELF_CLOSING_TAGS.includes(asTag))\n return () => h(asTag, attrs)\n\n if (asTag !== 'template')\n return () => h(props.as, attrs, { default: slots.default })\n\n return () => h(Slot, attrs, { default: slots.default })\n },\n})\n"],"names":["defineComponent","h","Slot"],"mappings":";;;;;AAuCA,MAAM,iBAAoB,GAAA,CAAC,MAAQ,EAAA,KAAA,EAAO,OAAO,CAAA;AAE1C,MAAM,YAAYA,mBAAgB,CAAA;AAAA,EACvC,IAAM,EAAA,WAAA;AAAA,EACN,YAAc,EAAA,KAAA;AAAA,EACd,KAAO,EAAA;AAAA,IACL,OAAS,EAAA;AAAA,MACP,IAAM,EAAA,OAAA;AAAA,MACN,OAAS,EAAA;AAAA,KACX;AAAA,IACA,EAAI,EAAA;AAAA,MACF,IAAA,EAAM,CAAC,MAAA,EAAQ,MAAM,CAAA;AAAA,MACrB,OAAS,EAAA;AAAA;AACX,GACF;AAAA,EACA,KAAM,CAAA,KAAA,EAAO,EAAE,KAAA,EAAO,OAAS,EAAA;AAC7B,IAAA,MAAM,KAAQ,GAAA,KAAA,CAAM,OAAU,GAAA,UAAA,GAAa,KAAM,CAAA,EAAA;AAEjD,IAAA,IAAI,OAAO,KAAA,KAAU,QAAY,IAAA,iBAAA,CAAkB,SAAS,KAAK,CAAA;AAC/D,MAAO,OAAA,MAAMC,KAAE,CAAA,KAAA,EAAO,KAAK,CAAA;AAE7B,IAAA,IAAI,KAAU,KAAA,UAAA;AACZ,MAAO,OAAA,MAAMA,MAAE,KAAM,CAAA,EAAA,EAAI,OAAO,EAAE,OAAA,EAAS,KAAM,CAAA,OAAA,EAAS,CAAA;AAE5D,IAAO,OAAA,MAAMA,MAAEC,mBAAM,EAAA,KAAA,EAAO,EAAE,OAAS,EAAA,KAAA,CAAM,SAAS,CAAA;AAAA;AAE1D,CAAC;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Primitive.js","sources":["../../src/Primitive/Primitive.ts"],"sourcesContent":["import { type Component, type PropType, defineComponent, h } from 'vue'\nimport { Slot } from './Slot'\n\nexport type AsTag =\n | 'a'\n | 'button'\n | 'div'\n | 'form'\n | 'h2'\n | 'h3'\n | 'img'\n | 'input'\n | 'label'\n | 'li'\n | 'nav'\n | 'ol'\n | 'p'\n | 'span'\n | 'svg'\n | 'ul'\n | 'template'\n | ({} & string) // any other string\n\nexport interface PrimitiveProps {\n /**\n * Change the default rendered element for the one passed as a child, merging their props and behavior.\n *\n * Read our [Composition](https://www.reka-ui.com/docs/guides/composition) guide for more details.\n */\n asChild?: boolean\n /**\n * The element or component this component should render as. Can be overwritten by `asChild`.\n * @defaultValue \"div\"\n */\n as?: AsTag | Component\n}\n\n// For self closing tags, don't provide default slots because of hydration issue\nconst SELF_CLOSING_TAGS = ['area', 'img', 'input']\n\nexport const Primitive = defineComponent({\n name: 'Primitive',\n inheritAttrs: false,\n props: {\n asChild: {\n type: Boolean,\n default: false,\n },\n as: {\n type: [String, Object] as PropType<AsTag | Component>,\n default: 'div',\n },\n },\n setup(props, { attrs, slots }) {\n const asTag = props.asChild ? 'template' : props.as\n \n if (typeof asTag === 'string' && SELF_CLOSING_TAGS.includes(asTag))\n return () => h(asTag, attrs)\n\n if (asTag !== 'template')\n return () => h(props.as, attrs, { default: slots.default })\n\n return () => h(Slot, attrs, { default: slots.default })\n },\n})\n"],"names":[],"mappings":";;;AAsCA,MAAM,iBAAoB,GAAA,CAAC,MAAQ,EAAA,KAAA,EAAO,OAAO,CAAA;AAE1C,MAAM,YAAY,eAAgB,CAAA;AAAA,EACvC,IAAM,EAAA,WAAA;AAAA,EACN,YAAc,EAAA,KAAA;AAAA,EACd,KAAO,EAAA;AAAA,IACL,OAAS,EAAA;AAAA,MACP,IAAM,EAAA,OAAA;AAAA,MACN,OAAS,EAAA;AAAA,KACX;AAAA,IACA,EAAI,EAAA;AAAA,MACF,IAAA,EAAM,CAAC,MAAA,EAAQ,MAAM,CAAA;AAAA,MACrB,OAAS,EAAA;AAAA;AACX,GACF;AAAA,EACA,KAAM,CAAA,KAAA,EAAO,EAAE,KAAA,EAAO,OAAS,EAAA;AAC7B,IAAA,MAAM,KAAQ,GAAA,KAAA,CAAM,OAAU,GAAA,UAAA,GAAa,KAAM,CAAA,EAAA;AAEjD,IAAA,IAAI,OAAO,KAAA,KAAU,QAAY,IAAA,iBAAA,CAAkB,SAAS,KAAK,CAAA;AAC/D,MAAO,OAAA,MAAM,CAAE,CAAA,KAAA,EAAO,KAAK,CAAA;AAE7B,IAAA,IAAI,KAAU,KAAA,UAAA;AACZ,MAAO,OAAA,MAAM,EAAE,KAAM,CAAA,EAAA,EAAI,OAAO,EAAE,OAAA,EAAS,KAAM,CAAA,OAAA,EAAS,CAAA;AAE5D,IAAO,OAAA,MAAM,EAAE,IAAM,EAAA,KAAA,EAAO,EAAE,OAAS,EAAA,KAAA,CAAM,SAAS,CAAA;AAAA;AAE1D,CAAC;;;;"}
1
+ {"version":3,"file":"Primitive.js","sources":["../../src/Primitive/Primitive.ts"],"sourcesContent":["import type { Component, PropType } from 'vue'\nimport { defineComponent, h } from 'vue'\nimport { Slot } from './Slot'\n\nexport type AsTag =\n | 'a'\n | 'button'\n | 'div'\n | 'form'\n | 'h2'\n | 'h3'\n | 'img'\n | 'input'\n | 'label'\n | 'li'\n | 'nav'\n | 'ol'\n | 'p'\n | 'span'\n | 'svg'\n | 'ul'\n | 'template'\n | ({} & string) // any other string\n\nexport interface PrimitiveProps {\n /**\n * Change the default rendered element for the one passed as a child, merging their props and behavior.\n *\n * Read our [Composition](https://www.reka-ui.com/docs/guides/composition) guide for more details.\n */\n asChild?: boolean\n /**\n * The element or component this component should render as. Can be overwritten by `asChild`.\n * @defaultValue \"div\"\n */\n as?: AsTag | Component\n}\n\n// For self closing tags, don't provide default slots because of hydration issue\nconst SELF_CLOSING_TAGS = ['area', 'img', 'input']\n\nexport const Primitive = defineComponent({\n name: 'Primitive',\n inheritAttrs: false,\n props: {\n asChild: {\n type: Boolean,\n default: false,\n },\n as: {\n type: [String, Object] as PropType<AsTag | Component>,\n default: 'div',\n },\n },\n setup(props, { attrs, slots }) {\n const asTag = props.asChild ? 'template' : props.as\n\n if (typeof asTag === 'string' && SELF_CLOSING_TAGS.includes(asTag))\n return () => h(asTag, attrs)\n\n if (asTag !== 'template')\n return () => h(props.as, attrs, { default: slots.default })\n\n return () => h(Slot, attrs, { default: slots.default })\n },\n})\n"],"names":[],"mappings":";;;AAuCA,MAAM,iBAAoB,GAAA,CAAC,MAAQ,EAAA,KAAA,EAAO,OAAO,CAAA;AAE1C,MAAM,YAAY,eAAgB,CAAA;AAAA,EACvC,IAAM,EAAA,WAAA;AAAA,EACN,YAAc,EAAA,KAAA;AAAA,EACd,KAAO,EAAA;AAAA,IACL,OAAS,EAAA;AAAA,MACP,IAAM,EAAA,OAAA;AAAA,MACN,OAAS,EAAA;AAAA,KACX;AAAA,IACA,EAAI,EAAA;AAAA,MACF,IAAA,EAAM,CAAC,MAAA,EAAQ,MAAM,CAAA;AAAA,MACrB,OAAS,EAAA;AAAA;AACX,GACF;AAAA,EACA,KAAM,CAAA,KAAA,EAAO,EAAE,KAAA,EAAO,OAAS,EAAA;AAC7B,IAAA,MAAM,KAAQ,GAAA,KAAA,CAAM,OAAU,GAAA,UAAA,GAAa,KAAM,CAAA,EAAA;AAEjD,IAAA,IAAI,OAAO,KAAA,KAAU,QAAY,IAAA,iBAAA,CAAkB,SAAS,KAAK,CAAA;AAC/D,MAAO,OAAA,MAAM,CAAE,CAAA,KAAA,EAAO,KAAK,CAAA;AAE7B,IAAA,IAAI,KAAU,KAAA,UAAA;AACZ,MAAO,OAAA,MAAM,EAAE,KAAM,CAAA,EAAA,EAAI,OAAO,EAAE,OAAA,EAAS,KAAM,CAAA,OAAA,EAAS,CAAA;AAE5D,IAAO,OAAA,MAAM,EAAE,IAAM,EAAA,KAAA,EAAO,EAAE,OAAS,EAAA,KAAA,CAAM,SAAS,CAAA;AAAA;AAE1D,CAAC;;;;"}
@@ -17,15 +17,7 @@ const Slot = vue.defineComponent({
17
17
  const firstNonCommentChildren = childrens[firstNonCommentChildrenIndex];
18
18
  delete firstNonCommentChildren.props?.ref;
19
19
  const mergedProps = firstNonCommentChildren.props ? vue.mergeProps(attrs, firstNonCommentChildren.props) : attrs;
20
- if (attrs.class && firstNonCommentChildren.props?.class)
21
- delete firstNonCommentChildren.props.class;
22
- const cloned = vue.cloneVNode(firstNonCommentChildren, mergedProps);
23
- for (const prop in mergedProps) {
24
- if (prop.startsWith("on")) {
25
- cloned.props ||= {};
26
- cloned.props[prop] = mergedProps[prop];
27
- }
28
- }
20
+ const cloned = vue.cloneVNode({ ...firstNonCommentChildren, props: {} }, mergedProps);
29
21
  if (childrens.length === 1)
30
22
  return cloned;
31
23
  childrens[firstNonCommentChildrenIndex] = cloned;
@@ -1 +1 @@
1
- {"version":3,"file":"Slot.cjs","sources":["../../src/Primitive/Slot.ts"],"sourcesContent":["import { Comment, cloneVNode, defineComponent, mergeProps } from 'vue'\nimport { renderSlotFragments } from '@/shared'\n\nexport const Slot = defineComponent({\n name: 'PrimitiveSlot',\n inheritAttrs: false,\n setup(_, { attrs, slots }) {\n return () => {\n if (!slots.default)\n return null\n\n const childrens = renderSlotFragments(slots.default())\n const firstNonCommentChildrenIndex = childrens.findIndex(child => child.type !== Comment)\n if (firstNonCommentChildrenIndex === -1)\n return childrens\n\n const firstNonCommentChildren = childrens[firstNonCommentChildrenIndex]\n\n // Remove props ref from being inferred\n delete firstNonCommentChildren.props?.ref\n\n const mergedProps = firstNonCommentChildren.props\n ? mergeProps(attrs, firstNonCommentChildren.props)\n : attrs\n // Remove class to prevent duplicated\n if (attrs.class && firstNonCommentChildren.props?.class)\n delete firstNonCommentChildren.props.class\n const cloned = cloneVNode(firstNonCommentChildren, mergedProps)\n\n // Explicitly override props starting with `on`.\n // It seems cloneVNode from Vue doesn't like overriding `onXXX` props.\n // So we have to do it manually.\n for (const prop in mergedProps) {\n if (prop.startsWith('on')) {\n cloned.props ||= {}\n cloned.props[prop] = mergedProps[prop]\n }\n }\n\n if (childrens.length === 1)\n return cloned\n\n childrens[firstNonCommentChildrenIndex] = cloned\n return childrens\n }\n },\n})\n"],"names":["defineComponent","renderSlotFragments","Comment","mergeProps","cloneVNode"],"mappings":";;;;;AAGO,MAAM,OAAOA,mBAAgB,CAAA;AAAA,EAClC,IAAM,EAAA,eAAA;AAAA,EACN,YAAc,EAAA,KAAA;AAAA,EACd,KAAM,CAAA,CAAA,EAAG,EAAE,KAAA,EAAO,OAAS,EAAA;AACzB,IAAA,OAAO,MAAM;AACX,MAAA,IAAI,CAAC,KAAM,CAAA,OAAA;AACT,QAAO,OAAA,IAAA;AAET,MAAA,MAAM,SAAY,GAAAC,8CAAA,CAAoB,KAAM,CAAA,OAAA,EAAS,CAAA;AACrD,MAAA,MAAM,+BAA+B,SAAU,CAAA,SAAA,CAAU,CAAS,KAAA,KAAA,KAAA,CAAM,SAASC,WAAO,CAAA;AACxF,MAAA,IAAI,4BAAiC,KAAA,EAAA;AACnC,QAAO,OAAA,SAAA;AAET,MAAM,MAAA,uBAAA,GAA0B,UAAU,4BAA4B,CAAA;AAGtE,MAAA,OAAO,wBAAwB,KAAO,EAAA,GAAA;AAEtC,MAAA,MAAM,cAAc,uBAAwB,CAAA,KAAA,GACxCC,eAAW,KAAO,EAAA,uBAAA,CAAwB,KAAK,CAC/C,GAAA,KAAA;AAEJ,MAAI,IAAA,KAAA,CAAM,KAAS,IAAA,uBAAA,CAAwB,KAAO,EAAA,KAAA;AAChD,QAAA,OAAO,wBAAwB,KAAM,CAAA,KAAA;AACvC,MAAM,MAAA,MAAA,GAASC,cAAW,CAAA,uBAAA,EAAyB,WAAW,CAAA;AAK9D,MAAA,KAAA,MAAW,QAAQ,WAAa,EAAA;AAC9B,QAAI,IAAA,IAAA,CAAK,UAAW,CAAA,IAAI,CAAG,EAAA;AACzB,UAAA,MAAA,CAAO,UAAU,EAAC;AAClB,UAAA,MAAA,CAAO,KAAM,CAAA,IAAI,CAAI,GAAA,WAAA,CAAY,IAAI,CAAA;AAAA;AACvC;AAGF,MAAA,IAAI,UAAU,MAAW,KAAA,CAAA;AACvB,QAAO,OAAA,MAAA;AAET,MAAA,SAAA,CAAU,4BAA4B,CAAI,GAAA,MAAA;AAC1C,MAAO,OAAA,SAAA;AAAA,KACT;AAAA;AAEJ,CAAC;;;;"}
1
+ {"version":3,"file":"Slot.cjs","sources":["../../src/Primitive/Slot.ts"],"sourcesContent":["import { cloneVNode, Comment, defineComponent, mergeProps } from 'vue'\nimport { renderSlotFragments } from '@/shared'\n\nexport const Slot = defineComponent({\n name: 'PrimitiveSlot',\n inheritAttrs: false,\n setup(_, { attrs, slots }) {\n return () => {\n if (!slots.default)\n return null\n\n const childrens = renderSlotFragments(slots.default())\n const firstNonCommentChildrenIndex = childrens.findIndex(child => child.type !== Comment)\n if (firstNonCommentChildrenIndex === -1)\n return childrens\n\n const firstNonCommentChildren = childrens[firstNonCommentChildrenIndex]\n\n // Remove props ref from being inferred\n delete firstNonCommentChildren.props?.ref\n\n // Manually merge props to ensure `firstNonCommentChildren.props`\n // has higher priority than `attrs` and can override `attrs`.\n // Otherwise `cloneVNode(firstNonCommentChildren, attrs)` will\n // prioritize `attrs` and override `firstNonCommentChildren.props`.\n const mergedProps = firstNonCommentChildren.props\n ? mergeProps(attrs, firstNonCommentChildren.props)\n : attrs\n const cloned = cloneVNode({ ...firstNonCommentChildren, props: {} }, mergedProps)\n\n if (childrens.length === 1)\n return cloned\n\n childrens[firstNonCommentChildrenIndex] = cloned\n return childrens\n }\n },\n})\n"],"names":["defineComponent","renderSlotFragments","Comment","mergeProps","cloneVNode"],"mappings":";;;;;AAGO,MAAM,OAAOA,mBAAgB,CAAA;AAAA,EAClC,IAAM,EAAA,eAAA;AAAA,EACN,YAAc,EAAA,KAAA;AAAA,EACd,KAAM,CAAA,CAAA,EAAG,EAAE,KAAA,EAAO,OAAS,EAAA;AACzB,IAAA,OAAO,MAAM;AACX,MAAA,IAAI,CAAC,KAAM,CAAA,OAAA;AACT,QAAO,OAAA,IAAA;AAET,MAAA,MAAM,SAAY,GAAAC,8CAAA,CAAoB,KAAM,CAAA,OAAA,EAAS,CAAA;AACrD,MAAA,MAAM,+BAA+B,SAAU,CAAA,SAAA,CAAU,CAAS,KAAA,KAAA,KAAA,CAAM,SAASC,WAAO,CAAA;AACxF,MAAA,IAAI,4BAAiC,KAAA,EAAA;AACnC,QAAO,OAAA,SAAA;AAET,MAAM,MAAA,uBAAA,GAA0B,UAAU,4BAA4B,CAAA;AAGtE,MAAA,OAAO,wBAAwB,KAAO,EAAA,GAAA;AAMtC,MAAA,MAAM,cAAc,uBAAwB,CAAA,KAAA,GACxCC,eAAW,KAAO,EAAA,uBAAA,CAAwB,KAAK,CAC/C,GAAA,KAAA;AACJ,MAAM,MAAA,MAAA,GAASC,eAAW,EAAE,GAAG,yBAAyB,KAAO,EAAA,EAAG,EAAA,EAAG,WAAW,CAAA;AAEhF,MAAA,IAAI,UAAU,MAAW,KAAA,CAAA;AACvB,QAAO,OAAA,MAAA;AAET,MAAA,SAAA,CAAU,4BAA4B,CAAI,GAAA,MAAA;AAC1C,MAAO,OAAA,SAAA;AAAA,KACT;AAAA;AAEJ,CAAC;;;;"}
@@ -15,15 +15,7 @@ const Slot = defineComponent({
15
15
  const firstNonCommentChildren = childrens[firstNonCommentChildrenIndex];
16
16
  delete firstNonCommentChildren.props?.ref;
17
17
  const mergedProps = firstNonCommentChildren.props ? mergeProps(attrs, firstNonCommentChildren.props) : attrs;
18
- if (attrs.class && firstNonCommentChildren.props?.class)
19
- delete firstNonCommentChildren.props.class;
20
- const cloned = cloneVNode(firstNonCommentChildren, mergedProps);
21
- for (const prop in mergedProps) {
22
- if (prop.startsWith("on")) {
23
- cloned.props ||= {};
24
- cloned.props[prop] = mergedProps[prop];
25
- }
26
- }
18
+ const cloned = cloneVNode({ ...firstNonCommentChildren, props: {} }, mergedProps);
27
19
  if (childrens.length === 1)
28
20
  return cloned;
29
21
  childrens[firstNonCommentChildrenIndex] = cloned;
@@ -1 +1 @@
1
- {"version":3,"file":"Slot.js","sources":["../../src/Primitive/Slot.ts"],"sourcesContent":["import { Comment, cloneVNode, defineComponent, mergeProps } from 'vue'\nimport { renderSlotFragments } from '@/shared'\n\nexport const Slot = defineComponent({\n name: 'PrimitiveSlot',\n inheritAttrs: false,\n setup(_, { attrs, slots }) {\n return () => {\n if (!slots.default)\n return null\n\n const childrens = renderSlotFragments(slots.default())\n const firstNonCommentChildrenIndex = childrens.findIndex(child => child.type !== Comment)\n if (firstNonCommentChildrenIndex === -1)\n return childrens\n\n const firstNonCommentChildren = childrens[firstNonCommentChildrenIndex]\n\n // Remove props ref from being inferred\n delete firstNonCommentChildren.props?.ref\n\n const mergedProps = firstNonCommentChildren.props\n ? mergeProps(attrs, firstNonCommentChildren.props)\n : attrs\n // Remove class to prevent duplicated\n if (attrs.class && firstNonCommentChildren.props?.class)\n delete firstNonCommentChildren.props.class\n const cloned = cloneVNode(firstNonCommentChildren, mergedProps)\n\n // Explicitly override props starting with `on`.\n // It seems cloneVNode from Vue doesn't like overriding `onXXX` props.\n // So we have to do it manually.\n for (const prop in mergedProps) {\n if (prop.startsWith('on')) {\n cloned.props ||= {}\n cloned.props[prop] = mergedProps[prop]\n }\n }\n\n if (childrens.length === 1)\n return cloned\n\n childrens[firstNonCommentChildrenIndex] = cloned\n return childrens\n }\n },\n})\n"],"names":[],"mappings":";;;AAGO,MAAM,OAAO,eAAgB,CAAA;AAAA,EAClC,IAAM,EAAA,eAAA;AAAA,EACN,YAAc,EAAA,KAAA;AAAA,EACd,KAAM,CAAA,CAAA,EAAG,EAAE,KAAA,EAAO,OAAS,EAAA;AACzB,IAAA,OAAO,MAAM;AACX,MAAA,IAAI,CAAC,KAAM,CAAA,OAAA;AACT,QAAO,OAAA,IAAA;AAET,MAAA,MAAM,SAAY,GAAA,mBAAA,CAAoB,KAAM,CAAA,OAAA,EAAS,CAAA;AACrD,MAAA,MAAM,+BAA+B,SAAU,CAAA,SAAA,CAAU,CAAS,KAAA,KAAA,KAAA,CAAM,SAAS,OAAO,CAAA;AACxF,MAAA,IAAI,4BAAiC,KAAA,EAAA;AACnC,QAAO,OAAA,SAAA;AAET,MAAM,MAAA,uBAAA,GAA0B,UAAU,4BAA4B,CAAA;AAGtE,MAAA,OAAO,wBAAwB,KAAO,EAAA,GAAA;AAEtC,MAAA,MAAM,cAAc,uBAAwB,CAAA,KAAA,GACxC,WAAW,KAAO,EAAA,uBAAA,CAAwB,KAAK,CAC/C,GAAA,KAAA;AAEJ,MAAI,IAAA,KAAA,CAAM,KAAS,IAAA,uBAAA,CAAwB,KAAO,EAAA,KAAA;AAChD,QAAA,OAAO,wBAAwB,KAAM,CAAA,KAAA;AACvC,MAAM,MAAA,MAAA,GAAS,UAAW,CAAA,uBAAA,EAAyB,WAAW,CAAA;AAK9D,MAAA,KAAA,MAAW,QAAQ,WAAa,EAAA;AAC9B,QAAI,IAAA,IAAA,CAAK,UAAW,CAAA,IAAI,CAAG,EAAA;AACzB,UAAA,MAAA,CAAO,UAAU,EAAC;AAClB,UAAA,MAAA,CAAO,KAAM,CAAA,IAAI,CAAI,GAAA,WAAA,CAAY,IAAI,CAAA;AAAA;AACvC;AAGF,MAAA,IAAI,UAAU,MAAW,KAAA,CAAA;AACvB,QAAO,OAAA,MAAA;AAET,MAAA,SAAA,CAAU,4BAA4B,CAAI,GAAA,MAAA;AAC1C,MAAO,OAAA,SAAA;AAAA,KACT;AAAA;AAEJ,CAAC;;;;"}
1
+ {"version":3,"file":"Slot.js","sources":["../../src/Primitive/Slot.ts"],"sourcesContent":["import { cloneVNode, Comment, defineComponent, mergeProps } from 'vue'\nimport { renderSlotFragments } from '@/shared'\n\nexport const Slot = defineComponent({\n name: 'PrimitiveSlot',\n inheritAttrs: false,\n setup(_, { attrs, slots }) {\n return () => {\n if (!slots.default)\n return null\n\n const childrens = renderSlotFragments(slots.default())\n const firstNonCommentChildrenIndex = childrens.findIndex(child => child.type !== Comment)\n if (firstNonCommentChildrenIndex === -1)\n return childrens\n\n const firstNonCommentChildren = childrens[firstNonCommentChildrenIndex]\n\n // Remove props ref from being inferred\n delete firstNonCommentChildren.props?.ref\n\n // Manually merge props to ensure `firstNonCommentChildren.props`\n // has higher priority than `attrs` and can override `attrs`.\n // Otherwise `cloneVNode(firstNonCommentChildren, attrs)` will\n // prioritize `attrs` and override `firstNonCommentChildren.props`.\n const mergedProps = firstNonCommentChildren.props\n ? mergeProps(attrs, firstNonCommentChildren.props)\n : attrs\n const cloned = cloneVNode({ ...firstNonCommentChildren, props: {} }, mergedProps)\n\n if (childrens.length === 1)\n return cloned\n\n childrens[firstNonCommentChildrenIndex] = cloned\n return childrens\n }\n },\n})\n"],"names":[],"mappings":";;;AAGO,MAAM,OAAO,eAAgB,CAAA;AAAA,EAClC,IAAM,EAAA,eAAA;AAAA,EACN,YAAc,EAAA,KAAA;AAAA,EACd,KAAM,CAAA,CAAA,EAAG,EAAE,KAAA,EAAO,OAAS,EAAA;AACzB,IAAA,OAAO,MAAM;AACX,MAAA,IAAI,CAAC,KAAM,CAAA,OAAA;AACT,QAAO,OAAA,IAAA;AAET,MAAA,MAAM,SAAY,GAAA,mBAAA,CAAoB,KAAM,CAAA,OAAA,EAAS,CAAA;AACrD,MAAA,MAAM,+BAA+B,SAAU,CAAA,SAAA,CAAU,CAAS,KAAA,KAAA,KAAA,CAAM,SAAS,OAAO,CAAA;AACxF,MAAA,IAAI,4BAAiC,KAAA,EAAA;AACnC,QAAO,OAAA,SAAA;AAET,MAAM,MAAA,uBAAA,GAA0B,UAAU,4BAA4B,CAAA;AAGtE,MAAA,OAAO,wBAAwB,KAAO,EAAA,GAAA;AAMtC,MAAA,MAAM,cAAc,uBAAwB,CAAA,KAAA,GACxC,WAAW,KAAO,EAAA,uBAAA,CAAwB,KAAK,CAC/C,GAAA,KAAA;AACJ,MAAM,MAAA,MAAA,GAAS,WAAW,EAAE,GAAG,yBAAyB,KAAO,EAAA,EAAG,EAAA,EAAG,WAAW,CAAA;AAEhF,MAAA,IAAI,UAAU,MAAW,KAAA,CAAA;AACvB,QAAO,OAAA,MAAA;AAET,MAAA,SAAA,CAAU,4BAA4B,CAAI,GAAA,MAAA;AAC1C,MAAO,OAAA,SAAA;AAAA,KACT;AAAA;AAEJ,CAAC;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"usePrimitiveElement.cjs","sources":["../../src/Primitive/usePrimitiveElement.ts"],"sourcesContent":["import { unrefElement } from '@vueuse/core'\nimport { type ComponentPublicInstance, computed, ref } from 'vue'\n\nexport function usePrimitiveElement<T extends ComponentPublicInstance>() {\n const primitiveElement = ref<T>()\n const currentElement = computed<HTMLElement>(() => ['#text', '#comment'].includes(primitiveElement.value?.$el.nodeName) ? primitiveElement.value?.$el.nextElementSibling : unrefElement(primitiveElement))\n\n return {\n primitiveElement,\n currentElement,\n }\n}\n"],"names":["ref","computed","unrefElement"],"mappings":";;;;;AAGO,SAAS,mBAAyD,GAAA;AACvE,EAAA,MAAM,mBAAmBA,OAAO,EAAA;AAChC,EAAA,MAAM,iBAAiBC,YAAsB,CAAA,MAAM,CAAC,OAAS,EAAA,UAAU,EAAE,QAAS,CAAA,gBAAA,CAAiB,OAAO,GAAI,CAAA,QAAQ,IAAI,gBAAiB,CAAA,KAAA,EAAO,IAAI,kBAAqB,GAAAC,iBAAA,CAAa,gBAAgB,CAAC,CAAA;AAEzM,EAAO,OAAA;AAAA,IACL,gBAAA;AAAA,IACA;AAAA,GACF;AACF;;;;"}
1
+ {"version":3,"file":"usePrimitiveElement.cjs","sources":["../../src/Primitive/usePrimitiveElement.ts"],"sourcesContent":["import type { ComponentPublicInstance } from 'vue'\nimport { unrefElement } from '@vueuse/core'\nimport { computed, ref } from 'vue'\n\nexport function usePrimitiveElement<T extends ComponentPublicInstance>() {\n const primitiveElement = ref<T>()\n const currentElement = computed<HTMLElement>(() => ['#text', '#comment'].includes(primitiveElement.value?.$el.nodeName) ? primitiveElement.value?.$el.nextElementSibling : unrefElement(primitiveElement))\n\n return {\n primitiveElement,\n currentElement,\n }\n}\n"],"names":["ref","computed","unrefElement"],"mappings":";;;;;AAIO,SAAS,mBAAyD,GAAA;AACvE,EAAA,MAAM,mBAAmBA,OAAO,EAAA;AAChC,EAAA,MAAM,iBAAiBC,YAAsB,CAAA,MAAM,CAAC,OAAS,EAAA,UAAU,EAAE,QAAS,CAAA,gBAAA,CAAiB,OAAO,GAAI,CAAA,QAAQ,IAAI,gBAAiB,CAAA,KAAA,EAAO,IAAI,kBAAqB,GAAAC,iBAAA,CAAa,gBAAgB,CAAC,CAAA;AAEzM,EAAO,OAAA;AAAA,IACL,gBAAA;AAAA,IACA;AAAA,GACF;AACF;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"usePrimitiveElement.js","sources":["../../src/Primitive/usePrimitiveElement.ts"],"sourcesContent":["import { unrefElement } from '@vueuse/core'\nimport { type ComponentPublicInstance, computed, ref } from 'vue'\n\nexport function usePrimitiveElement<T extends ComponentPublicInstance>() {\n const primitiveElement = ref<T>()\n const currentElement = computed<HTMLElement>(() => ['#text', '#comment'].includes(primitiveElement.value?.$el.nodeName) ? primitiveElement.value?.$el.nextElementSibling : unrefElement(primitiveElement))\n\n return {\n primitiveElement,\n currentElement,\n }\n}\n"],"names":[],"mappings":";;;AAGO,SAAS,mBAAyD,GAAA;AACvE,EAAA,MAAM,mBAAmB,GAAO,EAAA;AAChC,EAAA,MAAM,iBAAiB,QAAsB,CAAA,MAAM,CAAC,OAAS,EAAA,UAAU,EAAE,QAAS,CAAA,gBAAA,CAAiB,OAAO,GAAI,CAAA,QAAQ,IAAI,gBAAiB,CAAA,KAAA,EAAO,IAAI,kBAAqB,GAAA,YAAA,CAAa,gBAAgB,CAAC,CAAA;AAEzM,EAAO,OAAA;AAAA,IACL,gBAAA;AAAA,IACA;AAAA,GACF;AACF;;;;"}
1
+ {"version":3,"file":"usePrimitiveElement.js","sources":["../../src/Primitive/usePrimitiveElement.ts"],"sourcesContent":["import type { ComponentPublicInstance } from 'vue'\nimport { unrefElement } from '@vueuse/core'\nimport { computed, ref } from 'vue'\n\nexport function usePrimitiveElement<T extends ComponentPublicInstance>() {\n const primitiveElement = ref<T>()\n const currentElement = computed<HTMLElement>(() => ['#text', '#comment'].includes(primitiveElement.value?.$el.nodeName) ? primitiveElement.value?.$el.nextElementSibling : unrefElement(primitiveElement))\n\n return {\n primitiveElement,\n currentElement,\n }\n}\n"],"names":[],"mappings":";;;AAIO,SAAS,mBAAyD,GAAA;AACvE,EAAA,MAAM,mBAAmB,GAAO,EAAA;AAChC,EAAA,MAAM,iBAAiB,QAAsB,CAAA,MAAM,CAAC,OAAS,EAAA,UAAU,EAAE,QAAS,CAAA,gBAAA,CAAiB,OAAO,GAAI,CAAA,QAAQ,IAAI,gBAAiB,CAAA,KAAA,EAAO,IAAI,kBAAqB,GAAA,YAAA,CAAa,gBAAgB,CAAC,CAAA;AAEzM,EAAO,OAAA;AAAA,IACL,gBAAA;AAAA,IACA;AAAA,GACF;AACF;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"ProgressIndicator.cjs","sources":["../../src/Progress/ProgressIndicator.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { PrimitiveProps } from '@/Primitive'\nimport { useForwardExpose } from '@/shared'\n\nexport interface ProgressIndicatorProps extends PrimitiveProps {}\n</script>\n\n<script setup lang=\"ts\">\nimport { injectProgressRootContext } from './ProgressRoot.vue'\nimport { Primitive } from '@/Primitive'\n\nconst props = defineProps<ProgressIndicatorProps>()\n\nconst rootContext = injectProgressRootContext()\nuseForwardExpose()\n</script>\n\n<template>\n <Primitive\n v-bind=\"props\"\n :data-state=\"rootContext.progressState.value\"\n :data-value=\"rootContext.modelValue?.value ?? undefined\"\n :data-max=\"rootContext.max.value\"\n >\n <slot />\n </Primitive>\n</template>\n"],"names":["injectProgressRootContext","useForwardExpose"],"mappings":";;;;;;;;;;;;;;AAWA,IAAA,MAAM,KAAQ,GAAA,OAAA;AAEd,IAAA,MAAM,cAAcA,+CAA0B,EAAA;AAC9C,IAAiBC,wCAAA,EAAA;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"ProgressIndicator.cjs","sources":["../../src/Progress/ProgressIndicator.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { PrimitiveProps } from '@/Primitive'\nimport { useForwardExpose } from '@/shared'\n\nexport interface ProgressIndicatorProps extends PrimitiveProps {}\n</script>\n\n<script setup lang=\"ts\">\nimport { Primitive } from '@/Primitive'\nimport { injectProgressRootContext } from './ProgressRoot.vue'\n\nconst props = defineProps<ProgressIndicatorProps>()\n\nconst rootContext = injectProgressRootContext()\nuseForwardExpose()\n</script>\n\n<template>\n <Primitive\n v-bind=\"props\"\n :data-state=\"rootContext.progressState.value\"\n :data-value=\"rootContext.modelValue?.value ?? undefined\"\n :data-max=\"rootContext.max.value\"\n >\n <slot />\n </Primitive>\n</template>\n"],"names":["injectProgressRootContext","useForwardExpose"],"mappings":";;;;;;;;;;;;;;AAWA,IAAA,MAAM,KAAQ,GAAA,OAAA;AAEd,IAAA,MAAM,cAAcA,+CAA0B,EAAA;AAC9C,IAAiBC,wCAAA,EAAA;;;;;;;;;;;;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"ProgressIndicator.js","sources":["../../src/Progress/ProgressIndicator.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { PrimitiveProps } from '@/Primitive'\nimport { useForwardExpose } from '@/shared'\n\nexport interface ProgressIndicatorProps extends PrimitiveProps {}\n</script>\n\n<script setup lang=\"ts\">\nimport { injectProgressRootContext } from './ProgressRoot.vue'\nimport { Primitive } from '@/Primitive'\n\nconst props = defineProps<ProgressIndicatorProps>()\n\nconst rootContext = injectProgressRootContext()\nuseForwardExpose()\n</script>\n\n<template>\n <Primitive\n v-bind=\"props\"\n :data-state=\"rootContext.progressState.value\"\n :data-value=\"rootContext.modelValue?.value ?? undefined\"\n :data-max=\"rootContext.max.value\"\n >\n <slot />\n </Primitive>\n</template>\n"],"names":[],"mappings":";;;;;;;;;;;;AAWA,IAAA,MAAM,KAAQ,GAAA,OAAA;AAEd,IAAA,MAAM,cAAc,yBAA0B,EAAA;AAC9C,IAAiB,gBAAA,EAAA;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"ProgressIndicator.js","sources":["../../src/Progress/ProgressIndicator.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { PrimitiveProps } from '@/Primitive'\nimport { useForwardExpose } from '@/shared'\n\nexport interface ProgressIndicatorProps extends PrimitiveProps {}\n</script>\n\n<script setup lang=\"ts\">\nimport { Primitive } from '@/Primitive'\nimport { injectProgressRootContext } from './ProgressRoot.vue'\n\nconst props = defineProps<ProgressIndicatorProps>()\n\nconst rootContext = injectProgressRootContext()\nuseForwardExpose()\n</script>\n\n<template>\n <Primitive\n v-bind=\"props\"\n :data-state=\"rootContext.progressState.value\"\n :data-value=\"rootContext.modelValue?.value ?? undefined\"\n :data-max=\"rootContext.max.value\"\n >\n <slot />\n </Primitive>\n</template>\n"],"names":[],"mappings":";;;;;;;;;;;;AAWA,IAAA,MAAM,KAAQ,GAAA,OAAA;AAEd,IAAA,MAAM,cAAc,yBAA0B,EAAA;AAC9C,IAAiB,gBAAA,EAAA;;;;;;;;;;;;;;;;;;"}
@@ -36,7 +36,8 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
36
36
  props: {
37
37
  modelValue: {},
38
38
  max: { default: DEFAULT_MAX },
39
- getValueLabel: { type: Function, default: (value, max) => `${Math.round(value / max * DEFAULT_MAX)}%` },
39
+ getValueLabel: { type: Function, default: (value, max) => isNumber(value) ? `${Math.round(value / max * DEFAULT_MAX)}%` : void 0 },
40
+ getValueText: {},
40
41
  asChild: { type: Boolean },
41
42
  as: {}
42
43
  },
@@ -90,7 +91,7 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
90
91
  "aria-valuemax": vue.unref(max),
91
92
  "aria-valuemin": 0,
92
93
  "aria-valuenow": isNumber(vue.unref(modelValue)) ? vue.unref(modelValue) : void 0,
93
- "aria-valuetext": _ctx.getValueLabel(vue.unref(modelValue), vue.unref(max)),
94
+ "aria-valuetext": _ctx.getValueText?.(vue.unref(modelValue), vue.unref(max)),
94
95
  "aria-label": _ctx.getValueLabel(vue.unref(modelValue), vue.unref(max)),
95
96
  role: "progressbar",
96
97
  "data-state": progressState.value,
@@ -1 +1 @@
1
- {"version":3,"file":"ProgressRoot.cjs","sources":["../../src/Progress/ProgressRoot.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { ComputedRef, Ref } from 'vue'\nimport type { PrimitiveProps } from '@/Primitive'\nimport { createContext, isNullish, useForwardExpose } from '@/shared'\n\nexport type ProgressRootEmits = {\n /** Event handler called when the progress value changes */\n 'update:modelValue': [value: string[] | undefined]\n /** Event handler called when the max value changes */\n 'update:max': [value: number]\n}\n\nexport interface ProgressRootProps extends PrimitiveProps {\n /** The progress value. Can be bind as `v-model`. */\n modelValue?: number | null\n /** The maximum progress value. */\n max?: number\n /**\n * A function to get the accessible label text representing the current value in a human-readable format.\n *\n * If not provided, the value label will be read as the numeric value as a percentage of the max value.\n */\n getValueLabel?: (value: number, max: number) => string\n}\n\nconst DEFAULT_MAX = 100\n\ninterface ProgressRootContext {\n modelValue?: Readonly<Ref<ProgressRootProps['modelValue']>>\n max: Readonly<Ref<number>>\n progressState: ComputedRef<ProgressState>\n}\n\nexport const [injectProgressRootContext, provideProgressRootContext]\n = createContext<ProgressRootContext>('ProgressRoot')\n\nexport type ProgressState = 'indeterminate' | 'loading' | 'complete'\n\nconst isNumber = (v: any): v is number => typeof v === 'number'\n\nfunction validateValue(value: any, max: number): number | null {\n const isValidValueError\n = isNullish(value)\n || (isNumber(value) && !Number.isNaN(value) && value <= max && value >= 0)\n\n if (isValidValueError)\n return value as null\n\n console.error(`Invalid prop \\`value\\` of value \\`${value}\\` supplied to \\`ProgressRoot\\`. The \\`value\\` prop must be:\n - a positive number\n - less than the value passed to \\`max\\` (or ${DEFAULT_MAX} if no \\`max\\` prop is set)\n - \\`null\\` or \\`undefined\\` if the progress is indeterminate.\n\nDefaulting to \\`null\\`.`)\n return null\n}\n\nfunction validateMax(max: number): number {\n const isValidMaxError = isNumber(max) && !Number.isNaN(max) && max > 0\n\n if (isValidMaxError)\n return max\n\n console.error(\n `Invalid prop \\`max\\` of value \\`${max}\\` supplied to \\`ProgressRoot\\`. Only numbers greater than 0 are valid max values. Defaulting to \\`${DEFAULT_MAX}\\`.`,\n )\n return DEFAULT_MAX\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { useVModel } from '@vueuse/core'\nimport { computed, nextTick, watch } from 'vue'\nimport { Primitive } from '@/Primitive'\n\nconst props = withDefaults(defineProps<ProgressRootProps>(), {\n max: DEFAULT_MAX,\n getValueLabel: (value: number, max: number) =>\n `${Math.round((value / max) * DEFAULT_MAX)}%`,\n})\n\nconst emit = defineEmits<ProgressRootEmits>()\n\ndefineSlots<{\n default: (props: {\n /** Current input values */\n modelValue: typeof modelValue.value\n }) => any\n}>()\n\nuseForwardExpose()\nconst modelValue = useVModel(props, 'modelValue', emit, {\n passive: (props.modelValue === undefined) as false,\n})\n\nconst max = useVModel(props, 'max', emit, {\n passive: (props.max === undefined) as false,\n})\n\n// ------- Watch for correct values -------\nwatch(\n () => modelValue.value,\n async (value) => {\n const correctedValue = validateValue(value, props.max)\n if (correctedValue !== value) {\n await nextTick()\n modelValue.value = correctedValue\n }\n },\n { immediate: true },\n)\n\nwatch(\n () => props.max,\n (newMax) => {\n const correctedMax = validateMax(props.max)\n if (correctedMax !== newMax)\n max.value = correctedMax\n },\n { immediate: true },\n)\n// ------- End of watch for correct values -------\n\nconst progressState = computed<ProgressState>(() => {\n if (isNullish(modelValue.value))\n return 'indeterminate'\n if (modelValue.value === max.value)\n return 'complete'\n return 'loading'\n})\n\nprovideProgressRootContext({\n modelValue,\n max,\n progressState,\n})\n</script>\n\n<template>\n <Primitive\n :as-child=\"asChild\"\n :as=\"as\"\n :aria-valuemax=\"max\"\n :aria-valuemin=\"0\"\n :aria-valuenow=\"isNumber(modelValue) ? modelValue : undefined\"\n :aria-valuetext=\"getValueLabel(modelValue!, max)\"\n :aria-label=\"getValueLabel(modelValue!, max)\"\n role=\"progressbar\"\n :data-state=\"progressState\"\n :data-value=\"modelValue ?? undefined\"\n :data-max=\"max\"\n >\n <slot :model-value=\"modelValue\" />\n </Primitive>\n</template>\n"],"names":["createContext","isNullish","useForwardExpose","useVModel","watch","nextTick","computed"],"mappings":";;;;;;;;;AAyBA,MAAM,WAAc,GAAA,GAAA;AAQb,MAAM,CAAC,yBAAA,EAA2B,0BAA0B,CAAA,GAC/DA,mCAAmC,cAAc;AAIrD,MAAM,QAAW,GAAA,CAAC,CAAwB,KAAA,OAAO,CAAM,KAAA,QAAA;AAEvD,SAAS,aAAA,CAAc,OAAY,GAA4B,EAAA;AAC7D,EAAA,MAAM,iBACF,GAAAC,wBAAA,CAAU,KAAK,CAAA,IACb,SAAS,KAAK,CAAA,IAAK,CAAC,MAAA,CAAO,KAAM,CAAA,KAAK,CAAK,IAAA,KAAA,IAAS,OAAO,KAAS,IAAA,CAAA;AAE1E,EAAI,IAAA,iBAAA;AACF,IAAO,OAAA,KAAA;AAET,EAAQ,OAAA,CAAA,KAAA,CAAM,qCAAqC,KAAK,CAAA;AAAA;AAAA,8CAAA,EAEV,WAAW,CAAA;AAAA;;AAAA,uBAGnC,CAAA,CAAA;AACtB,EAAO,OAAA,IAAA;AACT;AAEA,SAAS,YAAY,GAAqB,EAAA;AACxC,EAAM,MAAA,eAAA,GAAkB,SAAS,GAAG,CAAA,IAAK,CAAC,MAAO,CAAA,KAAA,CAAM,GAAG,CAAA,IAAK,GAAM,GAAA,CAAA;AAErE,EAAI,IAAA,eAAA;AACF,IAAO,OAAA,GAAA;AAET,EAAQ,OAAA,CAAA,KAAA;AAAA,IACN,CAAA,gCAAA,EAAmC,GAAG,CAAA,mGAAA,EAAsG,WAAW,CAAA,GAAA;AAAA,GACzJ;AACA,EAAO,OAAA,WAAA;AACT;;;;;;;;;;;;AAQA,IAAA,MAAM,KAAQ,GAAA,OAAA;AAMd,IAAA,MAAM,IAAO,GAAA,MAAA;AASb,IAAiBC,wCAAA,EAAA;AACjB,IAAA,MAAM,UAAa,GAAAC,cAAA,CAAU,KAAO,EAAA,YAAA,EAAc,IAAM,EAAA;AAAA,MACtD,OAAA,EAAU,MAAM,UAAe,KAAA;AAAA,KAChC,CAAA;AAED,IAAA,MAAM,GAAM,GAAAA,cAAA,CAAU,KAAO,EAAA,KAAA,EAAO,IAAM,EAAA;AAAA,MACxC,OAAA,EAAU,MAAM,GAAQ,KAAA;AAAA,KACzB,CAAA;AAGD,IAAAC,SAAA;AAAA,MACE,MAAM,UAAW,CAAA,KAAA;AAAA,MACjB,OAAO,KAAU,KAAA;AACf,QAAA,MAAM,cAAiB,GAAA,aAAA,CAAc,KAAO,EAAA,KAAA,CAAM,GAAG,CAAA;AACrD,QAAA,IAAI,mBAAmB,KAAO,EAAA;AAC5B,UAAA,MAAMC,YAAS,EAAA;AACf,UAAA,UAAA,CAAW,KAAQ,GAAA,cAAA;AAAA;AACrB,OACF;AAAA,MACA,EAAE,WAAW,IAAK;AAAA,KACpB;AAEA,IAAAD,SAAA;AAAA,MACE,MAAM,KAAM,CAAA,GAAA;AAAA,MACZ,CAAC,MAAW,KAAA;AACV,QAAM,MAAA,YAAA,GAAe,WAAY,CAAA,KAAA,CAAM,GAAG,CAAA;AAC1C,QAAA,IAAI,YAAiB,KAAA,MAAA;AACnB,UAAA,GAAA,CAAI,KAAQ,GAAA,YAAA;AAAA,OAChB;AAAA,MACA,EAAE,WAAW,IAAK;AAAA,KACpB;AAGA,IAAM,MAAA,aAAA,GAAgBE,aAAwB,MAAM;AAClD,MAAI,IAAAL,wBAAA,CAAU,WAAW,KAAK,CAAA;AAC5B,QAAO,OAAA,eAAA;AACT,MAAI,IAAA,UAAA,CAAW,UAAU,GAAI,CAAA,KAAA;AAC3B,QAAO,OAAA,UAAA;AACT,MAAO,OAAA,SAAA;AAAA,KACR,CAAA;AAED,IAA2B,0BAAA,CAAA;AAAA,MACzB,UAAA;AAAA,MACA,GAAA;AAAA,MACA;AAAA,KACD,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"ProgressRoot.cjs","sources":["../../src/Progress/ProgressRoot.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { ComputedRef, Ref } from 'vue'\nimport type { PrimitiveProps } from '@/Primitive'\nimport { createContext, isNullish, useForwardExpose } from '@/shared'\n\nexport type ProgressRootEmits = {\n /** Event handler called when the progress value changes */\n 'update:modelValue': [value: string[] | undefined]\n /** Event handler called when the max value changes */\n 'update:max': [value: number]\n}\n\nexport interface ProgressRootProps extends PrimitiveProps {\n /** The progress value. Can be bind as `v-model`. */\n modelValue?: number | null\n /** The maximum progress value. */\n max?: number\n /**\n * A function to get the accessible label text in a human-readable format.\n *\n * If not provided, the value label will be read as the numeric value as a percentage of the max value.\n */\n getValueLabel?: (value: number | null | undefined, max: number) => string | undefined\n /**\n * A function to get the accessible value text representing the current value in a human-readable format.\n */\n getValueText?: (value: number | null | undefined, max: number) => string | undefined\n}\n\nconst DEFAULT_MAX = 100\n\ninterface ProgressRootContext {\n modelValue?: Readonly<Ref<ProgressRootProps['modelValue']>>\n max: Readonly<Ref<number>>\n progressState: ComputedRef<ProgressState>\n}\n\nexport const [injectProgressRootContext, provideProgressRootContext]\n = createContext<ProgressRootContext>('ProgressRoot')\n\nexport type ProgressState = 'indeterminate' | 'loading' | 'complete'\n\nconst isNumber = (v: any): v is number => typeof v === 'number'\n\nfunction validateValue(value: any, max: number): number | null {\n const isValidValueError\n = isNullish(value)\n || (isNumber(value) && !Number.isNaN(value) && value <= max && value >= 0)\n\n if (isValidValueError)\n return value as null\n\n console.error(`Invalid prop \\`value\\` of value \\`${value}\\` supplied to \\`ProgressRoot\\`. The \\`value\\` prop must be:\n - a positive number\n - less than the value passed to \\`max\\` (or ${DEFAULT_MAX} if no \\`max\\` prop is set)\n - \\`null\\` or \\`undefined\\` if the progress is indeterminate.\n\nDefaulting to \\`null\\`.`)\n return null\n}\n\nfunction validateMax(max: number): number {\n const isValidMaxError = isNumber(max) && !Number.isNaN(max) && max > 0\n\n if (isValidMaxError)\n return max\n\n console.error(\n `Invalid prop \\`max\\` of value \\`${max}\\` supplied to \\`ProgressRoot\\`. Only numbers greater than 0 are valid max values. Defaulting to \\`${DEFAULT_MAX}\\`.`,\n )\n return DEFAULT_MAX\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { useVModel } from '@vueuse/core'\nimport { computed, nextTick, watch } from 'vue'\nimport { Primitive } from '@/Primitive'\n\nconst props = withDefaults(defineProps<ProgressRootProps>(), {\n max: DEFAULT_MAX,\n getValueLabel: (value: number | null | undefined, max: number) =>\n isNumber(value) ? `${Math.round((value / max) * DEFAULT_MAX)}%` : undefined,\n})\n\nconst emit = defineEmits<ProgressRootEmits>()\n\ndefineSlots<{\n default?: (props: {\n /** Current input values */\n modelValue: typeof modelValue.value\n }) => any\n}>()\n\nuseForwardExpose()\nconst modelValue = useVModel(props, 'modelValue', emit, {\n passive: (props.modelValue === undefined) as false,\n})\n\nconst max = useVModel(props, 'max', emit, {\n passive: (props.max === undefined) as false,\n})\n\n// ------- Watch for correct values -------\nwatch(\n () => modelValue.value,\n async (value) => {\n const correctedValue = validateValue(value, props.max)\n if (correctedValue !== value) {\n await nextTick()\n modelValue.value = correctedValue\n }\n },\n { immediate: true },\n)\n\nwatch(\n () => props.max,\n (newMax) => {\n const correctedMax = validateMax(props.max)\n if (correctedMax !== newMax)\n max.value = correctedMax\n },\n { immediate: true },\n)\n// ------- End of watch for correct values -------\n\nconst progressState = computed<ProgressState>(() => {\n if (isNullish(modelValue.value))\n return 'indeterminate'\n if (modelValue.value === max.value)\n return 'complete'\n return 'loading'\n})\n\nprovideProgressRootContext({\n modelValue,\n max,\n progressState,\n})\n</script>\n\n<template>\n <Primitive\n :as-child=\"asChild\"\n :as=\"as\"\n :aria-valuemax=\"max\"\n :aria-valuemin=\"0\"\n :aria-valuenow=\"isNumber(modelValue) ? modelValue : undefined\"\n :aria-valuetext=\"getValueText?.(modelValue, max)\"\n :aria-label=\"getValueLabel(modelValue, max)\"\n role=\"progressbar\"\n :data-state=\"progressState\"\n :data-value=\"modelValue ?? undefined\"\n :data-max=\"max\"\n >\n <slot :model-value=\"modelValue\" />\n </Primitive>\n</template>\n"],"names":["createContext","isNullish","useForwardExpose","useVModel","watch","nextTick","computed"],"mappings":";;;;;;;;;AA6BA,MAAM,WAAc,GAAA,GAAA;AAQb,MAAM,CAAC,yBAAA,EAA2B,0BAA0B,CAAA,GAC/DA,mCAAmC,cAAc;AAIrD,MAAM,QAAW,GAAA,CAAC,CAAwB,KAAA,OAAO,CAAM,KAAA,QAAA;AAEvD,SAAS,aAAA,CAAc,OAAY,GAA4B,EAAA;AAC7D,EAAA,MAAM,iBACF,GAAAC,wBAAA,CAAU,KAAK,CAAA,IACX,SAAS,KAAK,CAAA,IAAK,CAAC,MAAA,CAAO,KAAM,CAAA,KAAK,CAAK,IAAA,KAAA,IAAS,OAAO,KAAS,IAAA,CAAA;AAE5E,EAAI,IAAA,iBAAA;AACF,IAAO,OAAA,KAAA;AAET,EAAQ,OAAA,CAAA,KAAA,CAAM,qCAAqC,KAAK,CAAA;AAAA;AAAA,8CAAA,EAEV,WAAW,CAAA;AAAA;;AAAA,uBAGnC,CAAA,CAAA;AACtB,EAAO,OAAA,IAAA;AACT;AAEA,SAAS,YAAY,GAAqB,EAAA;AACxC,EAAM,MAAA,eAAA,GAAkB,SAAS,GAAG,CAAA,IAAK,CAAC,MAAO,CAAA,KAAA,CAAM,GAAG,CAAA,IAAK,GAAM,GAAA,CAAA;AAErE,EAAI,IAAA,eAAA;AACF,IAAO,OAAA,GAAA;AAET,EAAQ,OAAA,CAAA,KAAA;AAAA,IACN,CAAA,gCAAA,EAAmC,GAAG,CAAA,mGAAA,EAAsG,WAAW,CAAA,GAAA;AAAA,GACzJ;AACA,EAAO,OAAA,WAAA;AACT;;;;;;;;;;;;;AAQA,IAAA,MAAM,KAAQ,GAAA,OAAA;AAMd,IAAA,MAAM,IAAO,GAAA,MAAA;AASb,IAAiBC,wCAAA,EAAA;AACjB,IAAA,MAAM,UAAa,GAAAC,cAAA,CAAU,KAAO,EAAA,YAAA,EAAc,IAAM,EAAA;AAAA,MACtD,OAAA,EAAU,MAAM,UAAe,KAAA;AAAA,KAChC,CAAA;AAED,IAAA,MAAM,GAAM,GAAAA,cAAA,CAAU,KAAO,EAAA,KAAA,EAAO,IAAM,EAAA;AAAA,MACxC,OAAA,EAAU,MAAM,GAAQ,KAAA;AAAA,KACzB,CAAA;AAGD,IAAAC,SAAA;AAAA,MACE,MAAM,UAAW,CAAA,KAAA;AAAA,MACjB,OAAO,KAAU,KAAA;AACf,QAAA,MAAM,cAAiB,GAAA,aAAA,CAAc,KAAO,EAAA,KAAA,CAAM,GAAG,CAAA;AACrD,QAAA,IAAI,mBAAmB,KAAO,EAAA;AAC5B,UAAA,MAAMC,YAAS,EAAA;AACf,UAAA,UAAA,CAAW,KAAQ,GAAA,cAAA;AAAA;AACrB,OACF;AAAA,MACA,EAAE,WAAW,IAAK;AAAA,KACpB;AAEA,IAAAD,SAAA;AAAA,MACE,MAAM,KAAM,CAAA,GAAA;AAAA,MACZ,CAAC,MAAW,KAAA;AACV,QAAM,MAAA,YAAA,GAAe,WAAY,CAAA,KAAA,CAAM,GAAG,CAAA;AAC1C,QAAA,IAAI,YAAiB,KAAA,MAAA;AACnB,UAAA,GAAA,CAAI,KAAQ,GAAA,YAAA;AAAA,OAChB;AAAA,MACA,EAAE,WAAW,IAAK;AAAA,KACpB;AAGA,IAAM,MAAA,aAAA,GAAgBE,aAAwB,MAAM;AAClD,MAAI,IAAAL,wBAAA,CAAU,WAAW,KAAK,CAAA;AAC5B,QAAO,OAAA,eAAA;AACT,MAAI,IAAA,UAAA,CAAW,UAAU,GAAI,CAAA,KAAA;AAC3B,QAAO,OAAA,UAAA;AACT,MAAO,OAAA,SAAA;AAAA,KACR,CAAA;AAED,IAA2B,0BAAA,CAAA;AAAA,MACzB,UAAA;AAAA,MACA,GAAA;AAAA,MACA;AAAA,KACD,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -34,7 +34,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
34
34
  props: {
35
35
  modelValue: {},
36
36
  max: { default: DEFAULT_MAX },
37
- getValueLabel: { type: Function, default: (value, max) => `${Math.round(value / max * DEFAULT_MAX)}%` },
37
+ getValueLabel: { type: Function, default: (value, max) => isNumber(value) ? `${Math.round(value / max * DEFAULT_MAX)}%` : void 0 },
38
+ getValueText: {},
38
39
  asChild: { type: Boolean },
39
40
  as: {}
40
41
  },
@@ -88,7 +89,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
88
89
  "aria-valuemax": unref(max),
89
90
  "aria-valuemin": 0,
90
91
  "aria-valuenow": isNumber(unref(modelValue)) ? unref(modelValue) : void 0,
91
- "aria-valuetext": _ctx.getValueLabel(unref(modelValue), unref(max)),
92
+ "aria-valuetext": _ctx.getValueText?.(unref(modelValue), unref(max)),
92
93
  "aria-label": _ctx.getValueLabel(unref(modelValue), unref(max)),
93
94
  role: "progressbar",
94
95
  "data-state": progressState.value,
@@ -1 +1 @@
1
- {"version":3,"file":"ProgressRoot.js","sources":["../../src/Progress/ProgressRoot.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { ComputedRef, Ref } from 'vue'\nimport type { PrimitiveProps } from '@/Primitive'\nimport { createContext, isNullish, useForwardExpose } from '@/shared'\n\nexport type ProgressRootEmits = {\n /** Event handler called when the progress value changes */\n 'update:modelValue': [value: string[] | undefined]\n /** Event handler called when the max value changes */\n 'update:max': [value: number]\n}\n\nexport interface ProgressRootProps extends PrimitiveProps {\n /** The progress value. Can be bind as `v-model`. */\n modelValue?: number | null\n /** The maximum progress value. */\n max?: number\n /**\n * A function to get the accessible label text representing the current value in a human-readable format.\n *\n * If not provided, the value label will be read as the numeric value as a percentage of the max value.\n */\n getValueLabel?: (value: number, max: number) => string\n}\n\nconst DEFAULT_MAX = 100\n\ninterface ProgressRootContext {\n modelValue?: Readonly<Ref<ProgressRootProps['modelValue']>>\n max: Readonly<Ref<number>>\n progressState: ComputedRef<ProgressState>\n}\n\nexport const [injectProgressRootContext, provideProgressRootContext]\n = createContext<ProgressRootContext>('ProgressRoot')\n\nexport type ProgressState = 'indeterminate' | 'loading' | 'complete'\n\nconst isNumber = (v: any): v is number => typeof v === 'number'\n\nfunction validateValue(value: any, max: number): number | null {\n const isValidValueError\n = isNullish(value)\n || (isNumber(value) && !Number.isNaN(value) && value <= max && value >= 0)\n\n if (isValidValueError)\n return value as null\n\n console.error(`Invalid prop \\`value\\` of value \\`${value}\\` supplied to \\`ProgressRoot\\`. The \\`value\\` prop must be:\n - a positive number\n - less than the value passed to \\`max\\` (or ${DEFAULT_MAX} if no \\`max\\` prop is set)\n - \\`null\\` or \\`undefined\\` if the progress is indeterminate.\n\nDefaulting to \\`null\\`.`)\n return null\n}\n\nfunction validateMax(max: number): number {\n const isValidMaxError = isNumber(max) && !Number.isNaN(max) && max > 0\n\n if (isValidMaxError)\n return max\n\n console.error(\n `Invalid prop \\`max\\` of value \\`${max}\\` supplied to \\`ProgressRoot\\`. Only numbers greater than 0 are valid max values. Defaulting to \\`${DEFAULT_MAX}\\`.`,\n )\n return DEFAULT_MAX\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { useVModel } from '@vueuse/core'\nimport { computed, nextTick, watch } from 'vue'\nimport { Primitive } from '@/Primitive'\n\nconst props = withDefaults(defineProps<ProgressRootProps>(), {\n max: DEFAULT_MAX,\n getValueLabel: (value: number, max: number) =>\n `${Math.round((value / max) * DEFAULT_MAX)}%`,\n})\n\nconst emit = defineEmits<ProgressRootEmits>()\n\ndefineSlots<{\n default: (props: {\n /** Current input values */\n modelValue: typeof modelValue.value\n }) => any\n}>()\n\nuseForwardExpose()\nconst modelValue = useVModel(props, 'modelValue', emit, {\n passive: (props.modelValue === undefined) as false,\n})\n\nconst max = useVModel(props, 'max', emit, {\n passive: (props.max === undefined) as false,\n})\n\n// ------- Watch for correct values -------\nwatch(\n () => modelValue.value,\n async (value) => {\n const correctedValue = validateValue(value, props.max)\n if (correctedValue !== value) {\n await nextTick()\n modelValue.value = correctedValue\n }\n },\n { immediate: true },\n)\n\nwatch(\n () => props.max,\n (newMax) => {\n const correctedMax = validateMax(props.max)\n if (correctedMax !== newMax)\n max.value = correctedMax\n },\n { immediate: true },\n)\n// ------- End of watch for correct values -------\n\nconst progressState = computed<ProgressState>(() => {\n if (isNullish(modelValue.value))\n return 'indeterminate'\n if (modelValue.value === max.value)\n return 'complete'\n return 'loading'\n})\n\nprovideProgressRootContext({\n modelValue,\n max,\n progressState,\n})\n</script>\n\n<template>\n <Primitive\n :as-child=\"asChild\"\n :as=\"as\"\n :aria-valuemax=\"max\"\n :aria-valuemin=\"0\"\n :aria-valuenow=\"isNumber(modelValue) ? modelValue : undefined\"\n :aria-valuetext=\"getValueLabel(modelValue!, max)\"\n :aria-label=\"getValueLabel(modelValue!, max)\"\n role=\"progressbar\"\n :data-state=\"progressState\"\n :data-value=\"modelValue ?? undefined\"\n :data-max=\"max\"\n >\n <slot :model-value=\"modelValue\" />\n </Primitive>\n</template>\n"],"names":[],"mappings":";;;;;;;AAyBA,MAAM,WAAc,GAAA,GAAA;AAQb,MAAM,CAAC,yBAAA,EAA2B,0BAA0B,CAAA,GAC/D,cAAmC,cAAc;AAIrD,MAAM,QAAW,GAAA,CAAC,CAAwB,KAAA,OAAO,CAAM,KAAA,QAAA;AAEvD,SAAS,aAAA,CAAc,OAAY,GAA4B,EAAA;AAC7D,EAAA,MAAM,iBACF,GAAA,SAAA,CAAU,KAAK,CAAA,IACb,SAAS,KAAK,CAAA,IAAK,CAAC,MAAA,CAAO,KAAM,CAAA,KAAK,CAAK,IAAA,KAAA,IAAS,OAAO,KAAS,IAAA,CAAA;AAE1E,EAAI,IAAA,iBAAA;AACF,IAAO,OAAA,KAAA;AAET,EAAQ,OAAA,CAAA,KAAA,CAAM,qCAAqC,KAAK,CAAA;AAAA;AAAA,8CAAA,EAEV,WAAW,CAAA;AAAA;;AAAA,uBAGnC,CAAA,CAAA;AACtB,EAAO,OAAA,IAAA;AACT;AAEA,SAAS,YAAY,GAAqB,EAAA;AACxC,EAAM,MAAA,eAAA,GAAkB,SAAS,GAAG,CAAA,IAAK,CAAC,MAAO,CAAA,KAAA,CAAM,GAAG,CAAA,IAAK,GAAM,GAAA,CAAA;AAErE,EAAI,IAAA,eAAA;AACF,IAAO,OAAA,GAAA;AAET,EAAQ,OAAA,CAAA,KAAA;AAAA,IACN,CAAA,gCAAA,EAAmC,GAAG,CAAA,mGAAA,EAAsG,WAAW,CAAA,GAAA;AAAA,GACzJ;AACA,EAAO,OAAA,WAAA;AACT;;;;;;;;;;;;AAQA,IAAA,MAAM,KAAQ,GAAA,OAAA;AAMd,IAAA,MAAM,IAAO,GAAA,MAAA;AASb,IAAiB,gBAAA,EAAA;AACjB,IAAA,MAAM,UAAa,GAAA,SAAA,CAAU,KAAO,EAAA,YAAA,EAAc,IAAM,EAAA;AAAA,MACtD,OAAA,EAAU,MAAM,UAAe,KAAA;AAAA,KAChC,CAAA;AAED,IAAA,MAAM,GAAM,GAAA,SAAA,CAAU,KAAO,EAAA,KAAA,EAAO,IAAM,EAAA;AAAA,MACxC,OAAA,EAAU,MAAM,GAAQ,KAAA;AAAA,KACzB,CAAA;AAGD,IAAA,KAAA;AAAA,MACE,MAAM,UAAW,CAAA,KAAA;AAAA,MACjB,OAAO,KAAU,KAAA;AACf,QAAA,MAAM,cAAiB,GAAA,aAAA,CAAc,KAAO,EAAA,KAAA,CAAM,GAAG,CAAA;AACrD,QAAA,IAAI,mBAAmB,KAAO,EAAA;AAC5B,UAAA,MAAM,QAAS,EAAA;AACf,UAAA,UAAA,CAAW,KAAQ,GAAA,cAAA;AAAA;AACrB,OACF;AAAA,MACA,EAAE,WAAW,IAAK;AAAA,KACpB;AAEA,IAAA,KAAA;AAAA,MACE,MAAM,KAAM,CAAA,GAAA;AAAA,MACZ,CAAC,MAAW,KAAA;AACV,QAAM,MAAA,YAAA,GAAe,WAAY,CAAA,KAAA,CAAM,GAAG,CAAA;AAC1C,QAAA,IAAI,YAAiB,KAAA,MAAA;AACnB,UAAA,GAAA,CAAI,KAAQ,GAAA,YAAA;AAAA,OAChB;AAAA,MACA,EAAE,WAAW,IAAK;AAAA,KACpB;AAGA,IAAM,MAAA,aAAA,GAAgB,SAAwB,MAAM;AAClD,MAAI,IAAA,SAAA,CAAU,WAAW,KAAK,CAAA;AAC5B,QAAO,OAAA,eAAA;AACT,MAAI,IAAA,UAAA,CAAW,UAAU,GAAI,CAAA,KAAA;AAC3B,QAAO,OAAA,UAAA;AACT,MAAO,OAAA,SAAA;AAAA,KACR,CAAA;AAED,IAA2B,0BAAA,CAAA;AAAA,MACzB,UAAA;AAAA,MACA,GAAA;AAAA,MACA;AAAA,KACD,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"ProgressRoot.js","sources":["../../src/Progress/ProgressRoot.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { ComputedRef, Ref } from 'vue'\nimport type { PrimitiveProps } from '@/Primitive'\nimport { createContext, isNullish, useForwardExpose } from '@/shared'\n\nexport type ProgressRootEmits = {\n /** Event handler called when the progress value changes */\n 'update:modelValue': [value: string[] | undefined]\n /** Event handler called when the max value changes */\n 'update:max': [value: number]\n}\n\nexport interface ProgressRootProps extends PrimitiveProps {\n /** The progress value. Can be bind as `v-model`. */\n modelValue?: number | null\n /** The maximum progress value. */\n max?: number\n /**\n * A function to get the accessible label text in a human-readable format.\n *\n * If not provided, the value label will be read as the numeric value as a percentage of the max value.\n */\n getValueLabel?: (value: number | null | undefined, max: number) => string | undefined\n /**\n * A function to get the accessible value text representing the current value in a human-readable format.\n */\n getValueText?: (value: number | null | undefined, max: number) => string | undefined\n}\n\nconst DEFAULT_MAX = 100\n\ninterface ProgressRootContext {\n modelValue?: Readonly<Ref<ProgressRootProps['modelValue']>>\n max: Readonly<Ref<number>>\n progressState: ComputedRef<ProgressState>\n}\n\nexport const [injectProgressRootContext, provideProgressRootContext]\n = createContext<ProgressRootContext>('ProgressRoot')\n\nexport type ProgressState = 'indeterminate' | 'loading' | 'complete'\n\nconst isNumber = (v: any): v is number => typeof v === 'number'\n\nfunction validateValue(value: any, max: number): number | null {\n const isValidValueError\n = isNullish(value)\n || (isNumber(value) && !Number.isNaN(value) && value <= max && value >= 0)\n\n if (isValidValueError)\n return value as null\n\n console.error(`Invalid prop \\`value\\` of value \\`${value}\\` supplied to \\`ProgressRoot\\`. The \\`value\\` prop must be:\n - a positive number\n - less than the value passed to \\`max\\` (or ${DEFAULT_MAX} if no \\`max\\` prop is set)\n - \\`null\\` or \\`undefined\\` if the progress is indeterminate.\n\nDefaulting to \\`null\\`.`)\n return null\n}\n\nfunction validateMax(max: number): number {\n const isValidMaxError = isNumber(max) && !Number.isNaN(max) && max > 0\n\n if (isValidMaxError)\n return max\n\n console.error(\n `Invalid prop \\`max\\` of value \\`${max}\\` supplied to \\`ProgressRoot\\`. Only numbers greater than 0 are valid max values. Defaulting to \\`${DEFAULT_MAX}\\`.`,\n )\n return DEFAULT_MAX\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { useVModel } from '@vueuse/core'\nimport { computed, nextTick, watch } from 'vue'\nimport { Primitive } from '@/Primitive'\n\nconst props = withDefaults(defineProps<ProgressRootProps>(), {\n max: DEFAULT_MAX,\n getValueLabel: (value: number | null | undefined, max: number) =>\n isNumber(value) ? `${Math.round((value / max) * DEFAULT_MAX)}%` : undefined,\n})\n\nconst emit = defineEmits<ProgressRootEmits>()\n\ndefineSlots<{\n default?: (props: {\n /** Current input values */\n modelValue: typeof modelValue.value\n }) => any\n}>()\n\nuseForwardExpose()\nconst modelValue = useVModel(props, 'modelValue', emit, {\n passive: (props.modelValue === undefined) as false,\n})\n\nconst max = useVModel(props, 'max', emit, {\n passive: (props.max === undefined) as false,\n})\n\n// ------- Watch for correct values -------\nwatch(\n () => modelValue.value,\n async (value) => {\n const correctedValue = validateValue(value, props.max)\n if (correctedValue !== value) {\n await nextTick()\n modelValue.value = correctedValue\n }\n },\n { immediate: true },\n)\n\nwatch(\n () => props.max,\n (newMax) => {\n const correctedMax = validateMax(props.max)\n if (correctedMax !== newMax)\n max.value = correctedMax\n },\n { immediate: true },\n)\n// ------- End of watch for correct values -------\n\nconst progressState = computed<ProgressState>(() => {\n if (isNullish(modelValue.value))\n return 'indeterminate'\n if (modelValue.value === max.value)\n return 'complete'\n return 'loading'\n})\n\nprovideProgressRootContext({\n modelValue,\n max,\n progressState,\n})\n</script>\n\n<template>\n <Primitive\n :as-child=\"asChild\"\n :as=\"as\"\n :aria-valuemax=\"max\"\n :aria-valuemin=\"0\"\n :aria-valuenow=\"isNumber(modelValue) ? modelValue : undefined\"\n :aria-valuetext=\"getValueText?.(modelValue, max)\"\n :aria-label=\"getValueLabel(modelValue, max)\"\n role=\"progressbar\"\n :data-state=\"progressState\"\n :data-value=\"modelValue ?? undefined\"\n :data-max=\"max\"\n >\n <slot :model-value=\"modelValue\" />\n </Primitive>\n</template>\n"],"names":[],"mappings":";;;;;;;AA6BA,MAAM,WAAc,GAAA,GAAA;AAQb,MAAM,CAAC,yBAAA,EAA2B,0BAA0B,CAAA,GAC/D,cAAmC,cAAc;AAIrD,MAAM,QAAW,GAAA,CAAC,CAAwB,KAAA,OAAO,CAAM,KAAA,QAAA;AAEvD,SAAS,aAAA,CAAc,OAAY,GAA4B,EAAA;AAC7D,EAAA,MAAM,iBACF,GAAA,SAAA,CAAU,KAAK,CAAA,IACX,SAAS,KAAK,CAAA,IAAK,CAAC,MAAA,CAAO,KAAM,CAAA,KAAK,CAAK,IAAA,KAAA,IAAS,OAAO,KAAS,IAAA,CAAA;AAE5E,EAAI,IAAA,iBAAA;AACF,IAAO,OAAA,KAAA;AAET,EAAQ,OAAA,CAAA,KAAA,CAAM,qCAAqC,KAAK,CAAA;AAAA;AAAA,8CAAA,EAEV,WAAW,CAAA;AAAA;;AAAA,uBAGnC,CAAA,CAAA;AACtB,EAAO,OAAA,IAAA;AACT;AAEA,SAAS,YAAY,GAAqB,EAAA;AACxC,EAAM,MAAA,eAAA,GAAkB,SAAS,GAAG,CAAA,IAAK,CAAC,MAAO,CAAA,KAAA,CAAM,GAAG,CAAA,IAAK,GAAM,GAAA,CAAA;AAErE,EAAI,IAAA,eAAA;AACF,IAAO,OAAA,GAAA;AAET,EAAQ,OAAA,CAAA,KAAA;AAAA,IACN,CAAA,gCAAA,EAAmC,GAAG,CAAA,mGAAA,EAAsG,WAAW,CAAA,GAAA;AAAA,GACzJ;AACA,EAAO,OAAA,WAAA;AACT;;;;;;;;;;;;;AAQA,IAAA,MAAM,KAAQ,GAAA,OAAA;AAMd,IAAA,MAAM,IAAO,GAAA,MAAA;AASb,IAAiB,gBAAA,EAAA;AACjB,IAAA,MAAM,UAAa,GAAA,SAAA,CAAU,KAAO,EAAA,YAAA,EAAc,IAAM,EAAA;AAAA,MACtD,OAAA,EAAU,MAAM,UAAe,KAAA;AAAA,KAChC,CAAA;AAED,IAAA,MAAM,GAAM,GAAA,SAAA,CAAU,KAAO,EAAA,KAAA,EAAO,IAAM,EAAA;AAAA,MACxC,OAAA,EAAU,MAAM,GAAQ,KAAA;AAAA,KACzB,CAAA;AAGD,IAAA,KAAA;AAAA,MACE,MAAM,UAAW,CAAA,KAAA;AAAA,MACjB,OAAO,KAAU,KAAA;AACf,QAAA,MAAM,cAAiB,GAAA,aAAA,CAAc,KAAO,EAAA,KAAA,CAAM,GAAG,CAAA;AACrD,QAAA,IAAI,mBAAmB,KAAO,EAAA;AAC5B,UAAA,MAAM,QAAS,EAAA;AACf,UAAA,UAAA,CAAW,KAAQ,GAAA,cAAA;AAAA;AACrB,OACF;AAAA,MACA,EAAE,WAAW,IAAK;AAAA,KACpB;AAEA,IAAA,KAAA;AAAA,MACE,MAAM,KAAM,CAAA,GAAA;AAAA,MACZ,CAAC,MAAW,KAAA;AACV,QAAM,MAAA,YAAA,GAAe,WAAY,CAAA,KAAA,CAAM,GAAG,CAAA;AAC1C,QAAA,IAAI,YAAiB,KAAA,MAAA;AACnB,UAAA,GAAA,CAAI,KAAQ,GAAA,YAAA;AAAA,OAChB;AAAA,MACA,EAAE,WAAW,IAAK;AAAA,KACpB;AAGA,IAAM,MAAA,aAAA,GAAgB,SAAwB,MAAM;AAClD,MAAI,IAAA,SAAA,CAAU,WAAW,KAAK,CAAA;AAC5B,QAAO,OAAA,eAAA;AACT,MAAI,IAAA,UAAA,CAAW,UAAU,GAAI,CAAA,KAAA;AAC3B,QAAO,OAAA,UAAA;AACT,MAAO,OAAA,SAAA;AAAA,KACR,CAAA;AAED,IAA2B,0BAAA,CAAA;AAAA,MACzB,UAAA;AAAA,MACA,GAAA;AAAA,MACA;AAAA,KACD,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;"}