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