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,7 +1,7 @@
1
- import { signal, computed, inject, effect, h, hText, 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
- __scopeId: 'data-v-5b5ed8a8',
4
+ __scopeId: 'data-v-58540fa7',
5
5
  __hmrId: 'NInput_nexa',
6
6
  props: {
7
7
  modelValue: { type: [String, Number], default: '' },
@@ -9,334 +9,167 @@ const _sfc_main = defineComponent({
9
9
  placeholder: { type: String, default: '' },
10
10
  label: { type: String, default: '' },
11
11
  error: { type: String, default: '' },
12
- id: { type: String, default: '' },
13
- name: { type: String, default: '' },
14
- autocomplete: { type: String, default: '' },
15
- ariaDescribedby: { type: String, default: '' },
16
- ariaInvalid: { type: [Boolean, String], default: false },
17
- bindField: { type: Boolean, default: false },
18
12
  disabled: { type: Boolean, default: false },
19
13
  readonly: { type: Boolean, default: false },
14
+ required: { type: Boolean, default: false },
20
15
  clearable: { type: Boolean, default: false },
21
- maxlength: { type: Number, default: 0 },
22
- prefixIcon: { type: String, default: '' },
23
- suffixIcon: { type: String, default: '' }
16
+ prefix: { type: String, default: '' },
17
+ suffix: { type: String, default: '' }
24
18
  },
25
- emits: ['update:modelValue', 'clear', 'focus', 'blur'],
19
+ emits: ['update:modelValue', 'focus', 'blur', 'clear'],
26
20
  setup(props, setupContext) {
27
21
  const { emit, slots, slots: $slots } = setupContext
28
- const field = inject('nexa-ui:form-field', undefined)
29
- const showPassword = signal(false)
30
22
  const isFocused = signal(false)
31
- const effectiveValue = computed(() => {
32
- if (props.bindField && field?.value) return field.value.value
33
- return props.modelValue
34
- })
35
- const draft = signal(String(effectiveValue.value ?? ''))
36
- effect(() => {
37
- const next = String(effectiveValue.value ?? '')
38
- if (draft.value === next) return
39
- draft.value = next
40
- })
41
- const effectiveId = computed(() => {
42
- if (props.id) return props.id
43
- if (props.bindField && field?.inputId) return field.inputId.value
44
- return ''
45
- })
46
- const effectiveDescribedBy = computed(() => {
47
- if (props.ariaDescribedby) return props.ariaDescribedby
48
- if (props.bindField && field?.describedBy) return field.describedBy.value || ''
49
- return ''
50
- })
51
- const effectiveInvalid = computed(() => {
52
- if (props.bindField && field?.invalid) return field.invalid.value
53
- return props.ariaInvalid
54
- })
55
- const effectiveError = computed(() => {
56
- if (props.error) return props.error
57
- if (props.bindField && field?.error) return field.error.value || ''
58
- return ''
59
- })
60
- const effectiveDisabled = computed(() => {
61
- if (props.disabled) return true
62
- if (props.bindField && field?.disabled) return !!field.disabled.value
63
- return false
64
- })
65
- const inputType = computed(() => {
66
- if (props.type === 'password' && showPassword.value) return 'text'
67
- return props.type
68
- })
69
- const currentLength = computed(() => draft.value.length)
70
- const onInput = (e) => {
71
- const next = e.target.value
72
- if (draft.value !== next) draft.value = next
73
- if (props.bindField && field?.setValue) {
74
- field.setValue(next)
75
- return
76
- }
77
- emit('update:modelValue', next)
23
+ const handleInput = (e) => {
24
+ emit('update:modelValue', e.target.value)
78
25
  }
79
- const onFocus = () => {
26
+ const handleFocus = (e) => {
80
27
  isFocused.value = true
81
- emit('focus')
28
+ emit('focus', e)
82
29
  }
83
- const onBlur = () => {
30
+ const handleBlur = (e) => {
84
31
  isFocused.value = false
85
- if (props.bindField && field?.onBlur) {
86
- field.onBlur()
87
- }
88
- emit('blur')
32
+ emit('blur', e)
89
33
  }
90
- const clear = () => {
91
- if (draft.value) draft.value = ''
92
- if (props.bindField && field?.setValue) {
93
- field.setValue('')
94
- emit('clear')
95
- return
96
- }
34
+ const handleClear = () => {
97
35
  emit('update:modelValue', '')
98
36
  emit('clear')
99
37
  }
100
- const togglePassword = () => {
101
- showPassword.value = !showPassword.value
102
- }
103
- return { field, showPassword, isFocused, effectiveValue, draft, effectiveId, effectiveDescribedBy, effectiveInvalid, effectiveError, effectiveDisabled, inputType, currentLength, onInput, onFocus, onBlur, clear, togglePassword, inject, $slots, emit }
38
+ return { isFocused, handleInput, handleFocus, handleBlur, handleClear, $slots, emit }
104
39
  }
105
40
  })
106
41
  // Injected render function
107
42
  _sfc_main.render = function(ctx) {
108
- let { field, showPassword, isFocused, effectiveValue, draft, effectiveId, effectiveDescribedBy, effectiveInvalid, effectiveError, effectiveDisabled, inputType, currentLength, onInput, onFocus, onBlur, clear, togglePassword, inject, $slots, emit, modelValue, type, placeholder, label, error, id, name, autocomplete, ariaDescribedby, ariaInvalid, bindField, disabled, readonly, clearable, maxlength, prefixIcon, suffixIcon, Fragment: _ntc_Fragment } = ctx
109
- return h('div', { class: "n-input-group", "data-v-5b5ed8a8": "" }, [
43
+ let { isFocused, handleInput, handleFocus, handleBlur, handleClear, $slots, emit, modelValue, type, placeholder, label, error, disabled, readonly, required, clearable, prefix, suffix, Fragment: _ntc_Fragment } = ctx
44
+ return h('div', { class: ["n-input-wrapper", { 'is-focused': isFocused, 'is-error': error, 'is-disabled': disabled }], "data-v-58540fa7": "" }, [
110
45
  "\n ",
111
- (label) ? h('label', { class: "n-input-label", "data-v-5b5ed8a8": "" }, [
112
- label
113
- ]) : null,
114
- h('div', { class: ["n-input-wrapper", { 'is-focused': isFocused.value, 'has-error': effectiveError.value, 'is-disabled': effectiveDisabled.value }], "data-v-5b5ed8a8": "" }, [
46
+ (label) ? h('label', { class: "n-input-label", "data-v-58540fa7": "" }, [
47
+ "\n ",
48
+ label,
115
49
  "\n ",
116
- (prefixIcon) ? h('span', { class: "n-input-icon is-prefix", "data-v-5b5ed8a8": "" }, [
117
- prefixIcon
50
+ (required) ? h('span', { class: "n-input-required", "data-v-58540fa7": "" }, [
51
+ "*"
52
+ ]) : null
118
53
  ]) : null,
119
- h('input', { class: ["n-input", { 'has-prefix': !!prefixIcon, 'has-suffix': !!suffixIcon || clearable || type === 'password' }], id: effectiveId.value || undefined, name: name || undefined, type: inputType.value, value: draft.value, placeholder: placeholder, disabled: effectiveDisabled.value, readonly: readonly, autocomplete: autocomplete || undefined, "aria-describedby": effectiveDescribedBy.value || undefined, "aria-invalid": effectiveInvalid.value || undefined, maxlength: maxlength || undefined, onInput: onInput, onFocus: onFocus, onBlur: onBlur, "data-v-5b5ed8a8": "" }),
54
+ h('div', { class: "n-input-container", "data-v-58540fa7": "" }, [
120
55
  "\n ",
121
- h('div', { class: "n-input-focus-ring", "data-v-5b5ed8a8": "" }),
56
+ (prefix) ? h('span', { class: "n-input-prefix", "data-v-58540fa7": "" }, [
57
+ prefix
58
+ ]) : null,
59
+ h('input', { class: "n-input", type: type, value: modelValue, placeholder: placeholder, disabled: disabled, readonly: readonly, required: required, onInput: handleInput, onFocus: handleFocus, onBlur: handleBlur, "data-v-58540fa7": "" }),
122
60
  "\n ",
123
- h('div', { class: "n-input-actions", "data-v-5b5ed8a8": "" }, [
61
+ (clearable && modelValue) ? h('button', { class: "n-input-clear", onClick: handleClear, type: "button", "data-v-58540fa7": "" }, [
124
62
  "\n ",
125
- (clearable && draft.value) ? h('button', { class: "n-input-action", onClick: clear, tabindex: "-1", type: "button", "aria-label": "Clear", "data-v-5b5ed8a8": "" }, [
126
- 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-5b5ed8a8": "" }, [
127
- h('path', { d: "M18 6L6 18", "data-v-5b5ed8a8": "" }),
128
- h('path', { d: "M6 6l12 12", "data-v-5b5ed8a8": "" })
129
- ])
130
- ]) : null,
131
- (type === 'password') ? h('button', { class: "n-input-action", onClick: togglePassword, tabindex: "-1", type: "button", "aria-label": showPassword.value ? 'Hide password' : 'Show password', "data-v-5b5ed8a8": "" }, [
63
+ h('svg', { viewBox: "0 0 24 24", width: "16", height: "16", fill: "none", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round", "data-v-58540fa7": "" }, [
132
64
  "\n ",
133
- (!showPassword.value) ? 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-5b5ed8a8": "" }, [
134
- h('path', { d: "M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z", "data-v-5b5ed8a8": "" }),
135
- h('circle', { cx: "12", cy: "12", r: "3", "data-v-5b5ed8a8": "" })
136
- ]) : (true) ? 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-5b5ed8a8": "" }, [
137
- h('path', { d: "M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z", "data-v-5b5ed8a8": "" }),
138
- h('circle', { cx: "12", cy: "12", r: "3", "data-v-5b5ed8a8": "" }),
139
- h('path', { d: "M23 1L1 23", "data-v-5b5ed8a8": "" })
140
- ]) : null,
65
+ h('line', { x1: "18", y1: "6", x2: "6", y2: "18", "data-v-58540fa7": "" }),
66
+ "\n ",
67
+ h('line', { x1: "6", y1: "6", x2: "18", y2: "18", "data-v-58540fa7": "" }),
141
68
  "\n "
69
+ ]),
70
+ "\n "
142
71
  ]) : null,
143
- (suffixIcon) ? h('span', { class: "n-input-icon is-suffix", "data-v-5b5ed8a8": "" }, [
144
- suffixIcon
72
+ (suffix) ? h('span', { class: "n-input-suffix", "data-v-58540fa7": "" }, [
73
+ suffix
145
74
  ]) : null
146
- ]),
147
- "\n "
148
75
  ]),
149
76
  "\n ",
150
- h('div', { class: "n-input-bottom", "data-v-5b5ed8a8": "" }, [
151
- "\n ",
152
- (effectiveError.value) ? h('span', { class: "n-input-error-msg", "data-v-5b5ed8a8": "" }, [
153
- effectiveError.value
154
- ]) : null,
155
- (maxlength > 0) ? h('span', { class: "n-input-counter", "data-v-5b5ed8a8": "" }, [
156
- currentLength.value,
157
- "/",
158
- maxlength
77
+ (error) ? h('span', { class: "n-input-error", "data-v-58540fa7": "" }, [
78
+ error
159
79
  ]) : null
160
- ]),
161
- "\n "
162
80
  ])
163
81
  }
164
- _sfc_main.__scopeId = 'data-v-5b5ed8a8'
82
+ _sfc_main.__scopeId = 'data-v-58540fa7'
165
83
  _sfc_main.__hmrId = 'NInput_nexa'
166
84
 
167
85
  export default _sfc_main
168
86
 
169
- const __style = `.n-input-group[data-v-5b5ed8a8]{
87
+ const __style = `.n-input-wrapper[data-v-58540fa7]{
170
88
  display: flex;
171
89
  flex-direction: column;
172
- gap: var(--n-space-2);
90
+ gap: 0.5rem;
173
91
  width: 100%;
174
92
  }
175
-
176
- .n-input-label[data-v-5b5ed8a8]{
177
- font-size: var(--n-text-sm);
178
- font-weight: var(--n-weight-medium);
179
- color: var(--n-color-text-secondary);
180
- margin-left: var(--n-space-1);
181
- letter-spacing: 0.01em;
93
+ .n-input-label[data-v-58540fa7]{
94
+ font-size: 0.875rem;
95
+ font-weight: 500;
96
+ color: var(--n-color-text);
97
+ letter-spacing: normal;
182
98
  }
183
-
184
- .n-input-wrapper[data-v-5b5ed8a8]{
99
+ .n-input-required[data-v-58540fa7]{
100
+ color: var(--n-color-danger);
101
+ margin-left: 0.25rem;
102
+ }
103
+ .n-input-container[data-v-58540fa7]{
185
104
  position: relative;
186
105
  display: flex;
187
106
  align-items: center;
188
- transition: all var(--n-transition-fast);
189
- }
190
-
191
- .n-input[data-v-5b5ed8a8]{
192
- position: relative;
193
- z-index: 1;
194
- width: 100%;
195
- min-height: 44px;
196
- background: var(--n-color-bg);
107
+ background-color: var(--n-color-surface);
197
108
  border: 1px solid var(--n-color-border);
198
- color: var(--n-color-text);
199
- padding: 0.75rem 1.125rem;
200
- border-radius: var(--n-radius-md);
201
- font-family: inherit;
202
- font-size: var(--n-text-base);
203
- line-height: 1.2;
204
- box-sizing: border-box;
205
- transition: all var(--n-transition-normal) cubic-bezier(0.16, 1, 0.3, 1);
206
- outline: none;
207
- caret-color: var(--n-color-primary);
208
- -webkit-font-smoothing: antialiased;
209
- -moz-osx-font-smoothing: grayscale;
210
- }
211
-
212
- .n-input.has-prefix[data-v-5b5ed8a8]{
213
- padding-left: 2.5rem;
214
- }
215
-
216
- .n-input.has-suffix[data-v-5b5ed8a8]{
217
- padding-right: 2.5rem;
218
- }
219
-
220
- .n-input[data-v-5b5ed8a8]::placeholder{
221
- color: var(--n-color-text-muted);
222
- }
223
-
224
- .n-input-focus-ring[data-v-5b5ed8a8]{
225
- position: absolute;
226
- inset: 0;
227
109
  border-radius: var(--n-radius-md);
228
- background: linear-gradient(135deg, var(--n-color-primary), var(--n-color-info));
229
- opacity: 0;
230
- pointer-events: none;
231
- transition: opacity var(--n-transition-normal) cubic-bezier(0.16, 1, 0.3, 1);
232
- z-index: 0;
110
+ transition: background-color var(--n-transition-fast), border-color var(--n-transition-fast), color var(--n-transition-fast), box-shadow var(--n-transition-fast);
233
111
  }
234
-
235
- .is-focused .n-input-focus-ring[data-v-5b5ed8a8]{
236
- opacity: 0.15;
112
+ .n-input-container[data-v-58540fa7]:hover{
113
+ border-color: var(--n-color-border-hover);
237
114
  }
238
-
239
- .is-focused .n-input[data-v-5b5ed8a8]{
115
+ .is-focused .n-input-container[data-v-58540fa7]{
240
116
  border-color: var(--n-color-primary);
241
- background: var(--n-color-surface);
242
- box-shadow:
243
- 0 0 0 3px var(--n-color-primary-light),
244
- 0 0 0 1px var(--n-color-primary),
245
- inset 0 1px 3px rgba(0,0,0,0.04);
117
+ box-shadow: var(--n-ring-primary);
246
118
  }
247
-
248
- .has-error .n-input[data-v-5b5ed8a8]{
119
+ .is-error .n-input-container[data-v-58540fa7]{
249
120
  border-color: var(--n-color-danger);
250
121
  }
251
-
252
- .has-error .n-input-focus-ring[data-v-5b5ed8a8]{
253
- background: var(--n-color-danger);
254
- opacity: 0.35;
122
+ .is-error.is-focused .n-input-container[data-v-58540fa7]{
123
+ box-shadow: var(--n-ring-danger);
255
124
  }
256
-
257
- .n-input-icon[data-v-5b5ed8a8]{
258
- position: absolute;
259
- top: 50%;
260
- transform: translateY(-50%);
261
- color: var(--n-color-text-muted);
262
- font-size: var(--n-text-sm);
263
- pointer-events: none;
264
- display: flex;
265
- align-items: center;
266
- line-height: 1;
125
+ .is-disabled .n-input-container[data-v-58540fa7]{
126
+ opacity: 0.6;
127
+ cursor: not-allowed;
128
+ background-color: var(--n-color-surface-alt);
267
129
  }
268
-
269
- .n-input-icon.is-prefix[data-v-5b5ed8a8]{
270
- left: 0.85rem;
130
+ .n-input[data-v-58540fa7]{
131
+ flex: 1;
132
+ background: transparent;
133
+ border: none;
134
+ outline: none;
135
+ padding: 0.5rem 0.75rem;
136
+ font-size: 0.875rem;
137
+ color: var(--n-color-text);
138
+ font-family: inherit;
139
+ width: 100%;
271
140
  }
272
-
273
- .n-input-icon.is-suffix[data-v-5b5ed8a8]{
274
- right: 0.85rem;
141
+ .n-input[data-v-58540fa7]::placeholder{
142
+ color: var(--n-color-text-muted);
275
143
  }
276
-
277
- .n-input-actions[data-v-5b5ed8a8]{
278
- position: absolute;
279
- right: 0.5rem;
280
- top: 50%;
281
- transform: translateY(-50%);
282
- display: flex;
283
- align-items: center;
284
- gap: 0.15rem;
144
+ .n-input[data-v-58540fa7]:disabled{
145
+ cursor: not-allowed;
285
146
  }
286
-
287
- .n-input-action[data-v-5b5ed8a8]{
147
+ .n-input-prefix[data-v-58540fa7],
148
+ .n-input-suffix[data-v-58540fa7]{
149
+ padding: 0 0.75rem;
150
+ color: var(--n-color-text-muted);
151
+ font-size: 0.875rem;
152
+ user-select: none;
153
+ }
154
+ .n-input-clear[data-v-58540fa7]{
288
155
  background: transparent;
289
156
  border: none;
290
- color: var(--n-color-text-muted);
291
157
  cursor: pointer;
292
- padding: 0.25rem;
293
- font-size: var(--n-text-sm);
294
- border-radius: var(--n-radius-sm);
295
- transition: all var(--n-transition-fast);
158
+ padding: 0.5rem;
159
+ color: var(--n-color-text-muted);
160
+ transition: color var(--n-transition-fast);
296
161
  display: flex;
297
162
  align-items: center;
298
- line-height: 1;
163
+ justify-content: center;
299
164
  }
300
-
301
- .n-input-action[data-v-5b5ed8a8]:hover{
165
+ .n-input-clear[data-v-58540fa7]:hover{
302
166
  color: var(--n-color-text);
303
- background: var(--n-color-glass);
304
167
  }
305
-
306
- .n-input-bottom[data-v-5b5ed8a8]{
168
+ .n-input-error[data-v-58540fa7]{
169
+ font-size: 0.75rem;
170
+ color: var(--n-color-danger);
307
171
  display: flex;
308
- justify-content: space-between;
309
172
  align-items: center;
310
- padding: 0 var(--n-space-1);
311
- }
312
-
313
- .n-input-error-msg[data-v-5b5ed8a8]{
314
- font-size: var(--n-text-xs);
315
- color: var(--n-color-danger);
316
- }
317
-
318
- .n-input-counter[data-v-5b5ed8a8]{
319
- font-size: var(--n-text-xs);
320
- color: var(--n-color-text-muted);
321
- margin-left: auto;
322
- }
323
-
324
- .is-disabled[data-v-5b5ed8a8]{
325
- position: relative;
326
- }
327
-
328
- .is-disabled[data-v-5b5ed8a8]::after{
329
- content: '';
330
- position: absolute;
331
- inset: 0;
332
- background: var(--n-color-glass);
333
- border-radius: var(--n-radius-md);
334
- pointer-events: none;
335
- z-index: 2;
336
- }
337
-
338
- .is-disabled .n-input[data-v-5b5ed8a8]{
339
- cursor: not-allowed;
340
- background: var(--n-color-surface-alt);
173
+ gap: 0.25rem;
341
174
  }`
342
- injectStyle('data-v-5b5ed8a8', __style)
175
+ injectStyle('data-v-58540fa7', __style)