impact-nova 2.5.10 → 2.5.11

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 (59) hide show
  1. package/dist/components/data/expandable-list-item/expandable-list-item-attributes.js +3 -2
  2. package/dist/components/data/expandable-list-item/expandable-list-item-metrics.js +3 -2
  3. package/dist/components/data-display/calendar/calendar-apply-validation.d.ts +2 -0
  4. package/dist/components/data-display/calendar/calendar-apply-validation.js +64 -67
  5. package/dist/components/data-display/calendar/calendar-available-view.d.ts +27 -0
  6. package/dist/components/data-display/calendar/calendar-available-view.js +85 -0
  7. package/dist/components/data-display/calendar/calendar-day-picker-components.d.ts +4 -2
  8. package/dist/components/data-display/calendar/calendar-day-picker-components.js +163 -152
  9. package/dist/components/data-display/calendar/calendar-day-picker-view.js +77 -76
  10. package/dist/components/data-display/calendar/calendar-fiscal-period-nav.d.ts +6 -0
  11. package/dist/components/data-display/calendar/calendar-fiscal-period-nav.js +34 -18
  12. package/dist/components/data-display/calendar/calendar-month-utils.d.ts +5 -0
  13. package/dist/components/data-display/calendar/calendar-month-utils.js +85 -64
  14. package/dist/components/data-display/calendar/calendar-selection-appearance.d.ts +1 -0
  15. package/dist/components/data-display/calendar/calendar-selection-appearance.js +31 -30
  16. package/dist/components/data-display/calendar/calendar-week-number-cell.d.ts +2 -1
  17. package/dist/components/data-display/calendar/calendar-week-number-cell.js +55 -41
  18. package/dist/components/data-display/calendar/calendar-year-panes.d.ts +2 -0
  19. package/dist/components/data-display/calendar/calendar-year-panes.js +3 -1
  20. package/dist/components/data-display/calendar/calendar.js +146 -143
  21. package/dist/components/data-display/calendar/calendar.types.d.ts +5 -0
  22. package/dist/components/data-display/calendar/use-calendar-day-picker-config.d.ts +2 -1
  23. package/dist/components/data-display/calendar/use-calendar-day-picker-config.js +79 -74
  24. package/dist/components/data-display/calendar/use-calendar-state.d.ts +3 -1
  25. package/dist/components/data-display/calendar/use-calendar-state.js +403 -325
  26. package/dist/components/feedback/tooltip/tab-tooltip-render.js +3 -2
  27. package/dist/components/flows/command-palette/shortcut-settings.js +10 -10
  28. package/dist/components/flows/filter-panel/filter-panel.js +4 -4
  29. package/dist/components/forms/date-picker/date-picker.js +60 -58
  30. package/dist/components/forms/date-picker/date-picker.types.d.ts +5 -0
  31. package/dist/components/forms/date-picker/date-range-picker.js +66 -64
  32. package/dist/components/forms/date-picker/fiscal-pass-through.d.ts +1 -0
  33. package/dist/components/forms/date-picker/fiscal-pass-through.js +3 -2
  34. package/dist/components/forms/date-picker/month-picker.js +61 -59
  35. package/dist/components/forms/date-picker/month-range-picker.js +63 -61
  36. package/dist/components/forms/date-picker/multi-date-picker.js +51 -49
  37. package/dist/components/forms/date-picker/multi-month-picker.js +49 -47
  38. package/dist/components/forms/date-picker/multi-quarter-picker.js +46 -44
  39. package/dist/components/forms/date-picker/multi-week-picker.js +53 -51
  40. package/dist/components/forms/date-picker/multi-year-picker.js +48 -46
  41. package/dist/components/forms/date-picker/quarter-picker.js +46 -44
  42. package/dist/components/forms/date-picker/quarter-range-picker.js +45 -43
  43. package/dist/components/forms/date-picker/week-picker.js +68 -66
  44. package/dist/components/forms/date-picker/week-range-picker.js +82 -80
  45. package/dist/components/forms/date-picker/year-picker.js +47 -45
  46. package/dist/components/forms/date-picker/year-range-picker.js +47 -45
  47. package/dist/components/forms/select/components/SelectTriggerValue.js +3 -2
  48. package/dist/components/forms/select/components/Submenu.js +3 -2
  49. package/dist/form-react/Fields/DateInputField.js +51 -50
  50. package/dist/form-react/Fields/DateRangeField.js +14 -13
  51. package/dist/form-react/Fields/MonthRangeField.js +29 -28
  52. package/dist/form-react/Fields/MultiMonthPickerField.js +13 -12
  53. package/dist/form-react/Fields/MultiWeekPickerField.js +18 -17
  54. package/dist/form-react/Fields/WeekRangePicker.js +22 -21
  55. package/dist/form-react/types/fields.types.d.ts +12 -0
  56. package/dist/impact-nova.css +1 -1
  57. package/dist/llms/rules/installation.js +1 -1
  58. package/dist/llms/rules/requirements.js +1 -1
  59. package/package.json +1 -1
