impact-nova 2.1.0-alpha.8 → 2.2.0

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/ag-grid-react/cell-renderers/editors/split-cell-editor.js +73 -94
  2. package/dist/components/data/ag-grid-react/cell-renderers/editors/split-cell-focus.d.ts +53 -0
  3. package/dist/components/data/ag-grid-react/cell-renderers/editors/split-cell-focus.js +98 -0
  4. package/dist/components/data/ag-grid-react/headers/column-menu/column-settings-menu.js +15 -13
  5. package/dist/components/data/ag-grid-react/headers/custom-header.js +56 -58
  6. package/dist/components/data/ag-grid-react/headers/custom-inner-header-group.d.ts +12 -0
  7. package/dist/components/data/ag-grid-react/headers/custom-inner-header-group.js +31 -0
  8. package/dist/components/data/ag-grid-react/headers/header-search-active-state.d.ts +10 -0
  9. package/dist/components/data/ag-grid-react/headers/header-search-active-state.js +38 -0
  10. package/dist/components/data/ag-grid-react/index.js +166 -163
  11. package/dist/components/data/ag-grid-react/notify-column-indicator-sync.d.ts +3 -4
  12. package/dist/components/data/ag-grid-react/theme.js +0 -2
  13. package/dist/components/data/data-table/data-table-column-list.js +1 -1
  14. package/dist/components/data/data-table/data-table-saved-views.js +1 -1
  15. package/dist/components/data/nested-list/components/SortableItem.d.ts +3 -1
  16. package/dist/components/data/nested-list/components/SortableItem.js +111 -109
  17. package/dist/components/data-display/calendar/calendar-footer-emphasis.d.ts +28 -0
  18. package/dist/components/data-display/calendar/calendar-footer-emphasis.js +8 -0
  19. package/dist/components/data-display/calendar/calendar-footer.d.ts +4 -1
  20. package/dist/components/data-display/calendar/calendar-footer.js +60 -38
  21. package/dist/components/data-display/calendar/calendar.js +86 -82
  22. package/dist/components/data-display/calendar/calendar.types.d.ts +2 -0
  23. package/dist/components/data-display/calendar/use-calendar-state.d.ts +3 -0
  24. package/dist/components/flows/filter-strip/filter-strip.js +36 -29
  25. package/dist/components/flows/filter-strip/filter-summary.js +2 -2
  26. package/dist/components/forms/date-picker/date-input-behavior.d.ts +118 -0
  27. package/dist/components/forms/date-picker/date-input-behavior.js +164 -0
  28. package/dist/components/forms/date-picker/date-picker.js +202 -138
  29. package/dist/components/forms/date-picker/date-range-picker.js +302 -215
  30. package/dist/components/forms/date-picker/month-picker.js +160 -119
  31. package/dist/components/forms/date-picker/month-range-picker.js +302 -245
  32. package/dist/components/forms/date-picker/multi-date-picker.js +94 -80
  33. package/dist/components/forms/date-picker/multi-month-picker.js +97 -83
  34. package/dist/components/forms/date-picker/multi-week-picker.js +107 -93
  35. package/dist/components/forms/date-picker/week-picker.js +230 -140
  36. package/dist/components/forms/date-picker/week-range-picker.js +332 -226
  37. package/dist/components/forms/file-upload/file-upload.js +312 -174
  38. package/dist/components/forms/file-upload/file-upload.types.d.ts +17 -2
  39. package/dist/components/layout/dynamic-layout/dynamic-layout.variants.d.ts +1 -1
  40. package/dist/components/layout/header/header.js +45 -38
  41. package/dist/components/layout/horizontal-scroller/index.d.ts +1 -0
  42. package/dist/components/layout/horizontal-scroller/index.js +3 -2
  43. package/dist/components/ui/local-raster-icons/assets/excel-error-icon.webp.js +4 -0
  44. package/dist/components/ui/local-raster-icons/assets/file-upload-error.webp.js +4 -0
  45. package/dist/components/ui/local-raster-icons/rasterIcons.d.ts +2 -0
  46. package/dist/components/ui/local-raster-icons/rasterIcons.js +32 -22
  47. package/dist/components/ui/show.d.ts +10 -0
  48. package/dist/components/ui/show.js +7 -0
  49. package/dist/components/ui/show.types.d.ts +5 -0
  50. package/dist/i18n/defaultMessages.d.ts +17 -0
  51. package/dist/i18n/defaultMessages.js +29 -17
  52. package/dist/i18n/index.d.ts +1 -1
  53. package/dist/i18n/locales/de.js +12 -0
  54. package/dist/i18n/locales/es.js +12 -0
  55. package/dist/i18n/locales/hi.js +12 -0
  56. package/dist/i18n/locales/kn.js +12 -0
  57. package/dist/impact-nova-base.scss +6 -2
  58. package/dist/impact-nova-components.css +141 -16
  59. package/dist/impact-nova-tokens.scss +12 -0
  60. package/dist/impact-nova.css +1 -1
  61. package/dist/index.d.ts +2 -0
  62. package/dist/index.js +273 -271
  63. package/dist/lib/utils.js +40 -24
  64. package/dist/llms/rules/ag-grid.js +1 -1
  65. package/dist/llms/rules/installation.js +1 -1
  66. package/dist/llms/rules/requirements.js +1 -1
  67. package/dist/tailwind.config.js +329 -0
  68. package/dist/theme/tailwind-colors.js +201 -0
  69. package/package.json +22 -9
  70. package/tailwind.config.d.ts +3 -0
  71. package/dist/components/data/ag-grid-react/headers/custom-header-group.d.ts +0 -10
  72. package/dist/components/data/ag-grid-react/headers/custom-header-group.js +0 -58
  73. package/tailwind.config.js +0 -116
