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 ImportLeftArrowFolderIcon> = {
|
|
|
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 ImportLeftArrowFolderIcon> = {
|
|
|
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 search-pulse {
|
|
81
81
|
0%, 100% { transform: scale(1); opacity: 1; }
|
|
@@ -94,19 +94,19 @@ const meta: Meta<typeof ImportLeftArrowFolderIcon> = {
|
|
|
94
94
|
`}
|
|
95
95
|
</style>
|
|
96
96
|
|
|
97
|
-
<div className="
|
|
97
|
+
<div className="from-fm-surface-primary via-fm-icon-info/5 to-fm-surface-primary min-h-screen bg-linear-to-br">
|
|
98
98
|
{/* Header */}
|
|
99
|
-
<div className="relative overflow-hidden border-b
|
|
100
|
-
<div className="absolute inset-0 bg-
|
|
99
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary relative overflow-hidden border-b backdrop-blur-xl">
|
|
100
|
+
<div className="from-fm-icon-info/10 to-fm-icon-info/10 absolute inset-0 bg-linear-to-r via-transparent" />
|
|
101
101
|
<div className="relative !mx-auto max-w-7xl px-6 py-16">
|
|
102
102
|
<div className="!space-y-6 text-center">
|
|
103
|
-
<div className="!mx-auto flex h-24 w-24 items-center justify-center rounded-2xl border
|
|
104
|
-
<ImportLeftArrowFolderIcon className="h-12 w-12
|
|
103
|
+
<div className="border-fm-icon-info/30 from-fm-icon-info/20 to-fm-icon-info/20 !mx-auto flex h-24 w-24 items-center justify-center rounded-2xl border bg-linear-to-br">
|
|
104
|
+
<ImportLeftArrowFolderIcon className="text-fm-icon-info h-12 w-12" />
|
|
105
105
|
</div>
|
|
106
106
|
<h1 className="!text-fm-primary text-5xl font-bold">
|
|
107
107
|
ImportLeftArrowFolderIcon
|
|
108
108
|
</h1>
|
|
109
|
-
<p className="!mx-auto max-w-3xl text-xl leading-relaxed
|
|
109
|
+
<p className="text-fm-secondary! !mx-auto max-w-3xl text-xl leading-relaxed">
|
|
110
110
|
A specialized folder icon featuring a left-pointing import
|
|
111
111
|
arrow, symbolizing incoming files or data. Ideal for file
|
|
112
112
|
transfer interfaces, document import workflows, and
|
|
@@ -117,28 +117,28 @@ const meta: Meta<typeof ImportLeftArrowFolderIcon> = {
|
|
|
117
117
|
{/* Stats */}
|
|
118
118
|
<div className="flex items-center justify-center gap-8 pt-8">
|
|
119
119
|
<div className="text-center">
|
|
120
|
-
<div className="text-3xl font-bold
|
|
120
|
+
<div className="text-fm-icon-info text-3xl font-bold">
|
|
121
121
|
Import
|
|
122
122
|
</div>
|
|
123
|
-
<div className="text-
|
|
123
|
+
<div className="text-fm-tertiary text-sm">
|
|
124
124
|
Bring in files smoothly
|
|
125
125
|
</div>
|
|
126
126
|
</div>
|
|
127
|
-
<div className="h-8 w-px
|
|
127
|
+
<div className="bg-fm-divider-primary h-8 w-px" />
|
|
128
128
|
<div className="text-center">
|
|
129
|
-
<div className="text-3xl font-bold
|
|
129
|
+
<div className="text-fm-icon-info text-3xl font-bold">
|
|
130
130
|
Directional
|
|
131
131
|
</div>
|
|
132
|
-
<div className="text-
|
|
132
|
+
<div className="text-fm-tertiary text-sm">
|
|
133
133
|
Left-arrow indicator
|
|
134
134
|
</div>
|
|
135
135
|
</div>
|
|
136
|
-
<div className="h-8 w-px
|
|
136
|
+
<div className="bg-fm-divider-primary h-8 w-px" />
|
|
137
137
|
<div className="text-center">
|
|
138
|
-
<div className="text-3xl font-bold
|
|
138
|
+
<div className="text-fm-icon-info text-3xl font-bold">
|
|
139
139
|
Accessible
|
|
140
140
|
</div>
|
|
141
|
-
<div className="text-
|
|
141
|
+
<div className="text-fm-tertiary text-sm">
|
|
142
142
|
Radix UI supported
|
|
143
143
|
</div>
|
|
144
144
|
</div>
|
|
@@ -151,18 +151,18 @@ const meta: Meta<typeof ImportLeftArrowFolderIcon> = {
|
|
|
151
151
|
<div className="!mx-auto max-w-7xl !space-y-16 px-6 py-12">
|
|
152
152
|
{/* Quick Usage */}
|
|
153
153
|
<div className="!space-y-8">
|
|
154
|
-
<h2 className="text-center text-3xl font-bold
|
|
154
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
155
155
|
Quick Start
|
|
156
156
|
</h2>
|
|
157
157
|
|
|
158
158
|
<div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
|
|
159
159
|
{/* Basic Usage */}
|
|
160
160
|
<div className="!space-y-4">
|
|
161
|
-
<h3 className="text-xl font-semibold
|
|
161
|
+
<h3 className="text-fm-icon-info! text-xl font-semibold">
|
|
162
162
|
Basic Usage
|
|
163
163
|
</h3>
|
|
164
|
-
<div className="rounded-lg
|
|
165
|
-
<pre className="overflow-x-auto text-sm
|
|
164
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
165
|
+
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">{`import { ImportLeftArrowFolderIcon } from "@icons/import-left-arrow-folder-icon"
|
|
166
166
|
|
|
167
167
|
function ImportButton() {
|
|
168
168
|
return (
|
|
@@ -180,11 +180,11 @@ function ImportButton() {
|
|
|
180
180
|
|
|
181
181
|
{/* Live Preview */}
|
|
182
182
|
<div className="!space-y-4">
|
|
183
|
-
<h3 className="text-xl font-semibold
|
|
183
|
+
<h3 className="text-fm-icon-info! text-xl font-semibold">
|
|
184
184
|
Live Preview
|
|
185
185
|
</h3>
|
|
186
|
-
<div className="flex h-32 items-center justify-center rounded-lg border
|
|
187
|
-
<button className="flex items-center gap-2 rounded border
|
|
186
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary flex h-32 items-center justify-center rounded-lg border">
|
|
187
|
+
<button className="border-fm-icon-info/30 bg-fm-icon-info/10 text-fm-icon-info hover:bg-fm-icon-info/20 flex items-center gap-2 rounded border px-4 py-2 hover:cursor-pointer">
|
|
188
188
|
<ImportLeftArrowFolderIcon className="h-4 w-4" />
|
|
189
189
|
Import
|
|
190
190
|
</button>
|
|
@@ -195,122 +195,130 @@ function ImportButton() {
|
|
|
195
195
|
|
|
196
196
|
{/* Props Documentation */}
|
|
197
197
|
<div className="!space-y-8">
|
|
198
|
-
<h2 className="text-center text-3xl font-bold
|
|
198
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
199
199
|
Props & Configuration
|
|
200
200
|
</h2>
|
|
201
201
|
|
|
202
|
-
<div className="overflow-hidden rounded-lg border
|
|
203
|
-
<div className="bg-
|
|
204
|
-
<h3 className="text-xl font-semibold
|
|
202
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary overflow-hidden rounded-lg border">
|
|
203
|
+
<div className="bg-fm-surface-secondary p-4">
|
|
204
|
+
<h3 className="text-fm-icon-active! text-xl font-semibold">
|
|
205
|
+
Props
|
|
206
|
+
</h3>
|
|
205
207
|
</div>
|
|
206
208
|
<table className="!my-0 w-full">
|
|
207
|
-
<thead className="bg-
|
|
208
|
-
<tr className="border-
|
|
209
|
-
<th className="px-6 py-4 text-left text-sm font-semibold
|
|
209
|
+
<thead className="bg-fm-surface-secondary">
|
|
210
|
+
<tr className="border-fm-divider-secondary border-b">
|
|
211
|
+
<th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
|
|
210
212
|
Prop
|
|
211
213
|
</th>
|
|
212
|
-
<th className="px-6 py-4 text-left text-sm font-semibold
|
|
214
|
+
<th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
|
|
213
215
|
Type
|
|
214
216
|
</th>
|
|
215
|
-
<th className="px-6 py-4 text-left text-sm font-semibold
|
|
217
|
+
<th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
|
|
216
218
|
Default
|
|
217
219
|
</th>
|
|
218
|
-
<th className="px-6 py-4 text-left text-sm font-semibold
|
|
220
|
+
<th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
|
|
219
221
|
Description
|
|
220
222
|
</th>
|
|
221
223
|
</tr>
|
|
222
224
|
</thead>
|
|
223
225
|
<tbody>
|
|
224
226
|
{" "}
|
|
225
|
-
<tr className="
|
|
226
|
-
<td className="px-6 py-4 font-mono text-sm
|
|
227
|
+
<tr className="bg-fm-surface-secondary!">
|
|
228
|
+
<td className="text-fm-icon-info! px-6 py-4 font-mono text-sm">
|
|
227
229
|
withAccessibility
|
|
228
230
|
</td>
|
|
229
|
-
<td className="px-6 py-4 text-sm
|
|
231
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
230
232
|
boolean
|
|
231
233
|
</td>
|
|
232
|
-
<td className="px-6 py-4 text-sm
|
|
234
|
+
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
233
235
|
true
|
|
234
236
|
</td>
|
|
235
|
-
<td className="px-6 py-4 text-sm
|
|
237
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
236
238
|
Whether to wrap the icon with accessibility feature
|
|
237
239
|
</td>
|
|
238
240
|
</tr>
|
|
239
|
-
<tr className="border-
|
|
240
|
-
<td className="px-6 py-4 font-mono text-sm
|
|
241
|
+
<tr className="border-fm-divider-tertiary bg-fm-surface-secondary! border-b">
|
|
242
|
+
<td className="text-fm-icon-info! px-6 py-4 font-mono text-sm">
|
|
241
243
|
height
|
|
242
244
|
</td>
|
|
243
|
-
<td className="px-6 py-4 text-sm
|
|
245
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
244
246
|
number | string
|
|
245
247
|
</td>
|
|
246
|
-
<td className="px-6 py-4 text-sm
|
|
247
|
-
|
|
248
|
+
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
249
|
+
24
|
|
250
|
+
</td>
|
|
251
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
248
252
|
Height of the icon in pixels
|
|
249
253
|
</td>
|
|
250
254
|
</tr>
|
|
251
|
-
<tr className="border-
|
|
252
|
-
<td className="px-6 py-4 font-mono text-sm
|
|
255
|
+
<tr className="border-fm-divider-tertiary border-b">
|
|
256
|
+
<td className="text-fm-icon-info! px-6 py-4 font-mono text-sm">
|
|
253
257
|
stroke
|
|
254
258
|
</td>
|
|
255
|
-
<td className="px-6 py-4 text-sm
|
|
259
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
256
260
|
string
|
|
257
261
|
</td>
|
|
258
|
-
<td className="px-6 py-4 text-sm
|
|
262
|
+
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
259
263
|
currentColor
|
|
260
264
|
</td>
|
|
261
|
-
<td className="px-6 py-4 text-sm
|
|
265
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
262
266
|
Stroke color of the icon lines
|
|
263
267
|
</td>
|
|
264
268
|
</tr>
|
|
265
|
-
<tr className="border-
|
|
266
|
-
<td className="px-6 py-4 font-mono text-sm
|
|
269
|
+
<tr className="border-fm-divider-tertiary bg-fm-surface-secondary! border-b">
|
|
270
|
+
<td className="text-fm-icon-info! px-6 py-4 font-mono text-sm">
|
|
267
271
|
strokeWidth
|
|
268
272
|
</td>
|
|
269
|
-
<td className="px-6 py-4 text-sm
|
|
273
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
270
274
|
number | string
|
|
271
275
|
</td>
|
|
272
|
-
<td className="px-6 py-4 text-sm
|
|
276
|
+
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
273
277
|
1.5
|
|
274
278
|
</td>
|
|
275
|
-
<td className="px-6 py-4 text-sm
|
|
279
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
276
280
|
Thickness of the stroke lines
|
|
277
281
|
</td>
|
|
278
282
|
</tr>
|
|
279
|
-
<tr className="border-
|
|
280
|
-
<td className="px-6 py-4 font-mono text-sm
|
|
283
|
+
<tr className="border-fm-divider-tertiary border-b">
|
|
284
|
+
<td className="text-fm-icon-info! px-6 py-4 font-mono text-sm">
|
|
281
285
|
strokeLinecap
|
|
282
286
|
</td>
|
|
283
|
-
<td className="px-6 py-4 text-sm
|
|
287
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
284
288
|
string
|
|
285
289
|
</td>
|
|
286
|
-
<td className="px-6 py-4 text-sm
|
|
290
|
+
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
287
291
|
square
|
|
288
292
|
</td>
|
|
289
|
-
<td className="px-6 py-4 text-sm
|
|
293
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
290
294
|
Style of line endings (e.g., butt, round, square)
|
|
291
295
|
</td>
|
|
292
296
|
</tr>
|
|
293
|
-
<tr className="border-
|
|
294
|
-
<td className="px-6 py-4 font-mono text-sm
|
|
297
|
+
<tr className="border-fm-divider-tertiary bg-fm-surface-secondary! border-b">
|
|
298
|
+
<td className="text-fm-icon-info! px-6 py-4 font-mono text-sm">
|
|
295
299
|
className
|
|
296
300
|
</td>
|
|
297
|
-
<td className="px-6 py-4 text-sm
|
|
301
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
298
302
|
string
|
|
299
303
|
</td>
|
|
300
|
-
<td className="px-6 py-4 text-sm
|
|
301
|
-
|
|
304
|
+
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
305
|
+
-
|
|
306
|
+
</td>
|
|
307
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
302
308
|
CSS classes for styling (use for size, color, etc.)
|
|
303
309
|
</td>
|
|
304
310
|
</tr>
|
|
305
|
-
<tr className="
|
|
306
|
-
<td className="px-6 py-4 font-mono text-sm
|
|
311
|
+
<tr className="bg-fm-surface-secondary!">
|
|
312
|
+
<td className="text-fm-icon-info! px-6 py-4 font-mono text-sm">
|
|
307
313
|
...svgProps
|
|
308
314
|
</td>
|
|
309
|
-
<td className="px-6 py-4 text-sm
|
|
315
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
310
316
|
SVGProps
|
|
311
317
|
</td>
|
|
312
|
-
<td className="px-6 py-4 text-sm
|
|
313
|
-
|
|
318
|
+
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
319
|
+
-
|
|
320
|
+
</td>
|
|
321
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
314
322
|
All standard SVG element props supported by React
|
|
315
323
|
</td>
|
|
316
324
|
</tr>
|
|
@@ -321,50 +329,62 @@ function ImportButton() {
|
|
|
321
329
|
|
|
322
330
|
{/* Size Variations */}
|
|
323
331
|
<div className="!space-y-8">
|
|
324
|
-
<h2 className="text-center text-3xl font-bold
|
|
332
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
325
333
|
Size Variations
|
|
326
334
|
</h2>
|
|
327
|
-
<div className="rounded-lg border
|
|
335
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-8">
|
|
328
336
|
<div className="!space-y-6">
|
|
329
337
|
<div className="grid grid-cols-1 gap-8 md:grid-cols-2">
|
|
330
338
|
<div className="!space-y-4">
|
|
331
|
-
<h3 className="text-lg font-semibold
|
|
339
|
+
<h3 className="text-fm-icon-info! text-lg font-semibold">
|
|
332
340
|
Standard Sizes
|
|
333
341
|
</h3>
|
|
334
|
-
<div className="flex items-end gap-6 rounded-lg
|
|
342
|
+
<div className="bg-fm-surface-secondary flex items-end gap-6 rounded-lg p-6">
|
|
335
343
|
<div className="text-center">
|
|
336
|
-
<ImportLeftArrowFolderIcon className="!mx-auto mb-2 h-3 w-3
|
|
337
|
-
<span className="text-
|
|
344
|
+
<ImportLeftArrowFolderIcon className="text-fm-icon-info !mx-auto mb-2 h-3 w-3" />
|
|
345
|
+
<span className="text-fm-tertiary text-xs">
|
|
346
|
+
12px
|
|
347
|
+
</span>
|
|
338
348
|
</div>
|
|
339
349
|
<div className="text-center">
|
|
340
|
-
<ImportLeftArrowFolderIcon className="!mx-auto mb-2 h-4 w-4
|
|
341
|
-
<span className="text-
|
|
350
|
+
<ImportLeftArrowFolderIcon className="text-fm-icon-info !mx-auto mb-2 h-4 w-4" />
|
|
351
|
+
<span className="text-fm-tertiary text-xs">
|
|
352
|
+
16px
|
|
353
|
+
</span>
|
|
342
354
|
</div>
|
|
343
355
|
<div className="text-center">
|
|
344
|
-
<ImportLeftArrowFolderIcon className="!mx-auto mb-2 h-5 w-5
|
|
345
|
-
<span className="text-
|
|
356
|
+
<ImportLeftArrowFolderIcon className="text-fm-icon-info !mx-auto mb-2 h-5 w-5" />
|
|
357
|
+
<span className="text-fm-tertiary text-xs">
|
|
358
|
+
20px
|
|
359
|
+
</span>
|
|
346
360
|
</div>
|
|
347
361
|
<div className="text-center">
|
|
348
|
-
<ImportLeftArrowFolderIcon className="!mx-auto mb-2 h-6 w-6
|
|
349
|
-
<span className="text-
|
|
362
|
+
<ImportLeftArrowFolderIcon className="text-fm-icon-info !mx-auto mb-2 h-6 w-6" />
|
|
363
|
+
<span className="text-fm-tertiary text-xs">
|
|
364
|
+
24px
|
|
365
|
+
</span>
|
|
350
366
|
</div>
|
|
351
367
|
<div className="text-center">
|
|
352
|
-
<ImportLeftArrowFolderIcon className="!mx-auto mb-2 h-8 w-8
|
|
353
|
-
<span className="text-
|
|
368
|
+
<ImportLeftArrowFolderIcon className="text-fm-icon-info !mx-auto mb-2 h-8 w-8" />
|
|
369
|
+
<span className="text-fm-tertiary text-xs">
|
|
370
|
+
32px
|
|
371
|
+
</span>
|
|
354
372
|
</div>
|
|
355
373
|
<div className="text-center">
|
|
356
|
-
<ImportLeftArrowFolderIcon className="!mx-auto mb-2 h-12 w-12
|
|
357
|
-
<span className="text-
|
|
374
|
+
<ImportLeftArrowFolderIcon className="text-fm-icon-info !mx-auto mb-2 h-12 w-12" />
|
|
375
|
+
<span className="text-fm-tertiary text-xs">
|
|
376
|
+
48px
|
|
377
|
+
</span>
|
|
358
378
|
</div>
|
|
359
379
|
</div>
|
|
360
380
|
</div>
|
|
361
381
|
|
|
362
382
|
<div className="!space-y-4">
|
|
363
|
-
<h3 className="text-lg font-semibold
|
|
383
|
+
<h3 className="text-fm-icon-info! text-lg font-semibold">
|
|
364
384
|
Code Example
|
|
365
385
|
</h3>
|
|
366
|
-
<div className="rounded-lg
|
|
367
|
-
<pre className="overflow-x-auto text-sm
|
|
386
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
387
|
+
<pre className="text-fm-icon-info! overflow-x-auto text-sm">
|
|
368
388
|
{`// Small (16px)
|
|
369
389
|
<ImportLeftArrowFolderIcon className="h-4 w-4 " />
|
|
370
390
|
|
|
@@ -386,91 +406,91 @@ function ImportButton() {
|
|
|
386
406
|
|
|
387
407
|
{/* Color Variations */}
|
|
388
408
|
<div className="!space-y-8">
|
|
389
|
-
<h2 className="text-center text-3xl font-bold
|
|
409
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
390
410
|
Color Variations
|
|
391
411
|
</h2>
|
|
392
412
|
|
|
393
413
|
<div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
|
|
394
414
|
{/* Semantic Colors */}
|
|
395
415
|
<div className="!space-y-4">
|
|
396
|
-
<h3 className="text-lg font-semibold
|
|
416
|
+
<h3 className="text-fm-icon-info! text-lg font-semibold">
|
|
397
417
|
Semantic Colors
|
|
398
418
|
</h3>
|
|
399
|
-
<div className="!space-y-4 rounded-lg border
|
|
419
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
|
|
400
420
|
<div className="flex items-center gap-4">
|
|
401
|
-
<ImportLeftArrowFolderIcon className="h-6 w-6
|
|
421
|
+
<ImportLeftArrowFolderIcon className="text-fm-icon-info h-6 w-6" />
|
|
402
422
|
<div>
|
|
403
|
-
<div className="text-sm font-medium
|
|
423
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
404
424
|
Primary
|
|
405
425
|
</div>
|
|
406
|
-
<div className="text-
|
|
407
|
-
text-
|
|
426
|
+
<div className="text-fm-tertiary text-xs">
|
|
427
|
+
text-fm-icon-info
|
|
408
428
|
</div>
|
|
409
429
|
</div>
|
|
410
430
|
</div>
|
|
411
431
|
<div className="flex items-center gap-4">
|
|
412
|
-
<ImportLeftArrowFolderIcon className="h-6 w-6
|
|
432
|
+
<ImportLeftArrowFolderIcon className="text-fm-icon-info h-6 w-6" />
|
|
413
433
|
<div>
|
|
414
|
-
<div className="text-sm font-medium
|
|
434
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
415
435
|
Active
|
|
416
436
|
</div>
|
|
417
|
-
<div className="text-
|
|
418
|
-
text-
|
|
437
|
+
<div className="text-fm-tertiary text-xs">
|
|
438
|
+
text-fm-icon-info
|
|
419
439
|
</div>
|
|
420
440
|
</div>
|
|
421
441
|
</div>
|
|
422
442
|
<div className="flex items-center gap-4">
|
|
423
|
-
<ImportLeftArrowFolderIcon className="h-6 w-6
|
|
443
|
+
<ImportLeftArrowFolderIcon className="text-fm-placeholder h-6 w-6" />
|
|
424
444
|
<div>
|
|
425
|
-
<div className="text-sm font-medium
|
|
445
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
426
446
|
Disabled
|
|
427
447
|
</div>
|
|
428
|
-
<div className="text-
|
|
429
|
-
text-
|
|
448
|
+
<div className="text-fm-tertiary text-xs">
|
|
449
|
+
text-fm-placeholder
|
|
430
450
|
</div>
|
|
431
451
|
</div>
|
|
432
452
|
</div>
|
|
433
453
|
<div className="flex items-center gap-4">
|
|
434
|
-
<ImportLeftArrowFolderIcon className="h-6 w-6
|
|
454
|
+
<ImportLeftArrowFolderIcon className="text-fm-icon-info h-6 w-6" />
|
|
435
455
|
<div>
|
|
436
|
-
<div className="text-sm font-medium
|
|
456
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
437
457
|
Info
|
|
438
458
|
</div>
|
|
439
|
-
<div className="text-
|
|
440
|
-
text-
|
|
459
|
+
<div className="text-fm-tertiary text-xs">
|
|
460
|
+
text-fm-icon-info
|
|
441
461
|
</div>
|
|
442
462
|
</div>
|
|
443
463
|
</div>
|
|
444
464
|
<div className="flex items-center gap-4">
|
|
445
|
-
<ImportLeftArrowFolderIcon className="h-6 w-6
|
|
465
|
+
<ImportLeftArrowFolderIcon className="text-fm-icon-positive h-6 w-6" />
|
|
446
466
|
<div>
|
|
447
|
-
<div className="text-sm font-medium
|
|
467
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
448
468
|
Success
|
|
449
469
|
</div>
|
|
450
|
-
<div className="text-
|
|
451
|
-
text-
|
|
470
|
+
<div className="text-fm-tertiary text-xs">
|
|
471
|
+
text-fm-icon-positive
|
|
452
472
|
</div>
|
|
453
473
|
</div>
|
|
454
474
|
</div>
|
|
455
475
|
<div className="flex items-center gap-4">
|
|
456
|
-
<ImportLeftArrowFolderIcon className="h-6 w-6
|
|
476
|
+
<ImportLeftArrowFolderIcon className="text-fm-icon-warning h-6 w-6" />
|
|
457
477
|
<div>
|
|
458
|
-
<div className="text-sm font-medium
|
|
478
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
459
479
|
Warning
|
|
460
480
|
</div>
|
|
461
|
-
<div className="text-
|
|
462
|
-
text-
|
|
481
|
+
<div className="text-fm-tertiary text-xs">
|
|
482
|
+
text-fm-icon-warning
|
|
463
483
|
</div>
|
|
464
484
|
</div>
|
|
465
485
|
</div>
|
|
466
486
|
<div className="flex items-center gap-4">
|
|
467
|
-
<ImportLeftArrowFolderIcon className="h-6 w-6
|
|
487
|
+
<ImportLeftArrowFolderIcon className="text-fm-icon-negative h-6 w-6" />
|
|
468
488
|
<div>
|
|
469
|
-
<div className="text-sm font-medium
|
|
489
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
470
490
|
Error
|
|
471
491
|
</div>
|
|
472
|
-
<div className="text-
|
|
473
|
-
text-
|
|
492
|
+
<div className="text-fm-tertiary text-xs">
|
|
493
|
+
text-fm-icon-negative
|
|
474
494
|
</div>
|
|
475
495
|
</div>
|
|
476
496
|
</div>
|
|
@@ -479,11 +499,11 @@ function ImportButton() {
|
|
|
479
499
|
|
|
480
500
|
{/* Custom Colors */}
|
|
481
501
|
<div className="!space-y-4">
|
|
482
|
-
<h3 className="text-lg font-semibold
|
|
502
|
+
<h3 className="text-fm-icon-info! text-lg font-semibold">
|
|
483
503
|
Custom Colors
|
|
484
504
|
</h3>
|
|
485
|
-
<div className="rounded-lg
|
|
486
|
-
<pre className="overflow-x-auto text-sm
|
|
505
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
506
|
+
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
487
507
|
{`// Using Tailwind classes
|
|
488
508
|
<ImportLeftArrowFolderIcon className="h-6 w-6 text-indigo-400" />
|
|
489
509
|
<ImportLeftArrowFolderIcon className="h-6 w-6 text-cyan-500" />
|
|
@@ -508,31 +528,31 @@ function ImportButton() {
|
|
|
508
528
|
|
|
509
529
|
{/* Usage Examples */}
|
|
510
530
|
<div className="!space-y-8">
|
|
511
|
-
<h2 className="text-center text-3xl font-bold
|
|
531
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
512
532
|
Usage Examples
|
|
513
533
|
</h2>
|
|
514
534
|
|
|
515
535
|
<div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
|
|
516
536
|
{/* File Import Area */}
|
|
517
537
|
<div className="!space-y-4">
|
|
518
|
-
<h3 className="text-lg font-semibold
|
|
538
|
+
<h3 className="text-fm-icon-info! text-lg font-semibold">
|
|
519
539
|
File Import Area
|
|
520
540
|
</h3>
|
|
521
541
|
<div className="!space-y-4">
|
|
522
|
-
<div className="relative rounded-lg border-2 border-dashed
|
|
523
|
-
<ImportLeftArrowFolderIcon className="!mx-auto h-12 w-12
|
|
524
|
-
<h4 className="mt-4 text-lg font-medium
|
|
542
|
+
<div className="border-fm-divider-primary bg-fm-surface-secondary hover:border-fm-icon-info/50 hover:bg-fm-icon-info/10 relative rounded-lg border-2 border-dashed p-8 text-center transition-colors">
|
|
543
|
+
<ImportLeftArrowFolderIcon className="text-fm-placeholder !mx-auto h-12 w-12" />
|
|
544
|
+
<h4 className="text-fm-icon-active! mt-4 text-lg font-medium">
|
|
525
545
|
Import Folder
|
|
526
546
|
</h4>
|
|
527
|
-
<p className="mt-2 text-sm
|
|
547
|
+
<p className="text-fm-tertiary! mt-2 text-sm">
|
|
528
548
|
Drag and drop folders here, or click to browse
|
|
529
549
|
</p>
|
|
530
|
-
<button className="
|
|
550
|
+
<button className="bg-fm-icon-info/20 text-fm-icon-info hover:bg-fm-icon-info/30 mt-4 rounded-lg px-4 py-2 transition-colors">
|
|
531
551
|
Browse Folders
|
|
532
552
|
</button>
|
|
533
553
|
</div>
|
|
534
|
-
<div className="rounded-lg
|
|
535
|
-
<pre className="overflow-x-auto text-sm
|
|
554
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
555
|
+
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
536
556
|
{`<div className="relative border-2 border-dashed border-white/20 bg-white/5 p-8 text-center rounded-lg hover:border-indigo-400/50 hover:bg-indigo-500/10 transition-colors">
|
|
537
557
|
<ImportFolderIcon className="mx-auto h-12 w-12 text-white/40" />
|
|
538
558
|
<h4 className="mt-4 text-lg font-medium text-white">Import Folder</h4>
|
|
@@ -550,11 +570,11 @@ function ImportButton() {
|
|
|
550
570
|
|
|
551
571
|
{/* Import Status List */}
|
|
552
572
|
<div className="!space-y-4">
|
|
553
|
-
<h3 className="text-lg font-semibold
|
|
573
|
+
<h3 className="text-fm-icon-info! text-lg font-semibold">
|
|
554
574
|
Import Status List
|
|
555
575
|
</h3>
|
|
556
576
|
<div className="!space-y-4">
|
|
557
|
-
<div className="!space-y-3 rounded-lg border
|
|
577
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4">
|
|
558
578
|
{[
|
|
559
579
|
{ name: "Documents", status: "completed", count: 24 },
|
|
560
580
|
{ name: "Images", status: "processing", count: 56 },
|
|
@@ -562,7 +582,7 @@ function ImportButton() {
|
|
|
562
582
|
].map((folder, index) => (
|
|
563
583
|
<div
|
|
564
584
|
key={index}
|
|
565
|
-
className="flex items-center gap-3 rounded border
|
|
585
|
+
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"
|
|
566
586
|
>
|
|
567
587
|
<ImportLeftArrowFolderIcon
|
|
568
588
|
className={`h-5 w-5 ${
|
|
@@ -574,10 +594,10 @@ function ImportButton() {
|
|
|
574
594
|
}`}
|
|
575
595
|
/>
|
|
576
596
|
<div className="flex-1">
|
|
577
|
-
<div className="text-sm font-medium
|
|
597
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
578
598
|
{folder.name}
|
|
579
599
|
</div>
|
|
580
|
-
<div className="text-
|
|
600
|
+
<div className="text-fm-tertiary text-xs">
|
|
581
601
|
{folder.count} files
|
|
582
602
|
</div>
|
|
583
603
|
</div>
|
|
@@ -595,8 +615,8 @@ function ImportButton() {
|
|
|
595
615
|
</div>
|
|
596
616
|
))}
|
|
597
617
|
</div>
|
|
598
|
-
<div className="rounded-lg
|
|
599
|
-
<pre className="overflow-x-auto text-sm
|
|
618
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
619
|
+
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
600
620
|
{`// Import status item
|
|
601
621
|
<div className="flex items-center gap-3 border border-white/10 bg-white/5 p-3 rounded hover:bg-white/10 transition-colors">
|
|
602
622
|
<ImportFolderIcon className="h-5 w-5 text-green-400" />
|
|
@@ -615,26 +635,26 @@ function ImportButton() {
|
|
|
615
635
|
|
|
616
636
|
{/* Button Integration */}
|
|
617
637
|
<div className="!space-y-4">
|
|
618
|
-
<h3 className="text-lg font-semibold
|
|
638
|
+
<h3 className="text-fm-icon-info! text-lg font-semibold">
|
|
619
639
|
Button Integration
|
|
620
640
|
</h3>
|
|
621
641
|
<div className="!space-y-4">
|
|
622
642
|
<div className="flex flex-wrap gap-4">
|
|
623
|
-
<button className="flex items-center gap-2 rounded-lg border
|
|
643
|
+
<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">
|
|
624
644
|
<ImportLeftArrowFolderIcon className="h-4 w-4" />
|
|
625
645
|
Import Folder
|
|
626
646
|
</button>
|
|
627
|
-
<button className="flex items-center gap-2 rounded-lg border
|
|
647
|
+
<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">
|
|
628
648
|
<ImportLeftArrowFolderIcon className="h-4 w-4" />
|
|
629
649
|
Batch Import
|
|
630
650
|
</button>
|
|
631
|
-
<button className="flex items-center gap-2 rounded-lg border
|
|
651
|
+
<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">
|
|
632
652
|
<ImportLeftArrowFolderIcon className="h-4 w-4" />
|
|
633
653
|
Browse Folders
|
|
634
654
|
</button>
|
|
635
655
|
</div>
|
|
636
|
-
<div className="rounded-lg
|
|
637
|
-
<pre className="overflow-x-auto text-sm
|
|
656
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
657
|
+
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
638
658
|
{`// Primary import button
|
|
639
659
|
<button className="flex items-center gap-2 bg-indigo-500/20 border border-indigo-500/30 px-4 py-2 rounded-lg">
|
|
640
660
|
<ImportFolderIcon className="h-4 w-4" />
|
|
@@ -653,11 +673,11 @@ function ImportButton() {
|
|
|
653
673
|
|
|
654
674
|
{/* Sidebar Navigation */}
|
|
655
675
|
<div className="!space-y-4">
|
|
656
|
-
<h3 className="text-lg font-semibold
|
|
676
|
+
<h3 className="text-fm-icon-info! text-lg font-semibold">
|
|
657
677
|
Sidebar Navigation
|
|
658
678
|
</h3>
|
|
659
679
|
<div className="!space-y-4">
|
|
660
|
-
<div className="max-w-xs rounded-lg border
|
|
680
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary max-w-xs rounded-lg border p-3">
|
|
661
681
|
{[
|
|
662
682
|
{ name: "All Files", icon: "📄", active: false },
|
|
663
683
|
{
|
|
@@ -689,13 +709,13 @@ function ImportButton() {
|
|
|
689
709
|
)}
|
|
690
710
|
<span className="flex-1 text-sm">{item.name}</span>
|
|
691
711
|
{item.active && (
|
|
692
|
-
<div className="h-2 w-2 rounded-full
|
|
712
|
+
<div className="bg-fm-icon-info h-2 w-2 rounded-full"></div>
|
|
693
713
|
)}
|
|
694
714
|
</div>
|
|
695
715
|
))}
|
|
696
716
|
</div>
|
|
697
|
-
<div className="rounded-lg
|
|
698
|
-
<pre className="overflow-x-auto text-sm
|
|
717
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
718
|
+
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
699
719
|
{`// Navigation item
|
|
700
720
|
<div className="flex items-center gap-3 p-2 rounded bg-indigo-500/20 text-indigo-200 cursor-pointer">
|
|
701
721
|
<ImportFolderIcon className="h-4 w-4 text-indigo-400" />
|
|
@@ -711,44 +731,44 @@ function ImportButton() {
|
|
|
711
731
|
|
|
712
732
|
{/* Interactive States And Animations */}
|
|
713
733
|
<div className="!space-y-8">
|
|
714
|
-
<h2 className="text-center text-3xl font-bold
|
|
734
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
715
735
|
Interactive States & Animations
|
|
716
736
|
</h2>
|
|
717
737
|
<div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
|
|
718
738
|
<div className="!space-y-4">
|
|
719
|
-
<h3 className="text-lg font-semibold
|
|
739
|
+
<h3 className="text-fm-icon-info! text-lg font-semibold">
|
|
720
740
|
Hover & Animation Effects
|
|
721
741
|
</h3>
|
|
722
|
-
<div className="!space-y-4 rounded-lg border
|
|
742
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
|
|
723
743
|
<div className="flex items-center gap-4">
|
|
724
|
-
<ImportLeftArrowFolderIcon className="h-6 w-6
|
|
744
|
+
<ImportLeftArrowFolderIcon className="text-fm-tertiary hover:text-fm-icon-info h-6 w-6 transition-colors" />
|
|
725
745
|
<div>
|
|
726
|
-
<div className="text-sm font-medium
|
|
746
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
727
747
|
Color Change
|
|
728
748
|
</div>
|
|
729
|
-
<div className="text-
|
|
730
|
-
hover:text-
|
|
749
|
+
<div className="text-fm-tertiary text-xs">
|
|
750
|
+
hover:text-fm-icon-info
|
|
731
751
|
</div>
|
|
732
752
|
</div>
|
|
733
753
|
</div>
|
|
734
754
|
<div className="flex items-center gap-4">
|
|
735
|
-
<ImportLeftArrowFolderIcon className="h-6 w-6
|
|
755
|
+
<ImportLeftArrowFolderIcon className="text-fm-icon-active h-6 w-6 transition-transform hover:scale-110" />
|
|
736
756
|
<div>
|
|
737
|
-
<div className="text-sm font-medium
|
|
757
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
738
758
|
Scale Up
|
|
739
759
|
</div>
|
|
740
|
-
<div className="text-
|
|
760
|
+
<div className="text-fm-tertiary text-xs">
|
|
741
761
|
hover:scale-110
|
|
742
762
|
</div>
|
|
743
763
|
</div>
|
|
744
764
|
</div>
|
|
745
765
|
<div className="flex items-center gap-4">
|
|
746
|
-
<ImportLeftArrowFolderIcon className="h-6 w-6 animate-pulse
|
|
766
|
+
<ImportLeftArrowFolderIcon className="text-fm-icon-info h-6 w-6 animate-pulse" />
|
|
747
767
|
<div>
|
|
748
|
-
<div className="text-sm font-medium
|
|
768
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
749
769
|
Processing
|
|
750
770
|
</div>
|
|
751
|
-
<div className="text-
|
|
771
|
+
<div className="text-fm-tertiary text-xs">
|
|
752
772
|
animate-pulse
|
|
753
773
|
</div>
|
|
754
774
|
</div>
|
|
@@ -758,25 +778,25 @@ function ImportButton() {
|
|
|
758
778
|
className="rounded p-2 focus:ring-2 focus:ring-indigo-400 focus:outline-none"
|
|
759
779
|
tabIndex={0}
|
|
760
780
|
>
|
|
761
|
-
<ImportLeftArrowFolderIcon className="h-6 w-6
|
|
781
|
+
<ImportLeftArrowFolderIcon className="text-fm-icon-info h-6 w-6" />
|
|
762
782
|
</div>
|
|
763
783
|
<div>
|
|
764
|
-
<div className="text-sm font-medium
|
|
784
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
765
785
|
Focus Ring
|
|
766
786
|
</div>
|
|
767
|
-
<div className="text-
|
|
787
|
+
<div className="text-fm-tertiary text-xs">
|
|
768
788
|
focus:ring-2
|
|
769
789
|
</div>
|
|
770
790
|
</div>
|
|
771
791
|
</div>
|
|
772
792
|
<div className="flex items-center gap-4">
|
|
773
|
-
<ImportLeftArrowFolderIcon className="animate-document-slide h-6 w-6
|
|
793
|
+
<ImportLeftArrowFolderIcon className="animate-document-slide text-fm-icon-negative h-6 w-6" />
|
|
774
794
|
|
|
775
795
|
<div>
|
|
776
|
-
<div className="text-sm font-medium
|
|
796
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
777
797
|
Document Slide
|
|
778
798
|
</div>
|
|
779
|
-
<div className="text-
|
|
799
|
+
<div className="text-fm-tertiary text-xs">
|
|
780
800
|
animate-document-slide
|
|
781
801
|
</div>
|
|
782
802
|
</div>
|
|
@@ -785,11 +805,11 @@ function ImportButton() {
|
|
|
785
805
|
</div>
|
|
786
806
|
|
|
787
807
|
<div className="!space-y-4">
|
|
788
|
-
<h3 className="text-lg font-semibold
|
|
808
|
+
<h3 className="text-fm-icon-info! text-lg font-semibold">
|
|
789
809
|
State Examples
|
|
790
810
|
</h3>
|
|
791
|
-
<div className="rounded-lg
|
|
792
|
-
<pre className="overflow-x-auto text-sm
|
|
811
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
812
|
+
<pre className="text-fm-icon-info! overflow-x-auto text-sm">
|
|
793
813
|
{`// Hover effects
|
|
794
814
|
<ImportLeftArrowFolderIcon className="h-6 w-6 text-white/60 hover:text-green-400 transition-colors " />
|
|
795
815
|
|
|
@@ -821,65 +841,65 @@ function ImportButton() {
|
|
|
821
841
|
|
|
822
842
|
{/* Accessibility */}
|
|
823
843
|
<div className="!space-y-8">
|
|
824
|
-
<h2 className="text-center text-3xl font-bold
|
|
844
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
825
845
|
Accessibility Features
|
|
826
846
|
</h2>
|
|
827
847
|
|
|
828
848
|
<div className="grid grid-cols-1 gap-8 md:grid-cols-2">
|
|
829
|
-
<div className="!space-y-4 rounded-lg border
|
|
830
|
-
<h3 className="text-lg font-semibold
|
|
849
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
|
|
850
|
+
<h3 className="text-fm-icon-positive! text-lg font-semibold">
|
|
831
851
|
✅ Built-in Features
|
|
832
852
|
</h3>
|
|
833
|
-
<ul className="!space-y-2 text-sm
|
|
834
|
-
<li className="
|
|
853
|
+
<ul className="text-fm-secondary! !space-y-2 text-sm">
|
|
854
|
+
<li className="text-fm-secondary!">
|
|
835
855
|
Uses Radix UI AccessibleIcon wrapper
|
|
836
856
|
</li>
|
|
837
|
-
<li className="
|
|
857
|
+
<li className="text-fm-secondary!">
|
|
838
858
|
Provides screen reader label "Import Left Arrow folder
|
|
839
859
|
icon"
|
|
840
860
|
</li>
|
|
841
|
-
<li className="
|
|
861
|
+
<li className="text-fm-secondary!">
|
|
842
862
|
Maintains proper color contrast ratios
|
|
843
863
|
</li>
|
|
844
|
-
<li className="
|
|
864
|
+
<li className="text-fm-secondary!">
|
|
845
865
|
Scales with user's font size preferences
|
|
846
866
|
</li>
|
|
847
867
|
</ul>
|
|
848
868
|
</div>
|
|
849
869
|
|
|
850
|
-
<div className="!space-y-4 rounded-lg border
|
|
851
|
-
<h3 className="text-lg font-semibold
|
|
870
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
|
|
871
|
+
<h3 className="text-fm-icon-info! text-lg font-semibold">
|
|
852
872
|
💡 Best Practices
|
|
853
873
|
</h3>
|
|
854
|
-
<ul className="!space-y-2 text-sm
|
|
855
|
-
<li className="
|
|
874
|
+
<ul className="text-fm-secondary !space-y-2 text-sm">
|
|
875
|
+
<li className="text-fm-secondary!">
|
|
856
876
|
Always provide descriptive labels for import-related
|
|
857
877
|
actions
|
|
858
878
|
</li>
|
|
859
|
-
<li className="
|
|
879
|
+
<li className="text-fm-secondary!">
|
|
860
880
|
Use consistent placement in upload or import interfaces
|
|
861
881
|
</li>
|
|
862
|
-
<li className="
|
|
882
|
+
<li className="text-fm-secondary!">
|
|
863
883
|
Ensure sufficient click/touch target sizes
|
|
864
884
|
</li>
|
|
865
|
-
<li className="
|
|
885
|
+
<li className="text-fm-secondary!">
|
|
866
886
|
Add focus states for keyboard navigation
|
|
867
887
|
</li>
|
|
868
|
-
<li className="
|
|
888
|
+
<li className="text-fm-secondary!">
|
|
869
889
|
Respect reduced motion preferences for import animations
|
|
870
890
|
</li>
|
|
871
891
|
</ul>
|
|
872
892
|
</div>
|
|
873
893
|
</div>
|
|
874
894
|
|
|
875
|
-
<div className="rounded-lg border
|
|
876
|
-
<h3 className="mb-4 text-lg font-semibold
|
|
895
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
|
|
896
|
+
<h3 className="text-fm-secondary-600! mb-4 text-lg font-semibold">
|
|
877
897
|
Custom Accessibility Implementation
|
|
878
898
|
</h3>
|
|
879
899
|
<div className="grid grid-cols-1 gap-6 lg:grid-cols-2">
|
|
880
900
|
{/* Code Example Block */}
|
|
881
|
-
<div className="rounded-lg
|
|
882
|
-
<pre className="overflow-x-auto text-sm
|
|
901
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
902
|
+
<pre className="text-fm-icon-info! overflow-x-auto text-sm">{`// Import button with ARIA
|
|
883
903
|
<button
|
|
884
904
|
aria-label="Import files into folder"
|
|
885
905
|
aria-pressed={importing}
|
|
@@ -912,7 +932,7 @@ function ImportButton() {
|
|
|
912
932
|
|
|
913
933
|
{/* Accessibility Note */}
|
|
914
934
|
<div className="!space-y-4">
|
|
915
|
-
<p className="text-
|
|
935
|
+
<p className="text-fm-secondary! text-sm">
|
|
916
936
|
When using <code>ImportLeftArrowFolderIcon</code> in
|
|
917
937
|
upload or file action buttons, ensure ARIA labels
|
|
918
938
|
clearly describe the behavior. Use semantic grouping
|
|
@@ -920,8 +940,8 @@ function ImportButton() {
|
|
|
920
940
|
<code>legend</code> for complex import settings to
|
|
921
941
|
assist screen readers.
|
|
922
942
|
</p>
|
|
923
|
-
<div className="
|
|
924
|
-
<div className="flex items-center gap-2 text-sm
|
|
943
|
+
<div className="border-fm-icon-info/20 bg-fm-icon-info/10 rounded-lg border p-4">
|
|
944
|
+
<div className="text-fm-icon-info flex items-center gap-2 text-sm">
|
|
925
945
|
<ImportLeftArrowFolderIcon className="h-4 w-4" />
|
|
926
946
|
<span>
|
|
927
947
|
Use <code>aria-pressed</code> or{" "}
|
|
@@ -938,52 +958,60 @@ function ImportButton() {
|
|
|
938
958
|
|
|
939
959
|
{/* Related Icons */}
|
|
940
960
|
<div className="!space-y-8">
|
|
941
|
-
<h2 className="text-center text-3xl font-bold
|
|
961
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
942
962
|
Related Icons
|
|
943
963
|
</h2>
|
|
944
964
|
<div className="grid grid-cols-2 gap-6 md:grid-cols-4">
|
|
945
|
-
<div className="!space-y-3 rounded-lg border
|
|
946
|
-
<div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg
|
|
965
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
|
|
966
|
+
<div className="bg-fm-icon-info/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
|
|
947
967
|
<span className="text-2xl">🔍</span>
|
|
948
968
|
</div>
|
|
949
969
|
<div>
|
|
950
|
-
<div className="font-medium
|
|
951
|
-
|
|
970
|
+
<div className="text-fm-icon-active font-medium">
|
|
971
|
+
SearchIcon
|
|
972
|
+
</div>
|
|
973
|
+
<div className="text-fm-tertiary text-xs">
|
|
952
974
|
General search
|
|
953
975
|
</div>
|
|
954
976
|
</div>
|
|
955
977
|
</div>
|
|
956
|
-
<div className="!space-y-3 rounded-lg border
|
|
957
|
-
<div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg
|
|
978
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
|
|
979
|
+
<div className="bg-fm-secondary-500/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
|
|
958
980
|
<span className="text-2xl">📈</span>
|
|
959
981
|
</div>
|
|
960
982
|
<div>
|
|
961
|
-
<div className="font-medium
|
|
983
|
+
<div className="text-fm-icon-active font-medium">
|
|
962
984
|
TrendingUpIcon
|
|
963
985
|
</div>
|
|
964
|
-
<div className="text-
|
|
986
|
+
<div className="text-fm-tertiary text-xs">
|
|
965
987
|
Growth metrics
|
|
966
988
|
</div>
|
|
967
989
|
</div>
|
|
968
990
|
</div>
|
|
969
|
-
<div className="!space-y-3 rounded-lg border
|
|
970
|
-
<div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg
|
|
991
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
|
|
992
|
+
<div className="bg-fm-icon-info/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
|
|
971
993
|
<span className="text-2xl">📁</span>
|
|
972
994
|
</div>
|
|
973
995
|
<div>
|
|
974
|
-
<div className="font-medium
|
|
975
|
-
|
|
996
|
+
<div className="text-fm-icon-active font-medium">
|
|
997
|
+
FolderIcon
|
|
998
|
+
</div>
|
|
999
|
+
<div className="text-fm-tertiary text-xs">
|
|
976
1000
|
File Organization
|
|
977
1001
|
</div>
|
|
978
1002
|
</div>
|
|
979
1003
|
</div>
|
|
980
|
-
<div className="!space-y-3 rounded-lg border
|
|
981
|
-
<div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg
|
|
1004
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
|
|
1005
|
+
<div className="bg-fm-icon-positive/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
|
|
982
1006
|
<span className="text-2xl">💾</span>
|
|
983
1007
|
</div>
|
|
984
1008
|
<div>
|
|
985
|
-
<div className="font-medium
|
|
986
|
-
|
|
1009
|
+
<div className="text-fm-icon-active font-medium">
|
|
1010
|
+
SaveIcon
|
|
1011
|
+
</div>
|
|
1012
|
+
<div className="text-fm-tertiary text-xs">
|
|
1013
|
+
Save changes
|
|
1014
|
+
</div>
|
|
987
1015
|
</div>
|
|
988
1016
|
</div>
|
|
989
1017
|
</div>
|
|
@@ -991,15 +1019,15 @@ function ImportButton() {
|
|
|
991
1019
|
</div>
|
|
992
1020
|
|
|
993
1021
|
{/* Footer */}
|
|
994
|
-
<div className="border-
|
|
1022
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary border-t backdrop-blur-xl">
|
|
995
1023
|
<div className="!mx-auto max-w-7xl px-6 py-8">
|
|
996
1024
|
<div className="!space-y-4 text-center">
|
|
997
|
-
<p className="
|
|
1025
|
+
<p className="text-fm-tertiary!">
|
|
998
1026
|
FilterBarRowIcon is part of the Aural UI icon library, built
|
|
999
1027
|
for document search, content discovery, and page navigation
|
|
1000
1028
|
functionality.
|
|
1001
1029
|
</p>
|
|
1002
|
-
<p className="text-
|
|
1030
|
+
<p className="text-fm-placeholder! text-sm">
|
|
1003
1031
|
All icons use Radix UI's AccessibleIcon for screen reader
|
|
1004
1032
|
compatibility and follow WCAG guidelines for search
|
|
1005
1033
|
interfaces.
|
|
@@ -1054,8 +1082,8 @@ const storyParameters = {
|
|
|
1054
1082
|
backgrounds: {
|
|
1055
1083
|
default: "dark",
|
|
1056
1084
|
values: [
|
|
1057
|
-
{ name: "dark", value: "
|
|
1058
|
-
{ name: "darker", value: "
|
|
1085
|
+
{ name: "dark", value: "var(--color-fm-surface-primary)" },
|
|
1086
|
+
{ name: "darker", value: "var(--color-fm-neutral-0)" },
|
|
1059
1087
|
],
|
|
1060
1088
|
},
|
|
1061
1089
|
}
|
|
@@ -1064,12 +1092,12 @@ export const Default: Story = {
|
|
|
1064
1092
|
args: {
|
|
1065
1093
|
width: 24,
|
|
1066
1094
|
height: 24,
|
|
1067
|
-
className: "text-
|
|
1095
|
+
className: "text-fm-icon-info ",
|
|
1068
1096
|
withAccessibility: true,
|
|
1069
1097
|
},
|
|
1070
1098
|
parameters: storyParameters,
|
|
1071
1099
|
render: (args) => (
|
|
1072
|
-
<div className="flex h-32 min-h-dvh items-center justify-center rounded-lg bg-
|
|
1100
|
+
<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">
|
|
1073
1101
|
<ImportLeftArrowFolderIcon {...args} />
|
|
1074
1102
|
</div>
|
|
1075
1103
|
),
|
|
@@ -1086,30 +1114,30 @@ export const SizeVariations: Story = {
|
|
|
1086
1114
|
},
|
|
1087
1115
|
},
|
|
1088
1116
|
render: () => (
|
|
1089
|
-
<div className="flex h-64 min-h-dvh items-center justify-center gap-8 rounded-lg bg-
|
|
1117
|
+
<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">
|
|
1090
1118
|
<div className="text-center">
|
|
1091
|
-
<ImportLeftArrowFolderIcon className="!mx-auto mb-2 h-3 w-3
|
|
1092
|
-
<span className="text-
|
|
1119
|
+
<ImportLeftArrowFolderIcon className="text-fm-icon-info !mx-auto mb-2 h-3 w-3" />
|
|
1120
|
+
<span className="text-fm-tertiary text-xs">12px</span>
|
|
1093
1121
|
</div>
|
|
1094
1122
|
<div className="text-center">
|
|
1095
|
-
<ImportLeftArrowFolderIcon className="!mx-auto mb-2 h-4 w-4
|
|
1096
|
-
<span className="text-
|
|
1123
|
+
<ImportLeftArrowFolderIcon className="text-fm-icon-info !mx-auto mb-2 h-4 w-4" />
|
|
1124
|
+
<span className="text-fm-tertiary text-xs">16px</span>
|
|
1097
1125
|
</div>
|
|
1098
1126
|
<div className="text-center">
|
|
1099
|
-
<ImportLeftArrowFolderIcon className="!mx-auto mb-2 h-5 w-5
|
|
1100
|
-
<span className="text-
|
|
1127
|
+
<ImportLeftArrowFolderIcon className="text-fm-icon-info !mx-auto mb-2 h-5 w-5" />
|
|
1128
|
+
<span className="text-fm-tertiary text-xs">20px</span>
|
|
1101
1129
|
</div>
|
|
1102
1130
|
<div className="text-center">
|
|
1103
|
-
<ImportLeftArrowFolderIcon className="!mx-auto mb-2 h-6 w-6
|
|
1104
|
-
<span className="text-
|
|
1131
|
+
<ImportLeftArrowFolderIcon className="text-fm-icon-info !mx-auto mb-2 h-6 w-6" />
|
|
1132
|
+
<span className="text-fm-tertiary text-xs">24px</span>
|
|
1105
1133
|
</div>
|
|
1106
1134
|
<div className="text-center">
|
|
1107
|
-
<ImportLeftArrowFolderIcon className="!mx-auto mb-2 h-8 w-8
|
|
1108
|
-
<span className="text-
|
|
1135
|
+
<ImportLeftArrowFolderIcon className="text-fm-icon-info !mx-auto mb-2 h-8 w-8" />
|
|
1136
|
+
<span className="text-fm-tertiary text-xs">32px</span>
|
|
1109
1137
|
</div>
|
|
1110
1138
|
<div className="text-center">
|
|
1111
|
-
<ImportLeftArrowFolderIcon className="!mx-auto mb-2 h-12 w-12
|
|
1112
|
-
<span className="text-
|
|
1139
|
+
<ImportLeftArrowFolderIcon className="text-fm-icon-info !mx-auto mb-2 h-12 w-12" />
|
|
1140
|
+
<span className="text-fm-tertiary text-xs">48px</span>
|
|
1113
1141
|
</div>
|
|
1114
1142
|
</div>
|
|
1115
1143
|
),
|
|
@@ -1126,34 +1154,34 @@ export const ColorVariations: Story = {
|
|
|
1126
1154
|
},
|
|
1127
1155
|
},
|
|
1128
1156
|
render: () => (
|
|
1129
|
-
<div className="grid min-h-dvh grid-cols-2 items-center justify-center gap-6 rounded-lg bg-
|
|
1157
|
+
<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">
|
|
1130
1158
|
<div className="text-center">
|
|
1131
|
-
<div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border
|
|
1132
|
-
<ImportLeftArrowFolderIcon className="h-8 w-8
|
|
1159
|
+
<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">
|
|
1160
|
+
<ImportLeftArrowFolderIcon className="text-fm-icon-info h-8 w-8" />
|
|
1133
1161
|
</div>
|
|
1134
|
-
<div className="text-sm font-medium
|
|
1135
|
-
<div className="text-
|
|
1162
|
+
<div className="text-fm-icon-active text-sm font-medium">Primary</div>
|
|
1163
|
+
<div className="text-fm-icon-info text-xs">text-fm-icon-info</div>
|
|
1136
1164
|
</div>
|
|
1137
1165
|
<div className="text-center">
|
|
1138
|
-
<div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border
|
|
1139
|
-
<ImportLeftArrowFolderIcon className="h-8 w-8
|
|
1166
|
+
<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">
|
|
1167
|
+
<ImportLeftArrowFolderIcon className="text-fm-icon-info h-8 w-8" />
|
|
1140
1168
|
</div>
|
|
1141
|
-
<div className="text-sm font-medium
|
|
1142
|
-
<div className="text-
|
|
1169
|
+
<div className="text-fm-icon-active text-sm font-medium">Active</div>
|
|
1170
|
+
<div className="text-fm-icon-info text-xs">text-fm-icon-info</div>
|
|
1143
1171
|
</div>
|
|
1144
1172
|
<div className="text-center">
|
|
1145
|
-
<div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border
|
|
1146
|
-
<ImportLeftArrowFolderIcon className="h-8 w-8
|
|
1173
|
+
<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">
|
|
1174
|
+
<ImportLeftArrowFolderIcon className="text-fm-placeholder h-8 w-8" />
|
|
1147
1175
|
</div>
|
|
1148
|
-
<div className="text-sm font-medium
|
|
1149
|
-
<div className="text-
|
|
1176
|
+
<div className="text-fm-icon-active text-sm font-medium">Disabled</div>
|
|
1177
|
+
<div className="text-fm-placeholder text-xs">text-fm-placeholder</div>
|
|
1150
1178
|
</div>
|
|
1151
1179
|
<div className="text-center">
|
|
1152
|
-
<div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border
|
|
1153
|
-
<ImportLeftArrowFolderIcon className="h-8 w-8
|
|
1180
|
+
<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">
|
|
1181
|
+
<ImportLeftArrowFolderIcon className="text-fm-icon-info h-8 w-8" />
|
|
1154
1182
|
</div>
|
|
1155
|
-
<div className="text-sm font-medium
|
|
1156
|
-
<div className="text-
|
|
1183
|
+
<div className="text-fm-icon-active text-sm font-medium">Info</div>
|
|
1184
|
+
<div className="text-fm-icon-info text-xs">text-fm-icon-info</div>
|
|
1157
1185
|
</div>
|
|
1158
1186
|
</div>
|
|
1159
1187
|
),
|
|
@@ -1170,17 +1198,21 @@ export const UsageExamples: Story = {
|
|
|
1170
1198
|
},
|
|
1171
1199
|
},
|
|
1172
1200
|
render: () => (
|
|
1173
|
-
<div className="min-h-dvh space-y-8 rounded-lg bg-
|
|
1201
|
+
<div className="from-fm-surface-primary to-fm-surface-primary min-h-dvh space-y-8 rounded-lg bg-linear-to-br p-8">
|
|
1174
1202
|
{/* File Import Area */}
|
|
1175
1203
|
<div className="space-y-2">
|
|
1176
|
-
<h3 className="text-sm font-medium
|
|
1177
|
-
|
|
1178
|
-
|
|
1179
|
-
|
|
1180
|
-
<
|
|
1204
|
+
<h3 className="text-fm-icon-active text-sm font-medium">
|
|
1205
|
+
File Import Area
|
|
1206
|
+
</h3>
|
|
1207
|
+
<div className="border-fm-divider-primary bg-fm-surface-secondary hover:border-fm-icon-info/50 hover:bg-fm-icon-info/10 relative rounded-lg border-2 border-dashed p-8 text-center transition-colors">
|
|
1208
|
+
<ImportLeftArrowFolderIcon className="text-fm-placeholder mx-auto h-12 w-12" />
|
|
1209
|
+
<h4 className="text-fm-icon-active mt-4 text-lg font-medium">
|
|
1210
|
+
Import Folder
|
|
1211
|
+
</h4>
|
|
1212
|
+
<p className="text-fm-tertiary mt-2 text-sm">
|
|
1181
1213
|
Drag and drop folders here, or click to browse
|
|
1182
1214
|
</p>
|
|
1183
|
-
<button className="
|
|
1215
|
+
<button className="border-fm-icon-info/30 bg-fm-icon-info/15 text-fm-icon-info hover:bg-fm-icon-info/25 mt-4 rounded-lg border px-4 py-2 transition hover:cursor-pointer">
|
|
1184
1216
|
Browse Folders
|
|
1185
1217
|
</button>
|
|
1186
1218
|
</div>
|
|
@@ -1188,8 +1220,10 @@ export const UsageExamples: Story = {
|
|
|
1188
1220
|
|
|
1189
1221
|
{/* Import Status */}
|
|
1190
1222
|
<div className="space-y-2">
|
|
1191
|
-
<h3 className="text-sm font-medium
|
|
1192
|
-
|
|
1223
|
+
<h3 className="text-fm-icon-active text-sm font-medium">
|
|
1224
|
+
Import Status
|
|
1225
|
+
</h3>
|
|
1226
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary space-y-3 rounded-lg border p-4">
|
|
1193
1227
|
{[
|
|
1194
1228
|
{ name: "Documents", status: "completed", count: 24 },
|
|
1195
1229
|
{ name: "Images", status: "processing", count: 56 },
|
|
@@ -1197,7 +1231,7 @@ export const UsageExamples: Story = {
|
|
|
1197
1231
|
].map((folder, index) => (
|
|
1198
1232
|
<div
|
|
1199
1233
|
key={index}
|
|
1200
|
-
className="flex items-center gap-3 rounded border
|
|
1234
|
+
className="border-fm-divider-secondary bg-fm-surface-secondary hover:bg-fm-surface-secondary flex items-center gap-3 rounded border p-3 transition"
|
|
1201
1235
|
>
|
|
1202
1236
|
<ImportLeftArrowFolderIcon
|
|
1203
1237
|
className={`h-5 w-5 ${
|
|
@@ -1209,10 +1243,10 @@ export const UsageExamples: Story = {
|
|
|
1209
1243
|
}`}
|
|
1210
1244
|
/>
|
|
1211
1245
|
<div className="flex-1">
|
|
1212
|
-
<div className="text-sm font-medium
|
|
1246
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
1213
1247
|
{folder.name}
|
|
1214
1248
|
</div>
|
|
1215
|
-
<div className="text-
|
|
1249
|
+
<div className="text-fm-tertiary text-xs">
|
|
1216
1250
|
{folder.count} files
|
|
1217
1251
|
</div>
|
|
1218
1252
|
</div>
|
|
@@ -1234,21 +1268,23 @@ export const UsageExamples: Story = {
|
|
|
1234
1268
|
|
|
1235
1269
|
{/* Button Integration */}
|
|
1236
1270
|
<div className="space-y-2">
|
|
1237
|
-
<h3 className="text-sm font-medium
|
|
1271
|
+
<h3 className="text-fm-icon-active text-sm font-medium">
|
|
1272
|
+
Button Integration
|
|
1273
|
+
</h3>
|
|
1238
1274
|
<div className="flex gap-4">
|
|
1239
|
-
<button className="flex items-center gap-2 rounded-lg border
|
|
1275
|
+
<button className="border-fm-icon-info/30 bg-fm-icon-info/15 text-fm-icon-info hover:bg-fm-icon-info/25 flex items-center gap-2 rounded-lg border px-4 py-2 transition hover:cursor-pointer">
|
|
1240
1276
|
<ImportLeftArrowFolderIcon className="h-4 w-4" />
|
|
1241
1277
|
Import Folder
|
|
1242
1278
|
</button>
|
|
1243
|
-
<button className="flex items-center gap-2 rounded-lg border
|
|
1279
|
+
<button className="border-fm-icon-info/30 bg-fm-icon-info/15 text-fm-icon-info hover:bg-fm-icon-info/25 flex items-center gap-2 rounded-lg border px-4 py-2 transition hover:cursor-pointer">
|
|
1244
1280
|
<ImportLeftArrowFolderIcon className="h-4 w-4" />
|
|
1245
1281
|
Batch Import
|
|
1246
1282
|
</button>
|
|
1247
|
-
<button className="flex items-center gap-2 rounded-lg border
|
|
1283
|
+
<button className="border-fm-icon-warning/30 bg-fm-icon-warning/15 text-fm-icon-warning hover:bg-fm-icon-warning/25 flex items-center gap-2 rounded-lg border px-4 py-2 transition hover:cursor-pointer">
|
|
1248
1284
|
<ImportLeftArrowFolderIcon className="h-4 w-4" />
|
|
1249
1285
|
Browse Folders
|
|
1250
1286
|
</button>
|
|
1251
|
-
<button className="flex items-center gap-2 rounded-lg border
|
|
1287
|
+
<button className="border-fm-icon-negative/30 bg-fm-icon-negative/15 text-fm-icon-negative hover:bg-fm-icon-negative/25 flex items-center gap-2 rounded-lg border px-4 py-2 transition hover:cursor-pointer">
|
|
1252
1288
|
<ImportLeftArrowFolderIcon className="h-4 w-4" />
|
|
1253
1289
|
Clear All
|
|
1254
1290
|
</button>
|
|
@@ -1269,37 +1305,37 @@ export const InteractiveStates: Story = {
|
|
|
1269
1305
|
},
|
|
1270
1306
|
},
|
|
1271
1307
|
render: () => (
|
|
1272
|
-
<div className="min-h-dvh space-y-8 rounded-lg bg-
|
|
1308
|
+
<div className="from-fm-surface-primary to-fm-surface-secondary min-h-dvh space-y-8 rounded-lg bg-linear-to-br p-8">
|
|
1273
1309
|
<div className="space-y-4">
|
|
1274
|
-
<h3 className="text-sm font-medium
|
|
1310
|
+
<h3 className="text-fm-secondary text-sm font-medium">
|
|
1275
1311
|
Interactive States & Motion
|
|
1276
1312
|
</h3>
|
|
1277
1313
|
<div className="flex gap-8">
|
|
1278
1314
|
{/* Hover color transition */}
|
|
1279
1315
|
<div className="flex flex-col items-center gap-2">
|
|
1280
|
-
<ImportLeftArrowFolderIcon className="h-8 w-8
|
|
1281
|
-
<span className="text-
|
|
1316
|
+
<ImportLeftArrowFolderIcon className="text-fm-tertiary hover:text-fm-icon-info h-8 w-8 transition-colors" />
|
|
1317
|
+
<span className="text-fm-tertiary text-xs">Hover to Highlight</span>
|
|
1282
1318
|
</div>
|
|
1283
1319
|
|
|
1284
1320
|
{/* Hover scale up */}
|
|
1285
1321
|
<div className="flex flex-col items-center gap-2">
|
|
1286
|
-
<ImportLeftArrowFolderIcon className="h-8 w-8
|
|
1287
|
-
<span className="text-
|
|
1322
|
+
<ImportLeftArrowFolderIcon className="text-fm-icon-active h-8 w-8 transition-transform duration-200 hover:scale-110" />
|
|
1323
|
+
<span className="text-fm-tertiary text-xs">Scale on Hover</span>
|
|
1288
1324
|
</div>
|
|
1289
1325
|
|
|
1290
1326
|
{/* Pulse animation to show sync */}
|
|
1291
1327
|
<div className="flex flex-col items-center gap-2">
|
|
1292
|
-
<ImportLeftArrowFolderIcon className="h-8 w-8 animate-pulse
|
|
1293
|
-
<span className="text-
|
|
1328
|
+
<ImportLeftArrowFolderIcon className="text-fm-icon-positive h-8 w-8 animate-pulse" />
|
|
1329
|
+
<span className="text-fm-tertiary text-xs">Sync Pulse</span>
|
|
1294
1330
|
</div>
|
|
1295
1331
|
<div className="flex flex-col items-center gap-2">
|
|
1296
1332
|
<div
|
|
1297
1333
|
className="rounded p-1 focus:ring-2 focus:ring-green-500 focus:outline-none"
|
|
1298
1334
|
tabIndex={0}
|
|
1299
1335
|
>
|
|
1300
|
-
<ImportLeftArrowFolderIcon className="h-8 w-8
|
|
1336
|
+
<ImportLeftArrowFolderIcon className="text-fm-icon-active h-8 w-8" />
|
|
1301
1337
|
</div>
|
|
1302
|
-
<span className="text-
|
|
1338
|
+
<span className="text-fm-tertiary text-xs">Focus Ring</span>
|
|
1303
1339
|
</div>
|
|
1304
1340
|
</div>
|
|
1305
1341
|
</div>
|
|
@@ -1320,12 +1356,12 @@ export const Playground: Story = {
|
|
|
1320
1356
|
args: {
|
|
1321
1357
|
width: 32,
|
|
1322
1358
|
height: 32,
|
|
1323
|
-
className: "text-
|
|
1359
|
+
className: "text-fm-icon-info ",
|
|
1324
1360
|
strokeLinecap: "square",
|
|
1325
1361
|
},
|
|
1326
1362
|
render: (args) => (
|
|
1327
|
-
<div className="flex h-64 min-h-dvh items-center justify-center rounded-lg bg-
|
|
1328
|
-
<div className="rounded-lg border
|
|
1363
|
+
<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">
|
|
1364
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-8">
|
|
1329
1365
|
<ImportLeftArrowFolderIcon {...args} />
|
|
1330
1366
|
</div>
|
|
1331
1367
|
</div>
|