<template> <component :is="as" class="tw-shadow tw-p-6 tw-rounded tw-m-0"> <template v-if="title"> <component :is="as === 'fieldset' ? 'legend' : 'h2'" class="tw-text-xl tw-font-bold -tw-mt-2 tw-m-0 tw-mb-3" :class="{ 'tw-float-left tw-w-full': as === 'fieldset' }" >{{ title }}</component > <div v-if="as === 'fieldset'" class="tw-clear-left" role="presentation" /> </template> <slot /> </component> </template> <script lang="ts" setup> withDefaults( defineProps<{ title?: string as?: string }>(), { as: 'fieldset', title: '', }, ) </script>