@nova-design-system/nova-react 3.20.0 → 3.21.1-beta.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 (78) hide show
  1. package/dist/cjs/generated/components.server.js +106 -2
  2. package/dist/cjs/grow.animation-24ad5cf8-LUp_ITEx.js +111 -0
  3. package/dist/cjs/{index-BObVnP12.js → index-CEKdYnmK.js} +1794 -463
  4. package/dist/cjs/index.js +12 -1
  5. package/dist/cjs/{nv-accordion-item.entry-BBAGkmLI.js → nv-accordion-item.entry-zvp8yDql.js} +1 -1
  6. package/dist/cjs/{nv-accordion.entry-CvvtdLIz.js → nv-accordion.entry-D6gckOF4.js} +1 -1
  7. package/dist/cjs/{nv-alert.entry-w5XeFsrC.js → nv-alert.entry-Df8-nQ-R.js} +1 -1
  8. package/dist/cjs/{nv-avatar.entry-BxUZg-8h.js → nv-avatar.entry-ZOnVWP9L.js} +1 -1
  9. package/dist/cjs/{nv-badge_2.entry-DdSIFlJf.js → nv-badge_2.entry-DgiVv_Yf.js} +2 -2
  10. package/dist/cjs/{nv-breadcrumb.entry-CmbqGw3C.js → nv-breadcrumb.entry-IqtE1JL0.js} +1 -1
  11. package/dist/cjs/{nv-breadcrumbs.entry-DFHxtPKv.js → nv-breadcrumbs.entry-Be6dz7zI.js} +1 -1
  12. package/dist/cjs/nv-button.entry-CmswF3Si.js +164 -0
  13. package/dist/cjs/{nv-buttongroup.entry-wn9zFd_M.js → nv-buttongroup.entry-Cfe6rFSs.js} +1 -1
  14. package/dist/cjs/{nv-calendar.entry-Dldsa6dz.js → nv-calendar.entry-q83sS_dN.js} +1 -1
  15. package/dist/cjs/{nv-col.entry-DnG79KM1.js → nv-col.entry-Cu-Qi1bi.js} +1 -1
  16. package/dist/cjs/{nv-datagrid.entry-C2ML-e47.js → nv-datagrid.entry-Cx7SvD5S.js} +3 -3
  17. package/dist/cjs/{nv-datagridcolumn.entry-DcMPUtQS.js → nv-datagridcolumn.entry-B_uXKFLg.js} +1 -1
  18. package/dist/cjs/{nv-dialog.entry-C0Vx7dQc.js → nv-dialog.entry-J6Xwi6z1.js} +54 -20
  19. package/dist/cjs/{nv-dialogfooter_2.entry-BGq8Jiib.js → nv-dialogfooter_2.entry-DOlhqDTh.js} +3 -3
  20. package/dist/cjs/{nv-fieldcheckbox.entry-CAPwYnSU.js → nv-fieldcheckbox.entry-C23dGGX7.js} +5 -5
  21. package/dist/cjs/{nv-fielddate.entry-Byt5cmQi.js → nv-fielddate.entry-xWi3GpLl.js} +15 -18
  22. package/dist/cjs/{nv-fielddaterange.entry-CCFeFP2q.js → nv-fielddaterange.entry-BwFtpw9X.js} +8 -10
  23. package/dist/cjs/{nv-fielddropdown.entry-BFp_2vBC.js → nv-fielddropdown.entry-mnl7mSaK.js} +15 -6
  24. package/dist/cjs/{nv-fielddropdownitem.entry-D_4KdBY1.js → nv-fielddropdownitem.entry-DjyFlVXw.js} +3 -3
  25. package/dist/cjs/{nv-fieldmultiselect.entry-BaUD7Dcr.js → nv-fieldmultiselect.entry-BtLTG7nM.js} +2 -2
  26. package/dist/cjs/{nv-fieldnumber.entry-DOmhBrDv.js → nv-fieldnumber.entry-C00Hg70B.js} +4 -4
  27. package/dist/cjs/{nv-fieldpassword.entry-hogiPC5z.js → nv-fieldpassword.entry-BLg8tCN0.js} +4 -4
  28. package/dist/cjs/{nv-fieldradio.entry-CKbyWpIK.js → nv-fieldradio.entry-2hb1Ur40.js} +4 -4
  29. package/dist/cjs/{nv-fieldselect.entry-tpURNUEP.js → nv-fieldselect.entry-D-eYQpAv.js} +6 -6
  30. package/dist/cjs/{nv-fieldslider.entry-v0d92XEY.js → nv-fieldslider.entry-BGle1RZR.js} +4 -4
  31. package/dist/cjs/{nv-fieldtext.entry-DNYrOAhj.js → nv-fieldtext.entry-Djg8cqOa.js} +4 -4
  32. package/dist/cjs/{nv-fieldtextarea.entry-cRsjPwwR.js → nv-fieldtextarea.entry-Z32-s901.js} +4 -4
  33. package/dist/cjs/{nv-fieldtime.entry-BpGBUfKr.js → nv-fieldtime.entry-CDFGdfFL.js} +4 -4
  34. package/dist/cjs/nv-icon.entry-BDq7DKRt.js +80 -0
  35. package/dist/cjs/{nv-iconbutton_2.entry-DOv1RrkS.js → nv-iconbutton_2.entry-DdgEkFLK.js} +8 -3
  36. package/dist/cjs/{nv-menu.entry-C2L8F-nG.js → nv-menu.entry-iob0Kve8.js} +2 -2
  37. package/dist/cjs/{nv-menuitem.entry-DuDZTlJ1.js → nv-menuitem.entry-C989Ui60.js} +2 -2
  38. package/dist/cjs/nv-notification-bullet.entry-J8OkAZtU.js +77 -0
  39. package/dist/cjs/{nv-notification.entry-DxAj-mc7.js → nv-notification.entry-BxvJMKxH.js} +2 -2
  40. package/dist/cjs/{nv-notificationcontainer.entry-CUnTicXF.js → nv-notificationcontainer.entry-CxGCIb96.js} +2 -2
  41. package/dist/cjs/{nv-popover.entry-DVwa4DvW.js → nv-popover.entry-1KsO_KQm.js} +14 -98
  42. package/dist/cjs/{nv-row.entry-iLk2UglX.js → nv-row.entry-PBLq_BzJ.js} +2 -2
  43. package/dist/cjs/nv-sidebar.entry-CjLbvLqw.js +177 -0
  44. package/dist/cjs/nv-sidebarcontent.entry-Cv76IH4W.js +22 -0
  45. package/dist/cjs/nv-sidebardivider.entry-DYPJ_k73.js +22 -0
  46. package/dist/cjs/nv-sidebarfooter.entry-mGcMBRmv.js +22 -0
  47. package/dist/cjs/nv-sidebargroup.entry-DtwFliHZ.js +23 -0
  48. package/dist/cjs/nv-sidebarheader.entry-BdOYIXCA.js +22 -0
  49. package/dist/cjs/nv-sidebarlogo.entry-Da0kGsfw.js +32 -0
  50. package/dist/cjs/nv-sidebarnavitem.entry-D5xLfpwn.js +297 -0
  51. package/dist/cjs/nv-sidebarnavsubitem.entry-CkeJfHH4.js +35 -0
  52. package/dist/cjs/{nv-split.entry-BrMHK6TS.js → nv-split.entry-y66NBf88.js} +2 -2
  53. package/dist/cjs/{nv-stack.entry-C8jLJ5Ki.js → nv-stack.entry-CXjpkpbW.js} +2 -2
  54. package/dist/cjs/{nv-table.entry-D6o4g9Vo.js → nv-table.entry-quaVnLru.js} +2 -2
  55. package/dist/cjs/nv-tableheader.entry-DTBE2XQO.js +75 -0
  56. package/dist/cjs/{nv-toggle.entry-9iwmu7qi.js → nv-toggle.entry-CxUwF0pb.js} +3 -3
  57. package/dist/cjs/nv-togglebutton.entry-w-WEAmE6.js +56 -0
  58. package/dist/cjs/{nv-togglebuttongroup.entry-DWCytOhV.js → nv-togglebuttongroup.entry-UbrE8y7a.js} +2 -2
  59. package/dist/cjs/{nv-tooltip.entry-BMxnZVYA.js → nv-tooltip.entry-Dq2bkV33.js} +2 -2
  60. package/dist/components/{NvDatatable.js → NvDatatable/NvDatatable.js} +88 -46
  61. package/dist/components/NvDatatable/index.js +3 -0
  62. package/dist/components/NvDatatable/types.js +1 -0
  63. package/dist/components/NvDatatable/utils.js +5 -0
  64. package/dist/generated/components.js +88 -0
  65. package/dist/generated/components.server.js +95 -2
  66. package/dist/providers/NotificationProvider.js +27 -0
  67. package/dist/types/components/NvDatatable/NvDatatable.d.ts +7 -0
  68. package/dist/types/components/NvDatatable/index.d.ts +3 -0
  69. package/dist/types/components/{NvDatatable.d.ts → NvDatatable/types.d.ts} +18 -8
  70. package/dist/types/components/NvDatatable/utils.d.ts +2 -0
  71. package/dist/types/generated/components.d.ts +37 -0
  72. package/dist/types/generated/components.server.d.ts +37 -0
  73. package/dist/types/providers/NotificationProvider.d.ts +1 -0
  74. package/package.json +1 -1
  75. package/dist/cjs/events.utils-fe1d907f-01N__3wY.js +0 -23
  76. package/dist/cjs/nv-button.entry-Dyks6_mF.js +0 -159
  77. package/dist/cjs/nv-icon.entry-BfmyacWA.js +0 -80
  78. package/dist/cjs/nv-togglebutton.entry-N7_CSvzS.js +0 -56
