@shohojdhara/atomix 0.2.3 → 0.2.5

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 (225) hide show
  1. package/README.md +19 -0
  2. package/dist/atomix.css +1703 -1544
  3. package/dist/atomix.min.css +4 -4
  4. package/dist/index.d.ts +1465 -963
  5. package/dist/index.esm.js +16289 -25908
  6. package/dist/index.esm.js.map +1 -1
  7. package/dist/index.js +15650 -21780
  8. package/dist/index.js.map +1 -1
  9. package/dist/index.min.js +1 -1
  10. package/dist/index.min.js.map +1 -1
  11. package/dist/themes/applemix.css +15008 -0
  12. package/dist/themes/applemix.min.css +72 -0
  13. package/dist/themes/boomdevs.css +1608 -1450
  14. package/dist/themes/boomdevs.min.css +5 -5
  15. package/dist/themes/esrar.css +1702 -1543
  16. package/dist/themes/esrar.min.css +4 -4
  17. package/dist/themes/flashtrade.css +15159 -0
  18. package/dist/themes/flashtrade.min.css +86 -0
  19. package/dist/themes/mashroom.css +1699 -1540
  20. package/dist/themes/mashroom.min.css +7 -7
  21. package/dist/themes/shaj-default.css +1693 -1534
  22. package/dist/themes/shaj-default.min.css +4 -4
  23. package/package.json +6 -17
  24. package/src/components/Accordion/Accordion.stories.tsx +662 -21
  25. package/src/components/Accordion/Accordion.tsx +21 -14
  26. package/src/components/AtomixGlass/AtomixGlass.test.tsx +106 -72
  27. package/src/components/AtomixGlass/AtomixGlass.tsx +529 -1195
  28. package/src/components/AtomixGlass/AtomixGlassContainer.tsx +400 -0
  29. package/src/components/AtomixGlass/GlassFilter.tsx +156 -0
  30. package/src/components/AtomixGlass/README.md +124 -2
  31. package/src/components/AtomixGlass/atomixGLass.old.tsx +1266 -0
  32. package/src/components/AtomixGlass/glass-utils.ts +263 -0
  33. package/src/components/AtomixGlass/shader-utils.ts +792 -68
  34. package/src/components/AtomixGlass/stories/AtomixGlass.stories.tsx +1250 -0
  35. package/src/components/AtomixGlass/stories/Examples.stories.tsx +5768 -0
  36. package/src/components/AtomixGlass/stories/Modes.stories.tsx +1065 -0
  37. package/src/components/AtomixGlass/stories/Playground.stories.tsx +1129 -0
  38. package/src/components/AtomixGlass/stories/ShaderVariants.stories.tsx +395 -0
  39. package/src/components/AtomixGlass/stories/shared-components.tsx +301 -0
  40. package/src/components/AtomixGlass/utils.ts +3 -3
  41. package/src/components/Avatar/Avatar.tsx +3 -0
  42. package/src/components/Avatar/AvatarGroup.tsx +2 -1
  43. package/src/components/Badge/Badge.stories.tsx +76 -55
  44. package/src/components/Badge/Badge.tsx +12 -14
  45. package/src/components/Breadcrumb/Breadcrumb.tsx +23 -4
  46. package/src/components/Button/Button.stories.tsx +501 -20
  47. package/src/components/Button/Button.tsx +5 -8
  48. package/src/components/Callout/Callout.stories.tsx +86 -35
  49. package/src/components/Callout/Callout.tsx +31 -9
  50. package/src/components/Card/Card.stories.tsx +565 -2
  51. package/src/components/Card/Card.tsx +15 -4
  52. package/src/components/Card/ElevationCard.tsx +2 -0
  53. package/src/components/Chart/AnimatedChart.tsx +179 -156
  54. package/src/components/Chart/AreaChart.tsx +123 -12
  55. package/src/components/Chart/BarChart.tsx +91 -100
  56. package/src/components/Chart/BaseChart.tsx +80 -0
  57. package/src/components/Chart/BubbleChart.tsx +114 -290
  58. package/src/components/Chart/CandlestickChart.tsx +282 -622
  59. package/src/components/Chart/Chart.stories.tsx +576 -179
  60. package/src/components/Chart/Chart.tsx +374 -75
  61. package/src/components/Chart/ChartRenderer.tsx +371 -220
  62. package/src/components/Chart/ChartToolbar.tsx +372 -61
  63. package/src/components/Chart/ChartTooltip.tsx +33 -18
  64. package/src/components/Chart/DonutChart.tsx +172 -254
  65. package/src/components/Chart/FunnelChart.tsx +169 -240
  66. package/src/components/Chart/GaugeChart.tsx +224 -392
  67. package/src/components/Chart/HeatmapChart.tsx +302 -440
  68. package/src/components/Chart/LineChart.tsx +148 -103
  69. package/src/components/Chart/MultiAxisChart.tsx +267 -395
  70. package/src/components/Chart/PieChart.tsx +114 -64
  71. package/src/components/Chart/RadarChart.tsx +202 -218
  72. package/src/components/Chart/ScatterChart.tsx +111 -97
  73. package/src/components/Chart/TreemapChart.tsx +147 -222
  74. package/src/components/Chart/WaterfallChart.tsx +253 -291
  75. package/src/components/Chart/index.ts +11 -9
  76. package/src/components/Chart/types.ts +85 -9
  77. package/src/components/Chart/utils.ts +66 -0
  78. package/src/components/ColorModeToggle/ColorModeToggle.tsx +6 -3
  79. package/src/components/Countdown/Countdown.tsx +4 -0
  80. package/src/components/DataTable/DataTable.tsx +2 -1
  81. package/src/components/DatePicker/DatePicker.stories.tsx +689 -12
  82. package/src/components/DatePicker/DatePicker.tsx +3 -9
  83. package/src/components/DatePicker/types.ts +5 -0
  84. package/src/components/Dropdown/Dropdown.stories.tsx +32 -25
  85. package/src/components/Dropdown/Dropdown.tsx +26 -28
  86. package/src/components/EdgePanel/EdgePanel.stories.tsx +473 -2
  87. package/src/components/EdgePanel/EdgePanel.tsx +101 -13
  88. package/src/components/Footer/Footer.stories.tsx +187 -60
  89. package/src/components/Footer/Footer.test.tsx +134 -0
  90. package/src/components/Footer/Footer.tsx +133 -34
  91. package/src/components/Footer/FooterLink.tsx +1 -1
  92. package/src/components/Footer/FooterSection.tsx +53 -36
  93. package/src/components/Footer/FooterSocialLink.tsx +32 -29
  94. package/src/components/Footer/README.md +82 -3
  95. package/src/components/Footer/index.ts +1 -1
  96. package/src/components/Form/Checkbox.stories.tsx +13 -5
  97. package/src/components/Form/Checkbox.tsx +3 -6
  98. package/src/components/Form/Form.stories.tsx +10 -3
  99. package/src/components/Form/Form.tsx +2 -0
  100. package/src/components/Form/FormGroup.tsx +2 -1
  101. package/src/components/Form/Input.stories.tsx +12 -11
  102. package/src/components/Form/Input.tsx +97 -95
  103. package/src/components/Form/Radio.stories.tsx +22 -7
  104. package/src/components/Form/Radio.tsx +3 -6
  105. package/src/components/Form/Select.stories.tsx +21 -6
  106. package/src/components/Form/Select.tsx +3 -5
  107. package/src/components/Form/Textarea.stories.tsx +13 -11
  108. package/src/components/Form/Textarea.tsx +88 -86
  109. package/src/components/Hero/Hero.stories.tsx +2 -3
  110. package/src/components/Hero/Hero.tsx +5 -6
  111. package/src/components/Icon/Icon.tsx +12 -1
  112. package/src/components/List/List.tsx +2 -1
  113. package/src/components/List/ListGroup.tsx +2 -1
  114. package/src/components/Messages/Messages.stories.tsx +113 -0
  115. package/src/components/Messages/Messages.tsx +52 -9
  116. package/src/components/Modal/Modal.stories.tsx +48 -32
  117. package/src/components/Modal/Modal.tsx +19 -24
  118. package/src/components/Navigation/Menu/MegaMenu.tsx +2 -2
  119. package/src/components/Navigation/Menu/Menu.tsx +2 -2
  120. package/src/components/Navigation/Nav/Nav.stories.tsx +469 -0
  121. package/src/components/Navigation/Nav/Nav.tsx +22 -4
  122. package/src/components/Navigation/Nav/NavDropdown.tsx +10 -1
  123. package/src/components/Navigation/Navbar/Navbar.stories.tsx +413 -0
  124. package/src/components/Navigation/Navbar/Navbar.tsx +70 -29
  125. package/src/components/Navigation/SideMenu/SideMenu.stories.tsx +340 -0
  126. package/src/components/Navigation/SideMenu/SideMenu.tsx +29 -2
  127. package/src/components/Pagination/Pagination.stories.tsx +13 -6
  128. package/src/components/Pagination/Pagination.tsx +7 -6
  129. package/src/components/PhotoViewer/PhotoViewer.tsx +2 -1
  130. package/src/components/Popover/Popover.stories.tsx +32 -24
  131. package/src/components/Popover/Popover.tsx +4 -1
  132. package/src/components/ProductReview/ProductReview.tsx +8 -2
  133. package/src/components/Progress/Progress.tsx +19 -3
  134. package/src/components/Rating/Rating.stories.tsx +11 -6
  135. package/src/components/Rating/Rating.tsx +3 -5
  136. package/src/components/River/River.tsx +5 -5
  137. package/src/components/SectionIntro/SectionIntro.tsx +8 -2
  138. package/src/components/Slider/Slider.stories.tsx +4 -4
  139. package/src/components/Slider/Slider.tsx +4 -3
  140. package/src/components/Spinner/Spinner.tsx +19 -3
  141. package/src/components/Steps/Steps.stories.tsx +5 -4
  142. package/src/components/Steps/Steps.tsx +8 -5
  143. package/src/components/Tab/Tab.stories.tsx +4 -3
  144. package/src/components/Tab/Tab.tsx +8 -6
  145. package/src/components/Testimonial/Testimonial.tsx +8 -2
  146. package/src/components/Todo/Todo.tsx +2 -1
  147. package/src/components/Toggle/Toggle.stories.tsx +5 -4
  148. package/src/components/Toggle/Toggle.tsx +8 -5
  149. package/src/components/Tooltip/Tooltip.stories.tsx +40 -30
  150. package/src/components/Tooltip/Tooltip.tsx +9 -2
  151. package/src/components/Upload/Upload.stories.tsx +252 -0
  152. package/src/components/Upload/Upload.tsx +92 -53
  153. package/src/components/VideoPlayer/VideoPlayer.tsx +3 -1
  154. package/src/components/index.ts +0 -4
  155. package/src/layouts/Grid/Grid.stories.tsx +10 -23
  156. package/src/layouts/Grid/Grid.tsx +20 -1
  157. package/src/layouts/Grid/GridCol.tsx +76 -48
  158. package/src/lib/composables/useAtomixGlass.ts +861 -44
  159. package/src/lib/composables/useBarChart.ts +21 -4
  160. package/src/lib/composables/useChart.ts +227 -370
  161. package/src/lib/composables/useChartExport.ts +19 -78
  162. package/src/lib/composables/useChartToolbar.ts +11 -21
  163. package/src/lib/composables/useEdgePanel.ts +125 -71
  164. package/src/lib/composables/useFooter.ts +3 -3
  165. package/src/lib/composables/useGlassContainer.ts +16 -7
  166. package/src/lib/composables/useLineChart.ts +11 -2
  167. package/src/lib/composables/usePieChart.ts +4 -14
  168. package/src/lib/composables/useRiver.ts +5 -0
  169. package/src/lib/composables/useSlider.ts +62 -24
  170. package/src/lib/composables/useVideoPlayer.ts +60 -63
  171. package/src/lib/constants/components.ts +147 -32
  172. package/src/lib/types/components.ts +355 -25
  173. package/src/lib/utils/displacement-generator.ts +55 -49
  174. package/src/lib/utils/icons.ts +1 -1
  175. package/src/lib/utils/index.ts +16 -10
  176. package/src/styles/01-settings/_settings.accordion.scss +19 -19
  177. package/src/styles/01-settings/_settings.animations.scss +5 -5
  178. package/src/styles/01-settings/_settings.avatar-group.scss +1 -1
  179. package/src/styles/01-settings/_settings.avatar.scss +17 -17
  180. package/src/styles/01-settings/_settings.background.scss +0 -3
  181. package/src/styles/01-settings/_settings.badge.scss +1 -1
  182. package/src/styles/01-settings/_settings.breadcrumb.scss +1 -1
  183. package/src/styles/01-settings/_settings.card.scss +1 -1
  184. package/src/styles/01-settings/_settings.chart.scss +65 -2
  185. package/src/styles/01-settings/_settings.dropdown.scss +1 -1
  186. package/src/styles/01-settings/_settings.edge-panel.scss +1 -1
  187. package/src/styles/01-settings/_settings.footer.scss +35 -42
  188. package/src/styles/01-settings/_settings.input.scss +1 -1
  189. package/src/styles/01-settings/_settings.list.scss +1 -1
  190. package/src/styles/01-settings/_settings.rating.scss +1 -1
  191. package/src/styles/01-settings/_settings.tabs.scss +1 -1
  192. package/src/styles/01-settings/_settings.upload.scss +6 -5
  193. package/src/styles/02-tools/_tools.animations.scss +4 -5
  194. package/src/styles/02-tools/_tools.background.scss +1 -13
  195. package/src/styles/02-tools/_tools.glass.scss +0 -1
  196. package/src/styles/02-tools/_tools.utility-api.scss +91 -48
  197. package/src/styles/03-generic/_generic.root.scss +1 -4
  198. package/src/styles/04-elements/_elements.body.scss +0 -1
  199. package/src/styles/06-components/_components.atomix-glass.scss +249 -0
  200. package/src/styles/06-components/_components.badge.scss +8 -23
  201. package/src/styles/06-components/_components.button.scss +8 -3
  202. package/src/styles/06-components/_components.callout.scss +10 -5
  203. package/src/styles/06-components/_components.card.scss +2 -14
  204. package/src/styles/06-components/_components.chart.scss +969 -1449
  205. package/src/styles/06-components/_components.dropdown.scss +19 -7
  206. package/src/styles/06-components/_components.edge-panel.scss +103 -0
  207. package/src/styles/06-components/_components.footer.scss +166 -85
  208. package/src/styles/06-components/_components.input.scss +8 -9
  209. package/src/styles/06-components/_components.list.scss +1 -0
  210. package/src/styles/06-components/_components.messages.scss +176 -0
  211. package/src/styles/06-components/_components.modal.scss +16 -4
  212. package/src/styles/06-components/_components.navbar.scss +12 -1
  213. package/src/styles/06-components/_components.side-menu.scss +5 -0
  214. package/src/styles/06-components/_components.skeleton.scss +8 -6
  215. package/src/styles/06-components/_components.upload.scss +219 -4
  216. package/src/styles/06-components/old.chart.styles.scss +1 -30
  217. package/src/styles/99-utilities/_index.scss +1 -0
  218. package/src/styles/99-utilities/_utilities.glass-fixes.scss +1 -0
  219. package/src/styles/99-utilities/_utilities.scss +1 -1
  220. package/src/components/AtomixGlass/AtomixGlass.stories.tsx +0 -3011
  221. package/src/components/AtomixGlass/AtomixGlassComprehensivePreview.stories.tsx +0 -1369
  222. package/src/components/Chart/AdvancedChart.tsx +0 -624
  223. package/src/components/Chart/LineChartNew.tsx +0 -167
  224. package/src/components/Chart/RealTimeChart.tsx +0 -436
  225. package/src/components/DatePicker/DatePicker copy.tsx +0 -551
