aural-ui 3.0.6 → 4.0.1
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 +271 -242
- package/dist/components/avatar/Avatar.stories.tsx +84 -70
- package/dist/components/button/Button.stories.tsx +7 -7
- package/dist/components/button/index.tsx +7 -7
- package/dist/components/card/Card.stories.tsx +3 -3
- package/dist/components/char-count/CharCount.stories.tsx +9 -9
- package/dist/components/circular-loader/CircularLoader.stories.tsx +109 -93
- package/dist/components/clamp-lines/ClampLines.stories.tsx +25 -0
- package/dist/components/clamp-lines/index.tsx +6 -1
- package/dist/components/collapsible/Collapsible.stories.tsx +1 -1
- package/dist/components/command/Command.stories.tsx +52 -38
- package/dist/components/dialog/Dialog.stories.tsx +89 -84
- package/dist/components/divider/Divider.stories.tsx +86 -60
- package/dist/components/dot-loader/DotLoader.stories.tsx +12 -12
- package/dist/components/drawer/Drawer.stories.tsx +74 -44
- package/dist/components/drawer/index.tsx +3 -3
- package/dist/components/dropdown/Dropdown.stories.tsx +42 -32
- package/dist/components/helper-text/HelperText.stories.tsx +2 -2
- package/dist/components/hover-card/HoverCard.stories.tsx +211 -178
- package/dist/components/input/Input.stories.tsx +2 -2
- package/dist/components/input/index.tsx +2 -0
- package/dist/components/label/Label.stories.tsx +10 -10
- package/dist/components/list/List.stories.tsx +58 -44
- package/dist/components/marquee/Marquee.stories.tsx +131 -113
- package/dist/components/otp-inputs/OtpInputs.stories.tsx +47 -35
- package/dist/components/overlay/Overlay.stories.tsx +98 -92
- package/dist/components/overlay/index.tsx +4 -4
- package/dist/components/popover/Popover.stories.tsx +132 -106
- package/dist/components/radio/Radio.stories.tsx +2 -2
- package/dist/components/resizable/Resizable.stories.tsx +186 -138
- package/dist/components/scroll-area/ScrollArea.stories.tsx +174 -120
- package/dist/components/search/Search.stories.tsx +81 -59
- package/dist/components/select/Select.stories.tsx +3 -1
- package/dist/components/sheet/Sheet.stories.tsx +68 -54
- package/dist/components/slider/Slider.stories.tsx +71 -47
- package/dist/components/stepper/Stepper.stories.tsx +16 -16
- package/dist/components/switch/Switch.stories.tsx +12 -12
- package/dist/components/table/Table.stories.tsx +8 -6
- package/dist/components/tabs/Tabs.stories.tsx +324 -268
- package/dist/components/textarea/TextArea.stories.tsx +1 -1
- package/dist/components/thumbnail-tags/ThumbnailTags.stories.tsx +16 -10
- package/dist/components/toast/Toast.stories.tsx +51 -45
- package/dist/components/toggle/Toggle.stories.tsx +111 -89
- package/dist/components/tooltip/Tooltip.stories.tsx +160 -144
- package/dist/icons/Icons.stories.tsx +2 -2
- package/dist/icons/ai-avatar-icon/AiAvatarIcon.stories.tsx +287 -237
- package/dist/icons/alert-icon/AlertIcon.stories.tsx +290 -248
- package/dist/icons/all-icons.tsx +97 -81
- package/dist/icons/angle-down-icon/AngleDownIcon.stories.tsx +312 -270
- package/dist/icons/apple-logo-icon/AppleLogoIcon.stories.tsx +294 -244
- package/dist/icons/arrow-box-left-icon/ArrowBoxLeftIcon.stories.tsx +309 -279
- package/dist/icons/arrow-corner-up-left-icon/ArrowCornerUpLeftIcon.stories.tsx +294 -258
- package/dist/icons/arrow-corner-up-right-icon/ArrowCornerUpRightIcon.stories.tsx +289 -255
- package/dist/icons/arrow-left-icon/ArrowLeftIcon.stories.tsx +288 -256
- package/dist/icons/arrow-right-icon/ArrowRightIcon.stories.tsx +322 -288
- package/dist/icons/arrow-right-up-icon/ArrowRightUpIcon.stories.tsx +340 -296
- package/dist/icons/art-board-icon/ArtBoardIcon.stories.tsx +197 -177
- package/dist/icons/audio-bar-icon/AudioBarIcon.stories.tsx +390 -328
- package/dist/icons/backward-ten-seconds-icon/BackwardTenSecondsIcon.stories.tsx +313 -277
- package/dist/icons/bubble-check-icon/BubbleCheckIcon.stories.tsx +367 -309
- package/dist/icons/bubble-crossed-icon/BubbleCrossedIcon.stories.tsx +356 -308
- package/dist/icons/bubble-sparkle-icon/BubbleSparkleIcon.stories.tsx +280 -234
- package/dist/icons/camera-icon/CameraIcon.stories.tsx +370 -326
- package/dist/icons/capital-a-letter-icon/CapitalALetterIcon.stories.tsx +300 -256
- package/dist/icons/chevron-double-left-icon/ChevronDoubleLeftIcon.stories.tsx +298 -262
- package/dist/icons/chevron-double-right-icon/ChevronDoubleRightIcon.stories.tsx +294 -260
- package/dist/icons/chevron-down-icon/ChevronDownIcon.stories.tsx +291 -259
- package/dist/icons/chevron-left-icon/ChevronLeftIcon.stories.tsx +286 -256
- package/dist/icons/chevron-right-icon/ChevronRightIcon.stories.tsx +282 -256
- package/dist/icons/chevron-up-icon/ChevronUpIcon.stories.tsx +292 -256
- package/dist/icons/circle-tick-icon/CircleTickIcon.stories.tsx +338 -290
- package/dist/icons/circular-play-icon/CircularPlayIcon.stories.tsx +167 -148
- package/dist/icons/coin-icon/CoinIcon.stories.tsx +342 -296
- package/dist/icons/coin-toons-icon/CoinToonsIcon.stories.tsx +342 -296
- package/dist/icons/column-wide-add-icon/ColumnWideAddIcon.stories.tsx +280 -238
- package/dist/icons/command-icon/CommandIcon.stories.tsx +328 -280
- package/dist/icons/copy-icon/CopyIcon.stories.tsx +294 -256
- package/dist/icons/cross-circle-icon/CrossCircleIcon.stories.tsx +285 -235
- package/dist/icons/cross-icon/CrossIcon.stories.tsx +308 -266
- package/dist/icons/download-icon/DownloadIcon.stories.tsx +271 -231
- package/dist/icons/edit-big-icon/EditBigIcon.stories.tsx +330 -278
- package/dist/icons/email-icon/EmailIcon.stories.tsx +303 -257
- package/dist/icons/expand-icon/ExpandIcon.stories.tsx +324 -286
- package/dist/icons/eye-close-icon/EyeCloseIcon.stories.tsx +317 -271
- package/dist/icons/eye-open-icon/EyeOpenIcon.stories.tsx +320 -272
- package/dist/icons/feature-shine-icon/FeatureShineIcon.stories.tsx +322 -280
- package/dist/icons/file-chart-icon/FileChartIcon.stories.tsx +315 -277
- package/dist/icons/file-text-icon/FileTextIcon.stories.tsx +199 -177
- package/dist/icons/filter-bar-row-icon/FilterBarRowIcon.stories.tsx +304 -264
- package/dist/icons/forward-ten-seconds-icon/ForwardTenSecondsIcon.stories.tsx +311 -277
- package/dist/icons/git-branch-icon/GitBranchIcon.stories.tsx +327 -287
- package/dist/icons/git-fork-icon/GitForkIcon.stories.tsx +314 -278
- package/dist/icons/globe-icon/GlobeIcon.stories.tsx +113 -98
- package/dist/icons/google-logo-icon/GoogleLogoIcon.stories.tsx +274 -226
- package/dist/icons/grip-vertical-icon/GripVerticalIcon.stories.tsx +349 -303
- package/dist/icons/head-icon/HeadIcon.stories.tsx +286 -246
- package/dist/icons/heart-icon/HeartIcon.stories.tsx +312 -268
- package/dist/icons/image-avatar-sparkle-icon/ImageAvatarSparkleIcon.stories.tsx +246 -210
- package/dist/icons/image-icon/ImageIcon.stories.tsx +330 -284
- package/dist/icons/import-folder-icon/ImportFolderIcon.stories.tsx +326 -282
- package/dist/icons/import-left-arrow-folder-icon/ImportLeftArrowFolderIcon.stories.tsx +330 -294
- package/dist/icons/indian-flag-icon/IndianFlagIcon.stories.tsx +288 -234
- package/dist/icons/instagram-icon/InstagramIcon.stories.tsx +386 -330
- package/dist/icons/layout-column-icon/LayoutColumnIcon.stories.tsx +305 -263
- package/dist/icons/layout-left-icon/LayoutLeftIcon.stories.tsx +295 -259
- package/dist/icons/layout-right-icon/LayoutRightIcon.stories.tsx +296 -256
- package/dist/icons/light-bulb-simple-icon/LightBulbSimpleIcon.stories.tsx +322 -282
- package/dist/icons/linked-in-icon/LinkedInIcon.stories.tsx +399 -359
- package/dist/icons/magic-book-icon/MagicBookIcon.stories.tsx +314 -272
- package/dist/icons/magic-edit-icon/MagicEditIcon.stories.tsx +238 -206
- package/dist/icons/maintenance-icon/MaintenanceIcon.stories.tsx +322 -276
- package/dist/icons/message-icon/MessageIcon.stories.tsx +192 -170
- package/dist/icons/minimize-icon/MinimizeIcon.stories.tsx +348 -304
- package/dist/icons/moon-icon/MoonIcon.stories.tsx +191 -167
- package/dist/icons/move-horizontal-icon/MoveHorizontalIcon.stories.tsx +380 -326
- package/dist/icons/move-vertical-icon/MoveVerticalIcon.stories.tsx +345 -291
- package/dist/icons/musical-note-icon/MusicalNoteIcon.stories.tsx +310 -266
- package/dist/icons/notepad-icon/NotepadIcon.stories.tsx +311 -271
- package/dist/icons/notes-icon/NotesIcon.stories.tsx +311 -271
- package/dist/icons/page-search-icon/PageSearchIcon.stories.tsx +309 -271
- package/dist/icons/page-text-icon/PageTextIcon.stories.tsx +248 -210
- package/dist/icons/paint-roll-icon/PaintRollIcon.stories.tsx +310 -262
- package/dist/icons/paper-plane-icon/PaperPlaneIcon.stories.tsx +274 -236
- package/dist/icons/pause-icon/PauseIcon.stories.tsx +324 -280
- package/dist/icons/pencil-icon/PencilIcon.stories.tsx +323 -281
- package/dist/icons/phone-icon/PhoneIcon.stories.tsx +288 -240
- package/dist/icons/plus-icon/PlusIcon.stories.tsx +315 -273
- package/dist/icons/pocket-studio-icon/PocketStudioIcon.stories.tsx +278 -234
- package/dist/icons/scroll-down-icon/ScrollDownIcon.stories.tsx +161 -151
- package/dist/icons/search-icon/SearchIcon.stories.tsx +324 -284
- package/dist/icons/setting-icon/SettingIcon.stories.tsx +306 -264
- package/dist/icons/share-icon/ShareIcon.stories.tsx +314 -272
- package/dist/icons/shield-icon/ShieldIcon.stories.tsx +281 -235
- package/dist/icons/site-logo-icon/SiteLogoIcon.stories.tsx +309 -250
- package/dist/icons/skip-backward-icon/SkipBackwardIcon.stories.tsx +317 -279
- package/dist/icons/skip-forward-icon/SkipForwardIcon.stories.tsx +315 -279
- package/dist/icons/sparkles-soft-icon/SparklesSoftIcon.stories.tsx +299 -253
- package/dist/icons/spinner-gradient-icon/SpinnerGradientIcon.stories.tsx +185 -169
- package/dist/icons/spinner-gradient-icon/index.tsx +6 -1
- package/dist/icons/spinner-solid-icon/SpinnerSolidIcon.stories.tsx +192 -168
- package/dist/icons/spinner-solid-icon/index.tsx +6 -1
- package/dist/icons/spinner-solid-neutral-icon/SpinnerSolidINeutralcon.stories.tsx +212 -178
- package/dist/icons/spinner-solid-neutral-icon/index.tsx +1 -1
- package/dist/icons/star-icon/StarIcon.stories.tsx +290 -244
- package/dist/icons/store-coin-icon/StoreCoinIcon.stories.tsx +286 -234
- package/dist/icons/suggestion-icon/SuggestionIcon.stories.tsx +272 -230
- package/dist/icons/sun-icon/SunIcon.stories.tsx +262 -226
- package/dist/icons/text-color-icon/TextColorIcon.stories.tsx +321 -279
- package/dist/icons/text-indicator-icon/TextIndicatorIcon.stories.tsx +332 -282
- package/dist/icons/threads-icon/ThreadsIcon.stories.tsx +394 -342
- package/dist/icons/tick-circle-icon/TickCircleIcon.stories.tsx +338 -290
- package/dist/icons/tick-icon/TickIcon.stories.tsx +364 -315
- package/dist/icons/trash-icon/TrashIcon.stories.tsx +293 -253
- package/dist/icons/twitter-x-icon/TwitterXIcon.stories.tsx +396 -338
- package/dist/icons/upload-icon/UploadIcon.stories.tsx +291 -247
- package/dist/icons/vertical-menu-icon/VerticalMenuIcon.stories.tsx +309 -271
- package/dist/icons/video-play-list-icon/VideoPlaylistIcon.stories.tsx +336 -290
- package/dist/icons/voice-playing-icon/VoicePlayingIcon.stories.tsx +382 -334
- package/dist/icons/volume-full-icon/VolumeFullIcon.stories.tsx +349 -305
- package/dist/icons/volume-half-icon/VolumeHalfIcon.stories.tsx +327 -295
- package/dist/icons/volume-off-icon/VolumeOffIcon.stories.tsx +336 -296
- package/dist/icons/warning-icon/WarningIcon.stories.tsx +314 -274
- package/dist/icons/youtube-icon/YoutubeIcon.stories.tsx +311 -261
- 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
|
@@ -11,9 +11,9 @@ const meta: Meta<typeof AudioBarIcon> = {
|
|
|
11
11
|
backgrounds: {
|
|
12
12
|
default: "dark",
|
|
13
13
|
values: [
|
|
14
|
-
{ name: "dark", value: "
|
|
15
|
-
{ name: "darker", value: "
|
|
16
|
-
{ name: "light", value: "
|
|
14
|
+
{ name: "dark", value: "var(--color-fm-surface-primary)" },
|
|
15
|
+
{ name: "darker", value: "var(--color-fm-neutral-0)" },
|
|
16
|
+
{ name: "light", value: "var(--color-fm-neutral-1100)" },
|
|
17
17
|
],
|
|
18
18
|
},
|
|
19
19
|
docs: {
|
|
@@ -40,59 +40,59 @@ const meta: Meta<typeof AudioBarIcon> = {
|
|
|
40
40
|
background: transparent ;
|
|
41
41
|
}
|
|
42
42
|
body {
|
|
43
|
-
background:
|
|
43
|
+
background: var(--color-fm-surface-primary) ;
|
|
44
44
|
}
|
|
45
45
|
#storybook-docs {
|
|
46
|
-
background:
|
|
46
|
+
background: var(--color-fm-surface-primary) ;
|
|
47
47
|
}
|
|
48
48
|
.sbdocs-preview {
|
|
49
49
|
background: transparent ;
|
|
50
50
|
border: none ;
|
|
51
51
|
}
|
|
52
52
|
.sbdocs-h1, .sbdocs-h2, .sbdocs-h3, .sbdocs-h4, .sbdocs-h5, .sbdocs-h6 {
|
|
53
|
-
color:
|
|
53
|
+
color: var(--color-fm-icon-active) ;
|
|
54
54
|
}
|
|
55
55
|
.sbdocs-p, .sbdocs-li {
|
|
56
|
-
color:
|
|
56
|
+
color: var(--color-fm-secondary) ;
|
|
57
57
|
}
|
|
58
58
|
.sbdocs-code {
|
|
59
|
-
background:
|
|
60
|
-
color:
|
|
61
|
-
border: 1px solid
|
|
59
|
+
background: var(--color-fm-surface-secondary) ;
|
|
60
|
+
color: var(--color-fm-secondary-500) ;
|
|
61
|
+
border: 1px solid var(--color-fm-divider-secondary) ;
|
|
62
62
|
}
|
|
63
63
|
.sbdocs-pre {
|
|
64
|
-
background:
|
|
65
|
-
border: 1px solid
|
|
64
|
+
background: var(--color-fm-surface-secondary) ;
|
|
65
|
+
border: 1px solid var(--color-fm-divider-secondary) ;
|
|
66
66
|
}
|
|
67
67
|
.sbdocs-table {
|
|
68
|
-
background:
|
|
69
|
-
border: 1px solid
|
|
68
|
+
background: var(--color-fm-surface-secondary) ;
|
|
69
|
+
border: 1px solid var(--color-fm-divider-secondary) ;
|
|
70
70
|
}
|
|
71
71
|
.sbdocs-table th {
|
|
72
|
-
background:
|
|
73
|
-
color:
|
|
74
|
-
border-bottom: 1px solid
|
|
72
|
+
background: var(--color-fm-surface-secondary) ;
|
|
73
|
+
color: var(--color-fm-icon-active) ;
|
|
74
|
+
border-bottom: 1px solid var(--color-fm-divider-secondary) ;
|
|
75
75
|
}
|
|
76
76
|
.sbdocs-table td {
|
|
77
|
-
color:
|
|
78
|
-
border-bottom: 1px solid
|
|
77
|
+
color: var(--color-fm-secondary) ;
|
|
78
|
+
border-bottom: 1px solid var(--color-fm-divider-tertiary) ;
|
|
79
79
|
}
|
|
80
80
|
`}
|
|
81
81
|
</style>
|
|
82
82
|
|
|
83
|
-
<div className="
|
|
83
|
+
<div className="bg-fm-surface-primary min-h-screen">
|
|
84
84
|
{/* Header */}
|
|
85
|
-
<div className="relative overflow-hidden border-b
|
|
86
|
-
<div className="absolute inset-0 bg-
|
|
85
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary relative overflow-hidden border-b backdrop-blur-xl">
|
|
86
|
+
<div className="from-fm-secondary-500/10 to-fm-icon-info/10 absolute inset-0 bg-linear-to-r via-transparent" />
|
|
87
87
|
<div className="relative !mx-auto max-w-7xl px-6 py-16">
|
|
88
88
|
<div className="!space-y-6 text-center">
|
|
89
|
-
<div className="!mx-auto flex h-24 w-24 items-center justify-center rounded-2xl border
|
|
90
|
-
<AudioBarIcon className="h-12 w-12
|
|
89
|
+
<div className="border-fm-secondary-500/30 from-fm-secondary-500/20 to-fm-secondary-500/20 !mx-auto flex h-24 w-24 items-center justify-center rounded-2xl border bg-linear-to-br">
|
|
90
|
+
<AudioBarIcon className="text-fm-secondary-600 h-12 w-12" />
|
|
91
91
|
</div>
|
|
92
|
-
<h1 className="text-5xl font-bold
|
|
92
|
+
<h1 className="text-fm-icon-active! text-5xl font-bold">
|
|
93
93
|
AudioBarIcon
|
|
94
94
|
</h1>
|
|
95
|
-
<p className="!mx-auto max-w-3xl text-xl leading-relaxed
|
|
95
|
+
<p className="text-fm-secondary! !mx-auto max-w-3xl text-xl leading-relaxed">
|
|
96
96
|
A dynamic audio visualizer icon representing sound waves and
|
|
97
97
|
audio activity. Perfect for music players, audio controls,
|
|
98
98
|
voice interfaces, and sound-related features.
|
|
@@ -101,28 +101,28 @@ const meta: Meta<typeof AudioBarIcon> = {
|
|
|
101
101
|
{/* Stats */}
|
|
102
102
|
<div className="flex items-center justify-center gap-8 pt-8">
|
|
103
103
|
<div className="text-center">
|
|
104
|
-
<div className="text-3xl font-bold
|
|
104
|
+
<div className="text-fm-secondary-600 text-3xl font-bold">
|
|
105
105
|
Audio
|
|
106
106
|
</div>
|
|
107
|
-
<div className="text-
|
|
107
|
+
<div className="text-fm-tertiary text-sm">
|
|
108
108
|
Sound visualization
|
|
109
109
|
</div>
|
|
110
110
|
</div>
|
|
111
|
-
<div className="h-8 w-px
|
|
111
|
+
<div className="bg-fm-divider-primary h-8 w-px" />
|
|
112
112
|
<div className="text-center">
|
|
113
|
-
<div className="text-3xl font-bold
|
|
113
|
+
<div className="text-fm-secondary-600 text-3xl font-bold">
|
|
114
114
|
Dynamic
|
|
115
115
|
</div>
|
|
116
|
-
<div className="text-
|
|
116
|
+
<div className="text-fm-tertiary text-sm">
|
|
117
117
|
Visual feedback
|
|
118
118
|
</div>
|
|
119
119
|
</div>
|
|
120
|
-
<div className="h-8 w-px
|
|
120
|
+
<div className="bg-fm-divider-primary h-8 w-px" />
|
|
121
121
|
<div className="text-center">
|
|
122
|
-
<div className="text-3xl font-bold
|
|
122
|
+
<div className="text-fm-secondary-600 text-3xl font-bold">
|
|
123
123
|
Responsive
|
|
124
124
|
</div>
|
|
125
|
-
<div className="text-
|
|
125
|
+
<div className="text-fm-tertiary text-sm">
|
|
126
126
|
Scalable design
|
|
127
127
|
</div>
|
|
128
128
|
</div>
|
|
@@ -135,16 +135,16 @@ const meta: Meta<typeof AudioBarIcon> = {
|
|
|
135
135
|
<div className="!mx-auto max-w-7xl !space-y-16 px-6 py-12">
|
|
136
136
|
{/* Quick Usage */}
|
|
137
137
|
<div className="!space-y-8">
|
|
138
|
-
<h2 className="text-center text-3xl font-bold
|
|
138
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
139
139
|
Quick Start
|
|
140
140
|
</h2>
|
|
141
141
|
<div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
|
|
142
142
|
<div className="!space-y-4">
|
|
143
|
-
<h3 className="text-xl font-semibold
|
|
143
|
+
<h3 className="text-fm-secondary-600! text-xl font-semibold">
|
|
144
144
|
Basic Usage
|
|
145
145
|
</h3>
|
|
146
|
-
<div className="rounded-lg
|
|
147
|
-
<pre className="overflow-x-auto text-sm
|
|
146
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
147
|
+
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
148
148
|
{`import { AudioBarIcon } from "@icons/audio-bar-icon"
|
|
149
149
|
|
|
150
150
|
function AudioPlayer() {
|
|
@@ -160,13 +160,15 @@ function AudioPlayer() {
|
|
|
160
160
|
</div>
|
|
161
161
|
|
|
162
162
|
<div className="!space-y-4">
|
|
163
|
-
<h3 className="text-xl font-semibold
|
|
163
|
+
<h3 className="text-fm-secondary-600! text-xl font-semibold">
|
|
164
164
|
Live Preview
|
|
165
165
|
</h3>
|
|
166
|
-
<div className="flex h-32 items-center justify-center rounded-lg border
|
|
167
|
-
<div className="flex items-center gap-3 rounded-lg border
|
|
168
|
-
<AudioBarIcon className="h-6 w-6
|
|
169
|
-
<span className="
|
|
166
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary flex h-32 items-center justify-center rounded-lg border">
|
|
167
|
+
<div className="border-fm-secondary-500/20 bg-fm-secondary-500/10 flex items-center gap-3 rounded-lg border px-4 py-2">
|
|
168
|
+
<AudioBarIcon className="text-fm-secondary-600 h-6 w-6" />
|
|
169
|
+
<span className="text-fm-icon-active!">
|
|
170
|
+
Now Playing
|
|
171
|
+
</span>
|
|
170
172
|
</div>
|
|
171
173
|
</div>
|
|
172
174
|
</div>
|
|
@@ -175,108 +177,116 @@ function AudioPlayer() {
|
|
|
175
177
|
|
|
176
178
|
{/* Props Documentation */}
|
|
177
179
|
<div className="!space-y-8">
|
|
178
|
-
<h2 className="text-center text-3xl font-bold
|
|
180
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
179
181
|
Props & Configuration
|
|
180
182
|
</h2>
|
|
181
183
|
|
|
182
|
-
<div className="overflow-hidden rounded-lg border
|
|
183
|
-
<div className="bg-
|
|
184
|
-
<h3 className="text-xl font-semibold
|
|
184
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary overflow-hidden rounded-lg border">
|
|
185
|
+
<div className="bg-fm-surface-secondary p-4">
|
|
186
|
+
<h3 className="text-fm-icon-active! text-xl font-semibold">
|
|
187
|
+
Props
|
|
188
|
+
</h3>
|
|
185
189
|
</div>
|
|
186
190
|
<table className="!my-0 w-full">
|
|
187
|
-
<thead className="bg-
|
|
188
|
-
<tr className="border-
|
|
189
|
-
<th className="px-6 py-4 text-left text-sm font-semibold
|
|
191
|
+
<thead className="bg-fm-surface-secondary">
|
|
192
|
+
<tr className="border-fm-divider-secondary border-b">
|
|
193
|
+
<th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
|
|
190
194
|
Prop
|
|
191
195
|
</th>
|
|
192
|
-
<th className="px-6 py-4 text-left text-sm font-semibold
|
|
196
|
+
<th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
|
|
193
197
|
Type
|
|
194
198
|
</th>
|
|
195
|
-
<th className="px-6 py-4 text-left text-sm font-semibold
|
|
199
|
+
<th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
|
|
196
200
|
Default
|
|
197
201
|
</th>
|
|
198
|
-
<th className="px-6 py-4 text-left text-sm font-semibold
|
|
202
|
+
<th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
|
|
199
203
|
Description
|
|
200
204
|
</th>
|
|
201
205
|
</tr>
|
|
202
206
|
</thead>
|
|
203
207
|
<tbody>
|
|
204
208
|
{" "}
|
|
205
|
-
<tr className="
|
|
206
|
-
<td className="px-6 py-4 font-mono text-sm
|
|
209
|
+
<tr className="bg-fm-surface-secondary!">
|
|
210
|
+
<td className="text-fm-icon-info! px-6 py-4 font-mono text-sm">
|
|
207
211
|
withAccessibility
|
|
208
212
|
</td>
|
|
209
|
-
<td className="px-6 py-4 text-sm
|
|
213
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
210
214
|
boolean
|
|
211
215
|
</td>
|
|
212
|
-
<td className="px-6 py-4 text-sm
|
|
216
|
+
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
213
217
|
true
|
|
214
218
|
</td>
|
|
215
|
-
<td className="px-6 py-4 text-sm
|
|
219
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
216
220
|
Whether to wrap the icon with accessibility feature
|
|
217
221
|
</td>
|
|
218
222
|
</tr>
|
|
219
|
-
<tr className="border-
|
|
220
|
-
<td className="px-6 py-4 font-mono text-sm
|
|
223
|
+
<tr className="border-fm-divider-tertiary bg-fm-surface-secondary! border-b">
|
|
224
|
+
<td className="text-fm-secondary-600! px-6 py-4 font-mono text-sm">
|
|
221
225
|
height
|
|
222
226
|
</td>
|
|
223
|
-
<td className="px-6 py-4 text-sm
|
|
227
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
224
228
|
number | string
|
|
225
229
|
</td>
|
|
226
|
-
<td className="px-6 py-4 text-sm
|
|
227
|
-
|
|
230
|
+
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
231
|
+
12
|
|
232
|
+
</td>
|
|
233
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
228
234
|
Height of the icon in pixels
|
|
229
235
|
</td>
|
|
230
236
|
</tr>
|
|
231
|
-
<tr className="border-
|
|
232
|
-
<td className="px-6 py-4 font-mono text-sm
|
|
237
|
+
<tr className="border-fm-divider-tertiary border-b">
|
|
238
|
+
<td className="text-fm-secondary-600! px-6 py-4 font-mono text-sm">
|
|
233
239
|
fill
|
|
234
240
|
</td>
|
|
235
|
-
<td className="px-6 py-4 text-sm
|
|
241
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
236
242
|
string
|
|
237
243
|
</td>
|
|
238
|
-
<td className="px-6 py-4 text-sm
|
|
244
|
+
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
239
245
|
currentColor
|
|
240
246
|
</td>
|
|
241
|
-
<td className="px-6 py-4 text-sm
|
|
247
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
242
248
|
Fill color of the audio bars
|
|
243
249
|
</td>
|
|
244
250
|
</tr>
|
|
245
|
-
<tr className="border-
|
|
246
|
-
<td className="px-6 py-4 font-mono text-sm
|
|
251
|
+
<tr className="border-fm-divider-tertiary bg-fm-surface-secondary! border-b">
|
|
252
|
+
<td className="text-fm-secondary-600! px-6 py-4 font-mono text-sm">
|
|
247
253
|
color
|
|
248
254
|
</td>
|
|
249
|
-
<td className="px-6 py-4 text-sm
|
|
255
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
250
256
|
string
|
|
251
257
|
</td>
|
|
252
|
-
<td className="px-6 py-4 text-sm
|
|
258
|
+
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
253
259
|
currentColor
|
|
254
260
|
</td>
|
|
255
|
-
<td className="px-6 py-4 text-sm
|
|
261
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
256
262
|
Color of the icon (alternative to fill)
|
|
257
263
|
</td>
|
|
258
264
|
</tr>
|
|
259
|
-
<tr className="border-
|
|
260
|
-
<td className="px-6 py-4 font-mono text-sm
|
|
265
|
+
<tr className="border-fm-divider-tertiary border-b">
|
|
266
|
+
<td className="text-fm-secondary-600! px-6 py-4 font-mono text-sm">
|
|
261
267
|
className
|
|
262
268
|
</td>
|
|
263
|
-
<td className="px-6 py-4 text-sm
|
|
269
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
264
270
|
string
|
|
265
271
|
</td>
|
|
266
|
-
<td className="px-6 py-4 text-sm
|
|
267
|
-
|
|
272
|
+
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
273
|
+
-
|
|
274
|
+
</td>
|
|
275
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
268
276
|
CSS classes for styling
|
|
269
277
|
</td>
|
|
270
278
|
</tr>
|
|
271
|
-
<tr className="
|
|
272
|
-
<td className="px-6 py-4 font-mono text-sm
|
|
279
|
+
<tr className="bg-fm-surface-secondary!">
|
|
280
|
+
<td className="text-fm-secondary-600! px-6 py-4 font-mono text-sm">
|
|
273
281
|
...svgProps
|
|
274
282
|
</td>
|
|
275
|
-
<td className="px-6 py-4 text-sm
|
|
283
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
276
284
|
SVGProps
|
|
277
285
|
</td>
|
|
278
|
-
<td className="px-6 py-4 text-sm
|
|
279
|
-
|
|
286
|
+
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
287
|
+
-
|
|
288
|
+
</td>
|
|
289
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
280
290
|
All standard SVG element props
|
|
281
291
|
</td>
|
|
282
292
|
</tr>
|
|
@@ -287,50 +297,62 @@ function AudioPlayer() {
|
|
|
287
297
|
|
|
288
298
|
{/* Size Variations */}
|
|
289
299
|
<div className="!space-y-8">
|
|
290
|
-
<h2 className="text-center text-3xl font-bold
|
|
300
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
291
301
|
Size Variations
|
|
292
302
|
</h2>
|
|
293
|
-
<div className="rounded-lg border
|
|
303
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-8">
|
|
294
304
|
<div className="!space-y-6">
|
|
295
305
|
<div className="grid grid-cols-1 gap-8 md:grid-cols-2">
|
|
296
306
|
<div className="!space-y-4">
|
|
297
|
-
<h3 className="text-lg font-semibold
|
|
307
|
+
<h3 className="text-fm-secondary-600! text-lg font-semibold">
|
|
298
308
|
Standard Sizes
|
|
299
309
|
</h3>
|
|
300
|
-
<div className="flex items-end gap-6 rounded-lg
|
|
310
|
+
<div className="bg-fm-surface-secondary flex items-end gap-6 rounded-lg p-6">
|
|
301
311
|
<div className="text-center">
|
|
302
|
-
<AudioBarIcon className="!mx-auto mb-2 h-3 w-3
|
|
303
|
-
<span className="text-
|
|
312
|
+
<AudioBarIcon className="text-fm-secondary-600 !mx-auto mb-2 h-3 w-3" />
|
|
313
|
+
<span className="text-fm-tertiary text-xs">
|
|
314
|
+
12px
|
|
315
|
+
</span>
|
|
304
316
|
</div>
|
|
305
317
|
<div className="text-center">
|
|
306
|
-
<AudioBarIcon className="!mx-auto mb-2 h-4 w-4
|
|
307
|
-
<span className="text-
|
|
318
|
+
<AudioBarIcon className="text-fm-secondary-600 !mx-auto mb-2 h-4 w-4" />
|
|
319
|
+
<span className="text-fm-tertiary text-xs">
|
|
320
|
+
16px
|
|
321
|
+
</span>
|
|
308
322
|
</div>
|
|
309
323
|
<div className="text-center">
|
|
310
|
-
<AudioBarIcon className="!mx-auto mb-2 h-5 w-5
|
|
311
|
-
<span className="text-
|
|
324
|
+
<AudioBarIcon className="text-fm-secondary-600 !mx-auto mb-2 h-5 w-5" />
|
|
325
|
+
<span className="text-fm-tertiary text-xs">
|
|
326
|
+
20px
|
|
327
|
+
</span>
|
|
312
328
|
</div>
|
|
313
329
|
<div className="text-center">
|
|
314
|
-
<AudioBarIcon className="!mx-auto mb-2 h-6 w-6
|
|
315
|
-
<span className="text-
|
|
330
|
+
<AudioBarIcon className="text-fm-secondary-600 !mx-auto mb-2 h-6 w-6" />
|
|
331
|
+
<span className="text-fm-tertiary text-xs">
|
|
332
|
+
24px
|
|
333
|
+
</span>
|
|
316
334
|
</div>
|
|
317
335
|
<div className="text-center">
|
|
318
|
-
<AudioBarIcon className="!mx-auto mb-2 h-8 w-8
|
|
319
|
-
<span className="text-
|
|
336
|
+
<AudioBarIcon className="text-fm-secondary-600 !mx-auto mb-2 h-8 w-8" />
|
|
337
|
+
<span className="text-fm-tertiary text-xs">
|
|
338
|
+
32px
|
|
339
|
+
</span>
|
|
320
340
|
</div>
|
|
321
341
|
<div className="text-center">
|
|
322
|
-
<AudioBarIcon className="!mx-auto mb-2 h-12 w-12
|
|
323
|
-
<span className="text-
|
|
342
|
+
<AudioBarIcon className="text-fm-secondary-600 !mx-auto mb-2 h-12 w-12" />
|
|
343
|
+
<span className="text-fm-tertiary text-xs">
|
|
344
|
+
48px
|
|
345
|
+
</span>
|
|
324
346
|
</div>
|
|
325
347
|
</div>
|
|
326
348
|
</div>
|
|
327
349
|
|
|
328
350
|
<div className="!space-y-4">
|
|
329
|
-
<h3 className="text-lg font-semibold
|
|
351
|
+
<h3 className="text-fm-secondary-600! text-lg font-semibold">
|
|
330
352
|
Code Example
|
|
331
353
|
</h3>
|
|
332
|
-
<div className="rounded-lg
|
|
333
|
-
<pre className="overflow-x-auto text-sm
|
|
354
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
355
|
+
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
334
356
|
{`// Small (16px)
|
|
335
357
|
<AudioBarIcon className="h-4 w-4" />
|
|
336
358
|
|
|
@@ -352,67 +374,67 @@ function AudioPlayer() {
|
|
|
352
374
|
|
|
353
375
|
{/* Color Variations */}
|
|
354
376
|
<div className="!space-y-8">
|
|
355
|
-
<h2 className="text-center text-3xl font-bold
|
|
377
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
356
378
|
Color Variations
|
|
357
379
|
</h2>
|
|
358
380
|
<div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
|
|
359
381
|
<div className="!space-y-4">
|
|
360
|
-
<h3 className="text-lg font-semibold
|
|
382
|
+
<h3 className="text-fm-secondary-600! text-lg font-semibold">
|
|
361
383
|
Audio State Colors
|
|
362
384
|
</h3>
|
|
363
|
-
<div className="!space-y-4 rounded-lg border
|
|
385
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
|
|
364
386
|
<div className="flex items-center gap-4">
|
|
365
|
-
<AudioBarIcon className="h-6 w-6
|
|
387
|
+
<AudioBarIcon className="text-fm-secondary-600 h-6 w-6" />
|
|
366
388
|
<div>
|
|
367
|
-
<div className="text-sm font-medium
|
|
389
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
368
390
|
Active Audio
|
|
369
391
|
</div>
|
|
370
|
-
<div className="text-
|
|
371
|
-
text-
|
|
392
|
+
<div className="text-fm-tertiary text-xs">
|
|
393
|
+
text-fm-secondary-600
|
|
372
394
|
</div>
|
|
373
395
|
</div>
|
|
374
396
|
</div>
|
|
375
397
|
<div className="flex items-center gap-4">
|
|
376
|
-
<AudioBarIcon className="h-6 w-6
|
|
398
|
+
<AudioBarIcon className="text-fm-icon-positive h-6 w-6" />
|
|
377
399
|
<div>
|
|
378
|
-
<div className="text-sm font-medium
|
|
400
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
379
401
|
Recording
|
|
380
402
|
</div>
|
|
381
|
-
<div className="text-
|
|
382
|
-
text-
|
|
403
|
+
<div className="text-fm-tertiary text-xs">
|
|
404
|
+
text-fm-icon-positive
|
|
383
405
|
</div>
|
|
384
406
|
</div>
|
|
385
407
|
</div>
|
|
386
408
|
<div className="flex items-center gap-4">
|
|
387
|
-
<AudioBarIcon className="h-6 w-6
|
|
409
|
+
<AudioBarIcon className="text-fm-icon-negative h-6 w-6" />
|
|
388
410
|
<div>
|
|
389
|
-
<div className="text-sm font-medium
|
|
411
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
390
412
|
Live/Streaming
|
|
391
413
|
</div>
|
|
392
|
-
<div className="text-
|
|
393
|
-
text-
|
|
414
|
+
<div className="text-fm-tertiary text-xs">
|
|
415
|
+
text-fm-icon-negative
|
|
394
416
|
</div>
|
|
395
417
|
</div>
|
|
396
418
|
</div>
|
|
397
419
|
<div className="flex items-center gap-4">
|
|
398
|
-
<AudioBarIcon className="h-6 w-6
|
|
420
|
+
<AudioBarIcon className="text-fm-icon-info h-6 w-6" />
|
|
399
421
|
<div>
|
|
400
|
-
<div className="text-sm font-medium
|
|
422
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
401
423
|
Analyzing
|
|
402
424
|
</div>
|
|
403
|
-
<div className="text-
|
|
404
|
-
text-
|
|
425
|
+
<div className="text-fm-tertiary text-xs">
|
|
426
|
+
text-fm-icon-info
|
|
405
427
|
</div>
|
|
406
428
|
</div>
|
|
407
429
|
</div>
|
|
408
430
|
<div className="flex items-center gap-4">
|
|
409
|
-
<AudioBarIcon className="h-6 w-6
|
|
431
|
+
<AudioBarIcon className="text-fm-placeholder h-6 w-6" />
|
|
410
432
|
<div>
|
|
411
|
-
<div className="text-sm font-medium
|
|
433
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
412
434
|
Inactive
|
|
413
435
|
</div>
|
|
414
|
-
<div className="text-
|
|
415
|
-
text-
|
|
436
|
+
<div className="text-fm-tertiary text-xs">
|
|
437
|
+
text-fm-placeholder
|
|
416
438
|
</div>
|
|
417
439
|
</div>
|
|
418
440
|
</div>
|
|
@@ -420,11 +442,11 @@ function AudioPlayer() {
|
|
|
420
442
|
</div>
|
|
421
443
|
|
|
422
444
|
<div className="!space-y-4">
|
|
423
|
-
<h3 className="text-lg font-semibold
|
|
445
|
+
<h3 className="text-fm-secondary-600! text-lg font-semibold">
|
|
424
446
|
Custom Colors
|
|
425
447
|
</h3>
|
|
426
|
-
<div className="rounded-lg
|
|
427
|
-
<pre className="overflow-x-auto text-sm
|
|
448
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
449
|
+
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
428
450
|
{`// Using Tailwind classes
|
|
429
451
|
<AudioBarIcon className="h-6 w-6 text-violet-400" />
|
|
430
452
|
<AudioBarIcon className="h-6 w-6 text-green-500" />
|
|
@@ -452,37 +474,37 @@ function AudioPlayer() {
|
|
|
452
474
|
|
|
453
475
|
{/* Animation Examples */}
|
|
454
476
|
<div className="!space-y-8">
|
|
455
|
-
<h2 className="text-center text-3xl font-bold
|
|
477
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
456
478
|
Animation & Effects
|
|
457
479
|
</h2>
|
|
458
480
|
<div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
|
|
459
481
|
<div className="!space-y-4">
|
|
460
|
-
<h3 className="text-lg font-semibold
|
|
482
|
+
<h3 className="text-fm-secondary-600! text-lg font-semibold">
|
|
461
483
|
Animated States
|
|
462
484
|
</h3>
|
|
463
|
-
<div className="!space-y-4 rounded-lg border
|
|
485
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
|
|
464
486
|
<div className="grid grid-cols-2 gap-4">
|
|
465
487
|
<div className="flex flex-col items-center gap-2">
|
|
466
|
-
<AudioBarIcon className="h-8 w-8 animate-pulse
|
|
467
|
-
<span className="text-
|
|
488
|
+
<AudioBarIcon className="text-fm-secondary-600 h-8 w-8 animate-pulse" />
|
|
489
|
+
<span className="text-fm-tertiary! text-xs">
|
|
468
490
|
Pulsing
|
|
469
491
|
</span>
|
|
470
492
|
</div>
|
|
471
493
|
<div className="flex flex-col items-center gap-2">
|
|
472
|
-
<AudioBarIcon className="h-8 w-8 animate-bounce
|
|
473
|
-
<span className="text-
|
|
494
|
+
<AudioBarIcon className="text-fm-icon-positive h-8 w-8 animate-bounce" />
|
|
495
|
+
<span className="text-fm-tertiary! text-xs">
|
|
474
496
|
Bouncing
|
|
475
497
|
</span>
|
|
476
498
|
</div>
|
|
477
499
|
<div className="flex flex-col items-center gap-2">
|
|
478
|
-
<AudioBarIcon className="h-8 w-8 animate-spin
|
|
479
|
-
<span className="text-
|
|
500
|
+
<AudioBarIcon className="text-fm-icon-info h-8 w-8 animate-spin" />
|
|
501
|
+
<span className="text-fm-tertiary! text-xs">
|
|
480
502
|
Processing
|
|
481
503
|
</span>
|
|
482
504
|
</div>
|
|
483
505
|
<div className="flex flex-col items-center gap-2">
|
|
484
|
-
<AudioBarIcon className="h-8 w-8
|
|
485
|
-
<span className="text-
|
|
506
|
+
<AudioBarIcon className="text-fm-icon-negative h-8 w-8 transition-all hover:scale-110" />
|
|
507
|
+
<span className="text-fm-tertiary! text-xs">
|
|
486
508
|
Hover Scale
|
|
487
509
|
</span>
|
|
488
510
|
</div>
|
|
@@ -491,11 +513,11 @@ function AudioPlayer() {
|
|
|
491
513
|
</div>
|
|
492
514
|
|
|
493
515
|
<div className="!space-y-4">
|
|
494
|
-
<h3 className="text-lg font-semibold
|
|
516
|
+
<h3 className="text-fm-secondary-600! text-lg font-semibold">
|
|
495
517
|
Animation Code
|
|
496
518
|
</h3>
|
|
497
|
-
<div className="rounded-lg
|
|
498
|
-
<pre className="overflow-x-auto text-sm
|
|
519
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
520
|
+
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
499
521
|
{`// Pulse animation for active audio
|
|
500
522
|
<AudioBarIcon className="h-6 w-6 animate-pulse text-violet-400" />
|
|
501
523
|
|
|
@@ -518,33 +540,33 @@ function AudioPlayer() {
|
|
|
518
540
|
|
|
519
541
|
{/* Usage Examples */}
|
|
520
542
|
<div className="!space-y-8">
|
|
521
|
-
<h2 className="text-center text-3xl font-bold
|
|
543
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
522
544
|
Usage Examples
|
|
523
545
|
</h2>
|
|
524
546
|
|
|
525
547
|
<div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
|
|
526
548
|
{/* Audio Player */}
|
|
527
549
|
<div className="!space-y-4">
|
|
528
|
-
<h3 className="text-lg font-semibold
|
|
550
|
+
<h3 className="text-fm-secondary-600! text-lg font-semibold">
|
|
529
551
|
Music Player
|
|
530
552
|
</h3>
|
|
531
553
|
<div className="!space-y-4">
|
|
532
|
-
<div className="rounded-lg border
|
|
554
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-4">
|
|
533
555
|
<div className="flex items-center gap-4">
|
|
534
|
-
<div className="flex h-12 w-12 items-center justify-center rounded-lg
|
|
535
|
-
<AudioBarIcon className="h-6 w-6 animate-pulse
|
|
556
|
+
<div className="bg-fm-secondary-500/20 flex h-12 w-12 items-center justify-center rounded-lg">
|
|
557
|
+
<AudioBarIcon className="text-fm-secondary-600 h-6 w-6 animate-pulse" />
|
|
536
558
|
</div>
|
|
537
559
|
<div className="flex-1">
|
|
538
|
-
<h4 className="font-medium
|
|
560
|
+
<h4 className="text-fm-icon-active! font-medium">
|
|
539
561
|
Bohemian Rhapsody
|
|
540
562
|
</h4>
|
|
541
|
-
<p className="text-
|
|
563
|
+
<p className="text-fm-tertiary! text-sm">Queen</p>
|
|
542
564
|
</div>
|
|
543
|
-
<div className="text-
|
|
565
|
+
<div className="text-fm-tertiary! text-sm">3:42</div>
|
|
544
566
|
</div>
|
|
545
567
|
</div>
|
|
546
|
-
<div className="rounded-lg
|
|
547
|
-
<pre className="overflow-x-auto text-sm
|
|
568
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
569
|
+
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
548
570
|
{`<div className="flex items-center gap-4 p-4 bg-white/5 border border-white/10 rounded-lg">
|
|
549
571
|
<div className="flex items-center justify-center w-12 h-12 bg-violet-500/20 rounded-lg">
|
|
550
572
|
<AudioBarIcon className="w-6 h-6 text-violet-400 animate-pulse" />
|
|
@@ -562,24 +584,28 @@ function AudioPlayer() {
|
|
|
562
584
|
|
|
563
585
|
{/* Voice Recording */}
|
|
564
586
|
<div className="!space-y-4">
|
|
565
|
-
<h3 className="text-lg font-semibold
|
|
587
|
+
<h3 className="text-fm-secondary-600! text-lg font-semibold">
|
|
566
588
|
Voice Recording
|
|
567
589
|
</h3>
|
|
568
590
|
<div className="!space-y-4">
|
|
569
|
-
<div className="
|
|
591
|
+
<div className="border-fm-icon-negative/20 bg-fm-icon-negative/10 rounded-lg border p-4">
|
|
570
592
|
<div className="flex items-center justify-between">
|
|
571
593
|
<div className="flex items-center gap-3">
|
|
572
|
-
<AudioBarIcon className="h-5 w-5 animate-bounce
|
|
573
|
-
<span className="
|
|
594
|
+
<AudioBarIcon className="text-fm-icon-negative h-5 w-5 animate-bounce" />
|
|
595
|
+
<span className="text-fm-icon-negative!">
|
|
596
|
+
Recording...
|
|
597
|
+
</span>
|
|
598
|
+
</div>
|
|
599
|
+
<div className="text-fm-icon-negative! text-sm">
|
|
600
|
+
00:42
|
|
574
601
|
</div>
|
|
575
|
-
<div className="text-sm !text-red-300">00:42</div>
|
|
576
602
|
</div>
|
|
577
|
-
<div className="mt-3 h-2 rounded-full
|
|
578
|
-
<div className="h-full w-1/3 rounded-full
|
|
603
|
+
<div className="bg-fm-icon-negative/20 mt-3 h-2 rounded-full">
|
|
604
|
+
<div className="bg-fm-icon-negative h-full w-1/3 rounded-full"></div>
|
|
579
605
|
</div>
|
|
580
606
|
</div>
|
|
581
|
-
<div className="rounded-lg
|
|
582
|
-
<pre className="overflow-x-auto text-sm
|
|
607
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
608
|
+
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
583
609
|
{`<div className="p-4 bg-red-500/10 border border-red-500/20 rounded-lg">
|
|
584
610
|
<div className="flex items-center justify-between">
|
|
585
611
|
<div className="flex items-center gap-3">
|
|
@@ -599,26 +625,26 @@ function AudioPlayer() {
|
|
|
599
625
|
|
|
600
626
|
{/* Audio Controls */}
|
|
601
627
|
<div className="!space-y-4">
|
|
602
|
-
<h3 className="text-lg font-semibold
|
|
628
|
+
<h3 className="text-fm-secondary-600! text-lg font-semibold">
|
|
603
629
|
Audio Controls
|
|
604
630
|
</h3>
|
|
605
631
|
<div className="!space-y-4">
|
|
606
|
-
<div className="flex items-center gap-4 rounded-lg border
|
|
607
|
-
<button className="flex items-center gap-2 rounded-lg border
|
|
632
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary flex items-center gap-4 rounded-lg border p-4">
|
|
633
|
+
<button className="border-fm-secondary-500/30 bg-fm-secondary-500/20 text-fm-secondary-600 hover:bg-fm-secondary-500/30 flex items-center gap-2 rounded-lg border px-3 py-2 transition-colors">
|
|
608
634
|
<AudioBarIcon className="h-4 w-4" />
|
|
609
635
|
Equalizer
|
|
610
636
|
</button>
|
|
611
|
-
<button className="flex items-center gap-2 rounded-lg border
|
|
637
|
+
<button className="border-fm-icon-positive/30 bg-fm-icon-positive/20 text-fm-icon-positive hover:bg-fm-icon-positive/30 flex items-center gap-2 rounded-lg border px-3 py-2 transition-colors">
|
|
612
638
|
<AudioBarIcon className="h-4 w-4" />
|
|
613
639
|
Visualizer
|
|
614
640
|
</button>
|
|
615
|
-
<button className="flex items-center gap-2 rounded-lg border
|
|
641
|
+
<button className="border-fm-icon-info/30 bg-fm-icon-info/20 text-fm-icon-info hover:bg-fm-icon-info/30 flex items-center gap-2 rounded-lg border px-3 py-2 transition-colors">
|
|
616
642
|
<AudioBarIcon className="h-4 w-4" />
|
|
617
643
|
Spectrum
|
|
618
644
|
</button>
|
|
619
645
|
</div>
|
|
620
|
-
<div className="rounded-lg
|
|
621
|
-
<pre className="overflow-x-auto text-sm
|
|
646
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
647
|
+
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
622
648
|
{`<div className="flex items-center gap-4">
|
|
623
649
|
<button className="flex items-center gap-2 px-3 py-2 bg-violet-500/20 border border-violet-500/30 rounded-lg">
|
|
624
650
|
<AudioBarIcon className="w-4 h-4" />
|
|
@@ -636,43 +662,47 @@ function AudioPlayer() {
|
|
|
636
662
|
|
|
637
663
|
{/* Audio Status */}
|
|
638
664
|
<div className="!space-y-4">
|
|
639
|
-
<h3 className="text-lg font-semibold
|
|
665
|
+
<h3 className="text-fm-secondary-600! text-lg font-semibold">
|
|
640
666
|
Audio Status Indicator
|
|
641
667
|
</h3>
|
|
642
668
|
<div className="!space-y-4">
|
|
643
669
|
<div className="!space-y-3">
|
|
644
|
-
<div className="flex items-center justify-between rounded-lg border
|
|
645
|
-
<span className="text-
|
|
670
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary flex items-center justify-between rounded-lg border p-3">
|
|
671
|
+
<span className="text-fm-icon-active! text-sm">
|
|
646
672
|
Microphone
|
|
647
673
|
</span>
|
|
648
674
|
<div className="flex items-center gap-2">
|
|
649
|
-
<AudioBarIcon className="h-4 w-4
|
|
650
|
-
<span className="text-
|
|
675
|
+
<AudioBarIcon className="text-fm-icon-positive h-4 w-4" />
|
|
676
|
+
<span className="text-fm-icon-positive! text-xs">
|
|
651
677
|
Active
|
|
652
678
|
</span>
|
|
653
679
|
</div>
|
|
654
680
|
</div>
|
|
655
|
-
<div className="flex items-center justify-between rounded-lg border
|
|
656
|
-
<span className="text-
|
|
681
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary flex items-center justify-between rounded-lg border p-3">
|
|
682
|
+
<span className="text-fm-icon-active! text-sm">
|
|
683
|
+
Speakers
|
|
684
|
+
</span>
|
|
657
685
|
<div className="flex items-center gap-2">
|
|
658
|
-
<AudioBarIcon className="h-4 w-4 animate-pulse
|
|
659
|
-
<span className="text-
|
|
686
|
+
<AudioBarIcon className="text-fm-secondary-600 h-4 w-4 animate-pulse" />
|
|
687
|
+
<span className="text-fm-secondary-600! text-xs">
|
|
660
688
|
Playing
|
|
661
689
|
</span>
|
|
662
690
|
</div>
|
|
663
691
|
</div>
|
|
664
|
-
<div className="flex items-center justify-between rounded-lg border
|
|
665
|
-
<span className="text-
|
|
692
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary flex items-center justify-between rounded-lg border p-3">
|
|
693
|
+
<span className="text-fm-icon-active! text-sm">
|
|
694
|
+
Recording
|
|
695
|
+
</span>
|
|
666
696
|
<div className="flex items-center gap-2">
|
|
667
|
-
<AudioBarIcon className="h-4 w-4
|
|
668
|
-
<span className="text-
|
|
697
|
+
<AudioBarIcon className="text-fm-placeholder h-4 w-4" />
|
|
698
|
+
<span className="!text-fm-placeholder text-xs">
|
|
669
699
|
Disabled
|
|
670
700
|
</span>
|
|
671
701
|
</div>
|
|
672
702
|
</div>
|
|
673
703
|
</div>
|
|
674
|
-
<div className="rounded-lg
|
|
675
|
-
<pre className="overflow-x-auto text-sm
|
|
704
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
705
|
+
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
676
706
|
{`// Active microphone
|
|
677
707
|
<div className="flex items-center gap-2">
|
|
678
708
|
<AudioBarIcon className="w-4 h-4 text-green-400" />
|
|
@@ -697,30 +727,32 @@ function AudioPlayer() {
|
|
|
697
727
|
|
|
698
728
|
{/* Audio Dashboard */}
|
|
699
729
|
<div className="!space-y-4">
|
|
700
|
-
<h3 className="text-lg font-semibold
|
|
730
|
+
<h3 className="text-fm-secondary-600! text-lg font-semibold">
|
|
701
731
|
Audio Dashboard
|
|
702
732
|
</h3>
|
|
703
733
|
<div className="!space-y-4">
|
|
704
734
|
<div className="grid grid-cols-2 gap-4">
|
|
705
|
-
<div className="rounded-lg border
|
|
706
|
-
<AudioBarIcon className="!mx-auto mb-2 h-8 w-8
|
|
707
|
-
<div className="text-sm font-medium
|
|
735
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-4 text-center">
|
|
736
|
+
<AudioBarIcon className="text-fm-secondary-600 !mx-auto mb-2 h-8 w-8" />
|
|
737
|
+
<div className="text-fm-icon-active! text-sm font-medium">
|
|
708
738
|
Audio Quality
|
|
709
739
|
</div>
|
|
710
|
-
<div className="text-
|
|
740
|
+
<div className="text-fm-tertiary! text-xs">
|
|
741
|
+
HD Audio
|
|
742
|
+
</div>
|
|
711
743
|
</div>
|
|
712
|
-
<div className="rounded-lg border
|
|
713
|
-
<AudioBarIcon className="!mx-auto mb-2 h-8 w-8 animate-pulse
|
|
714
|
-
<div className="text-sm font-medium
|
|
744
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-4 text-center">
|
|
745
|
+
<AudioBarIcon className="text-fm-icon-positive !mx-auto mb-2 h-8 w-8 animate-pulse" />
|
|
746
|
+
<div className="text-fm-icon-active! text-sm font-medium">
|
|
715
747
|
Live Stream
|
|
716
748
|
</div>
|
|
717
|
-
<div className="text-
|
|
749
|
+
<div className="text-fm-tertiary! text-xs">
|
|
718
750
|
Broadcasting
|
|
719
751
|
</div>
|
|
720
752
|
</div>
|
|
721
753
|
</div>
|
|
722
|
-
<div className="rounded-lg
|
|
723
|
-
<pre className="overflow-x-auto text-sm
|
|
754
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
755
|
+
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
724
756
|
{`<div className="grid grid-cols-2 gap-4">
|
|
725
757
|
<div className="p-4 bg-white/5 border border-white/10 rounded-lg text-center">
|
|
726
758
|
<AudioBarIcon className="w-8 h-8 mx-auto mb-2 text-violet-400" />
|
|
@@ -740,24 +772,24 @@ function AudioPlayer() {
|
|
|
740
772
|
|
|
741
773
|
{/* Navigation Tab */}
|
|
742
774
|
<div className="!space-y-4">
|
|
743
|
-
<h3 className="text-lg font-semibold
|
|
775
|
+
<h3 className="text-fm-secondary-600! text-lg font-semibold">
|
|
744
776
|
Navigation Tab
|
|
745
777
|
</h3>
|
|
746
778
|
<div className="!space-y-4">
|
|
747
|
-
<div className="flex rounded-lg border
|
|
748
|
-
<button className="flex flex-1 items-center justify-center gap-2 rounded-md
|
|
779
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary flex rounded-lg border p-1">
|
|
780
|
+
<button className="bg-fm-secondary-500/20 text-fm-secondary-600 flex flex-1 items-center justify-center gap-2 rounded-md px-3 py-2">
|
|
749
781
|
<AudioBarIcon className="h-4 w-4" />
|
|
750
782
|
<span className="text-sm">Audio</span>
|
|
751
783
|
</button>
|
|
752
|
-
<button className="flex flex-1 items-center justify-center gap-2 rounded-md px-3 py-2
|
|
784
|
+
<button className="text-fm-tertiary hover:bg-fm-surface-secondary flex flex-1 items-center justify-center gap-2 rounded-md px-3 py-2 transition-colors">
|
|
753
785
|
<span className="text-sm">Video</span>
|
|
754
786
|
</button>
|
|
755
|
-
<button className="flex flex-1 items-center justify-center gap-2 rounded-md px-3 py-2
|
|
787
|
+
<button className="text-fm-tertiary hover:bg-fm-surface-secondary flex flex-1 items-center justify-center gap-2 rounded-md px-3 py-2 transition-colors">
|
|
756
788
|
<span className="text-sm">Settings</span>
|
|
757
789
|
</button>
|
|
758
790
|
</div>
|
|
759
|
-
<div className="rounded-lg
|
|
760
|
-
<pre className="overflow-x-auto text-sm
|
|
791
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
792
|
+
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
761
793
|
{`<div className="flex p-1 bg-white/5 border border-white/10 rounded-lg">
|
|
762
794
|
<button className="flex items-center justify-center flex-1 gap-2 px-3 py-2 bg-violet-500/20 rounded-md text-violet-200">
|
|
763
795
|
<AudioBarIcon className="w-4 h-4" />
|
|
@@ -776,64 +808,64 @@ function AudioPlayer() {
|
|
|
776
808
|
|
|
777
809
|
{/* Accessibility */}
|
|
778
810
|
<div className="!space-y-8">
|
|
779
|
-
<h2 className="text-center text-3xl font-bold
|
|
811
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
780
812
|
Accessibility Features
|
|
781
813
|
</h2>
|
|
782
814
|
<div className="grid grid-cols-1 gap-8 md:grid-cols-2">
|
|
783
|
-
<div className="!space-y-4 rounded-lg border
|
|
784
|
-
<h3 className="text-lg font-semibold
|
|
815
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
|
|
816
|
+
<h3 className="text-fm-icon-positive! text-lg font-semibold">
|
|
785
817
|
✅ Built-in Features
|
|
786
818
|
</h3>
|
|
787
|
-
<ul className="!space-y-2 text-sm
|
|
788
|
-
<li className="
|
|
819
|
+
<ul className="text-fm-secondary! !space-y-2 text-sm">
|
|
820
|
+
<li className="text-fm-secondary!">
|
|
789
821
|
Uses Radix UI AccessibleIcon wrapper
|
|
790
822
|
</li>
|
|
791
|
-
<li className="
|
|
823
|
+
<li className="text-fm-secondary!">
|
|
792
824
|
Provides screen reader label "Audio Bar icon"
|
|
793
825
|
</li>
|
|
794
|
-
<li className="
|
|
826
|
+
<li className="text-fm-secondary!">
|
|
795
827
|
Supports keyboard navigation when interactive
|
|
796
828
|
</li>
|
|
797
|
-
<li className="
|
|
829
|
+
<li className="text-fm-secondary!">
|
|
798
830
|
Maintains proper color contrast ratios
|
|
799
831
|
</li>
|
|
800
|
-
<li className="
|
|
832
|
+
<li className="text-fm-secondary!">
|
|
801
833
|
Respects user's motion preferences for animations
|
|
802
834
|
</li>
|
|
803
835
|
</ul>
|
|
804
836
|
</div>
|
|
805
837
|
|
|
806
|
-
<div className="!space-y-4 rounded-lg border
|
|
807
|
-
<h3 className="text-lg font-semibold
|
|
838
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
|
|
839
|
+
<h3 className="text-fm-secondary-600! text-lg font-semibold">
|
|
808
840
|
💡 Best Practices
|
|
809
841
|
</h3>
|
|
810
|
-
<ul className="!space-y-2 text-sm
|
|
811
|
-
<li className="
|
|
842
|
+
<ul className="text-fm-secondary !space-y-2 text-sm">
|
|
843
|
+
<li className="text-fm-secondary!">
|
|
812
844
|
Always provide audio context with descriptive text
|
|
813
845
|
</li>
|
|
814
|
-
<li className="
|
|
846
|
+
<li className="text-fm-secondary!">
|
|
815
847
|
Use consistent colors for different audio states
|
|
816
848
|
</li>
|
|
817
|
-
<li className="
|
|
849
|
+
<li className="text-fm-secondary!">
|
|
818
850
|
Provide alternative text indicators for audio states
|
|
819
851
|
</li>
|
|
820
|
-
<li className="
|
|
852
|
+
<li className="text-fm-secondary!">
|
|
821
853
|
Consider users with hearing impairments
|
|
822
854
|
</li>
|
|
823
|
-
<li className="
|
|
855
|
+
<li className="text-fm-secondary!">
|
|
824
856
|
Test with reduced motion preferences
|
|
825
857
|
</li>
|
|
826
858
|
</ul>
|
|
827
859
|
</div>
|
|
828
860
|
</div>
|
|
829
861
|
|
|
830
|
-
<div className="rounded-lg border
|
|
831
|
-
<h3 className="mb-4 text-lg font-semibold
|
|
862
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
|
|
863
|
+
<h3 className="text-fm-secondary-600! mb-4 text-lg font-semibold">
|
|
832
864
|
Accessible Audio Implementation
|
|
833
865
|
</h3>
|
|
834
866
|
<div className="grid grid-cols-1 gap-6 lg:grid-cols-2">
|
|
835
|
-
<div className="rounded-lg
|
|
836
|
-
<pre className="overflow-x-auto text-sm
|
|
867
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
868
|
+
<pre className="text-fm-icon-info! overflow-x-auto text-sm">
|
|
837
869
|
{`// Custom implementation with audio context
|
|
838
870
|
import { AccessibleIcon } from "@radix-ui/react-accessible-icon"
|
|
839
871
|
|
|
@@ -860,13 +892,13 @@ function AccessibleAudioIcon({
|
|
|
860
892
|
</pre>
|
|
861
893
|
</div>
|
|
862
894
|
<div className="!space-y-4">
|
|
863
|
-
<p className="text-
|
|
895
|
+
<p className="text-fm-secondary! text-sm">
|
|
864
896
|
This implementation provides dynamic accessibility
|
|
865
897
|
labels based on audio state and level, giving screen
|
|
866
898
|
readers meaningful context.
|
|
867
899
|
</p>
|
|
868
|
-
<div className="
|
|
869
|
-
<div className="flex items-center gap-2 text-sm
|
|
900
|
+
<div className="border-fm-secondary-500/20 bg-fm-secondary-500/10 rounded-lg border p-4">
|
|
901
|
+
<div className="text-fm-secondary-600! flex items-center gap-2 text-sm">
|
|
870
902
|
<AudioBarIcon className="h-4 w-4" />
|
|
871
903
|
<span>
|
|
872
904
|
Dynamic labels help users understand audio activity
|
|
@@ -880,48 +912,60 @@ function AccessibleAudioIcon({
|
|
|
880
912
|
|
|
881
913
|
{/* Related Icons */}
|
|
882
914
|
<div className="!space-y-8">
|
|
883
|
-
<h2 className="text-center text-3xl font-bold
|
|
915
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
884
916
|
Related Icons
|
|
885
917
|
</h2>
|
|
886
918
|
<div className="grid grid-cols-2 gap-6 md:grid-cols-4">
|
|
887
|
-
<div className="!space-y-3 rounded-lg border
|
|
888
|
-
<div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg
|
|
919
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
|
|
920
|
+
<div className="bg-fm-icon-positive/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
|
|
889
921
|
<span className="text-2xl">🎵</span>
|
|
890
922
|
</div>
|
|
891
923
|
<div>
|
|
892
|
-
<div className="font-medium
|
|
893
|
-
|
|
924
|
+
<div className="text-fm-icon-active font-medium">
|
|
925
|
+
MusicIcon
|
|
926
|
+
</div>
|
|
927
|
+
<div className="text-fm-tertiary text-xs">
|
|
894
928
|
Music & melody
|
|
895
929
|
</div>
|
|
896
930
|
</div>
|
|
897
931
|
</div>
|
|
898
|
-
<div className="!space-y-3 rounded-lg border
|
|
899
|
-
<div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg
|
|
932
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
|
|
933
|
+
<div className="bg-fm-icon-info/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
|
|
900
934
|
<span className="text-2xl">🎤</span>
|
|
901
935
|
</div>
|
|
902
936
|
<div>
|
|
903
|
-
<div className="font-medium
|
|
937
|
+
<div className="text-fm-icon-active font-medium">
|
|
904
938
|
MicrophoneIcon
|
|
905
939
|
</div>
|
|
906
|
-
<div className="text-
|
|
940
|
+
<div className="text-fm-tertiary text-xs">
|
|
941
|
+
Voice input
|
|
942
|
+
</div>
|
|
907
943
|
</div>
|
|
908
944
|
</div>
|
|
909
|
-
<div className="!space-y-3 rounded-lg border
|
|
910
|
-
<div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg
|
|
945
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
|
|
946
|
+
<div className="bg-fm-secondary-500/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
|
|
911
947
|
<span className="text-2xl">🔊</span>
|
|
912
948
|
</div>
|
|
913
949
|
<div>
|
|
914
|
-
<div className="font-medium
|
|
915
|
-
|
|
950
|
+
<div className="text-fm-icon-active font-medium">
|
|
951
|
+
VolumeIcon
|
|
952
|
+
</div>
|
|
953
|
+
<div className="text-fm-tertiary text-xs">
|
|
954
|
+
Audio output
|
|
955
|
+
</div>
|
|
916
956
|
</div>
|
|
917
957
|
</div>
|
|
918
|
-
<div className="!space-y-3 rounded-lg border
|
|
919
|
-
<div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg
|
|
958
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
|
|
959
|
+
<div className="bg-fm-icon-warning/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
|
|
920
960
|
<span className="text-2xl">📻</span>
|
|
921
961
|
</div>
|
|
922
962
|
<div>
|
|
923
|
-
<div className="font-medium
|
|
924
|
-
|
|
963
|
+
<div className="text-fm-icon-active font-medium">
|
|
964
|
+
RadioIcon
|
|
965
|
+
</div>
|
|
966
|
+
<div className="text-fm-tertiary text-xs">
|
|
967
|
+
Broadcasting
|
|
968
|
+
</div>
|
|
925
969
|
</div>
|
|
926
970
|
</div>
|
|
927
971
|
</div>
|
|
@@ -929,14 +973,14 @@ function AccessibleAudioIcon({
|
|
|
929
973
|
</div>
|
|
930
974
|
|
|
931
975
|
{/* Footer */}
|
|
932
|
-
<div className="border-
|
|
976
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary border-t backdrop-blur-xl">
|
|
933
977
|
<div className="!mx-auto max-w-7xl px-6 py-8">
|
|
934
978
|
<div className="!space-y-4 text-center">
|
|
935
|
-
<p className="
|
|
979
|
+
<p className="text-fm-tertiary!">
|
|
936
980
|
AudioBarIcon is part of the Aural UI icon library, designed
|
|
937
981
|
for clear audio visualization and interaction feedback.
|
|
938
982
|
</p>
|
|
939
|
-
<p className="text-
|
|
983
|
+
<p className="text-fm-placeholder! text-sm">
|
|
940
984
|
Perfect for music players, voice interfaces, audio controls,
|
|
941
985
|
and any application requiring audio state visualization.
|
|
942
986
|
</p>
|
|
@@ -985,8 +1029,8 @@ const storyParameters = {
|
|
|
985
1029
|
backgrounds: {
|
|
986
1030
|
default: "dark",
|
|
987
1031
|
values: [
|
|
988
|
-
{ name: "dark", value: "
|
|
989
|
-
{ name: "darker", value: "
|
|
1032
|
+
{ name: "dark", value: "var(--color-fm-surface-primary)" },
|
|
1033
|
+
{ name: "darker", value: "var(--color-fm-neutral-0)" },
|
|
990
1034
|
],
|
|
991
1035
|
},
|
|
992
1036
|
}
|
|
@@ -995,12 +1039,12 @@ export const Default: Story = {
|
|
|
995
1039
|
args: {
|
|
996
1040
|
width: 24,
|
|
997
1041
|
height: 24,
|
|
998
|
-
className: "text-
|
|
1042
|
+
className: "text-fm-secondary-600",
|
|
999
1043
|
withAccessibility: true,
|
|
1000
1044
|
},
|
|
1001
1045
|
parameters: storyParameters,
|
|
1002
1046
|
render: (args) => (
|
|
1003
|
-
<div className="flex h-32 min-h-dvh items-center justify-center rounded-lg bg-
|
|
1047
|
+
<div className="from-fm-surface-primary to-fm-surface-secondary flex h-32 min-h-dvh items-center justify-center rounded-lg bg-linear-to-br">
|
|
1004
1048
|
<AudioBarIcon {...args} />
|
|
1005
1049
|
</div>
|
|
1006
1050
|
),
|
|
@@ -1017,30 +1061,30 @@ export const SizeVariations: Story = {
|
|
|
1017
1061
|
},
|
|
1018
1062
|
},
|
|
1019
1063
|
render: () => (
|
|
1020
|
-
<div className="flex h-64 min-h-dvh items-center justify-center gap-8 rounded-lg bg-
|
|
1064
|
+
<div className="from-fm-surface-primary to-fm-surface-secondary flex h-64 min-h-dvh items-center justify-center gap-8 rounded-lg bg-linear-to-br p-8">
|
|
1021
1065
|
<div className="text-center">
|
|
1022
|
-
<AudioBarIcon className="!mx-auto mb-2 h-3 w-3
|
|
1023
|
-
<span className="text-
|
|
1066
|
+
<AudioBarIcon className="text-fm-secondary-600 !mx-auto mb-2 h-3 w-3" />
|
|
1067
|
+
<span className="text-fm-tertiary text-xs">12px</span>
|
|
1024
1068
|
</div>
|
|
1025
1069
|
<div className="text-center">
|
|
1026
|
-
<AudioBarIcon className="!mx-auto mb-2 h-4 w-4
|
|
1027
|
-
<span className="text-
|
|
1070
|
+
<AudioBarIcon className="text-fm-secondary-600 !mx-auto mb-2 h-4 w-4" />
|
|
1071
|
+
<span className="text-fm-tertiary text-xs">16px</span>
|
|
1028
1072
|
</div>
|
|
1029
1073
|
<div className="text-center">
|
|
1030
|
-
<AudioBarIcon className="!mx-auto mb-2 h-5 w-5
|
|
1031
|
-
<span className="text-
|
|
1074
|
+
<AudioBarIcon className="text-fm-secondary-600 !mx-auto mb-2 h-5 w-5" />
|
|
1075
|
+
<span className="text-fm-tertiary text-xs">20px</span>
|
|
1032
1076
|
</div>
|
|
1033
1077
|
<div className="text-center">
|
|
1034
|
-
<AudioBarIcon className="!mx-auto mb-2 h-6 w-6
|
|
1035
|
-
<span className="text-
|
|
1078
|
+
<AudioBarIcon className="text-fm-secondary-600 !mx-auto mb-2 h-6 w-6" />
|
|
1079
|
+
<span className="text-fm-tertiary text-xs">24px</span>
|
|
1036
1080
|
</div>
|
|
1037
1081
|
<div className="text-center">
|
|
1038
|
-
<AudioBarIcon className="!mx-auto mb-2 h-8 w-8
|
|
1039
|
-
<span className="text-
|
|
1082
|
+
<AudioBarIcon className="text-fm-secondary-600 !mx-auto mb-2 h-8 w-8" />
|
|
1083
|
+
<span className="text-fm-tertiary text-xs">32px</span>
|
|
1040
1084
|
</div>
|
|
1041
1085
|
<div className="text-center">
|
|
1042
|
-
<AudioBarIcon className="!mx-auto mb-2 h-12 w-12
|
|
1043
|
-
<span className="text-
|
|
1086
|
+
<AudioBarIcon className="text-fm-secondary-600 !mx-auto mb-2 h-12 w-12" />
|
|
1087
|
+
<span className="text-fm-tertiary text-xs">48px</span>
|
|
1044
1088
|
</div>
|
|
1045
1089
|
</div>
|
|
1046
1090
|
),
|
|
@@ -1057,41 +1101,47 @@ export const ColorVariations: Story = {
|
|
|
1057
1101
|
},
|
|
1058
1102
|
},
|
|
1059
1103
|
render: () => (
|
|
1060
|
-
<div className="grid min-h-dvh grid-cols-2 items-center justify-center gap-6 rounded-lg bg-
|
|
1104
|
+
<div className="from-fm-surface-primary to-fm-surface-secondary grid min-h-dvh grid-cols-2 items-center justify-center gap-6 rounded-lg bg-linear-to-br p-8 md:grid-cols-5">
|
|
1061
1105
|
<div className="text-center">
|
|
1062
|
-
<div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border
|
|
1063
|
-
<AudioBarIcon className="h-8 w-8
|
|
1106
|
+
<div className="border-fm-secondary-500/30 bg-fm-secondary-500/20 !mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border">
|
|
1107
|
+
<AudioBarIcon className="text-fm-secondary-600 h-8 w-8" />
|
|
1108
|
+
</div>
|
|
1109
|
+
<div className="text-fm-icon-active text-sm font-medium">Active</div>
|
|
1110
|
+
<div className="text-fm-secondary-600 text-xs">
|
|
1111
|
+
text-fm-secondary-600
|
|
1064
1112
|
</div>
|
|
1065
|
-
<div className="text-sm font-medium text-white">Active</div>
|
|
1066
|
-
<div className="text-xs text-violet-400">text-violet-400</div>
|
|
1067
1113
|
</div>
|
|
1068
1114
|
<div className="text-center">
|
|
1069
|
-
<div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border
|
|
1070
|
-
<AudioBarIcon className="h-8 w-8
|
|
1115
|
+
<div className="border-fm-icon-positive/30 bg-fm-icon-positive/20 !mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border">
|
|
1116
|
+
<AudioBarIcon className="text-fm-icon-positive h-8 w-8" />
|
|
1117
|
+
</div>
|
|
1118
|
+
<div className="text-fm-icon-active text-sm font-medium">Recording</div>
|
|
1119
|
+
<div className="text-fm-icon-positive text-xs">
|
|
1120
|
+
text-fm-icon-positive
|
|
1071
1121
|
</div>
|
|
1072
|
-
<div className="text-sm font-medium text-white">Recording</div>
|
|
1073
|
-
<div className="text-xs text-green-400">text-green-400</div>
|
|
1074
1122
|
</div>
|
|
1075
1123
|
<div className="text-center">
|
|
1076
|
-
<div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border
|
|
1077
|
-
<AudioBarIcon className="h-8 w-8
|
|
1124
|
+
<div className="border-fm-icon-negative/30 bg-fm-icon-negative/20 !mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border">
|
|
1125
|
+
<AudioBarIcon className="text-fm-icon-negative h-8 w-8" />
|
|
1126
|
+
</div>
|
|
1127
|
+
<div className="text-fm-icon-active text-sm font-medium">Live</div>
|
|
1128
|
+
<div className="text-fm-icon-negative text-xs">
|
|
1129
|
+
text-fm-icon-negative
|
|
1078
1130
|
</div>
|
|
1079
|
-
<div className="text-sm font-medium text-white">Live</div>
|
|
1080
|
-
<div className="text-xs text-red-400">text-red-400</div>
|
|
1081
1131
|
</div>
|
|
1082
1132
|
<div className="text-center">
|
|
1083
|
-
<div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border
|
|
1084
|
-
<AudioBarIcon className="h-8 w-8
|
|
1133
|
+
<div className="border-fm-icon-info/30 bg-fm-icon-info/20 !mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border">
|
|
1134
|
+
<AudioBarIcon className="text-fm-icon-info h-8 w-8" />
|
|
1085
1135
|
</div>
|
|
1086
|
-
<div className="text-sm font-medium
|
|
1087
|
-
<div className="text-
|
|
1136
|
+
<div className="text-fm-icon-active text-sm font-medium">Analyzing</div>
|
|
1137
|
+
<div className="text-fm-icon-info text-xs">text-fm-icon-info</div>
|
|
1088
1138
|
</div>
|
|
1089
1139
|
<div className="text-center">
|
|
1090
|
-
<div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border
|
|
1091
|
-
<AudioBarIcon className="h-8 w-8
|
|
1140
|
+
<div className="border-fm-divider-primary bg-fm-surface-tertiary/20 !mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border">
|
|
1141
|
+
<AudioBarIcon className="text-fm-placeholder h-8 w-8" />
|
|
1092
1142
|
</div>
|
|
1093
|
-
<div className="text-sm font-medium
|
|
1094
|
-
<div className="text-
|
|
1143
|
+
<div className="text-fm-icon-active text-sm font-medium">Inactive</div>
|
|
1144
|
+
<div className="text-fm-placeholder text-xs">text-fm-placeholder</div>
|
|
1095
1145
|
</div>
|
|
1096
1146
|
</div>
|
|
1097
1147
|
),
|
|
@@ -1108,37 +1158,39 @@ export const AnimatedStates: Story = {
|
|
|
1108
1158
|
},
|
|
1109
1159
|
},
|
|
1110
1160
|
render: () => (
|
|
1111
|
-
<div className="grid min-h-dvh grid-cols-1 items-center gap-8 rounded-lg bg-
|
|
1161
|
+
<div className="from-fm-surface-primary to-fm-surface-secondary grid min-h-dvh grid-cols-1 items-center gap-8 rounded-lg bg-linear-to-br p-8 md:grid-cols-4">
|
|
1112
1162
|
<div className="text-center">
|
|
1113
|
-
<h3 className="mb-4 text-lg font-medium
|
|
1114
|
-
<div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border
|
|
1115
|
-
<AudioBarIcon className="h-8 w-8 animate-pulse
|
|
1163
|
+
<h3 className="text-fm-icon-active mb-4 text-lg font-medium">Pulse</h3>
|
|
1164
|
+
<div className="border-fm-secondary-500/30 bg-fm-secondary-500/20 !mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border">
|
|
1165
|
+
<AudioBarIcon className="text-fm-secondary-600 h-8 w-8 animate-pulse" />
|
|
1116
1166
|
</div>
|
|
1117
|
-
<p className="text-
|
|
1167
|
+
<p className="text-fm-tertiary text-xs">Active audio</p>
|
|
1118
1168
|
</div>
|
|
1119
1169
|
|
|
1120
1170
|
<div className="text-center">
|
|
1121
|
-
<h3 className="mb-4 text-lg font-medium
|
|
1122
|
-
<div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border
|
|
1123
|
-
<AudioBarIcon className="h-8 w-8 animate-bounce
|
|
1171
|
+
<h3 className="text-fm-icon-active mb-4 text-lg font-medium">Bounce</h3>
|
|
1172
|
+
<div className="border-fm-icon-positive/30 bg-fm-icon-positive/20 !mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border">
|
|
1173
|
+
<AudioBarIcon className="text-fm-icon-positive h-8 w-8 animate-bounce" />
|
|
1124
1174
|
</div>
|
|
1125
|
-
<p className="text-
|
|
1175
|
+
<p className="text-fm-tertiary text-xs">Recording</p>
|
|
1126
1176
|
</div>
|
|
1127
1177
|
|
|
1128
1178
|
<div className="text-center">
|
|
1129
|
-
<h3 className="mb-4 text-lg font-medium
|
|
1130
|
-
<div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border
|
|
1131
|
-
<AudioBarIcon className="h-8 w-8 animate-spin
|
|
1179
|
+
<h3 className="text-fm-icon-active mb-4 text-lg font-medium">Spin</h3>
|
|
1180
|
+
<div className="border-fm-icon-info/30 bg-fm-icon-info/20 !mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border">
|
|
1181
|
+
<AudioBarIcon className="text-fm-icon-info h-8 w-8 animate-spin" />
|
|
1132
1182
|
</div>
|
|
1133
|
-
<p className="text-
|
|
1183
|
+
<p className="text-fm-tertiary text-xs">Processing</p>
|
|
1134
1184
|
</div>
|
|
1135
1185
|
|
|
1136
1186
|
<div className="text-center">
|
|
1137
|
-
<h3 className="mb-4 text-lg font-medium
|
|
1138
|
-
|
|
1139
|
-
|
|
1187
|
+
<h3 className="text-fm-icon-active mb-4 text-lg font-medium">
|
|
1188
|
+
Hover Scale
|
|
1189
|
+
</h3>
|
|
1190
|
+
<div className="border-fm-icon-negative/30 bg-fm-icon-negative/20 !mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border">
|
|
1191
|
+
<AudioBarIcon className="text-fm-icon-negative h-8 w-8 transition-all hover:scale-110" />
|
|
1140
1192
|
</div>
|
|
1141
|
-
<p className="text-
|
|
1193
|
+
<p className="text-fm-tertiary text-xs">Interactive</p>
|
|
1142
1194
|
</div>
|
|
1143
1195
|
</div>
|
|
1144
1196
|
),
|
|
@@ -1155,47 +1207,55 @@ export const UsageExamples: Story = {
|
|
|
1155
1207
|
},
|
|
1156
1208
|
},
|
|
1157
1209
|
render: () => (
|
|
1158
|
-
<div className="min-h-dvh !space-y-8 rounded-lg bg-
|
|
1210
|
+
<div className="from-fm-surface-primary to-fm-surface-secondary min-h-dvh !space-y-8 rounded-lg bg-linear-to-br p-8">
|
|
1159
1211
|
{/* Music Player */}
|
|
1160
1212
|
<div className="!space-y-2">
|
|
1161
|
-
<h3 className="text-sm font-medium
|
|
1162
|
-
|
|
1213
|
+
<h3 className="text-fm-icon-active text-sm font-medium">
|
|
1214
|
+
Music Player
|
|
1215
|
+
</h3>
|
|
1216
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-4">
|
|
1163
1217
|
<div className="flex items-center gap-4">
|
|
1164
|
-
<div className="flex h-12 w-12 items-center justify-center rounded-lg
|
|
1165
|
-
<AudioBarIcon className="h-6 w-6 animate-pulse
|
|
1218
|
+
<div className="bg-fm-secondary-500/20 flex h-12 w-12 items-center justify-center rounded-lg">
|
|
1219
|
+
<AudioBarIcon className="text-fm-secondary-600 h-6 w-6 animate-pulse" />
|
|
1166
1220
|
</div>
|
|
1167
1221
|
<div className="flex-1">
|
|
1168
|
-
<h4 className="font-medium
|
|
1169
|
-
|
|
1222
|
+
<h4 className="text-fm-icon-active font-medium">
|
|
1223
|
+
Bohemian Rhapsody
|
|
1224
|
+
</h4>
|
|
1225
|
+
<p className="text-fm-tertiary text-sm">Queen</p>
|
|
1170
1226
|
</div>
|
|
1171
|
-
<div className="text-
|
|
1227
|
+
<div className="text-fm-tertiary text-sm">3:42</div>
|
|
1172
1228
|
</div>
|
|
1173
1229
|
</div>
|
|
1174
1230
|
</div>
|
|
1175
1231
|
|
|
1176
1232
|
{/* Voice Recording */}
|
|
1177
1233
|
<div className="!space-y-2">
|
|
1178
|
-
<h3 className="text-sm font-medium
|
|
1179
|
-
|
|
1234
|
+
<h3 className="text-fm-icon-active text-sm font-medium">
|
|
1235
|
+
Voice Recording
|
|
1236
|
+
</h3>
|
|
1237
|
+
<div className="border-fm-icon-negative/20 bg-fm-icon-negative/10 rounded-lg border p-4">
|
|
1180
1238
|
<div className="flex items-center justify-between">
|
|
1181
1239
|
<div className="flex items-center gap-3">
|
|
1182
|
-
<AudioBarIcon className="h-5 w-5 animate-bounce
|
|
1183
|
-
<span className="text-
|
|
1240
|
+
<AudioBarIcon className="text-fm-icon-negative h-5 w-5 animate-bounce" />
|
|
1241
|
+
<span className="text-fm-icon-negative">Recording...</span>
|
|
1184
1242
|
</div>
|
|
1185
|
-
<div className="text-
|
|
1243
|
+
<div className="text-fm-icon-negative text-sm">00:42</div>
|
|
1186
1244
|
</div>
|
|
1187
1245
|
</div>
|
|
1188
1246
|
</div>
|
|
1189
1247
|
|
|
1190
1248
|
{/* Audio Controls */}
|
|
1191
1249
|
<div className="!space-y-2">
|
|
1192
|
-
<h3 className="text-sm font-medium
|
|
1250
|
+
<h3 className="text-fm-icon-active text-sm font-medium">
|
|
1251
|
+
Audio Controls
|
|
1252
|
+
</h3>
|
|
1193
1253
|
<div className="flex items-center gap-4">
|
|
1194
|
-
<button className="flex items-center gap-2 rounded-lg border
|
|
1254
|
+
<button className="border-fm-secondary-500/30 bg-fm-secondary-500/20 text-fm-secondary-600 hover:bg-fm-secondary-500/30 flex items-center gap-2 rounded-lg border px-3 py-2 transition-colors">
|
|
1195
1255
|
<AudioBarIcon className="h-4 w-4" />
|
|
1196
1256
|
Equalizer
|
|
1197
1257
|
</button>
|
|
1198
|
-
<button className="flex items-center gap-2 rounded-lg border
|
|
1258
|
+
<button className="border-fm-icon-positive/30 bg-fm-icon-positive/20 text-fm-icon-positive hover:bg-fm-icon-positive/30 flex items-center gap-2 rounded-lg border px-3 py-2 transition-colors">
|
|
1199
1259
|
<AudioBarIcon className="h-4 w-4" />
|
|
1200
1260
|
Visualizer
|
|
1201
1261
|
</button>
|
|
@@ -1204,20 +1264,22 @@ export const UsageExamples: Story = {
|
|
|
1204
1264
|
|
|
1205
1265
|
{/* Audio Status */}
|
|
1206
1266
|
<div className="!space-y-2">
|
|
1207
|
-
<h3 className="text-sm font-medium
|
|
1267
|
+
<h3 className="text-fm-icon-active text-sm font-medium">
|
|
1268
|
+
Audio Status
|
|
1269
|
+
</h3>
|
|
1208
1270
|
<div className="!space-y-2">
|
|
1209
|
-
<div className="flex items-center justify-between rounded-lg border
|
|
1210
|
-
<span className="text-
|
|
1271
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary flex items-center justify-between rounded-lg border p-3">
|
|
1272
|
+
<span className="text-fm-icon-active text-sm">Microphone</span>
|
|
1211
1273
|
<div className="flex items-center gap-2">
|
|
1212
|
-
<AudioBarIcon className="h-4 w-4
|
|
1213
|
-
<span className="text-
|
|
1274
|
+
<AudioBarIcon className="text-fm-icon-positive h-4 w-4" />
|
|
1275
|
+
<span className="text-fm-icon-positive text-xs">Active</span>
|
|
1214
1276
|
</div>
|
|
1215
1277
|
</div>
|
|
1216
|
-
<div className="flex items-center justify-between rounded-lg border
|
|
1217
|
-
<span className="text-
|
|
1278
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary flex items-center justify-between rounded-lg border p-3">
|
|
1279
|
+
<span className="text-fm-icon-active text-sm">Speakers</span>
|
|
1218
1280
|
<div className="flex items-center gap-2">
|
|
1219
|
-
<AudioBarIcon className="h-4 w-4 animate-pulse
|
|
1220
|
-
<span className="text-
|
|
1281
|
+
<AudioBarIcon className="text-fm-secondary-600 h-4 w-4 animate-pulse" />
|
|
1282
|
+
<span className="text-fm-secondary-600 text-xs">Playing</span>
|
|
1221
1283
|
</div>
|
|
1222
1284
|
</div>
|
|
1223
1285
|
</div>
|
|
@@ -1239,12 +1301,12 @@ export const Playground: Story = {
|
|
|
1239
1301
|
args: {
|
|
1240
1302
|
width: 32,
|
|
1241
1303
|
height: 32,
|
|
1242
|
-
className: "text-
|
|
1304
|
+
className: "text-fm-secondary-600",
|
|
1243
1305
|
fill: "#8b5cf6",
|
|
1244
1306
|
},
|
|
1245
1307
|
render: (args) => (
|
|
1246
|
-
<div className="flex h-64 min-h-dvh items-center justify-center rounded-lg bg-
|
|
1247
|
-
<div className="rounded-lg border
|
|
1308
|
+
<div className="from-fm-surface-primary to-fm-surface-secondary flex h-64 min-h-dvh items-center justify-center rounded-lg bg-linear-to-br">
|
|
1309
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-8">
|
|
1248
1310
|
<AudioBarIcon {...args} />
|
|
1249
1311
|
</div>
|
|
1250
1312
|
</div>
|