@nova-design-system/nova-react 3.14.0 → 3.16.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 (67) hide show
  1. package/dist/cjs/{collapse.animation-acda1bf5-BuORVmQv.js → collapse.animation-6e0b08df-AHWzNGm_.js} +4 -1
  2. package/dist/cjs/{constants-d0f19e7b-s0SCO_vi.js → constants-69bafca2-DpB_ghPF.js} +9 -0
  3. package/dist/cjs/{fade.animation-eb454088-Bma0SpTf.js → fade.animation-9b939939-DV--bM4S.js} +2 -2
  4. package/dist/cjs/{index-CKAZvszR.js → index-7K7BV1CP.js} +4676 -1345
  5. package/dist/cjs/index.js +10 -2
  6. package/dist/cjs/{nv-accordion-item.entry-CjBcmF8t.js → nv-accordion-item.entry-C-9tYw-c.js} +6 -5
  7. package/dist/cjs/{nv-accordion.entry-CRk2Wvt3.js → nv-accordion.entry-BA3mTIdj.js} +7 -6
  8. package/dist/cjs/{nv-alert.entry-D5qB5xZg.js → nv-alert.entry-Bic-YGW1.js} +13 -12
  9. package/dist/cjs/nv-avatar.entry-C-yd0YlD.js +68 -0
  10. package/dist/cjs/{nv-badge_2.entry-BDuX1qOQ.js → nv-badge_2.entry-B_8yvNXL.js} +11 -10
  11. package/dist/cjs/{nv-breadcrumb.entry-BE9U6AF_.js → nv-breadcrumb.entry-BCTbG942.js} +3 -2
  12. package/dist/cjs/{nv-breadcrumbs.entry-DJXqtmMR.js → nv-breadcrumbs.entry-C9B5Baf7.js} +2 -1
  13. package/dist/cjs/nv-button.entry-DgX8Bwmq.js +165 -0
  14. package/dist/cjs/{nv-buttongroup.entry-C0Zc2lOi.js → nv-buttongroup.entry-CKhZN_Yf.js} +2 -1
  15. package/dist/cjs/{nv-calendar.entry-NbVLStMN.js → nv-calendar.entry-E6Pk83WA.js} +8 -7
  16. package/dist/cjs/{nv-col.entry-ahFf8a1Z.js → nv-col.entry-CkZpukX9.js} +2 -1
  17. package/dist/cjs/{nv-datagrid.entry-C-MJXEdi.js → nv-datagrid.entry-RsfP7vbC.js} +183 -15
  18. package/dist/cjs/{nv-datagridcolumn.entry-CxU7soW7.js → nv-datagridcolumn.entry-D4VrDWo9.js} +2 -1
  19. package/dist/cjs/{nv-dialog.entry-WlnaC-w2.js → nv-dialog.entry-BhtWpYHl.js} +34 -30
  20. package/dist/cjs/{nv-dialogfooter_2.entry-CEWmTnJc.js → nv-dialogfooter_2.entry-BXLYmzYl.js} +6 -5
  21. package/dist/cjs/{nv-fieldcheckbox.entry-BYhFVrYb.js → nv-fieldcheckbox.entry-D96Nm6DZ.js} +3 -2
  22. package/dist/cjs/{nv-fielddate.entry-DVVnRiOT.js → nv-fielddate.entry-ty37R9jF.js} +52 -26
  23. package/dist/cjs/{nv-fielddaterange.entry-Cb4X5Q-C.js → nv-fielddaterange.entry-BSIRu_mq.js} +69 -42
  24. package/dist/cjs/{nv-fielddropdown.entry-D2PKGkpx.js → nv-fielddropdown.entry-CUzvIoZZ.js} +34 -7
  25. package/dist/cjs/{nv-fielddropdownitem.entry-BqgMRnIc.js → nv-fielddropdownitem.entry-D-GTxLNk.js} +2 -1
  26. package/dist/cjs/{nv-fieldmultiselect.entry-Dzw4c9wO.js → nv-fieldmultiselect.entry-DFY2bf6s.js} +188 -156
  27. package/dist/cjs/{nv-fieldnumber.entry-Cm5g6tw7.js → nv-fieldnumber.entry-CILclJ7Q.js} +3 -2
  28. package/dist/cjs/{nv-fieldpassword.entry-BMI5M4RR.js → nv-fieldpassword.entry-CdR-NM8e.js} +3 -2
  29. package/dist/cjs/{nv-fieldradio.entry-BrCJvkMR.js → nv-fieldradio.entry-lC4scIvU.js} +3 -2
  30. package/dist/cjs/{nv-fieldselect.entry-Cz76Y4Fb.js → nv-fieldselect.entry-CYu6870F.js} +3 -2
  31. package/dist/cjs/{nv-fieldslider.entry-C2ynnMK8.js → nv-fieldslider.entry-DOuJAR6P.js} +3 -2
  32. package/dist/cjs/{nv-fieldtext.entry-B6ciu2fU.js → nv-fieldtext.entry-BFLUiPa4.js} +3 -2
  33. package/dist/cjs/{nv-fieldtextarea.entry-BL_gMvTp.js → nv-fieldtextarea.entry-BeI0k97G.js} +3 -2
  34. package/dist/cjs/{nv-fieldtime.entry-Be5fujXA.js → nv-fieldtime.entry-C28EAKki.js} +82 -68
  35. package/dist/cjs/nv-icon.entry-BXgjUpe_.js +80 -0
  36. package/dist/cjs/{nv-iconbutton_2.entry-Dlk96yHi.js → nv-iconbutton_2.entry-CpIkxrp9.js} +3 -2
  37. package/dist/cjs/{nv-menu.entry-CDn1Tk9J.js → nv-menu.entry-as-NOsF-.js} +25 -9
  38. package/dist/cjs/{nv-menuitem.entry-DIkQnha9.js → nv-menuitem.entry-D8KAh6nr.js} +2 -1
  39. package/dist/cjs/nv-notification.entry-C-_jV-DL.js +262 -0
  40. package/dist/cjs/nv-notificationcontainer.entry-CMn42loT.js +41 -0
  41. package/dist/cjs/{nv-popover.entry-Bz9ZWGlN.js → nv-popover.entry--BhEBSir.js} +72 -65
  42. package/dist/cjs/{nv-row.entry-iJGXINmZ.js → nv-row.entry-BxhcK9aY.js} +3 -2
  43. package/dist/cjs/{nv-stack.entry-CifEjR2g.js → nv-stack.entry-C3DF9jJZ.js} +3 -2
  44. package/dist/cjs/nv-table.entry-pfEGt2KH.js +245 -0
  45. package/dist/cjs/nv-toggle.entry-ChpqtQtn.js +80 -0
  46. package/dist/cjs/{nv-togglebutton.entry-X4eLeP-C.js → nv-togglebutton.entry-DE7CKmeN.js} +3 -2
  47. package/dist/cjs/{nv-togglebuttongroup.entry-BYO58vql.js → nv-togglebuttongroup.entry-BJPjdmHD.js} +3 -2
  48. package/dist/cjs/{nv-tooltip.entry-DaxjQSt1.js → nv-tooltip.entry-D9-Fga6C.js} +3 -2
  49. package/dist/components/NvDatatable.js +45 -0
  50. package/dist/generated/components.js +10 -10
  51. package/dist/generated/components.server.js +9 -17
  52. package/dist/index.js +2 -0
  53. package/dist/providers/NotificationProvider.js +83 -0
  54. package/dist/types/components/NvDatatable.d.ts +25 -0
  55. package/dist/types/generated/components.d.ts +5 -12
  56. package/dist/types/generated/components.server.d.ts +5 -12
  57. package/dist/types/index.d.ts +2 -0
  58. package/dist/types/providers/NotificationProvider.d.ts +36 -0
  59. package/package.json +7 -3
  60. package/dist/cjs/dom.utils-ac71e0ef-CmIwRr6O.js +0 -168
  61. package/dist/cjs/nv-avatar.entry-CuNYdZl_.js +0 -67
  62. package/dist/cjs/nv-button.entry-CF5IDcG3.js +0 -164
  63. package/dist/cjs/nv-icon.entry-C-wbfOy3.js +0 -79
  64. package/dist/cjs/nv-notification.entry-BiwnZCkF.js +0 -178
  65. package/dist/cjs/nv-table.entry-Dxg0j3fe.js +0 -338
  66. package/dist/cjs/nv-tablecolumn.entry--29MFEe9.js +0 -18
  67. package/dist/cjs/nv-toggle.entry-D0eQoEqf.js +0 -79
