aural-ui 3.0.7 → 4.1.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/dist/components/aspect-ratio/AspectRatio.stories.tsx +290 -1199
- package/dist/components/avatar/Avatar.stories.tsx +235 -237
- 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/button/index.tsx +7 -7
- 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 -620
- 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 +533 -856
- package/dist/components/dialog/Dialog.stories.tsx +505 -949
- package/dist/components/divider/Divider.stories.tsx +265 -502
- package/dist/components/dot-loader/DotLoader.stories.tsx +256 -257
- package/dist/components/drawer/Drawer.stories.tsx +659 -993
- package/dist/components/drawer/index.tsx +3 -3
- package/dist/components/dropdown/Dropdown.stories.tsx +643 -1018
- 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 -1221
- 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 +485 -822
- package/dist/components/marquee/Marquee.stories.tsx +356 -694
- package/dist/components/otp-inputs/OtpInputs.stories.tsx +352 -410
- package/dist/components/overlay/Overlay.stories.tsx +452 -818
- package/dist/components/overlay/index.tsx +4 -4
- package/dist/components/pagination/Pagination.stories.tsx +721 -210
- package/dist/components/popover/Popover.stories.tsx +484 -873
- package/dist/components/radio/Radio.stories.tsx +432 -124
- package/dist/components/resizable/Resizable.stories.tsx +496 -752
- package/dist/components/scroll-area/ScrollArea.stories.tsx +384 -1006
- package/dist/components/search/Search.stories.tsx +314 -575
- package/dist/components/select/Select.stories.tsx +684 -787
- package/dist/components/sheet/Sheet.stories.tsx +671 -936
- package/dist/components/skelton/Skelton.stories.tsx +230 -764
- package/dist/components/slider/Slider.stories.tsx +384 -737
- 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 -914
- package/dist/components/tabs/Tabs.stories.tsx +459 -1400
- 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 -148
- package/dist/components/toast/Toast.stories.tsx +452 -1333
- package/dist/components/toggle/Toggle.stories.tsx +488 -909
- package/dist/components/tooltip/Tooltip.stories.tsx +344 -1372
- 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 +226 -1013
- package/dist/icons/alert-icon/AlertIcon.stories.tsx +109 -929
- package/dist/icons/all-icons.tsx +124 -87
- package/dist/icons/angle-down-icon/AngleDownIcon.stories.tsx +140 -971
- package/dist/icons/apple-logo-icon/AppleLogoIcon.stories.tsx +148 -888
- package/dist/icons/arrow-box-left-icon/ArrowBoxLeftIcon.stories.tsx +135 -1019
- package/dist/icons/arrow-corner-up-left-icon/ArrowCornerUpLeftIcon.stories.tsx +137 -953
- package/dist/icons/arrow-corner-up-right-icon/ArrowCornerUpRightIcon.stories.tsx +138 -997
- package/dist/icons/arrow-left-icon/ArrowLeftIcon.stories.tsx +136 -942
- package/dist/icons/arrow-right-icon/ArrowRightIcon.stories.tsx +148 -1092
- package/dist/icons/arrow-right-up-icon/ArrowRightUpIcon.stories.tsx +146 -1211
- package/dist/icons/art-board-icon/ArtBoardIcon.stories.tsx +126 -615
- package/dist/icons/audio-bar-icon/AudioBarIcon.stories.tsx +144 -1164
- package/dist/icons/backward-ten-seconds-icon/BackwardTenSecondsIcon.stories.tsx +167 -985
- package/dist/icons/bubble-check-icon/BubbleCheckIcon.stories.tsx +122 -1179
- package/dist/icons/bubble-crossed-icon/BubbleCrossedIcon.stories.tsx +124 -1168
- package/dist/icons/bubble-sparkle-icon/BubbleSparkleIcon.stories.tsx +119 -850
- package/dist/icons/camera-icon/CameraIcon.stories.tsx +112 -1213
- package/dist/icons/capital-a-letter-icon/CapitalALetterIcon.stories.tsx +117 -934
- package/dist/icons/chevron-double-left-icon/ChevronDoubleLeftIcon.stories.tsx +160 -961
- package/dist/icons/chevron-double-right-icon/ChevronDoubleRightIcon.stories.tsx +163 -961
- package/dist/icons/chevron-down-icon/ChevronDownIcon.stories.tsx +144 -942
- package/dist/icons/chevron-left-icon/ChevronLeftIcon.stories.tsx +129 -966
- package/dist/icons/chevron-right-icon/ChevronRightIcon.stories.tsx +147 -964
- package/dist/icons/chevron-up-icon/ChevronUpIcon.stories.tsx +145 -975
- package/dist/icons/circle-tick-icon/CircleTickIcon.stories.tsx +150 -1142
- package/dist/icons/circular-play-icon/CircularPlayIcon.stories.tsx +114 -461
- package/dist/icons/coin-icon/CoinIcon.stories.tsx +124 -1322
- package/dist/icons/coin-toons-icon/CoinToonsIcon.stories.tsx +117 -1318
- package/dist/icons/column-wide-add-icon/ColumnWideAddIcon.stories.tsx +114 -903
- package/dist/icons/command-icon/CommandIcon.stories.tsx +127 -1042
- package/dist/icons/copy-icon/CopyIcon.stories.tsx +123 -962
- package/dist/icons/cross-circle-icon/CrossCircleIcon.stories.tsx +147 -999
- package/dist/icons/cross-icon/CrossIcon.stories.tsx +139 -960
- package/dist/icons/download-icon/DownloadIcon.stories.tsx +126 -820
- package/dist/icons/edit-big-icon/EditBigIcon.stories.tsx +124 -1031
- package/dist/icons/email-icon/EmailIcon.stories.tsx +115 -936
- package/dist/icons/expand-icon/ExpandIcon.stories.tsx +112 -1111
- package/dist/icons/eye-close-icon/EyeCloseIcon.stories.tsx +144 -1025
- package/dist/icons/eye-open-icon/EyeOpenIcon.stories.tsx +143 -1036
- package/dist/icons/feature-shine-icon/FeatureShineIcon.stories.tsx +127 -1011
- package/dist/icons/file-chart-icon/FileChartIcon.stories.tsx +126 -1056
- package/dist/icons/file-text-icon/FileTextIcon.stories.tsx +125 -614
- package/dist/icons/filter-bar-row-icon/FilterBarRowIcon.stories.tsx +119 -1050
- package/dist/icons/forward-ten-seconds-icon/ForwardTenSecondsIcon.stories.tsx +169 -989
- package/dist/icons/git-branch-icon/GitBranchIcon.stories.tsx +115 -1145
- package/dist/icons/git-fork-icon/GitForkIcon.stories.tsx +115 -1122
- package/dist/icons/globe-icon/GlobeIcon.stories.tsx +130 -313
- package/dist/icons/google-logo-icon/GoogleLogoIcon.stories.tsx +145 -940
- package/dist/icons/grip-vertical-icon/GripVerticalIcon.stories.tsx +119 -1174
- package/dist/icons/head-icon/HeadIcon.stories.tsx +111 -916
- package/dist/icons/heart-icon/HeartIcon.stories.tsx +120 -1019
- package/dist/icons/image-avatar-sparkle-icon/ImageAvatarSparkleIcon.stories.tsx +119 -683
- package/dist/icons/image-icon/ImageIcon.stories.tsx +105 -1121
- package/dist/icons/import-folder-icon/ImportFolderIcon.stories.tsx +111 -1192
- package/dist/icons/import-left-arrow-folder-icon/ImportLeftArrowFolderIcon.stories.tsx +136 -1256
- package/dist/icons/indian-flag-icon/IndianFlagIcon.stories.tsx +159 -962
- package/dist/icons/instagram-icon/InstagramIcon.stories.tsx +161 -1385
- package/dist/icons/layout-column-icon/LayoutColumnIcon.stories.tsx +124 -972
- package/dist/icons/layout-left-icon/LayoutLeftIcon.stories.tsx +119 -948
- package/dist/icons/layout-right-icon/LayoutRightIcon.stories.tsx +119 -942
- package/dist/icons/light-bulb-simple-icon/LightBulbSimpleIcon.stories.tsx +108 -1215
- package/dist/icons/linked-in-icon/LinkedInIcon.stories.tsx +154 -1517
- package/dist/icons/magic-book-icon/MagicBookIcon.stories.tsx +110 -1188
- package/dist/icons/magic-edit-icon/MagicEditIcon.stories.tsx +119 -678
- package/dist/icons/maintenance-icon/MaintenanceIcon.stories.tsx +123 -1184
- package/dist/icons/message-icon/MessageIcon.stories.tsx +114 -538
- package/dist/icons/minimize-icon/MinimizeIcon.stories.tsx +116 -1158
- package/dist/icons/moon-icon/MoonIcon.stories.tsx +120 -536
- package/dist/icons/move-horizontal-icon/MoveHorizontalIcon.stories.tsx +109 -1184
- package/dist/icons/move-vertical-icon/MoveVerticalIcon.stories.tsx +115 -1134
- package/dist/icons/musical-note-icon/MusicalNoteIcon.stories.tsx +119 -971
- package/dist/icons/notepad-icon/NotepadIcon.stories.tsx +111 -1100
- package/dist/icons/notes-icon/NotesIcon.stories.tsx +119 -1101
- package/dist/icons/page-search-icon/PageSearchIcon.stories.tsx +109 -1111
- package/dist/icons/page-text-icon/PageTextIcon.stories.tsx +122 -684
- package/dist/icons/paint-roll-icon/PaintRollIcon.stories.tsx +113 -954
- package/dist/icons/paper-plane-icon/PaperPlaneIcon.stories.tsx +112 -877
- package/dist/icons/pause-icon/PauseIcon.stories.tsx +113 -1000
- package/dist/icons/pencil-icon/PencilIcon.stories.tsx +115 -1070
- package/dist/icons/phone-icon/PhoneIcon.stories.tsx +115 -978
- package/dist/icons/plus-icon/PlusIcon.stories.tsx +106 -1093
- package/dist/icons/pocket-studio-icon/PocketStudioIcon.stories.tsx +107 -829
- package/dist/icons/scroll-down-icon/ScrollDownIcon.stories.tsx +102 -469
- package/dist/icons/search-icon/SearchIcon.stories.tsx +111 -1124
- package/dist/icons/setting-icon/SettingIcon.stories.tsx +107 -970
- package/dist/icons/share-icon/ShareIcon.stories.tsx +120 -1025
- package/dist/icons/shield-icon/ShieldIcon.stories.tsx +117 -931
- package/dist/icons/site-logo-icon/SiteLogoIcon.stories.tsx +137 -1104
- package/dist/icons/skip-backward-icon/SkipBackwardIcon.stories.tsx +172 -982
- package/dist/icons/skip-forward-icon/SkipForwardIcon.stories.tsx +164 -983
- package/dist/icons/sparkles-soft-icon/SparklesSoftIcon.stories.tsx +105 -958
- package/dist/icons/spinner-gradient-icon/SpinnerGradientIcon.stories.tsx +158 -580
- package/dist/icons/spinner-gradient-icon/index.tsx +6 -1
- package/dist/icons/spinner-solid-icon/SpinnerSolidIcon.stories.tsx +158 -587
- package/dist/icons/spinner-solid-icon/index.tsx +6 -1
- package/dist/icons/spinner-solid-neutral-icon/SpinnerSolidINeutralcon.stories.tsx +146 -682
- package/dist/icons/spinner-solid-neutral-icon/index.tsx +1 -1
- package/dist/icons/star-icon/StarIcon.stories.tsx +124 -904
- package/dist/icons/store-coin-icon/StoreCoinIcon.stories.tsx +112 -964
- package/dist/icons/suggestion-icon/SuggestionIcon.stories.tsx +116 -852
- package/dist/icons/sun-icon/SunIcon.stories.tsx +120 -831
- package/dist/icons/text-color-icon/TextColorIcon.stories.tsx +116 -950
- package/dist/icons/text-indicator-icon/TextIndicatorIcon.stories.tsx +123 -980
- package/dist/icons/threads-icon/ThreadsIcon.stories.tsx +156 -1427
- package/dist/icons/tick-circle-icon/TickCircleIcon.stories.tsx +146 -1142
- package/dist/icons/tick-icon/TickIcon.stories.tsx +145 -1276
- package/dist/icons/trash-icon/TrashIcon.stories.tsx +108 -933
- package/dist/icons/twitter-x-icon/TwitterXIcon.stories.tsx +157 -1402
- package/dist/icons/upload-icon/UploadIcon.stories.tsx +115 -889
- package/dist/icons/vertical-menu-icon/VerticalMenuIcon.stories.tsx +118 -984
- package/dist/icons/video-play-list-icon/VideoPlaylistIcon.stories.tsx +125 -1049
- package/dist/icons/voice-playing-icon/VoicePlayingIcon.stories.tsx +123 -1356
- package/dist/icons/volume-full-icon/VolumeFullIcon.stories.tsx +110 -1171
- package/dist/icons/volume-half-icon/VolumeHalfIcon.stories.tsx +112 -1093
- package/dist/icons/volume-off-icon/VolumeOffIcon.stories.tsx +115 -1087
- package/dist/icons/warning-icon/WarningIcon.stories.tsx +122 -1046
- package/dist/icons/youtube-icon/YoutubeIcon.stories.tsx +161 -936
- package/dist/index.cjs +84 -84
- package/dist/index.js +84 -84
- package/dist/styles/aural-all-theme.css +1222 -0
- package/dist/styles/{aural-theme.css → aural-dark-theme.css} +15 -3
- package/dist/styles/aural-light-theme.css +1047 -0
- package/package.json +1 -1
|
@@ -1,6 +1,20 @@
|
|
|
1
1
|
import React from "react"
|
|
2
2
|
import type { Meta, StoryObj } from "@storybook/react-vite"
|
|
3
3
|
|
|
4
|
+
import { IndianFlagIcon } from "src/ui/icons/indian-flag-icon"
|
|
5
|
+
import { SearchIcon } from "src/ui/icons/search-icon"
|
|
6
|
+
import { SettingIcon } from "src/ui/icons/setting-icon"
|
|
7
|
+
import { ShareIcon } from "src/ui/icons/share-icon"
|
|
8
|
+
import {
|
|
9
|
+
IconColorVariations,
|
|
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 { GlobeIcon } from "."
|
|
5
19
|
|
|
6
20
|
const meta: Meta<typeof GlobeIcon> = {
|
|
@@ -11,350 +25,153 @@ const meta: Meta<typeof GlobeIcon> = {
|
|
|
11
25
|
backgrounds: {
|
|
12
26
|
default: "dark",
|
|
13
27
|
values: [
|
|
14
|
-
{ name: "dark", value: "
|
|
15
|
-
{ name: "darker", value: "
|
|
16
|
-
{ name: "light", value: "
|
|
28
|
+
{ name: "dark", value: "var(--color-fm-surface-primary)" },
|
|
29
|
+
{ name: "darker", value: "var(--color-fm-neutral-0)" },
|
|
30
|
+
{ name: "light", value: "var(--color-fm-neutral-1100)" },
|
|
17
31
|
],
|
|
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: #0a0a0a ;
|
|
44
|
-
}
|
|
45
|
-
#storybook-docs {
|
|
46
|
-
background: #0a0a0a ;
|
|
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: white ;
|
|
54
|
-
}
|
|
55
|
-
.sbdocs-p, .sbdocs-li {
|
|
56
|
-
color: rgba(255, 255, 255, 0.7) ;
|
|
57
|
-
}
|
|
58
|
-
.sbdocs-code {
|
|
59
|
-
background: rgba(255, 255, 255, 0.1) ;
|
|
60
|
-
color: rgba(168, 85, 247, 1) ;
|
|
61
|
-
border: 1px solid rgba(255, 255, 255, 0.1) ;
|
|
62
|
-
}
|
|
63
|
-
.sbdocs-pre {
|
|
64
|
-
background: rgba(0, 0, 0, 0.4) ;
|
|
65
|
-
border: 1px solid rgba(255, 255, 255, 0.1) ;
|
|
66
|
-
}
|
|
67
|
-
.sbdocs-table {
|
|
68
|
-
background: rgba(255, 255, 255, 0.05) ;
|
|
69
|
-
border: 1px solid rgba(255, 255, 255, 0.1) ;
|
|
70
|
-
}
|
|
71
|
-
.sbdocs-table th {
|
|
72
|
-
background: rgba(255, 255, 255, 0.05) ;
|
|
73
|
-
color: white ;
|
|
74
|
-
border-bottom: 1px solid rgba(255, 255, 255, 0.1) ;
|
|
75
|
-
}
|
|
76
|
-
.sbdocs-table td {
|
|
77
|
-
color: rgba(255, 255, 255, 0.7) ;
|
|
78
|
-
border-bottom: 1px solid rgba(255, 255, 255, 0.05) ;
|
|
79
|
-
}
|
|
80
|
-
`}
|
|
81
|
-
</style>
|
|
82
|
-
|
|
83
|
-
<div className="min-h-screen bg-gradient-to-br from-gray-900 via-purple-900/20 to-gray-900">
|
|
84
|
-
{/* Header */}
|
|
85
|
-
<div className="relative overflow-hidden border-b border-white/10 bg-black/20 backdrop-blur-xl">
|
|
86
|
-
<div className="absolute inset-0 bg-gradient-to-r from-purple-500/10 via-transparent to-violet-500/10" />
|
|
87
|
-
<div className="relative !mx-auto max-w-7xl px-6 py-16">
|
|
88
|
-
<div className="!space-y-6 text-center">
|
|
89
|
-
<div className="!mx-auto flex h-24 w-24 items-center justify-center rounded-2xl border border-purple-500/30 bg-gradient-to-br from-purple-500/20 to-violet-500/20">
|
|
90
|
-
<GlobeIcon className="text-fm-secondary-800 h-12 w-12" />
|
|
91
|
-
</div>
|
|
92
|
-
<h1 className="text-5xl font-bold !text-white">GlobeIcon</h1>
|
|
93
|
-
<p className="!mx-auto max-w-3xl text-xl leading-relaxed !text-white/70">
|
|
94
|
-
A universal globe icon representing worldwide connectivity,
|
|
95
|
-
international features, language selection, and global
|
|
96
|
-
navigation. Perfect for localization interfaces, world maps,
|
|
97
|
-
and international settings.
|
|
98
|
-
</p>
|
|
99
|
-
|
|
100
|
-
{/* Stats */}
|
|
101
|
-
<div className="flex items-center justify-center gap-8 pt-8">
|
|
102
|
-
<div className="text-center">
|
|
103
|
-
<div className="text-3xl font-bold text-purple-300">
|
|
104
|
-
Global
|
|
105
|
-
</div>
|
|
106
|
-
<div className="text-sm text-white/60">
|
|
107
|
-
Worldwide access
|
|
108
|
-
</div>
|
|
109
|
-
</div>
|
|
110
|
-
<div className="h-8 w-px bg-white/20" />
|
|
111
|
-
<div className="text-center">
|
|
112
|
-
<div className="text-3xl font-bold text-violet-300">
|
|
113
|
-
Accessible
|
|
114
|
-
</div>
|
|
115
|
-
<div className="text-sm text-white/60">
|
|
116
|
-
Screen reader friendly
|
|
117
|
-
</div>
|
|
118
|
-
</div>
|
|
119
|
-
<div className="h-8 w-px bg-white/20" />
|
|
120
|
-
<div className="text-center">
|
|
121
|
-
<div className="text-3xl font-bold text-fuchsia-300">
|
|
122
|
-
Universal
|
|
123
|
-
</div>
|
|
124
|
-
<div className="text-sm text-white/60">
|
|
125
|
-
Standard globe icon
|
|
126
|
-
</div>
|
|
127
|
-
</div>
|
|
128
|
-
</div>
|
|
129
|
-
</div>
|
|
130
|
-
</div>
|
|
131
|
-
</div>
|
|
132
|
-
|
|
133
|
-
{/* Content */}
|
|
134
|
-
<div className="!mx-auto max-w-7xl !space-y-16 px-6 py-12">
|
|
135
|
-
{/* Quick Usage */}
|
|
136
|
-
<div className="!space-y-8">
|
|
137
|
-
<h2 className="text-center text-3xl font-bold !text-white">
|
|
138
|
-
Quick Start
|
|
139
|
-
</h2>
|
|
140
|
-
<div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
|
|
141
|
-
<div className="!space-y-4">
|
|
142
|
-
<h3 className="text-xl font-semibold !text-purple-300">
|
|
143
|
-
Basic Usage
|
|
144
|
-
</h3>
|
|
145
|
-
<div className="rounded-lg bg-black/40 p-4">
|
|
146
|
-
<pre className="overflow-x-auto text-sm !text-green-300">
|
|
147
|
-
{`import { GlobeIcon } from "@icons/globe-icon"
|
|
148
|
-
|
|
149
|
-
function LanguageSelector() {
|
|
35
|
+
<AuralIconDocsPage
|
|
36
|
+
accentToken="info"
|
|
37
|
+
features={[
|
|
38
|
+
{ title: "Globalisation", description: "Language and region icon" },
|
|
39
|
+
{ title: "Web / Internet", description: "Open web link indicator" },
|
|
40
|
+
{ title: "Accessible", description: "ARIA-ready by default" },
|
|
41
|
+
]}
|
|
42
|
+
quickStart={{
|
|
43
|
+
codeExample: `import { GlobeIcon } from "src/ui/icons/globe-icon"
|
|
44
|
+
|
|
45
|
+
function LanguagePicker() {
|
|
150
46
|
return (
|
|
151
|
-
<button
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
>
|
|
155
|
-
<GlobeIcon className="h-6 w-6" />
|
|
47
|
+
<button className="flex items-center gap-2">
|
|
48
|
+
<GlobeIcon className="h-5 w-5 text-fm-icon-active" />
|
|
49
|
+
<span>English</span>
|
|
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
|
-
<th className="px-6 py-4 text-left text-sm font-semibold !text-white">
|
|
193
|
-
Type
|
|
194
|
-
</th>
|
|
195
|
-
<th className="px-6 py-4 text-left text-sm font-semibold !text-white">
|
|
196
|
-
Default
|
|
197
|
-
</th>
|
|
198
|
-
<th className="px-6 py-4 text-left text-sm font-semibold !text-white">
|
|
199
|
-
Description
|
|
200
|
-
</th>
|
|
201
|
-
</tr>
|
|
202
|
-
</thead>
|
|
203
|
-
<tbody>
|
|
204
|
-
<tr className="!bg-black/10">
|
|
205
|
-
<td className="px-6 py-4 font-mono text-sm !text-blue-300">
|
|
206
|
-
withAccessibility
|
|
207
|
-
</td>
|
|
208
|
-
<td className="px-6 py-4 text-sm !text-white/70">
|
|
209
|
-
boolean
|
|
210
|
-
</td>
|
|
211
|
-
<td className="px-6 py-4 text-sm !text-white/50">
|
|
212
|
-
true
|
|
213
|
-
</td>
|
|
214
|
-
<td className="px-6 py-4 text-sm !text-white/70">
|
|
215
|
-
Whether to wrap the icon with accessibility feature
|
|
216
|
-
</td>
|
|
217
|
-
</tr>
|
|
218
|
-
<tr className="border-b border-white/5 !bg-black/10">
|
|
219
|
-
<td className="px-6 py-4 font-mono text-sm !text-purple-300">
|
|
220
|
-
width
|
|
221
|
-
</td>
|
|
222
|
-
<td className="px-6 py-4 text-sm !text-white/70">
|
|
223
|
-
number | string
|
|
224
|
-
</td>
|
|
225
|
-
<td className="px-6 py-4 text-sm !text-white/50">17</td>
|
|
226
|
-
<td className="px-6 py-4 text-sm !text-white/70">
|
|
227
|
-
Width of the icon in pixels
|
|
228
|
-
</td>
|
|
229
|
-
</tr>
|
|
230
|
-
<tr className="border-b border-white/5">
|
|
231
|
-
<td className="px-6 py-4 font-mono text-sm !text-purple-300">
|
|
232
|
-
height
|
|
233
|
-
</td>
|
|
234
|
-
<td className="px-6 py-4 text-sm !text-white/70">
|
|
235
|
-
number | string
|
|
236
|
-
</td>
|
|
237
|
-
<td className="px-6 py-4 text-sm !text-white/50">17</td>
|
|
238
|
-
<td className="px-6 py-4 text-sm !text-white/70">
|
|
239
|
-
Height of the icon in pixels
|
|
240
|
-
</td>
|
|
241
|
-
</tr>
|
|
242
|
-
<tr className="border-b border-white/5 !bg-black/10">
|
|
243
|
-
<td className="px-6 py-4 font-mono text-sm !text-purple-300">
|
|
244
|
-
className
|
|
245
|
-
</td>
|
|
246
|
-
<td className="px-6 py-4 text-sm !text-white/70">
|
|
247
|
-
string
|
|
248
|
-
</td>
|
|
249
|
-
<td className="px-6 py-4 text-sm !text-white/50">-</td>
|
|
250
|
-
<td className="px-6 py-4 text-sm !text-white/70">
|
|
251
|
-
CSS classes for styling (use for overrides)
|
|
252
|
-
</td>
|
|
253
|
-
</tr>
|
|
254
|
-
<tr className="!bg-black/10">
|
|
255
|
-
<td className="px-6 py-4 font-mono text-sm !text-purple-300">
|
|
256
|
-
...svgProps
|
|
257
|
-
</td>
|
|
258
|
-
<td className="px-6 py-4 text-sm !text-white/70">
|
|
259
|
-
SVGProps
|
|
260
|
-
</td>
|
|
261
|
-
<td className="px-6 py-4 text-sm !text-white/50">-</td>
|
|
262
|
-
<td className="px-6 py-4 text-sm !text-white/70">
|
|
263
|
-
All standard SVG element props
|
|
264
|
-
</td>
|
|
265
|
-
</tr>
|
|
266
|
-
</tbody>
|
|
267
|
-
</table>
|
|
268
|
-
</div>
|
|
269
|
-
</div>
|
|
270
|
-
</div>
|
|
271
|
-
</div>
|
|
272
|
-
</>
|
|
52
|
+
}`,
|
|
53
|
+
livePreview: (
|
|
54
|
+
<button className="flex items-center gap-2">
|
|
55
|
+
<GlobeIcon className="text-fm-icon-active h-6 w-6" />
|
|
56
|
+
</button>
|
|
57
|
+
),
|
|
58
|
+
}}
|
|
59
|
+
relatedIcons={[
|
|
60
|
+
{
|
|
61
|
+
name: "IndianFlagIcon",
|
|
62
|
+
description: "Indian flag identity icon",
|
|
63
|
+
icon: IndianFlagIcon,
|
|
64
|
+
accentToken: "info",
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
name: "SearchIcon",
|
|
68
|
+
description: "Search / find icon",
|
|
69
|
+
icon: SearchIcon,
|
|
70
|
+
accentToken: "positive",
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
name: "ShareIcon",
|
|
74
|
+
description: "Share content icon",
|
|
75
|
+
icon: ShareIcon,
|
|
76
|
+
accentToken: "warning",
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
name: "SettingIcon",
|
|
80
|
+
description: "Settings / preferences icon",
|
|
81
|
+
icon: SettingIcon,
|
|
82
|
+
accentToken: "negative",
|
|
83
|
+
},
|
|
84
|
+
]}
|
|
85
|
+
/>
|
|
273
86
|
),
|
|
274
87
|
},
|
|
275
88
|
},
|
|
276
89
|
tags: ["autodocs"],
|
|
90
|
+
argTypes: {
|
|
91
|
+
className: {
|
|
92
|
+
control: "text",
|
|
93
|
+
description: "CSS classes including color token",
|
|
94
|
+
},
|
|
95
|
+
withAccessibility: {
|
|
96
|
+
control: "boolean",
|
|
97
|
+
description: "Wrap with accessibility label",
|
|
98
|
+
},
|
|
99
|
+
},
|
|
277
100
|
}
|
|
278
101
|
|
|
279
102
|
export default meta
|
|
280
103
|
type Story = StoryObj<typeof GlobeIcon>
|
|
281
104
|
|
|
282
|
-
const storyParameters = {
|
|
283
|
-
backgrounds: { default: "dark" },
|
|
284
|
-
}
|
|
285
|
-
|
|
286
105
|
export const Default: Story = {
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
}
|
|
296
|
-
|
|
297
|
-
export const WithAccessibility: Story = {
|
|
298
|
-
parameters: storyParameters,
|
|
299
|
-
render: () => (
|
|
300
|
-
<div className="flex h-64 min-h-dvh items-center justify-center rounded-lg bg-gradient-to-br from-gray-900 to-gray-800">
|
|
301
|
-
<div className="rounded-lg border border-white/10 bg-white/5 p-8">
|
|
302
|
-
<GlobeIcon className="h-12 w-12 text-white" withAccessibility />
|
|
303
|
-
</div>
|
|
304
|
-
</div>
|
|
106
|
+
args: {
|
|
107
|
+
className: "h-6 w-6 text-fm-icon-active",
|
|
108
|
+
withAccessibility: true,
|
|
109
|
+
},
|
|
110
|
+
render: (args) => (
|
|
111
|
+
<IconDefaultCanvas>
|
|
112
|
+
<GlobeIcon {...args} />
|
|
113
|
+
</IconDefaultCanvas>
|
|
305
114
|
),
|
|
306
115
|
}
|
|
307
116
|
|
|
308
117
|
export const SizeVariations: Story = {
|
|
309
|
-
|
|
310
|
-
render: () => (
|
|
311
|
-
<div className="flex h-64 min-h-dvh items-center justify-center rounded-lg bg-gradient-to-br from-gray-900 to-gray-800">
|
|
312
|
-
<div className="flex items-center gap-8 rounded-lg border border-white/10 bg-white/5 p-8">
|
|
313
|
-
<GlobeIcon className="h-4 w-4 text-white" />
|
|
314
|
-
<GlobeIcon className="h-6 w-6 text-white" />
|
|
315
|
-
<GlobeIcon className="h-8 w-8 text-white" />
|
|
316
|
-
<GlobeIcon className="h-12 w-12 text-white" />
|
|
317
|
-
<GlobeIcon className="h-16 w-16 text-white" />
|
|
318
|
-
</div>
|
|
319
|
-
</div>
|
|
320
|
-
),
|
|
118
|
+
render: () => <IconSizeVariations icon={GlobeIcon} />,
|
|
321
119
|
}
|
|
322
120
|
|
|
323
121
|
export const ColorVariations: Story = {
|
|
324
|
-
|
|
122
|
+
render: () => <IconColorVariations icon={GlobeIcon} />,
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
export const UsageExamples: Story = {
|
|
325
126
|
render: () => (
|
|
326
|
-
<
|
|
327
|
-
<
|
|
328
|
-
<
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
127
|
+
<IconUsageCanvas>
|
|
128
|
+
<IconUsageSection title="Language Picker">
|
|
129
|
+
<button className="border-fm-divider-secondary bg-fm-surface-secondary flex items-center gap-2 rounded-xl border px-4 py-2">
|
|
130
|
+
<GlobeIcon className="text-fm-icon-active h-4 w-4" />
|
|
131
|
+
<span className="text-fm-primary font-fm-text text-sm">English</span>
|
|
132
|
+
</button>
|
|
133
|
+
</IconUsageSection>
|
|
134
|
+
|
|
135
|
+
<IconUsageSection title="Region Selector">
|
|
136
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary w-full max-w-sm overflow-hidden rounded-xl border">
|
|
137
|
+
{[
|
|
138
|
+
{ label: "Global", icon: GlobeIcon },
|
|
139
|
+
{ label: "India", icon: IndianFlagIcon },
|
|
140
|
+
].map(({ label, icon: Icon }) => (
|
|
141
|
+
<button
|
|
142
|
+
key={label}
|
|
143
|
+
className="border-fm-divider-secondary flex w-full items-center gap-3 border-b px-4 py-3 last:border-b-0"
|
|
144
|
+
>
|
|
145
|
+
<Icon className="text-fm-icon-active h-4 w-4" />
|
|
146
|
+
<span className="text-fm-primary font-fm-text text-sm">
|
|
147
|
+
{label}
|
|
148
|
+
</span>
|
|
149
|
+
</button>
|
|
150
|
+
))}
|
|
151
|
+
</div>
|
|
152
|
+
</IconUsageSection>
|
|
153
|
+
|
|
154
|
+
<IconUsageSection title="Open Web Link">
|
|
155
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary flex w-full max-w-sm items-center gap-2 rounded-xl border px-4 py-3">
|
|
156
|
+
<GlobeIcon className="text-fm-icon-inactive h-4 w-4" />
|
|
157
|
+
<span className="text-fm-secondary font-fm-text flex-1 truncate text-sm">
|
|
158
|
+
pocketfm.com
|
|
159
|
+
</span>
|
|
160
|
+
<ShareIcon className="text-fm-icon-active h-4 w-4" />
|
|
161
|
+
</div>
|
|
162
|
+
</IconUsageSection>
|
|
163
|
+
</IconUsageCanvas>
|
|
335
164
|
),
|
|
336
165
|
}
|
|
337
166
|
|
|
338
167
|
export const Playground: Story = {
|
|
339
|
-
parameters: {
|
|
340
|
-
...storyParameters,
|
|
341
|
-
docs: {
|
|
342
|
-
description: {
|
|
343
|
-
story:
|
|
344
|
-
"Interactive playground to experiment with different GlobeIcon configurations.",
|
|
345
|
-
},
|
|
346
|
-
},
|
|
347
|
-
},
|
|
348
168
|
args: {
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
className: "text-purple-400",
|
|
169
|
+
className: "h-8 w-8 text-fm-icon-active",
|
|
170
|
+
withAccessibility: true,
|
|
352
171
|
},
|
|
353
172
|
render: (args) => (
|
|
354
|
-
<
|
|
355
|
-
<
|
|
356
|
-
|
|
357
|
-
</div>
|
|
358
|
-
</div>
|
|
173
|
+
<IconPlaygroundCanvas>
|
|
174
|
+
<GlobeIcon {...args} />
|
|
175
|
+
</IconPlaygroundCanvas>
|
|
359
176
|
),
|
|
360
177
|
}
|