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 UploadIcon> = {
|
|
|
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 UploadIcon> = {
|
|
|
40
40
|
background: transparent !important;
|
|
41
41
|
}
|
|
42
42
|
body {
|
|
43
|
-
background:
|
|
43
|
+
background: var(--color-fm-surface-primary) !important;
|
|
44
44
|
}
|
|
45
45
|
#storybook-docs {
|
|
46
|
-
background:
|
|
46
|
+
background: var(--color-fm-surface-primary) !important;
|
|
47
47
|
}
|
|
48
48
|
.sbdocs-preview {
|
|
49
49
|
background: transparent !important;
|
|
50
50
|
border: none !important;
|
|
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) !important;
|
|
54
54
|
}
|
|
55
55
|
.sbdocs-p, .sbdocs-li {
|
|
56
|
-
color:
|
|
56
|
+
color: var(--color-fm-secondary) !important;
|
|
57
57
|
}
|
|
58
58
|
.sbdocs-code {
|
|
59
|
-
background:
|
|
60
|
-
color:
|
|
61
|
-
border: 1px solid
|
|
59
|
+
background: var(--color-fm-surface-secondary) !important;
|
|
60
|
+
color: var(--color-fm-secondary-500) !important;
|
|
61
|
+
border: 1px solid var(--color-fm-divider-secondary) !important;
|
|
62
62
|
}
|
|
63
63
|
.sbdocs-pre {
|
|
64
|
-
background:
|
|
65
|
-
border: 1px solid
|
|
64
|
+
background: var(--color-fm-surface-secondary) !important;
|
|
65
|
+
border: 1px solid var(--color-fm-divider-secondary) !important;
|
|
66
66
|
}
|
|
67
67
|
.sbdocs-table {
|
|
68
|
-
background:
|
|
69
|
-
border: 1px solid
|
|
68
|
+
background: var(--color-fm-surface-secondary) !important;
|
|
69
|
+
border: 1px solid var(--color-fm-divider-secondary) !important;
|
|
70
70
|
}
|
|
71
71
|
.sbdocs-table th {
|
|
72
|
-
background:
|
|
73
|
-
color:
|
|
74
|
-
border-bottom: 1px solid
|
|
72
|
+
background: var(--color-fm-surface-secondary) !important;
|
|
73
|
+
color: var(--color-fm-icon-active) !important;
|
|
74
|
+
border-bottom: 1px solid var(--color-fm-divider-secondary) !important;
|
|
75
75
|
}
|
|
76
76
|
.sbdocs-table td {
|
|
77
|
-
color:
|
|
78
|
-
border-bottom: 1px solid
|
|
77
|
+
color: var(--color-fm-secondary) !important;
|
|
78
|
+
border-bottom: 1px solid var(--color-fm-divider-tertiary) !important;
|
|
79
79
|
}
|
|
80
80
|
`}
|
|
81
81
|
</style>
|
|
82
82
|
|
|
83
|
-
<div className="
|
|
83
|
+
<div className="from-fm-surface-primary via-fm-icon-info/5 to-fm-surface-primary min-h-screen bg-linear-to-br">
|
|
84
84
|
{/* Header */}
|
|
85
|
-
<div className="relative overflow-hidden border-b
|
|
86
|
-
<div className="absolute inset-0 bg-
|
|
85
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary relative overflow-hidden border-b backdrop-blur-xl">
|
|
86
|
+
<div className="from-fm-icon-info/10 to-fm-icon-positive/10 absolute inset-0 bg-linear-to-r via-transparent" />
|
|
87
87
|
<div className="relative !mx-auto max-w-7xl px-6 py-16">
|
|
88
88
|
<div className="!space-y-6 text-center">
|
|
89
|
-
<div className="!mx-auto flex h-24 w-24 items-center justify-center rounded-2xl border
|
|
90
|
-
<UploadIcon className="h-12 w-12
|
|
89
|
+
<div className="border-fm-icon-info/30 from-fm-icon-info/20 to-fm-icon-positive/20 !mx-auto flex h-24 w-24 items-center justify-center rounded-2xl border bg-linear-to-br">
|
|
90
|
+
<UploadIcon className="text-fm-icon-info h-12 w-12" />
|
|
91
91
|
</div>
|
|
92
92
|
<h1 className="!text-fm-primary text-5xl font-bold">
|
|
93
93
|
UploadIcon
|
|
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 versatile upload icon for file uploads, cloud sync, and
|
|
97
97
|
data transfer operations. Built with accessibility in mind
|
|
98
98
|
using Radix UI's AccessibleIcon wrapper.
|
|
@@ -101,28 +101,28 @@ const meta: Meta<typeof UploadIcon> = {
|
|
|
101
101
|
{/* Stats */}
|
|
102
102
|
<div className="flex items-center justify-center gap-8 pt-8">
|
|
103
103
|
<div className="text-center">
|
|
104
|
-
<div className="text-3xl font-bold
|
|
104
|
+
<div className="text-fm-icon-info text-3xl font-bold">
|
|
105
105
|
Accessible
|
|
106
106
|
</div>
|
|
107
|
-
<div className="text-
|
|
107
|
+
<div className="text-fm-tertiary text-sm">
|
|
108
108
|
Screen reader friendly
|
|
109
109
|
</div>
|
|
110
110
|
</div>
|
|
111
|
-
<div className="h-8 w-px
|
|
111
|
+
<div className="bg-fm-divider-primary h-8 w-px" />
|
|
112
112
|
<div className="text-center">
|
|
113
|
-
<div className="text-3xl font-bold
|
|
113
|
+
<div className="text-fm-icon-positive text-3xl font-bold">
|
|
114
114
|
Scalable
|
|
115
115
|
</div>
|
|
116
|
-
<div className="text-
|
|
116
|
+
<div className="text-fm-tertiary text-sm">
|
|
117
117
|
Any size needed
|
|
118
118
|
</div>
|
|
119
119
|
</div>
|
|
120
|
-
<div className="h-8 w-px
|
|
120
|
+
<div className="bg-fm-divider-primary h-8 w-px" />
|
|
121
121
|
<div className="text-center">
|
|
122
|
-
<div className="text-3xl font-bold
|
|
122
|
+
<div className="text-fm-secondary-600 text-3xl font-bold">
|
|
123
123
|
Flexible
|
|
124
124
|
</div>
|
|
125
|
-
<div className="text-
|
|
125
|
+
<div className="text-fm-tertiary text-sm">
|
|
126
126
|
Customizable styling
|
|
127
127
|
</div>
|
|
128
128
|
</div>
|
|
@@ -135,16 +135,16 @@ const meta: Meta<typeof UploadIcon> = {
|
|
|
135
135
|
<div className="!mx-auto max-w-7xl !space-y-16 px-6 py-12">
|
|
136
136
|
{/* Quick Usage */}
|
|
137
137
|
<div className="!space-y-8">
|
|
138
|
-
<h2 className="text-center text-3xl font-bold
|
|
138
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
139
139
|
Quick Start
|
|
140
140
|
</h2>
|
|
141
141
|
<div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
|
|
142
142
|
<div className="!space-y-4">
|
|
143
|
-
<h3 className="text-xl font-semibold
|
|
143
|
+
<h3 className="text-fm-icon-info! text-xl font-semibold">
|
|
144
144
|
Basic Usage
|
|
145
145
|
</h3>
|
|
146
|
-
<div className="rounded-lg
|
|
147
|
-
<pre className="overflow-x-auto text-sm
|
|
146
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
147
|
+
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
148
148
|
{`import { UploadIcon } from "@icons/upload-icon"
|
|
149
149
|
|
|
150
150
|
function MyComponent() {
|
|
@@ -160,13 +160,15 @@ function MyComponent() {
|
|
|
160
160
|
</div>
|
|
161
161
|
|
|
162
162
|
<div className="!space-y-4">
|
|
163
|
-
<h3 className="text-xl font-semibold
|
|
163
|
+
<h3 className="text-fm-icon-info! 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
|
-
<div className="flex items-center gap-3 rounded-lg border
|
|
168
|
-
<UploadIcon className="h-5 w-5
|
|
169
|
-
<span className="text-
|
|
166
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary flex h-32 items-center justify-center rounded-lg border">
|
|
167
|
+
<div className="border-fm-icon-info/20 bg-fm-icon-info/10 flex items-center gap-3 rounded-lg border px-4 py-2">
|
|
168
|
+
<UploadIcon className="text-fm-icon-info h-5 w-5" />
|
|
169
|
+
<span className="text-fm-icon-active">
|
|
170
|
+
Upload files
|
|
171
|
+
</span>
|
|
170
172
|
</div>
|
|
171
173
|
</div>
|
|
172
174
|
</div>
|
|
@@ -175,94 +177,102 @@ function MyComponent() {
|
|
|
175
177
|
|
|
176
178
|
{/* Props Documentation */}
|
|
177
179
|
<div className="!space-y-8">
|
|
178
|
-
<h2 className="text-center text-3xl font-bold
|
|
180
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
179
181
|
Props & Configuration
|
|
180
182
|
</h2>
|
|
181
183
|
|
|
182
|
-
<div className="overflow-hidden rounded-lg border
|
|
183
|
-
<div className="bg-
|
|
184
|
-
<h3 className="text-xl font-semibold
|
|
184
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary overflow-hidden rounded-lg border">
|
|
185
|
+
<div className="bg-fm-surface-secondary p-4">
|
|
186
|
+
<h3 className="text-fm-icon-active! text-xl font-semibold">
|
|
187
|
+
Props
|
|
188
|
+
</h3>
|
|
185
189
|
</div>
|
|
186
190
|
<table className="!my-0 w-full">
|
|
187
|
-
<thead className="bg-
|
|
188
|
-
<tr className="border-
|
|
189
|
-
<th className="px-6 py-4 text-left text-sm font-semibold
|
|
191
|
+
<thead className="bg-fm-surface-secondary">
|
|
192
|
+
<tr className="border-fm-divider-secondary border-b">
|
|
193
|
+
<th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
|
|
190
194
|
Prop
|
|
191
195
|
</th>
|
|
192
|
-
<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">
|
|
193
197
|
Type
|
|
194
198
|
</th>
|
|
195
|
-
<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">
|
|
196
200
|
Default
|
|
197
201
|
</th>
|
|
198
|
-
<th className="px-6 py-4 text-left text-sm font-semibold
|
|
202
|
+
<th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
|
|
199
203
|
Description
|
|
200
204
|
</th>
|
|
201
205
|
</tr>
|
|
202
206
|
</thead>
|
|
203
207
|
<tbody>
|
|
204
208
|
{" "}
|
|
205
|
-
<tr className="
|
|
206
|
-
<td className="px-6 py-4 font-mono text-sm
|
|
209
|
+
<tr className="bg-fm-surface-secondary!">
|
|
210
|
+
<td className="text-fm-icon-info! px-6 py-4 font-mono text-sm">
|
|
207
211
|
withAccessibility
|
|
208
212
|
</td>
|
|
209
|
-
<td className="px-6 py-4 text-sm
|
|
213
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
210
214
|
boolean
|
|
211
215
|
</td>
|
|
212
|
-
<td className="px-6 py-4 text-sm
|
|
216
|
+
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
213
217
|
true
|
|
214
218
|
</td>
|
|
215
|
-
<td className="px-6 py-4 text-sm
|
|
219
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
216
220
|
Whether to wrap the icon with accessibility feature
|
|
217
221
|
</td>
|
|
218
222
|
</tr>
|
|
219
|
-
<tr className="border-
|
|
220
|
-
<td className="px-6 py-4 font-mono text-sm
|
|
223
|
+
<tr className="border-fm-divider-tertiary bg-fm-surface-secondary! border-b">
|
|
224
|
+
<td className="text-fm-icon-info! px-6 py-4 font-mono text-sm">
|
|
221
225
|
height
|
|
222
226
|
</td>
|
|
223
|
-
<td className="px-6 py-4 text-sm
|
|
227
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
224
228
|
number | string
|
|
225
229
|
</td>
|
|
226
|
-
<td className="px-6 py-4 text-sm
|
|
227
|
-
|
|
230
|
+
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
231
|
+
24
|
|
232
|
+
</td>
|
|
233
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
228
234
|
Height of the icon in pixels
|
|
229
235
|
</td>
|
|
230
236
|
</tr>
|
|
231
|
-
<tr className="border-
|
|
232
|
-
<td className="px-6 py-4 font-mono text-sm
|
|
237
|
+
<tr className="border-fm-divider-tertiary border-b">
|
|
238
|
+
<td className="text-fm-icon-info! px-6 py-4 font-mono text-sm">
|
|
233
239
|
stroke
|
|
234
240
|
</td>
|
|
235
|
-
<td className="px-6 py-4 text-sm
|
|
241
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
236
242
|
string
|
|
237
243
|
</td>
|
|
238
|
-
<td className="px-6 py-4 text-sm
|
|
244
|
+
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
239
245
|
currentColor
|
|
240
246
|
</td>
|
|
241
|
-
<td className="px-6 py-4 text-sm
|
|
247
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
242
248
|
Stroke color of the icon
|
|
243
249
|
</td>
|
|
244
250
|
</tr>
|
|
245
|
-
<tr className="border-
|
|
246
|
-
<td className="px-6 py-4 font-mono text-sm
|
|
251
|
+
<tr className="border-fm-divider-tertiary bg-fm-surface-secondary! border-b">
|
|
252
|
+
<td className="text-fm-icon-info! px-6 py-4 font-mono text-sm">
|
|
247
253
|
className
|
|
248
254
|
</td>
|
|
249
|
-
<td className="px-6 py-4 text-sm
|
|
255
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
250
256
|
string
|
|
251
257
|
</td>
|
|
252
|
-
<td className="px-6 py-4 text-sm
|
|
253
|
-
|
|
258
|
+
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
259
|
+
-
|
|
260
|
+
</td>
|
|
261
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
254
262
|
CSS classes for styling
|
|
255
263
|
</td>
|
|
256
264
|
</tr>
|
|
257
|
-
<tr className="
|
|
258
|
-
<td className="px-6 py-4 font-mono text-sm
|
|
265
|
+
<tr className="bg-fm-surface-secondary!">
|
|
266
|
+
<td className="text-fm-icon-info! px-6 py-4 font-mono text-sm">
|
|
259
267
|
...svgProps
|
|
260
268
|
</td>
|
|
261
|
-
<td className="px-6 py-4 text-sm
|
|
269
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
262
270
|
SVGProps
|
|
263
271
|
</td>
|
|
264
|
-
<td className="px-6 py-4 text-sm
|
|
265
|
-
|
|
272
|
+
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
273
|
+
-
|
|
274
|
+
</td>
|
|
275
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
266
276
|
All standard SVG element props
|
|
267
277
|
</td>
|
|
268
278
|
</tr>
|
|
@@ -273,50 +283,62 @@ function MyComponent() {
|
|
|
273
283
|
|
|
274
284
|
{/* Size Variations */}
|
|
275
285
|
<div className="!space-y-8">
|
|
276
|
-
<h2 className="text-center text-3xl font-bold
|
|
286
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
277
287
|
Size Variations
|
|
278
288
|
</h2>
|
|
279
|
-
<div className="rounded-lg border
|
|
289
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-8">
|
|
280
290
|
<div className="!space-y-6">
|
|
281
291
|
<div className="grid grid-cols-1 gap-8 md:grid-cols-2">
|
|
282
292
|
<div className="!space-y-4">
|
|
283
|
-
<h3 className="text-lg font-semibold
|
|
293
|
+
<h3 className="text-fm-icon-info! text-lg font-semibold">
|
|
284
294
|
Standard Sizes
|
|
285
295
|
</h3>
|
|
286
|
-
<div className="flex items-end gap-6 rounded-lg
|
|
296
|
+
<div className="bg-fm-surface-secondary flex items-end gap-6 rounded-lg p-6">
|
|
287
297
|
<div className="text-center">
|
|
288
|
-
<UploadIcon className="!mx-auto mb-2 h-3 w-3
|
|
289
|
-
<span className="text-
|
|
298
|
+
<UploadIcon className="text-fm-icon-info !mx-auto mb-2 h-3 w-3" />
|
|
299
|
+
<span className="text-fm-tertiary text-xs">
|
|
300
|
+
12px
|
|
301
|
+
</span>
|
|
290
302
|
</div>
|
|
291
303
|
<div className="text-center">
|
|
292
|
-
<UploadIcon className="!mx-auto mb-2 h-4 w-4
|
|
293
|
-
<span className="text-
|
|
304
|
+
<UploadIcon className="text-fm-icon-info !mx-auto mb-2 h-4 w-4" />
|
|
305
|
+
<span className="text-fm-tertiary text-xs">
|
|
306
|
+
16px
|
|
307
|
+
</span>
|
|
294
308
|
</div>
|
|
295
309
|
<div className="text-center">
|
|
296
|
-
<UploadIcon className="!mx-auto mb-2 h-5 w-5
|
|
297
|
-
<span className="text-
|
|
310
|
+
<UploadIcon className="text-fm-icon-info !mx-auto mb-2 h-5 w-5" />
|
|
311
|
+
<span className="text-fm-tertiary text-xs">
|
|
312
|
+
20px
|
|
313
|
+
</span>
|
|
298
314
|
</div>
|
|
299
315
|
<div className="text-center">
|
|
300
|
-
<UploadIcon className="!mx-auto mb-2 h-6 w-6
|
|
301
|
-
<span className="text-
|
|
316
|
+
<UploadIcon className="text-fm-icon-info !mx-auto mb-2 h-6 w-6" />
|
|
317
|
+
<span className="text-fm-tertiary text-xs">
|
|
318
|
+
24px
|
|
319
|
+
</span>
|
|
302
320
|
</div>
|
|
303
321
|
<div className="text-center">
|
|
304
|
-
<UploadIcon className="!mx-auto mb-2 h-8 w-8
|
|
305
|
-
<span className="text-
|
|
322
|
+
<UploadIcon className="text-fm-icon-info !mx-auto mb-2 h-8 w-8" />
|
|
323
|
+
<span className="text-fm-tertiary text-xs">
|
|
324
|
+
32px
|
|
325
|
+
</span>
|
|
306
326
|
</div>
|
|
307
327
|
<div className="text-center">
|
|
308
|
-
<UploadIcon className="!mx-auto mb-2 h-12 w-12
|
|
309
|
-
<span className="text-
|
|
328
|
+
<UploadIcon className="text-fm-icon-info !mx-auto mb-2 h-12 w-12" />
|
|
329
|
+
<span className="text-fm-tertiary text-xs">
|
|
330
|
+
48px
|
|
331
|
+
</span>
|
|
310
332
|
</div>
|
|
311
333
|
</div>
|
|
312
334
|
</div>
|
|
313
335
|
|
|
314
336
|
<div className="!space-y-4">
|
|
315
|
-
<h3 className="text-lg font-semibold
|
|
337
|
+
<h3 className="text-fm-icon-info! text-lg font-semibold">
|
|
316
338
|
Code Example
|
|
317
339
|
</h3>
|
|
318
|
-
<div className="rounded-lg
|
|
319
|
-
<pre className="overflow-x-auto text-sm
|
|
340
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
341
|
+
<pre className="text-fm-icon-info! overflow-x-auto text-sm">
|
|
320
342
|
{`// Small (16px)
|
|
321
343
|
<UploadIcon className="h-4 w-4" />
|
|
322
344
|
|
|
@@ -338,56 +360,56 @@ function MyComponent() {
|
|
|
338
360
|
|
|
339
361
|
{/* Color Variations */}
|
|
340
362
|
<div className="!space-y-8">
|
|
341
|
-
<h2 className="text-center text-3xl font-bold
|
|
363
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
342
364
|
Color Variations
|
|
343
365
|
</h2>
|
|
344
366
|
<div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
|
|
345
367
|
<div className="!space-y-4">
|
|
346
|
-
<h3 className="text-lg font-semibold
|
|
368
|
+
<h3 className="text-fm-icon-info! text-lg font-semibold">
|
|
347
369
|
Semantic Colors
|
|
348
370
|
</h3>
|
|
349
|
-
<div className="!space-y-4 rounded-lg border
|
|
371
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
|
|
350
372
|
<div className="flex items-center gap-4">
|
|
351
|
-
<UploadIcon className="h-6 w-6
|
|
373
|
+
<UploadIcon className="text-fm-icon-info h-6 w-6" />
|
|
352
374
|
<div>
|
|
353
|
-
<div className="text-sm font-medium
|
|
375
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
354
376
|
Primary
|
|
355
377
|
</div>
|
|
356
|
-
<div className="text-
|
|
357
|
-
text-
|
|
378
|
+
<div className="text-fm-tertiary text-xs">
|
|
379
|
+
text-fm-icon-info
|
|
358
380
|
</div>
|
|
359
381
|
</div>
|
|
360
382
|
</div>
|
|
361
383
|
<div className="flex items-center gap-4">
|
|
362
|
-
<UploadIcon className="h-6 w-6
|
|
384
|
+
<UploadIcon className="text-fm-icon-positive h-6 w-6" />
|
|
363
385
|
<div>
|
|
364
|
-
<div className="text-sm font-medium
|
|
386
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
365
387
|
Success
|
|
366
388
|
</div>
|
|
367
|
-
<div className="text-
|
|
368
|
-
text-
|
|
389
|
+
<div className="text-fm-tertiary text-xs">
|
|
390
|
+
text-fm-icon-positive
|
|
369
391
|
</div>
|
|
370
392
|
</div>
|
|
371
393
|
</div>
|
|
372
394
|
<div className="flex items-center gap-4">
|
|
373
|
-
<UploadIcon className="h-6 w-6
|
|
395
|
+
<UploadIcon className="text-fm-secondary-600 h-6 w-6" />
|
|
374
396
|
<div>
|
|
375
|
-
<div className="text-sm font-medium
|
|
397
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
376
398
|
Secondary
|
|
377
399
|
</div>
|
|
378
|
-
<div className="text-
|
|
379
|
-
text-
|
|
400
|
+
<div className="text-fm-tertiary text-xs">
|
|
401
|
+
text-fm-secondary-600
|
|
380
402
|
</div>
|
|
381
403
|
</div>
|
|
382
404
|
</div>
|
|
383
405
|
<div className="flex items-center gap-4">
|
|
384
|
-
<UploadIcon className="h-6 w-6
|
|
406
|
+
<UploadIcon className="text-fm-placeholder h-6 w-6" />
|
|
385
407
|
<div>
|
|
386
|
-
<div className="text-sm font-medium
|
|
408
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
387
409
|
Neutral
|
|
388
410
|
</div>
|
|
389
|
-
<div className="text-
|
|
390
|
-
text-
|
|
411
|
+
<div className="text-fm-tertiary text-xs">
|
|
412
|
+
text-fm-placeholder
|
|
391
413
|
</div>
|
|
392
414
|
</div>
|
|
393
415
|
</div>
|
|
@@ -395,11 +417,11 @@ function MyComponent() {
|
|
|
395
417
|
</div>
|
|
396
418
|
|
|
397
419
|
<div className="!space-y-4">
|
|
398
|
-
<h3 className="text-lg font-semibold
|
|
420
|
+
<h3 className="text-fm-icon-info! text-lg font-semibold">
|
|
399
421
|
Custom Colors
|
|
400
422
|
</h3>
|
|
401
|
-
<div className="rounded-lg
|
|
402
|
-
<pre className="overflow-x-auto text-sm
|
|
423
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
424
|
+
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
403
425
|
{`// Using Tailwind classes
|
|
404
426
|
<UploadIcon className="h-6 w-6 text-blue-400" />
|
|
405
427
|
<UploadIcon className="h-6 w-6 text-green-500" />
|
|
@@ -424,28 +446,28 @@ function MyComponent() {
|
|
|
424
446
|
|
|
425
447
|
{/* Usage Examples */}
|
|
426
448
|
<div className="!space-y-8">
|
|
427
|
-
<h2 className="text-center text-3xl font-bold
|
|
449
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
428
450
|
Usage Examples
|
|
429
451
|
</h2>
|
|
430
452
|
|
|
431
453
|
<div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
|
|
432
454
|
{/* File Upload */}
|
|
433
455
|
<div className="!space-y-4">
|
|
434
|
-
<h3 className="text-lg font-semibold
|
|
456
|
+
<h3 className="text-fm-icon-info! text-lg font-semibold">
|
|
435
457
|
File Upload Area
|
|
436
458
|
</h3>
|
|
437
459
|
<div className="!space-y-4">
|
|
438
|
-
<div className="
|
|
439
|
-
<UploadIcon className="!mx-auto mb-4 h-12 w-12
|
|
440
|
-
<h4 className="mb-2 font-medium
|
|
460
|
+
<div className="border-fm-icon-info/30 bg-fm-icon-info/5 rounded-lg border-2 border-dashed p-8 text-center">
|
|
461
|
+
<UploadIcon className="text-fm-icon-info !mx-auto mb-4 h-12 w-12" />
|
|
462
|
+
<h4 className="text-fm-icon-info! mb-2 font-medium">
|
|
441
463
|
Drop files here
|
|
442
464
|
</h4>
|
|
443
|
-
<p className="text-
|
|
465
|
+
<p className="text-fm-icon-info!/80 text-sm">
|
|
444
466
|
or click to browse
|
|
445
467
|
</p>
|
|
446
468
|
</div>
|
|
447
|
-
<div className="rounded-lg
|
|
448
|
-
<pre className="overflow-x-auto text-sm
|
|
469
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
470
|
+
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
449
471
|
{`<div className="border-2 border-dashed border-blue-500/30 bg-blue-500/5 p-8 rounded-lg text-center">
|
|
450
472
|
<UploadIcon className="mx-auto mb-4 h-12 w-12 text-blue-400" />
|
|
451
473
|
<h4 className="font-medium text-blue-200 mb-2">Drop files here</h4>
|
|
@@ -458,22 +480,22 @@ function MyComponent() {
|
|
|
458
480
|
|
|
459
481
|
{/* Upload Button */}
|
|
460
482
|
<div className="!space-y-4">
|
|
461
|
-
<h3 className="text-lg font-semibold
|
|
483
|
+
<h3 className="text-fm-icon-info! text-lg font-semibold">
|
|
462
484
|
Upload Button
|
|
463
485
|
</h3>
|
|
464
486
|
<div className="!space-y-4">
|
|
465
487
|
<div className="flex gap-4">
|
|
466
|
-
<button className="flex items-center gap-2 rounded-lg border
|
|
488
|
+
<button className="border-fm-icon-info/30 bg-fm-icon-info/20 text-fm-icon-info hover:bg-fm-icon-info/30 flex items-center gap-2 rounded-lg border px-4 py-2 transition-colors">
|
|
467
489
|
<UploadIcon className="h-4 w-4" />
|
|
468
490
|
Upload Files
|
|
469
491
|
</button>
|
|
470
|
-
<button className="flex items-center gap-2 rounded-lg border
|
|
492
|
+
<button className="border-fm-icon-positive/30 bg-fm-icon-positive/20 text-fm-icon-positive hover:bg-fm-icon-positive/30 flex items-center gap-2 rounded-lg border px-4 py-2 transition-colors">
|
|
471
493
|
<UploadIcon className="h-4 w-4" />
|
|
472
494
|
Save to Cloud
|
|
473
495
|
</button>
|
|
474
496
|
</div>
|
|
475
|
-
<div className="rounded-lg
|
|
476
|
-
<pre className="overflow-x-auto text-sm
|
|
497
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
498
|
+
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
477
499
|
{`// Primary upload button
|
|
478
500
|
<button className="flex items-center gap-2 bg-blue-500/20 border border-blue-500/30 px-4 py-2 rounded-lg">
|
|
479
501
|
<UploadIcon className="h-4 w-4" />
|
|
@@ -492,29 +514,29 @@ function MyComponent() {
|
|
|
492
514
|
|
|
493
515
|
{/* Progress Upload */}
|
|
494
516
|
<div className="!space-y-4">
|
|
495
|
-
<h3 className="text-lg font-semibold
|
|
517
|
+
<h3 className="text-fm-icon-info! text-lg font-semibold">
|
|
496
518
|
Upload Progress
|
|
497
519
|
</h3>
|
|
498
520
|
<div className="!space-y-4">
|
|
499
|
-
<div className="rounded-lg border
|
|
521
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-4">
|
|
500
522
|
<div className="mb-3 flex items-center gap-3">
|
|
501
|
-
<UploadIcon className="h-5 w-5
|
|
502
|
-
<span className="text-
|
|
523
|
+
<UploadIcon className="text-fm-icon-info h-5 w-5" />
|
|
524
|
+
<span className="text-fm-icon-active text-sm">
|
|
503
525
|
document.pdf
|
|
504
526
|
</span>
|
|
505
|
-
<span className="ml-auto text-xs
|
|
527
|
+
<span className="text-fm-icon-info ml-auto text-xs">
|
|
506
528
|
67%
|
|
507
529
|
</span>
|
|
508
530
|
</div>
|
|
509
|
-
<div className="h-2 w-full rounded-full
|
|
531
|
+
<div className="bg-fm-surface-secondary h-2 w-full rounded-full">
|
|
510
532
|
<div
|
|
511
|
-
className="h-2 rounded-full
|
|
533
|
+
className="bg-fm-icon-info h-2 rounded-full"
|
|
512
534
|
style={{ width: "67%" }}
|
|
513
535
|
></div>
|
|
514
536
|
</div>
|
|
515
537
|
</div>
|
|
516
|
-
<div className="rounded-lg
|
|
517
|
-
<pre className="overflow-x-auto text-sm
|
|
538
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
539
|
+
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
518
540
|
{`<div className="border border-white/10 bg-white/5 p-4 rounded-lg">
|
|
519
541
|
<div className="flex items-center gap-3 mb-3">
|
|
520
542
|
<UploadIcon className="h-5 w-5 text-blue-400" />
|
|
@@ -532,28 +554,28 @@ function MyComponent() {
|
|
|
532
554
|
|
|
533
555
|
{/* Menu Item */}
|
|
534
556
|
<div className="!space-y-4">
|
|
535
|
-
<h3 className="text-lg font-semibold
|
|
557
|
+
<h3 className="text-fm-icon-info! text-lg font-semibold">
|
|
536
558
|
Menu Integration
|
|
537
559
|
</h3>
|
|
538
560
|
<div className="!space-y-4">
|
|
539
|
-
<div className="rounded-lg border
|
|
540
|
-
<div className="flex items-center gap-3 rounded px-3 py-2 text-sm
|
|
541
|
-
<UploadIcon className="h-4 w-4
|
|
561
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-2">
|
|
562
|
+
<div className="text-fm-icon-active hover:bg-fm-surface-secondary flex items-center gap-3 rounded px-3 py-2 text-sm">
|
|
563
|
+
<UploadIcon className="text-fm-icon-info h-4 w-4" />
|
|
542
564
|
<span>Upload Document</span>
|
|
543
|
-
<span className="ml-auto text-xs
|
|
565
|
+
<span className="text-fm-tertiary ml-auto text-xs">
|
|
544
566
|
⌘U
|
|
545
567
|
</span>
|
|
546
568
|
</div>
|
|
547
|
-
<div className="flex items-center gap-3 rounded px-3 py-2 text-sm
|
|
548
|
-
<UploadIcon className="h-4 w-4
|
|
569
|
+
<div className="text-fm-icon-active hover:bg-fm-surface-secondary flex items-center gap-3 rounded px-3 py-2 text-sm">
|
|
570
|
+
<UploadIcon className="text-fm-icon-positive h-4 w-4" />
|
|
549
571
|
<span>Import Data</span>
|
|
550
|
-
<span className="ml-auto text-xs
|
|
572
|
+
<span className="text-fm-tertiary ml-auto text-xs">
|
|
551
573
|
⌘I
|
|
552
574
|
</span>
|
|
553
575
|
</div>
|
|
554
576
|
</div>
|
|
555
|
-
<div className="rounded-lg
|
|
556
|
-
<pre className="overflow-x-auto text-sm
|
|
577
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
578
|
+
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
557
579
|
{`// Menu items with upload actions
|
|
558
580
|
<div className="flex items-center gap-3 px-3 py-2 hover:bg-white/10 rounded">
|
|
559
581
|
<UploadIcon className="h-4 w-4 text-blue-400" />
|
|
@@ -569,64 +591,64 @@ function MyComponent() {
|
|
|
569
591
|
|
|
570
592
|
{/* Accessibility */}
|
|
571
593
|
<div className="!space-y-8">
|
|
572
|
-
<h2 className="text-center text-3xl font-bold
|
|
594
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
573
595
|
Accessibility Features
|
|
574
596
|
</h2>
|
|
575
597
|
<div className="grid grid-cols-1 gap-8 md:grid-cols-2">
|
|
576
|
-
<div className="!space-y-4 rounded-lg border
|
|
577
|
-
<h3 className="text-lg font-semibold
|
|
598
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
|
|
599
|
+
<h3 className="text-fm-icon-positive! text-lg font-semibold">
|
|
578
600
|
✅ Built-in Features
|
|
579
601
|
</h3>
|
|
580
|
-
<ul className="!space-y-2 text-sm
|
|
581
|
-
<li className="
|
|
602
|
+
<ul className="text-fm-secondary! !space-y-2 text-sm">
|
|
603
|
+
<li className="text-fm-secondary!">
|
|
582
604
|
Uses Radix UI AccessibleIcon wrapper
|
|
583
605
|
</li>
|
|
584
|
-
<li className="
|
|
606
|
+
<li className="text-fm-secondary!">
|
|
585
607
|
Provides screen reader label "Upload icon"
|
|
586
608
|
</li>
|
|
587
|
-
<li className="
|
|
609
|
+
<li className="text-fm-secondary!">
|
|
588
610
|
Supports keyboard navigation when interactive
|
|
589
611
|
</li>
|
|
590
|
-
<li className="
|
|
612
|
+
<li className="text-fm-secondary!">
|
|
591
613
|
Maintains proper color contrast ratios
|
|
592
614
|
</li>
|
|
593
|
-
<li className="
|
|
615
|
+
<li className="text-fm-secondary!">
|
|
594
616
|
Scales with user's font size preferences
|
|
595
617
|
</li>
|
|
596
618
|
</ul>
|
|
597
619
|
</div>
|
|
598
620
|
|
|
599
|
-
<div className="!space-y-4 rounded-lg border
|
|
600
|
-
<h3 className="text-lg font-semibold
|
|
621
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
|
|
622
|
+
<h3 className="text-fm-icon-info! text-lg font-semibold">
|
|
601
623
|
💡 Best Practices
|
|
602
624
|
</h3>
|
|
603
|
-
<ul className="!space-y-2 text-sm
|
|
604
|
-
<li className="
|
|
625
|
+
<ul className="text-fm-secondary !space-y-2 text-sm">
|
|
626
|
+
<li className="text-fm-secondary!">
|
|
605
627
|
Always pair with descriptive text
|
|
606
628
|
</li>
|
|
607
|
-
<li className="
|
|
629
|
+
<li className="text-fm-secondary!">
|
|
608
630
|
Use consistent colors for upload actions
|
|
609
631
|
</li>
|
|
610
|
-
<li className="
|
|
632
|
+
<li className="text-fm-secondary!">
|
|
611
633
|
Ensure sufficient color contrast
|
|
612
634
|
</li>
|
|
613
|
-
<li className="
|
|
635
|
+
<li className="text-fm-secondary!">
|
|
614
636
|
Add focus states for interactive elements
|
|
615
637
|
</li>
|
|
616
|
-
<li className="
|
|
638
|
+
<li className="text-fm-secondary!">
|
|
617
639
|
Provide feedback for upload states
|
|
618
640
|
</li>
|
|
619
641
|
</ul>
|
|
620
642
|
</div>
|
|
621
643
|
</div>
|
|
622
644
|
|
|
623
|
-
<div className="rounded-lg border
|
|
624
|
-
<h3 className="mb-4 text-lg font-semibold
|
|
645
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
|
|
646
|
+
<h3 className="text-fm-secondary-600! mb-4 text-lg font-semibold">
|
|
625
647
|
Custom Accessibility Label
|
|
626
648
|
</h3>
|
|
627
649
|
<div className="grid grid-cols-1 gap-6 lg:grid-cols-2">
|
|
628
|
-
<div className="rounded-lg
|
|
629
|
-
<pre className="overflow-x-auto text-sm
|
|
650
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
651
|
+
<pre className="text-fm-icon-info! overflow-x-auto text-sm">
|
|
630
652
|
{`// Custom implementation with specific label
|
|
631
653
|
import { AccessibleIcon } from "@radix-ui/react-accessible-icon"
|
|
632
654
|
|
|
@@ -646,13 +668,13 @@ function CustomUploadIcon({ label = "Upload", ...props }) {
|
|
|
646
668
|
</pre>
|
|
647
669
|
</div>
|
|
648
670
|
<div className="!space-y-4">
|
|
649
|
-
<p className="text-
|
|
671
|
+
<p className="text-fm-secondary! text-sm">
|
|
650
672
|
For specific contexts, you can wrap the UploadIcon with
|
|
651
673
|
a custom AccessibleIcon component that provides more
|
|
652
674
|
descriptive labels.
|
|
653
675
|
</p>
|
|
654
|
-
<div className="
|
|
655
|
-
<div className="flex items-center gap-2 text-sm
|
|
676
|
+
<div className="border-fm-icon-info/20 bg-fm-icon-info/10 rounded-lg border p-4">
|
|
677
|
+
<div className="text-fm-icon-info flex items-center gap-2 text-sm">
|
|
656
678
|
<UploadIcon className="h-4 w-4" />
|
|
657
679
|
<span>
|
|
658
680
|
This approach gives screen readers more context
|
|
@@ -666,48 +688,58 @@ function CustomUploadIcon({ label = "Upload", ...props }) {
|
|
|
666
688
|
|
|
667
689
|
{/* Related Icons */}
|
|
668
690
|
<div className="!space-y-8">
|
|
669
|
-
<h2 className="text-center text-3xl font-bold
|
|
691
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
670
692
|
Related Icons
|
|
671
693
|
</h2>
|
|
672
694
|
<div className="grid grid-cols-2 gap-6 md:grid-cols-4">
|
|
673
|
-
<div className="!space-y-3 rounded-lg border
|
|
674
|
-
<div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg
|
|
695
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
|
|
696
|
+
<div className="bg-fm-icon-positive/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
|
|
675
697
|
<span className="text-2xl">⬇️</span>
|
|
676
698
|
</div>
|
|
677
699
|
<div>
|
|
678
|
-
<div className="font-medium
|
|
679
|
-
|
|
700
|
+
<div className="text-fm-icon-active font-medium">
|
|
701
|
+
DownloadIcon
|
|
702
|
+
</div>
|
|
703
|
+
<div className="text-fm-tertiary text-xs">
|
|
680
704
|
Download actions
|
|
681
705
|
</div>
|
|
682
706
|
</div>
|
|
683
707
|
</div>
|
|
684
|
-
<div className="!space-y-3 rounded-lg border
|
|
685
|
-
<div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg
|
|
708
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
|
|
709
|
+
<div className="bg-fm-secondary-500/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
|
|
686
710
|
<span className="text-2xl">📁</span>
|
|
687
711
|
</div>
|
|
688
712
|
<div>
|
|
689
|
-
<div className="font-medium
|
|
690
|
-
|
|
713
|
+
<div className="text-fm-icon-active font-medium">
|
|
714
|
+
FolderIcon
|
|
715
|
+
</div>
|
|
716
|
+
<div className="text-fm-tertiary text-xs">
|
|
691
717
|
File organization
|
|
692
718
|
</div>
|
|
693
719
|
</div>
|
|
694
720
|
</div>
|
|
695
|
-
<div className="!space-y-3 rounded-lg border
|
|
696
|
-
<div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg
|
|
721
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
|
|
722
|
+
<div className="bg-fm-icon-warning/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
|
|
697
723
|
<span className="text-2xl">📄</span>
|
|
698
724
|
</div>
|
|
699
725
|
<div>
|
|
700
|
-
<div className="font-medium
|
|
701
|
-
|
|
726
|
+
<div className="text-fm-icon-active font-medium">
|
|
727
|
+
FileIcon
|
|
728
|
+
</div>
|
|
729
|
+
<div className="text-fm-tertiary text-xs">File types</div>
|
|
702
730
|
</div>
|
|
703
731
|
</div>
|
|
704
|
-
<div className="!space-y-3 rounded-lg border
|
|
705
|
-
<div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg
|
|
732
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
|
|
733
|
+
<div className="bg-fm-icon-info/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
|
|
706
734
|
<span className="text-2xl">☁️</span>
|
|
707
735
|
</div>
|
|
708
736
|
<div>
|
|
709
|
-
<div className="font-medium
|
|
710
|
-
|
|
737
|
+
<div className="text-fm-icon-active font-medium">
|
|
738
|
+
CloudIcon
|
|
739
|
+
</div>
|
|
740
|
+
<div className="text-fm-tertiary text-xs">
|
|
741
|
+
Cloud storage
|
|
742
|
+
</div>
|
|
711
743
|
</div>
|
|
712
744
|
</div>
|
|
713
745
|
</div>
|
|
@@ -715,14 +747,14 @@ function CustomUploadIcon({ label = "Upload", ...props }) {
|
|
|
715
747
|
</div>
|
|
716
748
|
|
|
717
749
|
{/* Footer */}
|
|
718
|
-
<div className="border-
|
|
750
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary border-t backdrop-blur-xl">
|
|
719
751
|
<div className="!mx-auto max-w-7xl px-6 py-8">
|
|
720
752
|
<div className="!space-y-4 text-center">
|
|
721
|
-
<p className="
|
|
753
|
+
<p className="text-fm-tertiary!">
|
|
722
754
|
UploadIcon is part of the Aural UI icon library, built with
|
|
723
755
|
accessibility and consistency in mind.
|
|
724
756
|
</p>
|
|
725
|
-
<p className="text-
|
|
757
|
+
<p className="text-fm-placeholder! text-sm">
|
|
726
758
|
All icons use Radix UI's AccessibleIcon for screen reader
|
|
727
759
|
compatibility and follow WCAG guidelines.
|
|
728
760
|
</p>
|
|
@@ -767,8 +799,8 @@ const storyParameters = {
|
|
|
767
799
|
backgrounds: {
|
|
768
800
|
default: "dark",
|
|
769
801
|
values: [
|
|
770
|
-
{ name: "dark", value: "
|
|
771
|
-
{ name: "darker", value: "
|
|
802
|
+
{ name: "dark", value: "var(--color-fm-surface-primary)" },
|
|
803
|
+
{ name: "darker", value: "var(--color-fm-neutral-0)" },
|
|
772
804
|
],
|
|
773
805
|
},
|
|
774
806
|
}
|
|
@@ -777,12 +809,12 @@ export const Default: Story = {
|
|
|
777
809
|
args: {
|
|
778
810
|
width: 24,
|
|
779
811
|
height: 24,
|
|
780
|
-
className: "text-
|
|
812
|
+
className: "text-fm-icon-info",
|
|
781
813
|
withAccessibility: true,
|
|
782
814
|
},
|
|
783
815
|
parameters: storyParameters,
|
|
784
816
|
render: (args) => (
|
|
785
|
-
<div className="flex h-32 min-h-dvh items-center justify-center rounded-lg bg-
|
|
817
|
+
<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">
|
|
786
818
|
<UploadIcon {...args} />
|
|
787
819
|
</div>
|
|
788
820
|
),
|
|
@@ -799,30 +831,30 @@ export const SizeVariations: Story = {
|
|
|
799
831
|
},
|
|
800
832
|
},
|
|
801
833
|
render: () => (
|
|
802
|
-
<div className="flex h-64 min-h-dvh items-center justify-center gap-8 rounded-lg bg-
|
|
834
|
+
<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">
|
|
803
835
|
<div className="text-center">
|
|
804
|
-
<UploadIcon className="!mx-auto mb-2 h-3 w-3
|
|
805
|
-
<span className="text-
|
|
836
|
+
<UploadIcon className="text-fm-icon-info !mx-auto mb-2 h-3 w-3" />
|
|
837
|
+
<span className="text-fm-tertiary text-xs">12px</span>
|
|
806
838
|
</div>
|
|
807
839
|
<div className="text-center">
|
|
808
|
-
<UploadIcon className="!mx-auto mb-2 h-4 w-4
|
|
809
|
-
<span className="text-
|
|
840
|
+
<UploadIcon className="text-fm-icon-info !mx-auto mb-2 h-4 w-4" />
|
|
841
|
+
<span className="text-fm-tertiary text-xs">16px</span>
|
|
810
842
|
</div>
|
|
811
843
|
<div className="text-center">
|
|
812
|
-
<UploadIcon className="!mx-auto mb-2 h-5 w-5
|
|
813
|
-
<span className="text-
|
|
844
|
+
<UploadIcon className="text-fm-icon-info !mx-auto mb-2 h-5 w-5" />
|
|
845
|
+
<span className="text-fm-tertiary text-xs">20px</span>
|
|
814
846
|
</div>
|
|
815
847
|
<div className="text-center">
|
|
816
|
-
<UploadIcon className="!mx-auto mb-2 h-6 w-6
|
|
817
|
-
<span className="text-
|
|
848
|
+
<UploadIcon className="text-fm-icon-info !mx-auto mb-2 h-6 w-6" />
|
|
849
|
+
<span className="text-fm-tertiary text-xs">24px</span>
|
|
818
850
|
</div>
|
|
819
851
|
<div className="text-center">
|
|
820
|
-
<UploadIcon className="!mx-auto mb-2 h-8 w-8
|
|
821
|
-
<span className="text-
|
|
852
|
+
<UploadIcon className="text-fm-icon-info !mx-auto mb-2 h-8 w-8" />
|
|
853
|
+
<span className="text-fm-tertiary text-xs">32px</span>
|
|
822
854
|
</div>
|
|
823
855
|
<div className="text-center">
|
|
824
|
-
<UploadIcon className="!mx-auto mb-2 h-12 w-12
|
|
825
|
-
<span className="text-
|
|
856
|
+
<UploadIcon className="text-fm-icon-info !mx-auto mb-2 h-12 w-12" />
|
|
857
|
+
<span className="text-fm-tertiary text-xs">48px</span>
|
|
826
858
|
</div>
|
|
827
859
|
</div>
|
|
828
860
|
),
|
|
@@ -839,34 +871,38 @@ export const ColorVariations: Story = {
|
|
|
839
871
|
},
|
|
840
872
|
},
|
|
841
873
|
render: () => (
|
|
842
|
-
<div className="grid min-h-dvh grid-cols-2 items-center justify-center gap-6 rounded-lg bg-
|
|
874
|
+
<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">
|
|
843
875
|
<div className="text-center">
|
|
844
|
-
<div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border
|
|
845
|
-
<UploadIcon className="h-8 w-8
|
|
876
|
+
<div className="border-fm-icon-info/30 bg-fm-icon-info/20 !mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border">
|
|
877
|
+
<UploadIcon className="text-fm-icon-info h-8 w-8" />
|
|
846
878
|
</div>
|
|
847
|
-
<div className="text-sm font-medium
|
|
848
|
-
<div className="text-
|
|
879
|
+
<div className="text-fm-icon-active text-sm font-medium">Primary</div>
|
|
880
|
+
<div className="text-fm-icon-info text-xs">text-fm-icon-info</div>
|
|
849
881
|
</div>
|
|
850
882
|
<div className="text-center">
|
|
851
|
-
<div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border
|
|
852
|
-
<UploadIcon className="h-8 w-8
|
|
883
|
+
<div className="border-fm-icon-positive/30 bg-fm-icon-positive/20 !mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border">
|
|
884
|
+
<UploadIcon className="text-fm-icon-positive h-8 w-8" />
|
|
885
|
+
</div>
|
|
886
|
+
<div className="text-fm-icon-active text-sm font-medium">Success</div>
|
|
887
|
+
<div className="text-fm-icon-positive text-xs">
|
|
888
|
+
text-fm-icon-positive
|
|
853
889
|
</div>
|
|
854
|
-
<div className="text-sm font-medium text-white">Success</div>
|
|
855
|
-
<div className="text-xs text-green-400">text-green-400</div>
|
|
856
890
|
</div>
|
|
857
891
|
<div className="text-center">
|
|
858
|
-
<div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border
|
|
859
|
-
<UploadIcon className="h-8 w-8
|
|
892
|
+
<div className="border-fm-secondary-500/30 bg-fm-secondary-500/20 !mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border">
|
|
893
|
+
<UploadIcon className="text-fm-secondary-600 h-8 w-8" />
|
|
894
|
+
</div>
|
|
895
|
+
<div className="text-fm-icon-active text-sm font-medium">Secondary</div>
|
|
896
|
+
<div className="text-fm-secondary-600 text-xs">
|
|
897
|
+
text-fm-secondary-600
|
|
860
898
|
</div>
|
|
861
|
-
<div className="text-sm font-medium text-white">Secondary</div>
|
|
862
|
-
<div className="text-xs text-purple-400">text-purple-400</div>
|
|
863
899
|
</div>
|
|
864
900
|
<div className="text-center">
|
|
865
|
-
<div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border
|
|
866
|
-
<UploadIcon className="h-8 w-8
|
|
901
|
+
<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">
|
|
902
|
+
<UploadIcon className="text-fm-placeholder h-8 w-8" />
|
|
867
903
|
</div>
|
|
868
|
-
<div className="text-sm font-medium
|
|
869
|
-
<div className="text-
|
|
904
|
+
<div className="text-fm-icon-active text-sm font-medium">Neutral</div>
|
|
905
|
+
<div className="text-fm-placeholder text-xs">text-fm-placeholder</div>
|
|
870
906
|
</div>
|
|
871
907
|
</div>
|
|
872
908
|
),
|
|
@@ -883,26 +919,32 @@ export const UsageExamples: Story = {
|
|
|
883
919
|
},
|
|
884
920
|
},
|
|
885
921
|
render: () => (
|
|
886
|
-
<div className="min-h-dvh !space-y-8 rounded-lg bg-
|
|
922
|
+
<div className="from-fm-surface-primary to-fm-surface-secondary min-h-dvh !space-y-8 rounded-lg bg-linear-to-br p-8">
|
|
887
923
|
{/* File Upload Area */}
|
|
888
924
|
<div className="!space-y-2">
|
|
889
|
-
<h3 className="text-sm font-medium
|
|
890
|
-
|
|
891
|
-
|
|
892
|
-
|
|
893
|
-
<
|
|
925
|
+
<h3 className="text-fm-icon-active text-sm font-medium">
|
|
926
|
+
File Upload Area
|
|
927
|
+
</h3>
|
|
928
|
+
<div className="border-fm-icon-info/30 bg-fm-icon-info/5 rounded-lg border-2 border-dashed p-8 text-center">
|
|
929
|
+
<UploadIcon className="text-fm-icon-info !mx-auto mb-4 h-12 w-12" />
|
|
930
|
+
<h4 className="text-fm-icon-info mb-2 font-medium">
|
|
931
|
+
Drop files here
|
|
932
|
+
</h4>
|
|
933
|
+
<p className="text-fm-icon-info/80 text-sm">or click to browse</p>
|
|
894
934
|
</div>
|
|
895
935
|
</div>
|
|
896
936
|
|
|
897
937
|
{/* Upload Buttons */}
|
|
898
938
|
<div className="!space-y-2">
|
|
899
|
-
<h3 className="text-sm font-medium
|
|
939
|
+
<h3 className="text-fm-icon-active text-sm font-medium">
|
|
940
|
+
Upload Buttons
|
|
941
|
+
</h3>
|
|
900
942
|
<div className="flex gap-4">
|
|
901
|
-
<button className="flex items-center gap-2 rounded-lg border
|
|
943
|
+
<button className="border-fm-icon-info/30 bg-fm-icon-info/20 text-fm-icon-info hover:bg-fm-icon-info/30 flex items-center gap-2 rounded-lg border px-4 py-2 transition-colors">
|
|
902
944
|
<UploadIcon className="h-4 w-4" />
|
|
903
945
|
Upload Files
|
|
904
946
|
</button>
|
|
905
|
-
<button className="flex items-center gap-2 rounded-lg border
|
|
947
|
+
<button className="border-fm-icon-positive/30 bg-fm-icon-positive/20 text-fm-icon-positive hover:bg-fm-icon-positive/30 flex items-center gap-2 rounded-lg border px-4 py-2 transition-colors">
|
|
906
948
|
<UploadIcon className="h-4 w-4" />
|
|
907
949
|
Save to Cloud
|
|
908
950
|
</button>
|
|
@@ -911,16 +953,18 @@ export const UsageExamples: Story = {
|
|
|
911
953
|
|
|
912
954
|
{/* Upload Progress */}
|
|
913
955
|
<div className="!space-y-2">
|
|
914
|
-
<h3 className="text-sm font-medium
|
|
915
|
-
|
|
956
|
+
<h3 className="text-fm-icon-active text-sm font-medium">
|
|
957
|
+
Upload Progress
|
|
958
|
+
</h3>
|
|
959
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-4">
|
|
916
960
|
<div className="mb-3 flex items-center gap-3">
|
|
917
|
-
<UploadIcon className="h-5 w-5
|
|
918
|
-
<span className="text-
|
|
919
|
-
<span className="ml-auto text-xs
|
|
961
|
+
<UploadIcon className="text-fm-icon-info h-5 w-5" />
|
|
962
|
+
<span className="text-fm-icon-active text-sm">document.pdf</span>
|
|
963
|
+
<span className="text-fm-icon-info ml-auto text-xs">67%</span>
|
|
920
964
|
</div>
|
|
921
|
-
<div className="h-2 w-full rounded-full
|
|
965
|
+
<div className="bg-fm-surface-secondary h-2 w-full rounded-full">
|
|
922
966
|
<div
|
|
923
|
-
className="h-2 rounded-full
|
|
967
|
+
className="bg-fm-icon-info h-2 rounded-full"
|
|
924
968
|
style={{ width: "67%" }}
|
|
925
969
|
></div>
|
|
926
970
|
</div>
|
|
@@ -943,11 +987,11 @@ export const Playground: Story = {
|
|
|
943
987
|
args: {
|
|
944
988
|
width: 32,
|
|
945
989
|
height: 32,
|
|
946
|
-
className: "text-
|
|
990
|
+
className: "text-fm-icon-info",
|
|
947
991
|
},
|
|
948
992
|
render: (args) => (
|
|
949
|
-
<div className="flex h-64 min-h-dvh items-center justify-center rounded-lg bg-
|
|
950
|
-
<div className="rounded-lg border
|
|
993
|
+
<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">
|
|
994
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-8">
|
|
951
995
|
<UploadIcon {...args} />
|
|
952
996
|
</div>
|
|
953
997
|
</div>
|