reka-ui 2.2.0 → 2.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (902) hide show
  1. package/dist/Accordion/AccordionHeader.cjs.map +1 -1
  2. package/dist/Accordion/AccordionHeader.js.map +1 -1
  3. package/dist/Accordion/AccordionItem.cjs.map +1 -1
  4. package/dist/Accordion/AccordionItem.js.map +1 -1
  5. package/dist/Accordion/AccordionRoot.cjs.map +1 -1
  6. package/dist/Accordion/AccordionRoot.js.map +1 -1
  7. package/dist/Accordion/AccordionTrigger.cjs.map +1 -1
  8. package/dist/Accordion/AccordionTrigger.js.map +1 -1
  9. package/dist/AlertDialog/AlertDialogCancel.cjs.map +1 -1
  10. package/dist/AlertDialog/AlertDialogCancel.js.map +1 -1
  11. package/dist/AspectRatio/AspectRatio.cjs.map +1 -1
  12. package/dist/AspectRatio/AspectRatio.js.map +1 -1
  13. package/dist/Avatar/AvatarFallback.cjs +11 -14
  14. package/dist/Avatar/AvatarFallback.cjs.map +1 -1
  15. package/dist/Avatar/AvatarFallback.js +12 -15
  16. package/dist/Avatar/AvatarFallback.js.map +1 -1
  17. package/dist/Avatar/AvatarImage.cjs +3 -2
  18. package/dist/Avatar/AvatarImage.cjs.map +1 -1
  19. package/dist/Avatar/AvatarImage.js +3 -2
  20. package/dist/Avatar/AvatarImage.js.map +1 -1
  21. package/dist/Avatar/AvatarRoot.cjs +1 -1
  22. package/dist/Avatar/AvatarRoot.cjs.map +1 -1
  23. package/dist/Avatar/AvatarRoot.js +1 -1
  24. package/dist/Avatar/AvatarRoot.js.map +1 -1
  25. package/dist/Avatar/utils.cjs +43 -16
  26. package/dist/Avatar/utils.cjs.map +1 -1
  27. package/dist/Avatar/utils.js +44 -17
  28. package/dist/Avatar/utils.js.map +1 -1
  29. package/dist/Calendar/CalendarCell.cjs +3 -3
  30. package/dist/Calendar/CalendarCell.cjs.map +1 -1
  31. package/dist/Calendar/CalendarCell.js +3 -3
  32. package/dist/Calendar/CalendarCell.js.map +1 -1
  33. package/dist/Calendar/CalendarCellTrigger.cjs +5 -1
  34. package/dist/Calendar/CalendarCellTrigger.cjs.map +1 -1
  35. package/dist/Calendar/CalendarCellTrigger.js +5 -1
  36. package/dist/Calendar/CalendarCellTrigger.js.map +1 -1
  37. package/dist/Calendar/CalendarGrid.cjs.map +1 -1
  38. package/dist/Calendar/CalendarGrid.js.map +1 -1
  39. package/dist/Calendar/CalendarHeading.cjs +1 -1
  40. package/dist/Calendar/CalendarHeading.cjs.map +1 -1
  41. package/dist/Calendar/CalendarHeading.js +1 -1
  42. package/dist/Calendar/CalendarHeading.js.map +1 -1
  43. package/dist/Calendar/CalendarNext.cjs.map +1 -1
  44. package/dist/Calendar/CalendarNext.js.map +1 -1
  45. package/dist/Calendar/CalendarPrev.cjs.map +1 -1
  46. package/dist/Calendar/CalendarPrev.js.map +1 -1
  47. package/dist/Calendar/CalendarRoot.cjs +7 -4
  48. package/dist/Calendar/CalendarRoot.cjs.map +1 -1
  49. package/dist/Calendar/CalendarRoot.js +7 -4
  50. package/dist/Calendar/CalendarRoot.js.map +1 -1
  51. package/dist/Calendar/useCalendar.cjs.map +1 -1
  52. package/dist/Calendar/useCalendar.js.map +1 -1
  53. package/dist/Checkbox/CheckboxGroupRoot.cjs +1 -1
  54. package/dist/Checkbox/CheckboxGroupRoot.cjs.map +1 -1
  55. package/dist/Checkbox/CheckboxGroupRoot.js +1 -1
  56. package/dist/Checkbox/CheckboxGroupRoot.js.map +1 -1
  57. package/dist/Checkbox/CheckboxIndicator.cjs.map +1 -1
  58. package/dist/Checkbox/CheckboxIndicator.js.map +1 -1
  59. package/dist/Checkbox/CheckboxRoot.cjs +1 -1
  60. package/dist/Checkbox/CheckboxRoot.cjs.map +1 -1
  61. package/dist/Checkbox/CheckboxRoot.js +1 -1
  62. package/dist/Checkbox/CheckboxRoot.js.map +1 -1
  63. package/dist/Collapsible/CollapsibleContent.cjs +1 -1
  64. package/dist/Collapsible/CollapsibleContent.cjs.map +1 -1
  65. package/dist/Collapsible/CollapsibleContent.js +1 -1
  66. package/dist/Collapsible/CollapsibleContent.js.map +1 -1
  67. package/dist/Collapsible/CollapsibleRoot.cjs +2 -0
  68. package/dist/Collapsible/CollapsibleRoot.cjs.map +1 -1
  69. package/dist/Collapsible/CollapsibleRoot.js +2 -0
  70. package/dist/Collapsible/CollapsibleRoot.js.map +1 -1
  71. package/dist/Collapsible/CollapsibleTrigger.cjs +1 -1
  72. package/dist/Collapsible/CollapsibleTrigger.js +1 -1
  73. package/dist/Collection/Collection.cjs.map +1 -1
  74. package/dist/Collection/Collection.js.map +1 -1
  75. package/dist/Combobox/ComboboxAnchor.cjs.map +1 -1
  76. package/dist/Combobox/ComboboxAnchor.js.map +1 -1
  77. package/dist/Combobox/ComboboxArrow.cjs.map +1 -1
  78. package/dist/Combobox/ComboboxArrow.js.map +1 -1
  79. package/dist/Combobox/ComboboxCancel.cjs +1 -0
  80. package/dist/Combobox/ComboboxCancel.cjs.map +1 -1
  81. package/dist/Combobox/ComboboxCancel.js +1 -0
  82. package/dist/Combobox/ComboboxCancel.js.map +1 -1
  83. package/dist/Combobox/ComboboxContent.cjs.map +1 -1
  84. package/dist/Combobox/ComboboxContent.js.map +1 -1
  85. package/dist/Combobox/ComboboxContentImpl.cjs +2 -2
  86. package/dist/Combobox/ComboboxContentImpl.cjs.map +1 -1
  87. package/dist/Combobox/ComboboxContentImpl.js +2 -2
  88. package/dist/Combobox/ComboboxContentImpl.js.map +1 -1
  89. package/dist/Combobox/ComboboxEmpty.cjs.map +1 -1
  90. package/dist/Combobox/ComboboxEmpty.js.map +1 -1
  91. package/dist/Combobox/ComboboxGroup.cjs +1 -1
  92. package/dist/Combobox/ComboboxGroup.cjs.map +1 -1
  93. package/dist/Combobox/ComboboxGroup.js +1 -1
  94. package/dist/Combobox/ComboboxGroup.js.map +1 -1
  95. package/dist/Combobox/ComboboxInput.cjs +9 -1
  96. package/dist/Combobox/ComboboxInput.cjs.map +1 -1
  97. package/dist/Combobox/ComboboxInput.js +9 -1
  98. package/dist/Combobox/ComboboxInput.js.map +1 -1
  99. package/dist/Combobox/ComboboxItem.cjs +4 -3
  100. package/dist/Combobox/ComboboxItem.cjs.map +1 -1
  101. package/dist/Combobox/ComboboxItem.js +4 -3
  102. package/dist/Combobox/ComboboxItem.js.map +1 -1
  103. package/dist/Combobox/ComboboxLabel.cjs +1 -1
  104. package/dist/Combobox/ComboboxLabel.js +1 -1
  105. package/dist/Combobox/ComboboxRoot.cjs +1 -2
  106. package/dist/Combobox/ComboboxRoot.cjs.map +1 -1
  107. package/dist/Combobox/ComboboxRoot.js +1 -2
  108. package/dist/Combobox/ComboboxRoot.js.map +1 -1
  109. package/dist/Combobox/ComboboxTrigger.cjs.map +1 -1
  110. package/dist/Combobox/ComboboxTrigger.js.map +1 -1
  111. package/dist/Combobox/ComboboxViewport.cjs.map +1 -1
  112. package/dist/Combobox/ComboboxViewport.js.map +1 -1
  113. package/dist/Combobox/ComboboxVirtualizer.cjs.map +1 -1
  114. package/dist/Combobox/ComboboxVirtualizer.js.map +1 -1
  115. package/dist/ConfigProvider/ConfigProvider.cjs.map +1 -1
  116. package/dist/ConfigProvider/ConfigProvider.js.map +1 -1
  117. package/dist/ContextMenu/ContextMenuContent.cjs.map +1 -1
  118. package/dist/ContextMenu/ContextMenuContent.js.map +1 -1
  119. package/dist/ContextMenu/ContextMenuPortal.cjs.map +1 -1
  120. package/dist/ContextMenu/ContextMenuPortal.js.map +1 -1
  121. package/dist/ContextMenu/ContextMenuRoot.cjs.map +1 -1
  122. package/dist/ContextMenu/ContextMenuRoot.js.map +1 -1
  123. package/dist/ContextMenu/ContextMenuSub.cjs.map +1 -1
  124. package/dist/ContextMenu/ContextMenuSub.js.map +1 -1
  125. package/dist/ContextMenu/ContextMenuTrigger.cjs +2 -2
  126. package/dist/ContextMenu/ContextMenuTrigger.cjs.map +1 -1
  127. package/dist/ContextMenu/ContextMenuTrigger.js +2 -2
  128. package/dist/ContextMenu/ContextMenuTrigger.js.map +1 -1
  129. package/dist/DateField/DateFieldInput.cjs +1 -0
  130. package/dist/DateField/DateFieldInput.cjs.map +1 -1
  131. package/dist/DateField/DateFieldInput.js +1 -0
  132. package/dist/DateField/DateFieldInput.js.map +1 -1
  133. package/dist/DateField/DateFieldRoot.cjs +7 -1
  134. package/dist/DateField/DateFieldRoot.cjs.map +1 -1
  135. package/dist/DateField/DateFieldRoot.js +7 -1
  136. package/dist/DateField/DateFieldRoot.js.map +1 -1
  137. package/dist/DatePicker/DatePickerArrow.cjs.map +1 -1
  138. package/dist/DatePicker/DatePickerArrow.js.map +1 -1
  139. package/dist/DatePicker/DatePickerCalendar.cjs.map +1 -1
  140. package/dist/DatePicker/DatePickerCalendar.js.map +1 -1
  141. package/dist/DatePicker/DatePickerCell.cjs.map +1 -1
  142. package/dist/DatePicker/DatePickerCell.js.map +1 -1
  143. package/dist/DatePicker/DatePickerCellTrigger.cjs.map +1 -1
  144. package/dist/DatePicker/DatePickerCellTrigger.js.map +1 -1
  145. package/dist/DatePicker/DatePickerClose.cjs.map +1 -1
  146. package/dist/DatePicker/DatePickerClose.js.map +1 -1
  147. package/dist/DatePicker/DatePickerContent.cjs +8 -3
  148. package/dist/DatePicker/DatePickerContent.cjs.map +1 -1
  149. package/dist/DatePicker/DatePickerContent.js +9 -4
  150. package/dist/DatePicker/DatePickerContent.js.map +1 -1
  151. package/dist/DatePicker/DatePickerGrid.cjs.map +1 -1
  152. package/dist/DatePicker/DatePickerGrid.js.map +1 -1
  153. package/dist/DatePicker/DatePickerGridBody.cjs.map +1 -1
  154. package/dist/DatePicker/DatePickerGridBody.js.map +1 -1
  155. package/dist/DatePicker/DatePickerGridHead.cjs.map +1 -1
  156. package/dist/DatePicker/DatePickerGridHead.js.map +1 -1
  157. package/dist/DatePicker/DatePickerGridRow.cjs.map +1 -1
  158. package/dist/DatePicker/DatePickerGridRow.js.map +1 -1
  159. package/dist/DatePicker/DatePickerHeadCell.cjs.map +1 -1
  160. package/dist/DatePicker/DatePickerHeadCell.js.map +1 -1
  161. package/dist/DatePicker/DatePickerHeader.cjs.map +1 -1
  162. package/dist/DatePicker/DatePickerHeader.js.map +1 -1
  163. package/dist/DatePicker/DatePickerHeading.cjs.map +1 -1
  164. package/dist/DatePicker/DatePickerHeading.js.map +1 -1
  165. package/dist/DatePicker/DatePickerInput.cjs.map +1 -1
  166. package/dist/DatePicker/DatePickerInput.js.map +1 -1
  167. package/dist/DatePicker/DatePickerNext.cjs.map +1 -1
  168. package/dist/DatePicker/DatePickerNext.js.map +1 -1
  169. package/dist/DatePicker/DatePickerPrev.cjs.map +1 -1
  170. package/dist/DatePicker/DatePickerPrev.js.map +1 -1
  171. package/dist/DatePicker/DatePickerRoot.cjs +1 -0
  172. package/dist/DatePicker/DatePickerRoot.cjs.map +1 -1
  173. package/dist/DatePicker/DatePickerRoot.js +1 -0
  174. package/dist/DatePicker/DatePickerRoot.js.map +1 -1
  175. package/dist/DatePicker/DatePickerTrigger.cjs.map +1 -1
  176. package/dist/DatePicker/DatePickerTrigger.js.map +1 -1
  177. package/dist/DateRangeField/DateRangeFieldInput.cjs +1 -0
  178. package/dist/DateRangeField/DateRangeFieldInput.cjs.map +1 -1
  179. package/dist/DateRangeField/DateRangeFieldInput.js +1 -0
  180. package/dist/DateRangeField/DateRangeFieldInput.js.map +1 -1
  181. package/dist/DateRangeField/DateRangeFieldRoot.cjs +13 -9
  182. package/dist/DateRangeField/DateRangeFieldRoot.cjs.map +1 -1
  183. package/dist/DateRangeField/DateRangeFieldRoot.js +13 -9
  184. package/dist/DateRangeField/DateRangeFieldRoot.js.map +1 -1
  185. package/dist/DateRangePicker/DateRangePickerAnchor.cjs.map +1 -1
  186. package/dist/DateRangePicker/DateRangePickerAnchor.js.map +1 -1
  187. package/dist/DateRangePicker/DateRangePickerArrow.cjs.map +1 -1
  188. package/dist/DateRangePicker/DateRangePickerArrow.js.map +1 -1
  189. package/dist/DateRangePicker/DateRangePickerCalendar.cjs +3 -1
  190. package/dist/DateRangePicker/DateRangePickerCalendar.cjs.map +1 -1
  191. package/dist/DateRangePicker/DateRangePickerCalendar.js +3 -1
  192. package/dist/DateRangePicker/DateRangePickerCalendar.js.map +1 -1
  193. package/dist/DateRangePicker/DateRangePickerCell.cjs.map +1 -1
  194. package/dist/DateRangePicker/DateRangePickerCell.js.map +1 -1
  195. package/dist/DateRangePicker/DateRangePickerClose.cjs.map +1 -1
  196. package/dist/DateRangePicker/DateRangePickerClose.js.map +1 -1
  197. package/dist/DateRangePicker/DateRangePickerContent.cjs +8 -3
  198. package/dist/DateRangePicker/DateRangePickerContent.cjs.map +1 -1
  199. package/dist/DateRangePicker/DateRangePickerContent.js +9 -4
  200. package/dist/DateRangePicker/DateRangePickerContent.js.map +1 -1
  201. package/dist/DateRangePicker/DateRangePickerGrid.cjs.map +1 -1
  202. package/dist/DateRangePicker/DateRangePickerGrid.js.map +1 -1
  203. package/dist/DateRangePicker/DateRangePickerGridBody.cjs.map +1 -1
  204. package/dist/DateRangePicker/DateRangePickerGridBody.js.map +1 -1
  205. package/dist/DateRangePicker/DateRangePickerGridHead.cjs.map +1 -1
  206. package/dist/DateRangePicker/DateRangePickerGridHead.js.map +1 -1
  207. package/dist/DateRangePicker/DateRangePickerGridRow.cjs.map +1 -1
  208. package/dist/DateRangePicker/DateRangePickerGridRow.js.map +1 -1
  209. package/dist/DateRangePicker/DateRangePickerHeadCell.cjs.map +1 -1
  210. package/dist/DateRangePicker/DateRangePickerHeadCell.js.map +1 -1
  211. package/dist/DateRangePicker/DateRangePickerHeader.cjs.map +1 -1
  212. package/dist/DateRangePicker/DateRangePickerHeader.js.map +1 -1
  213. package/dist/DateRangePicker/DateRangePickerHeading.cjs.map +1 -1
  214. package/dist/DateRangePicker/DateRangePickerHeading.js.map +1 -1
  215. package/dist/DateRangePicker/DateRangePickerInput.cjs.map +1 -1
  216. package/dist/DateRangePicker/DateRangePickerInput.js.map +1 -1
  217. package/dist/DateRangePicker/DateRangePickerNext.cjs.map +1 -1
  218. package/dist/DateRangePicker/DateRangePickerNext.js.map +1 -1
  219. package/dist/DateRangePicker/DateRangePickerPrev.cjs.map +1 -1
  220. package/dist/DateRangePicker/DateRangePickerPrev.js.map +1 -1
  221. package/dist/DateRangePicker/DateRangePickerRoot.cjs +9 -2
  222. package/dist/DateRangePicker/DateRangePickerRoot.cjs.map +1 -1
  223. package/dist/DateRangePicker/DateRangePickerRoot.js +9 -2
  224. package/dist/DateRangePicker/DateRangePickerRoot.js.map +1 -1
  225. package/dist/DateRangePicker/DateRangePickerTrigger.cjs.map +1 -1
  226. package/dist/DateRangePicker/DateRangePickerTrigger.js.map +1 -1
  227. package/dist/Dialog/DialogClose.cjs +1 -1
  228. package/dist/Dialog/DialogClose.cjs.map +1 -1
  229. package/dist/Dialog/DialogClose.js +1 -1
  230. package/dist/Dialog/DialogClose.js.map +1 -1
  231. package/dist/Dialog/DialogContent.cjs.map +1 -1
  232. package/dist/Dialog/DialogContent.js.map +1 -1
  233. package/dist/Dialog/DialogContentImpl.cjs.map +1 -1
  234. package/dist/Dialog/DialogContentImpl.js.map +1 -1
  235. package/dist/Dialog/DialogContentModal.cjs.map +1 -1
  236. package/dist/Dialog/DialogContentModal.js.map +1 -1
  237. package/dist/Dialog/DialogContentNonModal.cjs.map +1 -1
  238. package/dist/Dialog/DialogContentNonModal.js.map +1 -1
  239. package/dist/Dialog/DialogDescription.cjs.map +1 -1
  240. package/dist/Dialog/DialogDescription.js.map +1 -1
  241. package/dist/Dialog/DialogOverlay.cjs.map +1 -1
  242. package/dist/Dialog/DialogOverlay.js.map +1 -1
  243. package/dist/Dialog/DialogOverlayImpl.cjs.map +1 -1
  244. package/dist/Dialog/DialogOverlayImpl.js.map +1 -1
  245. package/dist/Dialog/DialogRoot.cjs +4 -1
  246. package/dist/Dialog/DialogRoot.cjs.map +1 -1
  247. package/dist/Dialog/DialogRoot.js +4 -1
  248. package/dist/Dialog/DialogRoot.js.map +1 -1
  249. package/dist/Dialog/DialogTitle.cjs.map +1 -1
  250. package/dist/Dialog/DialogTitle.js.map +1 -1
  251. package/dist/Dialog/DialogTrigger.cjs +1 -1
  252. package/dist/Dialog/DialogTrigger.cjs.map +1 -1
  253. package/dist/Dialog/DialogTrigger.js +1 -1
  254. package/dist/Dialog/DialogTrigger.js.map +1 -1
  255. package/dist/Dialog/utils.cjs.map +1 -1
  256. package/dist/Dialog/utils.js.map +1 -1
  257. package/dist/DismissableLayer/DismissableLayer.cjs.map +1 -1
  258. package/dist/DismissableLayer/DismissableLayer.js.map +1 -1
  259. package/dist/DismissableLayer/DismissableLayerBranch.cjs.map +1 -1
  260. package/dist/DismissableLayer/DismissableLayerBranch.js.map +1 -1
  261. package/dist/DismissableLayer/utils.cjs +11 -6
  262. package/dist/DismissableLayer/utils.cjs.map +1 -1
  263. package/dist/DismissableLayer/utils.js +12 -7
  264. package/dist/DismissableLayer/utils.js.map +1 -1
  265. package/dist/DropdownMenu/DropdownMenuContent.cjs +1 -1
  266. package/dist/DropdownMenu/DropdownMenuContent.cjs.map +1 -1
  267. package/dist/DropdownMenu/DropdownMenuContent.js +1 -1
  268. package/dist/DropdownMenu/DropdownMenuContent.js.map +1 -1
  269. package/dist/DropdownMenu/DropdownMenuRoot.cjs.map +1 -1
  270. package/dist/DropdownMenu/DropdownMenuRoot.js.map +1 -1
  271. package/dist/DropdownMenu/DropdownMenuSub.cjs.map +1 -1
  272. package/dist/DropdownMenu/DropdownMenuSub.js.map +1 -1
  273. package/dist/DropdownMenu/DropdownMenuTrigger.cjs +1 -1
  274. package/dist/DropdownMenu/DropdownMenuTrigger.cjs.map +1 -1
  275. package/dist/DropdownMenu/DropdownMenuTrigger.js +1 -1
  276. package/dist/DropdownMenu/DropdownMenuTrigger.js.map +1 -1
  277. package/dist/Editable/EditableInput.cjs.map +1 -1
  278. package/dist/Editable/EditableInput.js.map +1 -1
  279. package/dist/Editable/EditablePreview.cjs.map +1 -1
  280. package/dist/Editable/EditablePreview.js.map +1 -1
  281. package/dist/Editable/EditableRoot.cjs +1 -1
  282. package/dist/Editable/EditableRoot.cjs.map +1 -1
  283. package/dist/Editable/EditableRoot.js +1 -1
  284. package/dist/Editable/EditableRoot.js.map +1 -1
  285. package/dist/FocusScope/FocusScope.cjs +1 -1
  286. package/dist/FocusScope/FocusScope.cjs.map +1 -1
  287. package/dist/FocusScope/FocusScope.js +1 -1
  288. package/dist/FocusScope/FocusScope.js.map +1 -1
  289. package/dist/HoverCard/HoverCardContent.cjs +1 -1
  290. package/dist/HoverCard/HoverCardContent.cjs.map +1 -1
  291. package/dist/HoverCard/HoverCardContent.js +1 -1
  292. package/dist/HoverCard/HoverCardContent.js.map +1 -1
  293. package/dist/HoverCard/HoverCardContentImpl.cjs +3 -3
  294. package/dist/HoverCard/HoverCardContentImpl.cjs.map +1 -1
  295. package/dist/HoverCard/HoverCardContentImpl.js +3 -3
  296. package/dist/HoverCard/HoverCardContentImpl.js.map +1 -1
  297. package/dist/HoverCard/HoverCardRoot.cjs.map +1 -1
  298. package/dist/HoverCard/HoverCardRoot.js.map +1 -1
  299. package/dist/HoverCard/HoverCardTrigger.cjs +1 -1
  300. package/dist/HoverCard/HoverCardTrigger.cjs.map +1 -1
  301. package/dist/HoverCard/HoverCardTrigger.js +1 -1
  302. package/dist/HoverCard/HoverCardTrigger.js.map +1 -1
  303. package/dist/Listbox/ListboxContent.cjs +1 -1
  304. package/dist/Listbox/ListboxContent.cjs.map +1 -1
  305. package/dist/Listbox/ListboxContent.js +1 -1
  306. package/dist/Listbox/ListboxContent.js.map +1 -1
  307. package/dist/Listbox/ListboxFilter.cjs.map +1 -1
  308. package/dist/Listbox/ListboxFilter.js.map +1 -1
  309. package/dist/Listbox/ListboxItem.cjs +2 -2
  310. package/dist/Listbox/ListboxItem.cjs.map +1 -1
  311. package/dist/Listbox/ListboxItem.js +2 -2
  312. package/dist/Listbox/ListboxItem.js.map +1 -1
  313. package/dist/Listbox/ListboxItemIndicator.cjs.map +1 -1
  314. package/dist/Listbox/ListboxItemIndicator.js.map +1 -1
  315. package/dist/Listbox/ListboxRoot.cjs +3 -3
  316. package/dist/Listbox/ListboxRoot.cjs.map +1 -1
  317. package/dist/Listbox/ListboxRoot.js +3 -3
  318. package/dist/Listbox/ListboxRoot.js.map +1 -1
  319. package/dist/Listbox/ListboxVirtualizer.cjs +4 -4
  320. package/dist/Listbox/ListboxVirtualizer.cjs.map +1 -1
  321. package/dist/Listbox/ListboxVirtualizer.js +4 -4
  322. package/dist/Listbox/ListboxVirtualizer.js.map +1 -1
  323. package/dist/Menu/MenuAnchor.cjs.map +1 -1
  324. package/dist/Menu/MenuAnchor.js.map +1 -1
  325. package/dist/Menu/MenuCheckboxItem.cjs +1 -1
  326. package/dist/Menu/MenuCheckboxItem.cjs.map +1 -1
  327. package/dist/Menu/MenuCheckboxItem.js +1 -1
  328. package/dist/Menu/MenuCheckboxItem.js.map +1 -1
  329. package/dist/Menu/MenuContent.cjs.map +1 -1
  330. package/dist/Menu/MenuContent.js.map +1 -1
  331. package/dist/Menu/MenuContentImpl.cjs +2 -2
  332. package/dist/Menu/MenuContentImpl.cjs.map +1 -1
  333. package/dist/Menu/MenuContentImpl.js +2 -2
  334. package/dist/Menu/MenuContentImpl.js.map +1 -1
  335. package/dist/Menu/MenuItem.cjs.map +1 -1
  336. package/dist/Menu/MenuItem.js.map +1 -1
  337. package/dist/Menu/MenuItemImpl.cjs +1 -1
  338. package/dist/Menu/MenuItemImpl.cjs.map +1 -1
  339. package/dist/Menu/MenuItemImpl.js +1 -1
  340. package/dist/Menu/MenuItemImpl.js.map +1 -1
  341. package/dist/Menu/MenuItemIndicator.cjs.map +1 -1
  342. package/dist/Menu/MenuItemIndicator.js.map +1 -1
  343. package/dist/Menu/MenuRadioGroup.cjs.map +1 -1
  344. package/dist/Menu/MenuRadioGroup.js.map +1 -1
  345. package/dist/Menu/MenuRadioItem.cjs +1 -1
  346. package/dist/Menu/MenuRadioItem.cjs.map +1 -1
  347. package/dist/Menu/MenuRadioItem.js +1 -1
  348. package/dist/Menu/MenuRadioItem.js.map +1 -1
  349. package/dist/Menu/MenuRoot.cjs +1 -1
  350. package/dist/Menu/MenuRoot.cjs.map +1 -1
  351. package/dist/Menu/MenuRoot.js +1 -1
  352. package/dist/Menu/MenuRoot.js.map +1 -1
  353. package/dist/Menu/MenuRootContentModal.cjs.map +1 -1
  354. package/dist/Menu/MenuRootContentModal.js.map +1 -1
  355. package/dist/Menu/MenuRootContentNonModal.cjs.map +1 -1
  356. package/dist/Menu/MenuRootContentNonModal.js.map +1 -1
  357. package/dist/Menu/MenuSub.cjs.map +1 -1
  358. package/dist/Menu/MenuSub.js.map +1 -1
  359. package/dist/Menu/MenuSubContent.cjs.map +1 -1
  360. package/dist/Menu/MenuSubContent.js.map +1 -1
  361. package/dist/Menu/MenuSubTrigger.cjs +1 -1
  362. package/dist/Menu/MenuSubTrigger.cjs.map +1 -1
  363. package/dist/Menu/MenuSubTrigger.js +1 -1
  364. package/dist/Menu/MenuSubTrigger.js.map +1 -1
  365. package/dist/Menubar/MenubarContent.cjs +1 -1
  366. package/dist/Menubar/MenubarContent.cjs.map +1 -1
  367. package/dist/Menubar/MenubarContent.js +1 -1
  368. package/dist/Menubar/MenubarContent.js.map +1 -1
  369. package/dist/Menubar/MenubarGroup.cjs.map +1 -1
  370. package/dist/Menubar/MenubarGroup.js.map +1 -1
  371. package/dist/Menubar/MenubarMenu.cjs.map +1 -1
  372. package/dist/Menubar/MenubarMenu.js.map +1 -1
  373. package/dist/Menubar/MenubarRoot.cjs.map +1 -1
  374. package/dist/Menubar/MenubarRoot.js.map +1 -1
  375. package/dist/Menubar/MenubarSub.cjs.map +1 -1
  376. package/dist/Menubar/MenubarSub.js.map +1 -1
  377. package/dist/Menubar/MenubarSubContent.cjs.map +1 -1
  378. package/dist/Menubar/MenubarSubContent.js.map +1 -1
  379. package/dist/Menubar/MenubarTrigger.cjs +1 -1
  380. package/dist/Menubar/MenubarTrigger.cjs.map +1 -1
  381. package/dist/Menubar/MenubarTrigger.js +1 -1
  382. package/dist/Menubar/MenubarTrigger.js.map +1 -1
  383. package/dist/NavigationMenu/NavigationMenuContent.cjs +1 -1
  384. package/dist/NavigationMenu/NavigationMenuContent.cjs.map +1 -1
  385. package/dist/NavigationMenu/NavigationMenuContent.js +1 -1
  386. package/dist/NavigationMenu/NavigationMenuContent.js.map +1 -1
  387. package/dist/NavigationMenu/NavigationMenuContentImpl.cjs +1 -1
  388. package/dist/NavigationMenu/NavigationMenuContentImpl.cjs.map +1 -1
  389. package/dist/NavigationMenu/NavigationMenuContentImpl.js +1 -1
  390. package/dist/NavigationMenu/NavigationMenuContentImpl.js.map +1 -1
  391. package/dist/NavigationMenu/NavigationMenuIndicator.cjs.map +1 -1
  392. package/dist/NavigationMenu/NavigationMenuIndicator.js.map +1 -1
  393. package/dist/NavigationMenu/NavigationMenuItem.cjs.map +1 -1
  394. package/dist/NavigationMenu/NavigationMenuItem.js.map +1 -1
  395. package/dist/NavigationMenu/NavigationMenuLink.cjs.map +1 -1
  396. package/dist/NavigationMenu/NavigationMenuLink.js.map +1 -1
  397. package/dist/NavigationMenu/NavigationMenuList.cjs.map +1 -1
  398. package/dist/NavigationMenu/NavigationMenuList.js.map +1 -1
  399. package/dist/NavigationMenu/NavigationMenuRoot.cjs.map +1 -1
  400. package/dist/NavigationMenu/NavigationMenuRoot.js.map +1 -1
  401. package/dist/NavigationMenu/NavigationMenuSub.cjs.map +1 -1
  402. package/dist/NavigationMenu/NavigationMenuSub.js.map +1 -1
  403. package/dist/NavigationMenu/NavigationMenuTrigger.cjs.map +1 -1
  404. package/dist/NavigationMenu/NavigationMenuTrigger.js.map +1 -1
  405. package/dist/NavigationMenu/NavigationMenuViewport.cjs.map +1 -1
  406. package/dist/NavigationMenu/NavigationMenuViewport.js.map +1 -1
  407. package/dist/NumberField/NumberFieldDecrement.cjs +1 -1
  408. package/dist/NumberField/NumberFieldDecrement.cjs.map +1 -1
  409. package/dist/NumberField/NumberFieldDecrement.js +1 -1
  410. package/dist/NumberField/NumberFieldDecrement.js.map +1 -1
  411. package/dist/NumberField/NumberFieldIncrement.cjs.map +1 -1
  412. package/dist/NumberField/NumberFieldIncrement.js.map +1 -1
  413. package/dist/NumberField/NumberFieldInput.cjs +3 -3
  414. package/dist/NumberField/NumberFieldInput.cjs.map +1 -1
  415. package/dist/NumberField/NumberFieldInput.js +3 -3
  416. package/dist/NumberField/NumberFieldInput.js.map +1 -1
  417. package/dist/NumberField/NumberFieldRoot.cjs +8 -5
  418. package/dist/NumberField/NumberFieldRoot.cjs.map +1 -1
  419. package/dist/NumberField/NumberFieldRoot.js +8 -5
  420. package/dist/NumberField/NumberFieldRoot.js.map +1 -1
  421. package/dist/NumberField/utils.cjs.map +1 -1
  422. package/dist/NumberField/utils.js +1 -1
  423. package/dist/NumberField/utils.js.map +1 -1
  424. package/dist/Pagination/PaginationList.cjs.map +1 -1
  425. package/dist/Pagination/PaginationList.js.map +1 -1
  426. package/dist/Pagination/PaginationRoot.cjs.map +1 -1
  427. package/dist/Pagination/PaginationRoot.js.map +1 -1
  428. package/dist/Pagination/utils.cjs.map +1 -1
  429. package/dist/Pagination/utils.js.map +1 -1
  430. package/dist/PinInput/PinInputInput.cjs +1 -1
  431. package/dist/PinInput/PinInputInput.cjs.map +1 -1
  432. package/dist/PinInput/PinInputInput.js +1 -1
  433. package/dist/PinInput/PinInputInput.js.map +1 -1
  434. package/dist/PinInput/PinInputRoot.cjs.map +1 -1
  435. package/dist/PinInput/PinInputRoot.js.map +1 -1
  436. package/dist/Popover/PopoverAnchor.cjs.map +1 -1
  437. package/dist/Popover/PopoverAnchor.js.map +1 -1
  438. package/dist/Popover/PopoverClose.cjs.map +1 -1
  439. package/dist/Popover/PopoverClose.js.map +1 -1
  440. package/dist/Popover/PopoverContent.cjs.map +1 -1
  441. package/dist/Popover/PopoverContent.js.map +1 -1
  442. package/dist/Popover/PopoverContentImpl.cjs +1 -1
  443. package/dist/Popover/PopoverContentImpl.cjs.map +1 -1
  444. package/dist/Popover/PopoverContentImpl.js +1 -1
  445. package/dist/Popover/PopoverContentImpl.js.map +1 -1
  446. package/dist/Popover/PopoverContentModal.cjs +1 -1
  447. package/dist/Popover/PopoverContentModal.cjs.map +1 -1
  448. package/dist/Popover/PopoverContentModal.js +1 -1
  449. package/dist/Popover/PopoverContentModal.js.map +1 -1
  450. package/dist/Popover/PopoverContentNonModal.cjs.map +1 -1
  451. package/dist/Popover/PopoverContentNonModal.js.map +1 -1
  452. package/dist/Popover/PopoverRoot.cjs.map +1 -1
  453. package/dist/Popover/PopoverRoot.js.map +1 -1
  454. package/dist/Popover/PopoverTrigger.cjs +1 -1
  455. package/dist/Popover/PopoverTrigger.cjs.map +1 -1
  456. package/dist/Popover/PopoverTrigger.js +1 -1
  457. package/dist/Popover/PopoverTrigger.js.map +1 -1
  458. package/dist/Popper/PopperAnchor.cjs.map +1 -1
  459. package/dist/Popper/PopperAnchor.js.map +1 -1
  460. package/dist/Popper/PopperArrow.cjs.map +1 -1
  461. package/dist/Popper/PopperArrow.js.map +1 -1
  462. package/dist/Popper/PopperContent.cjs +2 -2
  463. package/dist/Popper/PopperContent.cjs.map +1 -1
  464. package/dist/Popper/PopperContent.js +2 -2
  465. package/dist/Popper/PopperContent.js.map +1 -1
  466. package/dist/Popper/PopperRoot.cjs.map +1 -1
  467. package/dist/Popper/PopperRoot.js.map +1 -1
  468. package/dist/Presence/Presence.cjs +1 -1
  469. package/dist/Presence/Presence.cjs.map +1 -1
  470. package/dist/Presence/Presence.js +1 -1
  471. package/dist/Presence/Presence.js.map +1 -1
  472. package/dist/Presence/usePresence.cjs +2 -2
  473. package/dist/Presence/usePresence.cjs.map +1 -1
  474. package/dist/Presence/usePresence.js +2 -2
  475. package/dist/Presence/usePresence.js.map +1 -1
  476. package/dist/Primitive/Primitive.cjs.map +1 -1
  477. package/dist/Primitive/Primitive.js.map +1 -1
  478. package/dist/Primitive/Slot.cjs +1 -9
  479. package/dist/Primitive/Slot.cjs.map +1 -1
  480. package/dist/Primitive/Slot.js +1 -9
  481. package/dist/Primitive/Slot.js.map +1 -1
  482. package/dist/Primitive/usePrimitiveElement.cjs.map +1 -1
  483. package/dist/Primitive/usePrimitiveElement.js.map +1 -1
  484. package/dist/Progress/ProgressIndicator.cjs.map +1 -1
  485. package/dist/Progress/ProgressIndicator.js.map +1 -1
  486. package/dist/Progress/ProgressRoot.cjs +3 -2
  487. package/dist/Progress/ProgressRoot.cjs.map +1 -1
  488. package/dist/Progress/ProgressRoot.js +3 -2
  489. package/dist/Progress/ProgressRoot.js.map +1 -1
  490. package/dist/RadioGroup/Radio.cjs.map +1 -1
  491. package/dist/RadioGroup/Radio.js.map +1 -1
  492. package/dist/RadioGroup/RadioGroupIndicator.cjs.map +1 -1
  493. package/dist/RadioGroup/RadioGroupIndicator.js.map +1 -1
  494. package/dist/RadioGroup/RadioGroupItem.cjs +1 -1
  495. package/dist/RadioGroup/RadioGroupItem.cjs.map +1 -1
  496. package/dist/RadioGroup/RadioGroupItem.js +1 -1
  497. package/dist/RadioGroup/RadioGroupItem.js.map +1 -1
  498. package/dist/RadioGroup/RadioGroupRoot.cjs.map +1 -1
  499. package/dist/RadioGroup/RadioGroupRoot.js.map +1 -1
  500. package/dist/RadioGroup/utils.cjs.map +1 -1
  501. package/dist/RadioGroup/utils.js.map +1 -1
  502. package/dist/RangeCalendar/RangeCalendarCell.cjs +3 -3
  503. package/dist/RangeCalendar/RangeCalendarCell.cjs.map +1 -1
  504. package/dist/RangeCalendar/RangeCalendarCell.js +3 -3
  505. package/dist/RangeCalendar/RangeCalendarCell.js.map +1 -1
  506. package/dist/RangeCalendar/RangeCalendarCellTrigger.cjs +28 -9
  507. package/dist/RangeCalendar/RangeCalendarCellTrigger.cjs.map +1 -1
  508. package/dist/RangeCalendar/RangeCalendarCellTrigger.js +28 -9
  509. package/dist/RangeCalendar/RangeCalendarCellTrigger.js.map +1 -1
  510. package/dist/RangeCalendar/RangeCalendarHeading.cjs +1 -1
  511. package/dist/RangeCalendar/RangeCalendarHeading.cjs.map +1 -1
  512. package/dist/RangeCalendar/RangeCalendarHeading.js +1 -1
  513. package/dist/RangeCalendar/RangeCalendarHeading.js.map +1 -1
  514. package/dist/RangeCalendar/RangeCalendarNext.cjs.map +1 -1
  515. package/dist/RangeCalendar/RangeCalendarNext.js.map +1 -1
  516. package/dist/RangeCalendar/RangeCalendarPrev.cjs.map +1 -1
  517. package/dist/RangeCalendar/RangeCalendarPrev.js.map +1 -1
  518. package/dist/RangeCalendar/RangeCalendarRoot.cjs +32 -10
  519. package/dist/RangeCalendar/RangeCalendarRoot.cjs.map +1 -1
  520. package/dist/RangeCalendar/RangeCalendarRoot.js +32 -10
  521. package/dist/RangeCalendar/RangeCalendarRoot.js.map +1 -1
  522. package/dist/RangeCalendar/useRangeCalendar.cjs +26 -3
  523. package/dist/RangeCalendar/useRangeCalendar.cjs.map +1 -1
  524. package/dist/RangeCalendar/useRangeCalendar.js +26 -3
  525. package/dist/RangeCalendar/useRangeCalendar.js.map +1 -1
  526. package/dist/RovingFocus/RovingFocusGroup.cjs +1 -1
  527. package/dist/RovingFocus/RovingFocusGroup.cjs.map +1 -1
  528. package/dist/RovingFocus/RovingFocusGroup.js +1 -1
  529. package/dist/RovingFocus/RovingFocusGroup.js.map +1 -1
  530. package/dist/RovingFocus/RovingFocusItem.cjs +1 -1
  531. package/dist/RovingFocus/RovingFocusItem.cjs.map +1 -1
  532. package/dist/RovingFocus/RovingFocusItem.js +1 -1
  533. package/dist/RovingFocus/RovingFocusItem.js.map +1 -1
  534. package/dist/ScrollArea/ScrollAreaCorner.cjs.map +1 -1
  535. package/dist/ScrollArea/ScrollAreaCorner.js.map +1 -1
  536. package/dist/ScrollArea/ScrollAreaCornerImpl.cjs +1 -1
  537. package/dist/ScrollArea/ScrollAreaCornerImpl.cjs.map +1 -1
  538. package/dist/ScrollArea/ScrollAreaCornerImpl.js +1 -1
  539. package/dist/ScrollArea/ScrollAreaCornerImpl.js.map +1 -1
  540. package/dist/ScrollArea/ScrollAreaRoot.cjs.map +1 -1
  541. package/dist/ScrollArea/ScrollAreaRoot.js.map +1 -1
  542. package/dist/ScrollArea/ScrollAreaScrollbar.cjs +1 -1
  543. package/dist/ScrollArea/ScrollAreaScrollbar.cjs.map +1 -1
  544. package/dist/ScrollArea/ScrollAreaScrollbar.js +1 -1
  545. package/dist/ScrollArea/ScrollAreaScrollbar.js.map +1 -1
  546. package/dist/ScrollArea/ScrollAreaScrollbarAuto.cjs.map +1 -1
  547. package/dist/ScrollArea/ScrollAreaScrollbarAuto.js.map +1 -1
  548. package/dist/ScrollArea/ScrollAreaScrollbarHover.cjs.map +1 -1
  549. package/dist/ScrollArea/ScrollAreaScrollbarHover.js.map +1 -1
  550. package/dist/ScrollArea/ScrollAreaScrollbarImpl.cjs.map +1 -1
  551. package/dist/ScrollArea/ScrollAreaScrollbarImpl.js.map +1 -1
  552. package/dist/ScrollArea/ScrollAreaScrollbarScroll.cjs.map +1 -1
  553. package/dist/ScrollArea/ScrollAreaScrollbarScroll.js.map +1 -1
  554. package/dist/ScrollArea/ScrollAreaScrollbarVisible.cjs.map +1 -1
  555. package/dist/ScrollArea/ScrollAreaScrollbarVisible.js.map +1 -1
  556. package/dist/ScrollArea/ScrollAreaScrollbarX.cjs.map +1 -1
  557. package/dist/ScrollArea/ScrollAreaScrollbarX.js.map +1 -1
  558. package/dist/ScrollArea/ScrollAreaScrollbarY.cjs.map +1 -1
  559. package/dist/ScrollArea/ScrollAreaScrollbarY.js.map +1 -1
  560. package/dist/ScrollArea/ScrollAreaThumb.cjs.map +1 -1
  561. package/dist/ScrollArea/ScrollAreaThumb.js.map +1 -1
  562. package/dist/ScrollArea/ScrollAreaViewport.cjs +1 -1
  563. package/dist/ScrollArea/ScrollAreaViewport.cjs.map +1 -1
  564. package/dist/ScrollArea/ScrollAreaViewport.js +1 -1
  565. package/dist/ScrollArea/ScrollAreaViewport.js.map +1 -1
  566. package/dist/ScrollArea/utils.cjs.map +1 -1
  567. package/dist/ScrollArea/utils.js.map +1 -1
  568. package/dist/Select/SelectArrow.cjs +1 -1
  569. package/dist/Select/SelectArrow.cjs.map +1 -1
  570. package/dist/Select/SelectArrow.js +1 -1
  571. package/dist/Select/SelectArrow.js.map +1 -1
  572. package/dist/Select/SelectContent.cjs.map +1 -1
  573. package/dist/Select/SelectContent.js.map +1 -1
  574. package/dist/Select/SelectContentImpl.cjs +4 -4
  575. package/dist/Select/SelectContentImpl.cjs.map +1 -1
  576. package/dist/Select/SelectContentImpl.js +4 -4
  577. package/dist/Select/SelectContentImpl.js.map +1 -1
  578. package/dist/Select/SelectItem.cjs +1 -1
  579. package/dist/Select/SelectItem.cjs.map +1 -1
  580. package/dist/Select/SelectItem.js +1 -1
  581. package/dist/Select/SelectItem.js.map +1 -1
  582. package/dist/Select/SelectItemAlignedPosition.cjs +2 -2
  583. package/dist/Select/SelectItemAlignedPosition.cjs.map +1 -1
  584. package/dist/Select/SelectItemAlignedPosition.js +2 -2
  585. package/dist/Select/SelectItemAlignedPosition.js.map +1 -1
  586. package/dist/Select/SelectItemIndicator.cjs.map +1 -1
  587. package/dist/Select/SelectItemIndicator.js.map +1 -1
  588. package/dist/Select/SelectItemText.cjs.map +1 -1
  589. package/dist/Select/SelectItemText.js.map +1 -1
  590. package/dist/Select/SelectPopperPosition.cjs +1 -1
  591. package/dist/Select/SelectPopperPosition.cjs.map +1 -1
  592. package/dist/Select/SelectPopperPosition.js +1 -1
  593. package/dist/Select/SelectPopperPosition.js.map +1 -1
  594. package/dist/Select/SelectProvider.cjs.map +1 -1
  595. package/dist/Select/SelectProvider.js.map +1 -1
  596. package/dist/Select/SelectRoot.cjs +5 -3
  597. package/dist/Select/SelectRoot.cjs.map +1 -1
  598. package/dist/Select/SelectRoot.js +5 -3
  599. package/dist/Select/SelectRoot.js.map +1 -1
  600. package/dist/Select/SelectScrollButtonImpl.cjs.map +1 -1
  601. package/dist/Select/SelectScrollButtonImpl.js.map +1 -1
  602. package/dist/Select/SelectScrollDownButton.cjs +1 -1
  603. package/dist/Select/SelectScrollDownButton.cjs.map +1 -1
  604. package/dist/Select/SelectScrollDownButton.js +1 -1
  605. package/dist/Select/SelectScrollDownButton.js.map +1 -1
  606. package/dist/Select/SelectTrigger.cjs +3 -3
  607. package/dist/Select/SelectTrigger.cjs.map +1 -1
  608. package/dist/Select/SelectTrigger.js +3 -3
  609. package/dist/Select/SelectTrigger.js.map +1 -1
  610. package/dist/Select/SelectValue.cjs +2 -1
  611. package/dist/Select/SelectValue.cjs.map +1 -1
  612. package/dist/Select/SelectValue.js +2 -1
  613. package/dist/Select/SelectValue.js.map +1 -1
  614. package/dist/Select/SelectViewport.cjs +1 -1
  615. package/dist/Select/SelectViewport.cjs.map +1 -1
  616. package/dist/Select/SelectViewport.js +1 -1
  617. package/dist/Select/SelectViewport.js.map +1 -1
  618. package/dist/Select/utils.cjs +4 -0
  619. package/dist/Select/utils.cjs.map +1 -1
  620. package/dist/Select/utils.js +4 -1
  621. package/dist/Select/utils.js.map +1 -1
  622. package/dist/Slider/SliderHorizontal.cjs +7 -4
  623. package/dist/Slider/SliderHorizontal.cjs.map +1 -1
  624. package/dist/Slider/SliderHorizontal.js +7 -4
  625. package/dist/Slider/SliderHorizontal.js.map +1 -1
  626. package/dist/Slider/SliderRange.cjs +2 -2
  627. package/dist/Slider/SliderRange.cjs.map +1 -1
  628. package/dist/Slider/SliderRange.js +2 -2
  629. package/dist/Slider/SliderRange.js.map +1 -1
  630. package/dist/Slider/SliderRoot.cjs +1 -1
  631. package/dist/Slider/SliderRoot.cjs.map +1 -1
  632. package/dist/Slider/SliderRoot.js +1 -1
  633. package/dist/Slider/SliderRoot.js.map +1 -1
  634. package/dist/Slider/SliderThumb.cjs +1 -1
  635. package/dist/Slider/SliderThumb.cjs.map +1 -1
  636. package/dist/Slider/SliderThumb.js +1 -1
  637. package/dist/Slider/SliderThumb.js.map +1 -1
  638. package/dist/Slider/SliderThumbImpl.cjs +2 -2
  639. package/dist/Slider/SliderThumbImpl.cjs.map +1 -1
  640. package/dist/Slider/SliderThumbImpl.js +2 -2
  641. package/dist/Slider/SliderThumbImpl.js.map +1 -1
  642. package/dist/Slider/SliderVertical.cjs +7 -4
  643. package/dist/Slider/SliderVertical.cjs.map +1 -1
  644. package/dist/Slider/SliderVertical.js +7 -4
  645. package/dist/Slider/SliderVertical.js.map +1 -1
  646. package/dist/Slider/utils.cjs +1 -1
  647. package/dist/Slider/utils.cjs.map +1 -1
  648. package/dist/Slider/utils.js +1 -1
  649. package/dist/Slider/utils.js.map +1 -1
  650. package/dist/Splitter/SplitterGroup.cjs +5 -5
  651. package/dist/Splitter/SplitterGroup.cjs.map +1 -1
  652. package/dist/Splitter/SplitterGroup.js +5 -5
  653. package/dist/Splitter/SplitterGroup.js.map +1 -1
  654. package/dist/Splitter/SplitterPanel.cjs +16 -10
  655. package/dist/Splitter/SplitterPanel.cjs.map +1 -1
  656. package/dist/Splitter/SplitterPanel.js +16 -10
  657. package/dist/Splitter/SplitterPanel.js.map +1 -1
  658. package/dist/Splitter/SplitterResizeHandle.cjs +1 -1
  659. package/dist/Splitter/SplitterResizeHandle.cjs.map +1 -1
  660. package/dist/Splitter/SplitterResizeHandle.js +1 -1
  661. package/dist/Splitter/SplitterResizeHandle.js.map +1 -1
  662. package/dist/Stepper/StepperDescription.cjs +1 -1
  663. package/dist/Stepper/StepperDescription.cjs.map +1 -1
  664. package/dist/Stepper/StepperDescription.js +1 -1
  665. package/dist/Stepper/StepperDescription.js.map +1 -1
  666. package/dist/Stepper/StepperIndicator.cjs.map +1 -1
  667. package/dist/Stepper/StepperIndicator.js.map +1 -1
  668. package/dist/Stepper/StepperItem.cjs.map +1 -1
  669. package/dist/Stepper/StepperItem.js.map +1 -1
  670. package/dist/Stepper/StepperRoot.cjs +30 -3
  671. package/dist/Stepper/StepperRoot.cjs.map +1 -1
  672. package/dist/Stepper/StepperRoot.js +30 -3
  673. package/dist/Stepper/StepperRoot.js.map +1 -1
  674. package/dist/Stepper/StepperSeparator.cjs.map +1 -1
  675. package/dist/Stepper/StepperSeparator.js.map +1 -1
  676. package/dist/Stepper/StepperTitle.cjs.map +1 -1
  677. package/dist/Stepper/StepperTitle.js.map +1 -1
  678. package/dist/Stepper/StepperTrigger.cjs +1 -1
  679. package/dist/Stepper/StepperTrigger.cjs.map +1 -1
  680. package/dist/Stepper/StepperTrigger.js +1 -1
  681. package/dist/Stepper/StepperTrigger.js.map +1 -1
  682. package/dist/Switch/SwitchRoot.cjs.map +1 -1
  683. package/dist/Switch/SwitchRoot.js.map +1 -1
  684. package/dist/Switch/SwitchThumb.cjs.map +1 -1
  685. package/dist/Switch/SwitchThumb.js.map +1 -1
  686. package/dist/Tabs/TabsContent.cjs +1 -1
  687. package/dist/Tabs/TabsContent.cjs.map +1 -1
  688. package/dist/Tabs/TabsContent.js +1 -1
  689. package/dist/Tabs/TabsContent.js.map +1 -1
  690. package/dist/Tabs/TabsIndicator.cjs.map +1 -1
  691. package/dist/Tabs/TabsIndicator.js.map +1 -1
  692. package/dist/Tabs/TabsList.cjs +1 -1
  693. package/dist/Tabs/TabsList.cjs.map +1 -1
  694. package/dist/Tabs/TabsList.js +1 -1
  695. package/dist/Tabs/TabsList.js.map +1 -1
  696. package/dist/Tabs/TabsRoot.cjs.map +1 -1
  697. package/dist/Tabs/TabsRoot.js.map +1 -1
  698. package/dist/Tabs/TabsTrigger.cjs.map +1 -1
  699. package/dist/Tabs/TabsTrigger.js.map +1 -1
  700. package/dist/TagsInput/TagsInputClear.cjs +1 -1
  701. package/dist/TagsInput/TagsInputClear.cjs.map +1 -1
  702. package/dist/TagsInput/TagsInputClear.js +1 -1
  703. package/dist/TagsInput/TagsInputClear.js.map +1 -1
  704. package/dist/TagsInput/TagsInputInput.cjs +2 -1
  705. package/dist/TagsInput/TagsInputInput.cjs.map +1 -1
  706. package/dist/TagsInput/TagsInputInput.js +2 -1
  707. package/dist/TagsInput/TagsInputInput.js.map +1 -1
  708. package/dist/TagsInput/TagsInputItem.cjs.map +1 -1
  709. package/dist/TagsInput/TagsInputItem.js.map +1 -1
  710. package/dist/TagsInput/TagsInputItemDelete.cjs +1 -1
  711. package/dist/TagsInput/TagsInputItemDelete.cjs.map +1 -1
  712. package/dist/TagsInput/TagsInputItemDelete.js +1 -1
  713. package/dist/TagsInput/TagsInputItemDelete.js.map +1 -1
  714. package/dist/TagsInput/TagsInputItemText.cjs +1 -1
  715. package/dist/TagsInput/TagsInputItemText.cjs.map +1 -1
  716. package/dist/TagsInput/TagsInputItemText.js +1 -1
  717. package/dist/TagsInput/TagsInputItemText.js.map +1 -1
  718. package/dist/TagsInput/TagsInputRoot.cjs +1 -1
  719. package/dist/TagsInput/TagsInputRoot.cjs.map +1 -1
  720. package/dist/TagsInput/TagsInputRoot.js +1 -1
  721. package/dist/TagsInput/TagsInputRoot.js.map +1 -1
  722. package/dist/TimeField/TimeFieldInput.cjs +1 -0
  723. package/dist/TimeField/TimeFieldInput.cjs.map +1 -1
  724. package/dist/TimeField/TimeFieldInput.js +1 -0
  725. package/dist/TimeField/TimeFieldInput.js.map +1 -1
  726. package/dist/TimeField/TimeFieldRoot.cjs +12 -3
  727. package/dist/TimeField/TimeFieldRoot.cjs.map +1 -1
  728. package/dist/TimeField/TimeFieldRoot.js +12 -3
  729. package/dist/TimeField/TimeFieldRoot.js.map +1 -1
  730. package/dist/Toast/ToastAnnounce.cjs +1 -1
  731. package/dist/Toast/ToastAnnounce.cjs.map +1 -1
  732. package/dist/Toast/ToastAnnounce.js +1 -1
  733. package/dist/Toast/ToastAnnounce.js.map +1 -1
  734. package/dist/Toast/ToastProvider.cjs.map +1 -1
  735. package/dist/Toast/ToastProvider.js.map +1 -1
  736. package/dist/Toast/ToastRoot.cjs +28 -20
  737. package/dist/Toast/ToastRoot.cjs.map +1 -1
  738. package/dist/Toast/ToastRoot.js +28 -20
  739. package/dist/Toast/ToastRoot.js.map +1 -1
  740. package/dist/Toast/ToastRootImpl.cjs +2 -2
  741. package/dist/Toast/ToastRootImpl.cjs.map +1 -1
  742. package/dist/Toast/ToastRootImpl.js +2 -2
  743. package/dist/Toast/ToastRootImpl.js.map +1 -1
  744. package/dist/Toast/ToastViewport.cjs +2 -2
  745. package/dist/Toast/ToastViewport.cjs.map +1 -1
  746. package/dist/Toast/ToastViewport.js +2 -2
  747. package/dist/Toast/ToastViewport.js.map +1 -1
  748. package/dist/Toggle/Toggle.cjs.map +1 -1
  749. package/dist/Toggle/Toggle.js.map +1 -1
  750. package/dist/ToggleGroup/ToggleGroupItem.cjs.map +1 -1
  751. package/dist/ToggleGroup/ToggleGroupItem.js.map +1 -1
  752. package/dist/ToggleGroup/ToggleGroupRoot.cjs.map +1 -1
  753. package/dist/ToggleGroup/ToggleGroupRoot.js.map +1 -1
  754. package/dist/Toolbar/ToolbarSeparator.cjs +1 -1
  755. package/dist/Toolbar/ToolbarSeparator.js +1 -1
  756. package/dist/Toolbar/ToolbarToggleGroup.cjs +1 -1
  757. package/dist/Toolbar/ToolbarToggleGroup.cjs.map +1 -1
  758. package/dist/Toolbar/ToolbarToggleGroup.js +1 -1
  759. package/dist/Toolbar/ToolbarToggleGroup.js.map +1 -1
  760. package/dist/Toolbar/ToolbarToggleItem.cjs.map +1 -1
  761. package/dist/Toolbar/ToolbarToggleItem.js.map +1 -1
  762. package/dist/Tooltip/TooltipContent.cjs +1 -1
  763. package/dist/Tooltip/TooltipContent.cjs.map +1 -1
  764. package/dist/Tooltip/TooltipContent.js +1 -1
  765. package/dist/Tooltip/TooltipContent.js.map +1 -1
  766. package/dist/Tooltip/TooltipContentHoverable.cjs.map +1 -1
  767. package/dist/Tooltip/TooltipContentHoverable.js.map +1 -1
  768. package/dist/Tooltip/TooltipContentImpl.cjs +3 -3
  769. package/dist/Tooltip/TooltipContentImpl.cjs.map +1 -1
  770. package/dist/Tooltip/TooltipContentImpl.js +3 -3
  771. package/dist/Tooltip/TooltipContentImpl.js.map +1 -1
  772. package/dist/Tooltip/TooltipRoot.cjs.map +1 -1
  773. package/dist/Tooltip/TooltipRoot.js.map +1 -1
  774. package/dist/Tooltip/TooltipTrigger.cjs +4 -1
  775. package/dist/Tooltip/TooltipTrigger.cjs.map +1 -1
  776. package/dist/Tooltip/TooltipTrigger.js +4 -1
  777. package/dist/Tooltip/TooltipTrigger.js.map +1 -1
  778. package/dist/Tree/TreeItem.cjs +4 -1
  779. package/dist/Tree/TreeItem.cjs.map +1 -1
  780. package/dist/Tree/TreeItem.js +4 -1
  781. package/dist/Tree/TreeItem.js.map +1 -1
  782. package/dist/Tree/TreeRoot.cjs +28 -2
  783. package/dist/Tree/TreeRoot.cjs.map +1 -1
  784. package/dist/Tree/TreeRoot.js +28 -2
  785. package/dist/Tree/TreeRoot.js.map +1 -1
  786. package/dist/Tree/TreeVirtualizer.cjs +2 -2
  787. package/dist/Tree/TreeVirtualizer.cjs.map +1 -1
  788. package/dist/Tree/TreeVirtualizer.js +2 -2
  789. package/dist/Tree/TreeVirtualizer.js.map +1 -1
  790. package/dist/Tree/utils.cjs.map +1 -1
  791. package/dist/Tree/utils.js.map +1 -1
  792. package/dist/Viewport/Viewport.cjs.map +1 -1
  793. package/dist/Viewport/Viewport.js.map +1 -1
  794. package/dist/VisuallyHidden/VisuallyHiddenInput.cjs.map +1 -1
  795. package/dist/VisuallyHidden/VisuallyHiddenInput.js.map +1 -1
  796. package/dist/VisuallyHidden/VisuallyHiddenInputBubble.cjs.map +1 -1
  797. package/dist/VisuallyHidden/VisuallyHiddenInputBubble.js.map +1 -1
  798. package/dist/composables/useWindowSplitterBehavior.cjs.map +1 -1
  799. package/dist/composables/useWindowSplitterBehavior.js.map +1 -1
  800. package/dist/composables/useWindowSplitterPanelGroupBehavior.cjs +3 -3
  801. package/dist/composables/useWindowSplitterPanelGroupBehavior.cjs.map +1 -1
  802. package/dist/composables/useWindowSplitterPanelGroupBehavior.js +3 -3
  803. package/dist/composables/useWindowSplitterPanelGroupBehavior.js.map +1 -1
  804. package/dist/date/calendar.cjs +1 -1
  805. package/dist/date/calendar.cjs.map +1 -1
  806. package/dist/date/calendar.js +1 -1
  807. package/dist/date/calendar.js.map +1 -1
  808. package/dist/date/comparators.cjs +6 -4
  809. package/dist/date/comparators.cjs.map +1 -1
  810. package/dist/date/comparators.js +6 -4
  811. package/dist/date/comparators.js.map +1 -1
  812. package/dist/date/parser.cjs +22 -7
  813. package/dist/date/parser.cjs.map +1 -1
  814. package/dist/date/parser.js +23 -8
  815. package/dist/date/parser.js.map +1 -1
  816. package/dist/date/useDateField.cjs +21 -6
  817. package/dist/date/useDateField.cjs.map +1 -1
  818. package/dist/date/useDateField.js +21 -6
  819. package/dist/date/useDateField.js.map +1 -1
  820. package/dist/date/utils.cjs +37 -8
  821. package/dist/date/utils.cjs.map +1 -1
  822. package/dist/date/utils.js +36 -9
  823. package/dist/date/utils.js.map +1 -1
  824. package/dist/date.d.ts +2 -2
  825. package/dist/index.cjs +347 -347
  826. package/dist/index.cjs.map +1 -1
  827. package/dist/index.d.ts +1558 -1552
  828. package/dist/index.js +161 -161
  829. package/dist/index.js.map +1 -1
  830. package/dist/shared/createContext.cjs.map +1 -1
  831. package/dist/shared/createContext.js.map +1 -1
  832. package/dist/shared/renderSlotFragments.cjs.map +1 -1
  833. package/dist/shared/renderSlotFragments.js.map +1 -1
  834. package/dist/shared/useArrowNavigation.cjs.map +1 -1
  835. package/dist/shared/useArrowNavigation.js.map +1 -1
  836. package/dist/shared/useBodyScrollLock.cjs +3 -3
  837. package/dist/shared/useBodyScrollLock.cjs.map +1 -1
  838. package/dist/shared/useBodyScrollLock.js +3 -3
  839. package/dist/shared/useBodyScrollLock.js.map +1 -1
  840. package/dist/shared/useDateFormatter.cjs +12 -10
  841. package/dist/shared/useDateFormatter.cjs.map +1 -1
  842. package/dist/shared/useDateFormatter.js +12 -10
  843. package/dist/shared/useDateFormatter.js.map +1 -1
  844. package/dist/shared/useDirection.cjs.map +1 -1
  845. package/dist/shared/useDirection.js.map +1 -1
  846. package/dist/shared/useFilter.cjs.map +1 -1
  847. package/dist/shared/useFilter.js.map +1 -1
  848. package/dist/shared/useFormControl.cjs.map +1 -1
  849. package/dist/shared/useFormControl.js.map +1 -1
  850. package/dist/shared/useForwardExpose.cjs.map +1 -1
  851. package/dist/shared/useForwardExpose.js.map +1 -1
  852. package/dist/shared/useForwardProps.cjs +4 -2
  853. package/dist/shared/useForwardProps.cjs.map +1 -1
  854. package/dist/shared/useForwardProps.js +5 -3
  855. package/dist/shared/useForwardProps.js.map +1 -1
  856. package/dist/shared/useForwardPropsEmits.cjs.map +1 -1
  857. package/dist/shared/useForwardPropsEmits.js.map +1 -1
  858. package/dist/shared/useGraceArea.cjs +1 -1
  859. package/dist/shared/useGraceArea.cjs.map +1 -1
  860. package/dist/shared/useGraceArea.js +1 -1
  861. package/dist/shared/useGraceArea.js.map +1 -1
  862. package/dist/shared/useHideOthers.cjs.map +1 -1
  863. package/dist/shared/useHideOthers.js.map +1 -1
  864. package/dist/shared/useId.cjs +2 -2
  865. package/dist/shared/useId.cjs.map +1 -1
  866. package/dist/shared/useId.js +2 -2
  867. package/dist/shared/useId.js.map +1 -1
  868. package/dist/shared/useLocale.cjs.map +1 -1
  869. package/dist/shared/useLocale.js.map +1 -1
  870. package/dist/shared/useNonce.cjs.map +1 -1
  871. package/dist/shared/useNonce.js.map +1 -1
  872. package/dist/shared/useSelectionBehavior.cjs +2 -2
  873. package/dist/shared/useSelectionBehavior.cjs.map +1 -1
  874. package/dist/shared/useSelectionBehavior.js +2 -2
  875. package/dist/shared/useSelectionBehavior.js.map +1 -1
  876. package/dist/shared/useSingleOrMultipleValue.cjs +1 -1
  877. package/dist/shared/useSingleOrMultipleValue.cjs.map +1 -1
  878. package/dist/shared/useSingleOrMultipleValue.js +1 -1
  879. package/dist/shared/useSingleOrMultipleValue.js.map +1 -1
  880. package/dist/shared/useSize.cjs.map +1 -1
  881. package/dist/shared/useSize.js.map +1 -1
  882. package/dist/shared/useStateMachine.cjs.map +1 -1
  883. package/dist/shared/useStateMachine.js.map +1 -1
  884. package/dist/shared/withDefault.cjs.map +1 -1
  885. package/dist/shared/withDefault.js.map +1 -1
  886. package/dist/utils/calculate.cjs +1 -1
  887. package/dist/utils/calculate.cjs.map +1 -1
  888. package/dist/utils/calculate.js +1 -1
  889. package/dist/utils/calculate.js.map +1 -1
  890. package/dist/utils/dom.cjs.map +1 -1
  891. package/dist/utils/dom.js.map +1 -1
  892. package/dist/utils/registry.cjs +1 -1
  893. package/dist/utils/registry.cjs.map +1 -1
  894. package/dist/utils/registry.js +1 -1
  895. package/dist/utils/registry.js.map +1 -1
  896. package/dist/utils/resizePanel.cjs +1 -1
  897. package/dist/utils/resizePanel.cjs.map +1 -1
  898. package/dist/utils/resizePanel.js +1 -1
  899. package/dist/utils/resizePanel.js.map +1 -1
  900. package/dist/utils/style.cjs.map +1 -1
  901. package/dist/utils/style.js.map +1 -1
  902. package/package.json +7 -8
