nexa-ui-kit 0.11.6 → 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.
Files changed (95) hide show
  1. package/dist/components/NAlert.js +2 -14
  2. package/dist/components/NAlert.nexa +3 -14
  3. package/dist/components/NAutocomplete.js +1 -1
  4. package/dist/components/NAutocomplete.nexa +2 -1
  5. package/dist/components/NAvatar.js +0 -5
  6. package/dist/components/NAvatar.nexa +1 -5
  7. package/dist/components/NBadge.js +0 -6
  8. package/dist/components/NBadge.nexa +1 -6
  9. package/dist/components/NBottomSheet.js +0 -5
  10. package/dist/components/NBottomSheet.nexa +1 -5
  11. package/dist/components/NButton.js +219 -296
  12. package/dist/components/NButton.nexa +241 -320
  13. package/dist/components/NCard.js +39 -82
  14. package/dist/components/NCard.nexa +27 -71
  15. package/dist/components/NCheckbox.js +74 -63
  16. package/dist/components/NCheckbox.nexa +64 -44
  17. package/dist/components/NChips.nexa +1 -0
  18. package/dist/components/NDataTable.js +300 -356
  19. package/dist/components/NDataTable.nexa +265 -320
  20. package/dist/components/NDatepicker.js +4 -25
  21. package/dist/components/NDatepicker.nexa +5 -25
  22. package/dist/components/NForm.nexa +1 -0
  23. package/dist/components/NFormField.js +0 -5
  24. package/dist/components/NFormField.nexa +1 -5
  25. package/dist/components/NImage.js +1 -6
  26. package/dist/components/NImage.nexa +2 -6
  27. package/dist/components/NInput.js +96 -263
  28. package/dist/components/NInput.nexa +89 -259
  29. package/dist/components/NInputNumber.nexa +1 -1
  30. package/dist/components/NModal.js +1 -118
  31. package/dist/components/NModal.nexa +2 -119
  32. package/dist/components/NMultiSelect.js +1 -1
  33. package/dist/components/NMultiSelect.nexa +2 -1
  34. package/dist/components/NPaginator.js +1 -11
  35. package/dist/components/NPaginator.nexa +2 -11
  36. package/dist/components/NPassword.nexa +1 -0
  37. package/dist/components/NProgressBar.js +0 -11
  38. package/dist/components/NProgressBar.nexa +1 -11
  39. package/dist/components/NRadio.js +1 -8
  40. package/dist/components/NRadio.nexa +2 -8
  41. package/dist/components/NScrollView.js +0 -6
  42. package/dist/components/NScrollView.nexa +1 -6
  43. package/dist/components/NSelect.js +7 -35
  44. package/dist/components/NSelect.nexa +8 -35
  45. package/dist/components/NSkeleton.js +3 -9
  46. package/dist/components/NSkeleton.nexa +4 -9
  47. package/dist/components/NSwitch.js +0 -6
  48. package/dist/components/NSwitch.nexa +1 -6
  49. package/dist/components/NTabs.js +0 -11
  50. package/dist/components/NTabs.nexa +1 -11
  51. package/dist/components/NTag.js +1 -11
  52. package/dist/components/NTag.nexa +2 -11
  53. package/dist/components/NToastContainer.js +3 -27
  54. package/dist/components/NToastContainer.nexa +4 -27
  55. package/dist/components/NTooltip.js +0 -13
  56. package/dist/components/NTooltip.nexa +1 -13
  57. package/dist/components/NTreeMenu.js +1 -21
  58. package/dist/components/NTreeMenu.nexa +2 -21
  59. package/dist/components/NVirtualList.js +0 -2
  60. package/dist/components/NVirtualList.nexa +1 -2
  61. package/dist/styles/tokens.css +82 -173
  62. package/package.json +5 -5
  63. package/src/components/NAlert.nexa +3 -14
  64. package/src/components/NAutocomplete.nexa +2 -1
  65. package/src/components/NAvatar.nexa +1 -5
  66. package/src/components/NBadge.nexa +1 -6
  67. package/src/components/NBottomSheet.nexa +1 -5
  68. package/src/components/NButton.nexa +241 -320
  69. package/src/components/NCard.nexa +27 -71
  70. package/src/components/NCheckbox.nexa +64 -44
  71. package/src/components/NChips.nexa +1 -0
  72. package/src/components/NDataTable.nexa +265 -320
  73. package/src/components/NDatepicker.nexa +5 -25
  74. package/src/components/NForm.nexa +1 -0
  75. package/src/components/NFormField.nexa +1 -5
  76. package/src/components/NImage.nexa +2 -6
  77. package/src/components/NInput.nexa +89 -259
  78. package/src/components/NInputNumber.nexa +1 -1
  79. package/src/components/NModal.nexa +2 -119
  80. package/src/components/NMultiSelect.nexa +2 -1
  81. package/src/components/NPaginator.nexa +2 -11
  82. package/src/components/NPassword.nexa +1 -0
  83. package/src/components/NProgressBar.nexa +1 -11
  84. package/src/components/NRadio.nexa +2 -8
  85. package/src/components/NScrollView.nexa +1 -6
  86. package/src/components/NSelect.nexa +8 -35
  87. package/src/components/NSkeleton.nexa +4 -9
  88. package/src/components/NSwitch.nexa +1 -6
  89. package/src/components/NTabs.nexa +1 -11
  90. package/src/components/NTag.nexa +2 -11
  91. package/src/components/NToastContainer.nexa +4 -27
  92. package/src/components/NTooltip.nexa +1 -13
  93. package/src/components/NTreeMenu.nexa +2 -21
  94. package/src/components/NVirtualList.nexa +1 -2
  95. package/src/styles/tokens.css +82 -173
