@cimpress-ui/react 0.3.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (620) hide show
  1. package/dist/commonjs/components/alert/alert.d.ts +25 -0
  2. package/dist/commonjs/components/alert/alert.d.ts.map +1 -0
  3. package/dist/commonjs/components/alert/alert.js +51 -0
  4. package/dist/commonjs/components/alert/alert.js.map +1 -0
  5. package/dist/commonjs/components/alert-dialog/alert-dialog.d.ts +51 -0
  6. package/dist/commonjs/components/alert-dialog/alert-dialog.d.ts.map +1 -0
  7. package/dist/commonjs/components/alert-dialog/alert-dialog.js +26 -0
  8. package/dist/commonjs/components/alert-dialog/alert-dialog.js.map +1 -0
  9. package/dist/commonjs/components/breadcrumbs/breadcrumbs.d.ts.map +1 -1
  10. package/dist/commonjs/components/breadcrumbs/breadcrumbs.js +17 -1
  11. package/dist/commonjs/components/breadcrumbs/breadcrumbs.js.map +1 -1
  12. package/dist/commonjs/components/button/button.d.ts.map +1 -1
  13. package/dist/commonjs/components/button/button.js +3 -3
  14. package/dist/commonjs/components/button/button.js.map +1 -1
  15. package/dist/commonjs/components/button/icon-button.d.ts.map +1 -1
  16. package/dist/commonjs/components/button/icon-button.js +3 -3
  17. package/dist/commonjs/components/button/icon-button.js.map +1 -1
  18. package/dist/commonjs/components/button/icon-link-button.js +1 -1
  19. package/dist/commonjs/components/button/icon-link-button.js.map +1 -1
  20. package/dist/commonjs/components/button/link-button.js +1 -1
  21. package/dist/commonjs/components/button/link-button.js.map +1 -1
  22. package/dist/commonjs/components/button/types.js.map +1 -1
  23. package/dist/commonjs/components/callout/callout.d.ts +27 -0
  24. package/dist/commonjs/components/callout/callout.d.ts.map +1 -0
  25. package/dist/commonjs/components/callout/callout.js +46 -0
  26. package/dist/commonjs/components/callout/callout.js.map +1 -0
  27. package/dist/commonjs/components/card/card.d.ts +21 -9
  28. package/dist/commonjs/components/card/card.d.ts.map +1 -1
  29. package/dist/commonjs/components/card/card.js +17 -11
  30. package/dist/commonjs/components/card/card.js.map +1 -1
  31. package/dist/commonjs/components/checkbox/checkbox-group.d.ts +1 -1
  32. package/dist/commonjs/components/checkbox/checkbox-group.d.ts.map +1 -1
  33. package/dist/commonjs/components/checkbox/checkbox-group.js +2 -2
  34. package/dist/commonjs/components/checkbox/checkbox-group.js.map +1 -1
  35. package/dist/commonjs/components/checkbox/checkbox.d.ts.map +1 -1
  36. package/dist/commonjs/components/checkbox/checkbox.js +2 -2
  37. package/dist/commonjs/components/checkbox/checkbox.js.map +1 -1
  38. package/dist/commonjs/components/combo-box/combo-box.d.ts +2 -1
  39. package/dist/commonjs/components/combo-box/combo-box.d.ts.map +1 -1
  40. package/dist/commonjs/components/combo-box/combo-box.js +5 -3
  41. package/dist/commonjs/components/combo-box/combo-box.js.map +1 -1
  42. package/dist/commonjs/components/container/container.d.ts +16 -0
  43. package/dist/commonjs/components/container/container.d.ts.map +1 -0
  44. package/dist/commonjs/components/container/container.js +13 -0
  45. package/dist/commonjs/components/container/container.js.map +1 -0
  46. package/dist/commonjs/components/date-picker/date-picker-calendar.d.ts +2 -0
  47. package/dist/commonjs/components/date-picker/date-picker-calendar.d.ts.map +1 -0
  48. package/dist/commonjs/components/date-picker/date-picker-calendar.js +26 -0
  49. package/dist/commonjs/components/date-picker/date-picker-calendar.js.map +1 -0
  50. package/dist/commonjs/components/date-picker/date-picker.d.ts +17 -0
  51. package/dist/commonjs/components/date-picker/date-picker.d.ts.map +1 -0
  52. package/dist/commonjs/components/date-picker/date-picker.js +54 -0
  53. package/dist/commonjs/components/date-picker/date-picker.js.map +1 -0
  54. package/dist/commonjs/components/date-picker/utils.d.ts +2 -0
  55. package/dist/commonjs/components/date-picker/utils.d.ts.map +1 -0
  56. package/dist/commonjs/components/date-picker/utils.js +31 -0
  57. package/dist/commonjs/components/date-picker/utils.js.map +1 -0
  58. package/dist/commonjs/components/date-picker/views/month/month-view.d.ts +2 -0
  59. package/dist/commonjs/components/date-picker/views/month/month-view.d.ts.map +1 -0
  60. package/dist/commonjs/components/date-picker/views/month/month-view.js +35 -0
  61. package/dist/commonjs/components/date-picker/views/month/month-view.js.map +1 -0
  62. package/dist/commonjs/components/date-picker/views/multi-year/multi-year-view.d.ts +2 -0
  63. package/dist/commonjs/components/date-picker/views/multi-year/multi-year-view.d.ts.map +1 -0
  64. package/dist/commonjs/components/date-picker/views/multi-year/multi-year-view.js +16 -0
  65. package/dist/commonjs/components/date-picker/views/multi-year/multi-year-view.js.map +1 -0
  66. package/dist/commonjs/components/date-picker/views/multi-year/use-multi-year-view-state.d.ts +2 -0
  67. package/dist/commonjs/components/date-picker/views/multi-year/use-multi-year-view-state.d.ts.map +1 -0
  68. package/dist/commonjs/components/date-picker/views/multi-year/use-multi-year-view-state.js +130 -0
  69. package/dist/commonjs/components/date-picker/views/multi-year/use-multi-year-view-state.js.map +1 -0
  70. package/dist/commonjs/components/date-picker/views/types.d.ts +2 -0
  71. package/dist/commonjs/components/date-picker/views/types.d.ts.map +1 -0
  72. package/dist/commonjs/components/date-picker/views/types.js +3 -0
  73. package/dist/commonjs/components/date-picker/views/types.js.map +1 -0
  74. package/dist/commonjs/components/date-picker/views/use-view-header.d.ts +2 -0
  75. package/dist/commonjs/components/date-picker/views/use-view-header.d.ts.map +1 -0
  76. package/dist/commonjs/components/date-picker/views/use-view-header.js +56 -0
  77. package/dist/commonjs/components/date-picker/views/use-view-header.js.map +1 -0
  78. package/dist/commonjs/components/date-picker/views/view-grid-cell.d.ts +2 -0
  79. package/dist/commonjs/components/date-picker/views/view-grid-cell.d.ts.map +1 -0
  80. package/dist/commonjs/components/date-picker/views/view-grid-cell.js +72 -0
  81. package/dist/commonjs/components/date-picker/views/view-grid-cell.js.map +1 -0
  82. package/dist/commonjs/components/date-picker/views/view-grid.d.ts +2 -0
  83. package/dist/commonjs/components/date-picker/views/view-grid.d.ts.map +1 -0
  84. package/dist/commonjs/components/date-picker/views/view-grid.js +75 -0
  85. package/dist/commonjs/components/date-picker/views/view-grid.js.map +1 -0
  86. package/dist/commonjs/components/date-picker/views/view-provider.d.ts +2 -0
  87. package/dist/commonjs/components/date-picker/views/view-provider.d.ts.map +1 -0
  88. package/dist/commonjs/components/date-picker/views/view-provider.js +21 -0
  89. package/dist/commonjs/components/date-picker/views/view-provider.js.map +1 -0
  90. package/dist/commonjs/components/date-picker/views/year/use-year-view-state.d.ts +2 -0
  91. package/dist/commonjs/components/date-picker/views/year/use-year-view-state.d.ts.map +1 -0
  92. package/dist/commonjs/components/date-picker/views/year/use-year-view-state.js +158 -0
  93. package/dist/commonjs/components/date-picker/views/year/use-year-view-state.js.map +1 -0
  94. package/dist/commonjs/components/date-picker/views/year/year-view.d.ts +2 -0
  95. package/dist/commonjs/components/date-picker/views/year/year-view.d.ts.map +1 -0
  96. package/dist/commonjs/components/date-picker/views/year/year-view.js +20 -0
  97. package/dist/commonjs/components/date-picker/views/year/year-view.js.map +1 -0
  98. package/dist/commonjs/components/dialog-root/dialog-root.d.ts +20 -0
  99. package/dist/commonjs/components/dialog-root/dialog-root.d.ts.map +1 -0
  100. package/dist/commonjs/components/dialog-root/dialog-root.js +15 -0
  101. package/dist/commonjs/components/dialog-root/dialog-root.js.map +1 -0
  102. package/dist/commonjs/components/disclosure/context.d.ts +3 -0
  103. package/dist/commonjs/components/disclosure/context.d.ts.map +1 -0
  104. package/dist/commonjs/components/disclosure/context.js +7 -0
  105. package/dist/commonjs/components/disclosure/context.js.map +1 -0
  106. package/dist/commonjs/components/disclosure/disclosure-group.d.ts +15 -4
  107. package/dist/commonjs/components/disclosure/disclosure-group.d.ts.map +1 -1
  108. package/dist/commonjs/components/disclosure/disclosure-group.js +11 -5
  109. package/dist/commonjs/components/disclosure/disclosure-group.js.map +1 -1
  110. package/dist/commonjs/components/disclosure/disclosure.d.ts +35 -4
  111. package/dist/commonjs/components/disclosure/disclosure.d.ts.map +1 -1
  112. package/dist/commonjs/components/disclosure/disclosure.js +16 -5
  113. package/dist/commonjs/components/disclosure/disclosure.js.map +1 -1
  114. package/dist/commonjs/components/divider/divider.d.ts +12 -0
  115. package/dist/commonjs/components/divider/divider.d.ts.map +1 -0
  116. package/dist/commonjs/components/divider/divider.js +19 -0
  117. package/dist/commonjs/components/divider/divider.js.map +1 -0
  118. package/dist/commonjs/components/file-picker/file-picker.d.ts +19 -0
  119. package/dist/commonjs/components/file-picker/file-picker.d.ts.map +1 -0
  120. package/dist/commonjs/components/file-picker/file-picker.js +68 -0
  121. package/dist/commonjs/components/file-picker/file-picker.js.map +1 -0
  122. package/dist/commonjs/components/header/cimpress-logo.d.ts +2 -0
  123. package/dist/commonjs/components/header/cimpress-logo.d.ts.map +1 -0
  124. package/dist/commonjs/components/header/cimpress-logo.js +9 -0
  125. package/dist/commonjs/components/header/cimpress-logo.js.map +1 -0
  126. package/dist/commonjs/components/header/header.d.ts +10 -0
  127. package/dist/commonjs/components/header/header.d.ts.map +1 -0
  128. package/dist/commonjs/components/header/header.js +19 -0
  129. package/dist/commonjs/components/header/header.js.map +1 -0
  130. package/dist/commonjs/components/internal/form-field/form-field.js +1 -1
  131. package/dist/commonjs/components/internal/form-field/form-field.js.map +1 -1
  132. package/dist/commonjs/components/internal/x-button/x-button.d.ts +2 -0
  133. package/dist/commonjs/components/internal/x-button/x-button.d.ts.map +1 -0
  134. package/dist/commonjs/components/internal/x-button/x-button.js +17 -0
  135. package/dist/commonjs/components/internal/x-button/x-button.js.map +1 -0
  136. package/dist/commonjs/components/menu/menu.d.ts +3 -6
  137. package/dist/commonjs/components/menu/menu.d.ts.map +1 -1
  138. package/dist/commonjs/components/menu/menu.js +4 -9
  139. package/dist/commonjs/components/menu/menu.js.map +1 -1
  140. package/dist/commonjs/components/modal-dialog/modal-dialog.d.ts +63 -0
  141. package/dist/commonjs/components/modal-dialog/modal-dialog.d.ts.map +1 -0
  142. package/dist/commonjs/components/modal-dialog/modal-dialog.js +50 -0
  143. package/dist/commonjs/components/modal-dialog/modal-dialog.js.map +1 -0
  144. package/dist/commonjs/components/number-field/number-field.d.ts +1 -1
  145. package/dist/commonjs/components/number-field/number-field.d.ts.map +1 -1
  146. package/dist/commonjs/components/number-field/number-field.js +6 -4
  147. package/dist/commonjs/components/number-field/number-field.js.map +1 -1
  148. package/dist/commonjs/components/pagination/base-pagination.d.ts.map +1 -1
  149. package/dist/commonjs/components/pagination/base-pagination.js +9 -10
  150. package/dist/commonjs/components/pagination/base-pagination.js.map +1 -1
  151. package/dist/commonjs/components/pagination/pagination.d.ts.map +1 -1
  152. package/dist/commonjs/components/pagination/pagination.js +7 -5
  153. package/dist/commonjs/components/pagination/pagination.js.map +1 -1
  154. package/dist/commonjs/components/popover/popover.d.ts +7 -2
  155. package/dist/commonjs/components/popover/popover.d.ts.map +1 -1
  156. package/dist/commonjs/components/popover/popover.js +2 -2
  157. package/dist/commonjs/components/popover/popover.js.map +1 -1
  158. package/dist/commonjs/components/radio/radio-group.d.ts +1 -1
  159. package/dist/commonjs/components/radio/radio-group.d.ts.map +1 -1
  160. package/dist/commonjs/components/radio/radio-group.js +2 -2
  161. package/dist/commonjs/components/radio/radio-group.js.map +1 -1
  162. package/dist/commonjs/components/radio/radio.d.ts.map +1 -1
  163. package/dist/commonjs/components/radio/radio.js +2 -2
  164. package/dist/commonjs/components/radio/radio.js.map +1 -1
  165. package/dist/commonjs/components/select/select.d.ts +2 -1
  166. package/dist/commonjs/components/select/select.d.ts.map +1 -1
  167. package/dist/commonjs/components/select/select.js +5 -4
  168. package/dist/commonjs/components/select/select.js.map +1 -1
  169. package/dist/commonjs/components/spacing/stack/stack.d.ts +1 -1
  170. package/dist/commonjs/components/spacing/stack/stack.js +1 -1
  171. package/dist/commonjs/components/spacing/stack/stack.js.map +1 -1
  172. package/dist/commonjs/components/spacing/types.d.ts +1 -1
  173. package/dist/commonjs/components/spacing/types.d.ts.map +1 -1
  174. package/dist/commonjs/components/spacing/types.js +2 -2
  175. package/dist/commonjs/components/spacing/types.js.map +1 -1
  176. package/dist/commonjs/components/spinner/spinner.d.ts.map +1 -1
  177. package/dist/commonjs/components/spinner/spinner.js +3 -3
  178. package/dist/commonjs/components/spinner/spinner.js.map +1 -1
  179. package/dist/commonjs/components/table/contexts/column-collection.d.ts.map +1 -1
  180. package/dist/commonjs/components/table/contexts/column-collection.js +2 -0
  181. package/dist/commonjs/components/table/contexts/column-collection.js.map +1 -1
  182. package/dist/commonjs/components/table/contexts/table-state.d.ts +1 -0
  183. package/dist/commonjs/components/table/contexts/table-state.d.ts.map +1 -1
  184. package/dist/commonjs/components/table/contexts/table-state.js +6 -1
  185. package/dist/commonjs/components/table/contexts/table-state.js.map +1 -1
  186. package/dist/commonjs/components/table/hooks/use-table-cell.js +2 -2
  187. package/dist/commonjs/components/table/hooks/use-table-cell.js.map +1 -1
  188. package/dist/commonjs/components/table/table-empty-state.js +1 -1
  189. package/dist/commonjs/components/table/table-empty-state.js.map +1 -1
  190. package/dist/commonjs/components/table/table-header-button.d.ts +2 -0
  191. package/dist/commonjs/components/table/table-header-button.d.ts.map +1 -0
  192. package/dist/commonjs/components/table/table-header-button.js +16 -0
  193. package/dist/commonjs/components/table/table-header-button.js.map +1 -0
  194. package/dist/commonjs/components/table/table-header-cell.d.ts.map +1 -1
  195. package/dist/commonjs/components/table/table-header-cell.js +7 -5
  196. package/dist/commonjs/components/table/table-header-cell.js.map +1 -1
  197. package/dist/commonjs/components/table/table.d.ts +1 -1
  198. package/dist/commonjs/components/table/table.d.ts.map +1 -1
  199. package/dist/commonjs/components/table/table.js +2 -2
  200. package/dist/commonjs/components/table/table.js.map +1 -1
  201. package/dist/commonjs/components/tag/tag-group.d.ts +1 -1
  202. package/dist/commonjs/components/tag/tag-group.d.ts.map +1 -1
  203. package/dist/commonjs/components/tag/tag-group.js.map +1 -1
  204. package/dist/commonjs/components/tag/tag.js +1 -1
  205. package/dist/commonjs/components/tag/tag.js.map +1 -1
  206. package/dist/commonjs/components/tag-field/tag-field-input.d.ts +2 -0
  207. package/dist/commonjs/components/tag-field/tag-field-input.d.ts.map +1 -0
  208. package/dist/commonjs/components/tag-field/tag-field-input.js +31 -0
  209. package/dist/commonjs/components/tag-field/tag-field-input.js.map +1 -0
  210. package/dist/commonjs/components/tag-field/tag-field-list-box.d.ts +2 -0
  211. package/dist/commonjs/components/tag-field/tag-field-list-box.d.ts.map +1 -0
  212. package/dist/commonjs/components/tag-field/tag-field-list-box.js +31 -0
  213. package/dist/commonjs/components/tag-field/tag-field-list-box.js.map +1 -0
  214. package/dist/commonjs/components/tag-field/tag-field-tags.d.ts +2 -0
  215. package/dist/commonjs/components/tag-field/tag-field-tags.d.ts.map +1 -0
  216. package/dist/commonjs/components/tag-field/tag-field-tags.js +27 -0
  217. package/dist/commonjs/components/tag-field/tag-field-tags.js.map +1 -0
  218. package/dist/commonjs/components/tag-field/tag-field.d.ts +43 -0
  219. package/dist/commonjs/components/tag-field/tag-field.d.ts.map +1 -0
  220. package/dist/commonjs/components/tag-field/tag-field.js +143 -0
  221. package/dist/commonjs/components/tag-field/tag-field.js.map +1 -0
  222. package/dist/commonjs/components/text-inputs/text-area.d.ts +1 -1
  223. package/dist/commonjs/components/text-inputs/text-area.d.ts.map +1 -1
  224. package/dist/commonjs/components/text-inputs/text-area.js +2 -2
  225. package/dist/commonjs/components/text-inputs/text-area.js.map +1 -1
  226. package/dist/commonjs/components/text-inputs/text-field.d.ts +1 -1
  227. package/dist/commonjs/components/text-inputs/text-field.d.ts.map +1 -1
  228. package/dist/commonjs/components/text-inputs/text-field.js +2 -2
  229. package/dist/commonjs/components/text-inputs/text-field.js.map +1 -1
  230. package/dist/commonjs/components/toast/toast-region.d.ts +5 -0
  231. package/dist/commonjs/components/toast/toast-region.d.ts.map +1 -0
  232. package/dist/commonjs/components/toast/toast-region.js +24 -0
  233. package/dist/commonjs/components/toast/toast-region.js.map +1 -0
  234. package/dist/commonjs/components/toast/toast.d.ts +2 -0
  235. package/dist/commonjs/components/toast/toast.d.ts.map +1 -0
  236. package/dist/commonjs/components/toast/toast.js +24 -0
  237. package/dist/commonjs/components/toast/toast.js.map +1 -0
  238. package/dist/commonjs/components/toast/types.d.ts +5 -0
  239. package/dist/commonjs/components/toast/types.d.ts.map +1 -0
  240. package/dist/commonjs/components/toast/types.js +3 -0
  241. package/dist/commonjs/components/toast/types.js.map +1 -0
  242. package/dist/commonjs/components/toggle/toggle.d.ts +14 -0
  243. package/dist/commonjs/components/toggle/toggle.d.ts.map +1 -0
  244. package/dist/commonjs/components/toggle/toggle.js +32 -0
  245. package/dist/commonjs/components/toggle/toggle.js.map +1 -0
  246. package/dist/commonjs/components/tooltip/tooltip.d.ts +4 -2
  247. package/dist/commonjs/components/tooltip/tooltip.d.ts.map +1 -1
  248. package/dist/commonjs/components/tooltip/tooltip.js.map +1 -1
  249. package/dist/commonjs/components/types.d.ts +4 -0
  250. package/dist/commonjs/components/types.d.ts.map +1 -1
  251. package/dist/commonjs/components/types.js.map +1 -1
  252. package/dist/commonjs/components/typography/text.d.ts.map +1 -1
  253. package/dist/commonjs/date.d.ts +2 -0
  254. package/dist/commonjs/date.d.ts.map +1 -0
  255. package/dist/commonjs/date.js +27 -0
  256. package/dist/commonjs/date.js.map +1 -0
  257. package/dist/commonjs/i18n/index.d.ts +3 -0
  258. package/dist/commonjs/i18n/index.d.ts.map +1 -0
  259. package/dist/commonjs/i18n/index.js +19 -0
  260. package/dist/commonjs/i18n/index.js.map +1 -0
  261. package/dist/commonjs/i18n/localization-provider.d.ts +59 -0
  262. package/dist/commonjs/i18n/localization-provider.d.ts.map +1 -0
  263. package/dist/commonjs/i18n/localization-provider.js +82 -0
  264. package/dist/commonjs/i18n/localization-provider.js.map +1 -0
  265. package/dist/commonjs/i18n/messages/en-US.d.ts +4 -0
  266. package/dist/commonjs/i18n/messages/en-US.d.ts.map +1 -0
  267. package/dist/commonjs/i18n/messages/en-US.js +38 -0
  268. package/dist/commonjs/i18n/messages/en-US.js.map +1 -0
  269. package/dist/commonjs/i18n/messages/index.d.ts +3 -0
  270. package/dist/commonjs/i18n/messages/index.d.ts.map +1 -0
  271. package/dist/commonjs/i18n/messages/index.js +6 -0
  272. package/dist/commonjs/i18n/messages/index.js.map +1 -0
  273. package/dist/commonjs/i18n/messages/types.d.ts +72 -0
  274. package/dist/commonjs/i18n/messages/types.d.ts.map +1 -0
  275. package/dist/commonjs/i18n/messages/types.js +3 -0
  276. package/dist/commonjs/i18n/messages/types.js.map +1 -0
  277. package/dist/commonjs/index.d.ts +18 -3
  278. package/dist/commonjs/index.d.ts.map +1 -1
  279. package/dist/commonjs/index.js +16 -3
  280. package/dist/commonjs/index.js.map +1 -1
  281. package/dist/commonjs/providers/ssr/ssr-provider.d.ts +1 -3
  282. package/dist/commonjs/providers/ssr/ssr-provider.d.ts.map +1 -1
  283. package/dist/commonjs/providers/ssr/ssr-provider.js +2 -2
  284. package/dist/commonjs/providers/ssr/ssr-provider.js.map +1 -1
  285. package/dist/commonjs/utils/is-production.d.ts +2 -0
  286. package/dist/commonjs/utils/is-production.d.ts.map +1 -0
  287. package/dist/commonjs/utils/is-production.js +7 -0
  288. package/dist/commonjs/utils/is-production.js.map +1 -0
  289. package/dist/commonjs/utils/style/types.d.ts +1 -1
  290. package/dist/commonjs/utils/style/types.d.ts.map +1 -1
  291. package/dist/commonjs/utils/style/types.js.map +1 -1
  292. package/dist/commonjs/utils/use-media-query.d.ts +2 -0
  293. package/dist/commonjs/utils/use-media-query.d.ts.map +1 -0
  294. package/dist/commonjs/utils/use-media-query.js +35 -0
  295. package/dist/commonjs/utils/use-media-query.js.map +1 -0
  296. package/dist/commonjs/utils/use-production-warning.d.ts +3 -0
  297. package/dist/commonjs/utils/use-production-warning.d.ts.map +1 -0
  298. package/dist/commonjs/utils/use-production-warning.js +7 -0
  299. package/dist/commonjs/utils/use-production-warning.js.map +1 -0
  300. package/dist/commonjs/with-style-props.d.ts.map +1 -1
  301. package/dist/esm/components/alert/alert.d.ts +25 -0
  302. package/dist/esm/components/alert/alert.d.ts.map +1 -0
  303. package/dist/esm/components/alert/alert.js +45 -0
  304. package/dist/esm/components/alert/alert.js.map +1 -0
  305. package/dist/esm/components/alert-dialog/alert-dialog.d.ts +51 -0
  306. package/dist/esm/components/alert-dialog/alert-dialog.d.ts.map +1 -0
  307. package/dist/esm/components/alert-dialog/alert-dialog.js +20 -0
  308. package/dist/esm/components/alert-dialog/alert-dialog.js.map +1 -0
  309. package/dist/esm/components/breadcrumbs/breadcrumbs.d.ts.map +1 -1
  310. package/dist/esm/components/breadcrumbs/breadcrumbs.js +18 -2
  311. package/dist/esm/components/breadcrumbs/breadcrumbs.js.map +1 -1
  312. package/dist/esm/components/button/button.d.ts.map +1 -1
  313. package/dist/esm/components/button/button.js +3 -3
  314. package/dist/esm/components/button/button.js.map +1 -1
  315. package/dist/esm/components/button/icon-button.d.ts.map +1 -1
  316. package/dist/esm/components/button/icon-button.js +3 -3
  317. package/dist/esm/components/button/icon-button.js.map +1 -1
  318. package/dist/esm/components/button/icon-link-button.js +1 -1
  319. package/dist/esm/components/button/icon-link-button.js.map +1 -1
  320. package/dist/esm/components/button/link-button.js +1 -1
  321. package/dist/esm/components/button/link-button.js.map +1 -1
  322. package/dist/esm/components/button/types.js.map +1 -1
  323. package/dist/esm/components/callout/callout.d.ts +27 -0
  324. package/dist/esm/components/callout/callout.d.ts.map +1 -0
  325. package/dist/esm/components/callout/callout.js +40 -0
  326. package/dist/esm/components/callout/callout.js.map +1 -0
  327. package/dist/esm/components/card/card.d.ts +21 -9
  328. package/dist/esm/components/card/card.d.ts.map +1 -1
  329. package/dist/esm/components/card/card.js +16 -11
  330. package/dist/esm/components/card/card.js.map +1 -1
  331. package/dist/esm/components/checkbox/checkbox-group.d.ts +1 -1
  332. package/dist/esm/components/checkbox/checkbox-group.d.ts.map +1 -1
  333. package/dist/esm/components/checkbox/checkbox-group.js +2 -2
  334. package/dist/esm/components/checkbox/checkbox-group.js.map +1 -1
  335. package/dist/esm/components/checkbox/checkbox.d.ts.map +1 -1
  336. package/dist/esm/components/checkbox/checkbox.js +2 -2
  337. package/dist/esm/components/checkbox/checkbox.js.map +1 -1
  338. package/dist/esm/components/combo-box/combo-box.d.ts +2 -1
  339. package/dist/esm/components/combo-box/combo-box.d.ts.map +1 -1
  340. package/dist/esm/components/combo-box/combo-box.js +6 -4
  341. package/dist/esm/components/combo-box/combo-box.js.map +1 -1
  342. package/dist/esm/components/container/container.d.ts +16 -0
  343. package/dist/esm/components/container/container.d.ts.map +1 -0
  344. package/dist/esm/components/container/container.js +7 -0
  345. package/dist/esm/components/container/container.js.map +1 -0
  346. package/dist/esm/components/date-picker/date-picker-calendar.d.ts +2 -0
  347. package/dist/esm/components/date-picker/date-picker-calendar.d.ts.map +1 -0
  348. package/dist/esm/components/date-picker/date-picker-calendar.js +23 -0
  349. package/dist/esm/components/date-picker/date-picker-calendar.js.map +1 -0
  350. package/dist/esm/components/date-picker/date-picker.d.ts +17 -0
  351. package/dist/esm/components/date-picker/date-picker.d.ts.map +1 -0
  352. package/dist/esm/components/date-picker/date-picker.js +48 -0
  353. package/dist/esm/components/date-picker/date-picker.js.map +1 -0
  354. package/dist/esm/components/date-picker/utils.d.ts +2 -0
  355. package/dist/esm/components/date-picker/utils.d.ts.map +1 -0
  356. package/dist/esm/components/date-picker/utils.js +26 -0
  357. package/dist/esm/components/date-picker/utils.js.map +1 -0
  358. package/dist/esm/components/date-picker/views/month/month-view.d.ts +2 -0
  359. package/dist/esm/components/date-picker/views/month/month-view.d.ts.map +1 -0
  360. package/dist/esm/components/date-picker/views/month/month-view.js +29 -0
  361. package/dist/esm/components/date-picker/views/month/month-view.js.map +1 -0
  362. package/dist/esm/components/date-picker/views/multi-year/multi-year-view.d.ts +2 -0
  363. package/dist/esm/components/date-picker/views/multi-year/multi-year-view.d.ts.map +1 -0
  364. package/dist/esm/components/date-picker/views/multi-year/multi-year-view.js +13 -0
  365. package/dist/esm/components/date-picker/views/multi-year/multi-year-view.js.map +1 -0
  366. package/dist/esm/components/date-picker/views/multi-year/use-multi-year-view-state.d.ts +2 -0
  367. package/dist/esm/components/date-picker/views/multi-year/use-multi-year-view-state.d.ts.map +1 -0
  368. package/dist/esm/components/date-picker/views/multi-year/use-multi-year-view-state.js +127 -0
  369. package/dist/esm/components/date-picker/views/multi-year/use-multi-year-view-state.js.map +1 -0
  370. package/dist/esm/components/date-picker/views/types.d.ts +2 -0
  371. package/dist/esm/components/date-picker/views/types.d.ts.map +1 -0
  372. package/dist/esm/components/date-picker/views/types.js +2 -0
  373. package/dist/esm/components/date-picker/views/types.js.map +1 -0
  374. package/dist/esm/components/date-picker/views/use-view-header.d.ts +2 -0
  375. package/dist/esm/components/date-picker/views/use-view-header.d.ts.map +1 -0
  376. package/dist/esm/components/date-picker/views/use-view-header.js +53 -0
  377. package/dist/esm/components/date-picker/views/use-view-header.js.map +1 -0
  378. package/dist/esm/components/date-picker/views/view-grid-cell.d.ts +2 -0
  379. package/dist/esm/components/date-picker/views/view-grid-cell.d.ts.map +1 -0
  380. package/dist/esm/components/date-picker/views/view-grid-cell.js +66 -0
  381. package/dist/esm/components/date-picker/views/view-grid-cell.js.map +1 -0
  382. package/dist/esm/components/date-picker/views/view-grid.d.ts +2 -0
  383. package/dist/esm/components/date-picker/views/view-grid.d.ts.map +1 -0
  384. package/dist/esm/components/date-picker/views/view-grid.js +69 -0
  385. package/dist/esm/components/date-picker/views/view-grid.js.map +1 -0
  386. package/dist/esm/components/date-picker/views/view-provider.d.ts +2 -0
  387. package/dist/esm/components/date-picker/views/view-provider.d.ts.map +1 -0
  388. package/dist/esm/components/date-picker/views/view-provider.js +17 -0
  389. package/dist/esm/components/date-picker/views/view-provider.js.map +1 -0
  390. package/dist/esm/components/date-picker/views/year/use-year-view-state.d.ts +2 -0
  391. package/dist/esm/components/date-picker/views/year/use-year-view-state.d.ts.map +1 -0
  392. package/dist/esm/components/date-picker/views/year/use-year-view-state.js +155 -0
  393. package/dist/esm/components/date-picker/views/year/use-year-view-state.js.map +1 -0
  394. package/dist/esm/components/date-picker/views/year/year-view.d.ts +2 -0
  395. package/dist/esm/components/date-picker/views/year/year-view.d.ts.map +1 -0
  396. package/dist/esm/components/date-picker/views/year/year-view.js +17 -0
  397. package/dist/esm/components/date-picker/views/year/year-view.js.map +1 -0
  398. package/dist/esm/components/dialog-root/dialog-root.d.ts +20 -0
  399. package/dist/esm/components/dialog-root/dialog-root.d.ts.map +1 -0
  400. package/dist/esm/components/dialog-root/dialog-root.js +12 -0
  401. package/dist/esm/components/dialog-root/dialog-root.js.map +1 -0
  402. package/dist/esm/components/disclosure/context.d.ts +3 -0
  403. package/dist/esm/components/disclosure/context.d.ts.map +1 -0
  404. package/dist/esm/components/disclosure/context.js +4 -0
  405. package/dist/esm/components/disclosure/context.js.map +1 -0
  406. package/dist/esm/components/disclosure/disclosure-group.d.ts +15 -4
  407. package/dist/esm/components/disclosure/disclosure-group.d.ts.map +1 -1
  408. package/dist/esm/components/disclosure/disclosure-group.js +10 -4
  409. package/dist/esm/components/disclosure/disclosure-group.js.map +1 -1
  410. package/dist/esm/components/disclosure/disclosure.d.ts +35 -4
  411. package/dist/esm/components/disclosure/disclosure.d.ts.map +1 -1
  412. package/dist/esm/components/disclosure/disclosure.js +16 -5
  413. package/dist/esm/components/disclosure/disclosure.js.map +1 -1
  414. package/dist/esm/components/divider/divider.d.ts +12 -0
  415. package/dist/esm/components/divider/divider.d.ts.map +1 -0
  416. package/dist/esm/components/divider/divider.js +13 -0
  417. package/dist/esm/components/divider/divider.js.map +1 -0
  418. package/dist/esm/components/file-picker/file-picker.d.ts +19 -0
  419. package/dist/esm/components/file-picker/file-picker.d.ts.map +1 -0
  420. package/dist/esm/components/file-picker/file-picker.js +62 -0
  421. package/dist/esm/components/file-picker/file-picker.js.map +1 -0
  422. package/dist/esm/components/header/cimpress-logo.d.ts +2 -0
  423. package/dist/esm/components/header/cimpress-logo.d.ts.map +1 -0
  424. package/dist/esm/components/header/cimpress-logo.js +6 -0
  425. package/dist/esm/components/header/cimpress-logo.js.map +1 -0
  426. package/dist/esm/components/header/header.d.ts +10 -0
  427. package/dist/esm/components/header/header.d.ts.map +1 -0
  428. package/dist/esm/components/header/header.js +13 -0
  429. package/dist/esm/components/header/header.js.map +1 -0
  430. package/dist/esm/components/internal/form-field/form-field.js +1 -1
  431. package/dist/esm/components/internal/form-field/form-field.js.map +1 -1
  432. package/dist/esm/components/internal/x-button/x-button.d.ts +2 -0
  433. package/dist/esm/components/internal/x-button/x-button.d.ts.map +1 -0
  434. package/dist/esm/components/internal/x-button/x-button.js +11 -0
  435. package/dist/esm/components/internal/x-button/x-button.js.map +1 -0
  436. package/dist/esm/components/menu/menu.d.ts +3 -6
  437. package/dist/esm/components/menu/menu.d.ts.map +1 -1
  438. package/dist/esm/components/menu/menu.js +5 -9
  439. package/dist/esm/components/menu/menu.js.map +1 -1
  440. package/dist/esm/components/modal-dialog/modal-dialog.d.ts +63 -0
  441. package/dist/esm/components/modal-dialog/modal-dialog.d.ts.map +1 -0
  442. package/dist/esm/components/modal-dialog/modal-dialog.js +42 -0
  443. package/dist/esm/components/modal-dialog/modal-dialog.js.map +1 -0
  444. package/dist/esm/components/number-field/number-field.d.ts +1 -1
  445. package/dist/esm/components/number-field/number-field.d.ts.map +1 -1
  446. package/dist/esm/components/number-field/number-field.js +5 -3
  447. package/dist/esm/components/number-field/number-field.js.map +1 -1
  448. package/dist/esm/components/pagination/base-pagination.d.ts.map +1 -1
  449. package/dist/esm/components/pagination/base-pagination.js +6 -7
  450. package/dist/esm/components/pagination/base-pagination.js.map +1 -1
  451. package/dist/esm/components/pagination/pagination.d.ts.map +1 -1
  452. package/dist/esm/components/pagination/pagination.js +7 -5
  453. package/dist/esm/components/pagination/pagination.js.map +1 -1
  454. package/dist/esm/components/popover/popover.d.ts +7 -2
  455. package/dist/esm/components/popover/popover.d.ts.map +1 -1
  456. package/dist/esm/components/popover/popover.js +2 -2
  457. package/dist/esm/components/popover/popover.js.map +1 -1
  458. package/dist/esm/components/radio/radio-group.d.ts +1 -1
  459. package/dist/esm/components/radio/radio-group.d.ts.map +1 -1
  460. package/dist/esm/components/radio/radio-group.js +2 -2
  461. package/dist/esm/components/radio/radio-group.js.map +1 -1
  462. package/dist/esm/components/radio/radio.d.ts.map +1 -1
  463. package/dist/esm/components/radio/radio.js +2 -2
  464. package/dist/esm/components/radio/radio.js.map +1 -1
  465. package/dist/esm/components/select/select.d.ts +2 -1
  466. package/dist/esm/components/select/select.d.ts.map +1 -1
  467. package/dist/esm/components/select/select.js +5 -4
  468. package/dist/esm/components/select/select.js.map +1 -1
  469. package/dist/esm/components/spacing/stack/stack.d.ts +1 -1
  470. package/dist/esm/components/spacing/stack/stack.js +1 -1
  471. package/dist/esm/components/spacing/stack/stack.js.map +1 -1
  472. package/dist/esm/components/spacing/types.d.ts +1 -1
  473. package/dist/esm/components/spacing/types.d.ts.map +1 -1
  474. package/dist/esm/components/spacing/types.js +2 -2
  475. package/dist/esm/components/spacing/types.js.map +1 -1
  476. package/dist/esm/components/spinner/spinner.d.ts.map +1 -1
  477. package/dist/esm/components/spinner/spinner.js +3 -3
  478. package/dist/esm/components/spinner/spinner.js.map +1 -1
  479. package/dist/esm/components/table/contexts/column-collection.d.ts.map +1 -1
  480. package/dist/esm/components/table/contexts/column-collection.js +2 -0
  481. package/dist/esm/components/table/contexts/column-collection.js.map +1 -1
  482. package/dist/esm/components/table/contexts/table-state.d.ts +1 -0
  483. package/dist/esm/components/table/contexts/table-state.d.ts.map +1 -1
  484. package/dist/esm/components/table/contexts/table-state.js +8 -3
  485. package/dist/esm/components/table/contexts/table-state.js.map +1 -1
  486. package/dist/esm/components/table/hooks/use-table-cell.js +2 -2
  487. package/dist/esm/components/table/hooks/use-table-cell.js.map +1 -1
  488. package/dist/esm/components/table/table-empty-state.js +1 -1
  489. package/dist/esm/components/table/table-empty-state.js.map +1 -1
  490. package/dist/esm/components/table/table-header-button.d.ts +2 -0
  491. package/dist/esm/components/table/table-header-button.d.ts.map +1 -0
  492. package/dist/esm/components/table/table-header-button.js +10 -0
  493. package/dist/esm/components/table/table-header-button.js.map +1 -0
  494. package/dist/esm/components/table/table-header-cell.d.ts.map +1 -1
  495. package/dist/esm/components/table/table-header-cell.js +9 -7
  496. package/dist/esm/components/table/table-header-cell.js.map +1 -1
  497. package/dist/esm/components/table/table.d.ts +1 -1
  498. package/dist/esm/components/table/table.d.ts.map +1 -1
  499. package/dist/esm/components/table/table.js +2 -2
  500. package/dist/esm/components/table/table.js.map +1 -1
  501. package/dist/esm/components/tag/tag-group.d.ts +1 -1
  502. package/dist/esm/components/tag/tag-group.d.ts.map +1 -1
  503. package/dist/esm/components/tag/tag-group.js.map +1 -1
  504. package/dist/esm/components/tag/tag.js +1 -1
  505. package/dist/esm/components/tag/tag.js.map +1 -1
  506. package/dist/esm/components/tag-field/tag-field-input.d.ts +2 -0
  507. package/dist/esm/components/tag-field/tag-field-input.d.ts.map +1 -0
  508. package/dist/esm/components/tag-field/tag-field-input.js +25 -0
  509. package/dist/esm/components/tag-field/tag-field-input.js.map +1 -0
  510. package/dist/esm/components/tag-field/tag-field-list-box.d.ts +2 -0
  511. package/dist/esm/components/tag-field/tag-field-list-box.d.ts.map +1 -0
  512. package/dist/esm/components/tag-field/tag-field-list-box.js +28 -0
  513. package/dist/esm/components/tag-field/tag-field-list-box.js.map +1 -0
  514. package/dist/esm/components/tag-field/tag-field-tags.d.ts +2 -0
  515. package/dist/esm/components/tag-field/tag-field-tags.d.ts.map +1 -0
  516. package/dist/esm/components/tag-field/tag-field-tags.js +24 -0
  517. package/dist/esm/components/tag-field/tag-field-tags.js.map +1 -0
  518. package/dist/esm/components/tag-field/tag-field.d.ts +43 -0
  519. package/dist/esm/components/tag-field/tag-field.d.ts.map +1 -0
  520. package/dist/esm/components/tag-field/tag-field.js +135 -0
  521. package/dist/esm/components/tag-field/tag-field.js.map +1 -0
  522. package/dist/esm/components/text-inputs/text-area.d.ts +1 -1
  523. package/dist/esm/components/text-inputs/text-area.d.ts.map +1 -1
  524. package/dist/esm/components/text-inputs/text-area.js +2 -2
  525. package/dist/esm/components/text-inputs/text-area.js.map +1 -1
  526. package/dist/esm/components/text-inputs/text-field.d.ts +1 -1
  527. package/dist/esm/components/text-inputs/text-field.d.ts.map +1 -1
  528. package/dist/esm/components/text-inputs/text-field.js +2 -2
  529. package/dist/esm/components/text-inputs/text-field.js.map +1 -1
  530. package/dist/esm/components/toast/toast-region.d.ts +5 -0
  531. package/dist/esm/components/toast/toast-region.d.ts.map +1 -0
  532. package/dist/esm/components/toast/toast-region.js +20 -0
  533. package/dist/esm/components/toast/toast-region.js.map +1 -0
  534. package/dist/esm/components/toast/toast.d.ts +2 -0
  535. package/dist/esm/components/toast/toast.d.ts.map +1 -0
  536. package/dist/esm/components/toast/toast.js +21 -0
  537. package/dist/esm/components/toast/toast.js.map +1 -0
  538. package/dist/esm/components/toast/types.d.ts +5 -0
  539. package/dist/esm/components/toast/types.d.ts.map +1 -0
  540. package/dist/esm/components/toast/types.js +2 -0
  541. package/dist/esm/components/toast/types.js.map +1 -0
  542. package/dist/esm/components/toggle/toggle.d.ts +14 -0
  543. package/dist/esm/components/toggle/toggle.d.ts.map +1 -0
  544. package/dist/esm/components/toggle/toggle.js +26 -0
  545. package/dist/esm/components/toggle/toggle.js.map +1 -0
  546. package/dist/esm/components/tooltip/tooltip.d.ts +4 -2
  547. package/dist/esm/components/tooltip/tooltip.d.ts.map +1 -1
  548. package/dist/esm/components/tooltip/tooltip.js.map +1 -1
  549. package/dist/esm/components/types.d.ts +4 -0
  550. package/dist/esm/components/types.d.ts.map +1 -1
  551. package/dist/esm/components/types.js.map +1 -1
  552. package/dist/esm/components/typography/text.d.ts.map +1 -1
  553. package/dist/esm/date.d.ts +2 -0
  554. package/dist/esm/date.d.ts.map +1 -0
  555. package/dist/esm/date.js +11 -0
  556. package/dist/esm/date.js.map +1 -0
  557. package/dist/esm/i18n/index.d.ts +3 -0
  558. package/dist/esm/i18n/index.d.ts.map +1 -0
  559. package/dist/esm/i18n/index.js +3 -0
  560. package/dist/esm/i18n/index.js.map +1 -0
  561. package/dist/esm/i18n/localization-provider.d.ts +59 -0
  562. package/dist/esm/i18n/localization-provider.d.ts.map +1 -0
  563. package/dist/esm/i18n/localization-provider.js +76 -0
  564. package/dist/esm/i18n/localization-provider.js.map +1 -0
  565. package/dist/esm/i18n/messages/en-US.d.ts +4 -0
  566. package/dist/esm/i18n/messages/en-US.d.ts.map +1 -0
  567. package/dist/esm/i18n/messages/en-US.js +35 -0
  568. package/dist/esm/i18n/messages/en-US.js.map +1 -0
  569. package/dist/esm/i18n/messages/index.d.ts +3 -0
  570. package/dist/esm/i18n/messages/index.d.ts.map +1 -0
  571. package/dist/esm/i18n/messages/index.js +2 -0
  572. package/dist/esm/i18n/messages/index.js.map +1 -0
  573. package/dist/esm/i18n/messages/types.d.ts +72 -0
  574. package/dist/esm/i18n/messages/types.d.ts.map +1 -0
  575. package/dist/esm/i18n/messages/types.js +2 -0
  576. package/dist/esm/i18n/messages/types.js.map +1 -0
  577. package/dist/esm/index.d.ts +18 -3
  578. package/dist/esm/index.d.ts.map +1 -1
  579. package/dist/esm/index.js +16 -3
  580. package/dist/esm/index.js.map +1 -1
  581. package/dist/esm/providers/ssr/ssr-provider.d.ts +1 -3
  582. package/dist/esm/providers/ssr/ssr-provider.d.ts.map +1 -1
  583. package/dist/esm/providers/ssr/ssr-provider.js +3 -3
  584. package/dist/esm/providers/ssr/ssr-provider.js.map +1 -1
  585. package/dist/esm/utils/is-production.d.ts +2 -0
  586. package/dist/esm/utils/is-production.d.ts.map +1 -0
  587. package/dist/esm/utils/is-production.js +4 -0
  588. package/dist/esm/utils/is-production.js.map +1 -0
  589. package/dist/esm/utils/style/types.d.ts +1 -1
  590. package/dist/esm/utils/style/types.d.ts.map +1 -1
  591. package/dist/esm/utils/style/types.js.map +1 -1
  592. package/dist/esm/utils/use-media-query.d.ts +2 -0
  593. package/dist/esm/utils/use-media-query.d.ts.map +1 -0
  594. package/dist/esm/utils/use-media-query.js +32 -0
  595. package/dist/esm/utils/use-media-query.js.map +1 -0
  596. package/dist/esm/utils/use-production-warning.d.ts +3 -0
  597. package/dist/esm/utils/use-production-warning.d.ts.map +1 -0
  598. package/dist/esm/utils/use-production-warning.js +4 -0
  599. package/dist/esm/utils/use-production-warning.js.map +1 -0
  600. package/dist/esm/with-style-props.d.ts.map +1 -1
  601. package/dist-styles/core.css +1 -1
  602. package/dist-styles/normalize.css +1 -1
  603. package/dist-styles/styles.css +1 -1
  604. package/package.json +64 -20
  605. package/dist/commonjs/components/card/card-context.d.ts +0 -4
  606. package/dist/commonjs/components/card/card-context.d.ts.map +0 -1
  607. package/dist/commonjs/components/card/card-context.js +0 -6
  608. package/dist/commonjs/components/card/card-context.js.map +0 -1
  609. package/dist/commonjs/components/modal/modal.d.ts +0 -64
  610. package/dist/commonjs/components/modal/modal.d.ts.map +0 -1
  611. package/dist/commonjs/components/modal/modal.js +0 -40
  612. package/dist/commonjs/components/modal/modal.js.map +0 -1
  613. package/dist/esm/components/card/card-context.d.ts +0 -4
  614. package/dist/esm/components/card/card-context.d.ts.map +0 -1
  615. package/dist/esm/components/card/card-context.js +0 -3
  616. package/dist/esm/components/card/card-context.js.map +0 -1
  617. package/dist/esm/components/modal/modal.d.ts +0 -64
  618. package/dist/esm/components/modal/modal.d.ts.map +0 -1
  619. package/dist/esm/components/modal/modal.js +0 -33
  620. package/dist/esm/components/modal/modal.js.map +0 -1
