@shohojdhara/atomix 0.3.15 → 0.4.1

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 (276) hide show
  1. package/build-tools/index.d.ts +31 -30
  2. package/build-tools/package.json +4 -21
  3. package/dist/atomix.css +20234 -2027
  4. package/dist/atomix.css.map +1 -1
  5. package/dist/atomix.min.css +76 -2
  6. package/dist/atomix.min.css.map +1 -1
  7. package/dist/build-tools/index.d.ts +31 -30
  8. package/dist/build-tools/package.json +4 -21
  9. package/dist/charts.js +4 -5
  10. package/dist/charts.js.map +1 -1
  11. package/dist/core.d.ts +87 -10
  12. package/dist/core.js +673 -480
  13. package/dist/core.js.map +1 -1
  14. package/dist/forms.d.ts +15 -3
  15. package/dist/forms.js +530 -97
  16. package/dist/forms.js.map +1 -1
  17. package/dist/heavy.js +5 -6
  18. package/dist/heavy.js.map +1 -1
  19. package/dist/index.d.ts +644 -277
  20. package/dist/index.esm.js +1948 -1347
  21. package/dist/index.esm.js.map +1 -1
  22. package/dist/index.js +3333 -2728
  23. package/dist/index.js.map +1 -1
  24. package/dist/index.min.js +1 -1
  25. package/dist/index.min.js.map +1 -1
  26. package/dist/layout.js.map +1 -1
  27. package/dist/theme.d.ts +9 -9
  28. package/dist/theme.js.map +1 -1
  29. package/package.json +2 -2
  30. package/scripts/atomix-cli.js +10 -1
  31. package/scripts/cli/__tests__/utils.test.js +6 -2
  32. package/scripts/cli/migration-tools.js +2 -2
  33. package/scripts/cli/theme-bridge.js +7 -9
  34. package/scripts/cli/utils.js +2 -1
  35. package/src/components/Accordion/Accordion.stories.tsx +72 -23
  36. package/src/components/Accordion/Accordion.test.tsx +70 -50
  37. package/src/components/Accordion/Accordion.tsx +219 -96
  38. package/src/components/Accordion/AccordionCompound.test.tsx +70 -0
  39. package/src/components/AtomixGlass/AtomixGlass.test.tsx +1 -1
  40. package/src/components/AtomixGlass/GlassFilter.tsx +9 -16
  41. package/src/components/AtomixGlass/glass-utils.ts +4 -3
  42. package/src/components/AtomixGlass/shader-utils.ts +128 -52
  43. package/src/components/AtomixGlass/stories/Playground.stories.tsx +1 -1
  44. package/src/components/AtomixGlass/stories/Shaders.stories.tsx +1 -1
  45. package/src/components/Avatar/Avatar.stories.tsx +45 -62
  46. package/src/components/Avatar/Avatar.tsx +58 -56
  47. package/src/components/Badge/Badge.stories.tsx +20 -9
  48. package/src/components/Badge/Badge.test.tsx +41 -41
  49. package/src/components/Badge/Badge.tsx +64 -62
  50. package/src/components/Block/Block.stories.tsx +14 -4
  51. package/src/components/Breadcrumb/Breadcrumb.stories.tsx +9 -8
  52. package/src/components/Breadcrumb/Breadcrumb.tsx +173 -65
  53. package/src/components/Breadcrumb/BreadcrumbCompound.test.tsx +84 -0
  54. package/src/components/Button/Button.stories.tsx +13 -22
  55. package/src/components/Button/Button.test.tsx +97 -81
  56. package/src/components/Button/Button.tsx +46 -14
  57. package/src/components/Button/ButtonGroup.stories.tsx +37 -32
  58. package/src/components/Button/ButtonGroup.tsx +4 -15
  59. package/src/components/Callout/Callout.stories.tsx +166 -918
  60. package/src/components/Callout/Callout.tsx +196 -84
  61. package/src/components/Callout/CalloutCompound.test.tsx +72 -0
  62. package/src/components/Card/Card.stories.tsx +67 -36
  63. package/src/components/Card/Card.tsx +30 -14
  64. package/src/components/Chart/AreaChart.tsx +1 -1
  65. package/src/components/Chart/CandlestickChart.tsx +23 -16
  66. package/src/components/Chart/Chart.stories.tsx +4 -9
  67. package/src/components/Chart/Chart.tsx +40 -44
  68. package/src/components/Chart/ChartRenderer.tsx +39 -12
  69. package/src/components/Chart/ChartToolbar.tsx +21 -5
  70. package/src/components/Chart/DonutChart.tsx +1 -1
  71. package/src/components/Chart/FunnelChart.tsx +4 -1
  72. package/src/components/Chart/GaugeChart.tsx +3 -1
  73. package/src/components/Chart/HeatmapChart.tsx +50 -37
  74. package/src/components/Chart/LineChart.tsx +3 -2
  75. package/src/components/Chart/MultiAxisChart.tsx +24 -16
  76. package/src/components/Chart/RadarChart.tsx +19 -17
  77. package/src/components/Chart/ScatterChart.tsx +29 -21
  78. package/src/components/ColorModeToggle/ColorModeToggle.stories.tsx +6 -2
  79. package/src/components/ColorModeToggle/ColorModeToggle.tsx +15 -3
  80. package/src/components/Countdown/Countdown.stories.tsx +7 -7
  81. package/src/components/DataTable/DataTable.stories.tsx +43 -38
  82. package/src/components/DataTable/DataTable.test.tsx +26 -148
  83. package/src/components/DataTable/DataTable.tsx +485 -456
  84. package/src/components/DatePicker/DatePicker.stories.tsx +32 -47
  85. package/src/components/DatePicker/DatePicker.tsx +31 -26
  86. package/src/components/Dropdown/Dropdown.stories.tsx +2 -5
  87. package/src/components/Dropdown/Dropdown.tsx +425 -298
  88. package/src/components/Dropdown/DropdownCompound.test.tsx +64 -0
  89. package/src/components/EdgePanel/EdgePanel.stories.tsx +6 -19
  90. package/src/components/EdgePanel/EdgePanel.tsx +163 -113
  91. package/src/components/EdgePanel/EdgePanelCompound.test.tsx +53 -0
  92. package/src/components/Footer/Footer.stories.tsx +21 -16
  93. package/src/components/Footer/Footer.tsx +130 -128
  94. package/src/components/Footer/FooterLink.tsx +2 -2
  95. package/src/components/Form/Checkbox.test.tsx +49 -49
  96. package/src/components/Form/Checkbox.tsx +108 -100
  97. package/src/components/Form/Form.stories.tsx +2 -10
  98. package/src/components/Form/Input.stories.tsx +22 -39
  99. package/src/components/Form/Input.test.tsx +38 -44
  100. package/src/components/Form/Radio.stories.tsx +6 -12
  101. package/src/components/Form/Radio.tsx +68 -66
  102. package/src/components/Form/Select.stories.tsx +23 -0
  103. package/src/components/Form/Select.test.tsx +99 -0
  104. package/src/components/Form/Select.tsx +239 -186
  105. package/src/components/Form/SelectOption.tsx +88 -0
  106. package/src/components/Form/Textarea.test.tsx +27 -32
  107. package/src/components/Hero/Hero.stories.tsx +93 -23
  108. package/src/components/Hero/Hero.test.tsx +142 -0
  109. package/src/components/Hero/Hero.tsx +343 -58
  110. package/src/components/Icon/index.ts +7 -1
  111. package/src/components/List/List.test.tsx +62 -0
  112. package/src/components/List/List.tsx +32 -25
  113. package/src/components/List/ListItem.tsx +20 -0
  114. package/src/components/Modal/Modal.stories.tsx +67 -2
  115. package/src/components/Modal/Modal.tsx +208 -125
  116. package/src/components/Modal/ModalCompound.test.tsx +94 -0
  117. package/src/components/Navigation/Menu/MegaMenu.tsx +70 -70
  118. package/src/components/Navigation/Nav/NavDropdown.tsx +1 -5
  119. package/src/components/Navigation/SideMenu/SideMenu.stories.tsx +128 -28
  120. package/src/components/Navigation/SideMenu/SideMenu.tsx +5 -7
  121. package/src/components/Navigation/SideMenu/SideMenuItem.tsx +4 -5
  122. package/src/components/Pagination/Pagination.stories.tsx +7 -4
  123. package/src/components/Pagination/Pagination.tsx +199 -202
  124. package/src/components/PhotoViewer/PhotoViewer.tsx +4 -1
  125. package/src/components/Popover/Popover.stories.tsx +99 -192
  126. package/src/components/Popover/Popover.tsx +41 -37
  127. package/src/components/Progress/Progress.stories.tsx +35 -44
  128. package/src/components/River/River.stories.tsx +2 -1
  129. package/src/components/SectionIntro/SectionIntro.stories.tsx +71 -71
  130. package/src/components/Slider/Slider.stories.tsx +12 -4
  131. package/src/components/Spinner/Spinner.stories.tsx +3 -1
  132. package/src/components/Spinner/Spinner.test.tsx +23 -23
  133. package/src/components/Spinner/Spinner.tsx +43 -46
  134. package/src/components/Steps/Steps.stories.tsx +8 -6
  135. package/src/components/Steps/Steps.tsx +124 -21
  136. package/src/components/Steps/StepsCompound.test.tsx +81 -0
  137. package/src/components/Tabs/Tabs.stories.tsx +12 -9
  138. package/src/components/Tabs/Tabs.tsx +230 -75
  139. package/src/components/Tabs/TabsCompound.test.tsx +64 -0
  140. package/src/components/Toggle/Toggle.stories.tsx +27 -13
  141. package/src/components/Toggle/Toggle.test.tsx +65 -70
  142. package/src/components/Toggle/Toggle.tsx +4 -1
  143. package/src/components/Tooltip/Tooltip.stories.tsx +24 -20
  144. package/src/components/Tooltip/Tooltip.tsx +104 -106
  145. package/src/components/Upload/Upload.stories.tsx +129 -127
  146. package/src/components/Upload/Upload.tsx +287 -283
  147. package/src/components/VideoPlayer/VideoPlayer.tsx +6 -1
  148. package/src/components/index.ts +13 -2
  149. package/src/layouts/Grid/Grid.stories.tsx +9 -3
  150. package/src/layouts/MasonryGrid/MasonryGrid.tsx +5 -1
  151. package/src/lib/__tests__/theme-tools.test.ts +32 -6
  152. package/src/lib/composables/index.ts +0 -4
  153. package/src/lib/composables/shared-mouse-tracker.ts +13 -14
  154. package/src/lib/composables/useAtomixGlass.ts +102 -60
  155. package/src/lib/composables/useChartExport.ts +1 -1
  156. package/src/lib/composables/useDataTable.ts +29 -17
  157. package/src/lib/composables/useHero.ts +58 -14
  158. package/src/lib/composables/useHeroBackgroundSlider.ts +2 -9
  159. package/src/lib/composables/useInput.ts +10 -8
  160. package/src/lib/composables/useSideMenu.ts +6 -5
  161. package/src/lib/composables/useTooltip.ts +1 -2
  162. package/src/lib/composables/useVideoPlayer.ts +44 -35
  163. package/src/lib/config/index.ts +154 -154
  164. package/src/lib/constants/cssVariables.ts +29 -29
  165. package/src/lib/hooks/__tests__/useComponentCustomization.test.ts +2 -6
  166. package/src/lib/hooks/index.ts +1 -1
  167. package/src/lib/hooks/useComponentCustomization.ts +11 -17
  168. package/src/lib/hooks/usePerformanceMonitor.ts +6 -7
  169. package/src/lib/patterns/__tests__/slots.test.ts +1 -1
  170. package/src/lib/patterns/index.ts +1 -1
  171. package/src/lib/patterns/slots.tsx +8 -13
  172. package/src/lib/storybook/InteractiveDemo.tsx +13 -18
  173. package/src/lib/storybook/PreviewContainer.tsx +1 -1
  174. package/src/lib/storybook/VariantsGrid.tsx +3 -7
  175. package/src/lib/storybook/index.ts +1 -1
  176. package/src/lib/theme/adapters/cssVariableMapper.ts +47 -74
  177. package/src/lib/theme/adapters/index.ts +3 -9
  178. package/src/lib/theme/adapters/themeAdapter.ts +41 -26
  179. package/src/lib/theme/config/index.ts +1 -1
  180. package/src/lib/theme/config/types.ts +2 -2
  181. package/src/lib/theme/config/validator.ts +10 -5
  182. package/src/lib/theme/constants/constants.ts +2 -2
  183. package/src/lib/theme/constants/index.ts +1 -2
  184. package/src/lib/theme/core/__tests__/createTheme.test.ts +20 -22
  185. package/src/lib/theme/core/composeTheme.ts +32 -26
  186. package/src/lib/theme/core/createTheme.ts +1 -1
  187. package/src/lib/theme/core/createThemeObject.ts +308 -301
  188. package/src/lib/theme/core/index.ts +3 -3
  189. package/src/lib/theme/devtools/CLI.ts +105 -111
  190. package/src/lib/theme/devtools/Comparator.tsx +50 -32
  191. package/src/lib/theme/devtools/DesignTokensCustomizer.stories.tsx +50 -48
  192. package/src/lib/theme/devtools/DesignTokensCustomizer.tsx +257 -63
  193. package/src/lib/theme/devtools/Inspector.tsx +75 -60
  194. package/src/lib/theme/devtools/LiveEditor.tsx +97 -76
  195. package/src/lib/theme/devtools/Preview.tsx +150 -106
  196. package/src/lib/theme/devtools/ThemeValidator.ts +29 -21
  197. package/src/lib/theme/devtools/index.ts +3 -9
  198. package/src/lib/theme/devtools/useHistory.ts +23 -21
  199. package/src/lib/theme/errors/errors.ts +12 -11
  200. package/src/lib/theme/errors/index.ts +2 -7
  201. package/src/lib/theme/generators/generateCSS.ts +9 -13
  202. package/src/lib/theme/generators/generateCSSNested.ts +1 -6
  203. package/src/lib/theme/generators/generateCSSVariables.ts +673 -630
  204. package/src/lib/theme/generators/index.ts +1 -4
  205. package/src/lib/theme/i18n/index.ts +1 -1
  206. package/src/lib/theme/i18n/rtl.ts +13 -13
  207. package/src/lib/theme/index.ts +7 -16
  208. package/src/lib/theme/runtime/ThemeApplicator.ts +4 -4
  209. package/src/lib/theme/runtime/ThemeContext.tsx +1 -1
  210. package/src/lib/theme/runtime/ThemeErrorBoundary.tsx +19 -23
  211. package/src/lib/theme/runtime/ThemeProvider.tsx +230 -239
  212. package/src/lib/theme/runtime/__tests__/ThemeProvider.integration.test.tsx +1 -1
  213. package/src/lib/theme/runtime/__tests__/ThemeProvider.test.tsx +24 -29
  214. package/src/lib/theme/runtime/index.ts +2 -5
  215. package/src/lib/theme/runtime/useTheme.ts +18 -18
  216. package/src/lib/theme/runtime/useThemeTokens.ts +22 -22
  217. package/src/lib/theme/test/testTheme.ts +15 -16
  218. package/src/lib/theme/tokens/index.ts +2 -7
  219. package/src/lib/theme/tokens/tokens.ts +25 -24
  220. package/src/lib/theme/types.ts +428 -411
  221. package/src/lib/theme/utils/__tests__/themeValidation.test.ts +3 -3
  222. package/src/lib/theme/utils/componentTheming.ts +18 -18
  223. package/src/lib/theme/utils/domUtils.ts +277 -289
  224. package/src/lib/theme/utils/index.ts +1 -2
  225. package/src/lib/theme/utils/injectCSS.ts +10 -14
  226. package/src/lib/theme/utils/naming.ts +20 -16
  227. package/src/lib/theme/utils/themeHelpers.ts +10 -12
  228. package/src/lib/theme/utils/themeUtils.ts +85 -86
  229. package/src/lib/theme/utils/themeValidation.ts +82 -33
  230. package/src/lib/theme-tools.ts +8 -6
  231. package/src/lib/types/components.ts +180 -73
  232. package/src/lib/types/partProps.ts +1 -1
  233. package/src/lib/utils/__tests__/componentUtils.test.ts +57 -2
  234. package/src/lib/utils/__tests__/csv.test.ts +1 -1
  235. package/src/lib/utils/__tests__/themeNaming.test.ts +117 -0
  236. package/src/lib/utils/componentUtils.ts +8 -12
  237. package/src/lib/utils/csv.ts +3 -1
  238. package/src/lib/utils/dataTableExport.ts +1 -5
  239. package/src/lib/utils/fontPreloader.ts +10 -19
  240. package/src/lib/utils/icons.ts +4 -1
  241. package/src/lib/utils/index.ts +2 -6
  242. package/src/lib/utils/memoryMonitor.ts +10 -8
  243. package/src/lib/utils/themeNaming.ts +3 -3
  244. package/src/styles/01-settings/_index.scss +0 -1
  245. package/src/styles/01-settings/_settings.colors.scss +8 -8
  246. package/src/styles/01-settings/_settings.design-tokens.scss +61 -50
  247. package/src/styles/01-settings/_settings.navbar.scss +1 -1
  248. package/src/styles/01-settings/_settings.spacing.scss +3 -4
  249. package/src/styles/01-settings/_settings.tooltip.scss +1 -1
  250. package/src/styles/01-settings/_settings.typography.scss +1 -1
  251. package/src/styles/02-tools/_tools.breakpoints.scss +1 -1
  252. package/src/styles/02-tools/_tools.button.scss +51 -21
  253. package/src/styles/02-tools/_tools.utility-api.scss +36 -24
  254. package/src/styles/03-generic/_generic.root.scss +4 -3
  255. package/src/styles/06-components/_components.atomix-glass.scss +13 -9
  256. package/src/styles/06-components/_components.button.scss +16 -4
  257. package/src/styles/06-components/_components.callout.scss +27 -21
  258. package/src/styles/06-components/_components.card.scss +5 -14
  259. package/src/styles/06-components/_components.chart.scss +22 -19
  260. package/src/styles/06-components/_components.checkbox.scss +3 -1
  261. package/src/styles/06-components/_components.color-mode-toggle.scss +3 -1
  262. package/src/styles/06-components/_components.edge-panel.scss +9 -2
  263. package/src/styles/06-components/_components.footer.scss +1 -1
  264. package/src/styles/06-components/_components.side-menu.scss +5 -5
  265. package/src/styles/06-components/_components.toggle.scss +18 -0
  266. package/src/styles/06-components/_index.scss +1 -1
  267. package/src/styles/06-components/old.chart.styles.scss +0 -2
  268. package/src/styles/99-utilities/_utilities.border.scss +69 -27
  269. package/src/styles/99-utilities/_utilities.display.scss +1 -1
  270. package/src/styles/99-utilities/_utilities.opacity.scss +10 -0
  271. package/src/styles/99-utilities/_utilities.position.scss +16 -9
  272. package/src/styles/99-utilities/_utilities.scss +1 -1
  273. package/src/styles/99-utilities/_utilities.sizes.scss +47 -18
  274. package/src/styles/99-utilities/_utilities.spacing.scss +118 -66
  275. package/src/styles/99-utilities/_utilities.text-gradient.scss +30 -30
  276. package/src/styles/99-utilities/_utilities.text.scss +67 -47