@@ -1,328 +1,251 @@
1
1
  import { signal, computed, h, hText, effect, defineComponent, registerComponent, reloadComponent, injectStyle } from 'nexa-framework'
2
2
 
3
3
  const _sfc_main = defineComponent({
4
- __scopeId: 'data-v-72f6f577',
4
+ __scopeId: 'data-v-6c6a1bc6',
5
5
  __hmrId: 'NButton_nexa',
6
6
  props: {
7
+ label: { type: String, default: '' },
7
8
  variant: { type: String, default: 'primary' },
8
9
  size: { type: String, default: 'md' },
9
- type: { type: String, default: 'button' },
10
10
  disabled: { type: Boolean, default: false },
11
11
  loading: { type: Boolean, default: false },
12
+ icon: { type: String, default: '' },
13
+ iconRight: { type: String, default: '' },
12
14
  block: { type: Boolean, default: false },
13
15
  rounded: { type: Boolean, default: false },
14
- loadingText: { type: String, default: '' }
16
+ outlined: { type: Boolean, default: false }
15
17
  },
16
18
  emits: ['click'],
17
19
  setup(props, setupContext) {
18
20
  const { emit, slots, slots: $slots } = setupContext
19
- const ripple = signal([])
21
+ const isPressed = signal(false)
20
22
  const handleClick = (e) => {
21
23
  if (props.disabled || props.loading) return
24
+ isPressed.value = true
25
+ setTimeout(() => { isPressed.value = false }, 150)
22
26
  emit('click', e)
23
- const rect = e.currentTarget.getBoundingClientRect()
24
- const x = e.clientX - rect.left
25
- const y = e.clientY - rect.top
26
- const id = Date.now()
27
- ripple.value = [...ripple.value, { id, x, y }]
28
- setTimeout(() => {
29
- ripple.value = ripple.value.filter(r => r.id !== id)
30
- }, 600)
31
27
  }
32
- const btnClass = computed(() => {
33
- return [
34
- 'n-btn',
35
- `n-btn-${props.variant}`,
36
- `n-btn-${props.size}`,
37
- props.loading ? 'is-loading' : '',
38
- props.block ? 'is-block' : '',
39
- props.rounded ? 'is-rounded' : ''
40
- ].join(' ')
41
- })
42
- return { ripple, handleClick, btnClass, $slots, emit }
28
+ return { isPressed, handleClick, $slots, emit }
43
29
  }
44
30
  })