@@ -1,8 +1,9 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-CKAZvszR.js');
3
+ var index = require('./index-7K7BV1CP.js');
4
4
  var clsx297c1ffe = require('./clsx-297c1ffe-BtxeOLZW.js');
5
5
  require('react');
6
+ require('react-dom');
6
7
 
7
8
  const nvStackCss = "nv-stack{display:flex;align-items:center;justify-content:flex-start;flex-direction:row}nv-stack nv-col{display:flex}nv-stack:not(nv-row){flex-wrap:nowrap}nv-stack>.nv-stack-item-flex{flex-shrink:1;flex-grow:1}nv-stack>.nv-stack-item-lead{margin-right:auto}nv-stack>.nv-stack-item-lead+*{margin-left:0}nv-stack>.nv-stack-item-center{margin-right:auto;margin-left:auto}nv-stack>.nv-stack-item-tail{margin-left:auto}nv-stack>.nv-stack-nowrap{white-space:nowrap}nv-stack.nv-stack-vertical{align-items:stretch;flex-direction:column}nv-stack.nv-stack-vertical>.nv-stack-item-lead{margin-right:0;margin-bottom:auto}nv-stack.nv-stack-vertical>.nv-stack-item-lead+*{margin-top:0}nv-stack.nv-stack-vertical>.nv-stack-item-tail{margin-left:0;margin-top:auto}nv-stack.nv-stack-vertical>.nv-stack-item-center{margin:auto 0}nv-stack.nv-stack-flex>*{flex-shrink:1;flex-grow:1}nv-stack.nv-stack-fill>*{height:100%}nv-stack.nv-stack-fill.nv-stack-vertical>*{height:auto;width:100%}";
8
9
  const NvStackStyle0 = nvStackCss;
@@ -22,7 +23,7 @@ const NvStack = class {
22
23
  /****************************************************************************/
23
24
  //#region RENDER
24
25
  render() {
25
- return (index.h(index.Host, { key: '66123f22ad4a6ebefe8663c795274eb900d2c178', class: clsx297c1ffe.clsx(this.fill && 'nv-stack-fill', this.flex && 'nv-stack-flex', this.full && 'w-full', this.gutter && !this.vertical && `gap-x-${this.gutter}`, this.gutter && this.vertical && `gap-y-${this.gutter}`, this.vertical && 'nv-stack-vertical') }, index.h("slot", { key: '7b3d395c3490664f0e2f337a04f69cc717ed6c0e' })));
26
+ return (index.h(index.Host, { key: '8f771805224c769b5a87f5c550ddbcb8f888d002', class: clsx297c1ffe.clsx(this.fill && 'nv-stack-fill', this.flex && 'nv-stack-flex', this.full && 'w-full', this.gutter && !this.vertical && `gap-x-${this.gutter}`, this.gutter && this.vertical && `gap-y-${this.gutter}`, this.vertical && 'nv-stack-vertical') }, index.h("slot", { key: '6fcd46cfd74415d2f07c762b065e3aa0f0194764' })));
26
27
  }
27
28
  };
28
29
  NvStack.style = NvStackStyle0;
