@nova-design-system/nova-react 3.28.0 → 3.30.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 (89) hide show
  1. package/README.md +1 -1
  2. package/dist/cjs/{constants-BReL3Lsa-DpB_ghPF.js → constants-gOKBmbgZ-CSoZ8z-G.js} +5 -0
  3. package/dist/cjs/generated/components.server.js +33 -1
  4. package/dist/cjs/index-DXwd3F_r.js +10391 -0
  5. package/dist/cjs/index.js +7 -1
  6. package/dist/cjs/{nv-accordion-item.entry-fds_kk_3.js → nv-accordion-item.entry-CTbduehY.js} +3 -3
  7. package/dist/cjs/{nv-accordion.entry-BLs4N5ZL.js → nv-accordion.entry-DeaPwIUP.js} +2 -2
  8. package/dist/cjs/{nv-alert.entry-Bx1BiC8F.js → nv-alert.entry-B5k8RXXD.js} +8 -8
  9. package/dist/cjs/{nv-avatar.entry-DS88LME3.js → nv-avatar.entry-CJh9bGfN.js} +8 -8
  10. package/dist/cjs/{nv-badge_2.entry-vBPxmUmg.js → nv-badge_2.entry-BnPPW4rW.js} +8 -7
  11. package/dist/cjs/{nv-breadcrumb.entry-BOo3hA5y.js → nv-breadcrumb.entry-DS5GJVCJ.js} +2 -2
  12. package/dist/cjs/{nv-breadcrumbs.entry-igHC_6Bd.js → nv-breadcrumbs.entry-CJ835Ba8.js} +2 -2
  13. package/dist/cjs/{nv-button.entry-BRQPmQbs.js → nv-button.entry-8U0o_X3d.js} +7 -7
  14. package/dist/cjs/{nv-buttongroup.entry-D3tG2EZ1.js → nv-buttongroup.entry-D5I5d9y0.js} +2 -2
  15. package/dist/cjs/{nv-calendar.entry-BpNHMTKr.js → nv-calendar.entry-C0ggIM3A.js} +9 -9
  16. package/dist/cjs/{nv-col.entry-lyIZqDsW.js → nv-col.entry-tIk723nS.js} +2 -2
  17. package/dist/cjs/{nv-datagrid.entry-BeemONKu.js → nv-datagrid.entry-Cal_usTi.js} +8 -8
  18. package/dist/cjs/{nv-datagridcolumn.entry-B6kE4eVC.js → nv-datagridcolumn.entry-BLbpwW7Q.js} +2 -2
  19. package/dist/cjs/{nv-datetest.entry-C1uuC-ZG.js → nv-datetest.entry-NQzySOox.js} +2 -2
  20. package/dist/cjs/{nv-datetimetest.entry-Hthxbjj9.js → nv-datetimetest.entry-Br6j4eAR.js} +1 -1
  21. package/dist/cjs/{nv-dialog.entry-Cr9zwMPo.js → nv-dialog.entry-GTDQJaoQ.js} +3 -3
  22. package/dist/cjs/{nv-dialogfooter_2.entry-DaaKojyE.js → nv-dialogfooter_2.entry-CHY36NHl.js} +10 -8
  23. package/dist/cjs/{nv-drawer.entry-0UaYxCjh.js → nv-drawer.entry-C-TZDi4-.js} +3 -3
  24. package/dist/cjs/{nv-drawerfooter_2.entry-CqtuC7xP.js → nv-drawerfooter_2.entry-DTY4qAnd.js} +8 -6
  25. package/dist/cjs/{nv-fieldcheckbox.entry-DK3aO8C8.js → nv-fieldcheckbox.entry-Qf4gdEnq.js} +5 -5
  26. package/dist/cjs/{nv-fielddate.entry-BY-xF3KN.js → nv-fielddate.entry-D1aJmKbh.js} +8 -8
  27. package/dist/cjs/{nv-fielddaterange.entry-BT6qCQc3.js → nv-fielddaterange.entry-Vc-gHwf8.js} +8 -8
  28. package/dist/cjs/{nv-fielddropdown.entry-CsVD067i.js → nv-fielddropdown.entry-BVVsM71m.js} +6 -6
  29. package/dist/cjs/{nv-fielddropdownitem.entry-Crtfwlx7.js → nv-fielddropdownitem.entry-DTRonCZJ.js} +2 -2
  30. package/dist/cjs/{nv-fieldmultiselect.entry-C2uoE60e.js → nv-fieldmultiselect.entry-Cvsh_jn7.js} +115 -86
  31. package/dist/cjs/{nv-fieldnumber.entry-DzW5SiiZ.js → nv-fieldnumber.entry-jVFZ0wj3.js} +6 -6
  32. package/dist/cjs/{nv-fieldpassword.entry-D4r9Qxos.js → nv-fieldpassword.entry-CQKbWqMe.js} +6 -6
  33. package/dist/cjs/{nv-fieldradio.entry-DX0Ghx--.js → nv-fieldradio.entry-FPGOqFBo.js} +4 -4
  34. package/dist/cjs/{nv-fieldselect.entry-_CglE66i.js → nv-fieldselect.entry-DJmW4pff.js} +7 -7
  35. package/dist/cjs/{nv-fieldslider.entry-6zt75uDU.js → nv-fieldslider.entry-D71HjSto.js} +4 -4
  36. package/dist/cjs/{nv-fieldtext.entry-B4X110wn.js → nv-fieldtext.entry-BxgbvxEW.js} +6 -6
  37. package/dist/cjs/{nv-fieldtextarea.entry-CeAMhA8Y.js → nv-fieldtextarea.entry-BDS37zhJ.js} +5 -5
  38. package/dist/cjs/{nv-fieldtime.entry-BvzncwNd.js → nv-fieldtime.entry-DkWokxdT.js} +55 -52
  39. package/dist/cjs/{nv-icon.entry-C2md2kmq.js → nv-icon.entry-CUemAv89.js} +8 -8
  40. package/dist/cjs/{nv-iconbutton_2.entry-D-zRpLjT.js → nv-iconbutton_2.entry-BLdJr3QV.js} +3 -3
  41. package/dist/cjs/{nv-menu.entry-DN_DkosX.js → nv-menu.entry-z4cDNCeX.js} +2 -2
  42. package/dist/cjs/{nv-menuitem.entry-Cj6w33rq.js → nv-menuitem.entry-4XdONuGl.js} +2 -2
  43. package/dist/cjs/{nv-notification-bullet.entry-DagStJ3K.js → nv-notification-bullet.entry-B1EK4G_X.js} +1 -1
  44. package/dist/cjs/{nv-notification.entry-oV69FpxE.js → nv-notification.entry-BBAQ72f7.js} +19 -19
  45. package/dist/cjs/{nv-notificationcontainer.entry-gQGHHeer.js → nv-notificationcontainer.entry-CtFunFA9.js} +2 -2
  46. package/dist/cjs/{nv-pagination-nav.entry-BYvcVj1M.js → nv-pagination-nav.entry-DbzEBjoa.js} +2 -2
  47. package/dist/cjs/{nv-paginationtable.entry-CwCFQwbl.js → nv-paginationtable.entry-DRGsk0DH.js} +19 -3
  48. package/dist/cjs/{nv-popover.entry-DySToeSB.js → nv-popover.entry-w9o3Y_vT.js} +2 -2
  49. package/dist/cjs/{nv-row.entry-46ghuEeG.js → nv-row.entry-Cop4QB1Y.js} +2 -2
  50. package/dist/cjs/nv-sidebar.entry-96HyTMt9.js +355 -0
  51. package/dist/cjs/{nv-sidebarcontent.entry-Pb8c2QoA.js → nv-sidebarcontent.entry-RCkZZp9I.js} +2 -2
  52. package/dist/cjs/{nv-sidebardivider.entry-LCCO53Z5.js → nv-sidebardivider.entry-DY25WqI7.js} +2 -2
  53. package/dist/cjs/{nv-sidebarfooter.entry-DG5fkLHd.js → nv-sidebarfooter.entry-9BFpNPLP.js} +2 -2
  54. package/dist/cjs/{nv-sidebargroup.entry-DRqkSyQi.js → nv-sidebargroup.entry-Cj52DXba.js} +2 -2
  55. package/dist/cjs/{nv-sidebarheader.entry-D6WvH2wG.js → nv-sidebarheader.entry-_WZgNwoi.js} +2 -2
  56. package/dist/cjs/{nv-sidebarlogo.entry-BorScwI-.js → nv-sidebarlogo.entry-4Zy6k3V5.js} +2 -2
  57. package/dist/cjs/{nv-sidebarnavitem.entry-BEW74Rw3.js → nv-sidebarnavitem.entry-fQ9sqxDj.js} +3 -3
  58. package/dist/cjs/{nv-sidebarnavsubitem.entry-EgaIlUfP.js → nv-sidebarnavsubitem.entry-1iBobkME.js} +2 -2
  59. package/dist/cjs/{nv-split.entry-CEC5Tuwz.js → nv-split.entry-Dfzpge0r.js} +2 -2
  60. package/dist/cjs/{nv-stack.entry-BR8lYaoI.js → nv-stack.entry-BnCput1S.js} +2 -2
  61. package/dist/cjs/nv-statusindicator.entry-ClPHcTkz.js +42 -0
  62. package/dist/cjs/{nv-table.entry-CISZFst5.js → nv-table.entry-DsllD6Bz.js} +3 -3
  63. package/dist/cjs/{nv-tableheader.entry-DbdpTJGC.js → nv-tableheader.entry-AWCKrpLj.js} +2 -2
  64. package/dist/cjs/nv-tag.entry-BwENpoSV.js +85 -0
  65. package/dist/cjs/{nv-timetest.entry-Dg1JEgAv.js → nv-timetest.entry-BQsV7Qb2.js} +2 -2
  66. package/dist/cjs/{nv-toggle.entry-DDfRpC1R.js → nv-toggle.entry-a0tSJ6GE.js} +3 -3
  67. package/dist/cjs/{nv-togglebutton.entry-D7NkdIXP.js → nv-togglebutton.entry-CT8fZr74.js} +2 -2
  68. package/dist/cjs/{nv-togglebuttongroup.entry-L8gitSUS.js → nv-togglebuttongroup.entry-BN7WkQ_L.js} +2 -2
  69. package/dist/cjs/{nv-tooltip.entry-BElnrEqE.js → nv-tooltip.entry-xpFqRgZM.js} +2 -2
  70. package/dist/components/NvDatatable/NvDatatable.js +294 -88
  71. package/dist/components/NvDatatable/expandState.js +8 -0
  72. package/dist/components/NvDatatable/expandState.test.js +41 -0
  73. package/dist/components/NvDatatable/paginationState.js +9 -0
  74. package/dist/components/NvDatatable/paginationState.test.js +84 -0
  75. package/dist/generated/components.js +20 -1
  76. package/dist/generated/components.server.js +31 -1
  77. package/dist/types/components/NvDatatable/NvDatatable.d.ts +1 -1
  78. package/dist/types/components/NvDatatable/expandState.d.ts +5 -0
  79. package/dist/types/components/NvDatatable/expandState.test.d.ts +1 -0
  80. package/dist/types/components/NvDatatable/paginationState.d.ts +9 -0
  81. package/dist/types/components/NvDatatable/paginationState.test.d.ts +1 -0
  82. package/dist/types/components/NvDatatable/types.d.ts +21 -1
  83. package/dist/types/generated/components.d.ts +12 -1
  84. package/dist/types/generated/components.server.d.ts +12 -1
  85. package/dist/types/index.d.ts +1 -0
  86. package/dist/types/providers/NotificationProvider.d.ts +2 -2
  87. package/package.json +1 -1
  88. package/dist/cjs/index-Kxp9mv-Q.js +0 -10119
  89. package/dist/cjs/nv-sidebar.entry-B6opNG2r.js +0 -181
