aural-ui 4.0.1 → 4.2.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/README.md +8 -1
- package/dist/components/aspect-ratio/AspectRatio.stories.tsx +290 -1228
- package/dist/components/avatar/Avatar.stories.tsx +219 -235
- 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/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 -636
- 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 +530 -867
- package/dist/components/dialog/Dialog.stories.tsx +501 -950
- package/dist/components/divider/Divider.stories.tsx +264 -527
- package/dist/components/dot-loader/DotLoader.stories.tsx +256 -257
- package/dist/components/drawer/Drawer.stories.tsx +659 -1023
- package/dist/components/dropdown/Dropdown.stories.tsx +643 -1028
- 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 -1254
- 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 +484 -835
- package/dist/components/marquee/Marquee.stories.tsx +356 -712
- package/dist/components/otp-inputs/OtpInputs.stories.tsx +352 -422
- package/dist/components/overlay/Overlay.stories.tsx +452 -824
- package/dist/components/pagination/Pagination.stories.tsx +721 -210
- package/dist/components/popover/Popover.stories.tsx +481 -896
- package/dist/components/radio/Radio.stories.tsx +432 -124
- package/dist/components/resizable/Resizable.stories.tsx +495 -799
- package/dist/components/scroll-area/ScrollArea.stories.tsx +383 -1059
- package/dist/components/search/Search.stories.tsx +312 -595
- package/dist/components/select/Select.stories.tsx +684 -789
- package/dist/components/sheet/Sheet.stories.tsx +671 -950
- package/dist/components/skelton/Skelton.stories.tsx +230 -764
- package/dist/components/slider/Slider.stories.tsx +383 -760
- 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 -916
- package/dist/components/tabs/Tabs.stories.tsx +458 -1455
- 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 -154
- package/dist/components/toast/Toast.stories.tsx +452 -1339
- package/dist/components/toggle/Toggle.stories.tsx +488 -931
- package/dist/components/tooltip/Tooltip.stories.tsx +344 -1388
- 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 +223 -1060
- package/dist/icons/alert-icon/AlertIcon.stories.tsx +106 -968
- package/dist/icons/all-icons.tsx +37 -16
- package/dist/icons/angle-down-icon/AngleDownIcon.stories.tsx +137 -1010
- package/dist/icons/apple-logo-icon/AppleLogoIcon.stories.tsx +145 -935
- package/dist/icons/arrow-box-left-icon/ArrowBoxLeftIcon.stories.tsx +132 -1046
- package/dist/icons/arrow-corner-up-left-icon/ArrowCornerUpLeftIcon.stories.tsx +134 -986
- package/dist/icons/arrow-corner-up-right-icon/ArrowCornerUpRightIcon.stories.tsx +135 -1028
- package/dist/icons/arrow-left-icon/ArrowLeftIcon.stories.tsx +133 -971
- package/dist/icons/arrow-right-icon/ArrowRightIcon.stories.tsx +145 -1123
- package/dist/icons/arrow-right-up-icon/ArrowRightUpIcon.stories.tsx +143 -1252
- package/dist/icons/art-board-icon/ArtBoardIcon.stories.tsx +123 -632
- package/dist/icons/audio-bar-icon/AudioBarIcon.stories.tsx +141 -1223
- package/dist/icons/backward-ten-seconds-icon/BackwardTenSecondsIcon.stories.tsx +164 -1018
- package/dist/icons/bubble-check-icon/BubbleCheckIcon.stories.tsx +121 -1236
- package/dist/icons/bubble-crossed-icon/BubbleCrossedIcon.stories.tsx +121 -1213
- package/dist/icons/bubble-sparkle-icon/BubbleSparkleIcon.stories.tsx +116 -893
- package/dist/icons/camera-icon/CameraIcon.stories.tsx +109 -1254
- package/dist/icons/capital-a-letter-icon/CapitalALetterIcon.stories.tsx +114 -975
- package/dist/icons/chevron-double-left-icon/ChevronDoubleLeftIcon.stories.tsx +157 -994
- package/dist/icons/chevron-double-right-icon/ChevronDoubleRightIcon.stories.tsx +160 -992
- package/dist/icons/chevron-down-icon/ChevronDownIcon.stories.tsx +140 -970
- package/dist/icons/chevron-left-icon/ChevronLeftIcon.stories.tsx +126 -993
- package/dist/icons/chevron-right-icon/ChevronRightIcon.stories.tsx +144 -987
- package/dist/icons/chevron-up-icon/ChevronUpIcon.stories.tsx +141 -1007
- package/dist/icons/circle-tick-icon/CircleTickIcon.stories.tsx +147 -1187
- package/dist/icons/circular-play-icon/CircularPlayIcon.stories.tsx +110 -476
- package/dist/icons/coin-icon/CoinIcon.stories.tsx +120 -1364
- package/dist/icons/coin-toons-icon/CoinToonsIcon.stories.tsx +113 -1360
- package/dist/icons/column-wide-add-icon/ColumnWideAddIcon.stories.tsx +111 -942
- package/dist/icons/command-icon/CommandIcon.stories.tsx +124 -1087
- package/dist/icons/copy-icon/CopyIcon.stories.tsx +119 -996
- package/dist/icons/cross-circle-icon/CrossCircleIcon.stories.tsx +144 -1046
- package/dist/icons/cross-icon/CrossIcon.stories.tsx +136 -999
- package/dist/icons/download-icon/DownloadIcon.stories.tsx +123 -857
- package/dist/icons/edit-big-icon/EditBigIcon.stories.tsx +121 -1080
- package/dist/icons/email-icon/EmailIcon.stories.tsx +112 -979
- package/dist/icons/expand-icon/ExpandIcon.stories.tsx +109 -1146
- package/dist/icons/eye-close-icon/EyeCloseIcon.stories.tsx +141 -1068
- package/dist/icons/eye-open-icon/EyeOpenIcon.stories.tsx +140 -1081
- package/dist/icons/feature-shine-icon/FeatureShineIcon.stories.tsx +124 -1050
- package/dist/icons/file-chart-icon/FileChartIcon.stories.tsx +123 -1091
- package/dist/icons/file-text-icon/FileTextIcon.stories.tsx +122 -633
- package/dist/icons/filter-bar-row-icon/FilterBarRowIcon.stories.tsx +116 -1087
- package/dist/icons/forward-ten-seconds-icon/ForwardTenSecondsIcon.stories.tsx +166 -1020
- package/dist/icons/git-branch-icon/GitBranchIcon.stories.tsx +112 -1182
- package/dist/icons/git-fork-icon/GitForkIcon.stories.tsx +112 -1155
- package/dist/icons/globe-icon/GlobeIcon.stories.tsx +127 -325
- package/dist/icons/google-logo-icon/GoogleLogoIcon.stories.tsx +142 -985
- package/dist/icons/grip-vertical-icon/GripVerticalIcon.stories.tsx +116 -1217
- package/dist/icons/head-icon/HeadIcon.stories.tsx +108 -953
- package/dist/icons/heart-icon/HeartIcon.stories.tsx +117 -1060
- package/dist/icons/image-avatar-sparkle-icon/ImageAvatarSparkleIcon.stories.tsx +116 -716
- package/dist/icons/image-icon/ImageIcon.stories.tsx +102 -1164
- package/dist/icons/import-folder-icon/ImportFolderIcon.stories.tsx +108 -1233
- package/dist/icons/import-left-arrow-folder-icon/ImportLeftArrowFolderIcon.stories.tsx +133 -1289
- package/dist/icons/indian-flag-icon/IndianFlagIcon.stories.tsx +155 -1012
- package/dist/icons/instagram-icon/InstagramIcon.stories.tsx +158 -1438
- package/dist/icons/layout-column-icon/LayoutColumnIcon.stories.tsx +121 -1011
- package/dist/icons/layout-left-icon/LayoutLeftIcon.stories.tsx +116 -981
- package/dist/icons/layout-right-icon/LayoutRightIcon.stories.tsx +116 -979
- package/dist/icons/light-bulb-simple-icon/LightBulbSimpleIcon.stories.tsx +105 -1252
- package/dist/icons/linked-in-icon/LinkedInIcon.stories.tsx +151 -1554
- package/dist/icons/magic-book-icon/MagicBookIcon.stories.tsx +107 -1227
- package/dist/icons/magic-edit-icon/MagicEditIcon.stories.tsx +116 -707
- package/dist/icons/maintenance-icon/MaintenanceIcon.stories.tsx +119 -1226
- package/dist/icons/message-icon/MessageIcon.stories.tsx +111 -557
- package/dist/icons/minimize-icon/MinimizeIcon.stories.tsx +112 -1198
- package/dist/icons/moon-icon/MoonIcon.stories.tsx +117 -557
- package/dist/icons/move-horizontal-icon/MoveHorizontalIcon.stories.tsx +106 -1235
- package/dist/icons/move-vertical-icon/MoveVerticalIcon.stories.tsx +112 -1185
- package/dist/icons/musical-note-icon/MusicalNoteIcon.stories.tsx +116 -1012
- package/dist/icons/notepad-icon/NotepadIcon.stories.tsx +108 -1137
- package/dist/icons/notes-icon/NotesIcon.stories.tsx +116 -1138
- package/dist/icons/page-search-icon/PageSearchIcon.stories.tsx +106 -1146
- package/dist/icons/page-text-icon/PageTextIcon.stories.tsx +119 -719
- package/dist/icons/paint-roll-icon/PaintRollIcon.stories.tsx +110 -999
- package/dist/icons/paper-plane-icon/PaperPlaneIcon.stories.tsx +109 -912
- package/dist/icons/pause-icon/PauseIcon.stories.tsx +110 -1041
- package/dist/icons/pencil-icon/PencilIcon.stories.tsx +112 -1109
- package/dist/icons/phone-icon/PhoneIcon.stories.tsx +112 -1023
- package/dist/icons/plus-icon/PlusIcon.stories.tsx +103 -1132
- package/dist/icons/pocket-studio-icon/PocketStudioIcon.stories.tsx +104 -870
- package/dist/icons/scroll-down-icon/ScrollDownIcon.stories.tsx +99 -476
- package/dist/icons/search-icon/SearchIcon.stories.tsx +108 -1161
- package/dist/icons/setting-icon/SettingIcon.stories.tsx +104 -1009
- package/dist/icons/share-icon/ShareIcon.stories.tsx +117 -1064
- package/dist/icons/shield-icon/ShieldIcon.stories.tsx +114 -974
- package/dist/icons/site-logo-icon/SiteLogoIcon.stories.tsx +134 -1160
- package/dist/icons/skip-backward-icon/SkipBackwardIcon.stories.tsx +169 -1017
- package/dist/icons/skip-forward-icon/SkipForwardIcon.stories.tsx +161 -1016
- package/dist/icons/sparkles-soft-icon/SparklesSoftIcon.stories.tsx +102 -1001
- package/dist/icons/spinner-gradient-icon/SpinnerGradientIcon.stories.tsx +155 -593
- package/dist/icons/spinner-solid-icon/SpinnerSolidIcon.stories.tsx +155 -608
- package/dist/icons/spinner-solid-neutral-icon/SpinnerSolidINeutralcon.stories.tsx +142 -712
- package/dist/icons/star-icon/StarIcon.stories.tsx +120 -946
- package/dist/icons/store-coin-icon/StoreCoinIcon.stories.tsx +109 -1013
- package/dist/icons/suggestion-icon/SuggestionIcon.stories.tsx +113 -891
- package/dist/icons/sun-icon/SunIcon.stories.tsx +117 -864
- package/dist/icons/text-color-icon/TextColorIcon.stories.tsx +113 -989
- package/dist/icons/text-indicator-icon/TextIndicatorIcon.stories.tsx +120 -1027
- package/dist/icons/threads-icon/ThreadsIcon.stories.tsx +153 -1476
- package/dist/icons/tick-circle-icon/TickCircleIcon.stories.tsx +143 -1187
- package/dist/icons/tick-icon/TickIcon.stories.tsx +142 -1322
- package/dist/icons/trash-icon/TrashIcon.stories.tsx +105 -970
- package/dist/icons/twitter-x-icon/TwitterXIcon.stories.tsx +154 -1457
- package/dist/icons/upload-icon/UploadIcon.stories.tsx +112 -930
- package/dist/icons/vertical-menu-icon/VerticalMenuIcon.stories.tsx +115 -1019
- package/dist/icons/video-play-list-icon/VideoPlaylistIcon.stories.tsx +122 -1092
- package/dist/icons/voice-playing-icon/VoicePlayingIcon.stories.tsx +120 -1401
- package/dist/icons/volume-full-icon/VolumeFullIcon.stories.tsx +107 -1212
- package/dist/icons/volume-half-icon/VolumeHalfIcon.stories.tsx +109 -1122
- package/dist/icons/volume-off-icon/VolumeOffIcon.stories.tsx +112 -1124
- package/dist/icons/warning-icon/WarningIcon.stories.tsx +119 -1083
- package/dist/icons/youtube-icon/YoutubeIcon.stories.tsx +158 -983
- package/dist/index.cjs +90 -90
- package/dist/index.js +90 -90
- package/package.json +8 -3
|
@@ -2,6 +2,8 @@ import React from "react"
|
|
|
2
2
|
import { TickCircleIcon } from "@icons/tick-circle-icon"
|
|
3
3
|
import type { Meta, StoryObj } from "@storybook/react-vite"
|
|
4
4
|
|
|
5
|
+
import { AuralComponentDocsPage } from "src/ui/story-spec/components/component-story-docs-page"
|
|
6
|
+
|
|
5
7
|
import { Badge } from "."
|
|
6
8
|
|
|
7
9
|
const meta: Meta<typeof Badge> = {
|
|
@@ -9,12 +11,29 @@ const meta: Meta<typeof Badge> = {
|
|
|
9
11
|
component: Badge,
|
|
10
12
|
parameters: {
|
|
11
13
|
layout: "centered",
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
14
|
+
docs: {
|
|
15
|
+
description: {
|
|
16
|
+
component:
|
|
17
|
+
"A compact status label for surfacing semantic context — categories, states, or counts — in neutral, info, positive, negative, and warning tones across three sizes.",
|
|
18
|
+
},
|
|
19
|
+
page: () => (
|
|
20
|
+
<AuralComponentDocsPage
|
|
21
|
+
features={[
|
|
22
|
+
{
|
|
23
|
+
title: "5 Semantic Colors",
|
|
24
|
+
description: "Neutral to warning",
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
title: "3 Sizes",
|
|
28
|
+
description: "xs, sm, md scale",
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
title: "Icon Support",
|
|
32
|
+
description: "Text, icon, or both",
|
|
33
|
+
},
|
|
34
|
+
]}
|
|
35
|
+
/>
|
|
36
|
+
),
|
|
18
37
|
},
|
|
19
38
|
},
|
|
20
39
|
tags: ["autodocs"],
|
|
@@ -22,7 +41,7 @@ const meta: Meta<typeof Badge> = {
|
|
|
22
41
|
color: {
|
|
23
42
|
control: "select",
|
|
24
43
|
options: ["neutral", "info", "positive", "negative", "warning"],
|
|
25
|
-
description: "The color of the badge",
|
|
44
|
+
description: "The color variant of the badge",
|
|
26
45
|
},
|
|
27
46
|
size: {
|
|
28
47
|
control: "select",
|
|
@@ -43,134 +62,378 @@ const meta: Meta<typeof Badge> = {
|
|
|
43
62
|
export default meta
|
|
44
63
|
type Story = StoryObj<typeof Badge>
|
|
45
64
|
|
|
46
|
-
|
|
47
|
-
args: {
|
|
48
|
-
children: "NEW",
|
|
49
|
-
},
|
|
50
|
-
}
|
|
65
|
+
// ─── 1. Playground ────────────────────────────────────────────────────────────
|
|
51
66
|
|
|
52
|
-
export const
|
|
67
|
+
export const Playground: Story = {
|
|
53
68
|
args: {
|
|
54
|
-
children: "
|
|
55
|
-
color: "
|
|
56
|
-
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
export const Positive: Story = {
|
|
60
|
-
args: {
|
|
61
|
-
children: "SUCCESS",
|
|
62
|
-
color: "positive",
|
|
63
|
-
},
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
export const Negative: Story = {
|
|
67
|
-
args: {
|
|
68
|
-
children: "ERROR",
|
|
69
|
-
color: "negative",
|
|
70
|
-
},
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
export const Warning: Story = {
|
|
74
|
-
args: {
|
|
75
|
-
children: "WARNING",
|
|
76
|
-
color: "warning",
|
|
69
|
+
children: "BADGE",
|
|
70
|
+
color: "neutral",
|
|
71
|
+
size: "md",
|
|
77
72
|
},
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
73
|
+
render: (args) => (
|
|
74
|
+
<div className="w-full max-w-sm space-y-4">
|
|
75
|
+
<div className="flex justify-center">
|
|
76
|
+
<Badge {...args} />
|
|
77
|
+
</div>
|
|
78
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border px-4 py-3">
|
|
79
|
+
<code className="text-fm-secondary text-fm-md leading-fm-md font-(--font-fm-mono)">{`<Badge color="${args.color}" size="${args.size}">${args.children}</Badge>`}</code>
|
|
80
|
+
</div>
|
|
81
|
+
</div>
|
|
82
|
+
),
|
|
83
|
+
parameters: {
|
|
84
|
+
docs: {
|
|
85
|
+
description: {
|
|
86
|
+
story:
|
|
87
|
+
"Adjust color, size, and content using the controls panel in the sidebar.",
|
|
88
|
+
},
|
|
89
|
+
},
|
|
84
90
|
},
|
|
85
91
|
}
|
|
86
92
|
|
|
87
|
-
|
|
88
|
-
args: {
|
|
89
|
-
children: "XS",
|
|
90
|
-
size: "xs",
|
|
91
|
-
},
|
|
92
|
-
}
|
|
93
|
+
// ─── 2. All Variants ──────────────────────────────────────────────────────────
|
|
93
94
|
|
|
94
|
-
export const
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
95
|
+
export const AllVariants: Story = {
|
|
96
|
+
render: () => (
|
|
97
|
+
<div className="space-y-8">
|
|
98
|
+
<div className="space-y-4">
|
|
99
|
+
<h4 className="text-fm-secondary font-fm-text text-fm-md leading-fm-md font-medium">
|
|
100
|
+
Colors
|
|
101
|
+
</h4>
|
|
102
|
+
<div className="flex flex-wrap items-center gap-4">
|
|
103
|
+
<div className="space-y-2 text-center">
|
|
104
|
+
<Badge color="neutral">NEUTRAL</Badge>
|
|
105
|
+
<p className="text-fm-secondary font-fm-text text-fm-sm leading-fm-sm">
|
|
106
|
+
Neutral
|
|
107
|
+
</p>
|
|
108
|
+
</div>
|
|
109
|
+
<div className="space-y-2 text-center">
|
|
110
|
+
<Badge
|
|
111
|
+
color="info"
|
|
112
|
+
className="bg-fm-surface-info-sec text-fm-info-sec"
|
|
113
|
+
>
|
|
114
|
+
INFO
|
|
115
|
+
</Badge>
|
|
116
|
+
<p className="text-fm-secondary font-fm-text text-fm-sm leading-fm-sm">
|
|
117
|
+
Info
|
|
118
|
+
</p>
|
|
119
|
+
</div>
|
|
120
|
+
<div className="space-y-2 text-center">
|
|
121
|
+
<Badge
|
|
122
|
+
color="positive"
|
|
123
|
+
className="bg-fm-surface-positive-sec text-fm-positive-sec"
|
|
124
|
+
>
|
|
125
|
+
SUCCESS
|
|
126
|
+
</Badge>
|
|
127
|
+
<p className="text-fm-secondary font-fm-text text-fm-sm leading-fm-sm">
|
|
128
|
+
Positive
|
|
129
|
+
</p>
|
|
130
|
+
</div>
|
|
131
|
+
<div className="space-y-2 text-center">
|
|
132
|
+
<Badge color="negative">ERROR</Badge>
|
|
133
|
+
<p className="text-fm-secondary font-fm-text text-fm-sm leading-fm-sm">
|
|
134
|
+
Negative
|
|
135
|
+
</p>
|
|
136
|
+
</div>
|
|
137
|
+
<div className="space-y-2 text-center">
|
|
138
|
+
<Badge
|
|
139
|
+
color="warning"
|
|
140
|
+
className="bg-fm-yellow-200 text-fm-yellow-900"
|
|
141
|
+
>
|
|
142
|
+
WARNING
|
|
143
|
+
</Badge>
|
|
144
|
+
<p className="text-fm-secondary font-fm-text text-fm-sm leading-fm-sm">
|
|
145
|
+
Warning
|
|
146
|
+
</p>
|
|
147
|
+
</div>
|
|
148
|
+
</div>
|
|
149
|
+
</div>
|
|
100
150
|
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
<
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
151
|
+
<div className="space-y-4">
|
|
152
|
+
<h4 className="text-fm-secondary font-fm-text text-fm-md leading-fm-md font-medium">
|
|
153
|
+
With Icon
|
|
154
|
+
</h4>
|
|
155
|
+
<div className="flex flex-wrap items-center gap-4">
|
|
156
|
+
<div className="space-y-2 text-center">
|
|
157
|
+
<Badge
|
|
158
|
+
color="positive"
|
|
159
|
+
size="sm"
|
|
160
|
+
className="bg-fm-surface-positive-sec text-fm-positive-sec flex items-center gap-1"
|
|
161
|
+
>
|
|
162
|
+
<TickCircleIcon width={12} height={12} /> SUCCESS
|
|
163
|
+
</Badge>
|
|
164
|
+
<p className="text-fm-secondary font-fm-text text-fm-sm leading-fm-sm">
|
|
165
|
+
Text + Icon
|
|
166
|
+
</p>
|
|
167
|
+
</div>
|
|
168
|
+
<div className="space-y-2 text-center">
|
|
169
|
+
<Badge
|
|
170
|
+
color="info"
|
|
171
|
+
size="sm"
|
|
172
|
+
className="bg-fm-surface-info-sec text-fm-info-sec flex items-center gap-1"
|
|
173
|
+
>
|
|
174
|
+
<TickCircleIcon width={12} height={12} /> INFO
|
|
175
|
+
</Badge>
|
|
176
|
+
<p className="text-fm-secondary font-fm-text text-fm-sm leading-fm-sm">
|
|
177
|
+
Text + Icon
|
|
178
|
+
</p>
|
|
179
|
+
</div>
|
|
180
|
+
<div className="space-y-2 text-center">
|
|
181
|
+
<Badge color="positive" size="xs">
|
|
182
|
+
<TickCircleIcon width={10} height={10} />
|
|
183
|
+
</Badge>
|
|
184
|
+
<p className="text-fm-secondary font-fm-text text-fm-sm leading-fm-sm">
|
|
185
|
+
Icon · xs
|
|
186
|
+
</p>
|
|
187
|
+
</div>
|
|
188
|
+
<div className="space-y-2 text-center">
|
|
189
|
+
<Badge color="info" size="sm">
|
|
190
|
+
<TickCircleIcon width={12} height={12} />
|
|
191
|
+
</Badge>
|
|
192
|
+
<p className="text-fm-secondary font-fm-text text-fm-sm leading-fm-sm">
|
|
193
|
+
Icon · sm
|
|
194
|
+
</p>
|
|
195
|
+
</div>
|
|
196
|
+
<div className="space-y-2 text-center">
|
|
197
|
+
<Badge color="warning" size="md">
|
|
198
|
+
<TickCircleIcon width={14} height={14} />
|
|
199
|
+
</Badge>
|
|
200
|
+
<p className="text-fm-secondary font-fm-text text-fm-sm leading-fm-sm">
|
|
201
|
+
Icon · md
|
|
202
|
+
</p>
|
|
203
|
+
</div>
|
|
204
|
+
</div>
|
|
205
|
+
</div>
|
|
206
|
+
</div>
|
|
207
|
+
),
|
|
208
|
+
parameters: {
|
|
209
|
+
docs: {
|
|
210
|
+
description: {
|
|
211
|
+
story:
|
|
212
|
+
"All five color variants and icon compositions — text-only, text+icon, and icon-only configurations.",
|
|
213
|
+
},
|
|
214
|
+
},
|
|
111
215
|
},
|
|
112
216
|
}
|
|
113
217
|
|
|
114
|
-
|
|
115
|
-
args: {
|
|
116
|
-
children: <TickCircleIcon width={12} height={12} />,
|
|
117
|
-
color: "positive",
|
|
118
|
-
size: "xs",
|
|
119
|
-
},
|
|
120
|
-
}
|
|
218
|
+
// ─── 3. Sizes ─────────────────────────────────────────────────────────────────
|
|
121
219
|
|
|
122
|
-
export const
|
|
123
|
-
|
|
124
|
-
<div className="
|
|
125
|
-
<div className="flex items-center gap-
|
|
126
|
-
<
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
220
|
+
export const Sizes: Story = {
|
|
221
|
+
render: () => (
|
|
222
|
+
<div className="space-y-8">
|
|
223
|
+
<div className="flex flex-wrap items-end justify-center gap-6">
|
|
224
|
+
<div className="space-y-2 text-center">
|
|
225
|
+
<Badge size="xs">EXTRA SMALL</Badge>
|
|
226
|
+
<p className="text-fm-secondary font-fm-text text-fm-sm leading-fm-sm">
|
|
227
|
+
xs
|
|
228
|
+
</p>
|
|
229
|
+
</div>
|
|
230
|
+
<div className="space-y-2 text-center">
|
|
231
|
+
<Badge size="sm">SMALL</Badge>
|
|
232
|
+
<p className="text-fm-secondary font-fm-text text-fm-sm leading-fm-sm">
|
|
233
|
+
sm
|
|
234
|
+
</p>
|
|
235
|
+
</div>
|
|
236
|
+
<div className="space-y-2 text-center">
|
|
237
|
+
<Badge size="md">MEDIUM</Badge>
|
|
238
|
+
<p className="text-fm-secondary font-fm-text text-fm-sm leading-fm-sm">
|
|
239
|
+
md (default)
|
|
240
|
+
</p>
|
|
241
|
+
</div>
|
|
131
242
|
</div>
|
|
132
243
|
|
|
133
|
-
<div className="
|
|
134
|
-
<
|
|
135
|
-
|
|
136
|
-
|
|
244
|
+
<div className="space-y-4">
|
|
245
|
+
<h4 className="text-fm-secondary font-fm-text text-fm-md leading-fm-md font-medium">
|
|
246
|
+
Size × Color
|
|
247
|
+
</h4>
|
|
248
|
+
<div className="flex flex-wrap items-end justify-center gap-4">
|
|
249
|
+
<div className="space-y-2 text-center">
|
|
250
|
+
<Badge
|
|
251
|
+
color="info"
|
|
252
|
+
size="xs"
|
|
253
|
+
className="bg-fm-surface-info-sec text-fm-info-sec"
|
|
254
|
+
>
|
|
255
|
+
INFO XS
|
|
256
|
+
</Badge>
|
|
257
|
+
<p className="text-fm-secondary font-fm-text text-fm-sm leading-fm-sm">
|
|
258
|
+
info · xs
|
|
259
|
+
</p>
|
|
260
|
+
</div>
|
|
261
|
+
<div className="space-y-2 text-center">
|
|
262
|
+
<Badge
|
|
263
|
+
color="positive"
|
|
264
|
+
size="sm"
|
|
265
|
+
className="bg-fm-surface-positive-sec text-fm-positive-sec"
|
|
266
|
+
>
|
|
267
|
+
SUCCESS SM
|
|
268
|
+
</Badge>
|
|
269
|
+
<p className="text-fm-secondary font-fm-text text-fm-sm leading-fm-sm">
|
|
270
|
+
positive · sm
|
|
271
|
+
</p>
|
|
272
|
+
</div>
|
|
273
|
+
<div className="space-y-2 text-center">
|
|
274
|
+
<Badge color="negative" size="md">
|
|
275
|
+
ERROR MD
|
|
276
|
+
</Badge>
|
|
277
|
+
<p className="text-fm-secondary font-fm-text text-fm-sm leading-fm-sm">
|
|
278
|
+
negative · md
|
|
279
|
+
</p>
|
|
280
|
+
</div>
|
|
281
|
+
<div className="space-y-2 text-center">
|
|
282
|
+
<Badge
|
|
283
|
+
color="warning"
|
|
284
|
+
size="sm"
|
|
285
|
+
className="bg-fm-yellow-200 text-fm-yellow-900"
|
|
286
|
+
>
|
|
287
|
+
WARNING SM
|
|
288
|
+
</Badge>
|
|
289
|
+
<p className="text-fm-secondary font-fm-text text-fm-sm leading-fm-sm">
|
|
290
|
+
warning · sm
|
|
291
|
+
</p>
|
|
292
|
+
</div>
|
|
293
|
+
<div className="space-y-2 text-center">
|
|
294
|
+
<Badge color="neutral" size="xs">
|
|
295
|
+
NEUTRAL XS
|
|
296
|
+
</Badge>
|
|
297
|
+
<p className="text-fm-secondary font-fm-text text-fm-sm leading-fm-sm">
|
|
298
|
+
neutral · xs
|
|
299
|
+
</p>
|
|
300
|
+
</div>
|
|
301
|
+
</div>
|
|
137
302
|
</div>
|
|
303
|
+
</div>
|
|
304
|
+
),
|
|
305
|
+
parameters: {
|
|
306
|
+
docs: {
|
|
307
|
+
description: {
|
|
308
|
+
story:
|
|
309
|
+
"Three sizes (xs, sm, md) shown side by side with a size × color cross-axis comparison.",
|
|
310
|
+
},
|
|
311
|
+
},
|
|
312
|
+
},
|
|
313
|
+
}
|
|
138
314
|
|
|
139
|
-
|
|
140
|
-
<Badge color="info" size="xs">
|
|
141
|
-
INFO XS
|
|
142
|
-
</Badge>
|
|
143
|
-
<Badge color="positive" size="sm">
|
|
144
|
-
SUCCESS SM
|
|
145
|
-
</Badge>
|
|
146
|
-
<Badge color="negative" size="md">
|
|
147
|
-
ERROR MD
|
|
148
|
-
</Badge>
|
|
149
|
-
</div>
|
|
315
|
+
// ─── 4. Use Cases ─────────────────────────────────────────────────────────────
|
|
150
316
|
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
317
|
+
export const UseCases: Story = {
|
|
318
|
+
render: () => (
|
|
319
|
+
<div className="mx-auto max-w-3xl space-y-8 p-8">
|
|
320
|
+
{/* Track Status List */}
|
|
321
|
+
<div className="space-y-4">
|
|
322
|
+
<h4 className="text-fm-secondary font-fm-text text-fm-md leading-fm-md font-medium">
|
|
323
|
+
Track Status
|
|
324
|
+
</h4>
|
|
325
|
+
<div className="mx-auto max-w-md space-y-3">
|
|
326
|
+
{(
|
|
327
|
+
[
|
|
328
|
+
{
|
|
329
|
+
title: "Midnight Dreams",
|
|
330
|
+
status: "NEW",
|
|
331
|
+
color: "info",
|
|
332
|
+
className: "bg-fm-surface-info-sec text-fm-info-sec",
|
|
333
|
+
},
|
|
334
|
+
{
|
|
335
|
+
title: "Electric Sunrise",
|
|
336
|
+
status: "LIVE",
|
|
337
|
+
color: "positive",
|
|
338
|
+
className: "bg-fm-surface-positive-sec text-fm-positive-sec",
|
|
339
|
+
},
|
|
340
|
+
{
|
|
341
|
+
title: "Echoes in Rain",
|
|
342
|
+
status: "ERROR",
|
|
343
|
+
color: "negative",
|
|
344
|
+
className: "",
|
|
345
|
+
},
|
|
346
|
+
{
|
|
347
|
+
title: "Neon Horizon",
|
|
348
|
+
status: "PENDING",
|
|
349
|
+
color: "warning",
|
|
350
|
+
className: "bg-fm-yellow-200 text-fm-yellow-900",
|
|
351
|
+
},
|
|
352
|
+
] as const
|
|
353
|
+
).map(({ title, status, color, className }) => (
|
|
354
|
+
<div
|
|
355
|
+
key={title}
|
|
356
|
+
className="border-fm-divider-secondary bg-fm-surface-secondary flex items-center justify-between rounded-lg border p-3"
|
|
357
|
+
>
|
|
358
|
+
<p className="text-fm-primary font-fm-text text-fm-sm leading-fm-sm font-medium">
|
|
359
|
+
{title}
|
|
360
|
+
</p>
|
|
361
|
+
<Badge color={color} size="xs" className={className}>
|
|
362
|
+
{status}
|
|
363
|
+
</Badge>
|
|
364
|
+
</div>
|
|
365
|
+
))}
|
|
366
|
+
</div>
|
|
161
367
|
</div>
|
|
162
368
|
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
369
|
+
{/* Inline Content Labels */}
|
|
370
|
+
<div className="space-y-4">
|
|
371
|
+
<h4 className="text-fm-secondary font-fm-text text-fm-md leading-fm-md font-medium">
|
|
372
|
+
Inline Content Labels
|
|
373
|
+
</h4>
|
|
374
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary mx-auto max-w-md space-y-4 rounded-lg border p-4">
|
|
375
|
+
<div>
|
|
376
|
+
<div className="mb-1 flex items-center gap-2">
|
|
377
|
+
<p className="text-fm-primary font-fm-text text-fm-sm leading-fm-sm font-semibold">
|
|
378
|
+
Album Release
|
|
379
|
+
</p>
|
|
380
|
+
<Badge
|
|
381
|
+
color="positive"
|
|
382
|
+
size="xs"
|
|
383
|
+
className="bg-fm-surface-positive-sec text-fm-positive-sec flex items-center gap-1"
|
|
384
|
+
>
|
|
385
|
+
<TickCircleIcon width={10} height={10} /> VERIFIED
|
|
386
|
+
</Badge>
|
|
387
|
+
</div>
|
|
388
|
+
<p className="text-fm-secondary font-fm-text text-fm-sm leading-fm-sm">
|
|
389
|
+
New album available in all regions.
|
|
390
|
+
</p>
|
|
391
|
+
</div>
|
|
392
|
+
<div>
|
|
393
|
+
<div className="mb-1 flex items-center gap-2">
|
|
394
|
+
<p className="text-fm-primary font-fm-text text-fm-sm leading-fm-sm font-semibold">
|
|
395
|
+
Live Streaming
|
|
396
|
+
</p>
|
|
397
|
+
<Badge
|
|
398
|
+
color="warning"
|
|
399
|
+
size="xs"
|
|
400
|
+
className="bg-fm-yellow-200 text-fm-yellow-900"
|
|
401
|
+
>
|
|
402
|
+
BETA
|
|
403
|
+
</Badge>
|
|
404
|
+
</div>
|
|
405
|
+
<p className="text-fm-secondary font-fm-text text-fm-sm leading-fm-sm">
|
|
406
|
+
Early access to live streaming for all subscribers.
|
|
407
|
+
</p>
|
|
408
|
+
</div>
|
|
409
|
+
<div>
|
|
410
|
+
<div className="mb-1 flex items-center gap-2">
|
|
411
|
+
<p className="text-fm-primary font-fm-text text-fm-sm leading-fm-sm font-semibold">
|
|
412
|
+
Spatial Audio
|
|
413
|
+
</p>
|
|
414
|
+
<Badge
|
|
415
|
+
color="info"
|
|
416
|
+
size="xs"
|
|
417
|
+
className="bg-fm-surface-info-sec text-fm-info-sec"
|
|
418
|
+
>
|
|
419
|
+
NEW
|
|
420
|
+
</Badge>
|
|
421
|
+
</div>
|
|
422
|
+
<p className="text-fm-secondary font-fm-text text-fm-sm leading-fm-sm">
|
|
423
|
+
Immersive audio now enabled for supported tracks.
|
|
424
|
+
</p>
|
|
425
|
+
</div>
|
|
426
|
+
</div>
|
|
173
427
|
</div>
|
|
174
428
|
</div>
|
|
175
|
-
)
|
|
429
|
+
),
|
|
430
|
+
parameters: {
|
|
431
|
+
layout: "fullscreen",
|
|
432
|
+
docs: {
|
|
433
|
+
description: {
|
|
434
|
+
story:
|
|
435
|
+
"Real-world usage: track status lists and inline content labels with icon compositions.",
|
|
436
|
+
},
|
|
437
|
+
},
|
|
438
|
+
},
|
|
176
439
|
}
|