@cloudscape-design/components 3.0.600 → 3.0.602

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 (108) hide show
  1. package/app-layout/classic.d.ts +5 -1
  2. package/app-layout/classic.d.ts.map +1 -1
  3. package/app-layout/classic.js +1 -1
  4. package/app-layout/classic.js.map +1 -1
  5. package/app-layout/implementation.d.ts +5 -1
  6. package/app-layout/implementation.d.ts.map +1 -1
  7. package/app-layout/implementation.js.map +1 -1
  8. package/app-layout/interfaces.d.ts +2 -0
  9. package/app-layout/interfaces.d.ts.map +1 -1
  10. package/app-layout/interfaces.js.map +1 -1
  11. package/app-layout/internal.d.ts +5 -1
  12. package/app-layout/internal.d.ts.map +1 -1
  13. package/app-layout/visual-refresh/context.d.ts +3 -3
  14. package/app-layout/visual-refresh/context.d.ts.map +1 -1
  15. package/app-layout/visual-refresh/context.js +1 -1
  16. package/app-layout/visual-refresh/context.js.map +1 -1
  17. package/app-layout/visual-refresh/index.d.ts +5 -1
  18. package/app-layout/visual-refresh/index.d.ts.map +1 -1
  19. package/app-layout/visual-refresh/index.js.map +1 -1
  20. package/app-layout/widget.d.ts +2 -2
  21. package/app-layout/widget.d.ts.map +1 -1
  22. package/app-layout/widget.js.map +1 -1
  23. package/button-dropdown/internal.d.ts.map +1 -1
  24. package/button-dropdown/internal.js +2 -1
  25. package/button-dropdown/internal.js.map +1 -1
  26. package/calendar/grid/index.d.ts +1 -1
  27. package/calendar/grid/index.d.ts.map +1 -1
  28. package/calendar/grid/index.js.map +1 -1
  29. package/calendar/grid/use-calendar-grid-keyboard-navigation.d.ts +1 -1
  30. package/calendar/grid/use-calendar-grid-keyboard-navigation.d.ts.map +1 -1
  31. package/calendar/grid/use-calendar-grid-keyboard-navigation.js +16 -28
  32. package/calendar/grid/use-calendar-grid-keyboard-navigation.js.map +1 -1
  33. package/date-range-picker/calendar/grids/grid.d.ts +1 -1
  34. package/date-range-picker/calendar/grids/grid.d.ts.map +1 -1
  35. package/date-range-picker/calendar/grids/grid.js +4 -4
  36. package/date-range-picker/calendar/grids/grid.js.map +1 -1
  37. package/date-range-picker/calendar/grids/index.d.ts.map +1 -1
  38. package/date-range-picker/calendar/grids/index.js +14 -28
  39. package/date-range-picker/calendar/grids/index.js.map +1 -1
  40. package/date-range-picker/calendar/grids/styles.css.js +27 -25
  41. package/date-range-picker/calendar/grids/styles.scoped.css +54 -54
  42. package/date-range-picker/calendar/grids/styles.selectors.js +27 -25
  43. package/internal/direction.d.ts +9 -0
  44. package/internal/direction.d.ts.map +1 -0
  45. package/internal/direction.js +15 -0
  46. package/internal/direction.js.map +1 -0
  47. package/internal/environment.js +1 -1
  48. package/internal/environment.json +1 -1
  49. package/internal/manifest.json +1 -1
  50. package/internal/utils/handle-key.d.ts +13 -0
  51. package/internal/utils/handle-key.d.ts.map +1 -0
  52. package/internal/utils/handle-key.js +37 -0
  53. package/internal/utils/handle-key.js.map +1 -0
  54. package/package.json +1 -1
  55. package/segmented-control/internal-segmented-control.d.ts.map +1 -1
  56. package/segmented-control/internal-segmented-control.js +5 -6
  57. package/segmented-control/internal-segmented-control.js.map +1 -1
  58. package/table/body-cell/index.d.ts.map +1 -1
  59. package/table/body-cell/index.js +6 -3
  60. package/table/body-cell/index.js.map +1 -1
  61. package/table/body-cell/styles.css.js +43 -42
  62. package/table/body-cell/styles.scoped.css +203 -200
  63. package/table/body-cell/styles.selectors.js +43 -42
  64. package/table/body-cell/td-element.d.ts +6 -2
  65. package/table/body-cell/td-element.d.ts.map +1 -1
  66. package/table/body-cell/td-element.js +6 -6
  67. package/table/body-cell/td-element.js.map +1 -1
  68. package/table/expandable-rows/expand-toggle-button.d.ts +6 -2
  69. package/table/expandable-rows/expand-toggle-button.d.ts.map +1 -1
  70. package/table/expandable-rows/expand-toggle-button.js +1 -6
  71. package/table/expandable-rows/expand-toggle-button.js.map +1 -1
  72. package/table/expandable-rows/expandable-rows-utils.d.ts +3 -2
  73. package/table/expandable-rows/expandable-rows-utils.d.ts.map +1 -1
  74. package/table/expandable-rows/expandable-rows-utils.js.map +1 -1
  75. package/table/index.d.ts.map +1 -1
  76. package/table/index.js +3 -0
  77. package/table/index.js.map +1 -1
  78. package/table/internal.d.ts.map +1 -1
  79. package/table/internal.js +5 -7
  80. package/table/internal.js.map +1 -1
  81. package/table/selection/selection-control.d.ts +1 -3
  82. package/table/selection/selection-control.d.ts.map +1 -1
  83. package/table/selection/selection-control.js +5 -3
  84. package/table/selection/selection-control.js.map +1 -1
  85. package/table/table-role/grid-navigation.d.ts.map +1 -1
  86. package/table/table-role/grid-navigation.js +10 -9
  87. package/table/table-role/grid-navigation.js.map +1 -1
  88. package/table/table-role/table-role-helper.d.ts +3 -5
  89. package/table/table-role/table-role-helper.d.ts.map +1 -1
  90. package/table/table-role/table-role-helper.js +8 -4
  91. package/table/table-role/table-role-helper.js.map +1 -1
  92. package/table/table-role/utils.d.ts +1 -0
  93. package/table/table-role/utils.d.ts.map +1 -1
  94. package/table/table-role/utils.js +4 -1
  95. package/table/table-role/utils.js.map +1 -1
  96. package/table/thead.d.ts.map +1 -1
  97. package/table/thead.js +1 -1
  98. package/table/thead.js.map +1 -1
  99. package/tabs/scroll-utils.d.ts +4 -4
  100. package/tabs/scroll-utils.d.ts.map +1 -1
  101. package/tabs/scroll-utils.js +14 -14
  102. package/tabs/scroll-utils.js.map +1 -1
  103. package/tabs/tab-header-bar.d.ts.map +1 -1
  104. package/tabs/tab-header-bar.js +25 -50
  105. package/tabs/tab-header-bar.js.map +1 -1
  106. package/top-navigation/parts/overflow-menu/menu-item.d.ts.map +1 -1
  107. package/top-navigation/parts/overflow-menu/menu-item.js +2 -1
  108. package/top-navigation/parts/overflow-menu/menu-item.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"grid.js","sourceRoot":"","sources":["../../../../../src/date-range-picker/calendar/grids/grid.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, { useMemo } from 'react';\nimport styles from './styles.css.js';\nimport {\n isSameMonth,\n isAfter,\n isBefore,\n isSameDay,\n addWeeks,\n addDays,\n isLastDayOfMonth,\n getDaysInMonth,\n isToday,\n} from 'date-fns';\nimport { getCalendarMonth } from 'mnth';\nimport { DateRangePickerProps, DayIndex } from '../../interfaces';\nimport { getDateLabel, renderDayName } from '../../../calendar/utils/intl';\nimport clsx from 'clsx';\nimport { formatDate } from '../../../internal/utils/date-time';\nimport ScreenreaderOnly from '../../../internal/components/screenreader-only/index.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 day is announced as \"not selected\";\n * - (keyboard navigation) Safari/Chrome+VO - weekdays are not announced;\n * - (keyboard navigation) Safari/Chrome+VO - days are not announced as interactive (clickable or selectable);\n * - (keyboard navigation) Safari/Chrome+VO - day announcements are not interruptive and can be missed if navigating fast.\n */\n\nexport interface GridProps {\n baseDate: Date;\n selectedStartDate: Date | null;\n selectedEndDate: Date | null;\n\n rangeStartDate: Date | null;\n rangeEndDate: Date | null;\n\n focusedDate: Date | null;\n focusedDateRef: React.RefObject<HTMLTableCellElement>;\n\n onSelectDate: (date: Date) => void;\n onGridKeyDownHandler: (e: React.KeyboardEvent) => void;\n onFocusedDateChange: React.Dispatch<React.SetStateAction<Date | null>>;\n\n isDateEnabled: DateRangePickerProps.IsDateEnabledFunction;\n\n locale: string;\n startOfWeek: DayIndex;\n todayAriaLabel?: string;\n ariaLabelledby: string;\n\n className?: string;\n}\n\nexport function Grid({\n baseDate,\n selectedStartDate,\n selectedEndDate,\n rangeStartDate,\n rangeEndDate,\n focusedDate,\n\n focusedDateRef,\n\n onSelectDate,\n onGridKeyDownHandler,\n onFocusedDateChange,\n\n isDateEnabled,\n\n locale,\n startOfWeek,\n todayAriaLabel,\n ariaLabelledby,\n\n className,\n}: GridProps) {\n const baseDateTime = baseDate?.getTime();\n // `baseDateTime` is used as a more stable replacement for baseDate\n const weeks = useMemo<Date[][]>(\n () => getCalendarMonth(baseDate, { firstDayOfWeek: startOfWeek }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [baseDateTime, startOfWeek]\n );\n const weekdays = weeks[0].map(date => date.getDay());\n\n return (\n <table role=\"grid\" aria-labelledby={ariaLabelledby} className={clsx(styles.grid, className)}>\n <thead>\n <tr>\n {weekdays.map(dayIndex => (\n <th key={dayIndex} scope=\"col\" className={clsx(styles['grid-cell'], styles['day-header'])}>\n <span aria-hidden=\"true\">{renderDayName(locale, dayIndex, 'short')}</span>\n <ScreenreaderOnly>{renderDayName(locale, dayIndex, 'long')}</ScreenreaderOnly>\n </th>\n ))}\n </tr>\n </thead>\n <tbody onKeyDown={onGridKeyDownHandler}>\n {weeks.map((week, weekIndex) => {\n return (\n <tr key={weekIndex} className={styles.week}>\n {week.map((date, dateIndex) => {\n const isStartDate = !!selectedStartDate && isSameDay(date, selectedStartDate);\n const isEndDate = !!selectedEndDate && isSameDay(date, selectedEndDate);\n const isSelected = isStartDate || isEndDate;\n const isRangeStartDate = !!rangeStartDate && isSameDay(date, rangeStartDate);\n const isRangeEndDate = !!rangeEndDate && isSameDay(date, rangeEndDate);\n\n const isFocused = !!focusedDate && isSameDay(date, focusedDate) && isSameMonth(date, baseDate);\n\n const dateIsInRange = isStartDate || isEndDate || isInRange(date, rangeStartDate, rangeEndDate);\n const inRangeStartWeek =\n rangeStartDate && isInRange(date, rangeStartDate, addDays(addWeeks(rangeStartDate, 1), -1));\n const inRangeEndWeek =\n rangeEndDate && isInRange(date, rangeEndDate, addDays(addWeeks(rangeEndDate, -1), 1));\n const onlyOneSelected =\n !!rangeStartDate && !!rangeEndDate\n ? isSameDay(rangeStartDate, rangeEndDate)\n : !selectedStartDate || !selectedEndDate;\n\n const isEnabled = !isDateEnabled || isDateEnabled(date);\n const isFocusable = isFocused && isEnabled;\n\n const baseClasses = {\n [styles.day]: true,\n [styles['grid-cell']]: true,\n [styles['in-first-row']]: weekIndex === 0,\n [styles['in-first-column']]: dateIndex === 0,\n };\n\n if (!isSameMonth(date, baseDate)) {\n return (\n <td\n key={`${weekIndex}:${dateIndex}`}\n ref={isFocused ? focusedDateRef : undefined}\n className={clsx(baseClasses, {\n [styles['in-previous-month']]: isBefore(date, baseDate),\n [styles['last-day-of-month']]: isLastDayOfMonth(date),\n [styles['in-next-month']]: isAfter(date, baseDate),\n })}\n ></td>\n );\n }\n\n const handlers: React.HTMLAttributes<HTMLDivElement> = {};\n if (isEnabled) {\n handlers.onClick = () => onSelectDate(date);\n handlers.onFocus = () => onFocusedDateChange(date);\n }\n\n // Can't be focused.\n let tabIndex = undefined;\n if (isFocusable && isEnabled) {\n // Next focus target.\n tabIndex = 0;\n } else if (isEnabled) {\n // Can be focused programmatically.\n tabIndex = -1;\n }\n\n // Screen-reader announcement for the focused day.\n let dayAnnouncement = getDateLabel(locale, date, 'short');\n if (isToday(date)) {\n dayAnnouncement += '. ' + todayAriaLabel;\n }\n\n return (\n <td\n ref={isFocused ? focusedDateRef : undefined}\n key={`${weekIndex}:${dateIndex}`}\n className={clsx(baseClasses, {\n [styles['in-current-month']]: isSameMonth(date, baseDate),\n [styles.enabled]: isEnabled,\n [styles.selected]: isSelected,\n [styles['start-date']]: isStartDate,\n [styles['end-date']]: isEndDate,\n [styles['range-start-date']]: isRangeStartDate,\n [styles['range-end-date']]: isRangeEndDate,\n [styles['no-range']]: isSelected && onlyOneSelected,\n [styles['in-range']]: dateIsInRange,\n [styles['in-range-border-top']]: !!inRangeStartWeek || date.getDate() <= 7,\n [styles['in-range-border-bottom']]: !!inRangeEndWeek || date.getDate() > getDaysInMonth(date) - 7,\n [styles['in-range-border-left']]: dateIndex === 0 || date.getDate() === 1 || isRangeStartDate,\n [styles['in-range-border-right']]:\n dateIndex === week.length - 1 || isLastDayOfMonth(date) || isRangeEndDate,\n [styles.today]: isToday(date),\n })}\n aria-selected={isEnabled ? isSelected || dateIsInRange : undefined}\n aria-current={isToday(date) ? 'date' : undefined}\n data-date={formatDate(date)}\n aria-disabled={!isEnabled}\n tabIndex={tabIndex}\n {...handlers}\n >\n <span className={styles['day-inner']} aria-hidden=\"true\">\n {date.getDate()}\n </span>\n <ScreenreaderOnly>{dayAnnouncement}</ScreenreaderOnly>\n </td>\n );\n })}\n </tr>\n );\n })}\n </tbody>\n </table>\n );\n}\n\nfunction isInRange(date: Date, dateOne: Date | null, dateTwo: Date | null) {\n if (!dateOne || !dateTwo || isSameDay(dateOne, dateTwo)) {\n return false;\n }\n\n const inRange =\n (isAfter(date, dateOne) && isBefore(date, dateTwo)) || (isAfter(date, dateTwo) && isBefore(date, dateOne));\n\n return inRange || isSameDay(date, dateOne) || isSameDay(date, dateTwo);\n}\n"]}
