impact-nova 2.1.0-alpha.9 → 2.2.1

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 (75) hide show
  1. package/README.md +6 -0
  2. package/dist/components/data/ag-grid-react/cell-renderers/editors/split-cell-editor.js +73 -94
  3. package/dist/components/data/ag-grid-react/cell-renderers/editors/split-cell-focus.d.ts +53 -0
  4. package/dist/components/data/ag-grid-react/cell-renderers/editors/split-cell-focus.js +98 -0
  5. package/dist/components/data/ag-grid-react/headers/column-menu/column-settings-menu.js +15 -13
  6. package/dist/components/data/ag-grid-react/headers/custom-header.js +56 -58
  7. package/dist/components/data/ag-grid-react/headers/custom-inner-header-group.d.ts +12 -0
  8. package/dist/components/data/ag-grid-react/headers/custom-inner-header-group.js +31 -0
  9. package/dist/components/data/ag-grid-react/headers/header-search-active-state.d.ts +10 -0
  10. package/dist/components/data/ag-grid-react/headers/header-search-active-state.js +38 -0
  11. package/dist/components/data/ag-grid-react/index.js +166 -163
  12. package/dist/components/data/ag-grid-react/notify-column-indicator-sync.d.ts +3 -4
  13. package/dist/components/data/ag-grid-react/theme.js +0 -2
  14. package/dist/components/data/data-table/data-table-column-list.js +1 -1
  15. package/dist/components/data/data-table/data-table-saved-views.js +1 -1
  16. package/dist/components/data/expandable-list-item/expandable-list-item-attributes.js +7 -6
  17. package/dist/components/data/nested-list/components/SortableItem.d.ts +3 -1
  18. package/dist/components/data/nested-list/components/SortableItem.js +111 -109
  19. package/dist/components/data-display/calendar/calendar-footer-emphasis.d.ts +28 -0
  20. package/dist/components/data-display/calendar/calendar-footer-emphasis.js +8 -0
  21. package/dist/components/data-display/calendar/calendar-footer.d.ts +4 -1
  22. package/dist/components/data-display/calendar/calendar-footer.js +60 -38
  23. package/dist/components/data-display/calendar/calendar.js +86 -82
  24. package/dist/components/data-display/calendar/calendar.types.d.ts +2 -0
  25. package/dist/components/data-display/calendar/use-calendar-state.d.ts +3 -0
  26. package/dist/components/feedback/tooltip/tab-tooltip-render.js +3 -2
  27. package/dist/components/flows/filter-strip/filter-strip.js +36 -29
  28. package/dist/components/flows/filter-strip/filter-summary.js +2 -2
  29. package/dist/components/forms/date-picker/date-input-behavior.d.ts +118 -0
  30. package/dist/components/forms/date-picker/date-input-behavior.js +164 -0
  31. package/dist/components/forms/date-picker/date-picker.js +202 -138
  32. package/dist/components/forms/date-picker/date-range-picker.js +302 -215
  33. package/dist/components/forms/date-picker/month-picker.js +160 -119
  34. package/dist/components/forms/date-picker/month-range-picker.js +302 -245
  35. package/dist/components/forms/date-picker/multi-date-picker.js +94 -80
  36. package/dist/components/forms/date-picker/multi-month-picker.js +97 -83
  37. package/dist/components/forms/date-picker/multi-week-picker.js +107 -93
  38. package/dist/components/forms/date-picker/week-picker.js +230 -140
  39. package/dist/components/forms/date-picker/week-range-picker.js +332 -226
  40. package/dist/components/forms/file-upload/file-upload.js +312 -174
  41. package/dist/components/forms/file-upload/file-upload.types.d.ts +17 -2
  42. package/dist/components/layout/dynamic-layout/dynamic-layout.variants.d.ts +1 -1
  43. package/dist/components/layout/header/header.js +45 -38
  44. package/dist/components/layout/horizontal-scroller/index.d.ts +1 -0
  45. package/dist/components/layout/horizontal-scroller/index.js +3 -2
  46. package/dist/components/ui/local-raster-icons/assets/excel-error-icon.webp.js +4 -0
  47. package/dist/components/ui/local-raster-icons/assets/file-upload-error.webp.js +4 -0
  48. package/dist/components/ui/local-raster-icons/rasterIcons.d.ts +2 -0
  49. package/dist/components/ui/local-raster-icons/rasterIcons.js +32 -22
  50. package/dist/components/ui/show.d.ts +10 -0
  51. package/dist/components/ui/show.js +7 -0
  52. package/dist/components/ui/show.types.d.ts +5 -0
  53. package/dist/i18n/defaultMessages.d.ts +17 -0
  54. package/dist/i18n/defaultMessages.js +29 -17
  55. package/dist/i18n/index.d.ts +1 -1
  56. package/dist/i18n/locales/de.js +12 -0
  57. package/dist/i18n/locales/es.js +12 -0
  58. package/dist/i18n/locales/hi.js +12 -0
  59. package/dist/i18n/locales/kn.js +12 -0
  60. package/dist/impact-nova-base.scss +6 -2
  61. package/dist/impact-nova-components.css +141 -16
  62. package/dist/impact-nova-tokens.scss +12 -0
  63. package/dist/impact-nova.css +1 -1
  64. package/dist/index.d.ts +2 -0
  65. package/dist/index.js +273 -271
  66. package/dist/lib/utils.js +40 -24
  67. package/dist/llms/rules/ag-grid.js +1 -1
  68. package/dist/llms/rules/installation.js +1 -1
  69. package/dist/llms/rules/requirements.js +1 -1
  70. package/dist/tailwind.config.js +36 -4
  71. package/dist/theme/tailwind-colors.js +3 -1
  72. package/package.json +15 -6
  73. package/tailwind.config.d.ts +3 -0
  74. package/dist/components/data/ag-grid-react/headers/custom-header-group.d.ts +0 -10
  75. package/dist/components/data/ag-grid-react/headers/custom-header-group.js +0 -58
