impact-nova 2.1.0-alpha.6 → 2.1.0-alpha.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 (113) hide show
  1. package/dist/components/data/ag-grid-react/ag-grid.types.d.ts +6 -0
  2. package/dist/components/data/ag-grid-react/build-ag-grid-theme.d.ts +3 -0
  3. package/dist/components/data/ag-grid-react/cell-renderers/editors/input-cell-editor.js +58 -58
  4. package/dist/components/data/ag-grid-react/column-indicator-sync-bus.d.ts +9 -0
  5. package/dist/components/data/ag-grid-react/column-indicator-sync-bus.js +15 -0
  6. package/dist/components/data/ag-grid-react/headers/column-menu/column-settings-menu.js +78 -73
  7. package/dist/components/data/ag-grid-react/headers/custom-header.js +3 -1
  8. package/dist/components/data/ag-grid-react/headers/header-search-input.js +87 -91
  9. package/dist/components/data/ag-grid-react/index.d.ts +1 -1
  10. package/dist/components/data/ag-grid-react/index.js +109 -100
  11. package/dist/components/data/ag-grid-react/notify-column-indicator-sync.d.ts +3 -2
  12. package/dist/components/data/ag-grid-react/notify-column-indicator-sync.js +4 -3
  13. package/dist/components/data/ag-grid-react/sync-ag-grid-theme-mode.d.ts +3 -0
  14. package/dist/components/data/ag-grid-react/sync-ag-grid-theme-mode.js +10 -0
  15. package/dist/components/data/ag-grid-react/theme.d.ts +1 -0
  16. package/dist/components/data/ag-grid-react/theme.js +93 -21
  17. package/dist/components/data/data-table/column-indicator.d.ts +1 -1
  18. package/dist/components/data/data-table/column-indicator.js +15 -11
  19. package/dist/components/data/data-table/data-table-column-def-pin.d.ts +9 -4
  20. package/dist/components/data/data-table/data-table-column-def-pin.js +38 -38
  21. package/dist/components/data/data-table/data-table-saved-views.js +37 -37
  22. package/dist/components/data/data-table/data-table-sheet.js +15 -17
  23. package/dist/components/data/data-table/data-table.js +62 -57
  24. package/dist/components/data/data-table/data-table.types.d.ts +7 -1
  25. package/dist/components/data/data-table/indicator-legend.d.ts +13 -2
  26. package/dist/components/data/data-table/indicator-legend.js +20 -17
  27. package/dist/components/data/data-table/pin-switch.js +9 -9
  28. package/dist/components/data/data-table/use-data-table-column-list-sync.js +133 -130
  29. package/dist/components/data/nested-list/nested-list-change-detection.d.ts +11 -0
  30. package/dist/components/data/nested-list/nested-list-change-detection.js +13 -0
  31. package/dist/components/data/nested-list/nested-list.js +107 -97
  32. package/dist/components/data-display/calendar/calendar.d.ts +1 -1
  33. package/dist/components/data-display/calendar/calendar.js +194 -189
  34. package/dist/components/data-display/chart/chart-palette.d.ts +16 -0
  35. package/dist/components/data-display/chart/chart-palette.js +28 -0
  36. package/dist/components/data-display/chart/chart.js +121 -115
  37. package/dist/components/data-display/chart/chart.utils.js +9 -6
  38. package/dist/components/data-display/chart/index.d.ts +1 -0
  39. package/dist/components/data-display/chart/index.js +15 -9
  40. package/dist/components/data-display/chart/resolve-highcharts-options.d.ts +3 -0
  41. package/dist/components/data-display/chart/resolve-highcharts-options.js +35 -0
  42. package/dist/components/data-display/statistics-card/statistics-card.color.d.ts +6 -0
  43. package/dist/components/data-display/statistics-card/statistics-card.color.js +19 -0
  44. package/dist/components/data-display/statistics-card/statistics-card.hooks.js +50 -48
  45. package/dist/components/data-display/statistics-card/statistics-card.js +127 -146
  46. package/dist/components/feedback/alert-dialog/alert-dialog.js +15 -15
  47. package/dist/components/feedback/dialog/dialog.js +3 -3
  48. package/dist/components/feedback/drawer/drawer.js +32 -32
  49. package/dist/components/feedback/sheet/sheet.js +8 -8
  50. package/dist/components/feedback/sheet/sheet.variants.js +1 -1
  51. package/dist/components/feedback/toast/toast.js +83 -92
  52. package/dist/components/flows/command-palette/command-palette-context.types.d.ts +5 -0
  53. package/dist/components/flows/command-palette/command-palette.d.ts +4 -16
  54. package/dist/components/flows/command-palette/command-palette.js +245 -258
  55. package/dist/components/flows/command-palette/command-palette.types.d.ts +9 -0
  56. package/dist/components/flows/command-palette/shortcut-overlay.js +6 -6
  57. package/dist/components/flows/filter-panel/filter-panel.d.ts +3 -2
  58. package/dist/components/flows/filter-panel/filter-panel.js +99 -104
  59. package/dist/components/flows/filter-strip/filter-summary.js +41 -41
  60. package/dist/components/flows/filter-strip/filter-tag-list.js +48 -48
  61. package/dist/components/flows/wizard/wizard.js +32 -32
  62. package/dist/components/forms/choice-card/choice-card.d.ts +2 -2
  63. package/dist/components/forms/choice-card/choice-card.js +156 -166
  64. package/dist/components/forms/combobox/combobox.js +70 -70
  65. package/dist/components/forms/date-picker/date-picker.js +31 -30
  66. package/dist/components/forms/file-upload/file-upload.js +146 -168
  67. package/dist/components/forms/prompt/prompt.js +47 -48
  68. package/dist/components/forms/select/components/SelectAllRow.js +14 -14
  69. package/dist/components/forms/select/components/SelectMenuFooter.js +12 -12
  70. package/dist/components/forms/select/components/SelectMenuHeader.js +44 -44
  71. package/dist/components/forms/select/components/SelectMenuListBody.js +22 -22
  72. package/dist/components/forms/select/components/SelectMenuPanel.js +8 -8
  73. package/dist/components/forms/select/components/SelectOptionRow.js +62 -62
  74. package/dist/components/forms/select/select.d.ts +5 -4
  75. package/dist/components/forms/select/select.js +123 -120
  76. package/dist/components/forms/select/select.types.d.ts +95 -204
  77. package/dist/components/forms/slider/slider.js +17 -17
  78. package/dist/components/forms/smart-input/smart-input.js +49 -49
  79. package/dist/components/forms/textarea/textarea.js +25 -25
  80. package/dist/components/layout/breadcrumb/breadcrumb.js +112 -118
  81. package/dist/components/layout/header/header.d.ts +5 -17
  82. package/dist/components/layout/header/header.js +113 -116
  83. package/dist/components/layout/header/header.types.d.ts +3 -0
  84. package/dist/components/layout/sidebar/sidebar.js +5 -5
  85. package/dist/components/layout/sidebar/sidebar.variants.js +1 -1
  86. package/dist/components/primitives/accordion/accordion.js +38 -41
  87. package/dist/components/primitives/kbd/kbd.variants.js +1 -1
  88. package/dist/i18n/defaultMessages.d.ts +2 -0
  89. package/dist/i18n/defaultMessages.js +6 -4
  90. package/dist/i18n/locales/de.js +2 -0
  91. package/dist/i18n/locales/es.js +2 -0
  92. package/dist/i18n/locales/hi.js +2 -0
  93. package/dist/i18n/locales/kn.js +2 -0
  94. package/dist/impact-nova-base.scss +8 -5
  95. package/dist/impact-nova-components.css +2 -2
  96. package/dist/impact-nova-tokens.scss +346 -189
  97. package/dist/impact-nova.css +1 -1
  98. package/dist/index.js +505 -499
  99. package/dist/lib/primitives/create-component.d.ts +1 -1
  100. package/dist/lib/primitives/create-component.js +4 -4
  101. package/dist/lib/primitives/field.js +17 -18
  102. package/dist/lib/resolve-design-token-color.d.ts +5 -0
  103. package/dist/lib/resolve-design-token-color.js +12 -0
  104. package/dist/lib/virtualized/virtualized-list-parts.d.ts +1 -2
  105. package/dist/lib/virtualized/virtualized-list-parts.js +23 -23
  106. package/dist/lib/virtualized/virtualized.types.d.ts +10 -0
  107. package/dist/llms/rules/ag-grid.js +1 -1
  108. package/dist/llms/rules/installation.js +1 -1
  109. package/dist/llms/rules/requirements.js +1 -1
  110. package/dist/theme/tokens/chart-series-palette.json.d.ts +53 -0
  111. package/dist/theme/tokens/chart-series-palette.json.js +7 -0
  112. package/package.json +22 -254
  113. package/tailwind.config.js +10 -229
