reka-ui 2.2.1 → 2.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (556) hide show
  1. package/dist/Accordion/AccordionItem.cjs.map +1 -1
  2. package/dist/Accordion/AccordionItem.js.map +1 -1
  3. package/dist/Accordion/AccordionRoot.cjs.map +1 -1
  4. package/dist/Accordion/AccordionRoot.js.map +1 -1
  5. package/dist/AlertDialog/AlertDialogCancel.cjs.map +1 -1
  6. package/dist/AlertDialog/AlertDialogCancel.js.map +1 -1
  7. package/dist/AlertDialog/AlertDialogContent.cjs.map +1 -1
  8. package/dist/AlertDialog/AlertDialogContent.js.map +1 -1
  9. package/dist/AspectRatio/AspectRatio.cjs.map +1 -1
  10. package/dist/AspectRatio/AspectRatio.js.map +1 -1
  11. package/dist/Avatar/AvatarFallback.cjs +11 -14
  12. package/dist/Avatar/AvatarFallback.cjs.map +1 -1
  13. package/dist/Avatar/AvatarFallback.js +12 -15
  14. package/dist/Avatar/AvatarFallback.js.map +1 -1
  15. package/dist/Avatar/AvatarImage.cjs +3 -2
  16. package/dist/Avatar/AvatarImage.cjs.map +1 -1
  17. package/dist/Avatar/AvatarImage.js +3 -2
  18. package/dist/Avatar/AvatarImage.js.map +1 -1
  19. package/dist/Avatar/AvatarRoot.cjs +1 -1
  20. package/dist/Avatar/AvatarRoot.cjs.map +1 -1
  21. package/dist/Avatar/AvatarRoot.js +1 -1
  22. package/dist/Avatar/AvatarRoot.js.map +1 -1
  23. package/dist/Avatar/utils.cjs +43 -16
  24. package/dist/Avatar/utils.cjs.map +1 -1
  25. package/dist/Avatar/utils.js +44 -17
  26. package/dist/Avatar/utils.js.map +1 -1
  27. package/dist/Calendar/CalendarCell.cjs +2 -2
  28. package/dist/Calendar/CalendarCell.cjs.map +1 -1
  29. package/dist/Calendar/CalendarCell.js +2 -2
  30. package/dist/Calendar/CalendarCell.js.map +1 -1
  31. package/dist/Calendar/CalendarCellTrigger.cjs +5 -1
  32. package/dist/Calendar/CalendarCellTrigger.cjs.map +1 -1
  33. package/dist/Calendar/CalendarCellTrigger.js +5 -1
  34. package/dist/Calendar/CalendarCellTrigger.js.map +1 -1
  35. package/dist/Calendar/CalendarGrid.cjs.map +1 -1
  36. package/dist/Calendar/CalendarGrid.js.map +1 -1
  37. package/dist/Calendar/CalendarHeading.cjs.map +1 -1
  38. package/dist/Calendar/CalendarHeading.js.map +1 -1
  39. package/dist/Calendar/CalendarNext.cjs.map +1 -1
  40. package/dist/Calendar/CalendarNext.js.map +1 -1
  41. package/dist/Calendar/CalendarPrev.cjs.map +1 -1
  42. package/dist/Calendar/CalendarPrev.js.map +1 -1
  43. package/dist/Calendar/CalendarRoot.cjs +7 -4
  44. package/dist/Calendar/CalendarRoot.cjs.map +1 -1
  45. package/dist/Calendar/CalendarRoot.js +7 -4
  46. package/dist/Calendar/CalendarRoot.js.map +1 -1
  47. package/dist/Calendar/useCalendar.cjs +2 -2
  48. package/dist/Calendar/useCalendar.cjs.map +1 -1
  49. package/dist/Calendar/useCalendar.js +2 -2
  50. package/dist/Calendar/useCalendar.js.map +1 -1
  51. package/dist/Checkbox/CheckboxGroupRoot.cjs.map +1 -1
  52. package/dist/Checkbox/CheckboxGroupRoot.js.map +1 -1
  53. package/dist/Checkbox/CheckboxRoot.cjs.map +1 -1
  54. package/dist/Checkbox/CheckboxRoot.js.map +1 -1
  55. package/dist/Collapsible/CollapsibleContent.cjs.map +1 -1
  56. package/dist/Collapsible/CollapsibleContent.js.map +1 -1
  57. package/dist/Collapsible/CollapsibleRoot.cjs +2 -0
  58. package/dist/Collapsible/CollapsibleRoot.cjs.map +1 -1
  59. package/dist/Collapsible/CollapsibleRoot.js +2 -0
  60. package/dist/Collapsible/CollapsibleRoot.js.map +1 -1
  61. package/dist/Collection/Collection.cjs.map +1 -1
  62. package/dist/Collection/Collection.js.map +1 -1
  63. package/dist/Combobox/ComboboxContentImpl.cjs.map +1 -1
  64. package/dist/Combobox/ComboboxContentImpl.js.map +1 -1
  65. package/dist/Combobox/ComboboxGroup.cjs.map +1 -1
  66. package/dist/Combobox/ComboboxGroup.js.map +1 -1
  67. package/dist/Combobox/ComboboxInput.cjs.map +1 -1
  68. package/dist/Combobox/ComboboxInput.js.map +1 -1
  69. package/dist/Combobox/ComboboxItem.cjs.map +1 -1
  70. package/dist/Combobox/ComboboxItem.js.map +1 -1
  71. package/dist/Combobox/ComboboxRoot.cjs +1 -2
  72. package/dist/Combobox/ComboboxRoot.cjs.map +1 -1
  73. package/dist/Combobox/ComboboxRoot.js +1 -2
  74. package/dist/Combobox/ComboboxRoot.js.map +1 -1
  75. package/dist/Combobox/ComboboxTrigger.cjs.map +1 -1
  76. package/dist/Combobox/ComboboxTrigger.js.map +1 -1
  77. package/dist/Combobox/ComboboxViewport.cjs.map +1 -1
  78. package/dist/Combobox/ComboboxViewport.js.map +1 -1
  79. package/dist/Combobox/ComboboxVirtualizer.cjs.map +1 -1
  80. package/dist/Combobox/ComboboxVirtualizer.js.map +1 -1
  81. package/dist/ConfigProvider/ConfigProvider.cjs.map +1 -1
  82. package/dist/ConfigProvider/ConfigProvider.js.map +1 -1
  83. package/dist/ContextMenu/ContextMenuContent.cjs.map +1 -1
  84. package/dist/ContextMenu/ContextMenuContent.js.map +1 -1
  85. package/dist/ContextMenu/ContextMenuRoot.cjs.map +1 -1
  86. package/dist/ContextMenu/ContextMenuRoot.js.map +1 -1
  87. package/dist/ContextMenu/ContextMenuSub.cjs +1 -1
  88. package/dist/ContextMenu/ContextMenuSub.cjs.map +1 -1
  89. package/dist/ContextMenu/ContextMenuSub.js +1 -1
  90. package/dist/ContextMenu/ContextMenuSub.js.map +1 -1
  91. package/dist/ContextMenu/ContextMenuTrigger.cjs.map +1 -1
  92. package/dist/ContextMenu/ContextMenuTrigger.js.map +1 -1
  93. package/dist/DateField/DateFieldInput.cjs +1 -0
  94. package/dist/DateField/DateFieldInput.cjs.map +1 -1
  95. package/dist/DateField/DateFieldInput.js +1 -0
  96. package/dist/DateField/DateFieldInput.js.map +1 -1
  97. package/dist/DateField/DateFieldRoot.cjs +7 -1
  98. package/dist/DateField/DateFieldRoot.cjs.map +1 -1
  99. package/dist/DateField/DateFieldRoot.js +7 -1
  100. package/dist/DateField/DateFieldRoot.js.map +1 -1
  101. package/dist/DatePicker/DatePickerCellTrigger.cjs.map +1 -1
  102. package/dist/DatePicker/DatePickerCellTrigger.js.map +1 -1
  103. package/dist/DatePicker/DatePickerContent.cjs +8 -3
  104. package/dist/DatePicker/DatePickerContent.cjs.map +1 -1
  105. package/dist/DatePicker/DatePickerContent.js +9 -4
  106. package/dist/DatePicker/DatePickerContent.js.map +1 -1
  107. package/dist/DatePicker/DatePickerHeading.cjs.map +1 -1
  108. package/dist/DatePicker/DatePickerHeading.js.map +1 -1
  109. package/dist/DatePicker/DatePickerNext.cjs.map +1 -1
  110. package/dist/DatePicker/DatePickerNext.js.map +1 -1
  111. package/dist/DatePicker/DatePickerPrev.cjs.map +1 -1
  112. package/dist/DatePicker/DatePickerPrev.js.map +1 -1
  113. package/dist/DatePicker/DatePickerRoot.cjs +1 -0
  114. package/dist/DatePicker/DatePickerRoot.cjs.map +1 -1
  115. package/dist/DatePicker/DatePickerRoot.js +1 -0
  116. package/dist/DatePicker/DatePickerRoot.js.map +1 -1
  117. package/dist/DateRangeField/DateRangeFieldInput.cjs +1 -0
  118. package/dist/DateRangeField/DateRangeFieldInput.cjs.map +1 -1
  119. package/dist/DateRangeField/DateRangeFieldInput.js +1 -0
  120. package/dist/DateRangeField/DateRangeFieldInput.js.map +1 -1
  121. package/dist/DateRangeField/DateRangeFieldRoot.cjs +13 -9
  122. package/dist/DateRangeField/DateRangeFieldRoot.cjs.map +1 -1
  123. package/dist/DateRangeField/DateRangeFieldRoot.js +13 -9
  124. package/dist/DateRangeField/DateRangeFieldRoot.js.map +1 -1
  125. package/dist/DateRangePicker/DateRangePickerCalendar.cjs +2 -1
  126. package/dist/DateRangePicker/DateRangePickerCalendar.cjs.map +1 -1
  127. package/dist/DateRangePicker/DateRangePickerCalendar.js +2 -1
  128. package/dist/DateRangePicker/DateRangePickerCalendar.js.map +1 -1
  129. package/dist/DateRangePicker/DateRangePickerContent.cjs +8 -3
  130. package/dist/DateRangePicker/DateRangePickerContent.cjs.map +1 -1
  131. package/dist/DateRangePicker/DateRangePickerContent.js +9 -4
  132. package/dist/DateRangePicker/DateRangePickerContent.js.map +1 -1
  133. package/dist/DateRangePicker/DateRangePickerHeading.cjs.map +1 -1
  134. package/dist/DateRangePicker/DateRangePickerHeading.js.map +1 -1
  135. package/dist/DateRangePicker/DateRangePickerNext.cjs.map +1 -1
  136. package/dist/DateRangePicker/DateRangePickerNext.js.map +1 -1
  137. package/dist/DateRangePicker/DateRangePickerPrev.cjs.map +1 -1
  138. package/dist/DateRangePicker/DateRangePickerPrev.js.map +1 -1
  139. package/dist/DateRangePicker/DateRangePickerRoot.cjs +6 -2
  140. package/dist/DateRangePicker/DateRangePickerRoot.cjs.map +1 -1
  141. package/dist/DateRangePicker/DateRangePickerRoot.js +6 -2
  142. package/dist/DateRangePicker/DateRangePickerRoot.js.map +1 -1
  143. package/dist/Dialog/DialogContentImpl.cjs.map +1 -1
  144. package/dist/Dialog/DialogContentImpl.js.map +1 -1
  145. package/dist/Dialog/DialogContentNonModal.cjs.map +1 -1
  146. package/dist/Dialog/DialogContentNonModal.js.map +1 -1
  147. package/dist/Dialog/DialogRoot.cjs +4 -1
  148. package/dist/Dialog/DialogRoot.cjs.map +1 -1
  149. package/dist/Dialog/DialogRoot.js +4 -1
  150. package/dist/Dialog/DialogRoot.js.map +1 -1
  151. package/dist/Dialog/DialogTrigger.cjs.map +1 -1
  152. package/dist/Dialog/DialogTrigger.js.map +1 -1
  153. package/dist/DismissableLayer/DismissableLayer.cjs.map +1 -1
  154. package/dist/DismissableLayer/DismissableLayer.js.map +1 -1
  155. package/dist/DismissableLayer/DismissableLayerBranch.cjs.map +1 -1
  156. package/dist/DismissableLayer/DismissableLayerBranch.js.map +1 -1
  157. package/dist/DismissableLayer/utils.cjs +7 -3
  158. package/dist/DismissableLayer/utils.cjs.map +1 -1
  159. package/dist/DismissableLayer/utils.js +8 -4
  160. package/dist/DismissableLayer/utils.js.map +1 -1
  161. package/dist/DropdownMenu/DropdownMenuContent.cjs.map +1 -1
  162. package/dist/DropdownMenu/DropdownMenuContent.js.map +1 -1
  163. package/dist/DropdownMenu/DropdownMenuRoot.cjs +1 -1
  164. package/dist/DropdownMenu/DropdownMenuRoot.cjs.map +1 -1
  165. package/dist/DropdownMenu/DropdownMenuRoot.js +1 -1
  166. package/dist/DropdownMenu/DropdownMenuRoot.js.map +1 -1
  167. package/dist/DropdownMenu/DropdownMenuSub.cjs +1 -1
  168. package/dist/DropdownMenu/DropdownMenuSub.cjs.map +1 -1
  169. package/dist/DropdownMenu/DropdownMenuSub.js +1 -1
  170. package/dist/DropdownMenu/DropdownMenuSub.js.map +1 -1
  171. package/dist/DropdownMenu/DropdownMenuTrigger.cjs.map +1 -1
  172. package/dist/DropdownMenu/DropdownMenuTrigger.js.map +1 -1
  173. package/dist/Editable/EditableInput.cjs.map +1 -1
  174. package/dist/Editable/EditableInput.js.map +1 -1
  175. package/dist/Editable/EditableRoot.cjs +1 -1
  176. package/dist/Editable/EditableRoot.cjs.map +1 -1
  177. package/dist/Editable/EditableRoot.js +1 -1
  178. package/dist/Editable/EditableRoot.js.map +1 -1
  179. package/dist/FocusScope/FocusScope.cjs.map +1 -1
  180. package/dist/FocusScope/FocusScope.js.map +1 -1
  181. package/dist/HoverCard/HoverCardContentImpl.cjs.map +1 -1
  182. package/dist/HoverCard/HoverCardContentImpl.js.map +1 -1
  183. package/dist/HoverCard/HoverCardRoot.cjs +1 -1
  184. package/dist/HoverCard/HoverCardRoot.cjs.map +1 -1
  185. package/dist/HoverCard/HoverCardRoot.js +1 -1
  186. package/dist/HoverCard/HoverCardRoot.js.map +1 -1
  187. package/dist/Listbox/ListboxFilter.cjs.map +1 -1
  188. package/dist/Listbox/ListboxFilter.js.map +1 -1
  189. package/dist/Listbox/ListboxItem.cjs.map +1 -1
  190. package/dist/Listbox/ListboxItem.js.map +1 -1
  191. package/dist/Listbox/ListboxRoot.cjs +1 -1
  192. package/dist/Listbox/ListboxRoot.cjs.map +1 -1
  193. package/dist/Listbox/ListboxRoot.js +1 -1
  194. package/dist/Listbox/ListboxRoot.js.map +1 -1
  195. package/dist/Listbox/ListboxVirtualizer.cjs +3 -3
  196. package/dist/Listbox/ListboxVirtualizer.cjs.map +1 -1
  197. package/dist/Listbox/ListboxVirtualizer.js +3 -3
  198. package/dist/Listbox/ListboxVirtualizer.js.map +1 -1
  199. package/dist/Menu/MenuCheckboxItem.cjs.map +1 -1
  200. package/dist/Menu/MenuCheckboxItem.js.map +1 -1
  201. package/dist/Menu/MenuContentImpl.cjs.map +1 -1
  202. package/dist/Menu/MenuContentImpl.js.map +1 -1
  203. package/dist/Menu/MenuItemImpl.cjs.map +1 -1
  204. package/dist/Menu/MenuItemImpl.js.map +1 -1
  205. package/dist/Menu/MenuItemIndicator.cjs.map +1 -1
  206. package/dist/Menu/MenuItemIndicator.js.map +1 -1
  207. package/dist/Menu/MenuRadioGroup.cjs.map +1 -1
  208. package/dist/Menu/MenuRadioGroup.js.map +1 -1
  209. package/dist/Menu/MenuRoot.cjs +1 -1
  210. package/dist/Menu/MenuRoot.cjs.map +1 -1
  211. package/dist/Menu/MenuRoot.js +1 -1
  212. package/dist/Menu/MenuRoot.js.map +1 -1
  213. package/dist/Menu/MenuSub.cjs +1 -1
  214. package/dist/Menu/MenuSub.cjs.map +1 -1
  215. package/dist/Menu/MenuSub.js +1 -1
  216. package/dist/Menu/MenuSub.js.map +1 -1
  217. package/dist/Menu/MenuSubTrigger.cjs.map +1 -1
  218. package/dist/Menu/MenuSubTrigger.js.map +1 -1
  219. package/dist/Menubar/MenubarContent.cjs.map +1 -1
  220. package/dist/Menubar/MenubarContent.js.map +1 -1
  221. package/dist/Menubar/MenubarMenu.cjs.map +1 -1
  222. package/dist/Menubar/MenubarMenu.js.map +1 -1
  223. package/dist/Menubar/MenubarRoot.cjs.map +1 -1
  224. package/dist/Menubar/MenubarRoot.js.map +1 -1
  225. package/dist/Menubar/MenubarSub.cjs +1 -1
  226. package/dist/Menubar/MenubarSub.cjs.map +1 -1
  227. package/dist/Menubar/MenubarSub.js +1 -1
  228. package/dist/Menubar/MenubarSub.js.map +1 -1
  229. package/dist/Menubar/MenubarTrigger.cjs.map +1 -1
  230. package/dist/Menubar/MenubarTrigger.js.map +1 -1
  231. package/dist/NavigationMenu/NavigationMenuContent.cjs.map +1 -1
  232. package/dist/NavigationMenu/NavigationMenuContent.js.map +1 -1
  233. package/dist/NavigationMenu/NavigationMenuContentImpl.cjs.map +1 -1
  234. package/dist/NavigationMenu/NavigationMenuContentImpl.js.map +1 -1
  235. package/dist/NavigationMenu/NavigationMenuIndicator.cjs.map +1 -1
  236. package/dist/NavigationMenu/NavigationMenuIndicator.js.map +1 -1
  237. package/dist/NavigationMenu/NavigationMenuItem.cjs.map +1 -1
  238. package/dist/NavigationMenu/NavigationMenuItem.js.map +1 -1
  239. package/dist/NavigationMenu/NavigationMenuList.cjs.map +1 -1
  240. package/dist/NavigationMenu/NavigationMenuList.js.map +1 -1
  241. package/dist/NavigationMenu/NavigationMenuRoot.cjs.map +1 -1
  242. package/dist/NavigationMenu/NavigationMenuRoot.js.map +1 -1
  243. package/dist/NavigationMenu/NavigationMenuSub.cjs.map +1 -1
  244. package/dist/NavigationMenu/NavigationMenuSub.js.map +1 -1
  245. package/dist/NavigationMenu/NavigationMenuTrigger.cjs.map +1 -1
  246. package/dist/NavigationMenu/NavigationMenuTrigger.js.map +1 -1
  247. package/dist/NavigationMenu/NavigationMenuViewport.cjs.map +1 -1
  248. package/dist/NavigationMenu/NavigationMenuViewport.js.map +1 -1
  249. package/dist/NumberField/NumberFieldInput.cjs +2 -2
  250. package/dist/NumberField/NumberFieldInput.cjs.map +1 -1
  251. package/dist/NumberField/NumberFieldInput.js +2 -2
  252. package/dist/NumberField/NumberFieldInput.js.map +1 -1
  253. package/dist/NumberField/NumberFieldRoot.cjs +8 -5
  254. package/dist/NumberField/NumberFieldRoot.cjs.map +1 -1
  255. package/dist/NumberField/NumberFieldRoot.js +8 -5
  256. package/dist/NumberField/NumberFieldRoot.js.map +1 -1
  257. package/dist/Pagination/PaginationFirst.cjs.map +1 -1
  258. package/dist/Pagination/PaginationFirst.js.map +1 -1
  259. package/dist/Pagination/PaginationLast.cjs.map +1 -1
  260. package/dist/Pagination/PaginationLast.js.map +1 -1
  261. package/dist/Pagination/PaginationList.cjs.map +1 -1
  262. package/dist/Pagination/PaginationList.js.map +1 -1
  263. package/dist/Pagination/PaginationListItem.cjs.map +1 -1
  264. package/dist/Pagination/PaginationListItem.js.map +1 -1
  265. package/dist/Pagination/PaginationNext.cjs.map +1 -1
  266. package/dist/Pagination/PaginationNext.js.map +1 -1
  267. package/dist/Pagination/PaginationPrev.cjs.map +1 -1
  268. package/dist/Pagination/PaginationPrev.js.map +1 -1
  269. package/dist/Pagination/PaginationRoot.cjs.map +1 -1
  270. package/dist/Pagination/PaginationRoot.js.map +1 -1
  271. package/dist/PinInput/PinInputInput.cjs +1 -1
  272. package/dist/PinInput/PinInputInput.cjs.map +1 -1
  273. package/dist/PinInput/PinInputInput.js +1 -1
  274. package/dist/PinInput/PinInputInput.js.map +1 -1
  275. package/dist/PinInput/PinInputRoot.cjs.map +1 -1
  276. package/dist/PinInput/PinInputRoot.js.map +1 -1
  277. package/dist/Popover/PopoverAnchor.cjs.map +1 -1
  278. package/dist/Popover/PopoverAnchor.js.map +1 -1
  279. package/dist/Popover/PopoverContentModal.cjs.map +1 -1
  280. package/dist/Popover/PopoverContentModal.js.map +1 -1
  281. package/dist/Popover/PopoverContentNonModal.cjs.map +1 -1
  282. package/dist/Popover/PopoverContentNonModal.js.map +1 -1
  283. package/dist/Popover/PopoverRoot.cjs +1 -1
  284. package/dist/Popover/PopoverRoot.cjs.map +1 -1
  285. package/dist/Popover/PopoverRoot.js +1 -1
  286. package/dist/Popover/PopoverRoot.js.map +1 -1
  287. package/dist/Popover/PopoverTrigger.cjs.map +1 -1
  288. package/dist/Popover/PopoverTrigger.js.map +1 -1
  289. package/dist/Popper/PopperAnchor.cjs.map +1 -1
  290. package/dist/Popper/PopperAnchor.js.map +1 -1
  291. package/dist/Popper/PopperArrow.cjs.map +1 -1
  292. package/dist/Popper/PopperArrow.js.map +1 -1
  293. package/dist/Popper/PopperContent.cjs.map +1 -1
  294. package/dist/Popper/PopperContent.js.map +1 -1
  295. package/dist/Presence/Presence.cjs.map +1 -1
  296. package/dist/Presence/Presence.js.map +1 -1
  297. package/dist/Presence/usePresence.cjs.map +1 -1
  298. package/dist/Presence/usePresence.js.map +1 -1
  299. package/dist/Primitive/Slot.cjs +1 -9
  300. package/dist/Primitive/Slot.cjs.map +1 -1
  301. package/dist/Primitive/Slot.js +1 -9
  302. package/dist/Primitive/Slot.js.map +1 -1
  303. package/dist/Progress/ProgressRoot.cjs +3 -2
  304. package/dist/Progress/ProgressRoot.cjs.map +1 -1
  305. package/dist/Progress/ProgressRoot.js +3 -2
  306. package/dist/Progress/ProgressRoot.js.map +1 -1
  307. package/dist/RadioGroup/Radio.cjs.map +1 -1
  308. package/dist/RadioGroup/Radio.js.map +1 -1
  309. package/dist/RadioGroup/RadioGroupItem.cjs.map +1 -1
  310. package/dist/RadioGroup/RadioGroupItem.js.map +1 -1
  311. package/dist/RadioGroup/RadioGroupRoot.cjs.map +1 -1
  312. package/dist/RadioGroup/RadioGroupRoot.js.map +1 -1
  313. package/dist/RangeCalendar/RangeCalendarCell.cjs +2 -2
  314. package/dist/RangeCalendar/RangeCalendarCell.cjs.map +1 -1
  315. package/dist/RangeCalendar/RangeCalendarCell.js +2 -2
  316. package/dist/RangeCalendar/RangeCalendarCell.js.map +1 -1
  317. package/dist/RangeCalendar/RangeCalendarCellTrigger.cjs +28 -9
  318. package/dist/RangeCalendar/RangeCalendarCellTrigger.cjs.map +1 -1
  319. package/dist/RangeCalendar/RangeCalendarCellTrigger.js +28 -9
  320. package/dist/RangeCalendar/RangeCalendarCellTrigger.js.map +1 -1
  321. package/dist/RangeCalendar/RangeCalendarGrid.cjs.map +1 -1
  322. package/dist/RangeCalendar/RangeCalendarGrid.js.map +1 -1
  323. package/dist/RangeCalendar/RangeCalendarHeading.cjs.map +1 -1
  324. package/dist/RangeCalendar/RangeCalendarHeading.js.map +1 -1
  325. package/dist/RangeCalendar/RangeCalendarNext.cjs.map +1 -1
  326. package/dist/RangeCalendar/RangeCalendarNext.js.map +1 -1
  327. package/dist/RangeCalendar/RangeCalendarPrev.cjs.map +1 -1
  328. package/dist/RangeCalendar/RangeCalendarPrev.js.map +1 -1
  329. package/dist/RangeCalendar/RangeCalendarRoot.cjs +26 -9
  330. package/dist/RangeCalendar/RangeCalendarRoot.cjs.map +1 -1
  331. package/dist/RangeCalendar/RangeCalendarRoot.js +26 -9
  332. package/dist/RangeCalendar/RangeCalendarRoot.js.map +1 -1
  333. package/dist/RangeCalendar/useRangeCalendar.cjs +21 -4
  334. package/dist/RangeCalendar/useRangeCalendar.cjs.map +1 -1
  335. package/dist/RangeCalendar/useRangeCalendar.js +21 -4
  336. package/dist/RangeCalendar/useRangeCalendar.js.map +1 -1
  337. package/dist/RovingFocus/RovingFocusGroup.cjs +1 -1
  338. package/dist/RovingFocus/RovingFocusGroup.cjs.map +1 -1
  339. package/dist/RovingFocus/RovingFocusGroup.js +1 -1
  340. package/dist/RovingFocus/RovingFocusGroup.js.map +1 -1
  341. package/dist/RovingFocus/RovingFocusItem.cjs.map +1 -1
  342. package/dist/RovingFocus/RovingFocusItem.js.map +1 -1
  343. package/dist/ScrollArea/ScrollAreaCornerImpl.cjs.map +1 -1
  344. package/dist/ScrollArea/ScrollAreaCornerImpl.js.map +1 -1
  345. package/dist/ScrollArea/ScrollAreaRoot.cjs.map +1 -1
  346. package/dist/ScrollArea/ScrollAreaRoot.js.map +1 -1
  347. package/dist/ScrollArea/ScrollAreaScrollbar.cjs.map +1 -1
  348. package/dist/ScrollArea/ScrollAreaScrollbar.js.map +1 -1
  349. package/dist/ScrollArea/ScrollAreaScrollbarAuto.cjs.map +1 -1
  350. package/dist/ScrollArea/ScrollAreaScrollbarAuto.js.map +1 -1
  351. package/dist/ScrollArea/ScrollAreaScrollbarHover.cjs.map +1 -1
  352. package/dist/ScrollArea/ScrollAreaScrollbarHover.js.map +1 -1
  353. package/dist/ScrollArea/ScrollAreaScrollbarImpl.cjs.map +1 -1
  354. package/dist/ScrollArea/ScrollAreaScrollbarImpl.js.map +1 -1
  355. package/dist/ScrollArea/ScrollAreaScrollbarScroll.cjs.map +1 -1
  356. package/dist/ScrollArea/ScrollAreaScrollbarScroll.js.map +1 -1
  357. package/dist/ScrollArea/ScrollAreaScrollbarX.cjs.map +1 -1
  358. package/dist/ScrollArea/ScrollAreaScrollbarX.js.map +1 -1
  359. package/dist/ScrollArea/ScrollAreaScrollbarY.cjs.map +1 -1
  360. package/dist/ScrollArea/ScrollAreaScrollbarY.js.map +1 -1
  361. package/dist/ScrollArea/ScrollAreaThumb.cjs.map +1 -1
  362. package/dist/ScrollArea/ScrollAreaThumb.js.map +1 -1
  363. package/dist/ScrollArea/ScrollAreaViewport.cjs.map +1 -1
  364. package/dist/ScrollArea/ScrollAreaViewport.js.map +1 -1
  365. package/dist/Select/BubbleSelect.cjs.map +1 -1
  366. package/dist/Select/BubbleSelect.js.map +1 -1
  367. package/dist/Select/SelectContent.cjs.map +1 -1
  368. package/dist/Select/SelectContent.js.map +1 -1
  369. package/dist/Select/SelectContentImpl.cjs +1 -1
  370. package/dist/Select/SelectContentImpl.cjs.map +1 -1
  371. package/dist/Select/SelectContentImpl.js +1 -1
  372. package/dist/Select/SelectContentImpl.js.map +1 -1
  373. package/dist/Select/SelectItem.cjs.map +1 -1
  374. package/dist/Select/SelectItem.js.map +1 -1
  375. package/dist/Select/SelectItemAlignedPosition.cjs +1 -1
  376. package/dist/Select/SelectItemAlignedPosition.cjs.map +1 -1
  377. package/dist/Select/SelectItemAlignedPosition.js +1 -1
  378. package/dist/Select/SelectItemAlignedPosition.js.map +1 -1
  379. package/dist/Select/SelectItemText.cjs.map +1 -1
  380. package/dist/Select/SelectItemText.js.map +1 -1
  381. package/dist/Select/SelectProvider.cjs.map +1 -1
  382. package/dist/Select/SelectProvider.js.map +1 -1
  383. package/dist/Select/SelectRoot.cjs +3 -1
  384. package/dist/Select/SelectRoot.cjs.map +1 -1
  385. package/dist/Select/SelectRoot.js +3 -1
  386. package/dist/Select/SelectRoot.js.map +1 -1
  387. package/dist/Select/SelectScrollButtonImpl.cjs.map +1 -1
  388. package/dist/Select/SelectScrollButtonImpl.js.map +1 -1
  389. package/dist/Select/SelectTrigger.cjs.map +1 -1
  390. package/dist/Select/SelectTrigger.js.map +1 -1
  391. package/dist/Select/SelectValue.cjs.map +1 -1
  392. package/dist/Select/SelectValue.js.map +1 -1
  393. package/dist/Select/SelectViewport.cjs.map +1 -1
  394. package/dist/Select/SelectViewport.js.map +1 -1
  395. package/dist/Slider/SliderHorizontal.cjs +7 -4
  396. package/dist/Slider/SliderHorizontal.cjs.map +1 -1
  397. package/dist/Slider/SliderHorizontal.js +7 -4
  398. package/dist/Slider/SliderHorizontal.js.map +1 -1
  399. package/dist/Slider/SliderRange.cjs +2 -2
  400. package/dist/Slider/SliderRange.cjs.map +1 -1
  401. package/dist/Slider/SliderRange.js +2 -2
  402. package/dist/Slider/SliderRange.js.map +1 -1
  403. package/dist/Slider/SliderRoot.cjs.map +1 -1
  404. package/dist/Slider/SliderRoot.js.map +1 -1
  405. package/dist/Slider/SliderThumb.cjs.map +1 -1
  406. package/dist/Slider/SliderThumb.js.map +1 -1
  407. package/dist/Slider/SliderThumbImpl.cjs +3 -3
  408. package/dist/Slider/SliderThumbImpl.cjs.map +1 -1
  409. package/dist/Slider/SliderThumbImpl.js +3 -3
  410. package/dist/Slider/SliderThumbImpl.js.map +1 -1
  411. package/dist/Slider/SliderVertical.cjs +7 -4
  412. package/dist/Slider/SliderVertical.cjs.map +1 -1
  413. package/dist/Slider/SliderVertical.js +7 -4
  414. package/dist/Slider/SliderVertical.js.map +1 -1
  415. package/dist/Slider/utils.cjs +1 -1
  416. package/dist/Slider/utils.cjs.map +1 -1
  417. package/dist/Slider/utils.js +1 -1
  418. package/dist/Slider/utils.js.map +1 -1
  419. package/dist/Splitter/SplitterGroup.cjs.map +1 -1
  420. package/dist/Splitter/SplitterGroup.js.map +1 -1
  421. package/dist/Splitter/SplitterPanel.cjs +16 -10
  422. package/dist/Splitter/SplitterPanel.cjs.map +1 -1
  423. package/dist/Splitter/SplitterPanel.js +16 -10
  424. package/dist/Splitter/SplitterPanel.js.map +1 -1
  425. package/dist/Stepper/StepperIndicator.cjs.map +1 -1
  426. package/dist/Stepper/StepperIndicator.js.map +1 -1
  427. package/dist/Stepper/StepperItem.cjs.map +1 -1
  428. package/dist/Stepper/StepperItem.js.map +1 -1
  429. package/dist/Stepper/StepperRoot.cjs +30 -3
  430. package/dist/Stepper/StepperRoot.cjs.map +1 -1
  431. package/dist/Stepper/StepperRoot.js +30 -3
  432. package/dist/Stepper/StepperRoot.js.map +1 -1
  433. package/dist/Stepper/StepperTrigger.cjs.map +1 -1
  434. package/dist/Stepper/StepperTrigger.js.map +1 -1
  435. package/dist/Switch/SwitchRoot.cjs.map +1 -1
  436. package/dist/Switch/SwitchRoot.js.map +1 -1
  437. package/dist/Tabs/TabsContent.cjs.map +1 -1
  438. package/dist/Tabs/TabsContent.js.map +1 -1
  439. package/dist/Tabs/TabsIndicator.cjs.map +1 -1
  440. package/dist/Tabs/TabsIndicator.js.map +1 -1
  441. package/dist/Tabs/TabsList.cjs.map +1 -1
  442. package/dist/Tabs/TabsList.js.map +1 -1
  443. package/dist/Tabs/TabsRoot.cjs.map +1 -1
  444. package/dist/Tabs/TabsRoot.js.map +1 -1
  445. package/dist/Tabs/TabsTrigger.cjs.map +1 -1
  446. package/dist/Tabs/TabsTrigger.js.map +1 -1
  447. package/dist/TagsInput/TagsInputInput.cjs +1 -0
  448. package/dist/TagsInput/TagsInputInput.cjs.map +1 -1
  449. package/dist/TagsInput/TagsInputInput.js +1 -0
  450. package/dist/TagsInput/TagsInputInput.js.map +1 -1
  451. package/dist/TagsInput/TagsInputItem.cjs.map +1 -1
  452. package/dist/TagsInput/TagsInputItem.js.map +1 -1
  453. package/dist/TagsInput/TagsInputItemDelete.cjs.map +1 -1
  454. package/dist/TagsInput/TagsInputItemDelete.js.map +1 -1
  455. package/dist/TagsInput/TagsInputRoot.cjs +1 -1
  456. package/dist/TagsInput/TagsInputRoot.cjs.map +1 -1
  457. package/dist/TagsInput/TagsInputRoot.js +1 -1
  458. package/dist/TagsInput/TagsInputRoot.js.map +1 -1
  459. package/dist/TimeField/TimeFieldInput.cjs +1 -0
  460. package/dist/TimeField/TimeFieldInput.cjs.map +1 -1
  461. package/dist/TimeField/TimeFieldInput.js +1 -0
  462. package/dist/TimeField/TimeFieldInput.js.map +1 -1
  463. package/dist/TimeField/TimeFieldRoot.cjs +13 -4
  464. package/dist/TimeField/TimeFieldRoot.cjs.map +1 -1
  465. package/dist/TimeField/TimeFieldRoot.js +13 -4
  466. package/dist/TimeField/TimeFieldRoot.js.map +1 -1
  467. package/dist/Toast/ToastAnnounce.cjs.map +1 -1
  468. package/dist/Toast/ToastAnnounce.js.map +1 -1
  469. package/dist/Toast/ToastRoot.cjs.map +1 -1
  470. package/dist/Toast/ToastRoot.js.map +1 -1
  471. package/dist/Toast/ToastRootImpl.cjs +1 -1
  472. package/dist/Toast/ToastRootImpl.cjs.map +1 -1
  473. package/dist/Toast/ToastRootImpl.js +1 -1
  474. package/dist/Toast/ToastRootImpl.js.map +1 -1
  475. package/dist/Toast/ToastViewport.cjs +1 -1
  476. package/dist/Toast/ToastViewport.cjs.map +1 -1
  477. package/dist/Toast/ToastViewport.js +1 -1
  478. package/dist/Toast/ToastViewport.js.map +1 -1
  479. package/dist/Toggle/Toggle.cjs.map +1 -1
  480. package/dist/Toggle/Toggle.js.map +1 -1
  481. package/dist/ToggleGroup/ToggleGroupItem.cjs.map +1 -1
  482. package/dist/ToggleGroup/ToggleGroupItem.js.map +1 -1
  483. package/dist/ToggleGroup/ToggleGroupRoot.cjs.map +1 -1
  484. package/dist/ToggleGroup/ToggleGroupRoot.js.map +1 -1
  485. package/dist/Toolbar/ToolbarRoot.cjs.map +1 -1
  486. package/dist/Toolbar/ToolbarRoot.js.map +1 -1
  487. package/dist/Tooltip/TooltipContentImpl.cjs +1 -1
  488. package/dist/Tooltip/TooltipContentImpl.cjs.map +1 -1
  489. package/dist/Tooltip/TooltipContentImpl.js +1 -1
  490. package/dist/Tooltip/TooltipContentImpl.js.map +1 -1
  491. package/dist/Tooltip/TooltipRoot.cjs +1 -1
  492. package/dist/Tooltip/TooltipRoot.cjs.map +1 -1
  493. package/dist/Tooltip/TooltipRoot.js +1 -1
  494. package/dist/Tooltip/TooltipRoot.js.map +1 -1
  495. package/dist/Tooltip/TooltipTrigger.cjs +1 -1
  496. package/dist/Tooltip/TooltipTrigger.cjs.map +1 -1
  497. package/dist/Tooltip/TooltipTrigger.js +1 -1
  498. package/dist/Tooltip/TooltipTrigger.js.map +1 -1
  499. package/dist/Tree/TreeItem.cjs +4 -1
  500. package/dist/Tree/TreeItem.cjs.map +1 -1
  501. package/dist/Tree/TreeItem.js +4 -1
  502. package/dist/Tree/TreeItem.js.map +1 -1
  503. package/dist/Tree/TreeRoot.cjs +29 -3
  504. package/dist/Tree/TreeRoot.cjs.map +1 -1
  505. package/dist/Tree/TreeRoot.js +29 -3
  506. package/dist/Tree/TreeRoot.js.map +1 -1
  507. package/dist/Tree/TreeVirtualizer.cjs +2 -2
  508. package/dist/Tree/TreeVirtualizer.cjs.map +1 -1
  509. package/dist/Tree/TreeVirtualizer.js +2 -2
  510. package/dist/Tree/TreeVirtualizer.js.map +1 -1
  511. package/dist/Viewport/Viewport.cjs.map +1 -1
  512. package/dist/Viewport/Viewport.js.map +1 -1
  513. package/dist/VisuallyHidden/VisuallyHiddenInputBubble.cjs.map +1 -1
  514. package/dist/VisuallyHidden/VisuallyHiddenInputBubble.js.map +1 -1
  515. package/dist/component/BaseSeparator.cjs.map +1 -1
  516. package/dist/component/BaseSeparator.js.map +1 -1
  517. package/dist/date/calendar.cjs.map +1 -1
  518. package/dist/date/calendar.js.map +1 -1
  519. package/dist/date/parser.cjs +22 -7
  520. package/dist/date/parser.cjs.map +1 -1
  521. package/dist/date/parser.js +23 -8
  522. package/dist/date/parser.js.map +1 -1
  523. package/dist/date/useDateField.cjs +21 -6
  524. package/dist/date/useDateField.cjs.map +1 -1
  525. package/dist/date/useDateField.js +21 -6
  526. package/dist/date/useDateField.js.map +1 -1
  527. package/dist/date/utils.cjs +31 -2
  528. package/dist/date/utils.cjs.map +1 -1
  529. package/dist/date/utils.js +30 -3
  530. package/dist/date/utils.js.map +1 -1
  531. package/dist/index.d.ts +492 -351
  532. package/dist/shared/useBodyScrollLock.cjs +2 -2
  533. package/dist/shared/useBodyScrollLock.cjs.map +1 -1
  534. package/dist/shared/useBodyScrollLock.js +2 -2
  535. package/dist/shared/useBodyScrollLock.js.map +1 -1
  536. package/dist/shared/useDateFormatter.cjs +12 -10
  537. package/dist/shared/useDateFormatter.cjs.map +1 -1
  538. package/dist/shared/useDateFormatter.js +12 -10
  539. package/dist/shared/useDateFormatter.js.map +1 -1
  540. package/dist/shared/useDirection.cjs.map +1 -1
  541. package/dist/shared/useDirection.js.map +1 -1
  542. package/dist/shared/useForwardProps.cjs +4 -2
  543. package/dist/shared/useForwardProps.cjs.map +1 -1
  544. package/dist/shared/useForwardProps.js +5 -3
  545. package/dist/shared/useForwardProps.js.map +1 -1
  546. package/dist/shared/useGraceArea.cjs.map +1 -1
  547. package/dist/shared/useGraceArea.js.map +1 -1
  548. package/dist/shared/useId.cjs +2 -2
  549. package/dist/shared/useId.cjs.map +1 -1
  550. package/dist/shared/useId.js +2 -2
  551. package/dist/shared/useId.js.map +1 -1
  552. package/dist/shared/useLocale.cjs.map +1 -1
  553. package/dist/shared/useLocale.js.map +1 -1
  554. package/dist/shared/useNonce.cjs.map +1 -1
  555. package/dist/shared/useNonce.js.map +1 -1
  556. package/package.json +5 -5
