From e29def0ddab7e689e8c3f77b70fe25ea66c081ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C5=ABdolfs=20O=C5=A1i=C5=86=C5=A1?= Date: Thu, 5 Nov 2026 16:41:28 +0100 Subject: [PATCH] desktop: Extend shared form components `Checkbox` reports changes, `SegmentedSwitch` options can show an icon and a label together, `TextInput` takes a `maxlength`, and a new `Select` is a styled dropdown that also works inside a popover, where a nested `Popover` would close its parent. Co-authored-by: Brandon Oxendine --- desktop/src/components/Checkbox.svelte | 8 +- desktop/src/components/SegmentedSwitch.svelte | 5 +- desktop/src/components/Select.svelte | 208 ++++++++++++++++++ desktop/src/components/TextInput.svelte | 3 + 4 files changed, 221 insertions(+), 3 deletions(-) create mode 100644 desktop/src/components/Select.svelte diff --git a/desktop/src/components/Checkbox.svelte b/desktop/src/components/Checkbox.svelte index ddc31da24..f55563cd7 100644 --- a/desktop/src/components/Checkbox.svelte +++ b/desktop/src/components/Checkbox.svelte @@ -7,6 +7,7 @@ checked?: boolean; disabled?: boolean; children?: Snippet; + onchange?: (checked: boolean) => void; } /* eslint-disable prefer-const */ @@ -14,6 +15,7 @@ checked = $bindable(false), disabled = false, children, + onchange, }: Props = $props(); /* eslint-enable prefer-const */ @@ -80,7 +82,11 @@