@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,694 +0,0 @@
|
|
|
1
|
-
import ExpandMore from '@mui/icons-material/ExpandMore';
|
|
2
|
-
import Help from '@mui/icons-material/Help';
|
|
3
|
-
import Info from '@mui/icons-material/Info';
|
|
4
|
-
import Security from '@mui/icons-material/Security';
|
|
5
|
-
import Settings from '@mui/icons-material/Settings';
|
|
6
|
-
import { Box, Button, Stack,Typography } from '@mui/material';
|
|
7
|
-
import type { Meta, StoryObj } from '@storybook/react-vite';
|
|
8
|
-
import { useState } from 'react';
|
|
9
|
-
|
|
10
|
-
import { Accordion, AccordionActions,AccordionDetails, AccordionSummary } from './Accordion';
|
|
11
|
-
|
|
12
|
-
const meta: Meta<typeof Accordion> = {
|
|
13
|
-
title: 'Layout/Accordion',
|
|
14
|
-
component: Accordion,
|
|
15
|
-
parameters: {
|
|
16
|
-
layout: 'padded',
|
|
17
|
-
},
|
|
18
|
-
tags: ['autodocs', 'component:Accordion'],
|
|
19
|
-
argTypes: {
|
|
20
|
-
variant: {
|
|
21
|
-
control: { type: 'select' },
|
|
22
|
-
options: ['default', 'glass', 'bordered', 'separated'],
|
|
23
|
-
},
|
|
24
|
-
disabled: {
|
|
25
|
-
control: { type: 'boolean' },
|
|
26
|
-
},
|
|
27
|
-
defaultExpanded: {
|
|
28
|
-
control: { type: 'boolean' },
|
|
29
|
-
},
|
|
30
|
-
},
|
|
31
|
-
};
|
|
32
|
-
|
|
33
|
-
export default meta;
|
|
34
|
-
type Story = StoryObj<typeof meta>;
|
|
35
|
-
|
|
36
|
-
export const Default: Story = {
|
|
37
|
-
args: {
|
|
38
|
-
variant: 'default',
|
|
39
|
-
disabled: false,
|
|
40
|
-
defaultExpanded: false,
|
|
41
|
-
},
|
|
42
|
-
render: (args) => (
|
|
43
|
-
<Accordion {...args}>
|
|
44
|
-
<AccordionSummary expandIcon={<ExpandMore />}>
|
|
45
|
-
<Typography variant="h6">Basic Accordion</Typography>
|
|
46
|
-
</AccordionSummary>
|
|
47
|
-
<AccordionDetails>
|
|
48
|
-
<Typography>
|
|
49
|
-
This is the content of the accordion. It can contain any React elements, including text,
|
|
50
|
-
forms, images, or other components.
|
|
51
|
-
</Typography>
|
|
52
|
-
</AccordionDetails>
|
|
53
|
-
</Accordion>
|
|
54
|
-
),
|
|
55
|
-
};
|
|
56
|
-
|
|
57
|
-
export const AllVariants: Story = {
|
|
58
|
-
render: () => (
|
|
59
|
-
<Stack spacing={3}>
|
|
60
|
-
<Box>
|
|
61
|
-
<Typography variant="h6" gutterBottom>
|
|
62
|
-
Default Variant
|
|
63
|
-
</Typography>
|
|
64
|
-
<Accordion variant="default">
|
|
65
|
-
<AccordionSummary expandIcon={<ExpandMore />}>
|
|
66
|
-
<Typography>Default Accordion</Typography>
|
|
67
|
-
</AccordionSummary>
|
|
68
|
-
<AccordionDetails>
|
|
69
|
-
<Typography>
|
|
70
|
-
The default variant follows Material-UI's standard accordion styling.
|
|
71
|
-
</Typography>
|
|
72
|
-
</AccordionDetails>
|
|
73
|
-
</Accordion>
|
|
74
|
-
</Box>
|
|
75
|
-
|
|
76
|
-
<Box>
|
|
77
|
-
<Typography variant="h6" gutterBottom>
|
|
78
|
-
Glass Variant
|
|
79
|
-
</Typography>
|
|
80
|
-
<Accordion variant="glass">
|
|
81
|
-
<AccordionSummary expandIcon={<ExpandMore />}>
|
|
82
|
-
<Typography>Glass Accordion</Typography>
|
|
83
|
-
</AccordionSummary>
|
|
84
|
-
<AccordionDetails>
|
|
85
|
-
<Typography>
|
|
86
|
-
The glass variant features a frosted glass effect with backdrop blur and transparency.
|
|
87
|
-
</Typography>
|
|
88
|
-
</AccordionDetails>
|
|
89
|
-
</Accordion>
|
|
90
|
-
</Box>
|
|
91
|
-
|
|
92
|
-
<Box>
|
|
93
|
-
<Typography variant="h6" gutterBottom>
|
|
94
|
-
Bordered Variant
|
|
95
|
-
</Typography>
|
|
96
|
-
<Accordion variant="bordered">
|
|
97
|
-
<AccordionSummary expandIcon={<ExpandMore />}>
|
|
98
|
-
<Typography>Bordered Accordion</Typography>
|
|
99
|
-
</AccordionSummary>
|
|
100
|
-
<AccordionDetails>
|
|
101
|
-
<Typography>The bordered variant has clean borders and rounded corners.</Typography>
|
|
102
|
-
</AccordionDetails>
|
|
103
|
-
</Accordion>
|
|
104
|
-
</Box>
|
|
105
|
-
|
|
106
|
-
<Box>
|
|
107
|
-
<Typography variant="h6" gutterBottom>
|
|
108
|
-
Separated Variant
|
|
109
|
-
</Typography>
|
|
110
|
-
<Accordion variant="separated">
|
|
111
|
-
<AccordionSummary expandIcon={<ExpandMore />}>
|
|
112
|
-
<Typography>Separated Accordion</Typography>
|
|
113
|
-
</AccordionSummary>
|
|
114
|
-
<AccordionDetails>
|
|
115
|
-
<Typography>
|
|
116
|
-
The separated variant has elevated shadows and spacing between items.
|
|
117
|
-
</Typography>
|
|
118
|
-
</AccordionDetails>
|
|
119
|
-
</Accordion>
|
|
120
|
-
</Box>
|
|
121
|
-
</Stack>
|
|
122
|
-
),
|
|
123
|
-
};
|
|
124
|
-
|
|
125
|
-
export const MultipleAccordions: Story = {
|
|
126
|
-
render: () => (
|
|
127
|
-
<Stack spacing={1}>
|
|
128
|
-
<Accordion variant="bordered">
|
|
129
|
-
<AccordionSummary expandIcon={<ExpandMore />}>
|
|
130
|
-
<Settings sx={{ mr: 2 }} />
|
|
131
|
-
<Typography>General Settings</Typography>
|
|
132
|
-
</AccordionSummary>
|
|
133
|
-
<AccordionDetails>
|
|
134
|
-
<Typography gutterBottom>
|
|
135
|
-
Configure general application settings including language, timezone, and theme
|
|
136
|
-
preferences.
|
|
137
|
-
</Typography>
|
|
138
|
-
</AccordionDetails>
|
|
139
|
-
<AccordionActions>
|
|
140
|
-
<Button size="small">Reset</Button>
|
|
141
|
-
<Button size="small" variant="contained">
|
|
142
|
-
Save
|
|
143
|
-
</Button>
|
|
144
|
-
</AccordionActions>
|
|
145
|
-
</Accordion>
|
|
146
|
-
|
|
147
|
-
<Accordion variant="bordered">
|
|
148
|
-
<AccordionSummary expandIcon={<ExpandMore />}>
|
|
149
|
-
<Security sx={{ mr: 2 }} />
|
|
150
|
-
<Typography>Security Settings</Typography>
|
|
151
|
-
</AccordionSummary>
|
|
152
|
-
<AccordionDetails>
|
|
153
|
-
<Typography gutterBottom>
|
|
154
|
-
Manage your security preferences including two-factor authentication, password
|
|
155
|
-
requirements, and login alerts.
|
|
156
|
-
</Typography>
|
|
157
|
-
</AccordionDetails>
|
|
158
|
-
<AccordionActions>
|
|
159
|
-
<Button size="small" color="error">
|
|
160
|
-
Disable
|
|
161
|
-
</Button>
|
|
162
|
-
<Button size="small" variant="contained">
|
|
163
|
-
Update
|
|
164
|
-
</Button>
|
|
165
|
-
</AccordionActions>
|
|
166
|
-
</Accordion>
|
|
167
|
-
|
|
168
|
-
<Accordion variant="bordered">
|
|
169
|
-
<AccordionSummary expandIcon={<ExpandMore />}>
|
|
170
|
-
<Info sx={{ mr: 2 }} />
|
|
171
|
-
<Typography>Notification Settings</Typography>
|
|
172
|
-
</AccordionSummary>
|
|
173
|
-
<AccordionDetails>
|
|
174
|
-
<Typography gutterBottom>
|
|
175
|
-
Control how and when you receive notifications from the application.
|
|
176
|
-
</Typography>
|
|
177
|
-
</AccordionDetails>
|
|
178
|
-
<AccordionActions>
|
|
179
|
-
<Button size="small">Test</Button>
|
|
180
|
-
<Button size="small" variant="contained">
|
|
181
|
-
Apply
|
|
182
|
-
</Button>
|
|
183
|
-
</AccordionActions>
|
|
184
|
-
</Accordion>
|
|
185
|
-
</Stack>
|
|
186
|
-
),
|
|
187
|
-
};
|
|
188
|
-
|
|
189
|
-
const ControlledAccordionComponent = () => {
|
|
190
|
-
const [expanded, setExpanded] = useState<string | false>(false);
|
|
191
|
-
|
|
192
|
-
const handleChange = (panel: string) => (event: React.SyntheticEvent, isExpanded: boolean) => {
|
|
193
|
-
setExpanded(isExpanded ? panel : false);
|
|
194
|
-
};
|
|
195
|
-
|
|
196
|
-
return (
|
|
197
|
-
<Stack spacing={1}>
|
|
198
|
-
<Accordion
|
|
199
|
-
variant="separated"
|
|
200
|
-
expanded={expanded === 'panel1'}
|
|
201
|
-
onChange={handleChange('panel1')}
|
|
202
|
-
>
|
|
203
|
-
<AccordionSummary expandIcon={<ExpandMore />}>
|
|
204
|
-
<Typography>Controlled Panel 1</Typography>
|
|
205
|
-
</AccordionSummary>
|
|
206
|
-
<AccordionDetails>
|
|
207
|
-
<Typography>
|
|
208
|
-
This accordion is controlled - only one panel can be open at a time.
|
|
209
|
-
</Typography>
|
|
210
|
-
</AccordionDetails>
|
|
211
|
-
</Accordion>
|
|
212
|
-
|
|
213
|
-
<Accordion
|
|
214
|
-
variant="separated"
|
|
215
|
-
expanded={expanded === 'panel2'}
|
|
216
|
-
onChange={handleChange('panel2')}
|
|
217
|
-
>
|
|
218
|
-
<AccordionSummary expandIcon={<ExpandMore />}>
|
|
219
|
-
<Typography>Controlled Panel 2</Typography>
|
|
220
|
-
</AccordionSummary>
|
|
221
|
-
<AccordionDetails>
|
|
222
|
-
<Typography>Opening this panel will close the other one automatically.</Typography>
|
|
223
|
-
</AccordionDetails>
|
|
224
|
-
</Accordion>
|
|
225
|
-
|
|
226
|
-
<Accordion
|
|
227
|
-
variant="separated"
|
|
228
|
-
expanded={expanded === 'panel3'}
|
|
229
|
-
onChange={handleChange('panel3')}
|
|
230
|
-
>
|
|
231
|
-
<AccordionSummary expandIcon={<ExpandMore />}>
|
|
232
|
-
<Typography>Controlled Panel 3</Typography>
|
|
233
|
-
</AccordionSummary>
|
|
234
|
-
<AccordionDetails>
|
|
235
|
-
<Typography>
|
|
236
|
-
This demonstrates controlled accordion behavior with state management.
|
|
237
|
-
</Typography>
|
|
238
|
-
</AccordionDetails>
|
|
239
|
-
</Accordion>
|
|
240
|
-
</Stack>
|
|
241
|
-
);
|
|
242
|
-
};
|
|
243
|
-
|
|
244
|
-
export const ControlledAccordion: Story = {
|
|
245
|
-
render: () => <ControlledAccordionComponent />,
|
|
246
|
-
};
|
|
247
|
-
|
|
248
|
-
export const ComplexContent: Story = {
|
|
249
|
-
render: () => (
|
|
250
|
-
<Accordion variant="glass" defaultExpanded>
|
|
251
|
-
<AccordionSummary expandIcon={<ExpandMore />}>
|
|
252
|
-
<Typography variant="h6">Project Dashboard</Typography>
|
|
253
|
-
</AccordionSummary>
|
|
254
|
-
<AccordionDetails>
|
|
255
|
-
<Stack spacing={2}>
|
|
256
|
-
<Box display="grid" gridTemplateColumns="1fr 1fr" gap={2}>
|
|
257
|
-
<Box>
|
|
258
|
-
<Typography variant="subtitle2" gutterBottom>
|
|
259
|
-
Progress
|
|
260
|
-
</Typography>
|
|
261
|
-
<Box
|
|
262
|
-
sx={{
|
|
263
|
-
height: 8,
|
|
264
|
-
backgroundColor: 'grey.200',
|
|
265
|
-
borderRadius: 1,
|
|
266
|
-
position: 'relative',
|
|
267
|
-
}}
|
|
268
|
-
>
|
|
269
|
-
<Box
|
|
270
|
-
sx={{
|
|
271
|
-
width: '75%',
|
|
272
|
-
height: '100%',
|
|
273
|
-
backgroundColor: 'primary.main',
|
|
274
|
-
borderRadius: 1,
|
|
275
|
-
}}
|
|
276
|
-
/>
|
|
277
|
-
</Box>
|
|
278
|
-
<Typography variant="body2" color="text.secondary" mt={1}>
|
|
279
|
-
75% Complete
|
|
280
|
-
</Typography>
|
|
281
|
-
</Box>
|
|
282
|
-
<Box>
|
|
283
|
-
<Typography variant="subtitle2" gutterBottom>
|
|
284
|
-
Team Members
|
|
285
|
-
</Typography>
|
|
286
|
-
<Stack direction="row" spacing={1}>
|
|
287
|
-
{['A', 'B', 'C', 'D'].map((letter) => (
|
|
288
|
-
<Box
|
|
289
|
-
key={letter}
|
|
290
|
-
sx={{
|
|
291
|
-
width: 32,
|
|
292
|
-
height: 32,
|
|
293
|
-
borderRadius: '50%',
|
|
294
|
-
backgroundColor: 'primary.main',
|
|
295
|
-
display: 'flex',
|
|
296
|
-
alignItems: 'center',
|
|
297
|
-
justifyContent: 'center',
|
|
298
|
-
color: 'white',
|
|
299
|
-
fontSize: '0.875rem',
|
|
300
|
-
}}
|
|
301
|
-
>
|
|
302
|
-
{letter}
|
|
303
|
-
</Box>
|
|
304
|
-
))}
|
|
305
|
-
</Stack>
|
|
306
|
-
</Box>
|
|
307
|
-
</Box>
|
|
308
|
-
<Typography variant="body2" color="text.secondary">
|
|
309
|
-
This accordion contains complex content including progress indicators, team member
|
|
310
|
-
avatars, and structured layouts.
|
|
311
|
-
</Typography>
|
|
312
|
-
</Stack>
|
|
313
|
-
</AccordionDetails>
|
|
314
|
-
<AccordionActions>
|
|
315
|
-
<Button startIcon={<Help />} size="small">
|
|
316
|
-
Help
|
|
317
|
-
</Button>
|
|
318
|
-
<Button variant="contained" size="small">
|
|
319
|
-
View Details
|
|
320
|
-
</Button>
|
|
321
|
-
</AccordionActions>
|
|
322
|
-
</Accordion>
|
|
323
|
-
),
|
|
324
|
-
};
|
|
325
|
-
|
|
326
|
-
export const DisabledAccordion: Story = {
|
|
327
|
-
render: () => (
|
|
328
|
-
<Stack spacing={2}>
|
|
329
|
-
<Accordion disabled>
|
|
330
|
-
<AccordionSummary expandIcon={<ExpandMore />}>
|
|
331
|
-
<Typography>Disabled Accordion</Typography>
|
|
332
|
-
</AccordionSummary>
|
|
333
|
-
<AccordionDetails>
|
|
334
|
-
<Typography>
|
|
335
|
-
This content cannot be accessed because the accordion is disabled.
|
|
336
|
-
</Typography>
|
|
337
|
-
</AccordionDetails>
|
|
338
|
-
</Accordion>
|
|
339
|
-
|
|
340
|
-
<Accordion variant="glass">
|
|
341
|
-
<AccordionSummary expandIcon={<ExpandMore />} disabled>
|
|
342
|
-
<Typography>Disabled Summary Only</Typography>
|
|
343
|
-
</AccordionSummary>
|
|
344
|
-
<AccordionDetails>
|
|
345
|
-
<Typography>
|
|
346
|
-
Only the summary is disabled, but if opened programmatically, the content would be
|
|
347
|
-
accessible.
|
|
348
|
-
</Typography>
|
|
349
|
-
</AccordionDetails>
|
|
350
|
-
</Accordion>
|
|
351
|
-
</Stack>
|
|
352
|
-
),
|
|
353
|
-
};
|
|
354
|
-
|
|
355
|
-
export const HoverState: Story = {
|
|
356
|
-
render: () => (
|
|
357
|
-
<Stack spacing={2}>
|
|
358
|
-
<Typography variant="body2" color="text.secondary">
|
|
359
|
-
Hover over the accordions to see the hover effects for each variant
|
|
360
|
-
</Typography>
|
|
361
|
-
<Accordion variant="default">
|
|
362
|
-
<AccordionSummary expandIcon={<ExpandMore />}>
|
|
363
|
-
<Typography>Default Hover Effect</Typography>
|
|
364
|
-
</AccordionSummary>
|
|
365
|
-
<AccordionDetails>
|
|
366
|
-
<Typography>Standard Material-UI hover state</Typography>
|
|
367
|
-
</AccordionDetails>
|
|
368
|
-
</Accordion>
|
|
369
|
-
|
|
370
|
-
<Accordion variant="glass">
|
|
371
|
-
<AccordionSummary expandIcon={<ExpandMore />}>
|
|
372
|
-
<Typography>Glass Hover Effect</Typography>
|
|
373
|
-
</AccordionSummary>
|
|
374
|
-
<AccordionDetails>
|
|
375
|
-
<Typography>Enhanced glass effect with elevation on hover</Typography>
|
|
376
|
-
</AccordionDetails>
|
|
377
|
-
</Accordion>
|
|
378
|
-
|
|
379
|
-
<Accordion variant="bordered">
|
|
380
|
-
<AccordionSummary expandIcon={<ExpandMore />}>
|
|
381
|
-
<Typography>Bordered Hover Effect</Typography>
|
|
382
|
-
</AccordionSummary>
|
|
383
|
-
<AccordionDetails>
|
|
384
|
-
<Typography>Border color and shadow transition on hover</Typography>
|
|
385
|
-
</AccordionDetails>
|
|
386
|
-
</Accordion>
|
|
387
|
-
</Stack>
|
|
388
|
-
),
|
|
389
|
-
};
|
|
390
|
-
|
|
391
|
-
export const EmptyState: Story = {
|
|
392
|
-
render: () => (
|
|
393
|
-
<Stack spacing={2}>
|
|
394
|
-
<Accordion variant="bordered">
|
|
395
|
-
<AccordionSummary expandIcon={<ExpandMore />}>
|
|
396
|
-
<Typography>Empty Content Accordion</Typography>
|
|
397
|
-
</AccordionSummary>
|
|
398
|
-
<AccordionDetails>
|
|
399
|
-
{/* Intentionally empty to test empty state handling */}
|
|
400
|
-
</AccordionDetails>
|
|
401
|
-
</Accordion>
|
|
402
|
-
|
|
403
|
-
<Accordion variant="glass">
|
|
404
|
-
<AccordionSummary expandIcon={<ExpandMore />}>
|
|
405
|
-
<Typography>Minimal Content</Typography>
|
|
406
|
-
</AccordionSummary>
|
|
407
|
-
<AccordionDetails>
|
|
408
|
-
<Box
|
|
409
|
-
sx={{ minHeight: 50, display: 'flex', alignItems: 'center', justifyContent: 'center' }}
|
|
410
|
-
>
|
|
411
|
-
<Typography variant="caption" color="text.secondary">
|
|
412
|
-
No data available
|
|
413
|
-
</Typography>
|
|
414
|
-
</Box>
|
|
415
|
-
</AccordionDetails>
|
|
416
|
-
</Accordion>
|
|
417
|
-
</Stack>
|
|
418
|
-
),
|
|
419
|
-
};
|
|
420
|
-
|
|
421
|
-
export const LoadingState: Story = {
|
|
422
|
-
render: () => {
|
|
423
|
-
const LoadingComponent = () => {
|
|
424
|
-
const [loading, setLoading] = useState(true);
|
|
425
|
-
|
|
426
|
-
return (
|
|
427
|
-
<Stack spacing={2}>
|
|
428
|
-
<Button onClick={() => setLoading(!loading)} variant="outlined" size="small">
|
|
429
|
-
Toggle Loading State
|
|
430
|
-
</Button>
|
|
431
|
-
|
|
432
|
-
<Accordion variant="separated" defaultExpanded>
|
|
433
|
-
<AccordionSummary expandIcon={<ExpandMore />}>
|
|
434
|
-
<Typography>Dynamic Content Accordion</Typography>
|
|
435
|
-
</AccordionSummary>
|
|
436
|
-
<AccordionDetails>
|
|
437
|
-
{loading ? (
|
|
438
|
-
<Box sx={{ p: 3, textAlign: 'center' }}>
|
|
439
|
-
<Typography variant="body2" color="text.secondary">
|
|
440
|
-
Loading content...
|
|
441
|
-
</Typography>
|
|
442
|
-
</Box>
|
|
443
|
-
) : (
|
|
444
|
-
<Typography>Content has been loaded successfully!</Typography>
|
|
445
|
-
)}
|
|
446
|
-
</AccordionDetails>
|
|
447
|
-
</Accordion>
|
|
448
|
-
</Stack>
|
|
449
|
-
);
|
|
450
|
-
};
|
|
451
|
-
|
|
452
|
-
return <LoadingComponent />;
|
|
453
|
-
},
|
|
454
|
-
};
|
|
455
|
-
|
|
456
|
-
// Required story exports for validation
|
|
457
|
-
export const AllSizes: Story = {
|
|
458
|
-
render: () => (
|
|
459
|
-
<Stack spacing={3}>
|
|
460
|
-
<Box>
|
|
461
|
-
<Typography variant="h6" gutterBottom>
|
|
462
|
-
Small Size
|
|
463
|
-
</Typography>
|
|
464
|
-
<Accordion sx={{ '& .MuiAccordionSummary-root': { minHeight: 40 } }}>
|
|
465
|
-
<AccordionSummary expandIcon={<ExpandMore sx={{ fontSize: '1rem' }} />}>
|
|
466
|
-
<Typography variant="body2">Small Accordion</Typography>
|
|
467
|
-
</AccordionSummary>
|
|
468
|
-
<AccordionDetails>
|
|
469
|
-
<Typography variant="body2">Compact content for small size accordion.</Typography>
|
|
470
|
-
</AccordionDetails>
|
|
471
|
-
</Accordion>
|
|
472
|
-
</Box>
|
|
473
|
-
|
|
474
|
-
<Box>
|
|
475
|
-
<Typography variant="h6" gutterBottom>
|
|
476
|
-
Medium Size (Default)
|
|
477
|
-
</Typography>
|
|
478
|
-
<Accordion>
|
|
479
|
-
<AccordionSummary expandIcon={<ExpandMore />}>
|
|
480
|
-
<Typography>Medium Accordion</Typography>
|
|
481
|
-
</AccordionSummary>
|
|
482
|
-
<AccordionDetails>
|
|
483
|
-
<Typography>Standard content for medium size accordion.</Typography>
|
|
484
|
-
</AccordionDetails>
|
|
485
|
-
</Accordion>
|
|
486
|
-
</Box>
|
|
487
|
-
|
|
488
|
-
<Box>
|
|
489
|
-
<Typography variant="h6" gutterBottom>
|
|
490
|
-
Large Size
|
|
491
|
-
</Typography>
|
|
492
|
-
<Accordion sx={{ '& .MuiAccordionSummary-root': { minHeight: 64 } }}>
|
|
493
|
-
<AccordionSummary expandIcon={<ExpandMore sx={{ fontSize: '1.5rem' }} />}>
|
|
494
|
-
<Typography variant="h6">Large Accordion</Typography>
|
|
495
|
-
</AccordionSummary>
|
|
496
|
-
<AccordionDetails>
|
|
497
|
-
<Typography variant="body1">
|
|
498
|
-
Extended content area for large size accordion with more space.
|
|
499
|
-
</Typography>
|
|
500
|
-
</AccordionDetails>
|
|
501
|
-
</Accordion>
|
|
502
|
-
</Box>
|
|
503
|
-
</Stack>
|
|
504
|
-
),
|
|
505
|
-
};
|
|
506
|
-
|
|
507
|
-
export const AllStates: Story = {
|
|
508
|
-
render: () => (
|
|
509
|
-
<Stack spacing={2}>
|
|
510
|
-
<Accordion>
|
|
511
|
-
<AccordionSummary expandIcon={<ExpandMore />}>
|
|
512
|
-
<Typography>Default State</Typography>
|
|
513
|
-
</AccordionSummary>
|
|
514
|
-
<AccordionDetails>
|
|
515
|
-
<Typography>Normal accordion in default state.</Typography>
|
|
516
|
-
</AccordionDetails>
|
|
517
|
-
</Accordion>
|
|
518
|
-
|
|
519
|
-
<Accordion defaultExpanded>
|
|
520
|
-
<AccordionSummary expandIcon={<ExpandMore />}>
|
|
521
|
-
<Typography>Expanded State</Typography>
|
|
522
|
-
</AccordionSummary>
|
|
523
|
-
<AccordionDetails>
|
|
524
|
-
<Typography>This accordion is expanded by default.</Typography>
|
|
525
|
-
</AccordionDetails>
|
|
526
|
-
</Accordion>
|
|
527
|
-
|
|
528
|
-
<Accordion disabled>
|
|
529
|
-
<AccordionSummary expandIcon={<ExpandMore />}>
|
|
530
|
-
<Typography>Disabled State</Typography>
|
|
531
|
-
</AccordionSummary>
|
|
532
|
-
<AccordionDetails>
|
|
533
|
-
<Typography>This accordion is disabled.</Typography>
|
|
534
|
-
</AccordionDetails>
|
|
535
|
-
</Accordion>
|
|
536
|
-
|
|
537
|
-
<Accordion sx={{ '&:hover': { backgroundColor: 'action.hover' } }}>
|
|
538
|
-
<AccordionSummary expandIcon={<ExpandMore />}>
|
|
539
|
-
<Typography>Hover State (hover to see)</Typography>
|
|
540
|
-
</AccordionSummary>
|
|
541
|
-
<AccordionDetails>
|
|
542
|
-
<Typography>Hover over the summary to see the hover effect.</Typography>
|
|
543
|
-
</AccordionDetails>
|
|
544
|
-
</Accordion>
|
|
545
|
-
|
|
546
|
-
<Accordion sx={{ '&:focus-within': { outline: '2px solid', outlineColor: 'primary.main' } }}>
|
|
547
|
-
<AccordionSummary expandIcon={<ExpandMore />}>
|
|
548
|
-
<Typography>Focus State (tab to focus)</Typography>
|
|
549
|
-
</AccordionSummary>
|
|
550
|
-
<AccordionDetails>
|
|
551
|
-
<Typography>Tab navigation will show focus outline.</Typography>
|
|
552
|
-
</AccordionDetails>
|
|
553
|
-
</Accordion>
|
|
554
|
-
</Stack>
|
|
555
|
-
),
|
|
556
|
-
};
|
|
557
|
-
|
|
558
|
-
export const InteractiveStates: Story = {
|
|
559
|
-
render: () => {
|
|
560
|
-
const InteractiveComponent = () => {
|
|
561
|
-
const [expanded, setExpanded] = useState<string | false>('panel1');
|
|
562
|
-
const [clickCount, setClickCount] = useState(0);
|
|
563
|
-
|
|
564
|
-
const handleChange =
|
|
565
|
-
(panel: string) => (event: React.SyntheticEvent, isExpanded: boolean) => {
|
|
566
|
-
setExpanded(isExpanded ? panel : false);
|
|
567
|
-
setClickCount(clickCount + 1);
|
|
568
|
-
};
|
|
569
|
-
|
|
570
|
-
return (
|
|
571
|
-
<Stack spacing={2}>
|
|
572
|
-
<Typography variant="body2" color="text.secondary">
|
|
573
|
-
Click count: {clickCount} | Currently expanded: {expanded || 'none'}
|
|
574
|
-
</Typography>
|
|
575
|
-
|
|
576
|
-
<Accordion expanded={expanded === 'panel1'} onChange={handleChange('panel1')}>
|
|
577
|
-
<AccordionSummary expandIcon={<ExpandMore />}>
|
|
578
|
-
<Typography>Interactive Panel 1</Typography>
|
|
579
|
-
</AccordionSummary>
|
|
580
|
-
<AccordionDetails>
|
|
581
|
-
<Typography>Click to toggle expansion state.</Typography>
|
|
582
|
-
</AccordionDetails>
|
|
583
|
-
</Accordion>
|
|
584
|
-
|
|
585
|
-
<Accordion expanded={expanded === 'panel2'} onChange={handleChange('panel2')}>
|
|
586
|
-
<AccordionSummary expandIcon={<ExpandMore />}>
|
|
587
|
-
<Typography>Interactive Panel 2</Typography>
|
|
588
|
-
</AccordionSummary>
|
|
589
|
-
<AccordionDetails>
|
|
590
|
-
<Typography>Only one panel can be expanded at a time.</Typography>
|
|
591
|
-
</AccordionDetails>
|
|
592
|
-
</Accordion>
|
|
593
|
-
|
|
594
|
-
<Accordion expanded={expanded === 'panel3'} onChange={handleChange('panel3')}>
|
|
595
|
-
<AccordionSummary expandIcon={<ExpandMore />}>
|
|
596
|
-
<Typography>Interactive Panel 3</Typography>
|
|
597
|
-
</AccordionSummary>
|
|
598
|
-
<AccordionDetails>
|
|
599
|
-
<Typography>State is tracked and displayed above.</Typography>
|
|
600
|
-
</AccordionDetails>
|
|
601
|
-
</Accordion>
|
|
602
|
-
</Stack>
|
|
603
|
-
);
|
|
604
|
-
};
|
|
605
|
-
|
|
606
|
-
return <InteractiveComponent />;
|
|
607
|
-
},
|
|
608
|
-
};
|
|
609
|
-
|
|
610
|
-
export const Responsive: Story = {
|
|
611
|
-
render: () => (
|
|
612
|
-
<Box>
|
|
613
|
-
<Typography variant="h6" gutterBottom>
|
|
614
|
-
Responsive Accordion (resize window to test)
|
|
615
|
-
</Typography>
|
|
616
|
-
<Stack spacing={2}>
|
|
617
|
-
<Accordion
|
|
618
|
-
sx={{
|
|
619
|
-
width: '100%',
|
|
620
|
-
maxWidth: { xs: '100%', sm: 600, md: 800 },
|
|
621
|
-
mx: 'auto',
|
|
622
|
-
}}
|
|
623
|
-
>
|
|
624
|
-
<AccordionSummary expandIcon={<ExpandMore />}>
|
|
625
|
-
<Typography sx={{ fontSize: { xs: '0.875rem', sm: '1rem', md: '1.125rem' } }}>
|
|
626
|
-
Responsive Typography
|
|
627
|
-
</Typography>
|
|
628
|
-
</AccordionSummary>
|
|
629
|
-
<AccordionDetails>
|
|
630
|
-
<Typography sx={{ fontSize: { xs: '0.75rem', sm: '0.875rem', md: '1rem' } }}>
|
|
631
|
-
This accordion adapts to different screen sizes. On mobile it uses smaller text, on
|
|
632
|
-
tablet medium text, and on desktop larger text.
|
|
633
|
-
</Typography>
|
|
634
|
-
</AccordionDetails>
|
|
635
|
-
</Accordion>
|
|
636
|
-
|
|
637
|
-
<Accordion
|
|
638
|
-
sx={{
|
|
639
|
-
display: { xs: 'block', md: 'flex' },
|
|
640
|
-
flexDirection: { md: 'column' },
|
|
641
|
-
}}
|
|
642
|
-
>
|
|
643
|
-
<AccordionSummary
|
|
644
|
-
expandIcon={<ExpandMore />}
|
|
645
|
-
sx={{
|
|
646
|
-
flexDirection: { xs: 'row', md: 'row-reverse' },
|
|
647
|
-
'& .MuiAccordionSummary-expandIconWrapper': {
|
|
648
|
-
transform: { xs: 'none', md: 'rotate(90deg)' },
|
|
649
|
-
},
|
|
650
|
-
}}
|
|
651
|
-
>
|
|
652
|
-
<Typography>Layout Changes</Typography>
|
|
653
|
-
</AccordionSummary>
|
|
654
|
-
<AccordionDetails>
|
|
655
|
-
<Box
|
|
656
|
-
sx={{
|
|
657
|
-
display: 'grid',
|
|
658
|
-
gridTemplateColumns: { xs: '1fr', sm: '1fr 1fr', md: 'repeat(3, 1fr)' },
|
|
659
|
-
gap: 2,
|
|
660
|
-
}}
|
|
661
|
-
>
|
|
662
|
-
<Box sx={{ p: 2, bgcolor: 'grey.100', borderRadius: 1 }}>
|
|
663
|
-
<Typography variant="caption">Item 1</Typography>
|
|
664
|
-
</Box>
|
|
665
|
-
<Box sx={{ p: 2, bgcolor: 'grey.100', borderRadius: 1 }}>
|
|
666
|
-
<Typography variant="caption">Item 2</Typography>
|
|
667
|
-
</Box>
|
|
668
|
-
<Box sx={{ p: 2, bgcolor: 'grey.100', borderRadius: 1 }}>
|
|
669
|
-
<Typography variant="caption">Item 3</Typography>
|
|
670
|
-
</Box>
|
|
671
|
-
</Box>
|
|
672
|
-
</AccordionDetails>
|
|
673
|
-
</Accordion>
|
|
674
|
-
|
|
675
|
-
<Accordion
|
|
676
|
-
variant="glass"
|
|
677
|
-
sx={{
|
|
678
|
-
backdropFilter: { xs: 'blur(8px)', md: 'blur(12px)' },
|
|
679
|
-
backgroundColor: { xs: 'rgba(255,255,255,0.7)', md: 'rgba(255,255,255,0.9)' },
|
|
680
|
-
}}
|
|
681
|
-
>
|
|
682
|
-
<AccordionSummary expandIcon={<ExpandMore />}>
|
|
683
|
-
<Typography>Responsive Styling</Typography>
|
|
684
|
-
</AccordionSummary>
|
|
685
|
-
<AccordionDetails>
|
|
686
|
-
<Typography>
|
|
687
|
-
Glass effect intensity changes based on screen size for optimal performance.
|
|
688
|
-
</Typography>
|
|
689
|
-
</AccordionDetails>
|
|
690
|
-
</Accordion>
|
|
691
|
-
</Stack>
|
|
692
|
-
</Box>
|
|
693
|
-
),
|
|
694
|
-
};
|