@@ -0,0 +1,201 @@
1
+ /** Generated from src/theme/semantic-map.json — do not edit by hand. */
2
+ export const cssVar = (name) => `var(${name})`;
3
+
4
+ export const generatedColors = {
5
+ canvas: {
6
+ DEFAULT: cssVar("--color-background"),
7
+ elevated: {
8
+ DEFAULT: cssVar("--color-surface-elevated"),
9
+ foreground: cssVar("--color-surface-elevated-foreground"),
10
+ },
11
+ overlay: {
12
+ DEFAULT: cssVar("--color-surface-floating"),
13
+ foreground: cssVar("--color-surface-floating-foreground"),
14
+ },
15
+ muted: cssVar("--color-surface-muted"),
16
+ wash: cssVar("--color-surface-canvas"),
17
+ disabled: cssVar("--color-surface-input-disabled"),
18
+ readonly: cssVar("--color-surface-readonly"),
19
+ accent: cssVar("--color-surface-selection-tint"),
20
+ subtle: cssVar("--color-surface-subtle"),
21
+ tint: cssVar("--color-surface-tint-blue"),
22
+ accordion: cssVar("--color-surface-accordion"),
23
+ },
24
+ content: {
25
+ DEFAULT: cssVar("--color-foreground"),
26
+ secondary: cssVar("--color-foreground-secondary"),
27
+ tertiary: cssVar("--color-foreground-tertiary"),
28
+ placeholder: cssVar("--color-foreground-placeholder"),
29
+ empty: cssVar("--color-foreground-empty"),
30
+ muted: cssVar("--color-muted-foreground"),
31
+ icon: cssVar("--color-foreground-icon"),
32
+ "header-notification": cssVar("--color-header-notification-icon"),
33
+ charcoal: cssVar("--color-neutral-charcoal"),
34
+ title: cssVar("--color-foreground-title"),
35
+ badge: cssVar("--color-neutral-badge"),
36
+ heading: cssVar("--color-header-notification-icon"),
37
+ subheading: cssVar("--color-secondary"),
38
+ },
39
+ brand: {
40
+ DEFAULT: cssVar("--color-primary"),
41
+ foreground: cssVar("--color-primary-foreground"),
42
+ strong: cssVar("--color-primary-strong"),
43
+ hover: cssVar("--color-primary-hover"),
44
+ subtle: cssVar("--color-primary-surface-subtle"),
45
+ "on-subtle": cssVar("--color-primary-on-surface-subtle"),
46
+ highlight: cssVar("--color-primary-selection"),
47
+ tint: cssVar("--color-primary-soft"),
48
+ "tint-hover": cssVar("--color-primary-soft-hover"),
49
+ variant: cssVar("--color-primary-variant"),
50
+ "variant-hover": cssVar("--color-primary-variant-hover"),
51
+ },
52
+ secondary: {
53
+ DEFAULT: cssVar("--color-secondary"),
54
+ foreground: cssVar("--color-secondary-foreground"),
55
+ "hover-foreground": cssVar("--color-secondary-hover-foreground"),
56
+ },
57
+ accent: {
58
+ DEFAULT: cssVar("--color-accent"),
59
+ foreground: cssVar("--color-accent-foreground"),
60
+ },
61
+ muted: cssVar("--color-muted"),
62
+ stroke: {
63
+ DEFAULT: cssVar("--color-border"),
64
+ subtle: cssVar("--color-border-subtle"),
65
+ hairline: cssVar("--color-border-hairline"),
66
+ strong: cssVar("--color-border-strong"),
67
+ accent: cssVar("--color-border-accent-muted"),
68
+ track: cssVar("--color-track-muted"),
69
+ field: cssVar("--color-border-tertiary"),
70
+ },
71
+ field: {
72
+ border: cssVar("--color-input"),
73
+ },
74
+ focus: {
75
+ ring: cssVar("--color-ring"),
76
+ },
77
+ disabled: {
78
+ border: cssVar("--color-disabled-border"),
79
+ surface: cssVar("--color-disabled-surface"),
80
+ foreground: cssVar("--color-disabled-foreground"),
81
+ },
82
+ validation: cssVar("--color-danger-validation"),
83
+ destructive: {
84
+ DEFAULT: cssVar("--color-destructive"),
85
+ foreground: cssVar("--color-destructive-foreground"),
86
+ hover: cssVar("--color-destructive-hover"),
87
+ },
88
+ success: {
89
+ DEFAULT: cssVar("--color-success"),
90
+ foreground: cssVar("--color-success-foreground"),
91
+ },
92
+ warning: cssVar("--color-warning"),
93
+ danger: cssVar("--color-danger-bright"),
94
+ button: {
95
+ "primary-disabled": cssVar("--color-button-primary-disabled"),
96
+ },
97
+ badge: {
98
+ neutral: {
99
+ muted: cssVar("--color-badge-neutral-muted"),
100
+ },
101
+ info: {
102
+ filled: cssVar("--color-badge-info-filled"),
103
+ muted: cssVar("--color-badge-info-muted"),
104
+ },
105
+ warning: {
106
+ filled: cssVar("--color-badge-warning-filled"),
107
+ muted: cssVar("--color-badge-warning-muted"),
108
+ ink: cssVar("--color-badge-warning-text"),
109
+ },
110
+ error: {
111
+ filled: cssVar("--color-badge-error-filled"),
112
+ muted: cssVar("--color-badge-error-muted"),
113
+ ink: cssVar("--color-badge-error-text"),
114
+ },
115
+ success: {
116
+ filled: cssVar("--color-badge-success-filled"),
117
+ muted: cssVar("--color-badge-success-muted"),
118
+ ink: cssVar("--color-badge-success-text"),
119
+ },
120
+ },
121
+ feedback: {
122
+ info: {
123
+ surface: cssVar("--color-info-surface"),
124
+ border: cssVar("--color-info-border"),
125
+ },
126
+ warning: {
127
+ surface: cssVar("--color-warning-surface"),
128
+ border: cssVar("--color-warning-border"),
129
+ },
130
+ error: {
131
+ surface: cssVar("--color-error-surface"),
132
+ border: cssVar("--color-error-border"),
133
+ },
134
+ success: {
135
+ surface: cssVar("--color-success-surface"),
136
+ border: cssVar("--color-success-border"),
137
+ },
138
+ },
139
+ chart: {
140
+ "1": cssVar("--color-chart-1"),
141
+ "2": cssVar("--color-chart-2"),
142
+ "3": cssVar("--color-chart-3"),
143
+ "4": cssVar("--color-chart-4"),
144
+ "5": cssVar("--color-chart-5"),
145
+ },
146
+ domain: {
147
+ cohort: cssVar("--color-data-cohort"),
148
+ },
149
+ indicator: {
150
+ sort: cssVar("--color-indicator-sort"),
151
+ filter: cssVar("--color-indicator-filter"),
152
+ },
153
+ pinSwitch: {
154
+ "label-active": cssVar("--color-pin-switch-label-active"),
155
+ "label-inactive": cssVar("--color-pin-switch-label-inactive"),
156
+ "track-bg": cssVar("--color-pin-switch-track-bg"),
157
+ "track-border": cssVar("--color-pin-switch-track-border"),
158
+ "track-hover": cssVar("--color-pin-switch-track-hover"),
159
+ },
160
+ scrim: cssVar("--color-scrim"),
161
+ "scrim-deep": cssVar("--color-scrim-deep"),
162
+ "scrim-light": cssVar("--color-scrim-light"),
163
+ "scrim-skeleton": cssVar("--color-scrim-skeleton"),
164
+ "scrim-hover": cssVar("--color-scrim-hover"),
165
+ navigation: {
166
+ DEFAULT: cssVar("--color-sidebar-background"),
167
+ foreground: cssVar("--color-sidebar-foreground"),
168
+ surface: cssVar("--color-sidebar-surface"),
169
+ "on-surface": cssVar("--color-sidebar-on-surface"),
170
+ hover: cssVar("--color-sidebar-hover"),
171
+ "on-hover": cssVar("--color-sidebar-on-hover"),
172
+ border: cssVar("--color-sidebar-border"),
173
+ ring: cssVar("--color-sidebar-ring"),
174
+ indicator: cssVar("--color-sidebar-indicator"),
175
+ "item-hover": cssVar("--color-sidebar-item-hover"),
176
+ "item-active": cssVar("--color-sidebar-item-active"),
177
+ muted: cssVar("--color-sidebar-foreground-muted"),
178
+ canvas: cssVar("--color-sidebar-canvas"),
179
+ },
180
+ background: {
181
+ DEFAULT: cssVar("--color-background"),
182
+ foreground: cssVar("--color-foreground"),
183
+ },
184
+ };
185
+
186
+ export const generatedBoxShadow = {
187
+ "alert-elevated": "var(--shadow-alert-elevated)",
188
+ "elevation-card": "var(--shadow-elevation-card)",
189
+ "elevation-dialog-footer": "var(--shadow-elevation-dialog-footer)",
190
+ "elevation-floating": "var(--shadow-elevation-floating)",
191
+ "elevation-header": "var(--shadow-elevation-header)",
192
+ "elevation-kbd-dark": "var(--shadow-elevation-kbd-dark)",
193
+ "elevation-menu-ag-grid": "var(--shadow-elevation-menu-ag-grid)",
194
+ "elevation-pin-switch": "var(--shadow-elevation-pin-switch)",
195
+ "elevation-select": "var(--shadow-elevation-select)",
196
+ "elevation-settings": "var(--shadow-elevation-settings)",
197
+ "elevation-toast": "var(--shadow-elevation-toast)",
198
+ "elevation-wizard-footer": "var(--shadow-elevation-wizard-footer)",
199
+ "file-upload-drag": "var(--shadow-file-upload-drag)",
200
+ "file-upload-error": "var(--shadow-file-upload-error)"
201
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "impact-nova",
3
- "version": "2.1.0-alpha.8",
3
+ "version": "2.2.0",
4
4
  "description": "Enterprise-grade React design system built with React 19, Vite, Tailwind CSS, and Radix UI. Built-in internationalization (i18n) and comprehensive UI component library for scalable, accessible, and performant applications.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -77,12 +77,12 @@
77
77
  ],
