@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.
- package/CHANGELOG.md +20 -0
- package/build-tools/EXAMPLES.md +372 -0
- package/build-tools/README.md +242 -0
- package/build-tools/__tests__/error-handler.test.js +230 -0
- package/build-tools/__tests__/index.test.js +141 -0
- package/build-tools/__tests__/rollup-plugin.test.js +194 -0
- package/build-tools/__tests__/utils.test.js +161 -0
- package/build-tools/__tests__/vite-plugin.test.js +129 -0
- package/build-tools/__tests__/webpack-loader.test.js +190 -0
- package/build-tools/error-handler.js +308 -0
- package/build-tools/index.d.ts +43 -0
- package/build-tools/index.js +88 -0
- package/build-tools/package.json +67 -0
- package/build-tools/rollup-plugin.js +236 -0
- package/build-tools/types.d.ts +163 -0
- package/build-tools/utils.js +203 -0
- package/build-tools/vite-plugin.js +161 -0
- package/build-tools/webpack-loader.js +123 -0
- package/dist/atomix.css +203 -90
- package/dist/atomix.css.map +1 -1
- package/dist/atomix.min.css +3 -3
- package/dist/atomix.min.css.map +1 -1
- package/dist/build-tools/EXAMPLES.md +372 -0
- package/dist/build-tools/README.md +242 -0
- package/dist/build-tools/__tests__/error-handler.test.js +230 -0
- package/dist/build-tools/__tests__/index.test.js +141 -0
- package/dist/build-tools/__tests__/rollup-plugin.test.js +194 -0
- package/dist/build-tools/__tests__/utils.test.js +161 -0
- package/dist/build-tools/__tests__/vite-plugin.test.js +129 -0
- package/dist/build-tools/__tests__/webpack-loader.test.js +190 -0
- package/dist/build-tools/error-handler.js +308 -0
- package/dist/build-tools/index.d.ts +43 -0
- package/dist/build-tools/index.js +88 -0
- package/dist/build-tools/package.json +67 -0
- package/dist/build-tools/rollup-plugin.js +236 -0
- package/dist/build-tools/types.d.ts +163 -0
- package/dist/build-tools/utils.js +203 -0
- package/dist/build-tools/vite-plugin.js +161 -0
- package/dist/build-tools/webpack-loader.js +123 -0
- package/dist/charts.d.ts +1 -1
- package/dist/charts.js +86 -57
- package/dist/charts.js.map +1 -1
- package/dist/core.d.ts +1 -1
- package/dist/core.js +136 -112
- package/dist/core.js.map +1 -1
- package/dist/forms.d.ts +2 -5
- package/dist/forms.js +140 -128
- package/dist/forms.js.map +1 -1
- package/dist/heavy.d.ts +1 -1
- package/dist/heavy.js +136 -112
- package/dist/heavy.js.map +1 -1
- package/dist/index.d.ts +9 -61
- package/dist/index.esm.js +237 -286
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +250 -299
- package/dist/index.js.map +1 -1
- package/dist/index.min.js +1 -1
- package/dist/index.min.js.map +1 -1
- package/package.json +23 -8
- package/scripts/atomix-cli.js +170 -73
- package/scripts/cli/__tests__/README.md +81 -0
- package/scripts/cli/__tests__/basic.test.js +115 -0
- package/scripts/cli/__tests__/component-generator.test.js +332 -0
- package/scripts/cli/__tests__/integration.test.js +327 -0
- package/scripts/cli/__tests__/test-setup.js +133 -0
- package/scripts/cli/__tests__/token-manager.test.js +251 -0
- package/scripts/cli/__tests__/utils.test.js +161 -0
- package/scripts/cli/component-generator.js +253 -299
- package/scripts/cli/dependency-checker.js +355 -0
- package/scripts/cli/interactive-init.js +46 -5
- package/scripts/cli/template-manager.js +0 -2
- package/scripts/cli/templates/common-templates.js +636 -0
- package/scripts/cli/templates/composable-templates.js +148 -126
- package/scripts/cli/templates/index.js +23 -16
- package/scripts/cli/templates/project-templates.js +151 -23
- package/scripts/cli/templates/react-templates.js +280 -210
- package/scripts/cli/templates/scss-templates.js +90 -91
- package/scripts/cli/templates/testing-templates.js +206 -27
- package/scripts/cli/templates/testing-utils.js +278 -0
- package/scripts/cli/templates/types-templates.js +70 -56
- package/scripts/cli/theme-bridge.js +8 -2
- package/scripts/cli/token-manager.js +318 -206
- package/scripts/cli/utils.js +0 -1
- package/src/components/Accordion/Accordion.stories.tsx +369 -870
- package/src/components/AtomixGlass/AtomixGlass.tsx +80 -39
- package/src/components/AtomixGlass/AtomixGlassContainer.tsx +103 -81
- package/src/components/AtomixGlass/__snapshots__/AtomixGlass.test.tsx.snap +8 -7
- package/src/components/AtomixGlass/glass-utils.ts +2 -2
- package/src/components/AtomixGlass/shader-utils.ts +5 -0
- package/src/components/AtomixGlass/stories/Customization.stories.tsx +131 -0
- package/src/components/AtomixGlass/stories/Examples.stories.tsx +2957 -2853
- package/src/components/AtomixGlass/stories/Modes.stories.tsx +1 -1
- package/src/components/AtomixGlass/stories/Overview.stories.tsx +348 -0
- package/src/components/AtomixGlass/stories/Performance.stories.tsx +103 -0
- package/src/components/AtomixGlass/stories/Playground.stories.tsx +50 -35
- package/src/components/AtomixGlass/stories/{ShaderVariants.stories.tsx → Shaders.stories.tsx} +1 -1
- package/src/components/AtomixGlass/stories/shared-components.tsx +90 -190
- package/src/components/Avatar/Avatar.stories.tsx +213 -1
- package/src/components/Badge/Badge.stories.tsx +121 -362
- package/src/components/Block/Block.stories.tsx +21 -12
- package/src/components/Breadcrumb/Breadcrumb.stories.tsx +141 -23
- package/src/components/Button/Button.stories.tsx +463 -1126
- package/src/components/Button/Button.test.tsx +107 -0
- package/src/components/Button/Button.tsx +46 -50
- package/src/components/Button/ButtonGroup.stories.tsx +373 -217
- package/src/components/Callout/Callout.stories.tsx +289 -634
- package/src/components/Card/Card.stories.tsx +248 -68
- package/src/components/Chart/Chart.stories.tsx +150 -8
- package/src/components/ColorModeToggle/ColorModeToggle.stories.tsx +151 -69
- package/src/components/Countdown/Countdown.stories.tsx +115 -8
- package/src/components/DataTable/DataTable.stories.tsx +346 -146
- package/src/components/DatePicker/DatePicker.stories.tsx +325 -1066
- package/src/components/Dropdown/Dropdown.stories.tsx +153 -33
- package/src/components/EdgePanel/EdgePanel.stories.tsx +230 -21
- package/src/components/Footer/Footer.stories.tsx +392 -328
- package/src/components/Form/Checkbox.stories.tsx +140 -6
- package/src/components/Form/Checkbox.test.tsx +63 -0
- package/src/components/Form/Checkbox.tsx +87 -51
- package/src/components/Form/Form.stories.tsx +119 -20
- package/src/components/Form/FormGroup.stories.tsx +127 -4
- package/src/components/Form/Radio.stories.tsx +140 -5
- package/src/components/Form/Select.stories.tsx +140 -8
- package/src/components/Form/Textarea.stories.tsx +149 -6
- package/src/components/Hero/Hero.stories.tsx +333 -32
- package/src/components/List/List.stories.tsx +141 -3
- package/src/components/Modal/Modal.stories.tsx +181 -42
- package/src/components/Popover/Popover.stories.tsx +448 -98
- package/src/components/Progress/Progress.stories.tsx +167 -5
- package/src/components/River/River.stories.tsx +1 -1
- package/src/components/SectionIntro/SectionIntro.stories.tsx +240 -48
- package/src/components/Spinner/Spinner.stories.tsx +102 -8
- package/src/components/Steps/Steps.stories.tsx +172 -43
- package/src/components/Tabs/Tabs.stories.tsx +136 -10
- package/src/components/Testimonial/Testimonial.stories.tsx +120 -3
- package/src/components/Todo/Todo.stories.tsx +198 -9
- package/src/components/Toggle/Toggle.stories.tsx +126 -39
- package/src/components/Tooltip/Tooltip.stories.tsx +194 -104
- package/src/components/Upload/Upload.stories.tsx +113 -24
- package/src/lib/README.md +2 -2
- package/src/lib/__tests__/theme-tools.test.ts +193 -0
- package/src/lib/composables/index.ts +2 -2
- package/src/lib/composables/useAtomixGlass.ts +28 -56
- package/src/lib/composables/useChartExport.ts +2 -7
- package/src/lib/composables/useDataTable.ts +46 -29
- package/src/lib/constants/components.ts +9 -32
- package/src/lib/theme/devtools/CLI.ts +1 -1
- package/src/lib/types/components.ts +1 -1
- package/src/lib/utils/__tests__/csv.test.ts +45 -0
- package/src/lib/utils/csv.ts +17 -0
- package/src/lib/utils/dataTableExport.ts +1 -10
- package/src/styles/01-settings/_index.scss +2 -1
- package/src/styles/01-settings/_settings.accordion.scss +28 -7
- package/src/styles/01-settings/_settings.colors.scss +11 -11
- package/src/styles/01-settings/_settings.typography.scss +5 -5
- package/src/styles/02-tools/_tools.utility-api.scss +14 -0
- package/src/styles/06-components/_components.accordion.scss +56 -14
- package/src/styles/06-components/_components.checkbox.scss +23 -17
- package/src/styles/99-utilities/_index.scss +2 -0
- package/src/styles/99-utilities/_utilities.scss +3 -1
- package/src/styles/99-utilities/_utilities.text-gradient.scss +45 -0
- package/themes/dark-complementary/README.md +98 -0
- package/themes/dark-complementary/index.scss +158 -0
- package/themes/default-light/README.md +81 -0
- package/themes/default-light/index.scss +154 -0
- package/themes/high-contrast/README.md +105 -0
- package/themes/high-contrast/index.scss +172 -0
- package/themes/test-theme/README.md +38 -0
- package/themes/test-theme/index.scss +47 -0
- package/scripts/cli/templates-original-backup.js +0 -1655
- package/scripts/cli/templates_backup.js +0 -684
- package/src/components/AtomixGlass/stories/AtomixGlass.stories.tsx +0 -1438
- package/src/lib/composables/useButton.ts +0 -93
- 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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
//
|
|
40
|
-
export const
|
|
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
|
|
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={
|
|
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={() =>
|
|
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={() =>
|
|
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
|
-
<
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
-
}
|
|
406
|
+
},
|
|
283
407
|
},
|
|
284
|
-
render: (args
|
|
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
|
};
|