reka-ui 2.1.0 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (817) hide show
  1. package/README.md +1 -1
  2. package/dist/Accordion/AccordionContent.cjs +2 -1
  3. package/dist/Accordion/AccordionContent.cjs.map +1 -1
  4. package/dist/Accordion/AccordionContent.js +3 -2
  5. package/dist/Accordion/AccordionContent.js.map +1 -1
  6. package/dist/Accordion/AccordionHeader.js +1 -1
  7. package/dist/Accordion/AccordionItem.cjs +2 -2
  8. package/dist/Accordion/AccordionItem.cjs.map +1 -1
  9. package/dist/Accordion/AccordionItem.js +3 -3
  10. package/dist/Accordion/AccordionItem.js.map +1 -1
  11. package/dist/Accordion/AccordionRoot.cjs +1 -1
  12. package/dist/Accordion/AccordionRoot.js +2 -2
  13. package/dist/Accordion/AccordionTrigger.cjs +2 -2
  14. package/dist/Accordion/AccordionTrigger.cjs.map +1 -1
  15. package/dist/Accordion/AccordionTrigger.js +3 -3
  16. package/dist/Accordion/AccordionTrigger.js.map +1 -1
  17. package/dist/AlertDialog/AlertDialogAction.js +1 -1
  18. package/dist/AlertDialog/AlertDialogCancel.js +1 -1
  19. package/dist/AlertDialog/AlertDialogContent.cjs +1 -1
  20. package/dist/AlertDialog/AlertDialogContent.js +2 -2
  21. package/dist/AlertDialog/AlertDialogDescription.js +1 -1
  22. package/dist/AlertDialog/AlertDialogOverlay.js +1 -1
  23. package/dist/AlertDialog/AlertDialogPortal.js +1 -1
  24. package/dist/AlertDialog/AlertDialogRoot.js +1 -1
  25. package/dist/AlertDialog/AlertDialogTitle.js +1 -1
  26. package/dist/AlertDialog/AlertDialogTrigger.js +1 -1
  27. package/dist/AspectRatio/AspectRatio.js +1 -1
  28. package/dist/Avatar/AvatarFallback.js +1 -1
  29. package/dist/Avatar/AvatarImage.js +1 -1
  30. package/dist/Avatar/AvatarRoot.cjs +1 -1
  31. package/dist/Avatar/AvatarRoot.js +2 -2
  32. package/dist/Calendar/CalendarCell.cjs +2 -2
  33. package/dist/Calendar/CalendarCell.js +3 -3
  34. package/dist/Calendar/CalendarCellTrigger.cjs +74 -48
  35. package/dist/Calendar/CalendarCellTrigger.cjs.map +1 -1
  36. package/dist/Calendar/CalendarCellTrigger.js +75 -49
  37. package/dist/Calendar/CalendarCellTrigger.js.map +1 -1
  38. package/dist/Calendar/CalendarGrid.cjs +2 -2
  39. package/dist/Calendar/CalendarGrid.cjs.map +1 -1
  40. package/dist/Calendar/CalendarGrid.js +3 -3
  41. package/dist/Calendar/CalendarGrid.js.map +1 -1
  42. package/dist/Calendar/CalendarGridBody.js +1 -1
  43. package/dist/Calendar/CalendarGridHead.js +1 -1
  44. package/dist/Calendar/CalendarGridRow.js +1 -1
  45. package/dist/Calendar/CalendarHeadCell.js +1 -1
  46. package/dist/Calendar/CalendarHeader.js +1 -1
  47. package/dist/Calendar/CalendarHeading.cjs +1 -1
  48. package/dist/Calendar/CalendarHeading.js +2 -2
  49. package/dist/Calendar/CalendarNext.cjs +3 -3
  50. package/dist/Calendar/CalendarNext.js +4 -4
  51. package/dist/Calendar/CalendarPrev.cjs +3 -3
  52. package/dist/Calendar/CalendarPrev.js +4 -4
  53. package/dist/Calendar/CalendarRoot.cjs +14 -12
  54. package/dist/Calendar/CalendarRoot.cjs.map +1 -1
  55. package/dist/Calendar/CalendarRoot.js +15 -13
  56. package/dist/Calendar/CalendarRoot.js.map +1 -1
  57. package/dist/Calendar/useCalendar.js +1 -1
  58. package/dist/Calendar/utils.cjs +9 -0
  59. package/dist/Calendar/utils.cjs.map +1 -0
  60. package/dist/Calendar/utils.js +7 -0
  61. package/dist/Calendar/utils.js.map +1 -0
  62. package/dist/Checkbox/CheckboxGroupRoot.cjs +3 -3
  63. package/dist/Checkbox/CheckboxGroupRoot.js +4 -4
  64. package/dist/Checkbox/CheckboxIndicator.cjs +1 -1
  65. package/dist/Checkbox/CheckboxIndicator.js +2 -2
  66. package/dist/Checkbox/CheckboxRoot.cjs +8 -8
  67. package/dist/Checkbox/CheckboxRoot.cjs.map +1 -1
  68. package/dist/Checkbox/CheckboxRoot.js +10 -10
  69. package/dist/Checkbox/CheckboxRoot.js.map +1 -1
  70. package/dist/Collapsible/CollapsibleContent.cjs +4 -4
  71. package/dist/Collapsible/CollapsibleContent.cjs.map +1 -1
  72. package/dist/Collapsible/CollapsibleContent.js +5 -5
  73. package/dist/Collapsible/CollapsibleContent.js.map +1 -1
  74. package/dist/Collapsible/CollapsibleRoot.cjs +4 -4
  75. package/dist/Collapsible/CollapsibleRoot.js +5 -5
  76. package/dist/Collapsible/CollapsibleTrigger.cjs +2 -2
  77. package/dist/Collapsible/CollapsibleTrigger.js +3 -3
  78. package/dist/Combobox/ComboboxAnchor.js +1 -1
  79. package/dist/Combobox/ComboboxArrow.js +1 -1
  80. package/dist/Combobox/ComboboxCancel.cjs +1 -1
  81. package/dist/Combobox/ComboboxCancel.js +2 -2
  82. package/dist/Combobox/ComboboxContent.cjs +1 -1
  83. package/dist/Combobox/ComboboxContent.cjs.map +1 -1
  84. package/dist/Combobox/ComboboxContent.js +2 -2
  85. package/dist/Combobox/ComboboxContent.js.map +1 -1
  86. package/dist/Combobox/ComboboxContentImpl.cjs +1 -1
  87. package/dist/Combobox/ComboboxContentImpl.js +2 -2
  88. package/dist/Combobox/ComboboxEmpty.js +1 -1
  89. package/dist/Combobox/ComboboxGroup.cjs +3 -3
  90. package/dist/Combobox/ComboboxGroup.cjs.map +1 -1
  91. package/dist/Combobox/ComboboxGroup.js +4 -4
  92. package/dist/Combobox/ComboboxGroup.js.map +1 -1
  93. package/dist/Combobox/ComboboxInput.cjs +1 -1
  94. package/dist/Combobox/ComboboxInput.js +2 -2
  95. package/dist/Combobox/ComboboxItem.cjs +2 -5
  96. package/dist/Combobox/ComboboxItem.cjs.map +1 -1
  97. package/dist/Combobox/ComboboxItem.js +4 -6
  98. package/dist/Combobox/ComboboxItem.js.map +1 -1
  99. package/dist/Combobox/ComboboxItemIndicator.js +1 -1
  100. package/dist/Combobox/ComboboxLabel.cjs +1 -1
  101. package/dist/Combobox/ComboboxLabel.cjs.map +1 -1
  102. package/dist/Combobox/ComboboxLabel.js +2 -2
  103. package/dist/Combobox/ComboboxLabel.js.map +1 -1
  104. package/dist/Combobox/ComboboxPortal.js +1 -1
  105. package/dist/Combobox/ComboboxRoot.cjs +7 -7
  106. package/dist/Combobox/ComboboxRoot.cjs.map +1 -1
  107. package/dist/Combobox/ComboboxRoot.js +8 -8
  108. package/dist/Combobox/ComboboxRoot.js.map +1 -1
  109. package/dist/Combobox/ComboboxSeparator.js +1 -1
  110. package/dist/Combobox/ComboboxTrigger.cjs +3 -3
  111. package/dist/Combobox/ComboboxTrigger.js +4 -4
  112. package/dist/Combobox/ComboboxViewport.cjs +1 -1
  113. package/dist/Combobox/ComboboxViewport.js +2 -2
  114. package/dist/Combobox/ComboboxVirtualizer.js +1 -1
  115. package/dist/ConfigProvider/ConfigProvider.cjs +2 -2
  116. package/dist/ConfigProvider/ConfigProvider.js +2 -2
  117. package/dist/ContextMenu/ContextMenuArrow.js +1 -1
  118. package/dist/ContextMenu/ContextMenuCheckboxItem.js +1 -1
  119. package/dist/ContextMenu/ContextMenuContent.js +1 -1
  120. package/dist/ContextMenu/ContextMenuGroup.js +1 -1
  121. package/dist/ContextMenu/ContextMenuItem.js +1 -1
  122. package/dist/ContextMenu/ContextMenuItemIndicator.js +1 -1
  123. package/dist/ContextMenu/ContextMenuLabel.js +1 -1
  124. package/dist/ContextMenu/ContextMenuPortal.js +1 -1
  125. package/dist/ContextMenu/ContextMenuRadioGroup.js +1 -1
  126. package/dist/ContextMenu/ContextMenuRadioItem.js +1 -1
  127. package/dist/ContextMenu/ContextMenuRoot.cjs +1 -1
  128. package/dist/ContextMenu/ContextMenuRoot.js +2 -2
  129. package/dist/ContextMenu/ContextMenuSeparator.js +1 -1
  130. package/dist/ContextMenu/ContextMenuSub.cjs +2 -2
  131. package/dist/ContextMenu/ContextMenuSub.js +3 -3
  132. package/dist/ContextMenu/ContextMenuSubContent.js +1 -1
  133. package/dist/ContextMenu/ContextMenuSubTrigger.js +1 -1
  134. package/dist/ContextMenu/ContextMenuTrigger.cjs +1 -1
  135. package/dist/ContextMenu/ContextMenuTrigger.js +2 -2
  136. package/dist/DateField/DateFieldInput.cjs +5 -5
  137. package/dist/DateField/DateFieldInput.js +6 -6
  138. package/dist/DateField/DateFieldRoot.cjs +10 -10
  139. package/dist/DateField/DateFieldRoot.js +11 -11
  140. package/dist/DatePicker/DatePickerArrow.js +1 -1
  141. package/dist/DatePicker/DatePickerCalendar.js +1 -1
  142. package/dist/DatePicker/DatePickerCell.js +1 -1
  143. package/dist/DatePicker/DatePickerCellTrigger.js +1 -1
  144. package/dist/DatePicker/DatePickerClose.js +1 -1
  145. package/dist/DatePicker/DatePickerContent.js +1 -1
  146. package/dist/DatePicker/DatePickerField.js +1 -1
  147. package/dist/DatePicker/DatePickerGrid.js +1 -1
  148. package/dist/DatePicker/DatePickerGridBody.js +1 -1
  149. package/dist/DatePicker/DatePickerGridHead.js +1 -1
  150. package/dist/DatePicker/DatePickerGridRow.js +1 -1
  151. package/dist/DatePicker/DatePickerHeadCell.js +1 -1
  152. package/dist/DatePicker/DatePickerHeader.js +1 -1
  153. package/dist/DatePicker/DatePickerHeading.js +1 -1
  154. package/dist/DatePicker/DatePickerInput.js +1 -1
  155. package/dist/DatePicker/DatePickerNext.js +1 -1
  156. package/dist/DatePicker/DatePickerPrev.js +1 -1
  157. package/dist/DatePicker/DatePickerRoot.cjs +11 -11
  158. package/dist/DatePicker/DatePickerRoot.cjs.map +1 -1
  159. package/dist/DatePicker/DatePickerRoot.js +12 -12
  160. package/dist/DatePicker/DatePickerRoot.js.map +1 -1
  161. package/dist/DatePicker/DatePickerTrigger.js +1 -1
  162. package/dist/DateRangeField/DateRangeFieldInput.cjs +5 -5
  163. package/dist/DateRangeField/DateRangeFieldInput.js +6 -6
  164. package/dist/DateRangeField/DateRangeFieldRoot.cjs +22 -18
  165. package/dist/DateRangeField/DateRangeFieldRoot.cjs.map +1 -1
  166. package/dist/DateRangeField/DateRangeFieldRoot.js +23 -19
  167. package/dist/DateRangeField/DateRangeFieldRoot.js.map +1 -1
  168. package/dist/DateRangePicker/DateRangePickerAnchor.js +1 -1
  169. package/dist/DateRangePicker/DateRangePickerArrow.js +1 -1
  170. package/dist/DateRangePicker/DateRangePickerCalendar.js +1 -1
  171. package/dist/DateRangePicker/DateRangePickerCell.js +1 -1
  172. package/dist/DateRangePicker/DateRangePickerCellTrigger.js +1 -1
  173. package/dist/DateRangePicker/DateRangePickerClose.js +1 -1
  174. package/dist/DateRangePicker/DateRangePickerContent.js +1 -1
  175. package/dist/DateRangePicker/DateRangePickerField.js +1 -1
  176. package/dist/DateRangePicker/DateRangePickerGrid.js +1 -1
  177. package/dist/DateRangePicker/DateRangePickerGridBody.js +1 -1
  178. package/dist/DateRangePicker/DateRangePickerGridHead.js +1 -1
  179. package/dist/DateRangePicker/DateRangePickerGridRow.js +1 -1
  180. package/dist/DateRangePicker/DateRangePickerHeadCell.js +1 -1
  181. package/dist/DateRangePicker/DateRangePickerHeader.js +1 -1
  182. package/dist/DateRangePicker/DateRangePickerHeading.js +1 -1
  183. package/dist/DateRangePicker/DateRangePickerInput.js +1 -1
  184. package/dist/DateRangePicker/DateRangePickerNext.js +1 -1
  185. package/dist/DateRangePicker/DateRangePickerPrev.js +1 -1
  186. package/dist/DateRangePicker/DateRangePickerRoot.cjs +11 -11
  187. package/dist/DateRangePicker/DateRangePickerRoot.cjs.map +1 -1
  188. package/dist/DateRangePicker/DateRangePickerRoot.js +12 -12
  189. package/dist/DateRangePicker/DateRangePickerRoot.js.map +1 -1
  190. package/dist/DateRangePicker/DateRangePickerTrigger.js +1 -1
  191. package/dist/Dialog/DialogClose.cjs +1 -1
  192. package/dist/Dialog/DialogClose.js +2 -2
  193. package/dist/Dialog/DialogContent.js +1 -1
  194. package/dist/Dialog/DialogContentImpl.cjs +2 -2
  195. package/dist/Dialog/DialogContentImpl.cjs.map +1 -1
  196. package/dist/Dialog/DialogContentImpl.js +3 -3
  197. package/dist/Dialog/DialogContentImpl.js.map +1 -1
  198. package/dist/Dialog/DialogContentModal.js +1 -1
  199. package/dist/Dialog/DialogContentNonModal.js +1 -1
  200. package/dist/Dialog/DialogDescription.js +1 -1
  201. package/dist/Dialog/DialogOverlay.js +1 -1
  202. package/dist/Dialog/DialogOverlayImpl.js +1 -1
  203. package/dist/Dialog/DialogPortal.js +1 -1
  204. package/dist/Dialog/DialogRoot.cjs +2 -2
  205. package/dist/Dialog/DialogRoot.js +2 -2
  206. package/dist/Dialog/DialogTitle.js +1 -1
  207. package/dist/Dialog/DialogTrigger.cjs +3 -3
  208. package/dist/Dialog/DialogTrigger.cjs.map +1 -1
  209. package/dist/Dialog/DialogTrigger.js +4 -4
  210. package/dist/Dialog/DialogTrigger.js.map +1 -1
  211. package/dist/DismissableLayer/DismissableLayer.cjs +1 -1
  212. package/dist/DismissableLayer/DismissableLayer.js +2 -2
  213. package/dist/DismissableLayer/DismissableLayerBranch.js +1 -1
  214. package/dist/DismissableLayer/utils.cjs +1 -0
  215. package/dist/DismissableLayer/utils.cjs.map +1 -1
  216. package/dist/DismissableLayer/utils.js +1 -0
  217. package/dist/DismissableLayer/utils.js.map +1 -1
  218. package/dist/DropdownMenu/DropdownMenuArrow.js +1 -1
  219. package/dist/DropdownMenu/DropdownMenuCheckboxItem.js +1 -1
  220. package/dist/DropdownMenu/DropdownMenuContent.cjs +1 -1
  221. package/dist/DropdownMenu/DropdownMenuContent.cjs.map +1 -1
  222. package/dist/DropdownMenu/DropdownMenuContent.js +2 -2
  223. package/dist/DropdownMenu/DropdownMenuContent.js.map +1 -1
  224. package/dist/DropdownMenu/DropdownMenuGroup.js +1 -1
  225. package/dist/DropdownMenu/DropdownMenuItem.js +1 -1
  226. package/dist/DropdownMenu/DropdownMenuItemIndicator.js +1 -1
  227. package/dist/DropdownMenu/DropdownMenuLabel.js +1 -1
  228. package/dist/DropdownMenu/DropdownMenuPortal.js +1 -1
  229. package/dist/DropdownMenu/DropdownMenuRadioGroup.js +1 -1
  230. package/dist/DropdownMenu/DropdownMenuRadioItem.js +1 -1
  231. package/dist/DropdownMenu/DropdownMenuRoot.cjs +3 -3
  232. package/dist/DropdownMenu/DropdownMenuRoot.js +4 -4
  233. package/dist/DropdownMenu/DropdownMenuSeparator.js +1 -1
  234. package/dist/DropdownMenu/DropdownMenuSub.cjs +2 -2
  235. package/dist/DropdownMenu/DropdownMenuSub.cjs.map +1 -1
  236. package/dist/DropdownMenu/DropdownMenuSub.js +3 -3
  237. package/dist/DropdownMenu/DropdownMenuSub.js.map +1 -1
  238. package/dist/DropdownMenu/DropdownMenuSubContent.js +1 -1
  239. package/dist/DropdownMenu/DropdownMenuSubTrigger.js +1 -1
  240. package/dist/DropdownMenu/DropdownMenuTrigger.cjs +4 -4
  241. package/dist/DropdownMenu/DropdownMenuTrigger.cjs.map +1 -1
  242. package/dist/DropdownMenu/DropdownMenuTrigger.js +5 -5
  243. package/dist/DropdownMenu/DropdownMenuTrigger.js.map +1 -1
  244. package/dist/Editable/EditableArea.cjs +7 -7
  245. package/dist/Editable/EditableArea.js +8 -8
  246. package/dist/Editable/EditableCancelTrigger.cjs +4 -4
  247. package/dist/Editable/EditableCancelTrigger.js +5 -5
  248. package/dist/Editable/EditableEditTrigger.cjs +4 -4
  249. package/dist/Editable/EditableEditTrigger.js +5 -5
  250. package/dist/Editable/EditableInput.cjs +4 -4
  251. package/dist/Editable/EditableInput.js +5 -5
  252. package/dist/Editable/EditablePreview.cjs +4 -4
  253. package/dist/Editable/EditablePreview.js +5 -5
  254. package/dist/Editable/EditableRoot.cjs +2 -2
  255. package/dist/Editable/EditableRoot.js +3 -3
  256. package/dist/Editable/EditableSubmitTrigger.cjs +4 -4
  257. package/dist/Editable/EditableSubmitTrigger.js +5 -5
  258. package/dist/FocusScope/FocusScope.js +1 -1
  259. package/dist/FocusScope/utils.cjs +1 -1
  260. package/dist/FocusScope/utils.cjs.map +1 -1
  261. package/dist/FocusScope/utils.js +1 -1
  262. package/dist/FocusScope/utils.js.map +1 -1
  263. package/dist/HoverCard/HoverCardArrow.js +1 -1
  264. package/dist/HoverCard/HoverCardContent.js +1 -1
  265. package/dist/HoverCard/HoverCardContentImpl.cjs +2 -2
  266. package/dist/HoverCard/HoverCardContentImpl.js +3 -3
  267. package/dist/HoverCard/HoverCardPortal.js +1 -1
  268. package/dist/HoverCard/HoverCardRoot.cjs +3 -3
  269. package/dist/HoverCard/HoverCardRoot.cjs.map +1 -1
  270. package/dist/HoverCard/HoverCardRoot.js +4 -4
  271. package/dist/HoverCard/HoverCardRoot.js.map +1 -1
  272. package/dist/HoverCard/HoverCardTrigger.js +1 -1
  273. package/dist/HoverCard/utils.cjs +1 -1
  274. package/dist/HoverCard/utils.cjs.map +1 -1
  275. package/dist/HoverCard/utils.js +1 -1
  276. package/dist/HoverCard/utils.js.map +1 -1
  277. package/dist/Label/Label.js +1 -1
  278. package/dist/Listbox/ListboxContent.cjs +2 -2
  279. package/dist/Listbox/ListboxContent.js +3 -3
  280. package/dist/Listbox/ListboxFilter.cjs +8 -5
  281. package/dist/Listbox/ListboxFilter.cjs.map +1 -1
  282. package/dist/Listbox/ListboxFilter.js +9 -6
  283. package/dist/Listbox/ListboxFilter.js.map +1 -1
  284. package/dist/Listbox/ListboxGroup.cjs +2 -2
  285. package/dist/Listbox/ListboxGroup.cjs.map +1 -1
  286. package/dist/Listbox/ListboxGroup.js +3 -3
  287. package/dist/Listbox/ListboxGroup.js.map +1 -1
  288. package/dist/Listbox/ListboxGroupLabel.js +1 -1
  289. package/dist/Listbox/ListboxItem.cjs +6 -6
  290. package/dist/Listbox/ListboxItem.cjs.map +1 -1
  291. package/dist/Listbox/ListboxItem.js +7 -7
  292. package/dist/Listbox/ListboxItem.js.map +1 -1
  293. package/dist/Listbox/ListboxItemIndicator.js +1 -1
  294. package/dist/Listbox/ListboxRoot.cjs +6 -6
  295. package/dist/Listbox/ListboxRoot.cjs.map +1 -1
  296. package/dist/Listbox/ListboxRoot.js +7 -7
  297. package/dist/Listbox/ListboxRoot.js.map +1 -1
  298. package/dist/Listbox/ListboxVirtualizer.js +1 -1
  299. package/dist/Listbox/utils.cjs +2 -2
  300. package/dist/Listbox/utils.cjs.map +1 -1
  301. package/dist/Listbox/utils.js +2 -2
  302. package/dist/Listbox/utils.js.map +1 -1
  303. package/dist/Menu/MenuAnchor.js +1 -1
  304. package/dist/Menu/MenuArrow.js +1 -1
  305. package/dist/Menu/MenuCheckboxItem.js +1 -1
  306. package/dist/Menu/MenuContent.js +1 -1
  307. package/dist/Menu/MenuContentImpl.cjs +2 -2
  308. package/dist/Menu/MenuContentImpl.js +4 -4
  309. package/dist/Menu/MenuGroup.js +1 -1
  310. package/dist/Menu/MenuItem.js +1 -1
  311. package/dist/Menu/MenuItemImpl.cjs +3 -3
  312. package/dist/Menu/MenuItemImpl.js +4 -4
  313. package/dist/Menu/MenuItemIndicator.cjs +1 -1
  314. package/dist/Menu/MenuItemIndicator.js +2 -2
  315. package/dist/Menu/MenuLabel.js +1 -1
  316. package/dist/Menu/MenuPortal.js +1 -1
  317. package/dist/Menu/MenuRadioGroup.js +1 -1
  318. package/dist/Menu/MenuRadioItem.js +1 -1
  319. package/dist/Menu/MenuRoot.js +1 -1
  320. package/dist/Menu/MenuRootContentModal.js +1 -1
  321. package/dist/Menu/MenuRootContentNonModal.js +1 -1
  322. package/dist/Menu/MenuSeparator.js +1 -1
  323. package/dist/Menu/MenuSub.cjs +2 -2
  324. package/dist/Menu/MenuSub.js +3 -3
  325. package/dist/Menu/MenuSubContent.cjs +1 -1
  326. package/dist/Menu/MenuSubContent.cjs.map +1 -1
  327. package/dist/Menu/MenuSubContent.js +2 -2
  328. package/dist/Menu/MenuSubContent.js.map +1 -1
  329. package/dist/Menu/MenuSubTrigger.cjs +2 -2
  330. package/dist/Menu/MenuSubTrigger.cjs.map +1 -1
  331. package/dist/Menu/MenuSubTrigger.js +3 -3
  332. package/dist/Menu/MenuSubTrigger.js.map +1 -1
  333. package/dist/Menubar/MenubarArrow.js +1 -1
  334. package/dist/Menubar/MenubarCheckboxItem.js +1 -1
  335. package/dist/Menubar/MenubarContent.cjs +1 -1
  336. package/dist/Menubar/MenubarContent.cjs.map +1 -1
  337. package/dist/Menubar/MenubarContent.js +2 -2
  338. package/dist/Menubar/MenubarContent.js.map +1 -1
  339. package/dist/Menubar/MenubarGroup.js +1 -1
  340. package/dist/Menubar/MenubarItem.js +1 -1
  341. package/dist/Menubar/MenubarItemIndicator.js +1 -1
  342. package/dist/Menubar/MenubarLabel.js +1 -1
  343. package/dist/Menubar/MenubarMenu.cjs +1 -1
  344. package/dist/Menubar/MenubarMenu.js +2 -2
  345. package/dist/Menubar/MenubarPortal.js +1 -1
  346. package/dist/Menubar/MenubarRadioGroup.js +1 -1
  347. package/dist/Menubar/MenubarRadioItem.js +1 -1
  348. package/dist/Menubar/MenubarRoot.cjs +3 -3
  349. package/dist/Menubar/MenubarRoot.js +4 -4
  350. package/dist/Menubar/MenubarSeparator.js +1 -1
  351. package/dist/Menubar/MenubarSub.cjs +2 -2
  352. package/dist/Menubar/MenubarSub.js +3 -3
  353. package/dist/Menubar/MenubarSubContent.js +1 -1
  354. package/dist/Menubar/MenubarSubTrigger.js +1 -1
  355. package/dist/Menubar/MenubarTrigger.cjs +5 -5
  356. package/dist/Menubar/MenubarTrigger.js +6 -6
  357. package/dist/NavigationMenu/NavigationMenuContent.cjs +1 -1
  358. package/dist/NavigationMenu/NavigationMenuContent.js +2 -2
  359. package/dist/NavigationMenu/NavigationMenuContentImpl.cjs +1 -1
  360. package/dist/NavigationMenu/NavigationMenuContentImpl.cjs.map +1 -1
  361. package/dist/NavigationMenu/NavigationMenuContentImpl.js +2 -2
  362. package/dist/NavigationMenu/NavigationMenuContentImpl.js.map +1 -1
  363. package/dist/NavigationMenu/NavigationMenuIndicator.js +1 -1
  364. package/dist/NavigationMenu/NavigationMenuItem.cjs +2 -2
  365. package/dist/NavigationMenu/NavigationMenuItem.cjs.map +1 -1
  366. package/dist/NavigationMenu/NavigationMenuItem.js +3 -3
  367. package/dist/NavigationMenu/NavigationMenuItem.js.map +1 -1
  368. package/dist/NavigationMenu/NavigationMenuLink.cjs +2 -2
  369. package/dist/NavigationMenu/NavigationMenuLink.js +3 -3
  370. package/dist/NavigationMenu/NavigationMenuList.js +1 -1
  371. package/dist/NavigationMenu/NavigationMenuRoot.cjs +4 -4
  372. package/dist/NavigationMenu/NavigationMenuRoot.cjs.map +1 -1
  373. package/dist/NavigationMenu/NavigationMenuRoot.js +5 -5
  374. package/dist/NavigationMenu/NavigationMenuRoot.js.map +1 -1
  375. package/dist/NavigationMenu/NavigationMenuSub.cjs +12 -2
  376. package/dist/NavigationMenu/NavigationMenuSub.cjs.map +1 -1
  377. package/dist/NavigationMenu/NavigationMenuSub.js +13 -3
  378. package/dist/NavigationMenu/NavigationMenuSub.js.map +1 -1
  379. package/dist/NavigationMenu/NavigationMenuTrigger.cjs +2 -2
  380. package/dist/NavigationMenu/NavigationMenuTrigger.cjs.map +1 -1
  381. package/dist/NavigationMenu/NavigationMenuTrigger.js +3 -3
  382. package/dist/NavigationMenu/NavigationMenuTrigger.js.map +1 -1
  383. package/dist/NavigationMenu/NavigationMenuViewport.cjs +8 -8
  384. package/dist/NavigationMenu/NavigationMenuViewport.cjs.map +1 -1
  385. package/dist/NavigationMenu/NavigationMenuViewport.js +10 -10
  386. package/dist/NavigationMenu/NavigationMenuViewport.js.map +1 -1
  387. package/dist/NavigationMenu/utils.cjs +1 -1
  388. package/dist/NavigationMenu/utils.cjs.map +1 -1
  389. package/dist/NavigationMenu/utils.js +1 -1
  390. package/dist/NavigationMenu/utils.js.map +1 -1
  391. package/dist/NumberField/NumberFieldDecrement.cjs +5 -5
  392. package/dist/NumberField/NumberFieldDecrement.js +6 -6
  393. package/dist/NumberField/NumberFieldIncrement.cjs +5 -5
  394. package/dist/NumberField/NumberFieldIncrement.js +6 -6
  395. package/dist/NumberField/NumberFieldInput.cjs +3 -3
  396. package/dist/NumberField/NumberFieldInput.js +4 -4
  397. package/dist/NumberField/NumberFieldRoot.cjs +7 -7
  398. package/dist/NumberField/NumberFieldRoot.cjs.map +1 -1
  399. package/dist/NumberField/NumberFieldRoot.js +8 -8
  400. package/dist/NumberField/NumberFieldRoot.js.map +1 -1
  401. package/dist/NumberField/utils.js +1 -1
  402. package/dist/Pagination/PaginationEllipsis.js +1 -1
  403. package/dist/Pagination/PaginationFirst.cjs +1 -1
  404. package/dist/Pagination/PaginationFirst.js +2 -2
  405. package/dist/Pagination/PaginationLast.cjs +1 -1
  406. package/dist/Pagination/PaginationLast.js +2 -2
  407. package/dist/Pagination/PaginationList.js +1 -1
  408. package/dist/Pagination/PaginationListItem.cjs +3 -3
  409. package/dist/Pagination/PaginationListItem.js +4 -4
  410. package/dist/Pagination/PaginationNext.cjs +1 -1
  411. package/dist/Pagination/PaginationNext.js +2 -2
  412. package/dist/Pagination/PaginationPrev.cjs +1 -1
  413. package/dist/Pagination/PaginationPrev.js +2 -2
  414. package/dist/Pagination/PaginationRoot.cjs +2 -2
  415. package/dist/Pagination/PaginationRoot.js +3 -3
  416. package/dist/PinInput/PinInputInput.cjs +4 -4
  417. package/dist/PinInput/PinInputInput.cjs.map +1 -1
  418. package/dist/PinInput/PinInputInput.js +5 -5
  419. package/dist/PinInput/PinInputInput.js.map +1 -1
  420. package/dist/PinInput/PinInputRoot.cjs +4 -4
  421. package/dist/PinInput/PinInputRoot.js +5 -5
  422. package/dist/Popover/PopoverAnchor.js +1 -1
  423. package/dist/Popover/PopoverArrow.js +1 -1
  424. package/dist/Popover/PopoverClose.cjs +1 -1
  425. package/dist/Popover/PopoverClose.js +2 -2
  426. package/dist/Popover/PopoverContent.cjs +1 -1
  427. package/dist/Popover/PopoverContent.cjs.map +1 -1
  428. package/dist/Popover/PopoverContent.js +2 -2
  429. package/dist/Popover/PopoverContent.js.map +1 -1
  430. package/dist/Popover/PopoverContentImpl.js +1 -1
  431. package/dist/Popover/PopoverContentModal.js +1 -1
  432. package/dist/Popover/PopoverContentNonModal.js +1 -1
  433. package/dist/Popover/PopoverPortal.js +1 -1
  434. package/dist/Popover/PopoverRoot.cjs +2 -2
  435. package/dist/Popover/PopoverRoot.js +3 -3
  436. package/dist/Popover/PopoverTrigger.cjs +2 -2
  437. package/dist/Popover/PopoverTrigger.cjs.map +1 -1
  438. package/dist/Popover/PopoverTrigger.js +3 -3
  439. package/dist/Popover/PopoverTrigger.js.map +1 -1
  440. package/dist/Popper/PopperAnchor.js +1 -1
  441. package/dist/Popper/PopperArrow.cjs +4 -4
  442. package/dist/Popper/PopperArrow.js +5 -5
  443. package/dist/Popper/PopperContent.cjs +3 -3
  444. package/dist/Popper/PopperContent.cjs.map +1 -1
  445. package/dist/Popper/PopperContent.js +5 -5
  446. package/dist/Popper/PopperContent.js.map +1 -1
  447. package/dist/Presence/usePresence.cjs +2 -2
  448. package/dist/Presence/usePresence.cjs.map +1 -1
  449. package/dist/Presence/usePresence.js +2 -2
  450. package/dist/Presence/usePresence.js.map +1 -1
  451. package/dist/Primitive/Primitive.cjs +1 -1
  452. package/dist/Primitive/Primitive.cjs.map +1 -1
  453. package/dist/Primitive/Primitive.js +1 -1
  454. package/dist/Primitive/Primitive.js.map +1 -1
  455. package/dist/Progress/ProgressIndicator.cjs +1 -1
  456. package/dist/Progress/ProgressIndicator.js +2 -2
  457. package/dist/Progress/ProgressRoot.cjs +5 -5
  458. package/dist/Progress/ProgressRoot.js +6 -6
  459. package/dist/RadioGroup/Radio.cjs +6 -6
  460. package/dist/RadioGroup/Radio.cjs.map +1 -1
  461. package/dist/RadioGroup/Radio.js +7 -7
  462. package/dist/RadioGroup/Radio.js.map +1 -1
  463. package/dist/RadioGroup/RadioGroupIndicator.cjs +1 -1
  464. package/dist/RadioGroup/RadioGroupIndicator.js +2 -2
  465. package/dist/RadioGroup/RadioGroupItem.cjs +2 -2
  466. package/dist/RadioGroup/RadioGroupItem.js +3 -3
  467. package/dist/RadioGroup/RadioGroupRoot.cjs +5 -5
  468. package/dist/RadioGroup/RadioGroupRoot.js +6 -6
  469. package/dist/RangeCalendar/RangeCalendarCell.cjs +2 -2
  470. package/dist/RangeCalendar/RangeCalendarCell.js +3 -3
  471. package/dist/RangeCalendar/RangeCalendarCellTrigger.cjs +84 -58
  472. package/dist/RangeCalendar/RangeCalendarCellTrigger.cjs.map +1 -1
  473. package/dist/RangeCalendar/RangeCalendarCellTrigger.js +85 -59
  474. package/dist/RangeCalendar/RangeCalendarCellTrigger.js.map +1 -1
  475. package/dist/RangeCalendar/RangeCalendarGrid.cjs +2 -2
  476. package/dist/RangeCalendar/RangeCalendarGrid.cjs.map +1 -1
  477. package/dist/RangeCalendar/RangeCalendarGrid.js +3 -3
  478. package/dist/RangeCalendar/RangeCalendarGrid.js.map +1 -1
  479. package/dist/RangeCalendar/RangeCalendarGridBody.js +1 -1
  480. package/dist/RangeCalendar/RangeCalendarGridHead.js +1 -1
  481. package/dist/RangeCalendar/RangeCalendarGridRow.js +1 -1
  482. package/dist/RangeCalendar/RangeCalendarHeadCell.js +1 -1
  483. package/dist/RangeCalendar/RangeCalendarHeader.js +1 -1
  484. package/dist/RangeCalendar/RangeCalendarHeading.cjs +1 -1
  485. package/dist/RangeCalendar/RangeCalendarHeading.js +2 -2
  486. package/dist/RangeCalendar/RangeCalendarNext.cjs +3 -3
  487. package/dist/RangeCalendar/RangeCalendarNext.js +4 -4
  488. package/dist/RangeCalendar/RangeCalendarPrev.cjs +3 -3
  489. package/dist/RangeCalendar/RangeCalendarPrev.js +4 -4
  490. package/dist/RangeCalendar/RangeCalendarRoot.cjs +18 -16
  491. package/dist/RangeCalendar/RangeCalendarRoot.cjs.map +1 -1
  492. package/dist/RangeCalendar/RangeCalendarRoot.js +19 -17
  493. package/dist/RangeCalendar/RangeCalendarRoot.js.map +1 -1
  494. package/dist/RovingFocus/RovingFocusGroup.cjs +4 -4
  495. package/dist/RovingFocus/RovingFocusGroup.cjs.map +1 -1
  496. package/dist/RovingFocus/RovingFocusGroup.js +5 -5
  497. package/dist/RovingFocus/RovingFocusGroup.js.map +1 -1
  498. package/dist/RovingFocus/RovingFocusItem.cjs +4 -4
  499. package/dist/RovingFocus/RovingFocusItem.cjs.map +1 -1
  500. package/dist/RovingFocus/RovingFocusItem.js +5 -5
  501. package/dist/RovingFocus/RovingFocusItem.js.map +1 -1
  502. package/dist/RovingFocus/utils.cjs +2 -2
  503. package/dist/RovingFocus/utils.cjs.map +1 -1
  504. package/dist/RovingFocus/utils.js +2 -2
  505. package/dist/RovingFocus/utils.js.map +1 -1
  506. package/dist/ScrollArea/ScrollAreaCorner.js +1 -1
  507. package/dist/ScrollArea/ScrollAreaCornerImpl.cjs +2 -2
  508. package/dist/ScrollArea/ScrollAreaCornerImpl.js +3 -3
  509. package/dist/ScrollArea/ScrollAreaRoot.cjs +4 -4
  510. package/dist/ScrollArea/ScrollAreaRoot.cjs.map +1 -1
  511. package/dist/ScrollArea/ScrollAreaRoot.js +5 -5
  512. package/dist/ScrollArea/ScrollAreaRoot.js.map +1 -1
  513. package/dist/ScrollArea/ScrollAreaScrollbar.cjs +1 -1
  514. package/dist/ScrollArea/ScrollAreaScrollbar.js +2 -2
  515. package/dist/ScrollArea/ScrollAreaScrollbarAuto.js +1 -1
  516. package/dist/ScrollArea/ScrollAreaScrollbarHover.js +1 -1
  517. package/dist/ScrollArea/ScrollAreaScrollbarImpl.cjs +1 -1
  518. package/dist/ScrollArea/ScrollAreaScrollbarImpl.cjs.map +1 -1
  519. package/dist/ScrollArea/ScrollAreaScrollbarImpl.js +2 -2
  520. package/dist/ScrollArea/ScrollAreaScrollbarImpl.js.map +1 -1
  521. package/dist/ScrollArea/ScrollAreaScrollbarScroll.js +1 -1
  522. package/dist/ScrollArea/ScrollAreaScrollbarVisible.js +1 -1
  523. package/dist/ScrollArea/ScrollAreaScrollbarX.cjs +1 -1
  524. package/dist/ScrollArea/ScrollAreaScrollbarX.js +2 -2
  525. package/dist/ScrollArea/ScrollAreaScrollbarY.cjs +3 -3
  526. package/dist/ScrollArea/ScrollAreaScrollbarY.js +4 -4
  527. package/dist/ScrollArea/ScrollAreaThumb.js +1 -1
  528. package/dist/ScrollArea/ScrollAreaViewport.cjs +1 -1
  529. package/dist/ScrollArea/ScrollAreaViewport.js +2 -2
  530. package/dist/Select/BubbleSelect.cjs +2 -2
  531. package/dist/Select/BubbleSelect.cjs.map +1 -1
  532. package/dist/Select/BubbleSelect.js +3 -3
  533. package/dist/Select/BubbleSelect.js.map +1 -1
  534. package/dist/Select/SelectArrow.js +1 -1
  535. package/dist/Select/SelectContent.js +1 -1
  536. package/dist/Select/SelectContentImpl.cjs +17 -7
  537. package/dist/Select/SelectContentImpl.cjs.map +1 -1
  538. package/dist/Select/SelectContentImpl.js +18 -8
  539. package/dist/Select/SelectContentImpl.js.map +1 -1
  540. package/dist/Select/SelectGroup.cjs +2 -2
  541. package/dist/Select/SelectGroup.cjs.map +1 -1
  542. package/dist/Select/SelectGroup.js +3 -3
  543. package/dist/Select/SelectGroup.js.map +1 -1
  544. package/dist/Select/SelectIcon.js +1 -1
  545. package/dist/Select/SelectItem.cjs +6 -6
  546. package/dist/Select/SelectItem.cjs.map +1 -1
  547. package/dist/Select/SelectItem.js +7 -7
  548. package/dist/Select/SelectItem.js.map +1 -1
  549. package/dist/Select/SelectItemAlignedPosition.cjs +1 -1
  550. package/dist/Select/SelectItemAlignedPosition.js +2 -2
  551. package/dist/Select/SelectItemIndicator.js +1 -1
  552. package/dist/Select/SelectItemText.js +1 -1
  553. package/dist/Select/SelectLabel.js +1 -1
  554. package/dist/Select/SelectPopperPosition.js +1 -1
  555. package/dist/Select/SelectPortal.js +1 -1
  556. package/dist/Select/SelectRoot.cjs +6 -6
  557. package/dist/Select/SelectRoot.cjs.map +1 -1
  558. package/dist/Select/SelectRoot.js +7 -7
  559. package/dist/Select/SelectRoot.js.map +1 -1
  560. package/dist/Select/SelectScrollButtonImpl.js +1 -1
  561. package/dist/Select/SelectScrollDownButton.cjs +1 -1
  562. package/dist/Select/SelectScrollDownButton.cjs.map +1 -1
  563. package/dist/Select/SelectScrollDownButton.js +2 -2
  564. package/dist/Select/SelectScrollDownButton.js.map +1 -1
  565. package/dist/Select/SelectScrollUpButton.cjs +1 -1
  566. package/dist/Select/SelectScrollUpButton.cjs.map +1 -1
  567. package/dist/Select/SelectScrollUpButton.js +2 -2
  568. package/dist/Select/SelectScrollUpButton.js.map +1 -1
  569. package/dist/Select/SelectSeparator.js +1 -1
  570. package/dist/Select/SelectTrigger.cjs +4 -4
  571. package/dist/Select/SelectTrigger.cjs.map +1 -1
  572. package/dist/Select/SelectTrigger.js +5 -5
  573. package/dist/Select/SelectTrigger.js.map +1 -1
  574. package/dist/Select/SelectValue.cjs +1 -1
  575. package/dist/Select/SelectValue.js +2 -2
  576. package/dist/Select/SelectViewport.cjs +1 -1
  577. package/dist/Select/SelectViewport.cjs.map +1 -1
  578. package/dist/Select/SelectViewport.js +2 -2
  579. package/dist/Select/SelectViewport.js.map +1 -1
  580. package/dist/Select/utils.cjs +2 -2
  581. package/dist/Select/utils.cjs.map +1 -1
  582. package/dist/Select/utils.js +2 -2
  583. package/dist/Select/utils.js.map +1 -1
  584. package/dist/Separator/Separator.js +1 -1
  585. package/dist/Slider/SliderHorizontal.cjs +2 -2
  586. package/dist/Slider/SliderHorizontal.js +3 -3
  587. package/dist/Slider/SliderImpl.js +1 -1
  588. package/dist/Slider/SliderRange.cjs +1 -1
  589. package/dist/Slider/SliderRange.js +2 -2
  590. package/dist/Slider/SliderRoot.cjs +4 -4
  591. package/dist/Slider/SliderRoot.cjs.map +1 -1
  592. package/dist/Slider/SliderRoot.js +5 -5
  593. package/dist/Slider/SliderRoot.js.map +1 -1
  594. package/dist/Slider/SliderThumb.cjs +1 -1
  595. package/dist/Slider/SliderThumb.cjs.map +1 -1
  596. package/dist/Slider/SliderThumb.js +2 -2
  597. package/dist/Slider/SliderThumb.js.map +1 -1
  598. package/dist/Slider/SliderThumbImpl.cjs +4 -4
  599. package/dist/Slider/SliderThumbImpl.cjs.map +1 -1
  600. package/dist/Slider/SliderThumbImpl.js +5 -5
  601. package/dist/Slider/SliderThumbImpl.js.map +1 -1
  602. package/dist/Slider/SliderTrack.cjs +1 -1
  603. package/dist/Slider/SliderTrack.js +2 -2
  604. package/dist/Slider/SliderVertical.cjs +2 -2
  605. package/dist/Slider/SliderVertical.js +3 -3
  606. package/dist/Slider/utils.cjs +1 -1
  607. package/dist/Slider/utils.cjs.map +1 -1
  608. package/dist/Slider/utils.js +1 -1
  609. package/dist/Slider/utils.js.map +1 -1
  610. package/dist/Splitter/SplitterGroup.cjs +2 -2
  611. package/dist/Splitter/SplitterGroup.cjs.map +1 -1
  612. package/dist/Splitter/SplitterGroup.js +3 -3
  613. package/dist/Splitter/SplitterGroup.js.map +1 -1
  614. package/dist/Splitter/SplitterPanel.cjs +3 -3
  615. package/dist/Splitter/SplitterPanel.cjs.map +1 -1
  616. package/dist/Splitter/SplitterPanel.js +4 -4
  617. package/dist/Splitter/SplitterPanel.js.map +1 -1
  618. package/dist/Splitter/SplitterResizeHandle.cjs +2 -2
  619. package/dist/Splitter/SplitterResizeHandle.js +3 -3
  620. package/dist/Stepper/StepperDescription.js +1 -1
  621. package/dist/Stepper/StepperIndicator.js +1 -1
  622. package/dist/Stepper/StepperItem.cjs +6 -6
  623. package/dist/Stepper/StepperItem.cjs.map +1 -1
  624. package/dist/Stepper/StepperItem.js +7 -7
  625. package/dist/Stepper/StepperItem.js.map +1 -1
  626. package/dist/Stepper/StepperRoot.cjs +3 -3
  627. package/dist/Stepper/StepperRoot.js +4 -4
  628. package/dist/Stepper/StepperSeparator.js +1 -1
  629. package/dist/Stepper/StepperTitle.js +1 -1
  630. package/dist/Stepper/StepperTrigger.cjs +5 -5
  631. package/dist/Stepper/StepperTrigger.cjs.map +1 -1
  632. package/dist/Stepper/StepperTrigger.js +6 -6
  633. package/dist/Stepper/StepperTrigger.js.map +1 -1
  634. package/dist/Switch/SwitchRoot.cjs +6 -6
  635. package/dist/Switch/SwitchRoot.cjs.map +1 -1
  636. package/dist/Switch/SwitchRoot.js +7 -7
  637. package/dist/Switch/SwitchRoot.js.map +1 -1
  638. package/dist/Switch/SwitchThumb.cjs +1 -1
  639. package/dist/Switch/SwitchThumb.js +2 -2
  640. package/dist/Tabs/TabsContent.cjs +1 -1
  641. package/dist/Tabs/TabsContent.js +2 -2
  642. package/dist/Tabs/TabsIndicator.js +1 -1
  643. package/dist/Tabs/TabsList.cjs +1 -1
  644. package/dist/Tabs/TabsList.js +2 -2
  645. package/dist/Tabs/TabsRoot.cjs +3 -3
  646. package/dist/Tabs/TabsRoot.cjs.map +1 -1
  647. package/dist/Tabs/TabsRoot.js +4 -4
  648. package/dist/Tabs/TabsRoot.js.map +1 -1
  649. package/dist/Tabs/TabsTrigger.cjs +3 -3
  650. package/dist/Tabs/TabsTrigger.js +4 -4
  651. package/dist/TagsInput/TagsInputClear.cjs +2 -2
  652. package/dist/TagsInput/TagsInputClear.js +3 -3
  653. package/dist/TagsInput/TagsInputInput.cjs +1 -1
  654. package/dist/TagsInput/TagsInputInput.js +2 -2
  655. package/dist/TagsInput/TagsInputItem.cjs +2 -2
  656. package/dist/TagsInput/TagsInputItem.js +3 -3
  657. package/dist/TagsInput/TagsInputItemDelete.cjs +4 -3
  658. package/dist/TagsInput/TagsInputItemDelete.cjs.map +1 -1
  659. package/dist/TagsInput/TagsInputItemDelete.js +5 -4
  660. package/dist/TagsInput/TagsInputItemDelete.js.map +1 -1
  661. package/dist/TagsInput/TagsInputItemText.cjs +1 -1
  662. package/dist/TagsInput/TagsInputItemText.cjs.map +1 -1
  663. package/dist/TagsInput/TagsInputItemText.js +2 -2
  664. package/dist/TagsInput/TagsInputItemText.js.map +1 -1
  665. package/dist/TagsInput/TagsInputRoot.cjs +7 -7
  666. package/dist/TagsInput/TagsInputRoot.cjs.map +1 -1
  667. package/dist/TagsInput/TagsInputRoot.js +8 -8
  668. package/dist/TagsInput/TagsInputRoot.js.map +1 -1
  669. package/dist/Teleport/Teleport.js +1 -1
  670. package/dist/TimeField/TimeFieldInput.cjs +5 -5
  671. package/dist/TimeField/TimeFieldInput.js +6 -6
  672. package/dist/TimeField/TimeFieldRoot.cjs +17 -14
  673. package/dist/TimeField/TimeFieldRoot.cjs.map +1 -1
  674. package/dist/TimeField/TimeFieldRoot.js +19 -16
  675. package/dist/TimeField/TimeFieldRoot.js.map +1 -1
  676. package/dist/Toast/FocusProxy.js +1 -1
  677. package/dist/Toast/ToastAction.js +1 -1
  678. package/dist/Toast/ToastAnnounce.js +1 -1
  679. package/dist/Toast/ToastAnnounceExclude.cjs +1 -1
  680. package/dist/Toast/ToastAnnounceExclude.js +2 -2
  681. package/dist/Toast/ToastClose.cjs +3 -3
  682. package/dist/Toast/ToastClose.cjs.map +1 -1
  683. package/dist/Toast/ToastClose.js +4 -4
  684. package/dist/Toast/ToastClose.js.map +1 -1
  685. package/dist/Toast/ToastDescription.js +1 -1
  686. package/dist/Toast/ToastPortal.js +1 -1
  687. package/dist/Toast/ToastRoot.cjs +5 -2
  688. package/dist/Toast/ToastRoot.cjs.map +1 -1
  689. package/dist/Toast/ToastRoot.js +6 -3
  690. package/dist/Toast/ToastRoot.js.map +1 -1
  691. package/dist/Toast/ToastRootImpl.cjs +7 -4
  692. package/dist/Toast/ToastRootImpl.cjs.map +1 -1
  693. package/dist/Toast/ToastRootImpl.js +9 -6
  694. package/dist/Toast/ToastRootImpl.js.map +1 -1
  695. package/dist/Toast/ToastTitle.js +1 -1
  696. package/dist/Toast/ToastViewport.cjs +3 -3
  697. package/dist/Toast/ToastViewport.js +4 -4
  698. package/dist/Toast/utils.js +1 -1
  699. package/dist/Toggle/Toggle.cjs +4 -4
  700. package/dist/Toggle/Toggle.js +5 -5
  701. package/dist/ToggleGroup/ToggleGroupItem.cjs +1 -1
  702. package/dist/ToggleGroup/ToggleGroupItem.js +2 -2
  703. package/dist/ToggleGroup/ToggleGroupRoot.cjs +4 -4
  704. package/dist/ToggleGroup/ToggleGroupRoot.js +5 -5
  705. package/dist/Toolbar/ToolbarButton.cjs +2 -2
  706. package/dist/Toolbar/ToolbarButton.js +3 -3
  707. package/dist/Toolbar/ToolbarLink.cjs +1 -1
  708. package/dist/Toolbar/ToolbarLink.js +2 -2
  709. package/dist/Toolbar/ToolbarRoot.cjs +2 -2
  710. package/dist/Toolbar/ToolbarRoot.js +3 -3
  711. package/dist/Toolbar/ToolbarSeparator.js +1 -1
  712. package/dist/Toolbar/ToolbarToggleGroup.js +1 -1
  713. package/dist/Toolbar/ToolbarToggleItem.js +1 -1
  714. package/dist/Tooltip/TooltipArrow.js +1 -1
  715. package/dist/Tooltip/TooltipContent.js +1 -1
  716. package/dist/Tooltip/TooltipContentHoverable.js +1 -1
  717. package/dist/Tooltip/TooltipContentImpl.js +1 -1
  718. package/dist/Tooltip/TooltipPortal.js +1 -1
  719. package/dist/Tooltip/TooltipProvider.cjs +1 -1
  720. package/dist/Tooltip/TooltipProvider.js +1 -1
  721. package/dist/Tooltip/TooltipRoot.cjs +8 -8
  722. package/dist/Tooltip/TooltipRoot.js +9 -9
  723. package/dist/Tooltip/TooltipTrigger.cjs +2 -2
  724. package/dist/Tooltip/TooltipTrigger.cjs.map +1 -1
  725. package/dist/Tooltip/TooltipTrigger.js +3 -3
  726. package/dist/Tooltip/TooltipTrigger.js.map +1 -1
  727. package/dist/Tree/TreeItem.cjs +5 -5
  728. package/dist/Tree/TreeItem.cjs.map +1 -1
  729. package/dist/Tree/TreeItem.js +6 -6
  730. package/dist/Tree/TreeItem.js.map +1 -1
  731. package/dist/Tree/TreeRoot.cjs +8 -8
  732. package/dist/Tree/TreeRoot.cjs.map +1 -1
  733. package/dist/Tree/TreeRoot.js +9 -9
  734. package/dist/Tree/TreeRoot.js.map +1 -1
  735. package/dist/Tree/TreeVirtualizer.js +1 -1
  736. package/dist/Viewport/Viewport.js +1 -1
  737. package/dist/VisuallyHidden/VisuallyHidden.cjs +3 -3
  738. package/dist/VisuallyHidden/VisuallyHidden.js +4 -4
  739. package/dist/VisuallyHidden/VisuallyHiddenInput.cjs +9 -3
  740. package/dist/VisuallyHidden/VisuallyHiddenInput.cjs.map +1 -1
  741. package/dist/VisuallyHidden/VisuallyHiddenInput.js +10 -4
  742. package/dist/VisuallyHidden/VisuallyHiddenInput.js.map +1 -1
  743. package/dist/VisuallyHidden/VisuallyHiddenInputBubble.cjs +1 -1
  744. package/dist/VisuallyHidden/VisuallyHiddenInputBubble.js +2 -2
  745. package/dist/component/Arrow.cjs +2 -2
  746. package/dist/component/Arrow.js +3 -3
  747. package/dist/component/BaseSeparator.cjs +1 -1
  748. package/dist/component/BaseSeparator.js +2 -2
  749. package/dist/constant/components.cjs +4 -0
  750. package/dist/constant/components.cjs.map +1 -1
  751. package/dist/constant/components.js +4 -0
  752. package/dist/constant/components.js.map +1 -1
  753. package/dist/date/comparators.cjs +1 -1
  754. package/dist/date/comparators.cjs.map +1 -1
  755. package/dist/date/comparators.js +2 -2
  756. package/dist/date/comparators.js.map +1 -1
  757. package/dist/date/parser.cjs +2 -2
  758. package/dist/date/parser.js +3 -3
  759. package/dist/date/useDateField.cjs +9 -9
  760. package/dist/date/useDateField.cjs.map +1 -1
  761. package/dist/date/useDateField.js +10 -10
  762. package/dist/date/useDateField.js.map +1 -1
  763. package/dist/date/utils.cjs +2 -2
  764. package/dist/date/utils.cjs.map +1 -1
  765. package/dist/date/utils.js +2 -2
  766. package/dist/date/utils.js.map +1 -1
  767. package/dist/index.cjs +91 -87
  768. package/dist/index.cjs.map +1 -1
  769. package/dist/index.d.ts +75 -12
  770. package/dist/index.js +43 -41
  771. package/dist/index.js.map +1 -1
  772. package/dist/shared/nullish.cjs +1 -1
  773. package/dist/shared/nullish.cjs.map +1 -1
  774. package/dist/shared/nullish.js +1 -1
  775. package/dist/shared/nullish.js.map +1 -1
  776. package/dist/shared/useBodyScrollLock.cjs +2 -2
  777. package/dist/shared/useBodyScrollLock.cjs.map +1 -1
  778. package/dist/shared/useBodyScrollLock.js +4 -4
  779. package/dist/shared/useBodyScrollLock.js.map +1 -1
  780. package/dist/shared/useDateFormatter.js +2 -2
  781. package/dist/shared/useForwardProps.cjs +2 -2
  782. package/dist/shared/useForwardProps.cjs.map +1 -1
  783. package/dist/shared/useForwardProps.js +2 -2
  784. package/dist/shared/useForwardProps.js.map +1 -1
  785. package/dist/shared/useGraceArea.cjs +1 -1
  786. package/dist/shared/useGraceArea.cjs.map +1 -1
  787. package/dist/shared/useGraceArea.js +1 -1
  788. package/dist/shared/useGraceArea.js.map +1 -1
  789. package/dist/shared/useId.cjs +1 -1
  790. package/dist/shared/useId.cjs.map +1 -1
  791. package/dist/shared/useId.js +1 -1
  792. package/dist/shared/useId.js.map +1 -1
  793. package/dist/shared/useSelectionBehavior.cjs +1 -1
  794. package/dist/shared/useSelectionBehavior.cjs.map +1 -1
  795. package/dist/shared/useSelectionBehavior.js +1 -1
  796. package/dist/shared/useSelectionBehavior.js.map +1 -1
  797. package/dist/shared/useSingleOrMultipleValue.cjs +5 -5
  798. package/dist/shared/useSingleOrMultipleValue.cjs.map +1 -1
  799. package/dist/shared/useSingleOrMultipleValue.js +5 -5
  800. package/dist/shared/useSingleOrMultipleValue.js.map +1 -1
  801. package/dist/shared/useSize.cjs +1 -1
  802. package/dist/shared/useSize.cjs.map +1 -1
  803. package/dist/shared/useSize.js +1 -1
  804. package/dist/shared/useSize.js.map +1 -1
  805. package/dist/shared/useTypeahead.cjs +1 -1
  806. package/dist/shared/useTypeahead.cjs.map +1 -1
  807. package/dist/shared/useTypeahead.js +1 -1
  808. package/dist/shared/useTypeahead.js.map +1 -1
  809. package/dist/utils/layout.cjs +1 -1
  810. package/dist/utils/layout.cjs.map +1 -1
  811. package/dist/utils/layout.js +1 -1
  812. package/dist/utils/layout.js.map +1 -1
  813. package/dist/utils/style.cjs +2 -2
  814. package/dist/utils/style.cjs.map +1 -1
  815. package/dist/utils/style.js +3 -3
  816. package/dist/utils/style.js.map +1 -1
  817. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"TimeFieldRoot.cjs","sources":["../../src/TimeField/TimeFieldRoot.vue"],"sourcesContent":["<script lang=\"ts\">\nimport { type DateValue, Time, getLocalTimeZone, isEqualDay, toCalendarDateTime, today } from '@internationalized/date'\n\nimport type { Ref } from 'vue'\nimport type { PrimitiveProps } from '@/Primitive'\nimport { type Formatter, createContext, useDateFormatter, useDirection, useKbd, useLocale } from '@/shared'\nimport {\n type HourCycle,\n type SegmentPart,\n type SegmentValueObj,\n type TimeValue,\n createContent,\n getDefaultTime,\n getTimeFieldSegmentElements,\n initializeTimeSegmentValues,\n isSegmentNavigationKey,\n syncTimeSegmentValues,\n\n} from '@/shared/date'\nimport { isBefore } from '@/date'\nimport type { Direction, FormFieldProps } from '@/shared/types'\n\ntype TimeFieldRootContext = {\n locale: Ref<string>\n modelValue: Ref<DateValue | undefined>\n placeholder: Ref<DateValue>\n isInvalid: Ref<boolean>\n disabled: Ref<boolean>\n readonly: Ref<boolean>\n formatter: Formatter\n hourCycle: HourCycle\n segmentValues: Ref<SegmentValueObj>\n segmentContents: Ref<{ part: SegmentPart, value: string }[]>\n elements: Ref<Set<HTMLElement>>\n focusNext: () => void\n setFocusedElement: (el: HTMLElement) => void\n}\n\nexport interface TimeFieldRootProps extends PrimitiveProps, FormFieldProps {\n /** The default value for the calendar */\n defaultValue?: TimeValue\n /** The default placeholder date */\n defaultPlaceholder?: TimeValue\n /** The placeholder date, which is used to determine what time to display when no time is selected. This updates as the user navigates the field */\n placeholder?: TimeValue\n /** The controlled checked state of the field. Can be bound as `v-model`. */\n modelValue?: TimeValue | null\n /** The hour cycle used for formatting times. Defaults to the local preference */\n hourCycle?: HourCycle\n /** The granularity to use for formatting times. Defaults to minute if a Time is provided, otherwise defaults to minute. The field will render segments for each part of the date up to and including the specified granularity */\n granularity?: 'hour' | 'minute' | 'second'\n /** Whether or not to hide the time zone segment of the field */\n hideTimeZone?: boolean\n /** The maximum date that can be selected */\n maxValue?: TimeValue\n /** The minimum date that can be selected */\n minValue?: TimeValue\n /** The locale to use for formatting dates */\n locale?: string\n /** Whether or not the time field is disabled */\n disabled?: boolean\n /** Whether or not the time field is readonly */\n readonly?: boolean\n /** Id of the element */\n id?: string\n /** The reading direction of the time field when applicable. <br> If omitted, inherits globally from `ConfigProvider` or assumes LTR (left-to-right) reading mode. */\n dir?: Direction\n}\n\nexport type TimeFieldRootEmits = {\n /** Event handler called whenever the model value changes */\n 'update:modelValue': [date: TimeValue | undefined]\n /** Event handler called whenever the placeholder value changes */\n 'update:placeholder': [date: TimeValue]\n}\n\nexport const [injectTimeFieldRootContext, provideTimeFieldRootContext]\n = createContext<TimeFieldRootContext>('TimeFieldRoot')\n\nfunction convertValue(value: TimeValue, date: DateValue = today(getLocalTimeZone())) {\n if (value && 'day' in value) {\n return value\n }\n\n return toCalendarDateTime(date, value)\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { computed, nextTick, onMounted, ref, toRefs, watch } from 'vue'\nimport { Primitive, usePrimitiveElement } from '@/Primitive'\nimport { useVModel } from '@vueuse/core'\nimport { VisuallyHidden } from '@/VisuallyHidden'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst props = withDefaults(defineProps<TimeFieldRootProps>(), {\n defaultValue: undefined,\n disabled: false,\n readonly: false,\n placeholder: undefined,\n isDateUnavailable: undefined,\n})\nconst emits = defineEmits<TimeFieldRootEmits>()\ndefineSlots<{\n default: (props: {\n /** The current time of the field */\n modelValue: TimeValue | undefined\n /** The time field segment contents */\n segments: { part: SegmentPart, value: string }[]\n /** Value if the input is invalid */\n isInvalid: boolean\n }) => any\n}>()\n\nconst { disabled, readonly, granularity, defaultValue, minValue, maxValue, dir: propDir, locale: propLocale } = toRefs(props)\nconst locale = useLocale(propLocale)\nconst dir = useDirection(propDir)\n\nconst formatter = useDateFormatter(locale.value)\nconst { primitiveElement, currentElement: parentElement }\n = usePrimitiveElement()\nconst segmentElements = ref<Set<HTMLElement>>(new Set())\n\nconst convertedMinValue = computed(() => minValue.value ? convertValue(minValue.value) : undefined)\nconst convertedMaxValue = computed(() => maxValue.value ? convertValue(maxValue.value) : undefined)\n\nonMounted(() => {\n getTimeFieldSegmentElements(parentElement.value).forEach(item => segmentElements.value.add(item as HTMLElement))\n})\n\nconst modelValue = useVModel(props, 'modelValue', emits, {\n defaultValue: defaultValue.value,\n passive: (props.modelValue === undefined) as false,\n}) as Ref<TimeValue>\n\nconst convertedModelValue = computed({\n get() {\n return convertValue(modelValue.value)\n },\n set(newValue) {\n if (newValue)\n modelValue.value = modelValue.value && 'day' in modelValue.value ? newValue : new Time(newValue.hour, newValue.minute, newValue.second, modelValue.value?.millisecond)\n\n return newValue\n },\n})\n\nconst defaultDate = getDefaultTime({\n defaultPlaceholder: props.placeholder,\n defaultValue: modelValue.value,\n})\n\nconst placeholder = useVModel(props, 'placeholder', emits, {\n defaultValue: props.defaultPlaceholder ?? defaultDate.copy(),\n passive: (props.placeholder === undefined) as false,\n}) as Ref<TimeValue>\n\nconst convertedPlaceholder = computed({\n get() {\n return convertValue(placeholder.value)\n },\n set(newValue) {\n if (newValue)\n placeholder.value = 'day' in placeholder.value ? newValue.copy() : new Time(newValue.hour, newValue.minute, newValue.second, placeholder.value?.millisecond)\n return newValue\n },\n})\n\nconst inferredGranularity = computed(() => {\n if (granularity.value)\n return granularity.value\n\n return 'minute'\n})\n\nconst isInvalid = computed(() => {\n if (!modelValue.value)\n return false\n\n if (convertedMinValue.value && isBefore(convertedModelValue.value, convertedMinValue.value))\n return true\n\n if (convertedMaxValue.value && isBefore(convertedMaxValue.value, convertedModelValue.value))\n return true\n\n return false\n})\n\nconst initialSegments = initializeTimeSegmentValues(inferredGranularity.value)\n\nconst segmentValues = ref<SegmentValueObj>(modelValue.value ? { ...syncTimeSegmentValues({ value: convertedModelValue.value, formatter }) } : { ...initialSegments })\n\nconst allSegmentContent = computed(() => createContent({\n granularity: inferredGranularity.value,\n dateRef: convertedPlaceholder.value,\n formatter,\n hideTimeZone: props.hideTimeZone,\n hourCycle: props.hourCycle,\n segmentValues: segmentValues.value,\n locale,\n isTimeValue: true,\n}))\n\nconst segmentContents = computed(() => allSegmentContent.value.arr)\n\nconst editableSegmentContents = computed(() => segmentContents.value.filter(({ part }) => part !== 'literal'))\n\nwatch(locale, (value) => {\n if (formatter.getLocale() !== value) {\n formatter.setLocale(value)\n // Locale changed, so we need to clear the segment elements and re-get them (different order)\n // Get the focusable elements again on the next tick\n nextTick(() => {\n segmentElements.value.clear()\n getTimeFieldSegmentElements(parentElement.value).forEach(item => segmentElements.value.add(item as HTMLElement))\n })\n }\n})\n\nwatch(convertedModelValue, (_modelValue) => {\n if (_modelValue !== undefined && (!isEqualDay(convertedPlaceholder.value, _modelValue) || convertedPlaceholder.value.compare(_modelValue) !== 0))\n placeholder.value = _modelValue.copy()\n})\n\nwatch([convertedModelValue, locale], ([_modelValue]) => {\n if (_modelValue !== undefined) {\n segmentValues.value = { ...syncTimeSegmentValues({ value: _modelValue, formatter }) }\n }\n else if (Object.values(segmentValues.value).every(value => value === null)) {\n segmentValues.value = { ...initialSegments }\n }\n})\n\nconst currentFocusedElement = ref<HTMLElement | null>(null)\n\nconst currentSegmentIndex = computed(() =>\n Array.from(segmentElements.value).findIndex(el =>\n el.getAttribute('data-reka-time-field-segment')\n === currentFocusedElement.value?.getAttribute('data-reka-time-field-segment')))\n\nconst nextFocusableSegment = computed(() => {\n const sign = dir.value === 'rtl' ? -1 : 1\n const nextCondition = sign < 0 ? currentSegmentIndex.value < 0 : currentSegmentIndex.value > segmentElements.value.size - 1\n if (nextCondition)\n return null\n const segmentToFocus = Array.from(segmentElements.value)[currentSegmentIndex.value + sign]\n return segmentToFocus\n})\n\nconst prevFocusableSegment = computed(() => {\n const sign = dir.value === 'rtl' ? -1 : 1\n const prevCondition = sign > 0 ? currentSegmentIndex.value < 0 : currentSegmentIndex.value > segmentElements.value.size - 1\n if (prevCondition)\n return null\n\n const segmentToFocus = Array.from(segmentElements.value)[currentSegmentIndex.value - sign]\n return segmentToFocus\n})\n\nconst kbd = useKbd()\n\nfunction handleKeydown(e: KeyboardEvent) {\n if (!isSegmentNavigationKey(e.key))\n return\n if (e.key === kbd.ARROW_LEFT)\n prevFocusableSegment.value?.focus()\n if (e.key === kbd.ARROW_RIGHT)\n nextFocusableSegment.value?.focus()\n}\n\nfunction setFocusedElement(el: HTMLElement) {\n currentFocusedElement.value = el\n}\n\nprovideTimeFieldRootContext({\n locale,\n modelValue: convertedModelValue,\n placeholder: convertedPlaceholder,\n disabled,\n formatter,\n hourCycle: props.hourCycle,\n readonly,\n segmentValues,\n isInvalid,\n segmentContents: editableSegmentContents,\n elements: segmentElements,\n setFocusedElement,\n focusNext() {\n nextFocusableSegment.value?.focus()\n },\n})\n\ndefineExpose({\n /** Helper to set the focused element inside the DateField */\n setFocusedElement,\n})\n</script>\n\n<template>\n <Primitive\n v-bind=\"$attrs\"\n ref=\"primitiveElement\"\n role=\"group\"\n :aria-disabled=\"disabled ? true : undefined\"\n :data-disabled=\"disabled ? '' : undefined\"\n :data-readonly=\"readonly ? '' : undefined\"\n :data-invalid=\"isInvalid ? '' : undefined\"\n :dir=\"dir\"\n @keydown.left.right=\"handleKeydown\"\n >\n <slot\n :model-value=\"modelValue\"\n :segments=\"segmentContents\"\n :is-invalid=\"isInvalid\"\n />\n\n <VisuallyHidden\n :id=\"id\"\n as=\"input\"\n feature=\"focusable\"\n tabindex=\"-1\"\n :value=\"modelValue ? modelValue.toString() : ''\"\n :name=\"name\"\n :disabled=\"disabled\"\n :required=\"required\"\n @focus=\"Array.from(segmentElements)?.[0]?.focus()\"\n />\n </Primitive>\n</template>\n"],"names":["createContext","date","today","getLocalTimeZone","toCalendarDateTime","toRefs","useLocale","useDirection","useDateFormatter","usePrimitiveElement","ref","computed","onMounted","getTimeFieldSegmentElements","useVModel","Time","getDefaultTime","isBefore","initializeTimeSegmentValues","syncTimeSegmentValues","createContent","watch","nextTick","isEqualDay","useKbd","isSegmentNavigationKey"],"mappings":"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"}
