From 82709746840699a025d856095fab939407e91aa7 Mon Sep 17 00:00:00 2001
From: Michel Heusschen <59014050+michelheusschen@users.noreply.github.com>
Date: Sat, 21 Jun 2025 07:45:41 +0200
Subject: [PATCH] fix: ensure button renders custom tag
---
src/lib/buttons/Button.svelte | 10 ++--
src/lib/forms/radio/RadioButton.svelte | 9 +---
src/tests/button/basic-button.test.svelte | 5 ++
src/tests/button/button.test.ts | 46 +++++++++++++++++++
src/tests/button/label-button.test.svelte | 5 ++
src/tests/button/link-button.test.svelte | 5 ++
src/tests/button/submit-button.test.svelte | 5 ++
.../radio/check-radio-button.test.svelte | 6 +++
src/tests/forms/radio/radio-button.test.ts | 22 +++++++++
9 files changed, 101 insertions(+), 12 deletions(-)
create mode 100644 src/tests/button/basic-button.test.svelte
create mode 100644 src/tests/button/button.test.ts
create mode 100644 src/tests/button/label-button.test.svelte
create mode 100644 src/tests/button/link-button.test.svelte
create mode 100644 src/tests/button/submit-button.test.svelte
create mode 100644 src/tests/forms/radio/check-radio-button.test.svelte
create mode 100644 src/tests/forms/radio/radio-button.test.ts
diff --git a/src/lib/buttons/Button.svelte b/src/lib/buttons/Button.svelte
index a7639b166f..c883a987d9 100644
--- a/src/lib/buttons/Button.svelte
+++ b/src/lib/buttons/Button.svelte
@@ -15,14 +15,14 @@
let btnCls = $derived(cn(base(), outline && outline_(), shadow && shadow_(), className));
-{#if restProps.href === undefined}
+{#if restProps.href !== undefined}
+
+ {@render children?.()}
+
+{:else if tag === "button"}
-{:else if restProps.href}
-
- {@render children?.()}
-
{:else}
{@render children?.()}
diff --git a/src/lib/forms/radio/RadioButton.svelte b/src/lib/forms/radio/RadioButton.svelte
index 1d630a3467..0ea420df43 100644
--- a/src/lib/forms/radio/RadioButton.svelte
+++ b/src/lib/forms/radio/RadioButton.svelte
@@ -4,17 +4,12 @@
let { children, group = $bindable(), value = $bindable(), inline, pill, outline, size, color, shadow, checkedClass, class: className, ...restProps }: RadioButtonProps = $props();
- let inputEl: HTMLInputElement;
let isChecked = $derived(value == group);
let base = $derived(cn(radiobutton({ inline }), isChecked && checkedClass, className));
-
- function clickHandler() {
- inputEl?.click(); // manually trigger the click on the hidden input
- }
-