@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,4 +1,5 @@
|
|
|
1
1
|
import type { Meta, StoryObj } from '@storybook/react';
|
|
2
|
+
import { fn } from '@storybook/test';
|
|
2
3
|
import { useState } from 'react';
|
|
3
4
|
import type { AtomixGlassProps } from '../../lib/types/components';
|
|
4
5
|
import Modal from './Modal';
|
|
@@ -13,8 +14,75 @@ const meta = {
|
|
|
13
14
|
layout: 'centered',
|
|
14
15
|
docs: {
|
|
15
16
|
description: {
|
|
16
|
-
component:
|
|
17
|
-
|
|
17
|
+
component: `
|
|
18
|
+
# Modal
|
|
19
|
+
|
|
20
|
+
## Overview
|
|
21
|
+
|
|
22
|
+
Modal displays content in a focused overlay dialog. It provides a way to present important information or actions that require user attention. Modals support various sizes, can include headers and footers, and support glass morphism effects.
|
|
23
|
+
|
|
24
|
+
## Features
|
|
25
|
+
|
|
26
|
+
- Multiple size options (sm, md, lg, xl)
|
|
27
|
+
- Backdrop click to close
|
|
28
|
+
- Keyboard (Escape) to close
|
|
29
|
+
- Close button visibility control
|
|
30
|
+
- Glass morphism effect
|
|
31
|
+
- Header and footer sections
|
|
32
|
+
- Accessible design
|
|
33
|
+
- Responsive behavior
|
|
34
|
+
|
|
35
|
+
## Accessibility
|
|
36
|
+
|
|
37
|
+
- Keyboard support: Close with Escape key, tab navigation within modal
|
|
38
|
+
- Screen reader: Modal content and purpose announced properly
|
|
39
|
+
- ARIA support: Proper roles and properties for modal dialogs
|
|
40
|
+
- Focus management: Traps focus within the modal during open state
|
|
41
|
+
|
|
42
|
+
## Usage Examples
|
|
43
|
+
|
|
44
|
+
### Basic Usage
|
|
45
|
+
|
|
46
|
+
\`\`\`tsx
|
|
47
|
+
<Modal
|
|
48
|
+
isOpen={isOpen}
|
|
49
|
+
onOpenChange={setIsOpen}
|
|
50
|
+
title="Modal Title"
|
|
51
|
+
>
|
|
52
|
+
<p>Modal content goes here</p>
|
|
53
|
+
</Modal>
|
|
54
|
+
\`\`\`
|
|
55
|
+
|
|
56
|
+
### With Glass Effect
|
|
57
|
+
|
|
58
|
+
\`\`\`tsx
|
|
59
|
+
<Modal
|
|
60
|
+
isOpen={isOpen}
|
|
61
|
+
onOpenChange={setIsOpen}
|
|
62
|
+
title="Modal Title"
|
|
63
|
+
glass={true}
|
|
64
|
+
>
|
|
65
|
+
<p>Modal content goes here</p>
|
|
66
|
+
</Modal>
|
|
67
|
+
\`\`\`
|
|
68
|
+
|
|
69
|
+
## API Reference
|
|
70
|
+
|
|
71
|
+
### Props
|
|
72
|
+
|
|
73
|
+
| Prop | Type | Default | Description |
|
|
74
|
+
| ---- | ---- | ------- | ----------- |
|
|
75
|
+
| size | 'sm' \\| 'md' \\| 'lg' \\| 'xl' | 'md' | Size of the modal |
|
|
76
|
+
| backdrop | boolean | true | Whether clicking the backdrop closes the modal |
|
|
77
|
+
| keyboard | boolean | true | Whether pressing Escape key closes the modal |
|
|
78
|
+
| closeButton | boolean | true | Whether to show the close button |
|
|
79
|
+
| glass | boolean \\| GlassProps | false | Enable glass morphism effect |
|
|
80
|
+
| title | string | - | Title of the modal |
|
|
81
|
+
| subtitle | string | - | Subtitle of the modal |
|
|
82
|
+
| isOpen | boolean | false | Whether the modal is open |
|
|
83
|
+
| onOpenChange | (open: boolean) => void | - | Callback when open state changes |
|
|
84
|
+
| children | ReactNode | - | Content of the modal |
|
|
85
|
+
`,
|
|
18
86
|
},
|
|
19
87
|
},
|
|
20
88
|
},
|
|
@@ -24,26 +92,70 @@ const meta = {
|
|
|
24
92
|
control: { type: 'select' },
|
|
25
93
|
options: ['sm', 'md', 'lg', 'xl'],
|
|
26
94
|
description: 'Size of the modal',
|
|
27
|
-
|
|
95
|
+
table: {
|
|
96
|
+
type: { summary: '"sm" | "md" | "lg" | "xl"' },
|
|
97
|
+
defaultValue: { summary: 'md' },
|
|
98
|
+
},
|
|
28
99
|
},
|
|
29
100
|
backdrop: {
|
|
30
101
|
control: 'boolean',
|
|
31
102
|
description: 'Whether clicking the backdrop closes the modal',
|
|
32
|
-
|
|
103
|
+
table: {
|
|
104
|
+
type: { summary: 'boolean' },
|
|
105
|
+
defaultValue: { summary: true },
|
|
106
|
+
},
|
|
33
107
|
},
|
|
34
108
|
keyboard: {
|
|
35
109
|
control: 'boolean',
|
|
36
110
|
description: 'Whether pressing Escape key closes the modal',
|
|
37
|
-
|
|
111
|
+
table: {
|
|
112
|
+
type: { summary: 'boolean' },
|
|
113
|
+
defaultValue: { summary: true },
|
|
114
|
+
},
|
|
38
115
|
},
|
|
39
116
|
closeButton: {
|
|
40
117
|
control: 'boolean',
|
|
41
118
|
description: 'Whether to show the close button',
|
|
42
|
-
|
|
119
|
+
table: {
|
|
120
|
+
type: { summary: 'boolean' },
|
|
121
|
+
defaultValue: { summary: true },
|
|
122
|
+
},
|
|
43
123
|
},
|
|
44
124
|
glass: {
|
|
45
125
|
control: 'boolean',
|
|
46
126
|
description: 'Enable glass morphism effect',
|
|
127
|
+
table: {
|
|
128
|
+
type: { summary: 'boolean | GlassProps' },
|
|
129
|
+
defaultValue: { summary: false },
|
|
130
|
+
},
|
|
131
|
+
},
|
|
132
|
+
title: {
|
|
133
|
+
control: 'text',
|
|
134
|
+
description: 'Title of the modal',
|
|
135
|
+
table: {
|
|
136
|
+
type: { summary: 'string' },
|
|
137
|
+
defaultValue: { summary: '-' },
|
|
138
|
+
},
|
|
139
|
+
},
|
|
140
|
+
subtitle: {
|
|
141
|
+
control: 'text',
|
|
142
|
+
description: 'Subtitle of the modal',
|
|
143
|
+
table: {
|
|
144
|
+
type: { summary: 'string' },
|
|
145
|
+
defaultValue: { summary: '-' },
|
|
146
|
+
},
|
|
147
|
+
},
|
|
148
|
+
isOpen: {
|
|
149
|
+
control: 'boolean',
|
|
150
|
+
description: 'Whether the modal is open',
|
|
151
|
+
table: {
|
|
152
|
+
type: { summary: 'boolean' },
|
|
153
|
+
defaultValue: { summary: false },
|
|
154
|
+
},
|
|
155
|
+
},
|
|
156
|
+
onOpenChange: {
|
|
157
|
+
action: 'open state changed',
|
|
158
|
+
description: 'Callback when open state changes',
|
|
47
159
|
},
|
|
48
160
|
},
|
|
49
161
|
} satisfies Meta<typeof Modal>;
|
|
@@ -51,10 +163,7 @@ const meta = {
|
|
|
51
163
|
export default meta;
|
|
52
164
|
type Story = StoryObj<typeof meta>;
|
|
53
165
|
|
|
54
|
-
|
|
55
|
-
* Basic modal example with a button to trigger opening.
|
|
56
|
-
*/
|
|
57
|
-
export const Basic: Story = {
|
|
166
|
+
export const BasicUsage: Story = {
|
|
58
167
|
render: args => {
|
|
59
168
|
const [isOpen, setIsOpen] = useState(false);
|
|
60
169
|
|
|
@@ -85,11 +194,15 @@ export const Basic: Story = {
|
|
|
85
194
|
</>
|
|
86
195
|
);
|
|
87
196
|
},
|
|
197
|
+
parameters: {
|
|
198
|
+
docs: {
|
|
199
|
+
description: {
|
|
200
|
+
story: 'Basic modal example with a button to trigger opening.',
|
|
201
|
+
},
|
|
202
|
+
},
|
|
203
|
+
},
|
|
88
204
|
};
|
|
89
205
|
|
|
90
|
-
/**
|
|
91
|
-
* Modal with a title, subtitle, and footer actions.
|
|
92
|
-
*/
|
|
93
206
|
export const WithFooter: Story = {
|
|
94
207
|
render: args => {
|
|
95
208
|
const [isOpen, setIsOpen] = useState(false);
|
|
@@ -109,40 +222,66 @@ export const WithFooter: Story = {
|
|
|
109
222
|
isOpen={isOpen}
|
|
110
223
|
onOpenChange={setIsOpen}
|
|
111
224
|
title="Modal with Footer"
|
|
112
|
-
subtitle="This
|
|
113
|
-
footer={
|
|
114
|
-
<>
|
|
115
|
-
<div
|
|
116
|
-
className="c-btn c-btn--outline-secondary"
|
|
117
|
-
onClick={() => setIsOpen(false)}
|
|
118
|
-
style={{
|
|
119
|
-
cursor: 'pointer',
|
|
120
|
-
padding: '8px 16px',
|
|
121
|
-
display: 'inline-block',
|
|
122
|
-
marginRight: '8px',
|
|
123
|
-
}}
|
|
124
|
-
>
|
|
125
|
-
Cancel
|
|
126
|
-
</div>
|
|
127
|
-
<div
|
|
128
|
-
className="c-btn c-btn--primary"
|
|
129
|
-
onClick={() => {
|
|
130
|
-
alert('Action confirmed!');
|
|
131
|
-
setIsOpen(false);
|
|
132
|
-
}}
|
|
133
|
-
style={{ cursor: 'pointer', padding: '8px 16px', display: 'inline-block' }}
|
|
134
|
-
>
|
|
135
|
-
Confirm
|
|
136
|
-
</div>
|
|
137
|
-
</>
|
|
138
|
-
}
|
|
225
|
+
subtitle="This modal includes footer actions for user interaction."
|
|
139
226
|
>
|
|
140
|
-
<p>
|
|
141
|
-
|
|
227
|
+
<p>
|
|
228
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam auctor, odio vitae
|
|
229
|
+
faucibus luctus, elit nisi tincidunt justo, in malesuada enim nisl eget nisl.
|
|
230
|
+
Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis
|
|
231
|
+
egestas.
|
|
232
|
+
</p>
|
|
142
233
|
</Modal>
|
|
143
234
|
</>
|
|
144
235
|
);
|
|
145
236
|
},
|
|
237
|
+
parameters: {
|
|
238
|
+
docs: {
|
|
239
|
+
description: {
|
|
240
|
+
story: 'Modal with a title, subtitle, and footer actions.',
|
|
241
|
+
},
|
|
242
|
+
},
|
|
243
|
+
},
|
|
244
|
+
};
|
|
245
|
+
|
|
246
|
+
export const WithGlassEffect: Story = {
|
|
247
|
+
render: args => {
|
|
248
|
+
const [isOpen, setIsOpen] = useState(false);
|
|
249
|
+
|
|
250
|
+
return (
|
|
251
|
+
<>
|
|
252
|
+
<div
|
|
253
|
+
className="c-btn c-btn--primary"
|
|
254
|
+
onClick={() => setIsOpen(true)}
|
|
255
|
+
style={{ cursor: 'pointer', padding: '8px 16px', display: 'inline-block' }}
|
|
256
|
+
>
|
|
257
|
+
Open Glass Modal
|
|
258
|
+
</div>
|
|
259
|
+
|
|
260
|
+
<Modal
|
|
261
|
+
{...args}
|
|
262
|
+
isOpen={isOpen}
|
|
263
|
+
onOpenChange={setIsOpen}
|
|
264
|
+
title="Glass Modal"
|
|
265
|
+
subtitle="This modal has a glass morphism effect applied."
|
|
266
|
+
glass={true}
|
|
267
|
+
>
|
|
268
|
+
<p>
|
|
269
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam auctor, odio vitae
|
|
270
|
+
faucibus luctus, elit nisi tincidunt justo, in malesuada enim nisl eget nisl.
|
|
271
|
+
Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis
|
|
272
|
+
egestas.
|
|
273
|
+
</p>
|
|
274
|
+
</Modal>
|
|
275
|
+
</>
|
|
276
|
+
);
|
|
277
|
+
},
|
|
278
|
+
parameters: {
|
|
279
|
+
docs: {
|
|
280
|
+
description: {
|
|
281
|
+
story: 'Modal with glass morphism effect applied.',
|
|
282
|
+
},
|
|
283
|
+
},
|
|
284
|
+
},
|
|
146
285
|
};
|
|
147
286
|
|
|
148
287
|
/**
|