From 6b5ef92a52572e34e4d9e625fccb886f909bc3b0 Mon Sep 17 00:00:00 2001 From: Max Kohler Date: Thu, 8 May 2025 13:42:57 +0200 Subject: [PATCH 1/4] Block out FormLabel component --- components/src/FormLabel/FormLabel.mdx | 13 ++++++++ .../src/FormLabel/FormLabel.stories.svelte | 33 +++++++++++++++++++ components/src/FormLabel/FormLabel.svelte | 26 +++++++++++++++ components/src/FormLabel/index.ts | 2 ++ 4 files changed, 74 insertions(+) create mode 100644 components/src/FormLabel/FormLabel.mdx create mode 100644 components/src/FormLabel/FormLabel.stories.svelte create mode 100644 components/src/FormLabel/FormLabel.svelte create mode 100644 components/src/FormLabel/index.ts diff --git a/components/src/FormLabel/FormLabel.mdx b/components/src/FormLabel/FormLabel.mdx new file mode 100644 index 00000000..6cc0776d --- /dev/null +++ b/components/src/FormLabel/FormLabel.mdx @@ -0,0 +1,13 @@ +import { Story, Meta, Primary, Controls, Stories } from '@storybook/addon-docs/blocks'; + +import * as FormLabelStories from './FormLabel.stories.svelte'; + + + +# Form Label + +Standard form label. The `htmlFor` prop is required to semantically link the label to the form element it describes. + + + + \ No newline at end of file diff --git a/components/src/FormLabel/FormLabel.stories.svelte b/components/src/FormLabel/FormLabel.stories.svelte new file mode 100644 index 00000000..87b67cf9 --- /dev/null +++ b/components/src/FormLabel/FormLabel.stories.svelte @@ -0,0 +1,33 @@ + + + + + Deine Gemeinde + + + + + + Deine Gemeinde + + + diff --git a/components/src/FormLabel/FormLabel.svelte b/components/src/FormLabel/FormLabel.svelte new file mode 100644 index 00000000..f08f982a --- /dev/null +++ b/components/src/FormLabel/FormLabel.svelte @@ -0,0 +1,26 @@ + + + + + diff --git a/components/src/FormLabel/index.ts b/components/src/FormLabel/index.ts new file mode 100644 index 00000000..407b11b6 --- /dev/null +++ b/components/src/FormLabel/index.ts @@ -0,0 +1,2 @@ +import FormLabel from './FormLabel.svelte'; +export default FormLabel; From da505c6ee46eddc5c4f2b6a459d1c6fa4456e341 Mon Sep 17 00:00:00 2001 From: Max Kohler Date: Thu, 8 May 2025 13:50:31 +0200 Subject: [PATCH 2/4] Replace existing labels with FormLabel --- .../src/Autocomplete/Autocomplete.svelte | 3 --- components/src/FormLabel/FormLabel.svelte | 24 +++++++++++++------ components/src/Input/Input.svelte | 7 +++--- components/src/Select/Select.stories.svelte | 3 ++- .../src/Select/SelectStoriesTemplate.svelte | 8 ++----- components/src/Switcher/Switcher.svelte | 4 +++- components/src/styles/base.scss | 8 ------- 7 files changed, 27 insertions(+), 30 deletions(-) diff --git a/components/src/Autocomplete/Autocomplete.svelte b/components/src/Autocomplete/Autocomplete.svelte index 5e91e5dd..59b6c2eb 100644 --- a/components/src/Autocomplete/Autocomplete.svelte +++ b/components/src/Autocomplete/Autocomplete.svelte @@ -161,9 +161,6 @@ Data should be provided as array of objects. Each object contains the informatio color: white; display: flex; flex-flow: column; - label { - @extend %form-label; - } input { @extend %form-input; diff --git a/components/src/FormLabel/FormLabel.svelte b/components/src/FormLabel/FormLabel.svelte index f08f982a..6869f877 100644 --- a/components/src/FormLabel/FormLabel.svelte +++ b/components/src/FormLabel/FormLabel.svelte @@ -2,17 +2,27 @@ import type { Snippet } from 'svelte'; interface FormLabelProps { - htmlFor: string; + as?: string; + htmlFor?: string; children?: Snippet; } - let { htmlFor, children }: FormLabelProps = $props(); + let { as = 'label', htmlFor, children }: FormLabelProps = $props(); - +{#if as == 'legend'} + + {#if children} + {@render children()} + {/if} + +{/if} +{#if as == 'label'} + +{/if}