@shohojdhara/atomix 0.3.14 → 0.3.15

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 (173) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/build-tools/EXAMPLES.md +372 -0
  3. package/build-tools/README.md +242 -0
  4. package/build-tools/__tests__/error-handler.test.js +230 -0
  5. package/build-tools/__tests__/index.test.js +141 -0
  6. package/build-tools/__tests__/rollup-plugin.test.js +194 -0
  7. package/build-tools/__tests__/utils.test.js +161 -0
  8. package/build-tools/__tests__/vite-plugin.test.js +129 -0
  9. package/build-tools/__tests__/webpack-loader.test.js +190 -0
  10. package/build-tools/error-handler.js +308 -0
  11. package/build-tools/index.d.ts +43 -0
  12. package/build-tools/index.js +88 -0
  13. package/build-tools/package.json +67 -0
  14. package/build-tools/rollup-plugin.js +236 -0
  15. package/build-tools/types.d.ts +163 -0
  16. package/build-tools/utils.js +203 -0
  17. package/build-tools/vite-plugin.js +161 -0
  18. package/build-tools/webpack-loader.js +123 -0
  19. package/dist/atomix.css +203 -90
  20. package/dist/atomix.css.map +1 -1
  21. package/dist/atomix.min.css +3 -3
  22. package/dist/atomix.min.css.map +1 -1
  23. package/dist/build-tools/EXAMPLES.md +372 -0
  24. package/dist/build-tools/README.md +242 -0
  25. package/dist/build-tools/__tests__/error-handler.test.js +230 -0
  26. package/dist/build-tools/__tests__/index.test.js +141 -0
  27. package/dist/build-tools/__tests__/rollup-plugin.test.js +194 -0
  28. package/dist/build-tools/__tests__/utils.test.js +161 -0
  29. package/dist/build-tools/__tests__/vite-plugin.test.js +129 -0
  30. package/dist/build-tools/__tests__/webpack-loader.test.js +190 -0
  31. package/dist/build-tools/error-handler.js +308 -0
  32. package/dist/build-tools/index.d.ts +43 -0
  33. package/dist/build-tools/index.js +88 -0
  34. package/dist/build-tools/package.json +67 -0
  35. package/dist/build-tools/rollup-plugin.js +236 -0
  36. package/dist/build-tools/types.d.ts +163 -0
  37. package/dist/build-tools/utils.js +203 -0
  38. package/dist/build-tools/vite-plugin.js +161 -0
  39. package/dist/build-tools/webpack-loader.js +123 -0
  40. package/dist/charts.d.ts +1 -1
  41. package/dist/charts.js +86 -57
  42. package/dist/charts.js.map +1 -1
  43. package/dist/core.d.ts +1 -1
  44. package/dist/core.js +136 -112
  45. package/dist/core.js.map +1 -1
  46. package/dist/forms.d.ts +2 -5
  47. package/dist/forms.js +140 -128
  48. package/dist/forms.js.map +1 -1
  49. package/dist/heavy.d.ts +1 -1
  50. package/dist/heavy.js +136 -112
  51. package/dist/heavy.js.map +1 -1
  52. package/dist/index.d.ts +9 -61
  53. package/dist/index.esm.js +237 -286
  54. package/dist/index.esm.js.map +1 -1
  55. package/dist/index.js +250 -299
  56. package/dist/index.js.map +1 -1
  57. package/dist/index.min.js +1 -1
  58. package/dist/index.min.js.map +1 -1
  59. package/package.json +23 -8
  60. package/scripts/atomix-cli.js +170 -73
  61. package/scripts/cli/__tests__/README.md +81 -0
  62. package/scripts/cli/__tests__/basic.test.js +115 -0
  63. package/scripts/cli/__tests__/component-generator.test.js +332 -0
  64. package/scripts/cli/__tests__/integration.test.js +327 -0
  65. package/scripts/cli/__tests__/test-setup.js +133 -0
  66. package/scripts/cli/__tests__/token-manager.test.js +251 -0
  67. package/scripts/cli/__tests__/utils.test.js +161 -0
  68. package/scripts/cli/component-generator.js +253 -299
  69. package/scripts/cli/dependency-checker.js +355 -0
  70. package/scripts/cli/interactive-init.js +46 -5
  71. package/scripts/cli/template-manager.js +0 -2
  72. package/scripts/cli/templates/common-templates.js +636 -0
  73. package/scripts/cli/templates/composable-templates.js +148 -126
  74. package/scripts/cli/templates/index.js +23 -16
  75. package/scripts/cli/templates/project-templates.js +151 -23
  76. package/scripts/cli/templates/react-templates.js +280 -210
  77. package/scripts/cli/templates/scss-templates.js +90 -91
  78. package/scripts/cli/templates/testing-templates.js +206 -27
  79. package/scripts/cli/templates/testing-utils.js +278 -0
  80. package/scripts/cli/templates/types-templates.js +70 -56
  81. package/scripts/cli/theme-bridge.js +8 -2
  82. package/scripts/cli/token-manager.js +318 -206
  83. package/scripts/cli/utils.js +0 -1
  84. package/src/components/Accordion/Accordion.stories.tsx +369 -870
  85. package/src/components/AtomixGlass/AtomixGlass.tsx +80 -39
  86. package/src/components/AtomixGlass/AtomixGlassContainer.tsx +103 -81
  87. package/src/components/AtomixGlass/__snapshots__/AtomixGlass.test.tsx.snap +8 -7
  88. package/src/components/AtomixGlass/glass-utils.ts +2 -2
  89. package/src/components/AtomixGlass/shader-utils.ts +5 -0
  90. package/src/components/AtomixGlass/stories/Customization.stories.tsx +131 -0
  91. package/src/components/AtomixGlass/stories/Examples.stories.tsx +2957 -2853
  92. package/src/components/AtomixGlass/stories/Modes.stories.tsx +1 -1
  93. package/src/components/AtomixGlass/stories/Overview.stories.tsx +348 -0
  94. package/src/components/AtomixGlass/stories/Performance.stories.tsx +103 -0
  95. package/src/components/AtomixGlass/stories/Playground.stories.tsx +50 -35
  96. package/src/components/AtomixGlass/stories/{ShaderVariants.stories.tsx → Shaders.stories.tsx} +1 -1
  97. package/src/components/AtomixGlass/stories/shared-components.tsx +90 -190
  98. package/src/components/Avatar/Avatar.stories.tsx +213 -1
  99. package/src/components/Badge/Badge.stories.tsx +121 -362
  100. package/src/components/Block/Block.stories.tsx +21 -12
  101. package/src/components/Breadcrumb/Breadcrumb.stories.tsx +141 -23
  102. package/src/components/Button/Button.stories.tsx +463 -1126
  103. package/src/components/Button/Button.test.tsx +107 -0
  104. package/src/components/Button/Button.tsx +46 -50
  105. package/src/components/Button/ButtonGroup.stories.tsx +373 -217
  106. package/src/components/Callout/Callout.stories.tsx +289 -634
  107. package/src/components/Card/Card.stories.tsx +248 -68
  108. package/src/components/Chart/Chart.stories.tsx +150 -8
  109. package/src/components/ColorModeToggle/ColorModeToggle.stories.tsx +151 -69
  110. package/src/components/Countdown/Countdown.stories.tsx +115 -8
  111. package/src/components/DataTable/DataTable.stories.tsx +346 -146
  112. package/src/components/DatePicker/DatePicker.stories.tsx +325 -1066
  113. package/src/components/Dropdown/Dropdown.stories.tsx +153 -33
  114. package/src/components/EdgePanel/EdgePanel.stories.tsx +230 -21
  115. package/src/components/Footer/Footer.stories.tsx +392 -328
  116. package/src/components/Form/Checkbox.stories.tsx +140 -6
  117. package/src/components/Form/Checkbox.test.tsx +63 -0
  118. package/src/components/Form/Checkbox.tsx +87 -51
  119. package/src/components/Form/Form.stories.tsx +119 -20
  120. package/src/components/Form/FormGroup.stories.tsx +127 -4
  121. package/src/components/Form/Radio.stories.tsx +140 -5
  122. package/src/components/Form/Select.stories.tsx +140 -8
  123. package/src/components/Form/Textarea.stories.tsx +149 -6
  124. package/src/components/Hero/Hero.stories.tsx +333 -32
  125. package/src/components/List/List.stories.tsx +141 -3
  126. package/src/components/Modal/Modal.stories.tsx +181 -42
  127. package/src/components/Popover/Popover.stories.tsx +448 -98
  128. package/src/components/Progress/Progress.stories.tsx +167 -5
  129. package/src/components/River/River.stories.tsx +1 -1
  130. package/src/components/SectionIntro/SectionIntro.stories.tsx +240 -48
  131. package/src/components/Spinner/Spinner.stories.tsx +102 -8
  132. package/src/components/Steps/Steps.stories.tsx +172 -43
  133. package/src/components/Tabs/Tabs.stories.tsx +136 -10
  134. package/src/components/Testimonial/Testimonial.stories.tsx +120 -3
  135. package/src/components/Todo/Todo.stories.tsx +198 -9
  136. package/src/components/Toggle/Toggle.stories.tsx +126 -39
  137. package/src/components/Tooltip/Tooltip.stories.tsx +194 -104
  138. package/src/components/Upload/Upload.stories.tsx +113 -24
  139. package/src/lib/README.md +2 -2
  140. package/src/lib/__tests__/theme-tools.test.ts +193 -0
  141. package/src/lib/composables/index.ts +2 -2
  142. package/src/lib/composables/useAtomixGlass.ts +28 -56
  143. package/src/lib/composables/useChartExport.ts +2 -7
  144. package/src/lib/composables/useDataTable.ts +46 -29
  145. package/src/lib/constants/components.ts +9 -32
  146. package/src/lib/theme/devtools/CLI.ts +1 -1
  147. package/src/lib/types/components.ts +1 -1
  148. package/src/lib/utils/__tests__/csv.test.ts +45 -0
  149. package/src/lib/utils/csv.ts +17 -0
  150. package/src/lib/utils/dataTableExport.ts +1 -10
  151. package/src/styles/01-settings/_index.scss +2 -1
  152. package/src/styles/01-settings/_settings.accordion.scss +28 -7
  153. package/src/styles/01-settings/_settings.colors.scss +11 -11
  154. package/src/styles/01-settings/_settings.typography.scss +5 -5
  155. package/src/styles/02-tools/_tools.utility-api.scss +14 -0
  156. package/src/styles/06-components/_components.accordion.scss +56 -14
  157. package/src/styles/06-components/_components.checkbox.scss +23 -17
  158. package/src/styles/99-utilities/_index.scss +2 -0
  159. package/src/styles/99-utilities/_utilities.scss +3 -1
  160. package/src/styles/99-utilities/_utilities.text-gradient.scss +45 -0
  161. package/themes/dark-complementary/README.md +98 -0
  162. package/themes/dark-complementary/index.scss +158 -0
  163. package/themes/default-light/README.md +81 -0
  164. package/themes/default-light/index.scss +154 -0
  165. package/themes/high-contrast/README.md +105 -0
  166. package/themes/high-contrast/index.scss +172 -0
  167. package/themes/test-theme/README.md +38 -0
  168. package/themes/test-theme/index.scss +47 -0
  169. package/scripts/cli/templates-original-backup.js +0 -1655
  170. package/scripts/cli/templates_backup.js +0 -684
  171. package/src/components/AtomixGlass/stories/AtomixGlass.stories.tsx +0 -1438
  172. package/src/lib/composables/useButton.ts +0 -93
  173. package/src/lib/composables/useCheckbox.ts +0 -70
