aural-ui 3.0.7 → 4.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/aspect-ratio/AspectRatio.stories.tsx +271 -242
- package/dist/components/avatar/Avatar.stories.tsx +84 -70
- package/dist/components/button/Button.stories.tsx +7 -7
- package/dist/components/button/index.tsx +7 -7
- package/dist/components/card/Card.stories.tsx +3 -3
- package/dist/components/char-count/CharCount.stories.tsx +9 -9
- package/dist/components/circular-loader/CircularLoader.stories.tsx +109 -93
- package/dist/components/collapsible/Collapsible.stories.tsx +1 -1
- package/dist/components/command/Command.stories.tsx +52 -38
- package/dist/components/dialog/Dialog.stories.tsx +89 -84
- package/dist/components/divider/Divider.stories.tsx +86 -60
- package/dist/components/dot-loader/DotLoader.stories.tsx +12 -12
- package/dist/components/drawer/Drawer.stories.tsx +74 -44
- package/dist/components/drawer/index.tsx +3 -3
- package/dist/components/dropdown/Dropdown.stories.tsx +42 -32
- package/dist/components/helper-text/HelperText.stories.tsx +2 -2
- package/dist/components/hover-card/HoverCard.stories.tsx +211 -178
- package/dist/components/input/Input.stories.tsx +2 -2
- package/dist/components/label/Label.stories.tsx +10 -10
- package/dist/components/list/List.stories.tsx +58 -44
- package/dist/components/marquee/Marquee.stories.tsx +131 -113
- package/dist/components/otp-inputs/OtpInputs.stories.tsx +47 -35
- package/dist/components/overlay/Overlay.stories.tsx +98 -92
- package/dist/components/overlay/index.tsx +4 -4
- package/dist/components/popover/Popover.stories.tsx +132 -106
- package/dist/components/radio/Radio.stories.tsx +2 -2
- package/dist/components/resizable/Resizable.stories.tsx +186 -138
- package/dist/components/scroll-area/ScrollArea.stories.tsx +174 -120
- package/dist/components/search/Search.stories.tsx +81 -59
- package/dist/components/select/Select.stories.tsx +3 -1
- package/dist/components/sheet/Sheet.stories.tsx +68 -54
- package/dist/components/slider/Slider.stories.tsx +71 -47
- package/dist/components/stepper/Stepper.stories.tsx +16 -16
- package/dist/components/switch/Switch.stories.tsx +12 -12
- package/dist/components/table/Table.stories.tsx +8 -6
- package/dist/components/tabs/Tabs.stories.tsx +324 -268
- package/dist/components/textarea/TextArea.stories.tsx +1 -1
- package/dist/components/thumbnail-tags/ThumbnailTags.stories.tsx +16 -10
- package/dist/components/toast/Toast.stories.tsx +51 -45
- package/dist/components/toggle/Toggle.stories.tsx +111 -89
- package/dist/components/tooltip/Tooltip.stories.tsx +160 -144
- package/dist/icons/Icons.stories.tsx +2 -2
- package/dist/icons/ai-avatar-icon/AiAvatarIcon.stories.tsx +287 -237
- package/dist/icons/alert-icon/AlertIcon.stories.tsx +290 -248
- package/dist/icons/all-icons.tsx +97 -81
- package/dist/icons/angle-down-icon/AngleDownIcon.stories.tsx +312 -270
- package/dist/icons/apple-logo-icon/AppleLogoIcon.stories.tsx +294 -244
- package/dist/icons/arrow-box-left-icon/ArrowBoxLeftIcon.stories.tsx +309 -279
- package/dist/icons/arrow-corner-up-left-icon/ArrowCornerUpLeftIcon.stories.tsx +294 -258
- package/dist/icons/arrow-corner-up-right-icon/ArrowCornerUpRightIcon.stories.tsx +289 -255
- package/dist/icons/arrow-left-icon/ArrowLeftIcon.stories.tsx +288 -256
- package/dist/icons/arrow-right-icon/ArrowRightIcon.stories.tsx +322 -288
- package/dist/icons/arrow-right-up-icon/ArrowRightUpIcon.stories.tsx +340 -296
- package/dist/icons/art-board-icon/ArtBoardIcon.stories.tsx +197 -177
- package/dist/icons/audio-bar-icon/AudioBarIcon.stories.tsx +390 -328
- package/dist/icons/backward-ten-seconds-icon/BackwardTenSecondsIcon.stories.tsx +313 -277
- package/dist/icons/bubble-check-icon/BubbleCheckIcon.stories.tsx +367 -309
- package/dist/icons/bubble-crossed-icon/BubbleCrossedIcon.stories.tsx +356 -308
- package/dist/icons/bubble-sparkle-icon/BubbleSparkleIcon.stories.tsx +280 -234
- package/dist/icons/camera-icon/CameraIcon.stories.tsx +370 -326
- package/dist/icons/capital-a-letter-icon/CapitalALetterIcon.stories.tsx +300 -256
- package/dist/icons/chevron-double-left-icon/ChevronDoubleLeftIcon.stories.tsx +298 -262
- package/dist/icons/chevron-double-right-icon/ChevronDoubleRightIcon.stories.tsx +294 -260
- package/dist/icons/chevron-down-icon/ChevronDownIcon.stories.tsx +291 -259
- package/dist/icons/chevron-left-icon/ChevronLeftIcon.stories.tsx +286 -256
- package/dist/icons/chevron-right-icon/ChevronRightIcon.stories.tsx +282 -256
- package/dist/icons/chevron-up-icon/ChevronUpIcon.stories.tsx +292 -256
- package/dist/icons/circle-tick-icon/CircleTickIcon.stories.tsx +338 -290
- package/dist/icons/circular-play-icon/CircularPlayIcon.stories.tsx +167 -148
- package/dist/icons/coin-icon/CoinIcon.stories.tsx +342 -296
- package/dist/icons/coin-toons-icon/CoinToonsIcon.stories.tsx +342 -296
- package/dist/icons/column-wide-add-icon/ColumnWideAddIcon.stories.tsx +280 -238
- package/dist/icons/command-icon/CommandIcon.stories.tsx +328 -280
- package/dist/icons/copy-icon/CopyIcon.stories.tsx +294 -256
- package/dist/icons/cross-circle-icon/CrossCircleIcon.stories.tsx +285 -235
- package/dist/icons/cross-icon/CrossIcon.stories.tsx +308 -266
- package/dist/icons/download-icon/DownloadIcon.stories.tsx +271 -231
- package/dist/icons/edit-big-icon/EditBigIcon.stories.tsx +330 -278
- package/dist/icons/email-icon/EmailIcon.stories.tsx +303 -257
- package/dist/icons/expand-icon/ExpandIcon.stories.tsx +324 -286
- package/dist/icons/eye-close-icon/EyeCloseIcon.stories.tsx +317 -271
- package/dist/icons/eye-open-icon/EyeOpenIcon.stories.tsx +320 -272
- package/dist/icons/feature-shine-icon/FeatureShineIcon.stories.tsx +322 -280
- package/dist/icons/file-chart-icon/FileChartIcon.stories.tsx +315 -277
- package/dist/icons/file-text-icon/FileTextIcon.stories.tsx +199 -177
- package/dist/icons/filter-bar-row-icon/FilterBarRowIcon.stories.tsx +304 -264
- package/dist/icons/forward-ten-seconds-icon/ForwardTenSecondsIcon.stories.tsx +311 -277
- package/dist/icons/git-branch-icon/GitBranchIcon.stories.tsx +327 -287
- package/dist/icons/git-fork-icon/GitForkIcon.stories.tsx +314 -278
- package/dist/icons/globe-icon/GlobeIcon.stories.tsx +113 -98
- package/dist/icons/google-logo-icon/GoogleLogoIcon.stories.tsx +274 -226
- package/dist/icons/grip-vertical-icon/GripVerticalIcon.stories.tsx +349 -303
- package/dist/icons/head-icon/HeadIcon.stories.tsx +286 -246
- package/dist/icons/heart-icon/HeartIcon.stories.tsx +312 -268
- package/dist/icons/image-avatar-sparkle-icon/ImageAvatarSparkleIcon.stories.tsx +246 -210
- package/dist/icons/image-icon/ImageIcon.stories.tsx +330 -284
- package/dist/icons/import-folder-icon/ImportFolderIcon.stories.tsx +326 -282
- package/dist/icons/import-left-arrow-folder-icon/ImportLeftArrowFolderIcon.stories.tsx +330 -294
- package/dist/icons/indian-flag-icon/IndianFlagIcon.stories.tsx +288 -234
- package/dist/icons/instagram-icon/InstagramIcon.stories.tsx +386 -330
- package/dist/icons/layout-column-icon/LayoutColumnIcon.stories.tsx +305 -263
- package/dist/icons/layout-left-icon/LayoutLeftIcon.stories.tsx +295 -259
- package/dist/icons/layout-right-icon/LayoutRightIcon.stories.tsx +296 -256
- package/dist/icons/light-bulb-simple-icon/LightBulbSimpleIcon.stories.tsx +322 -282
- package/dist/icons/linked-in-icon/LinkedInIcon.stories.tsx +399 -359
- package/dist/icons/magic-book-icon/MagicBookIcon.stories.tsx +314 -272
- package/dist/icons/magic-edit-icon/MagicEditIcon.stories.tsx +238 -206
- package/dist/icons/maintenance-icon/MaintenanceIcon.stories.tsx +322 -276
- package/dist/icons/message-icon/MessageIcon.stories.tsx +192 -170
- package/dist/icons/minimize-icon/MinimizeIcon.stories.tsx +348 -304
- package/dist/icons/moon-icon/MoonIcon.stories.tsx +191 -167
- package/dist/icons/move-horizontal-icon/MoveHorizontalIcon.stories.tsx +380 -326
- package/dist/icons/move-vertical-icon/MoveVerticalIcon.stories.tsx +345 -291
- package/dist/icons/musical-note-icon/MusicalNoteIcon.stories.tsx +310 -266
- package/dist/icons/notepad-icon/NotepadIcon.stories.tsx +311 -271
- package/dist/icons/notes-icon/NotesIcon.stories.tsx +311 -271
- package/dist/icons/page-search-icon/PageSearchIcon.stories.tsx +309 -271
- package/dist/icons/page-text-icon/PageTextIcon.stories.tsx +248 -210
- package/dist/icons/paint-roll-icon/PaintRollIcon.stories.tsx +310 -262
- package/dist/icons/paper-plane-icon/PaperPlaneIcon.stories.tsx +274 -236
- package/dist/icons/pause-icon/PauseIcon.stories.tsx +324 -280
- package/dist/icons/pencil-icon/PencilIcon.stories.tsx +323 -281
- package/dist/icons/phone-icon/PhoneIcon.stories.tsx +288 -240
- package/dist/icons/plus-icon/PlusIcon.stories.tsx +315 -273
- package/dist/icons/pocket-studio-icon/PocketStudioIcon.stories.tsx +278 -234
- package/dist/icons/scroll-down-icon/ScrollDownIcon.stories.tsx +161 -151
- package/dist/icons/search-icon/SearchIcon.stories.tsx +324 -284
- package/dist/icons/setting-icon/SettingIcon.stories.tsx +306 -264
- package/dist/icons/share-icon/ShareIcon.stories.tsx +314 -272
- package/dist/icons/shield-icon/ShieldIcon.stories.tsx +281 -235
- package/dist/icons/site-logo-icon/SiteLogoIcon.stories.tsx +309 -250
- package/dist/icons/skip-backward-icon/SkipBackwardIcon.stories.tsx +317 -279
- package/dist/icons/skip-forward-icon/SkipForwardIcon.stories.tsx +315 -279
- package/dist/icons/sparkles-soft-icon/SparklesSoftIcon.stories.tsx +299 -253
- package/dist/icons/spinner-gradient-icon/SpinnerGradientIcon.stories.tsx +185 -169
- package/dist/icons/spinner-gradient-icon/index.tsx +6 -1
- package/dist/icons/spinner-solid-icon/SpinnerSolidIcon.stories.tsx +192 -168
- package/dist/icons/spinner-solid-icon/index.tsx +6 -1
- package/dist/icons/spinner-solid-neutral-icon/SpinnerSolidINeutralcon.stories.tsx +212 -178
- package/dist/icons/spinner-solid-neutral-icon/index.tsx +1 -1
- package/dist/icons/star-icon/StarIcon.stories.tsx +290 -244
- package/dist/icons/store-coin-icon/StoreCoinIcon.stories.tsx +286 -234
- package/dist/icons/suggestion-icon/SuggestionIcon.stories.tsx +272 -230
- package/dist/icons/sun-icon/SunIcon.stories.tsx +262 -226
- package/dist/icons/text-color-icon/TextColorIcon.stories.tsx +321 -279
- package/dist/icons/text-indicator-icon/TextIndicatorIcon.stories.tsx +332 -282
- package/dist/icons/threads-icon/ThreadsIcon.stories.tsx +394 -342
- package/dist/icons/tick-circle-icon/TickCircleIcon.stories.tsx +338 -290
- package/dist/icons/tick-icon/TickIcon.stories.tsx +364 -315
- package/dist/icons/trash-icon/TrashIcon.stories.tsx +293 -253
- package/dist/icons/twitter-x-icon/TwitterXIcon.stories.tsx +396 -338
- package/dist/icons/upload-icon/UploadIcon.stories.tsx +291 -247
- package/dist/icons/vertical-menu-icon/VerticalMenuIcon.stories.tsx +309 -271
- package/dist/icons/video-play-list-icon/VideoPlaylistIcon.stories.tsx +336 -290
- package/dist/icons/voice-playing-icon/VoicePlayingIcon.stories.tsx +382 -334
- package/dist/icons/volume-full-icon/VolumeFullIcon.stories.tsx +349 -305
- package/dist/icons/volume-half-icon/VolumeHalfIcon.stories.tsx +327 -295
- package/dist/icons/volume-off-icon/VolumeOffIcon.stories.tsx +336 -296
- package/dist/icons/warning-icon/WarningIcon.stories.tsx +314 -274
- package/dist/icons/youtube-icon/YoutubeIcon.stories.tsx +311 -261
- package/dist/index.cjs +84 -84
- package/dist/index.js +84 -84
- package/dist/styles/aural-all-theme.css +1222 -0
- package/dist/styles/{aural-theme.css → aural-dark-theme.css} +15 -3
- package/dist/styles/aural-light-theme.css +1047 -0
- package/package.json +1 -1
|
@@ -11,9 +11,9 @@ const meta: Meta<typeof DownloadIcon> = {
|
|
|
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 DownloadIcon> = {
|
|
|
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="bg-fm-surface-primary min-h-screen">
|
|
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-surface-tertiary/10 to-fm-surface-tertiary/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
|
-
<DownloadIcon className="h-12 w-12
|
|
89
|
+
<div className="border-fm-divider-primary from-fm-surface-tertiary/20 to-fm-surface-tertiary/20 !mx-auto flex h-24 w-24 items-center justify-center rounded-2xl border bg-linear-to-br">
|
|
90
|
+
<DownloadIcon className="text-fm-placeholder h-12 w-12" />
|
|
91
91
|
</div>
|
|
92
92
|
<h1 className="!text-fm-primary text-5xl font-bold">
|
|
93
93
|
DownloadIcon
|
|
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 straightforward download icon ideal for saving files,
|
|
97
97
|
exporting data, or initiating downloads. Designed with
|
|
98
98
|
clarity and scalability in mind. Built with accessibility in
|
|
@@ -102,28 +102,28 @@ const meta: Meta<typeof DownloadIcon> = {
|
|
|
102
102
|
{/* Stats */}
|
|
103
103
|
<div className="flex items-center justify-center gap-8 pt-8">
|
|
104
104
|
<div className="text-center">
|
|
105
|
-
<div className="text-3xl font-bold
|
|
105
|
+
<div className="text-fm-secondary text-3xl font-bold">
|
|
106
106
|
Accessible
|
|
107
107
|
</div>
|
|
108
|
-
<div className="text-
|
|
108
|
+
<div className="text-fm-tertiary text-sm">
|
|
109
109
|
Screen reader friendly
|
|
110
110
|
</div>
|
|
111
111
|
</div>
|
|
112
|
-
<div className="h-8 w-px
|
|
112
|
+
<div className="bg-fm-divider-primary h-8 w-px" />
|
|
113
113
|
<div className="text-center">
|
|
114
|
-
<div className="text-3xl font-bold
|
|
114
|
+
<div className="text-fm-secondary text-3xl font-bold">
|
|
115
115
|
Minimal
|
|
116
116
|
</div>
|
|
117
|
-
<div className="text-
|
|
117
|
+
<div className="text-fm-tertiary text-sm">
|
|
118
118
|
Clean stroke design
|
|
119
119
|
</div>
|
|
120
120
|
</div>
|
|
121
|
-
<div className="h-8 w-px
|
|
121
|
+
<div className="bg-fm-divider-primary h-8 w-px" />
|
|
122
122
|
<div className="text-center">
|
|
123
|
-
<div className="text-3xl font-bold
|
|
123
|
+
<div className="text-fm-secondary text-3xl font-bold">
|
|
124
124
|
Versatile
|
|
125
125
|
</div>
|
|
126
|
-
<div className="text-
|
|
126
|
+
<div className="text-fm-tertiary text-sm">
|
|
127
127
|
Perfect at any size
|
|
128
128
|
</div>
|
|
129
129
|
</div>
|
|
@@ -136,16 +136,16 @@ const meta: Meta<typeof DownloadIcon> = {
|
|
|
136
136
|
<div className="!mx-auto max-w-7xl !space-y-16 px-6 py-12">
|
|
137
137
|
{/* Quick Usage */}
|
|
138
138
|
<div className="!space-y-8">
|
|
139
|
-
<h2 className="text-center text-3xl font-bold
|
|
139
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
140
140
|
Quick Start
|
|
141
141
|
</h2>
|
|
142
142
|
<div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
|
|
143
143
|
<div className="!space-y-4">
|
|
144
|
-
<h3 className="text-xl font-semibold
|
|
144
|
+
<h3 className="!text-fm-secondary text-xl font-semibold">
|
|
145
145
|
Basic Usage
|
|
146
146
|
</h3>
|
|
147
|
-
<div className="rounded-lg
|
|
148
|
-
<pre className="overflow-x-auto text-sm
|
|
147
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
148
|
+
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
149
149
|
{`import { DownloadIcon } from "@icons/cross-icon"
|
|
150
150
|
|
|
151
151
|
function CloseButton() {
|
|
@@ -160,12 +160,12 @@ function CloseButton() {
|
|
|
160
160
|
</div>
|
|
161
161
|
|
|
162
162
|
<div className="!space-y-4">
|
|
163
|
-
<h3 className="text-xl font-semibold
|
|
163
|
+
<h3 className="!text-fm-secondary text-xl font-semibold">
|
|
164
164
|
Live Preview
|
|
165
165
|
</h3>
|
|
166
|
-
<div className="flex h-32 items-center justify-center rounded-lg border
|
|
167
|
-
<button className="
|
|
168
|
-
<DownloadIcon className="h-6 w-6
|
|
166
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary flex h-32 items-center justify-center rounded-lg border">
|
|
167
|
+
<button className="border-fm-divider-primary bg-fm-surface-secondary hover:bg-fm-surface-secondary rounded-lg border p-3 transition-colors">
|
|
168
|
+
<DownloadIcon className="text-fm-secondary h-6 w-6" />
|
|
169
169
|
</button>
|
|
170
170
|
</div>
|
|
171
171
|
</div>
|
|
@@ -174,108 +174,116 @@ function CloseButton() {
|
|
|
174
174
|
|
|
175
175
|
{/* Props Documentation */}
|
|
176
176
|
<div className="!space-y-8">
|
|
177
|
-
<h2 className="text-center text-3xl font-bold
|
|
177
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
178
178
|
Props & Configuration
|
|
179
179
|
</h2>
|
|
180
180
|
|
|
181
|
-
<div className="overflow-hidden rounded-lg border
|
|
182
|
-
<div className="bg-
|
|
183
|
-
<h3 className="text-xl font-semibold
|
|
181
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary overflow-hidden rounded-lg border">
|
|
182
|
+
<div className="bg-fm-surface-secondary p-4">
|
|
183
|
+
<h3 className="text-fm-icon-active! text-xl font-semibold">
|
|
184
|
+
Props
|
|
185
|
+
</h3>
|
|
184
186
|
</div>
|
|
185
187
|
<table className="!my-0 w-full">
|
|
186
|
-
<thead className="bg-
|
|
187
|
-
<tr className="border-
|
|
188
|
-
<th className="px-6 py-4 text-left text-sm font-semibold
|
|
188
|
+
<thead className="bg-fm-surface-secondary">
|
|
189
|
+
<tr className="border-fm-divider-secondary border-b">
|
|
190
|
+
<th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
|
|
189
191
|
Prop
|
|
190
192
|
</th>
|
|
191
|
-
<th className="px-6 py-4 text-left text-sm font-semibold
|
|
193
|
+
<th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
|
|
192
194
|
Type
|
|
193
195
|
</th>
|
|
194
|
-
<th className="px-6 py-4 text-left text-sm font-semibold
|
|
196
|
+
<th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
|
|
195
197
|
Default
|
|
196
198
|
</th>
|
|
197
|
-
<th className="px-6 py-4 text-left text-sm font-semibold
|
|
199
|
+
<th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
|
|
198
200
|
Description
|
|
199
201
|
</th>
|
|
200
202
|
</tr>
|
|
201
203
|
</thead>
|
|
202
204
|
<tbody>
|
|
203
205
|
{" "}
|
|
204
|
-
<tr className="
|
|
205
|
-
<td className="px-6 py-4 font-mono text-sm
|
|
206
|
+
<tr className="bg-fm-surface-secondary!">
|
|
207
|
+
<td className="text-fm-icon-info! px-6 py-4 font-mono text-sm">
|
|
206
208
|
withAccessibility
|
|
207
209
|
</td>
|
|
208
|
-
<td className="px-6 py-4 text-sm
|
|
210
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
209
211
|
boolean
|
|
210
212
|
</td>
|
|
211
|
-
<td className="px-6 py-4 text-sm
|
|
213
|
+
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
212
214
|
true
|
|
213
215
|
</td>
|
|
214
|
-
<td className="px-6 py-4 text-sm
|
|
216
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
215
217
|
Whether to wrap the icon with accessibility feature
|
|
216
218
|
</td>
|
|
217
219
|
</tr>
|
|
218
|
-
<tr className="border-
|
|
219
|
-
<td className="px-6 py-4 font-mono text-sm
|
|
220
|
+
<tr className="border-fm-divider-tertiary bg-fm-surface-secondary! border-b">
|
|
221
|
+
<td className="!text-fm-secondary px-6 py-4 font-mono text-sm">
|
|
220
222
|
height
|
|
221
223
|
</td>
|
|
222
|
-
<td className="px-6 py-4 text-sm
|
|
224
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
223
225
|
number | string
|
|
224
226
|
</td>
|
|
225
|
-
<td className="px-6 py-4 text-sm
|
|
226
|
-
|
|
227
|
+
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
228
|
+
20
|
|
229
|
+
</td>
|
|
230
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
227
231
|
Height of the icon in pixels
|
|
228
232
|
</td>
|
|
229
233
|
</tr>
|
|
230
|
-
<tr className="border-
|
|
231
|
-
<td className="px-6 py-4 font-mono text-sm
|
|
234
|
+
<tr className="border-fm-divider-tertiary border-b">
|
|
235
|
+
<td className="!text-fm-secondary px-6 py-4 font-mono text-sm">
|
|
232
236
|
stroke
|
|
233
237
|
</td>
|
|
234
|
-
<td className="px-6 py-4 text-sm
|
|
238
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
235
239
|
string
|
|
236
240
|
</td>
|
|
237
|
-
<td className="px-6 py-4 text-sm
|
|
241
|
+
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
238
242
|
currentColor
|
|
239
243
|
</td>
|
|
240
|
-
<td className="px-6 py-4 text-sm
|
|
244
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
241
245
|
Stroke color of the icon
|
|
242
246
|
</td>
|
|
243
247
|
</tr>
|
|
244
|
-
<tr className="border-
|
|
245
|
-
<td className="px-6 py-4 font-mono text-sm
|
|
248
|
+
<tr className="border-fm-divider-tertiary bg-fm-surface-secondary! border-b">
|
|
249
|
+
<td className="!text-fm-secondary px-6 py-4 font-mono text-sm">
|
|
246
250
|
strokeWidth
|
|
247
251
|
</td>
|
|
248
|
-
<td className="px-6 py-4 text-sm
|
|
252
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
249
253
|
string | number
|
|
250
254
|
</td>
|
|
251
|
-
<td className="px-6 py-4 text-sm
|
|
255
|
+
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
252
256
|
1.5
|
|
253
257
|
</td>
|
|
254
|
-
<td className="px-6 py-4 text-sm
|
|
258
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
255
259
|
Width of the stroke
|
|
256
260
|
</td>
|
|
257
261
|
</tr>
|
|
258
|
-
<tr className="border-
|
|
259
|
-
<td className="px-6 py-4 font-mono text-sm
|
|
262
|
+
<tr className="border-fm-divider-tertiary border-b">
|
|
263
|
+
<td className="!text-fm-secondary px-6 py-4 font-mono text-sm">
|
|
260
264
|
className
|
|
261
265
|
</td>
|
|
262
|
-
<td className="px-6 py-4 text-sm
|
|
266
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
263
267
|
string
|
|
264
268
|
</td>
|
|
265
|
-
<td className="px-6 py-4 text-sm
|
|
266
|
-
|
|
269
|
+
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
270
|
+
-
|
|
271
|
+
</td>
|
|
272
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
267
273
|
CSS classes for styling (use for overrides)
|
|
268
274
|
</td>
|
|
269
275
|
</tr>
|
|
270
|
-
<tr className="
|
|
271
|
-
<td className="px-6 py-4 font-mono text-sm
|
|
276
|
+
<tr className="bg-fm-surface-secondary!">
|
|
277
|
+
<td className="!text-fm-secondary px-6 py-4 font-mono text-sm">
|
|
272
278
|
...svgProps
|
|
273
279
|
</td>
|
|
274
|
-
<td className="px-6 py-4 text-sm
|
|
280
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
275
281
|
SVGProps
|
|
276
282
|
</td>
|
|
277
|
-
<td className="px-6 py-4 text-sm
|
|
278
|
-
|
|
283
|
+
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
284
|
+
-
|
|
285
|
+
</td>
|
|
286
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
279
287
|
All standard SVG element props
|
|
280
288
|
</td>
|
|
281
289
|
</tr>
|
|
@@ -286,50 +294,62 @@ function CloseButton() {
|
|
|
286
294
|
|
|
287
295
|
{/* Size Variations */}
|
|
288
296
|
<div className="!space-y-8">
|
|
289
|
-
<h2 className="text-center text-3xl font-bold
|
|
297
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
290
298
|
Size Variations
|
|
291
299
|
</h2>
|
|
292
|
-
<div className="rounded-lg border
|
|
300
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-8">
|
|
293
301
|
<div className="!space-y-6">
|
|
294
302
|
<div className="grid grid-cols-1 gap-8 md:grid-cols-2">
|
|
295
303
|
<div className="!space-y-4">
|
|
296
|
-
<h3 className="text-lg font-semibold
|
|
304
|
+
<h3 className="!text-fm-secondary text-lg font-semibold">
|
|
297
305
|
Standard Sizes
|
|
298
306
|
</h3>
|
|
299
|
-
<div className="flex items-end gap-6 rounded-lg
|
|
307
|
+
<div className="bg-fm-surface-secondary flex items-end gap-6 rounded-lg p-6">
|
|
300
308
|
<div className="text-center">
|
|
301
|
-
<DownloadIcon className="!mx-auto mb-2 h-3 w-3
|
|
302
|
-
<span className="text-
|
|
309
|
+
<DownloadIcon className="text-fm-placeholder !mx-auto mb-2 h-3 w-3" />
|
|
310
|
+
<span className="text-fm-tertiary text-xs">
|
|
311
|
+
12px
|
|
312
|
+
</span>
|
|
303
313
|
</div>
|
|
304
314
|
<div className="text-center">
|
|
305
|
-
<DownloadIcon className="!mx-auto mb-2 h-4 w-4
|
|
306
|
-
<span className="text-
|
|
315
|
+
<DownloadIcon className="text-fm-placeholder !mx-auto mb-2 h-4 w-4" />
|
|
316
|
+
<span className="text-fm-tertiary text-xs">
|
|
317
|
+
16px
|
|
318
|
+
</span>
|
|
307
319
|
</div>
|
|
308
320
|
<div className="text-center">
|
|
309
|
-
<DownloadIcon className="!mx-auto mb-2 h-5 w-5
|
|
310
|
-
<span className="text-
|
|
321
|
+
<DownloadIcon className="text-fm-placeholder !mx-auto mb-2 h-5 w-5" />
|
|
322
|
+
<span className="text-fm-tertiary text-xs">
|
|
323
|
+
20px
|
|
324
|
+
</span>
|
|
311
325
|
</div>
|
|
312
326
|
<div className="text-center">
|
|
313
|
-
<DownloadIcon className="!mx-auto mb-2 h-6 w-6
|
|
314
|
-
<span className="text-
|
|
327
|
+
<DownloadIcon className="text-fm-placeholder !mx-auto mb-2 h-6 w-6" />
|
|
328
|
+
<span className="text-fm-tertiary text-xs">
|
|
329
|
+
24px
|
|
330
|
+
</span>
|
|
315
331
|
</div>
|
|
316
332
|
<div className="text-center">
|
|
317
|
-
<DownloadIcon className="!mx-auto mb-2 h-8 w-8
|
|
318
|
-
<span className="text-
|
|
333
|
+
<DownloadIcon className="text-fm-placeholder !mx-auto mb-2 h-8 w-8" />
|
|
334
|
+
<span className="text-fm-tertiary text-xs">
|
|
335
|
+
32px
|
|
336
|
+
</span>
|
|
319
337
|
</div>
|
|
320
338
|
<div className="text-center">
|
|
321
|
-
<DownloadIcon className="!mx-auto mb-2 h-12 w-12
|
|
322
|
-
<span className="text-
|
|
339
|
+
<DownloadIcon className="text-fm-placeholder !mx-auto mb-2 h-12 w-12" />
|
|
340
|
+
<span className="text-fm-tertiary text-xs">
|
|
341
|
+
48px
|
|
342
|
+
</span>
|
|
323
343
|
</div>
|
|
324
344
|
</div>
|
|
325
345
|
</div>
|
|
326
346
|
|
|
327
347
|
<div className="!space-y-4">
|
|
328
|
-
<h3 className="text-lg font-semibold
|
|
348
|
+
<h3 className="!text-fm-secondary text-lg font-semibold">
|
|
329
349
|
Code Example
|
|
330
350
|
</h3>
|
|
331
|
-
<div className="rounded-lg
|
|
332
|
-
<pre className="overflow-x-auto text-sm
|
|
351
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
352
|
+
<pre className="text-fm-icon-info! overflow-x-auto text-sm">
|
|
333
353
|
{`// Small (16px)
|
|
334
354
|
<DownloadIcon className="h-4 w-4 " />
|
|
335
355
|
|
|
@@ -351,56 +371,56 @@ function CloseButton() {
|
|
|
351
371
|
|
|
352
372
|
{/* Color Variations */}
|
|
353
373
|
<div className="!space-y-8">
|
|
354
|
-
<h2 className="text-center text-3xl font-bold
|
|
374
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
355
375
|
Color Variations
|
|
356
376
|
</h2>
|
|
357
377
|
<div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
|
|
358
378
|
<div className="!space-y-4">
|
|
359
|
-
<h3 className="text-lg font-semibold
|
|
379
|
+
<h3 className="!text-fm-secondary text-lg font-semibold">
|
|
360
380
|
Semantic Colors
|
|
361
381
|
</h3>
|
|
362
|
-
<div className="!space-y-4 rounded-lg border
|
|
382
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
|
|
363
383
|
<div className="flex items-center gap-4">
|
|
364
|
-
<DownloadIcon className="h-6 w-6
|
|
384
|
+
<DownloadIcon className="text-fm-placeholder h-6 w-6" />
|
|
365
385
|
<div>
|
|
366
|
-
<div className="text-sm font-medium
|
|
386
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
367
387
|
Default / Neutral
|
|
368
388
|
</div>
|
|
369
|
-
<div className="text-
|
|
370
|
-
text-
|
|
389
|
+
<div className="text-fm-tertiary text-xs">
|
|
390
|
+
text-fm-placeholder
|
|
371
391
|
</div>
|
|
372
392
|
</div>
|
|
373
393
|
</div>
|
|
374
394
|
<div className="flex items-center gap-4">
|
|
375
|
-
<DownloadIcon className="h-6 w-6
|
|
395
|
+
<DownloadIcon className="text-fm-icon-negative h-6 w-6" />
|
|
376
396
|
<div>
|
|
377
|
-
<div className="text-sm font-medium
|
|
397
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
378
398
|
Close / Error
|
|
379
399
|
</div>
|
|
380
|
-
<div className="text-
|
|
381
|
-
text-
|
|
400
|
+
<div className="text-fm-tertiary text-xs">
|
|
401
|
+
text-fm-icon-negative
|
|
382
402
|
</div>
|
|
383
403
|
</div>
|
|
384
404
|
</div>
|
|
385
405
|
<div className="flex items-center gap-4">
|
|
386
|
-
<DownloadIcon className="h-6 w-6
|
|
406
|
+
<DownloadIcon className="text-fm-tertiary h-6 w-6" />
|
|
387
407
|
<div>
|
|
388
|
-
<div className="text-sm font-medium
|
|
408
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
389
409
|
Muted
|
|
390
410
|
</div>
|
|
391
|
-
<div className="text-
|
|
392
|
-
text-
|
|
411
|
+
<div className="text-fm-tertiary text-xs">
|
|
412
|
+
text-fm-tertiary
|
|
393
413
|
</div>
|
|
394
414
|
</div>
|
|
395
415
|
</div>
|
|
396
416
|
<div className="flex items-center gap-4">
|
|
397
|
-
<DownloadIcon className="h-6 w-6
|
|
417
|
+
<DownloadIcon className="text-fm-secondary h-6 w-6" />
|
|
398
418
|
<div>
|
|
399
|
-
<div className="text-sm font-medium
|
|
419
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
400
420
|
Light
|
|
401
421
|
</div>
|
|
402
|
-
<div className="text-
|
|
403
|
-
text-
|
|
422
|
+
<div className="text-fm-tertiary text-xs">
|
|
423
|
+
text-fm-secondary
|
|
404
424
|
</div>
|
|
405
425
|
</div>
|
|
406
426
|
</div>
|
|
@@ -408,11 +428,11 @@ function CloseButton() {
|
|
|
408
428
|
</div>
|
|
409
429
|
|
|
410
430
|
<div className="!space-y-4">
|
|
411
|
-
<h3 className="text-lg font-semibold
|
|
431
|
+
<h3 className="!text-fm-secondary text-lg font-semibold">
|
|
412
432
|
Custom Colors
|
|
413
433
|
</h3>
|
|
414
|
-
<div className="rounded-lg
|
|
415
|
-
<pre className="overflow-x-auto text-sm
|
|
434
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
435
|
+
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
416
436
|
{`// Using Tailwind classes with
|
|
417
437
|
<DownloadIcon className="h-6 w-6 text-gray-400 " />
|
|
418
438
|
<DownloadIcon className="h-6 w-6 text-red-500 " />
|
|
@@ -437,22 +457,22 @@ function CloseButton() {
|
|
|
437
457
|
|
|
438
458
|
{/* Usage Examples */}
|
|
439
459
|
<div className="!space-y-8">
|
|
440
|
-
<h2 className="text-center text-3xl font-bold
|
|
460
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
441
461
|
Usage Examples
|
|
442
462
|
</h2>
|
|
443
463
|
|
|
444
464
|
<div className="!space-y-4">
|
|
445
465
|
<div className="flex items-center gap-4">
|
|
446
|
-
<button className="flex items-center gap-2 rounded-lg border
|
|
466
|
+
<button className="border-fm-secondary-500/30 bg-fm-secondary-500/10 text-fm-secondary-600 hover:bg-fm-secondary-500/20 flex items-center gap-2 rounded-lg border px-4 py-2 transition-colors">
|
|
447
467
|
<DownloadIcon className="h-4 w-4" />
|
|
448
468
|
Download File
|
|
449
469
|
</button>
|
|
450
|
-
<button className="flex items-center justify-center rounded-full border
|
|
470
|
+
<button className="border-fm-divider-primary bg-fm-surface-secondary text-fm-icon-active hover:bg-fm-surface-secondary flex items-center justify-center rounded-full border p-3 transition-colors">
|
|
451
471
|
<DownloadIcon className="h-5 w-5" />
|
|
452
472
|
</button>
|
|
453
473
|
</div>
|
|
454
|
-
<div className="rounded-lg
|
|
455
|
-
<pre className="overflow-x-auto text-sm
|
|
474
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
475
|
+
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
456
476
|
{`// Text button
|
|
457
477
|
<button className="flex items-center gap-2 bg-purple-500/10 border border-purple-500/30 px-4 py-2 rounded-lg">
|
|
458
478
|
<DownloadIcon className="h-4 w-4" />
|
|
@@ -470,65 +490,65 @@ function CloseButton() {
|
|
|
470
490
|
|
|
471
491
|
{/* Accessibility */}
|
|
472
492
|
<div className="!space-y-8">
|
|
473
|
-
<h2 className="text-center text-3xl font-bold
|
|
493
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
474
494
|
Accessibility Features
|
|
475
495
|
</h2>
|
|
476
496
|
<div className="grid grid-cols-1 gap-8 md:grid-cols-2">
|
|
477
|
-
<div className="!space-y-4 rounded-lg border
|
|
478
|
-
<h3 className="text-lg font-semibold
|
|
497
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
|
|
498
|
+
<h3 className="text-fm-icon-positive! text-lg font-semibold">
|
|
479
499
|
✅ Built-in Features
|
|
480
500
|
</h3>
|
|
481
|
-
<ul className="!space-y-2 text-sm
|
|
482
|
-
<li className="
|
|
501
|
+
<ul className="text-fm-secondary! !space-y-2 text-sm">
|
|
502
|
+
<li className="text-fm-secondary!">
|
|
483
503
|
Uses Radix UI AccessibleIcon wrapper
|
|
484
504
|
</li>
|
|
485
|
-
<li className="
|
|
505
|
+
<li className="text-fm-secondary!">
|
|
486
506
|
Provides screen reader label "Cross icon"
|
|
487
507
|
</li>
|
|
488
|
-
<li className="
|
|
508
|
+
<li className="text-fm-secondary!">
|
|
489
509
|
Supports keyboard navigation when interactive
|
|
490
510
|
</li>
|
|
491
|
-
<li className="
|
|
511
|
+
<li className="text-fm-secondary!">
|
|
492
512
|
Maintains proper color contrast ratios
|
|
493
513
|
</li>
|
|
494
|
-
<li className="
|
|
514
|
+
<li className="text-fm-secondary!">
|
|
495
515
|
Scales with user's font size preferences
|
|
496
516
|
</li>
|
|
497
517
|
</ul>
|
|
498
518
|
</div>
|
|
499
519
|
|
|
500
|
-
<div className="!space-y-4 rounded-lg border
|
|
501
|
-
<h3 className="text-lg font-semibold
|
|
520
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
|
|
521
|
+
<h3 className="!text-fm-secondary text-lg font-semibold">
|
|
502
522
|
💡 Best Practices
|
|
503
523
|
</h3>
|
|
504
|
-
<ul className="!space-y-2 text-sm
|
|
505
|
-
<li className="
|
|
524
|
+
<ul className="text-fm-secondary !space-y-2 text-sm">
|
|
525
|
+
<li className="text-fm-secondary!">
|
|
506
526
|
Always provide proper button labels for close actions
|
|
507
527
|
</li>
|
|
508
|
-
<li className="
|
|
528
|
+
<li className="text-fm-secondary!">
|
|
509
529
|
Use consistent placement for close buttons
|
|
510
530
|
</li>
|
|
511
|
-
<li className="
|
|
531
|
+
<li className="text-fm-secondary!">
|
|
512
532
|
Ensure sufficient touch target size (44px minimum)
|
|
513
533
|
</li>
|
|
514
|
-
<li className="
|
|
534
|
+
<li className="text-fm-secondary!">
|
|
515
535
|
Provide visible focus states for keyboard users
|
|
516
536
|
</li>
|
|
517
|
-
<li className="
|
|
537
|
+
<li className="text-fm-secondary!">
|
|
518
538
|
Consider escape key functionality for modals
|
|
519
539
|
</li>
|
|
520
540
|
</ul>
|
|
521
541
|
</div>
|
|
522
542
|
</div>
|
|
523
543
|
|
|
524
|
-
<div className="rounded-lg border
|
|
525
|
-
<h3 className="mb-4 text-lg font-semibold
|
|
544
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
|
|
545
|
+
<h3 className="text-fm-secondary-600! mb-4 text-lg font-semibold">
|
|
526
546
|
Proper ARIA Implementation
|
|
527
547
|
</h3>
|
|
528
548
|
<div className="grid grid-cols-1 gap-6 lg:grid-cols-2">
|
|
529
549
|
{/* Code Block */}
|
|
530
|
-
<div className="rounded-lg
|
|
531
|
-
<pre className="overflow-x-auto text-sm
|
|
550
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
551
|
+
<pre className="text-fm-icon-info! overflow-x-auto text-sm">
|
|
532
552
|
{`// Download report button with ARIA
|
|
533
553
|
<button
|
|
534
554
|
aria-label="Download monthly report"
|
|
@@ -558,14 +578,14 @@ function CloseButton() {
|
|
|
558
578
|
|
|
559
579
|
{/* Explanation Block */}
|
|
560
580
|
<div className="!space-y-4">
|
|
561
|
-
<p className="text-
|
|
581
|
+
<p className="text-fm-secondary! text-sm">
|
|
562
582
|
When using <code>DownloadIcon</code> for download or
|
|
563
583
|
export actions, make sure to include clear and
|
|
564
584
|
descriptive <code>aria-label</code>s that explain what
|
|
565
585
|
is being downloaded or saved.
|
|
566
586
|
</p>
|
|
567
|
-
<div className="
|
|
568
|
-
<div className="flex items-center gap-2 text-sm
|
|
587
|
+
<div className="border-fm-divider-secondary bg-fm-surface-tertiary/10 rounded-lg border p-4">
|
|
588
|
+
<div className="text-fm-secondary flex items-center gap-2 text-sm">
|
|
569
589
|
<DownloadIcon className="h-4 w-4" />
|
|
570
590
|
<span>
|
|
571
591
|
Accessibility labels help users understand the
|
|
@@ -580,50 +600,58 @@ function CloseButton() {
|
|
|
580
600
|
|
|
581
601
|
{/* Related Icons */}
|
|
582
602
|
<div className="!space-y-8">
|
|
583
|
-
<h2 className="text-center text-3xl font-bold
|
|
603
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
584
604
|
Related Icons
|
|
585
605
|
</h2>
|
|
586
606
|
<div className="grid grid-cols-2 gap-6 md:grid-cols-4">
|
|
587
|
-
<div className="!space-y-3 rounded-lg border
|
|
588
|
-
<div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg
|
|
589
|
-
<span className="
|
|
607
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
|
|
608
|
+
<div className="bg-fm-icon-negative/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
|
|
609
|
+
<span className="text-fm-icon-active! !text-2xl">⊗</span>
|
|
590
610
|
</div>
|
|
591
611
|
<div>
|
|
592
|
-
<div className="font-medium
|
|
612
|
+
<div className="text-fm-icon-active font-medium">
|
|
593
613
|
CrossCircleIcon
|
|
594
614
|
</div>
|
|
595
|
-
<div className="text-
|
|
615
|
+
<div className="text-fm-tertiary text-xs">
|
|
596
616
|
Cross with circle
|
|
597
617
|
</div>
|
|
598
618
|
</div>
|
|
599
619
|
</div>
|
|
600
|
-
<div className="!space-y-3 rounded-lg border
|
|
601
|
-
<div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg
|
|
602
|
-
<span className="
|
|
620
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
|
|
621
|
+
<div className="bg-fm-surface-tertiary/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
|
|
622
|
+
<span className="text-fm-icon-active! !text-2xl">−</span>
|
|
603
623
|
</div>
|
|
604
624
|
<div>
|
|
605
|
-
<div className="font-medium
|
|
606
|
-
|
|
625
|
+
<div className="text-fm-icon-active font-medium">
|
|
626
|
+
MinusIcon
|
|
627
|
+
</div>
|
|
628
|
+
<div className="text-fm-tertiary text-xs">Minimize</div>
|
|
607
629
|
</div>
|
|
608
630
|
</div>
|
|
609
|
-
<div className="!space-y-3 rounded-lg border
|
|
610
|
-
<div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg
|
|
611
|
-
<span className="
|
|
631
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
|
|
632
|
+
<div className="bg-fm-icon-warning/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
|
|
633
|
+
<span className="text-fm-icon-active! !text-2xl">⚠</span>
|
|
612
634
|
</div>
|
|
613
635
|
<div>
|
|
614
|
-
<div className="font-medium
|
|
615
|
-
|
|
636
|
+
<div className="text-fm-icon-active font-medium">
|
|
637
|
+
AlertIcon
|
|
638
|
+
</div>
|
|
639
|
+
<div className="text-fm-tertiary text-xs">
|
|
616
640
|
Warning states
|
|
617
641
|
</div>
|
|
618
642
|
</div>
|
|
619
643
|
</div>
|
|
620
|
-
<div className="!space-y-3 rounded-lg border
|
|
621
|
-
<div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg
|
|
622
|
-
<span className="
|
|
644
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
|
|
645
|
+
<div className="bg-fm-icon-info/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
|
|
646
|
+
<span className="text-fm-icon-active! !text-2xl">ℹ</span>
|
|
623
647
|
</div>
|
|
624
648
|
<div>
|
|
625
|
-
<div className="font-medium
|
|
626
|
-
|
|
649
|
+
<div className="text-fm-icon-active font-medium">
|
|
650
|
+
InfoIcon
|
|
651
|
+
</div>
|
|
652
|
+
<div className="text-fm-tertiary text-xs">
|
|
653
|
+
Information
|
|
654
|
+
</div>
|
|
627
655
|
</div>
|
|
628
656
|
</div>
|
|
629
657
|
</div>
|
|
@@ -631,14 +659,14 @@ function CloseButton() {
|
|
|
631
659
|
</div>
|
|
632
660
|
|
|
633
661
|
{/* Footer */}
|
|
634
|
-
<div className="border-
|
|
662
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary border-t backdrop-blur-xl">
|
|
635
663
|
<div className="!mx-auto max-w-7xl px-6 py-8">
|
|
636
664
|
<div className="!space-y-4 text-center">
|
|
637
|
-
<p className="
|
|
665
|
+
<p className="text-fm-tertiary!">
|
|
638
666
|
DownloadIcon is part of the Aural UI icon library, built
|
|
639
667
|
with simplicity and accessibility in mind.
|
|
640
668
|
</p>
|
|
641
|
-
<p className="text-
|
|
669
|
+
<p className="text-fm-placeholder! text-sm">
|
|
642
670
|
All icons use Radix UI's AccessibleIcon for screen reader
|
|
643
671
|
compatibility and follow WCAG guidelines.
|
|
644
672
|
</p>
|
|
@@ -691,20 +719,20 @@ const storyParameters = {
|
|
|
691
719
|
backgrounds: {
|
|
692
720
|
default: "dark",
|
|
693
721
|
values: [
|
|
694
|
-
{ name: "dark", value: "
|
|
695
|
-
{ name: "darker", value: "
|
|
722
|
+
{ name: "dark", value: "var(--color-fm-surface-primary)" },
|
|
723
|
+
{ name: "darker", value: "var(--color-fm-neutral-0)" },
|
|
696
724
|
],
|
|
697
725
|
},
|
|
698
726
|
}
|
|
699
727
|
|
|
700
728
|
export const Default: Story = {
|
|
701
729
|
args: {
|
|
702
|
-
className: "h-6 w-6 text-
|
|
730
|
+
className: "h-6 w-6 text-fm-placeholder ",
|
|
703
731
|
withAccessibility: true,
|
|
704
732
|
},
|
|
705
733
|
parameters: storyParameters,
|
|
706
734
|
render: (args) => (
|
|
707
|
-
<div className="flex h-32 min-h-dvh items-center justify-center rounded-lg bg-
|
|
735
|
+
<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">
|
|
708
736
|
<DownloadIcon {...args} />
|
|
709
737
|
</div>
|
|
710
738
|
),
|
|
@@ -721,30 +749,30 @@ export const SizeVariations: Story = {
|
|
|
721
749
|
},
|
|
722
750
|
},
|
|
723
751
|
render: () => (
|
|
724
|
-
<div className="flex h-64 min-h-dvh items-center justify-center gap-8 rounded-lg bg-
|
|
752
|
+
<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">
|
|
725
753
|
<div className="text-center">
|
|
726
|
-
<DownloadIcon className="!mx-auto mb-2 h-3 w-3
|
|
727
|
-
<span className="text-
|
|
754
|
+
<DownloadIcon className="text-fm-placeholder !mx-auto mb-2 h-3 w-3" />
|
|
755
|
+
<span className="text-fm-tertiary text-xs">12px</span>
|
|
728
756
|
</div>
|
|
729
757
|
<div className="text-center">
|
|
730
|
-
<DownloadIcon className="!mx-auto mb-2 h-4 w-4
|
|
731
|
-
<span className="text-
|
|
758
|
+
<DownloadIcon className="text-fm-placeholder !mx-auto mb-2 h-4 w-4" />
|
|
759
|
+
<span className="text-fm-tertiary text-xs">16px</span>
|
|
732
760
|
</div>
|
|
733
761
|
<div className="text-center">
|
|
734
|
-
<DownloadIcon className="!mx-auto mb-2 h-5 w-5
|
|
735
|
-
<span className="text-
|
|
762
|
+
<DownloadIcon className="text-fm-placeholder !mx-auto mb-2 h-5 w-5" />
|
|
763
|
+
<span className="text-fm-tertiary text-xs">20px</span>
|
|
736
764
|
</div>
|
|
737
765
|
<div className="text-center">
|
|
738
|
-
<DownloadIcon className="!mx-auto mb-2 h-6 w-6
|
|
739
|
-
<span className="text-
|
|
766
|
+
<DownloadIcon className="text-fm-placeholder !mx-auto mb-2 h-6 w-6" />
|
|
767
|
+
<span className="text-fm-tertiary text-xs">24px</span>
|
|
740
768
|
</div>
|
|
741
769
|
<div className="text-center">
|
|
742
|
-
<DownloadIcon className="!mx-auto mb-2 h-8 w-8
|
|
743
|
-
<span className="text-
|
|
770
|
+
<DownloadIcon className="text-fm-placeholder !mx-auto mb-2 h-8 w-8" />
|
|
771
|
+
<span className="text-fm-tertiary text-xs">32px</span>
|
|
744
772
|
</div>
|
|
745
773
|
<div className="text-center">
|
|
746
|
-
<DownloadIcon className="!mx-auto mb-2 h-12 w-12
|
|
747
|
-
<span className="text-
|
|
774
|
+
<DownloadIcon className="text-fm-placeholder !mx-auto mb-2 h-12 w-12" />
|
|
775
|
+
<span className="text-fm-tertiary text-xs">48px</span>
|
|
748
776
|
</div>
|
|
749
777
|
</div>
|
|
750
778
|
),
|
|
@@ -761,34 +789,38 @@ export const ColorVariations: Story = {
|
|
|
761
789
|
},
|
|
762
790
|
},
|
|
763
791
|
render: () => (
|
|
764
|
-
<div className="grid min-h-dvh grid-cols-2 items-center justify-center gap-6 rounded-lg bg-
|
|
792
|
+
<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">
|
|
765
793
|
<div className="text-center">
|
|
766
|
-
<div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border
|
|
767
|
-
<DownloadIcon className="h-8 w-8
|
|
794
|
+
<div className="border-fm-divider-primary bg-fm-surface-tertiary/20 !mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border">
|
|
795
|
+
<DownloadIcon className="text-fm-placeholder h-8 w-8" />
|
|
768
796
|
</div>
|
|
769
|
-
<div className="text-sm font-medium
|
|
770
|
-
<div className="text-
|
|
797
|
+
<div className="text-fm-icon-active text-sm font-medium">Default</div>
|
|
798
|
+
<div className="text-fm-placeholder text-xs">text-fm-placeholder</div>
|
|
771
799
|
</div>
|
|
772
800
|
<div className="text-center">
|
|
773
|
-
<div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border
|
|
774
|
-
<DownloadIcon className="h-8 w-8
|
|
801
|
+
<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">
|
|
802
|
+
<DownloadIcon className="text-fm-icon-negative h-8 w-8" />
|
|
803
|
+
</div>
|
|
804
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
805
|
+
Close/Error
|
|
806
|
+
</div>
|
|
807
|
+
<div className="text-fm-icon-negative text-xs">
|
|
808
|
+
text-fm-icon-negative
|
|
775
809
|
</div>
|
|
776
|
-
<div className="text-sm font-medium text-white">Close/Error</div>
|
|
777
|
-
<div className="text-xs text-red-400">text-red-400</div>
|
|
778
810
|
</div>
|
|
779
811
|
<div className="text-center">
|
|
780
|
-
<div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border
|
|
781
|
-
<DownloadIcon className="h-8 w-8
|
|
812
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border">
|
|
813
|
+
<DownloadIcon className="text-fm-tertiary h-8 w-8" />
|
|
782
814
|
</div>
|
|
783
|
-
<div className="text-sm font-medium
|
|
784
|
-
<div className="text-
|
|
815
|
+
<div className="text-fm-icon-active text-sm font-medium">Muted</div>
|
|
816
|
+
<div className="text-fm-tertiary text-xs">text-fm-tertiary</div>
|
|
785
817
|
</div>
|
|
786
818
|
<div className="text-center">
|
|
787
|
-
<div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border
|
|
788
|
-
<DownloadIcon className="h-8 w-8
|
|
819
|
+
<div className="border-fm-divider-primary bg-fm-icon-inactive/20 !mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border">
|
|
820
|
+
<DownloadIcon className="text-fm-secondary h-8 w-8" />
|
|
789
821
|
</div>
|
|
790
|
-
<div className="text-sm font-medium
|
|
791
|
-
<div className="text-
|
|
822
|
+
<div className="text-fm-icon-active text-sm font-medium">Light</div>
|
|
823
|
+
<div className="text-fm-secondary text-xs">text-fm-secondary</div>
|
|
792
824
|
</div>
|
|
793
825
|
</div>
|
|
794
826
|
),
|
|
@@ -805,18 +837,22 @@ export const UsageExamples: Story = {
|
|
|
805
837
|
},
|
|
806
838
|
},
|
|
807
839
|
render: () => (
|
|
808
|
-
<div className="min-h-dvh !space-y-8 rounded-lg bg-
|
|
840
|
+
<div className="from-fm-surface-primary to-fm-surface-secondary min-h-dvh !space-y-8 rounded-lg bg-linear-to-br p-8">
|
|
809
841
|
{/* Modal Close Button */}
|
|
810
842
|
<div className="!space-y-2">
|
|
811
|
-
<h3 className="text-sm font-medium
|
|
812
|
-
|
|
843
|
+
<h3 className="text-fm-icon-active text-sm font-medium">
|
|
844
|
+
Modal Close Button
|
|
845
|
+
</h3>
|
|
846
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
|
|
813
847
|
<div className="mb-4 flex items-center justify-between">
|
|
814
|
-
<h3 className="text-lg font-semibold
|
|
815
|
-
|
|
816
|
-
|
|
848
|
+
<h3 className="text-fm-icon-active text-lg font-semibold">
|
|
849
|
+
Settings
|
|
850
|
+
</h3>
|
|
851
|
+
<button className="hover:bg-fm-surface-secondary rounded-lg p-2 transition-colors">
|
|
852
|
+
<DownloadIcon className="text-fm-placeholder h-5 w-5" />
|
|
817
853
|
</button>
|
|
818
854
|
</div>
|
|
819
|
-
<p className="text-
|
|
855
|
+
<p className="text-fm-secondary">
|
|
820
856
|
Configure your application preferences and settings.
|
|
821
857
|
</p>
|
|
822
858
|
</div>
|
|
@@ -824,34 +860,38 @@ export const UsageExamples: Story = {
|
|
|
824
860
|
|
|
825
861
|
{/* Search Clear Button */}
|
|
826
862
|
<div className="!space-y-2">
|
|
827
|
-
<h3 className="text-sm font-medium
|
|
863
|
+
<h3 className="text-fm-icon-active text-sm font-medium">
|
|
864
|
+
Search Clear Button
|
|
865
|
+
</h3>
|
|
828
866
|
<div className="relative">
|
|
829
867
|
<input
|
|
830
868
|
type="text"
|
|
831
|
-
className="w-full rounded-lg border
|
|
869
|
+
className="border-fm-divider-primary bg-fm-surface-secondary text-fm-icon-active focus:border-fm-divider-primary w-full rounded-lg border px-3 py-2 pr-10 placeholder-white/50 focus:ring-2 focus:ring-gray-400/20"
|
|
832
870
|
placeholder="Search..."
|
|
833
871
|
defaultValue="Sample query"
|
|
834
872
|
/>
|
|
835
|
-
<button className="absolute top-1/2 right-3 -translate-y-1/2 rounded p-0.5
|
|
836
|
-
<DownloadIcon className="h-4 w-4
|
|
873
|
+
<button className="hover:bg-fm-surface-secondary absolute top-1/2 right-3 -translate-y-1/2 rounded p-0.5">
|
|
874
|
+
<DownloadIcon className="text-fm-placeholder h-4 w-4" />
|
|
837
875
|
</button>
|
|
838
876
|
</div>
|
|
839
877
|
</div>
|
|
840
878
|
|
|
841
879
|
{/* Tab Close Button */}
|
|
842
880
|
<div className="!space-y-2">
|
|
843
|
-
<h3 className="text-sm font-medium
|
|
844
|
-
|
|
845
|
-
|
|
881
|
+
<h3 className="text-fm-icon-active text-sm font-medium">
|
|
882
|
+
Tab Close Button
|
|
883
|
+
</h3>
|
|
884
|
+
<div className="border-fm-divider-secondary flex border-b">
|
|
885
|
+
<div className="border-fm-icon-info text-fm-icon-info flex items-center gap-2 border-b-2 px-4 py-2">
|
|
846
886
|
<span>Component.tsx</span>
|
|
847
|
-
<button className="rounded p-0.5
|
|
848
|
-
<DownloadIcon className="h-3 w-3
|
|
887
|
+
<button className="hover:bg-fm-icon-info/20 rounded p-0.5">
|
|
888
|
+
<DownloadIcon className="text-fm-icon-info h-3 w-3" />
|
|
849
889
|
</button>
|
|
850
890
|
</div>
|
|
851
|
-
<div className="flex items-center gap-2 px-4 py-2
|
|
891
|
+
<div className="text-fm-tertiary hover:text-fm-icon-active flex items-center gap-2 px-4 py-2">
|
|
852
892
|
<span>utils.ts</span>
|
|
853
|
-
<button className="rounded p-0.5 opacity-60 hover:
|
|
854
|
-
<DownloadIcon className="h-3 w-3
|
|
893
|
+
<button className="hover:bg-fm-surface-secondary rounded p-0.5 opacity-60 hover:opacity-100">
|
|
894
|
+
<DownloadIcon className="text-fm-placeholder h-3 w-3" />
|
|
855
895
|
</button>
|
|
856
896
|
</div>
|
|
857
897
|
</div>
|
|
@@ -873,11 +913,11 @@ export const Playground: Story = {
|
|
|
873
913
|
args: {
|
|
874
914
|
width: 32,
|
|
875
915
|
height: 32,
|
|
876
|
-
className: "text-
|
|
916
|
+
className: "text-fm-placeholder ",
|
|
877
917
|
},
|
|
878
918
|
render: (args) => (
|
|
879
|
-
<div className="flex h-64 min-h-dvh items-center justify-center rounded-lg bg-
|
|
880
|
-
<div className="rounded-lg border
|
|
919
|
+
<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">
|
|
920
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-8">
|
|
881
921
|
<DownloadIcon {...args} />
|
|
882
922
|
</div>
|
|
883
923
|
</div>
|