@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.
- package/README.md +19 -0
- package/dist/atomix.css +1703 -1544
- package/dist/atomix.min.css +4 -4
- package/dist/index.d.ts +1465 -963
- package/dist/index.esm.js +16289 -25908
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +15650 -21780
- package/dist/index.js.map +1 -1
- package/dist/index.min.js +1 -1
- package/dist/index.min.js.map +1 -1
- package/dist/themes/applemix.css +15008 -0
- package/dist/themes/applemix.min.css +72 -0
- package/dist/themes/boomdevs.css +1608 -1450
- package/dist/themes/boomdevs.min.css +5 -5
- package/dist/themes/esrar.css +1702 -1543
- package/dist/themes/esrar.min.css +4 -4
- package/dist/themes/flashtrade.css +15159 -0
- package/dist/themes/flashtrade.min.css +86 -0
- package/dist/themes/mashroom.css +1699 -1540
- package/dist/themes/mashroom.min.css +7 -7
- package/dist/themes/shaj-default.css +1693 -1534
- package/dist/themes/shaj-default.min.css +4 -4
- package/package.json +6 -17
- package/src/components/Accordion/Accordion.stories.tsx +662 -21
- package/src/components/Accordion/Accordion.tsx +21 -14
- package/src/components/AtomixGlass/AtomixGlass.test.tsx +106 -72
- package/src/components/AtomixGlass/AtomixGlass.tsx +529 -1195
- package/src/components/AtomixGlass/AtomixGlassContainer.tsx +400 -0
- package/src/components/AtomixGlass/GlassFilter.tsx +156 -0
- package/src/components/AtomixGlass/README.md +124 -2
- package/src/components/AtomixGlass/atomixGLass.old.tsx +1266 -0
- package/src/components/AtomixGlass/glass-utils.ts +263 -0
- package/src/components/AtomixGlass/shader-utils.ts +792 -68
- package/src/components/AtomixGlass/stories/AtomixGlass.stories.tsx +1250 -0
- package/src/components/AtomixGlass/stories/Examples.stories.tsx +5768 -0
- package/src/components/AtomixGlass/stories/Modes.stories.tsx +1065 -0
- package/src/components/AtomixGlass/stories/Playground.stories.tsx +1129 -0
- package/src/components/AtomixGlass/stories/ShaderVariants.stories.tsx +395 -0
- package/src/components/AtomixGlass/stories/shared-components.tsx +301 -0
- package/src/components/AtomixGlass/utils.ts +3 -3
- package/src/components/Avatar/Avatar.tsx +3 -0
- package/src/components/Avatar/AvatarGroup.tsx +2 -1
- package/src/components/Badge/Badge.stories.tsx +76 -55
- package/src/components/Badge/Badge.tsx +12 -14
- package/src/components/Breadcrumb/Breadcrumb.tsx +23 -4
- package/src/components/Button/Button.stories.tsx +501 -20
- package/src/components/Button/Button.tsx +5 -8
- package/src/components/Callout/Callout.stories.tsx +86 -35
- package/src/components/Callout/Callout.tsx +31 -9
- package/src/components/Card/Card.stories.tsx +565 -2
- package/src/components/Card/Card.tsx +15 -4
- package/src/components/Card/ElevationCard.tsx +2 -0
- package/src/components/Chart/AnimatedChart.tsx +179 -156
- package/src/components/Chart/AreaChart.tsx +123 -12
- package/src/components/Chart/BarChart.tsx +91 -100
- package/src/components/Chart/BaseChart.tsx +80 -0
- package/src/components/Chart/BubbleChart.tsx +114 -290
- package/src/components/Chart/CandlestickChart.tsx +282 -622
- package/src/components/Chart/Chart.stories.tsx +576 -179
- package/src/components/Chart/Chart.tsx +374 -75
- package/src/components/Chart/ChartRenderer.tsx +371 -220
- package/src/components/Chart/ChartToolbar.tsx +372 -61
- package/src/components/Chart/ChartTooltip.tsx +33 -18
- package/src/components/Chart/DonutChart.tsx +172 -254
- package/src/components/Chart/FunnelChart.tsx +169 -240
- package/src/components/Chart/GaugeChart.tsx +224 -392
- package/src/components/Chart/HeatmapChart.tsx +302 -440
- package/src/components/Chart/LineChart.tsx +148 -103
- package/src/components/Chart/MultiAxisChart.tsx +267 -395
- package/src/components/Chart/PieChart.tsx +114 -64
- package/src/components/Chart/RadarChart.tsx +202 -218
- package/src/components/Chart/ScatterChart.tsx +111 -97
- package/src/components/Chart/TreemapChart.tsx +147 -222
- package/src/components/Chart/WaterfallChart.tsx +253 -291
- package/src/components/Chart/index.ts +11 -9
- package/src/components/Chart/types.ts +85 -9
- package/src/components/Chart/utils.ts +66 -0
- package/src/components/ColorModeToggle/ColorModeToggle.tsx +6 -3
- package/src/components/Countdown/Countdown.tsx +4 -0
- package/src/components/DataTable/DataTable.tsx +2 -1
- package/src/components/DatePicker/DatePicker.stories.tsx +689 -12
- package/src/components/DatePicker/DatePicker.tsx +3 -9
- package/src/components/DatePicker/types.ts +5 -0
- package/src/components/Dropdown/Dropdown.stories.tsx +32 -25
- package/src/components/Dropdown/Dropdown.tsx +26 -28
- package/src/components/EdgePanel/EdgePanel.stories.tsx +473 -2
- package/src/components/EdgePanel/EdgePanel.tsx +101 -13
- package/src/components/Footer/Footer.stories.tsx +187 -60
- package/src/components/Footer/Footer.test.tsx +134 -0
- package/src/components/Footer/Footer.tsx +133 -34
- package/src/components/Footer/FooterLink.tsx +1 -1
- package/src/components/Footer/FooterSection.tsx +53 -36
- package/src/components/Footer/FooterSocialLink.tsx +32 -29
- package/src/components/Footer/README.md +82 -3
- package/src/components/Footer/index.ts +1 -1
- package/src/components/Form/Checkbox.stories.tsx +13 -5
- package/src/components/Form/Checkbox.tsx +3 -6
- package/src/components/Form/Form.stories.tsx +10 -3
- package/src/components/Form/Form.tsx +2 -0
- package/src/components/Form/FormGroup.tsx +2 -1
- package/src/components/Form/Input.stories.tsx +12 -11
- package/src/components/Form/Input.tsx +97 -95
- package/src/components/Form/Radio.stories.tsx +22 -7
- package/src/components/Form/Radio.tsx +3 -6
- package/src/components/Form/Select.stories.tsx +21 -6
- package/src/components/Form/Select.tsx +3 -5
- package/src/components/Form/Textarea.stories.tsx +13 -11
- package/src/components/Form/Textarea.tsx +88 -86
- package/src/components/Hero/Hero.stories.tsx +2 -3
- package/src/components/Hero/Hero.tsx +5 -6
- package/src/components/Icon/Icon.tsx +12 -1
- package/src/components/List/List.tsx +2 -1
- package/src/components/List/ListGroup.tsx +2 -1
- package/src/components/Messages/Messages.stories.tsx +113 -0
- package/src/components/Messages/Messages.tsx +52 -9
- package/src/components/Modal/Modal.stories.tsx +48 -32
- package/src/components/Modal/Modal.tsx +19 -24
- package/src/components/Navigation/Menu/MegaMenu.tsx +2 -2
- package/src/components/Navigation/Menu/Menu.tsx +2 -2
- package/src/components/Navigation/Nav/Nav.stories.tsx +469 -0
- package/src/components/Navigation/Nav/Nav.tsx +22 -4
- package/src/components/Navigation/Nav/NavDropdown.tsx +10 -1
- package/src/components/Navigation/Navbar/Navbar.stories.tsx +413 -0
- package/src/components/Navigation/Navbar/Navbar.tsx +70 -29
- package/src/components/Navigation/SideMenu/SideMenu.stories.tsx +340 -0
- package/src/components/Navigation/SideMenu/SideMenu.tsx +29 -2
- package/src/components/Pagination/Pagination.stories.tsx +13 -6
- package/src/components/Pagination/Pagination.tsx +7 -6
- package/src/components/PhotoViewer/PhotoViewer.tsx +2 -1
- package/src/components/Popover/Popover.stories.tsx +32 -24
- package/src/components/Popover/Popover.tsx +4 -1
- package/src/components/ProductReview/ProductReview.tsx +8 -2
- package/src/components/Progress/Progress.tsx +19 -3
- package/src/components/Rating/Rating.stories.tsx +11 -6
- package/src/components/Rating/Rating.tsx +3 -5
- package/src/components/River/River.tsx +5 -5
- package/src/components/SectionIntro/SectionIntro.tsx +8 -2
- package/src/components/Slider/Slider.stories.tsx +4 -4
- package/src/components/Slider/Slider.tsx +4 -3
- package/src/components/Spinner/Spinner.tsx +19 -3
- package/src/components/Steps/Steps.stories.tsx +5 -4
- package/src/components/Steps/Steps.tsx +8 -5
- package/src/components/Tab/Tab.stories.tsx +4 -3
- package/src/components/Tab/Tab.tsx +8 -6
- package/src/components/Testimonial/Testimonial.tsx +8 -2
- package/src/components/Todo/Todo.tsx +2 -1
- package/src/components/Toggle/Toggle.stories.tsx +5 -4
- package/src/components/Toggle/Toggle.tsx +8 -5
- package/src/components/Tooltip/Tooltip.stories.tsx +40 -30
- package/src/components/Tooltip/Tooltip.tsx +9 -2
- package/src/components/Upload/Upload.stories.tsx +252 -0
- package/src/components/Upload/Upload.tsx +92 -53
- package/src/components/VideoPlayer/VideoPlayer.tsx +3 -1
- package/src/components/index.ts +0 -4
- package/src/layouts/Grid/Grid.stories.tsx +10 -23
- package/src/layouts/Grid/Grid.tsx +20 -1
- package/src/layouts/Grid/GridCol.tsx +76 -48
- package/src/lib/composables/useAtomixGlass.ts +861 -44
- package/src/lib/composables/useBarChart.ts +21 -4
- package/src/lib/composables/useChart.ts +227 -370
- package/src/lib/composables/useChartExport.ts +19 -78
- package/src/lib/composables/useChartToolbar.ts +11 -21
- package/src/lib/composables/useEdgePanel.ts +125 -71
- package/src/lib/composables/useFooter.ts +3 -3
- package/src/lib/composables/useGlassContainer.ts +16 -7
- package/src/lib/composables/useLineChart.ts +11 -2
- package/src/lib/composables/usePieChart.ts +4 -14
- package/src/lib/composables/useRiver.ts +5 -0
- package/src/lib/composables/useSlider.ts +62 -24
- package/src/lib/composables/useVideoPlayer.ts +60 -63
- package/src/lib/constants/components.ts +147 -32
- package/src/lib/types/components.ts +355 -25
- package/src/lib/utils/displacement-generator.ts +55 -49
- package/src/lib/utils/icons.ts +1 -1
- package/src/lib/utils/index.ts +16 -10
- package/src/styles/01-settings/_settings.accordion.scss +19 -19
- package/src/styles/01-settings/_settings.animations.scss +5 -5
- package/src/styles/01-settings/_settings.avatar-group.scss +1 -1
- package/src/styles/01-settings/_settings.avatar.scss +17 -17
- package/src/styles/01-settings/_settings.background.scss +0 -3
- package/src/styles/01-settings/_settings.badge.scss +1 -1
- package/src/styles/01-settings/_settings.breadcrumb.scss +1 -1
- package/src/styles/01-settings/_settings.card.scss +1 -1
- package/src/styles/01-settings/_settings.chart.scss +65 -2
- package/src/styles/01-settings/_settings.dropdown.scss +1 -1
- package/src/styles/01-settings/_settings.edge-panel.scss +1 -1
- package/src/styles/01-settings/_settings.footer.scss +35 -42
- package/src/styles/01-settings/_settings.input.scss +1 -1
- package/src/styles/01-settings/_settings.list.scss +1 -1
- package/src/styles/01-settings/_settings.rating.scss +1 -1
- package/src/styles/01-settings/_settings.tabs.scss +1 -1
- package/src/styles/01-settings/_settings.upload.scss +6 -5
- package/src/styles/02-tools/_tools.animations.scss +4 -5
- package/src/styles/02-tools/_tools.background.scss +1 -13
- package/src/styles/02-tools/_tools.glass.scss +0 -1
- package/src/styles/02-tools/_tools.utility-api.scss +91 -48
- package/src/styles/03-generic/_generic.root.scss +1 -4
- package/src/styles/04-elements/_elements.body.scss +0 -1
- package/src/styles/06-components/_components.atomix-glass.scss +249 -0
- package/src/styles/06-components/_components.badge.scss +8 -23
- package/src/styles/06-components/_components.button.scss +8 -3
- package/src/styles/06-components/_components.callout.scss +10 -5
- package/src/styles/06-components/_components.card.scss +2 -14
- package/src/styles/06-components/_components.chart.scss +969 -1449
- package/src/styles/06-components/_components.dropdown.scss +19 -7
- package/src/styles/06-components/_components.edge-panel.scss +103 -0
- package/src/styles/06-components/_components.footer.scss +166 -85
- package/src/styles/06-components/_components.input.scss +8 -9
- package/src/styles/06-components/_components.list.scss +1 -0
- package/src/styles/06-components/_components.messages.scss +176 -0
- package/src/styles/06-components/_components.modal.scss +16 -4
- package/src/styles/06-components/_components.navbar.scss +12 -1
- package/src/styles/06-components/_components.side-menu.scss +5 -0
- package/src/styles/06-components/_components.skeleton.scss +8 -6
- package/src/styles/06-components/_components.upload.scss +219 -4
- package/src/styles/06-components/old.chart.styles.scss +1 -30
- package/src/styles/99-utilities/_index.scss +1 -0
- package/src/styles/99-utilities/_utilities.glass-fixes.scss +1 -0
- package/src/styles/99-utilities/_utilities.scss +1 -1
- package/src/components/AtomixGlass/AtomixGlass.stories.tsx +0 -3011
- package/src/components/AtomixGlass/AtomixGlassComprehensivePreview.stories.tsx +0 -1369
- package/src/components/Chart/AdvancedChart.tsx +0 -624
- package/src/components/Chart/LineChartNew.tsx +0 -167
- package/src/components/Chart/RealTimeChart.tsx +0 -436
- 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
|
|
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
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
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
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
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
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
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
|
-
|
|
57
|
-
|
|
61
|
+
// Custom styles for glass effect
|
|
62
|
+
const glassStyles = glass ? {} : {};
|
|
58
63
|
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
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
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
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
|
-
|
|
105
|
+
const glassProps = glass === true ? defaultGlassProps : { ...defaultGlassProps, ...glass };
|
|
101
106
|
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
{inputElement}
|
|
105
|
-
</AtomixGlass>
|
|
106
|
-
);
|
|
107
|
-
}
|
|
107
|
+
return <AtomixGlass {...glassProps}>{inputElement}</AtomixGlass>;
|
|
108
|
+
}
|
|
108
109
|
|
|
109
|
-
|
|
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:
|
|
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
|
|
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
|
|
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:
|
|
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
|
|
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
|
|
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
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
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' }} />
|