mirror of
https://github.com/carbon-design-system/carbon-components-svelte.git
synced 2025-09-15 02:11:05 +00:00
fix(password-input): support invalid state when used in a FluidForm
(#1371)
* fix(password-input): support invalid state when used in a `FluidForm` * docs(fluid-form): add example "Invalid state"
This commit is contained in:
parent
83c11fd460
commit
6a3614bf55
3 changed files with 79 additions and 39 deletions
|
@ -1,15 +1,18 @@
|
||||||
<script>
|
<script>
|
||||||
import { FluidForm, FormGroup, TextInput, PasswordInput, Button,} from "carbon-components-svelte";
|
import {
|
||||||
|
FluidForm,
|
||||||
|
TextInput,
|
||||||
|
PasswordInput,
|
||||||
|
} from "carbon-components-svelte";
|
||||||
import Preview from "../../components/Preview.svelte";
|
import Preview from "../../components/Preview.svelte";
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
### Fluid form
|
### Fluid form
|
||||||
|
|
||||||
|
Note that the `inline` input variants cannot be used within a `FluidForm`.
|
||||||
|
|
||||||
<FluidForm>
|
<FluidForm>
|
||||||
<TextInput
|
<TextInput labelText="User name" placeholder="Enter user name..." required />
|
||||||
labelText="User name"
|
|
||||||
placeholder="Enter user name..."
|
|
||||||
required />
|
|
||||||
<PasswordInput
|
<PasswordInput
|
||||||
required
|
required
|
||||||
type="password"
|
type="password"
|
||||||
|
@ -17,3 +20,7 @@
|
||||||
placeholder="Enter password..."
|
placeholder="Enter password..."
|
||||||
/>
|
/>
|
||||||
</FluidForm>
|
</FluidForm>
|
||||||
|
|
||||||
|
### Invalid state
|
||||||
|
|
||||||
|
<FileSource src="/framed/FluidForm/FluidFormInvalid" />
|
25
docs/src/pages/framed/FluidForm/FluidFormInvalid.svelte
Normal file
25
docs/src/pages/framed/FluidForm/FluidFormInvalid.svelte
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
<script>
|
||||||
|
import {
|
||||||
|
FluidForm,
|
||||||
|
TextInput,
|
||||||
|
PasswordInput,
|
||||||
|
} from "carbon-components-svelte";
|
||||||
|
|
||||||
|
let password = "";
|
||||||
|
let invalid = false;
|
||||||
|
|
||||||
|
$: invalid = !/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[a-zA-Z\d]{6,}$/.test(password);
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<FluidForm>
|
||||||
|
<TextInput labelText="User name" placeholder="Enter user name..." required />
|
||||||
|
<PasswordInput
|
||||||
|
bind:value="{password}"
|
||||||
|
invalid="{invalid}"
|
||||||
|
invalidText="Your password must be at least 6 characters as well as contain at least one uppercase, one lowercase, and one number."
|
||||||
|
required
|
||||||
|
type="password"
|
||||||
|
labelText="Password"
|
||||||
|
placeholder="Enter password..."
|
||||||
|
/>
|
||||||
|
</FluidForm>
|
|
@ -192,6 +192,13 @@
|
||||||
on:blur
|
on:blur
|
||||||
on:paste
|
on:paste
|
||||||
/>
|
/>
|
||||||
|
{#if isFluid && invalid}
|
||||||
|
<hr class="bx--text-input__divider" />
|
||||||
|
<div class="bx--form-requirement" id="{errorId}">
|
||||||
|
{invalidText}
|
||||||
|
</div>
|
||||||
|
{/if}
|
||||||
|
{#if !(isFluid && invalid)}
|
||||||
<button
|
<button
|
||||||
type="button"
|
type="button"
|
||||||
disabled="{disabled}"
|
disabled="{disabled}"
|
||||||
|
@ -225,6 +232,7 @@
|
||||||
<View class="bx--icon-visibility-on" />
|
<View class="bx--icon-visibility-on" />
|
||||||
{/if}
|
{/if}
|
||||||
</button>
|
</button>
|
||||||
|
{/if}
|
||||||
</div>
|
</div>
|
||||||
{#if !isFluid && invalid}
|
{#if !isFluid && invalid}
|
||||||
<div class:bx--form-requirement="{true}" id="{errorId}">
|
<div class:bx--form-requirement="{true}" id="{errorId}">
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue