Skip to content

Commit 5bdd18a

Browse files
author
Joshua Stübner
committed
feat(forms): mark required fields with asterisk
1 parent c092920 commit 5bdd18a

14 files changed

+51
-33
lines changed

packages/forms-svelte/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
"forms",
88
"svelte"
99
],
10-
"version": "1.0.5",
10+
"version": "1.1.0",
1111
"scripts": {
1212
"dev": "vite dev",
1313
"build": "vite build && npm run package",

packages/forms-svelte/src/lib/components/InputFields/CheckboxInput.svelte

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -22,13 +22,13 @@ let {
2222

2323
<div class="nc-cluster | nc-input-field | nc-checkbox-wrapper">
2424
<label for={id} class="nc-stack" data-label>
25-
<span class="nc-input-label">{label}
25+
<span>{label}
26+
{#if required}
27+
<span class="nc-input-required-mark">
28+
*
29+
</span>
30+
{/if}
2631
</span>
27-
{#if !required}
28-
<span class="nc-hint">
29-
(optional)
30-
</span>
31-
{/if}
3232

3333
{#if hint}<span class="nc-input-hint">{hint}</span>{/if}
3434
{#if errors?.length > 0}
@@ -43,6 +43,7 @@ let {
4343
{id}
4444
{name}
4545
{required}
46+
aria-required={required}
4647
type={'checkbox'}
4748
{checked}
4849
{value}

packages/forms-svelte/src/lib/components/InputFields/CheckboxInputField.svelte

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -38,12 +38,14 @@ const handleChange: FormEventHandler<HTMLFieldSetElement> = event => {
3838

3939
<fieldset class="nc-fieldset nc-input-field nc-checkbox-field" onchange={handleChange}>
4040
<legend class="nc-legend nc-stack">
41-
<span class="nc-input-label" {id}>{label}</span>
42-
{#if !required}
43-
<span class="nc-hint">
44-
(optional)
41+
<span class="nc-input-label" {id}><span>{label}
42+
{#if required}
43+
<span class="nc-input-required-mark">
44+
*
45+
</span>
46+
{/if}
4547
</span>
46-
{/if}
48+
</span>
4749

4850
{#if hint}
4951
<span class="nc-hint" id={`${id}-hint`}>{hint}</span>
@@ -72,6 +74,7 @@ const handleChange: FormEventHandler<HTMLFieldSetElement> = event => {
7274
checked={value?.includes(option.value)}
7375
{name}
7476
{required}
77+
aria-required={required}
7578
{...rest}
7679
/>
7780
</div>

packages/forms-svelte/src/lib/components/InputFields/DateInput.svelte

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ let internalValue = $derived(value ? formatDate(value) : '');
4545
value={internalValue}
4646
oninput={handleInput}
4747
{required}
48+
aria-required={required}
4849
{...rest}
4950
/>
5051
<button type="button" class="nc-button" onclick={setToday}>Heute</button>

packages/forms-svelte/src/lib/components/InputFields/DateTimeInput.svelte

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,6 @@ let {
2222
2323
const handleDateInput: FormEventHandler<HTMLInputElement> = event => {
2424
const target = event.target as HTMLInputElement;
25-
26-
console.log(target.value);
2725
value = new Date(target.value);
2826
};
2927
@@ -47,6 +45,7 @@ let internalDate = $derived(value ? formatDate(value) : '');
4745
type="datetime-local"
4846
value={value}
4947
{required}
48+
aria-required={required}
5049
{...rest}
5150
/>
5251
</div>

packages/forms-svelte/src/lib/components/InputFields/GenericInput.svelte

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,5 +35,6 @@ const handleInput: FormEventHandler<HTMLInputElement> = event => {
3535
{type}
3636
{value}
3737
oninput={handleInput}
38+
aria-required={required}
3839
{...rest}
3940
/>

packages/forms-svelte/src/lib/components/InputFields/ImageInput.svelte

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,7 @@ const handleInput: FormEventHandler<HTMLInputElement> = async event => {
9494
{id}
9595
{name}
9696
{required}
97+
aria-readonly={required}
9798
oninput={handleInput}
9899
{...rest}
99100
/>

packages/forms-svelte/src/lib/components/InputFields/InputWrapper.svelte

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,13 @@ let {
1414

1515
<div class="nc-input-field">
1616
<label for={id} class="nc-stack">
17-
<span class="nc-input-label">{label}
17+
<span>{label}
18+
{#if required}
19+
<span class="nc-input-required-mark">
20+
*
21+
</span>
22+
{/if}
1823
</span>
19-
{#if !required}
20-
<span class="nc-hint">
21-
(optional)
22-
</span>
23-
{/if}
2424

2525
{#if hint}<span class="nc-hint">{hint}</span>{/if}
2626
{#if errors?.length > 0}

packages/forms-svelte/src/lib/components/InputFields/RadioInputField.svelte

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -30,12 +30,15 @@ const handleChange: FormEventHandler<HTMLFieldSetElement> = event => {
3030

3131
<fieldset class="nc-fieldset nc-input-field nc-radio-field" onchange={handleChange}>
3232
<legend class="nc-legend nc-stack">
33-
<span class="nc-input-label" {id}>{label}
33+
<span class="nc-input-label" {id}>
34+
<span>{label}
35+
{#if required}
36+
<span class="nc-input-required-mark">
37+
*
38+
</span>
39+
{/if}
40+
</span>
3441
</span>
35-
{#if !required}
36-
<span class="nc-hint">(optional)</span>
37-
{/if}
38-
3942
{#if hint}
4043
<span class="nc-hint" id={`${id}-hint`}>{hint}</span>
4144
{/if}

packages/forms-svelte/src/lib/components/InputFields/RangeInput.svelte

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ const handleInput: FormEventHandler<HTMLInputElement> = event => {
3434
{id}
3535
{name}
3636
{required}
37+
aria-readonly={required}
3738
{autocomplete}
3839
{type}
3940
{value}

0 commit comments

Comments
 (0)