@proyecto-viviana/solidaria 0.2.8 → 0.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 (548) hide show
  1. package/README.md +31 -236
  2. package/dist/actiongroup/createActionGroup.d.ts +5 -5
  3. package/dist/actiongroup/createActionGroup.d.ts.map +1 -1
  4. package/dist/actiongroup/index.d.ts +1 -1
  5. package/dist/autocomplete/createAutocomplete.d.ts +10 -10
  6. package/dist/autocomplete/createAutocomplete.d.ts.map +1 -1
  7. package/dist/autocomplete/index.d.ts +1 -1
  8. package/dist/autocomplete/index.d.ts.map +1 -1
  9. package/dist/breadcrumbs/createBreadcrumbs.d.ts +9 -7
  10. package/dist/breadcrumbs/createBreadcrumbs.d.ts.map +1 -1
  11. package/dist/breadcrumbs/index.d.ts +1 -1
  12. package/dist/button/createButton.d.ts +1 -1
  13. package/dist/button/createButton.d.ts.map +1 -1
  14. package/dist/button/createToggleButton.d.ts +3 -3
  15. package/dist/button/createToggleButtonGroup.d.ts +7 -7
  16. package/dist/button/createToggleButtonGroup.d.ts.map +1 -1
  17. package/dist/button/index.d.ts +6 -6
  18. package/dist/button/index.d.ts.map +1 -1
  19. package/dist/button/types.d.ts +18 -12
  20. package/dist/button/types.d.ts.map +1 -1
  21. package/dist/calendar/createCalendar.d.ts +15 -5
  22. package/dist/calendar/createCalendar.d.ts.map +1 -1
  23. package/dist/calendar/createCalendarCell.d.ts +6 -2
  24. package/dist/calendar/createCalendarCell.d.ts.map +1 -1
  25. package/dist/calendar/createCalendarGrid.d.ts +4 -4
  26. package/dist/calendar/createCalendarGrid.d.ts.map +1 -1
  27. package/dist/calendar/createRangeCalendar.d.ts +15 -5
  28. package/dist/calendar/createRangeCalendar.d.ts.map +1 -1
  29. package/dist/calendar/createRangeCalendarCell.d.ts +4 -2
  30. package/dist/calendar/createRangeCalendarCell.d.ts.map +1 -1
  31. package/dist/calendar/index.d.ts +5 -5
  32. package/dist/calendar/index.d.ts.map +1 -1
  33. package/dist/calendar/intl/index.d.ts +12 -0
  34. package/dist/calendar/intl/index.d.ts.map +1 -0
  35. package/dist/calendar/utils.d.ts +12 -0
  36. package/dist/calendar/utils.d.ts.map +1 -0
  37. package/dist/checkbox/createCheckbox.d.ts +6 -6
  38. package/dist/checkbox/createCheckbox.d.ts.map +1 -1
  39. package/dist/checkbox/createCheckboxGroup.d.ts +7 -7
  40. package/dist/checkbox/createCheckboxGroup.d.ts.map +1 -1
  41. package/dist/checkbox/createCheckboxGroupItem.d.ts +4 -4
  42. package/dist/checkbox/createCheckboxGroupItem.d.ts.map +1 -1
  43. package/dist/checkbox/createCheckboxGroupState.d.ts +2 -2
  44. package/dist/checkbox/createCheckboxGroupState.d.ts.map +1 -1
  45. package/dist/checkbox/index.d.ts +8 -8
  46. package/dist/checkbox/index.d.ts.map +1 -1
  47. package/dist/collections/index.d.ts +3 -3
  48. package/dist/collections/index.d.ts.map +1 -1
  49. package/dist/color/createColorArea.d.ts +3 -3
  50. package/dist/color/createColorArea.d.ts.map +1 -1
  51. package/dist/color/createColorField.d.ts +4 -4
  52. package/dist/color/createColorField.d.ts.map +1 -1
  53. package/dist/color/createColorSlider.d.ts +4 -4
  54. package/dist/color/createColorSlider.d.ts.map +1 -1
  55. package/dist/color/createColorSwatch.d.ts +2 -2
  56. package/dist/color/createColorSwatch.d.ts.map +1 -1
  57. package/dist/color/createColorWheel.d.ts +3 -3
  58. package/dist/color/createColorWheel.d.ts.map +1 -1
  59. package/dist/color/index.d.ts +6 -6
  60. package/dist/color/types.d.ts +98 -16
  61. package/dist/color/types.d.ts.map +1 -1
  62. package/dist/combobox/createComboBox.d.ts +10 -7
  63. package/dist/combobox/createComboBox.d.ts.map +1 -1
  64. package/dist/combobox/index.d.ts +1 -1
  65. package/dist/combobox/intl/index.d.ts +1 -1
  66. package/dist/datepicker/createDateField.d.ts +18 -6
  67. package/dist/datepicker/createDateField.d.ts.map +1 -1
  68. package/dist/datepicker/createDatePicker.d.ts +51 -5
  69. package/dist/datepicker/createDatePicker.d.ts.map +1 -1
  70. package/dist/datepicker/createDatePickerGroup.d.ts +19 -0
  71. package/dist/datepicker/createDatePickerGroup.d.ts.map +1 -0
  72. package/dist/datepicker/createDateRangePicker.d.ts +8 -6
  73. package/dist/datepicker/createDateRangePicker.d.ts.map +1 -1
  74. package/dist/datepicker/createDateSegment.d.ts +10 -2
  75. package/dist/datepicker/createDateSegment.d.ts.map +1 -1
  76. package/dist/datepicker/createTimeField.d.ts +11 -5
  77. package/dist/datepicker/createTimeField.d.ts.map +1 -1
  78. package/dist/datepicker/createTimeSegment.d.ts +2 -2
  79. package/dist/datepicker/createTimeSegment.d.ts.map +1 -1
  80. package/dist/datepicker/index.d.ts +7 -6
  81. package/dist/datepicker/index.d.ts.map +1 -1
  82. package/dist/dialog/createDialog.d.ts +5 -5
  83. package/dist/dialog/createDialog.d.ts.map +1 -1
  84. package/dist/dialog/index.d.ts +2 -2
  85. package/dist/dialog/index.d.ts.map +1 -1
  86. package/dist/dialog/types.d.ts +4 -4
  87. package/dist/disclosure/createDisclosure.d.ts +5 -2
  88. package/dist/disclosure/createDisclosure.d.ts.map +1 -1
  89. package/dist/disclosure/createDisclosureGroup.d.ts +4 -4
  90. package/dist/disclosure/createDisclosureGroup.d.ts.map +1 -1
  91. package/dist/disclosure/index.d.ts +2 -2
  92. package/dist/dnd/createDrag.d.ts +2 -2
  93. package/dist/dnd/createDrag.d.ts.map +1 -1
  94. package/dist/dnd/createDraggableCollection.d.ts +2 -2
  95. package/dist/dnd/createDraggableItem.d.ts +3 -3
  96. package/dist/dnd/createDraggableItem.d.ts.map +1 -1
  97. package/dist/dnd/createDrop.d.ts +2 -2
  98. package/dist/dnd/createDrop.d.ts.map +1 -1
  99. package/dist/dnd/createDroppableCollection.d.ts +26 -6
  100. package/dist/dnd/createDroppableCollection.d.ts.map +1 -1
  101. package/dist/dnd/createDroppableItem.d.ts +3 -3
  102. package/dist/dnd/index.d.ts +12 -12
  103. package/dist/dnd/index.d.ts.map +1 -1
  104. package/dist/dnd/types.d.ts +2 -2
  105. package/dist/dnd/types.d.ts.map +1 -1
  106. package/dist/dnd/utils.d.ts +1 -1
  107. package/dist/dnd/utils.d.ts.map +1 -1
  108. package/dist/focus/FocusScope.d.ts +1 -1
  109. package/dist/focus/FocusScope.d.ts.map +1 -1
  110. package/dist/focus/createAutoFocus.d.ts.map +1 -1
  111. package/dist/focus/createFocusRestore.d.ts.map +1 -1
  112. package/dist/focus/createVirtualFocus.d.ts +4 -4
  113. package/dist/focus/createVirtualFocus.d.ts.map +1 -1
  114. package/dist/focus/index.d.ts +4 -4
  115. package/dist/focus/index.d.ts.map +1 -1
  116. package/dist/form/createFormReset.d.ts +1 -1
  117. package/dist/form/createFormValidation.d.ts +3 -3
  118. package/dist/form/createFormValidation.d.ts.map +1 -1
  119. package/dist/form/index.d.ts +2 -2
  120. package/dist/form/index.d.ts.map +1 -1
  121. package/dist/grid/GridKeyboardDelegate.d.ts +5 -5
  122. package/dist/grid/createGrid.d.ts +3 -3
  123. package/dist/grid/createGridCell.d.ts +3 -3
  124. package/dist/grid/createGridRow.d.ts +3 -3
  125. package/dist/grid/index.d.ts +5 -5
  126. package/dist/grid/types.d.ts +8 -8
  127. package/dist/gridlist/createGridList.d.ts +6 -4
  128. package/dist/gridlist/createGridList.d.ts.map +1 -1
  129. package/dist/gridlist/createGridListItem.d.ts +4 -4
  130. package/dist/gridlist/createGridListItem.d.ts.map +1 -1
  131. package/dist/gridlist/createGridListSelectionCheckbox.d.ts +3 -3
  132. package/dist/gridlist/createGridListSelectionCheckbox.d.ts.map +1 -1
  133. package/dist/gridlist/index.d.ts +4 -4
  134. package/dist/gridlist/types.d.ts +11 -7
  135. package/dist/gridlist/types.d.ts.map +1 -1
  136. package/dist/i18n/createCollator.d.ts.map +1 -1
  137. package/dist/i18n/createDateFormatter.d.ts.map +1 -1
  138. package/dist/i18n/createFilter.d.ts.map +1 -1
  139. package/dist/i18n/createNumberFormatter.d.ts +1 -1
  140. package/dist/i18n/createNumberFormatter.d.ts.map +1 -1
  141. package/dist/i18n/createStringFormatter.d.ts +2 -2
  142. package/dist/i18n/createStringFormatter.d.ts.map +1 -1
  143. package/dist/i18n/index.d.ts +8 -8
  144. package/dist/i18n/index.d.ts.map +1 -1
  145. package/dist/i18n/locale.d.ts +2 -2
  146. package/dist/i18n/locale.d.ts.map +1 -1
  147. package/dist/i18n/utils.d.ts.map +1 -1
  148. package/dist/index.d.ts +52 -51
  149. package/dist/index.d.ts.map +1 -1
  150. package/dist/index.js +18012 -16820
  151. package/dist/index.js.map +1 -1
  152. package/dist/index.jsx +18242 -0
  153. package/dist/index.jsx.map +1 -0
  154. package/dist/interactions/FocusableProvider.d.ts +2 -2
  155. package/dist/interactions/FocusableProvider.d.ts.map +1 -1
  156. package/dist/interactions/PressEvent.d.ts +2 -2
  157. package/dist/interactions/createFocus.d.ts +1 -1
  158. package/dist/interactions/createFocus.d.ts.map +1 -1
  159. package/dist/interactions/createFocusRing.d.ts +1 -1
  160. package/dist/interactions/createFocusRing.d.ts.map +1 -1
  161. package/dist/interactions/createFocusWithin.d.ts +1 -1
  162. package/dist/interactions/createFocusWithin.d.ts.map +1 -1
  163. package/dist/interactions/createFocusable.d.ts +3 -3
  164. package/dist/interactions/createFocusable.d.ts.map +1 -1
  165. package/dist/interactions/createHover.d.ts +5 -5
  166. package/dist/interactions/createHover.d.ts.map +1 -1
  167. package/dist/interactions/createInteractionModality.d.ts +3 -3
  168. package/dist/interactions/createInteractionModality.d.ts.map +1 -1
  169. package/dist/interactions/createKeyboard.d.ts +1 -1
  170. package/dist/interactions/createLongPress.d.ts +5 -5
  171. package/dist/interactions/createMove.d.ts +5 -5
  172. package/dist/interactions/createMove.d.ts.map +1 -1
  173. package/dist/interactions/createPress.d.ts +4 -4
  174. package/dist/interactions/createPress.d.ts.map +1 -1
  175. package/dist/interactions/index.d.ts +12 -12
  176. package/dist/interactions/index.d.ts.map +1 -1
  177. package/dist/label/createField.d.ts +4 -4
  178. package/dist/label/createField.d.ts.map +1 -1
  179. package/dist/label/createLabel.d.ts +7 -7
  180. package/dist/label/createLabel.d.ts.map +1 -1
  181. package/dist/label/createLabels.d.ts +1 -1
  182. package/dist/label/createLabels.d.ts.map +1 -1
  183. package/dist/label/index.d.ts +5 -5
  184. package/dist/landmark/createLandmark.d.ts +5 -5
  185. package/dist/landmark/createLandmark.d.ts.map +1 -1
  186. package/dist/landmark/index.d.ts +1 -1
  187. package/dist/link/createLink.d.ts +14 -8
  188. package/dist/link/createLink.d.ts.map +1 -1
  189. package/dist/link/index.d.ts +1 -1
  190. package/dist/listbox/createListBox.d.ts +11 -6
  191. package/dist/listbox/createListBox.d.ts.map +1 -1
  192. package/dist/listbox/createOption.d.ts +21 -4
  193. package/dist/listbox/createOption.d.ts.map +1 -1
  194. package/dist/listbox/index.d.ts +2 -2
  195. package/dist/listbox/index.d.ts.map +1 -1
  196. package/dist/live-announcer/announce.d.ts +2 -2
  197. package/dist/live-announcer/announce.d.ts.map +1 -1
  198. package/dist/live-announcer/index.d.ts +1 -1
  199. package/dist/menu/createMenu.d.ts +7 -7
  200. package/dist/menu/createMenu.d.ts.map +1 -1
  201. package/dist/menu/createMenuItem.d.ts +16 -4
  202. package/dist/menu/createMenuItem.d.ts.map +1 -1
  203. package/dist/menu/createMenuTrigger.d.ts +4 -4
  204. package/dist/menu/index.d.ts +3 -3
  205. package/dist/menu/index.d.ts.map +1 -1
  206. package/dist/meter/createMeter.d.ts +6 -6
  207. package/dist/meter/createMeter.d.ts.map +1 -1
  208. package/dist/meter/index.d.ts +1 -1
  209. package/dist/numberfield/createNumberField.d.ts +9 -8
  210. package/dist/numberfield/createNumberField.d.ts.map +1 -1
  211. package/dist/numberfield/index.d.ts +1 -1
  212. package/dist/overlays/ariaHideOutside.d.ts.map +1 -1
  213. package/dist/overlays/createModal.d.ts +3 -3
  214. package/dist/overlays/createModal.d.ts.map +1 -1
  215. package/dist/overlays/createOverlay.d.ts +1 -1
  216. package/dist/overlays/createOverlay.d.ts.map +1 -1
  217. package/dist/overlays/createOverlayTrigger.d.ts +6 -6
  218. package/dist/overlays/index.d.ts +6 -6
  219. package/dist/overlays/index.d.ts.map +1 -1
  220. package/dist/popover/calculatePosition.d.ts +4 -4
  221. package/dist/popover/calculatePosition.d.ts.map +1 -1
  222. package/dist/popover/createOverlayPosition.d.ts +3 -3
  223. package/dist/popover/createOverlayPosition.d.ts.map +1 -1
  224. package/dist/popover/createPopover.d.ts +4 -4
  225. package/dist/popover/createPopover.d.ts.map +1 -1
  226. package/dist/popover/index.d.ts +3 -3
  227. package/dist/progress/createProgressBar.d.ts +7 -5
  228. package/dist/progress/createProgressBar.d.ts.map +1 -1
  229. package/dist/progress/index.d.ts +1 -1
  230. package/dist/radio/createRadio.d.ts +7 -7
  231. package/dist/radio/createRadio.d.ts.map +1 -1
  232. package/dist/radio/createRadioGroup.d.ts +10 -10
  233. package/dist/radio/createRadioGroup.d.ts.map +1 -1
  234. package/dist/radio/createRadioGroupState.d.ts +3 -3
  235. package/dist/radio/createRadioGroupState.d.ts.map +1 -1
  236. package/dist/radio/index.d.ts +3 -3
  237. package/dist/radio/index.d.ts.map +1 -1
  238. package/dist/searchfield/createSearchField.d.ts +7 -7
  239. package/dist/searchfield/createSearchField.d.ts.map +1 -1
  240. package/dist/searchfield/index.d.ts +2 -2
  241. package/dist/select/createHiddenSelect.d.ts +4 -4
  242. package/dist/select/createHiddenSelect.d.ts.map +1 -1
  243. package/dist/select/createSelect.d.ts +14 -6
  244. package/dist/select/createSelect.d.ts.map +1 -1
  245. package/dist/select/index.d.ts +2 -2
  246. package/dist/select/index.d.ts.map +1 -1
  247. package/dist/selection/createTypeSelect.d.ts +2 -2
  248. package/dist/selection/index.d.ts +1 -1
  249. package/dist/separator/createSeparator.d.ts +9 -5
  250. package/dist/separator/createSeparator.d.ts.map +1 -1
  251. package/dist/separator/index.d.ts +1 -1
  252. package/dist/slider/createSlider.d.ts +11 -7
  253. package/dist/slider/createSlider.d.ts.map +1 -1
  254. package/dist/slider/index.d.ts +2 -2
  255. package/dist/ssr/index.d.ts +1 -1
  256. package/dist/ssr/index.d.ts.map +1 -1
  257. package/dist/steplist/createStepList.d.ts +36 -0
  258. package/dist/steplist/createStepList.d.ts.map +1 -0
  259. package/dist/steplist/index.d.ts +2 -0
  260. package/dist/steplist/index.d.ts.map +1 -0
  261. package/dist/switch/createSwitch.d.ts +6 -4
  262. package/dist/switch/createSwitch.d.ts.map +1 -1
  263. package/dist/switch/index.d.ts +1 -1
  264. package/dist/table/createTable.d.ts +3 -3
  265. package/dist/table/createTable.d.ts.map +1 -1
  266. package/dist/table/createTableCell.d.ts +3 -3
  267. package/dist/table/createTableCell.d.ts.map +1 -1
  268. package/dist/table/createTableColumnHeader.d.ts +3 -3
  269. package/dist/table/createTableColumnHeader.d.ts.map +1 -1
  270. package/dist/table/createTableColumnResize.d.ts +41 -0
  271. package/dist/table/createTableColumnResize.d.ts.map +1 -0
  272. package/dist/table/createTableHeaderRow.d.ts +3 -3
  273. package/dist/table/createTableRow.d.ts +3 -3
  274. package/dist/table/createTableRow.d.ts.map +1 -1
  275. package/dist/table/createTableRowGroup.d.ts +2 -2
  276. package/dist/table/createTableRowGroup.d.ts.map +1 -1
  277. package/dist/table/createTableSelectAllCheckbox.d.ts +3 -3
  278. package/dist/table/createTableSelectAllCheckbox.d.ts.map +1 -1
  279. package/dist/table/createTableSelectionCheckbox.d.ts +3 -3
  280. package/dist/table/index.d.ts +11 -9
  281. package/dist/table/index.d.ts.map +1 -1
  282. package/dist/table/types.d.ts +15 -7
  283. package/dist/table/types.d.ts.map +1 -1
  284. package/dist/tabs/createTabs.d.ts +28 -25
  285. package/dist/tabs/createTabs.d.ts.map +1 -1
  286. package/dist/tabs/index.d.ts +1 -1
  287. package/dist/tag/createTag.d.ts +2 -2
  288. package/dist/tag/createTag.d.ts.map +1 -1
  289. package/dist/tag/createTagGroup.d.ts +5 -5
  290. package/dist/tag/createTagGroup.d.ts.map +1 -1
  291. package/dist/tag/index.d.ts +2 -2
  292. package/dist/tag/index.d.ts.map +1 -1
  293. package/dist/textfield/createTextField.d.ts +17 -11
  294. package/dist/textfield/createTextField.d.ts.map +1 -1
  295. package/dist/textfield/index.d.ts +1 -1
  296. package/dist/textfield/index.d.ts.map +1 -1
  297. package/dist/toast/createToast.d.ts +2 -2
  298. package/dist/toast/createToast.d.ts.map +1 -1
  299. package/dist/toast/createToastRegion.d.ts +5 -3
  300. package/dist/toast/createToastRegion.d.ts.map +1 -1
  301. package/dist/toast/index.d.ts +2 -2
  302. package/dist/toast/index.d.ts.map +1 -1
  303. package/dist/toggle/createToggle.d.ts +9 -9
  304. package/dist/toggle/createToggle.d.ts.map +1 -1
  305. package/dist/toggle/createToggleState.d.ts +2 -2
  306. package/dist/toggle/createToggleState.d.ts.map +1 -1
  307. package/dist/toggle/index.d.ts +4 -4
  308. package/dist/toggle/index.d.ts.map +1 -1
  309. package/dist/toolbar/createToolbar.d.ts +9 -9
  310. package/dist/toolbar/createToolbar.d.ts.map +1 -1
  311. package/dist/toolbar/index.d.ts +1 -1
  312. package/dist/toolbar/index.d.ts.map +1 -1
  313. package/dist/tooltip/createTooltip.d.ts +5 -5
  314. package/dist/tooltip/createTooltip.d.ts.map +1 -1
  315. package/dist/tooltip/createTooltipTrigger.d.ts +10 -5
  316. package/dist/tooltip/createTooltipTrigger.d.ts.map +1 -1
  317. package/dist/tooltip/index.d.ts +2 -2
  318. package/dist/tree/createTree.d.ts +3 -3
  319. package/dist/tree/createTree.d.ts.map +1 -1
  320. package/dist/tree/createTreeItem.d.ts +4 -4
  321. package/dist/tree/createTreeItem.d.ts.map +1 -1
  322. package/dist/tree/createTreeSelectionCheckbox.d.ts +3 -3
  323. package/dist/tree/createTreeSelectionCheckbox.d.ts.map +1 -1
  324. package/dist/tree/index.d.ts +4 -4
  325. package/dist/tree/types.d.ts +10 -6
  326. package/dist/tree/types.d.ts.map +1 -1
  327. package/dist/utils/createDescription.d.ts +2 -2
  328. package/dist/utils/createDescription.d.ts.map +1 -1
  329. package/dist/utils/dom.d.ts.map +1 -1
  330. package/dist/utils/env.d.ts.map +1 -1
  331. package/dist/utils/focus.d.ts +1 -1
  332. package/dist/utils/focus.d.ts.map +1 -1
  333. package/dist/utils/geometry.d.ts.map +1 -1
  334. package/dist/utils/index.d.ts +12 -12
  335. package/dist/utils/index.d.ts.map +1 -1
  336. package/dist/utils/mergeProps.d.ts.map +1 -1
  337. package/dist/utils/reactivity.d.ts +1 -1
  338. package/dist/visually-hidden/createVisuallyHidden.d.ts +2 -2
  339. package/dist/visually-hidden/createVisuallyHidden.d.ts.map +1 -1
  340. package/dist/visually-hidden/index.d.ts +1 -1
  341. package/package.json +32 -32
  342. package/src/actiongroup/createActionGroup.ts +101 -91
  343. package/src/actiongroup/index.ts +1 -1
  344. package/src/autocomplete/createAutocomplete.ts +117 -134
  345. package/src/autocomplete/index.ts +1 -1
  346. package/src/breadcrumbs/createBreadcrumbs.ts +33 -42
  347. package/src/breadcrumbs/index.ts +1 -1
  348. package/src/button/createButton.ts +102 -73
  349. package/src/button/createToggleButton.ts +10 -10
  350. package/src/button/createToggleButtonGroup.ts +25 -32
  351. package/src/button/index.ts +6 -9
  352. package/src/button/types.ts +18 -12
  353. package/src/calendar/createCalendar.ts +62 -29
  354. package/src/calendar/createCalendarCell.ts +98 -46
  355. package/src/calendar/createCalendarGrid.ts +57 -35
  356. package/src/calendar/createRangeCalendar.ts +66 -31
  357. package/src/calendar/createRangeCalendarCell.ts +92 -31
  358. package/src/calendar/index.ts +5 -9
  359. package/src/calendar/intl/index.ts +210 -0
  360. package/src/calendar/utils.ts +227 -0
  361. package/src/checkbox/createCheckbox.ts +13 -21
  362. package/src/checkbox/createCheckboxGroup.ts +68 -44
  363. package/src/checkbox/createCheckboxGroupItem.ts +16 -27
  364. package/src/checkbox/createCheckboxGroupState.ts +3 -22
  365. package/src/checkbox/index.ts +8 -10
  366. package/src/collections/index.ts +33 -29
  367. package/src/color/createColorArea.ts +232 -154
  368. package/src/color/createColorField.ts +107 -58
  369. package/src/color/createColorSlider.ts +231 -73
  370. package/src/color/createColorSwatch.ts +38 -13
  371. package/src/color/createColorWheel.ts +208 -83
  372. package/src/color/index.ts +6 -6
  373. package/src/color/types.ts +98 -16
  374. package/src/combobox/createComboBox.ts +157 -100
  375. package/src/combobox/index.ts +1 -1
  376. package/src/combobox/intl/index.ts +5 -5
  377. package/src/datepicker/createDateField.ts +192 -39
  378. package/src/datepicker/createDatePicker.ts +260 -67
  379. package/src/datepicker/createDatePickerGroup.ts +149 -0
  380. package/src/datepicker/createDateRangePicker.ts +105 -57
  381. package/src/datepicker/createDateSegment.ts +183 -96
  382. package/src/datepicker/createTimeField.ts +38 -34
  383. package/src/datepicker/createTimeSegment.ts +67 -85
  384. package/src/datepicker/index.ts +13 -14
  385. package/src/dialog/createDialog.ts +45 -38
  386. package/src/dialog/index.ts +2 -2
  387. package/src/dialog/types.ts +4 -4
  388. package/src/disclosure/createDisclosure.ts +138 -33
  389. package/src/disclosure/createDisclosureGroup.ts +8 -21
  390. package/src/disclosure/index.ts +2 -2
  391. package/src/dnd/createDrag.ts +19 -25
  392. package/src/dnd/createDraggableCollection.ts +4 -4
  393. package/src/dnd/createDraggableItem.ts +20 -19
  394. package/src/dnd/createDrop.ts +42 -51
  395. package/src/dnd/createDroppableCollection.ts +290 -173
  396. package/src/dnd/createDroppableItem.ts +34 -34
  397. package/src/dnd/index.ts +23 -12
  398. package/src/dnd/types.ts +4 -7
  399. package/src/dnd/utils.ts +36 -49
  400. package/src/focus/FocusScope.tsx +155 -164
  401. package/src/focus/createAutoFocus.ts +4 -20
  402. package/src/focus/createFocusRestore.ts +15 -28
  403. package/src/focus/createVirtualFocus.ts +20 -36
  404. package/src/focus/index.ts +4 -8
  405. package/src/form/createFormReset.ts +4 -4
  406. package/src/form/createFormValidation.ts +20 -43
  407. package/src/form/index.ts +2 -5
  408. package/src/grid/GridKeyboardDelegate.ts +30 -30
  409. package/src/grid/createGrid.ts +36 -36
  410. package/src/grid/createGridCell.ts +18 -18
  411. package/src/grid/createGridRow.ts +14 -14
  412. package/src/grid/index.ts +5 -5
  413. package/src/grid/types.ts +8 -8
  414. package/src/gridlist/createGridList.ts +34 -29
  415. package/src/gridlist/createGridListItem.ts +68 -23
  416. package/src/gridlist/createGridListSelectionCheckbox.ts +12 -9
  417. package/src/gridlist/index.ts +4 -4
  418. package/src/gridlist/types.ts +11 -7
  419. package/src/i18n/createCollator.ts +5 -18
  420. package/src/i18n/createDateFormatter.ts +5 -13
  421. package/src/i18n/createFilter.ts +11 -24
  422. package/src/i18n/createNumberFormatter.ts +4 -6
  423. package/src/i18n/createStringFormatter.ts +19 -15
  424. package/src/i18n/index.ts +8 -11
  425. package/src/i18n/locale.tsx +15 -40
  426. package/src/i18n/utils.ts +35 -39
  427. package/src/index.ts +68 -169
  428. package/src/interactions/FocusableProvider.tsx +3 -7
  429. package/src/interactions/PressEvent.ts +4 -4
  430. package/src/interactions/createFocus.ts +12 -8
  431. package/src/interactions/createFocusRing.ts +21 -19
  432. package/src/interactions/createFocusWithin.ts +20 -13
  433. package/src/interactions/createFocusable.ts +15 -16
  434. package/src/interactions/createHover.ts +70 -55
  435. package/src/interactions/createInteractionModality.ts +75 -82
  436. package/src/interactions/createKeyboard.ts +2 -2
  437. package/src/interactions/createLongPress.ts +23 -23
  438. package/src/interactions/createMove.ts +72 -62
  439. package/src/interactions/createPress.ts +164 -87
  440. package/src/interactions/index.ts +24 -16
  441. package/src/label/createField.ts +18 -19
  442. package/src/label/createLabel.ts +18 -30
  443. package/src/label/createLabels.ts +8 -12
  444. package/src/label/index.ts +5 -5
  445. package/src/landmark/createLandmark.ts +30 -51
  446. package/src/landmark/index.ts +1 -1
  447. package/src/link/createLink.ts +83 -56
  448. package/src/link/index.ts +1 -1
  449. package/src/listbox/createListBox.ts +69 -58
  450. package/src/listbox/createOption.ts +83 -37
  451. package/src/listbox/index.ts +2 -6
  452. package/src/live-announcer/announce.ts +44 -71
  453. package/src/live-announcer/index.ts +1 -1
  454. package/src/menu/createMenu.ts +79 -50
  455. package/src/menu/createMenuItem.ts +79 -27
  456. package/src/menu/createMenuTrigger.ts +15 -15
  457. package/src/menu/index.ts +3 -12
  458. package/src/meter/createMeter.ts +7 -15
  459. package/src/meter/index.ts +1 -1
  460. package/src/numberfield/createNumberField.ts +138 -81
  461. package/src/numberfield/index.ts +1 -1
  462. package/src/overlays/ariaHideOutside.ts +14 -10
  463. package/src/overlays/createInteractOutside.ts +21 -18
  464. package/src/overlays/createModal.tsx +17 -17
  465. package/src/overlays/createOverlay.ts +38 -8
  466. package/src/overlays/createOverlayTrigger.ts +16 -16
  467. package/src/overlays/createPreventScroll.ts +46 -24
  468. package/src/overlays/index.ts +6 -17
  469. package/src/popover/calculatePosition.ts +115 -117
  470. package/src/popover/createOverlayPosition.ts +46 -40
  471. package/src/popover/createPopover.ts +42 -17
  472. package/src/popover/index.ts +3 -3
  473. package/src/progress/createProgressBar.ts +31 -32
  474. package/src/progress/index.ts +1 -1
  475. package/src/radio/createRadio.ts +95 -73
  476. package/src/radio/createRadioGroup.ts +83 -77
  477. package/src/radio/createRadioGroupState.ts +7 -31
  478. package/src/radio/index.ts +3 -8
  479. package/src/searchfield/createSearchField.ts +57 -29
  480. package/src/searchfield/index.ts +2 -2
  481. package/src/select/createHiddenSelect.tsx +57 -44
  482. package/src/select/createSelect.ts +128 -71
  483. package/src/select/index.ts +2 -7
  484. package/src/selection/createTypeSelect.ts +11 -11
  485. package/src/selection/index.ts +1 -1
  486. package/src/separator/createSeparator.ts +20 -25
  487. package/src/separator/index.ts +1 -1
  488. package/src/slider/createSlider.ts +93 -124
  489. package/src/slider/index.ts +2 -2
  490. package/src/ssr/index.tsx +8 -47
  491. package/src/steplist/createStepList.ts +106 -0
  492. package/src/steplist/index.ts +8 -0
  493. package/src/switch/createSwitch.ts +9 -14
  494. package/src/switch/index.ts +1 -1
  495. package/src/table/createTable.ts +152 -85
  496. package/src/table/createTableCell.ts +17 -16
  497. package/src/table/createTableColumnHeader.ts +67 -20
  498. package/src/table/createTableColumnResize.ts +256 -0
  499. package/src/table/createTableHeaderRow.ts +7 -7
  500. package/src/table/createTableRow.ts +149 -29
  501. package/src/table/createTableRowGroup.ts +5 -7
  502. package/src/table/createTableSelectAllCheckbox.ts +12 -11
  503. package/src/table/createTableSelectionCheckbox.ts +8 -8
  504. package/src/table/index.ts +14 -9
  505. package/src/table/types.ts +15 -7
  506. package/src/tabs/createTabs.ts +74 -92
  507. package/src/tabs/index.ts +1 -1
  508. package/src/tag/createTag.ts +52 -50
  509. package/src/tag/createTagGroup.ts +47 -41
  510. package/src/tag/index.ts +2 -6
  511. package/src/textfield/createTextField.ts +67 -35
  512. package/src/textfield/index.ts +1 -5
  513. package/src/toast/createToast.ts +28 -26
  514. package/src/toast/createToastRegion.ts +169 -26
  515. package/src/toast/index.ts +2 -6
  516. package/src/toggle/createToggle.ts +95 -53
  517. package/src/toggle/createToggleState.ts +2 -10
  518. package/src/toggle/index.ts +4 -5
  519. package/src/toolbar/createToolbar.ts +193 -210
  520. package/src/toolbar/index.ts +1 -1
  521. package/src/tooltip/createTooltip.ts +11 -24
  522. package/src/tooltip/createTooltipTrigger.ts +61 -49
  523. package/src/tooltip/index.ts +2 -2
  524. package/src/tree/createTree.ts +35 -37
  525. package/src/tree/createTreeItem.ts +29 -29
  526. package/src/tree/createTreeSelectionCheckbox.ts +11 -8
  527. package/src/tree/index.ts +4 -4
  528. package/src/tree/types.ts +10 -6
  529. package/src/utils/createDescription.ts +6 -23
  530. package/src/utils/dom.ts +61 -54
  531. package/src/utils/env.ts +9 -11
  532. package/src/utils/events.ts +7 -7
  533. package/src/utils/filterDOMProps.ts +49 -49
  534. package/src/utils/focus.ts +60 -68
  535. package/src/utils/geometry.ts +1 -4
  536. package/src/utils/globalListeners.ts +9 -9
  537. package/src/utils/index.ts +12 -22
  538. package/src/utils/mergeProps.ts +42 -15
  539. package/src/utils/platform.ts +2 -2
  540. package/src/utils/reactivity.ts +3 -3
  541. package/src/utils/textSelection.ts +16 -16
  542. package/src/visually-hidden/createVisuallyHidden.ts +16 -28
  543. package/src/visually-hidden/index.ts +1 -1
  544. package/dist/i18n/NumberFormatter.d.ts +0 -43
  545. package/dist/i18n/NumberFormatter.d.ts.map +0 -1
  546. package/dist/index.ssr.js +0 -17082
  547. package/dist/index.ssr.js.map +0 -1
  548. package/src/i18n/NumberFormatter.ts +0 -266
