@shohojdhara/atomix 0.3.14 → 0.3.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (173) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/build-tools/EXAMPLES.md +372 -0
  3. package/build-tools/README.md +242 -0
  4. package/build-tools/__tests__/error-handler.test.js +230 -0
  5. package/build-tools/__tests__/index.test.js +141 -0
  6. package/build-tools/__tests__/rollup-plugin.test.js +194 -0
  7. package/build-tools/__tests__/utils.test.js +161 -0
  8. package/build-tools/__tests__/vite-plugin.test.js +129 -0
  9. package/build-tools/__tests__/webpack-loader.test.js +190 -0
  10. package/build-tools/error-handler.js +308 -0
  11. package/build-tools/index.d.ts +43 -0
  12. package/build-tools/index.js +88 -0
  13. package/build-tools/package.json +67 -0
  14. package/build-tools/rollup-plugin.js +236 -0
  15. package/build-tools/types.d.ts +163 -0
  16. package/build-tools/utils.js +203 -0
  17. package/build-tools/vite-plugin.js +161 -0
  18. package/build-tools/webpack-loader.js +123 -0
  19. package/dist/atomix.css +203 -90
  20. package/dist/atomix.css.map +1 -1
  21. package/dist/atomix.min.css +3 -3
  22. package/dist/atomix.min.css.map +1 -1
  23. package/dist/build-tools/EXAMPLES.md +372 -0
  24. package/dist/build-tools/README.md +242 -0
  25. package/dist/build-tools/__tests__/error-handler.test.js +230 -0
  26. package/dist/build-tools/__tests__/index.test.js +141 -0
  27. package/dist/build-tools/__tests__/rollup-plugin.test.js +194 -0
  28. package/dist/build-tools/__tests__/utils.test.js +161 -0
  29. package/dist/build-tools/__tests__/vite-plugin.test.js +129 -0
  30. package/dist/build-tools/__tests__/webpack-loader.test.js +190 -0
  31. package/dist/build-tools/error-handler.js +308 -0
  32. package/dist/build-tools/index.d.ts +43 -0
  33. package/dist/build-tools/index.js +88 -0
  34. package/dist/build-tools/package.json +67 -0
  35. package/dist/build-tools/rollup-plugin.js +236 -0
  36. package/dist/build-tools/types.d.ts +163 -0
  37. package/dist/build-tools/utils.js +203 -0
  38. package/dist/build-tools/vite-plugin.js +161 -0
  39. package/dist/build-tools/webpack-loader.js +123 -0
  40. package/dist/charts.d.ts +1 -1
  41. package/dist/charts.js +86 -57
  42. package/dist/charts.js.map +1 -1
  43. package/dist/core.d.ts +1 -1
  44. package/dist/core.js +136 -112
  45. package/dist/core.js.map +1 -1
  46. package/dist/forms.d.ts +2 -5
  47. package/dist/forms.js +140 -128
  48. package/dist/forms.js.map +1 -1
  49. package/dist/heavy.d.ts +1 -1
  50. package/dist/heavy.js +136 -112
  51. package/dist/heavy.js.map +1 -1
  52. package/dist/index.d.ts +9 -61
  53. package/dist/index.esm.js +237 -286
  54. package/dist/index.esm.js.map +1 -1
  55. package/dist/index.js +250 -299
  56. package/dist/index.js.map +1 -1
  57. package/dist/index.min.js +1 -1
  58. package/dist/index.min.js.map +1 -1
  59. package/package.json +23 -8
  60. package/scripts/atomix-cli.js +170 -73
  61. package/scripts/cli/__tests__/README.md +81 -0
  62. package/scripts/cli/__tests__/basic.test.js +115 -0
  63. package/scripts/cli/__tests__/component-generator.test.js +332 -0
  64. package/scripts/cli/__tests__/integration.test.js +327 -0
  65. package/scripts/cli/__tests__/test-setup.js +133 -0
  66. package/scripts/cli/__tests__/token-manager.test.js +251 -0
  67. package/scripts/cli/__tests__/utils.test.js +161 -0
  68. package/scripts/cli/component-generator.js +253 -299
  69. package/scripts/cli/dependency-checker.js +355 -0
  70. package/scripts/cli/interactive-init.js +46 -5
  71. package/scripts/cli/template-manager.js +0 -2
  72. package/scripts/cli/templates/common-templates.js +636 -0
  73. package/scripts/cli/templates/composable-templates.js +148 -126
  74. package/scripts/cli/templates/index.js +23 -16
  75. package/scripts/cli/templates/project-templates.js +151 -23
  76. package/scripts/cli/templates/react-templates.js +280 -210
  77. package/scripts/cli/templates/scss-templates.js +90 -91
  78. package/scripts/cli/templates/testing-templates.js +206 -27
  79. package/scripts/cli/templates/testing-utils.js +278 -0
  80. package/scripts/cli/templates/types-templates.js +70 -56
  81. package/scripts/cli/theme-bridge.js +8 -2
  82. package/scripts/cli/token-manager.js +318 -206
  83. package/scripts/cli/utils.js +0 -1
  84. package/src/components/Accordion/Accordion.stories.tsx +369 -870
  85. package/src/components/AtomixGlass/AtomixGlass.tsx +80 -39
  86. package/src/components/AtomixGlass/AtomixGlassContainer.tsx +103 -81
  87. package/src/components/AtomixGlass/__snapshots__/AtomixGlass.test.tsx.snap +8 -7
  88. package/src/components/AtomixGlass/glass-utils.ts +2 -2
  89. package/src/components/AtomixGlass/shader-utils.ts +5 -0
  90. package/src/components/AtomixGlass/stories/Customization.stories.tsx +131 -0
  91. package/src/components/AtomixGlass/stories/Examples.stories.tsx +2957 -2853
  92. package/src/components/AtomixGlass/stories/Modes.stories.tsx +1 -1
  93. package/src/components/AtomixGlass/stories/Overview.stories.tsx +348 -0
  94. package/src/components/AtomixGlass/stories/Performance.stories.tsx +103 -0
  95. package/src/components/AtomixGlass/stories/Playground.stories.tsx +50 -35
  96. package/src/components/AtomixGlass/stories/{ShaderVariants.stories.tsx → Shaders.stories.tsx} +1 -1
  97. package/src/components/AtomixGlass/stories/shared-components.tsx +90 -190
  98. package/src/components/Avatar/Avatar.stories.tsx +213 -1
  99. package/src/components/Badge/Badge.stories.tsx +121 -362
  100. package/src/components/Block/Block.stories.tsx +21 -12
  101. package/src/components/Breadcrumb/Breadcrumb.stories.tsx +141 -23
  102. package/src/components/Button/Button.stories.tsx +463 -1126
  103. package/src/components/Button/Button.test.tsx +107 -0
  104. package/src/components/Button/Button.tsx +46 -50
  105. package/src/components/Button/ButtonGroup.stories.tsx +373 -217
  106. package/src/components/Callout/Callout.stories.tsx +289 -634
  107. package/src/components/Card/Card.stories.tsx +248 -68
  108. package/src/components/Chart/Chart.stories.tsx +150 -8
  109. package/src/components/ColorModeToggle/ColorModeToggle.stories.tsx +151 -69
  110. package/src/components/Countdown/Countdown.stories.tsx +115 -8
  111. package/src/components/DataTable/DataTable.stories.tsx +346 -146
  112. package/src/components/DatePicker/DatePicker.stories.tsx +325 -1066
  113. package/src/components/Dropdown/Dropdown.stories.tsx +153 -33
  114. package/src/components/EdgePanel/EdgePanel.stories.tsx +230 -21
  115. package/src/components/Footer/Footer.stories.tsx +392 -328
  116. package/src/components/Form/Checkbox.stories.tsx +140 -6
  117. package/src/components/Form/Checkbox.test.tsx +63 -0
  118. package/src/components/Form/Checkbox.tsx +87 -51
  119. package/src/components/Form/Form.stories.tsx +119 -20
  120. package/src/components/Form/FormGroup.stories.tsx +127 -4
  121. package/src/components/Form/Radio.stories.tsx +140 -5
  122. package/src/components/Form/Select.stories.tsx +140 -8
  123. package/src/components/Form/Textarea.stories.tsx +149 -6
  124. package/src/components/Hero/Hero.stories.tsx +333 -32
  125. package/src/components/List/List.stories.tsx +141 -3
  126. package/src/components/Modal/Modal.stories.tsx +181 -42
  127. package/src/components/Popover/Popover.stories.tsx +448 -98
  128. package/src/components/Progress/Progress.stories.tsx +167 -5
  129. package/src/components/River/River.stories.tsx +1 -1
  130. package/src/components/SectionIntro/SectionIntro.stories.tsx +240 -48
  131. package/src/components/Spinner/Spinner.stories.tsx +102 -8
  132. package/src/components/Steps/Steps.stories.tsx +172 -43
  133. package/src/components/Tabs/Tabs.stories.tsx +136 -10
  134. package/src/components/Testimonial/Testimonial.stories.tsx +120 -3
  135. package/src/components/Todo/Todo.stories.tsx +198 -9
  136. package/src/components/Toggle/Toggle.stories.tsx +126 -39
  137. package/src/components/Tooltip/Tooltip.stories.tsx +194 -104
  138. package/src/components/Upload/Upload.stories.tsx +113 -24
  139. package/src/lib/README.md +2 -2
  140. package/src/lib/__tests__/theme-tools.test.ts +193 -0
  141. package/src/lib/composables/index.ts +2 -2
  142. package/src/lib/composables/useAtomixGlass.ts +28 -56
  143. package/src/lib/composables/useChartExport.ts +2 -7
  144. package/src/lib/composables/useDataTable.ts +46 -29
  145. package/src/lib/constants/components.ts +9 -32
  146. package/src/lib/theme/devtools/CLI.ts +1 -1
  147. package/src/lib/types/components.ts +1 -1
  148. package/src/lib/utils/__tests__/csv.test.ts +45 -0
  149. package/src/lib/utils/csv.ts +17 -0
  150. package/src/lib/utils/dataTableExport.ts +1 -10
  151. package/src/styles/01-settings/_index.scss +2 -1
  152. package/src/styles/01-settings/_settings.accordion.scss +28 -7
  153. package/src/styles/01-settings/_settings.colors.scss +11 -11
  154. package/src/styles/01-settings/_settings.typography.scss +5 -5
  155. package/src/styles/02-tools/_tools.utility-api.scss +14 -0
  156. package/src/styles/06-components/_components.accordion.scss +56 -14
  157. package/src/styles/06-components/_components.checkbox.scss +23 -17
  158. package/src/styles/99-utilities/_index.scss +2 -0
  159. package/src/styles/99-utilities/_utilities.scss +3 -1
  160. package/src/styles/99-utilities/_utilities.text-gradient.scss +45 -0
  161. package/themes/dark-complementary/README.md +98 -0
  162. package/themes/dark-complementary/index.scss +158 -0
  163. package/themes/default-light/README.md +81 -0
  164. package/themes/default-light/index.scss +154 -0
  165. package/themes/high-contrast/README.md +105 -0
  166. package/themes/high-contrast/index.scss +172 -0
  167. package/themes/test-theme/README.md +38 -0
  168. package/themes/test-theme/index.scss +47 -0
  169. package/scripts/cli/templates-original-backup.js +0 -1655
  170. package/scripts/cli/templates_backup.js +0 -684
  171. package/src/components/AtomixGlass/stories/AtomixGlass.stories.tsx +0 -1438
  172. package/src/lib/composables/useButton.ts +0 -93
  173. package/src/lib/composables/useCheckbox.ts +0 -70
@@ -1,4 +1,5 @@
1
1
  import type { Meta, StoryObj } from '@storybook/react';
2
+ import { fn } from '@storybook/test';
2
3
  import { 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
- 'The Modal component 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.',
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
- defaultValue: 'md',
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
- defaultValue: true,
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
- defaultValue: true,
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
- defaultValue: true,
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 is some description text. This text is only a placeholder and should be replaced with the actual content of the modal."
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>This modal has a title, subtitle, and footer with action buttons.</p>
141
- <p>The footer is ideal for placing action buttons or other controls.</p>
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
  /**