@cdx-ui/primitives 0.0.1-beta.99 → 0.1.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 (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
@@ -1 +1 @@
1
- {"version":3,"names":["Modal","Platform","Pressable","StyleSheet","View","Animated","createPortalFn","jsx","_jsx","jsxs","_jsxs","OverlayContainer","onDismiss","entering","exiting","style","children","OS","position","zIndex","document","body","visible","transparent","animationType","statusBarTranslucent","onRequestClose","absoluteFill","onPress","accessible","importantForAccessibility"],"sourceRoot":"../../../src","sources":["overlay/OverlayContainer.tsx"],"mappings":";;AACA,SACEA,KAAK,EACLC,QAAQ,EACRC,SAAS,EACTC,UAAU,EACVC,IAAI,QAGC,cAAc;AACrB,OAAOC,QAAQ,MAAsC,yBAAyB;AAC9E,SAASC,cAAc,QAAQ,uBAAuB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAUvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,gBAAgBA,CAAC;EAC/BC,SAAS;EACTC,QAAQ;EACRC,OAAO;EACPC,KAAK;EACLC;AAC+B,CAAC,EAAE;EAClC,IAAIf,QAAQ,CAACgB,EAAE,KAAK,KAAK,IAAIX,cAAc,EAAE;IAC3C,OAAOA,cAAc,cACnBE,IAAA,CAACJ,IAAI;MAACW,KAAK,EAAE,CAAC;QAAEG,QAAQ,EAAE,OAAc;QAAEC,MAAM,EAAE;MAAG,CAAC,EAAEJ,KAAK,CAAE;MAAAC,QAAA,EAAEA;IAAQ,CAAO,CAAC,EACjFI,QAAQ,CAACC,IACX,CAAC;EACH;EAEA,oBACEX,KAAA,CAACV,KAAK;IAACsB,OAAO;IAACC,WAAW;IAACC,aAAa,EAAC,MAAM;IAACC,oBAAoB;IAACC,cAAc,EAAEd,SAAU;IAAAI,QAAA,gBAC7FR,IAAA,CAACN,SAAS;MACRa,KAAK,EAAEZ,UAAU,CAACwB,YAAa;MAC/BC,OAAO,EAAEhB,SAAU;MACnBiB,UAAU,EAAE,KAAM;MAClBC,yBAAyB,EAAC;IAAqB,CAChD,CAAC,eACFtB,IAAA,CAACH,QAAQ,CAACD,IAAI;MACZS,QAAQ,EAAEA,QAAS;MACnBC,OAAO,EAAEA,OAAQ;MACjBC,KAAK,EAAE,CAAC;QAAEG,QAAQ,EAAE;MAAW,CAAC,EAAEH,KAAK,CAAE;MAAAC,QAAA,EAExCA;IAAQ,CACI,CAAC;EAAA,CACX,CAAC;AAEZ","ignoreList":[]}
1
+ {"version":3,"names":["Modal","Platform","Pressable","StyleSheet","View","Animated","createPortalFn","MODAL_OVERLAY_Z_INDEX","jsx","_jsx","jsxs","_jsxs","OverlayContainer","onDismiss","entering","exiting","style","children","OS","position","zIndex","document","body","visible","transparent","animationType","statusBarTranslucent","onRequestClose","absoluteFill","onPress","accessible","importantForAccessibility","pointerEvents"],"sourceRoot":"../../../src","sources":["overlay/OverlayContainer.tsx"],"mappings":";;AACA,SACEA,KAAK,EACLC,QAAQ,EACRC,SAAS,EACTC,UAAU,EACVC,IAAI,QAGC,cAAc;AACrB,OAAOC,QAAQ,MAAsC,yBAAyB;AAC9E,SAASC,cAAc,QAAQ,uBAAuB;AACtD,SAASC,qBAAqB,QAAQ,aAAa;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAUpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,gBAAgBA,CAAC;EAC/BC,SAAS;EACTC,QAAQ;EACRC,OAAO;EACPC,KAAK;EACLC;AAC+B,CAAC,EAAE;EAClC,IAAIhB,QAAQ,CAACiB,EAAE,KAAK,KAAK,IAAIZ,cAAc,EAAE;IAC3C,OAAOA,cAAc,cACnBG,IAAA,CAACL,IAAI;MAACY,KAAK,EAAE,CAAC;QAAEG,QAAQ,EAAE,OAAc;QAAEC,MAAM,EAAEb;MAAsB,CAAC,EAAES,KAAK,CAAE;MAAAC,QAAA,EAC/EA;IAAQ,CACL,CAAC,EACPI,QAAQ,CAACC,IACX,CAAC;EACH;EAEA,oBACEX,KAAA,CAACX,KAAK;IAACuB,OAAO;IAACC,WAAW;IAACC,aAAa,EAAC,MAAM;IAACC,oBAAoB;IAACC,cAAc,EAAEd,SAAU;IAAAI,QAAA,gBAC7FR,IAAA,CAACP,SAAS;MACRc,KAAK,EAAEb,UAAU,CAACyB,YAAa;MAC/BC,OAAO,EAAEhB,SAAU;MACnBiB,UAAU,EAAE,KAAM;MAClBC,yBAAyB,EAAC;IAAqB,CAChD,CAAC,eAEFtB,IAAA,CAACJ,QAAQ,CAACD,IAAI;MACZU,QAAQ,EAAEA,QAAS;MACnBC,OAAO,EAAEA,OAAQ;MACjBiB,aAAa,EAAC,UAAU;MACxBhB,KAAK,EAAE,CAACb,UAAU,CAACyB,YAAY,EAAEZ,KAAK,CAAE;MAAAC,QAAA,EAEvCA;IAAQ,CACI,CAAC;EAAA,CACX,CAAC;AAEZ","ignoreList":[]}
@@ -0,0 +1,119 @@
1
+ "use strict";
2
+
3
+ import React, { createContext, useCallback, useContext, useEffect, useId, useRef, useSyncExternalStore } from 'react';
4
+ import { jsx as _jsx } from "react/jsx-runtime";
5
+ function createOverlayStackRegistry() {
6
+ const entries = new Map();
7
+ const listeners = new Set();
8
+ let activationOrder = 0;
9
+ let version = 0;
10
+ const emit = () => {
11
+ version += 1;
12
+ for (const listener of listeners) listener();
13
+ };
14
+ return {
15
+ register(token, entry) {
16
+ activationOrder += 1;
17
+ entries.set(token, {
18
+ ...entry,
19
+ token,
20
+ activationOrder
21
+ });
22
+ emit();
23
+ },
24
+ unregister(token) {
25
+ if (entries.delete(token)) emit();
26
+ },
27
+ isTopmost(token, capability) {
28
+ const current = entries.get(token);
29
+ if (!current?.capabilities.has(capability)) return false;
30
+ let topmost = current;
31
+ for (const candidate of entries.values()) {
32
+ if (!candidate.capabilities.has(capability)) continue;
33
+ if (candidate.activationOrder > topmost.activationOrder) {
34
+ topmost = candidate;
35
+ }
36
+ }
37
+ return topmost.token === token;
38
+ },
39
+ subscribe(listener) {
40
+ listeners.add(listener);
41
+ return () => {
42
+ listeners.delete(listener);
43
+ };
44
+ },
45
+ getSnapshot() {
46
+ return version;
47
+ }
48
+ };
49
+ }
50
+ const OverlayStackContext = /*#__PURE__*/createContext(null);
51
+ const subscribeNoop = () => {
52
+ return () => undefined;
53
+ };
54
+ const getZeroSnapshot = () => 0;
55
+
56
+ /**
57
+ * Scopes overlay ordering and dismissal coordination to a provider subtree.
58
+ * Hooks retain their standalone behavior when no provider is present.
59
+ */
60
+ export function OverlayStackProvider({
61
+ children
62
+ }) {
63
+ const [registry] = React.useState(createOverlayStackRegistry);
64
+ return /*#__PURE__*/_jsx(OverlayStackContext.Provider, {
65
+ value: registry,
66
+ children: children
67
+ });
68
+ }
69
+
70
+ /**
71
+ * Registers one active overlay and reports whether it is topmost for a specific
72
+ * dismissal capability. Capabilities are resolved independently so a
73
+ * notification without dismissal capabilities never blocks a modal.
74
+ */
75
+ export function useOverlayStackRegistration({
76
+ active,
77
+ capabilities = [],
78
+ layer = 'nonmodal',
79
+ id,
80
+ parentId,
81
+ groupId
82
+ }) {
83
+ const registry = useContext(OverlayStackContext);
84
+ const token = useRef(Symbol('forge-ui-overlay')).current;
85
+ const generatedId = `forge-ui-overlay-${useId()}`;
86
+ const resolvedId = id ?? generatedId;
87
+ const handlesEscape = capabilities.includes('escape');
88
+ const handlesOutside = capabilities.includes('outside');
89
+ const handlesBack = capabilities.includes('back');
90
+ useEffect(() => {
91
+ if (!registry || !active) return;
92
+ const resolvedCapabilities = new Set();
93
+ if (handlesEscape) resolvedCapabilities.add('escape');
94
+ if (handlesOutside) resolvedCapabilities.add('outside');
95
+ if (handlesBack) resolvedCapabilities.add('back');
96
+ registry.register(token, {
97
+ id: resolvedId,
98
+ layer,
99
+ parentId,
100
+ groupId,
101
+ capabilities: resolvedCapabilities
102
+ });
103
+ return () => {
104
+ registry.unregister(token);
105
+ };
106
+ }, [active, groupId, handlesBack, handlesEscape, handlesOutside, layer, parentId, registry, resolvedId, token]);
107
+ useSyncExternalStore(registry?.subscribe ?? subscribeNoop, registry?.getSnapshot ?? getZeroSnapshot, getZeroSnapshot);
108
+ const isTopmost = useCallback(capability => {
109
+ if (!active) return false;
110
+ const handlesCapability = capability === 'escape' && handlesEscape || capability === 'outside' && handlesOutside || capability === 'back' && handlesBack;
111
+ if (!handlesCapability) return false;
112
+ return !registry || registry.isTopmost(token, capability);
113
+ }, [active, handlesBack, handlesEscape, handlesOutside, registry, token]);
114
+ return {
115
+ id: resolvedId,
116
+ isTopmost
117
+ };
118
+ }
119
+ //# sourceMappingURL=OverlayStack.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","createContext","useCallback","useContext","useEffect","useId","useRef","useSyncExternalStore","jsx","_jsx","createOverlayStackRegistry","entries","Map","listeners","Set","activationOrder","version","emit","listener","register","token","entry","set","unregister","delete","isTopmost","capability","current","get","capabilities","has","topmost","candidate","values","subscribe","add","getSnapshot","OverlayStackContext","subscribeNoop","undefined","getZeroSnapshot","OverlayStackProvider","children","registry","useState","Provider","value","useOverlayStackRegistration","active","layer","id","parentId","groupId","Symbol","generatedId","resolvedId","handlesEscape","includes","handlesOutside","handlesBack","resolvedCapabilities","handlesCapability"],"sourceRoot":"../../../src","sources":["overlay/OverlayStack.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IACVC,aAAa,EACbC,WAAW,EACXC,UAAU,EACVC,SAAS,EACTC,KAAK,EACLC,MAAM,EACNC,oBAAoB,QACf,OAAO;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAuDf,SAASC,0BAA0BA,CAAA,EAAyB;EAC1D,MAAMC,OAAO,GAAG,IAAIC,GAAG,CAA4B,CAAC;EACpD,MAAMC,SAAS,GAAG,IAAIC,GAAG,CAAa,CAAC;EACvC,IAAIC,eAAe,GAAG,CAAC;EACvB,IAAIC,OAAO,GAAG,CAAC;EAEf,MAAMC,IAAI,GAAGA,CAAA,KAAM;IACjBD,OAAO,IAAI,CAAC;IACZ,KAAK,MAAME,QAAQ,IAAIL,SAAS,EAAEK,QAAQ,CAAC,CAAC;EAC9C,CAAC;EAED,OAAO;IACLC,QAAQA,CAACC,KAAK,EAAEC,KAAK,EAAE;MACrBN,eAAe,IAAI,CAAC;MACpBJ,OAAO,CAACW,GAAG,CAACF,KAAK,EAAE;QAAE,GAAGC,KAAK;QAAED,KAAK;QAAEL;MAAgB,CAAC,CAAC;MACxDE,IAAI,CAAC,CAAC;IACR,CAAC;IACDM,UAAUA,CAACH,KAAK,EAAE;MAChB,IAAIT,OAAO,CAACa,MAAM,CAACJ,KAAK,CAAC,EAAEH,IAAI,CAAC,CAAC;IACnC,CAAC;IACDQ,SAASA,CAACL,KAAK,EAAEM,UAAU,EAAE;MAC3B,MAAMC,OAAO,GAAGhB,OAAO,CAACiB,GAAG,CAACR,KAAK,CAAC;MAClC,IAAI,CAACO,OAAO,EAAEE,YAAY,CAACC,GAAG,CAACJ,UAAU,CAAC,EAAE,OAAO,KAAK;MAExD,IAAIK,OAAO,GAAGJ,OAAO;MACrB,KAAK,MAAMK,SAAS,IAAIrB,OAAO,CAACsB,MAAM,CAAC,CAAC,EAAE;QACxC,IAAI,CAACD,SAAS,CAACH,YAAY,CAACC,GAAG,CAACJ,UAAU,CAAC,EAAE;QAE7C,IAAIM,SAAS,CAACjB,eAAe,GAAGgB,OAAO,CAAChB,eAAe,EAAE;UACvDgB,OAAO,GAAGC,SAAS;QACrB;MACF;MAEA,OAAOD,OAAO,CAACX,KAAK,KAAKA,KAAK;IAChC,CAAC;IACDc,SAASA,CAAChB,QAAQ,EAAE;MAClBL,SAAS,CAACsB,GAAG,CAACjB,QAAQ,CAAC;MACvB,OAAO,MAAM;QACXL,SAAS,CAACW,MAAM,CAACN,QAAQ,CAAC;MAC5B,CAAC;IACH,CAAC;IACDkB,WAAWA,CAAA,EAAG;MACZ,OAAOpB,OAAO;IAChB;EACF,CAAC;AACH;AAEA,MAAMqB,mBAAmB,gBAAGpC,aAAa,CAA8B,IAAI,CAAC;AAC5E,MAAMqC,aAAa,GAAGA,CAAA,KAAM;EAC1B,OAAO,MAAMC,SAAS;AACxB,CAAC;AACD,MAAMC,eAAe,GAAGA,CAAA,KAAM,CAAC;;AAE/B;AACA;AACA;AACA;AACA,OAAO,SAASC,oBAAoBA,CAAC;EAAEC;AAAkD,CAAC,EAAE;EAC1F,MAAM,CAACC,QAAQ,CAAC,GAAG3C,KAAK,CAAC4C,QAAQ,CAAClC,0BAA0B,CAAC;EAE7D,oBAAOD,IAAA,CAAC4B,mBAAmB,CAACQ,QAAQ;IAACC,KAAK,EAAEH,QAAS;IAAAD,QAAA,EAAEA;EAAQ,CAA+B,CAAC;AACjG;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASK,2BAA2BA,CAAC;EAC1CC,MAAM;EACNnB,YAAY,GAAG,EAAE;EACjBoB,KAAK,GAAG,UAAU;EAClBC,EAAE;EACFC,QAAQ;EACRC;AAC+B,CAAC,EAAkC;EAClE,MAAMT,QAAQ,GAAGxC,UAAU,CAACkC,mBAAmB,CAAC;EAChD,MAAMjB,KAAK,GAAGd,MAAM,CAAC+C,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC1B,OAAO;EACxD,MAAM2B,WAAW,GAAG,oBAAoBjD,KAAK,CAAC,CAAC,EAAE;EACjD,MAAMkD,UAAU,GAAGL,EAAE,IAAII,WAAW;EACpC,MAAME,aAAa,GAAG3B,YAAY,CAAC4B,QAAQ,CAAC,QAAQ,CAAC;EACrD,MAAMC,cAAc,GAAG7B,YAAY,CAAC4B,QAAQ,CAAC,SAAS,CAAC;EACvD,MAAME,WAAW,GAAG9B,YAAY,CAAC4B,QAAQ,CAAC,MAAM,CAAC;EAEjDrD,SAAS,CAAC,MAAM;IACd,IAAI,CAACuC,QAAQ,IAAI,CAACK,MAAM,EAAE;IAE1B,MAAMY,oBAAoB,GAAG,IAAI9C,GAAG,CAAyB,CAAC;IAC9D,IAAI0C,aAAa,EAAEI,oBAAoB,CAACzB,GAAG,CAAC,QAAQ,CAAC;IACrD,IAAIuB,cAAc,EAAEE,oBAAoB,CAACzB,GAAG,CAAC,SAAS,CAAC;IACvD,IAAIwB,WAAW,EAAEC,oBAAoB,CAACzB,GAAG,CAAC,MAAM,CAAC;IAEjDQ,QAAQ,CAACxB,QAAQ,CAACC,KAAK,EAAE;MACvB8B,EAAE,EAAEK,UAAU;MACdN,KAAK;MACLE,QAAQ;MACRC,OAAO;MACPvB,YAAY,EAAE+B;IAChB,CAAC,CAAC;IAEF,OAAO,MAAM;MACXjB,QAAQ,CAACpB,UAAU,CAACH,KAAK,CAAC;IAC5B,CAAC;EACH,CAAC,EAAE,CACD4B,MAAM,EACNI,OAAO,EACPO,WAAW,EACXH,aAAa,EACbE,cAAc,EACdT,KAAK,EACLE,QAAQ,EACRR,QAAQ,EACRY,UAAU,EACVnC,KAAK,CACN,CAAC;EAEFb,oBAAoB,CAClBoC,QAAQ,EAAET,SAAS,IAAII,aAAa,EACpCK,QAAQ,EAAEP,WAAW,IAAII,eAAe,EACxCA,eACF,CAAC;EAED,MAAMf,SAAS,GAAGvB,WAAW,CAC1BwB,UAAkC,IAAK;IACtC,IAAI,CAACsB,MAAM,EAAE,OAAO,KAAK;IAEzB,MAAMa,iBAAiB,GACpBnC,UAAU,KAAK,QAAQ,IAAI8B,aAAa,IACxC9B,UAAU,KAAK,SAAS,IAAIgC,cAAe,IAC3ChC,UAAU,KAAK,MAAM,IAAIiC,WAAY;IACxC,IAAI,CAACE,iBAAiB,EAAE,OAAO,KAAK;IAEpC,OAAO,CAAClB,QAAQ,IAAIA,QAAQ,CAAClB,SAAS,CAACL,KAAK,EAAEM,UAAU,CAAC;EAC3D,CAAC,EACD,CAACsB,MAAM,EAAEW,WAAW,EAAEH,aAAa,EAAEE,cAAc,EAAEf,QAAQ,EAAEvB,KAAK,CACtE,CAAC;EAED,OAAO;IAAE8B,EAAE,EAAEK,UAAU;IAAE9B;EAAU,CAAC;AACtC","ignoreList":[]}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * Modal overlay z-index — above @gorhom/bottom-sheet internal layers (footer uses 9999)
5
+ * so Dialog / AlertDialog stack on top when opened from a bottom sheet.
6
+ */
7
+ export const MODAL_OVERLAY_Z_INDEX = 10000;
8
+
9
+ /**
10
+ * Notification overlay z-index — above modal surfaces while remaining
11
+ * nonmodal and pointer-transparent outside the notification content.
12
+ */
13
+ export const NOTIFICATION_OVERLAY_Z_INDEX = 11000;
14
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["MODAL_OVERLAY_Z_INDEX","NOTIFICATION_OVERLAY_Z_INDEX"],"sourceRoot":"../../../src","sources":["overlay/constants.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA,OAAO,MAAMA,qBAAqB,GAAG,KAAK;;AAE1C;AACA;AACA;AACA;AACA,OAAO,MAAMC,4BAA4B,GAAG,KAAK","ignoreList":[]}
@@ -0,0 +1,189 @@
1
+ "use strict";
2
+
3
+ export const OVERLAY_PLACEMENTS = ['auto', 'auto-start', 'auto-end', 'top', 'top-start', 'top-end', 'right', 'right-start', 'right-end', 'bottom', 'bottom-start', 'bottom-end', 'left', 'left-start', 'left-end'];
4
+ const DEFAULT_COLLISION_PADDING = 8;
5
+ const DEFAULT_OFFSET = 4;
6
+ function toInsets(value) {
7
+ if (typeof value === 'number') {
8
+ return {
9
+ top: value,
10
+ right: value,
11
+ bottom: value,
12
+ left: value
13
+ };
14
+ }
15
+ return {
16
+ top: value?.top ?? DEFAULT_COLLISION_PADDING,
17
+ right: value?.right ?? DEFAULT_COLLISION_PADDING,
18
+ bottom: value?.bottom ?? DEFAULT_COLLISION_PADDING,
19
+ left: value?.left ?? DEFAULT_COLLISION_PADDING
20
+ };
21
+ }
22
+ function parsePlacement(placement) {
23
+ const [side, align = 'center'] = placement.split('-');
24
+ return {
25
+ side,
26
+ align
27
+ };
28
+ }
29
+ function stringifyPlacement({
30
+ side,
31
+ align
32
+ }) {
33
+ return align === 'center' ? side : `${side}-${align}`;
34
+ }
35
+ function oppositeSide(side) {
36
+ switch (side) {
37
+ case 'top':
38
+ return 'bottom';
39
+ case 'right':
40
+ return 'left';
41
+ case 'bottom':
42
+ return 'top';
43
+ case 'left':
44
+ return 'right';
45
+ }
46
+ }
47
+ function availableMainAxis(side, anchor, boundary, offset) {
48
+ switch (side) {
49
+ case 'top':
50
+ return anchor.y - offset - boundary.top;
51
+ case 'right':
52
+ return boundary.right - (anchor.x + anchor.width + offset);
53
+ case 'bottom':
54
+ return boundary.bottom - (anchor.y + anchor.height + offset);
55
+ case 'left':
56
+ return anchor.x - offset - boundary.left;
57
+ }
58
+ }
59
+ function mainAxisSize(side, floating) {
60
+ return side === 'top' || side === 'bottom' ? floating.height : floating.width;
61
+ }
62
+ function resolveAutoSide(anchor, floating, boundary, offset) {
63
+ const sides = ['bottom', 'top', 'right', 'left'];
64
+ return sides.reduce((best, side) => {
65
+ const available = availableMainAxis(side, anchor, boundary, offset);
66
+ const bestAvailable = availableMainAxis(best, anchor, boundary, offset);
67
+ const fits = available >= mainAxisSize(side, floating);
68
+ const bestFits = bestAvailable >= mainAxisSize(best, floating);
69
+ if (fits !== bestFits) {
70
+ return fits ? side : best;
71
+ }
72
+ return available > bestAvailable ? side : best;
73
+ });
74
+ }
75
+ function alignCoordinate(anchorStart, anchorSize, floatingSize, align, reverseLogicalAlignment) {
76
+ const resolvedAlign = reverseLogicalAlignment && align !== 'center' ? align === 'start' ? 'end' : 'start' : align;
77
+ if (resolvedAlign === 'start') {
78
+ return anchorStart;
79
+ }
80
+ if (resolvedAlign === 'end') {
81
+ return anchorStart + anchorSize - floatingSize;
82
+ }
83
+ return anchorStart + (anchorSize - floatingSize) / 2;
84
+ }
85
+ function clamp(value, min, max) {
86
+ if (max < min) return min;
87
+ return Math.min(Math.max(value, min), max);
88
+ }
89
+ function getTransformOrigin(side, arrow, floating) {
90
+ const x = arrow.x ?? floating.width / 2;
91
+ const y = arrow.y ?? floating.height / 2;
92
+ switch (side) {
93
+ case 'top':
94
+ return `${String(x)}px 100%`;
95
+ case 'right':
96
+ return `0% ${String(y)}px`;
97
+ case 'bottom':
98
+ return `${String(x)}px 0%`;
99
+ case 'left':
100
+ return `100% ${String(y)}px`;
101
+ }
102
+ }
103
+ export function getAnchoredOverlayPosition(anchor, floatingLayout, viewport, options = {}) {
104
+ const placement = options.placement ?? 'bottom-start';
105
+ const offset = options.offset ?? DEFAULT_OFFSET;
106
+ const crossOffset = options.crossOffset ?? 0;
107
+ const collisionBehavior = options.collisionBehavior ?? 'flip-shift';
108
+ const collisionPadding = toInsets(options.collisionPadding);
109
+ const insets = {
110
+ top: options.insets?.top ?? 0,
111
+ right: options.insets?.right ?? 0,
112
+ bottom: options.insets?.bottom ?? 0,
113
+ left: options.insets?.left ?? 0
114
+ };
115
+ const boundary = {
116
+ top: insets.top + collisionPadding.top,
117
+ right: viewport.width - insets.right - collisionPadding.right,
118
+ bottom: viewport.height - insets.bottom - collisionPadding.bottom,
119
+ left: insets.left + collisionPadding.left
120
+ };
121
+ const parsed = parsePlacement(placement);
122
+ const measuredFloating = {
123
+ width: options.width === 'anchor' ? anchor.width : floatingLayout.width,
124
+ height: floatingLayout.height
125
+ };
126
+ let side = parsed.side === 'auto' ? resolveAutoSide(anchor, measuredFloating, boundary, offset) : parsed.side;
127
+ const align = parsed.align;
128
+ if (parsed.side !== 'auto' && collisionBehavior !== 'none') {
129
+ const opposite = oppositeSide(side);
130
+ const available = availableMainAxis(side, anchor, boundary, offset);
131
+ const oppositeAvailable = availableMainAxis(opposite, anchor, boundary, offset);
132
+ const required = mainAxisSize(side, measuredFloating);
133
+ if (available < required && oppositeAvailable > available) {
134
+ side = opposite;
135
+ }
136
+ }
137
+ const availableWidth = side === 'left' || side === 'right' ? Math.max(0, availableMainAxis(side, anchor, boundary, offset)) : Math.max(0, boundary.right - boundary.left);
138
+ const availableHeight = side === 'top' || side === 'bottom' ? Math.max(0, availableMainAxis(side, anchor, boundary, offset)) : Math.max(0, boundary.bottom - boundary.top);
139
+ const positionedFloating = {
140
+ width: Math.min(measuredFloating.width, availableWidth),
141
+ height: Math.min(measuredFloating.height, availableHeight)
142
+ };
143
+ let left;
144
+ let top;
145
+ if (side === 'top' || side === 'bottom') {
146
+ left = alignCoordinate(anchor.x, anchor.width, positionedFloating.width, align, options.isRTL ?? false) + crossOffset;
147
+ top = side === 'top' ? anchor.y - offset - positionedFloating.height : anchor.y + anchor.height + offset;
148
+ } else {
149
+ left = side === 'left' ? anchor.x - offset - positionedFloating.width : anchor.x + anchor.width + offset;
150
+ top = alignCoordinate(anchor.y, anchor.height, positionedFloating.height, align, false) + crossOffset;
151
+ }
152
+ if (collisionBehavior === 'flip-shift') {
153
+ if (side === 'top' || side === 'bottom') {
154
+ left = clamp(left, boundary.left, boundary.right - positionedFloating.width);
155
+ } else {
156
+ top = clamp(top, boundary.top, boundary.bottom - positionedFloating.height);
157
+ }
158
+ }
159
+ const arrowBoundaryOffset = options.arrowBoundaryOffset ?? 8;
160
+ const anchorCenterX = anchor.x + anchor.width / 2;
161
+ const anchorCenterY = anchor.y + anchor.height / 2;
162
+ const arrow = side === 'top' || side === 'bottom' ? {
163
+ x: clamp(anchorCenterX - left, arrowBoundaryOffset, positionedFloating.width - arrowBoundaryOffset)
164
+ } : {
165
+ y: clamp(anchorCenterY - top, arrowBoundaryOffset, positionedFloating.height - arrowBoundaryOffset)
166
+ };
167
+ const resolvedPlacement = {
168
+ side,
169
+ align
170
+ };
171
+ return {
172
+ style: {
173
+ left,
174
+ top,
175
+ width: options.width === 'anchor' ? anchor.width : undefined,
176
+ minWidth: positionedFloating.width,
177
+ minHeight: positionedFloating.height,
178
+ maxWidth: availableWidth,
179
+ maxHeight: availableHeight
180
+ },
181
+ resolvedPlacement,
182
+ placement: stringifyPlacement(resolvedPlacement),
183
+ availableWidth,
184
+ availableHeight,
185
+ arrow,
186
+ transformOrigin: getTransformOrigin(side, arrow, positionedFloating)
187
+ };
188
+ }
189
+ //# sourceMappingURL=getAnchoredOverlayPosition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["OVERLAY_PLACEMENTS","DEFAULT_COLLISION_PADDING","DEFAULT_OFFSET","toInsets","value","top","right","bottom","left","parsePlacement","placement","side","align","split","stringifyPlacement","oppositeSide","availableMainAxis","anchor","boundary","offset","y","x","width","height","mainAxisSize","floating","resolveAutoSide","sides","reduce","best","available","bestAvailable","fits","bestFits","alignCoordinate","anchorStart","anchorSize","floatingSize","reverseLogicalAlignment","resolvedAlign","clamp","min","max","Math","getTransformOrigin","arrow","String","getAnchoredOverlayPosition","floatingLayout","viewport","options","crossOffset","collisionBehavior","collisionPadding","insets","parsed","measuredFloating","opposite","oppositeAvailable","required","availableWidth","availableHeight","positionedFloating","isRTL","arrowBoundaryOffset","anchorCenterX","anchorCenterY","resolvedPlacement","style","undefined","minWidth","minHeight","maxWidth","maxHeight","transformOrigin"],"sourceRoot":"../../../src","sources":["overlay/getAnchoredOverlayPosition.ts"],"mappings":"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","ignoreList":[]}
@@ -1,8 +1,12 @@
1
1
  "use strict";
2
2
 
3
+ export { MODAL_OVERLAY_Z_INDEX, NOTIFICATION_OVERLAY_Z_INDEX } from './constants';
3
4
  export { OverlayContainer } from './OverlayContainer';
5
+ export { OverlayStackProvider, useOverlayStackRegistration } from './OverlayStack';
4
6
  export { useAnchorPosition } from './useAnchorPosition';
5
7
  export { useDismissOverlay } from './useDismissOverlay';
6
8
  export { useEscapeKey } from './useEscapeKey';
9
+ export { getAnchoredOverlayPosition, OVERLAY_PLACEMENTS } from './getAnchoredOverlayPosition';
10
+ export { useAnchoredOverlay } from './useAnchoredOverlay';
7
11
  export { useOverlayPosition, OverlayInsetsProvider } from './useOverlayPosition';
8
12
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["OverlayContainer","useAnchorPosition","useDismissOverlay","useEscapeKey","useOverlayPosition","OverlayInsetsProvider"],"sourceRoot":"../../../src","sources":["overlay/index.ts"],"mappings":";;AAAA,SAASA,gBAAgB,QAAQ,oBAAoB;AAErD,SAASC,iBAAiB,QAA2B,qBAAqB;AAC1E,SAASC,iBAAiB,QAAQ,qBAAqB;AACvD,SAASC,YAAY,QAAQ,gBAAgB;AAC7C,SACEC,kBAAkB,EAElBC,qBAAqB,QAEhB,sBAAsB","ignoreList":[]}
1
+ {"version":3,"names":["MODAL_OVERLAY_Z_INDEX","NOTIFICATION_OVERLAY_Z_INDEX","OverlayContainer","OverlayStackProvider","useOverlayStackRegistration","useAnchorPosition","useDismissOverlay","useEscapeKey","getAnchoredOverlayPosition","OVERLAY_PLACEMENTS","useAnchoredOverlay","useOverlayPosition","OverlayInsetsProvider"],"sourceRoot":"../../../src","sources":["overlay/index.ts"],"mappings":";;AAAA,SAASA,qBAAqB,EAAEC,4BAA4B,QAAQ,aAAa;AACjF,SAASC,gBAAgB,QAAQ,oBAAoB;AAErD,SACEC,oBAAoB,EACpBC,2BAA2B,QAMtB,gBAAgB;AACvB,SAASC,iBAAiB,QAA2B,qBAAqB;AAC1E,SAASC,iBAAiB,QAAQ,qBAAqB;AACvD,SAASC,YAAY,QAAQ,gBAAgB;AAC7C,SACEC,0BAA0B,EAC1BC,kBAAkB,QAUb,8BAA8B;AACrC,SACEC,kBAAkB,QAGb,sBAAsB;AAC7B,SACEC,kBAAkB,EAGlBC,qBAAqB,QAEhB,sBAAsB","ignoreList":[]}
@@ -12,53 +12,103 @@ function measureWeb(element) {
12
12
  height: rect.height
13
13
  };