@@ -0,0 +1,245 @@
1
+ 'use strict';
2
+
3
+ var index = require('./index-7K7BV1CP.js');
4
+ require('react');
5
+ require('react-dom');
6
+
7
+ /**
8
+ * Table utility functions and constants for nv-table component
9
+ *
10
+ * This module contains pure utility functions for table column resizing logic,
11
+ * pointer event handling calculations, and related helper functions.
12
+ */
13
+ /**
14
+ * Constants for table column resizing behavior
15
+ */
16
+ const TABLE_CONSTANTS = Object.freeze({
17
+ /** Handle width for fine pointers (mouse) in pixels */
18
+ HANDLE_W: 12,
19
+ /** Handle width for coarse pointers (touch) in pixels */
20
+ HANDLE_W_TOUCH: 24,
21
+ /** Minimum column width in pixels */
22
+ MIN_W: 40,
23
+ });
24
+ /**
25
+ * Determines the appropriate handle width based on the current pointer type
26
+ * @returns {number} Handle width in pixels (10px for fine pointers, 24px for coarse/touch)
27
+ */
28
+ function getHandleWidthForCurrentPointer() {
29
+ // Match the CSS media query: wider handle on coarse pointers (touch)
30
+ return matchMedia('(pointer: coarse)').matches
31
+ ? TABLE_CONSTANTS.HANDLE_W_TOUCH
32
+ : TABLE_CONSTANTS.HANDLE_W;
33
+ }
34
+ /**
35
+ * Calculates the pointer's horizontal offset within a table cell
36
+ * @param {PointerEvent} event - The pointer event
37
+ * @param {HTMLTableCellElement} cell - The table cell element
38
+ * @returns {number} The horizontal offset from the left edge of the cell
39
+ */
40
+ function getPointerOffsetInCell(event, cell) {
41
+ const rect = cell.getBoundingClientRect();
42
+ return event.clientX - rect.left;
43
+ }
44
+ /**
45
+ * Determines if the pointer is within the resize handle area of a table cell
46
+ * @param {number} offsetX - Horizontal offset within the cell
47
+ * @param {number} cellWidth - Total width of the cell
48
+ * @param {number} handleWidth - Width of the resize handle area
49
+ * @returns {boolean} True if the pointer is in the resize handle area
50
+ */
51
+ function isInResizeHandle(offsetX, cellWidth, handleWidth) {
52
+ return offsetX >= cellWidth - handleWidth;
53
+ }
54
+ /**
55
+ * Calculates the new column width based on resize delta and constraints
56
+ * @param {number} startWidth - Original width of the column
57
+ * @param {number} delta - Change in pixels from the start position
58
+ * @param {number} minWidth - Minimum allowed width for the column
59
+ * @returns {number} The calculated new width, constrained by minimum
60
+ */
61
+ function calculateNewWidth(startWidth, delta, minWidth = TABLE_CONSTANTS.MIN_W) {
62
+ return Math.max(minWidth, startWidth + delta);
63
+ }
64
+ /**
65
+ * Validates that a table cell element is suitable for resizing
66
+ * @param {HTMLElement | null} element - The element to check
67
+ * @returns {element is HTMLTableCellElement} Type guard for table cell elements
68
+ */
69
+ function isValidTableCell(element) {
70
+ return (element === null || element === void 0 ? void 0 : element.tagName) === 'TH' || (element === null || element === void 0 ? void 0 : element.tagName) === 'TD';
71
+ }
72
+ /**
73
+ * Finds the closest table cell element from an event target
74
+ * @param {EventTarget | null} target - The event target
75
+ * @returns {HTMLTableCellElement | null} The closest table cell or null
76
+ */
77
+ function getClosestTableCell(target) {
78
+ if (!(target instanceof HTMLElement))
79
+ return null;
80
+ const cell = target.closest('th, td');
81
+ return isValidTableCell(cell) ? cell : null;
82
+ }
83
+ /**
84
+ * Sets up pointer capture for consistent drag behavior across browsers
85
+ * @param {HTMLTableCellElement} cell - The table cell element
86
+ * @param {number} pointerId - The pointer ID from the pointer event
87
+ * @returns {boolean} True if capture was successfully set
88
+ */
89
+ function setPointerCapture(cell, pointerId) {
90
+ var _a;
91
+ try {
92
+ (_a = cell.setPointerCapture) === null || _a === void 0 ? void 0 : _a.call(cell, pointerId);
93
+ return true;
94
+ }
95
+ catch (_b) {
96
+ return false;
97
+ }
98
+ }
99
+ /**
100
+ * Releases pointer capture
101
+ * @param {HTMLTableCellElement} cell - The table cell element
102
+ * @param {number} pointerId - The pointer ID from the pointer event
103
+ * @returns {boolean} True if release was successful
104
+ */
105
+ function releasePointerCapture(cell, pointerId) {
106
+ var _a;
107
+ try {
108
+ (_a = cell.releasePointerCapture) === null || _a === void 0 ? void 0 : _a.call(cell, pointerId);
109
+ return true;
110
+ }
111
+ catch (_b) {
112
+ return false;
113
+ }
114
+ }
115
+ /**
116
+ * Prevents text selection during drag operations
117
+ * @param {boolean} prevent - Whether to prevent selection
118
+ */
119
+ function setUserSelectPrevention(prevent) {
120
+ document.body.style.userSelect = prevent ? 'none' : '';
121
+ }
122
+ /**
123
+ * Gets the current width of a table cell element
124
+ * @param {HTMLTableCellElement} cell - The table cell element
125
+ * @returns {number} The current width in pixels
126
+ */
127
+ function getCellWidth(cell) {
128
+ return cell.offsetWidth;
129
+ }
130
+ /**
131
+ * Applies a width to a table cell element
132
+ * @param {HTMLTableCellElement} cell - The table cell element
133
+ * @param {number} width - The width to apply in pixels
134
+ */
135
+ function setCellWidth(cell, width) {
136
+ cell.style.width = `${width}px`;
137
+ }
138
+ /**
139
+ * Calculates the delta (change) in horizontal position between two pointer events
140
+ * @param {number} currentX - Current clientX position
141
+ * @param {number} startX - Starting clientX position
142
+ * @returns {number} The horizontal delta
143
+ */
144
+ function calculatePointerDelta(currentX, startX) {
145
+ return currentX - startX;
146
+ }
147
+ /**
148
+ * Creates a new resize state object
149
+ * @param {HTMLTableCellElement} cell - The cell being resized
150
+ * @param {PointerEvent} event - The initiating pointer event
151
+ * @returns {ResizeState} A new resize state object
152
+ */
153
+ function createResizeState(cell, event) {
154
+ return {
155
+ resizingCell: cell,
156
+ pointerId: event.pointerId,
157
+ startX: event.clientX,
158
+ startWidth: getCellWidth(cell),
159
+ };
160
+ }
161
+ /**
162
+ * Validates that a resize state is active and matches the given pointer event
163
+ * @param {ResizeState | null} state - The current resize state
164
+ * @param {PointerEvent} event - The pointer event to validate against
165
+ * @returns {boolean} True if the state is valid for this event
166
+ */
167
+ function isValidResizeState(state, event) {
168
+ return state !== null && state.pointerId === event.pointerId;
169
+ }
170
+ /**
171
+ * Updates the width of a cell during a resize operation
172
+ * @param {ResizeState} state - The current resize state
173
+ * @param {PointerEvent} event - The current pointer event
174
+ * @param {number} minWidth - Minimum width constraint
175
+ */
176
+ function updateCellWidthFromResize(state, event, minWidth = TABLE_CONSTANTS.MIN_W) {
177
+ const delta = calculatePointerDelta(event.clientX, state.startX);
178
+ const newWidth = calculateNewWidth(state.startWidth, delta, minWidth);
179
+ setCellWidth(state.resizingCell, newWidth);
180
+ }
181
+
182
+ const nvTableCss = "nv-table table{border-collapse:separate;border-spacing:0;table-layout:fixed;width:max-content;min-width:100%;background:var(--color-level-00-background)}nv-table table thead{background:var(--components-datagrid-header-background)}nv-table table tbody tr:hover td{background:var(--components-datagrid-body-background-hover)}nv-table table tbody tr[data-selected]{background:var(--components-datagrid-body-background-active)}nv-table table td{height:var(--spacing-16);padding:var(--datagrid-cell-body-padding-y) var(--datagrid-cell-body-padding-x) var(--spacing-2) var(--datagrid-cell-body-padding-x);font-size:var(--font-size-md);font-style:normal;font-weight:var(--font-weight-low-emphasis);line-height:var(--line-height-base);background:var(--components-datagrid-body-background-default);border-bottom:1px solid var(--components-datagrid-body-border)}nv-table table th{position:relative;text-align:left;padding:var(--datagrid-cell-header-padding-y) var(--datagrid-cell-header-padding-right) var(--datagrid-cell-header-padding-y) var(--datagrid-cell-header-padding-x);padding-right:calc(var(--datagrid-cell-header-padding-right) + 12px);color:var(--color-content-low-text);font-variant-numeric:lining-nums tabular-nums slashed-zero;font-size:var(--font-size-md);font-style:normal;font-weight:var(--font-weight-high-emphasis);line-height:var(--line-height-base);min-width:40px;border-bottom:1px solid var(--components-datagrid-header-border);background:var(--components-datagrid-header-background)}nv-table table th::after{content:\"\";position:absolute;top:0;right:0;width:12px;height:50%;transform:translateY(50%);cursor:col-resize;background:linear-gradient(90deg, transparent 0%, transparent calc(50% - 1px), var(--components-datagrid-header-border), calc(50% - 1px), var(--components-datagrid-header-border) calc(50% + 1px), transparent calc(50% + 1px), transparent 100%);opacity:0;transition:opacity 0.05s ease-in-out}nv-table table th[data-grow]{width:unset}nv-table table th:hover::after{opacity:1}nv-table table th[data-no-resize]::after{display:none}nv-table [data-sticky-left]{position:sticky;z-index:1;background:var(--color-level-00-background);left:0;top:0}nv-table [data-sticky-right]{position:sticky;z-index:1;background:var(--color-level-00-background);right:0;top:0}nv-table [data-sticky-top] th{position:sticky;z-index:1;background:var(--color-level-00-background);top:0}";
183
+ const NvTableStyle0 = nvTableCss;
184
+
185
+ const NvTable = class {
186
+ constructor(hostRef) {
187
+ index.registerInstance(this, hostRef);
188
+ this.resizeState = null;
189
+ }
190
+ /****************************************************************************/
191
+ //#region PROPERTIES
192
+ //#endregion PROPERTIES
193
+ /****************************************************************************/
194
+ //#region METHODS
195
+ //#endregion METHODS
196
+ /****************************************************************************/
197
+ //#region LISTENERS
198
+ onPointerDown(ev) {
199
+ const th = getClosestTableCell(ev.target);
200
+ if (!th)
201
+ return;
202
+ // Skip resize if the cell has data-no-resize attribute
203
+ if (th.hasAttribute('data-no-resize'))
204
+ return;
205
+ const offsetX = getPointerOffsetInCell(ev, th);
206
+ const handleWidth = getHandleWidthForCurrentPointer();
207
+ const cellWidth = getCellWidth(th);
208
+ // Start only if we're in the resize handle area
209
+ if (!isInResizeHandle(offsetX, cellWidth, handleWidth))
210
+ return;
211
+ this.resizeState = createResizeState(th, ev);
212
+ // Capture so move/up still fire even if the finger leaves the th
213
+ setPointerCapture(th, ev.pointerId);
214
+ // Prevent scrolling/selection during drag
215
+ setUserSelectPrevention(true);
216
+ }
217
+ onPointerMove(ev) {
218
+ if (!isValidResizeState(this.resizeState, ev))
219
+ return;
220
+ updateCellWidthFromResize(this.resizeState, ev, TABLE_CONSTANTS.MIN_W);
221
+ }
222
+ onPointerUp(ev) {
223
+ if (!isValidResizeState(this.resizeState, ev))
224
+ return;
225
+ releasePointerCapture(this.resizeState.resizingCell, this.resizeState.pointerId);
226
+ this.resizeState = null;
227
+ setUserSelectPrevention(false);
228
+ }
229
+ //#endregion LISTENERS
230
+ /****************************************************************************/
231
+ //#region LIFECYCLE
232
+ //#endregion LIFECYCLE
233
+ /****************************************************************************/
234
+ //#region EVENTS
235
+ //#endregion EVENTS
236
+ /****************************************************************************/
237
+ //#region RENDER
238
+ render() {
239
+ return (index.h(index.Host, { key: 'b63510e2da93a1b98eb3813ba7ac9bed97b81c1f' }, index.h("slot", { key: '14fb76c397db4da5dfba94bce599d1e4d8992a6b' })));
240
+ }
241
+ get host() { return index.getElement(this); }
242
+ };
243
+ NvTable.style = NvTableStyle0;
244
+
245
+ exports.nv_table = NvTable;
@@ -0,0 +1,80 @@
1
+ 'use strict';
2
+
3
+ var index = require('./index-7K7BV1CP.js');
4
+ var clsx297c1ffe = require('./clsx-297c1ffe-BtxeOLZW.js');
5
+ var v4A79185f4 = require('./v4-a79185f4-2n0dOd_Y.js');
6
+ require('react');
7
+ require('react-dom');
8
+
9
+ const nvToggleCss = "nv-toggle{display:inline-flex;align-items:flex-start;gap:var(--form-gap-x);position:relative}nv-toggle:not([disabled],[readonly]) input,nv-toggle:not([disabled],[readonly]) label{cursor:pointer}nv-toggle.label-placement-before{flex-direction:row-reverse}nv-toggle[disabled]{opacity:0.5}nv-toggle label{align-self:stretch;color:var(--components-form-text-label-default);font-family:var(--font-family-default), var(--font-family-fallback), sans-serif;font-size:var(--form-label-font-size);font-style:normal;font-weight:var(--font-weight-medium-emphasis);line-height:var(--form-label-line-height)}nv-toggle label.visually-hidden{position:absolute;padding:0;border:0;overflow:hidden;white-space:nowrap;width:1px;height:1px;margin:-1px;clip:rect(0, 0, 0, 0)}nv-toggle .input-container{position:relative;color:var(--components-form-shape-foreground-default)}nv-toggle .input-container:has(input[type=checkbox]:disabled:not([readonly])){color:var(--components-form-shape-foreground-disabled)}nv-toggle .input-container input[type=checkbox]{appearance:none;position:relative;display:flex;width:var(--form-toggle-width);height:var(--form-toggle-height);flex-direction:column;align-items:flex-start;border-radius:var(--form-toggle-radius);border-width:var(--form-toggle-border-width);border-style:solid;border-color:var(--components-toggle-border-default);background:var(--components-toggle-background-default)}nv-toggle .input-container input[type=checkbox]::after{content:\"\";display:block;width:var(--form-toggle-switch-dot-default);height:var(--form-toggle-switch-dot-default);background-color:var(--components-toggle-shape-default);border-radius:var(--radius-rounded-full);position:absolute;top:50%;left:25%;transform:translate(-50%, -50%)}nv-toggle .input-container input[type=checkbox]:hover{border-color:var(--components-toggle-border-hover)}nv-toggle .input-container input[type=checkbox]:hover::after{background-color:var(--components-toggle-shape-hover)}nv-toggle .input-container input[type=checkbox]:focus{border-color:var(--components-toggle-border-default)}nv-toggle .input-container input[type=checkbox]:focus::after{background-color:var(--components-toggle-shape-default)}nv-toggle .input-container input[type=checkbox]:focus,nv-toggle .input-container input[type=checkbox]:focus-within{outline:none}nv-toggle .input-container input[type=checkbox]:focus-visible,nv-toggle .input-container input[type=checkbox]:has(:focus-visible){outline:calc(var(--focus-outline-stroke) * 1) solid var(--color-focus-brand);outline-offset:calc(var(--focus-outline-offset) * 1)}nv-toggle .input-container input[type=checkbox]:checked{background:var(--components-toggle-background-default-checked);border-color:var(--components-toggle-border-default-checked)}nv-toggle .input-container input[type=checkbox]:checked::after{content:\"\";display:block;width:var(--form-toggle-switch-dot-default);height:var(--form-toggle-switch-dot-default);background-color:var(--components-toggle-shape-default-checked);border-radius:var(--radius-rounded-full);position:absolute;top:50%;left:75%;transform:translate(-50%, -50%)}nv-toggle .input-container input[type=checkbox]:checked:focus{background:var(--components-toggle-background-default-checked);border-color:var(--components-toggle-border-default-checked)}nv-toggle .input-container input[type=checkbox]:disabled:not([readonly]){box-shadow:unset;background:var(--components-toggle-background-disabled);border-color:var(--components-toggle-border-default)}nv-toggle .input-container input[type=checkbox]:disabled:not([readonly]):checked{background:var(--components-toggle-background-disabled-checked);border-color:var(--components-toggle-border-disabled-checked)}nv-toggle .input-container input[type=checkbox]:disabled:not([readonly]):checked::after{background-color:var(--components-toggle-shape-disabled-checked)}nv-toggle .description{align-self:stretch;color:var(--components-form-text-description-default);font-family:var(--font-family-default), var(--font-family-fallback), sans-serif;font-size:var(--form-description-font-size);font-style:normal;font-weight:450;line-height:var(--form-description-line-height)}nv-toggle .text-container{display:flex;flex-direction:column;align-items:flex-start;flex:1 0 0}";
10
+ const NvToggleStyle0 = nvToggleCss;
11
+
12
+ const NvToggle = class {
13
+ constructor(hostRef) {
14
+ index.registerInstance(this, hostRef);
15
+ this.checkedChanged = index.createEvent(this, "checkedChanged");
16
+ /****************************************************************************/
17
+ //#region PROPERTIES
18
+ /**
19
+ * Sets the ID for the radio button’s input element and the for attribute of
20
+ * the associated label. If no ID is provided, a random one will be
21
+ * automatically generated to ensure unique identification, facilitating
22
+ * proper label association and accessibility.
23
+ */
24
+ this.inputId = v4A79185f4.v4();
25
+ /**
26
+ * Hides the label visually while still keeping it available for screen
27
+ * readers.
28
+ */
29
+ this.hideLabel = false;
30
+ /** Indicates whether the toggle is checked or not. */
31
+ this.checked = false;
32
+ /** Disables the toggle, preventing user interaction. */
33
+ this.disabled = false;
34
+ /**
35
+ * Sets the toggle to read-only, preventing user changes but still allowing
36
+ * focus and selection of text.
37
+ */
38
+ this.readonly = false;
39
+ }
40
+ //#endregion EVENTS
41
+ /****************************************************************************/
42
+ //#region WATCHERS
43
+ /**
44
+ * Watches for changes to the checked state and emits the new value.
45
+ * @param {boolean} checked - The new value of the checked state.
46
+ */
47
+ onCheckedChanged(checked) {
48
+ this.checkedChanged.emit(checked);
49
+ }
50
+ /**
51
+ * Listens for the change event on the toggle input element and updates the checked state.
52
+ * the checked state of the host elements.
53
+ * @param {Event} event - The change event.
54
+ */
55
+ handleChange(event) {
56
+ const target = event.target;
57
+ if (target.type === 'checkbox' && target.id === this.inputId) {
58
+ if (this.readonly || this.disabled) {
59
+ event.preventDefault();
60
+ return;
61
+ }
62
+ this.checked = target.checked;
63
+ }
64
+ }
65
+ //#endregion WATCHERS
66
+ /****************************************************************************/
67
+ //#region RENDER
68
+ render() {
69
+ return (index.h(index.Host, { key: '65222149af4edb9f8fd2da7efe9a01e15dec4722', class: clsx297c1ffe.clsx(this.labelPlacement === 'before' && 'label-placement-before') }, index.h("div", { key: '7edd5587281b5610269f1ac09826ce379abfae24', class: "input-container" }, index.h("input", { key: '30d3db3cbdc263259a5ba1bf8e637225c4db3b4a', type: "checkbox", id: this.inputId, name: this.name, autocomplete: "off", value: this.value, checked: Boolean(this.checked), disabled: this.disabled || this.readonly, readonly: this.readonly })), index.h("div", { key: 'a8a6d3c2774560b7d43cda75882d90cc564f4c54', class: "text-container" }, (this.label || this.el.querySelector('[slot="label"]')) && (index.h("label", { key: 'fe980a07df4901081fda42df758236da0b8a11d0', htmlFor: this.inputId, class: clsx297c1ffe.clsx(this.hideLabel && 'visually-hidden') }, index.h("slot", { key: '723cec5914c6c0bed7e14e61e2f64e83c8e8b7b8', name: "label" }, this.label))), (this.description ||
70
+ this.el.querySelector('[slot="description"]')) && (index.h("div", { key: 'f811065ed06f0816d8f0f1f65d4c659cbde3f683', class: "description" }, index.h("slot", { key: '541946e3f33a315bf667999c30a44fd93fc5f07f', name: "description" }, this.description))))));
71
+ }
72
+ static get formAssociated() { return true; }
73
+ get el() { return index.getElement(this); }
74
+ static get watchers() { return {
75
+ "checked": ["onCheckedChanged"]
76
+ }; }
77
+ };
78
+ NvToggle.style = NvToggleStyle0;
79
+
80
+ exports.nv_toggle = NvToggle;
@@ -1,7 +1,8 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-CKAZvszR.js');
3
+ var index = require('./index-7K7BV1CP.js');
4
4
  require('react');
