@cdx-ui/primitives 0.0.1-beta.140 → 0.0.1-beta.142

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 (433) hide show
  1. package/lib/commonjs/calendar/CalendarGrid.js +33 -0
  2. package/lib/commonjs/calendar/CalendarGrid.js.map +1 -0
  3. package/lib/commonjs/calendar/CalendarRoot.js +95 -0
  4. package/lib/commonjs/calendar/CalendarRoot.js.map +1 -0
  5. package/lib/commonjs/calendar/context.js +17 -0
  6. package/lib/commonjs/calendar/context.js.map +1 -0
  7. package/lib/commonjs/calendar/index.js +27 -0
  8. package/lib/commonjs/calendar/index.js.map +1 -0
  9. package/lib/commonjs/calendar/types.js +6 -0
  10. package/lib/commonjs/calendar/types.js.map +1 -0
  11. package/lib/commonjs/checkbox/CheckboxRoot.web.js +91 -28
  12. package/lib/commonjs/checkbox/CheckboxRoot.web.js.map +1 -1
  13. package/lib/commonjs/checkbox/useCheckboxRoot.js +33 -19
  14. package/lib/commonjs/checkbox/useCheckboxRoot.js.map +1 -1
  15. package/lib/commonjs/date-field/DateFieldHiddenInput.js +148 -0
  16. package/lib/commonjs/date-field/DateFieldHiddenInput.js.map +1 -0
  17. package/lib/commonjs/date-field/DateFieldInput.js +122 -0
  18. package/lib/commonjs/date-field/DateFieldInput.js.map +1 -0
  19. package/lib/commonjs/date-field/DateFieldRoot.js +85 -0
  20. package/lib/commonjs/date-field/DateFieldRoot.js.map +1 -0
  21. package/lib/commonjs/date-field/DateFieldSegment.js +92 -0
  22. package/lib/commonjs/date-field/DateFieldSegment.js.map +1 -0
  23. package/lib/commonjs/date-field/context.js +19 -0
  24. package/lib/commonjs/date-field/context.js.map +1 -0
  25. package/lib/commonjs/date-field/index.js +34 -0
  26. package/lib/commonjs/date-field/index.js.map +1 -0
  27. package/lib/commonjs/date-field/segmentIndex.js +23 -0
  28. package/lib/commonjs/date-field/segmentIndex.js.map +1 -0
  29. package/lib/commonjs/date-field/segmentKeyboard.js +169 -0
  30. package/lib/commonjs/date-field/segmentKeyboard.js.map +1 -0
  31. package/lib/commonjs/date-field/types.js +6 -0
  32. package/lib/commonjs/date-field/types.js.map +1 -0
  33. package/lib/commonjs/date-field/useDateFieldSegmentState.js +381 -0
  34. package/lib/commonjs/date-field/useDateFieldSegmentState.js.map +1 -0
  35. package/lib/commonjs/date-field/useRangeDateFieldBridge.js +67 -0
  36. package/lib/commonjs/date-field/useRangeDateFieldBridge.js.map +1 -0
  37. package/lib/commonjs/date-picker/DatePickerRoot.js +123 -0
  38. package/lib/commonjs/date-picker/DatePickerRoot.js.map +1 -0
  39. package/lib/commonjs/date-picker/context.js +17 -0
  40. package/lib/commonjs/date-picker/context.js.map +1 -0
  41. package/lib/commonjs/date-picker/index.js +26 -0
  42. package/lib/commonjs/date-picker/index.js.map +1 -0
  43. package/lib/commonjs/date-range-picker/DateRangePickerRoot.js +144 -0
  44. package/lib/commonjs/date-range-picker/DateRangePickerRoot.js.map +1 -0
  45. package/lib/commonjs/date-range-picker/context.js +23 -0
  46. package/lib/commonjs/date-range-picker/context.js.map +1 -0
  47. package/lib/commonjs/date-range-picker/index.js +26 -0
  48. package/lib/commonjs/date-range-picker/index.js.map +1 -0
  49. package/lib/commonjs/date-time-field/DateTimeFieldHiddenInput.js +150 -0
  50. package/lib/commonjs/date-time-field/DateTimeFieldHiddenInput.js.map +1 -0
  51. package/lib/commonjs/date-time-field/DateTimeFieldInput.js +104 -0
  52. package/lib/commonjs/date-time-field/DateTimeFieldInput.js.map +1 -0
  53. package/lib/commonjs/date-time-field/DateTimeFieldRoot.js +159 -0
  54. package/lib/commonjs/date-time-field/DateTimeFieldRoot.js.map +1 -0
  55. package/lib/commonjs/date-time-field/DateTimeFieldSegment.js +87 -0
  56. package/lib/commonjs/date-time-field/DateTimeFieldSegment.js.map +1 -0
  57. package/lib/commonjs/date-time-field/context.js +17 -0
  58. package/lib/commonjs/date-time-field/context.js.map +1 -0
  59. package/lib/commonjs/date-time-field/index.js +40 -0
  60. package/lib/commonjs/date-time-field/index.js.map +1 -0
  61. package/lib/commonjs/date-time-field/useDateTimeFieldSegmentState.js +564 -0
  62. package/lib/commonjs/date-time-field/useDateTimeFieldSegmentState.js.map +1 -0
  63. package/lib/commonjs/date-time-list/DateTimeListRoot.js +418 -0
  64. package/lib/commonjs/date-time-list/DateTimeListRoot.js.map +1 -0
  65. package/lib/commonjs/date-time-list/context.js +26 -0
  66. package/lib/commonjs/date-time-list/context.js.map +1 -0
  67. package/lib/commonjs/date-time-list/index.js +62 -0
  68. package/lib/commonjs/date-time-list/index.js.map +1 -0
  69. package/lib/commonjs/date-time-picker/DateTimePickerRoot.js +134 -0
  70. package/lib/commonjs/date-time-picker/DateTimePickerRoot.js.map +1 -0
  71. package/lib/commonjs/date-time-picker/context.js +17 -0
  72. package/lib/commonjs/date-time-picker/context.js.map +1 -0
  73. package/lib/commonjs/date-time-picker/index.js +26 -0
  74. package/lib/commonjs/date-time-picker/index.js.map +1 -0
  75. package/lib/commonjs/dialog/DialogRoot.js +1 -1
  76. package/lib/commonjs/dialog/DialogRoot.js.map +1 -1
  77. package/lib/commonjs/index.js +148 -0
  78. package/lib/commonjs/index.js.map +1 -1
  79. package/lib/commonjs/month-calendar/MonthCalendarCell.js +64 -0
  80. package/lib/commonjs/month-calendar/MonthCalendarCell.js.map +1 -0
  81. package/lib/commonjs/month-calendar/MonthCalendarRoot.js +103 -0
  82. package/lib/commonjs/month-calendar/MonthCalendarRoot.js.map +1 -0
  83. package/lib/commonjs/month-calendar/MonthCalendarYearCell.js +63 -0
  84. package/lib/commonjs/month-calendar/MonthCalendarYearCell.js.map +1 -0
  85. package/lib/commonjs/month-calendar/context.js +17 -0
  86. package/lib/commonjs/month-calendar/context.js.map +1 -0
  87. package/lib/commonjs/month-calendar/index.js +34 -0
  88. package/lib/commonjs/month-calendar/index.js.map +1 -0
  89. package/lib/commonjs/month-picker/MonthPickerRoot.js +118 -0
  90. package/lib/commonjs/month-picker/MonthPickerRoot.js.map +1 -0
  91. package/lib/commonjs/month-picker/context.js +17 -0
  92. package/lib/commonjs/month-picker/context.js.map +1 -0
  93. package/lib/commonjs/month-picker/index.js +26 -0
  94. package/lib/commonjs/month-picker/index.js.map +1 -0
  95. package/lib/commonjs/overlay/useAnchorPosition.js +27 -16
  96. package/lib/commonjs/overlay/useAnchorPosition.js.map +1 -1
  97. package/lib/commonjs/overlay/useDismissOverlay.web.js +10 -2
  98. package/lib/commonjs/overlay/useDismissOverlay.web.js.map +1 -1
  99. package/lib/commonjs/overlay/useOverlayPosition.js +5 -2
  100. package/lib/commonjs/overlay/useOverlayPosition.js.map +1 -1
  101. package/lib/commonjs/portal/portal.js +59 -2
  102. package/lib/commonjs/portal/portal.js.map +1 -1
  103. package/lib/commonjs/radio/RadioGroup.js +65 -16
  104. package/lib/commonjs/radio/RadioGroup.js.map +1 -1
  105. package/lib/commonjs/radio/RadioRoot.web.js +114 -26
  106. package/lib/commonjs/radio/RadioRoot.web.js.map +1 -1
  107. package/lib/commonjs/radio/context.js.map +1 -1
  108. package/lib/commonjs/radio/useRadioGroupNavigation.js +79 -0
  109. package/lib/commonjs/radio/useRadioGroupNavigation.js.map +1 -0
  110. package/lib/commonjs/radio/useRadioRoot.js +14 -13
  111. package/lib/commonjs/radio/useRadioRoot.js.map +1 -1
  112. package/lib/commonjs/range-calendar/RangeCalendarRoot.js +148 -0
  113. package/lib/commonjs/range-calendar/RangeCalendarRoot.js.map +1 -0
  114. package/lib/commonjs/range-calendar/context.js +17 -0
  115. package/lib/commonjs/range-calendar/context.js.map +1 -0
  116. package/lib/commonjs/range-calendar/index.js +20 -0
  117. package/lib/commonjs/range-calendar/index.js.map +1 -0
  118. package/lib/commonjs/select/SelectRoot.js +1 -1
  119. package/lib/commonjs/select/SelectRoot.js.map +1 -1
  120. package/lib/commonjs/utils/accessibleLabel.js +23 -0
  121. package/lib/commonjs/utils/accessibleLabel.js.map +1 -0
  122. package/lib/commonjs/utils/createPortal.web.js +21 -0
  123. package/lib/commonjs/utils/createPortal.web.js.map +1 -0
  124. package/lib/module/calendar/CalendarGrid.js +29 -0
  125. package/lib/module/calendar/CalendarGrid.js.map +1 -0
  126. package/lib/module/calendar/CalendarRoot.js +91 -0
  127. package/lib/module/calendar/CalendarRoot.js.map +1 -0
  128. package/lib/module/calendar/context.js +12 -0
  129. package/lib/module/calendar/context.js.map +1 -0
  130. package/lib/module/calendar/index.js +6 -0
  131. package/lib/module/calendar/index.js.map +1 -0
  132. package/lib/module/calendar/types.js +4 -0
  133. package/lib/module/calendar/types.js.map +1 -0
  134. package/lib/module/checkbox/CheckboxRoot.web.js +92 -29
  135. package/lib/module/checkbox/CheckboxRoot.web.js.map +1 -1
  136. package/lib/module/checkbox/useCheckboxRoot.js +34 -20
  137. package/lib/module/checkbox/useCheckboxRoot.js.map +1 -1
  138. package/lib/module/date-field/DateFieldHiddenInput.js +146 -0
  139. package/lib/module/date-field/DateFieldHiddenInput.js.map +1 -0
  140. package/lib/module/date-field/DateFieldInput.js +118 -0
  141. package/lib/module/date-field/DateFieldInput.js.map +1 -0
  142. package/lib/module/date-field/DateFieldRoot.js +81 -0
  143. package/lib/module/date-field/DateFieldRoot.js.map +1 -0
  144. package/lib/module/date-field/DateFieldSegment.js +88 -0
  145. package/lib/module/date-field/DateFieldSegment.js.map +1 -0
  146. package/lib/module/date-field/context.js +15 -0
  147. package/lib/module/date-field/context.js.map +1 -0
  148. package/lib/module/date-field/index.js +7 -0
  149. package/lib/module/date-field/index.js.map +1 -0
  150. package/lib/module/date-field/segmentIndex.js +18 -0
  151. package/lib/module/date-field/segmentIndex.js.map +1 -0
  152. package/lib/module/date-field/segmentKeyboard.js +157 -0
  153. package/lib/module/date-field/segmentKeyboard.js.map +1 -0
  154. package/lib/module/date-field/types.js +4 -0
  155. package/lib/module/date-field/types.js.map +1 -0
  156. package/lib/module/date-field/useDateFieldSegmentState.js +378 -0
  157. package/lib/module/date-field/useDateFieldSegmentState.js.map +1 -0
  158. package/lib/module/date-field/useRangeDateFieldBridge.js +63 -0
  159. package/lib/module/date-field/useRangeDateFieldBridge.js.map +1 -0
  160. package/lib/module/date-picker/DatePickerRoot.js +119 -0
  161. package/lib/module/date-picker/DatePickerRoot.js.map +1 -0
  162. package/lib/module/date-picker/context.js +12 -0
  163. package/lib/module/date-picker/context.js.map +1 -0
  164. package/lib/module/date-picker/index.js +5 -0
  165. package/lib/module/date-picker/index.js.map +1 -0
  166. package/lib/module/date-range-picker/DateRangePickerRoot.js +140 -0
  167. package/lib/module/date-range-picker/DateRangePickerRoot.js.map +1 -0
  168. package/lib/module/date-range-picker/context.js +19 -0
  169. package/lib/module/date-range-picker/context.js.map +1 -0
  170. package/lib/module/date-range-picker/index.js +5 -0
  171. package/lib/module/date-range-picker/index.js.map +1 -0
  172. package/lib/module/date-time-field/DateTimeFieldHiddenInput.js +148 -0
  173. package/lib/module/date-time-field/DateTimeFieldHiddenInput.js.map +1 -0
  174. package/lib/module/date-time-field/DateTimeFieldInput.js +100 -0
  175. package/lib/module/date-time-field/DateTimeFieldInput.js.map +1 -0
  176. package/lib/module/date-time-field/DateTimeFieldRoot.js +154 -0
  177. package/lib/module/date-time-field/DateTimeFieldRoot.js.map +1 -0
  178. package/lib/module/date-time-field/DateTimeFieldSegment.js +83 -0
  179. package/lib/module/date-time-field/DateTimeFieldSegment.js.map +1 -0
  180. package/lib/module/date-time-field/context.js +12 -0
  181. package/lib/module/date-time-field/context.js.map +1 -0
  182. package/lib/module/date-time-field/index.js +7 -0
  183. package/lib/module/date-time-field/index.js.map +1 -0
  184. package/lib/module/date-time-field/useDateTimeFieldSegmentState.js +561 -0
  185. package/lib/module/date-time-field/useDateTimeFieldSegmentState.js.map +1 -0
  186. package/lib/module/date-time-list/DateTimeListRoot.js +416 -0
  187. package/lib/module/date-time-list/DateTimeListRoot.js.map +1 -0
  188. package/lib/module/date-time-list/context.js +20 -0
  189. package/lib/module/date-time-list/context.js.map +1 -0
  190. package/lib/module/date-time-list/index.js +5 -0
  191. package/lib/module/date-time-list/index.js.map +1 -0
  192. package/lib/module/date-time-picker/DateTimePickerRoot.js +130 -0
  193. package/lib/module/date-time-picker/DateTimePickerRoot.js.map +1 -0
  194. package/lib/module/date-time-picker/context.js +12 -0
  195. package/lib/module/date-time-picker/context.js.map +1 -0
  196. package/lib/module/date-time-picker/index.js +5 -0
  197. package/lib/module/date-time-picker/index.js.map +1 -0
  198. package/lib/module/dialog/DialogRoot.js +1 -1
  199. package/lib/module/dialog/DialogRoot.js.map +1 -1
  200. package/lib/module/index.js +11 -2
  201. package/lib/module/index.js.map +1 -1
  202. package/lib/module/month-calendar/MonthCalendarCell.js +60 -0
  203. package/lib/module/month-calendar/MonthCalendarCell.js.map +1 -0
  204. package/lib/module/month-calendar/MonthCalendarRoot.js +99 -0
  205. package/lib/module/month-calendar/MonthCalendarRoot.js.map +1 -0
  206. package/lib/module/month-calendar/MonthCalendarYearCell.js +59 -0
  207. package/lib/module/month-calendar/MonthCalendarYearCell.js.map +1 -0
  208. package/lib/module/month-calendar/context.js +12 -0
  209. package/lib/module/month-calendar/context.js.map +1 -0
  210. package/lib/module/month-calendar/index.js +7 -0
  211. package/lib/module/month-calendar/index.js.map +1 -0
  212. package/lib/module/month-picker/MonthPickerRoot.js +114 -0
  213. package/lib/module/month-picker/MonthPickerRoot.js.map +1 -0
  214. package/lib/module/month-picker/context.js +12 -0
  215. package/lib/module/month-picker/context.js.map +1 -0
  216. package/lib/module/month-picker/index.js +5 -0
  217. package/lib/module/month-picker/index.js.map +1 -0
  218. package/lib/module/overlay/useAnchorPosition.js +27 -16
  219. package/lib/module/overlay/useAnchorPosition.js.map +1 -1
  220. package/lib/module/overlay/useDismissOverlay.web.js +9 -2
  221. package/lib/module/overlay/useDismissOverlay.web.js.map +1 -1
  222. package/lib/module/overlay/useOverlayPosition.js +5 -2
  223. package/lib/module/overlay/useOverlayPosition.js.map +1 -1
  224. package/lib/module/portal/portal.js +59 -2
  225. package/lib/module/portal/portal.js.map +1 -1
  226. package/lib/module/radio/RadioGroup.js +68 -19
  227. package/lib/module/radio/RadioGroup.js.map +1 -1
  228. package/lib/module/radio/RadioRoot.web.js +117 -29
  229. package/lib/module/radio/RadioRoot.web.js.map +1 -1
  230. package/lib/module/radio/context.js.map +1 -1
  231. package/lib/module/radio/useRadioGroupNavigation.js +74 -0
  232. package/lib/module/radio/useRadioGroupNavigation.js.map +1 -0
  233. package/lib/module/radio/useRadioRoot.js +14 -13
  234. package/lib/module/radio/useRadioRoot.js.map +1 -1
  235. package/lib/module/range-calendar/RangeCalendarRoot.js +144 -0
  236. package/lib/module/range-calendar/RangeCalendarRoot.js.map +1 -0
  237. package/lib/module/range-calendar/context.js +12 -0
  238. package/lib/module/range-calendar/context.js.map +1 -0
  239. package/lib/module/range-calendar/index.js +5 -0
  240. package/lib/module/range-calendar/index.js.map +1 -0
  241. package/lib/module/select/SelectRoot.js +1 -1
  242. package/lib/module/select/SelectRoot.js.map +1 -1
  243. package/lib/module/utils/accessibleLabel.js +18 -0
  244. package/lib/module/utils/accessibleLabel.js.map +1 -0
  245. package/lib/module/utils/createPortal.web.js +17 -0
  246. package/lib/module/utils/createPortal.web.js.map +1 -0
  247. package/lib/typescript/calendar/CalendarGrid.d.ts +7 -0
  248. package/lib/typescript/calendar/CalendarGrid.d.ts.map +1 -0
  249. package/lib/typescript/calendar/CalendarRoot.d.ts +10 -0
  250. package/lib/typescript/calendar/CalendarRoot.d.ts.map +1 -0
  251. package/lib/typescript/calendar/context.d.ts +18 -0
  252. package/lib/typescript/calendar/context.d.ts.map +1 -0
  253. package/lib/typescript/calendar/index.d.ts +5 -0
  254. package/lib/typescript/calendar/index.d.ts.map +1 -0
  255. package/lib/typescript/calendar/types.d.ts +29 -0
  256. package/lib/typescript/calendar/types.d.ts.map +1 -0
  257. package/lib/typescript/checkbox/CheckboxRoot.web.d.ts +8 -0
  258. package/lib/typescript/checkbox/CheckboxRoot.web.d.ts.map +1 -1
  259. package/lib/typescript/checkbox/useCheckboxRoot.d.ts +7 -18
  260. package/lib/typescript/checkbox/useCheckboxRoot.d.ts.map +1 -1
  261. package/lib/typescript/date-field/DateFieldHiddenInput.d.ts +4 -0
  262. package/lib/typescript/date-field/DateFieldHiddenInput.d.ts.map +1 -0
  263. package/lib/typescript/date-field/DateFieldInput.d.ts +8 -0
  264. package/lib/typescript/date-field/DateFieldInput.d.ts.map +1 -0
  265. package/lib/typescript/date-field/DateFieldRoot.d.ts +10 -0
  266. package/lib/typescript/date-field/DateFieldRoot.d.ts.map +1 -0
  267. package/lib/typescript/date-field/DateFieldSegment.d.ts +9 -0
  268. package/lib/typescript/date-field/DateFieldSegment.d.ts.map +1 -0
  269. package/lib/typescript/date-field/context.d.ts +33 -0
  270. package/lib/typescript/date-field/context.d.ts.map +1 -0
  271. package/lib/typescript/date-field/index.d.ts +9 -0
  272. package/lib/typescript/date-field/index.d.ts.map +1 -0
  273. package/lib/typescript/date-field/segmentIndex.d.ts +7 -0
  274. package/lib/typescript/date-field/segmentIndex.d.ts.map +1 -0
  275. package/lib/typescript/date-field/segmentKeyboard.d.ts +23 -0
  276. package/lib/typescript/date-field/segmentKeyboard.d.ts.map +1 -0
  277. package/lib/typescript/date-field/types.d.ts +38 -0
  278. package/lib/typescript/date-field/types.d.ts.map +1 -0
  279. package/lib/typescript/date-field/useDateFieldSegmentState.d.ts +26 -0
  280. package/lib/typescript/date-field/useDateFieldSegmentState.d.ts.map +1 -0
  281. package/lib/typescript/date-field/useRangeDateFieldBridge.d.ts +4 -0
  282. package/lib/typescript/date-field/useRangeDateFieldBridge.d.ts.map +1 -0
  283. package/lib/typescript/date-picker/DatePickerRoot.d.ts +28 -0
  284. package/lib/typescript/date-picker/DatePickerRoot.d.ts.map +1 -0
  285. package/lib/typescript/date-picker/context.d.ts +25 -0
  286. package/lib/typescript/date-picker/context.d.ts.map +1 -0
  287. package/lib/typescript/date-picker/index.d.ts +5 -0
  288. package/lib/typescript/date-picker/index.d.ts.map +1 -0
  289. package/lib/typescript/date-range-picker/DateRangePickerRoot.d.ts +43 -0
  290. package/lib/typescript/date-range-picker/DateRangePickerRoot.d.ts.map +1 -0
  291. package/lib/typescript/date-range-picker/context.d.ts +42 -0
  292. package/lib/typescript/date-range-picker/context.d.ts.map +1 -0
  293. package/lib/typescript/date-range-picker/index.d.ts +4 -0
  294. package/lib/typescript/date-range-picker/index.d.ts.map +1 -0
  295. package/lib/typescript/date-time-field/DateTimeFieldHiddenInput.d.ts +4 -0
  296. package/lib/typescript/date-time-field/DateTimeFieldHiddenInput.d.ts.map +1 -0
  297. package/lib/typescript/date-time-field/DateTimeFieldInput.d.ts +10 -0
  298. package/lib/typescript/date-time-field/DateTimeFieldInput.d.ts.map +1 -0
  299. package/lib/typescript/date-time-field/DateTimeFieldRoot.d.ts +24 -0
  300. package/lib/typescript/date-time-field/DateTimeFieldRoot.d.ts.map +1 -0
  301. package/lib/typescript/date-time-field/DateTimeFieldSegment.d.ts +10 -0
  302. package/lib/typescript/date-time-field/DateTimeFieldSegment.d.ts.map +1 -0
  303. package/lib/typescript/date-time-field/context.d.ts +27 -0
  304. package/lib/typescript/date-time-field/context.d.ts.map +1 -0
  305. package/lib/typescript/date-time-field/index.d.ts +8 -0
  306. package/lib/typescript/date-time-field/index.d.ts.map +1 -0
  307. package/lib/typescript/date-time-field/useDateTimeFieldSegmentState.d.ts +26 -0
  308. package/lib/typescript/date-time-field/useDateTimeFieldSegmentState.d.ts.map +1 -0
  309. package/lib/typescript/date-time-list/DateTimeListRoot.d.ts +42 -0
  310. package/lib/typescript/date-time-list/DateTimeListRoot.d.ts.map +1 -0
  311. package/lib/typescript/date-time-list/context.d.ts +29 -0
  312. package/lib/typescript/date-time-list/context.d.ts.map +1 -0
  313. package/lib/typescript/date-time-list/index.d.ts +4 -0
  314. package/lib/typescript/date-time-list/index.d.ts.map +1 -0
  315. package/lib/typescript/date-time-picker/DateTimePickerRoot.d.ts +36 -0
  316. package/lib/typescript/date-time-picker/DateTimePickerRoot.d.ts.map +1 -0
  317. package/lib/typescript/date-time-picker/context.d.ts +25 -0
  318. package/lib/typescript/date-time-picker/context.d.ts.map +1 -0
  319. package/lib/typescript/date-time-picker/index.d.ts +4 -0
  320. package/lib/typescript/date-time-picker/index.d.ts.map +1 -0
  321. package/lib/typescript/dialog/types.d.ts +2 -1
  322. package/lib/typescript/dialog/types.d.ts.map +1 -1
  323. package/lib/typescript/index.d.ts +11 -2
  324. package/lib/typescript/index.d.ts.map +1 -1
  325. package/lib/typescript/month-calendar/MonthCalendarCell.d.ts +9 -0
  326. package/lib/typescript/month-calendar/MonthCalendarCell.d.ts.map +1 -0
  327. package/lib/typescript/month-calendar/MonthCalendarRoot.d.ts +30 -0
  328. package/lib/typescript/month-calendar/MonthCalendarRoot.d.ts.map +1 -0
  329. package/lib/typescript/month-calendar/MonthCalendarYearCell.d.ts +9 -0
  330. package/lib/typescript/month-calendar/MonthCalendarYearCell.d.ts.map +1 -0
  331. package/lib/typescript/month-calendar/context.d.ts +20 -0
  332. package/lib/typescript/month-calendar/context.d.ts.map +1 -0
  333. package/lib/typescript/month-calendar/index.d.ts +7 -0
  334. package/lib/typescript/month-calendar/index.d.ts.map +1 -0
  335. package/lib/typescript/month-picker/MonthPickerRoot.d.ts +29 -0
  336. package/lib/typescript/month-picker/MonthPickerRoot.d.ts.map +1 -0
  337. package/lib/typescript/month-picker/context.d.ts +23 -0
  338. package/lib/typescript/month-picker/context.d.ts.map +1 -0
  339. package/lib/typescript/month-picker/index.d.ts +4 -0
  340. package/lib/typescript/month-picker/index.d.ts.map +1 -0
  341. package/lib/typescript/overlay/useAnchorPosition.d.ts.map +1 -1
  342. package/lib/typescript/overlay/useDismissOverlay.web.d.ts.map +1 -1
  343. package/lib/typescript/overlay/useOverlayPosition.d.ts.map +1 -1
  344. package/lib/typescript/portal/portal.d.ts.map +1 -1
  345. package/lib/typescript/radio/RadioGroup.d.ts.map +1 -1
  346. package/lib/typescript/radio/RadioRoot.web.d.ts +8 -0
  347. package/lib/typescript/radio/RadioRoot.web.d.ts.map +1 -1
  348. package/lib/typescript/radio/context.d.ts +6 -1
  349. package/lib/typescript/radio/context.d.ts.map +1 -1
  350. package/lib/typescript/radio/types.d.ts +7 -0
  351. package/lib/typescript/radio/types.d.ts.map +1 -1
  352. package/lib/typescript/radio/useRadioGroupNavigation.d.ts +17 -0
  353. package/lib/typescript/radio/useRadioGroupNavigation.d.ts.map +1 -0
  354. package/lib/typescript/radio/useRadioRoot.d.ts +4 -18
  355. package/lib/typescript/radio/useRadioRoot.d.ts.map +1 -1
  356. package/lib/typescript/range-calendar/RangeCalendarRoot.d.ts +34 -0
  357. package/lib/typescript/range-calendar/RangeCalendarRoot.d.ts.map +1 -0
  358. package/lib/typescript/range-calendar/context.d.ts +26 -0
  359. package/lib/typescript/range-calendar/context.d.ts.map +1 -0
  360. package/lib/typescript/range-calendar/index.d.ts +5 -0
  361. package/lib/typescript/range-calendar/index.d.ts.map +1 -0
  362. package/lib/typescript/select/types.d.ts +2 -1
  363. package/lib/typescript/select/types.d.ts.map +1 -1
  364. package/lib/typescript/utils/accessibleLabel.d.ts +13 -0
  365. package/lib/typescript/utils/accessibleLabel.d.ts.map +1 -0
  366. package/lib/typescript/utils/createPortal.web.d.ts +17 -0
  367. package/lib/typescript/utils/createPortal.web.d.ts.map +1 -0
  368. package/package.json +3 -2
  369. package/src/calendar/CalendarGrid.tsx +29 -0
  370. package/src/calendar/CalendarRoot.tsx +138 -0
  371. package/src/calendar/context.tsx +28 -0
  372. package/src/calendar/index.ts +4 -0
  373. package/src/calendar/types.ts +30 -0
  374. package/src/checkbox/CheckboxRoot.web.tsx +105 -29
  375. package/src/checkbox/useCheckboxRoot.ts +37 -15
  376. package/src/date-field/DateFieldHiddenInput.tsx +152 -0
  377. package/src/date-field/DateFieldInput.tsx +138 -0
  378. package/src/date-field/DateFieldRoot.tsx +117 -0
  379. package/src/date-field/DateFieldSegment.tsx +97 -0
  380. package/src/date-field/context.tsx +48 -0
  381. package/src/date-field/index.ts +8 -0
  382. package/src/date-field/segmentIndex.tsx +17 -0
  383. package/src/date-field/segmentKeyboard.ts +207 -0
  384. package/src/date-field/types.ts +40 -0
  385. package/src/date-field/useDateFieldSegmentState.ts +455 -0
  386. package/src/date-field/useRangeDateFieldBridge.ts +78 -0
  387. package/src/date-picker/DatePickerRoot.tsx +186 -0
  388. package/src/date-picker/context.tsx +34 -0
  389. package/src/date-picker/index.ts +4 -0
  390. package/src/date-range-picker/DateRangePickerRoot.tsx +236 -0
  391. package/src/date-range-picker/context.tsx +48 -0
  392. package/src/date-range-picker/index.ts +8 -0
  393. package/src/date-time-field/DateTimeFieldHiddenInput.tsx +156 -0
  394. package/src/date-time-field/DateTimeFieldInput.tsx +119 -0
  395. package/src/date-time-field/DateTimeFieldRoot.tsx +209 -0
  396. package/src/date-time-field/DateTimeFieldSegment.tsx +95 -0
  397. package/src/date-time-field/context.tsx +41 -0
  398. package/src/date-time-field/index.ts +7 -0
  399. package/src/date-time-field/useDateTimeFieldSegmentState.ts +672 -0
  400. package/src/date-time-list/DateTimeListRoot.tsx +530 -0
  401. package/src/date-time-list/context.tsx +45 -0
  402. package/src/date-time-list/index.ts +16 -0
  403. package/src/date-time-picker/DateTimePickerRoot.tsx +210 -0
  404. package/src/date-time-picker/context.tsx +33 -0
  405. package/src/date-time-picker/index.ts +7 -0
  406. package/src/dialog/DialogRoot.tsx +1 -1
  407. package/src/dialog/types.ts +2 -1
  408. package/src/index.ts +21 -2
  409. package/src/month-calendar/MonthCalendarCell.tsx +53 -0
  410. package/src/month-calendar/MonthCalendarRoot.tsx +153 -0
  411. package/src/month-calendar/MonthCalendarYearCell.tsx +54 -0
  412. package/src/month-calendar/context.tsx +30 -0
  413. package/src/month-calendar/index.ts +6 -0
  414. package/src/month-picker/MonthPickerRoot.tsx +183 -0
  415. package/src/month-picker/context.tsx +31 -0
  416. package/src/month-picker/index.ts +3 -0
  417. package/src/overlay/useAnchorPosition.ts +25 -11
  418. package/src/overlay/useDismissOverlay.web.ts +10 -2
  419. package/src/overlay/useOverlayPosition.ts +5 -2
  420. package/src/portal/portal.tsx +79 -2
  421. package/src/radio/RadioGroup.tsx +84 -20
  422. package/src/radio/RadioRoot.web.tsx +136 -31
  423. package/src/radio/context.tsx +6 -1
  424. package/src/radio/types.ts +6 -0
  425. package/src/radio/useRadioGroupNavigation.ts +104 -0
  426. package/src/radio/useRadioRoot.ts +18 -11
  427. package/src/range-calendar/RangeCalendarRoot.tsx +213 -0
  428. package/src/range-calendar/context.tsx +33 -0
  429. package/src/range-calendar/index.ts +4 -0
  430. package/src/select/SelectRoot.tsx +1 -1
  431. package/src/select/types.ts +2 -1
  432. package/src/utils/accessibleLabel.ts +22 -0
  433. package/src/utils/createPortal.web.ts +18 -0
