@cloudscape-design/components 3.0.841 → 3.0.843

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 (608) hide show
  1. package/alert/styles.css.js +28 -28
  2. package/alert/styles.scoped.css +49 -45
  3. package/alert/styles.selectors.js +28 -28
  4. package/anchor-navigation/styles.css.js +8 -8
  5. package/anchor-navigation/styles.scoped.css +24 -20
  6. package/anchor-navigation/styles.selectors.js +8 -8
  7. package/annotation-context/annotation/styles.css.js +24 -24
  8. package/annotation-context/annotation/styles.scoped.css +36 -32
  9. package/annotation-context/annotation/styles.selectors.js +24 -24
  10. package/app-layout/content-wrapper/styles.css.js +3 -3
  11. package/app-layout/content-wrapper/styles.scoped.css +10 -6
  12. package/app-layout/content-wrapper/styles.selectors.js +3 -3
  13. package/app-layout/drawer/styles.css.js +14 -14
  14. package/app-layout/drawer/styles.scoped.css +28 -24
  15. package/app-layout/drawer/styles.selectors.js +14 -14
  16. package/app-layout/mobile-toolbar/styles.css.js +8 -8
  17. package/app-layout/mobile-toolbar/styles.scoped.css +12 -8
  18. package/app-layout/mobile-toolbar/styles.selectors.js +8 -8
  19. package/app-layout/resize/styles.css.js +5 -5
  20. package/app-layout/resize/styles.scoped.css +16 -12
  21. package/app-layout/resize/styles.selectors.js +5 -5
  22. package/app-layout/split-panel/styles.css.js +2 -2
  23. package/app-layout/split-panel/styles.scoped.css +6 -2
  24. package/app-layout/split-panel/styles.selectors.js +2 -2
  25. package/app-layout/styles.css.js +12 -12
  26. package/app-layout/styles.scoped.css +16 -12
  27. package/app-layout/styles.selectors.js +12 -12
  28. package/app-layout/toggles/styles.css.js +2 -2
  29. package/app-layout/toggles/styles.scoped.css +12 -8
  30. package/app-layout/toggles/styles.selectors.js +2 -2
  31. package/app-layout/visual-refresh/styles.css.js +86 -86
  32. package/app-layout/visual-refresh/styles.scoped.css +167 -163
  33. package/app-layout/visual-refresh/styles.selectors.js +86 -86
  34. package/app-layout/visual-refresh-toolbar/drawer/styles.css.js +10 -10
  35. package/app-layout/visual-refresh-toolbar/drawer/styles.scoped.css +17 -13
  36. package/app-layout/visual-refresh-toolbar/drawer/styles.selectors.js +10 -10
  37. package/app-layout/visual-refresh-toolbar/navigation/styles.css.js +4 -4
  38. package/app-layout/visual-refresh-toolbar/navigation/styles.scoped.css +9 -5
  39. package/app-layout/visual-refresh-toolbar/navigation/styles.selectors.js +4 -4
  40. package/app-layout/visual-refresh-toolbar/skeleton/styles.css.js +19 -19
  41. package/app-layout/visual-refresh-toolbar/skeleton/styles.scoped.css +39 -35
  42. package/app-layout/visual-refresh-toolbar/skeleton/styles.selectors.js +19 -19
  43. package/app-layout/visual-refresh-toolbar/split-panel/styles.css.js +1 -1
  44. package/app-layout/visual-refresh-toolbar/split-panel/styles.scoped.css +5 -1
  45. package/app-layout/visual-refresh-toolbar/split-panel/styles.selectors.js +1 -1
  46. package/app-layout/visual-refresh-toolbar/toolbar/styles.css.js +13 -13
  47. package/app-layout/visual-refresh-toolbar/toolbar/styles.scoped.css +19 -15
  48. package/app-layout/visual-refresh-toolbar/toolbar/styles.selectors.js +13 -13
  49. package/app-layout/visual-refresh-toolbar/toolbar/trigger-button/styles.css.js +7 -7
  50. package/app-layout/visual-refresh-toolbar/toolbar/trigger-button/styles.scoped.css +23 -19
  51. package/app-layout/visual-refresh-toolbar/toolbar/trigger-button/styles.selectors.js +7 -7
  52. package/area-chart/styles.css.js +6 -6
  53. package/area-chart/styles.scoped.css +15 -11
  54. package/area-chart/styles.selectors.js +6 -6
  55. package/attribute-editor/styles.css.js +14 -14
  56. package/attribute-editor/styles.scoped.css +28 -24
  57. package/attribute-editor/styles.selectors.js +14 -14
  58. package/autosuggest/load-more-controller.d.ts.map +1 -1
  59. package/autosuggest/load-more-controller.js +1 -1
  60. package/autosuggest/load-more-controller.js.map +1 -1
  61. package/badge/styles.css.js +10 -10
  62. package/badge/styles.scoped.css +14 -10
  63. package/badge/styles.selectors.js +10 -10
  64. package/box/styles.css.js +191 -191
  65. package/box/styles.scoped.css +240 -236
  66. package/box/styles.selectors.js +191 -191
  67. package/breadcrumb-group/all-items-dropdown.d.ts +15 -0
  68. package/breadcrumb-group/all-items-dropdown.d.ts.map +1 -0
  69. package/breadcrumb-group/all-items-dropdown.js +47 -0
  70. package/breadcrumb-group/all-items-dropdown.js.map +1 -0
  71. package/breadcrumb-group/implementation.d.ts.map +1 -1
  72. package/breadcrumb-group/implementation.js +9 -6
  73. package/breadcrumb-group/implementation.js.map +1 -1
  74. package/breadcrumb-group/item/styles.css.js +7 -7
  75. package/breadcrumb-group/item/styles.scoped.css +29 -25
  76. package/breadcrumb-group/item/styles.selectors.js +7 -7
  77. package/breadcrumb-group/styles.css.js +14 -10
  78. package/breadcrumb-group/styles.scoped.css +124 -11
  79. package/breadcrumb-group/styles.selectors.js +14 -10
  80. package/breadcrumb-group/utils.d.ts +0 -2
  81. package/breadcrumb-group/utils.d.ts.map +1 -1
  82. package/breadcrumb-group/utils.js +17 -46
  83. package/breadcrumb-group/utils.js.map +1 -1
  84. package/button/index.d.ts.map +1 -1
  85. package/button/index.js +3 -3
  86. package/button/index.js.map +1 -1
  87. package/button/interfaces.d.ts +18 -0
  88. package/button/interfaces.d.ts.map +1 -1
  89. package/button/interfaces.js.map +1 -1
  90. package/button/internal.d.ts.map +1 -1
  91. package/button/internal.js +15 -2
  92. package/button/internal.js.map +1 -1
  93. package/button/styles.css.js +21 -21
  94. package/button/styles.scoped.css +158 -154
  95. package/button/styles.selectors.js +21 -21
  96. package/button/test-classes/styles.css.js +2 -1
  97. package/button/test-classes/styles.scoped.css +5 -1
  98. package/button/test-classes/styles.selectors.js +2 -1
  99. package/button-dropdown/category-elements/styles.css.js +14 -14
  100. package/button-dropdown/category-elements/styles.scoped.css +27 -23
  101. package/button-dropdown/category-elements/styles.selectors.js +14 -14
  102. package/button-dropdown/index.d.ts.map +1 -1
  103. package/button-dropdown/index.js +2 -2
  104. package/button-dropdown/index.js.map +1 -1
  105. package/button-dropdown/interfaces.d.ts +18 -2
  106. package/button-dropdown/interfaces.d.ts.map +1 -1
  107. package/button-dropdown/interfaces.js.map +1 -1
  108. package/button-dropdown/internal.d.ts.map +1 -1
  109. package/button-dropdown/internal.js +13 -6
  110. package/button-dropdown/internal.js.map +1 -1
  111. package/button-dropdown/item-element/index.d.ts.map +1 -1
  112. package/button-dropdown/item-element/index.js +3 -2
  113. package/button-dropdown/item-element/index.js.map +1 -1
  114. package/button-dropdown/item-element/styles.css.js +14 -13
  115. package/button-dropdown/item-element/styles.scoped.css +33 -21
  116. package/button-dropdown/item-element/styles.selectors.js +14 -13
  117. package/button-dropdown/mobile-expandable-group/styles.css.js +5 -5
  118. package/button-dropdown/mobile-expandable-group/styles.scoped.css +9 -5
  119. package/button-dropdown/mobile-expandable-group/styles.selectors.js +5 -5
  120. package/button-dropdown/styles.css.js +21 -17
  121. package/button-dropdown/styles.scoped.css +51 -38
  122. package/button-dropdown/styles.selectors.js +21 -17
  123. package/button-group/file-input-item.d.ts +11 -0
  124. package/button-group/file-input-item.d.ts.map +1 -0
  125. package/button-group/file-input-item.js +23 -0
  126. package/button-group/file-input-item.js.map +1 -0
  127. package/button-group/interfaces.d.ts +23 -1
  128. package/button-group/interfaces.d.ts.map +1 -1
  129. package/button-group/interfaces.js.map +1 -1
  130. package/button-group/internal.d.ts.map +1 -1
  131. package/button-group/internal.js +2 -2
  132. package/button-group/internal.js.map +1 -1
  133. package/button-group/item-element.d.ts +1 -0
  134. package/button-group/item-element.d.ts.map +1 -1
  135. package/button-group/item-element.js +12 -6
  136. package/button-group/item-element.js.map +1 -1
  137. package/button-group/styles.css.js +4 -4
  138. package/button-group/styles.scoped.css +10 -6
  139. package/button-group/styles.selectors.js +4 -4
  140. package/calendar/grid/index.d.ts +1 -2
  141. package/calendar/grid/index.d.ts.map +1 -1
  142. package/calendar/grid/index.js.map +1 -1
  143. package/calendar/grid/use-calendar-grid-keyboard-navigation.d.ts.map +1 -1
  144. package/calendar/grid/use-calendar-grid-keyboard-navigation.js +2 -1
  145. package/calendar/grid/use-calendar-grid-keyboard-navigation.js.map +1 -1
  146. package/calendar/internal.d.ts.map +1 -1
  147. package/calendar/internal.js +2 -1
  148. package/calendar/internal.js.map +1 -1
  149. package/calendar/styles.css.js +21 -21
  150. package/calendar/styles.scoped.css +47 -43
  151. package/calendar/styles.selectors.js +21 -21
  152. package/calendar/utils/navigation-day.d.ts +8 -0
  153. package/calendar/utils/navigation-day.d.ts.map +1 -0
  154. package/calendar/utils/navigation-day.js +39 -0
  155. package/calendar/utils/navigation-day.js.map +1 -0
  156. package/calendar/utils/{navigation.d.ts → navigation-month.d.ts} +2 -6
  157. package/calendar/utils/navigation-month.d.ts.map +1 -0
  158. package/calendar/utils/navigation-month.js +39 -0
  159. package/calendar/utils/navigation-month.js.map +1 -0
  160. package/cards/styles.css.js +39 -39
  161. package/cards/styles.scoped.css +54 -50
  162. package/cards/styles.selectors.js +39 -39
  163. package/checkbox/styles.css.js +3 -3
  164. package/checkbox/styles.scoped.css +9 -5
  165. package/checkbox/styles.selectors.js +3 -3
  166. package/code-editor/resizable-box/styles.css.js +3 -3
  167. package/code-editor/resizable-box/styles.scoped.css +10 -6
  168. package/code-editor/resizable-box/styles.selectors.js +3 -3
  169. package/code-editor/styles.css.js +33 -33
  170. package/code-editor/styles.scoped.css +139 -135
  171. package/code-editor/styles.selectors.js +33 -33
  172. package/collection-preferences/content-display/styles.css.js +12 -12
  173. package/collection-preferences/content-display/styles.scoped.css +23 -15
  174. package/collection-preferences/content-display/styles.selectors.js +12 -12
  175. package/collection-preferences/styles.css.js +38 -38
  176. package/collection-preferences/styles.scoped.css +58 -42
  177. package/collection-preferences/styles.selectors.js +38 -38
  178. package/column-layout/flexible-column-layout/styles.css.js +5 -5
  179. package/column-layout/flexible-column-layout/styles.scoped.css +14 -10
  180. package/column-layout/flexible-column-layout/styles.selectors.js +5 -5
  181. package/column-layout/styles.css.js +13 -13
  182. package/column-layout/styles.scoped.css +49 -45
  183. package/column-layout/styles.selectors.js +13 -13
  184. package/container/styles.css.js +31 -31
  185. package/container/styles.scoped.css +60 -56
  186. package/container/styles.selectors.js +31 -31
  187. package/content-layout/styles.css.js +14 -14
  188. package/content-layout/styles.scoped.css +20 -16
  189. package/content-layout/styles.selectors.js +14 -14
  190. package/date-picker/styles.css.js +7 -7
  191. package/date-picker/styles.scoped.css +13 -9
  192. package/date-picker/styles.selectors.js +7 -7
  193. package/date-range-picker/calendar/grids/index.d.ts.map +1 -1
  194. package/date-range-picker/calendar/grids/index.js +1 -1
  195. package/date-range-picker/calendar/grids/index.js.map +1 -1
  196. package/date-range-picker/calendar/grids/styles.css.js +28 -28
  197. package/date-range-picker/calendar/grids/styles.scoped.css +47 -43
  198. package/date-range-picker/calendar/grids/styles.selectors.js +28 -28
  199. package/date-range-picker/calendar/index.js +1 -1
  200. package/date-range-picker/calendar/index.js.map +1 -1
  201. package/date-range-picker/index.d.ts.map +1 -1
  202. package/date-range-picker/index.js +3 -10
  203. package/date-range-picker/index.js.map +1 -1
  204. package/date-range-picker/relative-range/styles.css.js +9 -9
  205. package/date-range-picker/relative-range/styles.scoped.css +17 -13
  206. package/date-range-picker/relative-range/styles.selectors.js +9 -9
  207. package/date-range-picker/styles.css.js +38 -38
  208. package/date-range-picker/styles.scoped.css +51 -47
  209. package/date-range-picker/styles.selectors.js +38 -38
  210. package/date-range-picker/time-offset.d.ts +2 -1
  211. package/date-range-picker/time-offset.d.ts.map +1 -1
  212. package/date-range-picker/time-offset.js +1 -1
  213. package/date-range-picker/time-offset.js.map +1 -1
  214. package/date-range-picker/utils.d.ts +9 -0
  215. package/date-range-picker/utils.d.ts.map +1 -1
  216. package/date-range-picker/utils.js +19 -2
  217. package/date-range-picker/utils.js.map +1 -1
  218. package/drawer/styles.css.js +5 -5
  219. package/drawer/styles.scoped.css +16 -12
  220. package/drawer/styles.selectors.js +5 -5
  221. package/expandable-section/styles.css.js +34 -34
  222. package/expandable-section/styles.scoped.css +69 -65
  223. package/expandable-section/styles.selectors.js +34 -34
  224. package/file-dropzone/styles.css.js +3 -3
  225. package/file-dropzone/styles.scoped.css +9 -5
  226. package/file-dropzone/styles.selectors.js +3 -3
  227. package/file-input/internal.d.ts +5 -1
  228. package/file-input/internal.d.ts.map +1 -1
  229. package/file-input/internal.js +18 -10
  230. package/file-input/internal.js.map +1 -1
  231. package/file-input/styles.css.js +6 -5
  232. package/file-input/styles.scoped.css +33 -8
  233. package/file-input/styles.selectors.js +6 -5
  234. package/file-token-group/styles.css.js +22 -22
  235. package/file-token-group/styles.scoped.css +35 -31
  236. package/file-token-group/styles.selectors.js +22 -22
  237. package/flashbar/styles.css.js +50 -50
  238. package/flashbar/styles.scoped.css +152 -148
  239. package/flashbar/styles.selectors.js +50 -50
  240. package/form/styles.css.js +8 -8
  241. package/form/styles.scoped.css +12 -8
  242. package/form/styles.selectors.js +8 -8
  243. package/form-field/styles.css.js +24 -24
  244. package/form-field/styles.scoped.css +42 -38
  245. package/form-field/styles.selectors.js +24 -24
  246. package/grid/styles.css.js +53 -53
  247. package/grid/styles.scoped.css +58 -54
  248. package/grid/styles.selectors.js +53 -53
  249. package/header/styles.css.js +34 -34
  250. package/header/styles.scoped.css +56 -52
  251. package/header/styles.selectors.js +34 -34
  252. package/help-panel/styles.css.js +6 -6
  253. package/help-panel/styles.scoped.css +73 -69
  254. package/help-panel/styles.selectors.js +6 -6
  255. package/hotspot/styles.css.js +7 -7
  256. package/hotspot/styles.scoped.css +13 -9
  257. package/hotspot/styles.selectors.js +7 -7
  258. package/i18n/messages/all.all.js +1 -1
  259. package/i18n/messages/all.all.json +1 -1
  260. package/i18n/messages/all.ar.js +1 -1
  261. package/i18n/messages/all.ar.json +1 -1
  262. package/i18n/messages/all.de.js +1 -1
  263. package/i18n/messages/all.de.json +1 -1
  264. package/i18n/messages/all.en-GB.js +1 -1
  265. package/i18n/messages/all.en-GB.json +1 -1
  266. package/i18n/messages/all.en.js +1 -1
  267. package/i18n/messages/all.en.json +1 -1
  268. package/i18n/messages/all.es.js +1 -1
  269. package/i18n/messages/all.es.json +1 -1
  270. package/i18n/messages/all.fr.js +1 -1
  271. package/i18n/messages/all.fr.json +1 -1
  272. package/i18n/messages/all.id.js +1 -1
  273. package/i18n/messages/all.id.json +1 -1
  274. package/i18n/messages/all.it.js +1 -1
  275. package/i18n/messages/all.it.json +1 -1
  276. package/i18n/messages/all.ja.js +1 -1
  277. package/i18n/messages/all.ja.json +1 -1
  278. package/i18n/messages/all.ko.js +1 -1
  279. package/i18n/messages/all.ko.json +1 -1
  280. package/i18n/messages/all.pt-BR.js +1 -1
  281. package/i18n/messages/all.pt-BR.json +1 -1
  282. package/i18n/messages/all.tr.js +1 -1
  283. package/i18n/messages/all.tr.json +1 -1
  284. package/i18n/messages/all.zh-CN.js +1 -1
  285. package/i18n/messages/all.zh-CN.json +1 -1
  286. package/i18n/messages/all.zh-TW.js +1 -1
  287. package/i18n/messages/all.zh-TW.json +1 -1
  288. package/i18n/messages-types.d.ts +3 -0
  289. package/i18n/messages-types.d.ts.map +1 -1
  290. package/i18n/messages-types.js.map +1 -1
  291. package/icon/styles.css.js +38 -38
  292. package/icon/styles.scoped.css +89 -85
  293. package/icon/styles.selectors.js +38 -38
  294. package/input/styles.css.js +13 -13
  295. package/input/styles.scoped.css +36 -32
  296. package/input/styles.selectors.js +13 -13
  297. package/internal/components/abstract-switch/styles.css.js +13 -13
  298. package/internal/components/abstract-switch/styles.scoped.css +24 -20
  299. package/internal/components/abstract-switch/styles.selectors.js +13 -13
  300. package/internal/components/button-trigger/styles.css.js +13 -13
  301. package/internal/components/button-trigger/styles.scoped.css +31 -27
  302. package/internal/components/button-trigger/styles.selectors.js +13 -13
  303. package/internal/components/chart-filter/styles.css.js +3 -3
  304. package/internal/components/chart-filter/styles.scoped.css +7 -3
  305. package/internal/components/chart-filter/styles.selectors.js +3 -3
  306. package/internal/components/chart-legend/styles.css.js +6 -6
  307. package/internal/components/chart-legend/styles.scoped.css +19 -15
  308. package/internal/components/chart-legend/styles.selectors.js +6 -6
  309. package/internal/components/chart-plot/styles.css.js +5 -5
  310. package/internal/components/chart-plot/styles.scoped.css +9 -5
  311. package/internal/components/chart-plot/styles.selectors.js +5 -5
  312. package/internal/components/chart-popover/styles.css.js +3 -3
  313. package/internal/components/chart-popover/styles.scoped.css +7 -3
  314. package/internal/components/chart-popover/styles.selectors.js +3 -3
  315. package/internal/components/chart-series-details/styles.css.js +20 -20
  316. package/internal/components/chart-series-details/styles.scoped.css +37 -33
  317. package/internal/components/chart-series-details/styles.selectors.js +20 -20
  318. package/internal/components/chart-series-marker/styles.css.js +5 -5
  319. package/internal/components/chart-series-marker/styles.scoped.css +11 -7
  320. package/internal/components/chart-series-marker/styles.selectors.js +5 -5
  321. package/internal/components/chart-wrapper/styles.css.js +9 -9
  322. package/internal/components/chart-wrapper/styles.scoped.css +15 -11
  323. package/internal/components/chart-wrapper/styles.selectors.js +9 -9
  324. package/internal/components/checkbox-icon/styles.css.js +9 -9
  325. package/internal/components/checkbox-icon/styles.scoped.css +13 -9
  326. package/internal/components/checkbox-icon/styles.selectors.js +9 -9
  327. package/internal/components/dnd-container/styles.css.js +1 -1
  328. package/internal/components/dnd-container/styles.scoped.css +8 -4
  329. package/internal/components/dnd-container/styles.selectors.js +1 -1
  330. package/internal/components/dropdown/styles.css.js +20 -20
  331. package/internal/components/dropdown/styles.scoped.css +41 -37
  332. package/internal/components/dropdown/styles.selectors.js +20 -20
  333. package/internal/components/dropdown-footer/styles.css.js +3 -3
  334. package/internal/components/dropdown-footer/styles.scoped.css +7 -3
  335. package/internal/components/dropdown-footer/styles.selectors.js +3 -3
  336. package/internal/components/dropdown-status/styles.css.js +2 -2
  337. package/internal/components/dropdown-status/styles.scoped.css +6 -2
  338. package/internal/components/dropdown-status/styles.selectors.js +2 -2
  339. package/internal/components/handle/styles.css.js +2 -2
  340. package/internal/components/handle/styles.scoped.css +10 -6
  341. package/internal/components/handle/styles.selectors.js +2 -2
  342. package/internal/components/menu-dropdown/index.d.ts.map +1 -1
  343. package/internal/components/menu-dropdown/index.js +2 -1
  344. package/internal/components/menu-dropdown/index.js.map +1 -1
  345. package/internal/components/menu-dropdown/styles.css.js +7 -7
  346. package/internal/components/menu-dropdown/styles.scoped.css +17 -13
  347. package/internal/components/menu-dropdown/styles.selectors.js +7 -7
  348. package/internal/components/option/styles.css.js +17 -17
  349. package/internal/components/option/styles.scoped.css +33 -29
  350. package/internal/components/option/styles.selectors.js +17 -17
  351. package/internal/components/options-list/styles.css.js +3 -3
  352. package/internal/components/options-list/styles.scoped.css +7 -3
  353. package/internal/components/options-list/styles.selectors.js +3 -3
  354. package/internal/components/options-list/utils/use-keyboard.d.ts.map +1 -1
  355. package/internal/components/options-list/utils/use-keyboard.js +13 -16
  356. package/internal/components/options-list/utils/use-keyboard.js.map +1 -1
  357. package/internal/components/panel-resize-handle/styles.css.js +5 -5
  358. package/internal/components/panel-resize-handle/styles.scoped.css +14 -10
  359. package/internal/components/panel-resize-handle/styles.selectors.js +5 -5
  360. package/internal/components/screenreader-only/styles.css.js +1 -1
  361. package/internal/components/screenreader-only/styles.scoped.css +5 -1
  362. package/internal/components/screenreader-only/styles.selectors.js +1 -1
  363. package/internal/components/selectable-item/styles.css.js +16 -16
  364. package/internal/components/selectable-item/styles.scoped.css +33 -29
  365. package/internal/components/selectable-item/styles.selectors.js +16 -16
  366. package/internal/components/token-list/styles.css.js +10 -10
  367. package/internal/components/token-list/styles.scoped.css +28 -24
  368. package/internal/components/token-list/styles.selectors.js +10 -10
  369. package/internal/environment.js +1 -1
  370. package/internal/environment.json +1 -1
  371. package/internal/hooks/use-performance-marks/index.d.ts.map +1 -1
  372. package/internal/hooks/use-performance-marks/index.js +23 -2
  373. package/internal/hooks/use-performance-marks/index.js.map +1 -1
  374. package/internal/manifest.json +1 -1
  375. package/internal/styles/motion/utils.d.ts +2 -0
  376. package/internal/styles/motion/utils.d.ts.map +1 -0
  377. package/internal/styles/motion/utils.js +5 -0
  378. package/internal/styles/motion/utils.js.map +1 -0
  379. package/internal/utils/date-time/format-date-iso.d.ts +2 -1
  380. package/internal/utils/date-time/format-date-iso.d.ts.map +1 -1
  381. package/internal/utils/date-time/format-date-iso.js +6 -2
  382. package/internal/utils/date-time/format-date-iso.js.map +1 -1
  383. package/internal/utils/date-time/format-date-localized.d.ts +2 -1
  384. package/internal/utils/date-time/format-date-localized.d.ts.map +1 -1
  385. package/internal/utils/date-time/format-date-localized.js +9 -2
  386. package/internal/utils/date-time/format-date-localized.js.map +1 -1
  387. package/internal/utils/date-time/format-date-time-with-offset.d.ts.map +1 -1
  388. package/internal/utils/date-time/format-date-time-with-offset.js +4 -3
  389. package/internal/utils/date-time/format-date-time-with-offset.js.map +1 -1
  390. package/internal/utils/date-time/index.d.ts +1 -1
  391. package/internal/utils/date-time/index.d.ts.map +1 -1
  392. package/internal/utils/date-time/index.js +1 -1
  393. package/internal/utils/date-time/index.js.map +1 -1
  394. package/internal/utils/date-time/is-iso-only.d.ts +9 -0
  395. package/internal/utils/date-time/is-iso-only.d.ts.map +1 -0
  396. package/internal/utils/date-time/is-iso-only.js +18 -0
  397. package/internal/utils/date-time/is-iso-only.js.map +1 -0
  398. package/internal/utils/handle-key.d.ts +1 -2
  399. package/internal/utils/handle-key.d.ts.map +1 -1
  400. package/internal/utils/handle-key.js.map +1 -1
  401. package/internal/utils/throttle.d.ts +1 -2
  402. package/internal/utils/throttle.d.ts.map +1 -1
  403. package/internal/utils/throttle.js.map +1 -1
  404. package/key-value-pairs/index.d.ts +1 -1
  405. package/key-value-pairs/index.d.ts.map +1 -1
  406. package/key-value-pairs/index.js +2 -2
  407. package/key-value-pairs/index.js.map +1 -1
  408. package/key-value-pairs/interfaces.d.ts +8 -0
  409. package/key-value-pairs/interfaces.d.ts.map +1 -1
  410. package/key-value-pairs/interfaces.js.map +1 -1
  411. package/key-value-pairs/internal.d.ts.map +1 -1
  412. package/key-value-pairs/internal.js +2 -2
  413. package/key-value-pairs/internal.js.map +1 -1
  414. package/key-value-pairs/styles.css.js +8 -8
  415. package/key-value-pairs/styles.scoped.css +13 -9
  416. package/key-value-pairs/styles.selectors.js +8 -8
  417. package/link/styles.css.js +20 -20
  418. package/link/styles.scoped.css +75 -71
  419. package/link/styles.selectors.js +20 -20
  420. package/live-region/styles.css.js +2 -2
  421. package/live-region/styles.scoped.css +7 -3
  422. package/live-region/styles.selectors.js +2 -2
  423. package/mixed-line-bar-chart/styles.css.js +11 -11
  424. package/mixed-line-bar-chart/styles.scoped.css +23 -19
  425. package/mixed-line-bar-chart/styles.selectors.js +11 -11
  426. package/modal/index.js +1 -1
  427. package/modal/index.js.map +1 -1
  428. package/modal/styles.css.js +23 -23
  429. package/modal/styles.scoped.css +42 -38
  430. package/modal/styles.selectors.js +23 -23
  431. package/multiselect/styles.css.js +3 -3
  432. package/multiselect/styles.scoped.css +7 -3
  433. package/multiselect/styles.selectors.js +3 -3
  434. package/package.json +1 -1
  435. package/pagination/styles.css.js +9 -9
  436. package/pagination/styles.scoped.css +27 -23
  437. package/pagination/styles.selectors.js +9 -9
  438. package/pie-chart/styles.css.js +27 -27
  439. package/pie-chart/styles.scoped.css +52 -48
  440. package/pie-chart/styles.selectors.js +27 -27
  441. package/popover/styles.css.js +53 -53
  442. package/popover/styles.scoped.css +89 -69
  443. package/popover/styles.selectors.js +53 -53
  444. package/progress-bar/styles.css.js +19 -19
  445. package/progress-bar/styles.scoped.css +42 -34
  446. package/progress-bar/styles.selectors.js +19 -19
  447. package/prompt-input/styles.css.js +14 -14
  448. package/prompt-input/styles.scoped.css +43 -39
  449. package/prompt-input/styles.selectors.js +14 -14
  450. package/property-filter/filtering-token/styles.css.js +18 -18
  451. package/property-filter/filtering-token/styles.scoped.css +45 -41
  452. package/property-filter/filtering-token/styles.selectors.js +18 -18
  453. package/property-filter/styles.css.js +39 -39
  454. package/property-filter/styles.scoped.css +45 -41
  455. package/property-filter/styles.selectors.js +39 -39
  456. package/radio-group/styles.css.js +10 -10
  457. package/radio-group/styles.scoped.css +20 -16
  458. package/radio-group/styles.selectors.js +10 -10
  459. package/s3-resource-selector/s3-modal/basic-table.js +1 -0
  460. package/s3-resource-selector/s3-modal/basic-table.js.map +1 -1
  461. package/s3-resource-selector/s3-modal/styles.css.js +3 -3
  462. package/s3-resource-selector/s3-modal/styles.scoped.css +9 -5
  463. package/s3-resource-selector/s3-modal/styles.selectors.js +3 -3
  464. package/segmented-control/styles.css.js +15 -15
  465. package/segmented-control/styles.scoped.css +38 -34
  466. package/segmented-control/styles.selectors.js +15 -15
  467. package/select/parts/filter.d.ts +1 -1
  468. package/select/parts/styles.css.js +21 -21
  469. package/select/parts/styles.scoped.css +26 -22
  470. package/select/parts/styles.selectors.js +21 -21
  471. package/select/styles.css.js +1 -1
  472. package/select/styles.scoped.css +5 -1
  473. package/select/styles.selectors.js +1 -1
  474. package/select/utils/use-select.js +1 -1
  475. package/select/utils/use-select.js.map +1 -1
  476. package/side-navigation/styles.css.js +30 -30
  477. package/side-navigation/styles.scoped.css +50 -46
  478. package/side-navigation/styles.selectors.js +30 -30
  479. package/slider/styles.css.js +26 -26
  480. package/slider/styles.scoped.css +80 -76
  481. package/slider/styles.selectors.js +26 -26
  482. package/space-between/styles.css.js +23 -23
  483. package/space-between/styles.scoped.css +28 -24
  484. package/space-between/styles.selectors.js +23 -23
  485. package/spinner/styles.css.js +13 -13
  486. package/spinner/styles.scoped.css +23 -19
  487. package/spinner/styles.selectors.js +13 -13
  488. package/split-panel/icons/styles.css.js +22 -22
  489. package/split-panel/icons/styles.scoped.css +28 -24
  490. package/split-panel/icons/styles.selectors.js +22 -22
  491. package/split-panel/styles.css.js +26 -26
  492. package/split-panel/styles.scoped.css +47 -43
  493. package/split-panel/styles.selectors.js +26 -26
  494. package/status-indicator/styles.css.js +23 -23
  495. package/status-indicator/styles.scoped.css +33 -29
  496. package/status-indicator/styles.selectors.js +23 -23
  497. package/steps/styles.css.js +6 -6
  498. package/steps/styles.scoped.css +13 -9
  499. package/steps/styles.selectors.js +6 -6
  500. package/table/body-cell/styles.css.js +46 -46
  501. package/table/body-cell/styles.scoped.css +296 -292
  502. package/table/body-cell/styles.selectors.js +46 -46
  503. package/table/expandable-rows/styles.css.js +3 -3
  504. package/table/expandable-rows/styles.scoped.css +17 -13
  505. package/table/expandable-rows/styles.selectors.js +3 -3
  506. package/table/header-cell/styles.css.js +26 -26
  507. package/table/header-cell/styles.scoped.css +69 -65
  508. package/table/header-cell/styles.selectors.js +26 -26
  509. package/table/header-cell/th-element.d.ts +2 -1
  510. package/table/header-cell/th-element.d.ts.map +1 -1
  511. package/table/header-cell/th-element.js +2 -2
  512. package/table/header-cell/th-element.js.map +1 -1
  513. package/table/interfaces.d.ts +14 -3
  514. package/table/interfaces.d.ts.map +1 -1
  515. package/table/interfaces.js.map +1 -1
  516. package/table/internal.d.ts.map +1 -1
  517. package/table/internal.js +13 -4
  518. package/table/internal.js.map +1 -1
  519. package/table/progressive-loading/items-loader.d.ts +8 -2
  520. package/table/progressive-loading/items-loader.d.ts.map +1 -1
  521. package/table/progressive-loading/items-loader.js +11 -5
  522. package/table/progressive-loading/items-loader.js.map +1 -1
  523. package/table/progressive-loading/loader-cell.d.ts +2 -3
  524. package/table/progressive-loading/loader-cell.d.ts.map +1 -1
  525. package/table/progressive-loading/loader-cell.js +2 -2
  526. package/table/progressive-loading/loader-cell.js.map +1 -1
  527. package/table/progressive-loading/progressive-loading-utils.d.ts.map +1 -1
  528. package/table/progressive-loading/progressive-loading-utils.js +2 -2
  529. package/table/progressive-loading/progressive-loading-utils.js.map +1 -1
  530. package/table/resizer/styles.css.js +8 -8
  531. package/table/resizer/styles.scoped.css +19 -15
  532. package/table/resizer/styles.selectors.js +8 -8
  533. package/table/selection/interfaces.d.ts +1 -0
  534. package/table/selection/interfaces.d.ts.map +1 -1
  535. package/table/selection/interfaces.js.map +1 -1
  536. package/table/selection/selection-cell.d.ts.map +1 -1
  537. package/table/selection/selection-cell.js +4 -3
  538. package/table/selection/selection-cell.js.map +1 -1
  539. package/table/selection/styles.css.js +3 -3
  540. package/table/selection/styles.scoped.css +7 -3
  541. package/table/selection/styles.selectors.js +3 -3
  542. package/table/selection/use-selection.js +1 -0
  543. package/table/selection/use-selection.js.map +1 -1
  544. package/table/sticky-scrollbar/styles.css.js +6 -6
  545. package/table/sticky-scrollbar/styles.scoped.css +14 -10
  546. package/table/sticky-scrollbar/styles.selectors.js +6 -6
  547. package/table/styles.css.js +34 -34
  548. package/table/styles.scoped.css +45 -41
  549. package/table/styles.selectors.js +34 -34
  550. package/tabs/styles.css.js +28 -28
  551. package/tabs/styles.scoped.css +57 -49
  552. package/tabs/styles.selectors.js +28 -28
  553. package/tag-editor/styles.css.js +3 -3
  554. package/tag-editor/styles.scoped.css +14 -10
  555. package/tag-editor/styles.selectors.js +3 -3
  556. package/test-utils/dom/button-group/index.d.ts +5 -0
  557. package/test-utils/dom/button-group/index.js +16 -7
  558. package/test-utils/dom/button-group/index.js.map +1 -1
  559. package/test-utils/selectors/button-group/index.d.ts +5 -0
  560. package/test-utils/selectors/button-group/index.js +16 -7
  561. package/test-utils/selectors/button-group/index.js.map +1 -1
  562. package/test-utils/tsconfig.tsbuildinfo +1 -1
  563. package/text-content/styles.css.js +1 -1
  564. package/text-content/styles.scoped.css +64 -60
  565. package/text-content/styles.selectors.js +1 -1
  566. package/text-filter/styles.css.js +3 -3
  567. package/text-filter/styles.scoped.css +7 -3
  568. package/text-filter/styles.selectors.js +3 -3
  569. package/textarea/styles.css.js +5 -5
  570. package/textarea/styles.scoped.css +18 -14
  571. package/textarea/styles.selectors.js +5 -5
  572. package/tiles/styles.css.js +30 -30
  573. package/tiles/styles.scoped.css +77 -73
  574. package/tiles/styles.selectors.js +30 -30
  575. package/toggle/styles.css.js +10 -10
  576. package/toggle/styles.scoped.css +21 -17
  577. package/toggle/styles.selectors.js +10 -10
  578. package/token-group/styles.css.js +8 -8
  579. package/token-group/styles.scoped.css +20 -16
  580. package/token-group/styles.selectors.js +8 -8
  581. package/top-navigation/1.0-beta/styles.css.js +23 -25
  582. package/top-navigation/1.0-beta/styles.scoped.css +40 -66
  583. package/top-navigation/1.0-beta/styles.selectors.js +23 -25
  584. package/top-navigation/parts/overflow-menu/menu-item.d.ts.map +1 -1
  585. package/top-navigation/parts/overflow-menu/menu-item.js +3 -2
  586. package/top-navigation/parts/overflow-menu/menu-item.js.map +1 -1
  587. package/top-navigation/styles.css.js +47 -47
  588. package/top-navigation/styles.scoped.css +78 -85
  589. package/top-navigation/styles.selectors.js +47 -47
  590. package/tutorial-panel/components/tutorial-detail-view/styles.css.js +20 -20
  591. package/tutorial-panel/components/tutorial-detail-view/styles.scoped.css +27 -23
  592. package/tutorial-panel/components/tutorial-detail-view/styles.selectors.js +20 -20
  593. package/tutorial-panel/components/tutorial-list/styles.css.js +18 -18
  594. package/tutorial-panel/components/tutorial-list/styles.scoped.css +33 -29
  595. package/tutorial-panel/components/tutorial-list/styles.selectors.js +18 -18
  596. package/tutorial-panel/styles.css.js +1 -1
  597. package/tutorial-panel/styles.scoped.css +7 -3
  598. package/tutorial-panel/styles.selectors.js +1 -1
  599. package/wizard/styles.css.js +30 -30
  600. package/wizard/styles.scoped.css +62 -58
  601. package/wizard/styles.selectors.js +30 -30
  602. package/calendar/utils/navigation.d.ts.map +0 -1
  603. package/calendar/utils/navigation.js +0 -73
  604. package/calendar/utils/navigation.js.map +0 -1
  605. package/internal/utils/date-time/is-iso-date-only.d.ts +0 -5
  606. package/internal/utils/date-time/is-iso-date-only.d.ts.map +0 -1
  607. package/internal/utils/date-time/is-iso-date-only.js +0 -10
  608. package/internal/utils/date-time/is-iso-date-only.js.map +0 -1