@@ -1,4 +1,5 @@
1
1
  import type { Meta, StoryObj } from '@storybook/react';
2
+ import { fn } from '@storybook/test';
2
3
  import { HERO } from '../../lib/constants/components';
3
4
  import { Button } from '../Button/Button';
4
5
  import { Hero } from './Hero';
@@ -22,6 +23,33 @@ const RIGHT_CLASS = HERO.CLASSES.RIGHT;
22
23
  const LEFT_CLASS = HERO.CLASSES.LEFT;
23
24
  const FULL_VH_CLASS = HERO.CLASSES.FULL_VH;
24
25
 
26
+ // Define missing variables
27
+ const demoText = 'Our design system helps you build beautiful, consistent, and accessible user interfaces faster than ever before. With a carefully crafted collection of components and guidelines, you can easily create stunning UIs that stand out.';
28
+
29
+ const showcaseText = 'This is an example of showcase text demonstrating the capabilities of the Atomix design system. Create beautiful interfaces with ease and consistency.';
30
+
31
+ const primaryActionButtons = (
32
+ <>
33
+ <Button variant="primary" size="lg" className="u-mr-3" onClick={fn()}>
34
+ Get Started
35
+ </Button>
36
+ <Button variant="secondary" size="lg" onClick={fn()}>
37
+ Learn More
38
+ </Button>
39
+ </>
40
+ );
41
+
42
+ const showcaseActionButtons = (
43
+ <>
44
+ <Button variant="primary" size="lg" className="u-mr-3" onClick={fn()}>
45
+ View Demo
46
+ </Button>
47
+ <Button variant="outline" size="lg" onClick={fn()}>
48
+ Contact Us
49
+ </Button>
50
+ </>
51
+ );
52
+
25
53
  const meta = {
26
54
  title: 'Components/Hero',
27
55
  component: Hero,
@@ -29,8 +57,78 @@ const meta = {
29
57
  layout: 'padded',
30
58
  docs: {
31
59
  description: {
32
- component:
33
- 'The Hero component creates prominent banner sections typically used at the top of pages. It provides a flexible layout for titles, subtitles, text content, call-to-action buttons, and images. Heroes are ideal for landing pages, marketing sections, or any area requiring prominent visual presentation.',
60
+ component: `
61
+ # Hero
62
+
63
+ ## Overview
64
+
65
+ Hero creates prominent banner sections typically used at the top of pages. It provides a flexible layout for titles, subtitles, text content, call-to-action buttons, and images. Heroes are ideal for landing pages, marketing sections, or any area requiring prominent visual presentation.
66
+
67
+ ## Features
68
+
69
+ - Flexible content layout
70
+ - Customizable alignment (left, center, right)
71
+ - Background image support
72
+ - Overlay options
73
+ - Full viewport height option
74
+ - Parallax effect
75
+ - Video background support
76
+ - Responsive design
77
+ - Customizable column sizing
78
+ - Content width control
79
+
80
+ ## Accessibility
81
+
82
+ - Screen reader: Title and content announced properly
83
+ - ARIA support: Proper roles and properties for hero components
84
+ - Keyboard support: Accessible via keyboard navigation
85
+ - Focus management: Maintains focus on interactive elements
86
+
87
+ ## Usage Examples
88
+
89
+ ### Basic Usage
90
+
91
+ \`\`\`tsx
92
+ <Hero
93
+ title="Hero Title"
94
+ subtitle="Hero Subtitle"
95
+ text="Hero text content"
96
+ />
97
+ \`\`\`
98
+
99
+ ### With Image
100
+
101
+ \`\`\`tsx
102
+ <Hero
103
+ title="Hero Title"
104
+ text="Hero text content"
105
+ imageSrc="/path/to/image.jpg"
106
+ imageAlt="Description of image"
107
+ />
108
+ \`\`\`
109
+
110
+ ## API Reference
111
+
112
+ ### Props
113
+
114
+ | Prop | Type | Default | Description |
115
+ | ---- | ---- | ------- | ----------- |
116
+ | title | string | - | Hero title |
117
+ | subtitle | string | - | Hero subtitle |
118
+ | text | string | - | Hero text content |
119
+ | imageSrc | string | - | Image source URL |
120
+ | imageAlt | string | - | Image alt text |
121
+ | alignment | 'left' \\| 'center' \\| 'right' | 'left' | Content alignment |
122
+ | backgroundImageSrc | string | - | Background image source URL |
123
+ | showOverlay | boolean | false | Show background overlay |
124
+ | fullViewportHeight | boolean | false | Make hero full viewport height |
125
+ | imageColSize | number | 6 | Image column size (1-12) |
126
+ | contentColSize | number | 6 | Content column size (1-12) |
127
+ | contentWidth | string | '536px' | Custom width for the hero content |
128
+ | parallax | boolean | false | Enable parallax effect on background image |
129
+ | parallaxIntensity | number | 0.5 | Parallax effect intensity (0-1) |
130
+ | videoBackground | string | - | Video background URL |
131
+ `,
34
132
  },
35
133
  },
36
134
  },
@@ -39,77 +137,122 @@ const meta = {
39
137
  title: {
40
138
  control: 'text',
41
139
  description: 'Hero title',
140
+ table: {
141
+ type: { summary: 'string' },
142
+ defaultValue: { summary: '-' },
143
+ },
42
144
  },
43
145
  subtitle: {
44
146
  control: 'text',
45
147
  description: 'Hero subtitle',
148
+ table: {
149
+ type: { summary: 'string' },
150
+ defaultValue: { summary: '-' },
151
+ },
46
152
  },
47
153
  text: {
48
154
  control: 'text',
49
155
  description: 'Hero text content',
156
+ table: {
157
+ type: { summary: 'string' },
158
+ defaultValue: { summary: '-' },
159
+ },
50
160
  },
51
161
  imageSrc: {
52
162
  control: 'text',
53
163
  description: 'Image source URL',
164
+ table: {
165
+ type: { summary: 'string' },
166
+ defaultValue: { summary: '-' },
167
+ },
54
168
  },
55
169
  imageAlt: {
56
170
  control: 'text',
57
171
  description: 'Image alt text',
172
+ table: {
173
+ type: { summary: 'string' },
174
+ defaultValue: { summary: '-' },
175
+ },
58
176
  },
59
177
  alignment: {
60
178
  control: { type: 'select', options: ['left', 'center', 'right'] },
61
179
  description: 'Content alignment',
180
+ table: {
181
+ type: { summary: '"left" | "center" | "right"' },
182
+ defaultValue: { summary: 'left' },
183
+ },
62
184
  },
63
185
  backgroundImageSrc: {
64
186
  control: 'text',
65
187
  description: 'Background image source URL',
188
+ table: {
189
+ type: { summary: 'string' },
190
+ defaultValue: { summary: '-' },
191
+ },
66
192
  },
67
193
  showOverlay: {
68
194
  control: 'boolean',
69
195
  description: 'Show background overlay',
196
+ table: {
197
+ type: { summary: 'boolean' },
198
+ defaultValue: { summary: false },
199
+ },
70
200
  },
71
201
  fullViewportHeight: {
72
202
  control: 'boolean',
73
203
  description: 'Make hero full viewport height',
204
+ table: {
205
+ type: { summary: 'boolean' },
206
+ defaultValue: { summary: false },
207
+ },
74
208
  },
75
209
  imageColSize: {
76
210
  control: { type: 'range', min: 1, max: 12, step: 1 },
77
211
  description: 'Image column size (1-12)',
212
+ table: {
213
+ type: { summary: 'number' },
214
+ defaultValue: { summary: 6 },
215
+ },
78
216
  },
79
217
  contentColSize: {
80
218
  control: { type: 'range', min: 1, max: 12, step: 1 },
81
219
  description: 'Content column size (1-12)',
220
+ table: {
221
+ type: { summary: 'number' },
222
+ defaultValue: { summary: 6 },
223
+ },
82
224
  },
83
225
  contentWidth: {
84
226
  control: 'text',
85
227
  description: 'Custom width for the hero content (e.g., "800px", "50%")',
86
228
  table: {
229
+ type: { summary: 'string' },
87
230
  defaultValue: { summary: '536px' },
88
231
  },
89
232
  },
90
233
  parallax: {
91
234
  control: 'boolean',
92
235
  description: 'Enable parallax effect on background image',
236
+ table: {
237
+ type: { summary: 'boolean' },
238
+ defaultValue: { summary: false },
239
+ },
93
240
  },
94
241
  parallaxIntensity: {
95
242
  control: { type: 'range', min: 0, max: 1, step: 0.1 },
96
243
  description: 'Parallax effect intensity (0-1)',
244
+ table: {
245
+ type: { summary: 'number' },
246
+ defaultValue: { summary: 0.5 },
247
+ },
97
248
  },
98
249
  videoBackground: {
99
250
  control: 'text',
100
251
  description: 'Video background URL',
101
- },
102
- glass: {
103
- control: 'object',
104
- description: 'Glass effect properties or boolean to enable/disable',
105
- },
106
- videoOptions: {
107
- control: 'object',
108
- description: 'Video background options',
109
- },
110
- backgroundSlider: {
111
- control: 'object',
112
- description: 'Background slider configuration with multiple images/videos',
252
+ table: {
253
+ type: { summary: 'string' },
254
+ defaultValue: { summary: '-' },
255
+ },
113
256
  },
114
257
  },
115
258
  } satisfies Meta<typeof Hero>;
