aural-ui 3.0.7 → 4.1.0
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/dist/components/aspect-ratio/AspectRatio.stories.tsx +290 -1199
- package/dist/components/avatar/Avatar.stories.tsx +235 -237
- package/dist/components/badge/Badge.stories.tsx +379 -116
- package/dist/components/banner/Banner.stories.tsx +445 -391
- package/dist/components/breadcrumb/Breadcrumb.stories.tsx +453 -199
- package/dist/components/button/Button.stories.tsx +585 -230
- package/dist/components/button/index.tsx +7 -7
- package/dist/components/card/Card.stories.tsx +619 -301
- package/dist/components/char-count/CharCount.stories.tsx +350 -248
- package/dist/components/checkbox/Checkbox.stories.tsx +309 -167
- package/dist/components/chip/Chip.stories.tsx +362 -168
- package/dist/components/circular-loader/CircularLoader.stories.tsx +221 -620
- package/dist/components/clamp-lines/ClampLines.stories.tsx +246 -117
- package/dist/components/collapsible/Collapsible.stories.tsx +391 -252
- package/dist/components/command/Command.stories.tsx +533 -856
- package/dist/components/dialog/Dialog.stories.tsx +505 -949
- package/dist/components/divider/Divider.stories.tsx +265 -502
- package/dist/components/dot-loader/DotLoader.stories.tsx +256 -257
- package/dist/components/drawer/Drawer.stories.tsx +659 -993
- package/dist/components/drawer/index.tsx +3 -3
- package/dist/components/dropdown/Dropdown.stories.tsx +643 -1018
- package/dist/components/form/Form.stories.tsx +560 -274
- package/dist/components/helper-text/HelperText.stories.tsx +199 -200
- package/dist/components/hover-card/HoverCard.stories.tsx +318 -1221
- package/dist/components/icon-button/IconButton.stories.tsx +837 -194
- package/dist/components/if-else/if-else.stories.tsx +370 -83
- package/dist/components/input/Input.stories.tsx +436 -368
- package/dist/components/label/Label.stories.tsx +156 -154
- package/dist/components/list/List.stories.tsx +485 -822
- package/dist/components/marquee/Marquee.stories.tsx +356 -694
- package/dist/components/otp-inputs/OtpInputs.stories.tsx +352 -410
- package/dist/components/overlay/Overlay.stories.tsx +452 -818
- package/dist/components/overlay/index.tsx +4 -4
- package/dist/components/pagination/Pagination.stories.tsx +721 -210
- package/dist/components/popover/Popover.stories.tsx +484 -873
- package/dist/components/radio/Radio.stories.tsx +432 -124
- package/dist/components/resizable/Resizable.stories.tsx +496 -752
- package/dist/components/scroll-area/ScrollArea.stories.tsx +384 -1006
- package/dist/components/search/Search.stories.tsx +314 -575
- package/dist/components/select/Select.stories.tsx +684 -787
- package/dist/components/sheet/Sheet.stories.tsx +671 -936
- package/dist/components/skelton/Skelton.stories.tsx +230 -764
- package/dist/components/slider/Slider.stories.tsx +384 -737
- package/dist/components/stepper/Stepper.stories.tsx +371 -514
- package/dist/components/switch/Switch.stories.tsx +461 -208
- package/dist/components/switch-case/SwitchCase.stories.tsx +367 -188
- package/dist/components/table/Table.stories.tsx +770 -914
- package/dist/components/tabs/Tabs.stories.tsx +459 -1400
- package/dist/components/tag/Tag.stories.tsx +714 -542
- package/dist/components/textarea/TextArea.stories.tsx +621 -562
- package/dist/components/thumbnail-tags/ThumbnailTags.stories.tsx +228 -148
- package/dist/components/toast/Toast.stories.tsx +452 -1333
- package/dist/components/toggle/Toggle.stories.tsx +488 -909
- package/dist/components/tooltip/Tooltip.stories.tsx +344 -1372
- package/dist/components/typography/Typography.stories.tsx +406 -89
- package/dist/hooks/use-change-state/UseChangeState.stories.tsx +309 -606
- package/dist/hooks/use-previous/UsePrevious.stories.tsx +367 -917
- package/dist/hooks/use-standalone-pagination/UseStandalonePagination.stories.tsx +639 -867
- package/dist/icons/Icons.stories.tsx +0 -12
- package/dist/icons/ai-avatar-icon/AiAvatarIcon.stories.tsx +226 -1013
- package/dist/icons/alert-icon/AlertIcon.stories.tsx +109 -929
- package/dist/icons/all-icons.tsx +124 -87
- package/dist/icons/angle-down-icon/AngleDownIcon.stories.tsx +140 -971
- package/dist/icons/apple-logo-icon/AppleLogoIcon.stories.tsx +148 -888
- package/dist/icons/arrow-box-left-icon/ArrowBoxLeftIcon.stories.tsx +135 -1019
- package/dist/icons/arrow-corner-up-left-icon/ArrowCornerUpLeftIcon.stories.tsx +137 -953
- package/dist/icons/arrow-corner-up-right-icon/ArrowCornerUpRightIcon.stories.tsx +138 -997
- package/dist/icons/arrow-left-icon/ArrowLeftIcon.stories.tsx +136 -942
- package/dist/icons/arrow-right-icon/ArrowRightIcon.stories.tsx +148 -1092
- package/dist/icons/arrow-right-up-icon/ArrowRightUpIcon.stories.tsx +146 -1211
- package/dist/icons/art-board-icon/ArtBoardIcon.stories.tsx +126 -615
- package/dist/icons/audio-bar-icon/AudioBarIcon.stories.tsx +144 -1164
- package/dist/icons/backward-ten-seconds-icon/BackwardTenSecondsIcon.stories.tsx +167 -985
- package/dist/icons/bubble-check-icon/BubbleCheckIcon.stories.tsx +122 -1179
- package/dist/icons/bubble-crossed-icon/BubbleCrossedIcon.stories.tsx +124 -1168
- package/dist/icons/bubble-sparkle-icon/BubbleSparkleIcon.stories.tsx +119 -850
- package/dist/icons/camera-icon/CameraIcon.stories.tsx +112 -1213
- package/dist/icons/capital-a-letter-icon/CapitalALetterIcon.stories.tsx +117 -934
- package/dist/icons/chevron-double-left-icon/ChevronDoubleLeftIcon.stories.tsx +160 -961
- package/dist/icons/chevron-double-right-icon/ChevronDoubleRightIcon.stories.tsx +163 -961
- package/dist/icons/chevron-down-icon/ChevronDownIcon.stories.tsx +144 -942
- package/dist/icons/chevron-left-icon/ChevronLeftIcon.stories.tsx +129 -966
- package/dist/icons/chevron-right-icon/ChevronRightIcon.stories.tsx +147 -964
- package/dist/icons/chevron-up-icon/ChevronUpIcon.stories.tsx +145 -975
- package/dist/icons/circle-tick-icon/CircleTickIcon.stories.tsx +150 -1142
- package/dist/icons/circular-play-icon/CircularPlayIcon.stories.tsx +114 -461
- package/dist/icons/coin-icon/CoinIcon.stories.tsx +124 -1322
- package/dist/icons/coin-toons-icon/CoinToonsIcon.stories.tsx +117 -1318
- package/dist/icons/column-wide-add-icon/ColumnWideAddIcon.stories.tsx +114 -903
- package/dist/icons/command-icon/CommandIcon.stories.tsx +127 -1042
- package/dist/icons/copy-icon/CopyIcon.stories.tsx +123 -962
- package/dist/icons/cross-circle-icon/CrossCircleIcon.stories.tsx +147 -999
- package/dist/icons/cross-icon/CrossIcon.stories.tsx +139 -960
- package/dist/icons/download-icon/DownloadIcon.stories.tsx +126 -820
- package/dist/icons/edit-big-icon/EditBigIcon.stories.tsx +124 -1031
- package/dist/icons/email-icon/EmailIcon.stories.tsx +115 -936
- package/dist/icons/expand-icon/ExpandIcon.stories.tsx +112 -1111
- package/dist/icons/eye-close-icon/EyeCloseIcon.stories.tsx +144 -1025
- package/dist/icons/eye-open-icon/EyeOpenIcon.stories.tsx +143 -1036
- package/dist/icons/feature-shine-icon/FeatureShineIcon.stories.tsx +127 -1011
- package/dist/icons/file-chart-icon/FileChartIcon.stories.tsx +126 -1056
- package/dist/icons/file-text-icon/FileTextIcon.stories.tsx +125 -614
- package/dist/icons/filter-bar-row-icon/FilterBarRowIcon.stories.tsx +119 -1050
- package/dist/icons/forward-ten-seconds-icon/ForwardTenSecondsIcon.stories.tsx +169 -989
- package/dist/icons/git-branch-icon/GitBranchIcon.stories.tsx +115 -1145
- package/dist/icons/git-fork-icon/GitForkIcon.stories.tsx +115 -1122
- package/dist/icons/globe-icon/GlobeIcon.stories.tsx +130 -313
- package/dist/icons/google-logo-icon/GoogleLogoIcon.stories.tsx +145 -940
- package/dist/icons/grip-vertical-icon/GripVerticalIcon.stories.tsx +119 -1174
- package/dist/icons/head-icon/HeadIcon.stories.tsx +111 -916
- package/dist/icons/heart-icon/HeartIcon.stories.tsx +120 -1019
- package/dist/icons/image-avatar-sparkle-icon/ImageAvatarSparkleIcon.stories.tsx +119 -683
- package/dist/icons/image-icon/ImageIcon.stories.tsx +105 -1121
- package/dist/icons/import-folder-icon/ImportFolderIcon.stories.tsx +111 -1192
- package/dist/icons/import-left-arrow-folder-icon/ImportLeftArrowFolderIcon.stories.tsx +136 -1256
- package/dist/icons/indian-flag-icon/IndianFlagIcon.stories.tsx +159 -962
- package/dist/icons/instagram-icon/InstagramIcon.stories.tsx +161 -1385
- package/dist/icons/layout-column-icon/LayoutColumnIcon.stories.tsx +124 -972
- package/dist/icons/layout-left-icon/LayoutLeftIcon.stories.tsx +119 -948
- package/dist/icons/layout-right-icon/LayoutRightIcon.stories.tsx +119 -942
- package/dist/icons/light-bulb-simple-icon/LightBulbSimpleIcon.stories.tsx +108 -1215
- package/dist/icons/linked-in-icon/LinkedInIcon.stories.tsx +154 -1517
- package/dist/icons/magic-book-icon/MagicBookIcon.stories.tsx +110 -1188
- package/dist/icons/magic-edit-icon/MagicEditIcon.stories.tsx +119 -678
- package/dist/icons/maintenance-icon/MaintenanceIcon.stories.tsx +123 -1184
- package/dist/icons/message-icon/MessageIcon.stories.tsx +114 -538
- package/dist/icons/minimize-icon/MinimizeIcon.stories.tsx +116 -1158
- package/dist/icons/moon-icon/MoonIcon.stories.tsx +120 -536
- package/dist/icons/move-horizontal-icon/MoveHorizontalIcon.stories.tsx +109 -1184
- package/dist/icons/move-vertical-icon/MoveVerticalIcon.stories.tsx +115 -1134
- package/dist/icons/musical-note-icon/MusicalNoteIcon.stories.tsx +119 -971
- package/dist/icons/notepad-icon/NotepadIcon.stories.tsx +111 -1100
- package/dist/icons/notes-icon/NotesIcon.stories.tsx +119 -1101
- package/dist/icons/page-search-icon/PageSearchIcon.stories.tsx +109 -1111
- package/dist/icons/page-text-icon/PageTextIcon.stories.tsx +122 -684
- package/dist/icons/paint-roll-icon/PaintRollIcon.stories.tsx +113 -954
- package/dist/icons/paper-plane-icon/PaperPlaneIcon.stories.tsx +112 -877
- package/dist/icons/pause-icon/PauseIcon.stories.tsx +113 -1000
- package/dist/icons/pencil-icon/PencilIcon.stories.tsx +115 -1070
- package/dist/icons/phone-icon/PhoneIcon.stories.tsx +115 -978
- package/dist/icons/plus-icon/PlusIcon.stories.tsx +106 -1093
- package/dist/icons/pocket-studio-icon/PocketStudioIcon.stories.tsx +107 -829
- package/dist/icons/scroll-down-icon/ScrollDownIcon.stories.tsx +102 -469
- package/dist/icons/search-icon/SearchIcon.stories.tsx +111 -1124
- package/dist/icons/setting-icon/SettingIcon.stories.tsx +107 -970
- package/dist/icons/share-icon/ShareIcon.stories.tsx +120 -1025
- package/dist/icons/shield-icon/ShieldIcon.stories.tsx +117 -931
- package/dist/icons/site-logo-icon/SiteLogoIcon.stories.tsx +137 -1104
- package/dist/icons/skip-backward-icon/SkipBackwardIcon.stories.tsx +172 -982
- package/dist/icons/skip-forward-icon/SkipForwardIcon.stories.tsx +164 -983
- package/dist/icons/sparkles-soft-icon/SparklesSoftIcon.stories.tsx +105 -958
- package/dist/icons/spinner-gradient-icon/SpinnerGradientIcon.stories.tsx +158 -580
- package/dist/icons/spinner-gradient-icon/index.tsx +6 -1
- package/dist/icons/spinner-solid-icon/SpinnerSolidIcon.stories.tsx +158 -587
- package/dist/icons/spinner-solid-icon/index.tsx +6 -1
- package/dist/icons/spinner-solid-neutral-icon/SpinnerSolidINeutralcon.stories.tsx +146 -682
- package/dist/icons/spinner-solid-neutral-icon/index.tsx +1 -1
- package/dist/icons/star-icon/StarIcon.stories.tsx +124 -904
- package/dist/icons/store-coin-icon/StoreCoinIcon.stories.tsx +112 -964
- package/dist/icons/suggestion-icon/SuggestionIcon.stories.tsx +116 -852
- package/dist/icons/sun-icon/SunIcon.stories.tsx +120 -831
- package/dist/icons/text-color-icon/TextColorIcon.stories.tsx +116 -950
- package/dist/icons/text-indicator-icon/TextIndicatorIcon.stories.tsx +123 -980
- package/dist/icons/threads-icon/ThreadsIcon.stories.tsx +156 -1427
- package/dist/icons/tick-circle-icon/TickCircleIcon.stories.tsx +146 -1142
- package/dist/icons/tick-icon/TickIcon.stories.tsx +145 -1276
- package/dist/icons/trash-icon/TrashIcon.stories.tsx +108 -933
- package/dist/icons/twitter-x-icon/TwitterXIcon.stories.tsx +157 -1402
- package/dist/icons/upload-icon/UploadIcon.stories.tsx +115 -889
- package/dist/icons/vertical-menu-icon/VerticalMenuIcon.stories.tsx +118 -984
- package/dist/icons/video-play-list-icon/VideoPlaylistIcon.stories.tsx +125 -1049
- package/dist/icons/voice-playing-icon/VoicePlayingIcon.stories.tsx +123 -1356
- package/dist/icons/volume-full-icon/VolumeFullIcon.stories.tsx +110 -1171
- package/dist/icons/volume-half-icon/VolumeHalfIcon.stories.tsx +112 -1093
- package/dist/icons/volume-off-icon/VolumeOffIcon.stories.tsx +115 -1087
- package/dist/icons/warning-icon/WarningIcon.stories.tsx +122 -1046
- package/dist/icons/youtube-icon/YoutubeIcon.stories.tsx +161 -936
- package/dist/index.cjs +84 -84
- package/dist/index.js +84 -84
- package/dist/styles/aural-all-theme.css +1222 -0
- package/dist/styles/{aural-theme.css → aural-dark-theme.css} +15 -3
- package/dist/styles/aural-light-theme.css +1047 -0
- package/package.json +1 -1
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import React from "react"
|
|
2
2
|
import type { Meta, StoryObj } from "@storybook/react-vite"
|
|
3
3
|
|
|
4
|
+
import { AuralComponentDocsPage } from "src/ui/story-spec/components/component-story-docs-page"
|
|
5
|
+
|
|
4
6
|
import Label from "."
|
|
5
7
|
|
|
6
8
|
const meta: Meta<typeof Label> = {
|
|
@@ -8,12 +10,29 @@ const meta: Meta<typeof Label> = {
|
|
|
8
10
|
component: Label,
|
|
9
11
|
parameters: {
|
|
10
12
|
layout: "centered",
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
13
|
+
docs: {
|
|
14
|
+
description: {
|
|
15
|
+
component:
|
|
16
|
+
"A form label primitive built on Radix UI Label. Supports required and disabled states, adapts to both light and dark themes, and pairs semantically with any form control via the htmlFor prop.",
|
|
17
|
+
},
|
|
18
|
+
page: () => (
|
|
19
|
+
<AuralComponentDocsPage
|
|
20
|
+
features={[
|
|
21
|
+
{
|
|
22
|
+
title: "Required Indicator",
|
|
23
|
+
description: "Asterisk via required prop",
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
title: "Disabled State",
|
|
27
|
+
description: "Muted inactive style",
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
title: "Semantic Pairing",
|
|
31
|
+
description: "htmlFor links to input",
|
|
32
|
+
},
|
|
33
|
+
]}
|
|
34
|
+
/>
|
|
35
|
+
),
|
|
17
36
|
},
|
|
18
37
|
},
|
|
19
38
|
tags: ["autodocs"],
|
|
@@ -28,7 +47,7 @@ const meta: Meta<typeof Label> = {
|
|
|
28
47
|
},
|
|
29
48
|
disabled: {
|
|
30
49
|
control: "boolean",
|
|
31
|
-
description: "Whether the label
|
|
50
|
+
description: "Whether the label appears in a disabled (inactive) state",
|
|
32
51
|
},
|
|
33
52
|
required: {
|
|
34
53
|
control: "boolean",
|
|
@@ -44,164 +63,147 @@ const meta: Meta<typeof Label> = {
|
|
|
44
63
|
export default meta
|
|
45
64
|
type Story = StoryObj<typeof meta>
|
|
46
65
|
|
|
47
|
-
|
|
48
|
-
args: {
|
|
49
|
-
children: "Label Text",
|
|
50
|
-
htmlFor: "example-input",
|
|
51
|
-
disabled: false,
|
|
52
|
-
required: false,
|
|
53
|
-
},
|
|
54
|
-
}
|
|
66
|
+
// ─── 1. AllVariants ───────────────────────────────────────────────────────────
|
|
55
67
|
|
|
56
|
-
export const
|
|
57
|
-
args: {
|
|
58
|
-
...Default.args,
|
|
59
|
-
required: true,
|
|
60
|
-
children: "Required Label",
|
|
61
|
-
},
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
export const Disabled: Story = {
|
|
65
|
-
args: {
|
|
66
|
-
...Default.args,
|
|
67
|
-
disabled: true,
|
|
68
|
-
children: "Disabled Label",
|
|
69
|
-
},
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
export const WithCustomClass: Story = {
|
|
73
|
-
args: {
|
|
74
|
-
...Default.args,
|
|
75
|
-
className: "text-blue-500 font-bold",
|
|
76
|
-
children: "Styled Label",
|
|
77
|
-
},
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
// Example showing label with an input
|
|
81
|
-
export const WithInput: Story = {
|
|
82
|
-
render: (args) => (
|
|
83
|
-
<div className="space-y-2">
|
|
84
|
-
<Label htmlFor="example-input" {...args}>
|
|
85
|
-
{args.children}
|
|
86
|
-
</Label>
|
|
87
|
-
<input
|
|
88
|
-
id="example-input"
|
|
89
|
-
type="text"
|
|
90
|
-
className="w-full rounded-md border border-gray-300 p-2"
|
|
91
|
-
placeholder="Enter text here"
|
|
92
|
-
disabled={args.disabled}
|
|
93
|
-
required={args.required}
|
|
94
|
-
/>
|
|
95
|
-
</div>
|
|
96
|
-
),
|
|
97
|
-
args: {
|
|
98
|
-
...Default.args,
|
|
99
|
-
children: "Email Address",
|
|
100
|
-
},
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
// Example showing multiple labels with different states
|
|
104
|
-
export const LabelExamples: Story = {
|
|
68
|
+
export const AllVariants: Story = {
|
|
105
69
|
render: () => (
|
|
106
|
-
<div className="
|
|
107
|
-
<div className="space-y-
|
|
108
|
-
<
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
className="
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
id="disabled-field"
|
|
136
|
-
type="text"
|
|
137
|
-
className="w-full rounded-md border border-gray-200 bg-gray-100 p-2 text-gray-400"
|
|
138
|
-
placeholder="Disabled"
|
|
139
|
-
disabled
|
|
140
|
-
/>
|
|
70
|
+
<div className="space-y-8">
|
|
71
|
+
<div className="space-y-4">
|
|
72
|
+
<h4 className="text-fm-secondary font-fm-text text-fm-md leading-fm-md font-medium">
|
|
73
|
+
States
|
|
74
|
+
</h4>
|
|
75
|
+
<div className="flex flex-wrap items-start gap-6">
|
|
76
|
+
<div className="space-y-2 text-center">
|
|
77
|
+
<Label htmlFor="normal-demo">Username</Label>
|
|
78
|
+
<p className="text-fm-secondary font-fm-text text-fm-sm leading-fm-sm">
|
|
79
|
+
Normal
|
|
80
|
+
</p>
|
|
81
|
+
</div>
|
|
82
|
+
<div className="space-y-2 text-center">
|
|
83
|
+
<Label htmlFor="required-demo" required>
|
|
84
|
+
Email Address
|
|
85
|
+
</Label>
|
|
86
|
+
<p className="text-fm-secondary font-fm-text text-fm-sm leading-fm-sm">
|
|
87
|
+
Required
|
|
88
|
+
</p>
|
|
89
|
+
</div>
|
|
90
|
+
<div className="space-y-2 text-center">
|
|
91
|
+
<Label htmlFor="disabled-demo" disabled>
|
|
92
|
+
Archived Field
|
|
93
|
+
</Label>
|
|
94
|
+
<p className="text-fm-secondary font-fm-text text-fm-sm leading-fm-sm">
|
|
95
|
+
Disabled
|
|
96
|
+
</p>
|
|
97
|
+
</div>
|
|
98
|
+
</div>
|
|
141
99
|
</div>
|
|
142
100
|
</div>
|
|
143
101
|
),
|
|
102
|
+
parameters: {
|
|
103
|
+
docs: {
|
|
104
|
+
description: {
|
|
105
|
+
story:
|
|
106
|
+
"All three label states — normal, required (with asterisk), and disabled (inactive styling) — shown side by side.",
|
|
107
|
+
},
|
|
108
|
+
},
|
|
109
|
+
},
|
|
144
110
|
}
|
|
145
111
|
|
|
146
|
-
//
|
|
147
|
-
export const FormLayout: Story = {
|
|
148
|
-
render: () => (
|
|
149
|
-
<div className="mx-auto max-w-md rounded-xl bg-white p-4 shadow-md">
|
|
150
|
-
<form className="space-y-4">
|
|
151
|
-
<h2 className="mb-4 text-xl font-semibold">Contact Information</h2>
|
|
152
|
-
|
|
153
|
-
<div className="space-y-2">
|
|
154
|
-
<Label htmlFor="form-name" required>
|
|
155
|
-
Full Name
|
|
156
|
-
</Label>
|
|
157
|
-
<input
|
|
158
|
-
id="form-name"
|
|
159
|
-
type="text"
|
|
160
|
-
className="w-full rounded-md border border-gray-300 p-2"
|
|
161
|
-
placeholder="John Doe"
|
|
162
|
-
required
|
|
163
|
-
/>
|
|
164
|
-
</div>
|
|
165
|
-
|
|
166
|
-
<div className="space-y-2">
|
|
167
|
-
<Label htmlFor="form-email" required>
|
|
168
|
-
Email Address
|
|
169
|
-
</Label>
|
|
170
|
-
<input
|
|
171
|
-
id="form-email"
|
|
172
|
-
type="email"
|
|
173
|
-
className="w-full rounded-md border border-gray-300 p-2"
|
|
174
|
-
placeholder="john@example.com"
|
|
175
|
-
required
|
|
176
|
-
/>
|
|
177
|
-
</div>
|
|
112
|
+
// ─── 2. UseCases ──────────────────────────────────────────────────────────────
|
|
178
113
|
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
114
|
+
export const UseCases: Story = {
|
|
115
|
+
render: () => (
|
|
116
|
+
<div className="mx-auto max-w-3xl space-y-8 p-8">
|
|
117
|
+
<div className="space-y-4">
|
|
118
|
+
<h4 className="text-fm-secondary font-fm-text text-fm-md leading-fm-md font-medium">
|
|
119
|
+
Registration Form
|
|
120
|
+
</h4>
|
|
121
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary mx-auto max-w-md space-y-4 rounded-xl border p-6">
|
|
122
|
+
<div className="space-y-2">
|
|
123
|
+
<Label htmlFor="uc-name" required>
|
|
124
|
+
Full Name
|
|
125
|
+
</Label>
|
|
126
|
+
<input
|
|
127
|
+
id="uc-name"
|
|
128
|
+
type="text"
|
|
129
|
+
className="border-fm-divider-secondary bg-fm-surface-primary text-fm-primary placeholder:text-fm-tertiary w-full rounded-md border px-3 py-2 text-sm focus:outline-none"
|
|
130
|
+
placeholder="Jane Doe"
|
|
131
|
+
required
|
|
132
|
+
/>
|
|
133
|
+
</div>
|
|
134
|
+
<div className="space-y-2">
|
|
135
|
+
<Label htmlFor="uc-email" required>
|
|
136
|
+
Email Address
|
|
137
|
+
</Label>
|
|
138
|
+
<input
|
|
139
|
+
id="uc-email"
|
|
140
|
+
type="email"
|
|
141
|
+
className="border-fm-divider-secondary bg-fm-surface-primary text-fm-primary placeholder:text-fm-tertiary w-full rounded-md border px-3 py-2 text-sm focus:outline-none"
|
|
142
|
+
placeholder="jane@example.com"
|
|
143
|
+
required
|
|
144
|
+
/>
|
|
145
|
+
</div>
|
|
146
|
+
<div className="space-y-2">
|
|
147
|
+
<Label htmlFor="uc-phone">Phone Number</Label>
|
|
148
|
+
<input
|
|
149
|
+
id="uc-phone"
|
|
150
|
+
type="tel"
|
|
151
|
+
className="border-fm-divider-secondary bg-fm-surface-primary text-fm-primary placeholder:text-fm-tertiary w-full rounded-md border px-3 py-2 text-sm focus:outline-none"
|
|
152
|
+
placeholder="+1 (555) 000-0000"
|
|
153
|
+
/>
|
|
154
|
+
</div>
|
|
155
|
+
<div className="space-y-2">
|
|
156
|
+
<Label htmlFor="uc-bio">Bio</Label>
|
|
157
|
+
<textarea
|
|
158
|
+
id="uc-bio"
|
|
159
|
+
className="border-fm-divider-secondary bg-fm-surface-primary text-fm-primary placeholder:text-fm-tertiary h-24 w-full rounded-md border px-3 py-2 text-sm focus:outline-none"
|
|
160
|
+
placeholder="Tell us about yourself..."
|
|
161
|
+
/>
|
|
162
|
+
</div>
|
|
187
163
|
</div>
|
|
164
|
+
</div>
|
|
188
165
|
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
166
|
+
<div className="space-y-4">
|
|
167
|
+
<h4 className="text-fm-secondary font-fm-text text-fm-md leading-fm-md font-medium">
|
|
168
|
+
Disabled Fields
|
|
169
|
+
</h4>
|
|
170
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary mx-auto max-w-md space-y-4 rounded-xl border p-6">
|
|
171
|
+
<div className="space-y-2">
|
|
172
|
+
<Label htmlFor="uc-account-id" disabled>
|
|
173
|
+
Account ID
|
|
174
|
+
</Label>
|
|
175
|
+
<input
|
|
176
|
+
id="uc-account-id"
|
|
177
|
+
type="text"
|
|
178
|
+
className="border-fm-divider-secondary bg-fm-surface-tertiary text-fm-tertiary w-full cursor-not-allowed rounded-md border px-3 py-2 text-sm"
|
|
179
|
+
value="ACC-0001-XYZ"
|
|
180
|
+
disabled
|
|
181
|
+
readOnly
|
|
182
|
+
/>
|
|
183
|
+
</div>
|
|
184
|
+
<div className="space-y-2">
|
|
185
|
+
<Label htmlFor="uc-joined" disabled>
|
|
186
|
+
Member Since
|
|
187
|
+
</Label>
|
|
188
|
+
<input
|
|
189
|
+
id="uc-joined"
|
|
190
|
+
type="text"
|
|
191
|
+
className="border-fm-divider-secondary bg-fm-surface-tertiary text-fm-tertiary w-full cursor-not-allowed rounded-md border px-3 py-2 text-sm"
|
|
192
|
+
value="April 15, 2025"
|
|
193
|
+
disabled
|
|
194
|
+
readOnly
|
|
195
|
+
/>
|
|
196
|
+
</div>
|
|
196
197
|
</div>
|
|
197
|
-
|
|
198
|
-
<button
|
|
199
|
-
type="submit"
|
|
200
|
-
className="rounded-md bg-blue-500 px-4 py-2 text-white transition-colors hover:bg-blue-600"
|
|
201
|
-
>
|
|
202
|
-
Submit
|
|
203
|
-
</button>
|
|
204
|
-
</form>
|
|
198
|
+
</div>
|
|
205
199
|
</div>
|
|
206
200
|
),
|
|
201
|
+
parameters: {
|
|
202
|
+
docs: {
|
|
203
|
+
description: {
|
|
204
|
+
story:
|
|
205
|
+
"Labels paired with real form inputs in realistic registration and settings contexts, demonstrating required and disabled states in product use.",
|
|
206
|
+
},
|
|
207
|
+
},
|
|
208
|
+
},
|
|
207
209
|
}
|