reka-ui 2.2.0 → 2.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (902) hide show
  1. package/dist/Accordion/AccordionHeader.cjs.map +1 -1
  2. package/dist/Accordion/AccordionHeader.js.map +1 -1
  3. package/dist/Accordion/AccordionItem.cjs.map +1 -1
  4. package/dist/Accordion/AccordionItem.js.map +1 -1
  5. package/dist/Accordion/AccordionRoot.cjs.map +1 -1
  6. package/dist/Accordion/AccordionRoot.js.map +1 -1
  7. package/dist/Accordion/AccordionTrigger.cjs.map +1 -1
  8. package/dist/Accordion/AccordionTrigger.js.map +1 -1
  9. package/dist/AlertDialog/AlertDialogCancel.cjs.map +1 -1
  10. package/dist/AlertDialog/AlertDialogCancel.js.map +1 -1
  11. package/dist/AspectRatio/AspectRatio.cjs.map +1 -1
  12. package/dist/AspectRatio/AspectRatio.js.map +1 -1
  13. package/dist/Avatar/AvatarFallback.cjs +11 -14
  14. package/dist/Avatar/AvatarFallback.cjs.map +1 -1
  15. package/dist/Avatar/AvatarFallback.js +12 -15
  16. package/dist/Avatar/AvatarFallback.js.map +1 -1
  17. package/dist/Avatar/AvatarImage.cjs +3 -2
  18. package/dist/Avatar/AvatarImage.cjs.map +1 -1
  19. package/dist/Avatar/AvatarImage.js +3 -2
  20. package/dist/Avatar/AvatarImage.js.map +1 -1
  21. package/dist/Avatar/AvatarRoot.cjs +1 -1
  22. package/dist/Avatar/AvatarRoot.cjs.map +1 -1
  23. package/dist/Avatar/AvatarRoot.js +1 -1
  24. package/dist/Avatar/AvatarRoot.js.map +1 -1
  25. package/dist/Avatar/utils.cjs +43 -16
  26. package/dist/Avatar/utils.cjs.map +1 -1
  27. package/dist/Avatar/utils.js +44 -17
  28. package/dist/Avatar/utils.js.map +1 -1
  29. package/dist/Calendar/CalendarCell.cjs +3 -3
  30. package/dist/Calendar/CalendarCell.cjs.map +1 -1
  31. package/dist/Calendar/CalendarCell.js +3 -3
  32. package/dist/Calendar/CalendarCell.js.map +1 -1
  33. package/dist/Calendar/CalendarCellTrigger.cjs +5 -1
  34. package/dist/Calendar/CalendarCellTrigger.cjs.map +1 -1
  35. package/dist/Calendar/CalendarCellTrigger.js +5 -1
  36. package/dist/Calendar/CalendarCellTrigger.js.map +1 -1
  37. package/dist/Calendar/CalendarGrid.cjs.map +1 -1
  38. package/dist/Calendar/CalendarGrid.js.map +1 -1
  39. package/dist/Calendar/CalendarHeading.cjs +1 -1
  40. package/dist/Calendar/CalendarHeading.cjs.map +1 -1
  41. package/dist/Calendar/CalendarHeading.js +1 -1
  42. package/dist/Calendar/CalendarHeading.js.map +1 -1
  43. package/dist/Calendar/CalendarNext.cjs.map +1 -1
  44. package/dist/Calendar/CalendarNext.js.map +1 -1
  45. package/dist/Calendar/CalendarPrev.cjs.map +1 -1
  46. package/dist/Calendar/CalendarPrev.js.map +1 -1
  47. package/dist/Calendar/CalendarRoot.cjs +7 -4
  48. package/dist/Calendar/CalendarRoot.cjs.map +1 -1
  49. package/dist/Calendar/CalendarRoot.js +7 -4
  50. package/dist/Calendar/CalendarRoot.js.map +1 -1
  51. package/dist/Calendar/useCalendar.cjs.map +1 -1
  52. package/dist/Calendar/useCalendar.js.map +1 -1
  53. package/dist/Checkbox/CheckboxGroupRoot.cjs +1 -1
  54. package/dist/Checkbox/CheckboxGroupRoot.cjs.map +1 -1
  55. package/dist/Checkbox/CheckboxGroupRoot.js +1 -1
  56. package/dist/Checkbox/CheckboxGroupRoot.js.map +1 -1
  57. package/dist/Checkbox/CheckboxIndicator.cjs.map +1 -1
  58. package/dist/Checkbox/CheckboxIndicator.js.map +1 -1
  59. package/dist/Checkbox/CheckboxRoot.cjs +1 -1
  60. package/dist/Checkbox/CheckboxRoot.cjs.map +1 -1
  61. package/dist/Checkbox/CheckboxRoot.js +1 -1
  62. package/dist/Checkbox/CheckboxRoot.js.map +1 -1
  63. package/dist/Collapsible/CollapsibleContent.cjs +1 -1
  64. package/dist/Collapsible/CollapsibleContent.cjs.map +1 -1
  65. package/dist/Collapsible/CollapsibleContent.js +1 -1
  66. package/dist/Collapsible/CollapsibleContent.js.map +1 -1
  67. package/dist/Collapsible/CollapsibleRoot.cjs +2 -0
  68. package/dist/Collapsible/CollapsibleRoot.cjs.map +1 -1
  69. package/dist/Collapsible/CollapsibleRoot.js +2 -0
  70. package/dist/Collapsible/CollapsibleRoot.js.map +1 -1
  71. package/dist/Collapsible/CollapsibleTrigger.cjs +1 -1
  72. package/dist/Collapsible/CollapsibleTrigger.js +1 -1
  73. package/dist/Collection/Collection.cjs.map +1 -1
  74. package/dist/Collection/Collection.js.map +1 -1
  75. package/dist/Combobox/ComboboxAnchor.cjs.map +1 -1
  76. package/dist/Combobox/ComboboxAnchor.js.map +1 -1
  77. package/dist/Combobox/ComboboxArrow.cjs.map +1 -1
  78. package/dist/Combobox/ComboboxArrow.js.map +1 -1
  79. package/dist/Combobox/ComboboxCancel.cjs +1 -0
  80. package/dist/Combobox/ComboboxCancel.cjs.map +1 -1
  81. package/dist/Combobox/ComboboxCancel.js +1 -0
  82. package/dist/Combobox/ComboboxCancel.js.map +1 -1
  83. package/dist/Combobox/ComboboxContent.cjs.map +1 -1
  84. package/dist/Combobox/ComboboxContent.js.map +1 -1
  85. package/dist/Combobox/ComboboxContentImpl.cjs +2 -2
  86. package/dist/Combobox/ComboboxContentImpl.cjs.map +1 -1
  87. package/dist/Combobox/ComboboxContentImpl.js +2 -2
  88. package/dist/Combobox/ComboboxContentImpl.js.map +1 -1
  89. package/dist/Combobox/ComboboxEmpty.cjs.map +1 -1
  90. package/dist/Combobox/ComboboxEmpty.js.map +1 -1
  91. package/dist/Combobox/ComboboxGroup.cjs +1 -1
  92. package/dist/Combobox/ComboboxGroup.cjs.map +1 -1
  93. package/dist/Combobox/ComboboxGroup.js +1 -1
  94. package/dist/Combobox/ComboboxGroup.js.map +1 -1
  95. package/dist/Combobox/ComboboxInput.cjs +9 -1
  96. package/dist/Combobox/ComboboxInput.cjs.map +1 -1
  97. package/dist/Combobox/ComboboxInput.js +9 -1
  98. package/dist/Combobox/ComboboxInput.js.map +1 -1
  99. package/dist/Combobox/ComboboxItem.cjs +4 -3
  100. package/dist/Combobox/ComboboxItem.cjs.map +1 -1
  101. package/dist/Combobox/ComboboxItem.js +4 -3
  102. package/dist/Combobox/ComboboxItem.js.map +1 -1
  103. package/dist/Combobox/ComboboxLabel.cjs +1 -1
  104. package/dist/Combobox/ComboboxLabel.js +1 -1
  105. package/dist/Combobox/ComboboxRoot.cjs +1 -2
  106. package/dist/Combobox/ComboboxRoot.cjs.map +1 -1
  107. package/dist/Combobox/ComboboxRoot.js +1 -2
  108. package/dist/Combobox/ComboboxRoot.js.map +1 -1
  109. package/dist/Combobox/ComboboxTrigger.cjs.map +1 -1
  110. package/dist/Combobox/ComboboxTrigger.js.map +1 -1
  111. package/dist/Combobox/ComboboxViewport.cjs.map +1 -1
  112. package/dist/Combobox/ComboboxViewport.js.map +1 -1
  113. package/dist/Combobox/ComboboxVirtualizer.cjs.map +1 -1
  114. package/dist/Combobox/ComboboxVirtualizer.js.map +1 -1
  115. package/dist/ConfigProvider/ConfigProvider.cjs.map +1 -1
  116. package/dist/ConfigProvider/ConfigProvider.js.map +1 -1
  117. package/dist/ContextMenu/ContextMenuContent.cjs.map +1 -1
  118. package/dist/ContextMenu/ContextMenuContent.js.map +1 -1
  119. package/dist/ContextMenu/ContextMenuPortal.cjs.map +1 -1
  120. package/dist/ContextMenu/ContextMenuPortal.js.map +1 -1
  121. package/dist/ContextMenu/ContextMenuRoot.cjs.map +1 -1
  122. package/dist/ContextMenu/ContextMenuRoot.js.map +1 -1
  123. package/dist/ContextMenu/ContextMenuSub.cjs.map +1 -1
  124. package/dist/ContextMenu/ContextMenuSub.js.map +1 -1
  125. package/dist/ContextMenu/ContextMenuTrigger.cjs +2 -2
  126. package/dist/ContextMenu/ContextMenuTrigger.cjs.map +1 -1
  127. package/dist/ContextMenu/ContextMenuTrigger.js +2 -2
  128. package/dist/ContextMenu/ContextMenuTrigger.js.map +1 -1
  129. package/dist/DateField/DateFieldInput.cjs +1 -0
  130. package/dist/DateField/DateFieldInput.cjs.map +1 -1
  131. package/dist/DateField/DateFieldInput.js +1 -0
  132. package/dist/DateField/DateFieldInput.js.map +1 -1
  133. package/dist/DateField/DateFieldRoot.cjs +7 -1
  134. package/dist/DateField/DateFieldRoot.cjs.map +1 -1
  135. package/dist/DateField/DateFieldRoot.js +7 -1
  136. package/dist/DateField/DateFieldRoot.js.map +1 -1
  137. package/dist/DatePicker/DatePickerArrow.cjs.map +1 -1
  138. package/dist/DatePicker/DatePickerArrow.js.map +1 -1
  139. package/dist/DatePicker/DatePickerCalendar.cjs.map +1 -1
  140. package/dist/DatePicker/DatePickerCalendar.js.map +1 -1
  141. package/dist/DatePicker/DatePickerCell.cjs.map +1 -1
  142. package/dist/DatePicker/DatePickerCell.js.map +1 -1
  143. package/dist/DatePicker/DatePickerCellTrigger.cjs.map +1 -1
  144. package/dist/DatePicker/DatePickerCellTrigger.js.map +1 -1
  145. package/dist/DatePicker/DatePickerClose.cjs.map +1 -1
  146. package/dist/DatePicker/DatePickerClose.js.map +1 -1
  147. package/dist/DatePicker/DatePickerContent.cjs +8 -3
  148. package/dist/DatePicker/DatePickerContent.cjs.map +1 -1
  149. package/dist/DatePicker/DatePickerContent.js +9 -4
  150. package/dist/DatePicker/DatePickerContent.js.map +1 -1
  151. package/dist/DatePicker/DatePickerGrid.cjs.map +1 -1
  152. package/dist/DatePicker/DatePickerGrid.js.map +1 -1
  153. package/dist/DatePicker/DatePickerGridBody.cjs.map +1 -1
  154. package/dist/DatePicker/DatePickerGridBody.js.map +1 -1
  155. package/dist/DatePicker/DatePickerGridHead.cjs.map +1 -1
  156. package/dist/DatePicker/DatePickerGridHead.js.map +1 -1
  157. package/dist/DatePicker/DatePickerGridRow.cjs.map +1 -1
  158. package/dist/DatePicker/DatePickerGridRow.js.map +1 -1
  159. package/dist/DatePicker/DatePickerHeadCell.cjs.map +1 -1
  160. package/dist/DatePicker/DatePickerHeadCell.js.map +1 -1
  161. package/dist/DatePicker/DatePickerHeader.cjs.map +1 -1
  162. package/dist/DatePicker/DatePickerHeader.js.map +1 -1
  163. package/dist/DatePicker/DatePickerHeading.cjs.map +1 -1
  164. package/dist/DatePicker/DatePickerHeading.js.map +1 -1
  165. package/dist/DatePicker/DatePickerInput.cjs.map +1 -1
  166. package/dist/DatePicker/DatePickerInput.js.map +1 -1
  167. package/dist/DatePicker/DatePickerNext.cjs.map +1 -1
  168. package/dist/DatePicker/DatePickerNext.js.map +1 -1
  169. package/dist/DatePicker/DatePickerPrev.cjs.map +1 -1
  170. package/dist/DatePicker/DatePickerPrev.js.map +1 -1
  171. package/dist/DatePicker/DatePickerRoot.cjs +1 -0
  172. package/dist/DatePicker/DatePickerRoot.cjs.map +1 -1
  173. package/dist/DatePicker/DatePickerRoot.js +1 -0
  174. package/dist/DatePicker/DatePickerRoot.js.map +1 -1
  175. package/dist/DatePicker/DatePickerTrigger.cjs.map +1 -1
  176. package/dist/DatePicker/DatePickerTrigger.js.map +1 -1
  177. package/dist/DateRangeField/DateRangeFieldInput.cjs +1 -0
  178. package/dist/DateRangeField/DateRangeFieldInput.cjs.map +1 -1
  179. package/dist/DateRangeField/DateRangeFieldInput.js +1 -0
  180. package/dist/DateRangeField/DateRangeFieldInput.js.map +1 -1
  181. package/dist/DateRangeField/DateRangeFieldRoot.cjs +13 -9
  182. package/dist/DateRangeField/DateRangeFieldRoot.cjs.map +1 -1
  183. package/dist/DateRangeField/DateRangeFieldRoot.js +13 -9
  184. package/dist/DateRangeField/DateRangeFieldRoot.js.map +1 -1
  185. package/dist/DateRangePicker/DateRangePickerAnchor.cjs.map +1 -1
  186. package/dist/DateRangePicker/DateRangePickerAnchor.js.map +1 -1
  187. package/dist/DateRangePicker/DateRangePickerArrow.cjs.map +1 -1
  188. package/dist/DateRangePicker/DateRangePickerArrow.js.map +1 -1
  189. package/dist/DateRangePicker/DateRangePickerCalendar.cjs +3 -1
  190. package/dist/DateRangePicker/DateRangePickerCalendar.cjs.map +1 -1
  191. package/dist/DateRangePicker/DateRangePickerCalendar.js +3 -1
  192. package/dist/DateRangePicker/DateRangePickerCalendar.js.map +1 -1
  193. package/dist/DateRangePicker/DateRangePickerCell.cjs.map +1 -1
  194. package/dist/DateRangePicker/DateRangePickerCell.js.map +1 -1
  195. package/dist/DateRangePicker/DateRangePickerClose.cjs.map +1 -1
  196. package/dist/DateRangePicker/DateRangePickerClose.js.map +1 -1
  197. package/dist/DateRangePicker/DateRangePickerContent.cjs +8 -3
  198. package/dist/DateRangePicker/DateRangePickerContent.cjs.map +1 -1
  199. package/dist/DateRangePicker/DateRangePickerContent.js +9 -4
  200. package/dist/DateRangePicker/DateRangePickerContent.js.map +1 -1
  201. package/dist/DateRangePicker/DateRangePickerGrid.cjs.map +1 -1
  202. package/dist/DateRangePicker/DateRangePickerGrid.js.map +1 -1
  203. package/dist/DateRangePicker/DateRangePickerGridBody.cjs.map +1 -1
  204. package/dist/DateRangePicker/DateRangePickerGridBody.js.map +1 -1
  205. package/dist/DateRangePicker/DateRangePickerGridHead.cjs.map +1 -1
  206. package/dist/DateRangePicker/DateRangePickerGridHead.js.map +1 -1
  207. package/dist/DateRangePicker/DateRangePickerGridRow.cjs.map +1 -1
  208. package/dist/DateRangePicker/DateRangePickerGridRow.js.map +1 -1
  209. package/dist/DateRangePicker/DateRangePickerHeadCell.cjs.map +1 -1
  210. package/dist/DateRangePicker/DateRangePickerHeadCell.js.map +1 -1
  211. package/dist/DateRangePicker/DateRangePickerHeader.cjs.map +1 -1
  212. package/dist/DateRangePicker/DateRangePickerHeader.js.map +1 -1
  213. package/dist/DateRangePicker/DateRangePickerHeading.cjs.map +1 -1
  214. package/dist/DateRangePicker/DateRangePickerHeading.js.map +1 -1
  215. package/dist/DateRangePicker/DateRangePickerInput.cjs.map +1 -1
  216. package/dist/DateRangePicker/DateRangePickerInput.js.map +1 -1
  217. package/dist/DateRangePicker/DateRangePickerNext.cjs.map +1 -1
  218. package/dist/DateRangePicker/DateRangePickerNext.js.map +1 -1
  219. package/dist/DateRangePicker/DateRangePickerPrev.cjs.map +1 -1
  220. package/dist/DateRangePicker/DateRangePickerPrev.js.map +1 -1
  221. package/dist/DateRangePicker/DateRangePickerRoot.cjs +9 -2
  222. package/dist/DateRangePicker/DateRangePickerRoot.cjs.map +1 -1
  223. package/dist/DateRangePicker/DateRangePickerRoot.js +9 -2
  224. package/dist/DateRangePicker/DateRangePickerRoot.js.map +1 -1
  225. package/dist/DateRangePicker/DateRangePickerTrigger.cjs.map +1 -1
  226. package/dist/DateRangePicker/DateRangePickerTrigger.js.map +1 -1
  227. package/dist/Dialog/DialogClose.cjs +1 -1
  228. package/dist/Dialog/DialogClose.cjs.map +1 -1
  229. package/dist/Dialog/DialogClose.js +1 -1
  230. package/dist/Dialog/DialogClose.js.map +1 -1
  231. package/dist/Dialog/DialogContent.cjs.map +1 -1
  232. package/dist/Dialog/DialogContent.js.map +1 -1
  233. package/dist/Dialog/DialogContentImpl.cjs.map +1 -1
  234. package/dist/Dialog/DialogContentImpl.js.map +1 -1
  235. package/dist/Dialog/DialogContentModal.cjs.map +1 -1
  236. package/dist/Dialog/DialogContentModal.js.map +1 -1
  237. package/dist/Dialog/DialogContentNonModal.cjs.map +1 -1
  238. package/dist/Dialog/DialogContentNonModal.js.map +1 -1
  239. package/dist/Dialog/DialogDescription.cjs.map +1 -1
  240. package/dist/Dialog/DialogDescription.js.map +1 -1
  241. package/dist/Dialog/DialogOverlay.cjs.map +1 -1
  242. package/dist/Dialog/DialogOverlay.js.map +1 -1
  243. package/dist/Dialog/DialogOverlayImpl.cjs.map +1 -1
  244. package/dist/Dialog/DialogOverlayImpl.js.map +1 -1
  245. package/dist/Dialog/DialogRoot.cjs +4 -1
  246. package/dist/Dialog/DialogRoot.cjs.map +1 -1
  247. package/dist/Dialog/DialogRoot.js +4 -1
  248. package/dist/Dialog/DialogRoot.js.map +1 -1
  249. package/dist/Dialog/DialogTitle.cjs.map +1 -1
  250. package/dist/Dialog/DialogTitle.js.map +1 -1
  251. package/dist/Dialog/DialogTrigger.cjs +1 -1
  252. package/dist/Dialog/DialogTrigger.cjs.map +1 -1
  253. package/dist/Dialog/DialogTrigger.js +1 -1
  254. package/dist/Dialog/DialogTrigger.js.map +1 -1
  255. package/dist/Dialog/utils.cjs.map +1 -1
  256. package/dist/Dialog/utils.js.map +1 -1
  257. package/dist/DismissableLayer/DismissableLayer.cjs.map +1 -1
  258. package/dist/DismissableLayer/DismissableLayer.js.map +1 -1
  259. package/dist/DismissableLayer/DismissableLayerBranch.cjs.map +1 -1
  260. package/dist/DismissableLayer/DismissableLayerBranch.js.map +1 -1
  261. package/dist/DismissableLayer/utils.cjs +11 -6
  262. package/dist/DismissableLayer/utils.cjs.map +1 -1
  263. package/dist/DismissableLayer/utils.js +12 -7
  264. package/dist/DismissableLayer/utils.js.map +1 -1
  265. package/dist/DropdownMenu/DropdownMenuContent.cjs +1 -1
  266. package/dist/DropdownMenu/DropdownMenuContent.cjs.map +1 -1
  267. package/dist/DropdownMenu/DropdownMenuContent.js +1 -1
  268. package/dist/DropdownMenu/DropdownMenuContent.js.map +1 -1
  269. package/dist/DropdownMenu/DropdownMenuRoot.cjs.map +1 -1
  270. package/dist/DropdownMenu/DropdownMenuRoot.js.map +1 -1
  271. package/dist/DropdownMenu/DropdownMenuSub.cjs.map +1 -1
  272. package/dist/DropdownMenu/DropdownMenuSub.js.map +1 -1
  273. package/dist/DropdownMenu/DropdownMenuTrigger.cjs +1 -1
  274. package/dist/DropdownMenu/DropdownMenuTrigger.cjs.map +1 -1
  275. package/dist/DropdownMenu/DropdownMenuTrigger.js +1 -1
  276. package/dist/DropdownMenu/DropdownMenuTrigger.js.map +1 -1
  277. package/dist/Editable/EditableInput.cjs.map +1 -1
  278. package/dist/Editable/EditableInput.js.map +1 -1
  279. package/dist/Editable/EditablePreview.cjs.map +1 -1
  280. package/dist/Editable/EditablePreview.js.map +1 -1
  281. package/dist/Editable/EditableRoot.cjs +1 -1
  282. package/dist/Editable/EditableRoot.cjs.map +1 -1
  283. package/dist/Editable/EditableRoot.js +1 -1
  284. package/dist/Editable/EditableRoot.js.map +1 -1
  285. package/dist/FocusScope/FocusScope.cjs +1 -1
  286. package/dist/FocusScope/FocusScope.cjs.map +1 -1
  287. package/dist/FocusScope/FocusScope.js +1 -1
  288. package/dist/FocusScope/FocusScope.js.map +1 -1
  289. package/dist/HoverCard/HoverCardContent.cjs +1 -1
  290. package/dist/HoverCard/HoverCardContent.cjs.map +1 -1
  291. package/dist/HoverCard/HoverCardContent.js +1 -1
  292. package/dist/HoverCard/HoverCardContent.js.map +1 -1
  293. package/dist/HoverCard/HoverCardContentImpl.cjs +3 -3
  294. package/dist/HoverCard/HoverCardContentImpl.cjs.map +1 -1
  295. package/dist/HoverCard/HoverCardContentImpl.js +3 -3
  296. package/dist/HoverCard/HoverCardContentImpl.js.map +1 -1
  297. package/dist/HoverCard/HoverCardRoot.cjs.map +1 -1
  298. package/dist/HoverCard/HoverCardRoot.js.map +1 -1
  299. package/dist/HoverCard/HoverCardTrigger.cjs +1 -1
  300. package/dist/HoverCard/HoverCardTrigger.cjs.map +1 -1
  301. package/dist/HoverCard/HoverCardTrigger.js +1 -1
  302. package/dist/HoverCard/HoverCardTrigger.js.map +1 -1
  303. package/dist/Listbox/ListboxContent.cjs +1 -1
  304. package/dist/Listbox/ListboxContent.cjs.map +1 -1
  305. package/dist/Listbox/ListboxContent.js +1 -1
  306. package/dist/Listbox/ListboxContent.js.map +1 -1
  307. package/dist/Listbox/ListboxFilter.cjs.map +1 -1
  308. package/dist/Listbox/ListboxFilter.js.map +1 -1
  309. package/dist/Listbox/ListboxItem.cjs +2 -2
  310. package/dist/Listbox/ListboxItem.cjs.map +1 -1
  311. package/dist/Listbox/ListboxItem.js +2 -2
  312. package/dist/Listbox/ListboxItem.js.map +1 -1
  313. package/dist/Listbox/ListboxItemIndicator.cjs.map +1 -1
  314. package/dist/Listbox/ListboxItemIndicator.js.map +1 -1
  315. package/dist/Listbox/ListboxRoot.cjs +3 -3
  316. package/dist/Listbox/ListboxRoot.cjs.map +1 -1
  317. package/dist/Listbox/ListboxRoot.js +3 -3
  318. package/dist/Listbox/ListboxRoot.js.map +1 -1
  319. package/dist/Listbox/ListboxVirtualizer.cjs +4 -4
  320. package/dist/Listbox/ListboxVirtualizer.cjs.map +1 -1
  321. package/dist/Listbox/ListboxVirtualizer.js +4 -4
  322. package/dist/Listbox/ListboxVirtualizer.js.map +1 -1
  323. package/dist/Menu/MenuAnchor.cjs.map +1 -1
  324. package/dist/Menu/MenuAnchor.js.map +1 -1
  325. package/dist/Menu/MenuCheckboxItem.cjs +1 -1
  326. package/dist/Menu/MenuCheckboxItem.cjs.map +1 -1
  327. package/dist/Menu/MenuCheckboxItem.js +1 -1
  328. package/dist/Menu/MenuCheckboxItem.js.map +1 -1
  329. package/dist/Menu/MenuContent.cjs.map +1 -1
  330. package/dist/Menu/MenuContent.js.map +1 -1
  331. package/dist/Menu/MenuContentImpl.cjs +2 -2
  332. package/dist/Menu/MenuContentImpl.cjs.map +1 -1
  333. package/dist/Menu/MenuContentImpl.js +2 -2
  334. package/dist/Menu/MenuContentImpl.js.map +1 -1
  335. package/dist/Menu/MenuItem.cjs.map +1 -1
  336. package/dist/Menu/MenuItem.js.map +1 -1
  337. package/dist/Menu/MenuItemImpl.cjs +1 -1
  338. package/dist/Menu/MenuItemImpl.cjs.map +1 -1
  339. package/dist/Menu/MenuItemImpl.js +1 -1
  340. package/dist/Menu/MenuItemImpl.js.map +1 -1
  341. package/dist/Menu/MenuItemIndicator.cjs.map +1 -1
  342. package/dist/Menu/MenuItemIndicator.js.map +1 -1
  343. package/dist/Menu/MenuRadioGroup.cjs.map +1 -1
  344. package/dist/Menu/MenuRadioGroup.js.map +1 -1
  345. package/dist/Menu/MenuRadioItem.cjs +1 -1
  346. package/dist/Menu/MenuRadioItem.cjs.map +1 -1
  347. package/dist/Menu/MenuRadioItem.js +1 -1
  348. package/dist/Menu/MenuRadioItem.js.map +1 -1
  349. package/dist/Menu/MenuRoot.cjs +1 -1
  350. package/dist/Menu/MenuRoot.cjs.map +1 -1
  351. package/dist/Menu/MenuRoot.js +1 -1
  352. package/dist/Menu/MenuRoot.js.map +1 -1
  353. package/dist/Menu/MenuRootContentModal.cjs.map +1 -1
  354. package/dist/Menu/MenuRootContentModal.js.map +1 -1
  355. package/dist/Menu/MenuRootContentNonModal.cjs.map +1 -1
  356. package/dist/Menu/MenuRootContentNonModal.js.map +1 -1
  357. package/dist/Menu/MenuSub.cjs.map +1 -1
  358. package/dist/Menu/MenuSub.js.map +1 -1
  359. package/dist/Menu/MenuSubContent.cjs.map +1 -1
  360. package/dist/Menu/MenuSubContent.js.map +1 -1
  361. package/dist/Menu/MenuSubTrigger.cjs +1 -1
  362. package/dist/Menu/MenuSubTrigger.cjs.map +1 -1
  363. package/dist/Menu/MenuSubTrigger.js +1 -1
  364. package/dist/Menu/MenuSubTrigger.js.map +1 -1
  365. package/dist/Menubar/MenubarContent.cjs +1 -1
  366. package/dist/Menubar/MenubarContent.cjs.map +1 -1
  367. package/dist/Menubar/MenubarContent.js +1 -1
  368. package/dist/Menubar/MenubarContent.js.map +1 -1
  369. package/dist/Menubar/MenubarGroup.cjs.map +1 -1
  370. package/dist/Menubar/MenubarGroup.js.map +1 -1
  371. package/dist/Menubar/MenubarMenu.cjs.map +1 -1
  372. package/dist/Menubar/MenubarMenu.js.map +1 -1
  373. package/dist/Menubar/MenubarRoot.cjs.map +1 -1
  374. package/dist/Menubar/MenubarRoot.js.map +1 -1
  375. package/dist/Menubar/MenubarSub.cjs.map +1 -1
  376. package/dist/Menubar/MenubarSub.js.map +1 -1
  377. package/dist/Menubar/MenubarSubContent.cjs.map +1 -1
  378. package/dist/Menubar/MenubarSubContent.js.map +1 -1
  379. package/dist/Menubar/MenubarTrigger.cjs +1 -1
  380. package/dist/Menubar/MenubarTrigger.cjs.map +1 -1
  381. package/dist/Menubar/MenubarTrigger.js +1 -1
  382. package/dist/Menubar/MenubarTrigger.js.map +1 -1
  383. package/dist/NavigationMenu/NavigationMenuContent.cjs +1 -1
  384. package/dist/NavigationMenu/NavigationMenuContent.cjs.map +1 -1
  385. package/dist/NavigationMenu/NavigationMenuContent.js +1 -1
  386. package/dist/NavigationMenu/NavigationMenuContent.js.map +1 -1
  387. package/dist/NavigationMenu/NavigationMenuContentImpl.cjs +1 -1
  388. package/dist/NavigationMenu/NavigationMenuContentImpl.cjs.map +1 -1
  389. package/dist/NavigationMenu/NavigationMenuContentImpl.js +1 -1
  390. package/dist/NavigationMenu/NavigationMenuContentImpl.js.map +1 -1
  391. package/dist/NavigationMenu/NavigationMenuIndicator.cjs.map +1 -1
  392. package/dist/NavigationMenu/NavigationMenuIndicator.js.map +1 -1
  393. package/dist/NavigationMenu/NavigationMenuItem.cjs.map +1 -1
  394. package/dist/NavigationMenu/NavigationMenuItem.js.map +1 -1
  395. package/dist/NavigationMenu/NavigationMenuLink.cjs.map +1 -1
  396. package/dist/NavigationMenu/NavigationMenuLink.js.map +1 -1
  397. package/dist/NavigationMenu/NavigationMenuList.cjs.map +1 -1
  398. package/dist/NavigationMenu/NavigationMenuList.js.map +1 -1
  399. package/dist/NavigationMenu/NavigationMenuRoot.cjs.map +1 -1
  400. package/dist/NavigationMenu/NavigationMenuRoot.js.map +1 -1
  401. package/dist/NavigationMenu/NavigationMenuSub.cjs.map +1 -1
  402. package/dist/NavigationMenu/NavigationMenuSub.js.map +1 -1
  403. package/dist/NavigationMenu/NavigationMenuTrigger.cjs.map +1 -1
  404. package/dist/NavigationMenu/NavigationMenuTrigger.js.map +1 -1
  405. package/dist/NavigationMenu/NavigationMenuViewport.cjs.map +1 -1
  406. package/dist/NavigationMenu/NavigationMenuViewport.js.map +1 -1
  407. package/dist/NumberField/NumberFieldDecrement.cjs +1 -1
  408. package/dist/NumberField/NumberFieldDecrement.cjs.map +1 -1
  409. package/dist/NumberField/NumberFieldDecrement.js +1 -1
  410. package/dist/NumberField/NumberFieldDecrement.js.map +1 -1
  411. package/dist/NumberField/NumberFieldIncrement.cjs.map +1 -1
  412. package/dist/NumberField/NumberFieldIncrement.js.map +1 -1
  413. package/dist/NumberField/NumberFieldInput.cjs +3 -3
  414. package/dist/NumberField/NumberFieldInput.cjs.map +1 -1
  415. package/dist/NumberField/NumberFieldInput.js +3 -3
  416. package/dist/NumberField/NumberFieldInput.js.map +1 -1
  417. package/dist/NumberField/NumberFieldRoot.cjs +8 -5
  418. package/dist/NumberField/NumberFieldRoot.cjs.map +1 -1
  419. package/dist/NumberField/NumberFieldRoot.js +8 -5
  420. package/dist/NumberField/NumberFieldRoot.js.map +1 -1
  421. package/dist/NumberField/utils.cjs.map +1 -1
  422. package/dist/NumberField/utils.js +1 -1
  423. package/dist/NumberField/utils.js.map +1 -1
  424. package/dist/Pagination/PaginationList.cjs.map +1 -1
  425. package/dist/Pagination/PaginationList.js.map +1 -1
  426. package/dist/Pagination/PaginationRoot.cjs.map +1 -1
  427. package/dist/Pagination/PaginationRoot.js.map +1 -1
  428. package/dist/Pagination/utils.cjs.map +1 -1
  429. package/dist/Pagination/utils.js.map +1 -1
  430. package/dist/PinInput/PinInputInput.cjs +1 -1
  431. package/dist/PinInput/PinInputInput.cjs.map +1 -1
  432. package/dist/PinInput/PinInputInput.js +1 -1
  433. package/dist/PinInput/PinInputInput.js.map +1 -1
  434. package/dist/PinInput/PinInputRoot.cjs.map +1 -1
  435. package/dist/PinInput/PinInputRoot.js.map +1 -1
  436. package/dist/Popover/PopoverAnchor.cjs.map +1 -1
  437. package/dist/Popover/PopoverAnchor.js.map +1 -1
  438. package/dist/Popover/PopoverClose.cjs.map +1 -1
  439. package/dist/Popover/PopoverClose.js.map +1 -1
  440. package/dist/Popover/PopoverContent.cjs.map +1 -1
  441. package/dist/Popover/PopoverContent.js.map +1 -1
  442. package/dist/Popover/PopoverContentImpl.cjs +1 -1
  443. package/dist/Popover/PopoverContentImpl.cjs.map +1 -1
  444. package/dist/Popover/PopoverContentImpl.js +1 -1
  445. package/dist/Popover/PopoverContentImpl.js.map +1 -1
  446. package/dist/Popover/PopoverContentModal.cjs +1 -1
  447. package/dist/Popover/PopoverContentModal.cjs.map +1 -1
  448. package/dist/Popover/PopoverContentModal.js +1 -1
  449. package/dist/Popover/PopoverContentModal.js.map +1 -1
  450. package/dist/Popover/PopoverContentNonModal.cjs.map +1 -1
  451. package/dist/Popover/PopoverContentNonModal.js.map +1 -1
  452. package/dist/Popover/PopoverRoot.cjs.map +1 -1
  453. package/dist/Popover/PopoverRoot.js.map +1 -1
  454. package/dist/Popover/PopoverTrigger.cjs +1 -1
  455. package/dist/Popover/PopoverTrigger.cjs.map +1 -1
  456. package/dist/Popover/PopoverTrigger.js +1 -1
  457. package/dist/Popover/PopoverTrigger.js.map +1 -1
  458. package/dist/Popper/PopperAnchor.cjs.map +1 -1
  459. package/dist/Popper/PopperAnchor.js.map +1 -1
  460. package/dist/Popper/PopperArrow.cjs.map +1 -1
  461. package/dist/Popper/PopperArrow.js.map +1 -1
  462. package/dist/Popper/PopperContent.cjs +2 -2
  463. package/dist/Popper/PopperContent.cjs.map +1 -1
  464. package/dist/Popper/PopperContent.js +2 -2
  465. package/dist/Popper/PopperContent.js.map +1 -1
  466. package/dist/Popper/PopperRoot.cjs.map +1 -1
  467. package/dist/Popper/PopperRoot.js.map +1 -1
  468. package/dist/Presence/Presence.cjs +1 -1
  469. package/dist/Presence/Presence.cjs.map +1 -1
  470. package/dist/Presence/Presence.js +1 -1
  471. package/dist/Presence/Presence.js.map +1 -1
  472. package/dist/Presence/usePresence.cjs +2 -2
  473. package/dist/Presence/usePresence.cjs.map +1 -1
  474. package/dist/Presence/usePresence.js +2 -2
  475. package/dist/Presence/usePresence.js.map +1 -1
  476. package/dist/Primitive/Primitive.cjs.map +1 -1
  477. package/dist/Primitive/Primitive.js.map +1 -1
  478. package/dist/Primitive/Slot.cjs +1 -9
  479. package/dist/Primitive/Slot.cjs.map +1 -1
  480. package/dist/Primitive/Slot.js +1 -9
  481. package/dist/Primitive/Slot.js.map +1 -1
  482. package/dist/Primitive/usePrimitiveElement.cjs.map +1 -1
  483. package/dist/Primitive/usePrimitiveElement.js.map +1 -1
  484. package/dist/Progress/ProgressIndicator.cjs.map +1 -1
  485. package/dist/Progress/ProgressIndicator.js.map +1 -1
  486. package/dist/Progress/ProgressRoot.cjs +3 -2
  487. package/dist/Progress/ProgressRoot.cjs.map +1 -1
  488. package/dist/Progress/ProgressRoot.js +3 -2
  489. package/dist/Progress/ProgressRoot.js.map +1 -1
  490. package/dist/RadioGroup/Radio.cjs.map +1 -1
  491. package/dist/RadioGroup/Radio.js.map +1 -1
  492. package/dist/RadioGroup/RadioGroupIndicator.cjs.map +1 -1
  493. package/dist/RadioGroup/RadioGroupIndicator.js.map +1 -1
  494. package/dist/RadioGroup/RadioGroupItem.cjs +1 -1
  495. package/dist/RadioGroup/RadioGroupItem.cjs.map +1 -1
  496. package/dist/RadioGroup/RadioGroupItem.js +1 -1
  497. package/dist/RadioGroup/RadioGroupItem.js.map +1 -1
  498. package/dist/RadioGroup/RadioGroupRoot.cjs.map +1 -1
  499. package/dist/RadioGroup/RadioGroupRoot.js.map +1 -1
  500. package/dist/RadioGroup/utils.cjs.map +1 -1
  501. package/dist/RadioGroup/utils.js.map +1 -1
  502. package/dist/RangeCalendar/RangeCalendarCell.cjs +3 -3
  503. package/dist/RangeCalendar/RangeCalendarCell.cjs.map +1 -1
  504. package/dist/RangeCalendar/RangeCalendarCell.js +3 -3
  505. package/dist/RangeCalendar/RangeCalendarCell.js.map +1 -1
  506. package/dist/RangeCalendar/RangeCalendarCellTrigger.cjs +28 -9
  507. package/dist/RangeCalendar/RangeCalendarCellTrigger.cjs.map +1 -1
  508. package/dist/RangeCalendar/RangeCalendarCellTrigger.js +28 -9
  509. package/dist/RangeCalendar/RangeCalendarCellTrigger.js.map +1 -1
  510. package/dist/RangeCalendar/RangeCalendarHeading.cjs +1 -1
  511. package/dist/RangeCalendar/RangeCalendarHeading.cjs.map +1 -1
  512. package/dist/RangeCalendar/RangeCalendarHeading.js +1 -1
  513. package/dist/RangeCalendar/RangeCalendarHeading.js.map +1 -1
  514. package/dist/RangeCalendar/RangeCalendarNext.cjs.map +1 -1
  515. package/dist/RangeCalendar/RangeCalendarNext.js.map +1 -1
  516. package/dist/RangeCalendar/RangeCalendarPrev.cjs.map +1 -1
  517. package/dist/RangeCalendar/RangeCalendarPrev.js.map +1 -1
  518. package/dist/RangeCalendar/RangeCalendarRoot.cjs +32 -10
  519. package/dist/RangeCalendar/RangeCalendarRoot.cjs.map +1 -1
  520. package/dist/RangeCalendar/RangeCalendarRoot.js +32 -10
  521. package/dist/RangeCalendar/RangeCalendarRoot.js.map +1 -1
  522. package/dist/RangeCalendar/useRangeCalendar.cjs +26 -3
  523. package/dist/RangeCalendar/useRangeCalendar.cjs.map +1 -1
  524. package/dist/RangeCalendar/useRangeCalendar.js +26 -3
  525. package/dist/RangeCalendar/useRangeCalendar.js.map +1 -1
  526. package/dist/RovingFocus/RovingFocusGroup.cjs +1 -1
  527. package/dist/RovingFocus/RovingFocusGroup.cjs.map +1 -1
  528. package/dist/RovingFocus/RovingFocusGroup.js +1 -1
  529. package/dist/RovingFocus/RovingFocusGroup.js.map +1 -1
  530. package/dist/RovingFocus/RovingFocusItem.cjs +1 -1
  531. package/dist/RovingFocus/RovingFocusItem.cjs.map +1 -1
  532. package/dist/RovingFocus/RovingFocusItem.js +1 -1
  533. package/dist/RovingFocus/RovingFocusItem.js.map +1 -1
  534. package/dist/ScrollArea/ScrollAreaCorner.cjs.map +1 -1
  535. package/dist/ScrollArea/ScrollAreaCorner.js.map +1 -1
  536. package/dist/ScrollArea/ScrollAreaCornerImpl.cjs +1 -1
  537. package/dist/ScrollArea/ScrollAreaCornerImpl.cjs.map +1 -1
  538. package/dist/ScrollArea/ScrollAreaCornerImpl.js +1 -1
  539. package/dist/ScrollArea/ScrollAreaCornerImpl.js.map +1 -1
  540. package/dist/ScrollArea/ScrollAreaRoot.cjs.map +1 -1
  541. package/dist/ScrollArea/ScrollAreaRoot.js.map +1 -1
  542. package/dist/ScrollArea/ScrollAreaScrollbar.cjs +1 -1
  543. package/dist/ScrollArea/ScrollAreaScrollbar.cjs.map +1 -1
  544. package/dist/ScrollArea/ScrollAreaScrollbar.js +1 -1
  545. package/dist/ScrollArea/ScrollAreaScrollbar.js.map +1 -1
  546. package/dist/ScrollArea/ScrollAreaScrollbarAuto.cjs.map +1 -1
  547. package/dist/ScrollArea/ScrollAreaScrollbarAuto.js.map +1 -1
  548. package/dist/ScrollArea/ScrollAreaScrollbarHover.cjs.map +1 -1
  549. package/dist/ScrollArea/ScrollAreaScrollbarHover.js.map +1 -1
  550. package/dist/ScrollArea/ScrollAreaScrollbarImpl.cjs.map +1 -1
  551. package/dist/ScrollArea/ScrollAreaScrollbarImpl.js.map +1 -1
  552. package/dist/ScrollArea/ScrollAreaScrollbarScroll.cjs.map +1 -1
  553. package/dist/ScrollArea/ScrollAreaScrollbarScroll.js.map +1 -1
  554. package/dist/ScrollArea/ScrollAreaScrollbarVisible.cjs.map +1 -1
  555. package/dist/ScrollArea/ScrollAreaScrollbarVisible.js.map +1 -1
  556. package/dist/ScrollArea/ScrollAreaScrollbarX.cjs.map +1 -1
  557. package/dist/ScrollArea/ScrollAreaScrollbarX.js.map +1 -1
  558. package/dist/ScrollArea/ScrollAreaScrollbarY.cjs.map +1 -1
  559. package/dist/ScrollArea/ScrollAreaScrollbarY.js.map +1 -1
  560. package/dist/ScrollArea/ScrollAreaThumb.cjs.map +1 -1
  561. package/dist/ScrollArea/ScrollAreaThumb.js.map +1 -1
  562. package/dist/ScrollArea/ScrollAreaViewport.cjs +1 -1
  563. package/dist/ScrollArea/ScrollAreaViewport.cjs.map +1 -1
  564. package/dist/ScrollArea/ScrollAreaViewport.js +1 -1
  565. package/dist/ScrollArea/ScrollAreaViewport.js.map +1 -1
  566. package/dist/ScrollArea/utils.cjs.map +1 -1
  567. package/dist/ScrollArea/utils.js.map +1 -1
  568. package/dist/Select/SelectArrow.cjs +1 -1
  569. package/dist/Select/SelectArrow.cjs.map +1 -1
  570. package/dist/Select/SelectArrow.js +1 -1
  571. package/dist/Select/SelectArrow.js.map +1 -1
  572. package/dist/Select/SelectContent.cjs.map +1 -1
  573. package/dist/Select/SelectContent.js.map +1 -1
  574. package/dist/Select/SelectContentImpl.cjs +4 -4
  575. package/dist/Select/SelectContentImpl.cjs.map +1 -1
  576. package/dist/Select/SelectContentImpl.js +4 -4
  577. package/dist/Select/SelectContentImpl.js.map +1 -1
  578. package/dist/Select/SelectItem.cjs +1 -1
  579. package/dist/Select/SelectItem.cjs.map +1 -1
  580. package/dist/Select/SelectItem.js +1 -1
  581. package/dist/Select/SelectItem.js.map +1 -1
  582. package/dist/Select/SelectItemAlignedPosition.cjs +2 -2
  583. package/dist/Select/SelectItemAlignedPosition.cjs.map +1 -1
  584. package/dist/Select/SelectItemAlignedPosition.js +2 -2
  585. package/dist/Select/SelectItemAlignedPosition.js.map +1 -1
  586. package/dist/Select/SelectItemIndicator.cjs.map +1 -1
  587. package/dist/Select/SelectItemIndicator.js.map +1 -1
  588. package/dist/Select/SelectItemText.cjs.map +1 -1
  589. package/dist/Select/SelectItemText.js.map +1 -1
  590. package/dist/Select/SelectPopperPosition.cjs +1 -1
  591. package/dist/Select/SelectPopperPosition.cjs.map +1 -1
  592. package/dist/Select/SelectPopperPosition.js +1 -1
  593. package/dist/Select/SelectPopperPosition.js.map +1 -1
  594. package/dist/Select/SelectProvider.cjs.map +1 -1
  595. package/dist/Select/SelectProvider.js.map +1 -1
  596. package/dist/Select/SelectRoot.cjs +5 -3
  597. package/dist/Select/SelectRoot.cjs.map +1 -1
  598. package/dist/Select/SelectRoot.js +5 -3
  599. package/dist/Select/SelectRoot.js.map +1 -1
  600. package/dist/Select/SelectScrollButtonImpl.cjs.map +1 -1
  601. package/dist/Select/SelectScrollButtonImpl.js.map +1 -1
  602. package/dist/Select/SelectScrollDownButton.cjs +1 -1
  603. package/dist/Select/SelectScrollDownButton.cjs.map +1 -1
  604. package/dist/Select/SelectScrollDownButton.js +1 -1
  605. package/dist/Select/SelectScrollDownButton.js.map +1 -1
  606. package/dist/Select/SelectTrigger.cjs +3 -3
  607. package/dist/Select/SelectTrigger.cjs.map +1 -1
  608. package/dist/Select/SelectTrigger.js +3 -3
  609. package/dist/Select/SelectTrigger.js.map +1 -1
  610. package/dist/Select/SelectValue.cjs +2 -1
  611. package/dist/Select/SelectValue.cjs.map +1 -1
  612. package/dist/Select/SelectValue.js +2 -1
  613. package/dist/Select/SelectValue.js.map +1 -1
  614. package/dist/Select/SelectViewport.cjs +1 -1
  615. package/dist/Select/SelectViewport.cjs.map +1 -1
  616. package/dist/Select/SelectViewport.js +1 -1
  617. package/dist/Select/SelectViewport.js.map +1 -1
  618. package/dist/Select/utils.cjs +4 -0
  619. package/dist/Select/utils.cjs.map +1 -1
  620. package/dist/Select/utils.js +4 -1
  621. package/dist/Select/utils.js.map +1 -1
  622. package/dist/Slider/SliderHorizontal.cjs +7 -4
  623. package/dist/Slider/SliderHorizontal.cjs.map +1 -1
  624. package/dist/Slider/SliderHorizontal.js +7 -4
  625. package/dist/Slider/SliderHorizontal.js.map +1 -1
  626. package/dist/Slider/SliderRange.cjs +2 -2
  627. package/dist/Slider/SliderRange.cjs.map +1 -1
  628. package/dist/Slider/SliderRange.js +2 -2
  629. package/dist/Slider/SliderRange.js.map +1 -1
  630. package/dist/Slider/SliderRoot.cjs +1 -1
  631. package/dist/Slider/SliderRoot.cjs.map +1 -1
  632. package/dist/Slider/SliderRoot.js +1 -1
  633. package/dist/Slider/SliderRoot.js.map +1 -1
  634. package/dist/Slider/SliderThumb.cjs +1 -1
  635. package/dist/Slider/SliderThumb.cjs.map +1 -1
  636. package/dist/Slider/SliderThumb.js +1 -1
  637. package/dist/Slider/SliderThumb.js.map +1 -1
  638. package/dist/Slider/SliderThumbImpl.cjs +2 -2
  639. package/dist/Slider/SliderThumbImpl.cjs.map +1 -1
  640. package/dist/Slider/SliderThumbImpl.js +2 -2
  641. package/dist/Slider/SliderThumbImpl.js.map +1 -1
  642. package/dist/Slider/SliderVertical.cjs +7 -4
  643. package/dist/Slider/SliderVertical.cjs.map +1 -1
  644. package/dist/Slider/SliderVertical.js +7 -4
  645. package/dist/Slider/SliderVertical.js.map +1 -1
  646. package/dist/Slider/utils.cjs +1 -1
  647. package/dist/Slider/utils.cjs.map +1 -1
  648. package/dist/Slider/utils.js +1 -1
  649. package/dist/Slider/utils.js.map +1 -1
  650. package/dist/Splitter/SplitterGroup.cjs +5 -5
  651. package/dist/Splitter/SplitterGroup.cjs.map +1 -1
  652. package/dist/Splitter/SplitterGroup.js +5 -5
  653. package/dist/Splitter/SplitterGroup.js.map +1 -1
  654. package/dist/Splitter/SplitterPanel.cjs +16 -10
  655. package/dist/Splitter/SplitterPanel.cjs.map +1 -1
  656. package/dist/Splitter/SplitterPanel.js +16 -10
  657. package/dist/Splitter/SplitterPanel.js.map +1 -1
  658. package/dist/Splitter/SplitterResizeHandle.cjs +1 -1
  659. package/dist/Splitter/SplitterResizeHandle.cjs.map +1 -1
  660. package/dist/Splitter/SplitterResizeHandle.js +1 -1
  661. package/dist/Splitter/SplitterResizeHandle.js.map +1 -1
  662. package/dist/Stepper/StepperDescription.cjs +1 -1
  663. package/dist/Stepper/StepperDescription.cjs.map +1 -1
  664. package/dist/Stepper/StepperDescription.js +1 -1
  665. package/dist/Stepper/StepperDescription.js.map +1 -1
  666. package/dist/Stepper/StepperIndicator.cjs.map +1 -1
  667. package/dist/Stepper/StepperIndicator.js.map +1 -1
  668. package/dist/Stepper/StepperItem.cjs.map +1 -1
  669. package/dist/Stepper/StepperItem.js.map +1 -1
  670. package/dist/Stepper/StepperRoot.cjs +30 -3
  671. package/dist/Stepper/StepperRoot.cjs.map +1 -1
  672. package/dist/Stepper/StepperRoot.js +30 -3
  673. package/dist/Stepper/StepperRoot.js.map +1 -1
  674. package/dist/Stepper/StepperSeparator.cjs.map +1 -1
  675. package/dist/Stepper/StepperSeparator.js.map +1 -1
  676. package/dist/Stepper/StepperTitle.cjs.map +1 -1
  677. package/dist/Stepper/StepperTitle.js.map +1 -1
  678. package/dist/Stepper/StepperTrigger.cjs +1 -1
  679. package/dist/Stepper/StepperTrigger.cjs.map +1 -1
  680. package/dist/Stepper/StepperTrigger.js +1 -1
  681. package/dist/Stepper/StepperTrigger.js.map +1 -1
  682. package/dist/Switch/SwitchRoot.cjs.map +1 -1
  683. package/dist/Switch/SwitchRoot.js.map +1 -1
  684. package/dist/Switch/SwitchThumb.cjs.map +1 -1
  685. package/dist/Switch/SwitchThumb.js.map +1 -1
  686. package/dist/Tabs/TabsContent.cjs +1 -1
  687. package/dist/Tabs/TabsContent.cjs.map +1 -1
  688. package/dist/Tabs/TabsContent.js +1 -1
  689. package/dist/Tabs/TabsContent.js.map +1 -1
  690. package/dist/Tabs/TabsIndicator.cjs.map +1 -1
  691. package/dist/Tabs/TabsIndicator.js.map +1 -1
  692. package/dist/Tabs/TabsList.cjs +1 -1
  693. package/dist/Tabs/TabsList.cjs.map +1 -1
  694. package/dist/Tabs/TabsList.js +1 -1
  695. package/dist/Tabs/TabsList.js.map +1 -1
  696. package/dist/Tabs/TabsRoot.cjs.map +1 -1
  697. package/dist/Tabs/TabsRoot.js.map +1 -1
  698. package/dist/Tabs/TabsTrigger.cjs.map +1 -1
  699. package/dist/Tabs/TabsTrigger.js.map +1 -1
  700. package/dist/TagsInput/TagsInputClear.cjs +1 -1
  701. package/dist/TagsInput/TagsInputClear.cjs.map +1 -1
  702. package/dist/TagsInput/TagsInputClear.js +1 -1
  703. package/dist/TagsInput/TagsInputClear.js.map +1 -1
  704. package/dist/TagsInput/TagsInputInput.cjs +2 -1
  705. package/dist/TagsInput/TagsInputInput.cjs.map +1 -1
  706. package/dist/TagsInput/TagsInputInput.js +2 -1
  707. package/dist/TagsInput/TagsInputInput.js.map +1 -1
  708. package/dist/TagsInput/TagsInputItem.cjs.map +1 -1
  709. package/dist/TagsInput/TagsInputItem.js.map +1 -1
  710. package/dist/TagsInput/TagsInputItemDelete.cjs +1 -1
  711. package/dist/TagsInput/TagsInputItemDelete.cjs.map +1 -1
  712. package/dist/TagsInput/TagsInputItemDelete.js +1 -1
  713. package/dist/TagsInput/TagsInputItemDelete.js.map +1 -1
  714. package/dist/TagsInput/TagsInputItemText.cjs +1 -1
  715. package/dist/TagsInput/TagsInputItemText.cjs.map +1 -1
  716. package/dist/TagsInput/TagsInputItemText.js +1 -1
  717. package/dist/TagsInput/TagsInputItemText.js.map +1 -1
  718. package/dist/TagsInput/TagsInputRoot.cjs +1 -1
  719. package/dist/TagsInput/TagsInputRoot.cjs.map +1 -1
  720. package/dist/TagsInput/TagsInputRoot.js +1 -1
  721. package/dist/TagsInput/TagsInputRoot.js.map +1 -1
  722. package/dist/TimeField/TimeFieldInput.cjs +1 -0
  723. package/dist/TimeField/TimeFieldInput.cjs.map +1 -1
  724. package/dist/TimeField/TimeFieldInput.js +1 -0
  725. package/dist/TimeField/TimeFieldInput.js.map +1 -1
  726. package/dist/TimeField/TimeFieldRoot.cjs +12 -3
  727. package/dist/TimeField/TimeFieldRoot.cjs.map +1 -1
  728. package/dist/TimeField/TimeFieldRoot.js +12 -3
  729. package/dist/TimeField/TimeFieldRoot.js.map +1 -1
  730. package/dist/Toast/ToastAnnounce.cjs +1 -1
  731. package/dist/Toast/ToastAnnounce.cjs.map +1 -1
  732. package/dist/Toast/ToastAnnounce.js +1 -1
  733. package/dist/Toast/ToastAnnounce.js.map +1 -1
  734. package/dist/Toast/ToastProvider.cjs.map +1 -1
  735. package/dist/Toast/ToastProvider.js.map +1 -1
  736. package/dist/Toast/ToastRoot.cjs +28 -20
  737. package/dist/Toast/ToastRoot.cjs.map +1 -1
  738. package/dist/Toast/ToastRoot.js +28 -20
  739. package/dist/Toast/ToastRoot.js.map +1 -1
  740. package/dist/Toast/ToastRootImpl.cjs +2 -2
  741. package/dist/Toast/ToastRootImpl.cjs.map +1 -1
  742. package/dist/Toast/ToastRootImpl.js +2 -2
  743. package/dist/Toast/ToastRootImpl.js.map +1 -1
  744. package/dist/Toast/ToastViewport.cjs +2 -2
  745. package/dist/Toast/ToastViewport.cjs.map +1 -1
  746. package/dist/Toast/ToastViewport.js +2 -2
  747. package/dist/Toast/ToastViewport.js.map +1 -1
  748. package/dist/Toggle/Toggle.cjs.map +1 -1
  749. package/dist/Toggle/Toggle.js.map +1 -1
  750. package/dist/ToggleGroup/ToggleGroupItem.cjs.map +1 -1
  751. package/dist/ToggleGroup/ToggleGroupItem.js.map +1 -1
  752. package/dist/ToggleGroup/ToggleGroupRoot.cjs.map +1 -1
  753. package/dist/ToggleGroup/ToggleGroupRoot.js.map +1 -1
  754. package/dist/Toolbar/ToolbarSeparator.cjs +1 -1
  755. package/dist/Toolbar/ToolbarSeparator.js +1 -1
  756. package/dist/Toolbar/ToolbarToggleGroup.cjs +1 -1
  757. package/dist/Toolbar/ToolbarToggleGroup.cjs.map +1 -1
  758. package/dist/Toolbar/ToolbarToggleGroup.js +1 -1
  759. package/dist/Toolbar/ToolbarToggleGroup.js.map +1 -1
  760. package/dist/Toolbar/ToolbarToggleItem.cjs.map +1 -1
  761. package/dist/Toolbar/ToolbarToggleItem.js.map +1 -1
  762. package/dist/Tooltip/TooltipContent.cjs +1 -1
  763. package/dist/Tooltip/TooltipContent.cjs.map +1 -1
  764. package/dist/Tooltip/TooltipContent.js +1 -1
  765. package/dist/Tooltip/TooltipContent.js.map +1 -1
  766. package/dist/Tooltip/TooltipContentHoverable.cjs.map +1 -1
  767. package/dist/Tooltip/TooltipContentHoverable.js.map +1 -1
  768. package/dist/Tooltip/TooltipContentImpl.cjs +3 -3
  769. package/dist/Tooltip/TooltipContentImpl.cjs.map +1 -1
  770. package/dist/Tooltip/TooltipContentImpl.js +3 -3
  771. package/dist/Tooltip/TooltipContentImpl.js.map +1 -1
  772. package/dist/Tooltip/TooltipRoot.cjs.map +1 -1
  773. package/dist/Tooltip/TooltipRoot.js.map +1 -1
  774. package/dist/Tooltip/TooltipTrigger.cjs +4 -1
  775. package/dist/Tooltip/TooltipTrigger.cjs.map +1 -1
  776. package/dist/Tooltip/TooltipTrigger.js +4 -1
  777. package/dist/Tooltip/TooltipTrigger.js.map +1 -1
  778. package/dist/Tree/TreeItem.cjs +4 -1
  779. package/dist/Tree/TreeItem.cjs.map +1 -1
  780. package/dist/Tree/TreeItem.js +4 -1
  781. package/dist/Tree/TreeItem.js.map +1 -1
  782. package/dist/Tree/TreeRoot.cjs +28 -2
  783. package/dist/Tree/TreeRoot.cjs.map +1 -1
  784. package/dist/Tree/TreeRoot.js +28 -2
  785. package/dist/Tree/TreeRoot.js.map +1 -1
  786. package/dist/Tree/TreeVirtualizer.cjs +2 -2
  787. package/dist/Tree/TreeVirtualizer.cjs.map +1 -1
  788. package/dist/Tree/TreeVirtualizer.js +2 -2
  789. package/dist/Tree/TreeVirtualizer.js.map +1 -1
  790. package/dist/Tree/utils.cjs.map +1 -1
  791. package/dist/Tree/utils.js.map +1 -1
  792. package/dist/Viewport/Viewport.cjs.map +1 -1
  793. package/dist/Viewport/Viewport.js.map +1 -1
  794. package/dist/VisuallyHidden/VisuallyHiddenInput.cjs.map +1 -1
  795. package/dist/VisuallyHidden/VisuallyHiddenInput.js.map +1 -1
  796. package/dist/VisuallyHidden/VisuallyHiddenInputBubble.cjs.map +1 -1
  797. package/dist/VisuallyHidden/VisuallyHiddenInputBubble.js.map +1 -1
  798. package/dist/composables/useWindowSplitterBehavior.cjs.map +1 -1
  799. package/dist/composables/useWindowSplitterBehavior.js.map +1 -1
  800. package/dist/composables/useWindowSplitterPanelGroupBehavior.cjs +3 -3
  801. package/dist/composables/useWindowSplitterPanelGroupBehavior.cjs.map +1 -1
  802. package/dist/composables/useWindowSplitterPanelGroupBehavior.js +3 -3
  803. package/dist/composables/useWindowSplitterPanelGroupBehavior.js.map +1 -1
  804. package/dist/date/calendar.cjs +1 -1
  805. package/dist/date/calendar.cjs.map +1 -1
  806. package/dist/date/calendar.js +1 -1
  807. package/dist/date/calendar.js.map +1 -1
  808. package/dist/date/comparators.cjs +6 -4
  809. package/dist/date/comparators.cjs.map +1 -1
  810. package/dist/date/comparators.js +6 -4
  811. package/dist/date/comparators.js.map +1 -1
  812. package/dist/date/parser.cjs +22 -7
  813. package/dist/date/parser.cjs.map +1 -1
  814. package/dist/date/parser.js +23 -8
  815. package/dist/date/parser.js.map +1 -1
  816. package/dist/date/useDateField.cjs +21 -6
  817. package/dist/date/useDateField.cjs.map +1 -1
  818. package/dist/date/useDateField.js +21 -6
  819. package/dist/date/useDateField.js.map +1 -1
  820. package/dist/date/utils.cjs +37 -8
  821. package/dist/date/utils.cjs.map +1 -1
  822. package/dist/date/utils.js +36 -9
  823. package/dist/date/utils.js.map +1 -1
  824. package/dist/date.d.ts +2 -2
  825. package/dist/index.cjs +347 -347
  826. package/dist/index.cjs.map +1 -1
  827. package/dist/index.d.ts +1558 -1552
  828. package/dist/index.js +161 -161
  829. package/dist/index.js.map +1 -1
  830. package/dist/shared/createContext.cjs.map +1 -1
  831. package/dist/shared/createContext.js.map +1 -1
  832. package/dist/shared/renderSlotFragments.cjs.map +1 -1
  833. package/dist/shared/renderSlotFragments.js.map +1 -1
  834. package/dist/shared/useArrowNavigation.cjs.map +1 -1
  835. package/dist/shared/useArrowNavigation.js.map +1 -1
  836. package/dist/shared/useBodyScrollLock.cjs +3 -3
  837. package/dist/shared/useBodyScrollLock.cjs.map +1 -1
  838. package/dist/shared/useBodyScrollLock.js +3 -3
  839. package/dist/shared/useBodyScrollLock.js.map +1 -1
  840. package/dist/shared/useDateFormatter.cjs +12 -10
  841. package/dist/shared/useDateFormatter.cjs.map +1 -1
  842. package/dist/shared/useDateFormatter.js +12 -10
  843. package/dist/shared/useDateFormatter.js.map +1 -1
  844. package/dist/shared/useDirection.cjs.map +1 -1
  845. package/dist/shared/useDirection.js.map +1 -1
  846. package/dist/shared/useFilter.cjs.map +1 -1
  847. package/dist/shared/useFilter.js.map +1 -1
  848. package/dist/shared/useFormControl.cjs.map +1 -1
  849. package/dist/shared/useFormControl.js.map +1 -1
  850. package/dist/shared/useForwardExpose.cjs.map +1 -1
  851. package/dist/shared/useForwardExpose.js.map +1 -1
  852. package/dist/shared/useForwardProps.cjs +4 -2
  853. package/dist/shared/useForwardProps.cjs.map +1 -1
  854. package/dist/shared/useForwardProps.js +5 -3
  855. package/dist/shared/useForwardProps.js.map +1 -1
  856. package/dist/shared/useForwardPropsEmits.cjs.map +1 -1
  857. package/dist/shared/useForwardPropsEmits.js.map +1 -1
  858. package/dist/shared/useGraceArea.cjs +1 -1
  859. package/dist/shared/useGraceArea.cjs.map +1 -1
  860. package/dist/shared/useGraceArea.js +1 -1
  861. package/dist/shared/useGraceArea.js.map +1 -1
  862. package/dist/shared/useHideOthers.cjs.map +1 -1
  863. package/dist/shared/useHideOthers.js.map +1 -1
  864. package/dist/shared/useId.cjs +2 -2
  865. package/dist/shared/useId.cjs.map +1 -1
  866. package/dist/shared/useId.js +2 -2
  867. package/dist/shared/useId.js.map +1 -1
  868. package/dist/shared/useLocale.cjs.map +1 -1
  869. package/dist/shared/useLocale.js.map +1 -1
  870. package/dist/shared/useNonce.cjs.map +1 -1
  871. package/dist/shared/useNonce.js.map +1 -1
  872. package/dist/shared/useSelectionBehavior.cjs +2 -2
  873. package/dist/shared/useSelectionBehavior.cjs.map +1 -1
  874. package/dist/shared/useSelectionBehavior.js +2 -2
  875. package/dist/shared/useSelectionBehavior.js.map +1 -1
  876. package/dist/shared/useSingleOrMultipleValue.cjs +1 -1
  877. package/dist/shared/useSingleOrMultipleValue.cjs.map +1 -1
  878. package/dist/shared/useSingleOrMultipleValue.js +1 -1
  879. package/dist/shared/useSingleOrMultipleValue.js.map +1 -1
  880. package/dist/shared/useSize.cjs.map +1 -1
  881. package/dist/shared/useSize.js.map +1 -1
  882. package/dist/shared/useStateMachine.cjs.map +1 -1
  883. package/dist/shared/useStateMachine.js.map +1 -1
  884. package/dist/shared/withDefault.cjs.map +1 -1
  885. package/dist/shared/withDefault.js.map +1 -1
  886. package/dist/utils/calculate.cjs +1 -1
  887. package/dist/utils/calculate.cjs.map +1 -1
  888. package/dist/utils/calculate.js +1 -1
  889. package/dist/utils/calculate.js.map +1 -1
  890. package/dist/utils/dom.cjs.map +1 -1
  891. package/dist/utils/dom.js.map +1 -1
  892. package/dist/utils/registry.cjs +1 -1
  893. package/dist/utils/registry.cjs.map +1 -1
  894. package/dist/utils/registry.js +1 -1
  895. package/dist/utils/registry.js.map +1 -1
  896. package/dist/utils/resizePanel.cjs +1 -1
  897. package/dist/utils/resizePanel.cjs.map +1 -1
  898. package/dist/utils/resizePanel.js +1 -1
  899. package/dist/utils/resizePanel.js.map +1 -1
  900. package/dist/utils/style.cjs.map +1 -1
  901. package/dist/utils/style.js.map +1 -1
  902. package/package.json +7 -8
