@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,5 +1,6 @@
1
1
  import React from 'react';
2
2
  import type { Meta, StoryObj } from '@storybook/react';
3
+ import { fn } from '@storybook/test';
3
4
  import { Spinner } from './Spinner';
4
5
  import { THEME_COLORS, SIZES } from '../../lib/constants/components';
5
6
 
@@ -10,8 +11,56 @@ const meta = {
10
11
  layout: 'centered',
11
12
  docs: {
12
13
  description: {
13
- component:
14
- 'The Spinner component provides visual feedback during loading states. It displays an animated loading indicator that can be customized with different variants and sizes. Use spinners to indicate that content is being loaded or processed.',
14
+ component: `
15
+ # Spinner
16
+
17
+ ## Overview
18
+
19
+ Spinner provides visual feedback during loading states. It displays an animated loading indicator that can be customized with different variants and sizes. Use spinners to indicate that content is being loaded or processed.
20
+
21
+ ## Features
22
+
23
+ - Multiple color variants
24
+ - Multiple size options
25
+ - Fullscreen mode
26
+ - Smooth animations
27
+ - Accessible design
28
+ - Responsive behavior
29
+
30
+ ## Accessibility
31
+
32
+ - Screen reader: Loading state announced appropriately
33
+ - ARIA support: Proper roles and properties for spinner components
34
+ - Keyboard support: Accessible via keyboard navigation
35
+ - Focus management: Focus indicators maintained for interactive elements
36
+
37
+ ## Usage Examples
38
+
39
+ ### Basic Usage
40
+
41
+ \`\`\`tsx
42
+ <Spinner />
43
+ \`\`\`
44
+
45
+ ### With Variant and Size
46
+
47
+ \`\`\`tsx
48
+ <Spinner
49
+ variant="primary"
50
+ size="lg"
51
+ />
52
+ \`\`\`
53
+
54
+ ## API Reference
55
+
56
+ ### Props
57
+
58
+ | Prop | Type | Default | Description |
59
+ | ---- | ---- | ------- | ----------- |
60
+ | variant | ThemeColor | 'primary' | The color variant of the spinner |
61
+ | size | 'sm' \\| 'md' \\| 'lg' | 'md' | The size of the spinner |
62
+ | fullscreen | boolean | false | Whether the spinner should be centered and fixed in the viewport |
63
+ `,
15
64
  },
16
65
  },
17
66
  },
@@ -21,15 +70,27 @@ const meta = {
21
70
  control: { type: 'select' },
22
71
  options: THEME_COLORS,
23
72
  description: 'The color variant of the spinner',
73
+ table: {
74
+ type: { summary: 'ThemeColor' },
75
+ defaultValue: { summary: 'primary' },
76
+ },
24
77
  },
25
78
  size: {
26
79
  control: { type: 'select' },
27
80
  options: SIZES,
28
81
  description: 'The size of the spinner',
82
+ table: {
83
+ type: { summary: '"sm" | "md" | "lg"' },
84
+ defaultValue: { summary: 'md' },
85
+ },
29
86
  },
30
87
  fullscreen: {
31
88
  control: 'boolean',
32
89
  description: 'Whether the spinner should be centered and fixed in the viewport',
90
+ table: {
91
+ type: { summary: 'boolean' },
92
+ defaultValue: { summary: false },
93
+ },
33
94
  },
34
95
  },
35
96
  } satisfies Meta<typeof Spinner>;