1
+ {"version":3,"file":"TimeFieldRoot.cjs","sources":["../../src/TimeField/TimeFieldRoot.vue"],"sourcesContent":["<script lang=\"ts\">\nimport { type DateValue, Time, getLocalTimeZone, isEqualDay, toCalendarDateTime, today } from '@internationalized/date'\n\nimport type { Ref } from 'vue'\nimport type { PrimitiveProps } from '@/Primitive'\nimport { type Formatter, createContext, isNullish, useDateFormatter, useDirection, useKbd, useLocale } from '@/shared'\nimport {\n type HourCycle,\n type SegmentPart,\n type SegmentValueObj,\n type TimeValue,\n createContent,\n getDefaultTime,\n getTimeFieldSegmentElements,\n initializeTimeSegmentValues,\n isSegmentNavigationKey,\n syncTimeSegmentValues,\n\n} from '@/shared/date'\nimport { isBefore } from '@/date'\nimport type { Direction, FormFieldProps } from '@/shared/types'\n\ntype TimeFieldRootContext = {\n locale: Ref<string>\n modelValue: Ref<DateValue | undefined>\n placeholder: Ref<DateValue>\n isInvalid: Ref<boolean>\n disabled: Ref<boolean>\n readonly: Ref<boolean>\n formatter: Formatter\n hourCycle: HourCycle\n segmentValues: Ref<SegmentValueObj>\n segmentContents: Ref<{ part: SegmentPart, value: string }[]>\n elements: Ref<Set<HTMLElement>>\n focusNext: () => void\n setFocusedElement: (el: HTMLElement) => void\n}\n\nexport interface TimeFieldRootProps extends PrimitiveProps, FormFieldProps {\n /** The default value for the calendar */\n defaultValue?: TimeValue\n /** The default placeholder date */\n defaultPlaceholder?: TimeValue\n /** The placeholder date, which is used to determine what time to display when no time is selected. This updates as the user navigates the field */\n placeholder?: TimeValue\n /** The controlled checked state of the field. Can be bound as `v-model`. */\n modelValue?: TimeValue | null\n /** The hour cycle used for formatting times. Defaults to the local preference */\n hourCycle?: HourCycle\n /** The granularity to use for formatting times. Defaults to minute if a Time is provided, otherwise defaults to minute. The field will render segments for each part of the date up to and including the specified granularity */\n granularity?: 'hour' | 'minute' | 'second'\n /** Whether or not to hide the time zone segment of the field */\n hideTimeZone?: boolean\n /** The maximum date that can be selected */\n maxValue?: TimeValue\n /** The minimum date that can be selected */\n minValue?: TimeValue\n /** The locale to use for formatting dates */\n locale?: string\n /** Whether or not the time field is disabled */\n disabled?: boolean\n /** Whether or not the time field is readonly */\n readonly?: boolean\n /** Id of the element */\n id?: string\n /** The reading direction of the time field when applicable. <br> If omitted, inherits globally from `ConfigProvider` or assumes LTR (left-to-right) reading mode. */\n dir?: Direction\n}\n\nexport type TimeFieldRootEmits = {\n /** Event handler called whenever the model value changes */\n 'update:modelValue': [date: TimeValue | undefined]\n /** Event handler called whenever the placeholder value changes */\n 'update:placeholder': [date: TimeValue]\n}\n\nexport const [injectTimeFieldRootContext, provideTimeFieldRootContext]\n = createContext<TimeFieldRootContext>('TimeFieldRoot')\n\nfunction convertValue(value: TimeValue, date: DateValue = today(getLocalTimeZone())) {\n if (value && 'day' in value) {\n return value\n }\n\n return toCalendarDateTime(date, value)\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { computed, nextTick, onMounted, ref, toRefs, watch } from 'vue'\nimport { Primitive, usePrimitiveElement } from '@/Primitive'\nimport { useVModel } from '@vueuse/core'\nimport { VisuallyHidden } from '@/VisuallyHidden'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst props = withDefaults(defineProps<TimeFieldRootProps>(), {\n defaultValue: undefined,\n disabled: false,\n readonly: false,\n placeholder: undefined,\n isDateUnavailable: undefined,\n})\nconst emits = defineEmits<TimeFieldRootEmits>()\ndefineSlots<{\n default: (props: {\n /** The current time of the field */\n modelValue: TimeValue | undefined\n /** The time field segment contents */\n segments: { part: SegmentPart, value: string }[]\n /** Value if the input is invalid */\n isInvalid: boolean\n }) => any\n}>()\n\nconst { disabled, readonly, granularity, defaultValue, minValue, maxValue, dir: propDir, locale: propLocale } = toRefs(props)\nconst locale = useLocale(propLocale)\nconst dir = useDirection(propDir)\n\nconst formatter = useDateFormatter(locale.value)\nconst { primitiveElement, currentElement: parentElement }\n = usePrimitiveElement()\nconst segmentElements = ref<Set<HTMLElement>>(new Set())\n\nconst convertedMinValue = computed(() => minValue.value ? convertValue(minValue.value) : undefined)\nconst convertedMaxValue = computed(() => maxValue.value ? convertValue(maxValue.value) : undefined)\n\nonMounted(() => {\n getTimeFieldSegmentElements(parentElement.value).forEach(item => segmentElements.value.add(item as HTMLElement))\n})\n\nconst modelValue = useVModel(props, 'modelValue', emits, {\n defaultValue: defaultValue.value,\n passive: (props.modelValue === undefined) as false,\n}) as Ref<TimeValue>\n\nconst convertedModelValue = computed({\n get() {\n if (isNullish(modelValue.value))\n return modelValue.value\n return convertValue(modelValue.value)\n },\n set(newValue) {\n if (newValue)\n modelValue.value = modelValue.value && 'day' in modelValue.value ? newValue : new Time(newValue.hour, newValue.minute, newValue.second, modelValue.value?.millisecond)\n\n return newValue\n },\n})\n\nconst defaultDate = getDefaultTime({\n defaultPlaceholder: props.placeholder,\n defaultValue: modelValue.value,\n})\n\nconst placeholder = useVModel(props, 'placeholder', emits, {\n defaultValue: props.defaultPlaceholder ?? defaultDate.copy(),\n passive: (props.placeholder === undefined) as false,\n}) as Ref<TimeValue>\n\nconst convertedPlaceholder = computed({\n get() {\n return convertValue(placeholder.value)\n },\n set(newValue) {\n if (newValue)\n placeholder.value = 'day' in placeholder.value ? newValue.copy() : new Time(newValue.hour, newValue.minute, newValue.second, placeholder.value?.millisecond)\n return newValue\n },\n})\n\nconst inferredGranularity = computed(() => {\n if (granularity.value)\n return granularity.value\n\n return 'minute'\n})\n\nconst isInvalid = computed(() => {\n if (!modelValue.value)\n return false\n\n if (convertedMinValue.value && isBefore(convertedModelValue.value, convertedMinValue.value))\n return true\n\n if (convertedMaxValue.value && isBefore(convertedMaxValue.value, convertedModelValue.value))\n return true\n\n return false\n})\n\nconst initialSegments = initializeTimeSegmentValues(inferredGranularity.value)\n\nconst segmentValues = ref<SegmentValueObj>(modelValue.value ? { ...syncTimeSegmentValues({ value: convertedModelValue.value, formatter }) } : { ...initialSegments })\n\nconst allSegmentContent = computed(() => createContent({\n granularity: inferredGranularity.value,\n dateRef: convertedPlaceholder.value,\n formatter,\n hideTimeZone: props.hideTimeZone,\n hourCycle: props.hourCycle,\n segmentValues: segmentValues.value,\n locale,\n isTimeValue: true,\n}))\n\nconst segmentContents = computed(() => allSegmentContent.value.arr)\n\nconst editableSegmentContents = computed(() => segmentContents.value.filter(({ part }) => part !== 'literal'))\n\nwatch(locale, (value) => {\n if (formatter.getLocale() !== value) {\n formatter.setLocale(value)\n // Locale changed, so we need to clear the segment elements and re-get them (different order)\n // Get the focusable elements again on the next tick\n nextTick(() => {\n segmentElements.value.clear()\n getTimeFieldSegmentElements(parentElement.value).forEach(item => segmentElements.value.add(item as HTMLElement))\n })\n }\n})\n\nwatch(convertedModelValue, (_modelValue) => {\n if (!isNullish(_modelValue) && (!isEqualDay(convertedPlaceholder.value, _modelValue) || convertedPlaceholder.value.compare(_modelValue) !== 0))\n placeholder.value = _modelValue.copy()\n})\n\nwatch([convertedModelValue, locale], ([_modelValue]) => {\n if (!isNullish(_modelValue)) {\n segmentValues.value = { ...syncTimeSegmentValues({ value: _modelValue, formatter }) }\n }\n else if (Object.values(segmentValues.value).every(value => value === null) || isNullish(_modelValue)) {\n segmentValues.value = { ...initialSegments }\n }\n})\n\nconst currentFocusedElement = ref<HTMLElement | null>(null)\n\nconst currentSegmentIndex = computed(() =>\n Array.from(segmentElements.value).findIndex(el =>\n el.getAttribute('data-reka-time-field-segment')\n === currentFocusedElement.value?.getAttribute('data-reka-time-field-segment')))\n\nconst nextFocusableSegment = computed(() => {\n const sign = dir.value === 'rtl' ? -1 : 1\n const nextCondition = sign < 0 ? currentSegmentIndex.value < 0 : currentSegmentIndex.value > segmentElements.value.size - 1\n if (nextCondition)\n return null\n const segmentToFocus = Array.from(segmentElements.value)[currentSegmentIndex.value + sign]\n return segmentToFocus\n})\n\nconst prevFocusableSegment = computed(() => {\n const sign = dir.value === 'rtl' ? -1 : 1\n const prevCondition = sign > 0 ? currentSegmentIndex.value < 0 : currentSegmentIndex.value > segmentElements.value.size - 1\n if (prevCondition)\n return null\n\n const segmentToFocus = Array.from(segmentElements.value)[currentSegmentIndex.value - sign]\n return segmentToFocus\n})\n\nconst kbd = useKbd()\n\nfunction handleKeydown(e: KeyboardEvent) {\n if (!isSegmentNavigationKey(e.key))\n return\n if (e.key === kbd.ARROW_LEFT)\n prevFocusableSegment.value?.focus()\n if (e.key === kbd.ARROW_RIGHT)\n nextFocusableSegment.value?.focus()\n}\n\nfunction setFocusedElement(el: HTMLElement) {\n currentFocusedElement.value = el\n}\n\nprovideTimeFieldRootContext({\n locale,\n modelValue: convertedModelValue,\n placeholder: convertedPlaceholder,\n disabled,\n formatter,\n hourCycle: props.hourCycle,\n readonly,\n segmentValues,\n isInvalid,\n segmentContents: editableSegmentContents,\n elements: segmentElements,\n setFocusedElement,\n focusNext() {\n nextFocusableSegment.value?.focus()\n },\n})\n\ndefineExpose({\n /** Helper to set the focused element inside the DateField */\n setFocusedElement,\n})\n</script>\n\n<template>\n <Primitive\n v-bind=\"$attrs\"\n ref=\"primitiveElement\"\n role=\"group\"\n :aria-disabled=\"disabled ? true : undefined\"\n :data-disabled=\"disabled ? '' : undefined\"\n :data-readonly=\"readonly ? '' : undefined\"\n :data-invalid=\"isInvalid ? '' : undefined\"\n :dir=\"dir\"\n @keydown.left.right=\"handleKeydown\"\n >\n <slot\n :model-value=\"modelValue\"\n :segments=\"segmentContents\"\n :is-invalid=\"isInvalid\"\n />\n\n <VisuallyHidden\n :id=\"id\"\n as=\"input\"\n feature=\"focusable\"\n tabindex=\"-1\"\n :value=\"modelValue ? modelValue.toString() : ''\"\n :name=\"name\"\n :disabled=\"disabled\"\n :required=\"required\"\n @focus=\"Array.from(segmentElements)?.[0]?.focus()\"\n />\n </Primitive>\n</template>\n"],"names":["createContext","date","today","getLocalTimeZone","toCalendarDateTime","toRefs","useLocale","useDirection","useDateFormatter","usePrimitiveElement","ref","computed","onMounted","getTimeFieldSegmentElements","useVModel","isNullish","Time","getDefaultTime","isBefore","initializeTimeSegmentValues","syncTimeSegmentValues","createContent","watch","nextTick","isEqualDay","useKbd","isSegmentNavigationKey"],"mappings":"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"}
@@ -1,7 +1,8 @@
1
- import { defineComponent, toRefs, ref, computed, onMounted, watch, nextTick, openBlock, createBlock, unref, mergeProps, withKeys, withCtx, renderSlot, createVNode } from 'vue';
1
+ import { defineComponent, toRefs, ref, computed, onMounted, watch, nextTick, createBlock, openBlock, unref, mergeProps, withKeys, withCtx, renderSlot, createVNode } from 'vue';
2
2
  import { useVModel } from '@vueuse/core';
