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

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 (384) 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/date-field/DateFieldHiddenInput.js +148 -0
  12. package/lib/commonjs/date-field/DateFieldHiddenInput.js.map +1 -0
  13. package/lib/commonjs/date-field/DateFieldInput.js +122 -0
  14. package/lib/commonjs/date-field/DateFieldInput.js.map +1 -0
  15. package/lib/commonjs/date-field/DateFieldRoot.js +85 -0
  16. package/lib/commonjs/date-field/DateFieldRoot.js.map +1 -0
  17. package/lib/commonjs/date-field/DateFieldSegment.js +92 -0
  18. package/lib/commonjs/date-field/DateFieldSegment.js.map +1 -0
  19. package/lib/commonjs/date-field/context.js +19 -0
  20. package/lib/commonjs/date-field/context.js.map +1 -0
  21. package/lib/commonjs/date-field/index.js +34 -0
  22. package/lib/commonjs/date-field/index.js.map +1 -0
  23. package/lib/commonjs/date-field/segmentIndex.js +23 -0
  24. package/lib/commonjs/date-field/segmentIndex.js.map +1 -0
  25. package/lib/commonjs/date-field/segmentKeyboard.js +169 -0
  26. package/lib/commonjs/date-field/segmentKeyboard.js.map +1 -0
  27. package/lib/commonjs/date-field/types.js +6 -0
  28. package/lib/commonjs/date-field/types.js.map +1 -0
  29. package/lib/commonjs/date-field/useDateFieldSegmentState.js +381 -0
  30. package/lib/commonjs/date-field/useDateFieldSegmentState.js.map +1 -0
  31. package/lib/commonjs/date-field/useRangeDateFieldBridge.js +67 -0
  32. package/lib/commonjs/date-field/useRangeDateFieldBridge.js.map +1 -0
  33. package/lib/commonjs/date-picker/DatePickerRoot.js +123 -0
  34. package/lib/commonjs/date-picker/DatePickerRoot.js.map +1 -0
  35. package/lib/commonjs/date-picker/context.js +17 -0
  36. package/lib/commonjs/date-picker/context.js.map +1 -0
  37. package/lib/commonjs/date-picker/index.js +26 -0
  38. package/lib/commonjs/date-picker/index.js.map +1 -0
  39. package/lib/commonjs/date-range-picker/DateRangePickerRoot.js +144 -0
  40. package/lib/commonjs/date-range-picker/DateRangePickerRoot.js.map +1 -0
  41. package/lib/commonjs/date-range-picker/context.js +23 -0
  42. package/lib/commonjs/date-range-picker/context.js.map +1 -0
  43. package/lib/commonjs/date-range-picker/index.js +26 -0
  44. package/lib/commonjs/date-range-picker/index.js.map +1 -0
  45. package/lib/commonjs/date-time-field/DateTimeFieldHiddenInput.js +150 -0
  46. package/lib/commonjs/date-time-field/DateTimeFieldHiddenInput.js.map +1 -0
  47. package/lib/commonjs/date-time-field/DateTimeFieldInput.js +104 -0
  48. package/lib/commonjs/date-time-field/DateTimeFieldInput.js.map +1 -0
  49. package/lib/commonjs/date-time-field/DateTimeFieldRoot.js +159 -0
  50. package/lib/commonjs/date-time-field/DateTimeFieldRoot.js.map +1 -0
  51. package/lib/commonjs/date-time-field/DateTimeFieldSegment.js +87 -0
  52. package/lib/commonjs/date-time-field/DateTimeFieldSegment.js.map +1 -0
  53. package/lib/commonjs/date-time-field/context.js +17 -0
  54. package/lib/commonjs/date-time-field/context.js.map +1 -0
  55. package/lib/commonjs/date-time-field/index.js +40 -0
  56. package/lib/commonjs/date-time-field/index.js.map +1 -0
  57. package/lib/commonjs/date-time-field/useDateTimeFieldSegmentState.js +564 -0
  58. package/lib/commonjs/date-time-field/useDateTimeFieldSegmentState.js.map +1 -0
  59. package/lib/commonjs/date-time-list/DateTimeListRoot.js +418 -0
  60. package/lib/commonjs/date-time-list/DateTimeListRoot.js.map +1 -0
  61. package/lib/commonjs/date-time-list/context.js +26 -0
  62. package/lib/commonjs/date-time-list/context.js.map +1 -0
  63. package/lib/commonjs/date-time-list/index.js +62 -0
  64. package/lib/commonjs/date-time-list/index.js.map +1 -0
  65. package/lib/commonjs/date-time-picker/DateTimePickerRoot.js +134 -0
  66. package/lib/commonjs/date-time-picker/DateTimePickerRoot.js.map +1 -0
  67. package/lib/commonjs/date-time-picker/context.js +17 -0
  68. package/lib/commonjs/date-time-picker/context.js.map +1 -0
  69. package/lib/commonjs/date-time-picker/index.js +26 -0
  70. package/lib/commonjs/date-time-picker/index.js.map +1 -0
  71. package/lib/commonjs/dialog/DialogRoot.js +1 -1
  72. package/lib/commonjs/dialog/DialogRoot.js.map +1 -1
  73. package/lib/commonjs/index.js +148 -0
  74. package/lib/commonjs/index.js.map +1 -1
  75. package/lib/commonjs/month-calendar/MonthCalendarCell.js +64 -0
  76. package/lib/commonjs/month-calendar/MonthCalendarCell.js.map +1 -0
  77. package/lib/commonjs/month-calendar/MonthCalendarRoot.js +103 -0
  78. package/lib/commonjs/month-calendar/MonthCalendarRoot.js.map +1 -0
  79. package/lib/commonjs/month-calendar/MonthCalendarYearCell.js +63 -0
  80. package/lib/commonjs/month-calendar/MonthCalendarYearCell.js.map +1 -0
  81. package/lib/commonjs/month-calendar/context.js +17 -0
  82. package/lib/commonjs/month-calendar/context.js.map +1 -0
  83. package/lib/commonjs/month-calendar/index.js +34 -0
  84. package/lib/commonjs/month-calendar/index.js.map +1 -0
  85. package/lib/commonjs/month-picker/MonthPickerRoot.js +118 -0
  86. package/lib/commonjs/month-picker/MonthPickerRoot.js.map +1 -0
  87. package/lib/commonjs/month-picker/context.js +17 -0
  88. package/lib/commonjs/month-picker/context.js.map +1 -0
  89. package/lib/commonjs/month-picker/index.js +26 -0
  90. package/lib/commonjs/month-picker/index.js.map +1 -0
  91. package/lib/commonjs/overlay/useAnchorPosition.js +27 -16
  92. package/lib/commonjs/overlay/useAnchorPosition.js.map +1 -1
  93. package/lib/commonjs/overlay/useDismissOverlay.web.js +10 -2
  94. package/lib/commonjs/overlay/useDismissOverlay.web.js.map +1 -1
  95. package/lib/commonjs/overlay/useOverlayPosition.js +5 -2
  96. package/lib/commonjs/overlay/useOverlayPosition.js.map +1 -1
  97. package/lib/commonjs/portal/portal.js +59 -2
  98. package/lib/commonjs/portal/portal.js.map +1 -1
  99. package/lib/commonjs/range-calendar/RangeCalendarRoot.js +148 -0
  100. package/lib/commonjs/range-calendar/RangeCalendarRoot.js.map +1 -0
  101. package/lib/commonjs/range-calendar/context.js +17 -0
  102. package/lib/commonjs/range-calendar/context.js.map +1 -0
  103. package/lib/commonjs/range-calendar/index.js +20 -0
  104. package/lib/commonjs/range-calendar/index.js.map +1 -0
  105. package/lib/commonjs/select/SelectRoot.js +1 -1
  106. package/lib/commonjs/select/SelectRoot.js.map +1 -1
  107. package/lib/commonjs/utils/accessibleLabel.js +23 -0
  108. package/lib/commonjs/utils/accessibleLabel.js.map +1 -0
  109. package/lib/commonjs/utils/createPortal.web.js +21 -0
  110. package/lib/commonjs/utils/createPortal.web.js.map +1 -0
  111. package/lib/module/calendar/CalendarGrid.js +29 -0
  112. package/lib/module/calendar/CalendarGrid.js.map +1 -0
  113. package/lib/module/calendar/CalendarRoot.js +91 -0
  114. package/lib/module/calendar/CalendarRoot.js.map +1 -0
  115. package/lib/module/calendar/context.js +12 -0
  116. package/lib/module/calendar/context.js.map +1 -0
  117. package/lib/module/calendar/index.js +6 -0
  118. package/lib/module/calendar/index.js.map +1 -0
  119. package/lib/module/calendar/types.js +4 -0
  120. package/lib/module/calendar/types.js.map +1 -0
  121. package/lib/module/date-field/DateFieldHiddenInput.js +146 -0
  122. package/lib/module/date-field/DateFieldHiddenInput.js.map +1 -0
  123. package/lib/module/date-field/DateFieldInput.js +118 -0
  124. package/lib/module/date-field/DateFieldInput.js.map +1 -0
  125. package/lib/module/date-field/DateFieldRoot.js +81 -0
  126. package/lib/module/date-field/DateFieldRoot.js.map +1 -0
  127. package/lib/module/date-field/DateFieldSegment.js +88 -0
  128. package/lib/module/date-field/DateFieldSegment.js.map +1 -0
  129. package/lib/module/date-field/context.js +15 -0
  130. package/lib/module/date-field/context.js.map +1 -0
  131. package/lib/module/date-field/index.js +7 -0
  132. package/lib/module/date-field/index.js.map +1 -0
  133. package/lib/module/date-field/segmentIndex.js +18 -0
  134. package/lib/module/date-field/segmentIndex.js.map +1 -0
  135. package/lib/module/date-field/segmentKeyboard.js +157 -0
  136. package/lib/module/date-field/segmentKeyboard.js.map +1 -0
  137. package/lib/module/date-field/types.js +4 -0
  138. package/lib/module/date-field/types.js.map +1 -0
  139. package/lib/module/date-field/useDateFieldSegmentState.js +378 -0
  140. package/lib/module/date-field/useDateFieldSegmentState.js.map +1 -0
  141. package/lib/module/date-field/useRangeDateFieldBridge.js +63 -0
  142. package/lib/module/date-field/useRangeDateFieldBridge.js.map +1 -0
  143. package/lib/module/date-picker/DatePickerRoot.js +119 -0
  144. package/lib/module/date-picker/DatePickerRoot.js.map +1 -0
  145. package/lib/module/date-picker/context.js +12 -0
  146. package/lib/module/date-picker/context.js.map +1 -0
  147. package/lib/module/date-picker/index.js +5 -0
  148. package/lib/module/date-picker/index.js.map +1 -0
  149. package/lib/module/date-range-picker/DateRangePickerRoot.js +140 -0
  150. package/lib/module/date-range-picker/DateRangePickerRoot.js.map +1 -0
  151. package/lib/module/date-range-picker/context.js +19 -0
  152. package/lib/module/date-range-picker/context.js.map +1 -0
  153. package/lib/module/date-range-picker/index.js +5 -0
  154. package/lib/module/date-range-picker/index.js.map +1 -0
  155. package/lib/module/date-time-field/DateTimeFieldHiddenInput.js +148 -0
  156. package/lib/module/date-time-field/DateTimeFieldHiddenInput.js.map +1 -0
  157. package/lib/module/date-time-field/DateTimeFieldInput.js +100 -0
  158. package/lib/module/date-time-field/DateTimeFieldInput.js.map +1 -0
  159. package/lib/module/date-time-field/DateTimeFieldRoot.js +154 -0
  160. package/lib/module/date-time-field/DateTimeFieldRoot.js.map +1 -0
  161. package/lib/module/date-time-field/DateTimeFieldSegment.js +83 -0
  162. package/lib/module/date-time-field/DateTimeFieldSegment.js.map +1 -0
  163. package/lib/module/date-time-field/context.js +12 -0
  164. package/lib/module/date-time-field/context.js.map +1 -0
  165. package/lib/module/date-time-field/index.js +7 -0
  166. package/lib/module/date-time-field/index.js.map +1 -0
  167. package/lib/module/date-time-field/useDateTimeFieldSegmentState.js +561 -0
  168. package/lib/module/date-time-field/useDateTimeFieldSegmentState.js.map +1 -0
  169. package/lib/module/date-time-list/DateTimeListRoot.js +416 -0
  170. package/lib/module/date-time-list/DateTimeListRoot.js.map +1 -0
  171. package/lib/module/date-time-list/context.js +20 -0
  172. package/lib/module/date-time-list/context.js.map +1 -0
  173. package/lib/module/date-time-list/index.js +5 -0
  174. package/lib/module/date-time-list/index.js.map +1 -0
  175. package/lib/module/date-time-picker/DateTimePickerRoot.js +130 -0
  176. package/lib/module/date-time-picker/DateTimePickerRoot.js.map +1 -0
  177. package/lib/module/date-time-picker/context.js +12 -0
  178. package/lib/module/date-time-picker/context.js.map +1 -0
  179. package/lib/module/date-time-picker/index.js +5 -0
  180. package/lib/module/date-time-picker/index.js.map +1 -0
  181. package/lib/module/dialog/DialogRoot.js +1 -1
  182. package/lib/module/dialog/DialogRoot.js.map +1 -1
  183. package/lib/module/index.js +11 -2
  184. package/lib/module/index.js.map +1 -1
  185. package/lib/module/month-calendar/MonthCalendarCell.js +60 -0
  186. package/lib/module/month-calendar/MonthCalendarCell.js.map +1 -0
  187. package/lib/module/month-calendar/MonthCalendarRoot.js +99 -0
  188. package/lib/module/month-calendar/MonthCalendarRoot.js.map +1 -0
  189. package/lib/module/month-calendar/MonthCalendarYearCell.js +59 -0
  190. package/lib/module/month-calendar/MonthCalendarYearCell.js.map +1 -0
  191. package/lib/module/month-calendar/context.js +12 -0
  192. package/lib/module/month-calendar/context.js.map +1 -0
  193. package/lib/module/month-calendar/index.js +7 -0
  194. package/lib/module/month-calendar/index.js.map +1 -0
  195. package/lib/module/month-picker/MonthPickerRoot.js +114 -0
  196. package/lib/module/month-picker/MonthPickerRoot.js.map +1 -0
  197. package/lib/module/month-picker/context.js +12 -0
  198. package/lib/module/month-picker/context.js.map +1 -0
  199. package/lib/module/month-picker/index.js +5 -0
  200. package/lib/module/month-picker/index.js.map +1 -0
  201. package/lib/module/overlay/useAnchorPosition.js +27 -16
  202. package/lib/module/overlay/useAnchorPosition.js.map +1 -1
  203. package/lib/module/overlay/useDismissOverlay.web.js +9 -2
  204. package/lib/module/overlay/useDismissOverlay.web.js.map +1 -1
  205. package/lib/module/overlay/useOverlayPosition.js +5 -2
  206. package/lib/module/overlay/useOverlayPosition.js.map +1 -1
  207. package/lib/module/portal/portal.js +59 -2
  208. package/lib/module/portal/portal.js.map +1 -1
  209. package/lib/module/range-calendar/RangeCalendarRoot.js +144 -0
  210. package/lib/module/range-calendar/RangeCalendarRoot.js.map +1 -0
  211. package/lib/module/range-calendar/context.js +12 -0
  212. package/lib/module/range-calendar/context.js.map +1 -0
  213. package/lib/module/range-calendar/index.js +5 -0
  214. package/lib/module/range-calendar/index.js.map +1 -0
  215. package/lib/module/select/SelectRoot.js +1 -1
  216. package/lib/module/select/SelectRoot.js.map +1 -1
  217. package/lib/module/utils/accessibleLabel.js +18 -0
  218. package/lib/module/utils/accessibleLabel.js.map +1 -0
  219. package/lib/module/utils/createPortal.web.js +17 -0
  220. package/lib/module/utils/createPortal.web.js.map +1 -0
  221. package/lib/typescript/calendar/CalendarGrid.d.ts +7 -0
  222. package/lib/typescript/calendar/CalendarGrid.d.ts.map +1 -0
  223. package/lib/typescript/calendar/CalendarRoot.d.ts +10 -0
  224. package/lib/typescript/calendar/CalendarRoot.d.ts.map +1 -0
  225. package/lib/typescript/calendar/context.d.ts +18 -0
  226. package/lib/typescript/calendar/context.d.ts.map +1 -0
  227. package/lib/typescript/calendar/index.d.ts +5 -0
  228. package/lib/typescript/calendar/index.d.ts.map +1 -0
  229. package/lib/typescript/calendar/types.d.ts +29 -0
  230. package/lib/typescript/calendar/types.d.ts.map +1 -0
  231. package/lib/typescript/date-field/DateFieldHiddenInput.d.ts +4 -0
  232. package/lib/typescript/date-field/DateFieldHiddenInput.d.ts.map +1 -0
  233. package/lib/typescript/date-field/DateFieldInput.d.ts +8 -0
  234. package/lib/typescript/date-field/DateFieldInput.d.ts.map +1 -0
  235. package/lib/typescript/date-field/DateFieldRoot.d.ts +10 -0
  236. package/lib/typescript/date-field/DateFieldRoot.d.ts.map +1 -0
  237. package/lib/typescript/date-field/DateFieldSegment.d.ts +9 -0
  238. package/lib/typescript/date-field/DateFieldSegment.d.ts.map +1 -0
  239. package/lib/typescript/date-field/context.d.ts +33 -0
  240. package/lib/typescript/date-field/context.d.ts.map +1 -0
  241. package/lib/typescript/date-field/index.d.ts +9 -0
  242. package/lib/typescript/date-field/index.d.ts.map +1 -0
  243. package/lib/typescript/date-field/segmentIndex.d.ts +7 -0
  244. package/lib/typescript/date-field/segmentIndex.d.ts.map +1 -0
  245. package/lib/typescript/date-field/segmentKeyboard.d.ts +23 -0
  246. package/lib/typescript/date-field/segmentKeyboard.d.ts.map +1 -0
  247. package/lib/typescript/date-field/types.d.ts +38 -0
  248. package/lib/typescript/date-field/types.d.ts.map +1 -0
  249. package/lib/typescript/date-field/useDateFieldSegmentState.d.ts +26 -0
  250. package/lib/typescript/date-field/useDateFieldSegmentState.d.ts.map +1 -0
  251. package/lib/typescript/date-field/useRangeDateFieldBridge.d.ts +4 -0
  252. package/lib/typescript/date-field/useRangeDateFieldBridge.d.ts.map +1 -0
  253. package/lib/typescript/date-picker/DatePickerRoot.d.ts +28 -0
  254. package/lib/typescript/date-picker/DatePickerRoot.d.ts.map +1 -0
  255. package/lib/typescript/date-picker/context.d.ts +25 -0
  256. package/lib/typescript/date-picker/context.d.ts.map +1 -0
  257. package/lib/typescript/date-picker/index.d.ts +5 -0
  258. package/lib/typescript/date-picker/index.d.ts.map +1 -0
  259. package/lib/typescript/date-range-picker/DateRangePickerRoot.d.ts +43 -0
  260. package/lib/typescript/date-range-picker/DateRangePickerRoot.d.ts.map +1 -0
  261. package/lib/typescript/date-range-picker/context.d.ts +42 -0
  262. package/lib/typescript/date-range-picker/context.d.ts.map +1 -0
  263. package/lib/typescript/date-range-picker/index.d.ts +4 -0
  264. package/lib/typescript/date-range-picker/index.d.ts.map +1 -0
  265. package/lib/typescript/date-time-field/DateTimeFieldHiddenInput.d.ts +4 -0
  266. package/lib/typescript/date-time-field/DateTimeFieldHiddenInput.d.ts.map +1 -0
  267. package/lib/typescript/date-time-field/DateTimeFieldInput.d.ts +10 -0
  268. package/lib/typescript/date-time-field/DateTimeFieldInput.d.ts.map +1 -0
  269. package/lib/typescript/date-time-field/DateTimeFieldRoot.d.ts +24 -0
  270. package/lib/typescript/date-time-field/DateTimeFieldRoot.d.ts.map +1 -0
  271. package/lib/typescript/date-time-field/DateTimeFieldSegment.d.ts +10 -0
  272. package/lib/typescript/date-time-field/DateTimeFieldSegment.d.ts.map +1 -0
  273. package/lib/typescript/date-time-field/context.d.ts +27 -0
  274. package/lib/typescript/date-time-field/context.d.ts.map +1 -0
  275. package/lib/typescript/date-time-field/index.d.ts +8 -0
  276. package/lib/typescript/date-time-field/index.d.ts.map +1 -0
  277. package/lib/typescript/date-time-field/useDateTimeFieldSegmentState.d.ts +26 -0
  278. package/lib/typescript/date-time-field/useDateTimeFieldSegmentState.d.ts.map +1 -0
  279. package/lib/typescript/date-time-list/DateTimeListRoot.d.ts +42 -0
  280. package/lib/typescript/date-time-list/DateTimeListRoot.d.ts.map +1 -0
  281. package/lib/typescript/date-time-list/context.d.ts +29 -0
  282. package/lib/typescript/date-time-list/context.d.ts.map +1 -0
  283. package/lib/typescript/date-time-list/index.d.ts +4 -0
  284. package/lib/typescript/date-time-list/index.d.ts.map +1 -0
  285. package/lib/typescript/date-time-picker/DateTimePickerRoot.d.ts +36 -0
  286. package/lib/typescript/date-time-picker/DateTimePickerRoot.d.ts.map +1 -0
  287. package/lib/typescript/date-time-picker/context.d.ts +25 -0
  288. package/lib/typescript/date-time-picker/context.d.ts.map +1 -0
  289. package/lib/typescript/date-time-picker/index.d.ts +4 -0
  290. package/lib/typescript/date-time-picker/index.d.ts.map +1 -0
  291. package/lib/typescript/dialog/types.d.ts +2 -1
  292. package/lib/typescript/dialog/types.d.ts.map +1 -1
  293. package/lib/typescript/index.d.ts +11 -2
  294. package/lib/typescript/index.d.ts.map +1 -1
  295. package/lib/typescript/month-calendar/MonthCalendarCell.d.ts +9 -0
  296. package/lib/typescript/month-calendar/MonthCalendarCell.d.ts.map +1 -0
  297. package/lib/typescript/month-calendar/MonthCalendarRoot.d.ts +30 -0
  298. package/lib/typescript/month-calendar/MonthCalendarRoot.d.ts.map +1 -0
  299. package/lib/typescript/month-calendar/MonthCalendarYearCell.d.ts +9 -0
  300. package/lib/typescript/month-calendar/MonthCalendarYearCell.d.ts.map +1 -0
  301. package/lib/typescript/month-calendar/context.d.ts +20 -0
  302. package/lib/typescript/month-calendar/context.d.ts.map +1 -0
  303. package/lib/typescript/month-calendar/index.d.ts +7 -0
  304. package/lib/typescript/month-calendar/index.d.ts.map +1 -0
  305. package/lib/typescript/month-picker/MonthPickerRoot.d.ts +29 -0
  306. package/lib/typescript/month-picker/MonthPickerRoot.d.ts.map +1 -0
  307. package/lib/typescript/month-picker/context.d.ts +23 -0
  308. package/lib/typescript/month-picker/context.d.ts.map +1 -0
  309. package/lib/typescript/month-picker/index.d.ts +4 -0
  310. package/lib/typescript/month-picker/index.d.ts.map +1 -0
  311. package/lib/typescript/overlay/useAnchorPosition.d.ts.map +1 -1
  312. package/lib/typescript/overlay/useDismissOverlay.web.d.ts.map +1 -1
  313. package/lib/typescript/overlay/useOverlayPosition.d.ts.map +1 -1
  314. package/lib/typescript/portal/portal.d.ts.map +1 -1
  315. package/lib/typescript/range-calendar/RangeCalendarRoot.d.ts +34 -0
  316. package/lib/typescript/range-calendar/RangeCalendarRoot.d.ts.map +1 -0
  317. package/lib/typescript/range-calendar/context.d.ts +26 -0
  318. package/lib/typescript/range-calendar/context.d.ts.map +1 -0
  319. package/lib/typescript/range-calendar/index.d.ts +5 -0
  320. package/lib/typescript/range-calendar/index.d.ts.map +1 -0
  321. package/lib/typescript/select/types.d.ts +2 -1
  322. package/lib/typescript/select/types.d.ts.map +1 -1
  323. package/lib/typescript/utils/accessibleLabel.d.ts +13 -0
  324. package/lib/typescript/utils/accessibleLabel.d.ts.map +1 -0
  325. package/lib/typescript/utils/createPortal.web.d.ts +17 -0
  326. package/lib/typescript/utils/createPortal.web.d.ts.map +1 -0
  327. package/package.json +3 -2
  328. package/src/calendar/CalendarGrid.tsx +29 -0
  329. package/src/calendar/CalendarRoot.tsx +138 -0
  330. package/src/calendar/context.tsx +28 -0
  331. package/src/calendar/index.ts +4 -0
  332. package/src/calendar/types.ts +30 -0
  333. package/src/date-field/DateFieldHiddenInput.tsx +152 -0
  334. package/src/date-field/DateFieldInput.tsx +138 -0
  335. package/src/date-field/DateFieldRoot.tsx +117 -0
  336. package/src/date-field/DateFieldSegment.tsx +97 -0
  337. package/src/date-field/context.tsx +48 -0
  338. package/src/date-field/index.ts +8 -0
  339. package/src/date-field/segmentIndex.tsx +17 -0
  340. package/src/date-field/segmentKeyboard.ts +207 -0
  341. package/src/date-field/types.ts +40 -0
  342. package/src/date-field/useDateFieldSegmentState.ts +455 -0
  343. package/src/date-field/useRangeDateFieldBridge.ts +78 -0
  344. package/src/date-picker/DatePickerRoot.tsx +186 -0
  345. package/src/date-picker/context.tsx +34 -0
  346. package/src/date-picker/index.ts +4 -0
  347. package/src/date-range-picker/DateRangePickerRoot.tsx +236 -0
  348. package/src/date-range-picker/context.tsx +48 -0
  349. package/src/date-range-picker/index.ts +8 -0
  350. package/src/date-time-field/DateTimeFieldHiddenInput.tsx +156 -0
  351. package/src/date-time-field/DateTimeFieldInput.tsx +119 -0
  352. package/src/date-time-field/DateTimeFieldRoot.tsx +209 -0
  353. package/src/date-time-field/DateTimeFieldSegment.tsx +95 -0
  354. package/src/date-time-field/context.tsx +41 -0
  355. package/src/date-time-field/index.ts +7 -0
  356. package/src/date-time-field/useDateTimeFieldSegmentState.ts +672 -0
  357. package/src/date-time-list/DateTimeListRoot.tsx +530 -0
  358. package/src/date-time-list/context.tsx +45 -0
  359. package/src/date-time-list/index.ts +16 -0
  360. package/src/date-time-picker/DateTimePickerRoot.tsx +210 -0
  361. package/src/date-time-picker/context.tsx +33 -0
  362. package/src/date-time-picker/index.ts +7 -0
  363. package/src/dialog/DialogRoot.tsx +1 -1
  364. package/src/dialog/types.ts +2 -1
  365. package/src/index.ts +21 -2
  366. package/src/month-calendar/MonthCalendarCell.tsx +53 -0
  367. package/src/month-calendar/MonthCalendarRoot.tsx +153 -0
  368. package/src/month-calendar/MonthCalendarYearCell.tsx +54 -0
  369. package/src/month-calendar/context.tsx +30 -0
  370. package/src/month-calendar/index.ts +6 -0
  371. package/src/month-picker/MonthPickerRoot.tsx +183 -0
  372. package/src/month-picker/context.tsx +31 -0
  373. package/src/month-picker/index.ts +3 -0
  374. package/src/overlay/useAnchorPosition.ts +25 -11
  375. package/src/overlay/useDismissOverlay.web.ts +10 -2
  376. package/src/overlay/useOverlayPosition.ts +5 -2
  377. package/src/portal/portal.tsx +79 -2
  378. package/src/range-calendar/RangeCalendarRoot.tsx +213 -0
  379. package/src/range-calendar/context.tsx +33 -0
  380. package/src/range-calendar/index.ts +4 -0
  381. package/src/select/SelectRoot.tsx +1 -1
  382. package/src/select/types.ts +2 -1
  383. package/src/utils/accessibleLabel.ts +22 -0
  384. package/src/utils/createPortal.web.ts +18 -0
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+
3
+ import { forwardRef, useMemo } from 'react';
4
+ import { View } from 'react-native';
5
+ import { getDateFieldSegments, resolveDateComponentLabels } from '@cdx-ui/formatters';
6
+ import { useControllableState, useFormControl } from '@cdx-ui/utils';
7
+ import { Slot } from '../slot';
8
+ import { dataAttributes, mergeDataAttributes } from '../utils/dataAttributes';
9
+ import { DateFieldContext } from './context';
10
+ import { useDateFieldSegmentState } from './useDateFieldSegmentState';
11
+ import { jsx as _jsx } from "react/jsx-runtime";
12
+ export const DateFieldRoot = /*#__PURE__*/forwardRef(({
13
+ asChild,
14
+ children,
15
+ value: valueProp,
16
+ defaultValue,
17
+ onValueChange,
18
+ mode = 'date',
19
+ locale = 'en-US',
20
+ labels: labelsProp,
21
+ isDisabled,
22
+ isReadOnly,
23
+ isInvalid,
24
+ isRequired,
25
+ ...props
26
+ }, ref) => {
27
+ const formControl = useFormControl({
28
+ isDisabled,
29
+ isReadOnly,
30
+ isInvalid,
31
+ isRequired
32
+ });
33
+ const [value, setValue] = useControllableState({
34
+ prop: valueProp,
35
+ defaultProp: defaultValue,
36
+ onChange: next => {
37
+ onValueChange?.(next);
38
+ }
39
+ });
40
+ const labels = useMemo(() => resolveDateComponentLabels(labelsProp), [labelsProp]);
41
+ const segments = useMemo(() => getDateFieldSegments(value, {
42
+ mode,
43
+ locale
44
+ }), [value, mode, locale]);
45
+ const segmentState = useDateFieldSegmentState({
46
+ mode,
47
+ segments,
48
+ value,
49
+ setValue,
50
+ disabled: !!formControl.disabled,
51
+ readOnly: !!formControl.readOnly
52
+ });
53
+ const contextValue = useMemo(() => ({
54
+ value,
55
+ onValueChange: setValue,
56
+ mode,
57
+ locale,
58
+ labels,
59
+ segments,
60
+ disabled: !!formControl.disabled,
61
+ readOnly: !!formControl.readOnly,
62
+ invalid: !!formControl['aria-invalid'],
63
+ ...segmentState
64
+ }), [value, setValue, mode, locale, labels, segments, formControl.disabled, formControl.readOnly, formControl['aria-invalid'], segmentState]);
65
+ const Comp = asChild ? Slot : View;
66
+ return /*#__PURE__*/_jsx(DateFieldContext.Provider, {
67
+ value: contextValue,
68
+ children: /*#__PURE__*/_jsx(Comp, {
69
+ ref: ref,
70
+ ...props,
71
+ ...mergeDataAttributes(props, dataAttributes({
72
+ disabled: formControl.disabled,
73
+ invalid: formControl['aria-invalid'],
74
+ readonly: formControl.readOnly
75
+ })),
76
+ children: children
77
+ })
78
+ });
79
+ });
80
+ DateFieldRoot.displayName = 'DateFieldRoot';
81
+ //# sourceMappingURL=DateFieldRoot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["forwardRef","useMemo","View","getDateFieldSegments","resolveDateComponentLabels","useControllableState","useFormControl","Slot","dataAttributes","mergeDataAttributes","DateFieldContext","useDateFieldSegmentState","jsx","_jsx","DateFieldRoot","asChild","children","value","valueProp","defaultValue","onValueChange","mode","locale","labels","labelsProp","isDisabled","isReadOnly","isInvalid","isRequired","props","ref","formControl","setValue","prop","defaultProp","onChange","next","segments","segmentState","disabled","readOnly","contextValue","invalid","Comp","Provider","readonly","displayName"],"sourceRoot":"../../../src","sources":["date-field/DateFieldRoot.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,88 @@
1
+ "use strict";
2
+
3
+ import { forwardRef, useCallback } from 'react';
4
+ import { Platform, Pressable, Text } from 'react-native';
5
+ import { getDateSegmentAccessibilityLabel } from '@cdx-ui/formatters';
6
+ import { Slot } from '../slot';
7
+ import { dataAttributes, mergeDataAttributes } from '../utils/dataAttributes';
8
+ import { useDateFieldContext } from './context';
9
+ import { useDateFieldSegmentIndex } from './segmentIndex';
10
+ import { jsx as _jsx } from "react/jsx-runtime";
11
+ export const DateFieldSegment = /*#__PURE__*/forwardRef(({
12
+ asChild,
13
+ segment,
14
+ segmentIndex: segmentIndexProp,
15
+ style,
16
+ ...props
17
+ }, ref) => {
18
+ const contextSegmentIndex = useDateFieldSegmentIndex();
19
+ const segmentIndex = segmentIndexProp ?? contextSegmentIndex;
20
+ const {
21
+ disabled,
22
+ readOnly,
23
+ focusedSegmentIndex,
24
+ focusSegment,
25
+ getSegmentDisplayText,
26
+ labels
27
+ } = useDateFieldContext();
28
+ const isFocused = focusedSegmentIndex === segmentIndex;
29
+ const displayText = getSegmentDisplayText(segmentIndex);
30
+ const handlePress = useCallback(() => {
31
+ focusSegment(segmentIndex);
32
+ }, [focusSegment, segmentIndex]);
33
+
34
+ // On web, prevent the Pressable from taking focus so the hidden TextInput
35
+ // can keep keyboard ownership after the tap.
36
+ const preventWebFocusSteal = useCallback(event => {
37
+ if (Platform.OS !== 'web') {
38
+ return;
39
+ }
40
+ const maybeDom = event;
41
+ maybeDom.preventDefault?.();
42
+ }, []);
43
+ const dataProps = mergeDataAttributes(props, dataAttributes({
44
+ slot: 'date-field-segment',
45
+ focus: isFocused,
46
+ placeholder: segment.text === displayText && !segment.value
47
+ }));
48
+ if (segment.isEditable && !asChild) {
49
+ return /*#__PURE__*/_jsx(Pressable, {
50
+ accessibilityRole: "spinbutton",
51
+ accessibilityLabel: getDateSegmentAccessibilityLabel(segment.type, labels),
52
+ accessibilityState: {
53
+ disabled,
54
+ selected: isFocused
55
+ },
56
+ disabled: disabled || readOnly,
57
+ onPress: handlePress,
58
+ onPressIn: preventWebFocusSteal
59
+ // Keep segments above the invisible keyboard input for hit-testing.
60
+ ,
61
+ style: [{
62
+ zIndex: 1
63
+ }, style],
64
+ ...props,
65
+ ...dataProps,
66
+ ...(Platform.OS === 'web' ? {
67
+ onMouseDown: e => {
68
+ e.preventDefault();
69
+ }
70
+ } : null),
71
+ children: /*#__PURE__*/_jsx(Text, {
72
+ children: displayText
73
+ })
74
+ });
75
+ }
76
+ const Comp = asChild ? Slot : Text;
77
+ return /*#__PURE__*/_jsx(Comp, {
78
+ ref: ref,
79
+ style: style,
80
+ ...props,
81
+ ...dataProps,
82
+ accessibilityRole: "text",
83
+ importantForAccessibility: "no",
84
+ children: displayText
85
+ });
86
+ });
87
+ DateFieldSegment.displayName = 'DateFieldSegment';
88
+ //# sourceMappingURL=DateFieldSegment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["forwardRef","useCallback","Platform","Pressable","Text","getDateSegmentAccessibilityLabel","Slot","dataAttributes","mergeDataAttributes","useDateFieldContext","useDateFieldSegmentIndex","jsx","_jsx","DateFieldSegment","asChild","segment","segmentIndex","segmentIndexProp","style","props","ref","contextSegmentIndex","disabled","readOnly","focusedSegmentIndex","focusSegment","getSegmentDisplayText","labels","isFocused","displayText","handlePress","preventWebFocusSteal","event","OS","maybeDom","preventDefault","dataProps","slot","focus","placeholder","text","value","isEditable","accessibilityRole","accessibilityLabel","type","accessibilityState","selected","onPress","onPressIn","zIndex","onMouseDown","e","children","Comp","importantForAccessibility","displayName"],"sourceRoot":"../../../src","sources":["date-field/DateFieldSegment.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+
3
+ import { createContext, useContext } from 'react';
4
+
5
+ /** A `DateField` carries a `DateId` in date mode and a `MonthId` in month mode. */
6
+
7
+ export const DateFieldContext = /*#__PURE__*/createContext(null);
8
+ export function useDateFieldContext() {
9
+ const ctx = useContext(DateFieldContext);
10
+ if (!ctx) {
11
+ throw new Error('DateField compound components must be used within DateFieldRoot');
12
+ }
13
+ return ctx;
14
+ }
15
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createContext","useContext","DateFieldContext","useDateFieldContext","ctx","Error"],"sourceRoot":"../../../src","sources":["date-field/context.tsx"],"mappings":";;AAAA,SAASA,aAAa,EAAEC,UAAU,QAA4C,OAAO;;AASrF;;AA8BA,OAAO,MAAMC,gBAAgB,gBAAGF,aAAa,CAA+B,IAAI,CAAC;AAEjF,OAAO,SAASG,mBAAmBA,CAAA,EAA0B;EAC3D,MAAMC,GAAG,GAAGH,UAAU,CAACC,gBAAgB,CAAC;EACxC,IAAI,CAACE,GAAG,EAAE;IACR,MAAM,IAAIC,KAAK,CAAC,iEAAiE,CAAC;EACpF;EACA,OAAOD,GAAG;AACZ","ignoreList":[]}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+
3
+ export { DateFieldRoot } from './DateFieldRoot';
4
+ export { DateFieldInput } from './DateFieldInput';
5
+ export { DateFieldSegment } from './DateFieldSegment';
6
+ export { useDateFieldContext } from './context';
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["DateFieldRoot","DateFieldInput","DateFieldSegment","useDateFieldContext"],"sourceRoot":"../../../src","sources":["date-field/index.ts"],"mappings":";;AAAA,SAASA,aAAa,QAAQ,iBAAiB;AAE/C,SAASC,cAAc,QAAQ,kBAAkB;AAEjD,SAASC,gBAAgB,QAAQ,oBAAoB;AAErD,SAASC,mBAAmB,QAAQ,WAAW","ignoreList":[]}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+
3
+ import { createContext, useContext } from 'react';
4
+ import { jsx as _jsx } from "react/jsx-runtime";
5
+ const SegmentIndexContext = /*#__PURE__*/createContext(0);
6
+ export function DateFieldSegmentIndexProvider({
7
+ index,
8
+ children
9
+ }) {
10
+ return /*#__PURE__*/_jsx(SegmentIndexContext.Provider, {
11
+ value: index,
12
+ children: children
13
+ });
14
+ }
15
+ export function useDateFieldSegmentIndex() {
16
+ return useContext(SegmentIndexContext);
17
+ }
18
+ //# sourceMappingURL=segmentIndex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createContext","useContext","jsx","_jsx","SegmentIndexContext","DateFieldSegmentIndexProvider","index","children","Provider","value","useDateFieldSegmentIndex"],"sourceRoot":"../../../src","sources":["date-field/segmentIndex.tsx"],"mappings":";;AAAA,SAASA,aAAa,EAAEC,UAAU,QAAwB,OAAO;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAElE,MAAMC,mBAAmB,gBAAGJ,aAAa,CAAS,CAAC,CAAC;AAEpD,OAAO,SAASK,6BAA6BA,CAAC;EAC5CC,KAAK;EACLC;AAIF,CAAC,EAAE;EACD,oBAAOJ,IAAA,CAACC,mBAAmB,CAACI,QAAQ;IAACC,KAAK,EAAEH,KAAM;IAAAC,QAAA,EAAEA;EAAQ,CAA+B,CAAC;AAC9F;AAEA,OAAO,SAASG,wBAAwBA,CAAA,EAAW;EACjD,OAAOT,UAAU,CAACG,mBAAmB,CAAC;AACxC","ignoreList":[]}
@@ -0,0 +1,157 @@
1
+ "use strict";
2
+
3
+ import { parseDateSegment } from '@cdx-ui/formatters';
4
+ export const SEGMENT_MAX_LENGTH = {
5
+ month: 2,
6
+ day: 2,
7
+ year: 4,
8
+ hour: 2,
9
+ minute: 2,
10
+ second: 2,
11
+ dayPeriod: 1
12
+ };
13
+ export function getSegmentMaxLength(type) {
14
+ return SEGMENT_MAX_LENGTH[type] ?? 4;
15
+ }
16
+
17
+ /** True when another digit cannot produce a different valid value (auto-advance). */
18
+ export function isSegmentDraftComplete(type, draft, options) {
19
+ if (!draft) {
20
+ return false;
21
+ }
22
+ const maxLength = getSegmentMaxLength(type);
23
+ if (draft.length >= maxLength) {
24
+ return true;
25
+ }
26
+ const value = Number(draft);
27
+ if (Number.isNaN(value)) {
28
+ return false;
29
+ }
30
+
31
+ // Month 1-12: 2-9 cannot be a leading digit of a two-digit month.
32
+ if (type === 'month') {
33
+ return value >= 2 && value <= 9;
34
+ }
35
+
36
+ // Day 1-31: 4-9 cannot be a leading digit of a two-digit day.
37
+ if (type === 'day') {
38
+ return value >= 4 && value <= 9;
39
+ }
40
+ if (type === 'hour') {
41
+ if (options?.hour12) {
42
+ return value >= 2 && value <= 9;
43
+ }
44
+ // 0-23: 3-9 cannot start a valid two-digit hour.
45
+ return value >= 3 && value <= 9;
46
+ }
47
+
48
+ // Minute / second 0-59: 6-9 cannot start a valid two-digit value.
49
+ if (type === 'minute' || type === 'second') {
50
+ return value >= 6 && value <= 9;
51
+ }
52
+ return false;
53
+ }
54
+ function isValidSegmentDraft(type, draft, options) {
55
+ if (!draft) {
56
+ return true;
57
+ }
58
+ const value = Number(draft);
59
+ if (Number.isNaN(value)) {
60
+ return false;
61
+ }
62
+ if (type === 'month') {
63
+ if (draft.length === 1) {
64
+ return value >= 0 && value <= 9;
65
+ }
66
+ return value >= 1 && value <= 12;
67
+ }
68
+ if (type === 'day') {
69
+ if (draft.length === 1) {
70
+ return value >= 0 && value <= 9;
71
+ }
72
+ return value >= 1 && value <= 31;
73
+ }
74
+ if (type === 'year') {
75
+ return draft.length <= 4;
76
+ }
77
+ if (type === 'hour') {
78
+ if (draft.length === 1) {
79
+ return value >= 0 && value <= 9;
80
+ }
81
+ if (options?.hour12) {
82
+ return value >= 1 && value <= 12;
83
+ }
84
+ return value >= 0 && value <= 23;
85
+ }
86
+ if (type === 'minute' || type === 'second') {
87
+ if (draft.length === 1) {
88
+ return value >= 0 && value <= 9;
89
+ }
90
+ return value >= 0 && value <= 59;
91
+ }
92
+ return true;
93
+ }
94
+ export function applySegmentDigit(draft, _committedText, isDraftDirty, digit, type, options) {
95
+ const maxLength = getSegmentMaxLength(type);
96
+ const base = isDraftDirty ? draft : '';
97
+ const candidate = `${base}${digit}`.slice(0, maxLength + 1);
98
+
99
+ // e.g. month "1" + "5" → invalid 15: commit 1, spill 5 into day.
100
+ if (base.length > 0 && candidate.length <= maxLength && !isValidSegmentDraft(type, candidate, options) && isValidSegmentDraft(type, base, options) && Number(base) >= 1) {
101
+ return {
102
+ draft: base,
103
+ isDraftDirty: true,
104
+ shouldCommit: true,
105
+ spillDigit: digit
106
+ };
107
+ }
108
+ const nextDraft = candidate.slice(0, maxLength);
109
+ if (!isValidSegmentDraft(type, nextDraft, options)) {
110
+ // Replace with the new digit alone (e.g. starting fresh).
111
+ return {
112
+ draft: digit,
113
+ isDraftDirty: true,
114
+ shouldCommit: isSegmentDraftComplete(type, digit, options)
115
+ };
116
+ }
117
+ return {
118
+ draft: nextDraft,
119
+ isDraftDirty: true,
120
+ shouldCommit: isSegmentDraftComplete(type, nextDraft, options)
121
+ };
122
+ }
123
+ export function commitSegmentDraft(segment, draft) {
124
+ const parsed = parseDateSegment(segment.type, draft || segment.text);
125
+ return parsed;
126
+ }
127
+
128
+ /** Parses day-period input (`A`/`P`/`1`/`2`) into 0 (AM) or 1 (PM). */
129
+ export function commitDayPeriodDraft(draft) {
130
+ const trimmed = draft.trim().toLowerCase();
131
+ if (!trimmed) {
132
+ return null;
133
+ }
134
+ if (trimmed === 'a' || trimmed === 'am' || trimmed === '1') {
135
+ return 0;
136
+ }
137
+ if (trimmed === 'p' || trimmed === 'pm' || trimmed === '2') {
138
+ return 1;
139
+ }
140
+ return null;
141
+ }
142
+ export function findAdjacentEditableIndex(segments, fromIndex, direction) {
143
+ for (let i = fromIndex + direction; direction < 0 ? i >= 0 : i < segments.length; i += direction) {
144
+ if (segments[i]?.isEditable) {
145
+ return i;
146
+ }
147
+ }
148
+ return null;
149
+ }
150
+ export function toHour24(hour12, period) {
151
+ const normalized = hour12 % 12;
152
+ return normalized + (period === 1 ? 12 : 0);
153
+ }
154
+ export function toHour12(hour24) {
155
+ return hour24 % 12 || 12;
156
+ }
157
+ //# sourceMappingURL=segmentKeyboard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["parseDateSegment","SEGMENT_MAX_LENGTH","month","day","year","hour","minute","second","dayPeriod","getSegmentMaxLength","type","isSegmentDraftComplete","draft","options","maxLength","length","value","Number","isNaN","hour12","isValidSegmentDraft","applySegmentDigit","_committedText","isDraftDirty","digit","base","candidate","slice","shouldCommit","spillDigit","nextDraft","commitSegmentDraft","segment","parsed","text","commitDayPeriodDraft","trimmed","trim","toLowerCase","findAdjacentEditableIndex","segments","fromIndex","direction","i","isEditable","toHour24","period","normalized","toHour12","hour24"],"sourceRoot":"../../../src","sources":["date-field/segmentKeyboard.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export {};
4
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../src","sources":["date-field/types.ts"],"mappings":"","ignoreList":[]}