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 ForwardTenSecondsIcon> = {
|
|
|
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 ForwardTenSecondsIcon> = {
|
|
|
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-positive/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-positive/10 to-fm-icon-positive/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
|
-
<ForwardTenSecondsIcon className="h-12 w-12
|
|
89
|
+
<div className="border-fm-icon-positive/30 from-fm-icon-positive/20 to-fm-icon-positive/20 !mx-auto flex h-24 w-24 items-center justify-center rounded-2xl border bg-linear-to-br">
|
|
90
|
+
<ForwardTenSecondsIcon className="text-fm-icon-positive 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
|
ForwardTenSecondsIcon
|
|
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 forward 10 seconds in
|
|
97
97
|
audio and video players. Features a circular arrow with "10"
|
|
98
98
|
seconds indicator, perfect for podcast apps, video players,
|
|
@@ -102,28 +102,28 @@ const meta: Meta<typeof ForwardTenSecondsIcon> = {
|
|
|
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-positive text-3xl font-bold">
|
|
106
106
|
Media Control
|
|
107
107
|
</div>
|
|
108
|
-
<div className="text-
|
|
108
|
+
<div className="text-fm-tertiary text-sm">
|
|
109
109
|
10-second skip forward
|
|
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-positive 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-info text-3xl font-bold">
|
|
124
124
|
Universal
|
|
125
125
|
</div>
|
|
126
|
-
<div className="text-
|
|
126
|
+
<div className="text-fm-tertiary text-sm">
|
|
127
127
|
Cross-platform standard
|
|
128
128
|
</div>
|
|
129
129
|
</div>
|
|
@@ -136,16 +136,16 @@ const meta: Meta<typeof ForwardTenSecondsIcon> = {
|
|
|
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-positive! 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 { ForwardTenSecondsIcon } from "@icons/forward-ten-seconds-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-positive! 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
|
-
<ForwardTenSecondsIcon 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-positive/20 bg-fm-icon-positive/10 hover:bg-fm-icon-positive/20 rounded-lg border p-3 transition-colors">
|
|
171
|
+
<ForwardTenSecondsIcon className="text-fm-icon-positive 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-positive! 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
|
+
44
|
|
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-positive! 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-positive! 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-positive! 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-positive! 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-positive! 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
|
-
<ForwardTenSecondsIcon className="!mx-auto mb-2 h-3 w-3
|
|
305
|
-
<span className="text-
|
|
312
|
+
<ForwardTenSecondsIcon className="text-fm-icon-positive !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
|
-
<ForwardTenSecondsIcon className="!mx-auto mb-2 h-4 w-4
|
|
309
|
-
<span className="text-
|
|
318
|
+
<ForwardTenSecondsIcon className="text-fm-icon-positive !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
|
-
<ForwardTenSecondsIcon className="!mx-auto mb-2 h-5 w-5
|
|
313
|
-
<span className="text-
|
|
324
|
+
<ForwardTenSecondsIcon className="text-fm-icon-positive !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
|
-
<ForwardTenSecondsIcon className="!mx-auto mb-2 h-6 w-6
|
|
317
|
-
<span className="text-
|
|
330
|
+
<ForwardTenSecondsIcon className="text-fm-icon-positive !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
|
-
<ForwardTenSecondsIcon className="!mx-auto mb-2 h-8 w-8
|
|
321
|
-
<span className="text-
|
|
336
|
+
<ForwardTenSecondsIcon className="text-fm-icon-positive !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
|
-
<ForwardTenSecondsIcon className="!mx-auto mb-2 h-12 w-12
|
|
325
|
-
<span className="text-
|
|
342
|
+
<ForwardTenSecondsIcon className="text-fm-icon-positive !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-positive! 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
|
<ForwardTenSecondsIcon 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-positive! 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
|
-
<ForwardTenSecondsIcon className="h-6 w-6
|
|
387
|
+
<ForwardTenSecondsIcon className="text-fm-icon-positive 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-positive
|
|
374
394
|
</div>
|
|
375
395
|
</div>
|
|
376
396
|
</div>
|
|
377
397
|
<div className="flex items-center gap-4">
|
|
378
|
-
<ForwardTenSecondsIcon className="h-6 w-6
|
|
398
|
+
<ForwardTenSecondsIcon className="text-fm-icon-positive 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-positive
|
|
385
405
|
</div>
|
|
386
406
|
</div>
|
|
387
407
|
</div>
|
|
388
408
|
<div className="flex items-center gap-4">
|
|
389
|
-
<ForwardTenSecondsIcon className="h-6 w-6
|
|
409
|
+
<ForwardTenSecondsIcon className="text-fm-icon-info 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-info
|
|
396
416
|
</div>
|
|
397
417
|
</div>
|
|
398
418
|
</div>
|
|
399
419
|
<div className="flex items-center gap-4">
|
|
400
|
-
<ForwardTenSecondsIcon className="h-6 w-6
|
|
420
|
+
<ForwardTenSecondsIcon 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-positive! 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
|
<ForwardTenSecondsIcon className="h-6 w-6 text-emerald-400" />
|
|
421
441
|
<ForwardTenSecondsIcon className="h-6 w-6 text-green-500" />
|
|
@@ -440,41 +460,41 @@ 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
|
{/* Podcast Player */}
|
|
449
469
|
<div className="!space-y-4">
|
|
450
|
-
<h3 className="text-lg font-semibold
|
|
470
|
+
<h3 className="text-fm-icon-positive! text-lg font-semibold">
|
|
451
471
|
Podcast 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 justify-between">
|
|
456
|
-
<h3 className="text-lg font-semibold
|
|
476
|
+
<h3 className="text-fm-icon-active! text-lg font-semibold">
|
|
457
477
|
Now Playing
|
|
458
478
|
</h3>
|
|
459
479
|
</div>
|
|
460
480
|
<div className="mb-4 flex items-center justify-center gap-4">
|
|
461
|
-
<button className="rounded-lg p-2 transition-colors
|
|
462
|
-
<div className="h-6 w-6 rounded-full border
|
|
481
|
+
<button className="hover:bg-fm-surface-secondary rounded-lg p-2 transition-colors">
|
|
482
|
+
<div className="border-fm-divider-contrast bg-fm-divider-primary h-6 w-6 rounded-full border" />
|
|
463
483
|
</button>
|
|
464
|
-
<button className="rounded-lg p-3 transition-colors
|
|
465
|
-
<div className="h-8 w-8 rounded-full border-2
|
|
484
|
+
<button className="hover:bg-fm-surface-secondary rounded-lg p-3 transition-colors">
|
|
485
|
+
<div className="border-fm-divider-contrast bg-fm-divider-primary h-8 w-8 rounded-full border-2" />
|
|
466
486
|
</button>
|
|
467
|
-
<button className="rounded-lg p-2 transition-colors
|
|
468
|
-
<ForwardTenSecondsIcon className="h-6 w-6
|
|
487
|
+
<button className="hover:bg-fm-surface-secondary rounded-lg p-2 transition-colors">
|
|
488
|
+
<ForwardTenSecondsIcon className="text-fm-icon-positive h-6 w-6" />
|
|
469
489
|
</button>
|
|
470
490
|
</div>
|
|
471
|
-
<p className="text-
|
|
491
|
+
<p className="text-fm-secondary! text-sm">
|
|
472
492
|
Skip forward 10 seconds to bypass ads or get past
|
|
473
493
|
content
|
|
474
494
|
</p>
|
|
475
495
|
</div>
|
|
476
|
-
<div className="rounded-lg
|
|
477
|
-
<pre className="overflow-x-auto text-sm
|
|
496
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
497
|
+
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
478
498
|
{`// Podcast control bar
|
|
479
499
|
<div className="flex items-center justify-center gap-4">
|
|
480
500
|
<button onClick={() => skipSeconds(-10)}>
|
|
@@ -494,30 +514,30 @@ function MediaPlayer() {
|
|
|
494
514
|
|
|
495
515
|
{/* Video Player */}
|
|
496
516
|
<div className="!space-y-4">
|
|
497
|
-
<h3 className="text-lg font-semibold
|
|
517
|
+
<h3 className="text-fm-icon-positive! text-lg font-semibold">
|
|
498
518
|
Video Player Controls
|
|
499
519
|
</h3>
|
|
500
520
|
<div className="!space-y-4">
|
|
501
|
-
<div className="rounded-lg border
|
|
502
|
-
<div className="mb-4 h-32 rounded bg-
|
|
521
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-4">
|
|
522
|
+
<div className="from-fm-icon-positive/20 to-fm-icon-positive/20 mb-4 h-32 rounded bg-linear-to-r" />
|
|
503
523
|
<div className="flex items-center justify-between">
|
|
504
524
|
<div className="flex items-center gap-2">
|
|
505
|
-
<span className="text-
|
|
525
|
+
<span className="text-fm-tertiary text-sm">
|
|
506
526
|
8:15 / 24:30
|
|
507
527
|
</span>
|
|
508
|
-
<button className="rounded p-1.5
|
|
509
|
-
<ForwardTenSecondsIcon className="h-5 w-5
|
|
528
|
+
<button className="hover:bg-fm-surface-secondary rounded p-1.5">
|
|
529
|
+
<ForwardTenSecondsIcon className="text-fm-icon-positive h-5 w-5" />
|
|
510
530
|
</button>
|
|
511
531
|
</div>
|
|
512
532
|
<div className="flex items-center gap-2">
|
|
513
|
-
<button className="rounded p-1.5
|
|
514
|
-
<div className="h-5 w-5 rounded-full border
|
|
533
|
+
<button className="hover:bg-fm-surface-secondary rounded p-1.5">
|
|
534
|
+
<div className="border-fm-divider-contrast bg-fm-divider-primary h-5 w-5 rounded-full border" />
|
|
515
535
|
</button>
|
|
516
536
|
</div>
|
|
517
537
|
</div>
|
|
518
538
|
</div>
|
|
519
|
-
<div className="rounded-lg
|
|
520
|
-
<pre className="overflow-x-auto text-sm
|
|
539
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
540
|
+
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
521
541
|
{`// Video player with fast forward
|
|
522
542
|
<div className="video-controls">
|
|
523
543
|
<div className="flex items-center gap-2">
|
|
@@ -537,42 +557,42 @@ function MediaPlayer() {
|
|
|
537
557
|
|
|
538
558
|
{/* Music Player */}
|
|
539
559
|
<div className="!space-y-4">
|
|
540
|
-
<h3 className="text-lg font-semibold
|
|
560
|
+
<h3 className="text-fm-icon-positive! text-lg font-semibold">
|
|
541
561
|
Music Player Interface
|
|
542
562
|
</h3>
|
|
543
563
|
<div className="!space-y-4">
|
|
544
|
-
<div className="rounded-lg border
|
|
564
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-4">
|
|
545
565
|
<div className="mb-4 flex items-center gap-3">
|
|
546
|
-
<div className="h-12 w-12 rounded-lg bg-
|
|
566
|
+
<div className="from-fm-icon-positive/20 to-fm-icon-positive/20 h-12 w-12 rounded-lg bg-linear-to-br" />
|
|
547
567
|
<div>
|
|
548
|
-
<div className="text-sm font-medium
|
|
568
|
+
<div className="text-fm-icon-active! text-sm font-medium">
|
|
549
569
|
Song Title
|
|
550
570
|
</div>
|
|
551
|
-
<div className="text-
|
|
571
|
+
<div className="text-fm-tertiary! text-xs">
|
|
552
572
|
Artist Name
|
|
553
573
|
</div>
|
|
554
574
|
</div>
|
|
555
575
|
</div>
|
|
556
576
|
<div className="flex items-center justify-center gap-6">
|
|
557
|
-
<button className="rounded-lg p-1.5
|
|
558
|
-
<div className="h-4 w-4 rounded-full border
|
|
577
|
+
<button className="hover:bg-fm-surface-secondary rounded-lg p-1.5">
|
|
578
|
+
<div className="border-fm-divider-contrast bg-fm-divider-primary h-4 w-4 rounded-full border" />
|
|
559
579
|
</button>
|
|
560
|
-
<button className="rounded-lg p-2
|
|
561
|
-
<div className="h-6 w-6 rounded-full border
|
|
580
|
+
<button className="hover:bg-fm-surface-secondary rounded-lg p-2">
|
|
581
|
+
<div className="border-fm-divider-contrast bg-fm-divider-primary h-6 w-6 rounded-full border" />
|
|
562
582
|
</button>
|
|
563
|
-
<button className="rounded-lg p-2
|
|
564
|
-
<div className="h-8 w-8 rounded-full border-2
|
|
583
|
+
<button className="hover:bg-fm-surface-secondary rounded-lg p-2">
|
|
584
|
+
<div className="border-fm-divider-contrast bg-fm-divider-primary h-8 w-8 rounded-full border-2" />
|
|
565
585
|
</button>
|
|
566
|
-
<button className="rounded-lg p-2
|
|
567
|
-
<div className="h-6 w-6 rounded-full border
|
|
586
|
+
<button className="hover:bg-fm-surface-secondary rounded-lg p-2">
|
|
587
|
+
<div className="border-fm-divider-contrast bg-fm-divider-primary h-6 w-6 rounded-full border" />
|
|
568
588
|
</button>
|
|
569
|
-
<button className="rounded-lg p-1.5
|
|
570
|
-
<ForwardTenSecondsIcon className="h-4 w-4
|
|
589
|
+
<button className="hover:bg-fm-surface-secondary rounded-lg p-1.5">
|
|
590
|
+
<ForwardTenSecondsIcon className="text-fm-icon-positive h-4 w-4" />
|
|
571
591
|
</button>
|
|
572
592
|
</div>
|
|
573
593
|
</div>
|
|
574
|
-
<div className="rounded-lg
|
|
575
|
-
<pre className="overflow-x-auto text-sm
|
|
594
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
595
|
+
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
576
596
|
{`// Music player with skip controls
|
|
577
597
|
<div className="music-controls">
|
|
578
598
|
<div className="flex items-center justify-center gap-6">
|
|
@@ -600,38 +620,38 @@ function MediaPlayer() {
|
|
|
600
620
|
|
|
601
621
|
{/* Educational Content */}
|
|
602
622
|
<div className="!space-y-4">
|
|
603
|
-
<h3 className="text-lg font-semibold
|
|
623
|
+
<h3 className="text-fm-icon-positive! text-lg font-semibold">
|
|
604
624
|
Educational Video Player
|
|
605
625
|
</h3>
|
|
606
626
|
<div className="!space-y-4">
|
|
607
|
-
<div className="rounded-lg border
|
|
627
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-4">
|
|
608
628
|
<div className="mb-4">
|
|
609
629
|
<div className="mb-2 flex items-center gap-2">
|
|
610
|
-
<div className="h-2 w-2 rounded-full
|
|
611
|
-
<span className="text-sm font-medium
|
|
630
|
+
<div className="bg-fm-icon-positive h-2 w-2 rounded-full" />
|
|
631
|
+
<span className="text-fm-icon-active! text-sm font-medium">
|
|
612
632
|
Lesson 3: Advanced Concepts
|
|
613
633
|
</span>
|
|
614
634
|
</div>
|
|
615
|
-
<h4 className="text-
|
|
635
|
+
<h4 className="text-fm-secondary! text-sm">
|
|
616
636
|
Interactive Learning Module
|
|
617
637
|
</h4>
|
|
618
638
|
</div>
|
|
619
639
|
<div className="flex items-center justify-between">
|
|
620
640
|
<div className="flex items-center gap-2">
|
|
621
|
-
<span className="text-
|
|
641
|
+
<span className="text-fm-tertiary! text-xs">
|
|
622
642
|
Skip to next section
|
|
623
643
|
</span>
|
|
624
|
-
<button className="rounded p-1.5
|
|
625
|
-
<ForwardTenSecondsIcon className="h-5 w-5
|
|
644
|
+
<button className="hover:bg-fm-surface-secondary rounded p-1.5">
|
|
645
|
+
<ForwardTenSecondsIcon className="text-fm-icon-positive h-5 w-5" />
|
|
626
646
|
</button>
|
|
627
647
|
</div>
|
|
628
|
-
<button className="
|
|
648
|
+
<button className="border-fm-icon-positive/30 bg-fm-icon-positive/10 text-fm-icon-positive rounded-lg border px-3 py-1 text-xs">
|
|
629
649
|
Next Chapter
|
|
630
650
|
</button>
|
|
631
651
|
</div>
|
|
632
652
|
</div>
|
|
633
|
-
<div className="rounded-lg
|
|
634
|
-
<pre className="overflow-x-auto text-sm
|
|
653
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
654
|
+
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
635
655
|
{`// Educational content with skip ahead
|
|
636
656
|
<div className="lesson-controls">
|
|
637
657
|
<div className="flex items-center gap-2">
|
|
@@ -656,64 +676,64 @@ function MediaPlayer() {
|
|
|
656
676
|
|
|
657
677
|
{/* Accessibility */}
|
|
658
678
|
<div className="!space-y-8">
|
|
659
|
-
<h2 className="text-center text-3xl font-bold
|
|
679
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
660
680
|
Accessibility Features
|
|
661
681
|
</h2>
|
|
662
682
|
<div className="grid grid-cols-1 gap-8 md:grid-cols-2">
|
|
663
|
-
<div className="!space-y-4 rounded-lg border
|
|
664
|
-
<h3 className="text-lg font-semibold
|
|
683
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
|
|
684
|
+
<h3 className="text-fm-icon-positive! text-lg font-semibold">
|
|
665
685
|
✅ Built-in Features
|
|
666
686
|
</h3>
|
|
667
|
-
<ul className="!space-y-2 text-sm
|
|
668
|
-
<li className="
|
|
687
|
+
<ul className="text-fm-secondary! !space-y-2 text-sm">
|
|
688
|
+
<li className="text-fm-secondary!">
|
|
669
689
|
Uses Radix UI AccessibleIcon wrapper
|
|
670
690
|
</li>
|
|
671
|
-
<li className="
|
|
691
|
+
<li className="text-fm-secondary!">
|
|
672
692
|
Provides screen reader label "Forward ten seconds icon"
|
|
673
693
|
</li>
|
|
674
|
-
<li className="
|
|
694
|
+
<li className="text-fm-secondary!">
|
|
675
695
|
Supports keyboard navigation when interactive
|
|
676
696
|
</li>
|
|
677
|
-
<li className="
|
|
697
|
+
<li className="text-fm-secondary!">
|
|
678
698
|
Maintains proper color contrast ratios
|
|
679
699
|
</li>
|
|
680
|
-
<li className="
|
|
700
|
+
<li className="text-fm-secondary!">
|
|
681
701
|
Scales with user's font size preferences
|
|
682
702
|
</li>
|
|
683
703
|
</ul>
|
|
684
704
|
</div>
|
|
685
705
|
|
|
686
|
-
<div className="!space-y-4 rounded-lg border
|
|
687
|
-
<h3 className="text-lg font-semibold
|
|
706
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
|
|
707
|
+
<h3 className="text-fm-icon-positive! text-lg font-semibold">
|
|
688
708
|
💡 Best Practices
|
|
689
709
|
</h3>
|
|
690
|
-
<ul className="!space-y-2 text-sm
|
|
691
|
-
<li className="
|
|
710
|
+
<ul className="text-fm-secondary !space-y-2 text-sm">
|
|
711
|
+
<li className="text-fm-secondary!">
|
|
692
712
|
Always provide descriptive aria-labels for buttons
|
|
693
713
|
</li>
|
|
694
|
-
<li className="
|
|
714
|
+
<li className="text-fm-secondary!">
|
|
695
715
|
Use consistent placement in media control groups
|
|
696
716
|
</li>
|
|
697
|
-
<li className="
|
|
717
|
+
<li className="text-fm-secondary!">
|
|
698
718
|
Ensure sufficient touch target size (44px minimum)
|
|
699
719
|
</li>
|
|
700
|
-
<li className="
|
|
720
|
+
<li className="text-fm-secondary!">
|
|
701
721
|
Provide visible focus states for keyboard users
|
|
702
722
|
</li>
|
|
703
|
-
<li className="
|
|
723
|
+
<li className="text-fm-secondary!">
|
|
704
724
|
Consider keyboard shortcuts (e.g., Right Arrow key)
|
|
705
725
|
</li>
|
|
706
726
|
</ul>
|
|
707
727
|
</div>
|
|
708
728
|
</div>
|
|
709
729
|
|
|
710
|
-
<div className="rounded-lg border
|
|
711
|
-
<h3 className="mb-4 text-lg font-semibold
|
|
730
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
|
|
731
|
+
<h3 className="text-fm-icon-positive! mb-4 text-lg font-semibold">
|
|
712
732
|
Proper ARIA Implementation
|
|
713
733
|
</h3>
|
|
714
734
|
<div className="grid grid-cols-1 gap-6 lg:grid-cols-2">
|
|
715
|
-
<div className="rounded-lg
|
|
716
|
-
<pre className="overflow-x-auto text-sm
|
|
735
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
736
|
+
<pre className="text-fm-icon-info! overflow-x-auto text-sm">
|
|
717
737
|
{`// Media control with proper ARIA
|
|
718
738
|
<button
|
|
719
739
|
aria-label="Fast forward 10 seconds"
|
|
@@ -741,14 +761,14 @@ function MediaPlayer() {
|
|
|
741
761
|
</pre>
|
|
742
762
|
</div>
|
|
743
763
|
<div className="!space-y-4">
|
|
744
|
-
<p className="text-
|
|
764
|
+
<p className="text-fm-secondary! text-sm">
|
|
745
765
|
When using ForwardTenSecondsIcon for interactive
|
|
746
766
|
elements, always provide clear context about what action
|
|
747
767
|
will be performed and the current playback state when
|
|
748
768
|
relevant.
|
|
749
769
|
</p>
|
|
750
|
-
<div className="
|
|
751
|
-
<div className="flex items-center gap-2 text-sm
|
|
770
|
+
<div className="border-fm-icon-positive/20 bg-fm-icon-positive/10 rounded-lg border p-4">
|
|
771
|
+
<div className="text-fm-icon-positive flex items-center gap-2 text-sm">
|
|
752
772
|
<ForwardTenSecondsIcon className="h-4 w-4" />
|
|
753
773
|
<span>
|
|
754
774
|
Screen readers need specific context about the fast
|
|
@@ -763,50 +783,56 @@ function MediaPlayer() {
|
|
|
763
783
|
|
|
764
784
|
{/* Related Icons */}
|
|
765
785
|
<div className="!space-y-8">
|
|
766
|
-
<h2 className="text-center text-3xl font-bold
|
|
786
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
767
787
|
Related Icons
|
|
768
788
|
</h2>
|
|
769
789
|
<div className="grid grid-cols-2 gap-6 md:grid-cols-4">
|
|
770
|
-
<div className="!space-y-3 rounded-lg border
|
|
771
|
-
<div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg
|
|
772
|
-
<span className="
|
|
790
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
|
|
791
|
+
<div className="bg-fm-icon-positive/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
|
|
792
|
+
<span className="text-fm-icon-active! !text-2xl">⏪</span>
|
|
773
793
|
</div>
|
|
774
794
|
<div>
|
|
775
|
-
<div className="font-medium
|
|
795
|
+
<div className="text-fm-icon-active font-medium">
|
|
776
796
|
BackwardTenSecondsIcon
|
|
777
797
|
</div>
|
|
778
|
-
<div className="text-
|
|
798
|
+
<div className="text-fm-tertiary text-xs">
|
|
779
799
|
Skip backward 10s
|
|
780
800
|
</div>
|
|
781
801
|
</div>
|
|
782
802
|
</div>
|
|
783
|
-
<div className="!space-y-3 rounded-lg border
|
|
784
|
-
<div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg
|
|
785
|
-
<span className="
|
|
803
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
|
|
804
|
+
<div className="bg-fm-icon-positive/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
|
|
805
|
+
<span className="text-fm-icon-active! !text-2xl">⏸</span>
|
|
786
806
|
</div>
|
|
787
807
|
<div>
|
|
788
|
-
<div className="font-medium
|
|
789
|
-
|
|
808
|
+
<div className="text-fm-icon-active font-medium">
|
|
809
|
+
PlayIcon
|
|
810
|
+
</div>
|
|
811
|
+
<div className="text-fm-tertiary text-xs">Play/pause</div>
|
|
790
812
|
</div>
|
|
791
813
|
</div>
|
|
792
|
-
<div className="!space-y-3 rounded-lg border
|
|
793
|
-
<div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg
|
|
794
|
-
<span className="
|
|
814
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
|
|
815
|
+
<div className="bg-fm-icon-info/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
|
|
816
|
+
<span className="text-fm-icon-active! !text-2xl">⏩</span>
|
|
795
817
|
</div>
|
|
796
818
|
<div>
|
|
797
|
-
<div className="font-medium
|
|
819
|
+
<div className="text-fm-icon-active font-medium">
|
|
798
820
|
FastForwardIcon
|
|
799
821
|
</div>
|
|
800
|
-
<div className="text-
|
|
822
|
+
<div className="text-fm-tertiary text-xs">
|
|
823
|
+
Fast forward
|
|
824
|
+
</div>
|
|
801
825
|
</div>
|
|
802
826
|
</div>
|
|
803
|
-
<div className="!space-y-3 rounded-lg border
|
|
804
|
-
<div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg
|
|
805
|
-
<span className="
|
|
827
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
|
|
828
|
+
<div className="bg-fm-icon-info/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
|
|
829
|
+
<span className="text-fm-icon-active! !text-2xl">⏭</span>
|
|
806
830
|
</div>
|
|
807
831
|
<div>
|
|
808
|
-
<div className="font-medium
|
|
809
|
-
|
|
832
|
+
<div className="text-fm-icon-active font-medium">
|
|
833
|
+
NextIcon
|
|
834
|
+
</div>
|
|
835
|
+
<div className="text-fm-tertiary text-xs">Next track</div>
|
|
810
836
|
</div>
|
|
811
837
|
</div>
|
|
812
838
|
</div>
|
|
@@ -814,15 +840,15 @@ function MediaPlayer() {
|
|
|
814
840
|
</div>
|
|
815
841
|
|
|
816
842
|
{/* Footer */}
|
|
817
|
-
<div className="border-
|
|
843
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary border-t backdrop-blur-xl">
|
|
818
844
|
<div className="!mx-auto max-w-7xl px-6 py-8">
|
|
819
845
|
<div className="!space-y-4 text-center">
|
|
820
|
-
<p className="
|
|
846
|
+
<p className="text-fm-tertiary!">
|
|
821
847
|
ForwardTenSecondsIcon is part of the Aural UI icon library,
|
|
822
848
|
built with accessibility and media control best practices in
|
|
823
849
|
mind.
|
|
824
850
|
</p>
|
|
825
|
-
<p className="text-
|
|
851
|
+
<p className="text-fm-placeholder! text-sm">
|
|
826
852
|
All icons use Radix UI's AccessibleIcon for screen reader
|
|
827
853
|
compatibility and follow WCAG guidelines.
|
|
828
854
|
</p>
|
|
@@ -875,20 +901,20 @@ const storyParameters = {
|
|
|
875
901
|
backgrounds: {
|
|
876
902
|
default: "dark",
|
|
877
903
|
values: [
|
|
878
|
-
{ name: "dark", value: "
|
|
879
|
-
{ name: "darker", value: "
|
|
904
|
+
{ name: "dark", value: "var(--color-fm-surface-primary)" },
|
|
905
|
+
{ name: "darker", value: "var(--color-fm-neutral-0)" },
|
|
880
906
|
],
|
|
881
907
|
},
|
|
882
908
|
}
|
|
883
909
|
|
|
884
910
|
export const Default: Story = {
|
|
885
911
|
args: {
|
|
886
|
-
className: "h-8 w-8 text-
|
|
912
|
+
className: "h-8 w-8 text-fm-icon-positive",
|
|
887
913
|
withAccessibility: true,
|
|
888
914
|
},
|
|
889
915
|
parameters: storyParameters,
|
|
890
916
|
render: (args) => (
|
|
891
|
-
<div className="flex h-32 min-h-dvh items-center justify-center rounded-lg bg-
|
|
917
|
+
<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">
|
|
892
918
|
<ForwardTenSecondsIcon {...args} />
|
|
893
919
|
</div>
|
|
894
920
|
),
|
|
@@ -905,30 +931,30 @@ export const SizeVariations: Story = {
|
|
|
905
931
|
},
|
|
906
932
|
},
|
|
907
933
|
render: () => (
|
|
908
|
-
<div className="flex h-64 min-h-dvh items-center justify-center gap-8 rounded-lg bg-
|
|
934
|
+
<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">
|
|
909
935
|
<div className="text-center">
|
|
910
|
-
<ForwardTenSecondsIcon className="!mx-auto mb-2 h-3 w-3
|
|
911
|
-
<span className="text-
|
|
936
|
+
<ForwardTenSecondsIcon className="text-fm-icon-positive !mx-auto mb-2 h-3 w-3" />
|
|
937
|
+
<span className="text-fm-tertiary text-xs">12px</span>
|
|
912
938
|
</div>
|
|
913
939
|
<div className="text-center">
|
|
914
|
-
<ForwardTenSecondsIcon className="!mx-auto mb-2 h-4 w-4
|
|
915
|
-
<span className="text-
|
|
940
|
+
<ForwardTenSecondsIcon className="text-fm-icon-positive !mx-auto mb-2 h-4 w-4" />
|
|
941
|
+
<span className="text-fm-tertiary text-xs">16px</span>
|
|
916
942
|
</div>
|
|
917
943
|
<div className="text-center">
|
|
918
|
-
<ForwardTenSecondsIcon className="!mx-auto mb-2 h-5 w-5
|
|
919
|
-
<span className="text-
|
|
944
|
+
<ForwardTenSecondsIcon className="text-fm-icon-positive !mx-auto mb-2 h-5 w-5" />
|
|
945
|
+
<span className="text-fm-tertiary text-xs">20px</span>
|
|
920
946
|
</div>
|
|
921
947
|
<div className="text-center">
|
|
922
|
-
<ForwardTenSecondsIcon className="!mx-auto mb-2 h-6 w-6
|
|
923
|
-
<span className="text-
|
|
948
|
+
<ForwardTenSecondsIcon className="text-fm-icon-positive !mx-auto mb-2 h-6 w-6" />
|
|
949
|
+
<span className="text-fm-tertiary text-xs">24px</span>
|
|
924
950
|
</div>
|
|
925
951
|
<div className="text-center">
|
|
926
|
-
<ForwardTenSecondsIcon className="!mx-auto mb-2 h-8 w-8
|
|
927
|
-
<span className="text-
|
|
952
|
+
<ForwardTenSecondsIcon className="text-fm-icon-positive !mx-auto mb-2 h-8 w-8" />
|
|
953
|
+
<span className="text-fm-tertiary text-xs">32px</span>
|
|
928
954
|
</div>
|
|
929
955
|
<div className="text-center">
|
|
930
|
-
<ForwardTenSecondsIcon className="!mx-auto mb-2 h-12 w-12
|
|
931
|
-
<span className="text-
|
|
956
|
+
<ForwardTenSecondsIcon className="text-fm-icon-positive !mx-auto mb-2 h-12 w-12" />
|
|
957
|
+
<span className="text-fm-tertiary text-xs">48px</span>
|
|
932
958
|
</div>
|
|
933
959
|
</div>
|
|
934
960
|
),
|
|
@@ -945,34 +971,38 @@ export const ColorVariations: Story = {
|
|
|
945
971
|
},
|
|
946
972
|
},
|
|
947
973
|
render: () => (
|
|
948
|
-
<div className="grid min-h-dvh grid-cols-2 items-center justify-center gap-6 rounded-lg bg-
|
|
974
|
+
<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">
|
|
949
975
|
<div className="text-center">
|
|
950
|
-
<div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border
|
|
951
|
-
<ForwardTenSecondsIcon className="h-8 w-8
|
|
976
|
+
<div className="border-fm-icon-positive/30 bg-fm-icon-positive/20 !mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border">
|
|
977
|
+
<ForwardTenSecondsIcon className="text-fm-icon-positive h-8 w-8" />
|
|
978
|
+
</div>
|
|
979
|
+
<div className="text-fm-icon-active text-sm font-medium">Primary</div>
|
|
980
|
+
<div className="text-fm-icon-positive text-xs">
|
|
981
|
+
text-fm-icon-positive
|
|
952
982
|
</div>
|
|
953
|
-
<div className="text-sm font-medium text-white">Primary</div>
|
|
954
|
-
<div className="text-xs text-emerald-400">text-emerald-400</div>
|
|
955
983
|
</div>
|
|
956
984
|
<div className="text-center">
|
|
957
|
-
<div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border
|
|
958
|
-
<ForwardTenSecondsIcon className="h-8 w-8
|
|
985
|
+
<div className="border-fm-icon-positive/30 bg-fm-icon-positive/20 !mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border">
|
|
986
|
+
<ForwardTenSecondsIcon className="text-fm-icon-positive h-8 w-8" />
|
|
987
|
+
</div>
|
|
988
|
+
<div className="text-fm-icon-active text-sm font-medium">Secondary</div>
|
|
989
|
+
<div className="text-fm-icon-positive text-xs">
|
|
990
|
+
text-fm-icon-positive
|
|
959
991
|
</div>
|
|
960
|
-
<div className="text-sm font-medium text-white">Secondary</div>
|
|
961
|
-
<div className="text-xs text-green-400">text-green-400</div>
|
|
962
992
|
</div>
|
|
963
993
|
<div className="text-center">
|
|
964
|
-
<div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border
|
|
965
|
-
<ForwardTenSecondsIcon className="h-8 w-8
|
|
994
|
+
<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">
|
|
995
|
+
<ForwardTenSecondsIcon className="text-fm-icon-info h-8 w-8" />
|
|
966
996
|
</div>
|
|
967
|
-
<div className="text-sm font-medium
|
|
968
|
-
<div className="text-
|
|
997
|
+
<div className="text-fm-icon-active text-sm font-medium">Accent</div>
|
|
998
|
+
<div className="text-fm-icon-info text-xs">text-fm-icon-info</div>
|
|
969
999
|
</div>
|
|
970
1000
|
<div className="text-center">
|
|
971
|
-
<div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border
|
|
972
|
-
<ForwardTenSecondsIcon className="h-8 w-8
|
|
1001
|
+
<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">
|
|
1002
|
+
<ForwardTenSecondsIcon className="text-fm-placeholder h-8 w-8" />
|
|
973
1003
|
</div>
|
|
974
|
-
<div className="text-sm font-medium
|
|
975
|
-
<div className="text-
|
|
1004
|
+
<div className="text-fm-icon-active text-sm font-medium">Disabled</div>
|
|
1005
|
+
<div className="text-fm-placeholder text-xs">text-fm-placeholder</div>
|
|
976
1006
|
</div>
|
|
977
1007
|
</div>
|
|
978
1008
|
),
|
|
@@ -989,23 +1019,27 @@ export const UsageExamples: Story = {
|
|
|
989
1019
|
},
|
|
990
1020
|
},
|
|
991
1021
|
render: () => (
|
|
992
|
-
<div className="min-h-dvh !space-y-8 rounded-lg bg-
|
|
1022
|
+
<div className="from-fm-surface-primary to-fm-surface-secondary min-h-dvh !space-y-8 rounded-lg bg-linear-to-br p-8">
|
|
993
1023
|
{/* Podcast Player */}
|
|
994
1024
|
<div className="!space-y-2">
|
|
995
|
-
<h3 className="text-sm font-medium
|
|
996
|
-
|
|
1025
|
+
<h3 className="text-fm-icon-active text-sm font-medium">
|
|
1026
|
+
Podcast Player
|
|
1027
|
+
</h3>
|
|
1028
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
|
|
997
1029
|
<div className="mb-4 flex items-center justify-between">
|
|
998
|
-
<h3 className="text-lg font-semibold
|
|
1030
|
+
<h3 className="text-fm-icon-active text-lg font-semibold">
|
|
1031
|
+
Now Playing
|
|
1032
|
+
</h3>
|
|
999
1033
|
</div>
|
|
1000
1034
|
<div className="flex items-center justify-center gap-4">
|
|
1001
|
-
<button className="rounded-lg p-2 transition-colors
|
|
1002
|
-
<div className="h-6 w-6 rounded-full border
|
|
1035
|
+
<button className="hover:bg-fm-surface-secondary rounded-lg p-2 transition-colors">
|
|
1036
|
+
<div className="border-fm-divider-contrast bg-fm-divider-primary h-6 w-6 rounded-full border" />
|
|
1003
1037
|
</button>
|
|
1004
|
-
<button className="rounded-lg p-3 transition-colors
|
|
1005
|
-
<div className="h-8 w-8 rounded-full border-2
|
|
1038
|
+
<button className="hover:bg-fm-surface-secondary rounded-lg p-3 transition-colors">
|
|
1039
|
+
<div className="border-fm-divider-contrast bg-fm-divider-primary h-8 w-8 rounded-full border-2" />
|
|
1006
1040
|
</button>
|
|
1007
|
-
<button className="rounded-lg p-2 transition-colors
|
|
1008
|
-
<ForwardTenSecondsIcon className="h-6 w-6
|
|
1041
|
+
<button className="hover:bg-fm-surface-secondary rounded-lg p-2 transition-colors">
|
|
1042
|
+
<ForwardTenSecondsIcon className="text-fm-icon-positive h-6 w-6" />
|
|
1009
1043
|
</button>
|
|
1010
1044
|
</div>
|
|
1011
1045
|
</div>
|
|
@@ -1013,21 +1047,21 @@ export const UsageExamples: Story = {
|
|
|
1013
1047
|
|
|
1014
1048
|
{/* Video Player */}
|
|
1015
1049
|
<div className="!space-y-2">
|
|
1016
|
-
<h3 className="text-sm font-medium
|
|
1050
|
+
<h3 className="text-fm-icon-active text-sm font-medium">
|
|
1017
1051
|
Video Player Controls
|
|
1018
1052
|
</h3>
|
|
1019
|
-
<div className="rounded-lg border
|
|
1020
|
-
<div className="mb-4 h-32 rounded bg-
|
|
1053
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-4">
|
|
1054
|
+
<div className="from-fm-icon-positive/20 to-fm-icon-positive/20 mb-4 h-32 rounded bg-linear-to-r" />
|
|
1021
1055
|
<div className="flex items-center justify-between">
|
|
1022
1056
|
<div className="flex items-center gap-2">
|
|
1023
|
-
<span className="text-
|
|
1024
|
-
<button className="rounded p-1.5
|
|
1025
|
-
<ForwardTenSecondsIcon className="h-5 w-5
|
|
1057
|
+
<span className="text-fm-tertiary text-sm">8:15 / 24:30</span>
|
|
1058
|
+
<button className="hover:bg-fm-surface-secondary rounded p-1.5">
|
|
1059
|
+
<ForwardTenSecondsIcon className="text-fm-icon-positive h-5 w-5" />
|
|
1026
1060
|
</button>
|
|
1027
1061
|
</div>
|
|
1028
1062
|
<div className="flex items-center gap-2">
|
|
1029
|
-
<button className="rounded p-1.5
|
|
1030
|
-
<div className="h-5 w-5 rounded-full border
|
|
1063
|
+
<button className="hover:bg-fm-surface-secondary rounded p-1.5">
|
|
1064
|
+
<div className="border-fm-divider-contrast bg-fm-divider-primary h-5 w-5 rounded-full border" />
|
|
1031
1065
|
</button>
|
|
1032
1066
|
</div>
|
|
1033
1067
|
</div>
|
|
@@ -1050,11 +1084,11 @@ export const Playground: Story = {
|
|
|
1050
1084
|
args: {
|
|
1051
1085
|
width: 44,
|
|
1052
1086
|
height: 44,
|
|
1053
|
-
className: "text-
|
|
1087
|
+
className: "text-fm-icon-positive",
|
|
1054
1088
|
},
|
|
1055
1089
|
render: (args) => (
|
|
1056
|
-
<div className="flex h-64 min-h-dvh items-center justify-center rounded-lg bg-
|
|
1057
|
-
<div className="rounded-lg border
|
|
1090
|
+
<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">
|
|
1091
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-8">
|
|
1058
1092
|
<ForwardTenSecondsIcon {...args} />
|
|
1059
1093
|
</div>
|
|
1060
1094
|
</div>
|