@@ -1,15 +1,10 @@
1
- import React, { type ComponentProps } from 'react';
2
- import { type NoInfer } from '@tanstack/react-table';
3
- declare function NvDatatable<T>({ columns, rows, pagination, renderPagination, stickyHeader, ...htmlProps }: NvDatatableProps<T>): React.JSX.Element;
4
- declare namespace NvDatatable {
5
- var displayName: string;
6
- }
7
- export { NvDatatable };
8
- export declare function makeColumn<Row>(): <K extends keyof Row, F = Row[K]>(col: NvDatatableColumn<Row, K, F>) => NvDatatableColumn<Row, keyof Row, Row[keyof Row]>;
1
+ import type { ComponentProps } from 'react';
2
+ import type { SortingFn, NoInfer, SortingState } from '@tanstack/react-table';
9
3
  export type NvDatatableProps<T> = {
10
4
  columns: Array<NvDatatableColumn<T>>;
11
5
  rows: Array<T>;
12
6
  pagination?: NvDatatablePaginationConfig;
7
+ sorting?: NvDatatableSortingConfig;
13
8
  renderPagination?: (api: NvDatatableRenderPaginationAPI) => React.ReactNode;
14
9
  stickyHeader?: boolean;
15
10
  } & Pick<ComponentProps<'div'>, 'className' | 'style'>;
@@ -21,6 +16,11 @@ export interface NvDatatableColumn<Row, K extends keyof Row = keyof Row, F = Row
21
16
  hidden?: boolean;
22
17
  valueFormatter?: (params: NvTableValueFormatterParams<Row, Row[K], K>) => F;
23
18
  renderCell?: (params: NvTableRenderCellParams<Row, F, K>) => React.ReactNode;
