impact-nova 2.5.9 → 2.5.10
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/dist/components/data/data-table/column-runtime-state-guard.js +42 -42
- package/dist/components/data/data-table/data-table-column-tree-cache.d.ts +15 -0
- package/dist/components/data/data-table/data-table-column-tree-cache.js +109 -80
- package/dist/components/data/data-table/use-data-table-column-list-sync.js +65 -62
- package/dist/components/data/expandable-list-item/expandable-list-item-attributes.js +2 -3
- package/dist/components/data/expandable-list-item/expandable-list-item-metrics.js +2 -3
- package/dist/components/data-display/calendar/calendar-day-picker-classnames.d.ts +6 -1
- package/dist/components/data-display/calendar/calendar-day-picker-classnames.js +31 -23
- package/dist/components/data-display/calendar/calendar-day-picker-components.d.ts +2 -1
- package/dist/components/data-display/calendar/calendar-day-picker-components.js +194 -162
- package/dist/components/data-display/calendar/calendar-day-picker-view.d.ts +3 -2
- package/dist/components/data-display/calendar/calendar-day-picker-view.js +130 -129
- package/dist/components/data-display/calendar/calendar-padding-week.utils.d.ts +5 -1
- package/dist/components/data-display/calendar/calendar-padding-week.utils.js +20 -16
- package/dist/components/data-display/calendar/calendar-week-number-cell.d.ts +2 -1
- package/dist/components/data-display/calendar/calendar-week-number-cell.js +43 -42
- package/dist/components/data-display/calendar/calendar-week-utils.d.ts +6 -0
- package/dist/components/data-display/calendar/calendar-week-utils.js +51 -47
- package/dist/components/data-display/calendar/calendar.js +102 -100
- package/dist/components/data-display/calendar/calendar.types.d.ts +2 -0
- package/dist/components/data-display/calendar/use-calendar-day-picker-config.d.ts +4 -2
- package/dist/components/data-display/calendar/use-calendar-day-picker-config.js +77 -72
- package/dist/components/feedback/dialog/dialog.js +12 -12
- package/dist/components/feedback/sheet/sheet.js +22 -22
- package/dist/components/feedback/tooltip/tab-tooltip-render.js +2 -3
- package/dist/components/flows/command-palette/shortcut-settings.js +10 -10
- package/dist/components/flows/filter-panel/filter-panel.js +4 -4
- package/dist/components/forms/date-picker/calendar-selection-adapters.d.ts +2 -0
- package/dist/components/forms/date-picker/calendar-selection-adapters.js +36 -31
- package/dist/components/forms/date-picker/date-input-behavior.d.ts +10 -0
- package/dist/components/forms/date-picker/date-input-behavior.js +111 -90
- package/dist/components/forms/date-picker/date-picker.js +71 -69
- package/dist/components/forms/date-picker/date-picker.types.d.ts +2 -0
- package/dist/components/forms/date-picker/date-range-picker.js +146 -144
- package/dist/components/forms/date-picker/fiscal-pass-through.d.ts +1 -0
- package/dist/components/forms/date-picker/fiscal-pass-through.js +1 -0
- package/dist/components/forms/date-picker/month-picker.js +82 -80
- package/dist/components/forms/date-picker/month-range-picker.js +145 -143
- package/dist/components/forms/date-picker/multi-date-picker.js +51 -49
- package/dist/components/forms/date-picker/multi-month-picker.js +49 -47
- package/dist/components/forms/date-picker/multi-quarter-picker.js +46 -44
- package/dist/components/forms/date-picker/multi-week-picker.js +53 -51
- package/dist/components/forms/date-picker/multi-year-picker.js +48 -46
- package/dist/components/forms/date-picker/picker-story-layout.d.ts +2 -0
- package/dist/components/forms/date-picker/quarter-picker.js +46 -44
- package/dist/components/forms/date-picker/quarter-range-picker.js +45 -43
- package/dist/components/forms/date-picker/week-picker.js +82 -80
- package/dist/components/forms/date-picker/week-range-picker.js +169 -164
- package/dist/components/forms/date-picker/year-picker.js +47 -45
- package/dist/components/forms/date-picker/year-range-picker.js +47 -45
- package/dist/components/forms/select/components/SelectMenuPanel.js +3 -2
- package/dist/components/forms/select/components/SelectTriggerValue.js +2 -3
- package/dist/components/forms/select/components/Submenu.js +2 -3
- package/dist/components/forms/select/select.js +1 -0
- package/dist/form-react/Fields/WeekRangePicker.js +47 -48
- package/dist/form-react/types/fields.types.d.ts +2 -0
- package/dist/impact-nova.css +1 -1
- package/dist/lib/overlay/overlay-portal-context.js +16 -16
- package/dist/llms/rules/installation.js +1 -1
- package/dist/llms/rules/requirements.js +1 -1
- package/package.json +1 -1
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
import { jsxs as f, jsx as r } from "react/jsx-runtime";
|
|
2
2
|
import * as a from "react";
|
|
3
|
-
import { Cross as
|
|
4
|
-
import { format as
|
|
5
|
-
import { cn as
|
|
6
|
-
import { Input as
|
|
7
|
-
import { Popover as
|
|
8
|
-
import { Calendar as
|
|
3
|
+
import { Cross as Z, CalendarMonth as _ } from "impact-nova-icons";
|
|
4
|
+
import { format as ee } from "date-fns";
|
|
5
|
+
import { cn as te } from "../../../lib/utils.js";
|
|
6
|
+
import { Input as re } from "../input/input.js";
|
|
7
|
+
import { Popover as oe, PopoverAnchor as ne, PopoverContent as ae } from "../../feedback/popover/popover.js";
|
|
8
|
+
import { Calendar as se } from "../../data-display/calendar/calendar.js";
|
|
9
9
|
import { Tooltip as P, TooltipTrigger as C, TooltipContent as k } from "../../feedback/tooltip/tooltip.js";
|
|
10
|
-
import { useImpactNovaI18n as
|
|
11
|
-
import { getDateFnsLocale as
|
|
12
|
-
import { coerceDateArrayApply as
|
|
13
|
-
import { usePickerDismissActionsRef as
|
|
14
|
-
import { buildDateBoundsMatcher as
|
|
15
|
-
import { fiscalCalendarPassThrough as
|
|
16
|
-
const
|
|
10
|
+
import { useImpactNovaI18n as ie } from "../../../i18n/use-impact-nova-i18n.js";
|
|
11
|
+
import { getDateFnsLocale as ce } from "../../../i18n/getDateFnsLocale.js";
|
|
12
|
+
import { coerceDateArrayApply as le, coerceDateArray as pe } from "./calendar-selection-adapters.js";
|
|
13
|
+
import { usePickerDismissActionsRef as de, usePickerFooterDismissNudge as fe, handlePickerSurfacePointerDown as me } from "./date-input-behavior.js";
|
|
14
|
+
import { buildDateBoundsMatcher as ue } from "../../../lib/date-bounds-matcher.js";
|
|
15
|
+
import { fiscalCalendarPassThrough as he } from "./fiscal-pass-through.js";
|
|
16
|
+
const ye = a.forwardRef(
|
|
17
17
|
({
|
|
18
18
|
value: t,
|
|
19
19
|
onChange: m,
|
|
@@ -33,60 +33,61 @@ const he = a.forwardRef(
|
|
|
33
33
|
fiscalYearStartMonth: j,
|
|
34
34
|
fiscalConfig: O,
|
|
35
35
|
showPresets: w,
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
36
|
+
showPeriodBoundaries: E,
|
|
37
|
+
comparison: v,
|
|
38
|
+
onComparisonChange: z,
|
|
39
|
+
...K
|
|
40
|
+
}, q) => {
|
|
41
|
+
const { locale: h, t: s } = ie(), B = a.useMemo(() => ce(h), [h]), H = M ?? s("datePicker.selectMultipleDates"), [i, n] = a.useState(!1), u = a.useRef(null), y = de(), { footerFlashKey: V, footerFlashTarget: $, popoverHandlers: G } = fe(l, i, y, u), [p, d] = a.useState(t);
|
|
41
42
|
a.useEffect(() => {
|
|
42
43
|
d(t);
|
|
43
44
|
}, [i, t]);
|
|
44
|
-
const
|
|
45
|
-
const c =
|
|
45
|
+
const J = (e) => {
|
|
46
|
+
const c = pe(e);
|
|
46
47
|
d(c), l || m?.(c);
|
|
47
|
-
},
|
|
48
|
-
const c =
|
|
48
|
+
}, Q = (e) => {
|
|
49
|
+
const c = le(e, p);
|
|
49
50
|
m?.(c), n(!1);
|
|
50
51
|
}, g = () => {
|
|
51
52
|
d(t), n(!1);
|
|
52
53
|
}, D = () => {
|
|
53
54
|
d(void 0), m?.(void 0), l || n(!1);
|
|
54
|
-
},
|
|
55
|
+
}, U = t && t.length > 0 ? t.length === 1 ? ee(t[0], x, { locale: B }) : `${t.length} dates selected` : "", W = a.useCallback(() => {
|
|
55
56
|
const e = p?.length ?? 0, c = t?.length ?? 0;
|
|
56
57
|
return e === c && (p ?? []).every(
|
|
57
|
-
(
|
|
58
|
+
(X, Y) => X.getTime() === t?.[Y]?.getTime()
|
|
58
59
|
) ? "dismiss" : e > 0 ? "apply" : "cancel";
|
|
59
60
|
}, [p, t]);
|
|
60
61
|
return a.useLayoutEffect(() => {
|
|
61
62
|
y.current = {
|
|
62
63
|
onDismiss: g,
|
|
63
|
-
resolveFlash:
|
|
64
|
+
resolveFlash: W
|
|
64
65
|
};
|
|
65
|
-
}), /* @__PURE__ */ f(
|
|
66
|
+
}), /* @__PURE__ */ f(oe, { open: o ? !1 : i, onOpenChange: (e) => {
|
|
66
67
|
o || !e && l || n(e);
|
|
67
68
|
}, children: [
|
|
68
|
-
/* @__PURE__ */ r(
|
|
69
|
+
/* @__PURE__ */ r(ne, { asChild: !0, children: /* @__PURE__ */ r(
|
|
69
70
|
"div",
|
|
70
71
|
{
|
|
71
72
|
ref: u,
|
|
72
|
-
onPointerDown: (e) =>
|
|
73
|
+
onPointerDown: (e) => me({
|
|
73
74
|
disabled: o,
|
|
74
75
|
event: e,
|
|
75
76
|
onOpen: () => n(!0),
|
|
76
77
|
focusField: () => u.current?.querySelector("input")?.focus()
|
|
77
78
|
}),
|
|
78
79
|
children: /* @__PURE__ */ r(
|
|
79
|
-
|
|
80
|
+
re,
|
|
80
81
|
{
|
|
81
|
-
ref:
|
|
82
|
-
value:
|
|
83
|
-
placeholder:
|
|
82
|
+
ref: q,
|
|
83
|
+
value: U,
|
|
84
|
+
placeholder: H,
|
|
84
85
|
readOnly: !0,
|
|
85
86
|
disabled: o,
|
|
86
87
|
onClick: () => {
|
|
87
88
|
!o && !i && n(!0);
|
|
88
89
|
},
|
|
89
|
-
className:
|
|
90
|
+
className: te("cursor-pointer", R),
|
|
90
91
|
suffix: /* @__PURE__ */ f("div", { className: "flex items-center gap-1", children: [
|
|
91
92
|
t && t.length > 0 && !o && /* @__PURE__ */ f(P, { children: [
|
|
92
93
|
/* @__PURE__ */ r(C, { asChild: !0, children: /* @__PURE__ */ r(
|
|
@@ -99,7 +100,7 @@ const he = a.forwardRef(
|
|
|
99
100
|
e.stopPropagation(), D();
|
|
100
101
|
},
|
|
101
102
|
className: "inline-flex size-4 items-center justify-center bg-transparent border-none p-0 cursor-pointer",
|
|
102
|
-
children: /* @__PURE__ */ r(
|
|
103
|
+
children: /* @__PURE__ */ r(Z, { className: "size-3 hover:text-content" })
|
|
103
104
|
}
|
|
104
105
|
) }),
|
|
105
106
|
/* @__PURE__ */ r(k, { variant: "tertiary", side: "top", children: s("calendar.clear") })
|
|
@@ -119,42 +120,42 @@ const he = a.forwardRef(
|
|
|
119
120
|
(e.key === "Enter" || e.key === " ") && (e.preventDefault(), e.stopPropagation(), o || n(!i));
|
|
120
121
|
},
|
|
121
122
|
className: "inline-flex items-center justify-center bg-transparent border-none p-0 cursor-pointer",
|
|
122
|
-
children: /* @__PURE__ */ r(
|
|
123
|
+
children: /* @__PURE__ */ r(_, { className: "h-4 w-4 text-secondary-foreground" })
|
|
123
124
|
}
|
|
124
125
|
) }),
|
|
125
126
|
/* @__PURE__ */ r(k, { variant: "tertiary", side: "top", children: s("datePicker.selectMultipleDates") })
|
|
126
127
|
] })
|
|
127
128
|
] }),
|
|
128
|
-
...
|
|
129
|
+
...K
|
|
129
130
|
}
|
|
130
131
|
)
|
|
131
132
|
}
|
|
132
133
|
) }),
|
|
133
134
|
/* @__PURE__ */ r(
|
|
134
|
-
|
|
135
|
+
ae,
|
|
135
136
|
{
|
|
136
137
|
className: "w-auto p-0",
|
|
137
138
|
align: "start",
|
|
138
139
|
"aria-label": s("datePicker.selectMultipleDates"),
|
|
139
140
|
onOpenAutoFocus: (e) => e.preventDefault(),
|
|
140
|
-
|
|
141
|
+
...G,
|
|
141
142
|
children: /* @__PURE__ */ r(
|
|
142
|
-
|
|
143
|
+
se,
|
|
143
144
|
{
|
|
144
145
|
mode: "multiple",
|
|
145
146
|
selected: p,
|
|
146
|
-
footerFlashKey:
|
|
147
|
-
footerFlashTarget:
|
|
148
|
-
onSelect:
|
|
149
|
-
disabled:
|
|
147
|
+
footerFlashKey: V,
|
|
148
|
+
footerFlashTarget: $,
|
|
149
|
+
onSelect: J,
|
|
150
|
+
disabled: ue(A, N),
|
|
150
151
|
startMonth: b,
|
|
151
152
|
endMonth: T,
|
|
152
153
|
showFooter: l,
|
|
153
|
-
onApply:
|
|
154
|
+
onApply: Q,
|
|
154
155
|
onCancel: g,
|
|
155
156
|
onClear: D,
|
|
156
157
|
captionLayout: "dropdown",
|
|
157
|
-
...
|
|
158
|
+
...he({
|
|
158
159
|
calendarKind: S,
|
|
159
160
|
fiscalMode: F,
|
|
160
161
|
granularity: I,
|
|
@@ -162,8 +163,9 @@ const he = a.forwardRef(
|
|
|
162
163
|
fiscalYearStartMonth: j,
|
|
163
164
|
fiscalConfig: O,
|
|
164
165
|
showPresets: w,
|
|
165
|
-
|
|
166
|
-
|
|
166
|
+
showPeriodBoundaries: E,
|
|
167
|
+
comparison: v,
|
|
168
|
+
onComparisonChange: z
|
|
167
169
|
})
|
|
168
170
|
}
|
|
169
171
|
)
|
|
@@ -172,7 +174,7 @@ const he = a.forwardRef(
|
|
|
172
174
|
] });
|
|
173
175
|
}
|
|
174
176
|
);
|
|
175
|
-
|
|
177
|
+
ye.displayName = "MultiDatePicker";
|
|
176
178
|
export {
|
|
177
|
-
|
|
179
|
+
ye as MultiDatePicker
|
|
178
180
|
};
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import { jsxs as d, jsx as n } from "react/jsx-runtime";
|
|
2
2
|
import * as s from "react";
|
|
3
|
-
import { Cross as
|
|
4
|
-
import { cn as
|
|
5
|
-
import { Input as
|
|
6
|
-
import { Popover as
|
|
7
|
-
import { Calendar as
|
|
3
|
+
import { Cross as Y, CalendarMonth as Z } from "impact-nova-icons";
|
|
4
|
+
import { cn as _ } from "../../../lib/utils.js";
|
|
5
|
+
import { Input as ee } from "../input/input.js";
|
|
6
|
+
import { Popover as te, PopoverAnchor as ne, PopoverContent as re } from "../../feedback/popover/popover.js";
|
|
7
|
+
import { Calendar as oe } from "../../data-display/calendar/calendar.js";
|
|
8
8
|
import { Tooltip as D, TooltipTrigger as b, TooltipContent as x } from "../../feedback/tooltip/tooltip.js";
|
|
9
|
-
import { useImpactNovaI18n as
|
|
10
|
-
import { coerceMonthArrayApply as
|
|
11
|
-
import { usePickerDismissActionsRef as
|
|
12
|
-
import { buildDateBoundsMatcher as
|
|
13
|
-
import { fiscalCalendarPassThrough as
|
|
14
|
-
const
|
|
9
|
+
import { useImpactNovaI18n as se } from "../../../i18n/use-impact-nova-i18n.js";
|
|
10
|
+
import { coerceMonthArrayApply as ie, coerceMonthArray as ce } from "./calendar-selection-adapters.js";
|
|
11
|
+
import { usePickerDismissActionsRef as ae, usePickerFooterDismissNudge as le, handlePickerSurfacePointerDown as pe } from "./date-input-behavior.js";
|
|
12
|
+
import { buildDateBoundsMatcher as fe } from "../../../lib/date-bounds-matcher.js";
|
|
13
|
+
import { fiscalCalendarPassThrough as de } from "./fiscal-pass-through.js";
|
|
14
|
+
const he = s.forwardRef(
|
|
15
15
|
({
|
|
16
16
|
value: t,
|
|
17
17
|
onChange: h,
|
|
@@ -30,27 +30,28 @@ const de = s.forwardRef(
|
|
|
30
30
|
fiscalYearStartMonth: w,
|
|
31
31
|
fiscalConfig: E,
|
|
32
32
|
showPresets: F,
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
33
|
+
showPeriodBoundaries: K,
|
|
34
|
+
comparison: z,
|
|
35
|
+
onComparisonChange: L,
|
|
36
|
+
...V
|
|
37
|
+
}, $) => {
|
|
38
|
+
const { t: i } = se(), q = A ?? i("datePicker.selectMultipleMonths"), [c, o] = s.useState(!1), u = s.useRef(!1), m = s.useRef(null), g = ae(), { footerFlashKey: B, footerFlashTarget: H, popoverHandlers: G } = le(l, c, g, m), [p, f] = s.useState(t);
|
|
38
39
|
s.useEffect(() => {
|
|
39
40
|
f(t);
|
|
40
41
|
}, [c, t]);
|
|
41
|
-
const
|
|
42
|
-
const a =
|
|
42
|
+
const J = (e) => {
|
|
43
|
+
const a = ce(e);
|
|
43
44
|
f(a), l || h?.(a);
|
|
44
|
-
},
|
|
45
|
-
const a =
|
|
45
|
+
}, Q = (e) => {
|
|
46
|
+
const a = ie(e, p);
|
|
46
47
|
h?.(a), o(!1);
|
|
47
48
|
}, M = () => {
|
|
48
49
|
f(t), o(!1);
|
|
49
50
|
}, P = () => {
|
|
50
51
|
f(void 0), h?.(void 0), l || o(!1);
|
|
51
|
-
},
|
|
52
|
+
}, U = t && t.length > 0 ? t.length === 1 ? `${t[0].month + 1}/${t[0].year}` : i("datePicker.monthsSelected", { count: t.length }) : "", W = (e) => {
|
|
52
53
|
r || !e && l || o(e);
|
|
53
|
-
},
|
|
54
|
+
}, X = s.useCallback(() => {
|
|
54
55
|
const e = p?.length ?? 0, a = t?.length ?? 0;
|
|
55
56
|
return e === a && (p ?? []).every(
|
|
56
57
|
(C, k) => C.month === t?.[k]?.month && C.year === t?.[k]?.year
|
|
@@ -59,31 +60,31 @@ const de = s.forwardRef(
|
|
|
59
60
|
return s.useLayoutEffect(() => {
|
|
60
61
|
g.current = {
|
|
61
62
|
onDismiss: M,
|
|
62
|
-
resolveFlash:
|
|
63
|
+
resolveFlash: X
|
|
63
64
|
};
|
|
64
|
-
}), /* @__PURE__ */ d(
|
|
65
|
-
/* @__PURE__ */ n(
|
|
65
|
+
}), /* @__PURE__ */ d(te, { open: r ? !1 : c, onOpenChange: W, children: [
|
|
66
|
+
/* @__PURE__ */ n(ne, { asChild: !0, children: /* @__PURE__ */ n(
|
|
66
67
|
"div",
|
|
67
68
|
{
|
|
68
69
|
ref: m,
|
|
69
|
-
onPointerDown: (e) =>
|
|
70
|
+
onPointerDown: (e) => pe({
|
|
70
71
|
disabled: r,
|
|
71
72
|
event: e,
|
|
72
73
|
onOpen: () => o(!0),
|
|
73
74
|
focusField: () => m.current?.querySelector("input")?.focus()
|
|
74
75
|
}),
|
|
75
76
|
children: /* @__PURE__ */ n(
|
|
76
|
-
|
|
77
|
+
ee,
|
|
77
78
|
{
|
|
78
|
-
ref:
|
|
79
|
-
value:
|
|
80
|
-
placeholder:
|
|
79
|
+
ref: $,
|
|
80
|
+
value: U,
|
|
81
|
+
placeholder: q,
|
|
81
82
|
readOnly: !0,
|
|
82
83
|
disabled: r,
|
|
83
84
|
onClick: () => {
|
|
84
85
|
!r && !c && o(!0);
|
|
85
86
|
},
|
|
86
|
-
className:
|
|
87
|
+
className: _("cursor-pointer", S),
|
|
87
88
|
suffix: /* @__PURE__ */ d("div", { className: "flex items-center gap-1", children: [
|
|
88
89
|
t && t.length > 0 && !r && /* @__PURE__ */ d(D, { children: [
|
|
89
90
|
/* @__PURE__ */ n(b, { asChild: !0, children: /* @__PURE__ */ n(
|
|
@@ -96,7 +97,7 @@ const de = s.forwardRef(
|
|
|
96
97
|
e.stopPropagation(), P();
|
|
97
98
|
},
|
|
98
99
|
className: "inline-flex size-4 items-center justify-center bg-transparent border-none p-0 cursor-pointer",
|
|
99
|
-
children: /* @__PURE__ */ n(
|
|
100
|
+
children: /* @__PURE__ */ n(Y, { className: "size-3 hover:text-content" })
|
|
100
101
|
}
|
|
101
102
|
) }),
|
|
102
103
|
/* @__PURE__ */ n(x, { variant: "tertiary", side: "top", children: i("calendar.clear") })
|
|
@@ -116,19 +117,19 @@ const de = s.forwardRef(
|
|
|
116
117
|
(e.key === "Enter" || e.key === " ") && (e.preventDefault(), e.stopPropagation(), r || (u.current = !0, o(!c)));
|
|
117
118
|
},
|
|
118
119
|
className: "inline-flex items-center justify-center bg-transparent border-none p-0 cursor-pointer",
|
|
119
|
-
children: /* @__PURE__ */ n(
|
|
120
|
+
children: /* @__PURE__ */ n(Z, { className: "h-4 w-4 text-secondary-foreground" })
|
|
120
121
|
}
|
|
121
122
|
) }),
|
|
122
123
|
/* @__PURE__ */ n(x, { variant: "tertiary", side: "top", children: i("datePicker.selectMultipleMonths") })
|
|
123
124
|
] })
|
|
124
125
|
] }),
|
|
125
|
-
...
|
|
126
|
+
...V
|
|
126
127
|
}
|
|
127
128
|
)
|
|
128
129
|
}
|
|
129
130
|
) }),
|
|
130
131
|
/* @__PURE__ */ n(
|
|
131
|
-
|
|
132
|
+
re,
|
|
132
133
|
{
|
|
133
134
|
className: "w-auto p-0",
|
|
134
135
|
align: "start",
|
|
@@ -136,26 +137,26 @@ const de = s.forwardRef(
|
|
|
136
137
|
onOpenAutoFocus: (e) => {
|
|
137
138
|
u.current || e.preventDefault(), u.current = !1;
|
|
138
139
|
},
|
|
139
|
-
...
|
|
140
|
+
...G,
|
|
140
141
|
children: /* @__PURE__ */ n(
|
|
141
|
-
|
|
142
|
+
oe,
|
|
142
143
|
{
|
|
143
144
|
pickerType: "month",
|
|
144
145
|
monthMode: "multiple",
|
|
145
146
|
selectedMonths: p,
|
|
146
|
-
footerFlashKey:
|
|
147
|
-
footerFlashTarget:
|
|
148
|
-
onMonthSelect:
|
|
149
|
-
disabled:
|
|
147
|
+
footerFlashKey: B,
|
|
148
|
+
footerFlashTarget: H,
|
|
149
|
+
onMonthSelect: J,
|
|
150
|
+
disabled: fe(y, N),
|
|
150
151
|
startMonth: R,
|
|
151
152
|
endMonth: T,
|
|
152
153
|
defaultMonth: y,
|
|
153
154
|
showFooter: l,
|
|
154
|
-
onApply:
|
|
155
|
+
onApply: Q,
|
|
155
156
|
onCancel: M,
|
|
156
157
|
onClear: P,
|
|
157
158
|
captionLayout: "dropdown",
|
|
158
|
-
...
|
|
159
|
+
...de({
|
|
159
160
|
calendarKind: I,
|
|
160
161
|
fiscalMode: O,
|
|
161
162
|
granularity: j,
|
|
@@ -163,8 +164,9 @@ const de = s.forwardRef(
|
|
|
163
164
|
fiscalYearStartMonth: w,
|
|
164
165
|
fiscalConfig: E,
|
|
165
166
|
showPresets: F,
|
|
166
|
-
|
|
167
|
-
|
|
167
|
+
showPeriodBoundaries: K,
|
|
168
|
+
comparison: z,
|
|
169
|
+
onComparisonChange: L
|
|
168
170
|
})
|
|
169
171
|
}
|
|
170
172
|
)
|
|
@@ -173,7 +175,7 @@ const de = s.forwardRef(
|
|
|
173
175
|
] });
|
|
174
176
|
}
|
|
175
177
|
);
|
|
176
|
-
|
|
178
|
+
he.displayName = "MultiMonthPicker";
|
|
177
179
|
export {
|
|
178
|
-
|
|
180
|
+
he as MultiMonthPicker
|
|
179
181
|
};
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import { jsx as r, jsxs as g } from "react/jsx-runtime";
|
|
2
2
|
import * as n from "react";
|
|
3
|
-
import { Cross as
|
|
4
|
-
import { cn as
|
|
5
|
-
import { Input as
|
|
6
|
-
import { Calendar as
|
|
3
|
+
import { Cross as Y, CalendarMonth as Z } from "impact-nova-icons";
|
|
4
|
+
import { cn as _ } from "../../../lib/utils.js";
|
|
5
|
+
import { Input as $ } from "../input/input.js";
|
|
6
|
+
import { Calendar as ee } from "../../data-display/calendar/calendar.js";
|
|
7
7
|
import { Tooltip as M, TooltipTrigger as x, TooltipContent as b } from "../../feedback/tooltip/tooltip.js";
|
|
8
|
-
import { useImpactNovaI18n as
|
|
9
|
-
import { buildDateBoundsMatcher as
|
|
10
|
-
import { fiscalCalendarPassThrough as
|
|
11
|
-
import { DatePickerShell as
|
|
12
|
-
import { usePickerDismissActionsRef as
|
|
13
|
-
import { formatQuarterInput as
|
|
14
|
-
import { viewMonthFromQuarter as
|
|
15
|
-
const
|
|
8
|
+
import { useImpactNovaI18n as te } from "../../../i18n/use-impact-nova-i18n.js";
|
|
9
|
+
import { buildDateBoundsMatcher as re } from "../../../lib/date-bounds-matcher.js";
|
|
10
|
+
import { fiscalCalendarPassThrough as ne } from "./fiscal-pass-through.js";
|
|
11
|
+
import { DatePickerShell as oe } from "./date-picker-shell.js";
|
|
12
|
+
import { usePickerDismissActionsRef as ae, usePickerFooterDismissNudge as ie, handleReadonlyPickerKeyDown as ce, handlePickerSurfacePointerDown as se } from "./date-input-behavior.js";
|
|
13
|
+
import { formatQuarterInput as le } from "../../data-display/calendar/calendar-fiscal-labels.js";
|
|
14
|
+
import { viewMonthFromQuarter as pe } from "../../data-display/calendar/calendar-quarter-utils.js";
|
|
15
|
+
const ue = n.forwardRef(
|
|
16
16
|
({
|
|
17
17
|
value: t,
|
|
18
18
|
onChange: u,
|
|
@@ -31,26 +31,28 @@ const pe = n.forwardRef(
|
|
|
31
31
|
fiscalYearStartMonth: v,
|
|
32
32
|
fiscalConfig: K,
|
|
33
33
|
showPresets: j,
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
34
|
+
showPeriodBoundaries: F,
|
|
35
|
+
...z
|
|
36
|
+
}, E) => {
|
|
37
|
+
const { t: a } = te(), H = R ?? a("datePicker.selectMultipleQuarters"), f = n.useRef(null), y = n.useRef(null);
|
|
38
|
+
n.useImperativeHandle(E, () => f.current);
|
|
39
|
+
const [i, c] = n.useState(!1), d = n.useRef(!1), k = ae(), { footerFlashKey: L, footerFlashTarget: V, popoverHandlers: q } = ie(s, i, k, y), [P, l] = n.useState(t), [B, G] = n.useState(pe(t?.[0]));
|
|
39
40
|
n.useEffect(() => {
|
|
40
41
|
i || l(t);
|
|
41
42
|
}, [i, t]);
|
|
42
|
-
const m = n.useCallback(() => c(!1), []),
|
|
43
|
+
const m = n.useCallback(() => c(!1), []), J = ne({
|
|
43
44
|
calendarKind: I,
|
|
44
45
|
fiscalMode: O,
|
|
45
46
|
granularity: T,
|
|
46
47
|
fiscalMonthPattern: w,
|
|
47
48
|
fiscalYearStartMonth: v,
|
|
48
49
|
fiscalConfig: K,
|
|
49
|
-
showPresets: j
|
|
50
|
-
|
|
50
|
+
showPresets: j,
|
|
51
|
+
showPeriodBoundaries: F
|
|
52
|
+
}), U = (e) => {
|
|
51
53
|
const p = Array.isArray(e) && e.length > 0 ? e : void 0;
|
|
52
54
|
l(p), s || u?.(p);
|
|
53
|
-
},
|
|
55
|
+
}, W = () => {
|
|
54
56
|
u?.(P), m();
|
|
55
57
|
}, h = () => {
|
|
56
58
|
l(t), m();
|
|
@@ -60,9 +62,9 @@ const pe = n.forwardRef(
|
|
|
60
62
|
n.useLayoutEffect(() => {
|
|
61
63
|
k.current = { onDismiss: h, resolveFlash: () => "cancel" };
|
|
62
64
|
});
|
|
63
|
-
const
|
|
65
|
+
const X = t && t.length > 0 ? t.length === 1 ? le(t[0]) : a("datePicker.quartersSelected", { count: t.length }) : "";
|
|
64
66
|
return /* @__PURE__ */ r(
|
|
65
|
-
|
|
67
|
+
oe,
|
|
66
68
|
{
|
|
67
69
|
open: i,
|
|
68
70
|
disabled: o,
|
|
@@ -73,26 +75,26 @@ const pe = n.forwardRef(
|
|
|
73
75
|
onOpenAutoFocus: (e) => {
|
|
74
76
|
d.current || e.preventDefault(), d.current = !1;
|
|
75
77
|
},
|
|
76
|
-
popoverHandlers:
|
|
78
|
+
popoverHandlers: q,
|
|
77
79
|
trigger: /* @__PURE__ */ r(
|
|
78
80
|
"div",
|
|
79
81
|
{
|
|
80
82
|
ref: y,
|
|
81
83
|
"data-component": "multi-quarter-picker",
|
|
82
84
|
"data-state": i ? "open" : "closed",
|
|
83
|
-
onPointerDown: (e) =>
|
|
85
|
+
onPointerDown: (e) => se({
|
|
84
86
|
disabled: o,
|
|
85
87
|
event: e,
|
|
86
88
|
onOpen: () => c(!0),
|
|
87
89
|
focusField: () => f.current?.focus()
|
|
88
90
|
}),
|
|
89
91
|
children: /* @__PURE__ */ r(
|
|
90
|
-
|
|
92
|
+
$,
|
|
91
93
|
{
|
|
92
94
|
ref: f,
|
|
93
|
-
value:
|
|
95
|
+
value: X,
|
|
94
96
|
readOnly: !0,
|
|
95
|
-
onKeyDown: (e) =>
|
|
97
|
+
onKeyDown: (e) => ce(e, {
|
|
96
98
|
disabled: o,
|
|
97
99
|
open: i,
|
|
98
100
|
onOpen: () => c(!0),
|
|
@@ -102,10 +104,10 @@ const pe = n.forwardRef(
|
|
|
102
104
|
}
|
|
103
105
|
}),
|
|
104
106
|
onClick: () => !o && c(!0),
|
|
105
|
-
placeholder:
|
|
107
|
+
placeholder: H,
|
|
106
108
|
disabled: o,
|
|
107
109
|
"data-form-control": "input",
|
|
108
|
-
className:
|
|
110
|
+
className: _("cursor-pointer", A),
|
|
109
111
|
suffix: /* @__PURE__ */ g("div", { className: "flex items-center gap-1", children: [
|
|
110
112
|
t && t.length > 0 && !o ? /* @__PURE__ */ g(M, { children: [
|
|
111
113
|
/* @__PURE__ */ r(x, { asChild: !0, children: /* @__PURE__ */ r(
|
|
@@ -118,7 +120,7 @@ const pe = n.forwardRef(
|
|
|
118
120
|
e.stopPropagation(), C();
|
|
119
121
|
},
|
|
120
122
|
className: "inline-flex size-4 items-center justify-center border-none bg-transparent p-0",
|
|
121
|
-
children: /* @__PURE__ */ r(
|
|
123
|
+
children: /* @__PURE__ */ r(Y, { className: "size-3 hover:text-content" })
|
|
122
124
|
}
|
|
123
125
|
) }),
|
|
124
126
|
/* @__PURE__ */ r(b, { variant: "tertiary", side: "top", children: a("calendar.clear") })
|
|
@@ -135,43 +137,43 @@ const pe = n.forwardRef(
|
|
|
135
137
|
e.stopPropagation(), o || c((p) => !p);
|
|
136
138
|
},
|
|
137
139
|
className: "inline-flex items-center justify-center border-none bg-transparent p-0",
|
|
138
|
-
children: /* @__PURE__ */ r(
|
|
140
|
+
children: /* @__PURE__ */ r(Z, { className: "h-4 w-4 text-secondary-foreground" })
|
|
139
141
|
}
|
|
140
142
|
) }),
|
|
141
143
|
/* @__PURE__ */ r(b, { variant: "tertiary", side: "top", children: a("datePicker.selectMultipleQuarters") })
|
|
142
144
|
] })
|
|
143
145
|
] }),
|
|
144
|
-
...
|
|
146
|
+
...z
|
|
145
147
|
}
|
|
146
148
|
)
|
|
147
149
|
}
|
|
148
150
|
),
|
|
149
151
|
children: /* @__PURE__ */ r(
|
|
150
|
-
|
|
152
|
+
ee,
|
|
151
153
|
{
|
|
152
154
|
pickerType: "quarter",
|
|
153
155
|
monthMode: "multiple",
|
|
154
156
|
selectedQuarters: P,
|
|
155
|
-
footerFlashKey:
|
|
156
|
-
footerFlashTarget:
|
|
157
|
-
onQuarterSelect:
|
|
158
|
-
month:
|
|
159
|
-
onMonthChange:
|
|
160
|
-
disabled:
|
|
157
|
+
footerFlashKey: L,
|
|
158
|
+
footerFlashTarget: V,
|
|
159
|
+
onQuarterSelect: U,
|
|
160
|
+
month: B,
|
|
161
|
+
onMonthChange: G,
|
|
162
|
+
disabled: re(D, Q),
|
|
161
163
|
startMonth: N,
|
|
162
164
|
endMonth: S,
|
|
163
165
|
showFooter: s,
|
|
164
|
-
onApply:
|
|
166
|
+
onApply: W,
|
|
165
167
|
onCancel: h,
|
|
166
168
|
onClear: C,
|
|
167
|
-
...
|
|
169
|
+
...J
|
|
168
170
|
}
|
|
169
171
|
)
|
|
170
172
|
}
|
|
171
173
|
);
|
|
172
174
|
}
|
|
173
175
|
);
|
|
174
|
-
|
|
176
|
+
ue.displayName = "MultiQuarterPicker";
|
|
175
177
|
export {
|
|
176
|
-
|
|
178
|
+
ue as MultiQuarterPicker
|
|
177
179
|
};
|