@@ -1,52 +1,52 @@
1
- import { jsx as n, jsxs as G } from "react/jsx-runtime";
2
- import { useState as h, useRef as E, useCallback as D, useMemo as g, useEffect as y, memo as v } from "react";
1
+ import { jsx as n, jsxs as E } from "react/jsx-runtime";
2
+ import { useState as g, useMemo as u, useCallback as D, useEffect as w, memo as v } from "react";
3
3
  import { AgGridWrapper as O } from "../ag-grid-react/index.js";
4
4
  import { cn as H } from "../../../lib/utils.js";
5
- import { DataTableContext as F, DataTableSheetPortalStoreContext as N, useDataTable as I, useDataTableSheetPortal as A } from "./data-table-context.js";
5
+ import { DataTableContext as F, DataTableSheetPortalStoreContext as I, useDataTable as N, useDataTableSheetPortal as P } from "./data-table-context.js";
6
6
  import { createDataTableSheetPortalStore as z } from "./data-table-sheet-portal-store.js";
7
7
  import { DATA_TABLE_SCOPED_SHEET_HOST_MIN_HEIGHT_PX as B } from "./data-table-constants.js";
8
8
  import { extractRuntimeColumnDefs as M, mergeInitialGridRuntimeState as j } from "./data-table-column-def-pin.js";
