@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.
- package/README.md +1 -28
- package/dist/atomix.css +1500 -241
- package/dist/atomix.min.css +6 -6
- package/dist/index.d.ts +1052 -194
- package/dist/index.esm.js +12201 -6066
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +5481 -2827
- 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/boomdevs.css +1500 -301
- package/dist/themes/boomdevs.min.css +60 -8
- package/dist/themes/esrar.css +1500 -241
- package/dist/themes/esrar.min.css +6 -6
- package/dist/themes/mashroom.css +1496 -237
- package/dist/themes/mashroom.min.css +8 -8
- package/dist/themes/shaj-default.css +1451 -192
- package/dist/themes/shaj-default.min.css +6 -6
- package/package.json +66 -15
- package/src/components/Accordion/Accordion.stories.tsx +137 -0
- package/src/components/Accordion/Accordion.tsx +33 -3
- package/src/components/AtomixGlass/AtomixGlass.stories.tsx +3011 -0
- package/src/components/AtomixGlass/AtomixGlass.test.tsx +199 -0
- package/src/components/AtomixGlass/AtomixGlass.tsx +1281 -0
- package/src/components/AtomixGlass/AtomixGlassComprehensivePreview.stories.tsx +1369 -0
- package/src/components/AtomixGlass/README.md +134 -0
- package/src/components/AtomixGlass/index.ts +10 -0
- package/src/components/AtomixGlass/shader-utils.ts +140 -0
- package/src/components/AtomixGlass/utils.ts +8 -0
- package/src/components/Badge/Badge.stories.tsx +169 -0
- package/src/components/Badge/Badge.tsx +27 -2
- package/src/components/Button/Button.stories.tsx +345 -0
- package/src/components/Button/Button.tsx +35 -3
- package/src/components/Button/README.md +216 -0
- package/src/components/Callout/Callout.stories.tsx +813 -78
- package/src/components/Callout/Callout.test.tsx +368 -0
- package/src/components/Callout/Callout.tsx +26 -7
- package/src/components/Callout/README.md +409 -0
- package/src/components/Card/Card.stories.tsx +140 -0
- package/src/components/Card/Card.tsx +19 -3
- package/src/components/DatePicker/DatePicker copy.tsx +551 -0
- package/src/components/DatePicker/DatePicker.stories.tsx +188 -0
- package/src/components/DatePicker/DatePicker.tsx +379 -332
- package/src/components/DatePicker/readme.md +110 -1
- package/src/components/DatePicker/types.ts +8 -0
- package/src/components/Dropdown/Dropdown.stories.tsx +145 -0
- package/src/components/Dropdown/Dropdown.tsx +34 -5
- package/src/components/Footer/Footer.stories.tsx +388 -0
- package/src/components/Footer/Footer.tsx +197 -0
- package/src/components/Footer/FooterLink.tsx +72 -0
- package/src/components/Footer/FooterSection.tsx +87 -0
- package/src/components/Footer/FooterSocialLink.tsx +117 -0
- package/src/components/Footer/README.md +261 -0
- package/src/components/Footer/index.ts +13 -0
- package/src/components/Form/Checkbox.stories.tsx +101 -0
- package/src/components/Form/Checkbox.tsx +26 -2
- package/src/components/Form/Input.stories.tsx +124 -0
- package/src/components/Form/Input.tsx +36 -7
- package/src/components/Form/Radio.stories.tsx +139 -0
- package/src/components/Form/Radio.tsx +26 -2
- package/src/components/Form/Select.stories.tsx +110 -0
- package/src/components/Form/Select.tsx +26 -2
- package/src/components/Form/Textarea.stories.tsx +104 -0
- package/src/components/Form/Textarea.tsx +36 -7
- package/src/components/Hero/Hero.stories.tsx +54 -1
- package/src/components/Hero/Hero.tsx +70 -11
- package/src/components/Modal/Modal.stories.tsx +235 -0
- package/src/components/Modal/Modal.tsx +64 -35
- package/src/components/Pagination/Pagination.stories.tsx +101 -0
- package/src/components/Pagination/Pagination.tsx +25 -1
- package/src/components/Popover/Popover.stories.tsx +94 -0
- package/src/components/Popover/Popover.tsx +30 -4
- package/src/components/Rating/Rating.stories.tsx +112 -0
- package/src/components/Rating/Rating.tsx +25 -1
- package/src/components/SectionIntro/SectionIntro.tsx +9 -11
- package/src/components/Slider/Slider.stories.tsx +634 -50
- package/src/components/Slider/Slider.tsx +5 -3
- package/src/components/Steps/Steps.stories.tsx +119 -0
- package/src/components/Steps/Steps.tsx +32 -1
- package/src/components/Tab/Tab.stories.tsx +88 -0
- package/src/components/Tab/Tab.tsx +32 -1
- package/src/components/Toggle/Toggle.stories.tsx +92 -0
- package/src/components/Toggle/Toggle.tsx +32 -1
- package/src/components/Tooltip/Tooltip.stories.tsx +131 -0
- package/src/components/Tooltip/Tooltip.tsx +43 -7
- package/src/components/VideoPlayer/VideoPlayer.stories.tsx +1002 -196
- package/src/components/VideoPlayer/VideoPlayer.tsx +161 -4
- package/src/components/index.ts +14 -0
- package/src/layouts/Grid/Grid.stories.tsx +226 -159
- package/src/lib/composables/index.ts +4 -0
- package/src/lib/composables/useAtomixGlass.ts +71 -0
- package/src/lib/composables/useButton.ts +3 -1
- package/src/lib/composables/useCallout.ts +4 -1
- package/src/lib/composables/useFooter.ts +85 -0
- package/src/lib/composables/useGlassContainer.ts +168 -0
- package/src/lib/composables/useSlider.ts +191 -4
- package/src/lib/constants/components.ts +173 -0
- package/src/lib/types/components.ts +622 -0
- package/src/lib/utils/displacement-generator.ts +86 -0
- package/src/styles/01-settings/_index.scss +1 -0
- package/src/styles/01-settings/_settings.accordion.scss +20 -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 -18
- package/src/styles/01-settings/_settings.background.scss +10 -0
- package/src/styles/01-settings/_settings.badge.scss +1 -1
- package/src/styles/01-settings/_settings.breadcrumb.scss +8 -2
- package/src/styles/01-settings/_settings.callout.scss +7 -7
- package/src/styles/01-settings/_settings.card.scss +2 -2
- package/src/styles/01-settings/_settings.chart.scss +7 -7
- package/src/styles/01-settings/_settings.checkbox-group.scss +5 -2
- package/src/styles/01-settings/_settings.checkbox.scss +10 -4
- package/src/styles/01-settings/_settings.countdown.scss +6 -4
- package/src/styles/01-settings/_settings.dropdown.scss +9 -7
- package/src/styles/01-settings/_settings.edge-panel.scss +3 -2
- package/src/styles/01-settings/_settings.footer.scss +125 -0
- package/src/styles/01-settings/_settings.form-group.scss +3 -1
- package/src/styles/01-settings/_settings.form.scss +4 -2
- package/src/styles/01-settings/_settings.hero.scss +9 -7
- package/src/styles/01-settings/_settings.input.scss +9 -7
- package/src/styles/01-settings/_settings.list-group.scss +4 -2
- package/src/styles/01-settings/_settings.list.scss +4 -2
- package/src/styles/01-settings/_settings.menu.scss +10 -8
- package/src/styles/01-settings/_settings.messages.scss +19 -17
- package/src/styles/01-settings/_settings.modal.scss +6 -4
- package/src/styles/01-settings/_settings.nav.scss +6 -4
- package/src/styles/01-settings/_settings.navbar.scss +8 -5
- package/src/styles/01-settings/_settings.pagination.scss +5 -3
- package/src/styles/01-settings/_settings.popover.scss +6 -4
- package/src/styles/01-settings/_settings.rating.scss +5 -3
- package/src/styles/01-settings/_settings.river.scss +8 -6
- package/src/styles/01-settings/_settings.sectionintro.scss +8 -6
- package/src/styles/01-settings/_settings.select.scss +7 -5
- package/src/styles/01-settings/_settings.side-menu.scss +15 -13
- package/src/styles/01-settings/_settings.spacing.scss +4 -0
- package/src/styles/01-settings/_settings.steps.scss +7 -5
- package/src/styles/01-settings/_settings.tabs.scss +7 -5
- package/src/styles/01-settings/_settings.testimonials.scss +6 -4
- package/src/styles/01-settings/_settings.toggle.scss +3 -1
- package/src/styles/01-settings/_settings.tooltip.scss +5 -3
- package/src/styles/01-settings/_settings.upload.scss +22 -20
- package/src/styles/02-tools/_tools.animations.scss +19 -0
- package/src/styles/02-tools/_tools.background.scss +87 -0
- package/src/styles/02-tools/_tools.glass.scss +1 -0
- package/src/styles/02-tools/_tools.rem.scss +18 -5
- package/src/styles/02-tools/_tools.utility-api.scss +32 -26
- package/src/styles/03-generic/_generic.root.scss +15 -2
- package/src/styles/04-elements/_elements.body.scss +6 -0
- package/src/styles/06-components/_components.accordion.scss +24 -4
- package/src/styles/06-components/_components.atomix-glass.scss +0 -0
- package/src/styles/06-components/_components.avatar-group.scss +2 -1
- package/src/styles/06-components/_components.avatar.scss +2 -1
- package/src/styles/06-components/_components.badge.scss +36 -1
- package/src/styles/06-components/_components.breadcrumb.scss +2 -1
- package/src/styles/06-components/_components.button.scss +14 -3
- package/src/styles/06-components/_components.callout.scss +44 -4
- package/src/styles/06-components/_components.card.scss +21 -2
- package/src/styles/06-components/_components.chart.scss +3 -2
- package/src/styles/06-components/_components.checkbox.scss +2 -1
- package/src/styles/06-components/_components.color-mode-toggle.scss +3 -2
- package/src/styles/06-components/_components.countdown.scss +2 -1
- package/src/styles/06-components/_components.data-table.scss +7 -6
- package/src/styles/06-components/_components.datepicker.scss +20 -1
- package/src/styles/06-components/_components.dropdown.scss +11 -4
- package/src/styles/06-components/_components.edge-panel.scss +4 -3
- package/src/styles/06-components/_components.footer.scss +825 -0
- package/src/styles/06-components/_components.form-group.scss +1 -0
- package/src/styles/06-components/_components.hero.scss +4 -4
- package/src/styles/06-components/_components.image-gallery.scss +1 -0
- package/src/styles/06-components/_components.input.scss +33 -2
- package/src/styles/06-components/_components.list-group.scss +3 -2
- package/src/styles/06-components/_components.list.scss +2 -1
- package/src/styles/06-components/_components.menu.scss +5 -4
- package/src/styles/06-components/_components.messages.scss +8 -7
- package/src/styles/06-components/_components.modal.scss +3 -2
- package/src/styles/06-components/_components.nav.scss +6 -5
- package/src/styles/06-components/_components.navbar.scss +4 -3
- package/src/styles/06-components/_components.pagination.scss +2 -1
- package/src/styles/06-components/_components.photoviewer.scss +4 -3
- package/src/styles/06-components/_components.popover.scss +3 -2
- package/src/styles/06-components/_components.product-review.scss +3 -2
- package/src/styles/06-components/_components.progress.scss +3 -2
- package/src/styles/06-components/_components.river.scss +3 -2
- package/src/styles/06-components/_components.sectionintro.scss +2 -1
- package/src/styles/06-components/_components.select.scss +5 -4
- package/src/styles/06-components/_components.side-menu.scss +8 -7
- package/src/styles/06-components/_components.skeleton.scss +3 -2
- package/src/styles/06-components/_components.slider.scss +7 -6
- package/src/styles/06-components/_components.spinner.scss +1 -0
- package/src/styles/06-components/_components.steps.scss +3 -2
- package/src/styles/06-components/_components.tabs.scss +4 -3
- package/src/styles/06-components/_components.testimonials.scss +2 -1
- package/src/styles/06-components/_components.todo.scss +3 -2
- package/src/styles/06-components/_components.toggle.scss +5 -4
- package/src/styles/06-components/_components.tooltip.scss +3 -2
- package/src/styles/06-components/_components.upload.scss +4 -3
- package/src/styles/06-components/_components.video-player.scss +50 -27
- package/src/styles/06-components/_index.scss +2 -0
- package/src/styles/99-utilities/_utilities.glass-fixes.scss +48 -0
- package/dist/themes/yabai.css +0 -13711
- package/dist/themes/yabai.min.css +0 -189
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@shohojdhara/atomix",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.3",
|
|
4
4
|
"description": "Atomix Design System - A modern component library for web applications",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"sideEffects": false,
|
|
@@ -13,24 +13,75 @@
|
|
|
13
13
|
".": {
|
|
14
14
|
"types": "./dist/index.d.ts",
|
|
15
15
|
"import": "./dist/index.esm.js",
|
|
16
|
-
"require": "./dist/index.js"
|
|
16
|
+
"require": "./dist/index.js",
|
|
17
|
+
"default": "./dist/index.esm.js"
|
|
17
18
|
},
|
|
18
19
|
"./styles": {
|
|
20
|
+
"types": "./dist/index.d.ts",
|
|
21
|
+
"import": "./dist/atomix.css",
|
|
22
|
+
"require": "./dist/atomix.css",
|
|
23
|
+
"default": "./dist/atomix.css"
|
|
24
|
+
},
|
|
25
|
+
"./css": {
|
|
19
26
|
"import": "./dist/atomix.css",
|
|
20
|
-
"require": "./dist/atomix.
|
|
27
|
+
"require": "./dist/atomix.css",
|
|
28
|
+
"default": "./dist/atomix.css"
|
|
29
|
+
},
|
|
30
|
+
"./css/min": {
|
|
31
|
+
"import": "./dist/atomix.min.css",
|
|
32
|
+
"require": "./dist/atomix.min.css",
|
|
33
|
+
"default": "./dist/atomix.min.css"
|
|
34
|
+
},
|
|
35
|
+
"./scss": {
|
|
36
|
+
"import": "./src/styles/index.scss",
|
|
37
|
+
"require": "./src/styles/index.scss",
|
|
38
|
+
"default": "./src/styles/index.scss"
|
|
39
|
+
},
|
|
40
|
+
"./scss/settings": {
|
|
41
|
+
"import": "./src/styles/01-settings/_index.scss",
|
|
42
|
+
"require": "./src/styles/01-settings/_index.scss",
|
|
43
|
+
"default": "./src/styles/01-settings/_index.scss"
|
|
44
|
+
},
|
|
45
|
+
"./scss/tools": {
|
|
46
|
+
"import": "./src/styles/02-tools/_index.scss",
|
|
47
|
+
"require": "./src/styles/02-tools/_index.scss",
|
|
48
|
+
"default": "./src/styles/02-tools/_index.scss"
|
|
49
|
+
},
|
|
50
|
+
"./scss/generic": {
|
|
51
|
+
"import": "./src/styles/03-generic/_index.scss",
|
|
52
|
+
"require": "./src/styles/03-generic/_index.scss",
|
|
53
|
+
"default": "./src/styles/03-generic/_index.scss"
|
|
54
|
+
},
|
|
55
|
+
"./scss/elements": {
|
|
56
|
+
"import": "./src/styles/04-elements/_index.scss",
|
|
57
|
+
"require": "./src/styles/04-elements/_index.scss",
|
|
58
|
+
"default": "./src/styles/04-elements/_index.scss"
|
|
59
|
+
},
|
|
60
|
+
"./scss/objects": {
|
|
61
|
+
"import": "./src/styles/05-objects/_index.scss",
|
|
62
|
+
"require": "./src/styles/05-objects/_index.scss",
|
|
63
|
+
"default": "./src/styles/05-objects/_index.scss"
|
|
64
|
+
},
|
|
65
|
+
"./scss/components": {
|
|
66
|
+
"import": "./src/styles/06-components/_index.scss",
|
|
67
|
+
"require": "./src/styles/06-components/_index.scss",
|
|
68
|
+
"default": "./src/styles/06-components/_index.scss"
|
|
69
|
+
},
|
|
70
|
+
"./scss/utilities": {
|
|
71
|
+
"import": "./src/styles/99-utilities/_index.scss",
|
|
72
|
+
"require": "./src/styles/99-utilities/_index.scss",
|
|
73
|
+
"default": "./src/styles/99-utilities/_index.scss"
|
|
74
|
+
},
|
|
75
|
+
"./themes/*": {
|
|
76
|
+
"import": "./dist/themes/*.css",
|
|
77
|
+
"require": "./dist/themes/*.css",
|
|
78
|
+
"default": "./dist/themes/*.css"
|
|
79
|
+
},
|
|
80
|
+
"./themes/*.min": {
|
|
81
|
+
"import": "./dist/themes/*.min.css",
|
|
82
|
+
"require": "./dist/themes/*.min.css",
|
|
83
|
+
"default": "./dist/themes/*.min.css"
|
|
21
84
|
},
|
|
22
|
-
"./css": "./dist/atomix.css",
|
|
23
|
-
"./css/min": "./dist/atomix.min.css",
|
|
24
|
-
"./scss": "./src/styles/index.scss",
|
|
25
|
-
"./scss/settings": "./src/styles/01-settings/_index.scss",
|
|
26
|
-
"./scss/tools": "./src/styles/02-tools/_index.scss",
|
|
27
|
-
"./scss/generic": "./src/styles/03-generic/_index.scss",
|
|
28
|
-
"./scss/elements": "./src/styles/04-elements/_index.scss",
|
|
29
|
-
"./scss/objects": "./src/styles/05-objects/_index.scss",
|
|
30
|
-
"./scss/components": "./src/styles/06-components/_index.scss",
|
|
31
|
-
"./scss/utilities": "./src/styles/99-utilities/_index.scss",
|
|
32
|
-
"./themes/*": "./dist/themes/*.css",
|
|
33
|
-
"./themes/*.min": "./dist/themes/*.min.css",
|
|
34
85
|
"./package.json": "./package.json"
|
|
35
86
|
},
|
|
36
87
|
"dependencies": {
|
|
@@ -45,6 +45,10 @@ const meta = {
|
|
|
45
45
|
control: 'text',
|
|
46
46
|
description: 'Content inside the accordion',
|
|
47
47
|
},
|
|
48
|
+
glass: {
|
|
49
|
+
control: 'boolean',
|
|
50
|
+
description: 'Enable glass morphism effect',
|
|
51
|
+
},
|
|
48
52
|
},
|
|
49
53
|
} satisfies Meta<typeof Accordion>;
|
|
50
54
|
|
|
@@ -269,3 +273,136 @@ export const Controlled: Story = {
|
|
|
269
273
|
},
|
|
270
274
|
},
|
|
271
275
|
};
|
|
276
|
+
|
|
277
|
+
// Glass Variant
|
|
278
|
+
export const Glass: Story = {
|
|
279
|
+
args: {
|
|
280
|
+
title: 'Glass Accordion',
|
|
281
|
+
children: <p>This accordion has a glass morphism effect applied.</p>,
|
|
282
|
+
glass: true,
|
|
283
|
+
},
|
|
284
|
+
render: (args) => (
|
|
285
|
+
<div
|
|
286
|
+
style={{
|
|
287
|
+
background: 'linear-gradient(135deg, #667eea 0%, #764ba2 100%)',
|
|
288
|
+
padding: '2rem',
|
|
289
|
+
borderRadius: '12px',
|
|
290
|
+
minHeight: '300px',
|
|
291
|
+
display: 'flex',
|
|
292
|
+
alignItems: 'center',
|
|
293
|
+
justifyContent: 'center',
|
|
294
|
+
}}
|
|
295
|
+
>
|
|
296
|
+
<div style={{ width: '100%', maxWidth: '500px' }}>
|
|
297
|
+
<Accordion {...args} />
|
|
298
|
+
</div>
|
|
299
|
+
</div>
|
|
300
|
+
),
|
|
301
|
+
parameters: {
|
|
302
|
+
docs: {
|
|
303
|
+
description: {
|
|
304
|
+
story: 'This story demonstrates an Accordion with glass morphism effect enabled against a gradient background.',
|
|
305
|
+
},
|
|
306
|
+
},
|
|
307
|
+
},
|
|
308
|
+
};
|
|
309
|
+
|
|
310
|
+
// Glass with Custom Settings
|
|
311
|
+
export const GlassCustom: Story = {
|
|
312
|
+
args: {
|
|
313
|
+
title: 'Custom Glass Accordion',
|
|
314
|
+
children: <p>This accordion has custom glass morphism settings.</p>,
|
|
315
|
+
glass: {
|
|
316
|
+
displacementScale: 80,
|
|
317
|
+
blurAmount: 2,
|
|
318
|
+
saturation: 200,
|
|
319
|
+
aberrationIntensity: 0.8,
|
|
320
|
+
cornerRadius: 12,
|
|
321
|
+
},
|
|
322
|
+
},
|
|
323
|
+
render: (args) => (
|
|
324
|
+
<div
|
|
325
|
+
style={{
|
|
326
|
+
background: 'url(https://images.unsplash.com/photo-1660478481785-cb609142d9ab?q=80&w=2670&auto=format&fit=crop&ixlib=rb-4.1.0&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D)',
|
|
327
|
+
backgroundSize: 'cover',
|
|
328
|
+
backgroundPosition: 'center',
|
|
329
|
+
padding: '2rem',
|
|
330
|
+
borderRadius: '12px',
|
|
331
|
+
minHeight: '400px',
|
|
332
|
+
display: 'flex',
|
|
333
|
+
alignItems: 'center',
|
|
334
|
+
justifyContent: 'center',
|
|
335
|
+
}}
|
|
336
|
+
>
|
|
337
|
+
<div style={{ width: '100%', maxWidth: '500px' }}>
|
|
338
|
+
<Accordion {...args} />
|
|
339
|
+
</div>
|
|
340
|
+
</div>
|
|
341
|
+
),
|
|
342
|
+
parameters: {
|
|
343
|
+
docs: {
|
|
344
|
+
description: {
|
|
345
|
+
story: 'This story demonstrates an Accordion with custom glass morphism settings against a scenic background image.',
|
|
346
|
+
},
|
|
347
|
+
},
|
|
348
|
+
},
|
|
349
|
+
};
|
|
350
|
+
|
|
351
|
+
// Glass Accordion Group
|
|
352
|
+
export const GlassGroup: Story = {
|
|
353
|
+
args: {
|
|
354
|
+
title: 'Glass Accordion Group',
|
|
355
|
+
children: <p>Group example with glass effect - see render function</p>,
|
|
356
|
+
},
|
|
357
|
+
render: () => (
|
|
358
|
+
<div
|
|
359
|
+
style={{
|
|
360
|
+
background: 'url(https://images.unsplash.com/photo-1587289087865-396fc357ef9e?q=80&w=2670&auto=format&fit=crop&ixlib=rb-4.1.0&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D)',
|
|
361
|
+
backgroundSize: '200% 200%',
|
|
362
|
+
animation: 'gradient 15s ease infinite',
|
|
363
|
+
padding: '2rem',
|
|
364
|
+
borderRadius: '12px',
|
|
365
|
+
minHeight: '500px',
|
|
366
|
+
}}
|
|
367
|
+
>
|
|
368
|
+
<style>
|
|
369
|
+
{`
|
|
370
|
+
@keyframes gradient {
|
|
371
|
+
0% { background-position: 0% 50%; }
|
|
372
|
+
50% { background-position: 100% 50%; }
|
|
373
|
+
100% { background-position: 0% 50%; }
|
|
374
|
+
}
|
|
375
|
+
`}
|
|
376
|
+
</style>
|
|
377
|
+
<h2 style={{ color: 'white', textAlign: 'center', marginBottom: '2rem', textShadow: '0 2px 4px rgba(0,0,0,0.3)' }}>
|
|
378
|
+
Glass Accordion Group
|
|
379
|
+
</h2>
|
|
380
|
+
<div className="u-d-flex u-flex-column u-gap-3" style={{ width: '100%', maxWidth: '600px', margin: '0 auto' }}>
|
|
381
|
+
<Accordion title="First Glass Accordion" defaultOpen={true} glass>
|
|
382
|
+
<p>Content of the first glass accordion with beautiful glass morphism effect.</p>
|
|
383
|
+
</Accordion>
|
|
384
|
+
|
|
385
|
+
<Accordion title="Second Glass Accordion" glass>
|
|
386
|
+
<p>Content of the second glass accordion showcasing the glass effect.</p>
|
|
387
|
+
</Accordion>
|
|
388
|
+
|
|
389
|
+
<Accordion title="Third Glass Accordion" glass>
|
|
390
|
+
<p>Content of the third glass accordion with more content.</p>
|
|
391
|
+
<p>Additional paragraph to demonstrate scrolling and glass effects.</p>
|
|
392
|
+
<ul>
|
|
393
|
+
<li>Glass effect item 1</li>
|
|
394
|
+
<li>Glass effect item 2</li>
|
|
395
|
+
<li>Glass effect item 3</li>
|
|
396
|
+
</ul>
|
|
397
|
+
</Accordion>
|
|
398
|
+
</div>
|
|
399
|
+
</div>
|
|
400
|
+
),
|
|
401
|
+
parameters: {
|
|
402
|
+
docs: {
|
|
403
|
+
description: {
|
|
404
|
+
story: 'This story demonstrates multiple Accordions with glass morphism effects against an animated gradient background.',
|
|
405
|
+
},
|
|
406
|
+
},
|
|
407
|
+
},
|
|
408
|
+
};
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import React, { ReactNode, useId } from 'react';
|
|
2
2
|
import { ACCORDION } from '../../lib/constants/components';
|
|
3
3
|
import { useAccordion } from '../../lib/composables/useAccordion';
|
|
4
|
-
import { BaseComponentProps, IconPosition } from '../../lib/types/components';
|
|
4
|
+
import { BaseComponentProps, IconPosition, AtomixGlassProps } from '../../lib/types/components';
|
|
5
|
+
import { AtomixGlass } from '../AtomixGlass/AtomixGlass';
|
|
5
6
|
|
|
6
7
|
/**
|
|
7
8
|
* Accordion component for showing/hiding content panels
|
|
@@ -41,6 +42,12 @@ export interface AccordionProps extends BaseComponentProps {
|
|
|
41
42
|
* Callback when open state changes (for controlled mode)
|
|
42
43
|
*/
|
|
43
44
|
onOpenChange?: (open: boolean) => void;
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Glass morphism effect for the accordion
|
|
48
|
+
* Can be a boolean to enable with default settings, or an object with AtomixGlassProps to customize the effect
|
|
49
|
+
*/
|
|
50
|
+
glass?: AtomixGlassProps | boolean;
|
|
44
51
|
}
|
|
45
52
|
|
|
46
53
|
export const Accordion: React.FC<AccordionProps> = ({
|
|
@@ -53,6 +60,7 @@ export const Accordion: React.FC<AccordionProps> = ({
|
|
|
53
60
|
iconPosition = 'right',
|
|
54
61
|
icon,
|
|
55
62
|
className = '',
|
|
63
|
+
glass,
|
|
56
64
|
}) => {
|
|
57
65
|
// Generate unique IDs for accessibility
|
|
58
66
|
const instanceId = useId();
|
|
@@ -95,8 +103,8 @@ export const Accordion: React.FC<AccordionProps> = ({
|
|
|
95
103
|
</i>
|
|
96
104
|
);
|
|
97
105
|
|
|
98
|
-
|
|
99
|
-
<div className={generateClassNames(className)}>
|
|
106
|
+
const accordionContent = (
|
|
107
|
+
<div className={generateClassNames(className) + (glass ? ' c-accordion--glass' : '')}>
|
|
100
108
|
<button
|
|
101
109
|
id={buttonId}
|
|
102
110
|
className={generateHeaderClassNames()}
|
|
@@ -122,6 +130,28 @@ export const Accordion: React.FC<AccordionProps> = ({
|
|
|
122
130
|
</div>
|
|
123
131
|
</div>
|
|
124
132
|
);
|
|
133
|
+
|
|
134
|
+
if (glass) {
|
|
135
|
+
// Default glass settings for accordions
|
|
136
|
+
const defaultGlassProps = {
|
|
137
|
+
displacementScale: 20,
|
|
138
|
+
blurAmount: 10,
|
|
139
|
+
saturation: 140,
|
|
140
|
+
aberrationIntensity: 0.5,
|
|
141
|
+
cornerRadius: 8,
|
|
142
|
+
mode: 'shader' as const,
|
|
143
|
+
};
|
|
144
|
+
|
|
145
|
+
const glassProps = glass === true ? defaultGlassProps : { ...defaultGlassProps, ...glass };
|
|
146
|
+
|
|
147
|
+
return (
|
|
148
|
+
<AtomixGlass {...glassProps}>
|
|
149
|
+
{accordionContent}
|
|
150
|
+
</AtomixGlass>
|
|
151
|
+
);
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
return accordionContent;
|
|
125
155
|
};
|
|
126
156
|
|
|
127
157
|
// Set display name for debugging
|