19
+ sortable?: boolean;
20
+ sortingFn?: SortingFn<Row> | string;
21
+ sortDescFirst?: boolean;
22
+ invertSorting?: boolean;
23
+ sortUndefined?: 'first' | 'last' | false | -1 | 1;
24
24
  }
25
25
  export interface NvTableRenderCellParams<Row, Value, Field> {
26
26
  value: Value | NoInfer<Value>;
@@ -64,3 +64,13 @@ export interface NvDatatableRenderPaginationAPI {
64
64
  isLoading?: boolean;
65
65
  hasMore?: boolean;
66
66
  }
67
+ export type NvDataTableSortingState = SortingState;
68
+ export interface NvDatatableSortingConfig {
69
+ mode: 'client' | 'server';
70
+ enableMultiSort?: boolean;
71
+ enableSortingRemoval?: boolean;
72
+ maxMultiSortColCount?: number;
73
+ sortDescFirst?: boolean;
74
+ sortState?: NvDataTableSortingState;
75
+ onSortingChange?: (sorting: SortingState) => void;
76
+ }
@@ -0,0 +1,2 @@
1
+ import type { NvDatatableColumn } from './types';
2
+ export declare function makeColumn<Row>(): <K extends keyof Row, F = Row[K]>(col: NvDatatableColumn<Row, K, F>) => NvDatatableColumn<Row, keyof Row, Row[keyof Row]>;
@@ -35,13 +35,24 @@ import { NvIconbutton as NvIconbuttonElement } from "@nova-design-system/nova-we
35
35
  import { NvLoader as NvLoaderElement } from "@nova-design-system/nova-webcomponents/dist/components/nv-loader.js";
36
36
  import { NvMenu as NvMenuElement } from "@nova-design-system/nova-webcomponents/dist/components/nv-menu.js";
37
37
  import { NvMenuitem as NvMenuitemElement } from "@nova-design-system/nova-webcomponents/dist/components/nv-menuitem.js";
38
+ import { NvNotificationBullet as NvNotificationBulletElement } from "@nova-design-system/nova-webcomponents/dist/components/nv-notification-bullet.js";
38
39
  import { NvNotification as NvNotificationElement } from "@nova-design-system/nova-webcomponents/dist/components/nv-notification.js";
39
40
  import { NvNotificationcontainer as NvNotificationcontainerElement } from "@nova-design-system/nova-webcomponents/dist/components/nv-notificationcontainer.js";
40
41
  import { NvPopover as NvPopoverElement } from "@nova-design-system/nova-webcomponents/dist/components/nv-popover.js";
41
42
  import { NvRow as NvRowElement } from "@nova-design-system/nova-webcomponents/dist/components/nv-row.js";
43
+ import { NvSidebar as NvSidebarElement } from "@nova-design-system/nova-webcomponents/dist/components/nv-sidebar.js";
44
+ import { NvSidebarcontent as NvSidebarcontentElement } from "@nova-design-system/nova-webcomponents/dist/components/nv-sidebarcontent.js";
45
+ import { NvSidebardivider as NvSidebardividerElement } from "@nova-design-system/nova-webcomponents/dist/components/nv-sidebardivider.js";
46
+ import { NvSidebarfooter as NvSidebarfooterElement } from "@nova-design-system/nova-webcomponents/dist/components/nv-sidebarfooter.js";
47
+ import { NvSidebargroup as NvSidebargroupElement } from "@nova-design-system/nova-webcomponents/dist/components/nv-sidebargroup.js";
48
+ import { NvSidebarheader as NvSidebarheaderElement } from "@nova-design-system/nova-webcomponents/dist/components/nv-sidebarheader.js";
49
+ import { NvSidebarlogo as NvSidebarlogoElement } from "@nova-design-system/nova-webcomponents/dist/components/nv-sidebarlogo.js";
50
+ import { NvSidebarnavitem as NvSidebarnavitemElement } from "@nova-design-system/nova-webcomponents/dist/components/nv-sidebarnavitem.js";
51
+ import { NvSidebarnavsubitem as NvSidebarnavsubitemElement } from "@nova-design-system/nova-webcomponents/dist/components/nv-sidebarnavsubitem.js";
42
52
  import { NvSplit as NvSplitElement } from "@nova-design-system/nova-webcomponents/dist/components/nv-split.js";
43
53
  import { NvStack as NvStackElement } from "@nova-design-system/nova-webcomponents/dist/components/nv-stack.js";
44
54
  import { NvTable as NvTableElement } from "@nova-design-system/nova-webcomponents/dist/components/nv-table.js";
55
+ import { NvTableheader as NvTableheaderElement } from "@nova-design-system/nova-webcomponents/dist/components/nv-tableheader.js";
45
56
  import { NvToggle as NvToggleElement } from "@nova-design-system/nova-webcomponents/dist/components/nv-toggle.js";
46
57
  import { NvTogglebutton as NvTogglebuttonElement } from "@nova-design-system/nova-webcomponents/dist/components/nv-togglebutton.js";
47
58
  import { NvTogglebuttongroup as NvTogglebuttongroupElement } from "@nova-design-system/nova-webcomponents/dist/components/nv-togglebuttongroup.js";
@@ -212,6 +223,8 @@ export type NvNotificationEvents = {
212
223
  onHiddenChanged: EventName<CustomEvent<boolean>>;
213
224
  };
214
225
  export declare const NvNotification: StencilReactComponent<NvNotificationElement, NvNotificationEvents>;
226
+ export type NvNotificationBulletEvents = NonNullable<unknown>;
227
+ export declare const NvNotificationBullet: StencilReactComponent<NvNotificationBulletElement, NvNotificationBulletEvents>;
215
228
  export type NvNotificationcontainerEvents = NonNullable<unknown>;
216
229
  export declare const NvNotificationcontainer: StencilReactComponent<NvNotificationcontainerElement, NvNotificationcontainerEvents>;
217
230
  export type NvPopoverEvents = {
@@ -220,6 +233,26 @@ export type NvPopoverEvents = {
220
233
  export declare const NvPopover: StencilReactComponent<NvPopoverElement, NvPopoverEvents>;
221
234
  export type NvRowEvents = NonNullable<unknown>;
222
235
  export declare const NvRow: StencilReactComponent<NvRowElement, NvRowEvents>;
236
+ export type NvSidebarEvents = {
237
+ onOpenChanged: EventName<CustomEvent<boolean>>;
238
+ };
239
+ export declare const NvSidebar: StencilReactComponent<NvSidebarElement, NvSidebarEvents>;
240
+ export type NvSidebarcontentEvents = NonNullable<unknown>;
241
+ export declare const NvSidebarcontent: StencilReactComponent<NvSidebarcontentElement, NvSidebarcontentEvents>;
242
+ export type NvSidebardividerEvents = NonNullable<unknown>;
243
+ export declare const NvSidebardivider: StencilReactComponent<NvSidebardividerElement, NvSidebardividerEvents>;
244
+ export type NvSidebarfooterEvents = NonNullable<unknown>;
245
+ export declare const NvSidebarfooter: StencilReactComponent<NvSidebarfooterElement, NvSidebarfooterEvents>;
246
+ export type NvSidebargroupEvents = NonNullable<unknown>;
247
+ export declare const NvSidebargroup: StencilReactComponent<NvSidebargroupElement, NvSidebargroupEvents>;
248
+ export type NvSidebarheaderEvents = NonNullable<unknown>;
249
+ export declare const NvSidebarheader: StencilReactComponent<NvSidebarheaderElement, NvSidebarheaderEvents>;
250
+ export type NvSidebarlogoEvents = NonNullable<unknown>;
251
+ export declare const NvSidebarlogo: StencilReactComponent<NvSidebarlogoElement, NvSidebarlogoEvents>;
252
+ export type NvSidebarnavitemEvents = NonNullable<unknown>;
253
+ export declare const NvSidebarnavitem: StencilReactComponent<NvSidebarnavitemElement, NvSidebarnavitemEvents>;
254
+ export type NvSidebarnavsubitemEvents = NonNullable<unknown>;
255
+ export declare const NvSidebarnavsubitem: StencilReactComponent<NvSidebarnavsubitemElement, NvSidebarnavsubitemEvents>;
223
256
  export type NvSplitEvents = {
224
257
  onSizesChanged: EventName<CustomEvent<number[]>>;
225
258
  };
@@ -228,6 +261,10 @@ export type NvStackEvents = NonNullable<unknown>;
228
261
  export declare const NvStack: StencilReactComponent<NvStackElement, NvStackEvents>;
229
262
  export type NvTableEvents = NonNullable<unknown>;
230
263
  export declare const NvTable: StencilReactComponent<NvTableElement, NvTableEvents>;
264
+ export type NvTableheaderEvents = {
265
+ onSortDirectionChanged: EventName<CustomEvent<string>>;
266
+ };
267
+ export declare const NvTableheader: StencilReactComponent<NvTableheaderElement, NvTableheaderEvents>;
231
268
  export type NvToggleEvents = {
232
269
  onCheckedChanged: EventName<CustomEvent<boolean>>;
233
270
  };
@@ -35,13 +35,24 @@ import { NvIconbutton as NvIconbuttonElement } from "@nova-design-system/nova-we
35
35
  import { NvLoader as NvLoaderElement } from "@nova-design-system/nova-webcomponents/dist/components/nv-loader.js";
36
36
  import { NvMenu as NvMenuElement } from "@nova-design-system/nova-webcomponents/dist/components/nv-menu.js";
37
37
  import { NvMenuitem as NvMenuitemElement } from "@nova-design-system/nova-webcomponents/dist/components/nv-menuitem.js";
38
+ import { NvNotificationBullet as NvNotificationBulletElement } from "@nova-design-system/nova-webcomponents/dist/components/nv-notification-bullet.js";
38
39
  import { NvNotification as NvNotificationElement } from "@nova-design-system/nova-webcomponents/dist/components/nv-notification.js";
39
40
  import { NvNotificationcontainer as NvNotificationcontainerElement } from "@nova-design-system/nova-webcomponents/dist/components/nv-notificationcontainer.js";
40
41
  import { NvPopover as NvPopoverElement } from "@nova-design-system/nova-webcomponents/dist/components/nv-popover.js";
41
42
  import { NvRow as NvRowElement } from "@nova-design-system/nova-webcomponents/dist/components/nv-row.js";
43
+ import { NvSidebar as NvSidebarElement } from "@nova-design-system/nova-webcomponents/dist/components/nv-sidebar.js";
44
+ import { NvSidebarcontent as NvSidebarcontentElement } from "@nova-design-system/nova-webcomponents/dist/components/nv-sidebarcontent.js";
45
+ import { NvSidebardivider as NvSidebardividerElement } from "@nova-design-system/nova-webcomponents/dist/components/nv-sidebardivider.js";
46
+ import { NvSidebarfooter as NvSidebarfooterElement } from "@nova-design-system/nova-webcomponents/dist/components/nv-sidebarfooter.js";
47
+ import { NvSidebargroup as NvSidebargroupElement } from "@nova-design-system/nova-webcomponents/dist/components/nv-sidebargroup.js";
48
+ import { NvSidebarheader as NvSidebarheaderElement } from "@nova-design-system/nova-webcomponents/dist/components/nv-sidebarheader.js";
49
+ import { NvSidebarlogo as NvSidebarlogoElement } from "@nova-design-system/nova-webcomponents/dist/components/nv-sidebarlogo.js";
50
+ import { NvSidebarnavitem as NvSidebarnavitemElement } from "@nova-design-system/nova-webcomponents/dist/components/nv-sidebarnavitem.js";
51
+ import { NvSidebarnavsubitem as NvSidebarnavsubitemElement } from "@nova-design-system/nova-webcomponents/dist/components/nv-sidebarnavsubitem.js";
42
52
  import { NvSplit as NvSplitElement } from "@nova-design-system/nova-webcomponents/dist/components/nv-split.js";
43
53
  import { NvStack as NvStackElement } from "@nova-design-system/nova-webcomponents/dist/components/nv-stack.js";
44
54
  import { NvTable as NvTableElement } from "@nova-design-system/nova-webcomponents/dist/components/nv-table.js";
55
+ import { NvTableheader as NvTableheaderElement } from "@nova-design-system/nova-webcomponents/dist/components/nv-tableheader.js";
45
56
  import { NvToggle as NvToggleElement } from "@nova-design-system/nova-webcomponents/dist/components/nv-toggle.js";
46
57
  import { NvTogglebutton as NvTogglebuttonElement } from "@nova-design-system/nova-webcomponents/dist/components/nv-togglebutton.js";
47
58
  import { NvTogglebuttongroup as NvTogglebuttongroupElement } from "@nova-design-system/nova-webcomponents/dist/components/nv-togglebuttongroup.js";
@@ -214,6 +225,8 @@ export type NvNotificationEvents = {
214
225
  onHiddenChanged: EventName<CustomEvent<boolean>>;
215
226
  };
216
227
  export declare const NvNotification: StencilReactComponent<NvNotificationElement, NvNotificationEvents>;
228
+ export type NvNotificationBulletEvents = NonNullable<unknown>;
229
+ export declare const NvNotificationBullet: StencilReactComponent<NvNotificationBulletElement, NvNotificationBulletEvents>;
217
230
  export type NvNotificationcontainerEvents = NonNullable<unknown>;
218
231
  export declare const NvNotificationcontainer: StencilReactComponent<NvNotificationcontainerElement, NvNotificationcontainerEvents>;
219
232
  export type NvPopoverEvents = {
@@ -222,6 +235,26 @@ export type NvPopoverEvents = {
222
235
  export declare const NvPopover: StencilReactComponent<NvPopoverElement, NvPopoverEvents>;
223
236
  export type NvRowEvents = NonNullable<unknown>;
224
237
  export declare const NvRow: StencilReactComponent<NvRowElement, NvRowEvents>;
238
+ export type NvSidebarEvents = {
239
+ onOpenChanged: EventName<CustomEvent<boolean>>;
240
+ };
241
+ export declare const NvSidebar: StencilReactComponent<NvSidebarElement, NvSidebarEvents>;
242
+ export type NvSidebarcontentEvents = NonNullable<unknown>;
243
+ export declare const NvSidebarcontent: StencilReactComponent<NvSidebarcontentElement, NvSidebarcontentEvents>;
244
+ export type NvSidebardividerEvents = NonNullable<unknown>;
245
+ export declare const NvSidebardivider: StencilReactComponent<NvSidebardividerElement, NvSidebardividerEvents>;
246
+ export type NvSidebarfooterEvents = NonNullable<unknown>;
247
+ export declare const NvSidebarfooter: StencilReactComponent<NvSidebarfooterElement, NvSidebarfooterEvents>;
248
+ export type NvSidebargroupEvents = NonNullable<unknown>;
249
+ export declare const NvSidebargroup: StencilReactComponent<NvSidebargroupElement, NvSidebargroupEvents>;
250
+ export type NvSidebarheaderEvents = NonNullable<unknown>;
251
+ export declare const NvSidebarheader: StencilReactComponent<NvSidebarheaderElement, NvSidebarheaderEvents>;
252
+ export type NvSidebarlogoEvents = NonNullable<unknown>;
253
+ export declare const NvSidebarlogo: StencilReactComponent<NvSidebarlogoElement, NvSidebarlogoEvents>;
254
+ export type NvSidebarnavitemEvents = NonNullable<unknown>;
255
+ export declare const NvSidebarnavitem: StencilReactComponent<NvSidebarnavitemElement, NvSidebarnavitemEvents>;
256
+ export type NvSidebarnavsubitemEvents = NonNullable<unknown>;
257
+ export declare const NvSidebarnavsubitem: StencilReactComponent<NvSidebarnavsubitemElement, NvSidebarnavsubitemEvents>;
225
258
  export type NvSplitEvents = {
226
259
  onSizesChanged: EventName<CustomEvent<number[]>>;
227
260
  };
@@ -230,6 +263,10 @@ export type NvStackEvents = NonNullable<unknown>;
230
263
  export declare const NvStack: StencilReactComponent<NvStackElement, NvStackEvents>;
231
264
  export type NvTableEvents = NonNullable<unknown>;
232
265
  export declare const NvTable: StencilReactComponent<NvTableElement, NvTableEvents>;
266
+ export type NvTableheaderEvents = {
267
+ onSortDirectionChanged: EventName<CustomEvent<string>>;
268
+ };
269
+ export declare const NvTableheader: StencilReactComponent<NvTableheaderElement, NvTableheaderEvents>;
233
270
  export type NvToggleEvents = {
234
271
  onCheckedChanged: EventName<CustomEvent<boolean>>;
235
272
  };
@@ -14,6 +14,7 @@ export interface NotificationOptions {
14
14
  icon?: string;
15
15
  actions?: NotificationAction[];
16
16
  actionSlot?: React.ReactElement;
17
+ duration?: number;
17
18
  }
18
19
  export interface Notification extends NotificationOptions {
19
20
  createdAt: number;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nova-design-system/nova-react",
3
- "version": "3.20.0",
3
+ "version": "3.21.1-beta.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",
@@ -1,23 +0,0 @@
1
- 'use strict';
2
-
3
- /**
4
- * Adds a set of event listeners to the given target.
5
- * @param {EventsAndListeners} events - The events and listeners to add.
6
- * @param {Element | Window | Document} target - The target element or window to add the event listeners to.
7
- * @param {T} context - The class context to bind the event listeners to.
8
- */
9
- function addEventListeners(events, target, context) {
10
- events.forEach(([event, listener]) => target.addEventListener(event, listener.bind(context)));
11
- }
12
- /**
13
- * Removes a set of event listeners from the given target.
14
- * @param {EventsAndListeners} events - The events and listeners to remove.
15
- * @param {Element | Window | Document} target - The target element or window to remove the event listeners from.
16
- * @param {T} context - The class context to bind the event listeners to.
17
- */
18
- function removeEventListeners(events, target, context) {
19
- events.forEach(([event, listener]) => target.removeEventListener(event, listener.bind(context)));
20
- }
21
-
22
- exports.addEventListeners = addEventListeners;
23
- exports.removeEventListeners = removeEventListeners;
@@ -1,159 +0,0 @@
1
- 'use strict';
2
-
3
- var index = require('./index-BObVnP12.js');
4
- var constants69bafca2 = require('./constants-69bafca2-DpB_ghPF.js');
5
- require('react');
6
- require('react-dom');
7
-
8
- const nvButtonCss = "nv-button{text-decoration:none;display:inline-flex;justify-content:center;align-items:center;font-style:normal;font-weight:var(--font-weight-medium-emphasis);font-family:var(--font-family-default), var(--font-family-fallback), sans-serif;transition:background-color 150ms ease-out;user-select:none;cursor:pointer;height:fit-content;width:fit-content}nv-button[size=xs]{padding:var(--button-xs-padding-y) var(--button-xs-padding-x);gap:var(--button-xs-gap);border-radius:var(--button-xs-border-radius);line-height:var(--button-xs-line-height);font-size:var(--button-xs-font-size)}nv-button[size=xs] nv-icon>svg{width:var(--spacing-3);height:var(--spacing-3);stroke-width:1.2px}nv-button[size=sm]{padding:var(--button-sm-padding-y) var(--button-sm-padding-x);gap:var(--button-sm-gap);border-radius:var(--button-sm-border-radius);line-height:var(--button-sm-line-height);font-size:var(--button-sm-font-size)}nv-button[size=sm] nv-icon>svg{width:var(--spacing-4);height:var(--spacing-4);stroke-width:1.5px}nv-button[size=md]{padding:var(--button-md-padding-y) var(--button-md-padding-x);gap:var(--button-md-gap);border-radius:var(--button-md-border-radius);line-height:var(--button-md-line-height);font-size:var(--button-md-font-size)}nv-button[size=md] nv-icon>svg{width:var(--spacing-5);height:var(--spacing-5);stroke-width:1.6px}nv-button[size=lg]{padding:var(--button-lg-padding-y) var(--button-lg-padding-x);gap:var(--button-lg-gap);border-radius:var(--button-lg-border-radius);line-height:var(--button-lg-line-height);font-size:var(--button-lg-font-size)}nv-button[size=lg] nv-icon>svg{width:var(--spacing-6);height:var(--spacing-6);stroke-width:1.8px}nv-button[emphasis=high]{background:var(--components-button-high-background);border:1px solid var(--components-button-high-border);color:var(--components-button-high-text)}nv-button[emphasis=high]:hover{background:var(--components-button-high-background-hover);border:1px solid var(--components-button-high-border);color:var(--components-button-high-text-hover)}nv-button[emphasis=high]:active{background:var(--components-button-high-background-active);border:1px solid var(--components-button-high-border-active);color:var(--components-button-high-text-active)}nv-button[emphasis=high]:focus,nv-button[emphasis=high]:focus-within{outline:none}nv-button[emphasis=high]:focus-visible,nv-button[emphasis=high]:has(:focus-visible){outline:calc(var(--focus-outline-stroke) * 1) solid var(--color-focus-brand);outline-offset:calc(var(--focus-outline-offset) * 1)}nv-button[emphasis=high]:disabled:not([disabled=false]){opacity:0.5;cursor:not-allowed;box-shadow:none}nv-button[emphasis=high][active]:not([active=false]){background:var(--components-button-high-background-active);border:1px solid var(--components-button-high-border-active);color:var(--components-button-high-text-active)}nv-button[emphasis=high][danger]:not([danger=false]){background:var(--components-button-destructive-high-background);border:1px solid transparent;color:var(--components-button-destructive-high-text)}nv-button[emphasis=high][danger]:not([danger=false]):hover{background:var(--components-button-destructive-high-background-hover);border:1px solid transparent;color:var(--components-button-destructive-high-text-hover)}nv-button[emphasis=high][danger]:not([danger=false]):focus,nv-button[emphasis=high][danger]:not([danger=false]):focus-within{outline:none}nv-button[emphasis=high][danger]:not([danger=false]):focus-visible,nv-button[emphasis=high][danger]:not([danger=false]):has(:focus-visible){outline:calc(var(--focus-outline-stroke) * 1) solid var(--color-focus-destructive);outline-offset:calc(var(--focus-outline-offset) * 1)}nv-button[emphasis=medium]{background:var(--components-button-medium-background);border:1px solid var(--components-button-medium-border);color:var(--components-button-medium-text)}nv-button[emphasis=medium]:hover{background:var(--components-button-medium-background-hover);border:1px solid var(--components-button-medium-border);color:var(--components-button-medium-text-hover)}nv-button[emphasis=medium]:active{background:var(--components-button-medium-background-active);border:1px solid var(--components-button-medium-border-active);color:var(--components-button-medium-text-active)}nv-button[emphasis=medium]:focus,nv-button[emphasis=medium]:focus-within{outline:none}nv-button[emphasis=medium]:focus-visible,nv-button[emphasis=medium]:has(:focus-visible){outline:calc(var(--focus-outline-stroke) * 1) solid var(--color-focus-brand);outline-offset:calc(var(--focus-outline-offset) * 1)}nv-button[emphasis=medium]:disabled:not([disabled=false]){opacity:0.5;cursor:not-allowed;box-shadow:none}nv-button[emphasis=medium][active]:not([active=false]){background:var(--components-button-medium-background-active);border:1px solid var(--components-button-medium-border-active);color:var(--components-button-medium-text-active)}nv-button[emphasis=medium][danger]:not([danger=false]){background:var(--components-button-destructive-medium-background);border:1px solid var(--components-button-destructive-medium-border);color:var(--components-button-destructive-medium-text)}nv-button[emphasis=medium][danger]:not([danger=false]):hover{background:var(--components-button-destructive-medium-background-hover);border:1px solid var(--components-button-destructive-medium-border);color:var(--components-button-destructive-medium-text-hover)}nv-button[emphasis=medium][danger]:not([danger=false]):focus,nv-button[emphasis=medium][danger]:not([danger=false]):focus-within{outline:none}nv-button[emphasis=medium][danger]:not([danger=false]):focus-visible,nv-button[emphasis=medium][danger]:not([danger=false]):has(:focus-visible){outline:calc(var(--focus-outline-stroke) * 1) solid var(--color-focus-destructive);outline-offset:calc(var(--focus-outline-offset) * 1)}nv-button[emphasis=low]{background:var(--components-button-low-background);border:1px solid var(--components-button-low-border);color:var(--components-button-low-text)}nv-button[emphasis=low]:hover{background:var(--components-button-low-background-hover);border:1px solid var(--components-button-low-border);color:var(--components-button-low-text-hover)}nv-button[emphasis=low]:active{background:var(--components-button-low-background-active);border:1px solid var(--components-button-low-border-active);color:var(--components-button-low-text-active)}nv-button[emphasis=low]:focus,nv-button[emphasis=low]:focus-within{outline:none}nv-button[emphasis=low]:focus-visible,nv-button[emphasis=low]:has(:focus-visible){outline:calc(var(--focus-outline-stroke) * 1) solid var(--color-focus-brand);outline-offset:calc(var(--focus-outline-offset) * 1)}nv-button[emphasis=low]:disabled:not([disabled=false]){opacity:0.5;cursor:not-allowed;box-shadow:none}nv-button[emphasis=low][active]:not([active=false]){background:var(--components-button-low-background-active);border:1px solid var(--components-button-low-border-active);color:var(--components-button-low-text-active)}nv-button[emphasis=low][danger]:not([danger=false]){background:var(--components-button-destructive-low-background);border:1px solid var(--components-button-destructive-low-border);color:var(--components-button-destructive-low-text)}nv-button[emphasis=low][danger]:not([danger=false]):hover{background:var(--components-button-destructive-low-background-hover);border:1px solid var(--components-button-destructive-low-border);color:var(--components-button-destructive-low-text-hover)}nv-button[emphasis=low][danger]:not([danger=false]):focus,nv-button[emphasis=low][danger]:not([danger=false]):focus-within{outline:none}nv-button[emphasis=low][danger]:not([danger=false]):focus-visible,nv-button[emphasis=low][danger]:not([danger=false]):has(:focus-visible){outline:calc(var(--focus-outline-stroke) * 1) solid var(--color-focus-destructive);outline-offset:calc(var(--focus-outline-offset) * 1)}nv-button[emphasis=lower]{background:var(--components-button-lower-background);border:1px solid var(--components-button-lower-border);color:var(--components-button-lower-text)}nv-button[emphasis=lower]:hover{background:var(--components-button-lower-background-hover);border:1px solid var(--components-button-lower-border);color:var(--components-button-lower-text-hover)}nv-button[emphasis=lower]:active{background:var(--components-button-lower-background-active);border:1px solid var(--components-button-lower-border-active);color:var(--components-button-lower-text-active)}nv-button[emphasis=lower]:focus,nv-button[emphasis=lower]:focus-within{outline:none}nv-button[emphasis=lower]:focus-visible,nv-button[emphasis=lower]:has(:focus-visible){outline:calc(var(--focus-outline-stroke) * 1) solid var(--color-focus-brand);outline-offset:calc(var(--focus-outline-offset) * 1)}nv-button[emphasis=lower]:disabled:not([disabled=false]){opacity:0.5;cursor:not-allowed;box-shadow:none}nv-button[emphasis=lower][active]:not([active=false]){background:var(--components-button-lower-background-active);border:1px solid var(--components-button-lower-border-active);color:var(--components-button-lower-text-active)}nv-button[emphasis=lower][danger]:not([danger=false]){background:var(--components-button-destructive-lower-background);border:1px solid var(--components-button-destructive-lower-border);color:var(--components-button-destructive-lower-text)}nv-button[emphasis=lower][danger]:not([danger=false]):hover{background:var(--components-button-destructive-lower-background-hover);border:1px solid var(--components-button-destructive-lower-border);color:var(--components-button-destructive-lower-text-hover)}nv-button[emphasis=lower][danger]:not([danger=false]):focus,nv-button[emphasis=lower][danger]:not([danger=false]):focus-within{outline:none}nv-button[emphasis=lower][danger]:not([danger=false]):focus-visible,nv-button[emphasis=lower][danger]:not([danger=false]):has(:focus-visible){outline:calc(var(--focus-outline-stroke) * 1) solid var(--color-focus-destructive);outline-offset:calc(var(--focus-outline-offset) * 1)}nv-button[fluid]:not([fluid=false]){width:100%}nv-button[loading]:not([loading=false]) [slot=leading-icon]{display:none}";
9
- const NvButtonStyle0 = nvButtonCss;
10
-
11
- const NvButton = class {
12
- constructor(hostRef) {
13
- index.registerInstance(this, hostRef);
14
- if (hostRef.$hostElement$["s-ei"]) {
15
- this.internals = hostRef.$hostElement$["s-ei"];
16
- }
17
- else {
18
- this.internals = hostRef.$hostElement$.attachInternals();
19
- hostRef.$hostElement$["s-ei"] = this.internals;
20
- }
21
- /****************************************************************************/
22
- //#region PROPERTIES
23
- /**
24
- * Determines how large or small the button appears, allowing for
25
- * customization of the button's dimensions to fit different design
26
- * specifications and user needs.
27
- */
28
- this.size = 'md';
29
- /**
30
- * Adjusts the button's emphasis to make it more or less visually prominent
31
- * to users. Use this to draw attention to important actions or reduce focus
32
- * on less critical ones
33
- */
34
- this.emphasis = 'high';
35
- /**
36
- * Use this prop to highlight the button when it represents the current page
37
- * or active selection. This helps users understand their navigation context.
38
- */
39
- this.active = false;
40
- /**
41
- * Applies styling that visually indicates the button represents a dangerous
42
- * action.
43
- */
44
- this.danger = false;
45
- /**
46
- * Set this to true to show a spinner on the button, letting users know that
47
- * their action is being processed. It helps improve user experience by
48
- * indicating ongoing activities.
49
- */
50
- this.loading = false;
51
- /**
52
- * Disables the button, preventing user interaction.
53
- */
54
- this.disabled = false;
55
- /**
56
- * Allows the button to stretch and fill the entire width of its container.
57
- */
58
- this.fluid = false;
59
- /**
60
- * Sets the button type to control its function in forms. Use 'submit' to send
61
- * form data, 'reset' to clear the form, or 'button' for a standard button
62
- * that doesn't interact with form submission by default.
63
- */
64
- this.type = 'button';
65
- //#endregion PROPERTIES
66
- /****************************************************************************/
67
- //#region METHODS
68
- /**
69
- * Handles button click events, managing form actions and disabled states.
70
- * Prevents default behavior when button is disabled or loading, and
71
- * processes form submissions/resets when appropriate.
72
- * @param {Event} event - The click event.
73
- */
74
- this.handleButtonClick = (event) => {
75
- var _a;
76
- if (this.loading || this.disabled) {
77
- event.preventDefault();
78
- return;
79
- }
80
- if (this.type !== constants69bafca2.ButtonType.Button &&
81
- (this.form || ((_a = this.internals) === null || _a === void 0 ? void 0 : _a.form))) {
82
- this.processFormAction();
83
- }
84
- else if (this.form && this.type === constants69bafca2.ButtonType.Button) {
85
- console.warn('Button has a form id but is not of type submit or reset so no form action will be processed.', `Button:`, this.el);
86
- }
87
- };
88
- /**
89
- * Processes form-related actions by finding the associated form element
90
- * and triggering the appropriate action (submit/reset) based on button type.
91
- * Falls back to ElementInternals form if no explicit form ID is provided.
92
- */
93
- this.processFormAction = () => {
94
- var _a, _b;
95
- const formElement = this.form
96
- ? document.getElementById(this.form)
97
- : (_a = this.internals) === null || _a === void 0 ? void 0 : _a.form;
98
- if (!formElement) {
99
- console.warn('No form element found.', `Form ID: ${this.form || 'Not provided'}`, `Internals form:`, (_b = this.internals) === null || _b === void 0 ? void 0 : _b.form);
100
- return;
101
- }
102
- switch (this.type) {
103
- case constants69bafca2.ButtonType.Submit:
104
- formElement.requestSubmit();
105
- break;
106
- case constants69bafca2.ButtonType.Reset:
107
- formElement.reset();
108
- break;
109
- }
110
- };
111
- }
112
- //#endregion METHODS
113
- /****************************************************************************/
114
- //#region EVENTS
115
- handleKeyDown(event) {
116
- if (event.key === 'Enter' || event.key === ' ') {
117
- event.preventDefault();
118
- this.el.click();
119
- }
120
- }
121
- //#endregion EVENTS
122
- /****************************************************************************/
123
- //#region WATCHERS
124
- handleLoadingChange(loading) {
125
- this.loading = loading;
126
- this.disabled = loading;
127
- }
128
- handleDisabledChange(disabled) {
129
- if (this.loading) {
130
- this.disabled = this.loading;
131
- }
132
- else {
133
- this.disabled = disabled;
134
- }
135
- }
136
- //#endregion WATCHERS
137
- /****************************************************************************/
138
- //#region LIFECYCLE
139
- componentWillLoad() {
140
- if (this.loading) {
141
- this.disabled = this.loading;
142
- }
143
- }
144
- //#endregion LIFECYCLE
145
- /****************************************************************************/
146
- //#region RENDER
147
- render() {
148
- return (index.h(index.Host, { key: '42488f71ad33233c839cd70b3ea57aee50b143b3', role: "button", tabindex: "0", onClick: this.handleButtonClick }, this.loading && (index.h("nv-loader", { key: 'a30c71eebb8f0476bcca5acbc8e7ac7f6377740c', size: this.size === constants69bafca2.ButtonSize.Large ? 'sm' : 'xs' })), index.h("slot", { key: '4bbcee81ef7236ae35471c649971c122e4b468f3', name: "leading-icon" }), index.h("slot", { key: '82203f6aed911e61aef2438bba3b3e664ffb9f76' }), index.h("slot", { key: 'c97a5ce78c15556b8c1a91a4d06eb6bc9a9cd255', name: "trailing-icon" })));
149
- }
150
- static get formAssociated() { return true; }
151
- get el() { return index.getElement(this); }
152
- static get watchers() { return {
153
- "loading": ["handleLoadingChange"],
154
- "disabled": ["handleDisabledChange"]
155
- }; }
156
- };
157
- NvButton.style = NvButtonStyle0;
158
-
159
- exports.nv_button = NvButton;