@@ -134,12 +134,16 @@
134
134
  Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
135
135
  SPDX-License-Identifier: Apache-2.0
136
136
  */
137
+ /* stylelint-disable @cloudscape-design/no-motion-outside-of-mixin, selector-combinator-disallowed-list, selector-pseudo-class-no-unknown, selector-class-pattern */
138
+ /* stylelint-enable @cloudscape-design/no-motion-outside-of-mixin, selector-combinator-disallowed-list, selector-pseudo-class-no-unknown, selector-class-pattern */
139
+ /*
140
+ Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
141
+ SPDX-License-Identifier: Apache-2.0
142
+ */
137
143
  /*
138
144
  Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
139
145
  SPDX-License-Identifier: Apache-2.0
140
146
  */
141
- /* stylelint-disable @cloudscape-design/no-motion-outside-of-mixin, selector-combinator-disallowed-list, selector-pseudo-class-no-unknown, selector-class-pattern */
142
- /* stylelint-enable @cloudscape-design/no-motion-outside-of-mixin, selector-combinator-disallowed-list, selector-pseudo-class-no-unknown, selector-class-pattern */
143
147
  /*
144
148
  Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
145
149
  SPDX-License-Identifier: Apache-2.0
@@ -174,7 +178,7 @@
174
178
  */
175
179
  /* Style used for links in slots/components that are text heavy, to help links stand out among
176
180
  surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F73#description */