@@ -19,8 +19,6 @@ const [injectCalendarRootContext, provideCalendarRootContext] = createContext("C
19
19
  const _sfc_main = /* @__PURE__ */ defineComponent({
20
20
  __name: "CalendarRoot",
21
21
  props: {
22
- modelValue: {},
23
- multiple: { type: Boolean, default: false },
24
22
  defaultValue: { default: void 0 },
25
23
  defaultPlaceholder: {},
26
24
  placeholder: { default: void 0 },
@@ -42,6 +40,9 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
42
40
  dir: {},
43
41
  nextPage: {},
44
42
  prevPage: {},
43
+ modelValue: {},
44
+ multiple: { type: Boolean, default: false },
45
+ disableDaysOutsideCurrentView: { type: Boolean, default: false },
45
46
  asChild: { type: Boolean },
46
47
  as: { default: "div" }
47
48
  },
@@ -69,7 +70,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
69
70
  nextPage: propsNextPage,
70
71
  prevPage: propsPrevPage,
71
72
  dir: propDir,
72
- locale: propLocale
73
+ locale: propLocale,
74
+ disableDaysOutsideCurrentView
73
75
  } = toRefs(props);
74
76
  const { primitiveElement, currentElement: parentElement } = usePrimitiveElement();
75
77
  const locale = useLocale(propLocale);
@@ -201,7 +203,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
201
203
  prevPage,
202
204
  parentElement,
203
205
  onPlaceholderChange,
204
- onDateChange
206
+ onDateChange,
207
+ disableDaysOutsideCurrentView
205
208
  });