@@ -1 +1 @@
1
- {"version":3,"file":"Toggle.js","sources":["../../src/Toggle/Toggle.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { PrimitiveProps } from '@/Primitive'\nimport type { FormFieldProps } from '@/shared/types'\nimport { useFormControl, useForwardExpose } from '@/shared'\nimport { injectToggleGroupRootContext } from '@/ToggleGroup/ToggleGroupRoot.vue'\nimport VisuallyHiddenInput from '@/VisuallyHidden/VisuallyHiddenInput.vue'\n\nexport type ToggleEmits = {\n /** Event handler called when the value of the toggle changes. */\n 'update:modelValue': [value: boolean]\n}\n\nexport type DataState = 'on' | 'off'\n\nexport interface ToggleProps extends PrimitiveProps, FormFieldProps {\n /**\n * The pressed state of the toggle when it is initially rendered. Use when you do not need to control its open state.\n */\n defaultValue?: boolean\n /**\n * The controlled pressed state of the toggle. Can be bind as `v-model`.\n */\n modelValue?: boolean | null\n /**\n * When `true`, prevents the user from interacting with the toggle.\n */\n disabled?: boolean\n}\n</script>\n\n<script setup lang=\"ts\">\nimport type { Ref } from 'vue'\nimport { Primitive } from '@/Primitive'\nimport { useVModel } from '@vueuse/core'\nimport { computed } from 'vue'\n\nconst props = withDefaults(defineProps<ToggleProps>(), {\n modelValue: undefined,\n disabled: false,\n as: 'button',\n})\n\nconst emits = defineEmits<ToggleEmits>()\n\ndefineSlots<{\n default: (props: {\n /** Current value */\n modelValue: typeof modelValue.value\n /** Current state */\n state: typeof dataState.value\n /** Current pressed state */\n pressed: typeof modelValue.value\n /** Current disabled state */\n disabled: boolean\n }) => any\n}>()\n\nconst { forwardRef, currentElement } = useForwardExpose()\nconst toggleGroupContext = injectToggleGroupRootContext(null)\n\nconst modelValue = useVModel(props, 'modelValue', emits, {\n defaultValue: props.defaultValue,\n passive: (props.modelValue === undefined) as false,\n}) as Ref<boolean>\n\nfunction togglePressed() {\n modelValue.value = !modelValue.value\n}\n\nconst dataState = computed<DataState>(() => {\n return modelValue.value ? 'on' : 'off'\n})\n\nconst isFormControl = useFormControl(currentElement)\n</script>\n\n<template>\n <Primitive\n :ref=\"forwardRef\"\n :type=\"as === 'button' ? 'button' : undefined\"\n :as-child=\"props.asChild\"\n :as=\"as\"\n :aria-pressed=\"modelValue\"\n :data-state=\"dataState\"\n :data-disabled=\"disabled ? '' : undefined\"\n :disabled=\"disabled\"\n @click=\"togglePressed\"\n >\n <slot\n :model-value=\"modelValue\"\n :disabled=\"disabled\"\n :pressed=\"modelValue\"\n :state=\"dataState\"\n />\n\n <VisuallyHiddenInput\n v-if=\"isFormControl && name && !toggleGroupContext\"\n type=\"checkbox\"\n :name=\"name\"\n :value=\"modelValue\"\n :required=\"required\"\n />\n </Primitive>\n</template>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAoCA,IAAA,MAAM,KAAQ,GAAA,OAAA;AAMd,IAAA,MAAM,KAAQ,GAAA,MAAA;AAed,IAAA,MAAM,EAAE,UAAA,EAAY,cAAe,EAAA,GAAI,gBAAiB,EAAA;AACxD,IAAM,MAAA,kBAAA,GAAqB,6BAA6B,IAAI,CAAA;AAE5D,IAAA,MAAM,UAAa,GAAA,SAAA,CAAU,KAAO,EAAA,YAAA,EAAc,KAAO,EAAA;AAAA,MACvD,cAAc,KAAM,CAAA,YAAA;AAAA,MACpB,OAAA,EAAU,MAAM,UAAe,KAAA;AAAA,KAChC,CAAA;AAED,IAAA,SAAS,aAAgB,GAAA;AACvB,MAAW,UAAA,CAAA,KAAA,GAAQ,CAAC,UAAW,CAAA,KAAA;AAAA;AAGjC,IAAM,MAAA,SAAA,GAAY,SAAoB,MAAM;AAC1C,MAAO,OAAA,UAAA,CAAW,QAAQ,IAAO,GAAA,KAAA;AAAA,KAClC,CAAA;AAED,IAAM,MAAA,aAAA,GAAgB,eAAe,cAAc,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"Toggle.js","sources":["../../src/Toggle/Toggle.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { PrimitiveProps } from '@/Primitive'\nimport type { FormFieldProps } from '@/shared/types'\nimport { useFormControl, useForwardExpose } from '@/shared'\nimport { injectToggleGroupRootContext } from '@/ToggleGroup/ToggleGroupRoot.vue'\nimport VisuallyHiddenInput from '@/VisuallyHidden/VisuallyHiddenInput.vue'\n\nexport type ToggleEmits = {\n /** Event handler called when the value of the toggle changes. */\n 'update:modelValue': [value: boolean]\n}\n\nexport type DataState = 'on' | 'off'\n\nexport interface ToggleProps extends PrimitiveProps, FormFieldProps {\n /**\n * The pressed state of the toggle when it is initially rendered. Use when you do not need to control its open state.\n */\n defaultValue?: boolean\n /**\n * The controlled pressed state of the toggle. Can be bind as `v-model`.\n */\n modelValue?: boolean | null\n /**\n * When `true`, prevents the user from interacting with the toggle.\n */\n disabled?: boolean\n}\n</script>\n\n<script setup lang=\"ts\">\nimport type { Ref } from 'vue'\nimport { useVModel } from '@vueuse/core'\nimport { computed } from 'vue'\nimport { Primitive } from '@/Primitive'\n\nconst props = withDefaults(defineProps<ToggleProps>(), {\n modelValue: undefined,\n disabled: false,\n as: 'button',\n})\n\nconst emits = defineEmits<ToggleEmits>()\n\ndefineSlots<{\n default?: (props: {\n /** Current value */\n modelValue: typeof modelValue.value\n /** Current state */\n state: typeof dataState.value\n /** Current pressed state */\n pressed: typeof modelValue.value\n /** Current disabled state */\n disabled: boolean\n }) => any\n}>()\n\nconst { forwardRef, currentElement } = useForwardExpose()\nconst toggleGroupContext = injectToggleGroupRootContext(null)\n\nconst modelValue = useVModel(props, 'modelValue', emits, {\n defaultValue: props.defaultValue,\n passive: (props.modelValue === undefined) as false,\n}) as Ref<boolean>\n\nfunction togglePressed() {\n modelValue.value = !modelValue.value\n}\n\nconst dataState = computed<DataState>(() => {\n return modelValue.value ? 'on' : 'off'\n})\n\nconst isFormControl = useFormControl(currentElement)\n</script>\n\n<template>\n <Primitive\n :ref=\"forwardRef\"\n :type=\"as === 'button' ? 'button' : undefined\"\n :as-child=\"props.asChild\"\n :as=\"as\"\n :aria-pressed=\"modelValue\"\n :data-state=\"dataState\"\n :data-disabled=\"disabled ? '' : undefined\"\n :disabled=\"disabled\"\n @click=\"togglePressed\"\n >\n <slot\n :model-value=\"modelValue\"\n :disabled=\"disabled\"\n :pressed=\"modelValue\"\n :state=\"dataState\"\n />\n\n <VisuallyHiddenInput\n v-if=\"isFormControl && name && !toggleGroupContext\"\n type=\"checkbox\"\n :name=\"name\"\n :value=\"modelValue\"\n :required=\"required\"\n />\n </Primitive>\n</template>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAoCA,IAAA,MAAM,KAAQ,GAAA,OAAA;AAMd,IAAA,MAAM,KAAQ,GAAA,MAAA;AAed,IAAA,MAAM,EAAE,UAAA,EAAY,cAAe,EAAA,GAAI,gBAAiB,EAAA;AACxD,IAAM,MAAA,kBAAA,GAAqB,6BAA6B,IAAI,CAAA;AAE5D,IAAA,MAAM,UAAa,GAAA,SAAA,CAAU,KAAO,EAAA,YAAA,EAAc,KAAO,EAAA;AAAA,MACvD,cAAc,KAAM,CAAA,YAAA;AAAA,MACpB,OAAA,EAAU,MAAM,UAAe,KAAA;AAAA,KAChC,CAAA;AAED,IAAA,SAAS,aAAgB,GAAA;AACvB,MAAW,UAAA,CAAA,KAAA,GAAQ,CAAC,UAAW,CAAA,KAAA;AAAA;AAGjC,IAAM,MAAA,SAAA,GAAY,SAAoB,MAAM;AAC1C,MAAO,OAAA,UAAA,CAAW,QAAQ,IAAO,GAAA,KAAA;AAAA,KAClC,CAAA;AAED,IAAM,MAAA,aAAA,GAAgB,eAAe,cAAc,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"ToggleGroupItem.cjs","sources":["../../src/ToggleGroup/ToggleGroupItem.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { AcceptableValue } from '@/shared/types'\nimport type { ToggleProps } from '@/Toggle'\nimport { isValueEqualOrExist, useForwardExpose } from '@/shared'\n\nexport interface ToggleGroupItemProps extends Omit<ToggleProps, 'name' | 'required' | 'modelValue' | 'defaultValue'> {\n /**\n * A string value for the toggle group item. All items within a toggle group should use a unique value.\n */\n value: AcceptableValue\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { Primitive } from '@/Primitive'\nimport { RovingFocusItem } from '@/RovingFocus'\nimport { Toggle } from '@/Toggle'\nimport { computed } from 'vue'\nimport { injectToggleGroupRootContext } from './ToggleGroupRoot.vue'\n\nconst props = withDefaults(defineProps<ToggleGroupItemProps>(), {\n as: 'button',\n})\n\nconst rootContext = injectToggleGroupRootContext()\nconst disabled = computed(() => rootContext.disabled?.value || props.disabled)\nconst pressed = computed(() => isValueEqualOrExist(rootContext.modelValue.value, props.value))\n\nconst { forwardRef } = useForwardExpose()\n</script>\n\n<template>\n <component\n :is=\"rootContext.rovingFocus.value ? RovingFocusItem : Primitive\"\n as-child\n :focusable=\"!disabled\"\n :active=\"pressed\"\n >\n <Toggle\n v-bind=\"props\"\n :ref=\"forwardRef\"\n v-slot=\"slotProps\"\n :disabled=\"disabled\"\n :model-value=\"pressed\"\n @update:model-value=\"rootContext.changeModelValue(value)\"\n >\n <slot v-bind=\"slotProps\" />\n </Toggle>\n </component>\n</template>\n"],"names":["injectToggleGroupRootContext","computed","isValueEqualOrExist","useForwardExpose"],"mappings":";;;;;;;;;;;;;;;;;;;AAoBA,IAAA,MAAM,KAAQ,GAAA,OAAA;AAId,IAAA,MAAM,cAAcA,wDAA6B,EAAA;AACjD,IAAA,MAAM,WAAWC,YAAS,CAAA,MAAM,YAAY,QAAU,EAAA,KAAA,IAAS,MAAM,QAAQ,CAAA;AAC7E,IAAM,MAAA,OAAA,GAAUA,aAAS,MAAMC,8CAAA,CAAoB,YAAY,UAAW,CAAA,KAAA,EAAO,KAAM,CAAA,KAAK,CAAC,CAAA;AAE7F,IAAM,MAAA,EAAE,UAAW,EAAA,GAAIC,wCAAiB,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"ToggleGroupItem.cjs","sources":["../../src/ToggleGroup/ToggleGroupItem.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { AcceptableValue } from '@/shared/types'\nimport type { ToggleProps } from '@/Toggle'\nimport { isValueEqualOrExist, useForwardExpose } from '@/shared'\n\nexport interface ToggleGroupItemProps extends Omit<ToggleProps, 'name' | 'required' | 'modelValue' | 'defaultValue'> {\n /**\n * A string value for the toggle group item. All items within a toggle group should use a unique value.\n */\n value: AcceptableValue\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { computed } from 'vue'\nimport { Primitive } from '@/Primitive'\nimport { RovingFocusItem } from '@/RovingFocus'\nimport { Toggle } from '@/Toggle'\nimport { injectToggleGroupRootContext } from './ToggleGroupRoot.vue'\n\nconst props = withDefaults(defineProps<ToggleGroupItemProps>(), {\n as: 'button',\n})\n\nconst rootContext = injectToggleGroupRootContext()\nconst disabled = computed(() => rootContext.disabled?.value || props.disabled)\nconst pressed = computed(() => isValueEqualOrExist(rootContext.modelValue.value, props.value))\n\nconst { forwardRef } = useForwardExpose()\n</script>\n\n<template>\n <component\n :is=\"rootContext.rovingFocus.value ? RovingFocusItem : Primitive\"\n as-child\n :focusable=\"!disabled\"\n :active=\"pressed\"\n >\n <Toggle\n v-bind=\"props\"\n :ref=\"forwardRef\"\n v-slot=\"slotProps\"\n :disabled=\"disabled\"\n :model-value=\"pressed\"\n @update:model-value=\"rootContext.changeModelValue(value)\"\n >\n <slot v-bind=\"slotProps\" />\n </Toggle>\n </component>\n</template>\n"],"names":["injectToggleGroupRootContext","computed","isValueEqualOrExist","useForwardExpose"],"mappings":";;;;;;;;;;;;;;;;;;;AAoBA,IAAA,MAAM,KAAQ,GAAA,OAAA;AAId,IAAA,MAAM,cAAcA,wDAA6B,EAAA;AACjD,IAAA,MAAM,WAAWC,YAAS,CAAA,MAAM,YAAY,QAAU,EAAA,KAAA,IAAS,MAAM,QAAQ,CAAA;AAC7E,IAAM,MAAA,OAAA,GAAUA,aAAS,MAAMC,8CAAA,CAAoB,YAAY,UAAW,CAAA,KAAA,EAAO,KAAM,CAAA,KAAK,CAAC,CAAA;AAE7F,IAAM,MAAA,EAAE,UAAW,EAAA,GAAIC,wCAAiB,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"ToggleGroupItem.js","sources":["../../src/ToggleGroup/ToggleGroupItem.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { AcceptableValue } from '@/shared/types'\nimport type { ToggleProps } from '@/Toggle'\nimport { isValueEqualOrExist, useForwardExpose } from '@/shared'\n\nexport interface ToggleGroupItemProps extends Omit<ToggleProps, 'name' | 'required' | 'modelValue' | 'defaultValue'> {\n /**\n * A string value for the toggle group item. All items within a toggle group should use a unique value.\n */\n value: AcceptableValue\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { Primitive } from '@/Primitive'\nimport { RovingFocusItem } from '@/RovingFocus'\nimport { Toggle } from '@/Toggle'\nimport { computed } from 'vue'\nimport { injectToggleGroupRootContext } from './ToggleGroupRoot.vue'\n\nconst props = withDefaults(defineProps<ToggleGroupItemProps>(), {\n as: 'button',\n})\n\nconst rootContext = injectToggleGroupRootContext()\nconst disabled = computed(() => rootContext.disabled?.value || props.disabled)\nconst pressed = computed(() => isValueEqualOrExist(rootContext.modelValue.value, props.value))\n\nconst { forwardRef } = useForwardExpose()\n</script>\n\n<template>\n <component\n :is=\"rootContext.rovingFocus.value ? RovingFocusItem : Primitive\"\n as-child\n :focusable=\"!disabled\"\n :active=\"pressed\"\n >\n <Toggle\n v-bind=\"props\"\n :ref=\"forwardRef\"\n v-slot=\"slotProps\"\n :disabled=\"disabled\"\n :model-value=\"pressed\"\n @update:model-value=\"rootContext.changeModelValue(value)\"\n >\n <slot v-bind=\"slotProps\" />\n </Toggle>\n </component>\n</template>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAoBA,IAAA,MAAM,KAAQ,GAAA,OAAA;AAId,IAAA,MAAM,cAAc,4BAA6B,EAAA;AACjD,IAAA,MAAM,WAAW,QAAS,CAAA,MAAM,YAAY,QAAU,EAAA,KAAA,IAAS,MAAM,QAAQ,CAAA;AAC7E,IAAM,MAAA,OAAA,GAAU,SAAS,MAAM,mBAAA,CAAoB,YAAY,UAAW,CAAA,KAAA,EAAO,KAAM,CAAA,KAAK,CAAC,CAAA;AAE7F,IAAM,MAAA,EAAE,UAAW,EAAA,GAAI,gBAAiB,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"ToggleGroupItem.js","sources":["../../src/ToggleGroup/ToggleGroupItem.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { AcceptableValue } from '@/shared/types'\nimport type { ToggleProps } from '@/Toggle'\nimport { isValueEqualOrExist, useForwardExpose } from '@/shared'\n\nexport interface ToggleGroupItemProps extends Omit<ToggleProps, 'name' | 'required' | 'modelValue' | 'defaultValue'> {\n /**\n * A string value for the toggle group item. All items within a toggle group should use a unique value.\n */\n value: AcceptableValue\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { computed } from 'vue'\nimport { Primitive } from '@/Primitive'\nimport { RovingFocusItem } from '@/RovingFocus'\nimport { Toggle } from '@/Toggle'\nimport { injectToggleGroupRootContext } from './ToggleGroupRoot.vue'\n\nconst props = withDefaults(defineProps<ToggleGroupItemProps>(), {\n as: 'button',\n})\n\nconst rootContext = injectToggleGroupRootContext()\nconst disabled = computed(() => rootContext.disabled?.value || props.disabled)\nconst pressed = computed(() => isValueEqualOrExist(rootContext.modelValue.value, props.value))\n\nconst { forwardRef } = useForwardExpose()\n</script>\n\n<template>\n <component\n :is=\"rootContext.rovingFocus.value ? RovingFocusItem : Primitive\"\n as-child\n :focusable=\"!disabled\"\n :active=\"pressed\"\n >\n <Toggle\n v-bind=\"props\"\n :ref=\"forwardRef\"\n v-slot=\"slotProps\"\n :disabled=\"disabled\"\n :model-value=\"pressed\"\n @update:model-value=\"rootContext.changeModelValue(value)\"\n >\n <slot v-bind=\"slotProps\" />\n </Toggle>\n </component>\n</template>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAoBA,IAAA,MAAM,KAAQ,GAAA,OAAA;AAId,IAAA,MAAM,cAAc,4BAA6B,EAAA;AACjD,IAAA,MAAM,WAAW,QAAS,CAAA,MAAM,YAAY,QAAU,EAAA,KAAA,IAAS,MAAM,QAAQ,CAAA;AAC7E,IAAM,MAAA,OAAA,GAAU,SAAS,MAAM,mBAAA,CAAoB,YAAY,UAAW,CAAA,KAAA,EAAO,KAAM,CAAA,KAAK,CAAC,CAAA;AAE7F,IAAM,MAAA,EAAE,UAAW,EAAA,GAAI,gBAAiB,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"ToggleGroupRoot.cjs","sources":["../../src/ToggleGroup/ToggleGroupRoot.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { PrimitiveProps } from '@/Primitive'\nimport type { ComputedRef, Ref } from 'vue'\nimport type { AcceptableValue, DataOrientation, Direction, FormFieldProps, SingleOrMultipleProps } from '../shared/types'\nimport { createContext, useDirection, useFormControl, useForwardExpose } from '@/shared'\nimport VisuallyHiddenInput from '@/VisuallyHidden/VisuallyHiddenInput.vue'\n\nexport interface ToggleGroupRootProps<T = AcceptableValue | AcceptableValue[]>\n extends PrimitiveProps, FormFieldProps, SingleOrMultipleProps<T> {\n /** When `false`, navigating through the items using arrow keys will be disabled. */\n rovingFocus?: boolean\n /** When `true`, prevents the user from interacting with the toggle group and all its items. */\n disabled?: boolean\n /** The orientation of the component, which determines how focus moves: `horizontal` for left/right arrows and `vertical` for up/down arrows. */\n orientation?: DataOrientation\n /** The reading direction of the combobox when applicable. <br> If omitted, inherits globally from `ConfigProvider` or assumes LTR (left-to-right) reading mode. */\n dir?: Direction\n /** When `loop` and `rovingFocus` is `true`, keyboard navigation will loop from last item to first, and vice versa. */\n loop?: boolean\n}\nexport type ToggleGroupRootEmits = {\n /** Event handler called when the value changes. */\n 'update:modelValue': [payload: AcceptableValue | AcceptableValue[]]\n}\n\ninterface ToggleGroupRootContext {\n isSingle: ComputedRef<boolean>\n modelValue: Ref<AcceptableValue | AcceptableValue[] | undefined>\n changeModelValue: (value: AcceptableValue) => void\n dir?: Ref<Direction>\n orientation?: DataOrientation\n loop: Ref<boolean>\n rovingFocus: Ref<boolean>\n disabled?: Ref<boolean>\n}\n\nexport const [injectToggleGroupRootContext, provideToggleGroupRootContext]\n = createContext<ToggleGroupRootContext>('ToggleGroupRoot')\n</script>\n\n<script setup lang=\"ts\">\nimport { Primitive } from '@/Primitive'\nimport { RovingFocusGroup } from '@/RovingFocus'\nimport { useSingleOrMultipleValue } from '@/shared/useSingleOrMultipleValue'\nimport { toRefs } from 'vue'\n\nconst props = withDefaults(defineProps<ToggleGroupRootProps>(), {\n loop: true,\n rovingFocus: true,\n disabled: false,\n})\nconst emits = defineEmits<ToggleGroupRootEmits>()\n\ndefineSlots<{\n default: (props: {\n /** Current toggle values */\n modelValue: typeof modelValue.value\n }) => any\n}>()\n\nconst { loop, rovingFocus, disabled, dir: propDir } = toRefs(props)\nconst dir = useDirection(propDir)\nconst { forwardRef, currentElement } = useForwardExpose()\n\nconst { modelValue, changeModelValue, isSingle } = useSingleOrMultipleValue(props, emits)\nconst isFormControl = useFormControl(currentElement)\n\nprovideToggleGroupRootContext({\n isSingle,\n modelValue,\n changeModelValue,\n dir,\n orientation: props.orientation,\n loop,\n rovingFocus,\n disabled,\n})\n</script>\n\n<template>\n <component\n :is=\"rovingFocus ? RovingFocusGroup : Primitive\"\n as-child\n :orientation=\"rovingFocus ? orientation : undefined\"\n :dir=\"dir\"\n :loop=\"rovingFocus ? loop : undefined\"\n >\n <Primitive\n :ref=\"forwardRef\"\n role=\"group\"\n :as-child=\"asChild\"\n :as=\"as\"\n >\n <slot :model-value=\"modelValue\" />\n\n <VisuallyHiddenInput\n v-if=\"isFormControl && name\"\n :name=\"name\"\n :required=\"required\"\n :value=\"modelValue\"\n />\n </Primitive>\n </component>\n</template>\n"],"names":["createContext","toRefs","useDirection","useForwardExpose","useSingleOrMultipleValue","useFormControl"],"mappings":";;;;;;;;;;;;AAoCO,MAAM,CAAC,4BAAA,EAA8B,6BAA6B,CAAA,GACrEA,mCAAsC,iBAAiB;;;;;;;;;;;;;;;;;;;AAS3D,IAAA,MAAM,KAAQ,GAAA,OAAA;AAKd,IAAA,MAAM,KAAQ,GAAA,MAAA;AASd,IAAM,MAAA,EAAE,MAAM,WAAa,EAAA,QAAA,EAAU,KAAK,OAAQ,EAAA,GAAIC,WAAO,KAAK,CAAA;AAClE,IAAM,MAAA,GAAA,GAAMC,iCAAa,OAAO,CAAA;AAChC,IAAA,MAAM,EAAE,UAAA,EAAY,cAAe,EAAA,GAAIC,wCAAiB,EAAA;AAExD,IAAA,MAAM,EAAE,UAAY,EAAA,gBAAA,EAAkB,UAAa,GAAAC,wDAAA,CAAyB,OAAO,KAAK,CAAA;AACxF,IAAM,MAAA,aAAA,GAAgBC,qCAAe,cAAc,CAAA;AAEnD,IAA8B,6BAAA,CAAA;AAAA,MAC5B,QAAA;AAAA,MACA,UAAA;AAAA,MACA,gBAAA;AAAA,MACA,GAAA;AAAA,MACA,aAAa,KAAM,CAAA,WAAA;AAAA,MACnB,IAAA;AAAA,MACA,WAAA;AAAA,MACA;AAAA,KACD,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"ToggleGroupRoot.cjs","sources":["../../src/ToggleGroup/ToggleGroupRoot.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { ComputedRef, Ref } from 'vue'\nimport type { AcceptableValue, DataOrientation, Direction, FormFieldProps, SingleOrMultipleProps } from '../shared/types'\nimport type { PrimitiveProps } from '@/Primitive'\nimport { createContext, useDirection, useFormControl, useForwardExpose } from '@/shared'\nimport VisuallyHiddenInput from '@/VisuallyHidden/VisuallyHiddenInput.vue'\n\nexport interface ToggleGroupRootProps<T = AcceptableValue | AcceptableValue[]>\n extends PrimitiveProps, FormFieldProps, SingleOrMultipleProps<T> {\n /** When `false`, navigating through the items using arrow keys will be disabled. */\n rovingFocus?: boolean\n /** When `true`, prevents the user from interacting with the toggle group and all its items. */\n disabled?: boolean\n /** The orientation of the component, which determines how focus moves: `horizontal` for left/right arrows and `vertical` for up/down arrows. */\n orientation?: DataOrientation\n /** The reading direction of the combobox when applicable. <br> If omitted, inherits globally from `ConfigProvider` or assumes LTR (left-to-right) reading mode. */\n dir?: Direction\n /** When `loop` and `rovingFocus` is `true`, keyboard navigation will loop from last item to first, and vice versa. */\n loop?: boolean\n}\nexport type ToggleGroupRootEmits = {\n /** Event handler called when the value changes. */\n 'update:modelValue': [payload: AcceptableValue | AcceptableValue[]]\n}\n\ninterface ToggleGroupRootContext {\n isSingle: ComputedRef<boolean>\n modelValue: Ref<AcceptableValue | AcceptableValue[] | undefined>\n changeModelValue: (value: AcceptableValue) => void\n dir?: Ref<Direction>\n orientation?: DataOrientation\n loop: Ref<boolean>\n rovingFocus: Ref<boolean>\n disabled?: Ref<boolean>\n}\n\nexport const [injectToggleGroupRootContext, provideToggleGroupRootContext]\n = createContext<ToggleGroupRootContext>('ToggleGroupRoot')\n</script>\n\n<script setup lang=\"ts\">\nimport { toRefs } from 'vue'\nimport { Primitive } from '@/Primitive'\nimport { RovingFocusGroup } from '@/RovingFocus'\nimport { useSingleOrMultipleValue } from '@/shared/useSingleOrMultipleValue'\n\nconst props = withDefaults(defineProps<ToggleGroupRootProps>(), {\n loop: true,\n rovingFocus: true,\n disabled: false,\n})\nconst emits = defineEmits<ToggleGroupRootEmits>()\n\ndefineSlots<{\n default?: (props: {\n /** Current toggle values */\n modelValue: typeof modelValue.value\n }) => any\n}>()\n\nconst { loop, rovingFocus, disabled, dir: propDir } = toRefs(props)\nconst dir = useDirection(propDir)\nconst { forwardRef, currentElement } = useForwardExpose()\n\nconst { modelValue, changeModelValue, isSingle } = useSingleOrMultipleValue(props, emits)\nconst isFormControl = useFormControl(currentElement)\n\nprovideToggleGroupRootContext({\n isSingle,\n modelValue,\n changeModelValue,\n dir,\n orientation: props.orientation,\n loop,\n rovingFocus,\n disabled,\n})\n</script>\n\n<template>\n <component\n :is=\"rovingFocus ? RovingFocusGroup : Primitive\"\n as-child\n :orientation=\"rovingFocus ? orientation : undefined\"\n :dir=\"dir\"\n :loop=\"rovingFocus ? loop : undefined\"\n >\n <Primitive\n :ref=\"forwardRef\"\n role=\"group\"\n :as-child=\"asChild\"\n :as=\"as\"\n >\n <slot :model-value=\"modelValue\" />\n\n <VisuallyHiddenInput\n v-if=\"isFormControl && name\"\n :name=\"name\"\n :required=\"required\"\n :value=\"modelValue\"\n />\n </Primitive>\n </component>\n</template>\n"],"names":["createContext","toRefs","useDirection","useForwardExpose","useSingleOrMultipleValue","useFormControl"],"mappings":";;;;;;;;;;;;AAoCO,MAAM,CAAC,4BAAA,EAA8B,6BAA6B,CAAA,GACrEA,mCAAsC,iBAAiB;;;;;;;;;;;;;;;;;;;AAS3D,IAAA,MAAM,KAAQ,GAAA,OAAA;AAKd,IAAA,MAAM,KAAQ,GAAA,MAAA;AASd,IAAM,MAAA,EAAE,MAAM,WAAa,EAAA,QAAA,EAAU,KAAK,OAAQ,EAAA,GAAIC,WAAO,KAAK,CAAA;AAClE,IAAM,MAAA,GAAA,GAAMC,iCAAa,OAAO,CAAA;AAChC,IAAA,MAAM,EAAE,UAAA,EAAY,cAAe,EAAA,GAAIC,wCAAiB,EAAA;AAExD,IAAA,MAAM,EAAE,UAAY,EAAA,gBAAA,EAAkB,UAAa,GAAAC,wDAAA,CAAyB,OAAO,KAAK,CAAA;AACxF,IAAM,MAAA,aAAA,GAAgBC,qCAAe,cAAc,CAAA;AAEnD,IAA8B,6BAAA,CAAA;AAAA,MAC5B,QAAA;AAAA,MACA,UAAA;AAAA,MACA,gBAAA;AAAA,MACA,GAAA;AAAA,MACA,aAAa,KAAM,CAAA,WAAA;AAAA,MACnB,IAAA;AAAA,MACA,WAAA;AAAA,MACA;AAAA,KACD,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"ToggleGroupRoot.js","sources":["../../src/ToggleGroup/ToggleGroupRoot.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { PrimitiveProps } from '@/Primitive'\nimport type { ComputedRef, Ref } from 'vue'\nimport type { AcceptableValue, DataOrientation, Direction, FormFieldProps, SingleOrMultipleProps } from '../shared/types'\nimport { createContext, useDirection, useFormControl, useForwardExpose } from '@/shared'\nimport VisuallyHiddenInput from '@/VisuallyHidden/VisuallyHiddenInput.vue'\n\nexport interface ToggleGroupRootProps<T = AcceptableValue | AcceptableValue[]>\n extends PrimitiveProps, FormFieldProps, SingleOrMultipleProps<T> {\n /** When `false`, navigating through the items using arrow keys will be disabled. */\n rovingFocus?: boolean\n /** When `true`, prevents the user from interacting with the toggle group and all its items. */\n disabled?: boolean\n /** The orientation of the component, which determines how focus moves: `horizontal` for left/right arrows and `vertical` for up/down arrows. */\n orientation?: DataOrientation\n /** The reading direction of the combobox when applicable. <br> If omitted, inherits globally from `ConfigProvider` or assumes LTR (left-to-right) reading mode. */\n dir?: Direction\n /** When `loop` and `rovingFocus` is `true`, keyboard navigation will loop from last item to first, and vice versa. */\n loop?: boolean\n}\nexport type ToggleGroupRootEmits = {\n /** Event handler called when the value changes. */\n 'update:modelValue': [payload: AcceptableValue | AcceptableValue[]]\n}\n\ninterface ToggleGroupRootContext {\n isSingle: ComputedRef<boolean>\n modelValue: Ref<AcceptableValue | AcceptableValue[] | undefined>\n changeModelValue: (value: AcceptableValue) => void\n dir?: Ref<Direction>\n orientation?: DataOrientation\n loop: Ref<boolean>\n rovingFocus: Ref<boolean>\n disabled?: Ref<boolean>\n}\n\nexport const [injectToggleGroupRootContext, provideToggleGroupRootContext]\n = createContext<ToggleGroupRootContext>('ToggleGroupRoot')\n</script>\n\n<script setup lang=\"ts\">\nimport { Primitive } from '@/Primitive'\nimport { RovingFocusGroup } from '@/RovingFocus'\nimport { useSingleOrMultipleValue } from '@/shared/useSingleOrMultipleValue'\nimport { toRefs } from 'vue'\n\nconst props = withDefaults(defineProps<ToggleGroupRootProps>(), {\n loop: true,\n rovingFocus: true,\n disabled: false,\n})\nconst emits = defineEmits<ToggleGroupRootEmits>()\n\ndefineSlots<{\n default: (props: {\n /** Current toggle values */\n modelValue: typeof modelValue.value\n }) => any\n}>()\n\nconst { loop, rovingFocus, disabled, dir: propDir } = toRefs(props)\nconst dir = useDirection(propDir)\nconst { forwardRef, currentElement } = useForwardExpose()\n\nconst { modelValue, changeModelValue, isSingle } = useSingleOrMultipleValue(props, emits)\nconst isFormControl = useFormControl(currentElement)\n\nprovideToggleGroupRootContext({\n isSingle,\n modelValue,\n changeModelValue,\n dir,\n orientation: props.orientation,\n loop,\n rovingFocus,\n disabled,\n})\n</script>\n\n<template>\n <component\n :is=\"rovingFocus ? RovingFocusGroup : Primitive\"\n as-child\n :orientation=\"rovingFocus ? orientation : undefined\"\n :dir=\"dir\"\n :loop=\"rovingFocus ? loop : undefined\"\n >\n <Primitive\n :ref=\"forwardRef\"\n role=\"group\"\n :as-child=\"asChild\"\n :as=\"as\"\n >\n <slot :model-value=\"modelValue\" />\n\n <VisuallyHiddenInput\n v-if=\"isFormControl && name\"\n :name=\"name\"\n :required=\"required\"\n :value=\"modelValue\"\n />\n </Primitive>\n </component>\n</template>\n"],"names":[],"mappings":";;;;;;;;;;AAoCO,MAAM,CAAC,4BAAA,EAA8B,6BAA6B,CAAA,GACrE,cAAsC,iBAAiB;;;;;;;;;;;;;;;;;;;AAS3D,IAAA,MAAM,KAAQ,GAAA,OAAA;AAKd,IAAA,MAAM,KAAQ,GAAA,MAAA;AASd,IAAM,MAAA,EAAE,MAAM,WAAa,EAAA,QAAA,EAAU,KAAK,OAAQ,EAAA,GAAI,OAAO,KAAK,CAAA;AAClE,IAAM,MAAA,GAAA,GAAM,aAAa,OAAO,CAAA;AAChC,IAAA,MAAM,EAAE,UAAA,EAAY,cAAe,EAAA,GAAI,gBAAiB,EAAA;AAExD,IAAA,MAAM,EAAE,UAAY,EAAA,gBAAA,EAAkB,UAAa,GAAA,wBAAA,CAAyB,OAAO,KAAK,CAAA;AACxF,IAAM,MAAA,aAAA,GAAgB,eAAe,cAAc,CAAA;AAEnD,IAA8B,6BAAA,CAAA;AAAA,MAC5B,QAAA;AAAA,MACA,UAAA;AAAA,MACA,gBAAA;AAAA,MACA,GAAA;AAAA,MACA,aAAa,KAAM,CAAA,WAAA;AAAA,MACnB,IAAA;AAAA,MACA,WAAA;AAAA,MACA;AAAA,KACD,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"ToggleGroupRoot.js","sources":["../../src/ToggleGroup/ToggleGroupRoot.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { ComputedRef, Ref } from 'vue'\nimport type { AcceptableValue, DataOrientation, Direction, FormFieldProps, SingleOrMultipleProps } from '../shared/types'\nimport type { PrimitiveProps } from '@/Primitive'\nimport { createContext, useDirection, useFormControl, useForwardExpose } from '@/shared'\nimport VisuallyHiddenInput from '@/VisuallyHidden/VisuallyHiddenInput.vue'\n\nexport interface ToggleGroupRootProps<T = AcceptableValue | AcceptableValue[]>\n extends PrimitiveProps, FormFieldProps, SingleOrMultipleProps<T> {\n /** When `false`, navigating through the items using arrow keys will be disabled. */\n rovingFocus?: boolean\n /** When `true`, prevents the user from interacting with the toggle group and all its items. */\n disabled?: boolean\n /** The orientation of the component, which determines how focus moves: `horizontal` for left/right arrows and `vertical` for up/down arrows. */\n orientation?: DataOrientation\n /** The reading direction of the combobox when applicable. <br> If omitted, inherits globally from `ConfigProvider` or assumes LTR (left-to-right) reading mode. */\n dir?: Direction\n /** When `loop` and `rovingFocus` is `true`, keyboard navigation will loop from last item to first, and vice versa. */\n loop?: boolean\n}\nexport type ToggleGroupRootEmits = {\n /** Event handler called when the value changes. */\n 'update:modelValue': [payload: AcceptableValue | AcceptableValue[]]\n}\n\ninterface ToggleGroupRootContext {\n isSingle: ComputedRef<boolean>\n modelValue: Ref<AcceptableValue | AcceptableValue[] | undefined>\n changeModelValue: (value: AcceptableValue) => void\n dir?: Ref<Direction>\n orientation?: DataOrientation\n loop: Ref<boolean>\n rovingFocus: Ref<boolean>\n disabled?: Ref<boolean>\n}\n\nexport const [injectToggleGroupRootContext, provideToggleGroupRootContext]\n = createContext<ToggleGroupRootContext>('ToggleGroupRoot')\n</script>\n\n<script setup lang=\"ts\">\nimport { toRefs } from 'vue'\nimport { Primitive } from '@/Primitive'\nimport { RovingFocusGroup } from '@/RovingFocus'\nimport { useSingleOrMultipleValue } from '@/shared/useSingleOrMultipleValue'\n\nconst props = withDefaults(defineProps<ToggleGroupRootProps>(), {\n loop: true,\n rovingFocus: true,\n disabled: false,\n})\nconst emits = defineEmits<ToggleGroupRootEmits>()\n\ndefineSlots<{\n default?: (props: {\n /** Current toggle values */\n modelValue: typeof modelValue.value\n }) => any\n}>()\n\nconst { loop, rovingFocus, disabled, dir: propDir } = toRefs(props)\nconst dir = useDirection(propDir)\nconst { forwardRef, currentElement } = useForwardExpose()\n\nconst { modelValue, changeModelValue, isSingle } = useSingleOrMultipleValue(props, emits)\nconst isFormControl = useFormControl(currentElement)\n\nprovideToggleGroupRootContext({\n isSingle,\n modelValue,\n changeModelValue,\n dir,\n orientation: props.orientation,\n loop,\n rovingFocus,\n disabled,\n})\n</script>\n\n<template>\n <component\n :is=\"rovingFocus ? RovingFocusGroup : Primitive\"\n as-child\n :orientation=\"rovingFocus ? orientation : undefined\"\n :dir=\"dir\"\n :loop=\"rovingFocus ? loop : undefined\"\n >\n <Primitive\n :ref=\"forwardRef\"\n role=\"group\"\n :as-child=\"asChild\"\n :as=\"as\"\n >\n <slot :model-value=\"modelValue\" />\n\n <VisuallyHiddenInput\n v-if=\"isFormControl && name\"\n :name=\"name\"\n :required=\"required\"\n :value=\"modelValue\"\n />\n </Primitive>\n </component>\n</template>\n"],"names":[],"mappings":";;;;;;;;;;AAoCO,MAAM,CAAC,4BAAA,EAA8B,6BAA6B,CAAA,GACrE,cAAsC,iBAAiB;;;;;;;;;;;;;;;;;;;AAS3D,IAAA,MAAM,KAAQ,GAAA,OAAA;AAKd,IAAA,MAAM,KAAQ,GAAA,MAAA;AASd,IAAM,MAAA,EAAE,MAAM,WAAa,EAAA,QAAA,EAAU,KAAK,OAAQ,EAAA,GAAI,OAAO,KAAK,CAAA;AAClE,IAAM,MAAA,GAAA,GAAM,aAAa,OAAO,CAAA;AAChC,IAAA,MAAM,EAAE,UAAA,EAAY,cAAe,EAAA,GAAI,gBAAiB,EAAA;AAExD,IAAA,MAAM,EAAE,UAAY,EAAA,gBAAA,EAAkB,UAAa,GAAA,wBAAA,CAAyB,OAAO,KAAK,CAAA;AACxF,IAAM,MAAA,aAAA,GAAgB,eAAe,cAAc,CAAA;AAEnD,IAA8B,6BAAA,CAAA;AAAA,MAC5B,QAAA;AAAA,MACA,UAAA;AAAA,MACA,gBAAA;AAAA,MACA,GAAA;AAAA,MACA,aAAa,KAAM,CAAA,WAAA;AAAA,MACnB,IAAA;AAAA,MACA,WAAA;AAAA,MACA;AAAA,KACD,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"ToolbarRoot.cjs","sources":["../../src/Toolbar/ToolbarRoot.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { PrimitiveProps } from '@/Primitive'\nimport type { DataOrientation, Direction } from '@/shared/types'\nimport type { Ref } from 'vue'\nimport { createContext, useDirection, useForwardExpose } from '@/shared'\n\nexport interface ToolbarRootProps extends PrimitiveProps {\n /** The orientation of the toolbar */\n orientation?: DataOrientation\n /** The reading direction of the combobox when applicable. <br> If omitted, inherits globally from `ConfigProvider` or assumes LTR (left-to-right) reading mode. */\n dir?: Direction\n /** When `true`, keyboard navigation will loop from last tab to first, and vice versa. */\n loop?: boolean\n}\n\nexport interface ToolbarRootContext {\n orientation: Ref<DataOrientation>\n dir: Ref<Direction>\n}\n\nexport const [injectToolbarRootContext, provideToolbarRootContext]\n = createContext<ToolbarRootContext>('ToolbarRoot')\n</script>\n\n<script setup lang=\"ts\">\nimport { Primitive } from '@/Primitive'\nimport { RovingFocusGroup } from '@/RovingFocus'\nimport { toRefs } from 'vue'\n\nconst props = withDefaults(defineProps<ToolbarRootProps>(), {\n orientation: 'horizontal',\n})\nconst { orientation, dir: propDir } = toRefs(props)\nconst dir = useDirection(propDir)\nconst { forwardRef } = useForwardExpose()\n\nprovideToolbarRootContext({ orientation, dir })\n</script>\n\n<template>\n <RovingFocusGroup\n as-child\n :orientation=\"orientation\"\n :dir=\"dir\"\n :loop=\"loop\"\n >\n <Primitive\n :ref=\"forwardRef\"\n role=\"toolbar\"\n :aria-orientation=\"orientation\"\n :as-child=\"asChild\"\n :as=\"as\"\n >\n <slot />\n </Primitive>\n </RovingFocusGroup>\n</template>\n"],"names":["createContext","toRefs","useDirection","useForwardExpose"],"mappings":";;;;;;;;;AAoBO,MAAM,CAAC,wBAAA,EAA0B,yBAAyB,CAAA,GAC7DA,mCAAkC,aAAa;;;;;;;;;;;AAQnD,IAAA,MAAM,KAAQ,GAAA,OAAA;AAGd,IAAA,MAAM,EAAE,WAAa,EAAA,GAAA,EAAK,OAAQ,EAAA,GAAIC,WAAO,KAAK,CAAA;AAClD,IAAM,MAAA,GAAA,GAAMC,iCAAa,OAAO,CAAA;AAChC,IAAM,MAAA,EAAE,UAAW,EAAA,GAAIC,wCAAiB,EAAA;AAExC,IAA0B,yBAAA,CAAA,EAAE,WAAa,EAAA,GAAA,EAAK,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"ToolbarRoot.cjs","sources":["../../src/Toolbar/ToolbarRoot.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { Ref } from 'vue'\nimport type { PrimitiveProps } from '@/Primitive'\nimport type { DataOrientation, Direction } from '@/shared/types'\nimport { createContext, useDirection, useForwardExpose } from '@/shared'\n\nexport interface ToolbarRootProps extends PrimitiveProps {\n /** The orientation of the toolbar */\n orientation?: DataOrientation\n /** The reading direction of the combobox when applicable. <br> If omitted, inherits globally from `ConfigProvider` or assumes LTR (left-to-right) reading mode. */\n dir?: Direction\n /** When `true`, keyboard navigation will loop from last tab to first, and vice versa. */\n loop?: boolean\n}\n\nexport interface ToolbarRootContext {\n orientation: Ref<DataOrientation>\n dir: Ref<Direction>\n}\n\nexport const [injectToolbarRootContext, provideToolbarRootContext]\n = createContext<ToolbarRootContext>('ToolbarRoot')\n</script>\n\n<script setup lang=\"ts\">\nimport { toRefs } from 'vue'\nimport { Primitive } from '@/Primitive'\nimport { RovingFocusGroup } from '@/RovingFocus'\n\nconst props = withDefaults(defineProps<ToolbarRootProps>(), {\n orientation: 'horizontal',\n})\nconst { orientation, dir: propDir } = toRefs(props)\nconst dir = useDirection(propDir)\nconst { forwardRef } = useForwardExpose()\n\nprovideToolbarRootContext({ orientation, dir })\n</script>\n\n<template>\n <RovingFocusGroup\n as-child\n :orientation=\"orientation\"\n :dir=\"dir\"\n :loop=\"loop\"\n >\n <Primitive\n :ref=\"forwardRef\"\n role=\"toolbar\"\n :aria-orientation=\"orientation\"\n :as-child=\"asChild\"\n :as=\"as\"\n >\n <slot />\n </Primitive>\n </RovingFocusGroup>\n</template>\n"],"names":["createContext","toRefs","useDirection","useForwardExpose"],"mappings":";;;;;;;;;AAoBO,MAAM,CAAC,wBAAA,EAA0B,yBAAyB,CAAA,GAC7DA,mCAAkC,aAAa;;;;;;;;;;;AAQnD,IAAA,MAAM,KAAQ,GAAA,OAAA;AAGd,IAAA,MAAM,EAAE,WAAa,EAAA,GAAA,EAAK,OAAQ,EAAA,GAAIC,WAAO,KAAK,CAAA;AAClD,IAAM,MAAA,GAAA,GAAMC,iCAAa,OAAO,CAAA;AAChC,IAAM,MAAA,EAAE,UAAW,EAAA,GAAIC,wCAAiB,EAAA;AAExC,IAA0B,yBAAA,CAAA,EAAE,WAAa,EAAA,GAAA,EAAK,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"ToolbarRoot.js","sources":["../../src/Toolbar/ToolbarRoot.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { PrimitiveProps } from '@/Primitive'\nimport type { DataOrientation, Direction } from '@/shared/types'\nimport type { Ref } from 'vue'\nimport { createContext, useDirection, useForwardExpose } from '@/shared'\n\nexport interface ToolbarRootProps extends PrimitiveProps {\n /** The orientation of the toolbar */\n orientation?: DataOrientation\n /** The reading direction of the combobox when applicable. <br> If omitted, inherits globally from `ConfigProvider` or assumes LTR (left-to-right) reading mode. */\n dir?: Direction\n /** When `true`, keyboard navigation will loop from last tab to first, and vice versa. */\n loop?: boolean\n}\n\nexport interface ToolbarRootContext {\n orientation: Ref<DataOrientation>\n dir: Ref<Direction>\n}\n\nexport const [injectToolbarRootContext, provideToolbarRootContext]\n = createContext<ToolbarRootContext>('ToolbarRoot')\n</script>\n\n<script setup lang=\"ts\">\nimport { Primitive } from '@/Primitive'\nimport { RovingFocusGroup } from '@/RovingFocus'\nimport { toRefs } from 'vue'\n\nconst props = withDefaults(defineProps<ToolbarRootProps>(), {\n orientation: 'horizontal',\n})\nconst { orientation, dir: propDir } = toRefs(props)\nconst dir = useDirection(propDir)\nconst { forwardRef } = useForwardExpose()\n\nprovideToolbarRootContext({ orientation, dir })\n</script>\n\n<template>\n <RovingFocusGroup\n as-child\n :orientation=\"orientation\"\n :dir=\"dir\"\n :loop=\"loop\"\n >\n <Primitive\n :ref=\"forwardRef\"\n role=\"toolbar\"\n :aria-orientation=\"orientation\"\n :as-child=\"asChild\"\n :as=\"as\"\n >\n <slot />\n </Primitive>\n </RovingFocusGroup>\n</template>\n"],"names":[],"mappings":";;;;;;;AAoBO,MAAM,CAAC,wBAAA,EAA0B,yBAAyB,CAAA,GAC7D,cAAkC,aAAa;;;;;;;;;;;AAQnD,IAAA,MAAM,KAAQ,GAAA,OAAA;AAGd,IAAA,MAAM,EAAE,WAAa,EAAA,GAAA,EAAK,OAAQ,EAAA,GAAI,OAAO,KAAK,CAAA;AAClD,IAAM,MAAA,GAAA,GAAM,aAAa,OAAO,CAAA;AAChC,IAAM,MAAA,EAAE,UAAW,EAAA,GAAI,gBAAiB,EAAA;AAExC,IAA0B,yBAAA,CAAA,EAAE,WAAa,EAAA,GAAA,EAAK,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"ToolbarRoot.js","sources":["../../src/Toolbar/ToolbarRoot.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { Ref } from 'vue'\nimport type { PrimitiveProps } from '@/Primitive'\nimport type { DataOrientation, Direction } from '@/shared/types'\nimport { createContext, useDirection, useForwardExpose } from '@/shared'\n\nexport interface ToolbarRootProps extends PrimitiveProps {\n /** The orientation of the toolbar */\n orientation?: DataOrientation\n /** The reading direction of the combobox when applicable. <br> If omitted, inherits globally from `ConfigProvider` or assumes LTR (left-to-right) reading mode. */\n dir?: Direction\n /** When `true`, keyboard navigation will loop from last tab to first, and vice versa. */\n loop?: boolean\n}\n\nexport interface ToolbarRootContext {\n orientation: Ref<DataOrientation>\n dir: Ref<Direction>\n}\n\nexport const [injectToolbarRootContext, provideToolbarRootContext]\n = createContext<ToolbarRootContext>('ToolbarRoot')\n</script>\n\n<script setup lang=\"ts\">\nimport { toRefs } from 'vue'\nimport { Primitive } from '@/Primitive'\nimport { RovingFocusGroup } from '@/RovingFocus'\n\nconst props = withDefaults(defineProps<ToolbarRootProps>(), {\n orientation: 'horizontal',\n})\nconst { orientation, dir: propDir } = toRefs(props)\nconst dir = useDirection(propDir)\nconst { forwardRef } = useForwardExpose()\n\nprovideToolbarRootContext({ orientation, dir })\n</script>\n\n<template>\n <RovingFocusGroup\n as-child\n :orientation=\"orientation\"\n :dir=\"dir\"\n :loop=\"loop\"\n >\n <Primitive\n :ref=\"forwardRef\"\n role=\"toolbar\"\n :aria-orientation=\"orientation\"\n :as-child=\"asChild\"\n :as=\"as\"\n >\n <slot />\n </Primitive>\n </RovingFocusGroup>\n</template>\n"],"names":[],"mappings":";;;;;;;AAoBO,MAAM,CAAC,wBAAA,EAA0B,yBAAyB,CAAA,GAC7D,cAAkC,aAAa;;;;;;;;;;;AAQnD,IAAA,MAAM,KAAQ,GAAA,OAAA;AAGd,IAAA,MAAM,EAAE,WAAa,EAAA,GAAA,EAAK,OAAQ,EAAA,GAAI,OAAO,KAAK,CAAA;AAClD,IAAM,MAAA,GAAA,GAAM,aAAa,OAAO,CAAA;AAChC,IAAM,MAAA,EAAE,UAAW,EAAA,GAAI,gBAAiB,EAAA;AAExC,IAA0B,yBAAA,CAAA,EAAE,WAAa,EAAA,GAAA,EAAK,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,9 +1,9 @@
1
1
  'use strict';