3
- import { Time, isEqualDay, toCalendarDateTime, today, getLocalTimeZone } from '@internationalized/date';
3
+ import { today, Time, isEqualDay, toCalendarDateTime, getLocalTimeZone } from '@internationalized/date';
4
4
  import { o as getDefaultTime, b as isBefore } from '../date/comparators.js';
5
+ import { c as createContext } from '../shared/createContext.js';
5
6
  import { u as useLocale } from '../shared/useLocale.js';
6
7
  import { u as useDirection } from '../shared/useDirection.js';
7
8
  import { u as useDateFormatter } from '../shared/useDateFormatter.js';
@@ -10,8 +11,8 @@ import { a as getTimeFieldSegmentElements, i as isSegmentNavigationKey } from '.
10
11
  import { a as initializeTimeSegmentValues, b as syncTimeSegmentValues, c as createContent } from '../date/parser.js';
11
12
  import { P as Primitive } from '../Primitive/Primitive.js';
12
13
  import { _ as _sfc_main$1 } from '../VisuallyHidden/VisuallyHidden.js';
13
- import { c as createContext } from '../shared/createContext.js';
14
14
  import { u as useKbd } from '../shared/useKbd.js';
15
+ import { i as isNullish } from '../shared/nullish.js';
15
16
 
16
17
  const [injectTimeFieldRootContext, provideTimeFieldRootContext] = createContext("TimeFieldRoot");