@@ -2,6 +2,7 @@ import React from 'react';
2
2
  import type { Meta, StoryObj } from '@storybook/react';
3
3
  import { Accordion } from './Accordion';
4
4
  import { ACCORDION } from '../../lib/constants/components';
5
+ import type { AtomixGlassProps } from '../../lib/types/components';
5
6
 
6
7
  // Extract class names without the leading dots
7
8
  const ACCORDION_CLASS = ACCORDION.SELECTORS.ACCORDION.replace('.', '');
@@ -281,13 +282,16 @@ export const Glass: Story = {
281
282
  children: <p>This accordion has a glass morphism effect applied.</p>,
282
283
  glass: true,
283
284
  },
284
- render: (args) => (
285
+ render: args => (
285
286
  <div
286
287
  style={{
287
- background: 'linear-gradient(135deg, #667eea 0%, #764ba2 100%)',
288
+ background:
289
+ 'url(https://images.unsplash.com/photo-1759915995309-404c743bfbf9?q=80&w=3270&auto=format&fit=crop&ixlib=rb-4.1.0&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D)',
290
+ backgroundSize: 'cover',
291
+ backgroundPosition: 'center',
288
292
  padding: '2rem',
289
293
  borderRadius: '12px',
290
- minHeight: '300px',
294
+ height: '97vh',
291
295
  display: 'flex',
292
296
  alignItems: 'center',
293
297
  justifyContent: 'center',
@@ -301,7 +305,8 @@ export const Glass: Story = {
301
305
  parameters: {
302
306
  docs: {
303
307
  description: {
304
- story: 'This story demonstrates an Accordion with glass morphism effect enabled against a gradient background.',
308
+ story:
309
+ 'This story demonstrates an Accordion with glass morphism effect enabled against a gradient background.',
305
310
  },
306
311
  },
307
312
  },
@@ -313,27 +318,40 @@ export const GlassCustom: Story = {
313
318
  title: 'Custom Glass Accordion',
314
319
  children: <p>This accordion has custom glass morphism settings.</p>,
315
320
  glass: {
316
- displacementScale: 80,
317
- blurAmount: 2,
318
- saturation: 200,
319
- aberrationIntensity: 0.8,
320
- cornerRadius: 12,
321
- },
321
+ displacementScale: 180,
322
+ blurAmount: 3,
323
+ saturation: 60,
324
+ mode: 'polar',
325
+ } as AtomixGlassProps as any,
322
326
  },
323
- render: (args) => (
327
+ render: args => (
324
328
  <div
325
329
  style={{
326
- background: 'url(https://images.unsplash.com/photo-1660478481785-cb609142d9ab?q=80&w=2670&auto=format&fit=crop&ixlib=rb-4.1.0&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D)',
327
- backgroundSize: 'cover',
330
+ background:
331
+ 'url(https://images.unsplash.com/photo-1754147965582-edcb63324a81?q=80&w=2070&auto=format&fit=crop&ixlib=rb-4.1.0&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D)',
332
+ backgroundSize: '120%',
328
333
  backgroundPosition: 'center',
329
334
  padding: '2rem',
330
335
  borderRadius: '12px',
331
- minHeight: '400px',
336
+ minHeight: '97vh',
332
337
  display: 'flex',
333
338
  alignItems: 'center',
334
339
  justifyContent: 'center',
340
+ animation: 'gradient 15s ease infinite',
335
341
  }}
336
342
  >
343
+ <style>
344
+ {`
345
+ @keyframes gradient {
346
+ 0% { background-position: 0% 50%; }
347
+ 20% { background-position: 70% 50%; }
348
+ 40% { background-position: 0% 50%; }
349
+ 50% { background-position: 50% 0%; }
350
+ 75% { background-position: 50% 50%; }
351
+ 100% { background-position: 50% 0%; }
352
+ }
353
+ `}
354
+ </style>
337
355
  <div style={{ width: '100%', maxWidth: '500px' }}>
338
356
  <Accordion {...args} />
339
357
  </div>
@@ -342,7 +360,8 @@ export const GlassCustom: Story = {
342
360
  parameters: {
343
361
  docs: {
344
362
  description: {
345
- story: 'This story demonstrates an Accordion with custom glass morphism settings against a scenic background image.',
363
+ story:
364
+ 'This story demonstrates an Accordion with custom glass morphism settings against a scenic background image.',
346
365
  },
347
366
  },
348
367
  },
@@ -353,16 +372,24 @@ export const GlassGroup: Story = {
353
372
  args: {
354
373
  title: 'Glass Accordion Group',
355
374
  children: <p>Group example with glass effect - see render function</p>,
375
+ glass: {
376
+ displacementScale: 180,
377
+ blurAmount: 1,
378
+ saturation: 60,
379
+ mode: 'shader',
380
+ ShaderVariant: 'premiumGlass',
381
+ } as any,
356
382
  },
357
383
  render: () => (
358
384
  <div
359
385
  style={{
360
- background: 'url(https://images.unsplash.com/photo-1587289087865-396fc357ef9e?q=80&w=2670&auto=format&fit=crop&ixlib=rb-4.1.0&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D)',
361
- backgroundSize: '200% 200%',
386
+ background:
387
+ 'url(https://images.unsplash.com/photo-1623237353316-417116e040a5?q=80&w=3307&auto=format&fit=crop&ixlib=rb-4.1.0&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D)',
388
+ backgroundSize: '150%',
362
389
  animation: 'gradient 15s ease infinite',
363
390
  padding: '2rem',
364
391
  borderRadius: '12px',
365
- minHeight: '500px',
392
+ minHeight: '97vh',
366
393
  }}
367
394
  >
368
395
  <style>
@@ -374,10 +401,20 @@ export const GlassGroup: Story = {
374
401
  }
375
402
  `}
376
403
  </style>
377
- <h2 style={{ color: 'white', textAlign: 'center', marginBottom: '2rem', textShadow: '0 2px 4px rgba(0,0,0,0.3)' }}>
404
+ <h2
405
+ style={{
406
+ color: 'white',
407
+ textAlign: 'center',
408
+ marginBottom: '2rem',
409
+ textShadow: '0 2px 4px rgba(0,0,0,0.3)',
410
+ }}
411
+ >
378
412
  Glass Accordion Group
379
413
  </h2>
380
- <div className="u-d-flex u-flex-column u-gap-3" style={{ width: '100%', maxWidth: '600px', margin: '0 auto' }}>
414
+ <div
415
+ className="u-d-flex u-flex-column u-gap-3"
416
+ style={{ width: '100%', maxWidth: '600px', margin: '0 auto' }}
417
+ >
381
418
  <Accordion title="First Glass Accordion" defaultOpen={true} glass>
382
419
  <p>Content of the first glass accordion with beautiful glass morphism effect.</p>
383
420
  </Accordion>
@@ -401,8 +438,612 @@ export const GlassGroup: Story = {
401
438
  parameters: {
402
439
  docs: {
403
440
  description: {
404
- story: 'This story demonstrates multiple Accordions with glass morphism effects against an animated gradient background.',
441
+ story:
442
+ 'This story demonstrates multiple Accordions with glass morphism effects against an animated gradient background.',
405
443
  },
406
444
  },
407
445
  },
408
446
  };
447
+
448
+ // Glass Mode Variants - Standard
449
+ export const GlassModeStandard: Story = {
450
+ args: {
451
+ title: 'Standard Glass Mode Accordion',
452
+ children: (
453
+ <div>
454
+ <p>
455
+ This accordion uses the standard glass mode with classic blur and displacement effects.
456
+ </p>
457
+ <p>The standard mode provides a refined glass appearance perfect for elegant interfaces.</p>
458
+ </div>
459
+ ),
460
+ glass: true,
461
+ },
462
+ render: args => (
463
+ <div
464
+ style={{
465
+ background:
466
+ 'url(https://images.unsplash.com/photo-1689960159745-fbc6434d4434?ixlib=rb-4.1.0&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&q=80&w=1335)',
467
+ backgroundSize: 'cover',
468
+ backgroundPosition: 'center',
469
+ padding: '3rem',
470
+ borderRadius: '12px',
471
+ minHeight: '95vh',
472
+ display: 'flex',
473
+ flexDirection: 'column',
474
+ alignItems: 'center',
475
+ justifyContent: 'center',
476
+ gap: '2rem',
477
+ }}
478
+ >
479
+ <div style={{ textAlign: 'center', color: 'white', textShadow: '0 2px 4px rgba(0,0,0,0.5)' }}>
480
+ <h3 style={{ fontSize: '1.5rem', marginBottom: '0.5rem' }}>Standard Glass Mode</h3>
481
+ <p style={{ fontSize: '0.875rem', opacity: 0.9 }}>
482
+ Classic glass morphism with blur and displacement
483
+ </p>
484
+ </div>
485
+ <div style={{ width: '100%', maxWidth: '600px' }}>
486
+ <Accordion {...args} />
487
+ </div>
488
+ </div>
489
+ ),
490
+ };
491
+
492
+ // Glass Mode Variants - Polar
493
+ export const GlassModePolar: Story = {
494
+ args: {
495
+ title: 'Polar Glass Mode Accordion',
496
+ children: (
497
+ <div>
498
+ <p>This accordion uses the polar glass mode with radial distortion effects.</p>
499
+ <p>The polar mode creates unique distortion patterns emanating from the center point.</p>
500
+ </div>
501
+ ),
502
+ glass: {
503
+ mode: 'polar',
504
+ displacementScale: 80,
505
+ blurAmount: 1.5,
506
+ saturation: 180,
507
+ aberrationIntensity: 3,
508
+ } as any,
509
+ },
510
+ render: args => (
511
+ <div
512
+ style={{
513
+ background: 'url(https://images.unsplash.com/photo-1557683316-973673baf926?w=1920)',
514
+ backgroundSize: 'cover',
515
+ backgroundPosition: 'center',
516
+ padding: '3rem',
517
+ borderRadius: '12px',
518
+ minHeight: '95vh',
519
+ display: 'flex',
520
+ flexDirection: 'column',
521
+ alignItems: 'center',
522
+ justifyContent: 'center',
523
+ gap: '2rem',
524
+ }}
525
+ >
526
+ <div style={{ textAlign: 'center', color: 'white', textShadow: '0 2px 4px rgba(0,0,0,0.5)' }}>
527
+ <h3 style={{ fontSize: '1.5rem', marginBottom: '0.5rem' }}>Polar Glass Mode</h3>
528
+ <p style={{ fontSize: '0.875rem', opacity: 0.9 }}>Radial distortion effect from center</p>
529
+ </div>
530
+ <div style={{ width: '100%', maxWidth: '600px' }}>
531
+ <Accordion {...args} />
532
+ </div>
533
+ </div>
534
+ ),
535
+ };
536
+
537
+ // Glass Mode Variants - Prominent
538
+ export const GlassModeProminent: Story = {
539
+ args: {
540
+ title: 'Prominent Glass Mode Accordion',
541
+ children: (
542
+ <div>
543
+ <p>This accordion uses the prominent glass mode with enhanced distortion effects.</p>
544
+ <p>The prominent mode delivers maximum depth and visual impact for striking designs.</p>
545
+ </div>
546
+ ),
547
+ glass: {
548
+ mode: 'prominent',
549
+ displacementScale: 100,
550
+ blurAmount: 2.5,
551
+ saturation: 200,
552
+ aberrationIntensity: 4,
553
+ } as any,
554
+ },
555
+ render: args => (
556
+ <div
557
+ style={{
558
+ background: 'url(https://images.unsplash.com/photo-1579546929518-9e396f3cc809?w=1920)',
559
+ backgroundSize: 'cover',
560
+ backgroundPosition: 'center',
561
+ padding: '3rem',
562
+ borderRadius: '12px',
563
+ minHeight: '95vh',
564
+ display: 'flex',
565
+ flexDirection: 'column',
566
+ alignItems: 'center',
567
+ justifyContent: 'center',
568
+ gap: '2rem',
569
+ }}
570
+ >
571
+ <div style={{ textAlign: 'center', color: 'white', textShadow: '0 2px 4px rgba(0,0,0,0.5)' }}>
572
+ <h3 style={{ fontSize: '1.5rem', marginBottom: '0.5rem' }}>Prominent Glass Mode</h3>
573
+ <p style={{ fontSize: '0.875rem', opacity: 0.9 }}>Enhanced distortion with maximum depth</p>
574
+ </div>
575
+ <div style={{ width: '100%', maxWidth: '600px' }}>
576
+ <Accordion {...args} />
577
+ </div>
578
+ </div>
579
+ ),
580
+ };
581
+
582
+ // Glass Mode Variants - Shader
583
+ export const GlassModeShader: Story = {
584
+ args: {
585
+ title: 'Shader Glass Mode Accordion',
586
+ children: (
587
+ <div>
588
+ <p>This accordion uses the shader glass mode with GPU-accelerated liquid glass effects.</p>
589
+ <p>The shader mode provides smooth, performant animations with liquid glass dynamics.</p>
590
+ </div>
591
+ ),
592
+ glass: {
593
+ mode: 'shader',
594
+ shaderVariant: 'liquidGlass',
595
+ displacementScale: 70,
596
+ blurAmount: 1.8,
597
+ saturation: 170,
598
+ } as any,
599
+ },
600
+ render: args => (
601
+ <div
602
+ style={{
603
+ background: 'url(https://images.unsplash.com/photo-1557682250-33bd709cbe85?w=1920)',
604
+ backgroundSize: 'cover',
605
+ backgroundPosition: 'center',
606
+ padding: '3rem',
607
+ borderRadius: '12px',
608
+ minHeight: '95vh',
609
+ display: 'flex',
610
+ flexDirection: 'column',
611
+ alignItems: 'center',
612
+ justifyContent: 'center',
613
+ gap: '2rem',
614
+ }}
615
+ >
616
+ <div style={{ textAlign: 'center', color: 'white', textShadow: '0 2px 4px rgba(0,0,0,0.5)' }}>
617
+ <h3 style={{ fontSize: '1.5rem', marginBottom: '0.5rem' }}>Shader Glass Mode</h3>
618
+ <p style={{ fontSize: '0.875rem', opacity: 0.9 }}>GPU-accelerated liquid glass effect</p>
619
+ </div>
620
+ <div style={{ width: '100%', maxWidth: '600px' }}>
621
+ <Accordion {...args} />
622
+ </div>
623
+ </div>
624
+ ),
625
+ };
626
+
627
+ // All Glass Modes Comparison
628
+ export const AllGlassModesComparison: Story = {
629
+ args: {
630
+ title: 'Glass Modes Comparison',
631
+ children: <p>Comparison example</p>,
632
+ },
633
+ render: () => (
634
+ <div
635
+ style={{
636
+ background: 'url(https://images.unsplash.com/photo-1506905925346-21bda4d32df4?w=1920)',
637
+ backgroundSize: 'cover',
638
+ backgroundPosition: 'center',
639
+ padding: '3rem',
640
+ borderRadius: '12px',
641
+ minHeight: '95vh',
642
+ overflow: 'auto',
643
+ }}
644
+ >
645
+ <div style={{ maxWidth: '1200px', margin: '0 auto' }}>
646
+ <h2
647
+ style={{
648
+ textAlign: 'center',
649
+ color: 'white',
650
+ marginBottom: '3rem',
651
+ fontSize: '2rem',
652
+ textShadow: '0 2px 8px rgba(0,0,0,0.5)',
653
+ }}
654
+ >
655
+ Glass Mode Accordions Comparison
656
+ </h2>
657
+
658
+ <div
659
+ style={{
660
+ display: 'grid',
661
+ gridTemplateColumns: 'repeat(auto-fit, minmax(280px, 1fr))',
662
+ gap: '2rem',
663
+ }}
664
+ >
665
+ {/* Standard Mode */}
666
+ <div>
667
+ <h3
668
+ style={{
669
+ color: 'white',
670
+ marginBottom: '1rem',
671
+ fontSize: '1.25rem',
672
+ textAlign: 'center',
673
+ }}
674
+ >
675
+ Standard Mode
676
+ </h3>
677
+ <Accordion title="Standard Glass" glass={true}>
678
+ <p>Classic blur and displacement effects for a refined glass appearance.</p>
679
+ </Accordion>
680
+ </div>
681
+
682
+ {/* Polar Mode */}
683
+ <div>
684
+ <h3
685
+ style={{
686
+ color: 'white',
687
+ marginBottom: '1rem',
688
+ fontSize: '1.25rem',
689
+ textAlign: 'center',
690
+ }}
691
+ >
692
+ Polar Mode
693
+ </h3>
694
+ <Accordion
695
+ title="Polar Glass"
696
+ glass={
697
+ {
698
+ mode: 'polar',
699
+ displacementScale: 80,
700
+ blurAmount: 1.5,
701
+ saturation: 180,
702
+ aberrationIntensity: 3,
703
+ } as any
704
+ }
705
+ >
706
+ <p>Radial distortion effects emanating from the center point.</p>
707
+ </Accordion>
708
+ </div>
709
+
710
+ {/* Prominent Mode */}
711
+ <div>
712
+ <h3
713
+ style={{
714
+ color: 'white',
715
+ marginBottom: '1rem',
716
+ fontSize: '1.25rem',
717
+ textAlign: 'center',
718
+ }}
719
+ >
720
+ Prominent Mode
721
+ </h3>
722
+ <Accordion
723
+ title="Prominent Glass"
724
+ glass={
725
+ {
726
+ mode: 'prominent',
727
+ displacementScale: 100,
728
+ blurAmount: 2.5,
729
+ saturation: 200,
730
+ aberrationIntensity: 4,
731
+ } as any
732
+ }
733
+ >
734
+ <p>Enhanced distortion with maximum depth and visual impact.</p>
735
+ </Accordion>
736
+ </div>
737
+
738
+ {/* Shader Mode */}
739
+ <div>
740
+ <h3
741
+ style={{
742
+ color: 'white',
743
+ marginBottom: '1rem',
744
+ fontSize: '1.25rem',
745
+ textAlign: 'center',
746
+ }}
747
+ >
748
+ Shader Mode
749
+ </h3>
750
+ <Accordion
751
+ title="Shader Glass"
752
+ glass={
753
+ {
754
+ mode: 'shader',
755
+ shaderVariant: 'liquidGlass',
756
+ displacementScale: 70,
757
+ blurAmount: 1.8,
758
+ saturation: 170,
759
+ } as any
760
+ }
761
+ >
762
+ <p>GPU-accelerated liquid glass with smooth animations.</p>
763
+ </Accordion>
764
+ </div>
765
+ </div>
766
+ </div>
767
+ </div>
768
+ ),
769
+ };
770
+
771
+ // Glass Accordion Interactive Showcase
772
+ export const GlassInteractiveShowcase: Story = {
773
+ args: {
774
+ title: 'Interactive Glass Accordion',
775
+ children: <p>Interactive showcase</p>,
776
+ },
777
+ render: () => {
778
+ const [openIndex, setOpenIndex] = React.useState<number | null>(0);
779
+
780
+ return (
781
+ <div
782
+ style={{
783
+ background: 'url(https://images.unsplash.com/photo-1519681393784-d120267933ba?w=1920)',
784
+ backgroundSize: 'cover',
785
+ backgroundPosition: 'center',
786
+ padding: '3rem',
787
+ borderRadius: '12px',
788
+ minHeight: '95vh',
789
+ overflow: 'auto',
790
+ }}
791
+ >
792
+ <div style={{ maxWidth: '800px', margin: '0 auto' }}>
793
+ <h2
794
+ style={{
795
+ textAlign: 'center',
796
+ color: 'white',
797
+ marginBottom: '3rem',
798
+ fontSize: '2rem',
799
+ textShadow: '0 2px 8px rgba(0,0,0,0.5)',
800
+ }}
801
+ >
802
+ Interactive Glass Accordion Showcase
803
+ </h2>
804
+
805
+ <div className="u-d-flex u-flex-column u-gap-3">
806
+ <Accordion
807
+ title="Features & Benefits"
808
+ isOpen={openIndex === 0}
809
+ onOpenChange={open => setOpenIndex(open ? 0 : null)}
810
+ glass={
811
+ {
812
+ mode: 'standard',
813
+ displacementScale: 60,
814
+ blurAmount: 2,
815
+ } as any
816
+ }
817
+ >
818
+ <div>
819
+ <h4 style={{ marginBottom: '0.5rem' }}>Premium Glass Effects</h4>
820
+ <ul style={{ paddingLeft: '1.5rem' }}>
821
+ <li>Hardware-accelerated rendering</li>
822
+ <li>Smooth mouse-responsive animations</li>
823
+ <li>Multiple distortion modes</li>
824
+ <li>Customizable parameters</li>
825
+ </ul>
826
+ </div>
827
+ </Accordion>
828
+
829
+ <Accordion
830
+ title="Technical Specifications"
831
+ isOpen={openIndex === 1}
832
+ onOpenChange={open => setOpenIndex(open ? 1 : null)}
833
+ glass={
834
+ {
835
+ mode: 'polar',
836
+ displacementScale: 70,
837
+ blurAmount: 1.8,
838
+ } as any
839
+ }
840
+ >
841
+ <div>
842
+ <h4 style={{ marginBottom: '0.5rem' }}>Performance & Compatibility</h4>
843
+ <p>Optimized for modern browsers with WebGL support.</p>
844
+ <ul style={{ paddingLeft: '1.5rem', marginTop: '0.5rem' }}>
845
+ <li>60 FPS animations</li>
846
+ <li>Responsive design</li>
847
+ <li>Accessibility compliant</li>
848
+ <li>Mobile-friendly</li>
849
+ </ul>
850
+ </div>
851
+ </Accordion>
852
+
853
+ <Accordion
854
+ title="Customization Options"
855
+ isOpen={openIndex === 2}
856
+ onOpenChange={open => setOpenIndex(open ? 2 : null)}
857
+ glass={
858
+ {
859
+ mode: 'prominent',
860
+ displacementScale: 80,
861
+ blurAmount: 2.2,
862
+ } as any
863
+ }
864
+ >
865
+ <div>
866
+ <h4 style={{ marginBottom: '0.5rem' }}>Flexible Configuration</h4>
867
+ <p>Customize every aspect of the glass effect:</p>
868
+ <ul style={{ paddingLeft: '1.5rem', marginTop: '0.5rem' }}>
869
+ <li>Blur amount and saturation</li>
870
+ <li>Displacement scale</li>
871
+ <li>Aberration intensity</li>
872
+ <li>Corner radius</li>
873
+ <li>Mode selection</li>
874
+ </ul>
875
+ </div>
876
+ </Accordion>
877
+
878
+ <Accordion
879
+ title="Integration Guide"
880
+ isOpen={openIndex === 3}
881
+ onOpenChange={open => setOpenIndex(open ? 3 : null)}
882
+ glass={
883
+ {
884
+ mode: 'shader',
885
+ shaderVariant: 'liquidGlass',
886
+ displacementScale: 65,
887
+ } as any
888
+ }
889
+ >
890
+ <div>
891
+ <h4 style={{ marginBottom: '0.5rem' }}>Easy Implementation</h4>
892
+ <p>Simple to integrate with your existing components:</p>
893
+ <div
894
+ style={{
895
+ background: 'rgba(0,0,0,0.3)',
896
+ padding: '1rem',
897
+ borderRadius: '4px',
898
+ marginTop: '0.5rem',
899
+ }}
900
+ >
901
+ <code style={{ color: '#fff', fontSize: '0.875rem' }}>
902
+ {'<Accordion glass={true} />'}
903
+ </code>
904
+ </div>
905
+ </div>
906
+ </Accordion>
907
+ </div>
908
+ </div>
909
+ </div>
910
+ );
911
+ },
912
+ };
913
+
914
+ // Glass Accordion with Rich Content
915
+ export const GlassRichContent: Story = {
916
+ args: {
917
+ title: 'Glass Accordion with Rich Content',
918
+ children: <p>Rich content example</p>,
919
+ },
920
+ render: () => (
921
+ <div
922
+ style={{
923
+ background: 'url(https://images.unsplash.com/photo-1464822759023-fed622ff2c3b?w=1920)',
924
+ backgroundSize: 'cover',
925
+ backgroundPosition: 'center',
926
+ padding: '3rem',
927
+ borderRadius: '12px',
928
+ minHeight: '95vh',
929
+ overflow: 'auto',
930
+ }}
931
+ >
932
+ <div style={{ maxWidth: '800px', margin: '0 auto' }}>
933
+ <h2
934
+ style={{
935
+ textAlign: 'center',
936
+ color: 'white',
937
+ marginBottom: '3rem',
938
+ fontSize: '2rem',
939
+ textShadow: '0 2px 8px rgba(0,0,0,0.5)',
940
+ }}
941
+ >
942
+ Glass Accordion with Rich Content
943
+ </h2>
944
+
945
+ <div className="u-d-flex u-flex-column u-gap-3">
946
+ <Accordion title="Design Philosophy" defaultOpen={true} glass={true}>
947
+ <div>
948
+ <p style={{ marginBottom: '1rem' }}>
949
+ Our glass morphism design combines modern aesthetics with practical functionality.
950
+ The translucent effects create depth and visual hierarchy while maintaining
951
+ readability.
952
+ </p>
953
+ <div style={{ display: 'flex', gap: '1rem', marginTop: '1rem' }}>
954
+ <div
955
+ style={{
956
+ flex: 1,
957
+ background: 'rgba(255,255,255,0.1)',
958
+ padding: '1rem',
959
+ borderRadius: '8px',
960
+ }}
961
+ >
962
+ <h5 style={{ marginBottom: '0.5rem' }}>Aesthetic</h5>
963
+ <p style={{ fontSize: '0.875rem' }}>Beautiful, modern design</p>
964
+ </div>
965
+ <div
966
+ style={{
967
+ flex: 1,
968
+ background: 'rgba(255,255,255,0.1)',
969
+ padding: '1rem',
970
+ borderRadius: '8px',
971
+ }}
972
+ >
973
+ <h5 style={{ marginBottom: '0.5rem' }}>Functional</h5>
974
+ <p style={{ fontSize: '0.875rem' }}>Practical and usable</p>
975
+ </div>
976
+ </div>
977
+ </div>
978
+ </Accordion>
979
+
980
+ <Accordion
981
+ title="Component Features"
982
+ glass={
983
+ {
984
+ mode: 'polar',
985
+ displacementScale: 70,
986
+ } as any
987
+ }
988
+ >
989
+ <div>
990
+ <p style={{ marginBottom: '1rem' }}>
991
+ Explore the comprehensive features available in our glass accordion component:
992
+ </p>
993
+ <div style={{ display: 'grid', gridTemplateColumns: '1fr 1fr', gap: '0.5rem' }}>
994
+ <div>✨ Glass morphism effects</div>
995
+ <div>🎨 Multiple visual modes</div>
996
+ <div>⚡ High performance</div>
997
+ <div>♿ Accessibility ready</div>
998
+ <div>📱 Mobile responsive</div>
999
+ <div>🎯 Easy customization</div>
1000
+ </div>
1001
+ </div>
1002
+ </Accordion>
1003
+
1004
+ <Accordion
1005
+ title="Implementation Examples"
1006
+ glass={
1007
+ {
1008
+ mode: 'shader',
1009
+ shaderVariant: 'liquidGlass',
1010
+ } as any
1011
+ }
1012
+ >
1013
+ <div>
1014
+ <p style={{ marginBottom: '1rem' }}>
1015
+ Multiple ways to implement glass effects in your application:
1016
+ </p>
1017
+ <div
1018
+ style={{
1019
+ background: 'rgba(0,0,0,0.3)',
1020
+ padding: '1rem',
1021
+ borderRadius: '8px',
1022
+ marginBottom: '1rem',
1023
+ }}
1024
+ >
1025
+ <code
1026
+ style={{
1027
+ color: '#fff',
1028
+ fontSize: '0.875rem',
1029
+ display: 'block',
1030
+ whiteSpace: 'pre',
1031
+ }}
1032
+ >
1033
+ {`// Basic usage
1034
+ <Accordion glass={true} />
1035
+
1036
+ // Custom configuration
1037
+ <Accordion glass={{
1038
+ mode: 'polar',
1039
+ displacementScale: 70
1040
+ }} />`}
1041
+ </code>
1042
+ </div>
1043
+ </div>
1044
+ </Accordion>
1045
+ </div>
1046
+ </div>
1047
+ </div>
1048
+ ),
1049
+ };