nexa-ui-kit 0.10.0 → 0.11.1

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 (73) hide show
  1. package/dist/components/NAlert.js +49 -28
  2. package/dist/components/NAlert.nexa +12 -6
  3. package/dist/components/NAutocomplete.js +25 -20
  4. package/dist/components/NAutocomplete.nexa +3 -3
  5. package/dist/components/NAvatar.js +1 -1
  6. package/dist/components/NBadge.js +1 -1
  7. package/dist/components/NBottomSheet.js +17 -17
  8. package/dist/components/NBottomSheet.nexa +2 -2
  9. package/dist/components/NButton.js +59 -59
  10. package/dist/components/NButton.nexa +10 -9
  11. package/dist/components/NCard.js +2 -2
  12. package/dist/components/NCard.nexa +1 -1
  13. package/dist/components/NCheckbox.js +23 -19
  14. package/dist/components/NCheckbox.nexa +2 -1
  15. package/dist/components/NChips.js +13 -10
  16. package/dist/components/NChips.nexa +1 -1
  17. package/dist/components/NDataTable.js +360 -42
  18. package/dist/components/NDataTable.nexa +318 -10
  19. package/dist/components/NDatepicker.js +52 -43
  20. package/dist/components/NDatepicker.nexa +3 -3
  21. package/dist/components/NForm.js +1 -1
  22. package/dist/components/NFormField.js +1 -1
  23. package/dist/components/NInput.js +51 -41
  24. package/dist/components/NInput.nexa +4 -3
  25. package/dist/components/NInputNumber.js +18 -13
  26. package/dist/components/NInputNumber.nexa +2 -2
  27. package/dist/components/NModal.js +34 -28
  28. package/dist/components/NModal.nexa +4 -4
  29. package/dist/components/NMultiSelect.js +47 -38
  30. package/dist/components/NMultiSelect.nexa +3 -3
  31. package/dist/components/NPaginator.js +29 -21
  32. package/dist/components/NPaginator.nexa +4 -4
  33. package/dist/components/NPassword.js +61 -47
  34. package/dist/components/NPassword.nexa +5 -4
  35. package/dist/components/NProgressBar.js +5 -5
  36. package/dist/components/NProgressBar.nexa +4 -4
  37. package/dist/components/NRadio.js +1 -1
  38. package/dist/components/NScrollView.js +1 -1
  39. package/dist/components/NSelect.js +68 -63
  40. package/dist/components/NSelect.nexa +4 -4
  41. package/dist/components/NSkeleton.js +1 -1
  42. package/dist/components/NSwitch.js +1 -1
  43. package/dist/components/NTabs.js +1 -1
  44. package/dist/components/NTag.js +27 -24
  45. package/dist/components/NTag.nexa +6 -6
  46. package/dist/components/NToastContainer.js +65 -49
  47. package/dist/components/NToastContainer.nexa +6 -3
  48. package/dist/components/NTooltip.js +1 -1
  49. package/dist/components/NTreeMenu.js +74 -35
  50. package/dist/components/NTreeMenu.nexa +52 -15
  51. package/dist/styles/tokens.css +18 -0
  52. package/package.json +4 -4
  53. package/src/components/NAlert.nexa +12 -6
  54. package/src/components/NAutocomplete.nexa +3 -3
  55. package/src/components/NBottomSheet.nexa +2 -2
  56. package/src/components/NButton.nexa +10 -9
  57. package/src/components/NCard.nexa +1 -1
  58. package/src/components/NCheckbox.nexa +2 -1
  59. package/src/components/NChips.nexa +1 -1
  60. package/src/components/NDataTable.nexa +318 -10
  61. package/src/components/NDatepicker.nexa +3 -3
  62. package/src/components/NInput.nexa +4 -3
  63. package/src/components/NInputNumber.nexa +2 -2
  64. package/src/components/NModal.nexa +4 -4
  65. package/src/components/NMultiSelect.nexa +3 -3
  66. package/src/components/NPaginator.nexa +4 -4
  67. package/src/components/NPassword.nexa +5 -4
  68. package/src/components/NProgressBar.nexa +4 -4
  69. package/src/components/NSelect.nexa +4 -4
  70. package/src/components/NTag.nexa +6 -6
  71. package/src/components/NToastContainer.nexa +6 -3
  72. package/src/components/NTreeMenu.nexa +52 -15
  73. package/src/styles/tokens.css +18 -0
@@ -1,4 +1,4 @@
1
- import { h, hText, effect, signal, computed, onMounted, onUnmounted, defineComponent, registerComponent, reloadComponent, injectStyle } from 'nexa-framework'
1
+ import { h, hText, effect, defineComponent, registerComponent, reloadComponent, injectStyle } from 'nexa-framework'
2
2
 