@@ -139,6 +139,21 @@
139
139
  .header-badge-gradient {
140
140
  background-image: linear-gradient(270deg, var(--color-header-badge-gradient-from) 0%, var(--color-header-badge-gradient-to) 100%);
141
141
  }
142
+
143
+ [data-component=file-upload-dropzone][data-state=drag-over] {
144
+ background-image: var(--gradient-file-upload-drag);
145
+ box-shadow: var(--shadow-file-upload-drag);
146
+ }
147
+
148
+ [data-component=file-upload-dropzone][data-state=invalid-type] {
149
+ background-image: var(--gradient-file-upload-error);
150
+ box-shadow: var(--shadow-file-upload-error);
151
+ }
152
+
153
+ /* Data-table saved-views bar — subtle olive gradient (tokens in impact-nova-tokens.scss) */
154
+ .saved-view-bar-gradient {
155
+ background-image: linear-gradient(83.74deg, var(--color-saved-view-surface-start) 72.68%, var(--color-saved-view-surface-end) 108.88%);
156
+ }
142
157
  /* Custom AG Grid Styles — plain CSS (no SCSS nesting). */
143
158
 
144
159
  /* ponytail: Quartz theme sets transition:all on header cells. Column virtualization updates
@@ -149,6 +164,16 @@
149
164
  transition: none;
150
165
  }
151
166
 
167
+ /* Spanning + pinned header cells must be opaque — center header tiers scroll beneath them. */
168
+ .ag-header-cell.ag-header-span-height,
169
+ .ag-header-group-cell,
170
+ .ag-pinned-left-header .ag-header-cell,
171
+ .ag-pinned-left-header .ag-header-group-cell,
172
+ .ag-pinned-right-header .ag-header-cell,
173
+ .ag-pinned-right-header .ag-header-group-cell {
174
+ background-color: var(--ag-header-background-color);
175
+ }
176
+
152
177
  /* Pinned column depth — header: boundary cell. Body: row container (parent overflow:hidden clips cell shadow). */
153
178
  .ag-header-cell-last-left-pinned {
154
179
  box-shadow: 1px 0px 12px 0px color-mix(in srgb, var(--color-primary) 12%, transparent);
@@ -242,6 +267,23 @@
242
267
  display: none;
243
268
  }
244
269
 
270
+ /* innerHeaderGroupComponent mounts inside AG Grid's .ag-header-group-text shell.
271
+ Ellipsis on that shell only applies to direct text nodes — constrain the React
272
+ mount so inner truncation and overflow tooltips work. */
273
+ .ag-header-group-cell-label > .ag-header-group-text:has(.ag-react-container) {
274
+ display: flex;
275
+ min-width: 0;
276
+ flex: 1 1 auto;
277
+ max-width: 100%;
278
+ }
279
+
280
+ .ag-header-group-cell-label .ag-header-group-text .ag-react-container {
281
+ display: flex;
282
+ min-width: 0;
283
+ width: 100%;
284
+ overflow: hidden;
285
+ }
286
+
245
287
  .ag-header-group-cell-with-group {
246
288
  border-bottom-width: 2px;
247
289
  border-bottom-style: solid;
@@ -365,6 +407,102 @@
365
407
  padding-right: 6px;
366
408
  }
367
409
 
