Skip to content
This repository was archived by the owner on Sep 8, 2025. It is now read-only.

Commit 2f40640

Browse files
committed
Added a new size xl for Select component, and an id must be given
1 parent c2ab4e8 commit 2f40640

File tree

2 files changed

+29
-18
lines changed

2 files changed

+29
-18
lines changed

pages/UI/select.vue

Lines changed: 20 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,21 +7,28 @@
77
<Heading size="sm">Default Select</Heading>
88
<div class="flex w-full flex-row flex-wrap justify-evenly gap-6">
99
<div class="flex flex-col gap-4">
10-
<Select label="Choose one" v-model="value" size="sm">
10+
<Select label="Choose one" v-model="value" size="sm" id="select-01">
1111
<option value="" disabled selected></option>
1212
<option value="1">Test 1</option>
1313
<option value="2">Test 2</option>
1414
<option value="3">Test 3</option>
1515
</Select>
1616

17-
<Select label="Choose one" v-model="value" size="md">
17+
<Select label="Choose one" v-model="value" size="md" id="select-02">
1818
<option value="" disabled selected></option>
1919
<option value="1">Test 1</option>
2020
<option value="2">Test 2</option>
2121
<option value="3">Test 3</option>
2222
</Select>
2323

24-
<Select label="Choose one" v-model="value" size="lg">
24+
<Select label="Choose one" v-model="value" size="lg" id="select-03">
25+
<option value="" disabled selected></option>
26+
<option value="1">Test 1</option>
27+
<option value="2">Test 2</option>
28+
<option value="3">Test 3</option>
29+
</Select>
30+
31+
<Select label="Choose one" v-model="value" size="xl" id="select-04">
2532
<option value="" disabled selected></option>
2633
<option value="1">Test 1</option>
2734
<option value="2">Test 2</option>
@@ -30,21 +37,28 @@
3037
</div>
3138

3239
<div class="flex flex-col gap-4">
33-
<Select label="Choose one" v-model="value" size="sm" disabled>
40+
<Select label="Choose one" v-model="value" size="sm" disabled id="select-05">
41+
<option value="" disabled selected></option>
42+
<option value="1">Test 1</option>
43+
<option value="2">Test 2</option>
44+
<option value="3">Test 3</option>
45+
</Select>
46+
47+
<Select label="Choose one" v-model="value" size="md" disabled id="select-06">
3448
<option value="" disabled selected></option>
3549
<option value="1">Test 1</option>
3650
<option value="2">Test 2</option>
3751
<option value="3">Test 3</option>
3852
</Select>
3953

40-
<Select label="Choose one" v-model="value" size="md" disabled>
54+
<Select label="Choose one" v-model="value" size="lg" disabled id="select-07">
4155
<option value="" disabled selected></option>
4256
<option value="1">Test 1</option>
4357
<option value="2">Test 2</option>
4458
<option value="3">Test 3</option>
4559
</Select>
4660

47-
<Select label="Choose one" v-model="value" size="lg" disabled>
61+
<Select label="Choose one" v-model="value" size="xl" disabled id="select-08">
4862
<option value="" disabled selected></option>
4963
<option value="1">Test 1</option>
5064
<option value="2">Test 2</option>

ui-components/Select.vue

Lines changed: 9 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
<template>
22
<div :class="base()">
33
<select
4-
:id="selectId"
5-
:name="selectId"
4+
:id="$props.id"
65
:required="props.required"
76
:class="select()"
87
:value="props.modelValue"
@@ -11,7 +10,7 @@
1110
>
1211
<slot />
1312
</select>
14-
<label :for="selectId" :class="label()">
13+
<label :for="$props.id" :class="label()">
1514
{{ props.label }}
1615
</label>
1716
<Icon name="solar:alt-arrow-down-bold" :class="svg()" />
@@ -44,11 +43,16 @@ const selectTV = tv({
4443
svg: 'right-2 top-3 h-5 w-5'
4544
},
4645
md: {
46+
label: '-top-2 left-3.5 px-1.5 text-xs',
47+
select: 'h-10 px-4',
48+
svg: 'right-2 top-3 h-5 w-5'
49+
},
50+
lg: {
4751
label: '-top-2 left-3 px-1.5 text-sm',
4852
select: 'h-12 px-4',
4953
svg: 'right-2 top-3.5 h-6 w-6'
5054
},
51-
lg: {
55+
xl: {
5256
label: 'text-md -top-3 left-3.5 px-2',
5357
select: 'h-14 px-5 text-lg',
5458
svg: 'right-2 top-4 h-7 w-7'
@@ -72,10 +76,10 @@ type Props = {
7276
label?: string
7377
7478
// Select props
79+
id: string
7580
modelValue?: string | number
7681
disabled?: boolean
7782
required?: boolean
78-
id?: string
7983
}
8084
8185
const emit = defineEmits(['update:modelValue'])
@@ -92,13 +96,6 @@ const emitUpdate = (event: Event) => {
9296
9397
const props = defineProps<Props>()
9498
95-
const selectId = ref(props.id || '')
96-
onMounted(() => {
97-
if (!props.id) {
98-
selectId.value = crypto.randomUUID()
99-
}
100-
})
101-
10299
const { base, select, svg, label } = selectTV({
103100
size: props.size,
104101
variant: props.variant

0 commit comments

Comments
 (0)