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 { AppleLogoIcon } from "src/ui/icons/apple-logo-icon"
|
|
5
|
+
import { LinkedInIcon } from "src/ui/icons/linked-in-icon"
|
|
6
|
+
import { TwitterXIcon } from "src/ui/icons/twitter-x-icon"
|
|
7
|
+
import { YoutubeIcon } from "src/ui/icons/youtube-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 { GoogleLogoIcon } from "."
|
|
5
19
|
|
|
6
20
|
const meta: Meta<typeof GoogleLogoIcon> = {
|
|
@@ -18,802 +32,70 @@ const meta: Meta<typeof GoogleLogoIcon> = {
|
|
|
18
32
|
},
|
|
19
33
|
docs: {
|
|
20
34
|
page: () => (
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
{
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
padding: 0 !important;
|
|
33
|
-
margin: 0 !important;
|
|
34
|
-
background: transparent !important;
|
|
35
|
-
}
|
|
36
|
-
.docs-story {
|
|
37
|
-
background: transparent !important;
|
|
38
|
-
}
|
|
39
|
-
.sbdocs {
|
|
40
|
-
background: transparent !important;
|
|
41
|
-
}
|
|
42
|
-
body {
|
|
43
|
-
background: var(--color-fm-surface-primary) !important;
|
|
44
|
-
}
|
|
45
|
-
#storybook-docs {
|
|
46
|
-
background: var(--color-fm-surface-primary) !important;
|
|
47
|
-
}
|
|
48
|
-
.sbdocs-preview {
|
|
49
|
-
background: transparent !important;
|
|
50
|
-
border: none !important;
|
|
51
|
-
}
|
|
52
|
-
.sbdocs-h1, .sbdocs-h2, .sbdocs-h3, .sbdocs-h4, .sbdocs-h5, .sbdocs-h6 {
|
|
53
|
-
color: var(--color-fm-icon-active) !important;
|
|
54
|
-
}
|
|
55
|
-
.sbdocs-p, .sbdocs-li {
|
|
56
|
-
color: var(--color-fm-secondary) !important;
|
|
57
|
-
}
|
|
58
|
-
.sbdocs-code {
|
|
59
|
-
background: var(--color-fm-surface-secondary) !important;
|
|
60
|
-
color: var(--color-fm-secondary-500) !important;
|
|
61
|
-
border: 1px solid var(--color-fm-divider-secondary) !important;
|
|
62
|
-
}
|
|
63
|
-
.sbdocs-pre {
|
|
64
|
-
background: var(--color-fm-surface-secondary) !important;
|
|
65
|
-
border: 1px solid var(--color-fm-divider-secondary) !important;
|
|
66
|
-
}
|
|
67
|
-
.sbdocs-table {
|
|
68
|
-
background: var(--color-fm-surface-secondary) !important;
|
|
69
|
-
border: 1px solid var(--color-fm-divider-secondary) !important;
|
|
70
|
-
}
|
|
71
|
-
.sbdocs-table th {
|
|
72
|
-
background: var(--color-fm-surface-secondary) !important;
|
|
73
|
-
color: var(--color-fm-icon-active) !important;
|
|
74
|
-
border-bottom: 1px solid var(--color-fm-divider-secondary) !important;
|
|
75
|
-
}
|
|
76
|
-
.sbdocs-table td {
|
|
77
|
-
color: var(--color-fm-secondary) !important;
|
|
78
|
-
border-bottom: 1px solid var(--color-fm-divider-tertiary) !important;
|
|
79
|
-
}
|
|
80
|
-
`}
|
|
81
|
-
</style>
|
|
82
|
-
|
|
83
|
-
<div className="from-fm-surface-primary via-fm-icon-negative/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-negative/10 via-fm-icon-warning/10 to-fm-icon-info/10 absolute inset-0 bg-linear-to-r" />
|
|
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-divider-primary from-fm-icon-negative/20 via-fm-icon-warning/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
|
-
<GoogleLogoIcon className="h-12 w-12" />
|
|
91
|
-
</div>
|
|
92
|
-
<h1 className="!text-fm-primary text-5xl font-bold">
|
|
93
|
-
GoogleLogoIcon
|
|
94
|
-
</h1>
|
|
95
|
-
<p className="text-fm-secondary! !mx-auto max-w-3xl text-xl leading-relaxed">
|
|
96
|
-
The iconic Google logo for authentication, platform
|
|
97
|
-
integration, and service identification. Built with
|
|
98
|
-
accessibility in mind using Radix UI's AccessibleIcon
|
|
99
|
-
wrapper for seamless screen reader support.
|
|
100
|
-
</p>
|
|
101
|
-
|
|
102
|
-
{/* Stats */}
|
|
103
|
-
<div className="flex items-center justify-center gap-8 pt-8">
|
|
104
|
-
<div className="text-center">
|
|
105
|
-
<div className="text-fm-icon-negative text-3xl font-bold">
|
|
106
|
-
Accessible
|
|
107
|
-
</div>
|
|
108
|
-
<div className="text-fm-tertiary text-sm">
|
|
109
|
-
Screen reader friendly
|
|
110
|
-
</div>
|
|
111
|
-
</div>
|
|
112
|
-
<div className="bg-fm-divider-primary h-8 w-px" />
|
|
113
|
-
<div className="text-center">
|
|
114
|
-
<div className="text-fm-icon-warning text-3xl font-bold">
|
|
115
|
-
Scalable
|
|
116
|
-
</div>
|
|
117
|
-
<div className="text-fm-tertiary text-sm">
|
|
118
|
-
Any size needed
|
|
119
|
-
</div>
|
|
120
|
-
</div>
|
|
121
|
-
<div className="bg-fm-divider-primary h-8 w-px" />
|
|
122
|
-
<div className="text-center">
|
|
123
|
-
<div className="text-fm-icon-info text-3xl font-bold">
|
|
124
|
-
Flexible
|
|
125
|
-
</div>
|
|
126
|
-
<div className="text-fm-tertiary text-sm">
|
|
127
|
-
Customizable styling
|
|
128
|
-
</div>
|
|
129
|
-
</div>
|
|
130
|
-
</div>
|
|
131
|
-
</div>
|
|
132
|
-
</div>
|
|
133
|
-
</div>
|
|
134
|
-
|
|
135
|
-
{/* Content */}
|
|
136
|
-
<div className="!mx-auto max-w-7xl !space-y-16 px-6 py-12">
|
|
137
|
-
{/* Quick Usage */}
|
|
138
|
-
<div className="!space-y-8">
|
|
139
|
-
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
140
|
-
Quick Start
|
|
141
|
-
</h2>
|
|
142
|
-
<div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
|
|
143
|
-
<div className="!space-y-4">
|
|
144
|
-
<h3 className="text-fm-icon-negative! text-xl font-semibold">
|
|
145
|
-
Basic Usage
|
|
146
|
-
</h3>
|
|
147
|
-
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
148
|
-
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
149
|
-
{`import { GoogleLogoIcon } from "@icons/google-logo-icon"
|
|
150
|
-
|
|
151
|
-
function LoginPage() {
|
|
35
|
+
<AuralIconDocsPage
|
|
36
|
+
accentToken="info"
|
|
37
|
+
features={[
|
|
38
|
+
{ title: "Brand Colors", description: "Official Google palette" },
|
|
39
|
+
{ title: "Auth Icon", description: "Sign-in with Google" },
|
|
40
|
+
{ title: "Accessible", description: "ARIA-ready by default" },
|
|
41
|
+
]}
|
|
42
|
+
quickStart={{
|
|
43
|
+
codeExample: `import { GoogleLogoIcon } from "src/ui/icons/google-logo-icon"
|
|
44
|
+
|
|
45
|
+
function GoogleSignIn() {
|
|
152
46
|
return (
|
|
153
|
-
<button className="flex items-center gap-
|
|
47
|
+
<button className="flex items-center gap-2 border rounded-lg px-4 py-2">
|
|
154
48
|
<GoogleLogoIcon className="h-5 w-5" />
|
|
155
|
-
|
|
49
|
+
Continue with Google
|
|
156
50
|
</button>
|
|
157
51
|
)
|
|
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
|
-
Prop
|
|
194
|
-
</th>
|
|
195
|
-
<th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
|
|
196
|
-
Type
|
|
197
|
-
</th>
|
|
198
|
-
<th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
|
|
199
|
-
Default
|
|
200
|
-
</th>
|
|
201
|
-
<th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
|
|
202
|
-
Description
|
|
203
|
-
</th>
|
|
204
|
-
</tr>
|
|
205
|
-
</thead>
|
|
206
|
-
<tbody>
|
|
207
|
-
{" "}
|
|
208
|
-
<tr className="bg-fm-surface-secondary!">
|
|
209
|
-
<td className="text-fm-icon-info! px-6 py-4 font-mono text-sm">
|
|
210
|
-
withAccessibility
|
|
211
|
-
</td>
|
|
212
|
-
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
213
|
-
boolean
|
|
214
|
-
</td>
|
|
215
|
-
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
216
|
-
true
|
|
217
|
-
</td>
|
|
218
|
-
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
219
|
-
Whether to wrap the icon with accessibility feature
|
|
220
|
-
</td>
|
|
221
|
-
</tr>
|
|
222
|
-
<tr className="border-fm-divider-tertiary bg-fm-surface-secondary! border-b">
|
|
223
|
-
<td className="text-fm-icon-negative! px-6 py-4 font-mono text-sm">
|
|
224
|
-
height
|
|
225
|
-
</td>
|
|
226
|
-
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
227
|
-
number | string
|
|
228
|
-
</td>
|
|
229
|
-
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
230
|
-
20
|
|
231
|
-
</td>
|
|
232
|
-
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
233
|
-
Height of the icon in pixels
|
|
234
|
-
</td>
|
|
235
|
-
</tr>
|
|
236
|
-
<tr className="border-fm-divider-tertiary border-b">
|
|
237
|
-
<td className="text-fm-icon-negative! px-6 py-4 font-mono text-sm">
|
|
238
|
-
fill
|
|
239
|
-
</td>
|
|
240
|
-
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
241
|
-
string
|
|
242
|
-
</td>
|
|
243
|
-
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
244
|
-
Google colors
|
|
245
|
-
</td>
|
|
246
|
-
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
247
|
-
Fill color of the icon paths
|
|
248
|
-
</td>
|
|
249
|
-
</tr>
|
|
250
|
-
<tr className="border-fm-divider-tertiary bg-fm-surface-secondary! border-b">
|
|
251
|
-
<td className="text-fm-icon-negative! px-6 py-4 font-mono text-sm">
|
|
252
|
-
className
|
|
253
|
-
</td>
|
|
254
|
-
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
255
|
-
string
|
|
256
|
-
</td>
|
|
257
|
-
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
258
|
-
-
|
|
259
|
-
</td>
|
|
260
|
-
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
261
|
-
CSS classes for styling
|
|
262
|
-
</td>
|
|
263
|
-
</tr>
|
|
264
|
-
<tr className="bg-fm-surface-secondary!">
|
|
265
|
-
<td className="text-fm-icon-negative! px-6 py-4 font-mono text-sm">
|
|
266
|
-
...svgProps
|
|
267
|
-
</td>
|
|
268
|
-
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
269
|
-
SVGProps
|
|
270
|
-
</td>
|
|
271
|
-
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
272
|
-
-
|
|
273
|
-
</td>
|
|
274
|
-
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
275
|
-
All standard SVG element props
|
|
276
|
-
</td>
|
|
277
|
-
</tr>
|
|
278
|
-
</tbody>
|
|
279
|
-
</table>
|
|
280
|
-
</div>
|
|
281
|
-
</div>
|
|
282
|
-
|
|
283
|
-
{/* Size Variations */}
|
|
284
|
-
<div className="!space-y-8">
|
|
285
|
-
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
286
|
-
Size Variations
|
|
287
|
-
</h2>
|
|
288
|
-
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-8">
|
|
289
|
-
<div className="!space-y-6">
|
|
290
|
-
<div className="grid grid-cols-1 gap-8 md:grid-cols-2">
|
|
291
|
-
<div className="!space-y-4">
|
|
292
|
-
<h3 className="text-fm-icon-negative! text-lg font-semibold">
|
|
293
|
-
Standard Sizes
|
|
294
|
-
</h3>
|
|
295
|
-
<div className="bg-fm-surface-secondary flex items-end gap-6 rounded-lg p-6">
|
|
296
|
-
<div className="text-center">
|
|
297
|
-
<GoogleLogoIcon className="!mx-auto mb-2 h-3 w-3" />
|
|
298
|
-
<span className="text-fm-tertiary text-xs">
|
|
299
|
-
12px
|
|
300
|
-
</span>
|
|
301
|
-
</div>
|
|
302
|
-
<div className="text-center">
|
|
303
|
-
<GoogleLogoIcon className="!mx-auto mb-2 h-4 w-4" />
|
|
304
|
-
<span className="text-fm-tertiary text-xs">
|
|
305
|
-
16px
|
|
306
|
-
</span>
|
|
307
|
-
</div>
|
|
308
|
-
<div className="text-center">
|
|
309
|
-
<GoogleLogoIcon className="!mx-auto mb-2 h-5 w-5" />
|
|
310
|
-
<span className="text-fm-tertiary text-xs">
|
|
311
|
-
20px
|
|
312
|
-
</span>
|
|
313
|
-
</div>
|
|
314
|
-
<div className="text-center">
|
|
315
|
-
<GoogleLogoIcon className="!mx-auto mb-2 h-6 w-6" />
|
|
316
|
-
<span className="text-fm-tertiary text-xs">
|
|
317
|
-
24px
|
|
318
|
-
</span>
|
|
319
|
-
</div>
|
|
320
|
-
<div className="text-center">
|
|
321
|
-
<GoogleLogoIcon className="!mx-auto mb-2 h-8 w-8" />
|
|
322
|
-
<span className="text-fm-tertiary text-xs">
|
|
323
|
-
32px
|
|
324
|
-
</span>
|
|
325
|
-
</div>
|
|
326
|
-
<div className="text-center">
|
|
327
|
-
<GoogleLogoIcon className="!mx-auto mb-2 h-12 w-12" />
|
|
328
|
-
<span className="text-fm-tertiary text-xs">
|
|
329
|
-
48px
|
|
330
|
-
</span>
|
|
331
|
-
</div>
|
|
332
|
-
</div>
|
|
333
|
-
</div>
|
|
334
|
-
|
|
335
|
-
<div className="!space-y-4">
|
|
336
|
-
<h3 className="text-fm-icon-negative! text-lg font-semibold">
|
|
337
|
-
Code Example
|
|
338
|
-
</h3>
|
|
339
|
-
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
340
|
-
<pre className="text-fm-icon-info! overflow-x-auto text-sm">
|
|
341
|
-
{`// Small (16px)
|
|
342
|
-
<GoogleLogoIcon className="h-4 w-4" />
|
|
343
|
-
|
|
344
|
-
// Medium (24px)
|
|
345
|
-
<GoogleLogoIcon className="h-6 w-6" />
|
|
346
|
-
|
|
347
|
-
// Large (32px)
|
|
348
|
-
<GoogleLogoIcon className="h-8 w-8" />
|
|
349
|
-
|
|
350
|
-
// Custom size
|
|
351
|
-
<GoogleLogoIcon width={40} height={40} />`}
|
|
352
|
-
</pre>
|
|
353
|
-
</div>
|
|
354
|
-
</div>
|
|
355
|
-
</div>
|
|
356
|
-
</div>
|
|
357
|
-
</div>
|
|
358
|
-
</div>
|
|
359
|
-
|
|
360
|
-
{/* Color Variations */}
|
|
361
|
-
<div className="!space-y-8">
|
|
362
|
-
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
363
|
-
Color Variations
|
|
364
|
-
</h2>
|
|
365
|
-
<div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
|
|
366
|
-
<div className="!space-y-4">
|
|
367
|
-
<h3 className="text-fm-icon-negative! text-lg font-semibold">
|
|
368
|
-
Brand Colors
|
|
369
|
-
</h3>
|
|
370
|
-
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
|
|
371
|
-
<div className="flex items-center gap-4">
|
|
372
|
-
<GoogleLogoIcon className="h-6 w-6" />
|
|
373
|
-
<div>
|
|
374
|
-
<div className="text-fm-icon-active text-sm font-medium">
|
|
375
|
-
Original Google Colors
|
|
376
|
-
</div>
|
|
377
|
-
<div className="text-fm-tertiary text-xs">
|
|
378
|
-
Default multicolor
|
|
379
|
-
</div>
|
|
380
|
-
</div>
|
|
381
|
-
</div>
|
|
382
|
-
<div className="flex items-center gap-4">
|
|
383
|
-
<div className="bg-fm-surface-contrast flex h-6 w-6 items-center justify-center rounded">
|
|
384
|
-
<GoogleLogoIcon className="h-5 w-5" />
|
|
385
|
-
</div>
|
|
386
|
-
<div>
|
|
387
|
-
<div className="text-fm-icon-active text-sm font-medium">
|
|
388
|
-
On White Background
|
|
389
|
-
</div>
|
|
390
|
-
<div className="text-fm-tertiary text-xs">
|
|
391
|
-
Optimal contrast
|
|
392
|
-
</div>
|
|
393
|
-
</div>
|
|
394
|
-
</div>
|
|
395
|
-
<div className="flex items-center gap-4">
|
|
396
|
-
<div className="bg-fm-surface-secondary flex h-6 w-6 items-center justify-center rounded">
|
|
397
|
-
<GoogleLogoIcon className="h-5 w-5" />
|
|
398
|
-
</div>
|
|
399
|
-
<div>
|
|
400
|
-
<div className="text-fm-icon-active text-sm font-medium">
|
|
401
|
-
On Light Background
|
|
402
|
-
</div>
|
|
403
|
-
<div className="text-fm-tertiary text-xs">
|
|
404
|
-
Light gray surface
|
|
405
|
-
</div>
|
|
406
|
-
</div>
|
|
407
|
-
</div>
|
|
408
|
-
<div className="flex items-center gap-4">
|
|
409
|
-
<div className="bg-fm-surface-secondary flex h-6 w-6 items-center justify-center rounded">
|
|
410
|
-
<GoogleLogoIcon className="h-5 w-5" />
|
|
411
|
-
</div>
|
|
412
|
-
<div>
|
|
413
|
-
<div className="text-fm-icon-active text-sm font-medium">
|
|
414
|
-
On Dark Background
|
|
415
|
-
</div>
|
|
416
|
-
<div className="text-fm-tertiary text-xs">
|
|
417
|
-
Dark surface adaptation
|
|
418
|
-
</div>
|
|
419
|
-
</div>
|
|
420
|
-
</div>
|
|
421
|
-
</div>
|
|
422
|
-
</div>
|
|
423
|
-
|
|
424
|
-
<div className="!space-y-4">
|
|
425
|
-
<h3 className="text-fm-icon-negative! text-lg font-semibold">
|
|
426
|
-
Implementation Notes
|
|
427
|
-
</h3>
|
|
428
|
-
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
429
|
-
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
430
|
-
{`// Google logo uses specific brand colors
|
|
431
|
-
// Red: #E94335, Green: #34A753
|
|
432
|
-
// Blue: #4285F3, Yellow: #FABB04
|
|
433
|
-
|
|
434
|
-
// Basic usage (maintains Google colors)
|
|
435
|
-
<GoogleLogoIcon className="h-6 w-6" />
|
|
436
|
-
|
|
437
|
-
// On white backgrounds (recommended)
|
|
438
|
-
<div className="bg-white p-4 rounded">
|
|
439
|
-
<GoogleLogoIcon className="h-6 w-6" />
|
|
440
|
-
</div>
|
|
441
|
-
|
|
442
|
-
// Custom sizing
|
|
443
|
-
<GoogleLogoIcon
|
|
444
|
-
width={32}
|
|
445
|
-
height={32}
|
|
446
|
-
className="flex-shrink-0"
|
|
447
|
-
/>`}
|
|
448
|
-
</pre>
|
|
449
|
-
</div>
|
|
450
|
-
</div>
|
|
451
|
-
</div>
|
|
452
|
-
</div>
|
|
453
|
-
|
|
454
|
-
{/* Usage Examples */}
|
|
455
|
-
<div className="!space-y-8">
|
|
456
|
-
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
457
|
-
Usage Examples
|
|
458
|
-
</h2>
|
|
459
|
-
|
|
460
|
-
<div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
|
|
461
|
-
{/* Authentication Button */}
|
|
462
|
-
<div className="!space-y-4">
|
|
463
|
-
<h3 className="text-fm-icon-negative! text-lg font-semibold">
|
|
464
|
-
Authentication Button
|
|
465
|
-
</h3>
|
|
466
|
-
<div className="!space-y-4">
|
|
467
|
-
<div className="flex gap-4">
|
|
468
|
-
<button className="border-fm-divider-primary bg-fm-surface-contrast text-fm-primary hover:bg-fm-surface-secondary flex items-center gap-3 rounded-lg border px-6 py-3 transition-colors">
|
|
469
|
-
<GoogleLogoIcon className="h-5 w-5" />
|
|
470
|
-
Sign in with Google
|
|
471
|
-
</button>
|
|
472
|
-
<button className="border-fm-divider-primary bg-fm-surface-secondary text-fm-icon-active hover:bg-fm-surface-secondary flex items-center gap-3 rounded-lg border px-4 py-2 transition-colors">
|
|
473
|
-
<GoogleLogoIcon className="h-4 w-4" />
|
|
474
|
-
Continue
|
|
475
|
-
</button>
|
|
476
|
-
</div>
|
|
477
|
-
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
478
|
-
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
479
|
-
{`// Primary Google authentication button
|
|
480
|
-
<button className="flex items-center gap-3 bg-white border border-gray-300 px-6 py-3 rounded-lg text-gray-700">
|
|
481
|
-
<GoogleLogoIcon className="h-5 w-5" />
|
|
482
|
-
Sign in with Google
|
|
483
|
-
</button>
|
|
484
|
-
|
|
485
|
-
// Secondary continue button
|
|
486
|
-
<button className="flex items-center gap-3 bg-white/5 border border-white/20 px-4 py-2 rounded-lg">
|
|
487
|
-
<GoogleLogoIcon className="h-4 w-4" />
|
|
488
|
-
Continue
|
|
489
|
-
</button>`}
|
|
490
|
-
</pre>
|
|
491
|
-
</div>
|
|
492
|
-
</div>
|
|
493
|
-
</div>
|
|
494
|
-
|
|
495
|
-
{/* Service Integration */}
|
|
496
|
-
<div className="!space-y-4">
|
|
497
|
-
<h3 className="text-fm-icon-negative! text-lg font-semibold">
|
|
498
|
-
Service Integration
|
|
499
|
-
</h3>
|
|
500
|
-
<div className="!space-y-4">
|
|
501
|
-
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
|
|
502
|
-
<div className="flex items-center justify-between">
|
|
503
|
-
<div className="flex items-center gap-4">
|
|
504
|
-
<div className="bg-fm-surface-contrast flex h-10 w-10 items-center justify-center rounded-lg">
|
|
505
|
-
<GoogleLogoIcon className="h-6 w-6" />
|
|
506
|
-
</div>
|
|
507
|
-
<div>
|
|
508
|
-
<div className="text-fm-icon-active font-medium">
|
|
509
|
-
Google Drive
|
|
510
|
-
</div>
|
|
511
|
-
<div className="text-fm-tertiary text-sm">
|
|
512
|
-
Connected to your account
|
|
513
|
-
</div>
|
|
514
|
-
</div>
|
|
515
|
-
</div>
|
|
516
|
-
<div className="bg-fm-icon-positive h-2 w-2 rounded-full"></div>
|
|
517
|
-
</div>
|
|
518
|
-
</div>
|
|
519
|
-
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
520
|
-
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
521
|
-
{`<div className="flex items-center justify-between">
|
|
522
|
-
<div className="flex items-center gap-4">
|
|
523
|
-
<div className="flex h-10 w-10 items-center justify-center rounded-lg bg-white">
|
|
524
|
-
<GoogleLogoIcon className="h-6 w-6" />
|
|
525
|
-
</div>
|
|
526
|
-
<div>
|
|
527
|
-
<div className="font-medium text-white">Google Drive</div>
|
|
528
|
-
<div className="text-sm text-white/60">Connected to your account</div>
|
|
529
|
-
</div>
|
|
530
|
-
</div>
|
|
531
|
-
<div className="h-2 w-2 rounded-full bg-green-400"></div>
|
|
532
|
-
</div>`}
|
|
533
|
-
</pre>
|
|
534
|
-
</div>
|
|
535
|
-
</div>
|
|
536
|
-
</div>
|
|
537
|
-
|
|
538
|
-
{/* Account Selector */}
|
|
539
|
-
<div className="!space-y-4">
|
|
540
|
-
<h3 className="text-fm-icon-negative! text-lg font-semibold">
|
|
541
|
-
Account Selector
|
|
542
|
-
</h3>
|
|
543
|
-
<div className="!space-y-4">
|
|
544
|
-
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
|
|
545
|
-
<div className="space-y-3">
|
|
546
|
-
<div className="bg-fm-surface-secondary flex items-center gap-3 rounded-lg p-3">
|
|
547
|
-
<GoogleLogoIcon className="h-5 w-5" />
|
|
548
|
-
<div className="flex-1">
|
|
549
|
-
<div className="text-fm-icon-active text-sm font-medium">
|
|
550
|
-
john@gmail.com
|
|
551
|
-
</div>
|
|
552
|
-
<div className="text-fm-tertiary text-xs">
|
|
553
|
-
Personal account
|
|
554
|
-
</div>
|
|
555
|
-
</div>
|
|
556
|
-
<div className="bg-fm-icon-info h-2 w-2 rounded-full"></div>
|
|
557
|
-
</div>
|
|
558
|
-
</div>
|
|
559
|
-
</div>
|
|
560
|
-
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
561
|
-
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
562
|
-
{`<div className="flex items-center gap-3 rounded-lg bg-white/5 p-3">
|
|
563
|
-
<GoogleLogoIcon className="h-5 w-5" />
|
|
564
|
-
<div className="flex-1">
|
|
565
|
-
<div className="text-sm font-medium text-white">john@gmail.com</div>
|
|
566
|
-
<div className="text-xs text-white/60">Personal account</div>
|
|
567
|
-
</div>
|
|
568
|
-
<div className="h-2 w-2 rounded-full bg-blue-400"></div>
|
|
569
|
-
</div>`}
|
|
570
|
-
</pre>
|
|
571
|
-
</div>
|
|
572
|
-
</div>
|
|
573
|
-
</div>
|
|
574
|
-
|
|
575
|
-
{/* Integration Card */}
|
|
576
|
-
<div className="!space-y-4">
|
|
577
|
-
<h3 className="text-fm-icon-negative! text-lg font-semibold">
|
|
578
|
-
Integration Card
|
|
579
|
-
</h3>
|
|
580
|
-
<div className="!space-y-4">
|
|
581
|
-
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
|
|
582
|
-
<div className="!space-y-4 text-center">
|
|
583
|
-
<div className="bg-fm-surface-contrast !mx-auto flex h-16 w-16 items-center justify-center rounded-lg">
|
|
584
|
-
<GoogleLogoIcon className="h-8 w-8" />
|
|
585
|
-
</div>
|
|
586
|
-
<div className="!space-y-2">
|
|
587
|
-
<h4 className="text-fm-icon-active! font-medium">
|
|
588
|
-
Connect Google Workspace
|
|
589
|
-
</h4>
|
|
590
|
-
<p className="text-fm-secondary! text-sm">
|
|
591
|
-
Sync your Google Calendar, Drive, and Gmail
|
|
592
|
-
</p>
|
|
593
|
-
</div>
|
|
594
|
-
<button className="bg-fm-icon-info text-fm-icon-active hover:bg-fm-icon-info rounded-lg px-4 py-2 text-sm transition-colors">
|
|
595
|
-
Connect Now
|
|
596
|
-
</button>
|
|
597
|
-
</div>
|
|
598
|
-
</div>
|
|
599
|
-
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
600
|
-
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
601
|
-
{`<div className="text-center">
|
|
602
|
-
<div className="mx-auto mb-4 flex h-16 w-16 items-center justify-center rounded-lg bg-white">
|
|
603
|
-
<GoogleLogoIcon className="h-8 w-8" />
|
|
604
|
-
</div>
|
|
605
|
-
<h4 className="mb-2 font-medium text-white">Connect Google Workspace</h4>
|
|
606
|
-
<p className="mb-4 text-sm text-white/60">
|
|
607
|
-
Sync your Google Calendar, Drive, and Gmail
|
|
608
|
-
</p>
|
|
609
|
-
<button className="bg-blue-500 hover:bg-blue-600 px-4 py-2 rounded-lg text-sm text-white">
|
|
610
|
-
Connect Now
|
|
611
|
-
</button>
|
|
612
|
-
</div>`}
|
|
613
|
-
</pre>
|
|
614
|
-
</div>
|
|
615
|
-
</div>
|
|
616
|
-
</div>
|
|
617
|
-
</div>
|
|
618
|
-
</div>
|
|
619
|
-
|
|
620
|
-
{/* Accessibility */}
|
|
621
|
-
<div className="!space-y-8">
|
|
622
|
-
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
623
|
-
Accessibility Features
|
|
624
|
-
</h2>
|
|
625
|
-
<div className="grid grid-cols-1 gap-8 md:grid-cols-2">
|
|
626
|
-
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
|
|
627
|
-
<h3 className="text-fm-icon-positive! text-lg font-semibold">
|
|
628
|
-
✅ Built-in Features
|
|
629
|
-
</h3>
|
|
630
|
-
<ul className="text-fm-secondary! !space-y-2 text-sm">
|
|
631
|
-
<li className="text-fm-secondary!">
|
|
632
|
-
Uses Radix UI AccessibleIcon wrapper
|
|
633
|
-
</li>
|
|
634
|
-
<li className="text-fm-secondary!">
|
|
635
|
-
Provides screen reader label "Google logo"
|
|
636
|
-
</li>
|
|
637
|
-
<li className="text-fm-secondary!">
|
|
638
|
-
Supports keyboard navigation when interactive
|
|
639
|
-
</li>
|
|
640
|
-
<li className="text-fm-secondary!">
|
|
641
|
-
Maintains proper color contrast ratios
|
|
642
|
-
</li>
|
|
643
|
-
<li className="text-fm-secondary!">
|
|
644
|
-
Scales with user's font size preferences
|
|
645
|
-
</li>
|
|
646
|
-
</ul>
|
|
647
|
-
</div>
|
|
648
|
-
|
|
649
|
-
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
|
|
650
|
-
<h3 className="text-fm-icon-negative! text-lg font-semibold">
|
|
651
|
-
💡 Best Practices
|
|
652
|
-
</h3>
|
|
653
|
-
<ul className="text-fm-secondary !space-y-2 text-sm">
|
|
654
|
-
<li className="text-fm-secondary!">
|
|
655
|
-
Always pair with descriptive text for actions
|
|
656
|
-
</li>
|
|
657
|
-
<li className="text-fm-secondary!">
|
|
658
|
-
Use white backgrounds for optimal contrast
|
|
659
|
-
</li>
|
|
660
|
-
<li className="text-fm-secondary!">
|
|
661
|
-
Ensure sufficient spacing around the logo
|
|
662
|
-
</li>
|
|
663
|
-
<li className="text-fm-secondary!">
|
|
664
|
-
Add focus states for interactive elements
|
|
665
|
-
</li>
|
|
666
|
-
<li className="text-fm-secondary!">
|
|
667
|
-
Follow Google's brand guidelines for usage
|
|
668
|
-
</li>
|
|
669
|
-
</ul>
|
|
670
|
-
</div>
|
|
671
|
-
</div>
|
|
672
|
-
|
|
673
|
-
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
|
|
674
|
-
<h3 className="text-fm-secondary-600! mb-4 text-lg font-semibold">
|
|
675
|
-
Custom Accessibility Label
|
|
676
|
-
</h3>
|
|
677
|
-
<div className="grid grid-cols-1 gap-6 lg:grid-cols-2">
|
|
678
|
-
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
679
|
-
<pre className="text-fm-icon-info! overflow-x-auto text-sm">
|
|
680
|
-
{`// Custom implementation with specific label
|
|
681
|
-
import { AccessibleIcon } from "@radix-ui/react-accessible-icon"
|
|
682
|
-
|
|
683
|
-
function CustomGoogleIcon({ label = "Google", ...props }) {
|
|
684
|
-
return (
|
|
685
|
-
<AccessibleIcon label={label}>
|
|
686
|
-
<GoogleLogoIcon {...props} />
|
|
687
|
-
</AccessibleIcon>
|
|
688
|
-
)
|
|
689
|
-
}
|
|
690
|
-
|
|
691
|
-
// Usage with specific context
|
|
692
|
-
<CustomGoogleIcon
|
|
693
|
-
label="Sign in with Google"
|
|
694
|
-
className="h-5 w-5"
|
|
695
|
-
/>`}
|
|
696
|
-
</pre>
|
|
697
|
-
</div>
|
|
698
|
-
<div className="!space-y-4">
|
|
699
|
-
<p className="text-fm-secondary! text-sm">
|
|
700
|
-
For specific contexts, you can wrap the GoogleLogoIcon
|
|
701
|
-
with a custom AccessibleIcon component that provides
|
|
702
|
-
more descriptive labels for authentication or service
|
|
703
|
-
integration.
|
|
704
|
-
</p>
|
|
705
|
-
<div className="border-fm-icon-negative/20 bg-fm-icon-negative/10 rounded-lg border p-4">
|
|
706
|
-
<div className="text-fm-icon-negative flex items-center gap-2 text-sm">
|
|
707
|
-
<GoogleLogoIcon className="h-4 w-4" />
|
|
708
|
-
<span>
|
|
709
|
-
This approach gives screen readers more context
|
|
710
|
-
</span>
|
|
711
|
-
</div>
|
|
712
|
-
</div>
|
|
713
|
-
</div>
|
|
714
|
-
</div>
|
|
715
|
-
</div>
|
|
716
|
-
</div>
|
|
717
|
-
|
|
718
|
-
{/* Related Icons */}
|
|
719
|
-
<div className="!space-y-8">
|
|
720
|
-
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
721
|
-
Related Icons
|
|
722
|
-
</h2>
|
|
723
|
-
<div className="grid grid-cols-2 gap-6 md:grid-cols-4">
|
|
724
|
-
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
|
|
725
|
-
<div className="bg-fm-icon-positive/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
|
|
726
|
-
<span className="text-2xl">🔐</span>
|
|
727
|
-
</div>
|
|
728
|
-
<div>
|
|
729
|
-
<div className="text-fm-icon-active font-medium">
|
|
730
|
-
LoginIcon
|
|
731
|
-
</div>
|
|
732
|
-
<div className="text-fm-tertiary text-xs">
|
|
733
|
-
Authentication
|
|
734
|
-
</div>
|
|
735
|
-
</div>
|
|
736
|
-
</div>
|
|
737
|
-
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
|
|
738
|
-
<div className="bg-fm-icon-info/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
|
|
739
|
-
<span className="text-2xl">👤</span>
|
|
740
|
-
</div>
|
|
741
|
-
<div>
|
|
742
|
-
<div className="text-fm-icon-active font-medium">
|
|
743
|
-
UserIcon
|
|
744
|
-
</div>
|
|
745
|
-
<div className="text-fm-tertiary text-xs">
|
|
746
|
-
User profile
|
|
747
|
-
</div>
|
|
748
|
-
</div>
|
|
749
|
-
</div>
|
|
750
|
-
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
|
|
751
|
-
<div className="bg-fm-icon-warning/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
|
|
752
|
-
<span className="text-2xl">☁️</span>
|
|
753
|
-
</div>
|
|
754
|
-
<div>
|
|
755
|
-
<div className="text-fm-icon-active font-medium">
|
|
756
|
-
CloudIcon
|
|
757
|
-
</div>
|
|
758
|
-
<div className="text-fm-tertiary text-xs">
|
|
759
|
-
Cloud services
|
|
760
|
-
</div>
|
|
761
|
-
</div>
|
|
762
|
-
</div>
|
|
763
|
-
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
|
|
764
|
-
<div className="bg-fm-secondary-500/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
|
|
765
|
-
<span className="text-2xl">🔗</span>
|
|
766
|
-
</div>
|
|
767
|
-
<div>
|
|
768
|
-
<div className="text-fm-icon-active font-medium">
|
|
769
|
-
LinkIcon
|
|
770
|
-
</div>
|
|
771
|
-
<div className="text-fm-tertiary text-xs">
|
|
772
|
-
Integration
|
|
773
|
-
</div>
|
|
774
|
-
</div>
|
|
775
|
-
</div>
|
|
776
|
-
</div>
|
|
777
|
-
</div>
|
|
778
|
-
</div>
|
|
779
|
-
|
|
780
|
-
{/* Footer */}
|
|
781
|
-
<div className="border-fm-divider-secondary bg-fm-surface-secondary border-t backdrop-blur-xl">
|
|
782
|
-
<div className="!mx-auto max-w-7xl px-6 py-8">
|
|
783
|
-
<div className="!space-y-4 text-center">
|
|
784
|
-
<p className="text-fm-tertiary!">
|
|
785
|
-
GoogleLogoIcon is part of the Aural UI icon library, built
|
|
786
|
-
with accessibility and brand consistency in mind.
|
|
787
|
-
</p>
|
|
788
|
-
<p className="text-fm-placeholder! text-sm">
|
|
789
|
-
All icons use Radix UI's AccessibleIcon for screen reader
|
|
790
|
-
compatibility and follow WCAG guidelines.
|
|
791
|
-
</p>
|
|
792
|
-
</div>
|
|
793
|
-
</div>
|
|
794
|
-
</div>
|
|
795
|
-
</div>
|
|
796
|
-
</>
|
|
52
|
+
}`,
|
|
53
|
+
livePreview: (
|
|
54
|
+
<button className="border-fm-divider-secondary text-fm-primary font-fm-text flex items-center gap-2 rounded-lg border px-4 py-2 text-sm">
|
|
55
|
+
<GoogleLogoIcon className="h-5 w-5" />
|
|
56
|
+
Continue with Google
|
|
57
|
+
</button>
|
|
58
|
+
),
|
|
59
|
+
}}
|
|
60
|
+
relatedIcons={[
|
|
61
|
+
{
|
|
62
|
+
name: "AppleLogoIcon",
|
|
63
|
+
description: "Sign in with Apple",
|
|
64
|
+
icon: AppleLogoIcon,
|
|
65
|
+
accentToken: "info",
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
name: "LinkedInIcon",
|
|
69
|
+
description: "LinkedIn brand mark",
|
|
70
|
+
icon: LinkedInIcon,
|
|
71
|
+
accentToken: "positive",
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
name: "TwitterXIcon",
|
|
75
|
+
description: "X (Twitter) brand mark",
|
|
76
|
+
icon: TwitterXIcon,
|
|
77
|
+
accentToken: "warning",
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
name: "YoutubeIcon",
|
|
81
|
+
description: "YouTube brand mark",
|
|
82
|
+
icon: YoutubeIcon,
|
|
83
|
+
accentToken: "negative",
|
|
84
|
+
},
|
|
85
|
+
]}
|
|
86
|
+
/>
|
|
797
87
|
),
|
|
798
88
|
},
|
|
799
89
|
},
|
|
800
90
|
tags: ["autodocs"],
|
|
801
91
|
argTypes: {
|
|
802
|
-
|
|
803
|
-
control:
|
|
804
|
-
description: "
|
|
92
|
+
className: {
|
|
93
|
+
control: "text",
|
|
94
|
+
description: "CSS classes for the SVG element",
|
|
805
95
|
},
|
|
806
96
|
withAccessibility: {
|
|
807
97
|
control: "boolean",
|
|
808
|
-
description: "
|
|
809
|
-
},
|
|
810
|
-
height: {
|
|
811
|
-
control: { type: "range", min: 8, max: 96, step: 2 },
|
|
812
|
-
description: "Height of the icon in pixels",
|
|
813
|
-
},
|
|
814
|
-
className: {
|
|
815
|
-
control: "text",
|
|
816
|
-
description: "CSS classes for styling",
|
|
98
|
+
description: "Wrap with accessibility label",
|
|
817
99
|
},
|
|
818
100
|
},
|
|
819
101
|
}
|
|
@@ -821,240 +103,115 @@ function CustomGoogleIcon({ label = "Google", ...props }) {
|
|
|
821
103
|
export default meta
|
|
822
104
|
type Story = StoryObj<typeof GoogleLogoIcon>
|
|
823
105
|
|
|
824
|
-
// Story parameters for consistent dark theme
|
|
825
|
-
const storyParameters = {
|
|
826
|
-
backgrounds: {
|
|
827
|
-
default: "dark",
|
|
828
|
-
values: [
|
|
829
|
-
{ name: "dark", value: "var(--color-fm-surface-primary)" },
|
|
830
|
-
{ name: "darker", value: "var(--color-fm-neutral-0)" },
|
|
831
|
-
],
|
|
832
|
-
},
|
|
833
|
-
}
|
|
834
|
-
|
|
835
106
|
export const Default: Story = {
|
|
836
107
|
args: {
|
|
837
|
-
|
|
838
|
-
height: 20,
|
|
839
|
-
className: "",
|
|
108
|
+
className: "h-6 w-6",
|
|
840
109
|
withAccessibility: true,
|
|
841
110
|
},
|
|
842
|
-
parameters: storyParameters,
|
|
843
111
|
render: (args) => (
|
|
844
|
-
<
|
|
845
|
-
<
|
|
846
|
-
|
|
847
|
-
</div>
|
|
848
|
-
</div>
|
|
112
|
+
<IconDefaultCanvas>
|
|
113
|
+
<GoogleLogoIcon {...args} />
|
|
114
|
+
</IconDefaultCanvas>
|
|
849
115
|
),
|
|
850
116
|
}
|
|
851
117
|
|
|
852
118
|
export const SizeVariations: Story = {
|
|
853
|
-
|
|
854
|
-
...storyParameters,
|
|
855
|
-
docs: {
|
|
856
|
-
description: {
|
|
857
|
-
story:
|
|
858
|
-
"GoogleLogoIcon in different sizes, from small UI elements to large brand displays.",
|
|
859
|
-
},
|
|
860
|
-
},
|
|
861
|
-
},
|
|
862
|
-
render: () => (
|
|
863
|
-
<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">
|
|
864
|
-
<div className="text-center">
|
|
865
|
-
<div className="bg-fm-surface-contrast !mx-auto mb-2 rounded p-2">
|
|
866
|
-
<GoogleLogoIcon className="h-3 w-3" />
|
|
867
|
-
</div>
|
|
868
|
-
<span className="text-fm-tertiary text-xs">12px</span>
|
|
869
|
-
</div>
|
|
870
|
-
<div className="text-center">
|
|
871
|
-
<div className="bg-fm-surface-contrast !mx-auto mb-2 rounded p-2">
|
|
872
|
-
<GoogleLogoIcon className="h-4 w-4" />
|
|
873
|
-
</div>
|
|
874
|
-
<span className="text-fm-tertiary text-xs">16px</span>
|
|
875
|
-
</div>
|
|
876
|
-
<div className="text-center">
|
|
877
|
-
<div className="bg-fm-surface-contrast !mx-auto mb-2 rounded p-2">
|
|
878
|
-
<GoogleLogoIcon className="h-5 w-5" />
|
|
879
|
-
</div>
|
|
880
|
-
<span className="text-fm-tertiary text-xs">20px</span>
|
|
881
|
-
</div>
|
|
882
|
-
<div className="text-center">
|
|
883
|
-
<div className="bg-fm-surface-contrast !mx-auto mb-2 rounded p-2">
|
|
884
|
-
<GoogleLogoIcon className="h-6 w-6" />
|
|
885
|
-
</div>
|
|
886
|
-
<span className="text-fm-tertiary text-xs">24px</span>
|
|
887
|
-
</div>
|
|
888
|
-
<div className="text-center">
|
|
889
|
-
<div className="bg-fm-surface-contrast !mx-auto mb-2 rounded p-2">
|
|
890
|
-
<GoogleLogoIcon className="h-8 w-8" />
|
|
891
|
-
</div>
|
|
892
|
-
<span className="text-fm-tertiary text-xs">32px</span>
|
|
893
|
-
</div>
|
|
894
|
-
<div className="text-center">
|
|
895
|
-
<div className="bg-fm-surface-contrast !mx-auto mb-2 rounded p-3">
|
|
896
|
-
<GoogleLogoIcon className="h-12 w-12" />
|
|
897
|
-
</div>
|
|
898
|
-
<span className="text-fm-tertiary text-xs">48px</span>
|
|
899
|
-
</div>
|
|
900
|
-
</div>
|
|
901
|
-
),
|
|
119
|
+
render: () => <IconSizeVariations icon={GoogleLogoIcon} />,
|
|
902
120
|
}
|
|
903
121
|
|
|
904
|
-
export const
|
|
905
|
-
parameters: {
|
|
906
|
-
...storyParameters,
|
|
907
|
-
docs: {
|
|
908
|
-
description: {
|
|
909
|
-
story:
|
|
910
|
-
"GoogleLogoIcon shown on different backgrounds to demonstrate optimal usage contexts.",
|
|
911
|
-
},
|
|
912
|
-
},
|
|
913
|
-
},
|
|
122
|
+
export const BrandColors: Story = {
|
|
914
123
|
render: () => (
|
|
915
|
-
<
|
|
916
|
-
|
|
917
|
-
|
|
918
|
-
|
|
919
|
-
|
|
920
|
-
|
|
921
|
-
|
|
922
|
-
|
|
923
|
-
|
|
924
|
-
|
|
925
|
-
|
|
926
|
-
|
|
927
|
-
|
|
928
|
-
|
|
929
|
-
|
|
930
|
-
|
|
931
|
-
|
|
932
|
-
|
|
933
|
-
|
|
934
|
-
|
|
935
|
-
|
|
936
|
-
|
|
937
|
-
|
|
938
|
-
|
|
939
|
-
|
|
940
|
-
|
|
941
|
-
|
|
942
|
-
|
|
943
|
-
|
|
944
|
-
|
|
945
|
-
|
|
946
|
-
</div>
|
|
947
|
-
<div className="text-fm-icon-active text-sm font-medium">
|
|
948
|
-
Transparent
|
|
949
|
-
</div>
|
|
950
|
-
<div className="text-fm-tertiary text-xs">Original colors</div>
|
|
951
|
-
</div>
|
|
952
|
-
</div>
|
|
124
|
+
<IconBrandColors
|
|
125
|
+
icon={GoogleLogoIcon}
|
|
126
|
+
variants={[
|
|
127
|
+
{
|
|
128
|
+
label: "Contrast Background",
|
|
129
|
+
description: "Theme contrast",
|
|
130
|
+
cardClassName:
|
|
131
|
+
"border-fm-divider-secondary bg-fm-neutral-1100 h-24 w-24 border",
|
|
132
|
+
iconClassName: "h-8 w-8",
|
|
133
|
+
},
|
|
134
|
+
{
|
|
135
|
+
label: "Secondary Surface",
|
|
136
|
+
description: "Theme surface",
|
|
137
|
+
cardClassName: "bg-fm-surface-secondary h-24 w-24",
|
|
138
|
+
iconClassName: "h-8 w-8",
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
label: "Primary Surface",
|
|
142
|
+
description: "Theme surface",
|
|
143
|
+
cardClassName: "bg-fm-surface-primary h-24 w-24",
|
|
144
|
+
iconClassName: "h-8 w-8",
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
label: "Transparent",
|
|
148
|
+
description: "Original colors",
|
|
149
|
+
cardClassName:
|
|
150
|
+
"border-fm-divider-contrast h-24 w-24 border bg-transparent",
|
|
151
|
+
iconClassName: "h-8 w-8",
|
|
152
|
+
},
|
|
153
|
+
]}
|
|
154
|
+
/>
|
|
953
155
|
),
|
|
954
156
|
}
|
|
955
157
|
|
|
956
158
|
export const UsageExamples: Story = {
|
|
957
|
-
parameters: {
|
|
958
|
-
...storyParameters,
|
|
959
|
-
docs: {
|
|
960
|
-
description: {
|
|
961
|
-
story:
|
|
962
|
-
"Real-world usage examples showing GoogleLogoIcon in different authentication and integration contexts.",
|
|
963
|
-
},
|
|
964
|
-
},
|
|
965
|
-
},
|
|
966
159
|
render: () => (
|
|
967
|
-
<
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
|
|
972
|
-
</
|
|
973
|
-
|
|
974
|
-
|
|
160
|
+
<IconUsageCanvas>
|
|
161
|
+
<IconUsageSection title="Sign In with Google">
|
|
162
|
+
<button className="border-fm-divider-secondary bg-fm-surface-secondary text-fm-primary font-fm-text flex w-full max-w-sm items-center justify-center gap-3 rounded-xl border px-4 py-3 text-sm font-medium">
|
|
163
|
+
<GoogleLogoIcon className="h-5 w-5" />
|
|
164
|
+
Continue with Google
|
|
165
|
+
</button>
|
|
166
|
+
</IconUsageSection>
|
|
167
|
+
|
|
168
|
+
<IconUsageSection title="Auth Provider List">
|
|
169
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary w-full max-w-sm space-y-2 rounded-xl border p-4">
|
|
170
|
+
<button className="border-fm-divider-secondary flex w-full items-center gap-3 rounded-lg border px-3 py-2.5">
|
|
975
171
|
<GoogleLogoIcon className="h-5 w-5" />
|
|
976
|
-
|
|
172
|
+
<span className="text-fm-primary font-fm-text text-sm">
|
|
173
|
+
Continue with Google
|
|
174
|
+
</span>
|
|
977
175
|
</button>
|
|
978
|
-
<button className="border-fm-divider-
|
|
979
|
-
<
|
|
980
|
-
|
|
176
|
+
<button className="border-fm-divider-secondary flex w-full items-center gap-3 rounded-lg border px-3 py-2.5">
|
|
177
|
+
<AppleLogoIcon className="text-fm-icon-active h-5 w-5" />
|
|
178
|
+
<span className="text-fm-primary font-fm-text text-sm">
|
|
179
|
+
Continue with Apple
|
|
180
|
+
</span>
|
|
981
181
|
</button>
|
|
982
182
|
</div>
|
|
983
|
-
</
|
|
183
|
+
</IconUsageSection>
|
|
984
184
|
|
|
985
|
-
|
|
986
|
-
|
|
987
|
-
|
|
988
|
-
|
|
989
|
-
|
|
990
|
-
|
|
991
|
-
|
|
992
|
-
<div className="flex items-center gap-4">
|
|
993
|
-
<div className="bg-fm-surface-contrast flex h-10 w-10 items-center justify-center rounded-lg">
|
|
994
|
-
<GoogleLogoIcon className="h-6 w-6" />
|
|
185
|
+
<IconUsageSection title="Connected Account">
|
|
186
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary flex w-full max-w-sm items-center justify-between rounded-xl border px-4 py-3">
|
|
187
|
+
<div className="flex items-center gap-3">
|
|
188
|
+
<GoogleLogoIcon className="h-5 w-5" />
|
|
189
|
+
<div>
|
|
190
|
+
<div className="text-fm-primary font-fm-text text-sm font-medium">
|
|
191
|
+
Google
|
|
995
192
|
</div>
|
|
996
|
-
<div>
|
|
997
|
-
|
|
998
|
-
Google Drive
|
|
999
|
-
</div>
|
|
1000
|
-
<div className="text-fm-tertiary text-sm">
|
|
1001
|
-
Connected to your account
|
|
1002
|
-
</div>
|
|
193
|
+
<div className="text-fm-secondary font-fm-text text-xs">
|
|
194
|
+
user@gmail.com
|
|
1003
195
|
</div>
|
|
1004
196
|
</div>
|
|
1005
|
-
<div className="bg-fm-icon-positive h-2 w-2 rounded-full"></div>
|
|
1006
|
-
</div>
|
|
1007
|
-
</div>
|
|
1008
|
-
</div>
|
|
1009
|
-
|
|
1010
|
-
{/* Integration Card */}
|
|
1011
|
-
<div className="!space-y-2">
|
|
1012
|
-
<h3 className="text-fm-icon-active text-sm font-medium">
|
|
1013
|
-
Integration Card
|
|
1014
|
-
</h3>
|
|
1015
|
-
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
|
|
1016
|
-
<div className="!space-y-4 text-center">
|
|
1017
|
-
<div className="bg-fm-surface-contrast !mx-auto flex h-16 w-16 items-center justify-center rounded-lg">
|
|
1018
|
-
<GoogleLogoIcon className="h-8 w-8" />
|
|
1019
|
-
</div>
|
|
1020
|
-
<div className="!space-y-2">
|
|
1021
|
-
<h4 className="text-fm-icon-active! font-medium">
|
|
1022
|
-
Connect Google Workspace
|
|
1023
|
-
</h4>
|
|
1024
|
-
<p className="text-fm-secondary! text-sm">
|
|
1025
|
-
Sync your Google Calendar, Drive, and Gmail
|
|
1026
|
-
</p>
|
|
1027
|
-
</div>
|
|
1028
|
-
<button className="bg-fm-icon-info text-fm-icon-active hover:bg-fm-icon-info rounded-lg px-4 py-2 text-sm transition-colors">
|
|
1029
|
-
Connect Now
|
|
1030
|
-
</button>
|
|
1031
197
|
</div>
|
|
198
|
+
<span className="text-fm-icon-positive font-fm-text text-xs">
|
|
199
|
+
Connected
|
|
200
|
+
</span>
|
|
1032
201
|
</div>
|
|
1033
|
-
</
|
|
1034
|
-
</
|
|
202
|
+
</IconUsageSection>
|
|
203
|
+
</IconUsageCanvas>
|
|
1035
204
|
),
|
|
1036
205
|
}
|
|
1037
206
|
|
|
1038
207
|
export const Playground: Story = {
|
|
1039
|
-
parameters: {
|
|
1040
|
-
...storyParameters,
|
|
1041
|
-
docs: {
|
|
1042
|
-
description: {
|
|
1043
|
-
story:
|
|
1044
|
-
"Interactive playground to experiment with different GoogleLogoIcon configurations.",
|
|
1045
|
-
},
|
|
1046
|
-
},
|
|
1047
|
-
},
|
|
1048
208
|
args: {
|
|
1049
|
-
|
|
1050
|
-
|
|
1051
|
-
className: "",
|
|
209
|
+
className: "h-8 w-8",
|
|
210
|
+
withAccessibility: true,
|
|
1052
211
|
},
|
|
1053
212
|
render: (args) => (
|
|
1054
|
-
<
|
|
1055
|
-
<
|
|
1056
|
-
|
|
1057
|
-
</div>
|
|
1058
|
-
</div>
|
|
213
|
+
<IconPlaygroundCanvas>
|
|
214
|
+
<GoogleLogoIcon {...args} />
|
|
215
|
+
</IconPlaygroundCanvas>
|
|
1059
216
|
),
|
|
1060
217
|
}
|