@cdx-ui/primitives 0.0.1-beta.99 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (974) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +77 -52
  3. package/coverage.svg +1 -0
  4. package/lib/commonjs/accordion/Accordion.js +65 -0
  5. package/lib/commonjs/accordion/Accordion.js.map +1 -0
  6. package/lib/commonjs/accordion/AccordionContent.js +73 -0
  7. package/lib/commonjs/accordion/AccordionContent.js.map +1 -0
  8. package/lib/commonjs/accordion/AccordionItem.js +69 -0
  9. package/lib/commonjs/accordion/AccordionItem.js.map +1 -0
  10. package/lib/commonjs/accordion/AccordionTrigger.js +102 -0
  11. package/lib/commonjs/accordion/AccordionTrigger.js.map +1 -0
  12. package/lib/commonjs/accordion/context.js +14 -0
  13. package/lib/commonjs/accordion/context.js.map +1 -0
  14. package/lib/commonjs/accordion/index.js +59 -0
  15. package/lib/commonjs/accordion/index.js.map +1 -0
  16. package/lib/commonjs/accordion/types.js +6 -0
  17. package/lib/commonjs/accordion/types.js.map +1 -0
  18. package/lib/commonjs/accordion/utils.js +24 -0
  19. package/lib/commonjs/accordion/utils.js.map +1 -0
  20. package/lib/commonjs/breadcrumbs/BreadcrumbsRoot.js +50 -0
  21. package/lib/commonjs/breadcrumbs/BreadcrumbsRoot.js.map +1 -0
  22. package/lib/commonjs/breadcrumbs/context.js +11 -0
  23. package/lib/commonjs/breadcrumbs/context.js.map +1 -0
  24. package/lib/commonjs/breadcrumbs/index.js +27 -0
  25. package/lib/commonjs/breadcrumbs/index.js.map +1 -0
  26. package/lib/commonjs/breadcrumbs/types.js +8 -0
  27. package/lib/commonjs/breadcrumbs/types.js.map +1 -0
  28. package/lib/commonjs/button/ButtonRoot.js +38 -2
  29. package/lib/commonjs/button/ButtonRoot.js.map +1 -1
  30. package/lib/commonjs/calendar/CalendarGrid.js +33 -0
  31. package/lib/commonjs/calendar/CalendarGrid.js.map +1 -0
  32. package/lib/commonjs/calendar/CalendarRoot.js +95 -0
  33. package/lib/commonjs/calendar/CalendarRoot.js.map +1 -0
  34. package/lib/commonjs/calendar/context.js +17 -0
  35. package/lib/commonjs/calendar/context.js.map +1 -0
  36. package/lib/commonjs/calendar/index.js +27 -0
  37. package/lib/commonjs/calendar/index.js.map +1 -0
  38. package/lib/commonjs/calendar/types.js +6 -0
  39. package/lib/commonjs/calendar/types.js.map +1 -0
  40. package/lib/commonjs/checkbox/CheckboxGroup.js +15 -2
  41. package/lib/commonjs/checkbox/CheckboxGroup.js.map +1 -1
  42. package/lib/commonjs/checkbox/CheckboxRoot.js +1 -1
  43. package/lib/commonjs/checkbox/CheckboxRoot.js.map +1 -1
  44. package/lib/commonjs/checkbox/CheckboxRoot.web.js +91 -28
  45. package/lib/commonjs/checkbox/CheckboxRoot.web.js.map +1 -1
  46. package/lib/commonjs/checkbox/useCheckboxRoot.js +42 -21
  47. package/lib/commonjs/checkbox/useCheckboxRoot.js.map +1 -1
  48. package/lib/commonjs/chip/ChipRoot.js +3 -1
  49. package/lib/commonjs/chip/ChipRoot.js.map +1 -1
  50. package/lib/commonjs/date-field/DateFieldHiddenInput.js +148 -0
  51. package/lib/commonjs/date-field/DateFieldHiddenInput.js.map +1 -0
  52. package/lib/commonjs/date-field/DateFieldInput.js +122 -0
  53. package/lib/commonjs/date-field/DateFieldInput.js.map +1 -0
  54. package/lib/commonjs/date-field/DateFieldRoot.js +85 -0
  55. package/lib/commonjs/date-field/DateFieldRoot.js.map +1 -0
  56. package/lib/commonjs/date-field/DateFieldSegment.js +92 -0
  57. package/lib/commonjs/date-field/DateFieldSegment.js.map +1 -0
  58. package/lib/commonjs/date-field/context.js +19 -0
  59. package/lib/commonjs/date-field/context.js.map +1 -0
  60. package/lib/commonjs/date-field/index.js +34 -0
  61. package/lib/commonjs/date-field/index.js.map +1 -0
  62. package/lib/commonjs/date-field/segmentIndex.js +23 -0
  63. package/lib/commonjs/date-field/segmentIndex.js.map +1 -0
  64. package/lib/commonjs/date-field/segmentKeyboard.js +169 -0
  65. package/lib/commonjs/date-field/segmentKeyboard.js.map +1 -0
  66. package/lib/commonjs/date-field/types.js +6 -0
  67. package/lib/commonjs/date-field/types.js.map +1 -0
  68. package/lib/commonjs/date-field/useDateFieldSegmentState.js +381 -0
  69. package/lib/commonjs/date-field/useDateFieldSegmentState.js.map +1 -0
  70. package/lib/commonjs/date-field/useRangeDateFieldBridge.js +67 -0
  71. package/lib/commonjs/date-field/useRangeDateFieldBridge.js.map +1 -0
  72. package/lib/commonjs/date-picker/DatePickerRoot.js +123 -0
  73. package/lib/commonjs/date-picker/DatePickerRoot.js.map +1 -0
  74. package/lib/commonjs/date-picker/context.js +17 -0
  75. package/lib/commonjs/date-picker/context.js.map +1 -0
  76. package/lib/commonjs/date-picker/index.js +26 -0
  77. package/lib/commonjs/date-picker/index.js.map +1 -0
  78. package/lib/commonjs/date-range-picker/DateRangePickerRoot.js +144 -0
  79. package/lib/commonjs/date-range-picker/DateRangePickerRoot.js.map +1 -0
  80. package/lib/commonjs/date-range-picker/context.js +23 -0
  81. package/lib/commonjs/date-range-picker/context.js.map +1 -0
  82. package/lib/commonjs/date-range-picker/index.js +26 -0
  83. package/lib/commonjs/date-range-picker/index.js.map +1 -0
  84. package/lib/commonjs/date-time-field/DateTimeFieldHiddenInput.js +150 -0
  85. package/lib/commonjs/date-time-field/DateTimeFieldHiddenInput.js.map +1 -0
  86. package/lib/commonjs/date-time-field/DateTimeFieldInput.js +104 -0
  87. package/lib/commonjs/date-time-field/DateTimeFieldInput.js.map +1 -0
  88. package/lib/commonjs/date-time-field/DateTimeFieldRoot.js +159 -0
  89. package/lib/commonjs/date-time-field/DateTimeFieldRoot.js.map +1 -0
  90. package/lib/commonjs/date-time-field/DateTimeFieldSegment.js +87 -0
  91. package/lib/commonjs/date-time-field/DateTimeFieldSegment.js.map +1 -0
  92. package/lib/commonjs/date-time-field/context.js +17 -0
  93. package/lib/commonjs/date-time-field/context.js.map +1 -0
  94. package/lib/commonjs/date-time-field/index.js +40 -0
  95. package/lib/commonjs/date-time-field/index.js.map +1 -0
  96. package/lib/commonjs/date-time-field/useDateTimeFieldSegmentState.js +564 -0
  97. package/lib/commonjs/date-time-field/useDateTimeFieldSegmentState.js.map +1 -0
  98. package/lib/commonjs/date-time-list/DateTimeListRoot.js +418 -0
  99. package/lib/commonjs/date-time-list/DateTimeListRoot.js.map +1 -0
  100. package/lib/commonjs/date-time-list/context.js +26 -0
  101. package/lib/commonjs/date-time-list/context.js.map +1 -0
  102. package/lib/commonjs/date-time-list/index.js +62 -0
  103. package/lib/commonjs/date-time-list/index.js.map +1 -0
  104. package/lib/commonjs/date-time-picker/DateTimePickerRoot.js +134 -0
  105. package/lib/commonjs/date-time-picker/DateTimePickerRoot.js.map +1 -0
  106. package/lib/commonjs/date-time-picker/context.js +17 -0
  107. package/lib/commonjs/date-time-picker/context.js.map +1 -0
  108. package/lib/commonjs/date-time-picker/index.js +26 -0
  109. package/lib/commonjs/date-time-picker/index.js.map +1 -0
  110. package/lib/commonjs/dialog/DialogContent.js +94 -0
  111. package/lib/commonjs/dialog/DialogContent.js.map +1 -0
  112. package/lib/commonjs/dialog/DialogOverlay.js +54 -0
  113. package/lib/commonjs/dialog/DialogOverlay.js.map +1 -0
  114. package/lib/commonjs/dialog/DialogPopup.js +7 -2
  115. package/lib/commonjs/dialog/DialogPopup.js.map +1 -1
  116. package/lib/commonjs/dialog/DialogPortal.js +37 -0
  117. package/lib/commonjs/dialog/DialogPortal.js.map +1 -0
  118. package/lib/commonjs/dialog/DialogRoot.js +1 -1
  119. package/lib/commonjs/dialog/DialogRoot.js.map +1 -1
  120. package/lib/commonjs/dialog/index.js +21 -0
  121. package/lib/commonjs/dialog/index.js.map +1 -1
  122. package/lib/commonjs/form/FormRoot.web.js +7 -2
  123. package/lib/commonjs/form/FormRoot.web.js.map +1 -1
  124. package/lib/commonjs/index.js +300 -0
  125. package/lib/commonjs/index.js.map +1 -1
  126. package/lib/commonjs/menu/MenuCheckboxItem.js +42 -0
  127. package/lib/commonjs/menu/MenuCheckboxItem.js.map +1 -0
  128. package/lib/commonjs/menu/MenuItem.js +142 -0
  129. package/lib/commonjs/menu/MenuItem.js.map +1 -0
  130. package/lib/commonjs/menu/MenuOverlayRoot.js +80 -0
  131. package/lib/commonjs/menu/MenuOverlayRoot.js.map +1 -0
  132. package/lib/commonjs/menu/MenuPopup.js +78 -0
  133. package/lib/commonjs/menu/MenuPopup.js.map +1 -0
  134. package/lib/commonjs/menu/MenuRadioGroup.js +48 -0
  135. package/lib/commonjs/menu/MenuRadioGroup.js.map +1 -0
  136. package/lib/commonjs/menu/MenuRadioItem.js +32 -0
  137. package/lib/commonjs/menu/MenuRadioItem.js.map +1 -0
  138. package/lib/commonjs/menu/MenuRoot.js +139 -0
  139. package/lib/commonjs/menu/MenuRoot.js.map +1 -0
  140. package/lib/commonjs/menu/MenuTrigger.js +59 -0
  141. package/lib/commonjs/menu/MenuTrigger.js.map +1 -0
  142. package/lib/commonjs/menu/context.js +36 -0
  143. package/lib/commonjs/menu/context.js.map +1 -0
  144. package/lib/commonjs/menu/index.js +118 -0
  145. package/lib/commonjs/menu/index.js.map +1 -0
  146. package/lib/commonjs/menu/overlayContext.js +30 -0
  147. package/lib/commonjs/menu/overlayContext.js.map +1 -0
  148. package/lib/commonjs/menu/types.js +6 -0
  149. package/lib/commonjs/menu/types.js.map +1 -0
  150. package/lib/commonjs/menu/useMenuNavigation.js +87 -0
  151. package/lib/commonjs/menu/useMenuNavigation.js.map +1 -0
  152. package/lib/commonjs/menu/useMenuOverlayLifecycle.js +68 -0
  153. package/lib/commonjs/menu/useMenuOverlayLifecycle.js.map +1 -0
  154. package/lib/commonjs/menu/useMenuTrigger.js +115 -0
  155. package/lib/commonjs/menu/useMenuTrigger.js.map +1 -0
  156. package/lib/commonjs/month-calendar/MonthCalendarCell.js +64 -0
  157. package/lib/commonjs/month-calendar/MonthCalendarCell.js.map +1 -0
  158. package/lib/commonjs/month-calendar/MonthCalendarRoot.js +103 -0
  159. package/lib/commonjs/month-calendar/MonthCalendarRoot.js.map +1 -0
  160. package/lib/commonjs/month-calendar/MonthCalendarYearCell.js +63 -0
  161. package/lib/commonjs/month-calendar/MonthCalendarYearCell.js.map +1 -0
  162. package/lib/commonjs/month-calendar/context.js +17 -0
  163. package/lib/commonjs/month-calendar/context.js.map +1 -0
  164. package/lib/commonjs/month-calendar/index.js +34 -0
  165. package/lib/commonjs/month-calendar/index.js.map +1 -0
  166. package/lib/commonjs/month-picker/MonthPickerRoot.js +118 -0
  167. package/lib/commonjs/month-picker/MonthPickerRoot.js.map +1 -0
  168. package/lib/commonjs/month-picker/context.js +17 -0
  169. package/lib/commonjs/month-picker/context.js.map +1 -0
  170. package/lib/commonjs/month-picker/index.js +26 -0
  171. package/lib/commonjs/month-picker/index.js.map +1 -0
  172. package/lib/commonjs/overlay/OverlayContainer.js +5 -5
  173. package/lib/commonjs/overlay/OverlayContainer.js.map +1 -1
  174. package/lib/commonjs/overlay/OverlayStack.js +125 -0
  175. package/lib/commonjs/overlay/OverlayStack.js.map +1 -0
  176. package/lib/commonjs/overlay/constants.js +18 -0
  177. package/lib/commonjs/overlay/constants.js.map +1 -0
  178. package/lib/commonjs/overlay/getAnchoredOverlayPosition.js +194 -0
  179. package/lib/commonjs/overlay/getAnchoredOverlayPosition.js.map +1 -0
  180. package/lib/commonjs/overlay/index.js +46 -0
  181. package/lib/commonjs/overlay/index.js.map +1 -1
  182. package/lib/commonjs/overlay/useAnchorPosition.js +71 -21
  183. package/lib/commonjs/overlay/useAnchorPosition.js.map +1 -1
  184. package/lib/commonjs/overlay/useAnchoredOverlay.js +121 -0
  185. package/lib/commonjs/overlay/useAnchoredOverlay.js.map +1 -0
  186. package/lib/commonjs/overlay/useDismissOverlay.js +8 -1
  187. package/lib/commonjs/overlay/useDismissOverlay.js.map +1 -1
  188. package/lib/commonjs/overlay/useDismissOverlay.web.js +21 -5
  189. package/lib/commonjs/overlay/useDismissOverlay.web.js.map +1 -1
  190. package/lib/commonjs/overlay/useEscapeKey.js +8 -1
  191. package/lib/commonjs/overlay/useEscapeKey.js.map +1 -1
  192. package/lib/commonjs/overlay/useEscapeKey.web.js +11 -3
  193. package/lib/commonjs/overlay/useEscapeKey.web.js.map +1 -1
  194. package/lib/commonjs/overlay/useOverlayPosition.js +21 -9
  195. package/lib/commonjs/overlay/useOverlayPosition.js.map +1 -1
  196. package/lib/commonjs/portal/portal.js +111 -31
  197. package/lib/commonjs/portal/portal.js.map +1 -1
  198. package/lib/commonjs/radio/RadioGroup.js +65 -16
  199. package/lib/commonjs/radio/RadioGroup.js.map +1 -1
  200. package/lib/commonjs/radio/RadioRoot.web.js +114 -26
  201. package/lib/commonjs/radio/RadioRoot.web.js.map +1 -1
  202. package/lib/commonjs/radio/context.js.map +1 -1
  203. package/lib/commonjs/radio/useRadioGroupNavigation.js +79 -0
  204. package/lib/commonjs/radio/useRadioGroupNavigation.js.map +1 -0
  205. package/lib/commonjs/radio/useRadioRoot.js +14 -13
  206. package/lib/commonjs/radio/useRadioRoot.js.map +1 -1
  207. package/lib/commonjs/range-calendar/RangeCalendarRoot.js +148 -0
  208. package/lib/commonjs/range-calendar/RangeCalendarRoot.js.map +1 -0
  209. package/lib/commonjs/range-calendar/context.js +17 -0
  210. package/lib/commonjs/range-calendar/context.js.map +1 -0
  211. package/lib/commonjs/range-calendar/index.js +20 -0
  212. package/lib/commonjs/range-calendar/index.js.map +1 -0
  213. package/lib/commonjs/select/SelectContent.js +27 -11
  214. package/lib/commonjs/select/SelectContent.js.map +1 -1
  215. package/lib/commonjs/select/SelectRoot.js +1 -1
  216. package/lib/commonjs/select/SelectRoot.js.map +1 -1
  217. package/lib/commonjs/select/SelectTrigger.web.js +8 -12
  218. package/lib/commonjs/select/SelectTrigger.web.js.map +1 -1
  219. package/lib/commonjs/select/useListboxNavigation.js +10 -11
  220. package/lib/commonjs/select/useListboxNavigation.js.map +1 -1
  221. package/lib/commonjs/slider/SliderRail.js +157 -0
  222. package/lib/commonjs/slider/SliderRail.js.map +1 -0
  223. package/lib/commonjs/slider/SliderRoot.js +244 -0
  224. package/lib/commonjs/slider/SliderRoot.js.map +1 -0
  225. package/lib/commonjs/slider/SliderThumb.js +342 -0
  226. package/lib/commonjs/slider/SliderThumb.js.map +1 -0
  227. package/lib/commonjs/slider/context.js +14 -0
  228. package/lib/commonjs/slider/context.js.map +1 -0
  229. package/lib/commonjs/slider/index.js +101 -0
  230. package/lib/commonjs/slider/index.js.map +1 -0
  231. package/lib/commonjs/slider/types.js +6 -0
  232. package/lib/commonjs/slider/types.js.map +1 -0
  233. package/lib/commonjs/slider/useSliderPointer.js +116 -0
  234. package/lib/commonjs/slider/useSliderPointer.js.map +1 -0
  235. package/lib/commonjs/slider/utils.js +223 -0
  236. package/lib/commonjs/slider/utils.js.map +1 -0
  237. package/lib/commonjs/tabs/Tab.js +122 -0
  238. package/lib/commonjs/tabs/Tab.js.map +1 -0
  239. package/lib/commonjs/tabs/TabPanel.js +53 -0
  240. package/lib/commonjs/tabs/TabPanel.js.map +1 -0
  241. package/lib/commonjs/tabs/TabsList.js +58 -0
  242. package/lib/commonjs/tabs/TabsList.js.map +1 -0
  243. package/lib/commonjs/tabs/TabsRoot.js +79 -0
  244. package/lib/commonjs/tabs/TabsRoot.js.map +1 -0
  245. package/lib/commonjs/tabs/context.js +19 -0
  246. package/lib/commonjs/tabs/context.js.map +1 -0
  247. package/lib/commonjs/tabs/index.js +47 -0
  248. package/lib/commonjs/tabs/index.js.map +1 -0
  249. package/lib/commonjs/tabs/types.js +6 -0
  250. package/lib/commonjs/tabs/types.js.map +1 -0
  251. package/lib/commonjs/tabs/useTabsNavigation.js +84 -0
  252. package/lib/commonjs/tabs/useTabsNavigation.js.map +1 -0
  253. package/lib/commonjs/tooltip/TooltipContent.js +107 -0
  254. package/lib/commonjs/tooltip/TooltipContent.js.map +1 -0
  255. package/lib/commonjs/tooltip/TooltipRoot.js +128 -0
  256. package/lib/commonjs/tooltip/TooltipRoot.js.map +1 -0
  257. package/lib/commonjs/tooltip/TooltipTrigger.js +132 -0
  258. package/lib/commonjs/tooltip/TooltipTrigger.js.map +1 -0
  259. package/lib/commonjs/tooltip/context.js +11 -0
  260. package/lib/commonjs/tooltip/context.js.map +1 -0
  261. package/lib/commonjs/tooltip/getTooltipPosition.js +77 -0
  262. package/lib/commonjs/tooltip/getTooltipPosition.js.map +1 -0
  263. package/lib/commonjs/tooltip/index.js +53 -0
  264. package/lib/commonjs/tooltip/index.js.map +1 -0
  265. package/lib/commonjs/tooltip/types.js +6 -0
  266. package/lib/commonjs/tooltip/types.js.map +1 -0
  267. package/lib/commonjs/utils/accessibleLabel.js +23 -0
  268. package/lib/commonjs/utils/accessibleLabel.js.map +1 -0
  269. package/lib/commonjs/utils/assignRef.js +16 -0
  270. package/lib/commonjs/utils/assignRef.js.map +1 -0
  271. package/lib/commonjs/utils/createPortal.js +3 -1
  272. package/lib/commonjs/utils/createPortal.js.map +1 -1
  273. package/lib/commonjs/utils/createPortal.web.js +21 -0
  274. package/lib/commonjs/utils/createPortal.web.js.map +1 -0
  275. package/lib/commonjs/utils/domDataAttributes.js +7 -2
  276. package/lib/commonjs/utils/domDataAttributes.js.map +1 -1
  277. package/lib/commonjs/utils/mapViewPropsToDom.js +48 -0
  278. package/lib/commonjs/utils/mapViewPropsToDom.js.map +1 -0
  279. package/lib/module/accordion/Accordion.js +61 -0
  280. package/lib/module/accordion/Accordion.js.map +1 -0
  281. package/lib/module/accordion/AccordionContent.js +69 -0
  282. package/lib/module/accordion/AccordionContent.js.map +1 -0
  283. package/lib/module/accordion/AccordionItem.js +65 -0
  284. package/lib/module/accordion/AccordionItem.js.map +1 -0
  285. package/lib/module/accordion/AccordionTrigger.js +98 -0
  286. package/lib/module/accordion/AccordionTrigger.js.map +1 -0
  287. package/lib/module/accordion/context.js +6 -0
  288. package/lib/module/accordion/context.js.map +1 -0
  289. package/lib/module/accordion/index.js +8 -0
  290. package/lib/module/accordion/index.js.map +1 -0
  291. package/lib/module/accordion/types.js +4 -0
  292. package/lib/module/accordion/types.js.map +1 -0
  293. package/lib/module/accordion/utils.js +19 -0
  294. package/lib/module/accordion/utils.js.map +1 -0
  295. package/lib/module/breadcrumbs/BreadcrumbsRoot.js +46 -0
  296. package/lib/module/breadcrumbs/BreadcrumbsRoot.js.map +1 -0
  297. package/lib/module/breadcrumbs/context.js +5 -0
  298. package/lib/module/breadcrumbs/context.js.map +1 -0
  299. package/lib/module/breadcrumbs/index.js +6 -0
  300. package/lib/module/breadcrumbs/index.js.map +1 -0
  301. package/lib/module/breadcrumbs/types.js +4 -0
  302. package/lib/module/breadcrumbs/types.js.map +1 -0
  303. package/lib/module/button/ButtonRoot.js +38 -2
  304. package/lib/module/button/ButtonRoot.js.map +1 -1
  305. package/lib/module/calendar/CalendarGrid.js +29 -0
  306. package/lib/module/calendar/CalendarGrid.js.map +1 -0
  307. package/lib/module/calendar/CalendarRoot.js +91 -0
  308. package/lib/module/calendar/CalendarRoot.js.map +1 -0
  309. package/lib/module/calendar/context.js +12 -0
  310. package/lib/module/calendar/context.js.map +1 -0
  311. package/lib/module/calendar/index.js +6 -0
  312. package/lib/module/calendar/index.js.map +1 -0
  313. package/lib/module/calendar/types.js +4 -0
  314. package/lib/module/calendar/types.js.map +1 -0
  315. package/lib/module/checkbox/CheckboxGroup.js +16 -3
  316. package/lib/module/checkbox/CheckboxGroup.js.map +1 -1
  317. package/lib/module/checkbox/CheckboxRoot.js +1 -1
  318. package/lib/module/checkbox/CheckboxRoot.js.map +1 -1
  319. package/lib/module/checkbox/CheckboxRoot.web.js +92 -29
  320. package/lib/module/checkbox/CheckboxRoot.web.js.map +1 -1
  321. package/lib/module/checkbox/useCheckboxRoot.js +43 -22
  322. package/lib/module/checkbox/useCheckboxRoot.js.map +1 -1
  323. package/lib/module/chip/ChipRoot.js +4 -2
  324. package/lib/module/chip/ChipRoot.js.map +1 -1
  325. package/lib/module/date-field/DateFieldHiddenInput.js +146 -0
  326. package/lib/module/date-field/DateFieldHiddenInput.js.map +1 -0
  327. package/lib/module/date-field/DateFieldInput.js +118 -0
  328. package/lib/module/date-field/DateFieldInput.js.map +1 -0
  329. package/lib/module/date-field/DateFieldRoot.js +81 -0
  330. package/lib/module/date-field/DateFieldRoot.js.map +1 -0
  331. package/lib/module/date-field/DateFieldSegment.js +88 -0
  332. package/lib/module/date-field/DateFieldSegment.js.map +1 -0
  333. package/lib/module/date-field/context.js +15 -0
  334. package/lib/module/date-field/context.js.map +1 -0
  335. package/lib/module/date-field/index.js +7 -0
  336. package/lib/module/date-field/index.js.map +1 -0
  337. package/lib/module/date-field/segmentIndex.js +18 -0
  338. package/lib/module/date-field/segmentIndex.js.map +1 -0
  339. package/lib/module/date-field/segmentKeyboard.js +157 -0
  340. package/lib/module/date-field/segmentKeyboard.js.map +1 -0
  341. package/lib/module/date-field/types.js +4 -0
  342. package/lib/module/date-field/types.js.map +1 -0
  343. package/lib/module/date-field/useDateFieldSegmentState.js +378 -0
  344. package/lib/module/date-field/useDateFieldSegmentState.js.map +1 -0
  345. package/lib/module/date-field/useRangeDateFieldBridge.js +63 -0
  346. package/lib/module/date-field/useRangeDateFieldBridge.js.map +1 -0
  347. package/lib/module/date-picker/DatePickerRoot.js +119 -0
  348. package/lib/module/date-picker/DatePickerRoot.js.map +1 -0
  349. package/lib/module/date-picker/context.js +12 -0
  350. package/lib/module/date-picker/context.js.map +1 -0
  351. package/lib/module/date-picker/index.js +5 -0
  352. package/lib/module/date-picker/index.js.map +1 -0
  353. package/lib/module/date-range-picker/DateRangePickerRoot.js +140 -0
  354. package/lib/module/date-range-picker/DateRangePickerRoot.js.map +1 -0
  355. package/lib/module/date-range-picker/context.js +19 -0
  356. package/lib/module/date-range-picker/context.js.map +1 -0
  357. package/lib/module/date-range-picker/index.js +5 -0
  358. package/lib/module/date-range-picker/index.js.map +1 -0
  359. package/lib/module/date-time-field/DateTimeFieldHiddenInput.js +148 -0
  360. package/lib/module/date-time-field/DateTimeFieldHiddenInput.js.map +1 -0
  361. package/lib/module/date-time-field/DateTimeFieldInput.js +100 -0
  362. package/lib/module/date-time-field/DateTimeFieldInput.js.map +1 -0
  363. package/lib/module/date-time-field/DateTimeFieldRoot.js +154 -0
  364. package/lib/module/date-time-field/DateTimeFieldRoot.js.map +1 -0
  365. package/lib/module/date-time-field/DateTimeFieldSegment.js +83 -0
  366. package/lib/module/date-time-field/DateTimeFieldSegment.js.map +1 -0
  367. package/lib/module/date-time-field/context.js +12 -0
  368. package/lib/module/date-time-field/context.js.map +1 -0
  369. package/lib/module/date-time-field/index.js +7 -0
  370. package/lib/module/date-time-field/index.js.map +1 -0
  371. package/lib/module/date-time-field/useDateTimeFieldSegmentState.js +561 -0
  372. package/lib/module/date-time-field/useDateTimeFieldSegmentState.js.map +1 -0
  373. package/lib/module/date-time-list/DateTimeListRoot.js +416 -0
  374. package/lib/module/date-time-list/DateTimeListRoot.js.map +1 -0
  375. package/lib/module/date-time-list/context.js +20 -0
  376. package/lib/module/date-time-list/context.js.map +1 -0
  377. package/lib/module/date-time-list/index.js +5 -0
  378. package/lib/module/date-time-list/index.js.map +1 -0
  379. package/lib/module/date-time-picker/DateTimePickerRoot.js +130 -0
  380. package/lib/module/date-time-picker/DateTimePickerRoot.js.map +1 -0
  381. package/lib/module/date-time-picker/context.js +12 -0
  382. package/lib/module/date-time-picker/context.js.map +1 -0
  383. package/lib/module/date-time-picker/index.js +5 -0
  384. package/lib/module/date-time-picker/index.js.map +1 -0
  385. package/lib/module/dialog/DialogContent.js +90 -0
  386. package/lib/module/dialog/DialogContent.js.map +1 -0
  387. package/lib/module/dialog/DialogOverlay.js +50 -0
  388. package/lib/module/dialog/DialogOverlay.js.map +1 -0
  389. package/lib/module/dialog/DialogPopup.js +8 -3
  390. package/lib/module/dialog/DialogPopup.js.map +1 -1
  391. package/lib/module/dialog/DialogPortal.js +33 -0
  392. package/lib/module/dialog/DialogPortal.js.map +1 -0
  393. package/lib/module/dialog/DialogRoot.js +1 -1
  394. package/lib/module/dialog/DialogRoot.js.map +1 -1
  395. package/lib/module/dialog/index.js +3 -0
  396. package/lib/module/dialog/index.js.map +1 -1
  397. package/lib/module/form/FormRoot.web.js +7 -2
  398. package/lib/module/form/FormRoot.web.js.map +1 -1
  399. package/lib/module/index.js +20 -1
  400. package/lib/module/index.js.map +1 -1
  401. package/lib/module/menu/MenuCheckboxItem.js +38 -0
  402. package/lib/module/menu/MenuCheckboxItem.js.map +1 -0
  403. package/lib/module/menu/MenuItem.js +138 -0
  404. package/lib/module/menu/MenuItem.js.map +1 -0
  405. package/lib/module/menu/MenuOverlayRoot.js +76 -0
  406. package/lib/module/menu/MenuOverlayRoot.js.map +1 -0
  407. package/lib/module/menu/MenuPopup.js +74 -0
  408. package/lib/module/menu/MenuPopup.js.map +1 -0
  409. package/lib/module/menu/MenuRadioGroup.js +44 -0
  410. package/lib/module/menu/MenuRadioGroup.js.map +1 -0
  411. package/lib/module/menu/MenuRadioItem.js +28 -0
  412. package/lib/module/menu/MenuRadioItem.js.map +1 -0
  413. package/lib/module/menu/MenuRoot.js +135 -0
  414. package/lib/module/menu/MenuRoot.js.map +1 -0
  415. package/lib/module/menu/MenuTrigger.js +55 -0
  416. package/lib/module/menu/MenuTrigger.js.map +1 -0
  417. package/lib/module/menu/context.js +27 -0
  418. package/lib/module/menu/context.js.map +1 -0
  419. package/lib/module/menu/index.js +13 -0
  420. package/lib/module/menu/index.js.map +1 -0
  421. package/lib/module/menu/overlayContext.js +24 -0
  422. package/lib/module/menu/overlayContext.js.map +1 -0
  423. package/lib/module/menu/types.js +4 -0
  424. package/lib/module/menu/types.js.map +1 -0
  425. package/lib/module/menu/useMenuNavigation.js +84 -0
  426. package/lib/module/menu/useMenuNavigation.js.map +1 -0
  427. package/lib/module/menu/useMenuOverlayLifecycle.js +63 -0
  428. package/lib/module/menu/useMenuOverlayLifecycle.js.map +1 -0
  429. package/lib/module/menu/useMenuTrigger.js +111 -0
  430. package/lib/module/menu/useMenuTrigger.js.map +1 -0
  431. package/lib/module/month-calendar/MonthCalendarCell.js +60 -0
  432. package/lib/module/month-calendar/MonthCalendarCell.js.map +1 -0
  433. package/lib/module/month-calendar/MonthCalendarRoot.js +99 -0
  434. package/lib/module/month-calendar/MonthCalendarRoot.js.map +1 -0
  435. package/lib/module/month-calendar/MonthCalendarYearCell.js +59 -0
  436. package/lib/module/month-calendar/MonthCalendarYearCell.js.map +1 -0
  437. package/lib/module/month-calendar/context.js +12 -0
  438. package/lib/module/month-calendar/context.js.map +1 -0
  439. package/lib/module/month-calendar/index.js +7 -0
  440. package/lib/module/month-calendar/index.js.map +1 -0
  441. package/lib/module/month-picker/MonthPickerRoot.js +114 -0
  442. package/lib/module/month-picker/MonthPickerRoot.js.map +1 -0
  443. package/lib/module/month-picker/context.js +12 -0
  444. package/lib/module/month-picker/context.js.map +1 -0
  445. package/lib/module/month-picker/index.js +5 -0
  446. package/lib/module/month-picker/index.js.map +1 -0
  447. package/lib/module/overlay/OverlayContainer.js +5 -5
  448. package/lib/module/overlay/OverlayContainer.js.map +1 -1
  449. package/lib/module/overlay/OverlayStack.js +119 -0
  450. package/lib/module/overlay/OverlayStack.js.map +1 -0
  451. package/lib/module/overlay/constants.js +14 -0
  452. package/lib/module/overlay/constants.js.map +1 -0
  453. package/lib/module/overlay/getAnchoredOverlayPosition.js +189 -0
  454. package/lib/module/overlay/getAnchoredOverlayPosition.js.map +1 -0
  455. package/lib/module/overlay/index.js +4 -0
  456. package/lib/module/overlay/index.js.map +1 -1
  457. package/lib/module/overlay/useAnchorPosition.js +71 -21
  458. package/lib/module/overlay/useAnchorPosition.js.map +1 -1
  459. package/lib/module/overlay/useAnchoredOverlay.js +117 -0
  460. package/lib/module/overlay/useAnchoredOverlay.js.map +1 -0
  461. package/lib/module/overlay/useDismissOverlay.js +9 -1
  462. package/lib/module/overlay/useDismissOverlay.js.map +1 -1
  463. package/lib/module/overlay/useDismissOverlay.web.js +20 -5
  464. package/lib/module/overlay/useDismissOverlay.web.js.map +1 -1
  465. package/lib/module/overlay/useEscapeKey.js +9 -1
  466. package/lib/module/overlay/useEscapeKey.js.map +1 -1
  467. package/lib/module/overlay/useEscapeKey.web.js +11 -3
  468. package/lib/module/overlay/useEscapeKey.web.js.map +1 -1
  469. package/lib/module/overlay/useOverlayPosition.js +21 -9
  470. package/lib/module/overlay/useOverlayPosition.js.map +1 -1
  471. package/lib/module/portal/portal.js +111 -32
  472. package/lib/module/portal/portal.js.map +1 -1
  473. package/lib/module/radio/RadioGroup.js +68 -19
  474. package/lib/module/radio/RadioGroup.js.map +1 -1
  475. package/lib/module/radio/RadioRoot.web.js +117 -29
  476. package/lib/module/radio/RadioRoot.web.js.map +1 -1
  477. package/lib/module/radio/context.js.map +1 -1
  478. package/lib/module/radio/useRadioGroupNavigation.js +74 -0
  479. package/lib/module/radio/useRadioGroupNavigation.js.map +1 -0
  480. package/lib/module/radio/useRadioRoot.js +14 -13
  481. package/lib/module/radio/useRadioRoot.js.map +1 -1
  482. package/lib/module/range-calendar/RangeCalendarRoot.js +144 -0
  483. package/lib/module/range-calendar/RangeCalendarRoot.js.map +1 -0
  484. package/lib/module/range-calendar/context.js +12 -0
  485. package/lib/module/range-calendar/context.js.map +1 -0
  486. package/lib/module/range-calendar/index.js +5 -0
  487. package/lib/module/range-calendar/index.js.map +1 -0
  488. package/lib/module/select/SelectContent.js +29 -13
  489. package/lib/module/select/SelectContent.js.map +1 -1
  490. package/lib/module/select/SelectRoot.js +1 -1
  491. package/lib/module/select/SelectRoot.js.map +1 -1
  492. package/lib/module/select/SelectTrigger.web.js +9 -13
  493. package/lib/module/select/SelectTrigger.web.js.map +1 -1
  494. package/lib/module/select/useListboxNavigation.js +10 -11
  495. package/lib/module/select/useListboxNavigation.js.map +1 -1
  496. package/lib/module/slider/SliderRail.js +153 -0
  497. package/lib/module/slider/SliderRail.js.map +1 -0
  498. package/lib/module/slider/SliderRoot.js +240 -0
  499. package/lib/module/slider/SliderRoot.js.map +1 -0
  500. package/lib/module/slider/SliderThumb.js +338 -0
  501. package/lib/module/slider/SliderThumb.js.map +1 -0
  502. package/lib/module/slider/context.js +6 -0
  503. package/lib/module/slider/context.js.map +1 -0
  504. package/lib/module/slider/index.js +8 -0
  505. package/lib/module/slider/index.js.map +1 -0
  506. package/lib/module/slider/types.js +4 -0
  507. package/lib/module/slider/types.js.map +1 -0
  508. package/lib/module/slider/useSliderPointer.js +110 -0
  509. package/lib/module/slider/useSliderPointer.js.map +1 -0
  510. package/lib/module/slider/utils.js +201 -0
  511. package/lib/module/slider/utils.js.map +1 -0
  512. package/lib/module/tabs/Tab.js +118 -0
  513. package/lib/module/tabs/Tab.js.map +1 -0
  514. package/lib/module/tabs/TabPanel.js +49 -0
  515. package/lib/module/tabs/TabPanel.js.map +1 -0
  516. package/lib/module/tabs/TabsList.js +54 -0
  517. package/lib/module/tabs/TabsList.js.map +1 -0
  518. package/lib/module/tabs/TabsRoot.js +75 -0
  519. package/lib/module/tabs/TabsRoot.js.map +1 -0
  520. package/lib/module/tabs/context.js +11 -0
  521. package/lib/module/tabs/context.js.map +1 -0
  522. package/lib/module/tabs/index.js +8 -0
  523. package/lib/module/tabs/index.js.map +1 -0
  524. package/lib/module/tabs/types.js +4 -0
  525. package/lib/module/tabs/types.js.map +1 -0
  526. package/lib/module/tabs/useTabsNavigation.js +81 -0
  527. package/lib/module/tabs/useTabsNavigation.js.map +1 -0
  528. package/lib/module/tooltip/TooltipContent.js +103 -0
  529. package/lib/module/tooltip/TooltipContent.js.map +1 -0
  530. package/lib/module/tooltip/TooltipRoot.js +124 -0
  531. package/lib/module/tooltip/TooltipRoot.js.map +1 -0
  532. package/lib/module/tooltip/TooltipTrigger.js +128 -0
  533. package/lib/module/tooltip/TooltipTrigger.js.map +1 -0
  534. package/lib/module/tooltip/context.js +5 -0
  535. package/lib/module/tooltip/context.js.map +1 -0
  536. package/lib/module/tooltip/getTooltipPosition.js +72 -0
  537. package/lib/module/tooltip/getTooltipPosition.js.map +1 -0
  538. package/lib/module/tooltip/index.js +8 -0
  539. package/lib/module/tooltip/index.js.map +1 -0
  540. package/lib/module/tooltip/types.js +4 -0
  541. package/lib/module/tooltip/types.js.map +1 -0
  542. package/lib/module/utils/accessibleLabel.js +18 -0
  543. package/lib/module/utils/accessibleLabel.js.map +1 -0
  544. package/lib/module/utils/assignRef.js +12 -0
  545. package/lib/module/utils/assignRef.js.map +1 -0
  546. package/lib/module/utils/createPortal.js +3 -1
  547. package/lib/module/utils/createPortal.js.map +1 -1
  548. package/lib/module/utils/createPortal.web.js +17 -0
  549. package/lib/module/utils/createPortal.web.js.map +1 -0
  550. package/lib/module/utils/domDataAttributes.js +7 -2
  551. package/lib/module/utils/domDataAttributes.js.map +1 -1
  552. package/lib/module/utils/mapViewPropsToDom.js +44 -0
  553. package/lib/module/utils/mapViewPropsToDom.js.map +1 -0
  554. package/lib/typescript/accordion/Accordion.d.ts +8 -0
  555. package/lib/typescript/accordion/Accordion.d.ts.map +1 -0
  556. package/lib/typescript/accordion/AccordionContent.d.ts +8 -0
  557. package/lib/typescript/accordion/AccordionContent.d.ts.map +1 -0
  558. package/lib/typescript/accordion/AccordionItem.d.ts +8 -0
  559. package/lib/typescript/accordion/AccordionItem.d.ts.map +1 -0
  560. package/lib/typescript/accordion/AccordionTrigger.d.ts +6 -0
  561. package/lib/typescript/accordion/AccordionTrigger.d.ts.map +1 -0
  562. package/lib/typescript/accordion/context.d.ts +10 -0
  563. package/lib/typescript/accordion/context.d.ts.map +1 -0
  564. package/lib/typescript/accordion/index.d.ts +7 -0
  565. package/lib/typescript/accordion/index.d.ts.map +1 -0
  566. package/lib/typescript/accordion/types.d.ts +62 -0
  567. package/lib/typescript/accordion/types.d.ts.map +1 -0
  568. package/lib/typescript/accordion/utils.d.ts +4 -0
  569. package/lib/typescript/accordion/utils.d.ts.map +1 -0
  570. package/lib/typescript/breadcrumbs/BreadcrumbsRoot.d.ts +7 -0
  571. package/lib/typescript/breadcrumbs/BreadcrumbsRoot.d.ts.map +1 -0
  572. package/lib/typescript/breadcrumbs/context.d.ts +6 -0
  573. package/lib/typescript/breadcrumbs/context.d.ts.map +1 -0
  574. package/lib/typescript/breadcrumbs/index.d.ts +4 -0
  575. package/lib/typescript/breadcrumbs/index.d.ts.map +1 -0
  576. package/lib/typescript/breadcrumbs/types.d.ts +21 -0
  577. package/lib/typescript/breadcrumbs/types.d.ts.map +1 -0
  578. package/lib/typescript/button/ButtonRoot.d.ts.map +1 -1
  579. package/lib/typescript/button/types.d.ts +4 -0
  580. package/lib/typescript/button/types.d.ts.map +1 -1
  581. package/lib/typescript/calendar/CalendarGrid.d.ts +7 -0
  582. package/lib/typescript/calendar/CalendarGrid.d.ts.map +1 -0
  583. package/lib/typescript/calendar/CalendarRoot.d.ts +10 -0
  584. package/lib/typescript/calendar/CalendarRoot.d.ts.map +1 -0
  585. package/lib/typescript/calendar/context.d.ts +18 -0
  586. package/lib/typescript/calendar/context.d.ts.map +1 -0
  587. package/lib/typescript/calendar/index.d.ts +5 -0
  588. package/lib/typescript/calendar/index.d.ts.map +1 -0
  589. package/lib/typescript/calendar/types.d.ts +29 -0
  590. package/lib/typescript/calendar/types.d.ts.map +1 -0
  591. package/lib/typescript/checkbox/CheckboxGroup.d.ts.map +1 -1
  592. package/lib/typescript/checkbox/CheckboxRoot.web.d.ts +8 -0
  593. package/lib/typescript/checkbox/CheckboxRoot.web.d.ts.map +1 -1
  594. package/lib/typescript/checkbox/types.d.ts +1 -0
  595. package/lib/typescript/checkbox/types.d.ts.map +1 -1
  596. package/lib/typescript/checkbox/useCheckboxRoot.d.ts +7 -18
  597. package/lib/typescript/checkbox/useCheckboxRoot.d.ts.map +1 -1
  598. package/lib/typescript/chip/ChipRoot.d.ts.map +1 -1
  599. package/lib/typescript/date-field/DateFieldHiddenInput.d.ts +4 -0
  600. package/lib/typescript/date-field/DateFieldHiddenInput.d.ts.map +1 -0
  601. package/lib/typescript/date-field/DateFieldInput.d.ts +8 -0
  602. package/lib/typescript/date-field/DateFieldInput.d.ts.map +1 -0
  603. package/lib/typescript/date-field/DateFieldRoot.d.ts +10 -0
  604. package/lib/typescript/date-field/DateFieldRoot.d.ts.map +1 -0
  605. package/lib/typescript/date-field/DateFieldSegment.d.ts +9 -0
  606. package/lib/typescript/date-field/DateFieldSegment.d.ts.map +1 -0
  607. package/lib/typescript/date-field/context.d.ts +33 -0
  608. package/lib/typescript/date-field/context.d.ts.map +1 -0
  609. package/lib/typescript/date-field/index.d.ts +9 -0
  610. package/lib/typescript/date-field/index.d.ts.map +1 -0
  611. package/lib/typescript/date-field/segmentIndex.d.ts +7 -0
  612. package/lib/typescript/date-field/segmentIndex.d.ts.map +1 -0
  613. package/lib/typescript/date-field/segmentKeyboard.d.ts +23 -0
  614. package/lib/typescript/date-field/segmentKeyboard.d.ts.map +1 -0
  615. package/lib/typescript/date-field/types.d.ts +38 -0
  616. package/lib/typescript/date-field/types.d.ts.map +1 -0
  617. package/lib/typescript/date-field/useDateFieldSegmentState.d.ts +26 -0
  618. package/lib/typescript/date-field/useDateFieldSegmentState.d.ts.map +1 -0
  619. package/lib/typescript/date-field/useRangeDateFieldBridge.d.ts +4 -0
  620. package/lib/typescript/date-field/useRangeDateFieldBridge.d.ts.map +1 -0
  621. package/lib/typescript/date-picker/DatePickerRoot.d.ts +28 -0
  622. package/lib/typescript/date-picker/DatePickerRoot.d.ts.map +1 -0
  623. package/lib/typescript/date-picker/context.d.ts +25 -0
  624. package/lib/typescript/date-picker/context.d.ts.map +1 -0
  625. package/lib/typescript/date-picker/index.d.ts +5 -0
  626. package/lib/typescript/date-picker/index.d.ts.map +1 -0
  627. package/lib/typescript/date-range-picker/DateRangePickerRoot.d.ts +43 -0
  628. package/lib/typescript/date-range-picker/DateRangePickerRoot.d.ts.map +1 -0
  629. package/lib/typescript/date-range-picker/context.d.ts +42 -0
  630. package/lib/typescript/date-range-picker/context.d.ts.map +1 -0
  631. package/lib/typescript/date-range-picker/index.d.ts +4 -0
  632. package/lib/typescript/date-range-picker/index.d.ts.map +1 -0
  633. package/lib/typescript/date-time-field/DateTimeFieldHiddenInput.d.ts +4 -0
  634. package/lib/typescript/date-time-field/DateTimeFieldHiddenInput.d.ts.map +1 -0
  635. package/lib/typescript/date-time-field/DateTimeFieldInput.d.ts +10 -0
  636. package/lib/typescript/date-time-field/DateTimeFieldInput.d.ts.map +1 -0
  637. package/lib/typescript/date-time-field/DateTimeFieldRoot.d.ts +24 -0
  638. package/lib/typescript/date-time-field/DateTimeFieldRoot.d.ts.map +1 -0
  639. package/lib/typescript/date-time-field/DateTimeFieldSegment.d.ts +10 -0
  640. package/lib/typescript/date-time-field/DateTimeFieldSegment.d.ts.map +1 -0
  641. package/lib/typescript/date-time-field/context.d.ts +27 -0
  642. package/lib/typescript/date-time-field/context.d.ts.map +1 -0
  643. package/lib/typescript/date-time-field/index.d.ts +8 -0
  644. package/lib/typescript/date-time-field/index.d.ts.map +1 -0
  645. package/lib/typescript/date-time-field/useDateTimeFieldSegmentState.d.ts +26 -0
  646. package/lib/typescript/date-time-field/useDateTimeFieldSegmentState.d.ts.map +1 -0
  647. package/lib/typescript/date-time-list/DateTimeListRoot.d.ts +42 -0
  648. package/lib/typescript/date-time-list/DateTimeListRoot.d.ts.map +1 -0
  649. package/lib/typescript/date-time-list/context.d.ts +29 -0
  650. package/lib/typescript/date-time-list/context.d.ts.map +1 -0
  651. package/lib/typescript/date-time-list/index.d.ts +4 -0
  652. package/lib/typescript/date-time-list/index.d.ts.map +1 -0
  653. package/lib/typescript/date-time-picker/DateTimePickerRoot.d.ts +36 -0
  654. package/lib/typescript/date-time-picker/DateTimePickerRoot.d.ts.map +1 -0
  655. package/lib/typescript/date-time-picker/context.d.ts +25 -0
  656. package/lib/typescript/date-time-picker/context.d.ts.map +1 -0
  657. package/lib/typescript/date-time-picker/index.d.ts +4 -0
  658. package/lib/typescript/date-time-picker/index.d.ts.map +1 -0
  659. package/lib/typescript/dialog/DialogContent.d.ts +16 -0
  660. package/lib/typescript/dialog/DialogContent.d.ts.map +1 -0
  661. package/lib/typescript/dialog/DialogOverlay.d.ts +11 -0
  662. package/lib/typescript/dialog/DialogOverlay.d.ts.map +1 -0
  663. package/lib/typescript/dialog/DialogPopup.d.ts.map +1 -1
  664. package/lib/typescript/dialog/DialogPortal.d.ts +16 -0
  665. package/lib/typescript/dialog/DialogPortal.d.ts.map +1 -0
  666. package/lib/typescript/dialog/index.d.ts +4 -1
  667. package/lib/typescript/dialog/index.d.ts.map +1 -1
  668. package/lib/typescript/dialog/types.d.ts +31 -1
  669. package/lib/typescript/dialog/types.d.ts.map +1 -1
  670. package/lib/typescript/form/FormRoot.web.d.ts +2 -0
  671. package/lib/typescript/form/FormRoot.web.d.ts.map +1 -1
  672. package/lib/typescript/index.d.ts +20 -1
  673. package/lib/typescript/index.d.ts.map +1 -1
  674. package/lib/typescript/input/types.d.ts +8 -2
  675. package/lib/typescript/input/types.d.ts.map +1 -1
  676. package/lib/typescript/link/types.d.ts +20 -0
  677. package/lib/typescript/link/types.d.ts.map +1 -1
  678. package/lib/typescript/menu/MenuCheckboxItem.d.ts +6 -0
  679. package/lib/typescript/menu/MenuCheckboxItem.d.ts.map +1 -0
  680. package/lib/typescript/menu/MenuItem.d.ts +8 -0
  681. package/lib/typescript/menu/MenuItem.d.ts.map +1 -0
  682. package/lib/typescript/menu/MenuOverlayRoot.d.ts +8 -0
  683. package/lib/typescript/menu/MenuOverlayRoot.d.ts.map +1 -0
  684. package/lib/typescript/menu/MenuPopup.d.ts +8 -0
  685. package/lib/typescript/menu/MenuPopup.d.ts.map +1 -0
  686. package/lib/typescript/menu/MenuRadioGroup.d.ts +8 -0
  687. package/lib/typescript/menu/MenuRadioGroup.d.ts.map +1 -0
  688. package/lib/typescript/menu/MenuRadioItem.d.ts +6 -0
  689. package/lib/typescript/menu/MenuRadioItem.d.ts.map +1 -0
  690. package/lib/typescript/menu/MenuRoot.d.ts +8 -0
  691. package/lib/typescript/menu/MenuRoot.d.ts.map +1 -0
  692. package/lib/typescript/menu/MenuTrigger.d.ts +7 -0
  693. package/lib/typescript/menu/MenuTrigger.d.ts.map +1 -0
  694. package/lib/typescript/menu/context.d.ts +15 -0
  695. package/lib/typescript/menu/context.d.ts.map +1 -0
  696. package/lib/typescript/menu/index.d.ts +12 -0
  697. package/lib/typescript/menu/index.d.ts.map +1 -0
  698. package/lib/typescript/menu/overlayContext.d.ts +35 -0
  699. package/lib/typescript/menu/overlayContext.d.ts.map +1 -0
  700. package/lib/typescript/menu/types.d.ts +104 -0
  701. package/lib/typescript/menu/types.d.ts.map +1 -0
  702. package/lib/typescript/menu/useMenuNavigation.d.ts +16 -0
  703. package/lib/typescript/menu/useMenuNavigation.d.ts.map +1 -0
  704. package/lib/typescript/menu/useMenuOverlayLifecycle.d.ts +15 -0
  705. package/lib/typescript/menu/useMenuOverlayLifecycle.d.ts.map +1 -0
  706. package/lib/typescript/menu/useMenuTrigger.d.ts +35 -0
  707. package/lib/typescript/menu/useMenuTrigger.d.ts.map +1 -0
  708. package/lib/typescript/month-calendar/MonthCalendarCell.d.ts +9 -0
  709. package/lib/typescript/month-calendar/MonthCalendarCell.d.ts.map +1 -0
  710. package/lib/typescript/month-calendar/MonthCalendarRoot.d.ts +30 -0
  711. package/lib/typescript/month-calendar/MonthCalendarRoot.d.ts.map +1 -0
  712. package/lib/typescript/month-calendar/MonthCalendarYearCell.d.ts +9 -0
  713. package/lib/typescript/month-calendar/MonthCalendarYearCell.d.ts.map +1 -0
  714. package/lib/typescript/month-calendar/context.d.ts +20 -0
  715. package/lib/typescript/month-calendar/context.d.ts.map +1 -0
  716. package/lib/typescript/month-calendar/index.d.ts +7 -0
  717. package/lib/typescript/month-calendar/index.d.ts.map +1 -0
  718. package/lib/typescript/month-picker/MonthPickerRoot.d.ts +29 -0
  719. package/lib/typescript/month-picker/MonthPickerRoot.d.ts.map +1 -0
  720. package/lib/typescript/month-picker/context.d.ts +23 -0
  721. package/lib/typescript/month-picker/context.d.ts.map +1 -0
  722. package/lib/typescript/month-picker/index.d.ts +4 -0
  723. package/lib/typescript/month-picker/index.d.ts.map +1 -0
  724. package/lib/typescript/overlay/OverlayContainer.d.ts +1 -1
  725. package/lib/typescript/overlay/OverlayContainer.d.ts.map +1 -1
  726. package/lib/typescript/overlay/OverlayStack.d.ts +46 -0
  727. package/lib/typescript/overlay/OverlayStack.d.ts.map +1 -0
  728. package/lib/typescript/overlay/constants.d.ts +11 -0
  729. package/lib/typescript/overlay/constants.d.ts.map +1 -0
  730. package/lib/typescript/overlay/getAnchoredOverlayPosition.d.ts +45 -0
  731. package/lib/typescript/overlay/getAnchoredOverlayPosition.d.ts.map +1 -0
  732. package/lib/typescript/overlay/index.d.ts +5 -1
  733. package/lib/typescript/overlay/index.d.ts.map +1 -1
  734. package/lib/typescript/overlay/useAnchorPosition.d.ts +7 -1
  735. package/lib/typescript/overlay/useAnchorPosition.d.ts.map +1 -1
  736. package/lib/typescript/overlay/useAnchoredOverlay.d.ts +15 -0
  737. package/lib/typescript/overlay/useAnchoredOverlay.d.ts.map +1 -0
  738. package/lib/typescript/overlay/useDismissOverlay.d.ts +2 -1
  739. package/lib/typescript/overlay/useDismissOverlay.d.ts.map +1 -1
  740. package/lib/typescript/overlay/useDismissOverlay.web.d.ts +2 -1
  741. package/lib/typescript/overlay/useDismissOverlay.web.d.ts.map +1 -1
  742. package/lib/typescript/overlay/useEscapeKey.d.ts +2 -1
  743. package/lib/typescript/overlay/useEscapeKey.d.ts.map +1 -1
  744. package/lib/typescript/overlay/useEscapeKey.web.d.ts +2 -1
  745. package/lib/typescript/overlay/useEscapeKey.web.d.ts.map +1 -1
  746. package/lib/typescript/overlay/useOverlayPosition.d.ts +5 -1
  747. package/lib/typescript/overlay/useOverlayPosition.d.ts.map +1 -1
  748. package/lib/typescript/portal/portal.d.ts +3 -0
  749. package/lib/typescript/portal/portal.d.ts.map +1 -1
  750. package/lib/typescript/radio/RadioGroup.d.ts.map +1 -1
  751. package/lib/typescript/radio/RadioRoot.web.d.ts +8 -0
  752. package/lib/typescript/radio/RadioRoot.web.d.ts.map +1 -1
  753. package/lib/typescript/radio/context.d.ts +6 -1
  754. package/lib/typescript/radio/context.d.ts.map +1 -1
  755. package/lib/typescript/radio/types.d.ts +7 -0
  756. package/lib/typescript/radio/types.d.ts.map +1 -1
  757. package/lib/typescript/radio/useRadioGroupNavigation.d.ts +17 -0
  758. package/lib/typescript/radio/useRadioGroupNavigation.d.ts.map +1 -0
  759. package/lib/typescript/radio/useRadioRoot.d.ts +4 -18
  760. package/lib/typescript/radio/useRadioRoot.d.ts.map +1 -1
  761. package/lib/typescript/range-calendar/RangeCalendarRoot.d.ts +34 -0
  762. package/lib/typescript/range-calendar/RangeCalendarRoot.d.ts.map +1 -0
  763. package/lib/typescript/range-calendar/context.d.ts +26 -0
  764. package/lib/typescript/range-calendar/context.d.ts.map +1 -0
  765. package/lib/typescript/range-calendar/index.d.ts +5 -0
  766. package/lib/typescript/range-calendar/index.d.ts.map +1 -0
  767. package/lib/typescript/select/SelectContent.d.ts.map +1 -1
  768. package/lib/typescript/select/SelectTrigger.web.d.ts.map +1 -1
  769. package/lib/typescript/select/types.d.ts +16 -1
  770. package/lib/typescript/select/types.d.ts.map +1 -1
  771. package/lib/typescript/select/useListboxNavigation.d.ts.map +1 -1
  772. package/lib/typescript/slider/SliderRail.d.ts +6 -0
  773. package/lib/typescript/slider/SliderRail.d.ts.map +1 -0
  774. package/lib/typescript/slider/SliderRoot.d.ts +7 -0
  775. package/lib/typescript/slider/SliderRoot.d.ts.map +1 -0
  776. package/lib/typescript/slider/SliderThumb.d.ts +6 -0
  777. package/lib/typescript/slider/SliderThumb.d.ts.map +1 -0
  778. package/lib/typescript/slider/context.d.ts +81 -0
  779. package/lib/typescript/slider/context.d.ts.map +1 -0
  780. package/lib/typescript/slider/index.d.ts +8 -0
  781. package/lib/typescript/slider/index.d.ts.map +1 -0
  782. package/lib/typescript/slider/types.d.ts +73 -0
  783. package/lib/typescript/slider/types.d.ts.map +1 -0
  784. package/lib/typescript/slider/useSliderPointer.d.ts +23 -0
  785. package/lib/typescript/slider/useSliderPointer.d.ts.map +1 -0
  786. package/lib/typescript/slider/utils.d.ts +31 -0
  787. package/lib/typescript/slider/utils.d.ts.map +1 -0
  788. package/lib/typescript/tabs/Tab.d.ts +8 -0
  789. package/lib/typescript/tabs/Tab.d.ts.map +1 -0
  790. package/lib/typescript/tabs/TabPanel.d.ts +9 -0
  791. package/lib/typescript/tabs/TabPanel.d.ts.map +1 -0
  792. package/lib/typescript/tabs/TabsList.d.ts +8 -0
  793. package/lib/typescript/tabs/TabsList.d.ts.map +1 -0
  794. package/lib/typescript/tabs/TabsRoot.d.ts +8 -0
  795. package/lib/typescript/tabs/TabsRoot.d.ts.map +1 -0
  796. package/lib/typescript/tabs/context.d.ts +14 -0
  797. package/lib/typescript/tabs/context.d.ts.map +1 -0
  798. package/lib/typescript/tabs/index.d.ts +7 -0
  799. package/lib/typescript/tabs/index.d.ts.map +1 -0
  800. package/lib/typescript/tabs/types.d.ts +88 -0
  801. package/lib/typescript/tabs/types.d.ts.map +1 -0
  802. package/lib/typescript/tabs/useTabsNavigation.d.ts +14 -0
  803. package/lib/typescript/tabs/useTabsNavigation.d.ts.map +1 -0
  804. package/lib/typescript/tooltip/TooltipContent.d.ts +6 -0
  805. package/lib/typescript/tooltip/TooltipContent.d.ts.map +1 -0
  806. package/lib/typescript/tooltip/TooltipRoot.d.ts +7 -0
  807. package/lib/typescript/tooltip/TooltipRoot.d.ts.map +1 -0
  808. package/lib/typescript/tooltip/TooltipTrigger.d.ts +5 -0
  809. package/lib/typescript/tooltip/TooltipTrigger.d.ts.map +1 -0
  810. package/lib/typescript/tooltip/context.d.ts +6 -0
  811. package/lib/typescript/tooltip/context.d.ts.map +1 -0
  812. package/lib/typescript/tooltip/getTooltipPosition.d.ts +18 -0
  813. package/lib/typescript/tooltip/getTooltipPosition.d.ts.map +1 -0
  814. package/lib/typescript/tooltip/index.d.ts +7 -0
  815. package/lib/typescript/tooltip/index.d.ts.map +1 -0
  816. package/lib/typescript/tooltip/types.d.ts +78 -0
  817. package/lib/typescript/tooltip/types.d.ts.map +1 -0
  818. package/lib/typescript/utils/accessibleLabel.d.ts +13 -0
  819. package/lib/typescript/utils/accessibleLabel.d.ts.map +1 -0
  820. package/lib/typescript/utils/assignRef.d.ts +3 -0
  821. package/lib/typescript/utils/assignRef.d.ts.map +1 -0
  822. package/lib/typescript/utils/createPortal.d.ts.map +1 -1
  823. package/lib/typescript/utils/createPortal.web.d.ts +17 -0
  824. package/lib/typescript/utils/createPortal.web.d.ts.map +1 -0
  825. package/lib/typescript/utils/domDataAttributes.d.ts +3 -2
  826. package/lib/typescript/utils/domDataAttributes.d.ts.map +1 -1
  827. package/lib/typescript/utils/mapViewPropsToDom.d.ts +12 -0
  828. package/lib/typescript/utils/mapViewPropsToDom.d.ts.map +1 -0
  829. package/package.json +15 -6
  830. package/src/accordion/Accordion.tsx +96 -0
  831. package/src/accordion/AccordionContent.tsx +90 -0
  832. package/src/accordion/AccordionItem.tsx +76 -0
  833. package/src/accordion/AccordionTrigger.tsx +99 -0
  834. package/src/accordion/context.tsx +8 -0
  835. package/src/accordion/index.ts +23 -0
  836. package/src/accordion/types.ts +70 -0
  837. package/src/accordion/utils.ts +22 -0
  838. package/src/breadcrumbs/BreadcrumbsRoot.tsx +64 -0
  839. package/src/breadcrumbs/context.tsx +5 -0
  840. package/src/breadcrumbs/index.ts +8 -0
  841. package/src/breadcrumbs/types.ts +31 -0
  842. package/src/button/ButtonRoot.tsx +43 -3
  843. package/src/button/types.ts +4 -0
  844. package/src/calendar/CalendarGrid.tsx +29 -0
  845. package/src/calendar/CalendarRoot.tsx +138 -0
  846. package/src/calendar/context.tsx +28 -0
  847. package/src/calendar/index.ts +4 -0
  848. package/src/calendar/types.ts +30 -0
  849. package/src/checkbox/CheckboxGroup.tsx +23 -5
  850. package/src/checkbox/CheckboxRoot.tsx +1 -1
  851. package/src/checkbox/CheckboxRoot.web.tsx +105 -29
  852. package/src/checkbox/types.ts +1 -0
  853. package/src/checkbox/useCheckboxRoot.ts +45 -17
  854. package/src/chip/ChipRoot.tsx +2 -2
  855. package/src/date-field/DateFieldHiddenInput.tsx +152 -0
  856. package/src/date-field/DateFieldInput.tsx +138 -0
  857. package/src/date-field/DateFieldRoot.tsx +117 -0
  858. package/src/date-field/DateFieldSegment.tsx +97 -0
  859. package/src/date-field/context.tsx +48 -0
  860. package/src/date-field/index.ts +8 -0
  861. package/src/date-field/segmentIndex.tsx +17 -0
  862. package/src/date-field/segmentKeyboard.ts +207 -0
  863. package/src/date-field/types.ts +40 -0
  864. package/src/date-field/useDateFieldSegmentState.ts +455 -0
  865. package/src/date-field/useRangeDateFieldBridge.ts +78 -0
  866. package/src/date-picker/DatePickerRoot.tsx +186 -0
  867. package/src/date-picker/context.tsx +34 -0
  868. package/src/date-picker/index.ts +4 -0
  869. package/src/date-range-picker/DateRangePickerRoot.tsx +236 -0
  870. package/src/date-range-picker/context.tsx +48 -0
  871. package/src/date-range-picker/index.ts +8 -0
  872. package/src/date-time-field/DateTimeFieldHiddenInput.tsx +156 -0
  873. package/src/date-time-field/DateTimeFieldInput.tsx +119 -0
  874. package/src/date-time-field/DateTimeFieldRoot.tsx +209 -0
  875. package/src/date-time-field/DateTimeFieldSegment.tsx +95 -0
  876. package/src/date-time-field/context.tsx +41 -0
  877. package/src/date-time-field/index.ts +7 -0
  878. package/src/date-time-field/useDateTimeFieldSegmentState.ts +672 -0
  879. package/src/date-time-list/DateTimeListRoot.tsx +530 -0
  880. package/src/date-time-list/context.tsx +45 -0
  881. package/src/date-time-list/index.ts +16 -0
  882. package/src/date-time-picker/DateTimePickerRoot.tsx +210 -0
  883. package/src/date-time-picker/context.tsx +33 -0
  884. package/src/date-time-picker/index.ts +7 -0
  885. package/src/dialog/DialogContent.tsx +90 -0
  886. package/src/dialog/DialogOverlay.tsx +51 -0
  887. package/src/dialog/DialogPopup.tsx +8 -3
  888. package/src/dialog/DialogPortal.tsx +29 -0
  889. package/src/dialog/DialogRoot.tsx +1 -1
  890. package/src/dialog/index.tsx +6 -0
  891. package/src/dialog/types.ts +34 -1
  892. package/src/form/FormRoot.web.tsx +12 -6
  893. package/src/index.ts +53 -1
  894. package/src/input/types.ts +8 -2
  895. package/src/link/types.ts +20 -0
  896. package/src/menu/MenuCheckboxItem.tsx +51 -0
  897. package/src/menu/MenuItem.tsx +197 -0
  898. package/src/menu/MenuOverlayRoot.tsx +100 -0
  899. package/src/menu/MenuPopup.tsx +81 -0
  900. package/src/menu/MenuRadioGroup.tsx +48 -0
  901. package/src/menu/MenuRadioItem.tsx +32 -0
  902. package/src/menu/MenuRoot.tsx +190 -0
  903. package/src/menu/MenuTrigger.tsx +57 -0
  904. package/src/menu/context.tsx +38 -0
  905. package/src/menu/index.ts +36 -0
  906. package/src/menu/overlayContext.tsx +61 -0
  907. package/src/menu/types.ts +119 -0
  908. package/src/menu/useMenuNavigation.ts +102 -0
  909. package/src/menu/useMenuOverlayLifecycle.ts +77 -0
  910. package/src/menu/useMenuTrigger.ts +161 -0
  911. package/src/month-calendar/MonthCalendarCell.tsx +53 -0
  912. package/src/month-calendar/MonthCalendarRoot.tsx +153 -0
  913. package/src/month-calendar/MonthCalendarYearCell.tsx +54 -0
  914. package/src/month-calendar/context.tsx +30 -0
  915. package/src/month-calendar/index.ts +6 -0
  916. package/src/month-picker/MonthPickerRoot.tsx +183 -0
  917. package/src/month-picker/context.tsx +31 -0
  918. package/src/month-picker/index.ts +3 -0
  919. package/src/overlay/OverlayContainer.tsx +8 -3
  920. package/src/overlay/OverlayStack.tsx +202 -0
  921. package/src/overlay/constants.ts +11 -0
  922. package/src/overlay/getAnchoredOverlayPosition.ts +334 -0
  923. package/src/overlay/index.ts +29 -0
  924. package/src/overlay/useAnchorPosition.ts +93 -16
  925. package/src/overlay/useAnchoredOverlay.ts +150 -0
  926. package/src/overlay/useDismissOverlay.ts +10 -2
  927. package/src/overlay/useDismissOverlay.web.ts +19 -4
  928. package/src/overlay/useEscapeKey.ts +13 -1
  929. package/src/overlay/useEscapeKey.web.ts +13 -3
  930. package/src/overlay/useOverlayPosition.ts +40 -10
  931. package/src/portal/portal.tsx +148 -31
  932. package/src/radio/RadioGroup.tsx +84 -20
  933. package/src/radio/RadioRoot.web.tsx +136 -31
  934. package/src/radio/context.tsx +6 -1
  935. package/src/radio/types.ts +6 -0
  936. package/src/radio/useRadioGroupNavigation.ts +104 -0
  937. package/src/radio/useRadioRoot.ts +18 -11
  938. package/src/range-calendar/RangeCalendarRoot.tsx +213 -0
  939. package/src/range-calendar/context.tsx +33 -0
  940. package/src/range-calendar/index.ts +4 -0
  941. package/src/select/SelectContent.tsx +44 -17
  942. package/src/select/SelectRoot.tsx +1 -1
  943. package/src/select/SelectTrigger.web.tsx +16 -60
  944. package/src/select/types.ts +16 -1
  945. package/src/select/useListboxNavigation.ts +12 -9
  946. package/src/slider/SliderRail.tsx +191 -0
  947. package/src/slider/SliderRoot.tsx +385 -0
  948. package/src/slider/SliderThumb.tsx +420 -0
  949. package/src/slider/context.tsx +82 -0
  950. package/src/slider/index.ts +26 -0
  951. package/src/slider/types.ts +85 -0
  952. package/src/slider/useSliderPointer.ts +157 -0
  953. package/src/slider/utils.ts +257 -0
  954. package/src/tabs/Tab.tsx +158 -0
  955. package/src/tabs/TabPanel.tsx +52 -0
  956. package/src/tabs/TabsList.tsx +64 -0
  957. package/src/tabs/TabsRoot.tsx +115 -0
  958. package/src/tabs/context.tsx +10 -0
  959. package/src/tabs/index.ts +17 -0
  960. package/src/tabs/types.ts +93 -0
  961. package/src/tabs/useTabsNavigation.ts +97 -0
  962. package/src/tooltip/TooltipContent.tsx +117 -0
  963. package/src/tooltip/TooltipRoot.tsx +187 -0
  964. package/src/tooltip/TooltipTrigger.tsx +160 -0
  965. package/src/tooltip/context.tsx +5 -0
  966. package/src/tooltip/getTooltipPosition.ts +80 -0
  967. package/src/tooltip/index.ts +19 -0
  968. package/src/tooltip/types.ts +85 -0
  969. package/src/utils/accessibleLabel.ts +22 -0
  970. package/src/utils/assignRef.ts +11 -0
  971. package/src/utils/createPortal.ts +3 -1
  972. package/src/utils/createPortal.web.ts +18 -0
  973. package/src/utils/domDataAttributes.ts +9 -2
  974. package/src/utils/mapViewPropsToDom.ts +125 -0
