vueless 0.0.186 → 0.0.188
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/package.json +1 -1
- package/ui.button/configs/default.config.js +1 -1
- package/ui.button-link/configs/default.config.js +2 -2
- package/ui.container-accordion/composables/attrs.composable.js +22 -7
- package/ui.container-accordion/configs/default.config.js +7 -7
- package/ui.container-accordion/index.stories.js +24 -65
- package/ui.container-accordion/index.vue +24 -15
- package/ui.data-table/configs/default.config.js +1 -1
- package/ui.dropdown-badge/configs/default.config.js +1 -1
- package/ui.dropdown-button/configs/default.config.js +1 -1
- package/ui.dropdown-link/configs/default.config.js +1 -1
- package/ui.dropdown-list/configs/default.config.js +1 -1
- package/ui.form-checkbox/configs/default.config.js +1 -1
- package/ui.form-input/configs/default.config.js +3 -3
- package/ui.form-input/index.vue +10 -8
- package/ui.form-input-file/configs/default.config.js +1 -1
- package/ui.form-input-search/configs/default.config.js +2 -2
- package/ui.form-input-search/index.stories.js +3 -2
- package/ui.form-input-search/index.vue +71 -75
- package/ui.form-select/configs/default.config.js +3 -3
- package/ui.form-switch/configs/default.config.js +3 -3
- package/ui.form-textarea/configs/default.config.js +2 -2
- package/ui.form-textarea/index.vue +8 -15
- package/ui.loader-rendering/configs/default.config.js +1 -1
- package/ui.loader-top/configs/default.config.js +1 -1
- package/ui.navigation-progress/configs/default.config.js +3 -3
- package/ui.text-notify/configs/default.config.js +3 -3
- package/web-types.json +42 -60
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@ export default /*tw*/ {
|
|
|
3
3
|
base: `
|
|
4
4
|
flex items-center justify-center
|
|
5
5
|
text-base font-medium outline-none
|
|
6
|
-
border border-solid transition
|
|
6
|
+
border border-solid transition
|
|
7
7
|
focus:ring-opacity-20 focus:ring-4 focus:ring-{color}-700
|
|
8
8
|
focus-within:ring-opacity-20 focus-within:ring-4 focus-within:ring-{color}-700
|
|
9
9
|
disabled:ring-0 disabled:cursor-no-drop
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export default /*tw*/ {
|
|
2
2
|
wrapper: {
|
|
3
3
|
base: `
|
|
4
|
-
w-fit inline-flex rounded transition
|
|
4
|
+
w-fit inline-flex rounded transition
|
|
5
5
|
focus-within:ring-4 focus-within:ring-{color}-500 focus-within:ring-opacity-15 focus-visible:outline-none
|
|
6
6
|
`,
|
|
7
7
|
variants: {
|
|
@@ -28,7 +28,7 @@ export default /*tw*/ {
|
|
|
28
28
|
},
|
|
29
29
|
link: {
|
|
30
30
|
base: `
|
|
31
|
-
w-full inline-block !leading-none transition
|
|
31
|
+
w-full inline-block !leading-none transition
|
|
32
32
|
text-{color}-500 decoration-{color}-500 underline-offset-4
|
|
33
33
|
hover:text-opacity-80
|
|
34
34
|
active:text-opacity-70
|
|
@@ -6,7 +6,7 @@ import defaultConfig from "../configs/default.config";
|
|
|
6
6
|
|
|
7
7
|
export function useAttrs(props, { isOpened }) {
|
|
8
8
|
const { config, getAttrs } = useUI(defaultConfig, () => props.config);
|
|
9
|
-
const { wrapper, description } = config.value;
|
|
9
|
+
const { wrapper, title, description } = config.value;
|
|
10
10
|
|
|
11
11
|
const cvaWrapper = cva({
|
|
12
12
|
base: wrapper.base,
|
|
@@ -14,6 +14,12 @@ export function useAttrs(props, { isOpened }) {
|
|
|
14
14
|
compoundVariants: wrapper.compoundVariants,
|
|
15
15
|
});
|
|
16
16
|
|
|
17
|
+
const cvaTitle = cva({
|
|
18
|
+
base: title.base,
|
|
19
|
+
variants: title.variants,
|
|
20
|
+
compoundVariants: title.compoundVariants,
|
|
21
|
+
});
|
|
22
|
+
|
|
17
23
|
const cvaDescription = cva({
|
|
18
24
|
base: description.base,
|
|
19
25
|
variants: description.variants,
|
|
@@ -22,24 +28,33 @@ export function useAttrs(props, { isOpened }) {
|
|
|
22
28
|
|
|
23
29
|
const wrapperClasses = computed(() => cvaWrapper({ size: props.size }));
|
|
24
30
|
|
|
31
|
+
const titleClasses = computed(() =>
|
|
32
|
+
cvaTitle({
|
|
33
|
+
size: props.size,
|
|
34
|
+
}),
|
|
35
|
+
);
|
|
36
|
+
|
|
25
37
|
const descriptionClasses = computed(() =>
|
|
26
|
-
cvaDescription({
|
|
38
|
+
cvaDescription({
|
|
39
|
+
size: props.size,
|
|
40
|
+
isOpened: isOpened.value,
|
|
41
|
+
}),
|
|
27
42
|
);
|
|
28
43
|
|
|
29
44
|
const wrapperAttrs = getAttrs("wrapper", { classes: wrapperClasses });
|
|
45
|
+
const bodyAttrs = getAttrs("body");
|
|
46
|
+
const titleAttrs = getAttrs("title", { classes: titleClasses });
|
|
30
47
|
const descriptionAttrs = getAttrs("description", { classes: descriptionClasses });
|
|
31
|
-
const infoAttrs = getAttrs("info");
|
|
32
|
-
const titleAttrs = getAttrs("title");
|
|
33
48
|
const iconAttrs = getAttrs("icon", { isComponent: true });
|
|
34
|
-
const
|
|
49
|
+
const dividerAttrs = getAttrs("divider", { isComponent: true });
|
|
35
50
|
|
|
36
51
|
return {
|
|
37
52
|
config,
|
|
38
53
|
wrapperAttrs,
|
|
39
54
|
descriptionAttrs,
|
|
40
|
-
|
|
55
|
+
bodyAttrs,
|
|
41
56
|
titleAttrs,
|
|
42
57
|
iconAttrs,
|
|
43
|
-
|
|
58
|
+
dividerAttrs,
|
|
44
59
|
};
|
|
45
60
|
}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
export default /*tw*/ {
|
|
2
|
-
wrapper:
|
|
3
|
-
|
|
2
|
+
wrapper: "group cursor-pointer",
|
|
3
|
+
body: "",
|
|
4
|
+
title: {
|
|
5
|
+
base: "flex items-center justify-between font-medium text-gray-900",
|
|
4
6
|
variants: {
|
|
5
7
|
size: {
|
|
6
8
|
sm: "text-sm",
|
|
@@ -9,10 +11,8 @@ export default /*tw*/ {
|
|
|
9
11
|
},
|
|
10
12
|
},
|
|
11
13
|
},
|
|
12
|
-
info: "leading-6",
|
|
13
|
-
title: "flex items-center justify-between font-medium text-gray-800",
|
|
14
14
|
description: {
|
|
15
|
-
base: "text-gray-600
|
|
15
|
+
base: "text-gray-600 h-0 opacity-0 transition-all",
|
|
16
16
|
variants: {
|
|
17
17
|
size: {
|
|
18
18
|
sm: "text-xs",
|
|
@@ -20,14 +20,14 @@ export default /*tw*/ {
|
|
|
20
20
|
lg: "text-base",
|
|
21
21
|
},
|
|
22
22
|
isOpened: {
|
|
23
|
-
true: "h-full
|
|
23
|
+
true: "pt-2 h-full opacity-100",
|
|
24
24
|
},
|
|
25
25
|
},
|
|
26
26
|
},
|
|
27
27
|
icon: "",
|
|
28
28
|
expandIconName: "add",
|
|
29
29
|
collapseIconName: "remove",
|
|
30
|
-
|
|
30
|
+
divider: "group-last:hidden",
|
|
31
31
|
defaultVariants: {
|
|
32
32
|
size: "md",
|
|
33
33
|
},
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
import { getArgTypes } from "../service.storybook";
|
|
2
2
|
|
|
3
3
|
import UAccordion from "../ui.container-accordion";
|
|
4
|
-
import UCard from "../ui.container-card";
|
|
5
|
-
import UGroup from "../ui.container-group";
|
|
6
4
|
|
|
7
5
|
/**
|
|
8
6
|
* The `UAccordion` component. | [View on GitHub](https://github.com/vuelessjs/vueless/tree/main/src/ui.container-accordion)
|
|
@@ -17,76 +15,37 @@ export default {
|
|
|
17
15
|
};
|
|
18
16
|
|
|
19
17
|
const DefaultTemplate = (args) => ({
|
|
20
|
-
components: { UAccordion
|
|
18
|
+
components: { UAccordion },
|
|
21
19
|
setup() {
|
|
22
20
|
return { args };
|
|
23
21
|
},
|
|
24
22
|
template: `
|
|
25
|
-
<
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
});
|
|
47
|
-
|
|
48
|
-
const SizesTemplate = (args, { argTypes } = {}) => ({
|
|
49
|
-
components: { UAccordion, UCard, UGroup },
|
|
50
|
-
setup() {
|
|
51
|
-
return {
|
|
52
|
-
args,
|
|
53
|
-
sizes: argTypes.size.options,
|
|
54
|
-
};
|
|
55
|
-
},
|
|
56
|
-
template: `
|
|
57
|
-
<UGroup>
|
|
58
|
-
<UCard v-for="(sizes, index) in sizes" :padding="sizes">
|
|
59
|
-
<UAccordion
|
|
60
|
-
:size="size"
|
|
61
|
-
:name="size"
|
|
62
|
-
title="Excellence by necessity"
|
|
63
|
-
description="As creators and maintainers of the technologies you are using,
|
|
64
|
-
our services are here to showcase the full power of our softwares."
|
|
65
|
-
:key="index"
|
|
66
|
-
/>
|
|
67
|
-
<UAccordion
|
|
68
|
-
:size="size"
|
|
69
|
-
:name="size"
|
|
70
|
-
title="Unique expertise"
|
|
71
|
-
description="All the peoples that will be involved in delivering your project are contributing
|
|
72
|
-
to the technologies you are using, when they are not the creators themselves."
|
|
73
|
-
:key="index"
|
|
74
|
-
/>
|
|
75
|
-
<UAccordion
|
|
76
|
-
:size="size"
|
|
77
|
-
:name="size"
|
|
78
|
-
title="Commitment to innovation"
|
|
79
|
-
description="By working with us, you are directly supporting the open source community,
|
|
80
|
-
ensuring the ecosystem continuity and enabling Nuxt development."
|
|
81
|
-
:key="index"
|
|
82
|
-
/>
|
|
83
|
-
</UCard>
|
|
84
|
-
</UGroup>
|
|
23
|
+
<UAccordion
|
|
24
|
+
v-bind="args"
|
|
25
|
+
name="Excellence"
|
|
26
|
+
title="Excellence by necessity"
|
|
27
|
+
description="As creators and maintainers of the technologies you are using,
|
|
28
|
+
our services are here to showcase the full power of our softwares."
|
|
29
|
+
/>
|
|
30
|
+
<UAccordion
|
|
31
|
+
v-bind="args"
|
|
32
|
+
name="Unique"
|
|
33
|
+
title="Unique expertise"
|
|
34
|
+
description="All the peoples that will be involved in delivering your project are contributing
|
|
35
|
+
to the technologies you are using, when they are not the creators themselves."
|
|
36
|
+
/>
|
|
37
|
+
<UAccordion
|
|
38
|
+
v-bind="args"
|
|
39
|
+
name="Commitment"
|
|
40
|
+
title="Commitment to innovation"
|
|
41
|
+
description="By working with us, you are directly supporting the open source community,
|
|
42
|
+
ensuring the ecosystem continuity and enabling Nuxt development."
|
|
43
|
+
/>
|
|
85
44
|
`,
|
|
86
45
|
});
|
|
87
46
|
|
|
88
47
|
export const Default = DefaultTemplate.bind({});
|
|
89
48
|
Default.args = {};
|
|
90
49
|
|
|
91
|
-
export const
|
|
92
|
-
|
|
50
|
+
export const Size = DefaultTemplate.bind({});
|
|
51
|
+
Size.args = { size: "sm" };
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div :data-cy="dataCy" v-bind="wrapperAttrs" @click="onClickItem">
|
|
3
|
-
<div v-bind="
|
|
3
|
+
<div v-bind="bodyAttrs">
|
|
4
4
|
<div v-bind="titleAttrs">
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
{{ title }}
|
|
7
6
|
<UIcon
|
|
8
7
|
:name="isOpened ? config.collapseIconName : config.expandIconName"
|
|
9
8
|
:size="size"
|
|
@@ -16,14 +15,15 @@
|
|
|
16
15
|
<div :id="`description-${id}`" v-bind="descriptionAttrs" v-text="description" />
|
|
17
16
|
</div>
|
|
18
17
|
|
|
19
|
-
<
|
|
18
|
+
<UDivider :size="dividerSize" v-bind="dividerAttrs" />
|
|
20
19
|
</div>
|
|
21
20
|
</template>
|
|
22
21
|
|
|
23
22
|
<script setup>
|
|
24
|
-
import { ref } from "vue";
|
|
23
|
+
import { computed, ref } from "vue";
|
|
25
24
|
|
|
26
25
|
import UIcon from "../ui.image-icon";
|
|
26
|
+
import UDivider from "../ui.container-divider";
|
|
27
27
|
import UIService, { getRandomId } from "../service.ui";
|
|
28
28
|
|
|
29
29
|
import { UAccordion } from "./constants/index";
|
|
@@ -35,7 +35,7 @@ defineOptions({ name: "UAccordion", inheritAttrs: false });
|
|
|
35
35
|
|
|
36
36
|
const props = defineProps({
|
|
37
37
|
/**
|
|
38
|
-
*
|
|
38
|
+
* Accordion title.
|
|
39
39
|
*/
|
|
40
40
|
title: {
|
|
41
41
|
type: String,
|
|
@@ -43,7 +43,7 @@ const props = defineProps({
|
|
|
43
43
|
},
|
|
44
44
|
|
|
45
45
|
/**
|
|
46
|
-
*
|
|
46
|
+
* Accordion description.
|
|
47
47
|
*/
|
|
48
48
|
description: {
|
|
49
49
|
type: String,
|
|
@@ -51,16 +51,15 @@ const props = defineProps({
|
|
|
51
51
|
},
|
|
52
52
|
|
|
53
53
|
/**
|
|
54
|
-
*
|
|
55
|
-
* @ignore
|
|
54
|
+
* Unique block name.
|
|
56
55
|
*/
|
|
57
56
|
name: {
|
|
58
57
|
type: String,
|
|
59
|
-
|
|
58
|
+
default: "",
|
|
60
59
|
},
|
|
61
60
|
|
|
62
61
|
/**
|
|
63
|
-
*
|
|
62
|
+
* Accordion size.
|
|
64
63
|
* @values sm, md, lg
|
|
65
64
|
*/
|
|
66
65
|
size: {
|
|
@@ -78,7 +77,7 @@ const props = defineProps({
|
|
|
78
77
|
},
|
|
79
78
|
|
|
80
79
|
/**
|
|
81
|
-
*
|
|
80
|
+
* Data-cy attribute for automated testing.
|
|
82
81
|
*/
|
|
83
82
|
dataCy: {
|
|
84
83
|
type: String,
|
|
@@ -86,16 +85,26 @@ const props = defineProps({
|
|
|
86
85
|
},
|
|
87
86
|
});
|
|
88
87
|
|
|
89
|
-
const emit = defineEmits(["
|
|
88
|
+
const emit = defineEmits(["click"]);
|
|
90
89
|
|
|
91
90
|
const isOpened = ref(false);
|
|
92
91
|
|
|
93
|
-
const { config, wrapperAttrs, descriptionAttrs,
|
|
92
|
+
const { config, wrapperAttrs, descriptionAttrs, bodyAttrs, titleAttrs, iconAttrs, dividerAttrs } =
|
|
94
93
|
useAttrs(props, { isOpened });
|
|
95
94
|
|
|
95
|
+
const dividerSize = computed(() => {
|
|
96
|
+
const sizes = {
|
|
97
|
+
sm: "md",
|
|
98
|
+
md: "lg",
|
|
99
|
+
lg: "xl",
|
|
100
|
+
};
|
|
101
|
+
|
|
102
|
+
return sizes[props.size];
|
|
103
|
+
});
|
|
104
|
+
|
|
96
105
|
function onClickItem() {
|
|
97
106
|
isOpened.value = !isOpened.value;
|
|
98
107
|
|
|
99
|
-
emit("
|
|
108
|
+
emit("click", props.name);
|
|
100
109
|
}
|
|
101
110
|
</script>
|
|
@@ -43,7 +43,7 @@ export default /*tw*/ {
|
|
|
43
43
|
headerLoader: "absolute !top-auto",
|
|
44
44
|
body: "group/body divide-none",
|
|
45
45
|
bodyRow: "hover:bg-gray-50",
|
|
46
|
-
bodyRowChecked: "bg-gray-100 transition
|
|
46
|
+
bodyRowChecked: "bg-gray-100 transition",
|
|
47
47
|
bodyRowBefore: "!p-0",
|
|
48
48
|
bodyRowBeforeCell: "py-1",
|
|
49
49
|
bodyRowAfter: "!p-0",
|
|
@@ -2,7 +2,7 @@ export default /*tw*/ {
|
|
|
2
2
|
wrapper: "relative inline-block",
|
|
3
3
|
trigger: "flex items-center relative space-x-0.5",
|
|
4
4
|
link: "",
|
|
5
|
-
icon: "block transition
|
|
5
|
+
icon: "block transition duration-300",
|
|
6
6
|
iconName: "keyboard_arrow_down",
|
|
7
7
|
iconRotate: "rotate-180",
|
|
8
8
|
listWrapper: {
|
|
@@ -5,7 +5,7 @@ export default /*tw*/ {
|
|
|
5
5
|
overflow-auto [-webkit-overflow-scrolling:touch]
|
|
6
6
|
focus:outline-none
|
|
7
7
|
`,
|
|
8
|
-
list: "inline-block list-none align-top m-0 min-w-full p-0 bg-white opacity-1 hover:transition
|
|
8
|
+
list: "inline-block list-none align-top m-0 min-w-full p-0 bg-white opacity-1 hover:transition",
|
|
9
9
|
subGroupLabel: {
|
|
10
10
|
base: "pointer-events-none bg-transparent !font-medium !leading-none !uppercase !text-gray-500/[85] pt-1",
|
|
11
11
|
variants: {
|
|
@@ -20,7 +20,7 @@ export default /*tw*/ {
|
|
|
20
20
|
icon: "",
|
|
21
21
|
checkbox: {
|
|
22
22
|
base: `
|
|
23
|
-
border border-solid rounded border-gray-300 bg-white hover:transition
|
|
23
|
+
border border-solid rounded border-gray-300 bg-white hover:transition
|
|
24
24
|
hover:border-gray-400
|
|
25
25
|
focus:border-{color}-500 focus:ring-4 focus:ring-opacity-20 focus:ring-offset-0 focus:ring-{color}-500
|
|
26
26
|
active:border-{color}-500 active:bg-{color}-500
|
|
@@ -8,7 +8,7 @@ export default /*tw*/ {
|
|
|
8
8
|
passwordHiddenIconName: "visibility_off-fill",
|
|
9
9
|
block: {
|
|
10
10
|
base: `
|
|
11
|
-
rounded-lg border border-solid border-gray-300 bg-white !opacity-100 relative flex transition
|
|
11
|
+
rounded-lg border border-solid border-gray-300 bg-white !opacity-100 relative flex transition
|
|
12
12
|
hover:border-gray-400 hover:focus-within:border-brand-500
|
|
13
13
|
focus-within:border-brand-500 focus-within:ring-4 focus-within:ring-brand-600/[.15]
|
|
14
14
|
`,
|
|
@@ -31,7 +31,7 @@ export default /*tw*/ {
|
|
|
31
31
|
input: {
|
|
32
32
|
base: `
|
|
33
33
|
block w-full pb-2 px-4 font-normal leading-none text-gray-900 placeholder:font-normal placeholder-gray-400
|
|
34
|
-
transition
|
|
34
|
+
transition bg-white border-none border-gray-300 rounded-lg shadow-none
|
|
35
35
|
focus:outline-none focus:ring-0 disabled:opacity-50
|
|
36
36
|
disabled:cursor-not-allowed disabled:text-gray-900 disabled:border-gray-100
|
|
37
37
|
read-only:border-gray-300 read-only:ring-0
|
|
@@ -56,7 +56,7 @@ export default /*tw*/ {
|
|
|
56
56
|
defaultVariants: {
|
|
57
57
|
size: "md",
|
|
58
58
|
type: "text",
|
|
59
|
-
|
|
59
|
+
inputmode: "text",
|
|
60
60
|
error: false,
|
|
61
61
|
readonly: false,
|
|
62
62
|
disabled: false,
|
package/ui.form-input/index.vue
CHANGED
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
:readonly="readonly"
|
|
33
33
|
:disabled="disabled"
|
|
34
34
|
:maxlength="maxLength"
|
|
35
|
-
:inputmode="
|
|
35
|
+
:inputmode="inputmode"
|
|
36
36
|
:data-cy="dataCy"
|
|
37
37
|
v-bind="inputAttrs"
|
|
38
38
|
@focus="onFocus"
|
|
@@ -181,8 +181,8 @@ const props = defineProps({
|
|
|
181
181
|
},
|
|
182
182
|
|
|
183
183
|
/**
|
|
184
|
-
* Input type
|
|
185
|
-
* @values text, number, email,
|
|
184
|
+
* Input type
|
|
185
|
+
* @values text, number, tel, email, url, search, password
|
|
186
186
|
*/
|
|
187
187
|
type: {
|
|
188
188
|
type: String,
|
|
@@ -191,12 +191,12 @@ const props = defineProps({
|
|
|
191
191
|
},
|
|
192
192
|
|
|
193
193
|
/**
|
|
194
|
-
*
|
|
195
|
-
* @values
|
|
194
|
+
* Set proper keyboard on mobile devices.
|
|
195
|
+
* @values text, decimal, numeric, tel, email, url, search, none
|
|
196
196
|
*/
|
|
197
|
-
|
|
197
|
+
inputmode: {
|
|
198
198
|
type: String,
|
|
199
|
-
default: UIService.get(defaultConfig, UInput).default.
|
|
199
|
+
default: UIService.get(defaultConfig, UInput).default.inputmode,
|
|
200
200
|
},
|
|
201
201
|
|
|
202
202
|
/**
|
|
@@ -392,7 +392,9 @@ function setLabelPosition() {
|
|
|
392
392
|
}
|
|
393
393
|
}
|
|
394
394
|
|
|
395
|
-
labelComponent.value.labelElement
|
|
395
|
+
if (labelComponent.value.labelElement) {
|
|
396
|
+
labelComponent.value.labelElement.style.left = `${leftSlotOrIconWidth}px`;
|
|
397
|
+
}
|
|
396
398
|
}
|
|
397
399
|
</script>
|
|
398
400
|
|
|
@@ -12,7 +12,7 @@ export default /*tw*/ {
|
|
|
12
12
|
dropzoneWrapper: {
|
|
13
13
|
base: `
|
|
14
14
|
size-auto w-full rounded-lg border border-solid border-gray-300 bg-white
|
|
15
|
-
p-4 px-5 py-6 transition
|
|
15
|
+
p-4 px-5 py-6 transition hover:border-gray-400
|
|
16
16
|
`,
|
|
17
17
|
variants: {
|
|
18
18
|
error: {
|
|
@@ -8,9 +8,9 @@ export default /*tw*/ {
|
|
|
8
8
|
},
|
|
9
9
|
closeIcon: "flex h-full items-center mr-2",
|
|
10
10
|
closeIconName: "close",
|
|
11
|
-
searchIcon: "mr-
|
|
11
|
+
searchIcon: "mr-3",
|
|
12
12
|
searchIconName: "search",
|
|
13
|
-
button: "",
|
|
13
|
+
button: "rounded-l-none ml-1 !ring-0 outline outline-1 outline-gray-900",
|
|
14
14
|
defaultVariants: {
|
|
15
15
|
size: "md",
|
|
16
16
|
labelAlign: "topInside",
|
|
@@ -44,7 +44,7 @@ const SlotTemplate = (args) => ({
|
|
|
44
44
|
},
|
|
45
45
|
template: `
|
|
46
46
|
<UInputSearch v-bind="args">
|
|
47
|
-
${args.slotTemplate}
|
|
47
|
+
${args.slotTemplate || ""}
|
|
48
48
|
</UInputSearch>
|
|
49
49
|
`,
|
|
50
50
|
});
|
|
@@ -74,7 +74,7 @@ export const Default = DefaultTemplate.bind({});
|
|
|
74
74
|
Default.args = {};
|
|
75
75
|
|
|
76
76
|
export const searchButton = DefaultTemplate.bind({});
|
|
77
|
-
searchButton.args = {
|
|
77
|
+
searchButton.args = { searchButtonLabel: "Search" };
|
|
78
78
|
|
|
79
79
|
export const sizes = SizesTemplate.bind({});
|
|
80
80
|
sizes.args = {};
|
|
@@ -87,6 +87,7 @@ slotLeft.args = {
|
|
|
87
87
|
label="filter"
|
|
88
88
|
variant="thirdary"
|
|
89
89
|
filled
|
|
90
|
+
class="rounded-r-none !ring-0"
|
|
90
91
|
/>
|
|
91
92
|
</template>
|
|
92
93
|
`,
|
|
@@ -5,14 +5,13 @@
|
|
|
5
5
|
v-model="search"
|
|
6
6
|
:size="size"
|
|
7
7
|
:disabled="disabled"
|
|
8
|
-
:
|
|
8
|
+
:label-align="labelAlign"
|
|
9
9
|
:label="label"
|
|
10
10
|
:error="error"
|
|
11
|
+
:description="description"
|
|
11
12
|
:placeholder="placeholder"
|
|
12
|
-
|
|
13
|
-
:input-mode="search"
|
|
13
|
+
inputmode="search"
|
|
14
14
|
:data-cy="dataCy"
|
|
15
|
-
:label-align="labelAlign"
|
|
16
15
|
v-bind="inputAttrs"
|
|
17
16
|
@keyup.enter="onClickSearch"
|
|
18
17
|
>
|
|
@@ -25,44 +24,44 @@
|
|
|
25
24
|
<!-- @slot Use it to add something before text. -->
|
|
26
25
|
<slot name="right" />
|
|
27
26
|
|
|
28
|
-
<
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
27
|
+
<template v-if="!hasSlotContent($slots['right'])">
|
|
28
|
+
<UIcon
|
|
29
|
+
internal
|
|
30
|
+
interactive
|
|
31
|
+
color="gray"
|
|
32
|
+
:name="config.closeIconName"
|
|
33
|
+
:data-cy="`${dataCy}-close`"
|
|
34
|
+
:size="iconSize"
|
|
35
|
+
v-bind="closeIconAttrs"
|
|
36
|
+
@click="onClickClear"
|
|
37
|
+
/>
|
|
38
|
+
|
|
39
|
+
<UButton
|
|
40
|
+
v-if="searchButtonLabel"
|
|
41
|
+
:label="searchButtonLabel"
|
|
42
|
+
v-bind="buttonAttrs"
|
|
43
|
+
:data-cy="`${dataCy}-right`"
|
|
44
|
+
@click="onClickSearch"
|
|
45
|
+
/>
|
|
46
|
+
|
|
47
|
+
<UIcon
|
|
48
|
+
v-else
|
|
49
|
+
internal
|
|
50
|
+
interactive
|
|
51
|
+
:size="iconSize"
|
|
52
|
+
color="grayscale"
|
|
53
|
+
:name="config.searchIconName"
|
|
54
|
+
:data-cy="`${dataCy}-search`"
|
|
55
|
+
v-bind="searchIconAttrs"
|
|
56
|
+
@click="onClickSearch"
|
|
57
|
+
/>
|
|
58
|
+
</template>
|
|
60
59
|
</template>
|
|
61
60
|
</UInput>
|
|
62
61
|
</template>
|
|
63
62
|
|
|
64
63
|
<script setup>
|
|
65
|
-
import { computed } from "vue";
|
|
64
|
+
import { computed, ref } from "vue";
|
|
66
65
|
|
|
67
66
|
import UIcon from "../ui.image-icon";
|
|
68
67
|
import UInput from "../ui.form-input";
|
|
@@ -78,7 +77,7 @@ defineOptions({ name: "UInputSearch" });
|
|
|
78
77
|
|
|
79
78
|
const props = defineProps({
|
|
80
79
|
/**
|
|
81
|
-
*
|
|
80
|
+
* Search input value.
|
|
82
81
|
*/
|
|
83
82
|
modelValue: {
|
|
84
83
|
type: String,
|
|
@@ -86,7 +85,7 @@ const props = defineProps({
|
|
|
86
85
|
},
|
|
87
86
|
|
|
88
87
|
/**
|
|
89
|
-
*
|
|
88
|
+
* Input size.
|
|
90
89
|
* @values sm, md, lg
|
|
91
90
|
*/
|
|
92
91
|
size: {
|
|
@@ -95,38 +94,30 @@ const props = defineProps({
|
|
|
95
94
|
},
|
|
96
95
|
|
|
97
96
|
/**
|
|
98
|
-
*
|
|
99
|
-
* @ignore
|
|
97
|
+
* Input placeholder.
|
|
100
98
|
*/
|
|
101
|
-
|
|
99
|
+
placeholder: {
|
|
102
100
|
type: String,
|
|
103
|
-
default:
|
|
101
|
+
default: "",
|
|
104
102
|
},
|
|
105
103
|
|
|
106
104
|
/**
|
|
107
|
-
*
|
|
105
|
+
* Label placement.
|
|
106
|
+
* @values top, topInside, topWithDesc, bottom, left, right
|
|
108
107
|
*/
|
|
109
|
-
|
|
110
|
-
type:
|
|
111
|
-
default: UIService.get(defaultConfig, UInputSearch).default.
|
|
108
|
+
labelAlign: {
|
|
109
|
+
type: String,
|
|
110
|
+
default: UIService.get(defaultConfig, UInputSearch).default.labelAlign,
|
|
112
111
|
},
|
|
113
112
|
|
|
114
113
|
/**
|
|
115
|
-
*
|
|
114
|
+
* Input label.
|
|
116
115
|
*/
|
|
117
|
-
|
|
116
|
+
label: {
|
|
118
117
|
type: String,
|
|
119
118
|
default: "",
|
|
120
119
|
},
|
|
121
120
|
|
|
122
|
-
/**
|
|
123
|
-
* Show / hide search button.
|
|
124
|
-
*/
|
|
125
|
-
searchButton: {
|
|
126
|
-
type: Boolean,
|
|
127
|
-
default: UIService.get(defaultConfig, UInputSearch).default.searchButton,
|
|
128
|
-
},
|
|
129
|
-
|
|
130
121
|
/**
|
|
131
122
|
* Input description.
|
|
132
123
|
*/
|
|
@@ -136,40 +127,40 @@ const props = defineProps({
|
|
|
136
127
|
},
|
|
137
128
|
|
|
138
129
|
/**
|
|
139
|
-
*
|
|
140
|
-
* @values top, topInside, topWithDesc, bottom, left, right
|
|
130
|
+
* Error message.
|
|
141
131
|
*/
|
|
142
|
-
|
|
132
|
+
error: {
|
|
143
133
|
type: String,
|
|
144
|
-
default:
|
|
134
|
+
default: "",
|
|
145
135
|
},
|
|
146
136
|
|
|
147
137
|
/**
|
|
148
|
-
*
|
|
138
|
+
* Search button label.
|
|
149
139
|
*/
|
|
150
|
-
|
|
140
|
+
searchButtonLabel: {
|
|
151
141
|
type: String,
|
|
152
142
|
default: "",
|
|
153
143
|
},
|
|
154
144
|
|
|
155
145
|
/**
|
|
156
|
-
*
|
|
146
|
+
* Set input disabled.
|
|
157
147
|
*/
|
|
158
|
-
|
|
159
|
-
type:
|
|
160
|
-
default:
|
|
148
|
+
disabled: {
|
|
149
|
+
type: Boolean,
|
|
150
|
+
default: UIService.get(defaultConfig, UInputSearch).default.disabled,
|
|
161
151
|
},
|
|
162
152
|
|
|
163
153
|
/**
|
|
164
|
-
*
|
|
154
|
+
* Unique element id.
|
|
155
|
+
* @ignore
|
|
165
156
|
*/
|
|
166
|
-
|
|
157
|
+
id: {
|
|
167
158
|
type: String,
|
|
168
|
-
default:
|
|
159
|
+
default: () => getRandomId(),
|
|
169
160
|
},
|
|
170
161
|
|
|
171
162
|
/**
|
|
172
|
-
*
|
|
163
|
+
* Component ui config object.
|
|
173
164
|
*/
|
|
174
165
|
config: {
|
|
175
166
|
type: Object,
|
|
@@ -177,7 +168,7 @@ const props = defineProps({
|
|
|
177
168
|
},
|
|
178
169
|
|
|
179
170
|
/**
|
|
180
|
-
*
|
|
171
|
+
* Data-cy attribute for automated testing.
|
|
181
172
|
*/
|
|
182
173
|
dataCy: {
|
|
183
174
|
type: String,
|
|
@@ -187,12 +178,17 @@ const props = defineProps({
|
|
|
187
178
|
|
|
188
179
|
const emit = defineEmits(["update:modelValue", "clear", "search"]);
|
|
189
180
|
|
|
181
|
+
const localValue = ref("");
|
|
182
|
+
|
|
190
183
|
const { config, inputAttrs, searchIconAttrs, closeIconAttrs, buttonAttrs, hasSlotContent } =
|
|
191
184
|
useAttrs(props);
|
|
192
185
|
|
|
193
186
|
const search = computed({
|
|
194
187
|
get: () => props.modelValue,
|
|
195
|
-
set: (value) =>
|
|
188
|
+
set: (value) => {
|
|
189
|
+
localValue.value = value;
|
|
190
|
+
emit("update:modelValue", value);
|
|
191
|
+
},
|
|
196
192
|
});
|
|
197
193
|
|
|
198
194
|
const iconSize = computed(() => {
|
|
@@ -211,7 +207,7 @@ function onClickClear() {
|
|
|
211
207
|
}
|
|
212
208
|
|
|
213
209
|
function onClickSearch() {
|
|
214
|
-
if (!
|
|
215
|
-
emit("search",
|
|
210
|
+
if (!localValue.value) return;
|
|
211
|
+
emit("search", localValue.value);
|
|
216
212
|
}
|
|
217
213
|
</script>
|
|
@@ -4,7 +4,7 @@ export default /*tw*/ {
|
|
|
4
4
|
base: `
|
|
5
5
|
pb-2 pt-2 flex flex-row-reverse justify-between w-full min-h-full box-border relative
|
|
6
6
|
rounded-lg border border-gray-300 bg-white
|
|
7
|
-
hover:border-gray-400 hover:transition
|
|
7
|
+
hover:border-gray-400 hover:transition hover:focus-within:border-brand-500
|
|
8
8
|
focus-within:border-brand-500 focus-within:ring-4 focus-within:ring-brand-600/[.15] focus-within:outline-none
|
|
9
9
|
`,
|
|
10
10
|
variants: {
|
|
@@ -55,7 +55,7 @@ export default /*tw*/ {
|
|
|
55
55
|
beforeCaretSlot: "",
|
|
56
56
|
afterCaretSlot: "mr-3",
|
|
57
57
|
caretToggle: "mr-3",
|
|
58
|
-
toggleIcon: "transform transition
|
|
58
|
+
toggleIcon: "transform transition duration-300 group-[]/active:rotate-180",
|
|
59
59
|
toggleIconName: "expand_more",
|
|
60
60
|
clearIcon: "",
|
|
61
61
|
clearIconName: "close_small",
|
|
@@ -63,7 +63,7 @@ export default /*tw*/ {
|
|
|
63
63
|
removeItemIconName: "close_small",
|
|
64
64
|
caretRemoveItem: "flex items-center",
|
|
65
65
|
caretClearText: {
|
|
66
|
-
base: "cursor-pointer flex items-center text-sm font-normal text-gray-400 hover:text-gray-500 transition
|
|
66
|
+
base: "cursor-pointer flex items-center text-sm font-normal text-gray-400 hover:text-gray-500 transition",
|
|
67
67
|
compoundVariants: [
|
|
68
68
|
{ size: "sm", class: "text-sm" },
|
|
69
69
|
{ size: "md", class: "text-base" },
|
|
@@ -2,7 +2,7 @@ export default /*tw*/ {
|
|
|
2
2
|
label: "flex items-start",
|
|
3
3
|
wrapper: {
|
|
4
4
|
base: `
|
|
5
|
-
transition
|
|
5
|
+
transition duration-300
|
|
6
6
|
flex items-center p-0.5 relative rounded-3xl cursor-pointer
|
|
7
7
|
ring-opacity-10 focus-within:ring-4
|
|
8
8
|
`,
|
|
@@ -28,7 +28,7 @@ export default /*tw*/ {
|
|
|
28
28
|
},
|
|
29
29
|
input: "absolute size-0 opacity-0",
|
|
30
30
|
circle: {
|
|
31
|
-
base: "transition
|
|
31
|
+
base: "transition duration-300 rounded-full bg-white flex items-center justify-center",
|
|
32
32
|
variants: {
|
|
33
33
|
size: {
|
|
34
34
|
sm: "size-4",
|
|
@@ -46,7 +46,7 @@ export default /*tw*/ {
|
|
|
46
46
|
selectedIconName: "check",
|
|
47
47
|
unselectedIconName: "close",
|
|
48
48
|
toggleLabel: {
|
|
49
|
-
base: "absolute text-center text-2xs font-medium uppercase text-white transition
|
|
49
|
+
base: "absolute text-center text-2xs font-medium uppercase text-white transition duration-300",
|
|
50
50
|
compoundVariants: [
|
|
51
51
|
{ toggleLabel: true, checked: true, class: "w-1/2 left-1" },
|
|
52
52
|
{ toggleLabel: true, checked: false, class: "w-1/2 right-1" },
|
|
@@ -4,7 +4,7 @@ export default /*tw*/ {
|
|
|
4
4
|
rightSlot: "flex items-center justify-center h-full w-11 absolute right-0",
|
|
5
5
|
textareaWrapper: {
|
|
6
6
|
base: `
|
|
7
|
-
transition
|
|
7
|
+
transition focus-within:outline-none
|
|
8
8
|
rounded-lg border border-solid border-gray-300 ring-0 cursor-text bg-white pr-4
|
|
9
9
|
hover:border-gray-400 pl-4 hover:focus-within:border-gray-500
|
|
10
10
|
focus-within:border-gray-500 focus-within:ring-4 focus-within:ring-gray-600/[.15]
|
|
@@ -53,7 +53,7 @@ export default /*tw*/ {
|
|
|
53
53
|
defaultVariants: {
|
|
54
54
|
size: "md",
|
|
55
55
|
type: "text",
|
|
56
|
-
|
|
56
|
+
inputmode: "text",
|
|
57
57
|
rows: "2",
|
|
58
58
|
labelAlign: "topInside",
|
|
59
59
|
error: false,
|
|
@@ -27,11 +27,10 @@
|
|
|
27
27
|
v-model="localValue"
|
|
28
28
|
:value="modelValue"
|
|
29
29
|
:placeholder="placeholder"
|
|
30
|
-
:type="type"
|
|
31
30
|
:readonly="readonly"
|
|
32
31
|
:disabled="disabled"
|
|
33
32
|
:rows="rows"
|
|
34
|
-
:inputmode="
|
|
33
|
+
:inputmode="inputmode"
|
|
35
34
|
:data-cy="dataCy"
|
|
36
35
|
v-bind="textareaAttrs"
|
|
37
36
|
@focus="onFocus"
|
|
@@ -129,22 +128,13 @@ const props = defineProps({
|
|
|
129
128
|
default: UIService.get(defaultConfig, UTextarea).default.disabled,
|
|
130
129
|
},
|
|
131
130
|
|
|
132
|
-
/**
|
|
133
|
-
* Set input type.
|
|
134
|
-
* @values text, number, email, tel, password, url
|
|
135
|
-
*/
|
|
136
|
-
type: {
|
|
137
|
-
type: String,
|
|
138
|
-
default: UIService.get(defaultConfig, UTextarea).default.type,
|
|
139
|
-
},
|
|
140
|
-
|
|
141
131
|
/**
|
|
142
132
|
* Set proper keyboard on mobile devices.
|
|
143
|
-
* @values text,
|
|
133
|
+
* @values text, decimal, numeric, tel, email, url, search, none
|
|
144
134
|
*/
|
|
145
|
-
|
|
135
|
+
inputmode: {
|
|
146
136
|
type: String,
|
|
147
|
-
default: UIService.get(defaultConfig, UTextarea).default.
|
|
137
|
+
default: UIService.get(defaultConfig, UTextarea).default.inputmode,
|
|
148
138
|
},
|
|
149
139
|
|
|
150
140
|
/**
|
|
@@ -273,7 +263,10 @@ function setLabelPosition() {
|
|
|
273
263
|
|
|
274
264
|
const leftSlotWidth = leftSlotWrapper.value.getBoundingClientRect().width;
|
|
275
265
|
|
|
276
|
-
labelComponent.value.labelElement
|
|
266
|
+
if (labelComponent.value.labelElement) {
|
|
267
|
+
labelComponent.value.labelElement.style.left = `${leftSlotWidth}px`;
|
|
268
|
+
}
|
|
269
|
+
|
|
277
270
|
textareaWrapper.value.style.paddingLeft = `${leftSlotWidth}px`;
|
|
278
271
|
}
|
|
279
272
|
|
|
@@ -8,7 +8,7 @@ export default /*tw*/ {
|
|
|
8
8
|
[&::-webkit-progress-bar]:w-full [&::-webkit-progress-bar]:rounded-full
|
|
9
9
|
[&::-webkit-progress-bar]:bg-gray-100 [@supports(selector(&::-moz-progress-bar))]:bg-gray-100
|
|
10
10
|
[&::-webkit-progress-value]:rounded-full [&::-moz-progress-bar]:rounded-full
|
|
11
|
-
[&::-webkit-progress-value]:transition
|
|
11
|
+
[&::-webkit-progress-value]:transition [&::-moz-progress-bar]:transition
|
|
12
12
|
[&::-webkit-progress-value]:bg-current [&::-moz-progress-bar]:bg-current
|
|
13
13
|
`,
|
|
14
14
|
variants: {
|
|
@@ -28,7 +28,7 @@ export default /*tw*/ {
|
|
|
28
28
|
},
|
|
29
29
|
},
|
|
30
30
|
indicator: {
|
|
31
|
-
base: "text-{color}-500 flex justify-end w-full min-w-fit font-medium transition
|
|
31
|
+
base: "text-{color}-500 flex justify-end w-full min-w-fit font-medium transition",
|
|
32
32
|
variants: {
|
|
33
33
|
color: {
|
|
34
34
|
white: "text-gray-200",
|
|
@@ -46,7 +46,7 @@ export default /*tw*/ {
|
|
|
46
46
|
},
|
|
47
47
|
firstStep: "text-gray-500",
|
|
48
48
|
step: {
|
|
49
|
-
base: "text-{color}-500 flex justify-end w-full transition
|
|
49
|
+
base: "text-{color}-500 flex justify-end w-full transition",
|
|
50
50
|
variants: {
|
|
51
51
|
color: {
|
|
52
52
|
white: "text-gray-200",
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
export default /*tw*/ {
|
|
2
2
|
wrapper: "absolute overflow-visible md:w-[22rem]",
|
|
3
3
|
transitionGroup: {
|
|
4
|
-
moveClass: "transition
|
|
5
|
-
enterActiveClass: "transition
|
|
6
|
-
leaveActiveClass: "transition
|
|
4
|
+
moveClass: "transition duration-500",
|
|
5
|
+
enterActiveClass: "transition duration-500",
|
|
6
|
+
leaveActiveClass: "transition duration-500 absolute",
|
|
7
7
|
enterFromClass: "opacity-0",
|
|
8
8
|
leaveToClass: "opacity-0",
|
|
9
9
|
},
|
package/web-types.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"framework": "vue",
|
|
3
3
|
"name": "vueless",
|
|
4
|
-
"version": "0.0.
|
|
4
|
+
"version": "0.0.188",
|
|
5
5
|
"contributions": {
|
|
6
6
|
"html": {
|
|
7
7
|
"description-markup": "markdown",
|
|
@@ -275,7 +275,7 @@
|
|
|
275
275
|
{
|
|
276
276
|
"name": "title",
|
|
277
277
|
"required": true,
|
|
278
|
-
"description": "
|
|
278
|
+
"description": "Accordion title.",
|
|
279
279
|
"value": {
|
|
280
280
|
"kind": "expression",
|
|
281
281
|
"type": "string"
|
|
@@ -284,7 +284,7 @@
|
|
|
284
284
|
{
|
|
285
285
|
"name": "description",
|
|
286
286
|
"required": true,
|
|
287
|
-
"description": "
|
|
287
|
+
"description": "Accordion description.",
|
|
288
288
|
"value": {
|
|
289
289
|
"kind": "expression",
|
|
290
290
|
"type": "string"
|
|
@@ -292,16 +292,16 @@
|
|
|
292
292
|
},
|
|
293
293
|
{
|
|
294
294
|
"name": "name",
|
|
295
|
-
"
|
|
296
|
-
"description": "@ignore: Set unique block name.",
|
|
295
|
+
"description": "Unique block name.",
|
|
297
296
|
"value": {
|
|
298
297
|
"kind": "expression",
|
|
299
298
|
"type": "string"
|
|
300
|
-
}
|
|
299
|
+
},
|
|
300
|
+
"default": "\"\""
|
|
301
301
|
},
|
|
302
302
|
{
|
|
303
303
|
"name": "size",
|
|
304
|
-
"description": "
|
|
304
|
+
"description": "Accordion size.",
|
|
305
305
|
"value": {
|
|
306
306
|
"kind": "expression",
|
|
307
307
|
"type": "'sm' | 'md' | 'lg'"
|
|
@@ -319,7 +319,7 @@
|
|
|
319
319
|
},
|
|
320
320
|
{
|
|
321
321
|
"name": "dataCy",
|
|
322
|
-
"description": "
|
|
322
|
+
"description": "Data-cy attribute for automated testing.",
|
|
323
323
|
"value": {
|
|
324
324
|
"kind": "expression",
|
|
325
325
|
"type": "string"
|
|
@@ -329,7 +329,7 @@
|
|
|
329
329
|
],
|
|
330
330
|
"events": [
|
|
331
331
|
{
|
|
332
|
-
"name": "
|
|
332
|
+
"name": "click"
|
|
333
333
|
}
|
|
334
334
|
],
|
|
335
335
|
"source": {
|
|
@@ -3572,19 +3572,19 @@
|
|
|
3572
3572
|
},
|
|
3573
3573
|
{
|
|
3574
3574
|
"name": "type",
|
|
3575
|
-
"description": "Input type
|
|
3575
|
+
"description": "Input type",
|
|
3576
3576
|
"value": {
|
|
3577
3577
|
"kind": "expression",
|
|
3578
|
-
"type": "'text' | 'number' | 'email' | '
|
|
3578
|
+
"type": "'text' | 'number' | 'tel' | 'email' | 'url' | 'search' | 'password'"
|
|
3579
3579
|
},
|
|
3580
3580
|
"default": "text"
|
|
3581
3581
|
},
|
|
3582
3582
|
{
|
|
3583
|
-
"name": "
|
|
3584
|
-
"description": "
|
|
3583
|
+
"name": "inputmode",
|
|
3584
|
+
"description": "Set proper keyboard on mobile devices.",
|
|
3585
3585
|
"value": {
|
|
3586
3586
|
"kind": "expression",
|
|
3587
|
-
"type": "'
|
|
3587
|
+
"type": "'text' | 'decimal' | 'numeric' | 'tel' | 'email' | 'url' | 'search' | 'none'"
|
|
3588
3588
|
},
|
|
3589
3589
|
"default": "text"
|
|
3590
3590
|
},
|
|
@@ -4256,7 +4256,7 @@
|
|
|
4256
4256
|
"attributes": [
|
|
4257
4257
|
{
|
|
4258
4258
|
"name": "modelValue",
|
|
4259
|
-
"description": "
|
|
4259
|
+
"description": "Search input value.",
|
|
4260
4260
|
"value": {
|
|
4261
4261
|
"kind": "expression",
|
|
4262
4262
|
"type": "string"
|
|
@@ -4265,7 +4265,7 @@
|
|
|
4265
4265
|
},
|
|
4266
4266
|
{
|
|
4267
4267
|
"name": "size",
|
|
4268
|
-
"description": "
|
|
4268
|
+
"description": "Input size.",
|
|
4269
4269
|
"value": {
|
|
4270
4270
|
"kind": "expression",
|
|
4271
4271
|
"type": "'sm' | 'md' | 'lg'"
|
|
@@ -4273,41 +4273,32 @@
|
|
|
4273
4273
|
"default": "md"
|
|
4274
4274
|
},
|
|
4275
4275
|
{
|
|
4276
|
-
"name": "
|
|
4277
|
-
"description": "
|
|
4276
|
+
"name": "placeholder",
|
|
4277
|
+
"description": "Input placeholder.",
|
|
4278
4278
|
"value": {
|
|
4279
4279
|
"kind": "expression",
|
|
4280
4280
|
"type": "string"
|
|
4281
4281
|
},
|
|
4282
|
-
"default": "
|
|
4282
|
+
"default": "\"\""
|
|
4283
4283
|
},
|
|
4284
4284
|
{
|
|
4285
|
-
"name": "
|
|
4286
|
-
"description": "
|
|
4285
|
+
"name": "labelAlign",
|
|
4286
|
+
"description": "Label placement.",
|
|
4287
4287
|
"value": {
|
|
4288
4288
|
"kind": "expression",
|
|
4289
|
-
"type": "
|
|
4289
|
+
"type": "'top' | 'topInside' | 'topWithDesc' | 'bottom' | 'left' | 'right'"
|
|
4290
4290
|
},
|
|
4291
|
-
"default": "
|
|
4291
|
+
"default": "topInside"
|
|
4292
4292
|
},
|
|
4293
4293
|
{
|
|
4294
|
-
"name": "
|
|
4295
|
-
"description": "
|
|
4294
|
+
"name": "label",
|
|
4295
|
+
"description": "Input label.",
|
|
4296
4296
|
"value": {
|
|
4297
4297
|
"kind": "expression",
|
|
4298
4298
|
"type": "string"
|
|
4299
4299
|
},
|
|
4300
4300
|
"default": "\"\""
|
|
4301
4301
|
},
|
|
4302
|
-
{
|
|
4303
|
-
"name": "searchButton",
|
|
4304
|
-
"description": "Show / hide search button.",
|
|
4305
|
-
"value": {
|
|
4306
|
-
"kind": "expression",
|
|
4307
|
-
"type": "boolean"
|
|
4308
|
-
},
|
|
4309
|
-
"default": "false"
|
|
4310
|
-
},
|
|
4311
4302
|
{
|
|
4312
4303
|
"name": "description",
|
|
4313
4304
|
"description": "Input description.",
|
|
@@ -4318,17 +4309,17 @@
|
|
|
4318
4309
|
"default": "\"\""
|
|
4319
4310
|
},
|
|
4320
4311
|
{
|
|
4321
|
-
"name": "
|
|
4322
|
-
"description": "
|
|
4312
|
+
"name": "error",
|
|
4313
|
+
"description": "Error message.",
|
|
4323
4314
|
"value": {
|
|
4324
4315
|
"kind": "expression",
|
|
4325
|
-
"type": "
|
|
4316
|
+
"type": "string"
|
|
4326
4317
|
},
|
|
4327
|
-
"default": "
|
|
4318
|
+
"default": "\"\""
|
|
4328
4319
|
},
|
|
4329
4320
|
{
|
|
4330
|
-
"name": "
|
|
4331
|
-
"description": "
|
|
4321
|
+
"name": "searchButtonLabel",
|
|
4322
|
+
"description": "Search button label.",
|
|
4332
4323
|
"value": {
|
|
4333
4324
|
"kind": "expression",
|
|
4334
4325
|
"type": "string"
|
|
@@ -4336,26 +4327,26 @@
|
|
|
4336
4327
|
"default": "\"\""
|
|
4337
4328
|
},
|
|
4338
4329
|
{
|
|
4339
|
-
"name": "
|
|
4340
|
-
"description": "
|
|
4330
|
+
"name": "disabled",
|
|
4331
|
+
"description": "Set input disabled.",
|
|
4341
4332
|
"value": {
|
|
4342
4333
|
"kind": "expression",
|
|
4343
|
-
"type": "
|
|
4334
|
+
"type": "boolean"
|
|
4344
4335
|
},
|
|
4345
|
-
"default": "
|
|
4336
|
+
"default": "false"
|
|
4346
4337
|
},
|
|
4347
4338
|
{
|
|
4348
|
-
"name": "
|
|
4349
|
-
"description": "
|
|
4339
|
+
"name": "id",
|
|
4340
|
+
"description": "@ignore: Unique element id.",
|
|
4350
4341
|
"value": {
|
|
4351
4342
|
"kind": "expression",
|
|
4352
4343
|
"type": "string"
|
|
4353
4344
|
},
|
|
4354
|
-
"default": "
|
|
4345
|
+
"default": "() => getRandomId()"
|
|
4355
4346
|
},
|
|
4356
4347
|
{
|
|
4357
4348
|
"name": "config",
|
|
4358
|
-
"description": "
|
|
4349
|
+
"description": "Component ui config object.",
|
|
4359
4350
|
"value": {
|
|
4360
4351
|
"kind": "expression",
|
|
4361
4352
|
"type": "object"
|
|
@@ -4364,7 +4355,7 @@
|
|
|
4364
4355
|
},
|
|
4365
4356
|
{
|
|
4366
4357
|
"name": "dataCy",
|
|
4367
|
-
"description": "
|
|
4358
|
+
"description": "Data-cy attribute for automated testing.",
|
|
4368
4359
|
"value": {
|
|
4369
4360
|
"kind": "expression",
|
|
4370
4361
|
"type": "string"
|
|
@@ -6988,20 +6979,11 @@
|
|
|
6988
6979
|
"default": "false"
|
|
6989
6980
|
},
|
|
6990
6981
|
{
|
|
6991
|
-
"name": "
|
|
6992
|
-
"description": "Set input type.",
|
|
6993
|
-
"value": {
|
|
6994
|
-
"kind": "expression",
|
|
6995
|
-
"type": "'text' | 'number' | 'email' | 'tel' | 'password' | 'url'"
|
|
6996
|
-
},
|
|
6997
|
-
"default": "text"
|
|
6998
|
-
},
|
|
6999
|
-
{
|
|
7000
|
-
"name": "inputMode",
|
|
6982
|
+
"name": "inputmode",
|
|
7001
6983
|
"description": "Set proper keyboard on mobile devices.",
|
|
7002
6984
|
"value": {
|
|
7003
6985
|
"kind": "expression",
|
|
7004
|
-
"type": "'text' | '
|
|
6986
|
+
"type": "'text' | 'decimal' | 'numeric' | 'tel' | 'email' | 'url' | 'search' | 'none'"
|
|
7005
6987
|
},
|
|
7006
6988
|
"default": "text"
|
|
7007
6989
|
},
|