feat(FormGroup): add size prop and theme options (#391)

Co-authored-by: Benjamin Canac <canacb1@gmail.com>
This commit is contained in:
henrycunh
2023-07-24 14:36:58 -03:00
committed by GitHub
parent b0440f81ce
commit d2a8a07a21
3 changed files with 55 additions and 9 deletions

View File

@@ -15,6 +15,13 @@ export default defineComponent({
type: String,
default: null
},
size: {
type: String,
default: () => appConfig.ui.input.default.size,
validator (value: string) {
return Object.keys(appConfig.ui.formGroup.size).includes(value)
}
},
label: {
type: String,
default: null
@@ -66,18 +73,23 @@ export default defineComponent({
vProps.name = props.name
}
if (props.size) {
vProps.size = props.size
}
return cloneVNode(node, vProps)
}))
return () => h('div', { class: [ui.value.wrapper] }, [
props.label && h('div', { class: [ui.value.label.wrapper] }, [
props.label && h('div', { class: [ui.value.label.wrapper, ui.value.size[props.size]] }, [
h('label', { for: props.name, class: [ui.value.label.base, props.required && ui.value.label.required] }, props.label),
props.hint && h('span', { class: [ui.value.hint] }, props.hint)
]),
props.description && h('p', { class: [ui.value.description] }, props.description),
props.description && h('p', { class: [ui.value.description, ui.value.size[props.size]
] }, props.description),
h('div', { class: [!!props.label && ui.value.container] }, [
...clones.value,
props.error && typeof props.error === 'string' ? h('p', { class: [ui.value.error] }, props.error) : props.help ? h('p', { class: [ui.value.help] }, props.help) : null
props.error && typeof props.error === 'string' ? h('p', { class: [ui.value.error, ui.value.size[props.size]] }, props.error) : props.help ? h('p', { class: [ui.value.help, ui.value.size[props.size]] }, props.help) : null
])
])
}