@youcan/celeste 0.6.93 → 0.6.95
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/celeste.css +29 -23
- package/dist/cjs/combobox-input.js +5 -4
- package/dist/cjs/combobox-list.js +1 -1
- package/dist/cjs/combobox.js +8 -3
- package/dist/components/combobox/combobox-input.d.ts +1 -0
- package/dist/components/combobox/combobox.d.ts +1 -0
- package/dist/es/combobox-input.js +5 -4
- package/dist/es/combobox-list.js +1 -1
- package/dist/es/combobox.js +8 -3
- package/package.json +3 -3
- package/src/components/combobox/combobox-input.vue +3 -2
- package/src/components/combobox/combobox-list.vue +1 -1
- package/src/components/combobox/combobox.vue +12 -3
- package/src/components/combobox/stories/combobox.stories.ts +1 -0
package/dist/celeste.css
CHANGED
|
@@ -2704,13 +2704,13 @@ to {
|
|
|
2704
2704
|
.celeste-dropdown-items-group[data-v-66b5c9e4] [data-radix-vue-combobox-item] {
|
|
2705
2705
|
width: auto;
|
|
2706
2706
|
height: auto;
|
|
2707
|
-
}.celeste-dropdown-input[data-v-
|
|
2707
|
+
}.celeste-dropdown-input[data-v-32b6a3f8] {
|
|
2708
2708
|
display: flex;
|
|
2709
2709
|
align-items: center;
|
|
2710
2710
|
gap: var(--spacing-4);
|
|
2711
2711
|
background-color: var(--color-bg-white-0);
|
|
2712
2712
|
}
|
|
2713
|
-
.celeste-dropdown-input[data-v-
|
|
2713
|
+
.celeste-dropdown-input[data-v-32b6a3f8] .celeste-text-input-wrapper {
|
|
2714
2714
|
width: 100%;
|
|
2715
2715
|
border: none;
|
|
2716
2716
|
border-radius: var(--radius-8) var(--radius-8) 0 0;
|
|
@@ -2796,11 +2796,11 @@ to {
|
|
|
2796
2796
|
}
|
|
2797
2797
|
.celeste-dropdown-item .celeste-dropdown-item-header-lg .celeste-dropdown-item-label[data-v-3c2bd0ae] {
|
|
2798
2798
|
font-weight: var(--font-weights-display-0);
|
|
2799
|
-
}.celeste-dropdown-content[data-v-
|
|
2800
|
-
div[data-v-
|
|
2801
|
-
--dropdown-width: var(--radix-popper-anchor-width);
|
|
2799
|
+
}.celeste-dropdown-content[data-v-38838139],
|
|
2800
|
+
div[data-v-38838139] .celeste-dropdown-content {
|
|
2802
2801
|
--dropdown-height: 300px;
|
|
2803
2802
|
--dropdown-min-width: var(--radix-combobox-trigger-width, 300px);
|
|
2803
|
+
--dropdown-width: max(var(--radix-popper-anchor-width), 300px);
|
|
2804
2804
|
display: flex;
|
|
2805
2805
|
z-index: 50;
|
|
2806
2806
|
box-sizing: border-box;
|
|
@@ -2820,20 +2820,20 @@ div[data-v-ac4c9fe6] .celeste-dropdown-content {
|
|
|
2820
2820
|
box-shadow: var(--shadow-regular-md);
|
|
2821
2821
|
gap: var(--spacing-4);
|
|
2822
2822
|
}
|
|
2823
|
-
.celeste-dropdown-content[data-state=open][data-v-
|
|
2824
|
-
div[data-v-
|
|
2825
|
-
animation-name: slide-up-and-fade-
|
|
2823
|
+
.celeste-dropdown-content[data-state=open][data-v-38838139],
|
|
2824
|
+
div[data-v-38838139] .celeste-dropdown-content[data-state=open] {
|
|
2825
|
+
animation-name: slide-up-and-fade-38838139;
|
|
2826
2826
|
}
|
|
2827
|
-
.celeste-dropdown-content[data-state=closed][data-v-
|
|
2828
|
-
div[data-v-
|
|
2829
|
-
animation-name: slide-down-and-fade-
|
|
2827
|
+
.celeste-dropdown-content[data-state=closed][data-v-38838139],
|
|
2828
|
+
div[data-v-38838139] .celeste-dropdown-content[data-state=closed] {
|
|
2829
|
+
animation-name: slide-down-and-fade-38838139;
|
|
2830
2830
|
}
|
|
2831
|
-
div[data-v-
|
|
2831
|
+
div[data-v-38838139] .celeste-dropdown-items-viewport {
|
|
2832
2832
|
display: flex;
|
|
2833
2833
|
flex-direction: column;
|
|
2834
2834
|
gap: var(--spacing-4);
|
|
2835
2835
|
}
|
|
2836
|
-
@keyframes slide-up-and-fade-
|
|
2836
|
+
@keyframes slide-up-and-fade-38838139 {
|
|
2837
2837
|
from {
|
|
2838
2838
|
transform: translateY(10px);
|
|
2839
2839
|
opacity: 0;
|
|
@@ -2843,7 +2843,7 @@ to {
|
|
|
2843
2843
|
opacity: 1;
|
|
2844
2844
|
}
|
|
2845
2845
|
}
|
|
2846
|
-
@keyframes slide-down-and-fade-
|
|
2846
|
+
@keyframes slide-down-and-fade-38838139 {
|
|
2847
2847
|
from {
|
|
2848
2848
|
transform: translateY(0);
|
|
2849
2849
|
opacity: 1;
|
|
@@ -3012,21 +3012,21 @@ to {
|
|
|
3012
3012
|
height: 40px;
|
|
3013
3013
|
padding: var(--spacing-10);
|
|
3014
3014
|
border-radius: var(--radius-10);
|
|
3015
|
-
}[data-v-
|
|
3015
|
+
}[data-v-7baed4e9] {
|
|
3016
3016
|
box-sizing: border-box;
|
|
3017
3017
|
}
|
|
3018
|
-
.celeste-dropdown-anchor-trigger-prefix[data-v-
|
|
3018
|
+
.celeste-dropdown-anchor-trigger-prefix[data-v-7baed4e9] {
|
|
3019
3019
|
display: flex;
|
|
3020
3020
|
align-items: center;
|
|
3021
3021
|
justify-content: center;
|
|
3022
3022
|
}
|
|
3023
|
-
.celeste-dropdown-anchor-trigger-prefix-selected[data-v-
|
|
3023
|
+
.celeste-dropdown-anchor-trigger-prefix-selected[data-v-7baed4e9] {
|
|
3024
3024
|
display: flex;
|
|
3025
3025
|
align-items: center;
|
|
3026
3026
|
justify-content: center;
|
|
3027
3027
|
}
|
|
3028
|
-
.celeste-dropdown-item-image[data-v-
|
|
3029
|
-
.selected-dropdown-image[data-v-
|
|
3028
|
+
.celeste-dropdown-item-image[data-v-7baed4e9],
|
|
3029
|
+
.selected-dropdown-image[data-v-7baed4e9] {
|
|
3030
3030
|
display: flex;
|
|
3031
3031
|
align-items: center;
|
|
3032
3032
|
justify-content: center;
|
|
@@ -3036,18 +3036,24 @@ to {
|
|
|
3036
3036
|
object-fit: cover;
|
|
3037
3037
|
border-radius: var(--radius-full);
|
|
3038
3038
|
}
|
|
3039
|
-
.celeste-dropdown-
|
|
3039
|
+
.celeste-dropdown-trigger-label[data-v-7baed4e9] {
|
|
3040
3040
|
display: flex;
|
|
3041
3041
|
flex: 1 0 0;
|
|
3042
3042
|
align-items: center;
|
|
3043
3043
|
justify-content: space-between;
|
|
3044
|
+
width: 0;
|
|
3044
3045
|
background: inherit;
|
|
3045
3046
|
color: var(--color-text-sub-600);
|
|
3046
3047
|
font: var(--paragraph-sm);
|
|
3047
3048
|
cursor: pointer;
|
|
3048
3049
|
gap: var(--spacing-8);
|
|
3049
3050
|
}
|
|
3050
|
-
.celeste-dropdown-trigger[data-v-
|
|
3051
|
+
.celeste-dropdown-trigger-label span[data-v-7baed4e9] {
|
|
3052
|
+
overflow: hidden;
|
|
3053
|
+
text-overflow: ellipsis;
|
|
3054
|
+
white-space: nowrap;
|
|
3055
|
+
}
|
|
3056
|
+
.celeste-dropdown-trigger[data-v-7baed4e9] {
|
|
3051
3057
|
display: flex;
|
|
3052
3058
|
place-items: center center;
|
|
3053
3059
|
transition-property: transform;
|
|
@@ -3058,7 +3064,7 @@ to {
|
|
|
3058
3064
|
color: var(--color-icon-soft-400);
|
|
3059
3065
|
cursor: pointer;
|
|
3060
3066
|
}
|
|
3061
|
-
.celeste-dropdown-inner-input[data-v-
|
|
3067
|
+
.celeste-dropdown-inner-input[data-v-7baed4e9] {
|
|
3062
3068
|
display: flex;
|
|
3063
3069
|
position: sticky;
|
|
3064
3070
|
z-index: 50;
|
|
@@ -3067,7 +3073,7 @@ to {
|
|
|
3067
3073
|
gap: var(--spacing-4);
|
|
3068
3074
|
background-color: var(--color-bg-white-0);
|
|
3069
3075
|
}
|
|
3070
|
-
.celeste-dropdown-inner-input.sr-only[data-v-
|
|
3076
|
+
.celeste-dropdown-inner-input.sr-only[data-v-7baed4e9] {
|
|
3071
3077
|
position: absolute;
|
|
3072
3078
|
width: 1px;
|
|
3073
3079
|
height: 1px;
|
|
@@ -15,7 +15,8 @@ const _sfc_main = /* @__PURE__ */ No.defineComponent({
|
|
|
15
15
|
as: {},
|
|
16
16
|
class: {},
|
|
17
17
|
textInputProps: {},
|
|
18
|
-
searchable: { type: Boolean }
|
|
18
|
+
searchable: { type: Boolean },
|
|
19
|
+
placeholder: {}
|
|
19
20
|
}, {
|
|
20
21
|
"modelValue": {},
|
|
21
22
|
"modelModifiers": {}
|
|
@@ -25,14 +26,14 @@ const _sfc_main = /* @__PURE__ */ No.defineComponent({
|
|
|
25
26
|
const props = __props;
|
|
26
27
|
const model = No.useModel(__props, "modelValue");
|
|
27
28
|
const comboboxInputProps = No.computed(() => {
|
|
28
|
-
const { class: _class, textInputProps: _textInputProps, ...rest } = props;
|
|
29
|
+
const { class: _class, textInputProps: _textInputProps, placeholder: _placeholder, ...rest } = props;
|
|
29
30
|
return rest;
|
|
30
31
|
});
|
|
31
32
|
const textInputProps = No.computed(() => {
|
|
32
33
|
return {
|
|
33
34
|
type: "search",
|
|
34
35
|
size: "sm",
|
|
35
|
-
placeholder: "Search",
|
|
36
|
+
placeholder: props.placeholder ?? "Search",
|
|
36
37
|
...props.textInputProps
|
|
37
38
|
};
|
|
38
39
|
});
|
|
@@ -60,5 +61,5 @@ const _sfc_main = /* @__PURE__ */ No.defineComponent({
|
|
|
60
61
|
};
|
|
61
62
|
}
|
|
62
63
|
});
|
|
63
|
-
const ComboboxInput = /* @__PURE__ */ _pluginVue_exportHelper._export_sfc(_sfc_main, [["__scopeId", "data-v-
|
|
64
|
+
const ComboboxInput = /* @__PURE__ */ _pluginVue_exportHelper._export_sfc(_sfc_main, [["__scopeId", "data-v-32b6a3f8"]]);
|
|
64
65
|
module.exports = ComboboxInput;
|
|
@@ -59,5 +59,5 @@ const _sfc_main = /* @__PURE__ */ No.defineComponent({
|
|
|
59
59
|
};
|
|
60
60
|
}
|
|
61
61
|
});
|
|
62
|
-
const ComboboxList = /* @__PURE__ */ _pluginVue_exportHelper._export_sfc(_sfc_main, [["__scopeId", "data-v-
|
|
62
|
+
const ComboboxList = /* @__PURE__ */ _pluginVue_exportHelper._export_sfc(_sfc_main, [["__scopeId", "data-v-38838139"]]);
|
|
63
63
|
module.exports = ComboboxList;
|
package/dist/cjs/combobox.js
CHANGED
|
@@ -26,7 +26,7 @@ const _hoisted_5 = {
|
|
|
26
26
|
};
|
|
27
27
|
const _hoisted_6 = {
|
|
28
28
|
key: 2,
|
|
29
|
-
class: "celeste-dropdown-
|
|
29
|
+
class: "celeste-dropdown-trigger-label"
|
|
30
30
|
};
|
|
31
31
|
const _hoisted_7 = {
|
|
32
32
|
key: 0,
|
|
@@ -44,6 +44,7 @@ const _sfc_main = /* @__PURE__ */ No.defineComponent({
|
|
|
44
44
|
valueBy: {},
|
|
45
45
|
labelBy: {},
|
|
46
46
|
placeholder: { default: "Select" },
|
|
47
|
+
searchPlaceholder: {},
|
|
47
48
|
type: {},
|
|
48
49
|
size: { default: "md" },
|
|
49
50
|
emptyLabel: {},
|
|
@@ -79,6 +80,7 @@ const _sfc_main = /* @__PURE__ */ No.defineComponent({
|
|
|
79
80
|
valueBy,
|
|
80
81
|
labelBy,
|
|
81
82
|
placeholder,
|
|
83
|
+
searchPlaceholder,
|
|
82
84
|
type,
|
|
83
85
|
size,
|
|
84
86
|
emptyLabel,
|
|
@@ -180,7 +182,10 @@ const _sfc_main = /* @__PURE__ */ No.defineComponent({
|
|
|
180
182
|
No.createElementVNode("div", {
|
|
181
183
|
class: No.normalizeClass(["celeste-dropdown-inner-input", { "sr-only": !_ctx.searchable }])
|
|
182
184
|
}, [
|
|
183
|
-
No.createVNode(comboboxInput, {
|
|
185
|
+
No.createVNode(comboboxInput, {
|
|
186
|
+
searchable: _ctx.searchable,
|
|
187
|
+
placeholder: _ctx.searchPlaceholder
|
|
188
|
+
}, null, 8, ["searchable", "placeholder"]),
|
|
184
189
|
_ctx.searchable ? (No.openBlock(), No.createBlock(comboboxSeparator, { key: 0 })) : No.createCommentVNode("", true)
|
|
185
190
|
], 2),
|
|
186
191
|
No.createVNode(comboboxEmpty, null, No.createSlots({ _: 2 }, [
|
|
@@ -231,5 +236,5 @@ const _sfc_main = /* @__PURE__ */ No.defineComponent({
|
|
|
231
236
|
};
|
|
232
237
|
}
|
|
233
238
|
});
|
|
234
|
-
const combobox = /* @__PURE__ */ _pluginVue_exportHelper._export_sfc(_sfc_main, [["__scopeId", "data-v-
|
|
239
|
+
const combobox = /* @__PURE__ */ _pluginVue_exportHelper._export_sfc(_sfc_main, [["__scopeId", "data-v-7baed4e9"]]);
|
|
235
240
|
module.exports = combobox;
|
|
@@ -6,6 +6,7 @@ export interface ComboboxPropsType extends ComboboxRootProps {
|
|
|
6
6
|
valueBy?: string;
|
|
7
7
|
labelBy?: string;
|
|
8
8
|
placeholder?: string;
|
|
9
|
+
searchPlaceholder?: string;
|
|
9
10
|
type?: 'normal' | 'compact' | 'inline' | 'compact-input';
|
|
10
11
|
size?: 'xs' | 'sm' | 'md';
|
|
11
12
|
emptyLabel?: string;
|
|
@@ -14,7 +14,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
14
14
|
as: {},
|
|
15
15
|
class: {},
|
|
16
16
|
textInputProps: {},
|
|
17
|
-
searchable: { type: Boolean }
|
|
17
|
+
searchable: { type: Boolean },
|
|
18
|
+
placeholder: {}
|
|
18
19
|
}, {
|
|
19
20
|
"modelValue": {},
|
|
20
21
|
"modelModifiers": {}
|
|
@@ -24,14 +25,14 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
24
25
|
const props = __props;
|
|
25
26
|
const model = useModel(__props, "modelValue");
|
|
26
27
|
const comboboxInputProps = computed(() => {
|
|
27
|
-
const { class: _class, textInputProps: _textInputProps, ...rest } = props;
|
|
28
|
+
const { class: _class, textInputProps: _textInputProps, placeholder: _placeholder, ...rest } = props;
|
|
28
29
|
return rest;
|
|
29
30
|
});
|
|
30
31
|
const textInputProps = computed(() => {
|
|
31
32
|
return {
|
|
32
33
|
type: "search",
|
|
33
34
|
size: "sm",
|
|
34
|
-
placeholder: "Search",
|
|
35
|
+
placeholder: props.placeholder ?? "Search",
|
|
35
36
|
...props.textInputProps
|
|
36
37
|
};
|
|
37
38
|
});
|
|
@@ -59,7 +60,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
59
60
|
};
|
|
60
61
|
}
|
|
61
62
|
});
|
|
62
|
-
const ComboboxInput = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-
|
|
63
|
+
const ComboboxInput = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-32b6a3f8"]]);
|
|
63
64
|
export {
|
|
64
65
|
ComboboxInput as default
|
|
65
66
|
};
|
package/dist/es/combobox-list.js
CHANGED
|
@@ -58,7 +58,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
58
58
|
};
|
|
59
59
|
}
|
|
60
60
|
});
|
|
61
|
-
const ComboboxList = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-
|
|
61
|
+
const ComboboxList = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-38838139"]]);
|
|
62
62
|
export {
|
|
63
63
|
ComboboxList as default
|
|
64
64
|
};
|
package/dist/es/combobox.js
CHANGED
|
@@ -25,7 +25,7 @@ const _hoisted_5 = {
|
|
|
25
25
|
};
|
|
26
26
|
const _hoisted_6 = {
|
|
27
27
|
key: 2,
|
|
28
|
-
class: "celeste-dropdown-
|
|
28
|
+
class: "celeste-dropdown-trigger-label"
|
|
29
29
|
};
|
|
30
30
|
const _hoisted_7 = {
|
|
31
31
|
key: 0,
|
|
@@ -43,6 +43,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
43
43
|
valueBy: {},
|
|
44
44
|
labelBy: {},
|
|
45
45
|
placeholder: { default: "Select" },
|
|
46
|
+
searchPlaceholder: {},
|
|
46
47
|
type: {},
|
|
47
48
|
size: { default: "md" },
|
|
48
49
|
emptyLabel: {},
|
|
@@ -78,6 +79,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
78
79
|
valueBy,
|
|
79
80
|
labelBy,
|
|
80
81
|
placeholder,
|
|
82
|
+
searchPlaceholder,
|
|
81
83
|
type,
|
|
82
84
|
size,
|
|
83
85
|
emptyLabel,
|
|
@@ -179,7 +181,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
179
181
|
createElementVNode("div", {
|
|
180
182
|
class: normalizeClass(["celeste-dropdown-inner-input", { "sr-only": !_ctx.searchable }])
|
|
181
183
|
}, [
|
|
182
|
-
createVNode(ComboboxInput, {
|
|
184
|
+
createVNode(ComboboxInput, {
|
|
185
|
+
searchable: _ctx.searchable,
|
|
186
|
+
placeholder: _ctx.searchPlaceholder
|
|
187
|
+
}, null, 8, ["searchable", "placeholder"]),
|
|
183
188
|
_ctx.searchable ? (openBlock(), createBlock(ComboboxSeparator, { key: 0 })) : createCommentVNode("", true)
|
|
184
189
|
], 2),
|
|
185
190
|
createVNode(ComboboxEmpty, null, createSlots({ _: 2 }, [
|
|
@@ -230,7 +235,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
230
235
|
};
|
|
231
236
|
}
|
|
232
237
|
});
|
|
233
|
-
const combobox = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-
|
|
238
|
+
const combobox = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-7baed4e9"]]);
|
|
234
239
|
export {
|
|
235
240
|
combobox as default
|
|
236
241
|
};
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@youcan/celeste",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.6.
|
|
4
|
+
"version": "0.6.95",
|
|
5
5
|
"author": "YouCan <tech@youcan.shop>",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|
|
@@ -48,8 +48,8 @@
|
|
|
48
48
|
"radix-vue": "^1.9.17",
|
|
49
49
|
"tinycolor2": "^1.6.0",
|
|
50
50
|
"vue-sonner": "^2.0.9",
|
|
51
|
-
"@youcan/celeste-icons": "0.6.
|
|
52
|
-
"@youcan/celeste-tokens": "0.6.
|
|
51
|
+
"@youcan/celeste-icons": "0.6.95",
|
|
52
|
+
"@youcan/celeste-tokens": "0.6.95"
|
|
53
53
|
},
|
|
54
54
|
"devDependencies": {
|
|
55
55
|
"@chromatic-com/storybook": "^4.1.3",
|
|
@@ -8,12 +8,13 @@ const props = defineProps<ComboboxInputProps & {
|
|
|
8
8
|
class?: HTMLAttributes['class'];
|
|
9
9
|
textInputProps?: Partial<TextInputProps>;
|
|
10
10
|
searchable?: boolean;
|
|
11
|
+
placeholder?: string;
|
|
11
12
|
}>();
|
|
12
13
|
|
|
13
14
|
const model = defineModel<string | undefined>();
|
|
14
15
|
|
|
15
16
|
const comboboxInputProps = computed(() => {
|
|
16
|
-
const { class: _class, textInputProps: _textInputProps, ...rest } = props;
|
|
17
|
+
const { class: _class, textInputProps: _textInputProps, placeholder: _placeholder, ...rest } = props;
|
|
17
18
|
return rest;
|
|
18
19
|
});
|
|
19
20
|
|
|
@@ -21,7 +22,7 @@ const textInputProps = computed((): TextInputProps => {
|
|
|
21
22
|
return {
|
|
22
23
|
type: 'search',
|
|
23
24
|
size: 'sm',
|
|
24
|
-
placeholder: 'Search',
|
|
25
|
+
placeholder: props.placeholder ?? 'Search',
|
|
25
26
|
...props.textInputProps,
|
|
26
27
|
};
|
|
27
28
|
});
|
|
@@ -36,9 +36,9 @@ const forwarded = useForwardPropsEmits(delegatedProps, emits);
|
|
|
36
36
|
<style lang="scss" scoped>
|
|
37
37
|
.celeste-dropdown-content,
|
|
38
38
|
div:deep(.celeste-dropdown-content) {
|
|
39
|
-
--dropdown-width: var(--radix-popper-anchor-width);
|
|
40
39
|
--dropdown-height: 300px;
|
|
41
40
|
--dropdown-min-width: var(--radix-combobox-trigger-width, 300px);
|
|
41
|
+
--dropdown-width: max(var(--radix-popper-anchor-width), 300px);
|
|
42
42
|
|
|
43
43
|
display: flex;
|
|
44
44
|
z-index: 50;
|
|
@@ -30,6 +30,7 @@ const delegatedProps = computed(() => {
|
|
|
30
30
|
valueBy,
|
|
31
31
|
labelBy,
|
|
32
32
|
placeholder,
|
|
33
|
+
searchPlaceholder,
|
|
33
34
|
type,
|
|
34
35
|
size,
|
|
35
36
|
emptyLabel,
|
|
@@ -117,6 +118,7 @@ export interface ComboboxPropsType extends ComboboxRootProps {
|
|
|
117
118
|
valueBy?: string;
|
|
118
119
|
labelBy?: string;
|
|
119
120
|
placeholder?: string;
|
|
121
|
+
searchPlaceholder?: string;
|
|
120
122
|
type?: 'normal' | 'compact' | 'inline' | 'compact-input';
|
|
121
123
|
size?: 'xs' | 'sm' | 'md';
|
|
122
124
|
emptyLabel?: string;
|
|
@@ -166,7 +168,7 @@ export default {
|
|
|
166
168
|
|
|
167
169
|
<div
|
|
168
170
|
v-if="type !== 'inline'"
|
|
169
|
-
class="celeste-dropdown-
|
|
171
|
+
class="celeste-dropdown-trigger-label"
|
|
170
172
|
>
|
|
171
173
|
<span>
|
|
172
174
|
{{ label }}
|
|
@@ -183,7 +185,7 @@ export default {
|
|
|
183
185
|
|
|
184
186
|
<ComboboxList>
|
|
185
187
|
<div class="celeste-dropdown-inner-input" :class="{ 'sr-only': !searchable }">
|
|
186
|
-
<ComboboxInput :searchable="searchable" />
|
|
188
|
+
<ComboboxInput :searchable="searchable" :placeholder="searchPlaceholder" />
|
|
187
189
|
<ComboboxSeparator v-if="searchable" />
|
|
188
190
|
</div>
|
|
189
191
|
|
|
@@ -247,16 +249,23 @@ export default {
|
|
|
247
249
|
border-radius: var(--radius-full);
|
|
248
250
|
}
|
|
249
251
|
|
|
250
|
-
.celeste-dropdown-
|
|
252
|
+
.celeste-dropdown-trigger-label {
|
|
251
253
|
display: flex;
|
|
252
254
|
flex: 1 0 0;
|
|
253
255
|
align-items: center;
|
|
254
256
|
justify-content: space-between;
|
|
257
|
+
width: 0; // A little css hack to make text-overflow ellipsis work
|
|
255
258
|
background: inherit;
|
|
256
259
|
color: var(--color-text-sub-600);
|
|
257
260
|
font: var(--paragraph-sm);
|
|
258
261
|
cursor: pointer;
|
|
259
262
|
gap: var(--spacing-8);
|
|
263
|
+
|
|
264
|
+
span {
|
|
265
|
+
overflow: hidden;
|
|
266
|
+
text-overflow: ellipsis;
|
|
267
|
+
white-space: nowrap;
|
|
268
|
+
}
|
|
260
269
|
}
|
|
261
270
|
|
|
262
271
|
.celeste-dropdown-trigger {
|