@getmicdrop/svelte-components 5.10.0 → 5.10.3

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.
Files changed (233) hide show
  1. package/dist/calendar/AboutShow/AboutShow.svelte +172 -172
  2. package/dist/calendar/Calendar/MiniMonthCalendar.svelte +782 -782
  3. package/dist/calendar/FAQs/FAQs.svelte +75 -75
  4. package/dist/calendar/MonthSwitcher/MonthSwitcher.svelte +126 -126
  5. package/dist/calendar/OrderSummary/OrderSummary.svelte +367 -367
  6. package/dist/calendar/PublicCard/PublicCard.svelte +146 -146
  7. package/dist/calendar/ShowCard/ShowCard.svelte +157 -157
  8. package/dist/calendar/ShowTimeCard/ShowTimeCard.svelte +61 -61
  9. package/dist/components/Heading.svelte +60 -60
  10. package/dist/components/Layout/AppShell.svelte +104 -104
  11. package/dist/components/Layout/ContentSection.svelte +80 -80
  12. package/dist/components/Layout/Grid.svelte +4 -4
  13. package/dist/components/Layout/Heading.svelte +81 -81
  14. package/dist/components/Layout/PageContainer.svelte +69 -69
  15. package/dist/components/Layout/Responsive.svelte +75 -75
  16. package/dist/components/Layout/Section.svelte +80 -80
  17. package/dist/components/Layout/ShowOnDesktop.svelte +37 -37
  18. package/dist/components/Layout/ShowOnMobile.svelte +37 -37
  19. package/dist/components/Layout/Sidebar.svelte +108 -108
  20. package/dist/components/Layout/Stack.spec.js +1 -1
  21. package/dist/components/Layout/Stack.svelte +6 -6
  22. package/dist/components/Layout/Text.svelte +87 -87
  23. package/dist/components/Layout/TwoColumn.svelte +108 -108
  24. package/dist/components/Text.svelte +53 -53
  25. package/dist/constants/validation.js +91 -91
  26. package/dist/constants/validation.spec.js +64 -64
  27. package/dist/datetime/__tests__/format.test.js +1 -1
  28. package/dist/datetime/__tests__/parse.test.js +1 -1
  29. package/dist/datetime/__tests__/timezone.test.js +1 -1
  30. package/dist/datetime/parse.js +1 -1
  31. package/dist/forms/createFormStore.svelte.js +1 -0
  32. package/dist/index.js +51 -51
  33. package/dist/patterns/data/DataGrid.svelte +45 -45
  34. package/dist/patterns/data/DataList.svelte +24 -24
  35. package/dist/patterns/data/DataTable.svelte +36 -36
  36. package/dist/patterns/forms/FormActions.spec.js +95 -95
  37. package/dist/patterns/forms/FormActions.stories.svelte +97 -97
  38. package/dist/patterns/forms/FormActions.svelte +46 -46
  39. package/dist/patterns/forms/FormGrid.svelte +33 -33
  40. package/dist/patterns/forms/FormSection.svelte +32 -32
  41. package/dist/patterns/forms/FormValidationSummary.stories.svelte +83 -83
  42. package/dist/patterns/forms/FormValidationSummary.svelte +74 -74
  43. package/dist/patterns/layout/Sidebar.svelte +39 -39
  44. package/dist/patterns/layout/index.js +29 -29
  45. package/dist/patterns/navigation/BottomNav.stories.svelte +117 -117
  46. package/dist/patterns/navigation/BottomNav.svelte +74 -74
  47. package/dist/patterns/navigation/Header.stories.svelte +77 -77
  48. package/dist/patterns/navigation/Header.svelte +255 -255
  49. package/dist/patterns/page/PageHeader.svelte +18 -18
  50. package/dist/patterns/page/PageLayout.svelte +40 -40
  51. package/dist/patterns/page/PageLoader.spec.js +57 -57
  52. package/dist/patterns/page/PageLoader.stories.svelte +137 -137
  53. package/dist/patterns/page/PageLoader.svelte +24 -24
  54. package/dist/patterns/page/SectionHeader.svelte +29 -29
  55. package/dist/presets/badges.js +112 -112
  56. package/dist/presets/buttons.js +76 -76
  57. package/dist/presets/index.js +9 -9
  58. package/dist/primitives/Accordion/Accordion.stories.svelte +75 -75
  59. package/dist/primitives/Accordion/Accordion.svelte +42 -42
  60. package/dist/primitives/Accordion/AccordionItem.svelte +95 -95
  61. package/dist/primitives/Alert/Alert.spec.js +173 -173
  62. package/dist/primitives/Alert/Alert.stories.svelte +88 -88
  63. package/dist/primitives/Alert/Alert.svelte +27 -27
  64. package/dist/primitives/Avatar/Avatar.stories.svelte +94 -94
  65. package/dist/primitives/Avatar/Avatar.svelte +66 -66
  66. package/dist/primitives/Badges/Badge.spec.js +144 -144
  67. package/dist/primitives/Badges/Badge.stories.svelte +86 -86
  68. package/dist/primitives/Badges/Badge.svelte +99 -99
  69. package/dist/primitives/BottomSheet/BottomSheet.spec.js +136 -136
  70. package/dist/primitives/BottomSheet/BottomSheet.stories.svelte +83 -83
  71. package/dist/primitives/BottomSheet/BottomSheet.svelte +100 -100
  72. package/dist/primitives/Breadcrumb/Breadcrumb.spec.js +122 -122
  73. package/dist/primitives/Breadcrumb/Breadcrumb.stories.svelte +23 -23
  74. package/dist/primitives/Breadcrumb/Breadcrumb.svelte +98 -98
  75. package/dist/primitives/Button/Button.spec.js +223 -223
  76. package/dist/primitives/Button/Button.stories.svelte +76 -76
  77. package/dist/primitives/Button/Button.svelte +283 -283
  78. package/dist/primitives/Button/ButtonGroup.svelte +50 -50
  79. package/dist/primitives/Button/ButtonSaveDemo.spec.js +146 -146
  80. package/dist/primitives/Button/ButtonSaveDemo.svelte +25 -25
  81. package/dist/primitives/Button/ButtonVariantShowcase.svelte +129 -129
  82. package/dist/primitives/Card.spec.js +49 -49
  83. package/dist/primitives/Card.stories.svelte +22 -22
  84. package/dist/primitives/Card.svelte +28 -28
  85. package/dist/primitives/Checkbox/Checkbox.stories.svelte +84 -84
  86. package/dist/primitives/Checkbox/Checkbox.svelte +88 -88
  87. package/dist/primitives/DarkModeToggle.spec.js +390 -390
  88. package/dist/primitives/DarkModeToggle.stories.svelte +57 -57
  89. package/dist/primitives/DarkModeToggle.svelte +136 -136
  90. package/dist/primitives/Drawer/Drawer.stories.svelte +80 -80
  91. package/dist/primitives/Drawer/Drawer.svelte +120 -120
  92. package/dist/primitives/Dropdown/Dropdown.stories.svelte +137 -137
  93. package/dist/primitives/Dropdown/Dropdown.svelte +170 -170
  94. package/dist/primitives/Dropdown/DropdownDivider.svelte +9 -9
  95. package/dist/primitives/Dropdown/DropdownItem.svelte +80 -80
  96. package/dist/primitives/Helper/Helper.svelte +33 -33
  97. package/dist/primitives/Icons/ArrowLeft.svelte +8 -8
  98. package/dist/primitives/Icons/ArrowRight.svelte +8 -8
  99. package/dist/primitives/Icons/Availability.svelte +14 -14
  100. package/dist/primitives/Icons/Back.svelte +14 -14
  101. package/dist/primitives/Icons/CheckCircle.svelte +6 -6
  102. package/dist/primitives/Icons/CheckCircleOutline.svelte +15 -15
  103. package/dist/primitives/Icons/ChevronLeft.svelte +4 -4
  104. package/dist/primitives/Icons/ChevronRight.svelte +4 -4
  105. package/dist/primitives/Icons/Copy.svelte +15 -15
  106. package/dist/primitives/Icons/Cross.svelte +5 -5
  107. package/dist/primitives/Icons/DownArrow.svelte +8 -8
  108. package/dist/primitives/Icons/ErrorCircle.svelte +6 -6
  109. package/dist/primitives/Icons/FacebookIcon.svelte +2 -2
  110. package/dist/primitives/Icons/Home.svelte +15 -15
  111. package/dist/primitives/Icons/Icon.spec.js +169 -169
  112. package/dist/primitives/Icons/Icon.stories.svelte +100 -100
  113. package/dist/primitives/Icons/Icon.svelte +52 -52
  114. package/dist/primitives/Icons/IconGallery.stories.svelte +235 -235
  115. package/dist/primitives/Icons/Info.svelte +7 -7
  116. package/dist/primitives/Icons/InstagramIcon.svelte +4 -4
  117. package/dist/primitives/Icons/LogoInstagram.svelte +2 -2
  118. package/dist/primitives/Icons/Message.svelte +15 -15
  119. package/dist/primitives/Icons/MoonIcon.svelte +5 -5
  120. package/dist/primitives/Icons/More.svelte +21 -21
  121. package/dist/primitives/Icons/MoreHori.spec.js +61 -61
  122. package/dist/primitives/Icons/MoreHori.svelte +22 -22
  123. package/dist/primitives/Icons/Notification.svelte +14 -14
  124. package/dist/primitives/Icons/Payment.svelte +14 -14
  125. package/dist/primitives/Icons/Profile.svelte +21 -21
  126. package/dist/primitives/Icons/Reload.svelte +29 -29
  127. package/dist/primitives/Icons/Shows.svelte +21 -21
  128. package/dist/primitives/Icons/Signout.svelte +21 -21
  129. package/dist/primitives/Icons/SunIcon.svelte +8 -8
  130. package/dist/primitives/Icons/TiktokIcon.svelte +2 -2
  131. package/dist/primitives/Icons/TwitterIcon.svelte +2 -2
  132. package/dist/primitives/Icons/WarningIcon.spec.js +18 -18
  133. package/dist/primitives/Icons/WarningIcon.svelte +5 -5
  134. package/dist/primitives/Input/Input.spec.js +573 -573
  135. package/dist/primitives/Input/Input.stories.svelte +139 -139
  136. package/dist/primitives/Input/Input.svelte +423 -423
  137. package/dist/primitives/Input/Select.spec.js +218 -218
  138. package/dist/primitives/Input/Select.stories.svelte +112 -112
  139. package/dist/primitives/Input/Select.svelte +252 -252
  140. package/dist/primitives/Input/Textarea.stories.svelte +137 -137
  141. package/dist/primitives/Input/Textarea.svelte +105 -105
  142. package/dist/primitives/Label/Label.svelte +37 -37
  143. package/dist/primitives/Modal/Modal.spec.js +99 -99
  144. package/dist/primitives/Modal/Modal.stories.svelte +86 -86
  145. package/dist/primitives/Modal/Modal.svelte +157 -157
  146. package/dist/primitives/Pagination/Pagination.stories.svelte +76 -76
  147. package/dist/primitives/Pagination/Pagination.svelte +261 -261
  148. package/dist/primitives/Radio/Radio.stories.svelte +80 -80
  149. package/dist/primitives/Radio/Radio.svelte +67 -67
  150. package/dist/primitives/Skeleton/CardPlaceholder.svelte +87 -87
  151. package/dist/primitives/Skeleton/ImagePlaceholder.svelte +59 -59
  152. package/dist/primitives/Skeleton/ListPlaceholder.svelte +76 -76
  153. package/dist/primitives/Skeleton/Skeleton.stories.svelte +151 -151
  154. package/dist/primitives/Skeleton/Skeleton.svelte +26 -26
  155. package/dist/primitives/Spinner/Spinner.spec.js +71 -71
  156. package/dist/primitives/Spinner/Spinner.stories.svelte +29 -29
  157. package/dist/primitives/Spinner/Spinner.svelte +20 -20
  158. package/dist/primitives/Tabs/TabItem.svelte +49 -49
  159. package/dist/primitives/Tabs/Tabs.stories.svelte +112 -112
  160. package/dist/primitives/Tabs/Tabs.svelte +137 -137
  161. package/dist/primitives/Toggle.spec.js +146 -146
  162. package/dist/primitives/Toggle.stories.svelte +92 -92
  163. package/dist/primitives/Toggle.svelte +131 -132
  164. package/dist/primitives/Tooltip/Tooltip.svelte +83 -83
  165. package/dist/primitives/Typography/Typography.svelte +53 -53
  166. package/dist/primitives/ValidationError.spec.js +103 -103
  167. package/dist/primitives/ValidationError.stories.svelte +69 -69
  168. package/dist/primitives/ValidationError.svelte +29 -29
  169. package/dist/primitives/index.js +92 -92
  170. package/dist/recipes/CropImage/CropImage.spec.js +208 -208
  171. package/dist/recipes/CropImage/CropImage.stories.svelte +104 -104
  172. package/dist/recipes/CropImage/CropImage.svelte +219 -219
  173. package/dist/recipes/ImageUploader/ImageUploader.stories.svelte +125 -125
  174. package/dist/recipes/ImageUploader/ImageUploader.svelte +970 -970
  175. package/dist/recipes/Toaster/Toaster.stories.svelte +62 -62
  176. package/dist/recipes/feedback/EmptyState/EmptyState.svelte +1 -1
  177. package/dist/recipes/feedback/ErrorDisplay.spec.js +69 -69
  178. package/dist/recipes/feedback/ErrorDisplay.stories.svelte +101 -101
  179. package/dist/recipes/feedback/ErrorDisplay.svelte +1 -1
  180. package/dist/recipes/feedback/StatusIndicator/StatusIndicator.spec.js +133 -133
  181. package/dist/recipes/feedback/StatusIndicator/StatusIndicator.svelte +157 -157
  182. package/dist/recipes/fields/CheckboxField.svelte +85 -85
  183. package/dist/recipes/fields/FormField.svelte +58 -58
  184. package/dist/recipes/fields/RadioGroup.svelte +95 -95
  185. package/dist/recipes/fields/SelectField.svelte +80 -80
  186. package/dist/recipes/fields/TextareaField.svelte +97 -97
  187. package/dist/recipes/fields/ToggleField.svelte +60 -60
  188. package/dist/recipes/fields/index.js +7 -7
  189. package/dist/recipes/inputs/MultiSelect.spec.js +260 -260
  190. package/dist/recipes/inputs/MultiSelect.stories.svelte +133 -133
  191. package/dist/recipes/inputs/MultiSelect.svelte +283 -283
  192. package/dist/recipes/inputs/OTPInput.spec.js +251 -251
  193. package/dist/recipes/inputs/OTPInput.stories.svelte +162 -162
  194. package/dist/recipes/inputs/OTPInput.svelte +117 -117
  195. package/dist/recipes/inputs/PasswordInput.svelte +22 -22
  196. package/dist/recipes/inputs/PasswordStrengthIndicator/PasswordStrengthIndicator.svelte +131 -117
  197. package/dist/recipes/inputs/PasswordStrengthIndicator/PasswordStrengthIndicator.svelte.d.ts.map +1 -1
  198. package/dist/recipes/inputs/PlaceAutocomplete/PlaceAutocomplete.stories.svelte +123 -123
  199. package/dist/recipes/inputs/PlaceAutocomplete/PlaceAutocomplete.svelte +344 -344
  200. package/dist/recipes/inputs/Search.svelte +102 -102
  201. package/dist/recipes/inputs/SelectDropdown.svelte +171 -171
  202. package/dist/recipes/modals/AlertModal.svelte +130 -130
  203. package/dist/recipes/modals/ConfirmationModal.spec.js +206 -206
  204. package/dist/recipes/modals/ConfirmationModal.stories.svelte +119 -119
  205. package/dist/recipes/modals/ConfirmationModal.svelte +152 -152
  206. package/dist/recipes/modals/InputModal.svelte +182 -182
  207. package/dist/recipes/modals/ModalStateManager.spec.js +100 -100
  208. package/dist/recipes/modals/ModalStateManager.svelte +77 -77
  209. package/dist/recipes/modals/ModalTestWrapper.svelte +65 -65
  210. package/dist/recipes/modals/StatusModal.svelte +206 -206
  211. package/dist/services/EventService.js +75 -75
  212. package/dist/services/EventService.spec.js +217 -217
  213. package/dist/services/ShowService.spec.js +345 -345
  214. package/dist/stores/toaster.js +13 -13
  215. package/dist/stories/ButtonAuditReview.stories.svelte +14 -14
  216. package/dist/stories/ButtonAuditReview.svelte +427 -427
  217. package/dist/stories/PatternsGallery.stories.svelte +19 -19
  218. package/dist/stories/PatternsGallery.svelte +206 -206
  219. package/dist/stories/PrimitivesGallery.stories.svelte +19 -19
  220. package/dist/stories/PrimitivesGallery.svelte +752 -752
  221. package/dist/stories/RecipesGallery.stories.svelte +19 -19
  222. package/dist/stories/RecipesGallery.svelte +471 -471
  223. package/dist/stories/button-audit-manifest.json +11186 -11186
  224. package/dist/tailwind/preset.cjs +82 -82
  225. package/dist/telemetry.js +405 -405
  226. package/dist/telemetry.spec.js +1169 -1169
  227. package/dist/tokens/tokens.css +87 -87
  228. package/dist/tokens/typography-base.css +163 -163
  229. package/dist/tokens/utilities.css +353 -353
  230. package/dist/utils/apiConfig.spec.js +219 -219
  231. package/dist/utils/transitions.js +4 -4
  232. package/dist/utils/utils.js +693 -693
  233. package/package.json +297 -297
@@ -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" />