@@ -0,0 +1,127 @@
1
+ import { endOfYear, isSameDay, isSameYear, startOfYear, today } from '@internationalized/date';
2
+ import { useContext, useMemo, useState } from 'react';
3
+ import { useDateFormatter } from 'react-aria';
4
+ import { CalendarStateContext as RACCalendarStateContext } from 'react-aria-components';
5
+ import { useLocalizedMessages } from '../../../../i18n/index.js';
6
+ import { constrainValue, getEraFormat, isDateInvalid } from '../../utils.js';
7
+ import { useDatePickerView } from '../view-provider.js';
8
+ const ITEMS_PER_ROW = 4;
9
+ const YEARS_PER_SECTION = 20;
10
+ const YEARS_SKIP_AMOUNT = 100;
11
+ /** @internal */
12
+ export function useMultiYearViewState() {
13
+ const calendarState = useContext(RACCalendarStateContext);
14
+ const { switchToView, focusedDate, setFocusedDate } = useDatePickerView();
15
+ const messages = useLocalizedMessages('datePicker');
16
+ const [isFocused, setIsFocused] = useState(true);
17
+ const currentDate = useMemo(() => today(calendarState.timeZone), [calendarState.timeZone]);
18
+ const yearFormatter = useDateFormatter({
19
+ year: 'numeric',
20
+ era: getEraFormat(focusedDate),
21
+ calendar: focusedDate.calendar.identifier,
22
+ timeZone: calendarState.timeZone,
23
+ });
24
+ let startYear = (Math.ceil(focusedDate.year / YEARS_PER_SECTION) - 1) * YEARS_PER_SECTION + 1;
25
+ let endYear = startYear + YEARS_PER_SECTION - 1;
26
+ // Years are always represented by positive numbers.
27
+ // If era implies negative years, flip start and end.
28
+ const isNegativeEra = focusedDate.era === 'BC';
29
+ if (isNegativeEra) {
30
+ const temp = startYear;
31
+ startYear = endYear;
32
+ endYear = temp;
33
+ }
34
+ const data = useMemo(() => {
35
+ const rowCount = Math.ceil(YEARS_PER_SECTION / ITEMS_PER_ROW);
36
+ const result = new Array(rowCount);
37
+ for (let rowIdx = 0; rowIdx < rowCount; rowIdx++) {
38
+ result[rowIdx] = new Array(ITEMS_PER_ROW).fill(null);
39
+ }
40
+ for (let yearIdx = 0; yearIdx < YEARS_PER_SECTION; yearIdx++) {
41
+ const rowIdx = Math.floor(yearIdx / ITEMS_PER_ROW);
42
+ const colIdx = yearIdx % ITEMS_PER_ROW;
43
+ const yearToSet = startYear + (isNegativeEra ? -yearIdx : yearIdx);
44
+ const date = focusedDate.set({ year: yearToSet });
45
+ if (date.year !== yearToSet) {
46
+ // Reached minimum/maximum date
47
+ continue;
48
+ }
49
+ const content = yearFormatter.format(date.toDate(calendarState.timeZone));
50
+ result[rowIdx][colIdx] = {
51
+ date,
52
+ content,
53
+ ariaLabel: content,
54
+ isCurrent: isSameYear(date, currentDate),
55
+ };
56
+ }
57
+ return result;
58
+ }, [startYear, calendarState.timeZone, focusedDate, yearFormatter, isNegativeEra, currentDate]);
59
+ const focusCell = (date) => {
60
+ setFocusedDate(constrainValue(date, calendarState.minValue, calendarState.maxValue));
61
+ };
62
+ return {
63
+ header: yearFormatter.formatRange(focusedDate.set({ year: startYear }).toDate(calendarState.timeZone), focusedDate.set({ year: endYear }).toDate(calendarState.timeZone)),
64
+ previousLabel: messages.format('previousMultiYearSection', { yearCount: 20 }),
65
+ nextLabel: messages.format('nextMultiYearSection', { yearCount: 20 }),
66
+ data,
67
+ isReadOnly: calendarState.isReadOnly,
68
+ isDisabled: calendarState.isDisabled,
69
+ isFocused,
70
+ setIsFocused,
71
+ focusedDate,
72
+ setFocusedDate,
73
+ timeZone: calendarState.timeZone,
74
+ focusPreviousItem() {
75
+ focusCell(focusedDate.subtract({ years: 1 }));
76
+ },
77
+ focusNextItem() {
78
+ focusCell(focusedDate.add({ years: 1 }));
79
+ },
80
+ focusPreviousRow() {
81
+ focusCell(focusedDate.subtract({ years: ITEMS_PER_ROW }));
82
+ },
83
+ focusNextRow() {
84
+ focusCell(focusedDate.add({ years: ITEMS_PER_ROW }));
85
+ },
86
+ focusSectionStart() {
87
+ focusCell(focusedDate.set({ year: startYear }));
88
+ },
89
+ focusSectionEnd() {
90
+ focusCell(focusedDate.set({ year: endYear }));
91
+ },
92
+ focusPreviousSection(shouldSkip) {
93
+ focusCell(focusedDate.subtract({ years: shouldSkip ? YEARS_SKIP_AMOUNT : YEARS_PER_SECTION }));
94
+ },
95
+ focusNextSection(shouldSkip) {
96
+ focusCell(focusedDate.add({ years: shouldSkip ? YEARS_SKIP_AMOUNT : YEARS_PER_SECTION }));
97
+ },
98
+ isPreviousSectionInvalid() {
99
+ const current = startOfYear(focusedDate.set({ year: startYear }));
100
+ const prev = current.subtract({ days: 1 });
101
+ return (isDateInvalid(current, calendarState.minValue, calendarState.maxValue) ||
102
+ isDateInvalid(prev, calendarState.minValue, calendarState.maxValue) ||
103
+ isSameDay(prev, current));
104
+ },
105
+ isNextSectionInvalid() {
106
+ const current = endOfYear(focusedDate.set({ year: endYear }));
107
+ const next = current.add({ days: 1 });
108
+ return (isDateInvalid(current, calendarState.minValue, calendarState.maxValue) ||
109
+ isDateInvalid(next, calendarState.minValue, calendarState.maxValue) ||
110
+ isSameDay(next, current));
111
+ },
112
+ selectFocusedDate() {
113
+ switchToView('year');
114
+ },
115
+ isCellDisabled(date) {
116
+ return (isDateInvalid(endOfYear(date), calendarState.minValue, null) ||
117
+ isDateInvalid(startOfYear(date), null, calendarState.maxValue));
118
+ },
119
+ isCellSelected(date) {
120
+ return calendarState.value !== null && isSameYear(date, calendarState.value);
121
+ },
122
+ isCellTabbable(date) {
123
+ return isSameYear(date, focusedDate);
124
+ },
125
+ };
126
+ }
127
+ //# sourceMappingURL=use-multi-year-view-state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-multi-year-view-state.js","sourceRoot":"","sources":["../../../../../../src/components/date-picker/views/multi-year/use-multi-year-view-state.ts"],"names":[],"mappings":"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","sourcesContent":["import { endOfYear, isSameDay, isSameYear, startOfYear, today, type CalendarDate } from '@internationalized/date';\nimport { useContext, useMemo, useState } from 'react';\nimport { useDateFormatter } from 'react-aria';\nimport { CalendarStateContext as RACCalendarStateContext } from 'react-aria-components';\nimport { useLocalizedMessages } from '../../../../i18n/index.js';\nimport { constrainValue, getEraFormat, isDateInvalid } from '../../utils.js';\nimport type { ViewGridCellData, ViewGridState } from '../types.js';\nimport { useDatePickerView } from '../view-provider.js';\n\nconst ITEMS_PER_ROW = 4;\nconst YEARS_PER_SECTION = 20;\nconst YEARS_SKIP_AMOUNT = 100;\n\n/** @internal */\nexport function useMultiYearViewState(): ViewGridState {\n const calendarState = useContext(RACCalendarStateContext)!;\n const { switchToView, focusedDate, setFocusedDate } = useDatePickerView();\n const messages = useLocalizedMessages('datePicker');\n const [isFocused, setIsFocused] = useState(true);\n\n const currentDate = useMemo(() => today(calendarState.timeZone), [calendarState.timeZone]);\n\n const yearFormatter = useDateFormatter({\n year: 'numeric',\n era: getEraFormat(focusedDate),\n calendar: focusedDate.calendar.identifier,\n timeZone: calendarState.timeZone,\n });\n\n let startYear = (Math.ceil(focusedDate.year / YEARS_PER_SECTION) - 1) * YEARS_PER_SECTION + 1;\n let endYear = startYear + YEARS_PER_SECTION - 1;\n\n // Years are always represented by positive numbers.\n // If era implies negative years, flip start and end.\n const isNegativeEra = focusedDate.era === 'BC';\n if (isNegativeEra) {\n const temp = startYear;\n startYear = endYear;\n endYear = temp;\n }\n\n const data: (ViewGridCellData | null)[][] = useMemo(() => {\n const rowCount = Math.ceil(YEARS_PER_SECTION / ITEMS_PER_ROW);\n const result: (ViewGridCellData | null)[][] = new Array(rowCount);\n\n for (let rowIdx = 0; rowIdx < rowCount; rowIdx++) {\n result[rowIdx] = new Array(ITEMS_PER_ROW).fill(null);\n }\n\n for (let yearIdx = 0; yearIdx < YEARS_PER_SECTION; yearIdx++) {\n const rowIdx = Math.floor(yearIdx / ITEMS_PER_ROW);\n const colIdx = yearIdx % ITEMS_PER_ROW;\n\n const yearToSet = startYear + (isNegativeEra ? -yearIdx : yearIdx);\n const date = focusedDate.set({ year: yearToSet });\n\n if (date.year !== yearToSet) {\n // Reached minimum/maximum date\n continue;\n }\n\n const content = yearFormatter.format(date.toDate(calendarState.timeZone));\n\n result[rowIdx]![colIdx] = {\n date,\n content,\n ariaLabel: content,\n isCurrent: isSameYear(date, currentDate),\n };\n }\n\n return result;\n }, [startYear, calendarState.timeZone, focusedDate, yearFormatter, isNegativeEra, currentDate]);\n\n const focusCell = (date: CalendarDate) => {\n setFocusedDate(constrainValue(date, calendarState.minValue, calendarState.maxValue));\n };\n\n return {\n header: yearFormatter.formatRange(\n focusedDate.set({ year: startYear }).toDate(calendarState.timeZone),\n focusedDate.set({ year: endYear }).toDate(calendarState.timeZone),\n ),\n previousLabel: messages.format('previousMultiYearSection', { yearCount: 20 }),\n nextLabel: messages.format('nextMultiYearSection', { yearCount: 20 }),\n data,\n isReadOnly: calendarState.isReadOnly,\n isDisabled: calendarState.isDisabled,\n isFocused,\n setIsFocused,\n focusedDate,\n setFocusedDate,\n timeZone: calendarState.timeZone,\n focusPreviousItem() {\n focusCell(focusedDate.subtract({ years: 1 }));\n },\n focusNextItem() {\n focusCell(focusedDate.add({ years: 1 }));\n },\n focusPreviousRow() {\n focusCell(focusedDate.subtract({ years: ITEMS_PER_ROW }));\n },\n focusNextRow() {\n focusCell(focusedDate.add({ years: ITEMS_PER_ROW }));\n },\n focusSectionStart() {\n focusCell(focusedDate.set({ year: startYear }));\n },\n focusSectionEnd() {\n focusCell(focusedDate.set({ year: endYear }));\n },\n focusPreviousSection(shouldSkip) {\n focusCell(focusedDate.subtract({ years: shouldSkip ? YEARS_SKIP_AMOUNT : YEARS_PER_SECTION }));\n },\n focusNextSection(shouldSkip) {\n focusCell(focusedDate.add({ years: shouldSkip ? YEARS_SKIP_AMOUNT : YEARS_PER_SECTION }));\n },\n isPreviousSectionInvalid() {\n const current = startOfYear(focusedDate.set({ year: startYear }));\n const prev = current.subtract({ days: 1 });\n\n return (\n isDateInvalid(current, calendarState.minValue, calendarState.maxValue) ||\n isDateInvalid(prev, calendarState.minValue, calendarState.maxValue) ||\n isSameDay(prev, current)\n );\n },\n isNextSectionInvalid() {\n const current = endOfYear(focusedDate.set({ year: endYear }));\n const next = current.add({ days: 1 });\n\n return (\n isDateInvalid(current, calendarState.minValue, calendarState.maxValue) ||\n isDateInvalid(next, calendarState.minValue, calendarState.maxValue) ||\n isSameDay(next, current)\n );\n },\n selectFocusedDate() {\n switchToView('year');\n },\n isCellDisabled(date) {\n return (\n isDateInvalid(endOfYear(date), calendarState.minValue, null) ||\n isDateInvalid(startOfYear(date), null, calendarState.maxValue)\n );\n },\n isCellSelected(date) {\n return calendarState.value !== null && isSameYear(date, calendarState.value);\n },\n isCellTabbable(date) {\n return isSameYear(date, focusedDate);\n },\n };\n}\n"]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/components/date-picker/views/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../src/components/date-picker/views/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { CalendarDate } from '@internationalized/date';\n\n/** @internal */\nexport interface ViewGridCellData {\n date: CalendarDate;\n content: string;\n ariaLabel: string;\n isCurrent: boolean;\n}\n\n/** @internal */\nexport interface ViewGridState {\n header: string;\n previousLabel: string;\n nextLabel: string;\n data: (ViewGridCellData | null)[][];\n isReadOnly: boolean;\n isDisabled: boolean;\n isFocused: boolean;\n setIsFocused(value: boolean): void;\n focusedDate: CalendarDate;\n setFocusedDate(date: CalendarDate): void;\n timeZone: string;\n focusPreviousItem(): void;\n focusNextItem(): void;\n focusPreviousRow(): void;\n focusNextRow(): void;\n focusSectionStart(): void;\n focusSectionEnd(): void;\n focusPreviousSection(shouldSkip?: boolean): void;\n focusNextSection(shouldSkip?: boolean): void;\n isPreviousSectionInvalid(): boolean;\n isNextSectionInvalid(): boolean;\n selectFocusedDate(): void;\n isCellDisabled(date: CalendarDate): boolean;\n isCellSelected(date: CalendarDate): boolean;\n isCellTabbable(date: CalendarDate): boolean;\n}\n"]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=use-view-header.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-view-header.d.ts","sourceRoot":"","sources":["../../../../../src/components/date-picker/views/use-view-header.tsx"],"names":[],"mappings":""}
@@ -0,0 +1,53 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { announce } from '@react-aria/live-announcer';
3
+ import { useUpdateEffect } from '@react-aria/utils';
4
+ import { useState } from 'react';
5
+ import { IconChevronLeft, IconChevronRight } from '../../../icons/index.js';
6
+ /** @internal */
7
+ export function useViewHeader(state) {
8
+ const { isFocused, header } = state;
9
+ // Announce when the section changes
10
+ useUpdateEffect(() => {
11
+ // only when pressing the Previous or Next button
12
+ if (!isFocused) {
13
+ announce(header);
14
+ }
15
+ // eslint-disable-next-line react-hooks/exhaustive-deps
16
+ }, [header]);
17
+ // If the next or previous buttons become disabled while they are focused, move focus to the grid.
18
+ const [previousFocused, setPreviousFocused] = useState(false);
19
+ const previousDisabled = state.isDisabled || state.isPreviousSectionInvalid();
20
+ if (previousDisabled && previousFocused) {
21
+ setPreviousFocused(false);
22
+ state.setIsFocused(true);
23
+ }
24
+ const [nextFocused, setNextFocused] = useState(false);
25
+ const nextDisabled = state.isDisabled || state.isNextSectionInvalid();
26
+ if (nextDisabled && nextFocused) {
27
+ setNextFocused(false);
28
+ state.setIsFocused(true);
29
+ }
30
+ return {
31
+ prevButtonProps: {
32
+ onPress: () => state.focusPreviousSection(),
33
+ 'aria-label': state.previousLabel,
34
+ icon: _jsx(IconChevronLeft, {}),
35
+ variant: 'tertiary',
36
+ size: 'small',
37
+ isDisabled: previousDisabled,
38
+ // @ts-expect-error our buttons don't expose `onFocusChange`, but it gets passed to React Aria anyway
39
+ onFocusChange: setPreviousFocused,
40
+ },
41
+ nextButtonProps: {
42
+ onPress: () => state.focusNextSection(),
43
+ 'aria-label': state.nextLabel,
44
+ icon: _jsx(IconChevronRight, {}),
45
+ variant: 'tertiary',
46
+ size: 'small',
47
+ isDisabled: nextDisabled,
48
+ // @ts-expect-error our buttons don't expose `onFocusChange`, but it gets passed to React Aria anyway
49
+ onFocusChange: setNextFocused,
50
+ },
51
+ };
52
+ }
53
+ //# sourceMappingURL=use-view-header.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-view-header.js","sourceRoot":"","sources":["../../../../../src/components/date-picker/views/use-view-header.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAS5E,gBAAgB;AAChB,MAAM,UAAU,aAAa,CAAC,KAAoB;IAChD,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IAEpC,oCAAoC;IACpC,eAAe,CAAC,GAAG,EAAE;QACnB,iDAAiD;QACjD,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,QAAQ,CAAC,MAAM,CAAC,CAAC;QACnB,CAAC;QACD,uDAAuD;IACzD,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAEb,kGAAkG;IAClG,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9D,MAAM,gBAAgB,GAAG,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,wBAAwB,EAAE,CAAC;IAC9E,IAAI,gBAAgB,IAAI,eAAe,EAAE,CAAC;QACxC,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAC1B,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;IAED,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACtD,MAAM,YAAY,GAAG,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,oBAAoB,EAAE,CAAC;IACtE,IAAI,YAAY,IAAI,WAAW,EAAE,CAAC;QAChC,cAAc,CAAC,KAAK,CAAC,CAAC;QACtB,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;IAED,OAAO;QACL,eAAe,EAAE;YACf,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,oBAAoB,EAAE;YAC3C,YAAY,EAAE,KAAK,CAAC,aAAa;YACjC,IAAI,EAAE,KAAC,eAAe,KAAG;YACzB,OAAO,EAAE,UAAU;YACnB,IAAI,EAAE,OAAO;YACb,UAAU,EAAE,gBAAgB;YAC5B,qGAAqG;YACrG,aAAa,EAAE,kBAAkB;SAClC;QACD,eAAe,EAAE;YACf,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,gBAAgB,EAAE;YACvC,YAAY,EAAE,KAAK,CAAC,SAAS;YAC7B,IAAI,EAAE,KAAC,gBAAgB,KAAG;YAC1B,OAAO,EAAE,UAAU;YACnB,IAAI,EAAE,OAAO;YACb,UAAU,EAAE,YAAY;YACxB,qGAAqG;YACrG,aAAa,EAAE,cAAc;SAC9B;KACF,CAAC;AACJ,CAAC","sourcesContent":["import { announce } from '@react-aria/live-announcer';\nimport { useUpdateEffect } from '@react-aria/utils';\nimport { useState } from 'react';\nimport { IconChevronLeft, IconChevronRight } from '../../../icons/index.js';\nimport type { IconButtonProps } from '../../button/icon-button.js';\nimport type { ViewGridState } from './types.js';\n\ninterface UseViewHeader {\n prevButtonProps: IconButtonProps;\n nextButtonProps: IconButtonProps;\n}\n\n/** @internal */\nexport function useViewHeader(state: ViewGridState): UseViewHeader {\n const { isFocused, header } = state;\n\n // Announce when the section changes\n useUpdateEffect(() => {\n // only when pressing the Previous or Next button\n if (!isFocused) {\n announce(header);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [header]);\n\n // If the next or previous buttons become disabled while they are focused, move focus to the grid.\n const [previousFocused, setPreviousFocused] = useState(false);\n const previousDisabled = state.isDisabled || state.isPreviousSectionInvalid();\n if (previousDisabled && previousFocused) {\n setPreviousFocused(false);\n state.setIsFocused(true);\n }\n\n const [nextFocused, setNextFocused] = useState(false);\n const nextDisabled = state.isDisabled || state.isNextSectionInvalid();\n if (nextDisabled && nextFocused) {\n setNextFocused(false);\n state.setIsFocused(true);\n }\n\n return {\n prevButtonProps: {\n onPress: () => state.focusPreviousSection(),\n 'aria-label': state.previousLabel,\n icon: <IconChevronLeft />,\n variant: 'tertiary',\n size: 'small',\n isDisabled: previousDisabled,\n // @ts-expect-error our buttons don't expose `onFocusChange`, but it gets passed to React Aria anyway\n onFocusChange: setPreviousFocused,\n },\n nextButtonProps: {\n onPress: () => state.focusNextSection(),\n 'aria-label': state.nextLabel,\n icon: <IconChevronRight />,\n variant: 'tertiary',\n size: 'small',\n isDisabled: nextDisabled,\n // @ts-expect-error our buttons don't expose `onFocusChange`, but it gets passed to React Aria anyway\n onFocusChange: setNextFocused,\n },\n };\n}\n"]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=view-grid-cell.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"view-grid-cell.d.ts","sourceRoot":"","sources":["../../../../../src/components/date-picker/views/view-grid-cell.tsx"],"names":[],"mappings":""}
@@ -0,0 +1,66 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { useFocusRing } from '@react-aria/focus';
3
+ import { getInteractionModality, useHover, usePress } from '@react-aria/interactions';
4
+ import { focusWithoutScrolling, getScrollParent, mergeProps, scrollIntoViewport } from '@react-aria/utils';
5
+ import clsx from 'clsx';
6
+ import { useEffect, useRef } from 'react';
7
+ import { textStyle } from '../../typography/utils.js';
8
+ /** @internal */
9
+ export function ViewGridCell({ cellData, state }) {
10
+ const ref = useRef(null);
11
+ const isDisabled = cellData ? state.isDisabled || state.isCellDisabled(cellData.date) : true;
12
+ const isSelected = cellData ? !isDisabled && state.isCellSelected(cellData.date) : false;
13
+ const isTabbable = cellData ? state.isCellTabbable(cellData.date) : false;
14
+ const isFocused = state.isFocused && isTabbable;
15
+ const { pressProps, isPressed } = usePress({
16
+ preventFocusOnPress: true,
17
+ isDisabled: isDisabled || state.isReadOnly,
18
+ onPress: () => {
19
+ if (!state.isReadOnly && cellData) {
20
+ state.setFocusedDate(cellData.date);
21
+ state.selectFocusedDate();
22
+ }
23
+ },
24
+ });
25
+ let tabIndex = undefined;
26
+ if (!isDisabled) {
27
+ tabIndex = isTabbable ? 0 : -1;
28
+ }
29
+ // Focus the button in the DOM when the state updates.
30
+ useEffect(() => {
31
+ if (isFocused && ref.current) {
32
+ focusWithoutScrolling(ref.current);
33
+ // Scroll into view if navigating with a keyboard
34
+ if (getInteractionModality() !== 'pointer' && document.activeElement === ref.current) {
35
+ scrollIntoViewport(ref.current, { containingElement: getScrollParent(ref.current) });
36
+ }
37
+ }
38
+ }, [isFocused]);
39
+ const { hoverProps, isHovered } = useHover({ isDisabled });
40
+ const { focusProps, isFocusVisible } = useFocusRing();
41
+ const cellProps = {
42
+ role: 'gridcell',
43
+ 'aria-disabled': isDisabled || undefined,
44
+ 'aria-selected': isSelected || undefined,
45
+ };
46
+ if (!cellData) {
47
+ return _jsx("td", { ...cellProps });
48
+ }
49
+ const { date, content, ariaLabel, isCurrent } = cellData;
50
+ const buttonProps = mergeProps(pressProps, hoverProps, focusProps, {
51
+ onFocus() {
52
+ if (!isDisabled) {
53
+ state.setFocusedDate(date);
54
+ }
55
+ },
56
+ tabIndex,
57
+ role: 'button',
58
+ 'aria-disabled': isDisabled || undefined,
59
+ 'aria-label': ariaLabel,
60
+ onContextMenu(e) {
61
+ e.preventDefault();
62
+ },
63
+ });
64
+ return (_jsx("td", { ...cellProps, children: _jsx("div", { ...buttonProps, ref: ref, className: clsx('cim-date-picker-calendar-cell', textStyle({ variant: isCurrent ? 'medium-semibold' : 'medium' })), "data-disabled": isDisabled || undefined, "data-hovered": isHovered || undefined, "data-pressed": isPressed || undefined, "data-selected": isSelected || undefined, "data-focus-visible": (isFocusVisible && isFocused) || undefined, "data-current": isCurrent || undefined, children: content }) }));
65
+ }
66
+ //# sourceMappingURL=view-grid-cell.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"view-grid-cell.js","sourceRoot":"","sources":["../../../../../src/components/date-picker/views/view-grid-cell.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useFocusRing } from '@react-aria/focus';\nimport { getInteractionModality, useHover, usePress } from '@react-aria/interactions';\nimport { focusWithoutScrolling, getScrollParent, mergeProps, scrollIntoViewport } from '@react-aria/utils';\nimport clsx from 'clsx';\nimport { type DOMAttributes, useEffect, useRef } from 'react';\nimport type { NativeElementProps } from '../../types.js';\nimport { textStyle } from '../../typography/utils.js';\nimport type { ViewGridCellData, ViewGridState } from './types.js';\n\n/** @internal */\nexport function ViewGridCell({ cellData, state }: { cellData: ViewGridCellData | null; state: ViewGridState }) {\n const ref = useRef<HTMLDivElement>(null);\n\n const isDisabled = cellData ? state.isDisabled || state.isCellDisabled(cellData.date) : true;\n const isSelected = cellData ? !isDisabled && state.isCellSelected(cellData.date) : false;\n const isTabbable = cellData ? state.isCellTabbable(cellData.date) : false;\n const isFocused = state.isFocused && isTabbable;\n\n const { pressProps, isPressed } = usePress({\n preventFocusOnPress: true,\n isDisabled: isDisabled || state.isReadOnly,\n onPress: () => {\n if (!state.isReadOnly && cellData) {\n state.setFocusedDate(cellData.date);\n state.selectFocusedDate();\n }\n },\n });\n\n let tabIndex: number | undefined = undefined;\n if (!isDisabled) {\n tabIndex = isTabbable ? 0 : -1;\n }\n\n // Focus the button in the DOM when the state updates.\n useEffect(() => {\n if (isFocused && ref.current) {\n focusWithoutScrolling(ref.current);\n\n // Scroll into view if navigating with a keyboard\n if (getInteractionModality() !== 'pointer' && document.activeElement === ref.current) {\n scrollIntoViewport(ref.current, { containingElement: getScrollParent(ref.current) });\n }\n }\n }, [isFocused]);\n\n const { hoverProps, isHovered } = useHover({ isDisabled });\n const { focusProps, isFocusVisible } = useFocusRing();\n\n const cellProps: NativeElementProps<HTMLTableCellElement> = {\n role: 'gridcell',\n 'aria-disabled': isDisabled || undefined,\n 'aria-selected': isSelected || undefined,\n };\n\n if (!cellData) {\n return <td {...cellProps} />;\n }\n\n const { date, content, ariaLabel, isCurrent } = cellData;\n\n const buttonProps = mergeProps(pressProps, hoverProps, focusProps, {\n onFocus() {\n if (!isDisabled) {\n state.setFocusedDate(date);\n }\n },\n tabIndex,\n role: 'button',\n 'aria-disabled': isDisabled || undefined,\n 'aria-label': ariaLabel,\n onContextMenu(e) {\n e.preventDefault();\n },\n } as DOMAttributes<HTMLDivElement>);\n\n return (\n <td {...cellProps}>\n <div\n {...buttonProps}\n ref={ref}\n className={clsx(\n 'cim-date-picker-calendar-cell',\n textStyle({ variant: isCurrent ? 'medium-semibold' : 'medium' }),\n )}\n data-disabled={isDisabled || undefined}\n data-hovered={isHovered || undefined}\n data-pressed={isPressed || undefined}\n data-selected={isSelected || undefined}\n data-focus-visible={(isFocusVisible && isFocused) || undefined}\n data-current={isCurrent || undefined}\n >\n {content}\n </div>\n </td>\n );\n}\n"]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=view-grid.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"view-grid.d.ts","sourceRoot":"","sources":["../../../../../src/components/date-picker/views/view-grid.tsx"],"names":[],"mappings":""}
@@ -0,0 +1,69 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import clsx from 'clsx';
3
+ import { useLocaleInfo } from '../../../i18n/index.js';
4
+ import { ViewGridCell } from './view-grid-cell.js';
5
+ /** @internal */
6
+ export function ViewGrid({ state, className }) {
7
+ const { direction } = useLocaleInfo();
8
+ const onKeyDown = (e) => {
9
+ switch (e.key) {
10
+ case 'Enter':
11
+ case ' ':
12
+ e.preventDefault();
13
+ state.selectFocusedDate();
14
+ break;
15
+ case 'PageUp':
16
+ e.preventDefault();
17
+ e.stopPropagation();
18
+ state.focusPreviousSection(e.shiftKey);
19
+ break;
20
+ case 'PageDown':
21
+ e.preventDefault();
22
+ e.stopPropagation();
23
+ state.focusNextSection(e.shiftKey);
24
+ break;
25
+ case 'End':
26
+ e.preventDefault();
27
+ e.stopPropagation();
28
+ state.focusSectionEnd();
29
+ break;
30
+ case 'Home':
31
+ e.preventDefault();
32
+ e.stopPropagation();
33
+ state.focusSectionStart();
34
+ break;
35
+ case 'ArrowLeft':
36
+ e.preventDefault();
37
+ e.stopPropagation();
38
+ if (direction === 'rtl') {
39
+ state.focusNextItem();
40
+ }
41
+ else {
42
+ state.focusPreviousItem();
43
+ }
44
+ break;
45
+ case 'ArrowUp':
46
+ e.preventDefault();
47
+ e.stopPropagation();
48
+ state.focusPreviousRow();
49
+ break;
50
+ case 'ArrowRight':
51
+ e.preventDefault();
52
+ e.stopPropagation();
53
+ if (direction === 'rtl') {
54
+ state.focusPreviousItem();
55
+ }
56
+ else {
57
+ state.focusNextItem();
58
+ }
59
+ break;
60
+ case 'ArrowDown':
61
+ e.preventDefault();
62
+ e.stopPropagation();
63
+ state.focusNextRow();
64
+ break;
65
+ }
66
+ };
67
+ return (_jsx("table", { role: "grid", className: clsx('cim-date-picker-view-grid', className), "aria-label": state.header, "aria-readonly": state.isReadOnly || undefined, "aria-disabled": state.isDisabled || undefined, onKeyDown: onKeyDown, onFocus: () => state.setIsFocused(true), onBlur: () => state.setIsFocused(false), children: _jsx("tbody", { children: state.data.map((row, idx) => (_jsx("tr", { children: row.map((cellData, idx) => (_jsx(ViewGridCell, { cellData: cellData, state: state }, cellData?.ariaLabel ?? idx))) }, idx))) }) }));
68
+ }
69
+ //# sourceMappingURL=view-grid.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"view-grid.js","sourceRoot":"","sources":["../../../../../src/components/date-picker/views/view-grid.tsx"],"names":[],"mappings":"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","sourcesContent":["import clsx from 'clsx';\nimport type { KeyboardEvent } from 'react';\nimport { useLocaleInfo } from '../../../i18n/index.js';\nimport type { ViewGridState } from './types.js';\nimport { ViewGridCell } from './view-grid-cell.js';\n\n/** @internal */\nexport function ViewGrid({ state, className }: { state: ViewGridState; className?: string }) {\n const { direction } = useLocaleInfo();\n\n const onKeyDown = (e: KeyboardEvent) => {\n switch (e.key) {\n case 'Enter':\n case ' ':\n e.preventDefault();\n state.selectFocusedDate();\n break;\n case 'PageUp':\n e.preventDefault();\n e.stopPropagation();\n state.focusPreviousSection(e.shiftKey);\n break;\n case 'PageDown':\n e.preventDefault();\n e.stopPropagation();\n state.focusNextSection(e.shiftKey);\n break;\n case 'End':\n e.preventDefault();\n e.stopPropagation();\n state.focusSectionEnd();\n break;\n case 'Home':\n e.preventDefault();\n e.stopPropagation();\n state.focusSectionStart();\n break;\n case 'ArrowLeft':\n e.preventDefault();\n e.stopPropagation();\n if (direction === 'rtl') {\n state.focusNextItem();\n } else {\n state.focusPreviousItem();\n }\n break;\n case 'ArrowUp':\n e.preventDefault();\n e.stopPropagation();\n state.focusPreviousRow();\n break;\n case 'ArrowRight':\n e.preventDefault();\n e.stopPropagation();\n if (direction === 'rtl') {\n state.focusPreviousItem();\n } else {\n state.focusNextItem();\n }\n break;\n case 'ArrowDown':\n e.preventDefault();\n e.stopPropagation();\n state.focusNextRow();\n break;\n }\n };\n return (\n <table\n role=\"grid\"\n className={clsx('cim-date-picker-view-grid', className)}\n aria-label={state.header}\n aria-readonly={state.isReadOnly || undefined}\n aria-disabled={state.isDisabled || undefined}\n onKeyDown={onKeyDown}\n onFocus={() => state.setIsFocused(true)}\n onBlur={() => state.setIsFocused(false)}\n >\n <tbody>\n {state.data.map((row, idx) => (\n <tr key={idx}>\n {row.map((cellData, idx) => (\n <ViewGridCell cellData={cellData} key={cellData?.ariaLabel ?? idx} state={state} />\n ))}\n </tr>\n ))}\n </tbody>\n </table>\n );\n}\n"]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=view-provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"view-provider.d.ts","sourceRoot":"","sources":["../../../../../src/components/date-picker/views/view-provider.tsx"],"names":[],"mappings":""}
@@ -0,0 +1,17 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { createContext, useContext } from 'react';
3
+ const DatePickerViewContext = createContext(null);
4
+ /** @internal */
5
+ export function DatePickerViewProvider({ children, currentView, switchToView, focusedDate, setFocusedDate, }) {
6
+ return (_jsx(DatePickerViewContext.Provider, { value: { currentView, switchToView, focusedDate, setFocusedDate }, children: children }));
7
+ }
8
+ /** @internal */
9
+ // eslint-disable-next-line react-refresh/only-export-components
10
+ export function useDatePickerView() {
11
+ const state = useContext(DatePickerViewContext);
12
+ if (!state) {
13
+ throw new Error('Cannot use date picker view state outside of a date picker');
14
+ }
15
+ return state;
16
+ }
17
+ //# sourceMappingURL=view-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"view-provider.js","sourceRoot":"","sources":["../../../../../src/components/date-picker/views/view-provider.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAkB,MAAM,OAAO,CAAC;AAYlE,MAAM,qBAAqB,GAAG,aAAa,CAA6B,IAAI,CAAC,CAAC;AAM9E,gBAAgB;AAChB,MAAM,UAAU,sBAAsB,CAAC,EACrC,QAAQ,EACR,WAAW,EACX,YAAY,EACZ,WAAW,EACX,cAAc,GACc;IAC5B,OAAO,CACL,KAAC,qBAAqB,CAAC,QAAQ,IAAC,KAAK,EAAE,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,YAC9F,QAAQ,GACsB,CAClC,CAAC;AACJ,CAAC;AAED,gBAAgB;AAChB,gEAAgE;AAChE,MAAM,UAAU,iBAAiB;IAC/B,MAAM,KAAK,GAAG,UAAU,CAAC,qBAAqB,CAAC,CAAC;IAChD,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;IAChF,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC","sourcesContent":["import type { CalendarDate } from '@internationalized/date';\nimport { createContext, useContext, type ReactNode } from 'react';\n\n/** @internal */\nexport type DatePickerView = 'month' | 'year' | 'multi-year';\n\ninterface DatePickerViewState {\n currentView: DatePickerView;\n switchToView: (value: DatePickerView) => void;\n focusedDate: CalendarDate;\n setFocusedDate: (value: CalendarDate) => void;\n}\n\nconst DatePickerViewContext = createContext<DatePickerViewState | null>(null);\n\ninterface DatePickerViewProviderProps extends DatePickerViewState {\n children: ReactNode;\n}\n\n/** @internal */\nexport function DatePickerViewProvider({\n children,\n currentView,\n switchToView,\n focusedDate,\n setFocusedDate,\n}: DatePickerViewProviderProps) {\n return (\n <DatePickerViewContext.Provider value={{ currentView, switchToView, focusedDate, setFocusedDate }}>\n {children}\n </DatePickerViewContext.Provider>\n );\n}\n\n/** @internal */\n// eslint-disable-next-line react-refresh/only-export-components\nexport function useDatePickerView(): DatePickerViewState {\n const state = useContext(DatePickerViewContext);\n if (!state) {\n throw new Error('Cannot use date picker view state outside of a date picker');\n }\n\n return state;\n}\n"]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=use-year-view-state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-year-view-state.d.ts","sourceRoot":"","sources":["../../../../../../src/components/date-picker/views/year/use-year-view-state.ts"],"names":[],"mappings":""}
@@ -0,0 +1,155 @@
1
+ import { endOfMonth, endOfYear, isSameDay, isSameMonth, isSameYear, startOfMonth, startOfYear, today, } from '@internationalized/date';
2
+ import { useContext, useMemo, useState } from 'react';
3
+ import { useDateFormatter } from 'react-aria';
4
+ import { CalendarStateContext as RACCalendarStateContext } from 'react-aria-components';
5
+ import { useLocalizedMessages } from '../../../../i18n/index.js';
6
+ import { constrainValue, getEraFormat, isDateInvalid } from '../../utils.js';
7
+ import { useDatePickerView } from './../view-provider.js';
8
+ const ITEMS_PER_ROW = 3;
9
+ const YEARS_SKIP_AMOUNT = 10;
10
+ /** @internal */
11
+ export function useYearViewState() {
12
+ const calendarState = useContext(RACCalendarStateContext);
13
+ const { switchToView, focusedDate, setFocusedDate } = useDatePickerView();
14
+ const messages = useLocalizedMessages('datePicker');
15
+ const [isFocused, setIsFocused] = useState(true);
16
+ const currentDate = useMemo(() => today(calendarState.timeZone), [calendarState.timeZone]);
17
+ const monthFormatter = useDateFormatter({
18
+ month: 'short',
19
+ calendar: focusedDate.calendar.identifier,
20
+ timeZone: calendarState.timeZone,
21
+ });
22
+ const monthAriaLabelFormatter = useDateFormatter({
23
+ month: 'long',
24
+ year: 'numeric',
25
+ calendar: focusedDate.calendar.identifier,
26
+ timeZone: calendarState.timeZone,
27
+ });
28
+ const yearFormatter = useDateFormatter({
29
+ year: 'numeric',
30
+ era: getEraFormat(focusedDate),
31
+ calendar: focusedDate.calendar.identifier,
32
+ timeZone: calendarState.timeZone,
33
+ });
34
+ // Some calendars have more than 12 months, and in some calendars the number of months varies per year.
35
+ // This can result in partially filled grid rows.
36
+ // Detect this to keep keyboard navigation between rows consistent.
37
+ const monthCount = focusedDate.calendar.getMonthsInYear(focusedDate);
38
+ const previousYearMonthCount = focusedDate.calendar.getMonthsInYear(focusedDate.subtract({ years: 1 }));
39
+ const partialRowMonthCount = monthCount % ITEMS_PER_ROW;
40
+ const previousYearPartialRowMonthCount = previousYearMonthCount % ITEMS_PER_ROW;
41
+ const data = useMemo(() => {
42
+ const rowCount = Math.ceil(monthCount / ITEMS_PER_ROW);
43
+ const result = new Array(rowCount);
44
+ for (let rowIdx = 0; rowIdx < rowCount; rowIdx++) {
45
+ result[rowIdx] = new Array(ITEMS_PER_ROW).fill(null);
46
+ }
47
+ for (let monthIdx = 0; monthIdx < monthCount; monthIdx++) {
48
+ const rowIdx = Math.floor(monthIdx / ITEMS_PER_ROW);
49
+ const colIdx = monthIdx % ITEMS_PER_ROW;
50
+ const date = focusedDate.set({ month: monthIdx + 1 });
51
+ const nativeDate = date.toDate(calendarState.timeZone);
52
+ result[rowIdx][colIdx] = {
53
+ date,
54
+ content: monthFormatter.format(nativeDate),
55
+ ariaLabel: monthAriaLabelFormatter.format(nativeDate),
56
+ isCurrent: isSameYear(date, currentDate) && isSameMonth(date, currentDate),
57
+ };
58
+ }
59
+ return result;
60
+ }, [monthCount, calendarState.timeZone, focusedDate, monthFormatter, monthAriaLabelFormatter, currentDate]);
61
+ const focusCell = (date) => {
62
+ setFocusedDate(constrainValue(date, calendarState.minValue, calendarState.maxValue));
63
+ };
64
+ return {
65
+ header: yearFormatter.format(focusedDate.toDate(calendarState.timeZone)),
66
+ previousLabel: messages.format('previousYear'),
67
+ nextLabel: messages.format('nextYear'),
68
+ data,
69
+ isReadOnly: calendarState.isReadOnly,
70
+ isDisabled: calendarState.isDisabled,
71
+ isFocused,
72
+ setIsFocused,
73
+ focusedDate,
74
+ setFocusedDate,
75
+ timeZone: calendarState.timeZone,
76
+ focusPreviousItem() {
77
+ focusCell(focusedDate.subtract({ months: 1 }));
78
+ },
79
+ focusNextItem() {
80
+ focusCell(focusedDate.add({ months: 1 }));
81
+ },
82
+ focusPreviousRow() {
83
+ const currentMonth = focusedDate.month;
84
+ let monthsToSubtract;
85
+ if (currentMonth <= previousYearPartialRowMonthCount) {
86
+ monthsToSubtract = previousYearPartialRowMonthCount;
87
+ }
88
+ else if (currentMonth <= ITEMS_PER_ROW) {
89
+ monthsToSubtract = ITEMS_PER_ROW + previousYearPartialRowMonthCount;
90
+ }
91
+ else {
92
+ monthsToSubtract = ITEMS_PER_ROW;
93
+ }
94
+ focusCell(focusedDate.subtract({
95
+ months: monthsToSubtract,
96
+ }));
97
+ },
98
+ focusNextRow() {
99
+ const currentMonth = focusedDate.month;
100
+ let monthsToAdd;
101
+ if (currentMonth > monthCount - partialRowMonthCount) {
102
+ monthsToAdd = partialRowMonthCount;
103
+ }
104
+ else if (currentMonth + ITEMS_PER_ROW > monthCount) {
105
+ monthsToAdd = ITEMS_PER_ROW + partialRowMonthCount;
106
+ }
107
+ else {
108
+ monthsToAdd = ITEMS_PER_ROW;
109
+ }
110
+ focusCell(focusedDate.add({
111
+ months: monthsToAdd,
112
+ }));
113
+ },
114
+ focusSectionStart() {
115
+ focusCell(startOfYear(focusedDate).set({ day: focusedDate.day }));
116
+ },
117
+ focusSectionEnd() {
118
+ focusCell(endOfYear(focusedDate).set({ day: focusedDate.day }));
119
+ },
120
+ focusPreviousSection(shouldSkip) {
121
+ focusCell(focusedDate.subtract({ years: shouldSkip ? YEARS_SKIP_AMOUNT : 1 }));
122
+ },
123
+ focusNextSection(shouldSkip) {
124
+ focusCell(focusedDate.add({ years: shouldSkip ? YEARS_SKIP_AMOUNT : 1 }));
125
+ },
126
+ isPreviousSectionInvalid() {
127
+ const current = startOfYear(focusedDate);
128
+ const prev = current.subtract({ days: 1 });
129
+ return (isDateInvalid(current, calendarState.minValue, calendarState.maxValue) ||
130
+ isDateInvalid(prev, calendarState.minValue, calendarState.maxValue) ||
131
+ isSameDay(prev, current));
132
+ },
133
+ isNextSectionInvalid() {
134
+ const current = endOfYear(focusedDate);
135
+ const next = current.add({ days: 1 });
136
+ return (isDateInvalid(current, calendarState.minValue, calendarState.maxValue) ||
137
+ isDateInvalid(next, calendarState.minValue, calendarState.maxValue) ||
138
+ isSameDay(next, current));
139
+ },
140
+ selectFocusedDate() {
141
+ switchToView('month');
142
+ },
143
+ isCellDisabled(date) {
144
+ return (isDateInvalid(endOfMonth(date), calendarState.minValue, null) ||
145
+ isDateInvalid(startOfMonth(date), null, calendarState.maxValue));
146
+ },
147
+ isCellSelected(date) {
148
+ return (calendarState.value !== null && isSameYear(date, calendarState.value) && isSameMonth(date, calendarState.value));
149
+ },
150
+ isCellTabbable(date) {
151
+ return isSameYear(date, focusedDate) && isSameMonth(date, focusedDate);
152
+ },
153
+ };
154
+ }
155
+ //# sourceMappingURL=use-year-view-state.js.map