@12-apps/ui 1.5.0 → 1.5.2
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 -9
- 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,591 +0,0 @@
|
|
|
1
|
-
import Edit from '@mui/icons-material/Edit';
|
|
2
|
-
import Email from '@mui/icons-material/Email';
|
|
3
|
-
import Favorite from '@mui/icons-material/Favorite';
|
|
4
|
-
import LocationOn from '@mui/icons-material/LocationOn';
|
|
5
|
-
import MoreVert from '@mui/icons-material/MoreVert';
|
|
6
|
-
import Phone from '@mui/icons-material/Phone';
|
|
7
|
-
import Share from '@mui/icons-material/Share';
|
|
8
|
-
import ShoppingCart from '@mui/icons-material/ShoppingCart';
|
|
9
|
-
import Star from '@mui/icons-material/Star';
|
|
10
|
-
import { Avatar, Box, Button, Chip, Grid,IconButton, Stack, Typography } from '@mui/material';
|
|
11
|
-
import type { Meta, StoryObj } from '@storybook/react-vite';
|
|
12
|
-
|
|
13
|
-
import { Card, CardActions, CardContent, CardHeader, CardMedia } from './Card';
|
|
14
|
-
|
|
15
|
-
const meta: Meta<typeof Card> = {
|
|
16
|
-
title: 'Layout/Card',
|
|
17
|
-
component: Card,
|
|
18
|
-
parameters: {
|
|
19
|
-
layout: 'padded',
|
|
20
|
-
},
|
|
21
|
-
tags: ['autodocs', 'component:Card'],
|
|
22
|
-
argTypes: {
|
|
23
|
-
variant: {
|
|
24
|
-
control: { type: 'select' },
|
|
25
|
-
options: ['elevated', 'outlined', 'glass', 'gradient', 'neumorphic'],
|
|
26
|
-
},
|
|
27
|
-
borderRadius: {
|
|
28
|
-
control: { type: 'select' },
|
|
29
|
-
options: ['none', 'sm', 'md', 'lg', 'xl', 'full'],
|
|
30
|
-
},
|
|
31
|
-
interactive: {
|
|
32
|
-
control: { type: 'boolean' },
|
|
33
|
-
},
|
|
34
|
-
glow: {
|
|
35
|
-
control: { type: 'boolean' },
|
|
36
|
-
},
|
|
37
|
-
},
|
|
38
|
-
};
|
|
39
|
-
|
|
40
|
-
export default meta;
|
|
41
|
-
type Story = StoryObj<typeof meta>;
|
|
42
|
-
|
|
43
|
-
export const Default: Story = {
|
|
44
|
-
args: {
|
|
45
|
-
variant: 'elevated',
|
|
46
|
-
interactive: false,
|
|
47
|
-
glow: false,
|
|
48
|
-
borderRadius: 'md',
|
|
49
|
-
},
|
|
50
|
-
render: (args) => (
|
|
51
|
-
<Card {...args} sx={{ maxWidth: 345 }}>
|
|
52
|
-
<CardContent>
|
|
53
|
-
<Typography variant="h6" gutterBottom>
|
|
54
|
-
Default Card
|
|
55
|
-
</Typography>
|
|
56
|
-
<Typography variant="body2" color="text.secondary">
|
|
57
|
-
This is a basic card with default styling. It can contain any content and serves as a
|
|
58
|
-
container for related information.
|
|
59
|
-
</Typography>
|
|
60
|
-
</CardContent>
|
|
61
|
-
<CardActions>
|
|
62
|
-
<Button size="small">Learn More</Button>
|
|
63
|
-
</CardActions>
|
|
64
|
-
</Card>
|
|
65
|
-
),
|
|
66
|
-
};
|
|
67
|
-
|
|
68
|
-
export const AllVariants: Story = {
|
|
69
|
-
render: () => (
|
|
70
|
-
<Grid container spacing={3}>
|
|
71
|
-
<Grid item xs={12} sm={6} md={4}>
|
|
72
|
-
<Card variant="elevated" sx={{ height: '100%' }}>
|
|
73
|
-
<CardHeader title="Elevated Card" />
|
|
74
|
-
<CardContent>
|
|
75
|
-
<Typography variant="body2" color="text.secondary">
|
|
76
|
-
Classic elevated card with shadow depth for visual hierarchy.
|
|
77
|
-
</Typography>
|
|
78
|
-
</CardContent>
|
|
79
|
-
</Card>
|
|
80
|
-
</Grid>
|
|
81
|
-
|
|
82
|
-
<Grid item xs={12} sm={6} md={4}>
|
|
83
|
-
<Card variant="outlined" sx={{ height: '100%' }}>
|
|
84
|
-
<CardHeader title="Outlined Card" />
|
|
85
|
-
<CardContent>
|
|
86
|
-
<Typography variant="body2" color="text.secondary">
|
|
87
|
-
Clean outlined card with subtle borders for minimal design.
|
|
88
|
-
</Typography>
|
|
89
|
-
</CardContent>
|
|
90
|
-
</Card>
|
|
91
|
-
</Grid>
|
|
92
|
-
|
|
93
|
-
<Grid item xs={12} sm={6} md={4}>
|
|
94
|
-
<Card variant="glass" sx={{ height: '100%' }}>
|
|
95
|
-
<CardHeader title="Glass Card" />
|
|
96
|
-
<CardContent>
|
|
97
|
-
<Typography variant="body2" color="text.secondary">
|
|
98
|
-
Modern glass morphism effect with backdrop blur and transparency.
|
|
99
|
-
</Typography>
|
|
100
|
-
</CardContent>
|
|
101
|
-
</Card>
|
|
102
|
-
</Grid>
|
|
103
|
-
|
|
104
|
-
<Grid item xs={12} sm={6} md={4}>
|
|
105
|
-
<Card variant="gradient" sx={{ height: '100%' }}>
|
|
106
|
-
<CardHeader title="Gradient Card" />
|
|
107
|
-
<CardContent>
|
|
108
|
-
<Typography variant="body2">
|
|
109
|
-
Eye-catching gradient background with beautiful color transitions.
|
|
110
|
-
</Typography>
|
|
111
|
-
</CardContent>
|
|
112
|
-
</Card>
|
|
113
|
-
</Grid>
|
|
114
|
-
|
|
115
|
-
<Grid item xs={12} sm={6} md={4}>
|
|
116
|
-
<Card variant="neumorphic" sx={{ height: '100%' }}>
|
|
117
|
-
<CardHeader title="Neumorphic Card" />
|
|
118
|
-
<CardContent>
|
|
119
|
-
<Typography variant="body2" color="text.secondary">
|
|
120
|
-
Soft neumorphic design with subtle shadows and highlights.
|
|
121
|
-
</Typography>
|
|
122
|
-
</CardContent>
|
|
123
|
-
</Card>
|
|
124
|
-
</Grid>
|
|
125
|
-
</Grid>
|
|
126
|
-
),
|
|
127
|
-
};
|
|
128
|
-
|
|
129
|
-
export const InteractiveStates: Story = {
|
|
130
|
-
render: () => (
|
|
131
|
-
<Grid container spacing={3}>
|
|
132
|
-
<Grid item xs={12} sm={6} md={4}>
|
|
133
|
-
<Card variant="elevated" interactive>
|
|
134
|
-
<CardContent>
|
|
135
|
-
<Typography variant="h6" gutterBottom>
|
|
136
|
-
Interactive Card
|
|
137
|
-
</Typography>
|
|
138
|
-
<Typography variant="body2" color="text.secondary">
|
|
139
|
-
Hover over this card to see the interactive effects.
|
|
140
|
-
</Typography>
|
|
141
|
-
</CardContent>
|
|
142
|
-
</Card>
|
|
143
|
-
</Grid>
|
|
144
|
-
|
|
145
|
-
<Grid item xs={12} sm={6} md={4}>
|
|
146
|
-
<Card variant="glass" interactive glow>
|
|
147
|
-
<CardContent>
|
|
148
|
-
<Typography variant="h6" gutterBottom>
|
|
149
|
-
Glowing Glass Card
|
|
150
|
-
</Typography>
|
|
151
|
-
<Typography variant="body2" color="text.secondary">
|
|
152
|
-
This card combines glass effect with glow and interactivity.
|
|
153
|
-
</Typography>
|
|
154
|
-
</CardContent>
|
|
155
|
-
</Card>
|
|
156
|
-
</Grid>
|
|
157
|
-
|
|
158
|
-
<Grid item xs={12} sm={6} md={4}>
|
|
159
|
-
<Card variant="neumorphic" interactive>
|
|
160
|
-
<CardContent>
|
|
161
|
-
<Typography variant="h6" gutterBottom>
|
|
162
|
-
Interactive Neumorphic
|
|
163
|
-
</Typography>
|
|
164
|
-
<Typography variant="body2" color="text.secondary">
|
|
165
|
-
Neumorphic design that responds to hover interactions.
|
|
166
|
-
</Typography>
|
|
167
|
-
</CardContent>
|
|
168
|
-
</Card>
|
|
169
|
-
</Grid>
|
|
170
|
-
</Grid>
|
|
171
|
-
),
|
|
172
|
-
};
|
|
173
|
-
|
|
174
|
-
export const BorderRadiusVariations: Story = {
|
|
175
|
-
render: () => (
|
|
176
|
-
<Grid container spacing={2}>
|
|
177
|
-
{(['none', 'sm', 'md', 'lg', 'xl'] as const).map((radius) => (
|
|
178
|
-
<Grid item xs={6} sm={4} md={2.4} key={radius}>
|
|
179
|
-
<Card variant="outlined" borderRadius={radius}>
|
|
180
|
-
<CardContent>
|
|
181
|
-
<Typography variant="subtitle2" align="center">
|
|
182
|
-
{radius.toUpperCase()}
|
|
183
|
-
</Typography>
|
|
184
|
-
</CardContent>
|
|
185
|
-
</Card>
|
|
186
|
-
</Grid>
|
|
187
|
-
))}
|
|
188
|
-
</Grid>
|
|
189
|
-
),
|
|
190
|
-
};
|
|
191
|
-
|
|
192
|
-
export const ProductCard: Story = {
|
|
193
|
-
render: () => (
|
|
194
|
-
<Card variant="elevated" interactive sx={{ maxWidth: 345 }}>
|
|
195
|
-
<CardMedia
|
|
196
|
-
component="img"
|
|
197
|
-
height="200"
|
|
198
|
-
image="https://images.unsplash.com/photo-1505740420928-5e560c06d30e?w=400&h=200&fit=crop"
|
|
199
|
-
title="Product Image"
|
|
200
|
-
/>
|
|
201
|
-
<CardContent>
|
|
202
|
-
<Stack direction="row" justifyContent="space-between" alignItems="flex-start" mb={1}>
|
|
203
|
-
<Typography variant="h6" component="div">
|
|
204
|
-
Premium Headphones
|
|
205
|
-
</Typography>
|
|
206
|
-
<Chip label="New" color="primary" size="small" />
|
|
207
|
-
</Stack>
|
|
208
|
-
<Stack direction="row" alignItems="center" spacing={1} mb={1}>
|
|
209
|
-
<Star sx={{ color: 'orange', fontSize: 16 }} />
|
|
210
|
-
<Typography variant="body2" color="text.secondary">
|
|
211
|
-
4.8 (324 reviews)
|
|
212
|
-
</Typography>
|
|
213
|
-
</Stack>
|
|
214
|
-
<Typography variant="h5" color="primary" fontWeight="bold" mb={1}>
|
|
215
|
-
$199.99
|
|
216
|
-
</Typography>
|
|
217
|
-
<Typography variant="body2" color="text.secondary">
|
|
218
|
-
High-quality wireless headphones with noise cancellation and premium sound quality.
|
|
219
|
-
</Typography>
|
|
220
|
-
</CardContent>
|
|
221
|
-
<CardActions alignment="space-between">
|
|
222
|
-
<Stack direction="row" spacing={1}>
|
|
223
|
-
<IconButton size="small">
|
|
224
|
-
<Favorite />
|
|
225
|
-
</IconButton>
|
|
226
|
-
<IconButton size="small">
|
|
227
|
-
<Share />
|
|
228
|
-
</IconButton>
|
|
229
|
-
</Stack>
|
|
230
|
-
<Button variant="contained" startIcon={<ShoppingCart />} size="small">
|
|
231
|
-
Add to Cart
|
|
232
|
-
</Button>
|
|
233
|
-
</CardActions>
|
|
234
|
-
</Card>
|
|
235
|
-
),
|
|
236
|
-
};
|
|
237
|
-
|
|
238
|
-
export const ProfileCard: Story = {
|
|
239
|
-
render: () => (
|
|
240
|
-
<Card variant="glass" sx={{ maxWidth: 400 }}>
|
|
241
|
-
<CardHeader
|
|
242
|
-
avatar={<Avatar sx={{ bgcolor: 'primary.main', width: 64, height: 64 }}>JS</Avatar>}
|
|
243
|
-
action={
|
|
244
|
-
<IconButton>
|
|
245
|
-
<MoreVert />
|
|
246
|
-
</IconButton>
|
|
247
|
-
}
|
|
248
|
-
title="John Smith"
|
|
249
|
-
subtitle="Senior Software Engineer"
|
|
250
|
-
/>
|
|
251
|
-
<CardContent>
|
|
252
|
-
<Stack spacing={2}>
|
|
253
|
-
<Box display="flex" alignItems="center" gap={1}>
|
|
254
|
-
<LocationOn fontSize="small" color="action" />
|
|
255
|
-
<Typography variant="body2">San Francisco, CA</Typography>
|
|
256
|
-
</Box>
|
|
257
|
-
<Box display="flex" alignItems="center" gap={1}>
|
|
258
|
-
<Email fontSize="small" color="action" />
|
|
259
|
-
<Typography variant="body2">john.smith@example.com</Typography>
|
|
260
|
-
</Box>
|
|
261
|
-
<Box display="flex" alignItems="center" gap={1}>
|
|
262
|
-
<Phone fontSize="small" color="action" />
|
|
263
|
-
<Typography variant="body2">+1 (555) 123-4567</Typography>
|
|
264
|
-
</Box>
|
|
265
|
-
<Stack direction="row" spacing={1} mt={2}>
|
|
266
|
-
<Chip label="React" size="small" variant="outlined" />
|
|
267
|
-
<Chip label="TypeScript" size="small" variant="outlined" />
|
|
268
|
-
<Chip label="Node.js" size="small" variant="outlined" />
|
|
269
|
-
</Stack>
|
|
270
|
-
</Stack>
|
|
271
|
-
</CardContent>
|
|
272
|
-
<CardActions alignment="space-between">
|
|
273
|
-
<Button variant="outlined" startIcon={<Edit />}>
|
|
274
|
-
Edit
|
|
275
|
-
</Button>
|
|
276
|
-
<Button variant="contained">Contact</Button>
|
|
277
|
-
</CardActions>
|
|
278
|
-
</Card>
|
|
279
|
-
),
|
|
280
|
-
};
|
|
281
|
-
|
|
282
|
-
export const DashboardCard: Story = {
|
|
283
|
-
render: () => (
|
|
284
|
-
<Card variant="neumorphic" sx={{ minWidth: 300 }}>
|
|
285
|
-
<CardContent>
|
|
286
|
-
<Stack direction="row" justifyContent="space-between" alignItems="center" mb={2}>
|
|
287
|
-
<Typography variant="h6">Revenue</Typography>
|
|
288
|
-
<Chip label="+12%" color="success" size="small" />
|
|
289
|
-
</Stack>
|
|
290
|
-
<Typography variant="h3" color="primary" fontWeight="bold" mb={1}>
|
|
291
|
-
$24,596
|
|
292
|
-
</Typography>
|
|
293
|
-
<Typography variant="body2" color="text.secondary" mb={2}>
|
|
294
|
-
Total revenue this month
|
|
295
|
-
</Typography>
|
|
296
|
-
<Box
|
|
297
|
-
sx={{
|
|
298
|
-
height: 4,
|
|
299
|
-
backgroundColor: 'grey.200',
|
|
300
|
-
borderRadius: 2,
|
|
301
|
-
position: 'relative',
|
|
302
|
-
}}
|
|
303
|
-
>
|
|
304
|
-
<Box
|
|
305
|
-
sx={{
|
|
306
|
-
width: '68%',
|
|
307
|
-
height: '100%',
|
|
308
|
-
backgroundColor: 'primary.main',
|
|
309
|
-
borderRadius: 2,
|
|
310
|
-
}}
|
|
311
|
-
/>
|
|
312
|
-
</Box>
|
|
313
|
-
<Typography variant="caption" color="text.secondary" mt={1}>
|
|
314
|
-
68% of monthly goal
|
|
315
|
-
</Typography>
|
|
316
|
-
</CardContent>
|
|
317
|
-
</Card>
|
|
318
|
-
),
|
|
319
|
-
};
|
|
320
|
-
|
|
321
|
-
export const AllSizes: Story = {
|
|
322
|
-
render: () => (
|
|
323
|
-
<Grid container spacing={3}>
|
|
324
|
-
<Grid item xs={12} sm={6} md={4}>
|
|
325
|
-
<Card variant="elevated" sx={{ padding: 0 }}>
|
|
326
|
-
<CardContent>
|
|
327
|
-
<Typography variant="h6" gutterBottom>
|
|
328
|
-
Small Card
|
|
329
|
-
</Typography>
|
|
330
|
-
<Typography variant="body2" color="text.secondary">
|
|
331
|
-
Compact size with minimal padding for tight spaces.
|
|
332
|
-
</Typography>
|
|
333
|
-
</CardContent>
|
|
334
|
-
</Card>
|
|
335
|
-
</Grid>
|
|
336
|
-
|
|
337
|
-
<Grid item xs={12} sm={6} md={4}>
|
|
338
|
-
<Card variant="elevated" sx={{ padding: 2 }}>
|
|
339
|
-
<CardContent>
|
|
340
|
-
<Typography variant="h6" gutterBottom>
|
|
341
|
-
Medium Card
|
|
342
|
-
</Typography>
|
|
343
|
-
<Typography variant="body2" color="text.secondary">
|
|
344
|
-
Standard size with balanced padding for most use cases.
|
|
345
|
-
</Typography>
|
|
346
|
-
</CardContent>
|
|
347
|
-
</Card>
|
|
348
|
-
</Grid>
|
|
349
|
-
|
|
350
|
-
<Grid item xs={12} sm={6} md={4}>
|
|
351
|
-
<Card variant="elevated" sx={{ padding: 4 }}>
|
|
352
|
-
<CardContent>
|
|
353
|
-
<Typography variant="h6" gutterBottom>
|
|
354
|
-
Large Card
|
|
355
|
-
</Typography>
|
|
356
|
-
<Typography variant="body2" color="text.secondary">
|
|
357
|
-
Spacious card with extra padding for important content.
|
|
358
|
-
</Typography>
|
|
359
|
-
</CardContent>
|
|
360
|
-
</Card>
|
|
361
|
-
</Grid>
|
|
362
|
-
</Grid>
|
|
363
|
-
),
|
|
364
|
-
};
|
|
365
|
-
|
|
366
|
-
export const AllStates: Story = {
|
|
367
|
-
render: () => (
|
|
368
|
-
<Grid container spacing={3}>
|
|
369
|
-
<Grid item xs={12} sm={6} md={3}>
|
|
370
|
-
<Card variant="elevated">
|
|
371
|
-
<CardContent>
|
|
372
|
-
<Typography variant="h6" gutterBottom>
|
|
373
|
-
Default
|
|
374
|
-
</Typography>
|
|
375
|
-
<Typography variant="body2" color="text.secondary">
|
|
376
|
-
Normal state card
|
|
377
|
-
</Typography>
|
|
378
|
-
</CardContent>
|
|
379
|
-
</Card>
|
|
380
|
-
</Grid>
|
|
381
|
-
|
|
382
|
-
<Grid item xs={12} sm={6} md={3}>
|
|
383
|
-
<Card variant="elevated" sx={{ '&:hover': { boxShadow: 6 } }}>
|
|
384
|
-
<CardContent>
|
|
385
|
-
<Typography variant="h6" gutterBottom>
|
|
386
|
-
Hover
|
|
387
|
-
</Typography>
|
|
388
|
-
<Typography variant="body2" color="text.secondary">
|
|
389
|
-
Hover over this card
|
|
390
|
-
</Typography>
|
|
391
|
-
</CardContent>
|
|
392
|
-
</Card>
|
|
393
|
-
</Grid>
|
|
394
|
-
|
|
395
|
-
<Grid item xs={12} sm={6} md={3}>
|
|
396
|
-
<Card variant="elevated" sx={{ opacity: 0.6, pointerEvents: 'none' }}>
|
|
397
|
-
<CardContent>
|
|
398
|
-
<Typography variant="h6" gutterBottom>
|
|
399
|
-
Disabled
|
|
400
|
-
</Typography>
|
|
401
|
-
<Typography variant="body2" color="text.secondary">
|
|
402
|
-
Disabled state card
|
|
403
|
-
</Typography>
|
|
404
|
-
</CardContent>
|
|
405
|
-
</Card>
|
|
406
|
-
</Grid>
|
|
407
|
-
|
|
408
|
-
<Grid item xs={12} sm={6} md={3}>
|
|
409
|
-
<Card variant="elevated" loading>
|
|
410
|
-
<CardContent>
|
|
411
|
-
<Box sx={{ display: 'flex', alignItems: 'center', gap: 2 }}>
|
|
412
|
-
<Typography variant="h6">Loading</Typography>
|
|
413
|
-
<Box sx={{ display: 'flex', gap: 0.5 }}>
|
|
414
|
-
<Box
|
|
415
|
-
sx={{
|
|
416
|
-
width: 8,
|
|
417
|
-
height: 8,
|
|
418
|
-
borderRadius: '50%',
|
|
419
|
-
backgroundColor: 'primary.main',
|
|
420
|
-
animation: 'pulse 1.4s infinite',
|
|
421
|
-
}}
|
|
422
|
-
/>
|
|
423
|
-
<Box
|
|
424
|
-
sx={{
|
|
425
|
-
width: 8,
|
|
426
|
-
height: 8,
|
|
427
|
-
borderRadius: '50%',
|
|
428
|
-
backgroundColor: 'primary.main',
|
|
429
|
-
animation: 'pulse 1.4s infinite 0.2s',
|
|
430
|
-
}}
|
|
431
|
-
/>
|
|
432
|
-
<Box
|
|
433
|
-
sx={{
|
|
434
|
-
width: 8,
|
|
435
|
-
height: 8,
|
|
436
|
-
borderRadius: '50%',
|
|
437
|
-
backgroundColor: 'primary.main',
|
|
438
|
-
animation: 'pulse 1.4s infinite 0.4s',
|
|
439
|
-
}}
|
|
440
|
-
/>
|
|
441
|
-
</Box>
|
|
442
|
-
</Box>
|
|
443
|
-
<Typography variant="body2" color="text.secondary">
|
|
444
|
-
Loading content...
|
|
445
|
-
</Typography>
|
|
446
|
-
</CardContent>
|
|
447
|
-
</Card>
|
|
448
|
-
</Grid>
|
|
449
|
-
</Grid>
|
|
450
|
-
),
|
|
451
|
-
};
|
|
452
|
-
|
|
453
|
-
export const Responsive: Story = {
|
|
454
|
-
render: () => (
|
|
455
|
-
<Box>
|
|
456
|
-
<Typography variant="h6" gutterBottom>
|
|
457
|
-
Responsive Card Layout
|
|
458
|
-
</Typography>
|
|
459
|
-
<Typography variant="body2" color="text.secondary" paragraph>
|
|
460
|
-
Resize your browser to see how cards adapt to different screen sizes
|
|
461
|
-
</Typography>
|
|
462
|
-
|
|
463
|
-
<Grid container spacing={{ xs: 1, sm: 2, md: 3 }}>
|
|
464
|
-
<Grid item xs={12} sm={6} md={4} lg={3}>
|
|
465
|
-
<Card variant="elevated">
|
|
466
|
-
<CardContent>
|
|
467
|
-
<Typography variant="h6">Mobile First</Typography>
|
|
468
|
-
<Typography variant="body2" color="text.secondary">
|
|
469
|
-
Full width on mobile, adapts to grid on larger screens
|
|
470
|
-
</Typography>
|
|
471
|
-
</CardContent>
|
|
472
|
-
</Card>
|
|
473
|
-
</Grid>
|
|
474
|
-
|
|
475
|
-
<Grid item xs={12} sm={6} md={4} lg={3}>
|
|
476
|
-
<Card variant="outlined">
|
|
477
|
-
<CardContent>
|
|
478
|
-
<Typography variant="h6">Flexible Grid</Typography>
|
|
479
|
-
<Typography variant="body2" color="text.secondary">
|
|
480
|
-
12 cols on xs, 6 on sm, 4 on md, 3 on lg
|
|
481
|
-
</Typography>
|
|
482
|
-
</CardContent>
|
|
483
|
-
</Card>
|
|
484
|
-
</Grid>
|
|
485
|
-
|
|
486
|
-
<Grid item xs={12} sm={6} md={4} lg={3}>
|
|
487
|
-
<Card variant="glass">
|
|
488
|
-
<CardContent>
|
|
489
|
-
<Typography variant="h6">Responsive Spacing</Typography>
|
|
490
|
-
<Typography variant="body2" color="text.secondary">
|
|
491
|
-
Spacing adjusts based on screen size
|
|
492
|
-
</Typography>
|
|
493
|
-
</CardContent>
|
|
494
|
-
</Card>
|
|
495
|
-
</Grid>
|
|
496
|
-
|
|
497
|
-
<Grid item xs={12} sm={6} md={4} lg={3}>
|
|
498
|
-
<Card variant="gradient">
|
|
499
|
-
<CardContent>
|
|
500
|
-
<Typography variant="h6">Adaptive Content</Typography>
|
|
501
|
-
<Typography variant="body2">
|
|
502
|
-
Content flows naturally within responsive containers
|
|
503
|
-
</Typography>
|
|
504
|
-
</CardContent>
|
|
505
|
-
</Card>
|
|
506
|
-
</Grid>
|
|
507
|
-
</Grid>
|
|
508
|
-
</Box>
|
|
509
|
-
),
|
|
510
|
-
};
|
|
511
|
-
|
|
512
|
-
export const ComplexLayoutCard: Story = {
|
|
513
|
-
render: () => (
|
|
514
|
-
<Card variant="elevated" sx={{ maxWidth: 500 }}>
|
|
515
|
-
<CardMedia
|
|
516
|
-
component="img"
|
|
517
|
-
height="160"
|
|
518
|
-
image="https://images.unsplash.com/photo-1441974231531-c6227db76b6e?w=500&h=160&fit=crop"
|
|
519
|
-
title="Event Location"
|
|
520
|
-
/>
|
|
521
|
-
<CardContent>
|
|
522
|
-
<Stack direction="row" justifyContent="space-between" alignItems="flex-start" mb={2}>
|
|
523
|
-
<Box>
|
|
524
|
-
<Typography variant="h5" gutterBottom>
|
|
525
|
-
Tech Conference 2024
|
|
526
|
-
</Typography>
|
|
527
|
-
<Typography variant="subtitle1" color="text.secondary">
|
|
528
|
-
March 15-17, 2024
|
|
529
|
-
</Typography>
|
|
530
|
-
</Box>
|
|
531
|
-
<Chip label="Premium Event" color="primary" />
|
|
532
|
-
</Stack>
|
|
533
|
-
|
|
534
|
-
<Stack direction="row" alignItems="center" spacing={1} mb={2}>
|
|
535
|
-
<LocationOn fontSize="small" color="action" />
|
|
536
|
-
<Typography variant="body2">Convention Center, San Francisco</Typography>
|
|
537
|
-
</Stack>
|
|
538
|
-
|
|
539
|
-
<Typography variant="body1" mb={2}>
|
|
540
|
-
Join industry leaders for three days of cutting-edge technology discussions, networking
|
|
541
|
-
opportunities, and hands-on workshops.
|
|
542
|
-
</Typography>
|
|
543
|
-
|
|
544
|
-
<Box display="grid" gridTemplateColumns="1fr 1fr 1fr" gap={2} mb={2}>
|
|
545
|
-
<Box textAlign="center">
|
|
546
|
-
<Typography variant="h6" color="primary">
|
|
547
|
-
50+
|
|
548
|
-
</Typography>
|
|
549
|
-
<Typography variant="caption">Speakers</Typography>
|
|
550
|
-
</Box>
|
|
551
|
-
<Box textAlign="center">
|
|
552
|
-
<Typography variant="h6" color="primary">
|
|
553
|
-
200+
|
|
554
|
-
</Typography>
|
|
555
|
-
<Typography variant="caption">Attendees</Typography>
|
|
556
|
-
</Box>
|
|
557
|
-
<Box textAlign="center">
|
|
558
|
-
<Typography variant="h6" color="primary">
|
|
559
|
-
3
|
|
560
|
-
</Typography>
|
|
561
|
-
<Typography variant="caption">Days</Typography>
|
|
562
|
-
</Box>
|
|
563
|
-
</Box>
|
|
564
|
-
|
|
565
|
-
<Stack direction="row" spacing={1}>
|
|
566
|
-
<Chip label="AI/ML" size="small" />
|
|
567
|
-
<Chip label="Web3" size="small" />
|
|
568
|
-
<Chip label="Cloud" size="small" />
|
|
569
|
-
<Chip label="DevOps" size="small" />
|
|
570
|
-
</Stack>
|
|
571
|
-
</CardContent>
|
|
572
|
-
<CardActions alignment="space-between">
|
|
573
|
-
<Stack direction="row" spacing={1}>
|
|
574
|
-
<Typography variant="h6" color="primary">
|
|
575
|
-
$299
|
|
576
|
-
</Typography>
|
|
577
|
-
<Typography
|
|
578
|
-
variant="body2"
|
|
579
|
-
color="text.secondary"
|
|
580
|
-
sx={{ textDecoration: 'line-through' }}
|
|
581
|
-
>
|
|
582
|
-
$399
|
|
583
|
-
</Typography>
|
|
584
|
-
</Stack>
|
|
585
|
-
<Button variant="contained" size="large">
|
|
586
|
-
Register Now
|
|
587
|
-
</Button>
|
|
588
|
-
</CardActions>
|
|
589
|
-
</Card>
|
|
590
|
-
),
|
|
591
|
-
};
|