1
+ {"version":3,"file":"grid.js","sourceRoot":"","sources":["../../../../../src/date-range-picker/calendar/grids/grid.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, { useMemo } from 'react';\nimport styles from './styles.css.js';\nimport {\n isSameMonth,\n isAfter,\n isBefore,\n isSameDay,\n addWeeks,\n addDays,\n isLastDayOfMonth,\n getDaysInMonth,\n isToday,\n} from 'date-fns';\nimport { getCalendarMonth } from 'mnth';\nimport { DateRangePickerProps, DayIndex } from '../../interfaces';\nimport { getDateLabel, renderDayName } from '../../../calendar/utils/intl';\nimport clsx from 'clsx';\nimport { formatDate } from '../../../internal/utils/date-time';\nimport ScreenreaderOnly from '../../../internal/components/screenreader-only/index.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 day is announced as \"not selected\";\n * - (keyboard navigation) Safari/Chrome+VO - weekdays are not announced;\n * - (keyboard navigation) Safari/Chrome+VO - days are not announced as interactive (clickable or selectable);\n * - (keyboard navigation) Safari/Chrome+VO - day announcements are not interruptive and can be missed if navigating fast.\n */\n\nexport interface GridProps {\n baseDate: Date;\n selectedStartDate: Date | null;\n selectedEndDate: Date | null;\n\n rangeStartDate: Date | null;\n rangeEndDate: Date | null;\n\n focusedDate: Date | null;\n focusedDateRef: React.RefObject<HTMLTableCellElement>;\n\n onSelectDate: (date: Date) => void;\n onGridKeyDownHandler: (e: React.KeyboardEvent<HTMLElement>) => void;\n onFocusedDateChange: React.Dispatch<React.SetStateAction<Date | null>>;\n\n isDateEnabled: DateRangePickerProps.IsDateEnabledFunction;\n\n locale: string;\n startOfWeek: DayIndex;\n todayAriaLabel?: string;\n ariaLabelledby: string;\n\n className?: string;\n}\n\nexport function Grid({\n baseDate,\n selectedStartDate,\n selectedEndDate,\n rangeStartDate,\n rangeEndDate,\n focusedDate,\n\n focusedDateRef,\n\n onSelectDate,\n onGridKeyDownHandler,\n onFocusedDateChange,\n\n isDateEnabled,\n\n locale,\n startOfWeek,\n todayAriaLabel,\n ariaLabelledby,\n\n className,\n}: GridProps) {\n const baseDateTime = baseDate?.getTime();\n // `baseDateTime` is used as a more stable replacement for baseDate\n const weeks = useMemo<Date[][]>(\n () => getCalendarMonth(baseDate, { firstDayOfWeek: startOfWeek }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [baseDateTime, startOfWeek]\n );\n const weekdays = weeks[0].map(date => date.getDay());\n\n return (\n <table role=\"grid\" aria-labelledby={ariaLabelledby} className={clsx(styles.grid, className)}>\n <thead>\n <tr>\n {weekdays.map(dayIndex => (\n <th key={dayIndex} scope=\"col\" className={clsx(styles['grid-cell'], styles['day-header'])}>\n <span aria-hidden=\"true\">{renderDayName(locale, dayIndex, 'short')}</span>\n <ScreenreaderOnly>{renderDayName(locale, dayIndex, 'long')}</ScreenreaderOnly>\n </th>\n ))}\n </tr>\n </thead>\n <tbody onKeyDown={onGridKeyDownHandler}>\n {weeks.map((week, weekIndex) => {\n return (\n <tr key={weekIndex} className={styles.week}>\n {week.map((date, dateIndex) => {\n const isStartDate = !!selectedStartDate && isSameDay(date, selectedStartDate);\n const isEndDate = !!selectedEndDate && isSameDay(date, selectedEndDate);\n const isSelected = isStartDate || isEndDate;\n const isRangeStartDate = !!rangeStartDate && isSameDay(date, rangeStartDate);\n const isRangeEndDate = !!rangeEndDate && isSameDay(date, rangeEndDate);\n\n const isFocused = !!focusedDate && isSameDay(date, focusedDate) && isSameMonth(date, baseDate);\n\n const dateIsInRange = isStartDate || isEndDate || isInRange(date, rangeStartDate, rangeEndDate);\n const inRangeStartWeek =\n rangeStartDate && isInRange(date, rangeStartDate, addDays(addWeeks(rangeStartDate, 1), -1));\n const inRangeEndWeek =\n rangeEndDate && isInRange(date, rangeEndDate, addDays(addWeeks(rangeEndDate, -1), 1));\n const onlyOneSelected =\n !!rangeStartDate && !!rangeEndDate\n ? isSameDay(rangeStartDate, rangeEndDate)\n : !selectedStartDate || !selectedEndDate;\n\n const isEnabled = !isDateEnabled || isDateEnabled(date);\n const isFocusable = isFocused && isEnabled;\n\n const baseClasses = {\n [styles.day]: true,\n [styles['grid-cell']]: true,\n [styles['in-first-row']]: weekIndex === 0,\n [styles['in-first-column']]: dateIndex === 0,\n };\n\n if (!isSameMonth(date, baseDate)) {\n return (\n <td\n key={`${weekIndex}:${dateIndex}`}\n ref={isFocused ? focusedDateRef : undefined}\n className={clsx(baseClasses, {\n [styles['in-previous-month']]: isBefore(date, baseDate),\n [styles['last-day-of-month']]: isLastDayOfMonth(date),\n [styles['in-next-month']]: isAfter(date, baseDate),\n })}\n ></td>\n );\n }\n\n const handlers: React.HTMLAttributes<HTMLDivElement> = {};\n if (isEnabled) {\n handlers.onClick = () => onSelectDate(date);\n handlers.onFocus = () => onFocusedDateChange(date);\n }\n\n // Can't be focused.\n let tabIndex = undefined;\n if (isFocusable && isEnabled) {\n // Next focus target.\n tabIndex = 0;\n } else if (isEnabled) {\n // Can be focused programmatically.\n tabIndex = -1;\n }\n\n // Screen-reader announcement for the focused day.\n let dayAnnouncement = getDateLabel(locale, date, 'short');\n if (isToday(date)) {\n dayAnnouncement += '. ' + todayAriaLabel;\n }\n\n return (\n <td\n ref={isFocused ? focusedDateRef : undefined}\n key={`${weekIndex}:${dateIndex}`}\n className={clsx(baseClasses, {\n [styles['in-current-month']]: isSameMonth(date, baseDate),\n [styles.enabled]: isEnabled,\n [styles.selected]: isSelected,\n [styles['start-date']]: isStartDate,\n [styles['end-date']]: isEndDate,\n [styles['range-start-date']]: isRangeStartDate,\n [styles['range-end-date']]: isRangeEndDate,\n [styles['no-range']]: isSelected && onlyOneSelected,\n [styles['in-range']]: dateIsInRange,\n [styles['in-range-border-block-start']]: !!inRangeStartWeek || date.getDate() <= 7,\n [styles['in-range-border-block-end']]:\n !!inRangeEndWeek || date.getDate() > getDaysInMonth(date) - 7,\n [styles['in-range-border-inline-start']]:\n dateIndex === 0 || date.getDate() === 1 || isRangeStartDate,\n [styles['in-range-border-inline-end']]:\n dateIndex === week.length - 1 || isLastDayOfMonth(date) || isRangeEndDate,\n [styles.today]: isToday(date),\n })}\n aria-selected={isEnabled ? isSelected || dateIsInRange : undefined}\n aria-current={isToday(date) ? 'date' : undefined}\n data-date={formatDate(date)}\n aria-disabled={!isEnabled}\n tabIndex={tabIndex}\n {...handlers}\n >\n <span className={styles['day-inner']} aria-hidden=\"true\">\n {date.getDate()}\n </span>\n <ScreenreaderOnly>{dayAnnouncement}</ScreenreaderOnly>\n </td>\n );\n })}\n </tr>\n );\n })}\n </tbody>\n </table>\n );\n}\n\nfunction isInRange(date: Date, dateOne: Date | null, dateTwo: Date | null) {\n if (!dateOne || !dateTwo || isSameDay(dateOne, dateTwo)) {\n return false;\n }\n\n const inRange =\n (isAfter(date, dateOne) && isBefore(date, dateTwo)) || (isAfter(date, dateTwo) && isBefore(date, dateOne));\n\n return inRange || isSameDay(date, dateOne) || isSameDay(date, dateTwo);\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/date-range-picker/calendar/grids/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAI3D,OAAO,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAoBlE,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,IAAI,CAAC;IACf,iBAAiB,EAAE,IAAI,GAAG,IAAI,CAAC;IAC/B,eAAe,EAAE,IAAI,GAAG,IAAI,CAAC;IAE7B,WAAW,EAAE,IAAI,GAAG,IAAI,CAAC;IACzB,mBAAmB,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC;IAEvE,aAAa,EAAE,oBAAoB,CAAC,qBAAqB,CAAC;IAC1D,YAAY,EAAE,OAAO,CAAC;IAEtB,YAAY,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IACnC,aAAa,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IAEpC,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,QAAQ,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,eAAO,MAAM,KAAK,wMAkBf,SAAS,gBAsJX,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/date-range-picker/calendar/grids/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAI3D,OAAO,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAqBlE,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,IAAI,CAAC;IACf,iBAAiB,EAAE,IAAI,GAAG,IAAI,CAAC;IAC/B,eAAe,EAAE,IAAI,GAAG,IAAI,CAAC;IAE7B,WAAW,EAAE,IAAI,GAAG,IAAI,CAAC;IACzB,mBAAmB,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC;IAEvE,aAAa,EAAE,oBAAoB,CAAC,qBAAqB,CAAC;IAC1D,YAAY,EAAE,OAAO,CAAC;IAEtB,YAAY,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IACnC,aAAa,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IAEpC,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,QAAQ,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,eAAO,MAAM,KAAK,wMAkBf,SAAS,gBA0IX,CAAC"}
@@ -10,6 +10,7 @@ import { hasValue } from '../../../internal/utils/has-value';
10
10
  import { useDateCache } from '../../../internal/hooks/use-date-cache';
11
11
  import { moveNextDay, movePrevDay, moveNextWeek, movePrevWeek, getBaseDay } from '../../../calendar/utils/navigation';
12
12
  import { findDateToFocus } from '../utils';
13
+ import handleKey from '../../../internal/utils/handle-key';
13
14
  function isVisible(date, baseDate, isSingleGrid) {
14
15
  if (isSingleGrid) {
15
16
  return isSameMonth(date, baseDate);
@@ -33,37 +34,22 @@ export const Grids = ({ baseDate, selectedStartDate, selectedEndDate, focusedDat
33
34
  onFocusedDateChange(newFocusedDate);
34
35
  }
35
36
  }, [baseDate, focusedDate, isSingleGrid, isDateEnabled, onFocusedDateChange]);
36
- const onGridKeyDownHandler = (e) => {
37
+ const onGridKeyDownHandler = (event) => {
37
38
  let updatedFocusDate;
38
- if (focusedDate === null) {
39
+ const keys = [KeyCode.up, KeyCode.down, KeyCode.left, KeyCode.right, KeyCode.space, KeyCode.enter];
40
+ if (focusedDate === null || keys.indexOf(event.keyCode) === -1) {
39
41
  return;
40
42
  }
41
- switch (e.keyCode) {
42
- case KeyCode.space:
43
- case KeyCode.enter:
44
- e.preventDefault();
45
- if (focusedDate) {
46
- onSelectDate(focusedDate);
47
- }
48
- return;
49
- case KeyCode.right:
50
- e.preventDefault();
51
- updatedFocusDate = moveNextDay(focusedDate, isDateEnabled);
52
- break;
53
- case KeyCode.left:
54
- e.preventDefault();
55
- updatedFocusDate = movePrevDay(focusedDate, isDateEnabled);
56
- break;
57
- case KeyCode.up:
58
- e.preventDefault();
59
- updatedFocusDate = movePrevWeek(focusedDate, isDateEnabled);
60
- break;
61
- case KeyCode.down:
62
- e.preventDefault();
63
- updatedFocusDate = moveNextWeek(focusedDate, isDateEnabled);
64
- break;
65
- default:
66
- return;
43
+ event.preventDefault();
44
+ handleKey(event, {
45
+ onActivate: () => focusedDate && onSelectDate(focusedDate),
46
+ onBlockEnd: () => focusedDate && (updatedFocusDate = moveNextWeek(focusedDate, isDateEnabled)),
47
+ onBlockStart: () => focusedDate && (updatedFocusDate = movePrevWeek(focusedDate, isDateEnabled)),
48
+ onInlineEnd: () => focusedDate && (updatedFocusDate = moveNextDay(focusedDate, isDateEnabled)),
49
+ onInlineStart: () => focusedDate && (updatedFocusDate = movePrevDay(focusedDate, isDateEnabled)),
50
+ });
51
+ if (!updatedFocusDate) {
52
+ return;
67
53
  }
68
54
  const updatedDateIsVisible = isVisible(updatedFocusDate, baseDate, isSingleGrid);
69
55
  if (!updatedDateIsVisible) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/date-range-picker/calendar/grids/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, { useEffect, useRef, useState } from 'react';\nimport { KeyCode } from '../../../internal/keycode';\nimport { isSameMonth, isAfter, isBefore, addMonths, min, max } from 'date-fns';\n\nimport { DateRangePickerProps, DayIndex } from '../../interfaces';\nimport InternalSpaceBetween from '../../../space-between/internal';\nimport { Grid } from './grid';\nimport styles from '../../styles.css.js';\n\nimport { hasValue } from '../../../internal/utils/has-value';\nimport { useDateCache } from '../../../internal/hooks/use-date-cache';\nimport { moveNextDay, movePrevDay, moveNextWeek, movePrevWeek, getBaseDay } from '../../../calendar/utils/navigation';\nimport { findDateToFocus } from '../utils';\n\nfunction isVisible(date: Date, baseDate: Date, isSingleGrid: boolean) {\n if (isSingleGrid) {\n return isSameMonth(date, baseDate);\n }\n\n const previousMonth = addMonths(baseDate, -1);\n\n return isSameMonth(date, previousMonth) || isSameMonth(date, baseDate);\n}\n\nexport interface GridProps {\n baseDate: Date;\n selectedStartDate: Date | null;\n selectedEndDate: Date | null;\n\n focusedDate: Date | null;\n onFocusedDateChange: React.Dispatch<React.SetStateAction<Date | null>>;\n\n isDateEnabled: DateRangePickerProps.IsDateEnabledFunction;\n isSingleGrid: boolean;\n\n onSelectDate: (date: Date) => void;\n onChangeMonth: (date: Date) => void;\n\n locale: string;\n startOfWeek: DayIndex;\n todayAriaLabel?: string;\n headingIdPrefix: string;\n}\n\nexport const Grids = ({\n baseDate,\n selectedStartDate,\n selectedEndDate,\n\n focusedDate,\n onFocusedDateChange,\n\n isDateEnabled,\n isSingleGrid,\n\n onSelectDate,\n onChangeMonth,\n\n locale,\n startOfWeek,\n todayAriaLabel,\n headingIdPrefix,\n}: GridProps) => {\n const containerRef = useRef<HTMLDivElement>(null);\n const [gridHasFocus, setGridHasFocus] = useState(false);\n\n const focusedDateRef = useRef<HTMLTableCellElement>(null);\n\n const dateCache = useDateCache();\n baseDate = dateCache(baseDate);\n focusedDate = focusedDate ? dateCache(focusedDate) : null;\n\n useEffect(() => {\n if (focusedDate && !isVisible(focusedDate, baseDate, isSingleGrid)) {\n const direction = isAfter(focusedDate, baseDate) ? -1 : 1;\n\n const newMonth = !isSingleGrid && direction === -1 ? addMonths(baseDate, -1) : baseDate;\n const nearestBaseDate = getBaseDay(newMonth, isDateEnabled);\n\n const newFocusedDate = findDateToFocus(focusedDate, nearestBaseDate, isDateEnabled);\n\n onFocusedDateChange(newFocusedDate);\n }\n }, [baseDate, focusedDate, isSingleGrid, isDateEnabled, onFocusedDateChange]);\n\n const onGridKeyDownHandler = (e: React.KeyboardEvent) => {\n let updatedFocusDate;\n\n if (focusedDate === null) {\n return;\n }\n\n switch (e.keyCode) {\n case KeyCode.space:\n case KeyCode.enter:\n e.preventDefault();\n if (focusedDate) {\n onSelectDate(focusedDate);\n }\n return;\n case KeyCode.right:\n e.preventDefault();\n updatedFocusDate = moveNextDay(focusedDate, isDateEnabled);\n break;\n case KeyCode.left:\n e.preventDefault();\n updatedFocusDate = movePrevDay(focusedDate, isDateEnabled);\n break;\n case KeyCode.up:\n e.preventDefault();\n updatedFocusDate = movePrevWeek(focusedDate, isDateEnabled);\n break;\n case KeyCode.down:\n e.preventDefault();\n updatedFocusDate = moveNextWeek(focusedDate, isDateEnabled);\n break;\n default:\n return;\n }\n\n const updatedDateIsVisible = isVisible(updatedFocusDate, baseDate, isSingleGrid);\n\n if (!updatedDateIsVisible) {\n const newMonthIsOnLeftSide = !isSingleGrid && isBefore(updatedFocusDate, baseDate);\n\n onChangeMonth(newMonthIsOnLeftSide ? addMonths(updatedFocusDate, 1) : updatedFocusDate);\n }\n onFocusedDateChange(updatedFocusDate);\n };\n\n useEffect(() => {\n // focus current date if the focus is already inside the calendar\n if (focusedDate !== null && gridHasFocus) {\n if (focusedDateRef.current && focusedDateRef.current !== document.activeElement) {\n focusedDateRef.current.focus();\n }\n }\n }, [focusedDate, gridHasFocus]);\n\n const onGridBlur = (event: React.FocusEvent) => {\n /*\n IE11 does not support event.relatedTarget, but sets document.activeElement to the newly\n focused element before the onBlur handler is called.\n\n However, other browsers do not make any guarantees for the value of document.activeElement\n during the execution of an onBlur handler. Therefore, we have to use event.relatedTarget\n instead.\n */\n const newFocusTarget = event.relatedTarget || document.activeElement;\n const newFocusTargetIsInGrid = containerRef.current?.contains(newFocusTarget as Node);\n if (newFocusTarget && !newFocusTargetIsInGrid && gridHasFocus) {\n setGridHasFocus(false);\n }\n };\n\n const onGridFocus = () => {\n if (!gridHasFocus) {\n setGridHasFocus(true);\n }\n };\n\n const isRangeVisible = (selectedStartDate && selectedEndDate) || gridHasFocus;\n\n const rangeEnds: Date[] = [selectedStartDate ?? focusedDate, selectedEndDate ?? focusedDate].filter(hasValue);\n\n const rangeStartDate = min(rangeEnds);\n const rangeEndDate = max(rangeEnds);\n\n return (\n <div ref={containerRef} onFocus={onGridFocus} onBlur={onGridBlur}>\n <InternalSpaceBetween size=\"xs\" direction=\"horizontal\">\n {!isSingleGrid && (\n <Grid\n className={styles['first-grid']}\n baseDate={addMonths(baseDate, -1)}\n selectedEndDate={selectedEndDate}\n selectedStartDate={selectedStartDate}\n rangeStartDate={isRangeVisible ? rangeStartDate : null}\n rangeEndDate={isRangeVisible ? rangeEndDate : null}\n focusedDate={focusedDate}\n focusedDateRef={focusedDateRef}\n isDateEnabled={isDateEnabled}\n onSelectDate={onSelectDate}\n onGridKeyDownHandler={onGridKeyDownHandler}\n onFocusedDateChange={onFocusedDateChange}\n locale={locale}\n startOfWeek={startOfWeek}\n todayAriaLabel={todayAriaLabel}\n ariaLabelledby={`${headingIdPrefix}-prevmonth`}\n />\n )}\n <Grid\n className={styles['second-grid']}\n baseDate={baseDate}\n selectedEndDate={selectedEndDate}\n selectedStartDate={selectedStartDate}\n rangeStartDate={isRangeVisible ? rangeStartDate : null}\n rangeEndDate={isRangeVisible ? rangeEndDate : null}\n focusedDate={focusedDate}\n focusedDateRef={focusedDateRef}\n isDateEnabled={isDateEnabled}\n onSelectDate={onSelectDate}\n onGridKeyDownHandler={onGridKeyDownHandler}\n onFocusedDateChange={onFocusedDateChange}\n locale={locale}\n startOfWeek={startOfWeek}\n todayAriaLabel={todayAriaLabel}\n ariaLabelledby={`${headingIdPrefix}-currentmonth`}\n />\n </InternalSpaceBetween>\n </div>\n );\n};\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/date-range-picker/calendar/grids/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, { useEffect, useRef, useState } from 'react';\nimport { KeyCode } from '../../../internal/keycode';\nimport { isSameMonth, isAfter, isBefore, addMonths, min, max } from 'date-fns';\n\nimport { DateRangePickerProps, DayIndex } from '../../interfaces';\nimport InternalSpaceBetween from '../../../space-between/internal';\nimport { Grid } from './grid';\nimport styles from '../../styles.css.js';\n\nimport { hasValue } from '../../../internal/utils/has-value';\nimport { useDateCache } from '../../../internal/hooks/use-date-cache';\nimport { moveNextDay, movePrevDay, moveNextWeek, movePrevWeek, getBaseDay } from '../../../calendar/utils/navigation';\nimport { findDateToFocus } from '../utils';\nimport handleKey from '../../../internal/utils/handle-key';\n\nfunction isVisible(date: Date, baseDate: Date, isSingleGrid: boolean) {\n if (isSingleGrid) {\n return isSameMonth(date, baseDate);\n }\n\n const previousMonth = addMonths(baseDate, -1);\n\n return isSameMonth(date, previousMonth) || isSameMonth(date, baseDate);\n}\n\nexport interface GridProps {\n baseDate: Date;\n selectedStartDate: Date | null;\n selectedEndDate: Date | null;\n\n focusedDate: Date | null;\n onFocusedDateChange: React.Dispatch<React.SetStateAction<Date | null>>;\n\n isDateEnabled: DateRangePickerProps.IsDateEnabledFunction;\n isSingleGrid: boolean;\n\n onSelectDate: (date: Date) => void;\n onChangeMonth: (date: Date) => void;\n\n locale: string;\n startOfWeek: DayIndex;\n todayAriaLabel?: string;\n headingIdPrefix: string;\n}\n\nexport const Grids = ({\n baseDate,\n selectedStartDate,\n selectedEndDate,\n\n focusedDate,\n onFocusedDateChange,\n\n isDateEnabled,\n isSingleGrid,\n\n onSelectDate,\n onChangeMonth,\n\n locale,\n startOfWeek,\n todayAriaLabel,\n headingIdPrefix,\n}: GridProps) => {\n const containerRef = useRef<HTMLDivElement>(null);\n const [gridHasFocus, setGridHasFocus] = useState(false);\n\n const focusedDateRef = useRef<HTMLTableCellElement>(null);\n\n const dateCache = useDateCache();\n baseDate = dateCache(baseDate);\n focusedDate = focusedDate ? dateCache(focusedDate) : null;\n\n useEffect(() => {\n if (focusedDate && !isVisible(focusedDate, baseDate, isSingleGrid)) {\n const direction = isAfter(focusedDate, baseDate) ? -1 : 1;\n\n const newMonth = !isSingleGrid && direction === -1 ? addMonths(baseDate, -1) : baseDate;\n const nearestBaseDate = getBaseDay(newMonth, isDateEnabled);\n\n const newFocusedDate = findDateToFocus(focusedDate, nearestBaseDate, isDateEnabled);\n\n onFocusedDateChange(newFocusedDate);\n }\n }, [baseDate, focusedDate, isSingleGrid, isDateEnabled, onFocusedDateChange]);\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 (focusedDate === null || keys.indexOf(event.keyCode) === -1) {\n return;\n }\n\n event.preventDefault();\n\n handleKey(event, {\n onActivate: () => focusedDate && onSelectDate(focusedDate),\n onBlockEnd: () => focusedDate && (updatedFocusDate = moveNextWeek(focusedDate, isDateEnabled)),\n onBlockStart: () => focusedDate && (updatedFocusDate = movePrevWeek(focusedDate, isDateEnabled)),\n onInlineEnd: () => focusedDate && (updatedFocusDate = moveNextDay(focusedDate, isDateEnabled)),\n onInlineStart: () => focusedDate && (updatedFocusDate = movePrevDay(focusedDate, isDateEnabled)),\n });\n\n if (!updatedFocusDate) {\n return;\n }\n\n const updatedDateIsVisible = isVisible(updatedFocusDate, baseDate, isSingleGrid);\n\n if (!updatedDateIsVisible) {\n const newMonthIsOnLeftSide = !isSingleGrid && isBefore(updatedFocusDate, baseDate);\n\n onChangeMonth(newMonthIsOnLeftSide ? addMonths(updatedFocusDate, 1) : updatedFocusDate);\n }\n onFocusedDateChange(updatedFocusDate);\n };\n\n useEffect(() => {\n // focus current date if the focus is already inside the calendar\n if (focusedDate !== null && gridHasFocus) {\n if (focusedDateRef.current && focusedDateRef.current !== document.activeElement) {\n focusedDateRef.current.focus();\n }\n }\n }, [focusedDate, gridHasFocus]);\n\n const onGridBlur = (event: React.FocusEvent) => {\n /*\n IE11 does not support event.relatedTarget, but sets document.activeElement to the newly\n focused element before the onBlur handler is called.\n\n However, other browsers do not make any guarantees for the value of document.activeElement\n during the execution of an onBlur handler. Therefore, we have to use event.relatedTarget\n instead.\n */\n const newFocusTarget = event.relatedTarget || document.activeElement;\n const newFocusTargetIsInGrid = containerRef.current?.contains(newFocusTarget as Node);\n if (newFocusTarget && !newFocusTargetIsInGrid && gridHasFocus) {\n setGridHasFocus(false);\n }\n };\n\n const onGridFocus = () => {\n if (!gridHasFocus) {\n setGridHasFocus(true);\n }\n };\n\n const isRangeVisible = (selectedStartDate && selectedEndDate) || gridHasFocus;\n\n const rangeEnds: Date[] = [selectedStartDate ?? focusedDate, selectedEndDate ?? focusedDate].filter(hasValue);\n\n const rangeStartDate = min(rangeEnds);\n const rangeEndDate = max(rangeEnds);\n\n return (\n <div ref={containerRef} onFocus={onGridFocus} onBlur={onGridBlur}>\n <InternalSpaceBetween size=\"xs\" direction=\"horizontal\">\n {!isSingleGrid && (\n <Grid\n className={styles['first-grid']}\n baseDate={addMonths(baseDate, -1)}\n selectedEndDate={selectedEndDate}\n selectedStartDate={selectedStartDate}\n rangeStartDate={isRangeVisible ? rangeStartDate : null}\n rangeEndDate={isRangeVisible ? rangeEndDate : null}\n focusedDate={focusedDate}\n focusedDateRef={focusedDateRef}\n isDateEnabled={isDateEnabled}\n onSelectDate={onSelectDate}\n onGridKeyDownHandler={onGridKeyDownHandler}\n onFocusedDateChange={onFocusedDateChange}\n locale={locale}\n startOfWeek={startOfWeek}\n todayAriaLabel={todayAriaLabel}\n ariaLabelledby={`${headingIdPrefix}-prevmonth`}\n />\n )}\n <Grid\n className={styles['second-grid']}\n baseDate={baseDate}\n selectedEndDate={selectedEndDate}\n selectedStartDate={selectedStartDate}\n rangeStartDate={isRangeVisible ? rangeStartDate : null}\n rangeEndDate={isRangeVisible ? rangeEndDate : null}\n focusedDate={focusedDate}\n focusedDateRef={focusedDateRef}\n isDateEnabled={isDateEnabled}\n onSelectDate={onSelectDate}\n onGridKeyDownHandler={onGridKeyDownHandler}\n onFocusedDateChange={onFocusedDateChange}\n locale={locale}\n startOfWeek={startOfWeek}\n todayAriaLabel={todayAriaLabel}\n ariaLabelledby={`${headingIdPrefix}-currentmonth`}\n />\n </InternalSpaceBetween>\n </div>\n );\n};\n"]}
@@ -1,30 +1,32 @@
1
1
 
2
2
  import './styles.scoped.css';
3
3
  export default {
4
- "grid": "awsui_grid_1mfbn_h5iwu_103",
5
- "grid-cell": "awsui_grid-cell_1mfbn_h5iwu_108",
6
- "day-header": "awsui_day-header_1mfbn_h5iwu_115",
7
- "week": "awsui_week_1mfbn_h5iwu_125",
8
- "day": "awsui_day_1mfbn_h5iwu_115",
9
- "day-inner": "awsui_day-inner_1mfbn_h5iwu_172",
10
- "in-first-row": "awsui_in-first-row_1mfbn_h5iwu_177",
11
- "in-previous-month": "awsui_in-previous-month_1mfbn_h5iwu_177",
12
- "last-day-of-month": "awsui_last-day-of-month_1mfbn_h5iwu_181",
13
- "in-next-month": "awsui_in-next-month_1mfbn_h5iwu_185",
14
- "in-first-column": "awsui_in-first-column_1mfbn_h5iwu_189",
15
- "in-current-month": "awsui_in-current-month_1mfbn_h5iwu_192",
16
- "enabled": "awsui_enabled_1mfbn_h5iwu_196",
17
- "in-range": "awsui_in-range_1mfbn_h5iwu_202",
18
- "end-date": "awsui_end-date_1mfbn_h5iwu_202",
19
- "start-date": "awsui_start-date_1mfbn_h5iwu_202",
20
- "no-range": "awsui_no-range_1mfbn_h5iwu_202",
21
- "selected": "awsui_selected_1mfbn_h5iwu_212",
22
- "today": "awsui_today_1mfbn_h5iwu_217",
23
- "range-start-date": "awsui_range-start-date_1mfbn_h5iwu_262",
24
- "in-range-border-bottom": "awsui_in-range-border-bottom_1mfbn_h5iwu_265",
25
- "range-end-date": "awsui_range-end-date_1mfbn_h5iwu_268",
26
- "in-range-border-top": "awsui_in-range-border-top_1mfbn_h5iwu_271",
27
- "in-range-border-right": "awsui_in-range-border-right_1mfbn_h5iwu_287",
28
- "in-range-border-left": "awsui_in-range-border-left_1mfbn_h5iwu_293"
4
+ "grid": "awsui_grid_1mfbn_f3jvf_103",
5
+ "grid-cell": "awsui_grid-cell_1mfbn_f3jvf_108",
6
+ "day-header": "awsui_day-header_1mfbn_f3jvf_115",
7
+ "week": "awsui_week_1mfbn_f3jvf_125",
8
+ "day": "awsui_day_1mfbn_f3jvf_115",
9
+ "day-inner": "awsui_day-inner_1mfbn_f3jvf_172",
10
+ "in-first-row": "awsui_in-first-row_1mfbn_f3jvf_177",
11
+ "in-previous-month": "awsui_in-previous-month_1mfbn_f3jvf_177",
12
+ "last-day-of-month": "awsui_last-day-of-month_1mfbn_f3jvf_181",
13
+ "in-next-month": "awsui_in-next-month_1mfbn_f3jvf_185",
14
+ "in-first-column": "awsui_in-first-column_1mfbn_f3jvf_189",
15
+ "in-current-month": "awsui_in-current-month_1mfbn_f3jvf_192",
16
+ "enabled": "awsui_enabled_1mfbn_f3jvf_196",
17
+ "in-range": "awsui_in-range_1mfbn_f3jvf_202",
18
+ "end-date": "awsui_end-date_1mfbn_f3jvf_202",
19
+ "start-date": "awsui_start-date_1mfbn_f3jvf_202",
20
+ "no-range": "awsui_no-range_1mfbn_f3jvf_202",
21
+ "selected": "awsui_selected_1mfbn_f3jvf_212",
22
+ "today": "awsui_today_1mfbn_f3jvf_217",
23
+ "range-start-date": "awsui_range-start-date_1mfbn_f3jvf_262",
24
+ "in-range-border-bottom": "awsui_in-range-border-bottom_1mfbn_f3jvf_265",
25
+ "range-end-date": "awsui_range-end-date_1mfbn_f3jvf_268",
26
+ "in-range-border-top": "awsui_in-range-border-top_1mfbn_f3jvf_271",
27
+ "in-range-border-block-start": "awsui_in-range-border-block-start_1mfbn_f3jvf_284",
28
+ "in-range-border-inline-end": "awsui_in-range-border-inline-end_1mfbn_f3jvf_287",
29
+ "in-range-border-block-end": "awsui_in-range-border-block-end_1mfbn_f3jvf_290",
30
+ "in-range-border-inline-start": "awsui_in-range-border-inline-start_1mfbn_f3jvf_293"
29
31
  };
30
32
 
@@ -100,19 +100,19 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
100
100
  Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
101
101
  SPDX-License-Identifier: Apache-2.0
102
102
  */
103
- .awsui_grid_1mfbn_h5iwu_103:not(#\9) {
103
+ .awsui_grid_1mfbn_f3jvf_103:not(#\9) {
104
104
  inline-size: var(--size-calendar-grid-width-lrunz7, 238px);
105
105
  border-spacing: 0;
106
106
  }
107
107
 
108
- .awsui_grid-cell_1mfbn_h5iwu_108:not(#\9) {
108
+ .awsui_grid-cell_1mfbn_f3jvf_108:not(#\9) {
109
109
  inline-size: 14.2857142857%;
110
110
  word-break: break-word;
111
111
  text-align: center;
112
112
  font-weight: unset;
113
113
  }
114
114
 
115
- .awsui_day-header_1mfbn_h5iwu_115:not(#\9) {
115
+ .awsui_day-header_1mfbn_f3jvf_115:not(#\9) {
116
116
  padding-block-start: var(--space-s-34lx8l, 12px);
117
117
  padding-block-end: var(--space-xxs-p8yyaw, 4px);
118
118
  padding-inline: 0;
@@ -122,11 +122,11 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
122
122
  letter-spacing: var(--letter-spacing-body-s-z9jkwp, 0.005em);
123
123
  }
124
124
 
125
- .awsui_week_1mfbn_h5iwu_125:not(#\9) {
125
+ .awsui_week_1mfbn_f3jvf_125:not(#\9) {
126
126
  /* used for identifying element */
127
127
  }
128
128
 
129
- .awsui_day_1mfbn_h5iwu_115:not(#\9) {
129
+ .awsui_day_1mfbn_f3jvf_115:not(#\9) {
130
130
  border-block-end: 1px solid var(--color-border-calendar-grid-u86q1u, transparent);
131
131
  border-inline-end: 1px solid var(--color-border-calendar-grid-u86q1u, transparent);
132
132
  padding-block: var(--space-xxs-p8yyaw, 4px);
@@ -134,10 +134,10 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
134
134
  color: var(--color-text-dropdown-item-disabled-6oq3n6, #9ba7b6);
135
135
  position: relative;
136
136
  }
137
- .awsui_day_1mfbn_h5iwu_115:not(#\9):focus {
137
+ .awsui_day_1mfbn_f3jvf_115:not(#\9):focus {
138
138
  outline: none;
139
139
  }
140
- .awsui_day_1mfbn_h5iwu_115:not(#\9)::after {
140
+ .awsui_day_1mfbn_f3jvf_115:not(#\9)::after {
141
141
  content: "";
142
142
  position: absolute;
143
143
  z-index: 1;
@@ -147,15 +147,15 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
147
147
  inset-inline-end: calc(-1 * var(--border-item-width-yel47s, 2px));
148
148
  background-color: transparent;
149
149
  }
150
- body[data-awsui-focus-visible=true] .awsui_day_1mfbn_h5iwu_115:not(#\9):focus {
150
+ body[data-awsui-focus-visible=true] .awsui_day_1mfbn_f3jvf_115:not(#\9):focus {
151
151
  z-index: 2;
152
152
  position: relative;
153
153
  }
154
- body[data-awsui-focus-visible=true] .awsui_day_1mfbn_h5iwu_115:not(#\9):focus {
154
+ body[data-awsui-focus-visible=true] .awsui_day_1mfbn_f3jvf_115:not(#\9):focus {
155
155
  outline: 2px dotted transparent;
156
156
  outline-offset: calc(var(--space-calendar-grid-focus-outline-gutter-g00bgj, -5px) - 1px);
157
157
  }
158
- body[data-awsui-focus-visible=true] .awsui_day_1mfbn_h5iwu_115:not(#\9):focus::before {
158
+ body[data-awsui-focus-visible=true] .awsui_day_1mfbn_f3jvf_115:not(#\9):focus::before {
159
159
  content: " ";
160
160
  display: block;
161
161
  position: absolute;
@@ -169,52 +169,52 @@ body[data-awsui-focus-visible=true] .awsui_day_1mfbn_h5iwu_115:not(#\9):focus::b
169
169
  border-end-end-radius: var(--border-radius-calendar-day-focus-ring-545h0w, 3px);
170
170
  box-shadow: 0 0 0 2px var(--color-border-item-focused-b2ntyl, #0972d3);
171
171
  }
172
- .awsui_day_1mfbn_h5iwu_115 > .awsui_day-inner_1mfbn_h5iwu_172:not(#\9) {
172
+ .awsui_day_1mfbn_f3jvf_115 > .awsui_day-inner_1mfbn_f3jvf_172:not(#\9) {
173
173
  position: relative;
174
174
  z-index: 1;
175
175
  }
176
176
 
177
- .awsui_in-first-row_1mfbn_h5iwu_177:not(#\9):not(.awsui_in-previous-month_1mfbn_h5iwu_177) {
177
+ .awsui_in-first-row_1mfbn_f3jvf_177:not(#\9):not(.awsui_in-previous-month_1mfbn_f3jvf_177) {
178
178
  border-block-start: 1px solid var(--color-border-calendar-grid-u86q1u, transparent);
179
179
  }
180
180
 
181
- .awsui_in-previous-month_1mfbn_h5iwu_177:not(#\9):not(.awsui_last-day-of-month_1mfbn_h5iwu_181) {
181
+ .awsui_in-previous-month_1mfbn_f3jvf_177:not(#\9):not(.awsui_last-day-of-month_1mfbn_f3jvf_181) {
182
182
  border-inline-end-color: transparent;
183
183
  }
184
184
 
185
- .awsui_in-next-month_1mfbn_h5iwu_185:not(#\9) {
185
+ .awsui_in-next-month_1mfbn_f3jvf_185:not(#\9) {
186
186
  border-color: transparent;
187
187
  }
188
188
 
189
- .awsui_in-first-column_1mfbn_h5iwu_189:not(#\9) {
189
+ .awsui_in-first-column_1mfbn_f3jvf_189:not(#\9) {
190
190
  border-inline-start: 1px solid transparent;
191
191
  }
192
- .awsui_in-first-column_1mfbn_h5iwu_189.awsui_in-current-month_1mfbn_h5iwu_192:not(#\9) {
192
+ .awsui_in-first-column_1mfbn_f3jvf_189.awsui_in-current-month_1mfbn_f3jvf_192:not(#\9) {
193
193
  border-inline-start: 1px solid var(--color-border-calendar-grid-u86q1u, transparent);
194
194
  }
195
195
 
196
- .awsui_enabled_1mfbn_h5iwu_196:not(#\9) {
196
+ .awsui_enabled_1mfbn_f3jvf_196:not(#\9) {
197
197
  cursor: pointer;
198
198
  }
199
- .awsui_enabled_1mfbn_h5iwu_196.awsui_in-current-month_1mfbn_h5iwu_192:not(#\9) {
199
+ .awsui_enabled_1mfbn_f3jvf_196.awsui_in-current-month_1mfbn_f3jvf_192:not(#\9) {
200
200
  color: var(--color-text-dropdown-item-default-4o4hes, #000716);
201
201
  }
202
- .awsui_enabled_1mfbn_h5iwu_196.awsui_in-current-month_1mfbn_h5iwu_192:not(#\9):not(.awsui_in-range_1mfbn_h5iwu_202), .awsui_enabled_1mfbn_h5iwu_196.awsui_in-current-month_1mfbn_h5iwu_192:not(#\9):not(.awsui_in-range_1mfbn_h5iwu_202)::after, .awsui_enabled_1mfbn_h5iwu_196.awsui_in-current-month_1mfbn_h5iwu_192.awsui_end-date_1mfbn_h5iwu_202.awsui_start-date_1mfbn_h5iwu_202:not(#\9), .awsui_enabled_1mfbn_h5iwu_196.awsui_in-current-month_1mfbn_h5iwu_192.awsui_end-date_1mfbn_h5iwu_202.awsui_start-date_1mfbn_h5iwu_202:not(#\9)::after, .awsui_enabled_1mfbn_h5iwu_196.awsui_in-current-month_1mfbn_h5iwu_192.awsui_no-range_1mfbn_h5iwu_202:not(#\9), .awsui_enabled_1mfbn_h5iwu_196.awsui_in-current-month_1mfbn_h5iwu_192.awsui_no-range_1mfbn_h5iwu_202:not(#\9)::after {
202
+ .awsui_enabled_1mfbn_f3jvf_196.awsui_in-current-month_1mfbn_f3jvf_192:not(#\9):not(.awsui_in-range_1mfbn_f3jvf_202), .awsui_enabled_1mfbn_f3jvf_196.awsui_in-current-month_1mfbn_f3jvf_192:not(#\9):not(.awsui_in-range_1mfbn_f3jvf_202)::after, .awsui_enabled_1mfbn_f3jvf_196.awsui_in-current-month_1mfbn_f3jvf_192.awsui_end-date_1mfbn_f3jvf_202.awsui_start-date_1mfbn_f3jvf_202:not(#\9), .awsui_enabled_1mfbn_f3jvf_196.awsui_in-current-month_1mfbn_f3jvf_192.awsui_end-date_1mfbn_f3jvf_202.awsui_start-date_1mfbn_f3jvf_202:not(#\9)::after, .awsui_enabled_1mfbn_f3jvf_196.awsui_in-current-month_1mfbn_f3jvf_192.awsui_no-range_1mfbn_f3jvf_202:not(#\9), .awsui_enabled_1mfbn_f3jvf_196.awsui_in-current-month_1mfbn_f3jvf_192.awsui_no-range_1mfbn_f3jvf_202:not(#\9)::after {
203
203
  border-start-start-radius: var(--border-radius-item-05df9h, 8px);
204
204
  border-start-end-radius: var(--border-radius-item-05df9h, 8px);
205
205
  border-end-start-radius: var(--border-radius-item-05df9h, 8px);
206
206
  border-end-end-radius: var(--border-radius-item-05df9h, 8px);
207
207
  }
208
- .awsui_enabled_1mfbn_h5iwu_196.awsui_in-current-month_1mfbn_h5iwu_192:not(#\9):hover {
208
+ .awsui_enabled_1mfbn_f3jvf_196.awsui_in-current-month_1mfbn_f3jvf_192:not(#\9):hover {
209
209
  color: var(--color-text-calendar-date-hover-llr4as, #000716);
210
210
  background-color: var(--color-background-dropdown-item-hover-swsulg, #f4f4f4);
211
211
  }
212
- .awsui_enabled_1mfbn_h5iwu_196.awsui_in-current-month_1mfbn_h5iwu_192:not(#\9):hover:not(.awsui_selected_1mfbn_h5iwu_212)::after {
212
+ .awsui_enabled_1mfbn_f3jvf_196.awsui_in-current-month_1mfbn_f3jvf_192:not(#\9):hover:not(.awsui_selected_1mfbn_f3jvf_212)::after {
213
213
  border-block: var(--border-item-width-yel47s, 2px) solid var(--color-border-dropdown-item-hover-461g78, #7d8998);
214
214
  border-inline: var(--border-item-width-yel47s, 2px) solid var(--color-border-dropdown-item-hover-461g78, #7d8998);
215
215
  }
216
216
 
217
- .awsui_today_1mfbn_h5iwu_217:not(#\9):not(.awsui_in-range_1mfbn_h5iwu_202) {
217
+ .awsui_today_1mfbn_f3jvf_217:not(#\9):not(.awsui_in-range_1mfbn_f3jvf_202) {
218
218
  background-color: var(--color-background-calendar-current-date-kmb0ji, #f4f4f4);
219
219
  border-start-start-radius: var(--border-radius-item-05df9h, 8px);
220
220
  border-start-end-radius: var(--border-radius-item-05df9h, 8px);
@@ -223,20 +223,20 @@ body[data-awsui-focus-visible=true] .awsui_day_1mfbn_h5iwu_115:not(#\9):focus::b
223
223
  font-weight: 700;
224
224
  }
225
225
 
226
- .awsui_selected_1mfbn_h5iwu_212:not(#\9) {
226
+ .awsui_selected_1mfbn_f3jvf_212:not(#\9) {
227
227
  border-color: transparent;
228
228
  position: relative;
229
229
  z-index: 2;
230
230
  font-weight: 700;
231
231
  }
232
- body[data-awsui-focus-visible=true] .awsui_selected_1mfbn_h5iwu_212:not(#\9):focus {
232
+ body[data-awsui-focus-visible=true] .awsui_selected_1mfbn_f3jvf_212:not(#\9):focus {
233
233
  position: relative;
234
234
  }
235
- body[data-awsui-focus-visible=true] .awsui_selected_1mfbn_h5iwu_212:not(#\9):focus {
235
+ body[data-awsui-focus-visible=true] .awsui_selected_1mfbn_f3jvf_212:not(#\9):focus {
236
236
  outline: 2px dotted transparent;
237
237
  outline-offset: calc(var(--space-calendar-grid-selected-focus-outline-gutter-hxbct6, -5px) - 1px);
238
238
  }
239
- body[data-awsui-focus-visible=true] .awsui_selected_1mfbn_h5iwu_212:not(#\9):focus::before {
239
+ body[data-awsui-focus-visible=true] .awsui_selected_1mfbn_f3jvf_212:not(#\9):focus::before {
240
240
  content: " ";
241
241
  display: block;
242
242
  position: absolute;
@@ -250,58 +250,58 @@ body[data-awsui-focus-visible=true] .awsui_selected_1mfbn_h5iwu_212:not(#\9):foc
250
250
  border-end-end-radius: var(--border-radius-calendar-day-focus-ring-545h0w, 3px);
251
251
  box-shadow: 0 0 0 2px var(--color-border-calendar-grid-selected-focus-ring-thqa8y, #fbfbfb);
252
252
  }
253
- body[data-awsui-focus-visible=true] .awsui_selected_1mfbn_h5iwu_212:not(#\9):focus::before {
253
+ body[data-awsui-focus-visible=true] .awsui_selected_1mfbn_f3jvf_212:not(#\9):focus::before {
254
254
  z-index: 1;
255
255
  }
256
- .awsui_selected_1mfbn_h5iwu_212:not(#\9)::after {
256
+ .awsui_selected_1mfbn_f3jvf_212:not(#\9)::after {
257
257
  background-color: var(--color-background-control-checked-w517i0, #0972d3);
258
258
  border-block: var(--border-item-width-yel47s, 2px) solid var(--color-background-control-checked-w517i0, #0972d3);
259
259
  border-inline: var(--border-item-width-yel47s, 2px) solid var(--color-background-control-checked-w517i0, #0972d3);
260
260
  z-index: 0;
261
261
  }
262
- .awsui_selected_1mfbn_h5iwu_212.awsui_start-date_1mfbn_h5iwu_202:not(#\9), .awsui_selected_1mfbn_h5iwu_212.awsui_start-date_1mfbn_h5iwu_202:not(#\9)::after, .awsui_selected_1mfbn_h5iwu_212.awsui_range-start-date_1mfbn_h5iwu_262:not(#\9), .awsui_selected_1mfbn_h5iwu_212.awsui_range-start-date_1mfbn_h5iwu_262:not(#\9)::after {
263
- border-top-left-radius: var(--border-radius-item-05df9h, 8px);
262
+ .awsui_selected_1mfbn_f3jvf_212.awsui_start-date_1mfbn_f3jvf_202:not(#\9), .awsui_selected_1mfbn_f3jvf_212.awsui_start-date_1mfbn_f3jvf_202:not(#\9)::after, .awsui_selected_1mfbn_f3jvf_212.awsui_range-start-date_1mfbn_f3jvf_262:not(#\9), .awsui_selected_1mfbn_f3jvf_212.awsui_range-start-date_1mfbn_f3jvf_262:not(#\9)::after {
263
+ border-start-start-radius: var(--border-radius-item-05df9h, 8px);
264
264
  }
265
- .awsui_selected_1mfbn_h5iwu_212.awsui_start-date_1mfbn_h5iwu_202.awsui_in-range-border-bottom_1mfbn_h5iwu_265:not(#\9), .awsui_selected_1mfbn_h5iwu_212.awsui_start-date_1mfbn_h5iwu_202.awsui_in-range-border-bottom_1mfbn_h5iwu_265:not(#\9)::after, .awsui_selected_1mfbn_h5iwu_212.awsui_range-start-date_1mfbn_h5iwu_262.awsui_in-range-border-bottom_1mfbn_h5iwu_265:not(#\9), .awsui_selected_1mfbn_h5iwu_212.awsui_range-start-date_1mfbn_h5iwu_262.awsui_in-range-border-bottom_1mfbn_h5iwu_265:not(#\9)::after {
266
- border-bottom-left-radius: var(--border-radius-item-05df9h, 8px);
265
+ .awsui_selected_1mfbn_f3jvf_212.awsui_start-date_1mfbn_f3jvf_202.awsui_in-range-border-bottom_1mfbn_f3jvf_265:not(#\9), .awsui_selected_1mfbn_f3jvf_212.awsui_start-date_1mfbn_f3jvf_202.awsui_in-range-border-bottom_1mfbn_f3jvf_265:not(#\9)::after, .awsui_selected_1mfbn_f3jvf_212.awsui_range-start-date_1mfbn_f3jvf_262.awsui_in-range-border-bottom_1mfbn_f3jvf_265:not(#\9), .awsui_selected_1mfbn_f3jvf_212.awsui_range-start-date_1mfbn_f3jvf_262.awsui_in-range-border-bottom_1mfbn_f3jvf_265:not(#\9)::after {
266
+ border-end-start-radius: var(--border-radius-item-05df9h, 8px);
267
267
  }
268
- .awsui_selected_1mfbn_h5iwu_212.awsui_end-date_1mfbn_h5iwu_202:not(#\9), .awsui_selected_1mfbn_h5iwu_212.awsui_end-date_1mfbn_h5iwu_202:not(#\9)::after, .awsui_selected_1mfbn_h5iwu_212.awsui_range-end-date_1mfbn_h5iwu_268:not(#\9), .awsui_selected_1mfbn_h5iwu_212.awsui_range-end-date_1mfbn_h5iwu_268:not(#\9)::after {
269
- border-bottom-right-radius: var(--border-radius-item-05df9h, 8px);
268
+ .awsui_selected_1mfbn_f3jvf_212.awsui_end-date_1mfbn_f3jvf_202:not(#\9), .awsui_selected_1mfbn_f3jvf_212.awsui_end-date_1mfbn_f3jvf_202:not(#\9)::after, .awsui_selected_1mfbn_f3jvf_212.awsui_range-end-date_1mfbn_f3jvf_268:not(#\9), .awsui_selected_1mfbn_f3jvf_212.awsui_range-end-date_1mfbn_f3jvf_268:not(#\9)::after {
269
+ border-end-end-radius: var(--border-radius-item-05df9h, 8px);
270
270
  }
271
- .awsui_selected_1mfbn_h5iwu_212.awsui_end-date_1mfbn_h5iwu_202.awsui_in-range-border-top_1mfbn_h5iwu_271:not(#\9), .awsui_selected_1mfbn_h5iwu_212.awsui_end-date_1mfbn_h5iwu_202.awsui_in-range-border-top_1mfbn_h5iwu_271:not(#\9)::after, .awsui_selected_1mfbn_h5iwu_212.awsui_range-end-date_1mfbn_h5iwu_268.awsui_in-range-border-top_1mfbn_h5iwu_271:not(#\9), .awsui_selected_1mfbn_h5iwu_212.awsui_range-end-date_1mfbn_h5iwu_268.awsui_in-range-border-top_1mfbn_h5iwu_271:not(#\9)::after {
272
- border-top-right-radius: var(--border-radius-item-05df9h, 8px);
271
+ .awsui_selected_1mfbn_f3jvf_212.awsui_end-date_1mfbn_f3jvf_202.awsui_in-range-border-top_1mfbn_f3jvf_271:not(#\9), .awsui_selected_1mfbn_f3jvf_212.awsui_end-date_1mfbn_f3jvf_202.awsui_in-range-border-top_1mfbn_f3jvf_271:not(#\9)::after, .awsui_selected_1mfbn_f3jvf_212.awsui_range-end-date_1mfbn_f3jvf_268.awsui_in-range-border-top_1mfbn_f3jvf_271:not(#\9), .awsui_selected_1mfbn_f3jvf_212.awsui_range-end-date_1mfbn_f3jvf_268.awsui_in-range-border-top_1mfbn_f3jvf_271:not(#\9)::after {
272
+ border-start-end-radius: var(--border-radius-item-05df9h, 8px);
273
273
  }
274
- .awsui_selected_1mfbn_h5iwu_212 > .awsui_day-inner_1mfbn_h5iwu_172:not(#\9) {
274
+ .awsui_selected_1mfbn_f3jvf_212 > .awsui_day-inner_1mfbn_f3jvf_172:not(#\9) {
275
275
  color: var(--color-background-control-default-qzruqy, #ffffff);
276
276
  position: relative;
277
277
  z-index: 2;
278
278
  }
279
279
 
280
- .awsui_in-range_1mfbn_h5iwu_202:not(#\9) {
280
+ .awsui_in-range_1mfbn_f3jvf_202:not(#\9) {
281
281
  background-color: var(--color-background-dropdown-item-selected-n136dm, #f2f8fd);
282
282
  font-weight: 700;
283
283
  }
284
- .awsui_in-range_1mfbn_h5iwu_202.awsui_in-range-border-top_1mfbn_h5iwu_271:not(#\9)::after {
285
- border-top: var(--border-item-width-yel47s, 2px) solid var(--color-background-control-checked-w517i0, #0972d3);
284
+ .awsui_in-range_1mfbn_f3jvf_202.awsui_in-range-border-block-start_1mfbn_f3jvf_284:not(#\9)::after {
285
+ border-block-start: var(--border-item-width-yel47s, 2px) solid var(--color-background-control-checked-w517i0, #0972d3);
286
286
  }
287
- .awsui_in-range_1mfbn_h5iwu_202.awsui_in-range-border-right_1mfbn_h5iwu_287:not(#\9)::after {
288
- border-right: var(--border-item-width-yel47s, 2px) solid var(--color-background-control-checked-w517i0, #0972d3);
287
+ .awsui_in-range_1mfbn_f3jvf_202.awsui_in-range-border-inline-end_1mfbn_f3jvf_287:not(#\9)::after {
288
+ border-inline-end: var(--border-item-width-yel47s, 2px) solid var(--color-background-control-checked-w517i0, #0972d3);
289
289
  }
290
- .awsui_in-range_1mfbn_h5iwu_202.awsui_in-range-border-bottom_1mfbn_h5iwu_265:not(#\9)::after {
291
- border-bottom: var(--border-item-width-yel47s, 2px) solid var(--color-background-control-checked-w517i0, #0972d3);
290
+ .awsui_in-range_1mfbn_f3jvf_202.awsui_in-range-border-block-end_1mfbn_f3jvf_290:not(#\9)::after {
291
+ border-block-end: var(--border-item-width-yel47s, 2px) solid var(--color-background-control-checked-w517i0, #0972d3);
292
292
  }
293
- .awsui_in-range_1mfbn_h5iwu_202.awsui_in-range-border-left_1mfbn_h5iwu_293:not(#\9)::after {
294
- border-left: var(--border-item-width-yel47s, 2px) solid var(--color-background-control-checked-w517i0, #0972d3);
293
+ .awsui_in-range_1mfbn_f3jvf_202.awsui_in-range-border-inline-start_1mfbn_f3jvf_293:not(#\9)::after {
294
+ border-inline-start: var(--border-item-width-yel47s, 2px) solid var(--color-background-control-checked-w517i0, #0972d3);
295
295
  }
296
- .awsui_in-range_1mfbn_h5iwu_202.awsui_in-range-border-top_1mfbn_h5iwu_271.awsui_in-range-border-right_1mfbn_h5iwu_287:not(#\9), .awsui_in-range_1mfbn_h5iwu_202.awsui_in-range-border-top_1mfbn_h5iwu_271.awsui_in-range-border-right_1mfbn_h5iwu_287:not(#\9)::after {
297
- border-top-right-radius: var(--border-radius-item-05df9h, 8px);
296
+ .awsui_in-range_1mfbn_f3jvf_202.awsui_in-range-border-block-start_1mfbn_f3jvf_284.awsui_in-range-border-inline-end_1mfbn_f3jvf_287:not(#\9), .awsui_in-range_1mfbn_f3jvf_202.awsui_in-range-border-block-start_1mfbn_f3jvf_284.awsui_in-range-border-inline-end_1mfbn_f3jvf_287:not(#\9)::after {
297
+ border-start-end-radius: var(--border-radius-item-05df9h, 8px);
298
298
  }
299
- .awsui_in-range_1mfbn_h5iwu_202.awsui_in-range-border-bottom_1mfbn_h5iwu_265.awsui_in-range-border-right_1mfbn_h5iwu_287:not(#\9), .awsui_in-range_1mfbn_h5iwu_202.awsui_in-range-border-bottom_1mfbn_h5iwu_265.awsui_in-range-border-right_1mfbn_h5iwu_287:not(#\9)::after {
300
- border-bottom-right-radius: var(--border-radius-item-05df9h, 8px);
299
+ .awsui_in-range_1mfbn_f3jvf_202.awsui_in-range-border-block-end_1mfbn_f3jvf_290.awsui_in-range-border-inline-end_1mfbn_f3jvf_287:not(#\9), .awsui_in-range_1mfbn_f3jvf_202.awsui_in-range-border-block-end_1mfbn_f3jvf_290.awsui_in-range-border-inline-end_1mfbn_f3jvf_287:not(#\9)::after {
300
+ border-end-end-radius: var(--border-radius-item-05df9h, 8px);
301
301
  }
302
- .awsui_in-range_1mfbn_h5iwu_202.awsui_in-range-border-bottom_1mfbn_h5iwu_265.awsui_in-range-border-left_1mfbn_h5iwu_293:not(#\9), .awsui_in-range_1mfbn_h5iwu_202.awsui_in-range-border-bottom_1mfbn_h5iwu_265.awsui_in-range-border-left_1mfbn_h5iwu_293:not(#\9)::after {
303
- border-bottom-left-radius: var(--border-radius-item-05df9h, 8px);
302
+ .awsui_in-range_1mfbn_f3jvf_202.awsui_in-range-border-block-end_1mfbn_f3jvf_290.awsui_in-range-border-inline-start_1mfbn_f3jvf_293:not(#\9), .awsui_in-range_1mfbn_f3jvf_202.awsui_in-range-border-block-end_1mfbn_f3jvf_290.awsui_in-range-border-inline-start_1mfbn_f3jvf_293:not(#\9)::after {
303
+ border-end-start-radius: var(--border-radius-item-05df9h, 8px);
304
304
  }
305
- .awsui_in-range_1mfbn_h5iwu_202.awsui_in-range-border-top_1mfbn_h5iwu_271.awsui_in-range-border-left_1mfbn_h5iwu_293:not(#\9), .awsui_in-range_1mfbn_h5iwu_202.awsui_in-range-border-top_1mfbn_h5iwu_271.awsui_in-range-border-left_1mfbn_h5iwu_293:not(#\9)::after {
306
- border-top-left-radius: var(--border-radius-item-05df9h, 8px);
305
+ .awsui_in-range_1mfbn_f3jvf_202.awsui_in-range-border-block-start_1mfbn_f3jvf_284.awsui_in-range-border-inline-start_1mfbn_f3jvf_293:not(#\9), .awsui_in-range_1mfbn_f3jvf_202.awsui_in-range-border-block-start_1mfbn_f3jvf_284.awsui_in-range-border-inline-start_1mfbn_f3jvf_293:not(#\9)::after {
306
+ border-start-start-radius: var(--border-radius-item-05df9h, 8px);
307
307
  }
@@ -2,30 +2,32 @@
2
2
  // es-module interop with Babel and Typescript
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  module.exports.default = {
5
- "grid": "awsui_grid_1mfbn_h5iwu_103",
6
- "grid-cell": "awsui_grid-cell_1mfbn_h5iwu_108",
7
- "day-header": "awsui_day-header_1mfbn_h5iwu_115",
8
- "week": "awsui_week_1mfbn_h5iwu_125",
9
- "day": "awsui_day_1mfbn_h5iwu_115",
10
- "day-inner": "awsui_day-inner_1mfbn_h5iwu_172",
11
- "in-first-row": "awsui_in-first-row_1mfbn_h5iwu_177",
12
- "in-previous-month": "awsui_in-previous-month_1mfbn_h5iwu_177",
13
- "last-day-of-month": "awsui_last-day-of-month_1mfbn_h5iwu_181",
14
- "in-next-month": "awsui_in-next-month_1mfbn_h5iwu_185",
15
- "in-first-column": "awsui_in-first-column_1mfbn_h5iwu_189",
16
- "in-current-month": "awsui_in-current-month_1mfbn_h5iwu_192",
17
- "enabled": "awsui_enabled_1mfbn_h5iwu_196",
18
- "in-range": "awsui_in-range_1mfbn_h5iwu_202",
19
- "end-date": "awsui_end-date_1mfbn_h5iwu_202",
20
- "start-date": "awsui_start-date_1mfbn_h5iwu_202",
21
- "no-range": "awsui_no-range_1mfbn_h5iwu_202",
22
- "selected": "awsui_selected_1mfbn_h5iwu_212",
23
- "today": "awsui_today_1mfbn_h5iwu_217",
24
- "range-start-date": "awsui_range-start-date_1mfbn_h5iwu_262",
25
- "in-range-border-bottom": "awsui_in-range-border-bottom_1mfbn_h5iwu_265",
26
- "range-end-date": "awsui_range-end-date_1mfbn_h5iwu_268",
27
- "in-range-border-top": "awsui_in-range-border-top_1mfbn_h5iwu_271",
28
- "in-range-border-right": "awsui_in-range-border-right_1mfbn_h5iwu_287",
29
- "in-range-border-left": "awsui_in-range-border-left_1mfbn_h5iwu_293"
5
+ "grid": "awsui_grid_1mfbn_f3jvf_103",
6
+ "grid-cell": "awsui_grid-cell_1mfbn_f3jvf_108",
7
+ "day-header": "awsui_day-header_1mfbn_f3jvf_115",
8
+ "week": "awsui_week_1mfbn_f3jvf_125",
9
+ "day": "awsui_day_1mfbn_f3jvf_115",
10
+ "day-inner": "awsui_day-inner_1mfbn_f3jvf_172",
11
+ "in-first-row": "awsui_in-first-row_1mfbn_f3jvf_177",
12
+ "in-previous-month": "awsui_in-previous-month_1mfbn_f3jvf_177",
13
+ "last-day-of-month": "awsui_last-day-of-month_1mfbn_f3jvf_181",
14
+ "in-next-month": "awsui_in-next-month_1mfbn_f3jvf_185",
15
+ "in-first-column": "awsui_in-first-column_1mfbn_f3jvf_189",
16
+ "in-current-month": "awsui_in-current-month_1mfbn_f3jvf_192",
17
+ "enabled": "awsui_enabled_1mfbn_f3jvf_196",
18
+ "in-range": "awsui_in-range_1mfbn_f3jvf_202",
19
+ "end-date": "awsui_end-date_1mfbn_f3jvf_202",
20
+ "start-date": "awsui_start-date_1mfbn_f3jvf_202",
21
+ "no-range": "awsui_no-range_1mfbn_f3jvf_202",
22
+ "selected": "awsui_selected_1mfbn_f3jvf_212",
23
+ "today": "awsui_today_1mfbn_f3jvf_217",
24
+ "range-start-date": "awsui_range-start-date_1mfbn_f3jvf_262",
25
+ "in-range-border-bottom": "awsui_in-range-border-bottom_1mfbn_f3jvf_265",
26
+ "range-end-date": "awsui_range-end-date_1mfbn_f3jvf_268",
27
+ "in-range-border-top": "awsui_in-range-border-top_1mfbn_f3jvf_271",
28
+ "in-range-border-block-start": "awsui_in-range-border-block-start_1mfbn_f3jvf_284",
29
+ "in-range-border-inline-end": "awsui_in-range-border-inline-end_1mfbn_f3jvf_287",
30
+ "in-range-border-block-end": "awsui_in-range-border-block-end_1mfbn_f3jvf_290",
31
+ "in-range-border-inline-start": "awsui_in-range-border-inline-start_1mfbn_f3jvf_293"
30
32
  };
31
33
 
@@ -0,0 +1,9 @@
1
+ export declare function isRtl(element: HTMLElement | SVGElement): boolean;
2
+ /**
3
+ * The scrollLeft value will be a negative number if the direction is RTL and
4
+ * needs to be converted to a positive value for direction independent scroll
5
+ * computations. Additionally, the scrollLeft value can be a decimal value on
6
+ * systems using display scaling requiring the floor and ceiling calls.
7
+ */
8
+ export declare function getScrollInlineStart(element: HTMLElement): number;
9
+ //# sourceMappingURL=direction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"direction.d.ts","sourceRoot":"","sources":["../../../src/internal/direction.ts"],"names":[],"mappings":"AAGA,wBAAgB,KAAK,CAAC,OAAO,EAAE,WAAW,GAAG,UAAU,WAEtD;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,WAAW,UAExD"}