@@ -1,151 +1,152 @@
1
- import { jsx as H } from "react/jsx-runtime";
2
- import * as x from "react";
1
+ import { jsx as x } from "react/jsx-runtime";
2
+ import * as B from "react";
3
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";
4
+ import { cn as ur } from "../../../lib/utils.js";
5
+ import { formatPeriodOption as dr } from "./calendar-fiscal-labels.js";
6
6
  import { CalendarDayHoverProvider as gr } from "./calendar-day-hover.js";
7
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";
8
+ import { isPreviewCap as u, dayKey as l, isPreviewMiddle as _r } from "./calendar-selection.js";
9
9
  import { useCalendarDayPickerConfig as yr } from "./use-calendar-day-picker-config.js";
10
10
  function Br({
11
- className: B,
11
+ className: E,
12
12
  pickerType: s,
13
13
  mode: e,
14
14
  weekMode: f,
15
15
  calendarKind: m,
16
- granularity: E,
17
- showOutsideDays: u,
16
+ granularity: F,
17
+ showOutsideDays: d,
18
18
  fixedWeeks: g,
19
- captionLayout: F,
20
- buttonVariant: L,
19
+ captionLayout: L,
20
+ buttonVariant: O,
21
21
  weekStartsOn: v,
22
- formatters: O,
23
- classNames: V,
24
- components: Y,
22
+ formatters: V,
23
+ classNames: Y,
24
+ components: k,
25
25
  selected: P,
26
26
  showFooter: _,
27
27
  showPeriodBoundaries: p,
28
28
  pendingSelection: y,
29
- selectedDaysFromWeeks: k,
29
+ selectedDaysFromWeeks: R,
30
30
  currentMonth: D,
31
- monthsFull: R,
32
- monthsShort: $,
33
- weekNumberHeader: q,
34
- resolvedStartMonth: b,
35
- resolvedEndMonth: w,
36
- availableYears: z,
31
+ monthsFull: $,
32
+ monthsShort: q,
33
+ weekNumberHeader: z,
34
+ resolvedStartMonth: w,
35
+ resolvedEndMonth: b,
36
+ availableYears: A,
37
37
  fiscalPeriods: C,
38
- fiscalConfig: A,
39
- dateFnsLocale: G,
40
- intlLocale: I,
41
- weekRangeModifiers: J,
42
- onSelect: M,
38
+ fiscalConfig: G,
39
+ dateFnsLocale: I,
40
+ intlLocale: J,
41
+ weekRangeModifiers: M,
42
+ onSelect: Q,
43
43
  onMonthChange: N,
44
- onWeekSelect: Q,
45
- previousMonthLabel: U,
46
- nextMonthLabel: X,
47
- monthPlaceholder: Z,
48
- yearPlaceholder: W,
44
+ onWeekSelect: U,
45
+ previousMonthLabel: X,
46
+ nextMonthLabel: Z,
47
+ monthPlaceholder: W,
48
+ yearPlaceholder: K,
49
49
  weekNumberLabel: S,
50
- weekLabel: K,
51
- fiscalWeekAriaLabel: T,
50
+ weekLabel: T,
51
+ fiscalWeekAriaLabel: rr,
52
52
  getCellMeta: n,
53
- formatWeekNumber: rr,
54
- disabled: or,
55
- showWeekNumber: h = !0,
53
+ formatWeekNumber: or,
54
+ disabled: h,
55
+ showWeekNumber: j = !0,
56
56
  ...tr
57
57
  }) {
58
58
  const { dayPickerClassNames: ar, dayPickerComponents: ir } = yr({
59
- buttonVariant: L,
59
+ buttonVariant: O,
60
60
  pickerType: s,
61
61
  calendarKind: m,
62
- granularity: E,
63
- showOutsideDays: u,
64
- classNames: V,
62
+ granularity: F,
63
+ showOutsideDays: d,
64
+ classNames: Y,
65
65
  currentMonth: D,
66
- monthsFull: R,
67
- monthsShort: $,
68
- weekNumberHeader: q,
69
- resolvedStartMonth: b,
70
- resolvedEndMonth: w,
71
- availableYears: z,
66
+ monthsFull: $,
67
+ monthsShort: q,
68
+ weekNumberHeader: z,
69
+ resolvedStartMonth: w,
70
+ resolvedEndMonth: b,
71
+ availableYears: A,
72
72
  fiscalPeriods: C,
73
- fiscalConfig: A,
73
+ fiscalConfig: G,
74
74
  weekStartsOn: v,
75
- previousMonthLabel: U,
76
- nextMonthLabel: X,
77
- monthPlaceholder: Z,
78
- yearPlaceholder: W,
75
+ previousMonthLabel: X,
76
+ nextMonthLabel: Z,
77
+ monthPlaceholder: W,
78
+ yearPlaceholder: K,
79
79
  weekNumberLabel: S,
80
- weekLabel: K,
80
+ weekLabel: T,
81
81
  fiscalWeekNumberLabel: S,
82
- fiscalWeekAriaLabel: T,
82
+ fiscalWeekAriaLabel: rr,
83
83
  getCellMeta: n,
84
84
  onMonthChange: N,
85
- onWeekSelect: Q,
85
+ onWeekSelect: U,
86
86
  weekMode: f,
87
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 ? {
88
+ showWeekNumber: j,
89
+ disabled: h,
90
+ components: k
91
+ }), 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" || d, H = p && n ? {
91
92
  fiscal_period_start: (r) => !!n(r)?.isPeriodStart,
92
93
  fiscal_period_end: (r) => !!n(r)?.isPeriodEnd
93
- } : void 0, [t, cr] = x.useState(), fr = x.useCallback((r) => {
94
+ } : void 0, [t, cr] = B.useState(), fr = B.useCallback((r) => {
94
95
  cr((o) => !o && !r || o && r && o.getFullYear() === r.getFullYear() && o.getMonth() === r.getMonth() && o.getDate() === r.getDate() ? o : r);
95
96
  }, []), 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
+ return /* @__PURE__ */ x(gr, { onDayHover: fr, children: /* @__PURE__ */ x(
97
98
  pr,
98
99
  {
99
100
  mode: nr,
100
- selected: s === "week" ? k : _ ? y : P,
101
+ selected: s === "week" ? R : _ ? y : P,
101
102
  onSelect: (...r) => {
102
103
  const [o, c] = r;
103
- M(o, c instanceof Date ? c : void 0);
104
+ Q(o, c instanceof Date ? c : void 0);
104
105
  },
105
106
  month: D,
106
107
  onMonthChange: N,
107
108
  fixedWeeks: g,
108
109
  showOutsideDays: sr,
109
110
  weekStartsOn: v,
110
- modifiers: s === "week" ? { ...J, ...j } : { ...j, ...s === "date" && !!(i && !mr && t) && i && t ? {
111
+ modifiers: s === "week" ? { ...M, ...H } : { ...H, ...s === "date" && !!(i && !mr && t) && i && t ? {
111
112
  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)
113
+ preview_cap: (r) => u(r, i, t),
114
+ preview_cap_start: (r) => u(r, i, t) && l(t) < l(i),
115
+ preview_cap_end: (r) => u(r, i, t) && l(t) > l(i)
115
116
  } : void 0 },
116
117
  modifiersClassNames: {
117
118
  ...p && m === "fiscal" ? Pr : void 0,
118
119
  ...vr
119
120
  },
120
- locale: G,
121
- className: dr(
121
+ locale: I,
122
+ className: ur(
122
123
  "bg-canvas group/calendar p-2 [[data-slot=card-content]_&]:bg-transparent [[data-slot=popover-content]_&]:bg-transparent",
123
124
  String.raw`rtl:**:[.rdp-button\_next>svg]:rotate-180`,
124
125
  String.raw`rtl:**:[.rdp-button\_previous>svg]:rotate-180`,
125
- B
126
+ E
126
127
  ),
127
- captionLayout: F,
128
+ captionLayout: L,
128
129
  navLayout: "around",
129
- startMonth: b,
130
- endMonth: w,
131
- disabled: or,
130
+ startMonth: w,
131
+ endMonth: b,
132
+ disabled: h,
132
133
  numberOfMonths: er,
133
134
  formatters: {
134
135
  formatMonthDropdown: (r) => {
135
136
  if (m === "fiscal" && n) {
136
137
  const o = n(r), c = C?.find((lr) => lr.period === o?.fiscalPeriod);
137
- if (c) return ur(c);
138
+ if (c) return dr(c);
138
139
  if (o?.fiscalPeriod != null) return `P${o.fiscalPeriod}`;
139
140
  }
140
- return r.toLocaleString(I, { month: "short" });
141
+ return r.toLocaleString(J, { month: "short" });
141
142
  },
142
- formatWeekNumber: rr,
143
- ...O
143
+ formatWeekNumber: or,
144
+ ...V
144
145
  },
145
146
  classNames: ar,
146
147
  components: ir,
147
148
  ...tr,
148
- showWeekNumber: h
149
+ showWeekNumber: j
149
150
  }
150
151
  ) });
151
152
  }
@@ -14,3 +14,9 @@ export declare function dominantCivilMonthForPeriod(period: FiscalPeriod): {
14
14
  export declare function visibleMonthForPeriod(period: FiscalPeriod, isRightPanel: boolean): Date;
15
15
  /** Period that occupies the most days of a civil month (caption selected value). */
16
16
  export declare function periodForCivilMonth(periods: readonly FiscalPeriod[], year: number, monthIndex: number): FiscalPeriod | undefined;
17
+ export declare function periodsAvailableInBounds(periods: readonly FiscalPeriod[], disabled?: unknown): FiscalPeriod[];
18
+ export declare function periodForFiscalYearChange(options: {
19
+ periods: readonly FiscalPeriod[];
20
+ preferredPeriod?: number;
21
+ disabled?: unknown;
22
+ }): FiscalPeriod | undefined;
@@ -1,17 +1,18 @@
1
- import { setDate as m, startOfMonth as s, addMonths as h } from "date-fns";
2
- import { parseCivilDate as d, toCivilDate as l, lastDayOfMonth as y, compareCivil as u, diffDays as v, minCivil as M, maxCivil as p } from "../../../lib/fiscal-calendar/civil-date.js";
3
- function x(t) {
1
+ import { setDate as m, startOfMonth as s, addMonths as f } from "date-fns";
2
+ import { localDateFromCivil as d, parseCivilDate as h, toCivilDate as u, lastDayOfMonth as v, compareCivil as y, diffDays as p, minCivil as D, maxCivil as M } from "../../../lib/fiscal-calendar/civil-date.js";
3
+ import { isDateIntervalDisabled as C } from "./calendar-month-utils.js";
4
+ function O(t) {
4
5
  return m(s(t), 15);
5
6
  }
6
- function b(t, n) {
7
- return s(h(t, n));
7
+ function S(t, n) {
8
+ return s(f(t, n));
8
9
  }
9
10
  function c(t, n, o, e) {
10
- const r = l(o, e + 1, 1), a = y(o, e + 1), i = p(t, r), f = M(n, a);
11
- return u(i, f) > 0 ? 0 : v(f, i) + 1;
11
+ const r = u(o, e + 1, 1), a = v(o, e + 1), i = M(t, r), l = D(n, a);
12
+ return y(i, l) > 0 ? 0 : p(l, i) + 1;
12
13
  }
13
- function C(t) {
14
- const n = d(t.start);
14
+ function b(t) {
15
+ const n = h(t.start);
15
16
  let o = { year: n.y, monthIndex: n.m - 1, days: 0 };
16
17
  const e = t.gregorianMonthSpan.length > 0 ? t.gregorianMonthSpan : [{ year: n.y, month: n.m - 1 }];
17
18
  for (const { year: r, month: a } of e) {
@@ -20,11 +21,11 @@ function C(t) {
20
21
  }
21
22
  return { year: o.year, monthIndex: o.monthIndex };
22
23
  }
23
- function I(t, n) {
24
- const { year: o, monthIndex: e } = C(t), r = s(new Date(o, e, 1));
25
- return n ? h(r, -1) : r;
24
+ function P(t, n) {
25
+ const { year: o, monthIndex: e } = b(t), r = s(new Date(o, e, 1));
26
+ return n ? f(r, -1) : r;
26
27
  }
27
- function O(t, n, o) {
28
+ function A(t, n, o) {
28
29
  let e, r = 0;
29
30
  for (const a of t) {
30
31
  const i = c(a.start, a.end, n, o);
@@ -32,10 +33,25 @@ function O(t, n, o) {
32
33
  }
33
34
  return e;
34
35
  }
36
+ function g(t, n) {
37
+ return t.filter(
38
+ (o) => !C(
39
+ d(o.start),
40
+ d(o.end),
41
+ n
42
+ )
43
+ );
44
+ }
45
+ function E(t) {
46
+ const n = g(t.periods, t.disabled);
47
+ return n.find((o) => o.period === t.preferredPeriod) ?? n[0];
48
+ }
35
49
  export {
36
- b as civilMonthAtOffset,
37
- C as dominantCivilMonthForPeriod,
38
- x as midMonthDate,
39
- O as periodForCivilMonth,
40
- I as visibleMonthForPeriod
50
+ S as civilMonthAtOffset,
51
+ b as dominantCivilMonthForPeriod,
52
+ O as midMonthDate,
53
+ A as periodForCivilMonth,
54
+ E as periodForFiscalYearChange,
55
+ g as periodsAvailableInBounds,
56
+ P as visibleMonthForPeriod
41
57
  };
@@ -1,4 +1,5 @@
1
1
  import { Option } from '../../forms/select';
2
+ import { Granularity } from '../../../lib/fiscal-calendar';
2
3
  import { MonthRange, MonthSelection } from './calendar.types';
3
4
  export declare function isSameMonth(m1: MonthSelection, m2: MonthSelection): boolean;
4
5
  export declare function nextMonthSelection(selection: MonthSelection, prev: MonthSelection | MonthSelection[] | MonthRange | undefined, monthMode: "single" | "multiple" | "range"): MonthSelection | MonthSelection[] | MonthRange | undefined;
@@ -10,6 +11,10 @@ export declare function getMonthRangeProps(year: number, month: number, currentS
10
11
  };
11
12
  /** True when the interval lies completely outside `disabled.before` / `disabled.after`. */
12
13
  export declare function isDateIntervalDisabled(start: Date, end: Date, disabled?: unknown): boolean;
14
+ /** True when every day of `[start, end]` is inside `disabled.before` / `disabled.after`. */
15
+ export declare function isWeekFullyInsideBounds(start: Date, end: Date, disabled?: unknown): boolean;
16
+ /** Week granularity requires every day in bounds; other granularities allow mixed weeks. */
17
+ export declare function isWeekSelectableInBounds(start: Date, end: Date, disabled?: unknown, granularity?: Granularity): boolean;
13
18
  export declare function isMonthDisabled(year: number, monthIndex: number, disabled?: unknown): boolean;
14
19
  export declare function getAvailableYears(startMonth: Date, endMonth: Date): Option[];
15
20
  export declare function getAvailableMonths(year: number, monthsFull: string[], startMonth: Date, endMonth: Date): Option[];
@@ -1,97 +1,118 @@
1
- import { isMonthRangeSelection as d } from "../../forms/date-picker/calendar-selection-adapters.js";
2
- function l(e, n) {
3
- return e.fy != null && n.fy != null && e.period != null && n.period != null ? e.fy === n.fy && e.period === n.period : e.year === n.year && e.month === n.month;
1
+ import { isMonthRangeSelection as c } from "../../forms/date-picker/calendar-selection-adapters.js";
2
+ function u(t, n) {
3
+ return t.fy != null && n.fy != null && t.period != null && n.period != null ? t.fy === n.fy && t.period === n.period : t.year === n.year && t.month === n.month;
4
4
  }
5
- function g(e, n, o) {
6
- if (o === "single") return e;
5
+ function g(t, n, o) {
6
+ if (o === "single") return t;
7
7
  if (o === "multiple") {
8
- const a = n || [];
9
- return a.some((f) => l(f, e)) ? a.filter((f) => !l(f, e)) : [...a, e];
8
+ const r = n || [];
9
+ return r.some((i) => u(i, t)) ? r.filter((i) => !u(i, t)) : [...r, t];
10
10
  }
11
- const t = n;
12
- if (!t?.from || t.to) return { from: e };
13
- const s = new Date(t.from.year, t.from.month, 1);
14
- return new Date(e.year, e.month, 1) < s ? { from: e, to: t.from } : { from: t.from, to: e };
11
+ const e = n;
12
+ if (!e?.from || e.to) return { from: t };
13
+ const s = new Date(e.from.year, e.from.month, 1);
14
+ return new Date(t.year, t.month, 1) < s ? { from: t, to: e.from } : { from: e.from, to: t };
15
15
  }
16
- function m(e, n, o) {
16
+ function w(t, n, o) {
17
17
  if (!o) return !1;
18
18
  if (Array.isArray(o)) {
19
- const s = { year: e, month: n, fy: e, period: n + 1 };
20
- return o.some((r) => l(r, s) || r.year === e && r.month === n);
19
+ const s = { year: t, month: n, fy: t, period: n + 1 };
20
+ return o.some((a) => u(a, s) || a.year === t && a.month === n);
21
21
  }
22
- if (d(o)) {
23
- const s = o, r = s.from, a = s.to;
24
- if (!r && !a) return !1;
25
- const i = new Date(e, n, 1).getTime();
26
- if (!r) return a ? i === new Date(a.year, a.month, 1).getTime() : !1;
27
- const f = new Date(r.year, r.month, 1).getTime();
28
- if (!a) return i === f;
29
- const u = new Date(a.year, a.month, 1).getTime();
30
- return i >= f && i <= u;
22
+ if (c(o)) {
23
+ const s = o, a = s.from, r = s.to;
24
+ if (!a && !r) return !1;
25
+ const f = new Date(t, n, 1).getTime();
26
+ if (!a) return r ? f === new Date(r.year, r.month, 1).getTime() : !1;
27
+ const i = new Date(a.year, a.month, 1).getTime();
28
+ if (!r) return f === i;
29
+ const d = new Date(r.year, r.month, 1).getTime();
30
+ return f >= i && f <= d;
31
31
  }
32
- const t = o;
33
- return t.fy != null && t.period != null ? t.fy === e && t.period === n + 1 : t.year === e && t.month === n;
32
+ const e = o;
33
+ return e.fy != null && e.period != null ? e.fy === t && e.period === n + 1 : e.year === t && e.month === n;
34
34
  }
35
- function y(e, n, o) {
35
+ function y(t, n, o) {
36
36
  if (!o || !("from" in o))
37
37
  return { isStart: !1, isEnd: !1, isMiddle: !1 };
38
- const t = o, s = t.from, r = t.to;
39
- if (!s && !r) return { isStart: !1, isEnd: !1, isMiddle: !1 };
40
- const a = new Date(e, n, 1).getTime();
38
+ const e = o, s = e.from, a = e.to;
39
+ if (!s && !a) return { isStart: !1, isEnd: !1, isMiddle: !1 };
40
+ const r = new Date(t, n, 1).getTime();
41
41
  if (!s)
42
42
  return {
43
43
  isStart: !1,
44
- isEnd: r ? a === new Date(r.year, r.month, 1).getTime() : !1,
44
+ isEnd: a ? r === new Date(a.year, a.month, 1).getTime() : !1,
45
45
  isMiddle: !1
46
46
  };
47
- const i = new Date(s.year, s.month, 1).getTime();
48
- if (!r) return { isStart: a === i, isEnd: !1, isMiddle: !1 };
49
- const f = new Date(r.year, r.month, 1).getTime();
47
+ const f = new Date(s.year, s.month, 1).getTime();
48
+ if (!a) return { isStart: r === f, isEnd: !1, isMiddle: !1 };
49
+ const i = new Date(a.year, a.month, 1).getTime();
50
50
  return {
51
- isStart: a === i,
52
- isEnd: a === f,
53
- isMiddle: a > i && a < f
51
+ isStart: r === f,
52
+ isEnd: r === i,
53
+ isMiddle: r > f && r < i
54
54
  };
55
55
  }
56
- function D(e, n, o) {
57
- const t = o;
58
- if (!t || typeof t != "object" || !("before" in t) && !("after" in t)) return !1;
59
- const s = new Date(e);
56
+ function l(t, n, o) {
57
+ const e = o;
58
+ if (!e || typeof e != "object" || !("before" in e) && !("after" in e)) return !1;
59
+ const s = new Date(t);
60
60
  s.setHours(0, 0, 0, 0);
61
- const r = new Date(n);
62
- if (r.setHours(23, 59, 59, 999), t.before) {
63
- const a = new Date(t.before);
64
- if (a.setHours(0, 0, 0, 0), r < a) return !0;
61
+ const a = new Date(n);
62
+ if (a.setHours(23, 59, 59, 999), e.before) {
63
+ const r = new Date(e.before);
64
+ if (r.setHours(0, 0, 0, 0), a < r) return !0;
65
65
  }
66
- if (t.after) {
67
- const a = new Date(t.after);
68
- if (a.setHours(23, 59, 59, 999), s > a) return !0;
66
+ if (e.after) {
67
+ const r = new Date(e.after);
68
+ if (r.setHours(23, 59, 59, 999), s > r) return !0;
69
69
  }
70
70
  return !1;
71
71
  }
72
- function w(e, n, o) {
73
- const t = new Date(e, n, 1, 0, 0, 0, 0), s = new Date(e, n + 1, 0, 23, 59, 59, 999);
74
- return D(t, s, o);
72
+ function D(t, n, o) {
73
+ const e = o;
74
+ if (!e || typeof e != "object" || !("before" in e) && !("after" in e)) return !0;
75
+ const s = new Date(t);
76
+ s.setHours(0, 0, 0, 0);
77
+ const a = new Date(n);
78
+ if (a.setHours(0, 0, 0, 0), e.before) {
79
+ const r = new Date(e.before);
80
+ if (r.setHours(0, 0, 0, 0), s < r) return !1;
81
+ }
82
+ if (e.after) {
83
+ const r = new Date(e.after);
84
+ if (r.setHours(0, 0, 0, 0), a > r) return !1;
85
+ }
86
+ return !0;
87
+ }
88
+ function b(t, n, o, e) {
89
+ return e && e !== "week" ? !l(t, n, o) : D(t, n, o);
90
+ }
91
+ function h(t, n, o) {
92
+ const e = new Date(t, n, 1, 0, 0, 0, 0), s = new Date(t, n + 1, 0, 23, 59, 59, 999);
93
+ return l(e, s, o);
75
94
  }
76
- function h(e, n) {
77
- const o = e.getFullYear(), t = n.getFullYear(), s = [];
78
- for (let r = o; r <= t; r++)
79
- s.push({ label: r.toString(), value: r.toString() });
95
+ function p(t, n) {
96
+ const o = t.getFullYear(), e = n.getFullYear(), s = [];
97
+ for (let a = o; a <= e; a++)
98
+ s.push({ label: a.toString(), value: a.toString() });
80
99
  return s;
81
100
  }
82
- function p(e, n, o, t) {
83
- return n.map((s, r) => ({ label: s, value: r.toString() })).filter((s, r) => {
84
- const a = new Date(e, r, 1);
85
- return !(a < new Date(o.getFullYear(), o.getMonth(), 1) || a > new Date(t.getFullYear(), t.getMonth(), 1));
101
+ function M(t, n, o, e) {
102
+ return n.map((s, a) => ({ label: s, value: a.toString() })).filter((s, a) => {
103
+ const r = new Date(t, a, 1);
104
+ return !(r < new Date(o.getFullYear(), o.getMonth(), 1) || r > new Date(e.getFullYear(), e.getMonth(), 1));
86
105
  });
87
106
  }
88
107
  export {
89
- p as getAvailableMonths,
90
- h as getAvailableYears,
108
+ M as getAvailableMonths,
109
+ p as getAvailableYears,
91
110
  y as getMonthRangeProps,
92
- D as isDateIntervalDisabled,
93
- w as isMonthDisabled,
94
- m as isMonthSelected,
95
- l as isSameMonth,
111
+ l as isDateIntervalDisabled,
112
+ h as isMonthDisabled,
113
+ w as isMonthSelected,
114
+ u as isSameMonth,
115
+ D as isWeekFullyInsideBounds,
116
+ b as isWeekSelectableInBounds,
96
117
  g as nextMonthSelection
97
118
  };
@@ -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";
@@ -1,5 +1,5 @@
1
1
  import { cn as e } from "../../../lib/utils.js";
2
- const l = "h-9 w-9 min-h-9 min-w-9", y = "min-w-[292px]", d = "w-9 flex-shrink-0", s = "bg-accent", i = "bg-brand text-brand-foreground", c = "hover:bg-brand-strong hover:text-brand-foreground hover:border-transparent", a = "rounded-lg", I = "rounded-l-lg", k = "rounded-r-lg", u = e(
2
+ const l = "h-9 w-9 min-h-9 min-w-9", E = "min-w-[292px]", d = "w-9 flex-shrink-0", s = "bg-accent", c = "bg-brand text-brand-foreground", i = "hover:bg-brand-strong hover:text-brand-foreground hover:border-transparent", a = "rounded-lg", k = "rounded-l-lg", I = "rounded-r-lg", u = e(
3
3
  "flex items-center justify-center p-0 font-normal text-sm transition-colors",
4
4
  "border border-transparent",
5
5
  a,
@@ -8,65 +8,66 @@ const l = "h-9 w-9 min-h-9 min-w-9", y = "min-w-[292px]", d = "w-9 flex-shrink-0
8
8
  l,
9
9
  "rdp-day rdp-day_button"
10
10
  ), p = "hover:bg-accent hover:text-accent-foreground hover:border-transparent", m = "hover:bg-transparent hover:text-inherit hover:border-transparent", v = e(
11
- i,
12
11
  c,
12
+ i,
13
13
  a,
14
14
  "border-transparent"
15
- ), b = "text-accent-foreground rounded-none border-transparent", L = e(
15
+ ), b = "text-accent-foreground rounded-none border-transparent", B = 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
- ), C = "calendar-interval-cap-start", S = e(s, "rounded-none"), N = "calendar-interval-cap-end", A = e(s, "rounded-none"), B = C, R = N, f = "text-[11px] font-medium text-content-icon", D = "text-brand group-has-[.rdp-selected]/week:text-brand group-hover/week:text-brand", O = e(
18
+ ), N = "calendar-interval-cap-start", L = e(s, "rounded-none"), C = "calendar-interval-cap-end", S = e(s, "rounded-none"), A = N, R = C, f = "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", H = e(
19
19
  "select-none flex items-center justify-center",
20
20
  f,
21
21
  l,
22
22
  d,
23
23
  "rdp-week_number"
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(
24
+ ), M = "group-data-[week-selected]/week:bg-accent", P = "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
  a,
27
27
  "focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-focus-ring focus-visible:ring-offset-0"
28
- ), g = e(i, c), h = "hover:border-brand hover:bg-accent hover:text-accent-foreground", x = "text-accent-foreground", T = "cursor-not-allowed text-content-placeholder opacity-50", P = s;
29
- function U(n, t) {
30
- const r = n === "point" || n === "interval-start" || n === "interval-end";
31
- return e(u, r ? v : n === "interval-middle" ? b : void 0, t === "week" ? r ? void 0 : m : n === "none" ? p : void 0);
28
+ ), g = e(c, i), h = "hover:border-brand hover:bg-accent hover:text-accent-foreground", x = "text-accent-foreground", w = "cursor-not-allowed text-content-placeholder opacity-50", U = s;
29
+ function F(t, n) {
30
+ const r = t === "point" || t === "interval-start" || t === "interval-end";
31
+ return e(u, r ? v : t === "interval-middle" ? b : void 0, n === "week" ? r ? void 0 : m : t === "none" ? p : void 0);
32
32
  }
33
- function F(n) {
34
- const { kind: t, disabled: r } = n;
35
- return r ? e(o, T) : t === "point" || t === "interval-start" || t === "interval-end" ? e(o, g) : t === "interval-middle" ? e(o, x) : e(o, h);
33
+ function j(t) {
34
+ const { kind: n, disabled: r } = t;
35
+ return r ? e(o, w) : n === "point" || n === "interval-start" || n === "interval-end" ? e(o, g) : n === "interval-middle" ? e(o, x) : e(o, h);
36
36
  }
37
37
  export {
38
38
  l as DAY_CELL_SIZE,
39
- y as DAY_MONTH_MIN_WIDTH,
39
+ E as DAY_MONTH_MIN_WIDTH,
40
40
  s as INTERVAL_TRACK,
41
- i as POINT_FILL,
42
- c as POINT_FILL_HOVER,
41
+ c as POINT_FILL,
42
+ i as POINT_FILL_HOVER,
43
43
  a as SELECTION_RADIUS,
44
- k as SELECTION_RADIUS_END,
45
- I as SELECTION_RADIUS_START,
44
+ I as SELECTION_RADIUS_END,
45
+ k as SELECTION_RADIUS_START,
46
46
  d as WEEK_GUTTER_RULE,
47
- U as dayButtonAppearanceClassName,
47
+ F as dayButtonAppearanceClassName,
48
48
  u as dayButtonBaseClassName,
49
49
  p as dayButtonHoverClassName,
50
50
  b as dayButtonMiddleClassName,
51
51
  v as dayButtonPointClassName,
52
52
  m as dayButtonWeekHoverClassName,
53
- L as dayCellBaseClassName,
54
- P as periodRangeTrackClassName,
55
- F as periodTileAppearanceClassName,
53
+ B as dayCellBaseClassName,
54
+ U as periodRangeTrackClassName,
55
+ j as periodTileAppearanceClassName,
56
56
  o as periodTileBaseClassName,
57
- T as periodTileDisabledClassName,
57
+ w as periodTileDisabledClassName,
58
58
  h as periodTileHoverClassName,
59
59
  x as periodTileMiddleClassName,
60
60
  g as periodTilePointClassName,
61
61
  R as previewCapEndCellClassName,
62
- B as previewCapStartCellClassName,
63
- A as previewCellClassName,
64
- N as rangeEndCellClassName,
65
- S as rangeMiddleCellClassName,
66
- C as rangeStartCellClassName,
67
- O as weekNumberBaseClassName,
68
- M as weekNumberFocusClassName,
62
+ A as previewCapStartCellClassName,
63
+ S as previewCellClassName,
64
+ C as rangeEndCellClassName,
65
+ L as rangeMiddleCellClassName,
66
+ N as rangeStartCellClassName,
67
+ H as weekNumberBaseClassName,
68
+ O as weekNumberBlockedClassName,
69
+ P as weekNumberFocusClassName,
69
70
  D as weekNumberInteractiveClassName,
70
- H as weekNumberSelectedFillClassName,
71
+ M as weekNumberSelectedFillClassName,
71
72
  f as weekNumberTypeClassName
72
73
  };
@@ -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;