@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,473 +0,0 @@
|
|
|
1
|
-
import { Box, Typography } from '@mui/material';
|
|
2
|
-
import type { Meta, StoryObj } from '@storybook/react-vite';
|
|
3
|
-
import { Edit3, FileText, MessageCircle, Star } from 'lucide-react';
|
|
4
|
-
|
|
5
|
-
import { Textarea } from './Textarea';
|
|
6
|
-
|
|
7
|
-
const meta: Meta<typeof Textarea> = {
|
|
8
|
-
title: 'Form/Textarea',
|
|
9
|
-
component: Textarea,
|
|
10
|
-
parameters: {
|
|
11
|
-
layout: 'padded',
|
|
12
|
-
},
|
|
13
|
-
tags: ['autodocs', 'component:Textarea'],
|
|
14
|
-
argTypes: {
|
|
15
|
-
variant: {
|
|
16
|
-
control: { type: 'select' },
|
|
17
|
-
options: ['default', 'autosize', 'resizable', 'rich'],
|
|
18
|
-
},
|
|
19
|
-
color: {
|
|
20
|
-
control: { type: 'select' },
|
|
21
|
-
options: ['primary', 'secondary', 'success', 'warning', 'danger', 'neutral'],
|
|
22
|
-
},
|
|
23
|
-
size: {
|
|
24
|
-
control: { type: 'select' },
|
|
25
|
-
options: ['xs', 'sm', 'md', 'lg', 'xl'],
|
|
26
|
-
},
|
|
27
|
-
iconPosition: {
|
|
28
|
-
control: { type: 'select' },
|
|
29
|
-
options: ['start', 'end'],
|
|
30
|
-
},
|
|
31
|
-
},
|
|
32
|
-
};
|
|
33
|
-
|
|
34
|
-
export default meta;
|
|
35
|
-
type Story = StoryObj<typeof meta>;
|
|
36
|
-
|
|
37
|
-
export const Default: Story = {
|
|
38
|
-
args: {
|
|
39
|
-
placeholder: 'Enter your message...',
|
|
40
|
-
variant: 'default',
|
|
41
|
-
size: 'md',
|
|
42
|
-
color: 'primary',
|
|
43
|
-
},
|
|
44
|
-
};
|
|
45
|
-
|
|
46
|
-
export const WithLabel: Story = {
|
|
47
|
-
args: {
|
|
48
|
-
label: 'Your Message',
|
|
49
|
-
placeholder: 'Type your message here...',
|
|
50
|
-
helperText: 'This field is required',
|
|
51
|
-
},
|
|
52
|
-
};
|
|
53
|
-
|
|
54
|
-
export const Variants: Story = {
|
|
55
|
-
render: () => (
|
|
56
|
-
<Box sx={{ display: 'flex', flexDirection: 'column', gap: 3 }}>
|
|
57
|
-
<Box>
|
|
58
|
-
<Typography variant="h6" gutterBottom>
|
|
59
|
-
Default
|
|
60
|
-
</Typography>
|
|
61
|
-
<Textarea placeholder="Default textarea..." />
|
|
62
|
-
</Box>
|
|
63
|
-
|
|
64
|
-
<Box>
|
|
65
|
-
<Typography variant="h6" gutterBottom>
|
|
66
|
-
Autosize
|
|
67
|
-
</Typography>
|
|
68
|
-
<Textarea
|
|
69
|
-
variant="autosize"
|
|
70
|
-
placeholder="This textarea will grow as you type..."
|
|
71
|
-
minRows={2}
|
|
72
|
-
maxRows={6}
|
|
73
|
-
/>
|
|
74
|
-
</Box>
|
|
75
|
-
|
|
76
|
-
<Box>
|
|
77
|
-
<Typography variant="h6" gutterBottom>
|
|
78
|
-
Resizable
|
|
79
|
-
</Typography>
|
|
80
|
-
<Textarea variant="resizable" placeholder="You can manually resize this textarea..." />
|
|
81
|
-
</Box>
|
|
82
|
-
|
|
83
|
-
<Box>
|
|
84
|
-
<Typography variant="h6" gutterBottom>
|
|
85
|
-
Rich Text Editor
|
|
86
|
-
</Typography>
|
|
87
|
-
<Textarea
|
|
88
|
-
variant="rich"
|
|
89
|
-
placeholder="Rich text editor with formatting tools..."
|
|
90
|
-
label="Rich Text Editor"
|
|
91
|
-
helperText="Format your content with bold, italic, lists, and more"
|
|
92
|
-
/>
|
|
93
|
-
</Box>
|
|
94
|
-
|
|
95
|
-
<Box>
|
|
96
|
-
<Typography variant="h6" gutterBottom>
|
|
97
|
-
Rich Text with Glass Effect
|
|
98
|
-
</Typography>
|
|
99
|
-
<Textarea
|
|
100
|
-
variant="rich"
|
|
101
|
-
glass
|
|
102
|
-
placeholder="Rich textarea with glass effect..."
|
|
103
|
-
label="Glass Rich Editor"
|
|
104
|
-
/>
|
|
105
|
-
</Box>
|
|
106
|
-
</Box>
|
|
107
|
-
),
|
|
108
|
-
};
|
|
109
|
-
|
|
110
|
-
export const Colors: Story = {
|
|
111
|
-
render: () => (
|
|
112
|
-
<Box
|
|
113
|
-
sx={{ display: 'grid', gridTemplateColumns: 'repeat(auto-fit, minmax(300px, 1fr))', gap: 2 }}
|
|
114
|
-
>
|
|
115
|
-
<Textarea color="primary" placeholder="Primary color" label="Primary" />
|
|
116
|
-
<Textarea color="secondary" placeholder="Secondary color" label="Secondary" />
|
|
117
|
-
<Textarea color="success" placeholder="Success color" label="Success" />
|
|
118
|
-
<Textarea color="warning" placeholder="Warning color" label="Warning" />
|
|
119
|
-
<Textarea color="danger" placeholder="Danger color" label="Danger" />
|
|
120
|
-
<Textarea color="neutral" placeholder="Neutral color" label="Neutral" />
|
|
121
|
-
</Box>
|
|
122
|
-
),
|
|
123
|
-
};
|
|
124
|
-
|
|
125
|
-
export const Sizes: Story = {
|
|
126
|
-
render: () => (
|
|
127
|
-
<Box sx={{ display: 'flex', flexDirection: 'column', gap: 2 }}>
|
|
128
|
-
<Textarea size="xs" placeholder="Extra small textarea" label="Extra Small (xs)" />
|
|
129
|
-
<Textarea size="sm" placeholder="Small textarea" label="Small (sm)" />
|
|
130
|
-
<Textarea size="md" placeholder="Medium textarea" label="Medium (md)" />
|
|
131
|
-
<Textarea size="lg" placeholder="Large textarea" label="Large (lg)" />
|
|
132
|
-
<Textarea size="xl" placeholder="Extra large textarea" label="Extra Large (xl)" />
|
|
133
|
-
</Box>
|
|
134
|
-
),
|
|
135
|
-
};
|
|
136
|
-
|
|
137
|
-
export const WithIcons: Story = {
|
|
138
|
-
render: () => (
|
|
139
|
-
<Box sx={{ display: 'flex', flexDirection: 'column', gap: 3 }}>
|
|
140
|
-
<Textarea
|
|
141
|
-
icon={<MessageCircle size={20} />}
|
|
142
|
-
placeholder="Message with start icon..."
|
|
143
|
-
label="Start Icon"
|
|
144
|
-
/>
|
|
145
|
-
|
|
146
|
-
<Textarea
|
|
147
|
-
icon={<Edit3 size={20} />}
|
|
148
|
-
iconPosition="end"
|
|
149
|
-
placeholder="Message with end icon..."
|
|
150
|
-
label="End Icon"
|
|
151
|
-
/>
|
|
152
|
-
|
|
153
|
-
<Textarea
|
|
154
|
-
icon={<FileText size={20} />}
|
|
155
|
-
glass
|
|
156
|
-
placeholder="Glass effect with icon..."
|
|
157
|
-
label="Glass + Icon"
|
|
158
|
-
/>
|
|
159
|
-
</Box>
|
|
160
|
-
),
|
|
161
|
-
};
|
|
162
|
-
|
|
163
|
-
export const SpecialEffects: Story = {
|
|
164
|
-
render: () => (
|
|
165
|
-
<Box
|
|
166
|
-
sx={{ display: 'grid', gridTemplateColumns: 'repeat(auto-fit, minmax(300px, 1fr))', gap: 3 }}
|
|
167
|
-
>
|
|
168
|
-
<Box>
|
|
169
|
-
<Typography variant="h6" gutterBottom>
|
|
170
|
-
Glass Morphism
|
|
171
|
-
</Typography>
|
|
172
|
-
<Textarea glass placeholder="Glass morphism effect..." icon={<Star size={20} />} />
|
|
173
|
-
</Box>
|
|
174
|
-
|
|
175
|
-
<Box>
|
|
176
|
-
<Typography variant="h6" gutterBottom>
|
|
177
|
-
Gradient Border
|
|
178
|
-
</Typography>
|
|
179
|
-
<Textarea gradient placeholder="Gradient border effect..." color="secondary" />
|
|
180
|
-
</Box>
|
|
181
|
-
|
|
182
|
-
<Box>
|
|
183
|
-
<Typography variant="h6" gutterBottom>
|
|
184
|
-
Glow Effect
|
|
185
|
-
</Typography>
|
|
186
|
-
<Textarea glow placeholder="Glowing textarea..." color="success" />
|
|
187
|
-
</Box>
|
|
188
|
-
|
|
189
|
-
<Box>
|
|
190
|
-
<Typography variant="h6" gutterBottom>
|
|
191
|
-
Glass Label
|
|
192
|
-
</Typography>
|
|
193
|
-
<Textarea glassLabel label="Glass Label" placeholder="Textarea with glass label..." />
|
|
194
|
-
</Box>
|
|
195
|
-
</Box>
|
|
196
|
-
),
|
|
197
|
-
};
|
|
198
|
-
|
|
199
|
-
export const ErrorStates: Story = {
|
|
200
|
-
render: () => (
|
|
201
|
-
<Box sx={{ display: 'flex', flexDirection: 'column', gap: 3 }}>
|
|
202
|
-
<Textarea
|
|
203
|
-
error
|
|
204
|
-
label="Error State"
|
|
205
|
-
placeholder="This field has an error..."
|
|
206
|
-
helperText="This field is required"
|
|
207
|
-
/>
|
|
208
|
-
|
|
209
|
-
<Textarea
|
|
210
|
-
error
|
|
211
|
-
glass
|
|
212
|
-
label="Glass + Error"
|
|
213
|
-
placeholder="Glass effect with error..."
|
|
214
|
-
helperText="Please fix this error"
|
|
215
|
-
icon={<MessageCircle size={20} />}
|
|
216
|
-
/>
|
|
217
|
-
</Box>
|
|
218
|
-
),
|
|
219
|
-
};
|
|
220
|
-
|
|
221
|
-
export const RichTextShowcase: Story = {
|
|
222
|
-
render: () => (
|
|
223
|
-
<Box sx={{ display: 'flex', flexDirection: 'column', gap: 3 }}>
|
|
224
|
-
<Box>
|
|
225
|
-
<Typography variant="h6" gutterBottom>
|
|
226
|
-
Rich Text Editor - Primary
|
|
227
|
-
</Typography>
|
|
228
|
-
<Textarea
|
|
229
|
-
variant="rich"
|
|
230
|
-
color="primary"
|
|
231
|
-
placeholder="Start writing your content..."
|
|
232
|
-
label="Content Editor"
|
|
233
|
-
helperText="Use the toolbar to format your text"
|
|
234
|
-
/>
|
|
235
|
-
</Box>
|
|
236
|
-
|
|
237
|
-
<Box>
|
|
238
|
-
<Typography variant="h6" gutterBottom>
|
|
239
|
-
Rich Text with Character Limit
|
|
240
|
-
</Typography>
|
|
241
|
-
<Textarea
|
|
242
|
-
variant="rich"
|
|
243
|
-
color="secondary"
|
|
244
|
-
placeholder="Limited character content..."
|
|
245
|
-
label="Limited Editor"
|
|
246
|
-
maxLength={500}
|
|
247
|
-
helperText="Maximum 500 characters"
|
|
248
|
-
/>
|
|
249
|
-
</Box>
|
|
250
|
-
|
|
251
|
-
<Box>
|
|
252
|
-
<Typography variant="h6" gutterBottom>
|
|
253
|
-
Glass Rich Editor
|
|
254
|
-
</Typography>
|
|
255
|
-
<Textarea
|
|
256
|
-
variant="rich"
|
|
257
|
-
glass
|
|
258
|
-
glassLabel
|
|
259
|
-
color="success"
|
|
260
|
-
placeholder="Beautiful glass effect editor..."
|
|
261
|
-
label="Premium Editor"
|
|
262
|
-
/>
|
|
263
|
-
</Box>
|
|
264
|
-
</Box>
|
|
265
|
-
),
|
|
266
|
-
};
|
|
267
|
-
|
|
268
|
-
export const Playground: Story = {
|
|
269
|
-
args: {
|
|
270
|
-
placeholder: 'Playground textarea...',
|
|
271
|
-
label: 'Playground',
|
|
272
|
-
helperText: 'Try different combinations',
|
|
273
|
-
variant: 'default',
|
|
274
|
-
size: 'md',
|
|
275
|
-
color: 'primary',
|
|
276
|
-
glass: false,
|
|
277
|
-
gradient: false,
|
|
278
|
-
glow: false,
|
|
279
|
-
glassLabel: false,
|
|
280
|
-
error: false,
|
|
281
|
-
iconPosition: 'start',
|
|
282
|
-
},
|
|
283
|
-
};
|
|
284
|
-
|
|
285
|
-
// Required story exports for validation
|
|
286
|
-
export const AllVariants: Story = {
|
|
287
|
-
render: () => (
|
|
288
|
-
<Box sx={{ display: 'flex', flexDirection: 'column', gap: 3 }}>
|
|
289
|
-
<Box>
|
|
290
|
-
<Typography variant="h6" gutterBottom>
|
|
291
|
-
Default
|
|
292
|
-
</Typography>
|
|
293
|
-
<Textarea placeholder="Default textarea..." />
|
|
294
|
-
</Box>
|
|
295
|
-
|
|
296
|
-
<Box>
|
|
297
|
-
<Typography variant="h6" gutterBottom>
|
|
298
|
-
Autosize
|
|
299
|
-
</Typography>
|
|
300
|
-
<Textarea
|
|
301
|
-
variant="autosize"
|
|
302
|
-
placeholder="This textarea will grow as you type..."
|
|
303
|
-
minRows={2}
|
|
304
|
-
maxRows={6}
|
|
305
|
-
/>
|
|
306
|
-
</Box>
|
|
307
|
-
|
|
308
|
-
<Box>
|
|
309
|
-
<Typography variant="h6" gutterBottom>
|
|
310
|
-
Resizable
|
|
311
|
-
</Typography>
|
|
312
|
-
<Textarea variant="resizable" placeholder="You can manually resize this textarea..." />
|
|
313
|
-
</Box>
|
|
314
|
-
|
|
315
|
-
<Box>
|
|
316
|
-
<Typography variant="h6" gutterBottom>
|
|
317
|
-
Rich Text Editor
|
|
318
|
-
</Typography>
|
|
319
|
-
<Textarea
|
|
320
|
-
variant="rich"
|
|
321
|
-
placeholder="Rich text editor with formatting tools..."
|
|
322
|
-
label="Rich Text Editor"
|
|
323
|
-
helperText="Format your content with bold, italic, lists, and more"
|
|
324
|
-
/>
|
|
325
|
-
</Box>
|
|
326
|
-
</Box>
|
|
327
|
-
),
|
|
328
|
-
};
|
|
329
|
-
|
|
330
|
-
export const AllSizes: Story = {
|
|
331
|
-
render: () => (
|
|
332
|
-
<Box sx={{ display: 'flex', flexDirection: 'column', gap: 2 }}>
|
|
333
|
-
<Textarea size="xs" placeholder="Extra small textarea" label="Extra Small (xs)" />
|
|
334
|
-
<Textarea size="sm" placeholder="Small textarea" label="Small (sm)" />
|
|
335
|
-
<Textarea size="md" placeholder="Medium textarea" label="Medium (md)" />
|
|
336
|
-
<Textarea size="lg" placeholder="Large textarea" label="Large (lg)" />
|
|
337
|
-
<Textarea size="xl" placeholder="Extra large textarea" label="Extra Large (xl)" />
|
|
338
|
-
</Box>
|
|
339
|
-
),
|
|
340
|
-
};
|
|
341
|
-
|
|
342
|
-
export const AllStates: Story = {
|
|
343
|
-
render: () => (
|
|
344
|
-
<Box sx={{ display: 'flex', flexDirection: 'column', gap: 3 }}>
|
|
345
|
-
<Textarea
|
|
346
|
-
label="Normal State"
|
|
347
|
-
placeholder="Normal state textarea..."
|
|
348
|
-
helperText="Normal helper text"
|
|
349
|
-
/>
|
|
350
|
-
|
|
351
|
-
<Textarea
|
|
352
|
-
disabled
|
|
353
|
-
label="Disabled State"
|
|
354
|
-
placeholder="Disabled textarea..."
|
|
355
|
-
helperText="This field is disabled"
|
|
356
|
-
/>
|
|
357
|
-
|
|
358
|
-
<Textarea
|
|
359
|
-
readOnly
|
|
360
|
-
label="Read Only State"
|
|
361
|
-
value="This content is read-only"
|
|
362
|
-
helperText="Read-only field"
|
|
363
|
-
/>
|
|
364
|
-
|
|
365
|
-
<Textarea
|
|
366
|
-
error
|
|
367
|
-
label="Error State"
|
|
368
|
-
placeholder="This field has an error..."
|
|
369
|
-
helperText="This field is required"
|
|
370
|
-
/>
|
|
371
|
-
|
|
372
|
-
<Textarea
|
|
373
|
-
required
|
|
374
|
-
label="Required State"
|
|
375
|
-
placeholder="This field is required..."
|
|
376
|
-
helperText="Please fill this field"
|
|
377
|
-
/>
|
|
378
|
-
</Box>
|
|
379
|
-
),
|
|
380
|
-
};
|
|
381
|
-
|
|
382
|
-
export const InteractiveStates: Story = {
|
|
383
|
-
render: () => (
|
|
384
|
-
<Box sx={{ display: 'flex', flexDirection: 'column', gap: 3 }}>
|
|
385
|
-
<Textarea
|
|
386
|
-
label="Hover State"
|
|
387
|
-
placeholder="Hover over this textarea..."
|
|
388
|
-
helperText="Hover effect active"
|
|
389
|
-
/>
|
|
390
|
-
|
|
391
|
-
<Textarea
|
|
392
|
-
autoFocus
|
|
393
|
-
label="Focus State"
|
|
394
|
-
placeholder="This textarea is focused..."
|
|
395
|
-
helperText="Focus effect active"
|
|
396
|
-
/>
|
|
397
|
-
|
|
398
|
-
<Textarea
|
|
399
|
-
label="Active State"
|
|
400
|
-
placeholder="Type in this textarea..."
|
|
401
|
-
helperText="Interactive state demonstration"
|
|
402
|
-
/>
|
|
403
|
-
|
|
404
|
-
<Textarea
|
|
405
|
-
glass
|
|
406
|
-
label="Glass Interactive"
|
|
407
|
-
placeholder="Glass effect with interactions..."
|
|
408
|
-
helperText="Glass morphism with hover effects"
|
|
409
|
-
/>
|
|
410
|
-
</Box>
|
|
411
|
-
),
|
|
412
|
-
};
|
|
413
|
-
|
|
414
|
-
export const Responsive: Story = {
|
|
415
|
-
render: () => (
|
|
416
|
-
<Box sx={{ display: 'flex', flexDirection: 'column', gap: 3 }}>
|
|
417
|
-
<Box>
|
|
418
|
-
<Typography variant="h6" gutterBottom>
|
|
419
|
-
Mobile (xs)
|
|
420
|
-
</Typography>
|
|
421
|
-
<Box sx={{ maxWidth: 320 }}>
|
|
422
|
-
<Textarea
|
|
423
|
-
size="sm"
|
|
424
|
-
placeholder="Mobile optimized textarea..."
|
|
425
|
-
label="Mobile Size"
|
|
426
|
-
helperText="Optimized for mobile devices"
|
|
427
|
-
/>
|
|
428
|
-
</Box>
|
|
429
|
-
</Box>
|
|
430
|
-
|
|
431
|
-
<Box>
|
|
432
|
-
<Typography variant="h6" gutterBottom>
|
|
433
|
-
Tablet (md)
|
|
434
|
-
</Typography>
|
|
435
|
-
<Box sx={{ maxWidth: 768 }}>
|
|
436
|
-
<Textarea
|
|
437
|
-
size="md"
|
|
438
|
-
placeholder="Tablet optimized textarea..."
|
|
439
|
-
label="Tablet Size"
|
|
440
|
-
helperText="Optimized for tablet devices"
|
|
441
|
-
/>
|
|
442
|
-
</Box>
|
|
443
|
-
</Box>
|
|
444
|
-
|
|
445
|
-
<Box>
|
|
446
|
-
<Typography variant="h6" gutterBottom>
|
|
447
|
-
Desktop (lg)
|
|
448
|
-
</Typography>
|
|
449
|
-
<Box sx={{ maxWidth: 1024 }}>
|
|
450
|
-
<Textarea
|
|
451
|
-
size="lg"
|
|
452
|
-
placeholder="Desktop optimized textarea..."
|
|
453
|
-
label="Desktop Size"
|
|
454
|
-
helperText="Optimized for desktop devices"
|
|
455
|
-
/>
|
|
456
|
-
</Box>
|
|
457
|
-
</Box>
|
|
458
|
-
|
|
459
|
-
<Box>
|
|
460
|
-
<Typography variant="h6" gutterBottom>
|
|
461
|
-
Full Width Responsive
|
|
462
|
-
</Typography>
|
|
463
|
-
<Textarea
|
|
464
|
-
variant="autosize"
|
|
465
|
-
placeholder="This textarea adapts to container width..."
|
|
466
|
-
label="Responsive Textarea"
|
|
467
|
-
helperText="Adapts to container width and content height"
|
|
468
|
-
sx={{ width: '100%' }}
|
|
469
|
-
/>
|
|
470
|
-
</Box>
|
|
471
|
-
</Box>
|
|
472
|
-
),
|
|
473
|
-
};
|