@shohojdhara/atomix 0.2.1 → 0.2.3

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 (201) hide show
  1. package/README.md +1 -28
  2. package/dist/atomix.css +1500 -241
  3. package/dist/atomix.min.css +6 -6
  4. package/dist/index.d.ts +1052 -194
  5. package/dist/index.esm.js +12201 -6066
  6. package/dist/index.esm.js.map +1 -1
  7. package/dist/index.js +5481 -2827
  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/boomdevs.css +1500 -301
  12. package/dist/themes/boomdevs.min.css +60 -8
  13. package/dist/themes/esrar.css +1500 -241
  14. package/dist/themes/esrar.min.css +6 -6
  15. package/dist/themes/mashroom.css +1496 -237
  16. package/dist/themes/mashroom.min.css +8 -8
  17. package/dist/themes/shaj-default.css +1451 -192
  18. package/dist/themes/shaj-default.min.css +6 -6
  19. package/package.json +66 -15
  20. package/src/components/Accordion/Accordion.stories.tsx +137 -0
  21. package/src/components/Accordion/Accordion.tsx +33 -3
  22. package/src/components/AtomixGlass/AtomixGlass.stories.tsx +3011 -0
  23. package/src/components/AtomixGlass/AtomixGlass.test.tsx +199 -0
  24. package/src/components/AtomixGlass/AtomixGlass.tsx +1281 -0
  25. package/src/components/AtomixGlass/AtomixGlassComprehensivePreview.stories.tsx +1369 -0
  26. package/src/components/AtomixGlass/README.md +134 -0
  27. package/src/components/AtomixGlass/index.ts +10 -0
  28. package/src/components/AtomixGlass/shader-utils.ts +140 -0
  29. package/src/components/AtomixGlass/utils.ts +8 -0
  30. package/src/components/Badge/Badge.stories.tsx +169 -0
  31. package/src/components/Badge/Badge.tsx +27 -2
  32. package/src/components/Button/Button.stories.tsx +345 -0
  33. package/src/components/Button/Button.tsx +35 -3
  34. package/src/components/Button/README.md +216 -0
  35. package/src/components/Callout/Callout.stories.tsx +813 -78
  36. package/src/components/Callout/Callout.test.tsx +368 -0
  37. package/src/components/Callout/Callout.tsx +26 -7
  38. package/src/components/Callout/README.md +409 -0
  39. package/src/components/Card/Card.stories.tsx +140 -0
  40. package/src/components/Card/Card.tsx +19 -3
  41. package/src/components/DatePicker/DatePicker copy.tsx +551 -0
  42. package/src/components/DatePicker/DatePicker.stories.tsx +188 -0
  43. package/src/components/DatePicker/DatePicker.tsx +379 -332
  44. package/src/components/DatePicker/readme.md +110 -1
  45. package/src/components/DatePicker/types.ts +8 -0
  46. package/src/components/Dropdown/Dropdown.stories.tsx +145 -0
  47. package/src/components/Dropdown/Dropdown.tsx +34 -5
  48. package/src/components/Footer/Footer.stories.tsx +388 -0
  49. package/src/components/Footer/Footer.tsx +197 -0
  50. package/src/components/Footer/FooterLink.tsx +72 -0
  51. package/src/components/Footer/FooterSection.tsx +87 -0
  52. package/src/components/Footer/FooterSocialLink.tsx +117 -0
  53. package/src/components/Footer/README.md +261 -0
  54. package/src/components/Footer/index.ts +13 -0
  55. package/src/components/Form/Checkbox.stories.tsx +101 -0
  56. package/src/components/Form/Checkbox.tsx +26 -2
  57. package/src/components/Form/Input.stories.tsx +124 -0
  58. package/src/components/Form/Input.tsx +36 -7
  59. package/src/components/Form/Radio.stories.tsx +139 -0
  60. package/src/components/Form/Radio.tsx +26 -2
  61. package/src/components/Form/Select.stories.tsx +110 -0
  62. package/src/components/Form/Select.tsx +26 -2
  63. package/src/components/Form/Textarea.stories.tsx +104 -0
  64. package/src/components/Form/Textarea.tsx +36 -7
  65. package/src/components/Hero/Hero.stories.tsx +54 -1
  66. package/src/components/Hero/Hero.tsx +70 -11
  67. package/src/components/Modal/Modal.stories.tsx +235 -0
  68. package/src/components/Modal/Modal.tsx +64 -35
  69. package/src/components/Pagination/Pagination.stories.tsx +101 -0
  70. package/src/components/Pagination/Pagination.tsx +25 -1
  71. package/src/components/Popover/Popover.stories.tsx +94 -0
  72. package/src/components/Popover/Popover.tsx +30 -4
  73. package/src/components/Rating/Rating.stories.tsx +112 -0
  74. package/src/components/Rating/Rating.tsx +25 -1
  75. package/src/components/SectionIntro/SectionIntro.tsx +9 -11
  76. package/src/components/Slider/Slider.stories.tsx +634 -50
  77. package/src/components/Slider/Slider.tsx +5 -3
  78. package/src/components/Steps/Steps.stories.tsx +119 -0
  79. package/src/components/Steps/Steps.tsx +32 -1
  80. package/src/components/Tab/Tab.stories.tsx +88 -0
  81. package/src/components/Tab/Tab.tsx +32 -1
  82. package/src/components/Toggle/Toggle.stories.tsx +92 -0
  83. package/src/components/Toggle/Toggle.tsx +32 -1
  84. package/src/components/Tooltip/Tooltip.stories.tsx +131 -0
  85. package/src/components/Tooltip/Tooltip.tsx +43 -7
  86. package/src/components/VideoPlayer/VideoPlayer.stories.tsx +1002 -196
  87. package/src/components/VideoPlayer/VideoPlayer.tsx +161 -4
  88. package/src/components/index.ts +14 -0
  89. package/src/layouts/Grid/Grid.stories.tsx +226 -159
  90. package/src/lib/composables/index.ts +4 -0
  91. package/src/lib/composables/useAtomixGlass.ts +71 -0
  92. package/src/lib/composables/useButton.ts +3 -1
  93. package/src/lib/composables/useCallout.ts +4 -1
  94. package/src/lib/composables/useFooter.ts +85 -0
  95. package/src/lib/composables/useGlassContainer.ts +168 -0
  96. package/src/lib/composables/useSlider.ts +191 -4
  97. package/src/lib/constants/components.ts +173 -0
  98. package/src/lib/types/components.ts +622 -0
  99. package/src/lib/utils/displacement-generator.ts +86 -0
  100. package/src/styles/01-settings/_index.scss +1 -0
  101. package/src/styles/01-settings/_settings.accordion.scss +20 -19
  102. package/src/styles/01-settings/_settings.animations.scss +5 -5
  103. package/src/styles/01-settings/_settings.avatar-group.scss +1 -1
  104. package/src/styles/01-settings/_settings.avatar.scss +17 -18
  105. package/src/styles/01-settings/_settings.background.scss +10 -0
  106. package/src/styles/01-settings/_settings.badge.scss +1 -1
  107. package/src/styles/01-settings/_settings.breadcrumb.scss +8 -2
  108. package/src/styles/01-settings/_settings.callout.scss +7 -7
  109. package/src/styles/01-settings/_settings.card.scss +2 -2
  110. package/src/styles/01-settings/_settings.chart.scss +7 -7
  111. package/src/styles/01-settings/_settings.checkbox-group.scss +5 -2
  112. package/src/styles/01-settings/_settings.checkbox.scss +10 -4
  113. package/src/styles/01-settings/_settings.countdown.scss +6 -4
  114. package/src/styles/01-settings/_settings.dropdown.scss +9 -7
  115. package/src/styles/01-settings/_settings.edge-panel.scss +3 -2
  116. package/src/styles/01-settings/_settings.footer.scss +125 -0
  117. package/src/styles/01-settings/_settings.form-group.scss +3 -1
  118. package/src/styles/01-settings/_settings.form.scss +4 -2
  119. package/src/styles/01-settings/_settings.hero.scss +9 -7
  120. package/src/styles/01-settings/_settings.input.scss +9 -7
  121. package/src/styles/01-settings/_settings.list-group.scss +4 -2
  122. package/src/styles/01-settings/_settings.list.scss +4 -2
  123. package/src/styles/01-settings/_settings.menu.scss +10 -8
  124. package/src/styles/01-settings/_settings.messages.scss +19 -17
  125. package/src/styles/01-settings/_settings.modal.scss +6 -4
  126. package/src/styles/01-settings/_settings.nav.scss +6 -4
  127. package/src/styles/01-settings/_settings.navbar.scss +8 -5
  128. package/src/styles/01-settings/_settings.pagination.scss +5 -3
  129. package/src/styles/01-settings/_settings.popover.scss +6 -4
  130. package/src/styles/01-settings/_settings.rating.scss +5 -3
  131. package/src/styles/01-settings/_settings.river.scss +8 -6
  132. package/src/styles/01-settings/_settings.sectionintro.scss +8 -6
  133. package/src/styles/01-settings/_settings.select.scss +7 -5
  134. package/src/styles/01-settings/_settings.side-menu.scss +15 -13
  135. package/src/styles/01-settings/_settings.spacing.scss +4 -0
  136. package/src/styles/01-settings/_settings.steps.scss +7 -5
  137. package/src/styles/01-settings/_settings.tabs.scss +7 -5
  138. package/src/styles/01-settings/_settings.testimonials.scss +6 -4
  139. package/src/styles/01-settings/_settings.toggle.scss +3 -1
  140. package/src/styles/01-settings/_settings.tooltip.scss +5 -3
  141. package/src/styles/01-settings/_settings.upload.scss +22 -20
  142. package/src/styles/02-tools/_tools.animations.scss +19 -0
  143. package/src/styles/02-tools/_tools.background.scss +87 -0
  144. package/src/styles/02-tools/_tools.glass.scss +1 -0
  145. package/src/styles/02-tools/_tools.rem.scss +18 -5
  146. package/src/styles/02-tools/_tools.utility-api.scss +32 -26
  147. package/src/styles/03-generic/_generic.root.scss +15 -2
  148. package/src/styles/04-elements/_elements.body.scss +6 -0
  149. package/src/styles/06-components/_components.accordion.scss +24 -4
  150. package/src/styles/06-components/_components.atomix-glass.scss +0 -0
  151. package/src/styles/06-components/_components.avatar-group.scss +2 -1
  152. package/src/styles/06-components/_components.avatar.scss +2 -1
  153. package/src/styles/06-components/_components.badge.scss +36 -1
  154. package/src/styles/06-components/_components.breadcrumb.scss +2 -1
  155. package/src/styles/06-components/_components.button.scss +14 -3
  156. package/src/styles/06-components/_components.callout.scss +44 -4
  157. package/src/styles/06-components/_components.card.scss +21 -2
  158. package/src/styles/06-components/_components.chart.scss +3 -2
  159. package/src/styles/06-components/_components.checkbox.scss +2 -1
  160. package/src/styles/06-components/_components.color-mode-toggle.scss +3 -2
  161. package/src/styles/06-components/_components.countdown.scss +2 -1
  162. package/src/styles/06-components/_components.data-table.scss +7 -6
  163. package/src/styles/06-components/_components.datepicker.scss +20 -1
  164. package/src/styles/06-components/_components.dropdown.scss +11 -4
  165. package/src/styles/06-components/_components.edge-panel.scss +4 -3
  166. package/src/styles/06-components/_components.footer.scss +825 -0
  167. package/src/styles/06-components/_components.form-group.scss +1 -0
  168. package/src/styles/06-components/_components.hero.scss +4 -4
  169. package/src/styles/06-components/_components.image-gallery.scss +1 -0
  170. package/src/styles/06-components/_components.input.scss +33 -2
  171. package/src/styles/06-components/_components.list-group.scss +3 -2
  172. package/src/styles/06-components/_components.list.scss +2 -1
  173. package/src/styles/06-components/_components.menu.scss +5 -4
  174. package/src/styles/06-components/_components.messages.scss +8 -7
  175. package/src/styles/06-components/_components.modal.scss +3 -2
  176. package/src/styles/06-components/_components.nav.scss +6 -5
  177. package/src/styles/06-components/_components.navbar.scss +4 -3
  178. package/src/styles/06-components/_components.pagination.scss +2 -1
  179. package/src/styles/06-components/_components.photoviewer.scss +4 -3
  180. package/src/styles/06-components/_components.popover.scss +3 -2
  181. package/src/styles/06-components/_components.product-review.scss +3 -2
  182. package/src/styles/06-components/_components.progress.scss +3 -2
  183. package/src/styles/06-components/_components.river.scss +3 -2
  184. package/src/styles/06-components/_components.sectionintro.scss +2 -1
  185. package/src/styles/06-components/_components.select.scss +5 -4
  186. package/src/styles/06-components/_components.side-menu.scss +8 -7
  187. package/src/styles/06-components/_components.skeleton.scss +3 -2
  188. package/src/styles/06-components/_components.slider.scss +7 -6
  189. package/src/styles/06-components/_components.spinner.scss +1 -0
  190. package/src/styles/06-components/_components.steps.scss +3 -2
  191. package/src/styles/06-components/_components.tabs.scss +4 -3
  192. package/src/styles/06-components/_components.testimonials.scss +2 -1
  193. package/src/styles/06-components/_components.todo.scss +3 -2
  194. package/src/styles/06-components/_components.toggle.scss +5 -4
  195. package/src/styles/06-components/_components.tooltip.scss +3 -2
  196. package/src/styles/06-components/_components.upload.scss +4 -3
  197. package/src/styles/06-components/_components.video-player.scss +50 -27
  198. package/src/styles/06-components/_index.scss +2 -0
  199. package/src/styles/99-utilities/_utilities.glass-fixes.scss +48 -0
  200. package/dist/themes/yabai.css +0 -13711
  201. package/dist/themes/yabai.min.css +0 -189