@@ -0,0 +1,118 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.MonthPickerRoot = void 0;
7
+ var _react = require("react");
8
+ var _reactNative = require("react-native");
9
+ var _formatters = require("@cdx-ui/formatters");
10
+ var _utils = require("@cdx-ui/utils");
11
+ var _DateFieldRoot = require("../date-field/DateFieldRoot");
12
+ var _slot = require("../slot");
13
+ var _dataAttributes = require("../utils/dataAttributes");
14
+ var _context = require("./context");
15
+ var _jsxRuntime = require("react/jsx-runtime");
16
+ const MonthPickerRoot = exports.MonthPickerRoot = /*#__PURE__*/(0, _react.forwardRef)(({
17
+ asChild,
18
+ children,
19
+ value: valueProp,
20
+ defaultValue,
21
+ onValueChange,
22
+ isOpen: openProp,
23
+ defaultOpen = false,
24
+ onOpenChange,
25
+ isDisabled: disabled = false,
26
+ isReadOnly,
27
+ isInvalid,
28
+ isRequired,
29
+ minValue,
30
+ maxValue,
31
+ locale = 'en-US',
32
+ labels: labelsProp,
33
+ ...props
34
+ }, ref) => {
35
+ const labels = (0, _react.useMemo)(() => (0, _formatters.resolveDateComponentLabels)(labelsProp), [labelsProp]);
36
+ const [value, setValue] = (0, _utils.useControllableState)({
37
+ prop: valueProp,
38
+ defaultProp: defaultValue,
39
+ onChange: onValueChange
40
+ });
41
+ const [open, setOpenState] = (0, _utils.useControllableState)({
42
+ prop: openProp,
43
+ defaultProp: defaultOpen,
44
+ onChange: onOpenChange
45
+ });
46
+ const [draftValue, setDraftValue] = (0, _react.useState)(value);
47
+ const surfacesRef = (0, _react.useRef)(new Set());
48
+ const anchorRef = (0, _react.useRef)(null);
49
+ const triggerRef = (0, _react.useRef)(null);
50
+ const setOpen = (0, _react.useCallback)(next => {
51
+ if (disabled && next) {
52
+ return;
53
+ }
54
+ if (next) {
55
+ setDraftValue(value);
56
+ }
57
+ setOpenState(next);
58
+ }, [disabled, setOpenState, value]);
59
+ const registerSurface = (0, _react.useCallback)(type => {
60
+ if (surfacesRef.current.has(type)) {
61
+ return;
62
+ }
63
+ surfacesRef.current.add(type);
64
+ if (surfacesRef.current.size > 1) {
65
+ console.warn('[Forge UI] MonthPicker: multiple presentation surfaces detected. Use only one of Popover, Dialog, or BottomSheet.');
66
+ }
67
+ }, []);
68
+ (0, _react.useEffect)(() => {
69
+ setDraftValue(value);
70
+ }, [value]);
71
+ (0, _react.useEffect)(() => {
72
+ if (!open) {
73
+ surfacesRef.current.clear();
74
+ }
75
+ }, [open]);
76
+ const contextValue = (0, _react.useMemo)(() => ({
77
+ value,
78
+ onValueChange: setValue,
79
+ draftValue,
80
+ setDraftValue,
81
+ open: open ?? false,
82
+ setOpen,
83
+ disabled,
84
+ minValue,
85
+ maxValue,
86
+ locale,
87
+ labels,
88
+ registerSurface,
89
+ anchorRef,
90
+ triggerRef
91
+ }), [value, setValue, draftValue, open, setOpen, disabled, minValue, maxValue, locale, labels, registerSurface]);
92
+ const Comp = asChild ? _slot.Slot : _reactNative.View;
93
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_context.MonthPickerContext.Provider, {
94
+ value: contextValue,
95
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(Comp, {
96
+ ref: (0, _utils.mergeRefs)(ref, anchorRef),
97
+ ...props,
98
+ ...(0, _dataAttributes.mergeDataAttributes)(props, (0, _dataAttributes.dataAttributes)({
99
+ disabled,
100
+ open
101
+ })),
102
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_DateFieldRoot.DateFieldRoot, {
103
+ value: value,
104
+ onValueChange: next => setValue(next),
105
+ mode: "month",
106
+ locale: locale,
107
+ labels: labelsProp,
108
+ isDisabled: disabled,
109
+ isReadOnly: isReadOnly,
110
+ isInvalid: isInvalid,
111
+ isRequired: isRequired,
112
+ children: children
113
+ })
114
+ })
115
+ });
116
+ });
117
+ MonthPickerRoot.displayName = 'MonthPickerRoot';
118
+ //# sourceMappingURL=MonthPickerRoot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","require","_reactNative","_formatters","_utils","_DateFieldRoot","_slot","_dataAttributes","_context","_jsxRuntime","MonthPickerRoot","exports","forwardRef","asChild","children","value","valueProp","defaultValue","onValueChange","isOpen","openProp","defaultOpen","onOpenChange","isDisabled","disabled","isReadOnly","isInvalid","isRequired","minValue","maxValue","locale","labels","labelsProp","props","ref","useMemo","resolveDateComponentLabels","setValue","useControllableState","prop","defaultProp","onChange","open","setOpenState","draftValue","setDraftValue","useState","surfacesRef","useRef","Set","anchorRef","triggerRef","setOpen","useCallback","next","registerSurface","type","current","has","add","size","console","warn","useEffect","clear","contextValue","Comp","Slot","View","jsx","MonthPickerContext","Provider","mergeRefs","mergeDataAttributes","dataAttributes","DateFieldRoot","mode","displayName"],"sourceRoot":"../../../src","sources":["month-picker/MonthPickerRoot.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.MonthPickerContext = void 0;
7
+ exports.useMonthPickerContext = useMonthPickerContext;
8
+ var _react = require("react");
9
+ const MonthPickerContext = exports.MonthPickerContext = /*#__PURE__*/(0, _react.createContext)(null);
10
+ function useMonthPickerContext() {
11
+ const ctx = (0, _react.useContext)(MonthPickerContext);
12
+ if (!ctx) {
13
+ throw new Error('MonthPicker compound components must be used within MonthPickerRoot');
14
+ }
15
+ return ctx;
16
+ }
17
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","require","MonthPickerContext","exports","createContext","useMonthPickerContext","ctx","useContext","Error"],"sourceRoot":"../../../src","sources":["month-picker/context.tsx"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAsBO,MAAMC,kBAAkB,GAAAC,OAAA,CAAAD,kBAAA,gBAAG,IAAAE,oBAAa,EAAiC,IAAI,CAAC;AAE9E,SAASC,qBAAqBA,CAAA,EAA4B;EAC/D,MAAMC,GAAG,GAAG,IAAAC,iBAAU,EAACL,kBAAkB,CAAC;EAC1C,IAAI,CAACI,GAAG,EAAE;IACR,MAAM,IAAIE,KAAK,CAAC,qEAAqE,CAAC;EACxF;EACA,OAAOF,GAAG;AACZ","ignoreList":[]}
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "MonthPickerContext", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _context.MonthPickerContext;
10
+ }
11
+ });
12
+ Object.defineProperty(exports, "MonthPickerRoot", {
13
+ enumerable: true,
14
+ get: function () {
15
+ return _MonthPickerRoot.MonthPickerRoot;
16
+ }
17
+ });
18
+ Object.defineProperty(exports, "useMonthPickerContext", {
19
+ enumerable: true,
20
+ get: function () {
21
+ return _context.useMonthPickerContext;
22
+ }
23
+ });
24
+ var _MonthPickerRoot = require("./MonthPickerRoot");
25
+ var _context = require("./context");
26
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_MonthPickerRoot","require","_context"],"sourceRoot":"../../../src","sources":["month-picker/index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,gBAAA,GAAAC,OAAA;AAEA,IAAAC,QAAA,GAAAD,OAAA","ignoreList":[]}
@@ -60,24 +60,35 @@ function useAnchorPosition(anchorRef, open, options) {
60
60
  return;
61
61
  }
