~james/core

core/web/src/lib/components/ui/LayerCard.svelte -rw-r--r-- 816 bytes
452f17b7 — james chore(import): snapshot james.dad.town/core at f70c71c7696a 15 hours ago
                                                                                
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<script module lang="ts">
	import { tv } from "tailwind-variants";

	export const layerCard = tv({
		base: "flex flex-col gap-[calc(var(--layer-gap)+2px)] rounded-[calc(var(--radius-md)+var(--layer-gap)+1px)] bg-background-subtle p-[calc(var(--layer-gap)+1px)] edge-ring ring-border-default [--layer-gap:3px] dark:bg-background-canvas"
	});
</script>

<script lang="ts">
	import type { Snippet } from "svelte";
	import type { HTMLAttributes } from "svelte/elements";

	interface Props extends Omit<HTMLAttributes<HTMLElement>, "class" | "children"> {
		as?: string;
		class?: string;
		children?: Snippet;
	}

	let { as = "div", class: className, children, ...rest }: Props = $props();
</script>

<svelte:element this={as} class={layerCard({ class: className })} {...rest}>
	{@render children?.()}
</svelte:element>