14
14
  }
15
-
15
+ function setLayoutIfChanged(setLayout, next) {
16
+ setLayout(prev => {
17
+ if (prev?.x === next.x && prev.y === next.y && prev.width === next.width && prev.height === next.height) {
18
+ return prev;
19
+ }
20
+ return next;
21
+ });
22
+ }
16
23
  /**
17
24
  * Measures an anchor element's position and size, re-measuring on scroll/resize
18
25
  * (web) so a positioned overlay can track its anchor across layout changes.
19
26
  *
20
27
  * Returns `null` until the first measurement completes.
21
28
  */
22
- export function useAnchorPosition(anchorRef, open) {
29
+ export function useAnchorPosition(anchorRef, open, options) {
30
+ const {
31
+ remeasureKey,
32
+ trackWhileOpen = false
33
+ } = options ?? {};
23
34
  const [layout, setLayout] = useState(null);
35
+ const measureAnchor = () => {
36
+ const anchor = anchorRef.current;
37
+ if (!anchor) {
38
+ return;
39
+ }
40
+ if (Platform.OS === 'web') {
41
+ setLayoutIfChanged(setLayout, measureWeb(anchor));
42
+ return;
43
+ }
44
+ anchor.measureInWindow((x, y, width, height) => {
45
+ setLayoutIfChanged(setLayout, {
46
+ x,
47
+ y,
48
+ width,
49
+ height
50
+ });
51
+ });
52
+ };
24
53
  useIsomorphicLayoutEffect(() => {
25
54
  if (!open) {
26
55
  setLayout(null);
27
56
  return;
28
57
  }
29
- const anchor = anchorRef.current;
30
- if (!anchor) return;
31
58
  let cancelled = false;
59
+ let retryFrameId = 0;
60
+ let webFrameId = 0;
61
+ const runMeasure = () => {
62
+ if (cancelled) {
63
+ return;
64
+ }
65
+ const anchor = anchorRef.current;
66
+ if (!anchor) {
67
+ retryFrameId = requestAnimationFrame(runMeasure);
68
+ return;
69
+ }
70
+ measureAnchor();
71
+ };
72
+ runMeasure();
32
73
  if (Platform.OS === 'web') {
33
- setLayout(measureWeb(anchor));
34
- } else {
35
- anchor.measureInWindow((x, y, width, height) => {
36
- if (!cancelled) {
37
- setLayout({
38
- x,
39
- y,
40
- width,
41
- height
42
- });
43
- }
44
- });
74
+ webFrameId = requestAnimationFrame(runMeasure);
45
75
  }
46
76
  return () => {
47
77
  cancelled = true;
78
+ cancelAnimationFrame(retryFrameId);
79
+ cancelAnimationFrame(webFrameId);
80
+ };
81
+ }, [open, anchorRef, remeasureKey]);
82
+ useEffect(() => {
83
+ if (!open || !trackWhileOpen) {
84
+ return;
85
+ }
86
+ let frameId = 0;
87
+ const tick = () => {
88
+ measureAnchor();
89
+ frameId = requestAnimationFrame(tick);
48
90
  };
49
- }, [open, anchorRef]);
91
+ frameId = requestAnimationFrame(tick);
92
+ return () => {
93
+ cancelAnimationFrame(frameId);
94
+ };
95
+ }, [open, anchorRef, remeasureKey, trackWhileOpen]);
50
96
  useEffect(() => {
51
- if (!open || Platform.OS !== 'web') return;
97
+ if (!open || Platform.OS !== 'web' || trackWhileOpen) {
98
+ return;
99
+ }
52
100
  const anchor = anchorRef.current;
53
- if (!anchor) return;
54
- const update = () => setLayout(measureWeb(anchor));
101
+ if (!anchor) {
102
+ return;
103
+ }
104
+ const update = () => setLayoutIfChanged(setLayout, measureWeb(anchor));
55
105
  window.addEventListener('scroll', update, true);
56
106
  window.addEventListener('resize', update);
57
107
  return () => {
58
108
  window.removeEventListener('scroll', update, true);
59
109
  window.removeEventListener('resize', update);
60
110
  };
61
- }, [open, anchorRef]);
111
+ }, [open, anchorRef, remeasureKey, trackWhileOpen]);
62
112
  return layout;
