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.
Files changed (61) hide show
  1. package/dist/components/data/data-table/column-runtime-state-guard.js +42 -42
  2. package/dist/components/data/data-table/data-table-column-tree-cache.d.ts +15 -0
  3. package/dist/components/data/data-table/data-table-column-tree-cache.js +109 -80
  4. package/dist/components/data/data-table/use-data-table-column-list-sync.js +65 -62
  5. package/dist/components/data/expandable-list-item/expandable-list-item-attributes.js +2 -3
  6. package/dist/components/data/expandable-list-item/expandable-list-item-metrics.js +2 -3
  7. package/dist/components/data-display/calendar/calendar-day-picker-classnames.d.ts +6 -1
  8. package/dist/components/data-display/calendar/calendar-day-picker-classnames.js +31 -23
  9. package/dist/components/data-display/calendar/calendar-day-picker-components.d.ts +2 -1
  10. package/dist/components/data-display/calendar/calendar-day-picker-components.js +194 -162
  11. package/dist/components/data-display/calendar/calendar-day-picker-view.d.ts +3 -2
  12. package/dist/components/data-display/calendar/calendar-day-picker-view.js +130 -129
  13. package/dist/components/data-display/calendar/calendar-padding-week.utils.d.ts +5 -1
  14. package/dist/components/data-display/calendar/calendar-padding-week.utils.js +20 -16
  15. package/dist/components/data-display/calendar/calendar-week-number-cell.d.ts +2 -1
  16. package/dist/components/data-display/calendar/calendar-week-number-cell.js +43 -42
  17. package/dist/components/data-display/calendar/calendar-week-utils.d.ts +6 -0
  18. package/dist/components/data-display/calendar/calendar-week-utils.js +51 -47
  19. package/dist/components/data-display/calendar/calendar.js +102 -100
  20. package/dist/components/data-display/calendar/calendar.types.d.ts +2 -0
  21. package/dist/components/data-display/calendar/use-calendar-day-picker-config.d.ts +4 -2
  22. package/dist/components/data-display/calendar/use-calendar-day-picker-config.js +77 -72
  23. package/dist/components/feedback/dialog/dialog.js +12 -12
  24. package/dist/components/feedback/sheet/sheet.js +22 -22
  25. package/dist/components/feedback/tooltip/tab-tooltip-render.js +2 -3
  26. package/dist/components/flows/command-palette/shortcut-settings.js +10 -10
  27. package/dist/components/flows/filter-panel/filter-panel.js +4 -4
  28. package/dist/components/forms/date-picker/calendar-selection-adapters.d.ts +2 -0
  29. package/dist/components/forms/date-picker/calendar-selection-adapters.js +36 -31
  30. package/dist/components/forms/date-picker/date-input-behavior.d.ts +10 -0
  31. package/dist/components/forms/date-picker/date-input-behavior.js +111 -90
  32. package/dist/components/forms/date-picker/date-picker.js +71 -69
  33. package/dist/components/forms/date-picker/date-picker.types.d.ts +2 -0
  34. package/dist/components/forms/date-picker/date-range-picker.js +146 -144
  35. package/dist/components/forms/date-picker/fiscal-pass-through.d.ts +1 -0
  36. package/dist/components/forms/date-picker/fiscal-pass-through.js +1 -0
  37. package/dist/components/forms/date-picker/month-picker.js +82 -80
  38. package/dist/components/forms/date-picker/month-range-picker.js +145 -143
  39. package/dist/components/forms/date-picker/multi-date-picker.js +51 -49
  40. package/dist/components/forms/date-picker/multi-month-picker.js +49 -47
  41. package/dist/components/forms/date-picker/multi-quarter-picker.js +46 -44
  42. package/dist/components/forms/date-picker/multi-week-picker.js +53 -51
  43. package/dist/components/forms/date-picker/multi-year-picker.js +48 -46
  44. package/dist/components/forms/date-picker/picker-story-layout.d.ts +2 -0
  45. package/dist/components/forms/date-picker/quarter-picker.js +46 -44
  46. package/dist/components/forms/date-picker/quarter-range-picker.js +45 -43
  47. package/dist/components/forms/date-picker/week-picker.js +82 -80
  48. package/dist/components/forms/date-picker/week-range-picker.js +169 -164
  49. package/dist/components/forms/date-picker/year-picker.js +47 -45
  50. package/dist/components/forms/date-picker/year-range-picker.js +47 -45
  51. package/dist/components/forms/select/components/SelectMenuPanel.js +3 -2
  52. package/dist/components/forms/select/components/SelectTriggerValue.js +2 -3
  53. package/dist/components/forms/select/components/Submenu.js +2 -3
  54. package/dist/components/forms/select/select.js +1 -0
  55. package/dist/form-react/Fields/WeekRangePicker.js +47 -48
  56. package/dist/form-react/types/fields.types.d.ts +2 -0
  57. package/dist/impact-nova.css +1 -1
  58. package/dist/lib/overlay/overlay-portal-context.js +16 -16
  59. package/dist/llms/rules/installation.js +1 -1
  60. package/dist/llms/rules/requirements.js +1 -1
  61. package/package.json +1 -1
