impact-nova 2.5.8 → 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 (73) 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 +197 -164
  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-fiscal-labels.js +6 -6
  14. package/dist/components/data-display/calendar/calendar-fiscal-period-nav.d.ts +16 -0
  15. package/dist/components/data-display/calendar/calendar-fiscal-period-nav.js +41 -0
  16. package/dist/components/data-display/calendar/calendar-padding-week.utils.d.ts +5 -1
  17. package/dist/components/data-display/calendar/calendar-padding-week.utils.js +20 -16
  18. package/dist/components/data-display/calendar/calendar-week-number-cell.d.ts +2 -1
  19. package/dist/components/data-display/calendar/calendar-week-number-cell.js +43 -42
  20. package/dist/components/data-display/calendar/calendar-week-utils.d.ts +6 -0
  21. package/dist/components/data-display/calendar/calendar-week-utils.js +51 -47
  22. package/dist/components/data-display/calendar/calendar.js +102 -100
  23. package/dist/components/data-display/calendar/calendar.types.d.ts +2 -0
  24. package/dist/components/data-display/calendar/use-calendar-day-picker-config.d.ts +4 -2
  25. package/dist/components/data-display/calendar/use-calendar-day-picker-config.js +77 -72
  26. package/dist/components/data-display/calendar/use-fiscal-calendar.js +16 -15
  27. package/dist/components/feedback/dialog/dialog.js +12 -12
  28. package/dist/components/feedback/sheet/sheet.js +22 -22
  29. package/dist/components/feedback/tooltip/tab-tooltip-render.js +2 -3
  30. package/dist/components/flows/command-palette/shortcut-settings.js +10 -10
  31. package/dist/components/flows/filter-panel/filter-panel.js +4 -4
  32. package/dist/components/forms/date-picker/calendar-selection-adapters.d.ts +2 -0
  33. package/dist/components/forms/date-picker/calendar-selection-adapters.js +36 -31
  34. package/dist/components/forms/date-picker/date-input-behavior.d.ts +10 -0
  35. package/dist/components/forms/date-picker/date-input-behavior.js +111 -90
  36. package/dist/components/forms/date-picker/date-picker.js +71 -69
  37. package/dist/components/forms/date-picker/date-picker.types.d.ts +2 -0
  38. package/dist/components/forms/date-picker/date-range-picker.js +146 -144
  39. package/dist/components/forms/date-picker/fiscal-pass-through.d.ts +1 -0
  40. package/dist/components/forms/date-picker/fiscal-pass-through.js +1 -0
  41. package/dist/components/forms/date-picker/month-picker.js +82 -80
  42. package/dist/components/forms/date-picker/month-range-picker.js +145 -143
  43. package/dist/components/forms/date-picker/multi-date-picker.js +51 -49
  44. package/dist/components/forms/date-picker/multi-month-picker.js +49 -47
  45. package/dist/components/forms/date-picker/multi-quarter-picker.js +46 -44
  46. package/dist/components/forms/date-picker/multi-week-picker.js +53 -51
  47. package/dist/components/forms/date-picker/multi-year-picker.js +48 -46
  48. package/dist/components/forms/date-picker/picker-story-layout.d.ts +2 -0
  49. package/dist/components/forms/date-picker/quarter-picker.js +46 -44
  50. package/dist/components/forms/date-picker/quarter-range-picker.js +45 -43
  51. package/dist/components/forms/date-picker/week-picker.js +82 -80
  52. package/dist/components/forms/date-picker/week-range-picker.js +169 -164
  53. package/dist/components/forms/date-picker/year-picker.js +47 -45
  54. package/dist/components/forms/date-picker/year-range-picker.js +47 -45
  55. package/dist/components/forms/select/components/SelectMenuPanel.js +3 -2
  56. package/dist/components/forms/select/components/SelectTriggerValue.js +2 -3
  57. package/dist/components/forms/select/components/Submenu.js +2 -3
  58. package/dist/components/forms/select/select.js +1 -0
  59. package/dist/components/forms/smart-input/smart-input.js +106 -85
  60. package/dist/components/forms/smart-input/smart-input.types.d.ts +5 -0
  61. package/dist/components/forms/textarea/textarea.js +29 -28
  62. package/dist/components/forms/textarea/textarea.types.d.ts +1 -0
  63. package/dist/form-react/Fields/TextField.js +25 -24
  64. package/dist/form-react/Fields/WeekRangePicker.js +47 -48
  65. package/dist/form-react/types/fields.types.d.ts +8 -0
  66. package/dist/impact-nova.css +1 -1
  67. package/dist/lib/fiscal-calendar/civil-date.js +18 -18
  68. package/dist/lib/overlay/overlay-portal-context.js +16 -16
  69. package/dist/llms/rules/best-practices.js +1 -1
  70. package/dist/llms/rules/installation.js +1 -1
  71. package/dist/llms/rules/real-world-patterns.js +1 -1
  72. package/dist/llms/rules/requirements.js +1 -1
  73. package/package.json +1 -1
