@nova-design-system/nova-webcomponents 3.16.0 → 3.18.0-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 (152) hide show
  1. package/dist/cjs/index-93d3b2f8.js +4 -0
  2. package/dist/cjs/index.cjs.js +1 -1
  3. package/dist/cjs/index.cjs.js.map +1 -1
  4. package/dist/cjs/loader.cjs.js +1 -1
  5. package/dist/cjs/native.cjs.js +1 -1
  6. package/dist/cjs/nv-button.cjs.entry.js +1 -7
  7. package/dist/cjs/nv-button.cjs.entry.js.map +1 -1
  8. package/dist/cjs/nv-datagrid.cjs.entry.js +1 -1
  9. package/dist/cjs/nv-datagrid.cjs.entry.js.map +1 -1
  10. package/dist/cjs/nv-icon.cjs.entry.js +1 -1
  11. package/dist/cjs/nv-icon.cjs.entry.js.map +1 -1
  12. package/dist/cjs/nv-split.cjs.entry.js +339 -0
  13. package/dist/cjs/nv-split.cjs.entry.js.map +1 -0
  14. package/dist/cjs/nv-stack.cjs.entry.js +1 -1
  15. package/dist/cjs/nv-table.cjs.entry.js +1 -1
  16. package/dist/cjs/nv-toggle.cjs.entry.js +2 -2
  17. package/dist/cjs/nv-togglebutton.cjs.entry.js +1 -1
  18. package/dist/cjs/nv-togglebuttongroup.cjs.entry.js +1 -1
  19. package/dist/cjs/nv-tooltip.cjs.entry.js +1 -1
  20. package/dist/collection/collection-manifest.json +1 -0
  21. package/dist/collection/components/nv-button/nv-button.js +1 -13
  22. package/dist/collection/components/nv-button/nv-button.js.map +1 -1
  23. package/dist/collection/components/nv-datagrid/nv-datagrid.css +4 -4
  24. package/dist/collection/components/nv-icon/nv-icons.js +1 -1
  25. package/dist/collection/components/nv-icon/nv-icons.js.map +1 -1
  26. package/dist/collection/components/nv-menuitem/nv-menuitem.js +1 -1
  27. package/dist/collection/components/nv-split/nv-split.docs.js +41 -0
  28. package/dist/collection/components/nv-split/nv-split.docs.js.map +1 -0
  29. package/dist/collection/components/nv-split/nv-split.js +549 -0
  30. package/dist/collection/components/nv-split/nv-split.js.map +1 -0
  31. package/dist/collection/components/nv-split/styles/nv-split.css +96 -0
  32. package/dist/collection/components/nv-stack/nv-stack.js +1 -1
  33. package/dist/collection/components/nv-table/nv-table.js +1 -1
  34. package/dist/collection/components/nv-toggle/nv-toggle.js +2 -2
  35. package/dist/collection/components/nv-togglebutton/nv-togglebutton.js +1 -1
  36. package/dist/collection/components/nv-togglebuttongroup/nv-togglebuttongroup.js +1 -1
  37. package/dist/collection/components/nv-tooltip/nv-tooltip.js +1 -1
  38. package/dist/components/index.js +1 -1
  39. package/dist/components/index.js.map +1 -1
  40. package/dist/components/nv-accordion-item.js +1 -1
  41. package/dist/components/nv-accordion.js +3 -3
  42. package/dist/components/nv-alert.js +1 -1
  43. package/dist/components/nv-avatar.js +1 -1
  44. package/dist/components/nv-badge.js +1 -1
  45. package/dist/components/nv-breadcrumb.js +1 -1
  46. package/dist/components/nv-button.js +1 -1
  47. package/dist/components/nv-datagrid.js +3 -3
  48. package/dist/components/nv-datagrid.js.map +1 -1
  49. package/dist/components/nv-dialog.js +3 -3
  50. package/dist/components/nv-dialogfooter.js +1 -1
  51. package/dist/components/nv-fielddate.js +2 -2
  52. package/dist/components/nv-fielddaterange.js +2 -2
  53. package/dist/components/nv-fielddropdown.js +3 -3
  54. package/dist/components/nv-fielddropdownitem.js +1 -1
  55. package/dist/components/nv-fieldmultiselect.js +3 -3
  56. package/dist/components/nv-fieldnumber.js +1 -1
  57. package/dist/components/nv-fieldpassword.js +2 -2
  58. package/dist/components/nv-fieldselect.js +2 -2
  59. package/dist/components/nv-fieldslider.js +3 -3
  60. package/dist/components/nv-fieldtext.js +1 -1
  61. package/dist/components/nv-fieldtime.js +2 -2
  62. package/dist/components/nv-icon.js +1 -1
  63. package/dist/components/nv-iconbutton.js +1 -1
  64. package/dist/components/nv-menu.js +2 -2
  65. package/dist/components/nv-menuitem.js +1 -1
  66. package/dist/components/nv-notification.js +1 -1
  67. package/dist/components/nv-split.d.ts +11 -0
  68. package/dist/components/nv-split.js +366 -0
  69. package/dist/components/nv-split.js.map +1 -0
  70. package/dist/components/nv-stack.js +1 -1
  71. package/dist/components/nv-table.js +1 -1
  72. package/dist/components/nv-toggle.js +2 -2
  73. package/dist/components/nv-togglebutton.js +1 -1
  74. package/dist/components/nv-togglebuttongroup.js +1 -1
  75. package/dist/components/nv-tooltip.js +1 -1
  76. package/dist/components/{p-0fd23531.js → p-147cefeb.js} +3 -3
  77. package/dist/components/{p-0fd23531.js.map → p-147cefeb.js.map} +1 -1
  78. package/dist/components/{p-378e3127.js → p-47a33f6b.js} +3 -3
  79. package/dist/components/{p-378e3127.js.map → p-47a33f6b.js.map} +1 -1
  80. package/dist/components/{p-f2bac2aa.js → p-6e67bfc0.js} +2 -2
  81. package/dist/components/{p-f2bac2aa.js.map → p-6e67bfc0.js.map} +1 -1
  82. package/dist/components/{p-9707528d.js → p-6f2b257e.js} +2 -2
  83. package/dist/components/{p-9707528d.js.map → p-6f2b257e.js.map} +1 -1
  84. package/dist/components/{p-2cc83e0c.js → p-766a3f49.js} +2 -2
  85. package/dist/components/{p-2cc83e0c.js.map → p-766a3f49.js.map} +1 -1
  86. package/dist/components/{p-7112612c.js → p-7684ad27.js} +2 -2
  87. package/dist/components/{p-7112612c.js.map → p-7684ad27.js.map} +1 -1
  88. package/dist/components/{p-31478080.js → p-811c9225.js} +2 -2
  89. package/dist/components/{p-31478080.js.map → p-811c9225.js.map} +1 -1
  90. package/dist/components/{p-2d64749f.js → p-9e7468e3.js} +3 -9
  91. package/dist/components/p-9e7468e3.js.map +1 -0
  92. package/dist/components/{p-47d499b4.js → p-be6e2884.js} +2 -2
  93. package/dist/components/{p-47d499b4.js.map → p-be6e2884.js.map} +1 -1
  94. package/dist/components/{p-a1ef5e37.js → p-e43a36c4.js} +3 -3
  95. package/dist/components/{p-a1ef5e37.js.map → p-e43a36c4.js.map} +1 -1
  96. package/dist/components/{p-df5d76a5.js → p-ec31af69.js} +2 -2
  97. package/dist/components/{p-df5d76a5.js.map → p-ec31af69.js.map} +1 -1
  98. package/dist/esm/index-dc2723f3.js +4 -0
  99. package/dist/esm/index.js +1 -1
  100. package/dist/esm/index.js.map +1 -1
  101. package/dist/esm/loader.js +1 -1
  102. package/dist/esm/native.js +1 -1
  103. package/dist/esm/nv-button.entry.js +1 -7
  104. package/dist/esm/nv-button.entry.js.map +1 -1
  105. package/dist/esm/nv-datagrid.entry.js +1 -1
  106. package/dist/esm/nv-datagrid.entry.js.map +1 -1
  107. package/dist/esm/nv-icon.entry.js +1 -1
  108. package/dist/esm/nv-icon.entry.js.map +1 -1
  109. package/dist/esm/nv-split.entry.js +335 -0
  110. package/dist/esm/nv-split.entry.js.map +1 -0
  111. package/dist/esm/nv-stack.entry.js +1 -1
  112. package/dist/esm/nv-table.entry.js +1 -1
  113. package/dist/esm/nv-toggle.entry.js +2 -2
  114. package/dist/esm/nv-togglebutton.entry.js +1 -1
  115. package/dist/esm/nv-togglebuttongroup.entry.js +1 -1
  116. package/dist/esm/nv-tooltip.entry.js +1 -1
  117. package/dist/native/index.esm.js +1 -1
  118. package/dist/native/index.esm.js.map +1 -1
  119. package/dist/native/native.css +1 -1
  120. package/dist/native/native.esm.js +1 -1
  121. package/dist/native/native.esm.js.map +1 -1
  122. package/dist/native/{p-4eaf417d.entry.js → p-122c78c3.entry.js} +2 -2
  123. package/dist/native/{p-4eaf417d.entry.js.map → p-122c78c3.entry.js.map} +1 -1
  124. package/dist/native/{p-445221dc.entry.js → p-14e622e1.entry.js} +2 -2
  125. package/dist/native/p-2364aefa.entry.js +2 -0
  126. package/dist/native/p-2364aefa.entry.js.map +1 -0
  127. package/dist/native/{p-44a78545.entry.js → p-52d2c0ae.entry.js} +2 -2
  128. package/dist/native/{p-a2f58133.entry.js → p-638967bf.entry.js} +2 -2
  129. package/dist/native/{p-26513cbd.entry.js → p-74572fce.entry.js} +2 -2
  130. package/dist/native/{p-26513cbd.entry.js.map → p-74572fce.entry.js.map} +1 -1
  131. package/dist/native/{p-075d231e.entry.js → p-91fab6c2.entry.js} +2 -2
  132. package/dist/native/{p-d45ee8e5.entry.js → p-a6fc987a.entry.js} +2 -2
  133. package/dist/native/p-a6fc987a.entry.js.map +1 -0
  134. package/dist/native/{p-dfb6b65e.entry.js → p-cb0293ec.entry.js} +2 -2
  135. package/dist/native/{p-b02c896a.entry.js → p-d94bf052.entry.js} +2 -2
  136. package/dist/types/components/nv-button/nv-button.d.ts +0 -1
  137. package/dist/types/components/nv-icon/nv-icons.d.ts +1 -1
  138. package/dist/types/components/nv-split/nv-split.d.ts +128 -0
  139. package/dist/types/components/nv-split/nv-split.docs.d.ts +4 -0
  140. package/dist/types/components.d.ts +107 -0
  141. package/dist/vscode-data.json +26 -1
  142. package/hydrate/index.js +365 -17
  143. package/hydrate/index.mjs +365 -17
  144. package/package.json +5 -1
  145. package/dist/components/p-2d64749f.js.map +0 -1
  146. package/dist/native/p-d45ee8e5.entry.js.map +0 -1
  147. /package/dist/native/{p-445221dc.entry.js.map → p-14e622e1.entry.js.map} +0 -0
  148. /package/dist/native/{p-44a78545.entry.js.map → p-52d2c0ae.entry.js.map} +0 -0
  149. /package/dist/native/{p-a2f58133.entry.js.map → p-638967bf.entry.js.map} +0 -0
  150. /package/dist/native/{p-075d231e.entry.js.map → p-91fab6c2.entry.js.map} +0 -0
  151. /package/dist/native/{p-dfb6b65e.entry.js.map → p-cb0293ec.entry.js.map} +0 -0
  152. /package/dist/native/{p-b02c896a.entry.js.map → p-d94bf052.entry.js.map} +0 -0