@@ -1 +1 @@
1
- {"version":3,"file":"Viewport.cjs","sources":["../../src/Viewport/Viewport.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { PrimitiveProps } from '@/Primitive'\nimport { useForwardExpose } from '@/shared'\nimport { useNonce } from '@/shared/useNonce'\nimport { toRefs } from 'vue'\n\nexport interface ViewportProps extends PrimitiveProps {\n /**\n * Will add `nonce` attribute to the style tag which can be used by Content Security Policy. <br> If omitted, inherits globally from `ConfigProvider`.\n */\n nonce?: string\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { Primitive } from '@/Primitive'\n\nconst props = defineProps<ViewportProps>()\nconst { forwardRef } = useForwardExpose()\n\nconst { nonce: propNonce } = toRefs(props)\nconst nonce = useNonce(propNonce)\n</script>\n\n<template>\n <Primitive\n v-bind=\"{ ...$attrs, ...props }\"\n :ref=\"forwardRef\"\n data-reka-viewport\n role=\"presentation\"\n :style=\"{\n // we use position: 'relative' here on the `viewport` so that when we call\n // `selectedItem.offsetTop` in calculations, the offset is relative to the viewport\n // (independent of the scrollUpButton).\n position: 'relative',\n flex: 1,\n overflow: 'auto',\n }\"\n >\n <slot />\n </Primitive>\n <Primitive\n as=\"style\"\n :nonce=\"nonce\"\n >\n /* Hide scrollbars cross-browser and enable momentum scroll for touch\n devices */ [data-reka-viewport] { scrollbar-width:none; -ms-overflow-style: none;\n -webkit-overflow-scrolling: touch; }\n [data-reka-viewport]::-webkit-scrollbar { display: none; }\n </Primitive>\n</template>\n"],"names":["useForwardExpose","toRefs","useNonce"],"mappings":";;;;;;;;;;;;;;;AAiBA,IAAA,MAAM,KAAQ,GAAA,OAAA;AACd,IAAM,MAAA,EAAE,UAAW,EAAA,GAAIA,wCAAiB,EAAA;AAExC,IAAA,MAAM,EAAE,KAAA,EAAO,SAAU,EAAA,GAAIC,WAAO,KAAK,CAAA;AACzC,IAAM,MAAA,KAAA,GAAQC,yBAAS,SAAS,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"Viewport.cjs","sources":["../../src/Viewport/Viewport.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { PrimitiveProps } from '@/Primitive'\nimport { toRefs } from 'vue'\nimport { useForwardExpose } from '@/shared'\nimport { useNonce } from '@/shared/useNonce'\n\nexport interface ViewportProps extends PrimitiveProps {\n /**\n * Will add `nonce` attribute to the style tag which can be used by Content Security Policy. <br> If omitted, inherits globally from `ConfigProvider`.\n */\n nonce?: string\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { Primitive } from '@/Primitive'\n\nconst props = defineProps<ViewportProps>()\nconst { forwardRef } = useForwardExpose()\n\nconst { nonce: propNonce } = toRefs(props)\nconst nonce = useNonce(propNonce)\n</script>\n\n<template>\n <Primitive\n v-bind=\"{ ...$attrs, ...props }\"\n :ref=\"forwardRef\"\n data-reka-viewport\n role=\"presentation\"\n :style=\"{\n // we use position: 'relative' here on the `viewport` so that when we call\n // `selectedItem.offsetTop` in calculations, the offset is relative to the viewport\n // (independent of the scrollUpButton).\n position: 'relative',\n flex: 1,\n overflow: 'auto',\n }\"\n >\n <slot />\n </Primitive>\n <Primitive\n as=\"style\"\n :nonce=\"nonce\"\n >\n /* Hide scrollbars cross-browser and enable momentum scroll for touch\n devices */ [data-reka-viewport] { scrollbar-width:none; -ms-overflow-style: none;\n -webkit-overflow-scrolling: touch; }\n [data-reka-viewport]::-webkit-scrollbar { display: none; }\n </Primitive>\n</template>\n"],"names":["useForwardExpose","toRefs","useNonce"],"mappings":";;;;;;;;;;;;;;;AAiBA,IAAA,MAAM,KAAQ,GAAA,OAAA;AACd,IAAM,MAAA,EAAE,UAAW,EAAA,GAAIA,wCAAiB,EAAA;AAExC,IAAA,MAAM,EAAE,KAAA,EAAO,SAAU,EAAA,GAAIC,WAAO,KAAK,CAAA;AACzC,IAAM,MAAA,KAAA,GAAQC,yBAAS,SAAS,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Viewport.js","sources":["../../src/Viewport/Viewport.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { PrimitiveProps } from '@/Primitive'\nimport { useForwardExpose } from '@/shared'\nimport { useNonce } from '@/shared/useNonce'\nimport { toRefs } from 'vue'\n\nexport interface ViewportProps extends PrimitiveProps {\n /**\n * Will add `nonce` attribute to the style tag which can be used by Content Security Policy. <br> If omitted, inherits globally from `ConfigProvider`.\n */\n nonce?: string\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { Primitive } from '@/Primitive'\n\nconst props = defineProps<ViewportProps>()\nconst { forwardRef } = useForwardExpose()\n\nconst { nonce: propNonce } = toRefs(props)\nconst nonce = useNonce(propNonce)\n</script>\n\n<template>\n <Primitive\n v-bind=\"{ ...$attrs, ...props }\"\n :ref=\"forwardRef\"\n data-reka-viewport\n role=\"presentation\"\n :style=\"{\n // we use position: 'relative' here on the `viewport` so that when we call\n // `selectedItem.offsetTop` in calculations, the offset is relative to the viewport\n // (independent of the scrollUpButton).\n position: 'relative',\n flex: 1,\n overflow: 'auto',\n }\"\n >\n <slot />\n </Primitive>\n <Primitive\n as=\"style\"\n :nonce=\"nonce\"\n >\n /* Hide scrollbars cross-browser and enable momentum scroll for touch\n devices */ [data-reka-viewport] { scrollbar-width:none; -ms-overflow-style: none;\n -webkit-overflow-scrolling: touch; }\n [data-reka-viewport]::-webkit-scrollbar { display: none; }\n </Primitive>\n</template>\n"],"names":[],"mappings":";;;;;;;;;;;;;AAiBA,IAAA,MAAM,KAAQ,GAAA,OAAA;AACd,IAAM,MAAA,EAAE,UAAW,EAAA,GAAI,gBAAiB,EAAA;AAExC,IAAA,MAAM,EAAE,KAAA,EAAO,SAAU,EAAA,GAAI,OAAO,KAAK,CAAA;AACzC,IAAM,MAAA,KAAA,GAAQ,SAAS,SAAS,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"Viewport.js","sources":["../../src/Viewport/Viewport.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { PrimitiveProps } from '@/Primitive'\nimport { toRefs } from 'vue'\nimport { useForwardExpose } from '@/shared'\nimport { useNonce } from '@/shared/useNonce'\n\nexport interface ViewportProps extends PrimitiveProps {\n /**\n * Will add `nonce` attribute to the style tag which can be used by Content Security Policy. <br> If omitted, inherits globally from `ConfigProvider`.\n */\n nonce?: string\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { Primitive } from '@/Primitive'\n\nconst props = defineProps<ViewportProps>()\nconst { forwardRef } = useForwardExpose()\n\nconst { nonce: propNonce } = toRefs(props)\nconst nonce = useNonce(propNonce)\n</script>\n\n<template>\n <Primitive\n v-bind=\"{ ...$attrs, ...props }\"\n :ref=\"forwardRef\"\n data-reka-viewport\n role=\"presentation\"\n :style=\"{\n // we use position: 'relative' here on the `viewport` so that when we call\n // `selectedItem.offsetTop` in calculations, the offset is relative to the viewport\n // (independent of the scrollUpButton).\n position: 'relative',\n flex: 1,\n overflow: 'auto',\n }\"\n >\n <slot />\n </Primitive>\n <Primitive\n as=\"style\"\n :nonce=\"nonce\"\n >\n /* Hide scrollbars cross-browser and enable momentum scroll for touch\n devices */ [data-reka-viewport] { scrollbar-width:none; -ms-overflow-style: none;\n -webkit-overflow-scrolling: touch; }\n [data-reka-viewport]::-webkit-scrollbar { display: none; }\n </Primitive>\n</template>\n"],"names":[],"mappings":";;;;;;;;;;;;;AAiBA,IAAA,MAAM,KAAQ,GAAA,OAAA;AACd,IAAM,MAAA,EAAE,UAAW,EAAA,GAAI,gBAAiB,EAAA;AAExC,IAAA,MAAM,EAAE,KAAA,EAAO,SAAU,EAAA,GAAI,OAAO,KAAK,CAAA;AACzC,IAAM,MAAA,KAAA,GAAQ,SAAS,SAAS,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"VisuallyHiddenInput.cjs","sources":["../../src/VisuallyHidden/VisuallyHiddenInput.vue"],"sourcesContent":["<script setup lang=\"ts\" generic=\"T\">\nimport { computed } from 'vue'\nimport VisuallyHiddenInputBubble, { type VisuallyHiddenInputBubbleProps } from './VisuallyHiddenInputBubble.vue'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst props = withDefaults(defineProps<VisuallyHiddenInputBubbleProps<T>>(), {\n feature: 'fully-hidden',\n checked: undefined,\n})\n\nconst isFormArrayEmptyAndRequired = computed(() =>\n typeof props.value === 'object'\n && Array.isArray(props.value)\n && props.value.length === 0\n && props.required,\n)\n\nconst parsedValue = computed(() => {\n // if primitive value\n if (typeof props.value === 'string' || typeof props.value === 'number' || typeof props.value === 'boolean') {\n return [{ name: props.name, value: props.value }]\n }\n\n // if array value\n else if (typeof props.value === 'object' && Array.isArray(props.value)) {\n return props.value.flatMap((obj, index) => {\n // if item in array is object\n if (typeof obj === 'object')\n return Object.entries(obj).map(([key, value]) => ({ name: `[${props.name}][${index}][${key}]`, value }))\n // if item in array is not object, may be primitive\n else\n return ({ name: `[${props.name}][${index}]`, value: obj })\n })\n }\n\n // if object value\n else if (props.value !== null && typeof props.value === 'object' && !Array.isArray(props.value)) {\n return Object.entries(props.value as object).map(([key, value]) => ({ name: `[${props.name}][${key}]`, value }))\n }\n\n return []\n})\n</script>\n\n<template>\n <!-- We render single input if it's required -->\n <VisuallyHiddenInputBubble\n v-if=\"isFormArrayEmptyAndRequired\"\n :key=\"name\"\n v-bind=\"{ ...props, ...$attrs }\"\n :name=\"name\"\n :value=\"value\"\n />\n\n <VisuallyHiddenInputBubble\n v-for=\"parsed in parsedValue\"\n v-else\n :key=\"parsed.name\"\n v-bind=\"{ ...props, ...$attrs }\"\n :name=\"parsed.name\"\n :value=\"parsed.value\"\n />\n</template>\n"],"names":["computed"],"mappings":";;;;;;;;;;;;;;;;;;;AAQA,IAAA,MAAM,KAAQ,GAAA,OAAA;AAKd,IAAA,MAAM,2BAA8B,GAAAA,YAAA;AAAA,MAAS,MAC3C,OAAO,KAAM,CAAA,KAAA,KAAU,YACpB,KAAM,CAAA,OAAA,CAAQ,KAAM,CAAA,KAAK,CACzB,IAAA,KAAA,CAAM,KAAM,CAAA,MAAA,KAAW,KACvB,KAAM,CAAA;AAAA,KACX;AAEA,IAAM,MAAA,WAAA,GAAcA,aAAS,MAAM;AAEjC,MAAI,IAAA,OAAO,KAAM,CAAA,KAAA,KAAU,QAAY,IAAA,OAAO,KAAM,CAAA,KAAA,KAAU,QAAY,IAAA,OAAO,KAAM,CAAA,KAAA,KAAU,SAAW,EAAA;AAC1G,QAAO,OAAA,CAAC,EAAE,IAAM,EAAA,KAAA,CAAM,MAAM,KAAO,EAAA,KAAA,CAAM,OAAO,CAAA;AAAA,OAClD,MAAA,IAGS,OAAO,KAAM,CAAA,KAAA,KAAU,YAAY,KAAM,CAAA,OAAA,CAAQ,KAAM,CAAA,KAAK,CAAG,EAAA;AACtE,QAAA,OAAO,KAAM,CAAA,KAAA,CAAM,OAAQ,CAAA,CAAC,KAAK,KAAU,KAAA;AAEzC,UAAA,IAAI,OAAO,GAAQ,KAAA,QAAA;AACjB,YAAO,OAAA,MAAA,CAAO,QAAQ,GAAG,CAAA,CAAE,IAAI,CAAC,CAAC,KAAK,KAAK,CAAA,MAAO,EAAE,IAAM,EAAA,CAAA,CAAA,EAAI,MAAM,IAAI,CAAA,EAAA,EAAK,KAAK,CAAK,EAAA,EAAA,GAAG,CAAK,CAAA,CAAA,EAAA,KAAA,EAAQ,CAAA,CAAA;AAAA;AAGvG,YAAQ,OAAA,EAAE,MAAM,CAAI,CAAA,EAAA,KAAA,CAAM,IAAI,CAAK,EAAA,EAAA,KAAK,CAAK,CAAA,CAAA,EAAA,KAAA,EAAO,GAAI,EAAA;AAAA,SAC3D,CAAA;AAAA,OAIM,MAAA,IAAA,KAAA,CAAM,KAAU,KAAA,IAAA,IAAQ,OAAO,KAAA,CAAM,KAAU,KAAA,QAAA,IAAY,CAAC,KAAA,CAAM,OAAQ,CAAA,KAAA,CAAM,KAAK,CAAG,EAAA;AAC/F,QAAO,OAAA,MAAA,CAAO,QAAQ,KAAM,CAAA,KAAe,EAAE,GAAI,CAAA,CAAC,CAAC,GAAK,EAAA,KAAK,OAAO,EAAE,IAAA,EAAM,IAAI,KAAM,CAAA,IAAI,KAAK,GAAG,CAAA,CAAA,CAAA,EAAK,OAAQ,CAAA,CAAA;AAAA;AAGjH,MAAA,OAAO,EAAC;AAAA,KACT,CAAA;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"VisuallyHiddenInput.cjs","sources":["../../src/VisuallyHidden/VisuallyHiddenInput.vue"],"sourcesContent":["<script setup lang=\"ts\" generic=\"T\">\nimport type { VisuallyHiddenInputBubbleProps } from './VisuallyHiddenInputBubble.vue'\nimport { computed } from 'vue'\nimport VisuallyHiddenInputBubble from './VisuallyHiddenInputBubble.vue'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst props = withDefaults(defineProps<VisuallyHiddenInputBubbleProps<T>>(), {\n feature: 'fully-hidden',\n checked: undefined,\n})\n\nconst isFormArrayEmptyAndRequired = computed(() =>\n typeof props.value === 'object'\n && Array.isArray(props.value)\n && props.value.length === 0\n && props.required,\n)\n\nconst parsedValue = computed(() => {\n // if primitive value\n if (typeof props.value === 'string' || typeof props.value === 'number' || typeof props.value === 'boolean') {\n return [{ name: props.name, value: props.value }]\n }\n\n // if array value\n else if (typeof props.value === 'object' && Array.isArray(props.value)) {\n return props.value.flatMap((obj, index) => {\n // if item in array is object\n if (typeof obj === 'object')\n return Object.entries(obj).map(([key, value]) => ({ name: `[${props.name}][${index}][${key}]`, value }))\n // if item in array is not object, may be primitive\n else\n return ({ name: `[${props.name}][${index}]`, value: obj })\n })\n }\n\n // if object value\n else if (props.value !== null && typeof props.value === 'object' && !Array.isArray(props.value)) {\n return Object.entries(props.value as object).map(([key, value]) => ({ name: `[${props.name}][${key}]`, value }))\n }\n\n return []\n})\n</script>\n\n<template>\n <!-- We render single input if it's required -->\n <VisuallyHiddenInputBubble\n v-if=\"isFormArrayEmptyAndRequired\"\n :key=\"name\"\n v-bind=\"{ ...props, ...$attrs }\"\n :name=\"name\"\n :value=\"value\"\n />\n\n <VisuallyHiddenInputBubble\n v-for=\"parsed in parsedValue\"\n v-else\n :key=\"parsed.name\"\n v-bind=\"{ ...props, ...$attrs }\"\n :name=\"parsed.name\"\n :value=\"parsed.value\"\n />\n</template>\n"],"names":["computed"],"mappings":";;;;;;;;;;;;;;;;;;;AASA,IAAA,MAAM,KAAQ,GAAA,OAAA;AAKd,IAAA,MAAM,2BAA8B,GAAAA,YAAA;AAAA,MAAS,MAC3C,OAAO,KAAM,CAAA,KAAA,KAAU,YACpB,KAAM,CAAA,OAAA,CAAQ,KAAM,CAAA,KAAK,CACzB,IAAA,KAAA,CAAM,KAAM,CAAA,MAAA,KAAW,KACvB,KAAM,CAAA;AAAA,KACX;AAEA,IAAM,MAAA,WAAA,GAAcA,aAAS,MAAM;AAEjC,MAAI,IAAA,OAAO,KAAM,CAAA,KAAA,KAAU,QAAY,IAAA,OAAO,KAAM,CAAA,KAAA,KAAU,QAAY,IAAA,OAAO,KAAM,CAAA,KAAA,KAAU,SAAW,EAAA;AAC1G,QAAO,OAAA,CAAC,EAAE,IAAM,EAAA,KAAA,CAAM,MAAM,KAAO,EAAA,KAAA,CAAM,OAAO,CAAA;AAAA,OAClD,MAAA,IAGS,OAAO,KAAM,CAAA,KAAA,KAAU,YAAY,KAAM,CAAA,OAAA,CAAQ,KAAM,CAAA,KAAK,CAAG,EAAA;AACtE,QAAA,OAAO,KAAM,CAAA,KAAA,CAAM,OAAQ,CAAA,CAAC,KAAK,KAAU,KAAA;AAEzC,UAAA,IAAI,OAAO,GAAQ,KAAA,QAAA;AACjB,YAAO,OAAA,MAAA,CAAO,QAAQ,GAAG,CAAA,CAAE,IAAI,CAAC,CAAC,KAAK,KAAK,CAAA,MAAO,EAAE,IAAM,EAAA,CAAA,CAAA,EAAI,MAAM,IAAI,CAAA,EAAA,EAAK,KAAK,CAAK,EAAA,EAAA,GAAG,CAAK,CAAA,CAAA,EAAA,KAAA,EAAQ,CAAA,CAAA;AAAA;AAGvG,YAAQ,OAAA,EAAE,MAAM,CAAI,CAAA,EAAA,KAAA,CAAM,IAAI,CAAK,EAAA,EAAA,KAAK,CAAK,CAAA,CAAA,EAAA,KAAA,EAAO,GAAI,EAAA;AAAA,SAC3D,CAAA;AAAA,OAIM,MAAA,IAAA,KAAA,CAAM,KAAU,KAAA,IAAA,IAAQ,OAAO,KAAA,CAAM,KAAU,KAAA,QAAA,IAAY,CAAC,KAAA,CAAM,OAAQ,CAAA,KAAA,CAAM,KAAK,CAAG,EAAA;AAC/F,QAAO,OAAA,MAAA,CAAO,QAAQ,KAAM,CAAA,KAAe,EAAE,GAAI,CAAA,CAAC,CAAC,GAAK,EAAA,KAAK,OAAO,EAAE,IAAA,EAAM,IAAI,KAAM,CAAA,IAAI,KAAK,GAAG,CAAA,CAAA,CAAA,EAAK,OAAQ,CAAA,CAAA;AAAA;AAGjH,MAAA,OAAO,EAAC;AAAA,KACT,CAAA;;;;;;;;;;;;;;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"VisuallyHiddenInput.js","sources":["../../src/VisuallyHidden/VisuallyHiddenInput.vue"],"sourcesContent":["<script setup lang=\"ts\" generic=\"T\">\nimport { computed } from 'vue'\nimport VisuallyHiddenInputBubble, { type VisuallyHiddenInputBubbleProps } from './VisuallyHiddenInputBubble.vue'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst props = withDefaults(defineProps<VisuallyHiddenInputBubbleProps<T>>(), {\n feature: 'fully-hidden',\n checked: undefined,\n})\n\nconst isFormArrayEmptyAndRequired = computed(() =>\n typeof props.value === 'object'\n && Array.isArray(props.value)\n && props.value.length === 0\n && props.required,\n)\n\nconst parsedValue = computed(() => {\n // if primitive value\n if (typeof props.value === 'string' || typeof props.value === 'number' || typeof props.value === 'boolean') {\n return [{ name: props.name, value: props.value }]\n }\n\n // if array value\n else if (typeof props.value === 'object' && Array.isArray(props.value)) {\n return props.value.flatMap((obj, index) => {\n // if item in array is object\n if (typeof obj === 'object')\n return Object.entries(obj).map(([key, value]) => ({ name: `[${props.name}][${index}][${key}]`, value }))\n // if item in array is not object, may be primitive\n else\n return ({ name: `[${props.name}][${index}]`, value: obj })\n })\n }\n\n // if object value\n else if (props.value !== null && typeof props.value === 'object' && !Array.isArray(props.value)) {\n return Object.entries(props.value as object).map(([key, value]) => ({ name: `[${props.name}][${key}]`, value }))\n }\n\n return []\n})\n</script>\n\n<template>\n <!-- We render single input if it's required -->\n <VisuallyHiddenInputBubble\n v-if=\"isFormArrayEmptyAndRequired\"\n :key=\"name\"\n v-bind=\"{ ...props, ...$attrs }\"\n :name=\"name\"\n :value=\"value\"\n />\n\n <VisuallyHiddenInputBubble\n v-for=\"parsed in parsedValue\"\n v-else\n :key=\"parsed.name\"\n v-bind=\"{ ...props, ...$attrs }\"\n :name=\"parsed.name\"\n :value=\"parsed.value\"\n />\n</template>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAQA,IAAA,MAAM,KAAQ,GAAA,OAAA;AAKd,IAAA,MAAM,2BAA8B,GAAA,QAAA;AAAA,MAAS,MAC3C,OAAO,KAAM,CAAA,KAAA,KAAU,YACpB,KAAM,CAAA,OAAA,CAAQ,KAAM,CAAA,KAAK,CACzB,IAAA,KAAA,CAAM,KAAM,CAAA,MAAA,KAAW,KACvB,KAAM,CAAA;AAAA,KACX;AAEA,IAAM,MAAA,WAAA,GAAc,SAAS,MAAM;AAEjC,MAAI,IAAA,OAAO,KAAM,CAAA,KAAA,KAAU,QAAY,IAAA,OAAO,KAAM,CAAA,KAAA,KAAU,QAAY,IAAA,OAAO,KAAM,CAAA,KAAA,KAAU,SAAW,EAAA;AAC1G,QAAO,OAAA,CAAC,EAAE,IAAM,EAAA,KAAA,CAAM,MAAM,KAAO,EAAA,KAAA,CAAM,OAAO,CAAA;AAAA,OAClD,MAAA,IAGS,OAAO,KAAM,CAAA,KAAA,KAAU,YAAY,KAAM,CAAA,OAAA,CAAQ,KAAM,CAAA,KAAK,CAAG,EAAA;AACtE,QAAA,OAAO,KAAM,CAAA,KAAA,CAAM,OAAQ,CAAA,CAAC,KAAK,KAAU,KAAA;AAEzC,UAAA,IAAI,OAAO,GAAQ,KAAA,QAAA;AACjB,YAAO,OAAA,MAAA,CAAO,QAAQ,GAAG,CAAA,CAAE,IAAI,CAAC,CAAC,KAAK,KAAK,CAAA,MAAO,EAAE,IAAM,EAAA,CAAA,CAAA,EAAI,MAAM,IAAI,CAAA,EAAA,EAAK,KAAK,CAAK,EAAA,EAAA,GAAG,CAAK,CAAA,CAAA,EAAA,KAAA,EAAQ,CAAA,CAAA;AAAA;AAGvG,YAAQ,OAAA,EAAE,MAAM,CAAI,CAAA,EAAA,KAAA,CAAM,IAAI,CAAK,EAAA,EAAA,KAAK,CAAK,CAAA,CAAA,EAAA,KAAA,EAAO,GAAI,EAAA;AAAA,SAC3D,CAAA;AAAA,OAIM,MAAA,IAAA,KAAA,CAAM,KAAU,KAAA,IAAA,IAAQ,OAAO,KAAA,CAAM,KAAU,KAAA,QAAA,IAAY,CAAC,KAAA,CAAM,OAAQ,CAAA,KAAA,CAAM,KAAK,CAAG,EAAA;AAC/F,QAAO,OAAA,MAAA,CAAO,QAAQ,KAAM,CAAA,KAAe,EAAE,GAAI,CAAA,CAAC,CAAC,GAAK,EAAA,KAAK,OAAO,EAAE,IAAA,EAAM,IAAI,KAAM,CAAA,IAAI,KAAK,GAAG,CAAA,CAAA,CAAA,EAAK,OAAQ,CAAA,CAAA;AAAA;AAGjH,MAAA,OAAO,EAAC;AAAA,KACT,CAAA;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"VisuallyHiddenInput.js","sources":["../../src/VisuallyHidden/VisuallyHiddenInput.vue"],"sourcesContent":["<script setup lang=\"ts\" generic=\"T\">\nimport type { VisuallyHiddenInputBubbleProps } from './VisuallyHiddenInputBubble.vue'\nimport { computed } from 'vue'\nimport VisuallyHiddenInputBubble from './VisuallyHiddenInputBubble.vue'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst props = withDefaults(defineProps<VisuallyHiddenInputBubbleProps<T>>(), {\n feature: 'fully-hidden',\n checked: undefined,\n})\n\nconst isFormArrayEmptyAndRequired = computed(() =>\n typeof props.value === 'object'\n && Array.isArray(props.value)\n && props.value.length === 0\n && props.required,\n)\n\nconst parsedValue = computed(() => {\n // if primitive value\n if (typeof props.value === 'string' || typeof props.value === 'number' || typeof props.value === 'boolean') {\n return [{ name: props.name, value: props.value }]\n }\n\n // if array value\n else if (typeof props.value === 'object' && Array.isArray(props.value)) {\n return props.value.flatMap((obj, index) => {\n // if item in array is object\n if (typeof obj === 'object')\n return Object.entries(obj).map(([key, value]) => ({ name: `[${props.name}][${index}][${key}]`, value }))\n // if item in array is not object, may be primitive\n else\n return ({ name: `[${props.name}][${index}]`, value: obj })\n })\n }\n\n // if object value\n else if (props.value !== null && typeof props.value === 'object' && !Array.isArray(props.value)) {\n return Object.entries(props.value as object).map(([key, value]) => ({ name: `[${props.name}][${key}]`, value }))\n }\n\n return []\n})\n</script>\n\n<template>\n <!-- We render single input if it's required -->\n <VisuallyHiddenInputBubble\n v-if=\"isFormArrayEmptyAndRequired\"\n :key=\"name\"\n v-bind=\"{ ...props, ...$attrs }\"\n :name=\"name\"\n :value=\"value\"\n />\n\n <VisuallyHiddenInputBubble\n v-for=\"parsed in parsedValue\"\n v-else\n :key=\"parsed.name\"\n v-bind=\"{ ...props, ...$attrs }\"\n :name=\"parsed.name\"\n :value=\"parsed.value\"\n />\n</template>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AASA,IAAA,MAAM,KAAQ,GAAA,OAAA;AAKd,IAAA,MAAM,2BAA8B,GAAA,QAAA;AAAA,MAAS,MAC3C,OAAO,KAAM,CAAA,KAAA,KAAU,YACpB,KAAM,CAAA,OAAA,CAAQ,KAAM,CAAA,KAAK,CACzB,IAAA,KAAA,CAAM,KAAM,CAAA,MAAA,KAAW,KACvB,KAAM,CAAA;AAAA,KACX;AAEA,IAAM,MAAA,WAAA,GAAc,SAAS,MAAM;AAEjC,MAAI,IAAA,OAAO,KAAM,CAAA,KAAA,KAAU,QAAY,IAAA,OAAO,KAAM,CAAA,KAAA,KAAU,QAAY,IAAA,OAAO,KAAM,CAAA,KAAA,KAAU,SAAW,EAAA;AAC1G,QAAO,OAAA,CAAC,EAAE,IAAM,EAAA,KAAA,CAAM,MAAM,KAAO,EAAA,KAAA,CAAM,OAAO,CAAA;AAAA,OAClD,MAAA,IAGS,OAAO,KAAM,CAAA,KAAA,KAAU,YAAY,KAAM,CAAA,OAAA,CAAQ,KAAM,CAAA,KAAK,CAAG,EAAA;AACtE,QAAA,OAAO,KAAM,CAAA,KAAA,CAAM,OAAQ,CAAA,CAAC,KAAK,KAAU,KAAA;AAEzC,UAAA,IAAI,OAAO,GAAQ,KAAA,QAAA;AACjB,YAAO,OAAA,MAAA,CAAO,QAAQ,GAAG,CAAA,CAAE,IAAI,CAAC,CAAC,KAAK,KAAK,CAAA,MAAO,EAAE,IAAM,EAAA,CAAA,CAAA,EAAI,MAAM,IAAI,CAAA,EAAA,EAAK,KAAK,CAAK,EAAA,EAAA,GAAG,CAAK,CAAA,CAAA,EAAA,KAAA,EAAQ,CAAA,CAAA;AAAA;AAGvG,YAAQ,OAAA,EAAE,MAAM,CAAI,CAAA,EAAA,KAAA,CAAM,IAAI,CAAK,EAAA,EAAA,KAAK,CAAK,CAAA,CAAA,EAAA,KAAA,EAAO,GAAI,EAAA;AAAA,SAC3D,CAAA;AAAA,OAIM,MAAA,IAAA,KAAA,CAAM,KAAU,KAAA,IAAA,IAAQ,OAAO,KAAA,CAAM,KAAU,KAAA,QAAA,IAAY,CAAC,KAAA,CAAM,OAAQ,CAAA,KAAA,CAAM,KAAK,CAAG,EAAA;AAC/F,QAAO,OAAA,MAAA,CAAO,QAAQ,KAAM,CAAA,KAAe,EAAE,GAAI,CAAA,CAAC,CAAC,GAAK,EAAA,KAAK,OAAO,EAAE,IAAA,EAAM,IAAI,KAAM,CAAA,IAAI,KAAK,GAAG,CAAA,CAAA,CAAA,EAAK,OAAQ,CAAA,CAAA;AAAA;AAGjH,MAAA,OAAO,EAAC;AAAA,KACT,CAAA;;;;;;;;;;;;;;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"VisuallyHiddenInputBubble.cjs","sources":["../../src/VisuallyHidden/VisuallyHiddenInputBubble.vue"],"sourcesContent":["<script lang=\"ts\">\nexport interface VisuallyHiddenInputBubbleProps<T> {\n name: string\n value: T\n checked?: boolean\n required?: boolean\n disabled?: boolean\n feature?: VisuallyHiddenProps['feature']\n}\n</script>\n\n<script setup lang=\"ts\" generic=\"T\">\nimport { usePrimitiveElement } from '@/Primitive'\nimport VisuallyHidden, { type VisuallyHiddenProps } from './VisuallyHidden.vue'\nimport { computed, watch } from 'vue'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst props = withDefaults(defineProps<VisuallyHiddenInputBubbleProps<T>>(), {\n feature: 'fully-hidden',\n checked: undefined,\n})\n\nconst { primitiveElement, currentElement } = usePrimitiveElement()\nconst valueState = computed(() => props.checked ?? props.value)\n\nwatch(valueState, (cur, prev) => {\n if (!currentElement.value)\n return\n\n const input = currentElement.value as HTMLInputElement\n const inputProto = window.HTMLInputElement.prototype\n const descriptor = Object.getOwnPropertyDescriptor(inputProto, 'value') as PropertyDescriptor\n const setValue = descriptor.set\n if (setValue && cur !== prev) {\n const inputEvent = new Event('input', { bubbles: true })\n const changeEvent = new Event('change', { bubbles: true })\n setValue.call(input, cur)\n input.dispatchEvent(inputEvent)\n input.dispatchEvent(changeEvent)\n }\n})\n</script>\n\n<template>\n <VisuallyHidden\n ref=\"primitiveElement\"\n v-bind=\"{ ...props, ...$attrs }\"\n as=\"input\"\n />\n</template>\n"],"names":["usePrimitiveElement","computed","watch"],"mappings":";;;;;;;;;;;;;;;;;;;;AAoBA,IAAA,MAAM,KAAQ,GAAA,OAAA;AAKd,IAAA,MAAM,EAAE,gBAAA,EAAkB,cAAe,EAAA,GAAIA,iDAAoB,EAAA;AACjE,IAAA,MAAM,aAAaC,YAAS,CAAA,MAAM,KAAM,CAAA,OAAA,IAAW,MAAM,KAAK,CAAA;AAE9D,IAAMC,SAAA,CAAA,UAAA,EAAY,CAAC,GAAA,EAAK,IAAS,KAAA;AAC/B,MAAA,IAAI,CAAC,cAAe,CAAA,KAAA;AAClB,QAAA;AAEF,MAAA,MAAM,QAAQ,cAAe,CAAA,KAAA;AAC7B,MAAM,MAAA,UAAA,GAAa,OAAO,gBAAiB,CAAA,SAAA;AAC3C,MAAA,MAAM,UAAa,GAAA,MAAA,CAAO,wBAAyB,CAAA,UAAA,EAAY,OAAO,CAAA;AACtE,MAAA,MAAM,WAAW,UAAW,CAAA,GAAA;AAC5B,MAAI,IAAA,QAAA,IAAY,QAAQ,IAAM,EAAA;AAC5B,QAAA,MAAM,aAAa,IAAI,KAAA,CAAM,SAAS,EAAE,OAAA,EAAS,MAAM,CAAA;AACvD,QAAA,MAAM,cAAc,IAAI,KAAA,CAAM,UAAU,EAAE,OAAA,EAAS,MAAM,CAAA;AACzD,QAAS,QAAA,CAAA,IAAA,CAAK,OAAO,GAAG,CAAA;AACxB,QAAA,KAAA,CAAM,cAAc,UAAU,CAAA;AAC9B,QAAA,KAAA,CAAM,cAAc,WAAW,CAAA;AAAA;AACjC,KACD,CAAA;;;;;;;;;;;;"}
1
+ {"version":3,"file":"VisuallyHiddenInputBubble.cjs","sources":["../../src/VisuallyHidden/VisuallyHiddenInputBubble.vue"],"sourcesContent":["<script lang=\"ts\">\nexport interface VisuallyHiddenInputBubbleProps<T> {\n name: string\n value: T\n checked?: boolean\n required?: boolean\n disabled?: boolean\n feature?: VisuallyHiddenProps['feature']\n}\n</script>\n\n<script setup lang=\"ts\" generic=\"T\">\nimport type { VisuallyHiddenProps } from './VisuallyHidden.vue'\nimport { computed, watch } from 'vue'\nimport { usePrimitiveElement } from '@/Primitive'\nimport VisuallyHidden from './VisuallyHidden.vue'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst props = withDefaults(defineProps<VisuallyHiddenInputBubbleProps<T>>(), {\n feature: 'fully-hidden',\n checked: undefined,\n})\n\nconst { primitiveElement, currentElement } = usePrimitiveElement()\nconst valueState = computed(() => props.checked ?? props.value)\n\nwatch(valueState, (cur, prev) => {\n if (!currentElement.value)\n return\n\n const input = currentElement.value as HTMLInputElement\n const inputProto = window.HTMLInputElement.prototype\n const descriptor = Object.getOwnPropertyDescriptor(inputProto, 'value') as PropertyDescriptor\n const setValue = descriptor.set\n if (setValue && cur !== prev) {\n const inputEvent = new Event('input', { bubbles: true })\n const changeEvent = new Event('change', { bubbles: true })\n setValue.call(input, cur)\n input.dispatchEvent(inputEvent)\n input.dispatchEvent(changeEvent)\n }\n})\n</script>\n\n<template>\n <VisuallyHidden\n ref=\"primitiveElement\"\n v-bind=\"{ ...props, ...$attrs }\"\n as=\"input\"\n />\n</template>\n"],"names":["usePrimitiveElement","computed","watch"],"mappings":";;;;;;;;;;;;;;;;;;;;AAqBA,IAAA,MAAM,KAAQ,GAAA,OAAA;AAKd,IAAA,MAAM,EAAE,gBAAA,EAAkB,cAAe,EAAA,GAAIA,iDAAoB,EAAA;AACjE,IAAA,MAAM,aAAaC,YAAS,CAAA,MAAM,KAAM,CAAA,OAAA,IAAW,MAAM,KAAK,CAAA;AAE9D,IAAMC,SAAA,CAAA,UAAA,EAAY,CAAC,GAAA,EAAK,IAAS,KAAA;AAC/B,MAAA,IAAI,CAAC,cAAe,CAAA,KAAA;AAClB,QAAA;AAEF,MAAA,MAAM,QAAQ,cAAe,CAAA,KAAA;AAC7B,MAAM,MAAA,UAAA,GAAa,OAAO,gBAAiB,CAAA,SAAA;AAC3C,MAAA,MAAM,UAAa,GAAA,MAAA,CAAO,wBAAyB,CAAA,UAAA,EAAY,OAAO,CAAA;AACtE,MAAA,MAAM,WAAW,UAAW,CAAA,GAAA;AAC5B,MAAI,IAAA,QAAA,IAAY,QAAQ,IAAM,EAAA;AAC5B,QAAA,MAAM,aAAa,IAAI,KAAA,CAAM,SAAS,EAAE,OAAA,EAAS,MAAM,CAAA;AACvD,QAAA,MAAM,cAAc,IAAI,KAAA,CAAM,UAAU,EAAE,OAAA,EAAS,MAAM,CAAA;AACzD,QAAS,QAAA,CAAA,IAAA,CAAK,OAAO,GAAG,CAAA;AACxB,QAAA,KAAA,CAAM,cAAc,UAAU,CAAA;AAC9B,QAAA,KAAA,CAAM,cAAc,WAAW,CAAA;AAAA;AACjC,KACD,CAAA;;;;;;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"VisuallyHiddenInputBubble.js","sources":["../../src/VisuallyHidden/VisuallyHiddenInputBubble.vue"],"sourcesContent":["<script lang=\"ts\">\nexport interface VisuallyHiddenInputBubbleProps<T> {\n name: string\n value: T\n checked?: boolean\n required?: boolean\n disabled?: boolean\n feature?: VisuallyHiddenProps['feature']\n}\n</script>\n\n<script setup lang=\"ts\" generic=\"T\">\nimport { usePrimitiveElement } from '@/Primitive'\nimport VisuallyHidden, { type VisuallyHiddenProps } from './VisuallyHidden.vue'\nimport { computed, watch } from 'vue'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst props = withDefaults(defineProps<VisuallyHiddenInputBubbleProps<T>>(), {\n feature: 'fully-hidden',\n checked: undefined,\n})\n\nconst { primitiveElement, currentElement } = usePrimitiveElement()\nconst valueState = computed(() => props.checked ?? props.value)\n\nwatch(valueState, (cur, prev) => {\n if (!currentElement.value)\n return\n\n const input = currentElement.value as HTMLInputElement\n const inputProto = window.HTMLInputElement.prototype\n const descriptor = Object.getOwnPropertyDescriptor(inputProto, 'value') as PropertyDescriptor\n const setValue = descriptor.set\n if (setValue && cur !== prev) {\n const inputEvent = new Event('input', { bubbles: true })\n const changeEvent = new Event('change', { bubbles: true })\n setValue.call(input, cur)\n input.dispatchEvent(inputEvent)\n input.dispatchEvent(changeEvent)\n }\n})\n</script>\n\n<template>\n <VisuallyHidden\n ref=\"primitiveElement\"\n v-bind=\"{ ...props, ...$attrs }\"\n as=\"input\"\n />\n</template>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAoBA,IAAA,MAAM,KAAQ,GAAA,OAAA;AAKd,IAAA,MAAM,EAAE,gBAAA,EAAkB,cAAe,EAAA,GAAI,mBAAoB,EAAA;AACjE,IAAA,MAAM,aAAa,QAAS,CAAA,MAAM,KAAM,CAAA,OAAA,IAAW,MAAM,KAAK,CAAA;AAE9D,IAAM,KAAA,CAAA,UAAA,EAAY,CAAC,GAAA,EAAK,IAAS,KAAA;AAC/B,MAAA,IAAI,CAAC,cAAe,CAAA,KAAA;AAClB,QAAA;AAEF,MAAA,MAAM,QAAQ,cAAe,CAAA,KAAA;AAC7B,MAAM,MAAA,UAAA,GAAa,OAAO,gBAAiB,CAAA,SAAA;AAC3C,MAAA,MAAM,UAAa,GAAA,MAAA,CAAO,wBAAyB,CAAA,UAAA,EAAY,OAAO,CAAA;AACtE,MAAA,MAAM,WAAW,UAAW,CAAA,GAAA;AAC5B,MAAI,IAAA,QAAA,IAAY,QAAQ,IAAM,EAAA;AAC5B,QAAA,MAAM,aAAa,IAAI,KAAA,CAAM,SAAS,EAAE,OAAA,EAAS,MAAM,CAAA;AACvD,QAAA,MAAM,cAAc,IAAI,KAAA,CAAM,UAAU,EAAE,OAAA,EAAS,MAAM,CAAA;AACzD,QAAS,QAAA,CAAA,IAAA,CAAK,OAAO,GAAG,CAAA;AACxB,QAAA,KAAA,CAAM,cAAc,UAAU,CAAA;AAC9B,QAAA,KAAA,CAAM,cAAc,WAAW,CAAA;AAAA;AACjC,KACD,CAAA;;;;;;;;;;;;"}
1
+ {"version":3,"file":"VisuallyHiddenInputBubble.js","sources":["../../src/VisuallyHidden/VisuallyHiddenInputBubble.vue"],"sourcesContent":["<script lang=\"ts\">\nexport interface VisuallyHiddenInputBubbleProps<T> {\n name: string\n value: T\n checked?: boolean\n required?: boolean\n disabled?: boolean\n feature?: VisuallyHiddenProps['feature']\n}\n</script>\n\n<script setup lang=\"ts\" generic=\"T\">\nimport type { VisuallyHiddenProps } from './VisuallyHidden.vue'\nimport { computed, watch } from 'vue'\nimport { usePrimitiveElement } from '@/Primitive'\nimport VisuallyHidden from './VisuallyHidden.vue'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst props = withDefaults(defineProps<VisuallyHiddenInputBubbleProps<T>>(), {\n feature: 'fully-hidden',\n checked: undefined,\n})\n\nconst { primitiveElement, currentElement } = usePrimitiveElement()\nconst valueState = computed(() => props.checked ?? props.value)\n\nwatch(valueState, (cur, prev) => {\n if (!currentElement.value)\n return\n\n const input = currentElement.value as HTMLInputElement\n const inputProto = window.HTMLInputElement.prototype\n const descriptor = Object.getOwnPropertyDescriptor(inputProto, 'value') as PropertyDescriptor\n const setValue = descriptor.set\n if (setValue && cur !== prev) {\n const inputEvent = new Event('input', { bubbles: true })\n const changeEvent = new Event('change', { bubbles: true })\n setValue.call(input, cur)\n input.dispatchEvent(inputEvent)\n input.dispatchEvent(changeEvent)\n }\n})\n</script>\n\n<template>\n <VisuallyHidden\n ref=\"primitiveElement\"\n v-bind=\"{ ...props, ...$attrs }\"\n as=\"input\"\n />\n</template>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAqBA,IAAA,MAAM,KAAQ,GAAA,OAAA;AAKd,IAAA,MAAM,EAAE,gBAAA,EAAkB,cAAe,EAAA,GAAI,mBAAoB,EAAA;AACjE,IAAA,MAAM,aAAa,QAAS,CAAA,MAAM,KAAM,CAAA,OAAA,IAAW,MAAM,KAAK,CAAA;AAE9D,IAAM,KAAA,CAAA,UAAA,EAAY,CAAC,GAAA,EAAK,IAAS,KAAA;AAC/B,MAAA,IAAI,CAAC,cAAe,CAAA,KAAA;AAClB,QAAA;AAEF,MAAA,MAAM,QAAQ,cAAe,CAAA,KAAA;AAC7B,MAAM,MAAA,UAAA,GAAa,OAAO,gBAAiB,CAAA,SAAA;AAC3C,MAAA,MAAM,UAAa,GAAA,MAAA,CAAO,wBAAyB,CAAA,UAAA,EAAY,OAAO,CAAA;AACtE,MAAA,MAAM,WAAW,UAAW,CAAA,GAAA;AAC5B,MAAI,IAAA,QAAA,IAAY,QAAQ,IAAM,EAAA;AAC5B,QAAA,MAAM,aAAa,IAAI,KAAA,CAAM,SAAS,EAAE,OAAA,EAAS,MAAM,CAAA;AACvD,QAAA,MAAM,cAAc,IAAI,KAAA,CAAM,UAAU,EAAE,OAAA,EAAS,MAAM,CAAA;AACzD,QAAS,QAAA,CAAA,IAAA,CAAK,OAAO,GAAG,CAAA;AACxB,QAAA,KAAA,CAAM,cAAc,UAAU,CAAA;AAC9B,QAAA,KAAA,CAAM,cAAc,WAAW,CAAA;AAAA;AACjC,KACD,CAAA;;;;;;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"useWindowSplitterBehavior.cjs","sources":["../../src/Splitter/utils/composables/useWindowSplitterBehavior.ts"],"sourcesContent":["import { type Ref, watchEffect } from 'vue'\nimport type { ResizeHandler } from '../types'\nimport { assert } from '../assert'\nimport { getResizeHandleElement, getResizeHandleElementIndex, getResizeHandleElementsForGroup } from '../dom'\n\n// https://www.w3.org/WAI/ARIA/apg/patterns/windowsplitter/\n\nexport function useWindowSplitterResizeHandlerBehavior({\n disabled,\n handleId,\n resizeHandler,\n panelGroupElement,\n}: {\n disabled: Ref<boolean>\n handleId: string\n resizeHandler: Ref<ResizeHandler | null>\n panelGroupElement: Ref<ParentNode | null>\n}): void {\n watchEffect((onCleanup) => {\n const _panelGroupElement = panelGroupElement.value\n if (disabled.value || resizeHandler.value === null || _panelGroupElement === null)\n return\n\n const handleElement = getResizeHandleElement(handleId, _panelGroupElement)\n if (handleElement == null)\n return\n\n const onKeyDown = (event: KeyboardEvent) => {\n if (event.defaultPrevented)\n return\n\n switch (event.key) {\n case 'ArrowDown':\n case 'ArrowLeft':\n case 'ArrowRight':\n case 'ArrowUp':\n case 'End':\n case 'Home': {\n event.preventDefault()\n\n resizeHandler.value?.(event)\n break\n }\n case 'F6': {\n event.preventDefault()\n\n const groupId = handleElement.getAttribute('data-panel-group-id')\n assert(groupId)\n\n const handles = getResizeHandleElementsForGroup(\n groupId,\n _panelGroupElement,\n )\n const index = getResizeHandleElementIndex(\n groupId,\n handleId,\n _panelGroupElement,\n )\n\n assert(index !== null)\n\n const nextIndex = event.shiftKey\n ? index > 0\n ? index - 1\n : handles.length - 1\n : index + 1 < handles.length\n ? index + 1\n : 0\n\n const nextHandle = handles[nextIndex] as HTMLElement\n nextHandle.focus()\n\n break\n }\n }\n }\n\n handleElement.addEventListener('keydown', onKeyDown)\n onCleanup(() => {\n handleElement.removeEventListener('keydown', onKeyDown)\n })\n })\n}\n"],"names":["watchEffect","getResizeHandleElement","assert","getResizeHandleElementsForGroup","getResizeHandleElementIndex"],"mappings":";;;;;;AAOO,SAAS,sCAAuC,CAAA;AAAA,EACrD,QAAA;AAAA,EACA,QAAA;AAAA,EACA,aAAA;AAAA,EACA;AACF,CAKS,EAAA;AACP,EAAAA,eAAA,CAAY,CAAC,SAAc,KAAA;AACzB,IAAA,MAAM,qBAAqB,iBAAkB,CAAA,KAAA;AAC7C,IAAA,IAAI,QAAS,CAAA,KAAA,IAAS,aAAc,CAAA,KAAA,KAAU,QAAQ,kBAAuB,KAAA,IAAA;AAC3E,MAAA;AAEF,IAAM,MAAA,aAAA,GAAgBC,gCAAuB,CAAA,QAAA,EAAU,kBAAkB,CAAA;AACzE,IAAA,IAAI,aAAiB,IAAA,IAAA;AACnB,MAAA;AAEF,IAAM,MAAA,SAAA,GAAY,CAAC,KAAyB,KAAA;AAC1C,MAAA,IAAI,KAAM,CAAA,gBAAA;AACR,QAAA;AAEF,MAAA,QAAQ,MAAM,GAAK;AAAA,QACjB,KAAK,WAAA;AAAA,QACL,KAAK,WAAA;AAAA,QACL,KAAK,YAAA;AAAA,QACL,KAAK,SAAA;AAAA,QACL,KAAK,KAAA;AAAA,QACL,KAAK,MAAQ,EAAA;AACX,UAAA,KAAA,CAAM,cAAe,EAAA;AAErB,UAAA,aAAA,CAAc,QAAQ,KAAK,CAAA;AAC3B,UAAA;AAAA;AACF,QACA,KAAK,IAAM,EAAA;AACT,UAAA,KAAA,CAAM,cAAe,EAAA;AAErB,UAAM,MAAA,OAAA,GAAU,aAAc,CAAA,YAAA,CAAa,qBAAqB,CAAA;AAChE,UAAAC,mBAAA,CAAO,OAAO,CAAA;AAEd,UAAA,MAAM,OAAU,GAAAC,yCAAA;AAAA,YACd,OAAA;AAAA,YACA;AAAA,WACF;AACA,UAAA,MAAM,KAAQ,GAAAC,qCAAA;AAAA,YACZ,OAAA;AAAA,YACA,QAAA;AAAA,YACA;AAAA,WACF;AAEA,UAAAF,mBAAA,CAAO,UAAU,IAAI,CAAA;AAErB,UAAA,MAAM,SAAY,GAAA,KAAA,CAAM,QACpB,GAAA,KAAA,GAAQ,IACN,KAAQ,GAAA,CAAA,GACR,OAAQ,CAAA,MAAA,GAAS,IACnB,KAAQ,GAAA,CAAA,GAAI,OAAQ,CAAA,MAAA,GAClB,QAAQ,CACR,GAAA,CAAA;AAEN,UAAM,MAAA,UAAA,GAAa,QAAQ,SAAS,CAAA;AACpC,UAAA,UAAA,CAAW,KAAM,EAAA;AAEjB,UAAA;AAAA;AACF;AACF,KACF;AAEA,IAAc,aAAA,CAAA,gBAAA,CAAiB,WAAW,SAAS,CAAA;AACnD,IAAA,SAAA,CAAU,MAAM;AACd,MAAc,aAAA,CAAA,mBAAA,CAAoB,WAAW,SAAS,CAAA;AAAA,KACvD,CAAA;AAAA,GACF,CAAA;AACH;;;;"}
1
+ {"version":3,"file":"useWindowSplitterBehavior.cjs","sources":["../../src/Splitter/utils/composables/useWindowSplitterBehavior.ts"],"sourcesContent":["import type { Ref } from 'vue'\nimport type { ResizeHandler } from '../types'\nimport { watchEffect } from 'vue'\nimport { assert } from '../assert'\nimport { getResizeHandleElement, getResizeHandleElementIndex, getResizeHandleElementsForGroup } from '../dom'\n\n// https://www.w3.org/WAI/ARIA/apg/patterns/windowsplitter/\n\nexport function useWindowSplitterResizeHandlerBehavior({\n disabled,\n handleId,\n resizeHandler,\n panelGroupElement,\n}: {\n disabled: Ref<boolean>\n handleId: string\n resizeHandler: Ref<ResizeHandler | null>\n panelGroupElement: Ref<ParentNode | null>\n}): void {\n watchEffect((onCleanup) => {\n const _panelGroupElement = panelGroupElement.value\n if (disabled.value || resizeHandler.value === null || _panelGroupElement === null)\n return\n\n const handleElement = getResizeHandleElement(handleId, _panelGroupElement)\n if (handleElement == null)\n return\n\n const onKeyDown = (event: KeyboardEvent) => {\n if (event.defaultPrevented)\n return\n\n switch (event.key) {\n case 'ArrowDown':\n case 'ArrowLeft':\n case 'ArrowRight':\n case 'ArrowUp':\n case 'End':\n case 'Home': {\n event.preventDefault()\n\n resizeHandler.value?.(event)\n break\n }\n case 'F6': {\n event.preventDefault()\n\n const groupId = handleElement.getAttribute('data-panel-group-id')\n assert(groupId)\n\n const handles = getResizeHandleElementsForGroup(\n groupId,\n _panelGroupElement,\n )\n const index = getResizeHandleElementIndex(\n groupId,\n handleId,\n _panelGroupElement,\n )\n\n assert(index !== null)\n\n const nextIndex = event.shiftKey\n ? index > 0\n ? index - 1\n : handles.length - 1\n : index + 1 < handles.length\n ? index + 1\n : 0\n\n const nextHandle = handles[nextIndex] as HTMLElement\n nextHandle.focus()\n\n break\n }\n }\n }\n\n handleElement.addEventListener('keydown', onKeyDown)\n onCleanup(() => {\n handleElement.removeEventListener('keydown', onKeyDown)\n })\n })\n}\n"],"names":["watchEffect","getResizeHandleElement","assert","getResizeHandleElementsForGroup","getResizeHandleElementIndex"],"mappings":";;;;;;AAQO,SAAS,sCAAuC,CAAA;AAAA,EACrD,QAAA;AAAA,EACA,QAAA;AAAA,EACA,aAAA;AAAA,EACA;AACF,CAKS,EAAA;AACP,EAAAA,eAAA,CAAY,CAAC,SAAc,KAAA;AACzB,IAAA,MAAM,qBAAqB,iBAAkB,CAAA,KAAA;AAC7C,IAAA,IAAI,QAAS,CAAA,KAAA,IAAS,aAAc,CAAA,KAAA,KAAU,QAAQ,kBAAuB,KAAA,IAAA;AAC3E,MAAA;AAEF,IAAM,MAAA,aAAA,GAAgBC,gCAAuB,CAAA,QAAA,EAAU,kBAAkB,CAAA;AACzE,IAAA,IAAI,aAAiB,IAAA,IAAA;AACnB,MAAA;AAEF,IAAM,MAAA,SAAA,GAAY,CAAC,KAAyB,KAAA;AAC1C,MAAA,IAAI,KAAM,CAAA,gBAAA;AACR,QAAA;AAEF,MAAA,QAAQ,MAAM,GAAK;AAAA,QACjB,KAAK,WAAA;AAAA,QACL,KAAK,WAAA;AAAA,QACL,KAAK,YAAA;AAAA,QACL,KAAK,SAAA;AAAA,QACL,KAAK,KAAA;AAAA,QACL,KAAK,MAAQ,EAAA;AACX,UAAA,KAAA,CAAM,cAAe,EAAA;AAErB,UAAA,aAAA,CAAc,QAAQ,KAAK,CAAA;AAC3B,UAAA;AAAA;AACF,QACA,KAAK,IAAM,EAAA;AACT,UAAA,KAAA,CAAM,cAAe,EAAA;AAErB,UAAM,MAAA,OAAA,GAAU,aAAc,CAAA,YAAA,CAAa,qBAAqB,CAAA;AAChE,UAAAC,mBAAA,CAAO,OAAO,CAAA;AAEd,UAAA,MAAM,OAAU,GAAAC,yCAAA;AAAA,YACd,OAAA;AAAA,YACA;AAAA,WACF;AACA,UAAA,MAAM,KAAQ,GAAAC,qCAAA;AAAA,YACZ,OAAA;AAAA,YACA,QAAA;AAAA,YACA;AAAA,WACF;AAEA,UAAAF,mBAAA,CAAO,UAAU,IAAI,CAAA;AAErB,UAAA,MAAM,SAAY,GAAA,KAAA,CAAM,QACpB,GAAA,KAAA,GAAQ,IACN,KAAQ,GAAA,CAAA,GACR,OAAQ,CAAA,MAAA,GAAS,IACnB,KAAQ,GAAA,CAAA,GAAI,OAAQ,CAAA,MAAA,GAClB,QAAQ,CACR,GAAA,CAAA;AAEN,UAAM,MAAA,UAAA,GAAa,QAAQ,SAAS,CAAA;AACpC,UAAA,UAAA,CAAW,KAAM,EAAA;AAEjB,UAAA;AAAA;AACF;AACF,KACF;AAEA,IAAc,aAAA,CAAA,gBAAA,CAAiB,WAAW,SAAS,CAAA;AACnD,IAAA,SAAA,CAAU,MAAM;AACd,MAAc,aAAA,CAAA,mBAAA,CAAoB,WAAW,SAAS,CAAA;AAAA,KACvD,CAAA;AAAA,GACF,CAAA;AACH;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"useWindowSplitterBehavior.js","sources":["../../src/Splitter/utils/composables/useWindowSplitterBehavior.ts"],"sourcesContent":["import { type Ref, watchEffect } from 'vue'\nimport type { ResizeHandler } from '../types'\nimport { assert } from '../assert'\nimport { getResizeHandleElement, getResizeHandleElementIndex, getResizeHandleElementsForGroup } from '../dom'\n\n// https://www.w3.org/WAI/ARIA/apg/patterns/windowsplitter/\n\nexport function useWindowSplitterResizeHandlerBehavior({\n disabled,\n handleId,\n resizeHandler,\n panelGroupElement,\n}: {\n disabled: Ref<boolean>\n handleId: string\n resizeHandler: Ref<ResizeHandler | null>\n panelGroupElement: Ref<ParentNode | null>\n}): void {\n watchEffect((onCleanup) => {\n const _panelGroupElement = panelGroupElement.value\n if (disabled.value || resizeHandler.value === null || _panelGroupElement === null)\n return\n\n const handleElement = getResizeHandleElement(handleId, _panelGroupElement)\n if (handleElement == null)\n return\n\n const onKeyDown = (event: KeyboardEvent) => {\n if (event.defaultPrevented)\n return\n\n switch (event.key) {\n case 'ArrowDown':\n case 'ArrowLeft':\n case 'ArrowRight':\n case 'ArrowUp':\n case 'End':\n case 'Home': {\n event.preventDefault()\n\n resizeHandler.value?.(event)\n break\n }\n case 'F6': {\n event.preventDefault()\n\n const groupId = handleElement.getAttribute('data-panel-group-id')\n assert(groupId)\n\n const handles = getResizeHandleElementsForGroup(\n groupId,\n _panelGroupElement,\n )\n const index = getResizeHandleElementIndex(\n groupId,\n handleId,\n _panelGroupElement,\n )\n\n assert(index !== null)\n\n const nextIndex = event.shiftKey\n ? index > 0\n ? index - 1\n : handles.length - 1\n : index + 1 < handles.length\n ? index + 1\n : 0\n\n const nextHandle = handles[nextIndex] as HTMLElement\n nextHandle.focus()\n\n break\n }\n }\n }\n\n handleElement.addEventListener('keydown', onKeyDown)\n onCleanup(() => {\n handleElement.removeEventListener('keydown', onKeyDown)\n })\n })\n}\n"],"names":[],"mappings":";;;;AAOO,SAAS,sCAAuC,CAAA;AAAA,EACrD,QAAA;AAAA,EACA,QAAA;AAAA,EACA,aAAA;AAAA,EACA;AACF,CAKS,EAAA;AACP,EAAA,WAAA,CAAY,CAAC,SAAc,KAAA;AACzB,IAAA,MAAM,qBAAqB,iBAAkB,CAAA,KAAA;AAC7C,IAAA,IAAI,QAAS,CAAA,KAAA,IAAS,aAAc,CAAA,KAAA,KAAU,QAAQ,kBAAuB,KAAA,IAAA;AAC3E,MAAA;AAEF,IAAM,MAAA,aAAA,GAAgB,sBAAuB,CAAA,QAAA,EAAU,kBAAkB,CAAA;AACzE,IAAA,IAAI,aAAiB,IAAA,IAAA;AACnB,MAAA;AAEF,IAAM,MAAA,SAAA,GAAY,CAAC,KAAyB,KAAA;AAC1C,MAAA,IAAI,KAAM,CAAA,gBAAA;AACR,QAAA;AAEF,MAAA,QAAQ,MAAM,GAAK;AAAA,QACjB,KAAK,WAAA;AAAA,QACL,KAAK,WAAA;AAAA,QACL,KAAK,YAAA;AAAA,QACL,KAAK,SAAA;AAAA,QACL,KAAK,KAAA;AAAA,QACL,KAAK,MAAQ,EAAA;AACX,UAAA,KAAA,CAAM,cAAe,EAAA;AAErB,UAAA,aAAA,CAAc,QAAQ,KAAK,CAAA;AAC3B,UAAA;AAAA;AACF,QACA,KAAK,IAAM,EAAA;AACT,UAAA,KAAA,CAAM,cAAe,EAAA;AAErB,UAAM,MAAA,OAAA,GAAU,aAAc,CAAA,YAAA,CAAa,qBAAqB,CAAA;AAChE,UAAA,MAAA,CAAO,OAAO,CAAA;AAEd,UAAA,MAAM,OAAU,GAAA,+BAAA;AAAA,YACd,OAAA;AAAA,YACA;AAAA,WACF;AACA,UAAA,MAAM,KAAQ,GAAA,2BAAA;AAAA,YACZ,OAAA;AAAA,YACA,QAAA;AAAA,YACA;AAAA,WACF;AAEA,UAAA,MAAA,CAAO,UAAU,IAAI,CAAA;AAErB,UAAA,MAAM,SAAY,GAAA,KAAA,CAAM,QACpB,GAAA,KAAA,GAAQ,IACN,KAAQ,GAAA,CAAA,GACR,OAAQ,CAAA,MAAA,GAAS,IACnB,KAAQ,GAAA,CAAA,GAAI,OAAQ,CAAA,MAAA,GAClB,QAAQ,CACR,GAAA,CAAA;AAEN,UAAM,MAAA,UAAA,GAAa,QAAQ,SAAS,CAAA;AACpC,UAAA,UAAA,CAAW,KAAM,EAAA;AAEjB,UAAA;AAAA;AACF;AACF,KACF;AAEA,IAAc,aAAA,CAAA,gBAAA,CAAiB,WAAW,SAAS,CAAA;AACnD,IAAA,SAAA,CAAU,MAAM;AACd,MAAc,aAAA,CAAA,mBAAA,CAAoB,WAAW,SAAS,CAAA;AAAA,KACvD,CAAA;AAAA,GACF,CAAA;AACH;;;;"}
1
+ {"version":3,"file":"useWindowSplitterBehavior.js","sources":["../../src/Splitter/utils/composables/useWindowSplitterBehavior.ts"],"sourcesContent":["import type { Ref } from 'vue'\nimport type { ResizeHandler } from '../types'\nimport { watchEffect } from 'vue'\nimport { assert } from '../assert'\nimport { getResizeHandleElement, getResizeHandleElementIndex, getResizeHandleElementsForGroup } from '../dom'\n\n// https://www.w3.org/WAI/ARIA/apg/patterns/windowsplitter/\n\nexport function useWindowSplitterResizeHandlerBehavior({\n disabled,\n handleId,\n resizeHandler,\n panelGroupElement,\n}: {\n disabled: Ref<boolean>\n handleId: string\n resizeHandler: Ref<ResizeHandler | null>\n panelGroupElement: Ref<ParentNode | null>\n}): void {\n watchEffect((onCleanup) => {\n const _panelGroupElement = panelGroupElement.value\n if (disabled.value || resizeHandler.value === null || _panelGroupElement === null)\n return\n\n const handleElement = getResizeHandleElement(handleId, _panelGroupElement)\n if (handleElement == null)\n return\n\n const onKeyDown = (event: KeyboardEvent) => {\n if (event.defaultPrevented)\n return\n\n switch (event.key) {\n case 'ArrowDown':\n case 'ArrowLeft':\n case 'ArrowRight':\n case 'ArrowUp':\n case 'End':\n case 'Home': {\n event.preventDefault()\n\n resizeHandler.value?.(event)\n break\n }\n case 'F6': {\n event.preventDefault()\n\n const groupId = handleElement.getAttribute('data-panel-group-id')\n assert(groupId)\n\n const handles = getResizeHandleElementsForGroup(\n groupId,\n _panelGroupElement,\n )\n const index = getResizeHandleElementIndex(\n groupId,\n handleId,\n _panelGroupElement,\n )\n\n assert(index !== null)\n\n const nextIndex = event.shiftKey\n ? index > 0\n ? index - 1\n : handles.length - 1\n : index + 1 < handles.length\n ? index + 1\n : 0\n\n const nextHandle = handles[nextIndex] as HTMLElement\n nextHandle.focus()\n\n break\n }\n }\n }\n\n handleElement.addEventListener('keydown', onKeyDown)\n onCleanup(() => {\n handleElement.removeEventListener('keydown', onKeyDown)\n })\n })\n}\n"],"names":[],"mappings":";;;;AAQO,SAAS,sCAAuC,CAAA;AAAA,EACrD,QAAA;AAAA,EACA,QAAA;AAAA,EACA,aAAA;AAAA,EACA;AACF,CAKS,EAAA;AACP,EAAA,WAAA,CAAY,CAAC,SAAc,KAAA;AACzB,IAAA,MAAM,qBAAqB,iBAAkB,CAAA,KAAA;AAC7C,IAAA,IAAI,QAAS,CAAA,KAAA,IAAS,aAAc,CAAA,KAAA,KAAU,QAAQ,kBAAuB,KAAA,IAAA;AAC3E,MAAA;AAEF,IAAM,MAAA,aAAA,GAAgB,sBAAuB,CAAA,QAAA,EAAU,kBAAkB,CAAA;AACzE,IAAA,IAAI,aAAiB,IAAA,IAAA;AACnB,MAAA;AAEF,IAAM,MAAA,SAAA,GAAY,CAAC,KAAyB,KAAA;AAC1C,MAAA,IAAI,KAAM,CAAA,gBAAA;AACR,QAAA;AAEF,MAAA,QAAQ,MAAM,GAAK;AAAA,QACjB,KAAK,WAAA;AAAA,QACL,KAAK,WAAA;AAAA,QACL,KAAK,YAAA;AAAA,QACL,KAAK,SAAA;AAAA,QACL,KAAK,KAAA;AAAA,QACL,KAAK,MAAQ,EAAA;AACX,UAAA,KAAA,CAAM,cAAe,EAAA;AAErB,UAAA,aAAA,CAAc,QAAQ,KAAK,CAAA;AAC3B,UAAA;AAAA;AACF,QACA,KAAK,IAAM,EAAA;AACT,UAAA,KAAA,CAAM,cAAe,EAAA;AAErB,UAAM,MAAA,OAAA,GAAU,aAAc,CAAA,YAAA,CAAa,qBAAqB,CAAA;AAChE,UAAA,MAAA,CAAO,OAAO,CAAA;AAEd,UAAA,MAAM,OAAU,GAAA,+BAAA;AAAA,YACd,OAAA;AAAA,YACA;AAAA,WACF;AACA,UAAA,MAAM,KAAQ,GAAA,2BAAA;AAAA,YACZ,OAAA;AAAA,YACA,QAAA;AAAA,YACA;AAAA,WACF;AAEA,UAAA,MAAA,CAAO,UAAU,IAAI,CAAA;AAErB,UAAA,MAAM,SAAY,GAAA,KAAA,CAAM,QACpB,GAAA,KAAA,GAAQ,IACN,KAAQ,GAAA,CAAA,GACR,OAAQ,CAAA,MAAA,GAAS,IACnB,KAAQ,GAAA,CAAA,GAAI,OAAQ,CAAA,MAAA,GAClB,QAAQ,CACR,GAAA,CAAA;AAEN,UAAM,MAAA,UAAA,GAAa,QAAQ,SAAS,CAAA;AACpC,UAAA,UAAA,CAAW,KAAM,EAAA;AAEjB,UAAA;AAAA;AACF;AACF,KACF;AAEA,IAAc,aAAA,CAAA,gBAAA,CAAiB,WAAW,SAAS,CAAA;AACnD,IAAA,SAAA,CAAU,MAAM;AACd,MAAc,aAAA,CAAA,mBAAA,CAAoB,WAAW,SAAS,CAAA;AAAA,KACvD,CAAA;AAAA,GACF,CAAA;AACH;;;;"}
@@ -1,12 +1,12 @@
1
1
  'use strict';
2
2
 
3
3
  const vue = require('vue');
4
- const utils_layout = require('../utils/layout.cjs');
5
4
  const utils_assert = require('../utils/assert.cjs');
6
5
  const utils_calculate = require('../utils/calculate.cjs');
7
- const utils_pivot = require('../utils/pivot.cjs');
8
- const utils_dom = require('../utils/dom.cjs');
9
6
  const utils_compare = require('../utils/compare.cjs');
7
+ const utils_dom = require('../utils/dom.cjs');
8
+ const utils_layout = require('../utils/layout.cjs');
9
+ const utils_pivot = require('../utils/pivot.cjs');
10
10
 
11
11
  function useWindowSplitterPanelGroupBehavior({
12
12
  eagerValuesRef,
@@ -1 +1 @@
1
- {"version":3,"file":"useWindowSplitterPanelGroupBehavior.cjs","sources":["../../src/Splitter/utils/composables/useWindowSplitterPanelGroupBehavior.ts"],"sourcesContent":["import { type Ref, watchEffect } from 'vue'\nimport type { PanelData } from '../../SplitterPanel.vue'\nimport { adjustLayoutByDelta } from '../layout'\nimport { assert } from '../assert'\nimport { calculateAriaValues } from '../calculate'\nimport { determinePivotIndices } from '../pivot'\nimport { getPanelGroupElement, getResizeHandleElementsForGroup, getResizeHandlePanelIds } from '../dom'\nimport { fuzzyNumbersEqual } from '../compare'\n\n// https://www.w3.org/WAI/ARIA/apg/patterns/windowsplitter/\n\nexport function useWindowSplitterPanelGroupBehavior({\n eagerValuesRef,\n groupId,\n layout,\n panelDataArray,\n panelGroupElement,\n setLayout,\n}: {\n eagerValuesRef: Ref<{\n panelDataArray: PanelData[]\n }>\n groupId: string\n layout: Ref<number[]>\n panelDataArray: PanelData[]\n panelGroupElement: Ref<ParentNode | null>\n setLayout: (sizes: number[]) => void\n}): void {\n watchEffect((onCleanup) => {\n const _panelGroupElement = panelGroupElement.value\n if (!_panelGroupElement)\n return\n\n const resizeHandleElements = getResizeHandleElementsForGroup(\n groupId,\n _panelGroupElement,\n )\n\n for (let index = 0; index < panelDataArray.length - 1; index++) {\n const { valueMax, valueMin, valueNow } = calculateAriaValues({\n layout: layout.value,\n panelsArray: panelDataArray,\n pivotIndices: [index, index + 1],\n })\n\n const resizeHandleElement = resizeHandleElements[index]\n if (resizeHandleElement == null) {\n if (import.meta.env.DEV)\n console.warn(`WARNING: Missing resize handle for PanelGroup \"${groupId}\"`)\n }\n else {\n const panelData = panelDataArray[index]\n assert(panelData)\n\n resizeHandleElement.setAttribute('aria-controls', panelData.id)\n resizeHandleElement.setAttribute(\n 'aria-valuemax',\n `${Math.round(valueMax)}`,\n )\n resizeHandleElement.setAttribute(\n 'aria-valuemin',\n `${Math.round(valueMin)}`,\n )\n resizeHandleElement.setAttribute(\n 'aria-valuenow',\n valueNow != null ? `${Math.round(valueNow)}` : '',\n )\n }\n }\n\n onCleanup(() => {\n resizeHandleElements.forEach((resizeHandleElement) => {\n resizeHandleElement.removeAttribute('aria-controls')\n resizeHandleElement.removeAttribute('aria-valuemax')\n resizeHandleElement.removeAttribute('aria-valuemin')\n resizeHandleElement.removeAttribute('aria-valuenow')\n })\n })\n })\n\n watchEffect((onCleanup) => {\n const _panelGroupElement = panelGroupElement.value\n if (!_panelGroupElement)\n return\n\n const eagerValues = eagerValuesRef.value\n assert(eagerValues)\n\n const { panelDataArray } = eagerValues\n const groupElement = getPanelGroupElement(groupId, _panelGroupElement)\n assert(groupElement != null, `No group found for id \"${groupId}\"`)\n\n const handles = getResizeHandleElementsForGroup(groupId, _panelGroupElement)\n assert(handles)\n\n const cleanupFunctions = handles.map((handle) => {\n const handleId = handle.getAttribute('data-panel-resize-handle-id')\n assert(handleId)\n\n const [idBefore, idAfter] = getResizeHandlePanelIds(\n groupId,\n handleId,\n panelDataArray,\n _panelGroupElement,\n )\n if (idBefore == null || idAfter == null)\n return () => {}\n\n const onKeyDown = (event: KeyboardEvent) => {\n if (event.defaultPrevented)\n return\n\n switch (event.key) {\n case 'Enter': {\n event.preventDefault()\n\n const index = panelDataArray.findIndex(\n panelData => panelData.id === idBefore,\n )\n if (index >= 0) {\n const panelData = panelDataArray[index]\n assert(panelData)\n\n const size = layout.value[index]\n\n const {\n collapsedSize = 0,\n collapsible,\n minSize = 0,\n } = panelData.constraints\n\n if (size != null && collapsible) {\n const nextLayout = adjustLayoutByDelta({\n delta: fuzzyNumbersEqual(size, collapsedSize)\n ? minSize - collapsedSize\n : collapsedSize - size,\n layout: layout.value,\n panelConstraints: panelDataArray.map(\n panelData => panelData.constraints,\n ),\n pivotIndices: determinePivotIndices(\n groupId,\n handleId,\n _panelGroupElement,\n ),\n trigger: 'keyboard',\n })\n if (layout.value !== nextLayout)\n setLayout(nextLayout)\n }\n }\n break\n }\n }\n }\n\n handle.addEventListener('keydown', onKeyDown)\n return () => {\n handle.removeEventListener('keydown', onKeyDown)\n }\n })\n\n onCleanup(() => {\n cleanupFunctions.forEach(cleanupFunction => cleanupFunction())\n })\n })\n}\n"],"names":["watchEffect","getResizeHandleElementsForGroup","calculateAriaValues","assert","panelDataArray","getPanelGroupElement","getResizeHandlePanelIds","adjustLayoutByDelta","fuzzyNumbersEqual","panelData","determinePivotIndices"],"mappings":"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"}
1
+ {"version":3,"file":"useWindowSplitterPanelGroupBehavior.cjs","sources":["../../src/Splitter/utils/composables/useWindowSplitterPanelGroupBehavior.ts"],"sourcesContent":["import type { Ref } from 'vue'\nimport type { PanelData } from '../../SplitterPanel.vue'\nimport { watchEffect } from 'vue'\nimport { assert } from '../assert'\nimport { calculateAriaValues } from '../calculate'\nimport { fuzzyNumbersEqual } from '../compare'\nimport { getPanelGroupElement, getResizeHandleElementsForGroup, getResizeHandlePanelIds } from '../dom'\nimport { adjustLayoutByDelta } from '../layout'\nimport { determinePivotIndices } from '../pivot'\n\n// https://www.w3.org/WAI/ARIA/apg/patterns/windowsplitter/\n\nexport function useWindowSplitterPanelGroupBehavior({\n eagerValuesRef,\n groupId,\n layout,\n panelDataArray,\n panelGroupElement,\n setLayout,\n}: {\n eagerValuesRef: Ref<{\n panelDataArray: PanelData[]\n }>\n groupId: string\n layout: Ref<number[]>\n panelDataArray: PanelData[]\n panelGroupElement: Ref<ParentNode | null>\n setLayout: (sizes: number[]) => void\n}): void {\n watchEffect((onCleanup) => {\n const _panelGroupElement = panelGroupElement.value\n if (!_panelGroupElement)\n return\n\n const resizeHandleElements = getResizeHandleElementsForGroup(\n groupId,\n _panelGroupElement,\n )\n\n for (let index = 0; index < panelDataArray.length - 1; index++) {\n const { valueMax, valueMin, valueNow } = calculateAriaValues({\n layout: layout.value,\n panelsArray: panelDataArray,\n pivotIndices: [index, index + 1],\n })\n\n const resizeHandleElement = resizeHandleElements[index]\n if (resizeHandleElement == null) {\n if (import.meta.env.DEV)\n console.warn(`WARNING: Missing resize handle for PanelGroup \"${groupId}\"`)\n }\n else {\n const panelData = panelDataArray[index]\n assert(panelData)\n\n resizeHandleElement.setAttribute('aria-controls', panelData.id)\n resizeHandleElement.setAttribute(\n 'aria-valuemax',\n `${Math.round(valueMax)}`,\n )\n resizeHandleElement.setAttribute(\n 'aria-valuemin',\n `${Math.round(valueMin)}`,\n )\n resizeHandleElement.setAttribute(\n 'aria-valuenow',\n valueNow != null ? `${Math.round(valueNow)}` : '',\n )\n }\n }\n\n onCleanup(() => {\n resizeHandleElements.forEach((resizeHandleElement) => {\n resizeHandleElement.removeAttribute('aria-controls')\n resizeHandleElement.removeAttribute('aria-valuemax')\n resizeHandleElement.removeAttribute('aria-valuemin')\n resizeHandleElement.removeAttribute('aria-valuenow')\n })\n })\n })\n\n watchEffect((onCleanup) => {\n const _panelGroupElement = panelGroupElement.value\n if (!_panelGroupElement)\n return\n\n const eagerValues = eagerValuesRef.value\n assert(eagerValues)\n\n const { panelDataArray } = eagerValues\n const groupElement = getPanelGroupElement(groupId, _panelGroupElement)\n assert(groupElement != null, `No group found for id \"${groupId}\"`)\n\n const handles = getResizeHandleElementsForGroup(groupId, _panelGroupElement)\n assert(handles)\n\n const cleanupFunctions = handles.map((handle) => {\n const handleId = handle.getAttribute('data-panel-resize-handle-id')\n assert(handleId)\n\n const [idBefore, idAfter] = getResizeHandlePanelIds(\n groupId,\n handleId,\n panelDataArray,\n _panelGroupElement,\n )\n if (idBefore == null || idAfter == null)\n return () => {}\n\n const onKeyDown = (event: KeyboardEvent) => {\n if (event.defaultPrevented)\n return\n\n switch (event.key) {\n case 'Enter': {\n event.preventDefault()\n\n const index = panelDataArray.findIndex(\n panelData => panelData.id === idBefore,\n )\n if (index >= 0) {\n const panelData = panelDataArray[index]\n assert(panelData)\n\n const size = layout.value[index]\n\n const {\n collapsedSize = 0,\n collapsible,\n minSize = 0,\n } = panelData.constraints\n\n if (size != null && collapsible) {\n const nextLayout = adjustLayoutByDelta({\n delta: fuzzyNumbersEqual(size, collapsedSize)\n ? minSize - collapsedSize\n : collapsedSize - size,\n layout: layout.value,\n panelConstraints: panelDataArray.map(\n panelData => panelData.constraints,\n ),\n pivotIndices: determinePivotIndices(\n groupId,\n handleId,\n _panelGroupElement,\n ),\n trigger: 'keyboard',\n })\n if (layout.value !== nextLayout)\n setLayout(nextLayout)\n }\n }\n break\n }\n }\n }\n\n handle.addEventListener('keydown', onKeyDown)\n return () => {\n handle.removeEventListener('keydown', onKeyDown)\n }\n })\n\n onCleanup(() => {\n cleanupFunctions.forEach(cleanupFunction => cleanupFunction())\n })\n })\n}\n"],"names":["watchEffect","getResizeHandleElementsForGroup","calculateAriaValues","assert","panelDataArray","getPanelGroupElement","getResizeHandlePanelIds","adjustLayoutByDelta","fuzzyNumbersEqual","panelData","determinePivotIndices"],"mappings":"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"}
@@ -1,10 +1,10 @@
1
1
  import { watchEffect } from 'vue';
2
- import { a as adjustLayoutByDelta } from '../utils/layout.js';
3
2
  import { a as assert } from '../utils/assert.js';
4
3
  import { b as calculateAriaValues } from '../utils/calculate.js';
5
- import { d as determinePivotIndices } from '../utils/pivot.js';
6
- import { a as getResizeHandleElementsForGroup, c as getPanelGroupElement, d as getResizeHandlePanelIds } from '../utils/dom.js';
7
4
  import { f as fuzzyNumbersEqual } from '../utils/compare.js';
5
+ import { a as getResizeHandleElementsForGroup, c as getPanelGroupElement, d as getResizeHandlePanelIds } from '../utils/dom.js';
6
+ import { a as adjustLayoutByDelta } from '../utils/layout.js';
7
+ import { d as determinePivotIndices } from '../utils/pivot.js';
8
8
 
9
9
  function useWindowSplitterPanelGroupBehavior({
10
10
  eagerValuesRef,
@@ -1 +1 @@
1
- {"version":3,"file":"useWindowSplitterPanelGroupBehavior.js","sources":["../../src/Splitter/utils/composables/useWindowSplitterPanelGroupBehavior.ts"],"sourcesContent":["import { type Ref, watchEffect } from 'vue'\nimport type { PanelData } from '../../SplitterPanel.vue'\nimport { adjustLayoutByDelta } from '../layout'\nimport { assert } from '../assert'\nimport { calculateAriaValues } from '../calculate'\nimport { determinePivotIndices } from '../pivot'\nimport { getPanelGroupElement, getResizeHandleElementsForGroup, getResizeHandlePanelIds } from '../dom'\nimport { fuzzyNumbersEqual } from '../compare'\n\n// https://www.w3.org/WAI/ARIA/apg/patterns/windowsplitter/\n\nexport function useWindowSplitterPanelGroupBehavior({\n eagerValuesRef,\n groupId,\n layout,\n panelDataArray,\n panelGroupElement,\n setLayout,\n}: {\n eagerValuesRef: Ref<{\n panelDataArray: PanelData[]\n }>\n groupId: string\n layout: Ref<number[]>\n panelDataArray: PanelData[]\n panelGroupElement: Ref<ParentNode | null>\n setLayout: (sizes: number[]) => void\n}): void {\n watchEffect((onCleanup) => {\n const _panelGroupElement = panelGroupElement.value\n if (!_panelGroupElement)\n return\n\n const resizeHandleElements = getResizeHandleElementsForGroup(\n groupId,\n _panelGroupElement,\n )\n\n for (let index = 0; index < panelDataArray.length - 1; index++) {\n const { valueMax, valueMin, valueNow } = calculateAriaValues({\n layout: layout.value,\n panelsArray: panelDataArray,\n pivotIndices: [index, index + 1],\n })\n\n const resizeHandleElement = resizeHandleElements[index]\n if (resizeHandleElement == null) {\n if (import.meta.env.DEV)\n console.warn(`WARNING: Missing resize handle for PanelGroup \"${groupId}\"`)\n }\n else {\n const panelData = panelDataArray[index]\n assert(panelData)\n\n resizeHandleElement.setAttribute('aria-controls', panelData.id)\n resizeHandleElement.setAttribute(\n 'aria-valuemax',\n `${Math.round(valueMax)}`,\n )\n resizeHandleElement.setAttribute(\n 'aria-valuemin',\n `${Math.round(valueMin)}`,\n )\n resizeHandleElement.setAttribute(\n 'aria-valuenow',\n valueNow != null ? `${Math.round(valueNow)}` : '',\n )\n }\n }\n\n onCleanup(() => {\n resizeHandleElements.forEach((resizeHandleElement) => {\n resizeHandleElement.removeAttribute('aria-controls')\n resizeHandleElement.removeAttribute('aria-valuemax')\n resizeHandleElement.removeAttribute('aria-valuemin')\n resizeHandleElement.removeAttribute('aria-valuenow')\n })\n })\n })\n\n watchEffect((onCleanup) => {\n const _panelGroupElement = panelGroupElement.value\n if (!_panelGroupElement)\n return\n\n const eagerValues = eagerValuesRef.value\n assert(eagerValues)\n\n const { panelDataArray } = eagerValues\n const groupElement = getPanelGroupElement(groupId, _panelGroupElement)\n assert(groupElement != null, `No group found for id \"${groupId}\"`)\n\n const handles = getResizeHandleElementsForGroup(groupId, _panelGroupElement)\n assert(handles)\n\n const cleanupFunctions = handles.map((handle) => {\n const handleId = handle.getAttribute('data-panel-resize-handle-id')\n assert(handleId)\n\n const [idBefore, idAfter] = getResizeHandlePanelIds(\n groupId,\n handleId,\n panelDataArray,\n _panelGroupElement,\n )\n if (idBefore == null || idAfter == null)\n return () => {}\n\n const onKeyDown = (event: KeyboardEvent) => {\n if (event.defaultPrevented)\n return\n\n switch (event.key) {\n case 'Enter': {\n event.preventDefault()\n\n const index = panelDataArray.findIndex(\n panelData => panelData.id === idBefore,\n )\n if (index >= 0) {\n const panelData = panelDataArray[index]\n assert(panelData)\n\n const size = layout.value[index]\n\n const {\n collapsedSize = 0,\n collapsible,\n minSize = 0,\n } = panelData.constraints\n\n if (size != null && collapsible) {\n const nextLayout = adjustLayoutByDelta({\n delta: fuzzyNumbersEqual(size, collapsedSize)\n ? minSize - collapsedSize\n : collapsedSize - size,\n layout: layout.value,\n panelConstraints: panelDataArray.map(\n panelData => panelData.constraints,\n ),\n pivotIndices: determinePivotIndices(\n groupId,\n handleId,\n _panelGroupElement,\n ),\n trigger: 'keyboard',\n })\n if (layout.value !== nextLayout)\n setLayout(nextLayout)\n }\n }\n break\n }\n }\n }\n\n handle.addEventListener('keydown', onKeyDown)\n return () => {\n handle.removeEventListener('keydown', onKeyDown)\n }\n })\n\n onCleanup(() => {\n cleanupFunctions.forEach(cleanupFunction => cleanupFunction())\n })\n })\n}\n"],"names":["panelDataArray","panelData"],"mappings":"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"}
1
+ {"version":3,"file":"useWindowSplitterPanelGroupBehavior.js","sources":["../../src/Splitter/utils/composables/useWindowSplitterPanelGroupBehavior.ts"],"sourcesContent":["import type { Ref } from 'vue'\nimport type { PanelData } from '../../SplitterPanel.vue'\nimport { watchEffect } from 'vue'\nimport { assert } from '../assert'\nimport { calculateAriaValues } from '../calculate'\nimport { fuzzyNumbersEqual } from '../compare'\nimport { getPanelGroupElement, getResizeHandleElementsForGroup, getResizeHandlePanelIds } from '../dom'\nimport { adjustLayoutByDelta } from '../layout'\nimport { determinePivotIndices } from '../pivot'\n\n// https://www.w3.org/WAI/ARIA/apg/patterns/windowsplitter/\n\nexport function useWindowSplitterPanelGroupBehavior({\n eagerValuesRef,\n groupId,\n layout,\n panelDataArray,\n panelGroupElement,\n setLayout,\n}: {\n eagerValuesRef: Ref<{\n panelDataArray: PanelData[]\n }>\n groupId: string\n layout: Ref<number[]>\n panelDataArray: PanelData[]\n panelGroupElement: Ref<ParentNode | null>\n setLayout: (sizes: number[]) => void\n}): void {\n watchEffect((onCleanup) => {\n const _panelGroupElement = panelGroupElement.value\n if (!_panelGroupElement)\n return\n\n const resizeHandleElements = getResizeHandleElementsForGroup(\n groupId,\n _panelGroupElement,\n )\n\n for (let index = 0; index < panelDataArray.length - 1; index++) {\n const { valueMax, valueMin, valueNow } = calculateAriaValues({\n layout: layout.value,\n panelsArray: panelDataArray,\n pivotIndices: [index, index + 1],\n })\n\n const resizeHandleElement = resizeHandleElements[index]\n if (resizeHandleElement == null) {\n if (import.meta.env.DEV)\n console.warn(`WARNING: Missing resize handle for PanelGroup \"${groupId}\"`)\n }\n else {\n const panelData = panelDataArray[index]\n assert(panelData)\n\n resizeHandleElement.setAttribute('aria-controls', panelData.id)\n resizeHandleElement.setAttribute(\n 'aria-valuemax',\n `${Math.round(valueMax)}`,\n )\n resizeHandleElement.setAttribute(\n 'aria-valuemin',\n `${Math.round(valueMin)}`,\n )\n resizeHandleElement.setAttribute(\n 'aria-valuenow',\n valueNow != null ? `${Math.round(valueNow)}` : '',\n )\n }\n }\n\n onCleanup(() => {\n resizeHandleElements.forEach((resizeHandleElement) => {\n resizeHandleElement.removeAttribute('aria-controls')\n resizeHandleElement.removeAttribute('aria-valuemax')\n resizeHandleElement.removeAttribute('aria-valuemin')\n resizeHandleElement.removeAttribute('aria-valuenow')\n })\n })\n })\n\n watchEffect((onCleanup) => {\n const _panelGroupElement = panelGroupElement.value\n if (!_panelGroupElement)\n return\n\n const eagerValues = eagerValuesRef.value\n assert(eagerValues)\n\n const { panelDataArray } = eagerValues\n const groupElement = getPanelGroupElement(groupId, _panelGroupElement)\n assert(groupElement != null, `No group found for id \"${groupId}\"`)\n\n const handles = getResizeHandleElementsForGroup(groupId, _panelGroupElement)\n assert(handles)\n\n const cleanupFunctions = handles.map((handle) => {\n const handleId = handle.getAttribute('data-panel-resize-handle-id')\n assert(handleId)\n\n const [idBefore, idAfter] = getResizeHandlePanelIds(\n groupId,\n handleId,\n panelDataArray,\n _panelGroupElement,\n )\n if (idBefore == null || idAfter == null)\n return () => {}\n\n const onKeyDown = (event: KeyboardEvent) => {\n if (event.defaultPrevented)\n return\n\n switch (event.key) {\n case 'Enter': {\n event.preventDefault()\n\n const index = panelDataArray.findIndex(\n panelData => panelData.id === idBefore,\n )\n if (index >= 0) {\n const panelData = panelDataArray[index]\n assert(panelData)\n\n const size = layout.value[index]\n\n const {\n collapsedSize = 0,\n collapsible,\n minSize = 0,\n } = panelData.constraints\n\n if (size != null && collapsible) {\n const nextLayout = adjustLayoutByDelta({\n delta: fuzzyNumbersEqual(size, collapsedSize)\n ? minSize - collapsedSize\n : collapsedSize - size,\n layout: layout.value,\n panelConstraints: panelDataArray.map(\n panelData => panelData.constraints,\n ),\n pivotIndices: determinePivotIndices(\n groupId,\n handleId,\n _panelGroupElement,\n ),\n trigger: 'keyboard',\n })\n if (layout.value !== nextLayout)\n setLayout(nextLayout)\n }\n }\n break\n }\n }\n }\n\n handle.addEventListener('keydown', onKeyDown)\n return () => {\n handle.removeEventListener('keydown', onKeyDown)\n }\n })\n\n onCleanup(() => {\n cleanupFunctions.forEach(cleanupFunction => cleanupFunction())\n })\n })\n}\n"],"names":["panelDataArray","panelData"],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  'use strict';
2
2
 
3
3
  const date = require('@internationalized/date');
4
- const date_utils = require('./utils.cjs');
5
4
  const date_comparators = require('./comparators.cjs');
5
+ const date_utils = require('./utils.cjs');
6
6
 
7
7
  function getDaysBetween(start, end) {
8
8
  const days = [];
@@ -1 +1 @@
1
- {"version":3,"file":"calendar.cjs","sources":["../../src/date/calendar.ts"],"sourcesContent":["/*\n * Implementation ported from from from https://github.com/melt-ui/melt-ui/blob/develop/src/lib/builders/calendar/create.ts\n*/\n\nimport { type DateValue, endOfMonth, endOfYear, startOfMonth, startOfYear } from '@internationalized/date'\nimport type { Grid } from './types'\nimport { chunk } from './utils'\nimport { getDaysInMonth, getLastFirstDayOfWeek, getNextLastDayOfWeek } from './comparators'\nimport type { DateRange } from '@/shared'\n\nexport type WeekDayFormat = 'narrow' | 'short' | 'long'\n\nexport type CreateSelectProps = {\n /**\n * The date object representing the date (usually the first day of the month/year).\n */\n dateObj: DateValue\n}\n\nexport type CreateMonthProps = {\n /**\n * The date object representing the month's date (usually the first day of the month).\n */\n dateObj: DateValue\n\n /**\n * The day of the week to start the calendar on (0 for Sunday, 1 for Monday, etc.).\n */\n weekStartsOn: number\n\n /**\n * Whether to always render 6 weeks in the calendar, even if the month doesn't\n * span 6 weeks.\n */\n fixedWeeks: boolean\n\n /**\n * The locale to use when creating the calendar month.\n */\n locale: string\n}\n\n/**\n * Retrieves an array of date values representing the days between\n * the provided start and end dates.\n */\nexport function getDaysBetween(start: DateValue, end: DateValue) {\n const days: DateValue[] = []\n let dCurrent = start.add({ days: 1 })\n const dEnd = end\n while (dCurrent.compare(dEnd) < 0) {\n days.push(dCurrent)\n dCurrent = dCurrent.add({ days: 1 })\n }\n return days\n}\n\nexport function createMonth(props: CreateMonthProps): Grid<DateValue> {\n const { dateObj, weekStartsOn, fixedWeeks, locale } = props\n const daysInMonth = getDaysInMonth(dateObj)\n\n const datesArray = Array.from({ length: daysInMonth }, (_, i) => dateObj.set({ day: i + 1 }))\n\n const firstDayOfMonth = startOfMonth(dateObj)\n const lastDayOfMonth = endOfMonth(dateObj)\n\n const lastSunday = getLastFirstDayOfWeek(firstDayOfMonth, weekStartsOn, locale)\n const nextSaturday = getNextLastDayOfWeek(lastDayOfMonth, weekStartsOn, locale)\n\n const lastMonthDays = getDaysBetween(lastSunday.subtract({ days: 1 }), firstDayOfMonth)\n const nextMonthDays = getDaysBetween(lastDayOfMonth, nextSaturday.add({ days: 1 }))\n\n const totalDays = lastMonthDays.length + datesArray.length + nextMonthDays.length\n\n if (fixedWeeks && totalDays < 42) {\n const extraDays = 42 - totalDays\n\n let startFrom = nextMonthDays[nextMonthDays.length - 1]\n\n if (!startFrom)\n startFrom = endOfMonth(dateObj)\n\n const extraDaysArray = Array.from({ length: extraDays }, (_, i) => {\n const incr = i + 1\n return startFrom.add({ days: incr })\n })\n nextMonthDays.push(...extraDaysArray)\n }\n\n const allDays = lastMonthDays.concat(datesArray, nextMonthDays)\n\n const weeks = chunk(allDays, 7)\n\n return {\n value: dateObj,\n cells: allDays,\n rows: weeks,\n }\n}\n\ntype SetMonthProps = CreateMonthProps & {\n numberOfMonths: number | undefined\n currentMonths?: Grid<DateValue>[]\n}\n\ntype SetYearProps = CreateSelectProps & {\n numberOfMonths?: number\n pagedNavigation?: boolean\n}\n\ntype SetDecadeProps = CreateSelectProps & {\n startIndex?: number\n endIndex: number\n}\n\nexport function startOfDecade(dateObj: DateValue) {\n // round to the lowest nearest 10 when building the decade\n return startOfYear(dateObj.subtract({ years: dateObj.year - Math.floor(dateObj.year / 10) * 10 }).set({ day: 1, month: 1 }))\n}\n\nexport function endOfDecade(dateObj: DateValue) {\n // round to the lowest nearest 10 when building the decade\n return endOfYear(dateObj.add({ years: Math.ceil((dateObj.year + 1) / 10) * 10 - dateObj.year - 1 }).set({ day: 35, month: 12 }))\n}\n\nexport function createDecade(props: SetDecadeProps): DateValue[] {\n const { dateObj, startIndex, endIndex } = props\n\n const decadeArray = Array.from({ length: Math.abs(startIndex ?? 0) + endIndex }, (_, i) =>\n i <= Math.abs((startIndex ?? 0))\n ? dateObj.subtract({ years: i }).set({ day: 1, month: 1 })\n : dateObj.add({ years: i - endIndex }).set({ day: 1, month: 1 }))\n\n decadeArray.sort((a: DateValue, b: DateValue) => a.year - b.year)\n\n return decadeArray\n}\n\nexport function createYear(props: SetYearProps): DateValue[] {\n const { dateObj, numberOfMonths = 1, pagedNavigation = false } = props\n\n if (numberOfMonths && pagedNavigation) {\n const monthsArray = Array.from({ length: Math.floor(12 / numberOfMonths) }, (_, i) => startOfMonth(dateObj.set({ month: i * numberOfMonths + 1 })))\n\n return monthsArray\n }\n\n const monthsArray = Array.from({ length: 12 }, (_, i) => startOfMonth(dateObj.set({ month: i + 1 })))\n return monthsArray\n}\n\nexport function createMonths(props: SetMonthProps) {\n const { numberOfMonths, dateObj, ...monthProps } = props\n\n const months: Grid<DateValue>[] = []\n\n if (!numberOfMonths || numberOfMonths === 1) {\n months.push(\n createMonth({\n ...monthProps,\n dateObj,\n }),\n )\n return months\n }\n\n months.push(\n createMonth({\n ...monthProps,\n dateObj,\n }),\n )\n\n // Create all the months, starting with the current month\n for (let i = 1; i < numberOfMonths; i++) {\n const nextMonth = dateObj.add({ months: i })\n months.push(\n createMonth({\n ...monthProps,\n dateObj: nextMonth,\n }),\n )\n }\n\n return months\n}\n\nexport function createYearRange({ start, end }: DateRange): DateValue[] {\n const years: DateValue[] = []\n\n if (!start || !end)\n return years\n\n let current = startOfYear(start)\n\n while (current.compare(end) <= 0) {\n years.push(current)\n // Move to the first day of the next year\n current = startOfYear(current.add({ years: 1 }))\n }\n\n return years\n}\n\nexport function createDateRange({ start, end }: DateRange): DateValue[] {\n const dates: DateValue[] = []\n\n if (!start || !end)\n return dates\n\n let current = start\n\n while (current.compare(end) <= 0) {\n dates.push(current)\n current = current.add({ days: 1 })\n }\n\n return dates\n}\n"],"names":["getDaysInMonth","startOfMonth","endOfMonth","getLastFirstDayOfWeek","getNextLastDayOfWeek","chunk","startOfYear","endOfYear","monthsArray"],"mappings":"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"}
1
+ {"version":3,"file":"calendar.cjs","sources":["../../src/date/calendar.ts"],"sourcesContent":["/*\n * Implementation ported from from from https://github.com/melt-ui/melt-ui/blob/develop/src/lib/builders/calendar/create.ts\n*/\n\nimport type { DateValue } from '@internationalized/date'\nimport type { Grid } from './types'\nimport type { DateRange } from '@/shared'\nimport { endOfMonth, endOfYear, startOfMonth, startOfYear } from '@internationalized/date'\nimport { getDaysInMonth, getLastFirstDayOfWeek, getNextLastDayOfWeek } from './comparators'\nimport { chunk } from './utils'\n\nexport type WeekDayFormat = 'narrow' | 'short' | 'long'\n\nexport type CreateSelectProps = {\n /**\n * The date object representing the date (usually the first day of the month/year).\n */\n dateObj: DateValue\n}\n\nexport type CreateMonthProps = {\n /**\n * The date object representing the month's date (usually the first day of the month).\n */\n dateObj: DateValue\n\n /**\n * The day of the week to start the calendar on (0 for Sunday, 1 for Monday, etc.).\n */\n weekStartsOn: number\n\n /**\n * Whether to always render 6 weeks in the calendar, even if the month doesn't\n * span 6 weeks.\n */\n fixedWeeks: boolean\n\n /**\n * The locale to use when creating the calendar month.\n */\n locale: string\n}\n\n/**\n * Retrieves an array of date values representing the days between\n * the provided start and end dates.\n */\nexport function getDaysBetween(start: DateValue, end: DateValue) {\n const days: DateValue[] = []\n let dCurrent = start.add({ days: 1 })\n const dEnd = end\n while (dCurrent.compare(dEnd) < 0) {\n days.push(dCurrent)\n dCurrent = dCurrent.add({ days: 1 })\n }\n return days\n}\n\nexport function createMonth(props: CreateMonthProps): Grid<DateValue> {\n const { dateObj, weekStartsOn, fixedWeeks, locale } = props\n const daysInMonth = getDaysInMonth(dateObj)\n\n const datesArray = Array.from({ length: daysInMonth }, (_, i) => dateObj.set({ day: i + 1 }))\n\n const firstDayOfMonth = startOfMonth(dateObj)\n const lastDayOfMonth = endOfMonth(dateObj)\n\n const lastSunday = getLastFirstDayOfWeek(firstDayOfMonth, weekStartsOn, locale)\n const nextSaturday = getNextLastDayOfWeek(lastDayOfMonth, weekStartsOn, locale)\n\n const lastMonthDays = getDaysBetween(lastSunday.subtract({ days: 1 }), firstDayOfMonth)\n const nextMonthDays = getDaysBetween(lastDayOfMonth, nextSaturday.add({ days: 1 }))\n\n const totalDays = lastMonthDays.length + datesArray.length + nextMonthDays.length\n\n if (fixedWeeks && totalDays < 42) {\n const extraDays = 42 - totalDays\n\n let startFrom = nextMonthDays[nextMonthDays.length - 1]\n\n if (!startFrom)\n startFrom = endOfMonth(dateObj)\n\n const extraDaysArray = Array.from({ length: extraDays }, (_, i) => {\n const incr = i + 1\n return startFrom.add({ days: incr })\n })\n nextMonthDays.push(...extraDaysArray)\n }\n\n const allDays = lastMonthDays.concat(datesArray, nextMonthDays)\n\n const weeks = chunk(allDays, 7)\n\n return {\n value: dateObj,\n cells: allDays,\n rows: weeks,\n }\n}\n\ntype SetMonthProps = CreateMonthProps & {\n numberOfMonths: number | undefined\n currentMonths?: Grid<DateValue>[]\n}\n\ntype SetYearProps = CreateSelectProps & {\n numberOfMonths?: number\n pagedNavigation?: boolean\n}\n\ntype SetDecadeProps = CreateSelectProps & {\n startIndex?: number\n endIndex: number\n}\n\nexport function startOfDecade(dateObj: DateValue) {\n // round to the lowest nearest 10 when building the decade\n return startOfYear(dateObj.subtract({ years: dateObj.year - Math.floor(dateObj.year / 10) * 10 }).set({ day: 1, month: 1 }))\n}\n\nexport function endOfDecade(dateObj: DateValue) {\n // round to the lowest nearest 10 when building the decade\n return endOfYear(dateObj.add({ years: Math.ceil((dateObj.year + 1) / 10) * 10 - dateObj.year - 1 }).set({ day: 35, month: 12 }))\n}\n\nexport function createDecade(props: SetDecadeProps): DateValue[] {\n const { dateObj, startIndex, endIndex } = props\n\n const decadeArray = Array.from({ length: Math.abs(startIndex ?? 0) + endIndex }, (_, i) =>\n i <= Math.abs((startIndex ?? 0))\n ? dateObj.subtract({ years: i }).set({ day: 1, month: 1 })\n : dateObj.add({ years: i - endIndex }).set({ day: 1, month: 1 }))\n\n decadeArray.sort((a: DateValue, b: DateValue) => a.year - b.year)\n\n return decadeArray\n}\n\nexport function createYear(props: SetYearProps): DateValue[] {\n const { dateObj, numberOfMonths = 1, pagedNavigation = false } = props\n\n if (numberOfMonths && pagedNavigation) {\n const monthsArray = Array.from({ length: Math.floor(12 / numberOfMonths) }, (_, i) => startOfMonth(dateObj.set({ month: i * numberOfMonths + 1 })))\n\n return monthsArray\n }\n\n const monthsArray = Array.from({ length: 12 }, (_, i) => startOfMonth(dateObj.set({ month: i + 1 })))\n return monthsArray\n}\n\nexport function createMonths(props: SetMonthProps) {\n const { numberOfMonths, dateObj, ...monthProps } = props\n\n const months: Grid<DateValue>[] = []\n\n if (!numberOfMonths || numberOfMonths === 1) {\n months.push(\n createMonth({\n ...monthProps,\n dateObj,\n }),\n )\n return months\n }\n\n months.push(\n createMonth({\n ...monthProps,\n dateObj,\n }),\n )\n\n // Create all the months, starting with the current month\n for (let i = 1; i < numberOfMonths; i++) {\n const nextMonth = dateObj.add({ months: i })\n months.push(\n createMonth({\n ...monthProps,\n dateObj: nextMonth,\n }),\n )\n }\n\n return months\n}\n\nexport function createYearRange({ start, end }: DateRange): DateValue[] {\n const years: DateValue[] = []\n\n if (!start || !end)\n return years\n\n let current = startOfYear(start)\n\n while (current.compare(end) <= 0) {\n years.push(current)\n // Move to the first day of the next year\n current = startOfYear(current.add({ years: 1 }))\n }\n\n return years\n}\n\nexport function createDateRange({ start, end }: DateRange): DateValue[] {\n const dates: DateValue[] = []\n\n if (!start || !end)\n return dates\n\n let current = start\n\n while (current.compare(end) <= 0) {\n dates.push(current)\n current = current.add({ days: 1 })\n }\n\n return dates\n}\n"],"names":["getDaysInMonth","startOfMonth","endOfMonth","getLastFirstDayOfWeek","getNextLastDayOfWeek","chunk","startOfYear","endOfYear","monthsArray"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { startOfMonth, endOfMonth, startOfYear, endOfYear } from '@internationalized/date';
2
- import { c as chunk } from './utils.js';
3
2
  import { g as getDaysInMonth, k as getLastFirstDayOfWeek, l as getNextLastDayOfWeek } from './comparators.js';
3
+ import { c as chunk } from './utils.js';
4
4
 
5
5
  function getDaysBetween(start, end) {
6
6
  const days = [];
@@ -1 +1 @@
1
- {"version":3,"file":"calendar.js","sources":["../../src/date/calendar.ts"],"sourcesContent":["/*\n * Implementation ported from from from https://github.com/melt-ui/melt-ui/blob/develop/src/lib/builders/calendar/create.ts\n*/\n\nimport { type DateValue, endOfMonth, endOfYear, startOfMonth, startOfYear } from '@internationalized/date'\nimport type { Grid } from './types'\nimport { chunk } from './utils'\nimport { getDaysInMonth, getLastFirstDayOfWeek, getNextLastDayOfWeek } from './comparators'\nimport type { DateRange } from '@/shared'\n\nexport type WeekDayFormat = 'narrow' | 'short' | 'long'\n\nexport type CreateSelectProps = {\n /**\n * The date object representing the date (usually the first day of the month/year).\n */\n dateObj: DateValue\n}\n\nexport type CreateMonthProps = {\n /**\n * The date object representing the month's date (usually the first day of the month).\n */\n dateObj: DateValue\n\n /**\n * The day of the week to start the calendar on (0 for Sunday, 1 for Monday, etc.).\n */\n weekStartsOn: number\n\n /**\n * Whether to always render 6 weeks in the calendar, even if the month doesn't\n * span 6 weeks.\n */\n fixedWeeks: boolean\n\n /**\n * The locale to use when creating the calendar month.\n */\n locale: string\n}\n\n/**\n * Retrieves an array of date values representing the days between\n * the provided start and end dates.\n */\nexport function getDaysBetween(start: DateValue, end: DateValue) {\n const days: DateValue[] = []\n let dCurrent = start.add({ days: 1 })\n const dEnd = end\n while (dCurrent.compare(dEnd) < 0) {\n days.push(dCurrent)\n dCurrent = dCurrent.add({ days: 1 })\n }\n return days\n}\n\nexport function createMonth(props: CreateMonthProps): Grid<DateValue> {\n const { dateObj, weekStartsOn, fixedWeeks, locale } = props\n const daysInMonth = getDaysInMonth(dateObj)\n\n const datesArray = Array.from({ length: daysInMonth }, (_, i) => dateObj.set({ day: i + 1 }))\n\n const firstDayOfMonth = startOfMonth(dateObj)\n const lastDayOfMonth = endOfMonth(dateObj)\n\n const lastSunday = getLastFirstDayOfWeek(firstDayOfMonth, weekStartsOn, locale)\n const nextSaturday = getNextLastDayOfWeek(lastDayOfMonth, weekStartsOn, locale)\n\n const lastMonthDays = getDaysBetween(lastSunday.subtract({ days: 1 }), firstDayOfMonth)\n const nextMonthDays = getDaysBetween(lastDayOfMonth, nextSaturday.add({ days: 1 }))\n\n const totalDays = lastMonthDays.length + datesArray.length + nextMonthDays.length\n\n if (fixedWeeks && totalDays < 42) {\n const extraDays = 42 - totalDays\n\n let startFrom = nextMonthDays[nextMonthDays.length - 1]\n\n if (!startFrom)\n startFrom = endOfMonth(dateObj)\n\n const extraDaysArray = Array.from({ length: extraDays }, (_, i) => {\n const incr = i + 1\n return startFrom.add({ days: incr })\n })\n nextMonthDays.push(...extraDaysArray)\n }\n\n const allDays = lastMonthDays.concat(datesArray, nextMonthDays)\n\n const weeks = chunk(allDays, 7)\n\n return {\n value: dateObj,\n cells: allDays,\n rows: weeks,\n }\n}\n\ntype SetMonthProps = CreateMonthProps & {\n numberOfMonths: number | undefined\n currentMonths?: Grid<DateValue>[]\n}\n\ntype SetYearProps = CreateSelectProps & {\n numberOfMonths?: number\n pagedNavigation?: boolean\n}\n\ntype SetDecadeProps = CreateSelectProps & {\n startIndex?: number\n endIndex: number\n}\n\nexport function startOfDecade(dateObj: DateValue) {\n // round to the lowest nearest 10 when building the decade\n return startOfYear(dateObj.subtract({ years: dateObj.year - Math.floor(dateObj.year / 10) * 10 }).set({ day: 1, month: 1 }))\n}\n\nexport function endOfDecade(dateObj: DateValue) {\n // round to the lowest nearest 10 when building the decade\n return endOfYear(dateObj.add({ years: Math.ceil((dateObj.year + 1) / 10) * 10 - dateObj.year - 1 }).set({ day: 35, month: 12 }))\n}\n\nexport function createDecade(props: SetDecadeProps): DateValue[] {\n const { dateObj, startIndex, endIndex } = props\n\n const decadeArray = Array.from({ length: Math.abs(startIndex ?? 0) + endIndex }, (_, i) =>\n i <= Math.abs((startIndex ?? 0))\n ? dateObj.subtract({ years: i }).set({ day: 1, month: 1 })\n : dateObj.add({ years: i - endIndex }).set({ day: 1, month: 1 }))\n\n decadeArray.sort((a: DateValue, b: DateValue) => a.year - b.year)\n\n return decadeArray\n}\n\nexport function createYear(props: SetYearProps): DateValue[] {\n const { dateObj, numberOfMonths = 1, pagedNavigation = false } = props\n\n if (numberOfMonths && pagedNavigation) {\n const monthsArray = Array.from({ length: Math.floor(12 / numberOfMonths) }, (_, i) => startOfMonth(dateObj.set({ month: i * numberOfMonths + 1 })))\n\n return monthsArray\n }\n\n const monthsArray = Array.from({ length: 12 }, (_, i) => startOfMonth(dateObj.set({ month: i + 1 })))\n return monthsArray\n}\n\nexport function createMonths(props: SetMonthProps) {\n const { numberOfMonths, dateObj, ...monthProps } = props\n\n const months: Grid<DateValue>[] = []\n\n if (!numberOfMonths || numberOfMonths === 1) {\n months.push(\n createMonth({\n ...monthProps,\n dateObj,\n }),\n )\n return months\n }\n\n months.push(\n createMonth({\n ...monthProps,\n dateObj,\n }),\n )\n\n // Create all the months, starting with the current month\n for (let i = 1; i < numberOfMonths; i++) {\n const nextMonth = dateObj.add({ months: i })\n months.push(\n createMonth({\n ...monthProps,\n dateObj: nextMonth,\n }),\n )\n }\n\n return months\n}\n\nexport function createYearRange({ start, end }: DateRange): DateValue[] {\n const years: DateValue[] = []\n\n if (!start || !end)\n return years\n\n let current = startOfYear(start)\n\n while (current.compare(end) <= 0) {\n years.push(current)\n // Move to the first day of the next year\n current = startOfYear(current.add({ years: 1 }))\n }\n\n return years\n}\n\nexport function createDateRange({ start, end }: DateRange): DateValue[] {\n const dates: DateValue[] = []\n\n if (!start || !end)\n return dates\n\n let current = start\n\n while (current.compare(end) <= 0) {\n dates.push(current)\n current = current.add({ days: 1 })\n }\n\n return dates\n}\n"],"names":["monthsArray"],"mappings":"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"}
1
+ {"version":3,"file":"calendar.js","sources":["../../src/date/calendar.ts"],"sourcesContent":["/*\n * Implementation ported from from from https://github.com/melt-ui/melt-ui/blob/develop/src/lib/builders/calendar/create.ts\n*/\n\nimport type { DateValue } from '@internationalized/date'\nimport type { Grid } from './types'\nimport type { DateRange } from '@/shared'\nimport { endOfMonth, endOfYear, startOfMonth, startOfYear } from '@internationalized/date'\nimport { getDaysInMonth, getLastFirstDayOfWeek, getNextLastDayOfWeek } from './comparators'\nimport { chunk } from './utils'\n\nexport type WeekDayFormat = 'narrow' | 'short' | 'long'\n\nexport type CreateSelectProps = {\n /**\n * The date object representing the date (usually the first day of the month/year).\n */\n dateObj: DateValue\n}\n\nexport type CreateMonthProps = {\n /**\n * The date object representing the month's date (usually the first day of the month).\n */\n dateObj: DateValue\n\n /**\n * The day of the week to start the calendar on (0 for Sunday, 1 for Monday, etc.).\n */\n weekStartsOn: number\n\n /**\n * Whether to always render 6 weeks in the calendar, even if the month doesn't\n * span 6 weeks.\n */\n fixedWeeks: boolean\n\n /**\n * The locale to use when creating the calendar month.\n */\n locale: string\n}\n\n/**\n * Retrieves an array of date values representing the days between\n * the provided start and end dates.\n */\nexport function getDaysBetween(start: DateValue, end: DateValue) {\n const days: DateValue[] = []\n let dCurrent = start.add({ days: 1 })\n const dEnd = end\n while (dCurrent.compare(dEnd) < 0) {\n days.push(dCurrent)\n dCurrent = dCurrent.add({ days: 1 })\n }\n return days\n}\n\nexport function createMonth(props: CreateMonthProps): Grid<DateValue> {\n const { dateObj, weekStartsOn, fixedWeeks, locale } = props\n const daysInMonth = getDaysInMonth(dateObj)\n\n const datesArray = Array.from({ length: daysInMonth }, (_, i) => dateObj.set({ day: i + 1 }))\n\n const firstDayOfMonth = startOfMonth(dateObj)\n const lastDayOfMonth = endOfMonth(dateObj)\n\n const lastSunday = getLastFirstDayOfWeek(firstDayOfMonth, weekStartsOn, locale)\n const nextSaturday = getNextLastDayOfWeek(lastDayOfMonth, weekStartsOn, locale)\n\n const lastMonthDays = getDaysBetween(lastSunday.subtract({ days: 1 }), firstDayOfMonth)\n const nextMonthDays = getDaysBetween(lastDayOfMonth, nextSaturday.add({ days: 1 }))\n\n const totalDays = lastMonthDays.length + datesArray.length + nextMonthDays.length\n\n if (fixedWeeks && totalDays < 42) {\n const extraDays = 42 - totalDays\n\n let startFrom = nextMonthDays[nextMonthDays.length - 1]\n\n if (!startFrom)\n startFrom = endOfMonth(dateObj)\n\n const extraDaysArray = Array.from({ length: extraDays }, (_, i) => {\n const incr = i + 1\n return startFrom.add({ days: incr })\n })\n nextMonthDays.push(...extraDaysArray)\n }\n\n const allDays = lastMonthDays.concat(datesArray, nextMonthDays)\n\n const weeks = chunk(allDays, 7)\n\n return {\n value: dateObj,\n cells: allDays,\n rows: weeks,\n }\n}\n\ntype SetMonthProps = CreateMonthProps & {\n numberOfMonths: number | undefined\n currentMonths?: Grid<DateValue>[]\n}\n\ntype SetYearProps = CreateSelectProps & {\n numberOfMonths?: number\n pagedNavigation?: boolean\n}\n\ntype SetDecadeProps = CreateSelectProps & {\n startIndex?: number\n endIndex: number\n}\n\nexport function startOfDecade(dateObj: DateValue) {\n // round to the lowest nearest 10 when building the decade\n return startOfYear(dateObj.subtract({ years: dateObj.year - Math.floor(dateObj.year / 10) * 10 }).set({ day: 1, month: 1 }))\n}\n\nexport function endOfDecade(dateObj: DateValue) {\n // round to the lowest nearest 10 when building the decade\n return endOfYear(dateObj.add({ years: Math.ceil((dateObj.year + 1) / 10) * 10 - dateObj.year - 1 }).set({ day: 35, month: 12 }))\n}\n\nexport function createDecade(props: SetDecadeProps): DateValue[] {\n const { dateObj, startIndex, endIndex } = props\n\n const decadeArray = Array.from({ length: Math.abs(startIndex ?? 0) + endIndex }, (_, i) =>\n i <= Math.abs((startIndex ?? 0))\n ? dateObj.subtract({ years: i }).set({ day: 1, month: 1 })\n : dateObj.add({ years: i - endIndex }).set({ day: 1, month: 1 }))\n\n decadeArray.sort((a: DateValue, b: DateValue) => a.year - b.year)\n\n return decadeArray\n}\n\nexport function createYear(props: SetYearProps): DateValue[] {\n const { dateObj, numberOfMonths = 1, pagedNavigation = false } = props\n\n if (numberOfMonths && pagedNavigation) {\n const monthsArray = Array.from({ length: Math.floor(12 / numberOfMonths) }, (_, i) => startOfMonth(dateObj.set({ month: i * numberOfMonths + 1 })))\n\n return monthsArray\n }\n\n const monthsArray = Array.from({ length: 12 }, (_, i) => startOfMonth(dateObj.set({ month: i + 1 })))\n return monthsArray\n}\n\nexport function createMonths(props: SetMonthProps) {\n const { numberOfMonths, dateObj, ...monthProps } = props\n\n const months: Grid<DateValue>[] = []\n\n if (!numberOfMonths || numberOfMonths === 1) {\n months.push(\n createMonth({\n ...monthProps,\n dateObj,\n }),\n )\n return months\n }\n\n months.push(\n createMonth({\n ...monthProps,\n dateObj,\n }),\n )\n\n // Create all the months, starting with the current month\n for (let i = 1; i < numberOfMonths; i++) {\n const nextMonth = dateObj.add({ months: i })\n months.push(\n createMonth({\n ...monthProps,\n dateObj: nextMonth,\n }),\n )\n }\n\n return months\n}\n\nexport function createYearRange({ start, end }: DateRange): DateValue[] {\n const years: DateValue[] = []\n\n if (!start || !end)\n return years\n\n let current = startOfYear(start)\n\n while (current.compare(end) <= 0) {\n years.push(current)\n // Move to the first day of the next year\n current = startOfYear(current.add({ years: 1 }))\n }\n\n return years\n}\n\nexport function createDateRange({ start, end }: DateRange): DateValue[] {\n const dates: DateValue[] = []\n\n if (!start || !end)\n return dates\n\n let current = start\n\n while (current.compare(end) <= 0) {\n dates.push(current)\n current = current.add({ days: 1 })\n }\n\n return dates\n}\n"],"names":["monthsArray"],"mappings":"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"}
@@ -101,17 +101,19 @@ function getNextLastDayOfWeek(date$1, firstDayOfWeek, locale) {
101
101
  return date$1.add({ days: 7 - day + lastDayOfWeek });
102
102
  return date$1.add({ days: lastDayOfWeek - day });
103
103
  }
104
- function areAllDaysBetweenValid(start, end, isUnavailable, isDisabled) {
105
- if (isUnavailable === void 0 && isDisabled === void 0)
104
+ function areAllDaysBetweenValid(start, end, isUnavailable, isDisabled, isHighlightable) {
105
+ if (isUnavailable === void 0 && isDisabled === void 0 && isHighlightable === void 0)
106
106
  return true;
107
107
  let dCurrent = start.add({ days: 1 });
108
- if (isDisabled?.(dCurrent) || isUnavailable?.(dCurrent))
108
+ if ((isDisabled?.(dCurrent) || isUnavailable?.(dCurrent)) && !isHighlightable?.(dCurrent)) {
109
109
  return false;
110
+ }
110
111
  const dEnd = end;
111
112
  while (dCurrent.compare(dEnd) < 0) {
112
113
  dCurrent = dCurrent.add({ days: 1 });
113
- if (isDisabled?.(dCurrent) || isUnavailable?.(dCurrent))
114
+ if ((isDisabled?.(dCurrent) || isUnavailable?.(dCurrent)) && !isHighlightable?.(dCurrent)) {
114
115
  return false;
116
+ }
115
117
  }
116
118
  return true;
117
119
  }
@@ -1 +1 @@
1
- {"version":3,"file":"comparators.cjs","sources":["../../src/shared/date/comparators.ts","../../src/date/comparators.ts"],"sourcesContent":["/*\n * Implementation ported from https://github.com/melt-ui/melt-ui/blob/develop/src/lib/internal/helpers/date/utils.ts\n*/\n\nimport { CalendarDate, CalendarDateTime, DateFormatter, type DateValue, Time, type ZonedDateTime, createCalendar, toCalendar } from '@internationalized/date'\n\nexport type TimeValue = Time | CalendarDateTime | ZonedDateTime\n\nexport type Granularity = 'day' | 'hour' | 'minute' | 'second'\nexport type TimeGranularity = 'hour' | 'minute' | 'second'\n\ntype GetDefaultDateProps = {\n defaultValue?: DateValue | DateValue[] | undefined\n defaultPlaceholder?: DateValue | undefined\n granularity?: Granularity\n locale?: string\n}\n\n/**\n * A helper function used throughout the various date builders\n * to generate a default `DateValue` using the `defaultValue`,\n * `defaultPlaceholder`, and `granularity` props.\n *\n * It's important to match the `DateValue` type being used\n * elsewhere in the builder, so they behave according to the\n * behavior the user expects based on the props they've provided.\n *\n */\nexport function getDefaultDate(props: GetDefaultDateProps): DateValue {\n const { defaultValue, defaultPlaceholder, granularity = 'day', locale = 'en' } = props\n\n if (Array.isArray(defaultValue) && defaultValue.length)\n return defaultValue.at(-1)!.copy()\n\n if (defaultValue && !Array.isArray(defaultValue))\n return defaultValue.copy()\n\n if (defaultPlaceholder)\n return defaultPlaceholder.copy()\n\n const date = new Date()\n const year = date.getFullYear()\n const month = date.getMonth() + 1\n const day = date.getDate()\n const calendarDateTimeGranularities = ['hour', 'minute', 'second']\n\n const defaultFormatter = new DateFormatter(locale)\n const calendar = createCalendar(defaultFormatter.resolvedOptions().calendar)\n\n if (calendarDateTimeGranularities.includes(granularity ?? 'day'))\n return toCalendar(new CalendarDateTime(year, month, day, 0, 0, 0), calendar)\n\n return toCalendar(new CalendarDate(year, month, day), calendar)\n}\n\ntype GetDefaultTimeProps = {\n defaultValue?: TimeValue | undefined\n defaultPlaceholder?: TimeValue | undefined\n}\n\nexport function getDefaultTime(props: GetDefaultTimeProps): TimeValue {\n const { defaultValue, defaultPlaceholder } = props\n\n if (defaultValue) {\n return defaultValue.copy()\n }\n\n if (defaultPlaceholder) {\n return defaultPlaceholder.copy()\n }\n\n return new Time(0, 0, 0)\n}\n","import { CalendarDateTime, type DateValue, ZonedDateTime, getDayOfWeek, getLocalTimeZone, parseDate, parseDateTime, parseZonedDateTime, toCalendar } from '@internationalized/date'\nimport type { Matcher } from './types'\n\n/**\n * Given a date string and a reference `DateValue` object, parse the\n * string to the same type as the reference object.\n *\n * Useful for parsing strings from data attributes, which are always\n * strings, to the same type being used by the date component.\n */\nexport function parseStringToDateValue(dateStr: string, referenceVal: DateValue): DateValue {\n let dateValue: DateValue\n if (isZonedDateTime(referenceVal))\n dateValue = parseZonedDateTime(dateStr)\n\n else if (isCalendarDateTime(referenceVal))\n dateValue = parseDateTime(dateStr)\n\n else\n dateValue = parseDate(dateStr)\n\n return dateValue.calendar !== referenceVal.calendar ? toCalendar(dateValue, referenceVal.calendar) : dateValue\n}\n\n/**\n * Given a `DateValue` object, convert it to a native `Date` object.\n * If a timezone is provided, the date will be converted to that timezone.\n * If no timezone is provided, the date will be converted to the local timezone.\n */\nexport function toDate(dateValue: DateValue, tz: string = getLocalTimeZone()) {\n if (isZonedDateTime(dateValue))\n return dateValue.toDate()\n else\n return dateValue.toDate(tz)\n}\n\nexport function isCalendarDateTime(dateValue: DateValue): dateValue is CalendarDateTime {\n return dateValue instanceof CalendarDateTime\n}\n\nexport function isZonedDateTime(dateValue: DateValue): dateValue is ZonedDateTime {\n return dateValue instanceof ZonedDateTime\n}\n\nexport function hasTime(dateValue: DateValue) {\n return isCalendarDateTime(dateValue) || isZonedDateTime(dateValue)\n}\n\n/**\n * Given a date, return the number of days in the month.\n */\nexport function getDaysInMonth(date: Date | DateValue) {\n if (date instanceof Date) {\n const year = date.getFullYear()\n const month = date.getMonth() + 1\n /**\n * By using zero as the day, we get the\n * last day of the previous month, which\n * is the month we originally passed in.\n */\n return new Date(year, month, 0).getDate()\n }\n else {\n return date.set({ day: 100 }).day\n }\n}\n\n/**\n * Determine if a date is before the reference date.\n * @param dateToCompare - is this date before the `referenceDate`\n * @param referenceDate - is the `dateToCompare` before this date\n *\n * @see {@link isBeforeOrSame} for inclusive\n */\nexport function isBefore(dateToCompare: DateValue, referenceDate: DateValue) {\n return dateToCompare.compare(referenceDate) < 0\n}\n\n/**\n * Determine if a date is after the reference date.\n * @param dateToCompare - is this date after the `referenceDate`\n * @param referenceDate - is the `dateToCompare` after this date\n *\n * @see {@link isAfterOrSame} for inclusive\n */\nexport function isAfter(dateToCompare: DateValue, referenceDate: DateValue) {\n return dateToCompare.compare(referenceDate) > 0\n}\n\n/**\n * Determine if a date is before or the same as the reference date.\n *\n * @param dateToCompare - the date to compare\n * @param referenceDate - the reference date to make the comparison against\n *\n * @see {@link isBefore} for non-inclusive\n */\nexport function isBeforeOrSame(dateToCompare: DateValue, referenceDate: DateValue) {\n return dateToCompare.compare(referenceDate) <= 0\n}\n\n/**\n * Determine if a date is after or the same as the reference date.\n *\n * @param dateToCompare - is this date after or the same as the `referenceDate`\n * @param referenceDate - is the `dateToCompare` after or the same as this date\n *\n * @see {@link isAfter} for non-inclusive\n */\nexport function isAfterOrSame(dateToCompare: DateValue, referenceDate: DateValue) {\n return dateToCompare.compare(referenceDate) >= 0\n}\n\n/**\n * Determine if a date is inclusively between a start and end reference date.\n *\n * @param date - is this date inclusively between the `start` and `end` dates\n * @param start - the start reference date to make the comparison against\n * @param end - the end reference date to make the comparison against\n *\n * @see {@link isBetween} for non-inclusive\n */\nexport function isBetweenInclusive(date: DateValue, start: DateValue, end: DateValue) {\n return isAfterOrSame(date, start) && isBeforeOrSame(date, end)\n}\n\n/**\n * Determine if a date is between a start and end reference date.\n *\n * @param date - is this date between the `start` and `end` dates\n * @param start - the start reference date to make the comparison against\n * @param end - the end reference date to make the comparison against\n *\n * @see {@link isBetweenInclusive} for inclusive\n */\nexport function isBetween(date: DateValue, start: DateValue, end: DateValue) {\n return isAfter(date, start) && isBefore(date, end)\n}\n\nexport function getLastFirstDayOfWeek<T extends DateValue = DateValue>(\n date: T,\n firstDayOfWeek: number,\n locale: string,\n): T {\n const day = getDayOfWeek(date, locale)\n\n if (firstDayOfWeek > day)\n return date.subtract({ days: day + 7 - firstDayOfWeek }) as T\n\n if (firstDayOfWeek === day)\n return date as T\n\n return date.subtract({ days: day - firstDayOfWeek }) as T\n}\n\nexport function getNextLastDayOfWeek<T extends DateValue = DateValue>(\n date: T,\n firstDayOfWeek: number,\n locale: string,\n): T {\n const day = getDayOfWeek(date, locale)\n const lastDayOfWeek = firstDayOfWeek === 0 ? 6 : firstDayOfWeek - 1\n\n if (day === lastDayOfWeek)\n return date as T\n\n if (day > lastDayOfWeek)\n return date.add({ days: 7 - day + lastDayOfWeek }) as T\n\n return date.add({ days: lastDayOfWeek - day }) as T\n}\n\nexport function areAllDaysBetweenValid(\n start: DateValue,\n end: DateValue,\n isUnavailable: Matcher | undefined,\n isDisabled: Matcher | undefined,\n) {\n if (isUnavailable === undefined && isDisabled === undefined)\n return true\n\n let dCurrent = start.add({ days: 1 })\n if (isDisabled?.(dCurrent) || isUnavailable?.(dCurrent))\n return false\n\n const dEnd = end\n while (dCurrent.compare(dEnd) < 0) {\n dCurrent = dCurrent.add({ days: 1 })\n if (isDisabled?.(dCurrent) || isUnavailable?.(dCurrent))\n return false\n }\n return true\n}\n"],"names":["date","DateFormatter","createCalendar","toCalendar","CalendarDateTime","CalendarDate","Time","parseZonedDateTime","parseDateTime","parseDate","getLocalTimeZone","ZonedDateTime","getDayOfWeek"],"mappings":"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"}
1
+ {"version":3,"file":"comparators.cjs","sources":["../../src/shared/date/comparators.ts","../../src/date/comparators.ts"],"sourcesContent":["/*\n * Implementation ported from https://github.com/melt-ui/melt-ui/blob/develop/src/lib/internal/helpers/date/utils.ts\n*/\n\nimport type { DateValue, ZonedDateTime } from '@internationalized/date'\nimport { CalendarDate, CalendarDateTime, createCalendar, DateFormatter, Time, toCalendar } from '@internationalized/date'\n\nexport type TimeValue = Time | CalendarDateTime | ZonedDateTime\n\nexport type Granularity = 'day' | 'hour' | 'minute' | 'second'\nexport type TimeGranularity = 'hour' | 'minute' | 'second'\n\ntype GetDefaultDateProps = {\n defaultValue?: DateValue | DateValue[] | undefined\n defaultPlaceholder?: DateValue | undefined\n granularity?: Granularity\n locale?: string\n}\n\n/**\n * A helper function used throughout the various date builders\n * to generate a default `DateValue` using the `defaultValue`,\n * `defaultPlaceholder`, and `granularity` props.\n *\n * It's important to match the `DateValue` type being used\n * elsewhere in the builder, so they behave according to the\n * behavior the user expects based on the props they've provided.\n *\n */\nexport function getDefaultDate(props: GetDefaultDateProps): DateValue {\n const { defaultValue, defaultPlaceholder, granularity = 'day', locale = 'en' } = props\n\n if (Array.isArray(defaultValue) && defaultValue.length)\n return defaultValue.at(-1)!.copy()\n\n if (defaultValue && !Array.isArray(defaultValue))\n return defaultValue.copy()\n\n if (defaultPlaceholder)\n return defaultPlaceholder.copy()\n\n const date = new Date()\n const year = date.getFullYear()\n const month = date.getMonth() + 1\n const day = date.getDate()\n const calendarDateTimeGranularities = ['hour', 'minute', 'second']\n\n const defaultFormatter = new DateFormatter(locale)\n const calendar = createCalendar(defaultFormatter.resolvedOptions().calendar)\n\n if (calendarDateTimeGranularities.includes(granularity ?? 'day'))\n return toCalendar(new CalendarDateTime(year, month, day, 0, 0, 0), calendar)\n\n return toCalendar(new CalendarDate(year, month, day), calendar)\n}\n\ntype GetDefaultTimeProps = {\n defaultValue?: TimeValue | undefined\n defaultPlaceholder?: TimeValue | undefined\n}\n\nexport function getDefaultTime(props: GetDefaultTimeProps): TimeValue {\n const { defaultValue, defaultPlaceholder } = props\n\n if (defaultValue) {\n return defaultValue.copy()\n }\n\n if (defaultPlaceholder) {\n return defaultPlaceholder.copy()\n }\n\n return new Time(0, 0, 0)\n}\n","import type { DateValue } from '@internationalized/date'\nimport type { Matcher } from './types'\nimport { CalendarDateTime, getDayOfWeek, getLocalTimeZone, parseDate, parseDateTime, parseZonedDateTime, toCalendar, ZonedDateTime } from '@internationalized/date'\n\n/**\n * Given a date string and a reference `DateValue` object, parse the\n * string to the same type as the reference object.\n *\n * Useful for parsing strings from data attributes, which are always\n * strings, to the same type being used by the date component.\n */\nexport function parseStringToDateValue(dateStr: string, referenceVal: DateValue): DateValue {\n let dateValue: DateValue\n if (isZonedDateTime(referenceVal))\n dateValue = parseZonedDateTime(dateStr)\n\n else if (isCalendarDateTime(referenceVal))\n dateValue = parseDateTime(dateStr)\n\n else\n dateValue = parseDate(dateStr)\n\n return dateValue.calendar !== referenceVal.calendar ? toCalendar(dateValue, referenceVal.calendar) : dateValue\n}\n\n/**\n * Given a `DateValue` object, convert it to a native `Date` object.\n * If a timezone is provided, the date will be converted to that timezone.\n * If no timezone is provided, the date will be converted to the local timezone.\n */\nexport function toDate(dateValue: DateValue, tz: string = getLocalTimeZone()) {\n if (isZonedDateTime(dateValue))\n return dateValue.toDate()\n else\n return dateValue.toDate(tz)\n}\n\nexport function isCalendarDateTime(dateValue: DateValue): dateValue is CalendarDateTime {\n return dateValue instanceof CalendarDateTime\n}\n\nexport function isZonedDateTime(dateValue: DateValue): dateValue is ZonedDateTime {\n return dateValue instanceof ZonedDateTime\n}\n\nexport function hasTime(dateValue: DateValue) {\n return isCalendarDateTime(dateValue) || isZonedDateTime(dateValue)\n}\n\n/**\n * Given a date, return the number of days in the month.\n */\nexport function getDaysInMonth(date: Date | DateValue) {\n if (date instanceof Date) {\n const year = date.getFullYear()\n const month = date.getMonth() + 1\n /**\n * By using zero as the day, we get the\n * last day of the previous month, which\n * is the month we originally passed in.\n */\n return new Date(year, month, 0).getDate()\n }\n else {\n return date.set({ day: 100 }).day\n }\n}\n\n/**\n * Determine if a date is before the reference date.\n * @param dateToCompare - is this date before the `referenceDate`\n * @param referenceDate - is the `dateToCompare` before this date\n *\n * @see {@link isBeforeOrSame} for inclusive\n */\nexport function isBefore(dateToCompare: DateValue, referenceDate: DateValue) {\n return dateToCompare.compare(referenceDate) < 0\n}\n\n/**\n * Determine if a date is after the reference date.\n * @param dateToCompare - is this date after the `referenceDate`\n * @param referenceDate - is the `dateToCompare` after this date\n *\n * @see {@link isAfterOrSame} for inclusive\n */\nexport function isAfter(dateToCompare: DateValue, referenceDate: DateValue) {\n return dateToCompare.compare(referenceDate) > 0\n}\n\n/**\n * Determine if a date is before or the same as the reference date.\n *\n * @param dateToCompare - the date to compare\n * @param referenceDate - the reference date to make the comparison against\n *\n * @see {@link isBefore} for non-inclusive\n */\nexport function isBeforeOrSame(dateToCompare: DateValue, referenceDate: DateValue) {\n return dateToCompare.compare(referenceDate) <= 0\n}\n\n/**\n * Determine if a date is after or the same as the reference date.\n *\n * @param dateToCompare - is this date after or the same as the `referenceDate`\n * @param referenceDate - is the `dateToCompare` after or the same as this date\n *\n * @see {@link isAfter} for non-inclusive\n */\nexport function isAfterOrSame(dateToCompare: DateValue, referenceDate: DateValue) {\n return dateToCompare.compare(referenceDate) >= 0\n}\n\n/**\n * Determine if a date is inclusively between a start and end reference date.\n *\n * @param date - is this date inclusively between the `start` and `end` dates\n * @param start - the start reference date to make the comparison against\n * @param end - the end reference date to make the comparison against\n *\n * @see {@link isBetween} for non-inclusive\n */\nexport function isBetweenInclusive(date: DateValue, start: DateValue, end: DateValue) {\n return isAfterOrSame(date, start) && isBeforeOrSame(date, end)\n}\n\n/**\n * Determine if a date is between a start and end reference date.\n *\n * @param date - is this date between the `start` and `end` dates\n * @param start - the start reference date to make the comparison against\n * @param end - the end reference date to make the comparison against\n *\n * @see {@link isBetweenInclusive} for inclusive\n */\nexport function isBetween(date: DateValue, start: DateValue, end: DateValue) {\n return isAfter(date, start) && isBefore(date, end)\n}\n\nexport function getLastFirstDayOfWeek<T extends DateValue = DateValue>(\n date: T,\n firstDayOfWeek: number,\n locale: string,\n): T {\n const day = getDayOfWeek(date, locale)\n\n if (firstDayOfWeek > day)\n return date.subtract({ days: day + 7 - firstDayOfWeek }) as T\n\n if (firstDayOfWeek === day)\n return date as T\n\n return date.subtract({ days: day - firstDayOfWeek }) as T\n}\n\nexport function getNextLastDayOfWeek<T extends DateValue = DateValue>(\n date: T,\n firstDayOfWeek: number,\n locale: string,\n): T {\n const day = getDayOfWeek(date, locale)\n const lastDayOfWeek = firstDayOfWeek === 0 ? 6 : firstDayOfWeek - 1\n\n if (day === lastDayOfWeek)\n return date as T\n\n if (day > lastDayOfWeek)\n return date.add({ days: 7 - day + lastDayOfWeek }) as T\n\n return date.add({ days: lastDayOfWeek - day }) as T\n}\n\nexport function areAllDaysBetweenValid(\n start: DateValue,\n end: DateValue,\n isUnavailable: Matcher | undefined,\n isDisabled: Matcher | undefined,\n isHighlightable?: Matcher | undefined,\n) {\n if (isUnavailable === undefined && isDisabled === undefined && isHighlightable === undefined)\n return true\n\n let dCurrent = start.add({ days: 1 })\n if ((isDisabled?.(dCurrent) || isUnavailable?.(dCurrent))\n && !isHighlightable?.(dCurrent)) {\n return false\n }\n\n const dEnd = end\n while (dCurrent.compare(dEnd) < 0) {\n dCurrent = dCurrent.add({ days: 1 })\n if ((isDisabled?.(dCurrent) || isUnavailable?.(dCurrent))\n && !isHighlightable?.(dCurrent)) {\n return false\n }\n }\n return true\n}\n"],"names":["date","DateFormatter","createCalendar","toCalendar","CalendarDateTime","CalendarDate","Time","parseZonedDateTime","parseDateTime","parseDate","getLocalTimeZone","ZonedDateTime","getDayOfWeek"],"mappings":"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"}
@@ -99,17 +99,19 @@ function getNextLastDayOfWeek(date, firstDayOfWeek, locale) {
99
99
  return date.add({ days: 7 - day + lastDayOfWeek });
100
100
  return date.add({ days: lastDayOfWeek - day });
101
101
  }
102
- function areAllDaysBetweenValid(start, end, isUnavailable, isDisabled) {
103
- if (isUnavailable === void 0 && isDisabled === void 0)
102
+ function areAllDaysBetweenValid(start, end, isUnavailable, isDisabled, isHighlightable) {
103
+ if (isUnavailable === void 0 && isDisabled === void 0 && isHighlightable === void 0)
104
104
  return true;
105
105
  let dCurrent = start.add({ days: 1 });
106
- if (isDisabled?.(dCurrent) || isUnavailable?.(dCurrent))
106
+ if ((isDisabled?.(dCurrent) || isUnavailable?.(dCurrent)) && !isHighlightable?.(dCurrent)) {
107
107
  return false;
108
+ }
108
109
  const dEnd = end;
109
110
  while (dCurrent.compare(dEnd) < 0) {
110
111
  dCurrent = dCurrent.add({ days: 1 });
111
- if (isDisabled?.(dCurrent) || isUnavailable?.(dCurrent))
112
+ if ((isDisabled?.(dCurrent) || isUnavailable?.(dCurrent)) && !isHighlightable?.(dCurrent)) {
112
113
  return false;
114
+ }
113
115
  }
114
116
  return true;
115
117
  }