@@ -1,96 +1,96 @@
1
- import * as F from "react";
2
- import { getDefaultClassNames as i } from "react-day-picker";
3
- import { buildCalendarDayPickerComponents as v } from "./calendar-day-picker-components.js";
1
+ import * as O from "react";
2
+ import { getDefaultClassNames as S } from "react-day-picker";
3
+ import { buildCalendarDayPickerComponents as T } from "./calendar-day-picker-components.js";
4
4
  import { getCalendarDayPickerClassNames as W } from "./calendar-day-picker-classnames.js";
5
- function T({
6
- buttonVariant: f,
5
+ function w({
6
+ buttonVariant: s,
7
7
  pickerType: m,
8
8
  calendarKind: C,
9
- granularity: V,
9
+ granularity: o,
10
10
  showOutsideDays: D,
11
- classNames: P,
12
- currentMonth: R,
13
- monthsFull: g,
14
- monthsShort: o,
15
- resolvedStartMonth: j,
16
- resolvedEndMonth: q,
17
- availableYears: u,
18
- fiscalPeriods: x,
19
- fiscalConfig: z,
20
- weekStartsOn: B,
21
- previousMonthLabel: G,
22
- nextMonthLabel: H,
23
- monthPlaceholder: I,
24
- yearPlaceholder: J,
25
- weekNumberLabel: N,
26
- weekNumberHeader: Q,
27
- weekLabel: U,
28
- fiscalWeekNumberLabel: X,
29
- fiscalWeekAriaLabel: Z,
30
- getCellMeta: _,
31
- onMonthChange: $,
32
- onWeekSelect: p,
33
- weekMode: y = "single",
34
- components: A
11
+ classNames: R,
12
+ currentMonth: g,
13
+ monthsFull: P,
14
+ monthsShort: j,
15
+ resolvedStartMonth: q,
16
+ resolvedEndMonth: x,
17
+ availableYears: z,
18
+ fiscalPeriods: G,
19
+ fiscalConfig: H,
20
+ weekStartsOn: I,
21
+ previousMonthLabel: J,
22
+ nextMonthLabel: Q,
23
+ monthPlaceholder: U,
24
+ yearPlaceholder: X,
25
+ weekNumberLabel: Z,
26
+ weekNumberHeader: _,
27
+ weekLabel: $,
28
+ fiscalWeekNumberLabel: p,
29
+ fiscalWeekAriaLabel: u,
30
+ getCellMeta: y,
31
+ onMonthChange: A,
32
+ onWeekSelect: B,
33
+ weekMode: E = "single",
34
+ showPeriodBoundaries: F = !1,
35
+ showWeekNumber: N = !0,
36
+ components: V
35
37
  }) {
36
- const E = i(), s = m === "week" && C === "fiscal" && V === "period", Y = F.useMemo(
38
+ const Y = S(), f = m === "week" && C === "fiscal" && o === "period", v = O.useMemo(
37
39
  () => W({
38
- defaultClassNames: E,
40
+ defaultClassNames: Y,
39
41
  pickerType: m,
40
42
  calendarKind: C,
41
43
  showOutsideDays: D,
42
- periodRowHover: s,
43
- classNames: P
44
+ periodRowHover: f,
45
+ showWeekNumber: N,
46
+ classNames: R
44
47
  }),
45
- [E, m, C, D, s, P]
46
- ), O = F.useMemo(
47
- () => v({
48
- buttonVariant: f,
48
+ [Y, m, C, D, f, N, R]
49
+ ), K = O.useMemo(
50
+ () => T({
51
+ buttonVariant: s,
49
52
  pickerType: m,
50
53
  calendarKind: C,
51
- currentMonth: R,
52
- monthsFull: g,
53
- monthsShort: o,
54
- resolvedStartMonth: j,
55
- resolvedEndMonth: q,
56
- availableYears: u,
57
- fiscalPeriods: x,
58
- fiscalConfig: z,
59
- weekStartsOn: B,
60
- previousMonthLabel: G,
61
- nextMonthLabel: H,
62
- monthPlaceholder: I,
63
- yearPlaceholder: J,
64
- weekNumberLabel: N,
65
- weekNumberHeader: Q,
66
- weekLabel: U,
67
- fiscalWeekNumberLabel: X,
68
- fiscalWeekAriaLabel: Z,
69
- getCellMeta: _,
70
- onMonthChange: $,
71
- onWeekSelect: p,
72
- periodRowHover: s,
73
- weekMode: y,
74
- components: A
54
+ currentMonth: g,
55
+ monthsFull: P,
56
+ monthsShort: j,
57
+ resolvedStartMonth: q,
58
+ resolvedEndMonth: x,
59
+ availableYears: z,
60
+ fiscalPeriods: G,
61
+ fiscalConfig: H,
62
+ weekStartsOn: I,
63
+ previousMonthLabel: J,
64
+ nextMonthLabel: Q,
65
+ monthPlaceholder: U,
66
+ yearPlaceholder: X,
67
+ weekNumberLabel: Z,
68
+ weekNumberHeader: _,
69
+ weekLabel: $,
70
+ fiscalWeekNumberLabel: p,
71
+ fiscalWeekAriaLabel: u,
72
+ getCellMeta: y,
73
+ onMonthChange: A,
74
+ onWeekSelect: B,
75
+ periodRowHover: f,
76
+ weekMode: E,
77
+ showPeriodBoundaries: F,
78
+ components: V
75
79
  }),
76
80
  [
77
- f,
81
+ s,
78
82
  m,
79
83
  C,
80
- R,
81
84
  g,
82
- o,
85
+ P,
83
86
  j,
84
87
  q,
85
- u,
86
88
  x,
87
89
  z,
88
- B,
89
90
  G,
90
91
  H,
91
92
  I,
92
93
  J,
93
- N,
94
94
  Q,
95
95
  U,
96
96
  X,
@@ -98,13 +98,18 @@ function T({
98
98
  _,
99
99
  $,
100
100
  p,
101
- s,
101
+ u,
102
102
  y,
103
- A
103
+ A,
104
+ B,
105
+ f,
106
+ E,
107
+ F,
108
+ V
104
109
  ]
105
110
  );
106
- return { dayPickerClassNames: Y, dayPickerComponents: O };
111
+ return { dayPickerClassNames: v, dayPickerComponents: K };
107
112
  }
108
113
  export {
109
- T as useCalendarDayPickerConfig
114
+ w as useCalendarDayPickerConfig
110
115
  };
@@ -1,24 +1,25 @@
1
- import * as r from "react";
2
- import { civilFromLocalDate as i } from "../../../lib/fiscal-calendar/civil-date.js";
3
- import { buildFiscalYear as m } from "../../../lib/fiscal-calendar/build-year.js";
4
- import { getCellMeta as s } from "../../../lib/fiscal-calendar/lookup.js";
5
- function p(e, l) {
6
- const t = l.getFullYear(), a = r.useMemo(() => {
7
- if (e)
1
+ import * as a from "react";
2
+ import { civilFromLocalDate as o } from "../../../lib/fiscal-calendar/civil-date.js";
3
+ import { buildFiscalYear as d } from "../../../lib/fiscal-calendar/build-year.js";
4
+ import { getCellMeta as l } from "../../../lib/fiscal-calendar/lookup.js";
5
+ import { midMonthDate as n } from "./calendar-fiscal-period-nav.js";
6
+ function F(t, r) {
7
+ const m = n(r), e = (t && l(t, o(m))?.fy) ?? r.getFullYear(), u = a.useMemo(() => {
8
+ if (t)
8
9
  try {
9
- return m(e, t);
10
+ return d(t, e);
10
11
  } catch {
11
12
  return;
12
13
  }
13
- }, [e, t]), o = r.useCallback(
14
- (u) => {
15
- if (e)
16
- return s(e, i(u));
14
+ }, [t, e]), i = a.useCallback(
15
+ (s) => {
16
+ if (t)
17
+ return l(t, o(s));
17
18
  },
18
- [e]
19
+ [t]
19
20
  );
20
- return { model: a, getCellMeta: o };
21
+ return { model: u, getCellMeta: i };
21
22
  }
22
23
  export {
23
- p as useFiscalCalendar
24
+ F as useFiscalCalendar
24
25
  };
@@ -6,8 +6,8 @@ import { createCompoundPart as y, wrapRadixPart as c } from "../../../lib/primit
6
6
  import { cn as v } from "../../../lib/utils.js";
7
7
  import { useImpactNovaI18n as h } from "../../../i18n/use-impact-nova-i18n.js";
8
8
  import { Button as w } from "../../primitives/button/button.js";
9
- import { mergeElementRefs as O } from "../../../lib/overlay/merge-element-refs.js";
10
- import { OverlayHostProvider as P, useOverlayHostDismissBeforeClose as x, useOverlayHostNestedDismissing as H } from "../../../lib/overlay/overlay-portal-context.js";
9
+ import { mergeElementRefs as P } from "../../../lib/overlay/merge-element-refs.js";
10
+ import { OverlayHostProvider as O, useOverlayHostDismissBeforeClose as x, useOverlayHostNestedDismissing as H } from "../../../lib/overlay/overlay-portal-context.js";
11
11
  import { OVERLAY_HOST_GROUP_CLASS as R } from "../../../lib/overlay/overlay-host.constants.js";
12
12
  import { useOverlayPortalContainerState as T } from "../../../lib/overlay/use-overlay-portal-container-state.js";
13
13
  const K = (o) => /* @__PURE__ */ t(e.Root, { "data-component": "dialog", ...o }), U = c(
@@ -49,20 +49,20 @@ const C = u.forwardRef(
49
49
  onEscapeKeyDown: m,
50
50
  ...g
51
51
  }, p) => {
52
- const f = H(), l = x();
52
+ const f = H(), d = x();
53
53
  return /* @__PURE__ */ D(
54
54
  e.Content,
55
55
  {
56
- ref: O(p, s),
56
+ ref: P(p, s),
57
57
  "aria-describedby": void 0,
58
58
  "data-component": "dialog-content",
59
59
  "data-overlay-host": "",
60
60
  "data-nested-dismissing": f || void 0,
61
- onOpenAutoFocus: (d) => {
62
- d.preventDefault(), r?.(d);
61
+ onOpenAutoFocus: (l) => {
62
+ l.preventDefault(), r?.(l);
63
63
  },
64
- onEscapeKeyDown: (d) => {
65
- l(), m?.(d);
64
+ onEscapeKeyDown: (l) => {
65
+ m?.(l), !l.defaultPrevented && d();
66
66
  },
67
67
  className: v(
68
68
  "fixed left-[50%] top-[50%] z-50 flex flex-col w-full max-w-lg translate-x-[-50%] translate-y-[-50%] border bg-canvas shadow-xl duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] rounded-lg motion-reduce:animate-none motion-reduce:transition-none",
@@ -81,7 +81,7 @@ const C = u.forwardRef(
81
81
  "data-component": "dialog-close",
82
82
  className: "absolute end-4 top-3.5 opacity-50 ring-offset-canvas transition-opacity hover:opacity-100 focus-visible:ring-2 focus-visible:ring-focus-ring focus-visible:ring-offset-2 data-[state=open]:bg-accent data-[state=open]:text-content-icon [&_svg]:!size-3 [&_svg]:block",
83
83
  "aria-label": a,
84
- onPointerDown: () => l(),
84
+ onPointerDown: () => d(),
85
85
  children: /* @__PURE__ */ t(N, {})
86
86
  }
87
87
  ) })
@@ -92,8 +92,8 @@ const C = u.forwardRef(
92
92
  );
93
93
  C.displayName = "DialogHostContent";
94
94
  const B = u.forwardRef(({ className: o, children: a, hideClose: s, onOpenAutoFocus: i, onEscapeKeyDown: n, ...r }, m) => {
95
- const { t: g } = h(), p = g("aria.close"), { portalContainer: f, setPortalContainerElement: l } = T();
96
- return /* @__PURE__ */ t(z, { children: /* @__PURE__ */ D(P, { portalContainer: f, children: [
95
+ const { t: g } = h(), p = g("aria.close"), { portalContainer: f, setPortalContainerElement: d } = T();
96
+ return /* @__PURE__ */ t(z, { children: /* @__PURE__ */ D(O, { portalContainer: f, children: [
97
97
  /* @__PURE__ */ t(b, {}),
98
98
  /* @__PURE__ */ t(
99
99
  C,
@@ -101,7 +101,7 @@ const B = u.forwardRef(({ className: o, children: a, hideClose: s, onOpenAutoFoc
101
101
  ref: m,
102
102
  hideClose: s,
103
103
  closeLabel: p,
104
- setPortalContainerElement: l,
104
+ setPortalContainerElement: d,
105
105
  className: o,
106
106
  onOpenAutoFocus: i,
107
107
  onEscapeKeyDown: n,
@@ -10,7 +10,7 @@ import { mergeElementRefs as E } from "../../../lib/overlay/merge-element-refs.j
10
10
  import { OverlayHostProvider as k, useOverlayHostDismissBeforeClose as x, useOverlayHostNestedDismissing as B } from "../../../lib/overlay/overlay-portal-context.js";
11
11
  import { OVERLAY_HOST_GROUP_CLASS as j } from "../../../lib/overlay/overlay-host.constants.js";
12
12
  import { useOverlayPortalContainerState as z } from "../../../lib/overlay/use-overlay-portal-container-state.js";
13
- import { SheetContext as T } from "./sheet-context.js";
13
+ import { SheetContext as P } from "./sheet-context.js";
14
14
  import { sheetVariants as A } from "./sheet.variants.js";
15
15
  const ee = (t) => /* @__PURE__ */ e(a.Root, { "data-component": "sheet", ...t }), te = y(
16
16
  "sheet",
@@ -22,8 +22,8 @@ const ee = (t) => /* @__PURE__ */ e(a.Root, { "data-component": "sheet", ...t })
22
22
  "close",
23
23
  "SheetClose",
24
24
  a.Close
25
- ), I = a.Portal, P = p.forwardRef(({ className: t, onPointerDown: i, ...l }, n) => {
26
- const o = x();
25
+ ), I = a.Portal, T = p.forwardRef(({ className: t, onPointerDown: i, ...l }, n) => {
26
+ const s = x();
27
27
  return /* @__PURE__ */ e(
28
28
  a.Overlay,
29
29
  {
@@ -32,21 +32,21 @@ const ee = (t) => /* @__PURE__ */ e(a.Root, { "data-component": "sheet", ...t })
32
32
  t
33
33
  ),
34
34
  onPointerDown: (c) => {
35
- o(), i?.(c);
35
+ s(), i?.(c);
36
36
  },
37
37
  ...l,
38
38
  ref: n
39
39
  }
40
40
  );
41
41
  });
42
- P.displayName = a.Overlay.displayName;
42
+ T.displayName = a.Overlay.displayName;
43
43
  const D = p.forwardRef(
44
44
  ({
45
45
  side: t,
46
46
  isExpanded: i,
47
47
  setPortalContainerElement: l,
48
48
  className: n,
49
- children: o,
49
+ children: s,
50
50
  onOpenAutoFocus: c,
51
51
  onEscapeKeyDown: h,
52
52
  ...f
@@ -59,11 +59,11 @@ const D = p.forwardRef(
59
59
  "data-component": "sheet-content",
60
60
  "data-overlay-host": "",
61
61
  "data-nested-dismissing": r || void 0,
62
- onOpenAutoFocus: (s) => {
63
- s.preventDefault(), c?.(s);
62
+ onOpenAutoFocus: (o) => {
63
+ o.preventDefault(), c?.(o);
64
64
  },
65
- onEscapeKeyDown: (s) => {
66
- d(), h?.(s);
65
+ onEscapeKeyDown: (o) => {
66
+ h?.(o), !o.defaultPrevented && d();
67
67
  },
68
68
  className: g(
69
69
  A({ side: t }),
@@ -73,7 +73,7 @@ const D = p.forwardRef(
73
73
  n
74
74
  ),
75
75
  ...f,
76
- children: o
76
+ children: s
77
77
  }
78
78
  );
79
79
  }
@@ -85,16 +85,16 @@ const _ = p.forwardRef(
85
85
  className: i,
86
86
  children: l,
87
87
  expandable: n = !1,
88
- defaultExpanded: o = !1,
88
+ defaultExpanded: s = !1,
89
89
  onOpenAutoFocus: c,
90
90
  onEscapeKeyDown: h,
91
91
  ...f
92
92
  }, u) => {
93
- const [r, d] = p.useState(o), { portalContainer: s, setPortalContainerElement: H } = z(), O = p.useCallback(() => {
93
+ const [r, d] = p.useState(s), { portalContainer: o, setPortalContainerElement: H } = z(), O = p.useCallback(() => {
94
94
  d((w) => !w);
95
95
  }, []);
96
96
  return /* @__PURE__ */ e(
97
- T.Provider,
97
+ P.Provider,
98
98
  {
99
99
  value: {
100
100
  isExpanded: r,
@@ -102,8 +102,8 @@ const _ = p.forwardRef(
102
102
  expandable: n,
103
103
  side: t || void 0
104
104
  },
105
- children: /* @__PURE__ */ e(I, { children: /* @__PURE__ */ m(k, { portalContainer: s, children: [
106
- /* @__PURE__ */ e(P, {}),
105
+ children: /* @__PURE__ */ e(I, { children: /* @__PURE__ */ m(k, { portalContainer: o, children: [
106
+ /* @__PURE__ */ e(T, {}),
107
107
  /* @__PURE__ */ e(
108
108
  D,
109
109
  {
@@ -129,7 +129,7 @@ const V = ({
129
129
  children: i,
130
130
  ...l
131
131
  }) => {
132
- const { t: n } = R(), { isExpanded: o, onExpandToggle: c, expandable: h, side: f } = p.useContext(T), u = x(), r = n("aria.close"), d = n("nestedList.expand"), s = n("nestedList.collapse");
132
+ const { t: n } = R(), { isExpanded: s, onExpandToggle: c, expandable: h, side: f } = p.useContext(P), u = x(), r = n("aria.close"), d = n("nestedList.expand"), o = n("nestedList.collapse");
133
133
  return /* @__PURE__ */ m(
134
134
  "div",
135
135
  {
@@ -150,14 +150,14 @@ const V = ({
150
150
  "data-component": "sheet-expand-toggle",
151
151
  onClick: c,
152
152
  className: "rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none",
153
- "aria-label": o ? s : d,
153
+ "aria-label": s ? o : d,
154
154
  children: [
155
- o ? /* @__PURE__ */ e(v, { size: 19, className: " -rotate-90" }) : /* @__PURE__ */ e(v, { size: 19, className: "rotate-90" }),
156
- /* @__PURE__ */ e("span", { className: "sr-only", children: o ? s : d })
155
+ s ? /* @__PURE__ */ e(v, { size: 19, className: " -rotate-90" }) : /* @__PURE__ */ e(v, { size: 19, className: "rotate-90" }),
156
+ /* @__PURE__ */ e("span", { className: "sr-only", children: s ? o : d })
157
157
  ]
158
158
  }
159
159
  ) }),
160
- /* @__PURE__ */ e(C, { variant: "tertiary", side: "top", children: o ? s : d })
160
+ /* @__PURE__ */ e(C, { variant: "tertiary", side: "top", children: s ? o : d })
161
161
  ] }),
162
162
  /* @__PURE__ */ m(N, { children: [
163
163
  /* @__PURE__ */ e(S, { asChild: !0, children: /* @__PURE__ */ m(
@@ -211,7 +211,7 @@ export {
211
211
  ne as SheetDescription,
212
212
  se as SheetFooter,
213
213
  V as SheetHeader,
214
- P as SheetOverlay,
214
+ T as SheetOverlay,
215
215
  I as SheetPortal,
216
216
  ae as SheetTitle,
217
217
  te as SheetTrigger
@@ -1,7 +1,6 @@
1
1
  import { jsxs as t, jsx as e } from "react/jsx-runtime";
2
2
  import { Tooltip as l, TooltipTrigger as n, TooltipContent as o } from "./tooltip.js";
3
- import "react";
4
- const p = (i, r, a) => /* @__PURE__ */ t(l, { children: [
3
+ const d = (i, r, a) => /* @__PURE__ */ t(l, { children: [
5
4
  /* @__PURE__ */ e(n, { asChild: !0, children: /* @__PURE__ */ e("span", { className: "inline-flex items-center justify-center h-full w-full", children: i }) }),
6
5
  /* @__PURE__ */ e(o, { variant: "tertiary", className: a, children: r })
7
6
  ] }), h = (i, r) => /* @__PURE__ */ t(l, { children: [
@@ -10,5 +9,5 @@ const p = (i, r, a) => /* @__PURE__ */ t(l, { children: [
10
9
  ] });
11
10
  export {
12
11
  h as defaultAccordionTooltipRender,
13
- p as defaultTabTooltipRender
12
+ d as defaultTabTooltipRender
14
13
  };
@@ -2,17 +2,17 @@ import { jsx as r, jsxs as h, Fragment as z } from "react/jsx-runtime";
2
2
  import * as o from "react";
3
3
  import { Person as G, Monitor as U, PriorityAlert as q, Locked as O, Reset as B } from "impact-nova-icons";
4
4
  import { cn as p } from "../../../lib/utils.js";
5
- import { Kbd as $ } from "../../primitives/kbd/kbd.js";
6
- import { keybindingToString as H } from "../../primitives/kbd/keybinding-display.js";
7
5
  import { OverflowTooltip as A } from "../../feedback/tooltip/overflow-tooltip.js";
8
- import { ModuleRegistry as V, AllCommunityModule as J } from "ag-grid-community";
9
- import { AllEnterpriseModule as Q } from "ag-grid-enterprise";
10
- import { DataTable as X, DataTableContent as Y } from "../../data/data-table/data-table.js";
6
+ import { ModuleRegistry as $, AllCommunityModule as H } from "ag-grid-community";
7
+ import { AllEnterpriseModule as V } from "ag-grid-enterprise";
8
+ import { DataTable as J, DataTableContent as Q } from "../../data/data-table/data-table.js";
11
9
  import { AG_CELL_NO_PADDING as F } from "../../data/ag-grid-react/cell-renderers/index.js";
10
+ import { Kbd as X } from "../../primitives/kbd/kbd.js";
11
+ import { keybindingToString as Y } from "../../primitives/kbd/keybinding-display.js";
12
12
  import { useCommandPalette as Z } from "./use-command-palette.js";
13
13
  import { COMMAND_SOURCE_LABELS as m, keybindingFromEvent as W, isReservedShortcut as ee } from "./utils.js";
14
14
  import { BadgeCellRenderer as te } from "../../data/ag-grid-react/cell-renderers/badge-cell-renderer.js";
15
- V.registerModules([J, Q]);
15
+ $.registerModules([H, V]);
16
16
  function re(a) {
17
17
  const t = a.data;
18
18
  return t ? /* @__PURE__ */ h("div", { className: "flex items-center gap-2 min-w-0 h-full", children: [
@@ -69,7 +69,7 @@ function ne(a) {
69
69
  "flex items-center justify-end h-full w-full text-end",
70
70
  t.customisable ? "cursor-pointer" : "cursor-default opacity-70"
71
71
  ),
72
- children: /* @__PURE__ */ r($, { keybinding: t.keybinding, size: "sm" })
72
+ children: /* @__PURE__ */ r(X, { keybinding: t.keybinding, size: "sm" })
73
73
  }
74
74
  ) : t.customisable ? /* @__PURE__ */ r(
75
75
  "button",
@@ -133,7 +133,7 @@ function le({
133
133
  description: e.description || "",
134
134
  category: e.category || "General",
135
135
  keybinding: i,
136
- keybindingDisplay: i ? H(i) : "",
136
+ keybindingDisplay: i ? Y(i) : "",
137
137
  scope: e.scope,
138
138
  source: D,
139
139
  sourceColor: T ? "primary" : "neutral",
@@ -278,10 +278,10 @@ function le({
278
278
  u?.type === "conflict" ? /* @__PURE__ */ r(q, { className: "h-3.5 w-3.5 shrink-0" }) : u?.type === "reserved" ? /* @__PURE__ */ r(O, { className: "h-3.5 w-3.5 shrink-0" }) : c ? /* @__PURE__ */ r("span", { className: "shrink-0 text-base", children: "⌨️" }) : null,
279
279
  /* @__PURE__ */ r("span", { children: u ? u.text : L })
280
280
  ] }) : null;
281
- return /* @__PURE__ */ h(X, { className: p("flex flex-col w-full h-full border-t-0", a), children: [
281
+ return /* @__PURE__ */ h(J, { className: p("flex flex-col w-full h-full border-t-0", a), children: [
282
282
  s ? s(E) : E,
283
283
  /* @__PURE__ */ r(
284
- Y,
284
+ Q,
285
285
  {
286
286
  rowData: y,
287
287
  columnDefs: I,
@@ -6,8 +6,8 @@ import { cn as o } from "../../../lib/utils.js";
6
6
  import { MultiColorFilter as F, Cross as P, InfoBadge as u } from "impact-nova-icons";
7
7
  import { Button as D } from "../../primitives/button/button.js";
8
8
  import { Tooltip as c, TooltipTrigger as f, TooltipContent as h } from "../../feedback/tooltip/tooltip.js";
9
- import { Kbd as S } from "../../primitives/kbd/kbd.js";
10
- import { OverflowTooltip as j } from "../../feedback/tooltip/overflow-tooltip.js";
9
+ import { OverflowTooltip as S } from "../../feedback/tooltip/overflow-tooltip.js";
10
+ import { Kbd as j } from "../../primitives/kbd/kbd.js";
11
11
  import { useImpactNovaI18n as v } from "../../../i18n/use-impact-nova-i18n.js";
12
12
  import { useOverlayHostDismissNestedLayersOnNavigation as I } from "../../../lib/overlay/overlay-portal-context.js";
13
13
  import { preventDismissOnTooltipOutside as x } from "../../../lib/overlay/prevent-dismiss-on-tooltip-outside.js";
@@ -145,14 +145,14 @@ const O = ({
145
145
  ),
146
146
  /* @__PURE__ */ a("div", { className: "flex items-center gap-1 min-w-0", children: [
147
147
  /* @__PURE__ */ e(
148
- j,
148
+ S,
149
149
  {
150
150
  triggerClassName: "truncate font-['Manrope'] block min-w-0",
151
151
  content: t.tooltipKeybinding ? /* @__PURE__ */ a("span", { className: "flex items-center gap-2", children: [
152
152
  t.label,
153
153
  " ",
154
154
  /* @__PURE__ */ e(
155
- S,
155
+ j,
156
156
  {
157
157
  keybinding: t.tooltipKeybinding,
158
158
  size: "sm"
@@ -16,6 +16,8 @@ export declare function coerceMonthRangeApply(value: CalendarApplyValue | undefi
16
16
  export declare function coerceSingleWeek(value: WeekSelectValue): WeekSelection | undefined;
17
17
  export declare function coerceWeekArray(value: WeekSelectValue): WeekSelection[] | undefined;
18
18
  export declare function coerceWeekRangeApply(value: CalendarApplyValue | undefined, fallback?: WeekRange): WeekRange | undefined;
19
+ /** Range-mode first click is `{ from }` only. A single week is a valid range. */
20
+ export declare function completeWeekRange(range?: WeekRange): WeekRange | undefined;
19
21
  export declare function coerceDateArray(value: DateSelectValue): Date[] | undefined;
20
22
  export declare function coerceDateArrayApply(value: CalendarApplyValue | undefined, fallback?: Date[]): Date[] | undefined;
21
23
  export declare function coerceMonthArrayApply(value: CalendarApplyValue | undefined, fallback?: MonthSelection[]): MonthSelection[] | undefined;
@@ -11,16 +11,16 @@ function o(r) {
11
11
  const n = r.from;
12
12
  return n === void 0 || n instanceof Date;
13
13
  }
14
- function f(r) {
14
+ function c(r) {
15
15
  return r instanceof Date ? r : void 0;
16
16
  }
17
- function c(r) {
17
+ function y(r) {
18
18
  return o(r) ? r : void 0;
19
19
  }
20
- function y(r, n) {
20
+ function A(r, n) {
21
21
  return r instanceof Date ? r : n;
22
22
  }
23
- function A(r, n) {
23
+ function s(r, n) {
24
24
  if (r == null || Array.isArray(r) || r instanceof Date || "weekOfMonth" in r || "year" in r && "month" in r && !("from" in r)) return n;
25
25
  if ("from" in r || "to" in r) {
26
26
  const t = r.from;
@@ -28,61 +28,66 @@ function A(r, n) {
28
28
  }
29
29
  return n;
30
30
  }
31
- function s(r) {
31
+ function p(r) {
32
32
  if (!(r == null || Array.isArray(r) || e(r)))
33
33
  return r;
34
34
  }
35
- function p(r) {
35
+ function h(r) {
36
36
  return Array.isArray(r) ? r : void 0;
37
37
  }
38
- function h(r, n) {
38
+ function D(r, n) {
39
39
  return e(r) ? r : n;
40
40
  }
41
- function D(r) {
41
+ function m(r) {
42
42
  if (!(r == null || Array.isArray(r) || i(r)))
43
43
  return r;
44
44
  }
45
45
  function M(r) {
46
46
  return Array.isArray(r) ? r : void 0;
47
47
  }
48
- function g(r, n) {
49
- return i(r) ? r : n;
48
+ function u(r, n) {
49
+ return f(i(r) ? r : n);
50
50
  }
51
- function m(r) {
51
+ function f(r) {
52
+ if (r?.from)
53
+ return { from: r.from, to: r.to ?? r.from };
54
+ }
55
+ function g(r) {
52
56
  return Array.isArray(r) ? r : void 0;
53
57
  }
54
- function u(r, n) {
58
+ function d(r, n) {
55
59
  return Array.isArray(r) && r.every((t) => t instanceof Date) ? r : n;
56
60
  }
57
- function d(r, n) {
61
+ function S(r, n) {
58
62
  return !Array.isArray(r) || !r.every((t) => typeof t == "object" && t !== null && "year" in t && "month" in t && !("weekOfMonth" in t)) ? n : r;
59
63
  }
60
- function S(r, n) {
64
+ function w(r, n) {
61
65
  return Array.isArray(r) && r.every((t) => "weekOfMonth" in t) ? r : n;
62
66
  }
63
- function w(r, n) {
67
+ function O(r, n) {
64
68
  return r == null || Array.isArray(r) || r instanceof Date || e(r) || "weekOfMonth" in r ? n : "year" in r && "month" in r ? r : n;
65
69
  }
66
- function O(r, n) {
70
+ function R(r, n) {
67
71
  return r == null || Array.isArray(r) || r instanceof Date || i(r) ? n : "weekOfMonth" in r ? r : n;
68
72
  }
69
73
  export {
70
- m as coerceDateArray,
71
- u as coerceDateArrayApply,
72
- c as coerceDateRange,
73
- A as coerceDateRangeApply,
74
- p as coerceMonthArray,
75
- d as coerceMonthArrayApply,
76
- h as coerceMonthRangeApply,
77
- f as coerceSingleDate,
78
- y as coerceSingleDateApply,
79
- s as coerceSingleMonth,
80
- w as coerceSingleMonthApply,
81
- D as coerceSingleWeek,
82
- O as coerceSingleWeekApply,
74
+ g as coerceDateArray,
75
+ d as coerceDateArrayApply,
76
+ y as coerceDateRange,
77
+ s as coerceDateRangeApply,
78
+ h as coerceMonthArray,
79
+ S as coerceMonthArrayApply,
80
+ D as coerceMonthRangeApply,
81
+ c as coerceSingleDate,
82
+ A as coerceSingleDateApply,
83
+ p as coerceSingleMonth,
84
+ O as coerceSingleMonthApply,
85
+ m as coerceSingleWeek,
86
+ R as coerceSingleWeekApply,
83
87
  M as coerceWeekArray,
84
- S as coerceWeekArrayApply,
85
- g as coerceWeekRangeApply,
88
+ w as coerceWeekArrayApply,
89
+ u as coerceWeekRangeApply,
90
+ f as completeWeekRange,
86
91
  o as isDateRangeSelection,
87
92
  e as isMonthRangeSelection,
88
93
  i as isWeekRangeSelection