@12-apps/ui 1.5.0 → 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 +16 -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 -89
- 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 -763
- 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 -511
- package/src/components/data-display/Carousel/Carousel.stories.tsx +0 -607
- package/src/components/data-display/Carousel/Carousel.test.stories.tsx +0 -701
- 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 -1105
- 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 -964
- 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 -973
- 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 -915
- 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 -915
- 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 -754
- 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 -474
- 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 -759
- 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,689 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
Box,
|
|
3
|
-
Card,
|
|
4
|
-
CardContent,
|
|
5
|
-
CardHeader,
|
|
6
|
-
Grid,
|
|
7
|
-
List,
|
|
8
|
-
ListItem,
|
|
9
|
-
ListItemAvatar,
|
|
10
|
-
ListItemText,
|
|
11
|
-
Stack,
|
|
12
|
-
Typography,
|
|
13
|
-
} from '@mui/material';
|
|
14
|
-
import type { Meta, StoryObj } from '@storybook/react-vite';
|
|
15
|
-
|
|
16
|
-
import { Skeleton } from './Skeleton';
|
|
17
|
-
|
|
18
|
-
const meta: Meta<typeof Skeleton> = {
|
|
19
|
-
title: 'Layout/Skeleton',
|
|
20
|
-
component: Skeleton,
|
|
21
|
-
parameters: {
|
|
22
|
-
layout: 'padded',
|
|
23
|
-
docs: {
|
|
24
|
-
description: {
|
|
25
|
-
component:
|
|
26
|
-
'Beautiful loading placeholder component with glassmorphism effects and customizable animations. Supports multiple variants, intensities, and advanced visual effects.',
|
|
27
|
-
},
|
|
28
|
-
},
|
|
29
|
-
},
|
|
30
|
-
tags: ['autodocs', 'component:Skeleton'],
|
|
31
|
-
argTypes: {
|
|
32
|
-
variant: {
|
|
33
|
-
control: { type: 'select' },
|
|
34
|
-
options: ['text', 'circular', 'rectangular', 'wave'],
|
|
35
|
-
description: 'The shape of the skeleton',
|
|
36
|
-
},
|
|
37
|
-
animation: {
|
|
38
|
-
control: { type: 'select' },
|
|
39
|
-
options: ['pulse', 'wave', false],
|
|
40
|
-
description: 'The animation type',
|
|
41
|
-
},
|
|
42
|
-
intensity: {
|
|
43
|
-
control: { type: 'select' },
|
|
44
|
-
options: ['low', 'medium', 'high'],
|
|
45
|
-
description: 'Animation intensity level',
|
|
46
|
-
},
|
|
47
|
-
width: {
|
|
48
|
-
control: { type: 'text' },
|
|
49
|
-
description: 'Width of the skeleton (number, string, or percentage)',
|
|
50
|
-
},
|
|
51
|
-
height: {
|
|
52
|
-
control: { type: 'number' },
|
|
53
|
-
description: 'Height of the skeleton in pixels',
|
|
54
|
-
},
|
|
55
|
-
count: {
|
|
56
|
-
control: { type: 'number' },
|
|
57
|
-
description: 'Number of skeleton elements to render',
|
|
58
|
-
},
|
|
59
|
-
spacing: {
|
|
60
|
-
control: { type: 'number' },
|
|
61
|
-
description: 'Spacing between multiple skeletons',
|
|
62
|
-
},
|
|
63
|
-
glassmorphism: {
|
|
64
|
-
control: { type: 'boolean' },
|
|
65
|
-
description: 'Enable glassmorphism visual effects',
|
|
66
|
-
},
|
|
67
|
-
shimmer: {
|
|
68
|
-
control: { type: 'boolean' },
|
|
69
|
-
description: 'Enable shimmer animation overlay',
|
|
70
|
-
},
|
|
71
|
-
borderRadius: {
|
|
72
|
-
control: { type: 'number' },
|
|
73
|
-
description: 'Custom border radius in pixels',
|
|
74
|
-
},
|
|
75
|
-
},
|
|
76
|
-
};
|
|
77
|
-
|
|
78
|
-
export default meta;
|
|
79
|
-
type Story = StoryObj<typeof meta>;
|
|
80
|
-
|
|
81
|
-
export const Default: Story = {
|
|
82
|
-
args: {
|
|
83
|
-
variant: 'text',
|
|
84
|
-
animation: 'pulse',
|
|
85
|
-
width: '100%',
|
|
86
|
-
count: 1,
|
|
87
|
-
intensity: 'medium',
|
|
88
|
-
},
|
|
89
|
-
parameters: {
|
|
90
|
-
docs: {
|
|
91
|
-
description: {
|
|
92
|
-
story: 'Basic text skeleton with default pulse animation.',
|
|
93
|
-
},
|
|
94
|
-
},
|
|
95
|
-
},
|
|
96
|
-
};
|
|
97
|
-
|
|
98
|
-
export const AllVariants: Story = {
|
|
99
|
-
render: () => (
|
|
100
|
-
<Stack spacing={4}>
|
|
101
|
-
<Box>
|
|
102
|
-
<Typography variant="h6" gutterBottom>
|
|
103
|
-
Text Skeleton
|
|
104
|
-
</Typography>
|
|
105
|
-
<Skeleton variant="text" />
|
|
106
|
-
<Skeleton variant="text" width="60%" />
|
|
107
|
-
<Skeleton variant="text" width="40%" />
|
|
108
|
-
</Box>
|
|
109
|
-
|
|
110
|
-
<Box>
|
|
111
|
-
<Typography variant="h6" gutterBottom>
|
|
112
|
-
Circular Skeleton
|
|
113
|
-
</Typography>
|
|
114
|
-
<Stack direction="row" spacing={2}>
|
|
115
|
-
<Skeleton variant="circular" width={40} height={40} />
|
|
116
|
-
<Skeleton variant="circular" width={60} height={60} />
|
|
117
|
-
<Skeleton variant="circular" width={80} height={80} />
|
|
118
|
-
</Stack>
|
|
119
|
-
</Box>
|
|
120
|
-
|
|
121
|
-
<Box>
|
|
122
|
-
<Typography variant="h6" gutterBottom>
|
|
123
|
-
Rectangular Skeleton
|
|
124
|
-
</Typography>
|
|
125
|
-
<Stack spacing={2}>
|
|
126
|
-
<Skeleton variant="rectangular" height={60} />
|
|
127
|
-
<Skeleton variant="rectangular" width="75%" height={40} />
|
|
128
|
-
<Skeleton variant="rectangular" width="50%" height={80} />
|
|
129
|
-
</Stack>
|
|
130
|
-
</Box>
|
|
131
|
-
|
|
132
|
-
<Box>
|
|
133
|
-
<Typography variant="h6" gutterBottom>
|
|
134
|
-
Wave Animation
|
|
135
|
-
</Typography>
|
|
136
|
-
<Skeleton variant="wave" height={60} />
|
|
137
|
-
<Skeleton variant="wave" width="80%" height={40} />
|
|
138
|
-
</Box>
|
|
139
|
-
</Stack>
|
|
140
|
-
),
|
|
141
|
-
};
|
|
142
|
-
|
|
143
|
-
export const AnimationTypes: Story = {
|
|
144
|
-
render: () => (
|
|
145
|
-
<Grid container spacing={3}>
|
|
146
|
-
<Grid item xs={4}>
|
|
147
|
-
<Typography variant="h6" gutterBottom>
|
|
148
|
-
Pulse Animation
|
|
149
|
-
</Typography>
|
|
150
|
-
<Skeleton animation="pulse" height={60} />
|
|
151
|
-
<Skeleton animation="pulse" width="80%" />
|
|
152
|
-
<Skeleton animation="pulse" width="60%" />
|
|
153
|
-
</Grid>
|
|
154
|
-
|
|
155
|
-
<Grid item xs={4}>
|
|
156
|
-
<Typography variant="h6" gutterBottom>
|
|
157
|
-
Wave Animation
|
|
158
|
-
</Typography>
|
|
159
|
-
<Skeleton animation="wave" height={60} />
|
|
160
|
-
<Skeleton animation="wave" width="80%" />
|
|
161
|
-
<Skeleton animation="wave" width="60%" />
|
|
162
|
-
</Grid>
|
|
163
|
-
|
|
164
|
-
<Grid item xs={4}>
|
|
165
|
-
<Typography variant="h6" gutterBottom>
|
|
166
|
-
No Animation
|
|
167
|
-
</Typography>
|
|
168
|
-
<Skeleton animation={false} height={60} />
|
|
169
|
-
<Skeleton animation={false} width="80%" />
|
|
170
|
-
<Skeleton animation={false} width="60%" />
|
|
171
|
-
</Grid>
|
|
172
|
-
</Grid>
|
|
173
|
-
),
|
|
174
|
-
};
|
|
175
|
-
|
|
176
|
-
export const MultipleSkeleton: Story = {
|
|
177
|
-
render: () => (
|
|
178
|
-
<Stack spacing={4}>
|
|
179
|
-
<Box>
|
|
180
|
-
<Typography variant="h6" gutterBottom>
|
|
181
|
-
Multiple Text Lines
|
|
182
|
-
</Typography>
|
|
183
|
-
<Skeleton variant="text" count={5} />
|
|
184
|
-
</Box>
|
|
185
|
-
|
|
186
|
-
<Box>
|
|
187
|
-
<Typography variant="h6" gutterBottom>
|
|
188
|
-
Multiple Rectangles
|
|
189
|
-
</Typography>
|
|
190
|
-
<Skeleton variant="rectangular" height={40} count={3} spacing={2} />
|
|
191
|
-
</Box>
|
|
192
|
-
|
|
193
|
-
<Box>
|
|
194
|
-
<Typography variant="h6" gutterBottom>
|
|
195
|
-
Custom Spacing
|
|
196
|
-
</Typography>
|
|
197
|
-
<Skeleton variant="text" count={4} spacing={3} />
|
|
198
|
-
</Box>
|
|
199
|
-
</Stack>
|
|
200
|
-
),
|
|
201
|
-
};
|
|
202
|
-
|
|
203
|
-
export const ProfileCardSkeleton: Story = {
|
|
204
|
-
render: () => (
|
|
205
|
-
<Card sx={{ maxWidth: 400 }}>
|
|
206
|
-
<CardHeader
|
|
207
|
-
avatar={<Skeleton variant="circular" width={40} height={40} />}
|
|
208
|
-
title={<Skeleton variant="text" width="60%" />}
|
|
209
|
-
subheader={<Skeleton variant="text" width="40%" />}
|
|
210
|
-
/>
|
|
211
|
-
<CardContent>
|
|
212
|
-
<Skeleton variant="rectangular" height={200} sx={{ mb: 2 }} />
|
|
213
|
-
<Skeleton variant="text" />
|
|
214
|
-
<Skeleton variant="text" width="80%" />
|
|
215
|
-
<Skeleton variant="text" width="60%" />
|
|
216
|
-
</CardContent>
|
|
217
|
-
</Card>
|
|
218
|
-
),
|
|
219
|
-
};
|
|
220
|
-
|
|
221
|
-
export const ListSkeleton: Story = {
|
|
222
|
-
render: () => (
|
|
223
|
-
<List sx={{ width: '100%', maxWidth: 360 }}>
|
|
224
|
-
{Array.from({ length: 5 }).map((_, index) => (
|
|
225
|
-
<ListItem key={index}>
|
|
226
|
-
<ListItemAvatar>
|
|
227
|
-
<Skeleton variant="circular" width={40} height={40} />
|
|
228
|
-
</ListItemAvatar>
|
|
229
|
-
<ListItemText
|
|
230
|
-
primary={<Skeleton variant="text" width="70%" />}
|
|
231
|
-
secondary={<Skeleton variant="text" width="40%" />}
|
|
232
|
-
/>
|
|
233
|
-
</ListItem>
|
|
234
|
-
))}
|
|
235
|
-
</List>
|
|
236
|
-
),
|
|
237
|
-
};
|
|
238
|
-
|
|
239
|
-
export const DashboardSkeleton: Story = {
|
|
240
|
-
render: () => (
|
|
241
|
-
<Box sx={{ width: '100%' }}>
|
|
242
|
-
{/* Header */}
|
|
243
|
-
<Box sx={{ mb: 4 }}>
|
|
244
|
-
<Skeleton variant="text" width="30%" height={40} />
|
|
245
|
-
<Skeleton variant="text" width="60%" />
|
|
246
|
-
</Box>
|
|
247
|
-
|
|
248
|
-
{/* Stats Cards */}
|
|
249
|
-
<Grid container spacing={3} sx={{ mb: 4 }}>
|
|
250
|
-
{Array.from({ length: 4 }).map((_, index) => (
|
|
251
|
-
<Grid item xs={12} sm={6} md={3} key={index}>
|
|
252
|
-
<Card>
|
|
253
|
-
<CardContent>
|
|
254
|
-
<Stack spacing={2}>
|
|
255
|
-
<Skeleton variant="text" width="60%" />
|
|
256
|
-
<Skeleton variant="text" width="40%" height={32} />
|
|
257
|
-
<Skeleton variant="rectangular" height={20} />
|
|
258
|
-
</Stack>
|
|
259
|
-
</CardContent>
|
|
260
|
-
</Card>
|
|
261
|
-
</Grid>
|
|
262
|
-
))}
|
|
263
|
-
</Grid>
|
|
264
|
-
|
|
265
|
-
{/* Charts */}
|
|
266
|
-
<Grid container spacing={3}>
|
|
267
|
-
<Grid item xs={12} md={8}>
|
|
268
|
-
<Card>
|
|
269
|
-
<CardHeader
|
|
270
|
-
title={<Skeleton variant="text" width="40%" />}
|
|
271
|
-
action={<Skeleton variant="circular" width={32} height={32} />}
|
|
272
|
-
/>
|
|
273
|
-
<CardContent>
|
|
274
|
-
<Skeleton variant="rectangular" height={300} />
|
|
275
|
-
</CardContent>
|
|
276
|
-
</Card>
|
|
277
|
-
</Grid>
|
|
278
|
-
<Grid item xs={12} md={4}>
|
|
279
|
-
<Card>
|
|
280
|
-
<CardHeader title={<Skeleton variant="text" width="60%" />} />
|
|
281
|
-
<CardContent>
|
|
282
|
-
<Stack spacing={2}>
|
|
283
|
-
{Array.from({ length: 6 }).map((_, index) => (
|
|
284
|
-
<Box key={index} sx={{ display: 'flex', alignItems: 'center', gap: 2 }}>
|
|
285
|
-
<Skeleton variant="circular" width={24} height={24} />
|
|
286
|
-
<Box sx={{ flex: 1 }}>
|
|
287
|
-
<Skeleton variant="text" width="80%" />
|
|
288
|
-
<Skeleton variant="text" width="40%" />
|
|
289
|
-
</Box>
|
|
290
|
-
</Box>
|
|
291
|
-
))}
|
|
292
|
-
</Stack>
|
|
293
|
-
</CardContent>
|
|
294
|
-
</Card>
|
|
295
|
-
</Grid>
|
|
296
|
-
</Grid>
|
|
297
|
-
</Box>
|
|
298
|
-
),
|
|
299
|
-
};
|
|
300
|
-
|
|
301
|
-
export const TableSkeleton: Story = {
|
|
302
|
-
render: () => (
|
|
303
|
-
<Box>
|
|
304
|
-
{/* Table Header */}
|
|
305
|
-
<Box
|
|
306
|
-
sx={{
|
|
307
|
-
display: 'grid',
|
|
308
|
-
gridTemplateColumns: '1fr 1fr 1fr 1fr',
|
|
309
|
-
gap: 2,
|
|
310
|
-
p: 2,
|
|
311
|
-
borderBottom: 1,
|
|
312
|
-
borderColor: 'divider',
|
|
313
|
-
}}
|
|
314
|
-
>
|
|
315
|
-
<Skeleton variant="text" width="80%" />
|
|
316
|
-
<Skeleton variant="text" width="60%" />
|
|
317
|
-
<Skeleton variant="text" width="70%" />
|
|
318
|
-
<Skeleton variant="text" width="50%" />
|
|
319
|
-
</Box>
|
|
320
|
-
|
|
321
|
-
{/* Table Rows */}
|
|
322
|
-
{Array.from({ length: 8 }).map((_, index) => (
|
|
323
|
-
<Box
|
|
324
|
-
key={index}
|
|
325
|
-
sx={{
|
|
326
|
-
display: 'grid',
|
|
327
|
-
gridTemplateColumns: '1fr 1fr 1fr 1fr',
|
|
328
|
-
gap: 2,
|
|
329
|
-
p: 2,
|
|
330
|
-
borderBottom: 1,
|
|
331
|
-
borderColor: 'divider',
|
|
332
|
-
}}
|
|
333
|
-
>
|
|
334
|
-
<Skeleton variant="text" />
|
|
335
|
-
<Skeleton variant="text" width="70%" />
|
|
336
|
-
<Skeleton variant="rectangular" width={80} height={20} />
|
|
337
|
-
<Skeleton variant="circular" width={24} height={24} />
|
|
338
|
-
</Box>
|
|
339
|
-
))}
|
|
340
|
-
</Box>
|
|
341
|
-
),
|
|
342
|
-
};
|
|
343
|
-
|
|
344
|
-
export const IntensityLevels: Story = {
|
|
345
|
-
render: () => (
|
|
346
|
-
<Stack spacing={4}>
|
|
347
|
-
<Box>
|
|
348
|
-
<Typography variant="h6" gutterBottom>
|
|
349
|
-
Low Intensity
|
|
350
|
-
</Typography>
|
|
351
|
-
<Skeleton variant="rectangular" height={60} intensity="low" />
|
|
352
|
-
<Skeleton variant="text" intensity="low" />
|
|
353
|
-
<Skeleton variant="text" width="80%" intensity="low" />
|
|
354
|
-
</Box>
|
|
355
|
-
|
|
356
|
-
<Box>
|
|
357
|
-
<Typography variant="h6" gutterBottom>
|
|
358
|
-
Medium Intensity (Default)
|
|
359
|
-
</Typography>
|
|
360
|
-
<Skeleton variant="rectangular" height={60} intensity="medium" />
|
|
361
|
-
<Skeleton variant="text" intensity="medium" />
|
|
362
|
-
<Skeleton variant="text" width="80%" intensity="medium" />
|
|
363
|
-
</Box>
|
|
364
|
-
|
|
365
|
-
<Box>
|
|
366
|
-
<Typography variant="h6" gutterBottom>
|
|
367
|
-
High Intensity
|
|
368
|
-
</Typography>
|
|
369
|
-
<Skeleton variant="rectangular" height={60} intensity="high" />
|
|
370
|
-
<Skeleton variant="text" intensity="high" />
|
|
371
|
-
<Skeleton variant="text" width="80%" intensity="high" />
|
|
372
|
-
</Box>
|
|
373
|
-
</Stack>
|
|
374
|
-
),
|
|
375
|
-
parameters: {
|
|
376
|
-
docs: {
|
|
377
|
-
description: {
|
|
378
|
-
story:
|
|
379
|
-
'Different intensity levels control the opacity and prominence of skeleton elements.',
|
|
380
|
-
},
|
|
381
|
-
},
|
|
382
|
-
},
|
|
383
|
-
};
|
|
384
|
-
|
|
385
|
-
export const GlassmorphismEffect: Story = {
|
|
386
|
-
render: () => (
|
|
387
|
-
<Box
|
|
388
|
-
sx={{
|
|
389
|
-
background: 'linear-gradient(135deg, #667eea 0%, #764ba2 100%)',
|
|
390
|
-
p: 4,
|
|
391
|
-
borderRadius: 2,
|
|
392
|
-
minHeight: 300,
|
|
393
|
-
}}
|
|
394
|
-
>
|
|
395
|
-
<Typography variant="h6" gutterBottom sx={{ color: 'white', mb: 3 }}>
|
|
396
|
-
Glassmorphism Skeleton Effects
|
|
397
|
-
</Typography>
|
|
398
|
-
|
|
399
|
-
<Stack spacing={3}>
|
|
400
|
-
<Box>
|
|
401
|
-
<Typography variant="subtitle1" sx={{ color: 'white', mb: 1 }}>
|
|
402
|
-
Regular Skeleton
|
|
403
|
-
</Typography>
|
|
404
|
-
<Skeleton variant="rectangular" height={60} />
|
|
405
|
-
</Box>
|
|
406
|
-
|
|
407
|
-
<Box>
|
|
408
|
-
<Typography variant="subtitle1" sx={{ color: 'white', mb: 1 }}>
|
|
409
|
-
Glassmorphism Skeleton
|
|
410
|
-
</Typography>
|
|
411
|
-
<Skeleton variant="rectangular" height={60} glassmorphism />
|
|
412
|
-
</Box>
|
|
413
|
-
|
|
414
|
-
<Box>
|
|
415
|
-
<Typography variant="subtitle1" sx={{ color: 'white', mb: 1 }}>
|
|
416
|
-
Glassmorphism with Custom Radius
|
|
417
|
-
</Typography>
|
|
418
|
-
<Skeleton variant="rectangular" height={60} glassmorphism borderRadius={20} />
|
|
419
|
-
</Box>
|
|
420
|
-
|
|
421
|
-
<Box sx={{ display: 'flex', gap: 2, alignItems: 'center' }}>
|
|
422
|
-
<Skeleton variant="circular" width={50} height={50} glassmorphism />
|
|
423
|
-
<Box sx={{ flex: 1 }}>
|
|
424
|
-
<Skeleton variant="text" glassmorphism />
|
|
425
|
-
<Skeleton variant="text" width="80%" glassmorphism />
|
|
426
|
-
</Box>
|
|
427
|
-
</Box>
|
|
428
|
-
</Stack>
|
|
429
|
-
</Box>
|
|
430
|
-
),
|
|
431
|
-
parameters: {
|
|
432
|
-
docs: {
|
|
433
|
-
description: {
|
|
434
|
-
story:
|
|
435
|
-
'Glassmorphism effect adds beautiful glass-like transparency with blur effects, perfect for modern UI designs.',
|
|
436
|
-
},
|
|
437
|
-
},
|
|
438
|
-
},
|
|
439
|
-
};
|
|
440
|
-
|
|
441
|
-
export const ShimmerAnimation: Story = {
|
|
442
|
-
render: () => (
|
|
443
|
-
<Stack spacing={4}>
|
|
444
|
-
<Box>
|
|
445
|
-
<Typography variant="h6" gutterBottom>
|
|
446
|
-
Standard Animation
|
|
447
|
-
</Typography>
|
|
448
|
-
<Skeleton variant="rectangular" height={80} borderRadius={8} />
|
|
449
|
-
<Skeleton variant="text" />
|
|
450
|
-
<Skeleton variant="text" width="60%" />
|
|
451
|
-
</Box>
|
|
452
|
-
|
|
453
|
-
<Box>
|
|
454
|
-
<Typography variant="h6" gutterBottom>
|
|
455
|
-
Shimmer Animation
|
|
456
|
-
</Typography>
|
|
457
|
-
<Skeleton variant="rectangular" height={80} shimmer borderRadius={8} />
|
|
458
|
-
<Skeleton variant="text" shimmer />
|
|
459
|
-
<Skeleton variant="text" width="60%" shimmer />
|
|
460
|
-
</Box>
|
|
461
|
-
|
|
462
|
-
<Box>
|
|
463
|
-
<Typography variant="h6" gutterBottom>
|
|
464
|
-
Glassmorphism + Shimmer
|
|
465
|
-
</Typography>
|
|
466
|
-
<Box
|
|
467
|
-
sx={{
|
|
468
|
-
background: 'linear-gradient(45deg, #f093fb 0%, #f5576c 100%)',
|
|
469
|
-
p: 3,
|
|
470
|
-
borderRadius: 2,
|
|
471
|
-
}}
|
|
472
|
-
>
|
|
473
|
-
<Skeleton variant="rectangular" height={80} glassmorphism shimmer borderRadius={12} />
|
|
474
|
-
<Box sx={{ mt: 2 }}>
|
|
475
|
-
<Skeleton variant="text" glassmorphism shimmer />
|
|
476
|
-
<Skeleton variant="text" width="70%" glassmorphism shimmer />
|
|
477
|
-
</Box>
|
|
478
|
-
</Box>
|
|
479
|
-
</Box>
|
|
480
|
-
</Stack>
|
|
481
|
-
),
|
|
482
|
-
parameters: {
|
|
483
|
-
docs: {
|
|
484
|
-
description: {
|
|
485
|
-
story:
|
|
486
|
-
'Shimmer animation adds a moving highlight effect that creates a premium loading experience.',
|
|
487
|
-
},
|
|
488
|
-
},
|
|
489
|
-
},
|
|
490
|
-
};
|
|
491
|
-
|
|
492
|
-
export const AdvancedProfileCard: Story = {
|
|
493
|
-
render: () => (
|
|
494
|
-
<Grid container spacing={3}>
|
|
495
|
-
<Grid item xs={12} md={6}>
|
|
496
|
-
<Card>
|
|
497
|
-
<CardHeader title="Regular Skeleton" sx={{ pb: 1 }} />
|
|
498
|
-
<CardContent>
|
|
499
|
-
<Box sx={{ display: 'flex', alignItems: 'center', mb: 3 }}>
|
|
500
|
-
<Skeleton variant="circular" width={60} height={60} sx={{ mr: 2 }} />
|
|
501
|
-
<Box sx={{ flex: 1 }}>
|
|
502
|
-
<Skeleton variant="text" width="70%" />
|
|
503
|
-
<Skeleton variant="text" width="50%" />
|
|
504
|
-
</Box>
|
|
505
|
-
</Box>
|
|
506
|
-
<Skeleton variant="rectangular" height={150} sx={{ mb: 2 }} />
|
|
507
|
-
<Skeleton variant="text" count={3} />
|
|
508
|
-
</CardContent>
|
|
509
|
-
</Card>
|
|
510
|
-
</Grid>
|
|
511
|
-
|
|
512
|
-
<Grid item xs={12} md={6}>
|
|
513
|
-
<Card>
|
|
514
|
-
<CardHeader title="Enhanced Skeleton" sx={{ pb: 1 }} />
|
|
515
|
-
<CardContent>
|
|
516
|
-
<Box sx={{ display: 'flex', alignItems: 'center', mb: 3 }}>
|
|
517
|
-
<Skeleton
|
|
518
|
-
variant="circular"
|
|
519
|
-
width={60}
|
|
520
|
-
height={60}
|
|
521
|
-
sx={{ mr: 2 }}
|
|
522
|
-
shimmer
|
|
523
|
-
intensity="high"
|
|
524
|
-
/>
|
|
525
|
-
<Box sx={{ flex: 1 }}>
|
|
526
|
-
<Skeleton variant="text" width="70%" shimmer intensity="high" />
|
|
527
|
-
<Skeleton variant="text" width="50%" shimmer intensity="medium" />
|
|
528
|
-
</Box>
|
|
529
|
-
</Box>
|
|
530
|
-
<Skeleton
|
|
531
|
-
variant="rectangular"
|
|
532
|
-
height={150}
|
|
533
|
-
sx={{ mb: 2 }}
|
|
534
|
-
shimmer
|
|
535
|
-
borderRadius={12}
|
|
536
|
-
intensity="high"
|
|
537
|
-
/>
|
|
538
|
-
<Skeleton variant="text" count={3} shimmer />
|
|
539
|
-
</CardContent>
|
|
540
|
-
</Card>
|
|
541
|
-
</Grid>
|
|
542
|
-
</Grid>
|
|
543
|
-
),
|
|
544
|
-
parameters: {
|
|
545
|
-
docs: {
|
|
546
|
-
description: {
|
|
547
|
-
story:
|
|
548
|
-
'Comparison between regular and enhanced skeleton with shimmer effects and custom intensity.',
|
|
549
|
-
},
|
|
550
|
-
},
|
|
551
|
-
},
|
|
552
|
-
};
|
|
553
|
-
|
|
554
|
-
export const CustomShapes: Story = {
|
|
555
|
-
render: () => (
|
|
556
|
-
<Stack spacing={4}>
|
|
557
|
-
<Box>
|
|
558
|
-
<Typography variant="h6" gutterBottom>
|
|
559
|
-
Custom Border Radius
|
|
560
|
-
</Typography>
|
|
561
|
-
<Grid container spacing={2}>
|
|
562
|
-
<Grid item xs={6} sm={3}>
|
|
563
|
-
<Skeleton variant="rectangular" height={80} borderRadius={0} />
|
|
564
|
-
<Typography variant="caption" display="block" textAlign="center" mt={1}>
|
|
565
|
-
Square (0px)
|
|
566
|
-
</Typography>
|
|
567
|
-
</Grid>
|
|
568
|
-
<Grid item xs={6} sm={3}>
|
|
569
|
-
<Skeleton variant="rectangular" height={80} borderRadius={8} />
|
|
570
|
-
<Typography variant="caption" display="block" textAlign="center" mt={1}>
|
|
571
|
-
Rounded (8px)
|
|
572
|
-
</Typography>
|
|
573
|
-
</Grid>
|
|
574
|
-
<Grid item xs={6} sm={3}>
|
|
575
|
-
<Skeleton variant="rectangular" height={80} borderRadius={20} />
|
|
576
|
-
<Typography variant="caption" display="block" textAlign="center" mt={1}>
|
|
577
|
-
Very Rounded (20px)
|
|
578
|
-
</Typography>
|
|
579
|
-
</Grid>
|
|
580
|
-
<Grid item xs={6} sm={3}>
|
|
581
|
-
<Skeleton variant="rectangular" height={80} borderRadius="50%" />
|
|
582
|
-
<Typography variant="caption" display="block" textAlign="center" mt={1}>
|
|
583
|
-
Pill Shape (50%)
|
|
584
|
-
</Typography>
|
|
585
|
-
</Grid>
|
|
586
|
-
</Grid>
|
|
587
|
-
</Box>
|
|
588
|
-
|
|
589
|
-
<Box>
|
|
590
|
-
<Typography variant="h6" gutterBottom>
|
|
591
|
-
Custom Dimensions
|
|
592
|
-
</Typography>
|
|
593
|
-
<Stack spacing={2}>
|
|
594
|
-
<Skeleton variant="rectangular" width="100%" height={20} />
|
|
595
|
-
<Skeleton variant="rectangular" width="80%" height={30} />
|
|
596
|
-
<Skeleton variant="rectangular" width="60%" height={40} />
|
|
597
|
-
<Skeleton variant="rectangular" width="40%" height={50} />
|
|
598
|
-
</Stack>
|
|
599
|
-
</Box>
|
|
600
|
-
|
|
601
|
-
<Box>
|
|
602
|
-
<Typography variant="h6" gutterBottom>
|
|
603
|
-
Mixed Circular Sizes
|
|
604
|
-
</Typography>
|
|
605
|
-
<Box sx={{ display: 'flex', alignItems: 'center', gap: 2, flexWrap: 'wrap' }}>
|
|
606
|
-
<Skeleton variant="circular" width={24} height={24} />
|
|
607
|
-
<Skeleton variant="circular" width={32} height={32} />
|
|
608
|
-
<Skeleton variant="circular" width={40} height={40} />
|
|
609
|
-
<Skeleton variant="circular" width={56} height={56} />
|
|
610
|
-
<Skeleton variant="circular" width={80} height={80} />
|
|
611
|
-
<Skeleton variant="circular" width={120} height={120} />
|
|
612
|
-
</Box>
|
|
613
|
-
</Box>
|
|
614
|
-
</Stack>
|
|
615
|
-
),
|
|
616
|
-
parameters: {
|
|
617
|
-
docs: {
|
|
618
|
-
description: {
|
|
619
|
-
story:
|
|
620
|
-
'Showcase different border radius options and custom dimensions for creating unique skeleton shapes.',
|
|
621
|
-
},
|
|
622
|
-
},
|
|
623
|
-
},
|
|
624
|
-
};
|
|
625
|
-
|
|
626
|
-
// Required story exports for validation
|
|
627
|
-
export const AllSizes = CustomShapes;
|
|
628
|
-
export const AllStates = IntensityLevels;
|
|
629
|
-
export const InteractiveStates = ShimmerAnimation;
|
|
630
|
-
export const Responsive: Story = {
|
|
631
|
-
render: () => (
|
|
632
|
-
<Box>
|
|
633
|
-
{/* Mobile View */}
|
|
634
|
-
<Box sx={{ display: { xs: 'block', md: 'none' } }}>
|
|
635
|
-
<Typography variant="h6" gutterBottom>
|
|
636
|
-
Mobile Layout
|
|
637
|
-
</Typography>
|
|
638
|
-
<Stack spacing={2}>
|
|
639
|
-
<Skeleton variant="rectangular" height={50} />
|
|
640
|
-
<Skeleton variant="text" />
|
|
641
|
-
<Skeleton variant="text" width="80%" />
|
|
642
|
-
<Box sx={{ display: 'flex', gap: 1 }}>
|
|
643
|
-
<Skeleton variant="circular" width={32} height={32} />
|
|
644
|
-
<Skeleton variant="text" sx={{ flex: 1 }} />
|
|
645
|
-
</Box>
|
|
646
|
-
</Stack>
|
|
647
|
-
</Box>
|
|
648
|
-
|
|
649
|
-
{/* Desktop View */}
|
|
650
|
-
<Box sx={{ display: { xs: 'none', md: 'block' } }}>
|
|
651
|
-
<Typography variant="h6" gutterBottom>
|
|
652
|
-
Desktop Layout
|
|
653
|
-
</Typography>
|
|
654
|
-
<Grid container spacing={3}>
|
|
655
|
-
<Grid item xs={8}>
|
|
656
|
-
<Skeleton variant="rectangular" height={200} />
|
|
657
|
-
<Box sx={{ mt: 2 }}>
|
|
658
|
-
<Skeleton variant="text" />
|
|
659
|
-
<Skeleton variant="text" width="90%" />
|
|
660
|
-
<Skeleton variant="text" width="70%" />
|
|
661
|
-
</Box>
|
|
662
|
-
</Grid>
|
|
663
|
-
<Grid item xs={4}>
|
|
664
|
-
<Stack spacing={2}>
|
|
665
|
-
{Array.from({ length: 5 }).map((_, i) => (
|
|
666
|
-
<Box key={i} sx={{ display: 'flex', gap: 2, alignItems: 'center' }}>
|
|
667
|
-
<Skeleton variant="circular" width={40} height={40} />
|
|
668
|
-
<Box sx={{ flex: 1 }}>
|
|
669
|
-
<Skeleton variant="text" width="80%" />
|
|
670
|
-
<Skeleton variant="text" width="60%" />
|
|
671
|
-
</Box>
|
|
672
|
-
</Box>
|
|
673
|
-
))}
|
|
674
|
-
</Stack>
|
|
675
|
-
</Grid>
|
|
676
|
-
</Grid>
|
|
677
|
-
</Box>
|
|
678
|
-
</Box>
|
|
679
|
-
),
|
|
680
|
-
parameters: {
|
|
681
|
-
viewport: {
|
|
682
|
-
viewports: {
|
|
683
|
-
mobile: { name: 'Mobile', styles: { width: '375px', height: '667px' } },
|
|
684
|
-
tablet: { name: 'Tablet', styles: { width: '768px', height: '1024px' } },
|
|
685
|
-
desktop: { name: 'Desktop', styles: { width: '1200px', height: '800px' } },
|
|
686
|
-
},
|
|
687
|
-
},
|
|
688
|
-
},
|
|
689
|
-
};
|