@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
@@ -385,7 +385,7 @@ export const ValidationStates: Story = {
385
385
  valid={true}
386
386
  helperText="This input is valid"
387
387
  >
388
- <Input id="valid-input" value="John Doe" valid={true} />
388
+ <Input id="valid-input" value="John Doe" onChange={() => {}} valid={true} />
389
389
  </FormGroup>
390
390
 
391
391
  <FormGroup
@@ -394,7 +394,7 @@ export const ValidationStates: Story = {
394
394
  invalid={true}
395
395
  helperText="This input is invalid"
396
396
  >
397
- <Input id="invalid-input" value="test" invalid={true} />
397
+ <Input id="invalid-input" value="test" onChange={() => {}} invalid={true} />
398
398
  </FormGroup>
399
399
 
400
400
  <FormGroup
@@ -410,6 +410,7 @@ export const ValidationStates: Story = {
410
410
  { value: 'ca', label: 'Canada' },
411
411
  ]}
412
412
  value="us"
413
+ onChange={() => {}}
413
414
  valid={true}
414
415
  />
415
416
  </FormGroup>
@@ -426,6 +427,7 @@ export const ValidationStates: Story = {
426
427
  { value: 'us', label: 'United States' },
427
428
  { value: 'ca', label: 'Canada' },
428
429
  ]}
430
+ onChange={() => {}}
429
431
  invalid={true}
430
432
  />
431
433
  </FormGroup>