62
62
  let cancelled = false;
63
- if (_reactNative.Platform.OS === 'web') {
64
- measureAnchor();
65
- } else {
66
- const anchor = anchorRef.current;
67
- if (!anchor) {
68
- return;
63
+ const runMeasure = () => {
64
+ if (!cancelled) {
65
+ measureAnchor();
69
66
  }
70
- anchor.measureInWindow((x, y, width, height) => {
71
- if (!cancelled) {
72
- setLayoutIfChanged(setLayout, {
73
- x,
74
- y,
75
- width,
76
- height
77
- });
78
- }
79
- });
67
+ };
68
+ runMeasure();
69
+ if (_reactNative.Platform.OS === 'web') {
70
+ const frame = requestAnimationFrame(runMeasure);
71
+ return () => {
72
+ cancelled = true;
73
+ cancelAnimationFrame(frame);
74
+ };
80
75
  }
76
+ const anchor = anchorRef.current;
77
+ if (!anchor) {
78
+ return () => {
79
+ cancelled = true;
80
+ };
81
+ }
82
+ anchor.measureInWindow((x, y, width, height) => {
83
+ if (!cancelled) {
84
+ setLayoutIfChanged(setLayout, {
85
+ x,
86
+ y,
87
+ width,
88
+ height
89
+ });
90
+ }
91
+ });
81
92
  return () => {
82
93
  cancelled = true;
83
94
  };
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_reactNative","useIsomorphicLayoutEffect","Platform","OS","useLayoutEffect","useEffect","measureWeb","element","rect","getBoundingClientRect","x","left","y","top","width","height","setLayoutIfChanged","setLayout","next","prev","useAnchorPosition","anchorRef","open","options","remeasureKey","trackWhileOpen","layout","useState","measureAnchor","anchor","current","measureInWindow","cancelled","frameId","tick","requestAnimationFrame","cancelAnimationFrame","update","window","addEventListener","removeEventListener"],"sourceRoot":"../../../src","sources":["overlay/useAnchorPosition.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","require","_reactNative","useIsomorphicLayoutEffect","Platform","OS","useLayoutEffect","useEffect","measureWeb","element","rect","getBoundingClientRect","x","left","y","top","width","height","setLayoutIfChanged","setLayout","next","prev","useAnchorPosition","anchorRef","open","options","remeasureKey","trackWhileOpen","layout","useState","measureAnchor","anchor","current","measureInWindow","cancelled","runMeasure","frame","requestAnimationFrame","cancelAnimationFrame","frameId","tick","update","window","addEventListener","removeEventListener"],"sourceRoot":"../../../src","sources":["overlay/useAnchorPosition.ts"],"mappings":"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","ignoreList":[]}
@@ -5,6 +5,14 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.useDismissOverlay = useDismissOverlay;
7
7
  var _react = require("react");
8
+ function refContainsNode(ref, target) {
9
+ const current = ref.current;
10
+ if (!current || typeof current.contains !== 'function') {
11
+ return false;
12
+ }
13
+ return current.contains(target);
14
+ }
15
+
8
16
  /**
9
17
  * Dismisses an overlay when the user clicks/presses outside of it or when
10
18
  * focus moves to an element outside the overlay via keyboard.
@@ -20,11 +28,11 @@ function useDismissOverlay(open, contentRef, excludeRefs, onDismiss) {
20
28
  return;
21
29
  }
22
30
  const isInsideOverlay = target => {
23
- if (contentRef.current?.contains?.(target)) {
31
+ if (refContainsNode(contentRef, target)) {
24
32
  return true;
25
33
  }
26
34
  for (const ref of excludeRefsRef.current) {
27
- if (ref.current?.contains?.(target)) {
35
+ if (refContainsNode(ref, target)) {
28
36
  return true;
29
37
  }
30
38
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","useDismissOverlay","open","contentRef","excludeRefs","onDismiss","onDismissRef","useRef","current","excludeRefsRef","useEffect","isInsideOverlay","target","contains","ref","dismissIfOutside","e","document","addEventListener","removeEventListener"],"sourceRoot":"../../../src","sources":["overlay/useDismissOverlay.web.ts"],"mappings":";;;;;;AACA,IAAAA,MAAA,GAAAC,OAAA;AAEA;AACA;AACA;AACA;AACA;AACO,SAASC,iBAAiBA,CAC/BC,IAAa,EACbC,UAA0B,EAC1BC,WAA6B,EAC7BC,SAAqB,EACrB;EACA,MAAMC,YAAY,GAAG,IAAAC,aAAM,EAACF,SAAS,CAAC;EACtCC,YAAY,CAACE,OAAO,GAAGH,SAAS;EAEhC,MAAMI,cAAc,GAAG,IAAAF,aAAM,EAACH,WAAW,CAAC;EAC1CK,cAAc,CAACD,OAAO,GAAGJ,WAAW;EAEpC,IAAAM,gBAAS,EAAC,MAAM;IACd,IAAI,CAACR,IAAI,EAAE;MACT;IACF;IAEA,MAAMS,eAAe,GAAIC,MAAY,IAAK;MACxC,IAAIT,UAAU,CAACK,OAAO,EAAEK,QAAQ,GAAGD,MAAM,CAAC,EAAE;QAC1C,OAAO,IAAI;MACb;MACA,KAAK,MAAME,GAAG,IAAIL,cAAc,CAACD,OAAO,EAAE;QACxC,IAAIM,GAAG,CAACN,OAAO,EAAEK,QAAQ,GAAGD,MAAM,CAAC,EAAE;UACnC,OAAO,IAAI;QACb;MACF;MACA,OAAO,KAAK;IACd,CAAC;IAED,MAAMG,gBAAgB,GAAIC,CAAQ,IAAK;MACrC,IAAI,CAACL,eAAe,CAACK,CAAC,CAACJ,MAAc,CAAC,EAAE;QACtCN,YAAY,CAACE,OAAO,CAAC,CAAC;MACxB;IACF,CAAC;IAEDS,QAAQ,CAACC,gBAAgB,CAAC,aAAa,EAAEH,gBAAgB,CAAC;IAC1DE,QAAQ,CAACC,gBAAgB,CAAC,SAAS,EAAEH,gBAAgB,CAAC;IACtD,OAAO,MAAM;MACXE,QAAQ,CAACE,mBAAmB,CAAC,aAAa,EAAEJ,gBAAgB,CAAC;MAC7DE,QAAQ,CAACE,mBAAmB,CAAC,SAAS,EAAEJ,gBAAgB,CAAC;IAC3D,CAAC;EACH,CAAC,EAAE,CAACb,IAAI,EAAEC,UAAU,CAAC,CAAC;AACxB","ignoreList":[]}
1
+ {"version":3,"names":["_react","require","refContainsNode","ref","target","current","contains","useDismissOverlay","open","contentRef","excludeRefs","onDismiss","onDismissRef","useRef","excludeRefsRef","useEffect","isInsideOverlay","dismissIfOutside","e","document","addEventListener","removeEventListener"],"sourceRoot":"../../../src","sources":["overlay/useDismissOverlay.web.ts"],"mappings":";;;;;;AACA,IAAAA,MAAA,GAAAC,OAAA;AAEA,SAASC,eAAeA,CAACC,GAAuB,EAAEC,MAAY,EAAW;EACvE,MAAMC,OAAO,GAAGF,GAAG,CAACE,OAAwD;EAC5E,IAAI,CAACA,OAAO,IAAI,OAAOA,OAAO,CAACC,QAAQ,KAAK,UAAU,EAAE;IACtD,OAAO,KAAK;EACd;EACA,OAAOD,OAAO,CAACC,QAAQ,CAACF,MAAM,CAAC;AACjC;;AAEA;AACA;AACA;AACA;AACA;AACO,SAASG,iBAAiBA,CAC/BC,IAAa,EACbC,UAA0B,EAC1BC,WAA6B,EAC7BC,SAAqB,EACrB;EACA,MAAMC,YAAY,GAAG,IAAAC,aAAM,EAACF,SAAS,CAAC;EACtCC,YAAY,CAACP,OAAO,GAAGM,SAAS;EAEhC,MAAMG,cAAc,GAAG,IAAAD,aAAM,EAACH,WAAW,CAAC;EAC1CI,cAAc,CAACT,OAAO,GAAGK,WAAW;EAEpC,IAAAK,gBAAS,EAAC,MAAM;IACd,IAAI,CAACP,IAAI,EAAE;MACT;IACF;IAEA,MAAMQ,eAAe,GAAIZ,MAAY,IAAK;MACxC,IAAIF,eAAe,CAACO,UAAU,EAAEL,MAAM,CAAC,EAAE;QACvC,OAAO,IAAI;MACb;MACA,KAAK,MAAMD,GAAG,IAAIW,cAAc,CAACT,OAAO,EAAE;QACxC,IAAIH,eAAe,CAACC,GAAG,EAAEC,MAAM,CAAC,EAAE;UAChC,OAAO,IAAI;QACb;MACF;MACA,OAAO,KAAK;IACd,CAAC;IAED,MAAMa,gBAAgB,GAAIC,CAAQ,IAAK;MACrC,IAAI,CAACF,eAAe,CAACE,CAAC,CAACd,MAAc,CAAC,EAAE;QACtCQ,YAAY,CAACP,OAAO,CAAC,CAAC;MACxB;IACF,CAAC;IAEDc,QAAQ,CAACC,gBAAgB,CAAC,aAAa,EAAEH,gBAAgB,CAAC;IAC1DE,QAAQ,CAACC,gBAAgB,CAAC,SAAS,EAAEH,gBAAgB,CAAC;IACtD,OAAO,MAAM;MACXE,QAAQ,CAACE,mBAAmB,CAAC,aAAa,EAAEJ,gBAAgB,CAAC;MAC7DE,QAAQ,CAACE,mBAAmB,CAAC,SAAS,EAAEJ,gBAAgB,CAAC;IAC3D,CAAC;EACH,CAAC,EAAE,CAACT,IAAI,EAAEC,UAAU,CAAC,CAAC;AACxB","ignoreList":[]}
@@ -40,6 +40,9 @@ const OverlayInsetsProvider = exports.OverlayInsetsProvider = OverlayInsetsConte
40
40
  /** Minimum gap (px) between the overlay edge and the viewport/safe-area boundary. */
41
41
  const SCREEN_EDGE_PADDING = 8;
42
42
 
43
+ /** Gap between anchor and popover content. */
44
+ const POPOVER_GAP = 4;
45
+
43
46
  /** Minimum usable space (px) below the anchor before the overlay flips above. */
44
47
  const MIN_CONTENT_HEIGHT = 200;
45
48
  /**
@@ -68,7 +71,7 @@ function useOverlayPosition(anchorLayout) {
68
71
  const maxHeight = Math.max(0, spaceBelow);
69
72
  return {
70
73
  style: {
71
- top: anchorBottom,
74
+ top: anchorBottom + POPOVER_GAP,
72
75
  left: anchorLayout.x,
73
76
  width: anchorLayout.width,
74
77
  maxHeight
@@ -80,7 +83,7 @@ function useOverlayPosition(anchorLayout) {
80
83
  const maxHeight = Math.max(0, spaceAbove);
81
84
  return {
82
85
  style: {
83
- bottom: viewportHeight - anchorLayout.y,
86
+ bottom: viewportHeight - anchorLayout.y + POPOVER_GAP,
84
87
  left: anchorLayout.x,
85
88
  width: anchorLayout.width,
86
89
  maxHeight
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_reactNative","DEFAULT_INSETS","top","right","bottom","left","OverlayInsetsContext","exports","createContext","OverlayInsetsProvider","Provider","SCREEN_EDGE_PADDING","MIN_CONTENT_HEIGHT","useOverlayPosition","anchorLayout","height","viewportHeight","useWindowDimensions","insetTop","insetBottom","useContext","useMemo","anchorBottom","y","spaceBelow","spaceAbove","preferBelow","maxHeight","Math","max","style","x","width","placement"],"sourceRoot":"../../../src","sources":["overlay/useOverlayPosition.ts"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAUA,MAAME,cAA0B,GAAG;EAAEC,GAAG,EAAE,CAAC;EAAEC,KAAK,EAAE,CAAC;EAAEC,MAAM,EAAE,CAAC;EAAEC,IAAI,EAAE;AAAE,CAAC;;AAE3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,oBAAoB,GAAAC,OAAA,CAAAD,oBAAA,gBAAG,IAAAE,oBAAa,EAAaP,cAAc,CAAC;AACtE,MAAMQ,qBAAqB,GAAAF,OAAA,CAAAE,qBAAA,GAAGH,oBAAoB,CAACI,QAAQ;;AAElE;AACA,MAAMC,mBAAmB,GAAG,CAAC;;AAE7B;AACA,MAAMC,kBAAkB,GAAG,GAAG;AAQ9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,kBAAkBA,CAACC,YAAiC,EAA0B;EAC5F,MAAM;IAAEC,MAAM,EAAEC;EAAe,CAAC,GAAG,IAAAC,gCAAmB,EAAC,CAAC;EACxD,MAAM;IAAEf,GAAG,EAAEgB,QAAQ;IAAEd,MAAM,EAAEe;EAAY,CAAC,GAAG,IAAAC,iBAAU,EAACd,oBAAoB,CAAC;EAE/E,OAAO,IAAAe,cAAO,EAAC,MAAM;IACnB,IAAI,CAACP,YAAY,EAAE,OAAO,IAAI;IAE9B,MAAMQ,YAAY,GAAGR,YAAY,CAACS,CAAC,GAAGT,YAAY,CAACC,MAAM;IACzD,MAAMS,UAAU,GAAGR,cAAc,GAAGM,YAAY,GAAGH,WAAW,GAAGR,mBAAmB;IACpF,MAAMc,UAAU,GAAGX,YAAY,CAACS,CAAC,GAAGL,QAAQ,GAAGP,mBAAmB;IAElE,MAAMe,WAAW,GAAGF,UAAU,IAAIZ,kBAAkB,IAAIY,UAAU,IAAIC,UAAU;IAEhF,IAAIC,WAAW,EAAE;MACf,MAAMC,SAAS,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC,EAAEL,UAAU,CAAC;MACzC,OAAO;QACLM,KAAK,EAAE;UACL5B,GAAG,EAAEoB,YAAY;UACjBjB,IAAI,EAAES,YAAY,CAACiB,CAAC;UACpBC,KAAK,EAAElB,YAAY,CAACkB,KAAK;UACzBL;QACF,CAAC;QACDA,SAAS;QACTM,SAAS,EAAE;MACb,CAAC;IACH;IAEA,MAAMN,SAAS,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC,EAAEJ,UAAU,CAAC;IACzC,OAAO;MACLK,KAAK,EAAE;QACL1B,MAAM,EAAEY,cAAc,GAAGF,YAAY,CAACS,CAAC;QACvClB,IAAI,EAAES,YAAY,CAACiB,CAAC;QACpBC,KAAK,EAAElB,YAAY,CAACkB,KAAK;QACzBL;MACF,CAAC;MACDA,SAAS;MACTM,SAAS,EAAE;IACb,CAAC;EACH,CAAC,EAAE,CAACnB,YAAY,EAAEE,cAAc,EAAEE,QAAQ,EAAEC,WAAW,CAAC,CAAC;AAC3D","ignoreList":[]}
1
+ {"version":3,"names":["_react","require","_reactNative","DEFAULT_INSETS","top","right","bottom","left","OverlayInsetsContext","exports","createContext","OverlayInsetsProvider","Provider","SCREEN_EDGE_PADDING","POPOVER_GAP","MIN_CONTENT_HEIGHT","useOverlayPosition","anchorLayout","height","viewportHeight","useWindowDimensions","insetTop","insetBottom","useContext","useMemo","anchorBottom","y","spaceBelow","spaceAbove","preferBelow","maxHeight","Math","max","style","x","width","placement"],"sourceRoot":"../../../src","sources":["overlay/useOverlayPosition.ts"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAUA,MAAME,cAA0B,GAAG;EAAEC,GAAG,EAAE,CAAC;EAAEC,KAAK,EAAE,CAAC;EAAEC,MAAM,EAAE,CAAC;EAAEC,IAAI,EAAE;AAAE,CAAC;;AAE3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,oBAAoB,GAAAC,OAAA,CAAAD,oBAAA,gBAAG,IAAAE,oBAAa,EAAaP,cAAc,CAAC;AACtE,MAAMQ,qBAAqB,GAAAF,OAAA,CAAAE,qBAAA,GAAGH,oBAAoB,CAACI,QAAQ;;AAElE;AACA,MAAMC,mBAAmB,GAAG,CAAC;;AAE7B;AACA,MAAMC,WAAW,GAAG,CAAC;;AAErB;AACA,MAAMC,kBAAkB,GAAG,GAAG;AAQ9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,kBAAkBA,CAACC,YAAiC,EAA0B;EAC5F,MAAM;IAAEC,MAAM,EAAEC;EAAe,CAAC,GAAG,IAAAC,gCAAmB,EAAC,CAAC;EACxD,MAAM;IAAEhB,GAAG,EAAEiB,QAAQ;IAAEf,MAAM,EAAEgB;EAAY,CAAC,GAAG,IAAAC,iBAAU,EAACf,oBAAoB,CAAC;EAE/E,OAAO,IAAAgB,cAAO,EAAC,MAAM;IACnB,IAAI,CAACP,YAAY,EAAE,OAAO,IAAI;IAE9B,MAAMQ,YAAY,GAAGR,YAAY,CAACS,CAAC,GAAGT,YAAY,CAACC,MAAM;IACzD,MAAMS,UAAU,GAAGR,cAAc,GAAGM,YAAY,GAAGH,WAAW,GAAGT,mBAAmB;IACpF,MAAMe,UAAU,GAAGX,YAAY,CAACS,CAAC,GAAGL,QAAQ,GAAGR,mBAAmB;IAElE,MAAMgB,WAAW,GAAGF,UAAU,IAAIZ,kBAAkB,IAAIY,UAAU,IAAIC,UAAU;IAEhF,IAAIC,WAAW,EAAE;MACf,MAAMC,SAAS,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC,EAAEL,UAAU,CAAC;MACzC,OAAO;QACLM,KAAK,EAAE;UACL7B,GAAG,EAAEqB,YAAY,GAAGX,WAAW;UAC/BP,IAAI,EAAEU,YAAY,CAACiB,CAAC;UACpBC,KAAK,EAAElB,YAAY,CAACkB,KAAK;UACzBL;QACF,CAAC;QACDA,SAAS;QACTM,SAAS,EAAE;MACb,CAAC;IACH;IAEA,MAAMN,SAAS,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC,EAAEJ,UAAU,CAAC;IACzC,OAAO;MACLK,KAAK,EAAE;QACL3B,MAAM,EAAEa,cAAc,GAAGF,YAAY,CAACS,CAAC,GAAGZ,WAAW;QACrDP,IAAI,EAAEU,YAAY,CAACiB,CAAC;QACpBC,KAAK,EAAElB,YAAY,CAACkB,KAAK;QACzBL;MACF,CAAC;MACDA,SAAS;MACTM,SAAS,EAAE;IACb,CAAC;EACH,CAAC,EAAE,CAACnB,YAAY,EAAEE,cAAc,EAAEE,QAAQ,EAAEC,WAAW,CAAC,CAAC;AAC3D","ignoreList":[]}
@@ -9,6 +9,7 @@ exports.useModalPortalRoot = useModalPortalRoot;
9
9
  var _react = _interopRequireWildcard(require("react"));
10
10
  var React = _react;
11
11
  var _reactNative = require("react-native");
12
+ var _createPortal = require("../utils/createPortal");
12
13
  var _jsxRuntime = require("react/jsx-runtime");
13
14
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
14
15
  const DEFAULT_PORTAL_HOST = 'FORGE_UI_DEFAULT_HOST_NAME';
@@ -17,11 +18,53 @@ const store = {
17
18
  listeners: new Set()
18
19
  };
19
20
 
21
+ /** Tracks mounted PortalHost instances per host name — only the first mount renders portals. */
22
+ const hostStackStore = {
23
+ stacks: new Map(),
24
+ listeners: new Set()
25
+ };
26
+ let hasWarnedMultiplePortalHosts = false;
27
+
20
28
  // --------------------------------------------------
21
29
 
22
30
  function emit() {
23
31
  for (const cb of store.listeners) cb();
24
32
  }
33
+ function emitHostStack() {
34
+ for (const cb of hostStackStore.listeners) cb();
35
+ }
36
+ function getHostStackSnapshot() {
37
+ return hostStackStore.stacks;
38
+ }
39
+ function subscribeHostStack(cb) {
40
+ hostStackStore.listeners.add(cb);
41
+ return () => {
42
+ hostStackStore.listeners.delete(cb);
43
+ };
44
+ }
45
+ function pushPortalHost(name, id) {
46
+ const stacks = new Map(hostStackStore.stacks);
47
+ const stack = [...(stacks.get(name) ?? [])];
48
+ stack.push(id);
49
+ stacks.set(name, stack);
50
+ hostStackStore.stacks = stacks;
51
+ if (__DEV__ && !hasWarnedMultiplePortalHosts && stack.length > 1) {
52
+ hasWarnedMultiplePortalHosts = true;
53
+ console.warn('[Forge UI] Multiple PortalHost instances detected for the same host name. ' + 'Only the first mounted PortalHost renders portal content. ' + 'Mount a single PortalHost near your app root (ForgeDesignProvider does this automatically).');
54
+ }
55
+ emitHostStack();
56
+ }
57
+ function popPortalHost(name, id) {
58
+ const stacks = new Map(hostStackStore.stacks);
59
+ const stack = (stacks.get(name) ?? []).filter(entry => entry !== id);
60
+ stacks.set(name, stack);
61
+ hostStackStore.stacks = stacks;
62
+ emitHostStack();
63
+ }
64
+ function isActivePortalHost(name, id) {
65
+ const stack = hostStackStore.stacks.get(name) ?? [];
66
+ return stack.length > 0 && stack[0] === id;
67
+ }
25
68
  function getSnapshot() {
26
69
  return store.map;
27
70
  }
@@ -53,12 +96,26 @@ function removePortal(hostName, name) {
53
96
  function PortalHost({
54
97
  name = DEFAULT_PORTAL_HOST
55
98
  }) {
99
+ const hostId = React.useRef(Symbol()).current;
100
+ (0, _react.useEffect)(() => {
101
+ pushPortalHost(name, hostId);
102
+ return () => {
103
+ popPortalHost(name, hostId);
104
+ };
105
+ }, [name, hostId]);
106
+ (0, _react.useSyncExternalStore)(subscribeHostStack, getHostStackSnapshot, getHostStackSnapshot);
56
107
  const map = (0, _react.useSyncExternalStore)(subscribe, getSnapshot, getSnapshot);
57
108
  const portalMap = map.get(name) ?? new Map();
58
- if (portalMap.size === 0) return null;
59
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {
109
+ if (!isActivePortalHost(name, hostId) || portalMap.size === 0) {
110
+ return null;
111
+ }
112
+ const content = /*#__PURE__*/(0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {
60
113
  children: Array.from(portalMap.values())
61
114
  });
115
+ if (_reactNative.Platform.OS === 'web' && _createPortal.createPortalFn && typeof document !== 'undefined') {
116
+ return (0, _createPortal.createPortalFn)(content, document.body);
117
+ }
118
+ return content;
62
119
  }
63
120
 
64
121
  // --------------------------------------------------
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","React","_reactNative","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","DEFAULT_PORTAL_HOST","store","map","Map","listeners","Set","emit","cb","getSnapshot","subscribe","add","delete","updatePortal","hostName","name","children","next","portal","removePortal","PortalHost","useSyncExternalStore","portalMap","size","jsx","Fragment","Array","from","values","Portal","useEffect","ROOT","flex","useModalPortalRoot","ref","useRef","offset","setSideOffSet","useState","onLayout","useCallback","Platform","OS","current","measure","_x","_y","_width","_height","_pageX","pageY","style"],"sourceRoot":"../../../src","sources":["portal/portal.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","React","_reactNative","_createPortal","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","DEFAULT_PORTAL_HOST","store","map","Map","listeners","Set","hostStackStore","stacks","hasWarnedMultiplePortalHosts","emit","cb","emitHostStack","getHostStackSnapshot","subscribeHostStack","add","delete","pushPortalHost","name","id","stack","push","__DEV__","length","console","warn","popPortalHost","filter","entry","isActivePortalHost","getSnapshot","subscribe","updatePortal","hostName","children","next","portal","removePortal","PortalHost","hostId","useRef","Symbol","current","useEffect","useSyncExternalStore","portalMap","size","content","jsx","Fragment","Array","from","values","Platform","OS","createPortalFn","document","body","Portal","ROOT","flex","useModalPortalRoot","ref","offset","setSideOffSet","useState","onLayout","useCallback","measure","_x","_y","_width","_height","_pageX","pageY","style"],"sourceRoot":"../../../src","sources":["portal/portal.tsx"],"mappings":"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","ignoreList":[]}
@@ -12,6 +12,7 @@ var _radio2 = require("@react-stately/radio");
12
12
  var _slot = require("../slot");
13
13
  var _dataAttributes = require("../utils/dataAttributes");
14
14
  var _context = require("./context");
15
+ var _useRadioGroupNavigation = require("./useRadioGroupNavigation");
15
16
  var _jsxRuntime = require("react/jsx-runtime");
16
17
  const RadioGroup = exports.RadioGroup = /*#__PURE__*/(0, _react.forwardRef)(({
17
18
  asChild,
@@ -20,25 +21,66 @@ const RadioGroup = exports.RadioGroup = /*#__PURE__*/(0, _react.forwardRef)(({
20
21
  style,
21
22
  ...props
22
23
  }, ref) => {
23
- const formControlContext = (0, _utils.useFormControlContext)();
24
- const combinedProps = {
25
- ...formControlContext,
26
- ...props
27
- };
24
+ const formControlProps = (0, _utils.useFormControl)({
25
+ isDisabled: props.isDisabled,
26
+ isRequired: props.isRequired,
27
+ isInvalid: props.isInvalid,
28
+ isReadOnly: props.isReadOnly
29
+ });
30
+ const isDisabled = props.isDisabled ?? Boolean(formControlProps.disabled);
31
+ const isInvalid = props.isInvalid ?? Boolean(formControlProps['aria-invalid']);
32
+ const isRequired = props.isRequired ?? Boolean(formControlProps.required);
33
+ const isReadOnly = props.isReadOnly ?? Boolean(formControlProps.readOnly);
34
+ const name = props.name ?? formControlProps.name;
35
+ const ariaLabel = props['aria-label'];
36
+ const ariaLabelledBy = props['aria-labelledby'] ?? formControlProps['aria-labelledby'];
37
+ const ariaDescribedBy = formControlProps['aria-describedby'];
28
38
  const radioGroupState = (0, _radio2.useRadioGroupState)({
29
- ...combinedProps,
30
- validationState: combinedProps.isInvalid ? 'invalid' : 'valid'
39
+ name,
40
+ value: props.value,
41
+ defaultValue: props.defaultValue,
42
+ onChange: props.onChange,
43
+ isDisabled,
44
+ isInvalid,
45
+ isRequired,
46
+ isReadOnly,
47
+ validationState: isInvalid ? 'invalid' : 'valid'
31
48
  });
32
49
  const {
33
50
  radioGroupProps
34
51
  } = (0, _radio.useRadioGroup)({
35
- ...combinedProps,
36
- 'aria-label': combinedProps['aria-label']
52
+ 'aria-label': ariaLabel,
53
+ 'aria-labelledby': ariaLabelledBy,
54
+ isDisabled
37
55
  }, radioGroupState);
38
- const isDisabled = combinedProps.isDisabled ?? false;
39
- const isInvalid = combinedProps.isInvalid ?? false;
40
- const isRequired = combinedProps.isRequired ?? false;
41
- const isReadOnly = combinedProps.isReadOnly ?? false;
56
+ const [focusedValue, setFocusedValue] = (0, _react.useState)(undefined);
57
+ // Identity of getRadios depends on this so roving tabIndex recomputes after register/unregister.
58
+ const [registrationEpoch, setRegistrationEpoch] = (0, _react.useState)(0);
59
+ const radiosRef = (0, _react.useRef)(new Map());
60
+ (0, _react.useEffect)(() => {
61
+ setFocusedValue(prev => prev !== undefined && prev !== radioGroupState.selectedValue ? undefined : prev);
62
+ }, [radioGroupState.selectedValue]);
63
+ const registerRadio = (0, _react.useCallback)((value, entry) => {
64
+ radiosRef.current.set(value, entry);
65
+ setRegistrationEpoch(epoch => epoch + 1);
66
+ }, []);
67
+ const unregisterRadio = (0, _react.useCallback)(value => {
68
+ radiosRef.current.delete(value);
69
+ setRegistrationEpoch(epoch => epoch + 1);
70
+ }, []);
71
+ const getRadios = (0, _react.useCallback)(() => Array.from(radiosRef.current.entries()), [registrationEpoch]);
72
+ const {
73
+ handleKeyDown
74
+ } = (0, _useRadioGroupNavigation.useRadioGroupNavigation)({
75
+ getRadios,
76
+ focusedValue,
77
+ setFocusedValue,
78
+ selectedValue: radioGroupState.selectedValue,
79
+ selectValue: value => radioGroupState.setSelectedValue(value)
80
+ });
81
+ const webProps = _reactNative.Platform.OS === 'web' ? {
82
+ onKeyDown: (0, _utils.composeEventHandlers)(props.onKeyDown, handleKeyDown)
83
+ } : {};
42
84
  const Comp = asChild ? _slot.Slot : _reactNative.View;
43
85
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_context.RadioGroupContext.Provider, {
44
86
  value: {
@@ -51,17 +93,24 @@ const RadioGroup = exports.RadioGroup = /*#__PURE__*/(0, _react.forwardRef)(({
51
93
  selectValue: value => radioGroupState.setSelectedValue(value)
52
94
  },
53
95
  radioGroupState,
54
- name: combinedProps.name
96
+ name,
97
+ focusedValue,
98
+ setFocusedValue,
99
+ registerRadio,
100
+ unregisterRadio,
101
+ getRadios
55
102
  },
56
103
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(Comp, {
57
104
  ...radioGroupProps,
58
- "aria-label": combinedProps['aria-label'],
59
- "aria-labelledby": combinedProps['aria-labelledby'],
105
+ "aria-label": ariaLabel,
106
+ "aria-labelledby": ariaLabelledBy,
107
+ "aria-describedby": ariaDescribedBy,
60
108
  "aria-required": isRequired || undefined,
61
109
  "aria-readonly": isReadOnly || undefined,
62
110
  className: className,
63
111
  style: style,
64
112
  ref: ref,
113
+ ...webProps,
65
114
  ...(0, _dataAttributes.mergeDataAttributes)(props, (0, _dataAttributes.dataAttributes)({
66
115
  disabled: isDisabled,
67
116
  invalid: isInvalid
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_reactNative","_utils","_radio","_radio2","_slot","_dataAttributes","_context","_jsxRuntime","RadioGroup","exports","forwardRef","asChild","children","className","style","props","ref","formControlContext","useFormControlContext","combinedProps","radioGroupState","useRadioGroupState","validationState","isInvalid","radioGroupProps","useRadioGroup","isDisabled","isRequired","isReadOnly","Comp","Slot","View","jsx","RadioGroupContext","Provider","value","state","isSelected","selectedValue","selectValue","setSelectedValue","name","undefined","mergeDataAttributes","dataAttributes","disabled","invalid","displayName"],"sourceRoot":"../../../src","sources":["radio/RadioGroup.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA;AACA,IAAAI,OAAA,GAAAJ,OAAA;AACA,IAAAK,KAAA,GAAAL,OAAA;AACA,IAAAM,eAAA,GAAAN,OAAA;AACA,IAAAO,QAAA,GAAAP,OAAA;AAA8C,IAAAQ,WAAA,GAAAR,OAAA;AASvC,MAAMS,UAAU,GAAAC,OAAA,CAAAD,UAAA,gBAAG,IAAAE,iBAAU,EAClC,CAAC;EAAEC,OAAO;EAAEC,QAAQ;EAAEC,SAAS;EAAEC,KAAK;EAAE,GAAGC;AAAM,CAAC,EAAEC,GAAG,KAAK;EAC1D,MAAMC,kBAAkB,GAAG,IAAAC,4BAAqB,EAAC,CAAC;EAElD,MAAMC,aAAa,GAAG;IACpB,GAAGF,kBAAkB;IACrB,GAAGF;EACL,CAAC;EAED,MAAMK,eAAe,GAAG,IAAAC,0BAAkB,EAAC;IACzC,GAAGF,aAAa;IAChBG,eAAe,EAAEH,aAAa,CAACI,SAAS,GAAG,SAAS,GAAG;EACzD,CAAC,CAAC;EAEF,MAAM;IAAEC;EAAgB,CAAC,GAAG,IAAAC,oBAAa,EACvC;IACE,GAAGN,aAAa;IAChB,YAAY,EAAEA,aAAa,CAAC,YAAY;EAC1C,CAAC,EACDC,eACF,CAAC;EAED,MAAMM,UAAU,GAAGP,aAAa,CAACO,UAAU,IAAI,KAAK;EACpD,MAAMH,SAAS,GAAGJ,aAAa,CAACI,SAAS,IAAI,KAAK;EAClD,MAAMI,UAAU,GAAGR,aAAa,CAACQ,UAAU,IAAI,KAAK;EACpD,MAAMC,UAAU,GAAGT,aAAa,CAACS,UAAU,IAAI,KAAK;EAEpD,MAAMC,IAAI,GAAGlB,OAAO,GAAGmB,UAAI,GAAGC,iBAAI;EAElC,oBACE,IAAAxB,WAAA,CAAAyB,GAAA,EAAC1B,QAAA,CAAA2B,iBAAiB,CAACC,QAAQ;IACzBC,KAAK,EAAE;MACLC,KAAK,EAAE;QACLV,UAAU;QACVH,SAAS;QACTI,UAAU;QACVC,UAAU;QACVS,UAAU,EAAGF,KAAa,IAAKf,eAAe,CAACkB,aAAa,KAAKH,KAAK;QACtEI,WAAW,EAAGJ,KAAa,IAAKf,eAAe,CAACoB,gBAAgB,CAACL,KAAK;MACxE,CAAC;MACDf,eAAe;MACfqB,IAAI,EAAEtB,aAAa,CAACsB;IACtB,CAAE;IAAA7B,QAAA,eAEF,IAAAL,WAAA,CAAAyB,GAAA,EAACH,IAAI;MAAA,GACCL,eAAe;MACnB,cAAYL,aAAa,CAAC,YAAY,CAAE;MACxC,mBAAiBA,aAAa,CAAC,iBAAiB,CAAE;MAClD,iBAAeQ,UAAU,IAAIe,SAAU;MACvC,iBAAed,UAAU,IAAIc,SAAU;MACvC7B,SAAS,EAAEA,SAAU;MACrBC,KAAK,EAAEA,KAAM;MACbE,GAAG,EAAEA,GAAI;MAAA,GACL,IAAA2B,mCAAmB,EACrB5B,KAAK,EACL,IAAA6B,8BAAc,EAAC;QACbC,QAAQ,EAAEnB,UAAU;QACpBoB,OAAO,EAAEvB;MACX,CAAC,CACH,CAAC;MAAAX,QAAA,EAEAA;IAAQ,CACL;EAAC,CACmB,CAAC;AAEjC,CACF,CAAC;AAEDJ,UAAU,CAACuC,WAAW,GAAG,YAAY","ignoreList":[]}
1
+ {"version":3,"names":["_react","require","_reactNative","_utils","_radio","_radio2","_slot","_dataAttributes","_context","_useRadioGroupNavigation","_jsxRuntime","RadioGroup","exports","forwardRef","asChild","children","className","style","props","ref","formControlProps","useFormControl","isDisabled","isRequired","isInvalid","isReadOnly","Boolean","disabled","required","readOnly","name","ariaLabel","ariaLabelledBy","ariaDescribedBy","radioGroupState","useRadioGroupState","value","defaultValue","onChange","validationState","radioGroupProps","useRadioGroup","focusedValue","setFocusedValue","useState","undefined","registrationEpoch","setRegistrationEpoch","radiosRef","useRef","Map","useEffect","prev","selectedValue","registerRadio","useCallback","entry","current","set","epoch","unregisterRadio","delete","getRadios","Array","from","entries","handleKeyDown","useRadioGroupNavigation","selectValue","setSelectedValue","webProps","Platform","OS","onKeyDown","composeEventHandlers","Comp","Slot","View","jsx","RadioGroupContext","Provider","state","isSelected","mergeDataAttributes","dataAttributes","invalid","displayName"],"sourceRoot":"../../../src","sources":["radio/RadioGroup.tsx"],"mappings":"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","ignoreList":[]}