@cloudscape-design/components-themeable 3.0.890 → 3.0.892
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.
- package/lib/internal/manifest.json +1 -1
- package/lib/internal/scss/date-range-picker/calendar/grids/styles.scss +5 -16
- package/lib/internal/scss/date-range-picker/test-classes/styles.scss +9 -0
- package/lib/internal/scss/internal/components/chart-legend/styles.scss +1 -5
- package/lib/internal/scss/popover/styles.scss +2 -2
- package/lib/internal/template/app-layout/visual-refresh-toolbar/compute-layout.d.ts +15 -0
- package/lib/internal/template/app-layout/visual-refresh-toolbar/compute-layout.d.ts.map +1 -1
- package/lib/internal/template/app-layout/visual-refresh-toolbar/compute-layout.js +13 -0
- package/lib/internal/template/app-layout/visual-refresh-toolbar/compute-layout.js.map +1 -1
- package/lib/internal/template/app-layout/visual-refresh-toolbar/index.d.ts.map +1 -1
- package/lib/internal/template/app-layout/visual-refresh-toolbar/index.js +11 -7
- package/lib/internal/template/app-layout/visual-refresh-toolbar/index.js.map +1 -1
- package/lib/internal/template/calendar/grid/use-calendar-grid-rows.d.ts +1 -1
- package/lib/internal/template/calendar/grid/use-calendar-grid-rows.d.ts.map +1 -1
- package/lib/internal/template/calendar/grid/use-calendar-grid-rows.js +11 -12
- package/lib/internal/template/calendar/grid/use-calendar-grid-rows.js.map +1 -1
- package/lib/internal/template/date-range-picker/calendar/grids/index.d.ts.map +1 -1
- package/lib/internal/template/date-range-picker/calendar/grids/index.js +2 -2
- package/lib/internal/template/date-range-picker/calendar/grids/index.js.map +1 -1
- package/lib/internal/template/date-range-picker/calendar/grids/monthly-grid.d.ts +2 -1
- package/lib/internal/template/date-range-picker/calendar/grids/monthly-grid.d.ts.map +1 -1
- package/lib/internal/template/date-range-picker/calendar/grids/monthly-grid.js +28 -34
- package/lib/internal/template/date-range-picker/calendar/grids/monthly-grid.js.map +1 -1
- package/lib/internal/template/date-range-picker/calendar/grids/styles.css.js +24 -28
- package/lib/internal/template/date-range-picker/calendar/grids/styles.scoped.css +42 -51
- package/lib/internal/template/date-range-picker/calendar/grids/styles.selectors.js +24 -28
- package/lib/internal/template/date-range-picker/test-classes/styles.css.js +7 -0
- package/lib/internal/template/date-range-picker/test-classes/styles.scoped.css +8 -0
- package/lib/internal/template/date-range-picker/test-classes/styles.selectors.js +8 -0
- package/lib/internal/template/internal/components/chart-legend/styles.css.js +6 -6
- package/lib/internal/template/internal/components/chart-legend/styles.scoped.css +15 -18
- package/lib/internal/template/internal/components/chart-legend/styles.selectors.js +6 -6
- package/lib/internal/template/internal/components/tooltip/index.d.ts.map +1 -1
- package/lib/internal/template/internal/components/tooltip/index.js +2 -3
- package/lib/internal/template/internal/components/tooltip/index.js.map +1 -1
- package/lib/internal/template/internal/environment.js +1 -1
- package/lib/internal/template/internal/environment.json +1 -1
- package/lib/internal/template/internal/utils/date-time/calendar.d.ts +34 -0
- package/lib/internal/template/internal/utils/date-time/calendar.d.ts.map +1 -0
- package/lib/internal/template/internal/utils/date-time/calendar.js +114 -0
- package/lib/internal/template/internal/utils/date-time/calendar.js.map +1 -0
- package/lib/internal/template/internal/utils/locale/index.d.ts +1 -1
- package/lib/internal/template/internal/utils/locale/index.d.ts.map +1 -1
- package/lib/internal/template/internal/utils/locale/index.js.map +1 -1
- package/lib/internal/template/internal/utils/locale/normalize-start-of-week.d.ts +1 -2
- package/lib/internal/template/internal/utils/locale/normalize-start-of-week.d.ts.map +1 -1
- package/lib/internal/template/internal/utils/locale/normalize-start-of-week.js.map +1 -1
- package/lib/internal/template/popover/container.d.ts +2 -1
- package/lib/internal/template/popover/container.d.ts.map +1 -1
- package/lib/internal/template/popover/container.js +2 -2
- package/lib/internal/template/popover/container.js.map +1 -1
- package/lib/internal/template/popover/styles.css.js +54 -54
- package/lib/internal/template/popover/styles.scoped.css +79 -79
- package/lib/internal/template/popover/styles.selectors.js +54 -54
- package/lib/internal/template/table/body-cell/index.js +1 -1
- package/lib/internal/template/table/body-cell/index.js.map +1 -1
- package/lib/internal/template/test-utils/dom/date-range-picker/index.js +2 -1
- package/lib/internal/template/test-utils/dom/date-range-picker/index.js.map +1 -1
- package/lib/internal/template/test-utils/selectors/date-range-picker/index.js +2 -1
- package/lib/internal/template/test-utils/selectors/date-range-picker/index.js.map +1 -1
- package/lib/internal/template/test-utils/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
|
@@ -2,50 +2,53 @@
|
|
|
2
2
|
// SPDX-License-Identifier: Apache-2.0
|
|
3
3
|
import React, { useMemo } from 'react';
|
|
4
4
|
import clsx from 'clsx';
|
|
5
|
-
import {
|
|
6
|
-
import { getCalendarMonth } from 'mnth';
|
|
5
|
+
import { isAfter, isBefore, isLastDayOfMonth, isSameDay, isSameMonth, isToday } from 'date-fns';
|
|
7
6
|
import { getDateLabel, renderDayName } from '../../../calendar/utils/intl';
|
|
8
7
|
import ScreenreaderOnly from '../../../internal/components/screenreader-only/index.js';
|
|
9
8
|
import { formatDate } from '../../../internal/utils/date-time';
|
|
9
|
+
import { MonthCalendar } from '../../../internal/utils/date-time/calendar';
|
|
10
10
|
import { GridCell } from './grid-cell';
|
|
11
|
+
import testStyles from '../../test-classes/styles.css.js';
|
|
11
12
|
import styles from './styles.css.js';
|
|
12
|
-
export function MonthlyGrid({ baseDate, selectedStartDate, selectedEndDate, rangeStartDate, rangeEndDate, focusedDate, focusedDateRef, onSelectDate, onGridKeyDownHandler, onFocusedDateChange, isDateEnabled, dateDisabledReason, locale, startOfWeek, todayAriaLabel, ariaLabelledby, className, }) {
|
|
13
|
-
const baseDateTime = baseDate === null || baseDate === void 0 ? void 0 : baseDate.getTime();
|
|
13
|
+
export function MonthlyGrid({ padDates, baseDate, selectedStartDate, selectedEndDate, rangeStartDate, rangeEndDate, focusedDate, focusedDateRef, onSelectDate, onGridKeyDownHandler, onFocusedDateChange, isDateEnabled, dateDisabledReason, locale, startOfWeek, todayAriaLabel, ariaLabelledby, className, }) {
|
|
14
14
|
// `baseDateTime` is used as a more stable replacement for baseDate
|
|
15
|
-
const
|
|
15
|
+
const baseDateTime = baseDate === null || baseDate === void 0 ? void 0 : baseDate.getTime();
|
|
16
|
+
const calendar = useMemo(() => {
|
|
17
|
+
const startDate = rangeStartDate !== null && rangeStartDate !== void 0 ? rangeStartDate : rangeEndDate;
|
|
18
|
+
const endDate = rangeEndDate !== null && rangeEndDate !== void 0 ? rangeEndDate : rangeStartDate;
|
|
19
|
+
const selection = startDate && endDate ? [startDate, endDate] : null;
|
|
20
|
+
return new MonthCalendar({ padDates, startOfWeek, baseDate, selection });
|
|
21
|
+
},
|
|
16
22
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
17
|
-
[baseDateTime,
|
|
18
|
-
const weekdays = weeks[0].map(date => date.getDay());
|
|
23
|
+
[padDates, startOfWeek, baseDateTime, rangeStartDate, rangeEndDate]);
|
|
19
24
|
return (React.createElement("table", { role: "grid", "aria-labelledby": ariaLabelledby, className: clsx(styles.grid, className) },
|
|
20
25
|
React.createElement("thead", null,
|
|
21
|
-
React.createElement("tr", null, weekdays.map(dayIndex => (React.createElement("th", { key: dayIndex, scope: "col", className: clsx(styles['grid-cell'], styles['day-header']) },
|
|
26
|
+
React.createElement("tr", null, calendar.weekdays.map(dayIndex => (React.createElement("th", { key: dayIndex, scope: "col", className: clsx(styles['grid-cell'], styles['day-header']) },
|
|
22
27
|
React.createElement("span", { "aria-hidden": "true" }, renderDayName(locale, dayIndex, 'short')),
|
|
23
28
|
React.createElement(ScreenreaderOnly, null, renderDayName(locale, dayIndex, 'long'))))))),
|
|
24
|
-
React.createElement("tbody", { onKeyDown: onGridKeyDownHandler }, weeks.map((
|
|
25
|
-
|
|
29
|
+
React.createElement("tbody", { onKeyDown: onGridKeyDownHandler }, calendar.weeks.map(({ days, testIndex }, weekIndex) => {
|
|
30
|
+
const isWeekBelongsToMonth = days.some(({ date }) => isSameMonth(date, baseDate));
|
|
31
|
+
return (React.createElement("tr", { key: weekIndex, className: clsx(styles.week, isWeekBelongsToMonth && testStyles['calendar-week']), "data-awsui-weekindex": testIndex }, days.map(({ date, isVisible, isInRange, isSelectionTop, isSelectionBottom, isSelectionLeft, isSelectionRight }, dateIndex) => {
|
|
26
32
|
const isStartDate = !!selectedStartDate && isSameDay(date, selectedStartDate);
|
|
27
33
|
const isEndDate = !!selectedEndDate && isSameDay(date, selectedEndDate);
|
|
28
34
|
const isSelected = isStartDate || isEndDate;
|
|
29
|
-
const
|
|
30
|
-
const isRangeEndDate = !!rangeEndDate && isSameDay(date, rangeEndDate);
|
|
31
|
-
const isFocused = !!focusedDate && isSameDay(date, focusedDate) && isSameMonth(date, baseDate);
|
|
32
|
-
const dateIsInRange = isStartDate || isEndDate || isInRange(date, rangeStartDate, rangeEndDate);
|
|
33
|
-
const inRangeStartWeek = rangeStartDate && isInRange(date, rangeStartDate, addDays(addWeeks(rangeStartDate, 1), -1));
|
|
34
|
-
const inRangeEndWeek = rangeEndDate && isInRange(date, rangeEndDate, addDays(addWeeks(rangeEndDate, -1), 1));
|
|
35
|
+
const isFocused = !!focusedDate && isSameDay(date, focusedDate);
|
|
35
36
|
const onlyOneSelected = !!rangeStartDate && !!rangeEndDate
|
|
36
37
|
? isSameDay(rangeStartDate, rangeEndDate)
|
|
37
38
|
: !selectedStartDate || !selectedEndDate;
|
|
38
|
-
const
|
|
39
|
+
const isDateBelongsToMonth = isSameMonth(date, baseDate);
|
|
40
|
+
const isEnabled = (!isDateEnabled || isDateEnabled(date)) && isDateBelongsToMonth;
|
|
39
41
|
const disabledReason = dateDisabledReason(date);
|
|
40
42
|
const isDisabledWithReason = !isEnabled && !!disabledReason;
|
|
41
43
|
const isFocusable = isFocused && (isEnabled || isDisabledWithReason);
|
|
42
44
|
const baseClasses = {
|
|
43
45
|
[styles.day]: true,
|
|
46
|
+
[testStyles['calendar-date']]: isDateBelongsToMonth,
|
|
44
47
|
[styles['grid-cell']]: true,
|
|
45
48
|
[styles['in-first-row']]: weekIndex === 0,
|
|
46
49
|
[styles['in-first-column']]: dateIndex === 0,
|
|
47
50
|
};
|
|
48
|
-
if (!
|
|
51
|
+
if (!isVisible) {
|
|
49
52
|
return (React.createElement("td", { key: `${weekIndex}:${dateIndex}`, ref: isFocused ? focusedDateRef : undefined, className: clsx(baseClasses, {
|
|
50
53
|
[styles['in-previous-month']]: isBefore(date, baseDate),
|
|
51
54
|
[styles['last-day-of-month']]: isLastDayOfMonth(date),
|
|
@@ -73,31 +76,22 @@ export function MonthlyGrid({ baseDate, selectedStartDate, selectedEndDate, rang
|
|
|
73
76
|
dayAnnouncement += '. ' + todayAriaLabel;
|
|
74
77
|
}
|
|
75
78
|
return (React.createElement(GridCell, Object.assign({ ref: isFocused ? focusedDateRef : undefined, key: `${weekIndex}:${dateIndex}`, className: clsx(baseClasses, {
|
|
76
|
-
[styles['in-
|
|
79
|
+
[styles['in-visible-calendar']]: true,
|
|
77
80
|
[styles.enabled]: isEnabled,
|
|
78
81
|
[styles.selected]: isSelected,
|
|
79
82
|
[styles['start-date']]: isStartDate,
|
|
80
83
|
[styles['end-date']]: isEndDate,
|
|
81
|
-
[styles['range-start-date']]: isRangeStartDate,
|
|
82
|
-
[styles['range-end-date']]: isRangeEndDate,
|
|
83
84
|
[styles['no-range']]: isSelected && onlyOneSelected,
|
|
84
|
-
[styles['in-range']]:
|
|
85
|
-
[styles['in-range-border-block-start']]:
|
|
86
|
-
[styles['in-range-border-block-end']]:
|
|
87
|
-
[styles['in-range-border-inline-start']]:
|
|
88
|
-
[styles['in-range-border-inline-end']]:
|
|
85
|
+
[styles['in-range']]: isInRange,
|
|
86
|
+
[styles['in-range-border-block-start']]: isSelectionTop,
|
|
87
|
+
[styles['in-range-border-block-end']]: isSelectionBottom,
|
|
88
|
+
[styles['in-range-border-inline-start']]: isSelectionLeft,
|
|
89
|
+
[styles['in-range-border-inline-end']]: isSelectionRight,
|
|
89
90
|
[styles.today]: isToday(date),
|
|
90
|
-
}), "aria-selected": isEnabled ? isSelected ||
|
|
91
|
+
}), "aria-selected": isEnabled ? isSelected || isInRange : undefined, "aria-current": isToday(date) ? 'date' : undefined, "data-date": formatDate(date), "aria-disabled": !isEnabled, tabIndex: tabIndex, disabledReason: isDisabledWithReason ? disabledReason : undefined }, handlers),
|
|
91
92
|
React.createElement("span", { className: styles['day-inner'], "aria-hidden": "true" }, date.getDate()),
|
|
92
93
|
React.createElement(ScreenreaderOnly, null, dayAnnouncement)));
|
|
93
94
|
})));
|
|
94
95
|
}))));
|
|
95
96
|
}
|
|
96
|
-
function isInRange(date, dateOne, dateTwo) {
|
|
97
|
-
if (!dateOne || !dateTwo || isSameDay(dateOne, dateTwo)) {
|
|
98
|
-
return false;
|
|
99
|
-
}
|
|
100
|
-
const inRange = (isAfter(date, dateOne) && isBefore(date, dateTwo)) || (isAfter(date, dateTwo) && isBefore(date, dateOne));
|
|
101
|
-
return inRange || isSameDay(date, dateOne) || isSameDay(date, dateTwo);
|
|
102
|
-
}
|
|
103
97
|
//# sourceMappingURL=monthly-grid.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"monthly-grid.js","sourceRoot":"","sources":["../../../../../src/date-range-picker/calendar/grids/monthly-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 clsx from 'clsx';\nimport {\n addDays,\n addWeeks,\n getDaysInMonth,\n isAfter,\n isBefore,\n isLastDayOfMonth,\n isSameDay,\n isSameMonth,\n isToday,\n} from 'date-fns';\nimport { getCalendarMonth } from 'mnth';\n\nimport { getDateLabel, renderDayName } from '../../../calendar/utils/intl';\nimport ScreenreaderOnly from '../../../internal/components/screenreader-only/index.js';\nimport { formatDate } from '../../../internal/utils/date-time';\nimport { DateRangePickerProps, DayIndex } from '../../interfaces';\nimport { GridCell } from './grid-cell';\n\nimport styles from './styles.css.js';\n\n/**\n * Calendar grid supports two mechanisms of keyboard navigation:\n * - Native screen-reader table navigation (semantic table markup);\n * - Keyboard arrow-keys navigation (a custom key-down handler).\n *\n * The implementation largely follows the w3 example (https://www.w3.org/WAI/ARIA/apg/example-index/dialog-modal/datepicker-dialog) and shares the following issues:\n * - (table navigation) Chrome+VO - weekday is announced twice when navigating to the calendar's header;\n * - (table navigation) Safari+VO - \"dimmed\" state is announced twice;\n * - (table navigation) Firefox/Chrome+NVDA - cannot use table navigation if any cell has a focus;\n * - (keyboard navigation) Firefox+NVDA - every 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\ninterface 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 dateDisabledReason: DateRangePickerProps.DateDisabledReasonFunction;\n\n locale: string;\n startOfWeek: DayIndex;\n todayAriaLabel?: string;\n ariaLabelledby: string;\n\n className?: string;\n}\n\nexport function MonthlyGrid({\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 dateDisabledReason,\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 disabledReason = dateDisabledReason(date);\n const isDisabledWithReason = !isEnabled && !!disabledReason;\n const isFocusable = isFocused && (isEnabled || isDisabledWithReason);\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 || isDisabledWithReason)) {\n // Next focus target.\n tabIndex = 0;\n } else if (isEnabled || isDisabledWithReason) {\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 <GridCell\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 disabledReason={isDisabledWithReason ? disabledReason : undefined}\n {...handlers}\n >\n <span className={styles['day-inner']} aria-hidden=\"true\">\n {date.getDate()}\n </span>\n <ScreenreaderOnly>{dayAnnouncement}</ScreenreaderOnly>\n </GridCell>\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":"monthly-grid.js","sourceRoot":"","sources":["../../../../../src/date-range-picker/calendar/grids/monthly-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 clsx from 'clsx';\nimport { isAfter, isBefore, isLastDayOfMonth, isSameDay, isSameMonth, isToday } from 'date-fns';\n\nimport { getDateLabel, renderDayName } from '../../../calendar/utils/intl';\nimport ScreenreaderOnly from '../../../internal/components/screenreader-only/index.js';\nimport { formatDate } from '../../../internal/utils/date-time';\nimport { MonthCalendar } from '../../../internal/utils/date-time/calendar';\nimport { DateRangePickerProps, DayIndex } from '../../interfaces';\nimport { GridCell } from './grid-cell';\n\nimport testStyles from '../../test-classes/styles.css.js';\nimport styles from './styles.css.js';\n\n/**\n * Calendar grid supports two mechanisms of keyboard navigation:\n * - Native screen-reader table navigation (semantic table markup);\n * - Keyboard arrow-keys navigation (a custom key-down handler).\n *\n * The implementation largely follows the w3 example (https://www.w3.org/WAI/ARIA/apg/example-index/dialog-modal/datepicker-dialog) and shares the following issues:\n * - (table navigation) Chrome+VO - weekday is announced twice when navigating to the calendar's header;\n * - (table navigation) Safari+VO - \"dimmed\" state is announced twice;\n * - (table navigation) Firefox/Chrome+NVDA - cannot use table navigation if any cell has a focus;\n * - (keyboard navigation) Firefox+NVDA - every 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\ninterface GridProps {\n padDates: 'before' | 'after';\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 dateDisabledReason: DateRangePickerProps.DateDisabledReasonFunction;\n\n locale: string;\n startOfWeek: DayIndex;\n todayAriaLabel?: string;\n ariaLabelledby: string;\n\n className?: string;\n}\n\nexport function MonthlyGrid({\n padDates,\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 dateDisabledReason,\n\n locale,\n startOfWeek,\n todayAriaLabel,\n ariaLabelledby,\n\n className,\n}: GridProps) {\n // `baseDateTime` is used as a more stable replacement for baseDate\n const baseDateTime = baseDate?.getTime();\n const calendar = useMemo(\n () => {\n const startDate = rangeStartDate ?? rangeEndDate;\n const endDate = rangeEndDate ?? rangeStartDate;\n const selection = startDate && endDate ? ([startDate, endDate] as [Date, Date]) : null;\n return new MonthCalendar({ padDates, startOfWeek, baseDate, selection });\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [padDates, startOfWeek, baseDateTime, rangeStartDate, rangeEndDate]\n );\n return (\n <table role=\"grid\" aria-labelledby={ariaLabelledby} className={clsx(styles.grid, className)}>\n <thead>\n <tr>\n {calendar.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 {calendar.weeks.map(({ days, testIndex }, weekIndex) => {\n const isWeekBelongsToMonth = days.some(({ date }) => isSameMonth(date, baseDate));\n return (\n <tr\n key={weekIndex}\n className={clsx(styles.week, isWeekBelongsToMonth && testStyles['calendar-week'])}\n data-awsui-weekindex={testIndex}\n >\n {days.map(\n (\n { date, isVisible, isInRange, isSelectionTop, isSelectionBottom, isSelectionLeft, isSelectionRight },\n dateIndex\n ) => {\n const isStartDate = !!selectedStartDate && isSameDay(date, selectedStartDate);\n const isEndDate = !!selectedEndDate && isSameDay(date, selectedEndDate);\n const isSelected = isStartDate || isEndDate;\n const isFocused = !!focusedDate && isSameDay(date, focusedDate);\n const onlyOneSelected =\n !!rangeStartDate && !!rangeEndDate\n ? isSameDay(rangeStartDate, rangeEndDate)\n : !selectedStartDate || !selectedEndDate;\n\n const isDateBelongsToMonth = isSameMonth(date, baseDate);\n const isEnabled = (!isDateEnabled || isDateEnabled(date)) && isDateBelongsToMonth;\n const disabledReason = dateDisabledReason(date);\n const isDisabledWithReason = !isEnabled && !!disabledReason;\n const isFocusable = isFocused && (isEnabled || isDisabledWithReason);\n\n const baseClasses = {\n [styles.day]: true,\n [testStyles['calendar-date']]: isDateBelongsToMonth,\n [styles['grid-cell']]: true,\n [styles['in-first-row']]: weekIndex === 0,\n [styles['in-first-column']]: dateIndex === 0,\n };\n\n if (!isVisible) {\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 || isDisabledWithReason)) {\n // Next focus target.\n tabIndex = 0;\n } else if (isEnabled || isDisabledWithReason) {\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 <GridCell\n ref={isFocused ? focusedDateRef : undefined}\n key={`${weekIndex}:${dateIndex}`}\n className={clsx(baseClasses, {\n [styles['in-visible-calendar']]: true,\n [styles.enabled]: isEnabled,\n [styles.selected]: isSelected,\n [styles['start-date']]: isStartDate,\n [styles['end-date']]: isEndDate,\n [styles['no-range']]: isSelected && onlyOneSelected,\n [styles['in-range']]: isInRange,\n [styles['in-range-border-block-start']]: isSelectionTop,\n [styles['in-range-border-block-end']]: isSelectionBottom,\n [styles['in-range-border-inline-start']]: isSelectionLeft,\n [styles['in-range-border-inline-end']]: isSelectionRight,\n [styles.today]: isToday(date),\n })}\n aria-selected={isEnabled ? isSelected || isInRange : undefined}\n aria-current={isToday(date) ? 'date' : undefined}\n data-date={formatDate(date)}\n aria-disabled={!isEnabled}\n tabIndex={tabIndex}\n disabledReason={isDisabledWithReason ? disabledReason : undefined}\n {...handlers}\n >\n <span className={styles['day-inner']} aria-hidden=\"true\">\n {date.getDate()}\n </span>\n <ScreenreaderOnly>{dayAnnouncement}</ScreenreaderOnly>\n </GridCell>\n );\n }\n )}\n </tr>\n );\n })}\n </tbody>\n </table>\n );\n}\n"]}
|
|
@@ -1,33 +1,29 @@
|
|
|
1
1
|
|
|
2
2
|
import './styles.scoped.css';
|
|
3
3
|
export default {
|
|
4
|
-
"grid": "
|
|
5
|
-
"grid-cell": "awsui_grid-
|
|
6
|
-
"day-header": "awsui_day-
|
|
7
|
-
"week": "
|
|
8
|
-
"day": "
|
|
9
|
-
"day-inner": "awsui_day-
|
|
10
|
-
"in-first-row": "awsui_in-first-
|
|
11
|
-
"in-previous-month": "awsui_in-previous-
|
|
12
|
-
"last-day-of-month": "awsui_last-day-of-
|
|
13
|
-
"in-next-month": "awsui_in-next-
|
|
14
|
-
"in-first-column": "awsui_in-first-
|
|
15
|
-
"in-
|
|
16
|
-
"enabled": "
|
|
17
|
-
"in-range": "awsui_in-
|
|
18
|
-
"end-date": "awsui_end-
|
|
19
|
-
"start-date": "awsui_start-
|
|
20
|
-
"no-range": "awsui_no-
|
|
21
|
-
"selected": "
|
|
22
|
-
"today": "
|
|
23
|
-
"range-start
|
|
24
|
-
"in-range-border-
|
|
25
|
-
"range-end
|
|
26
|
-
"in-range-border-
|
|
27
|
-
"
|
|
28
|
-
"in-range-border-inline-end": "awsui_in-range-border-inline-end_1mfbn_1agc5_333",
|
|
29
|
-
"in-range-border-block-end": "awsui_in-range-border-block-end_1mfbn_1agc5_336",
|
|
30
|
-
"in-range-border-inline-start": "awsui_in-range-border-inline-start_1mfbn_1agc5_339",
|
|
31
|
-
"disabled-reason-tooltip": "awsui_disabled-reason-tooltip_1mfbn_1agc5_355"
|
|
4
|
+
"grid": "awsui_grid_1mfbn_1xshi_149",
|
|
5
|
+
"grid-cell": "awsui_grid-cell_1mfbn_1xshi_154",
|
|
6
|
+
"day-header": "awsui_day-header_1mfbn_1xshi_161",
|
|
7
|
+
"week": "awsui_week_1mfbn_1xshi_171",
|
|
8
|
+
"day": "awsui_day_1mfbn_1xshi_161",
|
|
9
|
+
"day-inner": "awsui_day-inner_1mfbn_1xshi_218",
|
|
10
|
+
"in-first-row": "awsui_in-first-row_1mfbn_1xshi_223",
|
|
11
|
+
"in-previous-month": "awsui_in-previous-month_1mfbn_1xshi_223",
|
|
12
|
+
"last-day-of-month": "awsui_last-day-of-month_1mfbn_1xshi_227",
|
|
13
|
+
"in-next-month": "awsui_in-next-month_1mfbn_1xshi_231",
|
|
14
|
+
"in-first-column": "awsui_in-first-column_1mfbn_1xshi_235",
|
|
15
|
+
"in-visible-calendar": "awsui_in-visible-calendar_1mfbn_1xshi_238",
|
|
16
|
+
"enabled": "awsui_enabled_1mfbn_1xshi_242",
|
|
17
|
+
"in-range": "awsui_in-range_1mfbn_1xshi_248",
|
|
18
|
+
"end-date": "awsui_end-date_1mfbn_1xshi_248",
|
|
19
|
+
"start-date": "awsui_start-date_1mfbn_1xshi_248",
|
|
20
|
+
"no-range": "awsui_no-range_1mfbn_1xshi_248",
|
|
21
|
+
"selected": "awsui_selected_1mfbn_1xshi_258",
|
|
22
|
+
"today": "awsui_today_1mfbn_1xshi_263",
|
|
23
|
+
"in-range-border-block-start": "awsui_in-range-border-block-start_1mfbn_1xshi_321",
|
|
24
|
+
"in-range-border-inline-end": "awsui_in-range-border-inline-end_1mfbn_1xshi_324",
|
|
25
|
+
"in-range-border-block-end": "awsui_in-range-border-block-end_1mfbn_1xshi_327",
|
|
26
|
+
"in-range-border-inline-start": "awsui_in-range-border-inline-start_1mfbn_1xshi_330",
|
|
27
|
+
"disabled-reason-tooltip": "awsui_disabled-reason-tooltip_1mfbn_1xshi_346"
|
|
32
28
|
};
|
|
33
29
|
|
|
@@ -146,19 +146,19 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
|
|
|
146
146
|
Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
147
147
|
SPDX-License-Identifier: Apache-2.0
|
|
148
148
|
*/
|
|
149
|
-
.
|
|
149
|
+
.awsui_grid_1mfbn_1xshi_149:not(#\9) {
|
|
150
150
|
inline-size: var(--size-calendar-grid-width-arud77, 234px);
|
|
151
151
|
border-spacing: 0;
|
|
152
152
|
}
|
|
153
153
|
|
|
154
|
-
.awsui_grid-
|
|
154
|
+
.awsui_grid-cell_1mfbn_1xshi_154:not(#\9) {
|
|
155
155
|
inline-size: 14.2857142857%;
|
|
156
156
|
word-break: break-word;
|
|
157
157
|
text-align: center;
|
|
158
158
|
font-weight: unset;
|
|
159
159
|
}
|
|
160
160
|
|
|
161
|
-
.awsui_day-
|
|
161
|
+
.awsui_day-header_1mfbn_1xshi_161:not(#\9) {
|
|
162
162
|
padding-block-start: var(--space-s-vmutj3, 12px);
|
|
163
163
|
padding-block-end: var(--space-xxs-y2432o, 4px);
|
|
164
164
|
padding-inline: 0;
|
|
@@ -168,11 +168,11 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
|
|
|
168
168
|
letter-spacing: var(--letter-spacing-body-s-cbaxyl, normal);
|
|
169
169
|
}
|
|
170
170
|
|
|
171
|
-
.
|
|
171
|
+
.awsui_week_1mfbn_1xshi_171:not(#\9) {
|
|
172
172
|
/* used for identifying element */
|
|
173
173
|
}
|
|
174
174
|
|
|
175
|
-
.
|
|
175
|
+
.awsui_day_1mfbn_1xshi_161:not(#\9) {
|
|
176
176
|
border-block-end: 1px solid var(--color-border-calendar-grid-3f7bvh, #eaeded);
|
|
177
177
|
border-inline-end: 1px solid var(--color-border-calendar-grid-3f7bvh, #eaeded);
|
|
178
178
|
padding-block: var(--space-xxs-y2432o, 4px);
|
|
@@ -180,10 +180,10 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
|
|
|
180
180
|
color: var(--color-text-dropdown-item-disabled-gk1x2u, #aab7b8);
|
|
181
181
|
position: relative;
|
|
182
182
|
}
|
|
183
|
-
.
|
|
183
|
+
.awsui_day_1mfbn_1xshi_161:not(#\9):focus {
|
|
184
184
|
outline: none;
|
|
185
185
|
}
|
|
186
|
-
.
|
|
186
|
+
.awsui_day_1mfbn_1xshi_161:not(#\9)::after {
|
|
187
187
|
content: "";
|
|
188
188
|
position: absolute;
|
|
189
189
|
z-index: 1;
|
|
@@ -193,15 +193,15 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
|
|
|
193
193
|
inset-inline-end: calc(-1 * var(--border-item-width-bjacxs, 1px));
|
|
194
194
|
background-color: transparent;
|
|
195
195
|
}
|
|
196
|
-
body[data-awsui-focus-visible=true] .
|
|
196
|
+
body[data-awsui-focus-visible=true] .awsui_day_1mfbn_1xshi_161:not(#\9):focus {
|
|
197
197
|
z-index: 2;
|
|
198
198
|
position: relative;
|
|
199
199
|
}
|
|
200
|
-
body[data-awsui-focus-visible=true] .
|
|
200
|
+
body[data-awsui-focus-visible=true] .awsui_day_1mfbn_1xshi_161:not(#\9):focus {
|
|
201
201
|
outline: 2px dotted transparent;
|
|
202
202
|
outline-offset: calc(var(--space-calendar-grid-focus-outline-gutter-xwymmd, 0px) - 1px);
|
|
203
203
|
}
|
|
204
|
-
body[data-awsui-focus-visible=true] .
|
|
204
|
+
body[data-awsui-focus-visible=true] .awsui_day_1mfbn_1xshi_161:not(#\9):focus::before {
|
|
205
205
|
content: " ";
|
|
206
206
|
display: block;
|
|
207
207
|
position: absolute;
|
|
@@ -215,52 +215,52 @@ body[data-awsui-focus-visible=true] .awsui_day_1mfbn_1agc5_161:not(#\9):focus::b
|
|
|
215
215
|
border-end-end-radius: var(--border-radius-calendar-day-focus-ring-wmrhyj, 2px);
|
|
216
216
|
box-shadow: 0 0 0 2px var(--color-border-item-focused-q68bgg, #0073bb);
|
|
217
217
|
}
|
|
218
|
-
.
|
|
218
|
+
.awsui_day_1mfbn_1xshi_161 > .awsui_day-inner_1mfbn_1xshi_218:not(#\9) {
|
|
219
219
|
position: relative;
|
|
220
220
|
z-index: 1;
|
|
221
221
|
}
|
|
222
222
|
|
|
223
|
-
.awsui_in-first-
|
|
223
|
+
.awsui_in-first-row_1mfbn_1xshi_223:not(#\9):not(.awsui_in-previous-month_1mfbn_1xshi_223) {
|
|
224
224
|
border-block-start: 1px solid var(--color-border-calendar-grid-3f7bvh, #eaeded);
|
|
225
225
|
}
|
|
226
226
|
|
|
227
|
-
.awsui_in-previous-
|
|
227
|
+
.awsui_in-previous-month_1mfbn_1xshi_223:not(#\9):not(.awsui_last-day-of-month_1mfbn_1xshi_227) {
|
|
228
228
|
border-inline-end-color: transparent;
|
|
229
229
|
}
|
|
230
230
|
|
|
231
|
-
.awsui_in-next-
|
|
231
|
+
.awsui_in-next-month_1mfbn_1xshi_231:not(#\9) {
|
|
232
232
|
border-color: transparent;
|
|
233
233
|
}
|
|
234
234
|
|
|
235
|
-
.awsui_in-first-
|
|
236
|
-
border-inline-start: 1px solid
|
|
235
|
+
.awsui_in-first-column_1mfbn_1xshi_235:not(#\9) {
|
|
236
|
+
border-inline-start: 1px solid 1px solid var(--color-border-calendar-grid-3f7bvh, #eaeded);
|
|
237
237
|
}
|
|
238
|
-
.awsui_in-first-
|
|
238
|
+
.awsui_in-first-column_1mfbn_1xshi_235.awsui_in-visible-calendar_1mfbn_1xshi_238:not(#\9) {
|
|
239
239
|
border-inline-start: 1px solid var(--color-border-calendar-grid-3f7bvh, #eaeded);
|
|
240
240
|
}
|
|
241
241
|
|
|
242
|
-
.
|
|
242
|
+
.awsui_enabled_1mfbn_1xshi_242:not(#\9) {
|
|
243
243
|
cursor: pointer;
|
|
244
244
|
}
|
|
245
|
-
.
|
|
245
|
+
.awsui_enabled_1mfbn_1xshi_242.awsui_in-visible-calendar_1mfbn_1xshi_238:not(#\9) {
|
|
246
246
|
color: var(--color-text-dropdown-item-default-o6jy8o, #16191f);
|
|
247
247
|
}
|
|
248
|
-
.
|
|
248
|
+
.awsui_enabled_1mfbn_1xshi_242.awsui_in-visible-calendar_1mfbn_1xshi_238:not(#\9):not(.awsui_in-range_1mfbn_1xshi_248), .awsui_enabled_1mfbn_1xshi_242.awsui_in-visible-calendar_1mfbn_1xshi_238:not(#\9):not(.awsui_in-range_1mfbn_1xshi_248)::after, .awsui_enabled_1mfbn_1xshi_242.awsui_in-visible-calendar_1mfbn_1xshi_238.awsui_end-date_1mfbn_1xshi_248.awsui_start-date_1mfbn_1xshi_248:not(#\9), .awsui_enabled_1mfbn_1xshi_242.awsui_in-visible-calendar_1mfbn_1xshi_238.awsui_end-date_1mfbn_1xshi_248.awsui_start-date_1mfbn_1xshi_248:not(#\9)::after, .awsui_enabled_1mfbn_1xshi_242.awsui_in-visible-calendar_1mfbn_1xshi_238.awsui_no-range_1mfbn_1xshi_248:not(#\9), .awsui_enabled_1mfbn_1xshi_242.awsui_in-visible-calendar_1mfbn_1xshi_238.awsui_no-range_1mfbn_1xshi_248:not(#\9)::after {
|
|
249
249
|
border-start-start-radius: var(--border-radius-item-q4wr0w, 0px);
|
|
250
250
|
border-start-end-radius: var(--border-radius-item-q4wr0w, 0px);
|
|
251
251
|
border-end-start-radius: var(--border-radius-item-q4wr0w, 0px);
|
|
252
252
|
border-end-end-radius: var(--border-radius-item-q4wr0w, 0px);
|
|
253
253
|
}
|
|
254
|
-
.
|
|
254
|
+
.awsui_enabled_1mfbn_1xshi_242.awsui_in-visible-calendar_1mfbn_1xshi_238:not(#\9):hover {
|
|
255
255
|
color: var(--color-text-calendar-date-hover-tw9220, #16191f);
|
|
256
256
|
background-color: var(--color-background-dropdown-item-hover-r5jqv1, #f2f3f3);
|
|
257
257
|
}
|
|
258
|
-
.
|
|
258
|
+
.awsui_enabled_1mfbn_1xshi_242.awsui_in-visible-calendar_1mfbn_1xshi_238:not(#\9):hover:not(.awsui_selected_1mfbn_1xshi_258)::after {
|
|
259
259
|
border-block: var(--border-item-width-bjacxs, 1px) solid var(--color-border-dropdown-item-hover-69t7jr, #879596);
|
|
260
260
|
border-inline: var(--border-item-width-bjacxs, 1px) solid var(--color-border-dropdown-item-hover-69t7jr, #879596);
|
|
261
261
|
}
|
|
262
262
|
|
|
263
|
-
.
|
|
263
|
+
.awsui_today_1mfbn_1xshi_263:not(#\9):not(.awsui_in-range_1mfbn_1xshi_248) {
|
|
264
264
|
background-color: var(--color-background-calendar-current-date-du8mmf, #f2f3f3);
|
|
265
265
|
border-start-start-radius: var(--border-radius-item-q4wr0w, 0px);
|
|
266
266
|
border-start-end-radius: var(--border-radius-item-q4wr0w, 0px);
|
|
@@ -269,20 +269,20 @@ body[data-awsui-focus-visible=true] .awsui_day_1mfbn_1agc5_161:not(#\9):focus::b
|
|
|
269
269
|
font-weight: 700;
|
|
270
270
|
}
|
|
271
271
|
|
|
272
|
-
.
|
|
272
|
+
.awsui_selected_1mfbn_1xshi_258:not(#\9) {
|
|
273
273
|
border-color: transparent;
|
|
274
274
|
position: relative;
|
|
275
275
|
z-index: 2;
|
|
276
276
|
font-weight: 700;
|
|
277
277
|
}
|
|
278
|
-
body[data-awsui-focus-visible=true] .
|
|
278
|
+
body[data-awsui-focus-visible=true] .awsui_selected_1mfbn_1xshi_258:not(#\9):focus {
|
|
279
279
|
position: relative;
|
|
280
280
|
}
|
|
281
|
-
body[data-awsui-focus-visible=true] .
|
|
281
|
+
body[data-awsui-focus-visible=true] .awsui_selected_1mfbn_1xshi_258:not(#\9):focus {
|
|
282
282
|
outline: 2px dotted transparent;
|
|
283
283
|
outline-offset: calc(var(--space-calendar-grid-selected-focus-outline-gutter-alnmsa, 2px) - 1px);
|
|
284
284
|
}
|
|
285
|
-
body[data-awsui-focus-visible=true] .
|
|
285
|
+
body[data-awsui-focus-visible=true] .awsui_selected_1mfbn_1xshi_258:not(#\9):focus::before {
|
|
286
286
|
content: " ";
|
|
287
287
|
display: block;
|
|
288
288
|
position: absolute;
|
|
@@ -296,62 +296,53 @@ body[data-awsui-focus-visible=true] .awsui_selected_1mfbn_1agc5_258:not(#\9):foc
|
|
|
296
296
|
border-end-end-radius: var(--border-radius-calendar-day-focus-ring-wmrhyj, 2px);
|
|
297
297
|
box-shadow: 0 0 0 2px var(--color-border-calendar-grid-selected-focus-ring-faye0i, #0073bb);
|
|
298
298
|
}
|
|
299
|
-
body[data-awsui-focus-visible=true] .
|
|
299
|
+
body[data-awsui-focus-visible=true] .awsui_selected_1mfbn_1xshi_258:not(#\9):focus::before {
|
|
300
300
|
z-index: 1;
|
|
301
301
|
}
|
|
302
|
-
.
|
|
302
|
+
.awsui_selected_1mfbn_1xshi_258:not(#\9)::after {
|
|
303
303
|
background-color: var(--color-background-control-checked-aeun6h, #0073bb);
|
|
304
304
|
border-block: var(--border-item-width-bjacxs, 1px) solid var(--color-background-control-checked-aeun6h, #0073bb);
|
|
305
305
|
border-inline: var(--border-item-width-bjacxs, 1px) solid var(--color-background-control-checked-aeun6h, #0073bb);
|
|
306
306
|
z-index: 0;
|
|
307
307
|
}
|
|
308
|
-
.
|
|
309
|
-
|
|
310
|
-
}
|
|
311
|
-
.awsui_selected_1mfbn_1agc5_258.awsui_start-date_1mfbn_1agc5_248.awsui_in-range-border-bottom_1mfbn_1agc5_311:not(#\9), .awsui_selected_1mfbn_1agc5_258.awsui_start-date_1mfbn_1agc5_248.awsui_in-range-border-bottom_1mfbn_1agc5_311:not(#\9)::after, .awsui_selected_1mfbn_1agc5_258.awsui_range-start-date_1mfbn_1agc5_308.awsui_in-range-border-bottom_1mfbn_1agc5_311:not(#\9), .awsui_selected_1mfbn_1agc5_258.awsui_range-start-date_1mfbn_1agc5_308.awsui_in-range-border-bottom_1mfbn_1agc5_311:not(#\9)::after {
|
|
312
|
-
border-end-start-radius: var(--border-radius-item-q4wr0w, 0px);
|
|
313
|
-
}
|
|
314
|
-
.awsui_selected_1mfbn_1agc5_258.awsui_end-date_1mfbn_1agc5_248:not(#\9), .awsui_selected_1mfbn_1agc5_258.awsui_end-date_1mfbn_1agc5_248:not(#\9)::after, .awsui_selected_1mfbn_1agc5_258.awsui_range-end-date_1mfbn_1agc5_314:not(#\9), .awsui_selected_1mfbn_1agc5_258.awsui_range-end-date_1mfbn_1agc5_314:not(#\9)::after {
|
|
315
|
-
border-end-end-radius: var(--border-radius-item-q4wr0w, 0px);
|
|
316
|
-
}
|
|
317
|
-
.awsui_selected_1mfbn_1agc5_258.awsui_end-date_1mfbn_1agc5_248.awsui_in-range-border-top_1mfbn_1agc5_317:not(#\9), .awsui_selected_1mfbn_1agc5_258.awsui_end-date_1mfbn_1agc5_248.awsui_in-range-border-top_1mfbn_1agc5_317:not(#\9)::after, .awsui_selected_1mfbn_1agc5_258.awsui_range-end-date_1mfbn_1agc5_314.awsui_in-range-border-top_1mfbn_1agc5_317:not(#\9), .awsui_selected_1mfbn_1agc5_258.awsui_range-end-date_1mfbn_1agc5_314.awsui_in-range-border-top_1mfbn_1agc5_317:not(#\9)::after {
|
|
318
|
-
border-start-end-radius: var(--border-radius-item-q4wr0w, 0px);
|
|
308
|
+
.awsui_selected_1mfbn_1xshi_258.awsui_start-date_1mfbn_1xshi_248:not(#\9), .awsui_selected_1mfbn_1xshi_258.awsui_end-date_1mfbn_1xshi_248:not(#\9) {
|
|
309
|
+
/* used in test utils */
|
|
319
310
|
}
|
|
320
|
-
.
|
|
311
|
+
.awsui_selected_1mfbn_1xshi_258 > .awsui_day-inner_1mfbn_1xshi_218:not(#\9) {
|
|
321
312
|
color: var(--color-background-control-default-mfefru, #ffffff);
|
|
322
313
|
position: relative;
|
|
323
314
|
z-index: 2;
|
|
324
315
|
}
|
|
325
316
|
|
|
326
|
-
.awsui_in-
|
|
317
|
+
.awsui_in-range_1mfbn_1xshi_248:not(#\9) {
|
|
327
318
|
background-color: var(--color-background-dropdown-item-selected-i187hy, #f1faff);
|
|
328
319
|
font-weight: 700;
|
|
329
320
|
}
|
|
330
|
-
.awsui_in-
|
|
321
|
+
.awsui_in-range_1mfbn_1xshi_248.awsui_in-range-border-block-start_1mfbn_1xshi_321:not(#\9)::after {
|
|
331
322
|
border-block-start: var(--border-item-width-bjacxs, 1px) solid var(--color-background-control-checked-aeun6h, #0073bb);
|
|
332
323
|
}
|
|
333
|
-
.awsui_in-
|
|
324
|
+
.awsui_in-range_1mfbn_1xshi_248.awsui_in-range-border-inline-end_1mfbn_1xshi_324:not(#\9)::after {
|
|
334
325
|
border-inline-end: var(--border-item-width-bjacxs, 1px) solid var(--color-background-control-checked-aeun6h, #0073bb);
|
|
335
326
|
}
|
|
336
|
-
.awsui_in-
|
|
327
|
+
.awsui_in-range_1mfbn_1xshi_248.awsui_in-range-border-block-end_1mfbn_1xshi_327:not(#\9)::after {
|
|
337
328
|
border-block-end: var(--border-item-width-bjacxs, 1px) solid var(--color-background-control-checked-aeun6h, #0073bb);
|
|
338
329
|
}
|
|
339
|
-
.awsui_in-
|
|
330
|
+
.awsui_in-range_1mfbn_1xshi_248.awsui_in-range-border-inline-start_1mfbn_1xshi_330:not(#\9)::after {
|
|
340
331
|
border-inline-start: var(--border-item-width-bjacxs, 1px) solid var(--color-background-control-checked-aeun6h, #0073bb);
|
|
341
332
|
}
|
|
342
|
-
.awsui_in-
|
|
333
|
+
.awsui_in-range_1mfbn_1xshi_248.awsui_in-range-border-block-start_1mfbn_1xshi_321.awsui_in-range-border-inline-end_1mfbn_1xshi_324:not(#\9), .awsui_in-range_1mfbn_1xshi_248.awsui_in-range-border-block-start_1mfbn_1xshi_321.awsui_in-range-border-inline-end_1mfbn_1xshi_324:not(#\9)::after {
|
|
343
334
|
border-start-end-radius: var(--border-radius-item-q4wr0w, 0px);
|
|
344
335
|
}
|
|
345
|
-
.awsui_in-
|
|
336
|
+
.awsui_in-range_1mfbn_1xshi_248.awsui_in-range-border-block-end_1mfbn_1xshi_327.awsui_in-range-border-inline-end_1mfbn_1xshi_324:not(#\9), .awsui_in-range_1mfbn_1xshi_248.awsui_in-range-border-block-end_1mfbn_1xshi_327.awsui_in-range-border-inline-end_1mfbn_1xshi_324:not(#\9)::after {
|
|
346
337
|
border-end-end-radius: var(--border-radius-item-q4wr0w, 0px);
|
|
347
338
|
}
|
|
348
|
-
.awsui_in-
|
|
339
|
+
.awsui_in-range_1mfbn_1xshi_248.awsui_in-range-border-block-end_1mfbn_1xshi_327.awsui_in-range-border-inline-start_1mfbn_1xshi_330:not(#\9), .awsui_in-range_1mfbn_1xshi_248.awsui_in-range-border-block-end_1mfbn_1xshi_327.awsui_in-range-border-inline-start_1mfbn_1xshi_330:not(#\9)::after {
|
|
349
340
|
border-end-start-radius: var(--border-radius-item-q4wr0w, 0px);
|
|
350
341
|
}
|
|
351
|
-
.awsui_in-
|
|
342
|
+
.awsui_in-range_1mfbn_1xshi_248.awsui_in-range-border-block-start_1mfbn_1xshi_321.awsui_in-range-border-inline-start_1mfbn_1xshi_330:not(#\9), .awsui_in-range_1mfbn_1xshi_248.awsui_in-range-border-block-start_1mfbn_1xshi_321.awsui_in-range-border-inline-start_1mfbn_1xshi_330:not(#\9)::after {
|
|
352
343
|
border-start-start-radius: var(--border-radius-item-q4wr0w, 0px);
|
|
353
344
|
}
|
|
354
345
|
|
|
355
|
-
.awsui_disabled-reason-
|
|
346
|
+
.awsui_disabled-reason-tooltip_1mfbn_1xshi_346:not(#\9) {
|
|
356
347
|
/* used in test-utils or tests */
|
|
357
348
|
}
|
|
@@ -2,33 +2,29 @@
|
|
|
2
2
|
// es-module interop with Babel and Typescript
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
4
|
module.exports.default = {
|
|
5
|
-
"grid": "
|
|
6
|
-
"grid-cell": "awsui_grid-
|
|
7
|
-
"day-header": "awsui_day-
|
|
8
|
-
"week": "
|
|
9
|
-
"day": "
|
|
10
|
-
"day-inner": "awsui_day-
|
|
11
|
-
"in-first-row": "awsui_in-first-
|
|
12
|
-
"in-previous-month": "awsui_in-previous-
|
|
13
|
-
"last-day-of-month": "awsui_last-day-of-
|
|
14
|
-
"in-next-month": "awsui_in-next-
|
|
15
|
-
"in-first-column": "awsui_in-first-
|
|
16
|
-
"in-
|
|
17
|
-
"enabled": "
|
|
18
|
-
"in-range": "awsui_in-
|
|
19
|
-
"end-date": "awsui_end-
|
|
20
|
-
"start-date": "awsui_start-
|
|
21
|
-
"no-range": "awsui_no-
|
|
22
|
-
"selected": "
|
|
23
|
-
"today": "
|
|
24
|
-
"range-start
|
|
25
|
-
"in-range-border-
|
|
26
|
-
"range-end
|
|
27
|
-
"in-range-border-
|
|
28
|
-
"
|
|
29
|
-
"in-range-border-inline-end": "awsui_in-range-border-inline-end_1mfbn_1agc5_333",
|
|
30
|
-
"in-range-border-block-end": "awsui_in-range-border-block-end_1mfbn_1agc5_336",
|
|
31
|
-
"in-range-border-inline-start": "awsui_in-range-border-inline-start_1mfbn_1agc5_339",
|
|
32
|
-
"disabled-reason-tooltip": "awsui_disabled-reason-tooltip_1mfbn_1agc5_355"
|
|
5
|
+
"grid": "awsui_grid_1mfbn_1xshi_149",
|
|
6
|
+
"grid-cell": "awsui_grid-cell_1mfbn_1xshi_154",
|
|
7
|
+
"day-header": "awsui_day-header_1mfbn_1xshi_161",
|
|
8
|
+
"week": "awsui_week_1mfbn_1xshi_171",
|
|
9
|
+
"day": "awsui_day_1mfbn_1xshi_161",
|
|
10
|
+
"day-inner": "awsui_day-inner_1mfbn_1xshi_218",
|
|
11
|
+
"in-first-row": "awsui_in-first-row_1mfbn_1xshi_223",
|
|
12
|
+
"in-previous-month": "awsui_in-previous-month_1mfbn_1xshi_223",
|
|
13
|
+
"last-day-of-month": "awsui_last-day-of-month_1mfbn_1xshi_227",
|
|
14
|
+
"in-next-month": "awsui_in-next-month_1mfbn_1xshi_231",
|
|
15
|
+
"in-first-column": "awsui_in-first-column_1mfbn_1xshi_235",
|
|
16
|
+
"in-visible-calendar": "awsui_in-visible-calendar_1mfbn_1xshi_238",
|
|
17
|
+
"enabled": "awsui_enabled_1mfbn_1xshi_242",
|
|
18
|
+
"in-range": "awsui_in-range_1mfbn_1xshi_248",
|
|
19
|
+
"end-date": "awsui_end-date_1mfbn_1xshi_248",
|
|
20
|
+
"start-date": "awsui_start-date_1mfbn_1xshi_248",
|
|
21
|
+
"no-range": "awsui_no-range_1mfbn_1xshi_248",
|
|
22
|
+
"selected": "awsui_selected_1mfbn_1xshi_258",
|
|
23
|
+
"today": "awsui_today_1mfbn_1xshi_263",
|
|
24
|
+
"in-range-border-block-start": "awsui_in-range-border-block-start_1mfbn_1xshi_321",
|
|
25
|
+
"in-range-border-inline-end": "awsui_in-range-border-inline-end_1mfbn_1xshi_324",
|
|
26
|
+
"in-range-border-block-end": "awsui_in-range-border-block-end_1mfbn_1xshi_327",
|
|
27
|
+
"in-range-border-inline-start": "awsui_in-range-border-inline-start_1mfbn_1xshi_330",
|
|
28
|
+
"disabled-reason-tooltip": "awsui_disabled-reason-tooltip_1mfbn_1xshi_346"
|
|
33
29
|
};
|
|
34
30
|
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
|
|
2
2
|
import './styles.scoped.css';
|
|
3
3
|
export default {
|
|
4
|
-
"marker": "
|
|
5
|
-
"root": "
|
|
6
|
-
"title": "
|
|
7
|
-
"list": "
|
|
8
|
-
"marker--dimmed": "awsui_marker--
|
|
9
|
-
"marker--highlighted": "awsui_marker--
|
|
4
|
+
"marker": "awsui_marker_1kjc7_rmeoy_153",
|
|
5
|
+
"root": "awsui_root_1kjc7_rmeoy_167",
|
|
6
|
+
"title": "awsui_title_1kjc7_rmeoy_202",
|
|
7
|
+
"list": "awsui_list_1kjc7_rmeoy_206",
|
|
8
|
+
"marker--dimmed": "awsui_marker--dimmed_1kjc7_rmeoy_252",
|
|
9
|
+
"marker--highlighted": "awsui_marker--highlighted_1kjc7_rmeoy_255"
|
|
10
10
|
};
|
|
11
11
|
|