@@ -0,0 +1,335 @@
1
+ import { r as registerInstance, c as createEvent, h, H as Host, g as getElement } from './index-dc2723f3.js';
2
+
3
+ const nvSplitCss = "nv-split{display:flex;width:100%;height:100%;position:relative}nv-split[direction=horizontal]{flex-direction:row}nv-split[direction=vertical]{flex-direction:column}nv-split .nv-split-gutter{position:absolute;z-index:10;background:transparent;display:flex;align-items:center;justify-content:center;flex:0 0 auto;transition:background-color 0.2s ease}nv-split .nv-split-gutter::after{content:\"\";position:absolute;background:var(--nv-color-neutral-400, #ccc);border-radius:2px;transition:background-color 0.2s ease}nv-split .nv-split-gutter:hover::after{background:var(--nv-color-brand-primary, #0066cc)}nv-split .nv-split-gutter::before{content:\"\";position:absolute;background-repeat:no-repeat;background-position:center;opacity:0.4;transition:opacity 0.2s ease;pointer-events:none}nv-split .nv-split-gutter:hover::before{opacity:0.7}nv-split[direction=horizontal]>.nv-split-gutter{width:var(--nv-split-gutter-size, 24px);top:0;bottom:0;transform:translateX(-50%);cursor:col-resize}nv-split[direction=horizontal]>.nv-split-gutter::after{width:2px;height:60%;left:50%;top:20%;transform:translateX(-50%)}nv-split[direction=horizontal]>.nv-split-gutter::before{width:16px;height:16px}nv-split[direction=vertical]>.nv-split-gutter{height:var(--nv-split-gutter-size, 24px);left:0;right:0;transform:translateY(-50%);cursor:row-resize}nv-split[direction=vertical]>.nv-split-gutter::after{height:2px;width:60%;top:50%;left:20%;transform:translateY(-50%)}nv-split[direction=vertical]>.nv-split-gutter::before{width:16px;height:16px}nv-split[data-dragging=true]>.nv-split-gutter::after{background:var(--nv-color-neutral-500, #9ca3af)}nv-split>[slot=pane]{flex:1 1 auto;overflow:hidden;min-width:0;min-height:0;display:flex;flex-direction:column}nv-split>[slot=pane]>nv-split{flex:1 1 auto;width:100%;height:100%}";
4
+ const NvSplitStyle0 = nvSplitCss;
5
+
6
+ const NvSplit = class {
7
+ constructor(hostRef) {
8
+ registerInstance(this, hostRef);
9
+ this.sizesChanged = createEvent(this, "sizesChanged", 7);
10
+ /****************************************************************************/
11
+ //#region PROPERTIES
12
+ /**
13
+ * Direction of the split layout.
14
+ * - `horizontal`: panes side by side
15
+ * - `vertical`: panes stacked
16
+ */
17
+ this.direction = 'horizontal';
18
+ /**
19
+ * Initial sizes of the panes in percentages.
20
+ * Example: `[50, 50]` means two equal panes.
21
+ * Explicitly `reflect: false` (array) for framework compatibility.
22
+ */
23
+ this.sizes = [];
24
+ /**
25
+ * Width or height of the gutter (in px) depending on the split direction.
26
+ * Default is 24px to meet WCAG 2.2 target size requirements for touch accessibility.
27
+ */
28
+ this.gutterSize = 24;
29
+ //#endregion
30
+ /****************************************************************************/
31
+ //#region STATE
32
+ this.isDragging = false;
33
+ this.dragIndex = -1;
34
+ this.startPos = 0;
35
+ this.startSizes = [];
36
+ // Handlers stored to be able to detach them
37
+ this.onDocMove = (ev) => this.handleMouseMove(ev);
38
+ this.onDocUp = () => this.stopDragging();
39
+ }
40
+ //#endregion
41
+ /****************************************************************************/
42
+ //#region WATCHERS
43
+ onSizesChanged() {
44
+ // Re-apply sizes if modified from the outside
45
+ this.applySizes();
46
+ }
47
+ onDirectionChanged() {
48
+ // Update the orientation and the cursors of the gutters
49
+ this.ensureGutters();
50
+ this.applySizes();
51
+ }
52
+ //#endregion
53
+ /****************************************************************************/
54
+ //#region LIFECYCLE
55
+ componentDidLoad() {
56
+ // Initialization (once)
57
+ this.ensureGutters();
58
+ this.applySizes();
59
+ this.positionGutters();
60
+ // Observer: reposition gutters when resized (nested or parent split changes)
61
+ this.ro = new ResizeObserver(() => this.positionGutters());
62
+ this.ro.observe(this.el);
63
+ window.addEventListener('resize', () => this.positionGutters());
64
+ }
65
+ disconnectedCallback() {
66
+ var _a;
67
+ // Security cleanup (in case a drag was in progress)
68
+ this.detachDocumentListeners();
69
+ (_a = this.ro) === null || _a === void 0 ? void 0 : _a.disconnect();
70
+ this.ro = undefined;
71
+ }
72
+ //#endregion
73
+ /****************************************************************************/
74
+ //#region PUBLIC METHODS
75
+ /**
76
+ * Programmatically set pane sizes.
77
+ * @param {Array<number>} sizes Array of pane sizes in percentages.
78
+ * @returns {Promise<void>}
79
+ */
80
+ async setSizes(sizes) {
81
+ this.sizes = [...sizes];
82
+ this.applySizes();
83
+ this.sizesChanged.emit([...this.sizes]);
84
+ this.positionGutters();
85
+ }
86
+ /**
87
+ * Returns the current pane sizes.
88
+ * @returns {Promise<number[]>} Array of pane sizes in percentages.
89
+ */
90
+ async getSizes() {
91
+ return [...this.sizes];
92
+ }
93
+ /**
94
+ * Collapse a specific pane to 0 size.
95
+ * @param {number} index Index of the pane to collapse.
96
+ * @returns {Promise<void>}
97
+ */
98
+ async collapse(index) {
99
+ const panes = this.getPanes();
100
+ if (index < 0 || index >= panes.length)
101
+ return;
102
+ // Simple strategy: 0% for the index, the rest (100%) for its nearest neighbor
103
+ const next = new Array(panes.length).fill(0);
104
+ const target = index < panes.length - 1 ? index + 1 : index - 1;
105
+ if (target >= 0)
106
+ next[target] = 100;
107
+ this.sizes = next;
108
+ this.applySizes();
109
+ this.sizesChanged.emit([...this.sizes]);
110
+ this.positionGutters();
111
+ }
112
+ /**
113
+ * Destroy the split instance: removes gutters and resets layout state.
114
+ * @returns {Promise<void>}
115
+ */
116
+ async destroy() {
117
+ var _a;
118
+ this.sizes = [];
119
+ this.isDragging = false;
120
+ this.dragIndex = -1;
121
+ this.removeOwnGutters();
122
+ this.detachDocumentListeners();
123
+ (_a = this.ro) === null || _a === void 0 ? void 0 : _a.disconnect();
124
+ }
125
+ //#endregion
126
+ /****************************************************************************/
127
+ //#region INTERNAL HELPERS
128
+ /**
129
+ * Returns the panes of the split.
130
+ * @returns {HTMLElement[]} The panes of the split.
131
+ */
132
+ getPanes() {
133
+ // Only the direct children slot="pane"
134
+ return Array.from(this.el.querySelectorAll(':scope > [slot="pane"]'));
135
+ }
136
+ /**
137
+ * Returns the own gutters of the split.
138
+ * @returns {HTMLElement[]} The own gutters of the split.
139
+ */
140
+ getOwnGutters() {
141
+ // Only the direct gutters of THIS instance
142
+ return Array.from(this.el.querySelectorAll(':scope > .nv-split-gutter[data-auto="true"]'));
143
+ }
144
+ /**
145
+ * Removes the own gutters of the split.
146
+ */
147
+ removeOwnGutters() {
148
+ this.getOwnGutters().forEach(g => g.remove());
149
+ }
150
+ /**
151
+ * Ensures the gutters of the split.
152
+ */
153
+ ensureGutters() {
154
+ const panes = this.getPanes();
155
+ // 1) Clean ONLY the old direct gutters of THIS instance
156
+ this.removeOwnGutters();
157
+ if (panes.length <= 1)
158
+ return;
159
+ // 2) Add the gutters (directs) between the panes
160
+ panes.forEach((pane, i) => {
161
+ if (i >= panes.length - 1)
162
+ return;
163
+ const g = document.createElement('div');
164
+ g.className = 'nv-split-gutter';
165
+ g.setAttribute('data-auto', 'true');
166
+ if (this.direction === 'horizontal') {
167
+ g.style.width = `${this.gutterSize}px`;
168
+ g.style.cursor = 'col-resize';
169
+ }
170
+ else {
171
+ g.style.height = `${this.gutterSize}px`;
172
+ g.style.cursor = 'row-resize';
173
+ }
174
+ // Customizable internal slot
175
+ const slotEl = document.createElement('slot');
176
+ slotEl.name = 'gutter';
177
+ g.appendChild(slotEl);
178
+ // Listener drag (index = gutter between pane i and i+1)
179
+ g.addEventListener('mousedown', (ev) => this.startDragging(ev, i));
180
+ // Insert just after the pane
181
+ pane.insertAdjacentElement('afterend', g);
182
+ });
183
+ this.positionGutters();
184
+ }
185
+ /**
186
+ * Applies the sizes to the panes.
187
+ */
188
+ applySizes() {
189
+ const panes = this.getPanes();
190
+ const n = panes.length;
191
+ if (n === 0)
192
+ return;
193
+ // Default values if inconsistent
194
+ if (!this.sizes || this.sizes.length !== n) {
195
+ this.sizes = Array(n).fill(100 / n);
196
+ }
197
+ panes.forEach((pane, i) => {
198
+ var _a;
199
+ const size = Math.max(0, (_a = this.sizes[i]) !== null && _a !== void 0 ? _a : 100 / n);
200
+ // Flex-basis via flex shorthand (https://developer.mozilla.org/en-US/docs/Web/CSS/flex)
201
+ pane.style.flex = `0 0 ${size}%`;
202
+ pane.style.minWidth = '0';
203
+ pane.style.minHeight = '0';
204
+ pane.style.overflow = 'hidden'; // let a nv-split child extend
205
+ pane.style.display = 'flex';
206
+ pane.style.flexDirection = 'column';
207
+ });
208
+ this.positionGutters();
209
+ }
210
+ /**
211
+ * Attaches the document listeners.
212
+ */
213
+ attachDocumentListeners() {
214
+ document.addEventListener('mousemove', this.onDocMove);
215
+ document.addEventListener('mouseup', this.onDocUp);
216
+ }
217
+ /**
218
+ * Detaches the document listeners.
219
+ */
220
+ detachDocumentListeners() {
221
+ document.removeEventListener('mousemove', this.onDocMove);
222
+ document.removeEventListener('mouseup', this.onDocUp);
223
+ }
224
+ /**
225
+ * Positions the gutters based on the current sizes of the panes.
226
+ */
227
+ positionGutters() {
228
+ var _a, _b;
229
+ const panes = this.getPanes();
230
+ const gutters = this.getOwnGutters();
231
+ if (panes.length <= 1 || gutters.length === 0)
232
+ return;
233
+ const horizontal = this.direction === 'horizontal';
234
+ let cumPct = 0;
235
+ for (let i = 0; i < gutters.length; i++) {
236
+ const sizePct = (_b = (_a = this.sizes) === null || _a === void 0 ? void 0 : _a[i]) !== null && _b !== void 0 ? _b : 100 / panes.length;
237
+ cumPct += sizePct;
238
+ const g = gutters[i];
239
+ g.style.position = 'absolute';
240
+ if (horizontal) {
241
+ g.style.left = `${cumPct}%`;
242
+ g.style.top = '0';
243
+ g.style.bottom = '0';
244
+ g.style.height = '100%';
245
+ }
246
+ else {
247
+ g.style.top = `${cumPct}%`;
248
+ g.style.left = '0';
249
+ g.style.right = '0';
250
+ g.style.width = '100%';
251
+ }
252
+ }
253
+ }
254
+ /**
255
+ * Starts the dragging process.
256
+ * @param {MouseEvent} ev - The mouse event.
257
+ * @param {number} index - The index of the gutter.
258
+ */
259
+ startDragging(ev, index) {
260
+ this.isDragging = true;
261
+ this.dragIndex = index;
262
+ this.startPos = this.direction === 'horizontal' ? ev.clientX : ev.clientY;
263
+ this.startSizes = [...this.sizes];
264
+ this.attachDocumentListeners();
265
+ }
266
+ /**
267
+ * Handles the mouse movement during dragging.
268
+ * @param {MouseEvent} ev - The mouse event.
269
+ */
270
+ handleMouseMove(ev) {
271
+ var _a, _b, _c, _d;
272
+ if (!this.isDragging || this.dragIndex < 0)
273
+ return;
274
+ const panes = this.getPanes();
275
+ if (panes.length < 2)
276
+ return;
277
+ const rect = this.el.getBoundingClientRect();
278
+ // Ensure we never divide by zero if the element has zero width/height
279
+ const rawSize = this.direction === 'horizontal' ? rect.width : rect.height;
280
+ const totalPx = Math.max(rawSize, 1);
281
+ const deltaPx = (this.direction === 'horizontal' ? ev.clientX : ev.clientY) -
282
+ this.startPos;
283
+ const deltaPct = (deltaPx / totalPx) * 100;
284
+ const i = this.dragIndex;
285
+ const j = i + 1;
286
+ let left = this.startSizes[i] + deltaPct;
287
+ let right = this.startSizes[j] - deltaPct;
288
+ // minSizes (px) -> %
289
+ const minLeftPct = (((_b = (_a = this.minSizes) === null || _a === void 0 ? void 0 : _a[i]) !== null && _b !== void 0 ? _b : 0) / totalPx) * 100;
290
+ const minRightPct = (((_d = (_c = this.minSizes) === null || _c === void 0 ? void 0 : _c[j]) !== null && _d !== void 0 ? _d : 0) / totalPx) * 100;
291
+ left = Math.max(left, minLeftPct);
292
+ right = Math.max(right, minRightPct);
293
+ // Keep the sum of the pair i/j constant
294
+ const pairSum = left + right;
295
+ const targetSum = this.startSizes[i] + this.startSizes[j];
296
+ if (Math.abs(pairSum - targetSum) > 0.0001) {
297
+ const k = targetSum / (pairSum || 1);
298
+ left *= k;
299
+ right *= k;
300
+ }
301
+ const next = [...this.startSizes];
302
+ next[i] = left;
303
+ next[j] = right;
304
+ this.sizes = next;
305
+ this.applySizes();
306
+ this.sizesChanged.emit([...this.sizes]);
307
+ this.positionGutters();
308
+ }
309
+ /**
310
+ * Stops the dragging process.
311
+ */
312
+ stopDragging() {
313
+ if (!this.isDragging)
314
+ return;
315
+ this.isDragging = false;
316
+ this.dragIndex = -1;
317
+ this.detachDocumentListeners();
318
+ }
319
+ //#endregion
320
+ /****************************************************************************/
321
+ //#region RENDER
322
+ render() {
323
+ return (h(Host, { key: 'e3b158ff1b4f665862079d245c219102d8b8ccda', "data-dragging": this.isDragging.toString() }, h("slot", { key: 'baa8105a05bf8446d7a31a23cd5276edb320ea2f', name: "pane" }), h("slot", { key: '44afe4f4a220aff45f802218f2618e9305141a9f', name: "gutter" })));
324
+ }
325
+ get el() { return getElement(this); }
326
+ static get watchers() { return {
327
+ "sizes": ["onSizesChanged"],
328
+ "direction": ["onDirectionChanged"]
329
+ }; }
330
+ };
331
+ NvSplit.style = NvSplitStyle0;
332
+
333
+ export { NvSplit as nv_split };
334
+
335
+ //# sourceMappingURL=nv-split.entry.js.map
@@ -0,0 +1 @@
1
+ {"file":"nv-split.entry.js","mappings":"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","names":[],"sources":["src/components/nv-split/styles/nv-split.scss?tag=nv-split","src/components/nv-split/nv-split.tsx"],"sourcesContent":["@use './mixins' as *;\n@use './variables' as *;\n\nnv-split {\n display: flex;\n width: 100%;\n height: 100%;\n position: relative;\n\n &[direction='horizontal'] {\n flex-direction: row;\n }\n\n &[direction='vertical'] {\n flex-direction: column;\n }\n\n .nv-split-gutter {\n @include split-gutter-base;\n }\n\n &[direction='horizontal'] > .nv-split-gutter {\n @include split-gutter-horizontal;\n }\n\n &[direction='vertical'] > .nv-split-gutter {\n @include split-gutter-vertical;\n }\n\n &[data-dragging='true'] > .nv-split-gutter::after {\n background: $nv-split-line-active-color;\n }\n\n > [slot='pane'] {\n flex: 1 1 auto;\n overflow: hidden;\n min-width: 0;\n min-height: 0;\n display: flex;\n flex-direction: column;\n }\n\n > [slot='pane'] > nv-split {\n flex: 1 1 auto;\n width: 100%;\n height: 100%;\n }\n}\n","import {\n Component,\n Host,\n h,\n Prop,\n Event,\n EventEmitter,\n Element,\n Method,\n State,\n Watch,\n} from '@stencil/core';\n\n/**\n * The `nv-split` component is an advanced layout container that enables the creation of interactively resizable panels. It provides a flexible solution for dividing available space between multiple interface sections, with precise control over dimensions and constraints for each panel.\n * @slot pane - Content of each split pane. Use multiple `<div slot=\"pane\">` elements.\n * @slot gutter - Optional custom content inside every gutter handle.\n */\n@Component({\n tag: 'nv-split',\n styleUrl: 'styles/nv-split.scss',\n shadow: false,\n})\nexport class NvSplit {\n @Element() el: HTMLNvSplitElement;\n\n /****************************************************************************/\n //#region PROPERTIES\n\n /**\n * Direction of the split layout.\n * - `horizontal`: panes side by side\n * - `vertical`: panes stacked\n */\n @Prop({ reflect: true })\n readonly direction: 'horizontal' | 'vertical' = 'horizontal';\n\n /**\n * Initial sizes of the panes in percentages.\n * Example: `[50, 50]` means two equal panes.\n * Explicitly `reflect: false` (array) for framework compatibility.\n */\n @Prop({ mutable: true, reflect: false })\n sizes: number[] = [];\n\n /**\n * Minimum sizes (in px) for each pane.\n * Example: `[100, 200]` => first pane min 100px, second min 200px.\n * Explicitly `reflect: false` (array) for framework compatibility.\n */\n @Prop({ reflect: false })\n readonly minSizes?: number[];\n\n /**\n * Width or height of the gutter (in px) depending on the split direction.\n * Default is 24px to meet WCAG 2.2 target size requirements for touch accessibility.\n */\n @Prop({ reflect: true })\n readonly gutterSize: number = 24;\n\n //#endregion\n /****************************************************************************/\n //#region STATE\n\n @State()\n private isDragging: boolean = false;\n\n private dragIndex: number = -1;\n private startPos: number = 0;\n private startSizes: number[] = [];\n private ro?: ResizeObserver;\n\n // Handlers stored to be able to detach them\n private onDocMove = (ev: MouseEvent) => this.handleMouseMove(ev);\n private onDocUp = () => this.stopDragging();\n\n //#endregion\n /****************************************************************************/\n //#region EVENTS\n\n /**\n * Emitted when pane sizes are updated (either via dragging or programmatically).\n * @bind sizes\n */\n @Event()\n sizesChanged: EventEmitter<number[]>;\n\n //#endregion\n /****************************************************************************/\n //#region WATCHERS\n\n @Watch('sizes')\n protected onSizesChanged(): void {\n // Re-apply sizes if modified from the outside\n this.applySizes();\n }\n\n @Watch('direction')\n protected onDirectionChanged(): void {\n // Update the orientation and the cursors of the gutters\n this.ensureGutters();\n this.applySizes();\n }\n\n //#endregion\n /****************************************************************************/\n //#region LIFECYCLE\n\n componentDidLoad(): void {\n // Initialization (once)\n this.ensureGutters();\n this.applySizes();\n this.positionGutters();\n\n // Observer: reposition gutters when resized (nested or parent split changes)\n this.ro = new ResizeObserver(() => this.positionGutters());\n this.ro.observe(this.el);\n\n window.addEventListener('resize', () => this.positionGutters());\n }\n\n disconnectedCallback(): void {\n // Security cleanup (in case a drag was in progress)\n this.detachDocumentListeners();\n this.ro?.disconnect();\n this.ro = undefined;\n }\n\n //#endregion\n /****************************************************************************/\n //#region PUBLIC METHODS\n\n /**\n * Programmatically set pane sizes.\n * @param {Array<number>} sizes Array of pane sizes in percentages.\n * @returns {Promise<void>}\n */\n @Method()\n async setSizes(sizes: number[]): Promise<void> {\n this.sizes = [...sizes];\n this.applySizes();\n this.sizesChanged.emit([...this.sizes]);\n this.positionGutters();\n }\n\n /**\n * Returns the current pane sizes.\n * @returns {Promise<number[]>} Array of pane sizes in percentages.\n */\n @Method()\n async getSizes(): Promise<number[]> {\n return [...this.sizes];\n }\n\n /**\n * Collapse a specific pane to 0 size.\n * @param {number} index Index of the pane to collapse.\n * @returns {Promise<void>}\n */\n @Method()\n async collapse(index: number): Promise<void> {\n const panes = this.getPanes();\n if (index < 0 || index >= panes.length) return;\n\n // Simple strategy: 0% for the index, the rest (100%) for its nearest neighbor\n const next = new Array(panes.length).fill(0);\n const target = index < panes.length - 1 ? index + 1 : index - 1;\n if (target >= 0) next[target] = 100;\n\n this.sizes = next;\n this.applySizes();\n this.sizesChanged.emit([...this.sizes]);\n this.positionGutters();\n }\n\n /**\n * Destroy the split instance: removes gutters and resets layout state.\n * @returns {Promise<void>}\n */\n @Method()\n async destroy(): Promise<void> {\n this.sizes = [];\n this.isDragging = false;\n this.dragIndex = -1;\n this.removeOwnGutters();\n this.detachDocumentListeners();\n this.ro?.disconnect();\n }\n\n //#endregion\n /****************************************************************************/\n //#region INTERNAL HELPERS\n\n /**\n * Returns the panes of the split.\n * @returns {HTMLElement[]} The panes of the split.\n */\n private getPanes(): HTMLElement[] {\n // Only the direct children slot=\"pane\"\n return Array.from(\n this.el.querySelectorAll<HTMLElement>(':scope > [slot=\"pane\"]'),\n );\n }\n\n /**\n * Returns the own gutters of the split.\n * @returns {HTMLElement[]} The own gutters of the split.\n */\n private getOwnGutters(): HTMLElement[] {\n // Only the direct gutters of THIS instance\n return Array.from(\n this.el.querySelectorAll<HTMLElement>(\n ':scope > .nv-split-gutter[data-auto=\"true\"]',\n ),\n );\n }\n\n /**\n * Removes the own gutters of the split.\n */\n private removeOwnGutters(): void {\n this.getOwnGutters().forEach(g => g.remove());\n }\n\n /**\n * Ensures the gutters of the split.\n */\n private ensureGutters(): void {\n const panes = this.getPanes();\n\n // 1) Clean ONLY the old direct gutters of THIS instance\n this.removeOwnGutters();\n\n if (panes.length <= 1) return;\n\n // 2) Add the gutters (directs) between the panes\n panes.forEach((pane, i) => {\n if (i >= panes.length - 1) return;\n\n const g = document.createElement('div');\n g.className = 'nv-split-gutter';\n g.setAttribute('data-auto', 'true');\n\n if (this.direction === 'horizontal') {\n g.style.width = `${this.gutterSize}px`;\n g.style.cursor = 'col-resize';\n } else {\n g.style.height = `${this.gutterSize}px`;\n g.style.cursor = 'row-resize';\n }\n\n // Customizable internal slot\n const slotEl = document.createElement('slot');\n slotEl.name = 'gutter';\n g.appendChild(slotEl);\n\n // Listener drag (index = gutter between pane i and i+1)\n g.addEventListener('mousedown', (ev: MouseEvent) =>\n this.startDragging(ev, i),\n );\n\n // Insert just after the pane\n pane.insertAdjacentElement('afterend', g);\n });\n\n this.positionGutters();\n }\n\n /**\n * Applies the sizes to the panes.\n */\n private applySizes(): void {\n const panes = this.getPanes();\n const n = panes.length;\n if (n === 0) return;\n\n // Default values if inconsistent\n if (!this.sizes || this.sizes.length !== n) {\n this.sizes = Array(n).fill(100 / n);\n }\n\n panes.forEach((pane, i) => {\n const size = Math.max(0, this.sizes[i] ?? 100 / n);\n // Flex-basis via flex shorthand (https://developer.mozilla.org/en-US/docs/Web/CSS/flex)\n pane.style.flex = `0 0 ${size}%`;\n pane.style.minWidth = '0';\n pane.style.minHeight = '0';\n pane.style.overflow = 'hidden'; // let a nv-split child extend\n pane.style.display = 'flex';\n pane.style.flexDirection = 'column';\n });\n\n this.positionGutters();\n }\n\n /**\n * Attaches the document listeners.\n */\n private attachDocumentListeners(): void {\n document.addEventListener('mousemove', this.onDocMove);\n document.addEventListener('mouseup', this.onDocUp);\n }\n\n /**\n * Detaches the document listeners.\n */\n private detachDocumentListeners(): void {\n document.removeEventListener('mousemove', this.onDocMove);\n document.removeEventListener('mouseup', this.onDocUp);\n }\n\n /**\n * Positions the gutters based on the current sizes of the panes.\n */\n private positionGutters(): void {\n const panes = this.getPanes();\n const gutters = this.getOwnGutters();\n if (panes.length <= 1 || gutters.length === 0) return;\n\n const horizontal = this.direction === 'horizontal';\n let cumPct = 0;\n\n for (let i = 0; i < gutters.length; i++) {\n const sizePct = this.sizes?.[i] ?? 100 / panes.length;\n cumPct += sizePct;\n\n const g = gutters[i];\n g.style.position = 'absolute';\n\n if (horizontal) {\n g.style.left = `${cumPct}%`;\n g.style.top = '0';\n g.style.bottom = '0';\n g.style.height = '100%';\n } else {\n g.style.top = `${cumPct}%`;\n g.style.left = '0';\n g.style.right = '0';\n g.style.width = '100%';\n }\n }\n }\n\n /**\n * Starts the dragging process.\n * @param {MouseEvent} ev - The mouse event.\n * @param {number} index - The index of the gutter.\n */\n private startDragging(ev: MouseEvent, index: number): void {\n this.isDragging = true;\n this.dragIndex = index;\n this.startPos = this.direction === 'horizontal' ? ev.clientX : ev.clientY;\n this.startSizes = [...this.sizes];\n this.attachDocumentListeners();\n }\n\n /**\n * Handles the mouse movement during dragging.\n * @param {MouseEvent} ev - The mouse event.\n */\n private handleMouseMove(ev: MouseEvent): void {\n if (!this.isDragging || this.dragIndex < 0) return;\n\n const panes = this.getPanes();\n if (panes.length < 2) return;\n\n const rect = this.el.getBoundingClientRect();\n\n // Ensure we never divide by zero if the element has zero width/height\n const rawSize = this.direction === 'horizontal' ? rect.width : rect.height;\n const totalPx = Math.max(rawSize, 1);\n\n const deltaPx =\n (this.direction === 'horizontal' ? ev.clientX : ev.clientY) -\n this.startPos;\n const deltaPct = (deltaPx / totalPx) * 100;\n\n const i = this.dragIndex;\n const j = i + 1;\n\n let left = this.startSizes[i] + deltaPct;\n let right = this.startSizes[j] - deltaPct;\n\n // minSizes (px) -> %\n const minLeftPct = ((this.minSizes?.[i] ?? 0) / totalPx) * 100;\n const minRightPct = ((this.minSizes?.[j] ?? 0) / totalPx) * 100;\n\n left = Math.max(left, minLeftPct);\n right = Math.max(right, minRightPct);\n\n // Keep the sum of the pair i/j constant\n const pairSum = left + right;\n const targetSum = this.startSizes[i] + this.startSizes[j];\n if (Math.abs(pairSum - targetSum) > 0.0001) {\n const k = targetSum / (pairSum || 1);\n left *= k;\n right *= k;\n }\n\n const next = [...this.startSizes];\n next[i] = left;\n next[j] = right;\n\n this.sizes = next;\n this.applySizes();\n this.sizesChanged.emit([...this.sizes]);\n this.positionGutters();\n }\n\n /**\n * Stops the dragging process.\n */\n private stopDragging(): void {\n if (!this.isDragging) return;\n this.isDragging = false;\n this.dragIndex = -1;\n this.detachDocumentListeners();\n }\n\n //#endregion\n /****************************************************************************/\n //#region RENDER\n\n render() {\n return (\n <Host data-dragging={this.isDragging.toString()}>\n <slot name=\"pane\"></slot>\n <slot name=\"gutter\"></slot>\n </Host>\n );\n }\n\n //#endregion\n /****************************************************************************/\n}\n"],"version":3}
@@ -19,7 +19,7 @@ const NvStack = class {
19
19
  /****************************************************************************/
20
20
  //#region RENDER
21
21
  render() {
22
- return (h(Host, { key: '8f771805224c769b5a87f5c550ddbcb8f888d002', class: 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') }, h("slot", { key: '6fcd46cfd74415d2f07c762b065e3aa0f0194764' })));
22
+ return (h(Host, { key: '5922efd8652a14d73e812e85dd6770101e22fe46', class: 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') }, h("slot", { key: '71daf4ee34bd57d785203f98799b6ea7c66ffa3b' })));
23
23
  }
24
24
  };
25
25
  NvStack.style = NvStackStyle0;
@@ -232,7 +232,7 @@ const NvTable = class {
232
232
  /****************************************************************************/
233
233
  //#region RENDER
234
234
  render() {
235
- return (h(Host, { key: 'b63510e2da93a1b98eb3813ba7ac9bed97b81c1f' }, h("slot", { key: '14fb76c397db4da5dfba94bce599d1e4d8992a6b' })));
235
+ return (h(Host, { key: '16b564cc29e8987d8b3fda3a84c0b19882a733bd' }, h("slot", { key: '1305cbc6d29caa60df55bfa01a39a3417a27ec01' })));
236
236
  }
237
237
  get host() { return getElement(this); }
238
238
  };
@@ -62,8 +62,8 @@ const NvToggle = class {
62
62
  /****************************************************************************/
63
63
  //#region RENDER
64
64
  render() {
65
- return (h(Host, { key: '65222149af4edb9f8fd2da7efe9a01e15dec4722', class: clsx(this.labelPlacement === 'before' && 'label-placement-before') }, h("div", { key: '7edd5587281b5610269f1ac09826ce379abfae24', class: "input-container" }, 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 })), h("div", { key: 'a8a6d3c2774560b7d43cda75882d90cc564f4c54', class: "text-container" }, (this.label || this.el.querySelector('[slot="label"]')) && (h("label", { key: 'fe980a07df4901081fda42df758236da0b8a11d0', htmlFor: this.inputId, class: clsx(this.hideLabel && 'visually-hidden') }, h("slot", { key: '723cec5914c6c0bed7e14e61e2f64e83c8e8b7b8', name: "label" }, this.label))), (this.description ||
66
- this.el.querySelector('[slot="description"]')) && (h("div", { key: 'f811065ed06f0816d8f0f1f65d4c659cbde3f683', class: "description" }, h("slot", { key: '541946e3f33a315bf667999c30a44fd93fc5f07f', name: "description" }, this.description))))));
65
+ return (h(Host, { key: '0f440b59ac0c32d9abe9577668d7045081819b49', class: clsx(this.labelPlacement === 'before' && 'label-placement-before') }, h("div", { key: '4289435e34eb31a8e59e00cefcba2e17e98bd03a', class: "input-container" }, h("input", { key: '1b7d05f77fd32cece9eed2e6cf79c7e2e707f64c', 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 })), h("div", { key: '6d78d7e80eb790bbead21bba6108329f9ded3746', class: "text-container" }, (this.label || this.el.querySelector('[slot="label"]')) && (h("label", { key: '524a2c2542a45945bddb688c5dff6c9426d58570', htmlFor: this.inputId, class: clsx(this.hideLabel && 'visually-hidden') }, h("slot", { key: '59eda4b826602062620e7167acf3c8de0f77ebef', name: "label" }, this.label))), (this.description ||
66
+ this.el.querySelector('[slot="description"]')) && (h("div", { key: '6e8412879ed60fc6806464432348bd52483e3567', class: "description" }, h("slot", { key: '85a876130569a5a4051e271eaf1cf49593a014a6', name: "description" }, this.description))))));
67
67
  }
68
68
  static get formAssociated() { return true; }
69
69
  get el() { return getElement(this); }
@@ -44,7 +44,7 @@ const NvTogglebutton = class {
44
44
  /****************************************************************************/
45
45
  //#region RENDER
46
46
  render() {
47
- return (h(Host, { key: 'c4b698b1fb80f0dcca5d7a77bc20d22db1cbf538', role: "button", tabindex: "0", "aria-pressed": String(this.active), onClick: this.handleClick }, h("slot", { key: '605385f07f32b989685983cfd1a082525741fba4' })));
47
+ return (h(Host, { key: 'b9e37fc1cb34272bca476c7b61db173ab2a9d238', role: "button", tabindex: "0", "aria-pressed": String(this.active), onClick: this.handleClick }, h("slot", { key: 'cf9cf3445fd93873def1f9fa9cbec46c35600025' })));
48
48
  }
49
49
  };
50
50
  NvTogglebutton.style = NvTogglebuttonStyle0;
@@ -152,7 +152,7 @@ const NvTogglebuttongroup = class {
152
152
  /****************************************************************************/
153
153
  //#region RENDER
154
154
  render() {
155
- return (h(Host, { key: 'ab91ff1817e3388508ed1da7a9ed57a79cf8c4bc' }, h("slot", { key: '4a3280db78c1f0cd120a0cb32d95eabaf69995a6' })));
155
+ return (h(Host, { key: '7aad0160ae8e093765ba42649293e27d7b93ab75' }, h("slot", { key: '39364122a5e65b1a454bd782a5daacc7edfee8b0' })));
156
156
  }
157
157
  get el() { return getElement(this); }
158
158
  static get watchers() { return {
@@ -42,7 +42,7 @@ const NvTooltip = class {
42
42
  /****************************************************************************/
43
43
  //#region RENDER
44
44
  render() {
45
- return (h(Host, { key: 'c2fdcd47be909554e31a3a7d77cd94dcb07c0d6e' }, h("slot", { key: '2305f6b7175d0ba84819351f60f2a4d76d117df9' }), h("nv-popover", { key: 'e388730b5858671d08981c6bbf72588a5084edbf', triggerMode: "hover", hasArrow: true, placement: this.placement, strategy: this.strategy, triggerElement: this.triggerElement, groupName: 'tooltip', enterDelay: this.enterDelay }, h("p", { key: '73f548a1c822f7c6d5a97bb4ef8da0d335cf049e', slot: "content" }, this.message), h("slot", { key: 'abb7a2dfa6a327122732802a867c5d4057fd1616', name: "content" }))));
45
+ return (h(Host, { key: '5d5facbf2a0487bda4fbae49913a2cb4f69dcf5a' }, h("slot", { key: '91080d347f3473879109f7b0b59b159f5bb5979b' }), h("nv-popover", { key: '876e5e2487d1b2b5182e42909a6edeab5b3e9db2', triggerMode: "hover", hasArrow: true, placement: this.placement, strategy: this.strategy, triggerElement: this.triggerElement, groupName: 'tooltip', enterDelay: this.enterDelay }, h("p", { key: 'e30ce16ed27e41dee7359fb44ccba7a780e72d37', slot: "content" }, this.message), h("slot", { key: '395c75d7f45bab9aaebf979bd75087058b979350', name: "content" }))));
46
46
  }
47
47
  get el() { return getElement(this); }
48
48
  };
@@ -1,2 +1,2 @@
1
- export{a as ButtonEmphasis,B as ButtonSize,b as ButtonType,C as CUSTOM_DAY_NAMES,i as CUSTOM_MONTH_NAMES,D as DeprecatedSemanticColors,F as FeedbackColors,G as GlobalFilterPosition,I as IconButtonShape,e as LabelPlacement,L as LoaderColors,c as NotificationEmphasis,N as NotificationPosition,S as SemanticSizes,h as SortingPossibility,f as TextInputAutocomplete,g as TimeType,T as ToggleButtonEmphasis,d as ToggleButtonSize,W as WEEK_ABBREVIATIONS}from"./p-51602221.js";export{e as eventUtils}from"./p-d429a343.js";export{s as stringUtils}from"./p-a5c8eee9.js";export{u as uriUtils}from"./p-7e58e7d1.js";import{u as o}from"./p-3cd7a66f.js";import{u as r}from"./p-a271e3be.js";import{u as t}from"./p-4697bd56.js";import{u as l}from"./p-c7401a7d.js";import{t as n,p}from"./p-a52cd849.js";import"./p-42ea6b74.js";function m(e){const o=new Proxy({},{get(e,o){return o}});return e(o)}const w=Object.freeze({__proto__:null,nameof:m});const k=Object.freeze({__proto__:null,useCollapse:o,useFade:r,useGrow:t,useSlide:l,timeline:n,parallel:p});const y=["access-point-off","access-point","accessible","activity","address-book","adjustments-horizontal","adjustments-up","adjustments","affiliate","air-conditioning","alert-circle","alert-triangle","align-center","align-left","align-right","app-window","apps","archive","areas","arrow-back-up","arrow-back","arrow-down-left","arrow-down-right","arrow-down","arrow-forward-up","arrow-forward","arrow-left","arrow-right","arrow-up-left","arrow-up-right","arrow-up","arrows-diagonal","arrows-exchange","arrows-maximize","arrows-minimize","arrows-move","aspect-ratio","atom","ban","basket","battery-1","battery-2","battery-3","battery-4","battery-automotive","battery-charging","battery-eco","battery-off","battery","bell-off","bell-ringing","bell","bike","bluetooth-connected","bluetooth-off","bluetooth","bolt-off","bolt","book","bookmark-off","bookmark","bookmarks","box-align-top","box-multiple","brand-facebook","brand-instagram","brand-linkedin","brand-x","brand-youtube","briefcase","brightness-down","brightness-up","browser-check","browser-plus","browser-x","browser","brush","building-bank","building-factory","building-lighthouse","building-store","building","bulb-off","bulb","cake","calendar-time","calendar","camera-off","camera","car-crane","car","caravan","cash-banknote","cash","cast","cell","charging-pile","chart-arcs","chart-area-line","chart-area","chart-arrows-vertical","chart-arrows","chart-bar","chart-bubble","chart-circles","chart-donut","chart-dots","chart-line","chart-pie","chart-radar","check","checkbox","checklist","checks","chevron-down","chevron-left","chevron-right","chevron-top","chevrons-left","chevrons-right","circle-caret-right","circle-check","circle-x","circuit-alternate","circuit-ground-digital","clipboard-check","clipboard-list","clipboard-plus","clipboard-text","clipboard-x","clipboard","clock-edit","clock","cloud-data-connection","cloud-download","cloud-rain","cloud-snow","cloud-upload","cloud","color-picker","color-swatch","columns-1","columns-2","columns-3","compass","contract","cookie","copy","cpu","crane","credit-card","crop","cross","crown","currency-bitcoin","currency-dollar","currency-ethereum","currency-euro","cut","dashboard","database","device-desktop","device-floppy","device-gamepad","device-laptop","device-mobile-rotated","device-mobile","device-tablet","device-watch","devices","dialpad","direction-horizontal","direction-sign","direction","discount","door-enter","door-exit","door-off","dots-vertical","dots","download","drone","droplet-filled","droplet-half","droplet","droplets","edit","empty","engine","equal-not","eraser-off","eraser","external-link","eye-off","eye","face-id","feather","file-alert","file-analytics","file-check","file-code","file-download","file-export","file-horizontal","file-import","file-plus","file-search","file-text-bookmark","file-text","file-type-bmp","file-type-css","file-type-csv","file-type-doc","file-type-html","file-type-jpg","file-type-js","file-type-pdf","file-type-png","file-type-ppt","file-type-xls","file-type-xml","file-type-zip","file-upload","file-x","file-zip","file","files-off","files","filter-off","filter-sort","filter","fingerprint","fire-extinguisher","flag","flame","flip-horizontal","flip-vertical","folder-minus","folder-off","folder-plus","folder-x","folder","folders","frame","gas-station","gauge-off","gauge","gift","git-branch","git-compare","gps","grid-dots","grip-horizontal","grip-vertical","hand-stop","hand-waving","hash","haze","headphones-off","headphones","headset","heart-off","heart","heartbeat","helicopter","helmet-swopp","helmet","help","history","home","hourglass-empty","hourglass-high","hourglass-low","hourglass-off","hourglass","inbox","info-circle","keyboard-hide","keyboard-show","keyboard","layout-board-split","layout-dashboard","layout-grid","layout-sidebar-left-collapse","layout-sidebar-left-expand","layout-sidebar-right-collapse","layout-sidebar-right-expand","layout","leaf","lifebuoy","link","list-search","list","loader","location","lock-off","lock-open","lock","login","logout","mail-forward","mail-opened","mail","map-pin-2","map-pin-off","map-pin","map","master-data","menu","message-dots","message-off","message","messages","microphone-off","microphone","minus","mist","moon","motorbike","mouse","movie","network","news","note","notebook","notes","offshore-station","package","palette","paperclip","pencil","phone-call","phone-calling","phone-check","phone-incoming","phone-off","phone-outgoing","phone","photo-off","photo","pig","pin","pinned-off","pinned","plane-off","plane","plant","player-pause","player-play","player-skip-back","player-skip-forward","player-stop","player-track-next","player-track-prev","plug-connected","plug","plus","power-ac","power-dc","power","presentation-analytics","presentation","printer","propeller","published","puzzle-2","puzzle","pylon","qrcode","quotes-open","quotes","radar","radio","radioactive","receipt-dollar","receipt-euro","receipt","recharging","recycle","refresh-alert","refresh-off","refresh","repeat-once","repeat","replace","report-analytics","report-medical","report-search","report","ripple-off","ripple","rocket","rotate-2","rotate-clockwise-2","rotate-clockwise","rotate-dot","rotate","router","ruler-measure","sailboat","satellite","scale","school","scissors","scooter-electric","screenshot","search","seeding","select","selector","send","server","settings","shape","share-2","share","shield-check","shield-lock","shield-off","shield-x","shield","ship-off","ship","shopping-cart","slash","smart-home","snowflake","solar-panel","sort-ascending-letters","sort-ascending-numbers","sort-descending-letters","sort-descending-numbers","spacing-horizontal","spacing-vertical","sparkles","speakerphone","stack","stairs","star","sun","sunrise","sunset","switch-horizontal","switch-vertical","table","tag","tank-empty-fill","tank-full-fill","tank-medium-fill","temperature-off","temperature","template","terminal","text-size","text","thumb-down","thumb-up","ticket","timeline","tir","tool","tools","train","trash-off","trash","tree","trees","truck-delivery","truck","umbrella","unlink","upload","user-circle","user-exclamation","user-minus","user-off","user-plus","user-worker","user","users","versions","video-minus","video-off","video-plus","video","volume-2","volume-3","wallet","wand","wave","waves","wifi-off","wifi","wind-direction","wind","windmill","wood","world-code","world","writing","x","zoom-reset"];export{k as animations,w as classUtils,y as iconNames};
1
+ export{a as ButtonEmphasis,B as ButtonSize,b as ButtonType,C as CUSTOM_DAY_NAMES,i as CUSTOM_MONTH_NAMES,D as DeprecatedSemanticColors,F as FeedbackColors,G as GlobalFilterPosition,I as IconButtonShape,e as LabelPlacement,L as LoaderColors,c as NotificationEmphasis,N as NotificationPosition,S as SemanticSizes,h as SortingPossibility,f as TextInputAutocomplete,g as TimeType,T as ToggleButtonEmphasis,d as ToggleButtonSize,W as WEEK_ABBREVIATIONS}from"./p-51602221.js";export{e as eventUtils}from"./p-d429a343.js";export{s as stringUtils}from"./p-a5c8eee9.js";export{u as uriUtils}from"./p-7e58e7d1.js";import{u as o}from"./p-3cd7a66f.js";import{u as r}from"./p-a271e3be.js";import{u as t}from"./p-4697bd56.js";import{u as l}from"./p-c7401a7d.js";import{t as n,p}from"./p-a52cd849.js";import"./p-42ea6b74.js";function m(e){const o=new Proxy({},{get(e,o){return o}});return e(o)}const w=Object.freeze({__proto__:null,nameof:m});const k=Object.freeze({__proto__:null,useCollapse:o,useFade:r,useGrow:t,useSlide:l,timeline:n,parallel:p});const y=["access-point-off","access-point","accessible","activity","address-book","adjustments-horizontal","adjustments-up","adjustments","affiliate","air-conditioning","alert-circle","alert-triangle","align-center","align-left","align-right","app-window","apps","archive","areas","arrow-back-up","arrow-back","arrow-down-left","arrow-down-right","arrow-down","arrow-forward-up","arrow-forward","arrow-left","arrow-right","arrow-up-left","arrow-up-right","arrow-up","arrows-diagonal","arrows-exchange","arrows-maximize","arrows-minimize","arrows-move","aspect-ratio","atom","ban","basket","battery-1","battery-2","battery-3","battery-4","battery-automotive","battery-charging","battery-eco","battery-off","battery","bell-off","bell-ringing","bell","bike","bluetooth-connected","bluetooth-off","bluetooth","bolt-off","bolt","book","bookmark-off","bookmark","bookmarks","box-align-top","box-multiple","brand-facebook","brand-instagram","brand-linkedin","brand-x","brand-youtube","briefcase","brightness-down","brightness-up","browser-check","browser-plus","browser-x","browser","brush","building-bank","building-factory","building-lighthouse","building-store","building","bulb-off","bulb","cake","calendar-time","calendar","camera-off","camera","car-crane","car","caravan","cash-banknote","cash","cast","cell","charging-pile","chart-arcs","chart-area-line","chart-area","chart-arrows-vertical","chart-arrows","chart-bar","chart-bubble","chart-circles","chart-donut","chart-dots","chart-line","chart-pie","chart-radar","check","checkbox","checklist","checks","chevron-down","chevron-left","chevron-right","chevron-top","chevrons-left","chevrons-right","circle-caret-right","circle-check","circle-x","circuit-alternate","circuit-ground-digital","clipboard-check","clipboard-list","clipboard-plus","clipboard-text","clipboard-x","clipboard","clock-edit","clock","cloud-data-connection","cloud-download","cloud-rain","cloud-snow","cloud-upload","cloud","color-picker","color-swatch","columns-1","columns-2","columns-3","compass","contract","cookie","copy","cpu","crane","credit-card","crop","cross","crown","currency-bitcoin","currency-dollar","currency-ethereum","currency-euro","cut","dashboard","database","device-desktop","device-floppy","device-gamepad","device-laptop","device-mobile-rotated","device-mobile","device-tablet","device-watch","devices","dialpad","direction-horizontal","direction-sign","direction","discount","door-enter","door-exit","door-off","dots-vertical","dots","download","drone","droplet-filled","droplet-half","droplet","droplets","edit","empty","engine","equal-not","eraser-off","eraser","external-link","eye-off","eye","face-id","feather","file-alert","file-analytics","file-check","file-code","file-download","file-export","file-horizontal","file-import","file-plus","file-search","file-text-bookmark","file-text","file-type-bmp","file-type-css","file-type-csv","file-type-doc","file-type-html","file-type-jpg","file-type-js","file-type-pdf","file-type-png","file-type-ppt","file-type-xls","file-type-xml","file-type-zip","file-upload","file-x","file-zip","file","files-off","files","filter-off","filter-sort","filter","fingerprint","fire-extinguisher","flag","flame","flip-horizontal","flip-vertical","folder-minus","folder-off","folder-plus","folder-x","folder","folders","frame","gas-station","gauge-off","gauge","gift","git-branch","git-compare","gps","grid-dots","grip-horizontal","grip-vertical","hand-stop","hand-waving","hash","haze","headphones-off","headphones","headset","heart-off","heart","heartbeat","helicopter","helmet-swopp","helmet","help","history","home","hourglass-empty","hourglass-high","hourglass-low","hourglass-off","hourglass","inbox","info-circle","keyboard-hide","keyboard-show","keyboard","layout-board-split","layout-dashboard","layout-grid","layout-sidebar-left-collapse","layout-sidebar-left-expand","layout-sidebar-right-collapse","layout-sidebar-right-expand","layout","leaf","lifebuoy","link","list-search","list","loader","location","lock-off","lock-open","lock","login","logout","mail-forward","mail-opened","mail","map-pin-2","map-pin-off","map-pin","map","master-data","menu","message-dots","message-off","message","messages","microphone-off","microphone","minus","mist","moon","motorbike","mouse","movie","network","news","note","notebook","notes","offshore-station","package","palette","paperclip","pencil","phone-call","phone-calling","phone-check","phone-incoming","phone-off","phone-outgoing","phone","photo-off","photo","pig","pin","pinned-off","pinned","plane-off","plane","plant","player-pause","player-play","player-skip-back","player-skip-forward","player-stop","player-track-next","player-track-prev","plug-connected","plug","plus","power-ac","power-dc","power","presentation-analytics","presentation","printer","propeller","published","puzzle-2","puzzle","pylon","qrcode","quotes-open","quotes","radar","radio","radioactive","receipt-dollar","receipt-euro","receipt","recharging","recycle","refresh-alert","refresh-off","refresh","repeat-once","repeat","replace","report-analytics","report-medical","report-search","report","ripple-off","ripple","rocket","rotate-2","rotate-clockwise-2","rotate-clockwise","rotate-dot","rotate","router","ruler-measure","sailboat","satellite","scale","school","scissors","scooter-electric","screenshot","search","seeding","select","selector","send","server","settings","shape","share-2","share","shield-check","shield-lock","shield-off","shield-x","shield","ship-off","ship","shopping-cart","slash","smart-home","snowflake","solar-panel","sort-ascending-letters","sort-ascending-numbers","sort-descending-letters","sort-descending-numbers","spacing-horizontal","spacing-vertical","sparkles","speakerphone","stack","stairs","star","sun","sunrise","sunset","switch-horizontal","switch-vertical","table","tag","tank-empty-fill","tank-full-fill","tank-medium-fill","temperature-off","temperature","template","terminal","text-size","text","thumb-down","thumb-up","ticket","timeline","tir","tool","tools","train","trash-off","trash","tree","trees","truck-delivery","truck","umbrella","unlink","upload","user-circle","user-exclamation","user-minus","user-off","user-plus","user-worker","user","users","versions","video-minus","video-off","video-plus","video","volume-2","volume-3","volume","wand","wave","waves","wifi-off","wifi","wind-direction","wind","windmill","wood","world-code","world","writing","x","zoom-reset"];export{k as animations,w as classUtils,y as iconNames};
2
2
  //# sourceMappingURL=index.esm.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["nameof","key","proxy","Proxy","get","_target","prop","iconNames"],"sources":["src/utils/class.utils.ts","src/components/nv-icon/nv-icons.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\n\n/**\n * Get the name of a property in an object or class instance.\n * @param {function} key The key of the property.\n * @returns {string} The name of the property.\n */\nexport function nameof<T>(key: (x: T) => any): string {\n const proxy = new Proxy(\n {},\n {\n get(_target, prop) {\n return prop;\n },\n },\n );\n return key(proxy as T);\n}\n","/** Available icons */\n\nexport const iconNames = [\n 'access-point-off',\n 'access-point',\n 'accessible',\n 'activity',\n 'address-book',\n 'adjustments-horizontal',\n 'adjustments-up',\n 'adjustments',\n 'affiliate',\n 'air-conditioning',\n 'alert-circle',\n 'alert-triangle',\n 'align-center',\n 'align-left',\n 'align-right',\n 'app-window',\n 'apps',\n 'archive',\n 'areas',\n 'arrow-back-up',\n 'arrow-back',\n 'arrow-down-left',\n 'arrow-down-right',\n 'arrow-down',\n 'arrow-forward-up',\n 'arrow-forward',\n 'arrow-left',\n 'arrow-right',\n 'arrow-up-left',\n 'arrow-up-right',\n 'arrow-up',\n 'arrows-diagonal',\n 'arrows-exchange',\n 'arrows-maximize',\n 'arrows-minimize',\n 'arrows-move',\n 'aspect-ratio',\n 'atom',\n 'ban',\n 'basket',\n 'battery-1',\n 'battery-2',\n 'battery-3',\n 'battery-4',\n 'battery-automotive',\n 'battery-charging',\n 'battery-eco',\n 'battery-off',\n 'battery',\n 'bell-off',\n 'bell-ringing',\n 'bell',\n 'bike',\n 'bluetooth-connected',\n 'bluetooth-off',\n 'bluetooth',\n 'bolt-off',\n 'bolt',\n 'book',\n 'bookmark-off',\n 'bookmark',\n 'bookmarks',\n 'box-align-top',\n 'box-multiple',\n 'brand-facebook',\n 'brand-instagram',\n 'brand-linkedin',\n 'brand-x',\n 'brand-youtube',\n 'briefcase',\n 'brightness-down',\n 'brightness-up',\n 'browser-check',\n 'browser-plus',\n 'browser-x',\n 'browser',\n 'brush',\n 'building-bank',\n 'building-factory',\n 'building-lighthouse',\n 'building-store',\n 'building',\n 'bulb-off',\n 'bulb',\n 'cake',\n 'calendar-time',\n 'calendar',\n 'camera-off',\n 'camera',\n 'car-crane',\n 'car',\n 'caravan',\n 'cash-banknote',\n 'cash',\n 'cast',\n 'cell',\n 'charging-pile',\n 'chart-arcs',\n 'chart-area-line',\n 'chart-area',\n 'chart-arrows-vertical',\n 'chart-arrows',\n 'chart-bar',\n 'chart-bubble',\n 'chart-circles',\n 'chart-donut',\n 'chart-dots',\n 'chart-line',\n 'chart-pie',\n 'chart-radar',\n 'check',\n 'checkbox',\n 'checklist',\n 'checks',\n 'chevron-down',\n 'chevron-left',\n 'chevron-right',\n 'chevron-top',\n 'chevrons-left',\n 'chevrons-right',\n 'circle-caret-right',\n 'circle-check',\n 'circle-x',\n 'circuit-alternate',\n 'circuit-ground-digital',\n 'clipboard-check',\n 'clipboard-list',\n 'clipboard-plus',\n 'clipboard-text',\n 'clipboard-x',\n 'clipboard',\n 'clock-edit',\n 'clock',\n 'cloud-data-connection',\n 'cloud-download',\n 'cloud-rain',\n 'cloud-snow',\n 'cloud-upload',\n 'cloud',\n 'color-picker',\n 'color-swatch',\n 'columns-1',\n 'columns-2',\n 'columns-3',\n 'compass',\n 'contract',\n 'cookie',\n 'copy',\n 'cpu',\n 'crane',\n 'credit-card',\n 'crop',\n 'cross',\n 'crown',\n 'currency-bitcoin',\n 'currency-dollar',\n 'currency-ethereum',\n 'currency-euro',\n 'cut',\n 'dashboard',\n 'database',\n 'device-desktop',\n 'device-floppy',\n 'device-gamepad',\n 'device-laptop',\n 'device-mobile-rotated',\n 'device-mobile',\n 'device-tablet',\n 'device-watch',\n 'devices',\n 'dialpad',\n 'direction-horizontal',\n 'direction-sign',\n 'direction',\n 'discount',\n 'door-enter',\n 'door-exit',\n 'door-off',\n 'dots-vertical',\n 'dots',\n 'download',\n 'drone',\n 'droplet-filled',\n 'droplet-half',\n 'droplet',\n 'droplets',\n 'edit',\n 'empty',\n 'engine',\n 'equal-not',\n 'eraser-off',\n 'eraser',\n 'external-link',\n 'eye-off',\n 'eye',\n 'face-id',\n 'feather',\n 'file-alert',\n 'file-analytics',\n 'file-check',\n 'file-code',\n 'file-download',\n 'file-export',\n 'file-horizontal',\n 'file-import',\n 'file-plus',\n 'file-search',\n 'file-text-bookmark',\n 'file-text',\n 'file-type-bmp',\n 'file-type-css',\n 'file-type-csv',\n 'file-type-doc',\n 'file-type-html',\n 'file-type-jpg',\n 'file-type-js',\n 'file-type-pdf',\n 'file-type-png',\n 'file-type-ppt',\n 'file-type-xls',\n 'file-type-xml',\n 'file-type-zip',\n 'file-upload',\n 'file-x',\n 'file-zip',\n 'file',\n 'files-off',\n 'files',\n 'filter-off',\n 'filter-sort',\n 'filter',\n 'fingerprint',\n 'fire-extinguisher',\n 'flag',\n 'flame',\n 'flip-horizontal',\n 'flip-vertical',\n 'folder-minus',\n 'folder-off',\n 'folder-plus',\n 'folder-x',\n 'folder',\n 'folders',\n 'frame',\n 'gas-station',\n 'gauge-off',\n 'gauge',\n 'gift',\n 'git-branch',\n 'git-compare',\n 'gps',\n 'grid-dots',\n 'grip-horizontal',\n 'grip-vertical',\n 'hand-stop',\n 'hand-waving',\n 'hash',\n 'haze',\n 'headphones-off',\n 'headphones',\n 'headset',\n 'heart-off',\n 'heart',\n 'heartbeat',\n 'helicopter',\n 'helmet-swopp',\n 'helmet',\n 'help',\n 'history',\n 'home',\n 'hourglass-empty',\n 'hourglass-high',\n 'hourglass-low',\n 'hourglass-off',\n 'hourglass',\n 'inbox',\n 'info-circle',\n 'keyboard-hide',\n 'keyboard-show',\n 'keyboard',\n 'layout-board-split',\n 'layout-dashboard',\n 'layout-grid',\n 'layout-sidebar-left-collapse',\n 'layout-sidebar-left-expand',\n 'layout-sidebar-right-collapse',\n 'layout-sidebar-right-expand',\n 'layout',\n 'leaf',\n 'lifebuoy',\n 'link',\n 'list-search',\n 'list',\n 'loader',\n 'location',\n 'lock-off',\n 'lock-open',\n 'lock',\n 'login',\n 'logout',\n 'mail-forward',\n 'mail-opened',\n 'mail',\n 'map-pin-2',\n 'map-pin-off',\n 'map-pin',\n 'map',\n 'master-data',\n 'menu',\n 'message-dots',\n 'message-off',\n 'message',\n 'messages',\n 'microphone-off',\n 'microphone',\n 'minus',\n 'mist',\n 'moon',\n 'motorbike',\n 'mouse',\n 'movie',\n 'network',\n 'news',\n 'note',\n 'notebook',\n 'notes',\n 'offshore-station',\n 'package',\n 'palette',\n 'paperclip',\n 'pencil',\n 'phone-call',\n 'phone-calling',\n 'phone-check',\n 'phone-incoming',\n 'phone-off',\n 'phone-outgoing',\n 'phone',\n 'photo-off',\n 'photo',\n 'pig',\n 'pin',\n 'pinned-off',\n 'pinned',\n 'plane-off',\n 'plane',\n 'plant',\n 'player-pause',\n 'player-play',\n 'player-skip-back',\n 'player-skip-forward',\n 'player-stop',\n 'player-track-next',\n 'player-track-prev',\n 'plug-connected',\n 'plug',\n 'plus',\n 'power-ac',\n 'power-dc',\n 'power',\n 'presentation-analytics',\n 'presentation',\n 'printer',\n 'propeller',\n 'published',\n 'puzzle-2',\n 'puzzle',\n 'pylon',\n 'qrcode',\n 'quotes-open',\n 'quotes',\n 'radar',\n 'radio',\n 'radioactive',\n 'receipt-dollar',\n 'receipt-euro',\n 'receipt',\n 'recharging',\n 'recycle',\n 'refresh-alert',\n 'refresh-off',\n 'refresh',\n 'repeat-once',\n 'repeat',\n 'replace',\n 'report-analytics',\n 'report-medical',\n 'report-search',\n 'report',\n 'ripple-off',\n 'ripple',\n 'rocket',\n 'rotate-2',\n 'rotate-clockwise-2',\n 'rotate-clockwise',\n 'rotate-dot',\n 'rotate',\n 'router',\n 'ruler-measure',\n 'sailboat',\n 'satellite',\n 'scale',\n 'school',\n 'scissors',\n 'scooter-electric',\n 'screenshot',\n 'search',\n 'seeding',\n 'select',\n 'selector',\n 'send',\n 'server',\n 'settings',\n 'shape',\n 'share-2',\n 'share',\n 'shield-check',\n 'shield-lock',\n 'shield-off',\n 'shield-x',\n 'shield',\n 'ship-off',\n 'ship',\n 'shopping-cart',\n 'slash',\n 'smart-home',\n 'snowflake',\n 'solar-panel',\n 'sort-ascending-letters',\n 'sort-ascending-numbers',\n 'sort-descending-letters',\n 'sort-descending-numbers',\n 'spacing-horizontal',\n 'spacing-vertical',\n 'sparkles',\n 'speakerphone',\n 'stack',\n 'stairs',\n 'star',\n 'sun',\n 'sunrise',\n 'sunset',\n 'switch-horizontal',\n 'switch-vertical',\n 'table',\n 'tag',\n 'tank-empty-fill',\n 'tank-full-fill',\n 'tank-medium-fill',\n 'temperature-off',\n 'temperature',\n 'template',\n 'terminal',\n 'text-size',\n 'text',\n 'thumb-down',\n 'thumb-up',\n 'ticket',\n 'timeline',\n 'tir',\n 'tool',\n 'tools',\n 'train',\n 'trash-off',\n 'trash',\n 'tree',\n 'trees',\n 'truck-delivery',\n 'truck',\n 'umbrella',\n 'unlink',\n 'upload',\n 'user-circle',\n 'user-exclamation',\n 'user-minus',\n 'user-off',\n 'user-plus',\n 'user-worker',\n 'user',\n 'users',\n 'versions',\n 'video-minus',\n 'video-off',\n 'video-plus',\n 'video',\n 'volume-2',\n 'volume-3',\n 'wallet',\n 'wand',\n 'wave',\n 'waves',\n 'wifi-off',\n 'wifi',\n 'wind-direction',\n 'wind',\n 'windmill',\n 'wood',\n 'world-code',\n 'world',\n 'writing',\n 'x',\n 'zoom-reset',\n] as const;\nexport type IconName = (typeof iconNames)[number];\n"],"mappings":"mzBAOgBA,EAAUC,GACxB,MAAMC,EAAQ,IAAIC,MAChB,GACA,CACE,GAAAC,CAAIC,EAASC,GACX,OAAOA,C,IAIb,OAAOL,EAAIC,EACb,C,kKCfaK,EAAY,CACvB,mBACA,eACA,aACA,WACA,eACA,yBACA,iBACA,cACA,YACA,mBACA,eACA,iBACA,eACA,aACA,cACA,aACA,OACA,UACA,QACA,gBACA,aACA,kBACA,mBACA,aACA,mBACA,gBACA,aACA,cACA,gBACA,iBACA,WACA,kBACA,kBACA,kBACA,kBACA,cACA,eACA,OACA,MACA,SACA,YACA,YACA,YACA,YACA,qBACA,mBACA,cACA,cACA,UACA,WACA,eACA,OACA,OACA,sBACA,gBACA,YACA,WACA,OACA,OACA,eACA,WACA,YACA,gBACA,eACA,iBACA,kBACA,iBACA,UACA,gBACA,YACA,kBACA,gBACA,gBACA,eACA,YACA,UACA,QACA,gBACA,mBACA,sBACA,iBACA,WACA,WACA,OACA,OACA,gBACA,WACA,aACA,SACA,YACA,MACA,UACA,gBACA,OACA,OACA,OACA,gBACA,aACA,kBACA,aACA,wBACA,eACA,YACA,eACA,gBACA,cACA,aACA,aACA,YACA,cACA,QACA,WACA,YACA,SACA,eACA,eACA,gBACA,cACA,gBACA,iBACA,qBACA,eACA,WACA,oBACA,yBACA,kBACA,iBACA,iBACA,iBACA,cACA,YACA,aACA,QACA,wBACA,iBACA,aACA,aACA,eACA,QACA,eACA,eACA,YACA,YACA,YACA,UACA,WACA,SACA,OACA,MACA,QACA,cACA,OACA,QACA,QACA,mBACA,kBACA,oBACA,gBACA,MACA,YACA,WACA,iBACA,gBACA,iBACA,gBACA,wBACA,gBACA,gBACA,eACA,UACA,UACA,uBACA,iBACA,YACA,WACA,aACA,YACA,WACA,gBACA,OACA,WACA,QACA,iBACA,eACA,UACA,WACA,OACA,QACA,SACA,YACA,aACA,SACA,gBACA,UACA,MACA,UACA,UACA,aACA,iBACA,aACA,YACA,gBACA,cACA,kBACA,cACA,YACA,cACA,qBACA,YACA,gBACA,gBACA,gBACA,gBACA,iBACA,gBACA,eACA,gBACA,gBACA,gBACA,gBACA,gBACA,gBACA,cACA,SACA,WACA,OACA,YACA,QACA,aACA,cACA,SACA,cACA,oBACA,OACA,QACA,kBACA,gBACA,eACA,aACA,cACA,WACA,SACA,UACA,QACA,cACA,YACA,QACA,OACA,aACA,cACA,MACA,YACA,kBACA,gBACA,YACA,cACA,OACA,OACA,iBACA,aACA,UACA,YACA,QACA,YACA,aACA,eACA,SACA,OACA,UACA,OACA,kBACA,iBACA,gBACA,gBACA,YACA,QACA,cACA,gBACA,gBACA,WACA,qBACA,mBACA,cACA,+BACA,6BACA,gCACA,8BACA,SACA,OACA,WACA,OACA,cACA,OACA,SACA,WACA,WACA,YACA,OACA,QACA,SACA,eACA,cACA,OACA,YACA,cACA,UACA,MACA,cACA,OACA,eACA,cACA,UACA,WACA,iBACA,aACA,QACA,OACA,OACA,YACA,QACA,QACA,UACA,OACA,OACA,WACA,QACA,mBACA,UACA,UACA,YACA,SACA,aACA,gBACA,cACA,iBACA,YACA,iBACA,QACA,YACA,QACA,MACA,MACA,aACA,SACA,YACA,QACA,QACA,eACA,cACA,mBACA,sBACA,cACA,oBACA,oBACA,iBACA,OACA,OACA,WACA,WACA,QACA,yBACA,eACA,UACA,YACA,YACA,WACA,SACA,QACA,SACA,cACA,SACA,QACA,QACA,cACA,iBACA,eACA,UACA,aACA,UACA,gBACA,cACA,UACA,cACA,SACA,UACA,mBACA,iBACA,gBACA,SACA,aACA,SACA,SACA,WACA,qBACA,mBACA,aACA,SACA,SACA,gBACA,WACA,YACA,QACA,SACA,WACA,mBACA,aACA,SACA,UACA,SACA,WACA,OACA,SACA,WACA,QACA,UACA,QACA,eACA,cACA,aACA,WACA,SACA,WACA,OACA,gBACA,QACA,aACA,YACA,cACA,yBACA,yBACA,0BACA,0BACA,qBACA,mBACA,WACA,eACA,QACA,SACA,OACA,MACA,UACA,SACA,oBACA,kBACA,QACA,MACA,kBACA,iBACA,mBACA,kBACA,cACA,WACA,WACA,YACA,OACA,aACA,WACA,SACA,WACA,MACA,OACA,QACA,QACA,YACA,QACA,OACA,QACA,iBACA,QACA,WACA,SACA,SACA,cACA,mBACA,aACA,WACA,YACA,cACA,OACA,QACA,WACA,cACA,YACA,aACA,QACA,WACA,WACA,SACA,OACA,OACA,QACA,WACA,OACA,iBACA,OACA,WACA,OACA,aACA,QACA,UACA,IACA,qB","ignoreList":[]}
1
+ {"version":3,"names":["nameof","key","proxy","Proxy","get","_target","prop","iconNames"],"sources":["src/utils/class.utils.ts","src/components/nv-icon/nv-icons.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\n\n/**\n * Get the name of a property in an object or class instance.\n * @param {function} key The key of the property.\n * @returns {string} The name of the property.\n */\nexport function nameof<T>(key: (x: T) => any): string {\n const proxy = new Proxy(\n {},\n {\n get(_target, prop) {\n return prop;\n },\n },\n );\n return key(proxy as T);\n}\n","/** Available icons */\n\nexport const iconNames = [\n 'access-point-off',\n 'access-point',\n 'accessible',\n 'activity',\n 'address-book',\n 'adjustments-horizontal',\n 'adjustments-up',\n 'adjustments',\n 'affiliate',\n 'air-conditioning',\n 'alert-circle',\n 'alert-triangle',\n 'align-center',\n 'align-left',\n 'align-right',\n 'app-window',\n 'apps',\n 'archive',\n 'areas',\n 'arrow-back-up',\n 'arrow-back',\n 'arrow-down-left',\n 'arrow-down-right',\n 'arrow-down',\n 'arrow-forward-up',\n 'arrow-forward',\n 'arrow-left',\n 'arrow-right',\n 'arrow-up-left',\n 'arrow-up-right',\n 'arrow-up',\n 'arrows-diagonal',\n 'arrows-exchange',\n 'arrows-maximize',\n 'arrows-minimize',\n 'arrows-move',\n 'aspect-ratio',\n 'atom',\n 'ban',\n 'basket',\n 'battery-1',\n 'battery-2',\n 'battery-3',\n 'battery-4',\n 'battery-automotive',\n 'battery-charging',\n 'battery-eco',\n 'battery-off',\n 'battery',\n 'bell-off',\n 'bell-ringing',\n 'bell',\n 'bike',\n 'bluetooth-connected',\n 'bluetooth-off',\n 'bluetooth',\n 'bolt-off',\n 'bolt',\n 'book',\n 'bookmark-off',\n 'bookmark',\n 'bookmarks',\n 'box-align-top',\n 'box-multiple',\n 'brand-facebook',\n 'brand-instagram',\n 'brand-linkedin',\n 'brand-x',\n 'brand-youtube',\n 'briefcase',\n 'brightness-down',\n 'brightness-up',\n 'browser-check',\n 'browser-plus',\n 'browser-x',\n 'browser',\n 'brush',\n 'building-bank',\n 'building-factory',\n 'building-lighthouse',\n 'building-store',\n 'building',\n 'bulb-off',\n 'bulb',\n 'cake',\n 'calendar-time',\n 'calendar',\n 'camera-off',\n 'camera',\n 'car-crane',\n 'car',\n 'caravan',\n 'cash-banknote',\n 'cash',\n 'cast',\n 'cell',\n 'charging-pile',\n 'chart-arcs',\n 'chart-area-line',\n 'chart-area',\n 'chart-arrows-vertical',\n 'chart-arrows',\n 'chart-bar',\n 'chart-bubble',\n 'chart-circles',\n 'chart-donut',\n 'chart-dots',\n 'chart-line',\n 'chart-pie',\n 'chart-radar',\n 'check',\n 'checkbox',\n 'checklist',\n 'checks',\n 'chevron-down',\n 'chevron-left',\n 'chevron-right',\n 'chevron-top',\n 'chevrons-left',\n 'chevrons-right',\n 'circle-caret-right',\n 'circle-check',\n 'circle-x',\n 'circuit-alternate',\n 'circuit-ground-digital',\n 'clipboard-check',\n 'clipboard-list',\n 'clipboard-plus',\n 'clipboard-text',\n 'clipboard-x',\n 'clipboard',\n 'clock-edit',\n 'clock',\n 'cloud-data-connection',\n 'cloud-download',\n 'cloud-rain',\n 'cloud-snow',\n 'cloud-upload',\n 'cloud',\n 'color-picker',\n 'color-swatch',\n 'columns-1',\n 'columns-2',\n 'columns-3',\n 'compass',\n 'contract',\n 'cookie',\n 'copy',\n 'cpu',\n 'crane',\n 'credit-card',\n 'crop',\n 'cross',\n 'crown',\n 'currency-bitcoin',\n 'currency-dollar',\n 'currency-ethereum',\n 'currency-euro',\n 'cut',\n 'dashboard',\n 'database',\n 'device-desktop',\n 'device-floppy',\n 'device-gamepad',\n 'device-laptop',\n 'device-mobile-rotated',\n 'device-mobile',\n 'device-tablet',\n 'device-watch',\n 'devices',\n 'dialpad',\n 'direction-horizontal',\n 'direction-sign',\n 'direction',\n 'discount',\n 'door-enter',\n 'door-exit',\n 'door-off',\n 'dots-vertical',\n 'dots',\n 'download',\n 'drone',\n 'droplet-filled',\n 'droplet-half',\n 'droplet',\n 'droplets',\n 'edit',\n 'empty',\n 'engine',\n 'equal-not',\n 'eraser-off',\n 'eraser',\n 'external-link',\n 'eye-off',\n 'eye',\n 'face-id',\n 'feather',\n 'file-alert',\n 'file-analytics',\n 'file-check',\n 'file-code',\n 'file-download',\n 'file-export',\n 'file-horizontal',\n 'file-import',\n 'file-plus',\n 'file-search',\n 'file-text-bookmark',\n 'file-text',\n 'file-type-bmp',\n 'file-type-css',\n 'file-type-csv',\n 'file-type-doc',\n 'file-type-html',\n 'file-type-jpg',\n 'file-type-js',\n 'file-type-pdf',\n 'file-type-png',\n 'file-type-ppt',\n 'file-type-xls',\n 'file-type-xml',\n 'file-type-zip',\n 'file-upload',\n 'file-x',\n 'file-zip',\n 'file',\n 'files-off',\n 'files',\n 'filter-off',\n 'filter-sort',\n 'filter',\n 'fingerprint',\n 'fire-extinguisher',\n 'flag',\n 'flame',\n 'flip-horizontal',\n 'flip-vertical',\n 'folder-minus',\n 'folder-off',\n 'folder-plus',\n 'folder-x',\n 'folder',\n 'folders',\n 'frame',\n 'gas-station',\n 'gauge-off',\n 'gauge',\n 'gift',\n 'git-branch',\n 'git-compare',\n 'gps',\n 'grid-dots',\n 'grip-horizontal',\n 'grip-vertical',\n 'hand-stop',\n 'hand-waving',\n 'hash',\n 'haze',\n 'headphones-off',\n 'headphones',\n 'headset',\n 'heart-off',\n 'heart',\n 'heartbeat',\n 'helicopter',\n 'helmet-swopp',\n 'helmet',\n 'help',\n 'history',\n 'home',\n 'hourglass-empty',\n 'hourglass-high',\n 'hourglass-low',\n 'hourglass-off',\n 'hourglass',\n 'inbox',\n 'info-circle',\n 'keyboard-hide',\n 'keyboard-show',\n 'keyboard',\n 'layout-board-split',\n 'layout-dashboard',\n 'layout-grid',\n 'layout-sidebar-left-collapse',\n 'layout-sidebar-left-expand',\n 'layout-sidebar-right-collapse',\n 'layout-sidebar-right-expand',\n 'layout',\n 'leaf',\n 'lifebuoy',\n 'link',\n 'list-search',\n 'list',\n 'loader',\n 'location',\n 'lock-off',\n 'lock-open',\n 'lock',\n 'login',\n 'logout',\n 'mail-forward',\n 'mail-opened',\n 'mail',\n 'map-pin-2',\n 'map-pin-off',\n 'map-pin',\n 'map',\n 'master-data',\n 'menu',\n 'message-dots',\n 'message-off',\n 'message',\n 'messages',\n 'microphone-off',\n 'microphone',\n 'minus',\n 'mist',\n 'moon',\n 'motorbike',\n 'mouse',\n 'movie',\n 'network',\n 'news',\n 'note',\n 'notebook',\n 'notes',\n 'offshore-station',\n 'package',\n 'palette',\n 'paperclip',\n 'pencil',\n 'phone-call',\n 'phone-calling',\n 'phone-check',\n 'phone-incoming',\n 'phone-off',\n 'phone-outgoing',\n 'phone',\n 'photo-off',\n 'photo',\n 'pig',\n 'pin',\n 'pinned-off',\n 'pinned',\n 'plane-off',\n 'plane',\n 'plant',\n 'player-pause',\n 'player-play',\n 'player-skip-back',\n 'player-skip-forward',\n 'player-stop',\n 'player-track-next',\n 'player-track-prev',\n 'plug-connected',\n 'plug',\n 'plus',\n 'power-ac',\n 'power-dc',\n 'power',\n 'presentation-analytics',\n 'presentation',\n 'printer',\n 'propeller',\n 'published',\n 'puzzle-2',\n 'puzzle',\n 'pylon',\n 'qrcode',\n 'quotes-open',\n 'quotes',\n 'radar',\n 'radio',\n 'radioactive',\n 'receipt-dollar',\n 'receipt-euro',\n 'receipt',\n 'recharging',\n 'recycle',\n 'refresh-alert',\n 'refresh-off',\n 'refresh',\n 'repeat-once',\n 'repeat',\n 'replace',\n 'report-analytics',\n 'report-medical',\n 'report-search',\n 'report',\n 'ripple-off',\n 'ripple',\n 'rocket',\n 'rotate-2',\n 'rotate-clockwise-2',\n 'rotate-clockwise',\n 'rotate-dot',\n 'rotate',\n 'router',\n 'ruler-measure',\n 'sailboat',\n 'satellite',\n 'scale',\n 'school',\n 'scissors',\n 'scooter-electric',\n 'screenshot',\n 'search',\n 'seeding',\n 'select',\n 'selector',\n 'send',\n 'server',\n 'settings',\n 'shape',\n 'share-2',\n 'share',\n 'shield-check',\n 'shield-lock',\n 'shield-off',\n 'shield-x',\n 'shield',\n 'ship-off',\n 'ship',\n 'shopping-cart',\n 'slash',\n 'smart-home',\n 'snowflake',\n 'solar-panel',\n 'sort-ascending-letters',\n 'sort-ascending-numbers',\n 'sort-descending-letters',\n 'sort-descending-numbers',\n 'spacing-horizontal',\n 'spacing-vertical',\n 'sparkles',\n 'speakerphone',\n 'stack',\n 'stairs',\n 'star',\n 'sun',\n 'sunrise',\n 'sunset',\n 'switch-horizontal',\n 'switch-vertical',\n 'table',\n 'tag',\n 'tank-empty-fill',\n 'tank-full-fill',\n 'tank-medium-fill',\n 'temperature-off',\n 'temperature',\n 'template',\n 'terminal',\n 'text-size',\n 'text',\n 'thumb-down',\n 'thumb-up',\n 'ticket',\n 'timeline',\n 'tir',\n 'tool',\n 'tools',\n 'train',\n 'trash-off',\n 'trash',\n 'tree',\n 'trees',\n 'truck-delivery',\n 'truck',\n 'umbrella',\n 'unlink',\n 'upload',\n 'user-circle',\n 'user-exclamation',\n 'user-minus',\n 'user-off',\n 'user-plus',\n 'user-worker',\n 'user',\n 'users',\n 'versions',\n 'video-minus',\n 'video-off',\n 'video-plus',\n 'video',\n 'volume-2',\n 'volume-3',\n 'volume',\n 'wand',\n 'wave',\n 'waves',\n 'wifi-off',\n 'wifi',\n 'wind-direction',\n 'wind',\n 'windmill',\n 'wood',\n 'world-code',\n 'world',\n 'writing',\n 'x',\n 'zoom-reset',\n] as const;\nexport type IconName = (typeof iconNames)[number];\n"],"mappings":"mzBAOgBA,EAAUC,GACxB,MAAMC,EAAQ,IAAIC,MAChB,GACA,CACE,GAAAC,CAAIC,EAASC,GACX,OAAOA,C,IAIb,OAAOL,EAAIC,EACb,C,kKCfaK,EAAY,CACvB,mBACA,eACA,aACA,WACA,eACA,yBACA,iBACA,cACA,YACA,mBACA,eACA,iBACA,eACA,aACA,cACA,aACA,OACA,UACA,QACA,gBACA,aACA,kBACA,mBACA,aACA,mBACA,gBACA,aACA,cACA,gBACA,iBACA,WACA,kBACA,kBACA,kBACA,kBACA,cACA,eACA,OACA,MACA,SACA,YACA,YACA,YACA,YACA,qBACA,mBACA,cACA,cACA,UACA,WACA,eACA,OACA,OACA,sBACA,gBACA,YACA,WACA,OACA,OACA,eACA,WACA,YACA,gBACA,eACA,iBACA,kBACA,iBACA,UACA,gBACA,YACA,kBACA,gBACA,gBACA,eACA,YACA,UACA,QACA,gBACA,mBACA,sBACA,iBACA,WACA,WACA,OACA,OACA,gBACA,WACA,aACA,SACA,YACA,MACA,UACA,gBACA,OACA,OACA,OACA,gBACA,aACA,kBACA,aACA,wBACA,eACA,YACA,eACA,gBACA,cACA,aACA,aACA,YACA,cACA,QACA,WACA,YACA,SACA,eACA,eACA,gBACA,cACA,gBACA,iBACA,qBACA,eACA,WACA,oBACA,yBACA,kBACA,iBACA,iBACA,iBACA,cACA,YACA,aACA,QACA,wBACA,iBACA,aACA,aACA,eACA,QACA,eACA,eACA,YACA,YACA,YACA,UACA,WACA,SACA,OACA,MACA,QACA,cACA,OACA,QACA,QACA,mBACA,kBACA,oBACA,gBACA,MACA,YACA,WACA,iBACA,gBACA,iBACA,gBACA,wBACA,gBACA,gBACA,eACA,UACA,UACA,uBACA,iBACA,YACA,WACA,aACA,YACA,WACA,gBACA,OACA,WACA,QACA,iBACA,eACA,UACA,WACA,OACA,QACA,SACA,YACA,aACA,SACA,gBACA,UACA,MACA,UACA,UACA,aACA,iBACA,aACA,YACA,gBACA,cACA,kBACA,cACA,YACA,cACA,qBACA,YACA,gBACA,gBACA,gBACA,gBACA,iBACA,gBACA,eACA,gBACA,gBACA,gBACA,gBACA,gBACA,gBACA,cACA,SACA,WACA,OACA,YACA,QACA,aACA,cACA,SACA,cACA,oBACA,OACA,QACA,kBACA,gBACA,eACA,aACA,cACA,WACA,SACA,UACA,QACA,cACA,YACA,QACA,OACA,aACA,cACA,MACA,YACA,kBACA,gBACA,YACA,cACA,OACA,OACA,iBACA,aACA,UACA,YACA,QACA,YACA,aACA,eACA,SACA,OACA,UACA,OACA,kBACA,iBACA,gBACA,gBACA,YACA,QACA,cACA,gBACA,gBACA,WACA,qBACA,mBACA,cACA,+BACA,6BACA,gCACA,8BACA,SACA,OACA,WACA,OACA,cACA,OACA,SACA,WACA,WACA,YACA,OACA,QACA,SACA,eACA,cACA,OACA,YACA,cACA,UACA,MACA,cACA,OACA,eACA,cACA,UACA,WACA,iBACA,aACA,QACA,OACA,OACA,YACA,QACA,QACA,UACA,OACA,OACA,WACA,QACA,mBACA,UACA,UACA,YACA,SACA,aACA,gBACA,cACA,iBACA,YACA,iBACA,QACA,YACA,QACA,MACA,MACA,aACA,SACA,YACA,QACA,QACA,eACA,cACA,mBACA,sBACA,cACA,oBACA,oBACA,iBACA,OACA,OACA,WACA,WACA,QACA,yBACA,eACA,UACA,YACA,YACA,WACA,SACA,QACA,SACA,cACA,SACA,QACA,QACA,cACA,iBACA,eACA,UACA,aACA,UACA,gBACA,cACA,UACA,cACA,SACA,UACA,mBACA,iBACA,gBACA,SACA,aACA,SACA,SACA,WACA,qBACA,mBACA,aACA,SACA,SACA,gBACA,WACA,YACA,QACA,SACA,WACA,mBACA,aACA,SACA,UACA,SACA,WACA,OACA,SACA,WACA,QACA,UACA,QACA,eACA,cACA,aACA,WACA,SACA,WACA,OACA,gBACA,QACA,aACA,YACA,cACA,yBACA,yBACA,0BACA,0BACA,qBACA,mBACA,WACA,eACA,QACA,SACA,OACA,MACA,UACA,SACA,oBACA,kBACA,QACA,MACA,kBACA,iBACA,mBACA,kBACA,cACA,WACA,WACA,YACA,OACA,aACA,WACA,SACA,WACA,MACA,OACA,QACA,QACA,YACA,QACA,OACA,QACA,iBACA,QACA,WACA,SACA,SACA,cACA,mBACA,aACA,WACA,YACA,cACA,OACA,QACA,WACA,cACA,YACA,aACA,QACA,WACA,WACA,SACA,OACA,OACA,QACA,WACA,OACA,iBACA,OACA,WACA,OACA,aACA,QACA,UACA,IACA,qB","ignoreList":[]}