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 SkipBackwardIcon> = {
|
|
|
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 SkipBackwardIcon> = {
|
|
|
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-warning/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-warning/10 to-fm-icon-warning/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
|
-
<SkipBackwardIcon className="h-12 w-12
|
|
89
|
+
<div className="border-fm-icon-warning/30 from-fm-icon-warning/20 to-fm-icon-warning/20 !mx-auto flex h-24 w-24 items-center justify-center rounded-2xl border bg-linear-to-br">
|
|
90
|
+
<SkipBackwardIcon className="text-fm-icon-warning 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
|
SkipBackwardIcon
|
|
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 media control icon for skipping to the previous track or
|
|
97
97
|
chapter in audio and video players. Features a classic skip
|
|
98
98
|
backward design with triangle and bar, perfect for music
|
|
@@ -102,28 +102,28 @@ const meta: Meta<typeof SkipBackwardIcon> = {
|
|
|
102
102
|
{/* Stats */}
|
|
103
103
|
<div className="flex items-center justify-center gap-8 pt-8">
|
|
104
104
|
<div className="text-center">
|
|
105
|
-
<div className="text-3xl font-bold
|
|
105
|
+
<div className="text-fm-icon-warning text-3xl font-bold">
|
|
106
106
|
Previous Track
|
|
107
107
|
</div>
|
|
108
|
-
<div className="text-
|
|
108
|
+
<div className="text-fm-tertiary text-sm">
|
|
109
109
|
Skip to previous
|
|
110
110
|
</div>
|
|
111
111
|
</div>
|
|
112
|
-
<div className="h-8 w-px
|
|
112
|
+
<div className="bg-fm-divider-primary h-8 w-px" />
|
|
113
113
|
<div className="text-center">
|
|
114
|
-
<div className="text-3xl font-bold
|
|
114
|
+
<div className="text-fm-icon-warning text-3xl font-bold">
|
|
115
115
|
Accessible
|
|
116
116
|
</div>
|
|
117
|
-
<div className="text-
|
|
117
|
+
<div className="text-fm-tertiary text-sm">
|
|
118
118
|
Screen reader friendly
|
|
119
119
|
</div>
|
|
120
120
|
</div>
|
|
121
|
-
<div className="h-8 w-px
|
|
121
|
+
<div className="bg-fm-divider-primary h-8 w-px" />
|
|
122
122
|
<div className="text-center">
|
|
123
|
-
<div className="text-3xl font-bold
|
|
123
|
+
<div className="text-fm-icon-warning text-3xl font-bold">
|
|
124
124
|
Universal
|
|
125
125
|
</div>
|
|
126
|
-
<div className="text-
|
|
126
|
+
<div className="text-fm-tertiary text-sm">
|
|
127
127
|
Standard media control
|
|
128
128
|
</div>
|
|
129
129
|
</div>
|
|
@@ -136,16 +136,16 @@ const meta: Meta<typeof SkipBackwardIcon> = {
|
|
|
136
136
|
<div className="!mx-auto max-w-7xl !space-y-16 px-6 py-12">
|
|
137
137
|
{/* Quick Usage */}
|
|
138
138
|
<div className="!space-y-8">
|
|
139
|
-
<h2 className="text-center text-3xl font-bold
|
|
139
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
140
140
|
Quick Start
|
|
141
141
|
</h2>
|
|
142
142
|
<div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
|
|
143
143
|
<div className="!space-y-4">
|
|
144
|
-
<h3 className="text-xl font-semibold
|
|
144
|
+
<h3 className="text-fm-icon-warning! text-xl font-semibold">
|
|
145
145
|
Basic Usage
|
|
146
146
|
</h3>
|
|
147
|
-
<div className="rounded-lg
|
|
148
|
-
<pre className="overflow-x-auto text-sm
|
|
147
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
148
|
+
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
149
149
|
{`import { SkipBackwardIcon } from "@icons/skip-backward-icon"
|
|
150
150
|
|
|
151
151
|
function MediaPlayer() {
|
|
@@ -163,12 +163,12 @@ function MediaPlayer() {
|
|
|
163
163
|
</div>
|
|
164
164
|
|
|
165
165
|
<div className="!space-y-4">
|
|
166
|
-
<h3 className="text-xl font-semibold
|
|
166
|
+
<h3 className="text-fm-icon-warning! text-xl font-semibold">
|
|
167
167
|
Live Preview
|
|
168
168
|
</h3>
|
|
169
|
-
<div className="flex h-32 items-center justify-center rounded-lg border
|
|
170
|
-
<button className="
|
|
171
|
-
<SkipBackwardIcon className="h-6 w-6
|
|
169
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary flex h-32 items-center justify-center rounded-lg border">
|
|
170
|
+
<button className="border-fm-icon-warning/20 bg-fm-icon-warning/10 hover:bg-fm-icon-warning/20 rounded-lg border p-3 transition-colors">
|
|
171
|
+
<SkipBackwardIcon className="text-fm-icon-warning h-6 w-6" />
|
|
172
172
|
</button>
|
|
173
173
|
</div>
|
|
174
174
|
</div>
|
|
@@ -177,108 +177,116 @@ function MediaPlayer() {
|
|
|
177
177
|
|
|
178
178
|
{/* Props Documentation */}
|
|
179
179
|
<div className="!space-y-8">
|
|
180
|
-
<h2 className="text-center text-3xl font-bold
|
|
180
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
181
181
|
Props & Configuration
|
|
182
182
|
</h2>
|
|
183
183
|
|
|
184
|
-
<div className="overflow-hidden rounded-lg border
|
|
185
|
-
<div className="bg-
|
|
186
|
-
<h3 className="text-xl font-semibold
|
|
184
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary overflow-hidden rounded-lg border">
|
|
185
|
+
<div className="bg-fm-surface-secondary p-4">
|
|
186
|
+
<h3 className="text-fm-icon-active! text-xl font-semibold">
|
|
187
|
+
Props
|
|
188
|
+
</h3>
|
|
187
189
|
</div>
|
|
188
190
|
<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
|
|
191
|
+
<thead className="bg-fm-surface-secondary">
|
|
192
|
+
<tr className="border-fm-divider-secondary border-b">
|
|
193
|
+
<th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
|
|
192
194
|
Prop
|
|
193
195
|
</th>
|
|
194
|
-
<th className="px-6 py-4 text-left text-sm font-semibold
|
|
196
|
+
<th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
|
|
195
197
|
Type
|
|
196
198
|
</th>
|
|
197
|
-
<th className="px-6 py-4 text-left text-sm font-semibold
|
|
199
|
+
<th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
|
|
198
200
|
Default
|
|
199
201
|
</th>
|
|
200
|
-
<th className="px-6 py-4 text-left text-sm font-semibold
|
|
202
|
+
<th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
|
|
201
203
|
Description
|
|
202
204
|
</th>
|
|
203
205
|
</tr>
|
|
204
206
|
</thead>
|
|
205
207
|
<tbody>
|
|
206
208
|
{" "}
|
|
207
|
-
<tr className="
|
|
208
|
-
<td className="px-6 py-4 font-mono text-sm
|
|
209
|
+
<tr className="bg-fm-surface-secondary!">
|
|
210
|
+
<td className="text-fm-icon-info! px-6 py-4 font-mono text-sm">
|
|
209
211
|
withAccessibility
|
|
210
212
|
</td>
|
|
211
|
-
<td className="px-6 py-4 text-sm
|
|
213
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
212
214
|
boolean
|
|
213
215
|
</td>
|
|
214
|
-
<td className="px-6 py-4 text-sm
|
|
216
|
+
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
215
217
|
true
|
|
216
218
|
</td>
|
|
217
|
-
<td className="px-6 py-4 text-sm
|
|
219
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
218
220
|
Whether to wrap the icon with accessibility feature
|
|
219
221
|
</td>
|
|
220
222
|
</tr>
|
|
221
|
-
<tr className="border-
|
|
222
|
-
<td className="px-6 py-4 font-mono text-sm
|
|
223
|
+
<tr className="border-fm-divider-tertiary bg-fm-surface-secondary! border-b">
|
|
224
|
+
<td className="text-fm-icon-warning! px-6 py-4 font-mono text-sm">
|
|
223
225
|
height
|
|
224
226
|
</td>
|
|
225
|
-
<td className="px-6 py-4 text-sm
|
|
227
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
226
228
|
number | string
|
|
227
229
|
</td>
|
|
228
|
-
<td className="px-6 py-4 text-sm
|
|
229
|
-
|
|
230
|
+
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
231
|
+
36
|
|
232
|
+
</td>
|
|
233
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
230
234
|
Height of the icon in pixels
|
|
231
235
|
</td>
|
|
232
236
|
</tr>
|
|
233
|
-
<tr className="border-
|
|
234
|
-
<td className="px-6 py-4 font-mono text-sm
|
|
237
|
+
<tr className="border-fm-divider-tertiary border-b">
|
|
238
|
+
<td className="text-fm-icon-warning! px-6 py-4 font-mono text-sm">
|
|
235
239
|
stroke
|
|
236
240
|
</td>
|
|
237
|
-
<td className="px-6 py-4 text-sm
|
|
241
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
238
242
|
string
|
|
239
243
|
</td>
|
|
240
|
-
<td className="px-6 py-4 text-sm
|
|
244
|
+
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
241
245
|
currentColor
|
|
242
246
|
</td>
|
|
243
|
-
<td className="px-6 py-4 text-sm
|
|
247
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
244
248
|
Stroke color of the icon
|
|
245
249
|
</td>
|
|
246
250
|
</tr>
|
|
247
|
-
<tr className="border-
|
|
248
|
-
<td className="px-6 py-4 font-mono text-sm
|
|
251
|
+
<tr className="border-fm-divider-tertiary bg-fm-surface-secondary! border-b">
|
|
252
|
+
<td className="text-fm-icon-warning! px-6 py-4 font-mono text-sm">
|
|
249
253
|
strokeWidth
|
|
250
254
|
</td>
|
|
251
|
-
<td className="px-6 py-4 text-sm
|
|
255
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
252
256
|
string | number
|
|
253
257
|
</td>
|
|
254
|
-
<td className="px-6 py-4 text-sm
|
|
258
|
+
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
255
259
|
1.5
|
|
256
260
|
</td>
|
|
257
|
-
<td className="px-6 py-4 text-sm
|
|
261
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
258
262
|
Width of the stroke
|
|
259
263
|
</td>
|
|
260
264
|
</tr>
|
|
261
|
-
<tr className="border-
|
|
262
|
-
<td className="px-6 py-4 font-mono text-sm
|
|
265
|
+
<tr className="border-fm-divider-tertiary border-b">
|
|
266
|
+
<td className="text-fm-icon-warning! px-6 py-4 font-mono text-sm">
|
|
263
267
|
className
|
|
264
268
|
</td>
|
|
265
|
-
<td className="px-6 py-4 text-sm
|
|
269
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
266
270
|
string
|
|
267
271
|
</td>
|
|
268
|
-
<td className="px-6 py-4 text-sm
|
|
269
|
-
|
|
272
|
+
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
273
|
+
-
|
|
274
|
+
</td>
|
|
275
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
270
276
|
CSS classes for styling (use for overrides)
|
|
271
277
|
</td>
|
|
272
278
|
</tr>
|
|
273
|
-
<tr className="
|
|
274
|
-
<td className="px-6 py-4 font-mono text-sm
|
|
279
|
+
<tr className="bg-fm-surface-secondary!">
|
|
280
|
+
<td className="text-fm-icon-warning! px-6 py-4 font-mono text-sm">
|
|
275
281
|
...svgProps
|
|
276
282
|
</td>
|
|
277
|
-
<td className="px-6 py-4 text-sm
|
|
283
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
278
284
|
SVGProps
|
|
279
285
|
</td>
|
|
280
|
-
<td className="px-6 py-4 text-sm
|
|
281
|
-
|
|
286
|
+
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
287
|
+
-
|
|
288
|
+
</td>
|
|
289
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
282
290
|
All standard SVG element props
|
|
283
291
|
</td>
|
|
284
292
|
</tr>
|
|
@@ -289,50 +297,62 @@ function MediaPlayer() {
|
|
|
289
297
|
|
|
290
298
|
{/* Size Variations */}
|
|
291
299
|
<div className="!space-y-8">
|
|
292
|
-
<h2 className="text-center text-3xl font-bold
|
|
300
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
293
301
|
Size Variations
|
|
294
302
|
</h2>
|
|
295
|
-
<div className="rounded-lg border
|
|
303
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-8">
|
|
296
304
|
<div className="!space-y-6">
|
|
297
305
|
<div className="grid grid-cols-1 gap-8 md:grid-cols-2">
|
|
298
306
|
<div className="!space-y-4">
|
|
299
|
-
<h3 className="text-lg font-semibold
|
|
307
|
+
<h3 className="text-fm-icon-warning! text-lg font-semibold">
|
|
300
308
|
Standard Sizes
|
|
301
309
|
</h3>
|
|
302
|
-
<div className="flex items-end gap-6 rounded-lg
|
|
310
|
+
<div className="bg-fm-surface-secondary flex items-end gap-6 rounded-lg p-6">
|
|
303
311
|
<div className="text-center">
|
|
304
|
-
<SkipBackwardIcon className="!mx-auto mb-2 h-3 w-3
|
|
305
|
-
<span className="text-
|
|
312
|
+
<SkipBackwardIcon className="text-fm-icon-warning !mx-auto mb-2 h-3 w-3" />
|
|
313
|
+
<span className="text-fm-tertiary text-xs">
|
|
314
|
+
12px
|
|
315
|
+
</span>
|
|
306
316
|
</div>
|
|
307
317
|
<div className="text-center">
|
|
308
|
-
<SkipBackwardIcon className="!mx-auto mb-2 h-4 w-4
|
|
309
|
-
<span className="text-
|
|
318
|
+
<SkipBackwardIcon className="text-fm-icon-warning !mx-auto mb-2 h-4 w-4" />
|
|
319
|
+
<span className="text-fm-tertiary text-xs">
|
|
320
|
+
16px
|
|
321
|
+
</span>
|
|
310
322
|
</div>
|
|
311
323
|
<div className="text-center">
|
|
312
|
-
<SkipBackwardIcon className="!mx-auto mb-2 h-5 w-5
|
|
313
|
-
<span className="text-
|
|
324
|
+
<SkipBackwardIcon className="text-fm-icon-warning !mx-auto mb-2 h-5 w-5" />
|
|
325
|
+
<span className="text-fm-tertiary text-xs">
|
|
326
|
+
20px
|
|
327
|
+
</span>
|
|
314
328
|
</div>
|
|
315
329
|
<div className="text-center">
|
|
316
|
-
<SkipBackwardIcon className="!mx-auto mb-2 h-6 w-6
|
|
317
|
-
<span className="text-
|
|
330
|
+
<SkipBackwardIcon className="text-fm-icon-warning !mx-auto mb-2 h-6 w-6" />
|
|
331
|
+
<span className="text-fm-tertiary text-xs">
|
|
332
|
+
24px
|
|
333
|
+
</span>
|
|
318
334
|
</div>
|
|
319
335
|
<div className="text-center">
|
|
320
|
-
<SkipBackwardIcon className="!mx-auto mb-2 h-8 w-8
|
|
321
|
-
<span className="text-
|
|
336
|
+
<SkipBackwardIcon className="text-fm-icon-warning !mx-auto mb-2 h-8 w-8" />
|
|
337
|
+
<span className="text-fm-tertiary text-xs">
|
|
338
|
+
32px
|
|
339
|
+
</span>
|
|
322
340
|
</div>
|
|
323
341
|
<div className="text-center">
|
|
324
|
-
<SkipBackwardIcon className="!mx-auto mb-2 h-12 w-12
|
|
325
|
-
<span className="text-
|
|
342
|
+
<SkipBackwardIcon className="text-fm-icon-warning !mx-auto mb-2 h-12 w-12" />
|
|
343
|
+
<span className="text-fm-tertiary text-xs">
|
|
344
|
+
48px
|
|
345
|
+
</span>
|
|
326
346
|
</div>
|
|
327
347
|
</div>
|
|
328
348
|
</div>
|
|
329
349
|
|
|
330
350
|
<div className="!space-y-4">
|
|
331
|
-
<h3 className="text-lg font-semibold
|
|
351
|
+
<h3 className="text-fm-icon-warning! text-lg font-semibold">
|
|
332
352
|
Code Example
|
|
333
353
|
</h3>
|
|
334
|
-
<div className="rounded-lg
|
|
335
|
-
<pre className="overflow-x-auto text-sm
|
|
354
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
355
|
+
<pre className="text-fm-icon-info! overflow-x-auto text-sm">
|
|
336
356
|
{`// Small (16px)
|
|
337
357
|
<SkipBackwardIcon className="h-4 w-4" />
|
|
338
358
|
|
|
@@ -354,56 +374,56 @@ function MediaPlayer() {
|
|
|
354
374
|
|
|
355
375
|
{/* Color Variations */}
|
|
356
376
|
<div className="!space-y-8">
|
|
357
|
-
<h2 className="text-center text-3xl font-bold
|
|
377
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
358
378
|
Color Variations
|
|
359
379
|
</h2>
|
|
360
380
|
<div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
|
|
361
381
|
<div className="!space-y-4">
|
|
362
|
-
<h3 className="text-lg font-semibold
|
|
382
|
+
<h3 className="text-fm-icon-warning! text-lg font-semibold">
|
|
363
383
|
Semantic Colors
|
|
364
384
|
</h3>
|
|
365
|
-
<div className="!space-y-4 rounded-lg border
|
|
385
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
|
|
366
386
|
<div className="flex items-center gap-4">
|
|
367
|
-
<SkipBackwardIcon className="h-6 w-6
|
|
387
|
+
<SkipBackwardIcon className="text-fm-icon-warning h-6 w-6" />
|
|
368
388
|
<div>
|
|
369
|
-
<div className="text-sm font-medium
|
|
389
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
370
390
|
Primary
|
|
371
391
|
</div>
|
|
372
|
-
<div className="text-
|
|
373
|
-
text-
|
|
392
|
+
<div className="text-fm-tertiary text-xs">
|
|
393
|
+
text-fm-icon-warning
|
|
374
394
|
</div>
|
|
375
395
|
</div>
|
|
376
396
|
</div>
|
|
377
397
|
<div className="flex items-center gap-4">
|
|
378
|
-
<SkipBackwardIcon className="h-6 w-6
|
|
398
|
+
<SkipBackwardIcon className="text-fm-icon-warning h-6 w-6" />
|
|
379
399
|
<div>
|
|
380
|
-
<div className="text-sm font-medium
|
|
400
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
381
401
|
Secondary
|
|
382
402
|
</div>
|
|
383
|
-
<div className="text-
|
|
384
|
-
text-
|
|
403
|
+
<div className="text-fm-tertiary text-xs">
|
|
404
|
+
text-fm-icon-warning
|
|
385
405
|
</div>
|
|
386
406
|
</div>
|
|
387
407
|
</div>
|
|
388
408
|
<div className="flex items-center gap-4">
|
|
389
|
-
<SkipBackwardIcon className="h-6 w-6
|
|
409
|
+
<SkipBackwardIcon className="text-fm-icon-warning h-6 w-6" />
|
|
390
410
|
<div>
|
|
391
|
-
<div className="text-sm font-medium
|
|
411
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
392
412
|
Accent
|
|
393
413
|
</div>
|
|
394
|
-
<div className="text-
|
|
395
|
-
text-
|
|
414
|
+
<div className="text-fm-tertiary text-xs">
|
|
415
|
+
text-fm-icon-warning
|
|
396
416
|
</div>
|
|
397
417
|
</div>
|
|
398
418
|
</div>
|
|
399
419
|
<div className="flex items-center gap-4">
|
|
400
|
-
<SkipBackwardIcon className="h-6 w-6
|
|
420
|
+
<SkipBackwardIcon className="text-fm-placeholder h-6 w-6" />
|
|
401
421
|
<div>
|
|
402
|
-
<div className="text-sm font-medium
|
|
422
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
403
423
|
Disabled
|
|
404
424
|
</div>
|
|
405
|
-
<div className="text-
|
|
406
|
-
text-
|
|
425
|
+
<div className="text-fm-tertiary text-xs">
|
|
426
|
+
text-fm-placeholder
|
|
407
427
|
</div>
|
|
408
428
|
</div>
|
|
409
429
|
</div>
|
|
@@ -411,11 +431,11 @@ function MediaPlayer() {
|
|
|
411
431
|
</div>
|
|
412
432
|
|
|
413
433
|
<div className="!space-y-4">
|
|
414
|
-
<h3 className="text-lg font-semibold
|
|
434
|
+
<h3 className="text-fm-icon-warning! text-lg font-semibold">
|
|
415
435
|
Custom Colors
|
|
416
436
|
</h3>
|
|
417
|
-
<div className="rounded-lg
|
|
418
|
-
<pre className="overflow-x-auto text-sm
|
|
437
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
438
|
+
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
419
439
|
{`// Using Tailwind classes
|
|
420
440
|
<SkipBackwardIcon className="h-6 w-6 text-orange-400" />
|
|
421
441
|
<SkipBackwardIcon className="h-6 w-6 text-amber-500" />
|
|
@@ -440,43 +460,43 @@ function MediaPlayer() {
|
|
|
440
460
|
|
|
441
461
|
{/* Usage Examples */}
|
|
442
462
|
<div className="!space-y-8">
|
|
443
|
-
<h2 className="text-center text-3xl font-bold
|
|
463
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
444
464
|
Usage Examples
|
|
445
465
|
</h2>
|
|
446
466
|
|
|
447
467
|
<div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
|
|
448
468
|
{/* Music Player */}
|
|
449
469
|
<div className="!space-y-4">
|
|
450
|
-
<h3 className="text-lg font-semibold
|
|
470
|
+
<h3 className="text-fm-icon-warning! text-lg font-semibold">
|
|
451
471
|
Music Player
|
|
452
472
|
</h3>
|
|
453
473
|
<div className="!space-y-4">
|
|
454
|
-
<div className="rounded-lg border
|
|
474
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
|
|
455
475
|
<div className="mb-4 flex items-center gap-3">
|
|
456
|
-
<div className="h-12 w-12 rounded-lg bg-
|
|
476
|
+
<div className="from-fm-icon-warning/20 to-fm-icon-warning/20 h-12 w-12 rounded-lg bg-linear-to-br" />
|
|
457
477
|
<div>
|
|
458
|
-
<div className="text-sm font-medium
|
|
478
|
+
<div className="text-fm-icon-active! text-sm font-medium">
|
|
459
479
|
Current Song
|
|
460
480
|
</div>
|
|
461
|
-
<div className="text-
|
|
481
|
+
<div className="text-fm-tertiary! text-xs">
|
|
462
482
|
Artist Name
|
|
463
483
|
</div>
|
|
464
484
|
</div>
|
|
465
485
|
</div>
|
|
466
486
|
<div className="flex items-center justify-center gap-4">
|
|
467
|
-
<button className="rounded-lg p-2 transition-colors
|
|
468
|
-
<SkipBackwardIcon className="h-6 w-6
|
|
487
|
+
<button className="hover:bg-fm-surface-secondary rounded-lg p-2 transition-colors">
|
|
488
|
+
<SkipBackwardIcon className="text-fm-icon-warning h-6 w-6" />
|
|
469
489
|
</button>
|
|
470
|
-
<button className="rounded-lg p-3 transition-colors
|
|
471
|
-
<div className="h-8 w-8 rounded-full border-2
|
|
490
|
+
<button className="hover:bg-fm-surface-secondary rounded-lg p-3 transition-colors">
|
|
491
|
+
<div className="border-fm-divider-contrast bg-fm-divider-primary h-8 w-8 rounded-full border-2" />
|
|
472
492
|
</button>
|
|
473
|
-
<button className="rounded-lg p-2 transition-colors
|
|
474
|
-
<div className="h-6 w-6 rounded-full border
|
|
493
|
+
<button className="hover:bg-fm-surface-secondary rounded-lg p-2 transition-colors">
|
|
494
|
+
<div className="border-fm-divider-contrast bg-fm-divider-primary h-6 w-6 rounded-full border" />
|
|
475
495
|
</button>
|
|
476
496
|
</div>
|
|
477
497
|
</div>
|
|
478
|
-
<div className="rounded-lg
|
|
479
|
-
<pre className="overflow-x-auto text-sm
|
|
498
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
499
|
+
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
480
500
|
{`// Music player controls
|
|
481
501
|
<div className="flex items-center justify-center gap-4">
|
|
482
502
|
<button onClick={previousTrack}>
|
|
@@ -496,37 +516,37 @@ function MediaPlayer() {
|
|
|
496
516
|
|
|
497
517
|
{/* Podcast Player */}
|
|
498
518
|
<div className="!space-y-4">
|
|
499
|
-
<h3 className="text-lg font-semibold
|
|
519
|
+
<h3 className="text-fm-icon-warning! text-lg font-semibold">
|
|
500
520
|
Podcast Player
|
|
501
521
|
</h3>
|
|
502
522
|
<div className="!space-y-4">
|
|
503
|
-
<div className="rounded-lg border
|
|
523
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-4">
|
|
504
524
|
<div className="mb-4">
|
|
505
|
-
<div className="text-sm font-medium
|
|
525
|
+
<div className="text-fm-icon-active! text-sm font-medium">
|
|
506
526
|
Episode 42: Tech Trends
|
|
507
527
|
</div>
|
|
508
|
-
<div className="text-
|
|
528
|
+
<div className="text-fm-tertiary! text-xs">
|
|
509
529
|
The Tech Podcast
|
|
510
530
|
</div>
|
|
511
531
|
</div>
|
|
512
532
|
<div className="flex items-center justify-between">
|
|
513
533
|
<div className="flex items-center gap-2">
|
|
514
|
-
<button className="rounded p-1.5
|
|
515
|
-
<SkipBackwardIcon className="h-5 w-5
|
|
534
|
+
<button className="hover:bg-fm-surface-secondary rounded p-1.5">
|
|
535
|
+
<SkipBackwardIcon className="text-fm-icon-warning h-5 w-5" />
|
|
516
536
|
</button>
|
|
517
|
-
<span className="text-
|
|
537
|
+
<span className="text-fm-tertiary text-sm">
|
|
518
538
|
Previous Episode
|
|
519
539
|
</span>
|
|
520
540
|
</div>
|
|
521
541
|
<div className="flex items-center gap-2">
|
|
522
|
-
<button className="rounded p-1.5
|
|
523
|
-
<div className="h-5 w-5 rounded-full border
|
|
542
|
+
<button className="hover:bg-fm-surface-secondary rounded p-1.5">
|
|
543
|
+
<div className="border-fm-divider-contrast bg-fm-divider-primary h-5 w-5 rounded-full border" />
|
|
524
544
|
</button>
|
|
525
545
|
</div>
|
|
526
546
|
</div>
|
|
527
547
|
</div>
|
|
528
|
-
<div className="rounded-lg
|
|
529
|
-
<pre className="overflow-x-auto text-sm
|
|
548
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
549
|
+
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
530
550
|
{`// Podcast episode navigation
|
|
531
551
|
<div className="flex items-center gap-2">
|
|
532
552
|
<button
|
|
@@ -544,30 +564,30 @@ function MediaPlayer() {
|
|
|
544
564
|
|
|
545
565
|
{/* Video Player */}
|
|
546
566
|
<div className="!space-y-4">
|
|
547
|
-
<h3 className="text-lg font-semibold
|
|
567
|
+
<h3 className="text-fm-icon-warning! text-lg font-semibold">
|
|
548
568
|
Video Player
|
|
549
569
|
</h3>
|
|
550
570
|
<div className="!space-y-4">
|
|
551
|
-
<div className="rounded-lg border
|
|
552
|
-
<div className="mb-4 h-32 rounded bg-
|
|
571
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-4">
|
|
572
|
+
<div className="from-fm-icon-warning/20 to-fm-icon-warning/20 mb-4 h-32 rounded bg-linear-to-r" />
|
|
553
573
|
<div className="flex items-center justify-between">
|
|
554
574
|
<div className="flex items-center gap-2">
|
|
555
|
-
<button className="rounded p-1.5
|
|
556
|
-
<SkipBackwardIcon className="h-5 w-5
|
|
575
|
+
<button className="hover:bg-fm-surface-secondary rounded p-1.5">
|
|
576
|
+
<SkipBackwardIcon className="text-fm-icon-warning h-5 w-5" />
|
|
557
577
|
</button>
|
|
558
|
-
<span className="text-
|
|
578
|
+
<span className="text-fm-tertiary text-sm">
|
|
559
579
|
Previous Chapter
|
|
560
580
|
</span>
|
|
561
581
|
</div>
|
|
562
582
|
<div className="flex items-center gap-2">
|
|
563
|
-
<span className="text-
|
|
583
|
+
<span className="text-fm-tertiary text-sm">
|
|
564
584
|
12:34 / 45:67
|
|
565
585
|
</span>
|
|
566
586
|
</div>
|
|
567
587
|
</div>
|
|
568
588
|
</div>
|
|
569
|
-
<div className="rounded-lg
|
|
570
|
-
<pre className="overflow-x-auto text-sm
|
|
589
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
590
|
+
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
571
591
|
{`// Video chapter navigation
|
|
572
592
|
<div className="flex items-center gap-2">
|
|
573
593
|
<button
|
|
@@ -585,39 +605,39 @@ function MediaPlayer() {
|
|
|
585
605
|
|
|
586
606
|
{/* Playlist Controls */}
|
|
587
607
|
<div className="!space-y-4">
|
|
588
|
-
<h3 className="text-lg font-semibold
|
|
608
|
+
<h3 className="text-fm-icon-warning! text-lg font-semibold">
|
|
589
609
|
Playlist Controls
|
|
590
610
|
</h3>
|
|
591
611
|
<div className="!space-y-4">
|
|
592
|
-
<div className="rounded-lg border
|
|
612
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-4">
|
|
593
613
|
<div className="mb-4">
|
|
594
|
-
<div className="text-sm font-medium
|
|
614
|
+
<div className="text-fm-icon-active! text-sm font-medium">
|
|
595
615
|
My Playlist
|
|
596
616
|
</div>
|
|
597
|
-
<div className="text-
|
|
617
|
+
<div className="text-fm-tertiary! text-xs">
|
|
598
618
|
Track 3 of 12
|
|
599
619
|
</div>
|
|
600
620
|
</div>
|
|
601
621
|
<div className="flex items-center justify-center gap-6">
|
|
602
|
-
<button className="rounded-lg p-1.5
|
|
603
|
-
<div className="h-4 w-4 rounded-full border
|
|
622
|
+
<button className="hover:bg-fm-surface-secondary rounded-lg p-1.5">
|
|
623
|
+
<div className="border-fm-divider-contrast bg-fm-divider-primary h-4 w-4 rounded-full border" />
|
|
604
624
|
</button>
|
|
605
|
-
<button className="rounded-lg p-2
|
|
606
|
-
<SkipBackwardIcon className="h-6 w-6
|
|
625
|
+
<button className="hover:bg-fm-surface-secondary rounded-lg p-2">
|
|
626
|
+
<SkipBackwardIcon className="text-fm-icon-warning h-6 w-6" />
|
|
607
627
|
</button>
|
|
608
|
-
<button className="rounded-lg p-2
|
|
609
|
-
<div className="h-8 w-8 rounded-full border-2
|
|
628
|
+
<button className="hover:bg-fm-surface-secondary rounded-lg p-2">
|
|
629
|
+
<div className="border-fm-divider-contrast bg-fm-divider-primary h-8 w-8 rounded-full border-2" />
|
|
610
630
|
</button>
|
|
611
|
-
<button className="rounded-lg p-2
|
|
612
|
-
<div className="h-6 w-6 rounded-full border
|
|
631
|
+
<button className="hover:bg-fm-surface-secondary rounded-lg p-2">
|
|
632
|
+
<div className="border-fm-divider-contrast bg-fm-divider-primary h-6 w-6 rounded-full border" />
|
|
613
633
|
</button>
|
|
614
|
-
<button className="rounded-lg p-1.5
|
|
615
|
-
<div className="h-4 w-4 rounded-full border
|
|
634
|
+
<button className="hover:bg-fm-surface-secondary rounded-lg p-1.5">
|
|
635
|
+
<div className="border-fm-divider-contrast bg-fm-divider-primary h-4 w-4 rounded-full border" />
|
|
616
636
|
</button>
|
|
617
637
|
</div>
|
|
618
638
|
</div>
|
|
619
|
-
<div className="rounded-lg
|
|
620
|
-
<pre className="overflow-x-auto text-sm
|
|
639
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
640
|
+
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
621
641
|
{`// Full playlist controls
|
|
622
642
|
<div className="playlist-controls">
|
|
623
643
|
<div className="flex items-center justify-center gap-6">
|
|
@@ -647,64 +667,64 @@ function MediaPlayer() {
|
|
|
647
667
|
|
|
648
668
|
{/* Accessibility */}
|
|
649
669
|
<div className="!space-y-8">
|
|
650
|
-
<h2 className="text-center text-3xl font-bold
|
|
670
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
651
671
|
Accessibility Features
|
|
652
672
|
</h2>
|
|
653
673
|
<div className="grid grid-cols-1 gap-8 md:grid-cols-2">
|
|
654
|
-
<div className="!space-y-4 rounded-lg border
|
|
655
|
-
<h3 className="text-lg font-semibold
|
|
674
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
|
|
675
|
+
<h3 className="text-fm-icon-positive! text-lg font-semibold">
|
|
656
676
|
✅ Built-in Features
|
|
657
677
|
</h3>
|
|
658
|
-
<ul className="!space-y-2 text-sm
|
|
659
|
-
<li className="
|
|
678
|
+
<ul className="text-fm-secondary! !space-y-2 text-sm">
|
|
679
|
+
<li className="text-fm-secondary!">
|
|
660
680
|
Uses Radix UI AccessibleIcon wrapper
|
|
661
681
|
</li>
|
|
662
|
-
<li className="
|
|
682
|
+
<li className="text-fm-secondary!">
|
|
663
683
|
Provides screen reader label "Skip backward icon"
|
|
664
684
|
</li>
|
|
665
|
-
<li className="
|
|
685
|
+
<li className="text-fm-secondary!">
|
|
666
686
|
Supports keyboard navigation when interactive
|
|
667
687
|
</li>
|
|
668
|
-
<li className="
|
|
688
|
+
<li className="text-fm-secondary!">
|
|
669
689
|
Maintains proper color contrast ratios
|
|
670
690
|
</li>
|
|
671
|
-
<li className="
|
|
691
|
+
<li className="text-fm-secondary!">
|
|
672
692
|
Scales with user's font size preferences
|
|
673
693
|
</li>
|
|
674
694
|
</ul>
|
|
675
695
|
</div>
|
|
676
696
|
|
|
677
|
-
<div className="!space-y-4 rounded-lg border
|
|
678
|
-
<h3 className="text-lg font-semibold
|
|
697
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
|
|
698
|
+
<h3 className="text-fm-icon-warning! text-lg font-semibold">
|
|
679
699
|
💡 Best Practices
|
|
680
700
|
</h3>
|
|
681
|
-
<ul className="!space-y-2 text-sm
|
|
682
|
-
<li className="
|
|
701
|
+
<ul className="text-fm-secondary !space-y-2 text-sm">
|
|
702
|
+
<li className="text-fm-secondary!">
|
|
683
703
|
Always provide descriptive aria-labels for buttons
|
|
684
704
|
</li>
|
|
685
|
-
<li className="
|
|
705
|
+
<li className="text-fm-secondary!">
|
|
686
706
|
Use consistent placement in media control groups
|
|
687
707
|
</li>
|
|
688
|
-
<li className="
|
|
708
|
+
<li className="text-fm-secondary!">
|
|
689
709
|
Ensure sufficient touch target size (44px minimum)
|
|
690
710
|
</li>
|
|
691
|
-
<li className="
|
|
711
|
+
<li className="text-fm-secondary!">
|
|
692
712
|
Provide visible focus states for keyboard users
|
|
693
713
|
</li>
|
|
694
|
-
<li className="
|
|
714
|
+
<li className="text-fm-secondary!">
|
|
695
715
|
Consider keyboard shortcuts (e.g., Left Arrow key)
|
|
696
716
|
</li>
|
|
697
717
|
</ul>
|
|
698
718
|
</div>
|
|
699
719
|
</div>
|
|
700
720
|
|
|
701
|
-
<div className="rounded-lg border
|
|
702
|
-
<h3 className="mb-4 text-lg font-semibold
|
|
721
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
|
|
722
|
+
<h3 className="text-fm-icon-warning! mb-4 text-lg font-semibold">
|
|
703
723
|
Proper ARIA Implementation
|
|
704
724
|
</h3>
|
|
705
725
|
<div className="grid grid-cols-1 gap-6 lg:grid-cols-2">
|
|
706
|
-
<div className="rounded-lg
|
|
707
|
-
<pre className="overflow-x-auto text-sm
|
|
726
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
727
|
+
<pre className="text-fm-icon-info! overflow-x-auto text-sm">
|
|
708
728
|
{`// Previous track button with proper ARIA
|
|
709
729
|
<button
|
|
710
730
|
aria-label="Previous track"
|
|
@@ -733,13 +753,13 @@ function MediaPlayer() {
|
|
|
733
753
|
</pre>
|
|
734
754
|
</div>
|
|
735
755
|
<div className="!space-y-4">
|
|
736
|
-
<p className="text-
|
|
756
|
+
<p className="text-fm-secondary! text-sm">
|
|
737
757
|
When using SkipBackwardIcon for interactive elements,
|
|
738
758
|
always provide clear context about what content will be
|
|
739
759
|
navigated to and any state information when relevant.
|
|
740
760
|
</p>
|
|
741
|
-
<div className="
|
|
742
|
-
<div className="flex items-center gap-2 text-sm
|
|
761
|
+
<div className="border-fm-icon-warning/20 bg-fm-icon-warning/10 rounded-lg border p-4">
|
|
762
|
+
<div className="text-fm-icon-warning flex items-center gap-2 text-sm">
|
|
743
763
|
<SkipBackwardIcon className="h-4 w-4" />
|
|
744
764
|
<span>
|
|
745
765
|
Screen readers need specific context about the skip
|
|
@@ -754,46 +774,58 @@ function MediaPlayer() {
|
|
|
754
774
|
|
|
755
775
|
{/* Related Icons */}
|
|
756
776
|
<div className="!space-y-8">
|
|
757
|
-
<h2 className="text-center text-3xl font-bold
|
|
777
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
758
778
|
Related Icons
|
|
759
779
|
</h2>
|
|
760
780
|
<div className="grid grid-cols-2 gap-6 md:grid-cols-4">
|
|
761
|
-
<div className="!space-y-3 rounded-lg border
|
|
762
|
-
<div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg
|
|
763
|
-
<span className="
|
|
781
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
|
|
782
|
+
<div className="bg-fm-icon-warning/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
|
|
783
|
+
<span className="text-fm-icon-active! !text-2xl">⏭</span>
|
|
764
784
|
</div>
|
|
765
785
|
<div>
|
|
766
|
-
<div className="font-medium
|
|
786
|
+
<div className="text-fm-icon-active font-medium">
|
|
767
787
|
SkipForwardIcon
|
|
768
788
|
</div>
|
|
769
|
-
<div className="text-
|
|
789
|
+
<div className="text-fm-tertiary text-xs">
|
|
790
|
+
Skip to next
|
|
791
|
+
</div>
|
|
770
792
|
</div>
|
|
771
793
|
</div>
|
|
772
|
-
<div className="!space-y-3 rounded-lg border
|
|
773
|
-
<div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg
|
|
774
|
-
<span className="
|
|
794
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
|
|
795
|
+
<div className="bg-fm-icon-warning/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
|
|
796
|
+
<span className="text-fm-icon-active! !text-2xl">⏸</span>
|
|
775
797
|
</div>
|
|
776
798
|
<div>
|
|
777
|
-
<div className="font-medium
|
|
778
|
-
|
|
799
|
+
<div className="text-fm-icon-active font-medium">
|
|
800
|
+
PlayIcon
|
|
801
|
+
</div>
|
|
802
|
+
<div className="text-fm-tertiary text-xs">Play/pause</div>
|
|
779
803
|
</div>
|
|
780
804
|
</div>
|
|
781
|
-
<div className="!space-y-3 rounded-lg border
|
|
782
|
-
<div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg
|
|
783
|
-
<span className="
|
|
805
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
|
|
806
|
+
<div className="bg-fm-icon-warning/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
|
|
807
|
+
<span className="text-fm-icon-active! !text-2xl">⏪</span>
|
|
784
808
|
</div>
|
|
785
809
|
<div>
|
|
786
|
-
<div className="font-medium
|
|
787
|
-
|
|
810
|
+
<div className="text-fm-icon-active font-medium">
|
|
811
|
+
RewindIcon
|
|
812
|
+
</div>
|
|
813
|
+
<div className="text-fm-tertiary text-xs">
|
|
814
|
+
Fast rewind
|
|
815
|
+
</div>
|
|
788
816
|
</div>
|
|
789
817
|
</div>
|
|
790
|
-
<div className="!space-y-3 rounded-lg border
|
|
791
|
-
<div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg
|
|
792
|
-
<span className="
|
|
818
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
|
|
819
|
+
<div className="bg-fm-icon-negative/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
|
|
820
|
+
<span className="text-fm-icon-active! !text-2xl">🔀</span>
|
|
793
821
|
</div>
|
|
794
822
|
<div>
|
|
795
|
-
<div className="font-medium
|
|
796
|
-
|
|
823
|
+
<div className="text-fm-icon-active font-medium">
|
|
824
|
+
ShuffleIcon
|
|
825
|
+
</div>
|
|
826
|
+
<div className="text-fm-tertiary text-xs">
|
|
827
|
+
Shuffle mode
|
|
828
|
+
</div>
|
|
797
829
|
</div>
|
|
798
830
|
</div>
|
|
799
831
|
</div>
|
|
@@ -801,14 +833,14 @@ function MediaPlayer() {
|
|
|
801
833
|
</div>
|
|
802
834
|
|
|
803
835
|
{/* Footer */}
|
|
804
|
-
<div className="border-
|
|
836
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary border-t backdrop-blur-xl">
|
|
805
837
|
<div className="!mx-auto max-w-7xl px-6 py-8">
|
|
806
838
|
<div className="!space-y-4 text-center">
|
|
807
|
-
<p className="
|
|
839
|
+
<p className="text-fm-tertiary!">
|
|
808
840
|
SkipBackwardIcon is part of the Aural UI icon library, built
|
|
809
841
|
with accessibility and media control best practices in mind.
|
|
810
842
|
</p>
|
|
811
|
-
<p className="text-
|
|
843
|
+
<p className="text-fm-placeholder! text-sm">
|
|
812
844
|
All icons use Radix UI's AccessibleIcon for screen reader
|
|
813
845
|
compatibility and follow WCAG guidelines.
|
|
814
846
|
</p>
|
|
@@ -861,20 +893,20 @@ const storyParameters = {
|
|
|
861
893
|
backgrounds: {
|
|
862
894
|
default: "dark",
|
|
863
895
|
values: [
|
|
864
|
-
{ name: "dark", value: "
|
|
865
|
-
{ name: "darker", value: "
|
|
896
|
+
{ name: "dark", value: "var(--color-fm-surface-primary)" },
|
|
897
|
+
{ name: "darker", value: "var(--color-fm-neutral-0)" },
|
|
866
898
|
],
|
|
867
899
|
},
|
|
868
900
|
}
|
|
869
901
|
|
|
870
902
|
export const Default: Story = {
|
|
871
903
|
args: {
|
|
872
|
-
className: "h-8 w-8 text-
|
|
904
|
+
className: "h-8 w-8 text-fm-icon-warning",
|
|
873
905
|
withAccessibility: true,
|
|
874
906
|
},
|
|
875
907
|
parameters: storyParameters,
|
|
876
908
|
render: (args) => (
|
|
877
|
-
<div className="flex h-32 min-h-dvh items-center justify-center rounded-lg bg-
|
|
909
|
+
<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">
|
|
878
910
|
<SkipBackwardIcon {...args} />
|
|
879
911
|
</div>
|
|
880
912
|
),
|
|
@@ -891,30 +923,30 @@ export const SizeVariations: Story = {
|
|
|
891
923
|
},
|
|
892
924
|
},
|
|
893
925
|
render: () => (
|
|
894
|
-
<div className="flex h-64 min-h-dvh items-center justify-center gap-8 rounded-lg bg-
|
|
926
|
+
<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">
|
|
895
927
|
<div className="text-center">
|
|
896
|
-
<SkipBackwardIcon className="!mx-auto mb-2 h-3 w-3
|
|
897
|
-
<span className="text-
|
|
928
|
+
<SkipBackwardIcon className="text-fm-icon-warning !mx-auto mb-2 h-3 w-3" />
|
|
929
|
+
<span className="text-fm-tertiary text-xs">12px</span>
|
|
898
930
|
</div>
|
|
899
931
|
<div className="text-center">
|
|
900
|
-
<SkipBackwardIcon className="!mx-auto mb-2 h-4 w-4
|
|
901
|
-
<span className="text-
|
|
932
|
+
<SkipBackwardIcon className="text-fm-icon-warning !mx-auto mb-2 h-4 w-4" />
|
|
933
|
+
<span className="text-fm-tertiary text-xs">16px</span>
|
|
902
934
|
</div>
|
|
903
935
|
<div className="text-center">
|
|
904
|
-
<SkipBackwardIcon className="!mx-auto mb-2 h-5 w-5
|
|
905
|
-
<span className="text-
|
|
936
|
+
<SkipBackwardIcon className="text-fm-icon-warning !mx-auto mb-2 h-5 w-5" />
|
|
937
|
+
<span className="text-fm-tertiary text-xs">20px</span>
|
|
906
938
|
</div>
|
|
907
939
|
<div className="text-center">
|
|
908
|
-
<SkipBackwardIcon className="!mx-auto mb-2 h-6 w-6
|
|
909
|
-
<span className="text-
|
|
940
|
+
<SkipBackwardIcon className="text-fm-icon-warning !mx-auto mb-2 h-6 w-6" />
|
|
941
|
+
<span className="text-fm-tertiary text-xs">24px</span>
|
|
910
942
|
</div>
|
|
911
943
|
<div className="text-center">
|
|
912
|
-
<SkipBackwardIcon className="!mx-auto mb-2 h-8 w-8
|
|
913
|
-
<span className="text-
|
|
944
|
+
<SkipBackwardIcon className="text-fm-icon-warning !mx-auto mb-2 h-8 w-8" />
|
|
945
|
+
<span className="text-fm-tertiary text-xs">32px</span>
|
|
914
946
|
</div>
|
|
915
947
|
<div className="text-center">
|
|
916
|
-
<SkipBackwardIcon className="!mx-auto mb-2 h-12 w-12
|
|
917
|
-
<span className="text-
|
|
948
|
+
<SkipBackwardIcon className="text-fm-icon-warning !mx-auto mb-2 h-12 w-12" />
|
|
949
|
+
<span className="text-fm-tertiary text-xs">48px</span>
|
|
918
950
|
</div>
|
|
919
951
|
</div>
|
|
920
952
|
),
|
|
@@ -931,34 +963,34 @@ export const ColorVariations: Story = {
|
|
|
931
963
|
},
|
|
932
964
|
},
|
|
933
965
|
render: () => (
|
|
934
|
-
<div className="grid min-h-dvh grid-cols-2 items-center justify-center gap-6 rounded-lg bg-
|
|
966
|
+
<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">
|
|
935
967
|
<div className="text-center">
|
|
936
|
-
<div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border
|
|
937
|
-
<SkipBackwardIcon className="h-8 w-8
|
|
968
|
+
<div className="border-fm-icon-warning/30 bg-fm-icon-warning/20 !mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border">
|
|
969
|
+
<SkipBackwardIcon className="text-fm-icon-warning h-8 w-8" />
|
|
938
970
|
</div>
|
|
939
|
-
<div className="text-sm font-medium
|
|
940
|
-
<div className="text-
|
|
971
|
+
<div className="text-fm-icon-active text-sm font-medium">Primary</div>
|
|
972
|
+
<div className="text-fm-icon-warning text-xs">text-fm-icon-warning</div>
|
|
941
973
|
</div>
|
|
942
974
|
<div className="text-center">
|
|
943
|
-
<div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border
|
|
944
|
-
<SkipBackwardIcon className="h-8 w-8
|
|
975
|
+
<div className="border-fm-icon-warning/30 bg-fm-icon-warning/20 !mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border">
|
|
976
|
+
<SkipBackwardIcon className="text-fm-icon-warning h-8 w-8" />
|
|
945
977
|
</div>
|
|
946
|
-
<div className="text-sm font-medium
|
|
947
|
-
<div className="text-
|
|
978
|
+
<div className="text-fm-icon-active text-sm font-medium">Secondary</div>
|
|
979
|
+
<div className="text-fm-icon-warning text-xs">text-fm-icon-warning</div>
|
|
948
980
|
</div>
|
|
949
981
|
<div className="text-center">
|
|
950
|
-
<div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border
|
|
951
|
-
<SkipBackwardIcon className="h-8 w-8
|
|
982
|
+
<div className="border-fm-icon-warning/30 bg-fm-icon-warning/20 !mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border">
|
|
983
|
+
<SkipBackwardIcon className="text-fm-icon-warning h-8 w-8" />
|
|
952
984
|
</div>
|
|
953
|
-
<div className="text-sm font-medium
|
|
954
|
-
<div className="text-
|
|
985
|
+
<div className="text-fm-icon-active text-sm font-medium">Accent</div>
|
|
986
|
+
<div className="text-fm-icon-warning text-xs">text-fm-icon-warning</div>
|
|
955
987
|
</div>
|
|
956
988
|
<div className="text-center">
|
|
957
|
-
<div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border
|
|
958
|
-
<SkipBackwardIcon className="h-8 w-8
|
|
989
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border">
|
|
990
|
+
<SkipBackwardIcon className="text-fm-placeholder h-8 w-8" />
|
|
959
991
|
</div>
|
|
960
|
-
<div className="text-sm font-medium
|
|
961
|
-
<div className="text-
|
|
992
|
+
<div className="text-fm-icon-active text-sm font-medium">Disabled</div>
|
|
993
|
+
<div className="text-fm-placeholder text-xs">text-fm-placeholder</div>
|
|
962
994
|
</div>
|
|
963
995
|
</div>
|
|
964
996
|
),
|
|
@@ -975,27 +1007,31 @@ export const UsageExamples: Story = {
|
|
|
975
1007
|
},
|
|
976
1008
|
},
|
|
977
1009
|
render: () => (
|
|
978
|
-
<div className="min-h-dvh !space-y-8 rounded-lg bg-
|
|
1010
|
+
<div className="from-fm-surface-primary to-fm-surface-secondary min-h-dvh !space-y-8 rounded-lg bg-linear-to-br p-8">
|
|
979
1011
|
{/* Music Player */}
|
|
980
1012
|
<div className="!space-y-2">
|
|
981
|
-
<h3 className="text-sm font-medium
|
|
982
|
-
|
|
1013
|
+
<h3 className="text-fm-icon-active text-sm font-medium">
|
|
1014
|
+
Music Player
|
|
1015
|
+
</h3>
|
|
1016
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
|
|
983
1017
|
<div className="mb-4 flex items-center gap-3">
|
|
984
|
-
<div className="h-12 w-12 rounded-lg bg-
|
|
1018
|
+
<div className="from-fm-icon-warning/20 to-fm-icon-warning/20 h-12 w-12 rounded-lg bg-linear-to-br" />
|
|
985
1019
|
<div>
|
|
986
|
-
<div className="text-sm font-medium
|
|
987
|
-
|
|
1020
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
1021
|
+
Current Song
|
|
1022
|
+
</div>
|
|
1023
|
+
<div className="text-fm-tertiary text-xs">Artist Name</div>
|
|
988
1024
|
</div>
|
|
989
1025
|
</div>
|
|
990
1026
|
<div className="flex items-center justify-center gap-4">
|
|
991
|
-
<button className="rounded-lg p-2 transition-colors
|
|
992
|
-
<SkipBackwardIcon className="h-6 w-6
|
|
1027
|
+
<button className="hover:bg-fm-surface-secondary rounded-lg p-2 transition-colors">
|
|
1028
|
+
<SkipBackwardIcon className="text-fm-icon-warning h-6 w-6" />
|
|
993
1029
|
</button>
|
|
994
|
-
<button className="rounded-lg p-3 transition-colors
|
|
995
|
-
<div className="h-8 w-8 rounded-full border-2
|
|
1030
|
+
<button className="hover:bg-fm-surface-secondary rounded-lg p-3 transition-colors">
|
|
1031
|
+
<div className="border-fm-divider-contrast bg-fm-divider-primary h-8 w-8 rounded-full border-2" />
|
|
996
1032
|
</button>
|
|
997
|
-
<button className="rounded-lg p-2 transition-colors
|
|
998
|
-
<div className="h-6 w-6 rounded-full border
|
|
1033
|
+
<button className="hover:bg-fm-surface-secondary rounded-lg p-2 transition-colors">
|
|
1034
|
+
<div className="border-fm-divider-contrast bg-fm-divider-primary h-6 w-6 rounded-full border" />
|
|
999
1035
|
</button>
|
|
1000
1036
|
</div>
|
|
1001
1037
|
</div>
|
|
@@ -1003,24 +1039,26 @@ export const UsageExamples: Story = {
|
|
|
1003
1039
|
|
|
1004
1040
|
{/* Podcast Player */}
|
|
1005
1041
|
<div className="!space-y-2">
|
|
1006
|
-
<h3 className="text-sm font-medium
|
|
1007
|
-
|
|
1042
|
+
<h3 className="text-fm-icon-active text-sm font-medium">
|
|
1043
|
+
Podcast Player
|
|
1044
|
+
</h3>
|
|
1045
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-4">
|
|
1008
1046
|
<div className="mb-4">
|
|
1009
|
-
<div className="text-sm font-medium
|
|
1047
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
1010
1048
|
Episode 42: Tech Trends
|
|
1011
1049
|
</div>
|
|
1012
|
-
<div className="text-
|
|
1050
|
+
<div className="text-fm-tertiary text-xs">The Tech Podcast</div>
|
|
1013
1051
|
</div>
|
|
1014
1052
|
<div className="flex items-center justify-between">
|
|
1015
1053
|
<div className="flex items-center gap-2">
|
|
1016
|
-
<button className="rounded p-1.5
|
|
1017
|
-
<SkipBackwardIcon className="h-5 w-5
|
|
1054
|
+
<button className="hover:bg-fm-surface-secondary rounded p-1.5">
|
|
1055
|
+
<SkipBackwardIcon className="text-fm-icon-warning h-5 w-5" />
|
|
1018
1056
|
</button>
|
|
1019
|
-
<span className="text-
|
|
1057
|
+
<span className="text-fm-tertiary text-sm">Previous Episode</span>
|
|
1020
1058
|
</div>
|
|
1021
1059
|
<div className="flex items-center gap-2">
|
|
1022
|
-
<button className="rounded p-1.5
|
|
1023
|
-
<div className="h-5 w-5 rounded-full border
|
|
1060
|
+
<button className="hover:bg-fm-surface-secondary rounded p-1.5">
|
|
1061
|
+
<div className="border-fm-divider-contrast bg-fm-divider-primary h-5 w-5 rounded-full border" />
|
|
1024
1062
|
</button>
|
|
1025
1063
|
</div>
|
|
1026
1064
|
</div>
|
|
@@ -1043,11 +1081,11 @@ export const Playground: Story = {
|
|
|
1043
1081
|
args: {
|
|
1044
1082
|
width: 37,
|
|
1045
1083
|
height: 36,
|
|
1046
|
-
className: "text-
|
|
1084
|
+
className: "text-fm-icon-warning",
|
|
1047
1085
|
},
|
|
1048
1086
|
render: (args) => (
|
|
1049
|
-
<div className="flex h-64 min-h-dvh items-center justify-center rounded-lg bg-
|
|
1050
|
-
<div className="rounded-lg border
|
|
1087
|
+
<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">
|
|
1088
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-8">
|
|
1051
1089
|
<SkipBackwardIcon {...args} />
|
|
1052
1090
|
</div>
|
|
1053
1091
|
</div>
|