Files
WRNexusJS/packages/ui/components/FinalCTA.wrn
T
2026-07-22 12:56:07 +05:30

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>
}
}