5
+ require('react-dom');
5
6
 
6
7
  const nvTogglebuttonCss = "nv-togglebutton{display:inline-flex;justify-content:center;align-items:center}nv-togglebutton:focus-visible,nv-togglebutton:has(:focus-visible){z-index:1}nv-togglebutton[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);padding-top:calc(var(--togglegroup-xs-button-padding-y) - 1px);padding-bottom:calc(var(--togglegroup-xs-button-padding-y) - 1px);border-radius:calc(var(--togglegroup-xs-button-radius));border-width:0}nv-togglebutton[size=xs] nv-icon>svg{width:var(--spacing-3);height:var(--spacing-3);stroke-width:1.2px}nv-togglebutton[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);padding-top:calc(var(--togglegroup-sm-button-padding-y) - 1px);padding-bottom:calc(var(--togglegroup-sm-button-padding-y) - 1px);border-radius:calc(var(--togglegroup-sm-button-radius));border-width:0}nv-togglebutton[size=sm] nv-icon>svg{width:var(--spacing-4);height:var(--spacing-4);stroke-width:1.5px}nv-togglebutton[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);padding-top:calc(var(--togglegroup-md-button-padding-y) - 1px);padding-bottom:calc(var(--togglegroup-md-button-padding-y) - 1px);border-radius:calc(var(--togglegroup-md-button-radius));border-width:0}nv-togglebutton[size=md] nv-icon>svg{width:var(--spacing-5);height:var(--spacing-5);stroke-width:1.6px}nv-togglebutton[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);padding-top:calc(var(--togglegroup-lg-button-padding-y) - 1px);padding-bottom:calc(var(--togglegroup-lg-button-padding-y) - 1px);border-radius:calc(var(--togglegroup-lg-button-radius));border-width:0}nv-togglebutton[size=lg] nv-icon>svg{width:var(--spacing-6);height:var(--spacing-6);stroke-width:1.8px}nv-togglebutton[emphasis=high]{background:var(--components-button-low-background);border:1px solid var(--components-button-low-border);color:var(--components-button-low-text)}nv-togglebutton[emphasis=high]:hover{background:var(--components-button-low-background-hover);border:1px solid var(--components-button-low-border);color:var(--components-button-low-text-hover)}nv-togglebutton[emphasis=high]: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-togglebutton[emphasis=high]:focus,nv-togglebutton[emphasis=high]:focus-within{outline:none}nv-togglebutton[emphasis=high]:focus-visible,nv-togglebutton[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-togglebutton[emphasis=high]:disabled:not([disabled=false]){opacity:0.5;cursor:not-allowed;box-shadow:none}nv-togglebutton[emphasis=high][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-togglebutton[emphasis=low]{background:var(--components-button-lower-background);border:1px solid var(--components-button-lower-border);color:var(--components-button-lower-text)}nv-togglebutton[emphasis=low]:hover{background:var(--components-button-lower-background-hover);border:1px solid var(--components-button-lower-border);color:var(--components-button-lower-text-hover)}nv-togglebutton[emphasis=low]: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-togglebutton[emphasis=low]:focus,nv-togglebutton[emphasis=low]:focus-within{outline:none}nv-togglebutton[emphasis=low]:focus-visible,nv-togglebutton[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-togglebutton[emphasis=low]:disabled:not([disabled=false]){opacity:0.5;cursor:not-allowed;box-shadow:none}nv-togglebutton[emphasis=low][active]:not([active=false]),nv-togglebutton[emphasis=low]:active{background:var(--components-button-lower-background-hover);border:1px solid var(--components-button-lower-border);color:var(--components-button-lower-text-hover)}";