@@ -117,26 +260,84 @@ const meta = {
117
260
  export default meta;
118
261
  type Story = StoryObj<typeof meta>;
119
262
 
120
- // Helper for button actions
121
- const primaryActionButtons = (
122
- <>
123
- <Button label="Get Started" variant="primary" />
124
- <Button label="Learn More" variant="outline-secondary" />
125
- </>
126
- );
263
+ export const BasicUsage: Story = {
264
+ args: {
265
+ title: 'Discover Amazing Things',
266
+ subtitle: 'With Atomix Design System',
267
+ text: 'Our design system helps you build beautiful, consistent, and accessible user interfaces faster than ever before.',
268
+ alignment: 'center',
269
+ fullViewportHeight: true,
270
+ },
271
+ parameters: {
272
+ docs: {
273
+ description: {
274
+ story: 'Basic hero section with centered content and full viewport height.',
275
+ },
276
+ },
277
+ },
278
+ };
127
279
 
128
- const showcaseActionButtons = (
129
- <>
130
- <Button label="Explore Components" variant="primary" />
131
- <Button label="View Documentation" variant="outline-secondary" />
132
- </>
133
- );
280
+ export const WithImage: Story = {
281
+ args: {
282
+ title: 'Beautiful Interfaces',
283
+ subtitle: 'Crafted with Atomix',
284
+ text: 'Create stunning user experiences with our carefully designed components and guidelines.',
285
+ imageSrc: 'https://images.unsplash.com/photo-1517245386807-bb43f82c33c4?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1170&q=80',
286
+ imageAlt: 'Laptop with design interface',
287
+ alignment: 'left',
288
+ fullViewportHeight: false,
289
+ },
290
+ parameters: {
291
+ docs: {
292
+ description: {
293
+ story: 'Hero section with accompanying image on the side.',
294
+ },
295
+ },
296
+ },
297
+ };
134
298
 
135
- const demoText =
136
- 'Build modern, responsive interfaces with a clean, consistent design language. Our component library helps you create beautiful user experiences with minimal effort.';
299
+ export const WithBackgroundImage: Story = {
300
+ args: {
301
+ title: 'Adventure Awaits',
302
+ subtitle: 'Begin Your Journey',
303
+ text: 'Explore new possibilities and create amazing products with our design system.',
304
+ backgroundImageSrc: 'https://images.unsplash.com/photo-1506744038136-46273834b3fb?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1170&q=80',
305
+ showOverlay: true,
306
+ alignment: 'center',
307
+ fullViewportHeight: true,
308
+ },
309
+ parameters: {
310
+ docs: {
311
+ description: {
312
+ story: 'Hero section with background image and overlay.',
313
+ },
314
+ },
315
+ },
316
+ };
137
317
 
138
- const showcaseText =
139
- 'Atomix provides a complete design system with powerful, flexible components that follow best practices for accessibility, performance, and user experience.';
318
+ export const WithActions: Story = {
319
+ render: (args) => (
320
+ <Hero {...args}>
321
+ <div className={ACTIONS_CLASS}>
322
+ <Button variant="primary" size="lg" className="u-mr-3">Get Started</Button>
323
+ <Button variant="secondary" size="lg">Learn More</Button>
324
+ </div>
325
+ </Hero>
326
+ ),
327
+ args: {
328
+ title: 'Ready to Get Started?',
329
+ text: 'Join thousands of satisfied users who have transformed their design workflow.',
330
+ alignment: 'center',
331
+ fullViewportHeight: true,
332
+ },
333
+ parameters: {
334
+ docs: {
335
+ description: {
336
+ story: 'Hero section with call-to-action buttons.',
337
+ },
338
+ },
339
+ },
340
+ };
140
341
 
141
342
  /**
142
343
  * Default Hero component with right-aligned content and image
@@ -229,7 +430,7 @@ export const CenterAligned: Story = {
229
430
  /**
230
431
  * Hero with background image
231
432
  */
232
- export const WithBackgroundImage: Story = {
433
+ export const UniqueWithBackgroundImage: Story = {
233
434
  args: {
234
435
  ...Default.args,
235
436
  title: 'Powerful Design System',
@@ -649,3 +850,103 @@ export const FullHeightSlider: Story = {
649
850
  },
650
851
  },
651
852
  };
853
+
854
+ // Enhanced preview examples showcasing the most impressive capabilities
855
+ /**
856
+ * Premium showcase combining multiple advanced features
857
+ */
858
+ export const PremiumShowcase: Story = {
859
+ args: {
860
+ title: 'Premium Hero Experience',
861
+ subtitle: 'Advanced Capabilities Combined',
862
+ text: 'This hero combines multiple advanced features: glass effect, background slider with videos, full viewport height, and interactive elements for a premium user experience.',
863
+ alignment: 'center',
864
+ showOverlay: true,
865
+ fullViewportHeight: true,
866
+ glass: {
867
+ displacementScale: 50,
868
+ blurAmount: 2,
869
+ saturation: 150,
870
+ aberrationIntensity: 0.5,
871
+ cornerRadius: 20,
872
+ overLight: true,
873
+ mode: 'advanced',
874
+ },
875
+ actions: (
876
+ <>
877
+ <Button variant="primary" size="lg" className="u-mr-3" onClick={fn()}>
878
+ Explore Features
879
+ </Button>
880
+ <Button variant="secondary" size="lg" onClick={fn()}>
881
+ Get Started Now
882
+ </Button>
883
+ </>
884
+ ),
885
+ contentWidth: '900px',
886
+ backgroundSlider: {
887
+ slides: [
888
+ {
889
+ type: 'video',
890
+ src: 'https://cdn.pixabay.com/video/2023/08/17/173860-844114591_large.mp4',
891
+ videoOptions: {
892
+ autoplay: true,
893
+ loop: true,
894
+ muted: true,
895
+ posterUrl: 'https://picsum.photos/id/1015/1920/1080',
896
+ },
897
+ },
898
+ {
899
+ type: 'image',
900
+ src: 'https://picsum.photos/id/1018/1920/1080',
901
+ alt: 'Stunning landscape',
902
+ },
903
+ {
904
+ type: 'video',
905
+ src: 'https://cdn.pixabay.com/video/2023/11/18/189639-886016299_large.mp4',
906
+ videoOptions: {
907
+ autoplay: true,
908
+ loop: true,
909
+ muted: true,
910
+ posterUrl: 'https://picsum.photos/id/1025/1920/1080',
911
+ },
912
+ },
913
+ ],
914
+ autoplay: {
915
+ delay: 6000,
916
+ pauseOnHover: true,
917
+ },
918
+ loop: true,
919
+ transition: 'slide',
920
+ transitionDuration: 2000,
921
+ },
922
+ },
923
+ parameters: {
924
+ docs: {
925
+ description: {
926
+ story: 'Premium showcase combining multiple advanced features: glass effect, background slider with videos, full viewport height, and interactive elements.',
927
+ },
928
+ },
929
+ },
930
+ };
931
+
932
+ /**
933
+ * Minimalist design focusing on typography and content
934
+ */
935
+ export const MinimalistDesign: Story = {
936
+ args: {
937
+ title: 'Focus on What Matters',
938
+ subtitle: 'Clean & Minimal Approach',
939
+ text: 'Sometimes simplicity speaks louder than complexity. This minimalist hero focuses purely on your content with subtle animations and refined typography.',
940
+ alignment: 'center',
941
+ fullViewportHeight: true,
942
+ showOverlay: false,
943
+ contentWidth: '700px',
944
+ },
945
+ parameters: {
946
+ docs: {
947
+ description: {
948
+ story: 'Minimalist design focusing on typography and content, with subtle animations and refined aesthetics.',
949
+ },
950
+ },
951
+ },
952
+ };
@@ -1,4 +1,5 @@
1
1
  import type { Meta, StoryObj } from '@storybook/react';
2
+ import { fn } from '@storybook/test';
2
3
  import React from 'react';
3
4
  import { List } from './List';
4
5
  import { ListGroup } from './ListGroup';
@@ -10,8 +11,61 @@ const meta = {
10
11
  layout: 'centered',
11
12
  docs: {
12
13
  description: {
13
- component:
14
- 'The List component provides a flexible way to display ordered or unordered lists of items. It supports multiple style variants including default, dashed, numbered, and text styles. Lists can be used for navigation, content organization, or any scenario requiring structured item display.',
14
+ component: `
15
+ # List
16
+
17
+ ## Overview
18
+
19
+ List provides a flexible way to display ordered or unordered lists of items. It supports multiple style variants including default, dashed, numbered, and text styles. Lists can be used for navigation, content organization, or any scenario requiring structured item display.
20
+
21
+ ## Features
22
+
23
+ - Multiple style variants (default, dash, number, text)
24
+ - Grouped lists with ListGroup component
25
+ - Compact and divided options
26
+ - Accessible design
27
+ - Responsive behavior
28
+ - Customizable styling
29
+
30
+ ## Accessibility
31
+
32
+ - Screen reader: List structure and items announced properly
33
+ - ARIA support: Proper roles and properties for list components
34
+ - Keyboard support: Accessible via keyboard navigation
35
+ - Focus management: Maintains focus within list items
36
+
37
+ ## Usage Examples
38
+
39
+ ### Basic Usage
40
+
41
+ \`\`\`tsx
42
+ <List>
43
+ <li>Item 1</li>
44
+ <li>Item 2</li>
45
+ <li>Item 3</li>
46
+ </List>
47
+ \`\`\`
48
+
49
+ ### With Variant
50
+
51
+ \`\`\`tsx
52
+ <List variant="number">
53
+ <li>Item 1</li>
54
+ <li>Item 2</li>
55
+ <li>Item 3</li>
56
+ </List>
57
+ \`\`\`
58
+
59
+ ## API Reference
60
+
61
+ ### Props
62
+
63
+ | Prop | Type | Default | Description |
64
+ | ---- | ---- | ------- | ----------- |
65
+ | variant | 'default' \\| 'dash' \\| 'number' \\| 'text' | 'default' | List style variant |
66
+ | children | ReactNode | - | List items content |
67
+ | className | string | - | Additional CSS class names |
68
+ `,
15
69
  },
16
70
  },
17
71
  },
@@ -21,14 +75,26 @@ const meta = {
21
75
  control: { type: 'select' },
22
76
  options: ['default', 'dash', 'number', 'text'],
23
77
  description: 'List style variant',
78
+ table: {
79
+ type: { summary: '"default" | "dash" | "number" | "text"' },
80
+ defaultValue: { summary: 'default' },
81
+ },
24
82
  },
25
83
  children: {
26
- control: { type: 'text' },
84
+ control: { type: 'object' },
27
85
  description: 'List items content',
86
+ table: {
87
+ type: { summary: 'ReactNode' },
88
+ defaultValue: { summary: '-' },
89
+ },
28
90
  },
29
91
  className: {
30
92
  control: 'text',
31
93
  description: 'Additional CSS class names',
94
+ table: {
95
+ type: { summary: 'string' },
96
+ defaultValue: { summary: '-' },
97
+ },
32
98
  },
33
99
  },
34
100
  } satisfies Meta<typeof List>;
