Files
eewing ec317eb17c
CI / build (push) Has been skipped
CI / deploy (push) Successful in 1m11s
INIT
2026-02-18 15:17:47 -06:00

28 lines
598 B
Svelte

<script lang="ts">
import type { ButtonRootProps } from "../types.js";
let {
href,
type,
children,
disabled = false,
ref = $bindable(null),
...restProps
}: ButtonRootProps = $props();
</script>
<svelte:element
this={href ? "a" : "button"}
data-button-root
type={href ? undefined : type}
href={href && !disabled ? href : undefined}
disabled={href ? undefined : disabled}
aria-disabled={href ? disabled : undefined}
role={href && disabled ? "link" : undefined}
tabindex={href && disabled ? -1 : 0}
bind:this={ref}
{...restProps}
>
{@render children?.()}
</svelte:element>