@cloudscape-design/components 3.0.541 → 3.0.543

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 (90) hide show
  1. package/calendar/grid/index.d.ts.map +1 -1
  2. package/calendar/grid/index.js +4 -1
  3. package/calendar/grid/index.js.map +1 -1
  4. package/calendar/grid/use-calendar-grid-keyboard-navigation.d.ts +2 -1
  5. package/calendar/grid/use-calendar-grid-keyboard-navigation.d.ts.map +1 -1
  6. package/calendar/grid/use-calendar-grid-keyboard-navigation.js +14 -8
  7. package/calendar/grid/use-calendar-grid-keyboard-navigation.js.map +1 -1
  8. package/calendar/grid/use-calendar-grid-rows.d.ts +3 -1
  9. package/calendar/grid/use-calendar-grid-rows.d.ts.map +1 -1
  10. package/calendar/grid/use-calendar-grid-rows.js +12 -3
  11. package/calendar/grid/use-calendar-grid-rows.js.map +1 -1
  12. package/calendar/index.d.ts +1 -1
  13. package/calendar/index.d.ts.map +1 -1
  14. package/calendar/index.js +2 -2
  15. package/calendar/index.js.map +1 -1
  16. package/calendar/interfaces.d.ts +21 -0
  17. package/calendar/interfaces.d.ts.map +1 -1
  18. package/calendar/interfaces.js.map +1 -1
  19. package/calendar/internal.d.ts +1 -1
  20. package/calendar/internal.d.ts.map +1 -1
  21. package/calendar/internal.js +19 -11
  22. package/calendar/internal.js.map +1 -1
  23. package/calendar/styles.css.js +20 -18
  24. package/calendar/styles.scoped.css +54 -40
  25. package/calendar/styles.selectors.js +20 -18
  26. package/calendar/use-calendar-labels.d.ts +2 -1
  27. package/calendar/use-calendar-labels.d.ts.map +1 -1
  28. package/calendar/use-calendar-labels.js +14 -7
  29. package/calendar/use-calendar-labels.js.map +1 -1
  30. package/calendar/utils/intl.d.ts +1 -0
  31. package/calendar/utils/intl.d.ts.map +1 -1
  32. package/calendar/utils/intl.js +5 -0
  33. package/calendar/utils/intl.js.map +1 -1
  34. package/calendar/utils/navigation.d.ts +11 -5
  35. package/calendar/utils/navigation.d.ts.map +1 -1
  36. package/calendar/utils/navigation.js +43 -7
  37. package/calendar/utils/navigation.js.map +1 -1
  38. package/date-input/internal.d.ts +4 -1
  39. package/date-input/internal.d.ts.map +1 -1
  40. package/date-input/internal.js +9 -10
  41. package/date-input/internal.js.map +1 -1
  42. package/date-picker/index.d.ts.map +1 -1
  43. package/date-picker/index.js +12 -11
  44. package/date-picker/index.js.map +1 -1
  45. package/date-picker/utils.d.ts +16 -0
  46. package/date-picker/utils.d.ts.map +1 -0
  47. package/date-picker/utils.js +14 -0
  48. package/date-picker/utils.js.map +1 -0
  49. package/i18n/messages/all.all.js +39 -0
  50. package/i18n/messages/all.all.json +52 -13
  51. package/i18n/messages/all.de.js +3 -0
  52. package/i18n/messages/all.de.json +4 -1
  53. package/i18n/messages/all.en-GB.js +3 -0
  54. package/i18n/messages/all.en-GB.json +4 -1
  55. package/i18n/messages/all.en.js +3 -0
  56. package/i18n/messages/all.en.json +4 -1
  57. package/i18n/messages/all.es.js +3 -0
  58. package/i18n/messages/all.es.json +4 -1
  59. package/i18n/messages/all.fr.js +3 -0
  60. package/i18n/messages/all.fr.json +4 -1
  61. package/i18n/messages/all.id.js +3 -0
  62. package/i18n/messages/all.id.json +4 -1
  63. package/i18n/messages/all.it.js +3 -0
  64. package/i18n/messages/all.it.json +4 -1
  65. package/i18n/messages/all.ja.js +3 -0
  66. package/i18n/messages/all.ja.json +4 -1
  67. package/i18n/messages/all.ko.js +3 -0
  68. package/i18n/messages/all.ko.json +4 -1
  69. package/i18n/messages/all.pt-BR.js +3 -0
  70. package/i18n/messages/all.pt-BR.json +4 -1
  71. package/i18n/messages/all.tr.js +3 -0
  72. package/i18n/messages/all.tr.json +4 -1
  73. package/i18n/messages/all.zh-CN.js +3 -0
  74. package/i18n/messages/all.zh-CN.json +4 -1
  75. package/i18n/messages/all.zh-TW.js +3 -0
  76. package/i18n/messages/all.zh-TW.json +4 -1
  77. package/i18n/messages-types.d.ts +3 -0
  78. package/i18n/messages-types.d.ts.map +1 -1
  79. package/i18n/messages-types.js.map +1 -1
  80. package/internal/base-component/styles.scoped.css +1 -0
  81. package/internal/environment.js +1 -1
  82. package/internal/environment.json +1 -1
  83. package/internal/generated/theming/index.cjs +11 -0
  84. package/internal/generated/theming/index.js +11 -0
  85. package/internal/manifest.json +1 -1
  86. package/internal/utils/date-time/format-date.d.ts +2 -1
  87. package/internal/utils/date-time/format-date.d.ts.map +1 -1
  88. package/internal/utils/date-time/format-date.js +4 -1
  89. package/internal/utils/date-time/format-date.js.map +1 -1
  90. package/package.json +1 -1
@@ -96,11 +96,11 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
96
96
  Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
97
97
  SPDX-License-Identifier: Apache-2.0
98
98
  */