78
78
  "files": [
79
79
  "dist",
80
- "tailwind.config.js",
81
80
  "tailwind.config.d.ts",
82
81
  "LICENSE",
83
82
  "README.md"
84
83
  ],
85
84
  "exports": {
85
+ "./package.json": "./package.json",
86
86
  ".": {
87
87
  "types": "./dist/index.d.ts",
88
88
  "import": "./dist/index.js"
@@ -288,6 +288,10 @@
288
288
  "types": "./dist/components/feedback/sheet/index.d.ts",
289
289
  "import": "./dist/components/feedback/sheet/index.js"
290
290
  },
291
+ "./show": {
292
+ "types": "./dist/components/ui/show.d.ts",
293
+ "import": "./dist/components/ui/show.js"
294
+ },
291
295
  "./sidebar": {
292
296
  "types": "./dist/components/layout/sidebar/sidebar.d.ts",
293
297
  "import": "./dist/components/layout/sidebar/sidebar.js"
@@ -438,13 +442,17 @@
438
442
  },
439
443
  "./tailwind.config": {
440
444
  "types": "./tailwind.config.d.ts",
441
- "import": "./tailwind.config.js",
442
- "default": "./tailwind.config.js"
445
+ "import": "./dist/tailwind.config.js",
446
+ "default": "./dist/tailwind.config.js"
443
447
  },
444
448
  "./tailwind.config.js": {
445
449
  "types": "./tailwind.config.d.ts",
446
- "import": "./tailwind.config.js",
447
- "default": "./tailwind.config.js"
450
+ "import": "./dist/tailwind.config.js",
451
+ "default": "./dist/tailwind.config.js"
452
+ },
453
+ "./theme/tailwind-colors": {
454
+ "import": "./dist/theme/tailwind-colors.js",
455
+ "default": "./dist/theme/tailwind-colors.js"
448
456
  },
449
457
  "./dist/*": "./dist/*",
450
458
  "./kbd": {
@@ -454,7 +462,9 @@
454
462
  },
455
463
  "scripts": {
456
464
  "dev": "vite",
465
+ "prepublishOnly": "npm run ci",
457
466
  "publish:alpha": "npm publish --tag alpha --access public",
467
+ "publish:stable": "npm publish --access public",
458
468
  "validate-imports": "node scripts/validate-imports.mjs",
459
469
  "build:registry": "node scripts/build-registry.mjs && node scripts/sync-registry-to-mcp.mjs",
460
470
  "validate:registry": "node scripts/validate-registry.mjs",
@@ -467,7 +477,8 @@
467
477
  "changeset": "changeset",
468
478
  "version:release": "changeset version && npm run sync:storybook-releases",
469
479
  "sync:storybook-releases": "node scripts/sync-storybook-releases.mjs",
470
- "validate:story-docs": "node scripts/validate-story-docs.mjs && node scripts/sync-storybook-releases.mjs --check",
480
+ "sync:storybook-test-status": "node scripts/sync-storybook-test-status.mjs",
481
+ "validate:story-docs": "node scripts/validate-story-docs.mjs && node scripts/sync-storybook-releases.mjs --check && node scripts/sync-storybook-test-status.mjs --check",
471
482
  "validate:layering": "node scripts/validate-layering.mjs",
472
483
  "validate:mcp-sync": "node scripts/validate-mcp-sync.mjs",
473
484
  "validate:charter": "node scripts/validate-charter.mjs",
@@ -485,7 +496,9 @@
485
496
  "validate:theme-editor-metadata": "node scripts/validate-theme-editor-metadata.mjs",
486
497
  "generate:theme-presets": "node scripts/complete-dark-theme.mjs && node scripts/generate-theme-presets.mjs",
487
498
  "validate:theme-presets": "node scripts/validate-theme-presets.mjs",
488
- "build": "node scripts/validate-imports.mjs && npm run build:tokens && npm run validate:token-usage && npm run build:registry && npm run validate:registry && tsc -b && vite build && node scripts/build-css-splits.mjs && node scripts/build-llms.mjs && node scripts/validate-declaration-exports.mjs",
499
+ "build:tailwind-preset": "node scripts/build-tailwind-preset.mjs",
500
+ "validate:published-package": "node scripts/validate-published-package.mjs",
501
+ "build": "node scripts/validate-imports.mjs && npm run build:tokens && npm run validate:token-usage && npm run build:registry && npm run validate:registry && tsc -b && vite build && node scripts/build-css-splits.mjs && node scripts/build-llms.mjs && node src/theme/scripts/generate-tailwind-colors.mjs && npm run build:tailwind-preset && node scripts/validate-declaration-exports.mjs && npm run validate:published-package",
489
502
  "analyze": "ANALYZE=true npm run build",
490
503
  "lint": "eslint packages/mcp/src scripts --max-warnings 0",
491
504
  "lint:src": "eslint src --max-warnings 0",
@@ -510,7 +523,7 @@
510
523
  "bundle-budget": "node scripts/bundle-budget.mjs",
511
524
  "bundle-budget:update": "node scripts/bundle-budget.mjs --update",
512
525
  "ci:validate": "npm run validate-imports && npm run validate:docs && npm run validate:export-ssot && npm run build:registry && npm run validate:registry && npm run validate:mcp-sync && npm run validate:charter && npm run validate:factory-rollout && npm run validate:component-tests && npm run validate:component-types && npm run validate:layering && npm run validate:figma-tokens && npm run validate:token-usage && npm run validate:theme-presets && npm run sync:storybook-releases && npm run validate:story-docs && npm run lint && npm run lint:src && npm run typecheck",
513
- "ci:build": "npm run build && npm run test:tree-shaking && npm run bundle-budget",
526
+ "ci:build": "npm run build && npm run validate:published-package && npm run test:tree-shaking && npm run bundle-budget",
514
527
  "ci:storybook": "npm run test:storybook && npm run build-storybook",
515
528
  "ci": "npm run ci:validate && npm run test:coverage:ratchet && npm run ci:build && npm run ci:storybook"
516
529
  },
@@ -3,6 +3,9 @@ import type { Config } from "tailwindcss";
3
3
  declare const config: Config;
4
4
  export default config;
5
5
 
6
+ /** Content glob for scanning published impact-nova `dist/` components. */
7
+ export function getImpactNovaContentGlob(): string;
8
+
6
9
  export function createTailwindConfig(contentPaths: string[]): Config;
7
10
 
8
11
  export function createAppTailwindConfig(
@@ -1,10 +0,0 @@
1
- import { IHeaderGroupParams } from 'ag-grid-community';
2
- import { ExtendedHeaderComponentParams } from '../ag-grid.types';
3
- /**
4
- * CustomHeaderGroup — optimized for large column trees.
5
- *
6
- * Not wrapped in React.memo: AG Grid mutates `columnGroup` in place on expand/collapse;
7
- * memo would serve stale `isExpanded` and break collapse. `toggleExpand` reads
8
- * `columnGroup.isExpanded()` at click time.
9
- */
10
- export declare function CustomHeaderGroup(props: IHeaderGroupParams & ExtendedHeaderComponentParams): import("react/jsx-runtime").JSX.Element | null;
@@ -1,58 +0,0 @@
1
- import { jsxs as g, jsx as o } from "react/jsx-runtime";
2
- import { useRef as h } from "react";
3
- import { ChevronRight as E } from "impact-nova-icons";
4
- import { cn as N } from "../../../../lib/utils.js";
5
- import { HeaderInfo as b } from "./components/header-info.js";
6
- import { useGridHeader as C } from "./context/grid-header-context.js";
7
- import { useAgGridTruncationTooltip as G } from "../use-ag-grid-truncation-tooltip.js";
8
- function w(r) {
9
- const {
10
- displayName: d,
11
- setTooltip: p,
12
- showInfoIcon: c = !1,
13
- columnGroup: e,
14
- setExpanded: a
15
- } = r, s = h(null), t = d || "";
16
- G(p, t, s, "ellipsis");
17
- const i = C(), m = e ? e.isExpanded() : !1, l = e ? e.isExpandable() : !1, f = (n) => {
18
- n && n.stopPropagation(), a && e && a(!e.isExpanded());
19
- }, u = (n) => {
20
- if (n.preventDefault(), n.stopPropagation(), i && e) {
21
- const x = e.getGroupId() || "group";
22
- i.openMenu(x, n.currentTarget, "group");
23
- }
24
- };
25
- return !t && c === !1 ? null : /* @__PURE__ */ g(
26
- "div",
27
- {
28
- className: "ag-header-group-cell-label ag-sticky-label flex items-center h-full min-w-0 cursor-pointer select-none",
29
- onClick: l ? f : void 0,
30
- onContextMenu: u,
31
- role: "presentation",
32
- children: [
33
- /* @__PURE__ */ o(
34
- "span",
35
- {
36
- ref: s,
37
- className: "ag-header-group-text min-w-0 flex-1 truncate font-bold text-content",
38
- children: t
39
- }
40
- ),
41
- /* @__PURE__ */ o(b, { ...r, className: "ml-1 shrink-0" }),
42
- l && /* @__PURE__ */ o(
43
- "span",
44
- {
45
- className: N(
46
- "ag-header-icon ag-header-expand-icon ml-[6px] shrink-0 flex items-center justify-center",
47
- m ? "ag-header-expand-icon-expanded rotate-180" : "ag-header-expand-icon-collapsed"
48
- ),
49
- children: /* @__PURE__ */ o(E, { size: 16, className: "text-content-tertiary" })
50
- }
51
- )
52
- ]
53
- }
54
- );
55
- }
56
- export {
57
- w as CustomHeaderGroup
58
- };
@@ -1,116 +0,0 @@
1
- import tailwindcssAnimate from "tailwindcss-animate";
2
- import tailwindPlugin from "tailwindcss/plugin";
3
- import { generatedBoxShadow, generatedColors } from "./src/theme/generated/tailwind-colors.js";
4
-
5
- const scrollbarUtilities = tailwindPlugin(({ addUtilities }) => {
6
- addUtilities({
7
- ".scrollbar-hide": {
8
- "-ms-overflow-style": "none",
9
- "scrollbar-width": "none",
10
- },
11
- ".scrollbar-hide::-webkit-scrollbar": {
12
- display: "none",
13
- },
14
- });
15
- });
16
-
17
- /**
18
- * Semantic color roles — generated from src/theme/semantic-map.json.
19
- * Edit semantic-map.json and run `npm run build:tokens`.
20
- */
21
- const baseConfig = {
22
- darkMode: ["class"],
23
- content: [
24
- "./index.html",
25
- "./src/**/*.{js,ts,jsx,tsx}",
26
- "./src/components/ui/**/*.{js,ts,jsx,tsx}",
27
- "./src/components/ui/stories/**/*.{js,ts,jsx,tsx}",
28
- "./.storybook/**/*.{js,ts,jsx,tsx,mdx}",
29
- ],
30
- theme: {
31
- colors: {
32
- transparent: "transparent",
33
- current: "currentColor",
34
- inherit: "inherit",
35
- ...generatedColors,
36
- },
37
- extend: {
38
- fontFamily: {
39
- sans: ["Manrope", "sans-serif"],
40
- },
41
- borderRadius: {
42
- lg: "calc(var(--radius) + 4px)",
43
- md: "var(--radius)",
44
- sm: "calc(var(--radius) - 4px)",
45
- },
46
- boxShadow: generatedBoxShadow,
47
-
48
- keyframes: {
49
- "accordion-down": {
50
- from: { height: "0" },
51
- to: { height: "var(--radix-accordion-content-height)" },
52
- },
53
- "accordion-up": {
54
- from: { height: "var(--radix-accordion-content-height)" },
55
- to: { height: "0" },
56
- },
57
- "collapsible-down": {
58
- from: { height: "0" },
59
- to: { height: "var(--radix-collapsible-content-height)" },
60
- },
61
- "collapsible-up": {
62
- from: { height: "var(--radix-collapsible-content-height)" },
63
- to: { height: "0" },
64
- },
65
- "header-bot-gradient": {
66
- "0%": { backgroundPosition: "0% 50%" },
67
- "50%": { backgroundPosition: "100% 50%" },
68
- "100%": { backgroundPosition: "0% 50%" },
69
- },
70
- "notification-waves": {
71
- "0%": { width: "8px", height: "8px" },
72
- "100%": { width: "16px", height: "16px" },
73
- },
74
- },
75
- animation: {
76
- "accordion-down": "accordion-down 0.2s ease-out",
77
- "accordion-up": "accordion-up 0.2s ease-out",
78
- "collapsible-down": "collapsible-down 0.2s ease-out",
79
- "collapsible-up": "collapsible-up 0.2s ease-out",
80
- "header-bot-gradient": "header-bot-gradient 5s ease infinite",
81
- "header-bot-gradient-fast": "header-bot-gradient 2s ease infinite",
82
- "notification-waves": "notification-waves 1.5s ease-out infinite",
83
- },
84
- },
85
- },
86
- plugins: [tailwindcssAnimate, scrollbarUtilities],
87
- };
88
-
89
- /** @type {import('tailwindcss').Config} */
90
- export default baseConfig;
91
-
92
- /**
93
- * Creates a Tailwind config with custom content paths.
94
- *
95
- * @param {string[]} contentPaths - Array of content paths for your project
96
- * @returns {import('tailwindcss').Config}
97
- *
98
- * @example
99
- * import { createTailwindConfig } from "impact-nova/tailwind.config";
100
- * export default createTailwindConfig(["./index.html", "./src"]);
101
- */
102
- export function createTailwindConfig(contentPaths) {
103
- return {
104
- ...baseConfig,
105
- content: contentPaths,
106
- };
107
- }
108
-
109
- /**
110
- * Tailwind config for apps consuming impact-nova via file: / npm link.
111
- * Single utility pipeline: scan app + impact-nova source (no duplicate impact-nova.css utilities).
112
- */
113
- export function createAppTailwindConfig(appRootDir, appContentPaths) {
114
- const impactNovaSourceGlob = `${appRootDir.replace(/\\/g, "/")}/../impact-nova/src/**/*.{js,ts,jsx,tsx}`;
115
- return createTailwindConfig([...appContentPaths, impactNovaSourceGlob]);
116
- }