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.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..1c7ac577 --- /dev/null +++ b/components/src/FormLabel/FormLabel.stories.svelte @@ -0,0 +1,50 @@ + + + + + Deine Gemeinde + + + + { + const canvas = within(canvasElement); + const label = canvas.getByTestId('label-container'); + const input = canvas.getByPlaceholderText('...'); + await step('Label renders children', async () => { + await userEvent.click(label); + expect(label).toHaveTextContent('Deine Gemeinde'); + }); + await step('Clicking the label focuses the input', async () => { + await userEvent.click(label); + expect(input).toHaveFocus(); + }); + }} +> + + Deine Gemeinde + + + diff --git a/components/src/FormLabel/FormLabel.svelte b/components/src/FormLabel/FormLabel.svelte new file mode 100644 index 00000000..4e1eb3b6 --- /dev/null +++ b/components/src/FormLabel/FormLabel.svelte @@ -0,0 +1,36 @@ + + +{#if as == 'legend'} + + {#if children} + {@render children()} + {/if} + +{/if} +{#if as == 'label'} + +{/if} + + 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; diff --git a/components/src/Input/Input.svelte b/components/src/Input/Input.svelte index 151bf7f5..66b50edc 100644 --- a/components/src/Input/Input.svelte +++ b/components/src/Input/Input.svelte @@ -1,4 +1,6 @@
- + {label}