@@ -60,6 +126,78 @@ const createListSection = (title: string, variant: string, key?: string) => (
60
126
  </div>
61
127
  );
62
128
 
129
+ export const BasicUsage: Story = {
130
+ args: {
131
+ children: (
132
+ <>
133
+ <li>First item</li>
134
+ <li>Second item</li>
135
+ <li>Third item</li>
136
+ </>
137
+ ),
138
+ },
139
+ parameters: {
140
+ docs: {
141
+ description: {
142
+ story: 'Basic list with default styling.',
143
+ },
144
+ },
145
+ },
146
+ };
147
+
148
+ export const AllVariants: Story = {
149
+ render: () => {
150
+ return (
151
+ <div className="u-flex u-flex-column u-gap-8">
152
+ {['Default', 'Dash', 'Number', 'Text'].map((title, index) => {
153
+ const variant = index === 0 ? 'default' : title.toLowerCase();
154
+ return createListSection(`${title} List`, variant, variant);
155
+ })}
156
+ </div>
157
+ );
158
+ },
159
+ parameters: {
160
+ docs: {
161
+ description: {
162
+ story: 'List with all available style variants.',
163
+ },
164
+ },
165
+ },
166
+ };
167
+
168
+ export const WithListGroup: Story = {
169
+ render: () => {
170
+ const listGroupConfig = [
171
+ { title: 'Standard', compact: false, divided: false },
172
+ { title: 'Compact', compact: true, divided: false },
173
+ { title: 'Divided', compact: false, divided: true },
174
+ ];
175
+
176
+ return (
177
+ <div className="u-flex u-flex-column u-gap-8">
178
+ <div>
179
+ <h3 style={titleStyle}>Mixed Variants ListGroup</h3>
180
+ <ListGroup>
181
+ <List variant="dash">
182
+ <ListItems variant="dash" />
183
+ </List>
184
+ <List variant="number">
185
+ <ListItems variant="number" />
186
+ </List>
187
+ </ListGroup>
188
+ </div>
189
+ </div>
190
+ );
191
+ },
192
+ parameters: {
193
+ docs: {
194
+ description: {
195
+ story: 'Lists grouped together using the ListGroup component.',
196
+ },
197
+ },
198
+ },
199
+ };
200
+
63
201
  // Basic List example
64
202
  export const Basic: Story = {
65
203
  args: {