@@ -1,153 +1,154 @@
1
- import { jsx as C } from "react/jsx-runtime";
2
- import * as S from "react";
3
- import { DayPicker as lr } from "react-day-picker";
4
- import { cn as mr } from "../../../lib/utils.js";
5
- import { formatPeriodOption as pr } from "./calendar-fiscal-labels.js";
6
- import { CalendarDayHoverProvider as dr } from "./calendar-day-hover.js";
7
- import { previewModifierClassNames as ur } from "./calendar-day-picker-classnames.js";
8
- import { isPreviewCap as p, dayKey as m, isPreviewMiddle as br } from "./calendar-selection.js";
9
- import { useCalendarDayPickerConfig as gr } from "./use-calendar-day-picker-config.js";
10
- function Sr({
11
- className: j,
1
+ import { jsx as H } from "react/jsx-runtime";
2
+ import * as x from "react";
3
+ import { DayPicker as pr } from "react-day-picker";
4
+ import { cn as dr } from "../../../lib/utils.js";
5
+ import { formatPeriodOption as ur } from "./calendar-fiscal-labels.js";
6
+ import { CalendarDayHoverProvider as gr } from "./calendar-day-hover.js";
7
+ import { previewModifierClassNames as vr, fiscalPeriodBoundaryClassNames as Pr } from "./calendar-day-picker-classnames.js";
8
+ import { isPreviewCap as d, dayKey as l, isPreviewMiddle as _r } from "./calendar-selection.js";
9
+ import { useCalendarDayPickerConfig as yr } from "./use-calendar-day-picker-config.js";
10
+ function Br({
11
+ className: B,
12
12
  pickerType: s,
13
- mode: n,
14
- weekMode: c,
15
- calendarKind: l,
16
- granularity: k,
17
- showOutsideDays: d,
18
- fixedWeeks: u,
19
- captionLayout: B,
20
- buttonVariant: H,
21
- weekStartsOn: b,
22
- formatters: E,
23
- classNames: F,
24
- components: L,
25
- selected: g,
26
- showFooter: v,
27
- pendingSelection: _,
28
- selectedDaysFromWeeks: O,
29
- currentMonth: P,
30
- monthsFull: V,
31
- monthsShort: Y,
32
- weekNumberHeader: R,
33
- resolvedStartMonth: w,
34
- resolvedEndMonth: y,
35
- availableYears: W,
36
- fiscalPeriods: D,
37
- fiscalConfig: $,
38
- dateFnsLocale: q,
39
- intlLocale: z,
40
- weekRangeModifiers: A,
41
- onSelect: G,
42
- onMonthChange: h,
43
- onWeekSelect: I,
44
- previousMonthLabel: J,
45
- nextMonthLabel: M,
46
- monthPlaceholder: Q,
47
- yearPlaceholder: U,
48
- weekNumberLabel: x,
49
- weekLabel: X,
50
- fiscalWeekAriaLabel: Z,
51
- getCellMeta: i,
52
- formatWeekNumber: K,
53
- disabled: T,
54
- ...rr
13
+ mode: e,
14
+ weekMode: f,
15
+ calendarKind: m,
16
+ granularity: E,
17
+ showOutsideDays: u,
18
+ fixedWeeks: g,
19
+ captionLayout: F,
20
+ buttonVariant: L,
21
+ weekStartsOn: v,
22
+ formatters: O,
23
+ classNames: V,
24
+ components: Y,
25
+ selected: P,
26
+ showFooter: _,
27
+ showPeriodBoundaries: p,
28
+ pendingSelection: y,
29
+ selectedDaysFromWeeks: k,
30
+ currentMonth: D,
31
+ monthsFull: R,
32
+ monthsShort: $,
33
+ weekNumberHeader: q,
34
+ resolvedStartMonth: b,
35
+ resolvedEndMonth: w,
36
+ availableYears: z,
37
+ fiscalPeriods: C,
38
+ fiscalConfig: A,
39
+ dateFnsLocale: G,
40
+ intlLocale: I,
41
+ weekRangeModifiers: J,
42
+ onSelect: M,
43
+ onMonthChange: N,
44
+ onWeekSelect: Q,
45
+ previousMonthLabel: U,
46
+ nextMonthLabel: X,
47
+ monthPlaceholder: Z,
48
+ yearPlaceholder: W,
49
+ weekNumberLabel: S,
50
+ weekLabel: K,
51
+ fiscalWeekAriaLabel: T,
52
+ getCellMeta: n,
53
+ formatWeekNumber: rr,
54
+ disabled: or,
55
+ showWeekNumber: h = !0,
56
+ ...tr
55
57
  }) {
56
- const { dayPickerClassNames: er, dayPickerComponents: tr } = gr({
57
- buttonVariant: H,
58
+ const { dayPickerClassNames: ar, dayPickerComponents: ir } = yr({
59
+ buttonVariant: L,
58
60
  pickerType: s,
59
- calendarKind: l,
60
- granularity: k,
61
- showOutsideDays: d,
62
- classNames: F,
63
- currentMonth: P,
64
- monthsFull: V,
65
- monthsShort: Y,
66
- weekNumberHeader: R,
67
- resolvedStartMonth: w,
68
- resolvedEndMonth: y,
69
- availableYears: W,
70
- fiscalPeriods: D,
71
- fiscalConfig: $,
72
- weekStartsOn: b,
73
- previousMonthLabel: J,
74
- nextMonthLabel: M,
75
- monthPlaceholder: Q,
76
- yearPlaceholder: U,
77
- weekNumberLabel: x,
78
- weekLabel: X,
79
- fiscalWeekNumberLabel: x,
80
- fiscalWeekAriaLabel: Z,
81
- getCellMeta: i,
82
- onMonthChange: h,
83
- onWeekSelect: I,
84
- weekMode: c,
85
- components: L
86
- }), or = n === "range" || n === "multiple" || n === "multi-range" || c === "range" || c === "multiple" || c === "multi-range" ? 2 : 1, ar = s === "week" || n === "multi-range" ? "multiple" : n, nr = u || l === "fiscal" || d, N = i ? {
87
- fiscal_period_start: (r) => !!i(r)?.isPeriodStart,
88
- fiscal_period_end: (r) => !!i(r)?.isPeriodEnd
89
- } : void 0, [t, ir] = S.useState(), sr = S.useCallback((r) => {
90
- ir((e) => !e && !r || e && r && e.getFullYear() === r.getFullYear() && e.getMonth() === r.getMonth() && e.getDate() === r.getDate() ? e : r);
91
- }, []), o = v ? _ : g, a = n === "range" && o && typeof o == "object" && "from" in o ? o.from : void 0, fr = n === "range" && o && typeof o == "object" && "to" in o ? o.to : void 0;
92
- return /* @__PURE__ */ C(dr, { onDayHover: sr, children: /* @__PURE__ */ C(
93
- lr,
61
+ calendarKind: m,
62
+ granularity: E,
63
+ showOutsideDays: u,
64
+ classNames: V,
65
+ currentMonth: D,
66
+ monthsFull: R,
67
+ monthsShort: $,
68
+ weekNumberHeader: q,
69
+ resolvedStartMonth: b,
70
+ resolvedEndMonth: w,
71
+ availableYears: z,
72
+ fiscalPeriods: C,
73
+ fiscalConfig: A,
74
+ weekStartsOn: v,
75
+ previousMonthLabel: U,
76
+ nextMonthLabel: X,
77
+ monthPlaceholder: Z,
78
+ yearPlaceholder: W,
79
+ weekNumberLabel: S,
80
+ weekLabel: K,
81
+ fiscalWeekNumberLabel: S,
82
+ fiscalWeekAriaLabel: T,
83
+ getCellMeta: n,
84
+ onMonthChange: N,
85
+ onWeekSelect: Q,
86
+ weekMode: f,
87
+ showPeriodBoundaries: p,
88
+ showWeekNumber: h,
89
+ components: Y
90
+ }), er = e === "range" || e === "multiple" || e === "multi-range" || f === "range" || f === "multiple" || f === "multi-range" ? 2 : 1, nr = s === "week" || e === "multi-range" ? "multiple" : e, sr = g || m === "fiscal" || u, j = p && n ? {
91
+ fiscal_period_start: (r) => !!n(r)?.isPeriodStart,
92
+ fiscal_period_end: (r) => !!n(r)?.isPeriodEnd
93
+ } : void 0, [t, cr] = x.useState(), fr = x.useCallback((r) => {
94
+ cr((o) => !o && !r || o && r && o.getFullYear() === r.getFullYear() && o.getMonth() === r.getMonth() && o.getDate() === r.getDate() ? o : r);
95
+ }, []), a = _ ? y : P, i = e === "range" && a && typeof a == "object" && "from" in a ? a.from : void 0, mr = e === "range" && a && typeof a == "object" && "to" in a ? a.to : void 0;
96
+ return /* @__PURE__ */ H(gr, { onDayHover: fr, children: /* @__PURE__ */ H(
97
+ pr,
94
98
  {
95
- mode: ar,
96
- selected: s === "week" ? O : v ? _ : g,
99
+ mode: nr,
100
+ selected: s === "week" ? k : _ ? y : P,
97
101
  onSelect: (...r) => {
98
- const [e, f] = r;
99
- G(e, f instanceof Date ? f : void 0);
102
+ const [o, c] = r;
103
+ M(o, c instanceof Date ? c : void 0);
100
104
  },
101
- month: P,
102
- onMonthChange: h,
103
- fixedWeeks: u,
104
- showOutsideDays: nr,
105
- weekStartsOn: b,
106
- modifiers: s === "week" ? { ...A, ...N } : { ...N, ...s === "date" && !!(a && !fr && t) && a && t ? {
107
- preview: (r) => br(r, a, t),
108
- preview_cap: (r) => p(r, a, t),
109
- preview_cap_start: (r) => p(r, a, t) && m(t) < m(a),
110
- preview_cap_end: (r) => p(r, a, t) && m(t) > m(a)
105
+ month: D,
106
+ onMonthChange: N,
107
+ fixedWeeks: g,
108
+ showOutsideDays: sr,
109
+ weekStartsOn: v,
110
+ modifiers: s === "week" ? { ...J, ...j } : { ...j, ...s === "date" && !!(i && !mr && t) && i && t ? {
111
+ preview: (r) => _r(r, i, t),
112
+ preview_cap: (r) => d(r, i, t),
113
+ preview_cap_start: (r) => d(r, i, t) && l(t) < l(i),
114
+ preview_cap_end: (r) => d(r, i, t) && l(t) > l(i)
111
115
  } : void 0 },
112
116
  modifiersClassNames: {
113
- ...l === "fiscal" ? {
114
- fiscal_period_start: "before:pointer-events-none before:absolute before:left-0 before:top-1/2 before:-translate-y-1/2 before:content-['('] before:text-sm before:font-normal before:text-brand",
115
- fiscal_period_end: "after:pointer-events-none after:absolute after:right-0 after:top-1/2 after:-translate-y-1/2 after:content-[')'] after:text-sm after:font-normal after:text-brand"
116
- } : void 0,
117
- ...ur
117
+ ...p && m === "fiscal" ? Pr : void 0,
118
+ ...vr
118
119
  },
119
- locale: q,
120
- className: mr(
120
+ locale: G,
121
+ className: dr(
121
122
  "bg-canvas group/calendar p-2 [[data-slot=card-content]_&]:bg-transparent [[data-slot=popover-content]_&]:bg-transparent",
122
123
  String.raw`rtl:**:[.rdp-button\_next>svg]:rotate-180`,
123
124
  String.raw`rtl:**:[.rdp-button\_previous>svg]:rotate-180`,
124
- j
125
+ B
125
126
  ),
126
- captionLayout: B,
127
+ captionLayout: F,
127
128
  navLayout: "around",
128
- startMonth: w,
129
- endMonth: y,
130
- disabled: T,
131
- numberOfMonths: or,
132
- showWeekNumber: !0,
129
+ startMonth: b,
130
+ endMonth: w,
131
+ disabled: or,
132
+ numberOfMonths: er,
133
133
  formatters: {
134
134
  formatMonthDropdown: (r) => {
135
- if (l === "fiscal" && i) {
136
- const e = i(r), f = D?.find((cr) => cr.period === e?.fiscalPeriod);
137
- if (f) return pr(f);
138
- if (e?.fiscalPeriod != null) return `P${e.fiscalPeriod}`;
135
+ if (m === "fiscal" && n) {
136
+ const o = n(r), c = C?.find((lr) => lr.period === o?.fiscalPeriod);
137
+ if (c) return ur(c);
138
+ if (o?.fiscalPeriod != null) return `P${o.fiscalPeriod}`;
139
139
  }
140
- return r.toLocaleString(z, { month: "short" });
140
+ return r.toLocaleString(I, { month: "short" });
141
141
  },
142
- formatWeekNumber: K,
143
- ...E
142
+ formatWeekNumber: rr,
143
+ ...O
144
144
  },
145
- classNames: er,
146
- components: tr,
147
- ...rr
145
+ classNames: ar,
146
+ components: ir,
147
+ ...tr,
148
+ showWeekNumber: h
148
149
  }
149
150
  ) });
150
151
  }
151
152
  export {
152
- Sr as CalendarDayPickerView
153
+ Br as CalendarDayPickerView
153
154
  };
@@ -14,7 +14,11 @@ export declare function weekIntervalContinues(week: {
14
14
  date: Date;
15
15
  outside?: boolean;
16
16
  }>;
17
- }, isSelected?: (date: Date) => boolean): {
17
+ }, isSelected?: (date: Date) => boolean, options?: {
18
+ joinAdjacentWeek?: boolean;
19
+ panePeriod?: number;
20
+ periodForDate?: (date: Date) => number | undefined;
21
+ }): {
18
22
  prev: boolean;
19
23
  next: boolean;
20
24
  };
@@ -1,25 +1,29 @@
1
- function l(t) {
2
- return t.days.length > 0 && t.days.every((n) => n.outside);
1
+ function y(e) {
2
+ return e.days.length > 0 && e.days.every((t) => t.outside);
3
3
  }
4
- function d(t, n) {
5
- return n ? t.days.some((e) => !e.outside && n(e.date)) : !1;
4
+ function g(e, t) {
5
+ return t ? e.days.some((r) => !r.outside && t(r.date)) : !1;
6
6
  }
7
- function i(t, n) {
8
- return new Date(t.getFullYear(), t.getMonth(), t.getDate() + n);
7
+ function d(e, t) {
8
+ return new Date(e.getFullYear(), e.getMonth(), e.getDate() + t);
9
9
  }
10
- function u(t, n) {
11
- return t.getFullYear() !== n.getFullYear() || t.getMonth() !== n.getMonth();
10
+ function c(e, t) {
11
+ return e.getFullYear() !== t.getFullYear() || e.getMonth() !== t.getMonth();
12
12
  }
13
- function g(t, n) {
14
- if (!n) return { prev: !1, next: !1 };
15
- const e = t.days.filter((f) => !f.outside), o = e[0]?.date, r = e.at(-1)?.date, a = o ? i(o, -1) : void 0, s = r ? i(r, 1) : void 0;
13
+ function h(e, t, r) {
14
+ if (!t) return { prev: !1, next: !1 };
15
+ const a = e.days.find((n) => !n.outside)?.date, o = r?.joinAdjacentWeek ? e.days[0]?.date : e.days.find((n) => !n.outside)?.date, s = r?.joinAdjacentWeek ? e.days.at(-1)?.date : e.days.filter((n) => !n.outside).at(-1)?.date, f = o ? d(o, -1) : void 0, l = s ? d(s, 1) : void 0, i = (n) => {
16
+ if (!n || !t(n)) return !1;
17
+ const u = r?.periodForDate?.(n);
18
+ return r?.panePeriod != null && u != null ? u !== r.panePeriod : !!(a && c(n, a));
19
+ };
16
20
  return {
17
- prev: !!(a && o && u(a, o) && n(a)),
18
- next: !!(s && r && u(s, r) && n(s))
21
+ prev: i(f),
22
+ next: i(l)
19
23
  };
20
24
  }
21
25
  export {
22
- l as isCalendarPaddingWeek,
23
- d as weekHasInMonthSelection,
24
- g as weekIntervalContinues
26
+ y as isCalendarPaddingWeek,
27
+ g as weekHasInMonthSelection,
28
+ h as weekIntervalContinues
25
29
  };
@@ -17,6 +17,7 @@ export interface CalendarWeekNumberCellProps {
17
17
  fiscalWeekAriaLabel?: (meta: DateCellMeta) => string;
18
18
  getCellMeta?: (date: Date) => DateCellMeta | undefined;
19
19
  onWeekSelect: (input: WeekPickerInput) => void;
20
+ blank?: boolean;
20
21
  className?: string;
21
22
  }
22
- export declare function CalendarWeekNumberCell({ week, weekStartsOn, pickerType, calendarKind, weekNumberLabel, weekLabel, fiscalWeekNumberLabel, fiscalWeekAriaLabel, getCellMeta, onWeekSelect, className, ...weekProps }: CalendarWeekNumberCellProps & React.HTMLAttributes<HTMLElement>): import("react/jsx-runtime").JSX.Element;
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;
@@ -1,60 +1,61 @@
1
- import { jsx as n } from "react/jsx-runtime";
1
+ import { jsx as r } from "react/jsx-runtime";
2
2
  import "react";
3
- import { cn as k } from "../../../lib/utils.js";
4
- import { weekNumberBaseClassName as h, weekNumberInteractiveClassName as C, weekNumberSelectedFillClassName as M, weekNumberFocusClassName as v } from "./calendar-selection-appearance.js";
5
- function F(e, s) {
6
- const o = e.getFullYear(), u = e.getMonth(), c = (new Date(o, u, 1).getDay() + 7 - s) % 7, i = new Date(o, u, 1 - c), l = new Date(e), r = (e.getDay() + 7 - s) % 7;
7
- return l.setDate(e.getDate() - r), Math.round(
8
- (l.getTime() - i.getTime()) / (10080 * 60 * 1e3)
3
+ import { cn as h } from "../../../lib/utils.js";
4
+ import { weekNumberBaseClassName as y, weekNumberInteractiveClassName as M, weekNumberSelectedFillClassName as v, weekNumberFocusClassName as F } from "./calendar-selection-appearance.js";
5
+ function j(e, n) {
6
+ const s = e.getFullYear(), u = e.getMonth(), o = (new Date(s, u, 1).getDay() + 7 - n) % 7, c = new Date(s, u, 1 - o), i = new Date(e), m = (e.getDay() + 7 - n) % 7;
7
+ return i.setDate(e.getDate() - m), Math.round(
8
+ (i.getTime() - c.getTime()) / (10080 * 60 * 1e3)
9
9
  ) + 1;
10
10
  }
11
- function O({
11
+ function P({
12
12
  week: e,
13
- weekStartsOn: s,
14
- pickerType: o,
13
+ weekStartsOn: n,
14
+ pickerType: s,
15
15
  calendarKind: u = "gregorian",
16
- weekNumberLabel: y,
17
- weekLabel: D,
18
- fiscalWeekNumberLabel: c,
19
- fiscalWeekAriaLabel: i,
20
- getCellMeta: l,
21
- onWeekSelect: g,
22
- className: r,
23
- ...N
16
+ weekNumberLabel: D,
17
+ weekLabel: g,
18
+ fiscalWeekNumberLabel: o,
19
+ fiscalWeekAriaLabel: c,
20
+ getCellMeta: i,
21
+ onWeekSelect: N,
22
+ blank: m = !1,
23
+ className: l,
24
+ ...C
24
25
  }) {
25
26
  const d = e.days.find((f) => !f.outside)?.date;
26
- if (!d)
27
- return /* @__PURE__ */ n(
27
+ if (m || !d)
28
+ return /* @__PURE__ */ r(
28
29
  "th",
29
30
  {
30
31
  scope: "row",
31
32
  "aria-hidden": "true",
32
- className: k(
33
- h,
34
- r
33
+ className: h(
34
+ y,
35
+ l
35
36
  )
36
37
  }
37
38
  );
38
- const m = l?.(d), a = m?.fiscalWeek, w = F(d, s), p = a ?? w, b = a && c ? c(a) : y(p), x = a && m && i ? i(m) : D(w);
39
- if (o === "week") {
40
- const f = () => g(d);
41
- return /* @__PURE__ */ n(
39
+ const w = i?.(d), a = w?.fiscalWeek, p = j(d, n), k = a ?? p, b = a && o ? o(a) : D(k), x = a && w && c ? c(w) : g(p);
40
+ if (s === "week") {
41
+ const f = () => N(d);
42
+ return /* @__PURE__ */ r(
42
43
  "td",
43
44
  {
44
45
  "aria-label": x,
45
- "data-week-index": w,
46
- "data-week-number": p,
46
+ "data-week-index": p,
47
+ "data-week-number": k,
47
48
  "data-fiscal-week": a,
48
49
  "data-selection": "period-row",
49
50
  tabIndex: 0,
50
51
  role: "button",
51
- className: k(
52
- h,
52
+ className: h(
53
+ y,
54
+ F,
53
55
  v,
54
56
  M,
55
- C,
56
57
  "cursor-pointer transition-colors",
57
- r
58
+ l
58
59
  ),
59
60
  onClick: (t) => {
60
61
  t.preventDefault(), t.stopPropagation(), f();
@@ -62,26 +63,26 @@ function O({
62
63
  onKeyDown: (t) => {
63
64
  (t.key === "Enter" || t.key === " ") && (t.preventDefault(), t.stopPropagation(), f());
64
65
  },
65
- children: /* @__PURE__ */ n("div", { className: "flex h-9 w-full items-center justify-center text-center", children: b })
66
+ children: /* @__PURE__ */ r("div", { className: "flex h-9 w-full items-center justify-center text-center", children: b })
66
67
  }
67
68
  );
68
69
  }
69
- return /* @__PURE__ */ n(
70
+ return /* @__PURE__ */ r(
70
71
  "th",
71
72
  {
72
- ...N,
73
+ ...C,
73
74
  "aria-label": x,
74
- "data-week-number": p,
75
+ "data-week-number": k,
75
76
  "data-fiscal-week": a,
76
- className: k(
77
- h,
78
- r
77
+ className: h(
78
+ y,
79
+ l
79
80
  ),
80
81
  scope: "row",
81
- children: /* @__PURE__ */ n("div", { className: "flex h-9 w-full items-center justify-center text-center whitespace-nowrap", children: b })
82
+ children: /* @__PURE__ */ r("div", { className: "flex h-9 w-full items-center justify-center text-center whitespace-nowrap", children: b })
82
83
  }
83
84
  );
84
85
  }
85
86
  export {
86
- O as CalendarWeekNumberCell
87
+ P as CalendarWeekNumberCell
87
88
  };
@@ -14,6 +14,12 @@ export declare function fiscalPeriodForWeek(week: {
14
14
  }, getCellMeta?: (date: Date) => {
15
15
  fiscalPeriod?: number;
16
16
  } | undefined): number | undefined;
17
+ /** A fiscal week belongs to one period pane. Other panes keep a blank reserved row. */
18
+ export declare function isForeignFiscalWeekRow(options: {
19
+ calendarKind: CalendarKind;
20
+ weekPeriod?: number;
21
+ panePeriod?: number;
22
+ }): boolean;
17
23
  export declare function isSameWeek(w1: WeekSelection, w2: WeekSelection): boolean;
18
24
  export declare function calculateWeekSelection(weekOrDate: WeekPickerInput, options: {
19
25
  calendarKind: CalendarKind;
@@ -1,71 +1,74 @@
1
- import { civilFromLocalDate as m } from "../../../lib/fiscal-calendar/civil-date.js";
2
- import { resolveWeekSelection as T } from "../../../lib/fiscal-calendar/week-selection.js";
3
- function A(t, n) {
4
- const o = t.days.find((e) => !e.outside)?.date ?? t.days[0]?.date;
1
+ import { civilFromLocalDate as l } from "../../../lib/fiscal-calendar/civil-date.js";
2
+ import { resolveWeekSelection as W } from "../../../lib/fiscal-calendar/week-selection.js";
3
+ function v(e, n) {
4
+ const o = e.days[0]?.date;
5
5
  if (o)
6
6
  return n?.(o)?.fiscalPeriod;
7
7
  }
8
- function d(t, n) {
9
- return t.year === n.year && t.month === n.month && t.weekOfMonth === n.weekOfMonth;
8
+ function A(e) {
9
+ return e.calendarKind !== "fiscal" || e.weekPeriod == null || e.panePeriod == null ? !1 : e.weekPeriod !== e.panePeriod;
10
10
  }
11
- function _(t, n) {
12
- const o = t instanceof Date ? t : t.days.find((e) => !e.outside)?.date ?? t.days[0]?.date ?? /* @__PURE__ */ new Date();
13
- return T(o, n);
11
+ function m(e, n) {
12
+ return e.year === n.year && e.month === n.month && e.weekOfMonth === n.weekOfMonth;
14
13
  }
15
- function E(t, n, o) {
16
- if (o === "single") return t;
14
+ function _(e, n) {
15
+ const o = e instanceof Date ? e : e.days.find((t) => !t.outside)?.date ?? e.days[0]?.date ?? /* @__PURE__ */ new Date();
16
+ return W(o, n);
17
+ }
18
+ function E(e, n, o) {
19
+ if (o === "single") return e;
17
20
  if (o === "multiple") {
18
21
  const a = n || [];
19
- return a.some((f) => d(f, t)) ? a.filter((f) => !d(f, t)) : [...a, t];
22
+ return a.some((f) => m(f, e)) ? a.filter((f) => !m(f, e)) : [...a, e];
20
23
  }
21
- const e = n;
22
- if (!e?.from || e.to) return { from: t };
23
- if (d(t, e.from)) return e;
24
- const s = { from: e.from, to: t };
25
- return t.startDate < e.from.startDate && (s.from = t, s.to = e.from), s;
24
+ const t = n;
25
+ if (!t?.from || t.to) return { from: e };
26
+ if (m(e, t.from)) return t;
27
+ const s = { from: t.from, to: e };
28
+ return e.startDate < t.from.startDate && (s.from = e, s.to = t.from), s;
26
29
  }
27
- function x(t) {
28
- if (!t) return;
29
- const n = [], o = (e) => {
30
- const s = new Date(e.startDate);
30
+ function x(e) {
31
+ if (!e) return;
32
+ const n = [], o = (t) => {
33
+ const s = new Date(t.startDate);
31
34
  s.setHours(0, 0, 0, 0);
32
- const a = new Date(e.endDate);
35
+ const a = new Date(t.endDate);
33
36
  for (a.setHours(0, 0, 0, 0); s <= a; )
34
37
  n.push(new Date(s)), s.setDate(s.getDate() + 1);
35
38
  };
36
- if (Array.isArray(t))
37
- t.forEach(o);
38
- else if ("from" in t) {
39
- if (t.from)
40
- if (!t.to)
41
- o(t.from);
39
+ if (Array.isArray(e))
40
+ e.forEach(o);
41
+ else if ("from" in e) {
42
+ if (e.from)
43
+ if (!e.to)
44
+ o(e.from);
42
45
  else {
43
- const e = new Date(t.from.startDate);
44
- e.setHours(0, 0, 0, 0);
45
- const s = new Date(t.to.endDate);
46
- for (s.setHours(0, 0, 0, 0); e <= s; )
47
- n.push(new Date(e)), e.setDate(e.getDate() + 1);
46
+ const t = new Date(e.from.startDate);
47
+ t.setHours(0, 0, 0, 0);
48
+ const s = new Date(e.to.endDate);
49
+ for (s.setHours(0, 0, 0, 0); t <= s; )
50
+ n.push(new Date(t)), t.setDate(t.getDate() + 1);
48
51
  }
49
52
  } else
50
- o(t);
53
+ o(e);
51
54
  return n;
52
55
  }
53
- function H(t, n, o) {
54
- if (!t || t.length === 0)
56
+ function F(e, n, o) {
57
+ if (!e || e.length === 0)
55
58
  return { range_start: [], range_middle: [], range_end: [] };
56
- const e = [...t].sort((r, i) => r.getTime() - i.getTime()), s = [], a = [], u = [], f = /* @__PURE__ */ new Set(), l = /* @__PURE__ */ new Set();
59
+ const t = [...e].sort((r, i) => r.getTime() - i.getTime()), s = [], a = [], u = [], f = /* @__PURE__ */ new Set(), d = /* @__PURE__ */ new Set();
57
60
  n === "multiple" && Array.isArray(o) && o.forEach((r) => {
58
- f.add(m(r.startDate)), l.add(m(r.endDate));
61
+ f.add(l(r.startDate)), d.add(l(r.endDate));
59
62
  });
60
- const p = (r, i) => {
63
+ const D = (r, i) => {
61
64
  if (i === 0) return !1;
62
- const c = e[i - 1];
65
+ const c = t[i - 1];
63
66
  return r.getTime() - c.getTime() <= 1440 * 60 * 1e3;
64
- }, D = (r, i) => i === e.length - 1 ? !1 : e[i + 1].getTime() - r.getTime() <= 1440 * 60 * 1e3;
65
- return e.forEach((r, i) => {
66
- const c = m(r), y = f.has(c), S = l.has(c), h = p(r, i), g = D(r, i);
67
+ }, p = (r, i) => i === t.length - 1 ? !1 : t[i + 1].getTime() - r.getTime() <= 1440 * 60 * 1e3;
68
+ return t.forEach((r, i) => {
69
+ const c = l(r), S = f.has(c), y = d.has(c), h = D(r, i), g = p(r, i);
67
70
  if (n === "multiple") {
68
- y ? s.push(r) : S ? u.push(r) : a.push(r);
71
+ S ? s.push(r) : y ? u.push(r) : a.push(r);
69
72
  return;
70
73
  }
71
74
  !h && !g ? (s.push(r), u.push(r)) : h ? g ? a.push(r) : u.push(r) : s.push(r);
@@ -73,9 +76,10 @@ function H(t, n, o) {
73
76
  }
74
77
  export {
75
78
  _ as calculateWeekSelection,
76
- H as computeWeekRangeModifiers,
77
- A as fiscalPeriodForWeek,
78
- d as isSameWeek,
79
+ F as computeWeekRangeModifiers,
80
+ v as fiscalPeriodForWeek,
81
+ A as isForeignFiscalWeekRow,
82
+ m as isSameWeek,
79
83
  E as nextWeekSelection,
80
84
  x as weekSelectionsToDates
81
85
  };