aural-ui 3.0.6 → 4.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/aspect-ratio/AspectRatio.stories.tsx +271 -242
- package/dist/components/avatar/Avatar.stories.tsx +84 -70
- package/dist/components/button/Button.stories.tsx +7 -7
- package/dist/components/button/index.tsx +7 -7
- package/dist/components/card/Card.stories.tsx +3 -3
- package/dist/components/char-count/CharCount.stories.tsx +9 -9
- package/dist/components/circular-loader/CircularLoader.stories.tsx +109 -93
- package/dist/components/clamp-lines/ClampLines.stories.tsx +25 -0
- package/dist/components/clamp-lines/index.tsx +6 -1
- package/dist/components/collapsible/Collapsible.stories.tsx +1 -1
- package/dist/components/command/Command.stories.tsx +52 -38
- package/dist/components/dialog/Dialog.stories.tsx +89 -84
- package/dist/components/divider/Divider.stories.tsx +86 -60
- package/dist/components/dot-loader/DotLoader.stories.tsx +12 -12
- package/dist/components/drawer/Drawer.stories.tsx +74 -44
- package/dist/components/drawer/index.tsx +3 -3
- package/dist/components/dropdown/Dropdown.stories.tsx +42 -32
- package/dist/components/helper-text/HelperText.stories.tsx +2 -2
- package/dist/components/hover-card/HoverCard.stories.tsx +211 -178
- package/dist/components/input/Input.stories.tsx +2 -2
- package/dist/components/input/index.tsx +2 -0
- package/dist/components/label/Label.stories.tsx +10 -10
- package/dist/components/list/List.stories.tsx +58 -44
- package/dist/components/marquee/Marquee.stories.tsx +131 -113
- package/dist/components/otp-inputs/OtpInputs.stories.tsx +47 -35
- package/dist/components/overlay/Overlay.stories.tsx +98 -92
- package/dist/components/overlay/index.tsx +4 -4
- package/dist/components/popover/Popover.stories.tsx +132 -106
- package/dist/components/radio/Radio.stories.tsx +2 -2
- package/dist/components/resizable/Resizable.stories.tsx +186 -138
- package/dist/components/scroll-area/ScrollArea.stories.tsx +174 -120
- package/dist/components/search/Search.stories.tsx +81 -59
- package/dist/components/select/Select.stories.tsx +3 -1
- package/dist/components/sheet/Sheet.stories.tsx +68 -54
- package/dist/components/slider/Slider.stories.tsx +71 -47
- package/dist/components/stepper/Stepper.stories.tsx +16 -16
- package/dist/components/switch/Switch.stories.tsx +12 -12
- package/dist/components/table/Table.stories.tsx +8 -6
- package/dist/components/tabs/Tabs.stories.tsx +324 -268
- package/dist/components/textarea/TextArea.stories.tsx +1 -1
- package/dist/components/thumbnail-tags/ThumbnailTags.stories.tsx +16 -10
- package/dist/components/toast/Toast.stories.tsx +51 -45
- package/dist/components/toggle/Toggle.stories.tsx +111 -89
- package/dist/components/tooltip/Tooltip.stories.tsx +160 -144
- package/dist/icons/Icons.stories.tsx +2 -2
- package/dist/icons/ai-avatar-icon/AiAvatarIcon.stories.tsx +287 -237
- package/dist/icons/alert-icon/AlertIcon.stories.tsx +290 -248
- package/dist/icons/all-icons.tsx +97 -81
- package/dist/icons/angle-down-icon/AngleDownIcon.stories.tsx +312 -270
- package/dist/icons/apple-logo-icon/AppleLogoIcon.stories.tsx +294 -244
- package/dist/icons/arrow-box-left-icon/ArrowBoxLeftIcon.stories.tsx +309 -279
- package/dist/icons/arrow-corner-up-left-icon/ArrowCornerUpLeftIcon.stories.tsx +294 -258
- package/dist/icons/arrow-corner-up-right-icon/ArrowCornerUpRightIcon.stories.tsx +289 -255
- package/dist/icons/arrow-left-icon/ArrowLeftIcon.stories.tsx +288 -256
- package/dist/icons/arrow-right-icon/ArrowRightIcon.stories.tsx +322 -288
- package/dist/icons/arrow-right-up-icon/ArrowRightUpIcon.stories.tsx +340 -296
- package/dist/icons/art-board-icon/ArtBoardIcon.stories.tsx +197 -177
- package/dist/icons/audio-bar-icon/AudioBarIcon.stories.tsx +390 -328
- package/dist/icons/backward-ten-seconds-icon/BackwardTenSecondsIcon.stories.tsx +313 -277
- package/dist/icons/bubble-check-icon/BubbleCheckIcon.stories.tsx +367 -309
- package/dist/icons/bubble-crossed-icon/BubbleCrossedIcon.stories.tsx +356 -308
- package/dist/icons/bubble-sparkle-icon/BubbleSparkleIcon.stories.tsx +280 -234
- package/dist/icons/camera-icon/CameraIcon.stories.tsx +370 -326
- package/dist/icons/capital-a-letter-icon/CapitalALetterIcon.stories.tsx +300 -256
- package/dist/icons/chevron-double-left-icon/ChevronDoubleLeftIcon.stories.tsx +298 -262
- package/dist/icons/chevron-double-right-icon/ChevronDoubleRightIcon.stories.tsx +294 -260
- package/dist/icons/chevron-down-icon/ChevronDownIcon.stories.tsx +291 -259
- package/dist/icons/chevron-left-icon/ChevronLeftIcon.stories.tsx +286 -256
- package/dist/icons/chevron-right-icon/ChevronRightIcon.stories.tsx +282 -256
- package/dist/icons/chevron-up-icon/ChevronUpIcon.stories.tsx +292 -256
- package/dist/icons/circle-tick-icon/CircleTickIcon.stories.tsx +338 -290
- package/dist/icons/circular-play-icon/CircularPlayIcon.stories.tsx +167 -148
- package/dist/icons/coin-icon/CoinIcon.stories.tsx +342 -296
- package/dist/icons/coin-toons-icon/CoinToonsIcon.stories.tsx +342 -296
- package/dist/icons/column-wide-add-icon/ColumnWideAddIcon.stories.tsx +280 -238
- package/dist/icons/command-icon/CommandIcon.stories.tsx +328 -280
- package/dist/icons/copy-icon/CopyIcon.stories.tsx +294 -256
- package/dist/icons/cross-circle-icon/CrossCircleIcon.stories.tsx +285 -235
- package/dist/icons/cross-icon/CrossIcon.stories.tsx +308 -266
- package/dist/icons/download-icon/DownloadIcon.stories.tsx +271 -231
- package/dist/icons/edit-big-icon/EditBigIcon.stories.tsx +330 -278
- package/dist/icons/email-icon/EmailIcon.stories.tsx +303 -257
- package/dist/icons/expand-icon/ExpandIcon.stories.tsx +324 -286
- package/dist/icons/eye-close-icon/EyeCloseIcon.stories.tsx +317 -271
- package/dist/icons/eye-open-icon/EyeOpenIcon.stories.tsx +320 -272
- package/dist/icons/feature-shine-icon/FeatureShineIcon.stories.tsx +322 -280
- package/dist/icons/file-chart-icon/FileChartIcon.stories.tsx +315 -277
- package/dist/icons/file-text-icon/FileTextIcon.stories.tsx +199 -177
- package/dist/icons/filter-bar-row-icon/FilterBarRowIcon.stories.tsx +304 -264
- package/dist/icons/forward-ten-seconds-icon/ForwardTenSecondsIcon.stories.tsx +311 -277
- package/dist/icons/git-branch-icon/GitBranchIcon.stories.tsx +327 -287
- package/dist/icons/git-fork-icon/GitForkIcon.stories.tsx +314 -278
- package/dist/icons/globe-icon/GlobeIcon.stories.tsx +113 -98
- package/dist/icons/google-logo-icon/GoogleLogoIcon.stories.tsx +274 -226
- package/dist/icons/grip-vertical-icon/GripVerticalIcon.stories.tsx +349 -303
- package/dist/icons/head-icon/HeadIcon.stories.tsx +286 -246
- package/dist/icons/heart-icon/HeartIcon.stories.tsx +312 -268
- package/dist/icons/image-avatar-sparkle-icon/ImageAvatarSparkleIcon.stories.tsx +246 -210
- package/dist/icons/image-icon/ImageIcon.stories.tsx +330 -284
- package/dist/icons/import-folder-icon/ImportFolderIcon.stories.tsx +326 -282
- package/dist/icons/import-left-arrow-folder-icon/ImportLeftArrowFolderIcon.stories.tsx +330 -294
- package/dist/icons/indian-flag-icon/IndianFlagIcon.stories.tsx +288 -234
- package/dist/icons/instagram-icon/InstagramIcon.stories.tsx +386 -330
- package/dist/icons/layout-column-icon/LayoutColumnIcon.stories.tsx +305 -263
- package/dist/icons/layout-left-icon/LayoutLeftIcon.stories.tsx +295 -259
- package/dist/icons/layout-right-icon/LayoutRightIcon.stories.tsx +296 -256
- package/dist/icons/light-bulb-simple-icon/LightBulbSimpleIcon.stories.tsx +322 -282
- package/dist/icons/linked-in-icon/LinkedInIcon.stories.tsx +399 -359
- package/dist/icons/magic-book-icon/MagicBookIcon.stories.tsx +314 -272
- package/dist/icons/magic-edit-icon/MagicEditIcon.stories.tsx +238 -206
- package/dist/icons/maintenance-icon/MaintenanceIcon.stories.tsx +322 -276
- package/dist/icons/message-icon/MessageIcon.stories.tsx +192 -170
- package/dist/icons/minimize-icon/MinimizeIcon.stories.tsx +348 -304
- package/dist/icons/moon-icon/MoonIcon.stories.tsx +191 -167
- package/dist/icons/move-horizontal-icon/MoveHorizontalIcon.stories.tsx +380 -326
- package/dist/icons/move-vertical-icon/MoveVerticalIcon.stories.tsx +345 -291
- package/dist/icons/musical-note-icon/MusicalNoteIcon.stories.tsx +310 -266
- package/dist/icons/notepad-icon/NotepadIcon.stories.tsx +311 -271
- package/dist/icons/notes-icon/NotesIcon.stories.tsx +311 -271
- package/dist/icons/page-search-icon/PageSearchIcon.stories.tsx +309 -271
- package/dist/icons/page-text-icon/PageTextIcon.stories.tsx +248 -210
- package/dist/icons/paint-roll-icon/PaintRollIcon.stories.tsx +310 -262
- package/dist/icons/paper-plane-icon/PaperPlaneIcon.stories.tsx +274 -236
- package/dist/icons/pause-icon/PauseIcon.stories.tsx +324 -280
- package/dist/icons/pencil-icon/PencilIcon.stories.tsx +323 -281
- package/dist/icons/phone-icon/PhoneIcon.stories.tsx +288 -240
- package/dist/icons/plus-icon/PlusIcon.stories.tsx +315 -273
- package/dist/icons/pocket-studio-icon/PocketStudioIcon.stories.tsx +278 -234
- package/dist/icons/scroll-down-icon/ScrollDownIcon.stories.tsx +161 -151
- package/dist/icons/search-icon/SearchIcon.stories.tsx +324 -284
- package/dist/icons/setting-icon/SettingIcon.stories.tsx +306 -264
- package/dist/icons/share-icon/ShareIcon.stories.tsx +314 -272
- package/dist/icons/shield-icon/ShieldIcon.stories.tsx +281 -235
- package/dist/icons/site-logo-icon/SiteLogoIcon.stories.tsx +309 -250
- package/dist/icons/skip-backward-icon/SkipBackwardIcon.stories.tsx +317 -279
- package/dist/icons/skip-forward-icon/SkipForwardIcon.stories.tsx +315 -279
- package/dist/icons/sparkles-soft-icon/SparklesSoftIcon.stories.tsx +299 -253
- package/dist/icons/spinner-gradient-icon/SpinnerGradientIcon.stories.tsx +185 -169
- package/dist/icons/spinner-gradient-icon/index.tsx +6 -1
- package/dist/icons/spinner-solid-icon/SpinnerSolidIcon.stories.tsx +192 -168
- package/dist/icons/spinner-solid-icon/index.tsx +6 -1
- package/dist/icons/spinner-solid-neutral-icon/SpinnerSolidINeutralcon.stories.tsx +212 -178
- package/dist/icons/spinner-solid-neutral-icon/index.tsx +1 -1
- package/dist/icons/star-icon/StarIcon.stories.tsx +290 -244
- package/dist/icons/store-coin-icon/StoreCoinIcon.stories.tsx +286 -234
- package/dist/icons/suggestion-icon/SuggestionIcon.stories.tsx +272 -230
- package/dist/icons/sun-icon/SunIcon.stories.tsx +262 -226
- package/dist/icons/text-color-icon/TextColorIcon.stories.tsx +321 -279
- package/dist/icons/text-indicator-icon/TextIndicatorIcon.stories.tsx +332 -282
- package/dist/icons/threads-icon/ThreadsIcon.stories.tsx +394 -342
- package/dist/icons/tick-circle-icon/TickCircleIcon.stories.tsx +338 -290
- package/dist/icons/tick-icon/TickIcon.stories.tsx +364 -315
- package/dist/icons/trash-icon/TrashIcon.stories.tsx +293 -253
- package/dist/icons/twitter-x-icon/TwitterXIcon.stories.tsx +396 -338
- package/dist/icons/upload-icon/UploadIcon.stories.tsx +291 -247
- package/dist/icons/vertical-menu-icon/VerticalMenuIcon.stories.tsx +309 -271
- package/dist/icons/video-play-list-icon/VideoPlaylistIcon.stories.tsx +336 -290
- package/dist/icons/voice-playing-icon/VoicePlayingIcon.stories.tsx +382 -334
- package/dist/icons/volume-full-icon/VolumeFullIcon.stories.tsx +349 -305
- package/dist/icons/volume-half-icon/VolumeHalfIcon.stories.tsx +327 -295
- package/dist/icons/volume-off-icon/VolumeOffIcon.stories.tsx +336 -296
- package/dist/icons/warning-icon/WarningIcon.stories.tsx +314 -274
- package/dist/icons/youtube-icon/YoutubeIcon.stories.tsx +311 -261
- package/dist/index.cjs +84 -84
- package/dist/index.js +84 -84
- package/dist/styles/aural-all-theme.css +1222 -0
- package/dist/styles/{aural-theme.css → aural-dark-theme.css} +15 -3
- package/dist/styles/aural-light-theme.css +1047 -0
- package/package.json +1 -1
|
@@ -11,9 +11,9 @@ const meta: Meta<typeof ImportFolderIcon> = {
|
|
|
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,42 +40,42 @@ const meta: Meta<typeof ImportFolderIcon> = {
|
|
|
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
|
@keyframes pulse {
|
|
81
81
|
0%, 100% { opacity: 1; }
|
|
@@ -87,19 +87,19 @@ const meta: Meta<typeof ImportFolderIcon> = {
|
|
|
87
87
|
`}
|
|
88
88
|
</style>
|
|
89
89
|
|
|
90
|
-
<div className="
|
|
90
|
+
<div className="bg-fm-surface-primary min-h-screen">
|
|
91
91
|
{/* Header */}
|
|
92
|
-
<div className="relative overflow-hidden border-b
|
|
93
|
-
<div className="absolute inset-0 bg-
|
|
92
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary relative overflow-hidden border-b backdrop-blur-xl">
|
|
93
|
+
<div className="from-fm-icon-positive/10 to-fm-icon-warning/10 absolute inset-0 bg-linear-to-r via-transparent" />
|
|
94
94
|
<div className="relative !mx-auto max-w-7xl px-6 py-16">
|
|
95
95
|
<div className="!space-y-6 text-center">
|
|
96
|
-
<div className="!mx-auto flex h-24 w-24 items-center justify-center rounded-2xl border
|
|
97
|
-
<ImportFolderIcon className="h-12 w-12
|
|
96
|
+
<div className="border-fm-icon-positive/30 from-fm-icon-positive/20 to-fm-icon-warning/20 !mx-auto flex h-24 w-24 items-center justify-center rounded-2xl border bg-linear-to-br">
|
|
97
|
+
<ImportFolderIcon className="text-fm-icon-positive h-12 w-12" />
|
|
98
98
|
</div>
|
|
99
99
|
<h1 className="!text-fm-primary text-5xl font-bold">
|
|
100
100
|
ImportFolderIcon
|
|
101
101
|
</h1>
|
|
102
|
-
<p className="!mx-auto max-w-3xl text-xl leading-relaxed
|
|
102
|
+
<p className="text-fm-secondary! !mx-auto max-w-3xl text-xl leading-relaxed">
|
|
103
103
|
A specialized folder icon with import functionality,
|
|
104
104
|
featuring a clean folder design with an import arrow
|
|
105
105
|
indicator. Perfect for file management systems, data import
|
|
@@ -111,28 +111,28 @@ const meta: Meta<typeof ImportFolderIcon> = {
|
|
|
111
111
|
{/* Stats */}
|
|
112
112
|
<div className="flex items-center justify-center gap-8 pt-8">
|
|
113
113
|
<div className="text-center">
|
|
114
|
-
<div className="text-3xl font-bold
|
|
114
|
+
<div className="text-fm-icon-positive text-3xl font-bold">
|
|
115
115
|
Import
|
|
116
116
|
</div>
|
|
117
|
-
<div className="text-
|
|
117
|
+
<div className="text-fm-tertiary text-sm">
|
|
118
118
|
File operations
|
|
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-icon-warning text-3xl font-bold">
|
|
124
124
|
Organize
|
|
125
125
|
</div>
|
|
126
|
-
<div className="text-
|
|
126
|
+
<div className="text-fm-tertiary text-sm">
|
|
127
127
|
Folder management
|
|
128
128
|
</div>
|
|
129
129
|
</div>
|
|
130
|
-
<div className="h-8 w-px
|
|
130
|
+
<div className="bg-fm-divider-primary h-8 w-px" />
|
|
131
131
|
<div className="text-center">
|
|
132
|
-
<div className="text-3xl font-bold
|
|
132
|
+
<div className="text-fm-icon-info text-3xl font-bold">
|
|
133
133
|
Intuitive
|
|
134
134
|
</div>
|
|
135
|
-
<div className="text-
|
|
135
|
+
<div className="text-fm-tertiary text-sm">
|
|
136
136
|
Clear direction
|
|
137
137
|
</div>
|
|
138
138
|
</div>
|
|
@@ -145,16 +145,16 @@ const meta: Meta<typeof ImportFolderIcon> = {
|
|
|
145
145
|
<div className="!mx-auto max-w-7xl !space-y-16 px-6 py-12">
|
|
146
146
|
{/* Quick Usage */}
|
|
147
147
|
<div className="!space-y-8">
|
|
148
|
-
<h2 className="text-center text-3xl font-bold
|
|
148
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
149
149
|
Quick Start
|
|
150
150
|
</h2>
|
|
151
151
|
<div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
|
|
152
152
|
<div className="!space-y-4">
|
|
153
|
-
<h3 className="text-xl font-semibold
|
|
153
|
+
<h3 className="text-fm-icon-positive! text-xl font-semibold">
|
|
154
154
|
Basic Usage
|
|
155
155
|
</h3>
|
|
156
|
-
<div className="rounded-lg
|
|
157
|
-
<pre className="overflow-x-auto text-sm
|
|
156
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
157
|
+
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
158
158
|
{`import { ImportFolderIcon } from "@icons/import-folder-icon"
|
|
159
159
|
|
|
160
160
|
function FileImport() {
|
|
@@ -170,13 +170,15 @@ function FileImport() {
|
|
|
170
170
|
</div>
|
|
171
171
|
|
|
172
172
|
<div className="!space-y-4">
|
|
173
|
-
<h3 className="text-xl font-semibold
|
|
173
|
+
<h3 className="text-fm-icon-positive! text-xl font-semibold">
|
|
174
174
|
Live Preview
|
|
175
175
|
</h3>
|
|
176
|
-
<div className="flex h-32 items-center justify-center rounded-lg border
|
|
177
|
-
<div className="flex items-center gap-3 rounded-lg border
|
|
178
|
-
<ImportFolderIcon className="h-6 w-6
|
|
179
|
-
<span className="text-
|
|
176
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary flex h-32 items-center justify-center rounded-lg border">
|
|
177
|
+
<div className="border-fm-icon-positive/20 bg-fm-icon-positive/10 flex items-center gap-3 rounded-lg border px-4 py-3">
|
|
178
|
+
<ImportFolderIcon className="text-fm-icon-positive h-6 w-6" />
|
|
179
|
+
<span className="text-fm-icon-active">
|
|
180
|
+
Import Files
|
|
181
|
+
</span>
|
|
180
182
|
</div>
|
|
181
183
|
</div>
|
|
182
184
|
</div>
|
|
@@ -185,120 +187,130 @@ function FileImport() {
|
|
|
185
187
|
|
|
186
188
|
{/* Props Documentation */}
|
|
187
189
|
<div className="!space-y-8">
|
|
188
|
-
<h2 className="text-center text-3xl font-bold
|
|
190
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
189
191
|
Props & Configuration
|
|
190
192
|
</h2>
|
|
191
193
|
|
|
192
|
-
<div className="overflow-hidden rounded-lg border
|
|
193
|
-
<div className="bg-
|
|
194
|
-
<h3 className="text-xl font-semibold
|
|
194
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary overflow-hidden rounded-lg border">
|
|
195
|
+
<div className="bg-fm-surface-secondary p-4">
|
|
196
|
+
<h3 className="text-fm-icon-active! text-xl font-semibold">
|
|
197
|
+
Props
|
|
198
|
+
</h3>
|
|
195
199
|
</div>
|
|
196
200
|
<table className="!my-0 w-full">
|
|
197
|
-
<thead className="bg-
|
|
198
|
-
<tr className="border-
|
|
199
|
-
<th className="px-6 py-4 text-left text-sm font-semibold
|
|
201
|
+
<thead className="bg-fm-surface-secondary">
|
|
202
|
+
<tr className="border-fm-divider-secondary border-b">
|
|
203
|
+
<th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
|
|
200
204
|
Prop
|
|
201
205
|
</th>
|
|
202
|
-
<th className="px-6 py-4 text-left text-sm font-semibold
|
|
206
|
+
<th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
|
|
203
207
|
Type
|
|
204
208
|
</th>
|
|
205
|
-
<th className="px-6 py-4 text-left text-sm font-semibold
|
|
209
|
+
<th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
|
|
206
210
|
Default
|
|
207
211
|
</th>
|
|
208
|
-
<th className="px-6 py-4 text-left text-sm font-semibold
|
|
212
|
+
<th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
|
|
209
213
|
Description
|
|
210
214
|
</th>
|
|
211
215
|
</tr>
|
|
212
216
|
</thead>
|
|
213
217
|
<tbody>
|
|
214
218
|
{" "}
|
|
215
|
-
<tr className="
|
|
216
|
-
<td className="px-6 py-4 font-mono text-sm
|
|
219
|
+
<tr className="bg-fm-surface-secondary!">
|
|
220
|
+
<td className="text-fm-icon-info! px-6 py-4 font-mono text-sm">
|
|
217
221
|
withAccessibility
|
|
218
222
|
</td>
|
|
219
|
-
<td className="px-6 py-4 text-sm
|
|
223
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
220
224
|
boolean
|
|
221
225
|
</td>
|
|
222
|
-
<td className="px-6 py-4 text-sm
|
|
226
|
+
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
223
227
|
true
|
|
224
228
|
</td>
|
|
225
|
-
<td className="px-6 py-4 text-sm
|
|
229
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
226
230
|
Whether to wrap the icon with accessibility feature
|
|
227
231
|
</td>
|
|
228
232
|
</tr>
|
|
229
|
-
<tr className="border-
|
|
230
|
-
<td className="px-6 py-4 font-mono text-sm
|
|
233
|
+
<tr className="border-fm-divider-tertiary bg-fm-surface-secondary! border-b">
|
|
234
|
+
<td className="text-fm-icon-positive! px-6 py-4 font-mono text-sm">
|
|
231
235
|
height
|
|
232
236
|
</td>
|
|
233
|
-
<td className="px-6 py-4 text-sm
|
|
237
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
234
238
|
number | string
|
|
235
239
|
</td>
|
|
236
|
-
<td className="px-6 py-4 text-sm
|
|
237
|
-
|
|
240
|
+
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
241
|
+
24
|
|
242
|
+
</td>
|
|
243
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
238
244
|
Height of the icon in pixels
|
|
239
245
|
</td>
|
|
240
246
|
</tr>
|
|
241
|
-
<tr className="border-
|
|
242
|
-
<td className="px-6 py-4 font-mono text-sm
|
|
247
|
+
<tr className="border-fm-divider-tertiary border-b">
|
|
248
|
+
<td className="text-fm-icon-positive! px-6 py-4 font-mono text-sm">
|
|
243
249
|
stroke
|
|
244
250
|
</td>
|
|
245
|
-
<td className="px-6 py-4 text-sm
|
|
251
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
246
252
|
string
|
|
247
253
|
</td>
|
|
248
|
-
<td className="px-6 py-4 text-sm
|
|
254
|
+
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
249
255
|
currentColor
|
|
250
256
|
</td>
|
|
251
|
-
<td className="px-6 py-4 text-sm
|
|
257
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
252
258
|
Stroke color of the folder outline
|
|
253
259
|
</td>
|
|
254
260
|
</tr>
|
|
255
|
-
<tr className="border-
|
|
256
|
-
<td className="px-6 py-4 font-mono text-sm
|
|
261
|
+
<tr className="border-fm-divider-tertiary bg-fm-surface-secondary! border-b">
|
|
262
|
+
<td className="text-fm-icon-positive! px-6 py-4 font-mono text-sm">
|
|
257
263
|
strokeWidth
|
|
258
264
|
</td>
|
|
259
|
-
<td className="px-6 py-4 text-sm
|
|
265
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
260
266
|
string | number
|
|
261
267
|
</td>
|
|
262
|
-
<td className="px-6 py-4 text-sm
|
|
263
|
-
|
|
268
|
+
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
269
|
+
1
|
|
270
|
+
</td>
|
|
271
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
264
272
|
Stroke width of the outline
|
|
265
273
|
</td>
|
|
266
274
|
</tr>
|
|
267
|
-
<tr className="border-
|
|
268
|
-
<td className="px-6 py-4 font-mono text-sm
|
|
275
|
+
<tr className="border-fm-divider-tertiary border-b">
|
|
276
|
+
<td className="text-fm-icon-positive! px-6 py-4 font-mono text-sm">
|
|
269
277
|
fill
|
|
270
278
|
</td>
|
|
271
|
-
<td className="px-6 py-4 text-sm
|
|
279
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
272
280
|
string
|
|
273
281
|
</td>
|
|
274
|
-
<td className="px-6 py-4 text-sm
|
|
282
|
+
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
275
283
|
none
|
|
276
284
|
</td>
|
|
277
|
-
<td className="px-6 py-4 text-sm
|
|
285
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
278
286
|
Fill color of the icon
|
|
279
287
|
</td>
|
|
280
288
|
</tr>
|
|
281
|
-
<tr className="border-
|
|
282
|
-
<td className="px-6 py-4 font-mono text-sm
|
|
289
|
+
<tr className="border-fm-divider-tertiary bg-fm-surface-secondary! border-b">
|
|
290
|
+
<td className="text-fm-icon-positive! px-6 py-4 font-mono text-sm">
|
|
283
291
|
className
|
|
284
292
|
</td>
|
|
285
|
-
<td className="px-6 py-4 text-sm
|
|
293
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
286
294
|
string
|
|
287
295
|
</td>
|
|
288
|
-
<td className="px-6 py-4 text-sm
|
|
289
|
-
|
|
296
|
+
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
297
|
+
-
|
|
298
|
+
</td>
|
|
299
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
290
300
|
CSS classes for styling (use for overrides)
|
|
291
301
|
</td>
|
|
292
302
|
</tr>
|
|
293
|
-
<tr className="
|
|
294
|
-
<td className="px-6 py-4 font-mono text-sm
|
|
303
|
+
<tr className="bg-fm-surface-secondary!">
|
|
304
|
+
<td className="text-fm-icon-positive! px-6 py-4 font-mono text-sm">
|
|
295
305
|
...svgProps
|
|
296
306
|
</td>
|
|
297
|
-
<td className="px-6 py-4 text-sm
|
|
307
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
298
308
|
SVGProps
|
|
299
309
|
</td>
|
|
300
|
-
<td className="px-6 py-4 text-sm
|
|
301
|
-
|
|
310
|
+
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
311
|
+
-
|
|
312
|
+
</td>
|
|
313
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
302
314
|
All standard SVG element props
|
|
303
315
|
</td>
|
|
304
316
|
</tr>
|
|
@@ -309,50 +321,62 @@ function FileImport() {
|
|
|
309
321
|
|
|
310
322
|
{/* Size Variations */}
|
|
311
323
|
<div className="!space-y-8">
|
|
312
|
-
<h2 className="text-center text-3xl font-bold
|
|
324
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
313
325
|
Size Variations
|
|
314
326
|
</h2>
|
|
315
|
-
<div className="rounded-lg border
|
|
327
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-8">
|
|
316
328
|
<div className="!space-y-6">
|
|
317
329
|
<div className="grid grid-cols-1 gap-8 md:grid-cols-2">
|
|
318
330
|
<div className="!space-y-4">
|
|
319
|
-
<h3 className="text-lg font-semibold
|
|
331
|
+
<h3 className="text-fm-icon-positive! text-lg font-semibold">
|
|
320
332
|
Standard Sizes
|
|
321
333
|
</h3>
|
|
322
|
-
<div className="flex items-end gap-6 rounded-lg
|
|
334
|
+
<div className="bg-fm-surface-secondary flex items-end gap-6 rounded-lg p-6">
|
|
323
335
|
<div className="text-center">
|
|
324
|
-
<ImportFolderIcon className="!mx-auto mb-2 h-3 w-3
|
|
325
|
-
<span className="text-
|
|
336
|
+
<ImportFolderIcon className="text-fm-icon-positive !mx-auto mb-2 h-3 w-3" />
|
|
337
|
+
<span className="text-fm-tertiary text-xs">
|
|
338
|
+
12px
|
|
339
|
+
</span>
|
|
326
340
|
</div>
|
|
327
341
|
<div className="text-center">
|
|
328
|
-
<ImportFolderIcon className="!mx-auto mb-2 h-4 w-4
|
|
329
|
-
<span className="text-
|
|
342
|
+
<ImportFolderIcon className="text-fm-icon-positive !mx-auto mb-2 h-4 w-4" />
|
|
343
|
+
<span className="text-fm-tertiary text-xs">
|
|
344
|
+
16px
|
|
345
|
+
</span>
|
|
330
346
|
</div>
|
|
331
347
|
<div className="text-center">
|
|
332
|
-
<ImportFolderIcon className="!mx-auto mb-2 h-5 w-5
|
|
333
|
-
<span className="text-
|
|
348
|
+
<ImportFolderIcon className="text-fm-icon-positive !mx-auto mb-2 h-5 w-5" />
|
|
349
|
+
<span className="text-fm-tertiary text-xs">
|
|
350
|
+
20px
|
|
351
|
+
</span>
|
|
334
352
|
</div>
|
|
335
353
|
<div className="text-center">
|
|
336
|
-
<ImportFolderIcon className="!mx-auto mb-2 h-6 w-6
|
|
337
|
-
<span className="text-
|
|
354
|
+
<ImportFolderIcon className="text-fm-icon-positive !mx-auto mb-2 h-6 w-6" />
|
|
355
|
+
<span className="text-fm-tertiary text-xs">
|
|
356
|
+
24px
|
|
357
|
+
</span>
|
|
338
358
|
</div>
|
|
339
359
|
<div className="text-center">
|
|
340
|
-
<ImportFolderIcon className="!mx-auto mb-2 h-8 w-8
|
|
341
|
-
<span className="text-
|
|
360
|
+
<ImportFolderIcon className="text-fm-icon-positive !mx-auto mb-2 h-8 w-8" />
|
|
361
|
+
<span className="text-fm-tertiary text-xs">
|
|
362
|
+
32px
|
|
363
|
+
</span>
|
|
342
364
|
</div>
|
|
343
365
|
<div className="text-center">
|
|
344
|
-
<ImportFolderIcon className="!mx-auto mb-2 h-12 w-12
|
|
345
|
-
<span className="text-
|
|
366
|
+
<ImportFolderIcon className="text-fm-icon-positive !mx-auto mb-2 h-12 w-12" />
|
|
367
|
+
<span className="text-fm-tertiary text-xs">
|
|
368
|
+
48px
|
|
369
|
+
</span>
|
|
346
370
|
</div>
|
|
347
371
|
</div>
|
|
348
372
|
</div>
|
|
349
373
|
|
|
350
374
|
<div className="!space-y-4">
|
|
351
|
-
<h3 className="text-lg font-semibold
|
|
375
|
+
<h3 className="text-fm-icon-positive! text-lg font-semibold">
|
|
352
376
|
Code Example
|
|
353
377
|
</h3>
|
|
354
|
-
<div className="rounded-lg
|
|
355
|
-
<pre className="overflow-x-auto text-sm
|
|
378
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
379
|
+
<pre className="text-fm-icon-info! overflow-x-auto text-sm">
|
|
356
380
|
{`// Small (16px)
|
|
357
381
|
<ImportFolderIcon className="h-4 w-4 " />
|
|
358
382
|
|
|
@@ -378,56 +402,56 @@ function FileImport() {
|
|
|
378
402
|
|
|
379
403
|
{/* Color Variations */}
|
|
380
404
|
<div className="!space-y-8">
|
|
381
|
-
<h2 className="text-center text-3xl font-bold
|
|
405
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
382
406
|
Color Variations
|
|
383
407
|
</h2>
|
|
384
408
|
<div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
|
|
385
409
|
<div className="!space-y-4">
|
|
386
|
-
<h3 className="text-lg font-semibold
|
|
410
|
+
<h3 className="text-fm-icon-positive! text-lg font-semibold">
|
|
387
411
|
Semantic Colors
|
|
388
412
|
</h3>
|
|
389
|
-
<div className="!space-y-4 rounded-lg border
|
|
413
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
|
|
390
414
|
<div className="flex items-center gap-4">
|
|
391
|
-
<ImportFolderIcon className="h-6 w-6
|
|
415
|
+
<ImportFolderIcon className="text-fm-icon-positive h-6 w-6" />
|
|
392
416
|
<div>
|
|
393
|
-
<div className="text-sm font-medium
|
|
417
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
394
418
|
Success
|
|
395
419
|
</div>
|
|
396
|
-
<div className="text-
|
|
397
|
-
text-
|
|
420
|
+
<div className="text-fm-tertiary text-xs">
|
|
421
|
+
text-fm-icon-positive
|
|
398
422
|
</div>
|
|
399
423
|
</div>
|
|
400
424
|
</div>
|
|
401
425
|
<div className="flex items-center gap-4">
|
|
402
|
-
<ImportFolderIcon className="h-6 w-6
|
|
426
|
+
<ImportFolderIcon className="text-fm-icon-warning h-6 w-6" />
|
|
403
427
|
<div>
|
|
404
|
-
<div className="text-sm font-medium
|
|
428
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
405
429
|
Warning
|
|
406
430
|
</div>
|
|
407
|
-
<div className="text-
|
|
408
|
-
text-
|
|
431
|
+
<div className="text-fm-tertiary text-xs">
|
|
432
|
+
text-fm-icon-warning
|
|
409
433
|
</div>
|
|
410
434
|
</div>
|
|
411
435
|
</div>
|
|
412
436
|
<div className="flex items-center gap-4">
|
|
413
|
-
<ImportFolderIcon className="h-6 w-6
|
|
437
|
+
<ImportFolderIcon className="text-fm-icon-info h-6 w-6" />
|
|
414
438
|
<div>
|
|
415
|
-
<div className="text-sm font-medium
|
|
439
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
416
440
|
Primary
|
|
417
441
|
</div>
|
|
418
|
-
<div className="text-
|
|
419
|
-
text-
|
|
442
|
+
<div className="text-fm-tertiary text-xs">
|
|
443
|
+
text-fm-icon-info
|
|
420
444
|
</div>
|
|
421
445
|
</div>
|
|
422
446
|
</div>
|
|
423
447
|
<div className="flex items-center gap-4">
|
|
424
|
-
<ImportFolderIcon className="h-6 w-6
|
|
448
|
+
<ImportFolderIcon className="text-fm-placeholder h-6 w-6" />
|
|
425
449
|
<div>
|
|
426
|
-
<div className="text-sm font-medium
|
|
450
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
427
451
|
Muted
|
|
428
452
|
</div>
|
|
429
|
-
<div className="text-
|
|
430
|
-
text-
|
|
453
|
+
<div className="text-fm-tertiary text-xs">
|
|
454
|
+
text-fm-placeholder
|
|
431
455
|
</div>
|
|
432
456
|
</div>
|
|
433
457
|
</div>
|
|
@@ -435,11 +459,11 @@ function FileImport() {
|
|
|
435
459
|
</div>
|
|
436
460
|
|
|
437
461
|
<div className="!space-y-4">
|
|
438
|
-
<h3 className="text-lg font-semibold
|
|
462
|
+
<h3 className="text-fm-icon-positive! text-lg font-semibold">
|
|
439
463
|
Custom Colors
|
|
440
464
|
</h3>
|
|
441
|
-
<div className="rounded-lg
|
|
442
|
-
<pre className="overflow-x-auto text-sm
|
|
465
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
466
|
+
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
443
467
|
{`// Using Tailwind classes with
|
|
444
468
|
<ImportFolderIcon className="h-6 w-6 text-green-400 " />
|
|
445
469
|
<ImportFolderIcon className="h-6 w-6 text-yellow-500 " />
|
|
@@ -464,31 +488,31 @@ function FileImport() {
|
|
|
464
488
|
|
|
465
489
|
{/* Usage Examples */}
|
|
466
490
|
<div className="!space-y-8">
|
|
467
|
-
<h2 className="text-center text-3xl font-bold
|
|
491
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
468
492
|
Usage Examples
|
|
469
493
|
</h2>
|
|
470
494
|
|
|
471
495
|
<div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
|
|
472
496
|
{/* File Import Area */}
|
|
473
497
|
<div className="!space-y-4">
|
|
474
|
-
<h3 className="text-lg font-semibold
|
|
498
|
+
<h3 className="text-fm-icon-positive! text-lg font-semibold">
|
|
475
499
|
File Import Area
|
|
476
500
|
</h3>
|
|
477
501
|
<div className="!space-y-4">
|
|
478
|
-
<div className="relative rounded-lg border-2 border-dashed
|
|
479
|
-
<ImportFolderIcon className="!mx-auto h-12 w-12
|
|
480
|
-
<h4 className="mt-4 text-lg font-medium
|
|
502
|
+
<div className="border-fm-divider-primary bg-fm-surface-secondary hover:border-fm-icon-positive/50 hover:bg-fm-icon-positive/10 relative rounded-lg border-2 border-dashed p-8 text-center transition-colors">
|
|
503
|
+
<ImportFolderIcon className="text-fm-placeholder !mx-auto h-12 w-12" />
|
|
504
|
+
<h4 className="text-fm-icon-active! mt-4 text-lg font-medium">
|
|
481
505
|
Import Folder
|
|
482
506
|
</h4>
|
|
483
|
-
<p className="mt-2 text-sm
|
|
507
|
+
<p className="text-fm-tertiary! mt-2 text-sm">
|
|
484
508
|
Drag and drop folders here, or click to browse
|
|
485
509
|
</p>
|
|
486
|
-
<button className="
|
|
510
|
+
<button className="bg-fm-icon-positive/20 text-fm-icon-positive hover:bg-fm-icon-positive/30 mt-4 rounded-lg px-4 py-2 transition-colors">
|
|
487
511
|
Browse Folders
|
|
488
512
|
</button>
|
|
489
513
|
</div>
|
|
490
|
-
<div className="rounded-lg
|
|
491
|
-
<pre className="overflow-x-auto text-sm
|
|
514
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
515
|
+
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
492
516
|
{`<div className="relative border-2 border-dashed border-white/20 bg-white/5 p-8 text-center rounded-lg hover:border-green-400/50 hover:bg-green-500/10 transition-colors">
|
|
493
517
|
<ImportFolderIcon className="mx-auto h-12 w-12 text-white/40 " />
|
|
494
518
|
<h4 className="mt-4 text-lg font-medium text-white">Import Folder</h4>
|
|
@@ -506,11 +530,11 @@ function FileImport() {
|
|
|
506
530
|
|
|
507
531
|
{/* Import Status List */}
|
|
508
532
|
<div className="!space-y-4">
|
|
509
|
-
<h3 className="text-lg font-semibold
|
|
533
|
+
<h3 className="text-fm-icon-positive! text-lg font-semibold">
|
|
510
534
|
Import Status List
|
|
511
535
|
</h3>
|
|
512
536
|
<div className="!space-y-4">
|
|
513
|
-
<div className="!space-y-3 rounded-lg border
|
|
537
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4">
|
|
514
538
|
{[
|
|
515
539
|
{ name: "Documents", status: "completed", count: 24 },
|
|
516
540
|
{ name: "Images", status: "processing", count: 56 },
|
|
@@ -518,7 +542,7 @@ function FileImport() {
|
|
|
518
542
|
].map((folder, index) => (
|
|
519
543
|
<div
|
|
520
544
|
key={index}
|
|
521
|
-
className="flex items-center gap-3 rounded border
|
|
545
|
+
className="border-fm-divider-secondary bg-fm-surface-secondary hover:bg-fm-surface-secondary flex items-center gap-3 rounded border p-3 transition-colors"
|
|
522
546
|
>
|
|
523
547
|
<ImportFolderIcon
|
|
524
548
|
className={`h-5 w-5 ${
|
|
@@ -530,10 +554,10 @@ function FileImport() {
|
|
|
530
554
|
}`}
|
|
531
555
|
/>
|
|
532
556
|
<div className="flex-1">
|
|
533
|
-
<div className="text-sm font-medium
|
|
557
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
534
558
|
{folder.name}
|
|
535
559
|
</div>
|
|
536
|
-
<div className="text-
|
|
560
|
+
<div className="text-fm-tertiary text-xs">
|
|
537
561
|
{folder.count} files
|
|
538
562
|
</div>
|
|
539
563
|
</div>
|
|
@@ -551,8 +575,8 @@ function FileImport() {
|
|
|
551
575
|
</div>
|
|
552
576
|
))}
|
|
553
577
|
</div>
|
|
554
|
-
<div className="rounded-lg
|
|
555
|
-
<pre className="overflow-x-auto text-sm
|
|
578
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
579
|
+
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
556
580
|
{`// Import status item
|
|
557
581
|
<div className="flex items-center gap-3 border border-white/10 bg-white/5 p-3 rounded hover:bg-white/10 transition-colors">
|
|
558
582
|
<ImportFolderIcon className="h-5 w-5 text-green-400 " />
|
|
@@ -571,26 +595,26 @@ function FileImport() {
|
|
|
571
595
|
|
|
572
596
|
{/* Button Integration */}
|
|
573
597
|
<div className="!space-y-4">
|
|
574
|
-
<h3 className="text-lg font-semibold
|
|
598
|
+
<h3 className="text-fm-icon-positive! text-lg font-semibold">
|
|
575
599
|
Button Integration
|
|
576
600
|
</h3>
|
|
577
601
|
<div className="!space-y-4">
|
|
578
602
|
<div className="flex flex-wrap gap-4">
|
|
579
|
-
<button className="flex items-center gap-2 rounded-lg border
|
|
603
|
+
<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">
|
|
580
604
|
<ImportFolderIcon className="h-4 w-4" />
|
|
581
605
|
Import Folder
|
|
582
606
|
</button>
|
|
583
|
-
<button className="flex items-center gap-2 rounded-lg border
|
|
607
|
+
<button className="border-fm-icon-warning/30 bg-fm-icon-warning/20 text-fm-icon-warning hover:bg-fm-icon-warning/30 flex items-center gap-2 rounded-lg border px-4 py-2 transition-colors">
|
|
584
608
|
<ImportFolderIcon className="h-4 w-4" />
|
|
585
609
|
Batch Import
|
|
586
610
|
</button>
|
|
587
|
-
<button className="flex items-center gap-2 rounded-lg border
|
|
611
|
+
<button className="border-fm-divider-primary bg-fm-surface-secondary text-fm-secondary hover:bg-fm-surface-secondary flex items-center gap-2 rounded-lg border px-4 py-2 transition-colors">
|
|
588
612
|
<ImportFolderIcon className="h-4 w-4" />
|
|
589
613
|
Browse Folders
|
|
590
614
|
</button>
|
|
591
615
|
</div>
|
|
592
|
-
<div className="rounded-lg
|
|
593
|
-
<pre className="overflow-x-auto text-sm
|
|
616
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
617
|
+
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
594
618
|
{`// Primary import button
|
|
595
619
|
<button className="flex items-center gap-2 bg-green-500/20 border border-green-500/30 px-4 py-2 rounded-lg">
|
|
596
620
|
<ImportFolderIcon className="h-4 w-4 " />
|
|
@@ -609,11 +633,11 @@ function FileImport() {
|
|
|
609
633
|
|
|
610
634
|
{/* Sidebar Navigation */}
|
|
611
635
|
<div className="!space-y-4">
|
|
612
|
-
<h3 className="text-lg font-semibold
|
|
636
|
+
<h3 className="text-fm-icon-positive! text-lg font-semibold">
|
|
613
637
|
Sidebar Navigation
|
|
614
638
|
</h3>
|
|
615
639
|
<div className="!space-y-4">
|
|
616
|
-
<div className="max-w-xs rounded-lg border
|
|
640
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary max-w-xs rounded-lg border p-3">
|
|
617
641
|
{[
|
|
618
642
|
{ name: "All Files", icon: "📄", active: false },
|
|
619
643
|
{
|
|
@@ -645,13 +669,13 @@ function FileImport() {
|
|
|
645
669
|
)}
|
|
646
670
|
<span className="flex-1 text-sm">{item.name}</span>
|
|
647
671
|
{item.active && (
|
|
648
|
-
<div className="h-2 w-2 rounded-full
|
|
672
|
+
<div className="bg-fm-icon-positive h-2 w-2 rounded-full"></div>
|
|
649
673
|
)}
|
|
650
674
|
</div>
|
|
651
675
|
))}
|
|
652
676
|
</div>
|
|
653
|
-
<div className="rounded-lg
|
|
654
|
-
<pre className="overflow-x-auto text-sm
|
|
677
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
678
|
+
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
655
679
|
{`// Navigation item
|
|
656
680
|
<div className="flex items-center gap-3 p-2 rounded bg-green-500/20 text-green-200 cursor-pointer">
|
|
657
681
|
<ImportFolderIcon className="h-4 w-4 text-green-400 " />
|
|
@@ -667,44 +691,44 @@ function FileImport() {
|
|
|
667
691
|
|
|
668
692
|
{/* Interactive States */}
|
|
669
693
|
<div className="!space-y-8">
|
|
670
|
-
<h2 className="text-center text-3xl font-bold
|
|
694
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
671
695
|
Interactive States & Animations
|
|
672
696
|
</h2>
|
|
673
697
|
<div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
|
|
674
698
|
<div className="!space-y-4">
|
|
675
|
-
<h3 className="text-lg font-semibold
|
|
699
|
+
<h3 className="text-fm-icon-positive! text-lg font-semibold">
|
|
676
700
|
Hover & Loading States
|
|
677
701
|
</h3>
|
|
678
|
-
<div className="!space-y-4 rounded-lg border
|
|
702
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
|
|
679
703
|
<div className="flex items-center gap-4">
|
|
680
|
-
<ImportFolderIcon className="h-6 w-6
|
|
704
|
+
<ImportFolderIcon className="text-fm-tertiary hover:text-fm-icon-positive h-6 w-6 transition-colors" />
|
|
681
705
|
<div>
|
|
682
|
-
<div className="text-sm font-medium
|
|
706
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
683
707
|
Color Change
|
|
684
708
|
</div>
|
|
685
|
-
<div className="text-
|
|
686
|
-
hover:text-
|
|
709
|
+
<div className="text-fm-tertiary text-xs">
|
|
710
|
+
hover:text-fm-icon-positive
|
|
687
711
|
</div>
|
|
688
712
|
</div>
|
|
689
713
|
</div>
|
|
690
714
|
<div className="flex items-center gap-4">
|
|
691
|
-
<ImportFolderIcon className="h-6 w-6
|
|
715
|
+
<ImportFolderIcon className="text-fm-icon-active h-6 w-6 transition-transform hover:scale-110" />
|
|
692
716
|
<div>
|
|
693
|
-
<div className="text-sm font-medium
|
|
717
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
694
718
|
Scale Effect
|
|
695
719
|
</div>
|
|
696
|
-
<div className="text-
|
|
720
|
+
<div className="text-fm-tertiary text-xs">
|
|
697
721
|
hover:scale-110
|
|
698
722
|
</div>
|
|
699
723
|
</div>
|
|
700
724
|
</div>
|
|
701
725
|
<div className="flex items-center gap-4">
|
|
702
|
-
<ImportFolderIcon className="h-6 w-6 animate-pulse
|
|
726
|
+
<ImportFolderIcon className="text-fm-icon-positive h-6 w-6 animate-pulse" />
|
|
703
727
|
<div>
|
|
704
|
-
<div className="text-sm font-medium
|
|
728
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
705
729
|
Processing
|
|
706
730
|
</div>
|
|
707
|
-
<div className="text-
|
|
731
|
+
<div className="text-fm-tertiary text-xs">
|
|
708
732
|
animate-pulse
|
|
709
733
|
</div>
|
|
710
734
|
</div>
|
|
@@ -714,13 +738,13 @@ function FileImport() {
|
|
|
714
738
|
className="rounded p-2 focus:ring-2 focus:ring-green-500 focus:outline-none"
|
|
715
739
|
tabIndex={0}
|
|
716
740
|
>
|
|
717
|
-
<ImportFolderIcon className="h-6 w-6
|
|
741
|
+
<ImportFolderIcon className="text-fm-icon-active h-6 w-6" />
|
|
718
742
|
</div>
|
|
719
743
|
<div>
|
|
720
|
-
<div className="text-sm font-medium
|
|
744
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
721
745
|
Focus Ring
|
|
722
746
|
</div>
|
|
723
|
-
<div className="text-
|
|
747
|
+
<div className="text-fm-tertiary text-xs">
|
|
724
748
|
focus:ring-2
|
|
725
749
|
</div>
|
|
726
750
|
</div>
|
|
@@ -729,11 +753,11 @@ function FileImport() {
|
|
|
729
753
|
</div>
|
|
730
754
|
|
|
731
755
|
<div className="!space-y-4">
|
|
732
|
-
<h3 className="text-lg font-semibold
|
|
756
|
+
<h3 className="text-fm-icon-positive! text-lg font-semibold">
|
|
733
757
|
Animation Examples
|
|
734
758
|
</h3>
|
|
735
|
-
<div className="rounded-lg
|
|
736
|
-
<pre className="overflow-x-auto text-sm
|
|
759
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
760
|
+
<pre className="text-fm-icon-info! overflow-x-auto text-sm">
|
|
737
761
|
{`// Hover effects
|
|
738
762
|
<ImportFolderIcon className="h-6 w-6 text-white/60 hover:text-green-400 transition-colors " />
|
|
739
763
|
|
|
@@ -765,64 +789,64 @@ function FileImport() {
|
|
|
765
789
|
|
|
766
790
|
{/* Accessibility */}
|
|
767
791
|
<div className="!space-y-8">
|
|
768
|
-
<h2 className="text-center text-3xl font-bold
|
|
792
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
769
793
|
Accessibility Features
|
|
770
794
|
</h2>
|
|
771
795
|
<div className="grid grid-cols-1 gap-8 md:grid-cols-2">
|
|
772
|
-
<div className="!space-y-4 rounded-lg border
|
|
773
|
-
<h3 className="text-lg font-semibold
|
|
796
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
|
|
797
|
+
<h3 className="text-fm-icon-positive! text-lg font-semibold">
|
|
774
798
|
✅ Built-in Features
|
|
775
799
|
</h3>
|
|
776
|
-
<ul className="!space-y-2 text-sm
|
|
777
|
-
<li className="
|
|
800
|
+
<ul className="text-fm-secondary! !space-y-2 text-sm">
|
|
801
|
+
<li className="text-fm-secondary!">
|
|
778
802
|
Uses Radix UI AccessibleIcon wrapper
|
|
779
803
|
</li>
|
|
780
|
-
<li className="
|
|
804
|
+
<li className="text-fm-secondary!">
|
|
781
805
|
Provides screen reader label "Import Folder icon"
|
|
782
806
|
</li>
|
|
783
|
-
<li className="
|
|
807
|
+
<li className="text-fm-secondary!">
|
|
784
808
|
Supports keyboard navigation when interactive
|
|
785
809
|
</li>
|
|
786
|
-
<li className="
|
|
810
|
+
<li className="text-fm-secondary!">
|
|
787
811
|
Maintains proper color contrast ratios
|
|
788
812
|
</li>
|
|
789
|
-
<li className="
|
|
813
|
+
<li className="text-fm-secondary!">
|
|
790
814
|
Scales with user's font size preferences
|
|
791
815
|
</li>
|
|
792
816
|
</ul>
|
|
793
817
|
</div>
|
|
794
818
|
|
|
795
|
-
<div className="!space-y-4 rounded-lg border
|
|
796
|
-
<h3 className="text-lg font-semibold
|
|
819
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
|
|
820
|
+
<h3 className="text-fm-icon-positive! text-lg font-semibold">
|
|
797
821
|
💡 Best Practices
|
|
798
822
|
</h3>
|
|
799
|
-
<ul className="!space-y-2 text-sm
|
|
800
|
-
<li className="
|
|
823
|
+
<ul className="text-fm-secondary !space-y-2 text-sm">
|
|
824
|
+
<li className="text-fm-secondary!">
|
|
801
825
|
Always provide descriptive button labels
|
|
802
826
|
</li>
|
|
803
|
-
<li className="
|
|
827
|
+
<li className="text-fm-secondary!">
|
|
804
828
|
Use consistent colors for import states
|
|
805
829
|
</li>
|
|
806
|
-
<li className="
|
|
830
|
+
<li className="text-fm-secondary!">
|
|
807
831
|
Include progress indicators for long operations
|
|
808
832
|
</li>
|
|
809
|
-
<li className="
|
|
833
|
+
<li className="text-fm-secondary!">
|
|
810
834
|
Add focus states for interactive elements
|
|
811
835
|
</li>
|
|
812
|
-
<li className="
|
|
836
|
+
<li className="text-fm-secondary!">
|
|
813
837
|
Consider file type restrictions and feedback
|
|
814
838
|
</li>
|
|
815
839
|
</ul>
|
|
816
840
|
</div>
|
|
817
841
|
</div>
|
|
818
842
|
|
|
819
|
-
<div className="rounded-lg border
|
|
820
|
-
<h3 className="mb-4 text-lg font-semibold
|
|
843
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
|
|
844
|
+
<h3 className="text-fm-secondary-600! mb-4 text-lg font-semibold">
|
|
821
845
|
File Import Accessibility
|
|
822
846
|
</h3>
|
|
823
847
|
<div className="grid grid-cols-1 gap-6 lg:grid-cols-2">
|
|
824
|
-
<div className="rounded-lg
|
|
825
|
-
<pre className="overflow-x-auto text-sm
|
|
848
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
849
|
+
<pre className="text-fm-icon-info! overflow-x-auto text-sm">
|
|
826
850
|
{`// Import button with proper ARIA
|
|
827
851
|
<button
|
|
828
852
|
aria-label="Import folder - browse and select folders to import"
|
|
@@ -851,13 +875,13 @@ function FileImport() {
|
|
|
851
875
|
</pre>
|
|
852
876
|
</div>
|
|
853
877
|
<div className="!space-y-4">
|
|
854
|
-
<p className="text-
|
|
878
|
+
<p className="text-fm-secondary! text-sm">
|
|
855
879
|
When using ImportFolderIcon for file operations, provide
|
|
856
880
|
clear instructions and feedback for all user
|
|
857
881
|
interactions, including keyboard-only navigation.
|
|
858
882
|
</p>
|
|
859
|
-
<div className="
|
|
860
|
-
<div className="flex items-center gap-2 text-sm
|
|
883
|
+
<div className="border-fm-icon-positive/20 bg-fm-icon-positive/10 rounded-lg border p-4">
|
|
884
|
+
<div className="text-fm-icon-positive flex items-center gap-2 text-sm">
|
|
861
885
|
<ImportFolderIcon className="h-4 w-4" />
|
|
862
886
|
<span>
|
|
863
887
|
Screen readers get context about import
|
|
@@ -872,46 +896,58 @@ function FileImport() {
|
|
|
872
896
|
|
|
873
897
|
{/* Related Icons */}
|
|
874
898
|
<div className="!space-y-8">
|
|
875
|
-
<h2 className="text-center text-3xl font-bold
|
|
899
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
876
900
|
Related Icons
|
|
877
901
|
</h2>
|
|
878
902
|
<div className="grid grid-cols-2 gap-6 md:grid-cols-4">
|
|
879
|
-
<div className="!space-y-3 rounded-lg border
|
|
880
|
-
<div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg
|
|
903
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
|
|
904
|
+
<div className="bg-fm-icon-info/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
|
|
881
905
|
<span className="text-2xl">📁</span>
|
|
882
906
|
</div>
|
|
883
907
|
<div>
|
|
884
|
-
<div className="font-medium
|
|
885
|
-
|
|
908
|
+
<div className="text-fm-icon-active font-medium">
|
|
909
|
+
FolderIcon
|
|
910
|
+
</div>
|
|
911
|
+
<div className="text-fm-tertiary text-xs">
|
|
886
912
|
File organization
|
|
887
913
|
</div>
|
|
888
914
|
</div>
|
|
889
915
|
</div>
|
|
890
|
-
<div className="!space-y-3 rounded-lg border
|
|
891
|
-
<div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg
|
|
916
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
|
|
917
|
+
<div className="bg-fm-icon-warning/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
|
|
892
918
|
<span className="text-2xl">📤</span>
|
|
893
919
|
</div>
|
|
894
920
|
<div>
|
|
895
|
-
<div className="font-medium
|
|
896
|
-
|
|
921
|
+
<div className="text-fm-icon-active font-medium">
|
|
922
|
+
ExportIcon
|
|
923
|
+
</div>
|
|
924
|
+
<div className="text-fm-tertiary text-xs">
|
|
925
|
+
Data export
|
|
926
|
+
</div>
|
|
897
927
|
</div>
|
|
898
928
|
</div>
|
|
899
|
-
<div className="!space-y-3 rounded-lg border
|
|
900
|
-
<div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg
|
|
929
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
|
|
930
|
+
<div className="bg-fm-icon-positive/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
|
|
901
931
|
<span className="text-2xl">⬆️</span>
|
|
902
932
|
</div>
|
|
903
933
|
<div>
|
|
904
|
-
<div className="font-medium
|
|
905
|
-
|
|
934
|
+
<div className="text-fm-icon-active font-medium">
|
|
935
|
+
UploadIcon
|
|
936
|
+
</div>
|
|
937
|
+
<div className="text-fm-tertiary text-xs">
|
|
938
|
+
File uploads
|
|
939
|
+
</div>
|
|
906
940
|
</div>
|
|
907
941
|
</div>
|
|
908
|
-
<div className="!space-y-3 rounded-lg border
|
|
909
|
-
<div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg
|
|
942
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
|
|
943
|
+
<div className="bg-fm-secondary-500/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
|
|
910
944
|
<span className="text-2xl">📊</span>
|
|
911
945
|
</div>
|
|
912
946
|
<div>
|
|
913
|
-
<div className="font-medium
|
|
914
|
-
|
|
947
|
+
<div className="text-fm-icon-active font-medium">
|
|
948
|
+
DataIcon
|
|
949
|
+
</div>
|
|
950
|
+
<div className="text-fm-tertiary text-xs">
|
|
915
951
|
Data management
|
|
916
952
|
</div>
|
|
917
953
|
</div>
|
|
@@ -921,14 +957,14 @@ function FileImport() {
|
|
|
921
957
|
</div>
|
|
922
958
|
|
|
923
959
|
{/* Footer */}
|
|
924
|
-
<div className="border-
|
|
960
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary border-t backdrop-blur-xl">
|
|
925
961
|
<div className="!mx-auto max-w-7xl px-6 py-8">
|
|
926
962
|
<div className="!space-y-4 text-center">
|
|
927
|
-
<p className="
|
|
963
|
+
<p className="text-fm-tertiary!">
|
|
928
964
|
ImportFolderIcon is part of the Aural UI icon library, built
|
|
929
965
|
for file management and data import operations.
|
|
930
966
|
</p>
|
|
931
|
-
<p className="text-
|
|
967
|
+
<p className="text-fm-placeholder! text-sm">
|
|
932
968
|
All icons use Radix UI's AccessibleIcon for screen reader
|
|
933
969
|
compatibility and follow WCAG guidelines for file
|
|
934
970
|
operations.
|
|
@@ -982,20 +1018,20 @@ const storyParameters = {
|
|
|
982
1018
|
backgrounds: {
|
|
983
1019
|
default: "dark",
|
|
984
1020
|
values: [
|
|
985
|
-
{ name: "dark", value: "
|
|
986
|
-
{ name: "darker", value: "
|
|
1021
|
+
{ name: "dark", value: "var(--color-fm-surface-primary)" },
|
|
1022
|
+
{ name: "darker", value: "var(--color-fm-neutral-0)" },
|
|
987
1023
|
],
|
|
988
1024
|
},
|
|
989
1025
|
}
|
|
990
1026
|
|
|
991
1027
|
export const Default: Story = {
|
|
992
1028
|
args: {
|
|
993
|
-
className: "h-6 w-6 text-
|
|
1029
|
+
className: "h-6 w-6 text-fm-icon-positive ",
|
|
994
1030
|
withAccessibility: true,
|
|
995
1031
|
},
|
|
996
1032
|
parameters: storyParameters,
|
|
997
1033
|
render: (args) => (
|
|
998
|
-
<div className="flex h-32 min-h-dvh items-center justify-center rounded-lg bg-
|
|
1034
|
+
<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">
|
|
999
1035
|
<ImportFolderIcon {...args} />
|
|
1000
1036
|
</div>
|
|
1001
1037
|
),
|
|
@@ -1012,30 +1048,30 @@ export const SizeVariations: Story = {
|
|
|
1012
1048
|
},
|
|
1013
1049
|
},
|
|
1014
1050
|
render: () => (
|
|
1015
|
-
<div className="flex h-64 min-h-dvh items-center justify-center gap-8 rounded-lg bg-
|
|
1051
|
+
<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">
|
|
1016
1052
|
<div className="text-center">
|
|
1017
|
-
<ImportFolderIcon className="!mx-auto mb-2 h-3 w-3
|
|
1018
|
-
<span className="text-
|
|
1053
|
+
<ImportFolderIcon className="text-fm-icon-positive !mx-auto mb-2 h-3 w-3" />
|
|
1054
|
+
<span className="text-fm-tertiary text-xs">12px</span>
|
|
1019
1055
|
</div>
|
|
1020
1056
|
<div className="text-center">
|
|
1021
|
-
<ImportFolderIcon className="!mx-auto mb-2 h-4 w-4
|
|
1022
|
-
<span className="text-
|
|
1057
|
+
<ImportFolderIcon className="text-fm-icon-positive !mx-auto mb-2 h-4 w-4" />
|
|
1058
|
+
<span className="text-fm-tertiary text-xs">16px</span>
|
|
1023
1059
|
</div>
|
|
1024
1060
|
<div className="text-center">
|
|
1025
|
-
<ImportFolderIcon className="!mx-auto mb-2 h-5 w-5
|
|
1026
|
-
<span className="text-
|
|
1061
|
+
<ImportFolderIcon className="text-fm-icon-positive !mx-auto mb-2 h-5 w-5" />
|
|
1062
|
+
<span className="text-fm-tertiary text-xs">20px</span>
|
|
1027
1063
|
</div>
|
|
1028
1064
|
<div className="text-center">
|
|
1029
|
-
<ImportFolderIcon className="!mx-auto mb-2 h-6 w-6
|
|
1030
|
-
<span className="text-
|
|
1065
|
+
<ImportFolderIcon className="text-fm-icon-positive !mx-auto mb-2 h-6 w-6" />
|
|
1066
|
+
<span className="text-fm-tertiary text-xs">24px</span>
|
|
1031
1067
|
</div>
|
|
1032
1068
|
<div className="text-center">
|
|
1033
|
-
<ImportFolderIcon className="!mx-auto mb-2 h-8 w-8
|
|
1034
|
-
<span className="text-
|
|
1069
|
+
<ImportFolderIcon className="text-fm-icon-positive !mx-auto mb-2 h-8 w-8" />
|
|
1070
|
+
<span className="text-fm-tertiary text-xs">32px</span>
|
|
1035
1071
|
</div>
|
|
1036
1072
|
<div className="text-center">
|
|
1037
|
-
<ImportFolderIcon className="!mx-auto mb-2 h-12 w-12
|
|
1038
|
-
<span className="text-
|
|
1073
|
+
<ImportFolderIcon className="text-fm-icon-positive !mx-auto mb-2 h-12 w-12" />
|
|
1074
|
+
<span className="text-fm-tertiary text-xs">48px</span>
|
|
1039
1075
|
</div>
|
|
1040
1076
|
</div>
|
|
1041
1077
|
),
|
|
@@ -1052,34 +1088,36 @@ export const ColorVariations: Story = {
|
|
|
1052
1088
|
},
|
|
1053
1089
|
},
|
|
1054
1090
|
render: () => (
|
|
1055
|
-
<div className="grid min-h-dvh grid-cols-2 items-center justify-center gap-6 rounded-lg bg-
|
|
1091
|
+
<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">
|
|
1056
1092
|
<div className="text-center">
|
|
1057
|
-
<div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border
|
|
1058
|
-
<ImportFolderIcon className="h-8 w-8
|
|
1093
|
+
<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">
|
|
1094
|
+
<ImportFolderIcon className="text-fm-icon-positive h-8 w-8" />
|
|
1095
|
+
</div>
|
|
1096
|
+
<div className="text-fm-icon-active text-sm font-medium">Success</div>
|
|
1097
|
+
<div className="text-fm-icon-positive text-xs">
|
|
1098
|
+
text-fm-icon-positive
|
|
1059
1099
|
</div>
|
|
1060
|
-
<div className="text-sm font-medium text-white">Success</div>
|
|
1061
|
-
<div className="text-xs text-green-400">text-green-400</div>
|
|
1062
1100
|
</div>
|
|
1063
1101
|
<div className="text-center">
|
|
1064
|
-
<div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border
|
|
1065
|
-
<ImportFolderIcon className="h-8 w-8
|
|
1102
|
+
<div className="border-fm-icon-warning/30 bg-fm-icon-warning/20 !mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border">
|
|
1103
|
+
<ImportFolderIcon className="text-fm-icon-warning h-8 w-8" />
|
|
1066
1104
|
</div>
|
|
1067
|
-
<div className="text-sm font-medium
|
|
1068
|
-
<div className="text-
|
|
1105
|
+
<div className="text-fm-icon-active text-sm font-medium">Warning</div>
|
|
1106
|
+
<div className="text-fm-icon-warning text-xs">text-fm-icon-warning</div>
|
|
1069
1107
|
</div>
|
|
1070
1108
|
<div className="text-center">
|
|
1071
|
-
<div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border
|
|
1072
|
-
<ImportFolderIcon className="h-8 w-8
|
|
1109
|
+
<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">
|
|
1110
|
+
<ImportFolderIcon className="text-fm-icon-info h-8 w-8" />
|
|
1073
1111
|
</div>
|
|
1074
|
-
<div className="text-sm font-medium
|
|
1075
|
-
<div className="text-
|
|
1112
|
+
<div className="text-fm-icon-active text-sm font-medium">Primary</div>
|
|
1113
|
+
<div className="text-fm-icon-info text-xs">text-fm-icon-info</div>
|
|
1076
1114
|
</div>
|
|
1077
1115
|
<div className="text-center">
|
|
1078
|
-
<div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border
|
|
1079
|
-
<ImportFolderIcon className="h-8 w-8
|
|
1116
|
+
<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">
|
|
1117
|
+
<ImportFolderIcon className="text-fm-placeholder h-8 w-8" />
|
|
1080
1118
|
</div>
|
|
1081
|
-
<div className="text-sm font-medium
|
|
1082
|
-
<div className="text-
|
|
1119
|
+
<div className="text-fm-icon-active text-sm font-medium">Muted</div>
|
|
1120
|
+
<div className="text-fm-placeholder text-xs">text-fm-placeholder</div>
|
|
1083
1121
|
</div>
|
|
1084
1122
|
</div>
|
|
1085
1123
|
),
|
|
@@ -1096,19 +1134,21 @@ export const UsageExamples: Story = {
|
|
|
1096
1134
|
},
|
|
1097
1135
|
},
|
|
1098
1136
|
render: () => (
|
|
1099
|
-
<div className="min-h-dvh !space-y-8 rounded-lg bg-
|
|
1137
|
+
<div className="from-fm-surface-primary to-fm-surface-secondary min-h-dvh !space-y-8 rounded-lg bg-linear-to-br p-8">
|
|
1100
1138
|
{/* File Import Area */}
|
|
1101
1139
|
<div className="!space-y-2">
|
|
1102
|
-
<h3 className="text-sm font-medium
|
|
1103
|
-
|
|
1104
|
-
|
|
1105
|
-
|
|
1140
|
+
<h3 className="text-fm-icon-active text-sm font-medium">
|
|
1141
|
+
File Import Area
|
|
1142
|
+
</h3>
|
|
1143
|
+
<div className="border-fm-divider-primary bg-fm-surface-secondary hover:border-fm-icon-positive/50 hover:bg-fm-icon-positive/10 relative rounded-lg border-2 border-dashed p-8 text-center transition-colors">
|
|
1144
|
+
<ImportFolderIcon className="text-fm-placeholder !mx-auto h-12 w-12" />
|
|
1145
|
+
<h4 className="text-fm-icon-active! mt-4 text-lg font-medium">
|
|
1106
1146
|
Import Folder
|
|
1107
1147
|
</h4>
|
|
1108
|
-
<p className="mt-2 text-sm
|
|
1148
|
+
<p className="text-fm-tertiary! mt-2 text-sm">
|
|
1109
1149
|
Drag and drop folders here, or click to browse
|
|
1110
1150
|
</p>
|
|
1111
|
-
<button className="
|
|
1151
|
+
<button className="bg-fm-icon-positive/20 text-fm-icon-positive hover:bg-fm-icon-positive/30 mt-4 rounded-lg px-4 py-2 transition-colors">
|
|
1112
1152
|
Browse Folders
|
|
1113
1153
|
</button>
|
|
1114
1154
|
</div>
|
|
@@ -1116,8 +1156,10 @@ export const UsageExamples: Story = {
|
|
|
1116
1156
|
|
|
1117
1157
|
{/* Import Status List */}
|
|
1118
1158
|
<div className="!space-y-2">
|
|
1119
|
-
<h3 className="text-sm font-medium
|
|
1120
|
-
|
|
1159
|
+
<h3 className="text-fm-icon-active text-sm font-medium">
|
|
1160
|
+
Import Status
|
|
1161
|
+
</h3>
|
|
1162
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4">
|
|
1121
1163
|
{[
|
|
1122
1164
|
{ name: "Documents", status: "completed", count: 24 },
|
|
1123
1165
|
{ name: "Images", status: "processing", count: 56 },
|
|
@@ -1125,7 +1167,7 @@ export const UsageExamples: Story = {
|
|
|
1125
1167
|
].map((folder, index) => (
|
|
1126
1168
|
<div
|
|
1127
1169
|
key={index}
|
|
1128
|
-
className="flex items-center gap-3 rounded border
|
|
1170
|
+
className="border-fm-divider-secondary bg-fm-surface-secondary hover:bg-fm-surface-secondary flex items-center gap-3 rounded border p-3 transition-colors"
|
|
1129
1171
|
>
|
|
1130
1172
|
<ImportFolderIcon
|
|
1131
1173
|
className={`h-5 w-5 ${
|
|
@@ -1137,10 +1179,10 @@ export const UsageExamples: Story = {
|
|
|
1137
1179
|
}`}
|
|
1138
1180
|
/>
|
|
1139
1181
|
<div className="flex-1">
|
|
1140
|
-
<div className="text-sm font-medium
|
|
1182
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
1141
1183
|
{folder.name}
|
|
1142
1184
|
</div>
|
|
1143
|
-
<div className="text-
|
|
1185
|
+
<div className="text-fm-tertiary text-xs">
|
|
1144
1186
|
{folder.count} files
|
|
1145
1187
|
</div>
|
|
1146
1188
|
</div>
|
|
@@ -1162,17 +1204,19 @@ export const UsageExamples: Story = {
|
|
|
1162
1204
|
|
|
1163
1205
|
{/* Button Integration */}
|
|
1164
1206
|
<div className="!space-y-2">
|
|
1165
|
-
<h3 className="text-sm font-medium
|
|
1207
|
+
<h3 className="text-fm-icon-active text-sm font-medium">
|
|
1208
|
+
Button Integration
|
|
1209
|
+
</h3>
|
|
1166
1210
|
<div className="flex flex-wrap gap-4">
|
|
1167
|
-
<button className="flex items-center gap-2 rounded-lg border
|
|
1211
|
+
<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">
|
|
1168
1212
|
<ImportFolderIcon className="h-4 w-4" />
|
|
1169
1213
|
Import Folder
|
|
1170
1214
|
</button>
|
|
1171
|
-
<button className="flex items-center gap-2 rounded-lg border
|
|
1215
|
+
<button className="border-fm-icon-warning/30 bg-fm-icon-warning/20 text-fm-icon-warning hover:bg-fm-icon-warning/30 flex items-center gap-2 rounded-lg border px-4 py-2 transition-colors">
|
|
1172
1216
|
<ImportFolderIcon className="h-4 w-4" />
|
|
1173
1217
|
Batch Import
|
|
1174
1218
|
</button>
|
|
1175
|
-
<button className="flex items-center gap-2 rounded-lg border
|
|
1219
|
+
<button className="border-fm-divider-primary bg-fm-surface-secondary text-fm-secondary hover:bg-fm-surface-secondary flex items-center gap-2 rounded-lg border px-4 py-2 transition-colors">
|
|
1176
1220
|
<ImportFolderIcon className="h-4 w-4" />
|
|
1177
1221
|
Browse Folders
|
|
1178
1222
|
</button>
|
|
@@ -1193,36 +1237,36 @@ export const InteractiveStates: Story = {
|
|
|
1193
1237
|
},
|
|
1194
1238
|
},
|
|
1195
1239
|
render: () => (
|
|
1196
|
-
<div className="min-h-dvh !space-y-8 rounded-lg bg-
|
|
1240
|
+
<div className="from-fm-surface-primary to-fm-surface-secondary min-h-dvh !space-y-8 rounded-lg bg-linear-to-br p-8">
|
|
1197
1241
|
<div className="!space-y-4">
|
|
1198
|
-
<h3 className="text-sm font-medium
|
|
1242
|
+
<h3 className="text-fm-secondary text-sm font-medium">Hover Effects</h3>
|
|
1199
1243
|
<div className="flex gap-8">
|
|
1200
1244
|
<div className="flex flex-col items-center gap-2">
|
|
1201
|
-
<ImportFolderIcon className="h-8 w-8
|
|
1202
|
-
<span className="text-
|
|
1245
|
+
<ImportFolderIcon className="text-fm-tertiary hover:text-fm-icon-positive h-8 w-8 transition-colors" />
|
|
1246
|
+
<span className="text-fm-tertiary text-xs">Color Change</span>
|
|
1203
1247
|
</div>
|
|
1204
1248
|
<div className="flex flex-col items-center gap-2">
|
|
1205
|
-
<ImportFolderIcon className="h-8 w-8
|
|
1206
|
-
<span className="text-
|
|
1249
|
+
<ImportFolderIcon className="text-fm-icon-active h-8 w-8 transition-transform hover:scale-110" />
|
|
1250
|
+
<span className="text-fm-tertiary text-xs">Scale Up</span>
|
|
1207
1251
|
</div>
|
|
1208
1252
|
<div className="flex flex-col items-center gap-2">
|
|
1209
|
-
<ImportFolderIcon className="h-8 w-8 animate-pulse
|
|
1210
|
-
<span className="text-
|
|
1253
|
+
<ImportFolderIcon className="text-fm-icon-positive h-8 w-8 animate-pulse" />
|
|
1254
|
+
<span className="text-fm-tertiary text-xs">Processing</span>
|
|
1211
1255
|
</div>
|
|
1212
1256
|
</div>
|
|
1213
1257
|
</div>
|
|
1214
1258
|
|
|
1215
1259
|
<div className="!space-y-4">
|
|
1216
|
-
<h3 className="text-sm font-medium
|
|
1260
|
+
<h3 className="text-fm-secondary text-sm font-medium">Focus States</h3>
|
|
1217
1261
|
<div className="flex gap-8">
|
|
1218
1262
|
<div className="flex flex-col items-center gap-2">
|
|
1219
1263
|
<div
|
|
1220
1264
|
className="rounded p-2 focus:ring-2 focus:ring-green-500 focus:outline-none"
|
|
1221
1265
|
tabIndex={0}
|
|
1222
1266
|
>
|
|
1223
|
-
<ImportFolderIcon className="h-8 w-8
|
|
1267
|
+
<ImportFolderIcon className="text-fm-icon-active h-8 w-8" />
|
|
1224
1268
|
</div>
|
|
1225
|
-
<span className="text-
|
|
1269
|
+
<span className="text-fm-tertiary text-xs">Focus Ring</span>
|
|
1226
1270
|
</div>
|
|
1227
1271
|
</div>
|
|
1228
1272
|
</div>
|
|
@@ -1243,12 +1287,12 @@ export const Playground: Story = {
|
|
|
1243
1287
|
args: {
|
|
1244
1288
|
width: 32,
|
|
1245
1289
|
height: 32,
|
|
1246
|
-
className: "text-
|
|
1290
|
+
className: "text-fm-icon-positive ",
|
|
1247
1291
|
strokeWidth: 1,
|
|
1248
1292
|
},
|
|
1249
1293
|
render: (args) => (
|
|
1250
|
-
<div className="flex h-64 min-h-dvh items-center justify-center rounded-lg bg-
|
|
1251
|
-
<div className="rounded-lg border
|
|
1294
|
+
<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">
|
|
1295
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-8">
|
|
1252
1296
|
<ImportFolderIcon {...args} />
|
|
1253
1297
|
</div>
|
|
1254
1298
|
</div>
|