first ui rework commit

This commit is contained in:
2026-04-16 01:48:14 +02:00
parent a95f2dfe55
commit ab86f68638
47 changed files with 1045 additions and 165 deletions
@@ -0,0 +1,49 @@
<script setup lang="ts">
import type { VariantProps } from "class-variance-authority"
import type { ToggleGroupRootEmits, ToggleGroupRootProps } from "reka-ui"
import type { HTMLAttributes } from "vue"
import type { toggleVariants } from '@/components/ui/toggle'
import { reactiveOmit } from "@vueuse/core"
import { ToggleGroupRoot, useForwardPropsEmits } from "reka-ui"
import { provide } from "vue"
import { cn } from "@/lib/utils"
type ToggleGroupVariants = VariantProps<typeof toggleVariants>
const props = withDefaults(defineProps<ToggleGroupRootProps & {
class?: HTMLAttributes["class"]
variant?: ToggleGroupVariants["variant"]
size?: ToggleGroupVariants["size"]
spacing?: number
}>(), {
spacing: 0,
})
const emits = defineEmits<ToggleGroupRootEmits>()
provide("toggleGroup", {
variant: props.variant,
size: props.size,
spacing: props.spacing,
})
const delegatedProps = reactiveOmit(props, "class", "size", "variant")
const forwarded = useForwardPropsEmits(delegatedProps, emits)
</script>
<template>
<ToggleGroupRoot
v-slot="slotProps"
data-slot="toggle-group"
:data-size="size"
:data-variant="variant"
:data-spacing="spacing"
:style="{
'--gap': spacing,
}"
v-bind="forwarded"
:class="cn('group/toggle-group flex w-fit items-center gap-[--spacing(var(--gap))] rounded-md data-[spacing=default]:data-[variant=outline]:shadow-xs', props.class)"
>
<slot v-bind="slotProps" />
</ToggleGroupRoot>
</template>