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 VolumeOffIcon> = {
|
|
|
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 VolumeOffIcon> = {
|
|
|
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="from-fm-surface-primary via-fm-surface-secondary/20 to-fm-surface-primary min-h-screen bg-linear-to-br">
|
|
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-surface-tertiary/10 to-fm-surface-tertiary/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
|
-
<VolumeOffIcon className="h-12 w-12
|
|
89
|
+
<div className="border-fm-divider-primary from-fm-surface-tertiary/20 to-fm-surface-tertiary/20 !mx-auto flex h-24 w-24 items-center justify-center rounded-2xl border bg-linear-to-br">
|
|
90
|
+
<VolumeOffIcon className="text-fm-tertiary 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
|
VolumeOffIcon
|
|
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 muted audio control icon for media interfaces. Features
|
|
97
97
|
the classic speaker with crossed-out sound waves design,
|
|
98
98
|
essential for music players, video platforms, conference
|
|
@@ -103,26 +103,28 @@ const meta: Meta<typeof VolumeOffIcon> = {
|
|
|
103
103
|
{/* Stats */}
|
|
104
104
|
<div className="flex items-center justify-center gap-8 pt-8">
|
|
105
105
|
<div className="text-center">
|
|
106
|
-
<div className="text-3xl font-bold
|
|
106
|
+
<div className="text-fm-secondary text-3xl font-bold">
|
|
107
107
|
Mute Audio
|
|
108
108
|
</div>
|
|
109
|
-
<div className="text-
|
|
109
|
+
<div className="text-fm-tertiary text-sm">
|
|
110
|
+
Silent mode
|
|
111
|
+
</div>
|
|
110
112
|
</div>
|
|
111
|
-
<div className="h-8 w-px
|
|
113
|
+
<div className="bg-fm-divider-primary h-8 w-px" />
|
|
112
114
|
<div className="text-center">
|
|
113
|
-
<div className="text-3xl font-bold
|
|
115
|
+
<div className="text-fm-secondary text-3xl font-bold">
|
|
114
116
|
Accessible
|
|
115
117
|
</div>
|
|
116
|
-
<div className="text-
|
|
118
|
+
<div className="text-fm-tertiary text-sm">
|
|
117
119
|
Screen reader friendly
|
|
118
120
|
</div>
|
|
119
121
|
</div>
|
|
120
|
-
<div className="h-8 w-px
|
|
122
|
+
<div className="bg-fm-divider-primary h-8 w-px" />
|
|
121
123
|
<div className="text-center">
|
|
122
|
-
<div className="text-3xl font-bold
|
|
124
|
+
<div className="text-fm-secondary text-3xl font-bold">
|
|
123
125
|
Universal
|
|
124
126
|
</div>
|
|
125
|
-
<div className="text-
|
|
127
|
+
<div className="text-fm-tertiary text-sm">
|
|
126
128
|
Standard mute symbol
|
|
127
129
|
</div>
|
|
128
130
|
</div>
|
|
@@ -135,16 +137,16 @@ const meta: Meta<typeof VolumeOffIcon> = {
|
|
|
135
137
|
<div className="!mx-auto max-w-7xl !space-y-16 px-6 py-12">
|
|
136
138
|
{/* Quick Usage */}
|
|
137
139
|
<div className="!space-y-8">
|
|
138
|
-
<h2 className="text-center text-3xl font-bold
|
|
140
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
139
141
|
Quick Start
|
|
140
142
|
</h2>
|
|
141
143
|
<div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
|
|
142
144
|
<div className="!space-y-4">
|
|
143
|
-
<h3 className="text-xl font-semibold
|
|
145
|
+
<h3 className="text-fm-secondary! text-xl font-semibold">
|
|
144
146
|
Basic Usage
|
|
145
147
|
</h3>
|
|
146
|
-
<div className="rounded-lg
|
|
147
|
-
<pre className="overflow-x-auto text-sm
|
|
148
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
149
|
+
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
148
150
|
{`import { VolumeOffIcon } from "@icons/volume-off-icon"
|
|
149
151
|
|
|
150
152
|
function AudioControls() {
|
|
@@ -163,12 +165,12 @@ function AudioControls() {
|
|
|
163
165
|
</div>
|
|
164
166
|
|
|
165
167
|
<div className="!space-y-4">
|
|
166
|
-
<h3 className="text-xl font-semibold
|
|
168
|
+
<h3 className="text-fm-secondary! text-xl font-semibold">
|
|
167
169
|
Live Preview
|
|
168
170
|
</h3>
|
|
169
|
-
<div className="flex h-32 items-center justify-center rounded-lg border
|
|
170
|
-
<button className="
|
|
171
|
-
<VolumeOffIcon className="h-6 w-6
|
|
171
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary flex h-32 items-center justify-center rounded-lg border">
|
|
172
|
+
<button className="border-fm-divider-secondary bg-fm-icon-inactive/10 hover:bg-fm-icon-inactive/20 rounded-lg border p-3 transition-colors">
|
|
173
|
+
<VolumeOffIcon className="text-fm-tertiary h-6 w-6" />
|
|
172
174
|
</button>
|
|
173
175
|
</div>
|
|
174
176
|
</div>
|
|
@@ -177,108 +179,116 @@ function AudioControls() {
|
|
|
177
179
|
|
|
178
180
|
{/* Props Documentation */}
|
|
179
181
|
<div className="!space-y-8">
|
|
180
|
-
<h2 className="text-center text-3xl font-bold
|
|
182
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
181
183
|
Props & Configuration
|
|
182
184
|
</h2>
|
|
183
185
|
|
|
184
|
-
<div className="overflow-hidden rounded-lg border
|
|
185
|
-
<div className="bg-
|
|
186
|
-
<h3 className="text-xl font-semibold
|
|
186
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary overflow-hidden rounded-lg border">
|
|
187
|
+
<div className="bg-fm-surface-secondary p-4">
|
|
188
|
+
<h3 className="text-fm-icon-active! text-xl font-semibold">
|
|
189
|
+
Props
|
|
190
|
+
</h3>
|
|
187
191
|
</div>
|
|
188
192
|
<table className="!my-0 w-full">
|
|
189
|
-
<thead className="bg-
|
|
190
|
-
<tr className="border-
|
|
191
|
-
<th className="px-6 py-4 text-left text-sm font-semibold
|
|
193
|
+
<thead className="bg-fm-surface-secondary">
|
|
194
|
+
<tr className="border-fm-divider-secondary border-b">
|
|
195
|
+
<th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
|
|
192
196
|
Prop
|
|
193
197
|
</th>
|
|
194
|
-
<th className="px-6 py-4 text-left text-sm font-semibold
|
|
198
|
+
<th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
|
|
195
199
|
Type
|
|
196
200
|
</th>
|
|
197
|
-
<th className="px-6 py-4 text-left text-sm font-semibold
|
|
201
|
+
<th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
|
|
198
202
|
Default
|
|
199
203
|
</th>
|
|
200
|
-
<th className="px-6 py-4 text-left text-sm font-semibold
|
|
204
|
+
<th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
|
|
201
205
|
Description
|
|
202
206
|
</th>
|
|
203
207
|
</tr>
|
|
204
208
|
</thead>
|
|
205
209
|
<tbody>
|
|
206
210
|
{" "}
|
|
207
|
-
<tr className="
|
|
208
|
-
<td className="px-6 py-4 font-mono text-sm
|
|
211
|
+
<tr className="bg-fm-surface-secondary!">
|
|
212
|
+
<td className="text-fm-icon-info! px-6 py-4 font-mono text-sm">
|
|
209
213
|
withAccessibility
|
|
210
214
|
</td>
|
|
211
|
-
<td className="px-6 py-4 text-sm
|
|
215
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
212
216
|
boolean
|
|
213
217
|
</td>
|
|
214
|
-
<td className="px-6 py-4 text-sm
|
|
218
|
+
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
215
219
|
true
|
|
216
220
|
</td>
|
|
217
|
-
<td className="px-6 py-4 text-sm
|
|
221
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
218
222
|
Whether to wrap the icon with accessibility feature
|
|
219
223
|
</td>
|
|
220
224
|
</tr>
|
|
221
|
-
<tr className="border-
|
|
222
|
-
<td className="px-6 py-4 font-mono text-sm
|
|
225
|
+
<tr className="border-fm-divider-tertiary bg-fm-surface-secondary! border-b">
|
|
226
|
+
<td className="text-fm-secondary! px-6 py-4 font-mono text-sm">
|
|
223
227
|
height
|
|
224
228
|
</td>
|
|
225
|
-
<td className="px-6 py-4 text-sm
|
|
229
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
226
230
|
number | string
|
|
227
231
|
</td>
|
|
228
|
-
<td className="px-6 py-4 text-sm
|
|
229
|
-
|
|
232
|
+
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
233
|
+
24
|
|
234
|
+
</td>
|
|
235
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
230
236
|
Height of the icon in pixels
|
|
231
237
|
</td>
|
|
232
238
|
</tr>
|
|
233
|
-
<tr className="border-
|
|
234
|
-
<td className="px-6 py-4 font-mono text-sm
|
|
239
|
+
<tr className="border-fm-divider-tertiary border-b">
|
|
240
|
+
<td className="text-fm-secondary! px-6 py-4 font-mono text-sm">
|
|
235
241
|
stroke
|
|
236
242
|
</td>
|
|
237
|
-
<td className="px-6 py-4 text-sm
|
|
243
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
238
244
|
string
|
|
239
245
|
</td>
|
|
240
|
-
<td className="px-6 py-4 text-sm
|
|
246
|
+
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
241
247
|
currentColor
|
|
242
248
|
</td>
|
|
243
|
-
<td className="px-6 py-4 text-sm
|
|
249
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
244
250
|
Stroke color of the icon
|
|
245
251
|
</td>
|
|
246
252
|
</tr>
|
|
247
|
-
<tr className="border-
|
|
248
|
-
<td className="px-6 py-4 font-mono text-sm
|
|
253
|
+
<tr className="border-fm-divider-tertiary bg-fm-surface-secondary! border-b">
|
|
254
|
+
<td className="text-fm-secondary! px-6 py-4 font-mono text-sm">
|
|
249
255
|
strokeWidth
|
|
250
256
|
</td>
|
|
251
|
-
<td className="px-6 py-4 text-sm
|
|
257
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
252
258
|
string | number
|
|
253
259
|
</td>
|
|
254
|
-
<td className="px-6 py-4 text-sm
|
|
260
|
+
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
255
261
|
1.5
|
|
256
262
|
</td>
|
|
257
|
-
<td className="px-6 py-4 text-sm
|
|
263
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
258
264
|
Width of the stroke
|
|
259
265
|
</td>
|
|
260
266
|
</tr>
|
|
261
|
-
<tr className="border-
|
|
262
|
-
<td className="px-6 py-4 font-mono text-sm
|
|
267
|
+
<tr className="border-fm-divider-tertiary border-b">
|
|
268
|
+
<td className="text-fm-secondary! px-6 py-4 font-mono text-sm">
|
|
263
269
|
className
|
|
264
270
|
</td>
|
|
265
|
-
<td className="px-6 py-4 text-sm
|
|
271
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
266
272
|
string
|
|
267
273
|
</td>
|
|
268
|
-
<td className="px-6 py-4 text-sm
|
|
269
|
-
|
|
274
|
+
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
275
|
+
-
|
|
276
|
+
</td>
|
|
277
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
270
278
|
CSS classes for styling (use for overrides)
|
|
271
279
|
</td>
|
|
272
280
|
</tr>
|
|
273
|
-
<tr className="
|
|
274
|
-
<td className="px-6 py-4 font-mono text-sm
|
|
281
|
+
<tr className="bg-fm-surface-secondary!">
|
|
282
|
+
<td className="text-fm-secondary! px-6 py-4 font-mono text-sm">
|
|
275
283
|
...svgProps
|
|
276
284
|
</td>
|
|
277
|
-
<td className="px-6 py-4 text-sm
|
|
285
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
278
286
|
SVGProps
|
|
279
287
|
</td>
|
|
280
|
-
<td className="px-6 py-4 text-sm
|
|
281
|
-
|
|
288
|
+
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
289
|
+
-
|
|
290
|
+
</td>
|
|
291
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
282
292
|
All standard SVG element props
|
|
283
293
|
</td>
|
|
284
294
|
</tr>
|
|
@@ -289,50 +299,62 @@ function AudioControls() {
|
|
|
289
299
|
|
|
290
300
|
{/* Size Variations */}
|
|
291
301
|
<div className="!space-y-8">
|
|
292
|
-
<h2 className="text-center text-3xl font-bold
|
|
302
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
293
303
|
Size Variations
|
|
294
304
|
</h2>
|
|
295
|
-
<div className="rounded-lg border
|
|
305
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-8">
|
|
296
306
|
<div className="!space-y-6">
|
|
297
307
|
<div className="grid grid-cols-1 gap-8 md:grid-cols-2">
|
|
298
308
|
<div className="!space-y-4">
|
|
299
|
-
<h3 className="text-lg font-semibold
|
|
309
|
+
<h3 className="text-fm-secondary! text-lg font-semibold">
|
|
300
310
|
Standard Sizes
|
|
301
311
|
</h3>
|
|
302
|
-
<div className="flex items-end gap-6 rounded-lg
|
|
312
|
+
<div className="bg-fm-surface-secondary flex items-end gap-6 rounded-lg p-6">
|
|
303
313
|
<div className="text-center">
|
|
304
|
-
<VolumeOffIcon className="!mx-auto mb-2 h-3 w-3
|
|
305
|
-
<span className="text-
|
|
314
|
+
<VolumeOffIcon className="text-fm-tertiary !mx-auto mb-2 h-3 w-3" />
|
|
315
|
+
<span className="text-fm-tertiary text-xs">
|
|
316
|
+
12px
|
|
317
|
+
</span>
|
|
306
318
|
</div>
|
|
307
319
|
<div className="text-center">
|
|
308
|
-
<VolumeOffIcon className="!mx-auto mb-2 h-4 w-4
|
|
309
|
-
<span className="text-
|
|
320
|
+
<VolumeOffIcon className="text-fm-tertiary !mx-auto mb-2 h-4 w-4" />
|
|
321
|
+
<span className="text-fm-tertiary text-xs">
|
|
322
|
+
16px
|
|
323
|
+
</span>
|
|
310
324
|
</div>
|
|
311
325
|
<div className="text-center">
|
|
312
|
-
<VolumeOffIcon className="!mx-auto mb-2 h-5 w-5
|
|
313
|
-
<span className="text-
|
|
326
|
+
<VolumeOffIcon className="text-fm-tertiary !mx-auto mb-2 h-5 w-5" />
|
|
327
|
+
<span className="text-fm-tertiary text-xs">
|
|
328
|
+
20px
|
|
329
|
+
</span>
|
|
314
330
|
</div>
|
|
315
331
|
<div className="text-center">
|
|
316
|
-
<VolumeOffIcon className="!mx-auto mb-2 h-6 w-6
|
|
317
|
-
<span className="text-
|
|
332
|
+
<VolumeOffIcon className="text-fm-tertiary !mx-auto mb-2 h-6 w-6" />
|
|
333
|
+
<span className="text-fm-tertiary text-xs">
|
|
334
|
+
24px
|
|
335
|
+
</span>
|
|
318
336
|
</div>
|
|
319
337
|
<div className="text-center">
|
|
320
|
-
<VolumeOffIcon className="!mx-auto mb-2 h-8 w-8
|
|
321
|
-
<span className="text-
|
|
338
|
+
<VolumeOffIcon className="text-fm-tertiary !mx-auto mb-2 h-8 w-8" />
|
|
339
|
+
<span className="text-fm-tertiary text-xs">
|
|
340
|
+
32px
|
|
341
|
+
</span>
|
|
322
342
|
</div>
|
|
323
343
|
<div className="text-center">
|
|
324
|
-
<VolumeOffIcon className="!mx-auto mb-2 h-12 w-12
|
|
325
|
-
<span className="text-
|
|
344
|
+
<VolumeOffIcon className="text-fm-tertiary !mx-auto mb-2 h-12 w-12" />
|
|
345
|
+
<span className="text-fm-tertiary text-xs">
|
|
346
|
+
48px
|
|
347
|
+
</span>
|
|
326
348
|
</div>
|
|
327
349
|
</div>
|
|
328
350
|
</div>
|
|
329
351
|
|
|
330
352
|
<div className="!space-y-4">
|
|
331
|
-
<h3 className="text-lg font-semibold
|
|
353
|
+
<h3 className="text-fm-secondary! text-lg font-semibold">
|
|
332
354
|
Code Example
|
|
333
355
|
</h3>
|
|
334
|
-
<div className="rounded-lg
|
|
335
|
-
<pre className="overflow-x-auto text-sm
|
|
356
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
357
|
+
<pre className="text-fm-icon-info! overflow-x-auto text-sm">
|
|
336
358
|
{`// Small (16px) - compact interfaces
|
|
337
359
|
<VolumeOffIcon className="h-4 w-4" />
|
|
338
360
|
|
|
@@ -354,56 +376,56 @@ function AudioControls() {
|
|
|
354
376
|
|
|
355
377
|
{/* Color Variations */}
|
|
356
378
|
<div className="!space-y-8">
|
|
357
|
-
<h2 className="text-center text-3xl font-bold
|
|
379
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
358
380
|
Color Variations
|
|
359
381
|
</h2>
|
|
360
382
|
<div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
|
|
361
383
|
<div className="!space-y-4">
|
|
362
|
-
<h3 className="text-lg font-semibold
|
|
384
|
+
<h3 className="text-fm-secondary! text-lg font-semibold">
|
|
363
385
|
Semantic Colors
|
|
364
386
|
</h3>
|
|
365
|
-
<div className="!space-y-4 rounded-lg border
|
|
387
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
|
|
366
388
|
<div className="flex items-center gap-4">
|
|
367
|
-
<VolumeOffIcon className="h-6 w-6
|
|
389
|
+
<VolumeOffIcon className="text-fm-tertiary h-6 w-6" />
|
|
368
390
|
<div>
|
|
369
|
-
<div className="text-sm font-medium
|
|
391
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
370
392
|
Muted
|
|
371
393
|
</div>
|
|
372
|
-
<div className="text-
|
|
373
|
-
text-
|
|
394
|
+
<div className="text-fm-tertiary text-xs">
|
|
395
|
+
text-fm-tertiary
|
|
374
396
|
</div>
|
|
375
397
|
</div>
|
|
376
398
|
</div>
|
|
377
399
|
<div className="flex items-center gap-4">
|
|
378
|
-
<VolumeOffIcon className="h-6 w-6
|
|
400
|
+
<VolumeOffIcon className="text-fm-placeholder h-6 w-6" />
|
|
379
401
|
<div>
|
|
380
|
-
<div className="text-sm font-medium
|
|
402
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
381
403
|
Inactive
|
|
382
404
|
</div>
|
|
383
|
-
<div className="text-
|
|
384
|
-
text-
|
|
405
|
+
<div className="text-fm-tertiary text-xs">
|
|
406
|
+
text-fm-placeholder
|
|
385
407
|
</div>
|
|
386
408
|
</div>
|
|
387
409
|
</div>
|
|
388
410
|
<div className="flex items-center gap-4">
|
|
389
|
-
<VolumeOffIcon className="h-6 w-6
|
|
411
|
+
<VolumeOffIcon className="text-fm-tertiary h-6 w-6" />
|
|
390
412
|
<div>
|
|
391
|
-
<div className="text-sm font-medium
|
|
413
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
392
414
|
Neutral
|
|
393
415
|
</div>
|
|
394
|
-
<div className="text-
|
|
395
|
-
text-
|
|
416
|
+
<div className="text-fm-tertiary text-xs">
|
|
417
|
+
text-fm-tertiary
|
|
396
418
|
</div>
|
|
397
419
|
</div>
|
|
398
420
|
</div>
|
|
399
421
|
<div className="flex items-center gap-4">
|
|
400
|
-
<VolumeOffIcon className="h-6 w-6
|
|
422
|
+
<VolumeOffIcon className="text-fm-icon-negative h-6 w-6" />
|
|
401
423
|
<div>
|
|
402
|
-
<div className="text-sm font-medium
|
|
424
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
403
425
|
Disabled
|
|
404
426
|
</div>
|
|
405
|
-
<div className="text-
|
|
406
|
-
text-
|
|
427
|
+
<div className="text-fm-tertiary text-xs">
|
|
428
|
+
text-fm-icon-negative
|
|
407
429
|
</div>
|
|
408
430
|
</div>
|
|
409
431
|
</div>
|
|
@@ -411,11 +433,11 @@ function AudioControls() {
|
|
|
411
433
|
</div>
|
|
412
434
|
|
|
413
435
|
<div className="!space-y-4">
|
|
414
|
-
<h3 className="text-lg font-semibold
|
|
436
|
+
<h3 className="text-fm-secondary! text-lg font-semibold">
|
|
415
437
|
Custom Colors
|
|
416
438
|
</h3>
|
|
417
|
-
<div className="rounded-lg
|
|
418
|
-
<pre className="overflow-x-auto text-sm
|
|
439
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
440
|
+
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
419
441
|
{`// Using Tailwind classes
|
|
420
442
|
<VolumeOffIcon className="h-6 w-6 text-slate-400" />
|
|
421
443
|
<VolumeOffIcon className="h-6 w-6 text-gray-500" />
|
|
@@ -440,47 +462,47 @@ function AudioControls() {
|
|
|
440
462
|
|
|
441
463
|
{/* Usage Examples */}
|
|
442
464
|
<div className="!space-y-8">
|
|
443
|
-
<h2 className="text-center text-3xl font-bold
|
|
465
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
444
466
|
Usage Examples
|
|
445
467
|
</h2>
|
|
446
468
|
|
|
447
469
|
<div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
|
|
448
470
|
{/* Video Player */}
|
|
449
471
|
<div className="!space-y-4">
|
|
450
|
-
<h3 className="text-lg font-semibold
|
|
472
|
+
<h3 className="text-fm-secondary! text-lg font-semibold">
|
|
451
473
|
Video Player
|
|
452
474
|
</h3>
|
|
453
475
|
<div className="!space-y-4">
|
|
454
|
-
<div className="rounded-lg border
|
|
455
|
-
<div className="mb-4 flex h-32 items-center justify-center rounded bg-
|
|
456
|
-
<div className="text-
|
|
476
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
|
|
477
|
+
<div className="from-fm-surface-tertiary/20 to-fm-surface-tertiary/20 mb-4 flex h-32 items-center justify-center rounded bg-linear-to-r">
|
|
478
|
+
<div className="text-fm-placeholder text-sm">
|
|
457
479
|
Video Content
|
|
458
480
|
</div>
|
|
459
481
|
</div>
|
|
460
482
|
<div className="flex items-center justify-between">
|
|
461
483
|
<div className="flex items-center gap-4">
|
|
462
|
-
<button className="rounded-lg p-2 transition-colors
|
|
463
|
-
<div className="h-6 w-6 rounded-full border
|
|
484
|
+
<button className="hover:bg-fm-surface-secondary rounded-lg p-2 transition-colors">
|
|
485
|
+
<div className="border-fm-divider-contrast bg-fm-divider-primary h-6 w-6 rounded-full border" />
|
|
464
486
|
</button>
|
|
465
|
-
<button className="rounded-lg p-2 transition-colors
|
|
466
|
-
<div className="h-6 w-6 rounded-full border
|
|
487
|
+
<button className="hover:bg-fm-surface-secondary rounded-lg p-2 transition-colors">
|
|
488
|
+
<div className="border-fm-divider-contrast bg-fm-divider-primary h-6 w-6 rounded-full border" />
|
|
467
489
|
</button>
|
|
468
|
-
<div className="text-
|
|
490
|
+
<div className="text-fm-tertiary text-sm">
|
|
469
491
|
00:42 / 03:28
|
|
470
492
|
</div>
|
|
471
493
|
</div>
|
|
472
494
|
<div className="flex items-center gap-2">
|
|
473
|
-
<button className="rounded-lg p-2
|
|
474
|
-
<VolumeOffIcon className="h-5 w-5
|
|
495
|
+
<button className="hover:bg-fm-surface-secondary rounded-lg p-2">
|
|
496
|
+
<VolumeOffIcon className="text-fm-tertiary h-5 w-5" />
|
|
475
497
|
</button>
|
|
476
|
-
<button className="rounded p-1.5
|
|
477
|
-
<div className="h-4 w-4 rounded-full border
|
|
498
|
+
<button className="hover:bg-fm-surface-secondary rounded p-1.5">
|
|
499
|
+
<div className="border-fm-divider-contrast bg-fm-divider-primary h-4 w-4 rounded-full border" />
|
|
478
500
|
</button>
|
|
479
501
|
</div>
|
|
480
502
|
</div>
|
|
481
503
|
</div>
|
|
482
|
-
<div className="rounded-lg
|
|
483
|
-
<pre className="overflow-x-auto text-sm
|
|
504
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
505
|
+
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
484
506
|
{`// Video player with mute control
|
|
485
507
|
<div className="video-controls">
|
|
486
508
|
<div className="playback-controls">
|
|
@@ -509,16 +531,16 @@ function AudioControls() {
|
|
|
509
531
|
|
|
510
532
|
{/* Conference Call */}
|
|
511
533
|
<div className="!space-y-4">
|
|
512
|
-
<h3 className="text-lg font-semibold
|
|
534
|
+
<h3 className="text-fm-secondary! text-lg font-semibold">
|
|
513
535
|
Conference Call
|
|
514
536
|
</h3>
|
|
515
537
|
<div className="!space-y-4">
|
|
516
|
-
<div className="rounded-lg border
|
|
538
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
|
|
517
539
|
<div className="mb-4">
|
|
518
|
-
<div className="text-sm font-medium
|
|
540
|
+
<div className="text-fm-icon-active! text-sm font-medium">
|
|
519
541
|
Team Meeting
|
|
520
542
|
</div>
|
|
521
|
-
<div className="text-
|
|
543
|
+
<div className="text-fm-tertiary! text-xs">
|
|
522
544
|
4 participants
|
|
523
545
|
</div>
|
|
524
546
|
</div>
|
|
@@ -526,39 +548,39 @@ function AudioControls() {
|
|
|
526
548
|
{[...Array(4)].map((_, i) => (
|
|
527
549
|
<div
|
|
528
550
|
key={i}
|
|
529
|
-
className="flex items-center gap-2 rounded
|
|
551
|
+
className="bg-fm-surface-secondary flex items-center gap-2 rounded p-2"
|
|
530
552
|
>
|
|
531
|
-
<div className="h-8 w-8 rounded-full bg-
|
|
553
|
+
<div className="from-fm-surface-tertiary/20 to-fm-surface-tertiary/20 h-8 w-8 rounded-full bg-linear-to-br" />
|
|
532
554
|
<div className="flex-1">
|
|
533
|
-
<div className="text-xs font-medium
|
|
555
|
+
<div className="text-fm-icon-active text-xs font-medium">
|
|
534
556
|
User {i + 1}
|
|
535
557
|
</div>
|
|
536
|
-
<div className="text-
|
|
558
|
+
<div className="text-fm-placeholder text-xs">
|
|
537
559
|
{i === 1 ? "Speaking..." : "Muted"}
|
|
538
560
|
</div>
|
|
539
561
|
</div>
|
|
540
562
|
{i === 1 ? (
|
|
541
|
-
<VolumeOffIcon className="h-4 w-4
|
|
563
|
+
<VolumeOffIcon className="text-fm-tertiary h-4 w-4" />
|
|
542
564
|
) : (
|
|
543
|
-
<div className="h-4 w-4 rounded-full
|
|
565
|
+
<div className="bg-fm-icon-inactive/20 h-4 w-4 rounded-full" />
|
|
544
566
|
)}
|
|
545
567
|
</div>
|
|
546
568
|
))}
|
|
547
569
|
</div>
|
|
548
570
|
<div className="flex justify-center gap-4">
|
|
549
|
-
<button className="
|
|
550
|
-
<VolumeOffIcon className="h-6 w-6
|
|
571
|
+
<button className="border-fm-icon-negative/30 bg-fm-icon-negative/20 hover:bg-fm-icon-negative/30 rounded-lg border p-3">
|
|
572
|
+
<VolumeOffIcon className="text-fm-icon-negative h-6 w-6" />
|
|
551
573
|
</button>
|
|
552
|
-
<button className="
|
|
553
|
-
<div className="h-6 w-6 rounded-full border
|
|
574
|
+
<button className="border-fm-divider-primary bg-fm-surface-secondary hover:bg-fm-divider-primary rounded-lg border p-3">
|
|
575
|
+
<div className="border-fm-divider-contrast bg-fm-divider-primary h-6 w-6 rounded-full border" />
|
|
554
576
|
</button>
|
|
555
|
-
<button className="
|
|
556
|
-
<div className="h-6 w-6 rounded-full border
|
|
577
|
+
<button className="bg-fm-icon-negative hover:bg-fm-icon-negative rounded-lg p-3">
|
|
578
|
+
<div className="border-fm-divider-contrast bg-fm-icon-negative h-6 w-6 rounded-full border" />
|
|
557
579
|
</button>
|
|
558
580
|
</div>
|
|
559
581
|
</div>
|
|
560
|
-
<div className="rounded-lg
|
|
561
|
-
<pre className="overflow-x-auto text-sm
|
|
582
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
583
|
+
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
562
584
|
{`// Conference call interface
|
|
563
585
|
<div className="call-controls">
|
|
564
586
|
<button
|
|
@@ -582,46 +604,46 @@ function AudioControls() {
|
|
|
582
604
|
|
|
583
605
|
{/* Music Player */}
|
|
584
606
|
<div className="!space-y-4">
|
|
585
|
-
<h3 className="text-lg font-semibold
|
|
607
|
+
<h3 className="text-fm-secondary! text-lg font-semibold">
|
|
586
608
|
Music Player
|
|
587
609
|
</h3>
|
|
588
610
|
<div className="!space-y-4">
|
|
589
|
-
<div className="rounded-lg border
|
|
611
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
|
|
590
612
|
<div className="mb-4 flex items-center gap-3">
|
|
591
|
-
<div className="h-12 w-12 rounded-lg bg-
|
|
613
|
+
<div className="from-fm-surface-tertiary/20 to-fm-surface-tertiary/20 h-12 w-12 rounded-lg bg-linear-to-br" />
|
|
592
614
|
<div>
|
|
593
|
-
<div className="text-sm font-medium
|
|
615
|
+
<div className="text-fm-icon-active! text-sm font-medium">
|
|
594
616
|
Silent Night
|
|
595
617
|
</div>
|
|
596
|
-
<div className="text-
|
|
618
|
+
<div className="text-fm-tertiary! text-xs">
|
|
597
619
|
Relaxing Sounds
|
|
598
620
|
</div>
|
|
599
621
|
</div>
|
|
600
622
|
</div>
|
|
601
623
|
<div className="mb-4 flex items-center justify-center gap-4">
|
|
602
|
-
<button className="rounded-lg p-2 transition-colors
|
|
603
|
-
<div className="h-6 w-6 rounded-full border
|
|
624
|
+
<button className="hover:bg-fm-surface-secondary rounded-lg p-2 transition-colors">
|
|
625
|
+
<div className="border-fm-divider-contrast bg-fm-divider-primary h-6 w-6 rounded-full border" />
|
|
604
626
|
</button>
|
|
605
|
-
<button className="rounded-lg p-3 transition-colors
|
|
606
|
-
<div className="h-8 w-8 rounded-full border-2
|
|
627
|
+
<button className="hover:bg-fm-surface-secondary rounded-lg p-3 transition-colors">
|
|
628
|
+
<div className="border-fm-divider-contrast bg-fm-divider-primary h-8 w-8 rounded-full border-2" />
|
|
607
629
|
</button>
|
|
608
|
-
<button className="rounded-lg p-2 transition-colors
|
|
609
|
-
<div className="h-6 w-6 rounded-full border
|
|
630
|
+
<button className="hover:bg-fm-surface-secondary rounded-lg p-2 transition-colors">
|
|
631
|
+
<div className="border-fm-divider-contrast bg-fm-divider-primary h-6 w-6 rounded-full border" />
|
|
610
632
|
</button>
|
|
611
633
|
</div>
|
|
612
634
|
<div className="flex items-center justify-between">
|
|
613
|
-
<div className="text-
|
|
635
|
+
<div className="text-fm-tertiary text-xs">2:34</div>
|
|
614
636
|
<div className="flex items-center gap-2">
|
|
615
|
-
<VolumeOffIcon className="h-4 w-4
|
|
616
|
-
<div className="h-1 w-20 rounded-full
|
|
617
|
-
<div className="h-full w-0 rounded-full
|
|
637
|
+
<VolumeOffIcon className="text-fm-tertiary h-4 w-4" />
|
|
638
|
+
<div className="bg-fm-divider-primary h-1 w-20 rounded-full">
|
|
639
|
+
<div className="bg-fm-icon-inactive h-full w-0 rounded-full" />
|
|
618
640
|
</div>
|
|
619
641
|
</div>
|
|
620
|
-
<div className="text-
|
|
642
|
+
<div className="text-fm-tertiary text-xs">4:12</div>
|
|
621
643
|
</div>
|
|
622
644
|
</div>
|
|
623
|
-
<div className="rounded-lg
|
|
624
|
-
<pre className="overflow-x-auto text-sm
|
|
645
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
646
|
+
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
625
647
|
{`// Music player with volume control
|
|
626
648
|
<div className="player-interface">
|
|
627
649
|
<div className="track-controls">
|
|
@@ -647,71 +669,71 @@ function AudioControls() {
|
|
|
647
669
|
|
|
648
670
|
{/* System Settings */}
|
|
649
671
|
<div className="!space-y-4">
|
|
650
|
-
<h3 className="text-lg font-semibold
|
|
672
|
+
<h3 className="text-fm-secondary! text-lg font-semibold">
|
|
651
673
|
System Settings
|
|
652
674
|
</h3>
|
|
653
675
|
<div className="!space-y-4">
|
|
654
|
-
<div className="rounded-lg border
|
|
676
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
|
|
655
677
|
<div className="!space-y-4">
|
|
656
678
|
<div>
|
|
657
|
-
<h4 className="mb-2 text-sm font-medium
|
|
679
|
+
<h4 className="text-fm-icon-active mb-2 text-sm font-medium">
|
|
658
680
|
Audio Settings
|
|
659
681
|
</h4>
|
|
660
682
|
<div className="space-y-3">
|
|
661
683
|
<div className="flex items-center justify-between">
|
|
662
684
|
<div className="flex items-center gap-3">
|
|
663
|
-
<VolumeOffIcon className="h-5 w-5
|
|
685
|
+
<VolumeOffIcon className="text-fm-tertiary h-5 w-5" />
|
|
664
686
|
<div>
|
|
665
|
-
<div className="text-
|
|
687
|
+
<div className="text-fm-icon-active text-sm">
|
|
666
688
|
System Sounds
|
|
667
689
|
</div>
|
|
668
|
-
<div className="text-
|
|
690
|
+
<div className="text-fm-tertiary text-xs">
|
|
669
691
|
Muted
|
|
670
692
|
</div>
|
|
671
693
|
</div>
|
|
672
694
|
</div>
|
|
673
|
-
<button className="relative h-6 w-10 rounded-full
|
|
674
|
-
<div className="absolute top-1 left-1 h-4 w-4 rounded-full
|
|
695
|
+
<button className="bg-fm-icon-inactive relative h-6 w-10 rounded-full">
|
|
696
|
+
<div className="bg-fm-surface-contrast absolute top-1 left-1 h-4 w-4 rounded-full transition-transform" />
|
|
675
697
|
</button>
|
|
676
698
|
</div>
|
|
677
699
|
<div className="flex items-center justify-between">
|
|
678
700
|
<div className="flex items-center gap-3">
|
|
679
|
-
<div className="h-5 w-5 rounded-full border
|
|
701
|
+
<div className="border-fm-divider-contrast bg-fm-divider-primary h-5 w-5 rounded-full border" />
|
|
680
702
|
<div>
|
|
681
|
-
<div className="text-
|
|
703
|
+
<div className="text-fm-icon-active text-sm">
|
|
682
704
|
Notifications
|
|
683
705
|
</div>
|
|
684
|
-
<div className="text-
|
|
706
|
+
<div className="text-fm-tertiary text-xs">
|
|
685
707
|
Enabled
|
|
686
708
|
</div>
|
|
687
709
|
</div>
|
|
688
710
|
</div>
|
|
689
|
-
<button className="relative h-6 w-10 rounded-full
|
|
690
|
-
<div className="absolute top-1 right-1 h-4 w-4 rounded-full
|
|
711
|
+
<button className="bg-fm-icon-info relative h-6 w-10 rounded-full">
|
|
712
|
+
<div className="bg-fm-surface-contrast absolute top-1 right-1 h-4 w-4 rounded-full transition-transform" />
|
|
691
713
|
</button>
|
|
692
714
|
</div>
|
|
693
715
|
<div className="flex items-center justify-between">
|
|
694
716
|
<div className="flex items-center gap-3">
|
|
695
|
-
<VolumeOffIcon className="h-5 w-5
|
|
717
|
+
<VolumeOffIcon className="text-fm-icon-negative h-5 w-5" />
|
|
696
718
|
<div>
|
|
697
|
-
<div className="text-
|
|
719
|
+
<div className="text-fm-icon-active text-sm">
|
|
698
720
|
Microphone
|
|
699
721
|
</div>
|
|
700
|
-
<div className="text-
|
|
722
|
+
<div className="text-fm-tertiary text-xs">
|
|
701
723
|
Disabled
|
|
702
724
|
</div>
|
|
703
725
|
</div>
|
|
704
726
|
</div>
|
|
705
|
-
<button className="relative h-6 w-10 rounded-full
|
|
706
|
-
<div className="absolute top-1 left-1 h-4 w-4 rounded-full
|
|
727
|
+
<button className="bg-fm-icon-negative relative h-6 w-10 rounded-full">
|
|
728
|
+
<div className="bg-fm-surface-contrast absolute top-1 left-1 h-4 w-4 rounded-full transition-transform" />
|
|
707
729
|
</button>
|
|
708
730
|
</div>
|
|
709
731
|
</div>
|
|
710
732
|
</div>
|
|
711
733
|
</div>
|
|
712
734
|
</div>
|
|
713
|
-
<div className="rounded-lg
|
|
714
|
-
<pre className="overflow-x-auto text-sm
|
|
735
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
736
|
+
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
715
737
|
{`// System settings with audio controls
|
|
716
738
|
<div className="settings-section">
|
|
717
739
|
<h3>Audio Settings</h3>
|
|
@@ -738,64 +760,64 @@ function AudioControls() {
|
|
|
738
760
|
|
|
739
761
|
{/* Accessibility */}
|
|
740
762
|
<div className="!space-y-8">
|
|
741
|
-
<h2 className="text-center text-3xl font-bold
|
|
763
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
742
764
|
Accessibility Features
|
|
743
765
|
</h2>
|
|
744
766
|
<div className="grid grid-cols-1 gap-8 md:grid-cols-2">
|
|
745
|
-
<div className="!space-y-4 rounded-lg border
|
|
746
|
-
<h3 className="text-lg font-semibold
|
|
767
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
|
|
768
|
+
<h3 className="text-fm-icon-positive! text-lg font-semibold">
|
|
747
769
|
✅ Built-in Features
|
|
748
770
|
</h3>
|
|
749
|
-
<ul className="!space-y-2 text-sm
|
|
750
|
-
<li className="
|
|
771
|
+
<ul className="text-fm-secondary! !space-y-2 text-sm">
|
|
772
|
+
<li className="text-fm-secondary!">
|
|
751
773
|
Uses Radix UI AccessibleIcon wrapper
|
|
752
774
|
</li>
|
|
753
|
-
<li className="
|
|
775
|
+
<li className="text-fm-secondary!">
|
|
754
776
|
Provides screen reader label "Volume off icon"
|
|
755
777
|
</li>
|
|
756
|
-
<li className="
|
|
778
|
+
<li className="text-fm-secondary!">
|
|
757
779
|
Supports keyboard navigation when interactive
|
|
758
780
|
</li>
|
|
759
|
-
<li className="
|
|
781
|
+
<li className="text-fm-secondary!">
|
|
760
782
|
Maintains proper color contrast ratios
|
|
761
783
|
</li>
|
|
762
|
-
<li className="
|
|
784
|
+
<li className="text-fm-secondary!">
|
|
763
785
|
Scales with user's font size preferences
|
|
764
786
|
</li>
|
|
765
787
|
</ul>
|
|
766
788
|
</div>
|
|
767
789
|
|
|
768
|
-
<div className="!space-y-4 rounded-lg border
|
|
769
|
-
<h3 className="text-lg font-semibold
|
|
790
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
|
|
791
|
+
<h3 className="text-fm-secondary! text-lg font-semibold">
|
|
770
792
|
💡 Best Practices
|
|
771
793
|
</h3>
|
|
772
|
-
<ul className="!space-y-2 text-sm
|
|
773
|
-
<li className="
|
|
794
|
+
<ul className="text-fm-secondary !space-y-2 text-sm">
|
|
795
|
+
<li className="text-fm-secondary!">
|
|
774
796
|
Always provide descriptive aria-labels for mute buttons
|
|
775
797
|
</li>
|
|
776
|
-
<li className="
|
|
798
|
+
<li className="text-fm-secondary!">
|
|
777
799
|
Use consistent placement in audio control groups
|
|
778
800
|
</li>
|
|
779
|
-
<li className="
|
|
801
|
+
<li className="text-fm-secondary!">
|
|
780
802
|
Ensure sufficient touch target size (44px minimum)
|
|
781
803
|
</li>
|
|
782
|
-
<li className="
|
|
804
|
+
<li className="text-fm-secondary!">
|
|
783
805
|
Provide visible focus states for keyboard users
|
|
784
806
|
</li>
|
|
785
|
-
<li className="
|
|
807
|
+
<li className="text-fm-secondary!">
|
|
786
808
|
Consider keyboard shortcuts (e.g., M key for mute)
|
|
787
809
|
</li>
|
|
788
810
|
</ul>
|
|
789
811
|
</div>
|
|
790
812
|
</div>
|
|
791
813
|
|
|
792
|
-
<div className="rounded-lg border
|
|
793
|
-
<h3 className="mb-4 text-lg font-semibold
|
|
814
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
|
|
815
|
+
<h3 className="!text-fm-secondary mb-4 text-lg font-semibold">
|
|
794
816
|
Proper ARIA Implementation
|
|
795
817
|
</h3>
|
|
796
818
|
<div className="grid grid-cols-1 gap-6 lg:grid-cols-2">
|
|
797
|
-
<div className="rounded-lg
|
|
798
|
-
<pre className="overflow-x-auto text-sm
|
|
819
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
820
|
+
<pre className="text-fm-icon-info! overflow-x-auto text-sm">
|
|
799
821
|
{`// Mute button with proper ARIA
|
|
800
822
|
<button
|
|
801
823
|
aria-label={isMuted ? "Unmute audio" : "Mute audio"}
|
|
@@ -841,13 +863,13 @@ function AudioControls() {
|
|
|
841
863
|
</pre>
|
|
842
864
|
</div>
|
|
843
865
|
<div className="!space-y-4">
|
|
844
|
-
<p className="text-
|
|
866
|
+
<p className="text-fm-secondary! text-sm">
|
|
845
867
|
When using VolumeOffIcon for audio controls, always
|
|
846
868
|
provide clear context about the current mute state and
|
|
847
869
|
what the action will do.
|
|
848
870
|
</p>
|
|
849
|
-
<div className="
|
|
850
|
-
<div className="flex items-center gap-2 text-sm
|
|
871
|
+
<div className="border-fm-divider-secondary bg-fm-icon-inactive/10 rounded-lg border p-4">
|
|
872
|
+
<div className="text-fm-secondary flex items-center gap-2 text-sm">
|
|
851
873
|
<VolumeOffIcon className="h-4 w-4" />
|
|
852
874
|
<span>
|
|
853
875
|
Screen readers need context about mute vs unmute
|
|
@@ -862,48 +884,60 @@ function AudioControls() {
|
|
|
862
884
|
|
|
863
885
|
{/* Related Icons */}
|
|
864
886
|
<div className="!space-y-8">
|
|
865
|
-
<h2 className="text-center text-3xl font-bold
|
|
887
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
866
888
|
Related Icons
|
|
867
889
|
</h2>
|
|
868
890
|
<div className="grid grid-cols-2 gap-6 md:grid-cols-4">
|
|
869
|
-
<div className="!space-y-3 rounded-lg border
|
|
870
|
-
<div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg
|
|
871
|
-
<span className="
|
|
891
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
|
|
892
|
+
<div className="bg-fm-icon-positive/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
|
|
893
|
+
<span className="text-fm-icon-active! !text-2xl">🔊</span>
|
|
872
894
|
</div>
|
|
873
895
|
<div>
|
|
874
|
-
<div className="font-medium
|
|
875
|
-
|
|
896
|
+
<div className="text-fm-icon-active font-medium">
|
|
897
|
+
VolumeOnIcon
|
|
898
|
+
</div>
|
|
899
|
+
<div className="text-fm-tertiary text-xs">
|
|
900
|
+
Audio enabled
|
|
901
|
+
</div>
|
|
876
902
|
</div>
|
|
877
903
|
</div>
|
|
878
|
-
<div className="!space-y-3 rounded-lg border
|
|
879
|
-
<div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg
|
|
880
|
-
<span className="
|
|
904
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
|
|
905
|
+
<div className="bg-fm-icon-info/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
|
|
906
|
+
<span className="text-fm-icon-active! !text-2xl">🎵</span>
|
|
881
907
|
</div>
|
|
882
908
|
<div>
|
|
883
|
-
<div className="font-medium
|
|
884
|
-
|
|
909
|
+
<div className="text-fm-icon-active font-medium">
|
|
910
|
+
MusicIcon
|
|
911
|
+
</div>
|
|
912
|
+
<div className="text-fm-tertiary text-xs">
|
|
913
|
+
Audio content
|
|
914
|
+
</div>
|
|
885
915
|
</div>
|
|
886
916
|
</div>
|
|
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
|
|
889
|
-
<span className="
|
|
917
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
|
|
918
|
+
<div className="bg-fm-secondary-500/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
|
|
919
|
+
<span className="text-fm-icon-active! !text-2xl">🎙️</span>
|
|
890
920
|
</div>
|
|
891
921
|
<div>
|
|
892
|
-
<div className="font-medium
|
|
922
|
+
<div className="text-fm-icon-active font-medium">
|
|
893
923
|
MicrophoneIcon
|
|
894
924
|
</div>
|
|
895
|
-
<div className="text-
|
|
925
|
+
<div className="text-fm-tertiary text-xs">
|
|
926
|
+
Input audio
|
|
927
|
+
</div>
|
|
896
928
|
</div>
|
|
897
929
|
</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
|
|
900
|
-
<span className="
|
|
930
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
|
|
931
|
+
<div className="bg-fm-icon-warning/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
|
|
932
|
+
<span className="text-fm-icon-active! !text-2xl">🎧</span>
|
|
901
933
|
</div>
|
|
902
934
|
<div>
|
|
903
|
-
<div className="font-medium
|
|
935
|
+
<div className="text-fm-icon-active font-medium">
|
|
904
936
|
HeadphonesIcon
|
|
905
937
|
</div>
|
|
906
|
-
<div className="text-
|
|
938
|
+
<div className="text-fm-tertiary text-xs">
|
|
939
|
+
Audio output
|
|
940
|
+
</div>
|
|
907
941
|
</div>
|
|
908
942
|
</div>
|
|
909
943
|
</div>
|
|
@@ -911,14 +945,14 @@ function AudioControls() {
|
|
|
911
945
|
</div>
|
|
912
946
|
|
|
913
947
|
{/* Footer */}
|
|
914
|
-
<div className="border-
|
|
948
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary border-t backdrop-blur-xl">
|
|
915
949
|
<div className="!mx-auto max-w-7xl px-6 py-8">
|
|
916
950
|
<div className="!space-y-4 text-center">
|
|
917
|
-
<p className="
|
|
951
|
+
<p className="text-fm-tertiary!">
|
|
918
952
|
VolumeOffIcon is part of the Aural UI icon library, built
|
|
919
953
|
with accessibility and audio control best practices in mind.
|
|
920
954
|
</p>
|
|
921
|
-
<p className="text-
|
|
955
|
+
<p className="text-fm-placeholder! text-sm">
|
|
922
956
|
All icons use Radix UI's AccessibleIcon for screen reader
|
|
923
957
|
compatibility and follow WCAG guidelines for media controls.
|
|
924
958
|
</p>
|
|
@@ -971,20 +1005,20 @@ const storyParameters = {
|
|
|
971
1005
|
backgrounds: {
|
|
972
1006
|
default: "dark",
|
|
973
1007
|
values: [
|
|
974
|
-
{ name: "dark", value: "
|
|
975
|
-
{ name: "darker", value: "
|
|
1008
|
+
{ name: "dark", value: "var(--color-fm-surface-primary)" },
|
|
1009
|
+
{ name: "darker", value: "var(--color-fm-neutral-0)" },
|
|
976
1010
|
],
|
|
977
1011
|
},
|
|
978
1012
|
}
|
|
979
1013
|
|
|
980
1014
|
export const Default: Story = {
|
|
981
1015
|
args: {
|
|
982
|
-
className: "h-8 w-8 text-
|
|
1016
|
+
className: "h-8 w-8 text-fm-tertiary",
|
|
983
1017
|
withAccessibility: true,
|
|
984
1018
|
},
|
|
985
1019
|
parameters: storyParameters,
|
|
986
1020
|
render: (args) => (
|
|
987
|
-
<div className="flex h-32 min-h-dvh items-center justify-center rounded-lg bg-
|
|
1021
|
+
<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">
|
|
988
1022
|
<VolumeOffIcon {...args} />
|
|
989
1023
|
</div>
|
|
990
1024
|
),
|
|
@@ -1001,30 +1035,30 @@ export const SizeVariations: Story = {
|
|
|
1001
1035
|
},
|
|
1002
1036
|
},
|
|
1003
1037
|
render: () => (
|
|
1004
|
-
<div className="flex h-64 min-h-dvh items-center justify-center gap-8 rounded-lg bg-
|
|
1038
|
+
<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">
|
|
1005
1039
|
<div className="text-center">
|
|
1006
|
-
<VolumeOffIcon className="!mx-auto mb-2 h-3 w-3
|
|
1007
|
-
<span className="text-
|
|
1040
|
+
<VolumeOffIcon className="text-fm-tertiary !mx-auto mb-2 h-3 w-3" />
|
|
1041
|
+
<span className="text-fm-tertiary text-xs">12px</span>
|
|
1008
1042
|
</div>
|
|
1009
1043
|
<div className="text-center">
|
|
1010
|
-
<VolumeOffIcon className="!mx-auto mb-2 h-4 w-4
|
|
1011
|
-
<span className="text-
|
|
1044
|
+
<VolumeOffIcon className="text-fm-tertiary !mx-auto mb-2 h-4 w-4" />
|
|
1045
|
+
<span className="text-fm-tertiary text-xs">16px</span>
|
|
1012
1046
|
</div>
|
|
1013
1047
|
<div className="text-center">
|
|
1014
|
-
<VolumeOffIcon className="!mx-auto mb-2 h-5 w-5
|
|
1015
|
-
<span className="text-
|
|
1048
|
+
<VolumeOffIcon className="text-fm-tertiary !mx-auto mb-2 h-5 w-5" />
|
|
1049
|
+
<span className="text-fm-tertiary text-xs">20px</span>
|
|
1016
1050
|
</div>
|
|
1017
1051
|
<div className="text-center">
|
|
1018
|
-
<VolumeOffIcon className="!mx-auto mb-2 h-6 w-6
|
|
1019
|
-
<span className="text-
|
|
1052
|
+
<VolumeOffIcon className="text-fm-tertiary !mx-auto mb-2 h-6 w-6" />
|
|
1053
|
+
<span className="text-fm-tertiary text-xs">24px</span>
|
|
1020
1054
|
</div>
|
|
1021
1055
|
<div className="text-center">
|
|
1022
|
-
<VolumeOffIcon className="!mx-auto mb-2 h-8 w-8
|
|
1023
|
-
<span className="text-
|
|
1056
|
+
<VolumeOffIcon className="text-fm-tertiary !mx-auto mb-2 h-8 w-8" />
|
|
1057
|
+
<span className="text-fm-tertiary text-xs">32px</span>
|
|
1024
1058
|
</div>
|
|
1025
1059
|
<div className="text-center">
|
|
1026
|
-
<VolumeOffIcon className="!mx-auto mb-2 h-12 w-12
|
|
1027
|
-
<span className="text-
|
|
1060
|
+
<VolumeOffIcon className="text-fm-tertiary !mx-auto mb-2 h-12 w-12" />
|
|
1061
|
+
<span className="text-fm-tertiary text-xs">48px</span>
|
|
1028
1062
|
</div>
|
|
1029
1063
|
</div>
|
|
1030
1064
|
),
|
|
@@ -1041,34 +1075,36 @@ export const ColorVariations: Story = {
|
|
|
1041
1075
|
},
|
|
1042
1076
|
},
|
|
1043
1077
|
render: () => (
|
|
1044
|
-
<div className="grid min-h-dvh grid-cols-2 items-center justify-center gap-6 rounded-lg bg-
|
|
1078
|
+
<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-4">
|
|
1045
1079
|
<div className="text-center">
|
|
1046
|
-
<div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border
|
|
1047
|
-
<VolumeOffIcon className="h-8 w-8
|
|
1080
|
+
<div className="border-fm-divider-primary bg-fm-icon-inactive/20 !mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border">
|
|
1081
|
+
<VolumeOffIcon className="text-fm-tertiary h-8 w-8" />
|
|
1048
1082
|
</div>
|
|
1049
|
-
<div className="text-sm font-medium
|
|
1050
|
-
<div className="text-
|
|
1083
|
+
<div className="text-fm-icon-active text-sm font-medium">Muted</div>
|
|
1084
|
+
<div className="text-fm-tertiary text-xs">text-fm-tertiary</div>
|
|
1051
1085
|
</div>
|
|
1052
1086
|
<div className="text-center">
|
|
1053
|
-
<div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border
|
|
1054
|
-
<VolumeOffIcon className="h-8 w-8
|
|
1087
|
+
<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">
|
|
1088
|
+
<VolumeOffIcon className="text-fm-placeholder h-8 w-8" />
|
|
1055
1089
|
</div>
|
|
1056
|
-
<div className="text-sm font-medium
|
|
1057
|
-
<div className="text-
|
|
1090
|
+
<div className="text-fm-icon-active text-sm font-medium">Inactive</div>
|
|
1091
|
+
<div className="text-fm-placeholder text-xs">text-fm-placeholder</div>
|
|
1058
1092
|
</div>
|
|
1059
1093
|
<div className="text-center">
|
|
1060
|
-
<div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border
|
|
1061
|
-
<VolumeOffIcon className="h-8 w-8
|
|
1094
|
+
<div className="border-fm-divider-primary bg-fm-surface-secondary/20 !mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border">
|
|
1095
|
+
<VolumeOffIcon className="text-fm-tertiary h-8 w-8" />
|
|
1062
1096
|
</div>
|
|
1063
|
-
<div className="text-sm font-medium
|
|
1064
|
-
<div className="text-
|
|
1097
|
+
<div className="text-fm-icon-active text-sm font-medium">Neutral</div>
|
|
1098
|
+
<div className="text-fm-tertiary text-xs">text-fm-tertiary</div>
|
|
1065
1099
|
</div>
|
|
1066
1100
|
<div className="text-center">
|
|
1067
|
-
<div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border
|
|
1068
|
-
<VolumeOffIcon className="h-8 w-8
|
|
1101
|
+
<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">
|
|
1102
|
+
<VolumeOffIcon className="text-fm-icon-negative h-8 w-8" />
|
|
1103
|
+
</div>
|
|
1104
|
+
<div className="text-fm-icon-active text-sm font-medium">Disabled</div>
|
|
1105
|
+
<div className="text-fm-icon-negative text-xs">
|
|
1106
|
+
text-fm-icon-negative
|
|
1069
1107
|
</div>
|
|
1070
|
-
<div className="text-sm font-medium text-white">Disabled</div>
|
|
1071
|
-
<div className="text-xs text-red-400">text-red-400</div>
|
|
1072
1108
|
</div>
|
|
1073
1109
|
</div>
|
|
1074
1110
|
),
|
|
@@ -1085,24 +1121,26 @@ export const UsageExamples: Story = {
|
|
|
1085
1121
|
},
|
|
1086
1122
|
},
|
|
1087
1123
|
render: () => (
|
|
1088
|
-
<div className="min-h-dvh !space-y-8 rounded-lg bg-
|
|
1124
|
+
<div className="from-fm-surface-primary to-fm-surface-secondary min-h-dvh !space-y-8 rounded-lg bg-linear-to-br p-8">
|
|
1089
1125
|
{/* Video Player */}
|
|
1090
1126
|
<div className="!space-y-2">
|
|
1091
|
-
<h3 className="text-sm font-medium
|
|
1092
|
-
|
|
1093
|
-
|
|
1094
|
-
|
|
1127
|
+
<h3 className="text-fm-icon-active text-sm font-medium">
|
|
1128
|
+
Video Player
|
|
1129
|
+
</h3>
|
|
1130
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
|
|
1131
|
+
<div className="from-fm-surface-tertiary/20 to-fm-surface-tertiary/20 mb-4 flex h-32 items-center justify-center rounded bg-linear-to-r">
|
|
1132
|
+
<div className="text-fm-placeholder text-sm">Video Content</div>
|
|
1095
1133
|
</div>
|
|
1096
1134
|
<div className="flex items-center justify-between">
|
|
1097
1135
|
<div className="flex items-center gap-4">
|
|
1098
|
-
<button className="rounded-lg p-2 transition-colors
|
|
1099
|
-
<div className="h-6 w-6 rounded-full border
|
|
1136
|
+
<button className="hover:bg-fm-surface-secondary rounded-lg p-2 transition-colors">
|
|
1137
|
+
<div className="border-fm-divider-contrast bg-fm-divider-primary h-6 w-6 rounded-full border" />
|
|
1100
1138
|
</button>
|
|
1101
|
-
<div className="text-
|
|
1139
|
+
<div className="text-fm-tertiary text-sm">00:42 / 03:28</div>
|
|
1102
1140
|
</div>
|
|
1103
1141
|
<div className="flex items-center gap-2">
|
|
1104
|
-
<button className="rounded-lg p-2
|
|
1105
|
-
<VolumeOffIcon className="h-5 w-5
|
|
1142
|
+
<button className="hover:bg-fm-surface-secondary rounded-lg p-2">
|
|
1143
|
+
<VolumeOffIcon className="text-fm-tertiary h-5 w-5" />
|
|
1106
1144
|
</button>
|
|
1107
1145
|
</div>
|
|
1108
1146
|
</div>
|
|
@@ -1111,14 +1149,16 @@ export const UsageExamples: Story = {
|
|
|
1111
1149
|
|
|
1112
1150
|
{/* Conference Call */}
|
|
1113
1151
|
<div className="!space-y-2">
|
|
1114
|
-
<h3 className="text-sm font-medium
|
|
1115
|
-
|
|
1152
|
+
<h3 className="text-fm-icon-active text-sm font-medium">
|
|
1153
|
+
Conference Call
|
|
1154
|
+
</h3>
|
|
1155
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-4">
|
|
1116
1156
|
<div className="flex justify-center gap-4">
|
|
1117
|
-
<button className="
|
|
1118
|
-
<VolumeOffIcon className="h-6 w-6
|
|
1157
|
+
<button className="border-fm-icon-negative/30 bg-fm-icon-negative/20 hover:bg-fm-icon-negative/30 rounded-lg border p-3">
|
|
1158
|
+
<VolumeOffIcon className="text-fm-icon-negative h-6 w-6" />
|
|
1119
1159
|
</button>
|
|
1120
|
-
<button className="
|
|
1121
|
-
<div className="h-6 w-6 rounded-full border
|
|
1160
|
+
<button className="border-fm-divider-primary bg-fm-surface-secondary hover:bg-fm-divider-primary rounded-lg border p-3">
|
|
1161
|
+
<div className="border-fm-divider-contrast bg-fm-divider-primary h-6 w-6 rounded-full border" />
|
|
1122
1162
|
</button>
|
|
1123
1163
|
</div>
|
|
1124
1164
|
</div>
|
|
@@ -1140,11 +1180,11 @@ export const Playground: Story = {
|
|
|
1140
1180
|
args: {
|
|
1141
1181
|
width: 24,
|
|
1142
1182
|
height: 24,
|
|
1143
|
-
className: "text-
|
|
1183
|
+
className: "text-fm-tertiary",
|
|
1144
1184
|
},
|
|
1145
1185
|
render: (args) => (
|
|
1146
|
-
<div className="flex h-64 min-h-dvh items-center justify-center rounded-lg bg-
|
|
1147
|
-
<div className="rounded-lg border
|
|
1186
|
+
<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">
|
|
1187
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-8">
|
|
1148
1188
|
<VolumeOffIcon {...args} />
|
|
1149
1189
|
</div>
|
|
1150
1190
|
</div>
|