feat(ui): add `label` convenience prop to input
This commit is contained in:
parent
fe8c7aa564
commit
9e3f2cfb57
|
@ -8,10 +8,11 @@ import Layout from "~/components/ui/Layout.vue"
|
||||||
|
|
||||||
const { icon, placeholder, ...restProps } = defineProps<{
|
const { icon, placeholder, ...restProps } = defineProps<{
|
||||||
icon?: string,
|
icon?: string,
|
||||||
placeholder?:string,
|
placeholder?: string,
|
||||||
password?:true,
|
password?: true,
|
||||||
search?:true,
|
search?: true,
|
||||||
numeric?:true,
|
numeric?: true,
|
||||||
|
label?: string,
|
||||||
}>()
|
}>()
|
||||||
|
|
||||||
// TODO(A11y): Add `inputmode="numeric" pattern="[0-9]*"` to input if model type is number:
|
// TODO(A11y): Add `inputmode="numeric" pattern="[0-9]*"` to input if model type is number:
|
||||||
|
@ -45,6 +46,10 @@ const model = defineModel<string|number>()
|
||||||
<slot name="label" />
|
<slot name="label" />
|
||||||
</span>
|
</span>
|
||||||
|
|
||||||
|
<span v-if="restProps.label" class="label">
|
||||||
|
{{ restProps.label }}
|
||||||
|
</span>
|
||||||
|
|
||||||
<input
|
<input
|
||||||
v-bind="{...$attrs, ...attributes}"
|
v-bind="{...$attrs, ...attributes}"
|
||||||
v-model="model"
|
v-model="model"
|
||||||
|
|
|
@ -35,6 +35,30 @@ Add a [Bootstrap icon](https://icons.getbootstrap.com/) to an input to make its
|
||||||
|
|
||||||
<Input icon="bi-search" placeholder="Search" />
|
<Input icon="bi-search" placeholder="Search" />
|
||||||
|
|
||||||
|
## Label slot
|
||||||
|
|
||||||
|
```vue-html{2-4}
|
||||||
|
<Input>
|
||||||
|
<template #label>
|
||||||
|
User name
|
||||||
|
</template>
|
||||||
|
</Input>
|
||||||
|
```
|
||||||
|
|
||||||
|
<Input>
|
||||||
|
<template #label>
|
||||||
|
User name
|
||||||
|
</template>
|
||||||
|
</Input>
|
||||||
|
|
||||||
|
If you just have a string, we have a convenience prop, so instead you can write:
|
||||||
|
|
||||||
|
```vue-html
|
||||||
|
<Input label="User name" />
|
||||||
|
```
|
||||||
|
|
||||||
|
<Input label="User name" />
|
||||||
|
|
||||||
## Input-right slot
|
## Input-right slot
|
||||||
|
|
||||||
You can add a template on the right-hand side of the input to guide the user's input.
|
You can add a template on the right-hand side of the input to guide the user's input.
|
||||||
|
|
Loading…
Reference in New Issue