206
209
  return (_ctx, _cache) => {
207
210
  return openBlock(), createBlock(unref(Primitive), {
@@ -1 +1 @@
1
- {"version":3,"file":"CalendarRoot.js","sources":["../../src/Calendar/CalendarRoot.vue"],"sourcesContent":["<script lang=\"ts\">\nimport { type DateValue, isEqualDay, isSameDay } from '@internationalized/date'\n\nimport type { Ref } from 'vue'\nimport type { PrimitiveProps } from '@/Primitive'\nimport { type Formatter, createContext, useDirection, useLocale } from '@/shared'\n\nimport { useCalendar, useCalendarState } from './useCalendar'\nimport { getDefaultDate, handleCalendarInitialFocus } from '@/shared/date'\nimport type { Grid, Matcher, WeekDayFormat } from '@/date'\nimport type { Direction } from '@/shared/types'\n\ntype CalendarRootContext = {\n locale: Ref<string>\n modelValue: Ref<DateValue | DateValue[] | undefined>\n placeholder: Ref<DateValue>\n pagedNavigation: Ref<boolean>\n preventDeselect: Ref<boolean>\n grid: Ref< Grid<DateValue>[]>\n weekDays: Ref<string[]>\n weekStartsOn: Ref<0 | 1 | 2 | 3 | 4 | 5 | 6>\n weekdayFormat: Ref<WeekDayFormat>\n fixedWeeks: Ref<boolean>\n multiple: Ref<boolean>\n numberOfMonths: Ref<number>\n disabled: Ref<boolean>\n readonly: Ref<boolean>\n initialFocus: Ref<boolean>\n onDateChange: (date: DateValue) => void\n onPlaceholderChange: (date: DateValue) => void\n fullCalendarLabel: Ref<string>\n parentElement: Ref<HTMLElement | undefined>\n headingValue: Ref<string>\n isInvalid: Ref<boolean>\n isDateDisabled: Matcher\n isDateSelected: Matcher\n isDateUnavailable?: Matcher\n isOutsideVisibleView: (date: DateValue) => boolean\n prevPage: (prevPageFunc?: (date: DateValue) => DateValue) => void\n nextPage: (nextPageFunc?: (date: DateValue) => DateValue) => void\n isNextButtonDisabled: (nextPageFunc?: (date: DateValue) => DateValue) => boolean\n isPrevButtonDisabled: (prevPageFunc?: (date: DateValue) => DateValue) => boolean\n formatter: Formatter\n dir: Ref<Direction>\n}\n\ninterface BaseCalendarRootProps extends PrimitiveProps {\n /** The default value for the calendar */\n defaultValue?: DateValue\n /** The default placeholder date */\n defaultPlaceholder?: DateValue\n /** The placeholder date, which is used to determine what month to display when no date is selected. This updates as the user navigates the calendar and can be used to programmatically control the calendar view */\n placeholder?: DateValue\n /** This property causes the previous and next buttons to navigate by the number of months displayed at once, rather than one month */\n pagedNavigation?: boolean\n /** Whether or not to prevent the user from deselecting a date without selecting another date first */\n preventDeselect?: boolean\n /** The day of the week to start the calendar on */\n weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6\n /** The format to use for the weekday strings provided via the weekdays slot prop */\n weekdayFormat?: WeekDayFormat\n /** The accessible label for the calendar */\n calendarLabel?: string\n /** Whether or not to always display 6 weeks in the calendar */\n fixedWeeks?: boolean\n /** The maximum date that can be selected */\n maxValue?: DateValue\n /** The minimum date that can be selected */\n minValue?: DateValue\n /** The locale to use for formatting dates */\n locale?: string\n /** The number of months to display at once */\n numberOfMonths?: number\n /** Whether or not the calendar is disabled */\n disabled?: boolean\n /** Whether or not the calendar is readonly */\n readonly?: boolean\n /** If true, the calendar will focus the selected day, today, or the first day of the month depending on what is visible when the calendar is mounted */\n initialFocus?: boolean\n /** A function that returns whether or not a date is disabled */\n isDateDisabled?: Matcher\n /** A function that returns whether or not a date is unavailable */\n isDateUnavailable?: Matcher\n /** The reading direction of the calendar when applicable. <br> If omitted, inherits globally from `ConfigProvider` or assumes LTR (left-to-right) reading mode. */\n dir?: Direction\n /** A function that returns the next page of the calendar. It receives the current placeholder as an argument inside the component. */\n nextPage?: (placeholder: DateValue) => DateValue\n /** A function that returns the previous page of the calendar. It receives the current placeholder as an argument inside the component. */\n prevPage?: (placeholder: DateValue) => DateValue\n}\n\nexport interface MultipleCalendarRootProps extends BaseCalendarRootProps {\n /** The controlled checked state of the calendar. Can be bound as `v-model`. */\n modelValue?: DateValue[] | undefined\n /** Whether or not multiple dates can be selected */\n multiple: true\n}\n\nexport interface SingleCalendarRootProps extends BaseCalendarRootProps {\n /** The controlled checked state of the calendar. Can be bound as `v-model`. */\n modelValue?: DateValue | undefined\n /** Whether or not multiple dates can be selected */\n multiple?: false\n}\n\nexport type CalendarRootProps = MultipleCalendarRootProps | SingleCalendarRootProps\n\nexport type CalendarRootEmits = {\n /** Event handler called whenever the model value changes */\n 'update:modelValue': [date: DateValue | undefined]\n /** Event handler called whenever the placeholder value changes */\n 'update:placeholder': [date: DateValue]\n}\n\nexport const [injectCalendarRootContext, provideCalendarRootContext]\n = createContext<CalendarRootContext>('CalendarRoot')\n</script>\n\n<script setup lang=\"ts\">\nimport { onMounted, toRefs, watch } from 'vue'\nimport { Primitive, usePrimitiveElement } from '@/Primitive'\nimport { useVModel } from '@vueuse/core'\n\nconst props = withDefaults(defineProps<CalendarRootProps>(), {\n defaultValue: undefined,\n as: 'div',\n pagedNavigation: false,\n preventDeselect: false,\n weekStartsOn: 0,\n weekdayFormat: 'narrow',\n fixedWeeks: false,\n multiple: false,\n numberOfMonths: 1,\n disabled: false,\n readonly: false,\n initialFocus: false,\n placeholder: undefined,\n isDateDisabled: undefined,\n isDateUnavailable: undefined,\n})\nconst emits = defineEmits<CalendarRootEmits>()\ndefineSlots<{\n default: (props: {\n /** The current date of the placeholder */\n date: DateValue\n /** The grid of dates */\n grid: Grid<DateValue>[]\n /** The days of the week */\n weekDays: string[]\n /** The start of the week */\n weekStartsOn: 0 | 1 | 2 | 3 | 4 | 5 | 6\n /** The calendar locale */\n locale: string\n /** Whether or not to always display 6 weeks in the calendar */\n fixedWeeks: boolean\n /** The current date of the calendar */\n modelValue: DateValue | undefined\n }) => any\n}>()\n\nconst {\n disabled,\n readonly,\n initialFocus,\n pagedNavigation,\n weekStartsOn,\n weekdayFormat,\n fixedWeeks,\n multiple,\n minValue,\n maxValue,\n numberOfMonths,\n preventDeselect,\n isDateDisabled: propsIsDateDisabled,\n isDateUnavailable: propsIsDateUnavailable,\n calendarLabel,\n defaultValue,\n nextPage: propsNextPage,\n prevPage: propsPrevPage,\n dir: propDir,\n locale: propLocale,\n} = toRefs(props)\n\nconst { primitiveElement, currentElement: parentElement }\n = usePrimitiveElement()\nconst locale = useLocale(propLocale)\nconst dir = useDirection(propDir)\n\nconst modelValue = useVModel(props, 'modelValue', emits, {\n defaultValue: defaultValue.value,\n passive: (props.modelValue === undefined) as false,\n}) as Ref<DateValue | DateValue[] | undefined>\n\nconst defaultDate = getDefaultDate({\n defaultPlaceholder: props.placeholder,\n defaultValue: modelValue.value,\n locale: props.locale,\n})\n\nconst placeholder = useVModel(props, 'placeholder', emits, {\n defaultValue: props.defaultPlaceholder ?? defaultDate.copy(),\n passive: (props.placeholder === undefined) as false,\n}) as Ref<DateValue>\n\nfunction onPlaceholderChange(value: DateValue) {\n placeholder.value = value.copy()\n}\n\nconst {\n fullCalendarLabel,\n headingValue,\n isDateDisabled,\n isDateUnavailable,\n isNextButtonDisabled,\n isPrevButtonDisabled,\n weekdays,\n isOutsideVisibleView,\n nextPage,\n prevPage,\n formatter,\n grid,\n} = useCalendar({\n locale,\n placeholder,\n weekStartsOn,\n fixedWeeks,\n numberOfMonths,\n minValue,\n maxValue,\n disabled,\n weekdayFormat,\n pagedNavigation,\n isDateDisabled: propsIsDateDisabled.value,\n isDateUnavailable: propsIsDateUnavailable.value,\n calendarLabel,\n nextPage: propsNextPage,\n prevPage: propsPrevPage,\n})\n\nconst {\n isInvalid,\n isDateSelected,\n} = useCalendarState({\n date: modelValue,\n isDateDisabled,\n isDateUnavailable,\n})\n\nwatch(modelValue, (_modelValue) => {\n if (Array.isArray(_modelValue) && _modelValue.length) {\n const lastValue = _modelValue[_modelValue.length - 1]\n if (lastValue && !isEqualDay(placeholder.value, lastValue))\n onPlaceholderChange(lastValue)\n }\n else if (!Array.isArray(_modelValue) && _modelValue && !isEqualDay(placeholder.value, _modelValue)) {\n onPlaceholderChange(_modelValue)\n }\n})\n\nfunction onDateChange(value: DateValue) {\n if (!multiple.value) {\n if (!modelValue.value) {\n modelValue.value = value.copy()\n return\n }\n\n if (!preventDeselect.value && isEqualDay(modelValue.value as DateValue, value)) {\n placeholder.value = value.copy()\n modelValue.value = undefined\n }\n else { modelValue.value = value.copy() }\n }\n else if (!modelValue.value) {\n modelValue.value = [value.copy()]\n }\n else if (Array.isArray(modelValue.value)) {\n const index = modelValue.value.findIndex(date => isSameDay(date, value))\n if (index === -1) {\n modelValue.value = [...modelValue.value, value]\n }\n else if (!preventDeselect.value) {\n const next = modelValue.value.filter(date => !isSameDay(date, value))\n if (!next.length) {\n placeholder.value = value.copy()\n modelValue.value = undefined\n return\n }\n modelValue.value = next.map(date => date.copy())\n }\n }\n}\n\nonMounted(() => {\n if (initialFocus.value)\n handleCalendarInitialFocus(parentElement.value)\n})\n\nprovideCalendarRootContext({\n isDateUnavailable,\n dir,\n isDateDisabled,\n locale,\n formatter,\n modelValue,\n placeholder,\n disabled,\n initialFocus,\n pagedNavigation,\n grid,\n weekDays: weekdays,\n weekStartsOn,\n weekdayFormat,\n fixedWeeks,\n multiple,\n numberOfMonths,\n readonly,\n preventDeselect,\n fullCalendarLabel,\n headingValue,\n isInvalid,\n isDateSelected,\n isNextButtonDisabled,\n isPrevButtonDisabled,\n isOutsideVisibleView,\n nextPage,\n prevPage,\n parentElement,\n onPlaceholderChange,\n onDateChange,\n})\n</script>\n\n<template>\n <Primitive\n ref=\"primitiveElement\"\n :as=\"as\"\n :as-child=\"asChild\"\n role=\"application\"\n :aria-label=\"fullCalendarLabel\"\n :data-readonly=\"readonly ? '' : undefined\"\n :data-disabled=\"disabled ? '' : undefined\"\n :data-invalid=\"isInvalid ? '' : undefined\"\n :dir=\"dir\"\n >\n <slot\n :date=\"placeholder\"\n :grid=\"grid\"\n :week-days=\"weekdays\"\n :week-starts-on=\"weekStartsOn\"\n :locale=\"locale\"\n :fixed-weeks=\"fixedWeeks\"\n :model-value=\"modelValue\"\n />\n <div\n style=\"border: 0px; clip: rect(0px, 0px, 0px, 0px); clip-path: inset(50%); height: 1px; margin: -1px; overflow: hidden; padding: 0px; position: absolute; white-space: nowrap; width: 1px;\"\n >\n <div\n role=\"heading\"\n aria-level=\"2\"\n >\n {{ fullCalendarLabel }}\n </div>\n </div>\n </Primitive>\n</template>\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CalendarRoot.js","sources":["../../src/Calendar/CalendarRoot.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { DateValue } from '@internationalized/date'\n\nimport type { Ref } from 'vue'\nimport type { Grid, Matcher, WeekDayFormat } from '@/date'\nimport type { PrimitiveProps } from '@/Primitive'\n\nimport type { Formatter } from '@/shared'\nimport type { Direction } from '@/shared/types'\nimport { isEqualDay, isSameDay } from '@internationalized/date'\nimport { createContext, useDirection, useLocale } from '@/shared'\nimport { getDefaultDate, handleCalendarInitialFocus } from '@/shared/date'\nimport { useCalendar, useCalendarState } from './useCalendar'\n\ntype CalendarRootContext = {\n locale: Ref<string>\n modelValue: Ref<DateValue | DateValue[] | undefined>\n placeholder: Ref<DateValue>\n pagedNavigation: Ref<boolean>\n preventDeselect: Ref<boolean>\n grid: Ref<Grid<DateValue>[]>\n weekDays: Ref<string[]>\n weekStartsOn: Ref<0 | 1 | 2 | 3 | 4 | 5 | 6>\n weekdayFormat: Ref<WeekDayFormat>\n fixedWeeks: Ref<boolean>\n multiple: Ref<boolean>\n numberOfMonths: Ref<number>\n disabled: Ref<boolean>\n readonly: Ref<boolean>\n initialFocus: Ref<boolean>\n onDateChange: (date: DateValue) => void\n onPlaceholderChange: (date: DateValue) => void\n fullCalendarLabel: Ref<string>\n parentElement: Ref<HTMLElement | undefined>\n headingValue: Ref<string>\n isInvalid: Ref<boolean>\n isDateDisabled: Matcher\n isDateSelected: Matcher\n isDateUnavailable?: Matcher\n isOutsideVisibleView: (date: DateValue) => boolean\n prevPage: (prevPageFunc?: (date: DateValue) => DateValue) => void\n nextPage: (nextPageFunc?: (date: DateValue) => DateValue) => void\n isNextButtonDisabled: (nextPageFunc?: (date: DateValue) => DateValue) => boolean\n isPrevButtonDisabled: (prevPageFunc?: (date: DateValue) => DateValue) => boolean\n formatter: Formatter\n dir: Ref<Direction>\n disableDaysOutsideCurrentView: Ref<boolean>\n}\n\nexport interface CalendarRootProps extends PrimitiveProps {\n /** The default value for the calendar */\n defaultValue?: DateValue\n /** The default placeholder date */\n defaultPlaceholder?: DateValue\n /** The placeholder date, which is used to determine what month to display when no date is selected */\n placeholder?: DateValue\n /** This property causes the previous and next buttons to navigate by the number of months displayed at once, rather than one month */\n pagedNavigation?: boolean\n /** Whether or not to prevent the user from deselecting a date without selecting another date first */\n preventDeselect?: boolean\n /** The day of the week to start the calendar on */\n weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6\n /** The format to use for the weekday strings provided via the weekdays slot prop */\n weekdayFormat?: WeekDayFormat\n /** The accessible label for the calendar */\n calendarLabel?: string\n /** Whether or not to always display 6 weeks in the calendar */\n fixedWeeks?: boolean\n /** The maximum date that can be selected */\n maxValue?: DateValue\n /** The minimum date that can be selected */\n minValue?: DateValue\n /** The locale to use for formatting dates */\n locale?: string\n /** The number of months to display at once */\n numberOfMonths?: number\n /** Whether the calendar is disabled */\n disabled?: boolean\n /** Whether the calendar is readonly */\n readonly?: boolean\n /** If true, the calendar will focus the selected day, today, or the first day of the month depending on what is visible when the calendar is mounted */\n initialFocus?: boolean\n /** A function that returns whether or not a date is disabled */\n isDateDisabled?: Matcher\n /** A function that returns whether or not a date is unavailable */\n isDateUnavailable?: Matcher\n /** The reading direction of the calendar when applicable. <br> If omitted, inherits globally from `ConfigProvider` or assumes LTR (left-to-right) reading mode. */\n dir?: Direction\n /** A function that returns the next page of the calendar. It receives the current placeholder as an argument inside the component. */\n nextPage?: (placeholder: DateValue) => DateValue\n /** A function that returns the previous page of the calendar. It receives the current placeholder as an argument inside the component. */\n prevPage?: (placeholder: DateValue) => DateValue\n /** The controlled checked state of the calendar */\n modelValue?: DateValue | DateValue[] | undefined\n /** Whether multiple dates can be selected */\n multiple?: boolean\n /** Whether or not to disable days outside the current view. */\n disableDaysOutsideCurrentView?: boolean\n}\n\nexport type CalendarRootEmits = {\n /** Event handler called whenever the model value changes */\n 'update:modelValue': [date: DateValue | undefined]\n /** Event handler called whenever the placeholder value changes */\n 'update:placeholder': [date: DateValue]\n}\n\nexport const [injectCalendarRootContext, provideCalendarRootContext]\n = createContext<CalendarRootContext>('CalendarRoot')\n</script>\n\n<script setup lang=\"ts\">\nimport { useVModel } from '@vueuse/core'\nimport { onMounted, toRefs, watch } from 'vue'\nimport { Primitive, usePrimitiveElement } from '@/Primitive'\n\nconst props = withDefaults(defineProps<CalendarRootProps>(), {\n defaultValue: undefined,\n as: 'div',\n pagedNavigation: false,\n preventDeselect: false,\n weekStartsOn: 0,\n weekdayFormat: 'narrow',\n fixedWeeks: false,\n multiple: false,\n numberOfMonths: 1,\n disabled: false,\n readonly: false,\n initialFocus: false,\n placeholder: undefined,\n isDateDisabled: undefined,\n isDateUnavailable: undefined,\n disableDaysOutsideCurrentView: false,\n})\nconst emits = defineEmits<CalendarRootEmits>()\ndefineSlots<{\n default?: (props: {\n /** The current date of the placeholder */\n date: DateValue\n /** The grid of dates */\n grid: Grid<DateValue>[]\n /** The days of the week */\n weekDays: string[]\n /** The start of the week */\n weekStartsOn: 0 | 1 | 2 | 3 | 4 | 5 | 6\n /** The calendar locale */\n locale: string\n /** Whether or not to always display 6 weeks in the calendar */\n fixedWeeks: boolean\n /** The current date of the calendar */\n modelValue: DateValue | DateValue[] | undefined\n }) => any\n}>()\n\nconst {\n disabled,\n readonly,\n initialFocus,\n pagedNavigation,\n weekStartsOn,\n weekdayFormat,\n fixedWeeks,\n multiple,\n minValue,\n maxValue,\n numberOfMonths,\n preventDeselect,\n isDateDisabled: propsIsDateDisabled,\n isDateUnavailable: propsIsDateUnavailable,\n calendarLabel,\n defaultValue,\n nextPage: propsNextPage,\n prevPage: propsPrevPage,\n dir: propDir,\n locale: propLocale,\n disableDaysOutsideCurrentView,\n} = toRefs(props)\n\nconst { primitiveElement, currentElement: parentElement }\n = usePrimitiveElement()\nconst locale = useLocale(propLocale)\nconst dir = useDirection(propDir)\n\nconst modelValue = useVModel(props, 'modelValue', emits, {\n defaultValue: defaultValue.value,\n passive: (props.modelValue === undefined) as false,\n}) as Ref<DateValue | DateValue[] | undefined>\n\nconst defaultDate = getDefaultDate({\n defaultPlaceholder: props.placeholder,\n defaultValue: modelValue.value,\n locale: props.locale,\n})\n\nconst placeholder = useVModel(props, 'placeholder', emits, {\n defaultValue: props.defaultPlaceholder ?? defaultDate.copy(),\n passive: (props.placeholder === undefined) as false,\n}) as Ref<DateValue>\n\nfunction onPlaceholderChange(value: DateValue) {\n placeholder.value = value.copy()\n}\n\nconst {\n fullCalendarLabel,\n headingValue,\n isDateDisabled,\n isDateUnavailable,\n isNextButtonDisabled,\n isPrevButtonDisabled,\n weekdays,\n isOutsideVisibleView,\n nextPage,\n prevPage,\n formatter,\n grid,\n} = useCalendar({\n locale,\n placeholder,\n weekStartsOn,\n fixedWeeks,\n numberOfMonths,\n minValue,\n maxValue,\n disabled,\n weekdayFormat,\n pagedNavigation,\n isDateDisabled: propsIsDateDisabled.value,\n isDateUnavailable: propsIsDateUnavailable.value,\n calendarLabel,\n nextPage: propsNextPage,\n prevPage: propsPrevPage,\n})\n\nconst {\n isInvalid,\n isDateSelected,\n} = useCalendarState({\n date: modelValue,\n isDateDisabled,\n isDateUnavailable,\n})\n\nwatch(modelValue, (_modelValue) => {\n if (Array.isArray(_modelValue) && _modelValue.length) {\n const lastValue = _modelValue[_modelValue.length - 1]\n if (lastValue && !isEqualDay(placeholder.value, lastValue))\n onPlaceholderChange(lastValue)\n }\n else if (!Array.isArray(_modelValue) && _modelValue && !isEqualDay(placeholder.value, _modelValue)) {\n onPlaceholderChange(_modelValue)\n }\n})\n\nfunction onDateChange(value: DateValue) {\n if (!multiple.value) {\n if (!modelValue.value) {\n modelValue.value = value.copy()\n return\n }\n\n if (!preventDeselect.value && isEqualDay(modelValue.value as DateValue, value)) {\n placeholder.value = value.copy()\n modelValue.value = undefined\n }\n else { modelValue.value = value.copy() }\n }\n else if (!modelValue.value) {\n modelValue.value = [value.copy()]\n }\n else if (Array.isArray(modelValue.value)) {\n const index = modelValue.value.findIndex(date => isSameDay(date, value))\n if (index === -1) {\n modelValue.value = [...modelValue.value, value]\n }\n else if (!preventDeselect.value) {\n const next = modelValue.value.filter(date => !isSameDay(date, value))\n if (!next.length) {\n placeholder.value = value.copy()\n modelValue.value = undefined\n return\n }\n modelValue.value = next.map(date => date.copy())\n }\n }\n}\n\nonMounted(() => {\n if (initialFocus.value)\n handleCalendarInitialFocus(parentElement.value)\n})\n\nprovideCalendarRootContext({\n isDateUnavailable,\n dir,\n isDateDisabled,\n locale,\n formatter,\n modelValue,\n placeholder,\n disabled,\n initialFocus,\n pagedNavigation,\n grid,\n weekDays: weekdays,\n weekStartsOn,\n weekdayFormat,\n fixedWeeks,\n multiple,\n numberOfMonths,\n readonly,\n preventDeselect,\n fullCalendarLabel,\n headingValue,\n isInvalid,\n isDateSelected,\n isNextButtonDisabled,\n isPrevButtonDisabled,\n isOutsideVisibleView,\n nextPage,\n prevPage,\n parentElement,\n onPlaceholderChange,\n onDateChange,\n disableDaysOutsideCurrentView,\n})\n</script>\n\n<template>\n <Primitive\n ref=\"primitiveElement\"\n :as=\"as\"\n :as-child=\"asChild\"\n role=\"application\"\n :aria-label=\"fullCalendarLabel\"\n :data-readonly=\"readonly ? '' : undefined\"\n :data-disabled=\"disabled ? '' : undefined\"\n :data-invalid=\"isInvalid ? '' : undefined\"\n :dir=\"dir\"\n >\n <slot\n :date=\"placeholder\"\n :grid=\"grid\"\n :week-days=\"weekdays\"\n :week-starts-on=\"weekStartsOn\"\n :locale=\"locale\"\n :fixed-weeks=\"fixedWeeks\"\n :model-value=\"modelValue\"\n />\n <div\n style=\"border: 0px; clip: rect(0px, 0px, 0px, 0px); clip-path: inset(50%); height: 1px; margin: -1px; overflow: hidden; padding: 0px; position: absolute; white-space: nowrap; width: 1px;\"\n >\n <div\n role=\"heading\"\n aria-level=\"2\"\n >\n {{ fullCalendarLabel }}\n </div>\n </div>\n </Primitive>\n</template>\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"useCalendar.cjs","sources":["../../src/Calendar/useCalendar.ts"],"sourcesContent":["/*\n * Adapted from https://github.com/melt-ui/melt-ui/blob/develop/src/lib/builders/calendar/create.ts\n*/\n\nimport { type DateFields, type DateValue, isEqualMonth, isSameDay } from '@internationalized/date'\nimport { type Ref, computed, ref, watch } from 'vue'\nimport { type Grid, type Matcher, type WeekDayFormat, createMonths, getDaysInMonth, isAfter, isBefore, toDate } from '@/date'\nimport { useDateFormatter } from '@/shared'\nimport type { DateFormatterOptions } from '@/shared/useDateFormatter'\n\nexport type UseCalendarProps = {\n locale: Ref<string>\n placeholder: Ref<DateValue>\n weekStartsOn: Ref<0 | 1 | 2 | 3 | 4 | 5 | 6>\n fixedWeeks: Ref<boolean>\n numberOfMonths: Ref<number>\n minValue: Ref<DateValue | undefined>\n maxValue: Ref<DateValue | undefined>\n disabled: Ref<boolean>\n weekdayFormat: Ref<WeekDayFormat>\n pagedNavigation: Ref<boolean>\n isDateDisabled?: Matcher\n isDateUnavailable?: Matcher\n calendarLabel: Ref<string | undefined>\n nextPage: Ref<((placeholder: DateValue) => DateValue) | undefined>\n prevPage: Ref<((placeholder: DateValue) => DateValue) | undefined>\n}\n\nexport type UseCalendarStateProps = {\n isDateDisabled: Matcher\n isDateUnavailable: Matcher\n date: Ref<DateValue | DateValue[] | undefined>\n}\n\nexport function useCalendarState(props: UseCalendarStateProps) {\n function isDateSelected(dateObj: DateValue) {\n if (Array.isArray(props.date.value))\n return props.date.value.some(d => isSameDay(d, dateObj))\n\n else if (!props.date.value)\n return false\n\n else\n return isSameDay(props.date.value, dateObj)\n }\n\n const isInvalid = computed(\n () => {\n if (Array.isArray(props.date.value)) {\n if (!props.date.value.length)\n return false\n for (const dateObj of props.date.value) {\n if (props.isDateDisabled?.(dateObj))\n return true\n if (props.isDateUnavailable?.(dateObj))\n return true\n }\n }\n else {\n if (!props.date.value)\n return false\n if (props.isDateDisabled?.(props.date.value))\n return true\n if (props.isDateUnavailable?.(props.date.value))\n return true\n }\n return false\n },\n )\n\n return {\n isDateSelected,\n isInvalid,\n }\n}\n\nfunction handleNextDisabled(lastPeriodInView: DateValue, nextPageFunc: (date: DateValue) => DateValue): DateValue {\n const firstPeriodOfNextPage = nextPageFunc(lastPeriodInView)\n const diff = firstPeriodOfNextPage.compare(lastPeriodInView)\n const duration: DateFields = {}\n if (diff >= 7)\n duration.day = 1\n if (diff >= getDaysInMonth(lastPeriodInView))\n duration.month = 1\n return firstPeriodOfNextPage.set({ ...duration })\n}\nfunction handlePrevDisabled(firstPeriodInView: DateValue, prevPageFunc: (date: DateValue) => DateValue): DateValue {\n const lastPeriodOfPrevPage = prevPageFunc(firstPeriodInView)\n const diff = firstPeriodInView.compare(lastPeriodOfPrevPage)\n const duration: DateFields = {}\n if (diff >= 7)\n duration.day = 35\n if (diff >= getDaysInMonth(firstPeriodInView))\n duration.month = 13\n return lastPeriodOfPrevPage.set({ ...duration })\n}\nfunction handleNextPage(date: DateValue, nextPageFunc: (date: DateValue) => DateValue): DateValue {\n return nextPageFunc(date)\n}\n\nfunction handlePrevPage(date: DateValue, prevPageFunc: (date: DateValue) => DateValue): DateValue {\n return prevPageFunc(date)\n}\n\nexport function useCalendar(props: UseCalendarProps) {\n const formatter = useDateFormatter(props.locale.value)\n\n const headingFormatOptions = computed(() => {\n const options: DateFormatterOptions = {\n calendar: props.placeholder.value.calendar.identifier,\n }\n\n if (props.placeholder.value.calendar.identifier === 'gregory' && props.placeholder.value.era === 'BC')\n options.era = 'short'\n\n return options\n })\n\n const grid = ref<Grid<DateValue>[]>(createMonths({\n dateObj: props.placeholder.value,\n weekStartsOn: props.weekStartsOn.value,\n locale: props.locale.value,\n fixedWeeks: props.fixedWeeks.value,\n numberOfMonths: props.numberOfMonths.value,\n })) as Ref<Grid<DateValue>[]>\n\n const visibleView = computed(() => {\n return grid.value.map(month => month.value)\n })\n\n function isOutsideVisibleView(date: DateValue) {\n return !visibleView.value.some(month => isEqualMonth(date, month))\n }\n\n const isNextButtonDisabled = (nextPageFunc?: (date: DateValue) => DateValue) => {\n if (!props.maxValue.value || !grid.value.length)\n return false\n if (props.disabled.value)\n return true\n\n const lastPeriodInView = grid.value[grid.value.length - 1].value\n\n if (!nextPageFunc && !props.nextPage.value) {\n const firstPeriodOfNextPage = lastPeriodInView.add({ months: 1 }).set({ day: 1 })\n return isAfter(firstPeriodOfNextPage, props.maxValue.value)\n }\n\n const firstPeriodOfNextPage = handleNextDisabled(lastPeriodInView, nextPageFunc || props.nextPage.value!)\n return isAfter(firstPeriodOfNextPage, props.maxValue.value)\n }\n\n const isPrevButtonDisabled = (prevPageFunc?: (date: DateValue) => DateValue) => {\n if (!props.minValue.value || !grid.value.length)\n return false\n if (props.disabled.value)\n return true\n const firstPeriodInView = grid.value[0].value\n\n if (!prevPageFunc && !props.prevPage.value) {\n const lastPeriodOfPrevPage = firstPeriodInView.subtract({ months: 1 }).set({ day: 35 })\n return isBefore(lastPeriodOfPrevPage, props.minValue.value)\n }\n\n const lastPeriodOfPrevPage = handlePrevDisabled(firstPeriodInView, prevPageFunc || props.prevPage.value!)\n return isBefore(lastPeriodOfPrevPage, props.minValue.value)\n }\n\n function isDateDisabled(dateObj: DateValue) {\n if (props.isDateDisabled?.(dateObj) || props.disabled.value)\n return true\n if (props.maxValue.value && isAfter(dateObj, props.maxValue.value))\n return true\n if (props.minValue.value && isBefore(dateObj, props.minValue.value))\n return true\n return false\n }\n\n const isDateUnavailable = (date: DateValue) => {\n if (props.isDateUnavailable?.(date))\n return true\n return false\n }\n\n const weekdays = computed(() => {\n if (!grid.value.length)\n return []\n return grid.value[0].rows[0].map((date) => {\n return formatter.dayOfWeek(toDate(date), props.weekdayFormat.value)\n })\n })\n\n const nextPage = (nextPageFunc?: (date: DateValue) => DateValue) => {\n const firstDate = grid.value[0].value\n\n if (!nextPageFunc && !props.nextPage.value) {\n const newDate = firstDate.add({ months: props.pagedNavigation.value ? props.numberOfMonths.value : 1 })\n\n const newGrid = createMonths({\n dateObj: newDate,\n weekStartsOn: props.weekStartsOn.value,\n locale: props.locale.value,\n fixedWeeks: props.fixedWeeks.value,\n numberOfMonths: props.numberOfMonths.value,\n })\n\n grid.value = newGrid\n\n props.placeholder.value = newGrid[0].value.set({ day: 1 })\n return\n }\n\n const newDate = handleNextPage(firstDate, nextPageFunc || props.nextPage.value!)\n const newGrid = createMonths({\n dateObj: newDate,\n weekStartsOn: props.weekStartsOn.value,\n locale: props.locale.value,\n fixedWeeks: props.fixedWeeks.value,\n numberOfMonths: props.numberOfMonths.value,\n })\n\n grid.value = newGrid\n\n const duration: DateFields = {}\n\n // Do not adjust the placeholder if the nextPageFunc is defined (overwrite)\n if (!nextPageFunc) {\n const diff = newGrid[0].value.compare(firstDate)\n if (diff >= getDaysInMonth(firstDate))\n duration.day = 1\n\n if (diff >= 365)\n duration.month = 1\n }\n\n props.placeholder.value = newGrid[0].value.set({ ...duration })\n }\n\n const prevPage = (prevPageFunc?: (date: DateValue) => DateValue) => {\n const firstDate = grid.value[0].value\n\n if (!prevPageFunc && !props.prevPage.value) {\n const newDate = firstDate.subtract({ months: props.pagedNavigation.value ? props.numberOfMonths.value : 1 })\n\n const newGrid = createMonths({\n dateObj: newDate,\n weekStartsOn: props.weekStartsOn.value,\n locale: props.locale.value,\n fixedWeeks: props.fixedWeeks.value,\n numberOfMonths: props.numberOfMonths.value,\n })\n\n grid.value = newGrid\n\n props.placeholder.value = newGrid[0].value.set({ day: 1 })\n return\n }\n\n const newDate = handlePrevPage(firstDate, prevPageFunc || props.prevPage.value!)\n const newGrid = createMonths({\n dateObj: newDate,\n weekStartsOn: props.weekStartsOn.value,\n locale: props.locale.value,\n fixedWeeks: props.fixedWeeks.value,\n numberOfMonths: props.numberOfMonths.value,\n })\n\n grid.value = newGrid\n\n const duration: DateFields = {}\n\n // Do not adjust the placeholder if the prevPageFunc is defined (overwrite)\n if (!prevPageFunc) {\n const diff = firstDate.compare(newGrid[0].value)\n if (diff >= getDaysInMonth(firstDate))\n duration.day = 1\n\n if (diff >= 365)\n duration.month = 1\n }\n\n props.placeholder.value = newGrid[0].value.set({ ...duration })\n }\n\n watch(props.placeholder, (value) => {\n if (visibleView.value.some(month => isEqualMonth(month, value)))\n return\n grid.value = createMonths({\n dateObj: value,\n weekStartsOn: props.weekStartsOn.value,\n locale: props.locale.value,\n fixedWeeks: props.fixedWeeks.value,\n numberOfMonths: props.numberOfMonths.value,\n })\n })\n\n watch([props.locale, props.weekStartsOn, props.fixedWeeks, props.numberOfMonths], () => {\n grid.value = createMonths({\n dateObj: props.placeholder.value,\n weekStartsOn: props.weekStartsOn.value,\n locale: props.locale.value,\n fixedWeeks: props.fixedWeeks.value,\n numberOfMonths: props.numberOfMonths.value,\n })\n })\n\n const headingValue = computed(() => {\n if (!grid.value.length)\n return ''\n\n if (props.locale.value !== formatter.getLocale())\n formatter.setLocale(props.locale.value)\n\n if (grid.value.length === 1) {\n const month = grid.value[0].value\n return `${formatter.fullMonthAndYear(toDate(month), headingFormatOptions.value)}`\n }\n\n const startMonth = toDate(grid.value[0].value)\n const endMonth = toDate(grid.value[grid.value.length - 1].value)\n\n const startMonthName = formatter.fullMonth(startMonth, headingFormatOptions.value)\n const endMonthName = formatter.fullMonth(endMonth, headingFormatOptions.value)\n const startMonthYear = formatter.fullYear(startMonth, headingFormatOptions.value)\n const endMonthYear = formatter.fullYear(endMonth, headingFormatOptions.value)\n\n const content\n = startMonthYear === endMonthYear\n ? `${startMonthName} - ${endMonthName} ${endMonthYear}`\n : `${startMonthName} ${startMonthYear} - ${endMonthName} ${endMonthYear}`\n\n return content\n })\n\n const fullCalendarLabel = computed(() => `${props.calendarLabel.value ?? 'Event Date'}, ${headingValue.value}`)\n\n return {\n isDateDisabled,\n isDateUnavailable,\n isNextButtonDisabled,\n isPrevButtonDisabled,\n grid,\n weekdays,\n visibleView,\n isOutsideVisibleView,\n formatter,\n nextPage,\n prevPage,\n headingValue,\n fullCalendarLabel,\n }\n}\n"],"names":["isSameDay","computed","getDaysInMonth","useDateFormatter","ref","createMonths","date","isEqualMonth","firstPeriodOfNextPage","isAfter","lastPeriodOfPrevPage","isBefore","toDate","newDate","newGrid","watch"],"mappings":"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"}
1
+ {"version":3,"file":"useCalendar.cjs","sources":["../../src/Calendar/useCalendar.ts"],"sourcesContent":["/*\n * Adapted from https://github.com/melt-ui/melt-ui/blob/develop/src/lib/builders/calendar/create.ts\n*/\n\nimport type { DateFields, DateValue } from '@internationalized/date'\nimport type { Ref } from 'vue'\nimport type { Grid, Matcher, WeekDayFormat } from '@/date'\nimport type { DateFormatterOptions } from '@/shared/useDateFormatter'\nimport { isEqualMonth, isSameDay } from '@internationalized/date'\nimport { computed, ref, watch } from 'vue'\nimport { createMonths, getDaysInMonth, isAfter, isBefore, toDate } from '@/date'\nimport { useDateFormatter } from '@/shared'\n\nexport type UseCalendarProps = {\n locale: Ref<string>\n placeholder: Ref<DateValue>\n weekStartsOn: Ref<0 | 1 | 2 | 3 | 4 | 5 | 6>\n fixedWeeks: Ref<boolean>\n numberOfMonths: Ref<number>\n minValue: Ref<DateValue | undefined>\n maxValue: Ref<DateValue | undefined>\n disabled: Ref<boolean>\n weekdayFormat: Ref<WeekDayFormat>\n pagedNavigation: Ref<boolean>\n isDateDisabled?: Matcher\n isDateUnavailable?: Matcher\n calendarLabel: Ref<string | undefined>\n nextPage: Ref<((placeholder: DateValue) => DateValue) | undefined>\n prevPage: Ref<((placeholder: DateValue) => DateValue) | undefined>\n}\n\nexport type UseCalendarStateProps = {\n isDateDisabled: Matcher\n isDateUnavailable: Matcher\n date: Ref<DateValue | DateValue[] | undefined>\n}\n\nexport function useCalendarState(props: UseCalendarStateProps) {\n function isDateSelected(dateObj: DateValue) {\n if (Array.isArray(props.date.value))\n return props.date.value.some(d => isSameDay(d, dateObj))\n\n else if (!props.date.value)\n return false\n\n else\n return isSameDay(props.date.value, dateObj)\n }\n\n const isInvalid = computed(\n () => {\n if (Array.isArray(props.date.value)) {\n if (!props.date.value.length)\n return false\n for (const dateObj of props.date.value) {\n if (props.isDateDisabled?.(dateObj))\n return true\n if (props.isDateUnavailable?.(dateObj))\n return true\n }\n }\n else {\n if (!props.date.value)\n return false\n if (props.isDateDisabled?.(props.date.value))\n return true\n if (props.isDateUnavailable?.(props.date.value))\n return true\n }\n return false\n },\n )\n\n return {\n isDateSelected,\n isInvalid,\n }\n}\n\nfunction handleNextDisabled(lastPeriodInView: DateValue, nextPageFunc: (date: DateValue) => DateValue): DateValue {\n const firstPeriodOfNextPage = nextPageFunc(lastPeriodInView)\n const diff = firstPeriodOfNextPage.compare(lastPeriodInView)\n const duration: DateFields = {}\n if (diff >= 7)\n duration.day = 1\n if (diff >= getDaysInMonth(lastPeriodInView))\n duration.month = 1\n return firstPeriodOfNextPage.set({ ...duration })\n}\nfunction handlePrevDisabled(firstPeriodInView: DateValue, prevPageFunc: (date: DateValue) => DateValue): DateValue {\n const lastPeriodOfPrevPage = prevPageFunc(firstPeriodInView)\n const diff = firstPeriodInView.compare(lastPeriodOfPrevPage)\n const duration: DateFields = {}\n if (diff >= 7)\n duration.day = 35\n if (diff >= getDaysInMonth(firstPeriodInView))\n duration.month = 13\n return lastPeriodOfPrevPage.set({ ...duration })\n}\nfunction handleNextPage(date: DateValue, nextPageFunc: (date: DateValue) => DateValue): DateValue {\n return nextPageFunc(date)\n}\n\nfunction handlePrevPage(date: DateValue, prevPageFunc: (date: DateValue) => DateValue): DateValue {\n return prevPageFunc(date)\n}\n\nexport function useCalendar(props: UseCalendarProps) {\n const formatter = useDateFormatter(props.locale.value)\n\n const headingFormatOptions = computed(() => {\n const options: DateFormatterOptions = {\n calendar: props.placeholder.value.calendar.identifier,\n }\n\n if (props.placeholder.value.calendar.identifier === 'gregory' && props.placeholder.value.era === 'BC')\n options.era = 'short'\n\n return options\n })\n\n const grid = ref<Grid<DateValue>[]>(createMonths({\n dateObj: props.placeholder.value,\n weekStartsOn: props.weekStartsOn.value,\n locale: props.locale.value,\n fixedWeeks: props.fixedWeeks.value,\n numberOfMonths: props.numberOfMonths.value,\n })) as Ref<Grid<DateValue>[]>\n\n const visibleView = computed(() => {\n return grid.value.map(month => month.value)\n })\n\n function isOutsideVisibleView(date: DateValue) {\n return !visibleView.value.some(month => isEqualMonth(date, month))\n }\n\n const isNextButtonDisabled = (nextPageFunc?: (date: DateValue) => DateValue) => {\n if (!props.maxValue.value || !grid.value.length)\n return false\n if (props.disabled.value)\n return true\n\n const lastPeriodInView = grid.value[grid.value.length - 1].value\n\n if (!nextPageFunc && !props.nextPage.value) {\n const firstPeriodOfNextPage = lastPeriodInView.add({ months: 1 }).set({ day: 1 })\n return isAfter(firstPeriodOfNextPage, props.maxValue.value)\n }\n\n const firstPeriodOfNextPage = handleNextDisabled(lastPeriodInView, nextPageFunc || props.nextPage.value!)\n return isAfter(firstPeriodOfNextPage, props.maxValue.value)\n }\n\n const isPrevButtonDisabled = (prevPageFunc?: (date: DateValue) => DateValue) => {\n if (!props.minValue.value || !grid.value.length)\n return false\n if (props.disabled.value)\n return true\n const firstPeriodInView = grid.value[0].value\n\n if (!prevPageFunc && !props.prevPage.value) {\n const lastPeriodOfPrevPage = firstPeriodInView.subtract({ months: 1 }).set({ day: 35 })\n return isBefore(lastPeriodOfPrevPage, props.minValue.value)\n }\n\n const lastPeriodOfPrevPage = handlePrevDisabled(firstPeriodInView, prevPageFunc || props.prevPage.value!)\n return isBefore(lastPeriodOfPrevPage, props.minValue.value)\n }\n\n function isDateDisabled(dateObj: DateValue) {\n if (props.isDateDisabled?.(dateObj) || props.disabled.value)\n return true\n if (props.maxValue.value && isAfter(dateObj, props.maxValue.value))\n return true\n if (props.minValue.value && isBefore(dateObj, props.minValue.value))\n return true\n return false\n }\n\n const isDateUnavailable = (date: DateValue) => {\n if (props.isDateUnavailable?.(date))\n return true\n return false\n }\n\n const weekdays = computed(() => {\n if (!grid.value.length)\n return []\n return grid.value[0].rows[0].map((date) => {\n return formatter.dayOfWeek(toDate(date), props.weekdayFormat.value)\n })\n })\n\n const nextPage = (nextPageFunc?: (date: DateValue) => DateValue) => {\n const firstDate = grid.value[0].value\n\n if (!nextPageFunc && !props.nextPage.value) {\n const newDate = firstDate.add({ months: props.pagedNavigation.value ? props.numberOfMonths.value : 1 })\n\n const newGrid = createMonths({\n dateObj: newDate,\n weekStartsOn: props.weekStartsOn.value,\n locale: props.locale.value,\n fixedWeeks: props.fixedWeeks.value,\n numberOfMonths: props.numberOfMonths.value,\n })\n\n grid.value = newGrid\n\n props.placeholder.value = newGrid[0].value.set({ day: 1 })\n return\n }\n\n const newDate = handleNextPage(firstDate, nextPageFunc || props.nextPage.value!)\n const newGrid = createMonths({\n dateObj: newDate,\n weekStartsOn: props.weekStartsOn.value,\n locale: props.locale.value,\n fixedWeeks: props.fixedWeeks.value,\n numberOfMonths: props.numberOfMonths.value,\n })\n\n grid.value = newGrid\n\n const duration: DateFields = {}\n\n // Do not adjust the placeholder if the nextPageFunc is defined (overwrite)\n if (!nextPageFunc) {\n const diff = newGrid[0].value.compare(firstDate)\n if (diff >= getDaysInMonth(firstDate))\n duration.day = 1\n\n if (diff >= 365)\n duration.month = 1\n }\n\n props.placeholder.value = newGrid[0].value.set({ ...duration })\n }\n\n const prevPage = (prevPageFunc?: (date: DateValue) => DateValue) => {\n const firstDate = grid.value[0].value\n\n if (!prevPageFunc && !props.prevPage.value) {\n const newDate = firstDate.subtract({ months: props.pagedNavigation.value ? props.numberOfMonths.value : 1 })\n\n const newGrid = createMonths({\n dateObj: newDate,\n weekStartsOn: props.weekStartsOn.value,\n locale: props.locale.value,\n fixedWeeks: props.fixedWeeks.value,\n numberOfMonths: props.numberOfMonths.value,\n })\n\n grid.value = newGrid\n\n props.placeholder.value = newGrid[0].value.set({ day: 1 })\n return\n }\n\n const newDate = handlePrevPage(firstDate, prevPageFunc || props.prevPage.value!)\n const newGrid = createMonths({\n dateObj: newDate,\n weekStartsOn: props.weekStartsOn.value,\n locale: props.locale.value,\n fixedWeeks: props.fixedWeeks.value,\n numberOfMonths: props.numberOfMonths.value,\n })\n\n grid.value = newGrid\n\n const duration: DateFields = {}\n\n // Do not adjust the placeholder if the prevPageFunc is defined (overwrite)\n if (!prevPageFunc) {\n const diff = firstDate.compare(newGrid[0].value)\n if (diff >= getDaysInMonth(firstDate))\n duration.day = 1\n\n if (diff >= 365)\n duration.month = 1\n }\n\n props.placeholder.value = newGrid[0].value.set({ ...duration })\n }\n\n watch(props.placeholder, (value) => {\n if (visibleView.value.some(month => isEqualMonth(month, value)))\n return\n grid.value = createMonths({\n dateObj: value,\n weekStartsOn: props.weekStartsOn.value,\n locale: props.locale.value,\n fixedWeeks: props.fixedWeeks.value,\n numberOfMonths: props.numberOfMonths.value,\n })\n })\n\n watch([props.locale, props.weekStartsOn, props.fixedWeeks, props.numberOfMonths], () => {\n grid.value = createMonths({\n dateObj: props.placeholder.value,\n weekStartsOn: props.weekStartsOn.value,\n locale: props.locale.value,\n fixedWeeks: props.fixedWeeks.value,\n numberOfMonths: props.numberOfMonths.value,\n })\n })\n\n const headingValue = computed(() => {\n if (!grid.value.length)\n return ''\n\n if (props.locale.value !== formatter.getLocale())\n formatter.setLocale(props.locale.value)\n\n if (grid.value.length === 1) {\n const month = grid.value[0].value\n return `${formatter.fullMonthAndYear(toDate(month), headingFormatOptions.value)}`\n }\n\n const startMonth = toDate(grid.value[0].value)\n const endMonth = toDate(grid.value[grid.value.length - 1].value)\n\n const startMonthName = formatter.fullMonth(startMonth, headingFormatOptions.value)\n const endMonthName = formatter.fullMonth(endMonth, headingFormatOptions.value)\n const startMonthYear = formatter.fullYear(startMonth, headingFormatOptions.value)\n const endMonthYear = formatter.fullYear(endMonth, headingFormatOptions.value)\n\n const content\n = startMonthYear === endMonthYear\n ? `${startMonthName} - ${endMonthName} ${endMonthYear}`\n : `${startMonthName} ${startMonthYear} - ${endMonthName} ${endMonthYear}`\n\n return content\n })\n\n const fullCalendarLabel = computed(() => `${props.calendarLabel.value ?? 'Event Date'}, ${headingValue.value}`)\n\n return {\n isDateDisabled,\n isDateUnavailable,\n isNextButtonDisabled,\n isPrevButtonDisabled,\n grid,\n weekdays,\n visibleView,\n isOutsideVisibleView,\n formatter,\n nextPage,\n prevPage,\n headingValue,\n fullCalendarLabel,\n }\n}\n"],"names":["isSameDay","computed","getDaysInMonth","useDateFormatter","ref","createMonths","date","isEqualMonth","firstPeriodOfNextPage","isAfter","lastPeriodOfPrevPage","isBefore","toDate","newDate","newGrid","watch"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"useCalendar.js","sources":["../../src/Calendar/useCalendar.ts"],"sourcesContent":["/*\n * Adapted from https://github.com/melt-ui/melt-ui/blob/develop/src/lib/builders/calendar/create.ts\n*/\n\nimport { type DateFields, type DateValue, isEqualMonth, isSameDay } from '@internationalized/date'\nimport { type Ref, computed, ref, watch } from 'vue'\nimport { type Grid, type Matcher, type WeekDayFormat, createMonths, getDaysInMonth, isAfter, isBefore, toDate } from '@/date'\nimport { useDateFormatter } from '@/shared'\nimport type { DateFormatterOptions } from '@/shared/useDateFormatter'\n\nexport type UseCalendarProps = {\n locale: Ref<string>\n placeholder: Ref<DateValue>\n weekStartsOn: Ref<0 | 1 | 2 | 3 | 4 | 5 | 6>\n fixedWeeks: Ref<boolean>\n numberOfMonths: Ref<number>\n minValue: Ref<DateValue | undefined>\n maxValue: Ref<DateValue | undefined>\n disabled: Ref<boolean>\n weekdayFormat: Ref<WeekDayFormat>\n pagedNavigation: Ref<boolean>\n isDateDisabled?: Matcher\n isDateUnavailable?: Matcher\n calendarLabel: Ref<string | undefined>\n nextPage: Ref<((placeholder: DateValue) => DateValue) | undefined>\n prevPage: Ref<((placeholder: DateValue) => DateValue) | undefined>\n}\n\nexport type UseCalendarStateProps = {\n isDateDisabled: Matcher\n isDateUnavailable: Matcher\n date: Ref<DateValue | DateValue[] | undefined>\n}\n\nexport function useCalendarState(props: UseCalendarStateProps) {\n function isDateSelected(dateObj: DateValue) {\n if (Array.isArray(props.date.value))\n return props.date.value.some(d => isSameDay(d, dateObj))\n\n else if (!props.date.value)\n return false\n\n else\n return isSameDay(props.date.value, dateObj)\n }\n\n const isInvalid = computed(\n () => {\n if (Array.isArray(props.date.value)) {\n if (!props.date.value.length)\n return false\n for (const dateObj of props.date.value) {\n if (props.isDateDisabled?.(dateObj))\n return true\n if (props.isDateUnavailable?.(dateObj))\n return true\n }\n }\n else {\n if (!props.date.value)\n return false\n if (props.isDateDisabled?.(props.date.value))\n return true\n if (props.isDateUnavailable?.(props.date.value))\n return true\n }\n return false\n },\n )\n\n return {\n isDateSelected,\n isInvalid,\n }\n}\n\nfunction handleNextDisabled(lastPeriodInView: DateValue, nextPageFunc: (date: DateValue) => DateValue): DateValue {\n const firstPeriodOfNextPage = nextPageFunc(lastPeriodInView)\n const diff = firstPeriodOfNextPage.compare(lastPeriodInView)\n const duration: DateFields = {}\n if (diff >= 7)\n duration.day = 1\n if (diff >= getDaysInMonth(lastPeriodInView))\n duration.month = 1\n return firstPeriodOfNextPage.set({ ...duration })\n}\nfunction handlePrevDisabled(firstPeriodInView: DateValue, prevPageFunc: (date: DateValue) => DateValue): DateValue {\n const lastPeriodOfPrevPage = prevPageFunc(firstPeriodInView)\n const diff = firstPeriodInView.compare(lastPeriodOfPrevPage)\n const duration: DateFields = {}\n if (diff >= 7)\n duration.day = 35\n if (diff >= getDaysInMonth(firstPeriodInView))\n duration.month = 13\n return lastPeriodOfPrevPage.set({ ...duration })\n}\nfunction handleNextPage(date: DateValue, nextPageFunc: (date: DateValue) => DateValue): DateValue {\n return nextPageFunc(date)\n}\n\nfunction handlePrevPage(date: DateValue, prevPageFunc: (date: DateValue) => DateValue): DateValue {\n return prevPageFunc(date)\n}\n\nexport function useCalendar(props: UseCalendarProps) {\n const formatter = useDateFormatter(props.locale.value)\n\n const headingFormatOptions = computed(() => {\n const options: DateFormatterOptions = {\n calendar: props.placeholder.value.calendar.identifier,\n }\n\n if (props.placeholder.value.calendar.identifier === 'gregory' && props.placeholder.value.era === 'BC')\n options.era = 'short'\n\n return options\n })\n\n const grid = ref<Grid<DateValue>[]>(createMonths({\n dateObj: props.placeholder.value,\n weekStartsOn: props.weekStartsOn.value,\n locale: props.locale.value,\n fixedWeeks: props.fixedWeeks.value,\n numberOfMonths: props.numberOfMonths.value,\n })) as Ref<Grid<DateValue>[]>\n\n const visibleView = computed(() => {\n return grid.value.map(month => month.value)\n })\n\n function isOutsideVisibleView(date: DateValue) {\n return !visibleView.value.some(month => isEqualMonth(date, month))\n }\n\n const isNextButtonDisabled = (nextPageFunc?: (date: DateValue) => DateValue) => {\n if (!props.maxValue.value || !grid.value.length)\n return false\n if (props.disabled.value)\n return true\n\n const lastPeriodInView = grid.value[grid.value.length - 1].value\n\n if (!nextPageFunc && !props.nextPage.value) {\n const firstPeriodOfNextPage = lastPeriodInView.add({ months: 1 }).set({ day: 1 })\n return isAfter(firstPeriodOfNextPage, props.maxValue.value)\n }\n\n const firstPeriodOfNextPage = handleNextDisabled(lastPeriodInView, nextPageFunc || props.nextPage.value!)\n return isAfter(firstPeriodOfNextPage, props.maxValue.value)\n }\n\n const isPrevButtonDisabled = (prevPageFunc?: (date: DateValue) => DateValue) => {\n if (!props.minValue.value || !grid.value.length)\n return false\n if (props.disabled.value)\n return true\n const firstPeriodInView = grid.value[0].value\n\n if (!prevPageFunc && !props.prevPage.value) {\n const lastPeriodOfPrevPage = firstPeriodInView.subtract({ months: 1 }).set({ day: 35 })\n return isBefore(lastPeriodOfPrevPage, props.minValue.value)\n }\n\n const lastPeriodOfPrevPage = handlePrevDisabled(firstPeriodInView, prevPageFunc || props.prevPage.value!)\n return isBefore(lastPeriodOfPrevPage, props.minValue.value)\n }\n\n function isDateDisabled(dateObj: DateValue) {\n if (props.isDateDisabled?.(dateObj) || props.disabled.value)\n return true\n if (props.maxValue.value && isAfter(dateObj, props.maxValue.value))\n return true\n if (props.minValue.value && isBefore(dateObj, props.minValue.value))\n return true\n return false\n }\n\n const isDateUnavailable = (date: DateValue) => {\n if (props.isDateUnavailable?.(date))\n return true\n return false\n }\n\n const weekdays = computed(() => {\n if (!grid.value.length)\n return []\n return grid.value[0].rows[0].map((date) => {\n return formatter.dayOfWeek(toDate(date), props.weekdayFormat.value)\n })\n })\n\n const nextPage = (nextPageFunc?: (date: DateValue) => DateValue) => {\n const firstDate = grid.value[0].value\n\n if (!nextPageFunc && !props.nextPage.value) {\n const newDate = firstDate.add({ months: props.pagedNavigation.value ? props.numberOfMonths.value : 1 })\n\n const newGrid = createMonths({\n dateObj: newDate,\n weekStartsOn: props.weekStartsOn.value,\n locale: props.locale.value,\n fixedWeeks: props.fixedWeeks.value,\n numberOfMonths: props.numberOfMonths.value,\n })\n\n grid.value = newGrid\n\n props.placeholder.value = newGrid[0].value.set({ day: 1 })\n return\n }\n\n const newDate = handleNextPage(firstDate, nextPageFunc || props.nextPage.value!)\n const newGrid = createMonths({\n dateObj: newDate,\n weekStartsOn: props.weekStartsOn.value,\n locale: props.locale.value,\n fixedWeeks: props.fixedWeeks.value,\n numberOfMonths: props.numberOfMonths.value,\n })\n\n grid.value = newGrid\n\n const duration: DateFields = {}\n\n // Do not adjust the placeholder if the nextPageFunc is defined (overwrite)\n if (!nextPageFunc) {\n const diff = newGrid[0].value.compare(firstDate)\n if (diff >= getDaysInMonth(firstDate))\n duration.day = 1\n\n if (diff >= 365)\n duration.month = 1\n }\n\n props.placeholder.value = newGrid[0].value.set({ ...duration })\n }\n\n const prevPage = (prevPageFunc?: (date: DateValue) => DateValue) => {\n const firstDate = grid.value[0].value\n\n if (!prevPageFunc && !props.prevPage.value) {\n const newDate = firstDate.subtract({ months: props.pagedNavigation.value ? props.numberOfMonths.value : 1 })\n\n const newGrid = createMonths({\n dateObj: newDate,\n weekStartsOn: props.weekStartsOn.value,\n locale: props.locale.value,\n fixedWeeks: props.fixedWeeks.value,\n numberOfMonths: props.numberOfMonths.value,\n })\n\n grid.value = newGrid\n\n props.placeholder.value = newGrid[0].value.set({ day: 1 })\n return\n }\n\n const newDate = handlePrevPage(firstDate, prevPageFunc || props.prevPage.value!)\n const newGrid = createMonths({\n dateObj: newDate,\n weekStartsOn: props.weekStartsOn.value,\n locale: props.locale.value,\n fixedWeeks: props.fixedWeeks.value,\n numberOfMonths: props.numberOfMonths.value,\n })\n\n grid.value = newGrid\n\n const duration: DateFields = {}\n\n // Do not adjust the placeholder if the prevPageFunc is defined (overwrite)\n if (!prevPageFunc) {\n const diff = firstDate.compare(newGrid[0].value)\n if (diff >= getDaysInMonth(firstDate))\n duration.day = 1\n\n if (diff >= 365)\n duration.month = 1\n }\n\n props.placeholder.value = newGrid[0].value.set({ ...duration })\n }\n\n watch(props.placeholder, (value) => {\n if (visibleView.value.some(month => isEqualMonth(month, value)))\n return\n grid.value = createMonths({\n dateObj: value,\n weekStartsOn: props.weekStartsOn.value,\n locale: props.locale.value,\n fixedWeeks: props.fixedWeeks.value,\n numberOfMonths: props.numberOfMonths.value,\n })\n })\n\n watch([props.locale, props.weekStartsOn, props.fixedWeeks, props.numberOfMonths], () => {\n grid.value = createMonths({\n dateObj: props.placeholder.value,\n weekStartsOn: props.weekStartsOn.value,\n locale: props.locale.value,\n fixedWeeks: props.fixedWeeks.value,\n numberOfMonths: props.numberOfMonths.value,\n })\n })\n\n const headingValue = computed(() => {\n if (!grid.value.length)\n return ''\n\n if (props.locale.value !== formatter.getLocale())\n formatter.setLocale(props.locale.value)\n\n if (grid.value.length === 1) {\n const month = grid.value[0].value\n return `${formatter.fullMonthAndYear(toDate(month), headingFormatOptions.value)}`\n }\n\n const startMonth = toDate(grid.value[0].value)\n const endMonth = toDate(grid.value[grid.value.length - 1].value)\n\n const startMonthName = formatter.fullMonth(startMonth, headingFormatOptions.value)\n const endMonthName = formatter.fullMonth(endMonth, headingFormatOptions.value)\n const startMonthYear = formatter.fullYear(startMonth, headingFormatOptions.value)\n const endMonthYear = formatter.fullYear(endMonth, headingFormatOptions.value)\n\n const content\n = startMonthYear === endMonthYear\n ? `${startMonthName} - ${endMonthName} ${endMonthYear}`\n : `${startMonthName} ${startMonthYear} - ${endMonthName} ${endMonthYear}`\n\n return content\n })\n\n const fullCalendarLabel = computed(() => `${props.calendarLabel.value ?? 'Event Date'}, ${headingValue.value}`)\n\n return {\n isDateDisabled,\n isDateUnavailable,\n isNextButtonDisabled,\n isPrevButtonDisabled,\n grid,\n weekdays,\n visibleView,\n isOutsideVisibleView,\n formatter,\n nextPage,\n prevPage,\n headingValue,\n fullCalendarLabel,\n }\n}\n"],"names":["firstPeriodOfNextPage","lastPeriodOfPrevPage","newDate","newGrid"],"mappings":"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"}
1
+ {"version":3,"file":"useCalendar.js","sources":["../../src/Calendar/useCalendar.ts"],"sourcesContent":["/*\n * Adapted from https://github.com/melt-ui/melt-ui/blob/develop/src/lib/builders/calendar/create.ts\n*/\n\nimport type { DateFields, DateValue } from '@internationalized/date'\nimport type { Ref } from 'vue'\nimport type { Grid, Matcher, WeekDayFormat } from '@/date'\nimport type { DateFormatterOptions } from '@/shared/useDateFormatter'\nimport { isEqualMonth, isSameDay } from '@internationalized/date'\nimport { computed, ref, watch } from 'vue'\nimport { createMonths, getDaysInMonth, isAfter, isBefore, toDate } from '@/date'\nimport { useDateFormatter } from '@/shared'\n\nexport type UseCalendarProps = {\n locale: Ref<string>\n placeholder: Ref<DateValue>\n weekStartsOn: Ref<0 | 1 | 2 | 3 | 4 | 5 | 6>\n fixedWeeks: Ref<boolean>\n numberOfMonths: Ref<number>\n minValue: Ref<DateValue | undefined>\n maxValue: Ref<DateValue | undefined>\n disabled: Ref<boolean>\n weekdayFormat: Ref<WeekDayFormat>\n pagedNavigation: Ref<boolean>\n isDateDisabled?: Matcher\n isDateUnavailable?: Matcher\n calendarLabel: Ref<string | undefined>\n nextPage: Ref<((placeholder: DateValue) => DateValue) | undefined>\n prevPage: Ref<((placeholder: DateValue) => DateValue) | undefined>\n}\n\nexport type UseCalendarStateProps = {\n isDateDisabled: Matcher\n isDateUnavailable: Matcher\n date: Ref<DateValue | DateValue[] | undefined>\n}\n\nexport function useCalendarState(props: UseCalendarStateProps) {\n function isDateSelected(dateObj: DateValue) {\n if (Array.isArray(props.date.value))\n return props.date.value.some(d => isSameDay(d, dateObj))\n\n else if (!props.date.value)\n return false\n\n else\n return isSameDay(props.date.value, dateObj)\n }\n\n const isInvalid = computed(\n () => {\n if (Array.isArray(props.date.value)) {\n if (!props.date.value.length)\n return false\n for (const dateObj of props.date.value) {\n if (props.isDateDisabled?.(dateObj))\n return true\n if (props.isDateUnavailable?.(dateObj))\n return true\n }\n }\n else {\n if (!props.date.value)\n return false\n if (props.isDateDisabled?.(props.date.value))\n return true\n if (props.isDateUnavailable?.(props.date.value))\n return true\n }\n return false\n },\n )\n\n return {\n isDateSelected,\n isInvalid,\n }\n}\n\nfunction handleNextDisabled(lastPeriodInView: DateValue, nextPageFunc: (date: DateValue) => DateValue): DateValue {\n const firstPeriodOfNextPage = nextPageFunc(lastPeriodInView)\n const diff = firstPeriodOfNextPage.compare(lastPeriodInView)\n const duration: DateFields = {}\n if (diff >= 7)\n duration.day = 1\n if (diff >= getDaysInMonth(lastPeriodInView))\n duration.month = 1\n return firstPeriodOfNextPage.set({ ...duration })\n}\nfunction handlePrevDisabled(firstPeriodInView: DateValue, prevPageFunc: (date: DateValue) => DateValue): DateValue {\n const lastPeriodOfPrevPage = prevPageFunc(firstPeriodInView)\n const diff = firstPeriodInView.compare(lastPeriodOfPrevPage)\n const duration: DateFields = {}\n if (diff >= 7)\n duration.day = 35\n if (diff >= getDaysInMonth(firstPeriodInView))\n duration.month = 13\n return lastPeriodOfPrevPage.set({ ...duration })\n}\nfunction handleNextPage(date: DateValue, nextPageFunc: (date: DateValue) => DateValue): DateValue {\n return nextPageFunc(date)\n}\n\nfunction handlePrevPage(date: DateValue, prevPageFunc: (date: DateValue) => DateValue): DateValue {\n return prevPageFunc(date)\n}\n\nexport function useCalendar(props: UseCalendarProps) {\n const formatter = useDateFormatter(props.locale.value)\n\n const headingFormatOptions = computed(() => {\n const options: DateFormatterOptions = {\n calendar: props.placeholder.value.calendar.identifier,\n }\n\n if (props.placeholder.value.calendar.identifier === 'gregory' && props.placeholder.value.era === 'BC')\n options.era = 'short'\n\n return options\n })\n\n const grid = ref<Grid<DateValue>[]>(createMonths({\n dateObj: props.placeholder.value,\n weekStartsOn: props.weekStartsOn.value,\n locale: props.locale.value,\n fixedWeeks: props.fixedWeeks.value,\n numberOfMonths: props.numberOfMonths.value,\n })) as Ref<Grid<DateValue>[]>\n\n const visibleView = computed(() => {\n return grid.value.map(month => month.value)\n })\n\n function isOutsideVisibleView(date: DateValue) {\n return !visibleView.value.some(month => isEqualMonth(date, month))\n }\n\n const isNextButtonDisabled = (nextPageFunc?: (date: DateValue) => DateValue) => {\n if (!props.maxValue.value || !grid.value.length)\n return false\n if (props.disabled.value)\n return true\n\n const lastPeriodInView = grid.value[grid.value.length - 1].value\n\n if (!nextPageFunc && !props.nextPage.value) {\n const firstPeriodOfNextPage = lastPeriodInView.add({ months: 1 }).set({ day: 1 })\n return isAfter(firstPeriodOfNextPage, props.maxValue.value)\n }\n\n const firstPeriodOfNextPage = handleNextDisabled(lastPeriodInView, nextPageFunc || props.nextPage.value!)\n return isAfter(firstPeriodOfNextPage, props.maxValue.value)\n }\n\n const isPrevButtonDisabled = (prevPageFunc?: (date: DateValue) => DateValue) => {\n if (!props.minValue.value || !grid.value.length)\n return false\n if (props.disabled.value)\n return true\n const firstPeriodInView = grid.value[0].value\n\n if (!prevPageFunc && !props.prevPage.value) {\n const lastPeriodOfPrevPage = firstPeriodInView.subtract({ months: 1 }).set({ day: 35 })\n return isBefore(lastPeriodOfPrevPage, props.minValue.value)\n }\n\n const lastPeriodOfPrevPage = handlePrevDisabled(firstPeriodInView, prevPageFunc || props.prevPage.value!)\n return isBefore(lastPeriodOfPrevPage, props.minValue.value)\n }\n\n function isDateDisabled(dateObj: DateValue) {\n if (props.isDateDisabled?.(dateObj) || props.disabled.value)\n return true\n if (props.maxValue.value && isAfter(dateObj, props.maxValue.value))\n return true\n if (props.minValue.value && isBefore(dateObj, props.minValue.value))\n return true\n return false\n }\n\n const isDateUnavailable = (date: DateValue) => {\n if (props.isDateUnavailable?.(date))\n return true\n return false\n }\n\n const weekdays = computed(() => {\n if (!grid.value.length)\n return []\n return grid.value[0].rows[0].map((date) => {\n return formatter.dayOfWeek(toDate(date), props.weekdayFormat.value)\n })\n })\n\n const nextPage = (nextPageFunc?: (date: DateValue) => DateValue) => {\n const firstDate = grid.value[0].value\n\n if (!nextPageFunc && !props.nextPage.value) {\n const newDate = firstDate.add({ months: props.pagedNavigation.value ? props.numberOfMonths.value : 1 })\n\n const newGrid = createMonths({\n dateObj: newDate,\n weekStartsOn: props.weekStartsOn.value,\n locale: props.locale.value,\n fixedWeeks: props.fixedWeeks.value,\n numberOfMonths: props.numberOfMonths.value,\n })\n\n grid.value = newGrid\n\n props.placeholder.value = newGrid[0].value.set({ day: 1 })\n return\n }\n\n const newDate = handleNextPage(firstDate, nextPageFunc || props.nextPage.value!)\n const newGrid = createMonths({\n dateObj: newDate,\n weekStartsOn: props.weekStartsOn.value,\n locale: props.locale.value,\n fixedWeeks: props.fixedWeeks.value,\n numberOfMonths: props.numberOfMonths.value,\n })\n\n grid.value = newGrid\n\n const duration: DateFields = {}\n\n // Do not adjust the placeholder if the nextPageFunc is defined (overwrite)\n if (!nextPageFunc) {\n const diff = newGrid[0].value.compare(firstDate)\n if (diff >= getDaysInMonth(firstDate))\n duration.day = 1\n\n if (diff >= 365)\n duration.month = 1\n }\n\n props.placeholder.value = newGrid[0].value.set({ ...duration })\n }\n\n const prevPage = (prevPageFunc?: (date: DateValue) => DateValue) => {\n const firstDate = grid.value[0].value\n\n if (!prevPageFunc && !props.prevPage.value) {\n const newDate = firstDate.subtract({ months: props.pagedNavigation.value ? props.numberOfMonths.value : 1 })\n\n const newGrid = createMonths({\n dateObj: newDate,\n weekStartsOn: props.weekStartsOn.value,\n locale: props.locale.value,\n fixedWeeks: props.fixedWeeks.value,\n numberOfMonths: props.numberOfMonths.value,\n })\n\n grid.value = newGrid\n\n props.placeholder.value = newGrid[0].value.set({ day: 1 })\n return\n }\n\n const newDate = handlePrevPage(firstDate, prevPageFunc || props.prevPage.value!)\n const newGrid = createMonths({\n dateObj: newDate,\n weekStartsOn: props.weekStartsOn.value,\n locale: props.locale.value,\n fixedWeeks: props.fixedWeeks.value,\n numberOfMonths: props.numberOfMonths.value,\n })\n\n grid.value = newGrid\n\n const duration: DateFields = {}\n\n // Do not adjust the placeholder if the prevPageFunc is defined (overwrite)\n if (!prevPageFunc) {\n const diff = firstDate.compare(newGrid[0].value)\n if (diff >= getDaysInMonth(firstDate))\n duration.day = 1\n\n if (diff >= 365)\n duration.month = 1\n }\n\n props.placeholder.value = newGrid[0].value.set({ ...duration })\n }\n\n watch(props.placeholder, (value) => {\n if (visibleView.value.some(month => isEqualMonth(month, value)))\n return\n grid.value = createMonths({\n dateObj: value,\n weekStartsOn: props.weekStartsOn.value,\n locale: props.locale.value,\n fixedWeeks: props.fixedWeeks.value,\n numberOfMonths: props.numberOfMonths.value,\n })\n })\n\n watch([props.locale, props.weekStartsOn, props.fixedWeeks, props.numberOfMonths], () => {\n grid.value = createMonths({\n dateObj: props.placeholder.value,\n weekStartsOn: props.weekStartsOn.value,\n locale: props.locale.value,\n fixedWeeks: props.fixedWeeks.value,\n numberOfMonths: props.numberOfMonths.value,\n })\n })\n\n const headingValue = computed(() => {\n if (!grid.value.length)\n return ''\n\n if (props.locale.value !== formatter.getLocale())\n formatter.setLocale(props.locale.value)\n\n if (grid.value.length === 1) {\n const month = grid.value[0].value\n return `${formatter.fullMonthAndYear(toDate(month), headingFormatOptions.value)}`\n }\n\n const startMonth = toDate(grid.value[0].value)\n const endMonth = toDate(grid.value[grid.value.length - 1].value)\n\n const startMonthName = formatter.fullMonth(startMonth, headingFormatOptions.value)\n const endMonthName = formatter.fullMonth(endMonth, headingFormatOptions.value)\n const startMonthYear = formatter.fullYear(startMonth, headingFormatOptions.value)\n const endMonthYear = formatter.fullYear(endMonth, headingFormatOptions.value)\n\n const content\n = startMonthYear === endMonthYear\n ? `${startMonthName} - ${endMonthName} ${endMonthYear}`\n : `${startMonthName} ${startMonthYear} - ${endMonthName} ${endMonthYear}`\n\n return content\n })\n\n const fullCalendarLabel = computed(() => `${props.calendarLabel.value ?? 'Event Date'}, ${headingValue.value}`)\n\n return {\n isDateDisabled,\n isDateUnavailable,\n isNextButtonDisabled,\n isPrevButtonDisabled,\n grid,\n weekdays,\n visibleView,\n isOutsideVisibleView,\n formatter,\n nextPage,\n prevPage,\n headingValue,\n fullCalendarLabel,\n }\n}\n"],"names":["firstPeriodOfNextPage","lastPeriodOfPrevPage","newDate","newGrid"],"mappings":"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"}
@@ -2,10 +2,10 @@
2
2
 
3
3
  const vue = require('vue');
4
4
  const core = require('@vueuse/core');
5
- const shared_createContext = require('../shared/createContext.cjs');
6
5
  const shared_useDirection = require('../shared/useDirection.cjs');
7
6
  const Primitive_usePrimitiveElement = require('../Primitive/usePrimitiveElement.cjs');
8
7
  const shared_useFormControl = require('../shared/useFormControl.cjs');
8
+ const shared_createContext = require('../shared/createContext.cjs');
9
9
  const RovingFocus_RovingFocusGroup = require('../RovingFocus/RovingFocusGroup.cjs');
10
10
  const Primitive_Primitive = require('../Primitive/Primitive.cjs');
11
11
  const VisuallyHidden_VisuallyHiddenInput = require('../VisuallyHidden/VisuallyHiddenInput.cjs');
@@ -1 +1 @@
1
- {"version":3,"file":"CheckboxGroupRoot.cjs","sources":["../../src/Checkbox/CheckboxGroupRoot.vue"],"sourcesContent":["<script lang=\"ts\">\nimport { type Ref, computed, toRefs } from 'vue'\nimport { createContext, useDirection, useFormControl } from '@/shared'\nimport type { RovingFocusGroupProps } from '@/RovingFocus'\nimport type { AcceptableValue, FormFieldProps } from '@/shared/types'\nimport { useVModel } from '@vueuse/core'\nimport { Primitive, usePrimitiveElement } from '@/Primitive'\n\nexport interface CheckboxGroupRootProps<T = AcceptableValue> extends Pick<RovingFocusGroupProps, 'as' | 'asChild' | 'dir' | 'orientation' | 'loop'>, FormFieldProps {\n /** The value of the checkbox when it is initially rendered. Use when you do not need to control its value. */\n defaultValue?: T[]\n /** The controlled value of the checkbox. Can be binded with v-model. */\n modelValue?: T[]\n /** When `false`, navigating through the items using arrow keys will be disabled. */\n rovingFocus?: boolean\n /** When `true`, prevents the user from interacting with the checkboxes */\n disabled?: boolean\n}\n\nexport type CheckboxGroupRootEmits<T = AcceptableValue> = {\n /** Event handler called when the value of the checkbox changes. */\n 'update:modelValue': [value: T[]]\n}\n\ninterface CheckboxGroupRootContext {\n modelValue: Ref<AcceptableValue[]>\n rovingFocus: Ref<boolean>\n disabled: Ref<boolean>\n}\n\nexport const [injectCheckboxGroupRootContext, provideCheckboxGroupRootContext]\n = createContext<CheckboxGroupRootContext>('CheckboxGroupRoot')\n</script>\n\n<script setup lang=\"ts\" generic=\"T extends AcceptableValue = AcceptableValue\">\nimport { RovingFocusGroup } from '@/RovingFocus'\nimport { VisuallyHiddenInput } from '@/VisuallyHidden'\n\nconst props = withDefaults(defineProps<CheckboxGroupRootProps<T>>(), {\n rovingFocus: true,\n})\nconst emits = defineEmits<CheckboxGroupRootEmits<T>>()\n\nconst { disabled, rovingFocus, dir: propDir } = toRefs(props)\nconst dir = useDirection(propDir)\n\nconst { primitiveElement, currentElement } = usePrimitiveElement()\nconst isFormControl = useFormControl(currentElement)\n\nconst modelValue = useVModel(props, 'modelValue', emits, {\n defaultValue: props.defaultValue ?? [],\n passive: (props.modelValue === undefined) as false,\n}) as Ref<T[]>\n\nconst rovingFocusProps = computed(() => {\n return rovingFocus.value ? { loop: props.loop, dir: dir.value, orientation: props.orientation } : {}\n})\n\nprovideCheckboxGroupRootContext({\n modelValue,\n rovingFocus,\n disabled,\n})\n</script>\n\n<template>\n <component\n :is=\"rovingFocus ? RovingFocusGroup : Primitive\"\n ref=\"primitiveElement\"\n :as=\"as\"\n :as-child=\"asChild\"\n v-bind=\"rovingFocusProps\"\n >\n <slot />\n\n <VisuallyHiddenInput\n v-if=\"isFormControl && name\"\n :name=\"name\"\n :value=\"modelValue\"\n :required=\"required\"\n />\n </component>\n</template>\n"],"names":["createContext","toRefs","useDirection","usePrimitiveElement","useFormControl","useVModel","computed"],"mappings":";;;;;;;;;;;;AA8BO,MAAM,CAAC,8BAAA,EAAgC,+BAA+B,CAAA,GACzEA,mCAAwC,mBAAmB;;;;;;;;;;;;;;;;;;AAO/D,IAAA,MAAM,KAAQ,GAAA,OAAA;AAGd,IAAA,MAAM,KAAQ,GAAA,MAAA;AAEd,IAAA,MAAM,EAAE,QAAU,EAAA,WAAA,EAAa,KAAK,OAAQ,EAAA,GAAIC,WAAO,KAAK,CAAA;AAC5D,IAAM,MAAA,GAAA,GAAMC,iCAAa,OAAO,CAAA;AAEhC,IAAA,MAAM,EAAE,gBAAA,EAAkB,cAAe,EAAA,GAAIC,iDAAoB,EAAA;AACjE,IAAM,MAAA,aAAA,GAAgBC,qCAAe,cAAc,CAAA;AAEnD,IAAA,MAAM,UAAa,GAAAC,cAAA,CAAU,KAAO,EAAA,YAAA,EAAc,KAAO,EAAA;AAAA,MACvD,YAAA,EAAc,KAAM,CAAA,YAAA,IAAgB,EAAC;AAAA,MACrC,OAAA,EAAU,MAAM,UAAe,KAAA;AAAA,KAChC,CAAA;AAED,IAAM,MAAA,gBAAA,GAAmBC,aAAS,MAAM;AACtC,MAAA,OAAO,WAAY,CAAA,KAAA,GAAQ,EAAE,IAAA,EAAM,KAAM,CAAA,IAAA,EAAM,GAAK,EAAA,GAAA,CAAI,KAAO,EAAA,WAAA,EAAa,KAAM,CAAA,WAAA,KAAgB,EAAC;AAAA,KACpG,CAAA;AAED,IAAgC,+BAAA,CAAA;AAAA,MAC9B,UAAA;AAAA,MACA,WAAA;AAAA,MACA;AAAA,KACD,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"CheckboxGroupRoot.cjs","sources":["../../src/Checkbox/CheckboxGroupRoot.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { Ref } from 'vue'\nimport type { RovingFocusGroupProps } from '@/RovingFocus'\nimport type { AcceptableValue, FormFieldProps } from '@/shared/types'\nimport { useVModel } from '@vueuse/core'\nimport { computed, toRefs } from 'vue'\nimport { Primitive, usePrimitiveElement } from '@/Primitive'\nimport { createContext, useDirection, useFormControl } from '@/shared'\n\nexport interface CheckboxGroupRootProps<T = AcceptableValue> extends Pick<RovingFocusGroupProps, 'as' | 'asChild' | 'dir' | 'orientation' | 'loop'>, FormFieldProps {\n /** The value of the checkbox when it is initially rendered. Use when you do not need to control its value. */\n defaultValue?: T[]\n /** The controlled value of the checkbox. Can be binded with v-model. */\n modelValue?: T[]\n /** When `false`, navigating through the items using arrow keys will be disabled. */\n rovingFocus?: boolean\n /** When `true`, prevents the user from interacting with the checkboxes */\n disabled?: boolean\n}\n\nexport type CheckboxGroupRootEmits<T = AcceptableValue> = {\n /** Event handler called when the value of the checkbox changes. */\n 'update:modelValue': [value: T[]]\n}\n\ninterface CheckboxGroupRootContext {\n modelValue: Ref<AcceptableValue[]>\n rovingFocus: Ref<boolean>\n disabled: Ref<boolean>\n}\n\nexport const [injectCheckboxGroupRootContext, provideCheckboxGroupRootContext]\n = createContext<CheckboxGroupRootContext>('CheckboxGroupRoot')\n</script>\n\n<script setup lang=\"ts\" generic=\"T extends AcceptableValue = AcceptableValue\">\nimport { RovingFocusGroup } from '@/RovingFocus'\nimport { VisuallyHiddenInput } from '@/VisuallyHidden'\n\nconst props = withDefaults(defineProps<CheckboxGroupRootProps<T>>(), {\n rovingFocus: true,\n})\nconst emits = defineEmits<CheckboxGroupRootEmits<T>>()\n\nconst { disabled, rovingFocus, dir: propDir } = toRefs(props)\nconst dir = useDirection(propDir)\n\nconst { primitiveElement, currentElement } = usePrimitiveElement()\nconst isFormControl = useFormControl(currentElement)\n\nconst modelValue = useVModel(props, 'modelValue', emits, {\n defaultValue: props.defaultValue ?? [],\n passive: (props.modelValue === undefined) as false,\n}) as Ref<T[]>\n\nconst rovingFocusProps = computed(() => {\n return rovingFocus.value ? { loop: props.loop, dir: dir.value, orientation: props.orientation } : {}\n})\n\nprovideCheckboxGroupRootContext({\n modelValue,\n rovingFocus,\n disabled,\n})\n</script>\n\n<template>\n <component\n :is=\"rovingFocus ? RovingFocusGroup : Primitive\"\n ref=\"primitiveElement\"\n :as=\"as\"\n :as-child=\"asChild\"\n v-bind=\"rovingFocusProps\"\n >\n <slot />\n\n <VisuallyHiddenInput\n v-if=\"isFormControl && name\"\n :name=\"name\"\n :value=\"modelValue\"\n :required=\"required\"\n />\n </component>\n</template>\n"],"names":["createContext","toRefs","useDirection","usePrimitiveElement","useFormControl","useVModel","computed"],"mappings":";;;;;;;;;;;;AA+BO,MAAM,CAAC,8BAAA,EAAgC,+BAA+B,CAAA,GACzEA,mCAAwC,mBAAmB;;;;;;;;;;;;;;;;;;AAO/D,IAAA,MAAM,KAAQ,GAAA,OAAA;AAGd,IAAA,MAAM,KAAQ,GAAA,MAAA;AAEd,IAAA,MAAM,EAAE,QAAU,EAAA,WAAA,EAAa,KAAK,OAAQ,EAAA,GAAIC,WAAO,KAAK,CAAA;AAC5D,IAAM,MAAA,GAAA,GAAMC,iCAAa,OAAO,CAAA;AAEhC,IAAA,MAAM,EAAE,gBAAA,EAAkB,cAAe,EAAA,GAAIC,iDAAoB,EAAA;AACjE,IAAM,MAAA,aAAA,GAAgBC,qCAAe,cAAc,CAAA;AAEnD,IAAA,MAAM,UAAa,GAAAC,cAAA,CAAU,KAAO,EAAA,YAAA,EAAc,KAAO,EAAA;AAAA,MACvD,YAAA,EAAc,KAAM,CAAA,YAAA,IAAgB,EAAC;AAAA,MACrC,OAAA,EAAU,MAAM,UAAe,KAAA;AAAA,KAChC,CAAA;AAED,IAAM,MAAA,gBAAA,GAAmBC,aAAS,MAAM;AACtC,MAAA,OAAO,WAAY,CAAA,KAAA,GAAQ,EAAE,IAAA,EAAM,KAAM,CAAA,IAAA,EAAM,GAAK,EAAA,GAAA,CAAI,KAAO,EAAA,WAAA,EAAa,KAAM,CAAA,WAAA,KAAgB,EAAC;AAAA,KACpG,CAAA;AAED,IAAgC,+BAAA,CAAA;AAAA,MAC9B,UAAA;AAAA,MACA,WAAA;AAAA,MACA;AAAA,KACD,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,9 +1,9 @@
1
1
  import { defineComponent, toRefs, computed, createBlock, openBlock, resolveDynamicComponent, unref, mergeProps, withCtx, renderSlot, createCommentVNode } from 'vue';
2
2
  import { useVModel } from '@vueuse/core';
3
- import { c as createContext } from '../shared/createContext.js';
4
3
  import { u as useDirection } from '../shared/useDirection.js';
5
4
  import { u as usePrimitiveElement } from '../Primitive/usePrimitiveElement.js';
6
5
  import { u as useFormControl } from '../shared/useFormControl.js';
6
+ import { c as createContext } from '../shared/createContext.js';
7
7
  import { _ as _sfc_main$1 } from '../RovingFocus/RovingFocusGroup.js';
8
8
  import { P as Primitive } from '../Primitive/Primitive.js';
9
9
  import { _ as _sfc_main$2 } from '../VisuallyHidden/VisuallyHiddenInput.js';
@@ -1 +1 @@
1
- {"version":3,"file":"CheckboxGroupRoot.js","sources":["../../src/Checkbox/CheckboxGroupRoot.vue"],"sourcesContent":["<script lang=\"ts\">\nimport { type Ref, computed, toRefs } from 'vue'\nimport { createContext, useDirection, useFormControl } from '@/shared'\nimport type { RovingFocusGroupProps } from '@/RovingFocus'\nimport type { AcceptableValue, FormFieldProps } from '@/shared/types'\nimport { useVModel } from '@vueuse/core'\nimport { Primitive, usePrimitiveElement } from '@/Primitive'\n\nexport interface CheckboxGroupRootProps<T = AcceptableValue> extends Pick<RovingFocusGroupProps, 'as' | 'asChild' | 'dir' | 'orientation' | 'loop'>, FormFieldProps {\n /** The value of the checkbox when it is initially rendered. Use when you do not need to control its value. */\n defaultValue?: T[]\n /** The controlled value of the checkbox. Can be binded with v-model. */\n modelValue?: T[]\n /** When `false`, navigating through the items using arrow keys will be disabled. */\n rovingFocus?: boolean\n /** When `true`, prevents the user from interacting with the checkboxes */\n disabled?: boolean\n}\n\nexport type CheckboxGroupRootEmits<T = AcceptableValue> = {\n /** Event handler called when the value of the checkbox changes. */\n 'update:modelValue': [value: T[]]\n}\n\ninterface CheckboxGroupRootContext {\n modelValue: Ref<AcceptableValue[]>\n rovingFocus: Ref<boolean>\n disabled: Ref<boolean>\n}\n\nexport const [injectCheckboxGroupRootContext, provideCheckboxGroupRootContext]\n = createContext<CheckboxGroupRootContext>('CheckboxGroupRoot')\n</script>\n\n<script setup lang=\"ts\" generic=\"T extends AcceptableValue = AcceptableValue\">\nimport { RovingFocusGroup } from '@/RovingFocus'\nimport { VisuallyHiddenInput } from '@/VisuallyHidden'\n\nconst props = withDefaults(defineProps<CheckboxGroupRootProps<T>>(), {\n rovingFocus: true,\n})\nconst emits = defineEmits<CheckboxGroupRootEmits<T>>()\n\nconst { disabled, rovingFocus, dir: propDir } = toRefs(props)\nconst dir = useDirection(propDir)\n\nconst { primitiveElement, currentElement } = usePrimitiveElement()\nconst isFormControl = useFormControl(currentElement)\n\nconst modelValue = useVModel(props, 'modelValue', emits, {\n defaultValue: props.defaultValue ?? [],\n passive: (props.modelValue === undefined) as false,\n}) as Ref<T[]>\n\nconst rovingFocusProps = computed(() => {\n return rovingFocus.value ? { loop: props.loop, dir: dir.value, orientation: props.orientation } : {}\n})\n\nprovideCheckboxGroupRootContext({\n modelValue,\n rovingFocus,\n disabled,\n})\n</script>\n\n<template>\n <component\n :is=\"rovingFocus ? RovingFocusGroup : Primitive\"\n ref=\"primitiveElement\"\n :as=\"as\"\n :as-child=\"asChild\"\n v-bind=\"rovingFocusProps\"\n >\n <slot />\n\n <VisuallyHiddenInput\n v-if=\"isFormControl && name\"\n :name=\"name\"\n :value=\"modelValue\"\n :required=\"required\"\n />\n </component>\n</template>\n"],"names":[],"mappings":";;;;;;;;;;AA8BO,MAAM,CAAC,8BAAA,EAAgC,+BAA+B,CAAA,GACzE,cAAwC,mBAAmB;;;;;;;;;;;;;;;;;;AAO/D,IAAA,MAAM,KAAQ,GAAA,OAAA;AAGd,IAAA,MAAM,KAAQ,GAAA,MAAA;AAEd,IAAA,MAAM,EAAE,QAAU,EAAA,WAAA,EAAa,KAAK,OAAQ,EAAA,GAAI,OAAO,KAAK,CAAA;AAC5D,IAAM,MAAA,GAAA,GAAM,aAAa,OAAO,CAAA;AAEhC,IAAA,MAAM,EAAE,gBAAA,EAAkB,cAAe,EAAA,GAAI,mBAAoB,EAAA;AACjE,IAAM,MAAA,aAAA,GAAgB,eAAe,cAAc,CAAA;AAEnD,IAAA,MAAM,UAAa,GAAA,SAAA,CAAU,KAAO,EAAA,YAAA,EAAc,KAAO,EAAA;AAAA,MACvD,YAAA,EAAc,KAAM,CAAA,YAAA,IAAgB,EAAC;AAAA,MACrC,OAAA,EAAU,MAAM,UAAe,KAAA;AAAA,KAChC,CAAA;AAED,IAAM,MAAA,gBAAA,GAAmB,SAAS,MAAM;AACtC,MAAA,OAAO,WAAY,CAAA,KAAA,GAAQ,EAAE,IAAA,EAAM,KAAM,CAAA,IAAA,EAAM,GAAK,EAAA,GAAA,CAAI,KAAO,EAAA,WAAA,EAAa,KAAM,CAAA,WAAA,KAAgB,EAAC;AAAA,KACpG,CAAA;AAED,IAAgC,+BAAA,CAAA;AAAA,MAC9B,UAAA;AAAA,MACA,WAAA;AAAA,MACA;AAAA,KACD,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"CheckboxGroupRoot.js","sources":["../../src/Checkbox/CheckboxGroupRoot.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { Ref } from 'vue'\nimport type { RovingFocusGroupProps } from '@/RovingFocus'\nimport type { AcceptableValue, FormFieldProps } from '@/shared/types'\nimport { useVModel } from '@vueuse/core'\nimport { computed, toRefs } from 'vue'\nimport { Primitive, usePrimitiveElement } from '@/Primitive'\nimport { createContext, useDirection, useFormControl } from '@/shared'\n\nexport interface CheckboxGroupRootProps<T = AcceptableValue> extends Pick<RovingFocusGroupProps, 'as' | 'asChild' | 'dir' | 'orientation' | 'loop'>, FormFieldProps {\n /** The value of the checkbox when it is initially rendered. Use when you do not need to control its value. */\n defaultValue?: T[]\n /** The controlled value of the checkbox. Can be binded with v-model. */\n modelValue?: T[]\n /** When `false`, navigating through the items using arrow keys will be disabled. */\n rovingFocus?: boolean\n /** When `true`, prevents the user from interacting with the checkboxes */\n disabled?: boolean\n}\n\nexport type CheckboxGroupRootEmits<T = AcceptableValue> = {\n /** Event handler called when the value of the checkbox changes. */\n 'update:modelValue': [value: T[]]\n}\n\ninterface CheckboxGroupRootContext {\n modelValue: Ref<AcceptableValue[]>\n rovingFocus: Ref<boolean>\n disabled: Ref<boolean>\n}\n\nexport const [injectCheckboxGroupRootContext, provideCheckboxGroupRootContext]\n = createContext<CheckboxGroupRootContext>('CheckboxGroupRoot')\n</script>\n\n<script setup lang=\"ts\" generic=\"T extends AcceptableValue = AcceptableValue\">\nimport { RovingFocusGroup } from '@/RovingFocus'\nimport { VisuallyHiddenInput } from '@/VisuallyHidden'\n\nconst props = withDefaults(defineProps<CheckboxGroupRootProps<T>>(), {\n rovingFocus: true,\n})\nconst emits = defineEmits<CheckboxGroupRootEmits<T>>()\n\nconst { disabled, rovingFocus, dir: propDir } = toRefs(props)\nconst dir = useDirection(propDir)\n\nconst { primitiveElement, currentElement } = usePrimitiveElement()\nconst isFormControl = useFormControl(currentElement)\n\nconst modelValue = useVModel(props, 'modelValue', emits, {\n defaultValue: props.defaultValue ?? [],\n passive: (props.modelValue === undefined) as false,\n}) as Ref<T[]>\n\nconst rovingFocusProps = computed(() => {\n return rovingFocus.value ? { loop: props.loop, dir: dir.value, orientation: props.orientation } : {}\n})\n\nprovideCheckboxGroupRootContext({\n modelValue,\n rovingFocus,\n disabled,\n})\n</script>\n\n<template>\n <component\n :is=\"rovingFocus ? RovingFocusGroup : Primitive\"\n ref=\"primitiveElement\"\n :as=\"as\"\n :as-child=\"asChild\"\n v-bind=\"rovingFocusProps\"\n >\n <slot />\n\n <VisuallyHiddenInput\n v-if=\"isFormControl && name\"\n :name=\"name\"\n :value=\"modelValue\"\n :required=\"required\"\n />\n </component>\n</template>\n"],"names":[],"mappings":";;;;;;;;;;AA+BO,MAAM,CAAC,8BAAA,EAAgC,+BAA+B,CAAA,GACzE,cAAwC,mBAAmB;;;;;;;;;;;;;;;;;;AAO/D,IAAA,MAAM,KAAQ,GAAA,OAAA;AAGd,IAAA,MAAM,KAAQ,GAAA,MAAA;AAEd,IAAA,MAAM,EAAE,QAAU,EAAA,WAAA,EAAa,KAAK,OAAQ,EAAA,GAAI,OAAO,KAAK,CAAA;AAC5D,IAAM,MAAA,GAAA,GAAM,aAAa,OAAO,CAAA;AAEhC,IAAA,MAAM,EAAE,gBAAA,EAAkB,cAAe,EAAA,GAAI,mBAAoB,EAAA;AACjE,IAAM,MAAA,aAAA,GAAgB,eAAe,cAAc,CAAA;AAEnD,IAAA,MAAM,UAAa,GAAA,SAAA,CAAU,KAAO,EAAA,YAAA,EAAc,KAAO,EAAA;AAAA,MACvD,YAAA,EAAc,KAAM,CAAA,YAAA,IAAgB,EAAC;AAAA,MACrC,OAAA,EAAU,MAAM,UAAe,KAAA;AAAA,KAChC,CAAA;AAED,IAAM,MAAA,gBAAA,GAAmB,SAAS,MAAM;AACtC,MAAA,OAAO,WAAY,CAAA,KAAA,GAAQ,EAAE,IAAA,EAAM,KAAM,CAAA,IAAA,EAAM,GAAK,EAAA,GAAA,CAAI,KAAO,EAAA,WAAA,EAAa,KAAM,CAAA,WAAA,KAAgB,EAAC;AAAA,KACpG,CAAA;AAED,IAAgC,+BAAA,CAAA;AAAA,MAC9B,UAAA;AAAA,MACA,WAAA;AAAA,MACA;AAAA,KACD,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"CheckboxIndicator.cjs","sources":["../../src/Checkbox/CheckboxIndicator.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { PrimitiveProps } from '@/Primitive'\nimport { useForwardExpose } from '@/shared'\n\nexport interface CheckboxIndicatorProps extends PrimitiveProps {\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 { injectCheckboxRootContext } from './CheckboxRoot.vue'\nimport { Primitive } from '@/Primitive'\nimport { Presence } from '@/Presence'\nimport { getState, isIndeterminate } from './utils'\n\nwithDefaults(defineProps<CheckboxIndicatorProps>(), {\n as: 'span',\n})\nconst { forwardRef } = useForwardExpose()\n\nconst rootContext = injectCheckboxRootContext()\n</script>\n\n<template>\n <Presence\n :present=\"forceMount || isIndeterminate(rootContext.state.value) || rootContext.state.value === true\"\n >\n <Primitive\n :ref=\"forwardRef\"\n :data-state=\"getState(rootContext.state.value)\"\n :data-disabled=\"rootContext.disabled.value ? '' : undefined\"\n :style=\"{ pointerEvents: 'none' }\"\n :as-child=\"asChild\"\n :as=\"as\"\n v-bind=\"$attrs\"\n >\n <slot />\n </Primitive>\n </Presence>\n</template>\n"],"names":["useForwardExpose","injectCheckboxRootContext"],"mappings":";;;;;;;;;;;;;;;;;AAsBA,IAAM,MAAA,EAAE,UAAW,EAAA,GAAIA,wCAAiB,EAAA;AAExC,IAAA,MAAM,cAAcC,+CAA0B,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"CheckboxIndicator.cjs","sources":["../../src/Checkbox/CheckboxIndicator.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { PrimitiveProps } from '@/Primitive'\nimport { useForwardExpose } from '@/shared'\n\nexport interface CheckboxIndicatorProps extends PrimitiveProps {\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with Vue animation libraries.\n */\n forceMount?: boolean\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { Presence } from '@/Presence'\nimport { Primitive } from '@/Primitive'\nimport { injectCheckboxRootContext } from './CheckboxRoot.vue'\nimport { getState, isIndeterminate } from './utils'\n\nwithDefaults(defineProps<CheckboxIndicatorProps>(), {\n as: 'span',\n})\nconst { forwardRef } = useForwardExpose()\n\nconst rootContext = injectCheckboxRootContext()\n</script>\n\n<template>\n <Presence\n :present=\"forceMount || isIndeterminate(rootContext.state.value) || rootContext.state.value === true\"\n >\n <Primitive\n :ref=\"forwardRef\"\n :data-state=\"getState(rootContext.state.value)\"\n :data-disabled=\"rootContext.disabled.value ? '' : undefined\"\n :style=\"{ pointerEvents: 'none' }\"\n :as-child=\"asChild\"\n :as=\"as\"\n v-bind=\"$attrs\"\n >\n <slot />\n </Primitive>\n </Presence>\n</template>\n"],"names":["useForwardExpose","injectCheckboxRootContext"],"mappings":";;;;;;;;;;;;;;;;;AAsBA,IAAM,MAAA,EAAE,UAAW,EAAA,GAAIA,wCAAiB,EAAA;AAExC,IAAA,MAAM,cAAcC,+CAA0B,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"CheckboxIndicator.js","sources":["../../src/Checkbox/CheckboxIndicator.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { PrimitiveProps } from '@/Primitive'\nimport { useForwardExpose } from '@/shared'\n\nexport interface CheckboxIndicatorProps extends PrimitiveProps {\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 { injectCheckboxRootContext } from './CheckboxRoot.vue'\nimport { Primitive } from '@/Primitive'\nimport { Presence } from '@/Presence'\nimport { getState, isIndeterminate } from './utils'\n\nwithDefaults(defineProps<CheckboxIndicatorProps>(), {\n as: 'span',\n})\nconst { forwardRef } = useForwardExpose()\n\nconst rootContext = injectCheckboxRootContext()\n</script>\n\n<template>\n <Presence\n :present=\"forceMount || isIndeterminate(rootContext.state.value) || rootContext.state.value === true\"\n >\n <Primitive\n :ref=\"forwardRef\"\n :data-state=\"getState(rootContext.state.value)\"\n :data-disabled=\"rootContext.disabled.value ? '' : undefined\"\n :style=\"{ pointerEvents: 'none' }\"\n :as-child=\"asChild\"\n :as=\"as\"\n v-bind=\"$attrs\"\n >\n <slot />\n </Primitive>\n </Presence>\n</template>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;AAsBA,IAAM,MAAA,EAAE,UAAW,EAAA,GAAI,gBAAiB,EAAA;AAExC,IAAA,MAAM,cAAc,yBAA0B,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"CheckboxIndicator.js","sources":["../../src/Checkbox/CheckboxIndicator.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { PrimitiveProps } from '@/Primitive'\nimport { useForwardExpose } from '@/shared'\n\nexport interface CheckboxIndicatorProps extends PrimitiveProps {\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with Vue animation libraries.\n */\n forceMount?: boolean\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { Presence } from '@/Presence'\nimport { Primitive } from '@/Primitive'\nimport { injectCheckboxRootContext } from './CheckboxRoot.vue'\nimport { getState, isIndeterminate } from './utils'\n\nwithDefaults(defineProps<CheckboxIndicatorProps>(), {\n as: 'span',\n})\nconst { forwardRef } = useForwardExpose()\n\nconst rootContext = injectCheckboxRootContext()\n</script>\n\n<template>\n <Presence\n :present=\"forceMount || isIndeterminate(rootContext.state.value) || rootContext.state.value === true\"\n >\n <Primitive\n :ref=\"forwardRef\"\n :data-state=\"getState(rootContext.state.value)\"\n :data-disabled=\"rootContext.disabled.value ? '' : undefined\"\n :style=\"{ pointerEvents: 'none' }\"\n :as-child=\"asChild\"\n :as=\"as\"\n v-bind=\"$attrs\"\n >\n <slot />\n </Primitive>\n </Presence>\n</template>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;AAsBA,IAAM,MAAA,EAAE,UAAW,EAAA,GAAI,gBAAiB,EAAA;AAExC,IAAA,MAAM,cAAc,yBAA0B,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,8 +1,8 @@
1
1
  'use strict';
2
2
 
3
3
  const vue = require('vue');
4
- const Checkbox_utils = require('./utils.cjs');
5
4
  const ohash = require('ohash');
5
+ const Checkbox_utils = require('./utils.cjs');
6
6
  const core = require('@vueuse/core');
7
7
  const shared_createContext = require('../shared/createContext.cjs');
8
8
  const shared_useForwardExpose = require('../shared/useForwardExpose.cjs');
@@ -1 +1 @@
1
- {"version":3,"file":"CheckboxRoot.cjs","sources":["../../src/Checkbox/CheckboxRoot.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { PrimitiveProps } from '@/Primitive'\nimport type { Ref } from 'vue'\nimport { createContext, isNullish, isValueEqualOrExist, useFormControl, useForwardExpose } from '@/shared'\nimport type { CheckedState } from './utils'\nimport type { AcceptableValue, FormFieldProps } from '@/shared/types'\nimport { useVModel } from '@vueuse/core'\nimport { injectCheckboxGroupRootContext } from './CheckboxGroupRoot.vue'\n\nexport interface CheckboxRootProps extends PrimitiveProps, FormFieldProps {\n /** The value of the checkbox when it is initially rendered. Use when you do not need to control its value. */\n defaultValue?: boolean | 'indeterminate'\n /** The controlled value of the checkbox. Can be binded with v-model. */\n modelValue?: boolean | 'indeterminate' | null\n /** When `true`, prevents the user from interacting with the checkbox */\n disabled?: boolean\n /**\n * The value given as data when submitted with a `name`.\n * @defaultValue \"on\"\n */\n value?: AcceptableValue\n /** Id of the element */\n id?: string\n}\n\nexport type CheckboxRootEmits = {\n /** Event handler called when the value of the checkbox changes. */\n 'update:modelValue': [value: boolean | 'indeterminate']\n}\n\ninterface CheckboxRootContext {\n disabled: Ref<boolean>\n state: Ref<CheckedState>\n}\n\nexport const [injectCheckboxRootContext, provideCheckboxRootContext]\n = createContext<CheckboxRootContext>('CheckboxRoot')\n</script>\n\n<script setup lang=\"ts\">\nimport { computed } from 'vue'\nimport { Primitive } from '@/Primitive'\nimport { RovingFocusItem } from '@/RovingFocus'\nimport { getState, isIndeterminate } from './utils'\nimport { VisuallyHiddenInput } from '@/VisuallyHidden'\nimport { isEqual } from 'ohash'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst props = withDefaults(defineProps<CheckboxRootProps>(), {\n modelValue: undefined,\n value: 'on',\n as: 'button',\n})\nconst emits = defineEmits<CheckboxRootEmits>()\n\ndefineSlots<{\n default: (props: {\n /** Current value */\n modelValue: typeof modelValue.value\n /** Current state */\n state: typeof checkboxState.value\n }) => any\n}>()\n\nconst { forwardRef, currentElement } = useForwardExpose()\n\nconst checkboxGroupContext = injectCheckboxGroupRootContext(null)\n\nconst modelValue = useVModel(props, 'modelValue', emits, {\n defaultValue: props.defaultValue,\n passive: (props.modelValue === undefined) as false,\n}) as Ref<CheckedState>\n\nconst disabled = computed(() => checkboxGroupContext?.disabled.value || props.disabled)\n\nconst checkboxState = computed<CheckedState>(() => {\n if (!isNullish(checkboxGroupContext?.modelValue.value)) {\n return isValueEqualOrExist(checkboxGroupContext.modelValue.value, props.value)\n }\n else {\n return modelValue.value === 'indeterminate' ? 'indeterminate' : modelValue.value\n }\n})\n\nfunction handleClick() {\n if (!isNullish(checkboxGroupContext?.modelValue.value)) {\n const modelValueArray = [...(checkboxGroupContext.modelValue.value || [])]\n if (isValueEqualOrExist(modelValueArray, props.value)) {\n const index = modelValueArray.findIndex(i => isEqual(i, props.value))\n modelValueArray.splice(index, 1)\n }\n else {\n modelValueArray.push(props.value)\n }\n checkboxGroupContext.modelValue.value = modelValueArray\n }\n else {\n modelValue.value = isIndeterminate(modelValue.value) ? true : !modelValue.value\n }\n}\n\nconst isFormControl = useFormControl(currentElement)\nconst ariaLabel = computed(() => props.id && currentElement.value\n ? (document.querySelector(`[for=\"${props.id}\"]`) as HTMLLabelElement)?.innerText\n : undefined)\n\nprovideCheckboxRootContext({\n disabled,\n state: checkboxState,\n})\n</script>\n\n<template>\n <component\n v-bind=\"$attrs\"\n :is=\"checkboxGroupContext?.rovingFocus.value ? RovingFocusItem : Primitive\"\n :id=\"id\"\n :ref=\"forwardRef\"\n role=\"checkbox\"\n :as-child=\"asChild\"\n :as=\"as\"\n :type=\"as === 'button' ? 'button' : undefined\"\n :aria-checked=\"isIndeterminate(checkboxState) ? 'mixed' : checkboxState\"\n :aria-required=\"required\"\n :aria-label=\"$attrs['aria-label'] || ariaLabel\"\n :data-state=\"getState(checkboxState)\"\n :data-disabled=\"disabled ? '' : undefined\"\n :disabled=\"disabled\"\n :focusable=\"checkboxGroupContext?.rovingFocus.value ? !disabled : undefined\"\n @keydown.enter.prevent=\"() => {\n // According to WAI ARIA, Checkboxes don't activate on enter keypress\n }\"\n @click=\"handleClick\"\n >\n <slot\n :model-value=\"modelValue\"\n :state=\"checkboxState\"\n />\n\n <VisuallyHiddenInput\n v-if=\"isFormControl && name && !checkboxGroupContext\"\n type=\"checkbox\"\n :checked=\"!!checkboxState\"\n :name=\"name\"\n :value=\"value\"\n :disabled=\"disabled\"\n :required=\"required\"\n />\n </component>\n</template>\n"],"names":["createContext","useForwardExpose","injectCheckboxGroupRootContext","useVModel","computed","isNullish","isValueEqualOrExist","isEqual","isIndeterminate","useFormControl"],"mappings":";;;;;;;;;;;;;;;;AAmCO,MAAM,CAAC,yBAAA,EAA2B,0BAA0B,CAAA,GAC/DA,mCAAmC,cAAc;;;;;;;;;;;;;;;;;;;AAerD,IAAA,MAAM,KAAQ,GAAA,OAAA;AAKd,IAAA,MAAM,KAAQ,GAAA,MAAA;AAWd,IAAA,MAAM,EAAE,UAAA,EAAY,cAAe,EAAA,GAAIC,wCAAiB,EAAA;AAExD,IAAM,MAAA,oBAAA,GAAuBC,0DAA+B,IAAI,CAAA;AAEhE,IAAA,MAAM,UAAa,GAAAC,cAAA,CAAU,KAAO,EAAA,YAAA,EAAc,KAAO,EAAA;AAAA,MACvD,cAAc,KAAM,CAAA,YAAA;AAAA,MACpB,OAAA,EAAU,MAAM,UAAe,KAAA;AAAA,KAChC,CAAA;AAED,IAAA,MAAM,WAAWC,YAAS,CAAA,MAAM,sBAAsB,QAAS,CAAA,KAAA,IAAS,MAAM,QAAQ,CAAA;AAEtF,IAAM,MAAA,aAAA,GAAgBA,aAAuB,MAAM;AACjD,MAAA,IAAI,CAACC,wBAAA,CAAU,oBAAsB,EAAA,UAAA,CAAW,KAAK,CAAG,EAAA;AACtD,QAAA,OAAOC,8CAAoB,CAAA,oBAAA,CAAqB,UAAW,CAAA,KAAA,EAAO,MAAM,KAAK,CAAA;AAAA,OAE1E,MAAA;AACH,QAAA,OAAO,UAAW,CAAA,KAAA,KAAU,eAAkB,GAAA,eAAA,GAAkB,UAAW,CAAA,KAAA;AAAA;AAC7E,KACD,CAAA;AAED,IAAA,SAAS,WAAc,GAAA;AACrB,MAAA,IAAI,CAACD,wBAAA,CAAU,oBAAsB,EAAA,UAAA,CAAW,KAAK,CAAG,EAAA;AACtD,QAAA,MAAM,kBAAkB,CAAC,GAAI,qBAAqB,UAAW,CAAA,KAAA,IAAS,EAAG,CAAA;AACzE,QAAA,IAAIC,8CAAoB,CAAA,eAAA,EAAiB,KAAM,CAAA,KAAK,CAAG,EAAA;AACrD,UAAM,MAAA,KAAA,GAAQ,gBAAgB,SAAU,CAAA,CAAA,CAAA,KAAKC,cAAQ,CAAG,EAAA,KAAA,CAAM,KAAK,CAAC,CAAA;AACpE,UAAgB,eAAA,CAAA,MAAA,CAAO,OAAO,CAAC,CAAA;AAAA,SAE5B,MAAA;AACH,UAAgB,eAAA,CAAA,IAAA,CAAK,MAAM,KAAK,CAAA;AAAA;AAElC,QAAA,oBAAA,CAAqB,WAAW,KAAQ,GAAA,eAAA;AAAA,OAErC,MAAA;AACH,QAAA,UAAA,CAAW,QAAQC,8BAAgB,CAAA,UAAA,CAAW,KAAK,CAAI,GAAA,IAAA,GAAO,CAAC,UAAW,CAAA,KAAA;AAAA;AAC5E;AAGF,IAAM,MAAA,aAAA,GAAgBC,qCAAe,cAAc,CAAA;AACnD,IAAA,MAAM,SAAY,GAAAL,YAAA,CAAS,MAAM,KAAA,CAAM,MAAM,cAAe,CAAA,KAAA,GACvD,QAAS,CAAA,aAAA,CAAc,SAAS,KAAM,CAAA,EAAE,CAAI,EAAA,CAAA,CAAA,EAAwB,YACrE,MAAS,CAAA;AAEb,IAA2B,0BAAA,CAAA;AAAA,MACzB,QAAA;AAAA,MACA,KAAO,EAAA;AAAA,KACR,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"CheckboxRoot.cjs","sources":["../../src/Checkbox/CheckboxRoot.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { Ref } from 'vue'\nimport type { CheckedState } from './utils'\nimport type { PrimitiveProps } from '@/Primitive'\nimport type { AcceptableValue, FormFieldProps } from '@/shared/types'\nimport { useVModel } from '@vueuse/core'\nimport { createContext, isNullish, isValueEqualOrExist, useFormControl, useForwardExpose } from '@/shared'\nimport { injectCheckboxGroupRootContext } from './CheckboxGroupRoot.vue'\n\nexport interface CheckboxRootProps extends PrimitiveProps, FormFieldProps {\n /** The value of the checkbox when it is initially rendered. Use when you do not need to control its value. */\n defaultValue?: boolean | 'indeterminate'\n /** The controlled value of the checkbox. Can be binded with v-model. */\n modelValue?: boolean | 'indeterminate' | null\n /** When `true`, prevents the user from interacting with the checkbox */\n disabled?: boolean\n /**\n * The value given as data when submitted with a `name`.\n * @defaultValue \"on\"\n */\n value?: AcceptableValue\n /** Id of the element */\n id?: string\n}\n\nexport type CheckboxRootEmits = {\n /** Event handler called when the value of the checkbox changes. */\n 'update:modelValue': [value: boolean | 'indeterminate']\n}\n\ninterface CheckboxRootContext {\n disabled: Ref<boolean>\n state: Ref<CheckedState>\n}\n\nexport const [injectCheckboxRootContext, provideCheckboxRootContext]\n = createContext<CheckboxRootContext>('CheckboxRoot')\n</script>\n\n<script setup lang=\"ts\">\nimport { isEqual } from 'ohash'\nimport { computed } from 'vue'\nimport { Primitive } from '@/Primitive'\nimport { RovingFocusItem } from '@/RovingFocus'\nimport { VisuallyHiddenInput } from '@/VisuallyHidden'\nimport { getState, isIndeterminate } from './utils'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst props = withDefaults(defineProps<CheckboxRootProps>(), {\n modelValue: undefined,\n value: 'on',\n as: 'button',\n})\nconst emits = defineEmits<CheckboxRootEmits>()\n\ndefineSlots<{\n default?: (props: {\n /** Current value */\n modelValue: typeof modelValue.value\n /** Current state */\n state: typeof checkboxState.value\n }) => any\n}>()\n\nconst { forwardRef, currentElement } = useForwardExpose()\n\nconst checkboxGroupContext = injectCheckboxGroupRootContext(null)\n\nconst modelValue = useVModel(props, 'modelValue', emits, {\n defaultValue: props.defaultValue,\n passive: (props.modelValue === undefined) as false,\n}) as Ref<CheckedState>\n\nconst disabled = computed(() => checkboxGroupContext?.disabled.value || props.disabled)\n\nconst checkboxState = computed<CheckedState>(() => {\n if (!isNullish(checkboxGroupContext?.modelValue.value)) {\n return isValueEqualOrExist(checkboxGroupContext.modelValue.value, props.value)\n }\n else {\n return modelValue.value === 'indeterminate' ? 'indeterminate' : modelValue.value\n }\n})\n\nfunction handleClick() {\n if (!isNullish(checkboxGroupContext?.modelValue.value)) {\n const modelValueArray = [...(checkboxGroupContext.modelValue.value || [])]\n if (isValueEqualOrExist(modelValueArray, props.value)) {\n const index = modelValueArray.findIndex(i => isEqual(i, props.value))\n modelValueArray.splice(index, 1)\n }\n else {\n modelValueArray.push(props.value)\n }\n checkboxGroupContext.modelValue.value = modelValueArray\n }\n else {\n modelValue.value = isIndeterminate(modelValue.value) ? true : !modelValue.value\n }\n}\n\nconst isFormControl = useFormControl(currentElement)\nconst ariaLabel = computed(() => props.id && currentElement.value\n ? (document.querySelector(`[for=\"${props.id}\"]`) as HTMLLabelElement)?.innerText\n : undefined)\n\nprovideCheckboxRootContext({\n disabled,\n state: checkboxState,\n})\n</script>\n\n<template>\n <component\n v-bind=\"$attrs\"\n :is=\"checkboxGroupContext?.rovingFocus.value ? RovingFocusItem : Primitive\"\n :id=\"id\"\n :ref=\"forwardRef\"\n role=\"checkbox\"\n :as-child=\"asChild\"\n :as=\"as\"\n :type=\"as === 'button' ? 'button' : undefined\"\n :aria-checked=\"isIndeterminate(checkboxState) ? 'mixed' : checkboxState\"\n :aria-required=\"required\"\n :aria-label=\"$attrs['aria-label'] || ariaLabel\"\n :data-state=\"getState(checkboxState)\"\n :data-disabled=\"disabled ? '' : undefined\"\n :disabled=\"disabled\"\n :focusable=\"checkboxGroupContext?.rovingFocus.value ? !disabled : undefined\"\n @keydown.enter.prevent=\"() => {\n // According to WAI ARIA, Checkboxes don't activate on enter keypress\n }\"\n @click=\"handleClick\"\n >\n <slot\n :model-value=\"modelValue\"\n :state=\"checkboxState\"\n />\n\n <VisuallyHiddenInput\n v-if=\"isFormControl && name && !checkboxGroupContext\"\n type=\"checkbox\"\n :checked=\"!!checkboxState\"\n :name=\"name\"\n :value=\"value\"\n :disabled=\"disabled\"\n :required=\"required\"\n />\n </component>\n</template>\n"],"names":["createContext","useForwardExpose","injectCheckboxGroupRootContext","useVModel","computed","isNullish","isValueEqualOrExist","isEqual","isIndeterminate","useFormControl"],"mappings":";;;;;;;;;;;;;;;;AAmCO,MAAM,CAAC,yBAAA,EAA2B,0BAA0B,CAAA,GAC/DA,mCAAmC,cAAc;;;;;;;;;;;;;;;;;;;AAerD,IAAA,MAAM,KAAQ,GAAA,OAAA;AAKd,IAAA,MAAM,KAAQ,GAAA,MAAA;AAWd,IAAA,MAAM,EAAE,UAAA,EAAY,cAAe,EAAA,GAAIC,wCAAiB,EAAA;AAExD,IAAM,MAAA,oBAAA,GAAuBC,0DAA+B,IAAI,CAAA;AAEhE,IAAA,MAAM,UAAa,GAAAC,cAAA,CAAU,KAAO,EAAA,YAAA,EAAc,KAAO,EAAA;AAAA,MACvD,cAAc,KAAM,CAAA,YAAA;AAAA,MACpB,OAAA,EAAU,MAAM,UAAe,KAAA;AAAA,KAChC,CAAA;AAED,IAAA,MAAM,WAAWC,YAAS,CAAA,MAAM,sBAAsB,QAAS,CAAA,KAAA,IAAS,MAAM,QAAQ,CAAA;AAEtF,IAAM,MAAA,aAAA,GAAgBA,aAAuB,MAAM;AACjD,MAAA,IAAI,CAACC,wBAAA,CAAU,oBAAsB,EAAA,UAAA,CAAW,KAAK,CAAG,EAAA;AACtD,QAAA,OAAOC,8CAAoB,CAAA,oBAAA,CAAqB,UAAW,CAAA,KAAA,EAAO,MAAM,KAAK,CAAA;AAAA,OAE1E,MAAA;AACH,QAAA,OAAO,UAAW,CAAA,KAAA,KAAU,eAAkB,GAAA,eAAA,GAAkB,UAAW,CAAA,KAAA;AAAA;AAC7E,KACD,CAAA;AAED,IAAA,SAAS,WAAc,GAAA;AACrB,MAAA,IAAI,CAACD,wBAAA,CAAU,oBAAsB,EAAA,UAAA,CAAW,KAAK,CAAG,EAAA;AACtD,QAAA,MAAM,kBAAkB,CAAC,GAAI,qBAAqB,UAAW,CAAA,KAAA,IAAS,EAAG,CAAA;AACzE,QAAA,IAAIC,8CAAoB,CAAA,eAAA,EAAiB,KAAM,CAAA,KAAK,CAAG,EAAA;AACrD,UAAM,MAAA,KAAA,GAAQ,gBAAgB,SAAU,CAAA,CAAA,CAAA,KAAKC,cAAQ,CAAG,EAAA,KAAA,CAAM,KAAK,CAAC,CAAA;AACpE,UAAgB,eAAA,CAAA,MAAA,CAAO,OAAO,CAAC,CAAA;AAAA,SAE5B,MAAA;AACH,UAAgB,eAAA,CAAA,IAAA,CAAK,MAAM,KAAK,CAAA;AAAA;AAElC,QAAA,oBAAA,CAAqB,WAAW,KAAQ,GAAA,eAAA;AAAA,OAErC,MAAA;AACH,QAAA,UAAA,CAAW,QAAQC,8BAAgB,CAAA,UAAA,CAAW,KAAK,CAAI,GAAA,IAAA,GAAO,CAAC,UAAW,CAAA,KAAA;AAAA;AAC5E;AAGF,IAAM,MAAA,aAAA,GAAgBC,qCAAe,cAAc,CAAA;AACnD,IAAA,MAAM,SAAY,GAAAL,YAAA,CAAS,MAAM,KAAA,CAAM,MAAM,cAAe,CAAA,KAAA,GACvD,QAAS,CAAA,aAAA,CAAc,SAAS,KAAM,CAAA,EAAE,CAAI,EAAA,CAAA,CAAA,EAAwB,YACrE,MAAS,CAAA;AAEb,IAA2B,0BAAA,CAAA;AAAA,MACzB,QAAA;AAAA,MACA,KAAO,EAAA;AAAA,KACR,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,6 +1,6 @@
1
1
  import { defineComponent, computed, createBlock, openBlock, resolveDynamicComponent, unref, mergeProps, withKeys, withModifiers, withCtx, renderSlot, createCommentVNode } from 'vue';
2
- import { g as getState, i as isIndeterminate } from './utils.js';
3
2
  import { isEqual } from 'ohash';
3
+ import { g as getState, i as isIndeterminate } from './utils.js';
4
4
  import { useVModel } from '@vueuse/core';
5
5
  import { c as createContext } from '../shared/createContext.js';
6
6
  import { u as useForwardExpose } from '../shared/useForwardExpose.js';
@@ -1 +1 @@
1
- {"version":3,"file":"CheckboxRoot.js","sources":["../../src/Checkbox/CheckboxRoot.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { PrimitiveProps } from '@/Primitive'\nimport type { Ref } from 'vue'\nimport { createContext, isNullish, isValueEqualOrExist, useFormControl, useForwardExpose } from '@/shared'\nimport type { CheckedState } from './utils'\nimport type { AcceptableValue, FormFieldProps } from '@/shared/types'\nimport { useVModel } from '@vueuse/core'\nimport { injectCheckboxGroupRootContext } from './CheckboxGroupRoot.vue'\n\nexport interface CheckboxRootProps extends PrimitiveProps, FormFieldProps {\n /** The value of the checkbox when it is initially rendered. Use when you do not need to control its value. */\n defaultValue?: boolean | 'indeterminate'\n /** The controlled value of the checkbox. Can be binded with v-model. */\n modelValue?: boolean | 'indeterminate' | null\n /** When `true`, prevents the user from interacting with the checkbox */\n disabled?: boolean\n /**\n * The value given as data when submitted with a `name`.\n * @defaultValue \"on\"\n */\n value?: AcceptableValue\n /** Id of the element */\n id?: string\n}\n\nexport type CheckboxRootEmits = {\n /** Event handler called when the value of the checkbox changes. */\n 'update:modelValue': [value: boolean | 'indeterminate']\n}\n\ninterface CheckboxRootContext {\n disabled: Ref<boolean>\n state: Ref<CheckedState>\n}\n\nexport const [injectCheckboxRootContext, provideCheckboxRootContext]\n = createContext<CheckboxRootContext>('CheckboxRoot')\n</script>\n\n<script setup lang=\"ts\">\nimport { computed } from 'vue'\nimport { Primitive } from '@/Primitive'\nimport { RovingFocusItem } from '@/RovingFocus'\nimport { getState, isIndeterminate } from './utils'\nimport { VisuallyHiddenInput } from '@/VisuallyHidden'\nimport { isEqual } from 'ohash'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst props = withDefaults(defineProps<CheckboxRootProps>(), {\n modelValue: undefined,\n value: 'on',\n as: 'button',\n})\nconst emits = defineEmits<CheckboxRootEmits>()\n\ndefineSlots<{\n default: (props: {\n /** Current value */\n modelValue: typeof modelValue.value\n /** Current state */\n state: typeof checkboxState.value\n }) => any\n}>()\n\nconst { forwardRef, currentElement } = useForwardExpose()\n\nconst checkboxGroupContext = injectCheckboxGroupRootContext(null)\n\nconst modelValue = useVModel(props, 'modelValue', emits, {\n defaultValue: props.defaultValue,\n passive: (props.modelValue === undefined) as false,\n}) as Ref<CheckedState>\n\nconst disabled = computed(() => checkboxGroupContext?.disabled.value || props.disabled)\n\nconst checkboxState = computed<CheckedState>(() => {\n if (!isNullish(checkboxGroupContext?.modelValue.value)) {\n return isValueEqualOrExist(checkboxGroupContext.modelValue.value, props.value)\n }\n else {\n return modelValue.value === 'indeterminate' ? 'indeterminate' : modelValue.value\n }\n})\n\nfunction handleClick() {\n if (!isNullish(checkboxGroupContext?.modelValue.value)) {\n const modelValueArray = [...(checkboxGroupContext.modelValue.value || [])]\n if (isValueEqualOrExist(modelValueArray, props.value)) {\n const index = modelValueArray.findIndex(i => isEqual(i, props.value))\n modelValueArray.splice(index, 1)\n }\n else {\n modelValueArray.push(props.value)\n }\n checkboxGroupContext.modelValue.value = modelValueArray\n }\n else {\n modelValue.value = isIndeterminate(modelValue.value) ? true : !modelValue.value\n }\n}\n\nconst isFormControl = useFormControl(currentElement)\nconst ariaLabel = computed(() => props.id && currentElement.value\n ? (document.querySelector(`[for=\"${props.id}\"]`) as HTMLLabelElement)?.innerText\n : undefined)\n\nprovideCheckboxRootContext({\n disabled,\n state: checkboxState,\n})\n</script>\n\n<template>\n <component\n v-bind=\"$attrs\"\n :is=\"checkboxGroupContext?.rovingFocus.value ? RovingFocusItem : Primitive\"\n :id=\"id\"\n :ref=\"forwardRef\"\n role=\"checkbox\"\n :as-child=\"asChild\"\n :as=\"as\"\n :type=\"as === 'button' ? 'button' : undefined\"\n :aria-checked=\"isIndeterminate(checkboxState) ? 'mixed' : checkboxState\"\n :aria-required=\"required\"\n :aria-label=\"$attrs['aria-label'] || ariaLabel\"\n :data-state=\"getState(checkboxState)\"\n :data-disabled=\"disabled ? '' : undefined\"\n :disabled=\"disabled\"\n :focusable=\"checkboxGroupContext?.rovingFocus.value ? !disabled : undefined\"\n @keydown.enter.prevent=\"() => {\n // According to WAI ARIA, Checkboxes don't activate on enter keypress\n }\"\n @click=\"handleClick\"\n >\n <slot\n :model-value=\"modelValue\"\n :state=\"checkboxState\"\n />\n\n <VisuallyHiddenInput\n v-if=\"isFormControl && name && !checkboxGroupContext\"\n type=\"checkbox\"\n :checked=\"!!checkboxState\"\n :name=\"name\"\n :value=\"value\"\n :disabled=\"disabled\"\n :required=\"required\"\n />\n </component>\n</template>\n"],"names":[],"mappings":";;;;;;;;;;;;;;AAmCO,MAAM,CAAC,yBAAA,EAA2B,0BAA0B,CAAA,GAC/D,cAAmC,cAAc;;;;;;;;;;;;;;;;;;;AAerD,IAAA,MAAM,KAAQ,GAAA,OAAA;AAKd,IAAA,MAAM,KAAQ,GAAA,MAAA;AAWd,IAAA,MAAM,EAAE,UAAA,EAAY,cAAe,EAAA,GAAI,gBAAiB,EAAA;AAExD,IAAM,MAAA,oBAAA,GAAuB,+BAA+B,IAAI,CAAA;AAEhE,IAAA,MAAM,UAAa,GAAA,SAAA,CAAU,KAAO,EAAA,YAAA,EAAc,KAAO,EAAA;AAAA,MACvD,cAAc,KAAM,CAAA,YAAA;AAAA,MACpB,OAAA,EAAU,MAAM,UAAe,KAAA;AAAA,KAChC,CAAA;AAED,IAAA,MAAM,WAAW,QAAS,CAAA,MAAM,sBAAsB,QAAS,CAAA,KAAA,IAAS,MAAM,QAAQ,CAAA;AAEtF,IAAM,MAAA,aAAA,GAAgB,SAAuB,MAAM;AACjD,MAAA,IAAI,CAAC,SAAA,CAAU,oBAAsB,EAAA,UAAA,CAAW,KAAK,CAAG,EAAA;AACtD,QAAA,OAAO,mBAAoB,CAAA,oBAAA,CAAqB,UAAW,CAAA,KAAA,EAAO,MAAM,KAAK,CAAA;AAAA,OAE1E,MAAA;AACH,QAAA,OAAO,UAAW,CAAA,KAAA,KAAU,eAAkB,GAAA,eAAA,GAAkB,UAAW,CAAA,KAAA;AAAA;AAC7E,KACD,CAAA;AAED,IAAA,SAAS,WAAc,GAAA;AACrB,MAAA,IAAI,CAAC,SAAA,CAAU,oBAAsB,EAAA,UAAA,CAAW,KAAK,CAAG,EAAA;AACtD,QAAA,MAAM,kBAAkB,CAAC,GAAI,qBAAqB,UAAW,CAAA,KAAA,IAAS,EAAG,CAAA;AACzE,QAAA,IAAI,mBAAoB,CAAA,eAAA,EAAiB,KAAM,CAAA,KAAK,CAAG,EAAA;AACrD,UAAM,MAAA,KAAA,GAAQ,gBAAgB,SAAU,CAAA,CAAA,CAAA,KAAK,QAAQ,CAAG,EAAA,KAAA,CAAM,KAAK,CAAC,CAAA;AACpE,UAAgB,eAAA,CAAA,MAAA,CAAO,OAAO,CAAC,CAAA;AAAA,SAE5B,MAAA;AACH,UAAgB,eAAA,CAAA,IAAA,CAAK,MAAM,KAAK,CAAA;AAAA;AAElC,QAAA,oBAAA,CAAqB,WAAW,KAAQ,GAAA,eAAA;AAAA,OAErC,MAAA;AACH,QAAA,UAAA,CAAW,QAAQ,eAAgB,CAAA,UAAA,CAAW,KAAK,CAAI,GAAA,IAAA,GAAO,CAAC,UAAW,CAAA,KAAA;AAAA;AAC5E;AAGF,IAAM,MAAA,aAAA,GAAgB,eAAe,cAAc,CAAA;AACnD,IAAA,MAAM,SAAY,GAAA,QAAA,CAAS,MAAM,KAAA,CAAM,MAAM,cAAe,CAAA,KAAA,GACvD,QAAS,CAAA,aAAA,CAAc,SAAS,KAAM,CAAA,EAAE,CAAI,EAAA,CAAA,CAAA,EAAwB,YACrE,MAAS,CAAA;AAEb,IAA2B,0BAAA,CAAA;AAAA,MACzB,QAAA;AAAA,MACA,KAAO,EAAA;AAAA,KACR,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"CheckboxRoot.js","sources":["../../src/Checkbox/CheckboxRoot.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { Ref } from 'vue'\nimport type { CheckedState } from './utils'\nimport type { PrimitiveProps } from '@/Primitive'\nimport type { AcceptableValue, FormFieldProps } from '@/shared/types'\nimport { useVModel } from '@vueuse/core'\nimport { createContext, isNullish, isValueEqualOrExist, useFormControl, useForwardExpose } from '@/shared'\nimport { injectCheckboxGroupRootContext } from './CheckboxGroupRoot.vue'\n\nexport interface CheckboxRootProps extends PrimitiveProps, FormFieldProps {\n /** The value of the checkbox when it is initially rendered. Use when you do not need to control its value. */\n defaultValue?: boolean | 'indeterminate'\n /** The controlled value of the checkbox. Can be binded with v-model. */\n modelValue?: boolean | 'indeterminate' | null\n /** When `true`, prevents the user from interacting with the checkbox */\n disabled?: boolean\n /**\n * The value given as data when submitted with a `name`.\n * @defaultValue \"on\"\n */\n value?: AcceptableValue\n /** Id of the element */\n id?: string\n}\n\nexport type CheckboxRootEmits = {\n /** Event handler called when the value of the checkbox changes. */\n 'update:modelValue': [value: boolean | 'indeterminate']\n}\n\ninterface CheckboxRootContext {\n disabled: Ref<boolean>\n state: Ref<CheckedState>\n}\n\nexport const [injectCheckboxRootContext, provideCheckboxRootContext]\n = createContext<CheckboxRootContext>('CheckboxRoot')\n</script>\n\n<script setup lang=\"ts\">\nimport { isEqual } from 'ohash'\nimport { computed } from 'vue'\nimport { Primitive } from '@/Primitive'\nimport { RovingFocusItem } from '@/RovingFocus'\nimport { VisuallyHiddenInput } from '@/VisuallyHidden'\nimport { getState, isIndeterminate } from './utils'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst props = withDefaults(defineProps<CheckboxRootProps>(), {\n modelValue: undefined,\n value: 'on',\n as: 'button',\n})\nconst emits = defineEmits<CheckboxRootEmits>()\n\ndefineSlots<{\n default?: (props: {\n /** Current value */\n modelValue: typeof modelValue.value\n /** Current state */\n state: typeof checkboxState.value\n }) => any\n}>()\n\nconst { forwardRef, currentElement } = useForwardExpose()\n\nconst checkboxGroupContext = injectCheckboxGroupRootContext(null)\n\nconst modelValue = useVModel(props, 'modelValue', emits, {\n defaultValue: props.defaultValue,\n passive: (props.modelValue === undefined) as false,\n}) as Ref<CheckedState>\n\nconst disabled = computed(() => checkboxGroupContext?.disabled.value || props.disabled)\n\nconst checkboxState = computed<CheckedState>(() => {\n if (!isNullish(checkboxGroupContext?.modelValue.value)) {\n return isValueEqualOrExist(checkboxGroupContext.modelValue.value, props.value)\n }\n else {\n return modelValue.value === 'indeterminate' ? 'indeterminate' : modelValue.value\n }\n})\n\nfunction handleClick() {\n if (!isNullish(checkboxGroupContext?.modelValue.value)) {\n const modelValueArray = [...(checkboxGroupContext.modelValue.value || [])]\n if (isValueEqualOrExist(modelValueArray, props.value)) {\n const index = modelValueArray.findIndex(i => isEqual(i, props.value))\n modelValueArray.splice(index, 1)\n }\n else {\n modelValueArray.push(props.value)\n }\n checkboxGroupContext.modelValue.value = modelValueArray\n }\n else {\n modelValue.value = isIndeterminate(modelValue.value) ? true : !modelValue.value\n }\n}\n\nconst isFormControl = useFormControl(currentElement)\nconst ariaLabel = computed(() => props.id && currentElement.value\n ? (document.querySelector(`[for=\"${props.id}\"]`) as HTMLLabelElement)?.innerText\n : undefined)\n\nprovideCheckboxRootContext({\n disabled,\n state: checkboxState,\n})\n</script>\n\n<template>\n <component\n v-bind=\"$attrs\"\n :is=\"checkboxGroupContext?.rovingFocus.value ? RovingFocusItem : Primitive\"\n :id=\"id\"\n :ref=\"forwardRef\"\n role=\"checkbox\"\n :as-child=\"asChild\"\n :as=\"as\"\n :type=\"as === 'button' ? 'button' : undefined\"\n :aria-checked=\"isIndeterminate(checkboxState) ? 'mixed' : checkboxState\"\n :aria-required=\"required\"\n :aria-label=\"$attrs['aria-label'] || ariaLabel\"\n :data-state=\"getState(checkboxState)\"\n :data-disabled=\"disabled ? '' : undefined\"\n :disabled=\"disabled\"\n :focusable=\"checkboxGroupContext?.rovingFocus.value ? !disabled : undefined\"\n @keydown.enter.prevent=\"() => {\n // According to WAI ARIA, Checkboxes don't activate on enter keypress\n }\"\n @click=\"handleClick\"\n >\n <slot\n :model-value=\"modelValue\"\n :state=\"checkboxState\"\n />\n\n <VisuallyHiddenInput\n v-if=\"isFormControl && name && !checkboxGroupContext\"\n type=\"checkbox\"\n :checked=\"!!checkboxState\"\n :name=\"name\"\n :value=\"value\"\n :disabled=\"disabled\"\n :required=\"required\"\n />\n </component>\n</template>\n"],"names":[],"mappings":";;;;;;;;;;;;;;AAmCO,MAAM,CAAC,yBAAA,EAA2B,0BAA0B,CAAA,GAC/D,cAAmC,cAAc;;;;;;;;;;;;;;;;;;;AAerD,IAAA,MAAM,KAAQ,GAAA,OAAA;AAKd,IAAA,MAAM,KAAQ,GAAA,MAAA;AAWd,IAAA,MAAM,EAAE,UAAA,EAAY,cAAe,EAAA,GAAI,gBAAiB,EAAA;AAExD,IAAM,MAAA,oBAAA,GAAuB,+BAA+B,IAAI,CAAA;AAEhE,IAAA,MAAM,UAAa,GAAA,SAAA,CAAU,KAAO,EAAA,YAAA,EAAc,KAAO,EAAA;AAAA,MACvD,cAAc,KAAM,CAAA,YAAA;AAAA,MACpB,OAAA,EAAU,MAAM,UAAe,KAAA;AAAA,KAChC,CAAA;AAED,IAAA,MAAM,WAAW,QAAS,CAAA,MAAM,sBAAsB,QAAS,CAAA,KAAA,IAAS,MAAM,QAAQ,CAAA;AAEtF,IAAM,MAAA,aAAA,GAAgB,SAAuB,MAAM;AACjD,MAAA,IAAI,CAAC,SAAA,CAAU,oBAAsB,EAAA,UAAA,CAAW,KAAK,CAAG,EAAA;AACtD,QAAA,OAAO,mBAAoB,CAAA,oBAAA,CAAqB,UAAW,CAAA,KAAA,EAAO,MAAM,KAAK,CAAA;AAAA,OAE1E,MAAA;AACH,QAAA,OAAO,UAAW,CAAA,KAAA,KAAU,eAAkB,GAAA,eAAA,GAAkB,UAAW,CAAA,KAAA;AAAA;AAC7E,KACD,CAAA;AAED,IAAA,SAAS,WAAc,GAAA;AACrB,MAAA,IAAI,CAAC,SAAA,CAAU,oBAAsB,EAAA,UAAA,CAAW,KAAK,CAAG,EAAA;AACtD,QAAA,MAAM,kBAAkB,CAAC,GAAI,qBAAqB,UAAW,CAAA,KAAA,IAAS,EAAG,CAAA;AACzE,QAAA,IAAI,mBAAoB,CAAA,eAAA,EAAiB,KAAM,CAAA,KAAK,CAAG,EAAA;AACrD,UAAM,MAAA,KAAA,GAAQ,gBAAgB,SAAU,CAAA,CAAA,CAAA,KAAK,QAAQ,CAAG,EAAA,KAAA,CAAM,KAAK,CAAC,CAAA;AACpE,UAAgB,eAAA,CAAA,MAAA,CAAO,OAAO,CAAC,CAAA;AAAA,SAE5B,MAAA;AACH,UAAgB,eAAA,CAAA,IAAA,CAAK,MAAM,KAAK,CAAA;AAAA;AAElC,QAAA,oBAAA,CAAqB,WAAW,KAAQ,GAAA,eAAA;AAAA,OAErC,MAAA;AACH,QAAA,UAAA,CAAW,QAAQ,eAAgB,CAAA,UAAA,CAAW,KAAK,CAAI,GAAA,IAAA,GAAO,CAAC,UAAW,CAAA,KAAA;AAAA;AAC5E;AAGF,IAAM,MAAA,aAAA,GAAgB,eAAe,cAAc,CAAA;AACnD,IAAA,MAAM,SAAY,GAAA,QAAA,CAAS,MAAM,KAAA,CAAM,MAAM,cAAe,CAAA,KAAA,GACvD,QAAS,CAAA,aAAA,CAAc,SAAS,KAAM,CAAA,EAAE,CAAI,EAAA,CAAA,CAAA,EAAwB,YACrE,MAAS,CAAA;AAEb,IAA2B,0BAAA,CAAA;AAAA,MACzB,QAAA;AAAA,MACA,KAAO,EAAA;AAAA,KACR,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -2,11 +2,11 @@
2
2
 
3
3
  const vue = require('vue');
4
4
  const core = require('@vueuse/core');
5
+ const Collapsible_CollapsibleRoot = require('./CollapsibleRoot.cjs');
5
6
  const shared_useId = require('../shared/useId.cjs');
6
7
  const shared_useForwardExpose = require('../shared/useForwardExpose.cjs');
7
8
  const Presence_Presence = require('../Presence/Presence.cjs');
8
9
  const Primitive_Primitive = require('../Primitive/Primitive.cjs');
9
- const Collapsible_CollapsibleRoot = require('./CollapsibleRoot.cjs');
10
10
 
11
11
  const _sfc_main = /* @__PURE__ */ vue.defineComponent({
12
12
  ...{
@@ -1 +1 @@
1
- {"version":3,"file":"CollapsibleContent.cjs","sources":["../../src/Collapsible/CollapsibleContent.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { PrimitiveProps } from '@/Primitive'\n\nexport interface CollapsibleContentProps extends PrimitiveProps {\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\nexport type CollapsibleContentEmits = {\n contentFound: [void]\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { computed, nextTick, onMounted, ref, watch } from 'vue'\nimport { injectCollapsibleRootContext } from './CollapsibleRoot.vue'\nimport {\n Primitive,\n} from '@/Primitive'\nimport { Presence } from '@/Presence'\nimport { useForwardExpose, useId } from '@/shared'\nimport { useEventListener } from '@vueuse/core'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst props = defineProps<CollapsibleContentProps>()\nconst emits = defineEmits<CollapsibleContentEmits>()\n\nconst rootContext = injectCollapsibleRootContext()\nrootContext.contentId ||= useId(undefined, 'reka-collapsible-content')\n\nconst presentRef = ref<InstanceType<typeof Presence>>()\nconst { forwardRef, currentElement } = useForwardExpose()\n\nconst width = ref(0)\nconst height = ref(0)\n\n// when opening we want it to immediately open to retrieve dimensions\n// when closing we delay `present` to retrieve dimensions before closing\nconst isOpen = computed(() => rootContext.open.value)\nconst isMountAnimationPrevented = ref(isOpen.value)\nconst currentStyle = ref<Record<string, string>>()\n\nwatch(\n () => [isOpen.value, presentRef.value?.present],\n async () => {\n await nextTick()\n const node = currentElement.value\n if (!node)\n return\n currentStyle.value = currentStyle.value || {\n transitionDuration: node.style.transitionDuration,\n animationName: node.style.animationName,\n }\n // block any animations/transitions so the element renders at its full dimensions\n node.style.transitionDuration = '0s'\n node.style.animationName = 'none'\n\n // get width and height from full dimensions\n const rect = node.getBoundingClientRect()\n height.value = rect.height\n width.value = rect.width\n\n // kick off any animations/transitions that were originally set up if it isn't the initial mount\n if (!isMountAnimationPrevented.value) {\n node.style.transitionDuration = currentStyle.value.transitionDuration\n node.style.animationName = currentStyle.value.animationName\n }\n },\n {\n immediate: true,\n },\n)\n\nconst skipAnimation = computed(() => isMountAnimationPrevented.value && rootContext.open.value)\n\nonMounted(() => {\n requestAnimationFrame(() => {\n isMountAnimationPrevented.value = false\n })\n})\n\nuseEventListener(currentElement, 'beforematch', (ev) => {\n requestAnimationFrame(() => {\n rootContext.onOpenToggle()\n emits('contentFound')\n })\n})\n</script>\n\n<template>\n <Presence\n v-slot=\"{ present }\"\n ref=\"presentRef\"\n :present=\"forceMount || rootContext.open.value\"\n :force-mount=\"true\"\n >\n <Primitive\n v-bind=\"$attrs\"\n :id=\"rootContext.contentId\"\n :ref=\"forwardRef\"\n :as-child=\"props.asChild\"\n :as=\"as\"\n :hidden=\"!present ? rootContext.unmountOnHide.value ? '' : 'until-found' : undefined\"\n :data-state=\"skipAnimation ? undefined : rootContext.open.value ? 'open' : 'closed'\"\n :data-disabled=\"rootContext.disabled?.value ? '' : undefined\"\n :style=\"{\n [`--reka-collapsible-content-height`]: `${height}px`,\n [`--reka-collapsible-content-width`]: `${width}px`,\n }\"\n >\n <slot v-if=\"rootContext.unmountOnHide.value ? present : true\" />\n </Primitive>\n </Presence>\n</template>\n"],"names":["injectCollapsibleRootContext","useId","ref","useForwardExpose","computed","watch","nextTick","onMounted","useEventListener"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AA8BA,IAAA,MAAM,KAAQ,GAAA,OAAA;AACd,IAAA,MAAM,KAAQ,GAAA,MAAA;AAEd,IAAA,MAAM,cAAcA,wDAA6B,EAAA;AACjD,IAAY,WAAA,CAAA,SAAA,KAAcC,kBAAM,CAAA,MAAA,EAAW,0BAA0B,CAAA;AAErE,IAAA,MAAM,aAAaC,OAAmC,EAAA;AACtD,IAAA,MAAM,EAAE,UAAA,EAAY,cAAe,EAAA,GAAIC,wCAAiB,EAAA;AAExD,IAAM,MAAA,KAAA,GAAQD,QAAI,CAAC,CAAA;AACnB,IAAM,MAAA,MAAA,GAASA,QAAI,CAAC,CAAA;AAIpB,IAAA,MAAM,MAAS,GAAAE,YAAA,CAAS,MAAM,WAAA,CAAY,KAAK,KAAK,CAAA;AACpD,IAAM,MAAA,yBAAA,GAA4BF,OAAI,CAAA,MAAA,CAAO,KAAK,CAAA;AAClD,IAAA,MAAM,eAAeA,OAA4B,EAAA;AAEjD,IAAAG,SAAA;AAAA,MACE,MAAM,CAAC,MAAA,CAAO,KAAO,EAAA,UAAA,CAAW,OAAO,OAAO,CAAA;AAAA,MAC9C,YAAY;AACV,QAAA,MAAMC,YAAS,EAAA;AACf,QAAA,MAAM,OAAO,cAAe,CAAA,KAAA;AAC5B,QAAA,IAAI,CAAC,IAAA;AACH,UAAA;AACF,QAAa,YAAA,CAAA,KAAA,GAAQ,aAAa,KAAS,IAAA;AAAA,UACzC,kBAAA,EAAoB,KAAK,KAAM,CAAA,kBAAA;AAAA,UAC/B,aAAA,EAAe,KAAK,KAAM,CAAA;AAAA,SAC5B;AAEA,QAAA,IAAA,CAAK,MAAM,kBAAqB,GAAA,IAAA;AAChC,QAAA,IAAA,CAAK,MAAM,aAAgB,GAAA,MAAA;AAG3B,QAAM,MAAA,IAAA,GAAO,KAAK,qBAAsB,EAAA;AACxC,QAAA,MAAA,CAAO,QAAQ,IAAK,CAAA,MAAA;AACpB,QAAA,KAAA,CAAM,QAAQ,IAAK,CAAA,KAAA;AAGnB,QAAI,IAAA,CAAC,0BAA0B,KAAO,EAAA;AACpC,UAAK,IAAA,CAAA,KAAA,CAAM,kBAAqB,GAAA,YAAA,CAAa,KAAM,CAAA,kBAAA;AACnD,UAAK,IAAA,CAAA,KAAA,CAAM,aAAgB,GAAA,YAAA,CAAa,KAAM,CAAA,aAAA;AAAA;AAChD,OACF;AAAA,MACA;AAAA,QACE,SAAW,EAAA;AAAA;AACb,KACF;AAEA,IAAA,MAAM,gBAAgBF,YAAS,CAAA,MAAM,0BAA0B,KAAS,IAAA,WAAA,CAAY,KAAK,KAAK,CAAA;AAE9F,IAAAG,aAAA,CAAU,MAAM;AACd,MAAA,qBAAA,CAAsB,MAAM;AAC1B,QAAA,yBAAA,CAA0B,KAAQ,GAAA,KAAA;AAAA,OACnC,CAAA;AAAA,KACF,CAAA;AAED,IAAiBC,qBAAA,CAAA,cAAA,EAAgB,aAAe,EAAA,CAAC,EAAO,KAAA;AACtD,MAAA,qBAAA,CAAsB,MAAM;AAC1B,QAAA,WAAA,CAAY,YAAa,EAAA;AACzB,QAAA,KAAA,CAAM,cAAc,CAAA;AAAA,OACrB,CAAA;AAAA,KACF,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"CollapsibleContent.cjs","sources":["../../src/Collapsible/CollapsibleContent.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { PrimitiveProps } from '@/Primitive'\n\nexport interface CollapsibleContentProps extends PrimitiveProps {\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\nexport type CollapsibleContentEmits = {\n contentFound: [void]\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { useEventListener } from '@vueuse/core'\nimport { computed, nextTick, onMounted, ref, watch } from 'vue'\nimport { Presence } from '@/Presence'\nimport {\n Primitive,\n} from '@/Primitive'\nimport { useForwardExpose, useId } from '@/shared'\nimport { injectCollapsibleRootContext } from './CollapsibleRoot.vue'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst props = defineProps<CollapsibleContentProps>()\nconst emits = defineEmits<CollapsibleContentEmits>()\n\nconst rootContext = injectCollapsibleRootContext()\nrootContext.contentId ||= useId(undefined, 'reka-collapsible-content')\n\nconst presentRef = ref<InstanceType<typeof Presence>>()\nconst { forwardRef, currentElement } = useForwardExpose()\n\nconst width = ref(0)\nconst height = ref(0)\n\n// when opening we want it to immediately open to retrieve dimensions\n// when closing we delay `present` to retrieve dimensions before closing\nconst isOpen = computed(() => rootContext.open.value)\nconst isMountAnimationPrevented = ref(isOpen.value)\nconst currentStyle = ref<Record<string, string>>()\n\nwatch(\n () => [isOpen.value, presentRef.value?.present],\n async () => {\n await nextTick()\n const node = currentElement.value\n if (!node)\n return\n currentStyle.value = currentStyle.value || {\n transitionDuration: node.style.transitionDuration,\n animationName: node.style.animationName,\n }\n // block any animations/transitions so the element renders at its full dimensions\n node.style.transitionDuration = '0s'\n node.style.animationName = 'none'\n\n // get width and height from full dimensions\n const rect = node.getBoundingClientRect()\n height.value = rect.height\n width.value = rect.width\n\n // kick off any animations/transitions that were originally set up if it isn't the initial mount\n if (!isMountAnimationPrevented.value) {\n node.style.transitionDuration = currentStyle.value.transitionDuration\n node.style.animationName = currentStyle.value.animationName\n }\n },\n {\n immediate: true,\n },\n)\n\nconst skipAnimation = computed(() => isMountAnimationPrevented.value && rootContext.open.value)\n\nonMounted(() => {\n requestAnimationFrame(() => {\n isMountAnimationPrevented.value = false\n })\n})\n\nuseEventListener(currentElement, 'beforematch', (ev) => {\n requestAnimationFrame(() => {\n rootContext.onOpenToggle()\n emits('contentFound')\n })\n})\n</script>\n\n<template>\n <Presence\n v-slot=\"{ present }\"\n ref=\"presentRef\"\n :present=\"forceMount || rootContext.open.value\"\n :force-mount=\"true\"\n >\n <Primitive\n v-bind=\"$attrs\"\n :id=\"rootContext.contentId\"\n :ref=\"forwardRef\"\n :as-child=\"props.asChild\"\n :as=\"as\"\n :hidden=\"!present ? rootContext.unmountOnHide.value ? '' : 'until-found' : undefined\"\n :data-state=\"skipAnimation ? undefined : rootContext.open.value ? 'open' : 'closed'\"\n :data-disabled=\"rootContext.disabled?.value ? '' : undefined\"\n :style=\"{\n [`--reka-collapsible-content-height`]: `${height}px`,\n [`--reka-collapsible-content-width`]: `${width}px`,\n }\"\n >\n <slot v-if=\"rootContext.unmountOnHide.value ? present : true\" />\n </Primitive>\n </Presence>\n</template>\n"],"names":["injectCollapsibleRootContext","useId","ref","useForwardExpose","computed","watch","nextTick","onMounted","useEventListener"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AA8BA,IAAA,MAAM,KAAQ,GAAA,OAAA;AACd,IAAA,MAAM,KAAQ,GAAA,MAAA;AAEd,IAAA,MAAM,cAAcA,wDAA6B,EAAA;AACjD,IAAY,WAAA,CAAA,SAAA,KAAcC,kBAAM,CAAA,MAAA,EAAW,0BAA0B,CAAA;AAErE,IAAA,MAAM,aAAaC,OAAmC,EAAA;AACtD,IAAA,MAAM,EAAE,UAAA,EAAY,cAAe,EAAA,GAAIC,wCAAiB,EAAA;AAExD,IAAM,MAAA,KAAA,GAAQD,QAAI,CAAC,CAAA;AACnB,IAAM,MAAA,MAAA,GAASA,QAAI,CAAC,CAAA;AAIpB,IAAA,MAAM,MAAS,GAAAE,YAAA,CAAS,MAAM,WAAA,CAAY,KAAK,KAAK,CAAA;AACpD,IAAM,MAAA,yBAAA,GAA4BF,OAAI,CAAA,MAAA,CAAO,KAAK,CAAA;AAClD,IAAA,MAAM,eAAeA,OAA4B,EAAA;AAEjD,IAAAG,SAAA;AAAA,MACE,MAAM,CAAC,MAAA,CAAO,KAAO,EAAA,UAAA,CAAW,OAAO,OAAO,CAAA;AAAA,MAC9C,YAAY;AACV,QAAA,MAAMC,YAAS,EAAA;AACf,QAAA,MAAM,OAAO,cAAe,CAAA,KAAA;AAC5B,QAAA,IAAI,CAAC,IAAA;AACH,UAAA;AACF,QAAa,YAAA,CAAA,KAAA,GAAQ,aAAa,KAAS,IAAA;AAAA,UACzC,kBAAA,EAAoB,KAAK,KAAM,CAAA,kBAAA;AAAA,UAC/B,aAAA,EAAe,KAAK,KAAM,CAAA;AAAA,SAC5B;AAEA,QAAA,IAAA,CAAK,MAAM,kBAAqB,GAAA,IAAA;AAChC,QAAA,IAAA,CAAK,MAAM,aAAgB,GAAA,MAAA;AAG3B,QAAM,MAAA,IAAA,GAAO,KAAK,qBAAsB,EAAA;AACxC,QAAA,MAAA,CAAO,QAAQ,IAAK,CAAA,MAAA;AACpB,QAAA,KAAA,CAAM,QAAQ,IAAK,CAAA,KAAA;AAGnB,QAAI,IAAA,CAAC,0BAA0B,KAAO,EAAA;AACpC,UAAK,IAAA,CAAA,KAAA,CAAM,kBAAqB,GAAA,YAAA,CAAa,KAAM,CAAA,kBAAA;AACnD,UAAK,IAAA,CAAA,KAAA,CAAM,aAAgB,GAAA,YAAA,CAAa,KAAM,CAAA,aAAA;AAAA;AAChD,OACF;AAAA,MACA;AAAA,QACE,SAAW,EAAA;AAAA;AACb,KACF;AAEA,IAAA,MAAM,gBAAgBF,YAAS,CAAA,MAAM,0BAA0B,KAAS,IAAA,WAAA,CAAY,KAAK,KAAK,CAAA;AAE9F,IAAAG,aAAA,CAAU,MAAM;AACd,MAAA,qBAAA,CAAsB,MAAM;AAC1B,QAAA,yBAAA,CAA0B,KAAQ,GAAA,KAAA;AAAA,OACnC,CAAA;AAAA,KACF,CAAA;AAED,IAAiBC,qBAAA,CAAA,cAAA,EAAgB,aAAe,EAAA,CAAC,EAAO,KAAA;AACtD,MAAA,qBAAA,CAAsB,MAAM;AAC1B,QAAA,WAAA,CAAY,YAAa,EAAA;AACzB,QAAA,KAAA,CAAM,cAAc,CAAA;AAAA,OACrB,CAAA;AAAA,KACF,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}