63
113
  }
64
114
  //# sourceMappingURL=useAnchorPosition.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["useEffect","useLayoutEffect","useState","Platform","useIsomorphicLayoutEffect","OS","measureWeb","element","rect","getBoundingClientRect","x","left","y","top","width","height","useAnchorPosition","anchorRef","open","layout","setLayout","anchor","current","cancelled","measureInWindow","update","window","addEventListener","removeEventListener"],"sourceRoot":"../../../src","sources":["overlay/useAnchorPosition.ts"],"mappings":";;AACA,SAASA,SAAS,EAAEC,eAAe,EAAEC,QAAQ,QAAQ,OAAO;AAC5D,SAASC,QAAQ,QAAQ,cAAc;AAEvC,MAAMC,yBAAyB,GAAGD,QAAQ,CAACE,EAAE,KAAK,KAAK,GAAGJ,eAAe,GAAGD,SAAS;AASrF,SAASM,UAAUA,CAACC,OAAY,EAAgB;EAC9C,MAAMC,IAAI,GAAID,OAAO,CAA4BE,qBAAqB,CAAC,CAAC;EACxE,OAAO;IAAEC,CAAC,EAAEF,IAAI,CAACG,IAAI;IAAEC,CAAC,EAAEJ,IAAI,CAACK,GAAG;IAAEC,KAAK,EAAEN,IAAI,CAACM,KAAK;IAAEC,MAAM,EAAEP,IAAI,CAACO;EAAO,CAAC;AAC9E;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,iBAAiBA,CAACC,SAAyB,EAAEC,IAAa,EAAuB;EAC/F,MAAM,CAACC,MAAM,EAAEC,SAAS,CAAC,GAAGlB,QAAQ,CAAsB,IAAI,CAAC;EAE/DE,yBAAyB,CAAC,MAAM;IAC9B,IAAI,CAACc,IAAI,EAAE;MACTE,SAAS,CAAC,IAAI,CAAC;MACf;IACF;IAEA,MAAMC,MAAM,GAAGJ,SAAS,CAACK,OAAO;IAChC,IAAI,CAACD,MAAM,EAAE;IAEb,IAAIE,SAAS,GAAG,KAAK;IAErB,IAAIpB,QAAQ,CAACE,EAAE,KAAK,KAAK,EAAE;MACzBe,SAAS,CAACd,UAAU,CAACe,MAAM,CAAC,CAAC;IAC/B,CAAC,MAAM;MACLA,MAAM,CAACG,eAAe,CAAC,CAACd,CAAS,EAAEE,CAAS,EAAEE,KAAa,EAAEC,MAAc,KAAK;QAC9E,IAAI,CAACQ,SAAS,EAAE;UACdH,SAAS,CAAC;YAAEV,CAAC;YAAEE,CAAC;YAAEE,KAAK;YAAEC;UAAO,CAAC,CAAC;QACpC;MACF,CAAC,CAAC;IACJ;IAEA,OAAO,MAAM;MACXQ,SAAS,GAAG,IAAI;IAClB,CAAC;EACH,CAAC,EAAE,CAACL,IAAI,EAAED,SAAS,CAAC,CAAC;EAErBjB,SAAS,CAAC,MAAM;IACd,IAAI,CAACkB,IAAI,IAAIf,QAAQ,CAACE,EAAE,KAAK,KAAK,EAAE;IAEpC,MAAMgB,MAAM,GAAGJ,SAAS,CAACK,OAAO;IAChC,IAAI,CAACD,MAAM,EAAE;IAEb,MAAMI,MAAM,GAAGA,CAAA,KAAML,SAAS,CAACd,UAAU,CAACe,MAAM,CAAC,CAAC;IAElDK,MAAM,CAACC,gBAAgB,CAAC,QAAQ,EAAEF,MAAM,EAAE,IAAI,CAAC;IAC/CC,MAAM,CAACC,gBAAgB,CAAC,QAAQ,EAAEF,MAAM,CAAC;IAEzC,OAAO,MAAM;MACXC,MAAM,CAACE,mBAAmB,CAAC,QAAQ,EAAEH,MAAM,EAAE,IAAI,CAAC;MAClDC,MAAM,CAACE,mBAAmB,CAAC,QAAQ,EAAEH,MAAM,CAAC;IAC9C,CAAC;EACH,CAAC,EAAE,CAACP,IAAI,EAAED,SAAS,CAAC,CAAC;EAErB,OAAOE,MAAM;AACf","ignoreList":[]}
