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 ExpandIcon> = {
|
|
|
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,57 +40,59 @@ const meta: Meta<typeof ExpandIcon> = {
|
|
|
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-info/10 absolute inset-0 bg-linear-to-r via-transparent" />
|
|
87
87
|
<div className="relative !mx-auto max-w-7xl px-6 py-16">
|
|
88
88
|
<div className="!space-y-6 text-center">
|
|
89
|
-
<div className="!mx-auto flex h-24 w-24 items-center justify-center rounded-2xl border
|
|
90
|
-
<ExpandIcon className="h-12 w-12
|
|
89
|
+
<div className="border-fm-icon-positive/30 from-fm-icon-positive/20 to-fm-icon-info/20 !mx-auto flex h-24 w-24 items-center justify-center rounded-2xl border bg-linear-to-br">
|
|
90
|
+
<ExpandIcon className="text-fm-icon-positive h-12 w-12" />
|
|
91
91
|
</div>
|
|
92
|
-
<h1 className="text-5xl font-bold
|
|
93
|
-
|
|
92
|
+
<h1 className="text-fm-icon-active! text-5xl font-bold">
|
|
93
|
+
ExpandIcon
|
|
94
|
+
</h1>
|
|
95
|
+
<p className="text-fm-secondary! !mx-auto max-w-3xl text-xl leading-relaxed">
|
|
94
96
|
A fullscreen and expand control icon for maximizing
|
|
95
97
|
interface elements. Features diagonal arrows pointing
|
|
96
98
|
outward, essential for media players, modal dialogs, image
|
|
@@ -101,28 +103,28 @@ const meta: Meta<typeof ExpandIcon> = {
|
|
|
101
103
|
{/* Stats */}
|
|
102
104
|
<div className="flex items-center justify-center gap-8 pt-8">
|
|
103
105
|
<div className="text-center">
|
|
104
|
-
<div className="text-3xl font-bold
|
|
106
|
+
<div className="text-fm-icon-positive text-3xl font-bold">
|
|
105
107
|
Fullscreen
|
|
106
108
|
</div>
|
|
107
|
-
<div className="text-
|
|
109
|
+
<div className="text-fm-tertiary text-sm">
|
|
108
110
|
Maximize content
|
|
109
111
|
</div>
|
|
110
112
|
</div>
|
|
111
|
-
<div className="h-8 w-px
|
|
113
|
+
<div className="bg-fm-divider-primary h-8 w-px" />
|
|
112
114
|
<div className="text-center">
|
|
113
|
-
<div className="text-3xl font-bold
|
|
115
|
+
<div className="text-fm-icon-info text-3xl font-bold">
|
|
114
116
|
Accessible
|
|
115
117
|
</div>
|
|
116
|
-
<div className="text-
|
|
118
|
+
<div className="text-fm-tertiary text-sm">
|
|
117
119
|
Screen reader friendly
|
|
118
120
|
</div>
|
|
119
121
|
</div>
|
|
120
|
-
<div className="h-8 w-px
|
|
122
|
+
<div className="bg-fm-divider-primary h-8 w-px" />
|
|
121
123
|
<div className="text-center">
|
|
122
|
-
<div className="text-3xl font-bold
|
|
124
|
+
<div className="text-fm-icon-positive text-3xl font-bold">
|
|
123
125
|
Universal
|
|
124
126
|
</div>
|
|
125
|
-
<div className="text-
|
|
127
|
+
<div className="text-fm-tertiary text-sm">
|
|
126
128
|
Standard expand symbol
|
|
127
129
|
</div>
|
|
128
130
|
</div>
|
|
@@ -135,16 +137,16 @@ const meta: Meta<typeof ExpandIcon> = {
|
|
|
135
137
|
<div className="!mx-auto max-w-7xl !space-y-16 px-6 py-12">
|
|
136
138
|
{/* Quick Usage */}
|
|
137
139
|
<div className="!space-y-8">
|
|
138
|
-
<h2 className="text-center text-3xl font-bold
|
|
140
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
139
141
|
Quick Start
|
|
140
142
|
</h2>
|
|
141
143
|
<div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
|
|
142
144
|
<div className="!space-y-4">
|
|
143
|
-
<h3 className="text-xl font-semibold
|
|
145
|
+
<h3 className="text-fm-icon-positive! text-xl font-semibold">
|
|
144
146
|
Basic Usage
|
|
145
147
|
</h3>
|
|
146
|
-
<div className="rounded-lg
|
|
147
|
-
<pre className="overflow-x-auto text-sm
|
|
148
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
149
|
+
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
148
150
|
{`import { ExpandIcon } from "@icons/expand-icon"
|
|
149
151
|
|
|
150
152
|
function VideoPlayer() {
|
|
@@ -163,12 +165,12 @@ function VideoPlayer() {
|
|
|
163
165
|
</div>
|
|
164
166
|
|
|
165
167
|
<div className="!space-y-4">
|
|
166
|
-
<h3 className="text-xl font-semibold
|
|
168
|
+
<h3 className="text-fm-icon-positive! text-xl font-semibold">
|
|
167
169
|
Live Preview
|
|
168
170
|
</h3>
|
|
169
|
-
<div className="flex h-32 items-center justify-center rounded-lg border
|
|
170
|
-
<button className="
|
|
171
|
-
<ExpandIcon className="h-6 w-6
|
|
171
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary flex h-32 items-center justify-center rounded-lg border">
|
|
172
|
+
<button className="border-fm-icon-positive/20 bg-fm-icon-positive/10 hover:bg-fm-icon-positive/20 rounded-lg border p-3 transition-colors">
|
|
173
|
+
<ExpandIcon className="text-fm-icon-positive h-6 w-6" />
|
|
172
174
|
</button>
|
|
173
175
|
</div>
|
|
174
176
|
</div>
|
|
@@ -177,122 +179,130 @@ function VideoPlayer() {
|
|
|
177
179
|
|
|
178
180
|
{/* Props Documentation */}
|
|
179
181
|
<div className="!space-y-8">
|
|
180
|
-
<h2 className="text-center text-3xl font-bold
|
|
182
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
181
183
|
Props & Configuration
|
|
182
184
|
</h2>
|
|
183
185
|
|
|
184
|
-
<div className="overflow-hidden rounded-lg border
|
|
185
|
-
<div className="bg-
|
|
186
|
-
<h3 className="text-xl font-semibold
|
|
186
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary overflow-hidden rounded-lg border">
|
|
187
|
+
<div className="bg-fm-surface-secondary p-4">
|
|
188
|
+
<h3 className="text-fm-icon-active! text-xl font-semibold">
|
|
189
|
+
Props
|
|
190
|
+
</h3>
|
|
187
191
|
</div>
|
|
188
192
|
<table className="!my-0 w-full">
|
|
189
|
-
<thead className="bg-
|
|
190
|
-
<tr className="border-
|
|
191
|
-
<th className="px-6 py-4 text-left text-sm font-semibold
|
|
193
|
+
<thead className="bg-fm-surface-secondary">
|
|
194
|
+
<tr className="border-fm-divider-secondary border-b">
|
|
195
|
+
<th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
|
|
192
196
|
Prop
|
|
193
197
|
</th>
|
|
194
|
-
<th className="px-6 py-4 text-left text-sm font-semibold
|
|
198
|
+
<th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
|
|
195
199
|
Type
|
|
196
200
|
</th>
|
|
197
|
-
<th className="px-6 py-4 text-left text-sm font-semibold
|
|
201
|
+
<th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
|
|
198
202
|
Default
|
|
199
203
|
</th>
|
|
200
|
-
<th className="px-6 py-4 text-left text-sm font-semibold
|
|
204
|
+
<th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
|
|
201
205
|
Description
|
|
202
206
|
</th>
|
|
203
207
|
</tr>
|
|
204
208
|
</thead>
|
|
205
209
|
<tbody>
|
|
206
210
|
{" "}
|
|
207
|
-
<tr className="
|
|
208
|
-
<td className="px-6 py-4 font-mono text-sm
|
|
211
|
+
<tr className="bg-fm-surface-secondary!">
|
|
212
|
+
<td className="text-fm-icon-info! px-6 py-4 font-mono text-sm">
|
|
209
213
|
withAccessibility
|
|
210
214
|
</td>
|
|
211
|
-
<td className="px-6 py-4 text-sm
|
|
215
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
212
216
|
boolean
|
|
213
217
|
</td>
|
|
214
|
-
<td className="px-6 py-4 text-sm
|
|
218
|
+
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
215
219
|
true
|
|
216
220
|
</td>
|
|
217
|
-
<td className="px-6 py-4 text-sm
|
|
221
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
218
222
|
Whether to wrap the icon with accessibility feature
|
|
219
223
|
</td>
|
|
220
224
|
</tr>
|
|
221
|
-
<tr className="border-
|
|
222
|
-
<td className="px-6 py-4 font-mono text-sm
|
|
225
|
+
<tr className="border-fm-divider-tertiary bg-fm-surface-secondary! border-b">
|
|
226
|
+
<td className="text-fm-icon-positive! px-6 py-4 font-mono text-sm">
|
|
223
227
|
height
|
|
224
228
|
</td>
|
|
225
|
-
<td className="px-6 py-4 text-sm
|
|
229
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
226
230
|
number | string
|
|
227
231
|
</td>
|
|
228
|
-
<td className="px-6 py-4 text-sm
|
|
229
|
-
|
|
232
|
+
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
233
|
+
24
|
|
234
|
+
</td>
|
|
235
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
230
236
|
Height of the icon in pixels
|
|
231
237
|
</td>
|
|
232
238
|
</tr>
|
|
233
|
-
<tr className="border-
|
|
234
|
-
<td className="px-6 py-4 font-mono text-sm
|
|
239
|
+
<tr className="border-fm-divider-tertiary border-b">
|
|
240
|
+
<td className="text-fm-icon-positive! px-6 py-4 font-mono text-sm">
|
|
235
241
|
stroke
|
|
236
242
|
</td>
|
|
237
|
-
<td className="px-6 py-4 text-sm
|
|
243
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
238
244
|
string
|
|
239
245
|
</td>
|
|
240
|
-
<td className="px-6 py-4 text-sm
|
|
246
|
+
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
241
247
|
currentColor
|
|
242
248
|
</td>
|
|
243
|
-
<td className="px-6 py-4 text-sm
|
|
249
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
244
250
|
Stroke color of the icon
|
|
245
251
|
</td>
|
|
246
252
|
</tr>
|
|
247
|
-
<tr className="border-
|
|
248
|
-
<td className="px-6 py-4 font-mono text-sm
|
|
253
|
+
<tr className="border-fm-divider-tertiary bg-fm-surface-secondary! border-b">
|
|
254
|
+
<td className="text-fm-icon-positive! px-6 py-4 font-mono text-sm">
|
|
249
255
|
strokeWidth
|
|
250
256
|
</td>
|
|
251
|
-
<td className="px-6 py-4 text-sm
|
|
257
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
252
258
|
string | number
|
|
253
259
|
</td>
|
|
254
|
-
<td className="px-6 py-4 text-sm
|
|
260
|
+
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
255
261
|
1.5
|
|
256
262
|
</td>
|
|
257
|
-
<td className="px-6 py-4 text-sm
|
|
263
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
258
264
|
Width of the stroke
|
|
259
265
|
</td>
|
|
260
266
|
</tr>
|
|
261
|
-
<tr className="border-
|
|
262
|
-
<td className="px-6 py-4 font-mono text-sm
|
|
267
|
+
<tr className="border-fm-divider-tertiary border-b">
|
|
268
|
+
<td className="text-fm-icon-positive! px-6 py-4 font-mono text-sm">
|
|
263
269
|
strokeLinecap
|
|
264
270
|
</td>
|
|
265
|
-
<td className="px-6 py-4 text-sm
|
|
271
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
266
272
|
string
|
|
267
273
|
</td>
|
|
268
|
-
<td className="px-6 py-4 text-sm
|
|
274
|
+
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
269
275
|
square
|
|
270
276
|
</td>
|
|
271
|
-
<td className="px-6 py-4 text-sm
|
|
277
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
272
278
|
Style of line endings (square for crisp corners)
|
|
273
279
|
</td>
|
|
274
280
|
</tr>
|
|
275
|
-
<tr className="border-
|
|
276
|
-
<td className="px-6 py-4 font-mono text-sm
|
|
281
|
+
<tr className="border-fm-divider-tertiary bg-fm-surface-secondary! border-b">
|
|
282
|
+
<td className="text-fm-icon-positive! px-6 py-4 font-mono text-sm">
|
|
277
283
|
className
|
|
278
284
|
</td>
|
|
279
|
-
<td className="px-6 py-4 text-sm
|
|
285
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
280
286
|
string
|
|
281
287
|
</td>
|
|
282
|
-
<td className="px-6 py-4 text-sm
|
|
283
|
-
|
|
288
|
+
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
289
|
+
-
|
|
290
|
+
</td>
|
|
291
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
284
292
|
CSS classes for styling (use for overrides)
|
|
285
293
|
</td>
|
|
286
294
|
</tr>
|
|
287
|
-
<tr className="
|
|
288
|
-
<td className="px-6 py-4 font-mono text-sm
|
|
295
|
+
<tr className="bg-fm-surface-secondary!">
|
|
296
|
+
<td className="text-fm-icon-positive! px-6 py-4 font-mono text-sm">
|
|
289
297
|
...svgProps
|
|
290
298
|
</td>
|
|
291
|
-
<td className="px-6 py-4 text-sm
|
|
299
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
292
300
|
SVGProps
|
|
293
301
|
</td>
|
|
294
|
-
<td className="px-6 py-4 text-sm
|
|
295
|
-
|
|
302
|
+
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
303
|
+
-
|
|
304
|
+
</td>
|
|
305
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
296
306
|
All standard SVG element props
|
|
297
307
|
</td>
|
|
298
308
|
</tr>
|
|
@@ -303,50 +313,62 @@ function VideoPlayer() {
|
|
|
303
313
|
|
|
304
314
|
{/* Size Variations */}
|
|
305
315
|
<div className="!space-y-8">
|
|
306
|
-
<h2 className="text-center text-3xl font-bold
|
|
316
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
307
317
|
Size Variations
|
|
308
318
|
</h2>
|
|
309
|
-
<div className="rounded-lg border
|
|
319
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-8">
|
|
310
320
|
<div className="!space-y-6">
|
|
311
321
|
<div className="grid grid-cols-1 gap-8 md:grid-cols-2">
|
|
312
322
|
<div className="!space-y-4">
|
|
313
|
-
<h3 className="text-lg font-semibold
|
|
323
|
+
<h3 className="text-fm-icon-positive! text-lg font-semibold">
|
|
314
324
|
Standard Sizes
|
|
315
325
|
</h3>
|
|
316
|
-
<div className="flex items-end gap-6 rounded-lg
|
|
326
|
+
<div className="bg-fm-surface-secondary flex items-end gap-6 rounded-lg p-6">
|
|
317
327
|
<div className="text-center">
|
|
318
|
-
<ExpandIcon className="!mx-auto mb-2 h-3 w-3
|
|
319
|
-
<span className="text-
|
|
328
|
+
<ExpandIcon className="text-fm-icon-positive !mx-auto mb-2 h-3 w-3" />
|
|
329
|
+
<span className="text-fm-tertiary text-xs">
|
|
330
|
+
12px
|
|
331
|
+
</span>
|
|
320
332
|
</div>
|
|
321
333
|
<div className="text-center">
|
|
322
|
-
<ExpandIcon className="!mx-auto mb-2 h-4 w-4
|
|
323
|
-
<span className="text-
|
|
334
|
+
<ExpandIcon className="text-fm-icon-positive !mx-auto mb-2 h-4 w-4" />
|
|
335
|
+
<span className="text-fm-tertiary text-xs">
|
|
336
|
+
16px
|
|
337
|
+
</span>
|
|
324
338
|
</div>
|
|
325
339
|
<div className="text-center">
|
|
326
|
-
<ExpandIcon className="!mx-auto mb-2 h-5 w-5
|
|
327
|
-
<span className="text-
|
|
340
|
+
<ExpandIcon className="text-fm-icon-positive !mx-auto mb-2 h-5 w-5" />
|
|
341
|
+
<span className="text-fm-tertiary text-xs">
|
|
342
|
+
20px
|
|
343
|
+
</span>
|
|
328
344
|
</div>
|
|
329
345
|
<div className="text-center">
|
|
330
|
-
<ExpandIcon className="!mx-auto mb-2 h-6 w-6
|
|
331
|
-
<span className="text-
|
|
346
|
+
<ExpandIcon className="text-fm-icon-positive !mx-auto mb-2 h-6 w-6" />
|
|
347
|
+
<span className="text-fm-tertiary text-xs">
|
|
348
|
+
24px
|
|
349
|
+
</span>
|
|
332
350
|
</div>
|
|
333
351
|
<div className="text-center">
|
|
334
|
-
<ExpandIcon className="!mx-auto mb-2 h-8 w-8
|
|
335
|
-
<span className="text-
|
|
352
|
+
<ExpandIcon className="text-fm-icon-positive !mx-auto mb-2 h-8 w-8" />
|
|
353
|
+
<span className="text-fm-tertiary text-xs">
|
|
354
|
+
32px
|
|
355
|
+
</span>
|
|
336
356
|
</div>
|
|
337
357
|
<div className="text-center">
|
|
338
|
-
<ExpandIcon className="!mx-auto mb-2 h-12 w-12
|
|
339
|
-
<span className="text-
|
|
358
|
+
<ExpandIcon className="text-fm-icon-positive !mx-auto mb-2 h-12 w-12" />
|
|
359
|
+
<span className="text-fm-tertiary text-xs">
|
|
360
|
+
48px
|
|
361
|
+
</span>
|
|
340
362
|
</div>
|
|
341
363
|
</div>
|
|
342
364
|
</div>
|
|
343
365
|
|
|
344
366
|
<div className="!space-y-4">
|
|
345
|
-
<h3 className="text-lg font-semibold
|
|
367
|
+
<h3 className="text-fm-icon-positive! text-lg font-semibold">
|
|
346
368
|
Code Example
|
|
347
369
|
</h3>
|
|
348
|
-
<div className="rounded-lg
|
|
349
|
-
<pre className="overflow-x-auto text-sm
|
|
370
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
371
|
+
<pre className="text-fm-icon-info! overflow-x-auto text-sm">
|
|
350
372
|
{`// Small (16px) - compact controls
|
|
351
373
|
<ExpandIcon className="h-4 w-4" />
|
|
352
374
|
|
|
@@ -368,56 +390,56 @@ function VideoPlayer() {
|
|
|
368
390
|
|
|
369
391
|
{/* Color Variations */}
|
|
370
392
|
<div className="!space-y-8">
|
|
371
|
-
<h2 className="text-center text-3xl font-bold
|
|
393
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
372
394
|
Color Variations
|
|
373
395
|
</h2>
|
|
374
396
|
<div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
|
|
375
397
|
<div className="!space-y-4">
|
|
376
|
-
<h3 className="text-lg font-semibold
|
|
398
|
+
<h3 className="text-fm-icon-positive! text-lg font-semibold">
|
|
377
399
|
Semantic Colors
|
|
378
400
|
</h3>
|
|
379
|
-
<div className="!space-y-4 rounded-lg border
|
|
401
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
|
|
380
402
|
<div className="flex items-center gap-4">
|
|
381
|
-
<ExpandIcon className="h-6 w-6
|
|
403
|
+
<ExpandIcon className="text-fm-icon-positive h-6 w-6" />
|
|
382
404
|
<div>
|
|
383
|
-
<div className="text-sm font-medium
|
|
405
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
384
406
|
Expand/Fullscreen
|
|
385
407
|
</div>
|
|
386
|
-
<div className="text-
|
|
387
|
-
text-
|
|
408
|
+
<div className="text-fm-tertiary text-xs">
|
|
409
|
+
text-fm-icon-positive
|
|
388
410
|
</div>
|
|
389
411
|
</div>
|
|
390
412
|
</div>
|
|
391
413
|
<div className="flex items-center gap-4">
|
|
392
|
-
<ExpandIcon className="h-6 w-6
|
|
414
|
+
<ExpandIcon className="text-fm-icon-info h-6 w-6" />
|
|
393
415
|
<div>
|
|
394
|
-
<div className="text-sm font-medium
|
|
416
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
395
417
|
Maximize View
|
|
396
418
|
</div>
|
|
397
|
-
<div className="text-
|
|
398
|
-
text-
|
|
419
|
+
<div className="text-fm-tertiary text-xs">
|
|
420
|
+
text-fm-icon-info
|
|
399
421
|
</div>
|
|
400
422
|
</div>
|
|
401
423
|
</div>
|
|
402
424
|
<div className="flex items-center gap-4">
|
|
403
|
-
<ExpandIcon className="h-6 w-6
|
|
425
|
+
<ExpandIcon className="text-fm-icon-positive h-6 w-6" />
|
|
404
426
|
<div>
|
|
405
|
-
<div className="text-sm font-medium
|
|
427
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
406
428
|
Active/Available
|
|
407
429
|
</div>
|
|
408
|
-
<div className="text-
|
|
409
|
-
text-
|
|
430
|
+
<div className="text-fm-tertiary text-xs">
|
|
431
|
+
text-fm-icon-positive
|
|
410
432
|
</div>
|
|
411
433
|
</div>
|
|
412
434
|
</div>
|
|
413
435
|
<div className="flex items-center gap-4">
|
|
414
|
-
<ExpandIcon className="h-6 w-6
|
|
436
|
+
<ExpandIcon className="text-fm-icon-info h-6 w-6" />
|
|
415
437
|
<div>
|
|
416
|
-
<div className="text-sm font-medium
|
|
438
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
417
439
|
Focus Mode
|
|
418
440
|
</div>
|
|
419
|
-
<div className="text-
|
|
420
|
-
text-
|
|
441
|
+
<div className="text-fm-tertiary text-xs">
|
|
442
|
+
text-fm-icon-info
|
|
421
443
|
</div>
|
|
422
444
|
</div>
|
|
423
445
|
</div>
|
|
@@ -425,11 +447,11 @@ function VideoPlayer() {
|
|
|
425
447
|
</div>
|
|
426
448
|
|
|
427
449
|
<div className="!space-y-4">
|
|
428
|
-
<h3 className="text-lg font-semibold
|
|
450
|
+
<h3 className="text-fm-icon-positive! text-lg font-semibold">
|
|
429
451
|
Custom Colors
|
|
430
452
|
</h3>
|
|
431
|
-
<div className="rounded-lg
|
|
432
|
-
<pre className="overflow-x-auto text-sm
|
|
453
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
454
|
+
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
433
455
|
{`// Using Tailwind classes
|
|
434
456
|
<ExpandIcon className="h-6 w-6 text-emerald-400" />
|
|
435
457
|
<ExpandIcon className="h-6 w-6 text-teal-500" />
|
|
@@ -454,56 +476,58 @@ function VideoPlayer() {
|
|
|
454
476
|
|
|
455
477
|
{/* Usage Examples */}
|
|
456
478
|
<div className="!space-y-8">
|
|
457
|
-
<h2 className="text-center text-3xl font-bold
|
|
479
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
458
480
|
Usage Examples
|
|
459
481
|
</h2>
|
|
460
482
|
|
|
461
483
|
<div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
|
|
462
484
|
{/* Video Player */}
|
|
463
485
|
<div className="!space-y-4">
|
|
464
|
-
<h3 className="text-lg font-semibold
|
|
486
|
+
<h3 className="text-fm-icon-positive! text-lg font-semibold">
|
|
465
487
|
Video Player
|
|
466
488
|
</h3>
|
|
467
489
|
<div className="!space-y-4">
|
|
468
|
-
<div className="rounded-lg border
|
|
469
|
-
<div className="relative mb-4 aspect-video overflow-hidden rounded-lg
|
|
470
|
-
<div className="absolute inset-0 flex items-center justify-center bg-
|
|
471
|
-
<div className="flex h-16 w-16 items-center justify-center rounded-full
|
|
490
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
|
|
491
|
+
<div className="bg-fm-surface-secondary relative mb-4 aspect-video overflow-hidden rounded-lg">
|
|
492
|
+
<div className="from-fm-surface-secondary to-fm-surface-primary absolute inset-0 flex items-center justify-center bg-linear-to-br">
|
|
493
|
+
<div className="bg-fm-divider-primary flex h-16 w-16 items-center justify-center rounded-full">
|
|
472
494
|
<div className="ml-1 h-0 w-0 border-y-[8px] border-l-[12px] border-y-transparent border-l-white" />
|
|
473
495
|
</div>
|
|
474
496
|
</div>
|
|
475
|
-
<div className="absolute right-0 bottom-0 left-0 bg-
|
|
497
|
+
<div className="from-fm-surface-primary/80 absolute right-0 bottom-0 left-0 bg-linear-to-t to-transparent p-4">
|
|
476
498
|
<div className="flex items-center justify-between">
|
|
477
499
|
<div className="flex items-center gap-3">
|
|
478
|
-
<button className="rounded p-2 transition-colors
|
|
500
|
+
<button className="hover:bg-fm-divider-primary rounded p-2 transition-colors">
|
|
479
501
|
<div className="h-0 w-0 border-y-[6px] border-l-[8px] border-y-transparent border-l-white" />
|
|
480
502
|
</button>
|
|
481
|
-
<span className="text-
|
|
503
|
+
<span className="text-fm-icon-active text-sm">
|
|
482
504
|
0:42 / 2:18
|
|
483
505
|
</span>
|
|
484
506
|
</div>
|
|
485
507
|
<div className="flex items-center gap-2">
|
|
486
|
-
<button className="rounded p-2 transition-colors
|
|
487
|
-
<span className="text-
|
|
508
|
+
<button className="hover:bg-fm-divider-primary rounded p-2 transition-colors">
|
|
509
|
+
<span className="text-fm-icon-active text-xs">
|
|
510
|
+
HD
|
|
511
|
+
</span>
|
|
488
512
|
</button>
|
|
489
|
-
<button className="
|
|
490
|
-
<ExpandIcon className="h-4 w-4
|
|
513
|
+
<button className="border-fm-icon-positive/30 bg-fm-icon-positive/10 hover:bg-fm-icon-positive/20 rounded border p-2 transition-colors">
|
|
514
|
+
<ExpandIcon className="text-fm-icon-positive h-4 w-4" />
|
|
491
515
|
</button>
|
|
492
516
|
</div>
|
|
493
517
|
</div>
|
|
494
518
|
</div>
|
|
495
519
|
</div>
|
|
496
520
|
<div className="text-center">
|
|
497
|
-
<div className="text-sm font-medium
|
|
521
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
498
522
|
"Exploring the Universe"
|
|
499
523
|
</div>
|
|
500
|
-
<div className="text-
|
|
524
|
+
<div className="text-fm-tertiary text-xs">
|
|
501
525
|
Click expand to enter fullscreen mode
|
|
502
526
|
</div>
|
|
503
527
|
</div>
|
|
504
528
|
</div>
|
|
505
|
-
<div className="rounded-lg
|
|
506
|
-
<pre className="overflow-x-auto text-sm
|
|
529
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
530
|
+
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
507
531
|
{`// Video player with fullscreen control
|
|
508
532
|
<div className="video-player">
|
|
509
533
|
<video ref={videoRef} className="video-element" />
|
|
@@ -531,41 +555,41 @@ function VideoPlayer() {
|
|
|
531
555
|
|
|
532
556
|
{/* Image Gallery */}
|
|
533
557
|
<div className="!space-y-4">
|
|
534
|
-
<h3 className="text-lg font-semibold
|
|
558
|
+
<h3 className="text-fm-icon-positive! text-lg font-semibold">
|
|
535
559
|
Image Gallery
|
|
536
560
|
</h3>
|
|
537
561
|
<div className="!space-y-4">
|
|
538
|
-
<div className="rounded-lg border
|
|
562
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
|
|
539
563
|
<div className="mb-4 grid grid-cols-2 gap-3">
|
|
540
564
|
{[1, 2, 3, 4].map((img) => (
|
|
541
565
|
<div
|
|
542
566
|
key={img}
|
|
543
|
-
className="group relative aspect-square overflow-hidden rounded-lg bg-
|
|
567
|
+
className="group from-fm-surface-secondary to-fm-surface-secondary relative aspect-square overflow-hidden rounded-lg bg-linear-to-br"
|
|
544
568
|
>
|
|
545
|
-
<div className="absolute inset-0 flex items-center justify-center
|
|
546
|
-
<button className="
|
|
547
|
-
<ExpandIcon className="h-5 w-5
|
|
569
|
+
<div className="bg-fm-surface-secondary absolute inset-0 flex items-center justify-center opacity-0 transition-opacity group-hover:opacity-100">
|
|
570
|
+
<button className="border-fm-icon-positive/30 bg-fm-icon-positive/20 hover:bg-fm-icon-positive/30 rounded-lg border p-3 transition-colors">
|
|
571
|
+
<ExpandIcon className="text-fm-icon-positive h-5 w-5" />
|
|
548
572
|
</button>
|
|
549
573
|
</div>
|
|
550
574
|
<div className="absolute right-2 bottom-2 opacity-0 transition-opacity group-hover:opacity-100">
|
|
551
|
-
<button className="
|
|
552
|
-
<ExpandIcon className="h-3 w-3
|
|
575
|
+
<button className="border-fm-divider-primary bg-fm-surface-secondary hover:border-fm-icon-positive/30 hover:bg-fm-icon-positive/20 rounded border p-1.5 transition-colors">
|
|
576
|
+
<ExpandIcon className="text-fm-icon-active h-3 w-3" />
|
|
553
577
|
</button>
|
|
554
578
|
</div>
|
|
555
579
|
</div>
|
|
556
580
|
))}
|
|
557
581
|
</div>
|
|
558
582
|
<div className="text-center">
|
|
559
|
-
<div className="text-sm font-medium
|
|
583
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
560
584
|
Photography Portfolio
|
|
561
585
|
</div>
|
|
562
|
-
<div className="text-
|
|
586
|
+
<div className="text-fm-tertiary text-xs">
|
|
563
587
|
Hover over images to see expand options
|
|
564
588
|
</div>
|
|
565
589
|
</div>
|
|
566
590
|
</div>
|
|
567
|
-
<div className="rounded-lg
|
|
568
|
-
<pre className="overflow-x-auto text-sm
|
|
591
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
592
|
+
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
569
593
|
{`// Image gallery with lightbox expand
|
|
570
594
|
<div className="image-gallery">
|
|
571
595
|
{images.map((image, index) => (
|
|
@@ -597,58 +621,58 @@ function VideoPlayer() {
|
|
|
597
621
|
|
|
598
622
|
{/* Modal Dialog */}
|
|
599
623
|
<div className="!space-y-4">
|
|
600
|
-
<h3 className="text-lg font-semibold
|
|
624
|
+
<h3 className="text-fm-icon-positive! text-lg font-semibold">
|
|
601
625
|
Modal Dialog
|
|
602
626
|
</h3>
|
|
603
627
|
<div className="!space-y-4">
|
|
604
|
-
<div className="rounded-lg border
|
|
605
|
-
<div className="rounded-lg border
|
|
628
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
|
|
629
|
+
<div className="border-fm-divider-primary bg-fm-surface-secondary rounded-lg border p-6">
|
|
606
630
|
<div className="mb-4 flex items-start justify-between">
|
|
607
631
|
<div>
|
|
608
|
-
<h4 className="text-lg font-semibold
|
|
632
|
+
<h4 className="text-fm-icon-active text-lg font-semibold">
|
|
609
633
|
Document Preview
|
|
610
634
|
</h4>
|
|
611
|
-
<p className="text-
|
|
635
|
+
<p className="text-fm-tertiary text-sm">
|
|
612
636
|
quarterly-report-2024.pdf
|
|
613
637
|
</p>
|
|
614
638
|
</div>
|
|
615
639
|
<div className="flex items-center gap-2">
|
|
616
|
-
<button className="
|
|
617
|
-
<ExpandIcon className="h-4 w-4
|
|
640
|
+
<button className="border-fm-icon-positive/30 bg-fm-icon-positive/10 hover:bg-fm-icon-positive/20 rounded border p-2 transition-colors">
|
|
641
|
+
<ExpandIcon className="text-fm-icon-positive h-4 w-4" />
|
|
618
642
|
</button>
|
|
619
|
-
<button className="rounded p-2 transition-colors
|
|
643
|
+
<button className="hover:bg-fm-divider-primary rounded p-2 transition-colors">
|
|
620
644
|
<div className="relative h-4 w-4">
|
|
621
|
-
<div className="absolute inset-0 rotate-45 border
|
|
622
|
-
<div className="absolute inset-0 -rotate-45 border
|
|
645
|
+
<div className="border-fm-divider-contrast absolute inset-0 rotate-45 border"></div>
|
|
646
|
+
<div className="border-fm-divider-contrast absolute inset-0 -rotate-45 border"></div>
|
|
623
647
|
</div>
|
|
624
648
|
</button>
|
|
625
649
|
</div>
|
|
626
650
|
</div>
|
|
627
|
-
<div className="mb-4 flex aspect-[4/5] items-center justify-center rounded border
|
|
651
|
+
<div className="border-fm-divider-primary bg-fm-surface-secondary mb-4 flex aspect-[4/5] items-center justify-center rounded border">
|
|
628
652
|
<div className="text-center">
|
|
629
|
-
<div className="mx-auto mb-2 h-20 w-16 rounded
|
|
630
|
-
<div className="text-
|
|
653
|
+
<div className="bg-fm-divider-primary mx-auto mb-2 h-20 w-16 rounded"></div>
|
|
654
|
+
<div className="text-fm-tertiary text-xs">
|
|
631
655
|
PDF Preview
|
|
632
656
|
</div>
|
|
633
657
|
</div>
|
|
634
658
|
</div>
|
|
635
659
|
<div className="flex items-center justify-between">
|
|
636
|
-
<span className="text-
|
|
660
|
+
<span className="text-fm-tertiary text-xs">
|
|
637
661
|
Page 1 of 24
|
|
638
662
|
</span>
|
|
639
663
|
<div className="flex gap-2">
|
|
640
|
-
<button className="
|
|
664
|
+
<button className="bg-fm-surface-secondary text-fm-icon-active hover:bg-fm-divider-primary rounded px-3 py-1 text-xs transition-colors">
|
|
641
665
|
Download
|
|
642
666
|
</button>
|
|
643
|
-
<button className="
|
|
667
|
+
<button className="bg-fm-icon-positive/20 text-fm-icon-positive hover:bg-fm-icon-positive/30 rounded px-3 py-1 text-xs transition-colors">
|
|
644
668
|
Full View
|
|
645
669
|
</button>
|
|
646
670
|
</div>
|
|
647
671
|
</div>
|
|
648
672
|
</div>
|
|
649
673
|
</div>
|
|
650
|
-
<div className="rounded-lg
|
|
651
|
-
<pre className="overflow-x-auto text-sm
|
|
674
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
675
|
+
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
652
676
|
{`// Modal with expand to fullscreen
|
|
653
677
|
<Modal isOpen={isModalOpen} onClose={closeModal}>
|
|
654
678
|
<div className="modal-header">
|
|
@@ -678,49 +702,49 @@ function VideoPlayer() {
|
|
|
678
702
|
|
|
679
703
|
{/* Dashboard Widget */}
|
|
680
704
|
<div className="!space-y-4">
|
|
681
|
-
<h3 className="text-lg font-semibold
|
|
705
|
+
<h3 className="text-fm-icon-positive! text-lg font-semibold">
|
|
682
706
|
Dashboard Widget
|
|
683
707
|
</h3>
|
|
684
708
|
<div className="!space-y-4">
|
|
685
|
-
<div className="rounded-lg border
|
|
686
|
-
<div className="rounded-lg border
|
|
709
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
|
|
710
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-4">
|
|
687
711
|
<div className="mb-4 flex items-center justify-between">
|
|
688
712
|
<div>
|
|
689
|
-
<h4 className="text-sm font-semibold
|
|
713
|
+
<h4 className="text-fm-icon-active text-sm font-semibold">
|
|
690
714
|
Analytics Overview
|
|
691
715
|
</h4>
|
|
692
|
-
<p className="text-
|
|
716
|
+
<p className="text-fm-tertiary text-xs">
|
|
693
717
|
Last 30 days
|
|
694
718
|
</p>
|
|
695
719
|
</div>
|
|
696
|
-
<button className="
|
|
697
|
-
<ExpandIcon className="h-3 w-3
|
|
720
|
+
<button className="border-fm-icon-positive/30 bg-fm-icon-positive/10 hover:bg-fm-icon-positive/20 rounded border p-1.5 transition-colors">
|
|
721
|
+
<ExpandIcon className="text-fm-icon-positive h-3 w-3" />
|
|
698
722
|
</button>
|
|
699
723
|
</div>
|
|
700
724
|
<div className="mb-4 grid grid-cols-2 gap-4">
|
|
701
725
|
<div className="text-center">
|
|
702
|
-
<div className="text-2xl font-bold
|
|
726
|
+
<div className="text-fm-icon-positive text-2xl font-bold">
|
|
703
727
|
12.5K
|
|
704
728
|
</div>
|
|
705
|
-
<div className="text-
|
|
729
|
+
<div className="text-fm-tertiary text-xs">
|
|
706
730
|
Visitors
|
|
707
731
|
</div>
|
|
708
732
|
</div>
|
|
709
733
|
<div className="text-center">
|
|
710
|
-
<div className="text-2xl font-bold
|
|
734
|
+
<div className="text-fm-icon-info text-2xl font-bold">
|
|
711
735
|
84%
|
|
712
736
|
</div>
|
|
713
|
-
<div className="text-
|
|
737
|
+
<div className="text-fm-tertiary text-xs">
|
|
714
738
|
Conversion
|
|
715
739
|
</div>
|
|
716
740
|
</div>
|
|
717
741
|
</div>
|
|
718
|
-
<div className="flex h-16 items-end gap-1 rounded
|
|
742
|
+
<div className="bg-fm-surface-secondary flex h-16 items-end gap-1 rounded p-2">
|
|
719
743
|
{[0.3, 0.7, 0.5, 0.8, 0.6, 0.9, 0.4, 0.7].map(
|
|
720
744
|
(height, i) => (
|
|
721
745
|
<div
|
|
722
746
|
key={i}
|
|
723
|
-
className="flex-1 rounded-sm
|
|
747
|
+
className="bg-fm-icon-positive/60 flex-1 rounded-sm"
|
|
724
748
|
style={{ height: `${height * 100}%` }}
|
|
725
749
|
/>
|
|
726
750
|
)
|
|
@@ -728,8 +752,8 @@ function VideoPlayer() {
|
|
|
728
752
|
</div>
|
|
729
753
|
</div>
|
|
730
754
|
</div>
|
|
731
|
-
<div className="rounded-lg
|
|
732
|
-
<pre className="overflow-x-auto text-sm
|
|
755
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
756
|
+
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
733
757
|
{`// Dashboard widget with expand option
|
|
734
758
|
<div className="dashboard-widget">
|
|
735
759
|
<div className="widget-header">
|
|
@@ -759,65 +783,65 @@ function VideoPlayer() {
|
|
|
759
783
|
|
|
760
784
|
{/* Accessibility */}
|
|
761
785
|
<div className="!space-y-8">
|
|
762
|
-
<h2 className="text-center text-3xl font-bold
|
|
786
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
763
787
|
Accessibility Features
|
|
764
788
|
</h2>
|
|
765
789
|
<div className="grid grid-cols-1 gap-8 md:grid-cols-2">
|
|
766
|
-
<div className="!space-y-4 rounded-lg border
|
|
767
|
-
<h3 className="text-lg font-semibold
|
|
790
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
|
|
791
|
+
<h3 className="text-fm-icon-positive! text-lg font-semibold">
|
|
768
792
|
✅ Built-in Features
|
|
769
793
|
</h3>
|
|
770
|
-
<ul className="!space-y-2 text-sm
|
|
771
|
-
<li className="
|
|
794
|
+
<ul className="text-fm-secondary! !space-y-2 text-sm">
|
|
795
|
+
<li className="text-fm-secondary!">
|
|
772
796
|
Uses Radix UI AccessibleIcon wrapper
|
|
773
797
|
</li>
|
|
774
|
-
<li className="
|
|
798
|
+
<li className="text-fm-secondary!">
|
|
775
799
|
Provides screen reader label "Expand icon"
|
|
776
800
|
</li>
|
|
777
|
-
<li className="
|
|
801
|
+
<li className="text-fm-secondary!">
|
|
778
802
|
Supports keyboard navigation when interactive
|
|
779
803
|
</li>
|
|
780
|
-
<li className="
|
|
804
|
+
<li className="text-fm-secondary!">
|
|
781
805
|
Maintains proper color contrast ratios
|
|
782
806
|
</li>
|
|
783
|
-
<li className="
|
|
807
|
+
<li className="text-fm-secondary!">
|
|
784
808
|
Uses square strokeLinecap for crisp visual clarity
|
|
785
809
|
</li>
|
|
786
810
|
</ul>
|
|
787
811
|
</div>
|
|
788
812
|
|
|
789
|
-
<div className="!space-y-4 rounded-lg border
|
|
790
|
-
<h3 className="text-lg font-semibold
|
|
813
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
|
|
814
|
+
<h3 className="text-fm-icon-positive! text-lg font-semibold">
|
|
791
815
|
💡 Best Practices
|
|
792
816
|
</h3>
|
|
793
|
-
<ul className="!space-y-2 text-sm
|
|
794
|
-
<li className="
|
|
817
|
+
<ul className="text-fm-secondary !space-y-2 text-sm">
|
|
818
|
+
<li className="text-fm-secondary!">
|
|
795
819
|
Always provide descriptive aria-labels for expand
|
|
796
820
|
actions
|
|
797
821
|
</li>
|
|
798
|
-
<li className="
|
|
822
|
+
<li className="text-fm-secondary!">
|
|
799
823
|
Use consistent placement in media control groups
|
|
800
824
|
</li>
|
|
801
|
-
<li className="
|
|
825
|
+
<li className="text-fm-secondary!">
|
|
802
826
|
Ensure sufficient touch target size (44px minimum)
|
|
803
827
|
</li>
|
|
804
|
-
<li className="
|
|
828
|
+
<li className="text-fm-secondary!">
|
|
805
829
|
Provide visible focus states for keyboard users
|
|
806
830
|
</li>
|
|
807
|
-
<li className="
|
|
831
|
+
<li className="text-fm-secondary!">
|
|
808
832
|
Consider Escape key handling for fullscreen mode
|
|
809
833
|
</li>
|
|
810
834
|
</ul>
|
|
811
835
|
</div>
|
|
812
836
|
</div>
|
|
813
837
|
|
|
814
|
-
<div className="rounded-lg border
|
|
815
|
-
<h3 className="mb-4 text-lg font-semibold
|
|
838
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
|
|
839
|
+
<h3 className="text-fm-icon-info! mb-4 text-lg font-semibold">
|
|
816
840
|
Proper ARIA Implementation
|
|
817
841
|
</h3>
|
|
818
842
|
<div className="grid grid-cols-1 gap-6 lg:grid-cols-2">
|
|
819
|
-
<div className="rounded-lg
|
|
820
|
-
<pre className="overflow-x-auto text-sm
|
|
843
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
844
|
+
<pre className="text-fm-icon-info! overflow-x-auto text-sm">
|
|
821
845
|
{`// Video player fullscreen control
|
|
822
846
|
<div className="video-controls">
|
|
823
847
|
<button
|
|
@@ -861,13 +885,13 @@ function VideoPlayer() {
|
|
|
861
885
|
</pre>
|
|
862
886
|
</div>
|
|
863
887
|
<div className="!space-y-4">
|
|
864
|
-
<p className="text-
|
|
888
|
+
<p className="text-fm-secondary! text-sm">
|
|
865
889
|
When using ExpandIcon for fullscreen controls, always
|
|
866
890
|
provide clear context about what will be expanded and
|
|
867
891
|
how users can exit fullscreen mode.
|
|
868
892
|
</p>
|
|
869
|
-
<div className="
|
|
870
|
-
<div className="flex items-center gap-2 text-sm
|
|
893
|
+
<div className="border-fm-icon-positive/20 bg-fm-icon-positive/10 rounded-lg border p-4">
|
|
894
|
+
<div className="text-fm-icon-positive flex items-center gap-2 text-sm">
|
|
871
895
|
<ExpandIcon className="h-4 w-4" />
|
|
872
896
|
<span>
|
|
873
897
|
Include keyboard shortcuts (F11, Escape) in tooltips
|
|
@@ -881,48 +905,56 @@ function VideoPlayer() {
|
|
|
881
905
|
|
|
882
906
|
{/* Related Icons */}
|
|
883
907
|
<div className="!space-y-8">
|
|
884
|
-
<h2 className="text-center text-3xl font-bold
|
|
908
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
885
909
|
Related Icons
|
|
886
910
|
</h2>
|
|
887
911
|
<div className="grid grid-cols-2 gap-6 md:grid-cols-4">
|
|
888
|
-
<div className="!space-y-3 rounded-lg border
|
|
889
|
-
<div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg
|
|
890
|
-
<span className="
|
|
912
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
|
|
913
|
+
<div className="bg-fm-icon-negative/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
|
|
914
|
+
<span className="text-fm-icon-active! !text-2xl">⤡</span>
|
|
891
915
|
</div>
|
|
892
916
|
<div>
|
|
893
|
-
<div className="font-medium
|
|
894
|
-
|
|
917
|
+
<div className="text-fm-icon-active font-medium">
|
|
918
|
+
CollapseIcon
|
|
919
|
+
</div>
|
|
920
|
+
<div className="text-fm-tertiary text-xs">
|
|
895
921
|
Exit fullscreen
|
|
896
922
|
</div>
|
|
897
923
|
</div>
|
|
898
924
|
</div>
|
|
899
|
-
<div className="!space-y-3 rounded-lg border
|
|
900
|
-
<div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg
|
|
901
|
-
<span className="
|
|
925
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
|
|
926
|
+
<div className="bg-fm-icon-info/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
|
|
927
|
+
<span className="text-fm-icon-active! !text-2xl">⛶</span>
|
|
902
928
|
</div>
|
|
903
929
|
<div>
|
|
904
|
-
<div className="font-medium
|
|
905
|
-
|
|
930
|
+
<div className="text-fm-icon-active font-medium">
|
|
931
|
+
MaximizeIcon
|
|
932
|
+
</div>
|
|
933
|
+
<div className="text-fm-tertiary text-xs">
|
|
906
934
|
Window maximize
|
|
907
935
|
</div>
|
|
908
936
|
</div>
|
|
909
937
|
</div>
|
|
910
|
-
<div className="!space-y-3 rounded-lg border
|
|
911
|
-
<div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg
|
|
912
|
-
<span className="
|
|
938
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
|
|
939
|
+
<div className="bg-fm-secondary-500/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
|
|
940
|
+
<span className="text-fm-icon-active! !text-2xl">🔍</span>
|
|
913
941
|
</div>
|
|
914
942
|
<div>
|
|
915
|
-
<div className="font-medium
|
|
916
|
-
|
|
943
|
+
<div className="text-fm-icon-active font-medium">
|
|
944
|
+
ZoomInIcon
|
|
945
|
+
</div>
|
|
946
|
+
<div className="text-fm-tertiary text-xs">Zoom in</div>
|
|
917
947
|
</div>
|
|
918
948
|
</div>
|
|
919
|
-
<div className="!space-y-3 rounded-lg border
|
|
920
|
-
<div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg
|
|
921
|
-
<span className="
|
|
949
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
|
|
950
|
+
<div className="bg-fm-icon-warning/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
|
|
951
|
+
<span className="text-fm-icon-active! !text-2xl">⊞</span>
|
|
922
952
|
</div>
|
|
923
953
|
<div>
|
|
924
|
-
<div className="font-medium
|
|
925
|
-
|
|
954
|
+
<div className="text-fm-icon-active font-medium">
|
|
955
|
+
WindowIcon
|
|
956
|
+
</div>
|
|
957
|
+
<div className="text-fm-tertiary text-xs">
|
|
926
958
|
Window controls
|
|
927
959
|
</div>
|
|
928
960
|
</div>
|
|
@@ -932,15 +964,15 @@ function VideoPlayer() {
|
|
|
932
964
|
</div>
|
|
933
965
|
|
|
934
966
|
{/* Footer */}
|
|
935
|
-
<div className="border-
|
|
967
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary border-t backdrop-blur-xl">
|
|
936
968
|
<div className="!mx-auto max-w-7xl px-6 py-8">
|
|
937
969
|
<div className="!space-y-4 text-center">
|
|
938
|
-
<p className="
|
|
970
|
+
<p className="text-fm-tertiary!">
|
|
939
971
|
ExpandIcon is part of the Aural UI icon library, built with
|
|
940
972
|
accessibility and fullscreen interaction best practices in
|
|
941
973
|
mind.
|
|
942
974
|
</p>
|
|
943
|
-
<p className="text-
|
|
975
|
+
<p className="text-fm-placeholder! text-sm">
|
|
944
976
|
All icons use Radix UI's AccessibleIcon for screen reader
|
|
945
977
|
compatibility and follow WCAG guidelines for interactive
|
|
946
978
|
elements and keyboard navigation.
|
|
@@ -999,20 +1031,20 @@ const storyParameters = {
|
|
|
999
1031
|
backgrounds: {
|
|
1000
1032
|
default: "dark",
|
|
1001
1033
|
values: [
|
|
1002
|
-
{ name: "dark", value: "
|
|
1003
|
-
{ name: "darker", value: "
|
|
1034
|
+
{ name: "dark", value: "var(--color-fm-surface-primary)" },
|
|
1035
|
+
{ name: "darker", value: "var(--color-fm-neutral-0)" },
|
|
1004
1036
|
],
|
|
1005
1037
|
},
|
|
1006
1038
|
}
|
|
1007
1039
|
|
|
1008
1040
|
export const Default: Story = {
|
|
1009
1041
|
args: {
|
|
1010
|
-
className: "h-8 w-8 text-
|
|
1042
|
+
className: "h-8 w-8 text-fm-icon-positive",
|
|
1011
1043
|
withAccessibility: true,
|
|
1012
1044
|
},
|
|
1013
1045
|
parameters: storyParameters,
|
|
1014
1046
|
render: (args) => (
|
|
1015
|
-
<div className="flex h-32 min-h-dvh items-center justify-center rounded-lg bg-
|
|
1047
|
+
<div className="from-fm-surface-primary to-fm-surface-secondary flex h-32 min-h-dvh items-center justify-center rounded-lg bg-linear-to-br">
|
|
1016
1048
|
<ExpandIcon {...args} />
|
|
1017
1049
|
</div>
|
|
1018
1050
|
),
|
|
@@ -1029,30 +1061,30 @@ export const SizeVariations: Story = {
|
|
|
1029
1061
|
},
|
|
1030
1062
|
},
|
|
1031
1063
|
render: () => (
|
|
1032
|
-
<div className="flex h-64 min-h-dvh items-center justify-center gap-8 rounded-lg bg-
|
|
1064
|
+
<div className="from-fm-surface-primary to-fm-surface-secondary flex h-64 min-h-dvh items-center justify-center gap-8 rounded-lg bg-linear-to-br p-8">
|
|
1033
1065
|
<div className="text-center">
|
|
1034
|
-
<ExpandIcon className="!mx-auto mb-2 h-3 w-3
|
|
1035
|
-
<span className="text-
|
|
1066
|
+
<ExpandIcon className="text-fm-icon-positive !mx-auto mb-2 h-3 w-3" />
|
|
1067
|
+
<span className="text-fm-tertiary text-xs">12px</span>
|
|
1036
1068
|
</div>
|
|
1037
1069
|
<div className="text-center">
|
|
1038
|
-
<ExpandIcon className="!mx-auto mb-2 h-4 w-4
|
|
1039
|
-
<span className="text-
|
|
1070
|
+
<ExpandIcon className="text-fm-icon-positive !mx-auto mb-2 h-4 w-4" />
|
|
1071
|
+
<span className="text-fm-tertiary text-xs">16px</span>
|
|
1040
1072
|
</div>
|
|
1041
1073
|
<div className="text-center">
|
|
1042
|
-
<ExpandIcon className="!mx-auto mb-2 h-5 w-5
|
|
1043
|
-
<span className="text-
|
|
1074
|
+
<ExpandIcon className="text-fm-icon-positive !mx-auto mb-2 h-5 w-5" />
|
|
1075
|
+
<span className="text-fm-tertiary text-xs">20px</span>
|
|
1044
1076
|
</div>
|
|
1045
1077
|
<div className="text-center">
|
|
1046
|
-
<ExpandIcon className="!mx-auto mb-2 h-6 w-6
|
|
1047
|
-
<span className="text-
|
|
1078
|
+
<ExpandIcon className="text-fm-icon-positive !mx-auto mb-2 h-6 w-6" />
|
|
1079
|
+
<span className="text-fm-tertiary text-xs">24px</span>
|
|
1048
1080
|
</div>
|
|
1049
1081
|
<div className="text-center">
|
|
1050
|
-
<ExpandIcon className="!mx-auto mb-2 h-8 w-8
|
|
1051
|
-
<span className="text-
|
|
1082
|
+
<ExpandIcon className="text-fm-icon-positive !mx-auto mb-2 h-8 w-8" />
|
|
1083
|
+
<span className="text-fm-tertiary text-xs">32px</span>
|
|
1052
1084
|
</div>
|
|
1053
1085
|
<div className="text-center">
|
|
1054
|
-
<ExpandIcon className="!mx-auto mb-2 h-12 w-12
|
|
1055
|
-
<span className="text-
|
|
1086
|
+
<ExpandIcon className="text-fm-icon-positive !mx-auto mb-2 h-12 w-12" />
|
|
1087
|
+
<span className="text-fm-tertiary text-xs">48px</span>
|
|
1056
1088
|
</div>
|
|
1057
1089
|
</div>
|
|
1058
1090
|
),
|
|
@@ -1069,34 +1101,38 @@ export const ColorVariations: Story = {
|
|
|
1069
1101
|
},
|
|
1070
1102
|
},
|
|
1071
1103
|
render: () => (
|
|
1072
|
-
<div className="grid min-h-dvh grid-cols-2 items-center justify-center gap-6 rounded-lg bg-
|
|
1104
|
+
<div className="from-fm-surface-primary to-fm-surface-secondary grid min-h-dvh grid-cols-2 items-center justify-center gap-6 rounded-lg bg-linear-to-br p-8 md:grid-cols-4">
|
|
1073
1105
|
<div className="text-center">
|
|
1074
|
-
<div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border
|
|
1075
|
-
<ExpandIcon className="h-8 w-8
|
|
1106
|
+
<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">
|
|
1107
|
+
<ExpandIcon className="text-fm-icon-positive h-8 w-8" />
|
|
1108
|
+
</div>
|
|
1109
|
+
<div className="text-fm-icon-active text-sm font-medium">Expand</div>
|
|
1110
|
+
<div className="text-fm-icon-positive text-xs">
|
|
1111
|
+
text-fm-icon-positive
|
|
1076
1112
|
</div>
|
|
1077
|
-
<div className="text-sm font-medium text-white">Expand</div>
|
|
1078
|
-
<div className="text-xs text-emerald-400">text-emerald-400</div>
|
|
1079
1113
|
</div>
|
|
1080
1114
|
<div className="text-center">
|
|
1081
|
-
<div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border
|
|
1082
|
-
<ExpandIcon className="h-8 w-8
|
|
1115
|
+
<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">
|
|
1116
|
+
<ExpandIcon className="text-fm-icon-info h-8 w-8" />
|
|
1083
1117
|
</div>
|
|
1084
|
-
<div className="text-sm font-medium
|
|
1085
|
-
<div className="text-
|
|
1118
|
+
<div className="text-fm-icon-active text-sm font-medium">Maximize</div>
|
|
1119
|
+
<div className="text-fm-icon-info text-xs">text-fm-icon-info</div>
|
|
1086
1120
|
</div>
|
|
1087
1121
|
<div className="text-center">
|
|
1088
|
-
<div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border
|
|
1089
|
-
<ExpandIcon className="h-8 w-8
|
|
1122
|
+
<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">
|
|
1123
|
+
<ExpandIcon className="text-fm-icon-positive h-8 w-8" />
|
|
1124
|
+
</div>
|
|
1125
|
+
<div className="text-fm-icon-active text-sm font-medium">Active</div>
|
|
1126
|
+
<div className="text-fm-icon-positive text-xs">
|
|
1127
|
+
text-fm-icon-positive
|
|
1090
1128
|
</div>
|
|
1091
|
-
<div className="text-sm font-medium text-white">Active</div>
|
|
1092
|
-
<div className="text-xs text-green-400">text-green-400</div>
|
|
1093
1129
|
</div>
|
|
1094
1130
|
<div className="text-center">
|
|
1095
|
-
<div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border
|
|
1096
|
-
<ExpandIcon className="h-8 w-8
|
|
1131
|
+
<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">
|
|
1132
|
+
<ExpandIcon className="text-fm-icon-info h-8 w-8" />
|
|
1097
1133
|
</div>
|
|
1098
|
-
<div className="text-sm font-medium
|
|
1099
|
-
<div className="text-
|
|
1134
|
+
<div className="text-fm-icon-active text-sm font-medium">Focus</div>
|
|
1135
|
+
<div className="text-fm-icon-info text-xs">text-fm-icon-info</div>
|
|
1100
1136
|
</div>
|
|
1101
1137
|
</div>
|
|
1102
1138
|
),
|
|
@@ -1113,20 +1149,20 @@ export const UsageExamples: Story = {
|
|
|
1113
1149
|
},
|
|
1114
1150
|
},
|
|
1115
1151
|
render: () => (
|
|
1116
|
-
<div className="min-h-dvh !space-y-8 rounded-lg bg-
|
|
1152
|
+
<div className="from-fm-surface-primary to-fm-surface-secondary min-h-dvh !space-y-8 rounded-lg bg-linear-to-br p-8">
|
|
1117
1153
|
{/* Video Player */}
|
|
1118
1154
|
<div className="!space-y-2">
|
|
1119
|
-
<h3 className="text-sm font-medium
|
|
1155
|
+
<h3 className="text-fm-icon-active text-sm font-medium">
|
|
1120
1156
|
Video Player Controls
|
|
1121
1157
|
</h3>
|
|
1122
|
-
<div className="rounded-lg border
|
|
1158
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-4">
|
|
1123
1159
|
<div className="flex items-center justify-between">
|
|
1124
1160
|
<div className="flex items-center gap-3">
|
|
1125
1161
|
<div className="h-0 w-0 border-y-[6px] border-l-[8px] border-y-transparent border-l-white" />
|
|
1126
|
-
<span className="text-
|
|
1162
|
+
<span className="text-fm-icon-active text-sm">0:42 / 2:18</span>
|
|
1127
1163
|
</div>
|
|
1128
|
-
<button className="
|
|
1129
|
-
<ExpandIcon className="h-4 w-4
|
|
1164
|
+
<button className="border-fm-icon-positive/30 bg-fm-icon-positive/10 hover:bg-fm-icon-positive/20 rounded border p-2 transition-colors">
|
|
1165
|
+
<ExpandIcon className="text-fm-icon-positive h-4 w-4" />
|
|
1130
1166
|
</button>
|
|
1131
1167
|
</div>
|
|
1132
1168
|
</div>
|
|
@@ -1134,12 +1170,14 @@ export const UsageExamples: Story = {
|
|
|
1134
1170
|
|
|
1135
1171
|
{/* Image Gallery */}
|
|
1136
1172
|
<div className="!space-y-2">
|
|
1137
|
-
<h3 className="text-sm font-medium
|
|
1138
|
-
|
|
1139
|
-
|
|
1173
|
+
<h3 className="text-fm-icon-active text-sm font-medium">
|
|
1174
|
+
Image Gallery
|
|
1175
|
+
</h3>
|
|
1176
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-4">
|
|
1177
|
+
<div className="group from-fm-surface-secondary to-fm-surface-secondary relative aspect-square rounded-lg bg-linear-to-br">
|
|
1140
1178
|
<div className="absolute top-2 right-2">
|
|
1141
|
-
<button className="
|
|
1142
|
-
<ExpandIcon className="h-3 w-3
|
|
1179
|
+
<button className="border-fm-divider-primary bg-fm-surface-secondary hover:border-fm-icon-positive/30 hover:bg-fm-icon-positive/20 rounded border p-1.5 transition-colors">
|
|
1180
|
+
<ExpandIcon className="text-fm-icon-active h-3 w-3" />
|
|
1143
1181
|
</button>
|
|
1144
1182
|
</div>
|
|
1145
1183
|
</div>
|
|
@@ -1162,12 +1200,12 @@ export const Playground: Story = {
|
|
|
1162
1200
|
args: {
|
|
1163
1201
|
width: 24,
|
|
1164
1202
|
height: 24,
|
|
1165
|
-
className: "text-
|
|
1203
|
+
className: "text-fm-icon-positive",
|
|
1166
1204
|
strokeLinecap: "square",
|
|
1167
1205
|
},
|
|
1168
1206
|
render: (args) => (
|
|
1169
|
-
<div className="flex h-64 min-h-dvh items-center justify-center rounded-lg bg-
|
|
1170
|
-
<div className="rounded-lg border
|
|
1207
|
+
<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">
|
|
1208
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-8">
|
|
1171
1209
|
<ExpandIcon {...args} />
|
|
1172
1210
|
</div>
|
|
1173
1211
|
</div>
|