@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,691 +0,0 @@
|
|
|
1
|
-
import { Box, Button, Card, CardContent, Paper, Stack, TextField,Typography } from '@mui/material';
|
|
2
|
-
import type { Meta, StoryObj } from '@storybook/react-vite';
|
|
3
|
-
import React from 'react';
|
|
4
|
-
import { action } from 'storybook/actions';
|
|
5
|
-
|
|
6
|
-
import { TutorialOverlay } from './TutorialOverlay';
|
|
7
|
-
|
|
8
|
-
const meta: Meta<typeof TutorialOverlay> = {
|
|
9
|
-
title: 'Enhanced/TutorialOverlay',
|
|
10
|
-
component: TutorialOverlay,
|
|
11
|
-
parameters: {
|
|
12
|
-
layout: 'fullscreen',
|
|
13
|
-
docs: {
|
|
14
|
-
description: {
|
|
15
|
-
component:
|
|
16
|
-
'An interactive tutorial overlay component for creating product tours, onboarding flows, and feature highlights.',
|
|
17
|
-
},
|
|
18
|
-
},
|
|
19
|
-
},
|
|
20
|
-
tags: ['autodocs', 'component:TutorialOverlay'],
|
|
21
|
-
argTypes: {
|
|
22
|
-
variant: {
|
|
23
|
-
control: { type: 'select' },
|
|
24
|
-
options: ['tooltip', 'modal', 'highlight', 'spotlight'],
|
|
25
|
-
description: 'Tutorial overlay style',
|
|
26
|
-
},
|
|
27
|
-
position: {
|
|
28
|
-
control: { type: 'select' },
|
|
29
|
-
options: ['top', 'bottom', 'left', 'right', 'center'],
|
|
30
|
-
description: 'Position relative to target',
|
|
31
|
-
},
|
|
32
|
-
showProgress: {
|
|
33
|
-
control: 'boolean',
|
|
34
|
-
description: 'Show progress indicator',
|
|
35
|
-
},
|
|
36
|
-
allowSkip: {
|
|
37
|
-
control: 'boolean',
|
|
38
|
-
description: 'Allow users to skip tutorial',
|
|
39
|
-
},
|
|
40
|
-
animated: {
|
|
41
|
-
control: 'boolean',
|
|
42
|
-
description: 'Enable animations',
|
|
43
|
-
},
|
|
44
|
-
},
|
|
45
|
-
};
|
|
46
|
-
|
|
47
|
-
export default meta;
|
|
48
|
-
type Story = StoryObj<typeof meta>;
|
|
49
|
-
|
|
50
|
-
const tutorialSteps = [
|
|
51
|
-
{
|
|
52
|
-
id: '1',
|
|
53
|
-
target: '#welcome-card',
|
|
54
|
-
title: 'Welcome to the Dashboard',
|
|
55
|
-
content: 'This is your main dashboard where you can see all important metrics.',
|
|
56
|
-
position: 'bottom' as const,
|
|
57
|
-
},
|
|
58
|
-
{
|
|
59
|
-
id: '2',
|
|
60
|
-
target: '#search-input',
|
|
61
|
-
title: 'Search Functionality',
|
|
62
|
-
content: 'Use this search bar to quickly find what you need.',
|
|
63
|
-
position: 'bottom' as const,
|
|
64
|
-
},
|
|
65
|
-
{
|
|
66
|
-
id: '3',
|
|
67
|
-
target: '#notifications',
|
|
68
|
-
title: 'Notifications',
|
|
69
|
-
content: 'Stay updated with real-time notifications here.',
|
|
70
|
-
position: 'left' as const,
|
|
71
|
-
},
|
|
72
|
-
{
|
|
73
|
-
id: '4',
|
|
74
|
-
target: '#profile-menu',
|
|
75
|
-
title: 'Profile Settings',
|
|
76
|
-
content: 'Access your profile and account settings from this menu.',
|
|
77
|
-
position: 'left' as const,
|
|
78
|
-
},
|
|
79
|
-
];
|
|
80
|
-
|
|
81
|
-
const DefaultComponent = () => {
|
|
82
|
-
const [showTutorial, setShowTutorial] = React.useState(false);
|
|
83
|
-
|
|
84
|
-
return (
|
|
85
|
-
<Box sx={{ p: 4, minHeight: '100vh', bgcolor: 'grey.50' }}>
|
|
86
|
-
<Stack spacing={3}>
|
|
87
|
-
<Button
|
|
88
|
-
variant="contained"
|
|
89
|
-
onClick={() => setShowTutorial(true)}
|
|
90
|
-
sx={{ alignSelf: 'flex-start' }}
|
|
91
|
-
>
|
|
92
|
-
Start Tutorial
|
|
93
|
-
</Button>
|
|
94
|
-
|
|
95
|
-
<Card id="welcome-card">
|
|
96
|
-
<CardContent>
|
|
97
|
-
<Typography variant="h5">Dashboard</Typography>
|
|
98
|
-
<Typography>Welcome to your personalized dashboard</Typography>
|
|
99
|
-
</CardContent>
|
|
100
|
-
</Card>
|
|
101
|
-
|
|
102
|
-
<Stack direction="row" spacing={2}>
|
|
103
|
-
<TextField
|
|
104
|
-
id="search-input"
|
|
105
|
-
label="Search"
|
|
106
|
-
variant="outlined"
|
|
107
|
-
fullWidth
|
|
108
|
-
placeholder="Search for anything..."
|
|
109
|
-
/>
|
|
110
|
-
<Button id="notifications" variant="outlined">
|
|
111
|
-
Notifications (3)
|
|
112
|
-
</Button>
|
|
113
|
-
<Button id="profile-menu" variant="outlined">
|
|
114
|
-
Profile
|
|
115
|
-
</Button>
|
|
116
|
-
</Stack>
|
|
117
|
-
</Stack>
|
|
118
|
-
|
|
119
|
-
{showTutorial && (
|
|
120
|
-
<TutorialOverlay
|
|
121
|
-
steps={tutorialSteps}
|
|
122
|
-
onComplete={() => setShowTutorial(false)}
|
|
123
|
-
onSkip={() => setShowTutorial(false)}
|
|
124
|
-
variant="spotlight"
|
|
125
|
-
showProgress={true}
|
|
126
|
-
allowSkip={true}
|
|
127
|
-
animated={true}
|
|
128
|
-
/>
|
|
129
|
-
)}
|
|
130
|
-
</Box>
|
|
131
|
-
);
|
|
132
|
-
};
|
|
133
|
-
|
|
134
|
-
export const Default: Story = {
|
|
135
|
-
render: () => <DefaultComponent />,
|
|
136
|
-
};
|
|
137
|
-
|
|
138
|
-
const OnboardingFlowComponent = () => {
|
|
139
|
-
const [startOnboarding, setStartOnboarding] = React.useState(false);
|
|
140
|
-
|
|
141
|
-
const onboardingSteps = [
|
|
142
|
-
{
|
|
143
|
-
id: '1',
|
|
144
|
-
target: '#create-project',
|
|
145
|
-
title: 'Create Your First Project',
|
|
146
|
-
content: 'Click here to create your first project and get started.',
|
|
147
|
-
action: 'Click to Continue',
|
|
148
|
-
},
|
|
149
|
-
{
|
|
150
|
-
id: '2',
|
|
151
|
-
target: '#invite-team',
|
|
152
|
-
title: 'Invite Team Members',
|
|
153
|
-
content: 'Collaborate with your team by inviting them to your project.',
|
|
154
|
-
action: 'Next',
|
|
155
|
-
},
|
|
156
|
-
{
|
|
157
|
-
id: '3',
|
|
158
|
-
target: '#customize',
|
|
159
|
-
title: 'Customize Your Workspace',
|
|
160
|
-
content: 'Make it yours! Customize themes, layouts, and preferences.',
|
|
161
|
-
action: 'Next',
|
|
162
|
-
},
|
|
163
|
-
{
|
|
164
|
-
id: '4',
|
|
165
|
-
target: '#explore',
|
|
166
|
-
title: 'Explore Features',
|
|
167
|
-
content: 'Discover all the powerful features available to you.',
|
|
168
|
-
action: 'Finish',
|
|
169
|
-
},
|
|
170
|
-
];
|
|
171
|
-
|
|
172
|
-
return (
|
|
173
|
-
<Box sx={{ p: 4, minHeight: '100vh' }}>
|
|
174
|
-
<Typography variant="h4" gutterBottom>
|
|
175
|
-
Welcome to Your Workspace
|
|
176
|
-
</Typography>
|
|
177
|
-
|
|
178
|
-
{!startOnboarding && (
|
|
179
|
-
<Button variant="contained" size="large" onClick={() => setStartOnboarding(true)}>
|
|
180
|
-
Begin Onboarding
|
|
181
|
-
</Button>
|
|
182
|
-
)}
|
|
183
|
-
|
|
184
|
-
<Box display="grid" gridTemplateColumns="1fr 1fr" gap={3} mt={4}>
|
|
185
|
-
<Paper id="create-project" sx={{ p: 3 }}>
|
|
186
|
-
<Typography variant="h6">Create Project</Typography>
|
|
187
|
-
<Typography variant="body2" color="text.secondary">
|
|
188
|
-
Start a new project from scratch or use a template
|
|
189
|
-
</Typography>
|
|
190
|
-
<Button variant="contained" sx={{ mt: 2 }}>
|
|
191
|
-
New Project
|
|
192
|
-
</Button>
|
|
193
|
-
</Paper>
|
|
194
|
-
|
|
195
|
-
<Paper id="invite-team" sx={{ p: 3 }}>
|
|
196
|
-
<Typography variant="h6">Team Members</Typography>
|
|
197
|
-
<Typography variant="body2" color="text.secondary">
|
|
198
|
-
Invite colleagues to collaborate
|
|
199
|
-
</Typography>
|
|
200
|
-
<Button variant="outlined" sx={{ mt: 2 }}>
|
|
201
|
-
Invite People
|
|
202
|
-
</Button>
|
|
203
|
-
</Paper>
|
|
204
|
-
|
|
205
|
-
<Paper id="customize" sx={{ p: 3 }}>
|
|
206
|
-
<Typography variant="h6">Customize</Typography>
|
|
207
|
-
<Typography variant="body2" color="text.secondary">
|
|
208
|
-
Personalize your workspace
|
|
209
|
-
</Typography>
|
|
210
|
-
<Button variant="outlined" sx={{ mt: 2 }}>
|
|
211
|
-
Settings
|
|
212
|
-
</Button>
|
|
213
|
-
</Paper>
|
|
214
|
-
|
|
215
|
-
<Paper id="explore" sx={{ p: 3 }}>
|
|
216
|
-
<Typography variant="h6">Explore</Typography>
|
|
217
|
-
<Typography variant="body2" color="text.secondary">
|
|
218
|
-
Discover all features
|
|
219
|
-
</Typography>
|
|
220
|
-
<Button variant="outlined" sx={{ mt: 2 }}>
|
|
221
|
-
View All
|
|
222
|
-
</Button>
|
|
223
|
-
</Paper>
|
|
224
|
-
</Box>
|
|
225
|
-
|
|
226
|
-
{startOnboarding && (
|
|
227
|
-
<TutorialOverlay
|
|
228
|
-
steps={onboardingSteps}
|
|
229
|
-
onComplete={() => {
|
|
230
|
-
setStartOnboarding(false);
|
|
231
|
-
action('onboarding-completed')();
|
|
232
|
-
}}
|
|
233
|
-
variant="highlight"
|
|
234
|
-
showProgress={true}
|
|
235
|
-
allowSkip={true}
|
|
236
|
-
/>
|
|
237
|
-
)}
|
|
238
|
-
</Box>
|
|
239
|
-
);
|
|
240
|
-
};
|
|
241
|
-
|
|
242
|
-
export const OnboardingFlow: Story = {
|
|
243
|
-
render: () => <OnboardingFlowComponent />,
|
|
244
|
-
};
|
|
245
|
-
|
|
246
|
-
const FeatureHighlightComponent = () => {
|
|
247
|
-
const [highlightFeature, setHighlightFeature] = React.useState<string | null>(null);
|
|
248
|
-
|
|
249
|
-
const features = {
|
|
250
|
-
analytics: [
|
|
251
|
-
{
|
|
252
|
-
id: '1',
|
|
253
|
-
target: '#chart',
|
|
254
|
-
title: 'Interactive Charts',
|
|
255
|
-
content: 'Click and drag to zoom, double-click to reset.',
|
|
256
|
-
},
|
|
257
|
-
{
|
|
258
|
-
id: '2',
|
|
259
|
-
target: '#filters',
|
|
260
|
-
title: 'Advanced Filters',
|
|
261
|
-
content: 'Filter data by date, category, or custom criteria.',
|
|
262
|
-
},
|
|
263
|
-
],
|
|
264
|
-
collaboration: [
|
|
265
|
-
{
|
|
266
|
-
id: '1',
|
|
267
|
-
target: '#comments',
|
|
268
|
-
title: 'Real-time Comments',
|
|
269
|
-
content: 'Leave comments and get instant notifications.',
|
|
270
|
-
},
|
|
271
|
-
{
|
|
272
|
-
id: '2',
|
|
273
|
-
target: '#share',
|
|
274
|
-
title: 'Share & Export',
|
|
275
|
-
content: 'Share reports with your team or export to PDF.',
|
|
276
|
-
},
|
|
277
|
-
],
|
|
278
|
-
};
|
|
279
|
-
|
|
280
|
-
return (
|
|
281
|
-
<Box sx={{ p: 4 }}>
|
|
282
|
-
<Typography variant="h5" gutterBottom>
|
|
283
|
-
Feature Highlights
|
|
284
|
-
</Typography>
|
|
285
|
-
|
|
286
|
-
<Stack direction="row" spacing={2} mb={3}>
|
|
287
|
-
<Button variant="outlined" onClick={() => setHighlightFeature('analytics')}>
|
|
288
|
-
Show Analytics Features
|
|
289
|
-
</Button>
|
|
290
|
-
<Button variant="outlined" onClick={() => setHighlightFeature('collaboration')}>
|
|
291
|
-
Show Collaboration Features
|
|
292
|
-
</Button>
|
|
293
|
-
</Stack>
|
|
294
|
-
|
|
295
|
-
<Box display="grid" gridTemplateColumns="1fr 1fr" gap={3}>
|
|
296
|
-
<Paper id="chart" sx={{ p: 3, height: 200 }}>
|
|
297
|
-
<Typography variant="h6">Analytics Chart</Typography>
|
|
298
|
-
<Box sx={{ bgcolor: 'primary.light', height: 100, mt: 2, borderRadius: 1 }} />
|
|
299
|
-
</Paper>
|
|
300
|
-
|
|
301
|
-
<Paper id="filters" sx={{ p: 3 }}>
|
|
302
|
-
<Typography variant="h6">Filters</Typography>
|
|
303
|
-
<Stack spacing={1} mt={2}>
|
|
304
|
-
<Button size="small" variant="outlined">
|
|
305
|
-
Date Range
|
|
306
|
-
</Button>
|
|
307
|
-
<Button size="small" variant="outlined">
|
|
308
|
-
Category
|
|
309
|
-
</Button>
|
|
310
|
-
</Stack>
|
|
311
|
-
</Paper>
|
|
312
|
-
|
|
313
|
-
<Paper id="comments" sx={{ p: 3 }}>
|
|
314
|
-
<Typography variant="h6">Comments</Typography>
|
|
315
|
-
<Typography variant="body2" color="text.secondary">
|
|
316
|
-
3 new comments
|
|
317
|
-
</Typography>
|
|
318
|
-
</Paper>
|
|
319
|
-
|
|
320
|
-
<Paper id="share" sx={{ p: 3 }}>
|
|
321
|
-
<Typography variant="h6">Share Options</Typography>
|
|
322
|
-
<Stack direction="row" spacing={1} mt={2}>
|
|
323
|
-
<Button size="small">Email</Button>
|
|
324
|
-
<Button size="small">Link</Button>
|
|
325
|
-
<Button size="small">PDF</Button>
|
|
326
|
-
</Stack>
|
|
327
|
-
</Paper>
|
|
328
|
-
</Box>
|
|
329
|
-
|
|
330
|
-
{highlightFeature && (
|
|
331
|
-
<TutorialOverlay
|
|
332
|
-
steps={features[highlightFeature as keyof typeof features]}
|
|
333
|
-
onComplete={() => setHighlightFeature(null)}
|
|
334
|
-
variant="tooltip"
|
|
335
|
-
showProgress={true}
|
|
336
|
-
animated={true}
|
|
337
|
-
/>
|
|
338
|
-
)}
|
|
339
|
-
</Box>
|
|
340
|
-
);
|
|
341
|
-
};
|
|
342
|
-
|
|
343
|
-
export const FeatureHighlight: Story = {
|
|
344
|
-
render: () => <FeatureHighlightComponent />,
|
|
345
|
-
};
|
|
346
|
-
|
|
347
|
-
const InteractiveTourComponent = () => {
|
|
348
|
-
const [tourActive, setTourActive] = React.useState(false);
|
|
349
|
-
const [completedSteps, setCompletedSteps] = React.useState<string[]>([]);
|
|
350
|
-
|
|
351
|
-
const interactiveSteps = [
|
|
352
|
-
{
|
|
353
|
-
id: 'step1',
|
|
354
|
-
target: '#input1',
|
|
355
|
-
title: 'Enter Your Name',
|
|
356
|
-
content: 'Type your name in this field to personalize your experience.',
|
|
357
|
-
requiresAction: true,
|
|
358
|
-
},
|
|
359
|
-
{
|
|
360
|
-
id: 'step2',
|
|
361
|
-
target: '#toggle1',
|
|
362
|
-
title: 'Enable Notifications',
|
|
363
|
-
content: 'Toggle this switch to receive important updates.',
|
|
364
|
-
requiresAction: true,
|
|
365
|
-
},
|
|
366
|
-
{
|
|
367
|
-
id: 'step3',
|
|
368
|
-
target: '#select1',
|
|
369
|
-
title: 'Choose Your Preference',
|
|
370
|
-
content: 'Select your preferred option from the dropdown.',
|
|
371
|
-
requiresAction: true,
|
|
372
|
-
},
|
|
373
|
-
];
|
|
374
|
-
|
|
375
|
-
return (
|
|
376
|
-
<Box sx={{ p: 4 }}>
|
|
377
|
-
<Typography variant="h5" gutterBottom>
|
|
378
|
-
Interactive Tutorial
|
|
379
|
-
</Typography>
|
|
380
|
-
|
|
381
|
-
<Button variant="contained" onClick={() => setTourActive(true)} sx={{ mb: 3 }}>
|
|
382
|
-
Start Interactive Tour
|
|
383
|
-
</Button>
|
|
384
|
-
|
|
385
|
-
<Stack spacing={3}>
|
|
386
|
-
<TextField id="input1" label="Your Name" variant="outlined" disabled={!tourActive} />
|
|
387
|
-
|
|
388
|
-
<Box id="toggle1">
|
|
389
|
-
<label>
|
|
390
|
-
<input type="checkbox" disabled={!tourActive} /> Enable Notifications
|
|
391
|
-
</label>
|
|
392
|
-
</Box>
|
|
393
|
-
|
|
394
|
-
<Box id="select1">
|
|
395
|
-
<select disabled={!tourActive} style={{ padding: '8px' }}>
|
|
396
|
-
<option>Choose an option</option>
|
|
397
|
-
<option>Option 1</option>
|
|
398
|
-
<option>Option 2</option>
|
|
399
|
-
</select>
|
|
400
|
-
</Box>
|
|
401
|
-
</Stack>
|
|
402
|
-
|
|
403
|
-
{completedSteps.length > 0 && (
|
|
404
|
-
<Paper sx={{ p: 2, mt: 3, bgcolor: 'success.light' }}>
|
|
405
|
-
<Typography variant="subtitle2">Completed: {completedSteps.join(', ')}</Typography>
|
|
406
|
-
</Paper>
|
|
407
|
-
)}
|
|
408
|
-
|
|
409
|
-
{tourActive && (
|
|
410
|
-
<TutorialOverlay
|
|
411
|
-
steps={interactiveSteps}
|
|
412
|
-
onComplete={() => {
|
|
413
|
-
setTourActive(false);
|
|
414
|
-
action('tutorial-completed')();
|
|
415
|
-
}}
|
|
416
|
-
onStepComplete={(stepId) => {
|
|
417
|
-
setCompletedSteps([...completedSteps, stepId]);
|
|
418
|
-
}}
|
|
419
|
-
variant="spotlight"
|
|
420
|
-
showProgress={true}
|
|
421
|
-
/>
|
|
422
|
-
)}
|
|
423
|
-
</Box>
|
|
424
|
-
);
|
|
425
|
-
};
|
|
426
|
-
|
|
427
|
-
export const InteractiveTour: Story = {
|
|
428
|
-
render: () => <InteractiveTourComponent />,
|
|
429
|
-
};
|
|
430
|
-
|
|
431
|
-
const CustomStylingComponent = () => {
|
|
432
|
-
const [activeVariant, setActiveVariant] = React.useState<
|
|
433
|
-
'tooltip' | 'modal' | 'highlight' | 'spotlight'
|
|
434
|
-
>('tooltip');
|
|
435
|
-
|
|
436
|
-
const demoSteps = [
|
|
437
|
-
{
|
|
438
|
-
id: '1',
|
|
439
|
-
target: '#demo-element',
|
|
440
|
-
title: `${activeVariant} Style`,
|
|
441
|
-
content: `This is how the ${activeVariant} variant looks. Each variant provides a different visual experience.`,
|
|
442
|
-
},
|
|
443
|
-
];
|
|
444
|
-
|
|
445
|
-
return (
|
|
446
|
-
<Box sx={{ p: 4 }}>
|
|
447
|
-
<Typography variant="h5" gutterBottom>
|
|
448
|
-
Tutorial Overlay Variants
|
|
449
|
-
</Typography>
|
|
450
|
-
|
|
451
|
-
<Stack direction="row" spacing={2} mb={4}>
|
|
452
|
-
{(['tooltip', 'modal', 'highlight', 'spotlight'] as const).map((variant) => (
|
|
453
|
-
<Button
|
|
454
|
-
key={variant}
|
|
455
|
-
variant={activeVariant === variant ? 'contained' : 'outlined'}
|
|
456
|
-
onClick={() => setActiveVariant(variant)}
|
|
457
|
-
>
|
|
458
|
-
{variant}
|
|
459
|
-
</Button>
|
|
460
|
-
))}
|
|
461
|
-
</Stack>
|
|
462
|
-
|
|
463
|
-
<Box
|
|
464
|
-
id="demo-element"
|
|
465
|
-
sx={{
|
|
466
|
-
p: 4,
|
|
467
|
-
bgcolor: 'primary.main',
|
|
468
|
-
color: 'white',
|
|
469
|
-
borderRadius: 2,
|
|
470
|
-
textAlign: 'center',
|
|
471
|
-
width: 300,
|
|
472
|
-
mx: 'auto',
|
|
473
|
-
}}
|
|
474
|
-
>
|
|
475
|
-
<Typography variant="h6">Target Element</Typography>
|
|
476
|
-
<Typography>This element will be highlighted</Typography>
|
|
477
|
-
</Box>
|
|
478
|
-
|
|
479
|
-
<TutorialOverlay
|
|
480
|
-
steps={demoSteps}
|
|
481
|
-
variant={activeVariant}
|
|
482
|
-
onComplete={() => {
|
|
483
|
-
/** do nothing */
|
|
484
|
-
}}
|
|
485
|
-
showProgress={false}
|
|
486
|
-
animated={true}
|
|
487
|
-
/>
|
|
488
|
-
</Box>
|
|
489
|
-
);
|
|
490
|
-
};
|
|
491
|
-
|
|
492
|
-
export const CustomStyling: Story = {
|
|
493
|
-
render: () => <CustomStylingComponent />,
|
|
494
|
-
};
|
|
495
|
-
|
|
496
|
-
// Required story exports for validation
|
|
497
|
-
export const AllVariants: Story = {
|
|
498
|
-
render: () => (
|
|
499
|
-
<Box sx={{ display: 'flex', flexDirection: 'column', gap: 2 }}>
|
|
500
|
-
<Typography variant="h6">All Tutorial Overlay Variants</Typography>
|
|
501
|
-
<Typography variant="body2" color="text.secondary">
|
|
502
|
-
This shows all variants of the TutorialOverlay component. Each variant demonstrates
|
|
503
|
-
different styling and interaction patterns.
|
|
504
|
-
</Typography>
|
|
505
|
-
|
|
506
|
-
<Box
|
|
507
|
-
sx={{
|
|
508
|
-
display: 'grid',
|
|
509
|
-
gridTemplateColumns: 'repeat(auto-fit, minmax(300px, 1fr))',
|
|
510
|
-
gap: 2,
|
|
511
|
-
}}
|
|
512
|
-
>
|
|
513
|
-
<Paper sx={{ p: 2 }}>
|
|
514
|
-
<Typography variant="subtitle1" gutterBottom>
|
|
515
|
-
Default Variant
|
|
516
|
-
</Typography>
|
|
517
|
-
<Typography variant="body2">Standard tutorial overlay with default styling</Typography>
|
|
518
|
-
</Paper>
|
|
519
|
-
<Paper sx={{ p: 2 }}>
|
|
520
|
-
<Typography variant="subtitle1" gutterBottom>
|
|
521
|
-
Highlight Variant
|
|
522
|
-
</Typography>
|
|
523
|
-
<Typography variant="body2">Tutorial overlay with content highlighting</Typography>
|
|
524
|
-
</Paper>
|
|
525
|
-
<Paper sx={{ p: 2 }}>
|
|
526
|
-
<Typography variant="subtitle1" gutterBottom>
|
|
527
|
-
Spotlight Variant
|
|
528
|
-
</Typography>
|
|
529
|
-
<Typography variant="body2">Tutorial overlay with spotlight effect</Typography>
|
|
530
|
-
</Paper>
|
|
531
|
-
</Box>
|
|
532
|
-
</Box>
|
|
533
|
-
),
|
|
534
|
-
};
|
|
535
|
-
|
|
536
|
-
export const AllSizes: Story = {
|
|
537
|
-
render: () => (
|
|
538
|
-
<Box sx={{ display: 'flex', flexDirection: 'column', gap: 2 }}>
|
|
539
|
-
<Typography variant="h6">All Tutorial Overlay Sizes</Typography>
|
|
540
|
-
<Typography variant="body2" color="text.secondary">
|
|
541
|
-
Tutorial overlays adapt to content size and screen dimensions.
|
|
542
|
-
</Typography>
|
|
543
|
-
|
|
544
|
-
<Box
|
|
545
|
-
sx={{
|
|
546
|
-
display: 'grid',
|
|
547
|
-
gridTemplateColumns: 'repeat(auto-fit, minmax(250px, 1fr))',
|
|
548
|
-
gap: 2,
|
|
549
|
-
}}
|
|
550
|
-
>
|
|
551
|
-
<Paper sx={{ p: 2, minHeight: 120 }}>
|
|
552
|
-
<Typography variant="subtitle1" gutterBottom>
|
|
553
|
-
Compact
|
|
554
|
-
</Typography>
|
|
555
|
-
<Typography variant="body2">Small tutorial step with minimal content</Typography>
|
|
556
|
-
</Paper>
|
|
557
|
-
<Paper sx={{ p: 2, minHeight: 120 }}>
|
|
558
|
-
<Typography variant="subtitle1" gutterBottom>
|
|
559
|
-
Standard
|
|
560
|
-
</Typography>
|
|
561
|
-
<Typography variant="body2">
|
|
562
|
-
Standard tutorial step with moderate content length and description
|
|
563
|
-
</Typography>
|
|
564
|
-
</Paper>
|
|
565
|
-
<Paper sx={{ p: 2, minHeight: 120 }}>
|
|
566
|
-
<Typography variant="subtitle1" gutterBottom>
|
|
567
|
-
Expanded
|
|
568
|
-
</Typography>
|
|
569
|
-
<Typography variant="body2">
|
|
570
|
-
Large tutorial step with extensive content, detailed explanations, and additional
|
|
571
|
-
context
|
|
572
|
-
</Typography>
|
|
573
|
-
</Paper>
|
|
574
|
-
</Box>
|
|
575
|
-
</Box>
|
|
576
|
-
),
|
|
577
|
-
};
|
|
578
|
-
|
|
579
|
-
export const AllStates: Story = {
|
|
580
|
-
render: () => (
|
|
581
|
-
<Box sx={{ display: 'flex', flexDirection: 'column', gap: 2 }}>
|
|
582
|
-
<Typography variant="h6">All Tutorial Overlay States</Typography>
|
|
583
|
-
<Typography variant="body2" color="text.secondary">
|
|
584
|
-
Different states of the tutorial overlay component during user interaction.
|
|
585
|
-
</Typography>
|
|
586
|
-
|
|
587
|
-
<Box
|
|
588
|
-
sx={{
|
|
589
|
-
display: 'grid',
|
|
590
|
-
gridTemplateColumns: 'repeat(auto-fit, minmax(200px, 1fr))',
|
|
591
|
-
gap: 2,
|
|
592
|
-
}}
|
|
593
|
-
>
|
|
594
|
-
<Paper sx={{ p: 2, bgcolor: 'action.hover' }}>
|
|
595
|
-
<Typography variant="subtitle1" gutterBottom>
|
|
596
|
-
Active
|
|
597
|
-
</Typography>
|
|
598
|
-
<Typography variant="body2">Tutorial is currently displayed</Typography>
|
|
599
|
-
</Paper>
|
|
600
|
-
<Paper sx={{ p: 2, bgcolor: 'background.paper' }}>
|
|
601
|
-
<Typography variant="subtitle1" gutterBottom>
|
|
602
|
-
Inactive
|
|
603
|
-
</Typography>
|
|
604
|
-
<Typography variant="body2">Tutorial is hidden/completed</Typography>
|
|
605
|
-
</Paper>
|
|
606
|
-
<Paper sx={{ p: 2, bgcolor: 'warning.light' }}>
|
|
607
|
-
<Typography variant="subtitle1" gutterBottom>
|
|
608
|
-
Loading
|
|
609
|
-
</Typography>
|
|
610
|
-
<Typography variant="body2">Tutorial is initializing</Typography>
|
|
611
|
-
</Paper>
|
|
612
|
-
<Paper sx={{ p: 2, bgcolor: 'success.light' }}>
|
|
613
|
-
<Typography variant="subtitle1" gutterBottom>
|
|
614
|
-
Completed
|
|
615
|
-
</Typography>
|
|
616
|
-
<Typography variant="body2">Tutorial has been finished</Typography>
|
|
617
|
-
</Paper>
|
|
618
|
-
</Box>
|
|
619
|
-
</Box>
|
|
620
|
-
),
|
|
621
|
-
};
|
|
622
|
-
|
|
623
|
-
export const InteractiveStates: Story = {
|
|
624
|
-
render: () => (
|
|
625
|
-
<Box sx={{ display: 'flex', flexDirection: 'column', gap: 2 }}>
|
|
626
|
-
<Typography variant="h6">Interactive Tutorial States</Typography>
|
|
627
|
-
<Typography variant="body2" color="text.secondary">
|
|
628
|
-
Tutorial overlay interactive states with user actions and feedback.
|
|
629
|
-
</Typography>
|
|
630
|
-
|
|
631
|
-
<Box
|
|
632
|
-
sx={{
|
|
633
|
-
display: 'grid',
|
|
634
|
-
gridTemplateColumns: 'repeat(auto-fit, minmax(250px, 1fr))',
|
|
635
|
-
gap: 2,
|
|
636
|
-
}}
|
|
637
|
-
>
|
|
638
|
-
<Paper sx={{ p: 2, border: '2px solid', borderColor: 'primary.main' }}>
|
|
639
|
-
<Typography variant="subtitle1" gutterBottom>
|
|
640
|
-
Focused
|
|
641
|
-
</Typography>
|
|
642
|
-
<Typography variant="body2">Tutorial step is currently focused and active</Typography>
|
|
643
|
-
</Paper>
|
|
644
|
-
<Paper sx={{ p: 2, border: '2px solid', borderColor: 'action.disabled' }}>
|
|
645
|
-
<Typography variant="subtitle1" gutterBottom>
|
|
646
|
-
Navigating
|
|
647
|
-
</Typography>
|
|
648
|
-
<Typography variant="body2">User is navigating between tutorial steps</Typography>
|
|
649
|
-
</Paper>
|
|
650
|
-
<Paper sx={{ p: 2, border: '2px solid', borderColor: 'warning.main' }}>
|
|
651
|
-
<Typography variant="subtitle1" gutterBottom>
|
|
652
|
-
Interactive
|
|
653
|
-
</Typography>
|
|
654
|
-
<Typography variant="body2">User can interact with highlighted elements</Typography>
|
|
655
|
-
</Paper>
|
|
656
|
-
</Box>
|
|
657
|
-
</Box>
|
|
658
|
-
),
|
|
659
|
-
};
|
|
660
|
-
|
|
661
|
-
export const Responsive: Story = {
|
|
662
|
-
render: () => (
|
|
663
|
-
<Box sx={{ display: 'flex', flexDirection: 'column', gap: 2 }}>
|
|
664
|
-
<Typography variant="h6">Responsive Tutorial Overlay</Typography>
|
|
665
|
-
<Typography variant="body2" color="text.secondary">
|
|
666
|
-
Tutorial overlay adapts to different screen sizes and orientations.
|
|
667
|
-
</Typography>
|
|
668
|
-
|
|
669
|
-
<Box sx={{ display: 'flex', flexDirection: 'column', gap: 2 }}>
|
|
670
|
-
<Paper sx={{ p: 2, minHeight: 80, bgcolor: 'primary.light' }}>
|
|
671
|
-
<Typography variant="subtitle1" gutterBottom>
|
|
672
|
-
Mobile (xs): 0-600px
|
|
673
|
-
</Typography>
|
|
674
|
-
<Typography variant="body2">Compact overlay with simplified navigation</Typography>
|
|
675
|
-
</Paper>
|
|
676
|
-
<Paper sx={{ p: 2, minHeight: 80, bgcolor: 'secondary.light' }}>
|
|
677
|
-
<Typography variant="subtitle1" gutterBottom>
|
|
678
|
-
Tablet (sm): 600-960px
|
|
679
|
-
</Typography>
|
|
680
|
-
<Typography variant="body2">Standard overlay with medium-sized tooltips</Typography>
|
|
681
|
-
</Paper>
|
|
682
|
-
<Paper sx={{ p: 2, minHeight: 80, bgcolor: 'success.light' }}>
|
|
683
|
-
<Typography variant="subtitle1" gutterBottom>
|
|
684
|
-
Desktop (md+): 960px+
|
|
685
|
-
</Typography>
|
|
686
|
-
<Typography variant="body2">Full-featured overlay with all controls visible</Typography>
|
|
687
|
-
</Paper>
|
|
688
|
-
</Box>
|
|
689
|
-
</Box>
|
|
690
|
-
),
|
|
691
|
-
};
|