nexa-ui-kit 0.11.8 → 0.11.9

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.
@@ -197,6 +197,23 @@ const __style = `.n-btn[data-v-6c6a1bc6]{
197
197
  }
198
198
  .n-btn-info[data-v-6c6a1bc6]:focus-visible{ box-shadow: var(--n-ring-info); }
199
199
 
200
+ /* Ghost */
201
+ .n-btn-ghost[data-v-6c6a1bc6]{
202
+ background-color: transparent;
203
+ color: var(--n-color-text);
204
+ border-color: transparent;
205
+ }
206
+ .n-btn-ghost[data-v-6c6a1bc6]:hover:not(:disabled){
207
+ background-color: var(--n-color-surface-hover);
208
+ color: var(--n-color-text);
209
+ }
210
+ .n-btn-ghost[data-v-6c6a1bc6]:active:not(:disabled), .is-pressed.n-btn-ghost[data-v-6c6a1bc6]{
211
+ background-color: var(--n-color-border);
212
+ }
213
+ .n-btn-ghost[data-v-6c6a1bc6]:focus-visible{
214
+ box-shadow: var(--n-ring-surface);
215
+ }
216
+
200
217
  /* Outlined variants */
201
218
  .is-outlined[data-v-6c6a1bc6]{
202
219
  background-color: transparent !important;
@@ -187,6 +187,23 @@ const handleClick = (e) => {
187
187
  }
188
188
  .n-btn-info:focus-visible { box-shadow: var(--n-ring-info); }
189
189
 
190
+ /* Ghost */
191
+ .n-btn-ghost {
192
+ background-color: transparent;
193
+ color: var(--n-color-text);
194
+ border-color: transparent;
195
+ }
196
+ .n-btn-ghost:hover:not(:disabled) {
197
+ background-color: var(--n-color-surface-hover);
198
+ color: var(--n-color-text);
199
+ }
200
+ .n-btn-ghost:active:not(:disabled), .is-pressed.n-btn-ghost {
201
+ background-color: var(--n-color-border);
202
+ }
203
+ .n-btn-ghost:focus-visible {
204
+ box-shadow: var(--n-ring-surface);
205
+ }
206
+
190
207
  /* Outlined variants */
191
208
  .is-outlined {
192
209
  background-color: transparent !important;
@@ -63,7 +63,7 @@ const __style = `.n-checkbox[data-v-e798c5c]{
63
63
  user-select: none;
64
64
  padding: 0.5rem 0.75rem;
65
65
  border-radius: var(--n-radius-md);
66
- transition: color var(--n-transition-fast); cubic-bezier(0.16, 1, 0.3, 1);
66
+ transition: color var(--n-transition-fast) cubic-bezier(0.16, 1, 0.3, 1);
67
67
  }