7
8
  const NvTogglebuttonStyle0 = nvTogglebuttonCss;
@@ -47,7 +48,7 @@ const NvTogglebutton = class {
47
48
  /****************************************************************************/
48
49
  //#region RENDER
49
50
  render() {
50
- return (index.h(index.Host, { key: 'cb15a84c7e7cc27a80773613f31b98168eee8475', role: "button", tabindex: "0", "aria-pressed": String(this.active), onClick: this.handleClick }, index.h("slot", { key: '32d6b9394088d88c4671fb7809ad6aa85b240fff' })));
51
+ return (index.h(index.Host, { key: 'c4b698b1fb80f0dcca5d7a77bc20d22db1cbf538', role: "button", tabindex: "0", "aria-pressed": String(this.active), onClick: this.handleClick }, index.h("slot", { key: '605385f07f32b989685983cfd1a082525741fba4' })));
51
52
  }
52
53
  };
53
54
  NvTogglebutton.style = NvTogglebuttonStyle0;
@@ -1,7 +1,8 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-CKAZvszR.js');
3
+ var index = require('./index-7K7BV1CP.js');
4
4
  require('react');
5
+ require('react-dom');
5
6
 
6
7
  const nvTogglebuttongroupCss = "nv-togglebuttongroup{display:flex;gap:var(--togglegroup-lg-gap);border-radius:var(--togglegroup-lg-radius);width:fit-content;padding:var(--togglegroup-lg-gap)}nv-togglebuttongroup[emphasis=high]{border:1px solid var(--components-togglegroup-high-border)}nv-togglebuttongroup[emphasis=low]{border:1px solid var(--components-togglegroup-low-border)}nv-togglebuttongroup[size=xs]{padding:calc(var(--togglegroup-xs-padding) - 1px);gap:var(--togglegroup-xs-gap);border-radius:var(--togglegroup-xs-radius)}nv-togglebuttongroup[size=sm]{padding:calc(var(--togglegroup-sm-padding) - 1px);gap:var(--togglegroup-sm-gap);border-radius:var(--togglegroup-sm-radius)}nv-togglebuttongroup[size=md]{padding:calc(var(--togglegroup-md-padding) - 1px);gap:var(--togglegroup-md-gap);border-radius:var(--togglegroup-md-radius)}nv-togglebuttongroup[size=lg]{padding:calc(var(--togglegroup-lg-padding) - 1px);gap:var(--togglegroup-lg-gap);border-radius:var(--togglegroup-lg-radius)}";