@@ -1,4 +1,47 @@
1
1
  import { ReactNode } from 'react';
2
+ import { AtomixGlass } from '../../components/AtomixGlass/AtomixGlass';
3
+
4
+ /**
5
+ * AtomixGlass component props interface
6
+ */
7
+ export interface AtomixGlassProps {
8
+ children: React.ReactNode;
9
+ displacementScale?: number;
10
+ blurAmount?: number;
11
+ saturation?: number;
12
+ aberrationIntensity?: number;
13
+ elasticity?: number;
14
+ cornerRadius?: number;
15
+ globalMousePos?: { x: number; y: number };
16
+ mouseOffset?: { x: number; y: number };
17
+ mouseContainer?: React.RefObject<HTMLElement | null> | null;
18
+ className?: string;
19
+ padding?: string;
20
+ style?: React.CSSProperties;
21
+ overLight?: boolean;
22
+ mode?: 'standard' | 'polar' | 'prominent' | 'shader';
23
+ onClick?: () => void;
24
+
25
+ /**
26
+ * Accessibility props
27
+ */
28
+ 'aria-label'?: string;
29
+ 'aria-describedby'?: string;
30
+ role?: string;
31
+ tabIndex?: number;
32
+
33
+ /**
34
+ * Performance and accessibility options
35
+ */
36
+ reducedMotion?: boolean;
37
+ highContrast?: boolean;
38
+ disableEffects?: boolean;
39
+
40
+ /**
41
+ * Performance monitoring
42
+ */
43
+ enablePerformanceMonitoring?: boolean;
44
+ }
2
45
 
