pxd 0.0.55 → 0.0.60
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/README.md +18 -4
- package/dist/components/_internal/fragment-container.vue +3 -2
- package/dist/components/active-graph/index.d.vue.ts +2 -3
- package/dist/components/active-graph/index.vue +23 -16
- package/dist/components/active-graph/types.d.ts +4 -3
- package/dist/components/avatar/index.vue +19 -10
- package/dist/components/avatar/types.d.ts +0 -12
- package/dist/components/avatar-group/index.d.vue.ts +2 -2
- package/dist/components/avatar-group/index.vue +4 -3
- package/dist/components/avatar-group/types.d.ts +11 -0
- package/dist/components/badge/index.d.vue.ts +1 -1
- package/dist/components/badge/index.vue +47 -3
- package/dist/components/badge/types.d.ts +24 -1
- package/dist/components/book/index.vue +3 -2
- package/dist/components/browser/index.vue +6 -2
- package/dist/components/button/index.d.vue.ts +1 -1
- package/dist/components/button/index.vue +60 -12
- package/dist/components/carousel/index.d.vue.ts +24 -2
- package/dist/components/carousel/index.vue +341 -28
- package/dist/components/carousel/types.d.ts +2 -2
- package/dist/components/carousel-item/index.d.vue.ts +13 -0
- package/dist/components/carousel-item/index.vue +49 -0
- package/dist/components/checkbox/index.d.vue.ts +1 -5
- package/dist/components/checkbox/index.vue +66 -31
- package/dist/components/checkbox/types.d.ts +2 -14
- package/dist/components/checkbox-group/index.d.vue.ts +2 -7
- package/dist/components/checkbox-group/index.vue +11 -29
- package/dist/components/checkbox-group/types.d.ts +12 -0
- package/dist/components/chip/index.d.vue.ts +1 -1
- package/dist/components/chip/index.vue +31 -2
- package/dist/components/choicebox/index.d.vue.ts +11 -5
- package/dist/components/choicebox/index.vue +36 -54
- package/dist/components/choicebox/types.d.ts +11 -18
- package/dist/components/choicebox-item/index.d.vue.ts +16 -0
- package/dist/components/choicebox-item/index.vue +67 -0
- package/dist/components/choicebox-item/types.d.ts +12 -0
- package/dist/components/collapse/index.d.vue.ts +5 -4
- package/dist/components/collapse/index.vue +47 -30
- package/dist/components/collapse/types.d.ts +2 -5
- package/dist/components/collapse-group/index.d.vue.ts +2 -4
- package/dist/components/collapse-group/index.vue +8 -20
- package/dist/components/collapse-group/types.d.ts +6 -0
- package/dist/components/command-menu/index.vue +6 -7
- package/dist/components/command-menu/types.d.ts +0 -5
- package/dist/components/command-menu-group/index.d.vue.ts +1 -1
- package/dist/components/command-menu-group/index.vue +3 -2
- package/dist/components/command-menu-group/types.d.ts +5 -0
- package/dist/components/config-provider/index.d.vue.ts +2 -2
- package/dist/components/config-provider/index.vue +6 -4
- package/dist/components/countdown/index.vue +3 -2
- package/dist/components/countdown/types.d.ts +2 -2
- package/dist/components/dash-line/index.vue +3 -1
- package/dist/components/description/index.d.vue.ts +1 -1
- package/dist/components/description/index.vue +8 -7
- package/dist/components/description/types.d.ts +1 -1
- package/dist/components/drawer/index.d.vue.ts +3 -2
- package/dist/components/drawer/index.vue +20 -15
- package/dist/components/drawer/types.d.ts +3 -3
- package/dist/components/ellipsis-text/index.d.vue.ts +14 -0
- package/dist/components/ellipsis-text/index.vue +242 -0
- package/dist/components/ellipsis-text/types.d.ts +14 -0
- package/dist/components/empty-state/index.vue +6 -2
- package/dist/components/error/index.d.vue.ts +1 -3
- package/dist/components/error/index.vue +21 -6
- package/dist/components/error/types.d.ts +7 -1
- package/dist/components/fader/index.vue +30 -11
- package/dist/components/fader/types.d.ts +2 -2
- package/dist/components/gauge/index.vue +7 -2
- package/dist/components/grid/index.vue +9 -4
- package/dist/components/grid/types.d.ts +0 -5
- package/dist/components/grid-item/index.d.vue.ts +1 -1
- package/dist/components/grid-item/index.vue +16 -8
- package/dist/components/grid-item/types.d.ts +6 -0
- package/dist/components/hold-button/index.d.vue.ts +2 -2
- package/dist/components/hold-button/index.vue +7 -4
- package/dist/components/index.d.ts +7 -3
- package/dist/components/index.js +7 -3
- package/dist/components/input/index.d.vue.ts +8 -8
- package/dist/components/input/index.vue +54 -21
- package/dist/components/input/types.d.ts +7 -10
- package/dist/components/intersection-observer/index.d.vue.ts +0 -1
- package/dist/components/intersection-observer/index.vue +12 -3
- package/dist/components/kbd/index.vue +1 -1
- package/dist/components/link-button/index.d.vue.ts +1 -1
- package/dist/components/link-button/index.vue +5 -4
- package/dist/components/link-button/types.d.ts +1 -1
- package/dist/components/list/index.d.vue.ts +8 -5
- package/dist/components/list/index.vue +50 -54
- package/dist/components/list/types.d.ts +3 -20
- package/dist/components/list-item/index.d.vue.ts +4 -3
- package/dist/components/list-item/index.vue +44 -18
- package/dist/components/list-item/types.d.ts +15 -0
- package/dist/components/loading-bar/index.vue +33 -2
- package/dist/components/loading-bar/types.d.ts +1 -1
- package/dist/components/loading-dots/index.vue +3 -2
- package/dist/components/menu/index.d.vue.ts +5 -2
- package/dist/components/menu/index.vue +4 -1
- package/dist/components/menu/types.d.ts +5 -0
- package/dist/components/message/index.d.vue.ts +11 -8
- package/dist/components/message/index.vue +4 -12
- package/dist/components/message/types.d.ts +1 -12
- package/dist/components/message-item/index.d.vue.ts +1 -3
- package/dist/components/message-item/index.vue +13 -7
- package/dist/components/message-item/types.d.ts +11 -0
- package/dist/components/modal/index.d.vue.ts +3 -2
- package/dist/components/modal/index.vue +17 -13
- package/dist/components/modal/types.d.ts +3 -3
- package/dist/components/noise-background/index.vue +4 -3
- package/dist/components/note/index.d.vue.ts +1 -2
- package/dist/components/note/index.vue +81 -29
- package/dist/components/note/types.d.ts +10 -2
- package/dist/components/number-input/index.d.vue.ts +5 -4
- package/dist/components/number-input/index.vue +36 -6
- package/dist/components/number-input/types.d.ts +2 -0
- package/dist/components/overlay/index.vue +1 -1
- package/dist/components/overlay/types.d.ts +1 -1
- package/dist/components/pagination/index.vue +5 -3
- package/dist/components/pin-input/index.d.vue.ts +7 -2
- package/dist/components/pin-input/index.vue +60 -23
- package/dist/components/pin-input/types.d.ts +0 -4
- package/dist/components/placeholder/index.vue +2 -1
- package/dist/components/popover/index.d.vue.ts +1 -1
- package/dist/components/popover/index.vue +116 -78
- package/dist/components/popover/types.d.ts +2 -0
- package/dist/components/progress/index.d.vue.ts +1 -1
- package/dist/components/progress/index.vue +15 -2
- package/dist/components/project-banner/index.d.vue.ts +18 -0
- package/dist/components/project-banner/index.vue +59 -0
- package/dist/components/project-banner/types.d.ts +8 -0
- package/dist/components/radio/index.vue +62 -20
- package/dist/components/radio/types.d.ts +1 -14
- package/dist/components/radio-group/index.d.vue.ts +2 -4
- package/dist/components/radio-group/index.vue +11 -16
- package/dist/components/radio-group/types.d.ts +12 -0
- package/dist/components/resizable/types.d.ts +5 -10
- package/dist/components/resizable-handle/index.vue +1 -1
- package/dist/components/resizable-panel/index.d.vue.ts +1 -1
- package/dist/components/resizable-panel/index.vue +7 -2
- package/dist/components/resizable-panel/types.d.ts +4 -0
- package/dist/components/scrollable/index.d.vue.ts +29 -0
- package/dist/components/scrollable/index.vue +98 -83
- package/dist/components/scrollable/types.d.ts +19 -5
- package/dist/components/skeleton/index.vue +24 -1
- package/dist/components/slider/index.d.vue.ts +6 -6
- package/dist/components/slider/index.vue +86 -44
- package/dist/components/slider/types.d.ts +1 -1
- package/dist/components/snippet/index.vue +28 -2
- package/dist/components/spinner/index.vue +4 -2
- package/dist/components/stack/index.d.vue.ts +2 -2
- package/dist/components/stack/index.vue +35 -3
- package/dist/components/stack/types.d.ts +1 -1
- package/dist/components/status-dot/index.vue +5 -1
- package/dist/components/switch/index.d.vue.ts +10 -1
- package/dist/components/switch/index.vue +35 -44
- package/dist/components/switch/types.d.ts +4 -12
- package/dist/components/switch-item/index.d.vue.ts +14 -0
- package/dist/components/switch-item/index.vue +79 -0
- package/dist/components/switch-item/types.d.ts +9 -0
- package/dist/components/teleport/index.d.vue.ts +1 -1
- package/dist/components/teleport/index.vue +1 -1
- package/dist/components/teleport/types.d.ts +1 -1
- package/dist/components/text/index.d.vue.ts +1 -2
- package/dist/components/text/index.vue +36 -22
- package/dist/components/text/types.d.ts +1 -1
- package/dist/components/textarea/index.d.vue.ts +4 -4
- package/dist/components/textarea/index.vue +33 -4
- package/dist/components/textarea/types.d.ts +0 -1
- package/dist/components/time-picker/index.d.vue.ts +1 -2
- package/dist/components/time-picker/index.vue +43 -9
- package/dist/components/time-picker/types.d.ts +1 -2
- package/dist/components/toggle/index.vue +11 -10
- package/dist/components/toggle-button/index.d.vue.ts +22 -0
- package/dist/components/toggle-button/index.vue +110 -0
- package/dist/components/toggle-button/types.d.ts +16 -0
- package/dist/components/{choicebox-group → toggle-button-group}/index.d.vue.ts +5 -5
- package/dist/components/toggle-button-group/index.vue +68 -0
- package/dist/components/toggle-button-group/types.d.ts +22 -0
- package/dist/components/tooltip/index.d.vue.ts +2 -0
- package/dist/components/tooltip/index.vue +9 -3
- package/dist/components/tooltip/types.d.ts +2 -0
- package/dist/components/virtual-list/index.d.vue.ts +25 -4
- package/dist/components/virtual-list/index.vue +66 -10
- package/dist/components/virtual-list/types.d.ts +9 -4
- package/dist/composables/index.d.ts +2 -2
- package/dist/composables/index.js +2 -2
- package/dist/composables/use-browser-observer.d.ts +5 -5
- package/dist/composables/use-browser-observer.js +23 -20
- package/dist/composables/use-copy-click.js +4 -0
- package/dist/composables/use-countdown.d.ts +2 -2
- package/dist/composables/use-focus-trap.d.ts +6 -2
- package/dist/composables/use-focus-trap.js +19 -7
- package/dist/composables/use-forward-ref-expose.d.ts +2 -0
- package/dist/composables/use-forward-ref-expose.js +41 -0
- package/dist/composables/use-message.d.ts +3 -6
- package/dist/composables/use-model-value.d.ts +9 -8
- package/dist/composables/use-popover-responsive.d.ts +2 -2
- package/dist/composables/use-popover-responsive.js +3 -3
- package/dist/composables/use-repeat-action.js +2 -2
- package/dist/composables/use-virtual-list.d.ts +21 -12
- package/dist/composables/use-virtual-list.js +90 -158
- package/dist/composables/use-window-size.d.ts +4 -0
- package/dist/composables/use-window-size.js +27 -0
- package/dist/contexts/avatar.d.ts +5 -2
- package/dist/contexts/carousel.d.ts +4 -4
- package/dist/contexts/carousel.js +1 -1
- package/dist/contexts/checkbox.d.ts +7 -2
- package/dist/contexts/choicebox.d.ts +8 -4
- package/dist/contexts/choicebox.js +1 -4
- package/dist/contexts/collapse.d.ts +5 -6
- package/dist/contexts/collapse.js +1 -1
- package/dist/contexts/config-provider.d.ts +5 -0
- package/dist/{composables/use-config-provider-context.js → contexts/config-provider.js} +8 -5
- package/dist/contexts/radio.d.ts +8 -2
- package/dist/contexts/switch.d.ts +8 -4
- package/dist/contexts/switch.js +1 -2
- package/dist/contexts/toggle-button.d.ts +7 -0
- package/dist/contexts/toggle-button.js +2 -0
- package/dist/styles/source.css +14 -2
- package/dist/styles/styles.css +2 -2
- package/dist/styles/tw.css +14 -2
- package/dist/types/shared/props.d.ts +1 -3
- package/dist/types/shared/utils.d.ts +0 -3
- package/dist/utils/context.d.ts +1 -0
- package/dist/utils/get.d.ts +1 -0
- package/dist/utils/get.js +14 -0
- package/dist/utils/responsive.js +2 -1
- package/dist/utils/throttle.js +9 -7
- package/dist/utils/uid.d.ts +1 -1
- package/dist/utils/uid.js +2 -2
- package/package.json +23 -21
- package/volar.d.ts +7 -3
- package/dist/components/badge/cn.d.ts +0 -90
- package/dist/components/badge/cn.js +0 -44
- package/dist/components/button/cn.d.ts +0 -121
- package/dist/components/button/cn.js +0 -55
- package/dist/components/carousel-group/index.d.vue.ts +0 -35
- package/dist/components/carousel-group/index.vue +0 -368
- package/dist/components/checkbox/cn.d.ts +0 -67
- package/dist/components/checkbox/cn.js +0 -31
- package/dist/components/chip/cn.d.ts +0 -49
- package/dist/components/chip/cn.js +0 -26
- package/dist/components/choicebox-group/index.vue +0 -65
- package/dist/components/error/cn.d.ts +0 -22
- package/dist/components/error/cn.js +0 -15
- package/dist/components/input/cn.d.ts +0 -73
- package/dist/components/input/cn.js +0 -36
- package/dist/components/list-item/cn.d.ts +0 -22
- package/dist/components/list-item/cn.js +0 -15
- package/dist/components/loading-bar/cn.d.ts +0 -70
- package/dist/components/loading-bar/cn.js +0 -32
- package/dist/components/note/cn.d.ts +0 -121
- package/dist/components/note/cn.js +0 -66
- package/dist/components/pin-input/cn.d.ts +0 -46
- package/dist/components/pin-input/cn.js +0 -25
- package/dist/components/progress/cn.d.ts +0 -19
- package/dist/components/progress/cn.js +0 -14
- package/dist/components/radio/cn.d.ts +0 -46
- package/dist/components/radio/cn.js +0 -42
- package/dist/components/skeleton/cn.d.ts +0 -43
- package/dist/components/skeleton/cn.js +0 -24
- package/dist/components/snippet/cn.d.ts +0 -52
- package/dist/components/snippet/cn.js +0 -27
- package/dist/components/stack/cn.d.ts +0 -70
- package/dist/components/stack/cn.js +0 -33
- package/dist/components/switch/cn.d.ts +0 -16
- package/dist/components/switch/cn.js +0 -13
- package/dist/components/switch-group/index.d.vue.ts +0 -23
- package/dist/components/switch-group/index.vue +0 -54
- package/dist/components/text/cn.d.ts +0 -67
- package/dist/components/text/cn.js +0 -34
- package/dist/components/textarea/cn.d.ts +0 -58
- package/dist/components/textarea/cn.js +0 -30
- package/dist/composables/use-config-provider-context.d.ts +0 -3
- package/dist/composables/use-unique-id-context.d.ts +0 -2
- package/dist/composables/use-unique-id-context.js +0 -11
|
@@ -3,12 +3,12 @@ import CrossIcon from "@gdsicon/vue/cross";
|
|
|
3
3
|
import EyeIcon from "@gdsicon/vue/eye";
|
|
4
4
|
import EyeOffIcon from "@gdsicon/vue/eye-off";
|
|
5
5
|
import { computed, shallowRef } from "vue";
|
|
6
|
-
import { useConfigProvider } from "../../
|
|
6
|
+
import { useConfigProvider } from "../../contexts/config-provider";
|
|
7
7
|
import { useModelValue } from "../../composables/use-model-value";
|
|
8
8
|
import { NOOP } from "../../utils/event";
|
|
9
9
|
import { isTruthyProp } from "../../utils/format";
|
|
10
10
|
import { getUniqueId } from "../../utils/uid";
|
|
11
|
-
import {
|
|
11
|
+
import { tv } from "tailwind-variants";
|
|
12
12
|
defineOptions({
|
|
13
13
|
name: "PInput",
|
|
14
14
|
inheritAttrs: false,
|
|
@@ -18,7 +18,7 @@ defineOptions({
|
|
|
18
18
|
}
|
|
19
19
|
});
|
|
20
20
|
const props = defineProps({
|
|
21
|
-
size: { type:
|
|
21
|
+
size: { type: String, required: false },
|
|
22
22
|
error: { type: [Boolean, String], required: false },
|
|
23
23
|
min: { type: [Number, String], required: false },
|
|
24
24
|
max: { type: [Number, String], required: false },
|
|
@@ -26,23 +26,57 @@ const props = defineProps({
|
|
|
26
26
|
readonly: { type: Boolean, required: false },
|
|
27
27
|
disabled: { type: Boolean, required: false },
|
|
28
28
|
password: { type: Boolean, required: false },
|
|
29
|
-
required: { type: Boolean, required: false },
|
|
30
29
|
autofocus: { type: Boolean, required: false },
|
|
31
|
-
inputType: { type:
|
|
32
|
-
inputmode: { type:
|
|
30
|
+
inputType: { type: String, required: false },
|
|
31
|
+
inputmode: { type: String, required: false },
|
|
33
32
|
minlength: { type: [Number, String], required: false },
|
|
34
33
|
maxlength: { type: [Number, String], required: false },
|
|
35
34
|
clearable: { type: Boolean, required: false },
|
|
36
|
-
clearValue: { type: null, required: false },
|
|
37
|
-
modelValue: { type: null, required: false },
|
|
35
|
+
clearValue: { type: [String, Number, null], required: false },
|
|
36
|
+
modelValue: { type: [String, Number, null], required: false },
|
|
38
37
|
placeholder: { type: String, required: false },
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
38
|
+
prefixClass: { type: [String, Array, Object], required: false },
|
|
39
|
+
suffixClass: { type: [String, Array, Object], required: false },
|
|
40
|
+
selectOnFocus: { type: Boolean, required: false },
|
|
41
|
+
defaultPrefixStyle: { type: Boolean, required: false, default: true },
|
|
42
|
+
defaultSuffixStyle: { type: Boolean, required: false, default: true }
|
|
44
43
|
});
|
|
45
44
|
const emits = defineEmits(["click", "input", "change", "focus", "blur", "keydown", "update:modelValue", "compositionstart", "compositionupdate", "compositionend"]);
|
|
45
|
+
const inputVariant = tv({
|
|
46
|
+
base: "pxd-input pxd-input--border group relative flex w-full max-w-full items-center overflow-hidden bg-background-100 data-[disabled=true]:cursor-not-allowed data-[disabled=true]:bg-gray-100 motion-safe:transition-all",
|
|
47
|
+
variants: {
|
|
48
|
+
size: {
|
|
49
|
+
xs: "h-6 text-xs rounded-sm",
|
|
50
|
+
sm: "h-7.5 text-sm rounded-md",
|
|
51
|
+
md: "h-9 text-sm rounded-md",
|
|
52
|
+
lg: "h-10 text-base rounded-lg"
|
|
53
|
+
},
|
|
54
|
+
align: {
|
|
55
|
+
left: "text-left",
|
|
56
|
+
center: "text-center",
|
|
57
|
+
right: "text-right"
|
|
58
|
+
},
|
|
59
|
+
disabled: {
|
|
60
|
+
true: "is-disabled",
|
|
61
|
+
false: ""
|
|
62
|
+
},
|
|
63
|
+
readonly: {
|
|
64
|
+
true: "is-readonly",
|
|
65
|
+
false: ""
|
|
66
|
+
},
|
|
67
|
+
error: {
|
|
68
|
+
true: "is-error",
|
|
69
|
+
false: ""
|
|
70
|
+
}
|
|
71
|
+
},
|
|
72
|
+
defaultVariants: {
|
|
73
|
+
size: "md",
|
|
74
|
+
align: "left",
|
|
75
|
+
disabled: false,
|
|
76
|
+
readonly: false,
|
|
77
|
+
error: false
|
|
78
|
+
}
|
|
79
|
+
});
|
|
46
80
|
const uniqueId = getUniqueId();
|
|
47
81
|
const inputRef = shallowRef();
|
|
48
82
|
const configProvider = useConfigProvider();
|
|
@@ -150,7 +184,7 @@ defineExpose({
|
|
|
150
184
|
v-if="$slots.prefix"
|
|
151
185
|
class="pxd-input--prefix text-sm flex h-full items-center text-foreground-secondary"
|
|
152
186
|
:class="[
|
|
153
|
-
{ 'px-3 rounded-l-inherit border-r border-gray-300 bg-background-200':
|
|
187
|
+
{ 'px-3 rounded-l-inherit border-r border-gray-300 bg-background-200': defaultPrefixStyle },
|
|
154
188
|
prefixClass
|
|
155
189
|
]"
|
|
156
190
|
@pointerdown.prevent="NOOP"
|
|
@@ -161,7 +195,7 @@ defineExpose({
|
|
|
161
195
|
<input
|
|
162
196
|
:id="uniqueId"
|
|
163
197
|
ref="inputRef"
|
|
164
|
-
class="px-3 py-0 file:font-medium size-full appearance-none rounded-
|
|
198
|
+
class="px-3 py-0 file:font-medium size-full appearance-none rounded-none border-none bg-transparent [text-align:inherit] font-inherit outline-none select-auto file:border-0 file:bg-transparent placeholder:text-gray-600 placeholder:select-none read-only:cursor-default disabled:cursor-not-allowed disabled:text-gray-700 disabled:placeholder:text-gray-500"
|
|
165
199
|
autocorrect="off"
|
|
166
200
|
autocomplete="off"
|
|
167
201
|
autocapitalize="off"
|
|
@@ -171,7 +205,6 @@ defineExpose({
|
|
|
171
205
|
:value="modelValue"
|
|
172
206
|
:readonly="readonly"
|
|
173
207
|
:disabled="disabled"
|
|
174
|
-
:required="required"
|
|
175
208
|
:inputmode="inputmode"
|
|
176
209
|
:minlength="minlength"
|
|
177
210
|
:maxlength="maxlength"
|
|
@@ -192,12 +225,12 @@ defineExpose({
|
|
|
192
225
|
v-if="password || clearable"
|
|
193
226
|
v-show="modelValue"
|
|
194
227
|
:class="{ 'pr-2': password && clearable }"
|
|
195
|
-
class="pxd-input--icon top-0 right-0 gap-1 flex aspect-square h-full
|
|
228
|
+
class="pxd-input--icon top-0 right-0 gap-1 flex aspect-square h-full items-center justify-center rounded-r-inherit text-foreground-secondary"
|
|
196
229
|
@pointerdown.prevent="NOOP"
|
|
197
230
|
>
|
|
198
231
|
<button
|
|
199
232
|
v-if="password"
|
|
200
|
-
class="p-1 appearance-none rounded-sm font-inherit self-focus-ring outline-none hover:bg-background-hover hover:text-foreground active:bg-background-active motion-safe:transition-colors"
|
|
233
|
+
class="p-1 cursor-pointer appearance-none rounded-sm font-inherit self-focus-ring outline-none hover:bg-background-hover hover:text-foreground active:bg-background-active motion-safe:transition-colors"
|
|
201
234
|
@click.stop.prevent="toggleType"
|
|
202
235
|
>
|
|
203
236
|
<EyeOffIcon v-if="isPasswordVisible" class="size-3 pointer-events-none" />
|
|
@@ -205,7 +238,7 @@ defineExpose({
|
|
|
205
238
|
</button>
|
|
206
239
|
<button
|
|
207
240
|
v-if="clearable"
|
|
208
|
-
class="p-1 appearance-none rounded-sm font-inherit self-focus-ring outline-none hover:bg-background-hover hover:text-foreground active:bg-background-active motion-safe:transition-colors"
|
|
241
|
+
class="p-1 cursor-pointer appearance-none rounded-sm font-inherit self-focus-ring outline-none hover:bg-background-hover hover:text-foreground active:bg-background-active motion-safe:transition-colors"
|
|
209
242
|
@click.stop.prevent="clear"
|
|
210
243
|
>
|
|
211
244
|
<CrossIcon class="size-3 pointer-events-none" />
|
|
@@ -216,7 +249,7 @@ defineExpose({
|
|
|
216
249
|
v-if="$slots.suffix"
|
|
217
250
|
class="pxd-input--suffix text-sm flex h-full items-center text-foreground-secondary"
|
|
218
251
|
:class="[
|
|
219
|
-
{ 'px-3 rounded-r-inherit border-l border-gray-300 bg-background-200':
|
|
252
|
+
{ 'px-3 rounded-r-inherit border-l border-gray-300 bg-background-200': defaultSuffixStyle },
|
|
220
253
|
suffixClass
|
|
221
254
|
]"
|
|
222
255
|
@pointerdown.prevent="NOOP"
|
|
@@ -227,5 +260,5 @@ defineExpose({
|
|
|
227
260
|
</template>
|
|
228
261
|
|
|
229
262
|
<style>
|
|
230
|
-
|
|
263
|
+
input:-webkit-autofill,input:-webkit-autofill:active,input:-webkit-autofill:focus,input:-webkit-autofill:hover{--autofill-delay:calc(infinity*1s);-webkit-transition:background-color var(--autofill-delay) ease-in-out 0s,color var(--autofill-delay) ease-in-out 0s;transition:background-color var(--autofill-delay) ease-in-out 0s,color var(--autofill-delay) ease-in-out 0s}
|
|
231
264
|
</style>
|
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
|
|
3
|
-
import type { ComponentSizeWithXs } from '../shared/props'
|
|
1
|
+
import type { ComponentSizeWithXs, ComponentClass } from '../../types/shared'
|
|
4
2
|
|
|
5
3
|
export interface InputProps {
|
|
6
4
|
size?: ComponentSizeWithXs
|
|
@@ -11,21 +9,20 @@ export interface InputProps {
|
|
|
11
9
|
readonly?: boolean
|
|
12
10
|
disabled?: boolean
|
|
13
11
|
password?: boolean
|
|
14
|
-
required?: boolean
|
|
15
12
|
autofocus?: boolean
|
|
16
|
-
inputType?:
|
|
17
|
-
inputmode?:
|
|
13
|
+
inputType?: string
|
|
14
|
+
inputmode?: 'none' | 'text' | 'tel' | 'url' | 'email' | 'numeric' | 'decimal' | 'search'
|
|
18
15
|
minlength?: number | string
|
|
19
16
|
maxlength?: number | string
|
|
20
17
|
clearable?: boolean
|
|
21
|
-
clearValue?: string | number | null
|
|
22
|
-
modelValue?: string | number | null
|
|
18
|
+
clearValue?: string | number | null
|
|
19
|
+
modelValue?: string | number | null
|
|
23
20
|
placeholder?: string
|
|
24
|
-
prefixStyle?: boolean
|
|
25
|
-
suffixStyle?: boolean
|
|
26
21
|
prefixClass?: ComponentClass
|
|
27
22
|
suffixClass?: ComponentClass
|
|
28
23
|
selectOnFocus?: boolean
|
|
24
|
+
defaultPrefixStyle?: boolean
|
|
25
|
+
defaultSuffixStyle?: boolean
|
|
29
26
|
}
|
|
30
27
|
|
|
31
28
|
export interface InputEmits {
|
|
@@ -19,7 +19,6 @@ declare const __VLS_base: import("vue").DefineComponent<IntersectionObserverProp
|
|
|
19
19
|
"onBefore-hide"?: (() => any) | undefined;
|
|
20
20
|
}>, {
|
|
21
21
|
threshold: number | number[];
|
|
22
|
-
root: Element | Document | null;
|
|
23
22
|
rootMargin: string;
|
|
24
23
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
25
24
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
@@ -4,13 +4,14 @@ import { useIntersectionObserver } from "../../composables/use-browser-observer"
|
|
|
4
4
|
import { getCssUnitValue } from "../../utils/format";
|
|
5
5
|
import FragmentContainer from "../_internal/fragment-container.vue";
|
|
6
6
|
defineOptions({
|
|
7
|
-
name: "PIntersectionObserver"
|
|
7
|
+
name: "PIntersectionObserver",
|
|
8
|
+
inheritAttrs: false
|
|
8
9
|
});
|
|
9
10
|
const props = defineProps({
|
|
10
11
|
width: { type: [Number, String], required: false },
|
|
11
12
|
height: { type: [Number, String], required: false },
|
|
12
13
|
keepAlive: { type: Boolean, required: false },
|
|
13
|
-
root: { type: null, required: false
|
|
14
|
+
root: { type: null, required: false },
|
|
14
15
|
rootMargin: { type: String, required: false, default: "20%" },
|
|
15
16
|
threshold: { type: [Number, Array], required: false, default: 0 }
|
|
16
17
|
});
|
|
@@ -18,12 +19,14 @@ const emits = defineEmits(["visible-change", "before-show", "before-hide", "show
|
|
|
18
19
|
const isVisible = shallowRef(false);
|
|
19
20
|
const containerRef = shallowRef();
|
|
20
21
|
const containerSize = shallowRef({
|
|
22
|
+
"contain-intrinsic-size": `auto ${getCssUnitValue(props.height)}`,
|
|
21
23
|
"--slot-estimated-width": getCssUnitValue(props.width),
|
|
22
24
|
"--slot-estimated-height": getCssUnitValue(props.height)
|
|
23
25
|
});
|
|
24
26
|
function getRenderedSlotSize() {
|
|
25
27
|
const rect = containerRef.value.getBoundingClientRect();
|
|
26
28
|
containerSize.value = {
|
|
29
|
+
"contain-intrinsic-size": `auto ${rect.height}px`,
|
|
27
30
|
"--slot-estimated-width": `${rect.width}px`,
|
|
28
31
|
"--slot-estimated-height": `${rect.height}px`
|
|
29
32
|
};
|
|
@@ -55,12 +58,18 @@ useIntersectionObserver(
|
|
|
55
58
|
</script>
|
|
56
59
|
|
|
57
60
|
<template>
|
|
58
|
-
<div
|
|
61
|
+
<div
|
|
62
|
+
ref="containerRef"
|
|
63
|
+
class="pxd-intersection-observer content-visibility-auto"
|
|
64
|
+
:style="containerSize"
|
|
65
|
+
v-bind="$attrs"
|
|
66
|
+
>
|
|
59
67
|
<KeepAlive v-if="keepAlive">
|
|
60
68
|
<FragmentContainer v-if="isVisible">
|
|
61
69
|
<slot />
|
|
62
70
|
</FragmentContainer>
|
|
63
71
|
</KeepAlive>
|
|
72
|
+
|
|
64
73
|
<template v-else>
|
|
65
74
|
<slot v-if="isVisible" />
|
|
66
75
|
</template>
|
|
@@ -13,7 +13,7 @@ declare const __VLS_base: import("vue").DefineComponent<LinkButtonProps, {}, {},
|
|
|
13
13
|
onClick?: ((args_0: MouseEvent) => any) | undefined;
|
|
14
14
|
}>, {
|
|
15
15
|
align: "left" | "center" | "right";
|
|
16
|
-
target:
|
|
16
|
+
target: "_blank" | "_self" | "_parent" | "_top";
|
|
17
17
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
18
18
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
19
19
|
declare const _default: typeof __VLS_export;
|
|
@@ -4,19 +4,20 @@ import { computed, useAttrs } from "vue";
|
|
|
4
4
|
import { isExternalLink } from "../../utils/format";
|
|
5
5
|
import PButton from "../button/index.vue";
|
|
6
6
|
defineOptions({
|
|
7
|
-
name: "PLinkButton"
|
|
7
|
+
name: "PLinkButton",
|
|
8
|
+
inheritAttrs: false
|
|
8
9
|
});
|
|
9
10
|
const props = defineProps({
|
|
10
11
|
href: { type: String, required: true },
|
|
11
12
|
text: { type: String, required: false },
|
|
12
13
|
align: { type: String, required: false, default: "left" },
|
|
13
|
-
target: { type:
|
|
14
|
+
target: { type: String, required: false, default: "_self" },
|
|
14
15
|
variant: { type: String, required: false },
|
|
15
16
|
externalIcon: { type: Boolean, required: false }
|
|
16
17
|
});
|
|
17
18
|
const emits = defineEmits(["click"]);
|
|
18
19
|
const attrs = useAttrs();
|
|
19
|
-
const
|
|
20
|
+
const computedAttrs = computed(() => {
|
|
20
21
|
const { externalIcon, text, href, ...restProps } = props;
|
|
21
22
|
const baseAttrs = {
|
|
22
23
|
...attrs,
|
|
@@ -47,7 +48,7 @@ function onLinkClick(ev) {
|
|
|
47
48
|
</script>
|
|
48
49
|
|
|
49
50
|
<template>
|
|
50
|
-
<PButton v-bind="
|
|
51
|
+
<PButton v-bind="computedAttrs">
|
|
51
52
|
<template #prefix>
|
|
52
53
|
<slot name="prefix" />
|
|
53
54
|
</template>
|
|
@@ -2,16 +2,20 @@ import type { ListProps, ListOptionSelected } from './types';
|
|
|
2
2
|
declare function updateListItem(): void;
|
|
3
3
|
declare function isNoVisibleItem(): boolean;
|
|
4
4
|
declare function setActiveValue(newValue?: string): void;
|
|
5
|
-
declare function
|
|
6
|
-
declare var __VLS_7: {}
|
|
5
|
+
declare function setFirstAsActive(): void;
|
|
6
|
+
declare var __VLS_7: {}, __VLS_15: {
|
|
7
|
+
item: import("./types").ListOption;
|
|
8
|
+
};
|
|
7
9
|
type __VLS_Slots = {} & {
|
|
8
10
|
default?: (props: typeof __VLS_7) => any;
|
|
11
|
+
} & {
|
|
12
|
+
item?: (props: typeof __VLS_15) => any;
|
|
9
13
|
};
|
|
10
14
|
declare const __VLS_base: import("vue").DefineComponent<ListProps, {
|
|
11
15
|
setActiveValue: typeof setActiveValue;
|
|
12
16
|
updateListItem: typeof updateListItem;
|
|
13
17
|
isNoVisibleItem: typeof isNoVisibleItem;
|
|
14
|
-
|
|
18
|
+
setFirstAsActive: typeof setFirstAsActive;
|
|
15
19
|
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
16
20
|
select: (args_0: MouseEvent, args_1: ListOptionSelected) => any;
|
|
17
21
|
toggle: () => any;
|
|
@@ -23,8 +27,7 @@ declare const __VLS_base: import("vue").DefineComponent<ListProps, {
|
|
|
23
27
|
}>, {
|
|
24
28
|
options: import("./types").ListOption[];
|
|
25
29
|
loop: boolean;
|
|
26
|
-
|
|
27
|
-
itemTransition: boolean;
|
|
30
|
+
toggleOnKeyPress: boolean;
|
|
28
31
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
29
32
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
30
33
|
declare const _default: typeof __VLS_export;
|
|
@@ -13,8 +13,7 @@ defineOptions({
|
|
|
13
13
|
const props = defineProps({
|
|
14
14
|
loop: { type: Boolean, required: false, default: true },
|
|
15
15
|
options: { type: Array, required: false, default: () => [] },
|
|
16
|
-
|
|
17
|
-
itemTransition: { type: Boolean, required: false, default: true },
|
|
16
|
+
toggleOnKeyPress: { type: Boolean, required: false, default: true },
|
|
18
17
|
closeOnPressEscape: { type: Boolean, required: false }
|
|
19
18
|
});
|
|
20
19
|
const emits = defineEmits(["toggle", "escape", "select"]);
|
|
@@ -28,15 +27,37 @@ const FUNCTION_KEYS = ["Enter", "Tab", "Home", "End"];
|
|
|
28
27
|
const PREVENT_DEFAULT_KEYS = [...FUNCTION_KEYS, ...PREV_KEYS, ...NEXT_KEYS];
|
|
29
28
|
const listItemKeys = [];
|
|
30
29
|
const listItemsMap = /* @__PURE__ */ new Map();
|
|
30
|
+
function resolveNavigationTarget(key) {
|
|
31
|
+
const len = listItemKeys.length;
|
|
32
|
+
if (key === "Home") {
|
|
33
|
+
return listItemKeys[0];
|
|
34
|
+
}
|
|
35
|
+
if (key === "End") {
|
|
36
|
+
return listItemKeys[len - 1];
|
|
37
|
+
}
|
|
38
|
+
const dir = PREV_KEYS.includes(key) ? -1 : NEXT_KEYS.includes(key) ? 1 : void 0;
|
|
39
|
+
if (dir === void 0) {
|
|
40
|
+
return void 0;
|
|
41
|
+
}
|
|
42
|
+
if (!activeValue.value) {
|
|
43
|
+
return dir === -1 ? listItemKeys[len - 1] : listItemKeys[0];
|
|
44
|
+
}
|
|
45
|
+
const index = listItemKeys.indexOf(activeValue.value);
|
|
46
|
+
if (index === -1) {
|
|
47
|
+
return dir === -1 ? listItemKeys[len - 1] : listItemKeys[0];
|
|
48
|
+
}
|
|
49
|
+
if (props.loop) {
|
|
50
|
+
return listItemKeys[(index + dir + len) % len];
|
|
51
|
+
}
|
|
52
|
+
const nextIndex = index + dir;
|
|
53
|
+
return nextIndex >= 0 && nextIndex < len ? listItemKeys[nextIndex] : void 0;
|
|
54
|
+
}
|
|
31
55
|
const containerKeydownThrottled = throttle(
|
|
32
56
|
(ev) => {
|
|
33
57
|
if (ev.ctrlKey || ev.metaKey || ev.altKey || ev.shiftKey) {
|
|
34
58
|
return;
|
|
35
59
|
}
|
|
36
60
|
const { key } = ev;
|
|
37
|
-
if (key === "Tab") {
|
|
38
|
-
return;
|
|
39
|
-
}
|
|
40
61
|
if (key === "Enter") {
|
|
41
62
|
listItemsMap.get(activeValue.value)?.click();
|
|
42
63
|
return;
|
|
@@ -45,38 +66,8 @@ const containerKeydownThrottled = throttle(
|
|
|
45
66
|
emits("escape", ev);
|
|
46
67
|
return;
|
|
47
68
|
}
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
if (PREV_KEYS.includes(key)) {
|
|
51
|
-
if (activeValue.value) {
|
|
52
|
-
const index = listItemKeys.indexOf(activeValue.value);
|
|
53
|
-
if (props.loop) {
|
|
54
|
-
const prevIndex = (index - 1 + listItemKeys.length) % listItemKeys.length;
|
|
55
|
-
newActiveValue = listItemKeys[prevIndex];
|
|
56
|
-
} else if (index > 0) {
|
|
57
|
-
newActiveValue = listItemKeys[index - 1];
|
|
58
|
-
}
|
|
59
|
-
} else {
|
|
60
|
-
newActiveValue = listItemKeys[listItemKeyLength - 1];
|
|
61
|
-
}
|
|
62
|
-
} else if (NEXT_KEYS.includes(key)) {
|
|
63
|
-
if (activeValue.value) {
|
|
64
|
-
const index = listItemKeys.indexOf(activeValue.value);
|
|
65
|
-
if (props.loop) {
|
|
66
|
-
const nextIndex = (index + 1) % listItemKeys.length;
|
|
67
|
-
newActiveValue = listItemKeys[nextIndex];
|
|
68
|
-
} else if (index < listItemKeys.length - 1) {
|
|
69
|
-
newActiveValue = listItemKeys[index + 1];
|
|
70
|
-
}
|
|
71
|
-
} else {
|
|
72
|
-
newActiveValue = listItemKeys[0];
|
|
73
|
-
}
|
|
74
|
-
} else if (key === "Home") {
|
|
75
|
-
newActiveValue = listItemKeys[0];
|
|
76
|
-
} else if (key === "End") {
|
|
77
|
-
newActiveValue = listItemKeys[listItemKeyLength - 1];
|
|
78
|
-
}
|
|
79
|
-
if (!newActiveValue) {
|
|
69
|
+
const newActiveValue = resolveNavigationTarget(key);
|
|
70
|
+
if (newActiveValue === void 0) {
|
|
80
71
|
return;
|
|
81
72
|
}
|
|
82
73
|
if (activeValue.value !== newActiveValue) {
|
|
@@ -89,7 +80,7 @@ const containerKeydownThrottled = throttle(
|
|
|
89
80
|
{ edges: ["leading"] }
|
|
90
81
|
);
|
|
91
82
|
function onContainerKeydown(ev) {
|
|
92
|
-
if (!props.
|
|
83
|
+
if (!props.toggleOnKeyPress || listItemKeys.length === 0) {
|
|
93
84
|
return;
|
|
94
85
|
}
|
|
95
86
|
if (PREVENT_DEFAULT_KEYS.includes(ev.key)) {
|
|
@@ -108,26 +99,31 @@ function onPointerOver(ev) {
|
|
|
108
99
|
activeValue.value = itemValue;
|
|
109
100
|
}
|
|
110
101
|
function onOptionClick(item, ev) {
|
|
111
|
-
const { as, onClick, ...option } = item;
|
|
112
102
|
activeValue.value = "";
|
|
113
|
-
emits("select", ev,
|
|
103
|
+
emits("select", ev, item);
|
|
114
104
|
}
|
|
115
105
|
function updateListItem() {
|
|
116
|
-
|
|
117
|
-
|
|
106
|
+
cleanupListItem();
|
|
107
|
+
if (!containerRef.value) {
|
|
108
|
+
return;
|
|
109
|
+
}
|
|
118
110
|
Array.from(containerRef.value.querySelectorAll(itemSelector)).forEach((el) => {
|
|
119
111
|
const key = el.dataset.value;
|
|
120
112
|
listItemsMap.set(key, el);
|
|
121
113
|
listItemKeys.push(key);
|
|
122
114
|
});
|
|
123
115
|
}
|
|
116
|
+
function cleanupListItem() {
|
|
117
|
+
listItemsMap.clear();
|
|
118
|
+
listItemKeys.splice(0);
|
|
119
|
+
}
|
|
124
120
|
function isNoVisibleItem() {
|
|
125
121
|
return listItemsMap.size === 0;
|
|
126
122
|
}
|
|
127
123
|
function setActiveValue(newValue = "") {
|
|
128
124
|
activeValue.value = newValue;
|
|
129
125
|
}
|
|
130
|
-
function
|
|
126
|
+
function setFirstAsActive() {
|
|
131
127
|
setActiveValue(listItemKeys[0]);
|
|
132
128
|
}
|
|
133
129
|
provideListContext({
|
|
@@ -143,15 +139,14 @@ onMounted(async () => {
|
|
|
143
139
|
cachedOn(document, "keydown", onContainerKeydown);
|
|
144
140
|
});
|
|
145
141
|
onBeforeUnmount(() => {
|
|
146
|
-
|
|
147
|
-
listItemKeys.splice(0);
|
|
142
|
+
cleanupListItem();
|
|
148
143
|
cachedOff(document, "keydown", onContainerKeydown);
|
|
149
144
|
});
|
|
150
145
|
defineExpose({
|
|
151
146
|
setActiveValue,
|
|
152
147
|
updateListItem,
|
|
153
148
|
isNoVisibleItem,
|
|
154
|
-
|
|
149
|
+
setFirstAsActive
|
|
155
150
|
});
|
|
156
151
|
</script>
|
|
157
152
|
|
|
@@ -160,18 +155,19 @@ defineExpose({
|
|
|
160
155
|
ref="containerRef"
|
|
161
156
|
role="list"
|
|
162
157
|
tabindex="-1"
|
|
163
|
-
|
|
164
|
-
class="pxd-list group/list m-0 p-0 max-w-full list-none bg-background-100 outline-none"
|
|
158
|
+
class="pxd-list m-0 p-0 max-w-full list-none bg-background-100 outline-none"
|
|
165
159
|
v-bind="$attrs"
|
|
166
160
|
@pointerover="onPointerOver"
|
|
167
161
|
>
|
|
168
|
-
<PScrollable
|
|
162
|
+
<PScrollable
|
|
163
|
+
class="h-full max-h-inherit rounded-inherit"
|
|
164
|
+
content-class="p-2"
|
|
165
|
+
fader-direction="vertical"
|
|
166
|
+
>
|
|
169
167
|
<slot>
|
|
170
|
-
<PListItem
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
v-bind="option"
|
|
174
|
-
/>
|
|
168
|
+
<PListItem v-for="(option, index) in options" :key="option.value ?? index" v-bind="option">
|
|
169
|
+
<slot name="item" :item="option" />
|
|
170
|
+
</PListItem>
|
|
175
171
|
</slot>
|
|
176
172
|
</PScrollable>
|
|
177
173
|
</ul>
|
|
@@ -1,11 +1,8 @@
|
|
|
1
|
-
import type { ComponentAs, ComponentLabel } from '
|
|
1
|
+
import type { ComponentAs, ComponentLabel, ComponentOption } from '../../types/shared'
|
|
2
2
|
|
|
3
|
-
export interface ListOption extends
|
|
3
|
+
export interface ListOption extends Partial<ComponentOption> {
|
|
4
4
|
as?: ComponentAs
|
|
5
5
|
type?: 'default' | 'error' | 'warning' | 'separator'
|
|
6
|
-
label?: ComponentLabel
|
|
7
|
-
value?: any
|
|
8
|
-
disabled?: boolean
|
|
9
6
|
description?: ComponentLabel
|
|
10
7
|
onClick?: (item: ListOptionSelected, ev: MouseEvent) => void
|
|
11
8
|
}
|
|
@@ -15,8 +12,7 @@ export type ListOptionSelected = Omit<ListOption, 'as' | 'onClick'>
|
|
|
15
12
|
export interface ListProps {
|
|
16
13
|
loop?: boolean
|
|
17
14
|
options?: ListOption[]
|
|
18
|
-
|
|
19
|
-
itemTransition?: boolean
|
|
15
|
+
toggleOnKeyPress?: boolean
|
|
20
16
|
closeOnPressEscape?: boolean
|
|
21
17
|
}
|
|
22
18
|
|
|
@@ -25,16 +21,3 @@ export interface ListEmits {
|
|
|
25
21
|
escape: [KeyboardEvent]
|
|
26
22
|
select: [MouseEvent, ListOptionSelected]
|
|
27
23
|
}
|
|
28
|
-
|
|
29
|
-
export interface ListItemProps {
|
|
30
|
-
as?: ListOption['as']
|
|
31
|
-
type?: ListOption['type']
|
|
32
|
-
label?: ListOption['label']
|
|
33
|
-
value?: ListOption['value']
|
|
34
|
-
disabled?: ListOption['disabled']
|
|
35
|
-
description?: ListOption['description']
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
export interface ListItemEmits {
|
|
39
|
-
click: [ListOptionSelected, MouseEvent]
|
|
40
|
-
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ListItemProps } from '
|
|
1
|
+
import type { ListItemProps } from './types';
|
|
2
2
|
declare var __VLS_11: {};
|
|
3
3
|
type __VLS_Slots = {} & {
|
|
4
4
|
default?: (props: typeof __VLS_11) => any;
|
|
@@ -8,9 +8,10 @@ declare const __VLS_base: import("vue").DefineComponent<ListItemProps, {}, {}, {
|
|
|
8
8
|
}, string, import("vue").PublicProps, Readonly<ListItemProps> & Readonly<{
|
|
9
9
|
onClick?: ((args_0: import("../list/types").ListOptionSelected, args_1: MouseEvent) => any) | undefined;
|
|
10
10
|
}>, {
|
|
11
|
-
type: "
|
|
11
|
+
type: "error" | "default" | "warning" | "separator";
|
|
12
|
+
as: import("../../types/shared").ComponentAs;
|
|
12
13
|
disabled: boolean;
|
|
13
|
-
|
|
14
|
+
keywords: string[];
|
|
14
15
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
15
16
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
16
17
|
declare const _default: typeof __VLS_export;
|