9
- const P = {
9
+ const _ = {
10
10
  default: 46,
11
11
  compact: 30,
12
12
  comfort: 52
13
13
  }, U = ({
14
- children: a,
14
+ children: i,
15
15
  className: t
16
16
  }) => {
17
- const [r, e] = h(null), [o, c] = h("medium"), [i, S] = h("full"), [s, m] = h("default"), d = E(z()), u = D((l) => {
18
- d.current.registerScopedSheetDepth(l);
19
- }, []), f = D((l) => {
20
- e(l);
17
+ const [r, e] = g(null), [o, c] = g("medium"), [a, S] = g("full"), [s, f] = g("default"), l = u(() => z(), []), m = D((d) => {
18
+ l.registerScopedSheetDepth(d);
19
+ }, [l]), p = D((d) => {
20
+ e(d);
21
21
  }, []), x = {
22
22
  small: "12px",
23
23
  medium: "14px",
24
24
  large: "16px"
25
- }[o], b = `${P[s]}px`, T = g(
25
+ }[o], b = `${_[s]}px`, T = u(
26
26
  () => ({
27
27
  gridApi: r,
28
- registerApi: f,
29
- registerScopedSheetDepth: u,
28
+ registerApi: p,
29
+ registerScopedSheetDepth: m,
30
30
  fontSize: o,
31
31
  setFontSize: c,
32
- numericFormat: i,
32
+ numericFormat: a,
33
33
  setNumericFormat: S,
34
34
  rowHeight: s,
35
- setRowHeight: m
35
+ setRowHeight: f
36
36
  }),
37
37
  [
38
38
  r,
39
- f,
40
- u,
39
+ p,
40
+ m,
41
41
  o,
42
- i,
42
+ a,
43
43
  s
44
44
  ]
45
45
  );
46
46
  return /* @__PURE__ */ n(F.Provider, { value: T, children: /* @__PURE__ */ n(
47
- N.Provider,
47
+ I.Provider,
48
48
  {
49
- value: d.current,
49
+ value: l,
50
50
  children: /* @__PURE__ */ n(
51
51
  "div",
52
52
  {
@@ -59,19 +59,19 @@ const P = {
59
59
  "--ag-font-size": x,
60
60
  "--ag-row-height": b
61
61
  },
62
- children: a
62
+ children: i
63
63
  }
64
64
  )
65
65
  }
66
66
  ) });
67
- }, w = {
67
+ }, A = {
68
68
  full: "full_no",
69
69
  k: "thou",
70
70
  m: "mil",
71
71
  b: "bil",
72
72
  full_precision: "full_precision"
73
73
  }, k = v(function() {
74
- const { setSheetTarget: t } = A();
74
+ const { setSheetTarget: t } = P();
75
75
  return /* @__PURE__ */ n(
76
76
  "div",
77
77
  {
@@ -83,8 +83,8 @@ const P = {
83
83
  className: t,
84
84
  children: r
85
85
  }) {
86
- const { scopedSheetOpen: e } = A();
87
- return /* @__PURE__ */ G(
86
+ const { scopedSheetOpen: e } = P();
87
+ return /* @__PURE__ */ E(
88
88
  "div",
89
89
  {
90
90
  className: H(
@@ -104,12 +104,12 @@ const P = {
104
104
  onGridReady: e,
105
105
  columnDefs: o,
106
106
  maintainColumnOrder: c = !0,
107
- ...i
107
+ ...a
108
108
  }) {
109
109
  return /* @__PURE__ */ n(
110
110
  O,
111
111
  {
112
- ...i,
112
+ ...a,
113
113
  columnDefs: o,
114
114
  rowHeight: t,
115
115
  onGridReady: e,
@@ -118,66 +118,71 @@ const P = {
118
118
  }
119
119
  );
120
120
  });
121
- function Z(a) {
121
+ function Z(i) {
122
122
  const {
123
123
  registerApi: t,
124
124
  rowHeight: r,
125
125
  gridApi: e,
126
126
  numericFormat: o
127
- } = I(), {
127
+ } = N(), {
128
128
  className: c,
129
- onGridReady: i,
129
+ onGridReady: a,
130
130
  rowHeight: S,
131
131
  context: s,
132
- columnDefs: m,
133
- initialState: d,
134
- maintainColumnOrder: u = !0,
135
- ...f
136
- } = a, x = P[r], b = S ?? x, { runtimeColumnDefs: T, extractedRuntimeDefaults: l } = g(
137
- () => M(m ?? void 0),
138
- [m]
139
- ), _ = g(
140
- () => j(d, l),
141
- [d, l]
142
- ), C = g(
132
+ columnDefs: f,
133
+ initialState: l,
134
+ suppressInitialRuntimeState: m,
135
+ maintainColumnOrder: p = !0,
136
+ ...x
137
+ } = i, b = _[r], T = S ?? b, { runtimeColumnDefs: d, extractedRuntimeDefaults: y } = u(
138
+ () => M(f ?? void 0),
139
+ [f]
140
+ ), C = u(
141
+ () => j(
142
+ l,
143
+ y,
144
+ m
145
+ ),
146
+ [l, y, m]
147
+ ), G = u(
143
148
  () => ({
144
149
  ...s,
145
- formatType: w[o]
150
+ formatType: A[o]
146
151
  }),
147
152
  [s, o]
148
153
  );
149
- y(() => {
154
+ w(() => {
150
155
  e?.resetRowHeights();
151
- }, [r, e]), y(() => {
156
+ }, [r, e]), w(() => {
152
157
  if (e) {
153
- const p = e.getGridOption("context") || {};
158
+ const h = e.getGridOption("context") || {};
154
159
  e.setGridOption("context", {
155
- ...p,
156
- formatType: w[o]
160
+ ...h,
161
+ formatType: A[o]
157
162
  }), e.refreshCells({ force: !0 });
158
163
  }
159
164
  }, [o, e]);
160
165
  const R = D(
161
- (p) => {
162
- t(p.api), i?.(p);
166
+ (h) => {
167
+ t(h.api), a?.(h);
163
168
  },
164
- [t, i]
169
+ [t, a]
165
170
  );
166
171
  return /* @__PURE__ */ n(L, { className: c, children: /* @__PURE__ */ n(
167
172
  W,
168
173
  {
169
- ...f,
170
- columnDefs: T,
171
- initialState: _,
172
- maintainColumnOrder: u,
173
- resolvedRowHeight: b,
174
- mergedContext: C,
174
+ ...x,
175
+ columnDefs: d,
176
+ initialState: C,
177
+ maintainColumnOrder: p,
178
+ resolvedRowHeight: T,
179
+ mergedContext: G,
175
180
  onGridReady: R
176
181
  }
177
182
  ) });
178
183
  }
179
184
  const ee = ({
180
- children: a,
185
+ children: i,
181
186
  className: t
182
187
  }) => /* @__PURE__ */ n(
183
188
  "div",
@@ -187,7 +192,7 @@ const ee = ({
187
192
  "flex items-center justify-between px-4 py-3 shrink-0 bg-canvas-elevated rounded-t-[inherit]",
188
193
  t
189
194
  ),
190
- children: a
195
+ children: i
191
196
  }
192
197
  );
193
198
  export {
@@ -1,4 +1,5 @@
1
1
  import { AgGridWrapperProps } from '../ag-grid-react/ag-grid.types';
2
+ import { SuppressInitialRuntimeState } from './data-table-column-def-pin';
2
3
  import type * as React from "react";
3
4
  /**
4
5
  * Root layout provider for data tables. Compose toolbar, sheet, and `DataTableContent` as children.
@@ -8,11 +9,16 @@ export type DataTableProps = {
8
9
  className?: string;
9
10
  };
10
11
  /**
11
- * AG Grid surface — forwards native `AgGridReact` props (rowData, columnDefs, rowModelType, treeData, …)
12
+ * AG Grid surface — forwards `AgGridReact` grid options (`rowData`, `columnDefs`, `rowModelType`, …)
12
13
  * with Impact Nova styling. See https://www.ag-grid.com/react-data-grid/grid-options/
13
14
  */
14
15
  export type DataTableContentProps<TData = unknown> = AgGridWrapperProps<TData> & {
15
16
  className?: string;
17
+ /**
18
+ * Skip injecting extracted column pinning/visibility into `initialState` on
19
+ * first paint — use when a saved view will apply immediately after mount.
20
+ */
21
+ suppressInitialRuntimeState?: SuppressInitialRuntimeState;
16
22
  };
17
23
  /**
18
24
  * Top bar above the grid. Optional — omit to remove the toolbar from the DOM.
@@ -1,8 +1,19 @@
1
+ import { IndicatorType } from './column-indicator';
2
+ export type IndicatorLegendEntry = {
3
+ type: IndicatorType;
4
+ /** Override the default i18n label for this entry */
5
+ label?: string;
6
+ };
7
+ export interface IndicatorLegendProps {
8
+ /** Legend entries; defaults to sort + filter */
9
+ entries?: IndicatorLegendEntry[];
10
+ }
1
11
  /**
2
- * Legend showing the meaning of sort/filter indicator colors.
12
+ * Legend showing the meaning of column indicator badge colors.
3
13
  * Displayed in the Frozen Columns section header.
4
14
  *
5
15
  * @example
6
16
  * <IndicatorLegend />
17
+ * <IndicatorLegend entries={[{ type: 'sort' }, { type: 'filter' }, { type: 'nonSavable' }]} />
7
18
  */
8
- export declare const IndicatorLegend: React.FC;
19
+ export declare const IndicatorLegend: React.FC<IndicatorLegendProps>;
@@ -1,20 +1,23 @@
1
- import { jsxs as t, jsx as e } from "react/jsx-runtime";
2
- import { useImpactNovaI18n as n } from "../../../i18n/use-impact-nova-i18n.js";
3
- import { ColumnIndicator as r } from "./column-indicator.js";
4
- const i = () => {
5
- const { t: a } = n();
6
- return /* @__PURE__ */ t("div", { className: "flex items-center gap-3 text-[10px] text-secondary-foreground", "data-component": "indicator-legend", children: [
7
- /* @__PURE__ */ t("div", { className: "flex items-center gap-1", children: [
8
- /* @__PURE__ */ e(r, { type: "sort" }),
9
- /* @__PURE__ */ e("span", { children: a("dataTable.indicatorSort") })
10
- ] }),
11
- /* @__PURE__ */ t("div", { className: "flex items-center gap-1", children: [
12
- /* @__PURE__ */ e(r, { type: "filter" }),
13
- /* @__PURE__ */ e("span", { children: a("dataTable.indicatorSearch") })
14
- ] })
15
- ] });
1
+ import { jsx as t, jsxs as n } from "react/jsx-runtime";
2
+ import { useImpactNovaI18n as r } from "../../../i18n/use-impact-nova-i18n.js";
3
+ import { ColumnIndicator as i } from "./column-indicator.js";
4
+ const c = [
5
+ { type: "sort" },
6
+ { type: "filter" }
7
+ ], d = {
8
+ sort: "indicatorSort",
9
+ filter: "indicatorSearch",
10
+ nonSavable: "indicatorNonSavable"
11
+ }, s = ({
12
+ entries: a = c
13
+ }) => {
14
+ const { t: o } = r();
15
+ return /* @__PURE__ */ t("div", { className: "flex items-center gap-3 text-[10px] text-secondary-foreground", "data-component": "indicator-legend", children: a.map((e) => /* @__PURE__ */ n("div", { className: "flex items-center gap-1", children: [
16
+ /* @__PURE__ */ t(i, { type: e.type }),
17
+ /* @__PURE__ */ t("span", { children: e.label ?? o(`dataTable.${d[e.type]}`) })
18
+ ] }, e.type)) });
16
19
  };
17
- i.displayName = "IndicatorLegend";
20
+ s.displayName = "IndicatorLegend";
18
21
  export {
19
- i as IndicatorLegend
22
+ s as IndicatorLegend
20
23
  };
@@ -1,22 +1,22 @@
1
1
  import { jsxs as m, jsx as i } from "react/jsx-runtime";
2
2
  import { useCallback as s } from "react";
3
3
  import { cn as n } from "../../../lib/utils.js";
4
- import { Pin as w } from "impact-nova-icons";
5
- import { useImpactNovaI18n as d } from "../../../i18n/use-impact-nova-i18n.js";
4
+ import { Pin as d } from "impact-nova-icons";
5
+ import { useImpactNovaI18n as w } from "../../../i18n/use-impact-nova-i18n.js";
6
6
  const u = ({
7
7
  value: e,
8
8
  onChange: r,
9
9
  disabled: t = !1,
10
10
  className: l
11
11
  }) => {
12
- const { t: o } = d(), c = s(() => {
12
+ const { t: c } = w(), o = s(() => {
13
13
  t || r(e === "left" ? "right" : "left");
14
14
  }, [t, e, r]), f = s(
15
15
  (a) => {
16
- t || (a.key === " " || a.key === "Enter") && (a.preventDefault(), c());
16
+ t || (a.key === " " || a.key === "Enter") && (a.preventDefault(), o());
17
17
  },
18
- [t, c]
19
- ), p = () => o(e === "left" ? "dataTable.pinSwitchPinnedLeft" : e === "right" ? "dataTable.pinSwitchPinnedRight" : "dataTable.pinSwitchNotPinned"), h = e === "right";
18
+ [t, o]
19
+ ), p = () => c(e === "left" ? "dataTable.pinSwitchPinnedLeft" : e === "right" ? "dataTable.pinSwitchPinnedRight" : "dataTable.pinSwitchNotPinned"), h = e === "right";
20
20
  return /* @__PURE__ */ m("div", { className: n("inline-flex items-center gap-2", l), "data-component": "pin-switch", children: [
21
21
  /* @__PURE__ */ i(
22
22
  "span",
@@ -37,7 +37,7 @@ const u = ({
37
37
  "aria-label": p(),
38
38
  "aria-disabled": t,
39
39
  tabIndex: t ? -1 : 0,
40
- onClick: c,
40
+ onClick: o,
41
41
  onKeyDown: f,
42
42
  disabled: t,
43
43
  className: n(
@@ -49,10 +49,10 @@ const u = ({
49
49
  "div",
50
50
  {
51
51
  className: n(
52
- "absolute flex w-5 h-5 p-0.5 justify-center items-center rounded bg-white shadow-elevation-pin-switch transition-all duration-200 ease-in-out",
52
+ "absolute flex w-5 h-5 p-0.5 justify-center items-center rounded bg-canvas-elevated shadow-elevation-pin-switch transition-all duration-200 ease-in-out",
53
53
  e === "right" ? "left-[calc(100%-22px)]" : "left-0.5"
54
54
  ),
55
- children: /* @__PURE__ */ i(w, { className: "w-3 h-3 text-content" })
55
+ children: /* @__PURE__ */ i(d, { className: "w-3 h-3 text-content" })
56
56
  }
57
57
  )
58
58
  }