1
+ {"version":3,"names":["useEffect","useLayoutEffect","useState","Platform","useIsomorphicLayoutEffect","OS","measureWeb","element","rect","getBoundingClientRect","x","left","y","top","width","height","setLayoutIfChanged","setLayout","next","prev","useAnchorPosition","anchorRef","open","options","remeasureKey","trackWhileOpen","layout","measureAnchor","anchor","current","measureInWindow","cancelled","retryFrameId","webFrameId","runMeasure","requestAnimationFrame","cancelAnimationFrame","frameId","tick","update","window","addEventListener","removeEventListener"],"sourceRoot":"../../../src","sources":["overlay/useAnchorPosition.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,117 @@
1
+ "use strict";
2
+
3
+ import { useCallback, useContext, useEffect, useMemo, useReducer, useRef, useState } from 'react';
4
+ import { I18nManager, Platform, useWindowDimensions } from 'react-native';
5
+ import { getAnchoredOverlayPosition } from './getAnchoredOverlayPosition';
6
+ import { useAnchorPosition } from './useAnchorPosition';
7
+ import { OverlayInsetsContext } from './useOverlayPosition';
8
+ const STAGING_STYLE = {
9
+ left: -10000,
10
+ opacity: 0,
11
+ pointerEvents: 'none',
12
+ position: 'absolute',
13
+ top: -10000
14
+ };
15
+ function setLayoutIfChanged(setLayout, next) {
16
+ setLayout(previous => {
17
+ if (previous?.width === next.width && previous.height === next.height) {
18
+ return previous;
19
+ }
20
+ return next;
21
+ });
22
+ }
23
+ export function useAnchoredOverlay(anchorRef, open, options = {}) {
24
+ const {
25
+ remeasureKey: externalRemeasureKey,
26
+ trackWhileOpen,
27
+ ...positionOptions
28
+ } = options;
29
+ const [revision, update] = useReducer(value => value + 1, 0);
30
+ const remeasureKey = useMemo(() => ({
31
+ externalRemeasureKey,
32
+ revision
33
+ }), [externalRemeasureKey, revision]);
34
+ const anchorLayout = useAnchorPosition(anchorRef, open, {
35
+ remeasureKey,
36
+ trackWhileOpen
37
+ });
38
+ const floatingRef = useRef(null);
39
+ const [floatingLayout, setFloatingLayout] = useState(null);
40
+ const viewport = useWindowDimensions();
41
+ const insets = useContext(OverlayInsetsContext);
42
+ const measureFloating = useCallback(() => {
43
+ // Native measure callbacks can resolve after onLayout and replace the rendered size
44
+ // with stale staging geometry. Native layout changes are already reported by onLayout.
45
+ if (Platform.OS !== 'web') return;
46
+ const floating = floatingRef.current;
47
+ if (!floating) return;
48
+ if (typeof floating.getBoundingClientRect === 'function') {
49
+ const rect = floating.getBoundingClientRect();
50
+ setLayoutIfChanged(setFloatingLayout, {
51
+ width: rect.width,
52
+ height: rect.height
53
+ });
54
+ }
55
+ }, []);
56
+ const onFloatingLayout = useCallback(event => {
57
+ const {
58
+ width,
59
+ height
60
+ } = event.nativeEvent.layout;
61
+ setLayoutIfChanged(setFloatingLayout, {
62
+ width,
63
+ height
64
+ });
65
+ }, []);
66
+ const requestUpdate = useCallback(() => {
67
+ update();
68
+ measureFloating();
69
+ }, [measureFloating]);
70
+ useEffect(() => {
71
+ if (!open) {
72
+ setFloatingLayout(null);
73
+ return;
74
+ }
75
+ measureFloating();
76
+ }, [measureFloating, open, revision]);
77
+ useEffect(() => {
78
+ if (!open || Platform.OS !== 'web') return;
79
+ const floating = floatingRef.current;
80
+ const anchor = anchorRef.current;
81
+ const resizeObserver = typeof ResizeObserver === 'undefined' ? null : new ResizeObserver(() => {
82
+ requestUpdate();
83
+ });
84
+ if (floating) resizeObserver?.observe(floating);
85
+ if (anchor) resizeObserver?.observe(anchor);
86
+ const visualViewport = window.visualViewport;
87
+ visualViewport?.addEventListener('resize', requestUpdate);
88
+ visualViewport?.addEventListener('scroll', requestUpdate);
89
+ return () => {
90
+ resizeObserver?.disconnect();
91
+ visualViewport?.removeEventListener('resize', requestUpdate);
92
+ visualViewport?.removeEventListener('scroll', requestUpdate);
93
+ };
94
+ }, [anchorRef, open, requestUpdate]);
95
+ const position = useMemo(() => {
96
+ if (!anchorLayout || !floatingLayout) return null;
97
+ return getAnchoredOverlayPosition(anchorLayout, floatingLayout, viewport, {
98
+ ...positionOptions,
99
+ insets: positionOptions.insets ?? insets,
100
+ isRTL: positionOptions.isRTL ?? I18nManager.isRTL
101
+ });
102
+ }, [anchorLayout, floatingLayout, viewport, positionOptions, insets]);
103
+ const ready = position !== null;
104
+ const positionStyle = Platform.OS === 'web' ? 'fixed' : 'absolute';
105
+ return {
106
+ floatingRef,
107
+ onFloatingLayout,
108
+ style: ready ? {
109
+ position: positionStyle,
110
+ ...position.style
111
+ } : STAGING_STYLE,
112
+ position,
113
+ ready,
114
+ update: requestUpdate
115
+ };
116
+ }
117
+ //# sourceMappingURL=useAnchoredOverlay.js.map