3
46
  /**
4
47
  * Common component size options
@@ -58,6 +101,11 @@ export interface BaseComponentProps {
58
101
  * Component disabled state
59
102
  */
60
103
  disabled?: boolean;
104
+
105
+ /**
106
+ * Component children
107
+ */
108
+ children?: ReactNode;
61
109
  }
62
110
 
63
111
  /**
@@ -168,6 +216,12 @@ export interface ButtonProps extends BaseComponentProps {
168
216
  * Make button fully rounded (pill shape)
169
217
  */
170
218
  rounded?: boolean;
219
+
220
+ /**
221
+ * Glass morphism effect for the button
222
+ * Can be a boolean to enable with default settings, or an object with AtomixGlassProps to customize the effect
223
+ */
224
+ glass?: AtomixGlassProps | boolean;
171
225
  }
172
226
 
173
227
  /**
@@ -193,6 +247,12 @@ export interface BadgeProps extends BaseComponentProps {
193
247
  * Optional icon
194
248
  */
195
249
  icon?: ReactNode;
250
+
251
+ /**
252
+ * Glass morphism effect for the badge
253
+ * Can be a boolean to enable with default settings, or an object with AtomixGlassProps to customize the effect
254
+ */
255
+ glass?: AtomixGlassProps | boolean;
196
256
  }