@@ -179,48 +179,48 @@ export const BasicUsage: Story = {
179
179
  // Size Variants
180
180
  export const SizeVariants: Story = {
181
181
  render: () => (
182
- <div style={{ padding: '30px' }}>
183
- <div style={{ marginBottom: '40px' }}>
184
- <h3 style={{ marginBottom: '20px', fontSize: '18px', fontWeight: '600' }}>Small Size</h3>
185
- <div style={{ maxWidth: '400px' }}>
186
- <Upload
187
- size="sm"
188
- title="Small Upload Area"
189
- supportedFilesText="PDF, JPEG, PNG"
190
- buttonText="Choose File"
191
- helperText="Max: 2MB"
192
- />
182
+ <div style={{ padding: '30px' }}>
183
+ <div style={{ marginBottom: '40px' }}>
184
+ <h3 style={{ marginBottom: '20px', fontSize: '18px', fontWeight: '600' }}>Small Size</h3>
185
+ <div style={{ maxWidth: '400px' }}>
186
+ <Upload
187
+ size="sm"
188
+ title="Small Upload Area"
189
+ supportedFilesText="PDF, JPEG, PNG"
190
+ buttonText="Choose File"
191
+ helperText="Max: 2MB"
192
+ />
193
+ </div>
193
194
  </div>
194
- </div>
195
195
 
196
- <div style={{ marginBottom: '40px' }}>
197
- <h3 style={{ marginBottom: '20px', fontSize: '18px', fontWeight: '600' }}>
198
- Medium Size (Default)
199
- </h3>
200
- <div style={{ maxWidth: '500px' }}>
201
- <Upload
202
- size="md"
203
- title="Drag and Drop files here"
204
- supportedFilesText="Files supported: PDF, XSLS, JPEG, PNG, Scanner"
205
- buttonText="Choose File"
206
- helperText="Maximum size: 5MB"
207
- />
196
+ <div style={{ marginBottom: '40px' }}>
197
+ <h3 style={{ marginBottom: '20px', fontSize: '18px', fontWeight: '600' }}>
198
+ Medium Size (Default)
199
+ </h3>
200
+ <div style={{ maxWidth: '500px' }}>
201
+ <Upload
202
+ size="md"
203
+ title="Drag and Drop files here"
204
+ supportedFilesText="Files supported: PDF, XSLS, JPEG, PNG, Scanner"
205
+ buttonText="Choose File"
206
+ helperText="Maximum size: 5MB"
207
+ />
208
+ </div>
208
209
  </div>
209
- </div>
210
210
 
211
- <div>
212
- <h3 style={{ marginBottom: '20px', fontSize: '18px', fontWeight: '600' }}>Large Size</h3>
213
- <div style={{ maxWidth: '700px' }}>
214
- <Upload
215
- size="lg"
216
- title="Drop your files here for upload"
217
- supportedFilesText="Supported formats: PDF, Excel, Word, Images, and more"
218
- buttonText="Browse Files"
219
- helperText="Maximum file size: 10MB per file"
220
- />
211
+ <div>
212
+ <h3 style={{ marginBottom: '20px', fontSize: '18px', fontWeight: '600' }}>Large Size</h3>
213
+ <div style={{ maxWidth: '700px' }}>
214
+ <Upload
215
+ size="lg"
216
+ title="Drop your files here for upload"
217
+ supportedFilesText="Supported formats: PDF, Excel, Word, Images, and more"
218
+ buttonText="Browse Files"
219
+ helperText="Maximum file size: 10MB per file"
220
+ />
221
+ </div>
221
222
  </div>
222
223
  </div>
223
- </div>
224
224
  ),
225
225
  parameters: {
226
226
  docs: {
@@ -472,73 +472,73 @@ export const DragDropDemo: Story = {
472
472
  const [dragState, setDragState] = useState<'idle' | 'dragging'>('idle');
473
473
  const [uploadedFiles, setUploadedFiles] = useState<string[]>([]);
474
474
 
475
- const handleFileSelect = (files: File[]) => {
476
- const fileNames = files.map(file => file.name);
477
- setUploadedFiles(prev => [...prev, ...fileNames]);
478
- };
479
-
480
- return (
481
- <div style={{ padding: '30px' }}>
482
- <div style={{ marginBottom: '20px' }}>
483
- <h3 style={{ fontSize: '18px', fontWeight: '600', marginBottom: '10px' }}>
484
- Interactive Drag & Drop Demo
485
- </h3>
486
- <p style={{ color: '#666', fontSize: '14px', marginBottom: '20px' }}>
487
- Try dragging files over the upload area to see the hover effects, or click to select
488
- files.
489
- </p>
490
- </div>
475
+ const handleFileSelect = (files: File[]) => {
476
+ const fileNames = files.map(file => file.name);
477
+ setUploadedFiles(prev => [...prev, ...fileNames]);
478
+ };
479
+
480
+ return (
481
+ <div style={{ padding: '30px' }}>
482
+ <div style={{ marginBottom: '20px' }}>
483
+ <h3 style={{ fontSize: '18px', fontWeight: '600', marginBottom: '10px' }}>
484
+ Interactive Drag & Drop Demo
485
+ </h3>
486
+ <p style={{ color: '#666', fontSize: '14px', marginBottom: '20px' }}>
487
+ Try dragging files over the upload area to see the hover effects, or click to select
488
+ files.
489
+ </p>
490
+ </div>
491
491
 
492
- <div style={{ maxWidth: '600px', marginBottom: '20px' }}>
493
- <Upload
494
- title="Drag files here to see the magic ✨"
495
- supportedFilesText="PDF, Images, Documents - All welcome!"
496
- buttonText="Or click to browse"
497
- helperText="Watch the upload area respond to your interactions"
498
- onFileSelect={handleFileSelect}
499
- multiple={true}
500
- />
501
- </div>
492
+ <div style={{ maxWidth: '600px', marginBottom: '20px' }}>
493
+ <Upload
494
+ title="Drag files here to see the magic ✨"
495
+ supportedFilesText="PDF, Images, Documents - All welcome!"
496
+ buttonText="Or click to browse"
497
+ helperText="Watch the upload area respond to your interactions"
498
+ onFileSelect={handleFileSelect}
499
+ multiple={true}
500
+ />
501
+ </div>
502
502
 
503
- {uploadedFiles.length > 0 && (
504
- <div
505
- style={{
506
- padding: '16px',
507
- backgroundColor: '#f8f9fa',
508
- borderRadius: '8px',
509
- border: '1px solid #e9ecef',
510
- }}
511
- >
512
- <h4
513
- style={{ fontSize: '14px', fontWeight: '600', marginBottom: '8px', color: '#495057' }}
514
- >
515
- Selected Files:
516
- </h4>
517
- <ul style={{ margin: 0, paddingLeft: '20px' }}>
518
- {uploadedFiles.map((fileName, index) => (
519
- <li key={index} style={{ fontSize: '14px', color: '#6c757d', marginBottom: '4px' }}>
520
- {fileName}
521
- </li>
522
- ))}
523
- </ul>
524
- <button
525
- onClick={() => setUploadedFiles([])}
503
+ {uploadedFiles.length > 0 && (
504
+ <div
526
505
  style={{
527
- marginTop: '12px',
528
- padding: '6px 12px',
529
- fontSize: '12px',
530
- backgroundColor: '#6c757d',
531
- color: 'white',
532
- border: 'none',
533
- borderRadius: '4px',
534
- cursor: 'pointer',
506
+ padding: '16px',
507
+ backgroundColor: '#f8f9fa',
508
+ borderRadius: '8px',
509
+ border: '1px solid #e9ecef',
535
510
  }}
536
511
  >
537
- Clear List
538
- </button>
539
- </div>
540
- )}
541
- </div>
512
+ <h4
513
+ style={{ fontSize: '14px', fontWeight: '600', marginBottom: '8px', color: '#495057' }}
514
+ >
515
+ Selected Files:
516
+ </h4>
517
+ <ul style={{ margin: 0, paddingLeft: '20px' }}>
518
+ {uploadedFiles.map((fileName, index) => (
519
+ <li key={index} style={{ fontSize: '14px', color: '#6c757d', marginBottom: '4px' }}>
520
+ {fileName}
521
+ </li>
522
+ ))}
523
+ </ul>
524
+ <button
525
+ onClick={() => setUploadedFiles([])}
526
+ style={{
527
+ marginTop: '12px',
528
+ padding: '6px 12px',
529
+ fontSize: '12px',
530
+ backgroundColor: '#6c757d',
531
+ color: 'white',
532
+ border: 'none',
533
+ borderRadius: '4px',
534
+ cursor: 'pointer',
535
+ }}
536
+ >
537
+ Clear List
538
+ </button>
539
+ </div>
540
+ )}
541
+ </div>
542
542
  );
543
543
  },
544
544
  parameters: {
@@ -555,39 +555,41 @@ export const DragDropDemo: Story = {
555
555
  export const FileTypeRestrictions: Story = {
556
556
  render: () => (
557
557
  <div style={{ padding: '30px' }}>
558
- <div style={{ marginBottom: '40px' }}>
559
- <h3 style={{ marginBottom: '20px', fontSize: '18px', fontWeight: '600' }}>Images Only</h3>
560
- <div style={{ maxWidth: '500px' }}>
561
- <Upload
562
- title="Upload Images"
563
- supportedFilesText="JPEG, PNG, GIF, WebP"
564
- buttonText="Choose Images"
565
- helperText="Maximum size: 10MB"
566
- acceptedFileTypes={['image/jpeg', 'image/png', 'image/gif', 'image/webp']}
567
- multiple={true}
568
- />
558
+ <div style={{ marginBottom: '40px' }}>
559
+ <h3 style={{ marginBottom: '20px', fontSize: '18px', fontWeight: '600' }}>Images Only</h3>
560
+ <div style={{ maxWidth: '500px' }}>
561
+ <Upload
562
+ title="Upload Images"
563
+ supportedFilesText="JPEG, PNG, GIF, WebP"
564
+ buttonText="Choose Images"
565
+ helperText="Maximum size: 10MB"
566
+ acceptedFileTypes={['image/jpeg', 'image/png', 'image/gif', 'image/webp']}
567
+ multiple={true}
568
+ />
569
+ </div>
569
570
  </div>
570
- </div>
571
571
 
572
- <div style={{ marginBottom: '40px' }}>
573
- <h3 style={{ marginBottom: '20px', fontSize: '18px', fontWeight: '600' }}>Documents Only</h3>
574
- <div style={{ maxWidth: '500px' }}>
575
- <Upload
576
- title="Upload Documents"
577
- supportedFilesText="PDF, Word, Excel, PowerPoint"
578
- buttonText="Choose Documents"
579
- helperText="Maximum size: 25MB"
580
- acceptedFileTypes={[
581
- 'application/pdf',
582
- 'application/msword',
583
- 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
584
- 'application/vnd.ms-excel',
585
- 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
586
- ]}
587
- />
572
+ <div style={{ marginBottom: '40px' }}>
573
+ <h3 style={{ marginBottom: '20px', fontSize: '18px', fontWeight: '600' }}>
574
+ Documents Only
575
+ </h3>
576
+ <div style={{ maxWidth: '500px' }}>
577
+ <Upload
578
+ title="Upload Documents"
579
+ supportedFilesText="PDF, Word, Excel, PowerPoint"
580
+ buttonText="Choose Documents"
581
+ helperText="Maximum size: 25MB"
582
+ acceptedFileTypes={[
583
+ 'application/pdf',
584
+ 'application/msword',
585
+ 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
586
+ 'application/vnd.ms-excel',
587
+ 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
588
+ ]}
589
+ />
590
+ </div>
588
591
  </div>
589
592
  </div>
590
- </div>
591
593
  ),
592
594
  parameters: {
593
595
  docs: {