impact-nova 2.5.7 → 2.5.8

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 (148) hide show
  1. package/dist/components/data/ag-grid-react/ag-grid.types.d.ts +2 -2
  2. package/dist/components/data/ag-grid-react/headers/components/date-filter-picker.d.ts +4 -2
  3. package/dist/components/data/ag-grid-react/headers/header-search-input.js +65 -65
  4. package/dist/components/data/ag-grid-react/headers/utils/date-utils.js +55 -48
  5. package/dist/components/data-display/calendar/calendar-apply-validation.d.ts +4 -2
  6. package/dist/components/data-display/calendar/calendar-apply-validation.js +80 -61
  7. package/dist/components/data-display/calendar/calendar-config.d.ts +13 -5
  8. package/dist/components/data-display/calendar/calendar-config.js +31 -20
  9. package/dist/components/data-display/calendar/calendar-day-button.js +43 -35
  10. package/dist/components/data-display/calendar/calendar-day-hover.d.ts +8 -0
  11. package/dist/components/data-display/calendar/calendar-day-hover.js +20 -0
  12. package/dist/components/data-display/calendar/calendar-day-picker-classnames.d.ts +8 -1
  13. package/dist/components/data-display/calendar/calendar-day-picker-classnames.js +40 -20
  14. package/dist/components/data-display/calendar/calendar-day-picker-components.d.ts +12 -1
  15. package/dist/components/data-display/calendar/calendar-day-picker-components.js +201 -108
  16. package/dist/components/data-display/calendar/calendar-day-picker-view.d.ts +11 -3
  17. package/dist/components/data-display/calendar/calendar-day-picker-view.js +136 -92
  18. package/dist/components/data-display/calendar/calendar-fiscal-labels.d.ts +38 -0
  19. package/dist/components/data-display/calendar/calendar-fiscal-labels.js +90 -0
  20. package/dist/components/data-display/calendar/calendar-footer-summary.d.ts +13 -4
  21. package/dist/components/data-display/calendar/calendar-footer-summary.js +101 -50
  22. package/dist/components/data-display/calendar/calendar-footer.d.ts +16 -7
  23. package/dist/components/data-display/calendar/calendar-footer.js +88 -66
  24. package/dist/components/data-display/calendar/calendar-gregorian-presets.d.ts +2 -0
  25. package/dist/components/data-display/calendar/calendar-gregorian-presets.js +26 -0
  26. package/dist/components/data-display/calendar/calendar-interval-caption.d.ts +1 -0
  27. package/dist/components/data-display/calendar/calendar-interval-caption.js +10 -0
  28. package/dist/components/data-display/calendar/calendar-interval-utils.d.ts +23 -0
  29. package/dist/components/data-display/calendar/calendar-interval-utils.js +154 -0
  30. package/dist/components/data-display/calendar/calendar-month-panes.d.ts +5 -1
  31. package/dist/components/data-display/calendar/calendar-month-panes.js +9 -7
  32. package/dist/components/data-display/calendar/calendar-month-picker-panel.d.ts +5 -1
  33. package/dist/components/data-display/calendar/calendar-month-picker-panel.js +76 -77
  34. package/dist/components/data-display/calendar/calendar-month-utils.d.ts +2 -0
  35. package/dist/components/data-display/calendar/calendar-month-utils.js +69 -60
  36. package/dist/components/data-display/calendar/calendar-padding-week.utils.d.ts +15 -0
  37. package/dist/components/data-display/calendar/calendar-padding-week.utils.js +22 -3
  38. package/dist/components/data-display/calendar/calendar-panel-context.d.ts +1 -1
  39. package/dist/components/data-display/calendar/calendar-period-cell.d.ts +18 -0
  40. package/dist/components/data-display/calendar/calendar-period-cell.js +89 -0
  41. package/dist/components/data-display/calendar/calendar-period-keyboard.d.ts +2 -0
  42. package/dist/components/data-display/calendar/calendar-period-keyboard.js +18 -0
  43. package/dist/components/data-display/calendar/calendar-preset-strip.d.ts +6 -0
  44. package/dist/components/data-display/calendar/calendar-preset-strip.js +26 -0
  45. package/dist/components/data-display/calendar/calendar-quarter-panes.d.ts +24 -0
  46. package/dist/components/data-display/calendar/calendar-quarter-panes.js +115 -0
  47. package/dist/components/data-display/calendar/calendar-quarter-utils.d.ts +19 -0
  48. package/dist/components/data-display/calendar/calendar-quarter-utils.js +95 -0
  49. package/dist/components/data-display/calendar/calendar-selection-appearance.d.ts +38 -0
  50. package/dist/components/data-display/calendar/calendar-selection-appearance.js +72 -0
  51. package/dist/components/data-display/calendar/calendar-selection.d.ts +20 -0
  52. package/dist/components/data-display/calendar/calendar-selection.js +31 -0
  53. package/dist/components/data-display/calendar/calendar-week-number-cell.d.ts +6 -1
  54. package/dist/components/data-display/calendar/calendar-week-number-cell.js +53 -38
  55. package/dist/components/data-display/calendar/calendar-week-number-header.d.ts +4 -0
  56. package/dist/components/data-display/calendar/calendar-week-number-header.js +15 -0
  57. package/dist/components/data-display/calendar/calendar-week-utils.d.ts +11 -3
  58. package/dist/components/data-display/calendar/calendar-week-utils.js +49 -42
  59. package/dist/components/data-display/calendar/calendar-year-panes.d.ts +18 -0
  60. package/dist/components/data-display/calendar/calendar-year-panes.js +98 -0
  61. package/dist/components/data-display/calendar/calendar-year-utils.d.ts +17 -0
  62. package/dist/components/data-display/calendar/calendar-year-utils.js +75 -0
  63. package/dist/components/data-display/calendar/calendar.d.ts +1 -1
  64. package/dist/components/data-display/calendar/calendar.js +303 -181
  65. package/dist/components/data-display/calendar/calendar.types.d.ts +53 -16
  66. package/dist/components/data-display/calendar/fiscal-period-caption-select.d.ts +7 -0
  67. package/dist/components/data-display/calendar/fiscal-period-caption-select.js +63 -0
  68. package/dist/components/data-display/calendar/index.d.ts +1 -1
  69. package/dist/components/data-display/calendar/use-calendar-day-picker-config.d.ts +12 -2
  70. package/dist/components/data-display/calendar/use-calendar-day-picker-config.js +92 -62
  71. package/dist/components/data-display/calendar/use-calendar-state.d.ts +31 -11
  72. package/dist/components/data-display/calendar/use-calendar-state.js +370 -163
  73. package/dist/components/data-display/calendar/use-fiscal-calendar.d.ts +5 -0
  74. package/dist/components/data-display/calendar/use-fiscal-calendar.js +24 -0
  75. package/dist/components/feedback/tooltip/overflow-tooltip.js +57 -57
  76. package/dist/components/forms/date-picker/date-input-behavior.d.ts +7 -0
  77. package/dist/components/forms/date-picker/date-input-behavior.js +28 -24
  78. package/dist/components/forms/date-picker/date-picker-shell.d.ts +13 -0
  79. package/dist/components/forms/date-picker/date-picker-shell.js +31 -0
  80. package/dist/components/forms/date-picker/date-picker.js +187 -167
  81. package/dist/components/forms/date-picker/date-picker.types.d.ts +90 -43
  82. package/dist/components/forms/date-picker/date-range-picker.js +273 -224
  83. package/dist/components/forms/date-picker/fiscal-pass-through.d.ts +13 -0
  84. package/dist/components/forms/date-picker/fiscal-pass-through.js +17 -0
  85. package/dist/components/forms/date-picker/fiscal-period-format.d.ts +9 -0
  86. package/dist/components/forms/date-picker/fiscal-period-format.js +50 -0
  87. package/dist/components/forms/date-picker/index.d.ts +12 -0
  88. package/dist/components/forms/date-picker/index.js +19 -7
  89. package/dist/components/forms/date-picker/month-picker.js +225 -182
  90. package/dist/components/forms/date-picker/month-range-picker.js +134 -110
  91. package/dist/components/forms/date-picker/multi-date-picker.js +77 -56
  92. package/dist/components/forms/date-picker/multi-month-picker.js +78 -57
  93. package/dist/components/forms/date-picker/multi-quarter-picker.d.ts +3 -0
  94. package/dist/components/forms/date-picker/multi-quarter-picker.js +177 -0
  95. package/dist/components/forms/date-picker/multi-week-picker.js +81 -70
  96. package/dist/components/forms/date-picker/multi-year-picker.d.ts +3 -0
  97. package/dist/components/forms/date-picker/multi-year-picker.js +179 -0
  98. package/dist/components/forms/date-picker/quarter-picker.d.ts +3 -0
  99. package/dist/components/forms/date-picker/quarter-picker.js +176 -0
  100. package/dist/components/forms/date-picker/quarter-range-picker.d.ts +3 -0
  101. package/dist/components/forms/date-picker/quarter-range-picker.js +177 -0
  102. package/dist/components/forms/date-picker/week-picker.js +148 -137
  103. package/dist/components/forms/date-picker/week-range-picker.js +216 -205
  104. package/dist/components/forms/date-picker/year-picker.d.ts +3 -0
  105. package/dist/components/forms/date-picker/year-picker.js +176 -0
  106. package/dist/components/forms/date-picker/year-range-picker.d.ts +3 -0
  107. package/dist/components/forms/date-picker/year-range-picker.js +179 -0
  108. package/dist/form-react/Fields/DateInputField.js +63 -58
  109. package/dist/form-react/Fields/DateRangeField.js +42 -37
  110. package/dist/form-react/Fields/MonthRangeField.js +50 -45
  111. package/dist/form-react/Fields/MultiWeekPickerField.js +7 -7
  112. package/dist/form-react/Fields/WeekRangePicker.js +44 -45
  113. package/dist/form-react/components/FieldRenderer.js +21 -23
  114. package/dist/form-react/registry/defaultFieldRegistrations.d.ts +9 -1
  115. package/dist/form-react/registry/defaultFieldRegistrations.js +27 -36
  116. package/dist/form-react/registry/resolveFieldComponent.d.ts +3 -2
  117. package/dist/form-react/registry/resolveFieldComponent.js +9 -133
  118. package/dist/form-react/types/fields.types.d.ts +19 -4
  119. package/dist/form-react/utils/date.utils.d.ts +1 -1
  120. package/dist/form-react/utils/date.utils.js +38 -38
  121. package/dist/i18n/defaultMessages.d.ts +19 -1
  122. package/dist/i18n/defaultMessages.js +37 -20
  123. package/dist/i18n/locales/de.js +18 -1
  124. package/dist/i18n/locales/es.js +18 -1
  125. package/dist/i18n/locales/hi.js +18 -1
  126. package/dist/i18n/locales/kn.js +18 -1
  127. package/dist/impact-nova-components.css +379 -3
  128. package/dist/impact-nova.css +1 -1
  129. package/dist/index.js +528 -516
  130. package/dist/lib/fiscal-calendar/build-year.d.ts +8 -0
  131. package/dist/lib/fiscal-calendar/build-year.js +173 -0
  132. package/dist/lib/fiscal-calendar/civil-date.d.ts +21 -0
  133. package/dist/lib/fiscal-calendar/civil-date.js +94 -0
  134. package/dist/lib/fiscal-calendar/index.d.ts +10 -0
  135. package/dist/lib/fiscal-calendar/index.js +40 -0
  136. package/dist/lib/fiscal-calendar/lookup.d.ts +4 -0
  137. package/dist/lib/fiscal-calendar/lookup.js +70 -0
  138. package/dist/lib/fiscal-calendar/presets.d.ts +8 -0
  139. package/dist/lib/fiscal-calendar/presets.js +99 -0
  140. package/dist/lib/fiscal-calendar/selection.d.ts +18 -0
  141. package/dist/lib/fiscal-calendar/selection.js +32 -0
  142. package/dist/lib/fiscal-calendar/types.d.ts +145 -0
  143. package/dist/lib/fiscal-calendar/types.js +10 -0
  144. package/dist/lib/fiscal-calendar/week-selection.d.ts +22 -0
  145. package/dist/lib/fiscal-calendar/week-selection.js +107 -0
  146. package/package.json +5 -1
  147. package/dist/lib/fiscal-calendar.d.ts +0 -62
  148. package/dist/lib/fiscal-calendar.js +0 -99
