aural-ui 4.0.1 → 4.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -1
- package/dist/components/aspect-ratio/AspectRatio.stories.tsx +290 -1228
- package/dist/components/avatar/Avatar.stories.tsx +219 -235
- package/dist/components/badge/Badge.stories.tsx +379 -116
- package/dist/components/banner/Banner.stories.tsx +445 -391
- package/dist/components/breadcrumb/Breadcrumb.stories.tsx +453 -199
- package/dist/components/button/Button.stories.tsx +585 -230
- package/dist/components/card/Card.stories.tsx +619 -301
- package/dist/components/char-count/CharCount.stories.tsx +350 -248
- package/dist/components/checkbox/Checkbox.stories.tsx +309 -167
- package/dist/components/chip/Chip.stories.tsx +362 -168
- package/dist/components/circular-loader/CircularLoader.stories.tsx +221 -636
- package/dist/components/clamp-lines/ClampLines.stories.tsx +246 -117
- package/dist/components/collapsible/Collapsible.stories.tsx +391 -252
- package/dist/components/command/Command.stories.tsx +530 -867
- package/dist/components/dialog/Dialog.stories.tsx +501 -950
- package/dist/components/divider/Divider.stories.tsx +264 -527
- package/dist/components/dot-loader/DotLoader.stories.tsx +256 -257
- package/dist/components/drawer/Drawer.stories.tsx +659 -1023
- package/dist/components/dropdown/Dropdown.stories.tsx +643 -1028
- package/dist/components/form/Form.stories.tsx +560 -274
- package/dist/components/helper-text/HelperText.stories.tsx +199 -200
- package/dist/components/hover-card/HoverCard.stories.tsx +318 -1254
- package/dist/components/icon-button/IconButton.stories.tsx +837 -194
- package/dist/components/if-else/if-else.stories.tsx +370 -83
- package/dist/components/input/Input.stories.tsx +436 -368
- package/dist/components/label/Label.stories.tsx +156 -154
- package/dist/components/list/List.stories.tsx +484 -835
- package/dist/components/marquee/Marquee.stories.tsx +356 -712
- package/dist/components/otp-inputs/OtpInputs.stories.tsx +352 -422
- package/dist/components/overlay/Overlay.stories.tsx +452 -824
- package/dist/components/pagination/Pagination.stories.tsx +721 -210
- package/dist/components/popover/Popover.stories.tsx +481 -896
- package/dist/components/radio/Radio.stories.tsx +432 -124
- package/dist/components/resizable/Resizable.stories.tsx +495 -799
- package/dist/components/scroll-area/ScrollArea.stories.tsx +383 -1059
- package/dist/components/search/Search.stories.tsx +312 -595
- package/dist/components/select/Select.stories.tsx +684 -789
- package/dist/components/sheet/Sheet.stories.tsx +671 -950
- package/dist/components/skelton/Skelton.stories.tsx +230 -764
- package/dist/components/slider/Slider.stories.tsx +383 -760
- package/dist/components/stepper/Stepper.stories.tsx +371 -514
- package/dist/components/switch/Switch.stories.tsx +461 -208
- package/dist/components/switch-case/SwitchCase.stories.tsx +367 -188
- package/dist/components/table/Table.stories.tsx +770 -916
- package/dist/components/tabs/Tabs.stories.tsx +458 -1455
- package/dist/components/tag/Tag.stories.tsx +714 -542
- package/dist/components/textarea/TextArea.stories.tsx +621 -562
- package/dist/components/thumbnail-tags/ThumbnailTags.stories.tsx +228 -154
- package/dist/components/toast/Toast.stories.tsx +452 -1339
- package/dist/components/toggle/Toggle.stories.tsx +488 -931
- package/dist/components/tooltip/Tooltip.stories.tsx +344 -1388
- package/dist/components/typography/Typography.stories.tsx +406 -89
- package/dist/hooks/use-change-state/UseChangeState.stories.tsx +309 -606
- package/dist/hooks/use-previous/UsePrevious.stories.tsx +367 -917
- package/dist/hooks/use-standalone-pagination/UseStandalonePagination.stories.tsx +639 -867
- package/dist/icons/Icons.stories.tsx +0 -12
- package/dist/icons/ai-avatar-icon/AiAvatarIcon.stories.tsx +223 -1060
- package/dist/icons/alert-icon/AlertIcon.stories.tsx +106 -968
- package/dist/icons/all-icons.tsx +37 -16
- package/dist/icons/angle-down-icon/AngleDownIcon.stories.tsx +137 -1010
- package/dist/icons/apple-logo-icon/AppleLogoIcon.stories.tsx +145 -935
- package/dist/icons/arrow-box-left-icon/ArrowBoxLeftIcon.stories.tsx +132 -1046
- package/dist/icons/arrow-corner-up-left-icon/ArrowCornerUpLeftIcon.stories.tsx +134 -986
- package/dist/icons/arrow-corner-up-right-icon/ArrowCornerUpRightIcon.stories.tsx +135 -1028
- package/dist/icons/arrow-left-icon/ArrowLeftIcon.stories.tsx +133 -971
- package/dist/icons/arrow-right-icon/ArrowRightIcon.stories.tsx +145 -1123
- package/dist/icons/arrow-right-up-icon/ArrowRightUpIcon.stories.tsx +143 -1252
- package/dist/icons/art-board-icon/ArtBoardIcon.stories.tsx +123 -632
- package/dist/icons/audio-bar-icon/AudioBarIcon.stories.tsx +141 -1223
- package/dist/icons/backward-ten-seconds-icon/BackwardTenSecondsIcon.stories.tsx +164 -1018
- package/dist/icons/bubble-check-icon/BubbleCheckIcon.stories.tsx +121 -1236
- package/dist/icons/bubble-crossed-icon/BubbleCrossedIcon.stories.tsx +121 -1213
- package/dist/icons/bubble-sparkle-icon/BubbleSparkleIcon.stories.tsx +116 -893
- package/dist/icons/camera-icon/CameraIcon.stories.tsx +109 -1254
- package/dist/icons/capital-a-letter-icon/CapitalALetterIcon.stories.tsx +114 -975
- package/dist/icons/chevron-double-left-icon/ChevronDoubleLeftIcon.stories.tsx +157 -994
- package/dist/icons/chevron-double-right-icon/ChevronDoubleRightIcon.stories.tsx +160 -992
- package/dist/icons/chevron-down-icon/ChevronDownIcon.stories.tsx +140 -970
- package/dist/icons/chevron-left-icon/ChevronLeftIcon.stories.tsx +126 -993
- package/dist/icons/chevron-right-icon/ChevronRightIcon.stories.tsx +144 -987
- package/dist/icons/chevron-up-icon/ChevronUpIcon.stories.tsx +141 -1007
- package/dist/icons/circle-tick-icon/CircleTickIcon.stories.tsx +147 -1187
- package/dist/icons/circular-play-icon/CircularPlayIcon.stories.tsx +110 -476
- package/dist/icons/coin-icon/CoinIcon.stories.tsx +120 -1364
- package/dist/icons/coin-toons-icon/CoinToonsIcon.stories.tsx +113 -1360
- package/dist/icons/column-wide-add-icon/ColumnWideAddIcon.stories.tsx +111 -942
- package/dist/icons/command-icon/CommandIcon.stories.tsx +124 -1087
- package/dist/icons/copy-icon/CopyIcon.stories.tsx +119 -996
- package/dist/icons/cross-circle-icon/CrossCircleIcon.stories.tsx +144 -1046
- package/dist/icons/cross-icon/CrossIcon.stories.tsx +136 -999
- package/dist/icons/download-icon/DownloadIcon.stories.tsx +123 -857
- package/dist/icons/edit-big-icon/EditBigIcon.stories.tsx +121 -1080
- package/dist/icons/email-icon/EmailIcon.stories.tsx +112 -979
- package/dist/icons/expand-icon/ExpandIcon.stories.tsx +109 -1146
- package/dist/icons/eye-close-icon/EyeCloseIcon.stories.tsx +141 -1068
- package/dist/icons/eye-open-icon/EyeOpenIcon.stories.tsx +140 -1081
- package/dist/icons/feature-shine-icon/FeatureShineIcon.stories.tsx +124 -1050
- package/dist/icons/file-chart-icon/FileChartIcon.stories.tsx +123 -1091
- package/dist/icons/file-text-icon/FileTextIcon.stories.tsx +122 -633
- package/dist/icons/filter-bar-row-icon/FilterBarRowIcon.stories.tsx +116 -1087
- package/dist/icons/forward-ten-seconds-icon/ForwardTenSecondsIcon.stories.tsx +166 -1020
- package/dist/icons/git-branch-icon/GitBranchIcon.stories.tsx +112 -1182
- package/dist/icons/git-fork-icon/GitForkIcon.stories.tsx +112 -1155
- package/dist/icons/globe-icon/GlobeIcon.stories.tsx +127 -325
- package/dist/icons/google-logo-icon/GoogleLogoIcon.stories.tsx +142 -985
- package/dist/icons/grip-vertical-icon/GripVerticalIcon.stories.tsx +116 -1217
- package/dist/icons/head-icon/HeadIcon.stories.tsx +108 -953
- package/dist/icons/heart-icon/HeartIcon.stories.tsx +117 -1060
- package/dist/icons/image-avatar-sparkle-icon/ImageAvatarSparkleIcon.stories.tsx +116 -716
- package/dist/icons/image-icon/ImageIcon.stories.tsx +102 -1164
- package/dist/icons/import-folder-icon/ImportFolderIcon.stories.tsx +108 -1233
- package/dist/icons/import-left-arrow-folder-icon/ImportLeftArrowFolderIcon.stories.tsx +133 -1289
- package/dist/icons/indian-flag-icon/IndianFlagIcon.stories.tsx +155 -1012
- package/dist/icons/instagram-icon/InstagramIcon.stories.tsx +158 -1438
- package/dist/icons/layout-column-icon/LayoutColumnIcon.stories.tsx +121 -1011
- package/dist/icons/layout-left-icon/LayoutLeftIcon.stories.tsx +116 -981
- package/dist/icons/layout-right-icon/LayoutRightIcon.stories.tsx +116 -979
- package/dist/icons/light-bulb-simple-icon/LightBulbSimpleIcon.stories.tsx +105 -1252
- package/dist/icons/linked-in-icon/LinkedInIcon.stories.tsx +151 -1554
- package/dist/icons/magic-book-icon/MagicBookIcon.stories.tsx +107 -1227
- package/dist/icons/magic-edit-icon/MagicEditIcon.stories.tsx +116 -707
- package/dist/icons/maintenance-icon/MaintenanceIcon.stories.tsx +119 -1226
- package/dist/icons/message-icon/MessageIcon.stories.tsx +111 -557
- package/dist/icons/minimize-icon/MinimizeIcon.stories.tsx +112 -1198
- package/dist/icons/moon-icon/MoonIcon.stories.tsx +117 -557
- package/dist/icons/move-horizontal-icon/MoveHorizontalIcon.stories.tsx +106 -1235
- package/dist/icons/move-vertical-icon/MoveVerticalIcon.stories.tsx +112 -1185
- package/dist/icons/musical-note-icon/MusicalNoteIcon.stories.tsx +116 -1012
- package/dist/icons/notepad-icon/NotepadIcon.stories.tsx +108 -1137
- package/dist/icons/notes-icon/NotesIcon.stories.tsx +116 -1138
- package/dist/icons/page-search-icon/PageSearchIcon.stories.tsx +106 -1146
- package/dist/icons/page-text-icon/PageTextIcon.stories.tsx +119 -719
- package/dist/icons/paint-roll-icon/PaintRollIcon.stories.tsx +110 -999
- package/dist/icons/paper-plane-icon/PaperPlaneIcon.stories.tsx +109 -912
- package/dist/icons/pause-icon/PauseIcon.stories.tsx +110 -1041
- package/dist/icons/pencil-icon/PencilIcon.stories.tsx +112 -1109
- package/dist/icons/phone-icon/PhoneIcon.stories.tsx +112 -1023
- package/dist/icons/plus-icon/PlusIcon.stories.tsx +103 -1132
- package/dist/icons/pocket-studio-icon/PocketStudioIcon.stories.tsx +104 -870
- package/dist/icons/scroll-down-icon/ScrollDownIcon.stories.tsx +99 -476
- package/dist/icons/search-icon/SearchIcon.stories.tsx +108 -1161
- package/dist/icons/setting-icon/SettingIcon.stories.tsx +104 -1009
- package/dist/icons/share-icon/ShareIcon.stories.tsx +117 -1064
- package/dist/icons/shield-icon/ShieldIcon.stories.tsx +114 -974
- package/dist/icons/site-logo-icon/SiteLogoIcon.stories.tsx +134 -1160
- package/dist/icons/skip-backward-icon/SkipBackwardIcon.stories.tsx +169 -1017
- package/dist/icons/skip-forward-icon/SkipForwardIcon.stories.tsx +161 -1016
- package/dist/icons/sparkles-soft-icon/SparklesSoftIcon.stories.tsx +102 -1001
- package/dist/icons/spinner-gradient-icon/SpinnerGradientIcon.stories.tsx +155 -593
- package/dist/icons/spinner-solid-icon/SpinnerSolidIcon.stories.tsx +155 -608
- package/dist/icons/spinner-solid-neutral-icon/SpinnerSolidINeutralcon.stories.tsx +142 -712
- package/dist/icons/star-icon/StarIcon.stories.tsx +120 -946
- package/dist/icons/store-coin-icon/StoreCoinIcon.stories.tsx +109 -1013
- package/dist/icons/suggestion-icon/SuggestionIcon.stories.tsx +113 -891
- package/dist/icons/sun-icon/SunIcon.stories.tsx +117 -864
- package/dist/icons/text-color-icon/TextColorIcon.stories.tsx +113 -989
- package/dist/icons/text-indicator-icon/TextIndicatorIcon.stories.tsx +120 -1027
- package/dist/icons/threads-icon/ThreadsIcon.stories.tsx +153 -1476
- package/dist/icons/tick-circle-icon/TickCircleIcon.stories.tsx +143 -1187
- package/dist/icons/tick-icon/TickIcon.stories.tsx +142 -1322
- package/dist/icons/trash-icon/TrashIcon.stories.tsx +105 -970
- package/dist/icons/twitter-x-icon/TwitterXIcon.stories.tsx +154 -1457
- package/dist/icons/upload-icon/UploadIcon.stories.tsx +112 -930
- package/dist/icons/vertical-menu-icon/VerticalMenuIcon.stories.tsx +115 -1019
- package/dist/icons/video-play-list-icon/VideoPlaylistIcon.stories.tsx +122 -1092
- package/dist/icons/voice-playing-icon/VoicePlayingIcon.stories.tsx +120 -1401
- package/dist/icons/volume-full-icon/VolumeFullIcon.stories.tsx +107 -1212
- package/dist/icons/volume-half-icon/VolumeHalfIcon.stories.tsx +109 -1122
- package/dist/icons/volume-off-icon/VolumeOffIcon.stories.tsx +112 -1124
- package/dist/icons/warning-icon/WarningIcon.stories.tsx +119 -1083
- package/dist/icons/youtube-icon/YoutubeIcon.stories.tsx +158 -983
- package/dist/index.cjs +90 -90
- package/dist/index.js +90 -90
- package/package.json +8 -3
|
@@ -1,6 +1,21 @@
|
|
|
1
1
|
import React from "react"
|
|
2
2
|
import type { Meta, StoryObj } from "@storybook/react-vite"
|
|
3
3
|
|
|
4
|
+
import { ArrowCornerUpRightIcon } from "src/ui/icons/arrow-corner-up-right-icon"
|
|
5
|
+
import { ArrowLeftIcon } from "src/ui/icons/arrow-left-icon"
|
|
6
|
+
import { ArrowRightIcon } from "src/ui/icons/arrow-right-icon"
|
|
7
|
+
import { ChevronRightIcon } from "src/ui/icons/chevron-right-icon"
|
|
8
|
+
import {
|
|
9
|
+
IconColorVariations,
|
|
10
|
+
IconDefaultCanvas,
|
|
11
|
+
IconDirectionalVariations,
|
|
12
|
+
IconPlaygroundCanvas,
|
|
13
|
+
IconSizeVariations,
|
|
14
|
+
IconUsageCanvas,
|
|
15
|
+
IconUsageSection,
|
|
16
|
+
} from "src/ui/story-spec/icons/icon-story-canvas"
|
|
17
|
+
import { AuralIconDocsPage } from "src/ui/story-spec/icons/icon-story-docs-page"
|
|
18
|
+
|
|
4
19
|
import { ArrowRightUpIcon } from "."
|
|
5
20
|
|
|
6
21
|
const meta: Meta<typeof ArrowRightUpIcon> = {
|
|
@@ -18,1007 +33,78 @@ const meta: Meta<typeof ArrowRightUpIcon> = {
|
|
|
18
33
|
},
|
|
19
34
|
docs: {
|
|
20
35
|
page: () => (
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
{
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
margin: 0 ;
|
|
34
|
-
background: transparent ;
|
|
35
|
-
}
|
|
36
|
-
.docs-story {
|
|
37
|
-
background: transparent ;
|
|
38
|
-
}
|
|
39
|
-
.sbdocs {
|
|
40
|
-
background: transparent ;
|
|
41
|
-
}
|
|
42
|
-
body {
|
|
43
|
-
background: var(--color-fm-surface-primary) ;
|
|
44
|
-
}
|
|
45
|
-
#storybook-docs {
|
|
46
|
-
background: var(--color-fm-surface-primary) ;
|
|
47
|
-
}
|
|
48
|
-
.sbdocs-preview {
|
|
49
|
-
background: transparent ;
|
|
50
|
-
border: none ;
|
|
51
|
-
}
|
|
52
|
-
.sbdocs-h1, .sbdocs-h2, .sbdocs-h3, .sbdocs-h4, .sbdocs-h5, .sbdocs-h6 {
|
|
53
|
-
color: var(--color-fm-icon-active) ;
|
|
54
|
-
}
|
|
55
|
-
.sbdocs-p, .sbdocs-li {
|
|
56
|
-
color: var(--color-fm-secondary) ;
|
|
57
|
-
}
|
|
58
|
-
.sbdocs-code {
|
|
59
|
-
background: var(--color-fm-surface-secondary) ;
|
|
60
|
-
color: var(--color-fm-secondary-500) ;
|
|
61
|
-
border: 1px solid var(--color-fm-divider-secondary) ;
|
|
62
|
-
}
|
|
63
|
-
.sbdocs-pre {
|
|
64
|
-
background: var(--color-fm-surface-secondary) ;
|
|
65
|
-
border: 1px solid var(--color-fm-divider-secondary) ;
|
|
66
|
-
}
|
|
67
|
-
.sbdocs-table {
|
|
68
|
-
background: var(--color-fm-surface-secondary) ;
|
|
69
|
-
border: 1px solid var(--color-fm-divider-secondary) ;
|
|
70
|
-
}
|
|
71
|
-
.sbdocs-table th {
|
|
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
|
-
}
|
|
76
|
-
.sbdocs-table td {
|
|
77
|
-
color: var(--color-fm-secondary) ;
|
|
78
|
-
border-bottom: 1px solid var(--color-fm-divider-tertiary) ;
|
|
79
|
-
}
|
|
80
|
-
`}
|
|
81
|
-
</style>
|
|
82
|
-
|
|
83
|
-
<div className="bg-fm-surface-primary min-h-screen">
|
|
84
|
-
{/* Header */}
|
|
85
|
-
<div className="border-fm-divider-secondary bg-fm-surface-secondary relative overflow-hidden border-b backdrop-blur-xl">
|
|
86
|
-
<div className="from-fm-secondary-500/10 to-fm-icon-info/10 absolute inset-0 bg-linear-to-r via-transparent" />
|
|
87
|
-
<div className="relative !mx-auto max-w-7xl px-6 py-16">
|
|
88
|
-
<div className="!space-y-6 text-center">
|
|
89
|
-
<div className="border-fm-secondary-500/30 from-fm-secondary-500/20 to-fm-secondary-500/20 !mx-auto flex h-24 w-24 items-center justify-center rounded-2xl border bg-linear-to-br">
|
|
90
|
-
<ArrowRightUpIcon className="text-fm-secondary-600 h-12 w-12" />
|
|
91
|
-
</div>
|
|
92
|
-
<h1 className="text-fm-icon-active! text-5xl font-bold">
|
|
93
|
-
ArrowRightUpIcon
|
|
94
|
-
</h1>
|
|
95
|
-
<p className="text-fm-secondary! !mx-auto max-w-3xl text-xl leading-relaxed">
|
|
96
|
-
A diagonal arrow icon indicating external links, expansions,
|
|
97
|
-
and upward navigation. Perfect for external links, opening
|
|
98
|
-
content in new windows, and showing growth or progression.
|
|
99
|
-
</p>
|
|
100
|
-
|
|
101
|
-
{/* Stats */}
|
|
102
|
-
<div className="flex items-center justify-center gap-8 pt-8">
|
|
103
|
-
<div className="text-center">
|
|
104
|
-
<div className="text-fm-secondary-600 text-3xl font-bold">
|
|
105
|
-
External
|
|
106
|
-
</div>
|
|
107
|
-
<div className="text-fm-tertiary text-sm">
|
|
108
|
-
Link indication
|
|
109
|
-
</div>
|
|
110
|
-
</div>
|
|
111
|
-
<div className="bg-fm-divider-primary h-8 w-px" />
|
|
112
|
-
<div className="text-center">
|
|
113
|
-
<div className="text-fm-secondary-600 text-3xl font-bold">
|
|
114
|
-
Growth
|
|
115
|
-
</div>
|
|
116
|
-
<div className="text-fm-tertiary text-sm">
|
|
117
|
-
Upward progression
|
|
118
|
-
</div>
|
|
119
|
-
</div>
|
|
120
|
-
<div className="bg-fm-divider-primary h-8 w-px" />
|
|
121
|
-
<div className="text-center">
|
|
122
|
-
<div className="text-fm-icon-info text-3xl font-bold">
|
|
123
|
-
Expansion
|
|
124
|
-
</div>
|
|
125
|
-
<div className="text-fm-tertiary text-sm">
|
|
126
|
-
Content opening
|
|
127
|
-
</div>
|
|
128
|
-
</div>
|
|
129
|
-
</div>
|
|
130
|
-
</div>
|
|
131
|
-
</div>
|
|
132
|
-
</div>
|
|
133
|
-
|
|
134
|
-
{/* Content */}
|
|
135
|
-
<div className="!mx-auto max-w-7xl !space-y-16 px-6 py-12">
|
|
136
|
-
{/* Quick Usage */}
|
|
137
|
-
<div className="!space-y-8">
|
|
138
|
-
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
139
|
-
Quick Start
|
|
140
|
-
</h2>
|
|
141
|
-
<div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
|
|
142
|
-
<div className="!space-y-4">
|
|
143
|
-
<h3 className="text-fm-secondary-600! text-xl font-semibold">
|
|
144
|
-
Basic Usage
|
|
145
|
-
</h3>
|
|
146
|
-
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
147
|
-
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
148
|
-
{`import { ArrowRightUpIcon } from "@icons/arrow-right-up-icon"
|
|
36
|
+
<AuralIconDocsPage
|
|
37
|
+
accentToken="info"
|
|
38
|
+
features={[
|
|
39
|
+
{
|
|
40
|
+
title: "External Link",
|
|
41
|
+
description: "Signals navigation away",
|
|
42
|
+
},
|
|
43
|
+
{ title: "currentColor", description: "Responds to text tokens" },
|
|
44
|
+
{ title: "Accessible", description: "ARIA-ready by default" },
|
|
45
|
+
]}
|
|
46
|
+
quickStart={{
|
|
47
|
+
codeExample: `import { ArrowRightUpIcon } from "src/ui/icons/arrow-right-up-icon"
|
|
149
48
|
|
|
150
49
|
function ExternalLink() {
|
|
151
50
|
return (
|
|
152
|
-
<a href="#" className="flex items-center gap-
|
|
153
|
-
|
|
154
|
-
<ArrowRightUpIcon className="h-
|
|
51
|
+
<a href="#" className="flex items-center gap-1" target="_blank">
|
|
52
|
+
View website
|
|
53
|
+
<ArrowRightUpIcon className="h-3.5 w-3.5 text-fm-icon-info" />
|
|
155
54
|
</a>
|
|
156
55
|
)
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
<th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
|
|
198
|
-
Type
|
|
199
|
-
</th>
|
|
200
|
-
<th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
|
|
201
|
-
Default
|
|
202
|
-
</th>
|
|
203
|
-
<th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
|
|
204
|
-
Description
|
|
205
|
-
</th>
|
|
206
|
-
</tr>
|
|
207
|
-
</thead>
|
|
208
|
-
<tbody>
|
|
209
|
-
{" "}
|
|
210
|
-
<tr className="bg-fm-surface-secondary!">
|
|
211
|
-
<td className="text-fm-icon-info! px-6 py-4 font-mono text-sm">
|
|
212
|
-
withAccessibility
|
|
213
|
-
</td>
|
|
214
|
-
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
215
|
-
boolean
|
|
216
|
-
</td>
|
|
217
|
-
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
218
|
-
true
|
|
219
|
-
</td>
|
|
220
|
-
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
221
|
-
Whether to wrap the icon with accessibility feature
|
|
222
|
-
</td>
|
|
223
|
-
</tr>
|
|
224
|
-
<tr className="border-fm-divider-tertiary bg-fm-surface-secondary! border-b">
|
|
225
|
-
<td className="text-fm-secondary-600! px-6 py-4 font-mono text-sm">
|
|
226
|
-
height
|
|
227
|
-
</td>
|
|
228
|
-
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
229
|
-
number | string
|
|
230
|
-
</td>
|
|
231
|
-
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
232
|
-
24
|
|
233
|
-
</td>
|
|
234
|
-
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
235
|
-
Height of the icon in pixels
|
|
236
|
-
</td>
|
|
237
|
-
</tr>
|
|
238
|
-
<tr className="border-fm-divider-tertiary border-b">
|
|
239
|
-
<td className="text-fm-secondary-600! px-6 py-4 font-mono text-sm">
|
|
240
|
-
color
|
|
241
|
-
</td>
|
|
242
|
-
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
243
|
-
string
|
|
244
|
-
</td>
|
|
245
|
-
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
246
|
-
currentColor
|
|
247
|
-
</td>
|
|
248
|
-
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
249
|
-
Color of the icon
|
|
250
|
-
</td>
|
|
251
|
-
</tr>
|
|
252
|
-
<tr className="border-fm-divider-tertiary bg-fm-surface-secondary! border-b">
|
|
253
|
-
<td className="text-fm-secondary-600! px-6 py-4 font-mono text-sm">
|
|
254
|
-
className
|
|
255
|
-
</td>
|
|
256
|
-
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
257
|
-
string
|
|
258
|
-
</td>
|
|
259
|
-
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
260
|
-
-
|
|
261
|
-
</td>
|
|
262
|
-
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
263
|
-
CSS classes for styling
|
|
264
|
-
</td>
|
|
265
|
-
</tr>
|
|
266
|
-
<tr className="bg-fm-surface-secondary!">
|
|
267
|
-
<td className="text-fm-secondary-600! px-6 py-4 font-mono text-sm">
|
|
268
|
-
...svgProps
|
|
269
|
-
</td>
|
|
270
|
-
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
271
|
-
SVGProps
|
|
272
|
-
</td>
|
|
273
|
-
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
274
|
-
-
|
|
275
|
-
</td>
|
|
276
|
-
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
277
|
-
All standard SVG element props
|
|
278
|
-
</td>
|
|
279
|
-
</tr>
|
|
280
|
-
</tbody>
|
|
281
|
-
</table>
|
|
282
|
-
</div>
|
|
283
|
-
</div>
|
|
284
|
-
|
|
285
|
-
{/* Size Variations */}
|
|
286
|
-
<div className="!space-y-8">
|
|
287
|
-
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
288
|
-
Size Variations
|
|
289
|
-
</h2>
|
|
290
|
-
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-8">
|
|
291
|
-
<div className="!space-y-6">
|
|
292
|
-
<div className="grid grid-cols-1 gap-8 md:grid-cols-2">
|
|
293
|
-
<div className="!space-y-4">
|
|
294
|
-
<h3 className="text-fm-secondary-600! text-lg font-semibold">
|
|
295
|
-
Standard Sizes
|
|
296
|
-
</h3>
|
|
297
|
-
<div className="bg-fm-surface-secondary flex items-end gap-6 rounded-lg p-6">
|
|
298
|
-
<div className="text-center">
|
|
299
|
-
<ArrowRightUpIcon className="text-fm-secondary-600 !mx-auto mb-2 h-3 w-3" />
|
|
300
|
-
<span className="text-fm-tertiary text-xs">
|
|
301
|
-
12px
|
|
302
|
-
</span>
|
|
303
|
-
</div>
|
|
304
|
-
<div className="text-center">
|
|
305
|
-
<ArrowRightUpIcon className="text-fm-secondary-600 !mx-auto mb-2 h-4 w-4" />
|
|
306
|
-
<span className="text-fm-tertiary text-xs">
|
|
307
|
-
16px
|
|
308
|
-
</span>
|
|
309
|
-
</div>
|
|
310
|
-
<div className="text-center">
|
|
311
|
-
<ArrowRightUpIcon className="text-fm-secondary-600 !mx-auto mb-2 h-5 w-5" />
|
|
312
|
-
<span className="text-fm-tertiary text-xs">
|
|
313
|
-
20px
|
|
314
|
-
</span>
|
|
315
|
-
</div>
|
|
316
|
-
<div className="text-center">
|
|
317
|
-
<ArrowRightUpIcon className="text-fm-secondary-600 !mx-auto mb-2 h-6 w-6" />
|
|
318
|
-
<span className="text-fm-tertiary text-xs">
|
|
319
|
-
24px
|
|
320
|
-
</span>
|
|
321
|
-
</div>
|
|
322
|
-
<div className="text-center">
|
|
323
|
-
<ArrowRightUpIcon className="text-fm-secondary-600 !mx-auto mb-2 h-8 w-8" />
|
|
324
|
-
<span className="text-fm-tertiary text-xs">
|
|
325
|
-
32px
|
|
326
|
-
</span>
|
|
327
|
-
</div>
|
|
328
|
-
<div className="text-center">
|
|
329
|
-
<ArrowRightUpIcon className="text-fm-secondary-600 !mx-auto mb-2 h-12 w-12" />
|
|
330
|
-
<span className="text-fm-tertiary text-xs">
|
|
331
|
-
48px
|
|
332
|
-
</span>
|
|
333
|
-
</div>
|
|
334
|
-
</div>
|
|
335
|
-
</div>
|
|
336
|
-
|
|
337
|
-
<div className="!space-y-4">
|
|
338
|
-
<h3 className="text-fm-secondary-600! text-lg font-semibold">
|
|
339
|
-
Code Example
|
|
340
|
-
</h3>
|
|
341
|
-
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
342
|
-
<pre className="text-fm-icon-info! overflow-x-auto text-sm">
|
|
343
|
-
{`// Small (16px)
|
|
344
|
-
<ArrowRightUpIcon className="h-4 w-4" />
|
|
345
|
-
|
|
346
|
-
// Medium (24px)
|
|
347
|
-
<ArrowRightUpIcon className="h-6 w-6" />
|
|
348
|
-
|
|
349
|
-
// Large (32px)
|
|
350
|
-
<ArrowRightUpIcon className="h-8 w-8" />
|
|
351
|
-
|
|
352
|
-
// Custom size
|
|
353
|
-
<ArrowRightUpIcon width={40} height={40} />`}
|
|
354
|
-
</pre>
|
|
355
|
-
</div>
|
|
356
|
-
</div>
|
|
357
|
-
</div>
|
|
358
|
-
</div>
|
|
359
|
-
</div>
|
|
360
|
-
</div>
|
|
361
|
-
|
|
362
|
-
{/* Color Variations */}
|
|
363
|
-
<div className="!space-y-8">
|
|
364
|
-
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
365
|
-
Color Variations
|
|
366
|
-
</h2>
|
|
367
|
-
<div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
|
|
368
|
-
<div className="!space-y-4">
|
|
369
|
-
<h3 className="text-fm-secondary-600! text-lg font-semibold">
|
|
370
|
-
Contextual Colors
|
|
371
|
-
</h3>
|
|
372
|
-
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
|
|
373
|
-
<div className="flex items-center gap-4">
|
|
374
|
-
<ArrowRightUpIcon className="text-fm-secondary-600 h-6 w-6" />
|
|
375
|
-
<div>
|
|
376
|
-
<div className="text-fm-icon-active text-sm font-medium">
|
|
377
|
-
Primary
|
|
378
|
-
</div>
|
|
379
|
-
<div className="text-fm-tertiary text-xs">
|
|
380
|
-
text-fm-secondary-600
|
|
381
|
-
</div>
|
|
382
|
-
</div>
|
|
383
|
-
</div>
|
|
384
|
-
<div className="flex items-center gap-4">
|
|
385
|
-
<ArrowRightUpIcon className="text-fm-icon-info h-6 w-6" />
|
|
386
|
-
<div>
|
|
387
|
-
<div className="text-fm-icon-active text-sm font-medium">
|
|
388
|
-
External Link
|
|
389
|
-
</div>
|
|
390
|
-
<div className="text-fm-tertiary text-xs">
|
|
391
|
-
text-fm-icon-info
|
|
392
|
-
</div>
|
|
393
|
-
</div>
|
|
394
|
-
</div>
|
|
395
|
-
<div className="flex items-center gap-4">
|
|
396
|
-
<ArrowRightUpIcon className="text-fm-icon-positive h-6 w-6" />
|
|
397
|
-
<div>
|
|
398
|
-
<div className="text-fm-icon-active text-sm font-medium">
|
|
399
|
-
Growth
|
|
400
|
-
</div>
|
|
401
|
-
<div className="text-fm-tertiary text-xs">
|
|
402
|
-
text-fm-icon-positive
|
|
403
|
-
</div>
|
|
404
|
-
</div>
|
|
405
|
-
</div>
|
|
406
|
-
<div className="flex items-center gap-4">
|
|
407
|
-
<ArrowRightUpIcon className="text-fm-placeholder h-6 w-6" />
|
|
408
|
-
<div>
|
|
409
|
-
<div className="text-fm-icon-active text-sm font-medium">
|
|
410
|
-
Neutral
|
|
411
|
-
</div>
|
|
412
|
-
<div className="text-fm-tertiary text-xs">
|
|
413
|
-
text-fm-placeholder
|
|
414
|
-
</div>
|
|
415
|
-
</div>
|
|
416
|
-
</div>
|
|
417
|
-
</div>
|
|
418
|
-
</div>
|
|
419
|
-
|
|
420
|
-
<div className="!space-y-4">
|
|
421
|
-
<h3 className="text-fm-secondary-600! text-lg font-semibold">
|
|
422
|
-
Custom Colors
|
|
423
|
-
</h3>
|
|
424
|
-
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
425
|
-
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
426
|
-
{`// Using Tailwind classes
|
|
427
|
-
<ArrowRightUpIcon className="h-6 w-6 text-violet-400" />
|
|
428
|
-
<ArrowRightUpIcon className="h-6 w-6 text-blue-500" />
|
|
429
|
-
|
|
430
|
-
// Using CSS custom properties
|
|
431
|
-
<ArrowRightUpIcon
|
|
432
|
-
className="h-6 w-6"
|
|
433
|
-
style={{ color: 'var(--color-primary)' }}
|
|
434
|
-
/>
|
|
435
|
-
|
|
436
|
-
// Direct color prop
|
|
437
|
-
<ArrowRightUpIcon
|
|
438
|
-
width={24}
|
|
439
|
-
height={24}
|
|
440
|
-
color="#8b5cf6"
|
|
441
|
-
/>`}
|
|
442
|
-
</pre>
|
|
443
|
-
</div>
|
|
444
|
-
</div>
|
|
445
|
-
</div>
|
|
446
|
-
</div>
|
|
447
|
-
|
|
448
|
-
{/* Usage Examples */}
|
|
449
|
-
<div className="!space-y-8">
|
|
450
|
-
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
451
|
-
Usage Examples
|
|
452
|
-
</h2>
|
|
453
|
-
|
|
454
|
-
<div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
|
|
455
|
-
{/* External Links */}
|
|
456
|
-
<div className="!space-y-4">
|
|
457
|
-
<h3 className="text-fm-secondary-600! text-lg font-semibold">
|
|
458
|
-
External Links
|
|
459
|
-
</h3>
|
|
460
|
-
<div className="!space-y-4">
|
|
461
|
-
<div className="!space-y-3">
|
|
462
|
-
<a
|
|
463
|
-
href="#"
|
|
464
|
-
className="text-fm-icon-info hover:text-fm-icon-info inline-flex items-center gap-2 transition-colors"
|
|
465
|
-
>
|
|
466
|
-
<span>Visit our documentation</span>
|
|
467
|
-
<ArrowRightUpIcon className="h-4 w-4 transition-transform hover:translate-x-0.5 hover:-translate-y-0.5" />
|
|
468
|
-
</a>
|
|
469
|
-
<br />
|
|
470
|
-
<a
|
|
471
|
-
href="#"
|
|
472
|
-
className="text-fm-icon-info hover:text-fm-icon-info inline-flex items-center gap-2 transition-colors"
|
|
473
|
-
>
|
|
474
|
-
<span>Join our community</span>
|
|
475
|
-
<ArrowRightUpIcon className="h-4 w-4 transition-transform hover:translate-x-0.5 hover:-translate-y-0.5" />
|
|
476
|
-
</a>
|
|
477
|
-
<br />
|
|
478
|
-
<a
|
|
479
|
-
href="#"
|
|
480
|
-
className="text-fm-icon-info hover:text-fm-icon-info inline-flex items-center gap-2 transition-colors"
|
|
481
|
-
>
|
|
482
|
-
<span>Read our blog</span>
|
|
483
|
-
<ArrowRightUpIcon className="h-4 w-4 transition-transform hover:translate-x-0.5 hover:-translate-y-0.5" />
|
|
484
|
-
</a>
|
|
485
|
-
</div>
|
|
486
|
-
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
487
|
-
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
488
|
-
{`<a href="#" className="inline-flex items-center gap-2 text-blue-400 hover:text-blue-300 transition-colors">
|
|
489
|
-
<span>Visit our documentation</span>
|
|
490
|
-
<ArrowRightUpIcon className="h-4 w-4 transition-transform hover:translate-x-0.5 hover:-translate-y-0.5" />
|
|
491
|
-
</a>`}
|
|
492
|
-
</pre>
|
|
493
|
-
</div>
|
|
494
|
-
</div>
|
|
495
|
-
</div>
|
|
496
|
-
|
|
497
|
-
{/* Card Actions */}
|
|
498
|
-
<div className="!space-y-4">
|
|
499
|
-
<h3 className="text-fm-secondary-600! text-lg font-semibold">
|
|
500
|
-
Card Actions
|
|
501
|
-
</h3>
|
|
502
|
-
<div className="!space-y-4">
|
|
503
|
-
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
|
|
504
|
-
<div className="!space-y-4">
|
|
505
|
-
<div>
|
|
506
|
-
<h4 className="text-fm-icon-active! font-medium">
|
|
507
|
-
GitHub Repository
|
|
508
|
-
</h4>
|
|
509
|
-
<p className="text-fm-tertiary! text-sm">
|
|
510
|
-
Open source UI component library
|
|
511
|
-
</p>
|
|
512
|
-
</div>
|
|
513
|
-
<div className="flex items-center justify-between">
|
|
514
|
-
<div className="text-fm-secondary! flex items-center gap-2 text-sm">
|
|
515
|
-
<span>⭐ 1.2k stars</span>
|
|
516
|
-
</div>
|
|
517
|
-
<a
|
|
518
|
-
href="#"
|
|
519
|
-
className="bg-fm-secondary-500 text-fm-icon-active hover:bg-fm-secondary-500 flex items-center gap-2 rounded px-3 py-1.5 text-sm font-medium transition-colors"
|
|
520
|
-
>
|
|
521
|
-
View on GitHub
|
|
522
|
-
<ArrowRightUpIcon className="h-3 w-3" />
|
|
523
|
-
</a>
|
|
524
|
-
</div>
|
|
525
|
-
</div>
|
|
526
|
-
</div>
|
|
527
|
-
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
528
|
-
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
529
|
-
{`<div className="rounded-lg border border-white/10 bg-white/5 p-6">
|
|
530
|
-
<div className="space-y-4">
|
|
531
|
-
<div>
|
|
532
|
-
<h4 className="font-medium text-white">GitHub Repository</h4>
|
|
533
|
-
<p className="text-sm text-white/60">Open source UI component library</p>
|
|
534
|
-
</div>
|
|
535
|
-
<div className="flex items-center justify-between">
|
|
536
|
-
<div className="flex items-center gap-2 text-sm text-white/70">
|
|
537
|
-
<span>⭐ 1.2k stars</span>
|
|
538
|
-
</div>
|
|
539
|
-
<a href="#" className="flex items-center gap-2 px-3 py-1.5 bg-violet-500 rounded text-sm font-medium text-white">
|
|
540
|
-
View on GitHub
|
|
541
|
-
<ArrowRightUpIcon className="h-3 w-3" />
|
|
542
|
-
</a>
|
|
543
|
-
</div>
|
|
544
|
-
</div>
|
|
545
|
-
</div>`}
|
|
546
|
-
</pre>
|
|
547
|
-
</div>
|
|
548
|
-
</div>
|
|
549
|
-
</div>
|
|
550
|
-
|
|
551
|
-
{/* Growth Metrics */}
|
|
552
|
-
<div className="!space-y-4">
|
|
553
|
-
<h3 className="text-fm-secondary-600! text-lg font-semibold">
|
|
554
|
-
Growth Indicators
|
|
555
|
-
</h3>
|
|
556
|
-
<div className="!space-y-4">
|
|
557
|
-
<div className="grid grid-cols-2 gap-4">
|
|
558
|
-
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-4">
|
|
559
|
-
<div className="flex items-center justify-between">
|
|
560
|
-
<div>
|
|
561
|
-
<div className="text-fm-icon-active! text-2xl font-bold">
|
|
562
|
-
24.5%
|
|
563
|
-
</div>
|
|
564
|
-
<div className="text-fm-tertiary! text-sm">
|
|
565
|
-
Revenue Growth
|
|
566
|
-
</div>
|
|
567
|
-
</div>
|
|
568
|
-
<ArrowRightUpIcon className="text-fm-icon-positive h-6 w-6" />
|
|
569
|
-
</div>
|
|
570
|
-
</div>
|
|
571
|
-
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-4">
|
|
572
|
-
<div className="flex items-center justify-between">
|
|
573
|
-
<div>
|
|
574
|
-
<div className="text-fm-icon-active! text-2xl font-bold">
|
|
575
|
-
156
|
|
576
|
-
</div>
|
|
577
|
-
<div className="text-fm-tertiary! text-sm">
|
|
578
|
-
New Users
|
|
579
|
-
</div>
|
|
580
|
-
</div>
|
|
581
|
-
<ArrowRightUpIcon className="text-fm-icon-info h-6 w-6" />
|
|
582
|
-
</div>
|
|
583
|
-
</div>
|
|
584
|
-
</div>
|
|
585
|
-
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
586
|
-
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
587
|
-
{`<div className="rounded-lg border border-white/10 bg-white/5 p-4">
|
|
588
|
-
<div className="flex items-center justify-between">
|
|
589
|
-
<div>
|
|
590
|
-
<div className="text-2xl font-bold text-white">24.5%</div>
|
|
591
|
-
<div className="text-sm text-white/60">Revenue Growth</div>
|
|
592
|
-
</div>
|
|
593
|
-
<ArrowRightUpIcon className="h-6 w-6 text-green-400" />
|
|
594
|
-
</div>
|
|
595
|
-
</div>`}
|
|
596
|
-
</pre>
|
|
597
|
-
</div>
|
|
598
|
-
</div>
|
|
599
|
-
</div>
|
|
600
|
-
|
|
601
|
-
{/* Button Integration */}
|
|
602
|
-
<div className="!space-y-4">
|
|
603
|
-
<h3 className="text-fm-secondary-600! text-lg font-semibold">
|
|
604
|
-
Button Integration
|
|
605
|
-
</h3>
|
|
606
|
-
<div className="!space-y-4">
|
|
607
|
-
<div className="flex gap-4">
|
|
608
|
-
<button className="border-fm-secondary-500/30 bg-fm-secondary-500/20 text-fm-secondary-600 hover:bg-fm-secondary-500/30 flex items-center gap-2 rounded-lg border px-4 py-2 transition-colors">
|
|
609
|
-
<span>Learn More</span>
|
|
610
|
-
<ArrowRightUpIcon className="h-4 w-4" />
|
|
611
|
-
</button>
|
|
612
|
-
<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">
|
|
613
|
-
<span>Open Link</span>
|
|
614
|
-
<ArrowRightUpIcon className="h-4 w-4" />
|
|
615
|
-
</button>
|
|
616
|
-
</div>
|
|
617
|
-
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
618
|
-
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
619
|
-
{`// Learn more button
|
|
620
|
-
<button className="flex items-center gap-2 bg-violet-500/20 border border-violet-500/30 px-4 py-2 rounded-lg">
|
|
621
|
-
<span>Learn More</span>
|
|
622
|
-
<ArrowRightUpIcon className="h-4 w-4" />
|
|
623
|
-
</button>
|
|
624
|
-
|
|
625
|
-
// External link button
|
|
626
|
-
<button className="flex items-center gap-2 bg-blue-500/20 border border-blue-500/30 px-4 py-2 rounded-lg">
|
|
627
|
-
<span>Open Link</span>
|
|
628
|
-
<ArrowRightUpIcon className="h-4 w-4" />
|
|
629
|
-
</button>`}
|
|
630
|
-
</pre>
|
|
631
|
-
</div>
|
|
632
|
-
</div>
|
|
633
|
-
</div>
|
|
634
|
-
|
|
635
|
-
{/* Navigation Menu */}
|
|
636
|
-
<div className="!space-y-4">
|
|
637
|
-
<h3 className="text-fm-secondary-600! text-lg font-semibold">
|
|
638
|
-
Navigation Menu
|
|
639
|
-
</h3>
|
|
640
|
-
<div className="!space-y-4">
|
|
641
|
-
<nav className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-4">
|
|
642
|
-
<ul className="!list-none !space-y-3">
|
|
643
|
-
<li>
|
|
644
|
-
<a
|
|
645
|
-
href="#"
|
|
646
|
-
className="hover:bg-fm-surface-secondary flex items-center justify-between rounded px-3 py-2 text-left transition-colors"
|
|
647
|
-
>
|
|
648
|
-
<span className="text-fm-icon-active!">
|
|
649
|
-
Documentation
|
|
650
|
-
</span>
|
|
651
|
-
<ArrowRightUpIcon className="text-fm-placeholder h-4 w-4" />
|
|
652
|
-
</a>
|
|
653
|
-
</li>
|
|
654
|
-
<li>
|
|
655
|
-
<a
|
|
656
|
-
href="#"
|
|
657
|
-
className="hover:bg-fm-surface-secondary flex items-center justify-between rounded px-3 py-2 text-left transition-colors"
|
|
658
|
-
>
|
|
659
|
-
<span className="text-fm-icon-active!">
|
|
660
|
-
GitHub
|
|
661
|
-
</span>
|
|
662
|
-
<ArrowRightUpIcon className="text-fm-placeholder h-4 w-4" />
|
|
663
|
-
</a>
|
|
664
|
-
</li>
|
|
665
|
-
<li>
|
|
666
|
-
<a
|
|
667
|
-
href="#"
|
|
668
|
-
className="hover:bg-fm-surface-secondary flex items-center justify-between rounded px-3 py-2 text-left transition-colors"
|
|
669
|
-
>
|
|
670
|
-
<span className="text-fm-icon-active!">
|
|
671
|
-
Discord Community
|
|
672
|
-
</span>
|
|
673
|
-
<ArrowRightUpIcon className="text-fm-placeholder h-4 w-4" />
|
|
674
|
-
</a>
|
|
675
|
-
</li>
|
|
676
|
-
</ul>
|
|
677
|
-
</nav>
|
|
678
|
-
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
679
|
-
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
680
|
-
{`<nav className="rounded-lg border border-white/10 bg-white/5 p-4">
|
|
681
|
-
<ul className="list-none space-y-3">
|
|
682
|
-
<li>
|
|
683
|
-
<a href="#" className="flex items-center justify-between rounded px-3 py-2 hover:bg-white/10">
|
|
684
|
-
<span className="text-white">Documentation</span>
|
|
685
|
-
<ArrowRightUpIcon className="h-4 w-4 text-gray-400" />
|
|
686
|
-
</a>
|
|
687
|
-
</li>
|
|
688
|
-
<li>
|
|
689
|
-
<a href="#" className="flex items-center justify-between rounded px-3 py-2 hover:bg-white/10">
|
|
690
|
-
<span className="text-white">GitHub</span>
|
|
691
|
-
<ArrowRightUpIcon className="h-4 w-4 text-gray-400" />
|
|
692
|
-
</a>
|
|
693
|
-
</li>
|
|
694
|
-
</ul>
|
|
695
|
-
</nav>`}
|
|
696
|
-
</pre>
|
|
697
|
-
</div>
|
|
698
|
-
</div>
|
|
699
|
-
</div>
|
|
700
|
-
|
|
701
|
-
{/* Social Links */}
|
|
702
|
-
<div className="!space-y-4">
|
|
703
|
-
<h3 className="text-fm-secondary-600! text-lg font-semibold">
|
|
704
|
-
Social Links
|
|
705
|
-
</h3>
|
|
706
|
-
<div className="!space-y-4">
|
|
707
|
-
<div className="flex items-center gap-4">
|
|
708
|
-
<a
|
|
709
|
-
href="#"
|
|
710
|
-
className="border-fm-divider-secondary bg-fm-surface-secondary hover:bg-fm-surface-secondary flex items-center gap-2 rounded-lg border px-4 py-2 transition-colors"
|
|
711
|
-
>
|
|
712
|
-
<span className="text-fm-icon-active!">Twitter</span>
|
|
713
|
-
<ArrowRightUpIcon className="text-fm-icon-info h-4 w-4" />
|
|
714
|
-
</a>
|
|
715
|
-
<a
|
|
716
|
-
href="#"
|
|
717
|
-
className="border-fm-divider-secondary bg-fm-surface-secondary hover:bg-fm-surface-secondary flex items-center gap-2 rounded-lg border px-4 py-2 transition-colors"
|
|
718
|
-
>
|
|
719
|
-
<span className="text-fm-icon-active!">LinkedIn</span>
|
|
720
|
-
<ArrowRightUpIcon className="text-fm-icon-info h-4 w-4" />
|
|
721
|
-
</a>
|
|
722
|
-
<a
|
|
723
|
-
href="#"
|
|
724
|
-
className="border-fm-divider-secondary bg-fm-surface-secondary hover:bg-fm-surface-secondary flex items-center gap-2 rounded-lg border px-4 py-2 transition-colors"
|
|
725
|
-
>
|
|
726
|
-
<span className="text-fm-icon-active!">YouTube</span>
|
|
727
|
-
<ArrowRightUpIcon className="text-fm-icon-negative h-4 w-4" />
|
|
728
|
-
</a>
|
|
729
|
-
</div>
|
|
730
|
-
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
731
|
-
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
732
|
-
{`<div className="flex items-center gap-4">
|
|
733
|
-
<a href="#" className="flex items-center gap-2 rounded-lg border border-white/10 bg-white/5 px-4 py-2 hover:bg-white/10">
|
|
734
|
-
<span className="text-white">Twitter</span>
|
|
735
|
-
<ArrowRightUpIcon className="h-4 w-4 text-blue-400" />
|
|
736
|
-
</a>
|
|
737
|
-
<a href="#" className="flex items-center gap-2 rounded-lg border border-white/10 bg-white/5 px-4 py-2 hover:bg-white/10">
|
|
738
|
-
<span className="text-white">LinkedIn</span>
|
|
739
|
-
<ArrowRightUpIcon className="h-4 w-4 text-blue-400" />
|
|
740
|
-
</a>
|
|
741
|
-
</div>`}
|
|
742
|
-
</pre>
|
|
743
|
-
</div>
|
|
744
|
-
</div>
|
|
745
|
-
</div>
|
|
746
|
-
</div>
|
|
747
|
-
</div>
|
|
748
|
-
|
|
749
|
-
{/* Animation Examples */}
|
|
750
|
-
<div className="!space-y-8">
|
|
751
|
-
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
752
|
-
Animation Examples
|
|
753
|
-
</h2>
|
|
754
|
-
<div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
|
|
755
|
-
<div className="!space-y-4">
|
|
756
|
-
<h3 className="text-fm-secondary-600! text-lg font-semibold">
|
|
757
|
-
Hover Animations
|
|
758
|
-
</h3>
|
|
759
|
-
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
|
|
760
|
-
<div className="!space-y-4">
|
|
761
|
-
<a
|
|
762
|
-
href="#"
|
|
763
|
-
className="group text-fm-secondary-600 hover:text-fm-secondary-600 inline-flex items-center gap-2"
|
|
764
|
-
>
|
|
765
|
-
<span>Diagonal movement</span>
|
|
766
|
-
<ArrowRightUpIcon className="h-4 w-4 transition-transform group-hover:translate-x-0.5 group-hover:-translate-y-0.5" />
|
|
767
|
-
</a>
|
|
768
|
-
<br />
|
|
769
|
-
<a
|
|
770
|
-
href="#"
|
|
771
|
-
className="group text-fm-icon-info hover:text-fm-icon-info inline-flex items-center gap-2"
|
|
772
|
-
>
|
|
773
|
-
<span>Scale effect</span>
|
|
774
|
-
<ArrowRightUpIcon className="h-4 w-4 transition-transform group-hover:scale-110" />
|
|
775
|
-
</a>
|
|
776
|
-
<br />
|
|
777
|
-
<a
|
|
778
|
-
href="#"
|
|
779
|
-
className="group text-fm-icon-positive hover:text-fm-icon-positive inline-flex items-center gap-2"
|
|
780
|
-
>
|
|
781
|
-
<span>Rotation effect</span>
|
|
782
|
-
<ArrowRightUpIcon className="h-4 w-4 transition-transform group-hover:rotate-12" />
|
|
783
|
-
</a>
|
|
784
|
-
</div>
|
|
785
|
-
</div>
|
|
786
|
-
</div>
|
|
787
|
-
|
|
788
|
-
<div className="!space-y-4">
|
|
789
|
-
<h3 className="text-fm-secondary-600! text-lg font-semibold">
|
|
790
|
-
Animation Code
|
|
791
|
-
</h3>
|
|
792
|
-
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
793
|
-
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
794
|
-
{`// Diagonal movement
|
|
795
|
-
<ArrowRightUpIcon className="h-4 w-4 transition-transform group-hover:translate-x-0.5 group-hover:-translate-y-0.5" />
|
|
796
|
-
|
|
797
|
-
// Scale effect
|
|
798
|
-
<ArrowRightUpIcon className="h-4 w-4 transition-transform group-hover:scale-110" />
|
|
799
|
-
|
|
800
|
-
// Rotation effect
|
|
801
|
-
<ArrowRightUpIcon className="h-4 w-4 transition-transform group-hover:rotate-12" />
|
|
802
|
-
|
|
803
|
-
// Combined effects
|
|
804
|
-
<ArrowRightUpIcon className="h-4 w-4 transition-all duration-300 group-hover:translate-x-1 group-hover:-translate-y-1 group-hover:scale-110" />`}
|
|
805
|
-
</pre>
|
|
806
|
-
</div>
|
|
807
|
-
</div>
|
|
808
|
-
</div>
|
|
809
|
-
</div>
|
|
810
|
-
|
|
811
|
-
{/* Accessibility */}
|
|
812
|
-
<div className="!space-y-8">
|
|
813
|
-
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
814
|
-
Accessibility Features
|
|
815
|
-
</h2>
|
|
816
|
-
<div className="grid grid-cols-1 gap-8 md:grid-cols-2">
|
|
817
|
-
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
|
|
818
|
-
<h3 className="text-fm-icon-positive! text-lg font-semibold">
|
|
819
|
-
✅ Built-in Features
|
|
820
|
-
</h3>
|
|
821
|
-
<ul className="text-fm-secondary! !space-y-2 text-sm">
|
|
822
|
-
<li className="text-fm-secondary!">
|
|
823
|
-
Uses Radix UI AccessibleIcon wrapper
|
|
824
|
-
</li>
|
|
825
|
-
<li className="text-fm-secondary!">
|
|
826
|
-
Provides screen reader label "Arrow Right Up icon"
|
|
827
|
-
</li>
|
|
828
|
-
<li className="text-fm-secondary!">
|
|
829
|
-
Supports keyboard navigation when used in links
|
|
830
|
-
</li>
|
|
831
|
-
<li className="text-fm-secondary!">
|
|
832
|
-
Maintains proper color contrast ratios
|
|
833
|
-
</li>
|
|
834
|
-
<li className="text-fm-secondary!">
|
|
835
|
-
Scales with user's font size preferences
|
|
836
|
-
</li>
|
|
837
|
-
</ul>
|
|
838
|
-
</div>
|
|
839
|
-
|
|
840
|
-
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
|
|
841
|
-
<h3 className="text-fm-secondary-600! text-lg font-semibold">
|
|
842
|
-
💡 Best Practices
|
|
843
|
-
</h3>
|
|
844
|
-
<ul className="text-fm-secondary !space-y-2 text-sm">
|
|
845
|
-
<li className="text-fm-secondary!">
|
|
846
|
-
Always pair with descriptive text for external links
|
|
847
|
-
</li>
|
|
848
|
-
<li className="text-fm-secondary!">
|
|
849
|
-
Use consistent colors for link types
|
|
850
|
-
</li>
|
|
851
|
-
<li className="text-fm-secondary!">
|
|
852
|
-
Add target="_blank" and rel="noopener" for external
|
|
853
|
-
links
|
|
854
|
-
</li>
|
|
855
|
-
<li className="text-fm-secondary!">
|
|
856
|
-
Provide clear focus indicators
|
|
857
|
-
</li>
|
|
858
|
-
<li className="text-fm-secondary!">
|
|
859
|
-
Consider reduced motion preferences
|
|
860
|
-
</li>
|
|
861
|
-
</ul>
|
|
862
|
-
</div>
|
|
863
|
-
</div>
|
|
864
|
-
|
|
865
|
-
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
|
|
866
|
-
<h3 className="text-fm-secondary-600! mb-4 text-lg font-semibold">
|
|
867
|
-
Accessible External Link Implementation
|
|
868
|
-
</h3>
|
|
869
|
-
<div className="grid grid-cols-1 gap-6 lg:grid-cols-2">
|
|
870
|
-
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
871
|
-
<pre className="text-fm-icon-info! overflow-x-auto text-sm">
|
|
872
|
-
{`// Accessible external link with proper attributes
|
|
873
|
-
function AccessibleExternalLink({ href, children, ...props }) {
|
|
874
|
-
return (
|
|
875
|
-
<a
|
|
876
|
-
href={href}
|
|
877
|
-
target="_blank"
|
|
878
|
-
rel="noopener noreferrer"
|
|
879
|
-
aria-label={\`\${children} (opens in new tab)\`}
|
|
880
|
-
className="inline-flex items-center gap-2 text-fm-icon-info hover:text-fm-icon-info focus:ring-2 focus:ring-blue-500"
|
|
881
|
-
{...props}
|
|
882
|
-
>
|
|
883
|
-
{children}
|
|
884
|
-
<ArrowRightUpIcon
|
|
885
|
-
className="h-4 w-4"
|
|
886
|
-
aria-hidden="true"
|
|
887
|
-
/>
|
|
888
|
-
</a>
|
|
889
|
-
)
|
|
890
|
-
}
|
|
891
|
-
|
|
892
|
-
// Usage
|
|
893
|
-
<AccessibleExternalLink href="https://docs.example.com">
|
|
894
|
-
Read the documentation
|
|
895
|
-
</AccessibleExternalLink>`}
|
|
896
|
-
</pre>
|
|
897
|
-
</div>
|
|
898
|
-
<div className="!space-y-4">
|
|
899
|
-
<p className="text-fm-secondary! text-sm">
|
|
900
|
-
This implementation includes proper security attributes,
|
|
901
|
-
ARIA labeling, and keyboard focus management for optimal
|
|
902
|
-
accessibility.
|
|
903
|
-
</p>
|
|
904
|
-
<div className="border-fm-secondary-500/20 bg-fm-secondary-500/10 rounded-lg border p-4">
|
|
905
|
-
<div className="text-fm-secondary-600! flex items-center gap-2 text-sm">
|
|
906
|
-
<ArrowRightUpIcon className="h-4 w-4" />
|
|
907
|
-
<span>
|
|
908
|
-
The icon indicates to screen readers that this opens
|
|
909
|
-
externally
|
|
910
|
-
</span>
|
|
911
|
-
</div>
|
|
912
|
-
</div>
|
|
913
|
-
</div>
|
|
914
|
-
</div>
|
|
915
|
-
</div>
|
|
916
|
-
</div>
|
|
917
|
-
|
|
918
|
-
{/* Related Icons */}
|
|
919
|
-
<div className="!space-y-8">
|
|
920
|
-
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
921
|
-
Related Icons
|
|
922
|
-
</h2>
|
|
923
|
-
<div className="grid grid-cols-2 gap-6 md:grid-cols-4">
|
|
924
|
-
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
|
|
925
|
-
<div className="bg-fm-icon-info/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
|
|
926
|
-
<ArrowRightUpIcon className="text-fm-icon-info h-6 w-6 rotate-90" />
|
|
927
|
-
</div>
|
|
928
|
-
<div>
|
|
929
|
-
<div className="text-fm-icon-active font-medium">
|
|
930
|
-
ArrowRightDownIcon
|
|
931
|
-
</div>
|
|
932
|
-
<div className="text-fm-tertiary text-xs">
|
|
933
|
-
Download/decrease
|
|
934
|
-
</div>
|
|
935
|
-
</div>
|
|
936
|
-
</div>
|
|
937
|
-
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
|
|
938
|
-
<div className="bg-fm-icon-info/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
|
|
939
|
-
<ArrowRightUpIcon className="text-fm-icon-info h-6 w-6 -rotate-90" />
|
|
940
|
-
</div>
|
|
941
|
-
<div>
|
|
942
|
-
<div className="text-fm-icon-active font-medium">
|
|
943
|
-
ArrowLeftUpIcon
|
|
944
|
-
</div>
|
|
945
|
-
<div className="text-fm-tertiary text-xs">
|
|
946
|
-
Back and up
|
|
947
|
-
</div>
|
|
948
|
-
</div>
|
|
949
|
-
</div>
|
|
950
|
-
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
|
|
951
|
-
<div className="bg-fm-icon-positive/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
|
|
952
|
-
<span className="text-2xl">↗️</span>
|
|
953
|
-
</div>
|
|
954
|
-
<div>
|
|
955
|
-
<div className="text-fm-icon-active font-medium">
|
|
956
|
-
ExternalLinkIcon
|
|
957
|
-
</div>
|
|
958
|
-
<div className="text-fm-tertiary text-xs">
|
|
959
|
-
Alternative style
|
|
960
|
-
</div>
|
|
961
|
-
</div>
|
|
962
|
-
</div>
|
|
963
|
-
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
|
|
964
|
-
<div className="bg-fm-secondary-500/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
|
|
965
|
-
<span className="text-2xl">📈</span>
|
|
966
|
-
</div>
|
|
967
|
-
<div>
|
|
968
|
-
<div className="text-fm-icon-active font-medium">
|
|
969
|
-
TrendingUpIcon
|
|
970
|
-
</div>
|
|
971
|
-
<div className="text-fm-tertiary text-xs">
|
|
972
|
-
Growth metrics
|
|
973
|
-
</div>
|
|
974
|
-
</div>
|
|
975
|
-
</div>
|
|
976
|
-
</div>
|
|
977
|
-
</div>
|
|
978
|
-
</div>
|
|
979
|
-
|
|
980
|
-
{/* Footer */}
|
|
981
|
-
<div className="border-fm-divider-secondary bg-fm-surface-secondary border-t backdrop-blur-xl">
|
|
982
|
-
<div className="!mx-auto max-w-7xl px-6 py-8">
|
|
983
|
-
<div className="!space-y-4 text-center">
|
|
984
|
-
<p className="text-fm-tertiary!">
|
|
985
|
-
ArrowRightUpIcon is part of the Aural UI icon library,
|
|
986
|
-
designed for external navigation and growth indication.
|
|
987
|
-
</p>
|
|
988
|
-
<p className="text-fm-placeholder! text-sm">
|
|
989
|
-
Perfect for external links, growth metrics, expansion
|
|
990
|
-
indicators, and any interface requiring diagonal upward
|
|
991
|
-
direction.
|
|
992
|
-
</p>
|
|
993
|
-
</div>
|
|
994
|
-
</div>
|
|
995
|
-
</div>
|
|
996
|
-
</div>
|
|
997
|
-
</>
|
|
56
|
+
}`,
|
|
57
|
+
livePreview: (
|
|
58
|
+
<a
|
|
59
|
+
href="#"
|
|
60
|
+
className="text-fm-icon-info font-fm-text flex items-center gap-1 text-sm"
|
|
61
|
+
target="_blank"
|
|
62
|
+
rel="noreferrer"
|
|
63
|
+
>
|
|
64
|
+
View website
|
|
65
|
+
<ArrowRightUpIcon className="text-fm-icon-info h-3.5 w-3.5" />
|
|
66
|
+
</a>
|
|
67
|
+
),
|
|
68
|
+
}}
|
|
69
|
+
relatedIcons={[
|
|
70
|
+
{
|
|
71
|
+
name: "ArrowRightIcon",
|
|
72
|
+
description: "Points right",
|
|
73
|
+
icon: ArrowRightIcon,
|
|
74
|
+
accentToken: "info",
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
name: "ArrowCornerUpRightIcon",
|
|
78
|
+
description: "Curved up-right arrow",
|
|
79
|
+
icon: ArrowCornerUpRightIcon,
|
|
80
|
+
accentToken: "positive",
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
name: "ChevronRightIcon",
|
|
84
|
+
description: "Right chevron",
|
|
85
|
+
icon: ChevronRightIcon,
|
|
86
|
+
accentToken: "warning",
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
name: "ArrowLeftIcon",
|
|
90
|
+
description: "Points left",
|
|
91
|
+
icon: ArrowLeftIcon,
|
|
92
|
+
accentToken: "negative",
|
|
93
|
+
},
|
|
94
|
+
]}
|
|
95
|
+
/>
|
|
998
96
|
),
|
|
999
97
|
},
|
|
1000
98
|
},
|
|
1001
99
|
tags: ["autodocs"],
|
|
1002
100
|
argTypes: {
|
|
1003
|
-
|
|
1004
|
-
control: "
|
|
1005
|
-
description: "
|
|
101
|
+
className: {
|
|
102
|
+
control: "text",
|
|
103
|
+
description: "CSS classes including size and color token",
|
|
1006
104
|
},
|
|
1007
105
|
withAccessibility: {
|
|
1008
106
|
control: "boolean",
|
|
1009
|
-
description: "
|
|
1010
|
-
},
|
|
1011
|
-
width: {
|
|
1012
|
-
control: { type: "range", min: 8, max: 96, step: 2 },
|
|
1013
|
-
description: "Width of the icon in pixels",
|
|
1014
|
-
},
|
|
1015
|
-
height: {
|
|
1016
|
-
control: { type: "range", min: 8, max: 96, step: 2 },
|
|
1017
|
-
description: "Height of the icon in pixels",
|
|
1018
|
-
},
|
|
1019
|
-
className: {
|
|
1020
|
-
control: "text",
|
|
1021
|
-
description: "CSS classes for styling",
|
|
107
|
+
description: "Wrap with accessibility label",
|
|
1022
108
|
},
|
|
1023
109
|
},
|
|
1024
110
|
}
|
|
@@ -1026,300 +112,105 @@ function AccessibleExternalLink({ href, children, ...props }) {
|
|
|
1026
112
|
export default meta
|
|
1027
113
|
type Story = StoryObj<typeof ArrowRightUpIcon>
|
|
1028
114
|
|
|
1029
|
-
// Story parameters for consistent dark theme
|
|
1030
|
-
const storyParameters = {
|
|
1031
|
-
backgrounds: {
|
|
1032
|
-
default: "dark",
|
|
1033
|
-
values: [
|
|
1034
|
-
{ name: "dark", value: "var(--color-fm-surface-primary)" },
|
|
1035
|
-
{ name: "darker", value: "var(--color-fm-neutral-0)" },
|
|
1036
|
-
],
|
|
1037
|
-
},
|
|
1038
|
-
}
|
|
1039
|
-
|
|
1040
115
|
export const Default: Story = {
|
|
1041
116
|
args: {
|
|
1042
|
-
|
|
1043
|
-
height: 24,
|
|
1044
|
-
className: "text-fm-secondary-600",
|
|
117
|
+
className: "h-6 w-6 text-fm-icon-active",
|
|
1045
118
|
withAccessibility: true,
|
|
1046
119
|
},
|
|
1047
|
-
parameters: storyParameters,
|
|
1048
120
|
render: (args) => (
|
|
1049
|
-
<
|
|
121
|
+
<IconDefaultCanvas>
|
|
1050
122
|
<ArrowRightUpIcon {...args} />
|
|
1051
|
-
</
|
|
123
|
+
</IconDefaultCanvas>
|
|
1052
124
|
),
|
|
1053
125
|
}
|
|
1054
126
|
|
|
1055
127
|
export const SizeVariations: Story = {
|
|
1056
|
-
|
|
1057
|
-
...storyParameters,
|
|
1058
|
-
docs: {
|
|
1059
|
-
description: {
|
|
1060
|
-
story:
|
|
1061
|
-
"ArrowRightUpIcon in different sizes, from small inline indicators to large displays.",
|
|
1062
|
-
},
|
|
1063
|
-
},
|
|
1064
|
-
},
|
|
1065
|
-
render: () => (
|
|
1066
|
-
<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">
|
|
1067
|
-
<div className="text-center">
|
|
1068
|
-
<ArrowRightUpIcon className="text-fm-secondary-600 !mx-auto mb-2 h-3 w-3" />
|
|
1069
|
-
<span className="text-fm-tertiary text-xs">12px</span>
|
|
1070
|
-
</div>
|
|
1071
|
-
<div className="text-center">
|
|
1072
|
-
<ArrowRightUpIcon className="text-fm-secondary-600 !mx-auto mb-2 h-4 w-4" />
|
|
1073
|
-
<span className="text-fm-tertiary text-xs">16px</span>
|
|
1074
|
-
</div>
|
|
1075
|
-
<div className="text-center">
|
|
1076
|
-
<ArrowRightUpIcon className="text-fm-secondary-600 !mx-auto mb-2 h-5 w-5" />
|
|
1077
|
-
<span className="text-fm-tertiary text-xs">20px</span>
|
|
1078
|
-
</div>
|
|
1079
|
-
<div className="text-center">
|
|
1080
|
-
<ArrowRightUpIcon className="text-fm-secondary-600 !mx-auto mb-2 h-6 w-6" />
|
|
1081
|
-
<span className="text-fm-tertiary text-xs">24px</span>
|
|
1082
|
-
</div>
|
|
1083
|
-
<div className="text-center">
|
|
1084
|
-
<ArrowRightUpIcon className="text-fm-secondary-600 !mx-auto mb-2 h-8 w-8" />
|
|
1085
|
-
<span className="text-fm-tertiary text-xs">32px</span>
|
|
1086
|
-
</div>
|
|
1087
|
-
<div className="text-center">
|
|
1088
|
-
<ArrowRightUpIcon className="text-fm-secondary-600 !mx-auto mb-2 h-12 w-12" />
|
|
1089
|
-
<span className="text-fm-tertiary text-xs">48px</span>
|
|
1090
|
-
</div>
|
|
1091
|
-
</div>
|
|
1092
|
-
),
|
|
128
|
+
render: () => <IconSizeVariations icon={ArrowRightUpIcon} />,
|
|
1093
129
|
}
|
|
1094
130
|
|
|
1095
131
|
export const ColorVariations: Story = {
|
|
1096
|
-
|
|
1097
|
-
|
|
1098
|
-
|
|
1099
|
-
|
|
1100
|
-
story:
|
|
1101
|
-
"ArrowRightUpIcon in different contextual colors for various use cases.",
|
|
1102
|
-
},
|
|
1103
|
-
},
|
|
1104
|
-
},
|
|
132
|
+
render: () => <IconColorVariations icon={ArrowRightUpIcon} />,
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
export const DirectionalVariations: Story = {
|
|
1105
136
|
render: () => (
|
|
1106
|
-
<
|
|
1107
|
-
|
|
1108
|
-
|
|
1109
|
-
|
|
1110
|
-
|
|
1111
|
-
|
|
1112
|
-
|
|
1113
|
-
|
|
1114
|
-
|
|
1115
|
-
|
|
1116
|
-
<div className="text-center">
|
|
1117
|
-
<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">
|
|
1118
|
-
<ArrowRightUpIcon className="text-fm-icon-info h-8 w-8" />
|
|
1119
|
-
</div>
|
|
1120
|
-
<div className="text-fm-icon-active text-sm font-medium">External</div>
|
|
1121
|
-
<div className="text-fm-icon-info text-xs">text-fm-icon-info</div>
|
|
1122
|
-
</div>
|
|
1123
|
-
<div className="text-center">
|
|
1124
|
-
<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">
|
|
1125
|
-
<ArrowRightUpIcon className="text-fm-icon-positive h-8 w-8" />
|
|
1126
|
-
</div>
|
|
1127
|
-
<div className="text-fm-icon-active text-sm font-medium">Growth</div>
|
|
1128
|
-
<div className="text-fm-icon-positive text-xs">
|
|
1129
|
-
text-fm-icon-positive
|
|
1130
|
-
</div>
|
|
1131
|
-
</div>
|
|
1132
|
-
<div className="text-center">
|
|
1133
|
-
<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">
|
|
1134
|
-
<ArrowRightUpIcon className="text-fm-placeholder h-8 w-8" />
|
|
1135
|
-
</div>
|
|
1136
|
-
<div className="text-fm-icon-active text-sm font-medium">Neutral</div>
|
|
1137
|
-
<div className="text-fm-placeholder text-xs">text-fm-placeholder</div>
|
|
1138
|
-
</div>
|
|
1139
|
-
</div>
|
|
137
|
+
<IconDirectionalVariations
|
|
138
|
+
icon={ArrowRightUpIcon}
|
|
139
|
+
directions={[
|
|
140
|
+
{ label: "Right Up", className: "h-8 w-8 text-fm-icon-active" },
|
|
141
|
+
{
|
|
142
|
+
label: "Left Up",
|
|
143
|
+
className: "h-8 w-8 text-fm-icon-active -scale-x-100",
|
|
144
|
+
},
|
|
145
|
+
]}
|
|
146
|
+
/>
|
|
1140
147
|
),
|
|
1141
148
|
}
|
|
1142
149
|
|
|
1143
150
|
export const UsageExamples: Story = {
|
|
1144
|
-
parameters: {
|
|
1145
|
-
...storyParameters,
|
|
1146
|
-
docs: {
|
|
1147
|
-
description: {
|
|
1148
|
-
story:
|
|
1149
|
-
"Real-world usage examples showing ArrowRightUpIcon in different UI contexts.",
|
|
1150
|
-
},
|
|
1151
|
-
},
|
|
1152
|
-
},
|
|
1153
151
|
render: () => (
|
|
1154
|
-
<
|
|
1155
|
-
|
|
1156
|
-
|
|
1157
|
-
|
|
1158
|
-
|
|
1159
|
-
</h3>
|
|
1160
|
-
<div className="!space-y-2">
|
|
1161
|
-
<a
|
|
1162
|
-
href="#"
|
|
1163
|
-
className="text-fm-icon-info hover:text-fm-icon-info inline-flex items-center gap-2 transition-colors"
|
|
1164
|
-
>
|
|
1165
|
-
<span>Visit our documentation</span>
|
|
1166
|
-
<ArrowRightUpIcon className="h-4 w-4 transition-transform hover:translate-x-0.5 hover:-translate-y-0.5" />
|
|
1167
|
-
</a>
|
|
1168
|
-
<br />
|
|
1169
|
-
<a
|
|
1170
|
-
href="#"
|
|
1171
|
-
className="text-fm-icon-info hover:text-fm-icon-info inline-flex items-center gap-2 transition-colors"
|
|
1172
|
-
>
|
|
1173
|
-
<span>Join our community</span>
|
|
1174
|
-
<ArrowRightUpIcon className="h-4 w-4 transition-transform hover:translate-x-0.5 hover:-translate-y-0.5" />
|
|
1175
|
-
</a>
|
|
1176
|
-
</div>
|
|
1177
|
-
</div>
|
|
1178
|
-
|
|
1179
|
-
{/* Growth Metrics */}
|
|
1180
|
-
<div className="!space-y-2">
|
|
1181
|
-
<h3 className="text-fm-icon-active text-sm font-medium">
|
|
1182
|
-
Growth Indicators
|
|
1183
|
-
</h3>
|
|
1184
|
-
<div className="grid grid-cols-2 gap-4">
|
|
1185
|
-
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-4">
|
|
1186
|
-
<div className="flex items-center justify-between">
|
|
1187
|
-
<div>
|
|
1188
|
-
<div className="text-fm-icon-active text-2xl font-bold">
|
|
1189
|
-
24.5%
|
|
1190
|
-
</div>
|
|
1191
|
-
<div className="text-fm-tertiary text-sm">Revenue Growth</div>
|
|
1192
|
-
</div>
|
|
1193
|
-
<ArrowRightUpIcon className="text-fm-icon-positive h-6 w-6" />
|
|
1194
|
-
</div>
|
|
1195
|
-
</div>
|
|
1196
|
-
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-4">
|
|
1197
|
-
<div className="flex items-center justify-between">
|
|
1198
|
-
<div>
|
|
1199
|
-
<div className="text-fm-icon-active text-2xl font-bold">
|
|
1200
|
-
156
|
|
1201
|
-
</div>
|
|
1202
|
-
<div className="text-fm-tertiary text-sm">New Users</div>
|
|
1203
|
-
</div>
|
|
1204
|
-
<ArrowRightUpIcon className="text-fm-icon-info h-6 w-6" />
|
|
1205
|
-
</div>
|
|
1206
|
-
</div>
|
|
1207
|
-
</div>
|
|
1208
|
-
</div>
|
|
1209
|
-
|
|
1210
|
-
{/* Card Actions */}
|
|
1211
|
-
<div className="!space-y-2">
|
|
1212
|
-
<h3 className="text-fm-icon-active text-sm font-medium">
|
|
1213
|
-
Card Actions
|
|
1214
|
-
</h3>
|
|
1215
|
-
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
|
|
1216
|
-
<div className="!space-y-4">
|
|
1217
|
-
<div>
|
|
1218
|
-
<h4 className="text-fm-icon-active font-medium">
|
|
1219
|
-
GitHub Repository
|
|
1220
|
-
</h4>
|
|
1221
|
-
<p className="text-fm-tertiary text-sm">
|
|
1222
|
-
Open source UI component library
|
|
1223
|
-
</p>
|
|
1224
|
-
</div>
|
|
1225
|
-
<div className="flex items-center justify-between">
|
|
1226
|
-
<div className="text-fm-secondary flex items-center gap-2 text-sm">
|
|
1227
|
-
<span>⭐ 1.2k stars</span>
|
|
1228
|
-
</div>
|
|
152
|
+
<IconUsageCanvas>
|
|
153
|
+
<IconUsageSection title="External Links">
|
|
154
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary w-full max-w-sm space-y-2 rounded-xl border p-4">
|
|
155
|
+
{["Podcast website", "Creator profile", "Episode transcript"].map(
|
|
156
|
+
(link) => (
|
|
1229
157
|
<a
|
|
158
|
+
key={link}
|
|
1230
159
|
href="#"
|
|
1231
|
-
className="
|
|
160
|
+
className="flex items-center gap-1.5"
|
|
161
|
+
target="_blank"
|
|
162
|
+
rel="noreferrer"
|
|
1232
163
|
>
|
|
1233
|
-
|
|
1234
|
-
|
|
164
|
+
<span className="text-fm-icon-info font-fm-text text-sm">
|
|
165
|
+
{link}
|
|
166
|
+
</span>
|
|
167
|
+
<ArrowRightUpIcon className="text-fm-icon-info h-3.5 w-3.5" />
|
|
1235
168
|
</a>
|
|
1236
|
-
|
|
1237
|
-
|
|
169
|
+
)
|
|
170
|
+
)}
|
|
1238
171
|
</div>
|
|
1239
|
-
</
|
|
1240
|
-
|
|
1241
|
-
|
|
1242
|
-
|
|
1243
|
-
|
|
1244
|
-
|
|
1245
|
-
|
|
1246
|
-
|
|
1247
|
-
|
|
1248
|
-
|
|
1249
|
-
|
|
1250
|
-
|
|
1251
|
-
|
|
1252
|
-
|
|
1253
|
-
|
|
1254
|
-
|
|
1255
|
-
|
|
1256
|
-
|
|
1257
|
-
|
|
1258
|
-
|
|
1259
|
-
|
|
1260
|
-
|
|
1261
|
-
|
|
1262
|
-
|
|
1263
|
-
|
|
1264
|
-
|
|
1265
|
-
|
|
1266
|
-
|
|
1267
|
-
|
|
1268
|
-
|
|
1269
|
-
|
|
1270
|
-
</div>
|
|
1271
|
-
|
|
1272
|
-
<div className="text-center">
|
|
1273
|
-
<h3 className="text-fm-icon-active mb-4 text-lg font-medium">
|
|
1274
|
-
Scale Effect
|
|
1275
|
-
</h3>
|
|
1276
|
-
<a
|
|
1277
|
-
href="#"
|
|
1278
|
-
className="group border-fm-icon-info/30 bg-fm-icon-info/10 text-fm-icon-info hover:bg-fm-icon-info/20 inline-flex items-center gap-2 rounded-lg border px-6 py-3 transition-colors"
|
|
1279
|
-
>
|
|
1280
|
-
<span>Learn More</span>
|
|
1281
|
-
<ArrowRightUpIcon className="h-6 w-6 transition-transform duration-300 group-hover:scale-125" />
|
|
1282
|
-
</a>
|
|
1283
|
-
<p className="text-fm-tertiary mt-2 text-xs">Hover to scale up</p>
|
|
1284
|
-
</div>
|
|
1285
|
-
|
|
1286
|
-
<div className="text-center">
|
|
1287
|
-
<h3 className="text-fm-icon-active mb-4 text-lg font-medium">
|
|
1288
|
-
Combined Effects
|
|
1289
|
-
</h3>
|
|
1290
|
-
<a
|
|
1291
|
-
href="#"
|
|
1292
|
-
className="group border-fm-icon-positive/30 bg-fm-icon-positive/10 text-fm-icon-positive hover:bg-fm-icon-positive/20 inline-flex items-center gap-2 rounded-lg border px-6 py-3 transition-colors"
|
|
1293
|
-
>
|
|
1294
|
-
<span>Explore</span>
|
|
1295
|
-
<ArrowRightUpIcon className="h-6 w-6 transition-all duration-300 group-hover:translate-x-1 group-hover:-translate-y-1 group-hover:scale-110 group-hover:rotate-12" />
|
|
1296
|
-
</a>
|
|
1297
|
-
<p className="text-fm-tertiary mt-2 text-xs">Multiple animations</p>
|
|
1298
|
-
</div>
|
|
1299
|
-
</div>
|
|
172
|
+
</IconUsageSection>
|
|
173
|
+
|
|
174
|
+
<IconUsageSection title="Open in App">
|
|
175
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary w-full max-w-sm rounded-xl border p-4">
|
|
176
|
+
<button className="flex w-full items-center justify-between">
|
|
177
|
+
<span className="text-fm-primary font-fm-text text-sm">
|
|
178
|
+
Open in browser
|
|
179
|
+
</span>
|
|
180
|
+
<ArrowRightUpIcon className="text-fm-icon-inactive h-4 w-4" />
|
|
181
|
+
</button>
|
|
182
|
+
</div>
|
|
183
|
+
</IconUsageSection>
|
|
184
|
+
|
|
185
|
+
<IconUsageSection title="Inline Reference">
|
|
186
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary w-full max-w-sm rounded-xl border p-4">
|
|
187
|
+
<p className="text-fm-secondary font-fm-text text-sm leading-relaxed">
|
|
188
|
+
Check out the{" "}
|
|
189
|
+
<a
|
|
190
|
+
href="#"
|
|
191
|
+
className="text-fm-icon-info inline-flex items-center gap-0.5"
|
|
192
|
+
target="_blank"
|
|
193
|
+
rel="noreferrer"
|
|
194
|
+
>
|
|
195
|
+
creator's page
|
|
196
|
+
<ArrowRightUpIcon className="h-3 w-3" />
|
|
197
|
+
</a>{" "}
|
|
198
|
+
for more content.
|
|
199
|
+
</p>
|
|
200
|
+
</div>
|
|
201
|
+
</IconUsageSection>
|
|
202
|
+
</IconUsageCanvas>
|
|
1300
203
|
),
|
|
1301
204
|
}
|
|
1302
205
|
|
|
1303
206
|
export const Playground: Story = {
|
|
1304
|
-
parameters: {
|
|
1305
|
-
...storyParameters,
|
|
1306
|
-
docs: {
|
|
1307
|
-
description: {
|
|
1308
|
-
story:
|
|
1309
|
-
"Interactive playground to experiment with different ArrowRightUpIcon configurations.",
|
|
1310
|
-
},
|
|
1311
|
-
},
|
|
1312
|
-
},
|
|
1313
207
|
args: {
|
|
1314
|
-
|
|
1315
|
-
|
|
1316
|
-
className: "text-fm-secondary-600",
|
|
208
|
+
className: "h-8 w-8 text-fm-icon-active",
|
|
209
|
+
withAccessibility: true,
|
|
1317
210
|
},
|
|
1318
211
|
render: (args) => (
|
|
1319
|
-
<
|
|
1320
|
-
<
|
|
1321
|
-
|
|
1322
|
-
</div>
|
|
1323
|
-
</div>
|
|
212
|
+
<IconPlaygroundCanvas>
|
|
213
|
+
<ArrowRightUpIcon {...args} />
|
|
214
|
+
</IconPlaygroundCanvas>
|
|
1324
215
|
),
|
|
1325
216
|
}
|