This repository has no description
0

Configure Feed

Select the types of activity you want to include in your feed.

core / web / src / lib / components / ui / ButtonGroup.svelte
941 B 41 lines
1<script module lang="ts"> 2 import { tv, type VariantProps } from "tailwind-variants"; 3 4 export const buttonGroup = tv({ 5 base: "inline-flex items-center", 6 variants: { 7 spaced: { 8 true: "gap-2", 9 false: 10 "gap-0 \ 11 [&>*]:relative \ 12 [&>*:not(:first-child)]:[--btn-radius-l:0px] [&>*:not(:first-child)]:-ml-px \ 13 [&>*:not(:last-child)]:[--btn-radius-r:0px] \ 14 [&>*:hover]:z-10 [&>*:focus-visible]:z-10" 15 } 16 }, 17 defaultVariants: { 18 spaced: false 19 } 20 }); 21 22 export type ButtonGroupVariants = VariantProps<typeof buttonGroup>; 23</script> 24 25<script lang="ts"> 26 import type { Snippet } from "svelte"; 27 28 interface Props { 29 spaced?: ButtonGroupVariants["spaced"]; 30 class?: string; 31 children: Snippet; 32 } 33 34 let { spaced = false, class: className, children }: Props = $props(); 35 36 const classes = $derived(buttonGroup({ spaced, class: className })); 37</script> 38 39<div class={classes}> 40 {@render children()} 41</div>