@12-apps/ui 1.4.1 → 1.5.1
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/package.json +17 -8
- package/src/button/index.ts +1 -0
- package/src/social-login-button/index.ts +1 -0
- package/src/{social-login-button.tsx → social-login-button/social-login-button.tsx} +5 -5
- package/src/user-avatar/index.ts +1 -0
- package/src/{user-avatar.tsx → user-avatar/user-avatar.tsx} +4 -4
- package/eslint.config.js +0 -77
- package/src/__tests__/data-grid.test.tsx +0 -125
- package/src/__tests__/package-wiring.test.ts +0 -41
- package/src/__tests__/setup.ts +0 -1
- package/src/__tests__/social-login-button.test.tsx +0 -186
- package/src/__tests__/user-avatar.test.tsx +0 -195
- package/src/__tests__/viewport.test.ts +0 -50
- package/src/components/command/__tests__/command.test.tsx +0 -112
- package/src/components/data-display/Alert/Alert.stories.tsx +0 -559
- package/src/components/data-display/Alert/Alert.test.stories.tsx +0 -707
- package/src/components/data-display/AlertDialog/AlertDialog.stories.tsx +0 -362
- package/src/components/data-display/AlertDialog/AlertDialog.test.stories.tsx +0 -753
- package/src/components/data-display/AsyncStateContainer/AsyncStateContainer.stories.tsx +0 -230
- package/src/components/data-display/AsyncStateContainer/AsyncStateContainer.test.stories.tsx +0 -270
- package/src/components/data-display/Avatar/Avatar.stories.tsx +0 -721
- package/src/components/data-display/Avatar/Avatar.test.stories.tsx +0 -822
- package/src/components/data-display/Badge/Badge.stories.tsx +0 -1134
- package/src/components/data-display/Badge/Badge.test.stories.tsx +0 -1194
- package/src/components/data-display/Banner/Banner.stories.tsx +0 -528
- package/src/components/data-display/Banner/Banner.test.stories.tsx +0 -503
- package/src/components/data-display/Carousel/Carousel.stories.tsx +0 -607
- package/src/components/data-display/Carousel/Carousel.test.stories.tsx +0 -691
- package/src/components/data-display/Chart/Chart.stories.tsx +0 -568
- package/src/components/data-display/Chart/Chart.test.stories.tsx +0 -174
- package/src/components/data-display/Chart/SpecChart.stories.tsx +0 -150
- package/src/components/data-display/Chart/SpecChart.test.stories.tsx +0 -56
- package/src/components/data-display/Chart/__tests__/SpecChart.test.tsx +0 -60
- package/src/components/data-display/Chart/__tests__/chart-format.test.ts +0 -43
- package/src/components/data-display/Chart/__tests__/chart-spec.test.ts +0 -119
- package/src/components/data-display/Chip/Chip.stories.tsx +0 -252
- package/src/components/data-display/Chip/Chip.test.stories.tsx +0 -266
- package/src/components/data-display/DataGrid/DataGrid.stories.tsx +0 -515
- package/src/components/data-display/DataGrid/DataGrid.test.stories.tsx +0 -653
- package/src/components/data-display/DataViews/__tests__/DataViewsGrid.test.tsx +0 -271
- package/src/components/data-display/DataViews/__tests__/DataViewsTableBase.test.tsx +0 -134
- package/src/components/data-display/DataViews/__tests__/SaveViewModal.test.tsx +0 -83
- package/src/components/data-display/DataViews/__tests__/data-views-filter.test.ts +0 -115
- package/src/components/data-display/DataViews/__tests__/data-views-preview.test.ts +0 -53
- package/src/components/data-display/DataViews/__tests__/range-pill.test.tsx +0 -114
- package/src/components/data-display/DataViews/base-card.stories.tsx +0 -136
- package/src/components/data-display/DescriptionItem/DescriptionItem.stories.tsx +0 -254
- package/src/components/data-display/EmptyState/EmptyState.stories.tsx +0 -282
- package/src/components/data-display/EmptyState/EmptyState.test.stories.tsx +0 -441
- package/src/components/data-display/ErrorState/ErrorState.stories.tsx +0 -110
- package/src/components/data-display/ErrorState/ErrorState.test.stories.tsx +0 -133
- package/src/components/data-display/HoverCard/HoverCard.stories.tsx +0 -650
- package/src/components/data-display/HoverCard/HoverCard.test.stories.tsx +0 -929
- package/src/components/data-display/InteractiveTooltip/InteractiveTooltip.stories.tsx +0 -411
- package/src/components/data-display/LazyImage/LazyImage.stories.tsx +0 -387
- package/src/components/data-display/Lightbox/Lightbox.stories.tsx +0 -315
- package/src/components/data-display/Lightbox/Lightbox.test.stories.tsx +0 -598
- package/src/components/data-display/LoadingState/LoadingState.stories.tsx +0 -124
- package/src/components/data-display/LoadingState/LoadingState.test.stories.tsx +0 -99
- package/src/components/data-display/MapPreview/MapPreview.stories.tsx +0 -458
- package/src/components/data-display/MapPreview/MapPreview.test.stories.tsx +0 -394
- package/src/components/data-display/Popover/Popover.stories.tsx +0 -295
- package/src/components/data-display/Popover/Popover.test.stories.tsx +0 -1162
- package/src/components/data-display/Progress/Progress.stories.tsx +0 -481
- package/src/components/data-display/Progress/Progress.test.stories.tsx +0 -2070
- package/src/components/data-display/SectionOnboarding/SectionOnboarding.stories.tsx +0 -160
- package/src/components/data-display/SectionOnboarding/SectionOnboarding.test.stories.tsx +0 -190
- package/src/components/data-display/Sheet/Sheet.stories.tsx +0 -883
- package/src/components/data-display/Sheet/Sheet.test.stories.tsx +0 -1101
- package/src/components/data-display/StatCard/StatCard.stories.tsx +0 -167
- package/src/components/data-display/StatCard/StatCard.test.stories.tsx +0 -240
- package/src/components/data-display/Stepper/Stepper.stories.tsx +0 -540
- package/src/components/data-display/Stepper/Stepper.test.stories.tsx +0 -600
- package/src/components/data-display/Table/Table.stories.tsx +0 -803
- package/src/components/data-display/Table/Table.test.stories.tsx +0 -369
- package/src/components/data-display/Timeline/Timeline.stories.tsx +0 -442
- package/src/components/data-display/Timeline/Timeline.test.stories.tsx +0 -930
- package/src/components/data-display/TimingDiagram/TimingDiagram.stories.tsx +0 -475
- package/src/components/data-display/TimingDiagram/TimingDiagram.test.stories.tsx +0 -734
- package/src/components/data-display/Tooltip/Tooltip.stories.tsx +0 -468
- package/src/components/data-display/Tooltip/Tooltip.test.stories.tsx +0 -1154
- package/src/components/feedback/ConfirmAction/ConfirmAction.stories.tsx +0 -146
- package/src/components/feedback/ConfirmAction/ConfirmAction.test.stories.tsx +0 -114
- package/src/components/feedback/ConfirmAction/__tests__/confirm-action.test.tsx +0 -288
- package/src/components/feedback/Dialog/Dialog.stories.tsx +0 -833
- package/src/components/feedback/Dialog/Dialog.test.stories.tsx +0 -955
- package/src/components/feedback/Dialog/__tests__/dialog-content-spacing.test.tsx +0 -66
- package/src/components/feedback/Modal/Modal.stories.tsx +0 -765
- package/src/components/feedback/Modal/Modal.test.stories.tsx +0 -251
- package/src/components/feedback/Sonner/Sonner.stories.tsx +0 -698
- package/src/components/feedback/Sonner/Sonner.test.stories.tsx +0 -896
- package/src/components/feedback/StackedModal/StackedModal.stories.tsx +0 -1783
- package/src/components/feedback/StackedModal/StackedModal.test.stories.tsx +0 -975
- package/src/components/feedback/StackedModal/__tests__/stacked-modal-viewport.test.tsx +0 -104
- package/src/components/feedback/Toast/Toast.stories.tsx +0 -548
- package/src/components/feedback/Toast/Toast.test.stories.tsx +0 -834
- package/src/components/feedback/TutorialOverlay/TutorialOverlay.stories.tsx +0 -691
- package/src/components/feedback/TutorialOverlay/TutorialOverlay.test.stories.tsx +0 -634
- package/src/components/form/AddressAutocomplete/AddressAutocomplete.stories.tsx +0 -665
- package/src/components/form/AddressAutocomplete/AddressAutocomplete.test.stories.tsx +0 -727
- package/src/components/form/Autocomplete/Autocomplete.stories.tsx +0 -715
- package/src/components/form/Autocomplete/Autocomplete.test.stories.tsx +0 -825
- package/src/components/form/Button/Button.stories.tsx +0 -365
- package/src/components/form/Button/Button.test.stories.tsx +0 -607
- package/src/components/form/Calendar/Calendar.stories.tsx +0 -349
- package/src/components/form/Calendar/Calendar.test.stories.tsx +0 -464
- package/src/components/form/CepField/CepField.stories.tsx +0 -138
- package/src/components/form/CepField/CepField.test.stories.tsx +0 -281
- package/src/components/form/Checkbox/Checkbox.stories.tsx +0 -265
- package/src/components/form/Checkbox/Checkbox.test.stories.tsx +0 -181
- package/src/components/form/CodeEditor/CodeEditor.stories.tsx +0 -871
- package/src/components/form/CodeEditor/CodeEditor.test.stories.tsx +0 -574
- package/src/components/form/Command/Command.stories.tsx +0 -580
- package/src/components/form/Command/Command.test.stories.tsx +0 -215
- package/src/components/form/CreatableSelect/CreatableSelect.stories.tsx +0 -112
- package/src/components/form/CreatableSelect/CreatableSelect.test.stories.tsx +0 -134
- package/src/components/form/Form/Form.stories.tsx +0 -687
- package/src/components/form/Form/Form.test.stories.tsx +0 -601
- package/src/components/form/Input/Input.stories.tsx +0 -260
- package/src/components/form/Input/Input.test.stories.tsx +0 -1191
- package/src/components/form/InputOTP/InputOTP.stories.tsx +0 -774
- package/src/components/form/InputOTP/InputOTP.test.stories.tsx +0 -588
- package/src/components/form/Label/Label.stories.tsx +0 -473
- package/src/components/form/Label/Label.test.stories.tsx +0 -909
- package/src/components/form/Menubar/Menubar.stories.tsx +0 -472
- package/src/components/form/Menubar/Menubar.test.stories.tsx +0 -584
- package/src/components/form/PasswordStrength/PasswordStrength.stories.tsx +0 -562
- package/src/components/form/PasswordStrength/PasswordStrength.test.stories.tsx +0 -327
- package/src/components/form/PhoneInput/PhoneInput.stories.tsx +0 -495
- package/src/components/form/PhoneInput/PhoneInput.test.stories.tsx +0 -666
- package/src/components/form/RadioGroup/RadioGroup.stories.tsx +0 -518
- package/src/components/form/RadioGroup/RadioGroup.test.stories.tsx +0 -685
- package/src/components/form/RichTextEditor/RichTextEditor.stories.tsx +0 -261
- package/src/components/form/RichTextEditor/RichTextEditor.test.stories.tsx +0 -491
- package/src/components/form/SearchPalette/SearchPalette.stories.tsx +0 -135
- package/src/components/form/Select/Select.stories.tsx +0 -364
- package/src/components/form/Select/Select.test.stories.tsx +0 -985
- package/src/components/form/Slider/Slider.stories.tsx +0 -418
- package/src/components/form/Slider/Slider.test.stories.tsx +0 -1042
- package/src/components/form/Switch/Switch.stories.tsx +0 -697
- package/src/components/form/Switch/Switch.test.stories.tsx +0 -597
- package/src/components/form/Textarea/Textarea.stories.tsx +0 -473
- package/src/components/form/Textarea/Textarea.test.stories.tsx +0 -702
- package/src/components/form/Toggle/Toggle.stories.tsx +0 -638
- package/src/components/form/Toggle/Toggle.test.stories.tsx +0 -1159
- package/src/components/form/ToggleGroup/ToggleGroup.stories.tsx +0 -617
- package/src/components/form/ToggleGroup/ToggleGroup.test.stories.tsx +0 -918
- package/src/components/form/UploadButton/UploadButton.stories.tsx +0 -367
- package/src/components/form/UploadButton/UploadButton.test.stories.tsx +0 -573
- package/src/components/form/total-form/total-form.test.tsx +0 -214
- package/src/components/layout/Accordion/Accordion.stories.tsx +0 -694
- package/src/components/layout/Accordion/Accordion.test.stories.tsx +0 -1344
- package/src/components/layout/Card/Card.stories.tsx +0 -591
- package/src/components/layout/Card/Card.test.stories.tsx +0 -1134
- package/src/components/layout/CardGrid/__tests__/CardGrid.test.tsx +0 -92
- package/src/components/layout/Collapsible/Collapsible.stories.tsx +0 -180
- package/src/components/layout/Collapsible/Collapsible.test.stories.tsx +0 -308
- package/src/components/layout/Container/Container.stories.tsx +0 -557
- package/src/components/layout/Container/Container.test.stories.tsx +0 -745
- package/src/components/layout/ContentToolbar/ContentToolbar.stories.tsx +0 -129
- package/src/components/layout/ContentToolbar/ContentToolbar.test.stories.tsx +0 -251
- package/src/components/layout/ContentToolbar/__tests__/ColumnsMenu.test.tsx +0 -39
- package/src/components/layout/ContentToolbar/__tests__/MultiSelectDropdown.test.tsx +0 -131
- package/src/components/layout/ContentToolbar/__tests__/SavedViewsMenu.test.tsx +0 -99
- package/src/components/layout/Dashboard/Dashboard.stories.tsx +0 -104
- package/src/components/layout/Dashboard/Dashboard.test.stories.tsx +0 -190
- package/src/components/layout/Drawer/Drawer.stories.tsx +0 -658
- package/src/components/layout/Drawer/Drawer.test.stories.tsx +0 -1343
- package/src/components/layout/Resizable/Resizable.stories.tsx +0 -1039
- package/src/components/layout/Resizable/Resizable.test.stories.tsx +0 -750
- package/src/components/layout/ScrollArea/ScrollArea.stories.tsx +0 -651
- package/src/components/layout/ScrollArea/ScrollArea.test.stories.tsx +0 -619
- package/src/components/layout/Separator/Separator.stories.tsx +0 -563
- package/src/components/layout/Separator/Separator.test.stories.tsx +0 -518
- package/src/components/layout/SettingsLayout/SettingsLayout.stories.tsx +0 -192
- package/src/components/layout/SettingsLayout/SettingsLayout.test.stories.tsx +0 -175
- package/src/components/layout/Sidebar/Sidebar.stories.tsx +0 -609
- package/src/components/layout/Sidebar/Sidebar.test.stories.tsx +0 -1324
- package/src/components/layout/Skeleton/Skeleton.stories.tsx +0 -689
- package/src/components/layout/Skeleton/Skeleton.test.stories.tsx +0 -521
- package/src/components/layout/Spacer/Spacer.stories.tsx +0 -502
- package/src/components/layout/Spacer/Spacer.test.stories.tsx +0 -472
- package/src/components/layout/TableFilter/TableFilter.stories.tsx +0 -82
- package/src/components/layout/TableFilter/TableFilter.test.stories.tsx +0 -87
- package/src/components/navigation/Breadcrumbs/Breadcrumbs.stories.tsx +0 -638
- package/src/components/navigation/Breadcrumbs/Breadcrumbs.test.stories.tsx +0 -1008
- package/src/components/navigation/CommandPalette/CommandPalette.stories.tsx +0 -386
- package/src/components/navigation/CommandPalette/CommandPalette.test.stories.tsx +0 -435
- package/src/components/navigation/ContextMenu/ContextMenu.stories.tsx +0 -614
- package/src/components/navigation/ContextMenu/ContextMenu.test.stories.tsx +0 -845
- package/src/components/navigation/DropdownMenu/DropdownMenu.stories.tsx +0 -578
- package/src/components/navigation/DropdownMenu/DropdownMenu.test.stories.tsx +0 -660
- package/src/components/navigation/NavigationMenu/stories/NavigationMenu.stories.tsx +0 -516
- package/src/components/navigation/NavigationMenu/stories/NavigationMenu.test.stories.tsx +0 -935
- package/src/components/navigation/NavigationMenu/stories/NavigationMenuHorizontal.stories.tsx +0 -501
- package/src/components/navigation/NavigationMenu/stories/NavigationMenuVertical.stories.tsx +0 -453
- package/src/components/navigation/Pagination/Pagination.stories.tsx +0 -602
- package/src/components/navigation/Pagination/Pagination.test.stories.tsx +0 -520
- package/src/components/navigation/Tabs/Tabs.stories.tsx +0 -1004
- package/src/components/navigation/Tabs/Tabs.test.stories.tsx +0 -1225
- package/src/components/typography/Blockquote/Blockquote.stories.tsx +0 -359
- package/src/components/typography/Blockquote/Blockquote.test.stories.tsx +0 -432
- package/src/components/typography/Code/Code.stories.tsx +0 -686
- package/src/components/typography/Code/Code.test.stories.tsx +0 -703
- package/src/components/typography/Heading/Heading.stories.tsx +0 -451
- package/src/components/typography/Heading/Heading.test.stories.tsx +0 -830
- package/src/components/typography/Paragraph/Paragraph.stories.tsx +0 -280
- package/src/components/typography/Paragraph/Paragraph.test.stories.tsx +0 -231
- package/src/components/typography/Text/Text.stories.tsx +0 -359
- package/src/components/typography/Text/Text.test.stories.tsx +0 -762
- package/src/components/utility/AnimatedIcon/AnimatedIcon.stories.tsx +0 -945
- package/src/components/utility/AnimatedIcon/AnimatedIcon.test.stories.tsx +0 -603
- package/src/components/utility/AspectRatio/AspectRatio.stories.tsx +0 -414
- package/src/components/utility/AspectRatio/AspectRatio.test.stories.tsx +0 -859
- package/src/components/utility/InfiniteScroll/InfiniteScroll.stories.tsx +0 -620
- package/src/components/utility/InfiniteScroll/InfiniteScroll.test.stories.tsx +0 -361
- package/src/components/utility/InstallPrompt/InstallPrompt.stories.tsx +0 -118
- package/src/components/utility/InstallPrompt/InstallPrompt.test.stories.tsx +0 -83
- package/src/components/utility/InstallPrompt/__tests__/InstallPrompt.ios.test.tsx +0 -65
- package/src/components/utility/InstallPrompt/__tests__/usePwaInstall.test.tsx +0 -271
- package/src/components/utility/Portal/Portal.stories.tsx +0 -340
- package/src/components/utility/Portal/Portal.test.stories.tsx +0 -2086
- package/src/components/utility/Transition/Transition.stories.tsx +0 -493
- package/src/components/utility/Transition/Transition.test.stories.tsx +0 -854
- package/src/components/utility/VirtualList/VirtualList.stories.tsx +0 -1073
- package/src/components/utility/VirtualList/VirtualList.test.stories.tsx +0 -1085
- package/src/components/utility/WorkflowStep/WorkflowStep.stories.tsx +0 -431
- package/src/components/utility/WorkflowStep/WorkflowStep.test.stories.tsx +0 -364
- /package/src/{button.tsx → button/button.tsx} +0 -0
|
@@ -1,945 +0,0 @@
|
|
|
1
|
-
import AccountCircle from '@mui/icons-material/AccountCircle';
|
|
2
|
-
import AutoAwesome from '@mui/icons-material/AutoAwesome';
|
|
3
|
-
import Bolt from '@mui/icons-material/Bolt';
|
|
4
|
-
import Diamond from '@mui/icons-material/Diamond';
|
|
5
|
-
import Download from '@mui/icons-material/Download';
|
|
6
|
-
import Favorite from '@mui/icons-material/Favorite';
|
|
7
|
-
import FlashOn from '@mui/icons-material/FlashOn';
|
|
8
|
-
import Home from '@mui/icons-material/Home';
|
|
9
|
-
import Lens from '@mui/icons-material/Lens';
|
|
10
|
-
import Lightbulb from '@mui/icons-material/Lightbulb';
|
|
11
|
-
import Notifications from '@mui/icons-material/Notifications';
|
|
12
|
-
import Psychology from '@mui/icons-material/Psychology';
|
|
13
|
-
import Refresh from '@mui/icons-material/Refresh';
|
|
14
|
-
import Rocket from '@mui/icons-material/Rocket';
|
|
15
|
-
import Search from '@mui/icons-material/Search';
|
|
16
|
-
import Settings from '@mui/icons-material/Settings';
|
|
17
|
-
import Star from '@mui/icons-material/Star';
|
|
18
|
-
import Upload from '@mui/icons-material/Upload';
|
|
19
|
-
import Waves from '@mui/icons-material/Waves';
|
|
20
|
-
import { Box, Chip,Grid, Paper, Stack, Typography } from '@mui/material';
|
|
21
|
-
import type { Meta, StoryObj } from '@storybook/react-vite';
|
|
22
|
-
import React from 'react';
|
|
23
|
-
|
|
24
|
-
import { AnimatedIcon } from './AnimatedIcon';
|
|
25
|
-
|
|
26
|
-
const meta: Meta<typeof AnimatedIcon> = {
|
|
27
|
-
title: 'Enhanced/AnimatedIcon',
|
|
28
|
-
component: AnimatedIcon,
|
|
29
|
-
parameters: {
|
|
30
|
-
layout: 'centered',
|
|
31
|
-
docs: {
|
|
32
|
-
description: {
|
|
33
|
-
component:
|
|
34
|
-
'Advanced animated icon wrapper with 17 animation variants and multiple visual effects including glow, glass morphism, metallic, gradient, neon, and holographic styles.',
|
|
35
|
-
},
|
|
36
|
-
},
|
|
37
|
-
},
|
|
38
|
-
tags: ['autodocs', 'component:AnimatedIcon'],
|
|
39
|
-
argTypes: {
|
|
40
|
-
children: {
|
|
41
|
-
control: false,
|
|
42
|
-
description: 'Icon element to animate - can be any React node (MUI icon, SVG, etc.)',
|
|
43
|
-
},
|
|
44
|
-
variant: {
|
|
45
|
-
control: 'select',
|
|
46
|
-
options: [
|
|
47
|
-
'none',
|
|
48
|
-
'rotate',
|
|
49
|
-
'pulse',
|
|
50
|
-
'translate',
|
|
51
|
-
'bounce',
|
|
52
|
-
'shake',
|
|
53
|
-
'flip',
|
|
54
|
-
'spin',
|
|
55
|
-
'fadeInOut',
|
|
56
|
-
'heartbeat',
|
|
57
|
-
'wobble',
|
|
58
|
-
'morph',
|
|
59
|
-
'swing',
|
|
60
|
-
'float',
|
|
61
|
-
'jello',
|
|
62
|
-
'neonFlicker',
|
|
63
|
-
'breathe',
|
|
64
|
-
],
|
|
65
|
-
description: 'Animation variant to apply',
|
|
66
|
-
},
|
|
67
|
-
size: {
|
|
68
|
-
control: 'select',
|
|
69
|
-
options: ['sm', 'md', 'lg', 'xl'],
|
|
70
|
-
description: 'Size of the animated icon container',
|
|
71
|
-
},
|
|
72
|
-
color: {
|
|
73
|
-
control: 'color',
|
|
74
|
-
description: 'Custom color override for the icon',
|
|
75
|
-
},
|
|
76
|
-
duration: {
|
|
77
|
-
control: { type: 'range', min: 0.5, max: 5, step: 0.5 },
|
|
78
|
-
description: 'Animation duration in seconds',
|
|
79
|
-
},
|
|
80
|
-
delay: {
|
|
81
|
-
control: { type: 'range', min: 0, max: 3, step: 0.5 },
|
|
82
|
-
description: 'Animation delay in seconds',
|
|
83
|
-
},
|
|
84
|
-
loop: {
|
|
85
|
-
control: 'boolean',
|
|
86
|
-
description: 'Whether the animation should loop infinitely',
|
|
87
|
-
},
|
|
88
|
-
glow: {
|
|
89
|
-
control: 'boolean',
|
|
90
|
-
description: 'Enable glow effect around the icon',
|
|
91
|
-
},
|
|
92
|
-
glass: {
|
|
93
|
-
control: 'boolean',
|
|
94
|
-
description: 'Enable glass morphism effect',
|
|
95
|
-
},
|
|
96
|
-
glowColor: {
|
|
97
|
-
control: 'color',
|
|
98
|
-
description: 'Glow color (only used when glow is true)',
|
|
99
|
-
},
|
|
100
|
-
metallic: {
|
|
101
|
-
control: 'boolean',
|
|
102
|
-
description: 'Enable metallic appearance',
|
|
103
|
-
},
|
|
104
|
-
gradient: {
|
|
105
|
-
control: 'boolean',
|
|
106
|
-
description: 'Enable gradient background',
|
|
107
|
-
},
|
|
108
|
-
shadow: {
|
|
109
|
-
control: 'select',
|
|
110
|
-
options: ['none', 'soft', 'hard', 'elevated'],
|
|
111
|
-
description: 'Shadow style for the icon',
|
|
112
|
-
},
|
|
113
|
-
ripple: {
|
|
114
|
-
control: 'boolean',
|
|
115
|
-
description: 'Enable ripple effect overlay',
|
|
116
|
-
},
|
|
117
|
-
neon: {
|
|
118
|
-
control: 'boolean',
|
|
119
|
-
description: 'Enable neon glow effect',
|
|
120
|
-
},
|
|
121
|
-
holographic: {
|
|
122
|
-
control: 'boolean',
|
|
123
|
-
description: 'Enable holographic rainbow effect',
|
|
124
|
-
},
|
|
125
|
-
},
|
|
126
|
-
};
|
|
127
|
-
|
|
128
|
-
export default meta;
|
|
129
|
-
type Story = StoryObj<typeof meta>;
|
|
130
|
-
|
|
131
|
-
// Required Default story
|
|
132
|
-
export const Default: Story = {
|
|
133
|
-
args: {
|
|
134
|
-
children: <Star />,
|
|
135
|
-
},
|
|
136
|
-
};
|
|
137
|
-
|
|
138
|
-
export const Playground: Story = {
|
|
139
|
-
args: {
|
|
140
|
-
children: <Star />,
|
|
141
|
-
variant: 'spin',
|
|
142
|
-
size: 'lg',
|
|
143
|
-
duration: 2,
|
|
144
|
-
glow: true,
|
|
145
|
-
glowColor: '#FFD700',
|
|
146
|
-
},
|
|
147
|
-
};
|
|
148
|
-
|
|
149
|
-
// Showcase all animation variants
|
|
150
|
-
// Comprehensive showcase of all animation variants
|
|
151
|
-
export const AllVariants: Story = {
|
|
152
|
-
args: {},
|
|
153
|
-
render: () => {
|
|
154
|
-
const variants = [
|
|
155
|
-
{ variant: 'none', icon: <Home />, description: 'No animation, static display' },
|
|
156
|
-
{ variant: 'rotate', icon: <Refresh />, description: 'Continuous rotation animation' },
|
|
157
|
-
{ variant: 'pulse', icon: <Favorite />, description: 'Scale pulsing effect' },
|
|
158
|
-
{ variant: 'translate', icon: <Star />, description: 'Vertical translation movement' },
|
|
159
|
-
{ variant: 'bounce', icon: <Download />, description: 'Bouncing with gravity effect' },
|
|
160
|
-
{ variant: 'shake', icon: <Notifications />, description: 'Horizontal shaking motion' },
|
|
161
|
-
{ variant: 'flip', icon: <AccountCircle />, description: '3D flip rotation effect' },
|
|
162
|
-
{ variant: 'spin', icon: <Settings />, description: 'Rotating with scale change' },
|
|
163
|
-
{ variant: 'fadeInOut', icon: <Search />, description: 'Opacity fade animation' },
|
|
164
|
-
{ variant: 'heartbeat', icon: <Favorite />, description: 'Double pulse heartbeat' },
|
|
165
|
-
{ variant: 'wobble', icon: <Diamond />, description: 'Wobbly side-to-side motion' },
|
|
166
|
-
{ variant: 'morph', icon: <Lens />, description: 'Shape morphing animation' },
|
|
167
|
-
{ variant: 'swing', icon: <Lightbulb />, description: 'Pendulum swing motion' },
|
|
168
|
-
{ variant: 'float', icon: <Rocket />, description: 'Floating in space effect' },
|
|
169
|
-
{ variant: 'jello', icon: <AutoAwesome />, description: 'Jelly-like elastic bounce' },
|
|
170
|
-
{ variant: 'neonFlicker', icon: <Bolt />, description: 'Neon sign flicker effect' },
|
|
171
|
-
{ variant: 'breathe', icon: <Psychology />, description: 'Gentle breathing pulse' },
|
|
172
|
-
] as const;
|
|
173
|
-
|
|
174
|
-
return (
|
|
175
|
-
<Grid container spacing={3}>
|
|
176
|
-
{variants.map(({ variant, icon, description }) => (
|
|
177
|
-
<Grid item xs={12} sm={6} md={4} lg={3} key={variant}>
|
|
178
|
-
<Paper
|
|
179
|
-
sx={{
|
|
180
|
-
p: 3,
|
|
181
|
-
textAlign: 'center',
|
|
182
|
-
height: '100%',
|
|
183
|
-
background:
|
|
184
|
-
'linear-gradient(135deg, rgba(255,255,255,0.1), rgba(255,255,255,0.05))',
|
|
185
|
-
backdropFilter: 'blur(10px)',
|
|
186
|
-
border: '1px solid',
|
|
187
|
-
borderColor: 'divider',
|
|
188
|
-
transition: 'all 0.3s ease',
|
|
189
|
-
'&:hover': {
|
|
190
|
-
transform: 'translateY(-4px)',
|
|
191
|
-
boxShadow: '0 8px 24px rgba(0,0,0,0.1)',
|
|
192
|
-
},
|
|
193
|
-
}}
|
|
194
|
-
>
|
|
195
|
-
<AnimatedIcon variant={variant} size="lg">
|
|
196
|
-
{icon}
|
|
197
|
-
</AnimatedIcon>
|
|
198
|
-
<Typography
|
|
199
|
-
variant="h6"
|
|
200
|
-
sx={{ mt: 2, textTransform: 'capitalize', fontWeight: 'bold' }}
|
|
201
|
-
>
|
|
202
|
-
{variant === 'none' ? 'Static' : variant.replace(/([A-Z])/g, ' $1').trim()}
|
|
203
|
-
</Typography>
|
|
204
|
-
<Typography variant="body2" color="text.secondary" sx={{ mt: 1 }}>
|
|
205
|
-
{description}
|
|
206
|
-
</Typography>
|
|
207
|
-
</Paper>
|
|
208
|
-
</Grid>
|
|
209
|
-
))}
|
|
210
|
-
</Grid>
|
|
211
|
-
);
|
|
212
|
-
},
|
|
213
|
-
};
|
|
214
|
-
|
|
215
|
-
// New comprehensive animation showcase
|
|
216
|
-
export const AllAnimationVariants: Story = {
|
|
217
|
-
args: {},
|
|
218
|
-
render: () => {
|
|
219
|
-
const variants = [
|
|
220
|
-
{ variant: 'rotate', icon: <Refresh />, description: 'Continuous rotation' },
|
|
221
|
-
{ variant: 'pulse', icon: <Favorite />, description: 'Scale pulsing' },
|
|
222
|
-
{ variant: 'translate', icon: <Upload />, description: 'Vertical movement' },
|
|
223
|
-
{ variant: 'bounce', icon: <Download />, description: 'Bouncing effect' },
|
|
224
|
-
{ variant: 'shake', icon: <Notifications />, description: 'Horizontal shake' },
|
|
225
|
-
{ variant: 'flip', icon: <AccountCircle />, description: '3D flip rotation' },
|
|
226
|
-
{ variant: 'spin', icon: <Settings />, description: 'Spin with scale' },
|
|
227
|
-
{ variant: 'fadeInOut', icon: <Star />, description: 'Opacity fade' },
|
|
228
|
-
{ variant: 'heartbeat', icon: <Favorite />, description: 'Double pulse' },
|
|
229
|
-
{ variant: 'wobble', icon: <Home />, description: 'Wobbly motion' },
|
|
230
|
-
{ variant: 'morph', icon: <Lens />, description: 'Shape morphing' },
|
|
231
|
-
{ variant: 'swing', icon: <Notifications />, description: 'Pendulum swing' },
|
|
232
|
-
{ variant: 'float', icon: <Rocket />, description: 'Floating in space' },
|
|
233
|
-
{ variant: 'jello', icon: <Diamond />, description: 'Jelly elastic' },
|
|
234
|
-
{ variant: 'neonFlicker', icon: <Bolt />, description: 'Neon flicker' },
|
|
235
|
-
{ variant: 'breathe', icon: <Psychology />, description: 'Gentle breathing' },
|
|
236
|
-
] as const;
|
|
237
|
-
|
|
238
|
-
return (
|
|
239
|
-
<Grid container spacing={3} sx={{ maxWidth: 1200 }}>
|
|
240
|
-
{variants.map(({ variant, icon, description }) => (
|
|
241
|
-
<Grid item xs={6} sm={4} md={3} key={variant}>
|
|
242
|
-
<Paper
|
|
243
|
-
sx={{
|
|
244
|
-
p: 3,
|
|
245
|
-
textAlign: 'center',
|
|
246
|
-
height: '100%',
|
|
247
|
-
background:
|
|
248
|
-
'linear-gradient(135deg, rgba(255,255,255,0.1), rgba(255,255,255,0.05))',
|
|
249
|
-
backdropFilter: 'blur(10px)',
|
|
250
|
-
border: '1px solid',
|
|
251
|
-
borderColor: 'divider',
|
|
252
|
-
transition: 'transform 0.3s',
|
|
253
|
-
'&:hover': {
|
|
254
|
-
transform: 'translateY(-4px)',
|
|
255
|
-
},
|
|
256
|
-
}}
|
|
257
|
-
>
|
|
258
|
-
<AnimatedIcon variant={variant} size="lg">
|
|
259
|
-
{icon}
|
|
260
|
-
</AnimatedIcon>
|
|
261
|
-
<Typography variant="subtitle2" sx={{ mt: 2, fontWeight: 'bold' }}>
|
|
262
|
-
{variant}
|
|
263
|
-
</Typography>
|
|
264
|
-
<Typography variant="caption" color="text.secondary" display="block">
|
|
265
|
-
{description}
|
|
266
|
-
</Typography>
|
|
267
|
-
</Paper>
|
|
268
|
-
</Grid>
|
|
269
|
-
))}
|
|
270
|
-
</Grid>
|
|
271
|
-
);
|
|
272
|
-
},
|
|
273
|
-
};
|
|
274
|
-
|
|
275
|
-
// Visual Effects Showcase
|
|
276
|
-
export const VisualEffects: Story = {
|
|
277
|
-
args: {},
|
|
278
|
-
render: () => (
|
|
279
|
-
<Stack spacing={4}>
|
|
280
|
-
<Typography variant="h5">Visual Effects Gallery</Typography>
|
|
281
|
-
|
|
282
|
-
<Grid container spacing={3}>
|
|
283
|
-
<Grid item xs={12} sm={6} md={4}>
|
|
284
|
-
<Paper sx={{ p: 3, textAlign: 'center', background: '#1a1a1a' }}>
|
|
285
|
-
<AnimatedIcon variant="pulse" size="lg" glow glowColor="#FFD700">
|
|
286
|
-
<Star />
|
|
287
|
-
</AnimatedIcon>
|
|
288
|
-
<Typography variant="subtitle1" sx={{ mt: 2, color: 'common.white' }}>
|
|
289
|
-
Glow Effect
|
|
290
|
-
</Typography>
|
|
291
|
-
<Typography variant="caption" sx={{ color: 'gray' }}>
|
|
292
|
-
Radiant aura animation
|
|
293
|
-
</Typography>
|
|
294
|
-
</Paper>
|
|
295
|
-
</Grid>
|
|
296
|
-
|
|
297
|
-
<Grid item xs={12} sm={6} md={4}>
|
|
298
|
-
<Paper
|
|
299
|
-
sx={{
|
|
300
|
-
p: 3,
|
|
301
|
-
textAlign: 'center',
|
|
302
|
-
background: 'linear-gradient(135deg, #667eea 0%, #764ba2 100%)',
|
|
303
|
-
}}
|
|
304
|
-
>
|
|
305
|
-
<AnimatedIcon variant="rotate" size="lg" glass>
|
|
306
|
-
<Diamond />
|
|
307
|
-
</AnimatedIcon>
|
|
308
|
-
<Typography variant="subtitle1" sx={{ mt: 2, color: 'common.white' }}>
|
|
309
|
-
Glass Morphism
|
|
310
|
-
</Typography>
|
|
311
|
-
<Typography variant="caption" sx={{ color: 'rgba(255,255,255,0.8)' }}>
|
|
312
|
-
Frosted glass effect
|
|
313
|
-
</Typography>
|
|
314
|
-
</Paper>
|
|
315
|
-
</Grid>
|
|
316
|
-
|
|
317
|
-
<Grid item xs={12} sm={6} md={4}>
|
|
318
|
-
<Paper sx={{ p: 3, textAlign: 'center' }}>
|
|
319
|
-
<AnimatedIcon variant="spin" size="lg" metallic>
|
|
320
|
-
<Settings />
|
|
321
|
-
</AnimatedIcon>
|
|
322
|
-
<Typography variant="subtitle1" sx={{ mt: 2 }}>
|
|
323
|
-
Metallic
|
|
324
|
-
</Typography>
|
|
325
|
-
<Typography variant="caption" color="text.secondary">
|
|
326
|
-
Chrome-like finish
|
|
327
|
-
</Typography>
|
|
328
|
-
</Paper>
|
|
329
|
-
</Grid>
|
|
330
|
-
|
|
331
|
-
<Grid item xs={12} sm={6} md={4}>
|
|
332
|
-
<Paper sx={{ p: 3, textAlign: 'center' }}>
|
|
333
|
-
<AnimatedIcon variant="float" size="lg" gradient>
|
|
334
|
-
<Rocket />
|
|
335
|
-
</AnimatedIcon>
|
|
336
|
-
<Typography variant="subtitle1" sx={{ mt: 2 }}>
|
|
337
|
-
Gradient
|
|
338
|
-
</Typography>
|
|
339
|
-
<Typography variant="caption" color="text.secondary">
|
|
340
|
-
Color gradient background
|
|
341
|
-
</Typography>
|
|
342
|
-
</Paper>
|
|
343
|
-
</Grid>
|
|
344
|
-
|
|
345
|
-
<Grid item xs={12} sm={6} md={4}>
|
|
346
|
-
<Paper sx={{ p: 3, textAlign: 'center', background: '#0a0a0a' }}>
|
|
347
|
-
<AnimatedIcon variant="neonFlicker" size="lg" neon color="#00ffff">
|
|
348
|
-
<Bolt />
|
|
349
|
-
</AnimatedIcon>
|
|
350
|
-
<Typography variant="subtitle1" sx={{ mt: 2, color: '#00ffff' }}>
|
|
351
|
-
Neon
|
|
352
|
-
</Typography>
|
|
353
|
-
<Typography variant="caption" sx={{ color: 'gray' }}>
|
|
354
|
-
Electric neon glow
|
|
355
|
-
</Typography>
|
|
356
|
-
</Paper>
|
|
357
|
-
</Grid>
|
|
358
|
-
|
|
359
|
-
<Grid item xs={12} sm={6} md={4}>
|
|
360
|
-
<Paper sx={{ p: 3, textAlign: 'center', background: '#1a0033' }}>
|
|
361
|
-
<AnimatedIcon variant="breathe" size="lg" holographic>
|
|
362
|
-
<AutoAwesome />
|
|
363
|
-
</AnimatedIcon>
|
|
364
|
-
<Typography variant="subtitle1" sx={{ mt: 2, color: 'common.white' }}>
|
|
365
|
-
Holographic
|
|
366
|
-
</Typography>
|
|
367
|
-
<Typography variant="caption" sx={{ color: 'rgba(255,255,255,0.7)' }}>
|
|
368
|
-
Rainbow shimmer
|
|
369
|
-
</Typography>
|
|
370
|
-
</Paper>
|
|
371
|
-
</Grid>
|
|
372
|
-
</Grid>
|
|
373
|
-
</Stack>
|
|
374
|
-
),
|
|
375
|
-
};
|
|
376
|
-
|
|
377
|
-
// Shadow Styles
|
|
378
|
-
export const ShadowStyles: Story = {
|
|
379
|
-
args: {},
|
|
380
|
-
render: () => (
|
|
381
|
-
<Stack spacing={4}>
|
|
382
|
-
<Typography variant="h5">Shadow Variations</Typography>
|
|
383
|
-
<Grid container spacing={3}>
|
|
384
|
-
{(['none', 'soft', 'hard', 'elevated'] as const).map((shadow) => (
|
|
385
|
-
<Grid item xs={6} sm={3} key={shadow}>
|
|
386
|
-
<Paper sx={{ p: 3, textAlign: 'center' }}>
|
|
387
|
-
<AnimatedIcon variant="pulse" size="lg" shadow={shadow}>
|
|
388
|
-
<Lightbulb />
|
|
389
|
-
</AnimatedIcon>
|
|
390
|
-
<Typography variant="subtitle2" sx={{ mt: 2, textTransform: 'capitalize' }}>
|
|
391
|
-
{shadow === 'none' ? 'No Shadow' : `${shadow} Shadow`}
|
|
392
|
-
</Typography>
|
|
393
|
-
</Paper>
|
|
394
|
-
</Grid>
|
|
395
|
-
))}
|
|
396
|
-
</Grid>
|
|
397
|
-
</Stack>
|
|
398
|
-
),
|
|
399
|
-
};
|
|
400
|
-
|
|
401
|
-
// Combined Effects
|
|
402
|
-
export const CombinedEffects: Story = {
|
|
403
|
-
args: {},
|
|
404
|
-
render: () => (
|
|
405
|
-
<Stack spacing={4}>
|
|
406
|
-
<Typography variant="h5">Combined Effects</Typography>
|
|
407
|
-
<Grid container spacing={3}>
|
|
408
|
-
<Grid item xs={12} sm={6} md={4}>
|
|
409
|
-
<Paper
|
|
410
|
-
sx={{
|
|
411
|
-
p: 3,
|
|
412
|
-
textAlign: 'center',
|
|
413
|
-
background: 'linear-gradient(135deg, #667eea 0%, #764ba2 100%)',
|
|
414
|
-
}}
|
|
415
|
-
>
|
|
416
|
-
<AnimatedIcon variant="spin" size="lg" glow glass glowColor="#ffffff">
|
|
417
|
-
<Diamond />
|
|
418
|
-
</AnimatedIcon>
|
|
419
|
-
<Typography variant="subtitle2" sx={{ mt: 2, color: 'common.white' }}>
|
|
420
|
-
Glass + Glow + Spin
|
|
421
|
-
</Typography>
|
|
422
|
-
</Paper>
|
|
423
|
-
</Grid>
|
|
424
|
-
|
|
425
|
-
<Grid item xs={12} sm={6} md={4}>
|
|
426
|
-
<Paper sx={{ p: 3, textAlign: 'center', background: '#0f0f0f' }}>
|
|
427
|
-
<AnimatedIcon variant="float" size="lg" neon ripple color="#ff00ff">
|
|
428
|
-
<FlashOn />
|
|
429
|
-
</AnimatedIcon>
|
|
430
|
-
<Typography variant="subtitle2" sx={{ mt: 2, color: '#ff00ff' }}>
|
|
431
|
-
Neon + Ripple + Float
|
|
432
|
-
</Typography>
|
|
433
|
-
</Paper>
|
|
434
|
-
</Grid>
|
|
435
|
-
|
|
436
|
-
<Grid item xs={12} sm={6} md={4}>
|
|
437
|
-
<Paper sx={{ p: 3, textAlign: 'center' }}>
|
|
438
|
-
<AnimatedIcon variant="heartbeat" size="lg" gradient shadow="elevated">
|
|
439
|
-
<Favorite />
|
|
440
|
-
</AnimatedIcon>
|
|
441
|
-
<Typography variant="subtitle2" sx={{ mt: 2 }}>
|
|
442
|
-
Gradient + Shadow + Heartbeat
|
|
443
|
-
</Typography>
|
|
444
|
-
</Paper>
|
|
445
|
-
</Grid>
|
|
446
|
-
|
|
447
|
-
<Grid item xs={12} sm={6} md={4}>
|
|
448
|
-
<Paper sx={{ p: 3, textAlign: 'center' }}>
|
|
449
|
-
<AnimatedIcon variant="wobble" size="lg" metallic shadow="hard">
|
|
450
|
-
<Settings />
|
|
451
|
-
</AnimatedIcon>
|
|
452
|
-
<Typography variant="subtitle2" sx={{ mt: 2 }}>
|
|
453
|
-
Metallic + Hard Shadow + Wobble
|
|
454
|
-
</Typography>
|
|
455
|
-
</Paper>
|
|
456
|
-
</Grid>
|
|
457
|
-
|
|
458
|
-
<Grid item xs={12} sm={6} md={4}>
|
|
459
|
-
<Paper
|
|
460
|
-
sx={{
|
|
461
|
-
p: 3,
|
|
462
|
-
textAlign: 'center',
|
|
463
|
-
background: 'linear-gradient(135deg, #1e3c72 0%, #2a5298 100%)',
|
|
464
|
-
}}
|
|
465
|
-
>
|
|
466
|
-
<AnimatedIcon variant="morph" size="lg" holographic glow>
|
|
467
|
-
<AutoAwesome />
|
|
468
|
-
</AnimatedIcon>
|
|
469
|
-
<Typography variant="subtitle2" sx={{ mt: 2, color: 'common.white' }}>
|
|
470
|
-
Holographic + Glow + Morph
|
|
471
|
-
</Typography>
|
|
472
|
-
</Paper>
|
|
473
|
-
</Grid>
|
|
474
|
-
|
|
475
|
-
<Grid item xs={12} sm={6} md={4}>
|
|
476
|
-
<Paper sx={{ p: 3, textAlign: 'center' }}>
|
|
477
|
-
<AnimatedIcon variant="jello" size="lg" glass ripple shadow="soft">
|
|
478
|
-
<Waves />
|
|
479
|
-
</AnimatedIcon>
|
|
480
|
-
<Typography variant="subtitle2" sx={{ mt: 2 }}>
|
|
481
|
-
Glass + Ripple + Soft Shadow
|
|
482
|
-
</Typography>
|
|
483
|
-
</Paper>
|
|
484
|
-
</Grid>
|
|
485
|
-
</Grid>
|
|
486
|
-
</Stack>
|
|
487
|
-
),
|
|
488
|
-
};
|
|
489
|
-
|
|
490
|
-
// Interactive Demo
|
|
491
|
-
export const InteractiveDemo: Story = {
|
|
492
|
-
args: {},
|
|
493
|
-
render: () => {
|
|
494
|
-
const [selectedVariant, setSelectedVariant] = React.useState<string>('spin');
|
|
495
|
-
const [effects, setEffects] = React.useState({
|
|
496
|
-
glow: false,
|
|
497
|
-
glass: false,
|
|
498
|
-
metallic: false,
|
|
499
|
-
gradient: false,
|
|
500
|
-
neon: false,
|
|
501
|
-
holographic: false,
|
|
502
|
-
ripple: false,
|
|
503
|
-
});
|
|
504
|
-
|
|
505
|
-
const toggleEffect = (effect: keyof typeof effects) => {
|
|
506
|
-
setEffects((prev) => ({ ...prev, [effect]: !prev[effect] }));
|
|
507
|
-
};
|
|
508
|
-
|
|
509
|
-
return (
|
|
510
|
-
<Stack spacing={4} sx={{ minWidth: 600 }}>
|
|
511
|
-
<Typography variant="h5">Interactive Playground</Typography>
|
|
512
|
-
|
|
513
|
-
<Paper
|
|
514
|
-
sx={{
|
|
515
|
-
p: 4,
|
|
516
|
-
textAlign: 'center',
|
|
517
|
-
minHeight: 200,
|
|
518
|
-
display: 'flex',
|
|
519
|
-
alignItems: 'center',
|
|
520
|
-
justifyContent: 'center',
|
|
521
|
-
}}
|
|
522
|
-
>
|
|
523
|
-
<AnimatedIcon
|
|
524
|
-
variant={selectedVariant}
|
|
525
|
-
size="xl"
|
|
526
|
-
{...effects}
|
|
527
|
-
shadow={effects.metallic ? 'hard' : effects.glass ? 'soft' : 'none'}
|
|
528
|
-
color={effects.neon ? '#00ff00' : undefined}
|
|
529
|
-
>
|
|
530
|
-
<Star />
|
|
531
|
-
</AnimatedIcon>
|
|
532
|
-
</Paper>
|
|
533
|
-
|
|
534
|
-
<Box>
|
|
535
|
-
<Typography variant="subtitle2" gutterBottom>
|
|
536
|
-
Animation Variant
|
|
537
|
-
</Typography>
|
|
538
|
-
<Grid container spacing={1}>
|
|
539
|
-
{['spin', 'pulse', 'bounce', 'float', 'heartbeat', 'wobble', 'neonFlicker'].map(
|
|
540
|
-
(variant) => (
|
|
541
|
-
<Grid item key={variant}>
|
|
542
|
-
<Chip
|
|
543
|
-
label={variant}
|
|
544
|
-
onClick={() => setSelectedVariant(variant)}
|
|
545
|
-
color={selectedVariant === variant ? 'primary' : 'default'}
|
|
546
|
-
variant={selectedVariant === variant ? 'filled' : 'outlined'}
|
|
547
|
-
/>
|
|
548
|
-
</Grid>
|
|
549
|
-
),
|
|
550
|
-
)}
|
|
551
|
-
</Grid>
|
|
552
|
-
</Box>
|
|
553
|
-
|
|
554
|
-
<Box>
|
|
555
|
-
<Typography variant="subtitle2" gutterBottom>
|
|
556
|
-
Visual Effects
|
|
557
|
-
</Typography>
|
|
558
|
-
<Grid container spacing={1}>
|
|
559
|
-
{Object.keys(effects).map((effect) => (
|
|
560
|
-
<Grid item key={effect}>
|
|
561
|
-
<Chip
|
|
562
|
-
label={effect}
|
|
563
|
-
onClick={() => toggleEffect(effect as keyof typeof effects)}
|
|
564
|
-
color={effects[effect as keyof typeof effects] ? 'secondary' : 'default'}
|
|
565
|
-
variant={effects[effect as keyof typeof effects] ? 'filled' : 'outlined'}
|
|
566
|
-
/>
|
|
567
|
-
</Grid>
|
|
568
|
-
))}
|
|
569
|
-
</Grid>
|
|
570
|
-
</Box>
|
|
571
|
-
</Stack>
|
|
572
|
-
);
|
|
573
|
-
},
|
|
574
|
-
};
|
|
575
|
-
|
|
576
|
-
// Use Cases
|
|
577
|
-
export const UseCases: Story = {
|
|
578
|
-
args: {},
|
|
579
|
-
render: () => (
|
|
580
|
-
<Stack spacing={4}>
|
|
581
|
-
<Typography variant="h5">Real-World Use Cases</Typography>
|
|
582
|
-
|
|
583
|
-
<Paper sx={{ p: 3, background: 'linear-gradient(135deg, #667eea 0%, #764ba2 100%)' }}>
|
|
584
|
-
<Stack direction="row" spacing={2} alignItems="center">
|
|
585
|
-
<AnimatedIcon variant="rotate" size="md" color="#ffffff" glass>
|
|
586
|
-
<Refresh />
|
|
587
|
-
</AnimatedIcon>
|
|
588
|
-
<Box>
|
|
589
|
-
<Typography variant="h6" sx={{ color: 'common.white' }}>
|
|
590
|
-
Loading State
|
|
591
|
-
</Typography>
|
|
592
|
-
<Typography variant="body2" sx={{ color: 'rgba(255,255,255,0.9)' }}>
|
|
593
|
-
Processing your request...
|
|
594
|
-
</Typography>
|
|
595
|
-
</Box>
|
|
596
|
-
</Stack>
|
|
597
|
-
</Paper>
|
|
598
|
-
|
|
599
|
-
<Paper sx={{ p: 3, background: 'linear-gradient(135deg, #f093fb 0%, #f5576c 100%)' }}>
|
|
600
|
-
<Stack direction="row" spacing={2} alignItems="center">
|
|
601
|
-
<AnimatedIcon variant="heartbeat" size="md" color="#ffffff" glow>
|
|
602
|
-
<Favorite />
|
|
603
|
-
</AnimatedIcon>
|
|
604
|
-
<Box>
|
|
605
|
-
<Typography variant="h6" sx={{ color: 'common.white' }}>
|
|
606
|
-
Like Animation
|
|
607
|
-
</Typography>
|
|
608
|
-
<Typography variant="body2" sx={{ color: 'rgba(255,255,255,0.9)' }}>
|
|
609
|
-
Double-tap to like this post
|
|
610
|
-
</Typography>
|
|
611
|
-
</Box>
|
|
612
|
-
</Stack>
|
|
613
|
-
</Paper>
|
|
614
|
-
|
|
615
|
-
<Paper sx={{ p: 3, background: '#0f0f0f' }}>
|
|
616
|
-
<Stack direction="row" spacing={2} alignItems="center">
|
|
617
|
-
<AnimatedIcon variant="neonFlicker" size="md" neon color="#00ffff">
|
|
618
|
-
<Bolt />
|
|
619
|
-
</AnimatedIcon>
|
|
620
|
-
<Box>
|
|
621
|
-
<Typography variant="h6" sx={{ color: '#00ffff' }}>
|
|
622
|
-
Power Mode
|
|
623
|
-
</Typography>
|
|
624
|
-
<Typography variant="body2" sx={{ color: 'gray' }}>
|
|
625
|
-
High performance enabled
|
|
626
|
-
</Typography>
|
|
627
|
-
</Box>
|
|
628
|
-
</Stack>
|
|
629
|
-
</Paper>
|
|
630
|
-
|
|
631
|
-
<Paper sx={{ p: 3 }}>
|
|
632
|
-
<Stack direction="row" spacing={2} alignItems="center">
|
|
633
|
-
<AnimatedIcon variant="bounce" size="md" gradient shadow="elevated">
|
|
634
|
-
<Download />
|
|
635
|
-
</AnimatedIcon>
|
|
636
|
-
<Box>
|
|
637
|
-
<Typography variant="h6">Download Ready</Typography>
|
|
638
|
-
<Typography variant="body2" color="text.secondary">
|
|
639
|
-
Your file is ready to download
|
|
640
|
-
</Typography>
|
|
641
|
-
</Box>
|
|
642
|
-
</Stack>
|
|
643
|
-
</Paper>
|
|
644
|
-
|
|
645
|
-
<Paper sx={{ p: 3, background: 'linear-gradient(135deg, #fa709a 0%, #fee140 100%)' }}>
|
|
646
|
-
<Stack direction="row" spacing={2} alignItems="center">
|
|
647
|
-
<AnimatedIcon variant="float" size="md" color="#ffffff" ripple>
|
|
648
|
-
<Rocket />
|
|
649
|
-
</AnimatedIcon>
|
|
650
|
-
<Box>
|
|
651
|
-
<Typography variant="h6" sx={{ color: 'common.white' }}>
|
|
652
|
-
Launch Ready
|
|
653
|
-
</Typography>
|
|
654
|
-
<Typography variant="body2" sx={{ color: 'rgba(255,255,255,0.9)' }}>
|
|
655
|
-
Deployment in progress
|
|
656
|
-
</Typography>
|
|
657
|
-
</Box>
|
|
658
|
-
</Stack>
|
|
659
|
-
</Paper>
|
|
660
|
-
</Stack>
|
|
661
|
-
),
|
|
662
|
-
};
|
|
663
|
-
|
|
664
|
-
// Performance Demo
|
|
665
|
-
export const PerformanceDemo: Story = {
|
|
666
|
-
args: {},
|
|
667
|
-
render: () => (
|
|
668
|
-
<Stack spacing={4}>
|
|
669
|
-
<Typography variant="h5">Performance Test - Multiple Animations</Typography>
|
|
670
|
-
<Typography variant="body2" color="text.secondary">
|
|
671
|
-
All animations running simultaneously with different timings
|
|
672
|
-
</Typography>
|
|
673
|
-
|
|
674
|
-
<Grid container spacing={2}>
|
|
675
|
-
{Array.from({ length: 20 }, (_, i) => {
|
|
676
|
-
const variants = ['spin', 'pulse', 'bounce', 'float', 'wobble', 'heartbeat'] as const;
|
|
677
|
-
const variant = variants[i % variants.length];
|
|
678
|
-
const duration = 1 + (i % 4) * 0.5;
|
|
679
|
-
|
|
680
|
-
return (
|
|
681
|
-
<Grid item xs={3} sm={2} key={i}>
|
|
682
|
-
<Paper sx={{ p: 2, textAlign: 'center' }}>
|
|
683
|
-
<AnimatedIcon
|
|
684
|
-
variant={variant}
|
|
685
|
-
size="md"
|
|
686
|
-
duration={duration}
|
|
687
|
-
color={`hsl(${i * 18}, 70%, 50%)`}
|
|
688
|
-
>
|
|
689
|
-
<Star />
|
|
690
|
-
</AnimatedIcon>
|
|
691
|
-
<Typography variant="caption" display="block" sx={{ mt: 1 }}>
|
|
692
|
-
{duration}s
|
|
693
|
-
</Typography>
|
|
694
|
-
</Paper>
|
|
695
|
-
</Grid>
|
|
696
|
-
);
|
|
697
|
-
})}
|
|
698
|
-
</Grid>
|
|
699
|
-
</Stack>
|
|
700
|
-
),
|
|
701
|
-
};
|
|
702
|
-
|
|
703
|
-
// Required AllSizes story
|
|
704
|
-
export const AllSizes: Story = {
|
|
705
|
-
args: {},
|
|
706
|
-
render: () => (
|
|
707
|
-
<Stack spacing={4} alignItems="center">
|
|
708
|
-
<Typography variant="h5">Size Variations</Typography>
|
|
709
|
-
<Grid container spacing={3} justifyContent="center">
|
|
710
|
-
{(['sm', 'md', 'lg', 'xl'] as const).map((size) => (
|
|
711
|
-
<Grid item key={size}>
|
|
712
|
-
<Paper sx={{ p: 3, textAlign: 'center' }}>
|
|
713
|
-
<AnimatedIcon variant="pulse" size={size}>
|
|
714
|
-
<Star />
|
|
715
|
-
</AnimatedIcon>
|
|
716
|
-
<Typography variant="subtitle2" sx={{ mt: 2, textTransform: 'uppercase' }}>
|
|
717
|
-
{size}
|
|
718
|
-
</Typography>
|
|
719
|
-
</Paper>
|
|
720
|
-
</Grid>
|
|
721
|
-
))}
|
|
722
|
-
</Grid>
|
|
723
|
-
</Stack>
|
|
724
|
-
),
|
|
725
|
-
};
|
|
726
|
-
|
|
727
|
-
// Required AllStates story
|
|
728
|
-
export const AllStates: Story = {
|
|
729
|
-
args: {},
|
|
730
|
-
render: () => (
|
|
731
|
-
<Stack spacing={4}>
|
|
732
|
-
<Typography variant="h5">All Component States</Typography>
|
|
733
|
-
<Grid container spacing={3}>
|
|
734
|
-
<Grid item xs={12} sm={6} md={4}>
|
|
735
|
-
<Paper sx={{ p: 3, textAlign: 'center' }}>
|
|
736
|
-
<AnimatedIcon variant="none" size="lg">
|
|
737
|
-
<Star />
|
|
738
|
-
</AnimatedIcon>
|
|
739
|
-
<Typography variant="subtitle2" sx={{ mt: 2 }}>
|
|
740
|
-
Static State
|
|
741
|
-
</Typography>
|
|
742
|
-
</Paper>
|
|
743
|
-
</Grid>
|
|
744
|
-
<Grid item xs={12} sm={6} md={4}>
|
|
745
|
-
<Paper sx={{ p: 3, textAlign: 'center' }}>
|
|
746
|
-
<AnimatedIcon variant="rotate" size="lg">
|
|
747
|
-
<Refresh />
|
|
748
|
-
</AnimatedIcon>
|
|
749
|
-
<Typography variant="subtitle2" sx={{ mt: 2 }}>
|
|
750
|
-
Loading State
|
|
751
|
-
</Typography>
|
|
752
|
-
</Paper>
|
|
753
|
-
</Grid>
|
|
754
|
-
<Grid item xs={12} sm={6} md={4}>
|
|
755
|
-
<Paper sx={{ p: 3, textAlign: 'center' }}>
|
|
756
|
-
<AnimatedIcon variant="pulse" size="lg" glow glowColor="#4CAF50">
|
|
757
|
-
<Favorite />
|
|
758
|
-
</AnimatedIcon>
|
|
759
|
-
<Typography variant="subtitle2" sx={{ mt: 2 }}>
|
|
760
|
-
Active State
|
|
761
|
-
</Typography>
|
|
762
|
-
</Paper>
|
|
763
|
-
</Grid>
|
|
764
|
-
<Grid item xs={12} sm={6} md={4}>
|
|
765
|
-
<Paper sx={{ p: 3, textAlign: 'center' }}>
|
|
766
|
-
<AnimatedIcon variant="bounce" size="lg" color="#F44336">
|
|
767
|
-
<Notifications />
|
|
768
|
-
</AnimatedIcon>
|
|
769
|
-
<Typography variant="subtitle2" sx={{ mt: 2 }}>
|
|
770
|
-
Alert State
|
|
771
|
-
</Typography>
|
|
772
|
-
</Paper>
|
|
773
|
-
</Grid>
|
|
774
|
-
<Grid item xs={12} sm={6} md={4}>
|
|
775
|
-
<Paper sx={{ p: 3, textAlign: 'center', opacity: 0.5 }}>
|
|
776
|
-
<AnimatedIcon variant="none" size="lg" color="#ccc">
|
|
777
|
-
<Settings />
|
|
778
|
-
</AnimatedIcon>
|
|
779
|
-
<Typography variant="subtitle2" sx={{ mt: 2, color: 'text.disabled' }}>
|
|
780
|
-
Disabled State
|
|
781
|
-
</Typography>
|
|
782
|
-
</Paper>
|
|
783
|
-
</Grid>
|
|
784
|
-
<Grid item xs={12} sm={6} md={4}>
|
|
785
|
-
<Paper sx={{ p: 3, textAlign: 'center' }}>
|
|
786
|
-
<AnimatedIcon variant="heartbeat" size="lg" glow glowColor="#FF6B6B">
|
|
787
|
-
<Bolt />
|
|
788
|
-
</AnimatedIcon>
|
|
789
|
-
<Typography variant="subtitle2" sx={{ mt: 2 }}>
|
|
790
|
-
Success State
|
|
791
|
-
</Typography>
|
|
792
|
-
</Paper>
|
|
793
|
-
</Grid>
|
|
794
|
-
</Grid>
|
|
795
|
-
</Stack>
|
|
796
|
-
),
|
|
797
|
-
};
|
|
798
|
-
|
|
799
|
-
// Required InteractiveStates story
|
|
800
|
-
export const InteractiveStates: Story = {
|
|
801
|
-
args: {},
|
|
802
|
-
render: () => {
|
|
803
|
-
const [isActive, setIsActive] = React.useState(false);
|
|
804
|
-
const [isHovered, setIsHovered] = React.useState(false);
|
|
805
|
-
const [isFocused, setIsFocused] = React.useState(false);
|
|
806
|
-
|
|
807
|
-
return (
|
|
808
|
-
<Stack spacing={4}>
|
|
809
|
-
<Typography variant="h5">Interactive States</Typography>
|
|
810
|
-
<Grid container spacing={3}>
|
|
811
|
-
<Grid item xs={12} sm={6} md={4}>
|
|
812
|
-
<Paper sx={{ p: 3, textAlign: 'center' }}>
|
|
813
|
-
<AnimatedIcon
|
|
814
|
-
variant={isHovered ? 'pulse' : 'none'}
|
|
815
|
-
size="lg"
|
|
816
|
-
onMouseEnter={() => setIsHovered(true)}
|
|
817
|
-
onMouseLeave={() => setIsHovered(false)}
|
|
818
|
-
style={{ cursor: 'pointer' }}
|
|
819
|
-
>
|
|
820
|
-
<Home />
|
|
821
|
-
</AnimatedIcon>
|
|
822
|
-
<Typography variant="subtitle2" sx={{ mt: 2 }}>
|
|
823
|
-
Hover to Activate
|
|
824
|
-
</Typography>
|
|
825
|
-
<Typography variant="caption" color="text.secondary">
|
|
826
|
-
State: {isHovered ? 'Hovered' : 'Normal'}
|
|
827
|
-
</Typography>
|
|
828
|
-
</Paper>
|
|
829
|
-
</Grid>
|
|
830
|
-
<Grid item xs={12} sm={6} md={4}>
|
|
831
|
-
<Paper sx={{ p: 3, textAlign: 'center' }}>
|
|
832
|
-
<AnimatedIcon
|
|
833
|
-
variant={isActive ? 'spin' : 'none'}
|
|
834
|
-
size="lg"
|
|
835
|
-
glow={isActive}
|
|
836
|
-
glowColor="#FFD700"
|
|
837
|
-
onClick={() => setIsActive(!isActive)}
|
|
838
|
-
style={{ cursor: 'pointer' }}
|
|
839
|
-
>
|
|
840
|
-
<Settings />
|
|
841
|
-
</AnimatedIcon>
|
|
842
|
-
<Typography variant="subtitle2" sx={{ mt: 2 }}>
|
|
843
|
-
Click to Toggle
|
|
844
|
-
</Typography>
|
|
845
|
-
<Typography variant="caption" color="text.secondary">
|
|
846
|
-
State: {isActive ? 'Active' : 'Inactive'}
|
|
847
|
-
</Typography>
|
|
848
|
-
</Paper>
|
|
849
|
-
</Grid>
|
|
850
|
-
<Grid item xs={12} sm={6} md={4}>
|
|
851
|
-
<Paper sx={{ p: 3, textAlign: 'center' }}>
|
|
852
|
-
<AnimatedIcon
|
|
853
|
-
variant={isFocused ? 'heartbeat' : 'none'}
|
|
854
|
-
size="lg"
|
|
855
|
-
glass={isFocused}
|
|
856
|
-
tabIndex={0}
|
|
857
|
-
onFocus={() => setIsFocused(true)}
|
|
858
|
-
onBlur={() => setIsFocused(false)}
|
|
859
|
-
style={{ cursor: 'pointer', outline: isFocused ? '2px solid #1976d2' : 'none' }}
|
|
860
|
-
>
|
|
861
|
-
<Search />
|
|
862
|
-
</AnimatedIcon>
|
|
863
|
-
<Typography variant="subtitle2" sx={{ mt: 2 }}>
|
|
864
|
-
Focus with Tab
|
|
865
|
-
</Typography>
|
|
866
|
-
<Typography variant="caption" color="text.secondary">
|
|
867
|
-
State: {isFocused ? 'Focused' : 'Unfocused'}
|
|
868
|
-
</Typography>
|
|
869
|
-
</Paper>
|
|
870
|
-
</Grid>
|
|
871
|
-
</Grid>
|
|
872
|
-
</Stack>
|
|
873
|
-
);
|
|
874
|
-
},
|
|
875
|
-
};
|
|
876
|
-
|
|
877
|
-
// Required Responsive story
|
|
878
|
-
export const Responsive: Story = {
|
|
879
|
-
args: {},
|
|
880
|
-
render: () => (
|
|
881
|
-
<Stack spacing={4}>
|
|
882
|
-
<Typography variant="h5">Responsive Design</Typography>
|
|
883
|
-
<Typography variant="body2" color="text.secondary">
|
|
884
|
-
Icons adapt to different screen sizes and breakpoints
|
|
885
|
-
</Typography>
|
|
886
|
-
<Box
|
|
887
|
-
sx={{
|
|
888
|
-
display: 'grid',
|
|
889
|
-
gridTemplateColumns: {
|
|
890
|
-
xs: '1fr',
|
|
891
|
-
sm: '1fr 1fr',
|
|
892
|
-
md: '1fr 1fr 1fr',
|
|
893
|
-
lg: '1fr 1fr 1fr 1fr',
|
|
894
|
-
},
|
|
895
|
-
gap: 3,
|
|
896
|
-
}}
|
|
897
|
-
>
|
|
898
|
-
<Paper sx={{ p: 3, textAlign: 'center' }}>
|
|
899
|
-
<AnimatedIcon variant="pulse" size="lg" glow glowColor="#2196F3">
|
|
900
|
-
<Star />
|
|
901
|
-
</AnimatedIcon>
|
|
902
|
-
<Typography variant="subtitle2" sx={{ mt: 2 }}>
|
|
903
|
-
Mobile First
|
|
904
|
-
</Typography>
|
|
905
|
-
<Typography variant="caption" color="text.secondary">
|
|
906
|
-
Responsive sizing
|
|
907
|
-
</Typography>
|
|
908
|
-
</Paper>
|
|
909
|
-
<Paper sx={{ p: 3, textAlign: 'center' }}>
|
|
910
|
-
<AnimatedIcon variant="rotate" size="lg">
|
|
911
|
-
<Settings />
|
|
912
|
-
</AnimatedIcon>
|
|
913
|
-
<Typography variant="subtitle2" sx={{ mt: 2 }}>
|
|
914
|
-
Fixed Large
|
|
915
|
-
</Typography>
|
|
916
|
-
<Typography variant="caption" color="text.secondary">
|
|
917
|
-
Always lg
|
|
918
|
-
</Typography>
|
|
919
|
-
</Paper>
|
|
920
|
-
<Paper sx={{ p: 3, textAlign: 'center' }}>
|
|
921
|
-
<AnimatedIcon variant="bounce" size="md" glass>
|
|
922
|
-
<Favorite />
|
|
923
|
-
</AnimatedIcon>
|
|
924
|
-
<Typography variant="subtitle2" sx={{ mt: 2 }}>
|
|
925
|
-
Medium Glass
|
|
926
|
-
</Typography>
|
|
927
|
-
<Typography variant="caption" color="text.secondary">
|
|
928
|
-
With glass effect
|
|
929
|
-
</Typography>
|
|
930
|
-
</Paper>
|
|
931
|
-
<Paper sx={{ p: 3, textAlign: 'center' }}>
|
|
932
|
-
<AnimatedIcon variant="float" size="xl" gradient>
|
|
933
|
-
<Rocket />
|
|
934
|
-
</AnimatedIcon>
|
|
935
|
-
<Typography variant="subtitle2" sx={{ mt: 2 }}>
|
|
936
|
-
Extra Large
|
|
937
|
-
</Typography>
|
|
938
|
-
<Typography variant="caption" color="text.secondary">
|
|
939
|
-
XL with gradient
|
|
940
|
-
</Typography>
|
|
941
|
-
</Paper>
|
|
942
|
-
</Box>
|
|
943
|
-
</Stack>
|
|
944
|
-
),
|
|
945
|
-
};
|