@@ -1,203 +1,325 @@
1
- import { jsxs as be, jsx as h } from "react/jsx-runtime";
2
- import { createComponent as Ce } from "../../../lib/primitives/create-component.js";
3
- import { CALENDAR_DEFAULT_END_MONTH as ge, CALENDAR_DEFAULT_START_MONTH as pe, getCalendarDayLayoutAttr as Le, getCalendarMonthLayoutAttr as ve, resolveFiscalPattern as Ae } from "./calendar-config.js";
4
- import { CalendarDayPickerView as Se } from "./calendar-day-picker-view.js";
5
- import { CalendarFooter as Me } from "./calendar-footer.js";
6
- import { CalendarMonthPanes as Pe } from "./calendar-month-panes.js";
7
- import { useCalendarI18n as fe } from "./use-calendar-i18n.js";
8
- import { useCalendarState as De } from "./use-calendar-state.js";
9
- const We = Ce(
1
+ import { jsxs as Je, jsx as c } from "react/jsx-runtime";
2
+ import { createComponent as Xe } from "../../../lib/primitives/create-component.js";
3
+ import { CALENDAR_DEFAULT_END_MONTH as Ze, CALENDAR_DEFAULT_START_MONTH as $e, getCalendarDayLayoutAttr as Ke, getCalendarMonthLayoutAttr as ea, resolveFiscalConfig as aa, resolveFiscalPattern as ra } from "./calendar-config.js";
4
+ import { civilFromLocalDate as O } from "../../../lib/fiscal-calendar/civil-date.js";
5
+ import { getFiscalPresets as la } from "../../../lib/fiscal-calendar/presets.js";
6
+ import { getGregorianPresets as na } from "./calendar-gregorian-presets.js";
7
+ import { paddedWeekNumber as j } from "./calendar-week-number-header.js";
8
+ import { formatPeriodCell as ta, formatFiscalYearLabel as k, formatQuarterLabelsForYear as oa, formatYearIntervalCaption as ia } from "./calendar-fiscal-labels.js";
9
+ import { CalendarDayPickerView as sa } from "./calendar-day-picker-view.js";
10
+ import { CalendarFooter as ca } from "./calendar-footer.js";
11
+ import { CalendarMonthPanes as da } from "./calendar-month-panes.js";
12
+ import { CalendarPresetStrip as ma } from "./calendar-preset-strip.js";
13
+ import { CalendarQuarterPanes as ua } from "./calendar-quarter-panes.js";
14
+ import { CalendarYearPanes as ga } from "./calendar-year-panes.js";
15
+ import { isDateRangeArray as fa, asDayPickerSelection as D, formatMultiRangeFooterSummary as pa, asRangeSelection as ba } from "./calendar-interval-utils.js";
16
+ import { useCalendarI18n as Ca } from "./use-calendar-i18n.js";
17
+ import { useCalendarState as ha } from "./use-calendar-state.js";
18
+ import { useFiscalCalendar as Ya } from "./use-fiscal-calendar.js";
19
+ const _a = Xe(
10
20
  "Calendar",
11
21
  ({
12
- className: P,
13
- classNames: f,
14
- showOutsideDays: D = !1,
15
- fixedWeeks: Y = !0,
16
- captionLayout: k = "dropdown",
17
- buttonVariant: y = "ghost",
18
- formatters: N,
19
- components: F,
20
- showFooter: l = !0,
21
- footerFlashKey: x = 0,
22
- footerFlashTarget: E,
23
- disableApply: R = !1,
24
- onApply: W,
25
- onCancel: _,
26
- onClear: I,
27
- mode: d = "single",
28
- selected: m,
29
- onSelect: j,
30
- pickerType: n = "date",
31
- weekMode: r = "single",
32
- selectedWeeks: w,
33
- onWeekSelect: H,
34
- calendarType: t = "calendar",
35
- fiscalMode: u = "basic",
36
- selectionMode: b = "week",
37
- fiscalMonthPattern: O,
38
- fiscalYearStartMonth: U = 1,
22
+ className: U,
23
+ classNames: G,
24
+ showOutsideDays: T = !1,
25
+ fixedWeeks: V = !0,
26
+ captionLayout: z = "dropdown",
27
+ buttonVariant: B = "ghost",
28
+ formatters: J,
29
+ components: X,
30
+ showFooter: i = !0,
31
+ footerFlashKey: Z = 0,
32
+ footerFlashTarget: $,
33
+ disableApply: K = !1,
34
+ onApply: ee,
35
+ onCancel: ae,
36
+ onClear: re,
37
+ mode: n = "single",
38
+ selected: F,
39
+ onSelect: le,
40
+ onSelectionChange: ne,
41
+ pickerType: t = "date",
42
+ weekMode: s = "single",
43
+ selectedWeeks: te,
44
+ onWeekSelect: oe,
45
+ calendarKind: r = "gregorian",
46
+ fiscalConfig: ie,
47
+ fiscalMode: p = "basic",
48
+ granularity: b,
49
+ fiscalMonthPattern: R,
50
+ fiscalYearStartMonth: A = 1,
39
51
  weekStartsOn: C = 1,
40
52
  monthMode: o = "single",
41
- selectedMonths: g,
42
- onMonthSelect: V,
43
- month: q,
44
- defaultMonth: z,
45
- onMonthChange: B,
46
- startMonth: G,
47
- endMonth: J,
48
- ...c
49
- }, K) => {
50
- const { t: e, intlLocale: Q, dateFnsLocale: X, monthsFull: Z, monthsShort: $ } = fe(), p = Ae({
51
- calendarType: t,
52
- fiscalMode: u,
53
- fiscalMonthPattern: O
54
- }), s = G ?? pe, i = J ?? ge, {
55
- pendingSelection: L,
56
- currentMonth: v,
57
- pendingWeekSelection: T,
58
- pendingMonthSelection: A,
59
- monthPickerYear: ee,
60
- handleMonthChangeInternal: S,
61
- resolveWeekFromInput: ae,
62
- handleWeekClick: ne,
63
- handleMonthClick: le,
64
- availableYears: M,
65
- selectedDaysFromWeeks: re,
66
- weekRangeModifiers: te,
67
- handleInternalSelect: oe,
68
- handleApply: de,
69
- handleCancel: ce,
70
- handleClear: se,
71
- isMonthSelected: ie,
72
- getMonthRangeProps: he,
73
- isMonthDisabled: me,
74
- isApplyDisabledInternal: ue
75
- } = De({
76
- showFooter: l,
77
- selected: m,
78
- onSelect: j,
79
- pickerType: n,
80
- weekMode: r,
81
- selectedWeeks: w,
82
- onWeekSelect: H,
83
- calendarType: t,
84
- fiscalMode: u,
85
- selectionMode: b,
86
- resolvedFiscalPattern: p,
87
- fiscalYearStartMonth: U,
53
+ selectedMonths: N,
54
+ onMonthSelect: se,
55
+ selectedQuarters: M,
56
+ onQuarterSelect: ce,
57
+ selectedYear: x,
58
+ onYearSelect: de,
59
+ yearMode: h = "single",
60
+ showIntervalCaption: me = !1,
61
+ showPresets: W = !1,
62
+ comparison: ue,
63
+ onComparisonChange: ge,
64
+ onRangesChange: fe,
65
+ month: pe,
66
+ defaultMonth: be,
67
+ onMonthChange: Ce,
68
+ startMonth: he,
69
+ endMonth: Ye,
70
+ ...Y
71
+ }, ve) => {
72
+ const { t: a, intlLocale: ye, dateFnsLocale: Pe, monthsFull: Se, monthsShort: E } = Ca(), l = aa({
73
+ fiscalConfig: ie,
74
+ calendarKind: r,
75
+ fiscalMode: p,
76
+ fiscalMonthPattern: R,
77
+ fiscalYearStartMonth: A,
78
+ weekStartsOn: C
79
+ }), q = ra({
80
+ calendarKind: r,
81
+ fiscalMode: p,
82
+ fiscalMonthPattern: R
83
+ }), d = he ?? $e, m = Ye ?? Ze, {
84
+ pendingSelection: u,
85
+ currentMonth: g,
86
+ pendingWeekSelection: Le,
87
+ pendingMonthSelection: I,
88
+ pendingQuarterSelection: Q,
89
+ pendingYearSelection: _,
90
+ monthPickerYear: v,
91
+ handleMonthChangeInternal: f,
92
+ resolveWeekFromInput: ke,
93
+ handleWeekClick: De,
94
+ handleMonthClick: Fe,
95
+ handleQuarterClick: Re,
96
+ handleYearClick: Ae,
97
+ handlePresetSelect: Ne,
98
+ availableYears: w,
99
+ selectedDaysFromWeeks: Me,
100
+ selectedDaysFromRanges: y,
101
+ weekRangeModifiers: xe,
102
+ handleInternalSelect: We,
103
+ handleApply: Ee,
104
+ handleCancel: qe,
105
+ handleClear: Ie,
106
+ isMonthSelected: Qe,
107
+ getMonthRangeProps: _e,
108
+ isMonthDisabled: we,
109
+ isQuarterSelected: He,
110
+ isQuarterDisabled: Oe,
111
+ isYearSelected: je,
112
+ isYearDisabled: Ue,
113
+ isApplyDisabledInternal: Ge
114
+ } = ha({
115
+ showFooter: i,
116
+ mode: n,
117
+ selected: F,
118
+ onSelect: le,
119
+ onSelectionChange: ne,
120
+ pickerType: t,
121
+ weekMode: s,
122
+ selectedWeeks: te,
123
+ onWeekSelect: oe,
124
+ calendarKind: r,
125
+ fiscalMode: p,
126
+ granularity: b,
127
+ resolvedFiscalPattern: q,
128
+ fiscalConfig: l,
129
+ fiscalYearStartMonth: A,
88
130
  weekStartsOn: C,
89
131
  monthMode: o,
90
- selectedMonths: g,
91
- onMonthSelect: V,
92
- month: q,
93
- defaultMonth: z,
94
- onMonthChange: B,
95
- resolvedStartMonth: s,
96
- resolvedEndMonth: i,
97
- disabled: c.disabled,
98
- onApply: W,
99
- onCancel: _,
100
- onClear: I
101
- });
102
- return /* @__PURE__ */ be(
132
+ selectedMonths: N,
133
+ onMonthSelect: se,
134
+ selectedQuarters: M,
135
+ onQuarterSelect: ce,
136
+ selectedYear: x,
137
+ onYearSelect: de,
138
+ yearMode: h,
139
+ comparison: ue,
140
+ onComparisonChange: ge,
141
+ onRangesChange: fe,
142
+ month: pe,
143
+ defaultMonth: be,
144
+ onMonthChange: Ce,
145
+ resolvedStartMonth: d,
146
+ resolvedEndMonth: m,
147
+ disabled: Y.disabled,
148
+ onApply: ee,
149
+ onCancel: ae,
150
+ onClear: re
151
+ }), { getCellMeta: Te, model: P } = Ya(
152
+ r === "fiscal" ? l : void 0,
153
+ g
154
+ ), Ve = r === "fiscal" && P ? P.periods.map((e) => ta(e)) : void 0, S = l?.fyLabel ?? "fy-long", L = r === "fiscal" ? w.map((e) => ({
155
+ ...e,
156
+ label: k(Number(e.value), S)
157
+ })) : w, H = W ? r === "fiscal" && l ? la(l, O(/* @__PURE__ */ new Date())) : na(O(/* @__PURE__ */ new Date())) : [], ze = t === "week" ? "week" : "date", Be = n === "multi-range" ? y : fa(u) ? void 0 : u;
158
+ return /* @__PURE__ */ Je(
103
159
  "div",
104
160
  {
105
- ref: K,
161
+ ref: ve,
106
162
  "data-component": "calendar",
107
- "data-month-layout": ve(n, o),
108
- "data-day-layout": Le(n, d, r),
163
+ "data-month-layout": ea(t, o),
164
+ "data-day-layout": Ke(t, n, s),
109
165
  children: [
110
- n === "month" ? /* @__PURE__ */ h(
111
- Pe,
166
+ W && H.length > 0 ? /* @__PURE__ */ c(ma, { presets: H, onPresetSelect: Ne }) : null,
167
+ t === "month" ? /* @__PURE__ */ c(
168
+ da,
112
169
  {
113
- monthMode: o,
114
- monthPickerYear: ee,
115
- monthsShort: $,
116
- showFooter: l,
117
- pendingMonthSelection: A,
118
- selectedMonths: g,
119
- resolvedStartYear: s.getFullYear(),
120
- resolvedEndYear: i.getFullYear(),
121
- yearOptions: M,
122
- previousYearLabel: e("calendar.previousYear"),
123
- nextYearLabel: e("calendar.nextYear"),
124
- currentMonth: v,
125
- isMonthSelected: ie,
126
- getMonthRangeProps: he,
127
- isMonthDisabled: me,
128
- onMonthChange: S,
129
- onMonthClick: le
170
+ monthMode: o === "multi-range" ? "multiple" : o,
171
+ monthPickerYear: v,
172
+ monthsShort: E,
173
+ showFooter: i,
174
+ pendingMonthSelection: I,
175
+ selectedMonths: N,
176
+ resolvedStartYear: d.getFullYear(),
177
+ resolvedEndYear: m.getFullYear(),
178
+ yearOptions: L,
179
+ previousYearLabel: a("calendar.previousYear"),
180
+ nextYearLabel: a("calendar.nextYear"),
181
+ currentMonth: g,
182
+ isMonthSelected: Qe,
183
+ getMonthRangeProps: _e,
184
+ isMonthDisabled: we,
185
+ onMonthChange: f,
186
+ onMonthClick: Fe,
187
+ periodLabels: Ve
130
188
  }
131
- ) : /* @__PURE__ */ h(
132
- Se,
189
+ ) : t === "quarter" ? /* @__PURE__ */ c(
190
+ ua,
133
191
  {
134
- className: P,
135
- pickerType: n,
136
- mode: d,
137
- weekMode: r,
138
- calendarType: t,
139
- showOutsideDays: D,
140
- fixedWeeks: Y,
141
- captionLayout: k,
142
- buttonVariant: y,
192
+ quarterMode: o,
193
+ pickerYear: v,
194
+ showFooter: i,
195
+ pendingQuarterSelection: Q,
196
+ selectedQuarters: M,
197
+ resolvedStartYear: d.getFullYear(),
198
+ resolvedEndYear: m.getFullYear(),
199
+ yearOptions: L,
200
+ previousYearLabel: a("calendar.previousYear"),
201
+ nextYearLabel: a("calendar.nextYear"),
202
+ currentMonth: g,
203
+ quarterLabelsForYear: (e) => oa(
204
+ e,
205
+ r === "fiscal" ? l : void 0
206
+ ),
207
+ isQuarterSelected: He,
208
+ isQuarterDisabled: Oe,
209
+ onMonthChange: f,
210
+ onQuarterClick: Re
211
+ }
212
+ ) : t === "year" ? /* @__PURE__ */ c(
213
+ ga,
214
+ {
215
+ pickerYear: v,
216
+ resolvedStartYear: d.getFullYear(),
217
+ resolvedEndYear: m.getFullYear(),
218
+ previousYearLabel: a("calendar.previousYear"),
219
+ nextYearLabel: a("calendar.nextYear"),
220
+ yearLabels: r === "fiscal" ? (e) => k(e, S) : void 0,
221
+ yearCaptions: me ? (e) => ia(
222
+ e,
223
+ r === "fiscal" ? l : void 0
224
+ ) : void 0,
225
+ showFooter: i,
226
+ pendingYearSelection: _,
227
+ selectedYear: x,
228
+ isYearSelected: je,
229
+ isYearDisabled: Ue,
230
+ onYearPageChange: (e) => f(new Date(e, 0, 1)),
231
+ onYearClick: Ae
232
+ }
233
+ ) : /* @__PURE__ */ c(
234
+ sa,
235
+ {
236
+ className: U,
237
+ pickerType: ze,
238
+ mode: n === "multi-range" ? "multiple" : n,
239
+ weekMode: s === "multi-range" ? "multiple" : s,
240
+ calendarKind: r,
241
+ granularity: b,
242
+ showOutsideDays: T,
243
+ fixedWeeks: V,
244
+ captionLayout: z,
245
+ buttonVariant: B,
143
246
  weekStartsOn: C,
144
- formatters: N,
145
- classNames: f,
146
- components: F,
147
- selected: m,
148
- showFooter: l,
149
- pendingSelection: L,
150
- selectedDaysFromWeeks: re,
151
- currentMonth: v,
152
- monthsFull: Z,
153
- resolvedStartMonth: s,
154
- resolvedEndMonth: i,
155
- availableYears: M,
156
- dateFnsLocale: X,
157
- intlLocale: Q,
158
- weekRangeModifiers: te,
159
- onSelect: oe,
160
- onMonthChange: S,
161
- onWeekSelect: (a) => ne(ae(a)),
162
- previousMonthLabel: e("calendar.previousMonth"),
163
- nextMonthLabel: e("calendar.nextMonth"),
164
- monthPlaceholder: e("calendar.monthPlaceholder"),
165
- yearPlaceholder: e("calendar.yearPlaceholder"),
166
- weekNumberLabel: (a) => e("calendar.weekNumber", { number: a }),
167
- weekLabel: (a) => e("calendar.weekLabel", { number: a }),
168
- formatWeekNumber: (a) => e("calendar.weekNumber", { number: a }),
169
- disabled: c.disabled,
170
- ...c
247
+ formatters: J,
248
+ classNames: G,
249
+ components: X,
250
+ selected: n === "multi-range" ? y : D(F),
251
+ showFooter: i,
252
+ pendingSelection: D(Be),
253
+ selectedDaysFromWeeks: Me ?? y,
254
+ currentMonth: g,
255
+ monthsFull: Se,
256
+ monthsShort: E,
257
+ resolvedStartMonth: d,
258
+ resolvedEndMonth: m,
259
+ availableYears: L,
260
+ fiscalPeriods: P?.periods,
261
+ fiscalConfig: l,
262
+ dateFnsLocale: Pe,
263
+ intlLocale: ye,
264
+ weekRangeModifiers: xe,
265
+ getCellMeta: Te,
266
+ onSelect: We,
267
+ onMonthChange: f,
268
+ onWeekSelect: (e) => De(ke(e)),
269
+ previousMonthLabel: a("calendar.previousMonth"),
270
+ nextMonthLabel: a("calendar.nextMonth"),
271
+ monthPlaceholder: a(r === "fiscal" ? "calendar.periodPlaceholder" : "calendar.monthPlaceholder"),
272
+ yearPlaceholder: a(r === "fiscal" ? "calendar.fyPlaceholder" : "calendar.yearPlaceholder"),
273
+ weekNumberHeader: a("calendar.weekNumberHeader"),
274
+ weekNumberLabel: (e) => a("calendar.weekNumber", { number: j(e) }),
275
+ weekLabel: (e) => a("calendar.weekLabel", { number: e }),
276
+ fiscalWeekAriaLabel: (e) => a("calendar.fiscalWeekLabel", {
277
+ number: e.fiscalWeek ?? 0,
278
+ period: e.fiscalPeriod ?? 0,
279
+ fy: e.fy != null ? k(e.fy, S) : ""
280
+ }),
281
+ formatWeekNumber: (e) => a("calendar.weekNumber", { number: j(e) }),
282
+ disabled: Y.disabled,
283
+ ...Y
171
284
  }
172
285
  ),
173
- l ? /* @__PURE__ */ h(
174
- Me,
286
+ i ? /* @__PURE__ */ c(
287
+ ca,
175
288
  {
176
- pickerType: n,
177
- mode: d,
178
- weekMode: r,
179
- monthMode: o,
180
- calendarType: t,
181
- selectionMode: b,
182
- resolvedFiscalPattern: p,
183
- pendingSelection: L,
184
- pendingWeekSelection: T,
185
- pendingMonthSelection: A,
186
- disableApply: R,
187
- isApplyDisabled: ue,
188
- footerFlashKey: x,
189
- footerFlashTarget: E,
289
+ pickerType: t,
290
+ mode: n,
291
+ weekMode: s === "multi-range" ? "range" : s,
292
+ monthMode: o === "multi-range" ? "range" : o,
293
+ yearMode: h === "multi-range" ? "range" : h,
294
+ calendarKind: r,
295
+ granularity: b,
296
+ resolvedFiscalPattern: q,
297
+ fiscalConfig: l,
298
+ pendingSelection: D(u),
299
+ pendingWeekSelection: Le,
300
+ pendingMonthSelection: I,
301
+ pendingQuarterSelection: Q,
302
+ pendingYearSelection: _,
303
+ multiRangeSummary: n === "multi-range" ? pa(ba(u)) : void 0,
304
+ disableApply: K,
305
+ isApplyDisabled: Ge,
306
+ footerFlashKey: Z,
307
+ footerFlashTarget: $,
190
308
  labels: {
191
- clear: e("calendar.clear"),
192
- cancel: e("calendar.cancel"),
193
- apply: e("calendar.apply"),
309
+ clear: a("calendar.clear"),
310
+ cancel: a("calendar.cancel"),
311
+ apply: a("calendar.apply"),
194
312
  selected: "Selected:",
195
- monthSingle: e("calendar.monthRange"),
196
- monthPlural: (a) => e("calendar.monthRangePlural", { count: a })
313
+ monthSingle: a("calendar.monthRange"),
314
+ monthPlural: (e) => a("calendar.monthRangePlural", { count: e }),
315
+ quarterSingle: a("calendar.quarterRange"),
316
+ quarterPlural: (e) => a("calendar.quarterRangePlural", { count: e }),
317
+ yearSingle: a("calendar.yearRange"),
318
+ yearPlural: (e) => a("calendar.yearRangePlural", { count: e })
197
319
  },
198
- onClear: se,
199
- onCancel: ce,
200
- onApply: de
320
+ onClear: Ie,
321
+ onCancel: qe,
322
+ onApply: Ee
201
323
  }
202
324
  ) : null
203
325
  ]
@@ -206,5 +328,5 @@ const We = Ce(
206
328
  }
207
329
  );
208
330
  export {
209
- We as Calendar
331
+ _a as Calendar
210
332
  };
@@ -1,14 +1,8 @@
1
1
  import { DateRange, DayPicker } from 'react-day-picker';
2
2
  import { Button } from '../../primitives/button/button';
3
- import { CalendarType, FiscalMode, FiscalMonthPattern, SelectionMode } from '../../../lib/fiscal-calendar';
3
+ import { CalendarKind, CalendarSelection, FiscalCalendarConfig, FiscalMode, FiscalMonthPattern, Granularity, WeekSelection } from '../../../lib/fiscal-calendar';
4
4
  import type * as React from "react";
5
- export interface WeekSelection {
6
- year: number;
7
- month: number;
8
- weekOfMonth: number;
9
- startDate: Date;
10
- endDate: Date;
11
- }
5
+ export type { WeekSelection };
12
6
  export interface WeekRange {
13
7
  from: WeekSelection;
14
8
  to?: WeekSelection;
@@ -21,12 +15,41 @@ export type WeekRangeDraft = {
21
15
  export interface MonthSelection {
22
16
  year: number;
23
17
  month: number;
18
+ fy?: number;
19
+ period?: number;
20
+ start?: Date;
21
+ end?: Date;
24
22
  }
25
23
  export interface MonthRange {
26
24
  from?: MonthSelection;
27
25
  to?: MonthSelection;
28
26
  }
29
- export type CalendarApplyValue = Date | Date[] | DateRange | WeekSelection | WeekSelection[] | WeekRange | MonthSelection | MonthSelection[] | MonthRange | undefined;
27
+ export interface QuarterSelection {
28
+ year: number;
29
+ quarter: 1 | 2 | 3 | 4;
30
+ fy?: number;
31
+ start?: Date;
32
+ end?: Date;
33
+ }
34
+ export interface QuarterRange {
35
+ from?: QuarterSelection;
36
+ to?: QuarterSelection;
37
+ }
38
+ export interface YearSelection {
39
+ year: number;
40
+ fy?: number;
41
+ start?: Date;
42
+ end?: Date;
43
+ }
44
+ export interface YearRange {
45
+ from?: YearSelection;
46
+ to?: YearSelection;
47
+ }
48
+ export type CalendarApplyValue = Date | Date[] | DateRange | DateRange[] | WeekSelection | WeekSelection[] | WeekRange | MonthSelection | MonthSelection[] | MonthRange | QuarterSelection | QuarterSelection[] | QuarterRange | YearSelection | YearSelection[] | YearRange | undefined;
49
+ export interface YoYComparison {
50
+ primary: DateRange;
51
+ comparison: DateRange;
52
+ }
30
53
  export interface CalendarProps extends Omit<React.ComponentProps<typeof DayPicker>, "mode" | "selected" | "onSelect"> {
31
54
  buttonVariant?: React.ComponentProps<typeof Button>["variant"];
32
55
  showFooter?: boolean;
@@ -38,22 +61,36 @@ export interface CalendarProps extends Omit<React.ComponentProps<typeof DayPicke
38
61
  onClear?: () => void;
39
62
  startMonth?: Date;
40
63
  endMonth?: Date;
41
- mode?: "single" | "multiple" | "range";
42
- selected?: Date | Date[] | DateRange;
64
+ mode?: "single" | "multiple" | "range" | "multi-range";
65
+ selected?: Date | Date[] | DateRange | DateRange[];
43
66
  onSelect?: (date: Date | Date[] | DateRange | undefined) => void;
44
- pickerType?: "date" | "week" | "month";
45
- weekMode?: "single" | "multiple" | "range";
67
+ pickerType?: "date" | "week" | "month" | "quarter" | "year";
68
+ granularity?: Granularity;
69
+ weekMode?: "single" | "multiple" | "range" | "multi-range";
46
70
  selectedWeeks?: WeekSelection | WeekSelection[] | WeekRange;
47
71
  onWeekSelect?: (weeks: WeekSelection | WeekSelection[] | WeekRange | undefined) => void;
48
- calendarType?: CalendarType;
72
+ /** Calendar system. `"fiscal"` overlays FY/period chrome on the same Calendar. */
73
+ calendarKind?: CalendarKind;
49
74
  fiscalMode?: FiscalMode;
50
- selectionMode?: SelectionMode;
51
75
  fiscalMonthPattern?: FiscalMonthPattern;
52
76
  fiscalYearStartMonth?: number;
77
+ fiscalConfig?: FiscalCalendarConfig;
53
78
  weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6;
54
- monthMode?: "single" | "multiple" | "range";
79
+ monthMode?: "single" | "multiple" | "range" | "multi-range";
55
80
  selectedMonths?: MonthSelection | MonthSelection[] | MonthRange;
56
81
  onMonthSelect?: (months: MonthSelection | MonthSelection[] | MonthRange | undefined) => void;
82
+ selectedQuarters?: QuarterSelection | QuarterSelection[] | QuarterRange;
83
+ onQuarterSelect?: (quarters: QuarterSelection | QuarterSelection[] | QuarterRange | undefined) => void;
84
+ selectedYear?: YearSelection | YearSelection[] | YearRange;
85
+ onYearSelect?: (year: YearSelection | YearSelection[] | YearRange | undefined) => void;
86
+ yearMode?: "single" | "multiple" | "range" | "multi-range";
87
+ /** Show civil/FY start–end under year cells. Default false. */
88
+ showIntervalCaption?: boolean;
89
+ onSelectionChange?: (selection: CalendarSelection) => void;
90
+ showPresets?: boolean;
91
+ comparison?: "prior-fy";
92
+ onComparisonChange?: (value: YoYComparison | undefined) => void;
93
+ onRangesChange?: (ranges: DateRange[] | undefined) => void;
57
94
  /** Always render 6 week rows to prevent layout shift when navigating months. Default true. Padding weeks (all days outside the month) are visually hidden via the Week component. */
58
95
  fixedWeeks?: boolean;
59
96
  }
@@ -0,0 +1,7 @@
1
+ import { FiscalPeriod } from '../../../lib/fiscal-calendar';
2
+ export declare function FiscalPeriodCaptionSelect({ periods, selectedPeriod, placeholder, onPeriodChange, }: {
3
+ periods: readonly FiscalPeriod[];
4
+ selectedPeriod?: FiscalPeriod;
5
+ placeholder: string;
6
+ onPeriodChange: (period: FiscalPeriod) => void;
7
+ }): import("react/jsx-runtime").JSX.Element;