@getmicdrop/svelte-components 5.9.6 → 5.10.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/dist/calendar/AboutShow/AboutShow.svelte +172 -172
- package/dist/calendar/Calendar/MiniMonthCalendar.svelte +782 -782
- package/dist/calendar/FAQs/FAQs.svelte +75 -75
- package/dist/calendar/MonthSwitcher/MonthSwitcher.svelte +126 -126
- package/dist/calendar/OrderSummary/OrderSummary.svelte +367 -367
- package/dist/calendar/PublicCard/PublicCard.svelte +146 -146
- package/dist/calendar/ShowCard/ShowCard.svelte +157 -157
- package/dist/calendar/ShowTimeCard/ShowTimeCard.svelte +61 -61
- package/dist/calendar/index.js +15 -15
- package/dist/components/Heading.svelte +60 -60
- package/dist/components/Layout/AppShell.svelte +104 -104
- package/dist/components/Layout/ContentSection.svelte +80 -80
- package/dist/components/Layout/Grid.svelte +101 -101
- package/dist/components/Layout/Heading.svelte +81 -81
- package/dist/components/Layout/PageContainer.svelte +69 -69
- package/dist/components/Layout/Responsive.svelte +75 -75
- package/dist/components/Layout/Section.svelte +80 -80
- package/dist/components/Layout/ShowOnDesktop.svelte +37 -37
- package/dist/components/Layout/ShowOnMobile.svelte +37 -37
- package/dist/components/Layout/Sidebar.svelte +108 -108
- package/dist/components/Layout/Stack.spec.js +1 -1
- package/dist/components/Layout/Stack.svelte +52 -52
- package/dist/components/Layout/Text.svelte +87 -87
- package/dist/components/Layout/TwoColumn.svelte +108 -108
- package/dist/components/Text.svelte +53 -53
- package/dist/config.js +5 -5
- package/dist/config.spec.js +29 -29
- package/dist/constants/formOptions.js +48 -48
- package/dist/constants/validation.js +91 -91
- package/dist/constants/validation.spec.js +64 -64
- package/dist/datetime/__tests__/format.test.js +1 -1
- package/dist/datetime/__tests__/parse.test.js +1 -1
- package/dist/datetime/__tests__/timezone.test.js +1 -1
- package/dist/datetime/parse.js +1 -1
- package/dist/forms/createFormStore.svelte.js +0 -1
- package/dist/index.js +51 -51
- package/dist/index.spec.js +370 -370
- package/dist/patterns/data/DataGrid.svelte +45 -45
- package/dist/patterns/data/DataList.svelte +24 -24
- package/dist/patterns/data/DataTable.svelte +45 -45
- package/dist/patterns/data/index.js +4 -4
- package/dist/patterns/forms/FormActions.spec.js +95 -95
- package/dist/patterns/forms/FormActions.stories.svelte +97 -97
- package/dist/patterns/forms/FormActions.svelte +46 -46
- package/dist/patterns/forms/FormGrid.svelte +33 -33
- package/dist/patterns/forms/FormSection.svelte +32 -32
- package/dist/patterns/forms/FormValidationSummary.stories.svelte +97 -97
- package/dist/patterns/forms/FormValidationSummary.svelte +74 -74
- package/dist/patterns/forms/index.js +5 -5
- package/dist/patterns/index.js +18 -18
- package/dist/patterns/layout/Sidebar.svelte +39 -39
- package/dist/patterns/layout/Stack.svelte +61 -61
- package/dist/patterns/layout/index.js +29 -29
- package/dist/patterns/navigation/BottomNav.stories.svelte +117 -117
- package/dist/patterns/navigation/BottomNav.svelte +74 -74
- package/dist/patterns/navigation/Header.stories.svelte +77 -77
- package/dist/patterns/navigation/Header.svelte +255 -255
- package/dist/patterns/navigation/index.js +3 -3
- package/dist/patterns/page/PageHeader.svelte +49 -49
- package/dist/patterns/page/PageLayout.svelte +40 -40
- package/dist/patterns/page/PageLoader.spec.js +57 -57
- package/dist/patterns/page/PageLoader.stories.svelte +137 -137
- package/dist/patterns/page/PageLoader.svelte +53 -53
- package/dist/patterns/page/SectionHeader.svelte +51 -51
- package/dist/patterns/page/index.js +5 -5
- package/dist/presets/badges.js +112 -112
- package/dist/presets/buttons.js +76 -76
- package/dist/presets/index.js +9 -9
- package/dist/primitives/Accordion/Accordion.stories.svelte +75 -75
- package/dist/primitives/Accordion/Accordion.svelte +62 -62
- package/dist/primitives/Accordion/AccordionItem.spec.js +2 -2
- package/dist/primitives/Accordion/AccordionItem.svelte +95 -95
- package/dist/primitives/Accordion/AccordionItemWrapper.test.svelte +107 -107
- package/dist/primitives/Alert/Alert.spec.js +173 -173
- package/dist/primitives/Alert/Alert.stories.svelte +88 -88
- package/dist/primitives/Alert/Alert.svelte +64 -64
- package/dist/primitives/Avatar/Avatar.stories.svelte +94 -94
- package/dist/primitives/Avatar/Avatar.svelte +66 -66
- package/dist/primitives/Badges/Badge.spec.js +144 -144
- package/dist/primitives/Badges/Badge.stories.svelte +86 -86
- package/dist/primitives/Badges/Badge.svelte +99 -99
- package/dist/primitives/BottomSheet/BottomSheet.spec.js +136 -136
- package/dist/primitives/BottomSheet/BottomSheet.stories.svelte +83 -83
- package/dist/primitives/BottomSheet/BottomSheet.svelte +100 -100
- package/dist/primitives/Breadcrumb/Breadcrumb.spec.js +122 -122
- package/dist/primitives/Breadcrumb/Breadcrumb.stories.svelte +23 -23
- package/dist/primitives/Breadcrumb/Breadcrumb.svelte +98 -98
- package/dist/primitives/Button/Button.spec.js +223 -223
- package/dist/primitives/Button/Button.stories.svelte +76 -76
- package/dist/primitives/Button/Button.svelte +283 -283
- package/dist/primitives/Button/ButtonGroup.svelte +50 -50
- package/dist/primitives/Button/ButtonSaveDemo.spec.js +146 -146
- package/dist/primitives/Button/ButtonSaveDemo.svelte +25 -25
- package/dist/primitives/Button/ButtonVariantShowcase.svelte +129 -129
- package/dist/primitives/Card.spec.js +49 -49
- package/dist/primitives/Card.stories.svelte +22 -22
- package/dist/primitives/Card.svelte +28 -28
- package/dist/primitives/Checkbox/Checkbox.spec.js +2 -2
- package/dist/primitives/Checkbox/Checkbox.stories.svelte +84 -84
- package/dist/primitives/Checkbox/Checkbox.svelte +88 -88
- package/dist/primitives/DarkModeToggle.spec.js +390 -390
- package/dist/primitives/DarkModeToggle.stories.svelte +57 -57
- package/dist/primitives/DarkModeToggle.svelte +136 -136
- package/dist/primitives/Drawer/Drawer.stories.svelte +100 -100
- package/dist/primitives/Drawer/Drawer.svelte +236 -236
- package/dist/primitives/Dropdown/Dropdown.stories.svelte +137 -137
- package/dist/primitives/Dropdown/Dropdown.svelte +170 -170
- package/dist/primitives/Dropdown/DropdownDivider.svelte +9 -9
- package/dist/primitives/Dropdown/DropdownItem.svelte +80 -80
- package/dist/primitives/Helper/Helper.svelte +33 -33
- package/dist/primitives/Icons/ArrowLeft.svelte +21 -21
- package/dist/primitives/Icons/ArrowRight.svelte +21 -21
- package/dist/primitives/Icons/Availability.svelte +27 -27
- package/dist/primitives/Icons/Back.svelte +27 -27
- package/dist/primitives/Icons/CheckCircle.svelte +19 -19
- package/dist/primitives/Icons/CheckCircleOutline.svelte +28 -28
- package/dist/primitives/Icons/ChevronLeft.svelte +17 -17
- package/dist/primitives/Icons/ChevronRight.svelte +17 -17
- package/dist/primitives/Icons/Copy.svelte +28 -28
- package/dist/primitives/Icons/Cross.svelte +18 -18
- package/dist/primitives/Icons/DownArrow.svelte +21 -21
- package/dist/primitives/Icons/ErrorCircle.svelte +19 -19
- package/dist/primitives/Icons/FacebookIcon.svelte +15 -15
- package/dist/primitives/Icons/Home.svelte +28 -28
- package/dist/primitives/Icons/Icon.spec.js +175 -175
- package/dist/primitives/Icons/Icon.stories.svelte +100 -100
- package/dist/primitives/Icons/Icon.svelte +79 -79
- package/dist/primitives/Icons/IconGallery.stories.svelte +235 -235
- package/dist/primitives/Icons/ImageOutline.svelte +21 -21
- package/dist/primitives/Icons/Info.svelte +20 -20
- package/dist/primitives/Icons/InstagramIcon.svelte +21 -21
- package/dist/primitives/Icons/LogoInstagram.svelte +15 -15
- package/dist/primitives/Icons/Message.svelte +28 -28
- package/dist/primitives/Icons/MoonIcon.svelte +18 -18
- package/dist/primitives/Icons/More.svelte +34 -34
- package/dist/primitives/Icons/MoreHori.spec.js +67 -67
- package/dist/primitives/Icons/MoreHori.svelte +35 -35
- package/dist/primitives/Icons/Notification.svelte +27 -27
- package/dist/primitives/Icons/Payment.svelte +27 -27
- package/dist/primitives/Icons/Profile.svelte +34 -34
- package/dist/primitives/Icons/Reload.svelte +42 -42
- package/dist/primitives/Icons/Shows.svelte +34 -34
- package/dist/primitives/Icons/Signout.svelte +34 -34
- package/dist/primitives/Icons/SunIcon.svelte +21 -21
- package/dist/primitives/Icons/TiktokIcon.svelte +15 -15
- package/dist/primitives/Icons/TrashBinOutline.svelte +21 -21
- package/dist/primitives/Icons/TwitterIcon.svelte +15 -15
- package/dist/primitives/Icons/WarningIcon.spec.js +30 -30
- package/dist/primitives/Icons/WarningIcon.svelte +24 -24
- package/dist/primitives/Input/Input.spec.js +573 -573
- package/dist/primitives/Input/Input.stories.svelte +139 -139
- package/dist/primitives/Input/Input.svelte +423 -433
- package/dist/primitives/Input/Select.spec.js +218 -218
- package/dist/primitives/Input/Select.stories.svelte +112 -112
- package/dist/primitives/Input/Select.svelte +252 -252
- package/dist/primitives/Input/Textarea.stories.svelte +137 -137
- package/dist/primitives/Input/Textarea.svelte +105 -105
- package/dist/primitives/Label/Label.svelte +37 -37
- package/dist/primitives/Modal/Modal.spec.js +99 -99
- package/dist/primitives/Modal/Modal.stories.svelte +86 -86
- package/dist/primitives/Modal/Modal.svelte +157 -157
- package/dist/primitives/NumberInput/NumberInput.svelte +105 -105
- package/dist/primitives/Pagination/Pagination.stories.svelte +76 -76
- package/dist/primitives/Pagination/Pagination.svelte +261 -261
- package/dist/primitives/Radio/Radio.spec.js +2 -2
- package/dist/primitives/Radio/Radio.stories.svelte +80 -80
- package/dist/primitives/Radio/Radio.svelte +67 -67
- package/dist/primitives/Skeleton/CardPlaceholder.svelte +87 -87
- package/dist/primitives/Skeleton/ImagePlaceholder.svelte +59 -59
- package/dist/primitives/Skeleton/ListPlaceholder.svelte +76 -76
- package/dist/primitives/Skeleton/Skeleton.stories.svelte +151 -151
- package/dist/primitives/Skeleton/Skeleton.svelte +46 -46
- package/dist/primitives/Spinner/Spinner.spec.js +71 -71
- package/dist/primitives/Spinner/Spinner.stories.svelte +29 -29
- package/dist/primitives/Spinner/Spinner.svelte +44 -44
- package/dist/primitives/Tabs/TabItem.svelte +52 -52
- package/dist/primitives/Tabs/Tabs.stories.svelte +112 -112
- package/dist/primitives/Tabs/Tabs.svelte +137 -137
- package/dist/primitives/Toggle.spec.js +146 -143
- package/dist/primitives/Toggle.stories.svelte +92 -92
- package/dist/primitives/Toggle.svelte +132 -70
- package/dist/primitives/Toggle.svelte.d.ts.map +1 -1
- package/dist/primitives/Tooltip/Tooltip.svelte +83 -83
- package/dist/primitives/Typography/Typography.svelte +53 -53
- package/dist/primitives/ValidationError.spec.js +103 -103
- package/dist/primitives/ValidationError.stories.svelte +112 -112
- package/dist/primitives/ValidationError.svelte +29 -29
- package/dist/primitives/index.js +92 -92
- package/dist/recipes/CropImage/CropImage.spec.js +208 -208
- package/dist/recipes/CropImage/CropImage.stories.svelte +104 -104
- package/dist/recipes/CropImage/CropImage.svelte +219 -219
- package/dist/recipes/ImageUploader/ImageUploader.stories.svelte +125 -125
- package/dist/recipes/ImageUploader/ImageUploader.svelte +970 -970
- package/dist/recipes/SuperLogin/SuperLogin.svelte +1 -1
- package/dist/recipes/Toaster/Toaster.stories.svelte +62 -62
- package/dist/recipes/feedback/EmptyState/EmptyState.svelte +66 -66
- package/dist/recipes/feedback/ErrorDisplay.spec.js +69 -69
- package/dist/recipes/feedback/ErrorDisplay.stories.svelte +113 -113
- package/dist/recipes/feedback/ErrorDisplay.svelte +67 -67
- package/dist/recipes/feedback/StatusIndicator/StatusIndicator.spec.js +133 -133
- package/dist/recipes/feedback/StatusIndicator/StatusIndicator.svelte +176 -176
- package/dist/recipes/feedback/index.js +4 -4
- package/dist/recipes/fields/CheckboxField.svelte +85 -85
- package/dist/recipes/fields/FormField.svelte +58 -58
- package/dist/recipes/fields/RadioGroup.svelte +95 -95
- package/dist/recipes/fields/SelectField.svelte +82 -82
- package/dist/recipes/fields/TextareaField.svelte +101 -101
- package/dist/recipes/fields/ToggleField.svelte +60 -60
- package/dist/recipes/fields/index.js +7 -7
- package/dist/recipes/index.js +24 -24
- package/dist/recipes/inputs/MultiSelect.spec.js +260 -260
- package/dist/recipes/inputs/MultiSelect.stories.svelte +133 -133
- package/dist/recipes/inputs/MultiSelect.svelte +283 -283
- package/dist/recipes/inputs/OTPInput.spec.js +251 -251
- package/dist/recipes/inputs/OTPInput.stories.svelte +162 -162
- package/dist/recipes/inputs/OTPInput.svelte +117 -117
- package/dist/recipes/inputs/PasswordInput.svelte +121 -121
- package/dist/recipes/inputs/PasswordStrengthIndicator/PasswordStrengthIndicator.svelte +117 -117
- package/dist/recipes/inputs/PlaceAutocomplete/PlaceAutocomplete.stories.svelte +170 -170
- package/dist/recipes/inputs/PlaceAutocomplete/PlaceAutocomplete.svelte +344 -344
- package/dist/recipes/inputs/Search.svelte +102 -102
- package/dist/recipes/inputs/SelectDropdown.svelte +171 -171
- package/dist/recipes/inputs/index.js +8 -8
- package/dist/recipes/modals/AlertModal.svelte +130 -130
- package/dist/recipes/modals/ConfirmationModal.spec.js +206 -206
- package/dist/recipes/modals/ConfirmationModal.stories.svelte +119 -119
- package/dist/recipes/modals/ConfirmationModal.svelte +152 -152
- package/dist/recipes/modals/InputModal.svelte +182 -182
- package/dist/recipes/modals/ModalStateManager.spec.js +100 -100
- package/dist/recipes/modals/ModalStateManager.svelte +77 -77
- package/dist/recipes/modals/ModalTestWrapper.svelte +65 -65
- package/dist/recipes/modals/StatusModal.svelte +206 -206
- package/dist/recipes/modals/index.js +7 -7
- package/dist/services/EventService.js +75 -75
- package/dist/services/EventService.spec.js +217 -217
- package/dist/services/ShowService.d.ts +46 -46
- package/dist/services/ShowService.js +143 -143
- package/dist/services/ShowService.spec.js +345 -345
- package/dist/stores/auth.d.ts +8 -8
- package/dist/stores/index.js +9 -9
- package/dist/stores/toaster.d.ts +3 -3
- package/dist/stores/toaster.js +13 -13
- package/dist/stores/toaster.spec.js +59 -59
- package/dist/stories/ButtonAuditDashboard.spec.js +1 -1
- package/dist/stories/ButtonAuditDashboard.svelte +25 -25
- package/dist/stories/ButtonAuditReview.stories.svelte +14 -14
- package/dist/stories/ButtonAuditReview.svelte +427 -427
- package/dist/stories/ButtonGridView.svelte +1 -1
- package/dist/stories/PatternsGallery.stories.svelte +19 -19
- package/dist/stories/PatternsGallery.svelte +399 -399
- package/dist/stories/PrimitivesGallery.stories.svelte +19 -19
- package/dist/stories/PrimitivesGallery.svelte +752 -752
- package/dist/stories/RecipesGallery.stories.svelte +19 -19
- package/dist/stories/RecipesGallery.svelte +471 -471
- package/dist/stories/button-audit-manifest.json +11186 -11186
- package/dist/tailwind/preset.cjs +82 -82
- package/dist/telemetry.js +405 -405
- package/dist/telemetry.server.js +212 -212
- package/dist/telemetry.server.spec.js +438 -438
- package/dist/telemetry.spec.js +1169 -1169
- package/dist/tokens/tokens.css +87 -87
- package/dist/tokens/typography-base.css +163 -163
- package/dist/tokens/utilities.css +353 -353
- package/dist/utils/__tests__/auth.test.js +431 -431
- package/dist/utils/apiConfig.d.ts +29 -29
- package/dist/utils/apiConfig.js +120 -120
- package/dist/utils/apiConfig.spec.js +219 -219
- package/dist/utils/auth.d.ts +46 -46
- package/dist/utils/auth.js +195 -195
- package/dist/utils/greetings.js +187 -187
- package/dist/utils/greetings.spec.js +337 -337
- package/dist/utils/imageValidation.js +121 -121
- package/dist/utils/imageValidation.spec.js +223 -223
- package/dist/utils/portal.d.ts +11 -11
- package/dist/utils/portal.js +25 -25
- package/dist/utils/portal.spec.js +143 -143
- package/dist/utils/transitions.js +4 -4
- package/dist/utils/utils/utils.d.ts +72 -72
- package/dist/utils/utils/utils.js +3 -3
- package/dist/utils/utils/utils.spec.js +698 -698
- package/dist/utils/utils.d.ts +97 -97
- package/dist/utils/utils.js +693 -693
- package/dist/utils/utils.spec.js +643 -643
- package/package.json +297 -297
|
@@ -1,95 +1,95 @@
|
|
|
1
|
-
<script lang="ts">
|
|
2
|
-
import type { Snippet } from 'svelte';
|
|
3
|
-
import Radio from '../../primitives/Radio/Radio.svelte';
|
|
4
|
-
import ValidationError from '../../primitives/ValidationError.svelte';
|
|
5
|
-
import { typography } from '../../tokens/typography';
|
|
6
|
-
|
|
7
|
-
interface RadioOption {
|
|
8
|
-
value: string;
|
|
9
|
-
label: string;
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
interface Props {
|
|
13
|
-
/** Currently selected value */
|
|
14
|
-
value?: string;
|
|
15
|
-
/** Radio options array */
|
|
16
|
-
options?: RadioOption[];
|
|
17
|
-
/** Name attribute for the radio group */
|
|
18
|
-
name?: string;
|
|
19
|
-
/** Whether all radios are disabled */
|
|
20
|
-
disabled?: boolean;
|
|
21
|
-
/** Color variant for radios */
|
|
22
|
-
color?: 'blue' | 'red' | 'green' | 'purple' | 'orange' | 'yellow';
|
|
23
|
-
/** Group label text */
|
|
24
|
-
label?: string;
|
|
25
|
-
/** Hint text shown below label (string version) */
|
|
26
|
-
hint?: string;
|
|
27
|
-
/** Custom hint content snippet (supports links, formatting) */
|
|
28
|
-
hintContent?: Snippet;
|
|
29
|
-
/** Error message to display */
|
|
30
|
-
error?: string;
|
|
31
|
-
/** Show required indicator */
|
|
32
|
-
required?: boolean;
|
|
33
|
-
/** Layout direction */
|
|
34
|
-
direction?: 'vertical' | 'horizontal';
|
|
35
|
-
/** Additional class for the fieldset */
|
|
36
|
-
class?: string;
|
|
37
|
-
/** Change handler */
|
|
38
|
-
onchange?: (detail: { value: string }) => void;
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
let {
|
|
42
|
-
value = $bindable(''),
|
|
43
|
-
options = [],
|
|
44
|
-
name = '',
|
|
45
|
-
disabled = false,
|
|
46
|
-
color = 'blue',
|
|
47
|
-
label = '',
|
|
48
|
-
hint = '',
|
|
49
|
-
hintContent,
|
|
50
|
-
error = '',
|
|
51
|
-
required = false,
|
|
52
|
-
direction = 'vertical',
|
|
53
|
-
class: className = '',
|
|
54
|
-
onchange
|
|
55
|
-
}: Props = $props();
|
|
56
|
-
|
|
57
|
-
let layoutClass = $derived(
|
|
58
|
-
direction === 'horizontal'
|
|
59
|
-
? 'flex flex-wrap gap-4'
|
|
60
|
-
: 'flex flex-col gap-2'
|
|
61
|
-
);
|
|
62
|
-
</script>
|
|
63
|
-
|
|
64
|
-
<fieldset class={className}>
|
|
65
|
-
{#if label}
|
|
66
|
-
<legend class={`${typography.label} mb-2 ${error ? 'text-red-500' : ''}`}>
|
|
67
|
-
{label}{#if required}<span class="text-red-500 ml-0.5">*</span>{/if}
|
|
68
|
-
</legend>
|
|
69
|
-
{/if}
|
|
70
|
-
|
|
71
|
-
{#if !error}
|
|
72
|
-
{#if hintContent}
|
|
73
|
-
<p class={`${typography.smMuted} mb-2`}>{@render hintContent()}</p>
|
|
74
|
-
{:else if hint}
|
|
75
|
-
<p class={`${typography.smMuted} mb-2`}>{hint}</p>
|
|
76
|
-
{/if}
|
|
77
|
-
{/if}
|
|
78
|
-
|
|
79
|
-
<div class={layoutClass}>
|
|
80
|
-
{#each options as option}
|
|
81
|
-
<Radio
|
|
82
|
-
{name}
|
|
83
|
-
value={option.value}
|
|
84
|
-
{disabled}
|
|
85
|
-
{color}
|
|
86
|
-
bind:group={value}
|
|
87
|
-
{onchange}
|
|
88
|
-
>
|
|
89
|
-
{option.label}
|
|
90
|
-
</Radio>
|
|
91
|
-
{/each}
|
|
92
|
-
</div>
|
|
93
|
-
|
|
94
|
-
<ValidationError {error} />
|
|
95
|
-
</fieldset>
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import type { Snippet } from 'svelte';
|
|
3
|
+
import Radio from '../../primitives/Radio/Radio.svelte';
|
|
4
|
+
import ValidationError from '../../primitives/ValidationError.svelte';
|
|
5
|
+
import { typography } from '../../tokens/typography';
|
|
6
|
+
|
|
7
|
+
interface RadioOption {
|
|
8
|
+
value: string;
|
|
9
|
+
label: string;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
interface Props {
|
|
13
|
+
/** Currently selected value */
|
|
14
|
+
value?: string;
|
|
15
|
+
/** Radio options array */
|
|
16
|
+
options?: RadioOption[];
|
|
17
|
+
/** Name attribute for the radio group */
|
|
18
|
+
name?: string;
|
|
19
|
+
/** Whether all radios are disabled */
|
|
20
|
+
disabled?: boolean;
|
|
21
|
+
/** Color variant for radios */
|
|
22
|
+
color?: 'blue' | 'red' | 'green' | 'purple' | 'orange' | 'yellow';
|
|
23
|
+
/** Group label text */
|
|
24
|
+
label?: string;
|
|
25
|
+
/** Hint text shown below label (string version) */
|
|
26
|
+
hint?: string;
|
|
27
|
+
/** Custom hint content snippet (supports links, formatting) */
|
|
28
|
+
hintContent?: Snippet;
|
|
29
|
+
/** Error message to display */
|
|
30
|
+
error?: string;
|
|
31
|
+
/** Show required indicator */
|
|
32
|
+
required?: boolean;
|
|
33
|
+
/** Layout direction */
|
|
34
|
+
direction?: 'vertical' | 'horizontal';
|
|
35
|
+
/** Additional class for the fieldset */
|
|
36
|
+
class?: string;
|
|
37
|
+
/** Change handler */
|
|
38
|
+
onchange?: (detail: { value: string }) => void;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
let {
|
|
42
|
+
value = $bindable(''),
|
|
43
|
+
options = [],
|
|
44
|
+
name = '',
|
|
45
|
+
disabled = false,
|
|
46
|
+
color = 'blue',
|
|
47
|
+
label = '',
|
|
48
|
+
hint = '',
|
|
49
|
+
hintContent,
|
|
50
|
+
error = '',
|
|
51
|
+
required = false,
|
|
52
|
+
direction = 'vertical',
|
|
53
|
+
class: className = '',
|
|
54
|
+
onchange
|
|
55
|
+
}: Props = $props();
|
|
56
|
+
|
|
57
|
+
let layoutClass = $derived(
|
|
58
|
+
direction === 'horizontal'
|
|
59
|
+
? 'flex flex-wrap gap-4'
|
|
60
|
+
: 'flex flex-col gap-2'
|
|
61
|
+
);
|
|
62
|
+
</script>
|
|
63
|
+
|
|
64
|
+
<fieldset class={className}>
|
|
65
|
+
{#if label}
|
|
66
|
+
<legend class={`${typography.label} mb-2 ${error ? 'text-red-500' : ''}`}>
|
|
67
|
+
{label}{#if required}<span class="text-red-500 ml-0.5">*</span>{/if}
|
|
68
|
+
</legend>
|
|
69
|
+
{/if}
|
|
70
|
+
|
|
71
|
+
{#if !error}
|
|
72
|
+
{#if hintContent}
|
|
73
|
+
<p class={`${typography.smMuted} mb-2`}>{@render hintContent()}</p>
|
|
74
|
+
{:else if hint}
|
|
75
|
+
<p class={`${typography.smMuted} mb-2`}>{hint}</p>
|
|
76
|
+
{/if}
|
|
77
|
+
{/if}
|
|
78
|
+
|
|
79
|
+
<div class={layoutClass}>
|
|
80
|
+
{#each options as option}
|
|
81
|
+
<Radio
|
|
82
|
+
{name}
|
|
83
|
+
value={option.value}
|
|
84
|
+
{disabled}
|
|
85
|
+
{color}
|
|
86
|
+
bind:group={value}
|
|
87
|
+
{onchange}
|
|
88
|
+
>
|
|
89
|
+
{option.label}
|
|
90
|
+
</Radio>
|
|
91
|
+
{/each}
|
|
92
|
+
</div>
|
|
93
|
+
|
|
94
|
+
<ValidationError {error} />
|
|
95
|
+
</fieldset>
|
|
@@ -1,82 +1,82 @@
|
|
|
1
|
-
<script lang="ts">
|
|
2
|
-
import type { Snippet } from 'svelte';
|
|
3
|
-
import Select from '../../primitives/Input/Select.svelte';
|
|
4
|
-
import { typography } from '../../tokens/typography';
|
|
5
|
-
|
|
6
|
-
interface SelectItem {
|
|
7
|
-
value: string;
|
|
8
|
-
name: string;
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
interface Props {
|
|
12
|
-
/** Current value */
|
|
13
|
-
value?: string;
|
|
14
|
-
/** Select items array */
|
|
15
|
-
items?: SelectItem[];
|
|
16
|
-
/** Placeholder text */
|
|
17
|
-
placeholder?: string;
|
|
18
|
-
/** Label text */
|
|
19
|
-
label?: string;
|
|
20
|
-
/** Whether required */
|
|
21
|
-
required?: boolean;
|
|
22
|
-
/** Whether disabled */
|
|
23
|
-
disabled?: boolean;
|
|
24
|
-
/** Error message */
|
|
25
|
-
error?: string;
|
|
26
|
-
/** Input name */
|
|
27
|
-
name?: string;
|
|
28
|
-
/** Input id */
|
|
29
|
-
id?: string;
|
|
30
|
-
/** Size variant */
|
|
31
|
-
size?: 'sm' | 'md' | 'lg';
|
|
32
|
-
/** Hint text shown below input (string version) */
|
|
33
|
-
hint?: string;
|
|
34
|
-
/** Custom hint content snippet (supports links, formatting) */
|
|
35
|
-
hintContent?: Snippet;
|
|
36
|
-
/** Additional class for the wrapper div */
|
|
37
|
-
class?: string;
|
|
38
|
-
/** Change handler */
|
|
39
|
-
onchange?: (detail: { value: string; item: SelectItem }) => void;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
let {
|
|
43
|
-
value = $bindable(''),
|
|
44
|
-
items = [],
|
|
45
|
-
placeholder = 'Select an option',
|
|
46
|
-
label = '',
|
|
47
|
-
required = false,
|
|
48
|
-
disabled = false,
|
|
49
|
-
error = '',
|
|
50
|
-
name = '',
|
|
51
|
-
id = '',
|
|
52
|
-
size = 'md',
|
|
53
|
-
hint = '',
|
|
54
|
-
hintContent,
|
|
55
|
-
class: className = '',
|
|
56
|
-
onchange
|
|
57
|
-
}: Props = $props();
|
|
58
|
-
</script>
|
|
59
|
-
|
|
60
|
-
<div class={className}>
|
|
61
|
-
<Select
|
|
62
|
-
{id}
|
|
63
|
-
{name}
|
|
64
|
-
{items}
|
|
65
|
-
{placeholder}
|
|
66
|
-
{label}
|
|
67
|
-
{disabled}
|
|
68
|
-
{required}
|
|
69
|
-
{error}
|
|
70
|
-
{size}
|
|
71
|
-
{onchange}
|
|
72
|
-
bind:value
|
|
73
|
-
/>
|
|
74
|
-
|
|
75
|
-
{#if !error}
|
|
76
|
-
{#if hintContent}
|
|
77
|
-
<p class={`${typography.smMuted} mt-1`}>{@render hintContent()}</p>
|
|
78
|
-
{:else if hint}
|
|
79
|
-
<p class={`${typography.smMuted} mt-1`}>{hint}</p>
|
|
80
|
-
{/if}
|
|
81
|
-
{/if}
|
|
82
|
-
</div>
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import type { Snippet } from 'svelte';
|
|
3
|
+
import Select from '../../primitives/Input/Select.svelte';
|
|
4
|
+
import { typography } from '../../tokens/typography';
|
|
5
|
+
|
|
6
|
+
interface SelectItem {
|
|
7
|
+
value: string;
|
|
8
|
+
name: string;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
interface Props {
|
|
12
|
+
/** Current value */
|
|
13
|
+
value?: string;
|
|
14
|
+
/** Select items array */
|
|
15
|
+
items?: SelectItem[];
|
|
16
|
+
/** Placeholder text */
|
|
17
|
+
placeholder?: string;
|
|
18
|
+
/** Label text */
|
|
19
|
+
label?: string;
|
|
20
|
+
/** Whether required */
|
|
21
|
+
required?: boolean;
|
|
22
|
+
/** Whether disabled */
|
|
23
|
+
disabled?: boolean;
|
|
24
|
+
/** Error message */
|
|
25
|
+
error?: string;
|
|
26
|
+
/** Input name */
|
|
27
|
+
name?: string;
|
|
28
|
+
/** Input id */
|
|
29
|
+
id?: string;
|
|
30
|
+
/** Size variant */
|
|
31
|
+
size?: 'sm' | 'md' | 'lg';
|
|
32
|
+
/** Hint text shown below input (string version) */
|
|
33
|
+
hint?: string;
|
|
34
|
+
/** Custom hint content snippet (supports links, formatting) */
|
|
35
|
+
hintContent?: Snippet;
|
|
36
|
+
/** Additional class for the wrapper div */
|
|
37
|
+
class?: string;
|
|
38
|
+
/** Change handler */
|
|
39
|
+
onchange?: (detail: { value: string; item: SelectItem }) => void;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
let {
|
|
43
|
+
value = $bindable(''),
|
|
44
|
+
items = [],
|
|
45
|
+
placeholder = 'Select an option',
|
|
46
|
+
label = '',
|
|
47
|
+
required = false,
|
|
48
|
+
disabled = false,
|
|
49
|
+
error = '',
|
|
50
|
+
name = '',
|
|
51
|
+
id = '',
|
|
52
|
+
size = 'md',
|
|
53
|
+
hint = '',
|
|
54
|
+
hintContent,
|
|
55
|
+
class: className = '',
|
|
56
|
+
onchange
|
|
57
|
+
}: Props = $props();
|
|
58
|
+
</script>
|
|
59
|
+
|
|
60
|
+
<div class={className}>
|
|
61
|
+
<Select
|
|
62
|
+
{id}
|
|
63
|
+
{name}
|
|
64
|
+
{items}
|
|
65
|
+
{placeholder}
|
|
66
|
+
{label}
|
|
67
|
+
{disabled}
|
|
68
|
+
{required}
|
|
69
|
+
{error}
|
|
70
|
+
{size}
|
|
71
|
+
{onchange}
|
|
72
|
+
bind:value
|
|
73
|
+
/>
|
|
74
|
+
|
|
75
|
+
{#if !error}
|
|
76
|
+
{#if hintContent}
|
|
77
|
+
<p class={`${typography.smMuted} mt-1`}>{@render hintContent()}</p>
|
|
78
|
+
{:else if hint}
|
|
79
|
+
<p class={`${typography.smMuted} mt-1`}>{hint}</p>
|
|
80
|
+
{/if}
|
|
81
|
+
{/if}
|
|
82
|
+
</div>
|
|
@@ -1,101 +1,101 @@
|
|
|
1
|
-
<script lang="ts">
|
|
2
|
-
import Textarea from '../../primitives/Input/Textarea.svelte';
|
|
3
|
-
import { typography } from '../../tokens/typography';
|
|
4
|
-
|
|
5
|
-
interface Props {
|
|
6
|
-
/** Current value */
|
|
7
|
-
value?: string;
|
|
8
|
-
/** Placeholder text */
|
|
9
|
-
placeholder?: string;
|
|
10
|
-
/** Number of rows */
|
|
11
|
-
rows?: number;
|
|
12
|
-
/** Whether disabled */
|
|
13
|
-
disabled?: boolean;
|
|
14
|
-
/** Whether required */
|
|
15
|
-
required?: boolean;
|
|
16
|
-
/** Whether readonly */
|
|
17
|
-
readonly?: boolean;
|
|
18
|
-
/** Input id */
|
|
19
|
-
id?: string;
|
|
20
|
-
/** Input name */
|
|
21
|
-
name?: string;
|
|
22
|
-
/** Label text */
|
|
23
|
-
label?: string;
|
|
24
|
-
/** Error message */
|
|
25
|
-
error?: string;
|
|
26
|
-
/** Max character length */
|
|
27
|
-
maxlength?: number | null;
|
|
28
|
-
/** Min character length */
|
|
29
|
-
minlength?: number | null;
|
|
30
|
-
/** Hint text shown below input */
|
|
31
|
-
hint?: string;
|
|
32
|
-
/** Additional class for the wrapper div */
|
|
33
|
-
class?: string;
|
|
34
|
-
/** Input handler */
|
|
35
|
-
oninput?: (detail: { value: string }) => void;
|
|
36
|
-
/** Change handler */
|
|
37
|
-
onchange?: (detail: { value: string }) => void;
|
|
38
|
-
/** Blur handler */
|
|
39
|
-
onblur?: (e: FocusEvent) => void;
|
|
40
|
-
/** Focus handler */
|
|
41
|
-
onfocus?: (e: FocusEvent) => void;
|
|
42
|
-
/** Keydown handler */
|
|
43
|
-
onkeydown?: (e: KeyboardEvent) => void;
|
|
44
|
-
/** Keyup handler */
|
|
45
|
-
onkeyup?: (e: KeyboardEvent) => void;
|
|
46
|
-
/** Keypress handler */
|
|
47
|
-
onkeypress?: (e: KeyboardEvent) => void;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
let {
|
|
51
|
-
value = $bindable(''),
|
|
52
|
-
placeholder = '',
|
|
53
|
-
rows = 4,
|
|
54
|
-
disabled = false,
|
|
55
|
-
required = false,
|
|
56
|
-
readonly = false,
|
|
57
|
-
id = '',
|
|
58
|
-
name = '',
|
|
59
|
-
label = '',
|
|
60
|
-
error = '',
|
|
61
|
-
maxlength = null,
|
|
62
|
-
minlength = null,
|
|
63
|
-
hint = '',
|
|
64
|
-
class: className = '',
|
|
65
|
-
oninput,
|
|
66
|
-
onchange,
|
|
67
|
-
onblur,
|
|
68
|
-
onfocus,
|
|
69
|
-
onkeydown,
|
|
70
|
-
onkeyup,
|
|
71
|
-
onkeypress
|
|
72
|
-
}: Props = $props();
|
|
73
|
-
</script>
|
|
74
|
-
|
|
75
|
-
<div class={className}>
|
|
76
|
-
<Textarea
|
|
77
|
-
{id}
|
|
78
|
-
{name}
|
|
79
|
-
{placeholder}
|
|
80
|
-
{rows}
|
|
81
|
-
{disabled}
|
|
82
|
-
{required}
|
|
83
|
-
{readonly}
|
|
84
|
-
{label}
|
|
85
|
-
{error}
|
|
86
|
-
{maxlength}
|
|
87
|
-
{minlength}
|
|
88
|
-
{oninput}
|
|
89
|
-
{onchange}
|
|
90
|
-
{onblur}
|
|
91
|
-
{onfocus}
|
|
92
|
-
{onkeydown}
|
|
93
|
-
{onkeyup}
|
|
94
|
-
{onkeypress}
|
|
95
|
-
bind:value
|
|
96
|
-
/>
|
|
97
|
-
|
|
98
|
-
{#if hint && !error}
|
|
99
|
-
<p class={`${typography.xsMuted} mt-1`}>{hint}</p>
|
|
100
|
-
{/if}
|
|
101
|
-
</div>
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import Textarea from '../../primitives/Input/Textarea.svelte';
|
|
3
|
+
import { typography } from '../../tokens/typography';
|
|
4
|
+
|
|
5
|
+
interface Props {
|
|
6
|
+
/** Current value */
|
|
7
|
+
value?: string;
|
|
8
|
+
/** Placeholder text */
|
|
9
|
+
placeholder?: string;
|
|
10
|
+
/** Number of rows */
|
|
11
|
+
rows?: number;
|
|
12
|
+
/** Whether disabled */
|
|
13
|
+
disabled?: boolean;
|
|
14
|
+
/** Whether required */
|
|
15
|
+
required?: boolean;
|
|
16
|
+
/** Whether readonly */
|
|
17
|
+
readonly?: boolean;
|
|
18
|
+
/** Input id */
|
|
19
|
+
id?: string;
|
|
20
|
+
/** Input name */
|
|
21
|
+
name?: string;
|
|
22
|
+
/** Label text */
|
|
23
|
+
label?: string;
|
|
24
|
+
/** Error message */
|
|
25
|
+
error?: string;
|
|
26
|
+
/** Max character length */
|
|
27
|
+
maxlength?: number | null;
|
|
28
|
+
/** Min character length */
|
|
29
|
+
minlength?: number | null;
|
|
30
|
+
/** Hint text shown below input */
|
|
31
|
+
hint?: string;
|
|
32
|
+
/** Additional class for the wrapper div */
|
|
33
|
+
class?: string;
|
|
34
|
+
/** Input handler */
|
|
35
|
+
oninput?: (detail: { value: string }) => void;
|
|
36
|
+
/** Change handler */
|
|
37
|
+
onchange?: (detail: { value: string }) => void;
|
|
38
|
+
/** Blur handler */
|
|
39
|
+
onblur?: (e: FocusEvent) => void;
|
|
40
|
+
/** Focus handler */
|
|
41
|
+
onfocus?: (e: FocusEvent) => void;
|
|
42
|
+
/** Keydown handler */
|
|
43
|
+
onkeydown?: (e: KeyboardEvent) => void;
|
|
44
|
+
/** Keyup handler */
|
|
45
|
+
onkeyup?: (e: KeyboardEvent) => void;
|
|
46
|
+
/** Keypress handler */
|
|
47
|
+
onkeypress?: (e: KeyboardEvent) => void;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
let {
|
|
51
|
+
value = $bindable(''),
|
|
52
|
+
placeholder = '',
|
|
53
|
+
rows = 4,
|
|
54
|
+
disabled = false,
|
|
55
|
+
required = false,
|
|
56
|
+
readonly = false,
|
|
57
|
+
id = '',
|
|
58
|
+
name = '',
|
|
59
|
+
label = '',
|
|
60
|
+
error = '',
|
|
61
|
+
maxlength = null,
|
|
62
|
+
minlength = null,
|
|
63
|
+
hint = '',
|
|
64
|
+
class: className = '',
|
|
65
|
+
oninput,
|
|
66
|
+
onchange,
|
|
67
|
+
onblur,
|
|
68
|
+
onfocus,
|
|
69
|
+
onkeydown,
|
|
70
|
+
onkeyup,
|
|
71
|
+
onkeypress
|
|
72
|
+
}: Props = $props();
|
|
73
|
+
</script>
|
|
74
|
+
|
|
75
|
+
<div class={className}>
|
|
76
|
+
<Textarea
|
|
77
|
+
{id}
|
|
78
|
+
{name}
|
|
79
|
+
{placeholder}
|
|
80
|
+
{rows}
|
|
81
|
+
{disabled}
|
|
82
|
+
{required}
|
|
83
|
+
{readonly}
|
|
84
|
+
{label}
|
|
85
|
+
{error}
|
|
86
|
+
{maxlength}
|
|
87
|
+
{minlength}
|
|
88
|
+
{oninput}
|
|
89
|
+
{onchange}
|
|
90
|
+
{onblur}
|
|
91
|
+
{onfocus}
|
|
92
|
+
{onkeydown}
|
|
93
|
+
{onkeyup}
|
|
94
|
+
{onkeypress}
|
|
95
|
+
bind:value
|
|
96
|
+
/>
|
|
97
|
+
|
|
98
|
+
{#if hint && !error}
|
|
99
|
+
<p class={`${typography.xsMuted} mt-1`}>{hint}</p>
|
|
100
|
+
{/if}
|
|
101
|
+
</div>
|
|
@@ -1,60 +1,60 @@
|
|
|
1
|
-
<script lang="ts">
|
|
2
|
-
import Toggle from '../../primitives/Toggle.svelte';
|
|
3
|
-
import ValidationError from '../../primitives/ValidationError.svelte';
|
|
4
|
-
import { typography } from '../../tokens/typography';
|
|
5
|
-
|
|
6
|
-
interface Props {
|
|
7
|
-
/** Whether the toggle is checked */
|
|
8
|
-
checked?: boolean;
|
|
9
|
-
/** Whether the toggle is disabled */
|
|
10
|
-
disabled?: boolean;
|
|
11
|
-
/** Size variant */
|
|
12
|
-
size?: 'sm' | 'md' | 'lg';
|
|
13
|
-
/** Label text displayed next to the toggle */
|
|
14
|
-
label?: string;
|
|
15
|
-
/** Description text shown below the label */
|
|
16
|
-
description?: string;
|
|
17
|
-
/** Error message to display */
|
|
18
|
-
error?: string;
|
|
19
|
-
/** Additional class for the wrapper div */
|
|
20
|
-
class?: string;
|
|
21
|
-
/** Change handler callback */
|
|
22
|
-
onchange?: (detail: { checked: boolean }) => void;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
let {
|
|
26
|
-
checked = $bindable(false),
|
|
27
|
-
disabled = false,
|
|
28
|
-
size = 'md',
|
|
29
|
-
label = '',
|
|
30
|
-
description = '',
|
|
31
|
-
error = '',
|
|
32
|
-
class: className = '',
|
|
33
|
-
onchange
|
|
34
|
-
}: Props = $props();
|
|
35
|
-
</script>
|
|
36
|
-
|
|
37
|
-
<div class={className}>
|
|
38
|
-
<div class="flex items-start justify-between gap-4">
|
|
39
|
-
{#if label || description}
|
|
40
|
-
<div class="flex flex-col">
|
|
41
|
-
{#if label}
|
|
42
|
-
<span class={`${typography.label} ${error ? 'text-red-500' : ''}`}>
|
|
43
|
-
{label}
|
|
44
|
-
</span>
|
|
45
|
-
{/if}
|
|
46
|
-
{#if description}
|
|
47
|
-
<span class={typography.smMuted}>{description}</span>
|
|
48
|
-
{/if}
|
|
49
|
-
</div>
|
|
50
|
-
{/if}
|
|
51
|
-
<Toggle
|
|
52
|
-
{disabled}
|
|
53
|
-
{size}
|
|
54
|
-
bind:checked
|
|
55
|
-
{onchange}
|
|
56
|
-
/>
|
|
57
|
-
</div>
|
|
58
|
-
|
|
59
|
-
<ValidationError {error} />
|
|
60
|
-
</div>
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import Toggle from '../../primitives/Toggle.svelte';
|
|
3
|
+
import ValidationError from '../../primitives/ValidationError.svelte';
|
|
4
|
+
import { typography } from '../../tokens/typography';
|
|
5
|
+
|
|
6
|
+
interface Props {
|
|
7
|
+
/** Whether the toggle is checked */
|
|
8
|
+
checked?: boolean;
|
|
9
|
+
/** Whether the toggle is disabled */
|
|
10
|
+
disabled?: boolean;
|
|
11
|
+
/** Size variant */
|
|
12
|
+
size?: 'sm' | 'md' | 'lg';
|
|
13
|
+
/** Label text displayed next to the toggle */
|
|
14
|
+
label?: string;
|
|
15
|
+
/** Description text shown below the label */
|
|
16
|
+
description?: string;
|
|
17
|
+
/** Error message to display */
|
|
18
|
+
error?: string;
|
|
19
|
+
/** Additional class for the wrapper div */
|
|
20
|
+
class?: string;
|
|
21
|
+
/** Change handler callback */
|
|
22
|
+
onchange?: (detail: { checked: boolean }) => void;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
let {
|
|
26
|
+
checked = $bindable(false),
|
|
27
|
+
disabled = false,
|
|
28
|
+
size = 'md',
|
|
29
|
+
label = '',
|
|
30
|
+
description = '',
|
|
31
|
+
error = '',
|
|
32
|
+
class: className = '',
|
|
33
|
+
onchange
|
|
34
|
+
}: Props = $props();
|
|
35
|
+
</script>
|
|
36
|
+
|
|
37
|
+
<div class={className}>
|
|
38
|
+
<div class="flex items-start justify-between gap-4">
|
|
39
|
+
{#if label || description}
|
|
40
|
+
<div class="flex flex-col">
|
|
41
|
+
{#if label}
|
|
42
|
+
<span class={`${typography.label} ${error ? 'text-red-500' : ''}`}>
|
|
43
|
+
{label}
|
|
44
|
+
</span>
|
|
45
|
+
{/if}
|
|
46
|
+
{#if description}
|
|
47
|
+
<span class={typography.smMuted}>{description}</span>
|
|
48
|
+
{/if}
|
|
49
|
+
</div>
|
|
50
|
+
{/if}
|
|
51
|
+
<Toggle
|
|
52
|
+
{disabled}
|
|
53
|
+
{size}
|
|
54
|
+
bind:checked
|
|
55
|
+
{onchange}
|
|
56
|
+
/>
|
|
57
|
+
</div>
|
|
58
|
+
|
|
59
|
+
<ValidationError {error} />
|
|
60
|
+
</div>
|