impact-nova 2.5.10 → 2.5.12

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 (73) hide show
  1. package/dist/components/data-display/calendar/calendar-apply-validation.d.ts +2 -0
  2. package/dist/components/data-display/calendar/calendar-apply-validation.js +64 -67
  3. package/dist/components/data-display/calendar/calendar-available-view.d.ts +27 -0
  4. package/dist/components/data-display/calendar/calendar-available-view.js +85 -0
  5. package/dist/components/data-display/calendar/calendar-config.js +1 -1
  6. package/dist/components/data-display/calendar/calendar-day-picker-components.d.ts +4 -2
  7. package/dist/components/data-display/calendar/calendar-day-picker-components.js +234 -164
  8. package/dist/components/data-display/calendar/calendar-day-picker-view.js +77 -76
  9. package/dist/components/data-display/calendar/calendar-fiscal-day-cell.d.ts +9 -0
  10. package/dist/components/data-display/calendar/calendar-fiscal-day-cell.js +45 -0
  11. package/dist/components/data-display/calendar/calendar-fiscal-period-nav.d.ts +6 -0
  12. package/dist/components/data-display/calendar/calendar-fiscal-period-nav.js +34 -18
  13. package/dist/components/data-display/calendar/calendar-footer.js +21 -21
  14. package/dist/components/data-display/calendar/calendar-injected-week-row.d.ts +5 -0
  15. package/dist/components/data-display/calendar/calendar-injected-week-row.js +92 -0
  16. package/dist/components/data-display/calendar/calendar-leading-week.utils.d.ts +16 -0
  17. package/dist/components/data-display/calendar/calendar-leading-week.utils.js +51 -0
  18. package/dist/components/data-display/calendar/calendar-month-picker-panel.js +50 -49
  19. package/dist/components/data-display/calendar/calendar-month-utils.d.ts +5 -0
  20. package/dist/components/data-display/calendar/calendar-month-utils.js +85 -64
  21. package/dist/components/data-display/calendar/calendar-orphan-week.d.ts +23 -0
  22. package/dist/components/data-display/calendar/calendar-padding-week.utils.d.ts +3 -1
  23. package/dist/components/data-display/calendar/calendar-padding-week.utils.js +7 -5
  24. package/dist/components/data-display/calendar/calendar-period-cell.js +45 -46
  25. package/dist/components/data-display/calendar/calendar-quarter-panes.js +33 -31
  26. package/dist/components/data-display/calendar/calendar-selection-appearance.d.ts +10 -0
  27. package/dist/components/data-display/calendar/calendar-selection-appearance.js +53 -39
  28. package/dist/components/data-display/calendar/calendar-selection.d.ts +25 -0
  29. package/dist/components/data-display/calendar/calendar-selection.js +52 -23
  30. package/dist/components/data-display/calendar/calendar-week-number-cell.d.ts +2 -1
  31. package/dist/components/data-display/calendar/calendar-week-number-cell.js +59 -45
  32. package/dist/components/data-display/calendar/calendar-week-utils.d.ts +13 -3
  33. package/dist/components/data-display/calendar/calendar-week-utils.js +59 -50
  34. package/dist/components/data-display/calendar/calendar-year-panes.d.ts +3 -0
  35. package/dist/components/data-display/calendar/calendar-year-panes.js +53 -49
  36. package/dist/components/data-display/calendar/calendar.js +146 -143
  37. package/dist/components/data-display/calendar/calendar.types.d.ts +5 -0
  38. package/dist/components/data-display/calendar/use-calendar-day-picker-config.d.ts +2 -1
  39. package/dist/components/data-display/calendar/use-calendar-day-picker-config.js +79 -74
  40. package/dist/components/data-display/calendar/use-calendar-state.d.ts +3 -1
  41. package/dist/components/data-display/calendar/use-calendar-state.js +403 -325
  42. package/dist/components/forms/date-picker/date-picker.js +60 -58
  43. package/dist/components/forms/date-picker/date-picker.types.d.ts +5 -0
  44. package/dist/components/forms/date-picker/date-range-picker.js +66 -64
  45. package/dist/components/forms/date-picker/fiscal-pass-through.d.ts +1 -0
  46. package/dist/components/forms/date-picker/fiscal-pass-through.js +3 -2
  47. package/dist/components/forms/date-picker/fiscal-picker-fixtures.d.ts +17 -0
  48. package/dist/components/forms/date-picker/month-picker.js +61 -59
  49. package/dist/components/forms/date-picker/month-range-picker.js +63 -61
  50. package/dist/components/forms/date-picker/multi-date-picker.js +51 -49
  51. package/dist/components/forms/date-picker/multi-month-picker.js +49 -47
  52. package/dist/components/forms/date-picker/multi-quarter-picker.js +51 -47
  53. package/dist/components/forms/date-picker/multi-week-picker.js +53 -51
  54. package/dist/components/forms/date-picker/multi-year-picker.js +53 -49
  55. package/dist/components/forms/date-picker/quarter-picker.js +51 -47
  56. package/dist/components/forms/date-picker/quarter-range-picker.js +50 -46
  57. package/dist/components/forms/date-picker/week-picker.js +68 -66
  58. package/dist/components/forms/date-picker/week-range-picker.js +82 -80
  59. package/dist/components/forms/date-picker/year-picker.js +52 -48
  60. package/dist/components/forms/date-picker/year-range-picker.js +52 -48
  61. package/dist/form-react/Fields/DateInputField.js +51 -50
  62. package/dist/form-react/Fields/DateRangeField.js +14 -13
  63. package/dist/form-react/Fields/MonthRangeField.js +29 -28
  64. package/dist/form-react/Fields/MultiMonthPickerField.js +13 -12
  65. package/dist/form-react/Fields/MultiWeekPickerField.js +35 -27
  66. package/dist/form-react/Fields/WeekRangePicker.js +33 -32
  67. package/dist/form-react/types/fields.types.d.ts +14 -0
  68. package/dist/impact-nova-components.css +13 -6
  69. package/dist/impact-nova.css +1 -1
  70. package/dist/lib/fiscal-calendar/week-selection.js +2 -2
  71. package/dist/llms/rules/installation.js +1 -1
  72. package/dist/llms/rules/requirements.js +1 -1
  73. package/package.json +1 -1