@@ -37,17 +98,22 @@ const meta = {
37
98
  export default meta;
38
99
  type Story = StoryObj<typeof meta>;
39
100
 
40
- // Default Spinner
41
- export const Default: Story = {
101
+ export const BasicUsage: Story = {
42
102
  args: {
43
103
  variant: 'primary',
44
104
  size: 'md',
45
105
  fullscreen: false,
46
106
  },
107
+ parameters: {
108
+ docs: {
109
+ description: {
110
+ story: 'Basic spinner with default settings.',
111
+ },
112
+ },
113
+ },
47
114
  };
48
115
 
49
- // Size Variants
50
- export const Sizes: Story = {
116
+ export const AllSizes: Story = {
51
117
  render: () => (
52
118
  <div className="u-flex u-flex-wrap u-gap-3 u-items-center">
53
119
  <Spinner size="sm" />
@@ -55,10 +121,16 @@ export const Sizes: Story = {
55
121
  <Spinner size="lg" />
56
122
  </div>
57
123
  ),
124
+ parameters: {
125
+ docs: {
126
+ description: {
127
+ story: 'Spinner in all available sizes.',
128
+ },
129
+ },
130
+ },
58
131
  };
59
132
 
60
- // Color Variants
61
- export const ColorVariants: Story = {
133
+ export const AllVariants: Story = {
62
134
  render: () => (
63
135
  <div className="u-flex u-flex-wrap u-gap-3 u-items-center">
64
136
  {THEME_COLORS.map(color => (
@@ -66,4 +138,26 @@ export const ColorVariants: Story = {
66
138
  ))}
67
139
  </div>
68
140
  ),
141
+ parameters: {
142
+ docs: {
143
+ description: {
144
+ story: 'Spinner in all available color variants.',
145
+ },
146
+ },
147
+ },
148
+ };
149
+
150
+ export const Fullscreen: Story = {
151
+ render: () => (
152
+ <div style={{ height: '200px', display: 'flex', alignItems: 'center', justifyContent: 'center' }}>
153
+ <Spinner fullscreen={true} variant="primary" size="lg" />
154
+ </div>
155
+ ),
156
+ parameters: {
157
+ docs: {
158
+ description: {
159
+ story: 'Fullscreen spinner centered in the viewport.',
160
+ },
161
+ },
162
+ },
69
163
  };
@@ -1,5 +1,6 @@
1
1
  import React from 'react';
2
2
  import type { Meta, StoryObj } from '@storybook/react';
3
+ import { fn } from '@storybook/test';
3
4
  import { Steps } from './Steps';
4
5
 
5
6
  const meta = {
@@ -9,26 +10,105 @@ const meta = {
9
10
  layout: 'padded',
10
11
  docs: {
11
12
  description: {
12
- component:
13
- 'The Steps component displays a sequence of steps in a process or workflow. It provides visual progress indication and can be displayed horizontally or vertically. Steps are ideal for multi-step forms, onboarding flows, or any process that requires clear progress visualization.',
13
+ component: `
14
+ # Steps
15
+
16
+ ## Overview
17
+
18
+ Steps component displays a sequence of steps in a process or workflow. It provides visual progress indication and can be displayed horizontally or vertically. Steps are ideal for multi-step forms, onboarding flows, or any process that requires clear progress visualization.
19
+
20
+ ## Features
21
+
22
+ - Horizontal and vertical orientations
23
+ - Active step indication
24
+ - Customizable step content
25
+ - Glass morphism effect
26
+ - Accessible design
27
+ - Responsive behavior
28
+
29
+ ## Accessibility
30
+
31
+ - Screen reader: Step status and progress announced appropriately
32
+ - ARIA support: Proper roles and properties for step components
33
+ - Keyboard support: Accessible via keyboard navigation
34
+ - Focus management: Maintains focus on interactive elements
35
+
36
+ ## Usage Examples
37
+
38
+ ### Basic Usage
39
+
40
+ \`\`\`tsx
41
+ <Steps
42
+ items={[
43
+ { number: 1, text: 'Step 1' },
44
+ { number: 2, text: 'Step 2' },
45
+ { number: 3, text: 'Step 3' },
46
+ ]}
47
+ activeIndex={1}
48
+ />
49
+ \`\`\`
50
+
51
+ ### Vertical Orientation
52
+
53
+ \`\`\`tsx
54
+ <Steps
55
+ items={[
56
+ { number: 1, text: 'Step 1' },
57
+ { number: 2, text: 'Step 2' },
58
+ { number: 3, text: 'Step 3' },
59
+ ]}
60
+ activeIndex={1}
61
+ vertical={true}
62
+ />
63
+ \`\`\`
64
+
65
+ ## API Reference
66
+
67
+ ### Props
68
+
69
+ | Prop | Type | Default | Description |
70
+ | ---- | ---- | ------- | ----------- |
71
+ | activeIndex | number | 1 | The index of the currently active step |
72
+ | vertical | boolean | false | Whether to display steps vertically |
73
+ | glass | boolean | false | Enable glass morphism effect |
74
+ | items | StepItem[] | [] | Array of step items with number and text |
75
+ `,
14
76
  },
15
77
  },
16
78
  },
17
79
  tags: ['autodocs'],
18
80
  argTypes: {
19
81
  activeIndex: {
20
- control: { type: 'number' },
82
+ control: { type: 'number', min: 0 },
21
83
  description: 'The index of the currently active step',
22
- defaultValue: 1,
84
+ table: {
85
+ type: { summary: 'number' },
86
+ defaultValue: { summary: 1 },
87
+ },
23
88
  },
24
89
  vertical: {
25
90
  control: { type: 'boolean' },
26
91
  description: 'Whether to display steps vertically',
27
- defaultValue: false,
92
+ table: {
93
+ type: { summary: 'boolean' },
94
+ defaultValue: { summary: false },
95
+ },
28
96
  },
29
97
  glass: {
30
98
  control: 'boolean',
31
99
  description: 'Enable glass morphism effect',
100
+ table: {
101
+ type: { summary: 'boolean' },
102
+ defaultValue: { summary: false },
103
+ },
104
+ },
105
+ items: {
106
+ control: { type: 'object' },
107
+ description: 'Array of step items with number and text',
108
+ table: {
109
+ type: { summary: 'StepItem[]' },
110
+ defaultValue: { summary: '[]' },
111
+ },
32
112
  },
33
113
  },
34
114
  } satisfies Meta<typeof Steps>;
@@ -36,13 +116,8 @@ const meta = {
36
116
  export default meta;
37
117
  type Story = StoryObj<typeof meta>;
38
118
 
39
- // Default horizontal steps
40
- export const Default: Story = {
41
- render: args => (
42
- <div style={{ padding: '30px' }}>
43
- <Steps {...args} />
44
- </div>
45
- ),
119
+ // Basic horizontal steps
120
+ export const BasicHorizontal: Story = {
46
121
  args: {
47
122
  items: [
48
123
  { number: 1, text: 'Step 1' },
@@ -54,15 +129,22 @@ export const Default: Story = {
54
129
  activeIndex: 1,
55
130
  vertical: false,
56
131
  },
57
- };
58
-
59
- // Vertical steps
60
- export const Vertical: Story = {
61
- render: args => (
132
+ render: (args) => (
62
133
  <div style={{ padding: '30px' }}>
63
134
  <Steps {...args} />
64
135
  </div>
65
136
  ),
137
+ parameters: {
138
+ docs: {
139
+ description: {
140
+ story: 'Default horizontal steps with basic configuration.',
141
+ },
142
+ },
143
+ },
144
+ };
145
+
146
+ // Vertical steps
147
+ export const BasicVertical: Story = {
66
148
  args: {
67
149
  items: [
68
150
  { number: 1, text: 'Step 1' },
@@ -74,6 +156,18 @@ export const Vertical: Story = {
74
156
  activeIndex: 1,
75
157
  vertical: true,
76
158
  },
159
+ render: (args) => (
160
+ <div style={{ padding: '30px' }}>
161
+ <Steps {...args} />
162
+ </div>
163
+ ),
164
+ parameters: {
165
+ docs: {
166
+ description: {
167
+ story: 'Steps displayed in vertical orientation.',
168
+ },
169
+ },
170
+ },
77
171
  };
78
172
 
79
173
  // Steps with custom content
@@ -100,20 +194,17 @@ export const WithCustomContent: Story = {
100
194
  text: 'Preferences',
101
195
  content: <p style={{ marginTop: '10px', fontSize: '0.85em' }}>Select your preferences</p>,
102
196
  },
103
- {
104
- number: 4,
105
- text: 'Payment',
106
- content: <p style={{ marginTop: '10px', fontSize: '0.85em' }}>Add payment information</p>,
107
- },
108
- {
109
- number: 5,
110
- text: 'Confirmation',
111
- content: <p style={{ marginTop: '10px', fontSize: '0.85em' }}>Complete your signup</p>,
112
- },
113
197
  ],
114
198
  activeIndex: 1,
115
199
  vertical: false,
116
200
  },
201
+ parameters: {
202
+ docs: {
203
+ description: {
204
+ story: 'Steps with custom content in each step.',
205
+ },
206
+ },
207
+ },
117
208
  };
118
209
 
119
210
  // Steps with custom icons instead of numbers
@@ -152,9 +243,16 @@ export const WithIcons: Story = {
152
243
  };
153
244
 
154
245
  // Interactive steps with buttons for navigation
155
- const InteractiveSteps: React.FC = () => {
246
+ const InteractiveStepsTemplate: React.FC<{ onStepChange?: (index: number) => void }> = ({ onStepChange }) => {
156
247
  const [activeStep, setActiveStep] = React.useState(0);
157
248
 
249
+ const handleStepChange = (stepIndex: number) => {
250
+ setActiveStep(stepIndex);
251
+ if (onStepChange) {
252
+ onStepChange(stepIndex);
253
+ }
254
+ };
255
+
158
256
  const items = [
159
257
  { number: 1, text: 'Step 1' },
160
258
  { number: 2, text: 'Step 2' },
@@ -165,37 +263,47 @@ const InteractiveSteps: React.FC = () => {
165
263
 
166
264
  return (
167
265
  <div>
168
- <Steps items={items} activeIndex={activeStep} onStepChange={setActiveStep} />
169
- <div style={{ marginTop: '30px', display: 'flex', gap: '10px' }}>
266
+ <Steps items={items} activeIndex={activeStep} onStepChange={handleStepChange} />
267
+ <div style={{ marginTop: '30px', display: 'flex', gap: '10px', justifyContent: 'center' }}>
170
268
  <button
171
269
  className="c-btn c-btn--primary"
172
- onClick={() => setActiveStep(Math.max(0, activeStep - 1))}
270
+ onClick={() => handleStepChange(Math.max(0, activeStep - 1))}
173
271
  disabled={activeStep === 0}
174
272
  >
175
273
  Previous
176
274
  </button>
177
275
  <button
178
276
  className="c-btn c-btn--primary"
179
- onClick={() => setActiveStep(Math.min(items.length - 1, activeStep + 1))}
277
+ onClick={() => handleStepChange(Math.min(items.length - 1, activeStep + 1))}
180
278
  disabled={activeStep === items.length - 1}
181
279
  >
182
280
  Next
183
281
  </button>
282
+ <span style={{ marginLeft: '15px', alignSelf: 'center' }}>
283
+ Current step: {activeStep + 1} of {items.length}
284
+ </span>
184
285
  </div>
185
286
  </div>
186
287
  );
187
288
  };
188
289
 
189
290
  export const Interactive: Story = {
190
- args: {} as any,
191
291
  render: () => (
192
292
  <div style={{ padding: '30px' }}>
193
- <InteractiveSteps />
293
+ <InteractiveStepsTemplate />
194
294
  </div>
195
295
  ),
296
+ parameters: {
297
+ docs: {
298
+ description: {
299
+ story: 'Interactive steps with navigation controls to demonstrate state management.',
300
+ },
301
+ },
302
+ },
196
303
  };
197
304
 
198
- export const Glass: Story = {
305
+ // Glass effect horizontal
306
+ export const GlassHorizontal: Story = {
199
307
  args: {
200
308
  items: [
201
309
  { number: 1, text: 'Glass Step 1' },
@@ -208,7 +316,7 @@ export const Glass: Story = {
208
316
  vertical: false,
209
317
  glass: true,
210
318
  },
211
- render: (args: any) => (
319
+ render: (args) => (
212
320
  <div
213
321
  style={{
214
322
  background: 'linear-gradient(135deg, #667eea 0%, #764ba2 100%)',
@@ -225,8 +333,16 @@ export const Glass: Story = {
225
333
  </div>
226
334
  </div>
227
335
  ),
336
+ parameters: {
337
+ docs: {
338
+ description: {
339
+ story: 'Horizontal steps with glass morphism effect applied.',
340
+ },
341
+ },
342
+ },
228
343
  };
229
344
 
345
+ // Glass effect vertical
230
346
  export const GlassVertical: Story = {
231
347
  args: {
232
348
  items: [
@@ -240,7 +356,7 @@ export const GlassVertical: Story = {
240
356
  vertical: true,
241
357
  glass: true,
242
358
  },
243
- render: (args: any) => (
359
+ render: (args) => (
244
360
  <div
245
361
  style={{
246
362
  background:
@@ -260,8 +376,16 @@ export const GlassVertical: Story = {
260
376
  </div>
261
377
  </div>
262
378
  ),
379
+ parameters: {
380
+ docs: {
381
+ description: {
382
+ story: 'Vertical steps with glass morphism effect applied.',
383
+ },
384
+ },
385
+ },
263
386
  };
264
387
 
388
+ // Glass effect with custom configuration
265
389
  export const GlassCustom: Story = {
266
390
  args: {
267
391
  items: [
@@ -279,9 +403,9 @@ export const GlassCustom: Story = {
279
403
  saturation: 200,
280
404
  aberrationIntensity: 0.8,
281
405
  cornerRadius: 12,
282
- } as any,
406
+ },
283
407
  },
284
- render: (args: any) => (
408
+ render: (args) => (
285
409
  <div
286
410
  style={{
287
411
  background: 'linear-gradient(45deg, #ff6b6b, #4ecdc4, #45b7d1, #96ceb4, #feca57)',
@@ -295,18 +419,23 @@ export const GlassCustom: Story = {
295
419
  justifyContent: 'center',
296
420
  }}
297
421
  >
298
- <style>
299
- {`
422
+ <style>{`
300
423
  @keyframes gradient {
301
424
  0% { background-position: 0% 50%; }
302
425
  50% { background-position: 100% 50%; }
303
426
  100% { background-position: 0% 50%; }
304
427
  }
305
- `}
306
- </style>
428
+ `}</style>
307
429
  <div style={{ width: '100%', maxWidth: '800px' }}>
308
430
  <Steps {...args} />
309
431
  </div>
310
432
  </div>
311
433
  ),
434
+ parameters: {
435
+ docs: {
436
+ description: {
437
+ story: 'Horizontal steps with custom glass morphism effect parameters.',
438
+ },
439
+ },
440
+ },
312
441
  };