68
68
  .n-checkbox[data-v-e798c5c]:hover:not(.is-disabled){
69
69
  background: rgba(99, 102, 241, 0.08);
@@ -48,7 +48,7 @@ const handleToggle = () => {
48
48
  user-select: none;
49
49
  padding: 0.5rem 0.75rem;
50
50
  border-radius: var(--n-radius-md);
51
- transition: color var(--n-transition-fast); cubic-bezier(0.16, 1, 0.3, 1);
51
+ transition: color var(--n-transition-fast) cubic-bezier(0.16, 1, 0.3, 1);
52
52
  }
53
53
  .n-checkbox:hover:not(.is-disabled) {
54
54
  background: rgba(99, 102, 241, 0.08);
@@ -2,7 +2,7 @@ import { signal, computed, effect, h, hText, defineComponent, registerComponent,
2
2
  import NPaginator from './NPaginator.js'
3
3
 
4
4
  const _sfc_main = defineComponent({
5
- __scopeId: 'data-v-5a84a658',
5
+ __scopeId: 'data-v-4403e88d',
6
6
  __hmrId: 'NDataTable_nexa',
7
7
  props: { value: { type: Array, default: () => [] }, columns: { type: Array, default: () => [] }, stripedRows: { type: Boolean, default: false }, hoverRows: { type: Boolean, default: true }, size: { type: String, default: 'md' }, scrollable: { type: Boolean, default: true }, paginator: { type: Boolean, default: true }, rows: { type: Number, default: 10 }, first: { type: Number, default: 0 }, rowsPerPageOptions: { type: Array, default: () => [10, 20, 50] }, selectionMode: { type: String, default: '' }, selection: { type: null, default: null }, dataKey: { type: String, default: '' }, sortField: { type: String, default: '' }, sortOrder: { type: Number, default: 1 }, resizableColumns: { type: Boolean, default: true }, columnResizeMode: { type: String, default: 'fit' }, filterDisplay: { type: String, default: 'row' }, globalFilter: { type: String, default: '' }, globalFilterFields: { type: Array, default: null }, filters: { type: null, default: null }, lazy: { type: Boolean, default: false }, totalRecords: { type: Number, default: 0 }, emptyMessage: { type: String, default: 'No records found' }, showGridlines: { type: Boolean, default: false }, searchPlaceholder: { type: String, default: 'Search...' }, filterPlaceholder: { type: String, default: 'Filter' }, loading: { type: Boolean, default: false } },
8
8
  emits: ['update:first', 'update:rows', 'update:selection', 'update:sortField', 'update:sortOrder', 'update:globalFilter', 'update:filters', 'updateFirst', 'updateRows', 'updateSelection', 'updateSortField', 'updateSortOrder', 'updateGlobalFilter', 'updateFilters', 'page', 'rowSelect', 'rowUnselect', 'sort', 'filter'],
@@ -167,97 +167,97 @@ const _sfc_main = defineComponent({
167
167
  // Injected render function
168
168
  _sfc_main.render = function(ctx) {
169
169
  let { internalFirst, internalRows, internalSortField, internalSortOrder, internalFilters, effectiveFilters, columnWidths, resizing, internalSelection, lastPropGlobal, lastPropSelection, normalizeColumns, getRowKey, effectiveSelection, isRowSelected, toggleRowSelection, allVisibleSelected, toggleAllVisible, getHeaderContent, getRawValue, getCellContent, matchFilter, filteredRows, sortedRows, totalRecords, visibleRows, setSort, onSortClick, setGlobal, setColumnFilter, onColumnFilterInput, onPage, getWidth, startResize, NPaginator: _ntc_NPaginator, $slots, emit, value, columns, stripedRows, hoverRows, size, scrollable, paginator, rows, first, rowsPerPageOptions, selectionMode, selection, dataKey, sortField, sortOrder, resizableColumns, columnResizeMode, filterDisplay, globalFilter, globalFilterFields, filters, lazy, emptyMessage, showGridlines, searchPlaceholder, filterPlaceholder, loading, Fragment: _ntc_Fragment } = ctx
170
- return h('div', { class: ["n-dt", [`n-dt-${size}`, showGridlines ? 'is-grid' : '', scrollable ? 'is-scroll' : '']], "aria-busy": loading ? 'true' : undefined, "data-v-5a84a658": "" }, [
170
+ return h('div', { class: ["n-dt", [`n-dt-${size}`, showGridlines ? 'is-grid' : '', scrollable ? 'is-scroll' : '']], "aria-busy": loading ? 'true' : undefined, "data-v-4403e88d": "" }, [
171
171
  "\n ",
172
- h('div', { class: "n-dt-toolbar", "data-v-5a84a658": "" }, [
172
+ h('div', { class: "n-dt-toolbar", "data-v-4403e88d": "" }, [
173
173
  "\r\n ",
174
- h('div', { class: "n-dt-global", "data-v-5a84a658": "" }, [
174
+ h('div', { class: "n-dt-global", "data-v-4403e88d": "" }, [
175
175
  "\r\n ",
176
- h('svg', { viewBox: "0 0 24 24", width: "16", height: "16", fill: "none", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round", focusable: "false", "aria-hidden": "true", "data-v-5a84a658": "" }, [
177
- h('circle', { cx: "11", cy: "11", r: "8", "data-v-5a84a658": "" }),
178
- h('line', { x1: "21", y1: "21", x2: "16.65", y2: "16.65", "data-v-5a84a658": "" })
176
+ h('svg', { viewBox: "0 0 24 24", width: "16", height: "16", fill: "none", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round", focusable: "false", "aria-hidden": "true", "data-v-4403e88d": "" }, [
177
+ h('circle', { cx: "11", cy: "11", r: "8", "data-v-4403e88d": "" }),
178
+ h('line', { x1: "21", y1: "21", x2: "16.65", y2: "16.65", "data-v-4403e88d": "" })
179
179
  ]),
180
180
  "\r\n ",
181
- h('input', { class: "n-dt-global-input", value: effectiveFilters.value.__global || '', placeholder: searchPlaceholder, onInput: setGlobal, "data-v-5a84a658": "" }),
181
+ h('input', { class: "n-dt-global-input", value: effectiveFilters.value.__global || '', placeholder: searchPlaceholder, onInput: setGlobal, "data-v-4403e88d": "" }),
182
182
  "\r\n "
183
183
  ]),
184
184
  "\r\n "
185
185
  ]),
186
186
  "\r\n ",
187
- h('div', { class: "n-dt-wrapper", "data-v-5a84a658": "" }, [
187
+ h('div', { class: "n-dt-wrapper", "data-v-4403e88d": "" }, [
188
188
  "\r\n ",
189
- h('table', { class: ["n-dt-table", { 'is-striped': stripedRows, 'is-hover': hoverRows }], "data-v-5a84a658": "" }, [
189
+ h('table', { class: ["n-dt-table", { 'is-striped': stripedRows, 'is-hover': hoverRows }], "data-v-4403e88d": "" }, [
190
190
  "\r\n ",
191
- h('thead', { class: "n-dt-thead", "data-v-5a84a658": "" }, [
191
+ h('thead', { class: "n-dt-thead", "data-v-4403e88d": "" }, [
192
192
  "\r\n ",
193
- h('tr', { class: "n-dt-head-row", "data-v-5a84a658": "" }, [
193
+ h('tr', { class: "n-dt-head-row", "data-v-4403e88d": "" }, [
194
194
  "\r\n ",
195
- (selectionMode) ? h('th', { class: "n-dt-th is-selection", "data-v-5a84a658": "" }, [
195
+ (selectionMode) ? h('th', { class: "n-dt-th is-selection", "data-v-4403e88d": "" }, [
196
196
  "\r\n ",
197
- (selectionMode === 'multiple') ? h('button', { class: ["n-dt-selectbox", { 'is-checked': allVisibleSelected.value }], type: "button", onClick: ($event) => { $event.stopPropagation(); (toggleAllVisible)($event) }, "aria-label": allVisibleSelected.value ? 'Deselect all' : 'Select all', "data-v-5a84a658": "" }, [
197
+ (selectionMode === 'multiple') ? h('button', { class: ["n-dt-selectbox", { 'is-checked': allVisibleSelected.value }], type: "button", onClick: ($event) => { $event.stopPropagation(); (toggleAllVisible)($event) }, "aria-label": allVisibleSelected.value ? 'Deselect all' : 'Select all', "data-v-4403e88d": "" }, [
198
198
  "\r\n ",
199
- (allVisibleSelected.value) ? h('svg', { viewBox: "0 0 24 24", width: "14", height: "14", fill: "none", stroke: "currentColor", "stroke-width": "3", "stroke-linecap": "round", "stroke-linejoin": "round", focusable: "false", "aria-hidden": "true", "data-v-5a84a658": "" }, [
200
- h('path', { d: "M20 6L9 17l-5-5", "data-v-5a84a658": "" })
199
+ (allVisibleSelected.value) ? h('svg', { viewBox: "0 0 24 24", width: "14", height: "14", fill: "none", stroke: "currentColor", "stroke-width": "3", "stroke-linecap": "round", "stroke-linejoin": "round", focusable: "false", "aria-hidden": "true", "data-v-4403e88d": "" }, [
200
+ h('path', { d: "M20 6L9 17l-5-5", "data-v-4403e88d": "" })
201
201
  ]) : null
202
202
  ]) : null
203
203
  ]) : null,
204
204
  (normalizeColumns.value).map((col, index) =>
205
- h('th', { class: ["n-dt-th", [`is-${col.align}`, col.sortable ? 'is-sortable' : '']], key: col.field, style: { width: getWidth(col) || undefined, minWidth: col.minWidth }, "data-field": col.field, onClick: onSortClick, "data-v-5a84a658": "" }, [
205
+ h('th', { class: ["n-dt-th", [`is-${col.align}`, col.sortable ? 'is-sortable' : '']], key: col.field, style: { width: getWidth(col) || undefined, minWidth: col.minWidth }, "data-field": col.field, onClick: onSortClick, "data-v-4403e88d": "" }, [
206
206
  "\r\n ",
207
- h('div', { class: "n-dt-th-content", "data-v-5a84a658": "" }, [
207
+ h('div', { class: "n-dt-th-content", "data-v-4403e88d": "" }, [
208
208
  "\r\n ",
209
- h('span', { class: "n-dt-th-text", "data-v-5a84a658": "" }, [
209
+ h('span', { class: "n-dt-th-text", "data-v-4403e88d": "" }, [
210
210
  $slots.value && $slots.value[`header-${col.field}`] ? $slots[`header-${col.field}`]({ column: col }) : getHeaderContent(col)
211
211
  ]),
212
212
  "\r\n ",
213
- (col.sortable) ? h('span', { class: ["n-dt-sort", { 'is-active': internalSortField.value === col.field }], "data-v-5a84a658": "" }, [
213
+ (col.sortable) ? h('span', { class: ["n-dt-sort", { 'is-active': internalSortField.value === col.field }], "data-v-4403e88d": "" }, [
214
214
  "\r\n ",
215
- h('svg', { class: ["n-dt-sort-arrow n-dt-sort-arrow-up", { 'is-on': internalSortField.value === col.field && internalSortOrder.value === 1 }], viewBox: "0 0 24 24", width: "16", height: "16", fill: "none", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round", focusable: "false", "aria-hidden": "true", "data-v-5a84a658": "" }, [
216
- h('path', { d: "M12 19V5M5 12l7-7 7 7", "data-v-5a84a658": "" })
215
+ h('svg', { class: ["n-dt-sort-arrow n-dt-sort-arrow-up", { 'is-on': internalSortField.value === col.field && internalSortOrder.value === 1 }], viewBox: "0 0 24 24", width: "16", height: "16", fill: "none", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round", focusable: "false", "aria-hidden": "true", "data-v-4403e88d": "" }, [
216
+ h('path', { d: "M12 19V5M5 12l7-7 7 7", "data-v-4403e88d": "" })
217
217
  ]),
218
218
  "\r\n ",
219
- h('svg', { class: ["n-dt-sort-arrow n-dt-sort-arrow-down", { 'is-on': internalSortField.value === col.field && internalSortOrder.value === -1 }], viewBox: "0 0 24 24", width: "16", height: "16", fill: "none", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round", focusable: "false", "aria-hidden": "true", "data-v-5a84a658": "" }, [
220
- h('path', { d: "M12 5v14M19 12l-7 7-7-7", "data-v-5a84a658": "" })
219
+ h('svg', { class: ["n-dt-sort-arrow n-dt-sort-arrow-down", { 'is-on': internalSortField.value === col.field && internalSortOrder.value === -1 }], viewBox: "0 0 24 24", width: "16", height: "16", fill: "none", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round", focusable: "false", "aria-hidden": "true", "data-v-4403e88d": "" }, [
220
+ h('path', { d: "M12 5v14M19 12l-7 7-7-7", "data-v-4403e88d": "" })
221
221
  ]),
222
222
  "\r\n "
223
223
  ]) : null
224
224
  ]),
225
225
  "\r\n ",
226
- (resizableColumns) ? h('span', { class: "n-dt-resizer", "data-field": col.field, onMousedown: startResize, "data-v-5a84a658": "" }) : null
226
+ (resizableColumns) ? h('span', { class: "n-dt-resizer", "data-field": col.field, onMousedown: startResize, "data-v-4403e88d": "" }) : null
227
227
  ])
228
228
  ),
229
229
  "\r\n "
230
230
  ]),
231
231
  "\r\n ",
232
- (filterDisplay === 'row') ? h('tr', { class: "n-dt-filter-row", "data-v-5a84a658": "" }, [
232
+ (filterDisplay === 'row') ? h('tr', { class: "n-dt-filter-row", "data-v-4403e88d": "" }, [
233
233
  "\r\n ",
234
- (selectionMode) ? h('th', { class: "n-dt-th is-selection", "data-v-5a84a658": "" }) : null,
234
+ (selectionMode) ? h('th', { class: "n-dt-th is-selection", "data-v-4403e88d": "" }) : null,
235
235
  (normalizeColumns.value).map((col, index) =>
236
- h('th', { class: ["n-dt-th", `is-${col.align}`], key: col.field, style: { width: getWidth(col) || undefined, minWidth: col.minWidth }, "data-v-5a84a658": "" }, [
236
+ h('th', { class: ["n-dt-th", `is-${col.align}`], key: col.field, style: { width: getWidth(col) || undefined, minWidth: col.minWidth }, "data-v-4403e88d": "" }, [
237
237
  "\r\n ",
238
- (col.filterable) ? h('input', { class: "n-dt-filter", "data-field": col.field, value: (effectiveFilters.value[col.field]?.value) || '', placeholder: filterPlaceholder, onInput: onColumnFilterInput, "data-v-5a84a658": "" }) : null
238
+ (col.filterable) ? h('input', { class: "n-dt-filter", "data-field": col.field, value: (effectiveFilters.value[col.field]?.value) || '', placeholder: filterPlaceholder, onInput: onColumnFilterInput, "data-v-4403e88d": "" }) : null
239
239
  ])
240
240
  ),
241
241
  "\r\n "
242
242
  ]) : null
243
243
  ]),
244
244
  "\r\n ",
245
- h('tbody', { class: "n-dt-tbody", "data-v-5a84a658": "" }, [
245
+ h('tbody', { class: "n-dt-tbody", "data-v-4403e88d": "" }, [
246
246
  "\r\n ",
247
247
  (visibleRows.value).map((row, i) =>
248
- h('tr', { class: ["n-dt-row", { 'is-selected': isRowSelected(row, i + internalFirst.value) }], key: getRowKey(row, i + internalFirst.value), onClick: ($event) => { toggleRowSelection(row, i + internalFirst.value) }, "data-v-5a84a658": "" }, [
248
+ h('tr', { class: ["n-dt-row", { 'is-selected': isRowSelected(row, i + internalFirst.value) }], key: getRowKey(row, i + internalFirst.value), onClick: ($event) => { toggleRowSelection(row, i + internalFirst.value) }, "data-v-4403e88d": "" }, [
249
249
  "\r\n ",
250
- (selectionMode) ? h('td', { class: "n-dt-td is-selection", "data-v-5a84a658": "" }, [
250
+ (selectionMode) ? h('td', { class: "n-dt-td is-selection", "data-v-4403e88d": "" }, [
251
251
  "\r\n ",
252
- (selectionMode === 'multiple') ? h('button', { class: ["n-dt-selectbox", { 'is-checked': isRowSelected(row, i + internalFirst.value) }], type: "button", onClick: ($event) => { $event.stopPropagation(); (($event) => { toggleRowSelection(row, i + internalFirst.value) })($event) }, "aria-label": isRowSelected(row, i + internalFirst.value) ? 'Deselect row' : 'Select row', "data-v-5a84a658": "" }, [
252
+ (selectionMode === 'multiple') ? h('button', { class: ["n-dt-selectbox", { 'is-checked': isRowSelected(row, i + internalFirst.value) }], type: "button", onClick: ($event) => { $event.stopPropagation(); (($event) => { toggleRowSelection(row, i + internalFirst.value) })($event) }, "aria-label": isRowSelected(row, i + internalFirst.value) ? 'Deselect row' : 'Select row', "data-v-4403e88d": "" }, [
253
253
  "\r\n ",
254
- (isRowSelected(row, i + internalFirst.value)) ? h('svg', { viewBox: "0 0 24 24", width: "14", height: "14", fill: "none", stroke: "currentColor", "stroke-width": "3", "stroke-linecap": "round", "stroke-linejoin": "round", focusable: "false", "aria-hidden": "true", "data-v-5a84a658": "" }, [
255
- h('path', { d: "M20 6L9 17l-5-5", "data-v-5a84a658": "" })
254
+ (isRowSelected(row, i + internalFirst.value)) ? h('svg', { viewBox: "0 0 24 24", width: "14", height: "14", fill: "none", stroke: "currentColor", "stroke-width": "3", "stroke-linecap": "round", "stroke-linejoin": "round", focusable: "false", "aria-hidden": "true", "data-v-4403e88d": "" }, [
255
+ h('path', { d: "M20 6L9 17l-5-5", "data-v-4403e88d": "" })
256
256
  ]) : null
257
257
  ]) : null
258
258
  ]) : null,
259
259
  (normalizeColumns.value).map((col, index) =>
260
- h('td', { class: ["n-dt-td", `is-${col.align}`], key: col.field, style: { width: getWidth(col) || undefined, minWidth: col.minWidth }, "data-v-5a84a658": "" }, [
260
+ h('td', { class: ["n-dt-td", `is-${col.align}`], key: col.field, style: { width: getWidth(col) || undefined, minWidth: col.minWidth }, "data-v-4403e88d": "" }, [
261
261
  "\r\n ",
262
262
  $slots.value && $slots.value[`body-${col.field}`] ? $slots[`body-${col.field}`]({ data: row, column: col, index: i + internalFirst.value }) : getCellContent(row, col, i + internalFirst.value),
263
263
  "\r\n "
@@ -267,8 +267,8 @@ _sfc_main.render = function(ctx) {
267
267
  ])
268
268
  ),
269
269
  "\r\n ",
270
- (visibleRows.value.length === 0) ? h('tr', { class: "n-dt-empty-row", "data-v-5a84a658": "" }, [
271
- h('td', { class: "n-dt-empty", colspan: normalizeColumns.value.length + (selectionMode ? 1 : 0), "data-v-5a84a658": "" }, [
270
+ (visibleRows.value.length === 0) ? h('tr', { class: "n-dt-empty-row", "data-v-4403e88d": "" }, [
271
+ h('td', { class: "n-dt-empty", colspan: normalizeColumns.value.length + (selectionMode ? 1 : 0), "data-v-4403e88d": "" }, [
272
272
  emptyMessage
273
273
  ])
274
274
  ]) : null
@@ -278,17 +278,273 @@ _sfc_main.render = function(ctx) {
278
278
  "\r\n "
279
279
  ]),
280
280
  "\r\n ",
281
- (paginator) ? h('div', { class: "n-dt-paginator-wrap", "data-v-5a84a658": "" }, [
282
- "\r\n ",
283
- h(_ntc_NPaginator, { first: internalFirst.value, rows: internalRows.value, totalRecords: totalRecords.value, rowsPerPageOptions: rowsPerPageOptions, onPage: onPage, "data-v-5a84a658": "" }),
284
- "\r\n "
281
+ (paginator) ? h('div', { class: "n-dt-paginator-wrap", "data-v-4403e88d": "" }, [
282
+ "\n ",
283
+ h(_ntc_NPaginator, { first: internalFirst.value, rows: internalRows.value, totalRecords: totalRecords.value, rowsPerPageOptions: rowsPerPageOptions, onPage: onPage, "data-v-4403e88d": "" }),
284
+ "\n "
285
285
  ]) : null
286
286
  ])
287
287
  }
288
- _sfc_main.__scopeId = 'data-v-5a84a658'
288
+ _sfc_main.__scopeId = 'data-v-4403e88d'
289
289
  _sfc_main.__hmrId = 'NDataTable_nexa'
290
290
 
291
291
  export default _sfc_main
292
292
 
293
- const __style = `.n-dt[data-v-5a84a658]{
294
293
  border: 1px solid var(--n-color-border);
295
294
  border-radius: var(--n-radius-lg);
296
295
  background: var(--n-color-surface);
297
296
  overflow: hidden;
298
297
  font-family: var(--n-font-sans);
299
298
  border-color: var(--n-color-border);
300
299
  border: 1px solid var(--n-color-border);
301
300
  display: flex;
302
301
  align-items: center;
303
302
  justify-content: space-between;
304
303
  padding: 0.75rem 1rem;
305
304
  border-bottom: 1px solid var(--n-color-border);
306
305
  display: flex;
307
306
  align-items: center;
308
307
  gap: 0.5rem;
309
308
  color: var(--n-color-text-muted);
310
309
  width: 260px;
311
310
  max-width: 100%;
312
311
  background: transparent;
313
312
  border: 1px solid var(--n-color-border);
314
313
  border-radius: var(--n-radius-md);
315
314
  padding: 0.45rem 0.75rem;
316
315
  color: var(--n-color-text);
317
316
  font-size: var(--n-text-sm);
318
317
  outline: none;
319
318
  box-sizing: border-box;
320
319
  transition: border-color 0.15s ease;
321
320
  border-color: var(--n-color-primary);
322
321
  width: 100%;
323
322
  overflow: auto;
324
323
  border-radius: inherit;
325
324
  width: 100%;
326
325
  border-collapse: collapse;
327
326
  table-layout: fixed;
328
327
  background-color: var(--n-color-surface);) 0%, var(--n-color-surface) 100%);
329
328
  position: relative;
330
329
  padding: 0.65rem 0.85rem;
331
330
  border-bottom: 2px solid var(--n-color-border);
332
331
  color: var(--n-color-text-secondary);
333
332
  font-size: var(--n-text-sm);
334
333
  font-weight: var(--n-weight-semibold);
335
334
  user-select: none;
336
335
  vertical-align: middle;
337
336
  text-align: left;
338
337
  background: var(--n-color-surface);
339
338
  transition: background 0.15s ease;
340
339
  cursor: pointer;
341
340
  background: var(--n-color-glass);
342
341
  text-align: right;
343
342
  text-align: center;
344
343
  width: 3rem;
345
344
  text-align: center;
346
345
  display: flex;
347
346
  align-items: center;
348
347
  gap: 0.35rem;
349
348
  justify-content: flex-end;
350
349
  justify-content: center;
351
350
  overflow: hidden;
352
351
  text-overflow: ellipsis;
353
352
  white-space: nowrap;
354
353
  letter-spacing: 0.02em;
355
354
  text-transform: uppercase;
356
355
  font-size: 0.6875rem;
357
356
  display: inline-flex;
358
357
  flex-direction: column;
359
358
  align-items: center;
360
359
  gap: 0;
361
360
  line-height: 1;
362
361
  margin-left: auto;
363
362
  flex-shrink: 0;
364
363
  display: block;
365
364
  color: var(--n-color-border);
366
365
  transition: color 0.15s ease;
367
366
  margin: -3px 0;
368
367
  color: var(--n-color-primary);
369
368
  color: var(--n-color-primary);
370
369
  color: var(--n-color-text-muted);
371
370
  position: absolute;
372
371
  right: 0;
373
372
  top: 0;
374
373
  bottom: 0;
375
374
  width: 6px;
376
375
  cursor: col-resize;
377
376
  background: transparent;
378
377
  transition: background 0.15s ease;
379
378
  background: var(--n-color-primary);
380
379
  opacity: 0.4;
381
380
  border-bottom: 1px solid var(--n-color-border);
382
381
  padding: 0.5rem 0.6rem;
383
382
  background: var(--n-color-surface);
384
383
  width: 100%;
385
384
  max-width: 100%;
386
385
  display: block;
387
386
  background: var(--n-color-bg);
388
387
  border: 1px solid var(--n-color-border);
389
388
  border-radius: var(--n-radius-sm);
390
389
  padding: 0.3rem 0.45rem;
391
390
  color: var(--n-color-text);
392
391
  font-size: var(--n-text-xs);
393
392
  outline: none;
394
393
  box-sizing: border-box;
395
394
  transition: border-color 0.15s ease;
396
395
  border-color: var(--n-color-primary);
397
396
  transition: background 0.2s cubic-bezier(0.16, 1, 0.3, 1);
398
397
  background: color-mix(in srgb, var(--n-color-primary) 6%, var(--n-color-surface));
399
398
  background: var(--n-color-primary-light);
400
399
  outline: none;
401
400
  background: var(--n-color-primary-light);
402
401
  filter: brightness(0.96);
403
402
  background: color-mix(in srgb, var(--n-color-glass) 50%, var(--n-color-surface));
404
403
  background: color-mix(in srgb, var(--n-color-primary) 6%, var(--n-color-surface));
405
404
  background: var(--n-color-primary-light);
406
405
  padding: 0.6rem 0.85rem;
407
406
  border-bottom: 1px solid var(--n-color-border);
408
407
  color: var(--n-color-text);
409
408
  font-size: var(--n-text-sm);
410
409
  vertical-align: middle;
411
410
  text-align: left;
412
411
  text-align: right;
413
412
  text-align: center;
414
413
  width: 3rem;
415
414
  text-align: center;
416
415
  width: 20px;
417
416
  height: 20px;
418
417
  border: 2px solid var(--n-color-border);
419
418
  border-radius: 5px;
420
419
  background: transparent;
421
420
  cursor: pointer;
422
421
  display: inline-flex;
423
422
  align-items: center;
424
423
  justify-content: center;
425
424
  padding: 0;
426
425
  transition: color var(--n-transition-fast); cubic-bezier(0.16, 1, 0.3, 1);
427
426
  color: transparent;
428
427
  background: var(--n-color-primary);
429
428
  border-color: var(--n-color-primary);
430
429
  color: white;
431
430
  border-color: var(--n-color-primary);
432
431
  animation: n-dt-check-pop 0.25s cubic-bezier(0.16, 1, 0.3, 1);
433
432
  0% { transform: scale(0); }
434
433
  50% { transform: scale(1.15); }
435
434
  100% { transform: scale(1); }
436
435
  padding: 2rem 1rem;
437
436
  text-align: center;
438
437
  color: var(--n-color-text-muted);
439
438
  font-size: var(--n-text-sm);
440
439
  padding: 0.4rem 0.6rem;
441
440
  font-size: var(--n-text-xs);
442
441
  padding: 0.85rem 1rem;
443
442
  font-size: var(--n-text-base);
444
443
  border-top: 1px solid var(--n-color-border);
445
444
  background: var(--n-color-surface-alt, var(--n-color-surface));
446
445
  border-top: none;
447
446
  background: transparent;
448
- injectStyle('data-v-5a84a658', __style)
447
+ const __style = `.n-dt[data-v-4403e88d]{
448
+ border: 1px solid var(--n-color-border);
449
+ border-radius: var(--n-radius-lg);
450
+ background: var(--n-color-surface);
451
+ overflow: hidden;
452
+ font-family: var(--n-font-sans);
453
+ }
454
+ .n-dt.is-grid[data-v-4403e88d]{
455
+ border-color: var(--n-color-border);
456
+ }
457
+ .n-dt.is-grid .n-dt-th[data-v-4403e88d],
458
+ .n-dt.is-grid .n-dt-td[data-v-4403e88d]{
459
+ border: 1px solid var(--n-color-border);
460
+ }
461
+ .n-dt-toolbar[data-v-4403e88d]{
462
+ display: flex;
463
+ align-items: center;
464
+ justify-content: space-between;
465
+ padding: 0.75rem 1rem;
466
+ border-bottom: 1px solid var(--n-color-border);
467
+ }
468
+ .n-dt-global[data-v-4403e88d]{
469
+ display: flex;
470
+ align-items: center;
471
+ gap: 0.5rem;
472
+ color: var(--n-color-text-muted);
473
+ }
474
+ .n-dt-global-input[data-v-4403e88d]{
475
+ width: 260px;
476
+ max-width: 100%;
477
+ background: transparent;
478
+ border: 1px solid var(--n-color-border);
479
+ border-radius: var(--n-radius-md);
480
+ padding: 0.45rem 0.75rem;
481
+ color: var(--n-color-text);
482
+ font-size: var(--n-text-sm);
483
+ outline: none;
484
+ box-sizing: border-box;
485
+ transition: border-color var(--n-transition-fast), box-shadow var(--n-transition-fast);
486
+ }
487
+ .n-dt-global-input[data-v-4403e88d]:focus{
488
+ border-color: var(--n-color-primary);
489
+ box-shadow: var(--n-ring-primary);
490
+ }
491
+ .n-dt-wrapper[data-v-4403e88d]{
492
+ width: 100%;
493
+ overflow: auto;
494
+ border-radius: inherit;
495
+ }
496
+ .n-dt-table[data-v-4403e88d]{
497
+ width: 100%;
498
+ border-collapse: collapse;
499
+ table-layout: fixed;
500
+ }
501
+ .n-dt-thead[data-v-4403e88d]{
502
+ background-color: var(--n-color-surface-alt);
503
+ }
504
+ .n-dt-th[data-v-4403e88d]{
505
+ position: relative;
506
+ padding: 0.75rem 1rem;
507
+ border-bottom: 1px solid var(--n-color-border);
508
+ color: var(--n-color-text);
509
+ font-size: var(--n-text-sm);
510
+ font-weight: 600;
511
+ user-select: none;
512
+ vertical-align: middle;
513
+ text-align: left;
514
+ background: var(--n-color-surface-alt);
515
+ transition: background-color var(--n-transition-fast);
516
+ }
517
+ .n-dt-th.is-sortable[data-v-4403e88d]{
518
+ cursor: pointer;
519
+ }
520
+ .n-dt-th.is-sortable[data-v-4403e88d]:hover{
521
+ background-color: var(--n-color-surface-hover);
522
+ }
523
+ .n-dt-th.is-right[data-v-4403e88d]{
524
+ text-align: right;
525
+ }
526
+ .n-dt-th.is-center[data-v-4403e88d]{
527
+ text-align: center;
528
+ }
529
+ .n-dt-th.is-selection[data-v-4403e88d]{
530
+ width: 3rem;
531
+ text-align: center;
532
+ }
533
+ .n-dt-th-content[data-v-4403e88d]{
534
+ display: flex;
535
+ align-items: center;
536
+ gap: 0.5rem;
537
+ }
538
+ .n-dt-th.is-right .n-dt-th-content[data-v-4403e88d]{
539
+ justify-content: flex-end;
540
+ }
541
+ .n-dt-th.is-center .n-dt-th-content[data-v-4403e88d]{
542
+ justify-content: center;
543
+ }
544
+ .n-dt-th-text[data-v-4403e88d]{
545
+ overflow: hidden;
546
+ text-overflow: ellipsis;
547
+ white-space: nowrap;
548
+ letter-spacing: normal;
549
+ }
550
+ .n-dt-sort[data-v-4403e88d]{
551
+ display: inline-flex;
552
+ flex-direction: column;
553
+ align-items: center;
554
+ gap: 0;
555
+ line-height: 1;
556
+ margin-left: auto;
557
+ flex-shrink: 0;
558
+ }
559
+ .n-dt-sort-arrow[data-v-4403e88d]{
560
+ display: block;
561
+ color: var(--n-color-text-muted);
562
+ transition: color var(--n-transition-fast);
563
+ margin: -3px 0;
564
+ }
565
+ .n-dt-sort-arrow-up.is-on[data-v-4403e88d],
566
+ .n-dt-sort-arrow-down.is-on[data-v-4403e88d]{
567
+ color: var(--n-color-primary);
568
+ }
569
+ .n-dt-th.is-sortable[data-v-4403e88d]:hover .n-dt-sort-arrow:not(.is-on){
570
+ color: var(--n-color-text);
571
+ }
572
+ .n-dt-resizer[data-v-4403e88d]{
573
+ position: absolute;
574
+ right: 0;
575
+ top: 0;
576
+ bottom: 0;
577
+ width: 4px;
578
+ cursor: col-resize;
579
+ background: transparent;
580
+ transition: background-color var(--n-transition-fast);
581
+ }
582
+ .n-dt-resizer[data-v-4403e88d]:hover{
583
+ background-color: var(--n-color-primary);
584
+ }
585
+ .n-dt-filter-row .n-dt-th[data-v-4403e88d]{
586
+ border-bottom: 1px solid var(--n-color-border);
587
+ padding: 0.5rem 1rem;
588
+ background-color: var(--n-color-surface-alt);
589
+ }
590
+ .n-dt-filter[data-v-4403e88d]{
591
+ width: 100%;
592
+ max-width: 100%;
593
+ display: block;
594
+ background: var(--n-color-surface);
595
+ border: 1px solid var(--n-color-border);
596
+ border-radius: var(--n-radius-sm);
597
+ padding: 0.375rem 0.5rem;
598
+ color: var(--n-color-text);
599
+ font-size: var(--n-text-xs);
600
+ outline: none;
601
+ box-sizing: border-box;
602
+ transition: border-color var(--n-transition-fast), box-shadow var(--n-transition-fast);
603
+ }
604
+ .n-dt-filter[data-v-4403e88d]:focus{
605
+ border-color: var(--n-color-primary);
606
+ box-shadow: var(--n-ring-primary);
607
+ }
608
+ .n-dt-tbody .n-dt-row{
609
+ background-color: var(--n-color-surface);
610
+ transition: background-color var(--n-transition-fast), color var(--n-transition-fast);
611
+ }
612
+ .n-dt-tbody .n-dt-row.is-hover:hover{
613
+ background-color: var(--n-color-surface-hover);
614
+ }
615
+ .n-dt-tbody .n-dt-row.is-selected{
616
+ background-color: var(--n-color-primary-light);
617
+ color: var(--n-color-primary-text);
618
+ }
619
+ .n-dt-tbody .n-dt-row.is-selected .n-dt-td{
620
+ color: var(--n-color-primary-active);
621
+ }
622
+ .n-dt-table.is-striped .n-dt-tbody .n-dt-row:nth-child(even){
623
+ background-color: var(--n-color-surface-alt);
624
+ }
625
+ .n-dt-table.is-striped .n-dt-tbody .n-dt-row:nth-child(even).is-hover:hover{
626
+ background-color: var(--n-color-surface-hover);
627
+ }
628
+ .n-dt-td[data-v-4403e88d]{
629
+ padding: 0.75rem 1rem;
630
+ border-bottom: 1px solid var(--n-color-border);
631
+ color: var(--n-color-text);
632
+ font-size: var(--n-text-sm);
633
+ vertical-align: middle;
634
+ text-align: left;
635
+ }
636
+ .n-dt-td.is-right[data-v-4403e88d]{
637
+ text-align: right;
638
+ }
639
+ .n-dt-td.is-center[data-v-4403e88d]{
640
+ text-align: center;
641
+ }
642
+ .n-dt-td.is-selection[data-v-4403e88d]{
643
+ width: 3rem;
644
+ text-align: center;
645
+ }
646
+ .n-dt-selectbox[data-v-4403e88d]{
647
+ width: 20px;
648
+ height: 20px;
649
+ border: 2px solid var(--n-color-border);
650
+ border-radius: var(--n-radius-sm);
651
+ background: transparent;
652
+ cursor: pointer;
653
+ display: inline-flex;
654
+ align-items: center;
655
+ justify-content: center;
656
+ padding: 0;
657
+ transition: background-color var(--n-transition-fast), border-color var(--n-transition-fast), box-shadow var(--n-transition-fast);
658
+ color: transparent;
659
+ }
660
+ .n-dt-selectbox.is-checked[data-v-4403e88d]{
661
+ background-color: var(--n-color-primary);
662
+ border-color: var(--n-color-primary);
663
+ color: #fff;
664
+ }
665
+ .n-dt-selectbox[data-v-4403e88d]:hover:not(.is-checked){
666
+ border-color: var(--n-color-primary);
667
+ }
668
+ .n-dt-selectbox[data-v-4403e88d]:focus-visible{
669
+ outline: none;
670
+ box-shadow: var(--n-ring-primary);
671
+ }
672
+ .n-dt-selectbox.is-checked svg[data-v-4403e88d]{
673
+ animation: n-dt-check-pop 0.2s ease-out;
674
+ }
675
+ @keyframes n-dt-check-pop {
676
+ 0%[data-v-4403e88d]{ transform: scale(0.5); }
677
+ 50%[data-v-4403e88d]{ transform: scale(1.2); }
678
+ 100%[data-v-4403e88d]{ transform: scale(1); }
679
+ }
680
+ .n-dt-empty-row .n-dt-empty[data-v-4403e88d]{
681
+ padding: 2rem 1rem;
682
+ text-align: center;
683
+ color: var(--n-color-text-muted);
684
+ font-size: var(--n-text-sm);
685
+ }
686
+ .n-dt-sm .n-dt-th[data-v-4403e88d],
687
+ .n-dt-sm .n-dt-td[data-v-4403e88d]{
688
+ padding: 0.5rem 0.75rem;
689
+ font-size: var(--n-text-xs);
690
+ }
691
+ .n-dt-lg .n-dt-th[data-v-4403e88d],
692
+ .n-dt-lg .n-dt-td[data-v-4403e88d]{
693
+ padding: 1rem 1.25rem;
694
+ font-size: var(--n-text-base);
695
+ }
696
+ .n-dt-paginator-wrap[data-v-4403e88d]{
697
+ border-top: 1px solid var(--n-color-border);
698
+ background: var(--n-color-surface-alt);
699
+ }
700
+ .n-dt-paginator-wrap [data-v-4403e88d]:deep(.n-paginator){
701
+ border-top: none;
702
+ background: transparent;
703
+ }`
704
+ injectStyle('data-v-4403e88d', __style)