aural-ui 3.0.7 → 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/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/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 VolumeFullIcon> = {
|
|
|
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 VolumeFullIcon> = {
|
|
|
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-icon-info/5 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-icon-info/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
|
-
<VolumeFullIcon className="h-12 w-12
|
|
89
|
+
<div className="border-fm-icon-info/30 from-fm-icon-info/20 to-fm-icon-info/20 !mx-auto flex h-24 w-24 items-center justify-center rounded-2xl border bg-linear-to-br">
|
|
90
|
+
<VolumeFullIcon className="text-fm-icon-info 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
|
VolumeFullIcon
|
|
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 maximum volume audio control icon for media interfaces.
|
|
97
97
|
Features the classic speaker with full sound waves design,
|
|
98
98
|
essential for music players, video platforms, audio systems,
|
|
@@ -103,28 +103,28 @@ const meta: Meta<typeof VolumeFullIcon> = {
|
|
|
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-icon-info text-3xl font-bold">
|
|
107
107
|
Maximum Volume
|
|
108
108
|
</div>
|
|
109
|
-
<div className="text-
|
|
109
|
+
<div className="text-fm-tertiary text-sm">
|
|
110
110
|
Full audio power
|
|
111
111
|
</div>
|
|
112
112
|
</div>
|
|
113
|
-
<div className="h-8 w-px
|
|
113
|
+
<div className="bg-fm-divider-primary h-8 w-px" />
|
|
114
114
|
<div className="text-center">
|
|
115
|
-
<div className="text-3xl font-bold
|
|
115
|
+
<div className="text-fm-icon-info text-3xl font-bold">
|
|
116
116
|
Accessible
|
|
117
117
|
</div>
|
|
118
|
-
<div className="text-
|
|
118
|
+
<div className="text-fm-tertiary text-sm">
|
|
119
119
|
Screen reader friendly
|
|
120
120
|
</div>
|
|
121
121
|
</div>
|
|
122
|
-
<div className="h-8 w-px
|
|
122
|
+
<div className="bg-fm-divider-primary h-8 w-px" />
|
|
123
123
|
<div className="text-center">
|
|
124
|
-
<div className="text-3xl font-bold
|
|
124
|
+
<div className="text-fm-secondary-600 text-3xl font-bold">
|
|
125
125
|
Universal
|
|
126
126
|
</div>
|
|
127
|
-
<div className="text-
|
|
127
|
+
<div className="text-fm-tertiary text-sm">
|
|
128
128
|
Standard volume symbol
|
|
129
129
|
</div>
|
|
130
130
|
</div>
|
|
@@ -137,16 +137,16 @@ const meta: Meta<typeof VolumeFullIcon> = {
|
|
|
137
137
|
<div className="!mx-auto max-w-7xl !space-y-16 px-6 py-12">
|
|
138
138
|
{/* Quick Usage */}
|
|
139
139
|
<div className="!space-y-8">
|
|
140
|
-
<h2 className="text-center text-3xl font-bold
|
|
140
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
141
141
|
Quick Start
|
|
142
142
|
</h2>
|
|
143
143
|
<div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
|
|
144
144
|
<div className="!space-y-4">
|
|
145
|
-
<h3 className="text-xl font-semibold
|
|
145
|
+
<h3 className="text-fm-icon-info! text-xl font-semibold">
|
|
146
146
|
Basic Usage
|
|
147
147
|
</h3>
|
|
148
|
-
<div className="rounded-lg
|
|
149
|
-
<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">
|
|
150
150
|
{`import { VolumeFullIcon } from "@icons/volume-full-icon"
|
|
151
151
|
|
|
152
152
|
function VolumeControl() {
|
|
@@ -165,12 +165,12 @@ function VolumeControl() {
|
|
|
165
165
|
</div>
|
|
166
166
|
|
|
167
167
|
<div className="!space-y-4">
|
|
168
|
-
<h3 className="text-xl font-semibold
|
|
168
|
+
<h3 className="text-fm-icon-info! text-xl font-semibold">
|
|
169
169
|
Live Preview
|
|
170
170
|
</h3>
|
|
171
|
-
<div className="flex h-32 items-center justify-center rounded-lg border
|
|
172
|
-
<button className="
|
|
173
|
-
<VolumeFullIcon 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-icon-info/20 bg-fm-icon-info/10 hover:bg-fm-icon-info/20 rounded-lg border p-3 transition-colors">
|
|
173
|
+
<VolumeFullIcon className="text-fm-icon-info h-6 w-6" />
|
|
174
174
|
</button>
|
|
175
175
|
</div>
|
|
176
176
|
</div>
|
|
@@ -179,108 +179,116 @@ function VolumeControl() {
|
|
|
179
179
|
|
|
180
180
|
{/* Props Documentation */}
|
|
181
181
|
<div className="!space-y-8">
|
|
182
|
-
<h2 className="text-center text-3xl font-bold
|
|
182
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
183
183
|
Props & Configuration
|
|
184
184
|
</h2>
|
|
185
185
|
|
|
186
|
-
<div className="overflow-hidden rounded-lg border
|
|
187
|
-
<div className="bg-
|
|
188
|
-
<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>
|
|
189
191
|
</div>
|
|
190
192
|
<table className="!my-0 w-full">
|
|
191
|
-
<thead className="bg-
|
|
192
|
-
<tr className="border-
|
|
193
|
-
<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">
|
|
194
196
|
Prop
|
|
195
197
|
</th>
|
|
196
|
-
<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">
|
|
197
199
|
Type
|
|
198
200
|
</th>
|
|
199
|
-
<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">
|
|
200
202
|
Default
|
|
201
203
|
</th>
|
|
202
|
-
<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">
|
|
203
205
|
Description
|
|
204
206
|
</th>
|
|
205
207
|
</tr>
|
|
206
208
|
</thead>
|
|
207
209
|
<tbody>
|
|
208
210
|
{" "}
|
|
209
|
-
<tr className="
|
|
210
|
-
<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">
|
|
211
213
|
withAccessibility
|
|
212
214
|
</td>
|
|
213
|
-
<td className="px-6 py-4 text-sm
|
|
215
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
214
216
|
boolean
|
|
215
217
|
</td>
|
|
216
|
-
<td className="px-6 py-4 text-sm
|
|
218
|
+
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
217
219
|
true
|
|
218
220
|
</td>
|
|
219
|
-
<td className="px-6 py-4 text-sm
|
|
221
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
220
222
|
Whether to wrap the icon with accessibility feature
|
|
221
223
|
</td>
|
|
222
224
|
</tr>
|
|
223
|
-
<tr className="border-
|
|
224
|
-
<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-icon-info! px-6 py-4 font-mono text-sm">
|
|
225
227
|
height
|
|
226
228
|
</td>
|
|
227
|
-
<td className="px-6 py-4 text-sm
|
|
229
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
228
230
|
number | string
|
|
229
231
|
</td>
|
|
230
|
-
<td className="px-6 py-4 text-sm
|
|
231
|
-
|
|
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">
|
|
232
236
|
Height of the icon in pixels
|
|
233
237
|
</td>
|
|
234
238
|
</tr>
|
|
235
|
-
<tr className="border-
|
|
236
|
-
<td className="px-6 py-4 font-mono text-sm
|
|
239
|
+
<tr className="border-fm-divider-tertiary border-b">
|
|
240
|
+
<td className="text-fm-icon-info! px-6 py-4 font-mono text-sm">
|
|
237
241
|
stroke
|
|
238
242
|
</td>
|
|
239
|
-
<td className="px-6 py-4 text-sm
|
|
243
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
240
244
|
string
|
|
241
245
|
</td>
|
|
242
|
-
<td className="px-6 py-4 text-sm
|
|
246
|
+
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
243
247
|
currentColor
|
|
244
248
|
</td>
|
|
245
|
-
<td className="px-6 py-4 text-sm
|
|
249
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
246
250
|
Stroke color of the icon
|
|
247
251
|
</td>
|
|
248
252
|
</tr>
|
|
249
|
-
<tr className="border-
|
|
250
|
-
<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-icon-info! px-6 py-4 font-mono text-sm">
|
|
251
255
|
strokeWidth
|
|
252
256
|
</td>
|
|
253
|
-
<td className="px-6 py-4 text-sm
|
|
257
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
254
258
|
string | number
|
|
255
259
|
</td>
|
|
256
|
-
<td className="px-6 py-4 text-sm
|
|
260
|
+
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
257
261
|
1.5
|
|
258
262
|
</td>
|
|
259
|
-
<td className="px-6 py-4 text-sm
|
|
263
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
260
264
|
Width of the stroke
|
|
261
265
|
</td>
|
|
262
266
|
</tr>
|
|
263
|
-
<tr className="border-
|
|
264
|
-
<td className="px-6 py-4 font-mono text-sm
|
|
267
|
+
<tr className="border-fm-divider-tertiary border-b">
|
|
268
|
+
<td className="text-fm-icon-info! px-6 py-4 font-mono text-sm">
|
|
265
269
|
className
|
|
266
270
|
</td>
|
|
267
|
-
<td className="px-6 py-4 text-sm
|
|
271
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
268
272
|
string
|
|
269
273
|
</td>
|
|
270
|
-
<td className="px-6 py-4 text-sm
|
|
271
|
-
|
|
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">
|
|
272
278
|
CSS classes for styling (use for overrides)
|
|
273
279
|
</td>
|
|
274
280
|
</tr>
|
|
275
|
-
<tr className="
|
|
276
|
-
<td className="px-6 py-4 font-mono text-sm
|
|
281
|
+
<tr className="bg-fm-surface-secondary!">
|
|
282
|
+
<td className="text-fm-icon-info! px-6 py-4 font-mono text-sm">
|
|
277
283
|
...svgProps
|
|
278
284
|
</td>
|
|
279
|
-
<td className="px-6 py-4 text-sm
|
|
285
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
280
286
|
SVGProps
|
|
281
287
|
</td>
|
|
282
|
-
<td className="px-6 py-4 text-sm
|
|
283
|
-
|
|
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">
|
|
284
292
|
All standard SVG element props
|
|
285
293
|
</td>
|
|
286
294
|
</tr>
|
|
@@ -291,50 +299,62 @@ function VolumeControl() {
|
|
|
291
299
|
|
|
292
300
|
{/* Size Variations */}
|
|
293
301
|
<div className="!space-y-8">
|
|
294
|
-
<h2 className="text-center text-3xl font-bold
|
|
302
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
295
303
|
Size Variations
|
|
296
304
|
</h2>
|
|
297
|
-
<div className="rounded-lg border
|
|
305
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-8">
|
|
298
306
|
<div className="!space-y-6">
|
|
299
307
|
<div className="grid grid-cols-1 gap-8 md:grid-cols-2">
|
|
300
308
|
<div className="!space-y-4">
|
|
301
|
-
<h3 className="text-lg font-semibold
|
|
309
|
+
<h3 className="text-fm-icon-info! text-lg font-semibold">
|
|
302
310
|
Standard Sizes
|
|
303
311
|
</h3>
|
|
304
|
-
<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">
|
|
305
313
|
<div className="text-center">
|
|
306
|
-
<VolumeFullIcon className="!mx-auto mb-2 h-3 w-3
|
|
307
|
-
<span className="text-
|
|
314
|
+
<VolumeFullIcon className="text-fm-icon-info !mx-auto mb-2 h-3 w-3" />
|
|
315
|
+
<span className="text-fm-tertiary text-xs">
|
|
316
|
+
12px
|
|
317
|
+
</span>
|
|
308
318
|
</div>
|
|
309
319
|
<div className="text-center">
|
|
310
|
-
<VolumeFullIcon className="!mx-auto mb-2 h-4 w-4
|
|
311
|
-
<span className="text-
|
|
320
|
+
<VolumeFullIcon className="text-fm-icon-info !mx-auto mb-2 h-4 w-4" />
|
|
321
|
+
<span className="text-fm-tertiary text-xs">
|
|
322
|
+
16px
|
|
323
|
+
</span>
|
|
312
324
|
</div>
|
|
313
325
|
<div className="text-center">
|
|
314
|
-
<VolumeFullIcon className="!mx-auto mb-2 h-5 w-5
|
|
315
|
-
<span className="text-
|
|
326
|
+
<VolumeFullIcon className="text-fm-icon-info !mx-auto mb-2 h-5 w-5" />
|
|
327
|
+
<span className="text-fm-tertiary text-xs">
|
|
328
|
+
20px
|
|
329
|
+
</span>
|
|
316
330
|
</div>
|
|
317
331
|
<div className="text-center">
|
|
318
|
-
<VolumeFullIcon className="!mx-auto mb-2 h-6 w-6
|
|
319
|
-
<span className="text-
|
|
332
|
+
<VolumeFullIcon className="text-fm-icon-info !mx-auto mb-2 h-6 w-6" />
|
|
333
|
+
<span className="text-fm-tertiary text-xs">
|
|
334
|
+
24px
|
|
335
|
+
</span>
|
|
320
336
|
</div>
|
|
321
337
|
<div className="text-center">
|
|
322
|
-
<VolumeFullIcon className="!mx-auto mb-2 h-8 w-8
|
|
323
|
-
<span className="text-
|
|
338
|
+
<VolumeFullIcon className="text-fm-icon-info !mx-auto mb-2 h-8 w-8" />
|
|
339
|
+
<span className="text-fm-tertiary text-xs">
|
|
340
|
+
32px
|
|
341
|
+
</span>
|
|
324
342
|
</div>
|
|
325
343
|
<div className="text-center">
|
|
326
|
-
<VolumeFullIcon className="!mx-auto mb-2 h-12 w-12
|
|
327
|
-
<span className="text-
|
|
344
|
+
<VolumeFullIcon className="text-fm-icon-info !mx-auto mb-2 h-12 w-12" />
|
|
345
|
+
<span className="text-fm-tertiary text-xs">
|
|
346
|
+
48px
|
|
347
|
+
</span>
|
|
328
348
|
</div>
|
|
329
349
|
</div>
|
|
330
350
|
</div>
|
|
331
351
|
|
|
332
352
|
<div className="!space-y-4">
|
|
333
|
-
<h3 className="text-lg font-semibold
|
|
353
|
+
<h3 className="text-fm-icon-info! text-lg font-semibold">
|
|
334
354
|
Code Example
|
|
335
355
|
</h3>
|
|
336
|
-
<div className="rounded-lg
|
|
337
|
-
<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">
|
|
338
358
|
{`// Small (16px) - compact controls
|
|
339
359
|
<VolumeFullIcon className="h-4 w-4" />
|
|
340
360
|
|
|
@@ -356,56 +376,56 @@ function VolumeControl() {
|
|
|
356
376
|
|
|
357
377
|
{/* Color Variations */}
|
|
358
378
|
<div className="!space-y-8">
|
|
359
|
-
<h2 className="text-center text-3xl font-bold
|
|
379
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
360
380
|
Color Variations
|
|
361
381
|
</h2>
|
|
362
382
|
<div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
|
|
363
383
|
<div className="!space-y-4">
|
|
364
|
-
<h3 className="text-lg font-semibold
|
|
384
|
+
<h3 className="text-fm-icon-info! text-lg font-semibold">
|
|
365
385
|
Semantic Colors
|
|
366
386
|
</h3>
|
|
367
|
-
<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">
|
|
368
388
|
<div className="flex items-center gap-4">
|
|
369
|
-
<VolumeFullIcon className="h-6 w-6
|
|
389
|
+
<VolumeFullIcon className="text-fm-icon-info h-6 w-6" />
|
|
370
390
|
<div>
|
|
371
|
-
<div className="text-sm font-medium
|
|
391
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
372
392
|
Maximum Volume
|
|
373
393
|
</div>
|
|
374
|
-
<div className="text-
|
|
375
|
-
text-
|
|
394
|
+
<div className="text-fm-tertiary text-xs">
|
|
395
|
+
text-fm-icon-info
|
|
376
396
|
</div>
|
|
377
397
|
</div>
|
|
378
398
|
</div>
|
|
379
399
|
<div className="flex items-center gap-4">
|
|
380
|
-
<VolumeFullIcon className="h-6 w-6
|
|
400
|
+
<VolumeFullIcon className="text-fm-icon-info h-6 w-6" />
|
|
381
401
|
<div>
|
|
382
|
-
<div className="text-sm font-medium
|
|
402
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
383
403
|
High Power
|
|
384
404
|
</div>
|
|
385
|
-
<div className="text-
|
|
386
|
-
text-
|
|
405
|
+
<div className="text-fm-tertiary text-xs">
|
|
406
|
+
text-fm-icon-info
|
|
387
407
|
</div>
|
|
388
408
|
</div>
|
|
389
409
|
</div>
|
|
390
410
|
<div className="flex items-center gap-4">
|
|
391
|
-
<VolumeFullIcon className="h-6 w-6
|
|
411
|
+
<VolumeFullIcon className="text-fm-secondary-600 h-6 w-6" />
|
|
392
412
|
<div>
|
|
393
|
-
<div className="text-sm font-medium
|
|
413
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
394
414
|
Enhanced
|
|
395
415
|
</div>
|
|
396
|
-
<div className="text-
|
|
397
|
-
text-
|
|
416
|
+
<div className="text-fm-tertiary text-xs">
|
|
417
|
+
text-fm-secondary-600
|
|
398
418
|
</div>
|
|
399
419
|
</div>
|
|
400
420
|
</div>
|
|
401
421
|
<div className="flex items-center gap-4">
|
|
402
|
-
<VolumeFullIcon className="h-6 w-6
|
|
422
|
+
<VolumeFullIcon className="text-fm-secondary-600 h-6 w-6" />
|
|
403
423
|
<div>
|
|
404
|
-
<div className="text-sm font-medium
|
|
424
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
405
425
|
Premium
|
|
406
426
|
</div>
|
|
407
|
-
<div className="text-
|
|
408
|
-
text-
|
|
427
|
+
<div className="text-fm-tertiary text-xs">
|
|
428
|
+
text-fm-secondary-600
|
|
409
429
|
</div>
|
|
410
430
|
</div>
|
|
411
431
|
</div>
|
|
@@ -413,11 +433,11 @@ function VolumeControl() {
|
|
|
413
433
|
</div>
|
|
414
434
|
|
|
415
435
|
<div className="!space-y-4">
|
|
416
|
-
<h3 className="text-lg font-semibold
|
|
436
|
+
<h3 className="text-fm-icon-info! text-lg font-semibold">
|
|
417
437
|
Custom Colors
|
|
418
438
|
</h3>
|
|
419
|
-
<div className="rounded-lg
|
|
420
|
-
<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">
|
|
421
441
|
{`// Using Tailwind classes
|
|
422
442
|
<VolumeFullIcon className="h-6 w-6 text-indigo-400" />
|
|
423
443
|
<VolumeFullIcon className="h-6 w-6 text-blue-500" />
|
|
@@ -442,63 +462,67 @@ function VolumeControl() {
|
|
|
442
462
|
|
|
443
463
|
{/* Usage Examples */}
|
|
444
464
|
<div className="!space-y-8">
|
|
445
|
-
<h2 className="text-center text-3xl font-bold
|
|
465
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
446
466
|
Usage Examples
|
|
447
467
|
</h2>
|
|
448
468
|
|
|
449
469
|
<div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
|
|
450
470
|
{/* Home Theater System */}
|
|
451
471
|
<div className="!space-y-4">
|
|
452
|
-
<h3 className="text-lg font-semibold
|
|
472
|
+
<h3 className="text-fm-icon-info! text-lg font-semibold">
|
|
453
473
|
Home Theater System
|
|
454
474
|
</h3>
|
|
455
475
|
<div className="!space-y-4">
|
|
456
|
-
<div className="rounded-lg border
|
|
476
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
|
|
457
477
|
<div className="mb-4">
|
|
458
|
-
<div className="text-sm font-medium
|
|
478
|
+
<div className="text-fm-icon-active! text-sm font-medium">
|
|
459
479
|
Surround Sound System
|
|
460
480
|
</div>
|
|
461
|
-
<div className="text-
|
|
481
|
+
<div className="text-fm-tertiary! text-xs">
|
|
462
482
|
7.1 Channel Audio
|
|
463
483
|
</div>
|
|
464
484
|
</div>
|
|
465
485
|
<div className="mb-4 grid grid-cols-2 gap-4">
|
|
466
|
-
<div className="rounded-lg
|
|
467
|
-
<div className="mb-2 text-xs
|
|
486
|
+
<div className="bg-fm-surface-secondary rounded-lg p-3">
|
|
487
|
+
<div className="text-fm-tertiary mb-2 text-xs">
|
|
468
488
|
Master Volume
|
|
469
489
|
</div>
|
|
470
490
|
<div className="flex items-center gap-2">
|
|
471
|
-
<VolumeFullIcon className="h-5 w-5
|
|
472
|
-
<div className="h-2 flex-1 rounded-full
|
|
473
|
-
<div className="h-full w-4/5 rounded-full
|
|
491
|
+
<VolumeFullIcon className="text-fm-icon-info h-5 w-5" />
|
|
492
|
+
<div className="bg-fm-divider-primary h-2 flex-1 rounded-full">
|
|
493
|
+
<div className="bg-fm-icon-info h-full w-4/5 rounded-full" />
|
|
474
494
|
</div>
|
|
475
|
-
<span className="text-
|
|
495
|
+
<span className="text-fm-icon-active text-xs">
|
|
496
|
+
80%
|
|
497
|
+
</span>
|
|
476
498
|
</div>
|
|
477
499
|
</div>
|
|
478
|
-
<div className="rounded-lg
|
|
479
|
-
<div className="mb-2 text-xs
|
|
500
|
+
<div className="bg-fm-surface-secondary rounded-lg p-3">
|
|
501
|
+
<div className="text-fm-tertiary mb-2 text-xs">
|
|
480
502
|
Subwoofer
|
|
481
503
|
</div>
|
|
482
504
|
<div className="flex items-center gap-2">
|
|
483
|
-
<VolumeFullIcon className="h-5 w-5
|
|
484
|
-
<div className="h-2 flex-1 rounded-full
|
|
485
|
-
<div className="h-full w-full rounded-full
|
|
505
|
+
<VolumeFullIcon className="text-fm-icon-info h-5 w-5" />
|
|
506
|
+
<div className="bg-fm-divider-primary h-2 flex-1 rounded-full">
|
|
507
|
+
<div className="bg-fm-icon-info h-full w-full rounded-full" />
|
|
486
508
|
</div>
|
|
487
|
-
<span className="text-
|
|
509
|
+
<span className="text-fm-icon-active text-xs">
|
|
510
|
+
100%
|
|
511
|
+
</span>
|
|
488
512
|
</div>
|
|
489
513
|
</div>
|
|
490
514
|
</div>
|
|
491
515
|
<div className="flex justify-center gap-4">
|
|
492
|
-
<button className="
|
|
516
|
+
<button className="border-fm-icon-info/30 bg-fm-icon-info/20 text-fm-icon-info rounded-lg border px-4 py-2 text-sm">
|
|
493
517
|
Movie Mode
|
|
494
518
|
</button>
|
|
495
|
-
<button className="
|
|
519
|
+
<button className="border-fm-divider-primary bg-fm-surface-secondary text-fm-icon-active rounded-lg border px-4 py-2 text-sm">
|
|
496
520
|
Music Mode
|
|
497
521
|
</button>
|
|
498
522
|
</div>
|
|
499
523
|
</div>
|
|
500
|
-
<div className="rounded-lg
|
|
501
|
-
<pre className="overflow-x-auto text-sm
|
|
524
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
525
|
+
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
502
526
|
{`// Home theater volume control
|
|
503
527
|
<div className="theater-system">
|
|
504
528
|
<div className="volume-channel">
|
|
@@ -522,75 +546,77 @@ function VolumeControl() {
|
|
|
522
546
|
|
|
523
547
|
{/* Gaming Setup */}
|
|
524
548
|
<div className="!space-y-4">
|
|
525
|
-
<h3 className="text-lg font-semibold
|
|
549
|
+
<h3 className="text-fm-icon-info! text-lg font-semibold">
|
|
526
550
|
Gaming Setup
|
|
527
551
|
</h3>
|
|
528
552
|
<div className="!space-y-4">
|
|
529
|
-
<div className="rounded-lg border
|
|
553
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
|
|
530
554
|
<div className="mb-4">
|
|
531
|
-
<div className="text-sm font-medium
|
|
555
|
+
<div className="text-fm-icon-active! text-sm font-medium">
|
|
532
556
|
Gaming Audio
|
|
533
557
|
</div>
|
|
534
|
-
<div className="text-
|
|
558
|
+
<div className="text-fm-tertiary! text-xs">
|
|
535
559
|
Enhanced for competitive play
|
|
536
560
|
</div>
|
|
537
561
|
</div>
|
|
538
562
|
<div className="mb-4 space-y-3">
|
|
539
563
|
<div className="flex items-center justify-between">
|
|
540
564
|
<div className="flex items-center gap-3">
|
|
541
|
-
<VolumeFullIcon className="h-5 w-5
|
|
565
|
+
<VolumeFullIcon className="text-fm-icon-info h-5 w-5" />
|
|
542
566
|
<div>
|
|
543
|
-
<div className="text-
|
|
567
|
+
<div className="text-fm-icon-active text-sm">
|
|
544
568
|
Game Audio
|
|
545
569
|
</div>
|
|
546
|
-
<div className="text-
|
|
570
|
+
<div className="text-fm-tertiary text-xs">
|
|
547
571
|
Explosions & Effects
|
|
548
572
|
</div>
|
|
549
573
|
</div>
|
|
550
574
|
</div>
|
|
551
|
-
<div className="h-2 w-20 rounded-full
|
|
552
|
-
<div className="h-full w-full rounded-full
|
|
575
|
+
<div className="bg-fm-divider-primary h-2 w-20 rounded-full">
|
|
576
|
+
<div className="bg-fm-icon-info h-full w-full rounded-full" />
|
|
553
577
|
</div>
|
|
554
578
|
</div>
|
|
555
579
|
<div className="flex items-center justify-between">
|
|
556
580
|
<div className="flex items-center gap-3">
|
|
557
|
-
<VolumeFullIcon className="h-5 w-5
|
|
581
|
+
<VolumeFullIcon className="text-fm-icon-info h-5 w-5" />
|
|
558
582
|
<div>
|
|
559
|
-
<div className="text-
|
|
583
|
+
<div className="text-fm-icon-active text-sm">
|
|
560
584
|
Voice Chat
|
|
561
585
|
</div>
|
|
562
|
-
<div className="text-
|
|
586
|
+
<div className="text-fm-tertiary text-xs">
|
|
563
587
|
Team Communication
|
|
564
588
|
</div>
|
|
565
589
|
</div>
|
|
566
590
|
</div>
|
|
567
|
-
<div className="h-2 w-20 rounded-full
|
|
568
|
-
<div className="h-full w-4/5 rounded-full
|
|
591
|
+
<div className="bg-fm-divider-primary h-2 w-20 rounded-full">
|
|
592
|
+
<div className="bg-fm-icon-info h-full w-4/5 rounded-full" />
|
|
569
593
|
</div>
|
|
570
594
|
</div>
|
|
571
595
|
<div className="flex items-center justify-between">
|
|
572
596
|
<div className="flex items-center gap-3">
|
|
573
|
-
<VolumeFullIcon className="h-5 w-5
|
|
597
|
+
<VolumeFullIcon className="text-fm-secondary-600 h-5 w-5" />
|
|
574
598
|
<div>
|
|
575
|
-
<div className="text-
|
|
576
|
-
|
|
599
|
+
<div className="text-fm-icon-active text-sm">
|
|
600
|
+
Music
|
|
601
|
+
</div>
|
|
602
|
+
<div className="text-fm-tertiary text-xs">
|
|
577
603
|
Background Tracks
|
|
578
604
|
</div>
|
|
579
605
|
</div>
|
|
580
606
|
</div>
|
|
581
|
-
<div className="h-2 w-20 rounded-full
|
|
582
|
-
<div className="h-full w-3/5 rounded-full
|
|
607
|
+
<div className="bg-fm-divider-primary h-2 w-20 rounded-full">
|
|
608
|
+
<div className="bg-fm-secondary-500 h-full w-3/5 rounded-full" />
|
|
583
609
|
</div>
|
|
584
610
|
</div>
|
|
585
611
|
</div>
|
|
586
612
|
<div className="flex justify-center">
|
|
587
|
-
<button className="
|
|
613
|
+
<button className="bg-fm-icon-info text-fm-icon-active rounded-lg px-4 py-2 text-sm font-medium">
|
|
588
614
|
Apply Gaming Profile
|
|
589
615
|
</button>
|
|
590
616
|
</div>
|
|
591
617
|
</div>
|
|
592
|
-
<div className="rounded-lg
|
|
593
|
-
<pre className="overflow-x-auto text-sm
|
|
618
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
619
|
+
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
594
620
|
{`// Gaming audio mixer
|
|
595
621
|
<div className="gaming-audio-mixer">
|
|
596
622
|
{audioChannels.map(channel => (
|
|
@@ -620,79 +646,83 @@ function VolumeControl() {
|
|
|
620
646
|
|
|
621
647
|
{/* Live Streaming */}
|
|
622
648
|
<div className="!space-y-4">
|
|
623
|
-
<h3 className="text-lg font-semibold
|
|
649
|
+
<h3 className="text-fm-icon-info! text-lg font-semibold">
|
|
624
650
|
Live Streaming
|
|
625
651
|
</h3>
|
|
626
652
|
<div className="!space-y-4">
|
|
627
|
-
<div className="rounded-lg border
|
|
653
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
|
|
628
654
|
<div className="mb-4">
|
|
629
|
-
<div className="text-sm font-medium
|
|
655
|
+
<div className="text-fm-icon-active! text-sm font-medium">
|
|
630
656
|
Streaming Setup
|
|
631
657
|
</div>
|
|
632
|
-
<div className="text-
|
|
658
|
+
<div className="text-fm-tertiary! text-xs">
|
|
633
659
|
Professional broadcast quality
|
|
634
660
|
</div>
|
|
635
661
|
</div>
|
|
636
662
|
<div className="mb-4 grid grid-cols-1 gap-3">
|
|
637
|
-
<div className="flex items-center justify-between rounded-lg
|
|
663
|
+
<div className="bg-fm-surface-secondary flex items-center justify-between rounded-lg p-3">
|
|
638
664
|
<div className="flex items-center gap-3">
|
|
639
|
-
<VolumeFullIcon className="h-4 w-4
|
|
640
|
-
<span className="text-
|
|
665
|
+
<VolumeFullIcon className="text-fm-icon-info h-4 w-4" />
|
|
666
|
+
<span className="text-fm-icon-active text-sm">
|
|
641
667
|
Microphone
|
|
642
668
|
</span>
|
|
643
669
|
</div>
|
|
644
670
|
<div className="flex items-center gap-2">
|
|
645
|
-
<div className="h-1 w-16 rounded-full
|
|
646
|
-
<div className="h-full w-4/5 rounded-full
|
|
671
|
+
<div className="bg-fm-divider-primary h-1 w-16 rounded-full">
|
|
672
|
+
<div className="bg-fm-icon-info h-full w-4/5 rounded-full" />
|
|
647
673
|
</div>
|
|
648
|
-
<span className="text-
|
|
674
|
+
<span className="text-fm-tertiary text-xs">
|
|
675
|
+
85%
|
|
676
|
+
</span>
|
|
649
677
|
</div>
|
|
650
678
|
</div>
|
|
651
|
-
<div className="flex items-center justify-between rounded-lg
|
|
679
|
+
<div className="bg-fm-surface-secondary flex items-center justify-between rounded-lg p-3">
|
|
652
680
|
<div className="flex items-center gap-3">
|
|
653
|
-
<VolumeFullIcon className="h-4 w-4
|
|
654
|
-
<span className="text-
|
|
681
|
+
<VolumeFullIcon className="text-fm-icon-info h-4 w-4" />
|
|
682
|
+
<span className="text-fm-icon-active text-sm">
|
|
655
683
|
Desktop Audio
|
|
656
684
|
</span>
|
|
657
685
|
</div>
|
|
658
686
|
<div className="flex items-center gap-2">
|
|
659
|
-
<div className="h-1 w-16 rounded-full
|
|
660
|
-
<div className="h-full w-full rounded-full
|
|
687
|
+
<div className="bg-fm-divider-primary h-1 w-16 rounded-full">
|
|
688
|
+
<div className="bg-fm-icon-info h-full w-full rounded-full" />
|
|
661
689
|
</div>
|
|
662
|
-
<span className="text-
|
|
690
|
+
<span className="text-fm-tertiary text-xs">
|
|
663
691
|
100%
|
|
664
692
|
</span>
|
|
665
693
|
</div>
|
|
666
694
|
</div>
|
|
667
|
-
<div className="flex items-center justify-between rounded-lg
|
|
695
|
+
<div className="bg-fm-surface-secondary flex items-center justify-between rounded-lg p-3">
|
|
668
696
|
<div className="flex items-center gap-3">
|
|
669
|
-
<VolumeFullIcon className="h-4 w-4
|
|
670
|
-
<span className="text-
|
|
697
|
+
<VolumeFullIcon className="text-fm-secondary-600 h-4 w-4" />
|
|
698
|
+
<span className="text-fm-icon-active text-sm">
|
|
671
699
|
Alert Sounds
|
|
672
700
|
</span>
|
|
673
701
|
</div>
|
|
674
702
|
<div className="flex items-center gap-2">
|
|
675
|
-
<div className="h-1 w-16 rounded-full
|
|
676
|
-
<div className="h-full w-3/4 rounded-full
|
|
703
|
+
<div className="bg-fm-divider-primary h-1 w-16 rounded-full">
|
|
704
|
+
<div className="bg-fm-secondary-500 h-full w-3/4 rounded-full" />
|
|
677
705
|
</div>
|
|
678
|
-
<span className="text-
|
|
706
|
+
<span className="text-fm-tertiary text-xs">
|
|
707
|
+
75%
|
|
708
|
+
</span>
|
|
679
709
|
</div>
|
|
680
710
|
</div>
|
|
681
711
|
</div>
|
|
682
712
|
<div className="flex items-center justify-between">
|
|
683
|
-
<span className="text-
|
|
713
|
+
<span className="text-fm-tertiary text-xs">
|
|
684
714
|
Live: 1,234 viewers
|
|
685
715
|
</span>
|
|
686
716
|
<div className="flex gap-2">
|
|
687
|
-
<div className="h-2 w-2 animate-pulse rounded-full
|
|
688
|
-
<span className="text-
|
|
717
|
+
<div className="bg-fm-icon-negative h-2 w-2 animate-pulse rounded-full" />
|
|
718
|
+
<span className="text-fm-icon-negative text-xs">
|
|
689
719
|
Recording
|
|
690
720
|
</span>
|
|
691
721
|
</div>
|
|
692
722
|
</div>
|
|
693
723
|
</div>
|
|
694
|
-
<div className="rounded-lg
|
|
695
|
-
<pre className="overflow-x-auto text-sm
|
|
724
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
725
|
+
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
696
726
|
{`// Live streaming audio control
|
|
697
727
|
<div className="streaming-console">
|
|
698
728
|
<div className="audio-sources">
|
|
@@ -722,16 +752,16 @@ function VolumeControl() {
|
|
|
722
752
|
|
|
723
753
|
{/* Music Production */}
|
|
724
754
|
<div className="!space-y-4">
|
|
725
|
-
<h3 className="text-lg font-semibold
|
|
755
|
+
<h3 className="text-fm-icon-info! text-lg font-semibold">
|
|
726
756
|
Music Production
|
|
727
757
|
</h3>
|
|
728
758
|
<div className="!space-y-4">
|
|
729
|
-
<div className="rounded-lg border
|
|
759
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
|
|
730
760
|
<div className="mb-4">
|
|
731
|
-
<div className="text-sm font-medium
|
|
761
|
+
<div className="text-fm-icon-active! text-sm font-medium">
|
|
732
762
|
Digital Audio Workstation
|
|
733
763
|
</div>
|
|
734
|
-
<div className="text-
|
|
764
|
+
<div className="text-fm-tertiary! text-xs">
|
|
735
765
|
Professional mixing console
|
|
736
766
|
</div>
|
|
737
767
|
</div>
|
|
@@ -740,9 +770,9 @@ function VolumeControl() {
|
|
|
740
770
|
(track, i) => (
|
|
741
771
|
<div
|
|
742
772
|
key={track}
|
|
743
|
-
className="rounded-lg
|
|
773
|
+
className="bg-fm-surface-secondary rounded-lg p-3"
|
|
744
774
|
>
|
|
745
|
-
<div className="mb-2 text-xs
|
|
775
|
+
<div className="text-fm-tertiary mb-2 text-xs">
|
|
746
776
|
{track}
|
|
747
777
|
</div>
|
|
748
778
|
<div className="flex flex-col items-center gap-2">
|
|
@@ -755,7 +785,7 @@ function VolumeControl() {
|
|
|
755
785
|
: "text-purple-400"
|
|
756
786
|
}`}
|
|
757
787
|
/>
|
|
758
|
-
<div className="relative h-16 w-2 rounded-full
|
|
788
|
+
<div className="bg-fm-divider-primary relative h-16 w-2 rounded-full">
|
|
759
789
|
<div
|
|
760
790
|
className={`absolute bottom-0 w-full rounded-full ${
|
|
761
791
|
i === 0
|
|
@@ -766,7 +796,7 @@ function VolumeControl() {
|
|
|
766
796
|
}`}
|
|
767
797
|
/>
|
|
768
798
|
</div>
|
|
769
|
-
<span className="text-
|
|
799
|
+
<span className="text-fm-icon-active text-xs">
|
|
770
800
|
{i === 0 ? "85" : i === 1 ? "100" : "60"}%
|
|
771
801
|
</span>
|
|
772
802
|
</div>
|
|
@@ -775,19 +805,19 @@ function VolumeControl() {
|
|
|
775
805
|
)}
|
|
776
806
|
</div>
|
|
777
807
|
<div className="flex justify-center gap-3">
|
|
778
|
-
<button className="
|
|
808
|
+
<button className="bg-fm-icon-negative text-fm-icon-active rounded px-3 py-1.5 text-xs">
|
|
779
809
|
● REC
|
|
780
810
|
</button>
|
|
781
|
-
<button className="
|
|
811
|
+
<button className="bg-fm-icon-positive text-fm-icon-active rounded px-3 py-1.5 text-xs">
|
|
782
812
|
▶ PLAY
|
|
783
813
|
</button>
|
|
784
|
-
<button className="
|
|
814
|
+
<button className="bg-fm-icon-warning text-fm-icon-active rounded px-3 py-1.5 text-xs">
|
|
785
815
|
■ STOP
|
|
786
816
|
</button>
|
|
787
817
|
</div>
|
|
788
818
|
</div>
|
|
789
|
-
<div className="rounded-lg
|
|
790
|
-
<pre className="overflow-x-auto text-sm
|
|
819
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
820
|
+
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
791
821
|
{`// Digital audio workstation mixer
|
|
792
822
|
<div className="daw-mixer">
|
|
793
823
|
{tracks.map((track, index) => (
|
|
@@ -820,65 +850,65 @@ function VolumeControl() {
|
|
|
820
850
|
|
|
821
851
|
{/* Accessibility */}
|
|
822
852
|
<div className="!space-y-8">
|
|
823
|
-
<h2 className="text-center text-3xl font-bold
|
|
853
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
824
854
|
Accessibility Features
|
|
825
855
|
</h2>
|
|
826
856
|
<div className="grid grid-cols-1 gap-8 md:grid-cols-2">
|
|
827
|
-
<div className="!space-y-4 rounded-lg border
|
|
828
|
-
<h3 className="text-lg font-semibold
|
|
857
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
|
|
858
|
+
<h3 className="text-fm-icon-positive! text-lg font-semibold">
|
|
829
859
|
✅ Built-in Features
|
|
830
860
|
</h3>
|
|
831
|
-
<ul className="!space-y-2 text-sm
|
|
832
|
-
<li className="
|
|
861
|
+
<ul className="text-fm-secondary! !space-y-2 text-sm">
|
|
862
|
+
<li className="text-fm-secondary!">
|
|
833
863
|
Uses Radix UI AccessibleIcon wrapper
|
|
834
864
|
</li>
|
|
835
|
-
<li className="
|
|
865
|
+
<li className="text-fm-secondary!">
|
|
836
866
|
Provides screen reader label "Volume full icon"
|
|
837
867
|
</li>
|
|
838
|
-
<li className="
|
|
868
|
+
<li className="text-fm-secondary!">
|
|
839
869
|
Supports keyboard navigation when interactive
|
|
840
870
|
</li>
|
|
841
|
-
<li className="
|
|
871
|
+
<li className="text-fm-secondary!">
|
|
842
872
|
Maintains proper color contrast ratios
|
|
843
873
|
</li>
|
|
844
|
-
<li className="
|
|
874
|
+
<li className="text-fm-secondary!">
|
|
845
875
|
Scales with user's font size preferences
|
|
846
876
|
</li>
|
|
847
877
|
</ul>
|
|
848
878
|
</div>
|
|
849
879
|
|
|
850
|
-
<div className="!space-y-4 rounded-lg border
|
|
851
|
-
<h3 className="text-lg font-semibold
|
|
880
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
|
|
881
|
+
<h3 className="text-fm-icon-info! text-lg font-semibold">
|
|
852
882
|
💡 Best Practices
|
|
853
883
|
</h3>
|
|
854
|
-
<ul className="!space-y-2 text-sm
|
|
855
|
-
<li className="
|
|
884
|
+
<ul className="text-fm-secondary !space-y-2 text-sm">
|
|
885
|
+
<li className="text-fm-secondary!">
|
|
856
886
|
Always provide descriptive aria-labels for maximum
|
|
857
887
|
volume controls
|
|
858
888
|
</li>
|
|
859
|
-
<li className="
|
|
889
|
+
<li className="text-fm-secondary!">
|
|
860
890
|
Use consistent placement in audio control groups
|
|
861
891
|
</li>
|
|
862
|
-
<li className="
|
|
892
|
+
<li className="text-fm-secondary!">
|
|
863
893
|
Ensure sufficient touch target size (44px minimum)
|
|
864
894
|
</li>
|
|
865
|
-
<li className="
|
|
895
|
+
<li className="text-fm-secondary!">
|
|
866
896
|
Provide visible focus states for keyboard users
|
|
867
897
|
</li>
|
|
868
|
-
<li className="
|
|
898
|
+
<li className="text-fm-secondary!">
|
|
869
899
|
Consider volume limits for hearing protection
|
|
870
900
|
</li>
|
|
871
901
|
</ul>
|
|
872
902
|
</div>
|
|
873
903
|
</div>
|
|
874
904
|
|
|
875
|
-
<div className="rounded-lg border
|
|
876
|
-
<h3 className="mb-4 text-lg font-semibold
|
|
905
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
|
|
906
|
+
<h3 className="text-fm-icon-info! mb-4 text-lg font-semibold">
|
|
877
907
|
Proper ARIA Implementation
|
|
878
908
|
</h3>
|
|
879
909
|
<div className="grid grid-cols-1 gap-6 lg:grid-cols-2">
|
|
880
|
-
<div className="rounded-lg
|
|
881
|
-
<pre className="overflow-x-auto text-sm
|
|
910
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
911
|
+
<pre className="text-fm-icon-info! overflow-x-auto text-sm">
|
|
882
912
|
{`// Maximum volume control with proper ARIA
|
|
883
913
|
<div className="volume-control">
|
|
884
914
|
<button
|
|
@@ -924,13 +954,13 @@ function VolumeControl() {
|
|
|
924
954
|
</pre>
|
|
925
955
|
</div>
|
|
926
956
|
<div className="!space-y-4">
|
|
927
|
-
<p className="text-
|
|
957
|
+
<p className="text-fm-secondary! text-sm">
|
|
928
958
|
When using VolumeFullIcon for maximum volume controls,
|
|
929
959
|
always provide clear warnings about potential hearing
|
|
930
960
|
damage and context about the high volume level.
|
|
931
961
|
</p>
|
|
932
|
-
<div className="
|
|
933
|
-
<div className="flex items-center gap-2 text-sm
|
|
962
|
+
<div className="border-fm-icon-info/20 bg-fm-icon-info/10 rounded-lg border p-4">
|
|
963
|
+
<div className="text-fm-icon-info flex items-center gap-2 text-sm">
|
|
934
964
|
<VolumeFullIcon className="h-4 w-4" />
|
|
935
965
|
<span>
|
|
936
966
|
Maximum volume controls need hearing protection
|
|
@@ -945,52 +975,56 @@ function VolumeControl() {
|
|
|
945
975
|
|
|
946
976
|
{/* Related Icons */}
|
|
947
977
|
<div className="!space-y-8">
|
|
948
|
-
<h2 className="text-center text-3xl font-bold
|
|
978
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
949
979
|
Related Icons
|
|
950
980
|
</h2>
|
|
951
981
|
<div className="grid grid-cols-2 gap-6 md:grid-cols-4">
|
|
952
|
-
<div className="!space-y-3 rounded-lg border
|
|
953
|
-
<div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg
|
|
954
|
-
<span className="
|
|
982
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
|
|
983
|
+
<div className="bg-fm-icon-positive/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
|
|
984
|
+
<span className="text-fm-icon-active! !text-2xl">🔉</span>
|
|
955
985
|
</div>
|
|
956
986
|
<div>
|
|
957
|
-
<div className="font-medium
|
|
987
|
+
<div className="text-fm-icon-active font-medium">
|
|
958
988
|
VolumeHalfIcon
|
|
959
989
|
</div>
|
|
960
|
-
<div className="text-
|
|
990
|
+
<div className="text-fm-tertiary text-xs">
|
|
991
|
+
Medium volume
|
|
992
|
+
</div>
|
|
961
993
|
</div>
|
|
962
994
|
</div>
|
|
963
|
-
<div className="!space-y-3 rounded-lg border
|
|
964
|
-
<div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg
|
|
965
|
-
<span className="
|
|
995
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
|
|
996
|
+
<div className="bg-fm-icon-warning/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
|
|
997
|
+
<span className="text-fm-icon-active! !text-2xl">🔈</span>
|
|
966
998
|
</div>
|
|
967
999
|
<div>
|
|
968
|
-
<div className="font-medium
|
|
1000
|
+
<div className="text-fm-icon-active font-medium">
|
|
969
1001
|
VolumeLowIcon
|
|
970
1002
|
</div>
|
|
971
|
-
<div className="text-
|
|
1003
|
+
<div className="text-fm-tertiary text-xs">Low volume</div>
|
|
972
1004
|
</div>
|
|
973
1005
|
</div>
|
|
974
|
-
<div className="!space-y-3 rounded-lg border
|
|
975
|
-
<div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg
|
|
976
|
-
<span className="
|
|
1006
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
|
|
1007
|
+
<div className="bg-fm-surface-tertiary/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
|
|
1008
|
+
<span className="text-fm-icon-active! !text-2xl">🔇</span>
|
|
977
1009
|
</div>
|
|
978
1010
|
<div>
|
|
979
|
-
<div className="font-medium
|
|
1011
|
+
<div className="text-fm-icon-active font-medium">
|
|
980
1012
|
VolumeOffIcon
|
|
981
1013
|
</div>
|
|
982
|
-
<div className="text-
|
|
1014
|
+
<div className="text-fm-tertiary text-xs">Muted</div>
|
|
983
1015
|
</div>
|
|
984
1016
|
</div>
|
|
985
|
-
<div className="!space-y-3 rounded-lg border
|
|
986
|
-
<div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg
|
|
987
|
-
<span className="
|
|
1017
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
|
|
1018
|
+
<div className="bg-fm-icon-negative/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
|
|
1019
|
+
<span className="text-fm-icon-active! !text-2xl">⚠️</span>
|
|
988
1020
|
</div>
|
|
989
1021
|
<div>
|
|
990
|
-
<div className="font-medium
|
|
1022
|
+
<div className="text-fm-icon-active font-medium">
|
|
991
1023
|
VolumeWarningIcon
|
|
992
1024
|
</div>
|
|
993
|
-
<div className="text-
|
|
1025
|
+
<div className="text-fm-tertiary text-xs">
|
|
1026
|
+
Volume alert
|
|
1027
|
+
</div>
|
|
994
1028
|
</div>
|
|
995
1029
|
</div>
|
|
996
1030
|
</div>
|
|
@@ -998,15 +1032,15 @@ function VolumeControl() {
|
|
|
998
1032
|
</div>
|
|
999
1033
|
|
|
1000
1034
|
{/* Footer */}
|
|
1001
|
-
<div className="border-
|
|
1035
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary border-t backdrop-blur-xl">
|
|
1002
1036
|
<div className="!mx-auto max-w-7xl px-6 py-8">
|
|
1003
1037
|
<div className="!space-y-4 text-center">
|
|
1004
|
-
<p className="
|
|
1038
|
+
<p className="text-fm-tertiary!">
|
|
1005
1039
|
VolumeFullIcon is part of the Aural UI icon library, built
|
|
1006
1040
|
with accessibility and professional audio control best
|
|
1007
1041
|
practices in mind.
|
|
1008
1042
|
</p>
|
|
1009
|
-
<p className="text-
|
|
1043
|
+
<p className="text-fm-placeholder! text-sm">
|
|
1010
1044
|
All icons use Radix UI's AccessibleIcon for screen reader
|
|
1011
1045
|
compatibility and follow WCAG guidelines for media controls
|
|
1012
1046
|
and hearing protection.
|
|
@@ -1060,20 +1094,20 @@ const storyParameters = {
|
|
|
1060
1094
|
backgrounds: {
|
|
1061
1095
|
default: "dark",
|
|
1062
1096
|
values: [
|
|
1063
|
-
{ name: "dark", value: "
|
|
1064
|
-
{ name: "darker", value: "
|
|
1097
|
+
{ name: "dark", value: "var(--color-fm-surface-primary)" },
|
|
1098
|
+
{ name: "darker", value: "var(--color-fm-neutral-0)" },
|
|
1065
1099
|
],
|
|
1066
1100
|
},
|
|
1067
1101
|
}
|
|
1068
1102
|
|
|
1069
1103
|
export const Default: Story = {
|
|
1070
1104
|
args: {
|
|
1071
|
-
className: "h-8 w-8 text-
|
|
1105
|
+
className: "h-8 w-8 text-fm-icon-info",
|
|
1072
1106
|
withAccessibility: true,
|
|
1073
1107
|
},
|
|
1074
1108
|
parameters: storyParameters,
|
|
1075
1109
|
render: (args) => (
|
|
1076
|
-
<div className="flex h-32 min-h-dvh items-center justify-center rounded-lg bg-
|
|
1110
|
+
<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">
|
|
1077
1111
|
<VolumeFullIcon {...args} />
|
|
1078
1112
|
</div>
|
|
1079
1113
|
),
|
|
@@ -1090,30 +1124,30 @@ export const SizeVariations: Story = {
|
|
|
1090
1124
|
},
|
|
1091
1125
|
},
|
|
1092
1126
|
render: () => (
|
|
1093
|
-
<div className="flex h-64 min-h-dvh items-center justify-center gap-8 rounded-lg bg-
|
|
1127
|
+
<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">
|
|
1094
1128
|
<div className="text-center">
|
|
1095
|
-
<VolumeFullIcon className="!mx-auto mb-2 h-3 w-3
|
|
1096
|
-
<span className="text-
|
|
1129
|
+
<VolumeFullIcon className="text-fm-icon-info !mx-auto mb-2 h-3 w-3" />
|
|
1130
|
+
<span className="text-fm-tertiary text-xs">12px</span>
|
|
1097
1131
|
</div>
|
|
1098
1132
|
<div className="text-center">
|
|
1099
|
-
<VolumeFullIcon className="!mx-auto mb-2 h-4 w-4
|
|
1100
|
-
<span className="text-
|
|
1133
|
+
<VolumeFullIcon className="text-fm-icon-info !mx-auto mb-2 h-4 w-4" />
|
|
1134
|
+
<span className="text-fm-tertiary text-xs">16px</span>
|
|
1101
1135
|
</div>
|
|
1102
1136
|
<div className="text-center">
|
|
1103
|
-
<VolumeFullIcon className="!mx-auto mb-2 h-5 w-5
|
|
1104
|
-
<span className="text-
|
|
1137
|
+
<VolumeFullIcon className="text-fm-icon-info !mx-auto mb-2 h-5 w-5" />
|
|
1138
|
+
<span className="text-fm-tertiary text-xs">20px</span>
|
|
1105
1139
|
</div>
|
|
1106
1140
|
<div className="text-center">
|
|
1107
|
-
<VolumeFullIcon className="!mx-auto mb-2 h-6 w-6
|
|
1108
|
-
<span className="text-
|
|
1141
|
+
<VolumeFullIcon className="text-fm-icon-info !mx-auto mb-2 h-6 w-6" />
|
|
1142
|
+
<span className="text-fm-tertiary text-xs">24px</span>
|
|
1109
1143
|
</div>
|
|
1110
1144
|
<div className="text-center">
|
|
1111
|
-
<VolumeFullIcon className="!mx-auto mb-2 h-8 w-8
|
|
1112
|
-
<span className="text-
|
|
1145
|
+
<VolumeFullIcon className="text-fm-icon-info !mx-auto mb-2 h-8 w-8" />
|
|
1146
|
+
<span className="text-fm-tertiary text-xs">32px</span>
|
|
1113
1147
|
</div>
|
|
1114
1148
|
<div className="text-center">
|
|
1115
|
-
<VolumeFullIcon className="!mx-auto mb-2 h-12 w-12
|
|
1116
|
-
<span className="text-
|
|
1149
|
+
<VolumeFullIcon className="text-fm-icon-info !mx-auto mb-2 h-12 w-12" />
|
|
1150
|
+
<span className="text-fm-tertiary text-xs">48px</span>
|
|
1117
1151
|
</div>
|
|
1118
1152
|
</div>
|
|
1119
1153
|
),
|
|
@@ -1130,34 +1164,40 @@ export const ColorVariations: Story = {
|
|
|
1130
1164
|
},
|
|
1131
1165
|
},
|
|
1132
1166
|
render: () => (
|
|
1133
|
-
<div className="grid min-h-dvh grid-cols-2 items-center justify-center gap-6 rounded-lg bg-
|
|
1167
|
+
<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">
|
|
1134
1168
|
<div className="text-center">
|
|
1135
|
-
<div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border
|
|
1136
|
-
<VolumeFullIcon className="h-8 w-8
|
|
1169
|
+
<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">
|
|
1170
|
+
<VolumeFullIcon className="text-fm-icon-info h-8 w-8" />
|
|
1137
1171
|
</div>
|
|
1138
|
-
<div className="text-sm font-medium
|
|
1139
|
-
<div className="text-
|
|
1172
|
+
<div className="text-fm-icon-active text-sm font-medium">Maximum</div>
|
|
1173
|
+
<div className="text-fm-icon-info text-xs">text-fm-icon-info</div>
|
|
1140
1174
|
</div>
|
|
1141
1175
|
<div className="text-center">
|
|
1142
|
-
<div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border
|
|
1143
|
-
<VolumeFullIcon className="h-8 w-8
|
|
1176
|
+
<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">
|
|
1177
|
+
<VolumeFullIcon className="text-fm-icon-info h-8 w-8" />
|
|
1178
|
+
</div>
|
|
1179
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
1180
|
+
High Power
|
|
1144
1181
|
</div>
|
|
1145
|
-
<div className="text-
|
|
1146
|
-
<div className="text-xs text-blue-400">text-blue-400</div>
|
|
1182
|
+
<div className="text-fm-icon-info text-xs">text-fm-icon-info</div>
|
|
1147
1183
|
</div>
|
|
1148
1184
|
<div className="text-center">
|
|
1149
|
-
<div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border
|
|
1150
|
-
<VolumeFullIcon className="h-8 w-8
|
|
1185
|
+
<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">
|
|
1186
|
+
<VolumeFullIcon className="text-fm-secondary-600 h-8 w-8" />
|
|
1187
|
+
</div>
|
|
1188
|
+
<div className="text-fm-icon-active text-sm font-medium">Enhanced</div>
|
|
1189
|
+
<div className="text-fm-secondary-600 text-xs">
|
|
1190
|
+
text-fm-secondary-600
|
|
1151
1191
|
</div>
|
|
1152
|
-
<div className="text-sm font-medium text-white">Enhanced</div>
|
|
1153
|
-
<div className="text-xs text-purple-400">text-purple-400</div>
|
|
1154
1192
|
</div>
|
|
1155
1193
|
<div className="text-center">
|
|
1156
|
-
<div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border
|
|
1157
|
-
<VolumeFullIcon className="h-8 w-8
|
|
1194
|
+
<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">
|
|
1195
|
+
<VolumeFullIcon className="text-fm-secondary-600 h-8 w-8" />
|
|
1196
|
+
</div>
|
|
1197
|
+
<div className="text-fm-icon-active text-sm font-medium">Premium</div>
|
|
1198
|
+
<div className="text-fm-secondary-600 text-xs">
|
|
1199
|
+
text-fm-secondary-600
|
|
1158
1200
|
</div>
|
|
1159
|
-
<div className="text-sm font-medium text-white">Premium</div>
|
|
1160
|
-
<div className="text-xs text-violet-400">text-violet-400</div>
|
|
1161
1201
|
</div>
|
|
1162
1202
|
</div>
|
|
1163
1203
|
),
|
|
@@ -1174,21 +1214,23 @@ export const UsageExamples: Story = {
|
|
|
1174
1214
|
},
|
|
1175
1215
|
},
|
|
1176
1216
|
render: () => (
|
|
1177
|
-
<div className="min-h-dvh !space-y-8 rounded-lg bg-
|
|
1217
|
+
<div className="from-fm-surface-primary to-fm-surface-secondary min-h-dvh !space-y-8 rounded-lg bg-linear-to-br p-8">
|
|
1178
1218
|
{/* Home Theater */}
|
|
1179
1219
|
<div className="!space-y-2">
|
|
1180
|
-
<h3 className="text-sm font-medium
|
|
1181
|
-
|
|
1220
|
+
<h3 className="text-fm-icon-active text-sm font-medium">
|
|
1221
|
+
Home Theater System
|
|
1222
|
+
</h3>
|
|
1223
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
|
|
1182
1224
|
<div className="flex items-center justify-between">
|
|
1183
1225
|
<div className="flex items-center gap-3">
|
|
1184
|
-
<VolumeFullIcon className="h-5 w-5
|
|
1226
|
+
<VolumeFullIcon className="text-fm-icon-info h-5 w-5" />
|
|
1185
1227
|
<div>
|
|
1186
|
-
<div className="text-
|
|
1187
|
-
<div className="text-
|
|
1228
|
+
<div className="text-fm-icon-active text-sm">Master Volume</div>
|
|
1229
|
+
<div className="text-fm-tertiary text-xs">80%</div>
|
|
1188
1230
|
</div>
|
|
1189
1231
|
</div>
|
|
1190
|
-
<div className="h-2 w-24 rounded-full
|
|
1191
|
-
<div className="h-full w-4/5 rounded-full
|
|
1232
|
+
<div className="bg-fm-divider-primary h-2 w-24 rounded-full">
|
|
1233
|
+
<div className="bg-fm-icon-info h-full w-4/5 rounded-full" />
|
|
1192
1234
|
</div>
|
|
1193
1235
|
</div>
|
|
1194
1236
|
</div>
|
|
@@ -1196,15 +1238,17 @@ export const UsageExamples: Story = {
|
|
|
1196
1238
|
|
|
1197
1239
|
{/* Gaming Setup */}
|
|
1198
1240
|
<div className="!space-y-2">
|
|
1199
|
-
<h3 className="text-sm font-medium
|
|
1200
|
-
|
|
1241
|
+
<h3 className="text-fm-icon-active text-sm font-medium">
|
|
1242
|
+
Gaming Audio
|
|
1243
|
+
</h3>
|
|
1244
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-4">
|
|
1201
1245
|
<div className="flex items-center justify-between">
|
|
1202
1246
|
<div className="flex items-center gap-3">
|
|
1203
|
-
<VolumeFullIcon className="h-5 w-5
|
|
1204
|
-
<span className="text-
|
|
1247
|
+
<VolumeFullIcon className="text-fm-icon-info h-5 w-5" />
|
|
1248
|
+
<span className="text-fm-icon-active text-sm">Game Audio</span>
|
|
1205
1249
|
</div>
|
|
1206
|
-
<div className="h-2 w-20 rounded-full
|
|
1207
|
-
<div className="h-full w-full rounded-full
|
|
1250
|
+
<div className="bg-fm-divider-primary h-2 w-20 rounded-full">
|
|
1251
|
+
<div className="bg-fm-icon-info h-full w-full rounded-full" />
|
|
1208
1252
|
</div>
|
|
1209
1253
|
</div>
|
|
1210
1254
|
</div>
|
|
@@ -1226,11 +1270,11 @@ export const Playground: Story = {
|
|
|
1226
1270
|
args: {
|
|
1227
1271
|
width: 24,
|
|
1228
1272
|
height: 24,
|
|
1229
|
-
className: "text-
|
|
1273
|
+
className: "text-fm-icon-info",
|
|
1230
1274
|
},
|
|
1231
1275
|
render: (args) => (
|
|
1232
|
-
<div className="flex h-64 min-h-dvh items-center justify-center rounded-lg bg-
|
|
1233
|
-
<div className="rounded-lg border
|
|
1276
|
+
<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">
|
|
1277
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-8">
|
|
1234
1278
|
<VolumeFullIcon {...args} />
|
|
1235
1279
|
</div>
|
|
1236
1280
|
</div>
|