410
+ /* Capture theme cell horizontal inset before per-cell `ag-cell-no-padding` zeros it. */
411
+ .ag-root-wrapper {
412
+ --in-ag-cell-horizontal-inset: var(--ag-cell-horizontal-padding);
413
+ }
414
+
415
+ /* Tree auto-group column (treeData + autoGroupColumnDef → col-id ag-Grid-AutoColumn).
416
+ Body uses `ag-cell-no-padding` + link `ag-cell-inner-padding`. Restore theme horizontal
417
+ inset on the cell so body left/right spacing matches the header and standard columns
418
+ (e.g. Priority); inner renderer keeps vertical inset only. */
419
+ .ag-cell[col-id="ag-Grid-AutoColumn"].ag-cell-no-padding {
420
+ --ag-cell-horizontal-padding: var(--in-ag-cell-horizontal-inset);
421
+ padding-left: var(--in-ag-cell-horizontal-inset);
422
+ padding-right: var(--in-ag-cell-horizontal-inset);
423
+ }
424
+
425
+ .ag-cell[col-id="ag-Grid-AutoColumn"] .ag-cell-inner-padding {
426
+ padding-left: 0;
427
+ padding-right: 0;
428
+ }
429
+
430
+ .table-with-loader[data-density] .ag-cell[col-id="ag-Grid-AutoColumn"] .ag-cell-inner-padding {
431
+ padding-left: 0 !important;
432
+ padding-right: 0 !important;
433
+ }
434
+
435
+ /* Tree row-group layout (ellipsis, flex fill). */
436
+ .ag-cell-wrapper.ag-row-group {
437
+ min-width: 0;
438
+ max-width: 100%;
439
+ }
440
+
441
+ .ag-group-expanded,
442
+ .ag-group-contracted,
443
+ .ag-group-checkbox {
444
+ flex-shrink: 0;
445
+ }
446
+
447
+ /* Top-level leaf rows: agGroupCellRenderer reserves chevron width via
448
+ .ag-row-group-leaf-indent even when the row is not expandable. Drop the
449
+ placeholder at depth 0 so text aligns with the column header; nested leaves
450
+ keep indent so they stay aligned with parent row labels. */
451
+ :where(.ag-ltr) .ag-row.ag-row-level-0 .ag-row-group-leaf-indent {
452
+ margin-left: 0;
453
+ }
454
+
455
+ :where(.ag-rtl) .ag-row.ag-row-level-0 .ag-row-group-leaf-indent {
456
+ margin-right: 0;
457
+ }
458
+
459
+ .ag-group-value {
460
+ flex: 1 1 0%;
461
+ min-width: 0;
462
+ max-width: 100%;
463
+ overflow: hidden;
464
+ text-overflow: ellipsis;
465
+ white-space: nowrap;
466
+ }
467
+
468
+ .ag-group-value > div {
469
+ min-width: 0;
470
+ max-width: 100%;
471
+ width: 100%;
472
+ overflow: hidden;
473
+ }
474
+
475
+ .ag-cell:has(.ag-cell-wrapper.ag-row-group) {
476
+ overflow: hidden;
477
+ }
478
+
479
+ .ag-cell-wrapper > .ag-cell-value {
480
+ flex: 1 1 auto;
481
+ min-width: 0;
482
+ width: 100%;
483
+ max-width: 100%;
484
+ }
485
+
486
+ /* AG Grid v36 may mount renderers as direct flex children (no .ag-cell-wrapper). */
487
+ .ag-cell.ag-cell-no-padding {
488
+ display: flex;
489
+ align-items: center;
490
+ min-width: 0;
491
+ }
492
+
493
+ .ag-cell.ag-cell-no-padding > .ag-cell-wrapper {
494
+ flex: 1 1 0%;
495
+ min-width: 0;
496
+ max-width: 100%;
497
+ width: 100%;
498
+ }
499
+
500
+ .ag-cell.ag-cell-no-padding > div:first-child:not(.ag-cell-wrapper) {
501
+ flex: 1 1 0%;
502
+ min-width: 0;
503
+ width: 100%;
504
+ }
505
+
368
506
  .ag-cell-renderer-full-control {
369
507
  --ag-cell-horizontal-padding: 0px;
370
508
  padding-left: 0;
@@ -414,16 +552,9 @@
414
552
  white-space: nowrap;
415
553
  }
416
554
 
417
- .ag-cell-focus,
418
- .ag-cell.ag-cell-focus {
419
- border-color: transparent !important;
420
- outline: 2px solid Highlight !important;
421
- outline-offset: -2px !important;
422
- }
423
-
424
- .ag-cell.ag-cell-focus:not(:focus):not(:focus-within) {
425
- outline: none !important;
426
- }
555
+ /* Cell focus + range selection: use AG Grid theme defaults (border per
556
+ .ag-cell-range-selected / .ag-cell-range-single-cell), including ranges
557
+ that span pinned columns. Do not override with a custom outline here. */
427
558
 