7
8
  const NvTogglebuttongroupStyle0 = nvTogglebuttongroupCss;
@@ -155,7 +156,7 @@ const NvTogglebuttongroup = class {
155
156
  /****************************************************************************/
156
157
  //#region RENDER
157
158
  render() {
158
- return (index.h(index.Host, { key: 'ce185699fabd71bb5c22e5a0d73df88067acb9d6' }, index.h("slot", { key: 'a1e375fb1e8660f3fdb75d96f18db20735a3a64d' })));
159
+ return (index.h(index.Host, { key: 'ab91ff1817e3388508ed1da7a9ed57a79cf8c4bc' }, index.h("slot", { key: '4a3280db78c1f0cd120a0cb32d95eabaf69995a6' })));
159
160
  }
160
161
  get el() { return index.getElement(this); }
161
162
  static get watchers() { return {
@@ -1,7 +1,8 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-CKAZvszR.js');
3
+ var index = require('./index-7K7BV1CP.js');
4
4
  require('react');
5
+ require('react-dom');
5
6
 
6
7
  const nvTooltipCss = "nv-tooltip{display:inline-block;position:relative;user-select:none}nv-tooltip:has([fluid]:not([fluid=false])){display:block}nv-tooltip nv-popover>[data-scope=popover]{background:var(--components-tooltip-background);color:var(--components-tooltip-text);font-weight:var(--font-weight-medium-emphasis);padding:var(--tooltip-padding-y) var(--tooltip-padding-x);font-size:var(--tooltip-font-size);border-radius:var(--tooltip-radius);border:none;box-shadow:0px var(--shadow-y-axis-lg-1) var(--shadow-blur-lg-1) var(--shadow-spread-lg-1) var(--shadow-color-opacity-1), 0px var(--shadow-y-axis-lg-2) var(--shadow-blur-lg-2) var(--shadow-spread-lg-2) var(--shadow-color-opacity-2)}nv-tooltip nv-popover>[data-scope=popover] [data-scope=arrow]{background:var(--components-tooltip-background);box-shadow:none;border:none}";
7
8
  const NvTooltipStyle0 = nvTooltipCss;
@@ -45,7 +46,7 @@ const NvTooltip = class {
45
46
  /****************************************************************************/
46
47
  //#region RENDER
47
48
  render() {
48
- return (index.h(index.Host, { key: 'e0b68e5ade824e2b0f9c5e5cac140349412c919d' }, index.h("slot", { key: 'd61a58d034818fdba87b4ab17ce903bbb13a47ff' }), index.h("nv-popover", { key: '408df675045f95adf270025f83285b2e125873c5', triggerMode: "hover", hasArrow: true, placement: this.placement, strategy: this.strategy, triggerElement: this.triggerElement, groupName: 'tooltip', enterDelay: this.enterDelay }, index.h("p", { key: 'e4f860f09f5e5ef83b5e704c271781f41a643e59', slot: "content" }, this.message), index.h("slot", { key: '2e2e4dcae68651d734696e718c59389f712562df', name: "content" }))));
49
+ return (index.h(index.Host, { key: 'c2fdcd47be909554e31a3a7d77cd94dcb07c0d6e' }, index.h("slot", { key: '2305f6b7175d0ba84819351f60f2a4d76d117df9' }), index.h("nv-popover", { key: 'e388730b5858671d08981c6bbf72588a5084edbf', triggerMode: "hover", hasArrow: true, placement: this.placement, strategy: this.strategy, triggerElement: this.triggerElement, groupName: 'tooltip', enterDelay: this.enterDelay }, index.h("p", { key: '73f548a1c822f7c6d5a97bb4ef8da0d335cf049e', slot: "content" }, this.message), index.h("slot", { key: 'abb7a2dfa6a327122732802a867c5d4057fd1616', name: "content" }))));
49
50
  }
50
51
  get el() { return index.getElement(this); }
51
52
  };
@@ -0,0 +1,45 @@
1
+ import React, { useMemo } from 'react';
2
+ import { flexRender, getCoreRowModel, useReactTable, } from '@tanstack/react-table';
3
+ import { NvTable } from '../generated/components';
4
+ const NvDatatable = ({ columns, rows, ...htmlProps }) => {
5
+ const tableColumns = useMemo(() => columns
6
+ .filter((col) => !col.hidden)
7
+ .map((col) => ({
8
+ accessorKey: col.field,
9
+ header: col.headerName || String(col.field),
10
+ size: col.width,
11
+ enableResizing: col.resizable ?? true,
12
+ cell: (context) => {
13
+ const value = context.getValue();
14
+ const row = context.row.original;
15
+ const rowIndex = context.row.index;
16
+ if (col.renderCell) {
17
+ return col.renderCell({
18
+ value,
19
+ row,
20
+ field: col.field,
21
+ rowIndex,
22
+ });
23
+ }
24
+ return value;
25
+ },
26
+ })), [columns]);
27
+ const table = useReactTable({
28
+ data: rows,
29
+ columns: tableColumns,
30
+ getCoreRowModel: getCoreRowModel(),
31
+ });
32
+ return (React.createElement(NvTable, { ...htmlProps },
33
+ React.createElement("table", null,
34
+ React.createElement("thead", null, table.getHeaderGroups().map((headerGroup) => (React.createElement("tr", { key: headerGroup.id }, headerGroup.headers.map((header) => (React.createElement("th", { key: header.id, "data-testid": `datatable-header-${header.id}`, style: {
35
+ width: header.column.columnDef.size + 'px',
36
+ }, "data-no-resize": header.column.columnDef.enableResizing ? null : true }, header.isPlaceholder
37
+ ? null
38
+ : flexRender(header.column.columnDef.header, header.getContext())))))))),
39
+ React.createElement("tbody", null, table.getRowModel().rows.map((row) => (React.createElement("tr", { key: row.id, "data-testid": `datatable-row-${row.id}` }, row.getVisibleCells().map((cell) => (React.createElement("td", { key: cell.id, "data-testid": `datatable-cell-${cell.id}`, style: {
40
+ padding: '8px',
41
+ borderBottom: '1px solid #eee',
42
+ } }, flexRender(cell.column.columnDef.cell, cell.getContext())))))))))));
43
+ };
44
+ NvDatatable.displayName = 'NvDatatable';
45
+ export { NvDatatable };
@@ -36,11 +36,11 @@ import { NvLoader as NvLoaderElement, defineCustomElement as defineNvLoader } fr
36
36
  import { NvMenu as NvMenuElement, defineCustomElement as defineNvMenu } from "@nova-design-system/nova-webcomponents/dist/components/nv-menu.js";
37
37
  import { NvMenuitem as NvMenuitemElement, defineCustomElement as defineNvMenuitem } from "@nova-design-system/nova-webcomponents/dist/components/nv-menuitem.js";
38
38
  import { NvNotification as NvNotificationElement, defineCustomElement as defineNvNotification } from "@nova-design-system/nova-webcomponents/dist/components/nv-notification.js";
39
+ import { NvNotificationcontainer as NvNotificationcontainerElement, defineCustomElement as defineNvNotificationcontainer } from "@nova-design-system/nova-webcomponents/dist/components/nv-notificationcontainer.js";
39
40
  import { NvPopover as NvPopoverElement, defineCustomElement as defineNvPopover } from "@nova-design-system/nova-webcomponents/dist/components/nv-popover.js";
40
41
  import { NvRow as NvRowElement, defineCustomElement as defineNvRow } from "@nova-design-system/nova-webcomponents/dist/components/nv-row.js";
41
42
  import { NvStack as NvStackElement, defineCustomElement as defineNvStack } from "@nova-design-system/nova-webcomponents/dist/components/nv-stack.js";
42
43
  import { NvTable as NvTableElement, defineCustomElement as defineNvTable } from "@nova-design-system/nova-webcomponents/dist/components/nv-table.js";
43
- import { NvTablecolumn as NvTablecolumnElement, defineCustomElement as defineNvTablecolumn } from "@nova-design-system/nova-webcomponents/dist/components/nv-tablecolumn.js";
44
44
  import { NvToggle as NvToggleElement, defineCustomElement as defineNvToggle } from "@nova-design-system/nova-webcomponents/dist/components/nv-toggle.js";
45
45
  import { NvTogglebutton as NvTogglebuttonElement, defineCustomElement as defineNvTogglebutton } from "@nova-design-system/nova-webcomponents/dist/components/nv-togglebutton.js";
46
46
  import { NvTogglebuttongroup as NvTogglebuttongroupElement, defineCustomElement as defineNvTogglebuttongroup } from "@nova-design-system/nova-webcomponents/dist/components/nv-togglebuttongroup.js";
@@ -51,7 +51,7 @@ export const NvAccordion = createComponent({
51
51
  tagName: 'nv-accordion',
52
52
  elementClass: NvAccordionElement,
53
53
  react: React,
54
- events: { onOpenChanged: 'openChanged' },
54
+ events: { onOpenIndexesChanged: 'openIndexesChanged' },
55
55
  defineCustomElement: defineNvAccordion
56
56
  });
57
57
  export const NvAccordionItem = createComponent({
@@ -334,6 +334,13 @@ export const NvNotification = createComponent({
334
334
  events: { onHiddenChanged: 'hiddenChanged' },
335
335
  defineCustomElement: defineNvNotification
336
336
  });
337
+ export const NvNotificationcontainer = createComponent({
338
+ tagName: 'nv-notificationcontainer',
339
+ elementClass: NvNotificationcontainerElement,
340
+ react: React,
341
+ events: {},
342
+ defineCustomElement: defineNvNotificationcontainer
343
+ });
337
344
  export const NvPopover = createComponent({
338
345
  tagName: 'nv-popover',
339
346
  elementClass: NvPopoverElement,
@@ -359,15 +366,8 @@ export const NvTable = createComponent({
359
366
  tagName: 'nv-table',
360
367
  elementClass: NvTableElement,
361
368
  react: React,
362
- events: { onAction: 'action' },
363
- defineCustomElement: defineNvTable
364
- });
365
- export const NvTablecolumn = createComponent({
366
- tagName: 'nv-tablecolumn',
367
- elementClass: NvTablecolumnElement,
368
- react: React,
369
369
  events: {},
370
- defineCustomElement: defineNvTablecolumn
370
+ defineCustomElement: defineNvTable
371
371
  });
372
372
  export const NvToggle = createComponent({
373
373
  tagName: 'nv-toggle',
@@ -658,11 +658,18 @@ export const NvNotification = createComponent({
658
658
  message: 'message',
659
659
  icon: 'icon',
660
660
  dismissible: 'dismissible',
661
- hidden: 'hidden'
661
+ hidden: 'hidden',
662
+ initiallyHidden: 'initially-hidden'
662
663
  },
663
664
  hydrateModule: import('@nova-design-system/nova-webcomponents/hydrate'),
664
665
  serializeShadowRoot
665
666
  });
667
+ export const NvNotificationcontainer = createComponent({
668
+ tagName: 'nv-notificationcontainer',
669
+ properties: { position: 'position' },
670
+ hydrateModule: import('@nova-design-system/nova-webcomponents/hydrate'),
671
+ serializeShadowRoot
672
+ });
666
673
  export const NvPopover = createComponent({
667
674
  tagName: 'nv-popover',
668
675
  properties: {
@@ -701,22 +708,7 @@ export const NvStack = createComponent({
701
708
  });
702
709
  export const NvTable = createComponent({
703
710
  tagName: 'nv-table',
704
- properties: {
705
- dataJson: 'data-json',
706
- columnsConfigJson: 'columns-config-json',
707
- fallbackValue: 'fallback-value',
708
- noDataMessage: 'no-data-message',
709
- noColumnsNoDataMessage: 'no-columns-no-data-message'
710
- },
711
- hydrateModule: import('@nova-design-system/nova-webcomponents/hydrate'),
712
- serializeShadowRoot
713
- });
714
- export const NvTablecolumn = createComponent({
715
- tagName: 'nv-tablecolumn',
716
- properties: {
717
- name: 'name',
718
- header: 'header'
719
- },
711
+ properties: {},
720
712
  hydrateModule: import('@nova-design-system/nova-webcomponents/hydrate'),
721
713
  serializeShadowRoot
722
714
  });
package/dist/index.js CHANGED
@@ -1,3 +1,5 @@
1
1
  export * from './generated/components';
2
2
  export * from '@nova-design-system/nova-webcomponents/constants';
3
3
  export { defineCustomElements } from '@nova-design-system/nova-webcomponents/loader';
4
+ export { useNotifications, NotificationProvider, } from './providers/NotificationProvider';
5
+ export * from './components/NvDatatable';