@shohojdhara/atomix 0.2.1 → 0.2.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 (201) hide show
  1. package/README.md +1 -28
  2. package/dist/atomix.css +1500 -241
  3. package/dist/atomix.min.css +6 -6
  4. package/dist/index.d.ts +1052 -194
  5. package/dist/index.esm.js +12201 -6066
  6. package/dist/index.esm.js.map +1 -1
  7. package/dist/index.js +5481 -2827
  8. package/dist/index.js.map +1 -1
  9. package/dist/index.min.js +1 -1
  10. package/dist/index.min.js.map +1 -1
  11. package/dist/themes/boomdevs.css +1500 -301
  12. package/dist/themes/boomdevs.min.css +60 -8
  13. package/dist/themes/esrar.css +1500 -241
  14. package/dist/themes/esrar.min.css +6 -6
  15. package/dist/themes/mashroom.css +1496 -237
  16. package/dist/themes/mashroom.min.css +8 -8
  17. package/dist/themes/shaj-default.css +1451 -192
  18. package/dist/themes/shaj-default.min.css +6 -6
  19. package/package.json +66 -15
  20. package/src/components/Accordion/Accordion.stories.tsx +137 -0
  21. package/src/components/Accordion/Accordion.tsx +33 -3
  22. package/src/components/AtomixGlass/AtomixGlass.stories.tsx +3011 -0
  23. package/src/components/AtomixGlass/AtomixGlass.test.tsx +199 -0
  24. package/src/components/AtomixGlass/AtomixGlass.tsx +1281 -0
  25. package/src/components/AtomixGlass/AtomixGlassComprehensivePreview.stories.tsx +1369 -0
  26. package/src/components/AtomixGlass/README.md +134 -0
  27. package/src/components/AtomixGlass/index.ts +10 -0
  28. package/src/components/AtomixGlass/shader-utils.ts +140 -0
  29. package/src/components/AtomixGlass/utils.ts +8 -0
  30. package/src/components/Badge/Badge.stories.tsx +169 -0
  31. package/src/components/Badge/Badge.tsx +27 -2
  32. package/src/components/Button/Button.stories.tsx +345 -0
  33. package/src/components/Button/Button.tsx +35 -3
  34. package/src/components/Button/README.md +216 -0
  35. package/src/components/Callout/Callout.stories.tsx +813 -78
  36. package/src/components/Callout/Callout.test.tsx +368 -0
  37. package/src/components/Callout/Callout.tsx +26 -7
  38. package/src/components/Callout/README.md +409 -0
  39. package/src/components/Card/Card.stories.tsx +140 -0
  40. package/src/components/Card/Card.tsx +19 -3
  41. package/src/components/DatePicker/DatePicker copy.tsx +551 -0
  42. package/src/components/DatePicker/DatePicker.stories.tsx +188 -0
  43. package/src/components/DatePicker/DatePicker.tsx +379 -332
  44. package/src/components/DatePicker/readme.md +110 -1
  45. package/src/components/DatePicker/types.ts +8 -0
  46. package/src/components/Dropdown/Dropdown.stories.tsx +145 -0
  47. package/src/components/Dropdown/Dropdown.tsx +34 -5
  48. package/src/components/Footer/Footer.stories.tsx +388 -0
  49. package/src/components/Footer/Footer.tsx +197 -0
  50. package/src/components/Footer/FooterLink.tsx +72 -0
  51. package/src/components/Footer/FooterSection.tsx +87 -0
  52. package/src/components/Footer/FooterSocialLink.tsx +117 -0
  53. package/src/components/Footer/README.md +261 -0
  54. package/src/components/Footer/index.ts +13 -0
  55. package/src/components/Form/Checkbox.stories.tsx +101 -0
  56. package/src/components/Form/Checkbox.tsx +26 -2
  57. package/src/components/Form/Input.stories.tsx +124 -0
  58. package/src/components/Form/Input.tsx +36 -7
  59. package/src/components/Form/Radio.stories.tsx +139 -0
  60. package/src/components/Form/Radio.tsx +26 -2
  61. package/src/components/Form/Select.stories.tsx +110 -0
  62. package/src/components/Form/Select.tsx +26 -2
  63. package/src/components/Form/Textarea.stories.tsx +104 -0
  64. package/src/components/Form/Textarea.tsx +36 -7
  65. package/src/components/Hero/Hero.stories.tsx +54 -1
  66. package/src/components/Hero/Hero.tsx +70 -11
  67. package/src/components/Modal/Modal.stories.tsx +235 -0
  68. package/src/components/Modal/Modal.tsx +64 -35
  69. package/src/components/Pagination/Pagination.stories.tsx +101 -0
  70. package/src/components/Pagination/Pagination.tsx +25 -1
  71. package/src/components/Popover/Popover.stories.tsx +94 -0
  72. package/src/components/Popover/Popover.tsx +30 -4
  73. package/src/components/Rating/Rating.stories.tsx +112 -0
  74. package/src/components/Rating/Rating.tsx +25 -1
  75. package/src/components/SectionIntro/SectionIntro.tsx +9 -11
  76. package/src/components/Slider/Slider.stories.tsx +634 -50
  77. package/src/components/Slider/Slider.tsx +5 -3
  78. package/src/components/Steps/Steps.stories.tsx +119 -0
  79. package/src/components/Steps/Steps.tsx +32 -1
  80. package/src/components/Tab/Tab.stories.tsx +88 -0
  81. package/src/components/Tab/Tab.tsx +32 -1
  82. package/src/components/Toggle/Toggle.stories.tsx +92 -0
  83. package/src/components/Toggle/Toggle.tsx +32 -1
  84. package/src/components/Tooltip/Tooltip.stories.tsx +131 -0
  85. package/src/components/Tooltip/Tooltip.tsx +43 -7
  86. package/src/components/VideoPlayer/VideoPlayer.stories.tsx +1002 -196
  87. package/src/components/VideoPlayer/VideoPlayer.tsx +161 -4
  88. package/src/components/index.ts +14 -0
  89. package/src/layouts/Grid/Grid.stories.tsx +226 -159
  90. package/src/lib/composables/index.ts +4 -0
  91. package/src/lib/composables/useAtomixGlass.ts +71 -0
  92. package/src/lib/composables/useButton.ts +3 -1
  93. package/src/lib/composables/useCallout.ts +4 -1
  94. package/src/lib/composables/useFooter.ts +85 -0
  95. package/src/lib/composables/useGlassContainer.ts +168 -0
  96. package/src/lib/composables/useSlider.ts +191 -4
  97. package/src/lib/constants/components.ts +173 -0
  98. package/src/lib/types/components.ts +622 -0
  99. package/src/lib/utils/displacement-generator.ts +86 -0
  100. package/src/styles/01-settings/_index.scss +1 -0
  101. package/src/styles/01-settings/_settings.accordion.scss +20 -19
  102. package/src/styles/01-settings/_settings.animations.scss +5 -5
  103. package/src/styles/01-settings/_settings.avatar-group.scss +1 -1
  104. package/src/styles/01-settings/_settings.avatar.scss +17 -18
  105. package/src/styles/01-settings/_settings.background.scss +10 -0
  106. package/src/styles/01-settings/_settings.badge.scss +1 -1
  107. package/src/styles/01-settings/_settings.breadcrumb.scss +8 -2
  108. package/src/styles/01-settings/_settings.callout.scss +7 -7
  109. package/src/styles/01-settings/_settings.card.scss +2 -2
  110. package/src/styles/01-settings/_settings.chart.scss +7 -7
  111. package/src/styles/01-settings/_settings.checkbox-group.scss +5 -2
  112. package/src/styles/01-settings/_settings.checkbox.scss +10 -4
  113. package/src/styles/01-settings/_settings.countdown.scss +6 -4
  114. package/src/styles/01-settings/_settings.dropdown.scss +9 -7
  115. package/src/styles/01-settings/_settings.edge-panel.scss +3 -2
  116. package/src/styles/01-settings/_settings.footer.scss +125 -0
  117. package/src/styles/01-settings/_settings.form-group.scss +3 -1
  118. package/src/styles/01-settings/_settings.form.scss +4 -2
  119. package/src/styles/01-settings/_settings.hero.scss +9 -7
  120. package/src/styles/01-settings/_settings.input.scss +9 -7
  121. package/src/styles/01-settings/_settings.list-group.scss +4 -2
  122. package/src/styles/01-settings/_settings.list.scss +4 -2
  123. package/src/styles/01-settings/_settings.menu.scss +10 -8
  124. package/src/styles/01-settings/_settings.messages.scss +19 -17
  125. package/src/styles/01-settings/_settings.modal.scss +6 -4
  126. package/src/styles/01-settings/_settings.nav.scss +6 -4
  127. package/src/styles/01-settings/_settings.navbar.scss +8 -5
  128. package/src/styles/01-settings/_settings.pagination.scss +5 -3
  129. package/src/styles/01-settings/_settings.popover.scss +6 -4
  130. package/src/styles/01-settings/_settings.rating.scss +5 -3
  131. package/src/styles/01-settings/_settings.river.scss +8 -6
  132. package/src/styles/01-settings/_settings.sectionintro.scss +8 -6
  133. package/src/styles/01-settings/_settings.select.scss +7 -5
  134. package/src/styles/01-settings/_settings.side-menu.scss +15 -13
  135. package/src/styles/01-settings/_settings.spacing.scss +4 -0
  136. package/src/styles/01-settings/_settings.steps.scss +7 -5
  137. package/src/styles/01-settings/_settings.tabs.scss +7 -5
  138. package/src/styles/01-settings/_settings.testimonials.scss +6 -4
  139. package/src/styles/01-settings/_settings.toggle.scss +3 -1
  140. package/src/styles/01-settings/_settings.tooltip.scss +5 -3
  141. package/src/styles/01-settings/_settings.upload.scss +22 -20
  142. package/src/styles/02-tools/_tools.animations.scss +19 -0
  143. package/src/styles/02-tools/_tools.background.scss +87 -0
  144. package/src/styles/02-tools/_tools.glass.scss +1 -0
  145. package/src/styles/02-tools/_tools.rem.scss +18 -5
  146. package/src/styles/02-tools/_tools.utility-api.scss +32 -26
  147. package/src/styles/03-generic/_generic.root.scss +15 -2
  148. package/src/styles/04-elements/_elements.body.scss +6 -0
  149. package/src/styles/06-components/_components.accordion.scss +24 -4
  150. package/src/styles/06-components/_components.atomix-glass.scss +0 -0
  151. package/src/styles/06-components/_components.avatar-group.scss +2 -1
  152. package/src/styles/06-components/_components.avatar.scss +2 -1
  153. package/src/styles/06-components/_components.badge.scss +36 -1
  154. package/src/styles/06-components/_components.breadcrumb.scss +2 -1
  155. package/src/styles/06-components/_components.button.scss +14 -3
  156. package/src/styles/06-components/_components.callout.scss +44 -4
  157. package/src/styles/06-components/_components.card.scss +21 -2
  158. package/src/styles/06-components/_components.chart.scss +3 -2
  159. package/src/styles/06-components/_components.checkbox.scss +2 -1
  160. package/src/styles/06-components/_components.color-mode-toggle.scss +3 -2
  161. package/src/styles/06-components/_components.countdown.scss +2 -1
  162. package/src/styles/06-components/_components.data-table.scss +7 -6
  163. package/src/styles/06-components/_components.datepicker.scss +20 -1
  164. package/src/styles/06-components/_components.dropdown.scss +11 -4
  165. package/src/styles/06-components/_components.edge-panel.scss +4 -3
  166. package/src/styles/06-components/_components.footer.scss +825 -0
  167. package/src/styles/06-components/_components.form-group.scss +1 -0
  168. package/src/styles/06-components/_components.hero.scss +4 -4
  169. package/src/styles/06-components/_components.image-gallery.scss +1 -0
  170. package/src/styles/06-components/_components.input.scss +33 -2
  171. package/src/styles/06-components/_components.list-group.scss +3 -2
  172. package/src/styles/06-components/_components.list.scss +2 -1
  173. package/src/styles/06-components/_components.menu.scss +5 -4
  174. package/src/styles/06-components/_components.messages.scss +8 -7
  175. package/src/styles/06-components/_components.modal.scss +3 -2
  176. package/src/styles/06-components/_components.nav.scss +6 -5
  177. package/src/styles/06-components/_components.navbar.scss +4 -3
  178. package/src/styles/06-components/_components.pagination.scss +2 -1
  179. package/src/styles/06-components/_components.photoviewer.scss +4 -3
  180. package/src/styles/06-components/_components.popover.scss +3 -2
  181. package/src/styles/06-components/_components.product-review.scss +3 -2
  182. package/src/styles/06-components/_components.progress.scss +3 -2
  183. package/src/styles/06-components/_components.river.scss +3 -2
  184. package/src/styles/06-components/_components.sectionintro.scss +2 -1
  185. package/src/styles/06-components/_components.select.scss +5 -4
  186. package/src/styles/06-components/_components.side-menu.scss +8 -7
  187. package/src/styles/06-components/_components.skeleton.scss +3 -2
  188. package/src/styles/06-components/_components.slider.scss +7 -6
  189. package/src/styles/06-components/_components.spinner.scss +1 -0
  190. package/src/styles/06-components/_components.steps.scss +3 -2
  191. package/src/styles/06-components/_components.tabs.scss +4 -3
  192. package/src/styles/06-components/_components.testimonials.scss +2 -1
  193. package/src/styles/06-components/_components.todo.scss +3 -2
  194. package/src/styles/06-components/_components.toggle.scss +5 -4
  195. package/src/styles/06-components/_components.tooltip.scss +3 -2
  196. package/src/styles/06-components/_components.upload.scss +4 -3
  197. package/src/styles/06-components/_components.video-player.scss +50 -27
  198. package/src/styles/06-components/_index.scss +2 -0
  199. package/src/styles/99-utilities/_utilities.glass-fixes.scss +48 -0
  200. package/dist/themes/yabai.css +0 -13711
  201. package/dist/themes/yabai.min.css +0 -189
