@navikt/ds-react 7.13.0 → 7.14.0-alpha.1
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/cjs/date/Date.Dialog.d.ts +18 -0
- package/cjs/date/Date.Dialog.js +67 -0
- package/cjs/date/Date.Dialog.js.map +1 -0
- package/cjs/date/Date.Input.d.ts +50 -0
- package/cjs/date/Date.Input.js +96 -0
- package/cjs/date/Date.Input.js.map +1 -0
- package/cjs/date/Date.locale.d.ts +44 -0
- package/cjs/date/Date.locale.js +57 -0
- package/cjs/date/Date.locale.js.map +1 -0
- package/cjs/date/Date.typeutils.d.ts +14 -0
- package/cjs/date/Date.typeutils.js +15 -0
- package/cjs/date/Date.typeutils.js.map +1 -0
- package/cjs/date/date-utils/calendar-range.d.ts +11 -0
- package/cjs/date/date-utils/calendar-range.js +30 -0
- package/cjs/date/date-utils/calendar-range.js.map +1 -0
- package/cjs/date/date-utils/check-dates.d.ts +8 -0
- package/cjs/date/date-utils/check-dates.js +20 -0
- package/cjs/date/date-utils/check-dates.js.map +1 -0
- package/cjs/date/date-utils/clamp-dates.d.ts +19 -0
- package/cjs/date/date-utils/clamp-dates.js +41 -0
- package/cjs/date/date-utils/clamp-dates.js.map +1 -0
- package/cjs/date/date-utils/dates-disabled.d.ts +1 -0
- package/cjs/date/date-utils/dates-disabled.js +29 -0
- package/cjs/date/date-utils/dates-disabled.js.map +1 -0
- package/cjs/date/date-utils/dropdown-options.d.ts +13 -0
- package/cjs/date/date-utils/dropdown-options.js +45 -0
- package/cjs/date/date-utils/dropdown-options.js.map +1 -0
- package/cjs/date/date-utils/format-date.d.ts +2 -0
- package/cjs/date/date-utils/format-date.js +13 -0
- package/cjs/date/date-utils/format-date.js.map +1 -0
- package/cjs/date/date-utils/index.d.ts +8 -0
- package/cjs/date/date-utils/index.js +27 -0
- package/cjs/date/date-utils/index.js.map +1 -0
- package/cjs/date/date-utils/is-match.d.ts +3 -0
- package/cjs/date/date-utils/is-match.js +61 -0
- package/cjs/date/date-utils/is-match.js.map +1 -0
- package/cjs/date/date-utils/parse-date.d.ts +4 -0
- package/cjs/date/date-utils/parse-date.js +87 -0
- package/cjs/date/date-utils/parse-date.js.map +1 -0
- package/cjs/date/datepicker/DatePicker.d.ts +3 -3
- package/cjs/date/datepicker/DatePicker.js +47 -63
- package/cjs/date/datepicker/DatePicker.js.map +1 -1
- package/cjs/date/datepicker/DatePicker.types.d.ts +108 -0
- package/cjs/date/datepicker/DatePicker.types.js +3 -0
- package/cjs/date/datepicker/DatePicker.types.js.map +1 -0
- package/cjs/date/datepicker/hooks/useDatepicker.d.ts +90 -0
- package/cjs/date/datepicker/hooks/useDatepicker.js +164 -0
- package/cjs/date/datepicker/hooks/useDatepicker.js.map +1 -0
- package/cjs/date/datepicker/hooks/useRangeDatepicker.d.ts +76 -0
- package/cjs/date/datepicker/hooks/useRangeDatepicker.js +322 -0
- package/cjs/date/datepicker/hooks/useRangeDatepicker.js.map +1 -0
- package/cjs/date/datepicker/index.d.ts +4 -3
- package/cjs/date/datepicker/index.js +8 -7
- package/cjs/date/datepicker/index.js.map +1 -1
- package/cjs/date/datepicker/parts/DatePicker.DayButton.d.ts +9 -0
- package/cjs/date/datepicker/parts/DatePicker.DayButton.js +70 -0
- package/cjs/date/datepicker/parts/DatePicker.DayButton.js.map +1 -0
- package/cjs/date/datepicker/parts/DatePicker.Months.d.ts +11 -0
- package/cjs/date/datepicker/parts/DatePicker.Months.js +84 -0
- package/cjs/date/datepicker/parts/DatePicker.Months.js.map +1 -0
- package/cjs/date/datepicker/parts/DatePicker.RDP.d.ts +15 -0
- package/cjs/date/datepicker/parts/DatePicker.RDP.js +103 -0
- package/cjs/date/datepicker/parts/DatePicker.RDP.js.map +1 -0
- package/cjs/date/datepicker/parts/DatePicker.Standalone.d.ts +18 -0
- package/cjs/date/datepicker/parts/DatePicker.Standalone.js +60 -0
- package/cjs/date/datepicker/parts/DatePicker.Standalone.js.map +1 -0
- package/cjs/date/datepicker/parts/DatePicker.WeekNumber.d.ts +9 -0
- package/cjs/date/datepicker/parts/DatePicker.WeekNumber.js +64 -0
- package/cjs/date/datepicker/parts/DatePicker.WeekNumber.js.map +1 -0
- package/cjs/date/datepicker/parts/DatePicker.WeekRow.d.ts +8 -0
- package/cjs/date/datepicker/parts/DatePicker.WeekRow.js +28 -0
- package/cjs/date/datepicker/parts/DatePicker.WeekRow.js.map +1 -0
- package/cjs/date/monthpicker/MonthPicker.context.d.ts +21 -0
- package/cjs/date/monthpicker/MonthPicker.context.js +48 -0
- package/cjs/date/monthpicker/MonthPicker.context.js.map +1 -0
- package/cjs/date/monthpicker/MonthPicker.d.ts +3 -3
- package/cjs/date/monthpicker/MonthPicker.js +34 -43
- package/cjs/date/monthpicker/MonthPicker.js.map +1 -1
- package/cjs/date/monthpicker/MonthPicker.types.d.ts +86 -0
- package/cjs/date/monthpicker/MonthPicker.types.js +3 -0
- package/cjs/date/monthpicker/MonthPicker.types.js.map +1 -0
- package/cjs/date/monthpicker/MonthPicker.util.d.ts +2 -0
- package/cjs/date/monthpicker/MonthPicker.util.js +156 -0
- package/cjs/date/monthpicker/MonthPicker.util.js.map +1 -0
- package/cjs/date/monthpicker/hooks/useMonthPicker.d.ts +85 -0
- package/cjs/date/monthpicker/hooks/useMonthPicker.js +179 -0
- package/cjs/date/monthpicker/hooks/useMonthPicker.js.map +1 -0
- package/cjs/date/monthpicker/index.d.ts +4 -4
- package/cjs/date/monthpicker/index.js +6 -6
- package/cjs/date/monthpicker/index.js.map +1 -1
- package/cjs/date/monthpicker/parts/MonthPicker.Button.d.ts +11 -0
- package/cjs/date/monthpicker/parts/MonthPicker.Button.js +82 -0
- package/cjs/date/monthpicker/parts/MonthPicker.Button.js.map +1 -0
- package/cjs/date/monthpicker/parts/MonthPicker.Caption.d.ts +3 -0
- package/cjs/date/monthpicker/parts/MonthPicker.Caption.js +52 -0
- package/cjs/date/monthpicker/parts/MonthPicker.Caption.js.map +1 -0
- package/cjs/date/monthpicker/parts/MonthPicker.Standalone.d.ts +10 -0
- package/cjs/date/monthpicker/parts/MonthPicker.Standalone.js +51 -0
- package/cjs/date/monthpicker/parts/MonthPicker.Standalone.js.map +1 -0
- package/cjs/date/monthpicker/parts/MonthPicker.Table.d.ts +3 -0
- package/cjs/date/monthpicker/parts/MonthPicker.Table.js +79 -0
- package/cjs/date/monthpicker/parts/MonthPicker.Table.js.map +1 -0
- package/cjs/form/combobox/Combobox.d.ts +1 -1
- package/cjs/form/combobox/Input/InputController.d.ts +1 -1
- package/cjs/modal/Modal.js +2 -2
- package/cjs/modal/Modal.js.map +1 -1
- package/cjs/popover/Popover.js +3 -3
- package/cjs/popover/Popover.js.map +1 -1
- package/cjs/tooltip/Tooltip.js +2 -5
- package/cjs/tooltip/Tooltip.js.map +1 -1
- package/esm/date/Date.Dialog.d.ts +18 -0
- package/esm/date/Date.Dialog.js +38 -0
- package/esm/date/Date.Dialog.js.map +1 -0
- package/esm/date/Date.Input.d.ts +50 -0
- package/esm/date/Date.Input.js +66 -0
- package/esm/date/Date.Input.js.map +1 -0
- package/esm/date/Date.locale.d.ts +44 -0
- package/esm/date/Date.locale.js +47 -0
- package/esm/date/Date.locale.js.map +1 -0
- package/esm/date/Date.typeutils.d.ts +14 -0
- package/esm/date/Date.typeutils.js +10 -0
- package/esm/date/Date.typeutils.js.map +1 -0
- package/esm/date/date-utils/calendar-range.d.ts +11 -0
- package/esm/date/date-utils/calendar-range.js +27 -0
- package/esm/date/date-utils/calendar-range.js.map +1 -0
- package/esm/date/date-utils/check-dates.d.ts +8 -0
- package/esm/date/date-utils/check-dates.js +14 -0
- package/esm/date/date-utils/check-dates.js.map +1 -0
- package/esm/date/date-utils/clamp-dates.d.ts +19 -0
- package/esm/date/date-utils/clamp-dates.js +37 -0
- package/esm/date/date-utils/clamp-dates.js.map +1 -0
- package/esm/date/date-utils/dates-disabled.d.ts +1 -0
- package/esm/date/date-utils/dates-disabled.js +25 -0
- package/esm/date/date-utils/dates-disabled.js.map +1 -0
- package/esm/date/date-utils/dropdown-options.d.ts +13 -0
- package/esm/date/date-utils/dropdown-options.js +41 -0
- package/esm/date/date-utils/dropdown-options.js.map +1 -0
- package/esm/date/date-utils/format-date.d.ts +2 -0
- package/esm/date/date-utils/format-date.js +9 -0
- package/esm/date/date-utils/format-date.js.map +1 -0
- package/esm/date/date-utils/index.d.ts +8 -0
- package/esm/date/date-utils/index.js +9 -0
- package/esm/date/date-utils/index.js.map +1 -0
- package/esm/date/date-utils/is-match.d.ts +3 -0
- package/esm/date/date-utils/is-match.js +57 -0
- package/esm/date/date-utils/is-match.js.map +1 -0
- package/esm/date/date-utils/parse-date.d.ts +4 -0
- package/esm/date/date-utils/parse-date.js +83 -0
- package/esm/date/date-utils/parse-date.js.map +1 -0
- package/esm/date/datepicker/DatePicker.d.ts +3 -3
- package/esm/date/datepicker/DatePicker.js +46 -62
- package/esm/date/datepicker/DatePicker.js.map +1 -1
- package/esm/date/datepicker/DatePicker.types.d.ts +108 -0
- package/esm/date/datepicker/DatePicker.types.js +2 -0
- package/esm/date/datepicker/DatePicker.types.js.map +1 -0
- package/esm/date/datepicker/hooks/useDatepicker.d.ts +90 -0
- package/esm/date/datepicker/hooks/useDatepicker.js +160 -0
- package/esm/date/datepicker/hooks/useDatepicker.js.map +1 -0
- package/esm/date/datepicker/hooks/useRangeDatepicker.d.ts +76 -0
- package/esm/date/datepicker/hooks/useRangeDatepicker.js +318 -0
- package/esm/date/datepicker/hooks/useRangeDatepicker.js.map +1 -0
- package/esm/date/datepicker/index.d.ts +4 -3
- package/esm/date/datepicker/index.js +4 -3
- package/esm/date/datepicker/index.js.map +1 -1
- package/esm/date/datepicker/parts/DatePicker.DayButton.d.ts +9 -0
- package/esm/date/datepicker/parts/DatePicker.DayButton.js +41 -0
- package/esm/date/datepicker/parts/DatePicker.DayButton.js.map +1 -0
- package/esm/date/datepicker/parts/DatePicker.Months.d.ts +11 -0
- package/esm/date/datepicker/parts/DatePicker.Months.js +58 -0
- package/esm/date/datepicker/parts/DatePicker.Months.js.map +1 -0
- package/esm/date/datepicker/parts/DatePicker.RDP.d.ts +15 -0
- package/esm/date/datepicker/parts/DatePicker.RDP.js +74 -0
- package/esm/date/datepicker/parts/DatePicker.RDP.js.map +1 -0
- package/esm/date/datepicker/parts/DatePicker.Standalone.d.ts +18 -0
- package/esm/date/datepicker/parts/DatePicker.Standalone.js +31 -0
- package/esm/date/datepicker/parts/DatePicker.Standalone.js.map +1 -0
- package/esm/date/datepicker/parts/DatePicker.WeekNumber.d.ts +9 -0
- package/esm/date/datepicker/parts/DatePicker.WeekNumber.js +35 -0
- package/esm/date/datepicker/parts/DatePicker.WeekNumber.js.map +1 -0
- package/esm/date/datepicker/parts/DatePicker.WeekRow.d.ts +8 -0
- package/esm/date/datepicker/parts/DatePicker.WeekRow.js +22 -0
- package/esm/date/datepicker/parts/DatePicker.WeekRow.js.map +1 -0
- package/esm/date/monthpicker/MonthPicker.context.d.ts +21 -0
- package/esm/date/monthpicker/MonthPicker.context.js +41 -0
- package/esm/date/monthpicker/MonthPicker.context.js.map +1 -0
- package/esm/date/monthpicker/MonthPicker.d.ts +3 -3
- package/esm/date/monthpicker/MonthPicker.js +31 -40
- package/esm/date/monthpicker/MonthPicker.js.map +1 -1
- package/esm/date/monthpicker/MonthPicker.types.d.ts +86 -0
- package/esm/date/monthpicker/MonthPicker.types.js +2 -0
- package/esm/date/monthpicker/MonthPicker.types.js.map +1 -0
- package/esm/date/monthpicker/MonthPicker.util.d.ts +2 -0
- package/esm/date/monthpicker/MonthPicker.util.js +152 -0
- package/esm/date/monthpicker/MonthPicker.util.js.map +1 -0
- package/esm/date/monthpicker/hooks/useMonthPicker.d.ts +85 -0
- package/esm/date/monthpicker/hooks/useMonthPicker.js +175 -0
- package/esm/date/monthpicker/hooks/useMonthPicker.js.map +1 -0
- package/esm/date/monthpicker/index.d.ts +4 -4
- package/esm/date/monthpicker/index.js +3 -3
- package/esm/date/monthpicker/index.js.map +1 -1
- package/esm/date/monthpicker/parts/MonthPicker.Button.d.ts +11 -0
- package/esm/date/monthpicker/parts/MonthPicker.Button.js +52 -0
- package/esm/date/monthpicker/parts/MonthPicker.Button.js.map +1 -0
- package/esm/date/monthpicker/parts/MonthPicker.Caption.d.ts +3 -0
- package/esm/date/monthpicker/parts/MonthPicker.Caption.js +46 -0
- package/esm/date/monthpicker/parts/MonthPicker.Caption.js.map +1 -0
- package/esm/date/monthpicker/parts/MonthPicker.Standalone.d.ts +10 -0
- package/esm/date/monthpicker/parts/MonthPicker.Standalone.js +22 -0
- package/esm/date/monthpicker/parts/MonthPicker.Standalone.js.map +1 -0
- package/esm/date/monthpicker/parts/MonthPicker.Table.d.ts +3 -0
- package/esm/date/monthpicker/parts/MonthPicker.Table.js +50 -0
- package/esm/date/monthpicker/parts/MonthPicker.Table.js.map +1 -0
- package/esm/form/combobox/Combobox.d.ts +1 -1
- package/esm/form/combobox/Input/InputController.d.ts +1 -1
- package/esm/modal/Modal.js +3 -3
- package/esm/modal/Modal.js.map +1 -1
- package/esm/popover/Popover.js +4 -4
- package/esm/popover/Popover.js.map +1 -1
- package/esm/tooltip/Tooltip.js +2 -5
- package/esm/tooltip/Tooltip.js.map +1 -1
- package/package.json +6 -7
- package/src/date/{parts/DateWrapper.tsx → Date.Dialog.tsx} +12 -9
- package/src/date/{parts/DateInput.tsx → Date.Input.tsx} +30 -5
- package/src/date/{utils/locale.ts → Date.locale.ts} +11 -2
- package/src/date/Date.typeutils.ts +32 -0
- package/src/date/date-utils/calendar-range.test.ts +54 -0
- package/src/date/date-utils/calendar-range.ts +46 -0
- package/src/date/date-utils/check-dates.test.ts +49 -0
- package/src/date/date-utils/check-dates.ts +28 -0
- package/src/date/date-utils/clamp-dates.test.ts +156 -0
- package/src/date/date-utils/clamp-dates.ts +63 -0
- package/src/date/{utils/__tests__ → date-utils}/dates-disabled.test.ts +1 -1
- package/src/date/{utils → date-utils}/dates-disabled.ts +1 -2
- package/src/date/date-utils/dropdown-options.test.ts +143 -0
- package/src/date/date-utils/dropdown-options.ts +79 -0
- package/src/date/{utils/__tests__ → date-utils}/format-dates.test.ts +2 -2
- package/src/date/date-utils/index.ts +16 -0
- package/src/date/{utils/__tests__ → date-utils}/is-match.test.ts +1 -1
- package/src/date/{utils → date-utils}/is-match.ts +2 -11
- package/src/date/{utils/__tests__ → date-utils}/parse-dates.test.ts +2 -1
- package/src/date/datepicker/DatePicker.tsx +67 -92
- package/src/date/datepicker/{types.ts → DatePicker.types.ts} +10 -4
- package/src/date/{hooks → datepicker/hooks}/useDatepicker.tsx +12 -13
- package/src/date/{hooks → datepicker/hooks}/useRangeDatepicker.test.tsx +1 -1
- package/src/date/{hooks → datepicker/hooks}/useRangeDatepicker.tsx +19 -19
- package/src/date/datepicker/index.ts +4 -5
- package/src/date/datepicker/parts/DatePicker.DayButton.tsx +56 -0
- package/src/date/datepicker/parts/DatePicker.Months.tsx +149 -0
- package/src/date/datepicker/parts/DatePicker.RDP.tsx +170 -0
- package/src/date/datepicker/parts/DatePicker.Standalone.tsx +93 -0
- package/src/date/datepicker/parts/DatePicker.WeekNumber.tsx +86 -0
- package/src/date/datepicker/parts/{WeekRow.tsx → DatePicker.WeekRow.tsx} +20 -21
- package/src/date/monthpicker/MonthPicker.context.tsx +103 -0
- package/src/date/monthpicker/MonthPicker.tsx +63 -68
- package/src/date/monthpicker/{types.ts → MonthPicker.types.ts} +1 -1
- package/src/date/{utils/navigation.ts → monthpicker/MonthPicker.util.ts} +2 -1
- package/src/date/{hooks → monthpicker/hooks}/useMonthPicker.tsx +14 -13
- package/src/date/monthpicker/index.ts +4 -4
- package/src/date/monthpicker/{MonthButton.tsx → parts/MonthPicker.Button.tsx} +21 -10
- package/src/date/monthpicker/{MonthCaption.tsx → parts/MonthPicker.Caption.tsx} +20 -21
- package/src/date/monthpicker/parts/MonthPicker.Standalone.tsx +86 -0
- package/src/date/monthpicker/{MonthSelector.tsx → parts/MonthPicker.Table.tsx} +7 -7
- package/src/modal/Modal.tsx +3 -3
- package/src/popover/Popover.tsx +4 -4
- package/src/tooltip/Tooltip.tsx +2 -6
- package/src/date/context/index.ts +0 -9
- package/src/date/context/useDateInputContext.tsx +0 -34
- package/src/date/context/useDateTranslationContext.ts +0 -9
- package/src/date/context/useSharedMonthContext.tsx +0 -68
- package/src/date/datepicker/DatePickerStandalone.tsx +0 -136
- package/src/date/datepicker/datepicker.test.tsx +0 -28
- package/src/date/datepicker/parts/Caption.tsx +0 -54
- package/src/date/datepicker/parts/DayButton.tsx +0 -32
- package/src/date/datepicker/parts/DropdownCaption.tsx +0 -110
- package/src/date/datepicker/parts/HeadRow.tsx +0 -56
- package/src/date/datepicker/parts/Row.tsx +0 -48
- package/src/date/datepicker/parts/TableHead.tsx +0 -17
- package/src/date/datepicker/parts/WeekNumber.tsx +0 -75
- package/src/date/hooks/index.ts +0 -6
- package/src/date/monthpicker/MonthPickerStandalone.tsx +0 -102
- package/src/date/utils/__tests__/check-dates.test.ts +0 -22
- package/src/date/utils/__tests__/get-dates.test.ts +0 -121
- package/src/date/utils/__tests__/get-initial-year.test.ts +0 -83
- package/src/date/utils/__tests__/get-month-weeks.test.ts +0 -116
- package/src/date/utils/check-dates.ts +0 -13
- package/src/date/utils/get-dates.ts +0 -60
- package/src/date/utils/get-initial-year.ts +0 -25
- package/src/date/utils/get-month-weeks.ts +0 -93
- package/src/date/utils/index.ts +0 -18
- /package/src/date/{utils → date-utils}/format-date.ts +0 -0
- /package/src/date/{utils → date-utils}/parse-date.ts +0 -0
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { format, isAfter, isBefore, setYear, startOfMonth, startOfYear, } from "date-fns";
|
|
2
|
+
import React from "react";
|
|
3
|
+
import { ArrowLeftIcon, ArrowRightIcon } from "@navikt/aksel-icons";
|
|
4
|
+
import { Button } from "../../../button/index.js";
|
|
5
|
+
import { Select } from "../../../form/select/index.js";
|
|
6
|
+
import { useDateTranslationContext } from "../../Date.locale.js";
|
|
7
|
+
import { useMonthPickerContext } from "../MonthPicker.context.js";
|
|
8
|
+
const MonthPickerCaption = () => {
|
|
9
|
+
const { fromDate, toDate, locale, year, onYearChange, caption } = useMonthPickerContext();
|
|
10
|
+
const translate = useDateTranslationContext().translate;
|
|
11
|
+
const years = [];
|
|
12
|
+
if (caption === "dropdown" && fromDate && toDate) {
|
|
13
|
+
const fromYear = fromDate.getFullYear();
|
|
14
|
+
const toDateYear = toDate.getFullYear();
|
|
15
|
+
for (let currYear = fromYear; currYear <= toDateYear; currYear++) {
|
|
16
|
+
years.push(setYear(startOfYear(new Date()), currYear));
|
|
17
|
+
}
|
|
18
|
+
if (!years.map((x) => x.getFullYear()).includes(year.getFullYear())) {
|
|
19
|
+
years.push(setYear(startOfYear(new Date()), year.getFullYear()));
|
|
20
|
+
}
|
|
21
|
+
years.sort((a, b) => b.getFullYear() - a.getFullYear());
|
|
22
|
+
}
|
|
23
|
+
const handleYearChange = (event) => {
|
|
24
|
+
onYearChange(setYear(startOfMonth(new Date()), Number(event.target.value)));
|
|
25
|
+
};
|
|
26
|
+
const handleButtonClick = (val) => {
|
|
27
|
+
const newYear = Number(year.getFullYear() + val);
|
|
28
|
+
onYearChange(setYear(year, newYear));
|
|
29
|
+
};
|
|
30
|
+
const disablePreviousYear = () => {
|
|
31
|
+
return fromDate
|
|
32
|
+
? isBefore((year === null || year === void 0 ? void 0 : year.getFullYear()) - 1, fromDate === null || fromDate === void 0 ? void 0 : fromDate.getFullYear())
|
|
33
|
+
: false;
|
|
34
|
+
};
|
|
35
|
+
const disableNextYear = () => {
|
|
36
|
+
return toDate
|
|
37
|
+
? isAfter((year === null || year === void 0 ? void 0 : year.getFullYear()) + 1, toDate === null || toDate === void 0 ? void 0 : toDate.getFullYear())
|
|
38
|
+
: false;
|
|
39
|
+
};
|
|
40
|
+
return (React.createElement("div", { className: "navds-date__caption" },
|
|
41
|
+
React.createElement(Button, { className: "navds-date__caption-button", disabled: disablePreviousYear(), onClick: () => handleButtonClick(-1), icon: React.createElement(ArrowLeftIcon, { title: translate("goToPreviousYear") }), variant: "tertiary-neutral", type: "button" }),
|
|
42
|
+
caption === "dropdown" ? (React.createElement(Select, { label: translate("year"), hideLabel: true, value: year.getFullYear(), onChange: handleYearChange, className: "navds-date__caption__year" }, years.map((yearOpt) => (React.createElement("option", { key: yearOpt.getFullYear(), value: yearOpt.getFullYear() }, format(yearOpt, "yyyy", { locale })))))) : (React.createElement("span", { className: "navds-date__year-label", "aria-live": "polite" }, year.getFullYear())),
|
|
43
|
+
React.createElement(Button, { className: "navds-date__caption-button", disabled: disableNextYear(), onClick: () => handleButtonClick(1), icon: React.createElement(ArrowRightIcon, { title: translate("goToNextYear") }), variant: "tertiary-neutral", type: "button" })));
|
|
44
|
+
};
|
|
45
|
+
export { MonthPickerCaption };
|
|
46
|
+
//# sourceMappingURL=MonthPicker.Caption.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MonthPicker.Caption.js","sourceRoot":"","sources":["../../../../src/date/monthpicker/parts/MonthPicker.Caption.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { MonthPickerProps } from "../MonthPicker.types.js";
|
|
3
|
+
export interface MonthPickerStandaloneProps extends Omit<MonthPickerProps, "open" | "onClose" | "onOpenToggle" | "wrapperClassName" | "strategy"> {
|
|
4
|
+
/**
|
|
5
|
+
* Monthpicker classname
|
|
6
|
+
*/
|
|
7
|
+
className?: string;
|
|
8
|
+
}
|
|
9
|
+
export type MonthPickerStandaloneType = React.ForwardRefExoticComponent<MonthPickerStandaloneProps & React.RefAttributes<HTMLDivElement>>;
|
|
10
|
+
export declare const MonthPickerStandalone: React.ForwardRefExoticComponent<MonthPickerStandaloneProps & React.RefAttributes<HTMLDivElement>>;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import cl from "clsx";
|
|
2
|
+
import React, { forwardRef } from "react";
|
|
3
|
+
import { useDateLocale, useI18n } from "../../../util/i18n/i18n.hooks.js";
|
|
4
|
+
import { DateTranslationContextProvider, getLocaleFromString, getTranslations, } from "../../Date.locale.js";
|
|
5
|
+
import { MonthPickerProvider } from "../MonthPicker.context.js";
|
|
6
|
+
import { MonthPickerCaption } from "./MonthPicker.Caption.js";
|
|
7
|
+
import { MonthPickerTable } from "./MonthPicker.Table.js";
|
|
8
|
+
export const MonthPickerStandalone = forwardRef(({ dropdownCaption = false, fromDate, toDate, disabled = [], selected, className, locale, translations, onMonthSelect, defaultSelected, year, onYearChange, }, ref) => {
|
|
9
|
+
const translate = useI18n("DatePicker", translations, getTranslations(locale));
|
|
10
|
+
const langProviderLocale = useDateLocale();
|
|
11
|
+
if (dropdownCaption && (!fromDate || !toDate)) {
|
|
12
|
+
console.warn("Using dropdownCaption required fromDate and toDate");
|
|
13
|
+
return null;
|
|
14
|
+
}
|
|
15
|
+
return (React.createElement("div", { ref: ref, className: cl("navds-date__wrapper", className) },
|
|
16
|
+
React.createElement(DateTranslationContextProvider, { translate: translate },
|
|
17
|
+
React.createElement(MonthPickerProvider, { dropdownCaption: dropdownCaption, defaultSelected: defaultSelected, selected: selected, disabled: disabled, fromDate: fromDate, toDate: toDate, year: year, onYearChange: onYearChange, onMonthSelect: onMonthSelect, locale: locale ? getLocaleFromString(locale) : langProviderLocale },
|
|
18
|
+
React.createElement("div", { className: "navds-date rdp-month" },
|
|
19
|
+
React.createElement(MonthPickerCaption, null),
|
|
20
|
+
React.createElement(MonthPickerTable, null))))));
|
|
21
|
+
});
|
|
22
|
+
//# sourceMappingURL=MonthPicker.Standalone.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MonthPicker.Standalone.js","sourceRoot":"","sources":["../../../../src/date/monthpicker/parts/MonthPicker.Standalone.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,MAAM,CAAC;AACtB,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EACL,8BAA8B,EAC9B,mBAAmB,EACnB,eAAe,GAChB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAE7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAiBvD,MAAM,CAAC,MAAM,qBAAqB,GAAG,UAAU,CAI7C,CACE,EACE,eAAe,GAAG,KAAK,EACvB,QAAQ,EACR,MAAM,EACN,QAAQ,GAAG,EAAE,EACb,QAAQ,EACR,SAAS,EACT,MAAM,EACN,YAAY,EACZ,aAAa,EACb,eAAe,EACf,IAAI,EACJ,YAAY,GACb,EACD,GAAG,EACH,EAAE;IACF,MAAM,SAAS,GAAG,OAAO,CACvB,YAAY,EACZ,YAAY,EACZ,eAAe,CAAC,MAAM,CAAC,CACxB,CAAC;IACF,MAAM,kBAAkB,GAAG,aAAa,EAAE,CAAC;IAE3C,IAAI,eAAe,IAAI,CAAC,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QAC9C,OAAO,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC;QACnE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,CACL,6BAAK,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,qBAAqB,EAAE,SAAS,CAAC;QAC5D,oBAAC,8BAA8B,IAAC,SAAS,EAAE,SAAS;YAClD,oBAAC,mBAAmB,IAClB,eAAe,EAAE,eAAe,EAChC,eAAe,EAAE,eAAe,EAChC,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,IAAI,EACV,YAAY,EAAE,YAAY,EAC1B,aAAa,EAAE,aAAa,EAC5B,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,kBAAkB;gBAEjE,6BAAK,SAAS,EAAC,sBAAsB;oBACnC,oBAAC,kBAAkB,OAAG;oBACtB,oBAAC,gBAAgB,OAAG,CAChB,CACc,CACS,CAC7B,CACP,CAAC;AACJ,CAAC,CACF,CAAC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { isSameMonth, setMonth, setYear, startOfMonth } from "date-fns";
|
|
2
|
+
import React, { useState } from "react";
|
|
3
|
+
import { BodyShort } from "../../../typography/index.js";
|
|
4
|
+
import { isMatch } from "../../date-utils/index.js";
|
|
5
|
+
import { useMonthPickerContext } from "../MonthPicker.context.js";
|
|
6
|
+
import MonthButton from "./MonthPicker.Button.js";
|
|
7
|
+
const getAllMonths = () => {
|
|
8
|
+
const months = [];
|
|
9
|
+
const date = startOfMonth(new Date());
|
|
10
|
+
for (let month = 0; month <= 11; month++) {
|
|
11
|
+
months.push(setMonth(date, month));
|
|
12
|
+
}
|
|
13
|
+
return months;
|
|
14
|
+
};
|
|
15
|
+
const MonthPickerTable = () => {
|
|
16
|
+
const [focus, setFocus] = useState();
|
|
17
|
+
const { selected, year, disabled } = useMonthPickerContext();
|
|
18
|
+
const months = getAllMonths();
|
|
19
|
+
const hasSelected = selected &&
|
|
20
|
+
months.some((m) => isSameMonth(setYear(m, year.getFullYear()), selected));
|
|
21
|
+
const getRootFallback = () => {
|
|
22
|
+
const today = startOfMonth(new Date());
|
|
23
|
+
if ((year === null || year === void 0 ? void 0 : year.getFullYear()) === today.getFullYear() &&
|
|
24
|
+
!isMatch(today, disabled)) {
|
|
25
|
+
return today;
|
|
26
|
+
}
|
|
27
|
+
for (let i = 0; i < months.length; i++) {
|
|
28
|
+
const m = months[i];
|
|
29
|
+
if (!isMatch(setYear(m, year.getFullYear()), disabled)) {
|
|
30
|
+
return setYear(m, year.getFullYear());
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
const [tabRoot, setTabRoot] = useState(hasSelected ? selected : getRootFallback());
|
|
35
|
+
if ((tabRoot === null || tabRoot === void 0 ? void 0 : tabRoot.getFullYear()) !== year.getFullYear()) {
|
|
36
|
+
setTabRoot(hasSelected ? selected : getRootFallback());
|
|
37
|
+
}
|
|
38
|
+
const tableMonths = [
|
|
39
|
+
months.slice(0, 4),
|
|
40
|
+
months.slice(4, 8),
|
|
41
|
+
months.slice(8, 12),
|
|
42
|
+
];
|
|
43
|
+
return (React.createElement(BodyShort, { as: "table", className: "rdp-table" },
|
|
44
|
+
React.createElement("tbody", { className: "rdp-tbody" }, tableMonths.map((tableRow, i) => (React.createElement("tr", { className: "rdp-row", key: i }, tableRow.map((month) => {
|
|
45
|
+
return (React.createElement("td", { key: month.toDateString(), className: "rdp-cell" },
|
|
46
|
+
React.createElement(MonthButton, { month: setYear(month, year.getFullYear()), months: months, focus: focus, setFocus: setFocus, tabRoot: tabRoot, setTabRoot: setTabRoot })));
|
|
47
|
+
})))))));
|
|
48
|
+
};
|
|
49
|
+
export { MonthPickerTable };
|
|
50
|
+
//# sourceMappingURL=MonthPicker.Table.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MonthPicker.Table.js","sourceRoot":"","sources":["../../../../src/date/monthpicker/parts/MonthPicker.Table.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { ComboboxProps } from "./types.js";
|
|
3
|
-
export declare const Combobox: React.ForwardRefExoticComponent<Omit<ComboboxProps, "
|
|
3
|
+
export declare const Combobox: React.ForwardRefExoticComponent<Omit<ComboboxProps, "size" | "disabled" | "value" | "onChange" | "onClear" | "options"> & React.RefAttributes<HTMLInputElement>>;
|
|
4
4
|
export default Combobox;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { ComboboxProps } from "../types.js";
|
|
3
|
-
export declare const InputController: React.ForwardRefExoticComponent<Omit<ComboboxProps, "
|
|
3
|
+
export declare const InputController: React.ForwardRefExoticComponent<Omit<ComboboxProps, "size" | "disabled" | "description" | "value" | "onChange" | "label" | "hideLabel" | "onClear" | "options"> & React.RefAttributes<HTMLInputElement>>;
|
package/esm/modal/Modal.js
CHANGED
|
@@ -11,9 +11,9 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
11
11
|
};
|
|
12
12
|
import { useFloatingPortalNode } from "@floating-ui/react";
|
|
13
13
|
import cl from "clsx";
|
|
14
|
-
import React, { forwardRef,
|
|
14
|
+
import React, { forwardRef, useEffect, useRef } from "react";
|
|
15
15
|
import { createPortal } from "react-dom";
|
|
16
|
-
import {
|
|
16
|
+
import { useDateInputContext } from "../date/Date.Input.js";
|
|
17
17
|
import { useProvider } from "../provider/Provider.js";
|
|
18
18
|
import { Detail, Heading } from "../typography/index.js";
|
|
19
19
|
import { composeEventHandlers } from "../util/composeEventHandlers.js";
|
|
@@ -80,7 +80,7 @@ export const Modal = forwardRef((_a, ref) => {
|
|
|
80
80
|
const ariaLabelId = useId();
|
|
81
81
|
const rootElement = (_b = useProvider()) === null || _b === void 0 ? void 0 : _b.rootElement;
|
|
82
82
|
const portalNode = useFloatingPortalNode({ root: rootElement });
|
|
83
|
-
const dateContext =
|
|
83
|
+
const dateContext = useDateInputContext(false);
|
|
84
84
|
const isNested = useModalContext(false) !== undefined;
|
|
85
85
|
if (isNested && !dateContext) {
|
|
86
86
|
console.error("Modals should not be nested");
|
package/esm/modal/Modal.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Modal.js","sourceRoot":"","sources":["../../src/modal/Modal.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,MAAM,MAAM,CAAC;AACtB,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"Modal.js","sourceRoot":"","sources":["../../src/modal/Modal.tsx"],"names":[],"mappings":"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"}
|
package/esm/popover/Popover.js
CHANGED
|
@@ -11,8 +11,8 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
11
11
|
};
|
|
12
12
|
import { autoUpdate, arrow as flArrow, offset as flOffset, flip, shift, useFloating, } from "@floating-ui/react";
|
|
13
13
|
import cl from "clsx";
|
|
14
|
-
import React, { forwardRef,
|
|
15
|
-
import {
|
|
14
|
+
import React, { forwardRef, useRef } from "react";
|
|
15
|
+
import { useDateInputContext } from "../date/Date.Input.js";
|
|
16
16
|
import { useModalContext } from "../modal/Modal.context.js";
|
|
17
17
|
import { DismissableLayer } from "../overlays/dismissablelayer/DismissableLayer.js";
|
|
18
18
|
import { useThemeInternal } from "../theme/Theme.js";
|
|
@@ -43,9 +43,9 @@ export const Popover = forwardRef((_a, ref) => {
|
|
|
43
43
|
var { className, children, anchorEl, arrow = true, open, onClose, placement = "top", offset, strategy: userStrategy, flip: _flip = true } = _a, rest = __rest(_a, ["className", "children", "anchorEl", "arrow", "open", "onClose", "placement", "offset", "strategy", "flip"]);
|
|
44
44
|
const arrowRef = useRef(null);
|
|
45
45
|
const isInModal = useModalContext(false) !== undefined;
|
|
46
|
-
const
|
|
46
|
+
const datepickerContext = useDateInputContext(false);
|
|
47
47
|
const chosenStrategy = userStrategy !== null && userStrategy !== void 0 ? userStrategy : (isInModal ? "fixed" : "absolute");
|
|
48
|
-
const chosenFlip =
|
|
48
|
+
const chosenFlip = datepickerContext ? false : _flip;
|
|
49
49
|
const themeContext = useThemeInternal(false);
|
|
50
50
|
const { update, refs, placement: flPlacement, middlewareData: { arrow: { x: arrowX, y: arrowY } = {} }, floatingStyles, } = useFloating({
|
|
51
51
|
strategy: chosenStrategy,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Popover.js","sourceRoot":"","sources":["../../src/popover/Popover.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,EACL,UAAU,EACV,KAAK,IAAI,OAAO,EAChB,MAAM,IAAI,QAAQ,EAClB,IAAI,EACJ,KAAK,EACL,WAAW,GACZ,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,MAAM,MAAM,CAAC;AACtB,OAAO,KAAK,EAAE,EAAkB,UAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"Popover.js","sourceRoot":"","sources":["../../src/popover/Popover.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,EACL,UAAU,EACV,KAAK,IAAI,OAAO,EAChB,MAAM,IAAI,QAAQ,EAClB,IAAI,EACJ,KAAK,EACL,WAAW,GACZ,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,MAAM,MAAM,CAAC;AACtB,OAAO,KAAK,EAAE,EAAkB,UAAU,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+CAA+C,CAAC;AACjF,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,cAAsC,MAAM,kBAAkB,CAAC;AAoEtE;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,UAAU,CAC/B,CACE,EAYC,EACD,GAAG,EACH,EAAE;QAdF,EACE,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,KAAK,GAAG,IAAI,EACZ,IAAI,EACJ,OAAO,EACP,SAAS,GAAG,KAAK,EACjB,MAAM,EACN,QAAQ,EAAE,YAAY,EACtB,IAAI,EAAE,KAAK,GAAG,IAAI,OAEnB,EADI,IAAI,cAXT,4GAYC,CADQ;IAIT,MAAM,QAAQ,GAAG,MAAM,CAAwB,IAAI,CAAC,CAAC;IACrD,MAAM,SAAS,GAAG,eAAe,CAAC,KAAK,CAAC,KAAK,SAAS,CAAC;IACvD,MAAM,iBAAiB,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;IACrD,MAAM,cAAc,GAAG,YAAY,aAAZ,YAAY,cAAZ,YAAY,GAAI,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;IAC1E,MAAM,UAAU,GAAG,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;IAErD,MAAM,YAAY,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAE7C,MAAM,EACJ,MAAM,EACN,IAAI,EACJ,SAAS,EAAE,WAAW,EACtB,cAAc,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EACxD,cAAc,GACf,GAAG,WAAW,CAAC;QACd,QAAQ,EAAE,cAAc;QACxB,SAAS;QACT,IAAI;QACJ,UAAU,EAAE;YACV,QAAQ,CAAC,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACvD,UAAU;gBACR,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,kBAAkB,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC;YAC7D,KAAK,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;YACtB,OAAO,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;SAC3C;KACF,CAAC,CAAC;IAEH,qBAAqB,CAAC,GAAG,EAAE;QACzB,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IAC9B,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEf,MAAM,WAAW,GAAG,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;IAExD,qBAAqB,CAAC,GAAG,EAAE;QACzB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,IAAI,CAAC,IAAI;YAAE,OAAO;QACvE,MAAM,OAAO,GAAG,UAAU,CACxB,IAAI,CAAC,SAAS,CAAC,OAAO,EACtB,IAAI,CAAC,QAAQ,CAAC,OAAO,EACrB,MAAM,CACP,CAAC;QACF,OAAO,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;IACzB,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;IAE5D,MAAM,UAAU,GAAG;QACjB,GAAG,EAAE,QAAQ;QACb,KAAK,EAAE,MAAM;QACb,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,OAAO;KACd,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAE7B,OAAO,CACL,oBAAC,gBAAgB,IACf,OAAO,QACP,QAAQ,EAAE;YACR,MAAM,EAAE,QAAQ;YAChB,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO;SACnC,EACD,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,KAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,EAAI,CAAA,EACpC,OAAO,EAAE,IAAI;QAEb,2CACE,GAAG,EAAE,WAAW,IACZ,IAAI,IACR,SAAS,EAAE,EAAE,CAAC,eAAe,EAAE,SAAS,EAAE;gBACxC,uBAAuB,EAAE,CAAC,IAAI,IAAI,CAAC,QAAQ;aAC5C,CAAC,EACF,KAAK,kCAAO,IAAI,CAAC,KAAK,GAAK,cAAc,qBACzB,WAAW,iBACd,CAAC,IAAI,IAAI,CAAC,QAAQ;YAE9B,QAAQ;YAER,KAAK,IAAI,CAAC,YAAY,IAAI,CACzB,6BACE,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE;oBACZ,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC;gBAC1B,CAAC,EACD,KAAK,gDACA,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GACxC,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GACvC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAEpD,SAAS,EAAC,sBAAsB,GAChC,CACH,CACG,CACW,CACpB,CAAC;AACJ,CAAC,CACkB,CAAC;AAEtB,OAAO,CAAC,OAAO,GAAG,cAAc,CAAC;AAEjC,eAAe,OAAO,CAAC"}
|
package/esm/tooltip/Tooltip.js
CHANGED
|
@@ -15,7 +15,6 @@ import React, { forwardRef, useRef } from "react";
|
|
|
15
15
|
import { useModalContext } from "../modal/Modal.context.js";
|
|
16
16
|
import { Portal } from "../portal/index.js";
|
|
17
17
|
import { Slot } from "../slot/Slot.js";
|
|
18
|
-
import { useThemeInternal } from "../theme/Theme.js";
|
|
19
18
|
import { Detail } from "../typography/index.js";
|
|
20
19
|
import { useId } from "../util/hooks/index.js";
|
|
21
20
|
import { useControllableState } from "../util/hooks/useControllableState.js";
|
|
@@ -35,8 +34,6 @@ import { useMergeRefs } from "../util/hooks/useMergeRefs.js";
|
|
|
35
34
|
*/
|
|
36
35
|
export const Tooltip = forwardRef((_a, ref) => {
|
|
37
36
|
var { children, className, arrow: _arrow = true, placement: _placement = "top", open, defaultOpen = false, onOpenChange, offset: _offset, content, delay = 150, id, keys, maxChar = 80, describesChild = false } = _a, rest = __rest(_a, ["children", "className", "arrow", "placement", "open", "defaultOpen", "onOpenChange", "offset", "content", "delay", "id", "keys", "maxChar", "describesChild"]);
|
|
38
|
-
const themeContext = useThemeInternal(false);
|
|
39
|
-
const showArrow = _arrow && !themeContext;
|
|
40
37
|
const [_open, _setOpen] = useControllableState({
|
|
41
38
|
defaultValue: defaultOpen,
|
|
42
39
|
value: open,
|
|
@@ -50,7 +47,7 @@ export const Tooltip = forwardRef((_a, ref) => {
|
|
|
50
47
|
open: _open,
|
|
51
48
|
onOpenChange: (newState) => _setOpen(newState),
|
|
52
49
|
middleware: [
|
|
53
|
-
offset(_offset !== null && _offset !== void 0 ? _offset : (
|
|
50
|
+
offset(_offset !== null && _offset !== void 0 ? _offset : (_arrow ? 8 : 4)),
|
|
54
51
|
shift(),
|
|
55
52
|
flip({ padding: 5, fallbackPlacements: ["bottom", "top"] }),
|
|
56
53
|
flArrow({ element: arrowRef, padding: 5 }),
|
|
@@ -95,7 +92,7 @@ export const Tooltip = forwardRef((_a, ref) => {
|
|
|
95
92
|
}, role: "tooltip", id: ariaId, className: cl("navds-tooltip", "navds-detail navds-detail--small", className) })), { "data-side": placement, "data-state": "open" }),
|
|
96
93
|
content,
|
|
97
94
|
keys && (React.createElement("span", { className: "navds-tooltip__keys", "aria-hidden": true }, keys.map((key) => (React.createElement(Detail, { as: "kbd", key: key, className: "navds-tooltip__key" }, key))))),
|
|
98
|
-
|
|
95
|
+
_arrow && (React.createElement("div", { ref: (node) => {
|
|
99
96
|
arrowRef.current = node;
|
|
100
97
|
}, className: "navds-tooltip__arrow", style: {
|
|
101
98
|
left: arrowX != null ? `${arrowX}px` : "",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tooltip.js","sourceRoot":"","sources":["../../src/tooltip/Tooltip.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,EACL,UAAU,EACV,KAAK,IAAI,OAAO,EAChB,IAAI,EACJ,MAAM,EACN,WAAW,EACX,KAAK,EACL,UAAU,EACV,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,eAAe,GAChB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,MAAM,MAAM,CAAC;AACtB,OAAO,KAAK,EAAE,EAAkB,UAAU,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACpC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"Tooltip.js","sourceRoot":"","sources":["../../src/tooltip/Tooltip.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@navikt/ds-react",
|
|
3
|
-
"version": "7.
|
|
3
|
+
"version": "7.14.0-alpha.1",
|
|
4
4
|
"description": "React components from the Norwegian Labour and Welfare Administration.",
|
|
5
5
|
"author": "Aksel, a team part of the Norwegian Labour and Welfare Administration.",
|
|
6
6
|
"license": "MIT",
|
|
@@ -17,8 +17,7 @@
|
|
|
17
17
|
"sideEffects": false,
|
|
18
18
|
"typings": "./esm/index.d.ts",
|
|
19
19
|
"publishConfig": {
|
|
20
|
-
"access": "public"
|
|
21
|
-
"provenance": true
|
|
20
|
+
"access": "public"
|
|
22
21
|
},
|
|
23
22
|
"files": [
|
|
24
23
|
"/cjs",
|
|
@@ -625,11 +624,11 @@
|
|
|
625
624
|
"dependencies": {
|
|
626
625
|
"@floating-ui/react": "0.25.4",
|
|
627
626
|
"@floating-ui/react-dom": "^2.0.9",
|
|
628
|
-
"@navikt/aksel-icons": "^7.
|
|
629
|
-
"@navikt/ds-tokens": "^7.
|
|
627
|
+
"@navikt/aksel-icons": "^7.14.0",
|
|
628
|
+
"@navikt/ds-tokens": "^7.14.0",
|
|
630
629
|
"clsx": "^2.1.0",
|
|
631
|
-
"date-fns": "^
|
|
632
|
-
"react-day-picker": "
|
|
630
|
+
"date-fns": "^4.0.0",
|
|
631
|
+
"react-day-picker": "9.5.0"
|
|
633
632
|
},
|
|
634
633
|
"devDependencies": {
|
|
635
634
|
"@testing-library/dom": "10.4.0",
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import cl from "clsx";
|
|
2
2
|
import React, { useRef } from "react";
|
|
3
|
-
import { Button } from "
|
|
4
|
-
import { Modal } from "
|
|
5
|
-
import { useModalContext } from "
|
|
6
|
-
import { Popover } from "
|
|
7
|
-
import { useMedia } from "
|
|
8
|
-
import { useI18n } from "
|
|
9
|
-
import { TFunction } from "
|
|
10
|
-
import { getGlobalTranslations } from "
|
|
3
|
+
import { Button } from "../button";
|
|
4
|
+
import { Modal } from "../modal";
|
|
5
|
+
import { useModalContext } from "../modal/Modal.context";
|
|
6
|
+
import { Popover } from "../popover";
|
|
7
|
+
import { useMedia } from "../util/hooks";
|
|
8
|
+
import { useI18n } from "../util/i18n/i18n.hooks";
|
|
9
|
+
import { TFunction } from "../util/i18n/i18n.types";
|
|
10
|
+
import { getGlobalTranslations } from "./Date.locale";
|
|
11
11
|
|
|
12
12
|
const variantToLabel = {
|
|
13
13
|
single: "chooseDate",
|
|
@@ -31,7 +31,7 @@ type DateWrapperProps = {
|
|
|
31
31
|
};
|
|
32
32
|
};
|
|
33
33
|
|
|
34
|
-
|
|
34
|
+
const DateDialog = ({
|
|
35
35
|
open,
|
|
36
36
|
children,
|
|
37
37
|
onClose,
|
|
@@ -66,6 +66,7 @@ export const DateWrapper = ({
|
|
|
66
66
|
</Popover>
|
|
67
67
|
);
|
|
68
68
|
}
|
|
69
|
+
|
|
69
70
|
return (
|
|
70
71
|
<Modal
|
|
71
72
|
ref={modalRef}
|
|
@@ -80,6 +81,7 @@ export const DateWrapper = ({
|
|
|
80
81
|
"navds-date": variant === "month",
|
|
81
82
|
})}
|
|
82
83
|
closeOnBackdropClick
|
|
84
|
+
placement="top"
|
|
83
85
|
>
|
|
84
86
|
<div className="navds-date__modal-body">
|
|
85
87
|
{children}
|
|
@@ -95,3 +97,4 @@ export const DateWrapper = ({
|
|
|
95
97
|
</Modal>
|
|
96
98
|
);
|
|
97
99
|
};
|
|
100
|
+
export { DateDialog };
|
|
@@ -1,11 +1,36 @@
|
|
|
1
1
|
import cl from "clsx";
|
|
2
2
|
import React, { InputHTMLAttributes, forwardRef, useRef } from "react";
|
|
3
3
|
import { CalendarIcon } from "@navikt/aksel-icons";
|
|
4
|
-
import { ReadOnlyIcon } from "
|
|
5
|
-
import { FormFieldProps, useFormField } from "
|
|
6
|
-
import { BodyShort, ErrorMessage, Label } from "
|
|
7
|
-
import { omit } from "
|
|
8
|
-
import {
|
|
4
|
+
import { ReadOnlyIcon } from "../form/ReadOnlyIcon";
|
|
5
|
+
import { FormFieldProps, useFormField } from "../form/useFormField";
|
|
6
|
+
import { BodyShort, ErrorMessage, Label } from "../typography";
|
|
7
|
+
import { omit } from "../util";
|
|
8
|
+
import { createContext } from "../util/create-context";
|
|
9
|
+
import { useDateTranslationContext } from "./Date.locale";
|
|
10
|
+
|
|
11
|
+
interface DateInputContextProps {
|
|
12
|
+
/**
|
|
13
|
+
* Open state for popover
|
|
14
|
+
*/
|
|
15
|
+
open: boolean;
|
|
16
|
+
/**
|
|
17
|
+
* Callback for onOpen toggle
|
|
18
|
+
*/
|
|
19
|
+
onOpen: () => void;
|
|
20
|
+
/**
|
|
21
|
+
* Aria-connected ID
|
|
22
|
+
*/
|
|
23
|
+
ariaId?: string;
|
|
24
|
+
/**
|
|
25
|
+
* Flag for enabled-check
|
|
26
|
+
*/
|
|
27
|
+
defined: boolean;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export const [DateInputContextProvider, useDateInputContext] =
|
|
31
|
+
createContext<DateInputContextProps>({
|
|
32
|
+
errorMessage: "useDateInputContext must be used with DateInputContext",
|
|
33
|
+
});
|
|
9
34
|
|
|
10
35
|
export interface DateInputProps
|
|
11
36
|
extends FormFieldProps,
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { enGB, nb, nn } from "date-fns/locale";
|
|
2
|
-
import
|
|
3
|
-
import
|
|
2
|
+
import { createContext } from "../util/create-context";
|
|
3
|
+
import { TFunction } from "../util/i18n/i18n.types";
|
|
4
|
+
import en_translations from "../util/i18n/locales/en";
|
|
5
|
+
import nn_translations from "../util/i18n/locales/nn";
|
|
4
6
|
|
|
5
7
|
/** @private */
|
|
6
8
|
export const getLocaleFromString = (locale: "nb" | "nn" | "en" = "nb") => {
|
|
@@ -45,3 +47,10 @@ export const getGlobalTranslations = (locale: string | undefined) => {
|
|
|
45
47
|
return undefined;
|
|
46
48
|
}
|
|
47
49
|
};
|
|
50
|
+
|
|
51
|
+
interface DateTranslationContextProps {
|
|
52
|
+
translate: TFunction<"DatePicker">;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
export const [DateTranslationContextProvider, useDateTranslationContext] =
|
|
56
|
+
createContext<DateTranslationContextProps>();
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
export type DateRange = {
|
|
2
|
+
from: Date | undefined;
|
|
3
|
+
to?: Date | undefined;
|
|
4
|
+
};
|
|
5
|
+
|
|
6
|
+
export type DateBefore = {
|
|
7
|
+
before: Date;
|
|
8
|
+
};
|
|
9
|
+
|
|
10
|
+
export type DateAfter = {
|
|
11
|
+
after: Date;
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
export function isDateAfterType(value: unknown): value is DateAfter {
|
|
15
|
+
return Boolean(value && typeof value === "object" && "after" in value);
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export function isDateBeforeType(value: unknown): value is DateBefore {
|
|
19
|
+
return Boolean(value && typeof value === "object" && "before" in value);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export function isDateRange(value: unknown): value is DateRange {
|
|
23
|
+
return Boolean(value && typeof value === "object" && "from" in value);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export type Matcher =
|
|
27
|
+
| ((date: Date) => boolean)
|
|
28
|
+
| Date
|
|
29
|
+
| Date[]
|
|
30
|
+
| DateRange
|
|
31
|
+
| DateBefore
|
|
32
|
+
| DateAfter;
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import {
|
|
2
|
+
addYears,
|
|
3
|
+
endOfMonth,
|
|
4
|
+
endOfYear,
|
|
5
|
+
startOfDay,
|
|
6
|
+
startOfMonth,
|
|
7
|
+
startOfYear,
|
|
8
|
+
} from "date-fns";
|
|
9
|
+
import { describe, expect, test } from "vitest";
|
|
10
|
+
import { calendarRange } from "./calendar-range";
|
|
11
|
+
|
|
12
|
+
describe("calendarRange", () => {
|
|
13
|
+
test("should return start and end of the given months", () => {
|
|
14
|
+
const startMonth = new Date(2023, 0, 15);
|
|
15
|
+
const endMonth = new Date(2023, 11, 15);
|
|
16
|
+
const result = calendarRange({ startMonth, endMonth });
|
|
17
|
+
|
|
18
|
+
expect(result[0]).toEqual(startOfDay(startOfMonth(startMonth)));
|
|
19
|
+
expect(result[1]).toEqual(startOfDay(endOfMonth(endMonth)));
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
test("should return start of the year 100 years ago and end of the current year if captionLayout is dropdown", () => {
|
|
23
|
+
const today = new Date(2023, 6, 15);
|
|
24
|
+
const result = calendarRange({ captionLayout: "dropdown", today });
|
|
25
|
+
|
|
26
|
+
expect(result[0]).toEqual(startOfDay(startOfYear(addYears(today, -100))));
|
|
27
|
+
expect(result[1]).toEqual(startOfDay(endOfYear(today)));
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
test("should return undefined if no startMonth and endMonth are provided", () => {
|
|
31
|
+
const today = new Date(2023, 6, 15);
|
|
32
|
+
const result = calendarRange({ today });
|
|
33
|
+
|
|
34
|
+
expect(result[0]).toBeUndefined();
|
|
35
|
+
expect(result[1]).toBeUndefined();
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
test("should handle undefined today date", () => {
|
|
39
|
+
const result = calendarRange({ captionLayout: "dropdown" });
|
|
40
|
+
|
|
41
|
+
const today = new Date();
|
|
42
|
+
expect(result[0]).toEqual(startOfDay(startOfYear(addYears(today, -100))));
|
|
43
|
+
expect(result[1]).toEqual(startOfDay(endOfYear(today)));
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
test("should handle undefined captionLayout", () => {
|
|
47
|
+
const startMonth = new Date(2023, 0, 15);
|
|
48
|
+
const endMonth = new Date(2023, 11, 15);
|
|
49
|
+
const result = calendarRange({ startMonth, endMonth });
|
|
50
|
+
|
|
51
|
+
expect(result[0]).toEqual(startOfDay(startOfMonth(startMonth)));
|
|
52
|
+
expect(result[1]).toEqual(startOfDay(endOfMonth(endMonth)));
|
|
53
|
+
});
|
|
54
|
+
});
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import {
|
|
2
|
+
addYears,
|
|
3
|
+
endOfMonth,
|
|
4
|
+
endOfYear,
|
|
5
|
+
startOfDay,
|
|
6
|
+
startOfMonth,
|
|
7
|
+
startOfYear,
|
|
8
|
+
} from "date-fns";
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Generates the min and max-dates possible to show and navigate to in the calendar.
|
|
12
|
+
* In the cases there is not a startMonth or endMonth, and layout is "label" no min or max dates are set.
|
|
13
|
+
* @returns Return the start and end months for the calendar navigation.
|
|
14
|
+
*/
|
|
15
|
+
export function calendarRange({
|
|
16
|
+
captionLayout,
|
|
17
|
+
startMonth,
|
|
18
|
+
endMonth,
|
|
19
|
+
today,
|
|
20
|
+
}: {
|
|
21
|
+
captionLayout?: "label" | "dropdown";
|
|
22
|
+
startMonth?: Date;
|
|
23
|
+
endMonth?: Date;
|
|
24
|
+
today?: Date;
|
|
25
|
+
}) {
|
|
26
|
+
const hasYearDropdown = captionLayout === "dropdown";
|
|
27
|
+
|
|
28
|
+
const todayDate = today ?? new Date();
|
|
29
|
+
|
|
30
|
+
if (startMonth) {
|
|
31
|
+
startMonth = startOfMonth(startMonth);
|
|
32
|
+
} else if (!startMonth && hasYearDropdown) {
|
|
33
|
+
startMonth = startOfYear(addYears(todayDate, -100));
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
if (endMonth) {
|
|
37
|
+
endMonth = endOfMonth(endMonth);
|
|
38
|
+
} else if (!endMonth && hasYearDropdown) {
|
|
39
|
+
endMonth = endOfYear(todayDate);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
return [
|
|
43
|
+
startMonth ? startOfDay(startMonth) : startMonth,
|
|
44
|
+
endMonth ? startOfDay(endMonth) : endMonth,
|
|
45
|
+
];
|
|
46
|
+
}
|