@@ -0,0 +1,84 @@
1
+ import { describe, expect, it } from 'vitest';
2
+ import { resolvePaginationRowCount } from './paginationState';
3
+ describe('resolvePaginationRowCount', () => {
4
+ it('server non-infinite returns totalRowCount when provided', () => {
5
+ expect(resolvePaginationRowCount({
6
+ mode: 'server',
7
+ isInfinite: false,
8
+ hasFiltering: false,
9
+ totalRowCount: 123,
10
+ rowsLength: 10,
11
+ filteredRowsLength: 10,
12
+ })).toBe(123);
13
+ });
14
+ it('server non-infinite falls back to rows.length when totalRowCount is missing', () => {
15
+ expect(resolvePaginationRowCount({
16
+ mode: 'server',
17
+ isInfinite: false,
18
+ hasFiltering: false,
19
+ totalRowCount: undefined,
20
+ rowsLength: 10,
21
+ filteredRowsLength: 10,
22
+ })).toBe(10);
23
+ });
24
+ it('server non-infinite falls back to rows.length when totalRowCount is 0', () => {
25
+ expect(resolvePaginationRowCount({
26
+ mode: 'server',
27
+ isInfinite: false,
28
+ hasFiltering: false,
29
+ totalRowCount: 0,
30
+ rowsLength: 5,
31
+ filteredRowsLength: 5,
32
+ })).toBe(5);
33
+ });
34
+ it('server infinite bypasses the server branch and uses rows.length', () => {
35
+ expect(resolvePaginationRowCount({
36
+ mode: 'server',
37
+ isInfinite: true,
38
+ hasFiltering: false,
39
+ totalRowCount: 999,
40
+ rowsLength: 42,
41
+ filteredRowsLength: 42,
42
+ })).toBe(42);
43
+ });
44
+ it('client with filtering returns the filtered row count', () => {
45
+ expect(resolvePaginationRowCount({
46
+ mode: 'client',
47
+ isInfinite: false,
48
+ hasFiltering: true,
49
+ totalRowCount: undefined,
50
+ rowsLength: 100,
51
+ filteredRowsLength: 7,
52
+ })).toBe(7);
53
+ });
54
+ it('client with filtering returns 0 when all rows are filtered out', () => {
55
+ expect(resolvePaginationRowCount({
56
+ mode: 'client',
57
+ isInfinite: false,
58
+ hasFiltering: true,
59
+ totalRowCount: undefined,
60
+ rowsLength: 100,
61
+ filteredRowsLength: 0,
62
+ })).toBe(0);
63
+ });
64
+ it('client without filtering returns rows.length', () => {
65
+ expect(resolvePaginationRowCount({
66
+ mode: 'client',
67
+ isInfinite: false,
68
+ hasFiltering: false,
69
+ totalRowCount: undefined,
70
+ rowsLength: 25,
71
+ filteredRowsLength: 25,
72
+ })).toBe(25);
73
+ });
74
+ it('client with filtering takes precedence over rows.length even when filtered count is larger', () => {
75
+ expect(resolvePaginationRowCount({
76
+ mode: 'client',
77
+ isInfinite: false,
78
+ hasFiltering: true,
79
+ totalRowCount: undefined,
80
+ rowsLength: 3,
81
+ filteredRowsLength: 10,
82
+ })).toBe(10);
83
+ });
84
+ });
@@ -58,8 +58,10 @@ import { NvSidebarnavitem as NvSidebarnavitemElement, defineCustomElement as def
58
58
  import { NvSidebarnavsubitem as NvSidebarnavsubitemElement, defineCustomElement as defineNvSidebarnavsubitem } from "@nova-design-system/nova-webcomponents/dist/components/nv-sidebarnavsubitem.js";
59
59
  import { NvSplit as NvSplitElement, defineCustomElement as defineNvSplit } from "@nova-design-system/nova-webcomponents/dist/components/nv-split.js";
60
60
  import { NvStack as NvStackElement, defineCustomElement as defineNvStack } from "@nova-design-system/nova-webcomponents/dist/components/nv-stack.js";
61
+ import { NvStatusindicator as NvStatusindicatorElement, defineCustomElement as defineNvStatusindicator } from "@nova-design-system/nova-webcomponents/dist/components/nv-statusindicator.js";
61
62
  import { NvTable as NvTableElement, defineCustomElement as defineNvTable } from "@nova-design-system/nova-webcomponents/dist/components/nv-table.js";
62
63
  import { NvTableheader as NvTableheaderElement, defineCustomElement as defineNvTableheader } from "@nova-design-system/nova-webcomponents/dist/components/nv-tableheader.js";
64
+ import { NvTag as NvTagElement, defineCustomElement as defineNvTag } from "@nova-design-system/nova-webcomponents/dist/components/nv-tag.js";
63
65
  import { NvTimetest as NvTimetestElement, defineCustomElement as defineNvTimetest } from "@nova-design-system/nova-webcomponents/dist/components/nv-timetest.js";
64
66
  import { NvToggle as NvToggleElement, defineCustomElement as defineNvToggle } from "@nova-design-system/nova-webcomponents/dist/components/nv-toggle.js";
65
67
  import { NvTogglebutton as NvTogglebuttonElement, defineCustomElement as defineNvTogglebutton } from "@nova-design-system/nova-webcomponents/dist/components/nv-togglebutton.js";
@@ -452,7 +454,10 @@ export const NvSidebar = createComponent({
452
454
  tagName: 'nv-sidebar',
453
455
  elementClass: NvSidebarElement,
454
456
  react: React,
455
- events: { onOpenChanged: 'openChanged' },
457
+ events: {
458
+ onOpenChanged: 'openChanged',
459
+ onWidthChanged: 'widthChanged'
460
+ },
456
461
  defineCustomElement: defineNvSidebar
457
462
  });
458
463
  export const NvSidebarcontent = createComponent({
@@ -525,6 +530,13 @@ export const NvStack = createComponent({
525
530
  events: {},
526
531
  defineCustomElement: defineNvStack
527
532
  });
533
+ export const NvStatusindicator = createComponent({
534
+ tagName: 'nv-statusindicator',
535
+ elementClass: NvStatusindicatorElement,
536
+ react: React,
537
+ events: {},
538
+ defineCustomElement: defineNvStatusindicator
539
+ });
528
540
  export const NvTable = createComponent({
529
541
  tagName: 'nv-table',
530
542
  elementClass: NvTableElement,
@@ -539,6 +551,13 @@ export const NvTableheader = createComponent({
539
551
  events: { onSortDirectionChanged: 'sortDirectionChanged' },
540
552
  defineCustomElement: defineNvTableheader
541
553
  });
554
+ export const NvTag = createComponent({
555
+ tagName: 'nv-tag',
556
+ elementClass: NvTagElement,
557
+ react: React,
558
+ events: { onDismissed: 'dismissed' },
559
+ defineCustomElement: defineNvTag
560
+ });
542
561
  export const NvTimetest = createComponent({
543
562
  tagName: 'nv-timetest',
544
563
  elementClass: NvTimetestElement,
@@ -879,7 +879,11 @@ export const NvSidebar = createComponent({
879
879
  open: 'open',
880
880
  activePath: 'active-path',
881
881
  notificationIntention: 'notification-intention',
882
- notificationEmphasis: 'notification-emphasis'
882
+ notificationEmphasis: 'notification-emphasis',
883
+ resizable: 'resizable',
884
+ minWidth: 'min-width',
885
+ maxWidth: 'max-width',
886
+ width: 'width'
883
887
  },
884
888
  hydrateModule: import('@nova-design-system/nova-webcomponents/hydrate'),
885
889
  clientModule: clientComponents.NvSidebar,
@@ -974,6 +978,17 @@ export const NvStack = createComponent({
974
978
  clientModule: clientComponents.NvStack,
975
979
  serializeShadowRoot
976
980
  });
981
+ export const NvStatusindicator = createComponent({
982
+ tagName: 'nv-statusindicator',
983
+ properties: {
984
+ status: 'status',
985
+ emphasis: 'emphasis',
986
+ label: 'label'
987
+ },
988
+ hydrateModule: import('@nova-design-system/nova-webcomponents/hydrate'),
989
+ clientModule: clientComponents.NvStatusindicator,
990
+ serializeShadowRoot
991
+ });
977
992
  export const NvTable = createComponent({
978
993
  tagName: 'nv-table',
979
994
  properties: {},
@@ -991,6 +1006,21 @@ export const NvTableheader = createComponent({
991
1006
  clientModule: clientComponents.NvTableheader,
992
1007
  serializeShadowRoot
993
1008
  });
1009
+ export const NvTag = createComponent({
1010
+ tagName: 'nv-tag',
1011
+ properties: {
1012
+ color: 'color',
1013
+ label: 'label',
1014
+ dismissible: 'dismissible',
1015
+ href: 'href',
1016
+ target: 'target',
1017
+ rel: 'rel',
1018
+ disabled: 'disabled'
1019
+ },
1020
+ hydrateModule: import('@nova-design-system/nova-webcomponents/hydrate'),
1021
+ clientModule: clientComponents.NvTag,
1022
+ serializeShadowRoot
1023
+ });
994
1024
  export const NvTimetest = createComponent({
995
1025
  tagName: 'nv-timetest',
996
1026
  properties: { lastChange: 'last-change' },
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { NvDatatableProps } from './types';
3
- declare function NvDatatable<T>({ mode, columns, rows, pagination, sorting, filtering, selection, renderPagination, renderFiltering, stickyHeader, ...htmlProps }: NvDatatableProps<T>): React.JSX.Element;
3
+ declare function NvDatatable<T>({ mode, columns, rows, pagination, sorting, filtering, selection, renderPagination, renderFiltering, onRowClick, expandable, stickyHeader, ...htmlProps }: NvDatatableProps<T>): React.JSX.Element;
4
4
  declare namespace NvDatatable {
5
5
  var displayName: string;
6
6
  }
@@ -0,0 +1,5 @@
1
+ export declare function shouldShowExpandedContent(params: {
2
+ hasContent: boolean;
3
+ isCollapsible: boolean;
4
+ isExpanded: boolean;
5
+ }): boolean;
@@ -0,0 +1,9 @@
1
+ export interface ResolvePaginationRowCountOptions {
2
+ mode: 'client' | 'server';
3
+ isInfinite: boolean;
4
+ hasFiltering: boolean;
5
+ totalRowCount: number | undefined;
6
+ rowsLength: number;
7
+ filteredRowsLength: number;
8
+ }
9
+ export declare function resolvePaginationRowCount(opts: ResolvePaginationRowCountOptions): number;
@@ -1,5 +1,5 @@
1
1
  import type { ComponentProps } from 'react';
2
- import type { SortingFn, NoInfer, SortingState, Row } from '@tanstack/react-table';
2
+ import type { SortingFn, NoInfer, SortingState, Row, ExpandedState } from '@tanstack/react-table';
3
3
  export type NvDatatableMode = 'client' | 'server';
4
4
  export type NvDatatableProps<T> = {
5
5
  mode?: NvDatatableMode;
@@ -9,11 +9,17 @@ export type NvDatatableProps<T> = {
9
9
  sorting?: NvDatatableSortingConfig;
10
10
  filtering?: NvDatatableFilteringConfig<T>;
11
11
  selection?: NvDatatableSelectionConfigWithMode<T>;
12
+ onRowClick?: (args: NvDatatableRowClickEventArgs<T>) => void;
12
13
  renderPagination?: (api: NvDatatableRenderPaginationAPI) => React.ReactNode;
13
14
  renderFiltering?: (api: NvDatatableRenderFilteringAPI) => React.ReactNode;
15
+ expandable?: NvDatatableExpandableConfig<T>;
14
16
  stickyHeader?: boolean;
15
17
  suppressHydrationWarning?: boolean;
16
18
  } & Pick<ComponentProps<'div'>, 'className' | 'style'>;
19
+ export interface NvDatatableRowClickEventArgs<T> {
20
+ row: T;
21
+ rowIndex: number;
22
+ }
17
23
  export type NvDatatableSelectionMode = 'none' | 'single' | 'multiple';
18
24
  export interface NvDatatableSelectionConfig<T> {
19
25
  mode?: NvDatatableSelectionMode;
@@ -102,6 +108,7 @@ export interface NvDatatableSortingConfig {
102
108
  enableSortingRemoval?: boolean;
103
109
  maxMultiSortColCount?: number;
104
110
  sortDescFirst?: boolean;
111
+ initialSortState?: NvDataTableSortingState;
105
112
  sortState?: NvDataTableSortingState;
106
113
  onSortingChange?: (sorting: SortingState) => void;
107
114
  }
@@ -118,3 +125,16 @@ export interface NvDatatableRenderFilteringAPI {
118
125
  totalRows: number;
119
126
  filteredRows: number;
120
127
  }
128
+ export interface NvDatatableExpandableConfig<T> {
129
+ renderExpandedContent: (params: NvDatatableExpandedContentParams<T>) => React.ReactNode | null | undefined;
130
+ collapsible?: boolean;
131
+ expandedState?: ExpandedState;
132
+ onExpandedChange?: (expandedState: ExpandedState) => void;
133
+ getRowCanExpand?: (row: T) => boolean;
134
+ toggleColumnWidth?: number;
135
+ }
136
+ export interface NvDatatableExpandedContentParams<T> {
137
+ row: T;
138
+ rowIndex: number;
139
+ }
140
+ export type { ExpandedState };
@@ -1,4 +1,4 @@
1
- import { type DateOnly, type NvAccordionCustomEvent, type NvAccordionItemCustomEvent, type NvAlertCustomEvent, type NvBadgeCustomEvent, type NvCalendarCustomEvent, type NvDatagridCustomEvent, type NvDatetestCustomEvent, type NvDatetimetestCustomEvent, type NvDialogCustomEvent, type NvDialogfooterCustomEvent, type NvDrawerCustomEvent, type NvDrawerfooterCustomEvent, type NvFieldcheckboxCustomEvent, type NvFielddateCustomEvent, type NvFielddaterangeCustomEvent, type NvFielddropdownCustomEvent, type NvFielddropdownitemCustomEvent, type NvFielddropdownitemcheckCustomEvent, type NvFieldmultiselectCustomEvent, type NvFieldnumberCustomEvent, type NvFieldpasswordCustomEvent, type NvFieldradioCustomEvent, type NvFieldselectCustomEvent, type NvFieldsliderCustomEvent, type NvFieldtextCustomEvent, type NvFieldtextareaCustomEvent, type NvFieldtimeCustomEvent, type NvMenuCustomEvent, type NvMenuitemCustomEvent, type NvNotificationCustomEvent, type NvPaginationNavCustomEvent, type NvPaginationtableCustomEvent, type NvPopoverCustomEvent, type NvSidebarCustomEvent, type NvSplitCustomEvent, type NvTableheaderCustomEvent, type NvTimetestCustomEvent, type NvToggleCustomEvent, type NvTogglebuttonCustomEvent, type NvTogglebuttongroupCustomEvent, type NvTooltipCustomEvent, type TimeOnly } from "@nova-design-system/nova-webcomponents";
1
+ import { type DateOnly, type NvAccordionCustomEvent, type NvAccordionItemCustomEvent, type NvAlertCustomEvent, type NvBadgeCustomEvent, type NvCalendarCustomEvent, type NvDatagridCustomEvent, type NvDatetestCustomEvent, type NvDatetimetestCustomEvent, type NvDialogCustomEvent, type NvDialogfooterCustomEvent, type NvDrawerCustomEvent, type NvDrawerfooterCustomEvent, type NvFieldcheckboxCustomEvent, type NvFielddateCustomEvent, type NvFielddaterangeCustomEvent, type NvFielddropdownCustomEvent, type NvFielddropdownitemCustomEvent, type NvFielddropdownitemcheckCustomEvent, type NvFieldmultiselectCustomEvent, type NvFieldnumberCustomEvent, type NvFieldpasswordCustomEvent, type NvFieldradioCustomEvent, type NvFieldselectCustomEvent, type NvFieldsliderCustomEvent, type NvFieldtextCustomEvent, type NvFieldtextareaCustomEvent, type NvFieldtimeCustomEvent, type NvMenuCustomEvent, type NvMenuitemCustomEvent, type NvNotificationCustomEvent, type NvPaginationNavCustomEvent, type NvPaginationtableCustomEvent, type NvPopoverCustomEvent, type NvSidebarCustomEvent, type NvSplitCustomEvent, type NvTableheaderCustomEvent, type NvTagCustomEvent, type NvTimetestCustomEvent, type NvToggleCustomEvent, type NvTogglebuttonCustomEvent, type NvTogglebuttongroupCustomEvent, type NvTooltipCustomEvent, type TimeOnly } from "@nova-design-system/nova-webcomponents";
2
2
  import { NvAccordionItem as NvAccordionItemElement } from "@nova-design-system/nova-webcomponents/dist/components/nv-accordion-item.js";
3
3
  import { NvAccordion as NvAccordionElement } from "@nova-design-system/nova-webcomponents/dist/components/nv-accordion.js";
4
4
  import { NvAlert as NvAlertElement } from "@nova-design-system/nova-webcomponents/dist/components/nv-alert.js";
@@ -58,8 +58,10 @@ import { NvSidebarnavitem as NvSidebarnavitemElement } from "@nova-design-system
58
58
  import { NvSidebarnavsubitem as NvSidebarnavsubitemElement } from "@nova-design-system/nova-webcomponents/dist/components/nv-sidebarnavsubitem.js";
59
59
  import { NvSplit as NvSplitElement } from "@nova-design-system/nova-webcomponents/dist/components/nv-split.js";
60
60
  import { NvStack as NvStackElement } from "@nova-design-system/nova-webcomponents/dist/components/nv-stack.js";
61
+ import { NvStatusindicator as NvStatusindicatorElement } from "@nova-design-system/nova-webcomponents/dist/components/nv-statusindicator.js";
61
62
  import { NvTable as NvTableElement } from "@nova-design-system/nova-webcomponents/dist/components/nv-table.js";
62
63
  import { NvTableheader as NvTableheaderElement } from "@nova-design-system/nova-webcomponents/dist/components/nv-tableheader.js";
64
+ import { NvTag as NvTagElement } from "@nova-design-system/nova-webcomponents/dist/components/nv-tag.js";
63
65
  import { NvTimetest as NvTimetestElement } from "@nova-design-system/nova-webcomponents/dist/components/nv-timetest.js";
64
66
  import { NvToggle as NvToggleElement } from "@nova-design-system/nova-webcomponents/dist/components/nv-toggle.js";
65
67
  import { NvTogglebutton as NvTogglebuttonElement } from "@nova-design-system/nova-webcomponents/dist/components/nv-togglebutton.js";
@@ -293,6 +295,7 @@ export type NvRowEvents = NonNullable<unknown>;
293
295
  export declare const NvRow: StencilReactComponent<NvRowElement, NvRowEvents>;
294
296
  export type NvSidebarEvents = {
295
297
  onOpenChanged: EventName<NvSidebarCustomEvent<boolean>>;
298
+ onWidthChanged: EventName<NvSidebarCustomEvent<number>>;
296
299
  };
297
300
  export declare const NvSidebar: StencilReactComponent<NvSidebarElement, NvSidebarEvents>;
298
301
  export type NvSidebarcontentEvents = NonNullable<unknown>;
@@ -317,12 +320,20 @@ export type NvSplitEvents = {
317
320
  export declare const NvSplit: StencilReactComponent<NvSplitElement, NvSplitEvents>;
318
321
  export type NvStackEvents = NonNullable<unknown>;
319
322
  export declare const NvStack: StencilReactComponent<NvStackElement, NvStackEvents>;
323
+ export type NvStatusindicatorEvents = NonNullable<unknown>;
324
+ export declare const NvStatusindicator: StencilReactComponent<NvStatusindicatorElement, NvStatusindicatorEvents>;
320
325
  export type NvTableEvents = NonNullable<unknown>;
321
326
  export declare const NvTable: StencilReactComponent<NvTableElement, NvTableEvents>;
322
327
  export type NvTableheaderEvents = {
323
328
  onSortDirectionChanged: EventName<NvTableheaderCustomEvent<string>>;
324
329
  };
325
330
  export declare const NvTableheader: StencilReactComponent<NvTableheaderElement, NvTableheaderEvents>;
331
+ export type NvTagEvents = {
332
+ onDismissed: EventName<NvTagCustomEvent<{
333
+ label?: string;
334
+ }>>;
335
+ };
336
+ export declare const NvTag: StencilReactComponent<NvTagElement, NvTagEvents>;
326
337
  export type NvTimetestEvents = {
327
338
  onValueChanged: EventName<NvTimetestCustomEvent<{
328
339
  start?: TimeOnly;
@@ -1,4 +1,4 @@
1
- import { type DateOnly, type NvAccordionCustomEvent, type NvAccordionItemCustomEvent, type NvAlertCustomEvent, type NvBadgeCustomEvent, type NvCalendarCustomEvent, type NvDatagridCustomEvent, type NvDatetestCustomEvent, type NvDatetimetestCustomEvent, type NvDialogCustomEvent, type NvDialogfooterCustomEvent, type NvDrawerCustomEvent, type NvDrawerfooterCustomEvent, type NvFieldcheckboxCustomEvent, type NvFielddateCustomEvent, type NvFielddaterangeCustomEvent, type NvFielddropdownCustomEvent, type NvFielddropdownitemCustomEvent, type NvFielddropdownitemcheckCustomEvent, type NvFieldmultiselectCustomEvent, type NvFieldnumberCustomEvent, type NvFieldpasswordCustomEvent, type NvFieldradioCustomEvent, type NvFieldselectCustomEvent, type NvFieldsliderCustomEvent, type NvFieldtextCustomEvent, type NvFieldtextareaCustomEvent, type NvFieldtimeCustomEvent, type NvMenuCustomEvent, type NvMenuitemCustomEvent, type NvNotificationCustomEvent, type NvPaginationNavCustomEvent, type NvPaginationtableCustomEvent, type NvPopoverCustomEvent, type NvSidebarCustomEvent, type NvSplitCustomEvent, type NvTableheaderCustomEvent, type NvTimetestCustomEvent, type NvToggleCustomEvent, type NvTogglebuttonCustomEvent, type NvTogglebuttongroupCustomEvent, type NvTooltipCustomEvent, type TimeOnly } from "@nova-design-system/nova-webcomponents";
1
+ import { type DateOnly, type NvAccordionCustomEvent, type NvAccordionItemCustomEvent, type NvAlertCustomEvent, type NvBadgeCustomEvent, type NvCalendarCustomEvent, type NvDatagridCustomEvent, type NvDatetestCustomEvent, type NvDatetimetestCustomEvent, type NvDialogCustomEvent, type NvDialogfooterCustomEvent, type NvDrawerCustomEvent, type NvDrawerfooterCustomEvent, type NvFieldcheckboxCustomEvent, type NvFielddateCustomEvent, type NvFielddaterangeCustomEvent, type NvFielddropdownCustomEvent, type NvFielddropdownitemCustomEvent, type NvFielddropdownitemcheckCustomEvent, type NvFieldmultiselectCustomEvent, type NvFieldnumberCustomEvent, type NvFieldpasswordCustomEvent, type NvFieldradioCustomEvent, type NvFieldselectCustomEvent, type NvFieldsliderCustomEvent, type NvFieldtextCustomEvent, type NvFieldtextareaCustomEvent, type NvFieldtimeCustomEvent, type NvMenuCustomEvent, type NvMenuitemCustomEvent, type NvNotificationCustomEvent, type NvPaginationNavCustomEvent, type NvPaginationtableCustomEvent, type NvPopoverCustomEvent, type NvSidebarCustomEvent, type NvSplitCustomEvent, type NvTableheaderCustomEvent, type NvTagCustomEvent, type NvTimetestCustomEvent, type NvToggleCustomEvent, type NvTogglebuttonCustomEvent, type NvTogglebuttongroupCustomEvent, type NvTooltipCustomEvent, type TimeOnly } from "@nova-design-system/nova-webcomponents";
2
2
  import { NvAccordionItem as NvAccordionItemElement } from "@nova-design-system/nova-webcomponents/dist/components/nv-accordion-item.js";
3
3
  import { NvAccordion as NvAccordionElement } from "@nova-design-system/nova-webcomponents/dist/components/nv-accordion.js";
4
4
  import { NvAlert as NvAlertElement } from "@nova-design-system/nova-webcomponents/dist/components/nv-alert.js";
@@ -58,8 +58,10 @@ import { NvSidebarnavitem as NvSidebarnavitemElement } from "@nova-design-system
58
58
  import { NvSidebarnavsubitem as NvSidebarnavsubitemElement } from "@nova-design-system/nova-webcomponents/dist/components/nv-sidebarnavsubitem.js";
59
59
  import { NvSplit as NvSplitElement } from "@nova-design-system/nova-webcomponents/dist/components/nv-split.js";
60
60
  import { NvStack as NvStackElement } from "@nova-design-system/nova-webcomponents/dist/components/nv-stack.js";
61
+ import { NvStatusindicator as NvStatusindicatorElement } from "@nova-design-system/nova-webcomponents/dist/components/nv-statusindicator.js";
61
62
  import { NvTable as NvTableElement } from "@nova-design-system/nova-webcomponents/dist/components/nv-table.js";
62
63
  import { NvTableheader as NvTableheaderElement } from "@nova-design-system/nova-webcomponents/dist/components/nv-tableheader.js";
64
+ import { NvTag as NvTagElement } from "@nova-design-system/nova-webcomponents/dist/components/nv-tag.js";
63
65
  import { NvTimetest as NvTimetestElement } from "@nova-design-system/nova-webcomponents/dist/components/nv-timetest.js";
64
66
  import { NvToggle as NvToggleElement } from "@nova-design-system/nova-webcomponents/dist/components/nv-toggle.js";
65
67
  import { NvTogglebutton as NvTogglebuttonElement } from "@nova-design-system/nova-webcomponents/dist/components/nv-togglebutton.js";
@@ -295,6 +297,7 @@ export type NvRowEvents = NonNullable<unknown>;
295
297
  export declare const NvRow: StencilReactComponent<NvRowElement, NvRowEvents>;
296
298
  export type NvSidebarEvents = {
297
299
  onOpenChanged: EventName<NvSidebarCustomEvent<boolean>>;
300
+ onWidthChanged: EventName<NvSidebarCustomEvent<number>>;
298
301
  };
299
302
  export declare const NvSidebar: StencilReactComponent<NvSidebarElement, NvSidebarEvents>;
300
303
  export type NvSidebarcontentEvents = NonNullable<unknown>;
@@ -319,12 +322,20 @@ export type NvSplitEvents = {
319
322
  export declare const NvSplit: StencilReactComponent<NvSplitElement, NvSplitEvents>;
320
323
  export type NvStackEvents = NonNullable<unknown>;
321
324
  export declare const NvStack: StencilReactComponent<NvStackElement, NvStackEvents>;
325
+ export type NvStatusindicatorEvents = NonNullable<unknown>;
326
+ export declare const NvStatusindicator: StencilReactComponent<NvStatusindicatorElement, NvStatusindicatorEvents>;
322
327
  export type NvTableEvents = NonNullable<unknown>;
323
328
  export declare const NvTable: StencilReactComponent<NvTableElement, NvTableEvents>;
324
329
  export type NvTableheaderEvents = {
325
330
  onSortDirectionChanged: EventName<NvTableheaderCustomEvent<string>>;
326
331
  };
327
332
  export declare const NvTableheader: StencilReactComponent<NvTableheaderElement, NvTableheaderEvents>;
333
+ export type NvTagEvents = {
334
+ onDismissed: EventName<NvTagCustomEvent<{
335
+ label?: string;
336
+ }>>;
337
+ };
338
+ export declare const NvTag: StencilReactComponent<NvTagElement, NvTagEvents>;
328
339
  export type NvTimetestEvents = {
329
340
  onValueChanged: EventName<NvTimetestCustomEvent<{
330
341
  start?: TimeOnly;
@@ -1,5 +1,6 @@
1
1
  export * from './generated/components';
2
2
  export * from '@nova-design-system/nova-webcomponents/constants';
3
+ export { type IconName } from '@nova-design-system/nova-webcomponents';
3
4
  export { defineCustomElements } from '@nova-design-system/nova-webcomponents/loader';
4
5
  export { useNotifications, NotificationProvider, type NotificationOptions, type NotificationContextValue, type NotificationProviderProps, type Notification, } from './providers/NotificationProvider';
5
6
  export * from './components/NvDatatable';
@@ -1,5 +1,5 @@
1
1
  import React, { ReactNode } from 'react';
2
- import { type NotificationPosition, type NotificationEmphasis, FeedbackColors } from '../index';
2
+ import { type NotificationPosition, type NotificationEmphasis, type IconName, FeedbackColors } from '../index';
3
3
  export interface NotificationAction {
4
4
  label: string;
5
5
  onClick: () => void;
@@ -11,7 +11,7 @@ export interface NotificationOptions {
11
11
  dismissible?: boolean;
12
12
  emphasis?: `${NotificationEmphasis}`;
13
13
  feedback?: `${FeedbackColors}`;
14
- icon?: string;
14
+ icon?: `${IconName}`;
15
15
  actions?: NotificationAction[];
16
16
  actionSlot?: React.ReactElement;
17
17
  duration?: number;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nova-design-system/nova-react",
3
- "version": "3.28.0",
3
+ "version": "3.30.0",
4
4
  "description": "Nova is a design system created by Elia Group to empower creators to efficiently build solutions that people love to use.",
5
5
  "author": "Elia Group",
6
6
  "homepage": "https://nova.eliagroup.io",