@@ -441,7 +443,12 @@ export const ValidationStates: Story = {
441
443
  </FormGroup>
442
444
 
443
445
  <FormGroup invalid={true} helperText="This checkbox is invalid">
444
- <Checkbox id="invalid-checkbox" label="Invalid Checkbox" invalid={true} />
446
+ <Checkbox
447
+ id="invalid-checkbox"
448
+ label="Invalid Checkbox"
449
+ onChange={() => {}}
450
+ invalid={true}
451
+ />
445
452
  </FormGroup>
446
453
  </Form>
447
454
  </div>
@@ -10,6 +10,7 @@ export const Form: React.FC<FormProps> = ({
10
10
  onSubmit,
11
11
  onReset,
12
12
  className = '',
13
+ style,
13
14
  disabled = false,
14
15
  id,
15
16
  method = 'post',
@@ -27,6 +28,7 @@ export const Form: React.FC<FormProps> = ({
27
28
  <form
28
29
  id={id}
29
30
  className={formClass}
31
+ style={style}
30
32
  onSubmit={handleSubmit(onSubmit)}
31
33
  onReset={handleReset(onReset)}
32
34
  method={method}
@@ -11,6 +11,7 @@ export const FormGroup: React.FC<FormGroupProps> = ({
11
11
  helperText,
12
12
  htmlFor,
13
13
  className = '',
14
+ style,
14
15
  disabled = false,
15
16
  required = false,
16
17
  invalid = false,
@@ -33,7 +34,7 @@ export const FormGroup: React.FC<FormGroupProps> = ({
33
34
  });
34
35
 
35
36
  return (
36
- <div className={formGroupClass}>
37
+ <div className={formGroupClass} style={style}>
37
38
  {label && (
38
39
  <label className="c-form-group__label" htmlFor={htmlFor}>
39
40
  {label}
@@ -115,7 +115,7 @@ export const Glass: Story = {
115
115
  placeholder: 'Glass Input',
116
116
  glass: true,
117
117
  },
118
- render: (args) => (
118
+ render: (args: any) => (
119
119
  <div
120
120
  style={{
121
121
  background: 'url(https://cdn.pixabay.com/photo/2021/11/13/08/50/athens-6790780_1280.jpg)',
@@ -159,13 +159,16 @@ export const GlassVariants: Story = {
159
159
  <Input placeholder="Large Glass" size="lg" glass />
160
160
  <Input placeholder="Primary Glass" variant="primary" glass />
161
161
  <Input placeholder="Success Glass" variant="success" glass />
162
- <Input placeholder="Custom Glass" glass={{
163
- displacementScale: 80,
164
- blurAmount: 2,
165
- saturation: 200,
166
- aberrationIntensity: 2,
167
- cornerRadius: 12,
168
- }} />
162
+ <Input
163
+ placeholder="Custom Glass"
164
+ glass={{
165
+ displacementScale: 80,
166
+ blurAmount: 2,
167
+ saturation: 200,
168
+ aberrationIntensity: 2,
169
+ cornerRadius: 12,
170
+ }}
171
+ />
169
172
  </div>
170
173
  </div>
171
174
  ),
@@ -215,9 +218,7 @@ export const GlassShowcase: Story = {
215
218
  justifyContent: 'center',
216
219
  }}
217
220
  >
218
- <h3 style={{ color: 'white', marginBottom: '1rem', fontSize: '1.2rem' }}>
219
- Glass Modes
220
- </h3>
221
+ <h3 style={{ color: 'white', marginBottom: '1rem', fontSize: '1.2rem' }}>Glass Modes</h3>
221
222
  <div className="u-d-flex u-flex-column u-gap-3" style={{ width: '300px' }}>
222
223
  <Input placeholder="Standard Mode" glass={{ mode: 'standard' }} />
223
224
  <Input placeholder="Polar Mode" glass={{ mode: 'polar' }} />
@@ -6,108 +6,110 @@ import { AtomixGlass } from '../AtomixGlass/AtomixGlass';
6
6
  /**
7
7
  * Input - A component for text input fields
8
8
  */
9
- export const Input = forwardRef<HTMLInputElement, InputProps>(({
10
- type = 'text',
11
- value,
12
- onChange,
13
- onBlur,
14
- onFocus,
15
- placeholder,
16
- className = '',
17
- disabled = false,
18
- required = false,
19
- readOnly = false,
20
- id,
21
- name,
22
- autoComplete,
23
- autoFocus = false,
24
- size = 'md',
25
- variant,
26
- invalid = false,
27
- valid = false,
28
- maxLength,
29
- minLength,
30
- pattern,
31
- min,
32
- max,
33
- step,
34
- ariaLabel,
35
- ariaDescribedBy,
36
- glass,
37
- }, ref) => {
38
- const { generateInputClass } = useInput({
39
- size,
40
- variant,
41
- disabled,
42
- invalid,
43
- valid,
44
- });
9
+ export const Input = forwardRef<HTMLInputElement, InputProps>(
10
+ (
11
+ {
12
+ type = 'text',
13
+ value,
14
+ onChange,
15
+ onBlur,
16
+ onFocus,
17
+ placeholder,
18
+ className = '',
19
+ style,
20
+ disabled = false,
21
+ required = false,
22
+ readOnly = false,
23
+ id,
24
+ name,
25
+ autoComplete,
26
+ autoFocus = false,
27
+ size = 'md',
28
+ variant,
29
+ invalid = false,
30
+ valid = false,
31
+ maxLength,
32
+ minLength,
33
+ pattern,
34
+ min,
35
+ max,
36
+ step,
37
+ ariaLabel,
38
+ ariaDescribedBy,
39
+ glass,
40
+ },
41
+ ref
42
+ ) => {
43
+ const { generateInputClass } = useInput({
44
+ size,
45
+ variant,
46
+ disabled,
47
+ invalid,
48
+ valid,
49
+ });
45
50
 
46
- const inputClass = generateInputClass({
47
- className: `${className} ${glass ? 'c-input--glass' : ''}`.trim(),
48
- size,
49
- variant,
50
- disabled,
51
- invalid,
52
- valid,
53
- type,
54
- });
51
+ const inputClass = generateInputClass({
52
+ className: `${className} ${glass ? 'c-input--glass' : ''}`.trim(),
53
+ size,
54
+ variant,
55
+ disabled,
56
+ invalid,
57
+ valid,
58
+ type,
59
+ });
55
60
 
56
- // Custom styles for glass effect
57
- const glassStyles = glass ? {} : {};
61
+ // Custom styles for glass effect
62
+ const glassStyles = glass ? {} : {};
58
63
 
59
- const inputElement = (
60
- <input
61
- ref={ref}
62
- type={type}
63
- className={inputClass}
64
- value={value}
65
- onChange={onChange}
66
- onBlur={onBlur}
67
- onFocus={onFocus}
68
- placeholder={placeholder}
69
- disabled={disabled}
70
- required={required}
71
- readOnly={readOnly}
72
- id={id}
73
- name={name}
74
- autoComplete={autoComplete}
75
- autoFocus={autoFocus}
76
- maxLength={maxLength}
77
- minLength={minLength}
78
- pattern={pattern}
79
- min={min}
80
- max={max}
81
- step={step}
82
- aria-label={ariaLabel}
83
- aria-describedby={ariaDescribedBy}
84
- aria-invalid={invalid}
85
- style={glass ? glassStyles : undefined}
86
- />
87
- );
64
+ const inputElement = (
65
+ <input
66
+ ref={ref}
67
+ type={type}
68
+ className={inputClass}
69
+ value={value}
70
+ onChange={onChange}
71
+ onBlur={onBlur}
72
+ onFocus={onFocus}
73
+ placeholder={placeholder}
74
+ disabled={disabled}
75
+ required={required}
76
+ readOnly={readOnly}
77
+ id={id}
78
+ name={name}
79
+ autoComplete={autoComplete}
80
+ autoFocus={autoFocus}
81
+ maxLength={maxLength}
82
+ minLength={minLength}
83
+ pattern={pattern}
84
+ min={min}
85
+ max={max}
86
+ step={step}
87
+ aria-label={ariaLabel}
88
+ aria-describedby={ariaDescribedBy}
89
+ aria-invalid={invalid}
90
+ style={glass ? { ...glassStyles, ...style } : style}
91
+ />
92
+ );
88
93
 
89
- if (glass) {
90
- // Default glass settings for inputs
91
- const defaultGlassProps = {
92
- displacementScale: 60,
93
- blurAmount: 1,
94
- saturation: 180,
95
- aberrationIntensity: 0.2,
96
- cornerRadius: 12,
97
- mode: 'shader' as const,
98
- };
94
+ if (glass) {
95
+ // Default glass settings for inputs
96
+ const defaultGlassProps = {
97
+ displacementScale: 60,
98
+ blurAmount: 1,
99
+ saturation: 180,
100
+ aberrationIntensity: 0.2,
101
+ cornerRadius: 12,
102
+ mode: 'shader' as const,
103
+ };
99
104
 
100
- const glassProps = glass === true ? defaultGlassProps : { ...defaultGlassProps, ...glass };
105
+ const glassProps = glass === true ? defaultGlassProps : { ...defaultGlassProps, ...glass };
101
106
 
102
- return (
103
- <AtomixGlass {...glassProps}>
104
- {inputElement}
105
- </AtomixGlass>
106
- );
107
- }
107
+ return <AtomixGlass {...glassProps}>{inputElement}</AtomixGlass>;
108
+ }
108
109
 
109
- return inputElement;
110
- });
110
+ return inputElement;
111
+ }
112
+ );
111
113
 
112
114
  Input.displayName = 'Input';
113
115
 
@@ -59,7 +59,7 @@ export const Checked: Story = {
59
59
 
60
60
  // Radio button group
61
61
  export const RadioGroup: Story = {
62
- render: args => (
62
+ render: (args: any) => (
63
63
  <div className="u-d-flex u-flex-column u-gap-2">
64
64
  <Radio label="Option 1" name="radioGroup" value="option1" checked />
65
65
  <Radio label="Option 2" name="radioGroup" value="option2" />
@@ -70,7 +70,7 @@ export const RadioGroup: Story = {
70
70
 
71
71
  // Radio button states
72
72
  export const States: Story = {
73
- render: args => (
73
+ render: (args: any) => (
74
74
  <div className="u-d-flex u-flex-column u-gap-2">
75
75
  <Radio label="Default radio" name="states" value="default" />
76
76
  <Radio label="Checked radio" name="states" value="checked" checked />
@@ -105,7 +105,7 @@ export const Glass: Story = {
105
105
  value: 'glass',
106
106
  glass: true,
107
107
  },
108
- render: (args) => (
108
+ render: (args: any) => (
109
109
  <div
110
110
  style={{
111
111
  background: 'linear-gradient(135deg, #667eea 0%, #764ba2 100%)',
@@ -136,10 +136,11 @@ export const GlassCustom: Story = {
136
136
  cornerRadius: 12,
137
137
  },
138
138
  },
139
- render: (args) => (
139
+ render: (args: any) => (
140
140
  <div
141
141
  style={{
142
- background: 'url(https://images.unsplash.com/photo-1506905925346-21bda4d32df4?ixlib=rb-4.0.3&auto=format&fit=crop&w=1000&q=80)',
142
+ background:
143
+ 'url(https://images.unsplash.com/photo-1506905925346-21bda4d32df4?ixlib=rb-4.0.3&auto=format&fit=crop&w=1000&q=80)',
143
144
  backgroundSize: 'cover',
144
145
  backgroundPosition: 'center',
145
146
  padding: '2rem',
@@ -170,7 +171,14 @@ export const GlassGroup: Story = {
170
171
  }}
171
172
  >
172
173
  <div>
173
- <h3 style={{ color: 'white', marginBottom: '2rem', textAlign: 'center', textShadow: '0 2px 4px rgba(0,0,0,0.5)' }}>
174
+ <h3
175
+ style={{
176
+ color: 'white',
177
+ marginBottom: '2rem',
178
+ textAlign: 'center',
179
+ textShadow: '0 2px 4px rgba(0,0,0,0.5)',
180
+ }}
181
+ >
174
182
  Glass Radio Group
175
183
  </h3>
176
184
  <div className="u-d-flex u-flex-column u-gap-2">
@@ -209,7 +217,14 @@ export const GlassStates: Story = {
209
217
  `}
210
218
  </style>
211
219
  <div>
212
- <h3 style={{ color: 'white', marginBottom: '2rem', textAlign: 'center', textShadow: '0 2px 4px rgba(0,0,0,0.5)' }}>
220
+ <h3
221
+ style={{
222
+ color: 'white',
223
+ marginBottom: '2rem',
224
+ textAlign: 'center',
225
+ textShadow: '0 2px 4px rgba(0,0,0,0.5)',
226
+ }}
227
+ >
213
228
  Glass Radio States
214
229
  </h3>
215
230
  <div className="u-d-flex u-flex-column u-gap-2">
@@ -11,6 +11,7 @@ export const Radio: React.FC<RadioProps> = ({
11
11
  checked = false,
12
12
  onChange,
13
13
  className = '',
14
+ style,
14
15
  disabled = false,
15
16
  required = false,
16
17
  id,
@@ -36,7 +37,7 @@ export const Radio: React.FC<RadioProps> = ({
36
37
  });
37
38
 
38
39
  const radioContent = (
39
- <div className={radioClass}>
40
+ <div className={radioClass} style={style}>
40
41
  <input
41
42
  type="radio"
42
43
  className="c-radio__input"
@@ -72,11 +73,7 @@ export const Radio: React.FC<RadioProps> = ({
72
73
 
73
74
  const glassProps = glass === true ? defaultGlassProps : { ...defaultGlassProps, ...glass };
74
75
 
75
- return (
76
- <AtomixGlass {...glassProps}>
77
- {radioContent}
78
- </AtomixGlass>
79
- );
76
+ return <AtomixGlass {...glassProps}>{radioContent}</AtomixGlass>;
80
77
  }
81
78
 
82
79
  return radioContent;
@@ -161,7 +161,7 @@ export const Glass: Story = {
161
161
  placeholder: 'Glass Select',
162
162
  glass: true,
163
163
  },
164
- render: (args) => (
164
+ render: (args: any) => (
165
165
  <div
166
166
  style={{
167
167
  background: 'linear-gradient(135deg, #667eea 0%, #764ba2 100%)',
@@ -193,10 +193,11 @@ export const GlassCustom: Story = {
193
193
  cornerRadius: 12,
194
194
  },
195
195
  },
196
- render: (args) => (
196
+ render: (args: any) => (
197
197
  <div
198
198
  style={{
199
- background: 'url(https://images.unsplash.com/photo-1506905925346-21bda4d32df4?ixlib=rb-4.0.3&auto=format&fit=crop&w=1000&q=80)',
199
+ background:
200
+ 'url(https://images.unsplash.com/photo-1506905925346-21bda4d32df4?ixlib=rb-4.0.3&auto=format&fit=crop&w=1000&q=80)',
200
201
  backgroundSize: 'cover',
201
202
  backgroundPosition: 'center',
202
203
  padding: '2rem',
@@ -208,7 +209,14 @@ export const GlassCustom: Story = {
208
209
  }}
209
210
  >
210
211
  <div style={{ width: '100%', maxWidth: '300px' }}>
211
- <h3 style={{ color: 'white', marginBottom: '1rem', textAlign: 'center', textShadow: '0 2px 4px rgba(0,0,0,0.5)' }}>
212
+ <h3
213
+ style={{
214
+ color: 'white',
215
+ marginBottom: '1rem',
216
+ textAlign: 'center',
217
+ textShadow: '0 2px 4px rgba(0,0,0,0.5)',
218
+ }}
219
+ >
212
220
  Custom Glass Select
213
221
  </h3>
214
222
  <Select {...args} />
@@ -222,7 +230,7 @@ export const GlassStates: Story = {
222
230
  args: {
223
231
  options: countries,
224
232
  },
225
- render: (args) => (
233
+ render: (args: any) => (
226
234
  <div
227
235
  style={{
228
236
  background: 'linear-gradient(45deg, #ff6b6b, #4ecdc4, #45b7d1, #96ceb4, #feca57)',
@@ -246,7 +254,14 @@ export const GlassStates: Story = {
246
254
  `}
247
255
  </style>
248
256
  <div style={{ width: '100%', maxWidth: '300px' }}>
249
- <h3 style={{ color: 'white', marginBottom: '2rem', textAlign: 'center', textShadow: '0 2px 4px rgba(0,0,0,0.5)' }}>
257
+ <h3
258
+ style={{
259
+ color: 'white',
260
+ marginBottom: '2rem',
261
+ textAlign: 'center',
262
+ textShadow: '0 2px 4px rgba(0,0,0,0.5)',
263
+ }}
264
+ >
250
265
  Glass Select States
251
266
  </h3>
252
267
  <div className="u-d-flex u-flex-column u-gap-3">
@@ -15,6 +15,7 @@ export const Select: React.FC<SelectProps> = ({
15
15
  onFocus,
16
16
  placeholder = 'Select an option',
17
17
  className = '',
18
+ style,
18
19
  disabled = false,
19
20
  required = false,
20
21
  id,
@@ -118,6 +119,7 @@ export const Select: React.FC<SelectProps> = ({
118
119
  <div
119
120
  className={`${selectClass} ${isOpen ? SELECT.CLASSES.IS_OPEN : ''}`}
120
121
  ref={dropdownRef}
122
+ style={style}
121
123
  aria-expanded={isOpen}
122
124
  >
123
125
  {/* Native select for accessibility and form submission */}
@@ -198,11 +200,7 @@ export const Select: React.FC<SelectProps> = ({
198
200
 
199
201
  const glassProps = glass === true ? defaultGlassProps : { ...defaultGlassProps, ...glass };
200
202
 
201
- return (
202
- <AtomixGlass {...glassProps}>
203
- {selectContent}
204
- </AtomixGlass>
205
- );
203
+ return <AtomixGlass {...glassProps}>{selectContent}</AtomixGlass>;
206
204
  }
207
205
 
208
206
  return selectContent;
@@ -133,7 +133,7 @@ export const Glass: Story = {
133
133
  rows: 4,
134
134
  glass: true,
135
135
  },
136
- render: (args) => (
136
+ render: (args: any) => (
137
137
  <div
138
138
  style={{
139
139
  background: 'linear-gradient(135deg, #667eea 0%, #764ba2 100%)',
@@ -169,13 +169,17 @@ export const GlassVariants: Story = {
169
169
  <Textarea placeholder="Large Glass" size="lg" rows={3} glass />
170
170
  <Textarea placeholder="Primary Glass" variant="primary" rows={3} glass />
171
171
  <Textarea placeholder="Success Glass" variant="success" rows={3} glass />
172
- <Textarea placeholder="Custom Glass" rows={4} glass={{
173
- displacementScale: 80,
174
- blurAmount: 2,
175
- saturation: 200,
176
- aberrationIntensity: 2,
177
- cornerRadius: 12,
178
- }} />
172
+ <Textarea
173
+ placeholder="Custom Glass"
174
+ rows={4}
175
+ glass={{
176
+ displacementScale: 80,
177
+ blurAmount: 2,
178
+ saturation: 200,
179
+ aberrationIntensity: 2,
180
+ cornerRadius: 12,
181
+ }}
182
+ />
179
183
  </div>
180
184
  </div>
181
185
  ),
@@ -212,9 +216,7 @@ export const GlassShowcase: Story = {
212
216
  borderRadius: '12px',
213
217
  }}
214
218
  >
215
- <h3 style={{ color: 'white', marginBottom: '1rem', fontSize: '1.2rem' }}>
216
- Glass Modes
217
- </h3>
219
+ <h3 style={{ color: 'white', marginBottom: '1rem', fontSize: '1.2rem' }}>Glass Modes</h3>
218
220
  <div className="u-d-flex u-flex-column u-gap-3" style={{ width: '400px' }}>
219
221
  <Textarea placeholder="Standard Mode" rows={3} glass={{ mode: 'standard' }} />
220
222
  <Textarea placeholder="Polar Mode" rows={3} glass={{ mode: 'polar' }} />