197
257
 
198
258
  /**
@@ -238,8 +298,15 @@ export interface CalloutProps extends BaseComponentProps {
238
298
  * Display as toast notification
239
299
  */
240
300
  toast?: boolean;
301
+
302
+ /**
303
+ * Glass morphism effect for the callout
304
+ * Can be a boolean to enable with default settings, or an object with AtomixGlassProps to customize the effect
305
+ */
306
+ glass?: AtomixGlassProps | boolean;
241
307
  }
242
308
 
309
+
243
310
  /**
244
311
  * Accordion component properties
245
312
  */
@@ -268,6 +335,12 @@ export interface AccordionProps extends BaseComponentProps {
268
335
  * Custom icon for the accordion
269
336
  */
270
337
  icon?: ReactNode;
338
+
339
+ /**
340
+ * Glass morphism effect for the accordion
341
+ * Can be a boolean to enable with default settings, or an object with AtomixGlassProps to customize the effect
342
+ */
343
+ glass?: AtomixGlassProps | boolean;
271
344
  }
272
345
 
273
346
  /**
@@ -383,6 +456,11 @@ export interface HeroProps extends BaseComponentProps {
383
456
  */
384
457
  videoBackground?: string;
385
458
 
459
+ /**
460
+ * Glass effect properties for content container
461
+ */
462
+ glass?: AtomixGlassProps | boolean;
463
+
386
464
  /**
387
465
  * Video background options
388
466
  */
@@ -407,6 +485,11 @@ export interface HeroProps extends BaseComponentProps {
407
485
  */
408
486
  posterUrl?: string;
409
487
  };
488
+
489
+ /**
490
+ * Component children
491
+ */
492
+ children?: ReactNode;
410
493
  }
411
494
 
412
495
  /**
@@ -1022,6 +1105,12 @@ export interface PaginationProps extends BaseComponentProps {
1022
1105
  * Accessible label for the navigation element
1023
1106
  */
1024
1107
  ariaLabel?: string;
1108
+
1109
+ /**
1110
+ * Glass morphism effect for the pagination component
1111
+ * Can be a boolean to enable with default settings, or an object with AtomixGlassProps to customize the effect
1112
+ */
1113
+ glass?: AtomixGlassProps | boolean;
1025
1114
  }