2
2
 
3
3
  const vue = require('vue');
4
+ const core = require('@vueuse/core');
4
5
  const DismissableLayer_DismissableLayer = require('../DismissableLayer/DismissableLayer.cjs');
5
6
  const Popper_PopperContent = require('../Popper/PopperContent.cjs');
6
- const core = require('@vueuse/core');
7
7
  const Tooltip_utils = require('./utils.cjs');
8
8
  const Tooltip_TooltipRoot = require('./TooltipRoot.cjs');
9
9
  const shared_useForwardExpose = require('../shared/useForwardExpose.cjs');
@@ -1 +1 @@
1
- {"version":3,"file":"TooltipContentImpl.cjs","sources":["../../src/Tooltip/TooltipContentImpl.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { PopperContentProps } from '@/Popper'\nimport type { PrimitiveProps } from '@/Primitive'\nimport type { VNode } from 'vue'\nimport { useForwardExpose } from '@/shared'\n\nexport type TooltipContentImplEmits = {\n /** Event handler called when focus moves to the destructive action after opening. It can be prevented by calling `event.preventDefault` */\n escapeKeyDown: [event: KeyboardEvent]\n /** Event handler called when a pointer event occurs outside the bounds of the component. It can be prevented by calling `event.preventDefault`. */\n pointerDownOutside: [event: Event]\n}\n\nexport interface TooltipContentImplProps\n extends PrimitiveProps,\n Pick<\n PopperContentProps,\n | 'side'\n | 'sideOffset'\n | 'align'\n | 'alignOffset'\n | 'avoidCollisions'\n | 'collisionBoundary'\n | 'collisionPadding'\n | 'arrowPadding'\n | 'sticky'\n | 'hideWhenDetached'\n | 'positionStrategy'\n | 'updatePositionStrategy'\n > {\n /**\n * By default, screenreaders will announce the content inside\n * the component. If this is not descriptive enough, or you have\n * content that cannot be announced, use aria-label as a more\n * descriptive label.\n *\n * @defaultValue String\n */\n ariaLabel?: string\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { DismissableLayer } from '@/DismissableLayer'\nimport { PopperContent } from '@/Popper'\nimport { VisuallyHidden } from '@/VisuallyHidden'\nimport { useEventListener } from '@vueuse/core'\nimport { Comment, computed, onMounted, useSlots } from 'vue'\nimport { injectTooltipRootContext } from './TooltipRoot.vue'\nimport { TOOLTIP_OPEN } from './utils'\n\nconst props = withDefaults(defineProps<TooltipContentImplProps>(), {\n side: 'top',\n sideOffset: 0,\n align: 'center',\n avoidCollisions: true,\n collisionBoundary: () => [],\n collisionPadding: 0,\n arrowPadding: 0,\n sticky: 'partial',\n hideWhenDetached: false,\n})\nconst emits = defineEmits<TooltipContentImplEmits>()\n\nconst rootContext = injectTooltipRootContext()\n\nconst { forwardRef } = useForwardExpose()\nconst slot = useSlots()\nconst defaultSlot = computed(() => slot.default?.({}))\nconst ariaLabel = computed(() => {\n if (props.ariaLabel)\n return props.ariaLabel\n let content = ''\n\n function recursiveTextSearch(node: VNode) {\n if (typeof node.children === 'string' && node.type !== Comment)\n content += node.children\n else if (Array.isArray(node.children))\n node.children.forEach(child => recursiveTextSearch(child as VNode))\n }\n\n defaultSlot.value?.forEach((node: VNode) => recursiveTextSearch(node))\n return content\n})\n\nconst popperContentProps = computed(() => {\n const { ariaLabel: _, ...restProps } = props\n return restProps\n})\n\nonMounted(() => {\n // Close the tooltip if the trigger is scrolled\n useEventListener(window, 'scroll', (event) => {\n const target = event.target as HTMLElement\n if (target?.contains(rootContext.trigger.value!))\n rootContext.onClose()\n })\n // Close this tooltip if another one opens\n useEventListener(window, TOOLTIP_OPEN, rootContext.onClose)\n})\n</script>\n\n<template>\n <DismissableLayer\n as-child\n :disable-outside-pointer-events=\"false\"\n @escape-key-down=\"emits('escapeKeyDown', $event)\"\n @pointer-down-outside=\"(event) => {\n if (rootContext.disableClosingTrigger.value && rootContext.trigger.value?.contains(event.target as HTMLElement))\n event.preventDefault()\n\n emits('pointerDownOutside', event)\n }\"\n @focus-outside.prevent\n @dismiss=\"rootContext.onClose()\"\n >\n <PopperContent\n :ref=\"forwardRef\"\n :data-state=\"rootContext.stateAttribute.value\"\n v-bind=\"{ ...$attrs, ...popperContentProps }\"\n :style=\"{\n '--reka-tooltip-content-transform-origin': 'var(--reka-popper-transform-origin)',\n '--reka-tooltip-content-available-width': 'var(--reka-popper-available-width)',\n '--reka-tooltip-content-available-height': 'var(--reka-popper-available-height)',\n '--reka-tooltip-trigger-width': 'var(--reka-popper-anchor-width)',\n '--reka-tooltip-trigger-height': 'var(--reka-popper-anchor-height)',\n }\"\n >\n <slot />\n <VisuallyHidden\n :id=\"rootContext.contentId\"\n role=\"tooltip\"\n >\n {{ ariaLabel }}\n </VisuallyHidden>\n </PopperContent>\n </DismissableLayer>\n</template>\n"],"names":["injectTooltipRootContext","useForwardExpose","useSlots","computed","Comment","onMounted","useEventListener","TOOLTIP_OPEN"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmDA,IAAA,MAAM,KAAQ,GAAA,OAAA;AAWd,IAAA,MAAM,KAAQ,GAAA,MAAA;AAEd,IAAA,MAAM,cAAcA,4CAAyB,EAAA;AAE7C,IAAM,MAAA,EAAE,UAAW,EAAA,GAAIC,wCAAiB,EAAA;AACxC,IAAA,MAAM,OAAOC,YAAS,EAAA;AACtB,IAAA,MAAM,cAAcC,YAAS,CAAA,MAAM,KAAK,OAAU,GAAA,EAAE,CAAC,CAAA;AACrD,IAAM,MAAA,SAAA,GAAYA,aAAS,MAAM;AAC/B,MAAA,IAAI,KAAM,CAAA,SAAA;AACR,QAAA,OAAO,KAAM,CAAA,SAAA;AACf,MAAA,IAAI,OAAU,GAAA,EAAA;AAEd,MAAA,SAAS,oBAAoB,IAAa,EAAA;AACxC,QAAA,IAAI,OAAO,IAAA,CAAK,QAAa,KAAA,QAAA,IAAY,KAAK,IAAS,KAAAC,WAAA;AACrD,UAAA,OAAA,IAAW,IAAK,CAAA,QAAA;AAAA,aACT,IAAA,KAAA,CAAM,OAAQ,CAAA,IAAA,CAAK,QAAQ,CAAA;AAClC,UAAA,IAAA,CAAK,QAAS,CAAA,OAAA,CAAQ,CAAS,KAAA,KAAA,mBAAA,CAAoB,KAAc,CAAC,CAAA;AAAA;AAGtE,MAAA,WAAA,CAAY,OAAO,OAAQ,CAAA,CAAC,IAAgB,KAAA,mBAAA,CAAoB,IAAI,CAAC,CAAA;AACrE,MAAO,OAAA,OAAA;AAAA,KACR,CAAA;AAED,IAAM,MAAA,kBAAA,GAAqBD,aAAS,MAAM;AACxC,MAAA,MAAM,EAAE,SAAA,EAAW,CAAG,EAAA,GAAG,WAAc,GAAA,KAAA;AACvC,MAAO,OAAA,SAAA;AAAA,KACR,CAAA;AAED,IAAAE,aAAA,CAAU,MAAM;AAEd,MAAiBC,qBAAA,CAAA,MAAA,EAAQ,QAAU,EAAA,CAAC,KAAU,KAAA;AAC5C,QAAA,MAAM,SAAS,KAAM,CAAA,MAAA;AACrB,QAAA,IAAI,MAAQ,EAAA,QAAA,CAAS,WAAY,CAAA,OAAA,CAAQ,KAAM,CAAA;AAC7C,UAAA,WAAA,CAAY,OAAQ,EAAA;AAAA,OACvB,CAAA;AAED,MAAiBA,qBAAA,CAAA,MAAA,EAAQC,0BAAc,EAAA,WAAA,CAAY,OAAO,CAAA;AAAA,KAC3D,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"TooltipContentImpl.cjs","sources":["../../src/Tooltip/TooltipContentImpl.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { VNode } from 'vue'\nimport type { PopperContentProps } from '@/Popper'\nimport type { PrimitiveProps } from '@/Primitive'\nimport { useForwardExpose } from '@/shared'\n\nexport type TooltipContentImplEmits = {\n /** Event handler called when focus moves to the destructive action after opening. It can be prevented by calling `event.preventDefault` */\n escapeKeyDown: [event: KeyboardEvent]\n /** Event handler called when a pointer event occurs outside the bounds of the component. It can be prevented by calling `event.preventDefault`. */\n pointerDownOutside: [event: Event]\n}\n\nexport interface TooltipContentImplProps\n extends PrimitiveProps,\n Pick<\n PopperContentProps,\n | 'side'\n | 'sideOffset'\n | 'align'\n | 'alignOffset'\n | 'avoidCollisions'\n | 'collisionBoundary'\n | 'collisionPadding'\n | 'arrowPadding'\n | 'sticky'\n | 'hideWhenDetached'\n | 'positionStrategy'\n | 'updatePositionStrategy'\n > {\n /**\n * By default, screenreaders will announce the content inside\n * the component. If this is not descriptive enough, or you have\n * content that cannot be announced, use aria-label as a more\n * descriptive label.\n *\n * @defaultValue String\n */\n ariaLabel?: string\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { useEventListener } from '@vueuse/core'\nimport { Comment, computed, onMounted, useSlots } from 'vue'\nimport { DismissableLayer } from '@/DismissableLayer'\nimport { PopperContent } from '@/Popper'\nimport { VisuallyHidden } from '@/VisuallyHidden'\nimport { injectTooltipRootContext } from './TooltipRoot.vue'\nimport { TOOLTIP_OPEN } from './utils'\n\nconst props = withDefaults(defineProps<TooltipContentImplProps>(), {\n side: 'top',\n sideOffset: 0,\n align: 'center',\n avoidCollisions: true,\n collisionBoundary: () => [],\n collisionPadding: 0,\n arrowPadding: 0,\n sticky: 'partial',\n hideWhenDetached: false,\n})\nconst emits = defineEmits<TooltipContentImplEmits>()\n\nconst rootContext = injectTooltipRootContext()\n\nconst { forwardRef } = useForwardExpose()\nconst slot = useSlots()\nconst defaultSlot = computed(() => slot.default?.({}))\nconst ariaLabel = computed(() => {\n if (props.ariaLabel)\n return props.ariaLabel\n let content = ''\n\n function recursiveTextSearch(node: VNode) {\n if (typeof node.children === 'string' && node.type !== Comment)\n content += node.children\n else if (Array.isArray(node.children))\n node.children.forEach(child => recursiveTextSearch(child as VNode))\n }\n\n defaultSlot.value?.forEach((node: VNode) => recursiveTextSearch(node))\n return content\n})\n\nconst popperContentProps = computed(() => {\n const { ariaLabel: _, ...restProps } = props\n return restProps\n})\n\nonMounted(() => {\n // Close the tooltip if the trigger is scrolled\n useEventListener(window, 'scroll', (event) => {\n const target = event.target as HTMLElement\n if (target?.contains(rootContext.trigger.value!))\n rootContext.onClose()\n })\n // Close this tooltip if another one opens\n useEventListener(window, TOOLTIP_OPEN, rootContext.onClose)\n})\n</script>\n\n<template>\n <DismissableLayer\n as-child\n :disable-outside-pointer-events=\"false\"\n @escape-key-down=\"emits('escapeKeyDown', $event)\"\n @pointer-down-outside=\"(event) => {\n if (rootContext.disableClosingTrigger.value && rootContext.trigger.value?.contains(event.target as HTMLElement))\n event.preventDefault()\n\n emits('pointerDownOutside', event)\n }\"\n @focus-outside.prevent\n @dismiss=\"rootContext.onClose()\"\n >\n <PopperContent\n :ref=\"forwardRef\"\n :data-state=\"rootContext.stateAttribute.value\"\n v-bind=\"{ ...$attrs, ...popperContentProps }\"\n :style=\"{\n '--reka-tooltip-content-transform-origin': 'var(--reka-popper-transform-origin)',\n '--reka-tooltip-content-available-width': 'var(--reka-popper-available-width)',\n '--reka-tooltip-content-available-height': 'var(--reka-popper-available-height)',\n '--reka-tooltip-trigger-width': 'var(--reka-popper-anchor-width)',\n '--reka-tooltip-trigger-height': 'var(--reka-popper-anchor-height)',\n }\"\n >\n <slot />\n <VisuallyHidden\n :id=\"rootContext.contentId\"\n role=\"tooltip\"\n >\n {{ ariaLabel }}\n </VisuallyHidden>\n </PopperContent>\n </DismissableLayer>\n</template>\n"],"names":["injectTooltipRootContext","useForwardExpose","useSlots","computed","Comment","onMounted","useEventListener","TOOLTIP_OPEN"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmDA,IAAA,MAAM,KAAQ,GAAA,OAAA;AAWd,IAAA,MAAM,KAAQ,GAAA,MAAA;AAEd,IAAA,MAAM,cAAcA,4CAAyB,EAAA;AAE7C,IAAM,MAAA,EAAE,UAAW,EAAA,GAAIC,wCAAiB,EAAA;AACxC,IAAA,MAAM,OAAOC,YAAS,EAAA;AACtB,IAAA,MAAM,cAAcC,YAAS,CAAA,MAAM,KAAK,OAAU,GAAA,EAAE,CAAC,CAAA;AACrD,IAAM,MAAA,SAAA,GAAYA,aAAS,MAAM;AAC/B,MAAA,IAAI,KAAM,CAAA,SAAA;AACR,QAAA,OAAO,KAAM,CAAA,SAAA;AACf,MAAA,IAAI,OAAU,GAAA,EAAA;AAEd,MAAA,SAAS,oBAAoB,IAAa,EAAA;AACxC,QAAA,IAAI,OAAO,IAAA,CAAK,QAAa,KAAA,QAAA,IAAY,KAAK,IAAS,KAAAC,WAAA;AACrD,UAAA,OAAA,IAAW,IAAK,CAAA,QAAA;AAAA,aACT,IAAA,KAAA,CAAM,OAAQ,CAAA,IAAA,CAAK,QAAQ,CAAA;AAClC,UAAA,IAAA,CAAK,QAAS,CAAA,OAAA,CAAQ,CAAS,KAAA,KAAA,mBAAA,CAAoB,KAAc,CAAC,CAAA;AAAA;AAGtE,MAAA,WAAA,CAAY,OAAO,OAAQ,CAAA,CAAC,IAAgB,KAAA,mBAAA,CAAoB,IAAI,CAAC,CAAA;AACrE,MAAO,OAAA,OAAA;AAAA,KACR,CAAA;AAED,IAAM,MAAA,kBAAA,GAAqBD,aAAS,MAAM;AACxC,MAAA,MAAM,EAAE,SAAA,EAAW,CAAG,EAAA,GAAG,WAAc,GAAA,KAAA;AACvC,MAAO,OAAA,SAAA;AAAA,KACR,CAAA;AAED,IAAAE,aAAA,CAAU,MAAM;AAEd,MAAiBC,qBAAA,CAAA,MAAA,EAAQ,QAAU,EAAA,CAAC,KAAU,KAAA;AAC5C,QAAA,MAAM,SAAS,KAAM,CAAA,MAAA;AACrB,QAAA,IAAI,MAAQ,EAAA,QAAA,CAAS,WAAY,CAAA,OAAA,CAAQ,KAAM,CAAA;AAC7C,UAAA,WAAA,CAAY,OAAQ,EAAA;AAAA,OACvB,CAAA;AAED,MAAiBA,qBAAA,CAAA,MAAA,EAAQC,0BAAc,EAAA,WAAA,CAAY,OAAO,CAAA;AAAA,KAC3D,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,7 +1,7 @@
1
1
  import { defineComponent, useSlots, computed, onMounted, createBlock, openBlock, unref, withModifiers, withCtx, createVNode, mergeProps, renderSlot, createTextVNode, toDisplayString, Comment } from 'vue';
2
+ import { useEventListener } from '@vueuse/core';
2
3
  import { _ as _sfc_main$1 } from '../DismissableLayer/DismissableLayer.js';
3
4
  import { _ as _sfc_main$2 } from '../Popper/PopperContent.js';
4
- import { useEventListener } from '@vueuse/core';
5
5
  import { T as TOOLTIP_OPEN } from './utils.js';
6
6
  import { i as injectTooltipRootContext } from './TooltipRoot.js';
7
7
  import { u as useForwardExpose } from '../shared/useForwardExpose.js';
@@ -1 +1 @@
1
- {"version":3,"file":"TooltipContentImpl.js","sources":["../../src/Tooltip/TooltipContentImpl.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { PopperContentProps } from '@/Popper'\nimport type { PrimitiveProps } from '@/Primitive'\nimport type { VNode } from 'vue'\nimport { useForwardExpose } from '@/shared'\n\nexport type TooltipContentImplEmits = {\n /** Event handler called when focus moves to the destructive action after opening. It can be prevented by calling `event.preventDefault` */\n escapeKeyDown: [event: KeyboardEvent]\n /** Event handler called when a pointer event occurs outside the bounds of the component. It can be prevented by calling `event.preventDefault`. */\n pointerDownOutside: [event: Event]\n}\n\nexport interface TooltipContentImplProps\n extends PrimitiveProps,\n Pick<\n PopperContentProps,\n | 'side'\n | 'sideOffset'\n | 'align'\n | 'alignOffset'\n | 'avoidCollisions'\n | 'collisionBoundary'\n | 'collisionPadding'\n | 'arrowPadding'\n | 'sticky'\n | 'hideWhenDetached'\n | 'positionStrategy'\n | 'updatePositionStrategy'\n > {\n /**\n * By default, screenreaders will announce the content inside\n * the component. If this is not descriptive enough, or you have\n * content that cannot be announced, use aria-label as a more\n * descriptive label.\n *\n * @defaultValue String\n */\n ariaLabel?: string\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { DismissableLayer } from '@/DismissableLayer'\nimport { PopperContent } from '@/Popper'\nimport { VisuallyHidden } from '@/VisuallyHidden'\nimport { useEventListener } from '@vueuse/core'\nimport { Comment, computed, onMounted, useSlots } from 'vue'\nimport { injectTooltipRootContext } from './TooltipRoot.vue'\nimport { TOOLTIP_OPEN } from './utils'\n\nconst props = withDefaults(defineProps<TooltipContentImplProps>(), {\n side: 'top',\n sideOffset: 0,\n align: 'center',\n avoidCollisions: true,\n collisionBoundary: () => [],\n collisionPadding: 0,\n arrowPadding: 0,\n sticky: 'partial',\n hideWhenDetached: false,\n})\nconst emits = defineEmits<TooltipContentImplEmits>()\n\nconst rootContext = injectTooltipRootContext()\n\nconst { forwardRef } = useForwardExpose()\nconst slot = useSlots()\nconst defaultSlot = computed(() => slot.default?.({}))\nconst ariaLabel = computed(() => {\n if (props.ariaLabel)\n return props.ariaLabel\n let content = ''\n\n function recursiveTextSearch(node: VNode) {\n if (typeof node.children === 'string' && node.type !== Comment)\n content += node.children\n else if (Array.isArray(node.children))\n node.children.forEach(child => recursiveTextSearch(child as VNode))\n }\n\n defaultSlot.value?.forEach((node: VNode) => recursiveTextSearch(node))\n return content\n})\n\nconst popperContentProps = computed(() => {\n const { ariaLabel: _, ...restProps } = props\n return restProps\n})\n\nonMounted(() => {\n // Close the tooltip if the trigger is scrolled\n useEventListener(window, 'scroll', (event) => {\n const target = event.target as HTMLElement\n if (target?.contains(rootContext.trigger.value!))\n rootContext.onClose()\n })\n // Close this tooltip if another one opens\n useEventListener(window, TOOLTIP_OPEN, rootContext.onClose)\n})\n</script>\n\n<template>\n <DismissableLayer\n as-child\n :disable-outside-pointer-events=\"false\"\n @escape-key-down=\"emits('escapeKeyDown', $event)\"\n @pointer-down-outside=\"(event) => {\n if (rootContext.disableClosingTrigger.value && rootContext.trigger.value?.contains(event.target as HTMLElement))\n event.preventDefault()\n\n emits('pointerDownOutside', event)\n }\"\n @focus-outside.prevent\n @dismiss=\"rootContext.onClose()\"\n >\n <PopperContent\n :ref=\"forwardRef\"\n :data-state=\"rootContext.stateAttribute.value\"\n v-bind=\"{ ...$attrs, ...popperContentProps }\"\n :style=\"{\n '--reka-tooltip-content-transform-origin': 'var(--reka-popper-transform-origin)',\n '--reka-tooltip-content-available-width': 'var(--reka-popper-available-width)',\n '--reka-tooltip-content-available-height': 'var(--reka-popper-available-height)',\n '--reka-tooltip-trigger-width': 'var(--reka-popper-anchor-width)',\n '--reka-tooltip-trigger-height': 'var(--reka-popper-anchor-height)',\n }\"\n >\n <slot />\n <VisuallyHidden\n :id=\"rootContext.contentId\"\n role=\"tooltip\"\n >\n {{ ariaLabel }}\n </VisuallyHidden>\n </PopperContent>\n </DismissableLayer>\n</template>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmDA,IAAA,MAAM,KAAQ,GAAA,OAAA;AAWd,IAAA,MAAM,KAAQ,GAAA,MAAA;AAEd,IAAA,MAAM,cAAc,wBAAyB,EAAA;AAE7C,IAAM,MAAA,EAAE,UAAW,EAAA,GAAI,gBAAiB,EAAA;AACxC,IAAA,MAAM,OAAO,QAAS,EAAA;AACtB,IAAA,MAAM,cAAc,QAAS,CAAA,MAAM,KAAK,OAAU,GAAA,EAAE,CAAC,CAAA;AACrD,IAAM,MAAA,SAAA,GAAY,SAAS,MAAM;AAC/B,MAAA,IAAI,KAAM,CAAA,SAAA;AACR,QAAA,OAAO,KAAM,CAAA,SAAA;AACf,MAAA,IAAI,OAAU,GAAA,EAAA;AAEd,MAAA,SAAS,oBAAoB,IAAa,EAAA;AACxC,QAAA,IAAI,OAAO,IAAA,CAAK,QAAa,KAAA,QAAA,IAAY,KAAK,IAAS,KAAA,OAAA;AACrD,UAAA,OAAA,IAAW,IAAK,CAAA,QAAA;AAAA,aACT,IAAA,KAAA,CAAM,OAAQ,CAAA,IAAA,CAAK,QAAQ,CAAA;AAClC,UAAA,IAAA,CAAK,QAAS,CAAA,OAAA,CAAQ,CAAS,KAAA,KAAA,mBAAA,CAAoB,KAAc,CAAC,CAAA;AAAA;AAGtE,MAAA,WAAA,CAAY,OAAO,OAAQ,CAAA,CAAC,IAAgB,KAAA,mBAAA,CAAoB,IAAI,CAAC,CAAA;AACrE,MAAO,OAAA,OAAA;AAAA,KACR,CAAA;AAED,IAAM,MAAA,kBAAA,GAAqB,SAAS,MAAM;AACxC,MAAA,MAAM,EAAE,SAAA,EAAW,CAAG,EAAA,GAAG,WAAc,GAAA,KAAA;AACvC,MAAO,OAAA,SAAA;AAAA,KACR,CAAA;AAED,IAAA,SAAA,CAAU,MAAM;AAEd,MAAiB,gBAAA,CAAA,MAAA,EAAQ,QAAU,EAAA,CAAC,KAAU,KAAA;AAC5C,QAAA,MAAM,SAAS,KAAM,CAAA,MAAA;AACrB,QAAA,IAAI,MAAQ,EAAA,QAAA,CAAS,WAAY,CAAA,OAAA,CAAQ,KAAM,CAAA;AAC7C,UAAA,WAAA,CAAY,OAAQ,EAAA;AAAA,OACvB,CAAA;AAED,MAAiB,gBAAA,CAAA,MAAA,EAAQ,YAAc,EAAA,WAAA,CAAY,OAAO,CAAA;AAAA,KAC3D,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"TooltipContentImpl.js","sources":["../../src/Tooltip/TooltipContentImpl.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { VNode } from 'vue'\nimport type { PopperContentProps } from '@/Popper'\nimport type { PrimitiveProps } from '@/Primitive'\nimport { useForwardExpose } from '@/shared'\n\nexport type TooltipContentImplEmits = {\n /** Event handler called when focus moves to the destructive action after opening. It can be prevented by calling `event.preventDefault` */\n escapeKeyDown: [event: KeyboardEvent]\n /** Event handler called when a pointer event occurs outside the bounds of the component. It can be prevented by calling `event.preventDefault`. */\n pointerDownOutside: [event: Event]\n}\n\nexport interface TooltipContentImplProps\n extends PrimitiveProps,\n Pick<\n PopperContentProps,\n | 'side'\n | 'sideOffset'\n | 'align'\n | 'alignOffset'\n | 'avoidCollisions'\n | 'collisionBoundary'\n | 'collisionPadding'\n | 'arrowPadding'\n | 'sticky'\n | 'hideWhenDetached'\n | 'positionStrategy'\n | 'updatePositionStrategy'\n > {\n /**\n * By default, screenreaders will announce the content inside\n * the component. If this is not descriptive enough, or you have\n * content that cannot be announced, use aria-label as a more\n * descriptive label.\n *\n * @defaultValue String\n */\n ariaLabel?: string\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { useEventListener } from '@vueuse/core'\nimport { Comment, computed, onMounted, useSlots } from 'vue'\nimport { DismissableLayer } from '@/DismissableLayer'\nimport { PopperContent } from '@/Popper'\nimport { VisuallyHidden } from '@/VisuallyHidden'\nimport { injectTooltipRootContext } from './TooltipRoot.vue'\nimport { TOOLTIP_OPEN } from './utils'\n\nconst props = withDefaults(defineProps<TooltipContentImplProps>(), {\n side: 'top',\n sideOffset: 0,\n align: 'center',\n avoidCollisions: true,\n collisionBoundary: () => [],\n collisionPadding: 0,\n arrowPadding: 0,\n sticky: 'partial',\n hideWhenDetached: false,\n})\nconst emits = defineEmits<TooltipContentImplEmits>()\n\nconst rootContext = injectTooltipRootContext()\n\nconst { forwardRef } = useForwardExpose()\nconst slot = useSlots()\nconst defaultSlot = computed(() => slot.default?.({}))\nconst ariaLabel = computed(() => {\n if (props.ariaLabel)\n return props.ariaLabel\n let content = ''\n\n function recursiveTextSearch(node: VNode) {\n if (typeof node.children === 'string' && node.type !== Comment)\n content += node.children\n else if (Array.isArray(node.children))\n node.children.forEach(child => recursiveTextSearch(child as VNode))\n }\n\n defaultSlot.value?.forEach((node: VNode) => recursiveTextSearch(node))\n return content\n})\n\nconst popperContentProps = computed(() => {\n const { ariaLabel: _, ...restProps } = props\n return restProps\n})\n\nonMounted(() => {\n // Close the tooltip if the trigger is scrolled\n useEventListener(window, 'scroll', (event) => {\n const target = event.target as HTMLElement\n if (target?.contains(rootContext.trigger.value!))\n rootContext.onClose()\n })\n // Close this tooltip if another one opens\n useEventListener(window, TOOLTIP_OPEN, rootContext.onClose)\n})\n</script>\n\n<template>\n <DismissableLayer\n as-child\n :disable-outside-pointer-events=\"false\"\n @escape-key-down=\"emits('escapeKeyDown', $event)\"\n @pointer-down-outside=\"(event) => {\n if (rootContext.disableClosingTrigger.value && rootContext.trigger.value?.contains(event.target as HTMLElement))\n event.preventDefault()\n\n emits('pointerDownOutside', event)\n }\"\n @focus-outside.prevent\n @dismiss=\"rootContext.onClose()\"\n >\n <PopperContent\n :ref=\"forwardRef\"\n :data-state=\"rootContext.stateAttribute.value\"\n v-bind=\"{ ...$attrs, ...popperContentProps }\"\n :style=\"{\n '--reka-tooltip-content-transform-origin': 'var(--reka-popper-transform-origin)',\n '--reka-tooltip-content-available-width': 'var(--reka-popper-available-width)',\n '--reka-tooltip-content-available-height': 'var(--reka-popper-available-height)',\n '--reka-tooltip-trigger-width': 'var(--reka-popper-anchor-width)',\n '--reka-tooltip-trigger-height': 'var(--reka-popper-anchor-height)',\n }\"\n >\n <slot />\n <VisuallyHidden\n :id=\"rootContext.contentId\"\n role=\"tooltip\"\n >\n {{ ariaLabel }}\n </VisuallyHidden>\n </PopperContent>\n </DismissableLayer>\n</template>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmDA,IAAA,MAAM,KAAQ,GAAA,OAAA;AAWd,IAAA,MAAM,KAAQ,GAAA,MAAA;AAEd,IAAA,MAAM,cAAc,wBAAyB,EAAA;AAE7C,IAAM,MAAA,EAAE,UAAW,EAAA,GAAI,gBAAiB,EAAA;AACxC,IAAA,MAAM,OAAO,QAAS,EAAA;AACtB,IAAA,MAAM,cAAc,QAAS,CAAA,MAAM,KAAK,OAAU,GAAA,EAAE,CAAC,CAAA;AACrD,IAAM,MAAA,SAAA,GAAY,SAAS,MAAM;AAC/B,MAAA,IAAI,KAAM,CAAA,SAAA;AACR,QAAA,OAAO,KAAM,CAAA,SAAA;AACf,MAAA,IAAI,OAAU,GAAA,EAAA;AAEd,MAAA,SAAS,oBAAoB,IAAa,EAAA;AACxC,QAAA,IAAI,OAAO,IAAA,CAAK,QAAa,KAAA,QAAA,IAAY,KAAK,IAAS,KAAA,OAAA;AACrD,UAAA,OAAA,IAAW,IAAK,CAAA,QAAA;AAAA,aACT,IAAA,KAAA,CAAM,OAAQ,CAAA,IAAA,CAAK,QAAQ,CAAA;AAClC,UAAA,IAAA,CAAK,QAAS,CAAA,OAAA,CAAQ,CAAS,KAAA,KAAA,mBAAA,CAAoB,KAAc,CAAC,CAAA;AAAA;AAGtE,MAAA,WAAA,CAAY,OAAO,OAAQ,CAAA,CAAC,IAAgB,KAAA,mBAAA,CAAoB,IAAI,CAAC,CAAA;AACrE,MAAO,OAAA,OAAA;AAAA,KACR,CAAA;AAED,IAAM,MAAA,kBAAA,GAAqB,SAAS,MAAM;AACxC,MAAA,MAAM,EAAE,SAAA,EAAW,CAAG,EAAA,GAAG,WAAc,GAAA,KAAA;AACvC,MAAO,OAAA,SAAA;AAAA,KACR,CAAA;AAED,IAAA,SAAA,CAAU,MAAM;AAEd,MAAiB,gBAAA,CAAA,MAAA,EAAQ,QAAU,EAAA,CAAC,KAAU,KAAA;AAC5C,QAAA,MAAM,SAAS,KAAM,CAAA,MAAA;AACrB,QAAA,IAAI,MAAQ,EAAA,QAAA,CAAS,WAAY,CAAA,OAAA,CAAQ,KAAM,CAAA;AAC7C,UAAA,WAAA,CAAY,OAAQ,EAAA;AAAA,OACvB,CAAA;AAED,MAAiB,gBAAA,CAAA,MAAA,EAAQ,YAAc,EAAA,WAAA,CAAY,OAAO,CAAA;AAAA,KAC3D,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,8 +1,8 @@
1
1
  'use strict';
2
2
 
3
3
  const vue = require('vue');
4
- const Popper_PopperRoot = require('../Popper/PopperRoot.cjs');
5
4
  const core = require('@vueuse/core');
5
+ const Popper_PopperRoot = require('../Popper/PopperRoot.cjs');
6
6
  const Tooltip_utils = require('./utils.cjs');
7
7
  const shared_createContext = require('../shared/createContext.cjs');
8
8
  const shared_useForwardExpose = require('../shared/useForwardExpose.cjs');
@@ -1 +1 @@
1
- {"version":3,"file":"TooltipRoot.cjs","sources":["../../src/Tooltip/TooltipRoot.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { Ref } from 'vue'\nimport { createContext, useForwardExpose } from '@/shared'\n\nexport interface TooltipRootProps {\n /**\n * The open state of the tooltip when it is initially rendered.\n * Use when you do not need to control its open state.\n */\n defaultOpen?: boolean\n /**\n * The controlled open state of the tooltip.\n */\n open?: boolean\n /**\n * Override the duration given to the `Provider` to customise\n * the open delay for a specific tooltip.\n *\n * @defaultValue 700\n */\n delayDuration?: number\n /**\n * Prevents Tooltip.Content from remaining open when hovering.\n * Disabling this has accessibility consequences. Inherits\n * from Tooltip.Provider.\n */\n disableHoverableContent?: boolean\n /**\n * When `true`, clicking on trigger will not close the content.\n * @defaultValue false\n */\n disableClosingTrigger?: boolean\n /**\n * When `true`, disable tooltip\n * @defaultValue false\n */\n disabled?: boolean\n /**\n * Prevent the tooltip from opening if the focus did not come from\n * the keyboard by matching against the `:focus-visible` selector.\n * This is useful if you want to avoid opening it when switching\n * browser tabs or closing a dialog.\n * @defaultValue false\n */\n ignoreNonKeyboardFocus?: boolean\n}\n\nexport type TooltipRootEmits = {\n /** Event handler called when the open state of the tooltip changes. */\n 'update:open': [value: boolean]\n}\n\nexport interface TooltipContext {\n contentId: string\n open: Ref<boolean>\n stateAttribute: Ref<'closed' | 'delayed-open' | 'instant-open'>\n trigger: Ref<HTMLElement | undefined>\n onTriggerChange: (trigger: HTMLElement | undefined) => void\n onTriggerEnter: () => void\n onTriggerLeave: () => void\n onOpen: () => void\n onClose: () => void\n disableHoverableContent: Ref<boolean>\n disableClosingTrigger: Ref<boolean>\n disabled: Ref<boolean>\n ignoreNonKeyboardFocus: Ref<boolean>\n}\n\nexport const [injectTooltipRootContext, provideTooltipRootContext]\n = createContext<TooltipContext>('TooltipRoot')\n</script>\n\n<script setup lang=\"ts\">\nimport { PopperRoot } from '@/Popper'\nimport { useTimeoutFn, useVModel } from '@vueuse/core'\nimport { computed, ref, watch } from 'vue'\nimport { injectTooltipProviderContext } from './TooltipProvider.vue'\nimport { TOOLTIP_OPEN } from './utils'\n\nconst props = withDefaults(defineProps<TooltipRootProps>(), {\n defaultOpen: false,\n open: undefined,\n delayDuration: undefined,\n disableHoverableContent: undefined,\n disableClosingTrigger: undefined,\n disabled: undefined,\n ignoreNonKeyboardFocus: undefined,\n})\n\nconst emit = defineEmits<TooltipRootEmits>()\n\ndefineSlots<{\n default: (props: {\n /** Current open state */\n open: typeof open.value\n }) => any\n}>()\n\nuseForwardExpose()\nconst providerContext = injectTooltipProviderContext()\n\nconst disableHoverableContent = computed(() => props.disableHoverableContent ?? providerContext.disableHoverableContent.value)\nconst disableClosingTrigger = computed(() => props.disableClosingTrigger ?? providerContext.disableClosingTrigger.value)\nconst disableTooltip = computed(() => props.disabled ?? providerContext.disabled.value)\n\nconst delayDuration = computed(() => props.delayDuration ?? providerContext.delayDuration.value)\nconst ignoreNonKeyboardFocus = computed(() => props.ignoreNonKeyboardFocus ?? providerContext.ignoreNonKeyboardFocus.value)\n\nconst open = useVModel(props, 'open', emit, {\n defaultValue: props.defaultOpen,\n passive: (props.open === undefined) as false,\n}) as Ref<boolean>\n\nwatch(open, (isOpen) => {\n if (!providerContext.onClose)\n return\n if (isOpen) {\n providerContext.onOpen()\n // as `onChange` is called within a lifecycle method we\n // avoid dispatching via `dispatchDiscreteCustomEvent`.\n document.dispatchEvent(new CustomEvent(TOOLTIP_OPEN))\n }\n else {\n providerContext.onClose()\n }\n})\n\nconst wasOpenDelayedRef = ref(false)\nconst trigger = ref<HTMLElement>()\n\nconst stateAttribute = computed(() => {\n if (!open.value)\n return 'closed'\n return wasOpenDelayedRef.value ? 'delayed-open' : 'instant-open'\n})\n\nconst { start: startTimer, stop: clearTimer } = useTimeoutFn(() => {\n wasOpenDelayedRef.value = true\n open.value = true\n}, delayDuration, { immediate: false })\n\nfunction handleOpen() {\n clearTimer()\n wasOpenDelayedRef.value = false\n open.value = true\n}\nfunction handleClose() {\n clearTimer()\n open.value = false\n}\nfunction handleDelayedOpen() {\n startTimer()\n}\n\nprovideTooltipRootContext({\n contentId: '',\n open,\n stateAttribute,\n trigger,\n onTriggerChange(el) {\n trigger.value = el\n },\n onTriggerEnter() {\n if (providerContext.isOpenDelayed.value)\n handleDelayedOpen()\n else handleOpen()\n },\n onTriggerLeave() {\n if (disableHoverableContent.value) {\n handleClose()\n }\n else {\n // Clear the timer in case the pointer leaves the trigger before the tooltip is opened.\n clearTimer()\n }\n },\n onOpen: handleOpen,\n onClose: handleClose,\n disableHoverableContent,\n disableClosingTrigger,\n disabled: disableTooltip,\n ignoreNonKeyboardFocus,\n})\n</script>\n\n<template>\n <PopperRoot>\n <slot :open=\"open\" />\n </PopperRoot>\n</template>\n"],"names":["createContext","useForwardExpose","injectTooltipProviderContext","computed","useVModel","watch","TOOLTIP_OPEN","ref","useTimeoutFn"],"mappings":"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"}
1
+ {"version":3,"file":"TooltipRoot.cjs","sources":["../../src/Tooltip/TooltipRoot.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { Ref } from 'vue'\nimport { createContext, useForwardExpose } from '@/shared'\n\nexport interface TooltipRootProps {\n /**\n * The open state of the tooltip when it is initially rendered.\n * Use when you do not need to control its open state.\n */\n defaultOpen?: boolean\n /**\n * The controlled open state of the tooltip.\n */\n open?: boolean\n /**\n * Override the duration given to the `Provider` to customise\n * the open delay for a specific tooltip.\n *\n * @defaultValue 700\n */\n delayDuration?: number\n /**\n * Prevents Tooltip.Content from remaining open when hovering.\n * Disabling this has accessibility consequences. Inherits\n * from Tooltip.Provider.\n */\n disableHoverableContent?: boolean\n /**\n * When `true`, clicking on trigger will not close the content.\n * @defaultValue false\n */\n disableClosingTrigger?: boolean\n /**\n * When `true`, disable tooltip\n * @defaultValue false\n */\n disabled?: boolean\n /**\n * Prevent the tooltip from opening if the focus did not come from\n * the keyboard by matching against the `:focus-visible` selector.\n * This is useful if you want to avoid opening it when switching\n * browser tabs or closing a dialog.\n * @defaultValue false\n */\n ignoreNonKeyboardFocus?: boolean\n}\n\nexport type TooltipRootEmits = {\n /** Event handler called when the open state of the tooltip changes. */\n 'update:open': [value: boolean]\n}\n\nexport interface TooltipContext {\n contentId: string\n open: Ref<boolean>\n stateAttribute: Ref<'closed' | 'delayed-open' | 'instant-open'>\n trigger: Ref<HTMLElement | undefined>\n onTriggerChange: (trigger: HTMLElement | undefined) => void\n onTriggerEnter: () => void\n onTriggerLeave: () => void\n onOpen: () => void\n onClose: () => void\n disableHoverableContent: Ref<boolean>\n disableClosingTrigger: Ref<boolean>\n disabled: Ref<boolean>\n ignoreNonKeyboardFocus: Ref<boolean>\n}\n\nexport const [injectTooltipRootContext, provideTooltipRootContext]\n = createContext<TooltipContext>('TooltipRoot')\n</script>\n\n<script setup lang=\"ts\">\nimport { useTimeoutFn, useVModel } from '@vueuse/core'\nimport { computed, ref, watch } from 'vue'\nimport { PopperRoot } from '@/Popper'\nimport { injectTooltipProviderContext } from './TooltipProvider.vue'\nimport { TOOLTIP_OPEN } from './utils'\n\nconst props = withDefaults(defineProps<TooltipRootProps>(), {\n defaultOpen: false,\n open: undefined,\n delayDuration: undefined,\n disableHoverableContent: undefined,\n disableClosingTrigger: undefined,\n disabled: undefined,\n ignoreNonKeyboardFocus: undefined,\n})\n\nconst emit = defineEmits<TooltipRootEmits>()\n\ndefineSlots<{\n default?: (props: {\n /** Current open state */\n open: typeof open.value\n }) => any\n}>()\n\nuseForwardExpose()\nconst providerContext = injectTooltipProviderContext()\n\nconst disableHoverableContent = computed(() => props.disableHoverableContent ?? providerContext.disableHoverableContent.value)\nconst disableClosingTrigger = computed(() => props.disableClosingTrigger ?? providerContext.disableClosingTrigger.value)\nconst disableTooltip = computed(() => props.disabled ?? providerContext.disabled.value)\n\nconst delayDuration = computed(() => props.delayDuration ?? providerContext.delayDuration.value)\nconst ignoreNonKeyboardFocus = computed(() => props.ignoreNonKeyboardFocus ?? providerContext.ignoreNonKeyboardFocus.value)\n\nconst open = useVModel(props, 'open', emit, {\n defaultValue: props.defaultOpen,\n passive: (props.open === undefined) as false,\n}) as Ref<boolean>\n\nwatch(open, (isOpen) => {\n if (!providerContext.onClose)\n return\n if (isOpen) {\n providerContext.onOpen()\n // as `onChange` is called within a lifecycle method we\n // avoid dispatching via `dispatchDiscreteCustomEvent`.\n document.dispatchEvent(new CustomEvent(TOOLTIP_OPEN))\n }\n else {\n providerContext.onClose()\n }\n})\n\nconst wasOpenDelayedRef = ref(false)\nconst trigger = ref<HTMLElement>()\n\nconst stateAttribute = computed(() => {\n if (!open.value)\n return 'closed'\n return wasOpenDelayedRef.value ? 'delayed-open' : 'instant-open'\n})\n\nconst { start: startTimer, stop: clearTimer } = useTimeoutFn(() => {\n wasOpenDelayedRef.value = true\n open.value = true\n}, delayDuration, { immediate: false })\n\nfunction handleOpen() {\n clearTimer()\n wasOpenDelayedRef.value = false\n open.value = true\n}\nfunction handleClose() {\n clearTimer()\n open.value = false\n}\nfunction handleDelayedOpen() {\n startTimer()\n}\n\nprovideTooltipRootContext({\n contentId: '',\n open,\n stateAttribute,\n trigger,\n onTriggerChange(el) {\n trigger.value = el\n },\n onTriggerEnter() {\n if (providerContext.isOpenDelayed.value)\n handleDelayedOpen()\n else handleOpen()\n },\n onTriggerLeave() {\n if (disableHoverableContent.value) {\n handleClose()\n }\n else {\n // Clear the timer in case the pointer leaves the trigger before the tooltip is opened.\n clearTimer()\n }\n },\n onOpen: handleOpen,\n onClose: handleClose,\n disableHoverableContent,\n disableClosingTrigger,\n disabled: disableTooltip,\n ignoreNonKeyboardFocus,\n})\n</script>\n\n<template>\n <PopperRoot>\n <slot :open=\"open\" />\n </PopperRoot>\n</template>\n"],"names":["createContext","useForwardExpose","injectTooltipProviderContext","computed","useVModel","watch","TOOLTIP_OPEN","ref","useTimeoutFn"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { defineComponent, computed, watch, ref, createBlock, openBlock, unref, withCtx, renderSlot } from 'vue';
2
- import { _ as _sfc_main$1 } from '../Popper/PopperRoot.js';
3
2
  import { useVModel, useTimeoutFn } from '@vueuse/core';
3
+ import { _ as _sfc_main$1 } from '../Popper/PopperRoot.js';
4
4
  import { T as TOOLTIP_OPEN } from './utils.js';
5
5
  import { c as createContext } from '../shared/createContext.js';
6
6
  import { u as useForwardExpose } from '../shared/useForwardExpose.js';
@@ -1 +1 @@
1
- {"version":3,"file":"TooltipRoot.js","sources":["../../src/Tooltip/TooltipRoot.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { Ref } from 'vue'\nimport { createContext, useForwardExpose } from '@/shared'\n\nexport interface TooltipRootProps {\n /**\n * The open state of the tooltip when it is initially rendered.\n * Use when you do not need to control its open state.\n */\n defaultOpen?: boolean\n /**\n * The controlled open state of the tooltip.\n */\n open?: boolean\n /**\n * Override the duration given to the `Provider` to customise\n * the open delay for a specific tooltip.\n *\n * @defaultValue 700\n */\n delayDuration?: number\n /**\n * Prevents Tooltip.Content from remaining open when hovering.\n * Disabling this has accessibility consequences. Inherits\n * from Tooltip.Provider.\n */\n disableHoverableContent?: boolean\n /**\n * When `true`, clicking on trigger will not close the content.\n * @defaultValue false\n */\n disableClosingTrigger?: boolean\n /**\n * When `true`, disable tooltip\n * @defaultValue false\n */\n disabled?: boolean\n /**\n * Prevent the tooltip from opening if the focus did not come from\n * the keyboard by matching against the `:focus-visible` selector.\n * This is useful if you want to avoid opening it when switching\n * browser tabs or closing a dialog.\n * @defaultValue false\n */\n ignoreNonKeyboardFocus?: boolean\n}\n\nexport type TooltipRootEmits = {\n /** Event handler called when the open state of the tooltip changes. */\n 'update:open': [value: boolean]\n}\n\nexport interface TooltipContext {\n contentId: string\n open: Ref<boolean>\n stateAttribute: Ref<'closed' | 'delayed-open' | 'instant-open'>\n trigger: Ref<HTMLElement | undefined>\n onTriggerChange: (trigger: HTMLElement | undefined) => void\n onTriggerEnter: () => void\n onTriggerLeave: () => void\n onOpen: () => void\n onClose: () => void\n disableHoverableContent: Ref<boolean>\n disableClosingTrigger: Ref<boolean>\n disabled: Ref<boolean>\n ignoreNonKeyboardFocus: Ref<boolean>\n}\n\nexport const [injectTooltipRootContext, provideTooltipRootContext]\n = createContext<TooltipContext>('TooltipRoot')\n</script>\n\n<script setup lang=\"ts\">\nimport { PopperRoot } from '@/Popper'\nimport { useTimeoutFn, useVModel } from '@vueuse/core'\nimport { computed, ref, watch } from 'vue'\nimport { injectTooltipProviderContext } from './TooltipProvider.vue'\nimport { TOOLTIP_OPEN } from './utils'\n\nconst props = withDefaults(defineProps<TooltipRootProps>(), {\n defaultOpen: false,\n open: undefined,\n delayDuration: undefined,\n disableHoverableContent: undefined,\n disableClosingTrigger: undefined,\n disabled: undefined,\n ignoreNonKeyboardFocus: undefined,\n})\n\nconst emit = defineEmits<TooltipRootEmits>()\n\ndefineSlots<{\n default: (props: {\n /** Current open state */\n open: typeof open.value\n }) => any\n}>()\n\nuseForwardExpose()\nconst providerContext = injectTooltipProviderContext()\n\nconst disableHoverableContent = computed(() => props.disableHoverableContent ?? providerContext.disableHoverableContent.value)\nconst disableClosingTrigger = computed(() => props.disableClosingTrigger ?? providerContext.disableClosingTrigger.value)\nconst disableTooltip = computed(() => props.disabled ?? providerContext.disabled.value)\n\nconst delayDuration = computed(() => props.delayDuration ?? providerContext.delayDuration.value)\nconst ignoreNonKeyboardFocus = computed(() => props.ignoreNonKeyboardFocus ?? providerContext.ignoreNonKeyboardFocus.value)\n\nconst open = useVModel(props, 'open', emit, {\n defaultValue: props.defaultOpen,\n passive: (props.open === undefined) as false,\n}) as Ref<boolean>\n\nwatch(open, (isOpen) => {\n if (!providerContext.onClose)\n return\n if (isOpen) {\n providerContext.onOpen()\n // as `onChange` is called within a lifecycle method we\n // avoid dispatching via `dispatchDiscreteCustomEvent`.\n document.dispatchEvent(new CustomEvent(TOOLTIP_OPEN))\n }\n else {\n providerContext.onClose()\n }\n})\n\nconst wasOpenDelayedRef = ref(false)\nconst trigger = ref<HTMLElement>()\n\nconst stateAttribute = computed(() => {\n if (!open.value)\n return 'closed'\n return wasOpenDelayedRef.value ? 'delayed-open' : 'instant-open'\n})\n\nconst { start: startTimer, stop: clearTimer } = useTimeoutFn(() => {\n wasOpenDelayedRef.value = true\n open.value = true\n}, delayDuration, { immediate: false })\n\nfunction handleOpen() {\n clearTimer()\n wasOpenDelayedRef.value = false\n open.value = true\n}\nfunction handleClose() {\n clearTimer()\n open.value = false\n}\nfunction handleDelayedOpen() {\n startTimer()\n}\n\nprovideTooltipRootContext({\n contentId: '',\n open,\n stateAttribute,\n trigger,\n onTriggerChange(el) {\n trigger.value = el\n },\n onTriggerEnter() {\n if (providerContext.isOpenDelayed.value)\n handleDelayedOpen()\n else handleOpen()\n },\n onTriggerLeave() {\n if (disableHoverableContent.value) {\n handleClose()\n }\n else {\n // Clear the timer in case the pointer leaves the trigger before the tooltip is opened.\n clearTimer()\n }\n },\n onOpen: handleOpen,\n onClose: handleClose,\n disableHoverableContent,\n disableClosingTrigger,\n disabled: disableTooltip,\n ignoreNonKeyboardFocus,\n})\n</script>\n\n<template>\n <PopperRoot>\n <slot :open=\"open\" />\n </PopperRoot>\n</template>\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TooltipRoot.js","sources":["../../src/Tooltip/TooltipRoot.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { Ref } from 'vue'\nimport { createContext, useForwardExpose } from '@/shared'\n\nexport interface TooltipRootProps {\n /**\n * The open state of the tooltip when it is initially rendered.\n * Use when you do not need to control its open state.\n */\n defaultOpen?: boolean\n /**\n * The controlled open state of the tooltip.\n */\n open?: boolean\n /**\n * Override the duration given to the `Provider` to customise\n * the open delay for a specific tooltip.\n *\n * @defaultValue 700\n */\n delayDuration?: number\n /**\n * Prevents Tooltip.Content from remaining open when hovering.\n * Disabling this has accessibility consequences. Inherits\n * from Tooltip.Provider.\n */\n disableHoverableContent?: boolean\n /**\n * When `true`, clicking on trigger will not close the content.\n * @defaultValue false\n */\n disableClosingTrigger?: boolean\n /**\n * When `true`, disable tooltip\n * @defaultValue false\n */\n disabled?: boolean\n /**\n * Prevent the tooltip from opening if the focus did not come from\n * the keyboard by matching against the `:focus-visible` selector.\n * This is useful if you want to avoid opening it when switching\n * browser tabs or closing a dialog.\n * @defaultValue false\n */\n ignoreNonKeyboardFocus?: boolean\n}\n\nexport type TooltipRootEmits = {\n /** Event handler called when the open state of the tooltip changes. */\n 'update:open': [value: boolean]\n}\n\nexport interface TooltipContext {\n contentId: string\n open: Ref<boolean>\n stateAttribute: Ref<'closed' | 'delayed-open' | 'instant-open'>\n trigger: Ref<HTMLElement | undefined>\n onTriggerChange: (trigger: HTMLElement | undefined) => void\n onTriggerEnter: () => void\n onTriggerLeave: () => void\n onOpen: () => void\n onClose: () => void\n disableHoverableContent: Ref<boolean>\n disableClosingTrigger: Ref<boolean>\n disabled: Ref<boolean>\n ignoreNonKeyboardFocus: Ref<boolean>\n}\n\nexport const [injectTooltipRootContext, provideTooltipRootContext]\n = createContext<TooltipContext>('TooltipRoot')\n</script>\n\n<script setup lang=\"ts\">\nimport { useTimeoutFn, useVModel } from '@vueuse/core'\nimport { computed, ref, watch } from 'vue'\nimport { PopperRoot } from '@/Popper'\nimport { injectTooltipProviderContext } from './TooltipProvider.vue'\nimport { TOOLTIP_OPEN } from './utils'\n\nconst props = withDefaults(defineProps<TooltipRootProps>(), {\n defaultOpen: false,\n open: undefined,\n delayDuration: undefined,\n disableHoverableContent: undefined,\n disableClosingTrigger: undefined,\n disabled: undefined,\n ignoreNonKeyboardFocus: undefined,\n})\n\nconst emit = defineEmits<TooltipRootEmits>()\n\ndefineSlots<{\n default?: (props: {\n /** Current open state */\n open: typeof open.value\n }) => any\n}>()\n\nuseForwardExpose()\nconst providerContext = injectTooltipProviderContext()\n\nconst disableHoverableContent = computed(() => props.disableHoverableContent ?? providerContext.disableHoverableContent.value)\nconst disableClosingTrigger = computed(() => props.disableClosingTrigger ?? providerContext.disableClosingTrigger.value)\nconst disableTooltip = computed(() => props.disabled ?? providerContext.disabled.value)\n\nconst delayDuration = computed(() => props.delayDuration ?? providerContext.delayDuration.value)\nconst ignoreNonKeyboardFocus = computed(() => props.ignoreNonKeyboardFocus ?? providerContext.ignoreNonKeyboardFocus.value)\n\nconst open = useVModel(props, 'open', emit, {\n defaultValue: props.defaultOpen,\n passive: (props.open === undefined) as false,\n}) as Ref<boolean>\n\nwatch(open, (isOpen) => {\n if (!providerContext.onClose)\n return\n if (isOpen) {\n providerContext.onOpen()\n // as `onChange` is called within a lifecycle method we\n // avoid dispatching via `dispatchDiscreteCustomEvent`.\n document.dispatchEvent(new CustomEvent(TOOLTIP_OPEN))\n }\n else {\n providerContext.onClose()\n }\n})\n\nconst wasOpenDelayedRef = ref(false)\nconst trigger = ref<HTMLElement>()\n\nconst stateAttribute = computed(() => {\n if (!open.value)\n return 'closed'\n return wasOpenDelayedRef.value ? 'delayed-open' : 'instant-open'\n})\n\nconst { start: startTimer, stop: clearTimer } = useTimeoutFn(() => {\n wasOpenDelayedRef.value = true\n open.value = true\n}, delayDuration, { immediate: false })\n\nfunction handleOpen() {\n clearTimer()\n wasOpenDelayedRef.value = false\n open.value = true\n}\nfunction handleClose() {\n clearTimer()\n open.value = false\n}\nfunction handleDelayedOpen() {\n startTimer()\n}\n\nprovideTooltipRootContext({\n contentId: '',\n open,\n stateAttribute,\n trigger,\n onTriggerChange(el) {\n trigger.value = el\n },\n onTriggerEnter() {\n if (providerContext.isOpenDelayed.value)\n handleDelayedOpen()\n else handleOpen()\n },\n onTriggerLeave() {\n if (disableHoverableContent.value) {\n handleClose()\n }\n else {\n // Clear the timer in case the pointer leaves the trigger before the tooltip is opened.\n clearTimer()\n }\n },\n onOpen: handleOpen,\n onClose: handleClose,\n disableHoverableContent,\n disableClosingTrigger,\n disabled: disableTooltip,\n ignoreNonKeyboardFocus,\n})\n</script>\n\n<template>\n <PopperRoot>\n <slot :open=\"open\" />\n </PopperRoot>\n</template>\n"],"names":[],"mappings":"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"}
@@ -44,7 +44,7 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
44
44
  }, 1);
45
45
  }
46
46
  function handlePointerDown() {
47
- if (rootContext.open) {
47
+ if (rootContext.open && !rootContext.disableClosingTrigger.value) {
48
48
  rootContext.onClose();
49
49
  }
50
50
  isPointerDown.value = true;
@@ -1 +1 @@
1
- {"version":3,"file":"TooltipTrigger.cjs","sources":["../../src/Tooltip/TooltipTrigger.vue"],"sourcesContent":["<script lang=\"ts\">\nimport { useForwardExpose, useId } from '@/shared'\n\nexport type TooltipTriggerDataState =\n | 'closed'\n | 'delayed-open'\n | 'instant-open'\n\nexport interface TooltipTriggerProps extends PopperAnchorProps {}\n</script>\n\n<script setup lang=\"ts\">\nimport type { PopperAnchorProps } from '@/Popper'\nimport { PopperAnchor } from '@/Popper'\nimport {\n Primitive,\n} from '@/Primitive'\nimport { computed, onMounted, ref } from 'vue'\nimport { injectTooltipProviderContext } from './TooltipProvider.vue'\nimport { injectTooltipRootContext } from './TooltipRoot.vue'\n\nconst props = withDefaults(defineProps<TooltipTriggerProps>(), {\n as: 'button',\n})\nconst rootContext = injectTooltipRootContext()\nconst providerContext = injectTooltipProviderContext()\n\nrootContext.contentId ||= useId(undefined, 'reka-tooltip-content')\n\nconst { forwardRef, currentElement: triggerElement } = useForwardExpose()\n\nconst isPointerDown = ref(false)\nconst hasPointerMoveOpened = ref(false)\n\nconst tooltipListeners = computed(() => {\n if (rootContext.disabled.value)\n return {}\n\n return {\n click: handleClick,\n focus: handleFocus,\n pointermove: handlePointerMove,\n pointerleave: handlePointerLeave,\n pointerdown: handlePointerDown,\n blur: handleBlur,\n }\n})\n\nonMounted(() => {\n rootContext.onTriggerChange(triggerElement.value)\n})\n\nfunction handlePointerUp() {\n setTimeout(() => {\n isPointerDown.value = false\n }, 1)\n}\n\nfunction handlePointerDown() {\n if (rootContext.open) {\n rootContext.onClose()\n }\n isPointerDown.value = true\n document.addEventListener('pointerup', handlePointerUp, { once: true })\n}\n\nfunction handlePointerMove(event: PointerEvent) {\n if (event.pointerType === 'touch')\n return\n if (\n !hasPointerMoveOpened.value && !providerContext.isPointerInTransitRef.value\n ) {\n rootContext.onTriggerEnter()\n hasPointerMoveOpened.value = true\n }\n}\n\nfunction handlePointerLeave() {\n rootContext.onTriggerLeave()\n hasPointerMoveOpened.value = false\n}\n\nfunction handleFocus(event: FocusEvent) {\n if (isPointerDown.value)\n return\n\n if (rootContext.ignoreNonKeyboardFocus.value && !(event.target as HTMLElement).matches?.(':focus-visible'))\n return\n\n rootContext.onOpen()\n}\n\nfunction handleBlur() {\n rootContext.onClose()\n}\n\nfunction handleClick() {\n if (!rootContext.disableClosingTrigger.value)\n rootContext.onClose()\n}\n</script>\n\n<template>\n <PopperAnchor\n as-child\n :reference=\"reference\"\n >\n <Primitive\n :ref=\"forwardRef\"\n :aria-describedby=\"\n rootContext.open.value ? rootContext.contentId : undefined\n \"\n :data-state=\"rootContext.stateAttribute.value\"\n :as=\"as\"\n :as-child=\"props.asChild\"\n data-grace-area-trigger\n v-on=\"tooltipListeners\"\n >\n <slot />\n </Primitive>\n </PopperAnchor>\n</template>\n"],"names":["injectTooltipRootContext","injectTooltipProviderContext","useId","useForwardExpose","ref","computed","onMounted"],"mappings":";;;;;;;;;;;;;;;;;;AAqBA,IAAA,MAAM,KAAQ,GAAA,OAAA;AAGd,IAAA,MAAM,cAAcA,4CAAyB,EAAA;AAC7C,IAAA,MAAM,kBAAkBC,oDAA6B,EAAA;AAErD,IAAY,WAAA,CAAA,SAAA,KAAcC,kBAAM,CAAA,MAAA,EAAW,sBAAsB,CAAA;AAEjE,IAAA,MAAM,EAAE,UAAA,EAAY,cAAgB,EAAA,cAAA,KAAmBC,wCAAiB,EAAA;AAExE,IAAM,MAAA,aAAA,GAAgBC,QAAI,KAAK,CAAA;AAC/B,IAAM,MAAA,oBAAA,GAAuBA,QAAI,KAAK,CAAA;AAEtC,IAAM,MAAA,gBAAA,GAAmBC,aAAS,MAAM;AACtC,MAAA,IAAI,YAAY,QAAS,CAAA,KAAA;AACvB,QAAA,OAAO,EAAC;AAEV,MAAO,OAAA;AAAA,QACL,KAAO,EAAA,WAAA;AAAA,QACP,KAAO,EAAA,WAAA;AAAA,QACP,WAAa,EAAA,iBAAA;AAAA,QACb,YAAc,EAAA,kBAAA;AAAA,QACd,WAAa,EAAA,iBAAA;AAAA,QACb,IAAM,EAAA;AAAA,OACR;AAAA,KACD,CAAA;AAED,IAAAC,aAAA,CAAU,MAAM;AACd,MAAY,WAAA,CAAA,eAAA,CAAgB,eAAe,KAAK,CAAA;AAAA,KACjD,CAAA;AAED,IAAA,SAAS,eAAkB,GAAA;AACzB,MAAA,UAAA,CAAW,MAAM;AACf,QAAA,aAAA,CAAc,KAAQ,GAAA,KAAA;AAAA,SACrB,CAAC,CAAA;AAAA;AAGN,IAAA,SAAS,iBAAoB,GAAA;AAC3B,MAAA,IAAI,YAAY,IAAM,EAAA;AACpB,QAAA,WAAA,CAAY,OAAQ,EAAA;AAAA;AAEtB,MAAA,aAAA,CAAc,KAAQ,GAAA,IAAA;AACtB,MAAA,QAAA,CAAS,iBAAiB,WAAa,EAAA,eAAA,EAAiB,EAAE,IAAA,EAAM,MAAM,CAAA;AAAA;AAGxE,IAAA,SAAS,kBAAkB,KAAqB,EAAA;AAC9C,MAAA,IAAI,MAAM,WAAgB,KAAA,OAAA;AACxB,QAAA;AACF,MAAA,IACE,CAAC,oBAAqB,CAAA,KAAA,IAAS,CAAC,eAAA,CAAgB,sBAAsB,KACtE,EAAA;AACA,QAAA,WAAA,CAAY,cAAe,EAAA;AAC3B,QAAA,oBAAA,CAAqB,KAAQ,GAAA,IAAA;AAAA;AAC/B;AAGF,IAAA,SAAS,kBAAqB,GAAA;AAC5B,MAAA,WAAA,CAAY,cAAe,EAAA;AAC3B,MAAA,oBAAA,CAAqB,KAAQ,GAAA,KAAA;AAAA;AAG/B,IAAA,SAAS,YAAY,KAAmB,EAAA;AACtC,MAAA,IAAI,aAAc,CAAA,KAAA;AAChB,QAAA;AAEF,MAAA,IAAI,YAAY,sBAAuB,CAAA,KAAA,IAAS,CAAE,KAAM,CAAA,MAAA,CAAuB,UAAU,gBAAgB,CAAA;AACvG,QAAA;AAEF,MAAA,WAAA,CAAY,MAAO,EAAA;AAAA;AAGrB,IAAA,SAAS,UAAa,GAAA;AACpB,MAAA,WAAA,CAAY,OAAQ,EAAA;AAAA;AAGtB,IAAA,SAAS,WAAc,GAAA;AACrB,MAAI,IAAA,CAAC,YAAY,qBAAsB,CAAA,KAAA;AACrC,QAAA,WAAA,CAAY,OAAQ,EAAA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"TooltipTrigger.cjs","sources":["../../src/Tooltip/TooltipTrigger.vue"],"sourcesContent":["<script lang=\"ts\">\nimport { useForwardExpose, useId } from '@/shared'\n\nexport type TooltipTriggerDataState =\n | 'closed'\n | 'delayed-open'\n | 'instant-open'\n\nexport interface TooltipTriggerProps extends PopperAnchorProps {}\n</script>\n\n<script setup lang=\"ts\">\nimport type { PopperAnchorProps } from '@/Popper'\nimport { computed, onMounted, ref } from 'vue'\nimport { PopperAnchor } from '@/Popper'\nimport {\n Primitive,\n} from '@/Primitive'\nimport { injectTooltipProviderContext } from './TooltipProvider.vue'\nimport { injectTooltipRootContext } from './TooltipRoot.vue'\n\nconst props = withDefaults(defineProps<TooltipTriggerProps>(), {\n as: 'button',\n})\nconst rootContext = injectTooltipRootContext()\nconst providerContext = injectTooltipProviderContext()\n\nrootContext.contentId ||= useId(undefined, 'reka-tooltip-content')\n\nconst { forwardRef, currentElement: triggerElement } = useForwardExpose()\n\nconst isPointerDown = ref(false)\nconst hasPointerMoveOpened = ref(false)\n\nconst tooltipListeners = computed(() => {\n if (rootContext.disabled.value)\n return {}\n\n return {\n click: handleClick,\n focus: handleFocus,\n pointermove: handlePointerMove,\n pointerleave: handlePointerLeave,\n pointerdown: handlePointerDown,\n blur: handleBlur,\n }\n})\n\nonMounted(() => {\n rootContext.onTriggerChange(triggerElement.value)\n})\n\nfunction handlePointerUp() {\n setTimeout(() => {\n isPointerDown.value = false\n }, 1)\n}\n\nfunction handlePointerDown() {\n if (rootContext.open && !rootContext.disableClosingTrigger.value) {\n rootContext.onClose()\n }\n isPointerDown.value = true\n document.addEventListener('pointerup', handlePointerUp, { once: true })\n}\n\nfunction handlePointerMove(event: PointerEvent) {\n if (event.pointerType === 'touch')\n return\n if (\n !hasPointerMoveOpened.value && !providerContext.isPointerInTransitRef.value\n ) {\n rootContext.onTriggerEnter()\n hasPointerMoveOpened.value = true\n }\n}\n\nfunction handlePointerLeave() {\n rootContext.onTriggerLeave()\n hasPointerMoveOpened.value = false\n}\n\nfunction handleFocus(event: FocusEvent) {\n if (isPointerDown.value)\n return\n\n if (rootContext.ignoreNonKeyboardFocus.value && !(event.target as HTMLElement).matches?.(':focus-visible'))\n return\n\n rootContext.onOpen()\n}\n\nfunction handleBlur() {\n rootContext.onClose()\n}\n\nfunction handleClick() {\n if (!rootContext.disableClosingTrigger.value)\n rootContext.onClose()\n}\n</script>\n\n<template>\n <PopperAnchor\n as-child\n :reference=\"reference\"\n >\n <Primitive\n :ref=\"forwardRef\"\n :aria-describedby=\"\n rootContext.open.value ? rootContext.contentId : undefined\n \"\n :data-state=\"rootContext.stateAttribute.value\"\n :as=\"as\"\n :as-child=\"props.asChild\"\n data-grace-area-trigger\n v-on=\"tooltipListeners\"\n >\n <slot />\n </Primitive>\n </PopperAnchor>\n</template>\n"],"names":["injectTooltipRootContext","injectTooltipProviderContext","useId","useForwardExpose","ref","computed","onMounted"],"mappings":";;;;;;;;;;;;;;;;;;AAqBA,IAAA,MAAM,KAAQ,GAAA,OAAA;AAGd,IAAA,MAAM,cAAcA,4CAAyB,EAAA;AAC7C,IAAA,MAAM,kBAAkBC,oDAA6B,EAAA;AAErD,IAAY,WAAA,CAAA,SAAA,KAAcC,kBAAM,CAAA,MAAA,EAAW,sBAAsB,CAAA;AAEjE,IAAA,MAAM,EAAE,UAAA,EAAY,cAAgB,EAAA,cAAA,KAAmBC,wCAAiB,EAAA;AAExE,IAAM,MAAA,aAAA,GAAgBC,QAAI,KAAK,CAAA;AAC/B,IAAM,MAAA,oBAAA,GAAuBA,QAAI,KAAK,CAAA;AAEtC,IAAM,MAAA,gBAAA,GAAmBC,aAAS,MAAM;AACtC,MAAA,IAAI,YAAY,QAAS,CAAA,KAAA;AACvB,QAAA,OAAO,EAAC;AAEV,MAAO,OAAA;AAAA,QACL,KAAO,EAAA,WAAA;AAAA,QACP,KAAO,EAAA,WAAA;AAAA,QACP,WAAa,EAAA,iBAAA;AAAA,QACb,YAAc,EAAA,kBAAA;AAAA,QACd,WAAa,EAAA,iBAAA;AAAA,QACb,IAAM,EAAA;AAAA,OACR;AAAA,KACD,CAAA;AAED,IAAAC,aAAA,CAAU,MAAM;AACd,MAAY,WAAA,CAAA,eAAA,CAAgB,eAAe,KAAK,CAAA;AAAA,KACjD,CAAA;AAED,IAAA,SAAS,eAAkB,GAAA;AACzB,MAAA,UAAA,CAAW,MAAM;AACf,QAAA,aAAA,CAAc,KAAQ,GAAA,KAAA;AAAA,SACrB,CAAC,CAAA;AAAA;AAGN,IAAA,SAAS,iBAAoB,GAAA;AAC3B,MAAA,IAAI,WAAY,CAAA,IAAA,IAAQ,CAAC,WAAA,CAAY,sBAAsB,KAAO,EAAA;AAChE,QAAA,WAAA,CAAY,OAAQ,EAAA;AAAA;AAEtB,MAAA,aAAA,CAAc,KAAQ,GAAA,IAAA;AACtB,MAAA,QAAA,CAAS,iBAAiB,WAAa,EAAA,eAAA,EAAiB,EAAE,IAAA,EAAM,MAAM,CAAA;AAAA;AAGxE,IAAA,SAAS,kBAAkB,KAAqB,EAAA;AAC9C,MAAA,IAAI,MAAM,WAAgB,KAAA,OAAA;AACxB,QAAA;AACF,MAAA,IACE,CAAC,oBAAqB,CAAA,KAAA,IAAS,CAAC,eAAA,CAAgB,sBAAsB,KACtE,EAAA;AACA,QAAA,WAAA,CAAY,cAAe,EAAA;AAC3B,QAAA,oBAAA,CAAqB,KAAQ,GAAA,IAAA;AAAA;AAC/B;AAGF,IAAA,SAAS,kBAAqB,GAAA;AAC5B,MAAA,WAAA,CAAY,cAAe,EAAA;AAC3B,MAAA,oBAAA,CAAqB,KAAQ,GAAA,KAAA;AAAA;AAG/B,IAAA,SAAS,YAAY,KAAmB,EAAA;AACtC,MAAA,IAAI,aAAc,CAAA,KAAA;AAChB,QAAA;AAEF,MAAA,IAAI,YAAY,sBAAuB,CAAA,KAAA,IAAS,CAAE,KAAM,CAAA,MAAA,CAAuB,UAAU,gBAAgB,CAAA;AACvG,QAAA;AAEF,MAAA,WAAA,CAAY,MAAO,EAAA;AAAA;AAGrB,IAAA,SAAS,UAAa,GAAA;AACpB,MAAA,WAAA,CAAY,OAAQ,EAAA;AAAA;AAGtB,IAAA,SAAS,WAAc,GAAA;AACrB,MAAI,IAAA,CAAC,YAAY,qBAAsB,CAAA,KAAA;AACrC,QAAA,WAAA,CAAY,OAAQ,EAAA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -42,7 +42,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
42
42
  }, 1);
43
43
  }
44
44
  function handlePointerDown() {
45
- if (rootContext.open) {
45
+ if (rootContext.open && !rootContext.disableClosingTrigger.value) {
46
46
  rootContext.onClose();
47
47
  }
48
48
  isPointerDown.value = true;
@@ -1 +1 @@
1
- {"version":3,"file":"TooltipTrigger.js","sources":["../../src/Tooltip/TooltipTrigger.vue"],"sourcesContent":["<script lang=\"ts\">\nimport { useForwardExpose, useId } from '@/shared'\n\nexport type TooltipTriggerDataState =\n | 'closed'\n | 'delayed-open'\n | 'instant-open'\n\nexport interface TooltipTriggerProps extends PopperAnchorProps {}\n</script>\n\n<script setup lang=\"ts\">\nimport type { PopperAnchorProps } from '@/Popper'\nimport { PopperAnchor } from '@/Popper'\nimport {\n Primitive,\n} from '@/Primitive'\nimport { computed, onMounted, ref } from 'vue'\nimport { injectTooltipProviderContext } from './TooltipProvider.vue'\nimport { injectTooltipRootContext } from './TooltipRoot.vue'\n\nconst props = withDefaults(defineProps<TooltipTriggerProps>(), {\n as: 'button',\n})\nconst rootContext = injectTooltipRootContext()\nconst providerContext = injectTooltipProviderContext()\n\nrootContext.contentId ||= useId(undefined, 'reka-tooltip-content')\n\nconst { forwardRef, currentElement: triggerElement } = useForwardExpose()\n\nconst isPointerDown = ref(false)\nconst hasPointerMoveOpened = ref(false)\n\nconst tooltipListeners = computed(() => {\n if (rootContext.disabled.value)\n return {}\n\n return {\n click: handleClick,\n focus: handleFocus,\n pointermove: handlePointerMove,\n pointerleave: handlePointerLeave,\n pointerdown: handlePointerDown,\n blur: handleBlur,\n }\n})\n\nonMounted(() => {\n rootContext.onTriggerChange(triggerElement.value)\n})\n\nfunction handlePointerUp() {\n setTimeout(() => {\n isPointerDown.value = false\n }, 1)\n}\n\nfunction handlePointerDown() {\n if (rootContext.open) {\n rootContext.onClose()\n }\n isPointerDown.value = true\n document.addEventListener('pointerup', handlePointerUp, { once: true })\n}\n\nfunction handlePointerMove(event: PointerEvent) {\n if (event.pointerType === 'touch')\n return\n if (\n !hasPointerMoveOpened.value && !providerContext.isPointerInTransitRef.value\n ) {\n rootContext.onTriggerEnter()\n hasPointerMoveOpened.value = true\n }\n}\n\nfunction handlePointerLeave() {\n rootContext.onTriggerLeave()\n hasPointerMoveOpened.value = false\n}\n\nfunction handleFocus(event: FocusEvent) {\n if (isPointerDown.value)\n return\n\n if (rootContext.ignoreNonKeyboardFocus.value && !(event.target as HTMLElement).matches?.(':focus-visible'))\n return\n\n rootContext.onOpen()\n}\n\nfunction handleBlur() {\n rootContext.onClose()\n}\n\nfunction handleClick() {\n if (!rootContext.disableClosingTrigger.value)\n rootContext.onClose()\n}\n</script>\n\n<template>\n <PopperAnchor\n as-child\n :reference=\"reference\"\n >\n <Primitive\n :ref=\"forwardRef\"\n :aria-describedby=\"\n rootContext.open.value ? rootContext.contentId : undefined\n \"\n :data-state=\"rootContext.stateAttribute.value\"\n :as=\"as\"\n :as-child=\"props.asChild\"\n data-grace-area-trigger\n v-on=\"tooltipListeners\"\n >\n <slot />\n </Primitive>\n </PopperAnchor>\n</template>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAqBA,IAAA,MAAM,KAAQ,GAAA,OAAA;AAGd,IAAA,MAAM,cAAc,wBAAyB,EAAA;AAC7C,IAAA,MAAM,kBAAkB,4BAA6B,EAAA;AAErD,IAAY,WAAA,CAAA,SAAA,KAAc,KAAM,CAAA,MAAA,EAAW,sBAAsB,CAAA;AAEjE,IAAA,MAAM,EAAE,UAAA,EAAY,cAAgB,EAAA,cAAA,KAAmB,gBAAiB,EAAA;AAExE,IAAM,MAAA,aAAA,GAAgB,IAAI,KAAK,CAAA;AAC/B,IAAM,MAAA,oBAAA,GAAuB,IAAI,KAAK,CAAA;AAEtC,IAAM,MAAA,gBAAA,GAAmB,SAAS,MAAM;AACtC,MAAA,IAAI,YAAY,QAAS,CAAA,KAAA;AACvB,QAAA,OAAO,EAAC;AAEV,MAAO,OAAA;AAAA,QACL,KAAO,EAAA,WAAA;AAAA,QACP,KAAO,EAAA,WAAA;AAAA,QACP,WAAa,EAAA,iBAAA;AAAA,QACb,YAAc,EAAA,kBAAA;AAAA,QACd,WAAa,EAAA,iBAAA;AAAA,QACb,IAAM,EAAA;AAAA,OACR;AAAA,KACD,CAAA;AAED,IAAA,SAAA,CAAU,MAAM;AACd,MAAY,WAAA,CAAA,eAAA,CAAgB,eAAe,KAAK,CAAA;AAAA,KACjD,CAAA;AAED,IAAA,SAAS,eAAkB,GAAA;AACzB,MAAA,UAAA,CAAW,MAAM;AACf,QAAA,aAAA,CAAc,KAAQ,GAAA,KAAA;AAAA,SACrB,CAAC,CAAA;AAAA;AAGN,IAAA,SAAS,iBAAoB,GAAA;AAC3B,MAAA,IAAI,YAAY,IAAM,EAAA;AACpB,QAAA,WAAA,CAAY,OAAQ,EAAA;AAAA;AAEtB,MAAA,aAAA,CAAc,KAAQ,GAAA,IAAA;AACtB,MAAA,QAAA,CAAS,iBAAiB,WAAa,EAAA,eAAA,EAAiB,EAAE,IAAA,EAAM,MAAM,CAAA;AAAA;AAGxE,IAAA,SAAS,kBAAkB,KAAqB,EAAA;AAC9C,MAAA,IAAI,MAAM,WAAgB,KAAA,OAAA;AACxB,QAAA;AACF,MAAA,IACE,CAAC,oBAAqB,CAAA,KAAA,IAAS,CAAC,eAAA,CAAgB,sBAAsB,KACtE,EAAA;AACA,QAAA,WAAA,CAAY,cAAe,EAAA;AAC3B,QAAA,oBAAA,CAAqB,KAAQ,GAAA,IAAA;AAAA;AAC/B;AAGF,IAAA,SAAS,kBAAqB,GAAA;AAC5B,MAAA,WAAA,CAAY,cAAe,EAAA;AAC3B,MAAA,oBAAA,CAAqB,KAAQ,GAAA,KAAA;AAAA;AAG/B,IAAA,SAAS,YAAY,KAAmB,EAAA;AACtC,MAAA,IAAI,aAAc,CAAA,KAAA;AAChB,QAAA;AAEF,MAAA,IAAI,YAAY,sBAAuB,CAAA,KAAA,IAAS,CAAE,KAAM,CAAA,MAAA,CAAuB,UAAU,gBAAgB,CAAA;AACvG,QAAA;AAEF,MAAA,WAAA,CAAY,MAAO,EAAA;AAAA;AAGrB,IAAA,SAAS,UAAa,GAAA;AACpB,MAAA,WAAA,CAAY,OAAQ,EAAA;AAAA;AAGtB,IAAA,SAAS,WAAc,GAAA;AACrB,MAAI,IAAA,CAAC,YAAY,qBAAsB,CAAA,KAAA;AACrC,QAAA,WAAA,CAAY,OAAQ,EAAA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"TooltipTrigger.js","sources":["../../src/Tooltip/TooltipTrigger.vue"],"sourcesContent":["<script lang=\"ts\">\nimport { useForwardExpose, useId } from '@/shared'\n\nexport type TooltipTriggerDataState =\n | 'closed'\n | 'delayed-open'\n | 'instant-open'\n\nexport interface TooltipTriggerProps extends PopperAnchorProps {}\n</script>\n\n<script setup lang=\"ts\">\nimport type { PopperAnchorProps } from '@/Popper'\nimport { computed, onMounted, ref } from 'vue'\nimport { PopperAnchor } from '@/Popper'\nimport {\n Primitive,\n} from '@/Primitive'\nimport { injectTooltipProviderContext } from './TooltipProvider.vue'\nimport { injectTooltipRootContext } from './TooltipRoot.vue'\n\nconst props = withDefaults(defineProps<TooltipTriggerProps>(), {\n as: 'button',\n})\nconst rootContext = injectTooltipRootContext()\nconst providerContext = injectTooltipProviderContext()\n\nrootContext.contentId ||= useId(undefined, 'reka-tooltip-content')\n\nconst { forwardRef, currentElement: triggerElement } = useForwardExpose()\n\nconst isPointerDown = ref(false)\nconst hasPointerMoveOpened = ref(false)\n\nconst tooltipListeners = computed(() => {\n if (rootContext.disabled.value)\n return {}\n\n return {\n click: handleClick,\n focus: handleFocus,\n pointermove: handlePointerMove,\n pointerleave: handlePointerLeave,\n pointerdown: handlePointerDown,\n blur: handleBlur,\n }\n})\n\nonMounted(() => {\n rootContext.onTriggerChange(triggerElement.value)\n})\n\nfunction handlePointerUp() {\n setTimeout(() => {\n isPointerDown.value = false\n }, 1)\n}\n\nfunction handlePointerDown() {\n if (rootContext.open && !rootContext.disableClosingTrigger.value) {\n rootContext.onClose()\n }\n isPointerDown.value = true\n document.addEventListener('pointerup', handlePointerUp, { once: true })\n}\n\nfunction handlePointerMove(event: PointerEvent) {\n if (event.pointerType === 'touch')\n return\n if (\n !hasPointerMoveOpened.value && !providerContext.isPointerInTransitRef.value\n ) {\n rootContext.onTriggerEnter()\n hasPointerMoveOpened.value = true\n }\n}\n\nfunction handlePointerLeave() {\n rootContext.onTriggerLeave()\n hasPointerMoveOpened.value = false\n}\n\nfunction handleFocus(event: FocusEvent) {\n if (isPointerDown.value)\n return\n\n if (rootContext.ignoreNonKeyboardFocus.value && !(event.target as HTMLElement).matches?.(':focus-visible'))\n return\n\n rootContext.onOpen()\n}\n\nfunction handleBlur() {\n rootContext.onClose()\n}\n\nfunction handleClick() {\n if (!rootContext.disableClosingTrigger.value)\n rootContext.onClose()\n}\n</script>\n\n<template>\n <PopperAnchor\n as-child\n :reference=\"reference\"\n >\n <Primitive\n :ref=\"forwardRef\"\n :aria-describedby=\"\n rootContext.open.value ? rootContext.contentId : undefined\n \"\n :data-state=\"rootContext.stateAttribute.value\"\n :as=\"as\"\n :as-child=\"props.asChild\"\n data-grace-area-trigger\n v-on=\"tooltipListeners\"\n >\n <slot />\n </Primitive>\n </PopperAnchor>\n</template>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAqBA,IAAA,MAAM,KAAQ,GAAA,OAAA;AAGd,IAAA,MAAM,cAAc,wBAAyB,EAAA;AAC7C,IAAA,MAAM,kBAAkB,4BAA6B,EAAA;AAErD,IAAY,WAAA,CAAA,SAAA,KAAc,KAAM,CAAA,MAAA,EAAW,sBAAsB,CAAA;AAEjE,IAAA,MAAM,EAAE,UAAA,EAAY,cAAgB,EAAA,cAAA,KAAmB,gBAAiB,EAAA;AAExE,IAAM,MAAA,aAAA,GAAgB,IAAI,KAAK,CAAA;AAC/B,IAAM,MAAA,oBAAA,GAAuB,IAAI,KAAK,CAAA;AAEtC,IAAM,MAAA,gBAAA,GAAmB,SAAS,MAAM;AACtC,MAAA,IAAI,YAAY,QAAS,CAAA,KAAA;AACvB,QAAA,OAAO,EAAC;AAEV,MAAO,OAAA;AAAA,QACL,KAAO,EAAA,WAAA;AAAA,QACP,KAAO,EAAA,WAAA;AAAA,QACP,WAAa,EAAA,iBAAA;AAAA,QACb,YAAc,EAAA,kBAAA;AAAA,QACd,WAAa,EAAA,iBAAA;AAAA,QACb,IAAM,EAAA;AAAA,OACR;AAAA,KACD,CAAA;AAED,IAAA,SAAA,CAAU,MAAM;AACd,MAAY,WAAA,CAAA,eAAA,CAAgB,eAAe,KAAK,CAAA;AAAA,KACjD,CAAA;AAED,IAAA,SAAS,eAAkB,GAAA;AACzB,MAAA,UAAA,CAAW,MAAM;AACf,QAAA,aAAA,CAAc,KAAQ,GAAA,KAAA;AAAA,SACrB,CAAC,CAAA;AAAA;AAGN,IAAA,SAAS,iBAAoB,GAAA;AAC3B,MAAA,IAAI,WAAY,CAAA,IAAA,IAAQ,CAAC,WAAA,CAAY,sBAAsB,KAAO,EAAA;AAChE,QAAA,WAAA,CAAY,OAAQ,EAAA;AAAA;AAEtB,MAAA,aAAA,CAAc,KAAQ,GAAA,IAAA;AACtB,MAAA,QAAA,CAAS,iBAAiB,WAAa,EAAA,eAAA,EAAiB,EAAE,IAAA,EAAM,MAAM,CAAA;AAAA;AAGxE,IAAA,SAAS,kBAAkB,KAAqB,EAAA;AAC9C,MAAA,IAAI,MAAM,WAAgB,KAAA,OAAA;AACxB,QAAA;AACF,MAAA,IACE,CAAC,oBAAqB,CAAA,KAAA,IAAS,CAAC,eAAA,CAAgB,sBAAsB,KACtE,EAAA;AACA,QAAA,WAAA,CAAY,cAAe,EAAA;AAC3B,QAAA,oBAAA,CAAqB,KAAQ,GAAA,IAAA;AAAA;AAC/B;AAGF,IAAA,SAAS,kBAAqB,GAAA;AAC5B,MAAA,WAAA,CAAY,cAAe,EAAA;AAC3B,MAAA,oBAAA,CAAqB,KAAQ,GAAA,KAAA;AAAA;AAG/B,IAAA,SAAS,YAAY,KAAmB,EAAA;AACtC,MAAA,IAAI,aAAc,CAAA,KAAA;AAChB,QAAA;AAEF,MAAA,IAAI,YAAY,sBAAuB,CAAA,KAAA,IAAS,CAAE,KAAM,CAAA,MAAA,CAAuB,UAAU,gBAAgB,CAAA;AACvG,QAAA;AAEF,MAAA,WAAA,CAAY,MAAO,EAAA;AAAA;AAGrB,IAAA,SAAS,UAAa,GAAA;AACpB,MAAA,WAAA,CAAY,OAAQ,EAAA;AAAA;AAGtB,IAAA,SAAS,WAAc,GAAA;AACrB,MAAI,IAAA,CAAC,YAAY,qBAAsB,CAAA,KAAA;AACrC,QAAA,WAAA,CAAY,OAAQ,EAAA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -38,7 +38,10 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
38
38
  return rootContext.selectedKeys.value.includes(key);
39
39
  });
40
40
  const isIndeterminate = vue.computed(() => {
41
- if (rootContext.propagateSelect.value && isSelected.value && hasChildren.value && Array.isArray(rootContext.modelValue.value)) {
41
+ if (rootContext.bubbleSelect.value && hasChildren.value && Array.isArray(rootContext.modelValue.value)) {
42
+ const children = Tree_utils.flatten(rootContext.getChildren(props.value) || []);
43
+ return children.some((child) => rootContext.modelValue.value.find((v) => rootContext.getKey(v) === rootContext.getKey(child))) && !children.every((child) => rootContext.modelValue.value.find((v) => rootContext.getKey(v) === rootContext.getKey(child)));
44
+ } else if (rootContext.propagateSelect.value && isSelected.value && hasChildren.value && Array.isArray(rootContext.modelValue.value)) {
42
45
  const children = Tree_utils.flatten(rootContext.getChildren(props.value) || []);
43
46
  return !children.every((child) => rootContext.modelValue.value.find((v) => rootContext.getKey(v) === rootContext.getKey(child)));
44
47
  } else {
@@ -1 +1 @@
1
- {"version":3,"file":"TreeItem.cjs","sources":["../../src/Tree/TreeItem.vue"],"sourcesContent":["<script lang=\"ts\">\nexport interface TreeItemProps<T> extends PrimitiveProps {\n /** Value given to this item */\n value: T\n /** Level of depth */\n level: number\n}\n\nexport type SelectEvent<T> = CustomEvent<{ originalEvent: PointerEvent | KeyboardEvent, value?: T, isExpanded: boolean, isSelected: boolean }>\nexport type ToggleEvent<T> = CustomEvent<{ originalEvent: PointerEvent | KeyboardEvent, value?: T, isExpanded: boolean, isSelected: boolean }>\n\nexport type TreeItemEmits<T> = {\n /** Event handler called when the selecting item. <br> It can be prevented by calling `event.preventDefault`. */\n select: [event: SelectEvent<T>]\n /** Event handler called when the selecting item. <br> It can be prevented by calling `event.preventDefault`. */\n toggle: [event: ToggleEvent<T>]\n}\n\nconst TREE_SELECT = 'tree.select'\nconst TREE_TOGGLE = 'tree.toggle'\n</script>\n\n<script setup lang=\"ts\" generic=\"T extends Record<string, any>\">\nimport type { PrimitiveProps } from '@/Primitive'\nimport { useCollection } from '@/Collection'\nimport { Primitive } from '@/Primitive'\nimport { RovingFocusItem } from '@/RovingFocus'\nimport { getActiveElement, handleAndDispatchCustomEvent } from '@/shared'\nimport { computed } from 'vue'\nimport { injectTreeRootContext } from './TreeRoot.vue'\nimport { flatten } from './utils'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst props = withDefaults(defineProps<TreeItemProps<T>>(), {\n as: 'li',\n})\n\nconst emits = defineEmits<TreeItemEmits<T>>()\n\ndefineSlots<{\n default: (props: {\n isExpanded: boolean\n isSelected: boolean\n isIndeterminate: boolean | undefined\n handleToggle: () => void\n handleSelect: () => void\n }) => any\n}>()\nconst rootContext = injectTreeRootContext()\nconst { getItems } = useCollection()\n\nconst hasChildren = computed(() => !!rootContext.getChildren(props.value))\n\nconst isExpanded = computed(() => {\n const key = rootContext.getKey(props.value)\n return rootContext.expanded.value.includes(key)\n})\n\nconst isSelected = computed(() => {\n const key = rootContext.getKey(props.value)\n return rootContext.selectedKeys.value.includes(key)\n})\n\nconst isIndeterminate = computed(() => {\n if (rootContext.propagateSelect.value && isSelected.value && hasChildren.value && Array.isArray(rootContext.modelValue.value)) {\n const children = flatten<T, any>(rootContext.getChildren(props.value) || [])\n\n return !children.every(child => rootContext.modelValue.value.find((v: any) => rootContext.getKey(v) === rootContext.getKey(child)))\n }\n else {\n return undefined\n }\n})\n\nfunction handleKeydownRight(ev: KeyboardEvent) {\n if (!hasChildren.value)\n return\n\n if (isExpanded.value) {\n // go to first child\n const collection = getItems().map(i => i.ref)\n const currentElement = getActiveElement() as HTMLElement\n const currentIndex = collection.indexOf(currentElement)\n const list = [...collection].slice(currentIndex)\n const nextElement = list.find(el => Number(el.getAttribute('data-indent')) === (props.level + 1))\n\n if (nextElement)\n nextElement.focus()\n }\n else {\n // open expanded\n handleToggleCustomEvent(ev)\n }\n}\n\nfunction handleKeydownLeft(ev: KeyboardEvent) {\n if (isExpanded.value) {\n // close expanded\n handleToggleCustomEvent(ev)\n }\n else {\n // go back to parent\n const collection = getItems().map(i => i.ref)\n const currentElement = getActiveElement() as HTMLElement\n const currentIndex = collection.indexOf(currentElement)\n const list = [...collection].slice(0, currentIndex).reverse()\n const parentElement = list.find(el => Number(el.getAttribute('data-indent')) === (props.level - 1))\n\n if (parentElement)\n parentElement.focus()\n }\n}\n\nasync function handleSelect(ev: SelectEvent<T>) {\n emits('select', ev)\n if (ev?.defaultPrevented)\n return\n\n rootContext.onSelect(props.value)\n}\nasync function handleToggle(ev: ToggleEvent<T>) {\n emits('toggle', ev)\n if (ev?.defaultPrevented)\n return\n\n rootContext.onToggle(props.value)\n}\n\nasync function handleSelectCustomEvent(ev?: PointerEvent | KeyboardEvent) {\n if (!ev)\n return\n\n const eventDetail = { originalEvent: ev, value: props.value, isExpanded: isExpanded.value, isSelected: isSelected.value }\n handleAndDispatchCustomEvent(TREE_SELECT, handleSelect, eventDetail)\n}\n\nasync function handleToggleCustomEvent(ev?: PointerEvent | KeyboardEvent) {\n if (!ev)\n return\n\n const eventDetail = { originalEvent: ev, value: props.value, isExpanded: isExpanded.value, isSelected: isSelected.value }\n handleAndDispatchCustomEvent(TREE_TOGGLE, handleToggle, eventDetail)\n}\n\ndefineExpose({\n isExpanded,\n isSelected,\n isIndeterminate,\n handleToggle: () => rootContext.onToggle(props.value),\n handleSelect: () => rootContext.onSelect(props.value),\n})\n</script>\n\n<template>\n <RovingFocusItem\n as-child\n :value=\"value\"\n allow-shift-key\n >\n <Primitive\n v-bind=\"$attrs\"\n role=\"treeitem\"\n :as=\"as\"\n :as-child=\"asChild\"\n :aria-selected=\"isSelected\"\n :aria-expanded=\"hasChildren ? isExpanded : undefined\"\n :aria-level=\"level\"\n :data-indent=\"level\"\n :data-selected=\"isSelected ? '' : undefined\"\n :data-expanded=\"isExpanded ? '' : undefined\"\n @keydown.enter.space.self.prevent=\"handleSelectCustomEvent\"\n @keydown.right.prevent=\"(ev) => rootContext.dir.value === 'ltr' ? handleKeydownRight(ev) : handleKeydownLeft(ev)\"\n @keydown.left.prevent=\"(ev) => rootContext.dir.value === 'ltr' ? handleKeydownLeft(ev) : handleKeydownRight(ev)\"\n @click.stop=\"(ev) => {\n handleSelectCustomEvent(ev)\n handleToggleCustomEvent(ev)\n }\"\n >\n <slot\n :is-expanded=\"isExpanded\"\n :is-selected=\"isSelected\"\n :is-indeterminate=\"isIndeterminate\"\n :handle-select=\"() => rootContext.onSelect(value)\"\n :handle-toggle=\"() => rootContext.onToggle(value)\"\n />\n </Primitive>\n </RovingFocusItem>\n</template>\n"],"names":["injectTreeRootContext","useCollection","computed","flatten","getActiveElement","handleAndDispatchCustomEvent"],"mappings":"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"}
1
+ {"version":3,"file":"TreeItem.cjs","sources":["../../src/Tree/TreeItem.vue"],"sourcesContent":["<script lang=\"ts\">\nexport interface TreeItemProps<T> extends PrimitiveProps {\n /** Value given to this item */\n value: T\n /** Level of depth */\n level: number\n}\n\nexport type SelectEvent<T> = CustomEvent<{ originalEvent: PointerEvent | KeyboardEvent, value?: T, isExpanded: boolean, isSelected: boolean }>\nexport type ToggleEvent<T> = CustomEvent<{ originalEvent: PointerEvent | KeyboardEvent, value?: T, isExpanded: boolean, isSelected: boolean }>\n\nexport type TreeItemEmits<T> = {\n /** Event handler called when the selecting item. <br> It can be prevented by calling `event.preventDefault`. */\n select: [event: SelectEvent<T>]\n /** Event handler called when the selecting item. <br> It can be prevented by calling `event.preventDefault`. */\n toggle: [event: ToggleEvent<T>]\n}\n\nconst TREE_SELECT = 'tree.select'\nconst TREE_TOGGLE = 'tree.toggle'\n</script>\n\n<script setup lang=\"ts\" generic=\"T extends Record<string, any>\">\nimport type { PrimitiveProps } from '@/Primitive'\nimport { computed } from 'vue'\nimport { useCollection } from '@/Collection'\nimport { Primitive } from '@/Primitive'\nimport { RovingFocusItem } from '@/RovingFocus'\nimport { getActiveElement, handleAndDispatchCustomEvent } from '@/shared'\nimport { injectTreeRootContext } from './TreeRoot.vue'\nimport { flatten } from './utils'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst props = withDefaults(defineProps<TreeItemProps<T>>(), {\n as: 'li',\n})\n\nconst emits = defineEmits<TreeItemEmits<T>>()\n\ndefineSlots<{\n default?: (props: {\n isExpanded: boolean\n isSelected: boolean\n isIndeterminate: boolean | undefined\n handleToggle: () => void\n handleSelect: () => void\n }) => any\n}>()\nconst rootContext = injectTreeRootContext()\nconst { getItems } = useCollection()\n\nconst hasChildren = computed(() => !!rootContext.getChildren(props.value))\n\nconst isExpanded = computed(() => {\n const key = rootContext.getKey(props.value)\n return rootContext.expanded.value.includes(key)\n})\n\nconst isSelected = computed(() => {\n const key = rootContext.getKey(props.value)\n return rootContext.selectedKeys.value.includes(key)\n})\n\nconst isIndeterminate = computed(() => {\n if (rootContext.bubbleSelect.value && hasChildren.value && Array.isArray(rootContext.modelValue.value)) {\n const children = flatten<T, any>(rootContext.getChildren(props.value) || [])\n\n return children.some(child => rootContext.modelValue.value.find((v: any) => rootContext.getKey(v) === rootContext.getKey(child)))\n && !children.every(child => rootContext.modelValue.value.find((v: any) => rootContext.getKey(v) === rootContext.getKey(child)))\n }\n else if (rootContext.propagateSelect.value && isSelected.value && hasChildren.value && Array.isArray(rootContext.modelValue.value)) {\n const children = flatten<T, any>(rootContext.getChildren(props.value) || [])\n\n return !children.every(child => rootContext.modelValue.value.find((v: any) => rootContext.getKey(v) === rootContext.getKey(child)))\n }\n else {\n return undefined\n }\n})\n\nfunction handleKeydownRight(ev: KeyboardEvent) {\n if (!hasChildren.value)\n return\n\n if (isExpanded.value) {\n // go to first child\n const collection = getItems().map(i => i.ref)\n const currentElement = getActiveElement() as HTMLElement\n const currentIndex = collection.indexOf(currentElement)\n const list = [...collection].slice(currentIndex)\n const nextElement = list.find(el => Number(el.getAttribute('data-indent')) === (props.level + 1))\n\n if (nextElement)\n nextElement.focus()\n }\n else {\n // open expanded\n handleToggleCustomEvent(ev)\n }\n}\n\nfunction handleKeydownLeft(ev: KeyboardEvent) {\n if (isExpanded.value) {\n // close expanded\n handleToggleCustomEvent(ev)\n }\n else {\n // go back to parent\n const collection = getItems().map(i => i.ref)\n const currentElement = getActiveElement() as HTMLElement\n const currentIndex = collection.indexOf(currentElement)\n const list = [...collection].slice(0, currentIndex).reverse()\n const parentElement = list.find(el => Number(el.getAttribute('data-indent')) === (props.level - 1))\n\n if (parentElement)\n parentElement.focus()\n }\n}\n\nasync function handleSelect(ev: SelectEvent<T>) {\n emits('select', ev)\n if (ev?.defaultPrevented)\n return\n\n rootContext.onSelect(props.value)\n}\nasync function handleToggle(ev: ToggleEvent<T>) {\n emits('toggle', ev)\n if (ev?.defaultPrevented)\n return\n\n rootContext.onToggle(props.value)\n}\n\nasync function handleSelectCustomEvent(ev?: PointerEvent | KeyboardEvent) {\n if (!ev)\n return\n\n const eventDetail = { originalEvent: ev, value: props.value, isExpanded: isExpanded.value, isSelected: isSelected.value }\n handleAndDispatchCustomEvent(TREE_SELECT, handleSelect, eventDetail)\n}\n\nasync function handleToggleCustomEvent(ev?: PointerEvent | KeyboardEvent) {\n if (!ev)\n return\n\n const eventDetail = { originalEvent: ev, value: props.value, isExpanded: isExpanded.value, isSelected: isSelected.value }\n handleAndDispatchCustomEvent(TREE_TOGGLE, handleToggle, eventDetail)\n}\n\ndefineExpose({\n isExpanded,\n isSelected,\n isIndeterminate,\n handleToggle: () => rootContext.onToggle(props.value),\n handleSelect: () => rootContext.onSelect(props.value),\n})\n</script>\n\n<template>\n <RovingFocusItem\n as-child\n :value=\"value\"\n allow-shift-key\n >\n <Primitive\n v-bind=\"$attrs\"\n role=\"treeitem\"\n :as=\"as\"\n :as-child=\"asChild\"\n :aria-selected=\"isSelected\"\n :aria-expanded=\"hasChildren ? isExpanded : undefined\"\n :aria-level=\"level\"\n :data-indent=\"level\"\n :data-selected=\"isSelected ? '' : undefined\"\n :data-expanded=\"isExpanded ? '' : undefined\"\n @keydown.enter.space.self.prevent=\"handleSelectCustomEvent\"\n @keydown.right.prevent=\"(ev) => rootContext.dir.value === 'ltr' ? handleKeydownRight(ev) : handleKeydownLeft(ev)\"\n @keydown.left.prevent=\"(ev) => rootContext.dir.value === 'ltr' ? handleKeydownLeft(ev) : handleKeydownRight(ev)\"\n @click.stop=\"(ev) => {\n handleSelectCustomEvent(ev)\n handleToggleCustomEvent(ev)\n }\"\n >\n <slot\n :is-expanded=\"isExpanded\"\n :is-selected=\"isSelected\"\n :is-indeterminate=\"isIndeterminate\"\n :handle-select=\"() => rootContext.onSelect(value)\"\n :handle-toggle=\"() => rootContext.onToggle(value)\"\n />\n </Primitive>\n </RovingFocusItem>\n</template>\n"],"names":["injectTreeRootContext","useCollection","computed","flatten","getActiveElement","handleAndDispatchCustomEvent"],"mappings":"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"}
@@ -36,7 +36,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
36
36
  return rootContext.selectedKeys.value.includes(key);
37
37
  });
38
38
  const isIndeterminate = computed(() => {
39
- if (rootContext.propagateSelect.value && isSelected.value && hasChildren.value && Array.isArray(rootContext.modelValue.value)) {
39
+ if (rootContext.bubbleSelect.value && hasChildren.value && Array.isArray(rootContext.modelValue.value)) {
40
+ const children = flatten(rootContext.getChildren(props.value) || []);
41
+ return children.some((child) => rootContext.modelValue.value.find((v) => rootContext.getKey(v) === rootContext.getKey(child))) && !children.every((child) => rootContext.modelValue.value.find((v) => rootContext.getKey(v) === rootContext.getKey(child)));
42
+ } else if (rootContext.propagateSelect.value && isSelected.value && hasChildren.value && Array.isArray(rootContext.modelValue.value)) {
40
43
  const children = flatten(rootContext.getChildren(props.value) || []);
41
44
  return !children.every((child) => rootContext.modelValue.value.find((v) => rootContext.getKey(v) === rootContext.getKey(child)));
42
45
  } else {
@@ -1 +1 @@
1
- {"version":3,"file":"TreeItem.js","sources":["../../src/Tree/TreeItem.vue"],"sourcesContent":["<script lang=\"ts\">\nexport interface TreeItemProps<T> extends PrimitiveProps {\n /** Value given to this item */\n value: T\n /** Level of depth */\n level: number\n}\n\nexport type SelectEvent<T> = CustomEvent<{ originalEvent: PointerEvent | KeyboardEvent, value?: T, isExpanded: boolean, isSelected: boolean }>\nexport type ToggleEvent<T> = CustomEvent<{ originalEvent: PointerEvent | KeyboardEvent, value?: T, isExpanded: boolean, isSelected: boolean }>\n\nexport type TreeItemEmits<T> = {\n /** Event handler called when the selecting item. <br> It can be prevented by calling `event.preventDefault`. */\n select: [event: SelectEvent<T>]\n /** Event handler called when the selecting item. <br> It can be prevented by calling `event.preventDefault`. */\n toggle: [event: ToggleEvent<T>]\n}\n\nconst TREE_SELECT = 'tree.select'\nconst TREE_TOGGLE = 'tree.toggle'\n</script>\n\n<script setup lang=\"ts\" generic=\"T extends Record<string, any>\">\nimport type { PrimitiveProps } from '@/Primitive'\nimport { useCollection } from '@/Collection'\nimport { Primitive } from '@/Primitive'\nimport { RovingFocusItem } from '@/RovingFocus'\nimport { getActiveElement, handleAndDispatchCustomEvent } from '@/shared'\nimport { computed } from 'vue'\nimport { injectTreeRootContext } from './TreeRoot.vue'\nimport { flatten } from './utils'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst props = withDefaults(defineProps<TreeItemProps<T>>(), {\n as: 'li',\n})\n\nconst emits = defineEmits<TreeItemEmits<T>>()\n\ndefineSlots<{\n default: (props: {\n isExpanded: boolean\n isSelected: boolean\n isIndeterminate: boolean | undefined\n handleToggle: () => void\n handleSelect: () => void\n }) => any\n}>()\nconst rootContext = injectTreeRootContext()\nconst { getItems } = useCollection()\n\nconst hasChildren = computed(() => !!rootContext.getChildren(props.value))\n\nconst isExpanded = computed(() => {\n const key = rootContext.getKey(props.value)\n return rootContext.expanded.value.includes(key)\n})\n\nconst isSelected = computed(() => {\n const key = rootContext.getKey(props.value)\n return rootContext.selectedKeys.value.includes(key)\n})\n\nconst isIndeterminate = computed(() => {\n if (rootContext.propagateSelect.value && isSelected.value && hasChildren.value && Array.isArray(rootContext.modelValue.value)) {\n const children = flatten<T, any>(rootContext.getChildren(props.value) || [])\n\n return !children.every(child => rootContext.modelValue.value.find((v: any) => rootContext.getKey(v) === rootContext.getKey(child)))\n }\n else {\n return undefined\n }\n})\n\nfunction handleKeydownRight(ev: KeyboardEvent) {\n if (!hasChildren.value)\n return\n\n if (isExpanded.value) {\n // go to first child\n const collection = getItems().map(i => i.ref)\n const currentElement = getActiveElement() as HTMLElement\n const currentIndex = collection.indexOf(currentElement)\n const list = [...collection].slice(currentIndex)\n const nextElement = list.find(el => Number(el.getAttribute('data-indent')) === (props.level + 1))\n\n if (nextElement)\n nextElement.focus()\n }\n else {\n // open expanded\n handleToggleCustomEvent(ev)\n }\n}\n\nfunction handleKeydownLeft(ev: KeyboardEvent) {\n if (isExpanded.value) {\n // close expanded\n handleToggleCustomEvent(ev)\n }\n else {\n // go back to parent\n const collection = getItems().map(i => i.ref)\n const currentElement = getActiveElement() as HTMLElement\n const currentIndex = collection.indexOf(currentElement)\n const list = [...collection].slice(0, currentIndex).reverse()\n const parentElement = list.find(el => Number(el.getAttribute('data-indent')) === (props.level - 1))\n\n if (parentElement)\n parentElement.focus()\n }\n}\n\nasync function handleSelect(ev: SelectEvent<T>) {\n emits('select', ev)\n if (ev?.defaultPrevented)\n return\n\n rootContext.onSelect(props.value)\n}\nasync function handleToggle(ev: ToggleEvent<T>) {\n emits('toggle', ev)\n if (ev?.defaultPrevented)\n return\n\n rootContext.onToggle(props.value)\n}\n\nasync function handleSelectCustomEvent(ev?: PointerEvent | KeyboardEvent) {\n if (!ev)\n return\n\n const eventDetail = { originalEvent: ev, value: props.value, isExpanded: isExpanded.value, isSelected: isSelected.value }\n handleAndDispatchCustomEvent(TREE_SELECT, handleSelect, eventDetail)\n}\n\nasync function handleToggleCustomEvent(ev?: PointerEvent | KeyboardEvent) {\n if (!ev)\n return\n\n const eventDetail = { originalEvent: ev, value: props.value, isExpanded: isExpanded.value, isSelected: isSelected.value }\n handleAndDispatchCustomEvent(TREE_TOGGLE, handleToggle, eventDetail)\n}\n\ndefineExpose({\n isExpanded,\n isSelected,\n isIndeterminate,\n handleToggle: () => rootContext.onToggle(props.value),\n handleSelect: () => rootContext.onSelect(props.value),\n})\n</script>\n\n<template>\n <RovingFocusItem\n as-child\n :value=\"value\"\n allow-shift-key\n >\n <Primitive\n v-bind=\"$attrs\"\n role=\"treeitem\"\n :as=\"as\"\n :as-child=\"asChild\"\n :aria-selected=\"isSelected\"\n :aria-expanded=\"hasChildren ? isExpanded : undefined\"\n :aria-level=\"level\"\n :data-indent=\"level\"\n :data-selected=\"isSelected ? '' : undefined\"\n :data-expanded=\"isExpanded ? '' : undefined\"\n @keydown.enter.space.self.prevent=\"handleSelectCustomEvent\"\n @keydown.right.prevent=\"(ev) => rootContext.dir.value === 'ltr' ? handleKeydownRight(ev) : handleKeydownLeft(ev)\"\n @keydown.left.prevent=\"(ev) => rootContext.dir.value === 'ltr' ? handleKeydownLeft(ev) : handleKeydownRight(ev)\"\n @click.stop=\"(ev) => {\n handleSelectCustomEvent(ev)\n handleToggleCustomEvent(ev)\n }\"\n >\n <slot\n :is-expanded=\"isExpanded\"\n :is-selected=\"isSelected\"\n :is-indeterminate=\"isIndeterminate\"\n :handle-select=\"() => rootContext.onSelect(value)\"\n :handle-toggle=\"() => rootContext.onToggle(value)\"\n />\n </Primitive>\n </RovingFocusItem>\n</template>\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TreeItem.js","sources":["../../src/Tree/TreeItem.vue"],"sourcesContent":["<script lang=\"ts\">\nexport interface TreeItemProps<T> extends PrimitiveProps {\n /** Value given to this item */\n value: T\n /** Level of depth */\n level: number\n}\n\nexport type SelectEvent<T> = CustomEvent<{ originalEvent: PointerEvent | KeyboardEvent, value?: T, isExpanded: boolean, isSelected: boolean }>\nexport type ToggleEvent<T> = CustomEvent<{ originalEvent: PointerEvent | KeyboardEvent, value?: T, isExpanded: boolean, isSelected: boolean }>\n\nexport type TreeItemEmits<T> = {\n /** Event handler called when the selecting item. <br> It can be prevented by calling `event.preventDefault`. */\n select: [event: SelectEvent<T>]\n /** Event handler called when the selecting item. <br> It can be prevented by calling `event.preventDefault`. */\n toggle: [event: ToggleEvent<T>]\n}\n\nconst TREE_SELECT = 'tree.select'\nconst TREE_TOGGLE = 'tree.toggle'\n</script>\n\n<script setup lang=\"ts\" generic=\"T extends Record<string, any>\">\nimport type { PrimitiveProps } from '@/Primitive'\nimport { computed } from 'vue'\nimport { useCollection } from '@/Collection'\nimport { Primitive } from '@/Primitive'\nimport { RovingFocusItem } from '@/RovingFocus'\nimport { getActiveElement, handleAndDispatchCustomEvent } from '@/shared'\nimport { injectTreeRootContext } from './TreeRoot.vue'\nimport { flatten } from './utils'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst props = withDefaults(defineProps<TreeItemProps<T>>(), {\n as: 'li',\n})\n\nconst emits = defineEmits<TreeItemEmits<T>>()\n\ndefineSlots<{\n default?: (props: {\n isExpanded: boolean\n isSelected: boolean\n isIndeterminate: boolean | undefined\n handleToggle: () => void\n handleSelect: () => void\n }) => any\n}>()\nconst rootContext = injectTreeRootContext()\nconst { getItems } = useCollection()\n\nconst hasChildren = computed(() => !!rootContext.getChildren(props.value))\n\nconst isExpanded = computed(() => {\n const key = rootContext.getKey(props.value)\n return rootContext.expanded.value.includes(key)\n})\n\nconst isSelected = computed(() => {\n const key = rootContext.getKey(props.value)\n return rootContext.selectedKeys.value.includes(key)\n})\n\nconst isIndeterminate = computed(() => {\n if (rootContext.bubbleSelect.value && hasChildren.value && Array.isArray(rootContext.modelValue.value)) {\n const children = flatten<T, any>(rootContext.getChildren(props.value) || [])\n\n return children.some(child => rootContext.modelValue.value.find((v: any) => rootContext.getKey(v) === rootContext.getKey(child)))\n && !children.every(child => rootContext.modelValue.value.find((v: any) => rootContext.getKey(v) === rootContext.getKey(child)))\n }\n else if (rootContext.propagateSelect.value && isSelected.value && hasChildren.value && Array.isArray(rootContext.modelValue.value)) {\n const children = flatten<T, any>(rootContext.getChildren(props.value) || [])\n\n return !children.every(child => rootContext.modelValue.value.find((v: any) => rootContext.getKey(v) === rootContext.getKey(child)))\n }\n else {\n return undefined\n }\n})\n\nfunction handleKeydownRight(ev: KeyboardEvent) {\n if (!hasChildren.value)\n return\n\n if (isExpanded.value) {\n // go to first child\n const collection = getItems().map(i => i.ref)\n const currentElement = getActiveElement() as HTMLElement\n const currentIndex = collection.indexOf(currentElement)\n const list = [...collection].slice(currentIndex)\n const nextElement = list.find(el => Number(el.getAttribute('data-indent')) === (props.level + 1))\n\n if (nextElement)\n nextElement.focus()\n }\n else {\n // open expanded\n handleToggleCustomEvent(ev)\n }\n}\n\nfunction handleKeydownLeft(ev: KeyboardEvent) {\n if (isExpanded.value) {\n // close expanded\n handleToggleCustomEvent(ev)\n }\n else {\n // go back to parent\n const collection = getItems().map(i => i.ref)\n const currentElement = getActiveElement() as HTMLElement\n const currentIndex = collection.indexOf(currentElement)\n const list = [...collection].slice(0, currentIndex).reverse()\n const parentElement = list.find(el => Number(el.getAttribute('data-indent')) === (props.level - 1))\n\n if (parentElement)\n parentElement.focus()\n }\n}\n\nasync function handleSelect(ev: SelectEvent<T>) {\n emits('select', ev)\n if (ev?.defaultPrevented)\n return\n\n rootContext.onSelect(props.value)\n}\nasync function handleToggle(ev: ToggleEvent<T>) {\n emits('toggle', ev)\n if (ev?.defaultPrevented)\n return\n\n rootContext.onToggle(props.value)\n}\n\nasync function handleSelectCustomEvent(ev?: PointerEvent | KeyboardEvent) {\n if (!ev)\n return\n\n const eventDetail = { originalEvent: ev, value: props.value, isExpanded: isExpanded.value, isSelected: isSelected.value }\n handleAndDispatchCustomEvent(TREE_SELECT, handleSelect, eventDetail)\n}\n\nasync function handleToggleCustomEvent(ev?: PointerEvent | KeyboardEvent) {\n if (!ev)\n return\n\n const eventDetail = { originalEvent: ev, value: props.value, isExpanded: isExpanded.value, isSelected: isSelected.value }\n handleAndDispatchCustomEvent(TREE_TOGGLE, handleToggle, eventDetail)\n}\n\ndefineExpose({\n isExpanded,\n isSelected,\n isIndeterminate,\n handleToggle: () => rootContext.onToggle(props.value),\n handleSelect: () => rootContext.onSelect(props.value),\n})\n</script>\n\n<template>\n <RovingFocusItem\n as-child\n :value=\"value\"\n allow-shift-key\n >\n <Primitive\n v-bind=\"$attrs\"\n role=\"treeitem\"\n :as=\"as\"\n :as-child=\"asChild\"\n :aria-selected=\"isSelected\"\n :aria-expanded=\"hasChildren ? isExpanded : undefined\"\n :aria-level=\"level\"\n :data-indent=\"level\"\n :data-selected=\"isSelected ? '' : undefined\"\n :data-expanded=\"isExpanded ? '' : undefined\"\n @keydown.enter.space.self.prevent=\"handleSelectCustomEvent\"\n @keydown.right.prevent=\"(ev) => rootContext.dir.value === 'ltr' ? handleKeydownRight(ev) : handleKeydownLeft(ev)\"\n @keydown.left.prevent=\"(ev) => rootContext.dir.value === 'ltr' ? handleKeydownLeft(ev) : handleKeydownRight(ev)\"\n @click.stop=\"(ev) => {\n handleSelectCustomEvent(ev)\n handleToggleCustomEvent(ev)\n }\"\n >\n <slot\n :is-expanded=\"isExpanded\"\n :is-selected=\"isSelected\"\n :is-indeterminate=\"isIndeterminate\"\n :handle-select=\"() => rootContext.onSelect(value)\"\n :handle-toggle=\"() => rootContext.onToggle(value)\"\n />\n </Primitive>\n </RovingFocusItem>\n</template>\n"],"names":[],"mappings":"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"}