aural-ui 3.0.6 → 4.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/aspect-ratio/AspectRatio.stories.tsx +271 -242
- package/dist/components/avatar/Avatar.stories.tsx +84 -70
- package/dist/components/button/Button.stories.tsx +7 -7
- package/dist/components/button/index.tsx +7 -7
- package/dist/components/card/Card.stories.tsx +3 -3
- package/dist/components/char-count/CharCount.stories.tsx +9 -9
- package/dist/components/circular-loader/CircularLoader.stories.tsx +109 -93
- package/dist/components/clamp-lines/ClampLines.stories.tsx +25 -0
- package/dist/components/clamp-lines/index.tsx +6 -1
- package/dist/components/collapsible/Collapsible.stories.tsx +1 -1
- package/dist/components/command/Command.stories.tsx +52 -38
- package/dist/components/dialog/Dialog.stories.tsx +89 -84
- package/dist/components/divider/Divider.stories.tsx +86 -60
- package/dist/components/dot-loader/DotLoader.stories.tsx +12 -12
- package/dist/components/drawer/Drawer.stories.tsx +74 -44
- package/dist/components/drawer/index.tsx +3 -3
- package/dist/components/dropdown/Dropdown.stories.tsx +42 -32
- package/dist/components/helper-text/HelperText.stories.tsx +2 -2
- package/dist/components/hover-card/HoverCard.stories.tsx +211 -178
- package/dist/components/input/Input.stories.tsx +2 -2
- package/dist/components/input/index.tsx +2 -0
- package/dist/components/label/Label.stories.tsx +10 -10
- package/dist/components/list/List.stories.tsx +58 -44
- package/dist/components/marquee/Marquee.stories.tsx +131 -113
- package/dist/components/otp-inputs/OtpInputs.stories.tsx +47 -35
- package/dist/components/overlay/Overlay.stories.tsx +98 -92
- package/dist/components/overlay/index.tsx +4 -4
- package/dist/components/popover/Popover.stories.tsx +132 -106
- package/dist/components/radio/Radio.stories.tsx +2 -2
- package/dist/components/resizable/Resizable.stories.tsx +186 -138
- package/dist/components/scroll-area/ScrollArea.stories.tsx +174 -120
- package/dist/components/search/Search.stories.tsx +81 -59
- package/dist/components/select/Select.stories.tsx +3 -1
- package/dist/components/sheet/Sheet.stories.tsx +68 -54
- package/dist/components/slider/Slider.stories.tsx +71 -47
- package/dist/components/stepper/Stepper.stories.tsx +16 -16
- package/dist/components/switch/Switch.stories.tsx +12 -12
- package/dist/components/table/Table.stories.tsx +8 -6
- package/dist/components/tabs/Tabs.stories.tsx +324 -268
- package/dist/components/textarea/TextArea.stories.tsx +1 -1
- package/dist/components/thumbnail-tags/ThumbnailTags.stories.tsx +16 -10
- package/dist/components/toast/Toast.stories.tsx +51 -45
- package/dist/components/toggle/Toggle.stories.tsx +111 -89
- package/dist/components/tooltip/Tooltip.stories.tsx +160 -144
- package/dist/icons/Icons.stories.tsx +2 -2
- package/dist/icons/ai-avatar-icon/AiAvatarIcon.stories.tsx +287 -237
- package/dist/icons/alert-icon/AlertIcon.stories.tsx +290 -248
- package/dist/icons/all-icons.tsx +97 -81
- package/dist/icons/angle-down-icon/AngleDownIcon.stories.tsx +312 -270
- package/dist/icons/apple-logo-icon/AppleLogoIcon.stories.tsx +294 -244
- package/dist/icons/arrow-box-left-icon/ArrowBoxLeftIcon.stories.tsx +309 -279
- package/dist/icons/arrow-corner-up-left-icon/ArrowCornerUpLeftIcon.stories.tsx +294 -258
- package/dist/icons/arrow-corner-up-right-icon/ArrowCornerUpRightIcon.stories.tsx +289 -255
- package/dist/icons/arrow-left-icon/ArrowLeftIcon.stories.tsx +288 -256
- package/dist/icons/arrow-right-icon/ArrowRightIcon.stories.tsx +322 -288
- package/dist/icons/arrow-right-up-icon/ArrowRightUpIcon.stories.tsx +340 -296
- package/dist/icons/art-board-icon/ArtBoardIcon.stories.tsx +197 -177
- package/dist/icons/audio-bar-icon/AudioBarIcon.stories.tsx +390 -328
- package/dist/icons/backward-ten-seconds-icon/BackwardTenSecondsIcon.stories.tsx +313 -277
- package/dist/icons/bubble-check-icon/BubbleCheckIcon.stories.tsx +367 -309
- package/dist/icons/bubble-crossed-icon/BubbleCrossedIcon.stories.tsx +356 -308
- package/dist/icons/bubble-sparkle-icon/BubbleSparkleIcon.stories.tsx +280 -234
- package/dist/icons/camera-icon/CameraIcon.stories.tsx +370 -326
- package/dist/icons/capital-a-letter-icon/CapitalALetterIcon.stories.tsx +300 -256
- package/dist/icons/chevron-double-left-icon/ChevronDoubleLeftIcon.stories.tsx +298 -262
- package/dist/icons/chevron-double-right-icon/ChevronDoubleRightIcon.stories.tsx +294 -260
- package/dist/icons/chevron-down-icon/ChevronDownIcon.stories.tsx +291 -259
- package/dist/icons/chevron-left-icon/ChevronLeftIcon.stories.tsx +286 -256
- package/dist/icons/chevron-right-icon/ChevronRightIcon.stories.tsx +282 -256
- package/dist/icons/chevron-up-icon/ChevronUpIcon.stories.tsx +292 -256
- package/dist/icons/circle-tick-icon/CircleTickIcon.stories.tsx +338 -290
- package/dist/icons/circular-play-icon/CircularPlayIcon.stories.tsx +167 -148
- package/dist/icons/coin-icon/CoinIcon.stories.tsx +342 -296
- package/dist/icons/coin-toons-icon/CoinToonsIcon.stories.tsx +342 -296
- package/dist/icons/column-wide-add-icon/ColumnWideAddIcon.stories.tsx +280 -238
- package/dist/icons/command-icon/CommandIcon.stories.tsx +328 -280
- package/dist/icons/copy-icon/CopyIcon.stories.tsx +294 -256
- package/dist/icons/cross-circle-icon/CrossCircleIcon.stories.tsx +285 -235
- package/dist/icons/cross-icon/CrossIcon.stories.tsx +308 -266
- package/dist/icons/download-icon/DownloadIcon.stories.tsx +271 -231
- package/dist/icons/edit-big-icon/EditBigIcon.stories.tsx +330 -278
- package/dist/icons/email-icon/EmailIcon.stories.tsx +303 -257
- package/dist/icons/expand-icon/ExpandIcon.stories.tsx +324 -286
- package/dist/icons/eye-close-icon/EyeCloseIcon.stories.tsx +317 -271
- package/dist/icons/eye-open-icon/EyeOpenIcon.stories.tsx +320 -272
- package/dist/icons/feature-shine-icon/FeatureShineIcon.stories.tsx +322 -280
- package/dist/icons/file-chart-icon/FileChartIcon.stories.tsx +315 -277
- package/dist/icons/file-text-icon/FileTextIcon.stories.tsx +199 -177
- package/dist/icons/filter-bar-row-icon/FilterBarRowIcon.stories.tsx +304 -264
- package/dist/icons/forward-ten-seconds-icon/ForwardTenSecondsIcon.stories.tsx +311 -277
- package/dist/icons/git-branch-icon/GitBranchIcon.stories.tsx +327 -287
- package/dist/icons/git-fork-icon/GitForkIcon.stories.tsx +314 -278
- package/dist/icons/globe-icon/GlobeIcon.stories.tsx +113 -98
- package/dist/icons/google-logo-icon/GoogleLogoIcon.stories.tsx +274 -226
- package/dist/icons/grip-vertical-icon/GripVerticalIcon.stories.tsx +349 -303
- package/dist/icons/head-icon/HeadIcon.stories.tsx +286 -246
- package/dist/icons/heart-icon/HeartIcon.stories.tsx +312 -268
- package/dist/icons/image-avatar-sparkle-icon/ImageAvatarSparkleIcon.stories.tsx +246 -210
- package/dist/icons/image-icon/ImageIcon.stories.tsx +330 -284
- package/dist/icons/import-folder-icon/ImportFolderIcon.stories.tsx +326 -282
- package/dist/icons/import-left-arrow-folder-icon/ImportLeftArrowFolderIcon.stories.tsx +330 -294
- package/dist/icons/indian-flag-icon/IndianFlagIcon.stories.tsx +288 -234
- package/dist/icons/instagram-icon/InstagramIcon.stories.tsx +386 -330
- package/dist/icons/layout-column-icon/LayoutColumnIcon.stories.tsx +305 -263
- package/dist/icons/layout-left-icon/LayoutLeftIcon.stories.tsx +295 -259
- package/dist/icons/layout-right-icon/LayoutRightIcon.stories.tsx +296 -256
- package/dist/icons/light-bulb-simple-icon/LightBulbSimpleIcon.stories.tsx +322 -282
- package/dist/icons/linked-in-icon/LinkedInIcon.stories.tsx +399 -359
- package/dist/icons/magic-book-icon/MagicBookIcon.stories.tsx +314 -272
- package/dist/icons/magic-edit-icon/MagicEditIcon.stories.tsx +238 -206
- package/dist/icons/maintenance-icon/MaintenanceIcon.stories.tsx +322 -276
- package/dist/icons/message-icon/MessageIcon.stories.tsx +192 -170
- package/dist/icons/minimize-icon/MinimizeIcon.stories.tsx +348 -304
- package/dist/icons/moon-icon/MoonIcon.stories.tsx +191 -167
- package/dist/icons/move-horizontal-icon/MoveHorizontalIcon.stories.tsx +380 -326
- package/dist/icons/move-vertical-icon/MoveVerticalIcon.stories.tsx +345 -291
- package/dist/icons/musical-note-icon/MusicalNoteIcon.stories.tsx +310 -266
- package/dist/icons/notepad-icon/NotepadIcon.stories.tsx +311 -271
- package/dist/icons/notes-icon/NotesIcon.stories.tsx +311 -271
- package/dist/icons/page-search-icon/PageSearchIcon.stories.tsx +309 -271
- package/dist/icons/page-text-icon/PageTextIcon.stories.tsx +248 -210
- package/dist/icons/paint-roll-icon/PaintRollIcon.stories.tsx +310 -262
- package/dist/icons/paper-plane-icon/PaperPlaneIcon.stories.tsx +274 -236
- package/dist/icons/pause-icon/PauseIcon.stories.tsx +324 -280
- package/dist/icons/pencil-icon/PencilIcon.stories.tsx +323 -281
- package/dist/icons/phone-icon/PhoneIcon.stories.tsx +288 -240
- package/dist/icons/plus-icon/PlusIcon.stories.tsx +315 -273
- package/dist/icons/pocket-studio-icon/PocketStudioIcon.stories.tsx +278 -234
- package/dist/icons/scroll-down-icon/ScrollDownIcon.stories.tsx +161 -151
- package/dist/icons/search-icon/SearchIcon.stories.tsx +324 -284
- package/dist/icons/setting-icon/SettingIcon.stories.tsx +306 -264
- package/dist/icons/share-icon/ShareIcon.stories.tsx +314 -272
- package/dist/icons/shield-icon/ShieldIcon.stories.tsx +281 -235
- package/dist/icons/site-logo-icon/SiteLogoIcon.stories.tsx +309 -250
- package/dist/icons/skip-backward-icon/SkipBackwardIcon.stories.tsx +317 -279
- package/dist/icons/skip-forward-icon/SkipForwardIcon.stories.tsx +315 -279
- package/dist/icons/sparkles-soft-icon/SparklesSoftIcon.stories.tsx +299 -253
- package/dist/icons/spinner-gradient-icon/SpinnerGradientIcon.stories.tsx +185 -169
- package/dist/icons/spinner-gradient-icon/index.tsx +6 -1
- package/dist/icons/spinner-solid-icon/SpinnerSolidIcon.stories.tsx +192 -168
- package/dist/icons/spinner-solid-icon/index.tsx +6 -1
- package/dist/icons/spinner-solid-neutral-icon/SpinnerSolidINeutralcon.stories.tsx +212 -178
- package/dist/icons/spinner-solid-neutral-icon/index.tsx +1 -1
- package/dist/icons/star-icon/StarIcon.stories.tsx +290 -244
- package/dist/icons/store-coin-icon/StoreCoinIcon.stories.tsx +286 -234
- package/dist/icons/suggestion-icon/SuggestionIcon.stories.tsx +272 -230
- package/dist/icons/sun-icon/SunIcon.stories.tsx +262 -226
- package/dist/icons/text-color-icon/TextColorIcon.stories.tsx +321 -279
- package/dist/icons/text-indicator-icon/TextIndicatorIcon.stories.tsx +332 -282
- package/dist/icons/threads-icon/ThreadsIcon.stories.tsx +394 -342
- package/dist/icons/tick-circle-icon/TickCircleIcon.stories.tsx +338 -290
- package/dist/icons/tick-icon/TickIcon.stories.tsx +364 -315
- package/dist/icons/trash-icon/TrashIcon.stories.tsx +293 -253
- package/dist/icons/twitter-x-icon/TwitterXIcon.stories.tsx +396 -338
- package/dist/icons/upload-icon/UploadIcon.stories.tsx +291 -247
- package/dist/icons/vertical-menu-icon/VerticalMenuIcon.stories.tsx +309 -271
- package/dist/icons/video-play-list-icon/VideoPlaylistIcon.stories.tsx +336 -290
- package/dist/icons/voice-playing-icon/VoicePlayingIcon.stories.tsx +382 -334
- package/dist/icons/volume-full-icon/VolumeFullIcon.stories.tsx +349 -305
- package/dist/icons/volume-half-icon/VolumeHalfIcon.stories.tsx +327 -295
- package/dist/icons/volume-off-icon/VolumeOffIcon.stories.tsx +336 -296
- package/dist/icons/warning-icon/WarningIcon.stories.tsx +314 -274
- package/dist/icons/youtube-icon/YoutubeIcon.stories.tsx +311 -261
- package/dist/index.cjs +84 -84
- package/dist/index.js +84 -84
- package/dist/styles/aural-all-theme.css +1222 -0
- package/dist/styles/{aural-theme.css → aural-dark-theme.css} +15 -3
- package/dist/styles/aural-light-theme.css +1047 -0
- package/package.json +1 -1
|
@@ -11,9 +11,9 @@ const meta: Meta<typeof MinimizeIcon> = {
|
|
|
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 MinimizeIcon> = {
|
|
|
40
40
|
background: transparent ;
|
|
41
41
|
}
|
|
42
42
|
body {
|
|
43
|
-
background:
|
|
43
|
+
background: var(--color-fm-surface-primary) ;
|
|
44
44
|
}
|
|
45
45
|
#storybook-docs {
|
|
46
|
-
background:
|
|
46
|
+
background: var(--color-fm-surface-primary) ;
|
|
47
47
|
}
|
|
48
48
|
.sbdocs-preview {
|
|
49
49
|
background: transparent ;
|
|
50
50
|
border: none ;
|
|
51
51
|
}
|
|
52
52
|
.sbdocs-h1, .sbdocs-h2, .sbdocs-h3, .sbdocs-h4, .sbdocs-h5, .sbdocs-h6 {
|
|
53
|
-
color:
|
|
53
|
+
color: var(--color-fm-icon-active) ;
|
|
54
54
|
}
|
|
55
55
|
.sbdocs-p, .sbdocs-li {
|
|
56
|
-
color:
|
|
56
|
+
color: var(--color-fm-secondary) ;
|
|
57
57
|
}
|
|
58
58
|
.sbdocs-code {
|
|
59
|
-
background:
|
|
60
|
-
color:
|
|
61
|
-
border: 1px solid
|
|
59
|
+
background: var(--color-fm-surface-secondary) ;
|
|
60
|
+
color: var(--color-fm-secondary-500) ;
|
|
61
|
+
border: 1px solid var(--color-fm-divider-secondary) ;
|
|
62
62
|
}
|
|
63
63
|
.sbdocs-pre {
|
|
64
|
-
background:
|
|
65
|
-
border: 1px solid
|
|
64
|
+
background: var(--color-fm-surface-secondary) ;
|
|
65
|
+
border: 1px solid var(--color-fm-divider-secondary) ;
|
|
66
66
|
}
|
|
67
67
|
.sbdocs-table {
|
|
68
|
-
background:
|
|
69
|
-
border: 1px solid
|
|
68
|
+
background: var(--color-fm-surface-secondary) ;
|
|
69
|
+
border: 1px solid var(--color-fm-divider-secondary) ;
|
|
70
70
|
}
|
|
71
71
|
.sbdocs-table th {
|
|
72
|
-
background:
|
|
73
|
-
color:
|
|
74
|
-
border-bottom: 1px solid
|
|
72
|
+
background: var(--color-fm-surface-secondary) ;
|
|
73
|
+
color: var(--color-fm-icon-active) ;
|
|
74
|
+
border-bottom: 1px solid var(--color-fm-divider-secondary) ;
|
|
75
75
|
}
|
|
76
76
|
.sbdocs-table td {
|
|
77
|
-
color:
|
|
78
|
-
border-bottom: 1px solid
|
|
77
|
+
color: var(--color-fm-secondary) ;
|
|
78
|
+
border-bottom: 1px solid var(--color-fm-divider-tertiary) ;
|
|
79
79
|
}
|
|
80
80
|
`}
|
|
81
81
|
</style>
|
|
82
82
|
|
|
83
|
-
<div className="
|
|
83
|
+
<div className="from-fm-surface-primary via-fm-icon-warning/5 to-fm-surface-primary min-h-screen bg-linear-to-br">
|
|
84
84
|
{/* Header */}
|
|
85
|
-
<div className="relative overflow-hidden border-b
|
|
86
|
-
<div className="absolute inset-0 bg-
|
|
85
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary relative overflow-hidden border-b backdrop-blur-xl">
|
|
86
|
+
<div className="from-fm-icon-warning/10 to-fm-icon-warning/10 absolute inset-0 bg-linear-to-r via-transparent" />
|
|
87
87
|
<div className="relative !mx-auto max-w-7xl px-6 py-16">
|
|
88
88
|
<div className="!space-y-6 text-center">
|
|
89
|
-
<div className="!mx-auto flex h-24 w-24 items-center justify-center rounded-2xl border
|
|
90
|
-
<MinimizeIcon className="h-12 w-12
|
|
89
|
+
<div className="border-fm-icon-warning/30 from-fm-icon-warning/20 to-fm-icon-warning/20 !mx-auto flex h-24 w-24 items-center justify-center rounded-2xl border bg-linear-to-br">
|
|
90
|
+
<MinimizeIcon className="text-fm-icon-warning h-12 w-12" />
|
|
91
91
|
</div>
|
|
92
|
-
<h1 className="text-5xl font-bold
|
|
92
|
+
<h1 className="text-fm-icon-active! text-5xl font-bold">
|
|
93
93
|
MinimizeIcon
|
|
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 compact and exit fullscreen control icon for reducing
|
|
97
97
|
interface elements. Features diagonal arrows pointing
|
|
98
98
|
inward, essential for media players, modal dialogs, window
|
|
@@ -103,28 +103,28 @@ const meta: Meta<typeof MinimizeIcon> = {
|
|
|
103
103
|
{/* Stats */}
|
|
104
104
|
<div className="flex items-center justify-center gap-8 pt-8">
|
|
105
105
|
<div className="text-center">
|
|
106
|
-
<div className="text-3xl font-bold
|
|
106
|
+
<div className="text-fm-icon-warning text-3xl font-bold">
|
|
107
107
|
Exit Fullscreen
|
|
108
108
|
</div>
|
|
109
|
-
<div className="text-
|
|
109
|
+
<div className="text-fm-tertiary text-sm">
|
|
110
110
|
Compact content
|
|
111
111
|
</div>
|
|
112
112
|
</div>
|
|
113
|
-
<div className="h-8 w-px
|
|
113
|
+
<div className="bg-fm-divider-primary h-8 w-px" />
|
|
114
114
|
<div className="text-center">
|
|
115
|
-
<div className="text-3xl font-bold
|
|
115
|
+
<div className="text-fm-icon-warning text-3xl font-bold">
|
|
116
116
|
Accessible
|
|
117
117
|
</div>
|
|
118
|
-
<div className="text-
|
|
118
|
+
<div className="text-fm-tertiary text-sm">
|
|
119
119
|
Screen reader friendly
|
|
120
120
|
</div>
|
|
121
121
|
</div>
|
|
122
|
-
<div className="h-8 w-px
|
|
122
|
+
<div className="bg-fm-divider-primary h-8 w-px" />
|
|
123
123
|
<div className="text-center">
|
|
124
|
-
<div className="text-3xl font-bold
|
|
124
|
+
<div className="text-fm-icon-warning text-3xl font-bold">
|
|
125
125
|
Universal
|
|
126
126
|
</div>
|
|
127
|
-
<div className="text-
|
|
127
|
+
<div className="text-fm-tertiary text-sm">
|
|
128
128
|
Standard minimize symbol
|
|
129
129
|
</div>
|
|
130
130
|
</div>
|
|
@@ -137,16 +137,16 @@ const meta: Meta<typeof MinimizeIcon> = {
|
|
|
137
137
|
<div className="!mx-auto max-w-7xl !space-y-16 px-6 py-12">
|
|
138
138
|
{/* Quick Usage */}
|
|
139
139
|
<div className="!space-y-8">
|
|
140
|
-
<h2 className="text-center text-3xl font-bold
|
|
140
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
141
141
|
Quick Start
|
|
142
142
|
</h2>
|
|
143
143
|
<div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
|
|
144
144
|
<div className="!space-y-4">
|
|
145
|
-
<h3 className="text-xl font-semibold
|
|
145
|
+
<h3 className="text-fm-icon-warning! text-xl font-semibold">
|
|
146
146
|
Basic Usage
|
|
147
147
|
</h3>
|
|
148
|
-
<div className="rounded-lg
|
|
149
|
-
<pre className="overflow-x-auto text-sm
|
|
148
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
149
|
+
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
150
150
|
{`import { MinimizeIcon } from "@icons/minimize-icon"
|
|
151
151
|
|
|
152
152
|
function VideoPlayer() {
|
|
@@ -165,12 +165,12 @@ function VideoPlayer() {
|
|
|
165
165
|
</div>
|
|
166
166
|
|
|
167
167
|
<div className="!space-y-4">
|
|
168
|
-
<h3 className="text-xl font-semibold
|
|
168
|
+
<h3 className="text-fm-icon-warning! text-xl font-semibold">
|
|
169
169
|
Live Preview
|
|
170
170
|
</h3>
|
|
171
|
-
<div className="flex h-32 items-center justify-center rounded-lg border
|
|
172
|
-
<button className="
|
|
173
|
-
<MinimizeIcon 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-warning/20 bg-fm-icon-warning/10 hover:bg-fm-icon-warning/20 rounded-lg border p-3 transition-colors">
|
|
173
|
+
<MinimizeIcon className="text-fm-icon-warning h-6 w-6" />
|
|
174
174
|
</button>
|
|
175
175
|
</div>
|
|
176
176
|
</div>
|
|
@@ -179,122 +179,130 @@ function VideoPlayer() {
|
|
|
179
179
|
|
|
180
180
|
{/* Props Documentation */}
|
|
181
181
|
<div className="!space-y-8">
|
|
182
|
-
<h2 className="text-center text-3xl font-bold
|
|
182
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
183
183
|
Props & Configuration
|
|
184
184
|
</h2>
|
|
185
185
|
|
|
186
|
-
<div className="overflow-hidden rounded-lg border
|
|
187
|
-
<div className="bg-
|
|
188
|
-
<h3 className="text-xl font-semibold
|
|
186
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary overflow-hidden rounded-lg border">
|
|
187
|
+
<div className="bg-fm-surface-secondary p-4">
|
|
188
|
+
<h3 className="text-fm-icon-active! text-xl font-semibold">
|
|
189
|
+
Props
|
|
190
|
+
</h3>
|
|
189
191
|
</div>
|
|
190
192
|
<table className="!my-0 w-full">
|
|
191
|
-
<thead className="bg-
|
|
192
|
-
<tr className="border-
|
|
193
|
-
<th className="px-6 py-4 text-left text-sm font-semibold
|
|
193
|
+
<thead className="bg-fm-surface-secondary">
|
|
194
|
+
<tr className="border-fm-divider-secondary border-b">
|
|
195
|
+
<th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
|
|
194
196
|
Prop
|
|
195
197
|
</th>
|
|
196
|
-
<th className="px-6 py-4 text-left text-sm font-semibold
|
|
198
|
+
<th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
|
|
197
199
|
Type
|
|
198
200
|
</th>
|
|
199
|
-
<th className="px-6 py-4 text-left text-sm font-semibold
|
|
201
|
+
<th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
|
|
200
202
|
Default
|
|
201
203
|
</th>
|
|
202
|
-
<th className="px-6 py-4 text-left text-sm font-semibold
|
|
204
|
+
<th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
|
|
203
205
|
Description
|
|
204
206
|
</th>
|
|
205
207
|
</tr>
|
|
206
208
|
</thead>
|
|
207
209
|
<tbody>
|
|
208
210
|
{" "}
|
|
209
|
-
<tr className="
|
|
210
|
-
<td className="px-6 py-4 font-mono text-sm
|
|
211
|
+
<tr className="bg-fm-surface-secondary!">
|
|
212
|
+
<td className="text-fm-icon-info! px-6 py-4 font-mono text-sm">
|
|
211
213
|
withAccessibility
|
|
212
214
|
</td>
|
|
213
|
-
<td className="px-6 py-4 text-sm
|
|
215
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
214
216
|
boolean
|
|
215
217
|
</td>
|
|
216
|
-
<td className="px-6 py-4 text-sm
|
|
218
|
+
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
217
219
|
true
|
|
218
220
|
</td>
|
|
219
|
-
<td className="px-6 py-4 text-sm
|
|
221
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
220
222
|
Whether to wrap the icon with accessibility feature
|
|
221
223
|
</td>
|
|
222
224
|
</tr>
|
|
223
|
-
<tr className="border-
|
|
224
|
-
<td className="px-6 py-4 font-mono text-sm
|
|
225
|
+
<tr className="border-fm-divider-tertiary bg-fm-surface-secondary! border-b">
|
|
226
|
+
<td className="text-fm-icon-warning! px-6 py-4 font-mono text-sm">
|
|
225
227
|
height
|
|
226
228
|
</td>
|
|
227
|
-
<td className="px-6 py-4 text-sm
|
|
229
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
228
230
|
number | string
|
|
229
231
|
</td>
|
|
230
|
-
<td className="px-6 py-4 text-sm
|
|
231
|
-
|
|
232
|
+
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
233
|
+
24
|
|
234
|
+
</td>
|
|
235
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
232
236
|
Height of the icon in pixels
|
|
233
237
|
</td>
|
|
234
238
|
</tr>
|
|
235
|
-
<tr className="border-
|
|
236
|
-
<td className="px-6 py-4 font-mono text-sm
|
|
239
|
+
<tr className="border-fm-divider-tertiary border-b">
|
|
240
|
+
<td className="text-fm-icon-warning! px-6 py-4 font-mono text-sm">
|
|
237
241
|
stroke
|
|
238
242
|
</td>
|
|
239
|
-
<td className="px-6 py-4 text-sm
|
|
243
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
240
244
|
string
|
|
241
245
|
</td>
|
|
242
|
-
<td className="px-6 py-4 text-sm
|
|
246
|
+
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
243
247
|
currentColor
|
|
244
248
|
</td>
|
|
245
|
-
<td className="px-6 py-4 text-sm
|
|
249
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
246
250
|
Stroke color of the icon
|
|
247
251
|
</td>
|
|
248
252
|
</tr>
|
|
249
|
-
<tr className="border-
|
|
250
|
-
<td className="px-6 py-4 font-mono text-sm
|
|
253
|
+
<tr className="border-fm-divider-tertiary bg-fm-surface-secondary! border-b">
|
|
254
|
+
<td className="text-fm-icon-warning! px-6 py-4 font-mono text-sm">
|
|
251
255
|
strokeWidth
|
|
252
256
|
</td>
|
|
253
|
-
<td className="px-6 py-4 text-sm
|
|
257
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
254
258
|
string | number
|
|
255
259
|
</td>
|
|
256
|
-
<td className="px-6 py-4 text-sm
|
|
260
|
+
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
257
261
|
1.5
|
|
258
262
|
</td>
|
|
259
|
-
<td className="px-6 py-4 text-sm
|
|
263
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
260
264
|
Width of the stroke
|
|
261
265
|
</td>
|
|
262
266
|
</tr>
|
|
263
|
-
<tr className="border-
|
|
264
|
-
<td className="px-6 py-4 font-mono text-sm
|
|
267
|
+
<tr className="border-fm-divider-tertiary border-b">
|
|
268
|
+
<td className="text-fm-icon-warning! px-6 py-4 font-mono text-sm">
|
|
265
269
|
strokeLinecap
|
|
266
270
|
</td>
|
|
267
|
-
<td className="px-6 py-4 text-sm
|
|
271
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
268
272
|
string
|
|
269
273
|
</td>
|
|
270
|
-
<td className="px-6 py-4 text-sm
|
|
274
|
+
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
271
275
|
square
|
|
272
276
|
</td>
|
|
273
|
-
<td className="px-6 py-4 text-sm
|
|
277
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
274
278
|
Style of line endings (square for crisp corners)
|
|
275
279
|
</td>
|
|
276
280
|
</tr>
|
|
277
|
-
<tr className="border-
|
|
278
|
-
<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-warning! px-6 py-4 font-mono text-sm">
|
|
279
283
|
className
|
|
280
284
|
</td>
|
|
281
|
-
<td className="px-6 py-4 text-sm
|
|
285
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
282
286
|
string
|
|
283
287
|
</td>
|
|
284
|
-
<td className="px-6 py-4 text-sm
|
|
285
|
-
|
|
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">
|
|
286
292
|
CSS classes for styling (use for overrides)
|
|
287
293
|
</td>
|
|
288
294
|
</tr>
|
|
289
|
-
<tr className="
|
|
290
|
-
<td className="px-6 py-4 font-mono text-sm
|
|
295
|
+
<tr className="bg-fm-surface-secondary!">
|
|
296
|
+
<td className="text-fm-icon-warning! px-6 py-4 font-mono text-sm">
|
|
291
297
|
...svgProps
|
|
292
298
|
</td>
|
|
293
|
-
<td className="px-6 py-4 text-sm
|
|
299
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
294
300
|
SVGProps
|
|
295
301
|
</td>
|
|
296
|
-
<td className="px-6 py-4 text-sm
|
|
297
|
-
|
|
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">
|
|
298
306
|
All standard SVG element props
|
|
299
307
|
</td>
|
|
300
308
|
</tr>
|
|
@@ -305,50 +313,62 @@ function VideoPlayer() {
|
|
|
305
313
|
|
|
306
314
|
{/* Size Variations */}
|
|
307
315
|
<div className="!space-y-8">
|
|
308
|
-
<h2 className="text-center text-3xl font-bold
|
|
316
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
309
317
|
Size Variations
|
|
310
318
|
</h2>
|
|
311
|
-
<div className="rounded-lg border
|
|
319
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-8">
|
|
312
320
|
<div className="!space-y-6">
|
|
313
321
|
<div className="grid grid-cols-1 gap-8 md:grid-cols-2">
|
|
314
322
|
<div className="!space-y-4">
|
|
315
|
-
<h3 className="text-lg font-semibold
|
|
323
|
+
<h3 className="text-fm-icon-warning! text-lg font-semibold">
|
|
316
324
|
Standard Sizes
|
|
317
325
|
</h3>
|
|
318
|
-
<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">
|
|
319
327
|
<div className="text-center">
|
|
320
|
-
<MinimizeIcon className="!mx-auto mb-2 h-3 w-3
|
|
321
|
-
<span className="text-
|
|
328
|
+
<MinimizeIcon className="text-fm-icon-warning !mx-auto mb-2 h-3 w-3" />
|
|
329
|
+
<span className="text-fm-tertiary text-xs">
|
|
330
|
+
12px
|
|
331
|
+
</span>
|
|
322
332
|
</div>
|
|
323
333
|
<div className="text-center">
|
|
324
|
-
<MinimizeIcon className="!mx-auto mb-2 h-4 w-4
|
|
325
|
-
<span className="text-
|
|
334
|
+
<MinimizeIcon className="text-fm-icon-warning !mx-auto mb-2 h-4 w-4" />
|
|
335
|
+
<span className="text-fm-tertiary text-xs">
|
|
336
|
+
16px
|
|
337
|
+
</span>
|
|
326
338
|
</div>
|
|
327
339
|
<div className="text-center">
|
|
328
|
-
<MinimizeIcon className="!mx-auto mb-2 h-5 w-5
|
|
329
|
-
<span className="text-
|
|
340
|
+
<MinimizeIcon className="text-fm-icon-warning !mx-auto mb-2 h-5 w-5" />
|
|
341
|
+
<span className="text-fm-tertiary text-xs">
|
|
342
|
+
20px
|
|
343
|
+
</span>
|
|
330
344
|
</div>
|
|
331
345
|
<div className="text-center">
|
|
332
|
-
<MinimizeIcon className="!mx-auto mb-2 h-6 w-6
|
|
333
|
-
<span className="text-
|
|
346
|
+
<MinimizeIcon className="text-fm-icon-warning !mx-auto mb-2 h-6 w-6" />
|
|
347
|
+
<span className="text-fm-tertiary text-xs">
|
|
348
|
+
24px
|
|
349
|
+
</span>
|
|
334
350
|
</div>
|
|
335
351
|
<div className="text-center">
|
|
336
|
-
<MinimizeIcon className="!mx-auto mb-2 h-8 w-8
|
|
337
|
-
<span className="text-
|
|
352
|
+
<MinimizeIcon className="text-fm-icon-warning !mx-auto mb-2 h-8 w-8" />
|
|
353
|
+
<span className="text-fm-tertiary text-xs">
|
|
354
|
+
32px
|
|
355
|
+
</span>
|
|
338
356
|
</div>
|
|
339
357
|
<div className="text-center">
|
|
340
|
-
<MinimizeIcon className="!mx-auto mb-2 h-12 w-12
|
|
341
|
-
<span className="text-
|
|
358
|
+
<MinimizeIcon className="text-fm-icon-warning !mx-auto mb-2 h-12 w-12" />
|
|
359
|
+
<span className="text-fm-tertiary text-xs">
|
|
360
|
+
48px
|
|
361
|
+
</span>
|
|
342
362
|
</div>
|
|
343
363
|
</div>
|
|
344
364
|
</div>
|
|
345
365
|
|
|
346
366
|
<div className="!space-y-4">
|
|
347
|
-
<h3 className="text-lg font-semibold
|
|
367
|
+
<h3 className="text-fm-icon-warning! text-lg font-semibold">
|
|
348
368
|
Code Example
|
|
349
369
|
</h3>
|
|
350
|
-
<div className="rounded-lg
|
|
351
|
-
<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">
|
|
352
372
|
{`// Small (16px) - compact controls
|
|
353
373
|
<MinimizeIcon className="h-4 w-4" />
|
|
354
374
|
|
|
@@ -370,56 +390,56 @@ function VideoPlayer() {
|
|
|
370
390
|
|
|
371
391
|
{/* Color Variations */}
|
|
372
392
|
<div className="!space-y-8">
|
|
373
|
-
<h2 className="text-center text-3xl font-bold
|
|
393
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
374
394
|
Color Variations
|
|
375
395
|
</h2>
|
|
376
396
|
<div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
|
|
377
397
|
<div className="!space-y-4">
|
|
378
|
-
<h3 className="text-lg font-semibold
|
|
398
|
+
<h3 className="text-fm-icon-warning! text-lg font-semibold">
|
|
379
399
|
Semantic Colors
|
|
380
400
|
</h3>
|
|
381
|
-
<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">
|
|
382
402
|
<div className="flex items-center gap-4">
|
|
383
|
-
<MinimizeIcon className="h-6 w-6
|
|
403
|
+
<MinimizeIcon className="text-fm-icon-warning h-6 w-6" />
|
|
384
404
|
<div>
|
|
385
|
-
<div className="text-sm font-medium
|
|
405
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
386
406
|
Exit Fullscreen
|
|
387
407
|
</div>
|
|
388
|
-
<div className="text-
|
|
389
|
-
text-
|
|
408
|
+
<div className="text-fm-tertiary text-xs">
|
|
409
|
+
text-fm-icon-warning
|
|
390
410
|
</div>
|
|
391
411
|
</div>
|
|
392
412
|
</div>
|
|
393
413
|
<div className="flex items-center gap-4">
|
|
394
|
-
<MinimizeIcon className="h-6 w-6
|
|
414
|
+
<MinimizeIcon className="text-fm-icon-warning h-6 w-6" />
|
|
395
415
|
<div>
|
|
396
|
-
<div className="text-sm font-medium
|
|
416
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
397
417
|
Compact View
|
|
398
418
|
</div>
|
|
399
|
-
<div className="text-
|
|
400
|
-
text-
|
|
419
|
+
<div className="text-fm-tertiary text-xs">
|
|
420
|
+
text-fm-icon-warning
|
|
401
421
|
</div>
|
|
402
422
|
</div>
|
|
403
423
|
</div>
|
|
404
424
|
<div className="flex items-center gap-4">
|
|
405
|
-
<MinimizeIcon className="h-6 w-6
|
|
425
|
+
<MinimizeIcon className="text-fm-icon-warning h-6 w-6" />
|
|
406
426
|
<div>
|
|
407
|
-
<div className="text-sm font-medium
|
|
427
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
408
428
|
Window Minimize
|
|
409
429
|
</div>
|
|
410
|
-
<div className="text-
|
|
411
|
-
text-
|
|
430
|
+
<div className="text-fm-tertiary text-xs">
|
|
431
|
+
text-fm-icon-warning
|
|
412
432
|
</div>
|
|
413
433
|
</div>
|
|
414
434
|
</div>
|
|
415
435
|
<div className="flex items-center gap-4">
|
|
416
|
-
<MinimizeIcon className="h-6 w-6
|
|
436
|
+
<MinimizeIcon className="text-fm-icon-negative h-6 w-6" />
|
|
417
437
|
<div>
|
|
418
|
-
<div className="text-sm font-medium
|
|
438
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
419
439
|
Close/Dismiss
|
|
420
440
|
</div>
|
|
421
|
-
<div className="text-
|
|
422
|
-
text-
|
|
441
|
+
<div className="text-fm-tertiary text-xs">
|
|
442
|
+
text-fm-icon-negative
|
|
423
443
|
</div>
|
|
424
444
|
</div>
|
|
425
445
|
</div>
|
|
@@ -427,11 +447,11 @@ function VideoPlayer() {
|
|
|
427
447
|
</div>
|
|
428
448
|
|
|
429
449
|
<div className="!space-y-4">
|
|
430
|
-
<h3 className="text-lg font-semibold
|
|
450
|
+
<h3 className="text-fm-icon-warning! text-lg font-semibold">
|
|
431
451
|
Custom Colors
|
|
432
452
|
</h3>
|
|
433
|
-
<div className="rounded-lg
|
|
434
|
-
<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">
|
|
435
455
|
{`// Using Tailwind classes
|
|
436
456
|
<MinimizeIcon className="h-6 w-6 text-orange-400" />
|
|
437
457
|
<MinimizeIcon className="h-6 w-6 text-amber-500" />
|
|
@@ -456,44 +476,44 @@ function VideoPlayer() {
|
|
|
456
476
|
|
|
457
477
|
{/* Usage Examples */}
|
|
458
478
|
<div className="!space-y-8">
|
|
459
|
-
<h2 className="text-center text-3xl font-bold
|
|
479
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
460
480
|
Usage Examples
|
|
461
481
|
</h2>
|
|
462
482
|
|
|
463
483
|
<div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
|
|
464
484
|
{/* Video Player Fullscreen */}
|
|
465
485
|
<div className="!space-y-4">
|
|
466
|
-
<h3 className="text-lg font-semibold
|
|
486
|
+
<h3 className="text-fm-icon-warning! text-lg font-semibold">
|
|
467
487
|
Video Player Fullscreen
|
|
468
488
|
</h3>
|
|
469
489
|
<div className="!space-y-4">
|
|
470
|
-
<div className="rounded-lg border
|
|
471
|
-
<div className="relative mb-4 aspect-video overflow-hidden rounded-lg
|
|
472
|
-
<div className="absolute inset-0 flex items-center justify-center bg-
|
|
473
|
-
<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-primary 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">
|
|
474
494
|
<div className="ml-1 h-0 w-0 border-y-[8px] border-l-[12px] border-y-transparent border-l-white" />
|
|
475
495
|
</div>
|
|
476
496
|
</div>
|
|
477
497
|
<div className="absolute top-4 right-4">
|
|
478
|
-
<button className="
|
|
479
|
-
<MinimizeIcon className="h-5 w-5
|
|
498
|
+
<button className="border-fm-icon-warning/30 bg-fm-surface-secondary hover:bg-fm-icon-warning/20 rounded border p-3 transition-colors">
|
|
499
|
+
<MinimizeIcon className="text-fm-icon-warning h-5 w-5" />
|
|
480
500
|
</button>
|
|
481
501
|
</div>
|
|
482
|
-
<div className="absolute right-0 bottom-0 left-0 bg-
|
|
502
|
+
<div className="from-fm-surface-primary/80 absolute right-0 bottom-0 left-0 bg-linear-to-t to-transparent p-4">
|
|
483
503
|
<div className="flex items-center justify-between">
|
|
484
504
|
<div className="flex items-center gap-3">
|
|
485
|
-
<button className="rounded p-2 transition-colors
|
|
505
|
+
<button className="hover:bg-fm-divider-primary rounded p-2 transition-colors">
|
|
486
506
|
<div className="h-0 w-0 border-y-[6px] border-l-[8px] border-y-transparent border-l-white" />
|
|
487
507
|
</button>
|
|
488
|
-
<span className="text-
|
|
508
|
+
<span className="text-fm-icon-active text-sm">
|
|
489
509
|
1:23 / 2:18
|
|
490
510
|
</span>
|
|
491
511
|
</div>
|
|
492
512
|
<div className="flex items-center gap-2">
|
|
493
|
-
<span className="text-
|
|
513
|
+
<span className="text-fm-tertiary text-xs">
|
|
494
514
|
Fullscreen Mode
|
|
495
515
|
</span>
|
|
496
|
-
<kbd className="
|
|
516
|
+
<kbd className="bg-fm-surface-secondary text-fm-icon-active rounded px-2 py-1 text-xs">
|
|
497
517
|
ESC
|
|
498
518
|
</kbd>
|
|
499
519
|
</div>
|
|
@@ -501,16 +521,16 @@ function VideoPlayer() {
|
|
|
501
521
|
</div>
|
|
502
522
|
</div>
|
|
503
523
|
<div className="text-center">
|
|
504
|
-
<div className="text-sm font-medium
|
|
524
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
505
525
|
"Space Documentary - Full Experience"
|
|
506
526
|
</div>
|
|
507
|
-
<div className="text-
|
|
527
|
+
<div className="text-fm-tertiary text-xs">
|
|
508
528
|
Click minimize to exit fullscreen mode
|
|
509
529
|
</div>
|
|
510
530
|
</div>
|
|
511
531
|
</div>
|
|
512
|
-
<div className="rounded-lg
|
|
513
|
-
<pre className="overflow-x-auto text-sm
|
|
532
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
533
|
+
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
514
534
|
{`// Fullscreen video player with exit control
|
|
515
535
|
<div className="fullscreen-video-player">
|
|
516
536
|
<video ref={videoRef} className="fullscreen-video" />
|
|
@@ -539,55 +559,55 @@ function VideoPlayer() {
|
|
|
539
559
|
|
|
540
560
|
{/* Window Controls */}
|
|
541
561
|
<div className="!space-y-4">
|
|
542
|
-
<h3 className="text-lg font-semibold
|
|
562
|
+
<h3 className="text-fm-icon-warning! text-lg font-semibold">
|
|
543
563
|
Window Controls
|
|
544
564
|
</h3>
|
|
545
565
|
<div className="!space-y-4">
|
|
546
|
-
<div className="rounded-lg border
|
|
547
|
-
<div className="overflow-hidden rounded-lg border
|
|
548
|
-
<div className="flex items-center justify-between border-b
|
|
566
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
|
|
567
|
+
<div className="border-fm-divider-primary bg-fm-surface-secondary overflow-hidden rounded-lg border">
|
|
568
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary flex items-center justify-between border-b p-3">
|
|
549
569
|
<div className="flex items-center gap-3">
|
|
550
570
|
<div className="flex gap-2">
|
|
551
|
-
<div className="h-3 w-3 rounded-full
|
|
552
|
-
<div className="h-3 w-3 rounded-full
|
|
553
|
-
<div className="h-3 w-3 rounded-full
|
|
571
|
+
<div className="bg-fm-icon-negative h-3 w-3 rounded-full"></div>
|
|
572
|
+
<div className="bg-fm-icon-warning h-3 w-3 rounded-full"></div>
|
|
573
|
+
<div className="bg-fm-icon-positive h-3 w-3 rounded-full"></div>
|
|
554
574
|
</div>
|
|
555
|
-
<span className="text-
|
|
575
|
+
<span className="text-fm-icon-active text-sm">
|
|
556
576
|
Application Window
|
|
557
577
|
</span>
|
|
558
578
|
</div>
|
|
559
579
|
<div className="flex items-center gap-1">
|
|
560
|
-
<button className="
|
|
561
|
-
<MinimizeIcon className="h-3 w-3
|
|
580
|
+
<button className="border-fm-icon-warning/30 bg-fm-icon-warning/10 hover:bg-fm-icon-warning/20 rounded border p-1.5 transition-colors">
|
|
581
|
+
<MinimizeIcon className="text-fm-icon-warning h-3 w-3" />
|
|
562
582
|
</button>
|
|
563
|
-
<button className="rounded p-1.5 transition-colors
|
|
564
|
-
<div className="h-3 w-3 rounded-sm border
|
|
583
|
+
<button className="hover:bg-fm-divider-primary rounded p-1.5 transition-colors">
|
|
584
|
+
<div className="border-fm-divider-contrast h-3 w-3 rounded-sm border"></div>
|
|
565
585
|
</button>
|
|
566
|
-
<button className="rounded p-1.5 transition-colors
|
|
586
|
+
<button className="hover:bg-fm-icon-negative/20 rounded p-1.5 transition-colors">
|
|
567
587
|
<div className="relative h-3 w-3">
|
|
568
|
-
<div className="absolute inset-0 rotate-45 border
|
|
569
|
-
<div className="absolute inset-0 -rotate-45 border
|
|
588
|
+
<div className="border-fm-divider-contrast absolute inset-0 rotate-45 border"></div>
|
|
589
|
+
<div className="border-fm-divider-contrast absolute inset-0 -rotate-45 border"></div>
|
|
570
590
|
</div>
|
|
571
591
|
</button>
|
|
572
592
|
</div>
|
|
573
593
|
</div>
|
|
574
594
|
<div className="p-6">
|
|
575
595
|
<div className="text-center">
|
|
576
|
-
<div className="mx-auto mb-4 flex h-24 w-24 items-center justify-center rounded-lg
|
|
596
|
+
<div className="bg-fm-surface-secondary mx-auto mb-4 flex h-24 w-24 items-center justify-center rounded-lg">
|
|
577
597
|
<span className="text-2xl">📄</span>
|
|
578
598
|
</div>
|
|
579
|
-
<div className="text-sm font-medium
|
|
599
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
580
600
|
Document Editor
|
|
581
601
|
</div>
|
|
582
|
-
<div className="text-
|
|
602
|
+
<div className="text-fm-tertiary text-xs">
|
|
583
603
|
Unsaved changes
|
|
584
604
|
</div>
|
|
585
605
|
</div>
|
|
586
606
|
</div>
|
|
587
607
|
</div>
|
|
588
608
|
</div>
|
|
589
|
-
<div className="rounded-lg
|
|
590
|
-
<pre className="overflow-x-auto text-sm
|
|
609
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
610
|
+
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
591
611
|
{`// Desktop application window controls
|
|
592
612
|
<div className="window">
|
|
593
613
|
<div className="window-titlebar">
|
|
@@ -618,63 +638,63 @@ function VideoPlayer() {
|
|
|
618
638
|
|
|
619
639
|
{/* Modal Collapse */}
|
|
620
640
|
<div className="!space-y-4">
|
|
621
|
-
<h3 className="text-lg font-semibold
|
|
641
|
+
<h3 className="text-fm-icon-warning! text-lg font-semibold">
|
|
622
642
|
Modal Collapse
|
|
623
643
|
</h3>
|
|
624
644
|
<div className="!space-y-4">
|
|
625
|
-
<div className="rounded-lg border
|
|
626
|
-
<div className="rounded-lg border
|
|
645
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
|
|
646
|
+
<div className="border-fm-divider-primary bg-fm-surface-secondary rounded-lg border p-6">
|
|
627
647
|
<div className="mb-4 flex items-start justify-between">
|
|
628
648
|
<div>
|
|
629
|
-
<h4 className="text-lg font-semibold
|
|
649
|
+
<h4 className="text-fm-icon-active text-lg font-semibold">
|
|
630
650
|
Settings Panel
|
|
631
651
|
</h4>
|
|
632
|
-
<p className="text-
|
|
652
|
+
<p className="text-fm-tertiary text-sm">
|
|
633
653
|
Customize your preferences
|
|
634
654
|
</p>
|
|
635
655
|
</div>
|
|
636
656
|
<div className="flex items-center gap-2">
|
|
637
|
-
<button className="
|
|
638
|
-
<MinimizeIcon className="h-4 w-4
|
|
657
|
+
<button className="border-fm-icon-warning/30 bg-fm-icon-warning/10 hover:bg-fm-icon-warning/20 rounded border p-2 transition-colors">
|
|
658
|
+
<MinimizeIcon className="text-fm-icon-warning h-4 w-4" />
|
|
639
659
|
</button>
|
|
640
|
-
<button className="rounded p-2 transition-colors
|
|
660
|
+
<button className="hover:bg-fm-divider-primary rounded p-2 transition-colors">
|
|
641
661
|
<div className="relative h-4 w-4">
|
|
642
|
-
<div className="absolute inset-0 rotate-45 border
|
|
643
|
-
<div className="absolute inset-0 -rotate-45 border
|
|
662
|
+
<div className="border-fm-divider-contrast absolute inset-0 rotate-45 border"></div>
|
|
663
|
+
<div className="border-fm-divider-contrast absolute inset-0 -rotate-45 border"></div>
|
|
644
664
|
</div>
|
|
645
665
|
</button>
|
|
646
666
|
</div>
|
|
647
667
|
</div>
|
|
648
668
|
<div className="space-y-4">
|
|
649
669
|
<div className="flex items-center justify-between">
|
|
650
|
-
<span className="text-
|
|
670
|
+
<span className="text-fm-icon-active text-sm">
|
|
651
671
|
Dark Mode
|
|
652
672
|
</span>
|
|
653
|
-
<div className="relative h-6 w-10 rounded-full
|
|
654
|
-
<div className="absolute top-1 right-1 h-4 w-4 rounded-full
|
|
673
|
+
<div className="bg-fm-icon-warning relative h-6 w-10 rounded-full">
|
|
674
|
+
<div className="bg-fm-surface-contrast absolute top-1 right-1 h-4 w-4 rounded-full"></div>
|
|
655
675
|
</div>
|
|
656
676
|
</div>
|
|
657
677
|
<div className="flex items-center justify-between">
|
|
658
|
-
<span className="text-
|
|
678
|
+
<span className="text-fm-icon-active text-sm">
|
|
659
679
|
Notifications
|
|
660
680
|
</span>
|
|
661
|
-
<div className="relative h-6 w-10 rounded-full
|
|
662
|
-
<div className="absolute top-1 left-1 h-4 w-4 rounded-full
|
|
681
|
+
<div className="bg-fm-divider-primary relative h-6 w-10 rounded-full">
|
|
682
|
+
<div className="bg-fm-surface-contrast absolute top-1 left-1 h-4 w-4 rounded-full"></div>
|
|
663
683
|
</div>
|
|
664
684
|
</div>
|
|
665
685
|
<div className="flex items-center justify-between">
|
|
666
|
-
<span className="text-
|
|
686
|
+
<span className="text-fm-icon-active text-sm">
|
|
667
687
|
Auto-save
|
|
668
688
|
</span>
|
|
669
|
-
<div className="relative h-6 w-10 rounded-full
|
|
670
|
-
<div className="absolute top-1 right-1 h-4 w-4 rounded-full
|
|
689
|
+
<div className="bg-fm-icon-warning relative h-6 w-10 rounded-full">
|
|
690
|
+
<div className="bg-fm-surface-contrast absolute top-1 right-1 h-4 w-4 rounded-full"></div>
|
|
671
691
|
</div>
|
|
672
692
|
</div>
|
|
673
693
|
</div>
|
|
674
694
|
</div>
|
|
675
695
|
</div>
|
|
676
|
-
<div className="rounded-lg
|
|
677
|
-
<pre className="overflow-x-auto text-sm
|
|
696
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
697
|
+
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
678
698
|
{`// Modal with minimize/collapse option
|
|
679
699
|
<Modal isOpen={isSettingsOpen} onClose={closeSettings}>
|
|
680
700
|
<div className="modal-header">
|
|
@@ -704,43 +724,43 @@ function VideoPlayer() {
|
|
|
704
724
|
|
|
705
725
|
{/* Sidebar Collapse */}
|
|
706
726
|
<div className="!space-y-4">
|
|
707
|
-
<h3 className="text-lg font-semibold
|
|
727
|
+
<h3 className="text-fm-icon-warning! text-lg font-semibold">
|
|
708
728
|
Sidebar Collapse
|
|
709
729
|
</h3>
|
|
710
730
|
<div className="!space-y-4">
|
|
711
|
-
<div className="rounded-lg border
|
|
712
|
-
<div className="flex overflow-hidden rounded-lg border
|
|
713
|
-
<div className="w-64 border-r
|
|
731
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
|
|
732
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary flex overflow-hidden rounded-lg border">
|
|
733
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary w-64 border-r p-4">
|
|
714
734
|
<div className="mb-4 flex items-center justify-between">
|
|
715
|
-
<h4 className="text-sm font-semibold
|
|
735
|
+
<h4 className="text-fm-icon-active text-sm font-semibold">
|
|
716
736
|
Navigation
|
|
717
737
|
</h4>
|
|
718
|
-
<button className="
|
|
719
|
-
<MinimizeIcon className="h-3 w-3
|
|
738
|
+
<button className="border-fm-icon-warning/30 bg-fm-icon-warning/10 hover:bg-fm-icon-warning/20 rounded border p-1 transition-colors">
|
|
739
|
+
<MinimizeIcon className="text-fm-icon-warning h-3 w-3" />
|
|
720
740
|
</button>
|
|
721
741
|
</div>
|
|
722
742
|
<nav className="space-y-2">
|
|
723
743
|
<a
|
|
724
744
|
href="#"
|
|
725
|
-
className="
|
|
745
|
+
className="bg-fm-icon-warning/20 text-fm-icon-active block rounded px-3 py-2 text-sm"
|
|
726
746
|
>
|
|
727
747
|
Dashboard
|
|
728
748
|
</a>
|
|
729
749
|
<a
|
|
730
750
|
href="#"
|
|
731
|
-
className="block rounded px-3 py-2 text-sm
|
|
751
|
+
className="text-fm-secondary hover:bg-fm-surface-secondary block rounded px-3 py-2 text-sm transition-colors"
|
|
732
752
|
>
|
|
733
753
|
Projects
|
|
734
754
|
</a>
|
|
735
755
|
<a
|
|
736
756
|
href="#"
|
|
737
|
-
className="block rounded px-3 py-2 text-sm
|
|
757
|
+
className="text-fm-secondary hover:bg-fm-surface-secondary block rounded px-3 py-2 text-sm transition-colors"
|
|
738
758
|
>
|
|
739
759
|
Team
|
|
740
760
|
</a>
|
|
741
761
|
<a
|
|
742
762
|
href="#"
|
|
743
|
-
className="block rounded px-3 py-2 text-sm
|
|
763
|
+
className="text-fm-secondary hover:bg-fm-surface-secondary block rounded px-3 py-2 text-sm transition-colors"
|
|
744
764
|
>
|
|
745
765
|
Settings
|
|
746
766
|
</a>
|
|
@@ -748,21 +768,21 @@ function VideoPlayer() {
|
|
|
748
768
|
</div>
|
|
749
769
|
<div className="flex-1 p-6">
|
|
750
770
|
<div className="text-center">
|
|
751
|
-
<div className="mx-auto mb-4 flex h-20 w-32 items-center justify-center rounded-lg
|
|
771
|
+
<div className="bg-fm-surface-secondary mx-auto mb-4 flex h-20 w-32 items-center justify-center rounded-lg">
|
|
752
772
|
<span className="text-3xl">📊</span>
|
|
753
773
|
</div>
|
|
754
|
-
<div className="text-lg font-medium
|
|
774
|
+
<div className="text-fm-icon-active text-lg font-medium">
|
|
755
775
|
Main Content Area
|
|
756
776
|
</div>
|
|
757
|
-
<div className="text-
|
|
777
|
+
<div className="text-fm-tertiary text-sm">
|
|
758
778
|
Your dashboard content goes here
|
|
759
779
|
</div>
|
|
760
780
|
</div>
|
|
761
781
|
</div>
|
|
762
782
|
</div>
|
|
763
783
|
</div>
|
|
764
|
-
<div className="rounded-lg
|
|
765
|
-
<pre className="overflow-x-auto text-sm
|
|
784
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
785
|
+
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
766
786
|
{`// Collapsible sidebar navigation
|
|
767
787
|
<div className="app-layout">
|
|
768
788
|
<aside className="sidebar">
|
|
@@ -796,65 +816,65 @@ function VideoPlayer() {
|
|
|
796
816
|
|
|
797
817
|
{/* Accessibility */}
|
|
798
818
|
<div className="!space-y-8">
|
|
799
|
-
<h2 className="text-center text-3xl font-bold
|
|
819
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
800
820
|
Accessibility Features
|
|
801
821
|
</h2>
|
|
802
822
|
<div className="grid grid-cols-1 gap-8 md:grid-cols-2">
|
|
803
|
-
<div className="!space-y-4 rounded-lg border
|
|
804
|
-
<h3 className="text-lg font-semibold
|
|
823
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
|
|
824
|
+
<h3 className="text-fm-icon-positive! text-lg font-semibold">
|
|
805
825
|
✅ Built-in Features
|
|
806
826
|
</h3>
|
|
807
|
-
<ul className="!space-y-2 text-sm
|
|
808
|
-
<li className="
|
|
827
|
+
<ul className="text-fm-secondary! !space-y-2 text-sm">
|
|
828
|
+
<li className="text-fm-secondary!">
|
|
809
829
|
Uses Radix UI AccessibleIcon wrapper
|
|
810
830
|
</li>
|
|
811
|
-
<li className="
|
|
831
|
+
<li className="text-fm-secondary!">
|
|
812
832
|
Provides screen reader label "Minimize icon"
|
|
813
833
|
</li>
|
|
814
|
-
<li className="
|
|
834
|
+
<li className="text-fm-secondary!">
|
|
815
835
|
Supports keyboard navigation when interactive
|
|
816
836
|
</li>
|
|
817
|
-
<li className="
|
|
837
|
+
<li className="text-fm-secondary!">
|
|
818
838
|
Maintains proper color contrast ratios
|
|
819
839
|
</li>
|
|
820
|
-
<li className="
|
|
840
|
+
<li className="text-fm-secondary!">
|
|
821
841
|
Uses square strokeLinecap for crisp visual clarity
|
|
822
842
|
</li>
|
|
823
843
|
</ul>
|
|
824
844
|
</div>
|
|
825
845
|
|
|
826
|
-
<div className="!space-y-4 rounded-lg border
|
|
827
|
-
<h3 className="text-lg font-semibold
|
|
846
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
|
|
847
|
+
<h3 className="text-fm-icon-warning! text-lg font-semibold">
|
|
828
848
|
💡 Best Practices
|
|
829
849
|
</h3>
|
|
830
|
-
<ul className="!space-y-2 text-sm
|
|
831
|
-
<li className="
|
|
850
|
+
<ul className="text-fm-secondary !space-y-2 text-sm">
|
|
851
|
+
<li className="text-fm-secondary!">
|
|
832
852
|
Always provide descriptive aria-labels for minimize
|
|
833
853
|
actions
|
|
834
854
|
</li>
|
|
835
|
-
<li className="
|
|
855
|
+
<li className="text-fm-secondary!">
|
|
836
856
|
Use consistent placement in window control groups
|
|
837
857
|
</li>
|
|
838
|
-
<li className="
|
|
858
|
+
<li className="text-fm-secondary!">
|
|
839
859
|
Ensure sufficient touch target size (44px minimum)
|
|
840
860
|
</li>
|
|
841
|
-
<li className="
|
|
861
|
+
<li className="text-fm-secondary!">
|
|
842
862
|
Provide visible focus states for keyboard users
|
|
843
863
|
</li>
|
|
844
|
-
<li className="
|
|
864
|
+
<li className="text-fm-secondary!">
|
|
845
865
|
Consider Escape key handling for fullscreen exit
|
|
846
866
|
</li>
|
|
847
867
|
</ul>
|
|
848
868
|
</div>
|
|
849
869
|
</div>
|
|
850
870
|
|
|
851
|
-
<div className="rounded-lg border
|
|
852
|
-
<h3 className="mb-4 text-lg font-semibold
|
|
871
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
|
|
872
|
+
<h3 className="text-fm-icon-info! mb-4 text-lg font-semibold">
|
|
853
873
|
Proper ARIA Implementation
|
|
854
874
|
</h3>
|
|
855
875
|
<div className="grid grid-cols-1 gap-6 lg:grid-cols-2">
|
|
856
|
-
<div className="rounded-lg
|
|
857
|
-
<pre className="overflow-x-auto text-sm
|
|
876
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
877
|
+
<pre className="text-fm-icon-info! overflow-x-auto text-sm">
|
|
858
878
|
{`// Fullscreen video exit control
|
|
859
879
|
<div className="fullscreen-controls">
|
|
860
880
|
<button
|
|
@@ -899,13 +919,13 @@ function VideoPlayer() {
|
|
|
899
919
|
</pre>
|
|
900
920
|
</div>
|
|
901
921
|
<div className="!space-y-4">
|
|
902
|
-
<p className="text-
|
|
922
|
+
<p className="text-fm-secondary! text-sm">
|
|
903
923
|
When using MinimizeIcon for fullscreen or window
|
|
904
924
|
controls, always provide clear context about what will
|
|
905
925
|
be minimized and how users can restore the content.
|
|
906
926
|
</p>
|
|
907
|
-
<div className="
|
|
908
|
-
<div className="flex items-center gap-2 text-sm
|
|
927
|
+
<div className="border-fm-icon-warning/20 bg-fm-icon-warning/10 rounded-lg border p-4">
|
|
928
|
+
<div className="text-fm-icon-warning flex items-center gap-2 text-sm">
|
|
909
929
|
<MinimizeIcon className="h-4 w-4" />
|
|
910
930
|
<span>
|
|
911
931
|
Include keyboard shortcuts (Escape, Alt+F9) in
|
|
@@ -920,48 +940,58 @@ function VideoPlayer() {
|
|
|
920
940
|
|
|
921
941
|
{/* Related Icons */}
|
|
922
942
|
<div className="!space-y-8">
|
|
923
|
-
<h2 className="text-center text-3xl font-bold
|
|
943
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
924
944
|
Related Icons
|
|
925
945
|
</h2>
|
|
926
946
|
<div className="grid grid-cols-2 gap-6 md:grid-cols-4">
|
|
927
|
-
<div className="!space-y-3 rounded-lg border
|
|
928
|
-
<div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg
|
|
929
|
-
<span className="
|
|
947
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
|
|
948
|
+
<div className="bg-fm-icon-positive/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
|
|
949
|
+
<span className="text-fm-icon-active! !text-2xl">⤢</span>
|
|
930
950
|
</div>
|
|
931
951
|
<div>
|
|
932
|
-
<div className="font-medium
|
|
933
|
-
|
|
952
|
+
<div className="text-fm-icon-active font-medium">
|
|
953
|
+
ExpandIcon
|
|
954
|
+
</div>
|
|
955
|
+
<div className="text-fm-tertiary text-xs">
|
|
934
956
|
Enter fullscreen
|
|
935
957
|
</div>
|
|
936
958
|
</div>
|
|
937
959
|
</div>
|
|
938
|
-
<div className="!space-y-3 rounded-lg border
|
|
939
|
-
<div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg
|
|
940
|
-
<span className="
|
|
960
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
|
|
961
|
+
<div className="bg-fm-icon-info/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
|
|
962
|
+
<span className="text-fm-icon-active! !text-2xl">⊞</span>
|
|
941
963
|
</div>
|
|
942
964
|
<div>
|
|
943
|
-
<div className="font-medium
|
|
944
|
-
|
|
965
|
+
<div className="text-fm-icon-active font-medium">
|
|
966
|
+
MaximizeIcon
|
|
967
|
+
</div>
|
|
968
|
+
<div className="text-fm-tertiary text-xs">
|
|
945
969
|
Window maximize
|
|
946
970
|
</div>
|
|
947
971
|
</div>
|
|
948
972
|
</div>
|
|
949
|
-
<div className="!space-y-3 rounded-lg border
|
|
950
|
-
<div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg
|
|
951
|
-
<span className="
|
|
973
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
|
|
974
|
+
<div className="bg-fm-icon-negative/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
|
|
975
|
+
<span className="text-fm-icon-active! !text-2xl">✕</span>
|
|
952
976
|
</div>
|
|
953
977
|
<div>
|
|
954
|
-
<div className="font-medium
|
|
955
|
-
|
|
978
|
+
<div className="text-fm-icon-active font-medium">
|
|
979
|
+
CloseIcon
|
|
980
|
+
</div>
|
|
981
|
+
<div className="text-fm-tertiary text-xs">
|
|
982
|
+
Close window
|
|
983
|
+
</div>
|
|
956
984
|
</div>
|
|
957
985
|
</div>
|
|
958
|
-
<div className="!space-y-3 rounded-lg border
|
|
959
|
-
<div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg
|
|
960
|
-
<span className="
|
|
986
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
|
|
987
|
+
<div className="bg-fm-secondary-500/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
|
|
988
|
+
<span className="text-fm-icon-active! !text-2xl">⤴</span>
|
|
961
989
|
</div>
|
|
962
990
|
<div>
|
|
963
|
-
<div className="font-medium
|
|
964
|
-
|
|
991
|
+
<div className="text-fm-icon-active font-medium">
|
|
992
|
+
CollapseIcon
|
|
993
|
+
</div>
|
|
994
|
+
<div className="text-fm-tertiary text-xs">
|
|
965
995
|
Collapse panel
|
|
966
996
|
</div>
|
|
967
997
|
</div>
|
|
@@ -971,15 +1001,15 @@ function VideoPlayer() {
|
|
|
971
1001
|
</div>
|
|
972
1002
|
|
|
973
1003
|
{/* Footer */}
|
|
974
|
-
<div className="border-
|
|
1004
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary border-t backdrop-blur-xl">
|
|
975
1005
|
<div className="!mx-auto max-w-7xl px-6 py-8">
|
|
976
1006
|
<div className="!space-y-4 text-center">
|
|
977
|
-
<p className="
|
|
1007
|
+
<p className="text-fm-tertiary!">
|
|
978
1008
|
MinimizeIcon is part of the Aural UI icon library, built
|
|
979
1009
|
with accessibility and window management best practices in
|
|
980
1010
|
mind.
|
|
981
1011
|
</p>
|
|
982
|
-
<p className="text-
|
|
1012
|
+
<p className="text-fm-placeholder! text-sm">
|
|
983
1013
|
All icons use Radix UI's AccessibleIcon for screen reader
|
|
984
1014
|
compatibility and follow WCAG guidelines for interactive
|
|
985
1015
|
elements and keyboard navigation.
|
|
@@ -1038,20 +1068,20 @@ const storyParameters = {
|
|
|
1038
1068
|
backgrounds: {
|
|
1039
1069
|
default: "dark",
|
|
1040
1070
|
values: [
|
|
1041
|
-
{ name: "dark", value: "
|
|
1042
|
-
{ name: "darker", value: "
|
|
1071
|
+
{ name: "dark", value: "var(--color-fm-surface-primary)" },
|
|
1072
|
+
{ name: "darker", value: "var(--color-fm-neutral-0)" },
|
|
1043
1073
|
],
|
|
1044
1074
|
},
|
|
1045
1075
|
}
|
|
1046
1076
|
|
|
1047
1077
|
export const Default: Story = {
|
|
1048
1078
|
args: {
|
|
1049
|
-
className: "h-8 w-8 text-
|
|
1079
|
+
className: "h-8 w-8 text-fm-icon-warning",
|
|
1050
1080
|
withAccessibility: true,
|
|
1051
1081
|
},
|
|
1052
1082
|
parameters: storyParameters,
|
|
1053
1083
|
render: (args) => (
|
|
1054
|
-
<div className="flex h-32 min-h-dvh items-center justify-center rounded-lg bg-
|
|
1084
|
+
<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">
|
|
1055
1085
|
<MinimizeIcon {...args} />
|
|
1056
1086
|
</div>
|
|
1057
1087
|
),
|
|
@@ -1068,30 +1098,30 @@ export const SizeVariations: Story = {
|
|
|
1068
1098
|
},
|
|
1069
1099
|
},
|
|
1070
1100
|
render: () => (
|
|
1071
|
-
<div className="flex h-64 min-h-dvh items-center justify-center gap-8 rounded-lg bg-
|
|
1101
|
+
<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">
|
|
1072
1102
|
<div className="text-center">
|
|
1073
|
-
<MinimizeIcon className="!mx-auto mb-2 h-3 w-3
|
|
1074
|
-
<span className="text-
|
|
1103
|
+
<MinimizeIcon className="text-fm-icon-warning !mx-auto mb-2 h-3 w-3" />
|
|
1104
|
+
<span className="text-fm-tertiary text-xs">12px</span>
|
|
1075
1105
|
</div>
|
|
1076
1106
|
<div className="text-center">
|
|
1077
|
-
<MinimizeIcon className="!mx-auto mb-2 h-4 w-4
|
|
1078
|
-
<span className="text-
|
|
1107
|
+
<MinimizeIcon className="text-fm-icon-warning !mx-auto mb-2 h-4 w-4" />
|
|
1108
|
+
<span className="text-fm-tertiary text-xs">16px</span>
|
|
1079
1109
|
</div>
|
|
1080
1110
|
<div className="text-center">
|
|
1081
|
-
<MinimizeIcon className="!mx-auto mb-2 h-5 w-5
|
|
1082
|
-
<span className="text-
|
|
1111
|
+
<MinimizeIcon className="text-fm-icon-warning !mx-auto mb-2 h-5 w-5" />
|
|
1112
|
+
<span className="text-fm-tertiary text-xs">20px</span>
|
|
1083
1113
|
</div>
|
|
1084
1114
|
<div className="text-center">
|
|
1085
|
-
<MinimizeIcon className="!mx-auto mb-2 h-6 w-6
|
|
1086
|
-
<span className="text-
|
|
1115
|
+
<MinimizeIcon className="text-fm-icon-warning !mx-auto mb-2 h-6 w-6" />
|
|
1116
|
+
<span className="text-fm-tertiary text-xs">24px</span>
|
|
1087
1117
|
</div>
|
|
1088
1118
|
<div className="text-center">
|
|
1089
|
-
<MinimizeIcon className="!mx-auto mb-2 h-8 w-8
|
|
1090
|
-
<span className="text-
|
|
1119
|
+
<MinimizeIcon className="text-fm-icon-warning !mx-auto mb-2 h-8 w-8" />
|
|
1120
|
+
<span className="text-fm-tertiary text-xs">32px</span>
|
|
1091
1121
|
</div>
|
|
1092
1122
|
<div className="text-center">
|
|
1093
|
-
<MinimizeIcon className="!mx-auto mb-2 h-12 w-12
|
|
1094
|
-
<span className="text-
|
|
1123
|
+
<MinimizeIcon className="text-fm-icon-warning !mx-auto mb-2 h-12 w-12" />
|
|
1124
|
+
<span className="text-fm-tertiary text-xs">48px</span>
|
|
1095
1125
|
</div>
|
|
1096
1126
|
</div>
|
|
1097
1127
|
),
|
|
@@ -1108,34 +1138,44 @@ export const ColorVariations: Story = {
|
|
|
1108
1138
|
},
|
|
1109
1139
|
},
|
|
1110
1140
|
render: () => (
|
|
1111
|
-
<div className="grid min-h-dvh grid-cols-2 items-center justify-center gap-6 rounded-lg bg-
|
|
1141
|
+
<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">
|
|
1112
1142
|
<div className="text-center">
|
|
1113
|
-
<div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border
|
|
1114
|
-
<MinimizeIcon className="h-8 w-8
|
|
1143
|
+
<div className="border-fm-icon-warning/30 bg-fm-icon-warning/20 !mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border">
|
|
1144
|
+
<MinimizeIcon className="text-fm-icon-warning h-8 w-8" />
|
|
1145
|
+
</div>
|
|
1146
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
1147
|
+
Exit Fullscreen
|
|
1115
1148
|
</div>
|
|
1116
|
-
<div className="text-
|
|
1117
|
-
<div className="text-xs text-orange-400">text-orange-400</div>
|
|
1149
|
+
<div className="text-fm-icon-warning text-xs">text-fm-icon-warning</div>
|
|
1118
1150
|
</div>
|
|
1119
1151
|
<div className="text-center">
|
|
1120
|
-
<div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border
|
|
1121
|
-
<MinimizeIcon className="h-8 w-8
|
|
1152
|
+
<div className="border-fm-icon-warning/30 bg-fm-icon-warning/20 !mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border">
|
|
1153
|
+
<MinimizeIcon className="text-fm-icon-warning h-8 w-8" />
|
|
1122
1154
|
</div>
|
|
1123
|
-
<div className="text-sm font-medium
|
|
1124
|
-
|
|
1155
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
1156
|
+
Compact View
|
|
1157
|
+
</div>
|
|
1158
|
+
<div className="text-fm-icon-warning text-xs">text-fm-icon-warning</div>
|
|
1125
1159
|
</div>
|
|
1126
1160
|
<div className="text-center">
|
|
1127
|
-
<div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border
|
|
1128
|
-
<MinimizeIcon className="h-8 w-8
|
|
1161
|
+
<div className="border-fm-icon-warning/30 bg-fm-icon-warning/20 !mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border">
|
|
1162
|
+
<MinimizeIcon className="text-fm-icon-warning h-8 w-8" />
|
|
1163
|
+
</div>
|
|
1164
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
1165
|
+
Window Minimize
|
|
1129
1166
|
</div>
|
|
1130
|
-
<div className="text-
|
|
1131
|
-
<div className="text-xs text-yellow-400">text-yellow-400</div>
|
|
1167
|
+
<div className="text-fm-icon-warning text-xs">text-fm-icon-warning</div>
|
|
1132
1168
|
</div>
|
|
1133
1169
|
<div className="text-center">
|
|
1134
|
-
<div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border
|
|
1135
|
-
<MinimizeIcon className="h-8 w-8
|
|
1170
|
+
<div className="border-fm-icon-negative/30 bg-fm-icon-negative/20 !mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border">
|
|
1171
|
+
<MinimizeIcon className="text-fm-icon-negative h-8 w-8" />
|
|
1172
|
+
</div>
|
|
1173
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
1174
|
+
Close/Dismiss
|
|
1175
|
+
</div>
|
|
1176
|
+
<div className="text-fm-icon-negative text-xs">
|
|
1177
|
+
text-fm-icon-negative
|
|
1136
1178
|
</div>
|
|
1137
|
-
<div className="text-sm font-medium text-white">Close/Dismiss</div>
|
|
1138
|
-
<div className="text-xs text-red-400">text-red-400</div>
|
|
1139
1179
|
</div>
|
|
1140
1180
|
</div>
|
|
1141
1181
|
),
|
|
@@ -1152,17 +1192,17 @@ export const UsageExamples: Story = {
|
|
|
1152
1192
|
},
|
|
1153
1193
|
},
|
|
1154
1194
|
render: () => (
|
|
1155
|
-
<div className="min-h-dvh !space-y-8 rounded-lg bg-
|
|
1195
|
+
<div className="from-fm-surface-primary to-fm-surface-secondary min-h-dvh !space-y-8 rounded-lg bg-linear-to-br p-8">
|
|
1156
1196
|
{/* Fullscreen Video */}
|
|
1157
1197
|
<div className="!space-y-2">
|
|
1158
|
-
<h3 className="text-sm font-medium
|
|
1198
|
+
<h3 className="text-fm-icon-active text-sm font-medium">
|
|
1159
1199
|
Fullscreen Video Player
|
|
1160
1200
|
</h3>
|
|
1161
|
-
<div className="rounded-lg border
|
|
1162
|
-
<div className="relative aspect-video rounded-lg
|
|
1201
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-4">
|
|
1202
|
+
<div className="bg-fm-surface-primary relative aspect-video rounded-lg">
|
|
1163
1203
|
<div className="absolute top-4 right-4">
|
|
1164
|
-
<button className="
|
|
1165
|
-
<MinimizeIcon className="h-5 w-5
|
|
1204
|
+
<button className="border-fm-icon-warning/30 bg-fm-surface-secondary hover:bg-fm-icon-warning/20 rounded border p-3 transition-colors">
|
|
1205
|
+
<MinimizeIcon className="text-fm-icon-warning h-5 w-5" />
|
|
1166
1206
|
</button>
|
|
1167
1207
|
</div>
|
|
1168
1208
|
</div>
|
|
@@ -1171,21 +1211,25 @@ export const UsageExamples: Story = {
|
|
|
1171
1211
|
|
|
1172
1212
|
{/* Window Controls */}
|
|
1173
1213
|
<div className="!space-y-2">
|
|
1174
|
-
<h3 className="text-sm font-medium
|
|
1175
|
-
|
|
1176
|
-
|
|
1177
|
-
|
|
1214
|
+
<h3 className="text-fm-icon-active text-sm font-medium">
|
|
1215
|
+
Window Controls
|
|
1216
|
+
</h3>
|
|
1217
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-4">
|
|
1218
|
+
<div className="bg-fm-surface-secondary flex items-center justify-between rounded p-3">
|
|
1219
|
+
<span className="text-fm-icon-active text-sm">
|
|
1220
|
+
Application Window
|
|
1221
|
+
</span>
|
|
1178
1222
|
<div className="flex items-center gap-1">
|
|
1179
|
-
<button className="
|
|
1180
|
-
<MinimizeIcon className="h-3 w-3
|
|
1223
|
+
<button className="border-fm-icon-warning/30 bg-fm-icon-warning/10 hover:bg-fm-icon-warning/20 rounded border p-1.5 transition-colors">
|
|
1224
|
+
<MinimizeIcon className="text-fm-icon-warning h-3 w-3" />
|
|
1181
1225
|
</button>
|
|
1182
|
-
<button className="rounded p-1.5 transition-colors
|
|
1183
|
-
<div className="h-3 w-3 rounded-sm border
|
|
1226
|
+
<button className="hover:bg-fm-divider-primary rounded p-1.5 transition-colors">
|
|
1227
|
+
<div className="border-fm-divider-contrast h-3 w-3 rounded-sm border"></div>
|
|
1184
1228
|
</button>
|
|
1185
|
-
<button className="rounded p-1.5 transition-colors
|
|
1229
|
+
<button className="hover:bg-fm-icon-negative/20 rounded p-1.5 transition-colors">
|
|
1186
1230
|
<div className="relative h-3 w-3">
|
|
1187
|
-
<div className="absolute inset-0 rotate-45 border
|
|
1188
|
-
<div className="absolute inset-0 -rotate-45 border
|
|
1231
|
+
<div className="border-fm-divider-contrast absolute inset-0 rotate-45 border"></div>
|
|
1232
|
+
<div className="border-fm-divider-contrast absolute inset-0 -rotate-45 border"></div>
|
|
1189
1233
|
</div>
|
|
1190
1234
|
</button>
|
|
1191
1235
|
</div>
|
|
@@ -1209,12 +1253,12 @@ export const Playground: Story = {
|
|
|
1209
1253
|
args: {
|
|
1210
1254
|
width: 24,
|
|
1211
1255
|
height: 24,
|
|
1212
|
-
className: "text-
|
|
1256
|
+
className: "text-fm-icon-warning",
|
|
1213
1257
|
strokeLinecap: "square",
|
|
1214
1258
|
},
|
|
1215
1259
|
render: (args) => (
|
|
1216
|
-
<div className="flex h-64 min-h-dvh items-center justify-center rounded-lg bg-
|
|
1217
|
-
<div className="rounded-lg border
|
|
1260
|
+
<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">
|
|
1261
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-8">
|
|
1218
1262
|
<MinimizeIcon {...args} />
|
|
1219
1263
|
</div>
|
|
1220
1264
|
</div>
|