@getmicdrop/svelte-components 5.5.5 → 5.6.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 +134 -134
- package/dist/calendar/ShowCard/ShowCard.svelte +157 -157
- package/dist/calendar/ShowTimeCard/ShowTimeCard.svelte +61 -61
- package/dist/components/Layout/AppShell.svelte +104 -0
- package/dist/components/Layout/AppShell.svelte.d.ts +26 -0
- package/dist/components/Layout/AppShell.svelte.d.ts.map +1 -0
- package/dist/components/Layout/ContentSection.svelte +80 -0
- package/dist/components/Layout/ContentSection.svelte.d.ts +23 -0
- package/dist/components/Layout/ContentSection.svelte.d.ts.map +1 -0
- package/dist/components/Layout/Grid.svelte +4 -4
- package/dist/components/Layout/Heading.svelte +81 -0
- package/dist/components/Layout/Heading.svelte.d.ts +24 -0
- package/dist/components/Layout/Heading.svelte.d.ts.map +1 -0
- package/dist/components/Layout/PageContainer.svelte +69 -0
- package/dist/components/Layout/PageContainer.svelte.d.ts +23 -0
- package/dist/components/Layout/PageContainer.svelte.d.ts.map +1 -0
- package/dist/components/Layout/Responsive.svelte +75 -0
- package/dist/components/Layout/Responsive.svelte.d.ts +19 -0
- package/dist/components/Layout/Responsive.svelte.d.ts.map +1 -0
- package/dist/components/Layout/Section.svelte +80 -80
- package/dist/components/Layout/ShowOnDesktop.svelte +37 -0
- package/dist/components/Layout/ShowOnDesktop.svelte.d.ts +16 -0
- package/dist/components/Layout/ShowOnDesktop.svelte.d.ts.map +1 -0
- package/dist/components/Layout/ShowOnMobile.svelte +37 -0
- package/dist/components/Layout/ShowOnMobile.svelte.d.ts +16 -0
- package/dist/components/Layout/ShowOnMobile.svelte.d.ts.map +1 -0
- package/dist/components/Layout/Sidebar.svelte +108 -108
- package/dist/components/Layout/Stack.spec.js +1 -1
- package/dist/components/Layout/Stack.svelte +6 -6
- package/dist/components/Layout/Text.svelte +87 -0
- package/dist/components/Layout/Text.svelte.d.ts +28 -0
- package/dist/components/Layout/Text.svelte.d.ts.map +1 -0
- package/dist/components/Layout/TwoColumn.svelte +108 -0
- package/dist/components/Layout/TwoColumn.svelte.d.ts +28 -0
- package/dist/components/Layout/TwoColumn.svelte.d.ts.map +1 -0
- package/dist/components/Layout/__tests__/Heading.test.d.ts +2 -0
- package/dist/components/Layout/__tests__/Heading.test.d.ts.map +1 -0
- package/dist/components/Layout/__tests__/Heading.test.js +123 -0
- package/dist/components/Layout/__tests__/ShowOnDesktop.test.d.ts +2 -0
- package/dist/components/Layout/__tests__/ShowOnDesktop.test.d.ts.map +1 -0
- package/dist/components/Layout/__tests__/ShowOnDesktop.test.js +84 -0
- package/dist/components/Layout/__tests__/ShowOnMobile.test.d.ts +2 -0
- package/dist/components/Layout/__tests__/ShowOnMobile.test.d.ts.map +1 -0
- package/dist/components/Layout/__tests__/ShowOnMobile.test.js +80 -0
- package/dist/components/Layout/__tests__/Text.test.d.ts +2 -0
- package/dist/components/Layout/__tests__/Text.test.d.ts.map +1 -0
- package/dist/components/Layout/__tests__/Text.test.js +146 -0
- package/dist/components/Layout/__tests__/TwoColumn.test.d.ts +2 -0
- package/dist/components/Layout/__tests__/TwoColumn.test.d.ts.map +1 -0
- package/dist/components/Layout/__tests__/TwoColumn.test.js +129 -0
- 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 +1 -0
- package/dist/index.js +40 -40
- package/dist/patterns/data/DataGrid.svelte +45 -45
- package/dist/patterns/data/DataList.svelte +24 -24
- package/dist/patterns/data/DataTable.svelte +36 -36
- 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 +83 -83
- package/dist/patterns/forms/FormValidationSummary.svelte +74 -74
- package/dist/patterns/layout/Sidebar.svelte +39 -39
- package/dist/patterns/layout/index.d.ts +9 -0
- package/dist/patterns/layout/index.js +22 -0
- package/dist/patterns/navigation/BottomNav.stories.svelte +117 -117
- package/dist/patterns/navigation/BottomNav.svelte +64 -64
- package/dist/patterns/navigation/Header.stories.svelte +77 -77
- package/dist/patterns/navigation/Header.svelte +193 -193
- package/dist/patterns/page/PageHeader.svelte +18 -18
- 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 +24 -24
- package/dist/patterns/page/SectionHeader.svelte +29 -29
- 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 +42 -42
- package/dist/primitives/Accordion/AccordionItem.svelte +95 -95
- package/dist/primitives/Alert/Alert.spec.js +173 -173
- package/dist/primitives/Alert/Alert.stories.svelte +88 -88
- package/dist/primitives/Alert/Alert.svelte +27 -27
- 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 +79 -79
- 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 +89 -89
- package/dist/primitives/Button/Button.spec.js +223 -223
- package/dist/primitives/Button/Button.stories.svelte +76 -76
- package/dist/primitives/Button/Button.svelte +270 -270
- 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.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 +80 -80
- package/dist/primitives/Drawer/Drawer.svelte +120 -120
- package/dist/primitives/Dropdown/Dropdown.stories.svelte +137 -137
- package/dist/primitives/Dropdown/Dropdown.svelte +14 -14
- package/dist/primitives/Dropdown/DropdownItem.svelte +80 -80
- package/dist/primitives/Icons/ArrowLeft.svelte +8 -8
- package/dist/primitives/Icons/ArrowRight.svelte +8 -8
- package/dist/primitives/Icons/Availability.svelte +14 -14
- package/dist/primitives/Icons/Back.svelte +14 -14
- package/dist/primitives/Icons/CheckCircle.svelte +6 -6
- package/dist/primitives/Icons/CheckCircleOutline.svelte +15 -15
- package/dist/primitives/Icons/ChevronLeft.svelte +4 -4
- package/dist/primitives/Icons/ChevronRight.svelte +4 -4
- package/dist/primitives/Icons/Copy.svelte +15 -15
- package/dist/primitives/Icons/Cross.svelte +5 -5
- package/dist/primitives/Icons/DownArrow.svelte +8 -8
- package/dist/primitives/Icons/ErrorCircle.svelte +6 -6
- package/dist/primitives/Icons/FacebookIcon.svelte +2 -2
- package/dist/primitives/Icons/Home.svelte +15 -15
- package/dist/primitives/Icons/Icon.spec.js +169 -169
- package/dist/primitives/Icons/Icon.stories.svelte +100 -100
- package/dist/primitives/Icons/Icon.svelte +52 -52
- package/dist/primitives/Icons/IconGallery.stories.svelte +235 -235
- package/dist/primitives/Icons/Info.svelte +7 -7
- package/dist/primitives/Icons/InstagramIcon.svelte +4 -4
- package/dist/primitives/Icons/LogoInstagram.svelte +2 -2
- package/dist/primitives/Icons/Message.svelte +15 -15
- package/dist/primitives/Icons/MoonIcon.svelte +5 -5
- package/dist/primitives/Icons/More.svelte +21 -21
- package/dist/primitives/Icons/MoreHori.spec.js +61 -61
- package/dist/primitives/Icons/MoreHori.svelte +22 -22
- package/dist/primitives/Icons/Notification.svelte +14 -14
- package/dist/primitives/Icons/Payment.svelte +14 -14
- package/dist/primitives/Icons/Profile.svelte +21 -21
- package/dist/primitives/Icons/Reload.svelte +29 -29
- package/dist/primitives/Icons/Shows.svelte +21 -21
- package/dist/primitives/Icons/Signout.svelte +21 -21
- package/dist/primitives/Icons/SunIcon.svelte +8 -8
- package/dist/primitives/Icons/TiktokIcon.svelte +2 -2
- package/dist/primitives/Icons/TwitterIcon.svelte +2 -2
- package/dist/primitives/Icons/WarningIcon.spec.js +18 -18
- package/dist/primitives/Icons/WarningIcon.svelte +5 -5
- package/dist/primitives/Input/Input.spec.js +573 -573
- package/dist/primitives/Input/Input.stories.svelte +139 -139
- package/dist/primitives/Input/Input.svelte +417 -417
- package/dist/primitives/Input/Select.spec.js +212 -212
- package/dist/primitives/Input/Select.stories.svelte +112 -112
- package/dist/primitives/Input/Select.svelte +128 -128
- package/dist/primitives/Input/Textarea.stories.svelte +137 -137
- package/dist/primitives/Input/Textarea.svelte +35 -35
- 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 +158 -158
- package/dist/primitives/NumberInput/NumberInput.svelte +106 -106
- package/dist/primitives/Pagination/Pagination.stories.svelte +76 -76
- package/dist/primitives/Pagination/Pagination.svelte +261 -261
- 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 +26 -26
- package/dist/primitives/Spinner/Spinner.spec.js +71 -71
- package/dist/primitives/Spinner/Spinner.stories.svelte +29 -29
- package/dist/primitives/Spinner/Spinner.svelte +20 -20
- package/dist/primitives/Tabs/TabItem.svelte +49 -49
- package/dist/primitives/Tabs/Tabs.stories.svelte +112 -112
- package/dist/primitives/Tabs/Tabs.svelte +123 -123
- package/dist/primitives/Toggle.spec.js +143 -143
- package/dist/primitives/Toggle.stories.svelte +92 -92
- package/dist/primitives/Toggle.svelte +71 -71
- package/dist/primitives/Typography/Typography.svelte +53 -53
- package/dist/primitives/ValidationError.spec.js +103 -103
- package/dist/primitives/ValidationError.stories.svelte +69 -69
- package/dist/primitives/ValidationError.svelte +29 -29
- package/dist/primitives/index.js +84 -84
- package/dist/recipes/CropImage/CropImage.spec.js +208 -208
- package/dist/recipes/CropImage/CropImage.stories.svelte +104 -104
- package/dist/recipes/CropImage/CropImage.svelte +238 -238
- package/dist/recipes/ImageUploader/ImageUploader.stories.svelte +125 -125
- package/dist/recipes/ImageUploader/ImageUploader.svelte +804 -804
- package/dist/recipes/SuperLogin/SuperLogin.spec.js +17 -17
- package/dist/recipes/Toaster/Toaster.stories.svelte +62 -62
- package/dist/recipes/feedback/EmptyState/EmptyState.svelte +1 -1
- package/dist/recipes/feedback/ErrorDisplay.spec.js +69 -69
- package/dist/recipes/feedback/ErrorDisplay.stories.svelte +101 -101
- package/dist/recipes/feedback/ErrorDisplay.svelte +1 -1
- package/dist/recipes/feedback/StatusIndicator/StatusIndicator.spec.js +133 -133
- package/dist/recipes/feedback/StatusIndicator/StatusIndicator.svelte +157 -157
- 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 +80 -80
- package/dist/recipes/fields/TextareaField.svelte +97 -97
- package/dist/recipes/fields/ToggleField.svelte +60 -60
- package/dist/recipes/fields/index.js +7 -7
- package/dist/recipes/inputs/MultiSelect.spec.js +258 -258
- package/dist/recipes/inputs/MultiSelect.stories.svelte +133 -133
- package/dist/recipes/inputs/MultiSelect.svelte +256 -256
- package/dist/recipes/inputs/OTPInput.spec.js +251 -251
- package/dist/recipes/inputs/OTPInput.stories.svelte +162 -162
- package/dist/recipes/inputs/OTPInput.svelte +29 -29
- package/dist/recipes/inputs/PasswordInput.svelte +22 -22
- package/dist/recipes/inputs/PasswordStrengthIndicator/PasswordStrengthIndicator.svelte +117 -117
- package/dist/recipes/inputs/PlaceAutocomplete/PlaceAutocomplete.stories.svelte +123 -123
- package/dist/recipes/inputs/PlaceAutocomplete/PlaceAutocomplete.svelte +326 -326
- package/dist/recipes/inputs/Search.svelte +37 -37
- package/dist/recipes/inputs/SelectDropdown.svelte +57 -57
- 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/services/EventService.js +75 -75
- package/dist/services/EventService.spec.js +217 -217
- package/dist/services/ShowService.spec.js +345 -345
- package/dist/stores/auth.js +36 -36
- package/dist/stores/auth.spec.js +139 -139
- package/dist/stores/toaster.js +13 -13
- package/dist/stories/ButtonAuditReview.stories.svelte +14 -14
- package/dist/stories/ButtonAuditReview.svelte +427 -427
- package/dist/stories/PatternsGallery.stories.svelte +19 -19
- package/dist/stories/PatternsGallery.svelte +206 -206
- package/dist/stories/PrimitivesGallery.stories.svelte +19 -19
- package/dist/stories/PrimitivesGallery.svelte +725 -725
- package/dist/stories/RecipesGallery.stories.svelte +19 -19
- package/dist/stories/RecipesGallery.svelte +271 -271
- 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.spec.js +1144 -1144
- package/dist/tokens/__tests__/typography-base.test.d.ts +2 -0
- package/dist/tokens/__tests__/typography-base.test.d.ts.map +1 -0
- package/dist/tokens/__tests__/typography-base.test.js +138 -0
- package/dist/tokens/tokens.css +87 -87
- package/dist/tokens/typography-base.css +163 -0
- package/dist/utils/apiConfig.spec.js +219 -219
- package/dist/utils/transitions.js +62 -62
- package/dist/utils/utils.js +354 -354
- package/package.json +292 -291
|
@@ -1,46 +1,46 @@
|
|
|
1
|
-
<script>
|
|
2
|
-
import Button from "../../primitives/Button/Button.svelte";
|
|
3
|
-
|
|
4
|
-
let {
|
|
5
|
-
onCancel = () => {},
|
|
6
|
-
onSubmit = () => {},
|
|
7
|
-
submitLabel = "Save",
|
|
8
|
-
cancelLabel = "Cancel",
|
|
9
|
-
isSubmitting = false,
|
|
10
|
-
isSuccess = false,
|
|
11
|
-
disabled = false,
|
|
12
|
-
showCancel = true,
|
|
13
|
-
submitVariant = "default",
|
|
14
|
-
cancelVariant = "alternative",
|
|
15
|
-
submitType = "submit",
|
|
16
|
-
className = "",
|
|
17
|
-
} = $props();
|
|
18
|
-
</script>
|
|
19
|
-
|
|
20
|
-
<div
|
|
21
|
-
class="w-full md:static flex bg-white dark:bg-gray-800 md:bg-transparent md:dark:bg-transparent md:rounded-b-lg items-center justify-center md:justify-end gap-4 py-5 px-4 {className}"
|
|
22
|
-
>
|
|
23
|
-
{#if showCancel}
|
|
24
|
-
<Button
|
|
25
|
-
variant={cancelVariant}
|
|
26
|
-
type="button"
|
|
27
|
-
size="full-md-auto"
|
|
28
|
-
minWidth="action"
|
|
29
|
-
onclick={onCancel}
|
|
30
|
-
>
|
|
31
|
-
{cancelLabel}
|
|
32
|
-
</Button>
|
|
33
|
-
{/if}
|
|
34
|
-
<Button
|
|
35
|
-
variant={submitVariant}
|
|
36
|
-
type={submitType}
|
|
37
|
-
size="full-md-auto"
|
|
38
|
-
minWidth="action"
|
|
39
|
-
loading={isSubmitting}
|
|
40
|
-
success={isSuccess}
|
|
41
|
-
disabled={disabled || isSubmitting}
|
|
42
|
-
onclick={onSubmit}
|
|
43
|
-
>
|
|
44
|
-
{submitLabel}
|
|
45
|
-
</Button>
|
|
46
|
-
</div>
|
|
1
|
+
<script>
|
|
2
|
+
import Button from "../../primitives/Button/Button.svelte";
|
|
3
|
+
|
|
4
|
+
let {
|
|
5
|
+
onCancel = () => {},
|
|
6
|
+
onSubmit = () => {},
|
|
7
|
+
submitLabel = "Save",
|
|
8
|
+
cancelLabel = "Cancel",
|
|
9
|
+
isSubmitting = false,
|
|
10
|
+
isSuccess = false,
|
|
11
|
+
disabled = false,
|
|
12
|
+
showCancel = true,
|
|
13
|
+
submitVariant = "default",
|
|
14
|
+
cancelVariant = "alternative",
|
|
15
|
+
submitType = "submit",
|
|
16
|
+
className = "",
|
|
17
|
+
} = $props();
|
|
18
|
+
</script>
|
|
19
|
+
|
|
20
|
+
<div
|
|
21
|
+
class="w-full md:static flex bg-white dark:bg-gray-800 md:bg-transparent md:dark:bg-transparent md:rounded-b-lg items-center justify-center md:justify-end gap-4 py-5 px-4 {className}"
|
|
22
|
+
>
|
|
23
|
+
{#if showCancel}
|
|
24
|
+
<Button
|
|
25
|
+
variant={cancelVariant}
|
|
26
|
+
type="button"
|
|
27
|
+
size="full-md-auto"
|
|
28
|
+
minWidth="action"
|
|
29
|
+
onclick={onCancel}
|
|
30
|
+
>
|
|
31
|
+
{cancelLabel}
|
|
32
|
+
</Button>
|
|
33
|
+
{/if}
|
|
34
|
+
<Button
|
|
35
|
+
variant={submitVariant}
|
|
36
|
+
type={submitType}
|
|
37
|
+
size="full-md-auto"
|
|
38
|
+
minWidth="action"
|
|
39
|
+
loading={isSubmitting}
|
|
40
|
+
success={isSuccess}
|
|
41
|
+
disabled={disabled || isSubmitting}
|
|
42
|
+
onclick={onSubmit}
|
|
43
|
+
>
|
|
44
|
+
{submitLabel}
|
|
45
|
+
</Button>
|
|
46
|
+
</div>
|
|
@@ -1,33 +1,33 @@
|
|
|
1
|
-
<script>
|
|
2
|
-
let {
|
|
3
|
-
cols = 2,
|
|
4
|
-
gap = 4,
|
|
5
|
-
class: className = '',
|
|
6
|
-
children,
|
|
7
|
-
} = $props();
|
|
8
|
-
|
|
9
|
-
// Map cols to Tailwind grid classes
|
|
10
|
-
const colsClass = {
|
|
11
|
-
1: 'md:grid-cols-1',
|
|
12
|
-
2: 'md:grid-cols-2',
|
|
13
|
-
3: 'md:grid-cols-3',
|
|
14
|
-
4: 'md:grid-cols-4'
|
|
15
|
-
};
|
|
16
|
-
|
|
17
|
-
// Map gap to Tailwind gap classes
|
|
18
|
-
const gapClass = {
|
|
19
|
-
2: 'gap-2',
|
|
20
|
-
3: 'gap-3',
|
|
21
|
-
4: 'gap-4',
|
|
22
|
-
5: 'gap-5',
|
|
23
|
-
6: 'gap-6',
|
|
24
|
-
8: 'gap-8'
|
|
25
|
-
};
|
|
26
|
-
|
|
27
|
-
let gridCols = $derived(colsClass[cols] || colsClass[2]);
|
|
28
|
-
let gridGap = $derived(gapClass[gap] || gapClass[4]);
|
|
29
|
-
</script>
|
|
30
|
-
|
|
31
|
-
<div class="grid grid-cols-1 {gridCols} {gridGap} {className}">
|
|
32
|
-
{@render children?.()}
|
|
33
|
-
</div>
|
|
1
|
+
<script>
|
|
2
|
+
let {
|
|
3
|
+
cols = 2,
|
|
4
|
+
gap = 4,
|
|
5
|
+
class: className = '',
|
|
6
|
+
children,
|
|
7
|
+
} = $props();
|
|
8
|
+
|
|
9
|
+
// Map cols to Tailwind grid classes
|
|
10
|
+
const colsClass = {
|
|
11
|
+
1: 'md:grid-cols-1',
|
|
12
|
+
2: 'md:grid-cols-2',
|
|
13
|
+
3: 'md:grid-cols-3',
|
|
14
|
+
4: 'md:grid-cols-4'
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
// Map gap to Tailwind gap classes
|
|
18
|
+
const gapClass = {
|
|
19
|
+
2: 'gap-2',
|
|
20
|
+
3: 'gap-3',
|
|
21
|
+
4: 'gap-4',
|
|
22
|
+
5: 'gap-5',
|
|
23
|
+
6: 'gap-6',
|
|
24
|
+
8: 'gap-8'
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
let gridCols = $derived(colsClass[cols] || colsClass[2]);
|
|
28
|
+
let gridGap = $derived(gapClass[gap] || gapClass[4]);
|
|
29
|
+
</script>
|
|
30
|
+
|
|
31
|
+
<div class="grid grid-cols-1 {gridCols} {gridGap} {className}">
|
|
32
|
+
{@render children?.()}
|
|
33
|
+
</div>
|
|
@@ -1,32 +1,32 @@
|
|
|
1
|
-
<script>
|
|
2
|
-
import { typography } from '../../tokens/typography';
|
|
3
|
-
|
|
4
|
-
let {
|
|
5
|
-
title = '',
|
|
6
|
-
description = '',
|
|
7
|
-
divider = false,
|
|
8
|
-
class: className = '',
|
|
9
|
-
children,
|
|
10
|
-
} = $props();
|
|
11
|
-
</script>
|
|
12
|
-
|
|
13
|
-
<section class="space-y-4 {className}">
|
|
14
|
-
{#if divider}
|
|
15
|
-
<hr class="border-gray-200 dark:border-gray-700" />
|
|
16
|
-
{/if}
|
|
17
|
-
|
|
18
|
-
{#if title || description}
|
|
19
|
-
<div class="space-y-1">
|
|
20
|
-
{#if title}
|
|
21
|
-
<h3 class={typography.h3}>{title}</h3>
|
|
22
|
-
{/if}
|
|
23
|
-
{#if description}
|
|
24
|
-
<p class={typography.smMuted}>{description}</p>
|
|
25
|
-
{/if}
|
|
26
|
-
</div>
|
|
27
|
-
{/if}
|
|
28
|
-
|
|
29
|
-
<div class="space-y-4">
|
|
30
|
-
{@render children?.()}
|
|
31
|
-
</div>
|
|
32
|
-
</section>
|
|
1
|
+
<script>
|
|
2
|
+
import { typography } from '../../tokens/typography';
|
|
3
|
+
|
|
4
|
+
let {
|
|
5
|
+
title = '',
|
|
6
|
+
description = '',
|
|
7
|
+
divider = false,
|
|
8
|
+
class: className = '',
|
|
9
|
+
children,
|
|
10
|
+
} = $props();
|
|
11
|
+
</script>
|
|
12
|
+
|
|
13
|
+
<section class="space-y-4 {className}">
|
|
14
|
+
{#if divider}
|
|
15
|
+
<hr class="border-gray-200 dark:border-gray-700" />
|
|
16
|
+
{/if}
|
|
17
|
+
|
|
18
|
+
{#if title || description}
|
|
19
|
+
<div class="space-y-1">
|
|
20
|
+
{#if title}
|
|
21
|
+
<h3 class={typography.h3}>{title}</h3>
|
|
22
|
+
{/if}
|
|
23
|
+
{#if description}
|
|
24
|
+
<p class={typography.smMuted}>{description}</p>
|
|
25
|
+
{/if}
|
|
26
|
+
</div>
|
|
27
|
+
{/if}
|
|
28
|
+
|
|
29
|
+
<div class="space-y-4">
|
|
30
|
+
{@render children?.()}
|
|
31
|
+
</div>
|
|
32
|
+
</section>
|
|
@@ -1,75 +1,75 @@
|
|
|
1
|
-
<script module>
|
|
2
|
-
import { defineMeta } from "@storybook/addon-svelte-csf";
|
|
3
|
-
|
|
4
|
-
import FormValidationSummary from './FormValidationSummary.svelte';
|
|
5
|
-
|
|
6
|
-
const { Story } = defineMeta({
|
|
7
|
-
title: 'Components/FormValidationSummary',
|
|
8
|
-
component: FormValidationSummary,
|
|
9
|
-
tags: ['autodocs'],
|
|
10
|
-
});
|
|
11
|
-
|
|
12
|
-
</script>
|
|
13
|
-
|
|
14
|
-
<script>
|
|
15
|
-
|
|
16
|
-
const sampleErrors = {
|
|
17
|
-
firstName: 'First name is required',
|
|
18
|
-
email: 'Please enter a valid email address',
|
|
19
|
-
phone: 'Phone number must be 10 digits',
|
|
20
|
-
};
|
|
21
|
-
|
|
22
|
-
const fieldLabels = {
|
|
23
|
-
firstName: 'First Name',
|
|
24
|
-
email: 'Email Address',
|
|
25
|
-
phone: 'Phone Number',
|
|
26
|
-
};
|
|
27
|
-
</script>
|
|
28
|
-
|
|
29
|
-
<Story name="Default">
|
|
30
|
-
<FormValidationSummary
|
|
31
|
-
errors={sampleErrors}
|
|
32
|
-
{fieldLabels}
|
|
33
|
-
show={true}
|
|
34
|
-
/>
|
|
35
|
-
</Story>
|
|
36
|
-
|
|
37
|
-
<Story name="Single Error">
|
|
38
|
-
<FormValidationSummary
|
|
39
|
-
errors={{ email: 'Email is required' }}
|
|
40
|
-
fieldLabels={{ email: 'Email Address' }}
|
|
41
|
-
show={true}
|
|
42
|
-
/>
|
|
43
|
-
</Story>
|
|
44
|
-
|
|
45
|
-
<Story name="Multiple Errors">
|
|
46
|
-
<FormValidationSummary
|
|
47
|
-
errors={{
|
|
48
|
-
firstName: 'First name is required',
|
|
49
|
-
lastName: 'Last name is required',
|
|
50
|
-
email: 'Invalid email format',
|
|
51
|
-
password: 'Password must be at least 8 characters',
|
|
52
|
-
confirmPassword: 'Passwords do not match',
|
|
53
|
-
}}
|
|
54
|
-
fieldLabels={{
|
|
55
|
-
firstName: 'First Name',
|
|
56
|
-
lastName: 'Last Name',
|
|
57
|
-
email: 'Email',
|
|
58
|
-
password: 'Password',
|
|
59
|
-
confirmPassword: 'Confirm Password',
|
|
60
|
-
}}
|
|
61
|
-
show={true}
|
|
62
|
-
/>
|
|
63
|
-
</Story>
|
|
64
|
-
|
|
65
|
-
<Story name="With Form">
|
|
66
|
-
<div class="max-w-md">
|
|
67
|
-
<FormValidationSummary
|
|
68
|
-
errors={sampleErrors}
|
|
69
|
-
{fieldLabels}
|
|
70
|
-
show={true}
|
|
71
|
-
/>
|
|
72
|
-
|
|
1
|
+
<script module>
|
|
2
|
+
import { defineMeta } from "@storybook/addon-svelte-csf";
|
|
3
|
+
|
|
4
|
+
import FormValidationSummary from './FormValidationSummary.svelte';
|
|
5
|
+
|
|
6
|
+
const { Story } = defineMeta({
|
|
7
|
+
title: 'Components/FormValidationSummary',
|
|
8
|
+
component: FormValidationSummary,
|
|
9
|
+
tags: ['autodocs'],
|
|
10
|
+
});
|
|
11
|
+
|
|
12
|
+
</script>
|
|
13
|
+
|
|
14
|
+
<script>
|
|
15
|
+
|
|
16
|
+
const sampleErrors = {
|
|
17
|
+
firstName: 'First name is required',
|
|
18
|
+
email: 'Please enter a valid email address',
|
|
19
|
+
phone: 'Phone number must be 10 digits',
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
const fieldLabels = {
|
|
23
|
+
firstName: 'First Name',
|
|
24
|
+
email: 'Email Address',
|
|
25
|
+
phone: 'Phone Number',
|
|
26
|
+
};
|
|
27
|
+
</script>
|
|
28
|
+
|
|
29
|
+
<Story name="Default">
|
|
30
|
+
<FormValidationSummary
|
|
31
|
+
errors={sampleErrors}
|
|
32
|
+
{fieldLabels}
|
|
33
|
+
show={true}
|
|
34
|
+
/>
|
|
35
|
+
</Story>
|
|
36
|
+
|
|
37
|
+
<Story name="Single Error">
|
|
38
|
+
<FormValidationSummary
|
|
39
|
+
errors={{ email: 'Email is required' }}
|
|
40
|
+
fieldLabels={{ email: 'Email Address' }}
|
|
41
|
+
show={true}
|
|
42
|
+
/>
|
|
43
|
+
</Story>
|
|
44
|
+
|
|
45
|
+
<Story name="Multiple Errors">
|
|
46
|
+
<FormValidationSummary
|
|
47
|
+
errors={{
|
|
48
|
+
firstName: 'First name is required',
|
|
49
|
+
lastName: 'Last name is required',
|
|
50
|
+
email: 'Invalid email format',
|
|
51
|
+
password: 'Password must be at least 8 characters',
|
|
52
|
+
confirmPassword: 'Passwords do not match',
|
|
53
|
+
}}
|
|
54
|
+
fieldLabels={{
|
|
55
|
+
firstName: 'First Name',
|
|
56
|
+
lastName: 'Last Name',
|
|
57
|
+
email: 'Email',
|
|
58
|
+
password: 'Password',
|
|
59
|
+
confirmPassword: 'Confirm Password',
|
|
60
|
+
}}
|
|
61
|
+
show={true}
|
|
62
|
+
/>
|
|
63
|
+
</Story>
|
|
64
|
+
|
|
65
|
+
<Story name="With Form">
|
|
66
|
+
<div class="max-w-md">
|
|
67
|
+
<FormValidationSummary
|
|
68
|
+
errors={sampleErrors}
|
|
69
|
+
{fieldLabels}
|
|
70
|
+
show={true}
|
|
71
|
+
/>
|
|
72
|
+
|
|
73
73
|
<div class="space-y-4 mt-4">
|
|
74
74
|
<div>
|
|
75
75
|
<label for="firstName" class="block text-sm font-medium mb-1">First Name</label>
|
|
@@ -84,14 +84,14 @@
|
|
|
84
84
|
<input id="phone" type="tel" class="w-full px-3 py-2 border border-red-300 rounded" />
|
|
85
85
|
</div>
|
|
86
86
|
</div>
|
|
87
|
-
</div>
|
|
88
|
-
</Story>
|
|
89
|
-
|
|
90
|
-
<Story name="Hidden State">
|
|
91
|
-
<FormValidationSummary
|
|
92
|
-
errors={sampleErrors}
|
|
93
|
-
{fieldLabels}
|
|
94
|
-
show={false}
|
|
95
|
-
/>
|
|
96
|
-
<p class="text-sm text-gray-500 dark:text-gray-400 mt-2">The validation summary is hidden</p>
|
|
97
|
-
</Story>
|
|
87
|
+
</div>
|
|
88
|
+
</Story>
|
|
89
|
+
|
|
90
|
+
<Story name="Hidden State">
|
|
91
|
+
<FormValidationSummary
|
|
92
|
+
errors={sampleErrors}
|
|
93
|
+
{fieldLabels}
|
|
94
|
+
show={false}
|
|
95
|
+
/>
|
|
96
|
+
<p class="text-sm text-gray-500 dark:text-gray-400 mt-2">The validation summary is hidden</p>
|
|
97
|
+
</Story>
|
|
@@ -1,74 +1,74 @@
|
|
|
1
|
-
<script lang="ts">
|
|
2
|
-
import { safeSlide } from "../../utils/transitions.js";
|
|
3
|
-
import { cubicOut } from "svelte/easing";
|
|
4
|
-
import WarningIcon from "../../primitives/Icons/WarningIcon.svelte";
|
|
5
|
-
import Button from "../../primitives/Button/Button.svelte";
|
|
6
|
-
|
|
7
|
-
interface Props {
|
|
8
|
-
errors?: Record<string, string | null | undefined>;
|
|
9
|
-
show?: boolean;
|
|
10
|
-
fieldLabels?: Record<string, string>;
|
|
11
|
-
fieldIds?: Record<string, string>;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
let {
|
|
15
|
-
errors = {},
|
|
16
|
-
show = false,
|
|
17
|
-
fieldLabels = {},
|
|
18
|
-
fieldIds = {},
|
|
19
|
-
}: Props = $props();
|
|
20
|
-
|
|
21
|
-
// Get list of fields with errors
|
|
22
|
-
let errorFields = $derived(Object.entries(errors)
|
|
23
|
-
.filter(([_, message]) => message && message.trim() !== "")
|
|
24
|
-
.map(([key, message]) => ({
|
|
25
|
-
key,
|
|
26
|
-
label: fieldLabels[key] || key,
|
|
27
|
-
message,
|
|
28
|
-
elementId: fieldIds[key] || key
|
|
29
|
-
})));
|
|
30
|
-
|
|
31
|
-
let hasErrors = $derived(errorFields.length > 0);
|
|
32
|
-
|
|
33
|
-
function scrollToField(elementId: string) {
|
|
34
|
-
const element = document.getElementById(elementId);
|
|
35
|
-
if (element) {
|
|
36
|
-
element.scrollIntoView({ behavior: "smooth", block: "center" });
|
|
37
|
-
if (element.focus) {
|
|
38
|
-
setTimeout(() => element.focus(), 300);
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
</script>
|
|
43
|
-
|
|
44
|
-
{#if show && hasErrors}
|
|
45
|
-
<div
|
|
46
|
-
transition:safeSlide={{ duration: 300, easing: cubicOut }}
|
|
47
|
-
class="bg-red-50 dark:bg-red-900/20 border border-red-200 dark:border-red-800 rounded-lg p-4 mb-4"
|
|
48
|
-
role="alert"
|
|
49
|
-
aria-live="polite"
|
|
50
|
-
>
|
|
51
|
-
<div class="flex items-start gap-2">
|
|
52
|
-
<WarningIcon class="shrink-0 text-red-600 dark:text-red-500 mt-0.5" />
|
|
53
|
-
<div class="flex-1">
|
|
54
|
-
<p class="text-sm font-medium text-red-800 dark:text-red-400">
|
|
55
|
-
Please fix the following:
|
|
56
|
-
</p>
|
|
57
|
-
<ul class="mt-2 space-y-1">
|
|
58
|
-
{#each errorFields as field}
|
|
59
|
-
<li>
|
|
60
|
-
<Button
|
|
61
|
-
variant="link"
|
|
62
|
-
size="sm"
|
|
63
|
-
class="!text-red-600 dark:!text-red-500 hover:!text-red-900 dark:hover:!text-red-400"
|
|
64
|
-
onclick={() => scrollToField(field.elementId)}
|
|
65
|
-
>
|
|
66
|
-
{field.label}
|
|
67
|
-
</Button>
|
|
68
|
-
</li>
|
|
69
|
-
{/each}
|
|
70
|
-
</ul>
|
|
71
|
-
</div>
|
|
72
|
-
</div>
|
|
73
|
-
</div>
|
|
74
|
-
{/if}
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { safeSlide } from "../../utils/transitions.js";
|
|
3
|
+
import { cubicOut } from "svelte/easing";
|
|
4
|
+
import WarningIcon from "../../primitives/Icons/WarningIcon.svelte";
|
|
5
|
+
import Button from "../../primitives/Button/Button.svelte";
|
|
6
|
+
|
|
7
|
+
interface Props {
|
|
8
|
+
errors?: Record<string, string | null | undefined>;
|
|
9
|
+
show?: boolean;
|
|
10
|
+
fieldLabels?: Record<string, string>;
|
|
11
|
+
fieldIds?: Record<string, string>;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
let {
|
|
15
|
+
errors = {},
|
|
16
|
+
show = false,
|
|
17
|
+
fieldLabels = {},
|
|
18
|
+
fieldIds = {},
|
|
19
|
+
}: Props = $props();
|
|
20
|
+
|
|
21
|
+
// Get list of fields with errors
|
|
22
|
+
let errorFields = $derived(Object.entries(errors)
|
|
23
|
+
.filter(([_, message]) => message && message.trim() !== "")
|
|
24
|
+
.map(([key, message]) => ({
|
|
25
|
+
key,
|
|
26
|
+
label: fieldLabels[key] || key,
|
|
27
|
+
message,
|
|
28
|
+
elementId: fieldIds[key] || key
|
|
29
|
+
})));
|
|
30
|
+
|
|
31
|
+
let hasErrors = $derived(errorFields.length > 0);
|
|
32
|
+
|
|
33
|
+
function scrollToField(elementId: string) {
|
|
34
|
+
const element = document.getElementById(elementId);
|
|
35
|
+
if (element) {
|
|
36
|
+
element.scrollIntoView({ behavior: "smooth", block: "center" });
|
|
37
|
+
if (element.focus) {
|
|
38
|
+
setTimeout(() => element.focus(), 300);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
</script>
|
|
43
|
+
|
|
44
|
+
{#if show && hasErrors}
|
|
45
|
+
<div
|
|
46
|
+
transition:safeSlide={{ duration: 300, easing: cubicOut }}
|
|
47
|
+
class="bg-red-50 dark:bg-red-900/20 border border-red-200 dark:border-red-800 rounded-lg p-4 mb-4"
|
|
48
|
+
role="alert"
|
|
49
|
+
aria-live="polite"
|
|
50
|
+
>
|
|
51
|
+
<div class="flex items-start gap-2">
|
|
52
|
+
<WarningIcon class="shrink-0 text-red-600 dark:text-red-500 mt-0.5" />
|
|
53
|
+
<div class="flex-1">
|
|
54
|
+
<p class="text-sm font-medium text-red-800 dark:text-red-400">
|
|
55
|
+
Please fix the following:
|
|
56
|
+
</p>
|
|
57
|
+
<ul class="mt-2 space-y-1">
|
|
58
|
+
{#each errorFields as field}
|
|
59
|
+
<li>
|
|
60
|
+
<Button
|
|
61
|
+
variant="link"
|
|
62
|
+
size="sm"
|
|
63
|
+
class="!text-red-600 dark:!text-red-500 hover:!text-red-900 dark:hover:!text-red-400"
|
|
64
|
+
onclick={() => scrollToField(field.elementId)}
|
|
65
|
+
>
|
|
66
|
+
{field.label}
|
|
67
|
+
</Button>
|
|
68
|
+
</li>
|
|
69
|
+
{/each}
|
|
70
|
+
</ul>
|
|
71
|
+
</div>
|
|
72
|
+
</div>
|
|
73
|
+
</div>
|
|
74
|
+
{/if}
|
|
@@ -1,39 +1,39 @@
|
|
|
1
|
-
<script>
|
|
2
|
-
let {
|
|
3
|
-
sidebarWidth = 'medium',
|
|
4
|
-
sidebarPosition = 'right',
|
|
5
|
-
class: className = '',
|
|
6
|
-
sidebar,
|
|
7
|
-
children,
|
|
8
|
-
} = $props();
|
|
9
|
-
|
|
10
|
-
const widthClasses = {
|
|
11
|
-
narrow: 'lg:w-72',
|
|
12
|
-
medium: 'lg:w-80',
|
|
13
|
-
wide: 'lg:w-96',
|
|
14
|
-
};
|
|
15
|
-
|
|
16
|
-
const mainWidthClasses = {
|
|
17
|
-
narrow: 'lg:w-[calc(100%-18rem)]',
|
|
18
|
-
medium: 'lg:w-[calc(100%-20rem)]',
|
|
19
|
-
wide: 'lg:w-[calc(100%-24rem)]',
|
|
20
|
-
};
|
|
21
|
-
</script>
|
|
22
|
-
|
|
23
|
-
<div class="flex flex-col lg:flex-row gap-6 {className}">
|
|
24
|
-
{#if sidebarPosition === 'left'}
|
|
25
|
-
<aside class="w-full {widthClasses[sidebarWidth]} flex-shrink-0">
|
|
26
|
-
{@render sidebar?.()}
|
|
27
|
-
</aside>
|
|
28
|
-
<main class="w-full {mainWidthClasses[sidebarWidth]} flex-grow min-w-0">
|
|
29
|
-
{@render children?.()}
|
|
30
|
-
</main>
|
|
31
|
-
{:else}
|
|
32
|
-
<main class="w-full {mainWidthClasses[sidebarWidth]} flex-grow min-w-0">
|
|
33
|
-
{@render children?.()}
|
|
34
|
-
</main>
|
|
35
|
-
<aside class="w-full {widthClasses[sidebarWidth]} flex-shrink-0">
|
|
36
|
-
{@render sidebar?.()}
|
|
37
|
-
</aside>
|
|
38
|
-
{/if}
|
|
39
|
-
</div>
|
|
1
|
+
<script>
|
|
2
|
+
let {
|
|
3
|
+
sidebarWidth = 'medium',
|
|
4
|
+
sidebarPosition = 'right',
|
|
5
|
+
class: className = '',
|
|
6
|
+
sidebar,
|
|
7
|
+
children,
|
|
8
|
+
} = $props();
|
|
9
|
+
|
|
10
|
+
const widthClasses = {
|
|
11
|
+
narrow: 'lg:w-72',
|
|
12
|
+
medium: 'lg:w-80',
|
|
13
|
+
wide: 'lg:w-96',
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
const mainWidthClasses = {
|
|
17
|
+
narrow: 'lg:w-[calc(100%-18rem)]',
|
|
18
|
+
medium: 'lg:w-[calc(100%-20rem)]',
|
|
19
|
+
wide: 'lg:w-[calc(100%-24rem)]',
|
|
20
|
+
};
|
|
21
|
+
</script>
|
|
22
|
+
|
|
23
|
+
<div class="flex flex-col lg:flex-row gap-6 {className}">
|
|
24
|
+
{#if sidebarPosition === 'left'}
|
|
25
|
+
<aside class="w-full {widthClasses[sidebarWidth]} flex-shrink-0">
|
|
26
|
+
{@render sidebar?.()}
|
|
27
|
+
</aside>
|
|
28
|
+
<main class="w-full {mainWidthClasses[sidebarWidth]} flex-grow min-w-0">
|
|
29
|
+
{@render children?.()}
|
|
30
|
+
</main>
|
|
31
|
+
{:else}
|
|
32
|
+
<main class="w-full {mainWidthClasses[sidebarWidth]} flex-grow min-w-0">
|
|
33
|
+
{@render children?.()}
|
|
34
|
+
</main>
|
|
35
|
+
<aside class="w-full {widthClasses[sidebarWidth]} flex-shrink-0">
|
|
36
|
+
{@render sidebar?.()}
|
|
37
|
+
</aside>
|
|
38
|
+
{/if}
|
|
39
|
+
</div>
|
|
@@ -2,4 +2,13 @@ export { default as Grid } from "../../components/Layout/Grid.svelte";
|
|
|
2
2
|
export { default as Section } from "../../components/Layout/Section.svelte";
|
|
3
3
|
export { default as Sidebar } from "../../components/Layout/Sidebar.svelte";
|
|
4
4
|
export { default as Stack } from "../../components/Layout/Stack.svelte";
|
|
5
|
+
export { default as Text } from "../../components/Layout/Text.svelte";
|
|
6
|
+
export { default as Heading } from "../../components/Layout/Heading.svelte";
|
|
7
|
+
export { default as PageContainer } from "../../components/Layout/PageContainer.svelte";
|
|
8
|
+
export { default as ContentSection } from "../../components/Layout/ContentSection.svelte";
|
|
9
|
+
export { default as TwoColumn } from "../../components/Layout/TwoColumn.svelte";
|
|
10
|
+
export { default as AppShell } from "../../components/Layout/AppShell.svelte";
|
|
11
|
+
export { default as Responsive } from "../../components/Layout/Responsive.svelte";
|
|
12
|
+
export { default as ShowOnMobile } from "../../components/Layout/ShowOnMobile.svelte";
|
|
13
|
+
export { default as ShowOnDesktop } from "../../components/Layout/ShowOnDesktop.svelte";
|
|
5
14
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1,6 +1,28 @@
|
|
|
1
1
|
// Layout pattern components
|
|
2
2
|
// Note: These are canonical exports from components/Layout/
|
|
3
|
+
|
|
4
|
+
// Core layout primitives
|
|
3
5
|
export { default as Grid } from '../../components/Layout/Grid.svelte';
|
|
4
6
|
export { default as Section } from '../../components/Layout/Section.svelte';
|
|
5
7
|
export { default as Sidebar } from '../../components/Layout/Sidebar.svelte';
|
|
6
8
|
export { default as Stack } from '../../components/Layout/Stack.svelte';
|
|
9
|
+
|
|
10
|
+
// Typography components
|
|
11
|
+
export { default as Text } from '../../components/Layout/Text.svelte';
|
|
12
|
+
export { default as Heading } from '../../components/Layout/Heading.svelte';
|
|
13
|
+
|
|
14
|
+
// Container components
|
|
15
|
+
export { default as PageContainer } from '../../components/Layout/PageContainer.svelte';
|
|
16
|
+
export { default as ContentSection } from '../../components/Layout/ContentSection.svelte';
|
|
17
|
+
export { default as TwoColumn } from '../../components/Layout/TwoColumn.svelte';
|
|
18
|
+
|
|
19
|
+
// App shell
|
|
20
|
+
export { default as AppShell } from '../../components/Layout/AppShell.svelte';
|
|
21
|
+
|
|
22
|
+
// Note: EmptyState is exported from recipes/feedback to avoid naming conflict
|
|
23
|
+
// Use: import { EmptyState } from '@getmicdrop/svelte-components' (from recipes)
|
|
24
|
+
|
|
25
|
+
// Responsive utilities
|
|
26
|
+
export { default as Responsive } from '../../components/Layout/Responsive.svelte';
|
|
27
|
+
export { default as ShowOnMobile } from '../../components/Layout/ShowOnMobile.svelte';
|
|
28
|
+
export { default as ShowOnDesktop } from '../../components/Layout/ShowOnDesktop.svelte';
|