1026
1115
 
1027
1116
  /**
@@ -1302,6 +1391,11 @@ export interface InputProps extends BaseComponentProps {
1302
1391
  * ID of element that describes this input
1303
1392
  */
1304
1393
  ariaDescribedBy?: string;
1394
+
1395
+ /**
1396
+ * Glass morphism effect
1397
+ */
1398
+ glass?: boolean | Omit<React.ComponentProps<typeof AtomixGlass>, 'children'>;
1305
1399
  }
1306
1400
 
1307
1401
  /**
@@ -1402,6 +1496,12 @@ export interface SelectProps extends BaseComponentProps {
1402
1496
  * ID of element that describes this select
1403
1497
  */
1404
1498
  ariaDescribedBy?: string;
1499
+
1500
+ /**
1501
+ * Glass morphism effect for the select
1502
+ * Can be a boolean to enable with default settings, or an object with AtomixGlassProps to customize the effect
1503
+ */
1504
+ glass?: AtomixGlassProps | boolean;
1405
1505
  }
1406
1506
 
1407
1507
  /**
@@ -1467,6 +1567,12 @@ export interface CheckboxProps extends BaseComponentProps {
1467
1567
  * ID of element that describes this checkbox
1468
1568
  */
1469
1569
  ariaDescribedBy?: string;
1570
+
1571
+ /**
1572
+ * Glass morphism effect for the checkbox
1573
+ * Can be a boolean to enable with default settings, or an object with AtomixGlassProps to customize the effect
1574
+ */
1575
+ glass?: AtomixGlassProps | boolean;
1470
1576
  }
1471
1577
 
1472
1578
  /**
@@ -1527,6 +1633,12 @@ export interface RadioProps extends BaseComponentProps {
1527
1633
  * ID of element that describes this radio
1528
1634
  */
1529
1635
  ariaDescribedBy?: string;
1636
+
1637
+ /**
1638
+ * Glass morphism effect for the radio button
1639
+ * Can be a boolean to enable with default settings, or an object with AtomixGlassProps to customize the effect
1640
+ */
1641
+ glass?: AtomixGlassProps | boolean;
1530
1642
  }
1531
1643
 
1532
1644
  /**
@@ -1632,6 +1744,11 @@ export interface TextareaProps extends BaseComponentProps {
1632
1744
  * ID of element that describes this textarea
1633
1745
  */
1634
1746
  ariaDescribedBy?: string;
1747
+
1748
+ /**
1749
+ * Glass morphism effect
1750
+ */
1751
+ glass?: boolean | Omit<React.ComponentProps<typeof AtomixGlass>, 'children'>;
1635
1752
  }
1636
1753
 
1637
1754
  /**
@@ -1762,6 +1879,12 @@ export interface ModalProps extends Omit<React.HTMLAttributes<HTMLDivElement>, '
1762
1879
  * Content for the modal footer
1763
1880
  */
1764
1881
  footer?: React.ReactNode;
1882
+
1883
+ /**
1884
+ * Glass morphism effect for the modal
1885
+ * Can be a boolean to enable with default settings, or an object with AtomixGlassProps to customize the effect
1886
+ */
1887
+ glass?: AtomixGlassProps | boolean;
1765
1888
  }
1766
1889
 
1767
1890
  /**
@@ -2014,6 +2137,12 @@ export interface PopoverProps {
2014
2137
  * Children content (removed in favor of using PopoverTrigger)
2015
2138
  */
2016
2139
  children?: ReactNode;
2140
+
2141
+ /**
2142
+ * Glass morphism effect for the popover
2143
+ * Can be a boolean to enable with default settings, or an object with AtomixGlassProps to customize the effect
2144
+ */
2145
+ glass?: AtomixGlassProps | boolean;
2017
2146
  }
2018
2147
 
2019
2148
  /**
@@ -2107,6 +2236,12 @@ export interface DropdownProps extends BaseComponentProps {
2107
2236
  * Optional ID for the dropdown
2108
2237
  */
2109
2238
  id?: string;
2239
+
2240
+ /**
2241
+ * Glass morphism effect for the dropdown menu
2242
+ * Can be a boolean to enable with default settings, or an object with AtomixGlassProps to customize the effect
2243
+ */
2244
+ glass?: AtomixGlassProps | boolean;
2110
2245
  }
2111
2246
 
2112
2247
  /**
@@ -2257,6 +2392,12 @@ export interface RatingProps extends BaseComponentProps {
2257
2392
  * Whether to use the vanilla JS implementation
2258
2393
  */
2259
2394
  useVanillaJS?: boolean;
2395
+
2396
+ /**
2397
+ * Glass morphism effect for the rating component
2398
+ * Can be a boolean to enable with default settings, or an object with AtomixGlassProps to customize the effect
2399
+ */
2400
+ glass?: AtomixGlassProps | boolean;
2260
2401
  }