@@ -8,17 +8,20 @@
8
8
  * Port of @react-aria/focus useFocusRing.
9
9
  */
10
10
 
11
- import { type JSX, type Accessor, createSignal, createEffect, onCleanup, createMemo } from 'solid-js';
12
- import { createFocus } from './createFocus';
13
- import { createFocusWithin } from './createFocusWithin';
11
+ import {
12
+ type JSX,
13
+ type Accessor,
14
+ createSignal,
15
+ createEffect,
16
+ onCleanup,
17
+ createMemo,
18
+ } from "solid-js";
19
+ import { createFocus } from "./createFocus";
20
+ import { createFocusWithin } from "./createFocusWithin";
14
21
  import {
15
22
  createFocusVisibleListener,
16
23
  isFocusVisible as isGlobalFocusVisible,
17
- } from './createInteractionModality';
18
-
19
- // ============================================
20
- // TYPES
21
- // ============================================
24
+ } from "./createInteractionModality";
22
25
 
23
26
  export interface FocusRingProps {
24
27
  /** Whether the element is a text input. */
@@ -38,10 +41,6 @@ export interface FocusRingResult {
38
41
  focusProps: JSX.HTMLAttributes<HTMLElement>;
39
42
  }
40
43
 
41
- // ============================================
42
- // IMPLEMENTATION
43
- // ============================================
44
-
45
44
  /**
46
45
  * Determines whether a focus ring should be visible for a given element.
47
46
  *
@@ -55,15 +54,16 @@ export function createFocusRing(props: FocusRingProps = {}): FocusRingResult {
55
54
  const { isTextInput = false, autoFocus = false, within = false } = props;
56
55
 
57
56
  const [isFocused, setIsFocused] = createSignal(false);
58
- const [focusVisibleFlag, setFocusVisibleFlag] = createSignal(
59
- autoFocus || isGlobalFocusVisible()
60
- );
57
+ const [focusVisibleFlag, setFocusVisibleFlag] = createSignal(autoFocus || isGlobalFocusVisible());
61
58
  const isFocusVisible = createMemo(() => isFocused() && focusVisibleFlag());
62
59
 
63
60
  createEffect(() => {
64
- const cleanup = createFocusVisibleListener((visible) => {
65
- setFocusVisibleFlag(visible);
66
- }, { isTextInput });
61
+ const cleanup = createFocusVisibleListener(
62
+ (visible) => {
63
+ setFocusVisibleFlag(visible);
64
+ },
65
+ { isTextInput },
66
+ );
67
67
  onCleanup(cleanup);
68
68
  });
69
69
 
@@ -84,6 +84,8 @@ export function createFocusRing(props: FocusRingProps = {}): FocusRingResult {
84
84
  return {
85
85
  isFocused,
86
86
  isFocusVisible,
87
- focusProps: (within ? focusWithinResult.focusWithinProps : focusResult.focusProps) as JSX.HTMLAttributes<HTMLElement>,
87
+ focusProps: (within
88
+ ? focusWithinResult.focusWithinProps
89
+ : focusResult.focusProps) as JSX.HTMLAttributes<HTMLElement>,
88
90
  };
89
91
  }
@@ -4,9 +4,9 @@
4
4
  * This is a 1-1 port of React-Aria's useFocusWithin hook adapted for SolidJS.
5
5
  */
6
6
 
7
- import { JSX, onCleanup } from 'solid-js';
8
- import { getOwnerDocument, getEventTarget, nodeContains, createGlobalListeners } from '../utils';
9
- import { setEventTarget } from '../utils/events';
7
+ import { JSX, onCleanup } from "solid-js";
8
+ import { getOwnerDocument, getEventTarget, nodeContains, createGlobalListeners } from "../utils";
9
+ import { setEventTarget } from "../utils/events";
10
10
 
11
11
  export interface FocusWithinProps {
12
12
  /** Whether the focus within events should be disabled. */
@@ -32,7 +32,10 @@ function getActiveElement(doc: Document): Element | null {
32
32
  return activeElement;
33
33
  }
34
34
 
35
- function createSyntheticBlurHandler(): (_e: FocusEvent, target: Element) => (() => void) | undefined {
35
+ function createSyntheticBlurHandler(): (
36
+ _e: FocusEvent,
37
+ target: Element,
38
+ ) => (() => void) | undefined {
36
39
  let isFocused = false;
37
40
  let observer: MutationObserver | null = null;
38
41
 
@@ -54,7 +57,7 @@ function createSyntheticBlurHandler(): (_e: FocusEvent, target: Element) => (()
54
57
  }
55
58
  };
56
59
 
57
- target.addEventListener('focusout', onBlurHandler, { once: true });
60
+ target.addEventListener("focusout", onBlurHandler, { once: true });
58
61
 
59
62
  observer = new MutationObserver(() => {
60
63
  if (isFocused && (target as HTMLButtonElement).disabled) {
@@ -62,13 +65,14 @@ function createSyntheticBlurHandler(): (_e: FocusEvent, target: Element) => (()
62
65
  observer?.disconnect();
63
66
  observer = null;
64
67
  const ownerDocument = target.ownerDocument;
65
- const relatedTarget = target === ownerDocument.activeElement ? null : ownerDocument.activeElement;
66
- target.dispatchEvent(new FocusEvent('blur', { relatedTarget }));
67
- target.dispatchEvent(new FocusEvent('focusout', { bubbles: true, relatedTarget }));
68
+ const relatedTarget =
69
+ target === ownerDocument.activeElement ? null : ownerDocument.activeElement;
70
+ target.dispatchEvent(new FocusEvent("blur", { relatedTarget }));
71
+ target.dispatchEvent(new FocusEvent("focusout", { bubbles: true, relatedTarget }));
68
72
  }
69
73
  });
70
74
 
71
- observer.observe(target, { attributes: true, attributeFilter: ['disabled'] });
75
+ observer.observe(target, { attributes: true, attributeFilter: ["disabled"] });
72
76
 
73
77
  return () => {
74
78
  if (observer) {
@@ -158,13 +162,16 @@ export function createFocusWithin(props: FocusWithinProps = {}): FocusWithinResu
158
162
  const currentTarget = e.currentTarget;
159
163
 
160
164
  addGlobalListener(
161
- 'focus',
165
+ "focus",
162
166
  (focusEvent: Event) => {
163
- if (isFocusWithin && !nodeContains(currentTarget, (focusEvent as FocusEvent).target as Element)) {
167
+ if (
168
+ isFocusWithin &&
169
+ !nodeContains(currentTarget, (focusEvent as FocusEvent).target as Element)
170
+ ) {
164
171
  // Create a synthetic blur event
165
172
  const window = ownerDocument?.defaultView;
166
173
  if (window) {
167
- const nativeEvent = new window.FocusEvent('blur', {
174
+ const nativeEvent = new window.FocusEvent("blur", {
168
175
  relatedTarget: (focusEvent as FocusEvent).target as Element,
169
176
  });
170
177
  setEventTarget(nativeEvent, currentTarget);
@@ -184,7 +191,7 @@ export function createFocusWithin(props: FocusWithinProps = {}): FocusWithinResu
184
191
  }
185
192
  }
186
193
  },
187
- { capture: true }
194
+ { capture: true },
188
195
  );
189
196
  }
190
197
  };
@@ -4,10 +4,10 @@
4
4
  * This is a 1-1 port of React-Aria's useFocusable hook adapted for SolidJS.
5
5
  */
6
6
 
7
- import { JSX, Accessor, createContext, useContext, onMount } from 'solid-js';
8
- import { createFocus, type FocusEvents } from './createFocus';
9
- import { createKeyboard, type KeyboardEvents } from './createKeyboard';
10
- import { mergeProps, focusSafely } from '../utils';
7
+ import { JSX, Accessor, createContext, useContext, onMount } from "solid-js";
8
+ import { createFocus, type FocusEvents } from "./createFocus";
9
+ import { createKeyboard, type KeyboardEvents } from "./createKeyboard";
10
+ import { mergeProps, focusSafely } from "../utils";
11
11
 
12
12
  export interface FocusableDOMProps {
13
13
  /** Whether to exclude the element from the sequential tab order. */
@@ -46,8 +46,8 @@ export const FocusableContext = createContext<FocusableContextValue | null>(null
46
46
  * Hook to consume the FocusableContext and sync the ref.
47
47
  */
48
48
  function useFocusableContext(
49
- setRef: (el: HTMLElement) => void
50
- ): Omit<FocusableContextValue, 'ref'> {
49
+ setRef: (el: HTMLElement) => void,
50
+ ): Omit<FocusableContextValue, "ref"> {
51
51
  const context = useContext(FocusableContext) || {};
52
52
 
53
53
  // If context has a ref, sync our ref to it
@@ -72,7 +72,7 @@ export interface FocusableProviderProps {
72
72
  }
73
73
 
74
74
  function isDisabledValue(isDisabled: Accessor<boolean> | boolean | undefined): boolean {
75
- if (typeof isDisabled === 'function') {
75
+ if (typeof isDisabled === "function") {
76
76
  return isDisabled();
77
77
  }
78
78
  return isDisabled ?? false;
@@ -106,7 +106,7 @@ function isDisabledValue(isDisabled: Accessor<boolean> | boolean | undefined): b
106
106
  */
107
107
  export function createFocusable(
108
108
  props: CreateFocusableProps = {},
109
- ref?: (el: HTMLElement) => void
109
+ ref?: (el: HTMLElement) => void,
110
110
  ): FocusableResult {
111
111
  let elementRef: HTMLElement | null = null;
112
112
  let autoFocusDone = false;
@@ -146,20 +146,19 @@ export function createFocusable(
146
146
  }
147
147
  });
148
148
 
149
- // Always set a tabIndex so that Safari allows focusing native buttons and inputs.
150
- let tabIndex: number | undefined = props.excludeFromTabOrder ? -1 : 0;
151
- if (isDisabledValue(props.isDisabled)) {
152
- tabIndex = undefined;
153
- }
154
-
155
149
  // Build final focusable props
156
150
  const focusableProps = mergeProps(
157
151
  {
158
152
  ...interactions,
159
- tabIndex,
153
+ get tabIndex() {
154
+ if (isDisabledValue(props.isDisabled)) {
155
+ return undefined;
156
+ }
157
+ return props.excludeFromTabOrder ? -1 : 0;
158
+ },
160
159
  ref: setRef,
161
160
  },
162
- interactionProps
161
+ interactionProps,
163
162
  ) as JSX.HTMLAttributes<HTMLElement>;
164
163
 
165
164
  return {
@@ -7,20 +7,23 @@
7
7
  * Port of @react-aria/interactions useHover.
8
8
  */
9
9
 
10
- import { type JSX, type Accessor, createSignal, createEffect, onCleanup, createMemo } from 'solid-js';
11
- import { type MaybeAccessor, access } from '../utils/reactivity';
12
- import { isTestEnv } from '../utils/env';
13
- import { createGlobalListeners, nodeContains } from '../utils';
14
-
15
- // ============================================
16
- // TYPES
17
- // ============================================
10
+ import {
11
+ type JSX,
12
+ type Accessor,
13
+ createSignal,
14
+ createEffect,
15
+ onCleanup,
16
+ createMemo,
17
+ } from "solid-js";
18
+ import { type MaybeAccessor, access } from "../utils/reactivity";
19
+ import { isTestEnv } from "../utils/env";
20
+ import { createGlobalListeners, nodeContains } from "../utils";
18
21
 
19
22
  export interface HoverEvent {
20
23
  /** The type of hover event being fired. */
21
- type: 'hoverstart' | 'hoverend';
24
+ type: "hoverstart" | "hoverend";
22
25
  /** The pointer type that triggered the hover event. */
23
- pointerType: 'mouse' | 'pen';
26
+ pointerType: "mouse" | "pen";
24
27
  /** The target element of the hover event. */
25
28
  target: Element;
26
29
  }
@@ -42,12 +45,12 @@ export interface CreateHoverProps extends HoverEvents {
42
45
  /** Event handler props returned by createHover - safe to spread on any element */
43
46
  export type HoverProps = Pick<
44
47
  JSX.HTMLAttributes<HTMLElement>,
45
- | 'onPointerEnter'
46
- | 'onPointerLeave'
47
- | 'onPointerOver'
48
- | 'onPointerOut'
49
- | 'onMouseEnter'
50
- | 'onMouseLeave'
48
+ | "onPointerEnter"
49
+ | "onPointerLeave"
50
+ | "onPointerOver"
51
+ | "onPointerOut"
52
+ | "onMouseEnter"
53
+ | "onMouseLeave"
51
54
  >;
52
55
 
53
56
  export interface HoverResult {
@@ -57,10 +60,6 @@ export interface HoverResult {
57
60
  isHovered: Accessor<boolean>;
58
61
  }
59
62
 
60
- // ============================================
61
- // GLOBAL STATE
62
- // ============================================
63
-
64
63
  // iOS fires onPointerEnter twice: once with pointerType="touch" and again with pointerType="mouse".
65
64
  // We want to ignore these emulated events so they do not trigger hover behavior.
66
65
  let globalIgnoreEmulatedMouseEvents = false;
@@ -74,21 +73,21 @@ function setGlobalIgnoreEmulatedMouseEvents() {
74
73
  }
75
74
 
76
75
  function handleGlobalPointerEvent(e: PointerEvent) {
77
- if (e.pointerType === 'touch') {
76
+ if (e.pointerType === "touch") {
78
77
  setGlobalIgnoreEmulatedMouseEvents();
79
78
  }
80
79
  }
81
80
 
82
81
  function setupGlobalTouchEvents() {
83
- if (typeof document === 'undefined') {
82
+ if (typeof document === "undefined") {
84
83
  return () => {};
85
84
  }
86
85
 
87
86
  if (hoverCount === 0) {
88
- if (typeof PointerEvent !== 'undefined') {
89
- document.addEventListener('pointerup', handleGlobalPointerEvent);
87
+ if (typeof PointerEvent !== "undefined") {
88
+ document.addEventListener("pointerup", handleGlobalPointerEvent);
90
89
  } else if (isTestEnv()) {
91
- document.addEventListener('touchend', setGlobalIgnoreEmulatedMouseEvents);
90
+ document.addEventListener("touchend", setGlobalIgnoreEmulatedMouseEvents);
92
91
  }
93
92
  }
94
93
 
@@ -99,18 +98,14 @@ function setupGlobalTouchEvents() {
99
98
  return;
100
99
  }
101
100
 
102
- if (typeof PointerEvent !== 'undefined') {
103
- document.removeEventListener('pointerup', handleGlobalPointerEvent);
101
+ if (typeof PointerEvent !== "undefined") {
102
+ document.removeEventListener("pointerup", handleGlobalPointerEvent);
104
103
  } else if (isTestEnv()) {
105
- document.removeEventListener('touchend', setGlobalIgnoreEmulatedMouseEvents);
104
+ document.removeEventListener("touchend", setGlobalIgnoreEmulatedMouseEvents);
106
105
  }
107
106
  };
108
107
  }
109
108
 
110
- // ============================================
111
- // IMPLEMENTATION
112
- // ============================================
113
-
114
109
  /**
115
110
  * Handles pointer hover interactions for an element.
116
111
  */
@@ -123,7 +118,7 @@ export function createHover(props: MaybeAccessor<CreateHoverProps> = {}): HoverR
123
118
  let state = {
124
119
  isHovered: false,
125
120
  ignoreEmulatedMouseEvents: false,
126
- pointerType: '' as 'mouse' | 'pen' | '',
121
+ pointerType: "" as "mouse" | "pen" | "",
127
122
  target: null as Element | null,
128
123
  };
129
124
 
@@ -137,11 +132,15 @@ export function createHover(props: MaybeAccessor<CreateHoverProps> = {}): HoverR
137
132
  createEffect(() => {
138
133
  const p = getProps();
139
134
  if (p.isDisabled && state.isHovered) {
140
- triggerHoverEnd(state.target as Element, state.pointerType as 'mouse' | 'pen');
135
+ triggerHoverEnd(state.target as Element, state.pointerType as "mouse" | "pen");
141
136
  }
142
137
  });
143
138
 
144
- function triggerHoverStart(target: Element, pointerType: 'mouse' | 'pen', eventTarget: Element | null) {
139
+ function triggerHoverStart(
140
+ target: Element,
141
+ pointerType: "mouse" | "pen",
142
+ eventTarget: Element | null,
143
+ ) {
145
144
  const p = getProps();
146
145
  state.pointerType = pointerType;
147
146
 
@@ -153,14 +152,22 @@ export function createHover(props: MaybeAccessor<CreateHoverProps> = {}): HoverR
153
152
  state.isHovered = true;
154
153
  state.target = target;
155
154
 
156
- addGlobalListener('pointerover', (event: PointerEvent) => {
157
- if (state.isHovered && state.target && !nodeContains(state.target, event.target as Element)) {
158
- triggerHoverEnd(event.target as Element, event.pointerType as 'mouse' | 'pen');
159
- }
160
- }, { capture: true });
155
+ addGlobalListener(
156
+ "pointerover",
157
+ (event: PointerEvent) => {
158
+ if (
159
+ state.isHovered &&
160
+ state.target &&
161
+ !nodeContains(state.target, event.target as Element)
162
+ ) {
163
+ triggerHoverEnd(event.target as Element, event.pointerType as "mouse" | "pen");
164
+ }
165
+ },
166
+ { capture: true },
167
+ );
161
168
 
162
169
  p.onHoverStart?.({
163
- type: 'hoverstart',
170
+ type: "hoverstart",
164
171
  target,
165
172
  pointerType,
166
173
  });
@@ -169,9 +176,9 @@ export function createHover(props: MaybeAccessor<CreateHoverProps> = {}): HoverR
169
176
  setIsHovered(true);
170
177
  }
171
178
 
172
- function triggerHoverEnd(target: Element | null, pointerType: 'mouse' | 'pen') {
179
+ function triggerHoverEnd(target: Element | null, pointerType: "mouse" | "pen") {
173
180
  const p = getProps();
174
- state.pointerType = '';
181
+ state.pointerType = "";
175
182
  state.target = null;
176
183
 
177
184
  if (!state.isHovered || !target) {
@@ -182,7 +189,7 @@ export function createHover(props: MaybeAccessor<CreateHoverProps> = {}): HoverR
182
189
  removeAllGlobalListeners();
183
190
 
184
191
  p.onHoverEnd?.({
185
- type: 'hoverend',
192
+ type: "hoverend",
186
193
  target,
187
194
  pointerType,
188
195
  });
@@ -192,36 +199,44 @@ export function createHover(props: MaybeAccessor<CreateHoverProps> = {}): HoverR
192
199
  }
193
200
 
194
201
  const hoverProps = createMemo<JSX.HTMLAttributes<HTMLElement>>(() => {
195
- if (typeof PointerEvent !== 'undefined') {
202
+ if (typeof PointerEvent !== "undefined") {
196
203
  return {
197
204
  onPointerEnter: (e: PointerEvent) => {
198
- if (globalIgnoreEmulatedMouseEvents && e.pointerType === 'mouse') {
205
+ if (globalIgnoreEmulatedMouseEvents && e.pointerType === "mouse") {
199
206
  return;
200
207
  }
201
- if (e.pointerType === 'touch') {
208
+ if (e.pointerType === "touch") {
202
209
  return;
203
210
  }
204
- triggerHoverStart(e.currentTarget as Element, e.pointerType as 'mouse' | 'pen', e.target as Element);
211
+ triggerHoverStart(
212
+ e.currentTarget as Element,
213
+ e.pointerType as "mouse" | "pen",
214
+ e.target as Element,
215
+ );
205
216
  },
206
217
  onPointerLeave: (e: PointerEvent) => {
207
218
  const p = getProps();
208
219
  if (!p.isDisabled && (e.currentTarget as Element).contains(e.target as Element)) {
209
- triggerHoverEnd(e.currentTarget as Element, e.pointerType as 'mouse' | 'pen');
220
+ triggerHoverEnd(e.currentTarget as Element, e.pointerType as "mouse" | "pen");
210
221
  }
211
222
  },
212
223
  onPointerOver: (e: PointerEvent) => {
213
- if (globalIgnoreEmulatedMouseEvents && e.pointerType === 'mouse') {
224
+ if (globalIgnoreEmulatedMouseEvents && e.pointerType === "mouse") {
214
225
  return;
215
226
  }
216
- if (e.pointerType === 'touch') {
227
+ if (e.pointerType === "touch") {
217
228
  return;
218
229
  }
219
- triggerHoverStart(e.currentTarget as Element, e.pointerType as 'mouse' | 'pen', e.target as Element);
230
+ triggerHoverStart(
231
+ e.currentTarget as Element,
232
+ e.pointerType as "mouse" | "pen",
233
+ e.target as Element,
234
+ );
220
235
  },
221
236
  onPointerOut: (e: PointerEvent) => {
222
237
  const p = getProps();
223
238
  if (!p.isDisabled && (e.currentTarget as Element).contains(e.target as Element)) {
224
- triggerHoverEnd(e.currentTarget as Element, e.pointerType as 'mouse' | 'pen');
239
+ triggerHoverEnd(e.currentTarget as Element, e.pointerType as "mouse" | "pen");
225
240
  }
226
241
  },
227
242
  };
@@ -234,14 +249,14 @@ export function createHover(props: MaybeAccessor<CreateHoverProps> = {}): HoverR
234
249
  },
235
250
  onMouseEnter: (e: MouseEvent) => {
236
251
  if (!state.ignoreEmulatedMouseEvents && !globalIgnoreEmulatedMouseEvents) {
237
- triggerHoverStart(e.currentTarget as Element, 'mouse', e.target as Element);
252
+ triggerHoverStart(e.currentTarget as Element, "mouse", e.target as Element);
238
253
  }
239
254
  state.ignoreEmulatedMouseEvents = false;
240
255
  },
241
256
  onMouseLeave: (e: MouseEvent) => {
242
257
  const p = getProps();
243
258
  if (!p.isDisabled && (e.currentTarget as Element).contains(e.target as Element)) {
244
- triggerHoverEnd(e.currentTarget as Element, 'mouse');
259
+ triggerHoverEnd(e.currentTarget as Element, "mouse");
245
260
  }
246
261
  },
247
262
  };