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,20 @@
|
|
|
1
1
|
import React from "react"
|
|
2
2
|
import type { Meta, StoryObj } from "@storybook/react-vite"
|
|
3
3
|
|
|
4
|
+
import { GoogleLogoIcon } from "src/ui/icons/google-logo-icon"
|
|
5
|
+
import { InstagramIcon } from "src/ui/icons/instagram-icon"
|
|
6
|
+
import { ThreadsIcon } from "src/ui/icons/threads-icon"
|
|
7
|
+
import { TwitterXIcon } from "src/ui/icons/twitter-x-icon"
|
|
8
|
+
import {
|
|
9
|
+
IconBrandColors,
|
|
10
|
+
IconDefaultCanvas,
|
|
11
|
+
IconPlaygroundCanvas,
|
|
12
|
+
IconSizeVariations,
|
|
13
|
+
IconUsageCanvas,
|
|
14
|
+
IconUsageSection,
|
|
15
|
+
} from "src/ui/story-spec/icons/icon-story-canvas"
|
|
16
|
+
import { AuralIconDocsPage } from "src/ui/story-spec/icons/icon-story-docs-page"
|
|
17
|
+
|
|
4
18
|
import { LinkedInIcon } from "."
|
|
5
19
|
|
|
6
20
|
const meta: Meta<typeof LinkedInIcon> = {
|
|
@@ -18,1370 +32,68 @@ const meta: Meta<typeof LinkedInIcon> = {
|
|
|
18
32
|
},
|
|
19
33
|
docs: {
|
|
20
34
|
page: () => (
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
{
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
padding: 0 ;
|
|
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="from-fm-surface-primary via-fm-icon-info/5 to-fm-surface-primary min-h-screen bg-linear-to-br">
|
|
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-icon-info/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-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">
|
|
90
|
-
<LinkedInIcon className="text-fm-icon-active h-12 w-12" />
|
|
91
|
-
</div>
|
|
92
|
-
<h1 className="text-fm-icon-active! text-5xl font-bold">
|
|
93
|
-
LinkedInIcon
|
|
94
|
-
</h1>
|
|
95
|
-
<p className="text-fm-secondary! !mx-auto max-w-3xl text-xl leading-relaxed">
|
|
96
|
-
The official LinkedIn brand icon featuring the distinctive
|
|
97
|
-
square design with profile silhouette. Essential for
|
|
98
|
-
professional networking, career development, business
|
|
99
|
-
connections, recruitment platforms, and any interface where
|
|
100
|
-
LinkedIn platform integration and professional identity are
|
|
101
|
-
emphasized.
|
|
102
|
-
</p>
|
|
103
|
-
|
|
104
|
-
{/* Stats */}
|
|
105
|
-
<div className="flex items-center justify-center gap-8 pt-8">
|
|
106
|
-
<div className="text-center">
|
|
107
|
-
<div className="text-fm-icon-info text-3xl font-bold">
|
|
108
|
-
Professional Network
|
|
109
|
-
</div>
|
|
110
|
-
<div className="text-fm-tertiary text-sm">
|
|
111
|
-
Career development
|
|
112
|
-
</div>
|
|
113
|
-
</div>
|
|
114
|
-
<div className="bg-fm-divider-primary h-8 w-px" />
|
|
115
|
-
<div className="text-center">
|
|
116
|
-
<div className="text-fm-icon-info text-3xl font-bold">
|
|
117
|
-
Business Platform
|
|
118
|
-
</div>
|
|
119
|
-
<div className="text-fm-tertiary text-sm">
|
|
120
|
-
Industry connections
|
|
121
|
-
</div>
|
|
122
|
-
</div>
|
|
123
|
-
<div className="bg-fm-divider-primary h-8 w-px" />
|
|
124
|
-
<div className="text-center">
|
|
125
|
-
<div className="text-fm-icon-info text-3xl font-bold">
|
|
126
|
-
Recruitment Hub
|
|
127
|
-
</div>
|
|
128
|
-
<div className="text-fm-tertiary text-sm">
|
|
129
|
-
Talent acquisition
|
|
130
|
-
</div>
|
|
131
|
-
</div>
|
|
132
|
-
</div>
|
|
133
|
-
</div>
|
|
134
|
-
</div>
|
|
135
|
-
</div>
|
|
136
|
-
|
|
137
|
-
{/* Content */}
|
|
138
|
-
<div className="!mx-auto max-w-7xl !space-y-16 px-6 py-12">
|
|
139
|
-
{/* Quick Usage */}
|
|
140
|
-
<div className="!space-y-8">
|
|
141
|
-
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
142
|
-
Quick Start
|
|
143
|
-
</h2>
|
|
144
|
-
<div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
|
|
145
|
-
<div className="!space-y-4">
|
|
146
|
-
<h3 className="text-fm-icon-info! text-xl font-semibold">
|
|
147
|
-
Basic Usage
|
|
148
|
-
</h3>
|
|
149
|
-
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
150
|
-
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
151
|
-
{`import { LinkedInIcon } from "@icons/linked-in-icon"
|
|
152
|
-
|
|
153
|
-
function ProfessionalProfile() {
|
|
35
|
+
<AuralIconDocsPage
|
|
36
|
+
accentToken="info"
|
|
37
|
+
features={[
|
|
38
|
+
{ title: "Brand Mark", description: "LinkedIn identity icon" },
|
|
39
|
+
{ title: "Professional", description: "Career and network links" },
|
|
40
|
+
{ title: "Accessible", description: "ARIA-ready by default" },
|
|
41
|
+
]}
|
|
42
|
+
quickStart={{
|
|
43
|
+
codeExample: `import { LinkedInIcon } from "src/ui/icons/linked-in-icon"
|
|
44
|
+
|
|
45
|
+
function LinkedInLink() {
|
|
154
46
|
return (
|
|
155
|
-
<a
|
|
156
|
-
|
|
157
|
-
className="flex items-center gap-2 p-2 rounded-lg
|
|
158
|
-
bg-blue-600 hover:bg-blue-700
|
|
159
|
-
transition-colors"
|
|
160
|
-
aria-label="Connect on LinkedIn"
|
|
161
|
-
>
|
|
162
|
-
<LinkedInIcon className="h-5 w-5 text-white" />
|
|
163
|
-
<span className="text-white">Connect on LinkedIn</span>
|
|
47
|
+
<a href="https://linkedin.com/in/profile" target="_blank">
|
|
48
|
+
<LinkedInIcon className="h-5 w-5 text-fm-icon-active" />
|
|
164
49
|
</a>
|
|
165
50
|
)
|
|
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
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
</h3>
|
|
201
|
-
</div>
|
|
202
|
-
<table className="!my-0 w-full">
|
|
203
|
-
<thead className="bg-fm-surface-secondary">
|
|
204
|
-
<tr className="border-fm-divider-secondary border-b">
|
|
205
|
-
<th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
|
|
206
|
-
Prop
|
|
207
|
-
</th>
|
|
208
|
-
<th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
|
|
209
|
-
Type
|
|
210
|
-
</th>
|
|
211
|
-
<th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
|
|
212
|
-
Default
|
|
213
|
-
</th>
|
|
214
|
-
<th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
|
|
215
|
-
Description
|
|
216
|
-
</th>
|
|
217
|
-
</tr>
|
|
218
|
-
</thead>
|
|
219
|
-
<tbody>
|
|
220
|
-
{" "}
|
|
221
|
-
<tr className="bg-fm-surface-secondary!">
|
|
222
|
-
<td className="text-fm-icon-info! px-6 py-4 font-mono text-sm">
|
|
223
|
-
withAccessibility
|
|
224
|
-
</td>
|
|
225
|
-
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
226
|
-
boolean
|
|
227
|
-
</td>
|
|
228
|
-
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
229
|
-
true
|
|
230
|
-
</td>
|
|
231
|
-
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
232
|
-
Whether to wrap the icon with accessibility feature
|
|
233
|
-
</td>
|
|
234
|
-
</tr>
|
|
235
|
-
<tr className="border-fm-divider-tertiary bg-fm-surface-secondary! border-b">
|
|
236
|
-
<td className="text-fm-icon-info! px-6 py-4 font-mono text-sm">
|
|
237
|
-
height
|
|
238
|
-
</td>
|
|
239
|
-
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
240
|
-
number | string
|
|
241
|
-
</td>
|
|
242
|
-
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
243
|
-
auto
|
|
244
|
-
</td>
|
|
245
|
-
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
246
|
-
Height of the icon (maintains aspect ratio)
|
|
247
|
-
</td>
|
|
248
|
-
</tr>
|
|
249
|
-
<tr className="border-fm-divider-tertiary border-b">
|
|
250
|
-
<td className="text-fm-icon-info! px-6 py-4 font-mono text-sm">
|
|
251
|
-
fill
|
|
252
|
-
</td>
|
|
253
|
-
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
254
|
-
string
|
|
255
|
-
</td>
|
|
256
|
-
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
257
|
-
currentColor
|
|
258
|
-
</td>
|
|
259
|
-
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
260
|
-
Fill color of the LinkedIn square icon
|
|
261
|
-
</td>
|
|
262
|
-
</tr>
|
|
263
|
-
<tr className="border-fm-divider-tertiary bg-fm-surface-secondary! border-b">
|
|
264
|
-
<td className="text-fm-icon-info! px-6 py-4 font-mono text-sm">
|
|
265
|
-
className
|
|
266
|
-
</td>
|
|
267
|
-
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
268
|
-
string
|
|
269
|
-
</td>
|
|
270
|
-
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
271
|
-
-
|
|
272
|
-
</td>
|
|
273
|
-
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
274
|
-
CSS classes for styling and sizing
|
|
275
|
-
</td>
|
|
276
|
-
</tr>
|
|
277
|
-
<tr className="border-fm-divider-tertiary border-b">
|
|
278
|
-
<td className="text-fm-icon-info! px-6 py-4 font-mono text-sm">
|
|
279
|
-
onClick
|
|
280
|
-
</td>
|
|
281
|
-
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
282
|
-
function
|
|
283
|
-
</td>
|
|
284
|
-
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
285
|
-
-
|
|
286
|
-
</td>
|
|
287
|
-
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
288
|
-
Click handler for professional interactions
|
|
289
|
-
</td>
|
|
290
|
-
</tr>
|
|
291
|
-
<tr className="bg-fm-surface-secondary!">
|
|
292
|
-
<td className="text-fm-icon-info! px-6 py-4 font-mono text-sm">
|
|
293
|
-
...svgProps
|
|
294
|
-
</td>
|
|
295
|
-
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
296
|
-
SVGProps
|
|
297
|
-
</td>
|
|
298
|
-
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
299
|
-
-
|
|
300
|
-
</td>
|
|
301
|
-
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
302
|
-
All standard SVG element props
|
|
303
|
-
</td>
|
|
304
|
-
</tr>
|
|
305
|
-
</tbody>
|
|
306
|
-
</table>
|
|
307
|
-
</div>
|
|
308
|
-
|
|
309
|
-
<div className="border-fm-icon-info/20 bg-fm-icon-info/10 rounded-lg border p-4">
|
|
310
|
-
<div className="text-fm-icon-info flex items-center gap-2 text-sm">
|
|
311
|
-
<LinkedInIcon className="h-4 w-4" />
|
|
312
|
-
<span>
|
|
313
|
-
<strong>Brand Guidelines:</strong> Use LinkedIn's
|
|
314
|
-
signature blue color (#0077B5) for optimal brand
|
|
315
|
-
recognition and professional consistency.
|
|
316
|
-
</span>
|
|
317
|
-
</div>
|
|
318
|
-
</div>
|
|
319
|
-
</div>
|
|
320
|
-
|
|
321
|
-
{/* Size Variations */}
|
|
322
|
-
<div className="!space-y-8">
|
|
323
|
-
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
324
|
-
Size Variations
|
|
325
|
-
</h2>
|
|
326
|
-
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-8">
|
|
327
|
-
<div className="!space-y-6">
|
|
328
|
-
<div className="grid grid-cols-1 gap-8 md:grid-cols-2">
|
|
329
|
-
<div className="!space-y-4">
|
|
330
|
-
<h3 className="text-fm-icon-info! text-lg font-semibold">
|
|
331
|
-
Standard Sizes
|
|
332
|
-
</h3>
|
|
333
|
-
<div className="bg-fm-surface-secondary flex items-end gap-6 rounded-lg p-6">
|
|
334
|
-
<div className="text-center">
|
|
335
|
-
<LinkedInIcon className="text-fm-icon-info !mx-auto mb-2 h-3 w-3" />
|
|
336
|
-
<span className="text-fm-tertiary text-xs">
|
|
337
|
-
12px
|
|
338
|
-
</span>
|
|
339
|
-
</div>
|
|
340
|
-
<div className="text-center">
|
|
341
|
-
<LinkedInIcon className="text-fm-icon-info !mx-auto mb-2 h-4 w-4" />
|
|
342
|
-
<span className="text-fm-tertiary text-xs">
|
|
343
|
-
16px
|
|
344
|
-
</span>
|
|
345
|
-
</div>
|
|
346
|
-
<div className="text-center">
|
|
347
|
-
<LinkedInIcon className="text-fm-icon-info !mx-auto mb-2 h-5 w-5" />
|
|
348
|
-
<span className="text-fm-tertiary text-xs">
|
|
349
|
-
20px
|
|
350
|
-
</span>
|
|
351
|
-
</div>
|
|
352
|
-
<div className="text-center">
|
|
353
|
-
<LinkedInIcon className="text-fm-icon-info !mx-auto mb-2 h-6 w-6" />
|
|
354
|
-
<span className="text-fm-tertiary text-xs">
|
|
355
|
-
24px
|
|
356
|
-
</span>
|
|
357
|
-
</div>
|
|
358
|
-
<div className="text-center">
|
|
359
|
-
<LinkedInIcon className="text-fm-icon-info !mx-auto mb-2 h-8 w-8" />
|
|
360
|
-
<span className="text-fm-tertiary text-xs">
|
|
361
|
-
32px
|
|
362
|
-
</span>
|
|
363
|
-
</div>
|
|
364
|
-
<div className="text-center">
|
|
365
|
-
<LinkedInIcon className="text-fm-icon-info !mx-auto mb-2 h-12 w-12" />
|
|
366
|
-
<span className="text-fm-tertiary text-xs">
|
|
367
|
-
48px
|
|
368
|
-
</span>
|
|
369
|
-
</div>
|
|
370
|
-
</div>
|
|
371
|
-
</div>
|
|
372
|
-
|
|
373
|
-
<div className="!space-y-4">
|
|
374
|
-
<h3 className="text-fm-icon-info! text-lg font-semibold">
|
|
375
|
-
Code Example
|
|
376
|
-
</h3>
|
|
377
|
-
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
378
|
-
<pre className="text-fm-icon-info! overflow-x-auto text-sm">
|
|
379
|
-
{`// Small (16px) - inline professional links
|
|
380
|
-
<LinkedInIcon className="h-4 w-4" />
|
|
381
|
-
|
|
382
|
-
// Medium (24px) - standard buttons
|
|
383
|
-
<LinkedInIcon className="h-6 w-6" />
|
|
384
|
-
|
|
385
|
-
// Large (32px) - prominent displays
|
|
386
|
-
<LinkedInIcon className="h-8 w-8" />
|
|
387
|
-
|
|
388
|
-
// Custom size with maintained aspect ratio
|
|
389
|
-
<LinkedInIcon width={40} height={40} />`}
|
|
390
|
-
</pre>
|
|
391
|
-
</div>
|
|
392
|
-
</div>
|
|
393
|
-
</div>
|
|
394
|
-
</div>
|
|
395
|
-
</div>
|
|
396
|
-
</div>
|
|
397
|
-
|
|
398
|
-
{/* Color & Styling */}
|
|
399
|
-
<div className="!space-y-8">
|
|
400
|
-
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
401
|
-
Color & Styling
|
|
402
|
-
</h2>
|
|
403
|
-
<div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
|
|
404
|
-
<div className="!space-y-4">
|
|
405
|
-
<h3 className="text-fm-icon-info! text-lg font-semibold">
|
|
406
|
-
Brand Colors
|
|
407
|
-
</h3>
|
|
408
|
-
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
|
|
409
|
-
<div className="flex items-center gap-4">
|
|
410
|
-
<div
|
|
411
|
-
className="bg-fm-icon-info flex h-12 w-12 items-center justify-center rounded-lg"
|
|
412
|
-
style={{ backgroundColor: "#0077B5" }}
|
|
413
|
-
>
|
|
414
|
-
<LinkedInIcon className="text-fm-icon-active h-6 w-6" />
|
|
415
|
-
</div>
|
|
416
|
-
<div>
|
|
417
|
-
<div className="text-fm-icon-active text-sm font-medium">
|
|
418
|
-
Official Blue
|
|
419
|
-
</div>
|
|
420
|
-
<div className="text-fm-tertiary text-xs">
|
|
421
|
-
#0077B5 LinkedIn brand
|
|
422
|
-
</div>
|
|
423
|
-
</div>
|
|
424
|
-
</div>
|
|
425
|
-
<div className="flex items-center gap-4">
|
|
426
|
-
<div className="bg-fm-icon-info flex h-12 w-12 items-center justify-center rounded-lg">
|
|
427
|
-
<LinkedInIcon className="text-fm-icon-active h-6 w-6" />
|
|
428
|
-
</div>
|
|
429
|
-
<div>
|
|
430
|
-
<div className="text-fm-icon-active text-sm font-medium">
|
|
431
|
-
Dark Blue
|
|
432
|
-
</div>
|
|
433
|
-
<div className="text-fm-tertiary text-xs">
|
|
434
|
-
Hover state variant
|
|
435
|
-
</div>
|
|
436
|
-
</div>
|
|
437
|
-
</div>
|
|
438
|
-
<div className="flex items-center gap-4">
|
|
439
|
-
<div className="border-fm-divider-primary bg-fm-surface-contrast flex h-12 w-12 items-center justify-center rounded-lg border">
|
|
440
|
-
<LinkedInIcon className="text-fm-icon-info h-6 w-6" />
|
|
441
|
-
</div>
|
|
442
|
-
<div>
|
|
443
|
-
<div className="text-fm-icon-active text-sm font-medium">
|
|
444
|
-
Blue on White
|
|
445
|
-
</div>
|
|
446
|
-
<div className="text-fm-tertiary text-xs">
|
|
447
|
-
Light backgrounds
|
|
448
|
-
</div>
|
|
449
|
-
</div>
|
|
450
|
-
</div>
|
|
451
|
-
<div className="flex items-center gap-4">
|
|
452
|
-
<div className="bg-fm-surface-secondary flex h-12 w-12 items-center justify-center rounded-lg">
|
|
453
|
-
<LinkedInIcon className="text-fm-icon-active h-6 w-6" />
|
|
454
|
-
</div>
|
|
455
|
-
<div>
|
|
456
|
-
<div className="text-fm-icon-active text-sm font-medium">
|
|
457
|
-
Monochrome White
|
|
458
|
-
</div>
|
|
459
|
-
<div className="text-fm-tertiary text-xs">
|
|
460
|
-
Dark backgrounds
|
|
461
|
-
</div>
|
|
462
|
-
</div>
|
|
463
|
-
</div>
|
|
464
|
-
</div>
|
|
465
|
-
</div>
|
|
466
|
-
|
|
467
|
-
<div className="!space-y-4">
|
|
468
|
-
<h3 className="text-fm-icon-info! text-lg font-semibold">
|
|
469
|
-
Usage Examples
|
|
470
|
-
</h3>
|
|
471
|
-
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
472
|
-
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
473
|
-
{`// Official LinkedIn blue
|
|
474
|
-
<LinkedInIcon
|
|
475
|
-
className="h-6 w-6 text-white"
|
|
476
|
-
style={{ color: '#0077B5' }}
|
|
477
|
-
/>
|
|
478
|
-
|
|
479
|
-
// White on LinkedIn blue background
|
|
480
|
-
<div className="bg-blue-600 p-3 rounded-lg">
|
|
481
|
-
<LinkedInIcon className="h-6 w-6 text-white" />
|
|
482
|
-
</div>
|
|
483
|
-
|
|
484
|
-
// Blue on white background
|
|
485
|
-
<div className="bg-white p-3 rounded-lg">
|
|
486
|
-
<LinkedInIcon className="h-6 w-6 text-blue-600" />
|
|
487
|
-
</div>
|
|
488
|
-
|
|
489
|
-
// Inherit parent text color
|
|
490
|
-
<LinkedInIcon className="h-5 w-5" />
|
|
491
|
-
|
|
492
|
-
// Hover state with transition
|
|
493
|
-
<LinkedInIcon
|
|
494
|
-
className="h-6 w-6 text-blue-600
|
|
495
|
-
hover:text-blue-700 transition-colors"
|
|
496
|
-
/>
|
|
497
|
-
|
|
498
|
-
// Professional button style
|
|
499
|
-
<button className="bg-blue-600 hover:bg-blue-700
|
|
500
|
-
p-3 rounded-lg transition-colors">
|
|
501
|
-
<LinkedInIcon className="h-5 w-5 text-white" />
|
|
502
|
-
</button>`}
|
|
503
|
-
</pre>
|
|
504
|
-
</div>
|
|
505
|
-
</div>
|
|
506
|
-
</div>
|
|
507
|
-
</div>
|
|
508
|
-
|
|
509
|
-
{/* Usage Examples */}
|
|
510
|
-
<div className="!space-y-8">
|
|
511
|
-
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
512
|
-
Usage Examples
|
|
513
|
-
</h2>
|
|
514
|
-
|
|
515
|
-
<div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
|
|
516
|
-
{/* Professional Profile Card */}
|
|
517
|
-
<div className="!space-y-4">
|
|
518
|
-
<h3 className="text-fm-icon-info! text-lg font-semibold">
|
|
519
|
-
Professional Profile Card
|
|
520
|
-
</h3>
|
|
521
|
-
<div className="!space-y-4">
|
|
522
|
-
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
|
|
523
|
-
<div className="border-fm-divider-primary bg-fm-surface-secondary overflow-hidden rounded-lg border">
|
|
524
|
-
<div className="from-fm-icon-info/20 to-fm-icon-info/20 relative h-32 bg-linear-to-r">
|
|
525
|
-
<div className="absolute -bottom-8 left-6">
|
|
526
|
-
<div className="border-fm-divider-secondary bg-fm-surface-secondary flex h-16 w-16 items-center justify-center rounded-full border-4">
|
|
527
|
-
<span className="text-2xl">👨💼</span>
|
|
528
|
-
</div>
|
|
529
|
-
</div>
|
|
530
|
-
</div>
|
|
531
|
-
<div className="p-6 pt-12">
|
|
532
|
-
<div className="flex items-start justify-between">
|
|
533
|
-
<div>
|
|
534
|
-
<h4 className="text-fm-icon-active text-lg font-semibold">
|
|
535
|
-
Michael Johnson
|
|
536
|
-
</h4>
|
|
537
|
-
<p className="text-fm-tertiary text-sm">
|
|
538
|
-
Senior Product Manager
|
|
539
|
-
</p>
|
|
540
|
-
<p className="text-fm-icon-info text-sm">
|
|
541
|
-
TechCorp Solutions
|
|
542
|
-
</p>
|
|
543
|
-
<p className="text-fm-secondary mt-2 text-sm">
|
|
544
|
-
10+ years experience in product strategy and
|
|
545
|
-
team leadership
|
|
546
|
-
</p>
|
|
547
|
-
</div>
|
|
548
|
-
<a
|
|
549
|
-
href="#"
|
|
550
|
-
className="bg-fm-icon-info text-fm-icon-active hover:bg-fm-icon-info rounded-lg px-4 py-2 font-medium transition-colors"
|
|
551
|
-
>
|
|
552
|
-
Connect
|
|
553
|
-
</a>
|
|
554
|
-
</div>
|
|
555
|
-
<div className="mt-4 flex items-center gap-6">
|
|
556
|
-
<div className="text-sm">
|
|
557
|
-
<span className="text-fm-icon-active font-medium">
|
|
558
|
-
847
|
|
559
|
-
</span>
|
|
560
|
-
<span className="text-fm-tertiary ml-1">
|
|
561
|
-
Connections
|
|
562
|
-
</span>
|
|
563
|
-
</div>
|
|
564
|
-
<div className="text-sm">
|
|
565
|
-
<span className="text-fm-icon-active font-medium">
|
|
566
|
-
15
|
|
567
|
-
</span>
|
|
568
|
-
<span className="text-fm-tertiary ml-1">
|
|
569
|
-
Mutual
|
|
570
|
-
</span>
|
|
571
|
-
</div>
|
|
572
|
-
</div>
|
|
573
|
-
<div className="border-fm-divider-secondary mt-4 flex items-center gap-4 border-t pt-4">
|
|
574
|
-
<span className="text-fm-tertiary text-sm">
|
|
575
|
-
Professional networks:
|
|
576
|
-
</span>
|
|
577
|
-
<div className="flex gap-2">
|
|
578
|
-
<a
|
|
579
|
-
href="#"
|
|
580
|
-
className="bg-fm-icon-info hover:bg-fm-icon-info rounded p-2 transition-colors"
|
|
581
|
-
aria-label="Connect on LinkedIn"
|
|
582
|
-
>
|
|
583
|
-
<LinkedInIcon className="text-fm-icon-active h-4 w-4" />
|
|
584
|
-
</a>
|
|
585
|
-
<a
|
|
586
|
-
href="#"
|
|
587
|
-
className="border-fm-divider-contrast bg-fm-surface-primary hover:bg-fm-surface-secondary rounded border p-2 transition-colors"
|
|
588
|
-
aria-label="Follow on X"
|
|
589
|
-
>
|
|
590
|
-
<span className="text-fm-icon-active text-sm">
|
|
591
|
-
𝕏
|
|
592
|
-
</span>
|
|
593
|
-
</a>
|
|
594
|
-
<a
|
|
595
|
-
href="#"
|
|
596
|
-
className="bg-fm-surface-tertiary hover:bg-fm-surface-secondary rounded p-2 transition-colors"
|
|
597
|
-
aria-label="View GitHub"
|
|
598
|
-
>
|
|
599
|
-
<span className="text-fm-icon-active text-sm">
|
|
600
|
-
🐙
|
|
601
|
-
</span>
|
|
602
|
-
</a>
|
|
603
|
-
</div>
|
|
604
|
-
</div>
|
|
605
|
-
</div>
|
|
606
|
-
</div>
|
|
607
|
-
</div>
|
|
608
|
-
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
609
|
-
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
610
|
-
{`// Professional profile card
|
|
611
|
-
<div className="profile-card">
|
|
612
|
-
<div className="profile-header">
|
|
613
|
-
<CoverImage />
|
|
614
|
-
<ProfileAvatar />
|
|
615
|
-
</div>
|
|
616
|
-
<div className="profile-content">
|
|
617
|
-
<div className="profile-info">
|
|
618
|
-
<ProfessionalDetails professional={professional} />
|
|
619
|
-
<ConnectButton userId={professional.id} />
|
|
620
|
-
</div>
|
|
621
|
-
<ConnectionStats stats={professional.connections} />
|
|
622
|
-
<div className="professional-links">
|
|
623
|
-
<span>Professional networks:</span>
|
|
624
|
-
<div className="link-group">
|
|
625
|
-
<a
|
|
626
|
-
href={professional.linkedinUrl}
|
|
627
|
-
className="social-link linkedin-link"
|
|
628
|
-
aria-label="Connect on LinkedIn"
|
|
629
|
-
>
|
|
630
|
-
<LinkedInIcon className="h-4 w-4 text-white" />
|
|
631
|
-
</a>
|
|
632
|
-
<TwitterLink url={professional.twitterUrl} />
|
|
633
|
-
<GitHubLink url={professional.githubUrl} />
|
|
634
|
-
</div>
|
|
635
|
-
</div>
|
|
636
|
-
</div>
|
|
637
|
-
</div>`}
|
|
638
|
-
</pre>
|
|
639
|
-
</div>
|
|
640
|
-
</div>
|
|
641
|
-
</div>
|
|
642
|
-
|
|
643
|
-
{/* Recruitment Platform */}
|
|
644
|
-
<div className="!space-y-4">
|
|
645
|
-
<h3 className="text-fm-icon-info! text-lg font-semibold">
|
|
646
|
-
Recruitment Platform
|
|
647
|
-
</h3>
|
|
648
|
-
<div className="!space-y-4">
|
|
649
|
-
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
|
|
650
|
-
<div className="border-fm-divider-primary bg-fm-surface-secondary overflow-hidden rounded-lg border">
|
|
651
|
-
<div className="border-fm-divider-secondary bg-fm-icon-info/10 border-b p-4">
|
|
652
|
-
<div className="flex items-center justify-between">
|
|
653
|
-
<div className="flex items-center gap-3">
|
|
654
|
-
<LinkedInIcon className="text-fm-icon-info h-6 w-6" />
|
|
655
|
-
<div>
|
|
656
|
-
<h4 className="text-fm-icon-active text-lg font-semibold">
|
|
657
|
-
Talent Acquisition
|
|
658
|
-
</h4>
|
|
659
|
-
<p className="text-fm-tertiary text-sm">
|
|
660
|
-
Connect with top professionals
|
|
661
|
-
</p>
|
|
662
|
-
</div>
|
|
663
|
-
</div>
|
|
664
|
-
<button className="bg-fm-icon-info text-fm-icon-active hover:bg-fm-icon-info rounded-lg px-4 py-2 font-medium transition-colors">
|
|
665
|
-
Post Job
|
|
666
|
-
</button>
|
|
667
|
-
</div>
|
|
668
|
-
</div>
|
|
669
|
-
<div className="p-6">
|
|
670
|
-
<div className="mb-6 grid grid-cols-2 gap-4">
|
|
671
|
-
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-4">
|
|
672
|
-
<div className="mb-3 flex items-center gap-3">
|
|
673
|
-
<div className="bg-fm-icon-info/20 flex h-10 w-10 items-center justify-center rounded-lg">
|
|
674
|
-
<LinkedInIcon className="text-fm-icon-info h-5 w-5" />
|
|
675
|
-
</div>
|
|
676
|
-
<div>
|
|
677
|
-
<h5 className="text-fm-icon-active text-sm font-semibold">
|
|
678
|
-
LinkedIn Sourcing
|
|
679
|
-
</h5>
|
|
680
|
-
<p className="text-fm-tertiary text-xs">
|
|
681
|
-
Professional network
|
|
682
|
-
</p>
|
|
683
|
-
</div>
|
|
684
|
-
</div>
|
|
685
|
-
<div className="text-fm-icon-info mb-1 text-2xl font-bold">
|
|
686
|
-
847
|
|
687
|
-
</div>
|
|
688
|
-
<div className="text-fm-tertiary text-xs">
|
|
689
|
-
Qualified candidates
|
|
690
|
-
</div>
|
|
691
|
-
</div>
|
|
692
|
-
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-4">
|
|
693
|
-
<div className="mb-3 flex items-center gap-3">
|
|
694
|
-
<div className="bg-fm-icon-positive/20 flex h-10 w-10 items-center justify-center rounded-lg">
|
|
695
|
-
<span className="text-fm-icon-positive text-lg">
|
|
696
|
-
🎯
|
|
697
|
-
</span>
|
|
698
|
-
</div>
|
|
699
|
-
<div>
|
|
700
|
-
<h5 className="text-fm-icon-active text-sm font-semibold">
|
|
701
|
-
Active Hiring
|
|
702
|
-
</h5>
|
|
703
|
-
<p className="text-fm-tertiary text-xs">
|
|
704
|
-
Open positions
|
|
705
|
-
</p>
|
|
706
|
-
</div>
|
|
707
|
-
</div>
|
|
708
|
-
<div className="text-fm-icon-positive mb-1 text-2xl font-bold">
|
|
709
|
-
23
|
|
710
|
-
</div>
|
|
711
|
-
<div className="text-fm-tertiary text-xs">
|
|
712
|
-
Roles available
|
|
713
|
-
</div>
|
|
714
|
-
</div>
|
|
715
|
-
</div>
|
|
716
|
-
<div className="space-y-3">
|
|
717
|
-
<div className="border-fm-divider-secondary bg-fm-surface-secondary flex items-center justify-between rounded-lg border p-3">
|
|
718
|
-
<div className="flex items-center gap-3">
|
|
719
|
-
<div className="bg-fm-surface-secondary flex h-8 w-8 items-center justify-center rounded-full">
|
|
720
|
-
<span className="text-xs">👨💻</span>
|
|
721
|
-
</div>
|
|
722
|
-
<div>
|
|
723
|
-
<div className="text-fm-icon-active text-sm font-medium">
|
|
724
|
-
Senior React Developer
|
|
725
|
-
</div>
|
|
726
|
-
<div className="text-fm-tertiary text-xs">
|
|
727
|
-
Remote • Full-time • $120k-160k
|
|
728
|
-
</div>
|
|
729
|
-
</div>
|
|
730
|
-
</div>
|
|
731
|
-
<div className="flex items-center gap-2">
|
|
732
|
-
<span className="text-fm-icon-info text-xs">
|
|
733
|
-
47 applicants
|
|
734
|
-
</span>
|
|
735
|
-
<a
|
|
736
|
-
href="#"
|
|
737
|
-
className="bg-fm-icon-info hover:bg-fm-icon-info rounded p-1 transition-colors"
|
|
738
|
-
>
|
|
739
|
-
<LinkedInIcon className="text-fm-icon-active h-3 w-3" />
|
|
740
|
-
</a>
|
|
741
|
-
</div>
|
|
742
|
-
</div>
|
|
743
|
-
<div className="border-fm-divider-secondary bg-fm-surface-secondary flex items-center justify-between rounded-lg border p-3">
|
|
744
|
-
<div className="flex items-center gap-3">
|
|
745
|
-
<div className="bg-fm-surface-secondary flex h-8 w-8 items-center justify-center rounded-full">
|
|
746
|
-
<span className="text-xs">👩🎨</span>
|
|
747
|
-
</div>
|
|
748
|
-
<div>
|
|
749
|
-
<div className="text-fm-icon-active text-sm font-medium">
|
|
750
|
-
UX Designer
|
|
751
|
-
</div>
|
|
752
|
-
<div className="text-fm-tertiary text-xs">
|
|
753
|
-
Hybrid • Full-time • $90k-130k
|
|
754
|
-
</div>
|
|
755
|
-
</div>
|
|
756
|
-
</div>
|
|
757
|
-
<div className="flex items-center gap-2">
|
|
758
|
-
<span className="text-fm-icon-info text-xs">
|
|
759
|
-
32 applicants
|
|
760
|
-
</span>
|
|
761
|
-
<a
|
|
762
|
-
href="#"
|
|
763
|
-
className="bg-fm-icon-info hover:bg-fm-icon-info rounded p-1 transition-colors"
|
|
764
|
-
>
|
|
765
|
-
<LinkedInIcon className="text-fm-icon-active h-3 w-3" />
|
|
766
|
-
</a>
|
|
767
|
-
</div>
|
|
768
|
-
</div>
|
|
769
|
-
</div>
|
|
770
|
-
</div>
|
|
771
|
-
</div>
|
|
772
|
-
</div>
|
|
773
|
-
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
774
|
-
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
775
|
-
{`// Recruitment platform with LinkedIn integration
|
|
776
|
-
<div className="recruitment-platform">
|
|
777
|
-
<div className="platform-header">
|
|
778
|
-
<div className="platform-info">
|
|
779
|
-
<LinkedInIcon className="h-6 w-6 text-blue-400" />
|
|
780
|
-
<div className="platform-details">
|
|
781
|
-
<h3>Talent Acquisition</h3>
|
|
782
|
-
<p>Connect with top professionals</p>
|
|
783
|
-
</div>
|
|
784
|
-
</div>
|
|
785
|
-
<PostJobButton />
|
|
786
|
-
</div>
|
|
787
|
-
<div className="recruitment-stats">
|
|
788
|
-
<StatCard
|
|
789
|
-
icon={<LinkedInIcon />}
|
|
790
|
-
title="LinkedIn Sourcing"
|
|
791
|
-
value={qualifiedCandidates}
|
|
792
|
-
description="Qualified candidates"
|
|
793
|
-
/>
|
|
794
|
-
<StatCard
|
|
795
|
-
icon="🎯"
|
|
796
|
-
title="Active Hiring"
|
|
797
|
-
value={openPositions}
|
|
798
|
-
description="Roles available"
|
|
799
|
-
/>
|
|
800
|
-
</div>
|
|
801
|
-
<div className="job-listings">
|
|
802
|
-
{jobListings.map(job => (
|
|
803
|
-
<div key={job.id} className="job-listing">
|
|
804
|
-
<JobDetails job={job} />
|
|
805
|
-
<div className="job-actions">
|
|
806
|
-
<span className="applicant-count">{job.applicants} applicants</span>
|
|
807
|
-
<a
|
|
808
|
-
href={generateLinkedInJobUrl(job)}
|
|
809
|
-
className="linkedin-action"
|
|
810
|
-
aria-label="Share job on LinkedIn"
|
|
811
|
-
>
|
|
812
|
-
<LinkedInIcon className="h-3 w-3 text-white" />
|
|
813
|
-
</a>
|
|
814
|
-
</div>
|
|
815
|
-
</div>
|
|
816
|
-
))}
|
|
817
|
-
</div>
|
|
818
|
-
</div>`}
|
|
819
|
-
</pre>
|
|
820
|
-
</div>
|
|
821
|
-
</div>
|
|
822
|
-
</div>
|
|
823
|
-
|
|
824
|
-
{/* Business Team Directory */}
|
|
825
|
-
<div className="!space-y-4">
|
|
826
|
-
<h3 className="text-fm-icon-info! text-lg font-semibold">
|
|
827
|
-
Business Team Directory
|
|
828
|
-
</h3>
|
|
829
|
-
<div className="!space-y-4">
|
|
830
|
-
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
|
|
831
|
-
<div className="border-fm-divider-primary bg-fm-surface-secondary overflow-hidden rounded-lg border">
|
|
832
|
-
<div className="border-fm-divider-secondary bg-fm-surface-secondary border-b p-4">
|
|
833
|
-
<h4 className="text-fm-icon-active text-lg font-semibold">
|
|
834
|
-
Leadership Team
|
|
835
|
-
</h4>
|
|
836
|
-
<p className="text-fm-tertiary text-sm">
|
|
837
|
-
Connect with our executives and department heads
|
|
838
|
-
</p>
|
|
839
|
-
</div>
|
|
840
|
-
<div className="space-y-4 p-4">
|
|
841
|
-
<div className="grid grid-cols-1 gap-4 md:grid-cols-2">
|
|
842
|
-
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-4">
|
|
843
|
-
<div className="mb-3 flex items-center gap-3">
|
|
844
|
-
<div className="bg-fm-surface-secondary flex h-12 w-12 items-center justify-center rounded-full">
|
|
845
|
-
<span className="text-lg">👩💼</span>
|
|
846
|
-
</div>
|
|
847
|
-
<div className="flex-1">
|
|
848
|
-
<h5 className="text-fm-icon-active text-sm font-semibold">
|
|
849
|
-
Sarah Chen
|
|
850
|
-
</h5>
|
|
851
|
-
<p className="text-fm-tertiary text-xs">
|
|
852
|
-
Chief Executive Officer
|
|
853
|
-
</p>
|
|
854
|
-
</div>
|
|
855
|
-
<a
|
|
856
|
-
href="#"
|
|
857
|
-
className="bg-fm-icon-info hover:bg-fm-icon-info rounded p-2 transition-colors"
|
|
858
|
-
aria-label="Connect with Sarah Chen on LinkedIn"
|
|
859
|
-
>
|
|
860
|
-
<LinkedInIcon className="text-fm-icon-active h-4 w-4" />
|
|
861
|
-
</a>
|
|
862
|
-
</div>
|
|
863
|
-
<p className="text-fm-secondary text-xs">
|
|
864
|
-
15+ years leading tech companies through rapid
|
|
865
|
-
growth phases
|
|
866
|
-
</p>
|
|
867
|
-
</div>
|
|
868
|
-
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-4">
|
|
869
|
-
<div className="mb-3 flex items-center gap-3">
|
|
870
|
-
<div className="bg-fm-surface-secondary flex h-12 w-12 items-center justify-center rounded-full">
|
|
871
|
-
<span className="text-lg">👨💻</span>
|
|
872
|
-
</div>
|
|
873
|
-
<div className="flex-1">
|
|
874
|
-
<h5 className="text-fm-icon-active text-sm font-semibold">
|
|
875
|
-
David Rodriguez
|
|
876
|
-
</h5>
|
|
877
|
-
<p className="text-fm-tertiary text-xs">
|
|
878
|
-
Chief Technology Officer
|
|
879
|
-
</p>
|
|
880
|
-
</div>
|
|
881
|
-
<a
|
|
882
|
-
href="#"
|
|
883
|
-
className="bg-fm-icon-info hover:bg-fm-icon-info rounded p-2 transition-colors"
|
|
884
|
-
aria-label="Connect with David Rodriguez on LinkedIn"
|
|
885
|
-
>
|
|
886
|
-
<LinkedInIcon className="text-fm-icon-active h-4 w-4" />
|
|
887
|
-
</a>
|
|
888
|
-
</div>
|
|
889
|
-
<p className="text-fm-secondary text-xs">
|
|
890
|
-
Former engineering lead at major tech
|
|
891
|
-
companies, patent holder
|
|
892
|
-
</p>
|
|
893
|
-
</div>
|
|
894
|
-
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-4">
|
|
895
|
-
<div className="mb-3 flex items-center gap-3">
|
|
896
|
-
<div className="bg-fm-surface-secondary flex h-12 w-12 items-center justify-center rounded-full">
|
|
897
|
-
<span className="text-lg">👩🎨</span>
|
|
898
|
-
</div>
|
|
899
|
-
<div className="flex-1">
|
|
900
|
-
<h5 className="text-fm-icon-active text-sm font-semibold">
|
|
901
|
-
Emily Johnson
|
|
902
|
-
</h5>
|
|
903
|
-
<p className="text-fm-tertiary text-xs">
|
|
904
|
-
Head of Design
|
|
905
|
-
</p>
|
|
906
|
-
</div>
|
|
907
|
-
<a
|
|
908
|
-
href="#"
|
|
909
|
-
className="bg-fm-icon-info hover:bg-fm-icon-info rounded p-2 transition-colors"
|
|
910
|
-
aria-label="Connect with Emily Johnson on LinkedIn"
|
|
911
|
-
>
|
|
912
|
-
<LinkedInIcon className="text-fm-icon-active h-4 w-4" />
|
|
913
|
-
</a>
|
|
914
|
-
</div>
|
|
915
|
-
<p className="text-fm-secondary text-xs">
|
|
916
|
-
Award-winning designer with expertise in user
|
|
917
|
-
experience and brand strategy
|
|
918
|
-
</p>
|
|
919
|
-
</div>
|
|
920
|
-
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-4">
|
|
921
|
-
<div className="mb-3 flex items-center gap-3">
|
|
922
|
-
<div className="bg-fm-surface-secondary flex h-12 w-12 items-center justify-center rounded-full">
|
|
923
|
-
<span className="text-lg">👨💼</span>
|
|
924
|
-
</div>
|
|
925
|
-
<div className="flex-1">
|
|
926
|
-
<h5 className="text-fm-icon-active text-sm font-semibold">
|
|
927
|
-
Marcus Thompson
|
|
928
|
-
</h5>
|
|
929
|
-
<p className="text-fm-tertiary text-xs">
|
|
930
|
-
VP of Sales
|
|
931
|
-
</p>
|
|
932
|
-
</div>
|
|
933
|
-
<a
|
|
934
|
-
href="#"
|
|
935
|
-
className="bg-fm-icon-info hover:bg-fm-icon-info rounded p-2 transition-colors"
|
|
936
|
-
aria-label="Connect with Marcus Thompson on LinkedIn"
|
|
937
|
-
>
|
|
938
|
-
<LinkedInIcon className="text-fm-icon-active h-4 w-4" />
|
|
939
|
-
</a>
|
|
940
|
-
</div>
|
|
941
|
-
<p className="text-fm-secondary text-xs">
|
|
942
|
-
Top sales performer with track record of
|
|
943
|
-
building high-performing teams
|
|
944
|
-
</p>
|
|
945
|
-
</div>
|
|
946
|
-
</div>
|
|
947
|
-
</div>
|
|
948
|
-
</div>
|
|
949
|
-
</div>
|
|
950
|
-
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
951
|
-
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
952
|
-
{`// Business team directory
|
|
953
|
-
<div className="team-directory">
|
|
954
|
-
<div className="directory-header">
|
|
955
|
-
<h3>Leadership Team</h3>
|
|
956
|
-
<p>Connect with our executives and department heads</p>
|
|
957
|
-
</div>
|
|
958
|
-
<div className="team-grid">
|
|
959
|
-
{leadershipTeam.map(member => (
|
|
960
|
-
<div key={member.id} className="team-member-card">
|
|
961
|
-
<div className="member-header">
|
|
962
|
-
<Avatar member={member} />
|
|
963
|
-
<div className="member-info">
|
|
964
|
-
<h4 className="member-name">{member.name}</h4>
|
|
965
|
-
<p className="member-title">{member.title}</p>
|
|
966
|
-
</div>
|
|
967
|
-
<a
|
|
968
|
-
href={member.linkedinUrl}
|
|
969
|
-
className="linkedin-connect"
|
|
970
|
-
aria-label={"Connect with " + member.name + " on LinkedIn"}
|
|
971
|
-
>
|
|
972
|
-
<LinkedInIcon className="h-4 w-4 text-white" />
|
|
973
|
-
</a>
|
|
974
|
-
</div>
|
|
975
|
-
<p className="member-bio">{member.bio}</p>
|
|
976
|
-
</div>
|
|
977
|
-
))}
|
|
978
|
-
</div>
|
|
979
|
-
</div>`}
|
|
980
|
-
</pre>
|
|
981
|
-
</div>
|
|
982
|
-
</div>
|
|
983
|
-
</div>
|
|
984
|
-
|
|
985
|
-
{/* Professional Share Widget */}
|
|
986
|
-
<div className="!space-y-4">
|
|
987
|
-
<h3 className="text-fm-icon-info! text-lg font-semibold">
|
|
988
|
-
Professional Content Sharing
|
|
989
|
-
</h3>
|
|
990
|
-
<div className="!space-y-4">
|
|
991
|
-
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
|
|
992
|
-
<div className="border-fm-divider-primary bg-fm-surface-secondary overflow-hidden rounded-lg border">
|
|
993
|
-
<div className="p-6">
|
|
994
|
-
<div className="mb-6 text-center">
|
|
995
|
-
<h4 className="text-fm-icon-active mb-2 text-xl font-semibold">
|
|
996
|
-
Share Your Success
|
|
997
|
-
</h4>
|
|
998
|
-
<p className="text-fm-secondary text-sm">
|
|
999
|
-
Expand your professional network and showcase
|
|
1000
|
-
achievements
|
|
1001
|
-
</p>
|
|
1002
|
-
</div>
|
|
1003
|
-
<div className="mb-6 grid grid-cols-2 gap-4">
|
|
1004
|
-
<div className="border-fm-icon-info/20 bg-fm-icon-info/10 rounded-lg border p-4">
|
|
1005
|
-
<div className="bg-fm-icon-info mb-3 flex h-12 w-12 items-center justify-center rounded-lg">
|
|
1006
|
-
<LinkedInIcon className="text-fm-icon-active h-6 w-6" />
|
|
1007
|
-
</div>
|
|
1008
|
-
<h5 className="text-fm-icon-active mb-2 text-sm font-semibold">
|
|
1009
|
-
Professional Network
|
|
1010
|
-
</h5>
|
|
1011
|
-
<p className="text-fm-tertiary text-xs">
|
|
1012
|
-
Share achievements and insights with your
|
|
1013
|
-
professional network
|
|
1014
|
-
</p>
|
|
1015
|
-
</div>
|
|
1016
|
-
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-4">
|
|
1017
|
-
<div className="bg-fm-icon-info/20 mb-3 flex h-12 w-12 items-center justify-center rounded-lg">
|
|
1018
|
-
<span className="text-xl">🚀</span>
|
|
1019
|
-
</div>
|
|
1020
|
-
<h5 className="text-fm-icon-active mb-2 text-sm font-semibold">
|
|
1021
|
-
Career Growth
|
|
1022
|
-
</h5>
|
|
1023
|
-
<p className="text-fm-tertiary text-xs">
|
|
1024
|
-
Build your personal brand and advance your
|
|
1025
|
-
career
|
|
1026
|
-
</p>
|
|
1027
|
-
</div>
|
|
1028
|
-
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-4">
|
|
1029
|
-
<div className="bg-fm-icon-positive/20 mb-3 flex h-12 w-12 items-center justify-center rounded-lg">
|
|
1030
|
-
<span className="text-xl">🤝</span>
|
|
1031
|
-
</div>
|
|
1032
|
-
<h5 className="text-fm-icon-active mb-2 text-sm font-semibold">
|
|
1033
|
-
Business Connections
|
|
1034
|
-
</h5>
|
|
1035
|
-
<p className="text-fm-tertiary text-xs">
|
|
1036
|
-
Connect with industry leaders and potential
|
|
1037
|
-
collaborators
|
|
1038
|
-
</p>
|
|
1039
|
-
</div>
|
|
1040
|
-
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-4">
|
|
1041
|
-
<div className="bg-fm-secondary-500/20 mb-3 flex h-12 w-12 items-center justify-center rounded-lg">
|
|
1042
|
-
<span className="text-xl">💼</span>
|
|
1043
|
-
</div>
|
|
1044
|
-
<h5 className="text-fm-icon-active mb-2 text-sm font-semibold">
|
|
1045
|
-
Thought Leadership
|
|
1046
|
-
</h5>
|
|
1047
|
-
<p className="text-fm-tertiary text-xs">
|
|
1048
|
-
Establish yourself as an industry expert and
|
|
1049
|
-
influencer
|
|
1050
|
-
</p>
|
|
1051
|
-
</div>
|
|
1052
|
-
</div>
|
|
1053
|
-
<div className="text-center">
|
|
1054
|
-
<a
|
|
1055
|
-
href="#"
|
|
1056
|
-
className="bg-fm-icon-info text-fm-icon-active hover:bg-fm-icon-info inline-flex items-center gap-2 rounded-lg px-6 py-3 font-medium transition-colors"
|
|
1057
|
-
>
|
|
1058
|
-
<LinkedInIcon className="h-5 w-5" />
|
|
1059
|
-
<span>Share on LinkedIn</span>
|
|
1060
|
-
</a>
|
|
1061
|
-
</div>
|
|
1062
|
-
</div>
|
|
1063
|
-
</div>
|
|
1064
|
-
</div>
|
|
1065
|
-
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
1066
|
-
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
1067
|
-
{`// Professional content sharing widget
|
|
1068
|
-
<div className="content-sharing-widget">
|
|
1069
|
-
<div className="widget-header">
|
|
1070
|
-
<h2>Share Your Success</h2>
|
|
1071
|
-
<p>Expand your professional network and showcase achievements</p>
|
|
1072
|
-
</div>
|
|
1073
|
-
<div className="feature-grid">
|
|
1074
|
-
<div className="feature-card linkedin-feature">
|
|
1075
|
-
<div className="feature-icon">
|
|
1076
|
-
<LinkedInIcon className="h-6 w-6 text-white" />
|
|
1077
|
-
</div>
|
|
1078
|
-
<h3>Professional Network</h3>
|
|
1079
|
-
<p>Share achievements and insights with your professional network</p>
|
|
1080
|
-
</div>
|
|
1081
|
-
<CareerGrowthFeature />
|
|
1082
|
-
<BusinessConnectionsFeature />
|
|
1083
|
-
<ThoughtLeadershipFeature />
|
|
1084
|
-
</div>
|
|
1085
|
-
<div className="cta-section">
|
|
1086
|
-
<a
|
|
1087
|
-
href={linkedinShareUrl}
|
|
1088
|
-
className="cta-button linkedin-cta"
|
|
1089
|
-
>
|
|
1090
|
-
<LinkedInIcon className="h-5 w-5" />
|
|
1091
|
-
<span>Share on LinkedIn</span>
|
|
1092
|
-
</a>
|
|
1093
|
-
</div>
|
|
1094
|
-
</div>`}
|
|
1095
|
-
</pre>
|
|
1096
|
-
</div>
|
|
1097
|
-
</div>
|
|
1098
|
-
</div>
|
|
1099
|
-
</div>
|
|
1100
|
-
</div>
|
|
1101
|
-
|
|
1102
|
-
{/* Accessibility */}
|
|
1103
|
-
<div className="!space-y-8">
|
|
1104
|
-
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
1105
|
-
Accessibility Features
|
|
1106
|
-
</h2>
|
|
1107
|
-
<div className="grid grid-cols-1 gap-8 md:grid-cols-2">
|
|
1108
|
-
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
|
|
1109
|
-
<h3 className="text-fm-icon-positive! text-lg font-semibold">
|
|
1110
|
-
✅ Built-in Features
|
|
1111
|
-
</h3>
|
|
1112
|
-
<ul className="text-fm-secondary! !space-y-2 text-sm">
|
|
1113
|
-
<li className="text-fm-secondary!">
|
|
1114
|
-
Uses Radix UI AccessibleIcon wrapper
|
|
1115
|
-
</li>
|
|
1116
|
-
<li className="text-fm-secondary!">
|
|
1117
|
-
Provides screen reader label "LinkedIn icon"
|
|
1118
|
-
</li>
|
|
1119
|
-
<li className="text-fm-secondary!">
|
|
1120
|
-
Supports keyboard navigation when interactive
|
|
1121
|
-
</li>
|
|
1122
|
-
<li className="text-fm-secondary!">
|
|
1123
|
-
High contrast design for visibility
|
|
1124
|
-
</li>
|
|
1125
|
-
<li className="text-fm-secondary!">
|
|
1126
|
-
Maintains aspect ratio across all sizes
|
|
1127
|
-
</li>
|
|
1128
|
-
</ul>
|
|
1129
|
-
</div>
|
|
1130
|
-
|
|
1131
|
-
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
|
|
1132
|
-
<h3 className="text-fm-icon-info! text-lg font-semibold">
|
|
1133
|
-
💡 Best Practices
|
|
1134
|
-
</h3>
|
|
1135
|
-
<ul className="text-fm-secondary !space-y-2 text-sm">
|
|
1136
|
-
<li className="text-fm-secondary!">
|
|
1137
|
-
Always provide descriptive aria-labels for LinkedIn
|
|
1138
|
-
actions
|
|
1139
|
-
</li>
|
|
1140
|
-
<li className="text-fm-secondary!">
|
|
1141
|
-
Use LinkedIn's official blue color for brand consistency
|
|
1142
|
-
</li>
|
|
1143
|
-
<li className="text-fm-secondary!">
|
|
1144
|
-
Ensure sufficient contrast with professional contexts
|
|
1145
|
-
</li>
|
|
1146
|
-
<li className="text-fm-secondary!">
|
|
1147
|
-
Include external link indicators for LinkedIn URLs
|
|
1148
|
-
</li>
|
|
1149
|
-
<li className="text-fm-secondary!">
|
|
1150
|
-
Consider professional context in related features
|
|
1151
|
-
</li>
|
|
1152
|
-
</ul>
|
|
1153
|
-
</div>
|
|
1154
|
-
</div>
|
|
1155
|
-
|
|
1156
|
-
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
|
|
1157
|
-
<h3 className="text-fm-icon-info! mb-4 text-lg font-semibold">
|
|
1158
|
-
Proper ARIA Implementation
|
|
1159
|
-
</h3>
|
|
1160
|
-
<div className="grid grid-cols-1 gap-6 lg:grid-cols-2">
|
|
1161
|
-
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
1162
|
-
<pre className="text-fm-icon-info! overflow-x-auto text-sm">
|
|
1163
|
-
{`// LinkedIn profile link
|
|
1164
|
-
<a
|
|
1165
|
-
href="https://linkedin.com/in/username"
|
|
1166
|
-
className="linkedin-link"
|
|
1167
|
-
aria-label="Connect with username on LinkedIn"
|
|
1168
|
-
target="_blank"
|
|
1169
|
-
rel="noopener noreferrer"
|
|
1170
|
-
>
|
|
1171
|
-
<LinkedInIcon className="h-5 w-5 text-white" />
|
|
1172
|
-
</a>
|
|
1173
|
-
|
|
1174
|
-
// Professional team directory
|
|
1175
|
-
<div className="team-directory">
|
|
1176
|
-
<h2 id="team-title">Leadership Team</h2>
|
|
1177
|
-
<div
|
|
1178
|
-
className="team-grid"
|
|
1179
|
-
role="grid"
|
|
1180
|
-
aria-labelledby="team-title"
|
|
1181
|
-
>
|
|
1182
|
-
{teamMembers.map(member => (
|
|
1183
|
-
<div
|
|
1184
|
-
key={member.id}
|
|
1185
|
-
role="gridcell"
|
|
1186
|
-
className="team-member"
|
|
1187
|
-
>
|
|
1188
|
-
<MemberInfo member={member} />
|
|
1189
|
-
<a
|
|
1190
|
-
href={member.linkedinUrl}
|
|
1191
|
-
aria-label={"Connect with " + member.name + " on LinkedIn"}
|
|
1192
|
-
target="_blank"
|
|
1193
|
-
rel="noopener noreferrer"
|
|
1194
|
-
>
|
|
1195
|
-
<LinkedInIcon className="h-4 w-4" />
|
|
1196
|
-
</a>
|
|
1197
|
-
</div>
|
|
1198
|
-
))}
|
|
1199
|
-
</div>
|
|
1200
|
-
</div>
|
|
1201
|
-
|
|
1202
|
-
// Share to LinkedIn button
|
|
1203
|
-
<button
|
|
1204
|
-
onClick={shareToLinkedIn}
|
|
1205
|
-
className="share-btn"
|
|
1206
|
-
aria-label="Share this content on LinkedIn"
|
|
1207
|
-
>
|
|
1208
|
-
<LinkedInIcon className="h-4 w-4" />
|
|
1209
|
-
<span>Share on LinkedIn</span>
|
|
1210
|
-
</button>
|
|
1211
|
-
|
|
1212
|
-
// Professional profile card
|
|
1213
|
-
<div className="profile-card">
|
|
1214
|
-
<div className="profile-header">
|
|
1215
|
-
<h1>{professional.name}</h1>
|
|
1216
|
-
<div className="professional-social">
|
|
1217
|
-
<a
|
|
1218
|
-
href={professional.linkedin}
|
|
1219
|
-
className="primary-professional-link"
|
|
1220
|
-
aria-label={"Connect with " + professional.name + " on LinkedIn"}
|
|
1221
|
-
>
|
|
1222
|
-
<LinkedInIcon className="h-5 w-5" />
|
|
1223
|
-
<span className="sr-only">Primary professional network</span>
|
|
1224
|
-
</a>
|
|
1225
|
-
</div>
|
|
1226
|
-
</div>
|
|
1227
|
-
</div>
|
|
1228
|
-
|
|
1229
|
-
// Recruitment platform
|
|
1230
|
-
<div className="recruitment-platform">
|
|
1231
|
-
<div className="job-listings">
|
|
1232
|
-
{jobs.map(job => (
|
|
1233
|
-
<article
|
|
1234
|
-
key={job.id}
|
|
1235
|
-
className="job-listing"
|
|
1236
|
-
aria-label={job.title + " at " + job.company}
|
|
1237
|
-
>
|
|
1238
|
-
<JobDetails job={job} />
|
|
1239
|
-
<div className="job-actions">
|
|
1240
|
-
<a
|
|
1241
|
-
href={generateLinkedInJobUrl(job)}
|
|
1242
|
-
aria-label="Share this job posting on LinkedIn"
|
|
1243
|
-
target="_blank"
|
|
1244
|
-
rel="noopener noreferrer"
|
|
1245
|
-
>
|
|
1246
|
-
<LinkedInIcon className="h-3 w-3" />
|
|
1247
|
-
</a>
|
|
1248
|
-
</div>
|
|
1249
|
-
</article>
|
|
1250
|
-
))}
|
|
1251
|
-
</div>
|
|
1252
|
-
</div>`}
|
|
1253
|
-
</pre>
|
|
1254
|
-
</div>
|
|
1255
|
-
<div className="!space-y-4">
|
|
1256
|
-
<p className="text-fm-secondary! text-sm">
|
|
1257
|
-
When using LinkedInIcon for professional integration,
|
|
1258
|
-
always provide clear context about the professional
|
|
1259
|
-
relationship and ensure users understand the networking
|
|
1260
|
-
implications of their actions.
|
|
1261
|
-
</p>
|
|
1262
|
-
<div className="border-fm-icon-info/20 bg-fm-icon-info/10 rounded-lg border p-4">
|
|
1263
|
-
<div className="text-fm-icon-info flex items-center gap-2 text-sm">
|
|
1264
|
-
<LinkedInIcon className="h-4 w-4" />
|
|
1265
|
-
<span>
|
|
1266
|
-
Consider professional context and career
|
|
1267
|
-
implications for screen readers
|
|
1268
|
-
</span>
|
|
1269
|
-
</div>
|
|
1270
|
-
</div>
|
|
1271
|
-
</div>
|
|
1272
|
-
</div>
|
|
1273
|
-
</div>
|
|
1274
|
-
</div>
|
|
1275
|
-
|
|
1276
|
-
{/* Related Icons */}
|
|
1277
|
-
<div className="!space-y-8">
|
|
1278
|
-
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
1279
|
-
Related Icons
|
|
1280
|
-
</h2>
|
|
1281
|
-
<div className="grid grid-cols-2 gap-6 md:grid-cols-4">
|
|
1282
|
-
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
|
|
1283
|
-
<div className="bg-fm-surface-primary !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
|
|
1284
|
-
<span className="text-fm-icon-active! !text-2xl">𝕏</span>
|
|
1285
|
-
</div>
|
|
1286
|
-
<div>
|
|
1287
|
-
<div className="text-fm-icon-active font-medium">
|
|
1288
|
-
TwitterXIcon
|
|
1289
|
-
</div>
|
|
1290
|
-
<div className="text-fm-tertiary text-xs">
|
|
1291
|
-
Social network
|
|
1292
|
-
</div>
|
|
1293
|
-
</div>
|
|
1294
|
-
</div>
|
|
1295
|
-
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
|
|
1296
|
-
<div className="from-fm-secondary-500 via-fm-secondary-500 to-fm-icon-warning !mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-linear-to-br">
|
|
1297
|
-
<span className="text-fm-icon-active! !text-2xl">📷</span>
|
|
1298
|
-
</div>
|
|
1299
|
-
<div>
|
|
1300
|
-
<div className="text-fm-icon-active font-medium">
|
|
1301
|
-
InstagramIcon
|
|
1302
|
-
</div>
|
|
1303
|
-
<div className="text-fm-tertiary text-xs">
|
|
1304
|
-
Visual content
|
|
1305
|
-
</div>
|
|
1306
|
-
</div>
|
|
1307
|
-
</div>
|
|
1308
|
-
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
|
|
1309
|
-
<div className="bg-fm-icon-info/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
|
|
1310
|
-
<span className="text-fm-icon-active! !text-2xl">📘</span>
|
|
1311
|
-
</div>
|
|
1312
|
-
<div>
|
|
1313
|
-
<div className="text-fm-icon-active font-medium">
|
|
1314
|
-
FacebookIcon
|
|
1315
|
-
</div>
|
|
1316
|
-
<div className="text-fm-tertiary text-xs">
|
|
1317
|
-
Social platform
|
|
1318
|
-
</div>
|
|
1319
|
-
</div>
|
|
1320
|
-
</div>
|
|
1321
|
-
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
|
|
1322
|
-
<div className="bg-fm-surface-tertiary !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
|
|
1323
|
-
<span className="text-fm-icon-active! !text-2xl">🐙</span>
|
|
1324
|
-
</div>
|
|
1325
|
-
<div>
|
|
1326
|
-
<div className="text-fm-icon-active font-medium">
|
|
1327
|
-
GitHubIcon
|
|
1328
|
-
</div>
|
|
1329
|
-
<div className="text-fm-tertiary text-xs">
|
|
1330
|
-
Code repository
|
|
1331
|
-
</div>
|
|
1332
|
-
</div>
|
|
1333
|
-
</div>
|
|
1334
|
-
</div>
|
|
1335
|
-
</div>
|
|
1336
|
-
</div>
|
|
1337
|
-
|
|
1338
|
-
{/* Footer */}
|
|
1339
|
-
<div className="border-fm-divider-secondary bg-fm-surface-secondary border-t backdrop-blur-xl">
|
|
1340
|
-
<div className="!mx-auto max-w-7xl px-6 py-8">
|
|
1341
|
-
<div className="!space-y-4 text-center">
|
|
1342
|
-
<p className="text-fm-tertiary!">
|
|
1343
|
-
LinkedInIcon is part of the Aural UI icon library, built
|
|
1344
|
-
with accessibility and professional networking best
|
|
1345
|
-
practices in mind.
|
|
1346
|
-
</p>
|
|
1347
|
-
<p className="text-fm-placeholder! text-sm">
|
|
1348
|
-
All icons use Radix UI's AccessibleIcon for screen reader
|
|
1349
|
-
compatibility and follow WCAG guidelines for professional
|
|
1350
|
-
platform recognition and career development accessibility.
|
|
1351
|
-
</p>
|
|
1352
|
-
</div>
|
|
1353
|
-
</div>
|
|
1354
|
-
</div>
|
|
1355
|
-
</div>
|
|
1356
|
-
</>
|
|
51
|
+
}`,
|
|
52
|
+
livePreview: (
|
|
53
|
+
<a href="#" target="_blank" rel="noreferrer">
|
|
54
|
+
<LinkedInIcon className="text-fm-icon-active h-6 w-6" />
|
|
55
|
+
</a>
|
|
56
|
+
),
|
|
57
|
+
}}
|
|
58
|
+
relatedIcons={[
|
|
59
|
+
{
|
|
60
|
+
name: "InstagramIcon",
|
|
61
|
+
description: "Instagram brand mark",
|
|
62
|
+
icon: InstagramIcon,
|
|
63
|
+
accentToken: "info",
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
name: "ThreadsIcon",
|
|
67
|
+
description: "Threads brand mark",
|
|
68
|
+
icon: ThreadsIcon,
|
|
69
|
+
accentToken: "positive",
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
name: "TwitterXIcon",
|
|
73
|
+
description: "X (Twitter) brand mark",
|
|
74
|
+
icon: TwitterXIcon,
|
|
75
|
+
accentToken: "warning",
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
name: "GoogleLogoIcon",
|
|
79
|
+
description: "Google brand mark",
|
|
80
|
+
icon: GoogleLogoIcon,
|
|
81
|
+
accentToken: "negative",
|
|
82
|
+
},
|
|
83
|
+
]}
|
|
84
|
+
/>
|
|
1357
85
|
),
|
|
1358
86
|
},
|
|
1359
87
|
},
|
|
1360
88
|
tags: ["autodocs"],
|
|
1361
89
|
argTypes: {
|
|
1362
|
-
width: {
|
|
1363
|
-
control: { type: "range", min: 8, max: 96, step: 2 },
|
|
1364
|
-
description: "Width of the icon (maintains aspect ratio)",
|
|
1365
|
-
},
|
|
1366
|
-
withAccessibility: {
|
|
1367
|
-
control: "boolean",
|
|
1368
|
-
description: "Whether to wrap the icon with accessibility features",
|
|
1369
|
-
},
|
|
1370
|
-
height: {
|
|
1371
|
-
control: { type: "range", min: 8, max: 96, step: 2 },
|
|
1372
|
-
description: "Height of the icon (maintains aspect ratio)",
|
|
1373
|
-
},
|
|
1374
|
-
fill: {
|
|
1375
|
-
control: "color",
|
|
1376
|
-
description: "Fill color of the LinkedIn square icon",
|
|
1377
|
-
},
|
|
1378
90
|
className: {
|
|
1379
91
|
control: "text",
|
|
1380
|
-
description: "CSS classes
|
|
92
|
+
description: "CSS classes including color token",
|
|
1381
93
|
},
|
|
1382
|
-
|
|
1383
|
-
|
|
1384
|
-
description: "
|
|
94
|
+
withAccessibility: {
|
|
95
|
+
control: "boolean",
|
|
96
|
+
description: "Wrap with accessibility label",
|
|
1385
97
|
},
|
|
1386
98
|
},
|
|
1387
99
|
}
|
|
@@ -1389,240 +101,125 @@ function ProfessionalProfile() {
|
|
|
1389
101
|
export default meta
|
|
1390
102
|
type Story = StoryObj<typeof LinkedInIcon>
|
|
1391
103
|
|
|
1392
|
-
// Story parameters for consistent dark theme
|
|
1393
|
-
const storyParameters = {
|
|
1394
|
-
backgrounds: {
|
|
1395
|
-
default: "dark",
|
|
1396
|
-
values: [
|
|
1397
|
-
{ name: "dark", value: "var(--color-fm-surface-primary)" },
|
|
1398
|
-
{ name: "darker", value: "var(--color-fm-neutral-0)" },
|
|
1399
|
-
],
|
|
1400
|
-
},
|
|
1401
|
-
}
|
|
1402
|
-
|
|
1403
104
|
export const Default: Story = {
|
|
1404
105
|
args: {
|
|
1405
|
-
className: "h-
|
|
106
|
+
className: "h-6 w-6 text-fm-icon-active",
|
|
1406
107
|
withAccessibility: true,
|
|
1407
108
|
},
|
|
1408
|
-
parameters: storyParameters,
|
|
1409
109
|
render: (args) => (
|
|
1410
|
-
<
|
|
110
|
+
<IconDefaultCanvas>
|
|
1411
111
|
<LinkedInIcon {...args} />
|
|
1412
|
-
</
|
|
112
|
+
</IconDefaultCanvas>
|
|
1413
113
|
),
|
|
1414
114
|
}
|
|
1415
115
|
|
|
1416
116
|
export const SizeVariations: Story = {
|
|
1417
|
-
|
|
1418
|
-
...storyParameters,
|
|
1419
|
-
docs: {
|
|
1420
|
-
description: {
|
|
1421
|
-
story:
|
|
1422
|
-
"LinkedInIcon in different sizes, from small inline professional links to large recruitment displays.",
|
|
1423
|
-
},
|
|
1424
|
-
},
|
|
1425
|
-
},
|
|
1426
|
-
render: () => (
|
|
1427
|
-
<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">
|
|
1428
|
-
<div className="text-center">
|
|
1429
|
-
<LinkedInIcon className="text-fm-icon-info !mx-auto mb-2 h-3 w-3" />
|
|
1430
|
-
<span className="text-fm-tertiary text-xs">12px</span>
|
|
1431
|
-
</div>
|
|
1432
|
-
<div className="text-center">
|
|
1433
|
-
<LinkedInIcon className="text-fm-icon-info !mx-auto mb-2 h-4 w-4" />
|
|
1434
|
-
<span className="text-fm-tertiary text-xs">16px</span>
|
|
1435
|
-
</div>
|
|
1436
|
-
<div className="text-center">
|
|
1437
|
-
<LinkedInIcon className="text-fm-icon-info !mx-auto mb-2 h-5 w-5" />
|
|
1438
|
-
<span className="text-fm-tertiary text-xs">20px</span>
|
|
1439
|
-
</div>
|
|
1440
|
-
<div className="text-center">
|
|
1441
|
-
<LinkedInIcon className="text-fm-icon-info !mx-auto mb-2 h-6 w-6" />
|
|
1442
|
-
<span className="text-fm-tertiary text-xs">24px</span>
|
|
1443
|
-
</div>
|
|
1444
|
-
<div className="text-center">
|
|
1445
|
-
<LinkedInIcon className="text-fm-icon-info !mx-auto mb-2 h-8 w-8" />
|
|
1446
|
-
<span className="text-fm-tertiary text-xs">32px</span>
|
|
1447
|
-
</div>
|
|
1448
|
-
<div className="text-center">
|
|
1449
|
-
<LinkedInIcon className="text-fm-icon-info !mx-auto mb-2 h-12 w-12" />
|
|
1450
|
-
<span className="text-fm-tertiary text-xs">48px</span>
|
|
1451
|
-
</div>
|
|
1452
|
-
</div>
|
|
1453
|
-
),
|
|
117
|
+
render: () => <IconSizeVariations icon={LinkedInIcon} />,
|
|
1454
118
|
}
|
|
1455
119
|
|
|
1456
120
|
export const BrandColors: Story = {
|
|
1457
|
-
parameters: {
|
|
1458
|
-
...storyParameters,
|
|
1459
|
-
docs: {
|
|
1460
|
-
description: {
|
|
1461
|
-
story:
|
|
1462
|
-
"LinkedInIcon in different brand-compliant colors for various professional contexts.",
|
|
1463
|
-
},
|
|
1464
|
-
},
|
|
1465
|
-
},
|
|
1466
121
|
render: () => (
|
|
1467
|
-
<
|
|
1468
|
-
|
|
1469
|
-
|
|
1470
|
-
|
|
1471
|
-
|
|
1472
|
-
|
|
1473
|
-
|
|
1474
|
-
|
|
1475
|
-
|
|
1476
|
-
|
|
1477
|
-
|
|
1478
|
-
|
|
1479
|
-
|
|
1480
|
-
|
|
1481
|
-
|
|
1482
|
-
|
|
1483
|
-
|
|
1484
|
-
|
|
1485
|
-
|
|
1486
|
-
|
|
1487
|
-
|
|
1488
|
-
|
|
1489
|
-
|
|
1490
|
-
|
|
1491
|
-
|
|
1492
|
-
|
|
1493
|
-
|
|
1494
|
-
|
|
1495
|
-
|
|
1496
|
-
|
|
1497
|
-
|
|
1498
|
-
|
|
1499
|
-
</div>
|
|
1500
|
-
<div className="text-fm-icon-active text-sm font-medium">
|
|
1501
|
-
Monochrome White
|
|
1502
|
-
</div>
|
|
1503
|
-
<div className="text-fm-tertiary text-xs">Dark backgrounds</div>
|
|
1504
|
-
</div>
|
|
1505
|
-
</div>
|
|
122
|
+
<IconBrandColors
|
|
123
|
+
icon={LinkedInIcon}
|
|
124
|
+
variants={[
|
|
125
|
+
{
|
|
126
|
+
label: "Brand Blue",
|
|
127
|
+
description: "Recommended",
|
|
128
|
+
cardClassName: "h-24 w-24",
|
|
129
|
+
cardStyle: { backgroundColor: "#0A66C2" },
|
|
130
|
+
iconClassName: "h-8 w-8 text-white",
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
label: "White Background",
|
|
134
|
+
description: "Official contrast",
|
|
135
|
+
cardClassName:
|
|
136
|
+
"border-fm-divider-secondary h-24 w-24 border bg-white",
|
|
137
|
+
iconClassName: "h-8 w-8 text-[#0A66C2]",
|
|
138
|
+
},
|
|
139
|
+
{
|
|
140
|
+
label: "Primary Surface",
|
|
141
|
+
description: "Theme surface",
|
|
142
|
+
cardClassName: "bg-fm-surface-primary h-24 w-24",
|
|
143
|
+
iconClassName: "h-8 w-8 text-white",
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
label: "Transparent",
|
|
147
|
+
description: "Original mark",
|
|
148
|
+
cardClassName:
|
|
149
|
+
"border-fm-divider-contrast h-24 w-24 border bg-transparent",
|
|
150
|
+
iconClassName: "h-8 w-8 text-[#0A66C2]",
|
|
151
|
+
},
|
|
152
|
+
]}
|
|
153
|
+
/>
|
|
1506
154
|
),
|
|
1507
155
|
}
|
|
1508
156
|
|
|
1509
157
|
export const UsageExamples: Story = {
|
|
1510
|
-
parameters: {
|
|
1511
|
-
...storyParameters,
|
|
1512
|
-
docs: {
|
|
1513
|
-
description: {
|
|
1514
|
-
story:
|
|
1515
|
-
"Real-world usage examples showing LinkedInIcon in different professional and networking contexts.",
|
|
1516
|
-
},
|
|
1517
|
-
},
|
|
1518
|
-
},
|
|
1519
158
|
render: () => (
|
|
1520
|
-
<
|
|
1521
|
-
|
|
1522
|
-
|
|
1523
|
-
|
|
1524
|
-
|
|
1525
|
-
|
|
1526
|
-
|
|
1527
|
-
|
|
1528
|
-
|
|
1529
|
-
|
|
1530
|
-
|
|
1531
|
-
|
|
1532
|
-
|
|
1533
|
-
|
|
1534
|
-
|
|
1535
|
-
<div className="text-fm-tertiary text-xs">
|
|
1536
|
-
Senior Product Manager at TechCorp
|
|
1537
|
-
</div>
|
|
1538
|
-
</div>
|
|
1539
|
-
<a
|
|
1540
|
-
href="#"
|
|
1541
|
-
className="bg-fm-icon-info hover:bg-fm-icon-info rounded p-2 transition-colors"
|
|
1542
|
-
>
|
|
1543
|
-
<LinkedInIcon className="text-fm-icon-active h-4 w-4" />
|
|
1544
|
-
</a>
|
|
1545
|
-
</div>
|
|
1546
|
-
</div>
|
|
1547
|
-
</div>
|
|
1548
|
-
|
|
1549
|
-
{/* Recruitment */}
|
|
1550
|
-
<div className="!space-y-2">
|
|
1551
|
-
<h3 className="text-fm-icon-active text-sm font-medium">
|
|
1552
|
-
Recruitment Platform
|
|
1553
|
-
</h3>
|
|
1554
|
-
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-4">
|
|
1555
|
-
<div className="border-fm-icon-info/20 bg-fm-icon-info/10 flex items-center justify-between rounded border p-3">
|
|
1556
|
-
<div className="flex items-center gap-2">
|
|
1557
|
-
<LinkedInIcon className="text-fm-icon-info h-5 w-5" />
|
|
1558
|
-
<span className="text-fm-icon-active text-sm font-medium">
|
|
1559
|
-
Talent Acquisition
|
|
1560
|
-
</span>
|
|
1561
|
-
</div>
|
|
1562
|
-
<button className="bg-fm-icon-info text-fm-icon-active hover:bg-fm-icon-info rounded px-3 py-1 text-sm transition-colors">
|
|
1563
|
-
Post Job
|
|
1564
|
-
</button>
|
|
1565
|
-
</div>
|
|
1566
|
-
</div>
|
|
1567
|
-
</div>
|
|
159
|
+
<IconUsageCanvas>
|
|
160
|
+
<IconUsageSection title="LinkedIn Profile Link">
|
|
161
|
+
<a
|
|
162
|
+
href="#"
|
|
163
|
+
className="flex items-center gap-2 rounded-xl px-4 py-2 text-white"
|
|
164
|
+
style={{ backgroundColor: "#0A66C2" }}
|
|
165
|
+
target="_blank"
|
|
166
|
+
rel="noreferrer"
|
|
167
|
+
>
|
|
168
|
+
<LinkedInIcon className="h-4 w-4 text-white" />
|
|
169
|
+
<span className="font-fm-text text-sm font-medium">
|
|
170
|
+
View LinkedIn Profile
|
|
171
|
+
</span>
|
|
172
|
+
</a>
|
|
173
|
+
</IconUsageSection>
|
|
1568
174
|
|
|
1569
|
-
|
|
1570
|
-
|
|
1571
|
-
|
|
1572
|
-
|
|
1573
|
-
</h3>
|
|
1574
|
-
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-4">
|
|
1575
|
-
<div className="flex items-center gap-3">
|
|
1576
|
-
<span className="text-fm-tertiary text-sm">
|
|
1577
|
-
Professional networks:
|
|
1578
|
-
</span>
|
|
1579
|
-
<div className="flex gap-2">
|
|
1580
|
-
<a
|
|
1581
|
-
href="#"
|
|
1582
|
-
className="bg-fm-icon-info hover:bg-fm-icon-info rounded p-2 transition-colors"
|
|
1583
|
-
>
|
|
1584
|
-
<LinkedInIcon className="text-fm-icon-active h-4 w-4" />
|
|
1585
|
-
</a>
|
|
175
|
+
<IconUsageSection title="Social Links Row">
|
|
176
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary flex w-full max-w-sm items-center justify-center gap-4 rounded-xl border p-4">
|
|
177
|
+
{[InstagramIcon, LinkedInIcon, TwitterXIcon, ThreadsIcon].map(
|
|
178
|
+
(Icon, i) => (
|
|
1586
179
|
<a
|
|
180
|
+
key={i}
|
|
1587
181
|
href="#"
|
|
1588
|
-
className="border-fm-divider-
|
|
182
|
+
className="border-fm-divider-secondary flex h-10 w-10 items-center justify-center rounded-xl border"
|
|
183
|
+
target="_blank"
|
|
184
|
+
rel="noreferrer"
|
|
1589
185
|
>
|
|
1590
|
-
<
|
|
1591
|
-
</a>
|
|
1592
|
-
<a
|
|
1593
|
-
href="#"
|
|
1594
|
-
className="bg-fm-surface-tertiary hover:bg-fm-surface-secondary rounded p-2 transition-colors"
|
|
1595
|
-
>
|
|
1596
|
-
<span className="text-fm-icon-active text-sm">🐙</span>
|
|
186
|
+
<Icon className="text-fm-icon-active h-5 w-5" />
|
|
1597
187
|
</a>
|
|
188
|
+
)
|
|
189
|
+
)}
|
|
190
|
+
</div>
|
|
191
|
+
</IconUsageSection>
|
|
192
|
+
|
|
193
|
+
<IconUsageSection title="Creator Profile">
|
|
194
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary w-full max-w-sm rounded-xl border p-4">
|
|
195
|
+
<div className="flex items-center gap-3">
|
|
196
|
+
<div className="bg-fm-divider-secondary h-12 w-12 rounded-full" />
|
|
197
|
+
<div className="flex-1">
|
|
198
|
+
<div className="text-fm-primary font-fm-text text-sm font-medium">
|
|
199
|
+
Pocket FM
|
|
200
|
+
</div>
|
|
201
|
+
<div className="text-fm-secondary font-fm-text text-xs">
|
|
202
|
+
Audio entertainment
|
|
203
|
+
</div>
|
|
1598
204
|
</div>
|
|
205
|
+
<a href="#" target="_blank" rel="noreferrer" aria-label="LinkedIn">
|
|
206
|
+
<LinkedInIcon className="text-fm-icon-inactive h-5 w-5" />
|
|
207
|
+
</a>
|
|
1599
208
|
</div>
|
|
1600
209
|
</div>
|
|
1601
|
-
</
|
|
1602
|
-
</
|
|
210
|
+
</IconUsageSection>
|
|
211
|
+
</IconUsageCanvas>
|
|
1603
212
|
),
|
|
1604
213
|
}
|
|
1605
214
|
|
|
1606
215
|
export const Playground: Story = {
|
|
1607
|
-
parameters: {
|
|
1608
|
-
...storyParameters,
|
|
1609
|
-
docs: {
|
|
1610
|
-
description: {
|
|
1611
|
-
story:
|
|
1612
|
-
"Interactive playground to experiment with different LinkedInIcon configurations.",
|
|
1613
|
-
},
|
|
1614
|
-
},
|
|
1615
|
-
},
|
|
1616
216
|
args: {
|
|
1617
|
-
|
|
1618
|
-
|
|
1619
|
-
className: "text-fm-icon-info",
|
|
217
|
+
className: "h-8 w-8 text-fm-icon-active",
|
|
218
|
+
withAccessibility: true,
|
|
1620
219
|
},
|
|
1621
220
|
render: (args) => (
|
|
1622
|
-
<
|
|
1623
|
-
<
|
|
1624
|
-
|
|
1625
|
-
</div>
|
|
1626
|
-
</div>
|
|
221
|
+
<IconPlaygroundCanvas>
|
|
222
|
+
<LinkedInIcon {...args} />
|
|
223
|
+
</IconPlaygroundCanvas>
|
|
1627
224
|
),
|
|
1628
225
|
}
|