@marwes-ui/svelte 1.3.0 → 1.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +30 -0
- package/README.md +43 -11
- package/dist/components/README.md +31 -0
- package/dist/components/accordion/AccordionField.svelte +20 -6
- package/dist/components/accordion/index.d.ts +5 -2
- package/dist/components/accordion/index.js +7 -1
- package/dist/components/accordion/types.d.ts +3 -0
- package/dist/components/avatar/AvatarGroup.svelte +5 -2
- package/dist/components/avatar/AvatarGroup.svelte.d.ts +1 -0
- package/dist/components/avatar/TeamAvatarGroup.svelte +1 -0
- package/dist/components/avatar/TeamAvatarGroup.svelte.d.ts +1 -0
- package/dist/components/avatar/index.d.ts +7 -1
- package/dist/components/avatar/index.js +6 -0
- package/dist/components/avatar/types.d.ts +28 -0
- package/dist/components/badge/BadgeGroup.svelte +2 -1
- package/dist/components/badge/index.d.ts +5 -1
- package/dist/components/badge/index.js +4 -0
- package/dist/components/badge/types.d.ts +3 -0
- package/dist/components/banner/Banner.svelte +67 -0
- package/dist/components/banner/Banner.svelte.d.ts +4 -0
- package/dist/components/banner/ErrorBanner.svelte +9 -0
- package/dist/components/banner/ErrorBanner.svelte.d.ts +4 -0
- package/dist/components/banner/InfoBanner.svelte +9 -0
- package/dist/components/banner/InfoBanner.svelte.d.ts +4 -0
- package/dist/components/banner/SuccessBanner.svelte +9 -0
- package/dist/components/banner/SuccessBanner.svelte.d.ts +4 -0
- package/dist/components/banner/WarningBanner.svelte +9 -0
- package/dist/components/banner/WarningBanner.svelte.d.ts +4 -0
- package/dist/components/banner/index.d.ts +7 -0
- package/dist/components/banner/index.js +6 -0
- package/dist/components/banner/types.d.ts +14 -0
- package/dist/components/banner/types.js +1 -0
- package/dist/components/breadcrumb/Breadcrumb.svelte +115 -0
- package/dist/components/breadcrumb/Breadcrumb.svelte.d.ts +4 -0
- package/dist/components/breadcrumb/index.d.ts +2 -0
- package/dist/components/breadcrumb/index.js +1 -0
- package/dist/components/breadcrumb/types.d.ts +8 -0
- package/dist/components/breadcrumb/types.js +1 -0
- package/dist/components/button/Button.svelte +8 -4
- package/dist/components/button/DestructiveButton.svelte +1 -1
- package/dist/components/button/IconButton.svelte +9 -0
- package/dist/components/button/IconButton.svelte.d.ts +4 -0
- package/dist/components/button/index.d.ts +24 -1
- package/dist/components/button/index.js +23 -0
- package/dist/components/button/types.d.ts +30 -1
- package/dist/components/card/Card.svelte +2 -1
- package/dist/components/card/index.d.ts +4 -1
- package/dist/components/card/index.js +3 -0
- package/dist/components/card/types.d.ts +4 -0
- package/dist/components/checkbox/CheckboxField.svelte +4 -3
- package/dist/components/checkbox/CheckboxGroupField.svelte +21 -9
- package/dist/components/checkbox/index.d.ts +2 -2
- package/dist/components/checkbox/index.js +4 -1
- package/dist/components/checkbox/types.d.ts +7 -0
- package/dist/components/context-menu/ContextMenu.svelte +56 -0
- package/dist/components/context-menu/ContextMenu.svelte.d.ts +4 -0
- package/dist/components/context-menu/index.d.ts +2 -0
- package/dist/components/context-menu/index.js +1 -0
- package/dist/components/context-menu/types.d.ts +7 -0
- package/dist/components/context-menu/types.js +1 -0
- package/dist/components/date-picker/DatePicker.svelte +14 -2
- package/dist/components/date-picker/DatePickerField.svelte +72 -0
- package/dist/components/date-picker/DatePickerField.svelte.d.ts +4 -0
- package/dist/components/date-picker/index.d.ts +2 -2
- package/dist/components/date-picker/index.js +3 -1
- package/dist/components/date-picker/types.d.ts +15 -0
- package/dist/components/dialog/Dialog.svelte +1 -0
- package/dist/components/dialog/DialogModal.svelte +12 -0
- package/dist/components/dialog/index.d.ts +1 -1
- package/dist/components/dialog/types.d.ts +7 -3
- package/dist/components/drawer/Drawer.svelte +132 -0
- package/dist/components/drawer/Drawer.svelte.d.ts +4 -0
- package/dist/components/drawer/index.d.ts +2 -0
- package/dist/components/drawer/index.js +1 -0
- package/dist/components/drawer/types.d.ts +16 -0
- package/dist/components/drawer/types.js +1 -0
- package/dist/components/heading/H1.svelte +10 -0
- package/dist/components/heading/H2.svelte +6 -0
- package/dist/components/heading/H3.svelte +7 -0
- package/dist/components/input/CurrencyField.svelte +1 -1
- package/dist/components/input/Input.svelte +1 -0
- package/dist/components/input/InputField.svelte +4 -3
- package/dist/components/input/InputOtp.svelte +21 -44
- package/dist/components/input/InputOtpField.svelte +81 -0
- package/dist/components/input/InputOtpField.svelte.d.ts +4 -0
- package/dist/components/input/RichText.svelte +7 -6
- package/dist/components/input/RichTextField.svelte +4 -3
- package/dist/components/input/Select.svelte +7 -31
- package/dist/components/input/SelectField.svelte +6 -3
- package/dist/components/input/Textarea.svelte +1 -0
- package/dist/components/input/TextareaField.svelte +20 -5
- package/dist/components/input/index.d.ts +12 -4
- package/dist/components/input/index.js +19 -3
- package/dist/components/input/types.d.ts +59 -5
- package/dist/components/pagination/Pagination.svelte +399 -0
- package/dist/components/pagination/Pagination.svelte.d.ts +4 -0
- package/dist/components/pagination/PaginationField.svelte +72 -0
- package/dist/components/pagination/PaginationField.svelte.d.ts +4 -0
- package/dist/components/pagination/index.d.ts +2 -0
- package/dist/components/pagination/index.js +2 -0
- package/dist/components/pagination/types.d.ts +40 -0
- package/dist/components/pagination/types.js +1 -0
- package/dist/components/progress-bar/ProgressBar.svelte +50 -0
- package/dist/components/progress-bar/ProgressBar.svelte.d.ts +4 -0
- package/dist/components/progress-bar/index.d.ts +2 -0
- package/dist/components/progress-bar/index.js +1 -0
- package/dist/components/progress-bar/types.d.ts +6 -0
- package/dist/components/progress-bar/types.js +1 -0
- package/dist/components/radio/OptionRadioGroup.svelte +39 -5
- package/dist/components/radio/OptionRadioGroup.svelte.d.ts +2 -5
- package/dist/components/radio/Radio.svelte +1 -0
- package/dist/components/radio/RadioGroupField.svelte +4 -3
- package/dist/components/radio/RatingRadioGroup.svelte +18 -3
- package/dist/components/radio/YesNoRadioGroup.svelte +18 -3
- package/dist/components/radio/index.d.ts +4 -2
- package/dist/components/radio/index.js +6 -1
- package/dist/components/radio/types.d.ts +47 -0
- package/dist/components/segmented-control/SegmentedControl.svelte +125 -0
- package/dist/components/segmented-control/SegmentedControl.svelte.d.ts +25 -0
- package/dist/components/segmented-control/SegmentedControlField.svelte +76 -0
- package/dist/components/segmented-control/SegmentedControlField.svelte.d.ts +25 -0
- package/dist/components/segmented-control/index.d.ts +2 -0
- package/dist/components/segmented-control/index.js +2 -0
- package/dist/components/segmented-control/types.d.ts +41 -0
- package/dist/components/segmented-control/types.js +1 -0
- package/dist/components/skip-link/SkipLink.svelte +12 -0
- package/dist/components/skip-link/SkipLink.svelte.d.ts +4 -0
- package/dist/components/skip-link/index.d.ts +2 -0
- package/dist/components/skip-link/index.js +1 -0
- package/dist/components/skip-link/types.d.ts +7 -0
- package/dist/components/skip-link/types.js +1 -0
- package/dist/components/slider/SliderField.svelte +9 -8
- package/dist/components/slider/index.d.ts +5 -2
- package/dist/components/slider/index.js +7 -1
- package/dist/components/slider/types.d.ts +21 -0
- package/dist/components/spinner/EmptyStateSpinner.svelte +2 -3
- package/dist/components/spinner/EmptyStateSpinner.svelte.d.ts +1 -2
- package/dist/components/spinner/Spinner.svelte +2 -0
- package/dist/components/spinner/index.d.ts +2 -1
- package/dist/components/spinner/index.js +1 -0
- package/dist/components/spinner/types.d.ts +1 -0
- package/dist/components/switch/Switch.svelte +1 -1
- package/dist/components/switch/SwitchField.svelte +6 -4
- package/dist/components/switch/index.d.ts +4 -2
- package/dist/components/switch/index.js +6 -1
- package/dist/components/switch/types.d.ts +3 -0
- package/dist/components/tab/TabGroup.svelte +7 -4
- package/dist/components/text/Text.svelte +23 -0
- package/dist/components/text/Text.svelte.d.ts +4 -0
- package/dist/components/text/index.d.ts +4 -0
- package/dist/components/text/index.js +2 -0
- package/dist/components/text/types.d.ts +15 -0
- package/dist/components/text/types.js +1 -0
- package/dist/components/tooltip/TooltipGroup.svelte +10 -2
- package/dist/index.d.ts +47 -29
- package/dist/index.js +51 -13
- package/dist/provider/MarwesProvider.svelte +26 -14
- package/dist/provider/types.d.ts +5 -2
- package/package.json +6 -5
- package/dist/components/accordion/README.md +0 -19
- package/dist/components/avatar/README.md +0 -19
- package/dist/components/badge/README.md +0 -16
- package/dist/components/button/README.md +0 -21
- package/dist/components/card/README.md +0 -15
- package/dist/components/checkbox/README.md +0 -17
- package/dist/components/date-picker/README.md +0 -17
- package/dist/components/dialog/README.md +0 -23
- package/dist/components/divider/README.md +0 -15
- package/dist/components/heading/README.md +0 -13
- package/dist/components/icon/README.md +0 -18
- package/dist/components/input/README.md +0 -24
- package/dist/components/paragraph/README.md +0 -13
- package/dist/components/radio/README.md +0 -16
- package/dist/components/skeleton/README.md +0 -16
- package/dist/components/slider/README.md +0 -20
- package/dist/components/spacing/README.md +0 -15
- package/dist/components/spinner/README.md +0 -19
- package/dist/components/stat-tile/README.md +0 -15
- package/dist/components/switch/README.md +0 -17
- package/dist/components/tab/README.md +0 -26
- package/dist/components/toast/README.md +0 -35
- package/dist/components/tooltip/README.md +0 -22
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
|
-
import { createSelectRecipe
|
|
2
|
+
import { createSelectRecipe } from "@marwes-ui/core";
|
|
3
3
|
import { mergeClass } from "../../internal/merge-class.js";
|
|
4
4
|
import type { SelectProps } from "./types.js";
|
|
5
5
|
|
|
@@ -24,7 +24,6 @@
|
|
|
24
24
|
...(describedBy ? { describedBy } : {}),
|
|
25
25
|
})
|
|
26
26
|
);
|
|
27
|
-
const mode = $derived(resolveSelectMode(rest));
|
|
28
27
|
const mergedClass = $derived(mergeClass(kit.className, className));
|
|
29
28
|
|
|
30
29
|
const placeholderSelected = $derived(!!placeholder && value === "");
|
|
@@ -36,7 +35,7 @@
|
|
|
36
35
|
}
|
|
37
36
|
</script>
|
|
38
37
|
|
|
39
|
-
|
|
38
|
+
<span class="mw-select__control">
|
|
40
39
|
<select
|
|
41
40
|
class={mergedClass}
|
|
42
41
|
{style}
|
|
@@ -45,6 +44,7 @@
|
|
|
45
44
|
disabled={kit.a11y.disabled}
|
|
46
45
|
required={kit.a11y.required}
|
|
47
46
|
aria-label={kit.a11y.ariaLabel}
|
|
47
|
+
aria-labelledby={kit.a11y.ariaLabelledBy}
|
|
48
48
|
aria-invalid={kit.a11y.ariaInvalid}
|
|
49
49
|
aria-describedby={kit.a11y.ariaDescribedBy}
|
|
50
50
|
data-placeholder-selected={placeholderSelected ? "true" : undefined}
|
|
@@ -58,31 +58,7 @@
|
|
|
58
58
|
<option value={opt.value} disabled={opt.disabled}>{opt.label}</option>
|
|
59
59
|
{/each}
|
|
60
60
|
</select>
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
{style}
|
|
66
|
-
id={kit.a11y.id}
|
|
67
|
-
name={kit.a11y.name}
|
|
68
|
-
disabled={kit.a11y.disabled}
|
|
69
|
-
required={kit.a11y.required}
|
|
70
|
-
aria-label={kit.a11y.ariaLabel}
|
|
71
|
-
aria-invalid={kit.a11y.ariaInvalid}
|
|
72
|
-
aria-describedby={kit.a11y.ariaDescribedBy}
|
|
73
|
-
data-placeholder-selected={placeholderSelected ? "true" : undefined}
|
|
74
|
-
{value}
|
|
75
|
-
onchange={handleChange}
|
|
76
|
-
>
|
|
77
|
-
{#if placeholder}
|
|
78
|
-
<option value="" disabled={rest.required ? true : undefined}>{placeholder}</option>
|
|
79
|
-
{/if}
|
|
80
|
-
{#each options as opt}
|
|
81
|
-
<option value={opt.value} disabled={opt.disabled}>{opt.label}</option>
|
|
82
|
-
{/each}
|
|
83
|
-
</select>
|
|
84
|
-
<svg class="mw-select__control-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false">
|
|
85
|
-
<path d="M11.5288 5.52876C11.7891 5.26841 12.2111 5.26841 12.4715 5.52876C12.7318 5.78911 12.7318 6.21114 12.4715 6.47147L8.47148 10.4715C8.21115 10.7318 7.78912 10.7318 7.52877 10.4715L3.52876 6.47147C3.26841 6.21112 3.26841 5.78911 3.52876 5.52876C3.78911 5.26841 4.21112 5.26841 4.47147 5.52876L6.58591 7.6432C7.36696 8.42425 8.63329 8.42425 9.41434 7.6432L11.5288 5.52876Z" fill="currentColor" />
|
|
86
|
-
</svg>
|
|
87
|
-
</span>
|
|
88
|
-
{/if}
|
|
61
|
+
<svg class="mw-select__control-icon" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false">
|
|
62
|
+
<path d="M11.5288 5.52876C11.7891 5.26841 12.2111 5.26841 12.4715 5.52876C12.7318 5.78911 12.7318 6.21114 12.4715 6.47147L8.47148 10.4715C8.21115 10.7318 7.78912 10.7318 7.52877 10.4715L3.52876 6.47147C3.26841 6.21112 3.26841 5.78911 3.52876 5.52876C3.78911 5.26841 4.21112 5.26841 4.47147 5.52876L6.58591 7.6432C7.36696 8.42425 8.63329 8.42425 9.41434 7.6432L11.5288 5.52876Z" fill="currentColor" />
|
|
63
|
+
</svg>
|
|
64
|
+
</span>
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
import { IconName, buildInputFieldA11yIds, resolveSelectMode } from "@marwes-ui/core";
|
|
3
3
|
import { mergeClass } from "../../internal/merge-class.js";
|
|
4
4
|
import Icon from "../icon/Icon.svelte";
|
|
5
|
+
import Text from "../text/Text.svelte";
|
|
5
6
|
import Select from "./Select.svelte";
|
|
6
7
|
import type { SelectFieldProps, SelectProps } from "./types.js";
|
|
7
8
|
|
|
@@ -83,6 +84,7 @@
|
|
|
83
84
|
select = { options: [] },
|
|
84
85
|
ariaDescribedBy,
|
|
85
86
|
value = $bindable(getInitialSelectValue(select)),
|
|
87
|
+
variant,
|
|
86
88
|
class: className,
|
|
87
89
|
}: SelectFieldProps = $props();
|
|
88
90
|
|
|
@@ -103,6 +105,7 @@
|
|
|
103
105
|
"mw-input-field",
|
|
104
106
|
"mw-input-field--select",
|
|
105
107
|
mode === "marwes" && "mw-input-field--select-marwes",
|
|
108
|
+
variant === "date" && "mw-input-field--select-date",
|
|
106
109
|
disabled && "mw-input-field--disabled",
|
|
107
110
|
invalid && "mw-input-field--invalid",
|
|
108
111
|
className
|
|
@@ -276,7 +279,7 @@
|
|
|
276
279
|
|
|
277
280
|
<div class={wrapperClass}>
|
|
278
281
|
<label class="mw-input-field__label" for={fieldId}>
|
|
279
|
-
<
|
|
282
|
+
<Text variant="label">{label}</Text>
|
|
280
283
|
</label>
|
|
281
284
|
<div class="mw-input-field__input-wrapper">
|
|
282
285
|
{#if mode === "native"}
|
|
@@ -384,12 +387,12 @@
|
|
|
384
387
|
</div>
|
|
385
388
|
{#if hasHelperText && !hasError}
|
|
386
389
|
<div class="mw-input-field__helper" id={a11yIds.helperTextId}>
|
|
387
|
-
<
|
|
390
|
+
<Text variant="caption">{helperText}</Text>
|
|
388
391
|
</div>
|
|
389
392
|
{/if}
|
|
390
393
|
{#if hasError}
|
|
391
394
|
<div class="mw-input-field__error" id={a11yIds.errorId} aria-live="polite">
|
|
392
|
-
<
|
|
395
|
+
<Text variant="caption">{error}</Text>
|
|
393
396
|
</div>
|
|
394
397
|
{/if}
|
|
395
398
|
</div>
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
2
|
import { buildInputFieldA11yIds } from "@marwes-ui/core";
|
|
3
3
|
import { mergeClass } from "../../internal/merge-class.js";
|
|
4
|
+
import Text from "../text/Text.svelte";
|
|
4
5
|
import Textarea from "./Textarea.svelte";
|
|
5
6
|
import type { TextareaFieldProps, TextareaProps } from "./types.js";
|
|
6
7
|
|
|
@@ -8,6 +9,7 @@
|
|
|
8
9
|
id: userProvidedId,
|
|
9
10
|
label,
|
|
10
11
|
helperText,
|
|
12
|
+
counterText,
|
|
11
13
|
error,
|
|
12
14
|
textarea = {},
|
|
13
15
|
ariaDescribedBy,
|
|
@@ -23,6 +25,7 @@
|
|
|
23
25
|
}
|
|
24
26
|
|
|
25
27
|
const hasHelperText = $derived(hasTextContent(helperText));
|
|
28
|
+
const hasCounterText = $derived(hasTextContent(counterText));
|
|
26
29
|
const hasError = $derived(hasTextContent(error));
|
|
27
30
|
const invalid = $derived(hasError || textarea.invalid || false);
|
|
28
31
|
const disabled = $derived(textarea.disabled || false);
|
|
@@ -39,19 +42,31 @@
|
|
|
39
42
|
|
|
40
43
|
<div class={wrapperClass}>
|
|
41
44
|
<label class="mw-input-field__label" for={fieldId}>
|
|
42
|
-
<
|
|
45
|
+
<Text variant="label">{label}</Text>
|
|
43
46
|
</label>
|
|
44
47
|
<div class="mw-input-field__input-wrapper">
|
|
45
48
|
<Textarea {...textarea} id={fieldId} {invalid} describedBy={a11yIds.describedBy ?? undefined} bind:value />
|
|
46
49
|
</div>
|
|
47
|
-
{#if hasHelperText && !hasError}
|
|
48
|
-
<div class="mw-input-
|
|
49
|
-
|
|
50
|
+
{#if (hasHelperText || hasCounterText) && !hasError}
|
|
51
|
+
<div class="mw-input-field__meta">
|
|
52
|
+
{#if hasHelperText}
|
|
53
|
+
<div class="mw-input-field__helper" id={a11yIds.helperTextId}>
|
|
54
|
+
<Text variant="caption">{helperText}</Text>
|
|
55
|
+
</div>
|
|
56
|
+
{:else}
|
|
57
|
+
<span aria-hidden="true"></span>
|
|
58
|
+
{/if}
|
|
59
|
+
|
|
60
|
+
{#if hasCounterText}
|
|
61
|
+
<div class="mw-input-field__counter">
|
|
62
|
+
<Text variant="caption">{counterText}</Text>
|
|
63
|
+
</div>
|
|
64
|
+
{/if}
|
|
50
65
|
</div>
|
|
51
66
|
{/if}
|
|
52
67
|
{#if hasError}
|
|
53
68
|
<div class="mw-input-field__error" id={a11yIds.errorId} aria-live="polite">
|
|
54
|
-
<
|
|
69
|
+
<Text variant="caption">{error}</Text>
|
|
55
70
|
</div>
|
|
56
71
|
{/if}
|
|
57
72
|
</div>
|
|
@@ -1,7 +1,15 @@
|
|
|
1
|
-
export { default as Input } from "./Input.svelte";
|
|
2
1
|
export { default as InputField } from "./InputField.svelte";
|
|
3
|
-
export { default as
|
|
2
|
+
export { default as InputOtpField } from "./InputOtpField.svelte";
|
|
3
|
+
export { default as RichTextField } from "./RichTextField.svelte";
|
|
4
|
+
export { default as DropdownField } from "./DropdownField.svelte";
|
|
5
|
+
export { default as SearchField } from "./SearchField.svelte";
|
|
6
|
+
export { default as PasswordField } from "./PasswordField.svelte";
|
|
7
|
+
export { default as EmailField } from "./EmailField.svelte";
|
|
8
|
+
export { default as DateOfBirthField } from "./DateOfBirthField.svelte";
|
|
9
|
+
export { default as ZipCodeField } from "./ZipCodeField.svelte";
|
|
10
|
+
export { default as PhoneField } from "./PhoneField.svelte";
|
|
11
|
+
export { default as URLField } from "./URLField.svelte";
|
|
12
|
+
export { default as CurrencyField } from "./CurrencyField.svelte";
|
|
4
13
|
export { default as SelectField } from "./SelectField.svelte";
|
|
5
|
-
export { default as Textarea } from "./Textarea.svelte";
|
|
6
14
|
export { default as TextareaField } from "./TextareaField.svelte";
|
|
7
|
-
export type {
|
|
15
|
+
export type { InputFieldProps, InputOtpFieldProps, RichTextFieldProps, CurrencyFieldProps, DateOfBirthFieldProps, DropdownFieldProps, EmailFieldProps, PasswordFieldProps, PhoneFieldProps, SearchFieldProps, SelectAppearance, SelectFieldProps, SelectFieldVariant, SelectOption, TextareaFieldProps, URLFieldProps, ZipCodeFieldProps, } from "./types.js";
|
|
@@ -1,6 +1,22 @@
|
|
|
1
|
-
|
|
1
|
+
// `Input` atom intentionally NOT re-exported — use `InputField` (or a purpose variant).
|
|
2
2
|
export { default as InputField } from "./InputField.svelte";
|
|
3
|
-
|
|
3
|
+
// `InputOtp` (the bare atom — cells-only render) is intentionally NOT
|
|
4
|
+
// re-exported here. Use `InputOtpField` instead.
|
|
5
|
+
export { default as InputOtpField } from "./InputOtpField.svelte";
|
|
6
|
+
// `RichText` (the atom) is intentionally NOT re-exported here.
|
|
7
|
+
// Use `RichTextField` instead. Internal consumers can deep-import
|
|
8
|
+
// "./RichText.svelte" directly.
|
|
9
|
+
export { default as RichTextField } from "./RichTextField.svelte";
|
|
10
|
+
export { default as DropdownField } from "./DropdownField.svelte";
|
|
11
|
+
export { default as SearchField } from "./SearchField.svelte";
|
|
12
|
+
export { default as PasswordField } from "./PasswordField.svelte";
|
|
13
|
+
export { default as EmailField } from "./EmailField.svelte";
|
|
14
|
+
export { default as DateOfBirthField } from "./DateOfBirthField.svelte";
|
|
15
|
+
export { default as ZipCodeField } from "./ZipCodeField.svelte";
|
|
16
|
+
export { default as PhoneField } from "./PhoneField.svelte";
|
|
17
|
+
export { default as URLField } from "./URLField.svelte";
|
|
18
|
+
export { default as CurrencyField } from "./CurrencyField.svelte";
|
|
19
|
+
// `Select` atom intentionally NOT re-exported — use `SelectField` or `DropdownField`.
|
|
4
20
|
export { default as SelectField } from "./SelectField.svelte";
|
|
5
|
-
|
|
21
|
+
// `Textarea` atom intentionally NOT re-exported — use `TextareaField`.
|
|
6
22
|
export { default as TextareaField } from "./TextareaField.svelte";
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { InputOptions, RichTextOptions, SelectOptions, TextareaOptions } from "@marwes-ui/core";
|
|
2
|
-
export type { SelectOption } from "@marwes-ui/core";
|
|
2
|
+
export type { SelectAppearance, SelectOption } from "@marwes-ui/core";
|
|
3
|
+
export type SelectFieldVariant = "default" | "date";
|
|
3
4
|
export interface InputProps extends Omit<InputOptions, "describedBy"> {
|
|
4
5
|
value?: string;
|
|
5
6
|
oninput?: (e: Event & {
|
|
@@ -29,13 +30,16 @@ export interface InputFieldProps {
|
|
|
29
30
|
value?: string;
|
|
30
31
|
class?: string;
|
|
31
32
|
}
|
|
33
|
+
/**
|
|
34
|
+
* Props for the bare `InputOtp` atom (Svelte).
|
|
35
|
+
*
|
|
36
|
+
* The atom renders only the OTP cells + hidden input. Use `InputOtpField`
|
|
37
|
+
* for labeled forms; reach for the atom directly only when you need a
|
|
38
|
+
* custom layout.
|
|
39
|
+
*/
|
|
32
40
|
export interface InputOtpProps {
|
|
33
41
|
id?: string;
|
|
34
42
|
name?: string;
|
|
35
|
-
label: string;
|
|
36
|
-
helperText?: string;
|
|
37
|
-
error?: string;
|
|
38
|
-
ariaDescribedBy?: string;
|
|
39
43
|
value?: string;
|
|
40
44
|
defaultValue?: string;
|
|
41
45
|
length?: number;
|
|
@@ -45,9 +49,28 @@ export interface InputOtpProps {
|
|
|
45
49
|
required?: boolean;
|
|
46
50
|
invalid?: boolean;
|
|
47
51
|
ariaLabel?: string;
|
|
52
|
+
label?: string;
|
|
53
|
+
ariaLabelledBy?: string;
|
|
54
|
+
/** ID(s) of elements that describe the input. Pre-merged by InputOtpField. */
|
|
55
|
+
describedBy?: string;
|
|
48
56
|
onvaluechange?: (value: string) => void;
|
|
49
57
|
class?: string;
|
|
50
58
|
}
|
|
59
|
+
export interface InputOtpFieldProps {
|
|
60
|
+
/** Optional: if omitted, a stable id is generated. */
|
|
61
|
+
id?: string;
|
|
62
|
+
/** Field label (required for accessibility). */
|
|
63
|
+
label: string;
|
|
64
|
+
/** Optional helper text shown below the cells. */
|
|
65
|
+
helperText?: string;
|
|
66
|
+
/** Optional error message. */
|
|
67
|
+
error?: string;
|
|
68
|
+
/** Props forwarded to the bare InputOtp atom. */
|
|
69
|
+
inputOtp?: Omit<InputOtpProps, "id" | "ariaLabel" | "label" | "ariaLabelledBy" | "describedBy">;
|
|
70
|
+
/** Additional aria-describedby IDs to merge with internal helper/error IDs. */
|
|
71
|
+
ariaDescribedBy?: string;
|
|
72
|
+
class?: string;
|
|
73
|
+
}
|
|
51
74
|
export interface RichTextProps extends RichTextOptions {
|
|
52
75
|
onvaluechange?: (value: string) => void;
|
|
53
76
|
class?: string;
|
|
@@ -81,6 +104,7 @@ export interface SelectFieldProps {
|
|
|
81
104
|
select?: SelectProps;
|
|
82
105
|
ariaDescribedBy?: string;
|
|
83
106
|
value?: string;
|
|
107
|
+
variant?: SelectFieldVariant;
|
|
84
108
|
class?: string;
|
|
85
109
|
}
|
|
86
110
|
export interface TextareaProps extends Omit<TextareaOptions, "describedBy"> {
|
|
@@ -96,9 +120,39 @@ export interface TextareaFieldProps {
|
|
|
96
120
|
id?: string;
|
|
97
121
|
label: string;
|
|
98
122
|
helperText?: string;
|
|
123
|
+
counterText?: string;
|
|
99
124
|
error?: string;
|
|
100
125
|
textarea?: Omit<TextareaProps, "value">;
|
|
101
126
|
ariaDescribedBy?: string;
|
|
102
127
|
value?: string;
|
|
103
128
|
class?: string;
|
|
104
129
|
}
|
|
130
|
+
export type DropdownFieldProps = Omit<SelectFieldProps, "select"> & {
|
|
131
|
+
select: Omit<SelectProps, "appearance"> & {
|
|
132
|
+
native?: boolean;
|
|
133
|
+
};
|
|
134
|
+
};
|
|
135
|
+
export type SearchFieldProps = Omit<InputFieldProps, "input"> & {
|
|
136
|
+
input?: Omit<InputFieldProps["input"], "type" | "inputMode">;
|
|
137
|
+
};
|
|
138
|
+
export type PasswordFieldProps = Omit<InputFieldProps, "input"> & {
|
|
139
|
+
input?: Omit<InputFieldProps["input"], "type">;
|
|
140
|
+
};
|
|
141
|
+
export type EmailFieldProps = Omit<InputFieldProps, "input"> & {
|
|
142
|
+
input?: Omit<InputFieldProps["input"], "type" | "inputMode" | "autoComplete">;
|
|
143
|
+
};
|
|
144
|
+
export type DateOfBirthFieldProps = Omit<InputFieldProps, "input"> & {
|
|
145
|
+
input?: Omit<InputFieldProps["input"], "type" | "inputMode" | "autoComplete">;
|
|
146
|
+
};
|
|
147
|
+
export type ZipCodeFieldProps = Omit<InputFieldProps, "input"> & {
|
|
148
|
+
input?: Omit<InputFieldProps["input"], "type" | "inputMode" | "autoComplete">;
|
|
149
|
+
};
|
|
150
|
+
export type PhoneFieldProps = Omit<InputFieldProps, "input"> & {
|
|
151
|
+
input?: Omit<InputFieldProps["input"], "type" | "inputMode" | "autoComplete">;
|
|
152
|
+
};
|
|
153
|
+
export type URLFieldProps = Omit<InputFieldProps, "input"> & {
|
|
154
|
+
input?: Omit<InputFieldProps["input"], "type" | "inputMode" | "autoComplete">;
|
|
155
|
+
};
|
|
156
|
+
export type CurrencyFieldProps = InputFieldProps & {
|
|
157
|
+
currency?: string;
|
|
158
|
+
};
|