reka-ui 2.2.0 → 2.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (842) 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/AlertDialog/AlertDialogContent.cjs.map +1 -1
  12. package/dist/AlertDialog/AlertDialogContent.js.map +1 -1
  13. package/dist/AspectRatio/AspectRatio.cjs.map +1 -1
  14. package/dist/AspectRatio/AspectRatio.js.map +1 -1
  15. package/dist/Avatar/AvatarFallback.cjs.map +1 -1
  16. package/dist/Avatar/AvatarFallback.js.map +1 -1
  17. package/dist/Avatar/AvatarImage.cjs.map +1 -1
  18. package/dist/Avatar/AvatarImage.js.map +1 -1
  19. package/dist/Avatar/AvatarRoot.cjs.map +1 -1
  20. package/dist/Avatar/AvatarRoot.js.map +1 -1
  21. package/dist/Avatar/utils.cjs.map +1 -1
  22. package/dist/Avatar/utils.js.map +1 -1
  23. package/dist/Calendar/CalendarCell.cjs +1 -1
  24. package/dist/Calendar/CalendarCell.js +1 -1
  25. package/dist/Calendar/CalendarCellTrigger.cjs.map +1 -1
  26. package/dist/Calendar/CalendarCellTrigger.js.map +1 -1
  27. package/dist/Calendar/CalendarHeading.cjs +1 -1
  28. package/dist/Calendar/CalendarHeading.js +1 -1
  29. package/dist/Calendar/CalendarNext.cjs.map +1 -1
  30. package/dist/Calendar/CalendarNext.js.map +1 -1
  31. package/dist/Calendar/CalendarPrev.cjs.map +1 -1
  32. package/dist/Calendar/CalendarPrev.js.map +1 -1
  33. package/dist/Calendar/CalendarRoot.cjs.map +1 -1
  34. package/dist/Calendar/CalendarRoot.js.map +1 -1
  35. package/dist/Calendar/useCalendar.cjs +2 -2
  36. package/dist/Calendar/useCalendar.cjs.map +1 -1
  37. package/dist/Calendar/useCalendar.js +2 -2
  38. package/dist/Calendar/useCalendar.js.map +1 -1
  39. package/dist/Checkbox/CheckboxGroupRoot.cjs +1 -1
  40. package/dist/Checkbox/CheckboxGroupRoot.cjs.map +1 -1
  41. package/dist/Checkbox/CheckboxGroupRoot.js +1 -1
  42. package/dist/Checkbox/CheckboxGroupRoot.js.map +1 -1
  43. package/dist/Checkbox/CheckboxIndicator.cjs.map +1 -1
  44. package/dist/Checkbox/CheckboxIndicator.js.map +1 -1
  45. package/dist/Checkbox/CheckboxRoot.cjs +1 -1
  46. package/dist/Checkbox/CheckboxRoot.cjs.map +1 -1
  47. package/dist/Checkbox/CheckboxRoot.js +1 -1
  48. package/dist/Checkbox/CheckboxRoot.js.map +1 -1
  49. package/dist/Collapsible/CollapsibleContent.cjs +1 -1
  50. package/dist/Collapsible/CollapsibleContent.cjs.map +1 -1
  51. package/dist/Collapsible/CollapsibleContent.js +1 -1
  52. package/dist/Collapsible/CollapsibleContent.js.map +1 -1
  53. package/dist/Collapsible/CollapsibleRoot.cjs.map +1 -1
  54. package/dist/Collapsible/CollapsibleRoot.js.map +1 -1
  55. package/dist/Collapsible/CollapsibleTrigger.cjs +1 -1
  56. package/dist/Collapsible/CollapsibleTrigger.js +1 -1
  57. package/dist/Collection/Collection.cjs.map +1 -1
  58. package/dist/Collection/Collection.js.map +1 -1
  59. package/dist/Combobox/ComboboxAnchor.cjs.map +1 -1
  60. package/dist/Combobox/ComboboxAnchor.js.map +1 -1
  61. package/dist/Combobox/ComboboxArrow.cjs.map +1 -1
  62. package/dist/Combobox/ComboboxArrow.js.map +1 -1
  63. package/dist/Combobox/ComboboxCancel.cjs +1 -0
  64. package/dist/Combobox/ComboboxCancel.cjs.map +1 -1
  65. package/dist/Combobox/ComboboxCancel.js +1 -0
  66. package/dist/Combobox/ComboboxCancel.js.map +1 -1
  67. package/dist/Combobox/ComboboxContent.cjs.map +1 -1
  68. package/dist/Combobox/ComboboxContent.js.map +1 -1
  69. package/dist/Combobox/ComboboxContentImpl.cjs +2 -2
  70. package/dist/Combobox/ComboboxContentImpl.cjs.map +1 -1
  71. package/dist/Combobox/ComboboxContentImpl.js +2 -2
  72. package/dist/Combobox/ComboboxContentImpl.js.map +1 -1
  73. package/dist/Combobox/ComboboxEmpty.cjs.map +1 -1
  74. package/dist/Combobox/ComboboxEmpty.js.map +1 -1
  75. package/dist/Combobox/ComboboxGroup.cjs +1 -1
  76. package/dist/Combobox/ComboboxGroup.js +1 -1
  77. package/dist/Combobox/ComboboxInput.cjs +9 -1
  78. package/dist/Combobox/ComboboxInput.cjs.map +1 -1
  79. package/dist/Combobox/ComboboxInput.js +9 -1
  80. package/dist/Combobox/ComboboxInput.js.map +1 -1
  81. package/dist/Combobox/ComboboxItem.cjs +4 -3
  82. package/dist/Combobox/ComboboxItem.cjs.map +1 -1
  83. package/dist/Combobox/ComboboxItem.js +4 -3
  84. package/dist/Combobox/ComboboxItem.js.map +1 -1
  85. package/dist/Combobox/ComboboxLabel.cjs +1 -1
  86. package/dist/Combobox/ComboboxLabel.js +1 -1
  87. package/dist/Combobox/ComboboxRoot.cjs.map +1 -1
  88. package/dist/Combobox/ComboboxRoot.js.map +1 -1
  89. package/dist/Combobox/ComboboxVirtualizer.cjs.map +1 -1
  90. package/dist/Combobox/ComboboxVirtualizer.js.map +1 -1
  91. package/dist/ContextMenu/ContextMenuContent.cjs.map +1 -1
  92. package/dist/ContextMenu/ContextMenuContent.js.map +1 -1
  93. package/dist/ContextMenu/ContextMenuPortal.cjs.map +1 -1
  94. package/dist/ContextMenu/ContextMenuPortal.js.map +1 -1
  95. package/dist/ContextMenu/ContextMenuRoot.cjs.map +1 -1
  96. package/dist/ContextMenu/ContextMenuRoot.js.map +1 -1
  97. package/dist/ContextMenu/ContextMenuSub.cjs +1 -1
  98. package/dist/ContextMenu/ContextMenuSub.cjs.map +1 -1
  99. package/dist/ContextMenu/ContextMenuSub.js +1 -1
  100. package/dist/ContextMenu/ContextMenuSub.js.map +1 -1
  101. package/dist/ContextMenu/ContextMenuTrigger.cjs +2 -2
  102. package/dist/ContextMenu/ContextMenuTrigger.cjs.map +1 -1
  103. package/dist/ContextMenu/ContextMenuTrigger.js +2 -2
  104. package/dist/ContextMenu/ContextMenuTrigger.js.map +1 -1
  105. package/dist/DateField/DateFieldInput.cjs.map +1 -1
  106. package/dist/DateField/DateFieldInput.js.map +1 -1
  107. package/dist/DateField/DateFieldRoot.cjs.map +1 -1
  108. package/dist/DateField/DateFieldRoot.js.map +1 -1
  109. package/dist/DatePicker/DatePickerArrow.cjs.map +1 -1
  110. package/dist/DatePicker/DatePickerArrow.js.map +1 -1
  111. package/dist/DatePicker/DatePickerCalendar.cjs.map +1 -1
  112. package/dist/DatePicker/DatePickerCalendar.js.map +1 -1
  113. package/dist/DatePicker/DatePickerCell.cjs.map +1 -1
  114. package/dist/DatePicker/DatePickerCell.js.map +1 -1
  115. package/dist/DatePicker/DatePickerCellTrigger.cjs.map +1 -1
  116. package/dist/DatePicker/DatePickerCellTrigger.js.map +1 -1
  117. package/dist/DatePicker/DatePickerClose.cjs.map +1 -1
  118. package/dist/DatePicker/DatePickerClose.js.map +1 -1
  119. package/dist/DatePicker/DatePickerContent.cjs.map +1 -1
  120. package/dist/DatePicker/DatePickerContent.js.map +1 -1
  121. package/dist/DatePicker/DatePickerGrid.cjs.map +1 -1
  122. package/dist/DatePicker/DatePickerGrid.js.map +1 -1
  123. package/dist/DatePicker/DatePickerGridBody.cjs.map +1 -1
  124. package/dist/DatePicker/DatePickerGridBody.js.map +1 -1
  125. package/dist/DatePicker/DatePickerGridHead.cjs.map +1 -1
  126. package/dist/DatePicker/DatePickerGridHead.js.map +1 -1
  127. package/dist/DatePicker/DatePickerGridRow.cjs.map +1 -1
  128. package/dist/DatePicker/DatePickerGridRow.js.map +1 -1
  129. package/dist/DatePicker/DatePickerHeadCell.cjs.map +1 -1
  130. package/dist/DatePicker/DatePickerHeadCell.js.map +1 -1
  131. package/dist/DatePicker/DatePickerHeader.cjs.map +1 -1
  132. package/dist/DatePicker/DatePickerHeader.js.map +1 -1
  133. package/dist/DatePicker/DatePickerHeading.cjs.map +1 -1
  134. package/dist/DatePicker/DatePickerHeading.js.map +1 -1
  135. package/dist/DatePicker/DatePickerInput.cjs.map +1 -1
  136. package/dist/DatePicker/DatePickerInput.js.map +1 -1
  137. package/dist/DatePicker/DatePickerNext.cjs.map +1 -1
  138. package/dist/DatePicker/DatePickerNext.js.map +1 -1
  139. package/dist/DatePicker/DatePickerPrev.cjs.map +1 -1
  140. package/dist/DatePicker/DatePickerPrev.js.map +1 -1
  141. package/dist/DatePicker/DatePickerRoot.cjs.map +1 -1
  142. package/dist/DatePicker/DatePickerRoot.js.map +1 -1
  143. package/dist/DatePicker/DatePickerTrigger.cjs.map +1 -1
  144. package/dist/DatePicker/DatePickerTrigger.js.map +1 -1
  145. package/dist/DateRangeField/DateRangeFieldInput.cjs.map +1 -1
  146. package/dist/DateRangeField/DateRangeFieldInput.js.map +1 -1
  147. package/dist/DateRangeField/DateRangeFieldRoot.cjs.map +1 -1
  148. package/dist/DateRangeField/DateRangeFieldRoot.js.map +1 -1
  149. package/dist/DateRangePicker/DateRangePickerAnchor.cjs.map +1 -1
  150. package/dist/DateRangePicker/DateRangePickerAnchor.js.map +1 -1
  151. package/dist/DateRangePicker/DateRangePickerArrow.cjs.map +1 -1
  152. package/dist/DateRangePicker/DateRangePickerArrow.js.map +1 -1
  153. package/dist/DateRangePicker/DateRangePickerCalendar.cjs +1 -0
  154. package/dist/DateRangePicker/DateRangePickerCalendar.cjs.map +1 -1
  155. package/dist/DateRangePicker/DateRangePickerCalendar.js +1 -0
  156. package/dist/DateRangePicker/DateRangePickerCalendar.js.map +1 -1
  157. package/dist/DateRangePicker/DateRangePickerCell.cjs.map +1 -1
  158. package/dist/DateRangePicker/DateRangePickerCell.js.map +1 -1
  159. package/dist/DateRangePicker/DateRangePickerClose.cjs.map +1 -1
  160. package/dist/DateRangePicker/DateRangePickerClose.js.map +1 -1
  161. package/dist/DateRangePicker/DateRangePickerContent.cjs.map +1 -1
  162. package/dist/DateRangePicker/DateRangePickerContent.js.map +1 -1
  163. package/dist/DateRangePicker/DateRangePickerGrid.cjs.map +1 -1
  164. package/dist/DateRangePicker/DateRangePickerGrid.js.map +1 -1
  165. package/dist/DateRangePicker/DateRangePickerGridBody.cjs.map +1 -1
  166. package/dist/DateRangePicker/DateRangePickerGridBody.js.map +1 -1
  167. package/dist/DateRangePicker/DateRangePickerGridHead.cjs.map +1 -1
  168. package/dist/DateRangePicker/DateRangePickerGridHead.js.map +1 -1
  169. package/dist/DateRangePicker/DateRangePickerGridRow.cjs.map +1 -1
  170. package/dist/DateRangePicker/DateRangePickerGridRow.js.map +1 -1
  171. package/dist/DateRangePicker/DateRangePickerHeadCell.cjs.map +1 -1
  172. package/dist/DateRangePicker/DateRangePickerHeadCell.js.map +1 -1
  173. package/dist/DateRangePicker/DateRangePickerHeader.cjs.map +1 -1
  174. package/dist/DateRangePicker/DateRangePickerHeader.js.map +1 -1
  175. package/dist/DateRangePicker/DateRangePickerHeading.cjs.map +1 -1
  176. package/dist/DateRangePicker/DateRangePickerHeading.js.map +1 -1
  177. package/dist/DateRangePicker/DateRangePickerInput.cjs.map +1 -1
  178. package/dist/DateRangePicker/DateRangePickerInput.js.map +1 -1
  179. package/dist/DateRangePicker/DateRangePickerNext.cjs.map +1 -1
  180. package/dist/DateRangePicker/DateRangePickerNext.js.map +1 -1
  181. package/dist/DateRangePicker/DateRangePickerPrev.cjs.map +1 -1
  182. package/dist/DateRangePicker/DateRangePickerPrev.js.map +1 -1
  183. package/dist/DateRangePicker/DateRangePickerRoot.cjs +3 -0
  184. package/dist/DateRangePicker/DateRangePickerRoot.cjs.map +1 -1
  185. package/dist/DateRangePicker/DateRangePickerRoot.js +3 -0
  186. package/dist/DateRangePicker/DateRangePickerRoot.js.map +1 -1
  187. package/dist/DateRangePicker/DateRangePickerTrigger.cjs.map +1 -1
  188. package/dist/DateRangePicker/DateRangePickerTrigger.js.map +1 -1
  189. package/dist/Dialog/DialogClose.cjs +1 -1
  190. package/dist/Dialog/DialogClose.cjs.map +1 -1
  191. package/dist/Dialog/DialogClose.js +1 -1
  192. package/dist/Dialog/DialogClose.js.map +1 -1
  193. package/dist/Dialog/DialogContent.cjs.map +1 -1
  194. package/dist/Dialog/DialogContent.js.map +1 -1
  195. package/dist/Dialog/DialogContentImpl.cjs.map +1 -1
  196. package/dist/Dialog/DialogContentImpl.js.map +1 -1
  197. package/dist/Dialog/DialogContentModal.cjs.map +1 -1
  198. package/dist/Dialog/DialogContentModal.js.map +1 -1
  199. package/dist/Dialog/DialogContentNonModal.cjs.map +1 -1
  200. package/dist/Dialog/DialogContentNonModal.js.map +1 -1
  201. package/dist/Dialog/DialogDescription.cjs.map +1 -1
  202. package/dist/Dialog/DialogDescription.js.map +1 -1
  203. package/dist/Dialog/DialogOverlay.cjs.map +1 -1
  204. package/dist/Dialog/DialogOverlay.js.map +1 -1
  205. package/dist/Dialog/DialogOverlayImpl.cjs.map +1 -1
  206. package/dist/Dialog/DialogOverlayImpl.js.map +1 -1
  207. package/dist/Dialog/DialogRoot.cjs.map +1 -1
  208. package/dist/Dialog/DialogRoot.js.map +1 -1
  209. package/dist/Dialog/DialogTitle.cjs.map +1 -1
  210. package/dist/Dialog/DialogTitle.js.map +1 -1
  211. package/dist/Dialog/DialogTrigger.cjs +1 -1
  212. package/dist/Dialog/DialogTrigger.cjs.map +1 -1
  213. package/dist/Dialog/DialogTrigger.js +1 -1
  214. package/dist/Dialog/DialogTrigger.js.map +1 -1
  215. package/dist/Dialog/utils.cjs.map +1 -1
  216. package/dist/Dialog/utils.js.map +1 -1
  217. package/dist/DismissableLayer/DismissableLayer.cjs.map +1 -1
  218. package/dist/DismissableLayer/DismissableLayer.js.map +1 -1
  219. package/dist/DismissableLayer/utils.cjs +4 -3
  220. package/dist/DismissableLayer/utils.cjs.map +1 -1
  221. package/dist/DismissableLayer/utils.js +4 -3
  222. package/dist/DismissableLayer/utils.js.map +1 -1
  223. package/dist/DropdownMenu/DropdownMenuContent.cjs +1 -1
  224. package/dist/DropdownMenu/DropdownMenuContent.cjs.map +1 -1
  225. package/dist/DropdownMenu/DropdownMenuContent.js +1 -1
  226. package/dist/DropdownMenu/DropdownMenuContent.js.map +1 -1
  227. package/dist/DropdownMenu/DropdownMenuRoot.cjs +1 -1
  228. package/dist/DropdownMenu/DropdownMenuRoot.cjs.map +1 -1
  229. package/dist/DropdownMenu/DropdownMenuRoot.js +1 -1
  230. package/dist/DropdownMenu/DropdownMenuRoot.js.map +1 -1
  231. package/dist/DropdownMenu/DropdownMenuSub.cjs +1 -1
  232. package/dist/DropdownMenu/DropdownMenuSub.cjs.map +1 -1
  233. package/dist/DropdownMenu/DropdownMenuSub.js +1 -1
  234. package/dist/DropdownMenu/DropdownMenuSub.js.map +1 -1
  235. package/dist/DropdownMenu/DropdownMenuTrigger.cjs +1 -1
  236. package/dist/DropdownMenu/DropdownMenuTrigger.cjs.map +1 -1
  237. package/dist/DropdownMenu/DropdownMenuTrigger.js +1 -1
  238. package/dist/DropdownMenu/DropdownMenuTrigger.js.map +1 -1
  239. package/dist/Editable/EditableInput.cjs.map +1 -1
  240. package/dist/Editable/EditableInput.js.map +1 -1
  241. package/dist/Editable/EditablePreview.cjs.map +1 -1
  242. package/dist/Editable/EditablePreview.js.map +1 -1
  243. package/dist/Editable/EditableRoot.cjs.map +1 -1
  244. package/dist/Editable/EditableRoot.js.map +1 -1
  245. package/dist/FocusScope/FocusScope.cjs +1 -1
  246. package/dist/FocusScope/FocusScope.cjs.map +1 -1
  247. package/dist/FocusScope/FocusScope.js +1 -1
  248. package/dist/FocusScope/FocusScope.js.map +1 -1
  249. package/dist/HoverCard/HoverCardContent.cjs +1 -1
  250. package/dist/HoverCard/HoverCardContent.cjs.map +1 -1
  251. package/dist/HoverCard/HoverCardContent.js +1 -1
  252. package/dist/HoverCard/HoverCardContent.js.map +1 -1
  253. package/dist/HoverCard/HoverCardContentImpl.cjs +3 -3
  254. package/dist/HoverCard/HoverCardContentImpl.cjs.map +1 -1
  255. package/dist/HoverCard/HoverCardContentImpl.js +3 -3
  256. package/dist/HoverCard/HoverCardContentImpl.js.map +1 -1
  257. package/dist/HoverCard/HoverCardRoot.cjs +1 -1
  258. package/dist/HoverCard/HoverCardRoot.cjs.map +1 -1
  259. package/dist/HoverCard/HoverCardRoot.js +1 -1
  260. package/dist/HoverCard/HoverCardRoot.js.map +1 -1
  261. package/dist/HoverCard/HoverCardTrigger.cjs +1 -1
  262. package/dist/HoverCard/HoverCardTrigger.cjs.map +1 -1
  263. package/dist/HoverCard/HoverCardTrigger.js +1 -1
  264. package/dist/HoverCard/HoverCardTrigger.js.map +1 -1
  265. package/dist/Listbox/ListboxContent.cjs +1 -1
  266. package/dist/Listbox/ListboxContent.cjs.map +1 -1
  267. package/dist/Listbox/ListboxContent.js +1 -1
  268. package/dist/Listbox/ListboxContent.js.map +1 -1
  269. package/dist/Listbox/ListboxFilter.cjs.map +1 -1
  270. package/dist/Listbox/ListboxFilter.js.map +1 -1
  271. package/dist/Listbox/ListboxItem.cjs +2 -2
  272. package/dist/Listbox/ListboxItem.cjs.map +1 -1
  273. package/dist/Listbox/ListboxItem.js +2 -2
  274. package/dist/Listbox/ListboxItem.js.map +1 -1
  275. package/dist/Listbox/ListboxItemIndicator.cjs.map +1 -1
  276. package/dist/Listbox/ListboxItemIndicator.js.map +1 -1
  277. package/dist/Listbox/ListboxRoot.cjs +3 -3
  278. package/dist/Listbox/ListboxRoot.cjs.map +1 -1
  279. package/dist/Listbox/ListboxRoot.js +3 -3
  280. package/dist/Listbox/ListboxRoot.js.map +1 -1
  281. package/dist/Listbox/ListboxVirtualizer.cjs +4 -4
  282. package/dist/Listbox/ListboxVirtualizer.cjs.map +1 -1
  283. package/dist/Listbox/ListboxVirtualizer.js +4 -4
  284. package/dist/Listbox/ListboxVirtualizer.js.map +1 -1
  285. package/dist/Menu/MenuAnchor.cjs.map +1 -1
  286. package/dist/Menu/MenuAnchor.js.map +1 -1
  287. package/dist/Menu/MenuCheckboxItem.cjs +1 -1
  288. package/dist/Menu/MenuCheckboxItem.cjs.map +1 -1
  289. package/dist/Menu/MenuCheckboxItem.js +1 -1
  290. package/dist/Menu/MenuCheckboxItem.js.map +1 -1
  291. package/dist/Menu/MenuContent.cjs.map +1 -1
  292. package/dist/Menu/MenuContent.js.map +1 -1
  293. package/dist/Menu/MenuContentImpl.cjs +2 -2
  294. package/dist/Menu/MenuContentImpl.cjs.map +1 -1
  295. package/dist/Menu/MenuContentImpl.js +2 -2
  296. package/dist/Menu/MenuContentImpl.js.map +1 -1
  297. package/dist/Menu/MenuItem.cjs.map +1 -1
  298. package/dist/Menu/MenuItem.js.map +1 -1
  299. package/dist/Menu/MenuItemImpl.cjs +1 -1
  300. package/dist/Menu/MenuItemImpl.cjs.map +1 -1
  301. package/dist/Menu/MenuItemImpl.js +1 -1
  302. package/dist/Menu/MenuItemImpl.js.map +1 -1
  303. package/dist/Menu/MenuItemIndicator.cjs.map +1 -1
  304. package/dist/Menu/MenuItemIndicator.js.map +1 -1
  305. package/dist/Menu/MenuRadioItem.cjs +1 -1
  306. package/dist/Menu/MenuRadioItem.cjs.map +1 -1
  307. package/dist/Menu/MenuRadioItem.js +1 -1
  308. package/dist/Menu/MenuRadioItem.js.map +1 -1
  309. package/dist/Menu/MenuRoot.cjs +2 -2
  310. package/dist/Menu/MenuRoot.cjs.map +1 -1
  311. package/dist/Menu/MenuRoot.js +2 -2
  312. package/dist/Menu/MenuRoot.js.map +1 -1
  313. package/dist/Menu/MenuRootContentModal.cjs.map +1 -1
  314. package/dist/Menu/MenuRootContentModal.js.map +1 -1
  315. package/dist/Menu/MenuRootContentNonModal.cjs.map +1 -1
  316. package/dist/Menu/MenuRootContentNonModal.js.map +1 -1
  317. package/dist/Menu/MenuSub.cjs +1 -1
  318. package/dist/Menu/MenuSub.cjs.map +1 -1
  319. package/dist/Menu/MenuSub.js +1 -1
  320. package/dist/Menu/MenuSub.js.map +1 -1
  321. package/dist/Menu/MenuSubContent.cjs.map +1 -1
  322. package/dist/Menu/MenuSubContent.js.map +1 -1
  323. package/dist/Menu/MenuSubTrigger.cjs +1 -1
  324. package/dist/Menu/MenuSubTrigger.cjs.map +1 -1
  325. package/dist/Menu/MenuSubTrigger.js +1 -1
  326. package/dist/Menu/MenuSubTrigger.js.map +1 -1
  327. package/dist/Menubar/MenubarContent.cjs +1 -1
  328. package/dist/Menubar/MenubarContent.cjs.map +1 -1
  329. package/dist/Menubar/MenubarContent.js +1 -1
  330. package/dist/Menubar/MenubarContent.js.map +1 -1
  331. package/dist/Menubar/MenubarGroup.cjs.map +1 -1
  332. package/dist/Menubar/MenubarGroup.js.map +1 -1
  333. package/dist/Menubar/MenubarMenu.cjs.map +1 -1
  334. package/dist/Menubar/MenubarMenu.js.map +1 -1
  335. package/dist/Menubar/MenubarRoot.cjs.map +1 -1
  336. package/dist/Menubar/MenubarRoot.js.map +1 -1
  337. package/dist/Menubar/MenubarSub.cjs +1 -1
  338. package/dist/Menubar/MenubarSub.cjs.map +1 -1
  339. package/dist/Menubar/MenubarSub.js +1 -1
  340. package/dist/Menubar/MenubarSub.js.map +1 -1
  341. package/dist/Menubar/MenubarSubContent.cjs.map +1 -1
  342. package/dist/Menubar/MenubarSubContent.js.map +1 -1
  343. package/dist/Menubar/MenubarTrigger.cjs +1 -1
  344. package/dist/Menubar/MenubarTrigger.cjs.map +1 -1
  345. package/dist/Menubar/MenubarTrigger.js +1 -1
  346. package/dist/Menubar/MenubarTrigger.js.map +1 -1
  347. package/dist/NavigationMenu/NavigationMenuContent.cjs +1 -1
  348. package/dist/NavigationMenu/NavigationMenuContent.cjs.map +1 -1
  349. package/dist/NavigationMenu/NavigationMenuContent.js +1 -1
  350. package/dist/NavigationMenu/NavigationMenuContent.js.map +1 -1
  351. package/dist/NavigationMenu/NavigationMenuContentImpl.cjs +1 -1
  352. package/dist/NavigationMenu/NavigationMenuContentImpl.cjs.map +1 -1
  353. package/dist/NavigationMenu/NavigationMenuContentImpl.js +1 -1
  354. package/dist/NavigationMenu/NavigationMenuContentImpl.js.map +1 -1
  355. package/dist/NavigationMenu/NavigationMenuIndicator.cjs.map +1 -1
  356. package/dist/NavigationMenu/NavigationMenuIndicator.js.map +1 -1
  357. package/dist/NavigationMenu/NavigationMenuItem.cjs.map +1 -1
  358. package/dist/NavigationMenu/NavigationMenuItem.js.map +1 -1
  359. package/dist/NavigationMenu/NavigationMenuLink.cjs.map +1 -1
  360. package/dist/NavigationMenu/NavigationMenuLink.js.map +1 -1
  361. package/dist/NavigationMenu/NavigationMenuList.cjs.map +1 -1
  362. package/dist/NavigationMenu/NavigationMenuList.js.map +1 -1
  363. package/dist/NavigationMenu/NavigationMenuRoot.cjs.map +1 -1
  364. package/dist/NavigationMenu/NavigationMenuRoot.js.map +1 -1
  365. package/dist/NavigationMenu/NavigationMenuSub.cjs.map +1 -1
  366. package/dist/NavigationMenu/NavigationMenuSub.js.map +1 -1
  367. package/dist/NavigationMenu/NavigationMenuTrigger.cjs.map +1 -1
  368. package/dist/NavigationMenu/NavigationMenuTrigger.js.map +1 -1
  369. package/dist/NavigationMenu/NavigationMenuViewport.cjs.map +1 -1
  370. package/dist/NavigationMenu/NavigationMenuViewport.js.map +1 -1
  371. package/dist/NumberField/NumberFieldDecrement.cjs +1 -1
  372. package/dist/NumberField/NumberFieldDecrement.cjs.map +1 -1
  373. package/dist/NumberField/NumberFieldDecrement.js +1 -1
  374. package/dist/NumberField/NumberFieldDecrement.js.map +1 -1
  375. package/dist/NumberField/NumberFieldIncrement.cjs.map +1 -1
  376. package/dist/NumberField/NumberFieldIncrement.js.map +1 -1
  377. package/dist/NumberField/NumberFieldInput.cjs +1 -1
  378. package/dist/NumberField/NumberFieldInput.cjs.map +1 -1
  379. package/dist/NumberField/NumberFieldInput.js +1 -1
  380. package/dist/NumberField/NumberFieldInput.js.map +1 -1
  381. package/dist/NumberField/NumberFieldRoot.cjs.map +1 -1
  382. package/dist/NumberField/NumberFieldRoot.js.map +1 -1
  383. package/dist/NumberField/utils.cjs.map +1 -1
  384. package/dist/NumberField/utils.js +1 -1
  385. package/dist/NumberField/utils.js.map +1 -1
  386. package/dist/Pagination/PaginationFirst.cjs.map +1 -1
  387. package/dist/Pagination/PaginationFirst.js.map +1 -1
  388. package/dist/Pagination/PaginationLast.cjs.map +1 -1
  389. package/dist/Pagination/PaginationLast.js.map +1 -1
  390. package/dist/Pagination/PaginationListItem.cjs.map +1 -1
  391. package/dist/Pagination/PaginationListItem.js.map +1 -1
  392. package/dist/Pagination/PaginationNext.cjs.map +1 -1
  393. package/dist/Pagination/PaginationNext.js.map +1 -1
  394. package/dist/Pagination/PaginationPrev.cjs.map +1 -1
  395. package/dist/Pagination/PaginationPrev.js.map +1 -1
  396. package/dist/Pagination/PaginationRoot.cjs.map +1 -1
  397. package/dist/Pagination/PaginationRoot.js.map +1 -1
  398. package/dist/Pagination/utils.cjs.map +1 -1
  399. package/dist/Pagination/utils.js.map +1 -1
  400. package/dist/PinInput/PinInputInput.cjs.map +1 -1
  401. package/dist/PinInput/PinInputInput.js.map +1 -1
  402. package/dist/PinInput/PinInputRoot.cjs.map +1 -1
  403. package/dist/PinInput/PinInputRoot.js.map +1 -1
  404. package/dist/Popover/PopoverAnchor.cjs.map +1 -1
  405. package/dist/Popover/PopoverAnchor.js.map +1 -1
  406. package/dist/Popover/PopoverClose.cjs.map +1 -1
  407. package/dist/Popover/PopoverClose.js.map +1 -1
  408. package/dist/Popover/PopoverContent.cjs.map +1 -1
  409. package/dist/Popover/PopoverContent.js.map +1 -1
  410. package/dist/Popover/PopoverContentImpl.cjs +1 -1
  411. package/dist/Popover/PopoverContentImpl.cjs.map +1 -1
  412. package/dist/Popover/PopoverContentImpl.js +1 -1
  413. package/dist/Popover/PopoverContentImpl.js.map +1 -1
  414. package/dist/Popover/PopoverContentModal.cjs +1 -1
  415. package/dist/Popover/PopoverContentModal.cjs.map +1 -1
  416. package/dist/Popover/PopoverContentModal.js +1 -1
  417. package/dist/Popover/PopoverContentModal.js.map +1 -1
  418. package/dist/Popover/PopoverContentNonModal.cjs.map +1 -1
  419. package/dist/Popover/PopoverContentNonModal.js.map +1 -1
  420. package/dist/Popover/PopoverRoot.cjs +1 -1
  421. package/dist/Popover/PopoverRoot.cjs.map +1 -1
  422. package/dist/Popover/PopoverRoot.js +1 -1
  423. package/dist/Popover/PopoverRoot.js.map +1 -1
  424. package/dist/Popover/PopoverTrigger.cjs +1 -1
  425. package/dist/Popover/PopoverTrigger.cjs.map +1 -1
  426. package/dist/Popover/PopoverTrigger.js +1 -1
  427. package/dist/Popover/PopoverTrigger.js.map +1 -1
  428. package/dist/Popper/PopperAnchor.cjs.map +1 -1
  429. package/dist/Popper/PopperAnchor.js.map +1 -1
  430. package/dist/Popper/PopperArrow.cjs.map +1 -1
  431. package/dist/Popper/PopperArrow.js.map +1 -1
  432. package/dist/Popper/PopperContent.cjs +2 -2
  433. package/dist/Popper/PopperContent.cjs.map +1 -1
  434. package/dist/Popper/PopperContent.js +2 -2
  435. package/dist/Popper/PopperContent.js.map +1 -1
  436. package/dist/Popper/PopperRoot.cjs.map +1 -1
  437. package/dist/Popper/PopperRoot.js.map +1 -1
  438. package/dist/Presence/Presence.cjs +1 -1
  439. package/dist/Presence/Presence.cjs.map +1 -1
  440. package/dist/Presence/Presence.js +1 -1
  441. package/dist/Presence/Presence.js.map +1 -1
  442. package/dist/Presence/usePresence.cjs +2 -2
  443. package/dist/Presence/usePresence.cjs.map +1 -1
  444. package/dist/Presence/usePresence.js +2 -2
  445. package/dist/Presence/usePresence.js.map +1 -1
  446. package/dist/Primitive/Primitive.cjs.map +1 -1
  447. package/dist/Primitive/Primitive.js.map +1 -1
  448. package/dist/Primitive/Slot.cjs.map +1 -1
  449. package/dist/Primitive/Slot.js.map +1 -1
  450. package/dist/Primitive/usePrimitiveElement.cjs.map +1 -1
  451. package/dist/Primitive/usePrimitiveElement.js.map +1 -1
  452. package/dist/Progress/ProgressIndicator.cjs.map +1 -1
  453. package/dist/Progress/ProgressIndicator.js.map +1 -1
  454. package/dist/Progress/ProgressRoot.cjs.map +1 -1
  455. package/dist/Progress/ProgressRoot.js.map +1 -1
  456. package/dist/RadioGroup/Radio.cjs.map +1 -1
  457. package/dist/RadioGroup/Radio.js.map +1 -1
  458. package/dist/RadioGroup/RadioGroupIndicator.cjs.map +1 -1
  459. package/dist/RadioGroup/RadioGroupIndicator.js.map +1 -1
  460. package/dist/RadioGroup/RadioGroupItem.cjs +1 -1
  461. package/dist/RadioGroup/RadioGroupItem.cjs.map +1 -1
  462. package/dist/RadioGroup/RadioGroupItem.js +1 -1
  463. package/dist/RadioGroup/RadioGroupItem.js.map +1 -1
  464. package/dist/RadioGroup/RadioGroupRoot.cjs.map +1 -1
  465. package/dist/RadioGroup/RadioGroupRoot.js.map +1 -1
  466. package/dist/RadioGroup/utils.cjs.map +1 -1
  467. package/dist/RadioGroup/utils.js.map +1 -1
  468. package/dist/RangeCalendar/RangeCalendarCell.cjs +1 -1
  469. package/dist/RangeCalendar/RangeCalendarCell.js +1 -1
  470. package/dist/RangeCalendar/RangeCalendarCellTrigger.cjs +2 -2
  471. package/dist/RangeCalendar/RangeCalendarCellTrigger.cjs.map +1 -1
  472. package/dist/RangeCalendar/RangeCalendarCellTrigger.js +2 -2
  473. package/dist/RangeCalendar/RangeCalendarCellTrigger.js.map +1 -1
  474. package/dist/RangeCalendar/RangeCalendarGrid.cjs.map +1 -1
  475. package/dist/RangeCalendar/RangeCalendarGrid.js.map +1 -1
  476. package/dist/RangeCalendar/RangeCalendarHeading.cjs +1 -1
  477. package/dist/RangeCalendar/RangeCalendarHeading.js +1 -1
  478. package/dist/RangeCalendar/RangeCalendarNext.cjs.map +1 -1
  479. package/dist/RangeCalendar/RangeCalendarNext.js.map +1 -1
  480. package/dist/RangeCalendar/RangeCalendarPrev.cjs.map +1 -1
  481. package/dist/RangeCalendar/RangeCalendarPrev.js.map +1 -1
  482. package/dist/RangeCalendar/RangeCalendarRoot.cjs +8 -3
  483. package/dist/RangeCalendar/RangeCalendarRoot.cjs.map +1 -1
  484. package/dist/RangeCalendar/RangeCalendarRoot.js +8 -3
  485. package/dist/RangeCalendar/RangeCalendarRoot.js.map +1 -1
  486. package/dist/RangeCalendar/useRangeCalendar.cjs +8 -2
  487. package/dist/RangeCalendar/useRangeCalendar.cjs.map +1 -1
  488. package/dist/RangeCalendar/useRangeCalendar.js +8 -2
  489. package/dist/RangeCalendar/useRangeCalendar.js.map +1 -1
  490. package/dist/RovingFocus/RovingFocusGroup.cjs +1 -1
  491. package/dist/RovingFocus/RovingFocusGroup.cjs.map +1 -1
  492. package/dist/RovingFocus/RovingFocusGroup.js +1 -1
  493. package/dist/RovingFocus/RovingFocusGroup.js.map +1 -1
  494. package/dist/RovingFocus/RovingFocusItem.cjs +1 -1
  495. package/dist/RovingFocus/RovingFocusItem.cjs.map +1 -1
  496. package/dist/RovingFocus/RovingFocusItem.js +1 -1
  497. package/dist/RovingFocus/RovingFocusItem.js.map +1 -1
  498. package/dist/ScrollArea/ScrollAreaCorner.cjs.map +1 -1
  499. package/dist/ScrollArea/ScrollAreaCorner.js.map +1 -1
  500. package/dist/ScrollArea/ScrollAreaCornerImpl.cjs +1 -1
  501. package/dist/ScrollArea/ScrollAreaCornerImpl.cjs.map +1 -1
  502. package/dist/ScrollArea/ScrollAreaCornerImpl.js +1 -1
  503. package/dist/ScrollArea/ScrollAreaCornerImpl.js.map +1 -1
  504. package/dist/ScrollArea/ScrollAreaRoot.cjs.map +1 -1
  505. package/dist/ScrollArea/ScrollAreaRoot.js.map +1 -1
  506. package/dist/ScrollArea/ScrollAreaScrollbar.cjs +1 -1
  507. package/dist/ScrollArea/ScrollAreaScrollbar.cjs.map +1 -1
  508. package/dist/ScrollArea/ScrollAreaScrollbar.js +1 -1
  509. package/dist/ScrollArea/ScrollAreaScrollbar.js.map +1 -1
  510. package/dist/ScrollArea/ScrollAreaScrollbarAuto.cjs.map +1 -1
  511. package/dist/ScrollArea/ScrollAreaScrollbarAuto.js.map +1 -1
  512. package/dist/ScrollArea/ScrollAreaScrollbarHover.cjs.map +1 -1
  513. package/dist/ScrollArea/ScrollAreaScrollbarHover.js.map +1 -1
  514. package/dist/ScrollArea/ScrollAreaScrollbarImpl.cjs.map +1 -1
  515. package/dist/ScrollArea/ScrollAreaScrollbarImpl.js.map +1 -1
  516. package/dist/ScrollArea/ScrollAreaScrollbarScroll.cjs.map +1 -1
  517. package/dist/ScrollArea/ScrollAreaScrollbarScroll.js.map +1 -1
  518. package/dist/ScrollArea/ScrollAreaScrollbarVisible.cjs.map +1 -1
  519. package/dist/ScrollArea/ScrollAreaScrollbarVisible.js.map +1 -1
  520. package/dist/ScrollArea/ScrollAreaScrollbarX.cjs.map +1 -1
  521. package/dist/ScrollArea/ScrollAreaScrollbarX.js.map +1 -1
  522. package/dist/ScrollArea/ScrollAreaScrollbarY.cjs.map +1 -1
  523. package/dist/ScrollArea/ScrollAreaScrollbarY.js.map +1 -1
  524. package/dist/ScrollArea/ScrollAreaThumb.cjs.map +1 -1
  525. package/dist/ScrollArea/ScrollAreaThumb.js.map +1 -1
  526. package/dist/ScrollArea/ScrollAreaViewport.cjs +1 -1
  527. package/dist/ScrollArea/ScrollAreaViewport.cjs.map +1 -1
  528. package/dist/ScrollArea/ScrollAreaViewport.js +1 -1
  529. package/dist/ScrollArea/ScrollAreaViewport.js.map +1 -1
  530. package/dist/ScrollArea/utils.cjs.map +1 -1
  531. package/dist/ScrollArea/utils.js.map +1 -1
  532. package/dist/Select/BubbleSelect.cjs.map +1 -1
  533. package/dist/Select/BubbleSelect.js.map +1 -1
  534. package/dist/Select/SelectArrow.cjs +1 -1
  535. package/dist/Select/SelectArrow.cjs.map +1 -1
  536. package/dist/Select/SelectArrow.js +1 -1
  537. package/dist/Select/SelectArrow.js.map +1 -1
  538. package/dist/Select/SelectContent.cjs.map +1 -1
  539. package/dist/Select/SelectContent.js.map +1 -1
  540. package/dist/Select/SelectContentImpl.cjs +4 -4
  541. package/dist/Select/SelectContentImpl.cjs.map +1 -1
  542. package/dist/Select/SelectContentImpl.js +4 -4
  543. package/dist/Select/SelectContentImpl.js.map +1 -1
  544. package/dist/Select/SelectItem.cjs +1 -1
  545. package/dist/Select/SelectItem.cjs.map +1 -1
  546. package/dist/Select/SelectItem.js +1 -1
  547. package/dist/Select/SelectItem.js.map +1 -1
  548. package/dist/Select/SelectItemAlignedPosition.cjs +1 -1
  549. package/dist/Select/SelectItemAlignedPosition.cjs.map +1 -1
  550. package/dist/Select/SelectItemAlignedPosition.js +1 -1
  551. package/dist/Select/SelectItemAlignedPosition.js.map +1 -1
  552. package/dist/Select/SelectItemIndicator.cjs.map +1 -1
  553. package/dist/Select/SelectItemIndicator.js.map +1 -1
  554. package/dist/Select/SelectItemText.cjs.map +1 -1
  555. package/dist/Select/SelectItemText.js.map +1 -1
  556. package/dist/Select/SelectPopperPosition.cjs +1 -1
  557. package/dist/Select/SelectPopperPosition.cjs.map +1 -1
  558. package/dist/Select/SelectPopperPosition.js +1 -1
  559. package/dist/Select/SelectPopperPosition.js.map +1 -1
  560. package/dist/Select/SelectProvider.cjs.map +1 -1
  561. package/dist/Select/SelectProvider.js.map +1 -1
  562. package/dist/Select/SelectRoot.cjs +2 -2
  563. package/dist/Select/SelectRoot.cjs.map +1 -1
  564. package/dist/Select/SelectRoot.js +2 -2
  565. package/dist/Select/SelectRoot.js.map +1 -1
  566. package/dist/Select/SelectScrollButtonImpl.cjs.map +1 -1
  567. package/dist/Select/SelectScrollButtonImpl.js.map +1 -1
  568. package/dist/Select/SelectScrollDownButton.cjs +1 -1
  569. package/dist/Select/SelectScrollDownButton.cjs.map +1 -1
  570. package/dist/Select/SelectScrollDownButton.js +1 -1
  571. package/dist/Select/SelectScrollDownButton.js.map +1 -1
  572. package/dist/Select/SelectTrigger.cjs +3 -3
  573. package/dist/Select/SelectTrigger.cjs.map +1 -1
  574. package/dist/Select/SelectTrigger.js +3 -3
  575. package/dist/Select/SelectTrigger.js.map +1 -1
  576. package/dist/Select/SelectValue.cjs +2 -1
  577. package/dist/Select/SelectValue.cjs.map +1 -1
  578. package/dist/Select/SelectValue.js +2 -1
  579. package/dist/Select/SelectValue.js.map +1 -1
  580. package/dist/Select/SelectViewport.cjs +1 -1
  581. package/dist/Select/SelectViewport.cjs.map +1 -1
  582. package/dist/Select/SelectViewport.js +1 -1
  583. package/dist/Select/SelectViewport.js.map +1 -1
  584. package/dist/Select/utils.cjs +4 -0
  585. package/dist/Select/utils.cjs.map +1 -1
  586. package/dist/Select/utils.js +4 -1
  587. package/dist/Select/utils.js.map +1 -1
  588. package/dist/Slider/SliderHorizontal.cjs.map +1 -1
  589. package/dist/Slider/SliderHorizontal.js.map +1 -1
  590. package/dist/Slider/SliderRange.cjs.map +1 -1
  591. package/dist/Slider/SliderRange.js.map +1 -1
  592. package/dist/Slider/SliderRoot.cjs +1 -1
  593. package/dist/Slider/SliderRoot.cjs.map +1 -1
  594. package/dist/Slider/SliderRoot.js +1 -1
  595. package/dist/Slider/SliderRoot.js.map +1 -1
  596. package/dist/Slider/SliderThumb.cjs +1 -1
  597. package/dist/Slider/SliderThumb.cjs.map +1 -1
  598. package/dist/Slider/SliderThumb.js +1 -1
  599. package/dist/Slider/SliderThumb.js.map +1 -1
  600. package/dist/Slider/SliderThumbImpl.cjs +1 -1
  601. package/dist/Slider/SliderThumbImpl.cjs.map +1 -1
  602. package/dist/Slider/SliderThumbImpl.js +1 -1
  603. package/dist/Slider/SliderThumbImpl.js.map +1 -1
  604. package/dist/Slider/SliderVertical.cjs.map +1 -1
  605. package/dist/Slider/SliderVertical.js.map +1 -1
  606. package/dist/Splitter/SplitterGroup.cjs +5 -5
  607. package/dist/Splitter/SplitterGroup.cjs.map +1 -1
  608. package/dist/Splitter/SplitterGroup.js +5 -5
  609. package/dist/Splitter/SplitterGroup.js.map +1 -1
  610. package/dist/Splitter/SplitterPanel.cjs.map +1 -1
  611. package/dist/Splitter/SplitterPanel.js.map +1 -1
  612. package/dist/Splitter/SplitterResizeHandle.cjs +1 -1
  613. package/dist/Splitter/SplitterResizeHandle.cjs.map +1 -1
  614. package/dist/Splitter/SplitterResizeHandle.js +1 -1
  615. package/dist/Splitter/SplitterResizeHandle.js.map +1 -1
  616. package/dist/Stepper/StepperDescription.cjs +1 -1
  617. package/dist/Stepper/StepperDescription.cjs.map +1 -1
  618. package/dist/Stepper/StepperDescription.js +1 -1
  619. package/dist/Stepper/StepperDescription.js.map +1 -1
  620. package/dist/Stepper/StepperIndicator.cjs.map +1 -1
  621. package/dist/Stepper/StepperIndicator.js.map +1 -1
  622. package/dist/Stepper/StepperItem.cjs.map +1 -1
  623. package/dist/Stepper/StepperItem.js.map +1 -1
  624. package/dist/Stepper/StepperRoot.cjs.map +1 -1
  625. package/dist/Stepper/StepperRoot.js.map +1 -1
  626. package/dist/Stepper/StepperSeparator.cjs.map +1 -1
  627. package/dist/Stepper/StepperSeparator.js.map +1 -1
  628. package/dist/Stepper/StepperTitle.cjs.map +1 -1
  629. package/dist/Stepper/StepperTitle.js.map +1 -1
  630. package/dist/Stepper/StepperTrigger.cjs +1 -1
  631. package/dist/Stepper/StepperTrigger.cjs.map +1 -1
  632. package/dist/Stepper/StepperTrigger.js +1 -1
  633. package/dist/Stepper/StepperTrigger.js.map +1 -1
  634. package/dist/Switch/SwitchRoot.cjs.map +1 -1
  635. package/dist/Switch/SwitchRoot.js.map +1 -1
  636. package/dist/Switch/SwitchThumb.cjs.map +1 -1
  637. package/dist/Switch/SwitchThumb.js.map +1 -1
  638. package/dist/Tabs/TabsContent.cjs +1 -1
  639. package/dist/Tabs/TabsContent.cjs.map +1 -1
  640. package/dist/Tabs/TabsContent.js +1 -1
  641. package/dist/Tabs/TabsContent.js.map +1 -1
  642. package/dist/Tabs/TabsIndicator.cjs.map +1 -1
  643. package/dist/Tabs/TabsIndicator.js.map +1 -1
  644. package/dist/Tabs/TabsList.cjs +1 -1
  645. package/dist/Tabs/TabsList.cjs.map +1 -1
  646. package/dist/Tabs/TabsList.js +1 -1
  647. package/dist/Tabs/TabsList.js.map +1 -1
  648. package/dist/Tabs/TabsRoot.cjs.map +1 -1
  649. package/dist/Tabs/TabsRoot.js.map +1 -1
  650. package/dist/Tabs/TabsTrigger.cjs.map +1 -1
  651. package/dist/Tabs/TabsTrigger.js.map +1 -1
  652. package/dist/TagsInput/TagsInputClear.cjs +1 -1
  653. package/dist/TagsInput/TagsInputClear.cjs.map +1 -1
  654. package/dist/TagsInput/TagsInputClear.js +1 -1
  655. package/dist/TagsInput/TagsInputClear.js.map +1 -1
  656. package/dist/TagsInput/TagsInputInput.cjs +1 -1
  657. package/dist/TagsInput/TagsInputInput.cjs.map +1 -1
  658. package/dist/TagsInput/TagsInputInput.js +1 -1
  659. package/dist/TagsInput/TagsInputInput.js.map +1 -1
  660. package/dist/TagsInput/TagsInputItem.cjs.map +1 -1
  661. package/dist/TagsInput/TagsInputItem.js.map +1 -1
  662. package/dist/TagsInput/TagsInputItemDelete.cjs +1 -1
  663. package/dist/TagsInput/TagsInputItemDelete.cjs.map +1 -1
  664. package/dist/TagsInput/TagsInputItemDelete.js +1 -1
  665. package/dist/TagsInput/TagsInputItemDelete.js.map +1 -1
  666. package/dist/TagsInput/TagsInputItemText.cjs +1 -1
  667. package/dist/TagsInput/TagsInputItemText.cjs.map +1 -1
  668. package/dist/TagsInput/TagsInputItemText.js +1 -1
  669. package/dist/TagsInput/TagsInputItemText.js.map +1 -1
  670. package/dist/TagsInput/TagsInputRoot.cjs.map +1 -1
  671. package/dist/TagsInput/TagsInputRoot.js.map +1 -1
  672. package/dist/TimeField/TimeFieldInput.cjs.map +1 -1
  673. package/dist/TimeField/TimeFieldInput.js.map +1 -1
  674. package/dist/TimeField/TimeFieldRoot.cjs +1 -1
  675. package/dist/TimeField/TimeFieldRoot.cjs.map +1 -1
  676. package/dist/TimeField/TimeFieldRoot.js +1 -1
  677. package/dist/TimeField/TimeFieldRoot.js.map +1 -1
  678. package/dist/Toast/ToastAnnounce.cjs +1 -1
  679. package/dist/Toast/ToastAnnounce.cjs.map +1 -1
  680. package/dist/Toast/ToastAnnounce.js +1 -1
  681. package/dist/Toast/ToastAnnounce.js.map +1 -1
  682. package/dist/Toast/ToastProvider.cjs.map +1 -1
  683. package/dist/Toast/ToastProvider.js.map +1 -1
  684. package/dist/Toast/ToastRoot.cjs +28 -20
  685. package/dist/Toast/ToastRoot.cjs.map +1 -1
  686. package/dist/Toast/ToastRoot.js +28 -20
  687. package/dist/Toast/ToastRoot.js.map +1 -1
  688. package/dist/Toast/ToastRootImpl.cjs +3 -3
  689. package/dist/Toast/ToastRootImpl.cjs.map +1 -1
  690. package/dist/Toast/ToastRootImpl.js +3 -3
  691. package/dist/Toast/ToastRootImpl.js.map +1 -1
  692. package/dist/Toast/ToastViewport.cjs +2 -2
  693. package/dist/Toast/ToastViewport.cjs.map +1 -1
  694. package/dist/Toast/ToastViewport.js +2 -2
  695. package/dist/Toast/ToastViewport.js.map +1 -1
  696. package/dist/Toggle/Toggle.cjs.map +1 -1
  697. package/dist/Toggle/Toggle.js.map +1 -1
  698. package/dist/ToggleGroup/ToggleGroupItem.cjs.map +1 -1
  699. package/dist/ToggleGroup/ToggleGroupItem.js.map +1 -1
  700. package/dist/ToggleGroup/ToggleGroupRoot.cjs.map +1 -1
  701. package/dist/ToggleGroup/ToggleGroupRoot.js.map +1 -1
  702. package/dist/Toolbar/ToolbarRoot.cjs.map +1 -1
  703. package/dist/Toolbar/ToolbarRoot.js.map +1 -1
  704. package/dist/Toolbar/ToolbarSeparator.cjs +1 -1
  705. package/dist/Toolbar/ToolbarSeparator.js +1 -1
  706. package/dist/Toolbar/ToolbarToggleGroup.cjs +1 -1
  707. package/dist/Toolbar/ToolbarToggleGroup.cjs.map +1 -1
  708. package/dist/Toolbar/ToolbarToggleGroup.js +1 -1
  709. package/dist/Toolbar/ToolbarToggleGroup.js.map +1 -1
  710. package/dist/Toolbar/ToolbarToggleItem.cjs.map +1 -1
  711. package/dist/Toolbar/ToolbarToggleItem.js.map +1 -1
  712. package/dist/Tooltip/TooltipContent.cjs +1 -1
  713. package/dist/Tooltip/TooltipContent.cjs.map +1 -1
  714. package/dist/Tooltip/TooltipContent.js +1 -1
  715. package/dist/Tooltip/TooltipContent.js.map +1 -1
  716. package/dist/Tooltip/TooltipContentHoverable.cjs.map +1 -1
  717. package/dist/Tooltip/TooltipContentHoverable.js.map +1 -1
  718. package/dist/Tooltip/TooltipContentImpl.cjs +3 -3
  719. package/dist/Tooltip/TooltipContentImpl.cjs.map +1 -1
  720. package/dist/Tooltip/TooltipContentImpl.js +3 -3
  721. package/dist/Tooltip/TooltipContentImpl.js.map +1 -1
  722. package/dist/Tooltip/TooltipRoot.cjs +1 -1
  723. package/dist/Tooltip/TooltipRoot.cjs.map +1 -1
  724. package/dist/Tooltip/TooltipRoot.js +1 -1
  725. package/dist/Tooltip/TooltipRoot.js.map +1 -1
  726. package/dist/Tooltip/TooltipTrigger.cjs +4 -1
  727. package/dist/Tooltip/TooltipTrigger.cjs.map +1 -1
  728. package/dist/Tooltip/TooltipTrigger.js +4 -1
  729. package/dist/Tooltip/TooltipTrigger.js.map +1 -1
  730. package/dist/Tree/TreeItem.cjs.map +1 -1
  731. package/dist/Tree/TreeItem.js.map +1 -1
  732. package/dist/Tree/TreeRoot.cjs +1 -1
  733. package/dist/Tree/TreeRoot.cjs.map +1 -1
  734. package/dist/Tree/TreeRoot.js +1 -1
  735. package/dist/Tree/TreeRoot.js.map +1 -1
  736. package/dist/Tree/TreeVirtualizer.cjs +3 -3
  737. package/dist/Tree/TreeVirtualizer.cjs.map +1 -1
  738. package/dist/Tree/TreeVirtualizer.js +3 -3
  739. package/dist/Tree/TreeVirtualizer.js.map +1 -1
  740. package/dist/Tree/utils.cjs.map +1 -1
  741. package/dist/Tree/utils.js.map +1 -1
  742. package/dist/VisuallyHidden/VisuallyHiddenInput.cjs.map +1 -1
  743. package/dist/VisuallyHidden/VisuallyHiddenInput.js.map +1 -1
  744. package/dist/VisuallyHidden/VisuallyHiddenInputBubble.cjs.map +1 -1
  745. package/dist/VisuallyHidden/VisuallyHiddenInputBubble.js.map +1 -1
  746. package/dist/component/BaseSeparator.cjs.map +1 -1
  747. package/dist/component/BaseSeparator.js.map +1 -1
  748. package/dist/composables/useWindowSplitterBehavior.cjs.map +1 -1
  749. package/dist/composables/useWindowSplitterBehavior.js.map +1 -1
  750. package/dist/composables/useWindowSplitterPanelGroupBehavior.cjs +3 -3
  751. package/dist/composables/useWindowSplitterPanelGroupBehavior.cjs.map +1 -1
  752. package/dist/composables/useWindowSplitterPanelGroupBehavior.js +3 -3
  753. package/dist/composables/useWindowSplitterPanelGroupBehavior.js.map +1 -1
  754. package/dist/date/calendar.cjs +1 -1
  755. package/dist/date/calendar.cjs.map +1 -1
  756. package/dist/date/calendar.js +1 -1
  757. package/dist/date/calendar.js.map +1 -1
  758. package/dist/date/comparators.cjs +6 -4
  759. package/dist/date/comparators.cjs.map +1 -1
  760. package/dist/date/comparators.js +6 -4
  761. package/dist/date/comparators.js.map +1 -1
  762. package/dist/date/parser.cjs.map +1 -1
  763. package/dist/date/parser.js.map +1 -1
  764. package/dist/date/useDateField.cjs.map +1 -1
  765. package/dist/date/useDateField.js.map +1 -1
  766. package/dist/date/utils.cjs +7 -7
  767. package/dist/date/utils.cjs.map +1 -1
  768. package/dist/date/utils.js +7 -7
  769. package/dist/date/utils.js.map +1 -1
  770. package/dist/date.d.ts +2 -2
  771. package/dist/index.cjs +347 -347
  772. package/dist/index.cjs.map +1 -1
  773. package/dist/index.d.ts +1188 -1323
  774. package/dist/index.js +161 -161
  775. package/dist/index.js.map +1 -1
  776. package/dist/shared/createContext.cjs.map +1 -1
  777. package/dist/shared/createContext.js.map +1 -1
  778. package/dist/shared/renderSlotFragments.cjs.map +1 -1
  779. package/dist/shared/renderSlotFragments.js.map +1 -1
  780. package/dist/shared/useArrowNavigation.cjs.map +1 -1
  781. package/dist/shared/useArrowNavigation.js.map +1 -1
  782. package/dist/shared/useBodyScrollLock.cjs +1 -1
  783. package/dist/shared/useBodyScrollLock.cjs.map +1 -1
  784. package/dist/shared/useBodyScrollLock.js +1 -1
  785. package/dist/shared/useBodyScrollLock.js.map +1 -1
  786. package/dist/shared/useDateFormatter.cjs +1 -1
  787. package/dist/shared/useDateFormatter.cjs.map +1 -1
  788. package/dist/shared/useDateFormatter.js +1 -1
  789. package/dist/shared/useDateFormatter.js.map +1 -1
  790. package/dist/shared/useDirection.cjs.map +1 -1
  791. package/dist/shared/useDirection.js.map +1 -1
  792. package/dist/shared/useFilter.cjs.map +1 -1
  793. package/dist/shared/useFilter.js.map +1 -1
  794. package/dist/shared/useFormControl.cjs.map +1 -1
  795. package/dist/shared/useFormControl.js.map +1 -1
  796. package/dist/shared/useForwardExpose.cjs.map +1 -1
  797. package/dist/shared/useForwardExpose.js.map +1 -1
  798. package/dist/shared/useForwardProps.cjs.map +1 -1
  799. package/dist/shared/useForwardProps.js.map +1 -1
  800. package/dist/shared/useForwardPropsEmits.cjs.map +1 -1
  801. package/dist/shared/useForwardPropsEmits.js.map +1 -1
  802. package/dist/shared/useGraceArea.cjs +1 -1
  803. package/dist/shared/useGraceArea.cjs.map +1 -1
  804. package/dist/shared/useGraceArea.js +1 -1
  805. package/dist/shared/useGraceArea.js.map +1 -1
  806. package/dist/shared/useHideOthers.cjs.map +1 -1
  807. package/dist/shared/useHideOthers.js.map +1 -1
  808. package/dist/shared/useLocale.cjs.map +1 -1
  809. package/dist/shared/useLocale.js.map +1 -1
  810. package/dist/shared/useNonce.cjs.map +1 -1
  811. package/dist/shared/useNonce.js.map +1 -1
  812. package/dist/shared/useSelectionBehavior.cjs +2 -2
  813. package/dist/shared/useSelectionBehavior.cjs.map +1 -1
  814. package/dist/shared/useSelectionBehavior.js +2 -2
  815. package/dist/shared/useSelectionBehavior.js.map +1 -1
  816. package/dist/shared/useSingleOrMultipleValue.cjs +1 -1
  817. package/dist/shared/useSingleOrMultipleValue.cjs.map +1 -1
  818. package/dist/shared/useSingleOrMultipleValue.js +1 -1
  819. package/dist/shared/useSingleOrMultipleValue.js.map +1 -1
  820. package/dist/shared/useSize.cjs.map +1 -1
  821. package/dist/shared/useSize.js.map +1 -1
  822. package/dist/shared/useStateMachine.cjs.map +1 -1
  823. package/dist/shared/useStateMachine.js.map +1 -1
  824. package/dist/shared/withDefault.cjs.map +1 -1
  825. package/dist/shared/withDefault.js.map +1 -1
  826. package/dist/utils/calculate.cjs +1 -1
  827. package/dist/utils/calculate.cjs.map +1 -1
  828. package/dist/utils/calculate.js +1 -1
  829. package/dist/utils/calculate.js.map +1 -1
  830. package/dist/utils/dom.cjs.map +1 -1
  831. package/dist/utils/dom.js.map +1 -1
  832. package/dist/utils/registry.cjs +1 -1
  833. package/dist/utils/registry.cjs.map +1 -1
  834. package/dist/utils/registry.js +1 -1
  835. package/dist/utils/registry.js.map +1 -1
  836. package/dist/utils/resizePanel.cjs +1 -1
  837. package/dist/utils/resizePanel.cjs.map +1 -1
  838. package/dist/utils/resizePanel.js +1 -1
  839. package/dist/utils/resizePanel.js.map +1 -1
  840. package/dist/utils/style.cjs.map +1 -1
  841. package/dist/utils/style.js.map +1 -1
  842. package/package.json +7 -8
@@ -1 +1 @@
1
- {"version":3,"file":"useGraceArea.js","sources":["../../src/shared/useGraceArea.ts"],"sourcesContent":["import { type Ref, ref, watchEffect } from 'vue'\nimport type { Side } from '@/Popper/utils'\nimport { createEventHook, refAutoReset } from '@vueuse/shared'\n\nexport function useGraceArea(triggerElement: Ref<HTMLElement | undefined>, containerElement: Ref<HTMLElement | undefined>) {\n// Reset the inTransit state if idle/scrolled.\n const isPointerInTransit = refAutoReset(false, 300)\n\n const pointerGraceArea = ref<Polygon | null>(null)\n const pointerExit = createEventHook<void>()\n\n function handleRemoveGraceArea() {\n pointerGraceArea.value = null\n isPointerInTransit.value = false\n }\n\n function handleCreateGraceArea(event: PointerEvent, hoverTarget: HTMLElement) {\n const currentTarget = event.currentTarget as HTMLElement\n const exitPoint = { x: event.clientX, y: event.clientY }\n const exitSide = getExitSideFromRect(exitPoint, currentTarget.getBoundingClientRect())\n const paddedExitPoints = getPaddedExitPoints(exitPoint, exitSide)\n const hoverTargetPoints = getPointsFromRect(hoverTarget.getBoundingClientRect())\n const graceArea = getHull([...paddedExitPoints, ...hoverTargetPoints])\n pointerGraceArea.value = graceArea\n isPointerInTransit.value = true\n }\n\n watchEffect((cleanupFn) => {\n if (triggerElement.value && containerElement.value) {\n const handleTriggerLeave = (event: PointerEvent) => handleCreateGraceArea(event, containerElement.value!)\n const handleContentLeave = (event: PointerEvent) => handleCreateGraceArea(event, triggerElement.value!)\n\n triggerElement.value.addEventListener('pointerleave', handleTriggerLeave)\n containerElement.value.addEventListener('pointerleave', handleContentLeave)\n\n cleanupFn(() => {\n triggerElement.value?.removeEventListener('pointerleave', handleTriggerLeave)\n containerElement.value?.removeEventListener('pointerleave', handleContentLeave)\n })\n }\n })\n\n watchEffect((cleanupFn) => {\n if (pointerGraceArea.value) {\n const handleTrackPointerGrace = (event: PointerEvent) => {\n if (!pointerGraceArea.value || !(event.target instanceof HTMLElement))\n return\n\n const target = event.target\n const pointerPosition = { x: event.clientX, y: event.clientY }\n const hasEnteredTarget = triggerElement.value?.contains(target) || containerElement.value?.contains(target)\n const isPointerOutsideGraceArea = !isPointInPolygon(pointerPosition, pointerGraceArea.value)\n const isAnotherGraceAreaTrigger = !!target.closest('[data-grace-area-trigger]')\n\n if (hasEnteredTarget) {\n handleRemoveGraceArea()\n }\n else if (isPointerOutsideGraceArea || isAnotherGraceAreaTrigger) {\n handleRemoveGraceArea()\n pointerExit.trigger()\n }\n }\n triggerElement.value?.ownerDocument.addEventListener('pointermove', handleTrackPointerGrace)\n\n cleanupFn(() => triggerElement.value?.ownerDocument.removeEventListener('pointermove', handleTrackPointerGrace))\n }\n })\n\n return {\n isPointerInTransit,\n onPointerExit: pointerExit.on,\n }\n}\n\ninterface Point { x: number, y: number }\n type Polygon = Point[]\n\nfunction getExitSideFromRect(point: Point, rect: DOMRect): Side {\n const top = Math.abs(rect.top - point.y)\n const bottom = Math.abs(rect.bottom - point.y)\n const right = Math.abs(rect.right - point.x)\n const left = Math.abs(rect.left - point.x)\n\n switch (Math.min(top, bottom, right, left)) {\n case left:\n return 'left'\n case right:\n return 'right'\n case top:\n return 'top'\n case bottom:\n return 'bottom'\n default:\n throw new Error('unreachable')\n }\n}\n\nfunction getPaddedExitPoints(exitPoint: Point, exitSide: Side, padding = 5) {\n const paddedExitPoints: Point[] = []\n switch (exitSide) {\n case 'top':\n paddedExitPoints.push(\n { x: exitPoint.x - padding, y: exitPoint.y + padding },\n { x: exitPoint.x + padding, y: exitPoint.y + padding },\n )\n break\n case 'bottom':\n paddedExitPoints.push(\n { x: exitPoint.x - padding, y: exitPoint.y - padding },\n { x: exitPoint.x + padding, y: exitPoint.y - padding },\n )\n break\n case 'left':\n paddedExitPoints.push(\n { x: exitPoint.x + padding, y: exitPoint.y - padding },\n { x: exitPoint.x + padding, y: exitPoint.y + padding },\n )\n break\n case 'right':\n paddedExitPoints.push(\n { x: exitPoint.x - padding, y: exitPoint.y - padding },\n { x: exitPoint.x - padding, y: exitPoint.y + padding },\n )\n break\n }\n return paddedExitPoints\n}\n\nfunction getPointsFromRect(rect: DOMRect) {\n const { top, right, bottom, left } = rect\n return [\n { x: left, y: top },\n { x: right, y: top },\n { x: right, y: bottom },\n { x: left, y: bottom },\n ]\n}\n\n// Determine if a point is inside of a polygon.\n// Based on https://github.com/substack/point-in-polygon\nfunction isPointInPolygon(point: Point, polygon: Polygon) {\n const { x, y } = point\n let inside = false\n for (let i = 0, j = polygon.length - 1; i < polygon.length; j = i++) {\n const xi = polygon[i].x\n const yi = polygon[i].y\n const xj = polygon[j].x\n const yj = polygon[j].y\n\n // prettier-ignore\n const intersect = ((yi > y) !== (yj > y)) && (x < (xj - xi) * (y - yi) / (yj - yi) + xi)\n if (intersect)\n inside = !inside\n }\n\n return inside\n}\n\n// Returns a new array of points representing the convex hull of the given set of points.\n// https://www.nayuki.io/page/convex-hull-algorithm\nfunction getHull<P extends Point>(points: Readonly<Array<P>>): Array<P> {\n const newPoints: Array<P> = points.slice()\n newPoints.sort((a: Point, b: Point) => {\n if (a.x < b.x)\n return -1\n else if (a.x > b.x)\n return +1\n else if (a.y < b.y)\n return -1\n else if (a.y > b.y)\n return +1\n else return 0\n })\n return getHullPresorted(newPoints)\n}\n\n// Returns the convex hull, assuming that each points[i] <= points[i + 1]. Runs in O(n) time.\nfunction getHullPresorted<P extends Point>(points: Readonly<Array<P>>): Array<P> {\n if (points.length <= 1)\n return points.slice()\n\n const upperHull: Array<P> = []\n for (let i = 0; i < points.length; i++) {\n const p = points[i]\n while (upperHull.length >= 2) {\n const q = upperHull[upperHull.length - 1]\n const r = upperHull[upperHull.length - 2]\n if ((q.x - r.x) * (p.y - r.y) >= (q.y - r.y) * (p.x - r.x))\n upperHull.pop()\n else break\n }\n upperHull.push(p)\n }\n upperHull.pop()\n\n const lowerHull: Array<P> = []\n for (let i = points.length - 1; i >= 0; i--) {\n const p = points[i]\n while (lowerHull.length >= 2) {\n const q = lowerHull[lowerHull.length - 1]\n const r = lowerHull[lowerHull.length - 2]\n if ((q.x - r.x) * (p.y - r.y) >= (q.y - r.y) * (p.x - r.x))\n lowerHull.pop()\n else break\n }\n lowerHull.push(p)\n }\n lowerHull.pop()\n\n if (\n upperHull.length === 1\n && lowerHull.length === 1\n && upperHull[0].x === lowerHull[0].x\n && upperHull[0].y === lowerHull[0].y\n ) {\n return upperHull\n }\n\n else {\n return upperHull.concat(lowerHull)\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useGraceArea.js","sources":["../../src/shared/useGraceArea.ts"],"sourcesContent":["import type { Side } from '@/Popper/utils'\nimport type { Ref } from 'vue'\nimport { createEventHook, refAutoReset } from '@vueuse/shared'\nimport { ref, watchEffect } from 'vue'\n\nexport function useGraceArea(triggerElement: Ref<HTMLElement | undefined>, containerElement: Ref<HTMLElement | undefined>) {\n// Reset the inTransit state if idle/scrolled.\n const isPointerInTransit = refAutoReset(false, 300)\n\n const pointerGraceArea = ref<Polygon | null>(null)\n const pointerExit = createEventHook<void>()\n\n function handleRemoveGraceArea() {\n pointerGraceArea.value = null\n isPointerInTransit.value = false\n }\n\n function handleCreateGraceArea(event: PointerEvent, hoverTarget: HTMLElement) {\n const currentTarget = event.currentTarget as HTMLElement\n const exitPoint = { x: event.clientX, y: event.clientY }\n const exitSide = getExitSideFromRect(exitPoint, currentTarget.getBoundingClientRect())\n const paddedExitPoints = getPaddedExitPoints(exitPoint, exitSide)\n const hoverTargetPoints = getPointsFromRect(hoverTarget.getBoundingClientRect())\n const graceArea = getHull([...paddedExitPoints, ...hoverTargetPoints])\n pointerGraceArea.value = graceArea\n isPointerInTransit.value = true\n }\n\n watchEffect((cleanupFn) => {\n if (triggerElement.value && containerElement.value) {\n const handleTriggerLeave = (event: PointerEvent) => handleCreateGraceArea(event, containerElement.value!)\n const handleContentLeave = (event: PointerEvent) => handleCreateGraceArea(event, triggerElement.value!)\n\n triggerElement.value.addEventListener('pointerleave', handleTriggerLeave)\n containerElement.value.addEventListener('pointerleave', handleContentLeave)\n\n cleanupFn(() => {\n triggerElement.value?.removeEventListener('pointerleave', handleTriggerLeave)\n containerElement.value?.removeEventListener('pointerleave', handleContentLeave)\n })\n }\n })\n\n watchEffect((cleanupFn) => {\n if (pointerGraceArea.value) {\n const handleTrackPointerGrace = (event: PointerEvent) => {\n if (!pointerGraceArea.value || !(event.target instanceof HTMLElement))\n return\n\n const target = event.target\n const pointerPosition = { x: event.clientX, y: event.clientY }\n const hasEnteredTarget = triggerElement.value?.contains(target) || containerElement.value?.contains(target)\n const isPointerOutsideGraceArea = !isPointInPolygon(pointerPosition, pointerGraceArea.value)\n const isAnotherGraceAreaTrigger = !!target.closest('[data-grace-area-trigger]')\n\n if (hasEnteredTarget) {\n handleRemoveGraceArea()\n }\n else if (isPointerOutsideGraceArea || isAnotherGraceAreaTrigger) {\n handleRemoveGraceArea()\n pointerExit.trigger()\n }\n }\n triggerElement.value?.ownerDocument.addEventListener('pointermove', handleTrackPointerGrace)\n\n cleanupFn(() => triggerElement.value?.ownerDocument.removeEventListener('pointermove', handleTrackPointerGrace))\n }\n })\n\n return {\n isPointerInTransit,\n onPointerExit: pointerExit.on,\n }\n}\n\ninterface Point { x: number, y: number }\n type Polygon = Point[]\n\nfunction getExitSideFromRect(point: Point, rect: DOMRect): Side {\n const top = Math.abs(rect.top - point.y)\n const bottom = Math.abs(rect.bottom - point.y)\n const right = Math.abs(rect.right - point.x)\n const left = Math.abs(rect.left - point.x)\n\n switch (Math.min(top, bottom, right, left)) {\n case left:\n return 'left'\n case right:\n return 'right'\n case top:\n return 'top'\n case bottom:\n return 'bottom'\n default:\n throw new Error('unreachable')\n }\n}\n\nfunction getPaddedExitPoints(exitPoint: Point, exitSide: Side, padding = 5) {\n const paddedExitPoints: Point[] = []\n switch (exitSide) {\n case 'top':\n paddedExitPoints.push(\n { x: exitPoint.x - padding, y: exitPoint.y + padding },\n { x: exitPoint.x + padding, y: exitPoint.y + padding },\n )\n break\n case 'bottom':\n paddedExitPoints.push(\n { x: exitPoint.x - padding, y: exitPoint.y - padding },\n { x: exitPoint.x + padding, y: exitPoint.y - padding },\n )\n break\n case 'left':\n paddedExitPoints.push(\n { x: exitPoint.x + padding, y: exitPoint.y - padding },\n { x: exitPoint.x + padding, y: exitPoint.y + padding },\n )\n break\n case 'right':\n paddedExitPoints.push(\n { x: exitPoint.x - padding, y: exitPoint.y - padding },\n { x: exitPoint.x - padding, y: exitPoint.y + padding },\n )\n break\n }\n return paddedExitPoints\n}\n\nfunction getPointsFromRect(rect: DOMRect) {\n const { top, right, bottom, left } = rect\n return [\n { x: left, y: top },\n { x: right, y: top },\n { x: right, y: bottom },\n { x: left, y: bottom },\n ]\n}\n\n// Determine if a point is inside of a polygon.\n// Based on https://github.com/substack/point-in-polygon\nfunction isPointInPolygon(point: Point, polygon: Polygon) {\n const { x, y } = point\n let inside = false\n for (let i = 0, j = polygon.length - 1; i < polygon.length; j = i++) {\n const xi = polygon[i].x\n const yi = polygon[i].y\n const xj = polygon[j].x\n const yj = polygon[j].y\n\n // prettier-ignore\n const intersect = ((yi > y) !== (yj > y)) && (x < (xj - xi) * (y - yi) / (yj - yi) + xi)\n if (intersect)\n inside = !inside\n }\n\n return inside\n}\n\n// Returns a new array of points representing the convex hull of the given set of points.\n// https://www.nayuki.io/page/convex-hull-algorithm\nfunction getHull<P extends Point>(points: Readonly<Array<P>>): Array<P> {\n const newPoints: Array<P> = points.slice()\n newPoints.sort((a: Point, b: Point) => {\n if (a.x < b.x)\n return -1\n else if (a.x > b.x)\n return +1\n else if (a.y < b.y)\n return -1\n else if (a.y > b.y)\n return +1\n else return 0\n })\n return getHullPresorted(newPoints)\n}\n\n// Returns the convex hull, assuming that each points[i] <= points[i + 1]. Runs in O(n) time.\nfunction getHullPresorted<P extends Point>(points: Readonly<Array<P>>): Array<P> {\n if (points.length <= 1)\n return points.slice()\n\n const upperHull: Array<P> = []\n for (let i = 0; i < points.length; i++) {\n const p = points[i]\n while (upperHull.length >= 2) {\n const q = upperHull[upperHull.length - 1]\n const r = upperHull[upperHull.length - 2]\n if ((q.x - r.x) * (p.y - r.y) >= (q.y - r.y) * (p.x - r.x))\n upperHull.pop()\n else break\n }\n upperHull.push(p)\n }\n upperHull.pop()\n\n const lowerHull: Array<P> = []\n for (let i = points.length - 1; i >= 0; i--) {\n const p = points[i]\n while (lowerHull.length >= 2) {\n const q = lowerHull[lowerHull.length - 1]\n const r = lowerHull[lowerHull.length - 2]\n if ((q.x - r.x) * (p.y - r.y) >= (q.y - r.y) * (p.x - r.x))\n lowerHull.pop()\n else break\n }\n lowerHull.push(p)\n }\n lowerHull.pop()\n\n if (\n upperHull.length === 1\n && lowerHull.length === 1\n && upperHull[0].x === lowerHull[0].x\n && upperHull[0].y === lowerHull[0].y\n ) {\n return upperHull\n }\n\n else {\n return upperHull.concat(lowerHull)\n }\n}\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"useHideOthers.cjs","sources":["../../src/shared/useHideOthers.ts"],"sourcesContent":["import { type MaybeElementRef, unrefElement } from '@vueuse/core'\nimport { hideOthers } from 'aria-hidden'\nimport { onUnmounted, watch } from 'vue'\n\n/**\n * The `useHideOthers` function is a TypeScript function that takes a target element reference and\n * hides all other elements in ARIA when the target element is present, and restores the visibility of the\n * hidden elements when the target element is removed.\n * @param {MaybeElementRef} target - The `target` parameter is a reference to the element that you want\n * to hide other elements when it is clicked or focused.\n */\nexport function useHideOthers(target: MaybeElementRef) {\n let undo: ReturnType<typeof hideOthers>\n watch(() => unrefElement(target), (el) => {\n // disable hideOthers on test mode\n if (import.meta.env.MODE === 'test')\n return\n if (el)\n undo = hideOthers(el)\n else if (undo)\n undo()\n })\n\n onUnmounted(() => {\n if (undo)\n undo()\n })\n}\n"],"names":["watch","unrefElement","hideOthers","onUnmounted"],"mappings":";;;;;;AAWO,SAAS,cAAc,MAAyB,EAAA;AACjD,EAAA,IAAA,IAAA;AACJ,EAAAA,SAAA,CAAM,MAAMC,iBAAA,CAAa,MAAM,CAAA,EAAG,CAAC,EAAO,KAAA;AAIpC,IAAA,IAAA,EAAA;AACF,MAAA,IAAA,GAAOC,sBAAW,EAAE,CAAA;AAAA,SACb,IAAA,IAAA;AACF,MAAA,IAAA,EAAA;AAAA,GACR,CAAA;AAED,EAAAC,eAAA,CAAY,MAAM;AACZ,IAAA,IAAA,IAAA;AACG,MAAA,IAAA,EAAA;AAAA,GACR,CAAA;AACH;;;;"}
1
+ {"version":3,"file":"useHideOthers.cjs","sources":["../../src/shared/useHideOthers.ts"],"sourcesContent":["import type { MaybeElementRef } from '@vueuse/core'\nimport { unrefElement } from '@vueuse/core'\nimport { hideOthers } from 'aria-hidden'\nimport { onUnmounted, watch } from 'vue'\n\n/**\n * The `useHideOthers` function is a TypeScript function that takes a target element reference and\n * hides all other elements in ARIA when the target element is present, and restores the visibility of the\n * hidden elements when the target element is removed.\n * @param {MaybeElementRef} target - The `target` parameter is a reference to the element that you want\n * to hide other elements when it is clicked or focused.\n */\nexport function useHideOthers(target: MaybeElementRef) {\n let undo: ReturnType<typeof hideOthers>\n watch(() => unrefElement(target), (el) => {\n // disable hideOthers on test mode\n if (import.meta.env.MODE === 'test')\n return\n if (el)\n undo = hideOthers(el)\n else if (undo)\n undo()\n })\n\n onUnmounted(() => {\n if (undo)\n undo()\n })\n}\n"],"names":["watch","unrefElement","hideOthers","onUnmounted"],"mappings":";;;;;;AAYO,SAAS,cAAc,MAAyB,EAAA;AACjD,EAAA,IAAA,IAAA;AACJ,EAAAA,SAAA,CAAM,MAAMC,iBAAA,CAAa,MAAM,CAAA,EAAG,CAAC,EAAO,KAAA;AAIpC,IAAA,IAAA,EAAA;AACF,MAAA,IAAA,GAAOC,sBAAW,EAAE,CAAA;AAAA,SACb,IAAA,IAAA;AACF,MAAA,IAAA,EAAA;AAAA,GACR,CAAA;AAED,EAAAC,eAAA,CAAY,MAAM;AACZ,IAAA,IAAA,IAAA;AACG,MAAA,IAAA,EAAA;AAAA,GACR,CAAA;AACH;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"useHideOthers.js","sources":["../../src/shared/useHideOthers.ts"],"sourcesContent":["import { type MaybeElementRef, unrefElement } from '@vueuse/core'\nimport { hideOthers } from 'aria-hidden'\nimport { onUnmounted, watch } from 'vue'\n\n/**\n * The `useHideOthers` function is a TypeScript function that takes a target element reference and\n * hides all other elements in ARIA when the target element is present, and restores the visibility of the\n * hidden elements when the target element is removed.\n * @param {MaybeElementRef} target - The `target` parameter is a reference to the element that you want\n * to hide other elements when it is clicked or focused.\n */\nexport function useHideOthers(target: MaybeElementRef) {\n let undo: ReturnType<typeof hideOthers>\n watch(() => unrefElement(target), (el) => {\n // disable hideOthers on test mode\n if (import.meta.env.MODE === 'test')\n return\n if (el)\n undo = hideOthers(el)\n else if (undo)\n undo()\n })\n\n onUnmounted(() => {\n if (undo)\n undo()\n })\n}\n"],"names":[],"mappings":";;;;AAWO,SAAS,cAAc,MAAyB,EAAA;AACjD,EAAA,IAAA,IAAA;AACJ,EAAA,KAAA,CAAM,MAAM,YAAA,CAAa,MAAM,CAAA,EAAG,CAAC,EAAO,KAAA;AAIpC,IAAA,IAAA,EAAA;AACF,MAAA,IAAA,GAAO,WAAW,EAAE,CAAA;AAAA,SACb,IAAA,IAAA;AACF,MAAA,IAAA,EAAA;AAAA,GACR,CAAA;AAED,EAAA,WAAA,CAAY,MAAM;AACZ,IAAA,IAAA,IAAA;AACG,MAAA,IAAA,EAAA;AAAA,GACR,CAAA;AACH;;;;"}
1
+ {"version":3,"file":"useHideOthers.js","sources":["../../src/shared/useHideOthers.ts"],"sourcesContent":["import type { MaybeElementRef } from '@vueuse/core'\nimport { unrefElement } from '@vueuse/core'\nimport { hideOthers } from 'aria-hidden'\nimport { onUnmounted, watch } from 'vue'\n\n/**\n * The `useHideOthers` function is a TypeScript function that takes a target element reference and\n * hides all other elements in ARIA when the target element is present, and restores the visibility of the\n * hidden elements when the target element is removed.\n * @param {MaybeElementRef} target - The `target` parameter is a reference to the element that you want\n * to hide other elements when it is clicked or focused.\n */\nexport function useHideOthers(target: MaybeElementRef) {\n let undo: ReturnType<typeof hideOthers>\n watch(() => unrefElement(target), (el) => {\n // disable hideOthers on test mode\n if (import.meta.env.MODE === 'test')\n return\n if (el)\n undo = hideOthers(el)\n else if (undo)\n undo()\n })\n\n onUnmounted(() => {\n if (undo)\n undo()\n })\n}\n"],"names":[],"mappings":";;;;AAYO,SAAS,cAAc,MAAyB,EAAA;AACjD,EAAA,IAAA,IAAA;AACJ,EAAA,KAAA,CAAM,MAAM,YAAA,CAAa,MAAM,CAAA,EAAG,CAAC,EAAO,KAAA;AAIpC,IAAA,IAAA,EAAA;AACF,MAAA,IAAA,GAAO,WAAW,EAAE,CAAA;AAAA,SACb,IAAA,IAAA;AACF,MAAA,IAAA,EAAA;AAAA,GACR,CAAA;AAED,EAAA,WAAA,CAAY,MAAM;AACZ,IAAA,IAAA,IAAA;AACG,MAAA,IAAA,EAAA;AAAA,GACR,CAAA;AACH;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"useLocale.cjs","sources":["../../src/shared/useLocale.ts"],"sourcesContent":["import { injectConfigProviderContext } from '@/ConfigProvider/ConfigProvider.vue'\nimport { type Ref, computed, ref } from 'vue'\n\nexport function useLocale(locale?: Ref<string | undefined>) {\n const context = injectConfigProviderContext({\n locale: ref('en'),\n })\n return computed(() => locale?.value || context.locale?.value || 'en')\n}\n"],"names":["injectConfigProviderContext","ref","computed"],"mappings":";;;;;AAGO,SAAS,UAAU,MAAkC,EAAA;AAC1D,EAAA,MAAM,UAAUA,yDAA4B,CAAA;AAAA,IAC1C,MAAA,EAAQC,QAAI,IAAI;AAAA,GACjB,CAAA;AACD,EAAA,OAAOC,aAAS,MAAM,MAAA,EAAQ,SAAS,OAAQ,CAAA,MAAA,EAAQ,SAAS,IAAI,CAAA;AACtE;;;;"}
1
+ {"version":3,"file":"useLocale.cjs","sources":["../../src/shared/useLocale.ts"],"sourcesContent":["import type { Ref } from 'vue'\nimport { injectConfigProviderContext } from '@/ConfigProvider/ConfigProvider.vue'\nimport { computed, ref } from 'vue'\n\nexport function useLocale(locale?: Ref<string | undefined>) {\n const context = injectConfigProviderContext({\n locale: ref('en'),\n })\n return computed(() => locale?.value || context.locale?.value || 'en')\n}\n"],"names":["injectConfigProviderContext","ref","computed"],"mappings":";;;;;AAIO,SAAS,UAAU,MAAkC,EAAA;AAC1D,EAAA,MAAM,UAAUA,yDAA4B,CAAA;AAAA,IAC1C,MAAA,EAAQC,QAAI,IAAI;AAAA,GACjB,CAAA;AACD,EAAA,OAAOC,aAAS,MAAM,MAAA,EAAQ,SAAS,OAAQ,CAAA,MAAA,EAAQ,SAAS,IAAI,CAAA;AACtE;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"useLocale.js","sources":["../../src/shared/useLocale.ts"],"sourcesContent":["import { injectConfigProviderContext } from '@/ConfigProvider/ConfigProvider.vue'\nimport { type Ref, computed, ref } from 'vue'\n\nexport function useLocale(locale?: Ref<string | undefined>) {\n const context = injectConfigProviderContext({\n locale: ref('en'),\n })\n return computed(() => locale?.value || context.locale?.value || 'en')\n}\n"],"names":[],"mappings":";;;AAGO,SAAS,UAAU,MAAkC,EAAA;AAC1D,EAAA,MAAM,UAAU,2BAA4B,CAAA;AAAA,IAC1C,MAAA,EAAQ,IAAI,IAAI;AAAA,GACjB,CAAA;AACD,EAAA,OAAO,SAAS,MAAM,MAAA,EAAQ,SAAS,OAAQ,CAAA,MAAA,EAAQ,SAAS,IAAI,CAAA;AACtE;;;;"}
1
+ {"version":3,"file":"useLocale.js","sources":["../../src/shared/useLocale.ts"],"sourcesContent":["import type { Ref } from 'vue'\nimport { injectConfigProviderContext } from '@/ConfigProvider/ConfigProvider.vue'\nimport { computed, ref } from 'vue'\n\nexport function useLocale(locale?: Ref<string | undefined>) {\n const context = injectConfigProviderContext({\n locale: ref('en'),\n })\n return computed(() => locale?.value || context.locale?.value || 'en')\n}\n"],"names":[],"mappings":";;;AAIO,SAAS,UAAU,MAAkC,EAAA;AAC1D,EAAA,MAAM,UAAU,2BAA4B,CAAA;AAAA,IAC1C,MAAA,EAAQ,IAAI,IAAI;AAAA,GACjB,CAAA;AACD,EAAA,OAAO,SAAS,MAAM,MAAA,EAAQ,SAAS,OAAQ,CAAA,MAAA,EAAQ,SAAS,IAAI,CAAA;AACtE;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"useNonce.cjs","sources":["../../src/shared/useNonce.ts"],"sourcesContent":["import { injectConfigProviderContext } from '@/ConfigProvider/ConfigProvider.vue'\nimport { type Ref, computed, ref } from 'vue'\n\nexport function useNonce(nonce?: Ref<string | undefined>) {\n const context = injectConfigProviderContext({\n nonce: ref(),\n })\n return computed(() => nonce?.value || context.nonce?.value)\n}\n"],"names":["injectConfigProviderContext","ref","computed"],"mappings":";;;;;AAGO,SAAS,SAAS,KAAiC,EAAA;AACxD,EAAA,MAAM,UAAUA,yDAA4B,CAAA;AAAA,IAC1C,OAAOC,OAAI;AAAA,GACZ,CAAA;AACD,EAAA,OAAOC,aAAS,MAAM,KAAA,EAAO,KAAS,IAAA,OAAA,CAAQ,OAAO,KAAK,CAAA;AAC5D;;;;"}
1
+ {"version":3,"file":"useNonce.cjs","sources":["../../src/shared/useNonce.ts"],"sourcesContent":["import type { Ref } from 'vue'\nimport { injectConfigProviderContext } from '@/ConfigProvider/ConfigProvider.vue'\nimport { computed, ref } from 'vue'\n\nexport function useNonce(nonce?: Ref<string | undefined>) {\n const context = injectConfigProviderContext({\n nonce: ref(),\n })\n return computed(() => nonce?.value || context.nonce?.value)\n}\n"],"names":["injectConfigProviderContext","ref","computed"],"mappings":";;;;;AAIO,SAAS,SAAS,KAAiC,EAAA;AACxD,EAAA,MAAM,UAAUA,yDAA4B,CAAA;AAAA,IAC1C,OAAOC,OAAI;AAAA,GACZ,CAAA;AACD,EAAA,OAAOC,aAAS,MAAM,KAAA,EAAO,KAAS,IAAA,OAAA,CAAQ,OAAO,KAAK,CAAA;AAC5D;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"useNonce.js","sources":["../../src/shared/useNonce.ts"],"sourcesContent":["import { injectConfigProviderContext } from '@/ConfigProvider/ConfigProvider.vue'\nimport { type Ref, computed, ref } from 'vue'\n\nexport function useNonce(nonce?: Ref<string | undefined>) {\n const context = injectConfigProviderContext({\n nonce: ref(),\n })\n return computed(() => nonce?.value || context.nonce?.value)\n}\n"],"names":[],"mappings":";;;AAGO,SAAS,SAAS,KAAiC,EAAA;AACxD,EAAA,MAAM,UAAU,2BAA4B,CAAA;AAAA,IAC1C,OAAO,GAAI;AAAA,GACZ,CAAA;AACD,EAAA,OAAO,SAAS,MAAM,KAAA,EAAO,KAAS,IAAA,OAAA,CAAQ,OAAO,KAAK,CAAA;AAC5D;;;;"}
1
+ {"version":3,"file":"useNonce.js","sources":["../../src/shared/useNonce.ts"],"sourcesContent":["import type { Ref } from 'vue'\nimport { injectConfigProviderContext } from '@/ConfigProvider/ConfigProvider.vue'\nimport { computed, ref } from 'vue'\n\nexport function useNonce(nonce?: Ref<string | undefined>) {\n const context = injectConfigProviderContext({\n nonce: ref(),\n })\n return computed(() => nonce?.value || context.nonce?.value)\n}\n"],"names":[],"mappings":";;;AAIO,SAAS,SAAS,KAAiC,EAAA;AACxD,EAAA,MAAM,UAAU,2BAA4B,CAAA;AAAA,IAC1C,OAAO,GAAI;AAAA,GACZ,CAAA;AACD,EAAA,OAAO,SAAS,MAAM,KAAA,EAAO,KAAS,IAAA,OAAA,CAAQ,OAAO,KAAK,CAAA;AAC5D;;;;"}
@@ -13,9 +13,9 @@ function useSelectionBehavior(modelValue, props) {
13
13
  } else {
14
14
  const index = modelValue.value.findIndex((v) => condition(v));
15
15
  if (index !== -1)
16
- modelValue.value.splice(index, 1);
16
+ modelValue.value = modelValue.value.filter((_, i) => i !== index);
17
17
  else
18
- modelValue.value.push(val);
18
+ modelValue.value = [...modelValue.value, val];
19
19
  }
20
20
  } else {
21
21
  if (props.selectionBehavior === "replace") {
@@ -1 +1 @@
1
- {"version":3,"file":"useSelectionBehavior.cjs","sources":["../../src/shared/useSelectionBehavior.ts"],"sourcesContent":["import { type Ref, type UnwrapNestedRefs, ref } from 'vue'\nimport { findValuesBetween } from './arrays'\n\nexport function useSelectionBehavior<T>(\n modelValue: Ref<T | T[]>,\n props: UnwrapNestedRefs<{ multiple?: boolean, selectionBehavior?: 'toggle' | 'replace' }>,\n) {\n const firstValue = ref()\n\n const onSelectItem = (val: T, condition: (existingValue: T) => boolean) => {\n // multiple select\n if (props.multiple && Array.isArray(modelValue.value)) {\n if (props.selectionBehavior === 'replace') {\n modelValue.value = [val]\n firstValue.value = val\n }\n else {\n const index = modelValue.value.findIndex(v => condition(v))\n if (index !== -1)\n modelValue.value.splice(index, 1)\n else\n modelValue.value.push(val)\n }\n }\n // single select\n else {\n if (props.selectionBehavior === 'replace') {\n modelValue.value = { ...val }\n }\n else {\n if (!Array.isArray(modelValue.value) && condition(modelValue.value))\n modelValue.value = undefined as any\n else\n modelValue.value = { ...val }\n }\n }\n return modelValue.value\n }\n\n function handleMultipleReplace(intent: 'first' | 'last' | 'prev' | 'next', currentElement: HTMLElement | Element | null, getItems: () => { ref: HTMLElement, value?: any }[], options: any[]) {\n if (!firstValue?.value || !props.multiple || !Array.isArray(modelValue.value))\n return\n\n const collection = getItems().filter(i => i.ref.dataset.disabled !== '')\n const lastValue = collection.find(i => i.ref === currentElement)?.value\n if (!lastValue)\n return\n\n let value: T[] | null = null\n switch (intent) {\n case 'prev':\n case 'next': {\n value = findValuesBetween(options, firstValue.value, lastValue)\n break\n }\n case 'first': {\n value = findValuesBetween(options, firstValue.value, options?.[0])\n break\n }\n case 'last': {\n value = findValuesBetween(options, firstValue.value, options?.[options.length - 1])\n break\n }\n }\n\n modelValue.value = value\n }\n\n return {\n firstValue,\n onSelectItem,\n handleMultipleReplace,\n }\n}\n"],"names":["ref","findValuesBetween"],"mappings":";;;;;AAGgB,SAAA,oBAAA,CACd,YACA,KACA,EAAA;AACA,EAAA,MAAM,aAAaA,OAAI,EAAA;AAEvB,EAAM,MAAA,YAAA,GAAe,CAAC,GAAA,EAAQ,SAA6C,KAAA;AAEzE,IAAA,IAAI,MAAM,QAAY,IAAA,KAAA,CAAM,OAAQ,CAAA,UAAA,CAAW,KAAK,CAAG,EAAA;AACrD,MAAI,IAAA,KAAA,CAAM,sBAAsB,SAAW,EAAA;AACzC,QAAW,UAAA,CAAA,KAAA,GAAQ,CAAC,GAAG,CAAA;AACvB,QAAA,UAAA,CAAW,KAAQ,GAAA,GAAA;AAAA,OAEhB,MAAA;AACH,QAAA,MAAM,QAAQ,UAAW,CAAA,KAAA,CAAM,UAAU,CAAK,CAAA,KAAA,SAAA,CAAU,CAAC,CAAC,CAAA;AAC1D,QAAA,IAAI,KAAU,KAAA,EAAA;AACZ,UAAW,UAAA,CAAA,KAAA,CAAM,MAAO,CAAA,KAAA,EAAO,CAAC,CAAA;AAAA;AAEhC,UAAW,UAAA,CAAA,KAAA,CAAM,KAAK,GAAG,CAAA;AAAA;AAC7B,KAGG,MAAA;AACH,MAAI,IAAA,KAAA,CAAM,sBAAsB,SAAW,EAAA;AACzC,QAAW,UAAA,CAAA,KAAA,GAAQ,EAAE,GAAG,GAAI,EAAA;AAAA,OAEzB,MAAA;AACH,QAAI,IAAA,CAAC,MAAM,OAAQ,CAAA,UAAA,CAAW,KAAK,CAAK,IAAA,SAAA,CAAU,WAAW,KAAK,CAAA;AAChE,UAAA,UAAA,CAAW,KAAQ,GAAA,MAAA;AAAA;AAEnB,UAAW,UAAA,CAAA,KAAA,GAAQ,EAAE,GAAG,GAAI,EAAA;AAAA;AAChC;AAEF,IAAA,OAAO,UAAW,CAAA,KAAA;AAAA,GACpB;AAEA,EAAA,SAAS,qBAAsB,CAAA,MAAA,EAA4C,cAA8C,EAAA,QAAA,EAAqD,OAAgB,EAAA;AAC5L,IAAI,IAAA,CAAC,UAAY,EAAA,KAAA,IAAS,CAAC,KAAA,CAAM,YAAY,CAAC,KAAA,CAAM,OAAQ,CAAA,UAAA,CAAW,KAAK,CAAA;AAC1E,MAAA;AAEF,IAAM,MAAA,UAAA,GAAa,UAAW,CAAA,MAAA,CAAO,OAAK,CAAE,CAAA,GAAA,CAAI,OAAQ,CAAA,QAAA,KAAa,EAAE,CAAA;AACvE,IAAA,MAAM,YAAY,UAAW,CAAA,IAAA,CAAK,OAAK,CAAE,CAAA,GAAA,KAAQ,cAAc,CAAG,EAAA,KAAA;AAClE,IAAA,IAAI,CAAC,SAAA;AACH,MAAA;AAEF,IAAA,IAAI,KAAoB,GAAA,IAAA;AACxB,IAAA,QAAQ,MAAQ;AAAA,MACd,KAAK,MAAA;AAAA,MACL,KAAK,MAAQ,EAAA;AACX,QAAA,KAAA,GAAQC,+BAAkB,CAAA,OAAA,EAAS,UAAW,CAAA,KAAA,EAAO,SAAS,CAAA;AAC9D,QAAA;AAAA;AACF,MACA,KAAK,OAAS,EAAA;AACZ,QAAA,KAAA,GAAQA,gCAAkB,OAAS,EAAA,UAAA,CAAW,KAAO,EAAA,OAAA,GAAU,CAAC,CAAC,CAAA;AACjE,QAAA;AAAA;AACF,MACA,KAAK,MAAQ,EAAA;AACX,QAAQ,KAAA,GAAAA,+BAAA,CAAkB,SAAS,UAAW,CAAA,KAAA,EAAO,UAAU,OAAQ,CAAA,MAAA,GAAS,CAAC,CAAC,CAAA;AAClF,QAAA;AAAA;AACF;AAGF,IAAA,UAAA,CAAW,KAAQ,GAAA,KAAA;AAAA;AAGrB,EAAO,OAAA;AAAA,IACL,UAAA;AAAA,IACA,YAAA;AAAA,IACA;AAAA,GACF;AACF;;;;"}
1
+ {"version":3,"file":"useSelectionBehavior.cjs","sources":["../../src/shared/useSelectionBehavior.ts"],"sourcesContent":["import type { Ref, UnwrapNestedRefs } from 'vue'\nimport { ref } from 'vue'\nimport { findValuesBetween } from './arrays'\n\nexport function useSelectionBehavior<T>(\n modelValue: Ref<T | T[]>,\n props: UnwrapNestedRefs<{ multiple?: boolean, selectionBehavior?: 'toggle' | 'replace' }>,\n) {\n const firstValue = ref()\n\n const onSelectItem = (val: T, condition: (existingValue: T) => boolean) => {\n // multiple select\n if (props.multiple && Array.isArray(modelValue.value)) {\n if (props.selectionBehavior === 'replace') {\n modelValue.value = [val]\n firstValue.value = val\n }\n else {\n const index = modelValue.value.findIndex(v => condition(v))\n if (index !== -1)\n modelValue.value = modelValue.value.filter((_, i) => i !== index)\n else\n modelValue.value = [...modelValue.value, val]\n }\n }\n // single select\n else {\n if (props.selectionBehavior === 'replace') {\n modelValue.value = { ...val }\n }\n else {\n if (!Array.isArray(modelValue.value) && condition(modelValue.value))\n modelValue.value = undefined as any\n else\n modelValue.value = { ...val }\n }\n }\n return modelValue.value\n }\n\n function handleMultipleReplace(intent: 'first' | 'last' | 'prev' | 'next', currentElement: HTMLElement | Element | null, getItems: () => { ref: HTMLElement, value?: any }[], options: any[]) {\n if (!firstValue?.value || !props.multiple || !Array.isArray(modelValue.value))\n return\n\n const collection = getItems().filter(i => i.ref.dataset.disabled !== '')\n const lastValue = collection.find(i => i.ref === currentElement)?.value\n if (!lastValue)\n return\n\n let value: T[] | null = null\n switch (intent) {\n case 'prev':\n case 'next': {\n value = findValuesBetween(options, firstValue.value, lastValue)\n break\n }\n case 'first': {\n value = findValuesBetween(options, firstValue.value, options?.[0])\n break\n }\n case 'last': {\n value = findValuesBetween(options, firstValue.value, options?.[options.length - 1])\n break\n }\n }\n\n modelValue.value = value\n }\n\n return {\n firstValue,\n onSelectItem,\n handleMultipleReplace,\n }\n}\n"],"names":["ref","findValuesBetween"],"mappings":";;;;;AAIgB,SAAA,oBAAA,CACd,YACA,KACA,EAAA;AACA,EAAA,MAAM,aAAaA,OAAI,EAAA;AAEvB,EAAM,MAAA,YAAA,GAAe,CAAC,GAAA,EAAQ,SAA6C,KAAA;AAEzE,IAAA,IAAI,MAAM,QAAY,IAAA,KAAA,CAAM,OAAQ,CAAA,UAAA,CAAW,KAAK,CAAG,EAAA;AACrD,MAAI,IAAA,KAAA,CAAM,sBAAsB,SAAW,EAAA;AACzC,QAAW,UAAA,CAAA,KAAA,GAAQ,CAAC,GAAG,CAAA;AACvB,QAAA,UAAA,CAAW,KAAQ,GAAA,GAAA;AAAA,OAEhB,MAAA;AACH,QAAA,MAAM,QAAQ,UAAW,CAAA,KAAA,CAAM,UAAU,CAAK,CAAA,KAAA,SAAA,CAAU,CAAC,CAAC,CAAA;AAC1D,QAAA,IAAI,KAAU,KAAA,EAAA;AACZ,UAAW,UAAA,CAAA,KAAA,GAAQ,WAAW,KAAM,CAAA,MAAA,CAAO,CAAC,CAAG,EAAA,CAAA,KAAM,MAAM,KAAK,CAAA;AAAA;AAEhE,UAAA,UAAA,CAAW,KAAQ,GAAA,CAAC,GAAG,UAAA,CAAW,OAAO,GAAG,CAAA;AAAA;AAChD,KAGG,MAAA;AACH,MAAI,IAAA,KAAA,CAAM,sBAAsB,SAAW,EAAA;AACzC,QAAW,UAAA,CAAA,KAAA,GAAQ,EAAE,GAAG,GAAI,EAAA;AAAA,OAEzB,MAAA;AACH,QAAI,IAAA,CAAC,MAAM,OAAQ,CAAA,UAAA,CAAW,KAAK,CAAK,IAAA,SAAA,CAAU,WAAW,KAAK,CAAA;AAChE,UAAA,UAAA,CAAW,KAAQ,GAAA,MAAA;AAAA;AAEnB,UAAW,UAAA,CAAA,KAAA,GAAQ,EAAE,GAAG,GAAI,EAAA;AAAA;AAChC;AAEF,IAAA,OAAO,UAAW,CAAA,KAAA;AAAA,GACpB;AAEA,EAAA,SAAS,qBAAsB,CAAA,MAAA,EAA4C,cAA8C,EAAA,QAAA,EAAqD,OAAgB,EAAA;AAC5L,IAAI,IAAA,CAAC,UAAY,EAAA,KAAA,IAAS,CAAC,KAAA,CAAM,YAAY,CAAC,KAAA,CAAM,OAAQ,CAAA,UAAA,CAAW,KAAK,CAAA;AAC1E,MAAA;AAEF,IAAM,MAAA,UAAA,GAAa,UAAW,CAAA,MAAA,CAAO,OAAK,CAAE,CAAA,GAAA,CAAI,OAAQ,CAAA,QAAA,KAAa,EAAE,CAAA;AACvE,IAAA,MAAM,YAAY,UAAW,CAAA,IAAA,CAAK,OAAK,CAAE,CAAA,GAAA,KAAQ,cAAc,CAAG,EAAA,KAAA;AAClE,IAAA,IAAI,CAAC,SAAA;AACH,MAAA;AAEF,IAAA,IAAI,KAAoB,GAAA,IAAA;AACxB,IAAA,QAAQ,MAAQ;AAAA,MACd,KAAK,MAAA;AAAA,MACL,KAAK,MAAQ,EAAA;AACX,QAAA,KAAA,GAAQC,+BAAkB,CAAA,OAAA,EAAS,UAAW,CAAA,KAAA,EAAO,SAAS,CAAA;AAC9D,QAAA;AAAA;AACF,MACA,KAAK,OAAS,EAAA;AACZ,QAAA,KAAA,GAAQA,gCAAkB,OAAS,EAAA,UAAA,CAAW,KAAO,EAAA,OAAA,GAAU,CAAC,CAAC,CAAA;AACjE,QAAA;AAAA;AACF,MACA,KAAK,MAAQ,EAAA;AACX,QAAQ,KAAA,GAAAA,+BAAA,CAAkB,SAAS,UAAW,CAAA,KAAA,EAAO,UAAU,OAAQ,CAAA,MAAA,GAAS,CAAC,CAAC,CAAA;AAClF,QAAA;AAAA;AACF;AAGF,IAAA,UAAA,CAAW,KAAQ,GAAA,KAAA;AAAA;AAGrB,EAAO,OAAA;AAAA,IACL,UAAA;AAAA,IACA,YAAA;AAAA,IACA;AAAA,GACF;AACF;;;;"}
@@ -11,9 +11,9 @@ function useSelectionBehavior(modelValue, props) {
11
11
  } else {
12
12
  const index = modelValue.value.findIndex((v) => condition(v));
13
13
  if (index !== -1)
14
- modelValue.value.splice(index, 1);
14
+ modelValue.value = modelValue.value.filter((_, i) => i !== index);
15
15
  else
16
- modelValue.value.push(val);
16
+ modelValue.value = [...modelValue.value, val];
17
17
  }
18
18
  } else {
19
19
  if (props.selectionBehavior === "replace") {
@@ -1 +1 @@
1
- {"version":3,"file":"useSelectionBehavior.js","sources":["../../src/shared/useSelectionBehavior.ts"],"sourcesContent":["import { type Ref, type UnwrapNestedRefs, ref } from 'vue'\nimport { findValuesBetween } from './arrays'\n\nexport function useSelectionBehavior<T>(\n modelValue: Ref<T | T[]>,\n props: UnwrapNestedRefs<{ multiple?: boolean, selectionBehavior?: 'toggle' | 'replace' }>,\n) {\n const firstValue = ref()\n\n const onSelectItem = (val: T, condition: (existingValue: T) => boolean) => {\n // multiple select\n if (props.multiple && Array.isArray(modelValue.value)) {\n if (props.selectionBehavior === 'replace') {\n modelValue.value = [val]\n firstValue.value = val\n }\n else {\n const index = modelValue.value.findIndex(v => condition(v))\n if (index !== -1)\n modelValue.value.splice(index, 1)\n else\n modelValue.value.push(val)\n }\n }\n // single select\n else {\n if (props.selectionBehavior === 'replace') {\n modelValue.value = { ...val }\n }\n else {\n if (!Array.isArray(modelValue.value) && condition(modelValue.value))\n modelValue.value = undefined as any\n else\n modelValue.value = { ...val }\n }\n }\n return modelValue.value\n }\n\n function handleMultipleReplace(intent: 'first' | 'last' | 'prev' | 'next', currentElement: HTMLElement | Element | null, getItems: () => { ref: HTMLElement, value?: any }[], options: any[]) {\n if (!firstValue?.value || !props.multiple || !Array.isArray(modelValue.value))\n return\n\n const collection = getItems().filter(i => i.ref.dataset.disabled !== '')\n const lastValue = collection.find(i => i.ref === currentElement)?.value\n if (!lastValue)\n return\n\n let value: T[] | null = null\n switch (intent) {\n case 'prev':\n case 'next': {\n value = findValuesBetween(options, firstValue.value, lastValue)\n break\n }\n case 'first': {\n value = findValuesBetween(options, firstValue.value, options?.[0])\n break\n }\n case 'last': {\n value = findValuesBetween(options, firstValue.value, options?.[options.length - 1])\n break\n }\n }\n\n modelValue.value = value\n }\n\n return {\n firstValue,\n onSelectItem,\n handleMultipleReplace,\n }\n}\n"],"names":[],"mappings":";;;AAGgB,SAAA,oBAAA,CACd,YACA,KACA,EAAA;AACA,EAAA,MAAM,aAAa,GAAI,EAAA;AAEvB,EAAM,MAAA,YAAA,GAAe,CAAC,GAAA,EAAQ,SAA6C,KAAA;AAEzE,IAAA,IAAI,MAAM,QAAY,IAAA,KAAA,CAAM,OAAQ,CAAA,UAAA,CAAW,KAAK,CAAG,EAAA;AACrD,MAAI,IAAA,KAAA,CAAM,sBAAsB,SAAW,EAAA;AACzC,QAAW,UAAA,CAAA,KAAA,GAAQ,CAAC,GAAG,CAAA;AACvB,QAAA,UAAA,CAAW,KAAQ,GAAA,GAAA;AAAA,OAEhB,MAAA;AACH,QAAA,MAAM,QAAQ,UAAW,CAAA,KAAA,CAAM,UAAU,CAAK,CAAA,KAAA,SAAA,CAAU,CAAC,CAAC,CAAA;AAC1D,QAAA,IAAI,KAAU,KAAA,EAAA;AACZ,UAAW,UAAA,CAAA,KAAA,CAAM,MAAO,CAAA,KAAA,EAAO,CAAC,CAAA;AAAA;AAEhC,UAAW,UAAA,CAAA,KAAA,CAAM,KAAK,GAAG,CAAA;AAAA;AAC7B,KAGG,MAAA;AACH,MAAI,IAAA,KAAA,CAAM,sBAAsB,SAAW,EAAA;AACzC,QAAW,UAAA,CAAA,KAAA,GAAQ,EAAE,GAAG,GAAI,EAAA;AAAA,OAEzB,MAAA;AACH,QAAI,IAAA,CAAC,MAAM,OAAQ,CAAA,UAAA,CAAW,KAAK,CAAK,IAAA,SAAA,CAAU,WAAW,KAAK,CAAA;AAChE,UAAA,UAAA,CAAW,KAAQ,GAAA,MAAA;AAAA;AAEnB,UAAW,UAAA,CAAA,KAAA,GAAQ,EAAE,GAAG,GAAI,EAAA;AAAA;AAChC;AAEF,IAAA,OAAO,UAAW,CAAA,KAAA;AAAA,GACpB;AAEA,EAAA,SAAS,qBAAsB,CAAA,MAAA,EAA4C,cAA8C,EAAA,QAAA,EAAqD,OAAgB,EAAA;AAC5L,IAAI,IAAA,CAAC,UAAY,EAAA,KAAA,IAAS,CAAC,KAAA,CAAM,YAAY,CAAC,KAAA,CAAM,OAAQ,CAAA,UAAA,CAAW,KAAK,CAAA;AAC1E,MAAA;AAEF,IAAM,MAAA,UAAA,GAAa,UAAW,CAAA,MAAA,CAAO,OAAK,CAAE,CAAA,GAAA,CAAI,OAAQ,CAAA,QAAA,KAAa,EAAE,CAAA;AACvE,IAAA,MAAM,YAAY,UAAW,CAAA,IAAA,CAAK,OAAK,CAAE,CAAA,GAAA,KAAQ,cAAc,CAAG,EAAA,KAAA;AAClE,IAAA,IAAI,CAAC,SAAA;AACH,MAAA;AAEF,IAAA,IAAI,KAAoB,GAAA,IAAA;AACxB,IAAA,QAAQ,MAAQ;AAAA,MACd,KAAK,MAAA;AAAA,MACL,KAAK,MAAQ,EAAA;AACX,QAAA,KAAA,GAAQ,iBAAkB,CAAA,OAAA,EAAS,UAAW,CAAA,KAAA,EAAO,SAAS,CAAA;AAC9D,QAAA;AAAA;AACF,MACA,KAAK,OAAS,EAAA;AACZ,QAAA,KAAA,GAAQ,kBAAkB,OAAS,EAAA,UAAA,CAAW,KAAO,EAAA,OAAA,GAAU,CAAC,CAAC,CAAA;AACjE,QAAA;AAAA;AACF,MACA,KAAK,MAAQ,EAAA;AACX,QAAQ,KAAA,GAAA,iBAAA,CAAkB,SAAS,UAAW,CAAA,KAAA,EAAO,UAAU,OAAQ,CAAA,MAAA,GAAS,CAAC,CAAC,CAAA;AAClF,QAAA;AAAA;AACF;AAGF,IAAA,UAAA,CAAW,KAAQ,GAAA,KAAA;AAAA;AAGrB,EAAO,OAAA;AAAA,IACL,UAAA;AAAA,IACA,YAAA;AAAA,IACA;AAAA,GACF;AACF;;;;"}
1
+ {"version":3,"file":"useSelectionBehavior.js","sources":["../../src/shared/useSelectionBehavior.ts"],"sourcesContent":["import type { Ref, UnwrapNestedRefs } from 'vue'\nimport { ref } from 'vue'\nimport { findValuesBetween } from './arrays'\n\nexport function useSelectionBehavior<T>(\n modelValue: Ref<T | T[]>,\n props: UnwrapNestedRefs<{ multiple?: boolean, selectionBehavior?: 'toggle' | 'replace' }>,\n) {\n const firstValue = ref()\n\n const onSelectItem = (val: T, condition: (existingValue: T) => boolean) => {\n // multiple select\n if (props.multiple && Array.isArray(modelValue.value)) {\n if (props.selectionBehavior === 'replace') {\n modelValue.value = [val]\n firstValue.value = val\n }\n else {\n const index = modelValue.value.findIndex(v => condition(v))\n if (index !== -1)\n modelValue.value = modelValue.value.filter((_, i) => i !== index)\n else\n modelValue.value = [...modelValue.value, val]\n }\n }\n // single select\n else {\n if (props.selectionBehavior === 'replace') {\n modelValue.value = { ...val }\n }\n else {\n if (!Array.isArray(modelValue.value) && condition(modelValue.value))\n modelValue.value = undefined as any\n else\n modelValue.value = { ...val }\n }\n }\n return modelValue.value\n }\n\n function handleMultipleReplace(intent: 'first' | 'last' | 'prev' | 'next', currentElement: HTMLElement | Element | null, getItems: () => { ref: HTMLElement, value?: any }[], options: any[]) {\n if (!firstValue?.value || !props.multiple || !Array.isArray(modelValue.value))\n return\n\n const collection = getItems().filter(i => i.ref.dataset.disabled !== '')\n const lastValue = collection.find(i => i.ref === currentElement)?.value\n if (!lastValue)\n return\n\n let value: T[] | null = null\n switch (intent) {\n case 'prev':\n case 'next': {\n value = findValuesBetween(options, firstValue.value, lastValue)\n break\n }\n case 'first': {\n value = findValuesBetween(options, firstValue.value, options?.[0])\n break\n }\n case 'last': {\n value = findValuesBetween(options, firstValue.value, options?.[options.length - 1])\n break\n }\n }\n\n modelValue.value = value\n }\n\n return {\n firstValue,\n onSelectItem,\n handleMultipleReplace,\n }\n}\n"],"names":[],"mappings":";;;AAIgB,SAAA,oBAAA,CACd,YACA,KACA,EAAA;AACA,EAAA,MAAM,aAAa,GAAI,EAAA;AAEvB,EAAM,MAAA,YAAA,GAAe,CAAC,GAAA,EAAQ,SAA6C,KAAA;AAEzE,IAAA,IAAI,MAAM,QAAY,IAAA,KAAA,CAAM,OAAQ,CAAA,UAAA,CAAW,KAAK,CAAG,EAAA;AACrD,MAAI,IAAA,KAAA,CAAM,sBAAsB,SAAW,EAAA;AACzC,QAAW,UAAA,CAAA,KAAA,GAAQ,CAAC,GAAG,CAAA;AACvB,QAAA,UAAA,CAAW,KAAQ,GAAA,GAAA;AAAA,OAEhB,MAAA;AACH,QAAA,MAAM,QAAQ,UAAW,CAAA,KAAA,CAAM,UAAU,CAAK,CAAA,KAAA,SAAA,CAAU,CAAC,CAAC,CAAA;AAC1D,QAAA,IAAI,KAAU,KAAA,EAAA;AACZ,UAAW,UAAA,CAAA,KAAA,GAAQ,WAAW,KAAM,CAAA,MAAA,CAAO,CAAC,CAAG,EAAA,CAAA,KAAM,MAAM,KAAK,CAAA;AAAA;AAEhE,UAAA,UAAA,CAAW,KAAQ,GAAA,CAAC,GAAG,UAAA,CAAW,OAAO,GAAG,CAAA;AAAA;AAChD,KAGG,MAAA;AACH,MAAI,IAAA,KAAA,CAAM,sBAAsB,SAAW,EAAA;AACzC,QAAW,UAAA,CAAA,KAAA,GAAQ,EAAE,GAAG,GAAI,EAAA;AAAA,OAEzB,MAAA;AACH,QAAI,IAAA,CAAC,MAAM,OAAQ,CAAA,UAAA,CAAW,KAAK,CAAK,IAAA,SAAA,CAAU,WAAW,KAAK,CAAA;AAChE,UAAA,UAAA,CAAW,KAAQ,GAAA,MAAA;AAAA;AAEnB,UAAW,UAAA,CAAA,KAAA,GAAQ,EAAE,GAAG,GAAI,EAAA;AAAA;AAChC;AAEF,IAAA,OAAO,UAAW,CAAA,KAAA;AAAA,GACpB;AAEA,EAAA,SAAS,qBAAsB,CAAA,MAAA,EAA4C,cAA8C,EAAA,QAAA,EAAqD,OAAgB,EAAA;AAC5L,IAAI,IAAA,CAAC,UAAY,EAAA,KAAA,IAAS,CAAC,KAAA,CAAM,YAAY,CAAC,KAAA,CAAM,OAAQ,CAAA,UAAA,CAAW,KAAK,CAAA;AAC1E,MAAA;AAEF,IAAM,MAAA,UAAA,GAAa,UAAW,CAAA,MAAA,CAAO,OAAK,CAAE,CAAA,GAAA,CAAI,OAAQ,CAAA,QAAA,KAAa,EAAE,CAAA;AACvE,IAAA,MAAM,YAAY,UAAW,CAAA,IAAA,CAAK,OAAK,CAAE,CAAA,GAAA,KAAQ,cAAc,CAAG,EAAA,KAAA;AAClE,IAAA,IAAI,CAAC,SAAA;AACH,MAAA;AAEF,IAAA,IAAI,KAAoB,GAAA,IAAA;AACxB,IAAA,QAAQ,MAAQ;AAAA,MACd,KAAK,MAAA;AAAA,MACL,KAAK,MAAQ,EAAA;AACX,QAAA,KAAA,GAAQ,iBAAkB,CAAA,OAAA,EAAS,UAAW,CAAA,KAAA,EAAO,SAAS,CAAA;AAC9D,QAAA;AAAA;AACF,MACA,KAAK,OAAS,EAAA;AACZ,QAAA,KAAA,GAAQ,kBAAkB,OAAS,EAAA,UAAA,CAAW,KAAO,EAAA,OAAA,GAAU,CAAC,CAAC,CAAA;AACjE,QAAA;AAAA;AACF,MACA,KAAK,MAAQ,EAAA;AACX,QAAQ,KAAA,GAAA,iBAAA,CAAkB,SAAS,UAAW,CAAA,KAAA,EAAO,UAAU,OAAQ,CAAA,MAAA,GAAS,CAAC,CAAC,CAAA;AAClF,QAAA;AAAA;AACF;AAGF,IAAA,UAAA,CAAW,KAAQ,GAAA,KAAA;AAAA;AAGrB,EAAO,OAAA;AAAA,IACL,UAAA;AAAA,IACA,YAAA;AAAA,IACA;AAAA,GACF;AACF;;;;"}
@@ -1,8 +1,8 @@
1
1
  'use strict';
2
2
 
3
3
  const core = require('@vueuse/core');
4
- const vue = require('vue');
5
4
  const ohash = require('ohash');
5
+ const vue = require('vue');
6
6
  const shared_isValueEqualOrExist = require('./isValueEqualOrExist.cjs');
7
7
 
8
8
  function validateProps({ type, defaultValue, modelValue }) {
@@ -1 +1 @@
1
- {"version":3,"file":"useSingleOrMultipleValue.cjs","sources":["../../src/shared/useSingleOrMultipleValue.ts"],"sourcesContent":["import { useVModel } from '@vueuse/core'\nimport { type Ref, computed } from 'vue'\nimport type { AcceptableValue, SingleOrMultipleProps } from './types'\nimport { isEqual } from 'ohash'\nimport { isValueEqualOrExist } from './isValueEqualOrExist'\n\n/**\n * Validates the props and it makes sure that the types are coherent with each other\n *\n * 1. If type, defaultValue, and modelValue are all undefined, throw an error.\n * 2. If modelValue and defaultValue are defined and not of the same type, throw an error.\n * 3. If type is defined:\n * a. If type is 'single' and either modelValue or defaultValue is an array, log an error and return 'multiple'.\n * b. If type is 'multiple' and neither modelValue nor defaultValue is an array, log an error and return 'single'.\n * 4. Return 'multiple' if modelValue is an array, else return 'single'.\n */\nfunction validateProps({ type, defaultValue, modelValue }: SingleOrMultipleProps) {\n const value = modelValue || defaultValue\n const canTypeBeInferred = modelValue !== undefined || defaultValue !== undefined\n\n if (canTypeBeInferred)\n return Array.isArray(value) ? 'multiple' : 'single'\n else\n return type ?? 'single' // always fallback to `single`\n}\n\nfunction getDefaultType({ type, defaultValue, modelValue }: SingleOrMultipleProps) {\n if (type)\n return type\n\n return validateProps({ type, defaultValue, modelValue })\n}\n\nfunction getDefaultValue({ type, defaultValue }: SingleOrMultipleProps) {\n if (defaultValue !== undefined)\n return defaultValue\n\n return (type === 'single') ? undefined : []\n}\n\nexport function useSingleOrMultipleValue<P extends SingleOrMultipleProps, Name extends string>(\n props: P,\n emits: (name: Name, ...args: any[]) => void,\n) {\n const type = computed(() => getDefaultType(props))\n const modelValue = useVModel(props, 'modelValue', emits, {\n defaultValue: getDefaultValue(props),\n passive: (props.modelValue === undefined) as false,\n deep: true,\n }) as Ref<AcceptableValue | AcceptableValue[] | undefined>\n\n function changeModelValue(value: AcceptableValue) {\n if (type.value === 'single') {\n modelValue.value = isEqual(value, modelValue.value) ? undefined : value\n }\n else {\n const modelValueArray = Array.isArray(modelValue.value) ? [...(modelValue.value as AcceptableValue[] || [])] : [modelValue.value].filter(Boolean)\n if (isValueEqualOrExist(modelValueArray, value)) {\n const index = modelValueArray.findIndex(i => isEqual(i, value))\n modelValueArray.splice(index, 1)\n }\n else {\n modelValueArray.push(value)\n }\n modelValue.value = modelValueArray\n }\n }\n\n const isSingle = computed(() => type.value === 'single')\n\n return {\n modelValue,\n changeModelValue,\n isSingle,\n }\n}\n"],"names":["computed","useVModel","isEqual","isValueEqualOrExist"],"mappings":";;;;;;;AAgBA,SAAS,aAAc,CAAA,EAAE,IAAM,EAAA,YAAA,EAAc,YAAqC,EAAA;AAChF,EAAA,MAAM,QAAQ,UAAc,IAAA,YAAA;AAC5B,EAAM,MAAA,iBAAA,GAAoB,UAAe,KAAA,MAAA,IAAa,YAAiB,KAAA,MAAA;AAEvE,EAAI,IAAA,iBAAA;AACF,IAAA,OAAO,KAAM,CAAA,OAAA,CAAQ,KAAK,CAAA,GAAI,UAAa,GAAA,QAAA;AAAA;AAE3C,IAAA,OAAO,IAAQ,IAAA,QAAA;AACnB;AAEA,SAAS,cAAe,CAAA,EAAE,IAAM,EAAA,YAAA,EAAc,YAAqC,EAAA;AACjF,EAAI,IAAA,IAAA;AACF,IAAO,OAAA,IAAA;AAET,EAAA,OAAO,aAAc,CAAA,EAAE,IAAM,EAAA,YAAA,EAAc,YAAY,CAAA;AACzD;AAEA,SAAS,eAAgB,CAAA,EAAE,IAAM,EAAA,YAAA,EAAuC,EAAA;AACtE,EAAA,IAAI,YAAiB,KAAA,MAAA;AACnB,IAAO,OAAA,YAAA;AAET,EAAQ,OAAA,IAAA,KAAS,QAAY,GAAA,MAAA,GAAY,EAAC;AAC5C;AAEgB,SAAA,wBAAA,CACd,OACA,KACA,EAAA;AACA,EAAA,MAAM,IAAO,GAAAA,YAAA,CAAS,MAAM,cAAA,CAAe,KAAK,CAAC,CAAA;AACjD,EAAA,MAAM,UAAa,GAAAC,cAAA,CAAU,KAAO,EAAA,YAAA,EAAc,KAAO,EAAA;AAAA,IACvD,YAAA,EAAc,gBAAgB,KAAK,CAAA;AAAA,IACnC,OAAA,EAAU,MAAM,UAAe,KAAA,MAAA;AAAA,IAC/B,IAAM,EAAA;AAAA,GACP,CAAA;AAED,EAAA,SAAS,iBAAiB,KAAwB,EAAA;AAChD,IAAI,IAAA,IAAA,CAAK,UAAU,QAAU,EAAA;AAC3B,MAAA,UAAA,CAAW,QAAQC,aAAQ,CAAA,KAAA,EAAO,UAAW,CAAA,KAAK,IAAI,MAAY,GAAA,KAAA;AAAA,KAE/D,MAAA;AACH,MAAA,MAAM,kBAAkB,KAAM,CAAA,OAAA,CAAQ,WAAW,KAAK,CAAA,GAAI,CAAC,GAAI,UAAA,CAAW,KAA8B,IAAA,EAAG,CAAI,GAAA,CAAC,WAAW,KAAK,CAAA,CAAE,OAAO,OAAO,CAAA;AAChJ,MAAI,IAAAC,8CAAA,CAAoB,eAAiB,EAAA,KAAK,CAAG,EAAA;AAC/C,QAAA,MAAM,QAAQ,eAAgB,CAAA,SAAA,CAAU,OAAKD,aAAQ,CAAA,CAAA,EAAG,KAAK,CAAC,CAAA;AAC9D,QAAgB,eAAA,CAAA,MAAA,CAAO,OAAO,CAAC,CAAA;AAAA,OAE5B,MAAA;AACH,QAAA,eAAA,CAAgB,KAAK,KAAK,CAAA;AAAA;AAE5B,MAAA,UAAA,CAAW,KAAQ,GAAA,eAAA;AAAA;AACrB;AAGF,EAAA,MAAM,QAAW,GAAAF,YAAA,CAAS,MAAM,IAAA,CAAK,UAAU,QAAQ,CAAA;AAEvD,EAAO,OAAA;AAAA,IACL,UAAA;AAAA,IACA,gBAAA;AAAA,IACA;AAAA,GACF;AACF;;;;"}
1
+ {"version":3,"file":"useSingleOrMultipleValue.cjs","sources":["../../src/shared/useSingleOrMultipleValue.ts"],"sourcesContent":["import type { Ref } from 'vue'\nimport type { AcceptableValue, SingleOrMultipleProps } from './types'\nimport { useVModel } from '@vueuse/core'\nimport { isEqual } from 'ohash'\nimport { computed } from 'vue'\nimport { isValueEqualOrExist } from './isValueEqualOrExist'\n\n/**\n * Validates the props and it makes sure that the types are coherent with each other\n *\n * 1. If type, defaultValue, and modelValue are all undefined, throw an error.\n * 2. If modelValue and defaultValue are defined and not of the same type, throw an error.\n * 3. If type is defined:\n * a. If type is 'single' and either modelValue or defaultValue is an array, log an error and return 'multiple'.\n * b. If type is 'multiple' and neither modelValue nor defaultValue is an array, log an error and return 'single'.\n * 4. Return 'multiple' if modelValue is an array, else return 'single'.\n */\nfunction validateProps({ type, defaultValue, modelValue }: SingleOrMultipleProps) {\n const value = modelValue || defaultValue\n const canTypeBeInferred = modelValue !== undefined || defaultValue !== undefined\n\n if (canTypeBeInferred)\n return Array.isArray(value) ? 'multiple' : 'single'\n else\n return type ?? 'single' // always fallback to `single`\n}\n\nfunction getDefaultType({ type, defaultValue, modelValue }: SingleOrMultipleProps) {\n if (type)\n return type\n\n return validateProps({ type, defaultValue, modelValue })\n}\n\nfunction getDefaultValue({ type, defaultValue }: SingleOrMultipleProps) {\n if (defaultValue !== undefined)\n return defaultValue\n\n return (type === 'single') ? undefined : []\n}\n\nexport function useSingleOrMultipleValue<P extends SingleOrMultipleProps, Name extends string>(\n props: P,\n emits: (name: Name, ...args: any[]) => void,\n) {\n const type = computed(() => getDefaultType(props))\n const modelValue = useVModel(props, 'modelValue', emits, {\n defaultValue: getDefaultValue(props),\n passive: (props.modelValue === undefined) as false,\n deep: true,\n }) as Ref<AcceptableValue | AcceptableValue[] | undefined>\n\n function changeModelValue(value: AcceptableValue) {\n if (type.value === 'single') {\n modelValue.value = isEqual(value, modelValue.value) ? undefined : value\n }\n else {\n const modelValueArray = Array.isArray(modelValue.value) ? [...(modelValue.value as AcceptableValue[] || [])] : [modelValue.value].filter(Boolean)\n if (isValueEqualOrExist(modelValueArray, value)) {\n const index = modelValueArray.findIndex(i => isEqual(i, value))\n modelValueArray.splice(index, 1)\n }\n else {\n modelValueArray.push(value)\n }\n modelValue.value = modelValueArray\n }\n }\n\n const isSingle = computed(() => type.value === 'single')\n\n return {\n modelValue,\n changeModelValue,\n isSingle,\n }\n}\n"],"names":["computed","useVModel","isEqual","isValueEqualOrExist"],"mappings":";;;;;;;AAiBA,SAAS,aAAc,CAAA,EAAE,IAAM,EAAA,YAAA,EAAc,YAAqC,EAAA;AAChF,EAAA,MAAM,QAAQ,UAAc,IAAA,YAAA;AAC5B,EAAM,MAAA,iBAAA,GAAoB,UAAe,KAAA,MAAA,IAAa,YAAiB,KAAA,MAAA;AAEvE,EAAI,IAAA,iBAAA;AACF,IAAA,OAAO,KAAM,CAAA,OAAA,CAAQ,KAAK,CAAA,GAAI,UAAa,GAAA,QAAA;AAAA;AAE3C,IAAA,OAAO,IAAQ,IAAA,QAAA;AACnB;AAEA,SAAS,cAAe,CAAA,EAAE,IAAM,EAAA,YAAA,EAAc,YAAqC,EAAA;AACjF,EAAI,IAAA,IAAA;AACF,IAAO,OAAA,IAAA;AAET,EAAA,OAAO,aAAc,CAAA,EAAE,IAAM,EAAA,YAAA,EAAc,YAAY,CAAA;AACzD;AAEA,SAAS,eAAgB,CAAA,EAAE,IAAM,EAAA,YAAA,EAAuC,EAAA;AACtE,EAAA,IAAI,YAAiB,KAAA,MAAA;AACnB,IAAO,OAAA,YAAA;AAET,EAAQ,OAAA,IAAA,KAAS,QAAY,GAAA,MAAA,GAAY,EAAC;AAC5C;AAEgB,SAAA,wBAAA,CACd,OACA,KACA,EAAA;AACA,EAAA,MAAM,IAAO,GAAAA,YAAA,CAAS,MAAM,cAAA,CAAe,KAAK,CAAC,CAAA;AACjD,EAAA,MAAM,UAAa,GAAAC,cAAA,CAAU,KAAO,EAAA,YAAA,EAAc,KAAO,EAAA;AAAA,IACvD,YAAA,EAAc,gBAAgB,KAAK,CAAA;AAAA,IACnC,OAAA,EAAU,MAAM,UAAe,KAAA,MAAA;AAAA,IAC/B,IAAM,EAAA;AAAA,GACP,CAAA;AAED,EAAA,SAAS,iBAAiB,KAAwB,EAAA;AAChD,IAAI,IAAA,IAAA,CAAK,UAAU,QAAU,EAAA;AAC3B,MAAA,UAAA,CAAW,QAAQC,aAAQ,CAAA,KAAA,EAAO,UAAW,CAAA,KAAK,IAAI,MAAY,GAAA,KAAA;AAAA,KAE/D,MAAA;AACH,MAAA,MAAM,kBAAkB,KAAM,CAAA,OAAA,CAAQ,WAAW,KAAK,CAAA,GAAI,CAAC,GAAI,UAAA,CAAW,KAA8B,IAAA,EAAG,CAAI,GAAA,CAAC,WAAW,KAAK,CAAA,CAAE,OAAO,OAAO,CAAA;AAChJ,MAAI,IAAAC,8CAAA,CAAoB,eAAiB,EAAA,KAAK,CAAG,EAAA;AAC/C,QAAA,MAAM,QAAQ,eAAgB,CAAA,SAAA,CAAU,OAAKD,aAAQ,CAAA,CAAA,EAAG,KAAK,CAAC,CAAA;AAC9D,QAAgB,eAAA,CAAA,MAAA,CAAO,OAAO,CAAC,CAAA;AAAA,OAE5B,MAAA;AACH,QAAA,eAAA,CAAgB,KAAK,KAAK,CAAA;AAAA;AAE5B,MAAA,UAAA,CAAW,KAAQ,GAAA,eAAA;AAAA;AACrB;AAGF,EAAA,MAAM,QAAW,GAAAF,YAAA,CAAS,MAAM,IAAA,CAAK,UAAU,QAAQ,CAAA;AAEvD,EAAO,OAAA;AAAA,IACL,UAAA;AAAA,IACA,gBAAA;AAAA,IACA;AAAA,GACF;AACF;;;;"}
@@ -1,6 +1,6 @@
1
1
  import { useVModel } from '@vueuse/core';
2
- import { computed } from 'vue';
3
2
  import { isEqual } from 'ohash';
3
+ import { computed } from 'vue';
4
4
  import { i as isValueEqualOrExist } from './isValueEqualOrExist.js';
5
5
 
6
6
  function validateProps({ type, defaultValue, modelValue }) {
@@ -1 +1 @@
1
- {"version":3,"file":"useSingleOrMultipleValue.js","sources":["../../src/shared/useSingleOrMultipleValue.ts"],"sourcesContent":["import { useVModel } from '@vueuse/core'\nimport { type Ref, computed } from 'vue'\nimport type { AcceptableValue, SingleOrMultipleProps } from './types'\nimport { isEqual } from 'ohash'\nimport { isValueEqualOrExist } from './isValueEqualOrExist'\n\n/**\n * Validates the props and it makes sure that the types are coherent with each other\n *\n * 1. If type, defaultValue, and modelValue are all undefined, throw an error.\n * 2. If modelValue and defaultValue are defined and not of the same type, throw an error.\n * 3. If type is defined:\n * a. If type is 'single' and either modelValue or defaultValue is an array, log an error and return 'multiple'.\n * b. If type is 'multiple' and neither modelValue nor defaultValue is an array, log an error and return 'single'.\n * 4. Return 'multiple' if modelValue is an array, else return 'single'.\n */\nfunction validateProps({ type, defaultValue, modelValue }: SingleOrMultipleProps) {\n const value = modelValue || defaultValue\n const canTypeBeInferred = modelValue !== undefined || defaultValue !== undefined\n\n if (canTypeBeInferred)\n return Array.isArray(value) ? 'multiple' : 'single'\n else\n return type ?? 'single' // always fallback to `single`\n}\n\nfunction getDefaultType({ type, defaultValue, modelValue }: SingleOrMultipleProps) {\n if (type)\n return type\n\n return validateProps({ type, defaultValue, modelValue })\n}\n\nfunction getDefaultValue({ type, defaultValue }: SingleOrMultipleProps) {\n if (defaultValue !== undefined)\n return defaultValue\n\n return (type === 'single') ? undefined : []\n}\n\nexport function useSingleOrMultipleValue<P extends SingleOrMultipleProps, Name extends string>(\n props: P,\n emits: (name: Name, ...args: any[]) => void,\n) {\n const type = computed(() => getDefaultType(props))\n const modelValue = useVModel(props, 'modelValue', emits, {\n defaultValue: getDefaultValue(props),\n passive: (props.modelValue === undefined) as false,\n deep: true,\n }) as Ref<AcceptableValue | AcceptableValue[] | undefined>\n\n function changeModelValue(value: AcceptableValue) {\n if (type.value === 'single') {\n modelValue.value = isEqual(value, modelValue.value) ? undefined : value\n }\n else {\n const modelValueArray = Array.isArray(modelValue.value) ? [...(modelValue.value as AcceptableValue[] || [])] : [modelValue.value].filter(Boolean)\n if (isValueEqualOrExist(modelValueArray, value)) {\n const index = modelValueArray.findIndex(i => isEqual(i, value))\n modelValueArray.splice(index, 1)\n }\n else {\n modelValueArray.push(value)\n }\n modelValue.value = modelValueArray\n }\n }\n\n const isSingle = computed(() => type.value === 'single')\n\n return {\n modelValue,\n changeModelValue,\n isSingle,\n }\n}\n"],"names":[],"mappings":";;;;;AAgBA,SAAS,aAAc,CAAA,EAAE,IAAM,EAAA,YAAA,EAAc,YAAqC,EAAA;AAChF,EAAA,MAAM,QAAQ,UAAc,IAAA,YAAA;AAC5B,EAAM,MAAA,iBAAA,GAAoB,UAAe,KAAA,MAAA,IAAa,YAAiB,KAAA,MAAA;AAEvE,EAAI,IAAA,iBAAA;AACF,IAAA,OAAO,KAAM,CAAA,OAAA,CAAQ,KAAK,CAAA,GAAI,UAAa,GAAA,QAAA;AAAA;AAE3C,IAAA,OAAO,IAAQ,IAAA,QAAA;AACnB;AAEA,SAAS,cAAe,CAAA,EAAE,IAAM,EAAA,YAAA,EAAc,YAAqC,EAAA;AACjF,EAAI,IAAA,IAAA;AACF,IAAO,OAAA,IAAA;AAET,EAAA,OAAO,aAAc,CAAA,EAAE,IAAM,EAAA,YAAA,EAAc,YAAY,CAAA;AACzD;AAEA,SAAS,eAAgB,CAAA,EAAE,IAAM,EAAA,YAAA,EAAuC,EAAA;AACtE,EAAA,IAAI,YAAiB,KAAA,MAAA;AACnB,IAAO,OAAA,YAAA;AAET,EAAQ,OAAA,IAAA,KAAS,QAAY,GAAA,MAAA,GAAY,EAAC;AAC5C;AAEgB,SAAA,wBAAA,CACd,OACA,KACA,EAAA;AACA,EAAA,MAAM,IAAO,GAAA,QAAA,CAAS,MAAM,cAAA,CAAe,KAAK,CAAC,CAAA;AACjD,EAAA,MAAM,UAAa,GAAA,SAAA,CAAU,KAAO,EAAA,YAAA,EAAc,KAAO,EAAA;AAAA,IACvD,YAAA,EAAc,gBAAgB,KAAK,CAAA;AAAA,IACnC,OAAA,EAAU,MAAM,UAAe,KAAA,MAAA;AAAA,IAC/B,IAAM,EAAA;AAAA,GACP,CAAA;AAED,EAAA,SAAS,iBAAiB,KAAwB,EAAA;AAChD,IAAI,IAAA,IAAA,CAAK,UAAU,QAAU,EAAA;AAC3B,MAAA,UAAA,CAAW,QAAQ,OAAQ,CAAA,KAAA,EAAO,UAAW,CAAA,KAAK,IAAI,MAAY,GAAA,KAAA;AAAA,KAE/D,MAAA;AACH,MAAA,MAAM,kBAAkB,KAAM,CAAA,OAAA,CAAQ,WAAW,KAAK,CAAA,GAAI,CAAC,GAAI,UAAA,CAAW,KAA8B,IAAA,EAAG,CAAI,GAAA,CAAC,WAAW,KAAK,CAAA,CAAE,OAAO,OAAO,CAAA;AAChJ,MAAI,IAAA,mBAAA,CAAoB,eAAiB,EAAA,KAAK,CAAG,EAAA;AAC/C,QAAA,MAAM,QAAQ,eAAgB,CAAA,SAAA,CAAU,OAAK,OAAQ,CAAA,CAAA,EAAG,KAAK,CAAC,CAAA;AAC9D,QAAgB,eAAA,CAAA,MAAA,CAAO,OAAO,CAAC,CAAA;AAAA,OAE5B,MAAA;AACH,QAAA,eAAA,CAAgB,KAAK,KAAK,CAAA;AAAA;AAE5B,MAAA,UAAA,CAAW,KAAQ,GAAA,eAAA;AAAA;AACrB;AAGF,EAAA,MAAM,QAAW,GAAA,QAAA,CAAS,MAAM,IAAA,CAAK,UAAU,QAAQ,CAAA;AAEvD,EAAO,OAAA;AAAA,IACL,UAAA;AAAA,IACA,gBAAA;AAAA,IACA;AAAA,GACF;AACF;;;;"}
1
+ {"version":3,"file":"useSingleOrMultipleValue.js","sources":["../../src/shared/useSingleOrMultipleValue.ts"],"sourcesContent":["import type { Ref } from 'vue'\nimport type { AcceptableValue, SingleOrMultipleProps } from './types'\nimport { useVModel } from '@vueuse/core'\nimport { isEqual } from 'ohash'\nimport { computed } from 'vue'\nimport { isValueEqualOrExist } from './isValueEqualOrExist'\n\n/**\n * Validates the props and it makes sure that the types are coherent with each other\n *\n * 1. If type, defaultValue, and modelValue are all undefined, throw an error.\n * 2. If modelValue and defaultValue are defined and not of the same type, throw an error.\n * 3. If type is defined:\n * a. If type is 'single' and either modelValue or defaultValue is an array, log an error and return 'multiple'.\n * b. If type is 'multiple' and neither modelValue nor defaultValue is an array, log an error and return 'single'.\n * 4. Return 'multiple' if modelValue is an array, else return 'single'.\n */\nfunction validateProps({ type, defaultValue, modelValue }: SingleOrMultipleProps) {\n const value = modelValue || defaultValue\n const canTypeBeInferred = modelValue !== undefined || defaultValue !== undefined\n\n if (canTypeBeInferred)\n return Array.isArray(value) ? 'multiple' : 'single'\n else\n return type ?? 'single' // always fallback to `single`\n}\n\nfunction getDefaultType({ type, defaultValue, modelValue }: SingleOrMultipleProps) {\n if (type)\n return type\n\n return validateProps({ type, defaultValue, modelValue })\n}\n\nfunction getDefaultValue({ type, defaultValue }: SingleOrMultipleProps) {\n if (defaultValue !== undefined)\n return defaultValue\n\n return (type === 'single') ? undefined : []\n}\n\nexport function useSingleOrMultipleValue<P extends SingleOrMultipleProps, Name extends string>(\n props: P,\n emits: (name: Name, ...args: any[]) => void,\n) {\n const type = computed(() => getDefaultType(props))\n const modelValue = useVModel(props, 'modelValue', emits, {\n defaultValue: getDefaultValue(props),\n passive: (props.modelValue === undefined) as false,\n deep: true,\n }) as Ref<AcceptableValue | AcceptableValue[] | undefined>\n\n function changeModelValue(value: AcceptableValue) {\n if (type.value === 'single') {\n modelValue.value = isEqual(value, modelValue.value) ? undefined : value\n }\n else {\n const modelValueArray = Array.isArray(modelValue.value) ? [...(modelValue.value as AcceptableValue[] || [])] : [modelValue.value].filter(Boolean)\n if (isValueEqualOrExist(modelValueArray, value)) {\n const index = modelValueArray.findIndex(i => isEqual(i, value))\n modelValueArray.splice(index, 1)\n }\n else {\n modelValueArray.push(value)\n }\n modelValue.value = modelValueArray\n }\n }\n\n const isSingle = computed(() => type.value === 'single')\n\n return {\n modelValue,\n changeModelValue,\n isSingle,\n }\n}\n"],"names":[],"mappings":";;;;;AAiBA,SAAS,aAAc,CAAA,EAAE,IAAM,EAAA,YAAA,EAAc,YAAqC,EAAA;AAChF,EAAA,MAAM,QAAQ,UAAc,IAAA,YAAA;AAC5B,EAAM,MAAA,iBAAA,GAAoB,UAAe,KAAA,MAAA,IAAa,YAAiB,KAAA,MAAA;AAEvE,EAAI,IAAA,iBAAA;AACF,IAAA,OAAO,KAAM,CAAA,OAAA,CAAQ,KAAK,CAAA,GAAI,UAAa,GAAA,QAAA;AAAA;AAE3C,IAAA,OAAO,IAAQ,IAAA,QAAA;AACnB;AAEA,SAAS,cAAe,CAAA,EAAE,IAAM,EAAA,YAAA,EAAc,YAAqC,EAAA;AACjF,EAAI,IAAA,IAAA;AACF,IAAO,OAAA,IAAA;AAET,EAAA,OAAO,aAAc,CAAA,EAAE,IAAM,EAAA,YAAA,EAAc,YAAY,CAAA;AACzD;AAEA,SAAS,eAAgB,CAAA,EAAE,IAAM,EAAA,YAAA,EAAuC,EAAA;AACtE,EAAA,IAAI,YAAiB,KAAA,MAAA;AACnB,IAAO,OAAA,YAAA;AAET,EAAQ,OAAA,IAAA,KAAS,QAAY,GAAA,MAAA,GAAY,EAAC;AAC5C;AAEgB,SAAA,wBAAA,CACd,OACA,KACA,EAAA;AACA,EAAA,MAAM,IAAO,GAAA,QAAA,CAAS,MAAM,cAAA,CAAe,KAAK,CAAC,CAAA;AACjD,EAAA,MAAM,UAAa,GAAA,SAAA,CAAU,KAAO,EAAA,YAAA,EAAc,KAAO,EAAA;AAAA,IACvD,YAAA,EAAc,gBAAgB,KAAK,CAAA;AAAA,IACnC,OAAA,EAAU,MAAM,UAAe,KAAA,MAAA;AAAA,IAC/B,IAAM,EAAA;AAAA,GACP,CAAA;AAED,EAAA,SAAS,iBAAiB,KAAwB,EAAA;AAChD,IAAI,IAAA,IAAA,CAAK,UAAU,QAAU,EAAA;AAC3B,MAAA,UAAA,CAAW,QAAQ,OAAQ,CAAA,KAAA,EAAO,UAAW,CAAA,KAAK,IAAI,MAAY,GAAA,KAAA;AAAA,KAE/D,MAAA;AACH,MAAA,MAAM,kBAAkB,KAAM,CAAA,OAAA,CAAQ,WAAW,KAAK,CAAA,GAAI,CAAC,GAAI,UAAA,CAAW,KAA8B,IAAA,EAAG,CAAI,GAAA,CAAC,WAAW,KAAK,CAAA,CAAE,OAAO,OAAO,CAAA;AAChJ,MAAI,IAAA,mBAAA,CAAoB,eAAiB,EAAA,KAAK,CAAG,EAAA;AAC/C,QAAA,MAAM,QAAQ,eAAgB,CAAA,SAAA,CAAU,OAAK,OAAQ,CAAA,CAAA,EAAG,KAAK,CAAC,CAAA;AAC9D,QAAgB,eAAA,CAAA,MAAA,CAAO,OAAO,CAAC,CAAA;AAAA,OAE5B,MAAA;AACH,QAAA,eAAA,CAAgB,KAAK,KAAK,CAAA;AAAA;AAE5B,MAAA,UAAA,CAAW,KAAQ,GAAA,eAAA;AAAA;AACrB;AAGF,EAAA,MAAM,QAAW,GAAA,QAAA,CAAS,MAAM,IAAA,CAAK,UAAU,QAAQ,CAAA;AAEvD,EAAO,OAAA;AAAA,IACL,UAAA;AAAA,IACA,gBAAA;AAAA,IACA;AAAA,GACF;AACF;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"useSize.cjs","sources":["../../src/shared/useSize.ts"],"sourcesContent":["import { type MaybeElementRef, unrefElement } from '@vueuse/core'\nimport { computed, onMounted, ref } from 'vue'\n\nexport function useSize(element: MaybeElementRef) {\n const size = ref<{ width: number, height: number }>()\n const width = computed(() => size.value?.width ?? 0)\n const height = computed(() => size.value?.height ?? 0)\n\n onMounted(() => {\n const el = unrefElement(element) as HTMLElement\n if (el) {\n // provide size as early as possible\n size.value = { width: el.offsetWidth, height: el.offsetHeight }\n\n const resizeObserver = new ResizeObserver((entries) => {\n if (!Array.isArray(entries))\n return\n\n // Since we only observe the one element, we don't need to loop over the\n // array\n if (!entries.length)\n return\n\n const entry = entries[0]\n let width: number\n let height: number\n\n if ('borderBoxSize' in entry) {\n const borderSizeEntry = entry.borderBoxSize\n // iron out differences between browsers\n const borderSize = Array.isArray(borderSizeEntry)\n ? borderSizeEntry[0]\n : borderSizeEntry\n width = borderSize.inlineSize\n height = borderSize.blockSize\n }\n else {\n // for browsers that don't support `borderBoxSize`\n // we calculate it ourselves to get the correct border box.\n width = el.offsetWidth\n height = el.offsetHeight\n }\n\n // temporary disable width/height from resize observer. borderSizeEntry seems to be incorrect\n size.value = { width, height }\n })\n\n resizeObserver.observe(el, { box: 'border-box' })\n\n return () => resizeObserver.unobserve(el)\n }\n else {\n // We only want to reset to `undefined` when the element becomes `null`,\n // not if it changes to another element.\n size.value = undefined\n }\n })\n\n return {\n width,\n height,\n }\n}\n"],"names":["ref","computed","onMounted","unrefElement","width","height"],"mappings":";;;;;AAGO,SAAS,QAAQ,OAA0B,EAAA;AAChD,EAAA,MAAM,OAAOA,OAAuC,EAAA;AACpD,EAAA,MAAM,QAAQC,YAAS,CAAA,MAAM,IAAK,CAAA,KAAA,EAAO,SAAS,CAAC,CAAA;AACnD,EAAA,MAAM,SAASA,YAAS,CAAA,MAAM,IAAK,CAAA,KAAA,EAAO,UAAU,CAAC,CAAA;AAErD,EAAAC,aAAA,CAAU,MAAM;AACd,IAAM,MAAA,EAAA,GAAKC,kBAAa,OAAO,CAAA;AAC/B,IAAA,IAAI,EAAI,EAAA;AAEN,MAAA,IAAA,CAAK,QAAQ,EAAE,KAAA,EAAO,GAAG,WAAa,EAAA,MAAA,EAAQ,GAAG,YAAa,EAAA;AAE9D,MAAA,MAAM,cAAiB,GAAA,IAAI,cAAe,CAAA,CAAC,OAAY,KAAA;AACrD,QAAI,IAAA,CAAC,KAAM,CAAA,OAAA,CAAQ,OAAO,CAAA;AACxB,UAAA;AAIF,QAAA,IAAI,CAAC,OAAQ,CAAA,MAAA;AACX,UAAA;AAEF,QAAM,MAAA,KAAA,GAAQ,QAAQ,CAAC,CAAA;AACvB,QAAIC,IAAAA,MAAAA;AACJ,QAAIC,IAAAA,OAAAA;AAEJ,QAAA,IAAI,mBAAmB,KAAO,EAAA;AAC5B,UAAA,MAAM,kBAAkB,KAAM,CAAA,aAAA;AAE9B,UAAA,MAAM,aAAa,KAAM,CAAA,OAAA,CAAQ,eAAe,CAC5C,GAAA,eAAA,CAAgB,CAAC,CACjB,GAAA,eAAA;AACJ,UAAAD,SAAQ,UAAW,CAAA,UAAA;AACnB,UAAAC,UAAS,UAAW,CAAA,SAAA;AAAA,SAEjB,MAAA;AAGH,UAAAD,SAAQ,EAAG,CAAA,WAAA;AACX,UAAAC,UAAS,EAAG,CAAA,YAAA;AAAA;AAId,QAAA,IAAA,CAAK,KAAQ,GAAA,EAAE,KAAAD,EAAAA,MAAAA,EAAO,QAAAC,OAAO,EAAA;AAAA,OAC9B,CAAA;AAED,MAAA,cAAA,CAAe,OAAQ,CAAA,EAAA,EAAI,EAAE,GAAA,EAAK,cAAc,CAAA;AAEhD,MAAO,OAAA,MAAM,cAAe,CAAA,SAAA,CAAU,EAAE,CAAA;AAAA,KAErC,MAAA;AAGH,MAAA,IAAA,CAAK,KAAQ,GAAA,MAAA;AAAA;AACf,GACD,CAAA;AAED,EAAO,OAAA;AAAA,IACL,KAAA;AAAA,IACA;AAAA,GACF;AACF;;;;"}
1
+ {"version":3,"file":"useSize.cjs","sources":["../../src/shared/useSize.ts"],"sourcesContent":["import type { MaybeElementRef } from '@vueuse/core'\nimport { unrefElement } from '@vueuse/core'\nimport { computed, onMounted, ref } from 'vue'\n\nexport function useSize(element: MaybeElementRef) {\n const size = ref<{ width: number, height: number }>()\n const width = computed(() => size.value?.width ?? 0)\n const height = computed(() => size.value?.height ?? 0)\n\n onMounted(() => {\n const el = unrefElement(element) as HTMLElement\n if (el) {\n // provide size as early as possible\n size.value = { width: el.offsetWidth, height: el.offsetHeight }\n\n const resizeObserver = new ResizeObserver((entries) => {\n if (!Array.isArray(entries))\n return\n\n // Since we only observe the one element, we don't need to loop over the\n // array\n if (!entries.length)\n return\n\n const entry = entries[0]\n let width: number\n let height: number\n\n if ('borderBoxSize' in entry) {\n const borderSizeEntry = entry.borderBoxSize\n // iron out differences between browsers\n const borderSize = Array.isArray(borderSizeEntry)\n ? borderSizeEntry[0]\n : borderSizeEntry\n width = borderSize.inlineSize\n height = borderSize.blockSize\n }\n else {\n // for browsers that don't support `borderBoxSize`\n // we calculate it ourselves to get the correct border box.\n width = el.offsetWidth\n height = el.offsetHeight\n }\n\n // temporary disable width/height from resize observer. borderSizeEntry seems to be incorrect\n size.value = { width, height }\n })\n\n resizeObserver.observe(el, { box: 'border-box' })\n\n return () => resizeObserver.unobserve(el)\n }\n else {\n // We only want to reset to `undefined` when the element becomes `null`,\n // not if it changes to another element.\n size.value = undefined\n }\n })\n\n return {\n width,\n height,\n }\n}\n"],"names":["ref","computed","onMounted","unrefElement","width","height"],"mappings":";;;;;AAIO,SAAS,QAAQ,OAA0B,EAAA;AAChD,EAAA,MAAM,OAAOA,OAAuC,EAAA;AACpD,EAAA,MAAM,QAAQC,YAAS,CAAA,MAAM,IAAK,CAAA,KAAA,EAAO,SAAS,CAAC,CAAA;AACnD,EAAA,MAAM,SAASA,YAAS,CAAA,MAAM,IAAK,CAAA,KAAA,EAAO,UAAU,CAAC,CAAA;AAErD,EAAAC,aAAA,CAAU,MAAM;AACd,IAAM,MAAA,EAAA,GAAKC,kBAAa,OAAO,CAAA;AAC/B,IAAA,IAAI,EAAI,EAAA;AAEN,MAAA,IAAA,CAAK,QAAQ,EAAE,KAAA,EAAO,GAAG,WAAa,EAAA,MAAA,EAAQ,GAAG,YAAa,EAAA;AAE9D,MAAA,MAAM,cAAiB,GAAA,IAAI,cAAe,CAAA,CAAC,OAAY,KAAA;AACrD,QAAI,IAAA,CAAC,KAAM,CAAA,OAAA,CAAQ,OAAO,CAAA;AACxB,UAAA;AAIF,QAAA,IAAI,CAAC,OAAQ,CAAA,MAAA;AACX,UAAA;AAEF,QAAM,MAAA,KAAA,GAAQ,QAAQ,CAAC,CAAA;AACvB,QAAIC,IAAAA,MAAAA;AACJ,QAAIC,IAAAA,OAAAA;AAEJ,QAAA,IAAI,mBAAmB,KAAO,EAAA;AAC5B,UAAA,MAAM,kBAAkB,KAAM,CAAA,aAAA;AAE9B,UAAA,MAAM,aAAa,KAAM,CAAA,OAAA,CAAQ,eAAe,CAC5C,GAAA,eAAA,CAAgB,CAAC,CACjB,GAAA,eAAA;AACJ,UAAAD,SAAQ,UAAW,CAAA,UAAA;AACnB,UAAAC,UAAS,UAAW,CAAA,SAAA;AAAA,SAEjB,MAAA;AAGH,UAAAD,SAAQ,EAAG,CAAA,WAAA;AACX,UAAAC,UAAS,EAAG,CAAA,YAAA;AAAA;AAId,QAAA,IAAA,CAAK,KAAQ,GAAA,EAAE,KAAAD,EAAAA,MAAAA,EAAO,QAAAC,OAAO,EAAA;AAAA,OAC9B,CAAA;AAED,MAAA,cAAA,CAAe,OAAQ,CAAA,EAAA,EAAI,EAAE,GAAA,EAAK,cAAc,CAAA;AAEhD,MAAO,OAAA,MAAM,cAAe,CAAA,SAAA,CAAU,EAAE,CAAA;AAAA,KAErC,MAAA;AAGH,MAAA,IAAA,CAAK,KAAQ,GAAA,MAAA;AAAA;AACf,GACD,CAAA;AAED,EAAO,OAAA;AAAA,IACL,KAAA;AAAA,IACA;AAAA,GACF;AACF;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"useSize.js","sources":["../../src/shared/useSize.ts"],"sourcesContent":["import { type MaybeElementRef, unrefElement } from '@vueuse/core'\nimport { computed, onMounted, ref } from 'vue'\n\nexport function useSize(element: MaybeElementRef) {\n const size = ref<{ width: number, height: number }>()\n const width = computed(() => size.value?.width ?? 0)\n const height = computed(() => size.value?.height ?? 0)\n\n onMounted(() => {\n const el = unrefElement(element) as HTMLElement\n if (el) {\n // provide size as early as possible\n size.value = { width: el.offsetWidth, height: el.offsetHeight }\n\n const resizeObserver = new ResizeObserver((entries) => {\n if (!Array.isArray(entries))\n return\n\n // Since we only observe the one element, we don't need to loop over the\n // array\n if (!entries.length)\n return\n\n const entry = entries[0]\n let width: number\n let height: number\n\n if ('borderBoxSize' in entry) {\n const borderSizeEntry = entry.borderBoxSize\n // iron out differences between browsers\n const borderSize = Array.isArray(borderSizeEntry)\n ? borderSizeEntry[0]\n : borderSizeEntry\n width = borderSize.inlineSize\n height = borderSize.blockSize\n }\n else {\n // for browsers that don't support `borderBoxSize`\n // we calculate it ourselves to get the correct border box.\n width = el.offsetWidth\n height = el.offsetHeight\n }\n\n // temporary disable width/height from resize observer. borderSizeEntry seems to be incorrect\n size.value = { width, height }\n })\n\n resizeObserver.observe(el, { box: 'border-box' })\n\n return () => resizeObserver.unobserve(el)\n }\n else {\n // We only want to reset to `undefined` when the element becomes `null`,\n // not if it changes to another element.\n size.value = undefined\n }\n })\n\n return {\n width,\n height,\n }\n}\n"],"names":["width","height"],"mappings":";;;AAGO,SAAS,QAAQ,OAA0B,EAAA;AAChD,EAAA,MAAM,OAAO,GAAuC,EAAA;AACpD,EAAA,MAAM,QAAQ,QAAS,CAAA,MAAM,IAAK,CAAA,KAAA,EAAO,SAAS,CAAC,CAAA;AACnD,EAAA,MAAM,SAAS,QAAS,CAAA,MAAM,IAAK,CAAA,KAAA,EAAO,UAAU,CAAC,CAAA;AAErD,EAAA,SAAA,CAAU,MAAM;AACd,IAAM,MAAA,EAAA,GAAK,aAAa,OAAO,CAAA;AAC/B,IAAA,IAAI,EAAI,EAAA;AAEN,MAAA,IAAA,CAAK,QAAQ,EAAE,KAAA,EAAO,GAAG,WAAa,EAAA,MAAA,EAAQ,GAAG,YAAa,EAAA;AAE9D,MAAA,MAAM,cAAiB,GAAA,IAAI,cAAe,CAAA,CAAC,OAAY,KAAA;AACrD,QAAI,IAAA,CAAC,KAAM,CAAA,OAAA,CAAQ,OAAO,CAAA;AACxB,UAAA;AAIF,QAAA,IAAI,CAAC,OAAQ,CAAA,MAAA;AACX,UAAA;AAEF,QAAM,MAAA,KAAA,GAAQ,QAAQ,CAAC,CAAA;AACvB,QAAIA,IAAAA,MAAAA;AACJ,QAAIC,IAAAA,OAAAA;AAEJ,QAAA,IAAI,mBAAmB,KAAO,EAAA;AAC5B,UAAA,MAAM,kBAAkB,KAAM,CAAA,aAAA;AAE9B,UAAA,MAAM,aAAa,KAAM,CAAA,OAAA,CAAQ,eAAe,CAC5C,GAAA,eAAA,CAAgB,CAAC,CACjB,GAAA,eAAA;AACJ,UAAAD,SAAQ,UAAW,CAAA,UAAA;AACnB,UAAAC,UAAS,UAAW,CAAA,SAAA;AAAA,SAEjB,MAAA;AAGH,UAAAD,SAAQ,EAAG,CAAA,WAAA;AACX,UAAAC,UAAS,EAAG,CAAA,YAAA;AAAA;AAId,QAAA,IAAA,CAAK,KAAQ,GAAA,EAAE,KAAAD,EAAAA,MAAAA,EAAO,QAAAC,OAAO,EAAA;AAAA,OAC9B,CAAA;AAED,MAAA,cAAA,CAAe,OAAQ,CAAA,EAAA,EAAI,EAAE,GAAA,EAAK,cAAc,CAAA;AAEhD,MAAO,OAAA,MAAM,cAAe,CAAA,SAAA,CAAU,EAAE,CAAA;AAAA,KAErC,MAAA;AAGH,MAAA,IAAA,CAAK,KAAQ,GAAA,MAAA;AAAA;AACf,GACD,CAAA;AAED,EAAO,OAAA;AAAA,IACL,KAAA;AAAA,IACA;AAAA,GACF;AACF;;;;"}
1
+ {"version":3,"file":"useSize.js","sources":["../../src/shared/useSize.ts"],"sourcesContent":["import type { MaybeElementRef } from '@vueuse/core'\nimport { unrefElement } from '@vueuse/core'\nimport { computed, onMounted, ref } from 'vue'\n\nexport function useSize(element: MaybeElementRef) {\n const size = ref<{ width: number, height: number }>()\n const width = computed(() => size.value?.width ?? 0)\n const height = computed(() => size.value?.height ?? 0)\n\n onMounted(() => {\n const el = unrefElement(element) as HTMLElement\n if (el) {\n // provide size as early as possible\n size.value = { width: el.offsetWidth, height: el.offsetHeight }\n\n const resizeObserver = new ResizeObserver((entries) => {\n if (!Array.isArray(entries))\n return\n\n // Since we only observe the one element, we don't need to loop over the\n // array\n if (!entries.length)\n return\n\n const entry = entries[0]\n let width: number\n let height: number\n\n if ('borderBoxSize' in entry) {\n const borderSizeEntry = entry.borderBoxSize\n // iron out differences between browsers\n const borderSize = Array.isArray(borderSizeEntry)\n ? borderSizeEntry[0]\n : borderSizeEntry\n width = borderSize.inlineSize\n height = borderSize.blockSize\n }\n else {\n // for browsers that don't support `borderBoxSize`\n // we calculate it ourselves to get the correct border box.\n width = el.offsetWidth\n height = el.offsetHeight\n }\n\n // temporary disable width/height from resize observer. borderSizeEntry seems to be incorrect\n size.value = { width, height }\n })\n\n resizeObserver.observe(el, { box: 'border-box' })\n\n return () => resizeObserver.unobserve(el)\n }\n else {\n // We only want to reset to `undefined` when the element becomes `null`,\n // not if it changes to another element.\n size.value = undefined\n }\n })\n\n return {\n width,\n height,\n }\n}\n"],"names":["width","height"],"mappings":";;;AAIO,SAAS,QAAQ,OAA0B,EAAA;AAChD,EAAA,MAAM,OAAO,GAAuC,EAAA;AACpD,EAAA,MAAM,QAAQ,QAAS,CAAA,MAAM,IAAK,CAAA,KAAA,EAAO,SAAS,CAAC,CAAA;AACnD,EAAA,MAAM,SAAS,QAAS,CAAA,MAAM,IAAK,CAAA,KAAA,EAAO,UAAU,CAAC,CAAA;AAErD,EAAA,SAAA,CAAU,MAAM;AACd,IAAM,MAAA,EAAA,GAAK,aAAa,OAAO,CAAA;AAC/B,IAAA,IAAI,EAAI,EAAA;AAEN,MAAA,IAAA,CAAK,QAAQ,EAAE,KAAA,EAAO,GAAG,WAAa,EAAA,MAAA,EAAQ,GAAG,YAAa,EAAA;AAE9D,MAAA,MAAM,cAAiB,GAAA,IAAI,cAAe,CAAA,CAAC,OAAY,KAAA;AACrD,QAAI,IAAA,CAAC,KAAM,CAAA,OAAA,CAAQ,OAAO,CAAA;AACxB,UAAA;AAIF,QAAA,IAAI,CAAC,OAAQ,CAAA,MAAA;AACX,UAAA;AAEF,QAAM,MAAA,KAAA,GAAQ,QAAQ,CAAC,CAAA;AACvB,QAAIA,IAAAA,MAAAA;AACJ,QAAIC,IAAAA,OAAAA;AAEJ,QAAA,IAAI,mBAAmB,KAAO,EAAA;AAC5B,UAAA,MAAM,kBAAkB,KAAM,CAAA,aAAA;AAE9B,UAAA,MAAM,aAAa,KAAM,CAAA,OAAA,CAAQ,eAAe,CAC5C,GAAA,eAAA,CAAgB,CAAC,CACjB,GAAA,eAAA;AACJ,UAAAD,SAAQ,UAAW,CAAA,UAAA;AACnB,UAAAC,UAAS,UAAW,CAAA,SAAA;AAAA,SAEjB,MAAA;AAGH,UAAAD,SAAQ,EAAG,CAAA,WAAA;AACX,UAAAC,UAAS,EAAG,CAAA,YAAA;AAAA;AAId,QAAA,IAAA,CAAK,KAAQ,GAAA,EAAE,KAAAD,EAAAA,MAAAA,EAAO,QAAAC,OAAO,EAAA;AAAA,OAC9B,CAAA;AAED,MAAA,cAAA,CAAe,OAAQ,CAAA,EAAA,EAAI,EAAE,GAAA,EAAK,cAAc,CAAA;AAEhD,MAAO,OAAA,MAAM,cAAe,CAAA,SAAA,CAAU,EAAE,CAAA;AAAA,KAErC,MAAA;AAGH,MAAA,IAAA,CAAK,KAAQ,GAAA,MAAA;AAAA;AACf,GACD,CAAA;AAED,EAAO,OAAA;AAAA,IACL,KAAA;AAAA,IACA;AAAA,GACF;AACF;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"useStateMachine.cjs","sources":["../../src/shared/useStateMachine.ts"],"sourcesContent":["import { type Ref, ref } from 'vue'\n\ninterface Machine<S> {\n [k: string]: { [k: string]: S }\n}\ntype MachineState<T> = keyof T\ntype MachineEvent<T> = keyof UnionToIntersection<T[keyof T]>\n\n// 🤯 https://fettblog.eu/typescript-union-to-intersection/\ntype UnionToIntersection<T> = (T extends any ? (x: T) => any : never) extends (\n x: infer R\n) => any\n ? R\n : never\n\n/**\n * The `useStateMachine` function is a TypeScript function that creates a state machine and returns the\n * current state and a dispatch function to update the state based on events.\n * @param initialState - The `initialState` parameter is the initial state of the state machine. It\n * represents the starting point of the state machine's state.\n * @param machine - The `machine` parameter is an object that represents a state machine. It should\n * have keys that correspond to the possible states of the machine, and the values should be objects\n * that represent the possible events and their corresponding next states.\n * @returns The `useStateMachine` function returns an object with two properties: `state` and\n * `dispatch`.\n */\nexport function useStateMachine<M>(\n initialState: MachineState<M>,\n machine: M & Machine<MachineState<M>>,\n) {\n const state = ref(initialState) as Ref<MachineState<M>>\n\n function reducer(event: MachineEvent<M>) {\n // @ts-expect-error state.value is keyof M\n const nextState = machine[state.value][event]\n return nextState ?? state.value\n }\n\n const dispatch = (event: MachineEvent<M>) => {\n state.value = reducer(event)\n }\n\n return {\n state,\n dispatch,\n }\n}\n"],"names":["ref"],"mappings":";;;;AA0BgB,SAAA,eAAA,CACd,cACA,OACA,EAAA;AACA,EAAM,MAAA,KAAA,GAAQA,QAAI,YAAY,CAAA;AAE9B,EAAA,SAAS,QAAQ,KAAwB,EAAA;AAEvC,IAAA,MAAM,SAAY,GAAA,OAAA,CAAQ,KAAM,CAAA,KAAK,EAAE,KAAK,CAAA;AAC5C,IAAA,OAAO,aAAa,KAAM,CAAA,KAAA;AAAA;AAG5B,EAAM,MAAA,QAAA,GAAW,CAAC,KAA2B,KAAA;AAC3C,IAAM,KAAA,CAAA,KAAA,GAAQ,QAAQ,KAAK,CAAA;AAAA,GAC7B;AAEA,EAAO,OAAA;AAAA,IACL,KAAA;AAAA,IACA;AAAA,GACF;AACF;;;;"}
1
+ {"version":3,"file":"useStateMachine.cjs","sources":["../../src/shared/useStateMachine.ts"],"sourcesContent":["import type { Ref } from 'vue'\nimport { ref } from 'vue'\n\ninterface Machine<S> {\n [k: string]: { [k: string]: S }\n}\ntype MachineState<T> = keyof T\ntype MachineEvent<T> = keyof UnionToIntersection<T[keyof T]>\n\n// 🤯 https://fettblog.eu/typescript-union-to-intersection/\ntype UnionToIntersection<T> = (T extends any ? (x: T) => any : never) extends (\n x: infer R\n) => any\n ? R\n : never\n\n/**\n * The `useStateMachine` function is a TypeScript function that creates a state machine and returns the\n * current state and a dispatch function to update the state based on events.\n * @param initialState - The `initialState` parameter is the initial state of the state machine. It\n * represents the starting point of the state machine's state.\n * @param machine - The `machine` parameter is an object that represents a state machine. It should\n * have keys that correspond to the possible states of the machine, and the values should be objects\n * that represent the possible events and their corresponding next states.\n * @returns The `useStateMachine` function returns an object with two properties: `state` and\n * `dispatch`.\n */\nexport function useStateMachine<M>(\n initialState: MachineState<M>,\n machine: M & Machine<MachineState<M>>,\n) {\n const state = ref(initialState) as Ref<MachineState<M>>\n\n function reducer(event: MachineEvent<M>) {\n // @ts-expect-error state.value is keyof M\n const nextState = machine[state.value][event]\n return nextState ?? state.value\n }\n\n const dispatch = (event: MachineEvent<M>) => {\n state.value = reducer(event)\n }\n\n return {\n state,\n dispatch,\n }\n}\n"],"names":["ref"],"mappings":";;;;AA2BgB,SAAA,eAAA,CACd,cACA,OACA,EAAA;AACA,EAAM,MAAA,KAAA,GAAQA,QAAI,YAAY,CAAA;AAE9B,EAAA,SAAS,QAAQ,KAAwB,EAAA;AAEvC,IAAA,MAAM,SAAY,GAAA,OAAA,CAAQ,KAAM,CAAA,KAAK,EAAE,KAAK,CAAA;AAC5C,IAAA,OAAO,aAAa,KAAM,CAAA,KAAA;AAAA;AAG5B,EAAM,MAAA,QAAA,GAAW,CAAC,KAA2B,KAAA;AAC3C,IAAM,KAAA,CAAA,KAAA,GAAQ,QAAQ,KAAK,CAAA;AAAA,GAC7B;AAEA,EAAO,OAAA;AAAA,IACL,KAAA;AAAA,IACA;AAAA,GACF;AACF;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"useStateMachine.js","sources":["../../src/shared/useStateMachine.ts"],"sourcesContent":["import { type Ref, ref } from 'vue'\n\ninterface Machine<S> {\n [k: string]: { [k: string]: S }\n}\ntype MachineState<T> = keyof T\ntype MachineEvent<T> = keyof UnionToIntersection<T[keyof T]>\n\n// 🤯 https://fettblog.eu/typescript-union-to-intersection/\ntype UnionToIntersection<T> = (T extends any ? (x: T) => any : never) extends (\n x: infer R\n) => any\n ? R\n : never\n\n/**\n * The `useStateMachine` function is a TypeScript function that creates a state machine and returns the\n * current state and a dispatch function to update the state based on events.\n * @param initialState - The `initialState` parameter is the initial state of the state machine. It\n * represents the starting point of the state machine's state.\n * @param machine - The `machine` parameter is an object that represents a state machine. It should\n * have keys that correspond to the possible states of the machine, and the values should be objects\n * that represent the possible events and their corresponding next states.\n * @returns The `useStateMachine` function returns an object with two properties: `state` and\n * `dispatch`.\n */\nexport function useStateMachine<M>(\n initialState: MachineState<M>,\n machine: M & Machine<MachineState<M>>,\n) {\n const state = ref(initialState) as Ref<MachineState<M>>\n\n function reducer(event: MachineEvent<M>) {\n // @ts-expect-error state.value is keyof M\n const nextState = machine[state.value][event]\n return nextState ?? state.value\n }\n\n const dispatch = (event: MachineEvent<M>) => {\n state.value = reducer(event)\n }\n\n return {\n state,\n dispatch,\n }\n}\n"],"names":[],"mappings":";;AA0BgB,SAAA,eAAA,CACd,cACA,OACA,EAAA;AACA,EAAM,MAAA,KAAA,GAAQ,IAAI,YAAY,CAAA;AAE9B,EAAA,SAAS,QAAQ,KAAwB,EAAA;AAEvC,IAAA,MAAM,SAAY,GAAA,OAAA,CAAQ,KAAM,CAAA,KAAK,EAAE,KAAK,CAAA;AAC5C,IAAA,OAAO,aAAa,KAAM,CAAA,KAAA;AAAA;AAG5B,EAAM,MAAA,QAAA,GAAW,CAAC,KAA2B,KAAA;AAC3C,IAAM,KAAA,CAAA,KAAA,GAAQ,QAAQ,KAAK,CAAA;AAAA,GAC7B;AAEA,EAAO,OAAA;AAAA,IACL,KAAA;AAAA,IACA;AAAA,GACF;AACF;;;;"}
1
+ {"version":3,"file":"useStateMachine.js","sources":["../../src/shared/useStateMachine.ts"],"sourcesContent":["import type { Ref } from 'vue'\nimport { ref } from 'vue'\n\ninterface Machine<S> {\n [k: string]: { [k: string]: S }\n}\ntype MachineState<T> = keyof T\ntype MachineEvent<T> = keyof UnionToIntersection<T[keyof T]>\n\n// 🤯 https://fettblog.eu/typescript-union-to-intersection/\ntype UnionToIntersection<T> = (T extends any ? (x: T) => any : never) extends (\n x: infer R\n) => any\n ? R\n : never\n\n/**\n * The `useStateMachine` function is a TypeScript function that creates a state machine and returns the\n * current state and a dispatch function to update the state based on events.\n * @param initialState - The `initialState` parameter is the initial state of the state machine. It\n * represents the starting point of the state machine's state.\n * @param machine - The `machine` parameter is an object that represents a state machine. It should\n * have keys that correspond to the possible states of the machine, and the values should be objects\n * that represent the possible events and their corresponding next states.\n * @returns The `useStateMachine` function returns an object with two properties: `state` and\n * `dispatch`.\n */\nexport function useStateMachine<M>(\n initialState: MachineState<M>,\n machine: M & Machine<MachineState<M>>,\n) {\n const state = ref(initialState) as Ref<MachineState<M>>\n\n function reducer(event: MachineEvent<M>) {\n // @ts-expect-error state.value is keyof M\n const nextState = machine[state.value][event]\n return nextState ?? state.value\n }\n\n const dispatch = (event: MachineEvent<M>) => {\n state.value = reducer(event)\n }\n\n return {\n state,\n dispatch,\n }\n}\n"],"names":[],"mappings":";;AA2BgB,SAAA,eAAA,CACd,cACA,OACA,EAAA;AACA,EAAM,MAAA,KAAA,GAAQ,IAAI,YAAY,CAAA;AAE9B,EAAA,SAAS,QAAQ,KAAwB,EAAA;AAEvC,IAAA,MAAM,SAAY,GAAA,OAAA,CAAQ,KAAM,CAAA,KAAK,EAAE,KAAK,CAAA;AAC5C,IAAA,OAAO,aAAa,KAAM,CAAA,KAAA;AAAA;AAG5B,EAAM,MAAA,QAAA,GAAW,CAAC,KAA2B,KAAA;AAC3C,IAAM,KAAA,CAAA,KAAA,GAAQ,QAAQ,KAAK,CAAA;AAAA,GAC7B;AAEA,EAAO,OAAA;AAAA,IACL,KAAA;AAAA,IACA;AAAA,GACF;AACF;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"withDefault.cjs","sources":["../../src/shared/withDefault.ts"],"sourcesContent":["import { h, mergeProps } from 'vue'\nimport type { ComponentOptionsBase, DefineComponent, VNodeProps } from 'vue'\nimport type { ComponentProps } from 'vue-component-type-helpers'\nimport { useForwardExpose } from './useForwardExpose'\n\n// TODO: TEST\n\n// From vue next\n// https://github.com/vuejs/core/blob/1f2a652a9d2e3bec472fb1786a4c16d6ccfa1fb1/packages/runtime-core/src/h.ts#L53-L58\ntype RawProps = VNodeProps & {\n // used to differ from a single VNode object as children\n __v_isVNode?: never\n // used to differ from Array children\n [Symbol.iterator]?: never\n} & Record<string, any>\n\n// types inspired from vue-test-utils\n// https://github.com/vuejs/test-utils/blob/main/src/mount.ts#L36\ninterface MountingOptions<Props> {\n /**\n * Default props for the component\n */\n props?: (RawProps & Props) | ({} extends Props ? null : never) | ((attrs: Record<string, any>) => (RawProps & Props))\n /**\n * Pass attributes into the component\n */\n attrs?: Record<string, unknown>\n}\n\nexport function withDefault<\n T,\n C = T extends ((...args: any) => any) | (new (...args: any) => any)\n ? T\n : T extends { props?: infer Props }\n ? DefineComponent<\n Props extends Readonly<(infer PropNames)[]> | (infer PropNames)[]\n ? { [key in PropNames extends string ? PropNames : string]?: any }\n : Props\n >\n : DefineComponent,\n P extends ComponentProps<C> = ComponentProps<C>,\n>(\n originalComponent: T,\n options?: MountingOptions<P>\n): T\n\nexport function withDefault<T extends ComponentOptionsBase<{}, {}, {}, any, any, any, any, any>>(WrappedComponent: T, options?: MountingOptions<any>) {\n return ({\n inheritAttrs: false,\n name: `${WrappedComponent.__name ?? ''}Wrapper`,\n setup(_, ctx) {\n return () => {\n const optionProps = typeof options?.props === 'function' ? options?.props(ctx.attrs) : options?.props\n const { forwardRef } = useForwardExpose()\n\n const mergedProps = mergeProps(optionProps, ctx.attrs)\n return h(WrappedComponent, { ...mergedProps, ref: forwardRef }, ctx.slots)\n }\n },\n }) as T\n}\n"],"names":["useForwardExpose","mergeProps","h"],"mappings":";;;;;AA8CgB,SAAA,WAAA,CAAiF,kBAAqB,OAAgC,EAAA;AACpJ,EAAQ,OAAA;AAAA,IACN,YAAc,EAAA,KAAA;AAAA,IACd,IAAM,EAAA,CAAA,EAAG,gBAAiB,CAAA,MAAA,IAAU,EAAE,CAAA,OAAA,CAAA;AAAA,IACtC,KAAA,CAAM,GAAG,GAAK,EAAA;AACZ,MAAA,OAAO,MAAM;AACX,QAAM,MAAA,WAAA,GAAc,OAAO,OAAA,EAAS,KAAU,KAAA,UAAA,GAAa,SAAS,KAAM,CAAA,GAAA,CAAI,KAAK,CAAA,GAAI,OAAS,EAAA,KAAA;AAChG,QAAM,MAAA,EAAE,UAAW,EAAA,GAAIA,wCAAiB,EAAA;AAExC,QAAA,MAAM,WAAc,GAAAC,cAAA,CAAW,WAAa,EAAA,GAAA,CAAI,KAAK,CAAA;AACrD,QAAO,OAAAC,KAAA,CAAE,kBAAkB,EAAE,GAAG,aAAa,GAAK,EAAA,UAAA,EAAc,EAAA,GAAA,CAAI,KAAK,CAAA;AAAA,OAC3E;AAAA;AACF,GACF;AACF;;;;"}
1
+ {"version":3,"file":"withDefault.cjs","sources":["../../src/shared/withDefault.ts"],"sourcesContent":["import type { ComponentOptionsBase, DefineComponent, VNodeProps } from 'vue'\nimport type { ComponentProps } from 'vue-component-type-helpers'\nimport { h, mergeProps } from 'vue'\nimport { useForwardExpose } from './useForwardExpose'\n\n// TODO: TEST\n\n// From vue next\n// https://github.com/vuejs/core/blob/1f2a652a9d2e3bec472fb1786a4c16d6ccfa1fb1/packages/runtime-core/src/h.ts#L53-L58\ntype RawProps = VNodeProps & {\n // used to differ from a single VNode object as children\n __v_isVNode?: never\n // used to differ from Array children\n [Symbol.iterator]?: never\n} & Record<string, any>\n\n// types inspired from vue-test-utils\n// https://github.com/vuejs/test-utils/blob/main/src/mount.ts#L36\ninterface MountingOptions<Props> {\n /**\n * Default props for the component\n */\n props?: (RawProps & Props) | ({} extends Props ? null : never) | ((attrs: Record<string, any>) => (RawProps & Props))\n /**\n * Pass attributes into the component\n */\n attrs?: Record<string, unknown>\n}\n\nexport function withDefault<\n T,\n C = T extends ((...args: any) => any) | (new (...args: any) => any)\n ? T\n : T extends { props?: infer Props }\n ? DefineComponent<\n Props extends Readonly<(infer PropNames)[]> | (infer PropNames)[]\n ? { [key in PropNames extends string ? PropNames : string]?: any }\n : Props\n >\n : DefineComponent,\n P extends ComponentProps<C> = ComponentProps<C>,\n>(\n originalComponent: T,\n options?: MountingOptions<P>\n): T\n\nexport function withDefault<T extends ComponentOptionsBase<{}, {}, {}, any, any, any, any, any>>(WrappedComponent: T, options?: MountingOptions<any>) {\n return ({\n inheritAttrs: false,\n name: `${WrappedComponent.__name ?? ''}Wrapper`,\n setup(_, ctx) {\n return () => {\n const optionProps = typeof options?.props === 'function' ? options?.props(ctx.attrs) : options?.props\n const { forwardRef } = useForwardExpose()\n\n const mergedProps = mergeProps(optionProps, ctx.attrs)\n return h(WrappedComponent, { ...mergedProps, ref: forwardRef }, ctx.slots)\n }\n },\n }) as T\n}\n"],"names":["useForwardExpose","mergeProps","h"],"mappings":";;;;;AA8CgB,SAAA,WAAA,CAAiF,kBAAqB,OAAgC,EAAA;AACpJ,EAAQ,OAAA;AAAA,IACN,YAAc,EAAA,KAAA;AAAA,IACd,IAAM,EAAA,CAAA,EAAG,gBAAiB,CAAA,MAAA,IAAU,EAAE,CAAA,OAAA,CAAA;AAAA,IACtC,KAAA,CAAM,GAAG,GAAK,EAAA;AACZ,MAAA,OAAO,MAAM;AACX,QAAM,MAAA,WAAA,GAAc,OAAO,OAAA,EAAS,KAAU,KAAA,UAAA,GAAa,SAAS,KAAM,CAAA,GAAA,CAAI,KAAK,CAAA,GAAI,OAAS,EAAA,KAAA;AAChG,QAAM,MAAA,EAAE,UAAW,EAAA,GAAIA,wCAAiB,EAAA;AAExC,QAAA,MAAM,WAAc,GAAAC,cAAA,CAAW,WAAa,EAAA,GAAA,CAAI,KAAK,CAAA;AACrD,QAAO,OAAAC,KAAA,CAAE,kBAAkB,EAAE,GAAG,aAAa,GAAK,EAAA,UAAA,EAAc,EAAA,GAAA,CAAI,KAAK,CAAA;AAAA,OAC3E;AAAA;AACF,GACF;AACF;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"withDefault.js","sources":["../../src/shared/withDefault.ts"],"sourcesContent":["import { h, mergeProps } from 'vue'\nimport type { ComponentOptionsBase, DefineComponent, VNodeProps } from 'vue'\nimport type { ComponentProps } from 'vue-component-type-helpers'\nimport { useForwardExpose } from './useForwardExpose'\n\n// TODO: TEST\n\n// From vue next\n// https://github.com/vuejs/core/blob/1f2a652a9d2e3bec472fb1786a4c16d6ccfa1fb1/packages/runtime-core/src/h.ts#L53-L58\ntype RawProps = VNodeProps & {\n // used to differ from a single VNode object as children\n __v_isVNode?: never\n // used to differ from Array children\n [Symbol.iterator]?: never\n} & Record<string, any>\n\n// types inspired from vue-test-utils\n// https://github.com/vuejs/test-utils/blob/main/src/mount.ts#L36\ninterface MountingOptions<Props> {\n /**\n * Default props for the component\n */\n props?: (RawProps & Props) | ({} extends Props ? null : never) | ((attrs: Record<string, any>) => (RawProps & Props))\n /**\n * Pass attributes into the component\n */\n attrs?: Record<string, unknown>\n}\n\nexport function withDefault<\n T,\n C = T extends ((...args: any) => any) | (new (...args: any) => any)\n ? T\n : T extends { props?: infer Props }\n ? DefineComponent<\n Props extends Readonly<(infer PropNames)[]> | (infer PropNames)[]\n ? { [key in PropNames extends string ? PropNames : string]?: any }\n : Props\n >\n : DefineComponent,\n P extends ComponentProps<C> = ComponentProps<C>,\n>(\n originalComponent: T,\n options?: MountingOptions<P>\n): T\n\nexport function withDefault<T extends ComponentOptionsBase<{}, {}, {}, any, any, any, any, any>>(WrappedComponent: T, options?: MountingOptions<any>) {\n return ({\n inheritAttrs: false,\n name: `${WrappedComponent.__name ?? ''}Wrapper`,\n setup(_, ctx) {\n return () => {\n const optionProps = typeof options?.props === 'function' ? options?.props(ctx.attrs) : options?.props\n const { forwardRef } = useForwardExpose()\n\n const mergedProps = mergeProps(optionProps, ctx.attrs)\n return h(WrappedComponent, { ...mergedProps, ref: forwardRef }, ctx.slots)\n }\n },\n }) as T\n}\n"],"names":[],"mappings":";;;AA8CgB,SAAA,WAAA,CAAiF,kBAAqB,OAAgC,EAAA;AACpJ,EAAQ,OAAA;AAAA,IACN,YAAc,EAAA,KAAA;AAAA,IACd,IAAM,EAAA,CAAA,EAAG,gBAAiB,CAAA,MAAA,IAAU,EAAE,CAAA,OAAA,CAAA;AAAA,IACtC,KAAA,CAAM,GAAG,GAAK,EAAA;AACZ,MAAA,OAAO,MAAM;AACX,QAAM,MAAA,WAAA,GAAc,OAAO,OAAA,EAAS,KAAU,KAAA,UAAA,GAAa,SAAS,KAAM,CAAA,GAAA,CAAI,KAAK,CAAA,GAAI,OAAS,EAAA,KAAA;AAChG,QAAM,MAAA,EAAE,UAAW,EAAA,GAAI,gBAAiB,EAAA;AAExC,QAAA,MAAM,WAAc,GAAA,UAAA,CAAW,WAAa,EAAA,GAAA,CAAI,KAAK,CAAA;AACrD,QAAO,OAAA,CAAA,CAAE,kBAAkB,EAAE,GAAG,aAAa,GAAK,EAAA,UAAA,EAAc,EAAA,GAAA,CAAI,KAAK,CAAA;AAAA,OAC3E;AAAA;AACF,GACF;AACF;;;;"}
1
+ {"version":3,"file":"withDefault.js","sources":["../../src/shared/withDefault.ts"],"sourcesContent":["import type { ComponentOptionsBase, DefineComponent, VNodeProps } from 'vue'\nimport type { ComponentProps } from 'vue-component-type-helpers'\nimport { h, mergeProps } from 'vue'\nimport { useForwardExpose } from './useForwardExpose'\n\n// TODO: TEST\n\n// From vue next\n// https://github.com/vuejs/core/blob/1f2a652a9d2e3bec472fb1786a4c16d6ccfa1fb1/packages/runtime-core/src/h.ts#L53-L58\ntype RawProps = VNodeProps & {\n // used to differ from a single VNode object as children\n __v_isVNode?: never\n // used to differ from Array children\n [Symbol.iterator]?: never\n} & Record<string, any>\n\n// types inspired from vue-test-utils\n// https://github.com/vuejs/test-utils/blob/main/src/mount.ts#L36\ninterface MountingOptions<Props> {\n /**\n * Default props for the component\n */\n props?: (RawProps & Props) | ({} extends Props ? null : never) | ((attrs: Record<string, any>) => (RawProps & Props))\n /**\n * Pass attributes into the component\n */\n attrs?: Record<string, unknown>\n}\n\nexport function withDefault<\n T,\n C = T extends ((...args: any) => any) | (new (...args: any) => any)\n ? T\n : T extends { props?: infer Props }\n ? DefineComponent<\n Props extends Readonly<(infer PropNames)[]> | (infer PropNames)[]\n ? { [key in PropNames extends string ? PropNames : string]?: any }\n : Props\n >\n : DefineComponent,\n P extends ComponentProps<C> = ComponentProps<C>,\n>(\n originalComponent: T,\n options?: MountingOptions<P>\n): T\n\nexport function withDefault<T extends ComponentOptionsBase<{}, {}, {}, any, any, any, any, any>>(WrappedComponent: T, options?: MountingOptions<any>) {\n return ({\n inheritAttrs: false,\n name: `${WrappedComponent.__name ?? ''}Wrapper`,\n setup(_, ctx) {\n return () => {\n const optionProps = typeof options?.props === 'function' ? options?.props(ctx.attrs) : options?.props\n const { forwardRef } = useForwardExpose()\n\n const mergedProps = mergeProps(optionProps, ctx.attrs)\n return h(WrappedComponent, { ...mergedProps, ref: forwardRef }, ctx.slots)\n }\n },\n }) as T\n}\n"],"names":[],"mappings":";;;AA8CgB,SAAA,WAAA,CAAiF,kBAAqB,OAAgC,EAAA;AACpJ,EAAQ,OAAA;AAAA,IACN,YAAc,EAAA,KAAA;AAAA,IACd,IAAM,EAAA,CAAA,EAAG,gBAAiB,CAAA,MAAA,IAAU,EAAE,CAAA,OAAA,CAAA;AAAA,IACtC,KAAA,CAAM,GAAG,GAAK,EAAA;AACZ,MAAA,OAAO,MAAM;AACX,QAAM,MAAA,WAAA,GAAc,OAAO,OAAA,EAAS,KAAU,KAAA,UAAA,GAAa,SAAS,KAAM,CAAA,GAAA,CAAI,KAAK,CAAA,GAAI,OAAS,EAAA,KAAA;AAChG,QAAM,MAAA,EAAE,UAAW,EAAA,GAAI,gBAAiB,EAAA;AAExC,QAAA,MAAM,WAAc,GAAA,UAAA,CAAW,WAAa,EAAA,GAAA,CAAI,KAAK,CAAA;AACrD,QAAO,OAAA,CAAA,CAAE,kBAAkB,EAAE,GAAG,aAAa,GAAK,EAAA,UAAA,EAAc,EAAA,GAAA,CAAI,KAAK,CAAA;AAAA,OAC3E;AAAA;AACF,GACF;AACF;;;;"}
@@ -96,7 +96,7 @@ function calculateAriaValues({
96
96
  function calculateUnsafeDefaultLayout({
97
97
  panelDataArray
98
98
  }) {
99
- const layout = Array(panelDataArray.length);
99
+ const layout = Array.from({ length: panelDataArray.length });
100
100
  const panelConstraintsArray = panelDataArray.map(
101
101
  (panelData) => panelData.constraints
102
102
  );
@@ -1 +1 @@
1
- {"version":3,"file":"calculate.cjs","sources":["../../src/Splitter/utils/calculate.ts"],"sourcesContent":["import type { Direction, DragState, ResizeEvent } from './types'\nimport { assert } from './assert'\nimport { getPanelGroupElement, getResizeHandleElement } from './dom'\nimport { getResizeEventCursorPosition, isKeyDown } from './events'\nimport type { PanelData } from '../SplitterPanel.vue'\n\nexport function calculateDragOffsetPercentage(\n event: ResizeEvent,\n dragHandleId: string,\n direction: Direction,\n initialDragState: DragState,\n panelGroupElement: HTMLElement,\n): number {\n const isHorizontal = direction === 'horizontal'\n\n const handleElement = getResizeHandleElement(dragHandleId, panelGroupElement)\n assert(handleElement)\n\n const groupId = handleElement.getAttribute('data-panel-group-id')\n assert(groupId)\n\n const { initialCursorPosition } = initialDragState\n\n const cursorPosition = getResizeEventCursorPosition(direction, event)\n\n const groupElement = getPanelGroupElement(groupId, panelGroupElement)\n assert(groupElement)\n\n const groupRect = groupElement.getBoundingClientRect()\n const groupSizeInPixels = isHorizontal ? groupRect.width : groupRect.height\n\n const offsetPixels = cursorPosition - initialCursorPosition\n const offsetPercentage = (offsetPixels / groupSizeInPixels) * 100\n\n return offsetPercentage\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/movementX\nexport function calculateDeltaPercentage(\n event: ResizeEvent,\n dragHandleId: string,\n direction: Direction,\n initialDragState: DragState | null,\n keyboardResizeBy: number | null,\n panelGroupElement: HTMLElement,\n): number {\n if (isKeyDown(event)) {\n const isHorizontal = direction === 'horizontal'\n\n let delta = 0\n if (event.shiftKey)\n delta = 100\n else\n delta = keyboardResizeBy ?? 10\n\n let movement = 0\n switch (event.key) {\n case 'ArrowDown':\n movement = isHorizontal ? 0 : delta\n break\n case 'ArrowLeft':\n movement = isHorizontal ? -delta : 0\n break\n case 'ArrowRight':\n movement = isHorizontal ? delta : 0\n break\n case 'ArrowUp':\n movement = isHorizontal ? 0 : -delta\n break\n case 'End':\n movement = 100\n break\n case 'Home':\n movement = -100\n break\n }\n\n return movement\n }\n else {\n if (initialDragState == null)\n return 0\n\n return calculateDragOffsetPercentage(\n event,\n dragHandleId,\n direction,\n initialDragState,\n panelGroupElement,\n )\n }\n}\n\nexport function calculateAriaValues({\n layout,\n panelsArray,\n pivotIndices,\n}: {\n layout: number[]\n panelsArray: PanelData[]\n pivotIndices: number[]\n}) {\n let currentMinSize = 0\n let currentMaxSize = 100\n let totalMinSize = 0\n let totalMaxSize = 0\n\n const firstIndex = pivotIndices[0]\n assert(firstIndex != null)\n\n // A panel's effective min/max sizes also need to account for other panel's sizes.\n panelsArray.forEach((panelData, index) => {\n const { constraints } = panelData\n const { maxSize = 100, minSize = 0 } = constraints\n\n if (index === firstIndex) {\n currentMinSize = minSize\n currentMaxSize = maxSize\n }\n else {\n totalMinSize += minSize\n totalMaxSize += maxSize\n }\n })\n\n const valueMax = Math.min(currentMaxSize, 100 - totalMinSize)\n const valueMin = Math.max(currentMinSize, 100 - totalMaxSize)\n\n const valueNow = layout[firstIndex]\n\n return {\n valueMax,\n valueMin,\n valueNow,\n }\n}\n\nexport function calculateUnsafeDefaultLayout({\n panelDataArray,\n}: {\n panelDataArray: PanelData[]\n}): number[] {\n const layout = Array<number>(panelDataArray.length)\n\n const panelConstraintsArray = panelDataArray.map(\n panelData => panelData.constraints,\n )\n\n let numPanelsWithSizes = 0\n let remainingSize = 100\n\n // Distribute default sizes first\n for (let index = 0; index < panelDataArray.length; index++) {\n const panelConstraints = panelConstraintsArray[index]\n assert(panelConstraints)\n const { defaultSize } = panelConstraints\n\n if (defaultSize != null) {\n numPanelsWithSizes++\n layout[index] = defaultSize\n remainingSize -= defaultSize\n }\n }\n\n // Remaining size should be distributed evenly between panels without default sizes\n for (let index = 0; index < panelDataArray.length; index++) {\n const panelConstraints = panelConstraintsArray[index]\n assert(panelConstraints)\n const { defaultSize } = panelConstraints\n\n if (defaultSize != null)\n continue\n\n const numRemainingPanels = panelDataArray.length - numPanelsWithSizes\n const size = remainingSize / numRemainingPanels\n\n numPanelsWithSizes++\n layout[index] = size\n remainingSize -= size\n }\n\n return layout\n}\n"],"names":["getResizeHandleElement","assert","getResizeEventCursorPosition","getPanelGroupElement","isKeyDown"],"mappings":";;;;;;AAMO,SAAS,6BACd,CAAA,KAAA,EACA,YACA,EAAA,SAAA,EACA,kBACA,iBACQ,EAAA;AACR,EAAA,MAAM,eAAe,SAAc,KAAA,YAAA;AAEnC,EAAM,MAAA,aAAA,GAAgBA,gCAAuB,CAAA,YAAA,EAAc,iBAAiB,CAAA;AAC5E,EAAAC,mBAAA,CAAO,aAAa,CAAA;AAEpB,EAAM,MAAA,OAAA,GAAU,aAAc,CAAA,YAAA,CAAa,qBAAqB,CAAA;AAChE,EAAAA,mBAAA,CAAO,OAAO,CAAA;AAEd,EAAM,MAAA,EAAE,uBAA0B,GAAA,gBAAA;AAElC,EAAM,MAAA,cAAA,GAAiBC,yCAA6B,CAAA,SAAA,EAAW,KAAK,CAAA;AAEpE,EAAM,MAAA,YAAA,GAAeC,8BAAqB,CAAA,OAAA,EAAS,iBAAiB,CAAA;AACpE,EAAAF,mBAAA,CAAO,YAAY,CAAA;AAEnB,EAAM,MAAA,SAAA,GAAY,aAAa,qBAAsB,EAAA;AACrD,EAAA,MAAM,iBAAoB,GAAA,YAAA,GAAe,SAAU,CAAA,KAAA,GAAQ,SAAU,CAAA,MAAA;AAErE,EAAA,MAAM,eAAe,cAAiB,GAAA,qBAAA;AACtC,EAAM,MAAA,gBAAA,GAAoB,eAAe,iBAAqB,GAAA,GAAA;AAE9D,EAAO,OAAA,gBAAA;AACT;AAGO,SAAS,yBACd,KACA,EAAA,YAAA,EACA,SACA,EAAA,gBAAA,EACA,kBACA,iBACQ,EAAA;AACR,EAAI,IAAAG,sBAAA,CAAU,KAAK,CAAG,EAAA;AACpB,IAAA,MAAM,eAAe,SAAc,KAAA,YAAA;AAEnC,IAAA,IAAI,KAAQ,GAAA,CAAA;AACZ,IAAA,IAAI,KAAM,CAAA,QAAA;AACR,MAAQ,KAAA,GAAA,GAAA;AAAA;AAER,MAAA,KAAA,GAAQ,gBAAoB,IAAA,EAAA;AAE9B,IAAA,IAAI,QAAW,GAAA,CAAA;AACf,IAAA,QAAQ,MAAM,GAAK;AAAA,MACjB,KAAK,WAAA;AACH,QAAA,QAAA,GAAW,eAAe,CAAI,GAAA,KAAA;AAC9B,QAAA;AAAA,MACF,KAAK,WAAA;AACH,QAAW,QAAA,GAAA,YAAA,GAAe,CAAC,KAAQ,GAAA,CAAA;AACnC,QAAA;AAAA,MACF,KAAK,YAAA;AACH,QAAA,QAAA,GAAW,eAAe,KAAQ,GAAA,CAAA;AAClC,QAAA;AAAA,MACF,KAAK,SAAA;AACH,QAAW,QAAA,GAAA,YAAA,GAAe,IAAI,CAAC,KAAA;AAC/B,QAAA;AAAA,MACF,KAAK,KAAA;AACH,QAAW,QAAA,GAAA,GAAA;AACX,QAAA;AAAA,MACF,KAAK,MAAA;AACH,QAAW,QAAA,GAAA,IAAA;AACX,QAAA;AAAA;AAGJ,IAAO,OAAA,QAAA;AAAA,GAEJ,MAAA;AACH,IAAA,IAAI,gBAAoB,IAAA,IAAA;AACtB,MAAO,OAAA,CAAA;AAET,IAAO,OAAA,6BAAA;AAAA,MACL,KAAA;AAAA,MACA,YAAA;AAAA,MACA,SAAA;AAAA,MACA,gBAAA;AAAA,MACA;AAAA,KACF;AAAA;AAEJ;AAEO,SAAS,mBAAoB,CAAA;AAAA,EAClC,MAAA;AAAA,EACA,WAAA;AAAA,EACA;AACF,CAIG,EAAA;AACD,EAAA,IAAI,cAAiB,GAAA,CAAA;AACrB,EAAA,IAAI,cAAiB,GAAA,GAAA;AACrB,EAAA,IAAI,YAAe,GAAA,CAAA;AACnB,EAAA,IAAI,YAAe,GAAA,CAAA;AAEnB,EAAM,MAAA,UAAA,GAAa,aAAa,CAAC,CAAA;AACjC,EAAAH,mBAAA,CAAO,cAAc,IAAI,CAAA;AAGzB,EAAY,WAAA,CAAA,OAAA,CAAQ,CAAC,SAAA,EAAW,KAAU,KAAA;AACxC,IAAM,MAAA,EAAE,aAAgB,GAAA,SAAA;AACxB,IAAA,MAAM,EAAE,OAAA,GAAU,GAAK,EAAA,OAAA,GAAU,GAAM,GAAA,WAAA;AAEvC,IAAA,IAAI,UAAU,UAAY,EAAA;AACxB,MAAiB,cAAA,GAAA,OAAA;AACjB,MAAiB,cAAA,GAAA,OAAA;AAAA,KAEd,MAAA;AACH,MAAgB,YAAA,IAAA,OAAA;AAChB,MAAgB,YAAA,IAAA,OAAA;AAAA;AAClB,GACD,CAAA;AAED,EAAA,MAAM,QAAW,GAAA,IAAA,CAAK,GAAI,CAAA,cAAA,EAAgB,MAAM,YAAY,CAAA;AAC5D,EAAA,MAAM,QAAW,GAAA,IAAA,CAAK,GAAI,CAAA,cAAA,EAAgB,MAAM,YAAY,CAAA;AAE5D,EAAM,MAAA,QAAA,GAAW,OAAO,UAAU,CAAA;AAElC,EAAO,OAAA;AAAA,IACL,QAAA;AAAA,IACA,QAAA;AAAA,IACA;AAAA,GACF;AACF;AAEO,SAAS,4BAA6B,CAAA;AAAA,EAC3C;AACF,CAEa,EAAA;AACX,EAAM,MAAA,MAAA,GAAS,KAAc,CAAA,cAAA,CAAe,MAAM,CAAA;AAElD,EAAA,MAAM,wBAAwB,cAAe,CAAA,GAAA;AAAA,IAC3C,eAAa,SAAU,CAAA;AAAA,GACzB;AAEA,EAAA,IAAI,kBAAqB,GAAA,CAAA;AACzB,EAAA,IAAI,aAAgB,GAAA,GAAA;AAGpB,EAAA,KAAA,IAAS,KAAQ,GAAA,CAAA,EAAG,KAAQ,GAAA,cAAA,CAAe,QAAQ,KAAS,EAAA,EAAA;AAC1D,IAAM,MAAA,gBAAA,GAAmB,sBAAsB,KAAK,CAAA;AACpD,IAAAA,mBAAA,CAAO,gBAAgB,CAAA;AACvB,IAAM,MAAA,EAAE,aAAgB,GAAA,gBAAA;AAExB,IAAA,IAAI,eAAe,IAAM,EAAA;AACvB,MAAA,kBAAA,EAAA;AACA,MAAA,MAAA,CAAO,KAAK,CAAI,GAAA,WAAA;AAChB,MAAiB,aAAA,IAAA,WAAA;AAAA;AACnB;AAIF,EAAA,KAAA,IAAS,KAAQ,GAAA,CAAA,EAAG,KAAQ,GAAA,cAAA,CAAe,QAAQ,KAAS,EAAA,EAAA;AAC1D,IAAM,MAAA,gBAAA,GAAmB,sBAAsB,KAAK,CAAA;AACpD,IAAAA,mBAAA,CAAO,gBAAgB,CAAA;AACvB,IAAM,MAAA,EAAE,aAAgB,GAAA,gBAAA;AAExB,IAAA,IAAI,WAAe,IAAA,IAAA;AACjB,MAAA;AAEF,IAAM,MAAA,kBAAA,GAAqB,eAAe,MAAS,GAAA,kBAAA;AACnD,IAAA,MAAM,OAAO,aAAgB,GAAA,kBAAA;AAE7B,IAAA,kBAAA,EAAA;AACA,IAAA,MAAA,CAAO,KAAK,CAAI,GAAA,IAAA;AAChB,IAAiB,aAAA,IAAA,IAAA;AAAA;AAGnB,EAAO,OAAA,MAAA;AACT;;;;;;"}
1
+ {"version":3,"file":"calculate.cjs","sources":["../../src/Splitter/utils/calculate.ts"],"sourcesContent":["import type { PanelData } from '../SplitterPanel.vue'\nimport type { Direction, DragState, ResizeEvent } from './types'\nimport { assert } from './assert'\nimport { getPanelGroupElement, getResizeHandleElement } from './dom'\nimport { getResizeEventCursorPosition, isKeyDown } from './events'\n\nexport function calculateDragOffsetPercentage(\n event: ResizeEvent,\n dragHandleId: string,\n direction: Direction,\n initialDragState: DragState,\n panelGroupElement: HTMLElement,\n): number {\n const isHorizontal = direction === 'horizontal'\n\n const handleElement = getResizeHandleElement(dragHandleId, panelGroupElement)\n assert(handleElement)\n\n const groupId = handleElement.getAttribute('data-panel-group-id')\n assert(groupId)\n\n const { initialCursorPosition } = initialDragState\n\n const cursorPosition = getResizeEventCursorPosition(direction, event)\n\n const groupElement = getPanelGroupElement(groupId, panelGroupElement)\n assert(groupElement)\n\n const groupRect = groupElement.getBoundingClientRect()\n const groupSizeInPixels = isHorizontal ? groupRect.width : groupRect.height\n\n const offsetPixels = cursorPosition - initialCursorPosition\n const offsetPercentage = (offsetPixels / groupSizeInPixels) * 100\n\n return offsetPercentage\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/movementX\nexport function calculateDeltaPercentage(\n event: ResizeEvent,\n dragHandleId: string,\n direction: Direction,\n initialDragState: DragState | null,\n keyboardResizeBy: number | null,\n panelGroupElement: HTMLElement,\n): number {\n if (isKeyDown(event)) {\n const isHorizontal = direction === 'horizontal'\n\n let delta = 0\n if (event.shiftKey)\n delta = 100\n else\n delta = keyboardResizeBy ?? 10\n\n let movement = 0\n switch (event.key) {\n case 'ArrowDown':\n movement = isHorizontal ? 0 : delta\n break\n case 'ArrowLeft':\n movement = isHorizontal ? -delta : 0\n break\n case 'ArrowRight':\n movement = isHorizontal ? delta : 0\n break\n case 'ArrowUp':\n movement = isHorizontal ? 0 : -delta\n break\n case 'End':\n movement = 100\n break\n case 'Home':\n movement = -100\n break\n }\n\n return movement\n }\n else {\n if (initialDragState == null)\n return 0\n\n return calculateDragOffsetPercentage(\n event,\n dragHandleId,\n direction,\n initialDragState,\n panelGroupElement,\n )\n }\n}\n\nexport function calculateAriaValues({\n layout,\n panelsArray,\n pivotIndices,\n}: {\n layout: number[]\n panelsArray: PanelData[]\n pivotIndices: number[]\n}) {\n let currentMinSize = 0\n let currentMaxSize = 100\n let totalMinSize = 0\n let totalMaxSize = 0\n\n const firstIndex = pivotIndices[0]\n assert(firstIndex != null)\n\n // A panel's effective min/max sizes also need to account for other panel's sizes.\n panelsArray.forEach((panelData, index) => {\n const { constraints } = panelData\n const { maxSize = 100, minSize = 0 } = constraints\n\n if (index === firstIndex) {\n currentMinSize = minSize\n currentMaxSize = maxSize\n }\n else {\n totalMinSize += minSize\n totalMaxSize += maxSize\n }\n })\n\n const valueMax = Math.min(currentMaxSize, 100 - totalMinSize)\n const valueMin = Math.max(currentMinSize, 100 - totalMaxSize)\n\n const valueNow = layout[firstIndex]\n\n return {\n valueMax,\n valueMin,\n valueNow,\n }\n}\n\nexport function calculateUnsafeDefaultLayout({\n panelDataArray,\n}: {\n panelDataArray: PanelData[]\n}): number[] {\n const layout: number[] = Array.from({ length: panelDataArray.length })\n\n const panelConstraintsArray = panelDataArray.map(\n panelData => panelData.constraints,\n )\n\n let numPanelsWithSizes = 0\n let remainingSize = 100\n\n // Distribute default sizes first\n for (let index = 0; index < panelDataArray.length; index++) {\n const panelConstraints = panelConstraintsArray[index]\n assert(panelConstraints)\n const { defaultSize } = panelConstraints\n\n if (defaultSize != null) {\n numPanelsWithSizes++\n layout[index] = defaultSize\n remainingSize -= defaultSize\n }\n }\n\n // Remaining size should be distributed evenly between panels without default sizes\n for (let index = 0; index < panelDataArray.length; index++) {\n const panelConstraints = panelConstraintsArray[index]\n assert(panelConstraints)\n const { defaultSize } = panelConstraints\n\n if (defaultSize != null)\n continue\n\n const numRemainingPanels = panelDataArray.length - numPanelsWithSizes\n const size = remainingSize / numRemainingPanels\n\n numPanelsWithSizes++\n layout[index] = size\n remainingSize -= size\n }\n\n return layout\n}\n"],"names":["getResizeHandleElement","assert","getResizeEventCursorPosition","getPanelGroupElement","isKeyDown"],"mappings":";;;;;;AAMO,SAAS,6BACd,CAAA,KAAA,EACA,YACA,EAAA,SAAA,EACA,kBACA,iBACQ,EAAA;AACR,EAAA,MAAM,eAAe,SAAc,KAAA,YAAA;AAEnC,EAAM,MAAA,aAAA,GAAgBA,gCAAuB,CAAA,YAAA,EAAc,iBAAiB,CAAA;AAC5E,EAAAC,mBAAA,CAAO,aAAa,CAAA;AAEpB,EAAM,MAAA,OAAA,GAAU,aAAc,CAAA,YAAA,CAAa,qBAAqB,CAAA;AAChE,EAAAA,mBAAA,CAAO,OAAO,CAAA;AAEd,EAAM,MAAA,EAAE,uBAA0B,GAAA,gBAAA;AAElC,EAAM,MAAA,cAAA,GAAiBC,yCAA6B,CAAA,SAAA,EAAW,KAAK,CAAA;AAEpE,EAAM,MAAA,YAAA,GAAeC,8BAAqB,CAAA,OAAA,EAAS,iBAAiB,CAAA;AACpE,EAAAF,mBAAA,CAAO,YAAY,CAAA;AAEnB,EAAM,MAAA,SAAA,GAAY,aAAa,qBAAsB,EAAA;AACrD,EAAA,MAAM,iBAAoB,GAAA,YAAA,GAAe,SAAU,CAAA,KAAA,GAAQ,SAAU,CAAA,MAAA;AAErE,EAAA,MAAM,eAAe,cAAiB,GAAA,qBAAA;AACtC,EAAM,MAAA,gBAAA,GAAoB,eAAe,iBAAqB,GAAA,GAAA;AAE9D,EAAO,OAAA,gBAAA;AACT;AAGO,SAAS,yBACd,KACA,EAAA,YAAA,EACA,SACA,EAAA,gBAAA,EACA,kBACA,iBACQ,EAAA;AACR,EAAI,IAAAG,sBAAA,CAAU,KAAK,CAAG,EAAA;AACpB,IAAA,MAAM,eAAe,SAAc,KAAA,YAAA;AAEnC,IAAA,IAAI,KAAQ,GAAA,CAAA;AACZ,IAAA,IAAI,KAAM,CAAA,QAAA;AACR,MAAQ,KAAA,GAAA,GAAA;AAAA;AAER,MAAA,KAAA,GAAQ,gBAAoB,IAAA,EAAA;AAE9B,IAAA,IAAI,QAAW,GAAA,CAAA;AACf,IAAA,QAAQ,MAAM,GAAK;AAAA,MACjB,KAAK,WAAA;AACH,QAAA,QAAA,GAAW,eAAe,CAAI,GAAA,KAAA;AAC9B,QAAA;AAAA,MACF,KAAK,WAAA;AACH,QAAW,QAAA,GAAA,YAAA,GAAe,CAAC,KAAQ,GAAA,CAAA;AACnC,QAAA;AAAA,MACF,KAAK,YAAA;AACH,QAAA,QAAA,GAAW,eAAe,KAAQ,GAAA,CAAA;AAClC,QAAA;AAAA,MACF,KAAK,SAAA;AACH,QAAW,QAAA,GAAA,YAAA,GAAe,IAAI,CAAC,KAAA;AAC/B,QAAA;AAAA,MACF,KAAK,KAAA;AACH,QAAW,QAAA,GAAA,GAAA;AACX,QAAA;AAAA,MACF,KAAK,MAAA;AACH,QAAW,QAAA,GAAA,IAAA;AACX,QAAA;AAAA;AAGJ,IAAO,OAAA,QAAA;AAAA,GAEJ,MAAA;AACH,IAAA,IAAI,gBAAoB,IAAA,IAAA;AACtB,MAAO,OAAA,CAAA;AAET,IAAO,OAAA,6BAAA;AAAA,MACL,KAAA;AAAA,MACA,YAAA;AAAA,MACA,SAAA;AAAA,MACA,gBAAA;AAAA,MACA;AAAA,KACF;AAAA;AAEJ;AAEO,SAAS,mBAAoB,CAAA;AAAA,EAClC,MAAA;AAAA,EACA,WAAA;AAAA,EACA;AACF,CAIG,EAAA;AACD,EAAA,IAAI,cAAiB,GAAA,CAAA;AACrB,EAAA,IAAI,cAAiB,GAAA,GAAA;AACrB,EAAA,IAAI,YAAe,GAAA,CAAA;AACnB,EAAA,IAAI,YAAe,GAAA,CAAA;AAEnB,EAAM,MAAA,UAAA,GAAa,aAAa,CAAC,CAAA;AACjC,EAAAH,mBAAA,CAAO,cAAc,IAAI,CAAA;AAGzB,EAAY,WAAA,CAAA,OAAA,CAAQ,CAAC,SAAA,EAAW,KAAU,KAAA;AACxC,IAAM,MAAA,EAAE,aAAgB,GAAA,SAAA;AACxB,IAAA,MAAM,EAAE,OAAA,GAAU,GAAK,EAAA,OAAA,GAAU,GAAM,GAAA,WAAA;AAEvC,IAAA,IAAI,UAAU,UAAY,EAAA;AACxB,MAAiB,cAAA,GAAA,OAAA;AACjB,MAAiB,cAAA,GAAA,OAAA;AAAA,KAEd,MAAA;AACH,MAAgB,YAAA,IAAA,OAAA;AAChB,MAAgB,YAAA,IAAA,OAAA;AAAA;AAClB,GACD,CAAA;AAED,EAAA,MAAM,QAAW,GAAA,IAAA,CAAK,GAAI,CAAA,cAAA,EAAgB,MAAM,YAAY,CAAA;AAC5D,EAAA,MAAM,QAAW,GAAA,IAAA,CAAK,GAAI,CAAA,cAAA,EAAgB,MAAM,YAAY,CAAA;AAE5D,EAAM,MAAA,QAAA,GAAW,OAAO,UAAU,CAAA;AAElC,EAAO,OAAA;AAAA,IACL,QAAA;AAAA,IACA,QAAA;AAAA,IACA;AAAA,GACF;AACF;AAEO,SAAS,4BAA6B,CAAA;AAAA,EAC3C;AACF,CAEa,EAAA;AACX,EAAA,MAAM,SAAmB,KAAM,CAAA,IAAA,CAAK,EAAE,MAAQ,EAAA,cAAA,CAAe,QAAQ,CAAA;AAErE,EAAA,MAAM,wBAAwB,cAAe,CAAA,GAAA;AAAA,IAC3C,eAAa,SAAU,CAAA;AAAA,GACzB;AAEA,EAAA,IAAI,kBAAqB,GAAA,CAAA;AACzB,EAAA,IAAI,aAAgB,GAAA,GAAA;AAGpB,EAAA,KAAA,IAAS,KAAQ,GAAA,CAAA,EAAG,KAAQ,GAAA,cAAA,CAAe,QAAQ,KAAS,EAAA,EAAA;AAC1D,IAAM,MAAA,gBAAA,GAAmB,sBAAsB,KAAK,CAAA;AACpD,IAAAA,mBAAA,CAAO,gBAAgB,CAAA;AACvB,IAAM,MAAA,EAAE,aAAgB,GAAA,gBAAA;AAExB,IAAA,IAAI,eAAe,IAAM,EAAA;AACvB,MAAA,kBAAA,EAAA;AACA,MAAA,MAAA,CAAO,KAAK,CAAI,GAAA,WAAA;AAChB,MAAiB,aAAA,IAAA,WAAA;AAAA;AACnB;AAIF,EAAA,KAAA,IAAS,KAAQ,GAAA,CAAA,EAAG,KAAQ,GAAA,cAAA,CAAe,QAAQ,KAAS,EAAA,EAAA;AAC1D,IAAM,MAAA,gBAAA,GAAmB,sBAAsB,KAAK,CAAA;AACpD,IAAAA,mBAAA,CAAO,gBAAgB,CAAA;AACvB,IAAM,MAAA,EAAE,aAAgB,GAAA,gBAAA;AAExB,IAAA,IAAI,WAAe,IAAA,IAAA;AACjB,MAAA;AAEF,IAAM,MAAA,kBAAA,GAAqB,eAAe,MAAS,GAAA,kBAAA;AACnD,IAAA,MAAM,OAAO,aAAgB,GAAA,kBAAA;AAE7B,IAAA,kBAAA,EAAA;AACA,IAAA,MAAA,CAAO,KAAK,CAAI,GAAA,IAAA;AAChB,IAAiB,aAAA,IAAA,IAAA;AAAA;AAGnB,EAAO,OAAA,MAAA;AACT;;;;;;"}
@@ -94,7 +94,7 @@ function calculateAriaValues({
94
94
  function calculateUnsafeDefaultLayout({
95
95
  panelDataArray
96
96
  }) {
97
- const layout = Array(panelDataArray.length);
97
+ const layout = Array.from({ length: panelDataArray.length });
98
98
  const panelConstraintsArray = panelDataArray.map(
99
99
  (panelData) => panelData.constraints
100
100
  );
@@ -1 +1 @@
1
- {"version":3,"file":"calculate.js","sources":["../../src/Splitter/utils/calculate.ts"],"sourcesContent":["import type { Direction, DragState, ResizeEvent } from './types'\nimport { assert } from './assert'\nimport { getPanelGroupElement, getResizeHandleElement } from './dom'\nimport { getResizeEventCursorPosition, isKeyDown } from './events'\nimport type { PanelData } from '../SplitterPanel.vue'\n\nexport function calculateDragOffsetPercentage(\n event: ResizeEvent,\n dragHandleId: string,\n direction: Direction,\n initialDragState: DragState,\n panelGroupElement: HTMLElement,\n): number {\n const isHorizontal = direction === 'horizontal'\n\n const handleElement = getResizeHandleElement(dragHandleId, panelGroupElement)\n assert(handleElement)\n\n const groupId = handleElement.getAttribute('data-panel-group-id')\n assert(groupId)\n\n const { initialCursorPosition } = initialDragState\n\n const cursorPosition = getResizeEventCursorPosition(direction, event)\n\n const groupElement = getPanelGroupElement(groupId, panelGroupElement)\n assert(groupElement)\n\n const groupRect = groupElement.getBoundingClientRect()\n const groupSizeInPixels = isHorizontal ? groupRect.width : groupRect.height\n\n const offsetPixels = cursorPosition - initialCursorPosition\n const offsetPercentage = (offsetPixels / groupSizeInPixels) * 100\n\n return offsetPercentage\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/movementX\nexport function calculateDeltaPercentage(\n event: ResizeEvent,\n dragHandleId: string,\n direction: Direction,\n initialDragState: DragState | null,\n keyboardResizeBy: number | null,\n panelGroupElement: HTMLElement,\n): number {\n if (isKeyDown(event)) {\n const isHorizontal = direction === 'horizontal'\n\n let delta = 0\n if (event.shiftKey)\n delta = 100\n else\n delta = keyboardResizeBy ?? 10\n\n let movement = 0\n switch (event.key) {\n case 'ArrowDown':\n movement = isHorizontal ? 0 : delta\n break\n case 'ArrowLeft':\n movement = isHorizontal ? -delta : 0\n break\n case 'ArrowRight':\n movement = isHorizontal ? delta : 0\n break\n case 'ArrowUp':\n movement = isHorizontal ? 0 : -delta\n break\n case 'End':\n movement = 100\n break\n case 'Home':\n movement = -100\n break\n }\n\n return movement\n }\n else {\n if (initialDragState == null)\n return 0\n\n return calculateDragOffsetPercentage(\n event,\n dragHandleId,\n direction,\n initialDragState,\n panelGroupElement,\n )\n }\n}\n\nexport function calculateAriaValues({\n layout,\n panelsArray,\n pivotIndices,\n}: {\n layout: number[]\n panelsArray: PanelData[]\n pivotIndices: number[]\n}) {\n let currentMinSize = 0\n let currentMaxSize = 100\n let totalMinSize = 0\n let totalMaxSize = 0\n\n const firstIndex = pivotIndices[0]\n assert(firstIndex != null)\n\n // A panel's effective min/max sizes also need to account for other panel's sizes.\n panelsArray.forEach((panelData, index) => {\n const { constraints } = panelData\n const { maxSize = 100, minSize = 0 } = constraints\n\n if (index === firstIndex) {\n currentMinSize = minSize\n currentMaxSize = maxSize\n }\n else {\n totalMinSize += minSize\n totalMaxSize += maxSize\n }\n })\n\n const valueMax = Math.min(currentMaxSize, 100 - totalMinSize)\n const valueMin = Math.max(currentMinSize, 100 - totalMaxSize)\n\n const valueNow = layout[firstIndex]\n\n return {\n valueMax,\n valueMin,\n valueNow,\n }\n}\n\nexport function calculateUnsafeDefaultLayout({\n panelDataArray,\n}: {\n panelDataArray: PanelData[]\n}): number[] {\n const layout = Array<number>(panelDataArray.length)\n\n const panelConstraintsArray = panelDataArray.map(\n panelData => panelData.constraints,\n )\n\n let numPanelsWithSizes = 0\n let remainingSize = 100\n\n // Distribute default sizes first\n for (let index = 0; index < panelDataArray.length; index++) {\n const panelConstraints = panelConstraintsArray[index]\n assert(panelConstraints)\n const { defaultSize } = panelConstraints\n\n if (defaultSize != null) {\n numPanelsWithSizes++\n layout[index] = defaultSize\n remainingSize -= defaultSize\n }\n }\n\n // Remaining size should be distributed evenly between panels without default sizes\n for (let index = 0; index < panelDataArray.length; index++) {\n const panelConstraints = panelConstraintsArray[index]\n assert(panelConstraints)\n const { defaultSize } = panelConstraints\n\n if (defaultSize != null)\n continue\n\n const numRemainingPanels = panelDataArray.length - numPanelsWithSizes\n const size = remainingSize / numRemainingPanels\n\n numPanelsWithSizes++\n layout[index] = size\n remainingSize -= size\n }\n\n return layout\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"calculate.js","sources":["../../src/Splitter/utils/calculate.ts"],"sourcesContent":["import type { PanelData } from '../SplitterPanel.vue'\nimport type { Direction, DragState, ResizeEvent } from './types'\nimport { assert } from './assert'\nimport { getPanelGroupElement, getResizeHandleElement } from './dom'\nimport { getResizeEventCursorPosition, isKeyDown } from './events'\n\nexport function calculateDragOffsetPercentage(\n event: ResizeEvent,\n dragHandleId: string,\n direction: Direction,\n initialDragState: DragState,\n panelGroupElement: HTMLElement,\n): number {\n const isHorizontal = direction === 'horizontal'\n\n const handleElement = getResizeHandleElement(dragHandleId, panelGroupElement)\n assert(handleElement)\n\n const groupId = handleElement.getAttribute('data-panel-group-id')\n assert(groupId)\n\n const { initialCursorPosition } = initialDragState\n\n const cursorPosition = getResizeEventCursorPosition(direction, event)\n\n const groupElement = getPanelGroupElement(groupId, panelGroupElement)\n assert(groupElement)\n\n const groupRect = groupElement.getBoundingClientRect()\n const groupSizeInPixels = isHorizontal ? groupRect.width : groupRect.height\n\n const offsetPixels = cursorPosition - initialCursorPosition\n const offsetPercentage = (offsetPixels / groupSizeInPixels) * 100\n\n return offsetPercentage\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/movementX\nexport function calculateDeltaPercentage(\n event: ResizeEvent,\n dragHandleId: string,\n direction: Direction,\n initialDragState: DragState | null,\n keyboardResizeBy: number | null,\n panelGroupElement: HTMLElement,\n): number {\n if (isKeyDown(event)) {\n const isHorizontal = direction === 'horizontal'\n\n let delta = 0\n if (event.shiftKey)\n delta = 100\n else\n delta = keyboardResizeBy ?? 10\n\n let movement = 0\n switch (event.key) {\n case 'ArrowDown':\n movement = isHorizontal ? 0 : delta\n break\n case 'ArrowLeft':\n movement = isHorizontal ? -delta : 0\n break\n case 'ArrowRight':\n movement = isHorizontal ? delta : 0\n break\n case 'ArrowUp':\n movement = isHorizontal ? 0 : -delta\n break\n case 'End':\n movement = 100\n break\n case 'Home':\n movement = -100\n break\n }\n\n return movement\n }\n else {\n if (initialDragState == null)\n return 0\n\n return calculateDragOffsetPercentage(\n event,\n dragHandleId,\n direction,\n initialDragState,\n panelGroupElement,\n )\n }\n}\n\nexport function calculateAriaValues({\n layout,\n panelsArray,\n pivotIndices,\n}: {\n layout: number[]\n panelsArray: PanelData[]\n pivotIndices: number[]\n}) {\n let currentMinSize = 0\n let currentMaxSize = 100\n let totalMinSize = 0\n let totalMaxSize = 0\n\n const firstIndex = pivotIndices[0]\n assert(firstIndex != null)\n\n // A panel's effective min/max sizes also need to account for other panel's sizes.\n panelsArray.forEach((panelData, index) => {\n const { constraints } = panelData\n const { maxSize = 100, minSize = 0 } = constraints\n\n if (index === firstIndex) {\n currentMinSize = minSize\n currentMaxSize = maxSize\n }\n else {\n totalMinSize += minSize\n totalMaxSize += maxSize\n }\n })\n\n const valueMax = Math.min(currentMaxSize, 100 - totalMinSize)\n const valueMin = Math.max(currentMinSize, 100 - totalMaxSize)\n\n const valueNow = layout[firstIndex]\n\n return {\n valueMax,\n valueMin,\n valueNow,\n }\n}\n\nexport function calculateUnsafeDefaultLayout({\n panelDataArray,\n}: {\n panelDataArray: PanelData[]\n}): number[] {\n const layout: number[] = Array.from({ length: panelDataArray.length })\n\n const panelConstraintsArray = panelDataArray.map(\n panelData => panelData.constraints,\n )\n\n let numPanelsWithSizes = 0\n let remainingSize = 100\n\n // Distribute default sizes first\n for (let index = 0; index < panelDataArray.length; index++) {\n const panelConstraints = panelConstraintsArray[index]\n assert(panelConstraints)\n const { defaultSize } = panelConstraints\n\n if (defaultSize != null) {\n numPanelsWithSizes++\n layout[index] = defaultSize\n remainingSize -= defaultSize\n }\n }\n\n // Remaining size should be distributed evenly between panels without default sizes\n for (let index = 0; index < panelDataArray.length; index++) {\n const panelConstraints = panelConstraintsArray[index]\n assert(panelConstraints)\n const { defaultSize } = panelConstraints\n\n if (defaultSize != null)\n continue\n\n const numRemainingPanels = panelDataArray.length - numPanelsWithSizes\n const size = remainingSize / numRemainingPanels\n\n numPanelsWithSizes++\n layout[index] = size\n remainingSize -= size\n }\n\n return layout\n}\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"dom.cjs","sources":["../../src/Splitter/utils/dom.ts"],"sourcesContent":["import { isBrowser } from '@/shared'\nimport type { PanelData } from '../SplitterPanel.vue'\n\nexport function getPanelElement(\n id: string,\n scope: ParentNode | HTMLElement = document,\n): HTMLElement | null {\n if (!isBrowser)\n return null\n const element = scope.querySelector(`[data-panel-id=\"${id}\"]`)\n if (element)\n return element as HTMLElement\n\n return null\n}\n\nexport function getPanelElementsForGroup(\n groupId: string,\n scope: ParentNode | HTMLElement = document,\n): HTMLElement[] {\n if (!isBrowser)\n return []\n return Array.from(\n scope.querySelectorAll(`[data-panel][data-panel-group-id=\"${groupId}\"]`),\n )\n}\n\nexport function getPanelGroupElement(\n id: string,\n rootElement: ParentNode | HTMLElement = document,\n): HTMLElement | null {\n if (!isBrowser)\n return null\n // If the root element is the PanelGroup\n if (\n rootElement instanceof HTMLElement\n && (rootElement as HTMLElement)?.dataset?.panelGroupId === id\n ) {\n return rootElement as HTMLElement\n }\n\n // Else query children\n const element = rootElement.querySelector(\n `[data-panel-group][data-panel-group-id=\"${id}\"]`,\n )\n if (element)\n return element as HTMLElement\n\n return null\n}\n\nexport function getResizeHandleElement(\n id: string,\n scope: ParentNode | HTMLElement = document,\n): HTMLElement | null {\n if (!isBrowser)\n return null\n const element = scope.querySelector(`[data-panel-resize-handle-id=\"${id}\"]`)\n if (element)\n return element as HTMLElement\n\n return null\n}\n\nexport function getResizeHandleElementIndex(\n groupId: string,\n id: string,\n scope: ParentNode | HTMLElement = document,\n): number | null {\n if (!isBrowser)\n return null\n const handles = getResizeHandleElementsForGroup(groupId, scope)\n const index = handles.findIndex(\n handle => handle.getAttribute('data-panel-resize-handle-id') === id,\n )\n return index ?? null\n}\n\nexport function getResizeHandleElementsForGroup(\n groupId: string,\n scope: ParentNode | HTMLElement = document,\n): HTMLElement[] {\n if (!isBrowser)\n return []\n return Array.from(\n scope.querySelectorAll(\n `[data-panel-resize-handle-id][data-panel-group-id=\"${groupId}\"]`,\n ),\n )\n}\n\nexport function getResizeHandlePanelIds(\n groupId: string,\n handleId: string,\n panelsArray: PanelData[],\n scope: ParentNode | HTMLElement = document,\n): [idBefore: string | null, idAfter: string | null] {\n const handle = getResizeHandleElement(handleId, scope)\n const handles = getResizeHandleElementsForGroup(groupId, scope)\n const index = handle ? handles.indexOf(handle) : -1\n\n const idBefore: string | null = panelsArray[index]?.id ?? null\n const idAfter: string | null = panelsArray[index + 1]?.id ?? null\n\n return [idBefore, idAfter]\n}\n"],"names":["isBrowser"],"mappings":";;;;AA2BgB,SAAA,oBAAA,CACd,EACA,EAAA,WAAA,GAAwC,QACpB,EAAA;AACpB,EAAA,IAAI,CAACA,wBAAA;AACH,IAAO,OAAA,IAAA;AAET,EAAA,IACE,WAAuB,YAAA,WAAA,IACnB,WAA6B,EAAA,OAAA,EAAS,iBAAiB,EAC3D,EAAA;AACA,IAAO,OAAA,WAAA;AAAA;AAIT,EAAA,MAAM,UAAU,WAAY,CAAA,aAAA;AAAA,IAC1B,2CAA2C,EAAE,CAAA,EAAA;AAAA,GAC/C;AACA,EAAI,IAAA,OAAA;AACF,IAAO,OAAA,OAAA;AAET,EAAO,OAAA,IAAA;AACT;AAEgB,SAAA,sBAAA,CACd,EACA,EAAA,KAAA,GAAkC,QACd,EAAA;AACpB,EAAA,IAAI,CAACA,wBAAA;AACH,IAAO,OAAA,IAAA;AACT,EAAA,MAAM,OAAU,GAAA,KAAA,CAAM,aAAc,CAAA,CAAA,8BAAA,EAAiC,EAAE,CAAI,EAAA,CAAA,CAAA;AAC3E,EAAI,IAAA,OAAA;AACF,IAAO,OAAA,OAAA;AAET,EAAO,OAAA,IAAA;AACT;AAEO,SAAS,2BACd,CAAA,OAAA,EACA,EACA,EAAA,KAAA,GAAkC,QACnB,EAAA;AACf,EAAA,IAAI,CAACA,wBAAA;AACH,IAAO,OAAA,IAAA;AACT,EAAM,MAAA,OAAA,GAAU,+BAAgC,CAAA,OAAA,EAAS,KAAK,CAAA;AAC9D,EAAA,MAAM,QAAQ,OAAQ,CAAA,SAAA;AAAA,IACpB,CAAU,MAAA,KAAA,MAAA,CAAO,YAAa,CAAA,6BAA6B,CAAM,KAAA;AAAA,GACnE;AACA,EAAA,OAAO,KAAS,IAAA,IAAA;AAClB;AAEgB,SAAA,+BAAA,CACd,OACA,EAAA,KAAA,GAAkC,QACnB,EAAA;AACf,EAAA,IAAI,CAACA,wBAAA;AACH,IAAA,OAAO,EAAC;AACV,EAAA,OAAO,KAAM,CAAA,IAAA;AAAA,IACX,KAAM,CAAA,gBAAA;AAAA,MACJ,sDAAsD,OAAO,CAAA,EAAA;AAAA;AAC/D,GACF;AACF;AAEO,SAAS,uBACd,CAAA,OAAA,EACA,QACA,EAAA,WAAA,EACA,QAAkC,QACiB,EAAA;AACnD,EAAM,MAAA,MAAA,GAAS,sBAAuB,CAAA,QAAA,EAAU,KAAK,CAAA;AACrD,EAAM,MAAA,OAAA,GAAU,+BAAgC,CAAA,OAAA,EAAS,KAAK,CAAA;AAC9D,EAAA,MAAM,KAAQ,GAAA,MAAA,GAAS,OAAQ,CAAA,OAAA,CAAQ,MAAM,CAAI,GAAA,EAAA;AAEjD,EAAA,MAAM,QAA0B,GAAA,WAAA,CAAY,KAAK,CAAA,EAAG,EAAM,IAAA,IAAA;AAC1D,EAAA,MAAM,OAAyB,GAAA,WAAA,CAAY,KAAQ,GAAA,CAAC,GAAG,EAAM,IAAA,IAAA;AAE7D,EAAO,OAAA,CAAC,UAAU,OAAO,CAAA;AAC3B;;;;;;;;"}
1
+ {"version":3,"file":"dom.cjs","sources":["../../src/Splitter/utils/dom.ts"],"sourcesContent":["import type { PanelData } from '../SplitterPanel.vue'\nimport { isBrowser } from '@/shared'\n\nexport function getPanelElement(\n id: string,\n scope: ParentNode | HTMLElement = document,\n): HTMLElement | null {\n if (!isBrowser)\n return null\n const element = scope.querySelector(`[data-panel-id=\"${id}\"]`)\n if (element)\n return element as HTMLElement\n\n return null\n}\n\nexport function getPanelElementsForGroup(\n groupId: string,\n scope: ParentNode | HTMLElement = document,\n): HTMLElement[] {\n if (!isBrowser)\n return []\n return Array.from(\n scope.querySelectorAll(`[data-panel][data-panel-group-id=\"${groupId}\"]`),\n )\n}\n\nexport function getPanelGroupElement(\n id: string,\n rootElement: ParentNode | HTMLElement = document,\n): HTMLElement | null {\n if (!isBrowser)\n return null\n // If the root element is the PanelGroup\n if (\n rootElement instanceof HTMLElement\n && (rootElement as HTMLElement)?.dataset?.panelGroupId === id\n ) {\n return rootElement as HTMLElement\n }\n\n // Else query children\n const element = rootElement.querySelector(\n `[data-panel-group][data-panel-group-id=\"${id}\"]`,\n )\n if (element)\n return element as HTMLElement\n\n return null\n}\n\nexport function getResizeHandleElement(\n id: string,\n scope: ParentNode | HTMLElement = document,\n): HTMLElement | null {\n if (!isBrowser)\n return null\n const element = scope.querySelector(`[data-panel-resize-handle-id=\"${id}\"]`)\n if (element)\n return element as HTMLElement\n\n return null\n}\n\nexport function getResizeHandleElementIndex(\n groupId: string,\n id: string,\n scope: ParentNode | HTMLElement = document,\n): number | null {\n if (!isBrowser)\n return null\n const handles = getResizeHandleElementsForGroup(groupId, scope)\n const index = handles.findIndex(\n handle => handle.getAttribute('data-panel-resize-handle-id') === id,\n )\n return index ?? null\n}\n\nexport function getResizeHandleElementsForGroup(\n groupId: string,\n scope: ParentNode | HTMLElement = document,\n): HTMLElement[] {\n if (!isBrowser)\n return []\n return Array.from(\n scope.querySelectorAll(\n `[data-panel-resize-handle-id][data-panel-group-id=\"${groupId}\"]`,\n ),\n )\n}\n\nexport function getResizeHandlePanelIds(\n groupId: string,\n handleId: string,\n panelsArray: PanelData[],\n scope: ParentNode | HTMLElement = document,\n): [idBefore: string | null, idAfter: string | null] {\n const handle = getResizeHandleElement(handleId, scope)\n const handles = getResizeHandleElementsForGroup(groupId, scope)\n const index = handle ? handles.indexOf(handle) : -1\n\n const idBefore: string | null = panelsArray[index]?.id ?? null\n const idAfter: string | null = panelsArray[index + 1]?.id ?? null\n\n return [idBefore, idAfter]\n}\n"],"names":["isBrowser"],"mappings":";;;;AA2BgB,SAAA,oBAAA,CACd,EACA,EAAA,WAAA,GAAwC,QACpB,EAAA;AACpB,EAAA,IAAI,CAACA,wBAAA;AACH,IAAO,OAAA,IAAA;AAET,EAAA,IACE,WAAuB,YAAA,WAAA,IACnB,WAA6B,EAAA,OAAA,EAAS,iBAAiB,EAC3D,EAAA;AACA,IAAO,OAAA,WAAA;AAAA;AAIT,EAAA,MAAM,UAAU,WAAY,CAAA,aAAA;AAAA,IAC1B,2CAA2C,EAAE,CAAA,EAAA;AAAA,GAC/C;AACA,EAAI,IAAA,OAAA;AACF,IAAO,OAAA,OAAA;AAET,EAAO,OAAA,IAAA;AACT;AAEgB,SAAA,sBAAA,CACd,EACA,EAAA,KAAA,GAAkC,QACd,EAAA;AACpB,EAAA,IAAI,CAACA,wBAAA;AACH,IAAO,OAAA,IAAA;AACT,EAAA,MAAM,OAAU,GAAA,KAAA,CAAM,aAAc,CAAA,CAAA,8BAAA,EAAiC,EAAE,CAAI,EAAA,CAAA,CAAA;AAC3E,EAAI,IAAA,OAAA;AACF,IAAO,OAAA,OAAA;AAET,EAAO,OAAA,IAAA;AACT;AAEO,SAAS,2BACd,CAAA,OAAA,EACA,EACA,EAAA,KAAA,GAAkC,QACnB,EAAA;AACf,EAAA,IAAI,CAACA,wBAAA;AACH,IAAO,OAAA,IAAA;AACT,EAAM,MAAA,OAAA,GAAU,+BAAgC,CAAA,OAAA,EAAS,KAAK,CAAA;AAC9D,EAAA,MAAM,QAAQ,OAAQ,CAAA,SAAA;AAAA,IACpB,CAAU,MAAA,KAAA,MAAA,CAAO,YAAa,CAAA,6BAA6B,CAAM,KAAA;AAAA,GACnE;AACA,EAAA,OAAO,KAAS,IAAA,IAAA;AAClB;AAEgB,SAAA,+BAAA,CACd,OACA,EAAA,KAAA,GAAkC,QACnB,EAAA;AACf,EAAA,IAAI,CAACA,wBAAA;AACH,IAAA,OAAO,EAAC;AACV,EAAA,OAAO,KAAM,CAAA,IAAA;AAAA,IACX,KAAM,CAAA,gBAAA;AAAA,MACJ,sDAAsD,OAAO,CAAA,EAAA;AAAA;AAC/D,GACF;AACF;AAEO,SAAS,uBACd,CAAA,OAAA,EACA,QACA,EAAA,WAAA,EACA,QAAkC,QACiB,EAAA;AACnD,EAAM,MAAA,MAAA,GAAS,sBAAuB,CAAA,QAAA,EAAU,KAAK,CAAA;AACrD,EAAM,MAAA,OAAA,GAAU,+BAAgC,CAAA,OAAA,EAAS,KAAK,CAAA;AAC9D,EAAA,MAAM,KAAQ,GAAA,MAAA,GAAS,OAAQ,CAAA,OAAA,CAAQ,MAAM,CAAI,GAAA,EAAA;AAEjD,EAAA,MAAM,QAA0B,GAAA,WAAA,CAAY,KAAK,CAAA,EAAG,EAAM,IAAA,IAAA;AAC1D,EAAA,MAAM,OAAyB,GAAA,WAAA,CAAY,KAAQ,GAAA,CAAC,GAAG,EAAM,IAAA,IAAA;AAE7D,EAAO,OAAA,CAAC,UAAU,OAAO,CAAA;AAC3B;;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"dom.js","sources":["../../src/Splitter/utils/dom.ts"],"sourcesContent":["import { isBrowser } from '@/shared'\nimport type { PanelData } from '../SplitterPanel.vue'\n\nexport function getPanelElement(\n id: string,\n scope: ParentNode | HTMLElement = document,\n): HTMLElement | null {\n if (!isBrowser)\n return null\n const element = scope.querySelector(`[data-panel-id=\"${id}\"]`)\n if (element)\n return element as HTMLElement\n\n return null\n}\n\nexport function getPanelElementsForGroup(\n groupId: string,\n scope: ParentNode | HTMLElement = document,\n): HTMLElement[] {\n if (!isBrowser)\n return []\n return Array.from(\n scope.querySelectorAll(`[data-panel][data-panel-group-id=\"${groupId}\"]`),\n )\n}\n\nexport function getPanelGroupElement(\n id: string,\n rootElement: ParentNode | HTMLElement = document,\n): HTMLElement | null {\n if (!isBrowser)\n return null\n // If the root element is the PanelGroup\n if (\n rootElement instanceof HTMLElement\n && (rootElement as HTMLElement)?.dataset?.panelGroupId === id\n ) {\n return rootElement as HTMLElement\n }\n\n // Else query children\n const element = rootElement.querySelector(\n `[data-panel-group][data-panel-group-id=\"${id}\"]`,\n )\n if (element)\n return element as HTMLElement\n\n return null\n}\n\nexport function getResizeHandleElement(\n id: string,\n scope: ParentNode | HTMLElement = document,\n): HTMLElement | null {\n if (!isBrowser)\n return null\n const element = scope.querySelector(`[data-panel-resize-handle-id=\"${id}\"]`)\n if (element)\n return element as HTMLElement\n\n return null\n}\n\nexport function getResizeHandleElementIndex(\n groupId: string,\n id: string,\n scope: ParentNode | HTMLElement = document,\n): number | null {\n if (!isBrowser)\n return null\n const handles = getResizeHandleElementsForGroup(groupId, scope)\n const index = handles.findIndex(\n handle => handle.getAttribute('data-panel-resize-handle-id') === id,\n )\n return index ?? null\n}\n\nexport function getResizeHandleElementsForGroup(\n groupId: string,\n scope: ParentNode | HTMLElement = document,\n): HTMLElement[] {\n if (!isBrowser)\n return []\n return Array.from(\n scope.querySelectorAll(\n `[data-panel-resize-handle-id][data-panel-group-id=\"${groupId}\"]`,\n ),\n )\n}\n\nexport function getResizeHandlePanelIds(\n groupId: string,\n handleId: string,\n panelsArray: PanelData[],\n scope: ParentNode | HTMLElement = document,\n): [idBefore: string | null, idAfter: string | null] {\n const handle = getResizeHandleElement(handleId, scope)\n const handles = getResizeHandleElementsForGroup(groupId, scope)\n const index = handle ? handles.indexOf(handle) : -1\n\n const idBefore: string | null = panelsArray[index]?.id ?? null\n const idAfter: string | null = panelsArray[index + 1]?.id ?? null\n\n return [idBefore, idAfter]\n}\n"],"names":[],"mappings":";;AA2BgB,SAAA,oBAAA,CACd,EACA,EAAA,WAAA,GAAwC,QACpB,EAAA;AACpB,EAAA,IAAI,CAAC,SAAA;AACH,IAAO,OAAA,IAAA;AAET,EAAA,IACE,WAAuB,YAAA,WAAA,IACnB,WAA6B,EAAA,OAAA,EAAS,iBAAiB,EAC3D,EAAA;AACA,IAAO,OAAA,WAAA;AAAA;AAIT,EAAA,MAAM,UAAU,WAAY,CAAA,aAAA;AAAA,IAC1B,2CAA2C,EAAE,CAAA,EAAA;AAAA,GAC/C;AACA,EAAI,IAAA,OAAA;AACF,IAAO,OAAA,OAAA;AAET,EAAO,OAAA,IAAA;AACT;AAEgB,SAAA,sBAAA,CACd,EACA,EAAA,KAAA,GAAkC,QACd,EAAA;AACpB,EAAA,IAAI,CAAC,SAAA;AACH,IAAO,OAAA,IAAA;AACT,EAAA,MAAM,OAAU,GAAA,KAAA,CAAM,aAAc,CAAA,CAAA,8BAAA,EAAiC,EAAE,CAAI,EAAA,CAAA,CAAA;AAC3E,EAAI,IAAA,OAAA;AACF,IAAO,OAAA,OAAA;AAET,EAAO,OAAA,IAAA;AACT;AAEO,SAAS,2BACd,CAAA,OAAA,EACA,EACA,EAAA,KAAA,GAAkC,QACnB,EAAA;AACf,EAAA,IAAI,CAAC,SAAA;AACH,IAAO,OAAA,IAAA;AACT,EAAM,MAAA,OAAA,GAAU,+BAAgC,CAAA,OAAA,EAAS,KAAK,CAAA;AAC9D,EAAA,MAAM,QAAQ,OAAQ,CAAA,SAAA;AAAA,IACpB,CAAU,MAAA,KAAA,MAAA,CAAO,YAAa,CAAA,6BAA6B,CAAM,KAAA;AAAA,GACnE;AACA,EAAA,OAAO,KAAS,IAAA,IAAA;AAClB;AAEgB,SAAA,+BAAA,CACd,OACA,EAAA,KAAA,GAAkC,QACnB,EAAA;AACf,EAAA,IAAI,CAAC,SAAA;AACH,IAAA,OAAO,EAAC;AACV,EAAA,OAAO,KAAM,CAAA,IAAA;AAAA,IACX,KAAM,CAAA,gBAAA;AAAA,MACJ,sDAAsD,OAAO,CAAA,EAAA;AAAA;AAC/D,GACF;AACF;AAEO,SAAS,uBACd,CAAA,OAAA,EACA,QACA,EAAA,WAAA,EACA,QAAkC,QACiB,EAAA;AACnD,EAAM,MAAA,MAAA,GAAS,sBAAuB,CAAA,QAAA,EAAU,KAAK,CAAA;AACrD,EAAM,MAAA,OAAA,GAAU,+BAAgC,CAAA,OAAA,EAAS,KAAK,CAAA;AAC9D,EAAA,MAAM,KAAQ,GAAA,MAAA,GAAS,OAAQ,CAAA,OAAA,CAAQ,MAAM,CAAI,GAAA,EAAA;AAEjD,EAAA,MAAM,QAA0B,GAAA,WAAA,CAAY,KAAK,CAAA,EAAG,EAAM,IAAA,IAAA;AAC1D,EAAA,MAAM,OAAyB,GAAA,WAAA,CAAY,KAAQ,GAAA,CAAC,GAAG,EAAM,IAAA,IAAA;AAE7D,EAAO,OAAA,CAAC,UAAU,OAAO,CAAA;AAC3B;;;;"}
1
+ {"version":3,"file":"dom.js","sources":["../../src/Splitter/utils/dom.ts"],"sourcesContent":["import type { PanelData } from '../SplitterPanel.vue'\nimport { isBrowser } from '@/shared'\n\nexport function getPanelElement(\n id: string,\n scope: ParentNode | HTMLElement = document,\n): HTMLElement | null {\n if (!isBrowser)\n return null\n const element = scope.querySelector(`[data-panel-id=\"${id}\"]`)\n if (element)\n return element as HTMLElement\n\n return null\n}\n\nexport function getPanelElementsForGroup(\n groupId: string,\n scope: ParentNode | HTMLElement = document,\n): HTMLElement[] {\n if (!isBrowser)\n return []\n return Array.from(\n scope.querySelectorAll(`[data-panel][data-panel-group-id=\"${groupId}\"]`),\n )\n}\n\nexport function getPanelGroupElement(\n id: string,\n rootElement: ParentNode | HTMLElement = document,\n): HTMLElement | null {\n if (!isBrowser)\n return null\n // If the root element is the PanelGroup\n if (\n rootElement instanceof HTMLElement\n && (rootElement as HTMLElement)?.dataset?.panelGroupId === id\n ) {\n return rootElement as HTMLElement\n }\n\n // Else query children\n const element = rootElement.querySelector(\n `[data-panel-group][data-panel-group-id=\"${id}\"]`,\n )\n if (element)\n return element as HTMLElement\n\n return null\n}\n\nexport function getResizeHandleElement(\n id: string,\n scope: ParentNode | HTMLElement = document,\n): HTMLElement | null {\n if (!isBrowser)\n return null\n const element = scope.querySelector(`[data-panel-resize-handle-id=\"${id}\"]`)\n if (element)\n return element as HTMLElement\n\n return null\n}\n\nexport function getResizeHandleElementIndex(\n groupId: string,\n id: string,\n scope: ParentNode | HTMLElement = document,\n): number | null {\n if (!isBrowser)\n return null\n const handles = getResizeHandleElementsForGroup(groupId, scope)\n const index = handles.findIndex(\n handle => handle.getAttribute('data-panel-resize-handle-id') === id,\n )\n return index ?? null\n}\n\nexport function getResizeHandleElementsForGroup(\n groupId: string,\n scope: ParentNode | HTMLElement = document,\n): HTMLElement[] {\n if (!isBrowser)\n return []\n return Array.from(\n scope.querySelectorAll(\n `[data-panel-resize-handle-id][data-panel-group-id=\"${groupId}\"]`,\n ),\n )\n}\n\nexport function getResizeHandlePanelIds(\n groupId: string,\n handleId: string,\n panelsArray: PanelData[],\n scope: ParentNode | HTMLElement = document,\n): [idBefore: string | null, idAfter: string | null] {\n const handle = getResizeHandleElement(handleId, scope)\n const handles = getResizeHandleElementsForGroup(groupId, scope)\n const index = handle ? handles.indexOf(handle) : -1\n\n const idBefore: string | null = panelsArray[index]?.id ?? null\n const idAfter: string | null = panelsArray[index + 1]?.id ?? null\n\n return [idBefore, idAfter]\n}\n"],"names":[],"mappings":";;AA2BgB,SAAA,oBAAA,CACd,EACA,EAAA,WAAA,GAAwC,QACpB,EAAA;AACpB,EAAA,IAAI,CAAC,SAAA;AACH,IAAO,OAAA,IAAA;AAET,EAAA,IACE,WAAuB,YAAA,WAAA,IACnB,WAA6B,EAAA,OAAA,EAAS,iBAAiB,EAC3D,EAAA;AACA,IAAO,OAAA,WAAA;AAAA;AAIT,EAAA,MAAM,UAAU,WAAY,CAAA,aAAA;AAAA,IAC1B,2CAA2C,EAAE,CAAA,EAAA;AAAA,GAC/C;AACA,EAAI,IAAA,OAAA;AACF,IAAO,OAAA,OAAA;AAET,EAAO,OAAA,IAAA;AACT;AAEgB,SAAA,sBAAA,CACd,EACA,EAAA,KAAA,GAAkC,QACd,EAAA;AACpB,EAAA,IAAI,CAAC,SAAA;AACH,IAAO,OAAA,IAAA;AACT,EAAA,MAAM,OAAU,GAAA,KAAA,CAAM,aAAc,CAAA,CAAA,8BAAA,EAAiC,EAAE,CAAI,EAAA,CAAA,CAAA;AAC3E,EAAI,IAAA,OAAA;AACF,IAAO,OAAA,OAAA;AAET,EAAO,OAAA,IAAA;AACT;AAEO,SAAS,2BACd,CAAA,OAAA,EACA,EACA,EAAA,KAAA,GAAkC,QACnB,EAAA;AACf,EAAA,IAAI,CAAC,SAAA;AACH,IAAO,OAAA,IAAA;AACT,EAAM,MAAA,OAAA,GAAU,+BAAgC,CAAA,OAAA,EAAS,KAAK,CAAA;AAC9D,EAAA,MAAM,QAAQ,OAAQ,CAAA,SAAA;AAAA,IACpB,CAAU,MAAA,KAAA,MAAA,CAAO,YAAa,CAAA,6BAA6B,CAAM,KAAA;AAAA,GACnE;AACA,EAAA,OAAO,KAAS,IAAA,IAAA;AAClB;AAEgB,SAAA,+BAAA,CACd,OACA,EAAA,KAAA,GAAkC,QACnB,EAAA;AACf,EAAA,IAAI,CAAC,SAAA;AACH,IAAA,OAAO,EAAC;AACV,EAAA,OAAO,KAAM,CAAA,IAAA;AAAA,IACX,KAAM,CAAA,gBAAA;AAAA,MACJ,sDAAsD,OAAO,CAAA,EAAA;AAAA;AAC/D,GACF;AACF;AAEO,SAAS,uBACd,CAAA,OAAA,EACA,QACA,EAAA,WAAA,EACA,QAAkC,QACiB,EAAA;AACnD,EAAM,MAAA,MAAA,GAAS,sBAAuB,CAAA,QAAA,EAAU,KAAK,CAAA;AACrD,EAAM,MAAA,OAAA,GAAU,+BAAgC,CAAA,OAAA,EAAS,KAAK,CAAA;AAC9D,EAAA,MAAM,KAAQ,GAAA,MAAA,GAAS,OAAQ,CAAA,OAAA,CAAQ,MAAM,CAAI,GAAA,EAAA;AAEjD,EAAA,MAAM,QAA0B,GAAA,WAAA,CAAY,KAAK,CAAA,EAAG,EAAM,IAAA,IAAA;AAC1D,EAAA,MAAM,OAAyB,GAAA,WAAA,CAAY,KAAQ,GAAA,CAAC,GAAG,EAAM,IAAA,IAAA;AAE7D,EAAO,OAAA,CAAC,UAAU,OAAO,CAAA;AAC3B;;;;"}
@@ -1,9 +1,9 @@
1
1
  'use strict';
2
2
 
3
- const utils_style = require('./style.cjs');
4
3
  const utils_events = require('./events.cjs');
5
4
  const utils_rects = require('./rects.cjs');
6
5
  const utils_stackingOrder = require('./stackingOrder.cjs');
6
+ const utils_style = require('./style.cjs');
7
7
 
8
8
  const EXCEEDED_HORIZONTAL_MIN = 1;
9
9
  const EXCEEDED_HORIZONTAL_MAX = 2;