17
18
  function convertValue(value, date = today(getLocalTimeZone())) {
@@ -26,9 +27,9 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
26
27
  },
27
28
  __name: "TimeFieldRoot",
28
29
  props: {
29
- defaultValue: { default: undefined },
30
+ defaultValue: { default: void 0 },
30
31
  defaultPlaceholder: {},
31
- placeholder: { default: undefined },
32
+ placeholder: { default: void 0 },
32
33
  modelValue: {},
33
34
  hourCycle: {},
34
35
  granularity: {},
@@ -55,17 +56,19 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
55
56
  const formatter = useDateFormatter(locale.value);
56
57
  const { primitiveElement, currentElement: parentElement } = usePrimitiveElement();
57
58
  const segmentElements = ref(/* @__PURE__ */ new Set());
58
- const convertedMinValue = computed(() => minValue.value ? convertValue(minValue.value) : undefined);
59
- const convertedMaxValue = computed(() => maxValue.value ? convertValue(maxValue.value) : undefined);
59
+ const convertedMinValue = computed(() => minValue.value ? convertValue(minValue.value) : void 0);
60
+ const convertedMaxValue = computed(() => maxValue.value ? convertValue(maxValue.value) : void 0);
60
61
  onMounted(() => {
61
62
  getTimeFieldSegmentElements(parentElement.value).forEach((item) => segmentElements.value.add(item));
62
63
  });
63
64
  const modelValue = useVModel(props, "modelValue", emits, {
64
65
  defaultValue: defaultValue.value,
65
- passive: props.modelValue === undefined
66
+ passive: props.modelValue === void 0
66
67
  });
67
68
  const convertedModelValue = computed({
68
69
  get() {
70
+ if (isNullish(modelValue.value))
71
+ return modelValue.value;
69
72
  return convertValue(modelValue.value);
70
73
  },
71
74
  set(newValue) {
@@ -80,7 +83,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
80
83
  });
81
84
  const placeholder = useVModel(props, "placeholder", emits, {
82
85
  defaultValue: props.defaultPlaceholder ?? defaultDate.copy(),
83
- passive: props.placeholder === undefined
86
+ passive: props.placeholder === void 0
84
87
  });
85
88
  const convertedPlaceholder = computed({
86
89
  get() {
@@ -130,13 +133,13 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
130
133
  }
131
134
  });
132
135
  watch(convertedModelValue, (_modelValue) => {
133
- if (_modelValue !== undefined && (!isEqualDay(convertedPlaceholder.value, _modelValue) || convertedPlaceholder.value.compare(_modelValue) !== 0))
136
+ if (!isNullish(_modelValue) && (!isEqualDay(convertedPlaceholder.value, _modelValue) || convertedPlaceholder.value.compare(_modelValue) !== 0))
134
137
  placeholder.value = _modelValue.copy();
135
138
  });
136
139
  watch([convertedModelValue, locale], ([_modelValue]) => {
137
- if (_modelValue !== undefined) {
140
+ if (!isNullish(_modelValue)) {
138
141
  segmentValues.value = { ...syncTimeSegmentValues({ value: _modelValue, formatter }) };
139
- } else if (Object.values(segmentValues.value).every((value) => value === null)) {
142
+ } else if (Object.values(segmentValues.value).every((value) => value === null) || isNullish(_modelValue)) {
140
143
  segmentValues.value = { ...initialSegments };
141
144
  }
142
145
  });
@@ -196,10 +199,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
196
199
  ref_key: "primitiveElement",
197
200
  ref: primitiveElement,
198
201
  role: "group",
199
- "aria-disabled": unref(disabled) ? true : undefined,
200
- "data-disabled": unref(disabled) ? "" : undefined,
201
- "data-readonly": unref(readonly) ? "" : undefined,
202
- "data-invalid": isInvalid.value ? "" : undefined,
202
+ "aria-disabled": unref(disabled) ? true : void 0,
203
+ "data-disabled": unref(disabled) ? "" : void 0,
204
+ "data-readonly": unref(readonly) ? "" : void 0,
205
+ "data-invalid": isInvalid.value ? "" : void 0,
203
206
  dir: unref(dir),
204
207
  onKeydown: withKeys(handleKeydown, ["left", "right"])
205
208
  }), {
@@ -1 +1 @@
1
- {"version":3,"file":"TimeFieldRoot.js","sources":["../../src/TimeField/TimeFieldRoot.vue"],"sourcesContent":["<script lang=\"ts\">\nimport { type DateValue, Time, getLocalTimeZone, isEqualDay, toCalendarDateTime, today } from '@internationalized/date'\n\nimport type { Ref } from 'vue'\nimport type { PrimitiveProps } from '@/Primitive'\nimport { type Formatter, createContext, useDateFormatter, useDirection, useKbd, useLocale } from '@/shared'\nimport {\n type HourCycle,\n type SegmentPart,\n type SegmentValueObj,\n type TimeValue,\n createContent,\n getDefaultTime,\n getTimeFieldSegmentElements,\n initializeTimeSegmentValues,\n isSegmentNavigationKey,\n syncTimeSegmentValues,\n\n} from '@/shared/date'\nimport { isBefore } from '@/date'\nimport type { Direction, FormFieldProps } from '@/shared/types'\n\ntype TimeFieldRootContext = {\n locale: Ref<string>\n modelValue: Ref<DateValue | undefined>\n placeholder: Ref<DateValue>\n isInvalid: Ref<boolean>\n disabled: Ref<boolean>\n readonly: Ref<boolean>\n formatter: Formatter\n hourCycle: HourCycle\n segmentValues: Ref<SegmentValueObj>\n segmentContents: Ref<{ part: SegmentPart, value: string }[]>\n elements: Ref<Set<HTMLElement>>\n focusNext: () => void\n setFocusedElement: (el: HTMLElement) => void\n}\n\nexport interface TimeFieldRootProps extends PrimitiveProps, FormFieldProps {\n /** The default value for the calendar */\n defaultValue?: TimeValue\n /** The default placeholder date */\n defaultPlaceholder?: TimeValue\n /** The placeholder date, which is used to determine what time to display when no time is selected. This updates as the user navigates the field */\n placeholder?: TimeValue\n /** The controlled checked state of the field. Can be bound as `v-model`. */\n modelValue?: TimeValue | null\n /** The hour cycle used for formatting times. Defaults to the local preference */\n hourCycle?: HourCycle\n /** The granularity to use for formatting times. Defaults to minute if a Time is provided, otherwise defaults to minute. The field will render segments for each part of the date up to and including the specified granularity */\n granularity?: 'hour' | 'minute' | 'second'\n /** Whether or not to hide the time zone segment of the field */\n hideTimeZone?: boolean\n /** The maximum date that can be selected */\n maxValue?: TimeValue\n /** The minimum date that can be selected */\n minValue?: TimeValue\n /** The locale to use for formatting dates */\n locale?: string\n /** Whether or not the time field is disabled */\n disabled?: boolean\n /** Whether or not the time field is readonly */\n readonly?: boolean\n /** Id of the element */\n id?: string\n /** The reading direction of the time field when applicable. <br> If omitted, inherits globally from `ConfigProvider` or assumes LTR (left-to-right) reading mode. */\n dir?: Direction\n}\n\nexport type TimeFieldRootEmits = {\n /** Event handler called whenever the model value changes */\n 'update:modelValue': [date: TimeValue | undefined]\n /** Event handler called whenever the placeholder value changes */\n 'update:placeholder': [date: TimeValue]\n}\n\nexport const [injectTimeFieldRootContext, provideTimeFieldRootContext]\n = createContext<TimeFieldRootContext>('TimeFieldRoot')\n\nfunction convertValue(value: TimeValue, date: DateValue = today(getLocalTimeZone())) {\n if (value && 'day' in value) {\n return value\n }\n\n return toCalendarDateTime(date, value)\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { computed, nextTick, onMounted, ref, toRefs, watch } from 'vue'\nimport { Primitive, usePrimitiveElement } from '@/Primitive'\nimport { useVModel } from '@vueuse/core'\nimport { VisuallyHidden } from '@/VisuallyHidden'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst props = withDefaults(defineProps<TimeFieldRootProps>(), {\n defaultValue: undefined,\n disabled: false,\n readonly: false,\n placeholder: undefined,\n isDateUnavailable: undefined,\n})\nconst emits = defineEmits<TimeFieldRootEmits>()\ndefineSlots<{\n default: (props: {\n /** The current time of the field */\n modelValue: TimeValue | undefined\n /** The time field segment contents */\n segments: { part: SegmentPart, value: string }[]\n /** Value if the input is invalid */\n isInvalid: boolean\n }) => any\n}>()\n\nconst { disabled, readonly, granularity, defaultValue, minValue, maxValue, dir: propDir, locale: propLocale } = toRefs(props)\nconst locale = useLocale(propLocale)\nconst dir = useDirection(propDir)\n\nconst formatter = useDateFormatter(locale.value)\nconst { primitiveElement, currentElement: parentElement }\n = usePrimitiveElement()\nconst segmentElements = ref<Set<HTMLElement>>(new Set())\n\nconst convertedMinValue = computed(() => minValue.value ? convertValue(minValue.value) : undefined)\nconst convertedMaxValue = computed(() => maxValue.value ? convertValue(maxValue.value) : undefined)\n\nonMounted(() => {\n getTimeFieldSegmentElements(parentElement.value).forEach(item => segmentElements.value.add(item as HTMLElement))\n})\n\nconst modelValue = useVModel(props, 'modelValue', emits, {\n defaultValue: defaultValue.value,\n passive: (props.modelValue === undefined) as false,\n}) as Ref<TimeValue>\n\nconst convertedModelValue = computed({\n get() {\n return convertValue(modelValue.value)\n },\n set(newValue) {\n if (newValue)\n modelValue.value = modelValue.value && 'day' in modelValue.value ? newValue : new Time(newValue.hour, newValue.minute, newValue.second, modelValue.value?.millisecond)\n\n return newValue\n },\n})\n\nconst defaultDate = getDefaultTime({\n defaultPlaceholder: props.placeholder,\n defaultValue: modelValue.value,\n})\n\nconst placeholder = useVModel(props, 'placeholder', emits, {\n defaultValue: props.defaultPlaceholder ?? defaultDate.copy(),\n passive: (props.placeholder === undefined) as false,\n}) as Ref<TimeValue>\n\nconst convertedPlaceholder = computed({\n get() {\n return convertValue(placeholder.value)\n },\n set(newValue) {\n if (newValue)\n placeholder.value = 'day' in placeholder.value ? newValue.copy() : new Time(newValue.hour, newValue.minute, newValue.second, placeholder.value?.millisecond)\n return newValue\n },\n})\n\nconst inferredGranularity = computed(() => {\n if (granularity.value)\n return granularity.value\n\n return 'minute'\n})\n\nconst isInvalid = computed(() => {\n if (!modelValue.value)\n return false\n\n if (convertedMinValue.value && isBefore(convertedModelValue.value, convertedMinValue.value))\n return true\n\n if (convertedMaxValue.value && isBefore(convertedMaxValue.value, convertedModelValue.value))\n return true\n\n return false\n})\n\nconst initialSegments = initializeTimeSegmentValues(inferredGranularity.value)\n\nconst segmentValues = ref<SegmentValueObj>(modelValue.value ? { ...syncTimeSegmentValues({ value: convertedModelValue.value, formatter }) } : { ...initialSegments })\n\nconst allSegmentContent = computed(() => createContent({\n granularity: inferredGranularity.value,\n dateRef: convertedPlaceholder.value,\n formatter,\n hideTimeZone: props.hideTimeZone,\n hourCycle: props.hourCycle,\n segmentValues: segmentValues.value,\n locale,\n isTimeValue: true,\n}))\n\nconst segmentContents = computed(() => allSegmentContent.value.arr)\n\nconst editableSegmentContents = computed(() => segmentContents.value.filter(({ part }) => part !== 'literal'))\n\nwatch(locale, (value) => {\n if (formatter.getLocale() !== value) {\n formatter.setLocale(value)\n // Locale changed, so we need to clear the segment elements and re-get them (different order)\n // Get the focusable elements again on the next tick\n nextTick(() => {\n segmentElements.value.clear()\n getTimeFieldSegmentElements(parentElement.value).forEach(item => segmentElements.value.add(item as HTMLElement))\n })\n }\n})\n\nwatch(convertedModelValue, (_modelValue) => {\n if (_modelValue !== undefined && (!isEqualDay(convertedPlaceholder.value, _modelValue) || convertedPlaceholder.value.compare(_modelValue) !== 0))\n placeholder.value = _modelValue.copy()\n})\n\nwatch([convertedModelValue, locale], ([_modelValue]) => {\n if (_modelValue !== undefined) {\n segmentValues.value = { ...syncTimeSegmentValues({ value: _modelValue, formatter }) }\n }\n else if (Object.values(segmentValues.value).every(value => value === null)) {\n segmentValues.value = { ...initialSegments }\n }\n})\n\nconst currentFocusedElement = ref<HTMLElement | null>(null)\n\nconst currentSegmentIndex = computed(() =>\n Array.from(segmentElements.value).findIndex(el =>\n el.getAttribute('data-reka-time-field-segment')\n === currentFocusedElement.value?.getAttribute('data-reka-time-field-segment')))\n\nconst nextFocusableSegment = computed(() => {\n const sign = dir.value === 'rtl' ? -1 : 1\n const nextCondition = sign < 0 ? currentSegmentIndex.value < 0 : currentSegmentIndex.value > segmentElements.value.size - 1\n if (nextCondition)\n return null\n const segmentToFocus = Array.from(segmentElements.value)[currentSegmentIndex.value + sign]\n return segmentToFocus\n})\n\nconst prevFocusableSegment = computed(() => {\n const sign = dir.value === 'rtl' ? -1 : 1\n const prevCondition = sign > 0 ? currentSegmentIndex.value < 0 : currentSegmentIndex.value > segmentElements.value.size - 1\n if (prevCondition)\n return null\n\n const segmentToFocus = Array.from(segmentElements.value)[currentSegmentIndex.value - sign]\n return segmentToFocus\n})\n\nconst kbd = useKbd()\n\nfunction handleKeydown(e: KeyboardEvent) {\n if (!isSegmentNavigationKey(e.key))\n return\n if (e.key === kbd.ARROW_LEFT)\n prevFocusableSegment.value?.focus()\n if (e.key === kbd.ARROW_RIGHT)\n nextFocusableSegment.value?.focus()\n}\n\nfunction setFocusedElement(el: HTMLElement) {\n currentFocusedElement.value = el\n}\n\nprovideTimeFieldRootContext({\n locale,\n modelValue: convertedModelValue,\n placeholder: convertedPlaceholder,\n disabled,\n formatter,\n hourCycle: props.hourCycle,\n readonly,\n segmentValues,\n isInvalid,\n segmentContents: editableSegmentContents,\n elements: segmentElements,\n setFocusedElement,\n focusNext() {\n nextFocusableSegment.value?.focus()\n },\n})\n\ndefineExpose({\n /** Helper to set the focused element inside the DateField */\n setFocusedElement,\n})\n</script>\n\n<template>\n <Primitive\n v-bind=\"$attrs\"\n ref=\"primitiveElement\"\n role=\"group\"\n :aria-disabled=\"disabled ? true : undefined\"\n :data-disabled=\"disabled ? '' : undefined\"\n :data-readonly=\"readonly ? '' : undefined\"\n :data-invalid=\"isInvalid ? '' : undefined\"\n :dir=\"dir\"\n @keydown.left.right=\"handleKeydown\"\n >\n <slot\n :model-value=\"modelValue\"\n :segments=\"segmentContents\"\n :is-invalid=\"isInvalid\"\n />\n\n <VisuallyHidden\n :id=\"id\"\n as=\"input\"\n feature=\"focusable\"\n tabindex=\"-1\"\n :value=\"modelValue ? modelValue.toString() : ''\"\n :name=\"name\"\n :disabled=\"disabled\"\n :required=\"required\"\n @focus=\"Array.from(segmentElements)?.[0]?.focus()\"\n />\n </Primitive>\n</template>\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TimeFieldRoot.js","sources":["../../src/TimeField/TimeFieldRoot.vue"],"sourcesContent":["<script lang=\"ts\">\nimport { type DateValue, Time, getLocalTimeZone, isEqualDay, toCalendarDateTime, today } from '@internationalized/date'\n\nimport type { Ref } from 'vue'\nimport type { PrimitiveProps } from '@/Primitive'\nimport { type Formatter, createContext, isNullish, useDateFormatter, useDirection, useKbd, useLocale } from '@/shared'\nimport {\n type HourCycle,\n type SegmentPart,\n type SegmentValueObj,\n type TimeValue,\n createContent,\n getDefaultTime,\n getTimeFieldSegmentElements,\n initializeTimeSegmentValues,\n isSegmentNavigationKey,\n syncTimeSegmentValues,\n\n} from '@/shared/date'\nimport { isBefore } from '@/date'\nimport type { Direction, FormFieldProps } from '@/shared/types'\n\ntype TimeFieldRootContext = {\n locale: Ref<string>\n modelValue: Ref<DateValue | undefined>\n placeholder: Ref<DateValue>\n isInvalid: Ref<boolean>\n disabled: Ref<boolean>\n readonly: Ref<boolean>\n formatter: Formatter\n hourCycle: HourCycle\n segmentValues: Ref<SegmentValueObj>\n segmentContents: Ref<{ part: SegmentPart, value: string }[]>\n elements: Ref<Set<HTMLElement>>\n focusNext: () => void\n setFocusedElement: (el: HTMLElement) => void\n}\n\nexport interface TimeFieldRootProps extends PrimitiveProps, FormFieldProps {\n /** The default value for the calendar */\n defaultValue?: TimeValue\n /** The default placeholder date */\n defaultPlaceholder?: TimeValue\n /** The placeholder date, which is used to determine what time to display when no time is selected. This updates as the user navigates the field */\n placeholder?: TimeValue\n /** The controlled checked state of the field. Can be bound as `v-model`. */\n modelValue?: TimeValue | null\n /** The hour cycle used for formatting times. Defaults to the local preference */\n hourCycle?: HourCycle\n /** The granularity to use for formatting times. Defaults to minute if a Time is provided, otherwise defaults to minute. The field will render segments for each part of the date up to and including the specified granularity */\n granularity?: 'hour' | 'minute' | 'second'\n /** Whether or not to hide the time zone segment of the field */\n hideTimeZone?: boolean\n /** The maximum date that can be selected */\n maxValue?: TimeValue\n /** The minimum date that can be selected */\n minValue?: TimeValue\n /** The locale to use for formatting dates */\n locale?: string\n /** Whether or not the time field is disabled */\n disabled?: boolean\n /** Whether or not the time field is readonly */\n readonly?: boolean\n /** Id of the element */\n id?: string\n /** The reading direction of the time field when applicable. <br> If omitted, inherits globally from `ConfigProvider` or assumes LTR (left-to-right) reading mode. */\n dir?: Direction\n}\n\nexport type TimeFieldRootEmits = {\n /** Event handler called whenever the model value changes */\n 'update:modelValue': [date: TimeValue | undefined]\n /** Event handler called whenever the placeholder value changes */\n 'update:placeholder': [date: TimeValue]\n}\n\nexport const [injectTimeFieldRootContext, provideTimeFieldRootContext]\n = createContext<TimeFieldRootContext>('TimeFieldRoot')\n\nfunction convertValue(value: TimeValue, date: DateValue = today(getLocalTimeZone())) {\n if (value && 'day' in value) {\n return value\n }\n\n return toCalendarDateTime(date, value)\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { computed, nextTick, onMounted, ref, toRefs, watch } from 'vue'\nimport { Primitive, usePrimitiveElement } from '@/Primitive'\nimport { useVModel } from '@vueuse/core'\nimport { VisuallyHidden } from '@/VisuallyHidden'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst props = withDefaults(defineProps<TimeFieldRootProps>(), {\n defaultValue: undefined,\n disabled: false,\n readonly: false,\n placeholder: undefined,\n isDateUnavailable: undefined,\n})\nconst emits = defineEmits<TimeFieldRootEmits>()\ndefineSlots<{\n default: (props: {\n /** The current time of the field */\n modelValue: TimeValue | undefined\n /** The time field segment contents */\n segments: { part: SegmentPart, value: string }[]\n /** Value if the input is invalid */\n isInvalid: boolean\n }) => any\n}>()\n\nconst { disabled, readonly, granularity, defaultValue, minValue, maxValue, dir: propDir, locale: propLocale } = toRefs(props)\nconst locale = useLocale(propLocale)\nconst dir = useDirection(propDir)\n\nconst formatter = useDateFormatter(locale.value)\nconst { primitiveElement, currentElement: parentElement }\n = usePrimitiveElement()\nconst segmentElements = ref<Set<HTMLElement>>(new Set())\n\nconst convertedMinValue = computed(() => minValue.value ? convertValue(minValue.value) : undefined)\nconst convertedMaxValue = computed(() => maxValue.value ? convertValue(maxValue.value) : undefined)\n\nonMounted(() => {\n getTimeFieldSegmentElements(parentElement.value).forEach(item => segmentElements.value.add(item as HTMLElement))\n})\n\nconst modelValue = useVModel(props, 'modelValue', emits, {\n defaultValue: defaultValue.value,\n passive: (props.modelValue === undefined) as false,\n}) as Ref<TimeValue>\n\nconst convertedModelValue = computed({\n get() {\n if (isNullish(modelValue.value))\n return modelValue.value\n return convertValue(modelValue.value)\n },\n set(newValue) {\n if (newValue)\n modelValue.value = modelValue.value && 'day' in modelValue.value ? newValue : new Time(newValue.hour, newValue.minute, newValue.second, modelValue.value?.millisecond)\n\n return newValue\n },\n})\n\nconst defaultDate = getDefaultTime({\n defaultPlaceholder: props.placeholder,\n defaultValue: modelValue.value,\n})\n\nconst placeholder = useVModel(props, 'placeholder', emits, {\n defaultValue: props.defaultPlaceholder ?? defaultDate.copy(),\n passive: (props.placeholder === undefined) as false,\n}) as Ref<TimeValue>\n\nconst convertedPlaceholder = computed({\n get() {\n return convertValue(placeholder.value)\n },\n set(newValue) {\n if (newValue)\n placeholder.value = 'day' in placeholder.value ? newValue.copy() : new Time(newValue.hour, newValue.minute, newValue.second, placeholder.value?.millisecond)\n return newValue\n },\n})\n\nconst inferredGranularity = computed(() => {\n if (granularity.value)\n return granularity.value\n\n return 'minute'\n})\n\nconst isInvalid = computed(() => {\n if (!modelValue.value)\n return false\n\n if (convertedMinValue.value && isBefore(convertedModelValue.value, convertedMinValue.value))\n return true\n\n if (convertedMaxValue.value && isBefore(convertedMaxValue.value, convertedModelValue.value))\n return true\n\n return false\n})\n\nconst initialSegments = initializeTimeSegmentValues(inferredGranularity.value)\n\nconst segmentValues = ref<SegmentValueObj>(modelValue.value ? { ...syncTimeSegmentValues({ value: convertedModelValue.value, formatter }) } : { ...initialSegments })\n\nconst allSegmentContent = computed(() => createContent({\n granularity: inferredGranularity.value,\n dateRef: convertedPlaceholder.value,\n formatter,\n hideTimeZone: props.hideTimeZone,\n hourCycle: props.hourCycle,\n segmentValues: segmentValues.value,\n locale,\n isTimeValue: true,\n}))\n\nconst segmentContents = computed(() => allSegmentContent.value.arr)\n\nconst editableSegmentContents = computed(() => segmentContents.value.filter(({ part }) => part !== 'literal'))\n\nwatch(locale, (value) => {\n if (formatter.getLocale() !== value) {\n formatter.setLocale(value)\n // Locale changed, so we need to clear the segment elements and re-get them (different order)\n // Get the focusable elements again on the next tick\n nextTick(() => {\n segmentElements.value.clear()\n getTimeFieldSegmentElements(parentElement.value).forEach(item => segmentElements.value.add(item as HTMLElement))\n })\n }\n})\n\nwatch(convertedModelValue, (_modelValue) => {\n if (!isNullish(_modelValue) && (!isEqualDay(convertedPlaceholder.value, _modelValue) || convertedPlaceholder.value.compare(_modelValue) !== 0))\n placeholder.value = _modelValue.copy()\n})\n\nwatch([convertedModelValue, locale], ([_modelValue]) => {\n if (!isNullish(_modelValue)) {\n segmentValues.value = { ...syncTimeSegmentValues({ value: _modelValue, formatter }) }\n }\n else if (Object.values(segmentValues.value).every(value => value === null) || isNullish(_modelValue)) {\n segmentValues.value = { ...initialSegments }\n }\n})\n\nconst currentFocusedElement = ref<HTMLElement | null>(null)\n\nconst currentSegmentIndex = computed(() =>\n Array.from(segmentElements.value).findIndex(el =>\n el.getAttribute('data-reka-time-field-segment')\n === currentFocusedElement.value?.getAttribute('data-reka-time-field-segment')))\n\nconst nextFocusableSegment = computed(() => {\n const sign = dir.value === 'rtl' ? -1 : 1\n const nextCondition = sign < 0 ? currentSegmentIndex.value < 0 : currentSegmentIndex.value > segmentElements.value.size - 1\n if (nextCondition)\n return null\n const segmentToFocus = Array.from(segmentElements.value)[currentSegmentIndex.value + sign]\n return segmentToFocus\n})\n\nconst prevFocusableSegment = computed(() => {\n const sign = dir.value === 'rtl' ? -1 : 1\n const prevCondition = sign > 0 ? currentSegmentIndex.value < 0 : currentSegmentIndex.value > segmentElements.value.size - 1\n if (prevCondition)\n return null\n\n const segmentToFocus = Array.from(segmentElements.value)[currentSegmentIndex.value - sign]\n return segmentToFocus\n})\n\nconst kbd = useKbd()\n\nfunction handleKeydown(e: KeyboardEvent) {\n if (!isSegmentNavigationKey(e.key))\n return\n if (e.key === kbd.ARROW_LEFT)\n prevFocusableSegment.value?.focus()\n if (e.key === kbd.ARROW_RIGHT)\n nextFocusableSegment.value?.focus()\n}\n\nfunction setFocusedElement(el: HTMLElement) {\n currentFocusedElement.value = el\n}\n\nprovideTimeFieldRootContext({\n locale,\n modelValue: convertedModelValue,\n placeholder: convertedPlaceholder,\n disabled,\n formatter,\n hourCycle: props.hourCycle,\n readonly,\n segmentValues,\n isInvalid,\n segmentContents: editableSegmentContents,\n elements: segmentElements,\n setFocusedElement,\n focusNext() {\n nextFocusableSegment.value?.focus()\n },\n})\n\ndefineExpose({\n /** Helper to set the focused element inside the DateField */\n setFocusedElement,\n})\n</script>\n\n<template>\n <Primitive\n v-bind=\"$attrs\"\n ref=\"primitiveElement\"\n role=\"group\"\n :aria-disabled=\"disabled ? true : undefined\"\n :data-disabled=\"disabled ? '' : undefined\"\n :data-readonly=\"readonly ? '' : undefined\"\n :data-invalid=\"isInvalid ? '' : undefined\"\n :dir=\"dir\"\n @keydown.left.right=\"handleKeydown\"\n >\n <slot\n :model-value=\"modelValue\"\n :segments=\"segmentContents\"\n :is-invalid=\"isInvalid\"\n />\n\n <VisuallyHidden\n :id=\"id\"\n as=\"input\"\n feature=\"focusable\"\n tabindex=\"-1\"\n :value=\"modelValue ? modelValue.toString() : ''\"\n :name=\"name\"\n :disabled=\"disabled\"\n :required=\"required\"\n @focus=\"Array.from(segmentElements)?.[0]?.focus()\"\n />\n </Primitive>\n</template>\n"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { defineComponent, openBlock, createBlock, unref, withCtx, renderSlot } from 'vue';
1
+ import { defineComponent, createBlock, openBlock, unref, withCtx, renderSlot } from 'vue';
2
2
  import { _ as _sfc_main$1 } from '../VisuallyHidden/VisuallyHidden.js';
3
3
  import { i as injectToastProviderContext } from './ToastProvider.js';
4
4
 
@@ -1,4 +1,4 @@
1
- import { defineComponent, openBlock, createBlock, withCtx, createVNode, unref, renderSlot, createCommentVNode } from 'vue';
1
+ import { defineComponent, createBlock, createCommentVNode, openBlock, withCtx, createVNode, unref, renderSlot } from 'vue';
2
2
  import { _ as _sfc_main$1 } from './ToastAnnounceExclude.js';
3
3
  import { _ as _sfc_main$2 } from './ToastClose.js';
4
4
  import { u as useForwardExpose } from '../shared/useForwardExpose.js';
@@ -1,4 +1,4 @@
1
- import { defineComponent, ref, unref, openBlock, createBlock, withCtx, createTextVNode, toDisplayString, renderSlot, createCommentVNode } from 'vue';
1
+ import { defineComponent, ref, createBlock, createCommentVNode, unref, openBlock, withCtx, createTextVNode, renderSlot, toDisplayString } from 'vue';
2
2
  import { useTimeout } from '@vueuse/shared';
3
3
  import { useRafFn } from '@vueuse/core';
4
4
  import { i as injectToastProviderContext } from './ToastProvider.js';
@@ -16,7 +16,7 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
16
16
  as: _ctx.as,
17
17
  "as-child": _ctx.asChild,
18
18
  "data-reka-toast-announce-exclude": "",
19
- "data-reka-toast-announce-alt": _ctx.altText || undefined
19
+ "data-reka-toast-announce-alt": _ctx.altText || void 0
20
20
  }, {
21
21
  default: vue.withCtx(() => [
22
22
  vue.renderSlot(_ctx.$slots, "default")
@@ -1,4 +1,4 @@
1
- import { defineComponent, openBlock, createBlock, unref, withCtx, renderSlot } from 'vue';
1
+ import { defineComponent, createBlock, openBlock, unref, withCtx, renderSlot } from 'vue';
2
2
  import { P as Primitive } from '../Primitive/Primitive.js';
3
3
 
4
4
  const _sfc_main = /* @__PURE__ */ defineComponent({
@@ -14,7 +14,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
14
14
  as: _ctx.as,
15
15
  "as-child": _ctx.asChild,
16
16
  "data-reka-toast-announce-exclude": "",
17
- "data-reka-toast-announce-alt": _ctx.altText || undefined
17
+ "data-reka-toast-announce-alt": _ctx.altText || void 0
18
18
  }, {
19
19
  default: withCtx(() => [
20
20
  renderSlot(_ctx.$slots, "default")
@@ -21,14 +21,14 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
21
21
  default: vue.withCtx(() => [
22
22
  vue.createVNode(vue.unref(Primitive_Primitive.Primitive), vue.mergeProps(props, {
23
23
  ref: vue.unref(forwardRef),
24
- type: _ctx.as === "button" ? "button" : undefined,
25
- onClick: _cache[0] || (_cache[0] = ($event) => vue.unref(rootContext).onClose())
24
+ type: _ctx.as === "button" ? "button" : void 0,
25
+ onClick: vue.unref(rootContext).onClose
26
26
  }), {
27
27
  default: vue.withCtx(() => [
28
28
  vue.renderSlot(_ctx.$slots, "default")
29
29
  ]),
30
30
  _: 3
31
- }, 16, ["type"])
31
+ }, 16, ["type", "onClick"])
32
32
  ]),
33
33
  _: 3
34
34
  });
@@ -1 +1 @@
1
- {"version":3,"file":"ToastClose.cjs","sources":["../../src/Toast/ToastClose.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { PrimitiveProps } from '@/Primitive'\nimport { useForwardExpose } from '@/shared'\n\nexport interface ToastCloseProps extends PrimitiveProps {}\n</script>\n\n<script setup lang=\"ts\">\nimport { Primitive } from '@/Primitive'\nimport ToastAnnounceExclude from './ToastAnnounceExclude.vue'\nimport { injectToastRootContext } from './ToastRootImpl.vue'\n\nconst props = withDefaults(defineProps<ToastCloseProps>(), {\n as: 'button',\n})\n\nconst rootContext = injectToastRootContext()\nconst { forwardRef } = useForwardExpose()\n</script>\n\n<template>\n <ToastAnnounceExclude as-child>\n <Primitive\n v-bind=\"props\"\n :ref=\"forwardRef\"\n :type=\"as === 'button' ? 'button' : undefined \"\n @click=\"rootContext.onClose()\"\n >\n <slot />\n </Primitive>\n </ToastAnnounceExclude>\n</template>\n"],"names":["injectToastRootContext","useForwardExpose"],"mappings":";;;;;;;;;;;;;;;AAYA,IAAA,MAAM,KAAQ,GAAA,OAAA;AAId,IAAA,MAAM,cAAcA,0CAAuB,EAAA;AAC3C,IAAM,MAAA,EAAE,UAAW,EAAA,GAAIC,wCAAiB,EAAA;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"ToastClose.cjs","sources":["../../src/Toast/ToastClose.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { PrimitiveProps } from '@/Primitive'\nimport { useForwardExpose } from '@/shared'\n\nexport interface ToastCloseProps extends PrimitiveProps {}\n</script>\n\n<script setup lang=\"ts\">\nimport { Primitive } from '@/Primitive'\nimport ToastAnnounceExclude from './ToastAnnounceExclude.vue'\nimport { injectToastRootContext } from './ToastRootImpl.vue'\n\nconst props = withDefaults(defineProps<ToastCloseProps>(), {\n as: 'button',\n})\n\nconst rootContext = injectToastRootContext()\nconst { forwardRef } = useForwardExpose()\n</script>\n\n<template>\n <ToastAnnounceExclude as-child>\n <Primitive\n v-bind=\"props\"\n :ref=\"forwardRef\"\n :type=\"as === 'button' ? 'button' : undefined \"\n @click=\"rootContext.onClose\"\n >\n <slot />\n </Primitive>\n </ToastAnnounceExclude>\n</template>\n"],"names":["injectToastRootContext","useForwardExpose"],"mappings":";;;;;;;;;;;;;;;AAYA,IAAA,MAAM,KAAQ,GAAA,OAAA;AAId,IAAA,MAAM,cAAcA,0CAAuB,EAAA;AAC3C,IAAM,MAAA,EAAE,UAAW,EAAA,GAAIC,wCAAiB,EAAA;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,4 +1,4 @@
1
- import { defineComponent, openBlock, createBlock, withCtx, createVNode, unref, mergeProps, renderSlot } from 'vue';
1
+ import { defineComponent, createBlock, openBlock, withCtx, createVNode, unref, mergeProps, renderSlot } from 'vue';
2
2
  import { _ as _sfc_main$1 } from './ToastAnnounceExclude.js';
3
3
  import { i as injectToastRootContext } from './ToastRootImpl.js';
4
4
  import { u as useForwardExpose } from '../shared/useForwardExpose.js';
@@ -19,14 +19,14 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
19
19
  default: withCtx(() => [
20
20
  createVNode(unref(Primitive), mergeProps(props, {
21
21
  ref: unref(forwardRef),
22
- type: _ctx.as === "button" ? "button" : undefined,
23
- onClick: _cache[0] || (_cache[0] = ($event) => unref(rootContext).onClose())
22
+ type: _ctx.as === "button" ? "button" : void 0,
23
+ onClick: unref(rootContext).onClose
24
24
  }), {
25
25
  default: withCtx(() => [
26
26
  renderSlot(_ctx.$slots, "default")
27
27
  ]),
28
28
  _: 3
29
- }, 16, ["type"])
29
+ }, 16, ["type", "onClick"])
30
30
  ]),
31
31
  _: 3
32
32
  });
@@ -1 +1 @@
1
- {"version":3,"file":"ToastClose.js","sources":["../../src/Toast/ToastClose.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { PrimitiveProps } from '@/Primitive'\nimport { useForwardExpose } from '@/shared'\n\nexport interface ToastCloseProps extends PrimitiveProps {}\n</script>\n\n<script setup lang=\"ts\">\nimport { Primitive } from '@/Primitive'\nimport ToastAnnounceExclude from './ToastAnnounceExclude.vue'\nimport { injectToastRootContext } from './ToastRootImpl.vue'\n\nconst props = withDefaults(defineProps<ToastCloseProps>(), {\n as: 'button',\n})\n\nconst rootContext = injectToastRootContext()\nconst { forwardRef } = useForwardExpose()\n</script>\n\n<template>\n <ToastAnnounceExclude as-child>\n <Primitive\n v-bind=\"props\"\n :ref=\"forwardRef\"\n :type=\"as === 'button' ? 'button' : undefined \"\n @click=\"rootContext.onClose()\"\n >\n <slot />\n </Primitive>\n </ToastAnnounceExclude>\n</template>\n"],"names":[],"mappings":";;;;;;;;;;;;;AAYA,IAAA,MAAM,KAAQ,GAAA,OAAA;AAId,IAAA,MAAM,cAAc,sBAAuB,EAAA;AAC3C,IAAM,MAAA,EAAE,UAAW,EAAA,GAAI,gBAAiB,EAAA;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"ToastClose.js","sources":["../../src/Toast/ToastClose.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { PrimitiveProps } from '@/Primitive'\nimport { useForwardExpose } from '@/shared'\n\nexport interface ToastCloseProps extends PrimitiveProps {}\n</script>\n\n<script setup lang=\"ts\">\nimport { Primitive } from '@/Primitive'\nimport ToastAnnounceExclude from './ToastAnnounceExclude.vue'\nimport { injectToastRootContext } from './ToastRootImpl.vue'\n\nconst props = withDefaults(defineProps<ToastCloseProps>(), {\n as: 'button',\n})\n\nconst rootContext = injectToastRootContext()\nconst { forwardRef } = useForwardExpose()\n</script>\n\n<template>\n <ToastAnnounceExclude as-child>\n <Primitive\n v-bind=\"props\"\n :ref=\"forwardRef\"\n :type=\"as === 'button' ? 'button' : undefined \"\n @click=\"rootContext.onClose\"\n >\n <slot />\n </Primitive>\n </ToastAnnounceExclude>\n</template>\n"],"names":[],"mappings":";;;;;;;;;;;;;AAYA,IAAA,MAAM,KAAQ,GAAA,OAAA;AAId,IAAA,MAAM,cAAc,sBAAuB,EAAA;AAC3C,IAAM,MAAA,EAAE,UAAW,EAAA,GAAI,gBAAiB,EAAA;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,4 +1,4 @@
1
- import { defineComponent, openBlock, createBlock, unref, normalizeProps, guardReactiveProps, withCtx, renderSlot } from 'vue';
1
+ import { defineComponent, createBlock, openBlock, unref, normalizeProps, guardReactiveProps, withCtx, renderSlot } from 'vue';
2
2
  import { u as useForwardExpose } from '../shared/useForwardExpose.js';
3
3
  import { P as Primitive } from '../Primitive/Primitive.js';
4
4
 
@@ -1,4 +1,4 @@
1
- import { defineComponent, openBlock, createBlock, unref, normalizeProps, guardReactiveProps, withCtx, renderSlot } from 'vue';
1
+ import { defineComponent, createBlock, openBlock, unref, normalizeProps, guardReactiveProps, withCtx, renderSlot } from 'vue';
2
2
  import { _ as _sfc_main$1 } from '../Teleport/Teleport.js';
3
3
 
4
4
  const _sfc_main = /* @__PURE__ */ defineComponent({
@@ -12,7 +12,7 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
12
12
  defaultOpen: { type: Boolean, default: true },
13
13
  forceMount: { type: Boolean },
14
14
  type: { default: "foreground" },
15
- open: { type: Boolean, default: undefined },
15
+ open: { type: Boolean, default: void 0 },
16
16
  duration: {},
17
17
  asChild: { type: Boolean },
18
18
  as: { default: "li" }
@@ -24,7 +24,7 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
24
24
  const { forwardRef } = shared_useForwardExpose.useForwardExpose();
25
25
  const open = core.useVModel(props, "open", emits, {
26
26
  defaultValue: props.defaultOpen,
27
- passive: props.open === undefined
27
+ passive: props.open === void 0
28
28
  });
29
29
  return (_ctx, _cache) => {
30
30
  return vue.openBlock(), vue.createBlock(vue.unref(Presence_Presence.Presence), {
@@ -48,6 +48,7 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
48
48
  event.currentTarget.setAttribute("data-swipe", "start");
49
49
  }),
50
50
  onSwipeMove: _cache[5] || (_cache[5] = (event) => {
51
+ emits("swipeMove", event);
51
52
  const { x, y } = event.detail.delta;
52
53
  const target = event.currentTarget;
53
54
  target.setAttribute("data-swipe", "move");
@@ -55,6 +56,7 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
55
56
  target.style.setProperty("--reka-toast-swipe-move-y", `${y}px`);
56
57
  }),
57
58
  onSwipeCancel: _cache[6] || (_cache[6] = (event) => {
59
+ emits("swipeCancel", event);
58
60
  const target = event.currentTarget;
59
61
  target.setAttribute("data-swipe", "cancel");
60
62
  target.style.removeProperty("--reka-toast-swipe-move-x");
@@ -63,6 +65,7 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
63
65
  target.style.removeProperty("--reka-toast-swipe-end-y");
64
66
  }),
65
67
  onSwipeEnd: _cache[7] || (_cache[7] = (event) => {
68
+ emits("swipeEnd", event);
66
69
  const { x, y } = event.detail.delta;
67
70
  const target = event.currentTarget;
68
71
  target.setAttribute("data-swipe", "end");
@@ -1 +1 @@
1
- {"version":3,"file":"ToastRoot.cjs","sources":["../../src/Toast/ToastRoot.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { Ref } from 'vue'\nimport type { ToastRootImplEmits, ToastRootImplProps } from './ToastRootImpl.vue'\nimport { useForwardExpose } from '@/shared'\n\nexport type ToastRootEmits = Omit<ToastRootImplEmits, 'close'> & {\n /** Event handler called when the open state changes */\n 'update:open': [value: boolean]\n}\n\nexport interface ToastRootProps extends ToastRootImplProps {\n /** The open state of the dialog when it is initially rendered. Use when you do not need to control its open state. */\n defaultOpen?: boolean\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with Vue animation libraries.\n */\n forceMount?: boolean\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { useVModel } from '@vueuse/core'\nimport { Presence } from '@/Presence'\nimport ToastRootImpl from './ToastRootImpl.vue'\n\nconst props = withDefaults(defineProps<ToastRootProps>(), {\n type: 'foreground',\n open: undefined,\n defaultOpen: true,\n as: 'li',\n})\n\nconst emits = defineEmits<ToastRootEmits>()\n\ndefineSlots<{\n default: (props: {\n /** Current open state */\n open: typeof open.value\n /** Remaining time (in ms) */\n remaining: number\n /** Total time the toast will remain visible for (in ms) */\n duration: number\n }) => any\n}>()\n\nconst { forwardRef } = useForwardExpose()\nconst open = useVModel(props, 'open', emits, {\n defaultValue: props.defaultOpen,\n passive: (props.open === undefined) as false,\n}) as Ref<boolean>\n</script>\n\n<template>\n <Presence :present=\"forceMount || open\">\n <ToastRootImpl\n :ref=\"forwardRef\"\n v-slot=\"{ remaining, duration: _duration }\"\n :open=\"open\"\n :type=\"type\"\n :as=\"as\"\n :as-child=\"asChild\"\n :duration=\"duration\"\n v-bind=\"$attrs\"\n @close=\"open = false\"\n @pause=\"emits('pause')\"\n @resume=\"emits('resume')\"\n @escape-key-down=\"emits('escapeKeyDown', $event)\"\n @swipe-start=\"(event) => {\n emits('swipeStart', event);\n (event.currentTarget as HTMLElement).setAttribute('data-swipe', 'start');\n }\"\n @swipe-move=\"(event) => {\n const { x, y } = event.detail.delta;\n const target = event.currentTarget as HTMLElement\n target.setAttribute('data-swipe', 'move');\n target.style.setProperty('--reka-toast-swipe-move-x', `${x}px`);\n target.style.setProperty('--reka-toast-swipe-move-y', `${y}px`);\n }\"\n @swipe-cancel=\"(event) => {\n const target = event.currentTarget as HTMLElement\n target.setAttribute('data-swipe', 'cancel');\n target.style.removeProperty('--reka-toast-swipe-move-x');\n target.style.removeProperty('--reka-toast-swipe-move-y');\n target.style.removeProperty('--reka-toast-swipe-end-x');\n target.style.removeProperty('--reka-toast-swipe-end-y');\n }\"\n @swipe-end=\"(event) => {\n const { x, y } = event.detail.delta;\n const target = event.currentTarget as HTMLElement\n target.setAttribute('data-swipe', 'end');\n target.style.removeProperty('--reka-toast-swipe-move-x');\n target.style.removeProperty('--reka-toast-swipe-move-y');\n target.style.setProperty('--reka-toast-swipe-end-x', `${x}px`);\n target.style.setProperty('--reka-toast-swipe-end-y', `${y}px`);\n open = false;\n }\"\n >\n <slot\n :remaining=\"remaining\"\n :duration=\"_duration\"\n :open=\"open\"\n />\n </ToastRootImpl>\n </Presence>\n</template>\n"],"names":["useForwardExpose","useVModel"],"mappings":";;;;;;;;;;;;;;;;;;;;;AA0BA,IAAA,MAAM,KAAQ,GAAA,OAAA;AAOd,IAAA,MAAM,KAAQ,GAAA,MAAA;AAad,IAAM,MAAA,EAAE,UAAW,EAAA,GAAIA,wCAAiB,EAAA;AACxC,IAAA,MAAM,IAAO,GAAAC,cAAA,CAAU,KAAO,EAAA,MAAA,EAAQ,KAAO,EAAA;AAAA,MAC3C,cAAc,KAAM,CAAA,WAAA;AAAA,MACpB,OAAA,EAAU,MAAM,IAAS,KAAA;AAAA,KAC1B,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"ToastRoot.cjs","sources":["../../src/Toast/ToastRoot.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { Ref } from 'vue'\nimport type { ToastRootImplEmits, ToastRootImplProps } from './ToastRootImpl.vue'\nimport { useForwardExpose } from '@/shared'\n\nexport type ToastRootEmits = Omit<ToastRootImplEmits, 'close'> & {\n /** Event handler called when the open state changes */\n 'update:open': [value: boolean]\n}\n\nexport interface ToastRootProps extends ToastRootImplProps {\n /** The open state of the dialog when it is initially rendered. Use when you do not need to control its open state. */\n defaultOpen?: boolean\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with Vue animation libraries.\n */\n forceMount?: boolean\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { useVModel } from '@vueuse/core'\nimport { Presence } from '@/Presence'\nimport ToastRootImpl from './ToastRootImpl.vue'\n\nconst props = withDefaults(defineProps<ToastRootProps>(), {\n type: 'foreground',\n open: undefined,\n defaultOpen: true,\n as: 'li',\n})\n\nconst emits = defineEmits<ToastRootEmits>()\n\ndefineSlots<{\n default: (props: {\n /** Current open state */\n open: typeof open.value\n /** Remaining time (in ms) */\n remaining: number\n /** Total time the toast will remain visible for (in ms) */\n duration: number\n }) => any\n}>()\n\nconst { forwardRef } = useForwardExpose()\nconst open = useVModel(props, 'open', emits, {\n defaultValue: props.defaultOpen,\n passive: (props.open === undefined) as false,\n}) as Ref<boolean>\n</script>\n\n<template>\n <Presence :present=\"forceMount || open\">\n <ToastRootImpl\n :ref=\"forwardRef\"\n v-slot=\"{ remaining, duration: _duration }\"\n :open=\"open\"\n :type=\"type\"\n :as=\"as\"\n :as-child=\"asChild\"\n :duration=\"duration\"\n v-bind=\"$attrs\"\n @close=\"open = false\"\n @pause=\"emits('pause')\"\n @resume=\"emits('resume')\"\n @escape-key-down=\"emits('escapeKeyDown', $event)\"\n @swipe-start=\"(event) => {\n emits('swipeStart', event);\n (event.currentTarget as HTMLElement).setAttribute('data-swipe', 'start');\n }\"\n @swipe-move=\"(event) => {\n emits('swipeMove', event);\n const { x, y } = event.detail.delta;\n const target = event.currentTarget as HTMLElement\n target.setAttribute('data-swipe', 'move');\n target.style.setProperty('--reka-toast-swipe-move-x', `${x}px`);\n target.style.setProperty('--reka-toast-swipe-move-y', `${y}px`);\n }\"\n @swipe-cancel=\"(event) => {\n emits('swipeCancel', event);\n const target = event.currentTarget as HTMLElement\n target.setAttribute('data-swipe', 'cancel');\n target.style.removeProperty('--reka-toast-swipe-move-x');\n target.style.removeProperty('--reka-toast-swipe-move-y');\n target.style.removeProperty('--reka-toast-swipe-end-x');\n target.style.removeProperty('--reka-toast-swipe-end-y');\n }\"\n @swipe-end=\"(event) => {\n emits('swipeEnd', event);\n const { x, y } = event.detail.delta;\n const target = event.currentTarget as HTMLElement\n target.setAttribute('data-swipe', 'end');\n target.style.removeProperty('--reka-toast-swipe-move-x');\n target.style.removeProperty('--reka-toast-swipe-move-y');\n target.style.setProperty('--reka-toast-swipe-end-x', `${x}px`);\n target.style.setProperty('--reka-toast-swipe-end-y', `${y}px`);\n open = false;\n }\"\n >\n <slot\n :remaining=\"remaining\"\n :duration=\"_duration\"\n :open=\"open\"\n />\n </ToastRootImpl>\n </Presence>\n</template>\n"],"names":["useForwardExpose","useVModel"],"mappings":";;;;;;;;;;;;;;;;;;;;;AA0BA,IAAA,MAAM,KAAQ,GAAA,OAAA;AAOd,IAAA,MAAM,KAAQ,GAAA,MAAA;AAad,IAAM,MAAA,EAAE,UAAW,EAAA,GAAIA,wCAAiB,EAAA;AACxC,IAAA,MAAM,IAAO,GAAAC,cAAA,CAAU,KAAO,EAAA,MAAA,EAAQ,KAAO,EAAA;AAAA,MAC3C,cAAc,KAAM,CAAA,WAAA;AAAA,MACpB,OAAA,EAAU,MAAM,IAAS,KAAA;AAAA,KAC1B,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,4 +1,4 @@
1
- import { defineComponent, openBlock, createBlock, unref, withCtx, createVNode, mergeProps, renderSlot } from 'vue';
1
+ import { defineComponent, createBlock, openBlock, unref, withCtx, createVNode, mergeProps, renderSlot } from 'vue';
2
2
  import { useVModel } from '@vueuse/core';
3
3
  import { _ as _sfc_main$1 } from './ToastRootImpl.js';
4
4
  import { u as useForwardExpose } from '../shared/useForwardExpose.js';
@@ -10,7 +10,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
10
10
  defaultOpen: { type: Boolean, default: true },
11
11
  forceMount: { type: Boolean },
12
12
  type: { default: "foreground" },
13
- open: { type: Boolean, default: undefined },
13
+ open: { type: Boolean, default: void 0 },
14
14
  duration: {},
15
15
  asChild: { type: Boolean },
16
16
  as: { default: "li" }
@@ -22,7 +22,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
22
22
  const { forwardRef } = useForwardExpose();
23
23
  const open = useVModel(props, "open", emits, {
24
24
  defaultValue: props.defaultOpen,
25
- passive: props.open === undefined
25
+ passive: props.open === void 0
26
26
  });
27
27
  return (_ctx, _cache) => {
28
28
  return openBlock(), createBlock(unref(Presence), {
@@ -46,6 +46,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
46
46
  event.currentTarget.setAttribute("data-swipe", "start");
47
47
  }),
48
48
  onSwipeMove: _cache[5] || (_cache[5] = (event) => {
49
+ emits("swipeMove", event);
49
50
  const { x, y } = event.detail.delta;
50
51
  const target = event.currentTarget;
51
52
  target.setAttribute("data-swipe", "move");
@@ -53,6 +54,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
53
54
  target.style.setProperty("--reka-toast-swipe-move-y", `${y}px`);
54
55
  }),
55
56
  onSwipeCancel: _cache[6] || (_cache[6] = (event) => {
57
+ emits("swipeCancel", event);
56
58
  const target = event.currentTarget;
57
59
  target.setAttribute("data-swipe", "cancel");
58
60
  target.style.removeProperty("--reka-toast-swipe-move-x");
@@ -61,6 +63,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
61
63
  target.style.removeProperty("--reka-toast-swipe-end-y");
62
64
  }),
63
65
  onSwipeEnd: _cache[7] || (_cache[7] = (event) => {
66
+ emits("swipeEnd", event);
64
67
  const { x, y } = event.detail.delta;
65
68
  const target = event.currentTarget;
66
69
  target.setAttribute("data-swipe", "end");
@@ -1 +1 @@
1
- {"version":3,"file":"ToastRoot.js","sources":["../../src/Toast/ToastRoot.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { Ref } from 'vue'\nimport type { ToastRootImplEmits, ToastRootImplProps } from './ToastRootImpl.vue'\nimport { useForwardExpose } from '@/shared'\n\nexport type ToastRootEmits = Omit<ToastRootImplEmits, 'close'> & {\n /** Event handler called when the open state changes */\n 'update:open': [value: boolean]\n}\n\nexport interface ToastRootProps extends ToastRootImplProps {\n /** The open state of the dialog when it is initially rendered. Use when you do not need to control its open state. */\n defaultOpen?: boolean\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with Vue animation libraries.\n */\n forceMount?: boolean\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { useVModel } from '@vueuse/core'\nimport { Presence } from '@/Presence'\nimport ToastRootImpl from './ToastRootImpl.vue'\n\nconst props = withDefaults(defineProps<ToastRootProps>(), {\n type: 'foreground',\n open: undefined,\n defaultOpen: true,\n as: 'li',\n})\n\nconst emits = defineEmits<ToastRootEmits>()\n\ndefineSlots<{\n default: (props: {\n /** Current open state */\n open: typeof open.value\n /** Remaining time (in ms) */\n remaining: number\n /** Total time the toast will remain visible for (in ms) */\n duration: number\n }) => any\n}>()\n\nconst { forwardRef } = useForwardExpose()\nconst open = useVModel(props, 'open', emits, {\n defaultValue: props.defaultOpen,\n passive: (props.open === undefined) as false,\n}) as Ref<boolean>\n</script>\n\n<template>\n <Presence :present=\"forceMount || open\">\n <ToastRootImpl\n :ref=\"forwardRef\"\n v-slot=\"{ remaining, duration: _duration }\"\n :open=\"open\"\n :type=\"type\"\n :as=\"as\"\n :as-child=\"asChild\"\n :duration=\"duration\"\n v-bind=\"$attrs\"\n @close=\"open = false\"\n @pause=\"emits('pause')\"\n @resume=\"emits('resume')\"\n @escape-key-down=\"emits('escapeKeyDown', $event)\"\n @swipe-start=\"(event) => {\n emits('swipeStart', event);\n (event.currentTarget as HTMLElement).setAttribute('data-swipe', 'start');\n }\"\n @swipe-move=\"(event) => {\n const { x, y } = event.detail.delta;\n const target = event.currentTarget as HTMLElement\n target.setAttribute('data-swipe', 'move');\n target.style.setProperty('--reka-toast-swipe-move-x', `${x}px`);\n target.style.setProperty('--reka-toast-swipe-move-y', `${y}px`);\n }\"\n @swipe-cancel=\"(event) => {\n const target = event.currentTarget as HTMLElement\n target.setAttribute('data-swipe', 'cancel');\n target.style.removeProperty('--reka-toast-swipe-move-x');\n target.style.removeProperty('--reka-toast-swipe-move-y');\n target.style.removeProperty('--reka-toast-swipe-end-x');\n target.style.removeProperty('--reka-toast-swipe-end-y');\n }\"\n @swipe-end=\"(event) => {\n const { x, y } = event.detail.delta;\n const target = event.currentTarget as HTMLElement\n target.setAttribute('data-swipe', 'end');\n target.style.removeProperty('--reka-toast-swipe-move-x');\n target.style.removeProperty('--reka-toast-swipe-move-y');\n target.style.setProperty('--reka-toast-swipe-end-x', `${x}px`);\n target.style.setProperty('--reka-toast-swipe-end-y', `${y}px`);\n open = false;\n }\"\n >\n <slot\n :remaining=\"remaining\"\n :duration=\"_duration\"\n :open=\"open\"\n />\n </ToastRootImpl>\n </Presence>\n</template>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AA0BA,IAAA,MAAM,KAAQ,GAAA,OAAA;AAOd,IAAA,MAAM,KAAQ,GAAA,MAAA;AAad,IAAM,MAAA,EAAE,UAAW,EAAA,GAAI,gBAAiB,EAAA;AACxC,IAAA,MAAM,IAAO,GAAA,SAAA,CAAU,KAAO,EAAA,MAAA,EAAQ,KAAO,EAAA;AAAA,MAC3C,cAAc,KAAM,CAAA,WAAA;AAAA,MACpB,OAAA,EAAU,MAAM,IAAS,KAAA;AAAA,KAC1B,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"ToastRoot.js","sources":["../../src/Toast/ToastRoot.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { Ref } from 'vue'\nimport type { ToastRootImplEmits, ToastRootImplProps } from './ToastRootImpl.vue'\nimport { useForwardExpose } from '@/shared'\n\nexport type ToastRootEmits = Omit<ToastRootImplEmits, 'close'> & {\n /** Event handler called when the open state changes */\n 'update:open': [value: boolean]\n}\n\nexport interface ToastRootProps extends ToastRootImplProps {\n /** The open state of the dialog when it is initially rendered. Use when you do not need to control its open state. */\n defaultOpen?: boolean\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with Vue animation libraries.\n */\n forceMount?: boolean\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { useVModel } from '@vueuse/core'\nimport { Presence } from '@/Presence'\nimport ToastRootImpl from './ToastRootImpl.vue'\n\nconst props = withDefaults(defineProps<ToastRootProps>(), {\n type: 'foreground',\n open: undefined,\n defaultOpen: true,\n as: 'li',\n})\n\nconst emits = defineEmits<ToastRootEmits>()\n\ndefineSlots<{\n default: (props: {\n /** Current open state */\n open: typeof open.value\n /** Remaining time (in ms) */\n remaining: number\n /** Total time the toast will remain visible for (in ms) */\n duration: number\n }) => any\n}>()\n\nconst { forwardRef } = useForwardExpose()\nconst open = useVModel(props, 'open', emits, {\n defaultValue: props.defaultOpen,\n passive: (props.open === undefined) as false,\n}) as Ref<boolean>\n</script>\n\n<template>\n <Presence :present=\"forceMount || open\">\n <ToastRootImpl\n :ref=\"forwardRef\"\n v-slot=\"{ remaining, duration: _duration }\"\n :open=\"open\"\n :type=\"type\"\n :as=\"as\"\n :as-child=\"asChild\"\n :duration=\"duration\"\n v-bind=\"$attrs\"\n @close=\"open = false\"\n @pause=\"emits('pause')\"\n @resume=\"emits('resume')\"\n @escape-key-down=\"emits('escapeKeyDown', $event)\"\n @swipe-start=\"(event) => {\n emits('swipeStart', event);\n (event.currentTarget as HTMLElement).setAttribute('data-swipe', 'start');\n }\"\n @swipe-move=\"(event) => {\n emits('swipeMove', event);\n const { x, y } = event.detail.delta;\n const target = event.currentTarget as HTMLElement\n target.setAttribute('data-swipe', 'move');\n target.style.setProperty('--reka-toast-swipe-move-x', `${x}px`);\n target.style.setProperty('--reka-toast-swipe-move-y', `${y}px`);\n }\"\n @swipe-cancel=\"(event) => {\n emits('swipeCancel', event);\n const target = event.currentTarget as HTMLElement\n target.setAttribute('data-swipe', 'cancel');\n target.style.removeProperty('--reka-toast-swipe-move-x');\n target.style.removeProperty('--reka-toast-swipe-move-y');\n target.style.removeProperty('--reka-toast-swipe-end-x');\n target.style.removeProperty('--reka-toast-swipe-end-y');\n }\"\n @swipe-end=\"(event) => {\n emits('swipeEnd', event);\n const { x, y } = event.detail.delta;\n const target = event.currentTarget as HTMLElement\n target.setAttribute('data-swipe', 'end');\n target.style.removeProperty('--reka-toast-swipe-move-x');\n target.style.removeProperty('--reka-toast-swipe-move-y');\n target.style.setProperty('--reka-toast-swipe-end-x', `${x}px`);\n target.style.setProperty('--reka-toast-swipe-end-y', `${y}px`);\n open = false;\n }\"\n >\n <slot\n :remaining=\"remaining\"\n :duration=\"_duration\"\n :open=\"open\"\n />\n </ToastRootImpl>\n </Presence>\n</template>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AA0BA,IAAA,MAAM,KAAQ,GAAA,OAAA;AAOd,IAAA,MAAM,KAAQ,GAAA,MAAA;AAad,IAAM,MAAA,EAAE,UAAW,EAAA,GAAI,gBAAiB,EAAA;AACxC,IAAA,MAAM,IAAO,GAAA,SAAA,CAAU,KAAO,EAAA,MAAA,EAAQ,KAAO,EAAA;AAAA,MAC3C,cAAc,KAAM,CAAA,WAAA;AAAA,MACpB,OAAA,EAAU,MAAM,IAAS,KAAA;AAAA,KAC1B,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -7,8 +7,8 @@ const Toast_ToastAnnounce = require('./ToastAnnounce.cjs');
7
7
  const shared = require('@vueuse/shared');
8
8
  const Collection_Collection = require('../Collection/Collection.cjs');
9
9
  const shared_useForwardExpose = require('../shared/useForwardExpose.cjs');
10
- const Primitive_Primitive = require('../Primitive/Primitive.cjs');
11
10
  const shared_createContext = require('../shared/createContext.cjs');
11
+ const Primitive_Primitive = require('../Primitive/Primitive.cjs');
12
12
  const shared_getActiveElement = require('../shared/getActiveElement.cjs');
13
13
  const Toast_ToastProvider = require('./ToastProvider.cjs');
14
14
 
@@ -54,11 +54,14 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
54
54
  closeTimerStartTimeRef.value = (/* @__PURE__ */ new Date()).getTime();
55
55
  closeTimerRef.value = window.setTimeout(handleClose, duration2);
56
56
  }
57
- function handleClose() {
57
+ function handleClose(event) {
58
+ const isNonPointerEvent = event?.pointerType === "";
58
59
  const isFocusInToast = currentElement.value?.contains(shared_getActiveElement.getActiveElement());
59
- if (isFocusInToast)
60
+ if (isFocusInToast && isNonPointerEvent)
60
61
  providerContext.viewport.value?.focus();
61
- providerContext.isClosePausedRef.value = false;
62
+ if (isNonPointerEvent) {
63
+ providerContext.isClosePausedRef.value = false;
64
+ }
62
65
  emits("close");
63
66
  }
64
67
  const announceTextContent = vue.computed(() => currentElement.value ? Toast_utils.getAnnounceTextContent(currentElement.value) : null);