@@ -0,0 +1,110 @@
1
+ "use strict";
2
+
3
+ import { useCallback, useEffect, useRef } from 'react';
4
+ import { Platform } from 'react-native';
5
+ import { clamp, getThumbTravel, pointerCoordToRatio, pointerCoordToVerticalRatio } from './utils';
6
+ export function getPointerCoords(nativeEvent) {
7
+ if (Platform.OS === 'web' && nativeEvent.clientX != null && nativeEvent.clientY != null) {
8
+ return {
9
+ x: nativeEvent.clientX,
10
+ y: nativeEvent.clientY
11
+ };
12
+ }
13
+ return {
14
+ x: nativeEvent.pageX ?? 0,
15
+ y: nativeEvent.pageY ?? 0
16
+ };
17
+ }
18
+ export function getRatioFromPagePoint(pageX, pageY, trackLayout, orientation, thumbSize) {
19
+ if (!trackLayout) {
20
+ return 0;
21
+ }
22
+ if (orientation === 'horizontal') {
23
+ return pointerCoordToRatio(pageX, trackLayout.x, trackLayout.width, thumbSize);
24
+ }
25
+ return pointerCoordToVerticalRatio(pageY, trackLayout.y, trackLayout.height, thumbSize);
26
+ }
27
+ export function useWebSliderDrag({
28
+ isDisabled,
29
+ setIsDragging,
30
+ setValueFromRatio,
31
+ trackLayout,
32
+ orientation,
33
+ thumbSize
34
+ }) {
35
+ const draggingRef = useRef(false);
36
+ const lastRatioRef = useRef(0);
37
+ const dragContextRef = useRef(null);
38
+ const cleanupRef = useRef(null);
39
+ useEffect(() => {
40
+ return () => {
41
+ cleanupRef.current?.();
42
+ cleanupRef.current = null;
43
+ };
44
+ }, []);
45
+ const endDrag = useCallback(() => {
46
+ if (!draggingRef.current) {
47
+ return;
48
+ }
49
+ draggingRef.current = false;
50
+ dragContextRef.current = null;
51
+ setValueFromRatio(lastRatioRef.current, true);
52
+ setIsDragging(false);
53
+ }, [setIsDragging, setValueFromRatio]);
54
+ const startDrag = useCallback((pageX, pageY, anchorRatio, trackLayoutOverride) => {
55
+ if (isDisabled || Platform.OS !== 'web' || typeof window === 'undefined') {
56
+ return;
57
+ }
58
+ const layout = trackLayoutOverride ?? trackLayout;
59
+ if (!layout) {
60
+ return;
61
+ }
62
+ const trackSize = orientation === 'horizontal' ? layout.width : layout.height;
63
+ const travel = getThumbTravel(trackSize, thumbSize);
64
+ if (travel <= 0) {
65
+ return;
66
+ }
67
+ const startPointer = orientation === 'horizontal' ? pageX : pageY;
68
+ const startRatio = anchorRatio != null ? clamp(anchorRatio, 0, 1) : getRatioFromPagePoint(pageX, pageY, layout, orientation, thumbSize);
69
+ lastRatioRef.current = startRatio;
70
+ draggingRef.current = true;
71
+ dragContextRef.current = {
72
+ startPointer,
73
+ startRatio,
74
+ travel
75
+ };
76
+ setIsDragging(true);
77
+ setValueFromRatio(startRatio);
78
+ const onMove = event => {
79
+ if (!draggingRef.current || !dragContextRef.current) {
80
+ return;
81
+ }
82
+ event.preventDefault();
83
+ const pointer = orientation === 'horizontal' ? event.clientX : event.clientY;
84
+ const delta = pointer - dragContextRef.current.startPointer;
85
+ const deltaAlongTrack = orientation === 'horizontal' ? delta : -delta;
86
+ const nextRatio = clamp(dragContextRef.current.startRatio + deltaAlongTrack / dragContextRef.current.travel, 0, 1);
87
+ lastRatioRef.current = nextRatio;
88
+ setValueFromRatio(nextRatio);
89
+ };
90
+ const onUp = () => {
91
+ cleanupRef.current = null;
92
+ window.removeEventListener('pointermove', onMove);
93
+ window.removeEventListener('pointerup', onUp);
94
+ window.removeEventListener('pointercancel', onUp);
95
+ endDrag();
96
+ };
97
+ window.addEventListener('pointermove', onMove);
98
+ window.addEventListener('pointerup', onUp);
99
+ window.addEventListener('pointercancel', onUp);
100
+ cleanupRef.current = () => {
101
+ window.removeEventListener('pointermove', onMove);
102
+ window.removeEventListener('pointerup', onUp);
103
+ window.removeEventListener('pointercancel', onUp);
104
+ };
105
+ }, [endDrag, isDisabled, orientation, setIsDragging, setValueFromRatio, thumbSize, trackLayout]);
106
+ return {
107
+ startDrag
108
+ };
109
+ }
110
+ //# sourceMappingURL=useSliderPointer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useCallback","useEffect","useRef","Platform","clamp","getThumbTravel","pointerCoordToRatio","pointerCoordToVerticalRatio","getPointerCoords","nativeEvent","OS","clientX","clientY","x","y","pageX","pageY","getRatioFromPagePoint","trackLayout","orientation","thumbSize","width","height","useWebSliderDrag","isDisabled","setIsDragging","setValueFromRatio","draggingRef","lastRatioRef","dragContextRef","cleanupRef","current","endDrag","startDrag","anchorRatio","trackLayoutOverride","window","layout","trackSize","travel","startPointer","startRatio","onMove","event","preventDefault","pointer","delta","deltaAlongTrack","nextRatio","onUp","removeEventListener","addEventListener"],"sourceRoot":"../../../src","sources":["slider/useSliderPointer.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,201 @@
1
+ "use strict";
2
+
3
+ function toPercentDimension(percent) {
4
+ return `${String(percent)}%`;
5
+ }
6
+ export const SLIDER_MARKER_SIZE = 3;
7
+ export function clamp(value, min, max) {
8
+ return Math.min(max, Math.max(min, value));
9
+ }
10
+ export function getThumbTravel(trackSize, _thumbSize) {
11
+ return Math.max(trackSize, 0);
12
+ }
13
+
14
+ /** Thumb leading-edge offset along the track axis (center-based). */
15
+ export function percentToThumbOffset(percent, trackSize, thumbSize) {
16
+ if (trackSize <= 0) return 0;
17
+ return clamp(percent, 0, 100) / 100 * trackSize - thumbSize / 2;
18
+ }
19
+
20
+ /** Filled track extent to the thumb center. */
21
+ export function percentToFillExtent(percent, trackSize, _thumbSize) {
22
+ if (trackSize <= 0) return 0;
23
+ return clamp(percent, 0, 100) / 100 * trackSize;
24
+ }
25
+
26
+ /** Map a pointer coordinate on the track axis to a 0–1 ratio. */
27
+ export function pointerCoordToRatio(pointerCoord, trackStart, trackSize, _thumbSize) {
28
+ if (trackSize <= 0) {
29
+ return 0;
30
+ }
31
+ return clamp((pointerCoord - trackStart) / trackSize, 0, 1);
32
+ }
33
+
34
+ /** Vertical slider: bottom = min (0), top = max (1). */
35
+ export function pointerCoordToVerticalRatio(pointerCoord, trackStart, trackSize, _thumbSize) {
36
+ if (trackSize <= 0) {
37
+ return 0;
38
+ }
39
+ return clamp((trackStart + trackSize - pointerCoord) / trackSize, 0, 1);
40
+ }
41
+ export function snapToStep(value, min, max, step) {
42
+ if (step <= 0) {
43
+ return clamp(value, min, max);
44
+ }
45
+ const stepped = min + Math.round((value - min) / step) * step;
46
+ return clamp(stepped, min, max);
47
+ }
48
+ export function valueToPercent(value, min, max) {
49
+ if (max <= min) {
50
+ return 0;
51
+ }
52
+ return (clamp(value, min, max) - min) / (max - min) * 100;
53
+ }
54
+ export function percentToValue(percent, min, max, step) {
55
+ const ratio = clamp(percent, 0, 100) / 100;
56
+ return snapToStep(min + ratio * (max - min), min, max, step);
57
+ }
58
+ export function formatSliderValue(value) {
59
+ return Number.isInteger(value) ? String(value) : value.toFixed(1);
60
+ }
61
+ export function arraysEqual(a, b) {
62
+ if (a.length !== b.length) {
63
+ return false;
64
+ }
65
+ return a.every((value, index) => value === b[index]);
66
+ }
67
+ export function normalizeSliderValue(input, min, defaultScalar) {
68
+ if (input == null) {
69
+ return [defaultScalar ?? min];
70
+ }
71
+ if (Array.isArray(input)) {
72
+ return [...input];
73
+ }
74
+ return [input];
75
+ }
76
+ export function denormalizeSliderValue(values, asArray) {
77
+ return asArray ? [...values] : values[0];
78
+ }
79
+ export function getClosestValueIndex(values, target) {
80
+ if (values.length === 0) {
81
+ return 0;
82
+ }
83
+ let closestIndex = 0;
84
+ let closestDistance = Math.abs(values[0] - target);
85
+ for (let index = 1; index < values.length; index += 1) {
86
+ const distance = Math.abs(values[index] - target);
87
+ if (distance < closestDistance) {
88
+ closestDistance = distance;
89
+ closestIndex = index;
90
+ }
91
+ }
92
+ return closestIndex;
93
+ }
94
+ export function getFillExtent(startPercent, endPercent, trackSize, thumbSize) {
95
+ if (trackSize <= 0) {
96
+ return {
97
+ offset: 0,
98
+ length: 0
99
+ };
100
+ }
101
+ const start = clamp(startPercent, 0, 100) / 100 * trackSize;
102
+ const end = clamp(endPercent, 0, 100) / 100 * trackSize;
103
+ const span = end - start;
104
+ if (span > 0) {
105
+ return {
106
+ offset: start,
107
+ length: span
108
+ };
109
+ }
110
+ if (start <= 0) {
111
+ return {
112
+ offset: 0,
113
+ length: 0
114
+ };
115
+ }
116
+ const halfThumb = Math.max(thumbSize, 0) / 2;
117
+ const offset = clamp(start - halfThumb, 0, trackSize);
118
+ const endUnderThumb = clamp(start + halfThumb, 0, trackSize);
119
+ return {
120
+ offset,
121
+ length: endUnderThumb - offset
122
+ };
123
+ }
124
+ export function getMarkerStepValues(min, max, step) {
125
+ if (step <= 0 || max <= min) {
126
+ return [];
127
+ }
128
+ const decimals = getDecimalPlaces(step);
129
+ const stepCount = Math.floor((max - min) / step);
130
+ const values = Array.from({
131
+ length: stepCount + 1
132
+ }, (_, index) => roundTo(min + index * step, decimals));
133
+ if (values[values.length - 1] < max) {
134
+ values.push(max);
135
+ }
136
+ return values;
137
+ }
138
+ function getDecimalPlaces(n) {
139
+ const str = String(n);
140
+ const dotIndex = str.indexOf('.');
141
+ return dotIndex === -1 ? 0 : str.length - dotIndex - 1;
142
+ }
143
+ function roundTo(value, decimals) {
144
+ const factor = 10 ** decimals;
145
+ return Math.round(value * factor) / factor;
146
+ }
147
+
148
+ /** Marker leading-edge offset (center-aligned to the thumb coordinate system). */
149
+ export function percentToMarkerCenterOffset(percent, trackSize, markerSize = SLIDER_MARKER_SIZE) {
150
+ if (trackSize <= 0) return 0;
151
+ return clamp(percent, 0, 100) / 100 * trackSize - markerSize / 2;
152
+ }
153
+ export function getMarkerPositionStyle(percent, orientation, trackLayout, _thumbSize, markerSize = SLIDER_MARKER_SIZE) {
154
+ const trackSize = trackLayout == null ? 0 : orientation === 'horizontal' ? trackLayout.width : trackLayout.height;
155
+ if (trackSize > 0) {
156
+ const offset = percentToMarkerCenterOffset(percent, trackSize, markerSize);
157
+ if (orientation === 'vertical') {
158
+ return {
159
+ position: 'absolute',
160
+ left: '50%',
161
+ bottom: offset,
162
+ width: markerSize,
163
+ height: markerSize,
164
+ marginLeft: -markerSize / 2
165
+ };
166
+ }
167
+ return {
168
+ position: 'absolute',
169
+ top: '50%',
170
+ left: offset,
171
+ width: markerSize,
172
+ height: markerSize,
173
+ marginTop: -markerSize / 2
174
+ };
175
+ }
176
+ if (orientation === 'vertical') {
177
+ return {
178
+ position: 'absolute',
179
+ left: '50%',
180
+ bottom: toPercentDimension(percent),
181
+ width: markerSize,
182
+ height: markerSize,
183
+ marginLeft: -markerSize / 2,
184
+ transform: [{
185
+ translateY: markerSize / 2
186
+ }]
187
+ };
188
+ }
189
+ return {
190
+ position: 'absolute',
191
+ top: '50%',
192
+ left: toPercentDimension(percent),
193
+ width: markerSize,
194
+ height: markerSize,
195
+ marginTop: -markerSize / 2,
196
+ transform: [{
197
+ translateX: -markerSize / 2
198
+ }]
199
+ };
200
+ }
201
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["toPercentDimension","percent","String","SLIDER_MARKER_SIZE","clamp","value","min","max","Math","getThumbTravel","trackSize","_thumbSize","percentToThumbOffset","thumbSize","percentToFillExtent","pointerCoordToRatio","pointerCoord","trackStart","pointerCoordToVerticalRatio","snapToStep","step","stepped","round","valueToPercent","percentToValue","ratio","formatSliderValue","Number","isInteger","toFixed","arraysEqual","a","b","length","every","index","normalizeSliderValue","input","defaultScalar","Array","isArray","denormalizeSliderValue","values","asArray","getClosestValueIndex","target","closestIndex","closestDistance","abs","distance","getFillExtent","startPercent","endPercent","offset","start","end","span","halfThumb","endUnderThumb","getMarkerStepValues","decimals","getDecimalPlaces","stepCount","floor","from","_","roundTo","push","n","str","dotIndex","indexOf","factor","percentToMarkerCenterOffset","markerSize","getMarkerPositionStyle","orientation","trackLayout","width","height","position","left","bottom","marginLeft","top","marginTop","transform","translateY","translateX"],"sourceRoot":"../../../src","sources":["slider/utils.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,118 @@
1
+ "use strict";
2
+
3
+ import { forwardRef, useCallback, useEffect, useMemo, useRef } from 'react';
4
+ import { Platform, Pressable } from 'react-native';
5
+ import { composeEventHandlers, mergeRefs } from '@cdx-ui/utils';
6
+ import { useFocus, useFocusRing } from '@react-native-aria/focus';
7
+ import { useHover, usePress } from '@react-native-aria/interactions';
8
+ import { Slot } from '../slot';
9
+ import { dataAttributes, mergeDataAttributes } from '../utils/dataAttributes';
10
+ import { TabProvider, useTabsContext } from './context';
11
+ import { jsx as _jsx } from "react/jsx-runtime";
12
+ export const Tab = /*#__PURE__*/forwardRef(({
13
+ asChild,
14
+ children,
15
+ value: tabValue,
16
+ disabled: disabledProp = false,
17
+ isHovered: isHoveredProp,
18
+ isActive: isActiveProp,
19
+ isFocused: isFocusedProp,
20
+ isFocusVisible: isFocusVisibleProp,
21
+ isDisabled: isDisabledProp,
22
+ ...props
23
+ }, ref) => {
24
+ const {
25
+ value: selectedValue,
26
+ onValueChange,
27
+ disabled: contextDisabled,
28
+ listId,
29
+ registerTab,
30
+ unregisterTab,
31
+ focusedValue,
32
+ setFocusedValue
33
+ } = useTabsContext();
34
+ const disabled = contextDisabled || !!disabledProp || !!isDisabledProp;
35
+ const selected = selectedValue === tabValue;
36
+ const nodeRef = useRef(null);
37
+ const mergedRef = mergeRefs(ref, nodeRef);
38
+ useEffect(() => {
39
+ registerTab(tabValue, {
40
+ disabled,
41
+ node: nodeRef.current
42
+ });
43
+ return () => unregisterTab(tabValue);
44
+ }, [tabValue, disabled, registerTab, unregisterTab]);
45
+ const {
46
+ isFocusVisible,
47
+ focusProps: focusRingProps
48
+ } = useFocusRing();
49
+ const {
50
+ pressProps,
51
+ isPressed: isActive
52
+ } = usePress({
53
+ isDisabled: disabled
54
+ });
55
+ const {
56
+ isFocused,
57
+ focusProps
58
+ } = useFocus();
59
+ const {
60
+ isHovered,
61
+ hoverProps
62
+ } = useHover();
63
+ const handlePress = useCallback(() => {
64
+ if (!disabled) {
65
+ setFocusedValue(tabValue);
66
+ onValueChange(tabValue);
67
+ }
68
+ }, [disabled, tabValue, onValueChange, setFocusedValue]);
69
+ const interactionState = useMemo(() => ({
70
+ hover: !!(isHoveredProp || isHovered),
71
+ focus: !!(isFocusedProp || isFocused),
72
+ active: !!(isActiveProp || isActive),
73
+ disabled: !!disabled,
74
+ focusVisible: !!(isFocusVisibleProp || isFocusVisible),
75
+ selected
76
+ }), [isHoveredProp, isHovered, isFocusedProp, isFocused, isActiveProp, isActive, disabled, isFocusVisibleProp, isFocusVisible, selected]);
77
+ const isRovingTabStop = (focusedValue ?? selectedValue) === tabValue;
78
+ const webProps = Platform.OS === 'web' ? {
79
+ tabIndex: isRovingTabStop ? 0 : -1
80
+ } : {};
81
+ const Comp = asChild ? Slot : Pressable;
82
+ return /*#__PURE__*/_jsx(TabProvider, {
83
+ value: interactionState,
84
+ children: /*#__PURE__*/_jsx(Comp, {
85
+ ref: mergedRef,
86
+ role: "tab",
87
+ id: `${listId}-tab-${tabValue}`,
88
+ "aria-selected": selected,
89
+ "aria-controls": `${listId}-panel-${tabValue}`,
90
+ "aria-disabled": disabled,
91
+ disabled: disabled,
92
+ accessibilityState: {
93
+ selected,
94
+ disabled
95
+ },
96
+ ...webProps,
97
+ ...props,
98
+ ...mergeDataAttributes(props, dataAttributes({
99
+ hover: interactionState.hover,
100
+ focus: interactionState.focus,
101
+ active: interactionState.active,
102
+ disabled: interactionState.disabled,
103
+ focusVisible: interactionState.focusVisible,
104
+ state: selected ? 'active' : 'inactive'
105
+ })),
106
+ onPress: composeEventHandlers(props?.onPress, handlePress),
107
+ onPressIn: composeEventHandlers(props?.onPressIn, pressProps.onPressIn),
108
+ onPressOut: composeEventHandlers(props?.onPressOut, pressProps.onPressOut),
109
+ onHoverIn: composeEventHandlers(props?.onHoverIn, hoverProps.onHoverIn),
110
+ onHoverOut: composeEventHandlers(props?.onHoverOut, hoverProps.onHoverOut),
111
+ onFocus: composeEventHandlers(props?.onFocus, focusProps.onFocus, focusRingProps.onFocus),
112
+ onBlur: composeEventHandlers(props?.onBlur, focusProps.onBlur, focusRingProps.onBlur),
113
+ children: children
114
+ })
115
+ });
116
+ });
117
+ Tab.displayName = 'Tab';
118
+ //# sourceMappingURL=Tab.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["forwardRef","useCallback","useEffect","useMemo","useRef","Platform","Pressable","composeEventHandlers","mergeRefs","useFocus","useFocusRing","useHover","usePress","Slot","dataAttributes","mergeDataAttributes","TabProvider","useTabsContext","jsx","_jsx","Tab","asChild","children","value","tabValue","disabled","disabledProp","isHovered","isHoveredProp","isActive","isActiveProp","isFocused","isFocusedProp","isFocusVisible","isFocusVisibleProp","isDisabled","isDisabledProp","props","ref","selectedValue","onValueChange","contextDisabled","listId","registerTab","unregisterTab","focusedValue","setFocusedValue","selected","nodeRef","mergedRef","node","current","focusProps","focusRingProps","pressProps","isPressed","hoverProps","handlePress","interactionState","hover","focus","active","focusVisible","isRovingTabStop","webProps","OS","tabIndex","Comp","role","id","accessibilityState","state","onPress","onPressIn","onPressOut","onHoverIn","onHoverOut","onFocus","onBlur","displayName"],"sourceRoot":"../../../src","sources":["tabs/Tab.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+
3
+ import { forwardRef } from 'react';
4
+ import { View } from 'react-native';
5
+ import { Slot } from '../slot';
6
+ import { dataAttributes, mergeDataAttributes } from '../utils/dataAttributes';
7
+ import { useTabsContext } from './context';
8
+ import { jsx as _jsx } from "react/jsx-runtime";
9
+ export const TabPanel = /*#__PURE__*/forwardRef(({
10
+ asChild,
11
+ children,
12
+ value: panelValue,
13
+ unmountWhenInactive = false,
14
+ style,
15
+ ...props
16
+ }, ref) => {
17
+ const {
18
+ value: selectedValue,
19
+ listId
20
+ } = useTabsContext();
21
+ const selected = selectedValue === panelValue;
22
+ if (!selected && unmountWhenInactive) {
23
+ return null;
24
+ }
25
+ const Comp = asChild ? Slot : View;
26
+ const hideFromAccessibility = selected ? null : {
27
+ accessibilityElementsHidden: true,
28
+ importantForAccessibility: 'no-hide-descendants',
29
+ 'aria-hidden': true
30
+ };
31
+ return /*#__PURE__*/_jsx(Comp, {
32
+ ref: ref,
33
+ role: "tabpanel",
34
+ id: `${listId}-panel-${panelValue}`,
35
+ "aria-labelledby": `${listId}-tab-${panelValue}`,
36
+ style: [!selected ? {
37
+ display: 'none'
38
+ } : null, style],
39
+ ...props,
40
+ ...hideFromAccessibility,
41
+ ...mergeDataAttributes(props, dataAttributes({
42
+ slot: 'tabs-panel',
43
+ state: selected ? 'active' : 'inactive'
44
+ })),
45
+ children: children
46
+ });
47
+ });
48
+ TabPanel.displayName = 'TabPanel';
49
+ //# sourceMappingURL=TabPanel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["forwardRef","View","Slot","dataAttributes","mergeDataAttributes","useTabsContext","jsx","_jsx","TabPanel","asChild","children","value","panelValue","unmountWhenInactive","style","props","ref","selectedValue","listId","selected","Comp","hideFromAccessibility","accessibilityElementsHidden","importantForAccessibility","role","id","display","slot","state","displayName"],"sourceRoot":"../../../src","sources":["tabs/TabPanel.tsx"],"mappings":";;AAAA,SAASA,UAAU,QAA2C,OAAO;AACrE,SAASC,IAAI,QAAQ,cAAc;AACnC,SAASC,IAAI,QAAQ,SAAS;AAC9B,SAASC,cAAc,EAAEC,mBAAmB,QAAQ,yBAAyB;AAC7E,SAASC,cAAc,QAAQ,WAAW;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAQ3C,OAAO,MAAMC,QAAQ,gBAAGR,UAAU,CAChC,CAAC;EAAES,OAAO;EAAEC,QAAQ;EAAEC,KAAK,EAAEC,UAAU;EAAEC,mBAAmB,GAAG,KAAK;EAAEC,KAAK;EAAE,GAAGC;AAAM,CAAC,EAAEC,GAAG,KAAK;EAC/F,MAAM;IAAEL,KAAK,EAAEM,aAAa;IAAEC;EAAO,CAAC,GAAGb,cAAc,CAAC,CAAC;EACzD,MAAMc,QAAQ,GAAGF,aAAa,KAAKL,UAAU;EAE7C,IAAI,CAACO,QAAQ,IAAIN,mBAAmB,EAAE;IACpC,OAAO,IAAI;EACb;EAEA,MAAMO,IAAI,GAAGX,OAAO,GAAGP,IAAI,GAAGD,IAAI;EAElC,MAAMoB,qBAAqB,GAAGF,QAAQ,GAClC,IAAI,GACJ;IACEG,2BAA2B,EAAE,IAAa;IAC1CC,yBAAyB,EAAE,qBAA8B;IACzD,aAAa,EAAE;EACjB,CAAC;EAEL,oBACEhB,IAAA,CAACa,IAAI;IACHJ,GAAG,EAAEA,GAAI;IACTQ,IAAI,EAAC,UAAU;IACfC,EAAE,EAAE,GAAGP,MAAM,UAAUN,UAAU,EAAG;IACpC,mBAAiB,GAAGM,MAAM,QAAQN,UAAU,EAAG;IAC/CE,KAAK,EAAE,CAAC,CAACK,QAAQ,GAAG;MAAEO,OAAO,EAAE;IAAO,CAAC,GAAG,IAAI,EAAEZ,KAAK,CAAE;IAAA,GACnDC,KAAK;IAAA,GACLM,qBAAqB;IAAA,GACrBjB,mBAAmB,CACrBW,KAAK,EACLZ,cAAc,CAAC;MAAEwB,IAAI,EAAE,YAAY;MAAEC,KAAK,EAAET,QAAQ,GAAG,QAAQ,GAAG;IAAW,CAAC,CAChF,CAAC;IAAAT,QAAA,EAEAA;EAAQ,CACL,CAAC;AAEX,CACF,CAAC;AAEDF,QAAQ,CAACqB,WAAW,GAAG,UAAU","ignoreList":[]}
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+
3
+ import { forwardRef } from 'react';
4
+ import { Platform, View } from 'react-native';
5
+ import { composeEventHandlers } from '@cdx-ui/utils';
6
+ import { Slot } from '../slot';
7
+ import { dataAttributes, mergeDataAttributes } from '../utils/dataAttributes';
8
+ import { useTabsContext } from './context';
9
+ import { useTabsNavigation } from './useTabsNavigation';
10
+ import { jsx as _jsx } from "react/jsx-runtime";
11
+ export const TabsList = /*#__PURE__*/forwardRef(({
12
+ asChild,
13
+ children,
14
+ ...props
15
+ }, ref) => {
16
+ const {
17
+ value,
18
+ onValueChange,
19
+ activationMode,
20
+ orientation,
21
+ getTabs,
22
+ focusedValue,
23
+ setFocusedValue
24
+ } = useTabsContext();
25
+ const {
26
+ handleKeyDown
27
+ } = useTabsNavigation({
28
+ getTabs,
29
+ focusedValue,
30
+ setFocusedValue,
31
+ value,
32
+ onValueChange,
33
+ activationMode,
34
+ orientation
35
+ });
36
+ const webProps = Platform.OS === 'web' ? {
37
+ onKeyDown: composeEventHandlers(props.onKeyDown, handleKeyDown)
38
+ } : {};
39
+ const Comp = asChild ? Slot : View;
40
+ return /*#__PURE__*/_jsx(Comp, {
41
+ ref: ref,
42
+ role: "tablist",
43
+ "aria-orientation": orientation,
44
+ ...props,
45
+ ...webProps,
46
+ ...mergeDataAttributes(props, dataAttributes({
47
+ slot: 'tabs-list',
48
+ orientation
49
+ })),
50
+ children: children
51
+ });
52
+ });
53
+ TabsList.displayName = 'TabsList';
54
+ //# sourceMappingURL=TabsList.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["forwardRef","Platform","View","composeEventHandlers","Slot","dataAttributes","mergeDataAttributes","useTabsContext","useTabsNavigation","jsx","_jsx","TabsList","asChild","children","props","ref","value","onValueChange","activationMode","orientation","getTabs","focusedValue","setFocusedValue","handleKeyDown","webProps","OS","onKeyDown","Comp","role","slot","displayName"],"sourceRoot":"../../../src","sources":["tabs/TabsList.tsx"],"mappings":";;AAAA,SAASA,UAAU,QAA2B,OAAO;AACrD,SAASC,QAAQ,EAAEC,IAAI,QAAQ,cAAc;AAC7C,SAASC,oBAAoB,QAAQ,eAAe;AACpD,SAASC,IAAI,QAAQ,SAAS;AAC9B,SAASC,cAAc,EAAEC,mBAAmB,QAAQ,yBAAyB;AAC7E,SAASC,cAAc,QAAQ,WAAW;AAE1C,SAASC,iBAAiB,QAAQ,qBAAqB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAOxD,OAAO,MAAMC,QAAQ,gBAAGX,UAAU,CAChC,CAAC;EAAEY,OAAO;EAAEC,QAAQ;EAAE,GAAGC;AAAM,CAAC,EAAEC,GAAG,KAAK;EACxC,MAAM;IACJC,KAAK;IACLC,aAAa;IACbC,cAAc;IACdC,WAAW;IACXC,OAAO;IACPC,YAAY;IACZC;EACF,CAAC,GAAGf,cAAc,CAAC,CAAC;EAEpB,MAAM;IAAEgB;EAAc,CAAC,GAAGf,iBAAiB,CAAC;IAC1CY,OAAO;IACPC,YAAY;IACZC,eAAe;IACfN,KAAK;IACLC,aAAa;IACbC,cAAc;IACdC;EACF,CAAC,CAAC;EAEF,MAAMK,QAAQ,GACZvB,QAAQ,CAACwB,EAAE,KAAK,KAAK,GACjB;IACEC,SAAS,EAAEvB,oBAAoB,CAC5BW,KAAK,CAAgDY,SAAS,EAC/DH,aACF;EACF,CAAC,GACD,CAAC,CAAC;EAER,MAAMI,IAAI,GAAGf,OAAO,GAAGR,IAAI,GAAGF,IAAI;EAElC,oBACEQ,IAAA,CAACiB,IAAI;IACHZ,GAAG,EAAEA,GAAI;IACTa,IAAI,EAAC,SAAS;IACd,oBAAkBT,WAAY;IAAA,GAC1BL,KAAK;IAAA,GACLU,QAAQ;IAAA,GACRlB,mBAAmB,CAACQ,KAAK,EAAET,cAAc,CAAC;MAAEwB,IAAI,EAAE,WAAW;MAAEV;IAAY,CAAC,CAAC,CAAC;IAAAN,QAAA,EAEjFA;EAAQ,CACL,CAAC;AAEX,CACF,CAAC;AAEDF,QAAQ,CAACmB,WAAW,GAAG,UAAU","ignoreList":[]}
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+
3
+ import { forwardRef, useCallback, useEffect, useId, useMemo, useRef, useState } from 'react';
4
+ import { View } from 'react-native';
5
+ import { useControllableState } from '@cdx-ui/utils';
6
+ import { Slot } from '../slot';
7
+ import { dataAttributes, mergeDataAttributes } from '../utils/dataAttributes';
8
+ import { TabsProvider } from './context';
9
+ import { jsx as _jsx } from "react/jsx-runtime";
10
+ export const TabsRoot = /*#__PURE__*/forwardRef(({
11
+ asChild,
12
+ children,
13
+ value: valueProp,
14
+ defaultValue,
15
+ onValueChange,
16
+ activationMode = 'automatic',
17
+ orientation = 'horizontal',
18
+ disabled = false,
19
+ ...props
20
+ }, ref) => {
21
+ const [value, setValue] = useControllableState({
22
+ prop: valueProp,
23
+ defaultProp: defaultValue,
24
+ onChange: newValue => {
25
+ if (newValue !== undefined) {
26
+ onValueChange?.(newValue);
27
+ }
28
+ }
29
+ });
30
+ const [focusedValue, setFocusedValue] = useState(undefined);
31
+
32
+ // When the parent updates the controlled selection, drop stale roving-focus state so
33
+ // tabIndex and arrow-key navigation follow `value` instead of a previously focused tab.
34
+ useEffect(() => {
35
+ setFocusedValue(prev => prev !== undefined && prev !== value ? undefined : prev);
36
+ }, [value]);
37
+ const tabsRef = useRef(new Map());
38
+ const registerTab = useCallback((tabValue, entry) => {
39
+ tabsRef.current.set(tabValue, entry);
40
+ }, []);
41
+ const unregisterTab = useCallback(tabValue => {
42
+ tabsRef.current.delete(tabValue);
43
+ }, []);
44
+ const getTabs = useCallback(() => Array.from(tabsRef.current.entries()), []);
45
+ const reactId = useId();
46
+ const listId = `tabs-${reactId}`;
47
+ const contextValue = useMemo(() => ({
48
+ value,
49
+ onValueChange: setValue,
50
+ disabled,
51
+ activationMode,
52
+ orientation,
53
+ listId,
54
+ registerTab,
55
+ unregisterTab,
56
+ getTabs,
57
+ focusedValue,
58
+ setFocusedValue
59
+ }), [value, setValue, disabled, activationMode, orientation, listId, registerTab, unregisterTab, getTabs, focusedValue]);
60
+ const Comp = asChild ? Slot : View;
61
+ return /*#__PURE__*/_jsx(TabsProvider, {
62
+ value: contextValue,
63
+ children: /*#__PURE__*/_jsx(Comp, {
64
+ ref: ref,
65
+ ...props,
66
+ ...mergeDataAttributes(props, dataAttributes({
67
+ disabled,
68
+ orientation
69
+ })),
70
+ children: children
71
+ })
72
+ });
73
+ });
74
+ TabsRoot.displayName = 'TabsRoot';
75
+ //# sourceMappingURL=TabsRoot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["forwardRef","useCallback","useEffect","useId","useMemo","useRef","useState","View","useControllableState","Slot","dataAttributes","mergeDataAttributes","TabsProvider","jsx","_jsx","TabsRoot","asChild","children","value","valueProp","defaultValue","onValueChange","activationMode","orientation","disabled","props","ref","setValue","prop","defaultProp","onChange","newValue","undefined","focusedValue","setFocusedValue","prev","tabsRef","Map","registerTab","tabValue","entry","current","set","unregisterTab","delete","getTabs","Array","from","entries","reactId","listId","contextValue","Comp","displayName"],"sourceRoot":"../../../src","sources":["tabs/TabsRoot.tsx"],"mappings":";;AAAA,SACEA,UAAU,EACVC,WAAW,EACXC,SAAS,EACTC,KAAK,EACLC,OAAO,EACPC,MAAM,EACNC,QAAQ,QAEH,OAAO;AACd,SAASC,IAAI,QAAwB,cAAc;AACnD,SAASC,oBAAoB,QAAQ,eAAe;AACpD,SAASC,IAAI,QAAQ,SAAS;AAC9B,SAASC,cAAc,EAAEC,mBAAmB,QAAQ,yBAAyB;AAC7E,SAASC,YAAY,QAAQ,WAAW;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAQzC,OAAO,MAAMC,QAAQ,gBAAGf,UAAU,CAChC,CACE;EACEgB,OAAO;EACPC,QAAQ;EACRC,KAAK,EAAEC,SAAS;EAChBC,YAAY;EACZC,aAAa;EACbC,cAAc,GAAG,WAAW;EAC5BC,WAAW,GAAG,YAAY;EAC1BC,QAAQ,GAAG,KAAK;EAChB,GAAGC;AACL,CAAC,EACDC,GAAG,KACA;EACH,MAAM,CAACR,KAAK,EAAES,QAAQ,CAAC,GAAGnB,oBAAoB,CAAqB;IACjEoB,IAAI,EAAET,SAAS;IACfU,WAAW,EAAET,YAAY;IACzBU,QAAQ,EAAGC,QAAQ,IAAK;MACtB,IAAIA,QAAQ,KAAKC,SAAS,EAAE;QAC1BX,aAAa,GAAGU,QAAQ,CAAC;MAC3B;IACF;EACF,CAAC,CAAC;EAEF,MAAM,CAACE,YAAY,EAAEC,eAAe,CAAC,GAAG5B,QAAQ,CAAqB0B,SAAS,CAAC;;EAE/E;EACA;EACA9B,SAAS,CAAC,MAAM;IACdgC,eAAe,CAAEC,IAAI,IAAMA,IAAI,KAAKH,SAAS,IAAIG,IAAI,KAAKjB,KAAK,GAAGc,SAAS,GAAGG,IAAK,CAAC;EACtF,CAAC,EAAE,CAACjB,KAAK,CAAC,CAAC;EAEX,MAAMkB,OAAO,GAAG/B,MAAM,CAA6B,IAAIgC,GAAG,CAAC,CAAC,CAAC;EAE7D,MAAMC,WAAW,GAAGrC,WAAW,CAAC,CAACsC,QAAgB,EAAEC,KAAoB,KAAK;IAC1EJ,OAAO,CAACK,OAAO,CAACC,GAAG,CAACH,QAAQ,EAAEC,KAAK,CAAC;EACtC,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMG,aAAa,GAAG1C,WAAW,CAAEsC,QAAgB,IAAK;IACtDH,OAAO,CAACK,OAAO,CAACG,MAAM,CAACL,QAAQ,CAAC;EAClC,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMM,OAAO,GAAG5C,WAAW,CAAC,MAAM6C,KAAK,CAACC,IAAI,CAACX,OAAO,CAACK,OAAO,CAACO,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;EAE5E,MAAMC,OAAO,GAAG9C,KAAK,CAAC,CAAC;EACvB,MAAM+C,MAAM,GAAG,QAAQD,OAAO,EAAE;EAEhC,MAAME,YAAY,GAAG/C,OAAO,CAC1B,OAAO;IACLc,KAAK;IACLG,aAAa,EAAEM,QAAQ;IACvBH,QAAQ;IACRF,cAAc;IACdC,WAAW;IACX2B,MAAM;IACNZ,WAAW;IACXK,aAAa;IACbE,OAAO;IACPZ,YAAY;IACZC;EACF,CAAC,CAAC,EACF,CACEhB,KAAK,EACLS,QAAQ,EACRH,QAAQ,EACRF,cAAc,EACdC,WAAW,EACX2B,MAAM,EACNZ,WAAW,EACXK,aAAa,EACbE,OAAO,EACPZ,YAAY,CAEhB,CAAC;EAED,MAAMmB,IAAI,GAAGpC,OAAO,GAAGP,IAAI,GAAGF,IAAI;EAElC,oBACEO,IAAA,CAACF,YAAY;IAACM,KAAK,EAAEiC,YAAa;IAAAlC,QAAA,eAChCH,IAAA,CAACsC,IAAI;MACH1B,GAAG,EAAEA,GAAI;MAAA,GACLD,KAAK;MAAA,GACLd,mBAAmB,CAACc,KAAK,EAAEf,cAAc,CAAC;QAAEc,QAAQ;QAAED;MAAY,CAAC,CAAC,CAAC;MAAAN,QAAA,EAExEA;IAAQ,CACL;EAAC,CACK,CAAC;AAEnB,CACF,CAAC;AAEDF,QAAQ,CAACsC,WAAW,GAAG,UAAU","ignoreList":[]}