impact-nova 2.5.13 → 2.5.14
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/build-column-tree-from-grid.d.ts +0 -1
- package/dist/components/data/data-table/build-column-tree-from-grid.js +50 -55
- package/dist/components/data/data-table/data-table-column-apply.d.ts +0 -2
- package/dist/components/data/data-table/data-table-column-apply.js +73 -84
- package/dist/components/data/data-table/data-table-column-list.js +64 -94
- package/dist/components/data/data-table/data-table-column-tree-cache.d.ts +6 -12
- package/dist/components/data/data-table/data-table-column-tree-cache.js +131 -250
- package/dist/components/data/data-table/patch-column-tree-indicators-from-grid.d.ts +0 -5
- package/dist/components/data/data-table/patch-column-tree-indicators-from-grid.js +11 -28
- package/dist/components/data/data-table/use-data-table-column-list-sync.d.ts +0 -10
- package/dist/components/data/data-table/use-data-table-column-list-sync.js +196 -250
- package/dist/components/data/expandable-list-item/expandable-list-item-attributes.js +3 -2
- package/dist/components/data/expandable-list-item/expandable-list-item-metrics.js +3 -2
- package/dist/components/data/nested-list/components/NestedListContent.d.ts +2 -10
- package/dist/components/data/nested-list/components/NestedListContent.js +138 -253
- package/dist/components/data/nested-list/components/SortableItem.d.ts +1 -2
- package/dist/components/data/nested-list/components/SortableItem.js +60 -62
- package/dist/components/data/nested-list/hooks/useNestedListDragDrop.d.ts +20 -10
- package/dist/components/data/nested-list/hooks/useNestedListDragDrop.js +233 -44
- package/dist/components/data/nested-list/nested-list-constants.d.ts +1 -4
- package/dist/components/data/nested-list/nested-list-constants.js +4 -10
- package/dist/components/data/nested-list/nested-list.js +336 -322
- package/dist/components/data/nested-list/nested-list.types.d.ts +0 -17
- package/dist/components/data-display/calendar/calendar-apply-validation.d.ts +2 -0
- package/dist/components/data-display/calendar/calendar-apply-validation.js +64 -67
- package/dist/components/data-display/calendar/calendar-available-view.d.ts +27 -0
- package/dist/components/data-display/calendar/calendar-available-view.js +85 -0
- package/dist/components/data-display/calendar/calendar-config.js +1 -1
- package/dist/components/data-display/calendar/calendar-day-picker-components.d.ts +4 -2
- package/dist/components/data-display/calendar/calendar-day-picker-components.js +234 -164
- package/dist/components/data-display/calendar/calendar-day-picker-view.js +77 -76
- package/dist/components/data-display/calendar/calendar-fiscal-day-cell.d.ts +9 -0
- package/dist/components/data-display/calendar/calendar-fiscal-day-cell.js +45 -0
- package/dist/components/data-display/calendar/calendar-fiscal-period-nav.d.ts +6 -0
- package/dist/components/data-display/calendar/calendar-fiscal-period-nav.js +34 -18
- package/dist/components/data-display/calendar/calendar-footer.js +21 -21
- package/dist/components/data-display/calendar/calendar-injected-week-row.d.ts +5 -0
- package/dist/components/data-display/calendar/calendar-injected-week-row.js +92 -0
- package/dist/components/data-display/calendar/calendar-leading-week.utils.d.ts +16 -0
- package/dist/components/data-display/calendar/calendar-leading-week.utils.js +51 -0
- package/dist/components/data-display/calendar/calendar-month-picker-panel.js +50 -49
- package/dist/components/data-display/calendar/calendar-month-utils.d.ts +5 -0
- package/dist/components/data-display/calendar/calendar-month-utils.js +85 -64
- package/dist/components/data-display/calendar/calendar-orphan-week.d.ts +23 -0
- package/dist/components/data-display/calendar/calendar-padding-week.utils.d.ts +3 -1
- package/dist/components/data-display/calendar/calendar-padding-week.utils.js +7 -5
- package/dist/components/data-display/calendar/calendar-period-cell.js +45 -46
- package/dist/components/data-display/calendar/calendar-quarter-panes.js +33 -31
- package/dist/components/data-display/calendar/calendar-selection-appearance.d.ts +10 -0
- package/dist/components/data-display/calendar/calendar-selection-appearance.js +53 -39
- package/dist/components/data-display/calendar/calendar-selection.d.ts +25 -0
- package/dist/components/data-display/calendar/calendar-selection.js +52 -23
- 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 +59 -45
- package/dist/components/data-display/calendar/calendar-week-utils.d.ts +15 -4
- package/dist/components/data-display/calendar/calendar-week-utils.js +59 -50
- package/dist/components/data-display/calendar/calendar-year-panes.d.ts +3 -0
- package/dist/components/data-display/calendar/calendar-year-panes.js +53 -49
- package/dist/components/data-display/calendar/calendar.js +146 -143
- package/dist/components/data-display/calendar/calendar.types.d.ts +5 -0
- package/dist/components/data-display/calendar/use-calendar-day-picker-config.d.ts +2 -1
- package/dist/components/data-display/calendar/use-calendar-day-picker-config.js +79 -74
- package/dist/components/data-display/calendar/use-calendar-state.d.ts +3 -1
- package/dist/components/data-display/calendar/use-calendar-state.js +394 -314
- package/dist/components/feedback/tooltip/tab-tooltip-render.js +3 -2
- 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/date-picker.js +60 -58
- package/dist/components/forms/date-picker/date-picker.types.d.ts +5 -0
- package/dist/components/forms/date-picker/date-range-picker.js +66 -64
- package/dist/components/forms/date-picker/fiscal-pass-through.d.ts +1 -0
- package/dist/components/forms/date-picker/fiscal-pass-through.js +3 -2
- package/dist/components/forms/date-picker/fiscal-picker-fixtures.d.ts +17 -0
- package/dist/components/forms/date-picker/month-picker.js +61 -59
- package/dist/components/forms/date-picker/month-range-picker.js +63 -61
- 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 +51 -47
- package/dist/components/forms/date-picker/multi-week-picker.js +53 -51
- package/dist/components/forms/date-picker/multi-year-picker.js +53 -49
- package/dist/components/forms/date-picker/quarter-picker.js +51 -47
- package/dist/components/forms/date-picker/quarter-range-picker.js +50 -46
- package/dist/components/forms/date-picker/week-picker.js +130 -126
- package/dist/components/forms/date-picker/week-range-picker.js +159 -155
- package/dist/components/forms/date-picker/year-picker.js +52 -48
- package/dist/components/forms/date-picker/year-range-picker.js +52 -48
- package/dist/components/forms/select/components/SelectTriggerValue.js +3 -2
- package/dist/components/forms/select/components/Submenu.js +3 -2
- package/dist/form-react/Fields/DateInputField.js +51 -50
- package/dist/form-react/Fields/DateRangeField.js +14 -13
- package/dist/form-react/Fields/MonthRangeField.js +29 -28
- package/dist/form-react/Fields/MultiMonthPickerField.js +13 -12
- package/dist/form-react/Fields/MultiWeekPickerField.js +35 -27
- package/dist/form-react/Fields/MultiYearPickerField.d.ts +8 -0
- package/dist/form-react/Fields/MultiYearPickerField.js +57 -0
- package/dist/form-react/Fields/WeekRangePicker.js +33 -32
- package/dist/form-react/Fields/YearPickerField.d.ts +8 -0
- package/dist/form-react/Fields/YearPickerField.js +57 -0
- package/dist/form-react/Fields/YearRangePickerField.d.ts +8 -0
- package/dist/form-react/Fields/YearRangePickerField.js +57 -0
- package/dist/form-react/registry/defaultFieldRegistrations.d.ts +1 -1
- package/dist/form-react/registry/defaultFieldRegistrations.js +16 -13
- package/dist/form-react/types/fields.types.d.ts +69 -1
- package/dist/form-react/types/fieldsOutput.types.d.ts +8 -2
- package/dist/form-react/utils/fieldDefaults.utils.js +1 -1
- package/dist/impact-nova-components.css +13 -6
- package/dist/impact-nova.css +1 -1
- package/dist/lib/fiscal-calendar/index.d.ts +2 -2
- package/dist/lib/fiscal-calendar/index.js +26 -28
- package/dist/lib/fiscal-calendar/types.d.ts +0 -7
- package/dist/lib/fiscal-calendar/week-selection.d.ts +3 -4
- package/dist/lib/fiscal-calendar/week-selection.js +52 -79
- package/dist/llms/rules/ag-grid.js +1 -1
- package/dist/llms/rules/installation.js +1 -1
- package/dist/llms/rules/requirements.js +1 -1
- package/package.json +1 -1
- package/dist/components/data/data-table/column-picker-authority.d.ts +0 -34
- package/dist/components/data/data-table/column-picker-authority.js +0 -116
- package/dist/components/data/data-table/column-picker-drop-validation.d.ts +0 -7
- package/dist/components/data/data-table/column-picker-drop-validation.js +0 -37
- package/dist/components/data/data-table/data-table-column-list-tree-apply.d.ts +0 -10
- package/dist/components/data/data-table/data-table-column-list-tree-apply.js +0 -79
- package/dist/components/data/data-table/data-table-flat-column-virtual-rows.d.ts +0 -26
- package/dist/components/data/data-table/data-table-flat-column-virtual-rows.js +0 -195
- package/dist/components/data/data-table/data-table-picker-column-eligibility.d.ts +0 -1
- package/dist/components/data/data-table/data-table-picker-column-eligibility.js +0 -7
- package/dist/components/data/data-table/reconcile-column-tree-from-grid.d.ts +0 -12
- package/dist/components/data/data-table/reconcile-column-tree-from-grid.js +0 -12
- package/dist/components/data/nested-list/hooks/useVirtualNestedListDrag.d.ts +0 -24
- package/dist/components/data/nested-list/hooks/useVirtualNestedListDrag.js +0 -128
- package/dist/components/data/nested-list/nested-list-display-utils.d.ts +0 -11
- package/dist/components/data/nested-list/nested-list-display-utils.js +0 -74
- package/dist/components/data/nested-list/nested-list-drop-engine.d.ts +0 -31
- package/dist/components/data/nested-list/nested-list-drop-engine.js +0 -209
- package/dist/components/data/nested-list/nested-list-flat-virtual-handlers.d.ts +0 -26
- package/dist/components/data/nested-list/nested-list-flat-virtual-handlers.js +0 -67
- package/dist/components/data/nested-list/nested-list-item-tree-mutations.d.ts +0 -4
- package/dist/components/data/nested-list/nested-list-item-tree-mutations.js +0 -43
- package/dist/components/data/nested-list/nested-list-lazy-flat-rows.d.ts +0 -3
- package/dist/components/data/nested-list/nested-list-lazy-flat-rows.js +0 -34
- package/dist/components/data/nested-list/nested-list-row-estimates.d.ts +0 -9
- package/dist/components/data/nested-list/nested-list-row-estimates.js +0 -14
- package/dist/components/data/nested-list/nested-list-scroll-anchor.d.ts +0 -36
- package/dist/components/data/nested-list/nested-list-scroll-anchor.js +0 -47
- package/dist/components/data/nested-list/nested-list-virtual-drop.d.ts +0 -59
- package/dist/components/data/nested-list/nested-list-virtual-drop.js +0 -341
- package/dist/lib/hash/fnv1a128.d.ts +0 -16
- package/dist/lib/hash/fnv1a128.js +0 -21
|
@@ -1,28 +1,30 @@
|
|
|
1
1
|
import { jsxs as s, jsx as i } from "react/jsx-runtime";
|
|
2
2
|
import { ChevronRight as p } from "impact-nova-icons";
|
|
3
|
+
import { cn as G } from "../../../lib/utils.js";
|
|
3
4
|
import { Button as u } from "../../primitives/button/button.js";
|
|
4
|
-
import { Select as
|
|
5
|
-
import { CalendarPeriodCell as
|
|
6
|
-
import {
|
|
7
|
-
|
|
5
|
+
import { Select as I } from "../../forms/select/select.js";
|
|
6
|
+
import { CalendarPeriodCell as T } from "./calendar-period-cell.js";
|
|
7
|
+
import { PERIOD_RANGE_GRID_CLASSNAME as q } from "./calendar-selection-appearance.js";
|
|
8
|
+
import { getQuarterRangeProps as L, isQuarterRangeSelection as W } from "./calendar-quarter-utils.js";
|
|
9
|
+
function X({
|
|
8
10
|
quarterMode: n,
|
|
9
11
|
pickerYear: g,
|
|
10
12
|
showFooter: h,
|
|
11
13
|
pendingQuarterSelection: v,
|
|
12
14
|
selectedQuarters: x,
|
|
13
|
-
resolvedStartYear:
|
|
14
|
-
resolvedEndYear:
|
|
15
|
+
resolvedStartYear: N,
|
|
16
|
+
resolvedEndYear: f,
|
|
15
17
|
yearOptions: d,
|
|
16
|
-
previousYearLabel:
|
|
17
|
-
nextYearLabel:
|
|
18
|
+
previousYearLabel: w,
|
|
19
|
+
nextYearLabel: b,
|
|
18
20
|
currentMonth: t,
|
|
19
21
|
quarterLabelsForYear: S,
|
|
20
|
-
isQuarterSelected:
|
|
21
|
-
isQuarterDisabled:
|
|
22
|
+
isQuarterSelected: C,
|
|
23
|
+
isQuarterDisabled: R,
|
|
22
24
|
onMonthChange: o,
|
|
23
|
-
onQuarterClick:
|
|
25
|
+
onQuarterClick: k
|
|
24
26
|
}) {
|
|
25
|
-
const c = h ? v : x,
|
|
27
|
+
const c = h ? v : x, z = n === "range" || n === "multiple" || n === "multi-range", m = (l = 0) => {
|
|
26
28
|
const e = g + l;
|
|
27
29
|
return /* @__PURE__ */ s(
|
|
28
30
|
"div",
|
|
@@ -37,14 +39,14 @@ function L({
|
|
|
37
39
|
variant: "ghost",
|
|
38
40
|
size: "icon",
|
|
39
41
|
className: "h-7 w-7 shrink-0",
|
|
40
|
-
"aria-label":
|
|
41
|
-
disabled: e <=
|
|
42
|
+
"aria-label": w,
|
|
43
|
+
disabled: e <= N,
|
|
42
44
|
onClick: () => o(new Date(e - 1, t.getMonth(), 1)),
|
|
43
45
|
children: /* @__PURE__ */ i(p, { size: 16, className: "rotate-180" })
|
|
44
46
|
}
|
|
45
47
|
) : /* @__PURE__ */ i("span", { className: "size-7 shrink-0", "aria-hidden": !0 }),
|
|
46
48
|
/* @__PURE__ */ i(
|
|
47
|
-
|
|
49
|
+
I,
|
|
48
50
|
{
|
|
49
51
|
value: d.find((a) => a.value === String(e)) ?? {
|
|
50
52
|
label: String(e),
|
|
@@ -66,32 +68,32 @@ function L({
|
|
|
66
68
|
variant: "ghost",
|
|
67
69
|
size: "icon",
|
|
68
70
|
className: "h-7 w-7",
|
|
69
|
-
"aria-label":
|
|
70
|
-
disabled: e >=
|
|
71
|
+
"aria-label": b,
|
|
72
|
+
disabled: e >= f,
|
|
71
73
|
onClick: () => o(new Date(e + 1, t.getMonth(), 1)),
|
|
72
74
|
children: /* @__PURE__ */ i(p, { className: "h-4 w-4" })
|
|
73
75
|
}
|
|
74
76
|
)
|
|
75
77
|
] }),
|
|
76
|
-
/* @__PURE__ */ i("div", { "data-period-grid": "", className: "grid
|
|
77
|
-
const r =
|
|
78
|
+
/* @__PURE__ */ i("div", { "data-period-grid": "", className: G(q, "grid-cols-2"), children: S(e).map((a, D) => {
|
|
79
|
+
const r = D + 1, E = C(e, r), P = R(e, r), j = n === "range", { isStart: A, isEnd: Q, isMiddle: _ } = L(
|
|
78
80
|
e,
|
|
79
81
|
r,
|
|
80
82
|
c
|
|
81
|
-
),
|
|
83
|
+
), B = W(c) && !!c.to;
|
|
82
84
|
return /* @__PURE__ */ i(
|
|
83
|
-
|
|
85
|
+
T,
|
|
84
86
|
{
|
|
85
|
-
selected:
|
|
86
|
-
disabled:
|
|
87
|
-
isRange:
|
|
88
|
-
isStart:
|
|
89
|
-
isEnd:
|
|
90
|
-
isMiddle:
|
|
91
|
-
hasRangeEnd: !!
|
|
87
|
+
selected: E,
|
|
88
|
+
disabled: P,
|
|
89
|
+
isRange: j,
|
|
90
|
+
isStart: A,
|
|
91
|
+
isEnd: Q,
|
|
92
|
+
isMiddle: _,
|
|
93
|
+
hasRangeEnd: !!B,
|
|
92
94
|
size: "quarter",
|
|
93
95
|
columns: 2,
|
|
94
|
-
onClick: () =>
|
|
96
|
+
onClick: () => k(e, r),
|
|
95
97
|
caption: a.caption,
|
|
96
98
|
children: a.label
|
|
97
99
|
},
|
|
@@ -104,12 +106,12 @@ function L({
|
|
|
104
106
|
};
|
|
105
107
|
return /* @__PURE__ */ s("div", { "data-slot": "quarter-panes", children: [
|
|
106
108
|
m(0),
|
|
107
|
-
|
|
109
|
+
z ? /* @__PURE__ */ s("div", { "data-slot": "quarter-pane-divider-group", children: [
|
|
108
110
|
/* @__PURE__ */ i("div", { className: "my-4 w-[1px] bg-stroke-hairline" }),
|
|
109
111
|
m(1)
|
|
110
112
|
] }) : null
|
|
111
113
|
] });
|
|
112
114
|
}
|
|
113
115
|
export {
|
|
114
|
-
|
|
116
|
+
X as CalendarQuarterPanes
|
|
115
117
|
};
|
|
@@ -22,6 +22,7 @@ export declare const previewCapStartCellClassName = "calendar-interval-cap-start
|
|
|
22
22
|
export declare const previewCapEndCellClassName = "calendar-interval-cap-end";
|
|
23
23
|
export declare const weekNumberTypeClassName = "text-[11px] font-medium text-content-icon";
|
|
24
24
|
export declare const weekNumberInteractiveClassName = "text-brand group-has-[.rdp-selected]/week:text-brand group-hover/week:text-brand";
|
|
25
|
+
export declare const weekNumberBlockedClassName = "cursor-not-allowed text-content-placeholder opacity-50 group-hover/week:text-content-placeholder group-has-[.rdp-selected]/week:text-content-placeholder";
|
|
25
26
|
export declare const weekNumberBaseClassName: string;
|
|
26
27
|
export declare const weekNumberSelectedFillClassName = "group-data-[week-selected]/week:bg-accent";
|
|
27
28
|
export declare const weekNumberFocusClassName = "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-focus-ring";
|
|
@@ -31,6 +32,15 @@ export declare const periodTileHoverClassName = "hover:border-brand hover:bg-acc
|
|
|
31
32
|
export declare const periodTileMiddleClassName = "text-accent-foreground";
|
|
32
33
|
export declare const periodTileDisabledClassName = "cursor-not-allowed text-content-placeholder opacity-50";
|
|
33
34
|
export declare const periodRangeTrackClassName = "bg-accent";
|
|
35
|
+
/** Flush cells like the day grid. Pills inset inside the cell; range track lives on the cell. */
|
|
36
|
+
export declare const PERIOD_RANGE_GRID_CLASSNAME = "grid min-w-0 gap-x-0 gap-y-4";
|
|
37
|
+
/** Same job as a 36px day button in a wider cell — keeps adjacent brand fills from fusing. */
|
|
38
|
+
export declare const periodTileInsetClassName = "mx-1 flex-1";
|
|
39
|
+
export declare function periodRangeTrackPositionClassName(params: {
|
|
40
|
+
isStart: boolean;
|
|
41
|
+
isEnd: boolean;
|
|
42
|
+
squareTile: boolean;
|
|
43
|
+
}): string;
|
|
34
44
|
export declare function dayButtonAppearanceClassName(kind: SelectionKind, pickerType: "date" | "week"): string;
|
|
35
45
|
export declare function periodTileAppearanceClassName(params: {
|
|
36
46
|
kind: SelectionKind;
|
|
@@ -1,72 +1,86 @@
|
|
|
1
1
|
import { cn as e } from "../../../lib/utils.js";
|
|
2
|
-
const l = "h-9 w-9 min-h-9 min-w-9",
|
|
2
|
+
const l = "h-9 w-9 min-h-9 min-w-9", k = "min-w-[292px]", d = "w-9 flex-shrink-0", a = "bg-accent", i = "bg-brand text-brand-foreground", c = "hover:bg-brand-strong hover:text-brand-foreground hover:border-transparent", s = "rounded-lg", u = "rounded-l-lg", p = "rounded-r-lg", m = e(
|
|
3
3
|
"flex items-center justify-center p-0 font-normal text-sm transition-colors",
|
|
4
4
|
"border border-transparent",
|
|
5
|
-
|
|
5
|
+
s,
|
|
6
6
|
"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-focus-ring",
|
|
7
7
|
"disabled:pointer-events-none",
|
|
8
8
|
l,
|
|
9
9
|
"rdp-day rdp-day_button"
|
|
10
|
-
),
|
|
10
|
+
), v = "hover:bg-accent hover:text-accent-foreground hover:border-transparent", b = "hover:bg-transparent hover:text-inherit hover:border-transparent", f = e(
|
|
11
11
|
i,
|
|
12
12
|
c,
|
|
13
|
-
|
|
13
|
+
s,
|
|
14
14
|
"border-transparent"
|
|
15
|
-
),
|
|
15
|
+
), N = "text-accent-foreground rounded-none border-transparent", R = e(
|
|
16
16
|
"group/day relative select-none p-0 text-center flex-1 flex items-center justify-center",
|
|
17
17
|
"h-9 [&:nth-child(2)]:pl-2 rdp-day"
|
|
18
|
-
),
|
|
18
|
+
), g = "calendar-interval-cap-start", S = e(a, "rounded-none"), C = "calendar-interval-cap-end", A = e(a, "rounded-none"), L = g, B = C, x = "text-[11px] font-medium text-content-icon", D = "text-brand group-has-[.rdp-selected]/week:text-brand group-hover/week:text-brand", O = "cursor-not-allowed text-content-placeholder opacity-50 group-hover/week:text-content-placeholder group-has-[.rdp-selected]/week:text-content-placeholder", P = e(
|
|
19
19
|
"select-none flex items-center justify-center",
|
|
20
|
-
|
|
20
|
+
x,
|
|
21
21
|
l,
|
|
22
22
|
d,
|
|
23
23
|
"rdp-week_number"
|
|
24
24
|
), H = "group-data-[week-selected]/week:bg-accent", M = "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-focus-ring", o = e(
|
|
25
25
|
"relative z-10 border border-transparent p-0 text-sm font-normal transition-colors",
|
|
26
|
-
|
|
26
|
+
s,
|
|
27
27
|
"focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-focus-ring focus-visible:ring-offset-0"
|
|
28
|
-
),
|
|
29
|
-
function
|
|
30
|
-
const
|
|
31
|
-
return
|
|
28
|
+
), h = e(i, c), w = "hover:border-brand hover:bg-accent hover:text-accent-foreground", T = "text-accent-foreground", E = "cursor-not-allowed text-content-placeholder opacity-50", U = a, F = "grid min-w-0 gap-x-0 gap-y-4", j = "mx-1 flex-1";
|
|
29
|
+
function G(t) {
|
|
30
|
+
const { isStart: n, isEnd: r } = t;
|
|
31
|
+
return n && r ? e("inset-x-2", s) : n ? e(
|
|
32
|
+
"left-1/2 right-0 -ml-5",
|
|
33
|
+
u
|
|
34
|
+
) : r ? e(
|
|
35
|
+
"right-1/2 left-0 -mr-5",
|
|
36
|
+
p
|
|
37
|
+
) : "inset-x-0";
|
|
32
38
|
}
|
|
33
|
-
function
|
|
34
|
-
const
|
|
35
|
-
return r ?
|
|
39
|
+
function W(t, n) {
|
|
40
|
+
const r = t === "point" || t === "interval-start" || t === "interval-end";
|
|
41
|
+
return e(m, r ? f : t === "interval-middle" ? N : void 0, n === "week" ? r ? void 0 : b : t === "none" ? v : void 0);
|
|
42
|
+
}
|
|
43
|
+
function K(t) {
|
|
44
|
+
const { kind: n, disabled: r } = t;
|
|
45
|
+
return r ? e(o, E) : n === "point" || n === "interval-start" || n === "interval-end" ? e(o, h) : n === "interval-middle" ? e(o, T) : e(o, w);
|
|
36
46
|
}
|
|
37
47
|
export {
|
|
38
48
|
l as DAY_CELL_SIZE,
|
|
39
|
-
|
|
40
|
-
|
|
49
|
+
k as DAY_MONTH_MIN_WIDTH,
|
|
50
|
+
a as INTERVAL_TRACK,
|
|
51
|
+
F as PERIOD_RANGE_GRID_CLASSNAME,
|
|
41
52
|
i as POINT_FILL,
|
|
42
53
|
c as POINT_FILL_HOVER,
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
54
|
+
s as SELECTION_RADIUS,
|
|
55
|
+
p as SELECTION_RADIUS_END,
|
|
56
|
+
u as SELECTION_RADIUS_START,
|
|
46
57
|
d as WEEK_GUTTER_RULE,
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
58
|
+
W as dayButtonAppearanceClassName,
|
|
59
|
+
m as dayButtonBaseClassName,
|
|
60
|
+
v as dayButtonHoverClassName,
|
|
61
|
+
N as dayButtonMiddleClassName,
|
|
62
|
+
f as dayButtonPointClassName,
|
|
63
|
+
b as dayButtonWeekHoverClassName,
|
|
64
|
+
R as dayCellBaseClassName,
|
|
65
|
+
U as periodRangeTrackClassName,
|
|
66
|
+
G as periodRangeTrackPositionClassName,
|
|
67
|
+
K as periodTileAppearanceClassName,
|
|
56
68
|
o as periodTileBaseClassName,
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
B as
|
|
69
|
+
E as periodTileDisabledClassName,
|
|
70
|
+
w as periodTileHoverClassName,
|
|
71
|
+
j as periodTileInsetClassName,
|
|
72
|
+
T as periodTileMiddleClassName,
|
|
73
|
+
h as periodTilePointClassName,
|
|
74
|
+
B as previewCapEndCellClassName,
|
|
75
|
+
L as previewCapStartCellClassName,
|
|
63
76
|
A as previewCellClassName,
|
|
64
|
-
|
|
77
|
+
C as rangeEndCellClassName,
|
|
65
78
|
S as rangeMiddleCellClassName,
|
|
66
|
-
|
|
67
|
-
|
|
79
|
+
g as rangeStartCellClassName,
|
|
80
|
+
P as weekNumberBaseClassName,
|
|
81
|
+
O as weekNumberBlockedClassName,
|
|
68
82
|
M as weekNumberFocusClassName,
|
|
69
83
|
D as weekNumberInteractiveClassName,
|
|
70
84
|
H as weekNumberSelectedFillClassName,
|
|
71
|
-
|
|
85
|
+
x as weekNumberTypeClassName
|
|
72
86
|
};
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Matcher } from 'react-day-picker';
|
|
1
2
|
export type SelectionKind = "none" | "point" | "interval-start" | "interval-middle" | "interval-end";
|
|
2
3
|
export interface SelectionModifiers {
|
|
3
4
|
selected?: boolean;
|
|
@@ -9,6 +10,28 @@ export interface SelectionModifiers {
|
|
|
9
10
|
}
|
|
10
11
|
export declare function selectionKindFromModifiers(modifiers: SelectionModifiers): SelectionKind;
|
|
11
12
|
export declare function dayKey(date: Date): number;
|
|
13
|
+
export declare function isSameCalendarDay(left: Date, right: Date): boolean;
|
|
14
|
+
/** DayPicker precomputes modifiers only for days it generated. Injected weeks match the Date[] matchers themselves. */
|
|
15
|
+
export declare function dateMatchesModifier(matcher: unknown, date: Date): boolean;
|
|
16
|
+
/** Injected CalendarDays are not in DayPicker's identity map. Re-run the same matchers DayPicker uses. */
|
|
17
|
+
export declare function injectedCalendarDayModifiers(params: {
|
|
18
|
+
date: Date;
|
|
19
|
+
disabled?: Matcher | Matcher[];
|
|
20
|
+
today?: Date;
|
|
21
|
+
isSelected?: (date: Date) => boolean;
|
|
22
|
+
customModifiers?: {
|
|
23
|
+
range_start?: unknown;
|
|
24
|
+
range_middle?: unknown;
|
|
25
|
+
range_end?: unknown;
|
|
26
|
+
};
|
|
27
|
+
}): {
|
|
28
|
+
selected: boolean;
|
|
29
|
+
disabled: boolean;
|
|
30
|
+
today: boolean;
|
|
31
|
+
range_start: boolean;
|
|
32
|
+
range_middle: boolean;
|
|
33
|
+
range_end: boolean;
|
|
34
|
+
};
|
|
12
35
|
export declare function isPreviewMiddle(date: Date, from: Date, hovered: Date): boolean;
|
|
13
36
|
export declare function isPreviewCap(date: Date, from: Date, hovered: Date): boolean;
|
|
14
37
|
export declare function periodCellKind(params: {
|
|
@@ -18,3 +41,5 @@ export declare function periodCellKind(params: {
|
|
|
18
41
|
isEnd: boolean;
|
|
19
42
|
isMiddle: boolean;
|
|
20
43
|
}): SelectionKind;
|
|
44
|
+
/** useDayPicker().select is `never` unless the hook is parameterized with `mode`. */
|
|
45
|
+
export declare function callDayPickerSelect(select: unknown, date: Date, modifiers: Record<string, boolean>, event: unknown): void;
|
|
@@ -1,31 +1,60 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import { dateMatchModifiers as a } from "react-day-picker";
|
|
2
|
+
function s(e) {
|
|
3
|
+
const n = !!e.range_start, t = !!e.range_end;
|
|
4
|
+
return n && t ? "point" : n ? "interval-start" : t ? "interval-end" : e.range_middle ? "interval-middle" : e.preview_cap ? "interval-end" : e.preview ? "interval-middle" : e.selected ? "point" : "none";
|
|
4
5
|
}
|
|
5
|
-
function
|
|
6
|
-
return
|
|
6
|
+
function i(e) {
|
|
7
|
+
return e.getFullYear() * 1e4 + (e.getMonth() + 1) * 100 + e.getDate();
|
|
7
8
|
}
|
|
8
|
-
function
|
|
9
|
-
|
|
10
|
-
return r > l && r < u;
|
|
9
|
+
function c(e, n) {
|
|
10
|
+
return i(e) === i(n);
|
|
11
11
|
}
|
|
12
|
-
function
|
|
13
|
-
|
|
14
|
-
return r === o(t) && r !== o(e);
|
|
12
|
+
function l(e, n) {
|
|
13
|
+
return e == null || e === !1 ? !1 : e === !0 ? !0 : e instanceof Date ? i(e) === i(n) : typeof e == "function" ? !!e(n) : Array.isArray(e) ? e.some((t) => l(t, n)) : !1;
|
|
15
14
|
}
|
|
16
|
-
function
|
|
17
|
-
const
|
|
18
|
-
return
|
|
19
|
-
selected: e,
|
|
15
|
+
function _(e) {
|
|
16
|
+
const n = e.today ?? /* @__PURE__ */ new Date();
|
|
17
|
+
return {
|
|
18
|
+
selected: !!e.isSelected?.(e.date),
|
|
19
|
+
disabled: e.disabled == null ? !1 : a(e.date, e.disabled),
|
|
20
|
+
today: c(e.date, n),
|
|
21
|
+
range_start: l(e.customModifiers?.range_start, e.date),
|
|
22
|
+
range_middle: l(e.customModifiers?.range_middle, e.date),
|
|
23
|
+
range_end: l(e.customModifiers?.range_end, e.date)
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
function y(e, n, t) {
|
|
27
|
+
const r = i(e), o = i(n), d = i(t), u = o < d ? o : d, f = o > d ? o : d;
|
|
28
|
+
return r > u && r < f;
|
|
29
|
+
}
|
|
30
|
+
function M(e, n, t) {
|
|
31
|
+
const r = i(e);
|
|
32
|
+
return r === i(t) && r !== i(n);
|
|
33
|
+
}
|
|
34
|
+
function v(e) {
|
|
35
|
+
const { selected: n, isRange: t, isStart: r, isEnd: o, isMiddle: d } = e;
|
|
36
|
+
return t ? s({
|
|
37
|
+
selected: n,
|
|
20
38
|
range_start: r,
|
|
21
|
-
range_end:
|
|
22
|
-
range_middle:
|
|
23
|
-
}) :
|
|
39
|
+
range_end: o,
|
|
40
|
+
range_middle: d
|
|
41
|
+
}) : n ? "point" : "none";
|
|
42
|
+
}
|
|
43
|
+
function D(e, n, t, r) {
|
|
44
|
+
typeof e == "function" && e(
|
|
45
|
+
n,
|
|
46
|
+
t,
|
|
47
|
+
r
|
|
48
|
+
);
|
|
24
49
|
}
|
|
25
50
|
export {
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
51
|
+
D as callDayPickerSelect,
|
|
52
|
+
l as dateMatchesModifier,
|
|
53
|
+
i as dayKey,
|
|
54
|
+
_ as injectedCalendarDayModifiers,
|
|
55
|
+
M as isPreviewCap,
|
|
56
|
+
y as isPreviewMiddle,
|
|
57
|
+
c as isSameCalendarDay,
|
|
58
|
+
v as periodCellKind,
|
|
59
|
+
s as selectionKindFromModifiers
|
|
31
60
|
};
|
|
@@ -18,6 +18,7 @@ export interface CalendarWeekNumberCellProps {
|
|
|
18
18
|
getCellMeta?: (date: Date) => DateCellMeta | undefined;
|
|
19
19
|
onWeekSelect: (input: WeekPickerInput) => void;
|
|
20
20
|
blank?: boolean;
|
|
21
|
+
blocked?: boolean;
|
|
21
22
|
className?: string;
|
|
22
23
|
}
|
|
23
|
-
export declare function CalendarWeekNumberCell({ week, weekStartsOn, pickerType, calendarKind, weekNumberLabel, weekLabel, fiscalWeekNumberLabel, fiscalWeekAriaLabel, getCellMeta, onWeekSelect, blank, className, ...weekProps }: CalendarWeekNumberCellProps & React.HTMLAttributes<HTMLElement>): import("react/jsx-runtime").JSX.Element;
|
|
24
|
+
export declare function CalendarWeekNumberCell({ week, weekStartsOn, pickerType, calendarKind, weekNumberLabel, weekLabel, fiscalWeekNumberLabel, fiscalWeekAriaLabel, getCellMeta, onWeekSelect, blank, blocked, className, ...weekProps }: CalendarWeekNumberCellProps & React.HTMLAttributes<HTMLElement>): import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,88 +1,102 @@
|
|
|
1
1
|
import { jsx as r } from "react/jsx-runtime";
|
|
2
2
|
import "react";
|
|
3
|
-
import { cn as
|
|
4
|
-
import { weekNumberBaseClassName as
|
|
5
|
-
function
|
|
6
|
-
const s = e.getFullYear(),
|
|
7
|
-
return
|
|
8
|
-
(
|
|
3
|
+
import { cn as k } from "../../../lib/utils.js";
|
|
4
|
+
import { weekNumberBaseClassName as h, weekNumberBlockedClassName as M, weekNumberInteractiveClassName as j, weekNumberSelectedFillClassName as F, weekNumberFocusClassName as W } from "./calendar-selection-appearance.js";
|
|
5
|
+
function B(e, n) {
|
|
6
|
+
const s = e.getFullYear(), o = e.getMonth(), i = (new Date(s, o, 1).getDay() + 7 - n) % 7, c = new Date(s, o, 1 - i), l = new Date(e), p = (e.getDay() + 7 - n) % 7;
|
|
7
|
+
return l.setDate(e.getDate() - p), Math.round(
|
|
8
|
+
(l.getTime() - c.getTime()) / (10080 * 60 * 1e3)
|
|
9
9
|
) + 1;
|
|
10
10
|
}
|
|
11
|
-
function
|
|
11
|
+
function T({
|
|
12
12
|
week: e,
|
|
13
13
|
weekStartsOn: n,
|
|
14
14
|
pickerType: s,
|
|
15
|
-
calendarKind:
|
|
16
|
-
weekNumberLabel:
|
|
15
|
+
calendarKind: o = "gregorian",
|
|
16
|
+
weekNumberLabel: N,
|
|
17
17
|
weekLabel: g,
|
|
18
|
-
fiscalWeekNumberLabel:
|
|
18
|
+
fiscalWeekNumberLabel: i,
|
|
19
19
|
fiscalWeekAriaLabel: c,
|
|
20
|
-
getCellMeta:
|
|
21
|
-
onWeekSelect:
|
|
22
|
-
blank:
|
|
23
|
-
|
|
24
|
-
|
|
20
|
+
getCellMeta: l,
|
|
21
|
+
onWeekSelect: x,
|
|
22
|
+
blank: p = !1,
|
|
23
|
+
blocked: C = !1,
|
|
24
|
+
className: d,
|
|
25
|
+
...v
|
|
25
26
|
}) {
|
|
26
|
-
const
|
|
27
|
-
if (
|
|
27
|
+
const f = e.days.find((w) => !w.outside)?.date ?? (o === "fiscal" ? e.days[0]?.date : void 0);
|
|
28
|
+
if (p || !f)
|
|
28
29
|
return /* @__PURE__ */ r(
|
|
29
30
|
"th",
|
|
30
31
|
{
|
|
31
32
|
scope: "row",
|
|
32
33
|
"aria-hidden": "true",
|
|
33
|
-
className:
|
|
34
|
-
|
|
35
|
-
|
|
34
|
+
className: k(
|
|
35
|
+
h,
|
|
36
|
+
d
|
|
36
37
|
)
|
|
37
38
|
}
|
|
38
39
|
);
|
|
39
|
-
const
|
|
40
|
+
const y = l?.(f), t = y?.fiscalWeek, u = B(f, n), m = t ?? u, D = t && i ? i(t) : N(m), b = t && y && c ? c(y) : g(u);
|
|
40
41
|
if (s === "week") {
|
|
41
|
-
|
|
42
|
+
if (C)
|
|
43
|
+
return /* @__PURE__ */ r(
|
|
44
|
+
"td",
|
|
45
|
+
{
|
|
46
|
+
"aria-label": b,
|
|
47
|
+
"aria-disabled": "true",
|
|
48
|
+
"data-week-index": u,
|
|
49
|
+
"data-week-number": m,
|
|
50
|
+
"data-fiscal-week": t,
|
|
51
|
+
className: k(h, d, M),
|
|
52
|
+
children: /* @__PURE__ */ r("div", { className: "flex h-9 w-full items-center justify-center text-center", children: D })
|
|
53
|
+
}
|
|
54
|
+
);
|
|
55
|
+
const w = () => x(f);
|
|
42
56
|
return /* @__PURE__ */ r(
|
|
43
57
|
"td",
|
|
44
58
|
{
|
|
45
|
-
"aria-label":
|
|
46
|
-
"data-week-index":
|
|
47
|
-
"data-week-number":
|
|
48
|
-
"data-fiscal-week":
|
|
59
|
+
"aria-label": b,
|
|
60
|
+
"data-week-index": u,
|
|
61
|
+
"data-week-number": m,
|
|
62
|
+
"data-fiscal-week": t,
|
|
49
63
|
"data-selection": "period-row",
|
|
50
64
|
tabIndex: 0,
|
|
51
65
|
role: "button",
|
|
52
|
-
className:
|
|
53
|
-
|
|
66
|
+
className: k(
|
|
67
|
+
h,
|
|
68
|
+
W,
|
|
54
69
|
F,
|
|
55
|
-
|
|
56
|
-
M,
|
|
70
|
+
j,
|
|
57
71
|
"cursor-pointer transition-colors",
|
|
58
|
-
|
|
72
|
+
d
|
|
59
73
|
),
|
|
60
|
-
onClick: (
|
|
61
|
-
|
|
74
|
+
onClick: (a) => {
|
|
75
|
+
a.preventDefault(), a.stopPropagation(), w();
|
|
62
76
|
},
|
|
63
|
-
onKeyDown: (
|
|
64
|
-
(
|
|
77
|
+
onKeyDown: (a) => {
|
|
78
|
+
(a.key === "Enter" || a.key === " ") && (a.preventDefault(), a.stopPropagation(), w());
|
|
65
79
|
},
|
|
66
|
-
children: /* @__PURE__ */ r("div", { className: "flex h-9 w-full items-center justify-center text-center", children:
|
|
80
|
+
children: /* @__PURE__ */ r("div", { className: "flex h-9 w-full items-center justify-center text-center", children: D })
|
|
67
81
|
}
|
|
68
82
|
);
|
|
69
83
|
}
|
|
70
84
|
return /* @__PURE__ */ r(
|
|
71
85
|
"th",
|
|
72
86
|
{
|
|
73
|
-
...
|
|
74
|
-
"aria-label":
|
|
75
|
-
"data-week-number":
|
|
76
|
-
"data-fiscal-week":
|
|
77
|
-
className:
|
|
78
|
-
|
|
79
|
-
|
|
87
|
+
...v,
|
|
88
|
+
"aria-label": b,
|
|
89
|
+
"data-week-number": m,
|
|
90
|
+
"data-fiscal-week": t,
|
|
91
|
+
className: k(
|
|
92
|
+
h,
|
|
93
|
+
d
|
|
80
94
|
),
|
|
81
95
|
scope: "row",
|
|
82
|
-
children: /* @__PURE__ */ r("div", { className: "flex h-9 w-full items-center justify-center text-center whitespace-nowrap", children:
|
|
96
|
+
children: /* @__PURE__ */ r("div", { className: "flex h-9 w-full items-center justify-center text-center whitespace-nowrap", children: D })
|
|
83
97
|
}
|
|
84
98
|
);
|
|
85
99
|
}
|
|
86
100
|
export {
|
|
87
|
-
|
|
101
|
+
T as CalendarWeekNumberCell
|
|
88
102
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { CalendarKind, FiscalMode, FiscalMonthPattern, Granularity } from '../../../lib/fiscal-calendar';
|
|
1
|
+
import { CalendarKind, FiscalCalendarConfig, FiscalMode, FiscalMonthPattern, Granularity } from '../../../lib/fiscal-calendar';
|
|
2
2
|
import { WeekRange, WeekSelection } from './calendar.types';
|
|
3
3
|
export type WeekPickerInput = Date | {
|
|
4
4
|
days: Array<{
|
|
@@ -14,12 +14,21 @@ export declare function fiscalPeriodForWeek(week: {
|
|
|
14
14
|
}, getCellMeta?: (date: Date) => {
|
|
15
15
|
fiscalPeriod?: number;
|
|
16
16
|
} | undefined): number | undefined;
|
|
17
|
-
|
|
18
|
-
export declare function isForeignFiscalWeekRow(options: {
|
|
17
|
+
type FiscalWeekRowOptions = {
|
|
19
18
|
calendarKind: CalendarKind;
|
|
20
19
|
weekPeriod?: number;
|
|
21
20
|
panePeriod?: number;
|
|
22
|
-
}
|
|
21
|
+
};
|
|
22
|
+
/** A fiscal week belongs to one period pane. Other panes keep a blank reserved row. */
|
|
23
|
+
export declare function isForeignFiscalWeekRow(options: FiscalWeekRowOptions): boolean;
|
|
24
|
+
export declare function isOwnedFiscalWeekRow(options: FiscalWeekRowOptions): boolean;
|
|
25
|
+
/** Owned fiscal weeks stay visible even when every civil day is outside the pane month.
|
|
26
|
+
* Foreign weeks hide in this pane — the owning pane injects leading weeks DayPicker omits. */
|
|
27
|
+
export declare function shouldHideCalendarWeekRow(week: {
|
|
28
|
+
days: Array<{
|
|
29
|
+
outside?: boolean;
|
|
30
|
+
}>;
|
|
31
|
+
}, options: FiscalWeekRowOptions): boolean;
|
|
23
32
|
export declare function isSameWeek(w1: WeekSelection, w2: WeekSelection): boolean;
|
|
24
33
|
export declare function calculateWeekSelection(weekOrDate: WeekPickerInput, options: {
|
|
25
34
|
calendarKind: CalendarKind;
|
|
@@ -28,6 +37,7 @@ export declare function calculateWeekSelection(weekOrDate: WeekPickerInput, opti
|
|
|
28
37
|
fiscalMonthPattern?: FiscalMonthPattern;
|
|
29
38
|
fiscalYearStartMonth: number;
|
|
30
39
|
weekStartsOn: 0 | 1 | 2 | 3 | 4 | 5 | 6;
|
|
40
|
+
fiscalConfig?: FiscalCalendarConfig;
|
|
31
41
|
}): WeekSelection;
|
|
32
42
|
export declare function nextWeekSelection(week: WeekSelection, prev: WeekSelection | WeekSelection[] | WeekRange | undefined, weekMode: "single" | "multiple" | "range"): WeekSelection | WeekSelection[] | WeekRange | undefined;
|
|
33
43
|
export declare function weekSelectionsToDates(selection: WeekSelection | WeekSelection[] | WeekRange | undefined): Date[] | undefined;
|
|
@@ -36,3 +46,4 @@ export declare function computeWeekRangeModifiers(selectedDays: Date[] | undefin
|
|
|
36
46
|
range_middle: Date[];
|
|
37
47
|
range_end: Date[];
|
|
38
48
|
};
|
|
49
|
+
export {};
|