@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,10 +1,15 @@
1
1
  import type { Meta, StoryObj } from '@storybook/react';
2
+ import { fn } from '@storybook/test';
2
3
  import { Grid } from '../../layouts/Grid/Grid';
3
4
  import GridCol from '../../layouts/Grid/GridCol';
4
5
  import { Button } from '../Button/Button';
5
6
  import { Card } from '../Card/Card';
6
7
  import { Block } from './Block';
7
8
 
9
+ // ============================================================================
10
+ // META CONFIGURATION
11
+ // ============================================================================
12
+
8
13
  const meta = {
9
14
  title: 'Components/Block',
10
15
  component: Block,
@@ -43,8 +48,12 @@ const meta = {
43
48
  export default meta;
44
49
  type Story = StoryObj<typeof meta>;
45
50
 
51
+ // ============================================================================
52
+ // STORY IMPLEMENTATIONS
53
+ // ============================================================================
54
+
46
55
  // Basic usage
47
- export const Default: Story = {
56
+ export const BasicUsage: Story = {
48
57
  args: {
49
58
  children: (
50
59
  <div>
@@ -100,7 +109,7 @@ export const HeroSection: Story = {
100
109
  <div className="u-text-center">
101
110
  <h1>Welcome to Our Platform</h1>
102
111
  <p>Experience the power of modern web development with our comprehensive design system.</p>
103
- <Button size="lg" variant="secondary">
112
+ <Button size="lg" variant="secondary" onClick={fn()}>
104
113
  Get Started
105
114
  </Button>
106
115
  </div>
@@ -169,7 +178,7 @@ export const ArticleLayout: Story = {
169
178
  <Block spacing="md" container={{ type: 'sm' }} background="secondary">
170
179
  <h3>Ready to get started?</h3>
171
180
  <p>Join thousands of developers building with our design system.</p>
172
- <Button variant="primary">Start Building</Button>
181
+ <Button variant="primary" onClick={fn()}>Start Building</Button>
173
182
  </Block>
174
183
  </div>
175
184
  ),
@@ -292,10 +301,10 @@ export const ContentPreview: Story = {
292
301
  A comprehensive design system with reusable components and consistent design patterns
293
302
  </p>
294
303
  <div className="u-mb-4">
295
- <Button size="lg" variant="secondary" className="u-me-2">
304
+ <Button size="lg" variant="secondary" className="u-me-2" onClick={fn()}>
296
305
  Get Started
297
306
  </Button>
298
- <Button size="lg" variant="invert" className="u-ms-2">
307
+ <Button size="lg" variant="invert" className="u-ms-2" onClick={fn()}>
299
308
  Learn More
300
309
  </Button>
301
310
  </div>
@@ -311,10 +320,10 @@ export const ContentPreview: Story = {
311
320
  text="Multiple variants and sizes for all use cases"
312
321
  actions={
313
322
  <div>
314
- <Button variant="primary" size="sm" className="u-me-1">
323
+ <Button variant="primary" size="sm" className="u-me-1" onClick={fn()}>
315
324
  Primary
316
325
  </Button>
317
- <Button variant="secondary" size="sm">
326
+ <Button variant="secondary" size="sm" onClick={fn()}>
318
327
  Secondary
319
328
  </Button>
320
329
  </div>
@@ -325,14 +334,14 @@ export const ContentPreview: Story = {
325
334
  <Card
326
335
  title="Cards"
327
336
  text="Flexible content containers with multiple options"
328
- actions={<Button variant="primary">View Details</Button>}
337
+ actions={<Button variant="primary" onClick={fn()}>View Details</Button>}
329
338
  />
330
339
  </GridCol>
331
340
  <GridCol xs={12} md={6} lg={4}>
332
341
  <Card
333
342
  title="Blocks"
334
343
  text="Layout containers with consistent spacing and backgrounds"
335
- actions={<Button variant="primary">Learn More</Button>}
344
+ actions={<Button variant="primary" onClick={fn()}>Learn More</Button>}
336
345
  />
337
346
  </GridCol>
338
347
  </Grid>
@@ -378,10 +387,10 @@ export const ContentPreview: Story = {
378
387
  Join thousands of developers and designers building with Atomix Design System
379
388
  </p>
380
389
  <div>
381
- <Button size="lg" variant="primary" className="u-me-2">
390
+ <Button size="lg" variant="primary" className="u-me-2" onClick={fn()}>
382
391
  Documentation
383
392
  </Button>
384
- <Button size="lg" variant="secondary" className="u-ms-2">
393
+ <Button size="lg" variant="secondary" className="u-ms-2" onClick={fn()}>
385
394
  Examples
386
395
  </Button>
387
396
  </div>
@@ -389,4 +398,4 @@ export const ContentPreview: Story = {
389
398
  </Block>
390
399
  </div>
391
400
  ),
392
- };
401
+ };
@@ -1,33 +1,78 @@
1
1
  import type { Meta, StoryObj } from '@storybook/react';
2
+ import { fn } from '@storybook/test';
2
3
  import { Icon } from '../Icon';
3
4
  import { Breadcrumb } from './Breadcrumb';
4
5
 
5
- const meta = {
6
+ const meta: Meta<typeof Breadcrumb> = {
6
7
  title: 'Components/Breadcrumb',
7
8
  component: Breadcrumb,
8
9
  parameters: {
9
- layout: 'centered',
10
+ layout: 'padded',
10
11
  docs: {
11
12
  description: {
12
- component:
13
- 'The Breadcrumb component provides navigation context by showing the current page location within a site hierarchy. It helps users understand where they are and provides quick navigation to parent pages. Breadcrumbs support custom dividers, icons, and are fully accessible.',
13
+ component: `
14
+ # Breadcrumb Component
15
+
16
+ The Breadcrumb component provides navigation context by showing the current page location within a site hierarchy. It helps users understand where they are and provides quick navigation to parent pages. Breadcrumbs support custom dividers, icons, and are fully accessible.
17
+
18
+ ## Features
19
+ - Clear hierarchical navigation
20
+ - Support for custom dividers
21
+ - Icon integration
22
+ - Keyboard navigation support
23
+ - Full accessibility compliance
24
+ - Responsive design
25
+
26
+ ## Accessibility
27
+ - Semantic navigation landmark with aria-label
28
+ - Proper heading order
29
+ - Keyboard navigation support (Tab, Enter, Space)
30
+ - Screen reader friendly markup
31
+ `,
14
32
  },
15
33
  },
16
34
  },
17
35
  tags: ['autodocs'],
18
36
  argTypes: {
19
- items: { control: 'object' },
20
- divider: { control: 'text' },
21
- className: { control: 'text' },
22
- 'aria-label': { control: 'text' },
37
+ items: {
38
+ control: 'object',
39
+ description: 'Array of breadcrumb items with label, href, and optional properties',
40
+ table: {
41
+ type: { summary: 'BreadcrumbItem[]' },
42
+ defaultValue: { summary: '[]' },
43
+ },
44
+ },
45
+ divider: {
46
+ control: 'text',
47
+ description: 'Custom divider character or component between breadcrumb items',
48
+ table: {
49
+ type: { summary: 'string | ReactNode' },
50
+ defaultValue: { summary: '>' },
51
+ },
52
+ },
53
+ className: {
54
+ control: 'text',
55
+ description: 'Additional CSS classes',
56
+ table: {
57
+ type: { summary: 'string' },
58
+ },
59
+ },
60
+ 'aria-label': {
61
+ control: 'text',
62
+ description: 'Label for the navigation landmark',
63
+ table: {
64
+ type: { summary: 'string' },
65
+ defaultValue: { summary: 'Breadcrumb' },
66
+ },
67
+ },
23
68
  },
24
69
  } satisfies Meta<typeof Breadcrumb>;
25
70
 
26
71
  export default meta;
27
72
  type Story = StoryObj<typeof meta>;
28
73
 
29
- // Default Breadcrumb
30
- export const Default: Story = {
74
+ // Basic Breadcrumb
75
+ export const BasicUsage: Story = {
31
76
  args: {
32
77
  items: [
33
78
  { label: 'Home', href: '/' },
@@ -36,6 +81,13 @@ export const Default: Story = {
36
81
  { label: 'Product Name', active: true },
37
82
  ],
38
83
  },
84
+ parameters: {
85
+ docs: {
86
+ description: {
87
+ story: 'Simple breadcrumb with basic text links showing site hierarchy.',
88
+ },
89
+ },
90
+ },
39
91
  };
40
92
 
41
93
  // Breadcrumb with Icons
@@ -64,10 +116,17 @@ export const WithIcons: Story = {
64
116
  },
65
117
  ],
66
118
  },
119
+ parameters: {
120
+ docs: {
121
+ description: {
122
+ story: 'Breadcrumb with icons for each item to enhance visual recognition.',
123
+ },
124
+ },
125
+ },
67
126
  };
68
127
 
69
128
  // Breadcrumb with Custom Divider
70
- export const CustomDivider: Story = {
129
+ export const WithCustomDivider: Story = {
71
130
  args: {
72
131
  items: [
73
132
  { label: 'Home', href: '/' },
@@ -77,6 +136,13 @@ export const CustomDivider: Story = {
77
136
  ],
78
137
  divider: '/',
79
138
  },
139
+ parameters: {
140
+ docs: {
141
+ description: {
142
+ story: 'Breadcrumb with custom divider character instead of the default arrow.',
143
+ },
144
+ },
145
+ },
80
146
  };
81
147
 
82
148
  // Breadcrumb with Click Handlers
@@ -86,28 +152,80 @@ export const WithClickHandlers: Story = {
86
152
  {
87
153
  label: 'Home',
88
154
  href: '/',
89
- onClick: e => {
90
- e.preventDefault();
91
- alert('Home clicked');
92
- },
155
+ onClick: fn(),
93
156
  },
94
157
  {
95
158
  label: 'Products',
96
159
  href: '/products',
97
- onClick: e => {
98
- e.preventDefault();
99
- alert('Products clicked');
100
- },
160
+ onClick: fn(),
101
161
  },
102
162
  {
103
163
  label: 'Category',
104
164
  href: '/products/category',
105
- onClick: e => {
106
- e.preventDefault();
107
- alert('Category clicked');
108
- },
165
+ onClick: fn(),
109
166
  },
110
167
  { label: 'Product Name', active: true },
111
168
  ],
112
169
  },
170
+ parameters: {
171
+ docs: {
172
+ description: {
173
+ story: 'Breadcrumb with click handlers to demonstrate client-side navigation.',
174
+ },
175
+ },
176
+ },
177
+ };
178
+
179
+ // Breadcrumb with Mixed Interactions
180
+ export const WithMixedInteractions: Story = {
181
+ args: {
182
+ items: [
183
+ { label: 'Home', href: '/' },
184
+ {
185
+ label: 'Products',
186
+ onClick: fn(),
187
+ // Simulating client-side navigation
188
+ },
189
+ {
190
+ label: 'Category',
191
+ href: '/products/category',
192
+ icon: <Icon name="Folder" size="sm" />,
193
+ },
194
+ {
195
+ label: 'Product Name',
196
+ active: true,
197
+ icon: <Icon name="Tag" size="sm" />,
198
+ },
199
+ ],
200
+ divider: '|',
201
+ },
202
+ parameters: {
203
+ docs: {
204
+ description: {
205
+ story: 'Breadcrumb combining both traditional link navigation and client-side interactions.',
206
+ },
207
+ },
208
+ },
113
209
  };
210
+
211
+ // Long Breadcrumb Path
212
+ export const LongBreadcrumbPath: Story = {
213
+ args: {
214
+ items: [
215
+ { label: 'Home', href: '/' },
216
+ { label: 'Products', href: '/products' },
217
+ { label: 'Electronics', href: '/products/electronics' },
218
+ { label: 'Computers', href: '/products/electronics/computers' },
219
+ { label: 'Laptops', href: '/products/electronics/computers/laptops' },
220
+ { label: 'Gaming Laptops', href: '/products/electronics/computers/laptops/gaming' },
221
+ { label: 'Current Product', active: true },
222
+ ],
223
+ },
224
+ parameters: {
225
+ docs: {
226
+ description: {
227
+ story: 'Long breadcrumb path demonstrating responsive behavior with many levels.',
228
+ },
229
+ },
230
+ },
231
+ };