impact-nova 2.2.3 → 2.2.5
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/ag-grid-react/headers/custom-header.js +133 -110
- package/dist/components/data/ag-grid-react/headers/header-search-input.js +23 -23
- package/dist/components/data/ag-grid-react/index.js +202 -206
- package/dist/components/data/data-table/build-column-tree-from-grid.js +65 -67
- package/dist/components/data/data-table/data-table-column-list-sync.js +5 -10
- package/dist/components/data/data-table/data-table-column-list.js +64 -61
- package/dist/components/data/data-table/data-table-column-tree-cache.d.ts +29 -0
- package/dist/components/data/data-table/data-table-column-tree-cache.js +117 -0
- package/dist/components/data/data-table/data-table-constants.d.ts +2 -0
- package/dist/components/data/data-table/data-table-constants.js +3 -2
- package/dist/components/data/data-table/data-table-sheet.js +46 -49
- package/dist/components/data/data-table/data-table.js +137 -119
- package/dist/components/data/data-table/index.js +24 -23
- package/dist/components/data/data-table/patch-column-tree-indicators-from-grid.d.ts +3 -0
- package/dist/components/data/data-table/patch-column-tree-indicators-from-grid.js +24 -0
- package/dist/components/data/data-table/use-data-table-column-list-sync.d.ts +2 -1
- package/dist/components/data/data-table/use-data-table-column-list-sync.js +249 -150
- package/dist/components/data/expandable-list-item/expandable-list-item-attributes.d.ts +2 -1
- package/dist/components/data/expandable-list-item/expandable-list-item-attributes.js +30 -27
- package/dist/components/data/expandable-list-item/expandable-list-item-parts.d.ts +1 -1
- package/dist/components/data/expandable-list-item/expandable-list-item-parts.js +179 -118
- package/dist/components/data/expandable-list-item/expandable-list-item-preset.js +30 -29
- package/dist/components/data/expandable-list-item/expandable-list-item.types.d.ts +8 -1
- package/dist/components/data/expandable-list-item/index.d.ts +1 -1
- package/dist/components/data/nested-list/components/NestedListContent.js +158 -96
- package/dist/components/data/nested-list/nested-list-constants.d.ts +4 -0
- package/dist/components/data/nested-list/nested-list-constants.js +6 -0
- package/dist/components/data/nested-list/nested-list-tree-utils.d.ts +3 -0
- package/dist/components/data/nested-list/nested-list-tree-utils.js +24 -0
- package/dist/components/data/nested-list/nested-list.js +214 -215
- package/dist/components/data-display/card/card.js +6 -5
- package/dist/components/feedback/dialog/dialog.js +7 -5
- package/dist/components/feedback/sheet/sheet.js +28 -27
- package/dist/components/feedback/tooltip/tab-tooltip-render.js +3 -2
- package/dist/components/flows/filter-panel/filter-panel.js +36 -35
- package/dist/components/flows/filter-strip/filter-tag-list.js +44 -44
- package/dist/components/forms/combobox/combobox.js +110 -100
- package/dist/components/forms/date-picker/date-input-behavior.d.ts +9 -0
- package/dist/components/forms/date-picker/date-input-behavior.js +32 -19
- package/dist/components/forms/date-picker/date-picker.js +96 -90
- package/dist/components/forms/date-picker/date-range-picker.js +160 -152
- package/dist/components/forms/date-picker/month-picker.js +71 -65
- package/dist/components/forms/date-picker/month-range-picker.js +153 -145
- package/dist/components/forms/date-picker/multi-date-picker.js +127 -99
- package/dist/components/forms/date-picker/multi-month-picker.js +109 -97
- package/dist/components/forms/date-picker/multi-week-picker.js +98 -86
- package/dist/components/forms/date-picker/week-picker.js +82 -76
- package/dist/components/forms/date-picker/week-range-picker.js +127 -119
- package/dist/impact-nova-base.scss +10 -5
- package/dist/impact-nova-components.css +9 -5
- package/dist/impact-nova.css +1 -1
- package/dist/index.js +189 -188
- package/dist/lib/overlay/overlay-portal-context.d.ts +11 -2
- package/dist/lib/overlay/overlay-portal-context.js +39 -28
- package/dist/lib/primitives/create-compound.d.ts +5 -0
- package/dist/lib/primitives/create-compound.js +17 -16
- package/dist/llms/rules/installation.js +1 -1
- package/dist/llms/rules/requirements.js +1 -1
- package/package.json +1 -1
|
@@ -2,34 +2,34 @@ import { jsx as u, jsxs as T } from "react/jsx-runtime";
|
|
|
2
2
|
import * as l from "react";
|
|
3
3
|
import { Cross as Me, CalendarMonth as Ge } from "impact-nova-icons";
|
|
4
4
|
import { format as g } from "date-fns";
|
|
5
|
-
import { cn as
|
|
6
|
-
import { usePickerDismissActionsRef as Je, usePickerFooterDismissNudge as Qe, createRangePickerOpenChangeHandler as Ue, parseDateInput as
|
|
7
|
-
import { useFieldChrome as
|
|
8
|
-
import { Popover as
|
|
9
|
-
import { Calendar as
|
|
10
|
-
import { buildDateBoundsMatcher as
|
|
11
|
-
import { Tooltip as
|
|
12
|
-
import { resolveWeekSelection as
|
|
13
|
-
import { useImpactNovaI18n as
|
|
14
|
-
import { getDateFnsLocale as
|
|
15
|
-
import { coerceWeekRangeApply as
|
|
5
|
+
import { cn as J } from "../../../lib/utils.js";
|
|
6
|
+
import { usePickerDismissActionsRef as Je, usePickerFooterDismissNudge as Qe, createRangePickerOpenChangeHandler as Ue, parseDateInput as Q, normalizeOrderedRange as Xe, compareDates as Ze, flashRangeReorder as _e, isDateInputInvalid as se, resolveRangeFieldBlur as V, resolveRangePickerDismissFlash as $e, handlePickerSurfacePointerDown as Ye, deferRangeInputBlur as Fe, maskDateInput as ie, resolveDateInputOnBlur as O } from "./date-input-behavior.js";
|
|
7
|
+
import { useFieldChrome as et } from "../../../lib/primitives/use-field-chrome.js";
|
|
8
|
+
import { Popover as tt, PopoverAnchor as rt, PopoverContent as nt } from "../../feedback/popover/popover.js";
|
|
9
|
+
import { Calendar as ot } from "../../data-display/calendar/calendar.js";
|
|
10
|
+
import { buildDateBoundsMatcher as st } from "../../../lib/date-bounds-matcher.js";
|
|
11
|
+
import { Tooltip as le, TooltipTrigger as ae, TooltipContent as ce } from "../../feedback/tooltip/tooltip.js";
|
|
12
|
+
import { resolveWeekSelection as it } from "../../../lib/fiscal-calendar.js";
|
|
13
|
+
import { useImpactNovaI18n as lt } from "../../../i18n/use-impact-nova-i18n.js";
|
|
14
|
+
import { getDateFnsLocale as at } from "../../../i18n/getDateFnsLocale.js";
|
|
15
|
+
import { coerceWeekRangeApply as ct, isWeekRangeSelection as ft } from "./calendar-selection-adapters.js";
|
|
16
16
|
const x = (t) => t?.from ? t.to ? t.to.endDate : t.from.endDate : void 0, S = (t) => t?.from ? { from: t.from, to: t.to } : void 0;
|
|
17
|
-
function
|
|
17
|
+
function fe(t, a) {
|
|
18
18
|
return !t && !a ? !0 : !t || !a ? !1 : t.startDate.getTime() === a.startDate.getTime();
|
|
19
19
|
}
|
|
20
|
-
function
|
|
21
|
-
return !t && !a ? !0 : !t || !a ? !1 :
|
|
20
|
+
function dt(t, a) {
|
|
21
|
+
return !t && !a ? !0 : !t || !a ? !1 : fe(t.from, a.from) && fe(t.to, a.to);
|
|
22
22
|
}
|
|
23
|
-
const
|
|
23
|
+
const pt = l.forwardRef(
|
|
24
24
|
({
|
|
25
25
|
value: t,
|
|
26
26
|
onChange: a,
|
|
27
27
|
format: o = "MM/dd/yyyy",
|
|
28
|
-
placeholder:
|
|
29
|
-
minDate:
|
|
30
|
-
maxDate:
|
|
31
|
-
startMonth:
|
|
32
|
-
endMonth:
|
|
28
|
+
placeholder: de,
|
|
29
|
+
minDate: pe,
|
|
30
|
+
maxDate: me,
|
|
31
|
+
startMonth: ue,
|
|
32
|
+
endMonth: ge,
|
|
33
33
|
showFooter: k = !0,
|
|
34
34
|
calendarType: L = "calendar",
|
|
35
35
|
fiscalMode: j = "basic",
|
|
@@ -38,29 +38,29 @@ const dt = l.forwardRef(
|
|
|
38
38
|
fiscalYearStartMonth: z = 1,
|
|
39
39
|
weekStartsOn: H = 1,
|
|
40
40
|
disabled: d,
|
|
41
|
-
className:
|
|
42
|
-
error:
|
|
43
|
-
isError:
|
|
44
|
-
size:
|
|
45
|
-
label:
|
|
46
|
-
helperText:
|
|
47
|
-
helperTextPosition:
|
|
48
|
-
required:
|
|
49
|
-
prefix:
|
|
50
|
-
prefixClick:
|
|
51
|
-
...
|
|
52
|
-
},
|
|
53
|
-
const
|
|
54
|
-
label:
|
|
55
|
-
helperText:
|
|
56
|
-
helperTextPosition:
|
|
57
|
-
error:
|
|
58
|
-
required:
|
|
41
|
+
className: ke,
|
|
42
|
+
error: Re,
|
|
43
|
+
isError: De,
|
|
44
|
+
size: U,
|
|
45
|
+
label: he,
|
|
46
|
+
helperText: ye,
|
|
47
|
+
helperTextPosition: ve = "absolute",
|
|
48
|
+
required: xe,
|
|
49
|
+
prefix: mt,
|
|
50
|
+
prefixClick: ut,
|
|
51
|
+
...be
|
|
52
|
+
}, Ce) => {
|
|
53
|
+
const X = Re ?? De, we = et({
|
|
54
|
+
label: he,
|
|
55
|
+
helperText: ye,
|
|
56
|
+
helperTextPosition: ve,
|
|
57
|
+
error: X,
|
|
58
|
+
required: xe,
|
|
59
59
|
disabled: d ?? void 0,
|
|
60
60
|
rootClassName: "w-full min-w-[240px]"
|
|
61
|
-
}), { locale:
|
|
62
|
-
l.useImperativeHandle(
|
|
63
|
-
const [p, R] = l.useState(!1),
|
|
61
|
+
}), { locale: Z, t: E } = lt(), s = l.useMemo(() => at(Z), [Z]), _ = de ?? E("datePicker.selectWeekRange"), M = l.useRef(null), $ = l.useRef(null), Y = l.useRef(null), N = l.useRef(null), G = l.useRef(null);
|
|
62
|
+
l.useImperativeHandle(Ce, () => M.current);
|
|
63
|
+
const [p, R] = l.useState(!1), F = Je(), { footerFlashKey: Ie, footerFlashTarget: Ee, popoverHandlers: Pe } = Qe(k, p, F, Y), P = l.useRef(!1), [c, D] = l.useState(t), [m, h] = l.useState(t?.from ? g(t.from.startDate, o, { locale: s }) : ""), [y, v] = l.useState(x(t) ? g(x(t), o, { locale: s }) : ""), [We, W] = l.useState(t?.from?.startDate || /* @__PURE__ */ new Date());
|
|
64
64
|
l.useEffect(() => {
|
|
65
65
|
h(t?.from ? g(t.from.startDate, o, { locale: s }) : ""), v(x(t) ? g(x(t), o, { locale: s }) : ""), D(t);
|
|
66
66
|
}, [t, o, s]);
|
|
@@ -69,23 +69,23 @@ const dt = l.forwardRef(
|
|
|
69
69
|
disabled: d ?? void 0,
|
|
70
70
|
showFooter: k,
|
|
71
71
|
containerRef: N,
|
|
72
|
-
popoverContentRef:
|
|
72
|
+
popoverContentRef: G,
|
|
73
73
|
setOpen: R
|
|
74
74
|
})(e),
|
|
75
75
|
[d, k]
|
|
76
|
-
),
|
|
76
|
+
), ee = l.useRef(!1);
|
|
77
77
|
l.useEffect(() => {
|
|
78
|
-
if (p && !
|
|
79
|
-
const e =
|
|
80
|
-
e.parsed ?
|
|
78
|
+
if (p && !ee.current) {
|
|
79
|
+
const e = Q(m, o, s);
|
|
80
|
+
e.parsed ? W(e.parsed) : c?.from ? W(c.from.startDate) : t?.from && W(t.from.startDate);
|
|
81
81
|
}
|
|
82
|
-
|
|
82
|
+
ee.current = p;
|
|
83
83
|
}, [p, m, o, s, c?.from, t?.from]);
|
|
84
84
|
const Se = (e) => {
|
|
85
|
-
const r =
|
|
85
|
+
const r = ft(e) ? e : void 0;
|
|
86
86
|
D(r), r?.from ? (h(g(r.from.startDate, o, { locale: s })), v(g(x(r), o, { locale: s }))) : (h(""), v("")), !k && r?.from && r?.to && r.from.startDate.getTime() !== r.to.startDate.getTime() && (a?.(r), R(!1));
|
|
87
87
|
}, b = l.useCallback(
|
|
88
|
-
(e) =>
|
|
88
|
+
(e) => it(e, {
|
|
89
89
|
calendarType: L,
|
|
90
90
|
fiscalMode: j,
|
|
91
91
|
selectionMode: K,
|
|
@@ -108,60 +108,60 @@ const dt = l.forwardRef(
|
|
|
108
108
|
(i, f) => Ze(i.startDate, f.startDate)
|
|
109
109
|
);
|
|
110
110
|
return n.swapped && (n.from && h(g(n.from.startDate, o, { locale: s })), n.to && v(g(x({ from: n.from, to: n.to }), o, { locale: s })), _e(N.current)), { from: n.from, to: n.to };
|
|
111
|
-
}, [o, s]),
|
|
112
|
-
const r =
|
|
111
|
+
}, [o, s]), te = (e) => {
|
|
112
|
+
const r = ct(e, S(c)), n = B(r?.from, r?.to), i = n.from ? { from: n.from, to: n.to } : void 0;
|
|
113
113
|
D(i), a?.(i), R(!1);
|
|
114
114
|
}, A = () => {
|
|
115
115
|
D(t), h(t?.from ? g(t.from.startDate, o, { locale: s }) : ""), v(x(t) ? g(x(t), o, { locale: s }) : ""), R(!1);
|
|
116
|
-
},
|
|
116
|
+
}, re = () => {
|
|
117
117
|
D(void 0), h(""), v(""), a?.(void 0), k || R(!1);
|
|
118
118
|
}, Be = (e) => {
|
|
119
|
-
const r =
|
|
119
|
+
const r = ie(e.target.value, o, m);
|
|
120
120
|
if (h(r), r === "") {
|
|
121
121
|
const f = { to: c?.to };
|
|
122
122
|
D(f), k || a?.(void 0);
|
|
123
123
|
return;
|
|
124
124
|
}
|
|
125
|
-
const { parsed: n, isValid: i } =
|
|
125
|
+
const { parsed: n, isValid: i } = Q(r, o, s);
|
|
126
126
|
if (i && n) {
|
|
127
|
-
const
|
|
128
|
-
D(
|
|
127
|
+
const I = { from: b(n), to: c?.to };
|
|
128
|
+
D(I), c?.to && v(g(x(I), o, { locale: s })), W(n), k || a?.(S(I));
|
|
129
129
|
}
|
|
130
130
|
}, Ne = (e) => {
|
|
131
|
-
const r =
|
|
131
|
+
const r = ie(e.target.value, o, y);
|
|
132
132
|
if (v(r), r === "") {
|
|
133
133
|
const f = { from: c?.from };
|
|
134
134
|
D(f), k || a?.(S(f));
|
|
135
135
|
return;
|
|
136
136
|
}
|
|
137
|
-
const { parsed: n, isValid: i } =
|
|
137
|
+
const { parsed: n, isValid: i } = Q(r, o, s);
|
|
138
138
|
if (i && n) {
|
|
139
|
-
const f = b(n),
|
|
140
|
-
D(
|
|
139
|
+
const f = b(n), I = { from: c?.from, to: f };
|
|
140
|
+
D(I), c?.from && h(g(c.from.startDate, o, { locale: s })), W(n), k || a?.(S(I));
|
|
141
141
|
}
|
|
142
142
|
}, Ae = () => {
|
|
143
|
-
const e = O(m, o, C, s), r = O(y, o,
|
|
144
|
-
e.resetToCommitted ? h(C) : e.parsed && h(e.display), r.resetToCommitted ? v(
|
|
143
|
+
const e = O(m, o, C, s), r = O(y, o, w, s);
|
|
144
|
+
e.resetToCommitted ? h(C) : e.parsed && h(e.display), r.resetToCommitted ? v(w) : r.parsed && v(r.display);
|
|
145
145
|
let n = e.parsed ? b(e.parsed) : c?.from, i = r.parsed ? b(r.parsed) : c?.to;
|
|
146
146
|
n && i && ({ from: n, to: i } = B(n, i));
|
|
147
147
|
const f = n ? { from: n, to: i } : void 0;
|
|
148
148
|
f ? (D(f), a?.(f)) : !m && !y && (D(void 0), a?.(void 0));
|
|
149
|
-
},
|
|
150
|
-
|
|
149
|
+
}, ne = () => {
|
|
150
|
+
Fe(
|
|
151
151
|
N,
|
|
152
|
-
|
|
152
|
+
G,
|
|
153
153
|
() => {
|
|
154
|
-
const e = V(m, o, C, s), r = V(y, o,
|
|
155
|
-
e.resetToCommitted ? h(C) : e.parsed && h(e.display), r.resetToCommitted ? v(
|
|
154
|
+
const e = V(m, o, C, s), r = V(y, o, w, s);
|
|
155
|
+
e.resetToCommitted ? h(C) : e.parsed && h(e.display), r.resetToCommitted ? v(w) : r.parsed && v(r.display);
|
|
156
156
|
let n = e.parsed ? b(e.parsed) : e.resetToCommitted ? t?.from : c?.from, i = r.parsed ? b(r.parsed) : r.resetToCommitted ? t?.to : c?.to;
|
|
157
157
|
n && i && ({ from: n, to: i } = B(n, i));
|
|
158
158
|
const f = n || i ? { from: n, to: i } : void 0;
|
|
159
159
|
D(f), k || (f ? a?.(f) : !m && !y && a?.(void 0));
|
|
160
160
|
}
|
|
161
161
|
);
|
|
162
|
-
},
|
|
162
|
+
}, oe = () => {
|
|
163
163
|
if (p && k) {
|
|
164
|
-
|
|
164
|
+
te();
|
|
165
165
|
return;
|
|
166
166
|
}
|
|
167
167
|
if (!p) {
|
|
@@ -169,12 +169,12 @@ const dt = l.forwardRef(
|
|
|
169
169
|
Ae();
|
|
170
170
|
return;
|
|
171
171
|
}
|
|
172
|
-
const e = O(m, o, C, s), r = O(y, o,
|
|
172
|
+
const e = O(m, o, C, s), r = O(y, o, w, s);
|
|
173
173
|
if (e.parsed || r.parsed) return;
|
|
174
|
-
|
|
174
|
+
P.current = !0, R(!0);
|
|
175
175
|
}
|
|
176
|
-
}, C = t?.from ? g(t.from.startDate, o, { locale: s }) : "",
|
|
177
|
-
const e = V(m, o, C, s), r = V(y, o,
|
|
176
|
+
}, C = t?.from ? g(t.from.startDate, o, { locale: s }) : "", w = x(t) ? g(x(t), o, { locale: s }) : "", Ve = C !== m, Oe = w !== y, Le = se(m, o, s), je = se(y, o, s), Ke = "Start Date", qe = "End Date", ze = l.useCallback(() => {
|
|
177
|
+
const e = V(m, o, C, s), r = V(y, o, w, s);
|
|
178
178
|
let n = e.parsed ? b(e.parsed) : e.resetToCommitted ? t?.from : c?.from, i = r.parsed ? b(r.parsed) : r.resetToCommitted ? t?.to : c?.to;
|
|
179
179
|
n && i && ({ from: n, to: i } = B(n, i));
|
|
180
180
|
const f = n || i ? { from: n, to: i } : void 0;
|
|
@@ -182,17 +182,17 @@ const dt = l.forwardRef(
|
|
|
182
182
|
startInput: m,
|
|
183
183
|
endInput: y,
|
|
184
184
|
committedStart: C,
|
|
185
|
-
committedEnd:
|
|
185
|
+
committedEnd: w,
|
|
186
186
|
committedRange: t,
|
|
187
187
|
pendingRange: S(c),
|
|
188
188
|
computeEffectiveRange: () => f,
|
|
189
|
-
rangesEqual: (
|
|
189
|
+
rangesEqual: (I, He) => dt(I, He)
|
|
190
190
|
});
|
|
191
191
|
}, [
|
|
192
192
|
m,
|
|
193
193
|
y,
|
|
194
194
|
C,
|
|
195
|
-
|
|
195
|
+
w,
|
|
196
196
|
t,
|
|
197
197
|
c,
|
|
198
198
|
o,
|
|
@@ -201,73 +201,81 @@ const dt = l.forwardRef(
|
|
|
201
201
|
b
|
|
202
202
|
]);
|
|
203
203
|
return l.useLayoutEffect(() => {
|
|
204
|
-
|
|
204
|
+
F.current = {
|
|
205
205
|
onDismiss: A,
|
|
206
206
|
resolveFlash: ze
|
|
207
207
|
};
|
|
208
208
|
}), /* @__PURE__ */ u(
|
|
209
209
|
"div",
|
|
210
210
|
{
|
|
211
|
-
ref:
|
|
211
|
+
ref: Y,
|
|
212
212
|
"data-component": "week-range-picker",
|
|
213
213
|
"data-disabled": d || void 0,
|
|
214
|
-
children:
|
|
215
|
-
/* @__PURE__ */ T(
|
|
216
|
-
/* @__PURE__ */ u(
|
|
214
|
+
children: we.wrapControl(
|
|
215
|
+
/* @__PURE__ */ T(tt, { open: d ? !1 : p, onOpenChange: Te, children: [
|
|
216
|
+
/* @__PURE__ */ u(rt, { asChild: !0, children: /* @__PURE__ */ T(
|
|
217
217
|
"div",
|
|
218
218
|
{
|
|
219
219
|
ref: N,
|
|
220
220
|
"data-state": p ? "open" : "closed",
|
|
221
|
-
|
|
221
|
+
onPointerDown: (e) => Ye({
|
|
222
|
+
disabled: d,
|
|
223
|
+
event: e,
|
|
224
|
+
onOpen: () => R(!0),
|
|
225
|
+
focusField: (r) => {
|
|
226
|
+
r === "end" ? $.current?.focus() : M.current?.focus();
|
|
227
|
+
}
|
|
228
|
+
}),
|
|
229
|
+
className: J(
|
|
222
230
|
"flex w-full items-center justify-between gap-2 rounded-md border bg-canvas-elevated px-3 text-sm shadow-sm transition-colors hover:border-brand disabled:cursor-not-allowed disabled:bg-disabled-surface disabled:text-disabled-foreground disabled:border-stroke",
|
|
223
|
-
|
|
224
|
-
|
|
231
|
+
X ? "border-destructive hover:border-destructive" : "border-field",
|
|
232
|
+
U === "sm" ? "h-6" : U === "md" ? "h-[28px]" : "h-8",
|
|
225
233
|
d && "pointer-events-none opacity-100 bg-disabled-surface border-stroke text-disabled-foreground hover:border-stroke",
|
|
226
234
|
"cursor-pointer",
|
|
227
|
-
|
|
235
|
+
ke
|
|
228
236
|
),
|
|
229
237
|
children: [
|
|
230
238
|
/* @__PURE__ */ T("div", { className: "flex items-center gap-4 flex-1 min-w-0", children: [
|
|
231
239
|
/* @__PURE__ */ u(
|
|
232
240
|
"input",
|
|
233
241
|
{
|
|
234
|
-
ref:
|
|
242
|
+
ref: M,
|
|
235
243
|
type: "text",
|
|
236
244
|
value: m,
|
|
237
245
|
onChange: Be,
|
|
238
|
-
onBlur:
|
|
246
|
+
onBlur: ne,
|
|
239
247
|
onClick: () => !d && R(!0),
|
|
240
248
|
onKeyDown: (e) => {
|
|
241
|
-
e.key === "Enter" && !d && (e.preventDefault(),
|
|
249
|
+
e.key === "Enter" && !d && (e.preventDefault(), oe()), e.key === "ArrowDown" && !p && !d && (e.preventDefault(), P.current = !0, R(!0)), e.key === "Escape" && p && (e.preventDefault(), A());
|
|
242
250
|
},
|
|
243
|
-
placeholder: p ? o :
|
|
251
|
+
placeholder: p ? o : _,
|
|
244
252
|
disabled: !!d,
|
|
245
253
|
"aria-label": Ke,
|
|
246
254
|
"data-field": "start",
|
|
247
|
-
className:
|
|
255
|
+
className: J(
|
|
248
256
|
"flex-1 min-w-0 bg-transparent p-0 text-sm font-medium outline-none placeholder:font-medium placeholder:text-content-empty disabled:cursor-not-allowed disabled:opacity-50",
|
|
249
257
|
Le ? "text-destructive" : Ve ? "text-content-placeholder" : ""
|
|
250
258
|
),
|
|
251
|
-
...
|
|
259
|
+
...be
|
|
252
260
|
}
|
|
253
261
|
),
|
|
254
262
|
/* @__PURE__ */ u(
|
|
255
263
|
"input",
|
|
256
264
|
{
|
|
257
|
-
ref:
|
|
265
|
+
ref: $,
|
|
258
266
|
type: "text",
|
|
259
267
|
value: y,
|
|
260
268
|
onChange: Ne,
|
|
261
|
-
onBlur:
|
|
269
|
+
onBlur: ne,
|
|
262
270
|
onClick: () => !d && R(!0),
|
|
263
271
|
onKeyDown: (e) => {
|
|
264
|
-
e.key === "Enter" && !d && (e.preventDefault(),
|
|
272
|
+
e.key === "Enter" && !d && (e.preventDefault(), oe()), e.key === "ArrowDown" && !p && !d && (e.preventDefault(), P.current = !0, R(!0)), e.key === "Escape" && p && (e.preventDefault(), A());
|
|
265
273
|
},
|
|
266
|
-
placeholder: p ? o :
|
|
274
|
+
placeholder: p ? o : _,
|
|
267
275
|
disabled: !!d,
|
|
268
276
|
"aria-label": qe,
|
|
269
277
|
"data-field": "end",
|
|
270
|
-
className:
|
|
278
|
+
className: J(
|
|
271
279
|
"flex-1 min-w-0 bg-transparent p-0 text-sm font-medium outline-none placeholder:font-medium placeholder:text-content-empty disabled:cursor-not-allowed disabled:opacity-50",
|
|
272
280
|
je ? "text-destructive" : Oe ? "text-content-placeholder" : ""
|
|
273
281
|
)
|
|
@@ -275,59 +283,59 @@ const dt = l.forwardRef(
|
|
|
275
283
|
)
|
|
276
284
|
] }),
|
|
277
285
|
/* @__PURE__ */ T("div", { className: "flex items-center gap-1 shrink-0", children: [
|
|
278
|
-
t?.from && !d && /* @__PURE__ */ T(
|
|
279
|
-
/* @__PURE__ */ u(
|
|
286
|
+
t?.from && !d && /* @__PURE__ */ T(le, { children: [
|
|
287
|
+
/* @__PURE__ */ u(ae, { asChild: !0, children: /* @__PURE__ */ u(
|
|
280
288
|
"button",
|
|
281
289
|
{
|
|
282
290
|
type: "button",
|
|
283
291
|
tabIndex: 0,
|
|
284
292
|
"aria-label": E("calendar.clear"),
|
|
285
293
|
onClick: (e) => {
|
|
286
|
-
e.stopPropagation(),
|
|
294
|
+
e.stopPropagation(), re();
|
|
287
295
|
},
|
|
288
296
|
className: "inline-flex size-4 items-center justify-center bg-transparent border-none p-0 cursor-pointer",
|
|
289
297
|
children: /* @__PURE__ */ u(Me, { className: "size-3 hover:text-content text-content-icon" })
|
|
290
298
|
}
|
|
291
299
|
) }),
|
|
292
|
-
/* @__PURE__ */ u(
|
|
300
|
+
/* @__PURE__ */ u(ce, { variant: "tertiary", side: "top", children: E("calendar.clear") })
|
|
293
301
|
] }),
|
|
294
|
-
/* @__PURE__ */ T(
|
|
295
|
-
/* @__PURE__ */ u(
|
|
302
|
+
/* @__PURE__ */ T(le, { children: [
|
|
303
|
+
/* @__PURE__ */ u(ae, { asChild: !0, children: /* @__PURE__ */ u("button", { type: "button", tabIndex: 0, "aria-label": E("datePicker.selectWeekRange"), onClick: (e) => {
|
|
296
304
|
e.stopPropagation(), d || R(!p);
|
|
297
305
|
}, onKeyDown: (e) => {
|
|
298
|
-
(e.key === "Enter" || e.key === " ") && (e.preventDefault(), e.stopPropagation(), d || (
|
|
306
|
+
(e.key === "Enter" || e.key === " ") && (e.preventDefault(), e.stopPropagation(), d || (P.current = !0, R(!p)));
|
|
299
307
|
}, className: "inline-flex items-center justify-center bg-transparent border-none p-0 cursor-pointer", children: /* @__PURE__ */ u(Ge, { className: "h-4 w-4 text-secondary-foreground" }) }) }),
|
|
300
|
-
/* @__PURE__ */ u(
|
|
308
|
+
/* @__PURE__ */ u(ce, { variant: "tertiary", side: "top", children: E("datePicker.selectWeekRange") })
|
|
301
309
|
] })
|
|
302
310
|
] })
|
|
303
311
|
]
|
|
304
312
|
}
|
|
305
313
|
) }),
|
|
306
314
|
/* @__PURE__ */ u(
|
|
307
|
-
|
|
315
|
+
nt,
|
|
308
316
|
{
|
|
309
|
-
ref:
|
|
317
|
+
ref: G,
|
|
310
318
|
className: "w-auto p-0",
|
|
311
319
|
align: "start",
|
|
312
320
|
"aria-label": E("datePicker.selectWeekRange"),
|
|
313
321
|
onOpenAutoFocus: (e) => {
|
|
314
|
-
|
|
322
|
+
P.current || e.preventDefault(), P.current = !1;
|
|
315
323
|
},
|
|
316
|
-
...
|
|
324
|
+
...Pe,
|
|
317
325
|
children: /* @__PURE__ */ u(
|
|
318
|
-
|
|
326
|
+
ot,
|
|
319
327
|
{
|
|
320
328
|
pickerType: "week",
|
|
321
329
|
weekMode: "range",
|
|
322
330
|
selectedWeeks: S(c),
|
|
323
|
-
footerFlashKey:
|
|
331
|
+
footerFlashKey: Ie,
|
|
324
332
|
footerFlashTarget: Ee,
|
|
325
333
|
onWeekSelect: Se,
|
|
326
|
-
month:
|
|
327
|
-
onMonthChange:
|
|
328
|
-
disabled:
|
|
329
|
-
startMonth:
|
|
330
|
-
endMonth:
|
|
334
|
+
month: We,
|
|
335
|
+
onMonthChange: W,
|
|
336
|
+
disabled: st(pe, me),
|
|
337
|
+
startMonth: ue,
|
|
338
|
+
endMonth: ge,
|
|
331
339
|
showFooter: k,
|
|
332
340
|
calendarType: L,
|
|
333
341
|
fiscalMode: j,
|
|
@@ -335,9 +343,9 @@ const dt = l.forwardRef(
|
|
|
335
343
|
fiscalMonthPattern: q,
|
|
336
344
|
fiscalYearStartMonth: z,
|
|
337
345
|
weekStartsOn: H,
|
|
338
|
-
onApply:
|
|
346
|
+
onApply: te,
|
|
339
347
|
onCancel: A,
|
|
340
|
-
onClear:
|
|
348
|
+
onClear: re,
|
|
341
349
|
captionLayout: "dropdown"
|
|
342
350
|
}
|
|
343
351
|
)
|
|
@@ -349,7 +357,7 @@ const dt = l.forwardRef(
|
|
|
349
357
|
);
|
|
350
358
|
}
|
|
351
359
|
);
|
|
352
|
-
|
|
360
|
+
pt.displayName = "WeekRangePicker";
|
|
353
361
|
export {
|
|
354
|
-
|
|
362
|
+
pt as WeekRangePicker
|
|
355
363
|
};
|
|
@@ -190,12 +190,16 @@
|
|
|
190
190
|
overflow: visible !important;
|
|
191
191
|
}
|
|
192
192
|
|
|
193
|
-
/* Prevent focus ring clipping on
|
|
194
|
-
[data-component="statistics-card"]:has(:focus-visible)
|
|
195
|
-
[data-component="card"]:has(:focus-visible) {
|
|
193
|
+
/* Prevent focus ring clipping on KPI cards (no internal scroll surface). */
|
|
194
|
+
[data-component="statistics-card"]:has(:focus-visible) {
|
|
196
195
|
overflow: visible !important;
|
|
197
196
|
}
|
|
198
197
|
|
|
198
|
+
/* Inset focus ring for card footer actions inside overflow-hidden cards. */
|
|
199
|
+
[data-component="card"] [data-component="card-footer"] button:focus-visible {
|
|
200
|
+
outline-offset: -2px !important;
|
|
201
|
+
}
|
|
202
|
+
|
|
199
203
|
/* Prevent focus ring clipping on tabs list - use overflow visible only */
|
|
200
204
|
[data-tabs="list"]:has(:focus-visible) {
|
|
201
205
|
overflow: visible !important;
|
|
@@ -208,11 +212,12 @@
|
|
|
208
212
|
}
|
|
209
213
|
|
|
210
214
|
/* Generic rule for containers that might clip focus rings.
|
|
211
|
-
Scroll
|
|
215
|
+
Scroll surfaces and their ancestors are excluded so focus does not break overflow containment. */
|
|
212
216
|
[data-component]:has(:focus-visible):not(
|
|
217
|
+
[data-scroll-surface],
|
|
213
218
|
[data-component="filter-panel-body"],
|
|
214
219
|
[data-component="sheet-content"]
|
|
215
|
-
) {
|
|
220
|
+
):not(:has([data-scroll-surface])) {
|
|
216
221
|
overflow: visible !important;
|
|
217
222
|
}
|
|
218
223
|
|
|
@@ -158,9 +158,10 @@
|
|
|
158
158
|
|
|
159
159
|
/* ponytail: Quartz theme sets transition:all on header cells. Column virtualization updates
|
|
160
160
|
`left` every horizontal-scroll frame — transitioning `all` makes headers lag behind the body.
|
|
161
|
-
Preserve AG Grid's column-move
|
|
162
|
-
|
|
163
|
-
.ag-root-wrapper:not(.ag-column-moving)
|
|
161
|
+
Preserve AG Grid's column-move animations via :not(.ag-column-moving); still kill autosize
|
|
162
|
+
width transitions on headers so min-height sheet open does not fade header labels. */
|
|
163
|
+
.ag-root-wrapper:not(.ag-column-moving) .ag-header-cell,
|
|
164
|
+
.ag-root-wrapper:not(.ag-column-moving) .ag-header-group-cell {
|
|
164
165
|
transition: none;
|
|
165
166
|
}
|
|
166
167
|
|
|
@@ -174,7 +175,8 @@
|
|
|
174
175
|
background-color: var(--ag-header-background-color);
|
|
175
176
|
}
|
|
176
177
|
|
|
177
|
-
/* Pinned column depth — header: boundary cell.
|
|
178
|
+
/* Pinned column depth — left header: boundary leaf cell. Right header/body: row container
|
|
179
|
+
(AG Grid v36 nests group headers inside .ag-grid-container-wrapper, not as direct children). */
|
|
178
180
|
.ag-header-cell-last-left-pinned {
|
|
179
181
|
box-shadow: 1px 0px 12px 0px color-mix(in srgb, var(--color-primary) 12%, transparent);
|
|
180
182
|
clip-path: inset(0 -12px 0 0);
|
|
@@ -187,7 +189,9 @@
|
|
|
187
189
|
z-index: 2;
|
|
188
190
|
}
|
|
189
191
|
|
|
190
|
-
.ag-header-cell-first-right-pinned
|
|
192
|
+
.ag-header-cell-first-right-pinned,
|
|
193
|
+
.ag-header-row > .ag-grid-pinned-right-cells .ag-header-group-cell {
|
|
194
|
+
border-left: var(--ag-pinned-column-border);
|
|
191
195
|
box-shadow: -1px 0px 12px 0px color-mix(in srgb, var(--color-primary) 12%, transparent);
|
|
192
196
|
clip-path: inset(0 0 0 -12px);
|
|
193
197
|
z-index: 2;
|