@getmicdrop/svelte-components 5.8.1 → 5.8.2
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/Heading.svelte +60 -58
- package/dist/components/Heading.svelte.d.ts +1 -0
- package/dist/components/Heading.svelte.d.ts.map +1 -1
- package/dist/components/Layout/AppShell.svelte +104 -104
- package/dist/components/Layout/ContentSection.svelte +80 -80
- package/dist/components/Layout/Grid.svelte +4 -4
- 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 +6 -6
- 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/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 +50 -50
- 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.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 +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/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 +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/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/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/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 +69 -69
- package/dist/primitives/ValidationError.svelte +29 -29
- package/dist/primitives/index.js +91 -91
- 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/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/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/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/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 +1169 -1169
- package/dist/tokens/tokens.css +87 -87
- package/dist/tokens/typography-base.css +163 -163
- package/dist/tokens/utilities.css +353 -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 +296 -295
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
<script module>
|
|
2
|
-
import { defineMeta } from '@storybook/addon-svelte-csf';
|
|
3
|
-
import PatternsGallery from './PatternsGallery.svelte';
|
|
4
|
-
|
|
5
|
-
const { Story } = defineMeta({
|
|
6
|
-
title: 'Visual Galleries/Patterns',
|
|
7
|
-
component: PatternsGallery,
|
|
8
|
-
parameters: {
|
|
9
|
-
layout: 'fullscreen',
|
|
10
|
-
docs: {
|
|
11
|
-
description: {
|
|
12
|
-
component: 'Complete visual gallery of all pattern components (Layer 3) - Layout & flow components.',
|
|
13
|
-
},
|
|
14
|
-
},
|
|
15
|
-
},
|
|
16
|
-
});
|
|
17
|
-
</script>
|
|
18
|
-
|
|
19
|
-
<Story name="All Patterns" />
|
|
1
|
+
<script module>
|
|
2
|
+
import { defineMeta } from '@storybook/addon-svelte-csf';
|
|
3
|
+
import PatternsGallery from './PatternsGallery.svelte';
|
|
4
|
+
|
|
5
|
+
const { Story } = defineMeta({
|
|
6
|
+
title: 'Visual Galleries/Patterns',
|
|
7
|
+
component: PatternsGallery,
|
|
8
|
+
parameters: {
|
|
9
|
+
layout: 'fullscreen',
|
|
10
|
+
docs: {
|
|
11
|
+
description: {
|
|
12
|
+
component: 'Complete visual gallery of all pattern components (Layer 3) - Layout & flow components.',
|
|
13
|
+
},
|
|
14
|
+
},
|
|
15
|
+
},
|
|
16
|
+
});
|
|
17
|
+
</script>
|
|
18
|
+
|
|
19
|
+
<Story name="All Patterns" />
|
|
@@ -1,115 +1,115 @@
|
|
|
1
|
-
<script lang="ts">
|
|
2
|
-
// ============================================================================
|
|
3
|
-
// PATTERNS VISUAL GALLERY
|
|
4
|
-
// Displays ALL pattern components (Layer 3) - Layout & flow components
|
|
5
|
-
// ============================================================================
|
|
6
|
-
|
|
7
|
-
// Forms
|
|
8
|
-
import FormActions from '../patterns/forms/FormActions.svelte';
|
|
9
|
-
import FormGrid from '../patterns/forms/FormGrid.svelte';
|
|
10
|
-
import FormSection from '../patterns/forms/FormSection.svelte';
|
|
11
|
-
import FormValidationSummary from '../patterns/forms/FormValidationSummary.svelte';
|
|
12
|
-
|
|
13
|
-
// Navigation
|
|
14
|
-
import BottomNav from '../patterns/navigation/BottomNav.svelte';
|
|
15
|
-
import Header from '../patterns/navigation/Header.svelte';
|
|
16
|
-
|
|
17
|
-
// Page
|
|
18
|
-
import PageHeader from '../patterns/page/PageHeader.svelte';
|
|
19
|
-
import PageLayout from '../patterns/page/PageLayout.svelte';
|
|
20
|
-
import PageLoader from '../patterns/page/PageLoader.svelte';
|
|
21
|
-
import SectionHeader from '../patterns/page/SectionHeader.svelte';
|
|
22
|
-
|
|
23
|
-
// Data
|
|
24
|
-
import DataGrid from '../patterns/data/DataGrid.svelte';
|
|
25
|
-
import DataList from '../patterns/data/DataList.svelte';
|
|
26
|
-
import DataTable from '../patterns/data/DataTable.svelte';
|
|
27
|
-
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
// ============================================================================
|
|
3
|
+
// PATTERNS VISUAL GALLERY
|
|
4
|
+
// Displays ALL pattern components (Layer 3) - Layout & flow components
|
|
5
|
+
// ============================================================================
|
|
6
|
+
|
|
7
|
+
// Forms
|
|
8
|
+
import FormActions from '../patterns/forms/FormActions.svelte';
|
|
9
|
+
import FormGrid from '../patterns/forms/FormGrid.svelte';
|
|
10
|
+
import FormSection from '../patterns/forms/FormSection.svelte';
|
|
11
|
+
import FormValidationSummary from '../patterns/forms/FormValidationSummary.svelte';
|
|
12
|
+
|
|
13
|
+
// Navigation
|
|
14
|
+
import BottomNav from '../patterns/navigation/BottomNav.svelte';
|
|
15
|
+
import Header from '../patterns/navigation/Header.svelte';
|
|
16
|
+
|
|
17
|
+
// Page
|
|
18
|
+
import PageHeader from '../patterns/page/PageHeader.svelte';
|
|
19
|
+
import PageLayout from '../patterns/page/PageLayout.svelte';
|
|
20
|
+
import PageLoader from '../patterns/page/PageLoader.svelte';
|
|
21
|
+
import SectionHeader from '../patterns/page/SectionHeader.svelte';
|
|
22
|
+
|
|
23
|
+
// Data
|
|
24
|
+
import DataGrid from '../patterns/data/DataGrid.svelte';
|
|
25
|
+
import DataList from '../patterns/data/DataList.svelte';
|
|
26
|
+
import DataTable from '../patterns/data/DataTable.svelte';
|
|
27
|
+
|
|
28
28
|
// Layout (canonical components from components/Layout)
|
|
29
29
|
import Grid from '../components/Layout/Grid.svelte';
|
|
30
30
|
import Stack from '../components/Layout/Stack.svelte';
|
|
31
31
|
import Sidebar from '../components/Layout/Sidebar.svelte';
|
|
32
|
-
|
|
33
|
-
// Primitives for demos
|
|
34
|
-
import Button from '../primitives/Button/Button.svelte';
|
|
35
|
-
import Input from '../primitives/Input/Input.svelte';
|
|
36
|
-
import Card from '../primitives/Card.svelte';
|
|
37
|
-
import Badge from '../primitives/Badges/Badge.svelte';
|
|
38
|
-
|
|
39
|
-
// State
|
|
40
|
-
let isDark = $state(false);
|
|
41
|
-
let showPageLoader = $state(false);
|
|
42
|
-
|
|
43
|
-
function toggleDark() {
|
|
44
|
-
isDark = !isDark;
|
|
45
|
-
document.documentElement.classList.toggle('dark', isDark);
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
// Section styling
|
|
49
|
-
const sectionClass = (dark: boolean) =>
|
|
50
|
-
`rounded-xl p-6 ${dark ? 'bg-gray-800 border-gray-700' : 'bg-white border-gray-200'} border`;
|
|
51
|
-
|
|
52
|
-
const headingClass = (dark: boolean) =>
|
|
53
|
-
`text-xl font-semibold mb-1 ${dark ? 'text-white' : 'text-gray-900'}`;
|
|
54
|
-
|
|
55
|
-
const subheadingClass = (dark: boolean) =>
|
|
56
|
-
`text-sm mb-4 ${dark ? 'text-gray-400' : 'text-gray-500'}`;
|
|
57
|
-
|
|
32
|
+
|
|
33
|
+
// Primitives for demos
|
|
34
|
+
import Button from '../primitives/Button/Button.svelte';
|
|
35
|
+
import Input from '../primitives/Input/Input.svelte';
|
|
36
|
+
import Card from '../primitives/Card.svelte';
|
|
37
|
+
import Badge from '../primitives/Badges/Badge.svelte';
|
|
38
|
+
|
|
39
|
+
// State
|
|
40
|
+
let isDark = $state(false);
|
|
41
|
+
let showPageLoader = $state(false);
|
|
42
|
+
|
|
43
|
+
function toggleDark() {
|
|
44
|
+
isDark = !isDark;
|
|
45
|
+
document.documentElement.classList.toggle('dark', isDark);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
// Section styling
|
|
49
|
+
const sectionClass = (dark: boolean) =>
|
|
50
|
+
`rounded-xl p-6 ${dark ? 'bg-gray-800 border-gray-700' : 'bg-white border-gray-200'} border`;
|
|
51
|
+
|
|
52
|
+
const headingClass = (dark: boolean) =>
|
|
53
|
+
`text-xl font-semibold mb-1 ${dark ? 'text-white' : 'text-gray-900'}`;
|
|
54
|
+
|
|
55
|
+
const subheadingClass = (dark: boolean) =>
|
|
56
|
+
`text-sm mb-4 ${dark ? 'text-gray-400' : 'text-gray-500'}`;
|
|
57
|
+
|
|
58
58
|
// Demo data
|
|
59
59
|
const sampleErrors: Record<string, string | null | undefined> = {
|
|
60
60
|
email: 'Email is required',
|
|
61
61
|
password: 'Password must be at least 8 characters',
|
|
62
62
|
};
|
|
63
|
-
|
|
64
|
-
const tableData = [
|
|
65
|
-
{ id: 1, name: 'John Doe', email: 'john@example.com', status: 'Active' },
|
|
66
|
-
{ id: 2, name: 'Jane Smith', email: 'jane@example.com', status: 'Pending' },
|
|
67
|
-
{ id: 3, name: 'Bob Wilson', email: 'bob@example.com', status: 'Inactive' },
|
|
68
|
-
];
|
|
69
|
-
|
|
70
|
-
const tableColumns = [
|
|
71
|
-
{ key: 'name', label: 'Name' },
|
|
72
|
-
{ key: 'email', label: 'Email' },
|
|
73
|
-
{ key: 'status', label: 'Status' },
|
|
74
|
-
];
|
|
75
|
-
|
|
76
|
-
const gridItems = [
|
|
77
|
-
{ id: 1, title: 'Item 1', description: 'Description for item 1' },
|
|
78
|
-
{ id: 2, title: 'Item 2', description: 'Description for item 2' },
|
|
79
|
-
{ id: 3, title: 'Item 3', description: 'Description for item 3' },
|
|
80
|
-
{ id: 4, title: 'Item 4', description: 'Description for item 4' },
|
|
81
|
-
{ id: 5, title: 'Item 5', description: 'Description for item 5' },
|
|
82
|
-
{ id: 6, title: 'Item 6', description: 'Description for item 6' },
|
|
83
|
-
];
|
|
84
|
-
|
|
85
|
-
const listItems = [
|
|
86
|
-
{ id: 1, primary: 'Primary text 1', secondary: 'Secondary text' },
|
|
87
|
-
{ id: 2, primary: 'Primary text 2', secondary: 'More details here' },
|
|
88
|
-
{ id: 3, primary: 'Primary text 3', secondary: 'Additional info' },
|
|
89
|
-
];
|
|
90
|
-
|
|
63
|
+
|
|
64
|
+
const tableData = [
|
|
65
|
+
{ id: 1, name: 'John Doe', email: 'john@example.com', status: 'Active' },
|
|
66
|
+
{ id: 2, name: 'Jane Smith', email: 'jane@example.com', status: 'Pending' },
|
|
67
|
+
{ id: 3, name: 'Bob Wilson', email: 'bob@example.com', status: 'Inactive' },
|
|
68
|
+
];
|
|
69
|
+
|
|
70
|
+
const tableColumns = [
|
|
71
|
+
{ key: 'name', label: 'Name' },
|
|
72
|
+
{ key: 'email', label: 'Email' },
|
|
73
|
+
{ key: 'status', label: 'Status' },
|
|
74
|
+
];
|
|
75
|
+
|
|
76
|
+
const gridItems = [
|
|
77
|
+
{ id: 1, title: 'Item 1', description: 'Description for item 1' },
|
|
78
|
+
{ id: 2, title: 'Item 2', description: 'Description for item 2' },
|
|
79
|
+
{ id: 3, title: 'Item 3', description: 'Description for item 3' },
|
|
80
|
+
{ id: 4, title: 'Item 4', description: 'Description for item 4' },
|
|
81
|
+
{ id: 5, title: 'Item 5', description: 'Description for item 5' },
|
|
82
|
+
{ id: 6, title: 'Item 6', description: 'Description for item 6' },
|
|
83
|
+
];
|
|
84
|
+
|
|
85
|
+
const listItems = [
|
|
86
|
+
{ id: 1, primary: 'Primary text 1', secondary: 'Secondary text' },
|
|
87
|
+
{ id: 2, primary: 'Primary text 2', secondary: 'More details here' },
|
|
88
|
+
{ id: 3, primary: 'Primary text 3', secondary: 'Additional info' },
|
|
89
|
+
];
|
|
90
|
+
|
|
91
91
|
const bottomNavLinks = [
|
|
92
92
|
{ label: 'Home', href: '/', icon: 'home' },
|
|
93
93
|
{ label: 'Shows', href: '/shows', icon: 'shows' },
|
|
94
94
|
{ label: 'Profile', href: '/profile', icon: 'profile' },
|
|
95
95
|
];
|
|
96
|
-
</script>
|
|
97
|
-
|
|
98
|
-
<div class="min-h-screen p-6 space-y-8 {isDark ? 'bg-gray-900' : 'bg-gray-50'}">
|
|
99
|
-
<!-- Header -->
|
|
100
|
-
<div class="flex items-center justify-between mb-8">
|
|
101
|
-
<div>
|
|
102
|
-
<h1 class="text-3xl font-bold {isDark ? 'text-white' : 'text-gray-900'}">Patterns Gallery</h1>
|
|
103
|
-
<p class="{isDark ? 'text-gray-400' : 'text-gray-600'}">Layout & flow components (Layer 3)</p>
|
|
104
|
-
</div>
|
|
105
|
-
<button
|
|
106
|
-
onclick={toggleDark}
|
|
107
|
-
class="px-4 py-2 rounded-lg font-medium {isDark ? 'bg-yellow-500 text-black' : 'bg-gray-800 text-white'}"
|
|
108
|
-
>
|
|
109
|
-
{isDark ? '☀️ Light' : '🌙 Dark'}
|
|
110
|
-
</button>
|
|
111
|
-
</div>
|
|
112
|
-
|
|
96
|
+
</script>
|
|
97
|
+
|
|
98
|
+
<div class="min-h-screen p-6 space-y-8 {isDark ? 'bg-gray-900' : 'bg-gray-50'}">
|
|
99
|
+
<!-- Header -->
|
|
100
|
+
<div class="flex items-center justify-between mb-8">
|
|
101
|
+
<div>
|
|
102
|
+
<h1 class="text-3xl font-bold {isDark ? 'text-white' : 'text-gray-900'}">Patterns Gallery</h1>
|
|
103
|
+
<p class="{isDark ? 'text-gray-400' : 'text-gray-600'}">Layout & flow components (Layer 3)</p>
|
|
104
|
+
</div>
|
|
105
|
+
<button
|
|
106
|
+
onclick={toggleDark}
|
|
107
|
+
class="px-4 py-2 rounded-lg font-medium {isDark ? 'bg-yellow-500 text-black' : 'bg-gray-800 text-white'}"
|
|
108
|
+
>
|
|
109
|
+
{isDark ? '☀️ Light' : '🌙 Dark'}
|
|
110
|
+
</button>
|
|
111
|
+
</div>
|
|
112
|
+
|
|
113
113
|
<!-- ========== PAGE PATTERNS ========== -->
|
|
114
114
|
<section class={sectionClass(isDark)}>
|
|
115
115
|
<h2 class={headingClass(isDark)}>PageHeader</h2>
|
|
@@ -131,75 +131,75 @@
|
|
|
131
131
|
</PageHeader>
|
|
132
132
|
</div>
|
|
133
133
|
</section>
|
|
134
|
-
|
|
135
|
-
<!-- ========== SECTION HEADER ========== -->
|
|
136
|
-
<section class={sectionClass(isDark)}>
|
|
137
|
-
<h2 class={headingClass(isDark)}>SectionHeader</h2>
|
|
138
|
-
<p class={subheadingClass(isDark)}>Section dividers with optional description</p>
|
|
139
|
-
|
|
140
|
-
<div class="space-y-6">
|
|
141
|
-
<SectionHeader title="Basic Section" />
|
|
142
|
-
<SectionHeader title="With Description" description="Additional context about this section" />
|
|
134
|
+
|
|
135
|
+
<!-- ========== SECTION HEADER ========== -->
|
|
136
|
+
<section class={sectionClass(isDark)}>
|
|
137
|
+
<h2 class={headingClass(isDark)}>SectionHeader</h2>
|
|
138
|
+
<p class={subheadingClass(isDark)}>Section dividers with optional description</p>
|
|
139
|
+
|
|
140
|
+
<div class="space-y-6">
|
|
141
|
+
<SectionHeader title="Basic Section" />
|
|
142
|
+
<SectionHeader title="With Description" description="Additional context about this section" />
|
|
143
143
|
<SectionHeader title="With Action">
|
|
144
144
|
{#snippet actions()}
|
|
145
145
|
<Button variant="link" size="sm">View All</Button>
|
|
146
146
|
{/snippet}
|
|
147
147
|
</SectionHeader>
|
|
148
|
-
</div>
|
|
149
|
-
</section>
|
|
150
|
-
|
|
151
|
-
<!-- ========== PAGE LOADER ========== -->
|
|
152
|
-
<section class={sectionClass(isDark)}>
|
|
153
|
-
<h2 class={headingClass(isDark)}>PageLoader</h2>
|
|
154
|
-
<p class={subheadingClass(isDark)}>Full-page loading indicator</p>
|
|
155
|
-
|
|
156
|
-
<Button onclick={() => {
|
|
157
|
-
showPageLoader = true;
|
|
158
|
-
setTimeout(() => showPageLoader = false, 2000);
|
|
159
|
-
}}>
|
|
160
|
-
Show PageLoader (2s)
|
|
161
|
-
</Button>
|
|
162
|
-
</section>
|
|
163
|
-
|
|
164
|
-
{#if showPageLoader}
|
|
165
|
-
<PageLoader />
|
|
166
|
-
{/if}
|
|
167
|
-
|
|
168
|
-
<!-- ========== FORM PATTERNS ========== -->
|
|
169
|
-
<section class={sectionClass(isDark)}>
|
|
170
|
-
<h2 class={headingClass(isDark)}>FormSection</h2>
|
|
171
|
-
<p class={subheadingClass(isDark)}>Grouped form fields with title and description</p>
|
|
172
|
-
|
|
173
|
-
<FormSection title="Personal Information" description="Enter your personal details">
|
|
174
|
-
<div class="space-y-4">
|
|
175
|
-
<Input label="Full Name" placeholder="John Doe" />
|
|
176
|
-
<Input label="Email" type="email" placeholder="john@example.com" />
|
|
177
|
-
</div>
|
|
178
|
-
</FormSection>
|
|
179
|
-
</section>
|
|
180
|
-
|
|
181
|
-
<!-- ========== FORM GRID ========== -->
|
|
182
|
-
<section class={sectionClass(isDark)}>
|
|
183
|
-
<h2 class={headingClass(isDark)}>FormGrid</h2>
|
|
184
|
-
<p class={subheadingClass(isDark)}>Responsive grid layout for form fields</p>
|
|
185
|
-
|
|
186
|
-
<FormGrid cols={2}>
|
|
187
|
-
<Input label="First Name" placeholder="John" />
|
|
188
|
-
<Input label="Last Name" placeholder="Doe" />
|
|
189
|
-
<Input label="Email" type="email" placeholder="john@example.com" />
|
|
190
|
-
<Input label="Phone" type="tel" placeholder="(555) 123-4567" />
|
|
191
|
-
</FormGrid>
|
|
192
|
-
|
|
193
|
-
<div class="mt-6">
|
|
194
|
-
<p class="text-xs {isDark ? 'text-gray-500' : 'text-gray-400'} mb-2">3 Columns</p>
|
|
195
|
-
<FormGrid cols={3}>
|
|
196
|
-
<Input label="City" placeholder="New York" />
|
|
197
|
-
<Input label="State" placeholder="NY" />
|
|
198
|
-
<Input label="Zip" placeholder="10001" />
|
|
199
|
-
</FormGrid>
|
|
200
|
-
</div>
|
|
201
|
-
</section>
|
|
202
|
-
|
|
148
|
+
</div>
|
|
149
|
+
</section>
|
|
150
|
+
|
|
151
|
+
<!-- ========== PAGE LOADER ========== -->
|
|
152
|
+
<section class={sectionClass(isDark)}>
|
|
153
|
+
<h2 class={headingClass(isDark)}>PageLoader</h2>
|
|
154
|
+
<p class={subheadingClass(isDark)}>Full-page loading indicator</p>
|
|
155
|
+
|
|
156
|
+
<Button onclick={() => {
|
|
157
|
+
showPageLoader = true;
|
|
158
|
+
setTimeout(() => showPageLoader = false, 2000);
|
|
159
|
+
}}>
|
|
160
|
+
Show PageLoader (2s)
|
|
161
|
+
</Button>
|
|
162
|
+
</section>
|
|
163
|
+
|
|
164
|
+
{#if showPageLoader}
|
|
165
|
+
<PageLoader />
|
|
166
|
+
{/if}
|
|
167
|
+
|
|
168
|
+
<!-- ========== FORM PATTERNS ========== -->
|
|
169
|
+
<section class={sectionClass(isDark)}>
|
|
170
|
+
<h2 class={headingClass(isDark)}>FormSection</h2>
|
|
171
|
+
<p class={subheadingClass(isDark)}>Grouped form fields with title and description</p>
|
|
172
|
+
|
|
173
|
+
<FormSection title="Personal Information" description="Enter your personal details">
|
|
174
|
+
<div class="space-y-4">
|
|
175
|
+
<Input label="Full Name" placeholder="John Doe" />
|
|
176
|
+
<Input label="Email" type="email" placeholder="john@example.com" />
|
|
177
|
+
</div>
|
|
178
|
+
</FormSection>
|
|
179
|
+
</section>
|
|
180
|
+
|
|
181
|
+
<!-- ========== FORM GRID ========== -->
|
|
182
|
+
<section class={sectionClass(isDark)}>
|
|
183
|
+
<h2 class={headingClass(isDark)}>FormGrid</h2>
|
|
184
|
+
<p class={subheadingClass(isDark)}>Responsive grid layout for form fields</p>
|
|
185
|
+
|
|
186
|
+
<FormGrid cols={2}>
|
|
187
|
+
<Input label="First Name" placeholder="John" />
|
|
188
|
+
<Input label="Last Name" placeholder="Doe" />
|
|
189
|
+
<Input label="Email" type="email" placeholder="john@example.com" />
|
|
190
|
+
<Input label="Phone" type="tel" placeholder="(555) 123-4567" />
|
|
191
|
+
</FormGrid>
|
|
192
|
+
|
|
193
|
+
<div class="mt-6">
|
|
194
|
+
<p class="text-xs {isDark ? 'text-gray-500' : 'text-gray-400'} mb-2">3 Columns</p>
|
|
195
|
+
<FormGrid cols={3}>
|
|
196
|
+
<Input label="City" placeholder="New York" />
|
|
197
|
+
<Input label="State" placeholder="NY" />
|
|
198
|
+
<Input label="Zip" placeholder="10001" />
|
|
199
|
+
</FormGrid>
|
|
200
|
+
</div>
|
|
201
|
+
</section>
|
|
202
|
+
|
|
203
203
|
<!-- ========== FORM ACTIONS ========== -->
|
|
204
204
|
<section class={sectionClass(isDark)}>
|
|
205
205
|
<h2 class={headingClass(isDark)}>FormActions</h2>
|
|
@@ -222,15 +222,15 @@
|
|
|
222
222
|
</div>
|
|
223
223
|
</div>
|
|
224
224
|
</section>
|
|
225
|
-
|
|
226
|
-
<!-- ========== FORM VALIDATION SUMMARY ========== -->
|
|
227
|
-
<section class={sectionClass(isDark)}>
|
|
228
|
-
<h2 class={headingClass(isDark)}>FormValidationSummary</h2>
|
|
229
|
-
<p class={subheadingClass(isDark)}>Summary of form validation errors</p>
|
|
230
|
-
|
|
231
|
-
<FormValidationSummary errors={sampleErrors} />
|
|
232
|
-
</section>
|
|
233
|
-
|
|
225
|
+
|
|
226
|
+
<!-- ========== FORM VALIDATION SUMMARY ========== -->
|
|
227
|
+
<section class={sectionClass(isDark)}>
|
|
228
|
+
<h2 class={headingClass(isDark)}>FormValidationSummary</h2>
|
|
229
|
+
<p class={subheadingClass(isDark)}>Summary of form validation errors</p>
|
|
230
|
+
|
|
231
|
+
<FormValidationSummary errors={sampleErrors} />
|
|
232
|
+
</section>
|
|
233
|
+
|
|
234
234
|
<!-- ========== DATA TABLE ========== -->
|
|
235
235
|
<section class={sectionClass(isDark)}>
|
|
236
236
|
<h2 class={headingClass(isDark)}>DataTable</h2>
|
|
@@ -255,7 +255,7 @@
|
|
|
255
255
|
{/snippet}
|
|
256
256
|
</DataTable>
|
|
257
257
|
</section>
|
|
258
|
-
|
|
258
|
+
|
|
259
259
|
<!-- ========== DATA LIST ========== -->
|
|
260
260
|
<section class={sectionClass(isDark)}>
|
|
261
261
|
<h2 class={headingClass(isDark)}>DataList</h2>
|
|
@@ -275,7 +275,7 @@
|
|
|
275
275
|
</DataList>
|
|
276
276
|
</div>
|
|
277
277
|
</section>
|
|
278
|
-
|
|
278
|
+
|
|
279
279
|
<!-- ========== DATA GRID ========== -->
|
|
280
280
|
<section class={sectionClass(isDark)}>
|
|
281
281
|
<h2 class={headingClass(isDark)}>DataGrid</h2>
|
|
@@ -290,35 +290,35 @@
|
|
|
290
290
|
{/snippet}
|
|
291
291
|
</DataGrid>
|
|
292
292
|
</section>
|
|
293
|
-
|
|
294
|
-
<!-- ========== LAYOUT: STACK ========== -->
|
|
295
|
-
<section class={sectionClass(isDark)}>
|
|
296
|
-
<h2 class={headingClass(isDark)}>Stack</h2>
|
|
297
|
-
<p class={subheadingClass(isDark)}>Vertical spacing utility</p>
|
|
298
|
-
|
|
299
|
-
<div class="max-w-sm">
|
|
300
|
-
<Stack gap="md">
|
|
301
|
-
<Card>Stack Item 1</Card>
|
|
302
|
-
<Card>Stack Item 2</Card>
|
|
303
|
-
<Card>Stack Item 3</Card>
|
|
304
|
-
</Stack>
|
|
305
|
-
</div>
|
|
306
|
-
</section>
|
|
307
|
-
|
|
308
|
-
<!-- ========== LAYOUT: GRID ========== -->
|
|
309
|
-
<section class={sectionClass(isDark)}>
|
|
310
|
-
<h2 class={headingClass(isDark)}>Grid</h2>
|
|
311
|
-
<p class={subheadingClass(isDark)}>Responsive grid layout utility</p>
|
|
312
|
-
|
|
313
|
-
<Grid cols="4" gap="md">
|
|
314
|
-
{#each [1, 2, 3, 4, 5, 6, 7, 8] as i}
|
|
315
|
-
<Card class="text-center py-4">
|
|
316
|
-
<span class="text-2xl font-bold">{i}</span>
|
|
317
|
-
</Card>
|
|
318
|
-
{/each}
|
|
319
|
-
</Grid>
|
|
320
|
-
</section>
|
|
321
|
-
|
|
293
|
+
|
|
294
|
+
<!-- ========== LAYOUT: STACK ========== -->
|
|
295
|
+
<section class={sectionClass(isDark)}>
|
|
296
|
+
<h2 class={headingClass(isDark)}>Stack</h2>
|
|
297
|
+
<p class={subheadingClass(isDark)}>Vertical spacing utility</p>
|
|
298
|
+
|
|
299
|
+
<div class="max-w-sm">
|
|
300
|
+
<Stack gap="md">
|
|
301
|
+
<Card>Stack Item 1</Card>
|
|
302
|
+
<Card>Stack Item 2</Card>
|
|
303
|
+
<Card>Stack Item 3</Card>
|
|
304
|
+
</Stack>
|
|
305
|
+
</div>
|
|
306
|
+
</section>
|
|
307
|
+
|
|
308
|
+
<!-- ========== LAYOUT: GRID ========== -->
|
|
309
|
+
<section class={sectionClass(isDark)}>
|
|
310
|
+
<h2 class={headingClass(isDark)}>Grid</h2>
|
|
311
|
+
<p class={subheadingClass(isDark)}>Responsive grid layout utility</p>
|
|
312
|
+
|
|
313
|
+
<Grid cols="4" gap="md">
|
|
314
|
+
{#each [1, 2, 3, 4, 5, 6, 7, 8] as i}
|
|
315
|
+
<Card class="text-center py-4">
|
|
316
|
+
<span class="text-2xl font-bold">{i}</span>
|
|
317
|
+
</Card>
|
|
318
|
+
{/each}
|
|
319
|
+
</Grid>
|
|
320
|
+
</section>
|
|
321
|
+
|
|
322
322
|
<!-- ========== LAYOUT: SIDEBAR ========== -->
|
|
323
323
|
<section class={sectionClass(isDark)}>
|
|
324
324
|
<h2 class={headingClass(isDark)}>Sidebar</h2>
|
|
@@ -344,7 +344,7 @@
|
|
|
344
344
|
</Sidebar>
|
|
345
345
|
</div>
|
|
346
346
|
</section>
|
|
347
|
-
|
|
347
|
+
|
|
348
348
|
<!-- ========== NAVIGATION: HEADER ========== -->
|
|
349
349
|
<section class={sectionClass(isDark)}>
|
|
350
350
|
<h2 class={headingClass(isDark)}>Header</h2>
|
|
@@ -363,7 +363,7 @@
|
|
|
363
363
|
</div>
|
|
364
364
|
</div>
|
|
365
365
|
</section>
|
|
366
|
-
|
|
366
|
+
|
|
367
367
|
<!-- ========== NAVIGATION: BOTTOM NAV ========== -->
|
|
368
368
|
<section class={sectionClass(isDark)}>
|
|
369
369
|
<h2 class={headingClass(isDark)}>BottomNav</h2>
|
|
@@ -373,7 +373,7 @@
|
|
|
373
373
|
<BottomNav links={bottomNavLinks} />
|
|
374
374
|
</div>
|
|
375
375
|
</section>
|
|
376
|
-
|
|
376
|
+
|
|
377
377
|
<!-- ========== PAGE LAYOUT ========== -->
|
|
378
378
|
<section class={sectionClass(isDark)}>
|
|
379
379
|
<h2 class={headingClass(isDark)}>PageLayout</h2>
|
|
@@ -396,4 +396,4 @@
|
|
|
396
396
|
</PageLayout>
|
|
397
397
|
</div>
|
|
398
398
|
</section>
|
|
399
|
-
</div>
|
|
399
|
+
</div>
|
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
<script module>
|
|
2
|
-
import { defineMeta } from '@storybook/addon-svelte-csf';
|
|
3
|
-
import PrimitivesGallery from './PrimitivesGallery.svelte';
|
|
4
|
-
|
|
5
|
-
const { Story } = defineMeta({
|
|
6
|
-
title: 'Visual Galleries/Primitives',
|
|
7
|
-
component: PrimitivesGallery,
|
|
8
|
-
parameters: {
|
|
9
|
-
layout: 'fullscreen',
|
|
10
|
-
docs: {
|
|
11
|
-
description: {
|
|
12
|
-
component: 'Complete visual gallery of all primitive components (Layer 1) with variants and states.',
|
|
13
|
-
},
|
|
14
|
-
},
|
|
15
|
-
},
|
|
16
|
-
});
|
|
17
|
-
</script>
|
|
18
|
-
|
|
19
|
-
<Story name="All Primitives" />
|
|
1
|
+
<script module>
|
|
2
|
+
import { defineMeta } from '@storybook/addon-svelte-csf';
|
|
3
|
+
import PrimitivesGallery from './PrimitivesGallery.svelte';
|
|
4
|
+
|
|
5
|
+
const { Story } = defineMeta({
|
|
6
|
+
title: 'Visual Galleries/Primitives',
|
|
7
|
+
component: PrimitivesGallery,
|
|
8
|
+
parameters: {
|
|
9
|
+
layout: 'fullscreen',
|
|
10
|
+
docs: {
|
|
11
|
+
description: {
|
|
12
|
+
component: 'Complete visual gallery of all primitive components (Layer 1) with variants and states.',
|
|
13
|
+
},
|
|
14
|
+
},
|
|
15
|
+
},
|
|
16
|
+
});
|
|
17
|
+
</script>
|
|
18
|
+
|
|
19
|
+
<Story name="All Primitives" />
|