nexa-ui-kit 0.11.5 → 0.11.8

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 +202 -294
  12. package/dist/components/NButton.nexa +224 -318
  13. package/dist/components/NCard.js +39 -82
  14. package/dist/components/NCard.nexa +27 -71
  15. package/dist/components/NCheckbox.js +77 -60
  16. package/dist/components/NCheckbox.nexa +71 -45
  17. package/dist/components/NChips.nexa +1 -0
  18. package/dist/components/NDataTable.js +1 -313
  19. package/dist/components/NDataTable.nexa +2 -314
  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 +4 -4
  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 +224 -318
  69. package/src/components/NCard.nexa +27 -71
  70. package/src/components/NCheckbox.nexa +71 -45
  71. package/src/components/NChips.nexa +1 -0
  72. package/src/components/NDataTable.nexa +2 -314
  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,326 +1,234 @@
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, var(--n-color-primary) 0%, var(--n-color-primary-hover) 100%);
117
- color: white;
118
- box-shadow: var(--n-shadow-glow-primary);
119
- }
120
- .n-btn-primary[data-v-72f6f577]:hover:not(:disabled){
121
- transform: translateY(-2px);
122
- box-shadow: 0 8px 20px -3px var(--n-color-primary-glow);
123
- }
124
- .n-btn-primary[data-v-72f6f577]:active:not(:disabled){
125
- box-shadow: var(--n-shadow-glow-primary), inset 0 1px 3px rgba(0,0,0,0.15);
126
- }
127
-
128
- /* Variant: Secondary */
129
- .n-btn-secondary[data-v-72f6f577]{
130
- background: var(--n-color-surface-alt);
131
- color: var(--n-color-text);
132
- border-color: var(--n-color-border);
133
- }
134
- .n-btn-secondary[data-v-72f6f577]:hover:not(:disabled){
135
- background: var(--n-color-surface-hover);
136
- border-color: var(--n-color-border-hover);
137
- transform: translateY(-1px);
138
- }
139
- .n-btn-secondary[data-v-72f6f577]:active:not(:disabled){
140
- box-shadow: inset 0 1px 3px rgba(0,0,0,0.08);
141
- }
142
-
143
- /* Variant: Success */
144
- .n-btn-success[data-v-72f6f577]{
145
- background: linear-gradient(135deg, var(--n-color-success) 0%, var(--n-color-success-hover) 100%);
146
- color: white;
147
- box-shadow: var(--n-shadow-glow-success);
148
- }
149
- .n-btn-success[data-v-72f6f577]:hover:not(:disabled){
150
- transform: translateY(-2px);
151
- box-shadow: var(--n-shadow-glow-success);
152
- }
153
- .n-btn-success[data-v-72f6f577]:active:not(:disabled){
154
- box-shadow: var(--n-shadow-glow-success), inset 0 1px 3px rgba(0,0,0,0.15);
155
- }
156
-
157
- /* Variant: Warning */
158
- .n-btn-warning[data-v-72f6f577]{
159
- background: linear-gradient(135deg, var(--n-color-warning) 0%, var(--n-color-warning-hover) 100%);
160
- color: white;
161
- box-shadow: var(--n-shadow-glow-warning);
162
- }
163
- .n-btn-warning[data-v-72f6f577]:hover:not(:disabled){
164
- transform: translateY(-2px);
165
- box-shadow: var(--n-shadow-glow-warning);
166
- }
167
- .n-btn-warning[data-v-72f6f577]:active:not(:disabled){
168
- box-shadow: var(--n-shadow-glow-warning), inset 0 1px 3px rgba(0,0,0,0.15);
169
- }
170
-
171
- /* Variant: Info */
172
- .n-btn-info[data-v-72f6f577]{
173
- background: linear-gradient(135deg, var(--n-color-info) 0%, var(--n-color-info-hover) 100%);
174
- color: white;
175
- box-shadow: var(--n-shadow-glow-info);
176
- }
177
- .n-btn-info[data-v-72f6f577]:hover:not(:disabled){
178
- transform: translateY(-2px);
179
- box-shadow: var(--n-shadow-glow-info);
180
- }
181
- .n-btn-info[data-v-72f6f577]:active:not(:disabled){
182
- box-shadow: var(--n-shadow-glow-info), inset 0 1px 3px rgba(0,0,0,0.15);
183
- }
184
-
185
- /* Variant: Danger */
186
- .n-btn-danger[data-v-72f6f577]{
187
- background: linear-gradient(135deg, var(--n-color-danger) 0%, var(--n-color-danger-hover) 100%);
188
- color: white;
189
- box-shadow: var(--n-shadow-glow-danger);
190
- }
191
- .n-btn-danger[data-v-72f6f577]:hover:not(:disabled){
192
- transform: translateY(-2px);
193
- box-shadow: var(--n-shadow-glow-danger);
194
- }
195
- .n-btn-danger[data-v-72f6f577]:active:not(:disabled){
196
- box-shadow: var(--n-shadow-glow-danger), inset 0 1px 3px rgba(0,0,0,0.15);
197
- }
198
-
199
- /* Variant: Ghost */
200
- .n-btn-ghost[data-v-72f6f577]{
201
- background: transparent;
202
- backdrop-filter: blur(12px);
203
- -webkit-backdrop-filter: blur(12px);
204
- color: var(--n-color-text-secondary);
205
- border-color: transparent;
206
- }
207
- .n-btn-ghost[data-v-72f6f577]:hover:not(:disabled){
208
- background: var(--n-color-glass);
209
- backdrop-filter: blur(12px);
210
- -webkit-backdrop-filter: blur(12px);
211
- color: var(--n-color-text);
212
- border-color: var(--n-color-glass-border);
213
- }
214
- .n-btn-ghost[data-v-72f6f577]:active:not(:disabled){
215
- background: var(--n-color-glass-hover);
216
- box-shadow: inset 0 1px 3px rgba(0,0,0,0.06);
217
- }
218
-
219
- /* Variant: Outline */
220
- .n-btn-outline[data-v-72f6f577]{
221
- background: transparent;
222
- color: var(--n-color-primary);
223
- border: 1.5px solid transparent;
224
- background-image: linear-gradient(transparent, transparent), linear-gradient(135deg, var(--n-color-primary), var(--n-color-primary-hover));
225
- background-origin: padding-box, border-box;
226
- background-clip: padding-box, border-box;
227
- }
228
- .n-btn-outline[data-v-72f6f577]:hover:not(:disabled){
229
- 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));
230
- background-origin: padding-box, border-box;
231
- background-clip: padding-box, border-box;
232
- color: var(--n-color-primary-hover);
233
- }
234
- .n-btn-outline[data-v-72f6f577]:active:not(:disabled){
235
- box-shadow: inset 0 1px 3px rgba(0,0,0,0.08);
236
- }
237
-
238
- /* Variant: Glass */
239
- .n-btn-glass[data-v-72f6f577]{
240
- background: var(--n-color-glass);
241
- backdrop-filter: blur(10px);
242
- border-color: var(--n-color-glass-border);
243
- color: var(--n-color-text);
244
- }
245
- .n-btn-glass[data-v-72f6f577]:hover:not(:disabled){
246
- background: var(--n-color-glass-hover);
247
- border-color: var(--n-color-border-hover);
248
- }
249
- .n-btn-glass[data-v-72f6f577]:active:not(:disabled){
250
- box-shadow: inset 0 1px 3px rgba(0,0,0,0.08);
251
- }
252
-
253
- /* Disabled */
254
- .n-btn[data-v-72f6f577]:disabled{
255
- cursor: not-allowed;
256
- transform: none !important;
257
- box-shadow: none !important;
258
- pointer-events: none;
259
- opacity: 0.55;
260
- }
261
- .n-btn[data-v-72f6f577]:disabled::after{
262
- content: '';
263
- position: absolute;
264
- inset: 0;
265
- border-radius: inherit;
266
- background: var(--n-color-surface, #fff);
267
- opacity: 0.3;
268
- pointer-events: none;
269
- }
270
-
271
- /* Loader */
272
- .n-btn-loader[data-v-72f6f577]{
273
- width: 1rem;
274
- height: 1rem;
275
- border: 2px solid currentColor;
276
- border-right-color: transparent;
277
- border-radius: var(--n-radius-full);
278
- animation: n-spin 0.7s linear infinite;
279
- flex-shrink: 0;
280
- }
281
-
282
- .n-btn-lg .n-btn-loader[data-v-72f6f577]{
283
- width: 1.25rem;
284
- height: 1.25rem;
285
- border-width: 2.5px;
286
- }
287
-
288
- .n-btn-sm .n-btn-loader[data-v-72f6f577]{
289
- width: 0.85rem;
290
- height: 0.85rem;
291
- }
292
-
293
- .n-btn-loading-text[data-v-72f6f577]{
294
- opacity: 0.8;
295
- font-weight: var(--n-weight-normal);
296
- }
297
-
298
- .n-btn-content[data-v-72f6f577]{
299
- display: inline-flex;
300
- align-items: center;
301
- gap: var(--n-space-2);
302
- }
303
-
304
- @keyframes n-spin {
305
- from[data-v-72f6f577]{ transform: rotate(0deg); }
306
- to[data-v-72f6f577]{ transform: rotate(360deg); }
307
- }
308
-
309
- /* Ripple */
310
- .n-btn-ripple[data-v-72f6f577]{
311
- position: absolute;
312
- border-radius: var(--n-radius-full);
313
- background: var(--n-color-glass);
314
- width: 20px;
315
- height: 20px;
316
- margin-left: -10px;
317
- margin-top: -10px;
318
- pointer-events: none;
319
- animation: n-ripple 0.6s ease-out forwards;
320
- }
321
-
322
- @keyframes n-ripple {
323
- from[data-v-72f6f577]{ transform: scale(0); opacity: 1; }
324
- 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
+ /* Outlined variants */
201
+ .is-outlined[data-v-6c6a1bc6]{
202
+ background-color: transparent !important;
203
+ }
204
+ .is-outlined.n-btn-primary[data-v-6c6a1bc6]{ color: var(--n-color-primary); }
205
+ .is-outlined.n-btn-primary[data-v-6c6a1bc6]:hover:not(:disabled){ background-color: var(--n-color-primary-light) !important; }
206
+
207
+ .is-outlined.n-btn-success[data-v-6c6a1bc6]{ color: var(--n-color-success); border-color: var(--n-color-success); }
208
+ .is-outlined.n-btn-success[data-v-6c6a1bc6]:hover:not(:disabled){ background-color: rgba(34, 197, 94, 0.1) !important; }
209
+
210
+ .is-outlined.n-btn-danger[data-v-6c6a1bc6]{ color: var(--n-color-danger); border-color: var(--n-color-danger); }
211
+ .is-outlined.n-btn-danger[data-v-6c6a1bc6]:hover:not(:disabled){ background-color: rgba(239, 68, 68, 0.1) !important; }
212
+
213
+ /* Spinner */
214
+ .n-btn-spinner[data-v-6c6a1bc6]{
215
+ width: 16px;
216
+ height: 16px;
217
+ border: 2px solid currentColor;
218
+ border-right-color: transparent;
219
+ border-radius: 50%;
220
+ animation: n-spin 0.6s linear infinite;
221
+ }
222
+ @keyframes n-spin {
223
+ to[data-v-6c6a1bc6]{ transform: rotate(360deg); }
224
+ }
225
+
226
+ .n-btn-icon[data-v-6c6a1bc6], .n-btn-icon-right[data-v-6c6a1bc6]{
227
+ display: flex;
228
+ align-items: center;
229
+ justify-content: center;
230
+ }
231
+ .n-btn-label[data-v-6c6a1bc6]{
232
+ line-height: 1;
325
233
  }`
326
- injectStyle('data-v-72f6f577', __style)
234
+ injectStyle('data-v-6c6a1bc6', __style)