428
559
  .ag-header-cell:focus,
429
560
  .ag-header-cell:focus-visible {
@@ -437,12 +568,6 @@
437
568
  outline-offset: -2px !important;
438
569
  }
439
570
 
440
- .ag-cell:focus,
441
- .ag-cell:focus-visible {
442
- outline: 2px solid Highlight !important;
443
- outline-offset: -2px !important;
444
- }
445
-
446
571
  .ag-tooltip {
447
572
  display: block;
448
573
  padding: 8px 16px;
@@ -99,12 +99,16 @@
99
99
  --color-pin-switch-track-bg: #f5f6fa;
100
100
  --color-pin-switch-track-border: #eff2fa;
101
101
  --color-pin-switch-track-hover: #ebedf5;
102
+ --color-saved-view-surface-end: #d7e5b2;
103
+ --color-saved-view-surface-start: #f5f9ec;
102
104
  --color-tab-active-border: #4259ee;
103
105
  --color-tab-active-foreground: #3649c6;
104
106
  --color-tab-active-surface: #f8f9fb;
105
107
  --color-tab-hover-border: #c6ccf1;
106
108
  --color-tab-hover-foreground: #7a83b8;
107
109
  --color-tab-hover-surface: #f2f3fd;
110
+ --gradient-file-upload-drag: radial-gradient(circle at center, #fafbff 0%, #f4f6ff 60%, #eef1ff 100%);
111
+ --gradient-file-upload-error: radial-gradient(circle at center, #ffffff 0%, #fffcfc 65%, #fdf5f4 100%);
108
112
 
109
113
  /* —— Status & feedback —— */
110
114
  --color-destructive: #e15554;
@@ -159,6 +163,8 @@
159
163
  --shadow-elevation-settings: 0px 0px 2px 0px rgb(0 0 0 / 25%);
160
164
  --shadow-elevation-toast: 0px 10px 30px 0px rgb(0 0 0 / 15%);
161
165
  --shadow-elevation-wizard-footer: 0 -4px 8px -6px rgb(13 21 44 / 8%);
166
+ --shadow-file-upload-drag: inset 0 0 96px 23px rgb(66 89 238 / 0.14);
167
+ --shadow-file-upload-error: inset 0 0 20px rgb(225 85 84 / 0.12);
162
168
 
163
169
  /* —— Overlay / scrim —— */
164
170
  --color-scrim: hsl(0 0% 0% / 0.4);
@@ -318,12 +324,16 @@
318
324
  --color-pin-switch-track-bg: #171717;
319
325
  --color-pin-switch-track-border: #282828;
320
326
  --color-pin-switch-track-hover: #404040;
327
+ --color-saved-view-surface-end: #2d3818;
328
+ --color-saved-view-surface-start: #1e2416;
321
329
  --color-tab-active-border: #fafafa;
322
330
  --color-tab-active-foreground: #fafafa;
323
331
  --color-tab-active-surface: #262626;
324
332
  --color-tab-hover-border: #737373;
325
333
  --color-tab-hover-foreground: #fafafa;
326
334
  --color-tab-hover-surface: #404040;
335
+ --gradient-file-upload-drag: radial-gradient(circle at center, #fafbff 0%, #f4f6ff 60%, #eef1ff 100%);
336
+ --gradient-file-upload-error: radial-gradient(circle at center, #ffffff 0%, #fffcfc 65%, #fdf5f4 100%);
327
337
 
328
338
  /* —— Status & feedback —— */
329
339
  --color-destructive: #ff6467;
@@ -378,6 +388,8 @@
378
388
  --shadow-elevation-settings: 0 1px 3px 0px hsl(0 0% 0% / 0.10), 0 1px 2px -1px hsl(0 0% 0% / 0.10);
379
389
  --shadow-elevation-toast: 0 1px 3px 0px hsl(0 0% 0% / 0.10), 0 4px 6px -1px hsl(0 0% 0% / 0.10);
380
390
  --shadow-elevation-wizard-footer: 0 1px 3px 0px hsl(0 0% 0% / 0.10), 0 2px 4px -1px hsl(0 0% 0% / 0.10);
391
+ --shadow-file-upload-drag: inset 0 0 96px 23px rgb(66 89 238 / 0.14);
392
+ --shadow-file-upload-error: inset 0 0 20px rgb(225 85 84 / 0.12);
381
393
 
382
394
  /* —— Overlay / scrim —— */
383
395
  --color-scrim: hsl(0 0% 0% / 0.55);