3
3
  const _sfc_main = defineComponent({
4
4
  __scopeId: 'data-v-5c3cc2',
@@ -1,4 +1,4 @@
1
- import { signal, computed, h, hText, effect, onMounted, onUnmounted, defineComponent, registerComponent, reloadComponent, injectStyle } from 'nexa-framework'
1
+ import { signal, computed, h, hText, effect, defineComponent, registerComponent, reloadComponent, injectStyle } from 'nexa-framework'
2
2
 
3
3
  const _sfc_main = defineComponent({
4
4
  __scopeId: 'data-v-7469d561',
@@ -1,8 +1,8 @@
1
- import { signal, computed, onBeforeUnmount, h, hText, effect, onMounted, onUnmounted, defineComponent, registerComponent, reloadComponent, injectStyle, Teleport } from 'nexa-framework'
1
+ import { signal, computed, onBeforeUnmount, h, hText, effect, defineComponent, registerComponent, reloadComponent, injectStyle, Teleport } from 'nexa-framework'
2
2
  import { trackFloatingOverlay } from '../services/FloatingOverlay.js'
3
3
 
4
4
  const _sfc_main = defineComponent({
5
- __scopeId: 'data-v-fef169b',
5
+ __scopeId: 'data-v-2dd8d436',
6
6
  __hmrId: 'NSelect_nexa',
7
7
  props: {
8
8
  modelValue: { type: [String, Number], default: '' },
@@ -175,49 +175,54 @@ const _sfc_main = defineComponent({
175
175
  // Injected render function
176
176
  _sfc_main.render = function(ctx) {
177
177
  let { isOpen, query, focusedIndex, instanceId, popupStyle, resolvedPlacement, rootEl, stopTracking, outsideHandler, filteredOptions, selectedOption, close, open, toggle, select, clear, handleKeydown, getFlatOptions, onBeforeUnmount, trackFloatingOverlay, $slots, emit, modelValue, options, placeholder, label, disabled, searchable, clearable, placement, appendTo, Fragment: _ntc_Fragment, Teleport: _ntc_Teleport } = ctx
178
- return h('div', { class: ["n-select", { 'is-open': isOpen.value, 'is-disabled': disabled }], "data-select-root": instanceId, "data-v-fef169b": "" }, [
178
+ return h('div', { class: ["n-select", { 'is-open': isOpen.value, 'is-disabled': disabled }], "data-select-root": instanceId, "data-v-2dd8d436": "" }, [
179
179
  "\n ",
180
- (label) ? h('label', { class: "n-select-label", "data-v-fef169b": "" }, [
180
+ (label) ? h('label', { class: "n-select-label", "data-v-2dd8d436": "" }, [
181
181
  label
182
182
  ]) : null,
183
- h('div', { class: "n-select-trigger", onClick: toggle, onKeydown: handleKeydown, tabindex: "0", role: "combobox", "aria-expanded": isOpen.value, "data-v-fef169b": "" }, [
183
+ h('div', { class: "n-select-trigger", onClick: toggle, onKeydown: handleKeydown, tabindex: "0", role: "combobox", "aria-expanded": isOpen.value, "data-v-2dd8d436": "" }, [
184
184
  "\n ",
185
- (selectedOption.value) ? h('span', { class: "n-select-value", "data-v-fef169b": "" }, [
185
+ (selectedOption.value) ? h('span', { class: "n-select-value", "data-v-2dd8d436": "" }, [
186
186
  "\n ",
187
187
  selectedOption.value.label,
188
188
  "\n "
189
- ]) : (true) ? h('span', { class: "n-select-placeholder", "data-v-fef169b": "" }, [
189
+ ]) : (true) ? h('span', { class: "n-select-placeholder", "data-v-2dd8d436": "" }, [
190
190
  "\n ",
191
191
  placeholder,
192
192
  "\n "
193
193
  ]) : null,
194
194
  "\n ",
195
- h('div', { class: "n-select-trigger-actions", "data-v-fef169b": "" }, [
195
+ h('div', { class: "n-select-trigger-actions", "data-v-2dd8d436": "" }, [
196
196
  "\n ",
197
- (clearable && modelValue) ? h('button', { class: "n-select-clear", type: "button", onClick: ($event) => { $event.stopPropagation(); (clear)($event) }, tabindex: "-1", "data-v-fef169b": "" }, [
198
- ""
197
+ (clearable && modelValue) ? h('button', { class: "n-select-clear", type: "button", onClick: ($event) => { $event.stopPropagation(); (clear)($event) }, tabindex: "-1", "aria-label": "Clear", "data-v-2dd8d436": "" }, [
198
+ h('svg', { viewBox: "0 0 24 24", width: "14", height: "14", fill: "none", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round", focusable: "false", "aria-hidden": "true", "data-v-2dd8d436": "" }, [
199
+ h('path', { d: "M18 6L6 18", "data-v-2dd8d436": "" }),
200
+ h('path', { d: "M6 6l12 12", "data-v-2dd8d436": "" })
201
+ ])
199
202
  ]) : null,
200
- h('span', { class: "n-select-arrow", "data-v-fef169b": "" }, [
201
- ""
203
+ h('span', { class: "n-select-arrow", "data-v-2dd8d436": "" }, [
204
+ 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-2dd8d436": "" }, [
205
+ h('path', { d: "M6 9l6 6 6-6", "data-v-2dd8d436": "" })
206
+ ])
202
207
  ]),
203
208
  "\n "
204
209
  ]),
205
210
  "\n "
206
211
  ]),
207
212
  "\n ",
208
- (isOpen.value && appendTo !== 'body') ? h('div', { class: "n-select-dropdown", "data-v-fef169b": "" }, [
213
+ (isOpen.value && appendTo !== 'body') ? h('div', { class: "n-select-dropdown", "data-v-2dd8d436": "" }, [
209
214
  "\n ",
210
- (searchable) ? h('div', { class: "n-select-search", "data-v-fef169b": "" }, [
215
+ (searchable) ? h('div', { class: "n-select-search", "data-v-2dd8d436": "" }, [
211
216
  "\n ",
212
- h('input', { class: "n-select-search-input", value: query.value, onInput: ($event) => { query.value = $event.target.value }, placeholder: "Search...", onKeydown: ($event) => { $event.stopPropagation(); (handleKeydown)($event) }, "data-v-fef169b": "" }),
217
+ h('input', { class: "n-select-search-input", value: query.value, onInput: ($event) => { query.value = $event.target.value }, placeholder: "Search...", onKeydown: ($event) => { $event.stopPropagation(); (handleKeydown)($event) }, "data-v-2dd8d436": "" }),
213
218
  "\n "
214
219
  ]) : null,
215
- h('div', { class: "n-select-options", "data-v-fef169b": "" }, [
220
+ h('div', { class: "n-select-options", "data-v-2dd8d436": "" }, [
216
221
  "\n ",
217
222
  (filteredOptions.value).map((item, i) =>
218
- h('div', { key: i, "data-v-fef169b": "" }, [
223
+ h('div', { key: i, "data-v-2dd8d436": "" }, [
219
224
  "\n ",
220
- ('group' in item) ? h('div', { class: "n-select-group-label", "data-v-fef169b": "" }, [
225
+ ('group' in item) ? h('div', { class: "n-select-group-label", "data-v-2dd8d436": "" }, [
221
226
  item.group
222
227
  ]) : null,
223
228
  ('items' in item ? item.items : [item]).map((opt, index) =>
@@ -225,7 +230,7 @@ _sfc_main.render = function(ctx) {
225
230
  'is-selected': opt.value === modelValue,
226
231
  'is-focused': getFlatOptions().indexOf(opt) === focusedIndex.value,
227
232
  'is-disabled': opt.disabled
228
- }], key: opt.value, onClick: ($event) => { select(opt) }, "data-v-fef169b": "" }, [
233
+ }], key: opt.value, onClick: ($event) => { select(opt) }, "data-v-2dd8d436": "" }, [
229
234
  "\n ",
230
235
  opt.label,
231
236
  "\n "
@@ -235,27 +240,27 @@ _sfc_main.render = function(ctx) {
235
240
  ])
236
241
  ),
237
242
  "\n ",
238
- (filteredOptions.value.length === 0) ? h('div', { class: "n-select-empty", "data-v-fef169b": "" }, [
243
+ (filteredOptions.value.length === 0) ? h('div', { class: "n-select-empty", "data-v-2dd8d436": "" }, [
239
244
  "\n No options available\n "
240
245
  ]) : null
241
246
  ]),
242
247
  "\n "
243
248
  ]) : null,
244
- h(_ntc_Teleport, { to: "body", "data-v-fef169b": "" }, [
249
+ h(_ntc_Teleport, { to: "body", "data-v-2dd8d436": "" }, [
245
250
  "\n ",
246
- (isOpen.value && appendTo === 'body') ? h('div', { class: ["n-select-dropdown", { 'is-top': resolvedPlacement.value === 'top' }], "data-select-popup": instanceId, style: popupStyle.value, "data-v-fef169b": "" }, [
251
+ (isOpen.value && appendTo === 'body') ? h('div', { class: ["n-select-dropdown", { 'is-top': resolvedPlacement.value === 'top' }], "data-select-popup": instanceId, style: popupStyle.value, "data-v-2dd8d436": "" }, [
247
252
  "\n ",
248
- (searchable) ? h('div', { class: "n-select-search", "data-v-fef169b": "" }, [
253
+ (searchable) ? h('div', { class: "n-select-search", "data-v-2dd8d436": "" }, [
249
254
  "\n ",
250
- h('input', { class: "n-select-search-input", value: query.value, onInput: ($event) => { query.value = $event.target.value }, placeholder: "Search...", onKeydown: ($event) => { $event.stopPropagation(); (handleKeydown)($event) }, "data-v-fef169b": "" }),
255
+ h('input', { class: "n-select-search-input", value: query.value, onInput: ($event) => { query.value = $event.target.value }, placeholder: "Search...", onKeydown: ($event) => { $event.stopPropagation(); (handleKeydown)($event) }, "data-v-2dd8d436": "" }),
251
256
  "\n "
252
257
  ]) : null,
253
- h('div', { class: "n-select-options", "data-v-fef169b": "" }, [
258
+ h('div', { class: "n-select-options", "data-v-2dd8d436": "" }, [
254
259
  "\n ",
255
260
  (filteredOptions.value).map((item, i) =>
256
- h('div', { key: i, "data-v-fef169b": "" }, [
261
+ h('div', { key: i, "data-v-2dd8d436": "" }, [
257
262
  "\n ",
258
- ('group' in item) ? h('div', { class: "n-select-group-label", "data-v-fef169b": "" }, [
263
+ ('group' in item) ? h('div', { class: "n-select-group-label", "data-v-2dd8d436": "" }, [
259
264
  item.group
260
265
  ]) : null,
261
266
  ('items' in item ? item.items : [item]).map((opt, index) =>
@@ -263,7 +268,7 @@ _sfc_main.render = function(ctx) {
263
268
  'is-selected': opt.value === modelValue,
264
269
  'is-focused': getFlatOptions().indexOf(opt) === focusedIndex.value,
265
270
  'is-disabled': opt.disabled
266
- }], key: opt.value, onClick: ($event) => { select(opt) }, "data-v-fef169b": "" }, [
271
+ }], key: opt.value, onClick: ($event) => { select(opt) }, "data-v-2dd8d436": "" }, [
267
272
  "\n ",
268
273
  opt.label,
269
274
  "\n "
@@ -273,7 +278,7 @@ _sfc_main.render = function(ctx) {
273
278
  ])
274
279
  ),
275
280
  "\n ",
276
- (filteredOptions.value.length === 0) ? h('div', { class: "n-select-empty", "data-v-fef169b": "" }, [
281
+ (filteredOptions.value.length === 0) ? h('div', { class: "n-select-empty", "data-v-2dd8d436": "" }, [
277
282
  "\n No options available\n "
278
283
  ]) : null
279
284
  ]),
@@ -283,18 +288,18 @@ _sfc_main.render = function(ctx) {
283
288
  "\n "
284
289
  ])
285
290
  }
286
- _sfc_main.__scopeId = 'data-v-fef169b'
291
+ _sfc_main.__scopeId = 'data-v-2dd8d436'
287
292
  _sfc_main.__hmrId = 'NSelect_nexa'
288
293
 
289
294
  export default _sfc_main
290
295
 
291
- const __style = `.n-select[data-v-fef169b]{
296
+ const __style = `.n-select[data-v-2dd8d436]{
292
297
  position: relative;
293
298
  width: 100%;
294
299
  font-family: var(--n-font-sans);
295
300
  }
296
301
 
297
- .n-select-label[data-v-fef169b]{
302
+ .n-select-label[data-v-2dd8d436]{
298
303
  display: block;
299
304
  font-size: var(--n-text-sm);
300
305
  font-weight: var(--n-weight-medium);
@@ -302,7 +307,7 @@ const __style = `.n-select[data-v-fef169b]{
302
307
  margin-bottom: var(--n-space-2);
303
308
  }
304
309
 
305
- .n-select-trigger[data-v-fef169b]{
310
+ .n-select-trigger[data-v-2dd8d436]{
306
311
  background: var(--n-color-surface);
307
312
  border: 1px solid var(--n-color-border);
308
313
  border-radius: var(--n-radius-md);
@@ -316,32 +321,32 @@ const __style = `.n-select[data-v-fef169b]{
316
321
  gap: var(--n-space-2);
317
322
  }
318
323
 
319
- .n-select-trigger[data-v-fef169b]:focus-visible{
324
+ .n-select-trigger[data-v-2dd8d436]:focus-visible{
320
325
  border-color: var(--n-color-primary);
321
326
  box-shadow: 0 0 0 3px var(--n-color-primary-light);
322
327
  }
323
328
 
324
- .n-select[data-v-fef169b]:hover .n-select-trigger:not(.is-disabled){
329
+ .n-select[data-v-2dd8d436]:hover .n-select-trigger:not(.is-disabled){
325
330
  border-color: var(--n-color-border-hover);
326
331
  }
327
332
 
328
- .n-select.is-open .n-select-trigger[data-v-fef169b]{
333
+ .n-select.is-open .n-select-trigger[data-v-2dd8d436]{
329
334
  border-color: var(--n-color-primary);
330
335
  box-shadow: 0 0 0 3px var(--n-color-primary-light);
331
336
  }
332
337
 
333
- .n-select-placeholder[data-v-fef169b]{
338
+ .n-select-placeholder[data-v-2dd8d436]{
334
339
  color: var(--n-color-text-muted);
335
340
  }
336
341
 
337
- .n-select-trigger-actions[data-v-fef169b]{
342
+ .n-select-trigger-actions[data-v-2dd8d436]{
338
343
  display: flex;
339
344
  align-items: center;
340
345
  gap: 0.25rem;
341
346
  flex-shrink: 0;
342
347
  }
343
348
 
344
- .n-select-clear[data-v-fef169b]{
349
+ .n-select-clear[data-v-2dd8d436]{
345
350
  background: transparent;
346
351
  border: none;
347
352
  color: var(--n-color-text-muted);
@@ -352,21 +357,21 @@ const __style = `.n-select[data-v-fef169b]{
352
357
  line-height: 1;
353
358
  }
354
359
 
355
- .n-select-clear[data-v-fef169b]:hover{
360
+ .n-select-clear[data-v-2dd8d436]:hover{
356
361
  color: var(--n-color-text);
357
362
  }
358
363
 
359
- .n-select-arrow[data-v-fef169b]{
364
+ .n-select-arrow[data-v-2dd8d436]{
360
365
  color: var(--n-color-text-muted);
361
366
  transition: transform var(--n-transition-fast);
362
367
  font-size: var(--n-text-xs);
363
368
  }
364
369
 
365
- .is-open .n-select-arrow[data-v-fef169b]{
370
+ .is-open .n-select-arrow[data-v-2dd8d436]{
366
371
  transform: rotate(180deg);
367
372
  }
368
373
 
369
- .n-select-dropdown[data-v-fef169b]{
374
+ .n-select-dropdown[data-v-2dd8d436]{
370
375
  position: absolute;
371
376
  top: calc(100% + 0.5rem);
372
377
  left: 0;
@@ -377,29 +382,29 @@ const __style = `.n-select[data-v-fef169b]{
377
382
  box-shadow: var(--n-shadow-lg);
378
383
  z-index: var(--n-z-dropdown);
379
384
  overflow: hidden;
380
- animation: n-dropdown-in 0.2s cubic-bezier(0, 1, 0, 1);
385
+ animation: n-dropdown-in 0.2s ease-out;
381
386
  }
382
387
 
383
388
  @keyframes n-dropdown-in {
384
- from[data-v-fef169b]{ opacity: 0; transform: translateY(-8px); }
385
- to[data-v-fef169b]{ opacity: 1; transform: translateY(0); }
389
+ from[data-v-2dd8d436]{ opacity: 0; transform: translateY(-8px); }
390
+ to[data-v-2dd8d436]{ opacity: 1; transform: translateY(0); }
386
391
  }
387
392
 
388
- .n-select-dropdown.is-top[data-v-fef169b]{
389
- animation: n-dropdown-in-top 0.2s cubic-bezier(0, 1, 0, 1);
393
+ .n-select-dropdown.is-top[data-v-2dd8d436]{
394
+ animation: n-dropdown-in-top 0.2s ease-out;
390
395
  }
391
396
 
392
397
  @keyframes n-dropdown-in-top {
393
- from[data-v-fef169b]{ opacity: 0; transform: translateY(8px); }
394
- to[data-v-fef169b]{ opacity: 1; transform: translateY(0); }
398
+ from[data-v-2dd8d436]{ opacity: 0; transform: translateY(8px); }
399
+ to[data-v-2dd8d436]{ opacity: 1; transform: translateY(0); }
395
400
  }
396
401
 
397
- .n-select-search[data-v-fef169b]{
402
+ .n-select-search[data-v-2dd8d436]{
398
403
  padding: var(--n-space-2);
399
404
  border-bottom: 1px solid var(--n-color-border);
400
405
  }
401
406
 
402
- .n-select-search-input[data-v-fef169b]{
407
+ .n-select-search-input[data-v-2dd8d436]{
403
408
  width: 100%;
404
409
  background: var(--n-color-bg);
405
410
  border: 1px solid var(--n-color-border);
@@ -411,16 +416,16 @@ to[data-v-fef169b]{ opacity: 1; transform: translateY(0); }
411
416
  font-family: inherit;
412
417
  }
413
418
 
414
- .n-select-search-input[data-v-fef169b]:focus{
419
+ .n-select-search-input[data-v-2dd8d436]:focus{
415
420
  border-color: var(--n-color-primary);
416
421
  }
417
422
 
418
- .n-select-options[data-v-fef169b]{
423
+ .n-select-options[data-v-2dd8d436]{
419
424
  max-height: 250px;
420
425
  overflow-y: auto;
421
426
  }
422
427
 
423
- .n-select-group-label[data-v-fef169b]{
428
+ .n-select-group-label[data-v-2dd8d436]{
424
429
  padding: var(--n-space-2) var(--n-space-3);
425
430
  font-size: var(--n-text-xs);
426
431
  font-weight: var(--n-weight-bold);
@@ -430,39 +435,39 @@ to[data-v-fef169b]{ opacity: 1; transform: translateY(0); }
430
435
  background: var(--n-color-bg);
431
436
  }
432
437
 
433
- .n-select-option[data-v-fef169b]{
438
+ .n-select-option[data-v-2dd8d436]{
434
439
  padding: 0.7rem 1rem;
435
440
  color: var(--n-color-text-secondary);
436
441
  cursor: pointer;
437
442
  transition: all var(--n-transition-fast);
438
443
  }
439
444
 
440
- .n-select-option[data-v-fef169b]:hover,
441
- .n-select-option.is-focused[data-v-fef169b]{
445
+ .n-select-option[data-v-2dd8d436]:hover,
446
+ .n-select-option.is-focused[data-v-2dd8d436]{
442
447
  background: var(--n-color-glass);
443
448
  color: var(--n-color-text);
444
449
  }
445
450
 
446
- .n-select-option.is-selected[data-v-fef169b]{
451
+ .n-select-option.is-selected[data-v-2dd8d436]{
447
452
  background: var(--n-color-primary-light);
448
453
  color: var(--n-color-primary);
449
454
  font-weight: var(--n-weight-semibold);
450
455
  }
451
456
 
452
- .n-select-option.is-disabled[data-v-fef169b]{
457
+ .n-select-option.is-disabled[data-v-2dd8d436]{
453
458
  opacity: 0.4;
454
459
  cursor: not-allowed;
455
460
  }
456
461
 
457
- .n-select-empty[data-v-fef169b]{
462
+ .n-select-empty[data-v-2dd8d436]{
458
463
  padding: var(--n-space-4);
459
464
  color: var(--n-color-text-muted);
460
465
  text-align: center;
461
466
  font-size: var(--n-text-sm);
462
467
  }
463
468
 
464
- .is-disabled .n-select-trigger[data-v-fef169b]{
469
+ .is-disabled .n-select-trigger[data-v-2dd8d436]{
465
470
  opacity: 0.5;
466
471
  cursor: not-allowed;
467
472
  }`
468
- injectStyle('data-v-fef169b', __style)
473
+ injectStyle('data-v-2dd8d436', __style)
@@ -200,8 +200,8 @@ onBeforeUnmount(() => {
200
200
  {{ placeholder }}
201
201
  </span>
202
202
  <div class="n-select-trigger-actions">
203
- <button v-if="clearable && modelValue" type="button" class="n-select-clear" @click.stop="clear" tabindex="-1">✕</button>
204
- <span class="n-select-arrow">▾</span>
203
+ <button v-if="clearable && modelValue" type="button" class="n-select-clear" @click.stop="clear" tabindex="-1" aria-label="Clear"><svg viewBox="0 0 24 24" width="14" height="14" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" focusable="false" aria-hidden="true"><path d="M18 6L6 18"/><path d="M6 6l12 12"/></svg></button>
204
+ <span class="n-select-arrow"><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"><path d="M6 9l6 6 6-6"/></svg></span>
205
205
  </div>
206
206
  </div>
207
207
  <div v-if="isOpen.value && appendTo !== 'body'" class="n-select-dropdown">
@@ -361,7 +361,7 @@ onBeforeUnmount(() => {
361
361
  box-shadow: var(--n-shadow-lg);
362
362
  z-index: var(--n-z-dropdown);
363
363
  overflow: hidden;
364
- animation: n-dropdown-in 0.2s cubic-bezier(0, 1, 0, 1);
364
+ animation: n-dropdown-in 0.2s ease-out;
365
365
  }
366
366
 
367
367
  @keyframes n-dropdown-in {
@@ -370,7 +370,7 @@ onBeforeUnmount(() => {
370
370
  }
371
371
 
372
372
  .n-select-dropdown.is-top {
373
- animation: n-dropdown-in-top 0.2s cubic-bezier(0, 1, 0, 1);
373
+ animation: n-dropdown-in-top 0.2s ease-out;
374
374
  }
375
375
 
376
376
  @keyframes n-dropdown-in-top {
@@ -1,4 +1,4 @@
1
- import { h, hText, effect, signal, computed, onMounted, onUnmounted, defineComponent, registerComponent, reloadComponent, injectStyle } from 'nexa-framework'
1
+ import { h, hText, effect, defineComponent, registerComponent, reloadComponent, injectStyle } from 'nexa-framework'
2
2
 
3
3
  const _sfc_main = defineComponent({
4
4
  __scopeId: 'data-v-6b9116c8',
@@ -1,4 +1,4 @@
1
- import { h, hText, effect, signal, computed, onMounted, onUnmounted, defineComponent, registerComponent, reloadComponent, injectStyle } from 'nexa-framework'
1
+ import { h, hText, effect, defineComponent, registerComponent, reloadComponent, injectStyle } from 'nexa-framework'
2
2
 
3
3
  const _sfc_main = defineComponent({
4
4
  __scopeId: 'data-v-3cd56cb4',
@@ -1,4 +1,4 @@
1
- import { signal, computed, h, hText, effect, onMounted, onUnmounted, defineComponent, registerComponent, reloadComponent, injectStyle } from 'nexa-framework'
1
+ import { signal, computed, h, hText, effect, defineComponent, registerComponent, reloadComponent, injectStyle } from 'nexa-framework'
2
2
 
3
3
  const _sfc_main = defineComponent({
4
4
  __scopeId: 'data-v-339e5ee5',
@@ -1,7 +1,7 @@
1
- import { h, hText, effect, signal, computed, onMounted, onUnmounted, defineComponent, registerComponent, reloadComponent, injectStyle } from 'nexa-framework'
1
+ import { h, hText, effect, defineComponent, registerComponent, reloadComponent, injectStyle } from 'nexa-framework'
2
2
 
3
3
  const _sfc_main = defineComponent({
4
- __scopeId: 'data-v-4d63a958',
4
+ __scopeId: 'data-v-15b3bf49',
5
5
  __hmrId: 'NTag_nexa',
6
6
  props: {
7
7
  variant: { type: String, default: 'primary' },
@@ -18,21 +18,24 @@ const _sfc_main = defineComponent({
18
18
  // Injected render function
19
19
  _sfc_main.render = function(ctx) {
20
20
  let { $slots, emit, variant, size, closable, rounded, Fragment: _ntc_Fragment } = ctx
21
- return h('span', { class: ['n-tag', `n-tag-${variant}`, `n-tag-${size}`, rounded ? 'is-rounded' : ''], "data-v-4d63a958": "" }, [
21
+ return h('span', { class: ['n-tag', `n-tag-${variant}`, `n-tag-${size}`, rounded ? 'is-rounded' : ''], "data-v-15b3bf49": "" }, [
22
22
  "\n ",
23
23
  ctx.$slots.default ? ctx.$slots.default() : null,
24
24
  "\n ",
25
- (closable) ? h('button', { class: "n-tag-close", onClick: ($event) => { emit('close') }, "data-v-4d63a958": "" }, [
26
- "×"
25
+ (closable) ? h('button', { class: "n-tag-close", onClick: ($event) => { emit('close') }, "aria-label": "Close", "data-v-15b3bf49": "" }, [
26
+ h('svg', { viewBox: "0 0 24 24", width: "12", height: "12", fill: "none", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round", focusable: "false", "aria-hidden": "true", "data-v-15b3bf49": "" }, [
27
+ h('path', { d: "M18 6L6 18", "data-v-15b3bf49": "" }),
28
+ h('path', { d: "M6 6l12 12", "data-v-15b3bf49": "" })
29
+ ])
27
30
  ]) : null
28
31
  ])
29
32
  }
30
- _sfc_main.__scopeId = 'data-v-4d63a958'
33
+ _sfc_main.__scopeId = 'data-v-15b3bf49'
31
34
  _sfc_main.__hmrId = 'NTag_nexa'
32
35
 
33
36
  export default _sfc_main
34
37
 
35
- const __style = `.n-tag[data-v-4d63a958]{
38
+ const __style = `.n-tag[data-v-15b3bf49]{
36
39
  display: inline-flex;
37
40
  align-items: center;
38
41
  gap: var(--n-space-1);
@@ -46,50 +49,50 @@ const __style = `.n-tag[data-v-4d63a958]{
46
49
  border: 1px solid transparent;
47
50
  }
48
51
 
49
- .n-tag.is-rounded[data-v-4d63a958]{
52
+ .n-tag.is-rounded[data-v-15b3bf49]{
50
53
  border-radius: var(--n-radius-full);
51
54
  }
52
55
 
53
- .n-tag-sm[data-v-4d63a958]{ padding: 0.1rem 0.4rem; font-size: 0.65rem; }
54
- .n-tag-lg[data-v-4d63a958]{ padding: 0.35rem 0.8rem; font-size: var(--n-text-sm); }
56
+ .n-tag-sm[data-v-15b3bf49]{ padding: 0.1rem 0.4rem; font-size: 0.65rem; }
57
+ .n-tag-lg[data-v-15b3bf49]{ padding: 0.35rem 0.8rem; font-size: var(--n-text-sm); }
55
58
 
56
- .n-tag-primary[data-v-4d63a958]{
59
+ .n-tag-primary[data-v-15b3bf49]{
57
60
  background: var(--n-color-primary-light);
58
- border-color: rgba(59, 130, 246, 0.25);
61
+ border-color: var(--n-color-primary-border);
59
62
  color: var(--n-color-primary);
60
63
  }
61
64
 
62
- .n-tag-success[data-v-4d63a958]{
65
+ .n-tag-success[data-v-15b3bf49]{
63
66
  background: var(--n-color-success-light);
64
- border-color: rgba(16, 185, 129, 0.25);
67
+ border-color: var(--n-color-success-border);
65
68
  color: var(--n-color-success);
66
69
  }
67
70
 
68
- .n-tag-danger[data-v-4d63a958]{
71
+ .n-tag-danger[data-v-15b3bf49]{
69
72
  background: var(--n-color-danger-light);
70
- border-color: rgba(239, 68, 68, 0.25);
73
+ border-color: var(--n-color-danger-border);
71
74
  color: var(--n-color-danger);
72
75
  }
73
76
 
74
- .n-tag-warning[data-v-4d63a958]{
77
+ .n-tag-warning[data-v-15b3bf49]{
75
78
  background: var(--n-color-warning-light);
76
- border-color: rgba(245, 158, 11, 0.25);
79
+ border-color: var(--n-color-warning-border);
77
80
  color: var(--n-color-warning);
78
81
  }
79
82
 
80
- .n-tag-info[data-v-4d63a958]{
83
+ .n-tag-info[data-v-15b3bf49]{
81
84
  background: var(--n-color-info-light);
82
- border-color: rgba(6, 182, 212, 0.25);
85
+ border-color: var(--n-color-info-border);
83
86
  color: var(--n-color-info);
84
87
  }
85
88
 
86
- .n-tag-secondary[data-v-4d63a958]{
89
+ .n-tag-secondary[data-v-15b3bf49]{
87
90
  background: var(--n-color-surface-alt);
88
91
  border-color: var(--n-color-border);
89
92
  color: var(--n-color-text-secondary);
90
93
  }
91
94
 
92
- .n-tag-close[data-v-4d63a958]{
95
+ .n-tag-close[data-v-15b3bf49]{
93
96
  background: transparent;
94
97
  border: none;
95
98
  cursor: pointer;
@@ -102,7 +105,7 @@ const __style = `.n-tag[data-v-4d63a958]{
102
105
  transition: opacity var(--n-transition-fast);
103
106
  }
104
107
 
105
- .n-tag-close[data-v-4d63a958]:hover{
108
+ .n-tag-close[data-v-15b3bf49]:hover{
106
109
  opacity: 1;
107
110
  }`
108
- injectStyle('data-v-4d63a958', __style)
111
+ injectStyle('data-v-15b3bf49', __style)
@@ -12,7 +12,7 @@ const emit = defineEmits(['close'])
12
12
  <template>
13
13
  <span :class="['n-tag', `n-tag-${variant}`, `n-tag-${size}`, rounded ? 'is-rounded' : '']">
14
14
  <slot />
15
- <button v-if="closable" class="n-tag-close" @click="emit('close')">&times;</button>
15
+ <button v-if="closable" class="n-tag-close" @click="emit('close')" aria-label="Close"><svg viewBox="0 0 24 24" width="12" height="12" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" focusable="false" aria-hidden="true"><path d="M18 6L6 18"/><path d="M6 6l12 12"/></svg></button>
16
16
  </span>
17
17
  </template>
18
18
 
@@ -40,31 +40,31 @@ const emit = defineEmits(['close'])
40
40
 
41
41
  .n-tag-primary {
42
42
  background: var(--n-color-primary-light);
43
- border-color: rgba(59, 130, 246, 0.25);
43
+ border-color: var(--n-color-primary-border);
44
44
  color: var(--n-color-primary);
45
45
  }
46
46
 
47
47
  .n-tag-success {
48
48
  background: var(--n-color-success-light);
49
- border-color: rgba(16, 185, 129, 0.25);
49
+ border-color: var(--n-color-success-border);
50
50
  color: var(--n-color-success);
51
51
  }
52
52
 
53
53
  .n-tag-danger {
54
54
  background: var(--n-color-danger-light);
55
- border-color: rgba(239, 68, 68, 0.25);
55
+ border-color: var(--n-color-danger-border);
56
56
  color: var(--n-color-danger);
57
57
  }
58
58
 
59
59
  .n-tag-warning {
60
60
  background: var(--n-color-warning-light);
61
- border-color: rgba(245, 158, 11, 0.25);
61
+ border-color: var(--n-color-warning-border);
62
62
  color: var(--n-color-warning);
63
63
  }
64
64
 
65
65
  .n-tag-info {
66
66
  background: var(--n-color-info-light);
67
- border-color: rgba(6, 182, 212, 0.25);
67
+ border-color: var(--n-color-info-border);
68
68
  color: var(--n-color-info);
69
69
  }
70
70