fix(components): ui prop override with class (#136)

This commit is contained in:
Benjamin Canac
2024-07-03 14:35:58 +02:00
committed by GitHub
parent 5a22c62b2a
commit 235556d3e0
50 changed files with 383 additions and 375 deletions

View File

@@ -26,26 +26,26 @@ export interface CardSlots {
</script>
<script setup lang="ts">
import { computed } from 'vue'
import { Primitive } from 'radix-vue'
const props = defineProps<CardProps>()
const slots = defineSlots<CardSlots>()
const ui = computed(() => tv({ extend: card, slots: props.ui })())
// eslint-disable-next-line vue/no-dupe-keys
const ui = card()
</script>
<template>
<Primitive :as="as" :class="ui.root({ class: props.class })">
<div v-if="!!slots.header" :class="ui.header()">
<div v-if="!!slots.header" :class="ui.header({ class: props.ui?.header })">
<slot name="header" />
</div>
<div v-if="!!slots.default" :class="ui.body()">
<div v-if="!!slots.default" :class="ui.body({ class: props.ui?.body })">
<slot />
</div>
<div v-if="!!slots.footer" :class="ui.footer()">
<div v-if="!!slots.footer" :class="ui.footer({ class: props.ui?.footer })">
<slot name="footer" />
</div>
</Primitive>