99
- .awsui_calendar_1ykar_1hjus_99:not(#\9) {
100
- animation: awsui_awsui-motion-fade-in-0_1ykar_1hjus_1 var(--motion-duration-show-quick-aq3ump, 135ms) var(--motion-easing-show-quick-vc5zgd, ease-out);
99
+ .awsui_calendar_1ykar_12jvf_99:not(#\9) {
100
+ animation: awsui_awsui-motion-fade-in-0_1ykar_12jvf_1 var(--motion-duration-show-quick-aq3ump, 135ms) var(--motion-easing-show-quick-vc5zgd, ease-out);
101
101
  animation-fill-mode: both;
102
102
  }
103
- @keyframes awsui_awsui-motion-fade-in-0_1ykar_1hjus_1 {
103
+ @keyframes awsui_awsui-motion-fade-in-0_1ykar_12jvf_1 {
104
104
  from {
105
105
  opacity: 0;
106
106
  }
@@ -109,12 +109,12 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
109
109
  }
110
110
  }
111
111
  @media (prefers-reduced-motion: reduce) {
112
- .awsui_calendar_1ykar_1hjus_99:not(#\9) {
112
+ .awsui_calendar_1ykar_12jvf_99:not(#\9) {
113
113
  animation: none;
114
114
  transition: none;
115
115
  }
116
116
  }
117
- .awsui-motion-disabled .awsui_calendar_1ykar_1hjus_99:not(#\9), .awsui-mode-entering .awsui_calendar_1ykar_1hjus_99:not(#\9) {
117
+ .awsui-motion-disabled .awsui_calendar_1ykar_12jvf_99:not(#\9), .awsui-mode-entering .awsui_calendar_1ykar_12jvf_99:not(#\9) {
118
118
  animation: none;
119
119
  transition: none;
120
120
  }
@@ -127,11 +127,11 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
127
127
  Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
128
128
  SPDX-License-Identifier: Apache-2.0
129
129
  */
130
- .awsui_root_1ykar_1hjus_130:not(#\9) {
130
+ .awsui_root_1ykar_12jvf_130:not(#\9) {
131
131
  /* used in test-utils */
132
132
  }
133
133
 
134
- .awsui_calendar_1ykar_1hjus_99:not(#\9) {
134
+ .awsui_calendar_1ykar_12jvf_99:not(#\9) {
135
135
  display: block;
136
136
  inline-size: var(--size-calendar-grid-width-lrunz7, 238px);
137
137
  overflow: auto;
@@ -169,16 +169,16 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
169
169
  -webkit-font-smoothing: auto;
170
170
  -moz-osx-font-smoothing: auto;
171
171
  }
172
- .awsui_calendar-inner_1ykar_1hjus_171:not(#\9) {
172
+ .awsui_calendar-inner_1ykar_12jvf_171:not(#\9) {
173
173
  margin-block: var(--space-xs-zb16t3, 8px);
174
174
  margin-inline: var(--space-xs-zb16t3, 8px);
175
175
  }
176
- .awsui_calendar-header_1ykar_1hjus_175:not(#\9) {
176
+ .awsui_calendar-header_1ykar_12jvf_175:not(#\9) {
177
177
  display: flex;
178
178
  justify-content: space-between;
179
179
  align-items: center;
180
180
  }
181
- .awsui_calendar-header-title_1ykar_1hjus_180:not(#\9) {
181
+ .awsui_calendar-header-title_1ykar_12jvf_180:not(#\9) {
182
182
  font-size: var(--font-size-body-m-x4okxb, 14px);
183
183
  line-height: var(--line-height-body-m-30ar75, 20px);
184
184
  font-weight: 700;
@@ -186,23 +186,30 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
186
186
  margin-block: 0;
187
187
  margin-inline: 0;
188
188
  }
189
- .awsui_calendar-next-btn_1ykar_1hjus_188:not(#\9) {
189
+ .awsui_calendar-next-btn_1ykar_12jvf_188:not(#\9) {
190
190
  /* used for identifying element */
191
191
  }
192
- .awsui_calendar-prev-btn_1ykar_1hjus_191:not(#\9) {
192
+ .awsui_calendar-prev-btn_1ykar_12jvf_191:not(#\9) {
193
193
  /* used for identifying element */
194
194
  }
195
- .awsui_calendar-grid_1ykar_1hjus_194:not(#\9) {
195
+ .awsui_calendar-grid_1ykar_12jvf_194:not(#\9) {
196
196
  inline-size: 100%;
197
197
  table-layout: fixed;
198
+ }
199
+ .awsui_calendar-grid_1ykar_12jvf_194:not(#\9):not(.awsui_calendar-grid-dense_1ykar_12jvf_198) {
200
+ border-spacing: var(--space-calendar-grid-gutter-2jsrps, 6px);
201
+ padding-block: var(--space-xs-zb16t3, 8px);
202
+ padding-inline: var(--space-xs-zb16t3, 8px);
203
+ }
204
+ .awsui_calendar-grid-dense_1ykar_12jvf_198:not(#\9) {
198
205
  border-spacing: 0;
199
206
  }
200
- .awsui_calendar-grid-cell_1ykar_1hjus_199:not(#\9) {
207
+ .awsui_calendar-grid-cell_1ykar_12jvf_206:not(#\9) {
201
208
  word-break: break-word;
202
209
  text-align: center;
203
210
  font-weight: unset;
204
211
  }
205
- .awsui_calendar-date-header_1ykar_1hjus_204:not(#\9) {
212
+ .awsui_calendar-date-header_1ykar_12jvf_211:not(#\9) {
206
213
  padding-block-start: var(--space-s-34lx8l, 12px);
207
214
  padding-block-end: var(--space-xxs-p8yyaw, 4px);
208
215
  padding-inline: 0;
@@ -211,7 +218,7 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
211
218
  line-height: var(--line-height-body-s-7zv1j5, 16px);
212
219
  letter-spacing: var(--letter-spacing-body-s-z9jkwp, 0.005em);
213
220
  }
214
- .awsui_calendar-date_1ykar_1hjus_204:not(#\9) {
221
+ .awsui_calendar-date_1ykar_12jvf_211:not(#\9) {
215
222
  border-block-end: 1px solid var(--color-border-calendar-grid-u86q1u, transparent);
216
223
  border-inline-end: 1px solid var(--color-border-calendar-grid-u86q1u, transparent);
217
224
  padding-block: var(--space-xxs-p8yyaw, 4px);
@@ -219,23 +226,23 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
219
226
  color: var(--color-text-dropdown-item-disabled-6oq3n6, #9ba7b6);
220
227
  position: relative;
221
228
  }
222
- .awsui_calendar-date_1ykar_1hjus_204:not(#\9):first-child {
229
+ .awsui_calendar-date_1ykar_12jvf_211:not(#\9):first-child {
223
230
  border-inline-start: 1px solid var(--color-border-calendar-grid-u86q1u, transparent);
224
231
  }
225
- .awsui_calendar-date-enabled_1ykar_1hjus_224:not(#\9) {
232
+ .awsui_calendar-date-enabled_1ykar_12jvf_231:not(#\9) {
226
233
  cursor: pointer;
227
234
  color: var(--color-text-dropdown-item-secondary-jho0ju, #5f6b7a);
228
235
  }
229
- .awsui_calendar-date-enabled_1ykar_1hjus_224:not(#\9)::after {
236
+ .awsui_calendar-date-enabled_1ykar_12jvf_231:not(#\9)::after {
230
237
  border-start-start-radius: var(--border-radius-item-05df9h, 8px);
231
238
  border-start-end-radius: var(--border-radius-item-05df9h, 8px);
232
239
  border-end-start-radius: var(--border-radius-item-05df9h, 8px);
233
240
  border-end-end-radius: var(--border-radius-item-05df9h, 8px);
234
241
  }
235
- .awsui_calendar-date-enabled_1ykar_1hjus_224.awsui_calendar-date-current-page_1ykar_1hjus_234:not(#\9) {
242
+ .awsui_calendar-date-enabled_1ykar_12jvf_231.awsui_calendar-date-current-page_1ykar_12jvf_241:not(#\9) {
236
243
  color: var(--color-text-dropdown-item-default-4o4hes, #000716);
237
244
  }
238
- .awsui_calendar-date-enabled_1ykar_1hjus_224.awsui_calendar-date-current-page_1ykar_1hjus_234:not(#\9):hover {
245
+ .awsui_calendar-date-enabled_1ykar_12jvf_231.awsui_calendar-date-current-page_1ykar_12jvf_241:not(#\9):hover {
239
246
  border-start-start-radius: var(--border-radius-item-05df9h, 8px);
240
247
  border-start-end-radius: var(--border-radius-item-05df9h, 8px);
241
248
  border-end-start-radius: var(--border-radius-item-05df9h, 8px);
@@ -243,11 +250,11 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
243
250
  color: var(--color-text-calendar-date-hover-llr4as, #000716);
244
251
  background-color: var(--color-background-dropdown-item-hover-swsulg, #f4f4f4);
245
252
  }
246
- .awsui_calendar-date-enabled_1ykar_1hjus_224.awsui_calendar-date-current-page_1ykar_1hjus_234:not(#\9):hover:not(.awsui_calendar-date-selected_1ykar_1hjus_245)::after {
253
+ .awsui_calendar-date-enabled_1ykar_12jvf_231.awsui_calendar-date-current-page_1ykar_12jvf_241:not(#\9):hover:not(.awsui_calendar-date-selected_1ykar_12jvf_252)::after {
247
254
  border-block: var(--border-item-width-yel47s, 2px) solid var(--color-border-dropdown-item-hover-461g78, #7d8998);
248
255
  border-inline: var(--border-item-width-yel47s, 2px) solid var(--color-border-dropdown-item-hover-461g78, #7d8998);
249
256
  }
250
- .awsui_calendar-date-current_1ykar_1hjus_234:not(#\9) {
257
+ .awsui_calendar-date-current_1ykar_12jvf_241:not(#\9) {
251
258
  border-start-start-radius: var(--border-radius-item-05df9h, 8px);
252
259
  border-start-end-radius: var(--border-radius-item-05df9h, 8px);
253
260
  border-end-start-radius: var(--border-radius-item-05df9h, 8px);
@@ -255,31 +262,38 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
255
262
  background-color: var(--color-background-calendar-current-date-kmb0ji, #f4f4f4);
256
263
  font-weight: 700;
257
264
  }
258
- .awsui_calendar-date_1ykar_1hjus_204:not(#\9)::after {
265
+ .awsui_calendar-date_1ykar_12jvf_211:not(#\9)::after {
259
266
  content: "";
260
267
  position: absolute;
261
268
  z-index: 1;
269
+ background-color: transparent;
262
270
  inset-block-start: calc(-1 * var(--border-item-width-yel47s, 2px));
271
+ inset-inline-start: calc(-1 * var(--border-item-width-yel47s, 2px));
272
+ inset-inline-end: calc(-1 * var(--border-item-width-yel47s, 2px));
273
+ }
274
+ .awsui_calendar-date_1ykar_12jvf_211:not(#\9):not(.awsui_calendar-date-dense_1ykar_12jvf_273)::after {
275
+ inset-block-end: calc(-1 * var(--border-item-width-yel47s, 2px));
276
+ inset-inline-start: calc(-1 * var(--border-item-width-yel47s, 2px));
277
+ }
278
+ .awsui_calendar-date-dense_1ykar_12jvf_273:not(#\9)::after {
263
279
  inset-block-end: -1px;
264
280
  inset-inline-start: -1px;
265
- inset-inline-end: calc(-1 * var(--border-item-width-yel47s, 2px));
266
- background-color: transparent;
267
281
  }
268
- .awsui_calendar-date_1ykar_1hjus_204 > .awsui_date-inner_1ykar_1hjus_267:not(#\9) {
282
+ .awsui_calendar-date_1ykar_12jvf_211 > .awsui_date-inner_1ykar_12jvf_281:not(#\9) {
269
283
  position: relative;
270
284
  z-index: 1;
271
285
  }
272
- .awsui_calendar-date_1ykar_1hjus_204:not(#\9):focus {
286
+ .awsui_calendar-date_1ykar_12jvf_211:not(#\9):focus {
273
287
  outline: none;
274
288
  }
275
- body[data-awsui-focus-visible=true] .awsui_calendar-date_1ykar_1hjus_204:not(#\9):focus:focus {
289
+ body[data-awsui-focus-visible=true] .awsui_calendar-date_1ykar_12jvf_211:not(#\9):focus:focus {
276
290
  position: relative;
277
291
  }
278
- body[data-awsui-focus-visible=true] .awsui_calendar-date_1ykar_1hjus_204:not(#\9):focus:focus {
292
+ body[data-awsui-focus-visible=true] .awsui_calendar-date_1ykar_12jvf_211:not(#\9):focus:focus {
279
293
  outline: 2px dotted transparent;
280
294
  outline-offset: calc(var(--space-calendar-grid-focus-outline-gutter-g00bgj, -5px) - 1px);
281
295
  }
282
- body[data-awsui-focus-visible=true] .awsui_calendar-date_1ykar_1hjus_204:not(#\9):focus:focus::before {
296
+ body[data-awsui-focus-visible=true] .awsui_calendar-date_1ykar_12jvf_211:not(#\9):focus:focus::before {
283
297
  content: " ";
284
298
  display: block;
285
299
  position: absolute;
@@ -293,23 +307,23 @@ body[data-awsui-focus-visible=true] .awsui_calendar-date_1ykar_1hjus_204:not(#\9
293
307
  border-end-end-radius: var(--border-radius-calendar-day-focus-ring-545h0w, 3px);
294
308
  box-shadow: 0 0 0 2px var(--color-border-item-focused-b2ntyl, #0972d3);
295
309
  }
296
- body[data-awsui-focus-visible=true] .awsui_calendar-date_1ykar_1hjus_204:not(#\9):focus:focus::before {
310
+ body[data-awsui-focus-visible=true] .awsui_calendar-date_1ykar_12jvf_211:not(#\9):focus:focus::before {
297
311
  z-index: 2;
298
312
  }
299
- .awsui_calendar-date-selected_1ykar_1hjus_245:not(#\9) {
313
+ .awsui_calendar-date-selected_1ykar_12jvf_252:not(#\9) {
300
314
  border-color: transparent;
301
315
  position: relative;
302
316
  z-index: 2;
303
317
  font-weight: 700;
304
318
  }
305
- body[data-awsui-focus-visible=true] .awsui_calendar-date-selected_1ykar_1hjus_245:not(#\9):focus:focus {
319
+ body[data-awsui-focus-visible=true] .awsui_calendar-date-selected_1ykar_12jvf_252:not(#\9):focus:focus {
306
320
  position: relative;
307
321
  }
308
- body[data-awsui-focus-visible=true] .awsui_calendar-date-selected_1ykar_1hjus_245:not(#\9):focus:focus {
322
+ body[data-awsui-focus-visible=true] .awsui_calendar-date-selected_1ykar_12jvf_252:not(#\9):focus:focus {
309
323
  outline: 2px dotted transparent;
310
324
  outline-offset: calc(var(--space-calendar-grid-focus-outline-gutter-g00bgj, -5px) - 1px);
311
325
  }
312
- body[data-awsui-focus-visible=true] .awsui_calendar-date-selected_1ykar_1hjus_245:not(#\9):focus:focus::before {
326
+ body[data-awsui-focus-visible=true] .awsui_calendar-date-selected_1ykar_12jvf_252:not(#\9):focus:focus::before {
313
327
  content: " ";
314
328
  display: block;
315
329
  position: absolute;
@@ -323,10 +337,10 @@ body[data-awsui-focus-visible=true] .awsui_calendar-date-selected_1ykar_1hjus_24
323
337
  border-end-end-radius: var(--border-radius-calendar-day-focus-ring-545h0w, 3px);
324
338
  box-shadow: 0 0 0 2px var(--color-border-calendar-grid-selected-focus-ring-thqa8y, #fbfbfb);
325
339
  }
326
- body[data-awsui-focus-visible=true] .awsui_calendar-date-selected_1ykar_1hjus_245:not(#\9):focus:focus::before {
340
+ body[data-awsui-focus-visible=true] .awsui_calendar-date-selected_1ykar_12jvf_252:not(#\9):focus:focus::before {
327
341
  z-index: 2;
328
342
  }
329
- .awsui_calendar-date-selected_1ykar_1hjus_245:not(#\9)::after {
343
+ .awsui_calendar-date-selected_1ykar_12jvf_252:not(#\9)::after {
330
344
  border-start-start-radius: var(--border-radius-item-05df9h, 8px);
331
345
  border-start-end-radius: var(--border-radius-item-05df9h, 8px);
332
346
  border-end-start-radius: var(--border-radius-item-05df9h, 8px);
@@ -335,11 +349,11 @@ body[data-awsui-focus-visible=true] .awsui_calendar-date-selected_1ykar_1hjus_24
335
349
  border-block: var(--border-item-width-yel47s, 2px) solid var(--color-background-control-checked-w517i0, #0972d3);
336
350
  border-inline: var(--border-item-width-yel47s, 2px) solid var(--color-background-control-checked-w517i0, #0972d3);
337
351
  }
338
- .awsui_calendar-date-selected_1ykar_1hjus_245 > .awsui_date-inner_1ykar_1hjus_267:not(#\9) {
352
+ .awsui_calendar-date-selected_1ykar_12jvf_252 > .awsui_date-inner_1ykar_12jvf_281:not(#\9) {
339
353
  z-index: 2;
340
354
  color: var(--color-background-control-default-qzruqy, #ffffff);
341
355
  position: relative;
342
356
  }
343
- .awsui_calendar-row_1ykar_1hjus_342:not(#\9):first-child > .awsui_calendar-date_1ykar_1hjus_204 {
357
+ .awsui_calendar-row_1ykar_12jvf_356:not(#\9):first-child > .awsui_calendar-date_1ykar_12jvf_211 {
344
358
  border-block-start: 1px solid var(--color-border-calendar-grid-u86q1u, transparent);
345
359
  }
@@ -2,23 +2,25 @@
2
2
  // es-module interop with Babel and Typescript
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  module.exports.default = {
5
- "calendar": "awsui_calendar_1ykar_1hjus_99",
6
- "awsui-motion-fade-in-0": "awsui_awsui-motion-fade-in-0_1ykar_1hjus_1",
7
- "root": "awsui_root_1ykar_1hjus_130",
8
- "calendar-inner": "awsui_calendar-inner_1ykar_1hjus_171",
9
- "calendar-header": "awsui_calendar-header_1ykar_1hjus_175",
10
- "calendar-header-title": "awsui_calendar-header-title_1ykar_1hjus_180",
11
- "calendar-next-btn": "awsui_calendar-next-btn_1ykar_1hjus_188",
12
- "calendar-prev-btn": "awsui_calendar-prev-btn_1ykar_1hjus_191",
13
- "calendar-grid": "awsui_calendar-grid_1ykar_1hjus_194",
14
- "calendar-grid-cell": "awsui_calendar-grid-cell_1ykar_1hjus_199",
15
- "calendar-date-header": "awsui_calendar-date-header_1ykar_1hjus_204",
16
- "calendar-date": "awsui_calendar-date_1ykar_1hjus_204",
17
- "calendar-date-enabled": "awsui_calendar-date-enabled_1ykar_1hjus_224",
18
- "calendar-date-current-page": "awsui_calendar-date-current-page_1ykar_1hjus_234",
19
- "calendar-date-selected": "awsui_calendar-date-selected_1ykar_1hjus_245",
20
- "calendar-date-current": "awsui_calendar-date-current_1ykar_1hjus_234",
21
- "date-inner": "awsui_date-inner_1ykar_1hjus_267",
22
- "calendar-row": "awsui_calendar-row_1ykar_1hjus_342"
5
+ "calendar": "awsui_calendar_1ykar_12jvf_99",
6
+ "awsui-motion-fade-in-0": "awsui_awsui-motion-fade-in-0_1ykar_12jvf_1",
7
+ "root": "awsui_root_1ykar_12jvf_130",
8
+ "calendar-inner": "awsui_calendar-inner_1ykar_12jvf_171",
9
+ "calendar-header": "awsui_calendar-header_1ykar_12jvf_175",
10
+ "calendar-header-title": "awsui_calendar-header-title_1ykar_12jvf_180",
11
+ "calendar-next-btn": "awsui_calendar-next-btn_1ykar_12jvf_188",
12
+ "calendar-prev-btn": "awsui_calendar-prev-btn_1ykar_12jvf_191",
13
+ "calendar-grid": "awsui_calendar-grid_1ykar_12jvf_194",
14
+ "calendar-grid-dense": "awsui_calendar-grid-dense_1ykar_12jvf_198",
15
+ "calendar-grid-cell": "awsui_calendar-grid-cell_1ykar_12jvf_206",
16
+ "calendar-date-header": "awsui_calendar-date-header_1ykar_12jvf_211",
17
+ "calendar-date": "awsui_calendar-date_1ykar_12jvf_211",
18
+ "calendar-date-enabled": "awsui_calendar-date-enabled_1ykar_12jvf_231",
19
+ "calendar-date-current-page": "awsui_calendar-date-current-page_1ykar_12jvf_241",
20
+ "calendar-date-selected": "awsui_calendar-date-selected_1ykar_12jvf_252",
21
+ "calendar-date-current": "awsui_calendar-date-current_1ykar_12jvf_241",
22
+ "calendar-date-dense": "awsui_calendar-date-dense_1ykar_12jvf_273",
23
+ "date-inner": "awsui_date-inner_1ykar_12jvf_281",
24
+ "calendar-row": "awsui_calendar-row_1ykar_12jvf_356"
23
25
  };
24
26
 
@@ -1,5 +1,6 @@
1
1
  import { CalendarProps } from './interfaces';
2
- export default function useCalendarLabels({ locale, i18nStrings, previousMonthAriaLabel, nextMonthAriaLabel, todayAriaLabel, }: {
2
+ export default function useCalendarLabels({ granularity, locale, i18nStrings, previousMonthAriaLabel, nextMonthAriaLabel, todayAriaLabel, }: {
3
+ granularity: CalendarProps.Granularity;
3
4
  locale: string;
4
5
  i18nStrings?: CalendarProps.I18nStrings;
5
6
  previousMonthAriaLabel?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"use-calendar-labels.d.ts","sourceRoot":"lib/default/","sources":["calendar/use-calendar-labels.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAI7C,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,EACxC,MAAM,EACN,WAAW,EACX,sBAAsB,EACtB,kBAAkB,EAClB,cAAc,GACf,EAAE;IACD,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,aAAa,CAAC,WAAW,CAAC;IACxC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;;;uBAY2B,IAAI;mCAEQ,IAAI,iBAAiB,OAAO;6BAQlC,IAAI;EASrC"}
1
+ {"version":3,"file":"use-calendar-labels.d.ts","sourceRoot":"lib/default/","sources":["calendar/use-calendar-labels.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAI7C,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,EACxC,WAAW,EACX,MAAM,EACN,WAAW,EACX,sBAAsB,EACtB,kBAAkB,EAClB,cAAc,GACf,EAAE;IACD,WAAW,EAAE,aAAa,CAAC,WAAW,CAAC;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,aAAa,CAAC,WAAW,CAAC;IACxC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;;;uBAgB2B,IAAI;mCAGQ,IAAI,iBAAiB,OAAO;6BAQlC,IAAI;EAUrC"}
@@ -2,21 +2,28 @@
2
2
  // SPDX-License-Identifier: Apache-2.0
3
3
  import { useInternalI18n } from '../i18n/context.js';
4
4
  import { getDateLabel, renderMonthAndYear } from './utils/intl';
5
- export default function useCalendarLabels({ locale, i18nStrings, previousMonthAriaLabel, nextMonthAriaLabel, todayAriaLabel, }) {
5
+ export default function useCalendarLabels({ granularity, locale, i18nStrings, previousMonthAriaLabel, nextMonthAriaLabel, todayAriaLabel, }) {
6
6
  var _a, _b, _c;
7
7
  const i18n = useInternalI18n('calendar');
8
- const previousButtonLabel = i18n('previousMonthAriaLabel', (_a = i18nStrings === null || i18nStrings === void 0 ? void 0 : i18nStrings.previousMonthAriaLabel) !== null && _a !== void 0 ? _a : previousMonthAriaLabel);
9
- const nextButtonLabel = i18n('nextMonthAriaLabel', (_b = i18nStrings === null || i18nStrings === void 0 ? void 0 : i18nStrings.nextMonthAriaLabel) !== null && _b !== void 0 ? _b : nextMonthAriaLabel);
10
- const currentDateLabel = i18n('todayAriaLabel', (_c = i18nStrings === null || i18nStrings === void 0 ? void 0 : i18nStrings.todayAriaLabel) !== null && _c !== void 0 ? _c : todayAriaLabel);
11
- const renderDate = (date) => date.getDate().toString();
8
+ const isMonthPicker = granularity === 'month';
9
+ const previousButtonLabel = isMonthPicker
10
+ ? i18n('i18nStrings.previousYearAriaLabel', i18nStrings === null || i18nStrings === void 0 ? void 0 : i18nStrings.previousYearAriaLabel)
11
+ : i18n('previousMonthAriaLabel', (_a = i18nStrings === null || i18nStrings === void 0 ? void 0 : i18nStrings.previousMonthAriaLabel) !== null && _a !== void 0 ? _a : previousMonthAriaLabel);
12
+ const nextButtonLabel = isMonthPicker
13
+ ? i18n('i18nStrings.nextYearAriaLabel', i18nStrings === null || i18nStrings === void 0 ? void 0 : i18nStrings.nextYearAriaLabel)
14
+ : i18n('nextMonthAriaLabel', (_b = i18nStrings === null || i18nStrings === void 0 ? void 0 : i18nStrings.nextMonthAriaLabel) !== null && _b !== void 0 ? _b : nextMonthAriaLabel);
15
+ const currentDateLabel = isMonthPicker
16
+ ? i18n('i18nStrings.currentMonthAriaLabel', i18nStrings === null || i18nStrings === void 0 ? void 0 : i18nStrings.currentMonthAriaLabel)
17
+ : i18n('todayAriaLabel', (_c = i18nStrings === null || i18nStrings === void 0 ? void 0 : i18nStrings.todayAriaLabel) !== null && _c !== void 0 ? _c : todayAriaLabel);
18
+ const renderDate = (date) => isMonthPicker ? date.toLocaleString(locale, { month: 'short' }) : date.getDate().toString();
12
19
  const renderDateAnnouncement = (date, isCurrentDate) => {
13
- const formattedDate = getDateLabel(locale, date, 'short');
20
+ const formattedDate = isMonthPicker ? renderMonthAndYear(locale, date) : getDateLabel(locale, date, 'short');
14
21
  if (isCurrentDate && currentDateLabel) {
15
22
  return formattedDate + '. ' + currentDateLabel;
16
23
  }
17
24
  return formattedDate;
18
25
  };
19
- const renderHeaderText = (date) => renderMonthAndYear(locale, date);
26
+ const renderHeaderText = (date) => isMonthPicker ? date.getFullYear().toString() : renderMonthAndYear(locale, date);
20
27
  return {
21
28
  previousButtonLabel,
22
29
  nextButtonLabel,
@@ -1 +1 @@
1
- {"version":3,"file":"use-calendar-labels.js","sourceRoot":"lib/default/","sources":["calendar/use-calendar-labels.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AAGtC,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAEhE,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,EACxC,MAAM,EACN,WAAW,EACX,sBAAsB,EACtB,kBAAkB,EAClB,cAAc,GAQf;;IACC,MAAM,IAAI,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC;IAEzC,MAAM,mBAAmB,GAAG,IAAI,CAC9B,wBAAwB,EACxB,MAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,sBAAsB,mCAAI,sBAAsB,CAC9D,CAAC;IAEF,MAAM,eAAe,GAAG,IAAI,CAAC,oBAAoB,EAAE,MAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,kBAAkB,mCAAI,kBAAkB,CAAC,CAAC;IAE1G,MAAM,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,EAAE,MAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,cAAc,mCAAI,cAAc,CAAC,CAAC;IAE/F,MAAM,UAAU,GAAG,CAAC,IAAU,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC;IAE7D,MAAM,sBAAsB,GAAG,CAAC,IAAU,EAAE,aAAsB,EAAE,EAAE;QACpE,MAAM,aAAa,GAAG,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QAC1D,IAAI,aAAa,IAAI,gBAAgB,EAAE;YACrC,OAAO,aAAa,GAAG,IAAI,GAAG,gBAAgB,CAAC;SAChD;QACD,OAAO,aAAa,CAAC;IACvB,CAAC,CAAC;IAEF,MAAM,gBAAgB,GAAG,CAAC,IAAU,EAAE,EAAE,CAAC,kBAAkB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAE1E,OAAO;QACL,mBAAmB;QACnB,eAAe;QACf,UAAU;QACV,sBAAsB;QACtB,gBAAgB;KACjB,CAAC;AACJ,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { CalendarProps } from './interfaces';\nimport { useInternalI18n } from '../i18n/context.js';\nimport { getDateLabel, renderMonthAndYear } from './utils/intl';\n\nexport default function useCalendarLabels({\n locale,\n i18nStrings,\n previousMonthAriaLabel,\n nextMonthAriaLabel,\n todayAriaLabel,\n}: {\n locale: string;\n i18nStrings?: CalendarProps.I18nStrings;\n previousMonthAriaLabel?: string;\n nextMonthAriaLabel?: string;\n previousYearAriaLabel?: string;\n todayAriaLabel?: string;\n}) {\n const i18n = useInternalI18n('calendar');\n\n const previousButtonLabel = i18n(\n 'previousMonthAriaLabel',\n i18nStrings?.previousMonthAriaLabel ?? previousMonthAriaLabel\n );\n\n const nextButtonLabel = i18n('nextMonthAriaLabel', i18nStrings?.nextMonthAriaLabel ?? nextMonthAriaLabel);\n\n const currentDateLabel = i18n('todayAriaLabel', i18nStrings?.todayAriaLabel ?? todayAriaLabel);\n\n const renderDate = (date: Date) => date.getDate().toString();\n\n const renderDateAnnouncement = (date: Date, isCurrentDate: boolean) => {\n const formattedDate = getDateLabel(locale, date, 'short');\n if (isCurrentDate && currentDateLabel) {\n return formattedDate + '. ' + currentDateLabel;\n }\n return formattedDate;\n };\n\n const renderHeaderText = (date: Date) => renderMonthAndYear(locale, date);\n\n return {\n previousButtonLabel,\n nextButtonLabel,\n renderDate,\n renderDateAnnouncement,\n renderHeaderText,\n };\n}\n"]}
1
+ {"version":3,"file":"use-calendar-labels.js","sourceRoot":"lib/default/","sources":["calendar/use-calendar-labels.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AAGtC,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAEhE,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,EACxC,WAAW,EACX,MAAM,EACN,WAAW,EACX,sBAAsB,EACtB,kBAAkB,EAClB,cAAc,GASf;;IACC,MAAM,IAAI,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC;IAEzC,MAAM,aAAa,GAAG,WAAW,KAAK,OAAO,CAAC;IAC9C,MAAM,mBAAmB,GAAG,aAAa;QACvC,CAAC,CAAC,IAAI,CAAC,mCAAmC,EAAE,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,qBAAqB,CAAC;QAC/E,CAAC,CAAC,IAAI,CAAC,wBAAwB,EAAE,MAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,sBAAsB,mCAAI,sBAAsB,CAAC,CAAC;IAElG,MAAM,eAAe,GAAG,aAAa;QACnC,CAAC,CAAC,IAAI,CAAC,+BAA+B,EAAE,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,iBAAiB,CAAC;QACvE,CAAC,CAAC,IAAI,CAAC,oBAAoB,EAAE,MAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,kBAAkB,mCAAI,kBAAkB,CAAC,CAAC;IAEtF,MAAM,gBAAgB,GAAG,aAAa;QACpC,CAAC,CAAC,IAAI,CAAC,mCAAmC,EAAE,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,qBAAqB,CAAC;QAC/E,CAAC,CAAC,IAAI,CAAC,gBAAgB,EAAE,MAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,cAAc,mCAAI,cAAc,CAAC,CAAC;IAE1E,MAAM,UAAU,GAAG,CAAC,IAAU,EAAE,EAAE,CAChC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC;IAE9F,MAAM,sBAAsB,GAAG,CAAC,IAAU,EAAE,aAAsB,EAAE,EAAE;QACpE,MAAM,aAAa,GAAG,aAAa,CAAC,CAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QAC7G,IAAI,aAAa,IAAI,gBAAgB,EAAE;YACrC,OAAO,aAAa,GAAG,IAAI,GAAG,gBAAgB,CAAC;SAChD;QACD,OAAO,aAAa,CAAC;IACvB,CAAC,CAAC;IAEF,MAAM,gBAAgB,GAAG,CAAC,IAAU,EAAE,EAAE,CACtC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAEnF,OAAO;QACL,mBAAmB;QACnB,eAAe;QACf,UAAU;QACV,sBAAsB;QACtB,gBAAgB;KACjB,CAAC;AACJ,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { CalendarProps } from './interfaces';\nimport { useInternalI18n } from '../i18n/context.js';\nimport { getDateLabel, renderMonthAndYear } from './utils/intl';\n\nexport default function useCalendarLabels({\n granularity,\n locale,\n i18nStrings,\n previousMonthAriaLabel,\n nextMonthAriaLabel,\n todayAriaLabel,\n}: {\n granularity: CalendarProps.Granularity;\n locale: string;\n i18nStrings?: CalendarProps.I18nStrings;\n previousMonthAriaLabel?: string;\n nextMonthAriaLabel?: string;\n previousYearAriaLabel?: string;\n todayAriaLabel?: string;\n}) {\n const i18n = useInternalI18n('calendar');\n\n const isMonthPicker = granularity === 'month';\n const previousButtonLabel = isMonthPicker\n ? i18n('i18nStrings.previousYearAriaLabel', i18nStrings?.previousYearAriaLabel)\n : i18n('previousMonthAriaLabel', i18nStrings?.previousMonthAriaLabel ?? previousMonthAriaLabel);\n\n const nextButtonLabel = isMonthPicker\n ? i18n('i18nStrings.nextYearAriaLabel', i18nStrings?.nextYearAriaLabel)\n : i18n('nextMonthAriaLabel', i18nStrings?.nextMonthAriaLabel ?? nextMonthAriaLabel);\n\n const currentDateLabel = isMonthPicker\n ? i18n('i18nStrings.currentMonthAriaLabel', i18nStrings?.currentMonthAriaLabel)\n : i18n('todayAriaLabel', i18nStrings?.todayAriaLabel ?? todayAriaLabel);\n\n const renderDate = (date: Date) =>\n isMonthPicker ? date.toLocaleString(locale, { month: 'short' }) : date.getDate().toString();\n\n const renderDateAnnouncement = (date: Date, isCurrentDate: boolean) => {\n const formattedDate = isMonthPicker ? renderMonthAndYear(locale, date) : getDateLabel(locale, date, 'short');\n if (isCurrentDate && currentDateLabel) {\n return formattedDate + '. ' + currentDateLabel;\n }\n return formattedDate;\n };\n\n const renderHeaderText = (date: Date) =>\n isMonthPicker ? date.getFullYear().toString() : renderMonthAndYear(locale, date);\n\n return {\n previousButtonLabel,\n nextButtonLabel,\n renderDate,\n renderDateAnnouncement,\n renderHeaderText,\n };\n}\n"]}
@@ -1,6 +1,7 @@
1
1
  import { TimeInputProps } from '../../time-input/interfaces';
2
2
  export declare function renderDayName(locale: string, dayIndex: number, mode: 'short' | 'long'): string;
3
3
  export declare function renderMonthAndYear(locale: string, baseDate: Date): string;
4
+ export declare function renderYear(locale: string, date: Date): string;
4
5
  export declare function getDateLabel(locale: string, date: Date, mode?: 'full' | 'short'): string;
5
6
  export declare function renderTimeLabel(locale: string, date: Date, format?: TimeInputProps.Format): string;
6
7
  //# sourceMappingURL=intl.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"intl.d.ts","sourceRoot":"lib/default/","sources":["calendar/utils/intl.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAO7D,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,CAI9F;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,GAAG,MAAM,CAOzE;AAMD,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,GAAE,MAAM,GAAG,OAAgB,GAAG,MAAM,CAchG;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,EAAE,cAAc,CAAC,MAAM,GAAG,MAAM,CAUlG"}
1
+ {"version":3,"file":"intl.d.ts","sourceRoot":"lib/default/","sources":["calendar/utils/intl.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAO7D,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,CAI9F;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,GAAG,MAAM,CAOzE;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,GAAG,MAAM,CAI7D;AAMD,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,GAAE,MAAM,GAAG,OAAgB,GAAG,MAAM,CAchG;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,EAAE,cAAc,CAAC,MAAM,GAAG,MAAM,CAUlG"}
@@ -16,6 +16,11 @@ export function renderMonthAndYear(locale, baseDate) {
16
16
  });
17
17
  return result;
18
18
  }
19
+ export function renderYear(locale, date) {
20
+ return date.toLocaleDateString(locale, {
21
+ year: 'numeric',
22
+ });
23
+ }
19
24
  /*
20
25
  `toLocaleDateString` is expensive (10+ ms) to calculate in IE11.
21
26
  */
@@ -1 +1 @@
1
- {"version":3,"file":"intl.js","sourceRoot":"lib/default/","sources":["calendar/utils/intl.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AAItC,SAAS,WAAW,CAAC,IAAU,EAAE,QAAgB;IAC/C,MAAM,IAAI,GAAG,QAAQ,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;IACtC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,MAAc,EAAE,QAAgB,EAAE,IAAsB;IACpF,MAAM,QAAQ,GAAG,IAAI,IAAI,EAAE,CAAC;IAC5B,WAAW,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAChC,OAAO,QAAQ,CAAC,kBAAkB,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;AAChE,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,MAAc,EAAE,QAAc;IAC/D,MAAM,MAAM,GAAG,QAAQ,CAAC,kBAAkB,CAAC,MAAM,EAAE;QACjD,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,MAAM;KACd,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;EAEE;AACF,MAAM,aAAa,GAAG,IAAI,GAAG,EAAkB,CAAC;AAChD,MAAM,UAAU,YAAY,CAAC,MAAc,EAAE,IAAU,EAAE,OAAyB,MAAM;IACtF,MAAM,QAAQ,GAAG,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC;IAChD,MAAM,WAAW,GAAG,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAChD,IAAI,WAAW,EAAE;QACf,OAAO,WAAW,CAAC;KACpB;IACD,MAAM,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE;QAC5C,OAAO,EAAE,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;QAC7C,KAAK,EAAE,MAAM;QACb,GAAG,EAAE,SAAS;QACd,IAAI,EAAE,SAAS;KAChB,CAAC,CAAC;IACH,aAAa,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IACnC,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,MAAc,EAAE,IAAU,EAAE,MAA8B;IACxF,IAAI,OAAO,GAA+B,EAAE,CAAC;IAC7C,IAAI,MAAM,KAAK,IAAI,EAAE;QACnB,OAAO,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;KAC/B;IACD,IAAI,MAAM,KAAK,OAAO,EAAE;QACtB,OAAO,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;KAClD;IACD,MAAM,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvD,OAAO,KAAK,CAAC;AACf,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { TimeInputProps } from '../../time-input/interfaces';\n\nfunction setDayIndex(date: Date, dayIndex: number): void {\n const diff = dayIndex - date.getDay();\n date.setDate(date.getDate() + diff);\n}\n\nexport function renderDayName(locale: string, dayIndex: number, mode: 'short' | 'long'): string {\n const tempDate = new Date();\n setDayIndex(tempDate, dayIndex);\n return tempDate.toLocaleDateString(locale, { weekday: mode });\n}\n\nexport function renderMonthAndYear(locale: string, baseDate: Date): string {\n const result = baseDate.toLocaleDateString(locale, {\n year: 'numeric',\n month: 'long',\n });\n\n return result;\n}\n\n/*\n `toLocaleDateString` is expensive (10+ ms) to calculate in IE11.\n*/\nconst dayLabelCache = new Map<string, string>();\nexport function getDateLabel(locale: string, date: Date, mode: 'full' | 'short' = 'full'): string {\n const cacheKey = locale + date.getTime() + mode;\n const cachedValue = dayLabelCache.get(cacheKey);\n if (cachedValue) {\n return cachedValue;\n }\n const value = date.toLocaleDateString(locale, {\n weekday: mode === 'full' ? 'long' : undefined,\n month: 'long',\n day: 'numeric',\n year: 'numeric',\n });\n dayLabelCache.set(cacheKey, value);\n return value;\n}\n\nexport function renderTimeLabel(locale: string, date: Date, format?: TimeInputProps.Format): string {\n let options: Intl.DateTimeFormatOptions = {};\n if (format === 'hh') {\n options = { hour: '2-digit' };\n }\n if (format === 'hh:mm') {\n options = { hour: '2-digit', minute: '2-digit' };\n }\n const value = date.toLocaleTimeString(locale, options);\n return value;\n}\n"]}
1
+ {"version":3,"file":"intl.js","sourceRoot":"lib/default/","sources":["calendar/utils/intl.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AAItC,SAAS,WAAW,CAAC,IAAU,EAAE,QAAgB;IAC/C,MAAM,IAAI,GAAG,QAAQ,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;IACtC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,MAAc,EAAE,QAAgB,EAAE,IAAsB;IACpF,MAAM,QAAQ,GAAG,IAAI,IAAI,EAAE,CAAC;IAC5B,WAAW,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAChC,OAAO,QAAQ,CAAC,kBAAkB,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;AAChE,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,MAAc,EAAE,QAAc;IAC/D,MAAM,MAAM,GAAG,QAAQ,CAAC,kBAAkB,CAAC,MAAM,EAAE;QACjD,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,MAAM;KACd,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,MAAc,EAAE,IAAU;IACnD,OAAO,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE;QACrC,IAAI,EAAE,SAAS;KAChB,CAAC,CAAC;AACL,CAAC;AAED;;EAEE;AACF,MAAM,aAAa,GAAG,IAAI,GAAG,EAAkB,CAAC;AAChD,MAAM,UAAU,YAAY,CAAC,MAAc,EAAE,IAAU,EAAE,OAAyB,MAAM;IACtF,MAAM,QAAQ,GAAG,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC;IAChD,MAAM,WAAW,GAAG,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAChD,IAAI,WAAW,EAAE;QACf,OAAO,WAAW,CAAC;KACpB;IACD,MAAM,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE;QAC5C,OAAO,EAAE,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;QAC7C,KAAK,EAAE,MAAM;QACb,GAAG,EAAE,SAAS;QACd,IAAI,EAAE,SAAS;KAChB,CAAC,CAAC;IACH,aAAa,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IACnC,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,MAAc,EAAE,IAAU,EAAE,MAA8B;IACxF,IAAI,OAAO,GAA+B,EAAE,CAAC;IAC7C,IAAI,MAAM,KAAK,IAAI,EAAE;QACnB,OAAO,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;KAC/B;IACD,IAAI,MAAM,KAAK,OAAO,EAAE;QACtB,OAAO,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;KAClD;IACD,MAAM,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvD,OAAO,KAAK,CAAC;AACf,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { TimeInputProps } from '../../time-input/interfaces';\n\nfunction setDayIndex(date: Date, dayIndex: number): void {\n const diff = dayIndex - date.getDay();\n date.setDate(date.getDate() + diff);\n}\n\nexport function renderDayName(locale: string, dayIndex: number, mode: 'short' | 'long'): string {\n const tempDate = new Date();\n setDayIndex(tempDate, dayIndex);\n return tempDate.toLocaleDateString(locale, { weekday: mode });\n}\n\nexport function renderMonthAndYear(locale: string, baseDate: Date): string {\n const result = baseDate.toLocaleDateString(locale, {\n year: 'numeric',\n month: 'long',\n });\n\n return result;\n}\n\nexport function renderYear(locale: string, date: Date): string {\n return date.toLocaleDateString(locale, {\n year: 'numeric',\n });\n}\n\n/*\n `toLocaleDateString` is expensive (10+ ms) to calculate in IE11.\n*/\nconst dayLabelCache = new Map<string, string>();\nexport function getDateLabel(locale: string, date: Date, mode: 'full' | 'short' = 'full'): string {\n const cacheKey = locale + date.getTime() + mode;\n const cachedValue = dayLabelCache.get(cacheKey);\n if (cachedValue) {\n return cachedValue;\n }\n const value = date.toLocaleDateString(locale, {\n weekday: mode === 'full' ? 'long' : undefined,\n month: 'long',\n day: 'numeric',\n year: 'numeric',\n });\n dayLabelCache.set(cacheKey, value);\n return value;\n}\n\nexport function renderTimeLabel(locale: string, date: Date, format?: TimeInputProps.Format): string {\n let options: Intl.DateTimeFormatOptions = {};\n if (format === 'hh') {\n options = { hour: '2-digit' };\n }\n if (format === 'hh:mm') {\n options = { hour: '2-digit', minute: '2-digit' };\n }\n const value = date.toLocaleTimeString(locale, options);\n return value;\n}\n"]}
@@ -1,6 +1,12 @@
1
- export declare function moveNextDay(startDate: Date, isDateEnabled: (date: Date) => boolean): Date;
2
- export declare function movePrevDay(startDate: Date, isDateEnabled: (date: Date) => boolean): Date;
3
- export declare function moveNextWeek(startDate: Date, isDateEnabled: (date: Date) => boolean): Date;
4
- export declare function movePrevWeek(startDate: Date, isDateEnabled: (date: Date) => boolean): Date;
5
- export declare function getBaseDay(date: Date, isDateEnabled: (date: Date) => boolean): Date;
1
+ import { CalendarProps } from '../interfaces';
2
+ export declare function moveNextDay(startDate: Date, isDateEnabled: CalendarProps.IsDateEnabledFunction): Date;
3
+ export declare function movePrevDay(startDate: Date, isDateEnabled: CalendarProps.IsDateEnabledFunction): Date;
4
+ export declare function moveNextWeek(startDate: Date, isDateEnabled: CalendarProps.IsDateEnabledFunction): Date;
5
+ export declare function movePrevWeek(startDate: Date, isDateEnabled: CalendarProps.IsDateEnabledFunction): Date;
6
+ export declare function moveNextMonth(startDate: Date, isDateEnabled: CalendarProps.IsDateEnabledFunction): Date;
7
+ export declare function movePrevMonth(startDate: Date, isDateEnabled: CalendarProps.IsDateEnabledFunction): Date;
8
+ export declare function moveMonthDown(startDate: Date, isDateEnabled: CalendarProps.IsDateEnabledFunction): Date;
9
+ export declare function moveMonthUp(startDate: Date, isDateEnabled: CalendarProps.IsDateEnabledFunction): Date;
10
+ export declare function getBaseDay(date: Date, isDateEnabled: CalendarProps.IsDateEnabledFunction): Date;
11
+ export declare function getBaseMonth(date: Date, isDateEnabled: CalendarProps.IsDateEnabledFunction): Date;
6
12
  //# sourceMappingURL=navigation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"navigation.d.ts","sourceRoot":"lib/default/","sources":["calendar/utils/navigation.ts"],"names":[],"mappings":"AAIA,wBAAgB,WAAW,CAAC,SAAS,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,GAAG,IAAI,CAEzF;AAED,wBAAgB,WAAW,CAAC,SAAS,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,GAAG,IAAI,CAEzF;AAED,wBAAgB,YAAY,CAAC,SAAS,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,GAAG,IAAI,CAE1F;AAED,wBAAgB,YAAY,CAAC,SAAS,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,GAAG,IAAI,CAE1F;AAID,wBAAgB,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,QAQ5E"}
1
+ {"version":3,"file":"navigation.d.ts","sourceRoot":"lib/default/","sources":["calendar/utils/navigation.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9C,wBAAgB,WAAW,CAAC,SAAS,EAAE,IAAI,EAAE,aAAa,EAAE,aAAa,CAAC,qBAAqB,QAE9F;AAED,wBAAgB,WAAW,CAAC,SAAS,EAAE,IAAI,EAAE,aAAa,EAAE,aAAa,CAAC,qBAAqB,QAE9F;AAED,wBAAgB,YAAY,CAAC,SAAS,EAAE,IAAI,EAAE,aAAa,EAAE,aAAa,CAAC,qBAAqB,QAE/F;AAED,wBAAgB,YAAY,CAAC,SAAS,EAAE,IAAI,EAAE,aAAa,EAAE,aAAa,CAAC,qBAAqB,QAE/F;AAED,wBAAgB,aAAa,CAAC,SAAS,EAAE,IAAI,EAAE,aAAa,EAAE,aAAa,CAAC,qBAAqB,QAEhG;AAED,wBAAgB,aAAa,CAAC,SAAS,EAAE,IAAI,EAAE,aAAa,EAAE,aAAa,CAAC,qBAAqB,QAEhG;AAED,wBAAgB,aAAa,CAAC,SAAS,EAAE,IAAI,EAAE,aAAa,EAAE,aAAa,CAAC,qBAAqB,QAEhG;AAED,wBAAgB,WAAW,CAAC,SAAS,EAAE,IAAI,EAAE,aAAa,EAAE,aAAa,CAAC,qBAAqB,QAE9F;AAID,wBAAgB,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,aAAa,EAAE,aAAa,CAAC,qBAAqB,QAExF;AAID,wBAAgB,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,aAAa,EAAE,aAAa,CAAC,qBAAqB,QAE1F"}
@@ -1,6 +1,6 @@
1
1
  // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
2
  // SPDX-License-Identifier: Apache-2.0
3
- import { addDays, differenceInYears, isSameMonth, startOfMonth } from 'date-fns';
3
+ import { addDays, addMonths, differenceInYears, isSameMonth, isSameYear, startOfMonth, startOfYear } from 'date-fns';
4
4
  export function moveNextDay(startDate, isDateEnabled) {
5
5
  return moveDay(startDate, isDateEnabled, 1);
6
6
  }
@@ -13,24 +13,60 @@ export function moveNextWeek(startDate, isDateEnabled) {
13
13
  export function movePrevWeek(startDate, isDateEnabled) {
14
14
  return moveDay(startDate, isDateEnabled, -7);
15
15
  }
16
+ export function moveNextMonth(startDate, isDateEnabled) {
17
+ return moveMonth(startDate, isDateEnabled, 1);
18
+ }
19
+ export function movePrevMonth(startDate, isDateEnabled) {
20
+ return moveMonth(startDate, isDateEnabled, -1);
21
+ }
22
+ export function moveMonthDown(startDate, isDateEnabled) {
23
+ return moveMonth(startDate, isDateEnabled, 3);
24
+ }
25
+ export function moveMonthUp(startDate, isDateEnabled) {
26
+ return moveMonth(startDate, isDateEnabled, -3);
27
+ }
16
28
  // Returns first enabled date of the month corresponding to the given date.
17
29
  // If all month's days are disabled, the first day of the month is returned.
18
30
  export function getBaseDay(date, isDateEnabled) {
19
- const startDate = startOfMonth(date);
31
+ return getBaseDate({ date, isDateEnabled, granularity: 'day' });
32
+ }
33
+ // Returns first enabled month of the year corresponding to the given date.
34
+ // If all year's months are disabled, the first month of the year is returned.
35
+ export function getBaseMonth(date, isDateEnabled) {
36
+ return getBaseDate({ date, isDateEnabled, granularity: 'month' });
37
+ }
38
+ function getBaseDate({ date, granularity, isDateEnabled, }) {
39
+ const isMonthGranularity = granularity === 'month';
40
+ const getStartDate = isMonthGranularity ? startOfYear : startOfMonth;
41
+ const moveDate = isMonthGranularity ? moveMonth : moveDay;
42
+ const isSamePage = isMonthGranularity ? isSameYear : isSameMonth;
43
+ const startDate = getStartDate(date);
20
44
  if (isDateEnabled(startDate)) {
21
45
  return startDate;
22
46
  }
23
- const firstEnabledDate = moveDay(startDate, isDateEnabled, 1);
24
- return isSameMonth(startDate, firstEnabledDate) ? firstEnabledDate : startDate;
47
+ const firstEnabledDate = moveDate(startDate, isDateEnabled, 1);
48
+ return isSamePage(startDate, firstEnabledDate) ? firstEnabledDate : startDate;
25
49
  }
50
+ // Iterates days forwards or backwards until the next active day is found.
26
51
  // If there is no active day in a year range, the start day is returned.
27
52
  function moveDay(startDate, isDateEnabled, step) {
28
- let current = addDays(startDate, step);
53
+ return moveDate({ startDate, granularity: 'day', isDateEnabled, step });
54
+ }
55
+ // Iterates months forwards or backwards until the next active month is found.
56
+ // If there is no active month in a 10 year range, the start month is returned.
57
+ function moveMonth(startDate, isDateEnabled, step) {
58
+ return moveDate({ startDate, granularity: 'month', isDateEnabled, step });
59
+ }
60
+ function moveDate({ startDate, granularity, isDateEnabled, step, }) {
61
+ const isMonthGranularity = granularity === 'month';
62
+ const addSteps = isMonthGranularity ? addMonths : addDays;
63
+ const limitYears = isMonthGranularity ? 1 : 10;
64
+ let current = addSteps(startDate, step);
29
65
  while (!isDateEnabled(current)) {
30
- if (Math.abs(differenceInYears(startDate, current)) > 1) {
66
+ if (Math.abs(differenceInYears(startDate, current)) > limitYears) {
31
67
  return startDate;
32
68
  }
33
- current = addDays(current, step);
69
+ current = addSteps(current, step);
34
70
  }
35
71
  return current;
36
72
  }
@@ -1 +1 @@
1
- {"version":3,"file":"navigation.js","sourceRoot":"lib/default/","sources":["calendar/utils/navigation.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AACtC,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAEjF,MAAM,UAAU,WAAW,CAAC,SAAe,EAAE,aAAsC;IACjF,OAAO,OAAO,CAAC,SAAS,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,SAAe,EAAE,aAAsC;IACjF,OAAO,OAAO,CAAC,SAAS,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,SAAe,EAAE,aAAsC;IAClF,OAAO,OAAO,CAAC,SAAS,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,SAAe,EAAE,aAAsC;IAClF,OAAO,OAAO,CAAC,SAAS,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,CAAC;AAC/C,CAAC;AAED,2EAA2E;AAC3E,4EAA4E;AAC5E,MAAM,UAAU,UAAU,CAAC,IAAU,EAAE,aAAsC;IAC3E,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACrC,IAAI,aAAa,CAAC,SAAS,CAAC,EAAE;QAC5B,OAAO,SAAS,CAAC;KAClB;IAED,MAAM,gBAAgB,GAAG,OAAO,CAAC,SAAS,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC;IAC9D,OAAO,WAAW,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,SAAS,CAAC;AACjF,CAAC;AAED,wEAAwE;AACxE,SAAS,OAAO,CAAC,SAAe,EAAE,aAAsC,EAAE,IAAY;IACpF,IAAI,OAAO,GAAG,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAEvC,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE;QAC9B,IAAI,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,EAAE;YACvD,OAAO,SAAS,CAAC;SAClB;QACD,OAAO,GAAG,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;KAClC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { addDays, differenceInYears, isSameMonth, startOfMonth } from 'date-fns';\n\nexport function moveNextDay(startDate: Date, isDateEnabled: (date: Date) => boolean): Date {\n return moveDay(startDate, isDateEnabled, 1);\n}\n\nexport function movePrevDay(startDate: Date, isDateEnabled: (date: Date) => boolean): Date {\n return moveDay(startDate, isDateEnabled, -1);\n}\n\nexport function moveNextWeek(startDate: Date, isDateEnabled: (date: Date) => boolean): Date {\n return moveDay(startDate, isDateEnabled, 7);\n}\n\nexport function movePrevWeek(startDate: Date, isDateEnabled: (date: Date) => boolean): Date {\n return moveDay(startDate, isDateEnabled, -7);\n}\n\n// Returns first enabled date of the month corresponding to the given date.\n// If all month's days are disabled, the first day of the month is returned.\nexport function getBaseDay(date: Date, isDateEnabled: (date: Date) => boolean) {\n const startDate = startOfMonth(date);\n if (isDateEnabled(startDate)) {\n return startDate;\n }\n\n const firstEnabledDate = moveDay(startDate, isDateEnabled, 1);\n return isSameMonth(startDate, firstEnabledDate) ? firstEnabledDate : startDate;\n}\n\n// If there is no active day in a year range, the start day is returned.\nfunction moveDay(startDate: Date, isDateEnabled: (date: Date) => boolean, step: number): Date {\n let current = addDays(startDate, step);\n\n while (!isDateEnabled(current)) {\n if (Math.abs(differenceInYears(startDate, current)) > 1) {\n return startDate;\n }\n current = addDays(current, step);\n }\n\n return current;\n}\n"]}
1
+ {"version":3,"file":"navigation.js","sourceRoot":"lib/default/","sources":["calendar/utils/navigation.ts"],"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 { addDays, addMonths, differenceInYears, isSameMonth, isSameYear, startOfMonth, startOfYear } from 'date-fns';\nimport { CalendarProps } from '../interfaces';\n\nexport function moveNextDay(startDate: Date, isDateEnabled: CalendarProps.IsDateEnabledFunction) {\n return moveDay(startDate, isDateEnabled, 1);\n}\n\nexport function movePrevDay(startDate: Date, isDateEnabled: CalendarProps.IsDateEnabledFunction) {\n return moveDay(startDate, isDateEnabled, -1);\n}\n\nexport function moveNextWeek(startDate: Date, isDateEnabled: CalendarProps.IsDateEnabledFunction) {\n return moveDay(startDate, isDateEnabled, 7);\n}\n\nexport function movePrevWeek(startDate: Date, isDateEnabled: CalendarProps.IsDateEnabledFunction) {\n return moveDay(startDate, isDateEnabled, -7);\n}\n\nexport function moveNextMonth(startDate: Date, isDateEnabled: CalendarProps.IsDateEnabledFunction) {\n return moveMonth(startDate, isDateEnabled, 1);\n}\n\nexport function movePrevMonth(startDate: Date, isDateEnabled: CalendarProps.IsDateEnabledFunction) {\n return moveMonth(startDate, isDateEnabled, -1);\n}\n\nexport function moveMonthDown(startDate: Date, isDateEnabled: CalendarProps.IsDateEnabledFunction) {\n return moveMonth(startDate, isDateEnabled, 3);\n}\n\nexport function moveMonthUp(startDate: Date, isDateEnabled: CalendarProps.IsDateEnabledFunction) {\n return moveMonth(startDate, isDateEnabled, -3);\n}\n\n// Returns first enabled date of the month corresponding to the given date.\n// If all month's days are disabled, the first day of the month is returned.\nexport function getBaseDay(date: Date, isDateEnabled: CalendarProps.IsDateEnabledFunction) {\n return getBaseDate({ date, isDateEnabled, granularity: 'day' });\n}\n\n// Returns first enabled month of the year corresponding to the given date.\n// If all year's months are disabled, the first month of the year is returned.\nexport function getBaseMonth(date: Date, isDateEnabled: CalendarProps.IsDateEnabledFunction) {\n return getBaseDate({ date, isDateEnabled, granularity: 'month' });\n}\n\nfunction getBaseDate({\n date,\n granularity,\n isDateEnabled,\n}: {\n date: Date;\n granularity: CalendarProps.Granularity;\n isDateEnabled: CalendarProps.IsDateEnabledFunction;\n}) {\n const isMonthGranularity = granularity === 'month';\n const getStartDate = isMonthGranularity ? startOfYear : startOfMonth;\n const moveDate = isMonthGranularity ? moveMonth : moveDay;\n const isSamePage = isMonthGranularity ? isSameYear : isSameMonth;\n\n const startDate = getStartDate(date);\n if (isDateEnabled(startDate)) {\n return startDate;\n }\n const firstEnabledDate = moveDate(startDate, isDateEnabled, 1);\n return isSamePage(startDate, firstEnabledDate) ? firstEnabledDate : startDate;\n}\n\n// Iterates days forwards or backwards until the next active day is found.\n// If there is no active day in a year range, the start day is returned.\nfunction moveDay(startDate: Date, isDateEnabled: CalendarProps.IsDateEnabledFunction, step: number): Date {\n return moveDate({ startDate, granularity: 'day', isDateEnabled, step });\n}\n\n// Iterates months forwards or backwards until the next active month is found.\n// If there is no active month in a 10 year range, the start month is returned.\nfunction moveMonth(startDate: Date, isDateEnabled: CalendarProps.IsDateEnabledFunction, step: number): Date {\n return moveDate({ startDate, granularity: 'month', isDateEnabled, step });\n}\n\nfunction moveDate({\n startDate,\n granularity,\n isDateEnabled,\n step,\n}: {\n startDate: Date;\n granularity: CalendarProps.Granularity;\n isDateEnabled: CalendarProps.IsDateEnabledFunction;\n step: number;\n}) {\n const isMonthGranularity = granularity === 'month';\n const addSteps = isMonthGranularity ? addMonths : addDays;\n const limitYears = isMonthGranularity ? 1 : 10;\n\n let current = addSteps(startDate, step);\n\n while (!isDateEnabled(current)) {\n if (Math.abs(differenceInYears(startDate, current)) > limitYears) {\n return startDate;\n }\n current = addSteps(current, step);\n }\n\n return current;\n}\n"]}
@@ -1,6 +1,9 @@
1
1
  import React from 'react';
2
2
  import { DateInputProps } from './interfaces';
3
3
  import { InternalBaseComponentProps } from '../internal/hooks/use-base-component';
4
- declare const InternalDateInput: React.ForwardRefExoticComponent<DateInputProps & InternalBaseComponentProps<any> & React.RefAttributes<HTMLInputElement>>;
4
+ import { CalendarProps } from '../calendar/interfaces';
5
+ declare const InternalDateInput: React.ForwardRefExoticComponent<DateInputProps & InternalBaseComponentProps<any> & {
6
+ granularity?: CalendarProps.Granularity | undefined;
7
+ } & React.RefAttributes<HTMLInputElement>>;
5
8
  export default InternalDateInput;
6
9
  //# sourceMappingURL=internal.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"internal.d.ts","sourceRoot":"lib/default/","sources":["date-input/internal.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAc,MAAM,OAAO,CAAC;AAQnC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,0BAA0B,EAAE,MAAM,sCAAsC,CAAC;AAoBlF,QAAA,MAAM,iBAAiB,2HAkBtB,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
1
+ {"version":3,"file":"internal.d.ts","sourceRoot":"lib/default/","sources":["date-input/internal.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAc,MAAM,OAAO,CAAC;AAQnC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,0BAA0B,EAAE,MAAM,sCAAsC,CAAC;AAClF,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAiBvD,QAAA,MAAM,iBAAiB;;0CA2BtB,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
@@ -13,17 +13,16 @@ function daysMax(value) {
13
13
  const baseDate = displayToIso(value).substring(0, 7);
14
14
  return getDaysInMonth(parseDate(baseDate));
15
15
  }
16
- const maskArgs = {
17
- separator: '/',
18
- inputSeparators: ['-', '.', ' '],
19
- segments: [
20
- { min: 0, max: 9999, default: 2000, length: 4 },
21
- { min: 1, max: 12, length: 2 },
22
- { min: 1, max: daysMax, length: 2 },
23
- ],
24
- };
16
+ const yearMask = { min: 0, max: 9999, default: 2000, length: 4 };
17
+ const monthMask = { min: 1, max: 12, length: 2 };
18
+ const dayMask = { min: 1, max: daysMax, length: 2 };
25
19
  const InternalDateInput = React.forwardRef((_a, ref) => {
26
- var { value, onChange, __internalRootRef = null } = _a, props = __rest(_a, ["value", "onChange", "__internalRootRef"]);
20
+ var { value, onChange, granularity, __internalRootRef = null } = _a, props = __rest(_a, ["value", "onChange", "granularity", "__internalRootRef"]);
21
+ const maskArgs = {
22
+ separator: '/',
23
+ inputSeparators: ['-', '.', ' '],
24
+ segments: granularity === 'month' ? [yearMask, monthMask] : [yearMask, monthMask, dayMask],
25
+ };
27
26
  return (React.createElement(MaskedInput, Object.assign({ ref: ref }, props, { value: isoToDisplay(value || ''), onChange: event => fireNonCancelableEvent(onChange, { value: displayToIso(event.detail.value) }), className: clsx(styles.root, props.className), mask: maskArgs, autofix: true, autoComplete: false, disableAutocompleteOnBlur: false, disableBrowserAutocorrect: true, __internalRootRef: __internalRootRef })));
28
27
  });
29
28
  export default InternalDateInput;