2261
2402
 
2262
2403
  /**
@@ -2387,6 +2528,36 @@ export interface VideoPlayerProps extends BaseComponentProps {
2387
2528
  */
2388
2529
  ambientMode?: boolean;
2389
2530
 
2531
+ /**
2532
+ * Glass morphism variant configuration
2533
+ * - true: Enable with default settings
2534
+ * - false/undefined: Disable glass effect
2535
+ * - object: Custom glass configuration
2536
+ */
2537
+ glass?:
2538
+ | boolean
2539
+ | {
2540
+ displacementScale?: number;
2541
+ blurAmount?: number;
2542
+ saturation?: number;
2543
+ aberrationIntensity?: number;
2544
+ elasticity?: number;
2545
+ cornerRadius?: number;
2546
+ mode?: 'standard' | 'polar' | 'prominent' | 'shader';
2547
+ overLight?: boolean;
2548
+ };
2549
+
2550
+ /**
2551
+ * Glass overlay opacity (0-1) when glass variant is enabled
2552
+ * @default 0.3
2553
+ */
2554
+ glassOpacity?: number;
2555
+
2556
+ /**
2557
+ * Custom content to display over the glass layer
2558
+ */
2559
+ glassContent?: React.ReactNode;
2560
+
2390
2561
  /**
2391
2562
  * Play event handler
2392
2563
  */