@@ -1,41 +1,49 @@
1
- import { jsx as o } from "react/jsx-runtime";
2
- import { Controller as p } from "react-hook-form";
3
- import { MultiWeekPicker as h } from "../../components/forms/date-picker/multi-week-picker.js";
4
- import { getFieldTestId as k } from "../utils/fieldTestIds.js";
5
- import { toLocalDate as i } from "../utils/calendar-boundary.js";
6
- const M = ({
1
+ import { jsx as a } from "react/jsx-runtime";
2
+ import { Controller as h } from "react-hook-form";
3
+ import { MultiWeekPicker as p } from "../../components/forms/date-picker/multi-week-picker.js";
4
+ import { fiscalCalendarPassThrough as f } from "../../components/forms/date-picker/fiscal-pass-through.js";
5
+ import { getFieldTestId as g } from "../utils/fieldTestIds.js";
6
+ import { toLocalDate as n } from "../utils/calendar-boundary.js";
7
+ const x = ({
7
8
  field: e,
8
- validationRules: m,
9
- isDisabled: s,
9
+ validationRules: s,
10
+ isDisabled: u,
10
11
  formHelpers: c
11
12
  }) => {
12
13
  const d = c.form.control, r = e.fieldType === "multi_week_picker" ? e : null;
13
- return r ? /* @__PURE__ */ o(
14
- p,
14
+ return r ? /* @__PURE__ */ a(
15
+ h,
15
16
  {
16
17
  name: e.id,
17
18
  control: d,
18
- rules: m,
19
- render: ({ field: t, fieldState: a }) => {
20
- const l = !!a.error, n = t.value;
21
- return /* @__PURE__ */ o("div", { "data-testid": k(e.id), children: /* @__PURE__ */ o(
22
- h,
19
+ rules: s,
20
+ render: ({ field: t, fieldState: o }) => {
21
+ const i = !!o.error, l = t.value;
22
+ return /* @__PURE__ */ a("div", { "data-testid": g(e.id), children: /* @__PURE__ */ a(
23
+ p,
23
24
  {
24
25
  label: e.label,
25
- value: Array.isArray(n) ? n : void 0,
26
- onChange: (u) => {
27
- t.onChange(u ?? []);
26
+ value: Array.isArray(l) ? l : void 0,
27
+ onChange: (m) => {
28
+ t.onChange(m ?? []);
28
29
  },
29
30
  placeholder: e.placeholder,
30
31
  required: e.isRequired,
31
- disabled: s,
32
- error: l,
33
- helperText: l ? a.error?.message : e.helpText,
34
- calendarKind: r.calendarKind,
35
- fiscalMode: r.fiscalMode,
36
- weekStartsOn: r.weekStartsOn,
37
- minDate: i(r.minDate),
38
- maxDate: i(r.maxDate)
32
+ disabled: u,
33
+ error: i,
34
+ helperText: i ? o.error?.message : e.helpText,
35
+ minDate: n(r.minDate),
36
+ maxDate: n(r.maxDate),
37
+ ...f({
38
+ calendarKind: r.calendarKind,
39
+ fiscalMode: r.fiscalMode,
40
+ granularity: r.granularity,
41
+ fiscalMonthPattern: r.fiscalMonthPattern,
42
+ fiscalYearStartMonth: r.fiscalYearStartMonth,
43
+ weekStartsOn: r.weekStartsOn,
44
+ showPeriodBoundaries: r.showPeriodBoundaries,
45
+ autoNavigateToAvailable: r.autoNavigateToAvailable
46
+ })
39
47
  }
40
48
  ) });
41
49
  }
@@ -43,5 +51,5 @@ const M = ({
43
51
  ) : null;
44
52
  };
45
53
  export {
46
- M as MultiWeekPickerField
54
+ x as MultiWeekPickerField
47
55
  };
@@ -1,62 +1,63 @@
1
1
  import { jsx as c } from "react/jsx-runtime";
2
- import { Controller as Y } from "react-hook-form";
3
- import { WeekRangePicker as $ } from "../../components/forms/date-picker/week-range-picker.js";
4
- import { toLocalDate as f } from "../utils/calendar-boundary.js";
5
- import { resolveWeekSelection as y } from "../../lib/fiscal-calendar/week-selection.js";
6
- import { resolveWeekRangeMinMax as T } from "../utils/date.utils.js";
7
- const S = (e, r) => y(e, {
8
- calendarKind: r.calendarKind,
9
- fiscalMode: r.fiscalMode ?? "basic",
10
- granularity: r.granularity,
11
- fiscalMonthPattern: r.fiscalMonthPattern,
12
- fiscalYearStartMonth: r.fiscalYearStartMonth ?? 1,
13
- weekStartsOn: r.weekStartsOn ?? 1
2
+ import { Controller as b } from "react-hook-form";
3
+ import { WeekRangePicker as x } from "../../components/forms/date-picker/week-range-picker.js";
4
+ import { toLocalDate as M } from "../utils/calendar-boundary.js";
5
+ import { resolveWeekSelection as Y } from "../../lib/fiscal-calendar/week-selection.js";
6
+ import { resolveWeekRangeMinMax as $ } from "../utils/date.utils.js";
7
+ const f = (e, a) => Y(e, {
8
+ calendarKind: a.calendarKind,
9
+ fiscalMode: a.fiscalMode ?? "basic",
10
+ granularity: a.granularity,
11
+ fiscalMonthPattern: a.fiscalMonthPattern,
12
+ fiscalYearStartMonth: a.fiscalYearStartMonth ?? 1,
13
+ weekStartsOn: a.weekStartsOn ?? 1
14
14
  }), C = ({
15
15
  field: e,
16
- validationRules: r,
17
- isDisabled: p,
16
+ validationRules: a,
17
+ isDisabled: S,
18
18
  formHelpers: d
19
19
  }) => {
20
20
  const t = e.fieldType === "week_range" ? e : null;
21
21
  if (!t) return null;
22
- const { minDate: u, maxDate: m, startMonth: D, endMonth: k } = T(t), w = d.form.control;
22
+ const { minDate: p, maxDate: u, startMonth: D, endMonth: k } = $(t), v = d.form.control;
23
23
  return /* @__PURE__ */ c(
24
- Y,
24
+ b,
25
25
  {
26
26
  name: e.id,
27
- control: w,
28
- rules: r,
29
- render: ({ field: v, fieldState: h }) => {
30
- const g = !!h.error, a = v.value, s = a?.start ? f(a.start) ?? null : null, i = a?.end ? f(a.end) ?? null : null, F = !!(s && i);
27
+ control: v,
28
+ rules: a,
29
+ render: ({ field: w, fieldState: m }) => {
30
+ const h = !!m.error, r = w.value, s = r?.start ? M(r.start) ?? null : null, i = r?.end ? M(r.end) ?? null : null, F = !!(s && i);
31
31
  return /* @__PURE__ */ c("div", { children: /* @__PURE__ */ c(
32
- $,
32
+ x,
33
33
  {
34
34
  label: e.label,
35
35
  value: F && s && i ? {
36
- from: S(s, t),
37
- to: S(i, t)
36
+ from: f(s, t),
37
+ to: f(i, t)
38
38
  } : void 0,
39
39
  onChange: (o) => {
40
- const M = o?.from ? { from: o.from, to: o.to ?? o.from } : void 0, n = M?.from?.startDate, l = M?.to?.endDate, P = n ? `${n.getFullYear()}-${String(n.getMonth() + 1).padStart(2, "0")}-${String(n.getDate()).padStart(2, "0")}` : null, x = l ? `${l.getFullYear()}-${String(l.getMonth() + 1).padStart(2, "0")}-${String(l.getDate()).padStart(2, "0")}` : null;
41
- d.setValue(e.id, { start: P, end: x });
40
+ const g = o?.from ? { from: o.from, to: o.to ?? o.from } : void 0, n = g?.from?.startDate, l = g?.to?.endDate, P = n ? `${n.getFullYear()}-${String(n.getMonth() + 1).padStart(2, "0")}-${String(n.getDate()).padStart(2, "0")}` : null, T = l ? `${l.getFullYear()}-${String(l.getMonth() + 1).padStart(2, "0")}-${String(l.getDate()).padStart(2, "0")}` : null;
41
+ d.setValue(e.id, { start: P, end: T });
42
42
  },
43
43
  placeholder: t.placeholder,
44
- startMonth: u ?? D,
45
- endMonth: m ?? k,
44
+ startMonth: D,
45
+ endMonth: u ?? k,
46
46
  required: e.isRequired,
47
- disabled: p,
48
- error: g,
49
- helperText: g ? h.error?.message : e.helpText,
47
+ disabled: S,
48
+ error: h,
49
+ helperText: h ? m.error?.message : e.helpText,
50
50
  calendarKind: t.calendarKind,
51
51
  fiscalMode: t.fiscalMode,
52
52
  weekStartsOn: t.weekStartsOn,
53
- minDate: u,
54
- maxDate: m,
53
+ minDate: p,
54
+ maxDate: u,
55
55
  granularity: t.granularity,
56
56
  fiscalMonthPattern: t.fiscalMonthPattern,
57
57
  fiscalYearStartMonth: t.fiscalYearStartMonth,
58
58
  showFooter: t.showFooter,
59
59
  showPeriodBoundaries: t.showPeriodBoundaries,
60
+ autoNavigateToAvailable: t.autoNavigateToAvailable,
60
61
  format: t.dateFormat
61
62
  }
62
63
  ) });
@@ -162,6 +162,8 @@ export type DateInputField = BaseField & {
162
162
  fiscalYearStartMonth?: number;
163
163
  fiscalMonthPattern?: number[];
164
164
  showPresets?: boolean;
165
+ /** When true, open on the first enabled day. Navigate only. */
166
+ autoNavigateToAvailable?: boolean;
165
167
  };
166
168
  export type DateRangeField = BaseField & {
167
169
  fieldType: "date_range";
@@ -192,6 +194,8 @@ export type DateRangeField = BaseField & {
192
194
  fiscalYearStartMonth?: number;
193
195
  fiscalMonthPattern?: number[];
194
196
  showPresets?: boolean;
197
+ /** When true, open on the first enabled day. Navigate only. */
198
+ autoNavigateToAvailable?: boolean;
195
199
  };
196
200
  export type WeekRangeField = BaseField & {
197
201
  fieldType: "week_range";
@@ -224,6 +228,8 @@ export type WeekRangeField = BaseField & {
224
228
  /** Latest week: week end of the week N weeks after the current week. */
225
229
  maxWeeksOffset?: number;
226
230
  dateFormat?: string;
231
+ /** When true, open on the first enabled week. Navigate only. */
232
+ autoNavigateToAvailable?: boolean;
227
233
  };
228
234
  export type MultiWeekRangeField = BaseField & {
229
235
  fieldType: "multi_week_picker";
@@ -234,6 +240,10 @@ export type MultiWeekRangeField = BaseField & {
234
240
  weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6;
235
241
  granularity?: "day" | "week" | "period" | "quarter" | "year";
236
242
  fiscalMonthPattern?: number[];
243
+ fiscalYearStartMonth?: number;
244
+ showPeriodBoundaries?: boolean;
245
+ /** When true, open on the first enabled week. Navigate only. */
246
+ autoNavigateToAvailable?: boolean;
237
247
  };
238
248
  export type MonthRangeField = BaseField & {
239
249
  fieldType: "month_range";
@@ -262,6 +272,8 @@ export type MonthRangeField = BaseField & {
262
272
  fiscalYearStartMonth?: number;
263
273
  fiscalMonthPattern?: number[];
264
274
  showPresets?: boolean;
275
+ /** When true, open on the first enabled month. Navigate only. */
276
+ autoNavigateToAvailable?: boolean;
265
277
  };
266
278
  export type MultiMonthPickerField = BaseField & {
267
279
  fieldType: "multi_month_picker";
@@ -269,6 +281,8 @@ export type MultiMonthPickerField = BaseField & {
269
281
  maxDate?: string;
270
282
  startMonth?: string;
271
283
  endMonth?: string;
284
+ /** When true, open on the first enabled month. Navigate only. */
285
+ autoNavigateToAvailable?: boolean;
272
286
  };
273
287
  export type TextAreaField = BaseField & {
274
288
  fieldType: "text_area";
@@ -91,11 +91,24 @@
91
91
  contain: inline-size;
92
92
  }
93
93
 
94
+ [data-component=calendar]:has([data-slot=year-panes]) {
95
+ width: 320px;
96
+ max-width: 320px;
97
+ }
98
+
94
99
  [data-component=calendar][data-month-layout=dual] [data-slot=month-panes],
95
100
  [data-component=calendar][data-month-layout=dual] [data-slot=quarter-panes] {
96
101
  flex-direction: row;
97
102
  }
98
103
 
104
+ [data-component=calendar][data-month-layout=dual] [data-slot=quarter-panes] {
105
+ width: auto;
106
+ min-width: 0;
107
+ max-width: none;
108
+ overflow: visible;
109
+ contain: none;
110
+ }
111
+
99
112
  /* Fiscal period: one vertical gutter track + outer Sunday corners, not stacked left-pills. */
100
113
  .calendar-interval-cap-start:not(.calendar-interval-cap-end) {
101
114
  background-color: transparent;
@@ -440,12 +453,6 @@
440
453
  border-bottom-right-radius: calc(var(--radius) + 4px);
441
454
  }
442
455
 
443
- [data-component=calendar][data-month-layout=dual] [data-slot=quarter-panes] {
444
- width: auto;
445
- min-width: 0;
446
- max-width: none;
447
- }
448
-
449
456
  [data-component=calendar] [data-slot=month-pane-divider-group],
450
457
  [data-component=calendar] [data-slot=quarter-pane-divider-group] {
451
458
  display: flex;