69 lines
3.1 KiB
Plaintext
69 lines
3.1 KiB
Plaintext
component FinalCTA {
|
|
props {
|
|
label = "Get started"
|
|
href = ""
|
|
type = "button"
|
|
variant = "primary"
|
|
disabled = false
|
|
class = ""
|
|
}
|
|
|
|
view {
|
|
<span class="contents {class}">
|
|
{#if href}
|
|
{#if variant === "primary"}
|
|
<a
|
|
href="{href}"
|
|
class="group inline-flex min-h-11 items-center justify-center gap-2 rounded-xl bg-[var(--wire-color-primary,#059669)] px-5 py-2.5 text-sm font-semibold text-[var(--wire-color-primary-contrast,#ffffff)] no-underline transition duration-200 hover:bg-[var(--wire-color-primary-hover,#047857)] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--wire-color-primary,#059669)] focus-visible:ring-offset-2"
|
|
aria-disabled="{disabled}"
|
|
>
|
|
<span>{label}</span>
|
|
<span
|
|
class="transition-transform duration-200 group-hover:translate-x-0.5"
|
|
aria-hidden="true"
|
|
>
|
|
→
|
|
</span>
|
|
<slot />
|
|
</a>
|
|
{:else}
|
|
<a
|
|
href="{href}"
|
|
class="group inline-flex min-h-11 items-center justify-center gap-2 rounded-xl border border-[var(--wire-color-border,#e2e8f0)] bg-[var(--wire-color-surface,#ffffff)] px-5 py-2.5 text-sm font-semibold text-[var(--wire-color-text,#0f172a)] no-underline transition duration-200 hover:border-[var(--wire-color-primary,#059669)] hover:text-[var(--wire-color-primary,#059669)] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--wire-color-primary,#059669)] focus-visible:ring-offset-2"
|
|
aria-disabled="{disabled}"
|
|
>
|
|
<span>{label}</span>
|
|
<span
|
|
class="transition-transform duration-200 group-hover:translate-x-0.5"
|
|
aria-hidden="true"
|
|
>
|
|
→
|
|
</span>
|
|
<slot />
|
|
</a>
|
|
{/if}
|
|
{:else}
|
|
{#if variant === "primary"}
|
|
<button
|
|
type="{type}"
|
|
disabled="{disabled}"
|
|
class="group inline-flex min-h-11 items-center justify-center gap-2 rounded-xl bg-[var(--wire-color-primary,#059669)] px-5 py-2.5 text-sm font-semibold text-[var(--wire-color-primary-contrast,#ffffff)] transition duration-200 hover:bg-[var(--wire-color-primary-hover,#047857)] disabled:cursor-not-allowed disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--wire-color-primary,#059669)] focus-visible:ring-offset-2"
|
|
>
|
|
<span>{label}</span>
|
|
<slot />
|
|
</button>
|
|
{:else}
|
|
<button
|
|
type="{type}"
|
|
disabled="{disabled}"
|
|
class="group inline-flex min-h-11 items-center justify-center gap-2 rounded-xl border border-[var(--wire-color-border,#e2e8f0)] bg-[var(--wire-color-surface,#ffffff)] px-5 py-2.5 text-sm font-semibold text-[var(--wire-color-text,#0f172a)] transition duration-200 hover:border-[var(--wire-color-primary,#059669)] hover:text-[var(--wire-color-primary,#059669)] disabled:cursor-not-allowed disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--wire-color-primary,#059669)] focus-visible:ring-offset-2"
|
|
>
|
|
<span>{label}</span>
|
|
<slot />
|
|
</button>
|
|
{/if}
|
|
{/if}
|
|
</span>
|
|
}
|
|
}
|