@@ -2548,11 +2719,28 @@ export interface CardProps extends BaseComponentProps {
2548
2719
  */
2549
2720
  active?: boolean;
2550
2721
 
2722
+ /**
2723
+ * Applies a glass morphism effect to the card.
2724
+ * Can be a boolean to enable with default settings, or an object with `AtomixGlassProps` to customize the effect.
2725
+ */
2726
+ glass?: boolean | Omit<React.ComponentProps<typeof AtomixGlass>, 'children'>;
2727
+
2728
+ cardAppearance?: boolean;
2551
2729
  /**
2552
2730
  * Card content (body)
2553
2731
  */
2554
2732
  children?: ReactNode;
2555
2733
 
2734
+ /**
2735
+ * Card styles
2736
+ */
2737
+ styles?: React.CSSProperties;
2738
+
2739
+ /**
2740
+ * Card className
2741
+ */
2742
+ className?: string;
2743
+
2556
2744
  /**
2557
2745
  * Optional click handler
2558
2746
  */
@@ -4748,3 +4936,437 @@ export interface CodeBlockProps extends BaseComponentProps {
4748
4936
  */
4749
4937
  showToolbar?: boolean;
4750
4938
  }
4939
+
4940
+ // ============================================================================
4941
+ // FOOTER COMPONENT TYPES
4942
+ // ============================================================================
4943
+
4944
+ /**
4945
+ * Footer layout options
4946
+ */
4947
+ export type FooterLayout = 'columns' | 'centered' | 'minimal' | 'stacked';
4948
+
4949
+ /**
4950
+ * Social media platform types
4951
+ */
4952
+ export type SocialPlatform =
4953
+ | 'facebook'
4954
+ | 'twitter'
4955
+ | 'instagram'
4956
+ | 'linkedin'
4957
+ | 'youtube'
4958
+ | 'github'
4959
+ | 'discord'
4960
+ | 'tiktok'
4961
+ | 'pinterest'
4962
+ | 'snapchat'
4963
+ | 'whatsapp'
4964
+ | 'telegram'
4965
+ | 'reddit'
4966
+ | 'twitch'
4967
+ | 'spotify'
4968
+ | 'dribbble'
4969
+ | 'behance'
4970
+ | 'medium'
4971
+ | 'dev'
4972
+ | 'codepen'
4973
+ | 'custom';
4974
+
4975
+ /**
4976
+ * Social link configuration
4977
+ */
4978
+ export interface SocialLink {
4979
+ /**
4980
+ * Social media platform
4981
+ */
4982
+ platform: SocialPlatform;
4983
+
4984
+ /**
4985
+ * URL to the social media profile
4986
+ */
4987
+ url: string;
4988
+
4989
+ /**
4990
+ * Custom icon (for custom platform or override)
4991
+ */
4992
+ icon?: ReactNode;
4993
+
4994
+ /**
4995
+ * Custom label for accessibility
4996
+ */
4997
+ label?: string;
4998
+ }
4999
+
5000
+ /**
5001
+ * Footer component properties
5002
+ */
5003
+ export interface FooterProps extends BaseComponentProps {
5004
+ /**
5005
+ * Brand name or logo
5006
+ */
5007
+ brand?: ReactNode;
5008
+
5009
+ /**
5010
+ * Brand logo (image URL or React element)
5011
+ */
5012
+ brandLogo?: string | ReactNode;
5013
+
5014
+ /**
5015
+ * Brand description text
5016
+ */
5017
+ brandDescription?: ReactNode;
5018
+
5019
+ /**
5020
+ * Copyright text
5021
+ */
5022
+ copyright?: ReactNode;
5023
+
5024
+ /**
5025
+ * Footer layout variant
5026
+ */
5027
+ layout?: FooterLayout;
5028
+
5029
+ /**
5030
+ * Color variant
5031
+ */
5032
+ variant?: ThemeColor;
5033
+
5034
+ /**
5035
+ * Size variant
5036
+ */
5037
+ size?: Size;
5038
+
5039
+ /**
5040
+ * Whether to show newsletter signup
5041
+ */
5042
+ showNewsletter?: boolean;
5043
+
5044
+ /**
5045
+ * Newsletter section title
5046
+ */
5047
+ newsletterTitle?: string;
5048
+
5049
+ /**
5050
+ * Newsletter section description
5051
+ */
5052
+ newsletterDescription?: string;
5053
+
5054
+ /**
5055
+ * Newsletter input placeholder
5056
+ */
5057
+ newsletterPlaceholder?: string;
5058
+
5059
+ /**
5060
+ * Newsletter submit button text
5061
+ */
5062
+ newsletterButtonText?: string;
5063
+
5064
+ /**
5065
+ * Newsletter submit handler
5066
+ */
5067
+ onNewsletterSubmit?: (email: string) => void | Promise<void>;
5068
+
5069
+ /**
5070
+ * Social media links
5071
+ */
5072
+ socialLinks?: SocialLink[];
5073
+
5074
+ /**
5075
+ * Whether to show back to top button
5076
+ */
5077
+ showBackToTop?: boolean;
5078
+
5079
+ /**
5080
+ * Back to top button text
5081
+ */
5082
+ backToTopText?: string;
5083
+
5084
+ /**
5085
+ * Back to top click handler
5086
+ */
5087
+ onBackToTop?: () => void;
5088
+
5089
+ /**
5090
+ * Whether to show divider above bottom section
5091
+ */
5092
+ showDivider?: boolean;
5093
+
5094
+ /**
5095
+ * Whether footer should be sticky
5096
+ */
5097
+ sticky?: boolean;
5098
+
5099
+ /**
5100
+ * Footer sections content
5101
+ */
5102
+ children?: ReactNode;
5103
+ }
5104
+
5105
+ /**
5106
+ * Footer section component properties
5107
+ */
5108
+ export interface FooterSectionProps extends BaseComponentProps {
5109
+ /**
5110
+ * Section title
5111
+ */
5112
+ title?: ReactNode;
5113
+
5114
+ /**
5115
+ * Section icon
5116
+ */
5117
+ icon?: ReactNode;
5118
+
5119
+ /**
5120
+ * Whether section is collapsible on mobile
5121
+ */
5122
+ collapsible?: boolean;
5123
+
5124
+ /**
5125
+ * Whether section is collapsed by default
5126
+ */
5127
+ defaultCollapsed?: boolean;
5128
+
5129
+ /**
5130
+ * Section content
5131
+ */
5132
+ children: ReactNode;
5133
+ }
5134
+
5135
+ /**
5136
+ * Footer link component properties
5137
+ */
5138
+ export interface FooterLinkProps extends BaseComponentProps {
5139
+ /**
5140
+ * Link URL
5141
+ */
5142
+ href?: string;
5143
+
5144
+ /**
5145
+ * Link icon
5146
+ */
5147
+ icon?: ReactNode;
5148
+
5149
+ /**
5150
+ * Whether link opens in new tab
5151
+ */
5152
+ external?: boolean;
5153
+
5154
+ /**
5155
+ * Whether link is active
5156
+ */
5157
+ active?: boolean;
5158
+
5159
+ /**
5160
+ * Link click handler
5161
+ */
5162
+ onClick?: (event: React.MouseEvent<HTMLAnchorElement>) => void;
5163
+
5164
+ /**
5165
+ * Link content
5166
+ */
5167
+ children: ReactNode;
5168
+
5169
+ /**
5170
+ * Custom link component (e.g., React Router Link)
5171
+ */
5172
+ LinkComponent?: React.ElementType;
5173
+ }
5174
+
5175
+ /**
5176
+ * Footer social link component properties
5177
+ */
5178
+ export interface FooterSocialLinkProps extends BaseComponentProps {
5179
+ /**
5180
+ * Social media platform
5181
+ */
5182
+ platform: SocialPlatform;
5183
+
5184
+ /**
5185
+ * Social media profile URL
5186
+ */
5187
+ url: string;
5188
+
5189
+ /**
5190
+ * Custom icon
5191
+ */
5192
+ icon?: ReactNode;
5193
+
5194
+ /**
5195
+ * Custom label for accessibility
5196
+ */
5197
+ label?: string;
5198
+
5199
+ /**
5200
+ * Size variant
5201
+ */
5202
+ size?: Size;
5203
+
5204
+ /**
5205
+ * Visual variant
5206
+ */
5207
+ variant?: 'default' | 'filled' | 'outlined';
5208
+ }
5209
+
5210
+ // ============================================================================
5211
+ // GLASS CONTAINER COMPONENT TYPES
5212
+ // ============================================================================
5213
+
5214
+ /**
5215
+ * Glass container displacement modes
5216
+ */
5217
+ export type GlassMode = 'standard' | 'polar' | 'prominent' | 'shader';
5218
+
5219
+ /**
5220
+ * Glass container size configuration
5221
+ */
5222
+ export interface GlassSize {
5223
+ /**
5224
+ * Width of the glass container
5225
+ */
5226
+ width: number;
5227
+
5228
+ /**
5229
+ * Height of the glass container
5230
+ */
5231
+ height: number;
5232
+ }
5233
+
5234
+ /**
5235
+ * Mouse position coordinates
5236
+ */
5237
+ export interface MousePosition {
5238
+ /**
5239
+ * X coordinate
5240
+ */
5241
+ x: number;
5242
+
5243
+ /**
5244
+ * Y coordinate
5245
+ */
5246
+ y: number;
5247
+ }
5248
+
5249
+ /**
5250
+ * Glass container component properties
5251
+ */
5252
+ export interface GlassContainerProps extends BaseComponentProps {
5253
+ /**
5254
+ * Content to display inside the glass container
5255
+ */
5256
+ children: ReactNode;
5257
+
5258
+ /**
5259
+ * Scale of the displacement effect (0-100)
5260
+ * @default 25
5261
+ */
5262
+ displacementScale?: number;
5263
+
5264
+ /**
5265
+ * Amount of blur applied to the backdrop (0-50)
5266
+ * @default 12
5267
+ */
5268
+ blurAmount?: number;
5269
+
5270
+ /**
5271
+ * Saturation level of the backdrop filter (0-300%)
5272
+ * @default 180
5273
+ */
5274
+ saturation?: number;
5275
+
5276
+ /**
5277
+ * Intensity of chromatic aberration effect (0-10)
5278
+ * @default 2
5279
+ */
5280
+ aberrationIntensity?: number;
5281
+
5282
+ /**
5283
+ * Elasticity of mouse interaction effects (0-1)
5284
+ * @default 0.15
5285
+ */
5286
+ elasticity?: number;
5287
+
5288
+ /**
5289
+ * Border radius of the glass container
5290
+ * @default 999
5291
+ */
5292
+ cornerRadius?: number;
5293
+
5294
+ /**
5295
+ * Padding inside the glass container
5296
+ * @default '24px 32px'
5297
+ */
5298
+ padding?: string;
5299
+
5300
+ /**
5301
+ * Size configuration for the glass container
5302
+ * @default { width: 270, height: 69 }
5303
+ */
5304
+ glassSize?: GlassSize;
5305
+
5306
+ /**
5307
+ * Displacement map mode
5308
+ * @default 'standard'
5309
+ */
5310
+ mode?: GlassMode;
5311
+
5312
+ /**
5313
+ * Whether the container is over a light background
5314
+ * @default false
5315
+ */
5316
+ overLight?: boolean;
5317
+
5318
+ /**
5319
+ * Active state of the container
5320
+ * @default false
5321
+ */
5322
+ active?: boolean;
5323
+
5324
+ /**
5325
+ * Click handler for the glass container
5326
+ */
5327
+ onClick?: () => void;
5328
+
5329
+ /**
5330
+ * Mouse enter handler
5331
+ */
5332
+ onMouseEnter?: () => void;
5333
+
5334
+ /**
5335
+ * Mouse leave handler
5336
+ */
5337
+ onMouseLeave?: () => void;
5338
+
5339
+ /**
5340
+ * Mouse down handler
5341
+ */
5342
+ onMouseDown?: () => void;
5343
+
5344
+ /**
5345
+ * Mouse up handler
5346
+ */
5347
+ onMouseUp?: () => void;
5348
+
5349
+ /**
5350
+ * External mouse container reference for tracking
5351
+ */
5352
+ mouseContainer?: React.RefObject<HTMLElement | null>;
5353
+
5354
+ /**
5355
+ * External global mouse position
5356
+ */
5357
+ globalMousePos?: MousePosition;
5358
+
5359
+ /**
5360
+ * External mouse offset from container center
5361
+ */
5362
+ mouseOffset?: MousePosition;
5363
+
5364
+ /**
5365
+ * Custom CSS styles
5366
+ */
5367
+ style?: React.CSSProperties;
5368
+ }
5369
+
5370
+ /**
5371
+ * AtomixGlass component properties
5372
+ */