@@ -1,6 +1,8 @@
1
1
  import type { Meta, StoryObj } from '@storybook/react';
2
2
  import { fn } from '@storybook/test';
3
3
  import { SliderSlide } from '../../lib/types/components';
4
+ import { Button } from '../Button/Button';
5
+ import { Card } from '../Card/Card';
4
6
  import { Slider } from './Slider';
5
7
 
6
8
  const meta = {
@@ -34,24 +36,29 @@ const meta = {
34
36
  export default meta;
35
37
  type Story = StoryObj<typeof meta>;
36
38
 
39
+ // Basic slides with gradient backgrounds
37
40
  const basicSlides: SliderSlide[] = [
38
41
  {
39
42
  id: '1',
40
43
  content: (
41
44
  <div
45
+ className="u-p-5 u-h-100"
42
46
  style={{
43
47
  background: 'linear-gradient(135deg, #667eea 0%, #764ba2 100%)',
44
48
  width: '100%',
45
- height: '100%',
49
+ borderRadius: '8px',
46
50
  display: 'flex',
47
51
  alignItems: 'center',
48
52
  justifyContent: 'center',
49
- color: 'white',
50
- fontSize: '24px',
51
- fontWeight: 'bold',
52
53
  }}
53
54
  >
54
- Slide 1
55
+ <div className="u-text-center">
56
+ <h2 className="u-fs-3 u-c-white u-mb-3">Welcome to Atomix</h2>
57
+ <p className="u-fs-base u-c-white u-mb-4">
58
+ A modern design system for building responsive interfaces
59
+ </p>
60
+ <Button variant="primary">Get Started</Button>
61
+ </div>
55
62
  </div>
56
63
  ),
57
64
  },
@@ -59,19 +66,23 @@ const basicSlides: SliderSlide[] = [
59
66
  id: '2',
60
67
  content: (
61
68
  <div
69
+ className="u-p-5 u-h-100"
62
70
  style={{
63
71
  background: 'linear-gradient(135deg, #f093fb 0%, #f5576c 100%)',
64
72
  width: '100%',
65
- height: '100%',
73
+ borderRadius: '8px',
66
74
  display: 'flex',
67
75
  alignItems: 'center',
68
76
  justifyContent: 'center',
69
- color: 'white',
70
- fontSize: '24px',
71
- fontWeight: 'bold',
72
77
  }}
73
78
  >
74
- Slide 2
79
+ <div className="u-text-center">
80
+ <h2 className="u-fs-3 u-c-white u-mb-3">Flexible Components</h2>
81
+ <p className="u-fs-base u-c-white u-mb-4">
82
+ Build with reusable and customizable components
83
+ </p>
84
+ <Button variant="light">Learn More</Button>
85
+ </div>
75
86
  </div>
76
87
  ),
77
88
  },
@@ -79,19 +90,21 @@ const basicSlides: SliderSlide[] = [
79
90
  id: '3',
80
91
  content: (
81
92
  <div
93
+ className="u-p-5 u-h-100"
82
94
  style={{
83
95
  background: 'linear-gradient(135deg, #4facfe 0%, #00f2fe 100%)',
84
96
  width: '100%',
85
- height: '100%',
97
+ borderRadius: '8px',
86
98
  display: 'flex',
87
99
  alignItems: 'center',
88
100
  justifyContent: 'center',
89
- color: 'white',
90
- fontSize: '24px',
91
- fontWeight: 'bold',
92
101
  }}
93
102
  >
94
- Slide 3
103
+ <div className="u-text-center">
104
+ <h2 className="u-fs-3 u-c-white u-mb-3">Easy to Use</h2>
105
+ <p className="u-fs-base u-c-white u-mb-4">Simple API and comprehensive documentation</p>
106
+ <Button variant="light">View Docs</Button>
107
+ </div>
95
108
  </div>
96
109
  ),
97
110
  },
@@ -99,19 +112,23 @@ const basicSlides: SliderSlide[] = [
99
112
  id: '4',
100
113
  content: (
101
114
  <div
115
+ className="u-p-5 u-h-100"
102
116
  style={{
103
- background: 'linear-gradient(135deg, #43e97b 0%, #38f9d7 100%)',
117
+ background: 'linear-gradient(135deg, #fa709a 0%, #fee140 100%)',
104
118
  width: '100%',
105
- height: '100%',
119
+ borderRadius: '8px',
106
120
  display: 'flex',
107
121
  alignItems: 'center',
108
122
  justifyContent: 'center',
109
- color: 'white',
110
- fontSize: '24px',
111
- fontWeight: 'bold',
112
123
  }}
113
124
  >
114
- Slide 4
125
+ <div className="u-text-center">
126
+ <h2 className="u-fs-3 u-c-white u-mb-3">Fully Responsive</h2>
127
+ <p className="u-fs-base u-c-white u-mb-4">
128
+ Works on all device sizes from mobile to desktop
129
+ </p>
130
+ <Button variant="dark">See Demo</Button>
131
+ </div>
115
132
  </div>
116
133
  ),
117
134
  },
@@ -119,48 +136,487 @@ const basicSlides: SliderSlide[] = [
119
136
  id: '5',
120
137
  content: (
121
138
  <div
139
+ className="u-p-5 u-h-100"
122
140
  style={{
123
- background: 'linear-gradient(135deg, #fa709a 0%, #fee140 100%)',
141
+ background: 'linear-gradient(135deg, #a8edea 0%, #fed6e3 100%)',
142
+ width: '100%',
143
+ borderRadius: '8px',
144
+ display: 'flex',
145
+ alignItems: 'center',
146
+ justifyContent: 'center',
147
+ }}
148
+ >
149
+ <div className="u-text-center">
150
+ <h2 className="u-fs-3 u-c-white u-mb-3">Accessible Design</h2>
151
+ <p className="u-fs-base u-c-white u-mb-4">WCAG 2.1 AA compliant for all users</p>
152
+ <Button variant="info">Learn More</Button>
153
+ </div>
154
+ </div>
155
+ ),
156
+ },
157
+ {
158
+ id: '6',
159
+ content: (
160
+ <div
161
+ className="u-p-5 u-h-100"
162
+ style={{
163
+ background: 'linear-gradient(135deg, #ff9a9e 0%, #fecfef 100%)',
164
+ width: '100%',
165
+ borderRadius: '8px',
166
+ display: 'flex',
167
+ alignItems: 'center',
168
+ justifyContent: 'center',
169
+ }}
170
+ >
171
+ <div className="u-text-center">
172
+ <h2 className="u-fs-3 u-c-white u-mb-3">Themeable</h2>
173
+ <p className="u-fs-base u-c-white u-mb-4">
174
+ Easily customize colors, spacing and typography
175
+ </p>
176
+ <Button variant="warning">View Themes</Button>
177
+ </div>
178
+ </div>
179
+ ),
180
+ },
181
+ {
182
+ id: '7',
183
+ content: (
184
+ <div
185
+ className="u-p-5 u-h-100"
186
+ style={{
187
+ background: 'linear-gradient(135deg, #d299c2 0%, #fef9d7 100%)',
124
188
  width: '100%',
125
- height: '100%',
189
+ borderRadius: '8px',
126
190
  display: 'flex',
127
191
  alignItems: 'center',
128
192
  justifyContent: 'center',
129
- color: 'white',
130
- fontSize: '24px',
131
- fontWeight: 'bold',
132
193
  }}
133
194
  >
134
- Slide 5
195
+ <div className="u-text-center">
196
+ <h2 className="u-fs-3 u-c-white u-mb-3">Performance Focused</h2>
197
+ <p className="u-fs-base u-c-white u-mb-4">
198
+ Optimized for fast loading and smooth interactions
199
+ </p>
200
+ <Button variant="success">See Benchmarks</Button>
201
+ </div>
202
+ </div>
203
+ ),
204
+ },
205
+ {
206
+ id: '8',
207
+ content: (
208
+ <div
209
+ className="u-p-5 u-h-100"
210
+ style={{
211
+ background: 'linear-gradient(135deg, #89f7fe 0%, #66a6ff 100%)',
212
+ width: '100%',
213
+ borderRadius: '8px',
214
+ display: 'flex',
215
+ alignItems: 'center',
216
+ justifyContent: 'center',
217
+ }}
218
+ >
219
+ <div className="u-text-center">
220
+ <h2 className="u-fs-3 u-c-white u-mb-3">Developer Friendly</h2>
221
+ <p className="u-fs-base u-c-white u-mb-4">Well documented with clear APIs and examples</p>
222
+ <Button variant="primary">View Docs</Button>
223
+ </div>
224
+ </div>
225
+ ),
226
+ },
227
+ {
228
+ id: '9',
229
+ content: (
230
+ <div
231
+ className="u-p-5 u-h-100"
232
+ style={{
233
+ background: 'linear-gradient(135deg, #fdbb2d 0%, #22c1c3 100%)',
234
+ width: '100%',
235
+ borderRadius: '8px',
236
+ display: 'flex',
237
+ alignItems: 'center',
238
+ justifyContent: 'center',
239
+ }}
240
+ >
241
+ <div className="u-text-center">
242
+ <h2 className="u-fs-3 u-c-white u-mb-3">Modular Components</h2>
243
+ <p className="u-fs-base u-c-white u-mb-4">
244
+ Import only what you need to reduce bundle size
245
+ </p>
246
+ <Button variant="dark">See Components</Button>
247
+ </div>
248
+ </div>
249
+ ),
250
+ },
251
+ {
252
+ id: '10',
253
+ content: (
254
+ <div
255
+ className="u-p-5 u-h-100"
256
+ style={{
257
+ background: 'linear-gradient(135deg, #e0c3fc 0%, #8ec5fc 100%)',
258
+ width: '100%',
259
+ borderRadius: '8px',
260
+ display: 'flex',
261
+ alignItems: 'center',
262
+ justifyContent: 'center',
263
+ }}
264
+ >
265
+ <div className="u-text-center">
266
+ <h2 className="u-fs-3 u-c-white u-mb-3">Cross Browser</h2>
267
+ <p className="u-fs-base u-c-white u-mb-4">
268
+ Consistent experience across all modern browsers
269
+ </p>
270
+ <Button variant="secondary">View Support</Button>
271
+ </div>
272
+ </div>
273
+ ),
274
+ },
275
+ {
276
+ id: '11',
277
+ content: (
278
+ <div
279
+ className="u-p-5 u-h-100"
280
+ style={{
281
+ background: 'linear-gradient(135deg, #f6d365 0%, #fda085 100%)',
282
+ width: '100%',
283
+ borderRadius: '8px',
284
+ display: 'flex',
285
+ alignItems: 'center',
286
+ justifyContent: 'center',
287
+ }}
288
+ >
289
+ <div className="u-text-center">
290
+ <h2 className="u-fs-3 u-c-white u-mb-3">RTL Support</h2>
291
+ <p className="u-fs-base u-c-white u-mb-4">Full right-to-left language support built-in</p>
292
+ <Button variant="info">Learn More</Button>
293
+ </div>
294
+ </div>
295
+ ),
296
+ },
297
+ {
298
+ id: '12',
299
+ content: (
300
+ <div
301
+ className="u-p-5 u-h-100"
302
+ style={{
303
+ background: 'linear-gradient(135deg, #a1c4fd 0%, #c2e9fb 100%)',
304
+ width: '100%',
305
+ borderRadius: '8px',
306
+ display: 'flex',
307
+ alignItems: 'center',
308
+ justifyContent: 'center',
309
+ }}
310
+ >
311
+ <div className="u-text-center">
312
+ <h2 className="u-fs-3 u-c-white u-mb-3">Open Source</h2>
313
+ <p className="u-fs-base u-c-white u-mb-4">Free to use and contribute to the community</p>
314
+ <Button variant="success">View on GitHub</Button>
315
+ </div>
135
316
  </div>
136
317
  ),
137
318
  },
138
319
  ];
139
320
 
140
- const imageSlides: SliderSlide[] = [
321
+ // Product showcase slides using cards
322
+ const productSlides: SliderSlide[] = [
141
323
  {
142
324
  id: '1',
143
- image: 'https://picsum.photos/800/400?random=1',
144
- alt: 'Random image 1',
145
- content: null,
325
+ content: (
326
+ <Card className="u-h-100">
327
+ <div className="u-text-center u-p-4">
328
+ <div
329
+ className="u-mb-4"
330
+ style={{
331
+ width: '100%',
332
+ height: '150px',
333
+ background: 'linear-gradient(45deg, #ff9a9e 0%, #fecfef 100%)',
334
+ borderRadius: '4px',
335
+ }}
336
+ />
337
+ <h3 className="u-fs-4 u-fw-bold u-mb-2">Premium Plan</h3>
338
+ <p className="u-fs-sm u-c-muted u-mb-3">Perfect for small teams and growing businesses</p>
339
+ <div className="u-mb-4">
340
+ <span className="u-fs-1 u-fw-bold">$29</span>
341
+ <span className="u-fs-sm u-c-muted">/month</span>
342
+ </div>
343
+ <Button variant="primary" className="u-w-100">
344
+ Get Started
345
+ </Button>
346
+ </div>
347
+ </Card>
348
+ ),
146
349
  },
147
350
  {
148
351
  id: '2',
149
- image: 'https://picsum.photos/800/400?random=2',
150
- alt: 'Random image 2',
151
- content: null,
352
+ content: (
353
+ <Card className="u-h-100">
354
+ <div className="u-text-center u-p-4">
355
+ <div
356
+ className="u-mb-4"
357
+ style={{
358
+ width: '100%',
359
+ height: '150px',
360
+ background: 'linear-gradient(45deg, #a8edea 0%, #fed6e3 100%)',
361
+ borderRadius: '4px',
362
+ }}
363
+ />
364
+ <h3 className="u-fs-4 u-fw-bold u-mb-2">Business Plan</h3>
365
+ <p className="u-fs-sm u-c-muted u-mb-3">For established teams with advanced needs</p>
366
+ <div className="u-mb-4">
367
+ <span className="u-fs-1 u-fw-bold">$79</span>
368
+ <span className="u-fs-sm u-c-muted">/month</span>
369
+ </div>
370
+ <Button variant="secondary" className="u-w-100">
371
+ Get Started
372
+ </Button>
373
+ </div>
374
+ </Card>
375
+ ),
152
376
  },
153
377
  {
154
378
  id: '3',
155
- image: 'https://picsum.photos/800/400?random=3',
156
- alt: 'Random image 3',
157
- content: null,
379
+ content: (
380
+ <Card className="u-h-100">
381
+ <div className="u-text-center u-p-4">
382
+ <div
383
+ className="u-mb-4"
384
+ style={{
385
+ width: '100%',
386
+ height: '150px',
387
+ background: 'linear-gradient(45deg, #ffecd2 0%, #fcb69f 100%)',
388
+ borderRadius: '4px',
389
+ }}
390
+ />
391
+ <h3 className="u-fs-4 u-fw-bold u-mb-2">Enterprise Plan</h3>
392
+ <p className="u-fs-sm u-c-muted u-mb-3">Custom solutions for large organizations</p>
393
+ <div className="u-mb-4">
394
+ <span className="u-fs-1 u-fw-bold">Custom</span>
395
+ </div>
396
+ <Button variant="dark" className="u-w-100">
397
+ Contact Sales
398
+ </Button>
399
+ </div>
400
+ </Card>
401
+ ),
158
402
  },
159
403
  {
160
404
  id: '4',
161
- image: 'https://picsum.photos/800/400?random=4',
162
- alt: 'Random image 4',
163
- content: null,
405
+ content: (
406
+ <Card className="u-h-100">
407
+ <div className="u-text-center u-p-4">
408
+ <div
409
+ className="u-mb-4"
410
+ style={{
411
+ width: '100%',
412
+ height: '150px',
413
+ background: 'linear-gradient(45deg, #a8c8ec 0%, #72a2e0 100%)',
414
+ borderRadius: '4px',
415
+ }}
416
+ />
417
+ <h3 className="u-fs-4 u-fw-bold u-mb-2">Developer Plan</h3>
418
+ <p className="u-fs-sm u-c-muted u-mb-3">For developers and technical teams</p>
419
+ <div className="u-mb-4">
420
+ <span className="u-fs-1 u-fw-bold">$49</span>
421
+ <span className="u-fs-sm u-c-muted">/month</span>
422
+ </div>
423
+ <Button variant="info" className="u-w-100">
424
+ Get Started
425
+ </Button>
426
+ </div>
427
+ </Card>
428
+ ),
429
+ },
430
+ ];
431
+
432
+ // Testimonial slides
433
+ const testimonialSlides: SliderSlide[] = [
434
+ {
435
+ id: '1',
436
+ content: (
437
+ <Card className="u-h-100">
438
+ <div className="u-p-5 u-text-center">
439
+ <div className="u-mb-4 u-d-flex u-justify-content-center">
440
+ <div
441
+ style={{
442
+ width: '60px',
443
+ height: '60px',
444
+ borderRadius: '50%',
445
+ background: 'linear-gradient(45deg, #667eea 0%, #764ba2 100%)',
446
+ }}
447
+ />
448
+ </div>
449
+ <p className="u-fs-base u-fst-italic u-mb-4">
450
+ "Atomix has completely transformed how we build our user interfaces. The components are
451
+ intuitive and the design system is consistent across all our products."
452
+ </p>
453
+ <h4 className="u-fs-4 u-fw-bold">Jane Cooper</h4>
454
+ <p className="u-fs-sm u-c-muted">Product Designer, TechCorp</p>
455
+ </div>
456
+ </Card>
457
+ ),
458
+ },
459
+ {
460
+ id: '2',
461
+ content: (
462
+ <Card className="u-h-100">
463
+ <div className="u-p-5 u-text-center">
464
+ <div className="u-mb-4 u-d-flex u-justify-content-center">
465
+ <div
466
+ style={{
467
+ width: '60px',
468
+ height: '60px',
469
+ borderRadius: '50%',
470
+ background: 'linear-gradient(45deg, #f093fb 0%, #f5576c 100%)',
471
+ }}
472
+ />
473
+ </div>
474
+ <p className="u-fs-base u-fst-italic u-mb-4">
475
+ "Implementing Atomix reduced our development time by 40%. The documentation is excellent
476
+ and the components are highly customizable."
477
+ </p>
478
+ <h4 className="u-fs-4 u-fw-bold">John Doe</h4>
479
+ <p className="u-fs-sm u-c-muted">Frontend Developer, StartupX</p>
480
+ </div>
481
+ </Card>
482
+ ),
483
+ },
484
+ {
485
+ id: '3',
486
+ content: (
487
+ <Card className="u-h-100">
488
+ <div className="u-p-5 u-text-center">
489
+ <div className="u-mb-4 u-d-flex u-justify-content-center">
490
+ <div
491
+ style={{
492
+ width: '60px',
493
+ height: '60px',
494
+ borderRadius: '50%',
495
+ background: 'linear-gradient(45deg, #4facfe 0%, #00f2fe 100%)',
496
+ }}
497
+ />
498
+ </div>
499
+ <p className="u-fs-base u-fst-italic u-mb-4">
500
+ "The accessibility features in Atomix are impressive. Our products now meet WCAG 2.1 AA
501
+ standards with minimal effort."
502
+ </p>
503
+ <h4 className="u-fs-4 u-fw-bold">Sarah Johnson</h4>
504
+ <p className="u-fs-sm u-c-muted">Accessibility Lead, InclusiveTech</p>
505
+ </div>
506
+ </Card>
507
+ ),
508
+ },
509
+ ];
510
+
511
+ // Feature showcase slides
512
+ const featureSlides: SliderSlide[] = [
513
+ {
514
+ id: '1',
515
+ content: (
516
+ <div className="u-h-100" style={{ display: 'flex', alignItems: 'center' }}>
517
+ <div className="o-grid u-w-100">
518
+ <div className="o-grid__col u-col-12 u-col-md-6 u-d-flex u-flex-column u-justify-content-center u-p-5">
519
+ <h2 className="u-fs-3 u-fw-bold u-mb-3">Responsive Design</h2>
520
+ <p className="u-fs-base u-c-muted u-mb-4">
521
+ All components are built with mobile-first responsive design principles, ensuring your
522
+ interfaces look great on any device.
523
+ </p>
524
+ <div>
525
+ <Button variant="primary">Learn More</Button>
526
+ </div>
527
+ </div>
528
+ <div className="o-grid__col u-col-12 u-col-md-6 u-d-flex u-align-items-center u-justify-content-center u-p-5">
529
+ <div
530
+ className="u-w-100 u-h-100"
531
+ style={{
532
+ background: 'linear-gradient(135deg, #667eea 0%, #764ba2 100%)',
533
+ borderRadius: '8px',
534
+ display: 'flex',
535
+ alignItems: 'center',
536
+ justifyContent: 'center',
537
+ color: 'white',
538
+ fontSize: '18px',
539
+ fontWeight: 'bold',
540
+ }}
541
+ >
542
+ Mobile First
543
+ </div>
544
+ </div>
545
+ </div>
546
+ </div>
547
+ ),
548
+ },
549
+ {
550
+ id: '2',
551
+ content: (
552
+ <div className="u-h-100" style={{ display: 'flex', alignItems: 'center' }}>
553
+ <div className="o-grid u-w-100">
554
+ <div className="o-grid__col u-col-12 u-col-md-6 u-d-flex u-flex-column u-justify-content-center u-p-5">
555
+ <h2 className="u-fs-3 u-fw-bold u-mb-3">Accessibility</h2>
556
+ <p className="u-fs-base u-c-muted u-mb-4">
557
+ Built with WCAG 2.1 AA compliance in mind, ensuring your applications are usable by
558
+ everyone, including people with disabilities.
559
+ </p>
560
+ <div>
561
+ <Button variant="secondary">Accessibility Guide</Button>
562
+ </div>
563
+ </div>
564
+ <div className="o-grid__col u-col-12 u-col-md-6 u-d-flex u-align-items-center u-justify-content-center u-p-5">
565
+ <div
566
+ className="u-w-100 u-h-100"
567
+ style={{
568
+ background: 'linear-gradient(135deg, #f093fb 0%, #f5576c 100%)',
569
+ borderRadius: '8px',
570
+ display: 'flex',
571
+ alignItems: 'center',
572
+ justifyContent: 'center',
573
+ color: 'white',
574
+ fontSize: '18px',
575
+ fontWeight: 'bold',
576
+ }}
577
+ >
578
+ WCAG 2.1 AA
579
+ </div>
580
+ </div>
581
+ </div>
582
+ </div>
583
+ ),
584
+ },
585
+ {
586
+ id: '3',
587
+ content: (
588
+ <div className="u-h-100" style={{ display: 'flex', alignItems: 'center' }}>
589
+ <div className="o-grid u-w-100">
590
+ <div className="o-grid__col u-col-12 u-col-md-6 u-d-flex u-flex-column u-justify-content-center u-p-5">
591
+ <h2 className="u-fs-3 u-fw-bold u-mb-3">Customizable</h2>
592
+ <p className="u-fs-base u-c-muted u-mb-4">
593
+ Easily customize colors, spacing, typography and more through CSS variables or SCSS
594
+ mixins to match your brand identity.
595
+ </p>
596
+ <div>
597
+ <Button variant="success">Customization Guide</Button>
598
+ </div>
599
+ </div>
600
+ <div className="o-grid__col u-col-12 u-col-md-6 u-d-flex u-align-items-center u-justify-content-center u-p-5">
601
+ <div
602
+ className="u-w-100 u-h-100"
603
+ style={{
604
+ background: 'linear-gradient(135deg, #4facfe 0%, #00f2fe 100%)',
605
+ borderRadius: '8px',
606
+ display: 'flex',
607
+ alignItems: 'center',
608
+ justifyContent: 'center',
609
+ color: 'white',
610
+ fontSize: '18px',
611
+ fontWeight: 'bold',
612
+ }}
613
+ >
614
+ Theme Variables
615
+ </div>
616
+ </div>
617
+ </div>
618
+ </div>
619
+ ),
164
620
  },
165
621
  ];
166
622
 
@@ -172,70 +628,198 @@ export const Basic: Story = {
172
628
  slidesToShow: 1,
173
629
  loop: true,
174
630
  },
631
+ parameters: {
632
+ docs: {
633
+ description: {
634
+ story: 'A basic slider with gradient slides and loop enabled.',
635
+ },
636
+ },
637
+ },
175
638
  };
176
639
 
177
640
  export const WithNavigation: Story = {
178
641
  args: {
179
642
  slides: basicSlides,
180
643
  height: 300,
181
- width: '600px',
644
+ width: '100%',
182
645
  navigation: true,
183
646
  onInit: fn(),
184
647
  },
648
+ parameters: {
649
+ docs: {
650
+ description: {
651
+ story: 'Slider with navigation buttons to move between slides.',
652
+ },
653
+ },
654
+ },
185
655
  };
186
656
 
187
657
  export const WithPagination: Story = {
188
658
  args: {
189
659
  slides: basicSlides,
190
660
  height: 300,
191
- width: '600px',
661
+ width: '100%',
192
662
  pagination: true,
193
663
  onInit: fn(),
194
664
  },
665
+ parameters: {
666
+ docs: {
667
+ description: {
668
+ story:
669
+ 'Slider with pagination bullets to indicate current slide and allow direct navigation.',
670
+ },
671
+ },
672
+ },
195
673
  };
196
674
 
197
- export const ImageSlider: Story = {
675
+ export const WithNavigationAndPagination: Story = {
198
676
  args: {
199
- slides: imageSlides,
200
- height: 400,
201
- width: '800px',
677
+ slides: basicSlides,
678
+ height: 300,
679
+ width: '100%',
680
+ navigation: true,
681
+ pagination: true,
682
+ onInit: fn(),
683
+ },
684
+ parameters: {
685
+ docs: {
686
+ description: {
687
+ story: 'Slider with both navigation buttons and pagination bullets for complete control.',
688
+ },
689
+ },
690
+ },
691
+ };
692
+
693
+ export const ProductShowcase: Story = {
694
+ args: {
695
+ slides: productSlides,
696
+ height: 350,
697
+ width: '100%',
698
+ spaceBetween: 20,
202
699
  navigation: true,
203
700
  pagination: true,
204
701
  onInit: fn(),
205
702
  },
703
+ parameters: {
704
+ docs: {
705
+ description: {
706
+ story: 'Product showcase slider with card-based slides.',
707
+ },
708
+ },
709
+ },
710
+ };
711
+
712
+ export const Testimonials: Story = {
713
+ args: {
714
+ slides: testimonialSlides,
715
+ height: 300,
716
+ width: '100%',
717
+ navigation: true,
718
+ pagination: true,
719
+ onInit: fn(),
720
+ },
721
+ parameters: {
722
+ docs: {
723
+ description: {
724
+ story: 'Testimonial slider with customer feedback cards.',
725
+ },
726
+ },
727
+ },
728
+ };
729
+
730
+ export const Features: Story = {
731
+ args: {
732
+ slides: featureSlides,
733
+ height: 300,
734
+ width: '100%',
735
+ navigation: true,
736
+ pagination: true,
737
+ onInit: fn(),
738
+ },
739
+ parameters: {
740
+ docs: {
741
+ description: {
742
+ story: 'Feature showcase slider with split layout content.',
743
+ },
744
+ },
745
+ },
206
746
  };
207
747
 
208
748
  export const MultipleSlides: Story = {
209
749
  args: {
210
750
  slides: basicSlides,
211
751
  height: 250,
212
- width: '800px',
752
+ width: '100%',
213
753
  slidesToShow: 3,
214
754
  spaceBetween: 20,
215
755
  navigation: true,
216
756
  onInit: fn(),
217
757
  },
758
+ parameters: {
759
+ docs: {
760
+ description: {
761
+ story: 'Slider showing multiple slides at once with spacing between them.',
762
+ },
763
+ },
764
+ },
765
+ };
766
+
767
+ export const CenteredSlides: Story = {
768
+ args: {
769
+ slides: basicSlides,
770
+ height: 250,
771
+ width: '100%',
772
+ slidesToShow: 2.5,
773
+ spaceBetween: 15,
774
+ centeredSlides: true,
775
+ navigation: true,
776
+ pagination: true,
777
+ onInit: fn(),
778
+ },
779
+ parameters: {
780
+ docs: {
781
+ description: {
782
+ story: 'Slider with centered slides and partial visibility of adjacent slides.',
783
+ },
784
+ },
785
+ },
218
786
  };
219
787
 
220
788
  export const Autoplay: Story = {
221
789
  args: {
222
790
  slides: basicSlides,
223
791
  height: 300,
224
- width: '600px',
225
- autoplay: { delay: 3000 },
792
+ width: '100%',
793
+ autoplay: true,
794
+ loop: true,
226
795
  navigation: true,
227
796
  pagination: true,
228
797
  onInit: fn(),
229
798
  },
799
+ parameters: {
800
+ docs: {
801
+ description: {
802
+ story: 'Slider with automatic playback that cycles through slides every 3 seconds.'
803
+ }
804
+ }
805
+ }
230
806
  };
231
807
 
232
808
  export const Vertical: Story = {
233
809
  args: {
234
810
  slides: basicSlides.slice(0, 3),
235
811
  height: 400,
236
- width: '300px',
812
+ width: '100%',
237
813
  direction: 'vertical',
238
814
  navigation: true,
815
+ pagination: true,
239
816
  onInit: fn(),
240
817
  },
818
+ parameters: {
819
+ docs: {
820
+ description: {
821
+ story: 'Vertical slider that moves through slides in a vertical direction.',
822
+ },
823
+ },
824
+ },
241
825
  };