177
- .awsui_root_vdkpj_1ln06_177:not(#\9) {
181
+ .awsui_root_vdkpj_1lvcy_181:not(#\9) {
178
182
  border-collapse: separate;
179
183
  border-spacing: 0;
180
184
  box-sizing: border-box;
@@ -211,15 +215,15 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
211
215
  gap: var(--space-scaled-xs-26e2du, 8px);
212
216
  }
213
217
 
214
- .awsui_item-wrapper_vdkpj_1ln06_213:not(#\9) {
218
+ .awsui_item-wrapper_vdkpj_1lvcy_217:not(#\9) {
215
219
  display: inline-block;
216
220
  }
217
221
 
218
- .awsui_group_vdkpj_1ln06_217:not(#\9) {
222
+ .awsui_group_vdkpj_1lvcy_221:not(#\9) {
219
223
  display: contents;
220
224
  }
221
225
 
222
- .awsui_divider_vdkpj_1ln06_221:not(#\9) {
226
+ .awsui_divider_vdkpj_1lvcy_225:not(#\9) {
223
227
  background-color: var(--color-border-divider-default-cx07f2, #c6c6cd);
224
228
  inline-size: var(--border-divider-section-width-1061zr, 1px);
225
229
  margin-block: var(--space-static-xs-7sfb63, 8px);
@@ -2,9 +2,9 @@
2
2
  // es-module interop with Babel and Typescript
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  module.exports.default = {
5
- "root": "awsui_root_vdkpj_1ln06_177",
6
- "item-wrapper": "awsui_item-wrapper_vdkpj_1ln06_213",
7
- "group": "awsui_group_vdkpj_1ln06_217",
8
- "divider": "awsui_divider_vdkpj_1ln06_221"
5
+ "root": "awsui_root_vdkpj_1lvcy_181",
6
+ "item-wrapper": "awsui_item-wrapper_vdkpj_1lvcy_217",
7
+ "group": "awsui_group_vdkpj_1lvcy_221",
8
+ "divider": "awsui_divider_vdkpj_1lvcy_225"
9
9
  };
10
10
 
@@ -15,7 +15,7 @@ import { CalendarProps } from '../interfaces';
15
15
  * - (keyboard navigation) Safari/Chrome+VO - dates are not announced as interactive (clickable or selectable);
16
16
  * - (keyboard navigation) Safari/Chrome+VO - date announcements are not interruptive and can be missed if navigating fast.
17
17
  */
18
- interface GridProps {
18
+ export interface GridProps {
19
19
  isDateEnabled: DatePickerProps.IsDateEnabledFunction;
20
20
  dateDisabledReason: CalendarProps.DateDisabledReasonFunction;
21
21
  focusedDate: Date | null;
@@ -34,5 +34,4 @@ interface GridProps {
34
34
  onGridKeyDownHandler: (event: React.KeyboardEvent<HTMLElement>) => void;
35
35
  }
36
36
  export default function Grid({ isDateEnabled, dateDisabledReason, focusedDate, focusableDate, onSelectDate, selectedDate, ariaLabelledby, header, rows, isCurrentPage, renderDate, renderDateAnnouncement, isSameDate, onGridKeyDownHandler, }: GridProps): JSX.Element;
37
- export {};
38
37
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/calendar/grid/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAyD,MAAM,OAAO,CAAC;AAG9E,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAO/D,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAI9C;;;;;;;;;;;;;GAaG;AAEH,UAAU,SAAS;IACjB,aAAa,EAAE,eAAe,CAAC,qBAAqB,CAAC;IACrD,kBAAkB,EAAE,aAAa,CAAC,0BAA0B,CAAC;IAC7D,WAAW,EAAE,IAAI,GAAG,IAAI,CAAC;IACzB,aAAa,EAAE,IAAI,GAAG,IAAI,CAAC;IAC3B,YAAY,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IACnC,WAAW,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,KAAK,IAAI,CAAC;IACzC,YAAY,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IACnC,YAAY,EAAE,IAAI,GAAG,IAAI,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,IAAI,EAAE,aAAa,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;IACzC,aAAa,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC;IACvC,UAAU,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,MAAM,CAAC;IACnC,sBAAsB,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,KAAK,MAAM,CAAC;IACzE,UAAU,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,KAAK,OAAO,CAAC;IACpD,oBAAoB,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,aAAa,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;CACzE;AAsCD,MAAM,CAAC,OAAO,UAAU,IAAI,CAAC,EAC3B,aAAa,EACb,kBAAkB,EAClB,WAAW,EACX,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,MAAM,EACN,IAAI,EACJ,aAAa,EACb,UAAU,EACV,sBAAsB,EACtB,UAAU,EACV,oBAAoB,GACrB,EAAE,SAAS,eA2EX"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/calendar/grid/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAyD,MAAM,OAAO,CAAC;AAG9E,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAO/D,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAI9C;;;;;;;;;;;;;GAaG;AAEH,MAAM,WAAW,SAAS;IACxB,aAAa,EAAE,eAAe,CAAC,qBAAqB,CAAC;IACrD,kBAAkB,EAAE,aAAa,CAAC,0BAA0B,CAAC;IAC7D,WAAW,EAAE,IAAI,GAAG,IAAI,CAAC;IACzB,aAAa,EAAE,IAAI,GAAG,IAAI,CAAC;IAC3B,YAAY,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IACnC,WAAW,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,KAAK,IAAI,CAAC;IACzC,YAAY,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IACnC,YAAY,EAAE,IAAI,GAAG,IAAI,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,IAAI,EAAE,aAAa,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;IACzC,aAAa,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC;IACvC,UAAU,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,MAAM,CAAC;IACnC,sBAAsB,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,KAAK,MAAM,CAAC;IACzE,UAAU,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,KAAK,OAAO,CAAC;IACpD,oBAAoB,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,aAAa,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;CACzE;AAsCD,MAAM,CAAC,OAAO,UAAU,IAAI,CAAC,EAC3B,aAAa,EACb,kBAAkB,EAClB,WAAW,EACX,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,MAAM,EACN,IAAI,EACJ,aAAa,EACb,UAAU,EACV,sBAAsB,EACtB,UAAU,EACV,oBAAoB,GACrB,EAAE,SAAS,eA2EX"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/calendar/grid/index.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React, { forwardRef, TdHTMLAttributes, useRef, useState } from 'react';\nimport clsx from 'clsx';\n\nimport { DatePickerProps } from '../../date-picker/interfaces';\nimport ScreenreaderOnly from '../../internal/components/screenreader-only/index.js';\nimport Tooltip from '../../internal/components/tooltip';\nimport { useEffectOnUpdate } from '../../internal/hooks/use-effect-on-update.js';\nimport useHiddenDescription from '../../internal/hooks/use-hidden-description';\nimport { useMergeRefs } from '../../internal/hooks/use-merge-refs';\nimport { applyDisplayName } from '../../internal/utils/apply-display-name';\nimport { CalendarProps } from '../interfaces';\n\nimport styles from '../styles.css.js';\n\n/**\n * Calendar grid supports two mechanisms of keyboard navigation:\n * - Native screen-reader table navigation (semantic table markup);\n * - Keyboard arrow-keys navigation (a custom key-down handler).\n *\n * The implementation largely follows the w3 example (https://www.w3.org/WAI/ARIA/apg/example-index/dialog-modal/datepicker-dialog) and shares the following issues:\n * - (table navigation) Chrome+VO - weekday is announced twice when navigating to the calendar's header;\n * - (table navigation) Safari+VO - \"dimmed\" state is announced twice;\n * - (table navigation) Firefox/Chrome+NVDA - cannot use table navigation if any cell has a focus;\n * - (keyboard navigation) Firefox+NVDA - every date is announced as \"not selected\";\n * - (keyboard navigation) Safari/Chrome+VO - weekdays are not announced;\n * - (keyboard navigation) Safari/Chrome+VO - dates are not announced as interactive (clickable or selectable);\n * - (keyboard navigation) Safari/Chrome+VO - date announcements are not interruptive and can be missed if navigating fast.\n */\n\ninterface GridProps {\n isDateEnabled: DatePickerProps.IsDateEnabledFunction;\n dateDisabledReason: CalendarProps.DateDisabledReasonFunction;\n focusedDate: Date | null;\n focusableDate: Date | null;\n onSelectDate: (date: Date) => void;\n onFocusDate: (date: null | Date) => void;\n onChangePage: (date: Date) => void;\n selectedDate: Date | null;\n ariaLabelledby: string;\n header?: React.ReactNode;\n rows: ReadonlyArray<ReadonlyArray<Date>>;\n isCurrentPage: (date: Date) => boolean;\n renderDate: (date: Date) => string;\n renderDateAnnouncement: (date: Date, isOnCurrentDate: boolean) => string;\n isSameDate: (date: Date, baseDate: Date) => boolean;\n onGridKeyDownHandler: (event: React.KeyboardEvent<HTMLElement>) => void;\n}\n\ninterface GridCellProps extends TdHTMLAttributes<HTMLTableCellElement> {\n disabledReason?: string;\n}\n\nconst GridCell = forwardRef((props: GridCellProps, focusedDateRef: React.Ref<HTMLTableCellElement>) => {\n const { disabledReason, ...rest } = props;\n const isDisabledWithReason = !!disabledReason;\n const { targetProps, descriptionEl } = useHiddenDescription(disabledReason);\n const ref = useRef<HTMLTableCellElement>(null);\n const [showTooltip, setShowTooltip] = useState(false);\n\n return (\n <td\n ref={useMergeRefs(focusedDateRef, ref)}\n {...(isDisabledWithReason ? targetProps : {})}\n {...rest}\n onFocus={() => (isDisabledWithReason ? setShowTooltip(true) : undefined)}\n onBlur={() => (isDisabledWithReason ? setShowTooltip(false) : undefined)}\n onMouseEnter={() => (isDisabledWithReason ? setShowTooltip(true) : undefined)}\n onMouseLeave={() => (isDisabledWithReason ? setShowTooltip(false) : undefined)}\n >\n {props.children}\n {isDisabledWithReason && (\n <>\n {descriptionEl}\n {showTooltip && (\n <Tooltip className={styles['disabled-reason-tooltip']} trackRef={ref} value={disabledReason!} />\n )}\n </>\n )}\n </td>\n );\n});\n\napplyDisplayName(GridCell, 'GridCell');\n\nexport default function Grid({\n isDateEnabled,\n dateDisabledReason,\n focusedDate,\n focusableDate,\n onSelectDate,\n selectedDate,\n ariaLabelledby,\n header,\n rows,\n isCurrentPage,\n renderDate,\n renderDateAnnouncement,\n isSameDate,\n onGridKeyDownHandler,\n}: GridProps) {\n const focusedDateRef = useRef<HTMLTableCellElement>(null);\n\n // The focused date changes as a feedback to keyboard navigation in the grid.\n // Once changed, the corresponding date button needs to receive the actual focus.\n useEffectOnUpdate(() => {\n if (focusedDate && focusedDateRef.current) {\n (focusedDateRef.current as HTMLDivElement).focus();\n }\n }, [focusedDate]);\n\n const rowLength = rows[0].length;\n\n const denseGrid = rowLength > 3;\n\n return (\n <table\n role=\"grid\"\n className={clsx(styles['calendar-grid'], denseGrid && styles['calendar-grid-dense'])}\n aria-labelledby={ariaLabelledby}\n >\n {header}\n <tbody onKeyDown={onGridKeyDownHandler}>\n {rows.map((row, rowIndex) => (\n <tr key={rowIndex} className={styles['calendar-row']}>\n {row.map((date, dateIndex) => {\n const isFocusable = !!focusableDate && isSameDate(date, focusableDate);\n const isSelected = !!selectedDate && isSameDate(date, selectedDate);\n const isEnabled = !isDateEnabled || isDateEnabled(date);\n const disabledReason = dateDisabledReason(date);\n const isDisabledWithReason = !isEnabled && !!disabledReason;\n const isCurrentDate = isSameDate(date, new Date());\n\n // Can't be focused.\n let tabIndex = undefined;\n if (isFocusable && (isEnabled || isDisabledWithReason)) {\n // Next focus target.\n tabIndex = 0;\n } else if (isEnabled || isDisabledWithReason) {\n // Can be focused programmatically.\n tabIndex = -1;\n }\n\n return (\n <GridCell\n key={`${rowIndex}:${dateIndex}`}\n ref={tabIndex === 0 ? focusedDateRef : undefined}\n tabIndex={tabIndex}\n aria-current={isCurrentDate ? 'date' : undefined}\n aria-selected={isEnabled ? isSelected : undefined}\n aria-disabled={!isEnabled}\n // Do not attach click event when the date is disabled, otherwise VO+safari announces clickable\n onClick={isEnabled ? () => onSelectDate(date) : undefined}\n className={clsx(styles['calendar-grid-cell'], styles['calendar-date'], {\n [styles['calendar-date-current-page']]: isCurrentPage(date),\n [styles['calendar-date-enabled']]: isEnabled,\n [styles['calendar-date-selected']]: isSelected,\n [styles['calendar-date-current']]: isCurrentDate,\n [styles['calendar-date-dense']]: denseGrid,\n })}\n disabledReason={isDisabledWithReason ? disabledReason : undefined}\n >\n <span className={styles['date-inner']} aria-hidden=\"true\">\n {renderDate(date)}\n </span>\n {/* Screen-reader announcement for the focused date. */}\n <ScreenreaderOnly>{renderDateAnnouncement(date, isCurrentDate)}</ScreenreaderOnly>\n </GridCell>\n );\n })}\n </tr>\n ))}\n </tbody>\n </table>\n );\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/calendar/grid/index.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React, { forwardRef, TdHTMLAttributes, useRef, useState } from 'react';\nimport clsx from 'clsx';\n\nimport { DatePickerProps } from '../../date-picker/interfaces';\nimport ScreenreaderOnly from '../../internal/components/screenreader-only/index.js';\nimport Tooltip from '../../internal/components/tooltip';\nimport { useEffectOnUpdate } from '../../internal/hooks/use-effect-on-update.js';\nimport useHiddenDescription from '../../internal/hooks/use-hidden-description';\nimport { useMergeRefs } from '../../internal/hooks/use-merge-refs';\nimport { applyDisplayName } from '../../internal/utils/apply-display-name';\nimport { CalendarProps } from '../interfaces';\n\nimport styles from '../styles.css.js';\n\n/**\n * Calendar grid supports two mechanisms of keyboard navigation:\n * - Native screen-reader table navigation (semantic table markup);\n * - Keyboard arrow-keys navigation (a custom key-down handler).\n *\n * The implementation largely follows the w3 example (https://www.w3.org/WAI/ARIA/apg/example-index/dialog-modal/datepicker-dialog) and shares the following issues:\n * - (table navigation) Chrome+VO - weekday is announced twice when navigating to the calendar's header;\n * - (table navigation) Safari+VO - \"dimmed\" state is announced twice;\n * - (table navigation) Firefox/Chrome+NVDA - cannot use table navigation if any cell has a focus;\n * - (keyboard navigation) Firefox+NVDA - every date is announced as \"not selected\";\n * - (keyboard navigation) Safari/Chrome+VO - weekdays are not announced;\n * - (keyboard navigation) Safari/Chrome+VO - dates are not announced as interactive (clickable or selectable);\n * - (keyboard navigation) Safari/Chrome+VO - date announcements are not interruptive and can be missed if navigating fast.\n */\n\nexport interface GridProps {\n isDateEnabled: DatePickerProps.IsDateEnabledFunction;\n dateDisabledReason: CalendarProps.DateDisabledReasonFunction;\n focusedDate: Date | null;\n focusableDate: Date | null;\n onSelectDate: (date: Date) => void;\n onFocusDate: (date: null | Date) => void;\n onChangePage: (date: Date) => void;\n selectedDate: Date | null;\n ariaLabelledby: string;\n header?: React.ReactNode;\n rows: ReadonlyArray<ReadonlyArray<Date>>;\n isCurrentPage: (date: Date) => boolean;\n renderDate: (date: Date) => string;\n renderDateAnnouncement: (date: Date, isOnCurrentDate: boolean) => string;\n isSameDate: (date: Date, baseDate: Date) => boolean;\n onGridKeyDownHandler: (event: React.KeyboardEvent<HTMLElement>) => void;\n}\n\ninterface GridCellProps extends TdHTMLAttributes<HTMLTableCellElement> {\n disabledReason?: string;\n}\n\nconst GridCell = forwardRef((props: GridCellProps, focusedDateRef: React.Ref<HTMLTableCellElement>) => {\n const { disabledReason, ...rest } = props;\n const isDisabledWithReason = !!disabledReason;\n const { targetProps, descriptionEl } = useHiddenDescription(disabledReason);\n const ref = useRef<HTMLTableCellElement>(null);\n const [showTooltip, setShowTooltip] = useState(false);\n\n return (\n <td\n ref={useMergeRefs(focusedDateRef, ref)}\n {...(isDisabledWithReason ? targetProps : {})}\n {...rest}\n onFocus={() => (isDisabledWithReason ? setShowTooltip(true) : undefined)}\n onBlur={() => (isDisabledWithReason ? setShowTooltip(false) : undefined)}\n onMouseEnter={() => (isDisabledWithReason ? setShowTooltip(true) : undefined)}\n onMouseLeave={() => (isDisabledWithReason ? setShowTooltip(false) : undefined)}\n >\n {props.children}\n {isDisabledWithReason && (\n <>\n {descriptionEl}\n {showTooltip && (\n <Tooltip className={styles['disabled-reason-tooltip']} trackRef={ref} value={disabledReason!} />\n )}\n </>\n )}\n </td>\n );\n});\n\napplyDisplayName(GridCell, 'GridCell');\n\nexport default function Grid({\n isDateEnabled,\n dateDisabledReason,\n focusedDate,\n focusableDate,\n onSelectDate,\n selectedDate,\n ariaLabelledby,\n header,\n rows,\n isCurrentPage,\n renderDate,\n renderDateAnnouncement,\n isSameDate,\n onGridKeyDownHandler,\n}: GridProps) {\n const focusedDateRef = useRef<HTMLTableCellElement>(null);\n\n // The focused date changes as a feedback to keyboard navigation in the grid.\n // Once changed, the corresponding date button needs to receive the actual focus.\n useEffectOnUpdate(() => {\n if (focusedDate && focusedDateRef.current) {\n (focusedDateRef.current as HTMLDivElement).focus();\n }\n }, [focusedDate]);\n\n const rowLength = rows[0].length;\n\n const denseGrid = rowLength > 3;\n\n return (\n <table\n role=\"grid\"\n className={clsx(styles['calendar-grid'], denseGrid && styles['calendar-grid-dense'])}\n aria-labelledby={ariaLabelledby}\n >\n {header}\n <tbody onKeyDown={onGridKeyDownHandler}>\n {rows.map((row, rowIndex) => (\n <tr key={rowIndex} className={styles['calendar-row']}>\n {row.map((date, dateIndex) => {\n const isFocusable = !!focusableDate && isSameDate(date, focusableDate);\n const isSelected = !!selectedDate && isSameDate(date, selectedDate);\n const isEnabled = !isDateEnabled || isDateEnabled(date);\n const disabledReason = dateDisabledReason(date);\n const isDisabledWithReason = !isEnabled && !!disabledReason;\n const isCurrentDate = isSameDate(date, new Date());\n\n // Can't be focused.\n let tabIndex = undefined;\n if (isFocusable && (isEnabled || isDisabledWithReason)) {\n // Next focus target.\n tabIndex = 0;\n } else if (isEnabled || isDisabledWithReason) {\n // Can be focused programmatically.\n tabIndex = -1;\n }\n\n return (\n <GridCell\n key={`${rowIndex}:${dateIndex}`}\n ref={tabIndex === 0 ? focusedDateRef : undefined}\n tabIndex={tabIndex}\n aria-current={isCurrentDate ? 'date' : undefined}\n aria-selected={isEnabled ? isSelected : undefined}\n aria-disabled={!isEnabled}\n // Do not attach click event when the date is disabled, otherwise VO+safari announces clickable\n onClick={isEnabled ? () => onSelectDate(date) : undefined}\n className={clsx(styles['calendar-grid-cell'], styles['calendar-date'], {\n [styles['calendar-date-current-page']]: isCurrentPage(date),\n [styles['calendar-date-enabled']]: isEnabled,\n [styles['calendar-date-selected']]: isSelected,\n [styles['calendar-date-current']]: isCurrentDate,\n [styles['calendar-date-dense']]: denseGrid,\n })}\n disabledReason={isDisabledWithReason ? disabledReason : undefined}\n >\n <span className={styles['date-inner']} aria-hidden=\"true\">\n {renderDate(date)}\n </span>\n {/* Screen-reader announcement for the focused date. */}\n <ScreenreaderOnly>{renderDateAnnouncement(date, isCurrentDate)}</ScreenreaderOnly>\n </GridCell>\n );\n })}\n </tr>\n ))}\n </tbody>\n </table>\n );\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"use-calendar-grid-keyboard-navigation.d.ts","sourceRoot":"","sources":["../../../../src/calendar/grid/use-calendar-grid-keyboard-navigation.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAY9C,MAAM,CAAC,OAAO,UAAU,iCAAiC,CAAC,EACxD,QAAQ,EACR,aAAa,EACb,WAAW,EACX,aAAa,EACb,eAAe,EACf,YAAY,EACZ,WAAW,EACX,YAAY,GACb,EAAE;IACD,QAAQ,EAAE,IAAI,CAAC;IACf,aAAa,EAAE,IAAI,GAAG,IAAI,CAAC;IAC3B,WAAW,EAAE,aAAa,CAAC,WAAW,CAAC;IAEvC,aAAa,EAAE,aAAa,CAAC,qBAAqB,CAAC;IAEnD,eAAe,EAAE,aAAa,CAAC,qBAAqB,CAAC;IACrD,YAAY,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IACnC,WAAW,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,KAAK,IAAI,CAAC;IACzC,YAAY,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;CACpC,WAUsC,mBAAmB,CAAC,WAAW,CAAC,UAqCtE"}
1
+ {"version":3,"file":"use-calendar-grid-keyboard-navigation.d.ts","sourceRoot":"","sources":["../../../../src/calendar/grid/use-calendar-grid-keyboard-navigation.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAI9C,MAAM,CAAC,OAAO,UAAU,iCAAiC,CAAC,EACxD,QAAQ,EACR,aAAa,EACb,WAAW,EACX,aAAa,EACb,eAAe,EACf,YAAY,EACZ,WAAW,EACX,YAAY,GACb,EAAE;IACD,QAAQ,EAAE,IAAI,CAAC;IACf,aAAa,EAAE,IAAI,GAAG,IAAI,CAAC;IAC3B,WAAW,EAAE,aAAa,CAAC,WAAW,CAAC;IAEvC,aAAa,EAAE,aAAa,CAAC,qBAAqB,CAAC;IAEnD,eAAe,EAAE,aAAa,CAAC,qBAAqB,CAAC;IACrD,YAAY,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IACnC,WAAW,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,KAAK,IAAI,CAAC;IACzC,YAAY,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;CACpC,WAUsC,mBAAmB,CAAC,WAAW,CAAC,UAqCtE"}
@@ -3,7 +3,8 @@
3
3
  import { isSameMonth, isSameYear } from 'date-fns';
4
4
  import { KeyCode } from '../../internal/keycode';
5
5
  import handleKey from '../../internal/utils/handle-key';
6
- import { moveMonthDown, moveMonthUp, moveNextDay, moveNextMonth, moveNextWeek, movePrevDay, movePrevMonth, movePrevWeek, } from '../utils/navigation';
6
+ import { moveNextDay, moveNextWeek, movePrevDay, movePrevWeek } from '../utils/navigation-day';
7
+ import { moveMonthDown, moveMonthUp, moveNextMonth, movePrevMonth } from '../utils/navigation-month';
7
8
  export default function useCalendarGridKeyboardNavigation({ baseDate, focusableDate, granularity, isDateEnabled, isDateFocusable, onChangePage, onFocusDate, onSelectDate, }) {
8
9
  const isMonthPicker = granularity === 'month';
9
10
  const moveDown = isMonthPicker ? moveMonthDown : moveNextWeek;
@@ -1 +1 @@
1
- {"version":3,"file":"use-calendar-grid-keyboard-navigation.js","sourceRoot":"","sources":["../../../../src/calendar/grid/use-calendar-grid-keyboard-navigation.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AAGtC,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEnD,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,SAAS,MAAM,iCAAiC,CAAC;AAExD,OAAO,EACL,aAAa,EACb,WAAW,EACX,WAAW,EACX,aAAa,EACb,YAAY,EACZ,WAAW,EACX,aAAa,EACb,YAAY,GACb,MAAM,qBAAqB,CAAC;AAE7B,MAAM,CAAC,OAAO,UAAU,iCAAiC,CAAC,EACxD,QAAQ,EACR,aAAa,EACb,WAAW,EACX,aAAa,EACb,eAAe,EACf,YAAY,EACZ,WAAW,EACX,YAAY,GAYb;IACC,MAAM,aAAa,GAAG,WAAW,KAAK,OAAO,CAAC;IAE9C,MAAM,QAAQ,GAAG,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,YAAY,CAAC;IAC9D,MAAM,QAAQ,GAAG,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC;IAC7D,MAAM,SAAS,GAAG,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC;IAC9D,MAAM,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,YAAY,CAAC;IAE1D,MAAM,UAAU,GAAG,aAAa,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC;IAE5D,MAAM,oBAAoB,GAAG,CAAC,KAAuC,EAAE,EAAE;QACvE,IAAI,gBAAgB,CAAC;QAErB,MAAM,IAAI,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QAEnG,IAAI,aAAa,KAAK,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE;YAChE,OAAO;SACR;QAED,KAAK,CAAC,cAAc,EAAE,CAAC;QAEvB,SAAS,CAAC,KAAK,EAAE;YACf,UAAU,EAAE,GAAG,EAAE;gBACf,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,EAAE;oBACjC,OAAO;iBACR;gBAED,WAAW,CAAC,IAAI,CAAC,CAAC;gBAClB,YAAY,CAAC,aAAa,CAAC,CAAC;YAC9B,CAAC;YACD,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC,gBAAgB,GAAG,QAAQ,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC;YAC/E,YAAY,EAAE,GAAG,EAAE,CAAC,CAAC,gBAAgB,GAAG,MAAM,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC;YAC/E,aAAa,EAAE,GAAG,EAAE,CAAC,CAAC,gBAAgB,GAAG,QAAQ,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC;YAClF,WAAW,EAAE,GAAG,EAAE,CAAC,CAAC,gBAAgB,GAAG,SAAS,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC;SAClF,CAAC,CAAC;QAEH,IAAI,CAAC,gBAAgB,EAAE;YACrB,OAAO;SACR;QAED,IAAI,CAAC,UAAU,CAAC,gBAAgB,EAAE,QAAQ,CAAC,EAAE;YAC3C,YAAY,CAAC,gBAAgB,CAAC,CAAC;SAChC;QACD,WAAW,CAAC,gBAAgB,CAAC,CAAC;IAChC,CAAC,CAAC;IAEF,OAAO,oBAAoB,CAAC;AAC9B,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport React from 'react';\nimport { isSameMonth, isSameYear } from 'date-fns';\n\nimport { KeyCode } from '../../internal/keycode';\nimport handleKey from '../../internal/utils/handle-key';\nimport { CalendarProps } from '../interfaces';\nimport {\n moveMonthDown,\n moveMonthUp,\n moveNextDay,\n moveNextMonth,\n moveNextWeek,\n movePrevDay,\n movePrevMonth,\n movePrevWeek,\n} from '../utils/navigation';\n\nexport default function useCalendarGridKeyboardNavigation({\n baseDate,\n focusableDate,\n granularity,\n isDateEnabled,\n isDateFocusable,\n onChangePage,\n onFocusDate,\n onSelectDate,\n}: {\n baseDate: Date;\n focusableDate: Date | null;\n granularity: CalendarProps.Granularity;\n // determines if a date could be selected by user actions\n isDateEnabled: CalendarProps.IsDateEnabledFunction;\n // a date could be not enabled (isDateEnabled returns false), but focusable if it's disabled with reason\n isDateFocusable: CalendarProps.IsDateEnabledFunction;\n onChangePage: (date: Date) => void;\n onFocusDate: (date: null | Date) => void;\n onSelectDate: (date: Date) => void;\n}) {\n const isMonthPicker = granularity === 'month';\n\n const moveDown = isMonthPicker ? moveMonthDown : moveNextWeek;\n const moveLeft = isMonthPicker ? movePrevMonth : movePrevDay;\n const moveRight = isMonthPicker ? moveNextMonth : moveNextDay;\n const moveUp = isMonthPicker ? moveMonthUp : movePrevWeek;\n\n const isSamePage = isMonthPicker ? isSameYear : isSameMonth;\n\n const onGridKeyDownHandler = (event: React.KeyboardEvent<HTMLElement>) => {\n let updatedFocusDate;\n\n const keys = [KeyCode.up, KeyCode.down, KeyCode.left, KeyCode.right, KeyCode.space, KeyCode.enter];\n\n if (focusableDate === null || keys.indexOf(event.keyCode) === -1) {\n return;\n }\n\n event.preventDefault();\n\n handleKey(event, {\n onActivate: () => {\n if (!isDateEnabled(focusableDate)) {\n return;\n }\n\n onFocusDate(null);\n onSelectDate(focusableDate);\n },\n onBlockEnd: () => (updatedFocusDate = moveDown(focusableDate, isDateFocusable)),\n onBlockStart: () => (updatedFocusDate = moveUp(focusableDate, isDateFocusable)),\n onInlineStart: () => (updatedFocusDate = moveLeft(focusableDate, isDateFocusable)),\n onInlineEnd: () => (updatedFocusDate = moveRight(focusableDate, isDateFocusable)),\n });\n\n if (!updatedFocusDate) {\n return;\n }\n\n if (!isSamePage(updatedFocusDate, baseDate)) {\n onChangePage(updatedFocusDate);\n }\n onFocusDate(updatedFocusDate);\n };\n\n return onGridKeyDownHandler;\n}\n"]}
1
+ {"version":3,"file":"use-calendar-grid-keyboard-navigation.js","sourceRoot":"","sources":["../../../../src/calendar/grid/use-calendar-grid-keyboard-navigation.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AAGtC,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEnD,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,SAAS,MAAM,iCAAiC,CAAC;AAExD,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC/F,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAErG,MAAM,CAAC,OAAO,UAAU,iCAAiC,CAAC,EACxD,QAAQ,EACR,aAAa,EACb,WAAW,EACX,aAAa,EACb,eAAe,EACf,YAAY,EACZ,WAAW,EACX,YAAY,GAYb;IACC,MAAM,aAAa,GAAG,WAAW,KAAK,OAAO,CAAC;IAE9C,MAAM,QAAQ,GAAG,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,YAAY,CAAC;IAC9D,MAAM,QAAQ,GAAG,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC;IAC7D,MAAM,SAAS,GAAG,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC;IAC9D,MAAM,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,YAAY,CAAC;IAE1D,MAAM,UAAU,GAAG,aAAa,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC;IAE5D,MAAM,oBAAoB,GAAG,CAAC,KAAuC,EAAE,EAAE;QACvE,IAAI,gBAAgB,CAAC;QAErB,MAAM,IAAI,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QAEnG,IAAI,aAAa,KAAK,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE;YAChE,OAAO;SACR;QAED,KAAK,CAAC,cAAc,EAAE,CAAC;QAEvB,SAAS,CAAC,KAAK,EAAE;YACf,UAAU,EAAE,GAAG,EAAE;gBACf,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,EAAE;oBACjC,OAAO;iBACR;gBAED,WAAW,CAAC,IAAI,CAAC,CAAC;gBAClB,YAAY,CAAC,aAAa,CAAC,CAAC;YAC9B,CAAC;YACD,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC,gBAAgB,GAAG,QAAQ,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC;YAC/E,YAAY,EAAE,GAAG,EAAE,CAAC,CAAC,gBAAgB,GAAG,MAAM,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC;YAC/E,aAAa,EAAE,GAAG,EAAE,CAAC,CAAC,gBAAgB,GAAG,QAAQ,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC;YAClF,WAAW,EAAE,GAAG,EAAE,CAAC,CAAC,gBAAgB,GAAG,SAAS,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC;SAClF,CAAC,CAAC;QAEH,IAAI,CAAC,gBAAgB,EAAE;YACrB,OAAO;SACR;QAED,IAAI,CAAC,UAAU,CAAC,gBAAgB,EAAE,QAAQ,CAAC,EAAE;YAC3C,YAAY,CAAC,gBAAgB,CAAC,CAAC;SAChC;QACD,WAAW,CAAC,gBAAgB,CAAC,CAAC;IAChC,CAAC,CAAC;IAEF,OAAO,oBAAoB,CAAC;AAC9B,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport React from 'react';\nimport { isSameMonth, isSameYear } from 'date-fns';\n\nimport { KeyCode } from '../../internal/keycode';\nimport handleKey from '../../internal/utils/handle-key';\nimport { CalendarProps } from '../interfaces';\nimport { moveNextDay, moveNextWeek, movePrevDay, movePrevWeek } from '../utils/navigation-day';\nimport { moveMonthDown, moveMonthUp, moveNextMonth, movePrevMonth } from '../utils/navigation-month';\n\nexport default function useCalendarGridKeyboardNavigation({\n baseDate,\n focusableDate,\n granularity,\n isDateEnabled,\n isDateFocusable,\n onChangePage,\n onFocusDate,\n onSelectDate,\n}: {\n baseDate: Date;\n focusableDate: Date | null;\n granularity: CalendarProps.Granularity;\n // determines if a date could be selected by user actions\n isDateEnabled: CalendarProps.IsDateEnabledFunction;\n // a date could be not enabled (isDateEnabled returns false), but focusable if it's disabled with reason\n isDateFocusable: CalendarProps.IsDateEnabledFunction;\n onChangePage: (date: Date) => void;\n onFocusDate: (date: null | Date) => void;\n onSelectDate: (date: Date) => void;\n}) {\n const isMonthPicker = granularity === 'month';\n\n const moveDown = isMonthPicker ? moveMonthDown : moveNextWeek;\n const moveLeft = isMonthPicker ? movePrevMonth : movePrevDay;\n const moveRight = isMonthPicker ? moveNextMonth : moveNextDay;\n const moveUp = isMonthPicker ? moveMonthUp : movePrevWeek;\n\n const isSamePage = isMonthPicker ? isSameYear : isSameMonth;\n\n const onGridKeyDownHandler = (event: React.KeyboardEvent<HTMLElement>) => {\n let updatedFocusDate;\n\n const keys = [KeyCode.up, KeyCode.down, KeyCode.left, KeyCode.right, KeyCode.space, KeyCode.enter];\n\n if (focusableDate === null || keys.indexOf(event.keyCode) === -1) {\n return;\n }\n\n event.preventDefault();\n\n handleKey(event, {\n onActivate: () => {\n if (!isDateEnabled(focusableDate)) {\n return;\n }\n\n onFocusDate(null);\n onSelectDate(focusableDate);\n },\n onBlockEnd: () => (updatedFocusDate = moveDown(focusableDate, isDateFocusable)),\n onBlockStart: () => (updatedFocusDate = moveUp(focusableDate, isDateFocusable)),\n onInlineStart: () => (updatedFocusDate = moveLeft(focusableDate, isDateFocusable)),\n onInlineEnd: () => (updatedFocusDate = moveRight(focusableDate, isDateFocusable)),\n });\n\n if (!updatedFocusDate) {\n return;\n }\n\n if (!isSamePage(updatedFocusDate, baseDate)) {\n onChangePage(updatedFocusDate);\n }\n onFocusDate(updatedFocusDate);\n };\n\n return onGridKeyDownHandler;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../../src/calendar/internal.tsx"],"names":[],"mappings":";AAUA,OAAO,EAAE,0BAA0B,EAAE,MAAM,+CAA+C,CAAC;AAU3F,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAMhD,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,EAC/B,KAAK,EACL,MAAW,EACX,WAAW,EACX,aAA0B,EAC1B,kBAA6B,EAC7B,SAAS,EACT,cAAc,EACd,eAAe,EACf,QAAQ,EACR,iBAAiB,EACjB,WAAW,EACX,WAAmB,EACnB,sBAAsB,EACtB,kBAAkB,EAClB,cAAc,EACd,GAAG,IAAI,EACR,EAAE,aAAa,GAAG,0BAA0B,eAoJ5C"}
1
+ {"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../../src/calendar/internal.tsx"],"names":[],"mappings":";AAUA,OAAO,EAAE,0BAA0B,EAAE,MAAM,+CAA+C,CAAC;AAU3F,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAOhD,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,EAC/B,KAAK,EACL,MAAW,EACX,WAAW,EACX,aAA0B,EAC1B,kBAA6B,EAC7B,SAAS,EACT,cAAc,EACd,eAAe,EACf,QAAQ,EACR,iBAAiB,EACjB,WAAW,EACX,WAAmB,EACnB,sBAAsB,EACtB,kBAAkB,EAClB,cAAc,EACd,GAAG,IAAI,EACR,EAAE,aAAa,GAAG,0BAA0B,eAoJ5C"}
@@ -17,7 +17,8 @@ import useCalendarGridKeyboardNavigation from './grid/use-calendar-grid-keyboard
17
17
  import useCalendarGridRows from './grid/use-calendar-grid-rows';
18
18
  import CalendarHeader from './header';
19
19
  import useCalendarLabels from './use-calendar-labels';
20
- import { getBaseDay, getBaseMonth } from './utils/navigation';
20
+ import { getBaseDay } from './utils/navigation-day';
21
+ import { getBaseMonth } from './utils/navigation-month';
21
22
  import styles from './styles.css.js';
22
23
  export default function Calendar(_a) {
23
24
  var { value, locale = '', startOfWeek, isDateEnabled = () => true, dateDisabledReason = () => '', ariaLabel, ariaLabelledby, ariaDescribedby, onChange, __internalRootRef, i18nStrings, granularity = 'day', previousMonthAriaLabel, nextMonthAriaLabel, todayAriaLabel } = _a, rest = __rest(_a, ["value", "locale", "startOfWeek", "isDateEnabled", "dateDisabledReason", "ariaLabel", "ariaLabelledby", "ariaDescribedby", "onChange", "__internalRootRef", "i18nStrings", "granularity", "previousMonthAriaLabel", "nextMonthAriaLabel", "todayAriaLabel"]);
@@ -1 +1 @@
1
- {"version":3,"file":"internal.js","sourceRoot":"","sources":["../../../src/calendar/internal.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport React, { useEffect, useRef, useState } from 'react';\nimport clsx from 'clsx';\nimport { addMonths, addYears, isSameDay, isSameMonth, isSameYear } from 'date-fns';\n\nimport { getBaseProps } from '../internal/base-component';\nimport { fireNonCancelableEvent } from '../internal/events/index.js';\nimport checkControlled from '../internal/hooks/check-controlled/index.js';\nimport { InternalBaseComponentProps } from '../internal/hooks/use-base-component/index.js';\nimport { useDateCache } from '../internal/hooks/use-date-cache/index.js';\nimport { useUniqueId } from '../internal/hooks/use-unique-id/index.js';\nimport { formatDate, parseDate } from '../internal/utils/date-time';\nimport { normalizeLocale } from '../internal/utils/locale';\nimport Grid from './grid';\nimport CalendarGridHeader from './grid/calendar-grid-header';\nimport useCalendarGridKeyboardNavigation from './grid/use-calendar-grid-keyboard-navigation';\nimport useCalendarGridRows from './grid/use-calendar-grid-rows';\nimport CalendarHeader from './header';\nimport { CalendarProps } from './interfaces.js';\nimport useCalendarLabels from './use-calendar-labels';\nimport { getBaseDay, getBaseMonth } from './utils/navigation';\n\nimport styles from './styles.css.js';\n\nexport default function Calendar({\n value,\n locale = '',\n startOfWeek,\n isDateEnabled = () => true,\n dateDisabledReason = () => '',\n ariaLabel,\n ariaLabelledby,\n ariaDescribedby,\n onChange,\n __internalRootRef,\n i18nStrings,\n granularity = 'day',\n previousMonthAriaLabel,\n nextMonthAriaLabel,\n todayAriaLabel,\n ...rest\n}: CalendarProps & InternalBaseComponentProps) {\n checkControlled('Calendar', 'value', value, 'onChange', onChange);\n\n const baseProps = getBaseProps(rest);\n const normalizedLocale = normalizeLocale('Calendar', locale);\n\n const gridWrapperRef = useRef<HTMLDivElement>(null);\n const [focusedDate, setFocusedDate] = useState<Date | null>(null);\n\n const valueDateCache = useDateCache();\n const focusedDateCache = useDateCache();\n\n // Set displayed date to value if defined or to current date otherwise.\n const parsedValue = value && value.length >= 4 ? parseDate(value) : null;\n const memoizedValue = parsedValue ? valueDateCache(parsedValue) : null;\n const defaultDisplayedDate = memoizedValue ?? new Date();\n const [displayedDate, setDisplayedDate] = useState(defaultDisplayedDate);\n\n const headingId = useUniqueId('calendar-heading');\n\n const isMonthPicker = granularity === 'month';\n\n const isDateFocusable = (date: Date) => isDateEnabled(date) || (!isDateEnabled(date) && !!dateDisabledReason(date));\n\n const baseDate = isMonthPicker\n ? getBaseMonth(displayedDate, isDateEnabled)\n : getBaseDay(displayedDate, isDateEnabled);\n\n const isSameDate = isMonthPicker ? isSameMonth : isSameDay;\n const isSamePage = isMonthPicker ? isSameYear : isSameMonth;\n const isCurrentPage = (date: Date) => isMonthPicker || isSameMonth(date, baseDate);\n\n const { previousButtonLabel, nextButtonLabel, renderDate, renderDateAnnouncement, renderHeaderText } =\n useCalendarLabels({\n granularity,\n i18nStrings,\n locale: normalizedLocale,\n previousMonthAriaLabel,\n nextMonthAriaLabel,\n todayAriaLabel,\n });\n\n const gridRows = useCalendarGridRows({ baseDate, granularity, startOfWeek, locale: normalizedLocale });\n\n // Update displayed date if value changes.\n useEffect(() => {\n memoizedValue && setDisplayedDate(prev => (prev.getTime() !== memoizedValue.getTime() ? memoizedValue : prev));\n }, [memoizedValue]);\n\n const selectFocusedDate = (selected: Date | null, baseDate: Date): Date | null => {\n if (selected && isDateFocusable(selected) && isSamePage(selected, baseDate)) {\n return selected;\n }\n const today = new Date();\n if (isDateFocusable(today) && isSamePage(today, baseDate)) {\n return today;\n }\n if (isDateFocusable(baseDate)) {\n return baseDate;\n }\n return null;\n };\n\n const focusableDate = focusedDate || selectFocusedDate(memoizedValue, baseDate);\n\n const onHeaderChangePageHandler = (amount: number) => {\n const movePage = isMonthPicker ? addYears : addMonths;\n const newDate = movePage(baseDate, amount);\n onChangePageHandler(newDate);\n };\n\n const onChangePageHandler = (newDate: Date) => {\n setDisplayedDate(newDate);\n setFocusedDate(null);\n };\n\n const onGridFocusDateHandler = (date: null | Date) => {\n if (date) {\n setFocusedDate(date ? focusedDateCache(date) : null);\n }\n };\n\n const onGridSelectDateHandler = (date: Date) => {\n fireNonCancelableEvent(onChange, { value: formatDate(date, granularity) });\n setFocusedDate(null);\n };\n\n const onGridBlur = (event: React.FocusEvent) => {\n const newFocusTargetIsInGrid = event.relatedTarget && gridWrapperRef.current?.contains(event.relatedTarget as Node);\n if (!newFocusTargetIsInGrid) {\n setFocusedDate(null);\n }\n };\n\n const onGridKeyDownHandler = useCalendarGridKeyboardNavigation({\n baseDate,\n focusableDate,\n granularity,\n isDateEnabled,\n isDateFocusable,\n onChangePage: onChangePageHandler,\n onFocusDate: onGridFocusDateHandler,\n onSelectDate: onGridSelectDateHandler,\n });\n\n const headerText = renderHeaderText(baseDate);\n\n return (\n <div\n ref={__internalRootRef}\n {...baseProps}\n role=\"group\"\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledby}\n aria-describedby={ariaDescribedby}\n className={clsx(styles.root, styles.calendar, baseProps.className)}\n >\n <div className={styles['calendar-inner']}>\n <CalendarHeader\n formattedDate={headerText}\n onChange={onHeaderChangePageHandler}\n previousLabel={previousButtonLabel}\n nextLabel={nextButtonLabel}\n headingId={headingId}\n />\n <div onBlur={onGridBlur} ref={gridWrapperRef}>\n <Grid\n isDateEnabled={isDateEnabled}\n dateDisabledReason={dateDisabledReason}\n focusedDate={focusedDate}\n focusableDate={focusableDate}\n onSelectDate={onGridSelectDateHandler}\n onFocusDate={onGridFocusDateHandler}\n onChangePage={onChangePageHandler}\n selectedDate={memoizedValue}\n ariaLabelledby={headingId}\n header={isMonthPicker ? null : <CalendarGridHeader locale={normalizedLocale} rows={gridRows} />}\n rows={gridRows}\n isCurrentPage={isCurrentPage}\n renderDate={renderDate}\n renderDateAnnouncement={renderDateAnnouncement}\n isSameDate={isSameDate}\n onGridKeyDownHandler={onGridKeyDownHandler}\n />\n </div>\n </div>\n </div>\n );\n}\n"]}
1
+ {"version":3,"file":"internal.js","sourceRoot":"","sources":["../../../src/calendar/internal.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport React, { useEffect, useRef, useState } from 'react';\nimport clsx from 'clsx';\nimport { addMonths, addYears, isSameDay, isSameMonth, isSameYear } from 'date-fns';\n\nimport { getBaseProps } from '../internal/base-component';\nimport { fireNonCancelableEvent } from '../internal/events/index.js';\nimport checkControlled from '../internal/hooks/check-controlled/index.js';\nimport { InternalBaseComponentProps } from '../internal/hooks/use-base-component/index.js';\nimport { useDateCache } from '../internal/hooks/use-date-cache/index.js';\nimport { useUniqueId } from '../internal/hooks/use-unique-id/index.js';\nimport { formatDate, parseDate } from '../internal/utils/date-time';\nimport { normalizeLocale } from '../internal/utils/locale';\nimport Grid from './grid';\nimport CalendarGridHeader from './grid/calendar-grid-header';\nimport useCalendarGridKeyboardNavigation from './grid/use-calendar-grid-keyboard-navigation';\nimport useCalendarGridRows from './grid/use-calendar-grid-rows';\nimport CalendarHeader from './header';\nimport { CalendarProps } from './interfaces.js';\nimport useCalendarLabels from './use-calendar-labels';\nimport { getBaseDay } from './utils/navigation-day';\nimport { getBaseMonth } from './utils/navigation-month';\n\nimport styles from './styles.css.js';\n\nexport default function Calendar({\n value,\n locale = '',\n startOfWeek,\n isDateEnabled = () => true,\n dateDisabledReason = () => '',\n ariaLabel,\n ariaLabelledby,\n ariaDescribedby,\n onChange,\n __internalRootRef,\n i18nStrings,\n granularity = 'day',\n previousMonthAriaLabel,\n nextMonthAriaLabel,\n todayAriaLabel,\n ...rest\n}: CalendarProps & InternalBaseComponentProps) {\n checkControlled('Calendar', 'value', value, 'onChange', onChange);\n\n const baseProps = getBaseProps(rest);\n const normalizedLocale = normalizeLocale('Calendar', locale);\n\n const gridWrapperRef = useRef<HTMLDivElement>(null);\n const [focusedDate, setFocusedDate] = useState<Date | null>(null);\n\n const valueDateCache = useDateCache();\n const focusedDateCache = useDateCache();\n\n // Set displayed date to value if defined or to current date otherwise.\n const parsedValue = value && value.length >= 4 ? parseDate(value) : null;\n const memoizedValue = parsedValue ? valueDateCache(parsedValue) : null;\n const defaultDisplayedDate = memoizedValue ?? new Date();\n const [displayedDate, setDisplayedDate] = useState(defaultDisplayedDate);\n\n const headingId = useUniqueId('calendar-heading');\n\n const isMonthPicker = granularity === 'month';\n\n const isDateFocusable = (date: Date) => isDateEnabled(date) || (!isDateEnabled(date) && !!dateDisabledReason(date));\n\n const baseDate = isMonthPicker\n ? getBaseMonth(displayedDate, isDateEnabled)\n : getBaseDay(displayedDate, isDateEnabled);\n\n const isSameDate = isMonthPicker ? isSameMonth : isSameDay;\n const isSamePage = isMonthPicker ? isSameYear : isSameMonth;\n const isCurrentPage = (date: Date) => isMonthPicker || isSameMonth(date, baseDate);\n\n const { previousButtonLabel, nextButtonLabel, renderDate, renderDateAnnouncement, renderHeaderText } =\n useCalendarLabels({\n granularity,\n i18nStrings,\n locale: normalizedLocale,\n previousMonthAriaLabel,\n nextMonthAriaLabel,\n todayAriaLabel,\n });\n\n const gridRows = useCalendarGridRows({ baseDate, granularity, startOfWeek, locale: normalizedLocale });\n\n // Update displayed date if value changes.\n useEffect(() => {\n memoizedValue && setDisplayedDate(prev => (prev.getTime() !== memoizedValue.getTime() ? memoizedValue : prev));\n }, [memoizedValue]);\n\n const selectFocusedDate = (selected: Date | null, baseDate: Date): Date | null => {\n if (selected && isDateFocusable(selected) && isSamePage(selected, baseDate)) {\n return selected;\n }\n const today = new Date();\n if (isDateFocusable(today) && isSamePage(today, baseDate)) {\n return today;\n }\n if (isDateFocusable(baseDate)) {\n return baseDate;\n }\n return null;\n };\n\n const focusableDate = focusedDate || selectFocusedDate(memoizedValue, baseDate);\n\n const onHeaderChangePageHandler = (amount: number) => {\n const movePage = isMonthPicker ? addYears : addMonths;\n const newDate = movePage(baseDate, amount);\n onChangePageHandler(newDate);\n };\n\n const onChangePageHandler = (newDate: Date) => {\n setDisplayedDate(newDate);\n setFocusedDate(null);\n };\n\n const onGridFocusDateHandler = (date: null | Date) => {\n if (date) {\n setFocusedDate(date ? focusedDateCache(date) : null);\n }\n };\n\n const onGridSelectDateHandler = (date: Date) => {\n fireNonCancelableEvent(onChange, { value: formatDate(date, granularity) });\n setFocusedDate(null);\n };\n\n const onGridBlur = (event: React.FocusEvent) => {\n const newFocusTargetIsInGrid = event.relatedTarget && gridWrapperRef.current?.contains(event.relatedTarget as Node);\n if (!newFocusTargetIsInGrid) {\n setFocusedDate(null);\n }\n };\n\n const onGridKeyDownHandler = useCalendarGridKeyboardNavigation({\n baseDate,\n focusableDate,\n granularity,\n isDateEnabled,\n isDateFocusable,\n onChangePage: onChangePageHandler,\n onFocusDate: onGridFocusDateHandler,\n onSelectDate: onGridSelectDateHandler,\n });\n\n const headerText = renderHeaderText(baseDate);\n\n return (\n <div\n ref={__internalRootRef}\n {...baseProps}\n role=\"group\"\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledby}\n aria-describedby={ariaDescribedby}\n className={clsx(styles.root, styles.calendar, baseProps.className)}\n >\n <div className={styles['calendar-inner']}>\n <CalendarHeader\n formattedDate={headerText}\n onChange={onHeaderChangePageHandler}\n previousLabel={previousButtonLabel}\n nextLabel={nextButtonLabel}\n headingId={headingId}\n />\n <div onBlur={onGridBlur} ref={gridWrapperRef}>\n <Grid\n isDateEnabled={isDateEnabled}\n dateDisabledReason={dateDisabledReason}\n focusedDate={focusedDate}\n focusableDate={focusableDate}\n onSelectDate={onGridSelectDateHandler}\n onFocusDate={onGridFocusDateHandler}\n onChangePage={onChangePageHandler}\n selectedDate={memoizedValue}\n ariaLabelledby={headingId}\n header={isMonthPicker ? null : <CalendarGridHeader locale={normalizedLocale} rows={gridRows} />}\n rows={gridRows}\n isCurrentPage={isCurrentPage}\n renderDate={renderDate}\n renderDateAnnouncement={renderDateAnnouncement}\n isSameDate={isSameDate}\n onGridKeyDownHandler={onGridKeyDownHandler}\n />\n </div>\n </div>\n </div>\n );\n}\n"]}
@@ -1,26 +1,26 @@
1
1
 
2
2
  import './styles.scoped.css';
3
3
  export default {
4
- "calendar": "awsui_calendar_1ykar_wovlz_149",
5
- "awsui-motion-fade-in-0": "awsui_awsui-motion-fade-in-0_1ykar_wovlz_1",
6
- "root": "awsui_root_1ykar_wovlz_176",
7
- "calendar-inner": "awsui_calendar-inner_1ykar_wovlz_214",
8
- "calendar-header": "awsui_calendar-header_1ykar_wovlz_218",
9
- "calendar-header-title": "awsui_calendar-header-title_1ykar_wovlz_223",
10
- "calendar-next-btn": "awsui_calendar-next-btn_1ykar_wovlz_231",
11
- "calendar-prev-btn": "awsui_calendar-prev-btn_1ykar_wovlz_234",
12
- "calendar-grid": "awsui_calendar-grid_1ykar_wovlz_237",
13
- "calendar-grid-dense": "awsui_calendar-grid-dense_1ykar_wovlz_241",
14
- "calendar-grid-cell": "awsui_calendar-grid-cell_1ykar_wovlz_249",
15
- "calendar-date-header": "awsui_calendar-date-header_1ykar_wovlz_254",
16
- "calendar-date": "awsui_calendar-date_1ykar_wovlz_254",
17
- "calendar-date-enabled": "awsui_calendar-date-enabled_1ykar_wovlz_274",
18
- "calendar-date-current-page": "awsui_calendar-date-current-page_1ykar_wovlz_284",
19
- "calendar-date-selected": "awsui_calendar-date-selected_1ykar_wovlz_295",
20
- "calendar-date-current": "awsui_calendar-date-current_1ykar_wovlz_284",
21
- "calendar-date-dense": "awsui_calendar-date-dense_1ykar_wovlz_316",
22
- "date-inner": "awsui_date-inner_1ykar_wovlz_324",
23
- "calendar-row": "awsui_calendar-row_1ykar_wovlz_399",
24
- "disabled-reason-tooltip": "awsui_disabled-reason-tooltip_1ykar_wovlz_403"
4
+ "calendar": "awsui_calendar_1ykar_13z93_153",
5
+ "awsui-motion-fade-in-0": "awsui_awsui-motion-fade-in-0_1ykar_13z93_1",
6
+ "root": "awsui_root_1ykar_13z93_180",
7
+ "calendar-inner": "awsui_calendar-inner_1ykar_13z93_218",
8
+ "calendar-header": "awsui_calendar-header_1ykar_13z93_222",
9
+ "calendar-header-title": "awsui_calendar-header-title_1ykar_13z93_227",
10
+ "calendar-next-btn": "awsui_calendar-next-btn_1ykar_13z93_235",
11
+ "calendar-prev-btn": "awsui_calendar-prev-btn_1ykar_13z93_238",
12
+ "calendar-grid": "awsui_calendar-grid_1ykar_13z93_241",
13
+ "calendar-grid-dense": "awsui_calendar-grid-dense_1ykar_13z93_245",
14
+ "calendar-grid-cell": "awsui_calendar-grid-cell_1ykar_13z93_253",
15
+ "calendar-date-header": "awsui_calendar-date-header_1ykar_13z93_258",
16
+ "calendar-date": "awsui_calendar-date_1ykar_13z93_258",
17
+ "calendar-date-enabled": "awsui_calendar-date-enabled_1ykar_13z93_278",
18
+ "calendar-date-current-page": "awsui_calendar-date-current-page_1ykar_13z93_288",
19
+ "calendar-date-selected": "awsui_calendar-date-selected_1ykar_13z93_299",
20
+ "calendar-date-current": "awsui_calendar-date-current_1ykar_13z93_288",
21
+ "calendar-date-dense": "awsui_calendar-date-dense_1ykar_13z93_320",
22
+ "date-inner": "awsui_date-inner_1ykar_13z93_328",
23
+ "calendar-row": "awsui_calendar-row_1ykar_13z93_403",
24
+ "disabled-reason-tooltip": "awsui_disabled-reason-tooltip_1ykar_13z93_407"
25
25
  };
26
26
 
@@ -136,6 +136,10 @@
136
136
  Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
137
137
  SPDX-License-Identifier: Apache-2.0
138
138
  */
139
+ /*
140
+ Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
141
+ SPDX-License-Identifier: Apache-2.0
142
+ */
139
143
  /* Style used for links in slots/components that are text heavy, to help links stand out among
140
144
  surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F73#description */
141
145
  /*
@@ -146,11 +150,11 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
146
150
  Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
147
151
  SPDX-License-Identifier: Apache-2.0
148
152
  */
149
- .awsui_calendar_1ykar_wovlz_149:not(#\9) {
150
- animation: awsui_awsui-motion-fade-in-0_1ykar_wovlz_1 var(--motion-duration-show-quick-aq3ump, 135ms) var(--motion-easing-show-quick-vc5zgd, ease-out);
153
+ .awsui_calendar_1ykar_13z93_153:not(#\9) {
154
+ animation: awsui_awsui-motion-fade-in-0_1ykar_13z93_1 var(--motion-duration-show-quick-aq3ump, 135ms) var(--motion-easing-show-quick-vc5zgd, ease-out);
151
155
  animation-fill-mode: both;
152
156
  }
153
- @keyframes awsui_awsui-motion-fade-in-0_1ykar_wovlz_1 {
157
+ @keyframes awsui_awsui-motion-fade-in-0_1ykar_13z93_1 {
154
158
  from {
155
159
  opacity: 0;
156
160
  }
@@ -159,12 +163,12 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
159
163
  }
160
164
  }
161
165
  @media (prefers-reduced-motion: reduce) {
162
- .awsui_calendar_1ykar_wovlz_149:not(#\9) {
166
+ .awsui_calendar_1ykar_13z93_153:not(#\9) {
163
167
  animation: none;
164
168
  transition: none;
165
169
  }
166
170
  }
167
- .awsui-motion-disabled .awsui_calendar_1ykar_wovlz_149:not(#\9), .awsui-mode-entering .awsui_calendar_1ykar_wovlz_149:not(#\9) {
171
+ .awsui-motion-disabled .awsui_calendar_1ykar_13z93_153:not(#\9), .awsui-mode-entering .awsui_calendar_1ykar_13z93_153:not(#\9) {
168
172
  animation: none;
169
173
  transition: none;
170
174
  }
@@ -173,11 +177,11 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
173
177
  Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
174
178
  SPDX-License-Identifier: Apache-2.0
175
179
  */
176
- .awsui_root_1ykar_wovlz_176:not(#\9) {
180
+ .awsui_root_1ykar_13z93_180:not(#\9) {
177
181
  /* used in test-utils */
178
182
  }
179
183
 
180
- .awsui_calendar_1ykar_wovlz_149:not(#\9) {
184
+ .awsui_calendar_1ykar_13z93_153:not(#\9) {
181
185
  border-collapse: separate;
182
186
  border-spacing: 0;
183
187
  box-sizing: border-box;
@@ -212,16 +216,16 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
212
216
  inline-size: var(--size-calendar-grid-width-lrunz7, 238px);
213
217
  overflow: auto;
214
218
  }
215
- .awsui_calendar-inner_1ykar_wovlz_214:not(#\9) {
219
+ .awsui_calendar-inner_1ykar_13z93_218:not(#\9) {
216
220
  margin-block: var(--space-xs-zb16t3, 8px);
217
221
  margin-inline: var(--space-xs-zb16t3, 8px);
218
222
  }
219
- .awsui_calendar-header_1ykar_wovlz_218:not(#\9) {
223
+ .awsui_calendar-header_1ykar_13z93_222:not(#\9) {
220
224
  display: flex;
221
225
  justify-content: space-between;
222
226
  align-items: center;
223
227
  }
224
- .awsui_calendar-header-title_1ykar_wovlz_223:not(#\9) {
228
+ .awsui_calendar-header-title_1ykar_13z93_227:not(#\9) {
225
229
  font-size: var(--font-size-body-m-x4okxb, 14px);
226
230
  line-height: var(--line-height-body-m-30ar75, 20px);
227
231
  font-weight: 700;
@@ -229,30 +233,30 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
229
233
  margin-block: 0;
230
234
  margin-inline: 0;
231
235
  }
232
- .awsui_calendar-next-btn_1ykar_wovlz_231:not(#\9) {
236
+ .awsui_calendar-next-btn_1ykar_13z93_235:not(#\9) {
233
237
  /* used for identifying element */
234
238
  }
235
- .awsui_calendar-prev-btn_1ykar_wovlz_234:not(#\9) {
239
+ .awsui_calendar-prev-btn_1ykar_13z93_238:not(#\9) {
236
240
  /* used for identifying element */
237
241
  }
238
- .awsui_calendar-grid_1ykar_wovlz_237:not(#\9) {
242
+ .awsui_calendar-grid_1ykar_13z93_241:not(#\9) {
239
243
  inline-size: 100%;
240
244
  table-layout: fixed;
241
245
  }
242
- .awsui_calendar-grid_1ykar_wovlz_237:not(#\9):not(.awsui_calendar-grid-dense_1ykar_wovlz_241) {
246
+ .awsui_calendar-grid_1ykar_13z93_241:not(#\9):not(.awsui_calendar-grid-dense_1ykar_13z93_245) {
243
247
  border-spacing: var(--space-calendar-grid-gutter-2jsrps, 6px);
244
248
  padding-block: var(--space-xs-zb16t3, 8px);
245
249
  padding-inline: var(--space-xs-zb16t3, 8px);
246
250
  }
247
- .awsui_calendar-grid-dense_1ykar_wovlz_241:not(#\9) {
251
+ .awsui_calendar-grid-dense_1ykar_13z93_245:not(#\9) {
248
252
  border-spacing: 0;
249
253
  }
250
- .awsui_calendar-grid-cell_1ykar_wovlz_249:not(#\9) {
254
+ .awsui_calendar-grid-cell_1ykar_13z93_253:not(#\9) {
251
255
  word-break: break-word;
252
256
  text-align: center;
253
257
  font-weight: unset;
254
258
  }
255
- .awsui_calendar-date-header_1ykar_wovlz_254:not(#\9) {
259
+ .awsui_calendar-date-header_1ykar_13z93_258:not(#\9) {
256
260
  padding-block-start: var(--space-s-34lx8l, 12px);
257
261
  padding-block-end: var(--space-xxs-p8yyaw, 4px);
258
262
  padding-inline: 0;
@@ -261,7 +265,7 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
261
265
  line-height: var(--line-height-body-s-7zv1j5, 16px);
262
266
  letter-spacing: var(--letter-spacing-body-s-z9jkwp, 0.005em);
263
267
  }
264
- .awsui_calendar-date_1ykar_wovlz_254:not(#\9) {
268
+ .awsui_calendar-date_1ykar_13z93_258:not(#\9) {
265
269
  border-block-end: 1px solid var(--color-border-calendar-grid-u86q1u, transparent);
266
270
  border-inline-end: 1px solid var(--color-border-calendar-grid-u86q1u, transparent);
267
271
  padding-block: var(--space-xxs-p8yyaw, 4px);
@@ -269,23 +273,23 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
269
273
  color: var(--color-text-dropdown-item-disabled-7fg5u8, #b4b4bb);
270
274
  position: relative;
271
275
  }
272
- .awsui_calendar-date_1ykar_wovlz_254:not(#\9):first-child {
276
+ .awsui_calendar-date_1ykar_13z93_258:not(#\9):first-child {
273
277
  border-inline-start: 1px solid var(--color-border-calendar-grid-u86q1u, transparent);
274
278
  }
275
- .awsui_calendar-date-enabled_1ykar_wovlz_274:not(#\9) {
279
+ .awsui_calendar-date-enabled_1ykar_13z93_278:not(#\9) {
276
280
  cursor: pointer;
277
281
  color: var(--color-text-dropdown-item-secondary-xvh5zo, #656871);
278
282
  }
279
- .awsui_calendar-date-enabled_1ykar_wovlz_274:not(#\9)::after {
283
+ .awsui_calendar-date-enabled_1ykar_13z93_278:not(#\9)::after {
280
284
  border-start-start-radius: var(--border-radius-item-05df9h, 8px);
281
285
  border-start-end-radius: var(--border-radius-item-05df9h, 8px);
282
286
  border-end-start-radius: var(--border-radius-item-05df9h, 8px);
283
287
  border-end-end-radius: var(--border-radius-item-05df9h, 8px);
284
288
  }
285
- .awsui_calendar-date-enabled_1ykar_wovlz_274.awsui_calendar-date-current-page_1ykar_wovlz_284:not(#\9) {
289
+ .awsui_calendar-date-enabled_1ykar_13z93_278.awsui_calendar-date-current-page_1ykar_13z93_288:not(#\9) {
286
290
  color: var(--color-text-dropdown-item-default-wpxsrk, #0f141a);
287
291
  }
288
- .awsui_calendar-date-enabled_1ykar_wovlz_274.awsui_calendar-date-current-page_1ykar_wovlz_284:not(#\9):hover {
292
+ .awsui_calendar-date-enabled_1ykar_13z93_278.awsui_calendar-date-current-page_1ykar_13z93_288:not(#\9):hover {
289
293
  border-start-start-radius: var(--border-radius-item-05df9h, 8px);
290
294
  border-start-end-radius: var(--border-radius-item-05df9h, 8px);
291
295
  border-end-start-radius: var(--border-radius-item-05df9h, 8px);
@@ -293,11 +297,11 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
293
297
  color: var(--color-text-calendar-date-hover-qiity9, #0f141a);
294
298
  background-color: var(--color-background-dropdown-item-hover-zhzc84, #f3f3f7);
295
299
  }
296
- .awsui_calendar-date-enabled_1ykar_wovlz_274.awsui_calendar-date-current-page_1ykar_wovlz_284:not(#\9):hover:not(.awsui_calendar-date-selected_1ykar_wovlz_295)::after {
300
+ .awsui_calendar-date-enabled_1ykar_13z93_278.awsui_calendar-date-current-page_1ykar_13z93_288:not(#\9):hover:not(.awsui_calendar-date-selected_1ykar_13z93_299)::after {
297
301
  border-block: var(--border-item-width-yel47s, 2px) solid var(--color-border-dropdown-item-hover-4p0gsi, #8c8c94);
298
302
  border-inline: var(--border-item-width-yel47s, 2px) solid var(--color-border-dropdown-item-hover-4p0gsi, #8c8c94);
299
303
  }
300
- .awsui_calendar-date-current_1ykar_wovlz_284:not(#\9) {
304
+ .awsui_calendar-date-current_1ykar_13z93_288:not(#\9) {
301
305
  border-start-start-radius: var(--border-radius-item-05df9h, 8px);
302
306
  border-start-end-radius: var(--border-radius-item-05df9h, 8px);
303
307
  border-end-start-radius: var(--border-radius-item-05df9h, 8px);
@@ -305,7 +309,7 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
305
309
  background-color: var(--color-background-calendar-current-date-a6ucrp, #f3f3f7);
306
310
  font-weight: 700;
307
311
  }
308
- .awsui_calendar-date_1ykar_wovlz_254:not(#\9)::after {
312
+ .awsui_calendar-date_1ykar_13z93_258:not(#\9)::after {
309
313
  content: "";
310
314
  position: absolute;
311
315
  z-index: 1;
@@ -314,29 +318,29 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
314
318
  inset-inline-start: calc(-1 * var(--border-item-width-yel47s, 2px));
315
319
  inset-inline-end: calc(-1 * var(--border-item-width-yel47s, 2px));
316
320
  }
317
- .awsui_calendar-date_1ykar_wovlz_254:not(#\9):not(.awsui_calendar-date-dense_1ykar_wovlz_316)::after {
321
+ .awsui_calendar-date_1ykar_13z93_258:not(#\9):not(.awsui_calendar-date-dense_1ykar_13z93_320)::after {
318
322
  inset-block-end: calc(-1 * var(--border-item-width-yel47s, 2px));
319
323
  inset-inline-start: calc(-1 * var(--border-item-width-yel47s, 2px));
320
324
  }
321
- .awsui_calendar-date-dense_1ykar_wovlz_316:not(#\9)::after {
325
+ .awsui_calendar-date-dense_1ykar_13z93_320:not(#\9)::after {
322
326
  inset-block-end: -1px;
323
327
  inset-inline-start: -1px;
324
328
  }
325
- .awsui_calendar-date_1ykar_wovlz_254 > .awsui_date-inner_1ykar_wovlz_324:not(#\9) {
329
+ .awsui_calendar-date_1ykar_13z93_258 > .awsui_date-inner_1ykar_13z93_328:not(#\9) {
326
330
  position: relative;
327
331
  z-index: 1;
328
332
  }
329
- .awsui_calendar-date_1ykar_wovlz_254:not(#\9):focus {
333
+ .awsui_calendar-date_1ykar_13z93_258:not(#\9):focus {
330
334
  outline: none;
331
335
  }
332
- body[data-awsui-focus-visible=true] .awsui_calendar-date_1ykar_wovlz_254:not(#\9):focus:focus {
336
+ body[data-awsui-focus-visible=true] .awsui_calendar-date_1ykar_13z93_258:not(#\9):focus:focus {
333
337
  position: relative;
334
338
  }
335
- body[data-awsui-focus-visible=true] .awsui_calendar-date_1ykar_wovlz_254:not(#\9):focus:focus {
339
+ body[data-awsui-focus-visible=true] .awsui_calendar-date_1ykar_13z93_258:not(#\9):focus:focus {
336
340
  outline: 2px dotted transparent;
337
341
  outline-offset: calc(var(--space-calendar-grid-focus-outline-gutter-g00bgj, -5px) - 1px);
338
342
  }
339
- body[data-awsui-focus-visible=true] .awsui_calendar-date_1ykar_wovlz_254:not(#\9):focus:focus::before {
343
+ body[data-awsui-focus-visible=true] .awsui_calendar-date_1ykar_13z93_258:not(#\9):focus:focus::before {
340
344
  content: " ";
341
345
  display: block;
342
346
  position: absolute;
@@ -350,23 +354,23 @@ body[data-awsui-focus-visible=true] .awsui_calendar-date_1ykar_wovlz_254:not(#\9
350
354
  border-end-end-radius: var(--border-radius-calendar-day-focus-ring-545h0w, 3px);
351
355
  box-shadow: 0 0 0 2px var(--color-border-item-focused-nv6mhz, #006ce0);
352
356
  }
353
- body[data-awsui-focus-visible=true] .awsui_calendar-date_1ykar_wovlz_254:not(#\9):focus:focus::before {
357
+ body[data-awsui-focus-visible=true] .awsui_calendar-date_1ykar_13z93_258:not(#\9):focus:focus::before {
354
358
  z-index: 2;
355
359
  }
356
- .awsui_calendar-date-selected_1ykar_wovlz_295:not(#\9) {
360
+ .awsui_calendar-date-selected_1ykar_13z93_299:not(#\9) {
357
361
  border-color: transparent;
358
362
  position: relative;
359
363
  z-index: 2;
360
364
  font-weight: 700;
361
365
  }
362
- body[data-awsui-focus-visible=true] .awsui_calendar-date-selected_1ykar_wovlz_295:not(#\9):focus:focus {
366
+ body[data-awsui-focus-visible=true] .awsui_calendar-date-selected_1ykar_13z93_299:not(#\9):focus:focus {
363
367
  position: relative;
364
368
  }
365
- body[data-awsui-focus-visible=true] .awsui_calendar-date-selected_1ykar_wovlz_295:not(#\9):focus:focus {
369
+ body[data-awsui-focus-visible=true] .awsui_calendar-date-selected_1ykar_13z93_299:not(#\9):focus:focus {
366
370
  outline: 2px dotted transparent;
367
371
  outline-offset: calc(var(--space-calendar-grid-focus-outline-gutter-g00bgj, -5px) - 1px);
368
372
  }
369
- body[data-awsui-focus-visible=true] .awsui_calendar-date-selected_1ykar_wovlz_295:not(#\9):focus:focus::before {
373
+ body[data-awsui-focus-visible=true] .awsui_calendar-date-selected_1ykar_13z93_299:not(#\9):focus:focus::before {
370
374
  content: " ";
371
375
  display: block;
372
376
  position: absolute;
@@ -380,10 +384,10 @@ body[data-awsui-focus-visible=true] .awsui_calendar-date-selected_1ykar_wovlz_29
380
384
  border-end-end-radius: var(--border-radius-calendar-day-focus-ring-545h0w, 3px);
381
385
  box-shadow: 0 0 0 2px var(--color-border-calendar-grid-selected-focus-ring-w7gc9h, #f9f9fa);
382
386
  }
383
- body[data-awsui-focus-visible=true] .awsui_calendar-date-selected_1ykar_wovlz_295:not(#\9):focus:focus::before {
387
+ body[data-awsui-focus-visible=true] .awsui_calendar-date-selected_1ykar_13z93_299:not(#\9):focus:focus::before {
384
388
  z-index: 2;
385
389
  }
386
- .awsui_calendar-date-selected_1ykar_wovlz_295:not(#\9)::after {
390
+ .awsui_calendar-date-selected_1ykar_13z93_299:not(#\9)::after {
387
391
  border-start-start-radius: var(--border-radius-item-05df9h, 8px);
388
392
  border-start-end-radius: var(--border-radius-item-05df9h, 8px);
389
393
  border-end-start-radius: var(--border-radius-item-05df9h, 8px);
@@ -392,15 +396,15 @@ body[data-awsui-focus-visible=true] .awsui_calendar-date-selected_1ykar_wovlz_29
392
396
  border-block: var(--border-item-width-yel47s, 2px) solid var(--color-background-control-checked-hz4k40, #006ce0);
393
397
  border-inline: var(--border-item-width-yel47s, 2px) solid var(--color-background-control-checked-hz4k40, #006ce0);
394
398
  }
395
- .awsui_calendar-date-selected_1ykar_wovlz_295 > .awsui_date-inner_1ykar_wovlz_324:not(#\9) {
399
+ .awsui_calendar-date-selected_1ykar_13z93_299 > .awsui_date-inner_1ykar_13z93_328:not(#\9) {
396
400
  z-index: 2;
397
401
  color: var(--color-background-control-default-5ol8rv, #ffffff);
398
402
  position: relative;
399
403
  }
400
- .awsui_calendar-row_1ykar_wovlz_399:not(#\9):first-child > .awsui_calendar-date_1ykar_wovlz_254 {
404
+ .awsui_calendar-row_1ykar_13z93_403:not(#\9):first-child > .awsui_calendar-date_1ykar_13z93_258 {
401
405
  border-block-start: 1px solid var(--color-border-calendar-grid-u86q1u, transparent);
402
406
  }
403
407
 
404
- .awsui_disabled-reason-tooltip_1ykar_wovlz_403:not(#\9) {
408
+ .awsui_disabled-reason-tooltip_1ykar_13z93_407:not(#\9) {
405
409
  /* used in test-utils or tests */
406
410
  }