45
31
  // Injected render function
46
32
  _sfc_main.render = function(ctx) {
47
- let { ripple, handleClick, btnClass, $slots, emit, variant, size, type, disabled, loading, block, rounded, loadingText, Fragment: _ntc_Fragment } = ctx
48
- return h('button', { class: btnClass.value, type: type, disabled: disabled || loading, "aria-busy": loading ? 'true' : undefined, onClick: handleClick, "data-v-72f6f577": "" }, [
49
- "\r\n ",
50
- (loading) ? h('span', { class: "n-btn-loader", "data-v-72f6f577": "" }) : null,
51
- (loading && loadingText) ? h('span', { class: "n-btn-loading-text", "data-v-72f6f577": "" }, [
52
- loadingText
33
+ let { isPressed, handleClick, $slots, emit, label, variant, size, disabled, loading, icon, iconRight, block, rounded, outlined, Fragment: _ntc_Fragment } = ctx
34
+ return h('button', { class: ["n-btn", [
35
+ `n-btn-${variant}`,
36
+ `n-btn-${size}`,
37
+ { 'is-block': block, 'is-rounded': rounded, 'is-outlined': outlined, 'is-pressed': isPressed }
38
+ ]], disabled: disabled || loading, onClick: handleClick, "data-v-6c6a1bc6": "" }, [
39
+ "\n ",
40
+ (loading) ? h('span', { class: "n-btn-spinner", "data-v-6c6a1bc6": "" }) : null,
41
+ (icon && !loading) ? h('span', { class: "n-btn-icon", "data-v-6c6a1bc6": "" }, [
42
+ icon
53
43
  ]) : null,
54
- (!loading || (loading && !loadingText)) ? h('span', { class: "n-btn-content", "data-v-72f6f577": "" }, [
55
- "\r\n ",
56
- ctx.$slots.default ? ctx.$slots.default() : null,
57
- "\r\n "
44
+ (label) ? h('span', { class: "n-btn-label", "data-v-6c6a1bc6": "" }, [
45
+ label
46
+ ]) : null,
47
+ (iconRight) ? h('span', { class: "n-btn-icon-right", "data-v-6c6a1bc6": "" }, [
48
+ iconRight
58
49
  ]) : null,
59
- (ripple.value).map((r, index) =>
60
- h('span', { class: "n-btn-ripple", key: r.id, style: { left: r.x + 'px', top: r.y + 'px' }, "data-v-72f6f577": "" })
61
- ),
62
- "\r\n "
50
+ ctx.$slots.default ? ctx.$slots.default() : null,
51
+ "\n "
63
52
  ])
64
53
  }
65
- _sfc_main.__scopeId = 'data-v-72f6f577'
54
+ _sfc_main.__scopeId = 'data-v-6c6a1bc6'
66
55
  _sfc_main.__hmrId = 'NButton_nexa'
67
56
 
68
57
  export default _sfc_main
69
58
 
70
- const __style = `.n-btn[data-v-72f6f577]{
71
- position: relative;
72
- display: inline-flex;
73
- align-items: center;
74
- justify-content: center;
75
- gap: var(--n-space-2);
76
- font-family: var(--n-font-sans);
77
- font-weight: var(--n-weight-semibold);
78
- letter-spacing: 0.01em;
79
- border-radius: var(--n-radius-md);
80
- cursor: pointer;
81
- transition: all 0.25s cubic-bezier(0.16, 1, 0.3, 1);
82
- border: 1px solid transparent;
83
- outline: none;
84
- white-space: nowrap;
85
- user-select: none;
86
- overflow: hidden;
87
- text-decoration: none;
88
- line-height: var(--n-leading-normal, 1.5);
89
- min-width: fit-content;
90
- will-change: transform;
91
- -webkit-tap-highlight-color: transparent;
92
- }
93
-
94
- .n-btn[data-v-72f6f577]:focus-visible{
95
- box-shadow: 0 0 0 3px var(--n-color-primary-light), 0 0 0 1px var(--n-color-primary);
96
- }
97
-
98
- /* Sizes */
99
- .n-btn-sm[data-v-72f6f577]{ padding: 0.5rem 1.5rem; font-size: var(--n-text-sm); gap: var(--n-space-1); border-radius: var(--n-radius-sm); min-height: 36px; }
100
- .n-btn-md[data-v-72f6f577]{ padding: 0.75rem 2rem; font-size: var(--n-text-base); min-height: 44px; }
101
- .n-btn-lg[data-v-72f6f577]{ padding: 1rem 2.75rem; font-size: var(--n-text-lg); border-radius: var(--n-radius-lg); min-height: 52px; }
102
-
103
- /* Block */
104
- .is-block[data-v-72f6f577]{ width: 100%; }
105
-
106
- /* Rounded */
107
- .is-rounded[data-v-72f6f577]{ border-radius: var(--n-radius-full); }
108
-
109
- /* Active/Press */
110
- .n-btn[data-v-72f6f577]:active:not(:disabled){
111
- transform: scale(0.97);
112
- }
113
-
114
- /* Variant: Primary */
115
- .n-btn-primary[data-v-72f6f577]{
116
- background: linear-gradient(135deg, #6366f1 0%, #4f46e5 50%, #4338ca 100%);
117
- color: white;
118
- box-shadow: 0 4px 14px rgba(99, 102, 241, 0.4), 0 0 0 1px rgba(99, 102, 241, 0.3);
119
- text-shadow: 0 1px 2px rgba(0,0,0,0.2);
120
- }
121
- .n-btn-primary[data-v-72f6f577]:hover:not(:disabled){
122
- transform: translateY(-3px) scale(1.02);
123
- box-shadow: 0 8px 25px rgba(99, 102, 241, 0.5), 0 0 0 1px rgba(99, 102, 241, 0.4), 0 0 40px rgba(99, 102, 241, 0.15);
124
- }
125
- .n-btn-primary[data-v-72f6f577]:active:not(:disabled){
126
- transform: translateY(-1px) scale(0.98);
127
- box-shadow: 0 2px 8px rgba(99, 102, 241, 0.4), inset 0 2px 4px rgba(0,0,0,0.15);
128
- }
129
-
130
- /* Variant: Secondary */
131
- .n-btn-secondary[data-v-72f6f577]{
132
- background: var(--n-color-surface-alt);
133
- color: var(--n-color-text);
134
- border-color: var(--n-color-border);
135
- }
136
- .n-btn-secondary[data-v-72f6f577]:hover:not(:disabled){
137
- background: var(--n-color-surface-hover);
138
- border-color: var(--n-color-border-hover);
139
- transform: translateY(-1px);
140
- }
141
- .n-btn-secondary[data-v-72f6f577]:active:not(:disabled){
142
- box-shadow: inset 0 1px 3px rgba(0,0,0,0.08);
143
- }
144
-
145
- /* Variant: Success */
146
- .n-btn-success[data-v-72f6f577]{
147
- background: linear-gradient(135deg, var(--n-color-success) 0%, var(--n-color-success-hover) 100%);
148
- color: white;
149
- box-shadow: var(--n-shadow-glow-success);
150
- }
151
- .n-btn-success[data-v-72f6f577]:hover:not(:disabled){
152
- transform: translateY(-2px);
153
- box-shadow: var(--n-shadow-glow-success);
154
- }
155
- .n-btn-success[data-v-72f6f577]:active:not(:disabled){
156
- box-shadow: var(--n-shadow-glow-success), inset 0 1px 3px rgba(0,0,0,0.15);
157
- }
158
-
159
- /* Variant: Warning */
160
- .n-btn-warning[data-v-72f6f577]{
161
- background: linear-gradient(135deg, var(--n-color-warning) 0%, var(--n-color-warning-hover) 100%);
162
- color: white;
163
- box-shadow: var(--n-shadow-glow-warning);
164
- }
165
- .n-btn-warning[data-v-72f6f577]:hover:not(:disabled){
166
- transform: translateY(-2px);
167
- box-shadow: var(--n-shadow-glow-warning);
168
- }
169
- .n-btn-warning[data-v-72f6f577]:active:not(:disabled){
170
- box-shadow: var(--n-shadow-glow-warning), inset 0 1px 3px rgba(0,0,0,0.15);
171
- }
172
-
173
- /* Variant: Info */
174
- .n-btn-info[data-v-72f6f577]{
175
- background: linear-gradient(135deg, var(--n-color-info) 0%, var(--n-color-info-hover) 100%);
176
- color: white;
177
- box-shadow: var(--n-shadow-glow-info);
178
- }
179
- .n-btn-info[data-v-72f6f577]:hover:not(:disabled){
180
- transform: translateY(-2px);
181
- box-shadow: var(--n-shadow-glow-info);
182
- }
183
- .n-btn-info[data-v-72f6f577]:active:not(:disabled){
184
- box-shadow: var(--n-shadow-glow-info), inset 0 1px 3px rgba(0,0,0,0.15);
185
- }
186
-
187
- /* Variant: Danger */
188
- .n-btn-danger[data-v-72f6f577]{
189
- background: linear-gradient(135deg, var(--n-color-danger) 0%, var(--n-color-danger-hover) 100%);
190
- color: white;
191
- box-shadow: var(--n-shadow-glow-danger);
192
- }
193
- .n-btn-danger[data-v-72f6f577]:hover:not(:disabled){
194
- transform: translateY(-2px);
195
- box-shadow: var(--n-shadow-glow-danger);
196
- }
197
- .n-btn-danger[data-v-72f6f577]:active:not(:disabled){
198
- box-shadow: var(--n-shadow-glow-danger), inset 0 1px 3px rgba(0,0,0,0.15);
199
- }
200
-
201
- /* Variant: Ghost */
202
- .n-btn-ghost[data-v-72f6f577]{
203
- background: transparent;
204
- backdrop-filter: blur(12px);
205
- -webkit-backdrop-filter: blur(12px);
206
- color: var(--n-color-text-secondary);
207
- border-color: transparent;
208
- }
209
- .n-btn-ghost[data-v-72f6f577]:hover:not(:disabled){
210
- background: var(--n-color-glass);
211
- backdrop-filter: blur(12px);
212
- -webkit-backdrop-filter: blur(12px);
213
- color: var(--n-color-text);
214
- border-color: var(--n-color-glass-border);
215
- }
216
- .n-btn-ghost[data-v-72f6f577]:active:not(:disabled){
217
- background: var(--n-color-glass-hover);
218
- box-shadow: inset 0 1px 3px rgba(0,0,0,0.06);
219
- }
220
-
221
- /* Variant: Outline */
222
- .n-btn-outline[data-v-72f6f577]{
223
- background: transparent;
224
- color: var(--n-color-primary);
225
- border: 1.5px solid transparent;
226
- background-image: linear-gradient(transparent, transparent), linear-gradient(135deg, var(--n-color-primary), var(--n-color-primary-hover));
227
- background-origin: padding-box, border-box;
228
- background-clip: padding-box, border-box;
229
- }
230
- .n-btn-outline[data-v-72f6f577]:hover:not(:disabled){
231
- background-image: linear-gradient(var(--n-color-primary-light), var(--n-color-primary-light)), linear-gradient(135deg, var(--n-color-primary-hover), var(--n-color-primary));
232
- background-origin: padding-box, border-box;
233
- background-clip: padding-box, border-box;
234
- color: var(--n-color-primary-hover);
235
- }
236
- .n-btn-outline[data-v-72f6f577]:active:not(:disabled){
237
- box-shadow: inset 0 1px 3px rgba(0,0,0,0.08);
238
- }
239
-
240
- /* Variant: Glass */
241
- .n-btn-glass[data-v-72f6f577]{
242
- background: var(--n-color-glass);
243
- backdrop-filter: blur(10px);
244
- border-color: var(--n-color-glass-border);
245
- color: var(--n-color-text);
246
- }
247
- .n-btn-glass[data-v-72f6f577]:hover:not(:disabled){
248
- background: var(--n-color-glass-hover);
249
- border-color: var(--n-color-border-hover);
250
- }
251
- .n-btn-glass[data-v-72f6f577]:active:not(:disabled){
252
- box-shadow: inset 0 1px 3px rgba(0,0,0,0.08);
253
- }
254
-
255
- /* Disabled */
256
- .n-btn[data-v-72f6f577]:disabled{
257
- cursor: not-allowed;
258
- transform: none !important;
259
- box-shadow: none !important;
260
- pointer-events: none;
261
- opacity: 0.55;
262
- }
263
- .n-btn[data-v-72f6f577]:disabled::after{
264
- content: '';
265
- position: absolute;
266
- inset: 0;
267
- border-radius: inherit;
268
- background: var(--n-color-surface, #fff);
269
- opacity: 0.3;
270
- pointer-events: none;
271
- }
272
-
273
- /* Loader */
274
- .n-btn-loader[data-v-72f6f577]{
275
- width: 1rem;
276
- height: 1rem;
277
- border: 2px solid currentColor;
278
- border-right-color: transparent;
279
- border-radius: var(--n-radius-full);
280
- animation: n-spin 0.7s linear infinite;
281
- flex-shrink: 0;
282
- }
283
-
284
- .n-btn-lg .n-btn-loader[data-v-72f6f577]{
285
- width: 1.25rem;
286
- height: 1.25rem;
287
- border-width: 2.5px;
288
- }
289
-
290
- .n-btn-sm .n-btn-loader[data-v-72f6f577]{
291
- width: 0.85rem;
292
- height: 0.85rem;
293
- }
294
-
295
- .n-btn-loading-text[data-v-72f6f577]{
296
- opacity: 0.8;
297
- font-weight: var(--n-weight-normal);
298
- }
299
-
300
- .n-btn-content[data-v-72f6f577]{
301
- display: inline-flex;
302
- align-items: center;
303
- gap: var(--n-space-2);
304
- }
305
-
306
- @keyframes n-spin {
307
- from[data-v-72f6f577]{ transform: rotate(0deg); }
308
- to[data-v-72f6f577]{ transform: rotate(360deg); }
309
- }
310
-
311
- /* Ripple */
312
- .n-btn-ripple[data-v-72f6f577]{
313
- position: absolute;
314
- border-radius: var(--n-radius-full);
315
- background: var(--n-color-glass);
316
- width: 20px;
317
- height: 20px;
318
- margin-left: -10px;
319
- margin-top: -10px;
320
- pointer-events: none;
321
- animation: n-ripple 0.6s ease-out forwards;
322
- }
323
-
324
- @keyframes n-ripple {
325
- from[data-v-72f6f577]{ transform: scale(0); opacity: 1; }
326
- to[data-v-72f6f577]{ transform: scale(8); opacity: 0; }
59
+ const __style = `.n-btn[data-v-6c6a1bc6]{
60
+ display: inline-flex;
61
+ align-items: center;
62
+ justify-content: center;
63
+ gap: 0.5rem;
64
+ font-family: inherit;
65
+ font-weight: 500;
66
+ border: 1px solid transparent;
67
+ cursor: pointer;
68
+ transition: background-color var(--n-transition-fast), border-color var(--n-transition-fast), color var(--n-transition-fast), box-shadow var(--n-transition-fast);
69
+ position: relative;
70
+ overflow: hidden;
71
+ user-select: none;
72
+ }
73
+ .n-btn[data-v-6c6a1bc6]:disabled{
74
+ opacity: 0.6;
75
+ cursor: not-allowed;
76
+ }
77
+ .n-btn[data-v-6c6a1bc6]:focus-visible{
78
+ outline: none;
79
+ }
80
+
81
+ /* Sizes */
82
+ .n-btn-sm[data-v-6c6a1bc6]{
83
+ padding: 0.375rem 0.75rem;
84
+ font-size: var(--n-text-sm);
85
+ border-radius: var(--n-radius-md);
86
+ min-height: 32px;
87
+ }
88
+ .n-btn-md[data-v-6c6a1bc6]{
89
+ padding: 0.5rem 1rem;
90
+ font-size: var(--n-text-base);
91
+ border-radius: var(--n-radius-md);
92
+ min-height: 40px;
93
+ }
94
+ .n-btn-lg[data-v-6c6a1bc6]{
95
+ padding: 0.75rem 1.5rem;
96
+ font-size: var(--n-text-lg);
97
+ border-radius: var(--n-radius-lg);
98
+ min-height: 48px;
99
+ }
100
+
101
+ /* Block & Rounded */
102
+ .is-block[data-v-6c6a1bc6]{ width: 100%; }
103
+ .is-rounded[data-v-6c6a1bc6]{ border-radius: var(--n-radius-full); }
104
+
105
+ /* Primary */
106
+ .n-btn-primary[data-v-6c6a1bc6]{
107
+ background-color: var(--n-color-primary);
108
+ color: var(--n-color-primary-text);
109
+ border-color: var(--n-color-primary);
110
+ }
111
+ .n-btn-primary[data-v-6c6a1bc6]:hover:not(:disabled){
112
+ background-color: var(--n-color-primary-hover);
113
+ border-color: var(--n-color-primary-hover);
114
+ }
115
+ .n-btn-primary[data-v-6c6a1bc6]:active:not(:disabled), .is-pressed.n-btn-primary[data-v-6c6a1bc6]{
116
+ background-color: var(--n-color-primary-active);
117
+ border-color: var(--n-color-primary-active);
118
+ }
119
+ .n-btn-primary[data-v-6c6a1bc6]:focus-visible{
120
+ box-shadow: var(--n-ring-primary);
121
+ }
122
+
123
+ /* Secondary */
124
+ .n-btn-secondary[data-v-6c6a1bc6]{
125
+ background-color: var(--n-color-surface-alt);
126
+ color: var(--n-color-text);
127
+ border-color: var(--n-color-border);
128
+ }
129
+ .n-btn-secondary[data-v-6c6a1bc6]:hover:not(:disabled){
130
+ background-color: var(--n-color-surface-hover);
131
+ border-color: var(--n-color-border-hover);
132
+ }
133
+ .n-btn-secondary[data-v-6c6a1bc6]:active:not(:disabled), .is-pressed.n-btn-secondary[data-v-6c6a1bc6]{
134
+ background-color: var(--n-color-border);
135
+ }
136
+ .n-btn-secondary[data-v-6c6a1bc6]:focus-visible{
137
+ box-shadow: var(--n-ring-surface);
138
+ }
139
+
140
+ /* Success */
141
+ .n-btn-success[data-v-6c6a1bc6]{
142
+ background-color: var(--n-color-success);
143
+ color: #fff;
144
+ border-color: var(--n-color-success);
145
+ }
146
+ .n-btn-success[data-v-6c6a1bc6]:hover:not(:disabled){
147
+ background-color: var(--n-color-success-hover);
148
+ border-color: var(--n-color-success-hover);
149
+ }
150
+ .n-btn-success[data-v-6c6a1bc6]:active:not(:disabled), .is-pressed.n-btn-success[data-v-6c6a1bc6]{
151
+ background-color: var(--n-color-success-active);
152
+ }
153
+ .n-btn-success[data-v-6c6a1bc6]:focus-visible{ box-shadow: var(--n-ring-success); }
154
+
155
+ /* Danger */
156
+ .n-btn-danger[data-v-6c6a1bc6]{
157
+ background-color: var(--n-color-danger);
158
+ color: #fff;
159
+ border-color: var(--n-color-danger);
160
+ }
161
+ .n-btn-danger[data-v-6c6a1bc6]:hover:not(:disabled){
162
+ background-color: var(--n-color-danger-hover);
163
+ border-color: var(--n-color-danger-hover);
164
+ }
165
+ .n-btn-danger[data-v-6c6a1bc6]:active:not(:disabled), .is-pressed.n-btn-danger[data-v-6c6a1bc6]{
166
+ background-color: var(--n-color-danger-active);
167
+ }
168
+ .n-btn-danger[data-v-6c6a1bc6]:focus-visible{ box-shadow: var(--n-ring-danger); }
169
+
170
+ /* Warning */
171
+ .n-btn-warning[data-v-6c6a1bc6]{
172
+ background-color: var(--n-color-warning);
173
+ color: #fff;
174
+ border-color: var(--n-color-warning);
175
+ }
176
+ .n-btn-warning[data-v-6c6a1bc6]:hover:not(:disabled){
177
+ background-color: var(--n-color-warning-hover);
178
+ border-color: var(--n-color-warning-hover);
179
+ }
180
+ .n-btn-warning[data-v-6c6a1bc6]:active:not(:disabled), .is-pressed.n-btn-warning[data-v-6c6a1bc6]{
181
+ background-color: var(--n-color-warning-active);
182
+ }
183
+ .n-btn-warning[data-v-6c6a1bc6]:focus-visible{ box-shadow: var(--n-ring-warning); }
184
+
185
+ /* Info */
186
+ .n-btn-info[data-v-6c6a1bc6]{
187
+ background-color: var(--n-color-info);
188
+ color: #fff;
189
+ border-color: var(--n-color-info);
190
+ }
191
+ .n-btn-info[data-v-6c6a1bc6]:hover:not(:disabled){
192
+ background-color: var(--n-color-info-hover);
193
+ border-color: var(--n-color-info-hover);
194
+ }
195
+ .n-btn-info[data-v-6c6a1bc6]:active:not(:disabled), .is-pressed.n-btn-info[data-v-6c6a1bc6]{
196
+ background-color: var(--n-color-info-active);
197
+ }
198
+ .n-btn-info[data-v-6c6a1bc6]:focus-visible{ box-shadow: var(--n-ring-info); }
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
+
217
+ /* Outlined variants */
218
+ .is-outlined[data-v-6c6a1bc6]{
219
+ background-color: transparent !important;
220
+ }
221
+ .is-outlined.n-btn-primary[data-v-6c6a1bc6]{ color: var(--n-color-primary); }
222
+ .is-outlined.n-btn-primary[data-v-6c6a1bc6]:hover:not(:disabled){ background-color: var(--n-color-primary-light) !important; }
223
+
224
+ .is-outlined.n-btn-success[data-v-6c6a1bc6]{ color: var(--n-color-success); border-color: var(--n-color-success); }
225
+ .is-outlined.n-btn-success[data-v-6c6a1bc6]:hover:not(:disabled){ background-color: rgba(34, 197, 94, 0.1) !important; }
226
+
227
+ .is-outlined.n-btn-danger[data-v-6c6a1bc6]{ color: var(--n-color-danger); border-color: var(--n-color-danger); }
228
+ .is-outlined.n-btn-danger[data-v-6c6a1bc6]:hover:not(:disabled){ background-color: rgba(239, 68, 68, 0.1) !important; }
229
+
230
+ /* Spinner */
231
+ .n-btn-spinner[data-v-6c6a1bc6]{
232
+ width: 16px;
233
+ height: 16px;
234
+ border: 2px solid currentColor;
235
+ border-right-color: transparent;
236
+ border-radius: 50%;
237
+ animation: n-spin 0.6s linear infinite;
238
+ }
239
+ @keyframes n-spin {
240
+ to[data-v-6c6a1bc6]{ transform: rotate(360deg); }
241
+ }
242
+
243
+ .n-btn-icon[data-v-6c6a1bc6], .n-btn-icon-right[data-v-6c6a1bc6]{
244
+ display: flex;
245
+ align-items: center;
246
+ justify-content: center;
247
+ }
248
+ .n-btn-label[data-v-6c6a1bc6]{
249
+ line-height: 1;
327
250
  }`
328
- injectStyle('data-v-72f6f577', __style)
251
+ injectStyle('data-v-6c6a1bc6', __style)