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.
- package/dist/components/NAlert.js +49 -28
- package/dist/components/NAlert.nexa +12 -6
- package/dist/components/NAutocomplete.js +25 -20
- package/dist/components/NAutocomplete.nexa +3 -3
- package/dist/components/NAvatar.js +1 -1
- package/dist/components/NBadge.js +1 -1
- package/dist/components/NBottomSheet.js +17 -17
- package/dist/components/NBottomSheet.nexa +2 -2
- package/dist/components/NButton.js +59 -59
- package/dist/components/NButton.nexa +10 -9
- package/dist/components/NCard.js +2 -2
- package/dist/components/NCard.nexa +1 -1
- package/dist/components/NCheckbox.js +23 -19
- package/dist/components/NCheckbox.nexa +2 -1
- package/dist/components/NChips.js +13 -10
- package/dist/components/NChips.nexa +1 -1
- package/dist/components/NDataTable.js +360 -42
- package/dist/components/NDataTable.nexa +318 -10
- package/dist/components/NDatepicker.js +52 -43
- package/dist/components/NDatepicker.nexa +3 -3
- package/dist/components/NForm.js +1 -1
- package/dist/components/NFormField.js +1 -1
- package/dist/components/NInput.js +51 -41
- package/dist/components/NInput.nexa +4 -3
- package/dist/components/NInputNumber.js +18 -13
- package/dist/components/NInputNumber.nexa +2 -2
- package/dist/components/NModal.js +34 -28
- package/dist/components/NModal.nexa +4 -4
- package/dist/components/NMultiSelect.js +47 -38
- package/dist/components/NMultiSelect.nexa +3 -3
- package/dist/components/NPaginator.js +29 -21
- package/dist/components/NPaginator.nexa +4 -4
- package/dist/components/NPassword.js +61 -47
- package/dist/components/NPassword.nexa +5 -4
- package/dist/components/NProgressBar.js +5 -5
- package/dist/components/NProgressBar.nexa +4 -4
- package/dist/components/NRadio.js +1 -1
- package/dist/components/NScrollView.js +1 -1
- package/dist/components/NSelect.js +68 -63
- package/dist/components/NSelect.nexa +4 -4
- package/dist/components/NSkeleton.js +1 -1
- package/dist/components/NSwitch.js +1 -1
- package/dist/components/NTabs.js +1 -1
- package/dist/components/NTag.js +27 -24
- package/dist/components/NTag.nexa +6 -6
- package/dist/components/NToastContainer.js +65 -49
- package/dist/components/NToastContainer.nexa +6 -3
- package/dist/components/NTooltip.js +1 -1
- package/dist/components/NTreeMenu.js +74 -35
- package/dist/components/NTreeMenu.nexa +52 -15
- package/dist/styles/tokens.css +18 -0
- package/package.json +4 -4
- package/src/components/NAlert.nexa +12 -6
- package/src/components/NAutocomplete.nexa +3 -3
- package/src/components/NBottomSheet.nexa +2 -2
- package/src/components/NButton.nexa +10 -9
- package/src/components/NCard.nexa +1 -1
- package/src/components/NCheckbox.nexa +2 -1
- package/src/components/NChips.nexa +1 -1
- package/src/components/NDataTable.nexa +318 -10
- package/src/components/NDatepicker.nexa +3 -3
- package/src/components/NInput.nexa +4 -3
- package/src/components/NInputNumber.nexa +2 -2
- package/src/components/NModal.nexa +4 -4
- package/src/components/NMultiSelect.nexa +3 -3
- package/src/components/NPaginator.nexa +4 -4
- package/src/components/NPassword.nexa +5 -4
- package/src/components/NProgressBar.nexa +4 -4
- package/src/components/NSelect.nexa +4 -4
- package/src/components/NTag.nexa +6 -6
- package/src/components/NToastContainer.nexa +6 -3
- package/src/components/NTreeMenu.nexa +52 -15
- package/src/styles/tokens.css +18 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { signal, h, hText, effect,
|
|
1
|
+
import { signal, h, hText, effect, defineComponent, registerComponent, reloadComponent, injectStyle } from 'nexa-framework'
|
|
2
2
|
|
|
3
3
|
const _sfc_main = defineComponent({
|
|
4
|
-
__scopeId: 'data-v-
|
|
4
|
+
__scopeId: 'data-v-291d86b1',
|
|
5
5
|
__hmrId: 'NAlert_nexa',
|
|
6
6
|
props: {
|
|
7
7
|
variant: { type: String, default: 'info' },
|
|
@@ -24,34 +24,55 @@ const _sfc_main = defineComponent({
|
|
|
24
24
|
// Injected render function
|
|
25
25
|
_sfc_main.render = function(ctx) {
|
|
26
26
|
let { visible, dismiss, icons, $slots, emit, variant, title, closable, icon, Fragment: _ntc_Fragment } = ctx
|
|
27
|
-
return (visible.value) ? h('div', { class: ["n-alert", `is-${variant}`], "data-v-
|
|
27
|
+
return (visible.value) ? h('div', { class: ["n-alert", `is-${variant}`], "data-v-291d86b1": "" }, [
|
|
28
28
|
"\n ",
|
|
29
|
-
h('span', { class: "n-alert-icon", "data-v-
|
|
30
|
-
|
|
29
|
+
h('span', { class: "n-alert-icon", "data-v-291d86b1": "" }, [
|
|
30
|
+
"\n ",
|
|
31
|
+
(icon) ? h('template', { "data-v-291d86b1": "" }, [
|
|
32
|
+
icon
|
|
33
|
+
]) : (variant === 'success') ? h('svg', { viewBox: "0 0 24 24", width: "16", height: "16", fill: "none", stroke: "currentColor", "stroke-width": "2.5", "stroke-linecap": "round", "stroke-linejoin": "round", focusable: "false", "aria-hidden": "true", "data-v-291d86b1": "" }, [
|
|
34
|
+
h('path', { d: "M20 6L9 17l-5-5", "data-v-291d86b1": "" })
|
|
35
|
+
]) : (variant === 'error') ? h('svg', { viewBox: "0 0 24 24", width: "16", height: "16", fill: "none", stroke: "currentColor", "stroke-width": "2.5", "stroke-linecap": "round", "stroke-linejoin": "round", focusable: "false", "aria-hidden": "true", "data-v-291d86b1": "" }, [
|
|
36
|
+
h('circle', { cx: "12", cy: "12", r: "10", "data-v-291d86b1": "" }),
|
|
37
|
+
h('line', { x1: "15", y1: "9", x2: "9", y2: "15", "data-v-291d86b1": "" }),
|
|
38
|
+
h('line', { x1: "9", y1: "9", x2: "15", y2: "15", "data-v-291d86b1": "" })
|
|
39
|
+
]) : (variant === 'warning') ? h('svg', { viewBox: "0 0 24 24", width: "16", height: "16", fill: "none", stroke: "currentColor", "stroke-width": "2.5", "stroke-linecap": "round", "stroke-linejoin": "round", focusable: "false", "aria-hidden": "true", "data-v-291d86b1": "" }, [
|
|
40
|
+
h('path', { d: "M10.29 3.86L1.82 18a2 2 0 001.71 3h16.94a2 2 0 001.71-3L13.71 3.86a2 2 0 00-3.42 0z", "data-v-291d86b1": "" }),
|
|
41
|
+
h('line', { x1: "12", y1: "9", x2: "12", y2: "13", "data-v-291d86b1": "" }),
|
|
42
|
+
h('line', { x1: "12", y1: "17", x2: "12.01", y2: "17", "data-v-291d86b1": "" })
|
|
43
|
+
]) : (true) ? h('svg', { viewBox: "0 0 24 24", width: "16", height: "16", fill: "none", stroke: "currentColor", "stroke-width": "2.5", "stroke-linecap": "round", "stroke-linejoin": "round", focusable: "false", "aria-hidden": "true", "data-v-291d86b1": "" }, [
|
|
44
|
+
h('circle', { cx: "12", cy: "12", r: "10", "data-v-291d86b1": "" }),
|
|
45
|
+
h('line', { x1: "12", y1: "16", x2: "12", y2: "12", "data-v-291d86b1": "" }),
|
|
46
|
+
h('line', { x1: "12", y1: "8", x2: "12.01", y2: "8", "data-v-291d86b1": "" })
|
|
47
|
+
]) : null,
|
|
48
|
+
"\n "
|
|
31
49
|
]),
|
|
32
50
|
"\n ",
|
|
33
|
-
h('div', { class: "n-alert-body", "data-v-
|
|
51
|
+
h('div', { class: "n-alert-body", "data-v-291d86b1": "" }, [
|
|
34
52
|
"\n ",
|
|
35
|
-
(title) ? h('span', { class: "n-alert-title", "data-v-
|
|
53
|
+
(title) ? h('span', { class: "n-alert-title", "data-v-291d86b1": "" }, [
|
|
36
54
|
title
|
|
37
55
|
]) : null,
|
|
38
|
-
h('span', { class: "n-alert-text", "data-v-
|
|
56
|
+
h('span', { class: "n-alert-text", "data-v-291d86b1": "" }, [
|
|
39
57
|
ctx.$slots.default ? ctx.$slots.default() : null
|
|
40
58
|
]),
|
|
41
59
|
"\n "
|
|
42
60
|
]),
|
|
43
61
|
"\n ",
|
|
44
|
-
(closable) ? h('button', { class: "n-alert-close", onClick: dismiss, "data-v-
|
|
45
|
-
"
|
|
62
|
+
(closable) ? h('button', { class: "n-alert-close", onClick: dismiss, "aria-label": "Close", "data-v-291d86b1": "" }, [
|
|
63
|
+
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-291d86b1": "" }, [
|
|
64
|
+
h('path', { d: "M18 6L6 18", "data-v-291d86b1": "" }),
|
|
65
|
+
h('path', { d: "M6 6l12 12", "data-v-291d86b1": "" })
|
|
66
|
+
])
|
|
46
67
|
]) : null
|
|
47
68
|
]) : null
|
|
48
69
|
}
|
|
49
|
-
_sfc_main.__scopeId = 'data-v-
|
|
70
|
+
_sfc_main.__scopeId = 'data-v-291d86b1'
|
|
50
71
|
_sfc_main.__hmrId = 'NAlert_nexa'
|
|
51
72
|
|
|
52
73
|
export default _sfc_main
|
|
53
74
|
|
|
54
|
-
const __style = `.n-alert[data-v-
|
|
75
|
+
const __style = `.n-alert[data-v-291d86b1]{
|
|
55
76
|
display: flex;
|
|
56
77
|
align-items: flex-start;
|
|
57
78
|
gap: var(--n-space-3);
|
|
@@ -64,35 +85,35 @@ const __style = `.n-alert[data-v-22a3a541]{
|
|
|
64
85
|
}
|
|
65
86
|
|
|
66
87
|
@keyframes n-alert-in {
|
|
67
|
-
from[data-v-
|
|
68
|
-
to[data-v-
|
|
88
|
+
from[data-v-291d86b1]{ opacity: 0; transform: translateY(-8px); }
|
|
89
|
+
to[data-v-291d86b1]{ opacity: 1; transform: translateY(0); }
|
|
69
90
|
}
|
|
70
91
|
|
|
71
|
-
.is-info[data-v-
|
|
92
|
+
.is-info[data-v-291d86b1]{
|
|
72
93
|
background: var(--n-color-primary-light);
|
|
73
|
-
border-color:
|
|
94
|
+
border-color: var(--n-color-primary-border);
|
|
74
95
|
color: var(--n-color-primary);
|
|
75
96
|
}
|
|
76
97
|
|
|
77
|
-
.is-success[data-v-
|
|
98
|
+
.is-success[data-v-291d86b1]{
|
|
78
99
|
background: var(--n-color-success-light);
|
|
79
|
-
border-color:
|
|
100
|
+
border-color: var(--n-color-success-border);
|
|
80
101
|
color: var(--n-color-success);
|
|
81
102
|
}
|
|
82
103
|
|
|
83
|
-
.is-warning[data-v-
|
|
104
|
+
.is-warning[data-v-291d86b1]{
|
|
84
105
|
background: var(--n-color-warning-light);
|
|
85
|
-
border-color:
|
|
106
|
+
border-color: var(--n-color-warning-border);
|
|
86
107
|
color: var(--n-color-warning);
|
|
87
108
|
}
|
|
88
109
|
|
|
89
|
-
.is-error[data-v-
|
|
110
|
+
.is-error[data-v-291d86b1]{
|
|
90
111
|
background: var(--n-color-danger-light);
|
|
91
|
-
border-color:
|
|
112
|
+
border-color: var(--n-color-danger-border);
|
|
92
113
|
color: var(--n-color-danger);
|
|
93
114
|
}
|
|
94
115
|
|
|
95
|
-
.n-alert-icon[data-v-
|
|
116
|
+
.n-alert-icon[data-v-291d86b1]{
|
|
96
117
|
font-size: var(--n-text-base);
|
|
97
118
|
font-weight: var(--n-weight-bold);
|
|
98
119
|
flex-shrink: 0;
|
|
@@ -107,16 +128,16 @@ to[data-v-22a3a541]{ opacity: 1; transform: translateY(0); }
|
|
|
107
128
|
color: var(--n-color-text);
|
|
108
129
|
}
|
|
109
130
|
|
|
110
|
-
.n-alert-title[data-v-
|
|
131
|
+
.n-alert-title[data-v-291d86b1]{
|
|
111
132
|
font-weight: var(--n-weight-semibold);
|
|
112
133
|
font-size: var(--n-text-sm);
|
|
113
134
|
}
|
|
114
135
|
|
|
115
|
-
.n-alert-text[data-v-
|
|
136
|
+
.n-alert-text[data-v-291d86b1]{
|
|
116
137
|
color: var(--n-color-text-secondary);
|
|
117
138
|
}
|
|
118
139
|
|
|
119
|
-
.n-alert-close[data-v-
|
|
140
|
+
.n-alert-close[data-v-291d86b1]{
|
|
120
141
|
background: transparent;
|
|
121
142
|
border: none;
|
|
122
143
|
color: var(--n-color-text-muted);
|
|
@@ -128,7 +149,7 @@ to[data-v-22a3a541]{ opacity: 1; transform: translateY(0); }
|
|
|
128
149
|
transition: color var(--n-transition-fast);
|
|
129
150
|
}
|
|
130
151
|
|
|
131
|
-
.n-alert-close[data-v-
|
|
152
|
+
.n-alert-close[data-v-291d86b1]:hover{
|
|
132
153
|
color: var(--n-color-text);
|
|
133
154
|
}`
|
|
134
|
-
injectStyle('data-v-
|
|
155
|
+
injectStyle('data-v-291d86b1', __style)
|
|
@@ -22,12 +22,18 @@ const icons = { success: '✓', error: '✕', warning: '⚡', info: 'ℹ' }
|
|
|
22
22
|
|
|
23
23
|
<template>
|
|
24
24
|
<div v-if="visible.value" class="n-alert" :class="`is-${variant}`">
|
|
25
|
-
<span class="n-alert-icon">
|
|
25
|
+
<span class="n-alert-icon">
|
|
26
|
+
<template v-if="icon">{{ icon }}</template>
|
|
27
|
+
<svg v-else-if="variant === 'success'" viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" focusable="false" aria-hidden="true"><path d="M20 6L9 17l-5-5"/></svg>
|
|
28
|
+
<svg v-else-if="variant === 'error'" viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" focusable="false" aria-hidden="true"><circle cx="12" cy="12" r="10"/><line x1="15" y1="9" x2="9" y2="15"/><line x1="9" y1="9" x2="15" y2="15"/></svg>
|
|
29
|
+
<svg v-else-if="variant === 'warning'" viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" focusable="false" aria-hidden="true"><path d="M10.29 3.86L1.82 18a2 2 0 001.71 3h16.94a2 2 0 001.71-3L13.71 3.86a2 2 0 00-3.42 0z"/><line x1="12" y1="9" x2="12" y2="13"/><line x1="12" y1="17" x2="12.01" y2="17"/></svg>
|
|
30
|
+
<svg v-else viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" focusable="false" aria-hidden="true"><circle cx="12" cy="12" r="10"/><line x1="12" y1="16" x2="12" y2="12"/><line x1="12" y1="8" x2="12.01" y2="8"/></svg>
|
|
31
|
+
</span>
|
|
26
32
|
<div class="n-alert-body">
|
|
27
33
|
<span v-if="title" class="n-alert-title">{{ title }}</span>
|
|
28
34
|
<span class="n-alert-text"><slot /></span>
|
|
29
35
|
</div>
|
|
30
|
-
<button v-if="closable" class="n-alert-close" @click="dismiss"
|
|
36
|
+
<button v-if="closable" class="n-alert-close" @click="dismiss" aria-label="Close"><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="M18 6L6 18"/><path d="M6 6l12 12"/></svg></button>
|
|
31
37
|
</div>
|
|
32
38
|
</template>
|
|
33
39
|
|
|
@@ -51,25 +57,25 @@ const icons = { success: '✓', error: '✕', warning: '⚡', info: 'ℹ' }
|
|
|
51
57
|
|
|
52
58
|
.is-info {
|
|
53
59
|
background: var(--n-color-primary-light);
|
|
54
|
-
border-color:
|
|
60
|
+
border-color: var(--n-color-primary-border);
|
|
55
61
|
color: var(--n-color-primary);
|
|
56
62
|
}
|
|
57
63
|
|
|
58
64
|
.is-success {
|
|
59
65
|
background: var(--n-color-success-light);
|
|
60
|
-
border-color:
|
|
66
|
+
border-color: var(--n-color-success-border);
|
|
61
67
|
color: var(--n-color-success);
|
|
62
68
|
}
|
|
63
69
|
|
|
64
70
|
.is-warning {
|
|
65
71
|
background: var(--n-color-warning-light);
|
|
66
|
-
border-color:
|
|
72
|
+
border-color: var(--n-color-warning-border);
|
|
67
73
|
color: var(--n-color-warning);
|
|
68
74
|
}
|
|
69
75
|
|
|
70
76
|
.is-error {
|
|
71
77
|
background: var(--n-color-danger-light);
|
|
72
|
-
border-color:
|
|
78
|
+
border-color: var(--n-color-danger-border);
|
|
73
79
|
color: var(--n-color-danger);
|
|
74
80
|
}
|
|
75
81
|
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { signal, computed, effect, onBeforeUnmount, h, hText,
|
|
1
|
+
import { signal, computed, effect, onBeforeUnmount, h, hText, 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-
|
|
5
|
+
__scopeId: 'data-v-24d51847',
|
|
6
6
|
__hmrId: 'NAutocomplete_nexa',
|
|
7
7
|
props: { modelValue: { type: String, default: '' }, options: { type: Array, default: () => [] }, placeholder: { type: String, default: '' }, label: { type: String, default: '' }, disabled: { type: Boolean, default: false }, readonly: { type: Boolean, default: false }, clearable: { type: Boolean, default: false }, minLength: { type: Number, default: 1 }, delay: { type: Number, default: 200 }, loading: { type: Boolean, default: false }, dropdown: { type: Boolean, default: false }, emptyMessage: { type: String, default: 'No results' }, placement: { type: String, default: 'auto' } },
|
|
8
8
|
emits: ['update:modelValue', 'select', 'complete', 'clear'],
|
|
@@ -40,42 +40,47 @@ const _sfc_main = defineComponent({
|
|
|
40
40
|
// Injected render function
|
|
41
41
|
_sfc_main.render = function(ctx) {
|
|
42
42
|
let { instanceId, listboxId, inputId, isOpen, query, focusedIndex, rootEl, popupStyle, resolvedPlacement, stopTracking, completeTimer, normalizeOption, normalizedOptions, filteredOptions, activeId, close, open, requestComplete, onInput, onFocus, onKeydown, selectOption, clearValue, openAll, onBeforeUnmount, trackFloatingOverlay, $slots, emit, modelValue, options, placeholder, label, disabled, readonly, clearable, minLength, delay, loading, dropdown, emptyMessage, placement, Fragment: _ntc_Fragment, Teleport: _ntc_Teleport } = ctx
|
|
43
|
-
return h('div', { class: "n-ac", "data-autocomplete-root": instanceId, "data-v-
|
|
43
|
+
return h('div', { class: "n-ac", "data-autocomplete-root": instanceId, "data-v-24d51847": "" }, [
|
|
44
44
|
"\n ",
|
|
45
|
-
(label) ? h('label', { class: "n-ac-label", for: inputId, "data-v-
|
|
45
|
+
(label) ? h('label', { class: "n-ac-label", for: inputId, "data-v-24d51847": "" }, [
|
|
46
46
|
label
|
|
47
47
|
]) : null,
|
|
48
|
-
h('div', { class: ["n-ac-input-wrap", { 'is-disabled': disabled }], "data-v-
|
|
48
|
+
h('div', { class: ["n-ac-input-wrap", { 'is-disabled': disabled }], "data-v-24d51847": "" }, [
|
|
49
49
|
"\n ",
|
|
50
|
-
h('input', { class: "n-ac-input", id: inputId, value: modelValue, placeholder: placeholder, disabled: disabled, readonly: readonly, role: "combobox", "aria-autocomplete": "list", "aria-expanded": isOpen.value, "aria-controls": listboxId, "aria-activedescendant": activeId.value || undefined, onInput: onInput, onFocus: onFocus, onKeydown: onKeydown, "data-v-
|
|
50
|
+
h('input', { class: "n-ac-input", id: inputId, value: modelValue, placeholder: placeholder, disabled: disabled, readonly: readonly, role: "combobox", "aria-autocomplete": "list", "aria-expanded": isOpen.value, "aria-controls": listboxId, "aria-activedescendant": activeId.value || undefined, onInput: onInput, onFocus: onFocus, onKeydown: onKeydown, "data-v-24d51847": "" }),
|
|
51
51
|
"\n ",
|
|
52
|
-
h('div', { class: "n-ac-actions", "data-v-
|
|
52
|
+
h('div', { class: "n-ac-actions", "data-v-24d51847": "" }, [
|
|
53
53
|
"\n ",
|
|
54
|
-
(clearable && modelValue) ? h('button', { class: "n-ac-action", type: "button", disabled: disabled || readonly, "aria-label": "
|
|
55
|
-
"
|
|
54
|
+
(clearable && modelValue) ? h('button', { class: "n-ac-action", type: "button", disabled: disabled || readonly, "aria-label": "Clear", onClick: clearValue, "data-v-24d51847": "" }, [
|
|
55
|
+
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-24d51847": "" }, [
|
|
56
|
+
h('path', { d: "M18 6L6 18", "data-v-24d51847": "" }),
|
|
57
|
+
h('path', { d: "M6 6l12 12", "data-v-24d51847": "" })
|
|
58
|
+
])
|
|
56
59
|
]) : null,
|
|
57
|
-
(dropdown) ? h('button', { class: "n-ac-action", type: "button", disabled: disabled || readonly, "aria-label": "
|
|
58
|
-
"
|
|
60
|
+
(dropdown) ? h('button', { class: "n-ac-action", type: "button", disabled: disabled || readonly, "aria-label": "Open", onClick: openAll, "data-v-24d51847": "" }, [
|
|
61
|
+
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-24d51847": "" }, [
|
|
62
|
+
h('path', { d: "M6 9l6 6 6-6", "data-v-24d51847": "" })
|
|
63
|
+
])
|
|
59
64
|
]) : null
|
|
60
65
|
]),
|
|
61
66
|
"\n "
|
|
62
67
|
]),
|
|
63
68
|
"\n ",
|
|
64
|
-
h(_ntc_Teleport, { to: "body", "data-v-
|
|
69
|
+
h(_ntc_Teleport, { to: "body", "data-v-24d51847": "" }, [
|
|
65
70
|
"\n ",
|
|
66
|
-
(isOpen.value) ? h('div', { class: ["n-ac-popup", { 'is-top': resolvedPlacement.value === 'top' }], "data-autocomplete-popup": instanceId, style: popupStyle.value, "data-v-
|
|
71
|
+
(isOpen.value) ? h('div', { class: ["n-ac-popup", { 'is-top': resolvedPlacement.value === 'top' }], "data-autocomplete-popup": instanceId, style: popupStyle.value, "data-v-24d51847": "" }, [
|
|
67
72
|
"\n ",
|
|
68
|
-
(loading) ? h('div', { class: "n-ac-loading", "data-v-
|
|
73
|
+
(loading) ? h('div', { class: "n-ac-loading", "data-v-24d51847": "" }, [
|
|
69
74
|
"Loading..."
|
|
70
|
-
]) : (true) ? h('div', { class: "n-ac-list", role: "listbox", id: listboxId, "data-v-
|
|
75
|
+
]) : (true) ? h('div', { class: "n-ac-list", role: "listbox", id: listboxId, "data-v-24d51847": "" }, [
|
|
71
76
|
"\n ",
|
|
72
77
|
(filteredOptions.value).map((opt, i) =>
|
|
73
|
-
h('button', { class: ["n-ac-option", { 'is-focused': i === focusedIndex.value }], key: opt.value, type: "button", role: "option", id: instanceId + '-opt-' + i, "aria-selected": (i === focusedIndex.value).toString(), onMouseenter: ($event) => { focusedIndex.value = i }, onClick: ($event) => { selectOption(opt) }, "data-v-
|
|
78
|
+
h('button', { class: ["n-ac-option", { 'is-focused': i === focusedIndex.value }], key: opt.value, type: "button", role: "option", id: instanceId + '-opt-' + i, "aria-selected": (i === focusedIndex.value).toString(), onMouseenter: ($event) => { focusedIndex.value = i }, onClick: ($event) => { selectOption(opt) }, "data-v-24d51847": "" }, [
|
|
74
79
|
opt.label
|
|
75
80
|
])
|
|
76
81
|
),
|
|
77
82
|
"\n ",
|
|
78
|
-
(filteredOptions.value.length === 0) ? h('div', { class: "n-ac-empty", "data-v-
|
|
83
|
+
(filteredOptions.value.length === 0) ? h('div', { class: "n-ac-empty", "data-v-24d51847": "" }, [
|
|
79
84
|
emptyMessage
|
|
80
85
|
]) : null
|
|
81
86
|
]) : null,
|
|
@@ -85,10 +90,10 @@ _sfc_main.render = function(ctx) {
|
|
|
85
90
|
"\n "
|
|
86
91
|
])
|
|
87
92
|
}
|
|
88
|
-
_sfc_main.__scopeId = 'data-v-
|
|
93
|
+
_sfc_main.__scopeId = 'data-v-24d51847'
|
|
89
94
|
_sfc_main.__hmrId = 'NAutocomplete_nexa'
|
|
90
95
|
|
|
91
96
|
export default _sfc_main
|
|
92
97
|
|
|
93
|
-
const __style = `.n-ac[data-v-
|
|
94
|
-
injectStyle('data-v-
|
|
98
|
+
const __style = `.n-ac[data-v-24d51847]{display:flex;flex-direction:column;gap:var(--n-space-2);width:100%;font-family:var(--n-font-sans)}.n-ac-label{display:block;font-size:var(--n-text-sm);font-weight:var(--n-weight-medium);color:var(--n-color-text-secondary);margin-bottom:var(--n-space-2)}.n-ac-input-wrap{position:relative;display:flex;align-items:center;background:var(--n-color-surface);border:1px solid var(--n-color-border);border-radius:var(--n-radius-md);transition:all var(--n-transition-fast)}.n-ac-input-wrap:focus-within{border-color:var(--n-color-primary);box-shadow:0 0 0 3px var(--n-color-primary-light)}.n-ac-input{width:100%;background:transparent;border:none;outline:none;padding:0.75rem 2.75rem 0.75rem 1rem;color:var(--n-color-text);font-size:var(--n-text-base);font-family:inherit}.n-ac-input::placeholder{color:var(--n-color-text-muted)}.n-ac-actions{position:absolute;right:0.5rem;display:flex;align-items:center;gap:0.15rem}.n-ac-action{background:transparent;border:none;color:var(--n-color-text-muted);cursor:pointer;padding:0.25rem;border-radius:var(--n-radius-sm);transition:all var(--n-transition-fast);line-height:1;display:flex;align-items:center}.n-ac-action:hover:not(:disabled){color:var(--n-color-text);background:var(--n-color-glass)}.n-ac-action:disabled{opacity:0.5;cursor:not-allowed}.n-ac-input-wrap.is-disabled{opacity:0.5;cursor:not-allowed;background:var(--n-color-surface-alt)}.n-ac-popup{background:var(--n-color-surface);border:1px solid var(--n-color-border);border-radius:var(--n-radius-md);box-shadow:var(--n-shadow-lg);overflow:hidden;animation:n-ac-in .2s ease-out}.n-ac-popup.is-top{animation:n-ac-in-top .2s ease-out}@keyframes n-ac-in{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@keyframes n-ac-in-top{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.n-ac-loading{padding:var(--n-space-3) var(--n-space-4);color:var(--n-color-text-muted);font-size:var(--n-text-sm)}.n-ac-list{max-height:260px;overflow:auto;display:flex;flex-direction:column}.n-ac-option{text-align:left;padding:0.7rem 1rem;color:var(--n-color-text-secondary);background:transparent;border:none;cursor:pointer;transition:all var(--n-transition-fast)}.n-ac-option:hover,.n-ac-option.is-focused{background:var(--n-color-glass);color:var(--n-color-text)}.n-ac-empty{padding:var(--n-space-4);color:var(--n-color-text-muted);text-align:center;font-size:var(--n-text-sm)}`
|
|
99
|
+
injectStyle('data-v-24d51847', __style)
|
|
@@ -37,8 +37,8 @@ onBeforeUnmount(() => { clearTimeout(completeTimer); close() })
|
|
|
37
37
|
<div class="n-ac-input-wrap" :class="{ 'is-disabled': disabled }">
|
|
38
38
|
<input class="n-ac-input" :id="inputId" :value="modelValue" :placeholder="placeholder" :disabled="disabled" :readonly="readonly" role="combobox" aria-autocomplete="list" :aria-expanded="isOpen.value" :aria-controls="listboxId" :aria-activedescendant="activeId.value || undefined" @input="onInput" @focus="onFocus" @keydown="onKeydown" />
|
|
39
39
|
<div class="n-ac-actions">
|
|
40
|
-
<button v-if="clearable && modelValue" type="button" class="n-ac-action" :disabled="disabled || readonly" aria-label="
|
|
41
|
-
<button v-if="dropdown" type="button" class="n-ac-action" :disabled="disabled || readonly" aria-label="
|
|
40
|
+
<button v-if="clearable && modelValue" type="button" class="n-ac-action" :disabled="disabled || readonly" aria-label="Clear" @click="clearValue"><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>
|
|
41
|
+
<button v-if="dropdown" type="button" class="n-ac-action" :disabled="disabled || readonly" aria-label="Open" @click="openAll"><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="M6 9l6 6 6-6"/></svg></button>
|
|
42
42
|
</div>
|
|
43
43
|
</div>
|
|
44
44
|
<Teleport to="body">
|
|
@@ -54,5 +54,5 @@ onBeforeUnmount(() => { clearTimeout(completeTimer); close() })
|
|
|
54
54
|
</template>
|
|
55
55
|
|
|
56
56
|
<style scoped>
|
|
57
|
-
.n-ac{display:flex;flex-direction:column;gap:var(--n-space-2);width:100%;font-family:var(--n-font-sans)}.n-ac-label{display:block;font-size:var(--n-text-sm);font-weight:var(--n-weight-medium);color:var(--n-color-text-secondary);margin-bottom:var(--n-space-2)}.n-ac-input-wrap{position:relative;display:flex;align-items:center;background:var(--n-color-surface);border:1px solid var(--n-color-border);border-radius:var(--n-radius-md);transition:all var(--n-transition-fast)}.n-ac-input-wrap:focus-within{border-color:var(--n-color-primary);box-shadow:0 0 0 3px var(--n-color-primary-light)}.n-ac-input{width:100%;background:transparent;border:none;outline:none;padding:0.75rem 2.75rem 0.75rem 1rem;color:var(--n-color-text);font-size:var(--n-text-base);font-family:inherit}.n-ac-input::placeholder{color:var(--n-color-text-muted)}.n-ac-actions{position:absolute;right:0.5rem;display:flex;align-items:center;gap:0.15rem}.n-ac-action{background:transparent;border:none;color:var(--n-color-text-muted);cursor:pointer;padding:0.25rem;border-radius:var(--n-radius-sm);transition:all var(--n-transition-fast);line-height:1;display:flex;align-items:center}.n-ac-action:hover:not(:disabled){color:var(--n-color-text);background:var(--n-color-glass)}.n-ac-action:disabled{opacity:0.5;cursor:not-allowed}.n-ac-input-wrap.is-disabled{opacity:0.5;cursor:not-allowed;background:var(--n-color-surface-alt)}.n-ac-popup{background:var(--n-color-surface);border:1px solid var(--n-color-border);border-radius:var(--n-radius-md);box-shadow:var(--n-shadow-lg);overflow:hidden;animation:n-ac-in .2s
|
|
57
|
+
.n-ac{display:flex;flex-direction:column;gap:var(--n-space-2);width:100%;font-family:var(--n-font-sans)}.n-ac-label{display:block;font-size:var(--n-text-sm);font-weight:var(--n-weight-medium);color:var(--n-color-text-secondary);margin-bottom:var(--n-space-2)}.n-ac-input-wrap{position:relative;display:flex;align-items:center;background:var(--n-color-surface);border:1px solid var(--n-color-border);border-radius:var(--n-radius-md);transition:all var(--n-transition-fast)}.n-ac-input-wrap:focus-within{border-color:var(--n-color-primary);box-shadow:0 0 0 3px var(--n-color-primary-light)}.n-ac-input{width:100%;background:transparent;border:none;outline:none;padding:0.75rem 2.75rem 0.75rem 1rem;color:var(--n-color-text);font-size:var(--n-text-base);font-family:inherit}.n-ac-input::placeholder{color:var(--n-color-text-muted)}.n-ac-actions{position:absolute;right:0.5rem;display:flex;align-items:center;gap:0.15rem}.n-ac-action{background:transparent;border:none;color:var(--n-color-text-muted);cursor:pointer;padding:0.25rem;border-radius:var(--n-radius-sm);transition:all var(--n-transition-fast);line-height:1;display:flex;align-items:center}.n-ac-action:hover:not(:disabled){color:var(--n-color-text);background:var(--n-color-glass)}.n-ac-action:disabled{opacity:0.5;cursor:not-allowed}.n-ac-input-wrap.is-disabled{opacity:0.5;cursor:not-allowed;background:var(--n-color-surface-alt)}.n-ac-popup{background:var(--n-color-surface);border:1px solid var(--n-color-border);border-radius:var(--n-radius-md);box-shadow:var(--n-shadow-lg);overflow:hidden;animation:n-ac-in .2s ease-out}.n-ac-popup.is-top{animation:n-ac-in-top .2s ease-out}@keyframes n-ac-in{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@keyframes n-ac-in-top{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.n-ac-loading{padding:var(--n-space-3) var(--n-space-4);color:var(--n-color-text-muted);font-size:var(--n-text-sm)}.n-ac-list{max-height:260px;overflow:auto;display:flex;flex-direction:column}.n-ac-option{text-align:left;padding:0.7rem 1rem;color:var(--n-color-text-secondary);background:transparent;border:none;cursor:pointer;transition:all var(--n-transition-fast)}.n-ac-option:hover,.n-ac-option.is-focused{background:var(--n-color-glass);color:var(--n-color-text)}.n-ac-empty{padding:var(--n-space-4);color:var(--n-color-text-muted);text-align:center;font-size:var(--n-text-sm)}
|
|
58
58
|
</style>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { computed, h, hText, effect,
|
|
1
|
+
import { computed, h, hText, effect, defineComponent, registerComponent, reloadComponent, injectStyle } from 'nexa-framework'
|
|
2
2
|
|
|
3
3
|
const _sfc_main = defineComponent({
|
|
4
4
|
__scopeId: 'data-v-147134',
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { h, hText, effect,
|
|
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-ff3cf3e',
|
|
@@ -2,7 +2,7 @@ import { signal, computed, effect, onMounted, onUnmounted, h, hText, defineCompo
|
|
|
2
2
|
import { useGestures } from 'nexa-mobile'
|
|
3
3
|
|
|
4
4
|
const _sfc_main = defineComponent({
|
|
5
|
-
__scopeId: 'data-v-
|
|
5
|
+
__scopeId: 'data-v-3df910b7',
|
|
6
6
|
__hmrId: 'NBottomSheet_nexa',
|
|
7
7
|
props: {
|
|
8
8
|
show: { type: Boolean, default: false },
|
|
@@ -61,20 +61,20 @@ const _sfc_main = defineComponent({
|
|
|
61
61
|
// Injected render function
|
|
62
62
|
_sfc_main.render = function(ctx) {
|
|
63
63
|
let { yOffset, isDragging, currentSnap, gestures, sortedPoints, translateY, overlayOpacity, useGestures, $slots, emit, show, snapPoints, Fragment: _ntc_Fragment, Teleport: _ntc_Teleport } = ctx
|
|
64
|
-
return h(_ntc_Teleport, { to: "body", "data-v-
|
|
64
|
+
return h(_ntc_Teleport, { to: "body", "data-v-3df910b7": "" }, [
|
|
65
65
|
"\n ",
|
|
66
|
-
h('div', { class: ["n-bottom-sheet-root", { 'is-active': show || isDragging.value }], "data-v-
|
|
66
|
+
h('div', { class: ["n-bottom-sheet-root", { 'is-active': show || isDragging.value }], "data-v-3df910b7": "" }, [
|
|
67
67
|
"\n ",
|
|
68
|
-
h('div', { class: "n-bottom-sheet-overlay", style: { opacity: overlayOpacity.value }, onClick: ($event) => { emit('close') }, "data-v-
|
|
68
|
+
h('div', { class: "n-bottom-sheet-overlay", style: { opacity: overlayOpacity.value }, onClick: ($event) => { emit('close') }, "data-v-3df910b7": "" }),
|
|
69
69
|
"\n ",
|
|
70
70
|
h('div', { class: "n-bottom-sheet-container", id: "n-bottom-sheet-content", style: {
|
|
71
71
|
transform: `translateY(${translateY.value})`,
|
|
72
|
-
transition: isDragging.value ? 'none' : 'transform
|
|
73
|
-
}, "data-v-
|
|
72
|
+
transition: isDragging.value ? 'none' : 'transform var(--n-transition-slow)'
|
|
73
|
+
}, "data-v-3df910b7": "" }, [
|
|
74
74
|
"\n ",
|
|
75
|
-
h('div', { class: "n-bottom-sheet-handle", "data-v-
|
|
75
|
+
h('div', { class: "n-bottom-sheet-handle", "data-v-3df910b7": "" }),
|
|
76
76
|
"\n ",
|
|
77
|
-
h('div', { class: "n-bottom-sheet-inner", "data-v-
|
|
77
|
+
h('div', { class: "n-bottom-sheet-inner", "data-v-3df910b7": "" }, [
|
|
78
78
|
"\n ",
|
|
79
79
|
ctx.$slots.default ? ctx.$slots.default() : null,
|
|
80
80
|
"\n "
|
|
@@ -86,12 +86,12 @@ _sfc_main.render = function(ctx) {
|
|
|
86
86
|
"\n "
|
|
87
87
|
])
|
|
88
88
|
}
|
|
89
|
-
_sfc_main.__scopeId = 'data-v-
|
|
89
|
+
_sfc_main.__scopeId = 'data-v-3df910b7'
|
|
90
90
|
_sfc_main.__hmrId = 'NBottomSheet_nexa'
|
|
91
91
|
|
|
92
92
|
export default _sfc_main
|
|
93
93
|
|
|
94
|
-
const __style = `.n-bottom-sheet-root[data-v-
|
|
94
|
+
const __style = `.n-bottom-sheet-root[data-v-3df910b7]{
|
|
95
95
|
position: fixed;
|
|
96
96
|
top: 0;
|
|
97
97
|
left: 0;
|
|
@@ -103,11 +103,11 @@ const __style = `.n-bottom-sheet-root[data-v-55f61938]{
|
|
|
103
103
|
align-items: flex-end;
|
|
104
104
|
}
|
|
105
105
|
|
|
106
|
-
.n-bottom-sheet-root.is-active[data-v-
|
|
106
|
+
.n-bottom-sheet-root.is-active[data-v-3df910b7]{
|
|
107
107
|
pointer-events: auto;
|
|
108
108
|
}
|
|
109
109
|
|
|
110
|
-
.n-bottom-sheet-overlay[data-v-
|
|
110
|
+
.n-bottom-sheet-overlay[data-v-3df910b7]{
|
|
111
111
|
position: absolute;
|
|
112
112
|
top: 0;
|
|
113
113
|
left: 0;
|
|
@@ -118,21 +118,21 @@ const __style = `.n-bottom-sheet-root[data-v-55f61938]{
|
|
|
118
118
|
transition: opacity 0.3s ease;
|
|
119
119
|
}
|
|
120
120
|
|
|
121
|
-
.n-bottom-sheet-container[data-v-
|
|
121
|
+
.n-bottom-sheet-container[data-v-3df910b7]{
|
|
122
122
|
position: relative;
|
|
123
123
|
width: 100%;
|
|
124
124
|
max-height: 90vh;
|
|
125
125
|
background: var(--n-color-surface);
|
|
126
126
|
border-top: 1px solid var(--n-color-border);
|
|
127
127
|
border-radius: var(--n-radius-2xl) var(--n-radius-2xl) 0 0;
|
|
128
|
-
box-shadow:
|
|
128
|
+
box-shadow: var(--n-shadow-top-lg);
|
|
129
129
|
padding-bottom: env(safe-area-inset-bottom, 20px);
|
|
130
130
|
touch-action: none;
|
|
131
131
|
display: flex;
|
|
132
132
|
flex-direction: column;
|
|
133
133
|
}
|
|
134
134
|
|
|
135
|
-
.n-bottom-sheet-handle[data-v-
|
|
135
|
+
.n-bottom-sheet-handle[data-v-3df910b7]{
|
|
136
136
|
width: 40px;
|
|
137
137
|
height: 4px;
|
|
138
138
|
background: var(--n-color-surface-hover);
|
|
@@ -141,9 +141,9 @@ const __style = `.n-bottom-sheet-root[data-v-55f61938]{
|
|
|
141
141
|
flex-shrink: 0;
|
|
142
142
|
}
|
|
143
143
|
|
|
144
|
-
.n-bottom-sheet-inner[data-v-
|
|
144
|
+
.n-bottom-sheet-inner[data-v-3df910b7]{
|
|
145
145
|
padding: var(--n-space-4) var(--n-space-8) var(--n-space-8);
|
|
146
146
|
overflow-y: auto;
|
|
147
147
|
flex: 1;
|
|
148
148
|
}`
|
|
149
|
-
injectStyle('data-v-
|
|
149
|
+
injectStyle('data-v-3df910b7', __style)
|
|
@@ -74,7 +74,7 @@ const overlayOpacity = computed(() => {
|
|
|
74
74
|
class="n-bottom-sheet-container"
|
|
75
75
|
:style="{
|
|
76
76
|
transform: `translateY(${translateY.value})`,
|
|
77
|
-
transition: isDragging.value ? 'none' : 'transform
|
|
77
|
+
transition: isDragging.value ? 'none' : 'transform var(--n-transition-slow)'
|
|
78
78
|
}"
|
|
79
79
|
>
|
|
80
80
|
<div class="n-bottom-sheet-handle"></div>
|
|
@@ -121,7 +121,7 @@ const overlayOpacity = computed(() => {
|
|
|
121
121
|
background: var(--n-color-surface);
|
|
122
122
|
border-top: 1px solid var(--n-color-border);
|
|
123
123
|
border-radius: var(--n-radius-2xl) var(--n-radius-2xl) 0 0;
|
|
124
|
-
box-shadow:
|
|
124
|
+
box-shadow: var(--n-shadow-top-lg);
|
|
125
125
|
padding-bottom: env(safe-area-inset-bottom, 20px);
|
|
126
126
|
touch-action: none;
|
|
127
127
|
display: flex;
|