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 { BubbleSparkleIcon } from "src/ui/icons/bubble-sparkle-icon"
|
|
5
|
+
import { FeatureShineIcon } from "src/ui/icons/feature-shine-icon"
|
|
6
|
+
import { LightBulbSimpleIcon } from "src/ui/icons/light-bulb-simple-icon"
|
|
7
|
+
import { MagicBookIcon } from "src/ui/icons/magic-book-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 { SparklesSoftIcon } from "."
|
|
5
19
|
|
|
6
20
|
const meta: Meta<typeof SparklesSoftIcon> = {
|
|
@@ -11,814 +25,76 @@ const meta: Meta<typeof SparklesSoftIcon> = {
|
|
|
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-yellow-500/10 via-transparent to-purple-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-yellow-500/30 bg-gradient-to-br from-yellow-500/20 to-purple-500/20">
|
|
90
|
-
<SparklesSoftIcon className="h-12 w-12 text-yellow-400" />
|
|
91
|
-
</div>
|
|
92
|
-
<h1 className="!text-fm-primary text-5xl font-bold">
|
|
93
|
-
SparklesSoftIcon
|
|
94
|
-
</h1>
|
|
95
|
-
<p className="!mx-auto max-w-3xl text-xl leading-relaxed !text-white/70">
|
|
96
|
-
A magical sparkles icon perfect for AI features, premium
|
|
97
|
-
content, special effects, and celebratory moments. Built
|
|
98
|
-
with accessibility in mind using Radix UI's AccessibleIcon
|
|
99
|
-
wrapper.
|
|
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-3xl font-bold text-yellow-300">
|
|
106
|
-
Accessible
|
|
107
|
-
</div>
|
|
108
|
-
<div className="text-sm text-white/60">
|
|
109
|
-
Screen reader friendly
|
|
110
|
-
</div>
|
|
111
|
-
</div>
|
|
112
|
-
<div className="h-8 w-px bg-white/20" />
|
|
113
|
-
<div className="text-center">
|
|
114
|
-
<div className="text-3xl font-bold text-purple-300">
|
|
115
|
-
Scalable
|
|
116
|
-
</div>
|
|
117
|
-
<div className="text-sm text-white/60">
|
|
118
|
-
Any size needed
|
|
119
|
-
</div>
|
|
120
|
-
</div>
|
|
121
|
-
<div className="h-8 w-px bg-white/20" />
|
|
122
|
-
<div className="text-center">
|
|
123
|
-
<div className="text-3xl font-bold text-pink-300">
|
|
124
|
-
Magical
|
|
125
|
-
</div>
|
|
126
|
-
<div className="text-sm text-white/60">Premium feel</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-yellow-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 { SparklesSoftIcon } from "@icons/sparkles-soft-icon"
|
|
148
|
-
|
|
149
|
-
function MyComponent() {
|
|
35
|
+
<AuralIconDocsPage
|
|
36
|
+
accentToken="positive"
|
|
37
|
+
features={[
|
|
38
|
+
{ title: "AI Glow", description: "Soft AI feature indicator" },
|
|
39
|
+
{ title: "Magic", description: "Premium or magical feature" },
|
|
40
|
+
{ title: "Accessible", description: "ARIA-ready by default" },
|
|
41
|
+
]}
|
|
42
|
+
quickStart={{
|
|
43
|
+
codeExample: `import { SparklesSoftIcon } from "src/ui/icons/sparkles-soft-icon"
|
|
44
|
+
|
|
45
|
+
function AIFeatureBadge() {
|
|
150
46
|
return (
|
|
151
47
|
<div className="flex items-center gap-2">
|
|
152
|
-
<SparklesSoftIcon className="h-
|
|
153
|
-
<span>AI
|
|
48
|
+
<SparklesSoftIcon className="h-4 w-4 text-fm-icon-positive" />
|
|
49
|
+
<span>AI powered</span>
|
|
154
50
|
</div>
|
|
155
51
|
)
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
<div className="!space-y-4">
|
|
162
|
-
<h3 className="text-xl font-semibold !text-yellow-300">
|
|
163
|
-
Live Preview
|
|
164
|
-
</h3>
|
|
165
|
-
<div className="flex h-32 items-center justify-center rounded-lg border border-white/10 bg-white/5">
|
|
166
|
-
<div className="flex items-center gap-3 rounded-lg border border-yellow-500/20 bg-yellow-500/10 px-4 py-2">
|
|
167
|
-
<SparklesSoftIcon className="h-5 w-5 text-yellow-400" />
|
|
168
|
-
<span className="text-white">AI Enhanced</span>
|
|
169
|
-
</div>
|
|
170
|
-
</div>
|
|
171
|
-
</div>
|
|
172
|
-
</div>
|
|
173
|
-
</div>
|
|
174
|
-
|
|
175
|
-
{/* Props Documentation */}
|
|
176
|
-
<div className="!space-y-8">
|
|
177
|
-
<h2 className="text-center text-3xl font-bold !text-white">
|
|
178
|
-
Props & Configuration
|
|
179
|
-
</h2>
|
|
180
|
-
|
|
181
|
-
<div className="overflow-hidden rounded-lg border border-white/10 bg-white/5">
|
|
182
|
-
<div className="bg-white/5 p-4">
|
|
183
|
-
<h3 className="text-xl font-semibold !text-white">Props</h3>
|
|
184
|
-
</div>
|
|
185
|
-
<table className="!my-0 w-full">
|
|
186
|
-
<thead className="bg-white/5">
|
|
187
|
-
<tr className="border-b border-white/10">
|
|
188
|
-
<th className="px-6 py-4 text-left text-sm font-semibold !text-white">
|
|
189
|
-
Prop
|
|
190
|
-
</th>
|
|
191
|
-
<th className="px-6 py-4 text-left text-sm font-semibold !text-white">
|
|
192
|
-
Type
|
|
193
|
-
</th>
|
|
194
|
-
<th className="px-6 py-4 text-left text-sm font-semibold !text-white">
|
|
195
|
-
Default
|
|
196
|
-
</th>
|
|
197
|
-
<th className="px-6 py-4 text-left text-sm font-semibold !text-white">
|
|
198
|
-
Description
|
|
199
|
-
</th>
|
|
200
|
-
</tr>
|
|
201
|
-
</thead>
|
|
202
|
-
<tbody>
|
|
203
|
-
{" "}
|
|
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-yellow-300">
|
|
220
|
-
height
|
|
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">20</td>
|
|
226
|
-
<td className="px-6 py-4 text-sm !text-white/70">
|
|
227
|
-
Height 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-yellow-300">
|
|
232
|
-
stroke
|
|
233
|
-
</td>
|
|
234
|
-
<td className="px-6 py-4 text-sm !text-white/70">
|
|
235
|
-
string
|
|
236
|
-
</td>
|
|
237
|
-
<td className="px-6 py-4 text-sm !text-white/50">
|
|
238
|
-
currentColor
|
|
239
|
-
</td>
|
|
240
|
-
<td className="px-6 py-4 text-sm !text-white/70">
|
|
241
|
-
Stroke color of the icon
|
|
242
|
-
</td>
|
|
243
|
-
</tr>
|
|
244
|
-
<tr className="border-b border-white/5 !bg-black/10">
|
|
245
|
-
<td className="px-6 py-4 font-mono text-sm !text-yellow-300">
|
|
246
|
-
strokeWidth
|
|
247
|
-
</td>
|
|
248
|
-
<td className="px-6 py-4 text-sm !text-white/70">
|
|
249
|
-
number | string
|
|
250
|
-
</td>
|
|
251
|
-
<td className="px-6 py-4 text-sm !text-white/50">
|
|
252
|
-
1.5
|
|
253
|
-
</td>
|
|
254
|
-
<td className="px-6 py-4 text-sm !text-white/70">
|
|
255
|
-
Stroke width of the icon
|
|
256
|
-
</td>
|
|
257
|
-
</tr>
|
|
258
|
-
<tr className="border-b border-white/5">
|
|
259
|
-
<td className="px-6 py-4 font-mono text-sm !text-yellow-300">
|
|
260
|
-
fill
|
|
261
|
-
</td>
|
|
262
|
-
<td className="px-6 py-4 text-sm !text-white/70">
|
|
263
|
-
string
|
|
264
|
-
</td>
|
|
265
|
-
<td className="px-6 py-4 text-sm !text-white/50">
|
|
266
|
-
currentColor
|
|
267
|
-
</td>
|
|
268
|
-
<td className="px-6 py-4 text-sm !text-white/70">
|
|
269
|
-
Fill color for small sparkle
|
|
270
|
-
</td>
|
|
271
|
-
</tr>
|
|
272
|
-
<tr className="border-b border-white/5 !bg-black/10">
|
|
273
|
-
<td className="px-6 py-4 font-mono text-sm !text-yellow-300">
|
|
274
|
-
className
|
|
275
|
-
</td>
|
|
276
|
-
<td className="px-6 py-4 text-sm !text-white/70">
|
|
277
|
-
string
|
|
278
|
-
</td>
|
|
279
|
-
<td className="px-6 py-4 text-sm !text-white/50">-</td>
|
|
280
|
-
<td className="px-6 py-4 text-sm !text-white/70">
|
|
281
|
-
CSS classes for styling
|
|
282
|
-
</td>
|
|
283
|
-
</tr>
|
|
284
|
-
<tr className="!bg-black/10">
|
|
285
|
-
<td className="px-6 py-4 font-mono text-sm !text-yellow-300">
|
|
286
|
-
...svgProps
|
|
287
|
-
</td>
|
|
288
|
-
<td className="px-6 py-4 text-sm !text-white/70">
|
|
289
|
-
SVGProps
|
|
290
|
-
</td>
|
|
291
|
-
<td className="px-6 py-4 text-sm !text-white/50">-</td>
|
|
292
|
-
<td className="px-6 py-4 text-sm !text-white/70">
|
|
293
|
-
All standard SVG element props
|
|
294
|
-
</td>
|
|
295
|
-
</tr>
|
|
296
|
-
</tbody>
|
|
297
|
-
</table>
|
|
298
|
-
</div>
|
|
299
|
-
</div>
|
|
300
|
-
|
|
301
|
-
{/* Size Variations */}
|
|
302
|
-
<div className="!space-y-8">
|
|
303
|
-
<h2 className="text-center text-3xl font-bold !text-white">
|
|
304
|
-
Size Variations
|
|
305
|
-
</h2>
|
|
306
|
-
<div className="rounded-lg border border-white/10 bg-white/5 p-8">
|
|
307
|
-
<div className="!space-y-6">
|
|
308
|
-
<div className="grid grid-cols-1 gap-8 md:grid-cols-2">
|
|
309
|
-
<div className="!space-y-4">
|
|
310
|
-
<h3 className="text-lg font-semibold !text-yellow-300">
|
|
311
|
-
Standard Sizes
|
|
312
|
-
</h3>
|
|
313
|
-
<div className="flex items-end gap-6 rounded-lg bg-black/20 p-6">
|
|
314
|
-
<div className="text-center">
|
|
315
|
-
<SparklesSoftIcon className="!mx-auto mb-2 h-3 w-3 text-yellow-400" />
|
|
316
|
-
<span className="text-xs text-white/60">12px</span>
|
|
317
|
-
</div>
|
|
318
|
-
<div className="text-center">
|
|
319
|
-
<SparklesSoftIcon className="!mx-auto mb-2 h-4 w-4 text-yellow-400" />
|
|
320
|
-
<span className="text-xs text-white/60">16px</span>
|
|
321
|
-
</div>
|
|
322
|
-
<div className="text-center">
|
|
323
|
-
<SparklesSoftIcon className="!mx-auto mb-2 h-5 w-5 text-yellow-400" />
|
|
324
|
-
<span className="text-xs text-white/60">20px</span>
|
|
325
|
-
</div>
|
|
326
|
-
<div className="text-center">
|
|
327
|
-
<SparklesSoftIcon className="!mx-auto mb-2 h-6 w-6 text-yellow-400" />
|
|
328
|
-
<span className="text-xs text-white/60">24px</span>
|
|
329
|
-
</div>
|
|
330
|
-
<div className="text-center">
|
|
331
|
-
<SparklesSoftIcon className="!mx-auto mb-2 h-8 w-8 text-yellow-400" />
|
|
332
|
-
<span className="text-xs text-white/60">32px</span>
|
|
333
|
-
</div>
|
|
334
|
-
<div className="text-center">
|
|
335
|
-
<SparklesSoftIcon className="!mx-auto mb-2 h-12 w-12 text-yellow-400" />
|
|
336
|
-
<span className="text-xs text-white/60">48px</span>
|
|
337
|
-
</div>
|
|
338
|
-
</div>
|
|
339
|
-
</div>
|
|
340
|
-
|
|
341
|
-
<div className="!space-y-4">
|
|
342
|
-
<h3 className="text-lg font-semibold !text-yellow-300">
|
|
343
|
-
Code Example
|
|
344
|
-
</h3>
|
|
345
|
-
<div className="rounded-lg bg-black/40 p-4">
|
|
346
|
-
<pre className="overflow-x-auto text-sm !text-blue-300">
|
|
347
|
-
{`// Small (16px)
|
|
348
|
-
<SparklesSoftIcon className="h-4 w-4" />
|
|
349
|
-
|
|
350
|
-
// Medium (24px)
|
|
351
|
-
<SparklesSoftIcon className="h-6 w-6" />
|
|
352
|
-
|
|
353
|
-
// Large (32px)
|
|
354
|
-
<SparklesSoftIcon className="h-8 w-8" />
|
|
355
|
-
|
|
356
|
-
// Custom size
|
|
357
|
-
<SparklesSoftIcon width={40} height={40} />`}
|
|
358
|
-
</pre>
|
|
359
|
-
</div>
|
|
360
|
-
</div>
|
|
361
|
-
</div>
|
|
362
|
-
</div>
|
|
363
|
-
</div>
|
|
364
|
-
</div>
|
|
365
|
-
|
|
366
|
-
{/* Color Variations */}
|
|
367
|
-
<div className="!space-y-8">
|
|
368
|
-
<h2 className="text-center text-3xl font-bold !text-white">
|
|
369
|
-
Color Variations
|
|
370
|
-
</h2>
|
|
371
|
-
<div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
|
|
372
|
-
<div className="!space-y-4">
|
|
373
|
-
<h3 className="text-lg font-semibold !text-yellow-300">
|
|
374
|
-
Premium & AI Colors
|
|
375
|
-
</h3>
|
|
376
|
-
<div className="!space-y-4 rounded-lg border border-white/10 bg-white/5 p-6">
|
|
377
|
-
<div className="flex items-center gap-4">
|
|
378
|
-
<SparklesSoftIcon className="h-6 w-6 text-yellow-400" />
|
|
379
|
-
<div>
|
|
380
|
-
<div className="text-sm font-medium text-white">
|
|
381
|
-
Premium Gold
|
|
382
|
-
</div>
|
|
383
|
-
<div className="text-xs text-white/60">
|
|
384
|
-
text-yellow-400
|
|
385
|
-
</div>
|
|
386
|
-
</div>
|
|
387
|
-
</div>
|
|
388
|
-
<div className="flex items-center gap-4">
|
|
389
|
-
<SparklesSoftIcon className="h-6 w-6 text-purple-400" />
|
|
390
|
-
<div>
|
|
391
|
-
<div className="text-sm font-medium text-white">
|
|
392
|
-
AI Magic
|
|
393
|
-
</div>
|
|
394
|
-
<div className="text-xs text-white/60">
|
|
395
|
-
text-purple-400
|
|
396
|
-
</div>
|
|
397
|
-
</div>
|
|
398
|
-
</div>
|
|
399
|
-
<div className="flex items-center gap-4">
|
|
400
|
-
<SparklesSoftIcon className="h-6 w-6 text-pink-400" />
|
|
401
|
-
<div>
|
|
402
|
-
<div className="text-sm font-medium text-white">
|
|
403
|
-
Celebration
|
|
404
|
-
</div>
|
|
405
|
-
<div className="text-xs text-white/60">
|
|
406
|
-
text-pink-400
|
|
407
|
-
</div>
|
|
408
|
-
</div>
|
|
409
|
-
</div>
|
|
410
|
-
<div className="flex items-center gap-4">
|
|
411
|
-
<SparklesSoftIcon className="h-6 w-6 text-blue-400" />
|
|
412
|
-
<div>
|
|
413
|
-
<div className="text-sm font-medium text-white">
|
|
414
|
-
Special
|
|
415
|
-
</div>
|
|
416
|
-
<div className="text-xs text-white/60">
|
|
417
|
-
text-blue-400
|
|
418
|
-
</div>
|
|
419
|
-
</div>
|
|
420
|
-
</div>
|
|
421
|
-
</div>
|
|
422
|
-
</div>
|
|
423
|
-
|
|
424
|
-
<div className="!space-y-4">
|
|
425
|
-
<h3 className="text-lg font-semibold !text-yellow-300">
|
|
426
|
-
Custom Colors
|
|
427
|
-
</h3>
|
|
428
|
-
<div className="rounded-lg bg-black/40 p-4">
|
|
429
|
-
<pre className="overflow-x-auto text-sm !text-green-300">
|
|
430
|
-
{`// Using Tailwind classes
|
|
431
|
-
<SparklesSoftIcon className="h-6 w-6 text-yellow-400" />
|
|
432
|
-
<SparklesSoftIcon className="h-6 w-6 text-purple-500" />
|
|
433
|
-
|
|
434
|
-
// Using CSS custom properties
|
|
435
|
-
<SparklesSoftIcon
|
|
436
|
-
className="h-6 w-6"
|
|
437
|
-
style={{ color: 'var(--color-premium)' }}
|
|
438
|
-
/>
|
|
439
|
-
|
|
440
|
-
// Direct stroke and fill props
|
|
441
|
-
<SparklesSoftIcon
|
|
442
|
-
width={24}
|
|
443
|
-
height={24}
|
|
444
|
-
stroke="#fbbf24"
|
|
445
|
-
fill="#fbbf24"
|
|
446
|
-
/>`}
|
|
447
|
-
</pre>
|
|
448
|
-
</div>
|
|
449
|
-
</div>
|
|
450
|
-
</div>
|
|
451
|
-
</div>
|
|
452
|
-
|
|
453
|
-
{/* Usage Examples */}
|
|
454
|
-
<div className="!space-y-8">
|
|
455
|
-
<h2 className="text-center text-3xl font-bold !text-white">
|
|
456
|
-
Usage Examples
|
|
457
|
-
</h2>
|
|
458
|
-
|
|
459
|
-
<div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
|
|
460
|
-
{/* AI Feature Badge */}
|
|
461
|
-
<div className="!space-y-4">
|
|
462
|
-
<h3 className="text-lg font-semibold !text-yellow-300">
|
|
463
|
-
AI Feature Badge
|
|
464
|
-
</h3>
|
|
465
|
-
<div className="!space-y-4">
|
|
466
|
-
<div className="rounded-lg border border-purple-500/20 bg-purple-500/10 p-4">
|
|
467
|
-
<div className="flex items-center gap-3">
|
|
468
|
-
<div className="flex h-8 w-8 items-center justify-center rounded-full bg-purple-500/20">
|
|
469
|
-
<SparklesSoftIcon className="h-4 w-4 text-purple-400" />
|
|
470
|
-
</div>
|
|
471
|
-
<div>
|
|
472
|
-
<h4 className="font-medium !text-purple-200">
|
|
473
|
-
AI Enhanced
|
|
474
|
-
</h4>
|
|
475
|
-
<p className="text-sm !text-purple-300/80">
|
|
476
|
-
This feature is powered by artificial intelligence
|
|
477
|
-
</p>
|
|
478
|
-
</div>
|
|
479
|
-
</div>
|
|
480
|
-
</div>
|
|
481
|
-
<div className="rounded-lg bg-black/40 p-4">
|
|
482
|
-
<pre className="overflow-x-auto text-sm !text-green-300">
|
|
483
|
-
{`<div className="border border-purple-500/20 bg-purple-500/10 p-4 rounded-lg">
|
|
484
|
-
<div className="flex items-center gap-3">
|
|
485
|
-
<div className="h-8 w-8 bg-purple-500/20 rounded-full flex items-center justify-center">
|
|
486
|
-
<SparklesSoftIcon className="h-4 w-4 text-purple-400" />
|
|
487
|
-
</div>
|
|
488
|
-
<div>
|
|
489
|
-
<h4 className="font-medium text-purple-200">AI Enhanced</h4>
|
|
490
|
-
<p className="text-sm text-purple-300/80">
|
|
491
|
-
This feature is powered by artificial intelligence
|
|
492
|
-
</p>
|
|
493
|
-
</div>
|
|
494
|
-
</div>
|
|
495
|
-
</div>`}
|
|
496
|
-
</pre>
|
|
497
|
-
</div>
|
|
498
|
-
</div>
|
|
499
|
-
</div>
|
|
500
|
-
|
|
501
|
-
{/* Premium Feature */}
|
|
502
|
-
<div className="!space-y-4">
|
|
503
|
-
<h3 className="text-lg font-semibold !text-yellow-300">
|
|
504
|
-
Premium Feature
|
|
505
|
-
</h3>
|
|
506
|
-
<div className="!space-y-4">
|
|
507
|
-
<div className="rounded-lg border border-yellow-500/20 bg-gradient-to-r from-yellow-500/10 to-orange-500/10 p-4">
|
|
508
|
-
<div className="flex items-center justify-between">
|
|
509
|
-
<div className="flex items-center gap-2">
|
|
510
|
-
<SparklesSoftIcon className="h-5 w-5 text-yellow-400" />
|
|
511
|
-
<span className="font-medium text-white">
|
|
512
|
-
Pro Feature
|
|
513
|
-
</span>
|
|
514
|
-
</div>
|
|
515
|
-
<button className="rounded-full bg-gradient-to-r from-yellow-400 to-orange-400 px-3 py-1 text-sm font-medium text-black">
|
|
516
|
-
Upgrade
|
|
517
|
-
</button>
|
|
518
|
-
</div>
|
|
519
|
-
</div>
|
|
520
|
-
<div className="rounded-lg bg-black/40 p-4">
|
|
521
|
-
<pre className="overflow-x-auto text-sm !text-green-300">
|
|
522
|
-
{`<div className="border border-yellow-500/20 bg-gradient-to-r from-yellow-500/10 to-orange-500/10 p-4 rounded-lg">
|
|
523
|
-
<div className="flex items-center justify-between">
|
|
524
|
-
<div className="flex items-center gap-2">
|
|
525
|
-
<SparklesSoftIcon className="h-5 w-5 text-yellow-400" />
|
|
526
|
-
<span className="font-medium text-white">Pro Feature</span>
|
|
527
|
-
</div>
|
|
528
|
-
<button className="bg-gradient-to-r from-yellow-400 to-orange-400 px-3 py-1 rounded-full text-sm font-medium text-black">
|
|
529
|
-
Upgrade
|
|
530
|
-
</button>
|
|
531
|
-
</div>
|
|
532
|
-
</div>`}
|
|
533
|
-
</pre>
|
|
534
|
-
</div>
|
|
535
|
-
</div>
|
|
536
|
-
</div>
|
|
537
|
-
|
|
538
|
-
{/* Button Integration */}
|
|
539
|
-
<div className="!space-y-4">
|
|
540
|
-
<h3 className="text-lg font-semibold !text-yellow-300">
|
|
541
|
-
Button Integration
|
|
542
|
-
</h3>
|
|
543
|
-
<div className="!space-y-4">
|
|
544
|
-
<div className="flex gap-4">
|
|
545
|
-
<button className="flex items-center gap-2 rounded-lg border border-purple-500/30 bg-purple-500/20 px-4 py-2 text-purple-200 transition-colors hover:bg-purple-500/30">
|
|
546
|
-
<SparklesSoftIcon className="h-4 w-4" />
|
|
547
|
-
Generate with AI
|
|
548
|
-
</button>
|
|
549
|
-
<button className="flex items-center gap-2 rounded-lg bg-gradient-to-r from-yellow-400 to-orange-400 px-4 py-2 text-black transition-all hover:from-yellow-500 hover:to-orange-500">
|
|
550
|
-
<SparklesSoftIcon className="h-4 w-4" />
|
|
551
|
-
Upgrade to Pro
|
|
552
|
-
</button>
|
|
553
|
-
</div>
|
|
554
|
-
<div className="rounded-lg bg-black/40 p-4">
|
|
555
|
-
<pre className="overflow-x-auto text-sm !text-green-300">
|
|
556
|
-
{`// AI action button
|
|
557
|
-
<button className="flex items-center gap-2 bg-purple-500/20 border border-purple-500/30 px-4 py-2 rounded-lg">
|
|
558
|
-
<SparklesSoftIcon className="h-4 w-4" />
|
|
559
|
-
Generate with AI
|
|
560
|
-
</button>
|
|
561
|
-
|
|
562
|
-
// Premium upgrade button
|
|
563
|
-
<button className="flex items-center gap-2 bg-gradient-to-r from-yellow-400 to-orange-400 px-4 py-2 rounded-lg text-black">
|
|
564
|
-
<SparklesSoftIcon className="h-4 w-4" />
|
|
565
|
-
Upgrade to Pro
|
|
566
|
-
</button>`}
|
|
567
|
-
</pre>
|
|
568
|
-
</div>
|
|
569
|
-
</div>
|
|
570
|
-
</div>
|
|
571
|
-
|
|
572
|
-
{/* Success State */}
|
|
573
|
-
<div className="!space-y-4">
|
|
574
|
-
<h3 className="text-lg font-semibold !text-yellow-300">
|
|
575
|
-
Success Celebration
|
|
576
|
-
</h3>
|
|
577
|
-
<div className="!space-y-4">
|
|
578
|
-
<div className="rounded-lg border border-green-500/20 bg-green-500/10 p-4">
|
|
579
|
-
<div className="flex items-center gap-3">
|
|
580
|
-
<div className="relative">
|
|
581
|
-
<SparklesSoftIcon className="h-6 w-6 text-yellow-400" />
|
|
582
|
-
<SparklesSoftIcon className="absolute -top-1 -right-1 h-3 w-3 text-pink-400" />
|
|
583
|
-
</div>
|
|
584
|
-
<div>
|
|
585
|
-
<h4 className="font-medium !text-green-200">
|
|
586
|
-
Congratulations!
|
|
587
|
-
</h4>
|
|
588
|
-
<p className="text-sm !text-green-300/80">
|
|
589
|
-
Your project has been successfully deployed
|
|
590
|
-
</p>
|
|
591
|
-
</div>
|
|
592
|
-
</div>
|
|
593
|
-
</div>
|
|
594
|
-
<div className="rounded-lg bg-black/40 p-4">
|
|
595
|
-
<pre className="overflow-x-auto text-sm !text-green-300">
|
|
596
|
-
{`<div className="border border-green-500/20 bg-green-500/10 p-4 rounded-lg">
|
|
597
|
-
<div className="flex items-center gap-3">
|
|
598
|
-
<div className="relative">
|
|
599
|
-
<SparklesSoftIcon className="h-6 w-6 text-yellow-400" />
|
|
600
|
-
<SparklesSoftIcon className="absolute -top-1 -right-1 h-3 w-3 text-pink-400" />
|
|
601
|
-
</div>
|
|
602
|
-
<div>
|
|
603
|
-
<h4 className="font-medium text-green-200">Congratulations!</h4>
|
|
604
|
-
<p className="text-sm text-green-300/80">
|
|
605
|
-
Your project has been successfully deployed
|
|
606
|
-
</p>
|
|
607
|
-
</div>
|
|
608
|
-
</div>
|
|
609
|
-
</div>`}
|
|
610
|
-
</pre>
|
|
611
|
-
</div>
|
|
612
|
-
</div>
|
|
613
|
-
</div>
|
|
614
|
-
</div>
|
|
615
|
-
</div>
|
|
616
|
-
|
|
617
|
-
{/* Accessibility */}
|
|
618
|
-
<div className="!space-y-8">
|
|
619
|
-
<h2 className="text-center text-3xl font-bold !text-white">
|
|
620
|
-
Accessibility Features
|
|
621
|
-
</h2>
|
|
622
|
-
<div className="grid grid-cols-1 gap-8 md:grid-cols-2">
|
|
623
|
-
<div className="!space-y-4 rounded-lg border border-white/10 bg-white/5 p-6">
|
|
624
|
-
<h3 className="text-lg font-semibold !text-green-300">
|
|
625
|
-
✅ Built-in Features
|
|
626
|
-
</h3>
|
|
627
|
-
<ul className="!space-y-2 text-sm !text-white/70">
|
|
628
|
-
<li className="!text-white/70">
|
|
629
|
-
Uses Radix UI AccessibleIcon wrapper
|
|
630
|
-
</li>
|
|
631
|
-
<li className="!text-white/70">
|
|
632
|
-
Provides screen reader label "Sparkles Soft Icon"
|
|
633
|
-
</li>
|
|
634
|
-
<li className="!text-white/70">
|
|
635
|
-
Supports keyboard navigation when interactive
|
|
636
|
-
</li>
|
|
637
|
-
<li className="!text-white/70">
|
|
638
|
-
Maintains proper color contrast ratios
|
|
639
|
-
</li>
|
|
640
|
-
<li className="!text-white/70">
|
|
641
|
-
Scales with user's font size preferences
|
|
642
|
-
</li>
|
|
643
|
-
</ul>
|
|
644
|
-
</div>
|
|
645
|
-
|
|
646
|
-
<div className="!space-y-4 rounded-lg border border-white/10 bg-white/5 p-6">
|
|
647
|
-
<h3 className="text-lg font-semibold !text-yellow-300">
|
|
648
|
-
💡 Best Practices
|
|
649
|
-
</h3>
|
|
650
|
-
<ul className="!space-y-2 text-sm text-white/70">
|
|
651
|
-
<li className="!text-white/70">
|
|
652
|
-
Always pair with descriptive text or labels
|
|
653
|
-
</li>
|
|
654
|
-
<li className="!text-white/70">
|
|
655
|
-
Use consistent colors for premium features
|
|
656
|
-
</li>
|
|
657
|
-
<li className="!text-white/70">
|
|
658
|
-
Ensure sufficient color contrast
|
|
659
|
-
</li>
|
|
660
|
-
<li className="!text-white/70">
|
|
661
|
-
Add focus states for interactive elements
|
|
662
|
-
</li>
|
|
663
|
-
<li className="!text-white/70">
|
|
664
|
-
Consider motion sensitivity for animations
|
|
665
|
-
</li>
|
|
666
|
-
</ul>
|
|
667
|
-
</div>
|
|
668
|
-
</div>
|
|
669
|
-
|
|
670
|
-
<div className="rounded-lg border border-white/10 bg-white/5 p-6">
|
|
671
|
-
<h3 className="mb-4 text-lg font-semibold !text-purple-300">
|
|
672
|
-
Custom Accessibility Label
|
|
673
|
-
</h3>
|
|
674
|
-
<div className="grid grid-cols-1 gap-6 lg:grid-cols-2">
|
|
675
|
-
<div className="rounded-lg bg-black/40 p-4">
|
|
676
|
-
<pre className="overflow-x-auto text-sm !text-blue-300">
|
|
677
|
-
{`// Custom implementation with specific label
|
|
678
|
-
import { AccessibleIcon } from "@radix-ui/react-accessible-icon"
|
|
679
|
-
|
|
680
|
-
function CustomSparklesIcon({ label = "Sparkles", ...props }) {
|
|
681
|
-
return (
|
|
682
|
-
<AccessibleIcon label={label}>
|
|
683
|
-
<SparklesSoftIcon {...props} />
|
|
684
|
-
</AccessibleIcon>
|
|
685
|
-
)
|
|
686
|
-
}
|
|
687
|
-
|
|
688
|
-
// Usage with specific context
|
|
689
|
-
<CustomSparklesIcon
|
|
690
|
-
label="AI powered feature"
|
|
691
|
-
className="h-4 w-4 text-purple-400"
|
|
692
|
-
/>`}
|
|
693
|
-
</pre>
|
|
694
|
-
</div>
|
|
695
|
-
<div className="!space-y-4">
|
|
696
|
-
<p className="text-sm !text-white/70">
|
|
697
|
-
For specific contexts, you can wrap the SparklesSoftIcon
|
|
698
|
-
with a custom AccessibleIcon component that provides
|
|
699
|
-
more descriptive labels for AI features or premium
|
|
700
|
-
content.
|
|
701
|
-
</p>
|
|
702
|
-
<div className="rounded-lg border border-yellow-500/20 bg-yellow-500/10 p-4">
|
|
703
|
-
<div className="flex items-center gap-2 text-sm text-yellow-200">
|
|
704
|
-
<SparklesSoftIcon className="h-4 w-4" />
|
|
705
|
-
<span>
|
|
706
|
-
This approach gives screen readers more context
|
|
707
|
-
about premium features
|
|
708
|
-
</span>
|
|
709
|
-
</div>
|
|
710
|
-
</div>
|
|
711
|
-
</div>
|
|
712
|
-
</div>
|
|
713
|
-
</div>
|
|
714
|
-
</div>
|
|
715
|
-
|
|
716
|
-
{/* Related Icons */}
|
|
717
|
-
<div className="!space-y-8">
|
|
718
|
-
<h2 className="text-center text-3xl font-bold !text-white">
|
|
719
|
-
Related Icons
|
|
720
|
-
</h2>
|
|
721
|
-
<div className="grid grid-cols-2 gap-6 md:grid-cols-4">
|
|
722
|
-
<div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
|
|
723
|
-
<div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-purple-500/20">
|
|
724
|
-
<span className="text-2xl">🤖</span>
|
|
725
|
-
</div>
|
|
726
|
-
<div>
|
|
727
|
-
<div className="font-medium text-white">AIIcon</div>
|
|
728
|
-
<div className="text-xs text-white/60">AI features</div>
|
|
729
|
-
</div>
|
|
730
|
-
</div>
|
|
731
|
-
<div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
|
|
732
|
-
<div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-yellow-500/20">
|
|
733
|
-
<span className="text-2xl">⭐</span>
|
|
734
|
-
</div>
|
|
735
|
-
<div>
|
|
736
|
-
<div className="font-medium text-white">StarIcon</div>
|
|
737
|
-
<div className="text-xs text-white/60">
|
|
738
|
-
Premium content
|
|
739
|
-
</div>
|
|
740
|
-
</div>
|
|
741
|
-
</div>
|
|
742
|
-
<div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
|
|
743
|
-
<div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-pink-500/20">
|
|
744
|
-
<span className="text-2xl">🎉</span>
|
|
745
|
-
</div>
|
|
746
|
-
<div>
|
|
747
|
-
<div className="font-medium text-white">
|
|
748
|
-
CelebrationIcon
|
|
749
|
-
</div>
|
|
750
|
-
<div className="text-xs text-white/60">
|
|
751
|
-
Success states
|
|
752
|
-
</div>
|
|
753
|
-
</div>
|
|
754
|
-
</div>
|
|
755
|
-
<div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
|
|
756
|
-
<div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-blue-500/20">
|
|
757
|
-
<span className="text-2xl">💎</span>
|
|
758
|
-
</div>
|
|
759
|
-
<div>
|
|
760
|
-
<div className="font-medium text-white">PremiumIcon</div>
|
|
761
|
-
<div className="text-xs text-white/60">
|
|
762
|
-
Premium features
|
|
763
|
-
</div>
|
|
764
|
-
</div>
|
|
765
|
-
</div>
|
|
766
|
-
</div>
|
|
767
|
-
</div>
|
|
768
|
-
</div>
|
|
769
|
-
|
|
770
|
-
{/* Footer */}
|
|
771
|
-
<div className="border-t border-white/10 bg-black/20 backdrop-blur-xl">
|
|
772
|
-
<div className="!mx-auto max-w-7xl px-6 py-8">
|
|
773
|
-
<div className="!space-y-4 text-center">
|
|
774
|
-
<p className="!text-white/60">
|
|
775
|
-
SparklesSoftIcon is part of the Aural UI icon library,
|
|
776
|
-
designed specifically for AI features, premium content, and
|
|
777
|
-
magical user experiences with accessibility in mind.
|
|
778
|
-
</p>
|
|
779
|
-
<p className="text-sm !text-white/40">
|
|
780
|
-
Perfect for AI-powered features, premium upgrades,
|
|
781
|
-
celebration moments, and special effects. Follows WCAG
|
|
782
|
-
guidelines for accessibility and provides clear visual
|
|
783
|
-
hierarchy.
|
|
784
|
-
</p>
|
|
785
|
-
</div>
|
|
52
|
+
}`,
|
|
53
|
+
livePreview: (
|
|
54
|
+
<div className="flex items-center gap-2">
|
|
55
|
+
<SparklesSoftIcon className="text-fm-icon-positive h-5 w-5" />
|
|
786
56
|
</div>
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
|
|
57
|
+
),
|
|
58
|
+
}}
|
|
59
|
+
relatedIcons={[
|
|
60
|
+
{
|
|
61
|
+
name: "BubbleSparkleIcon",
|
|
62
|
+
description: "AI sparkle bubble icon",
|
|
63
|
+
icon: BubbleSparkleIcon,
|
|
64
|
+
accentToken: "info",
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
name: "FeatureShineIcon",
|
|
68
|
+
description: "Feature highlight / shine icon",
|
|
69
|
+
icon: FeatureShineIcon,
|
|
70
|
+
accentToken: "positive",
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
name: "LightBulbSimpleIcon",
|
|
74
|
+
description: "Insight / tip indicator icon",
|
|
75
|
+
icon: LightBulbSimpleIcon,
|
|
76
|
+
accentToken: "warning",
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
name: "MagicBookIcon",
|
|
80
|
+
description: "AI-assisted story creation",
|
|
81
|
+
icon: MagicBookIcon,
|
|
82
|
+
accentToken: "negative",
|
|
83
|
+
},
|
|
84
|
+
]}
|
|
85
|
+
/>
|
|
790
86
|
),
|
|
791
87
|
},
|
|
792
88
|
},
|
|
793
89
|
tags: ["autodocs"],
|
|
794
90
|
argTypes: {
|
|
795
|
-
|
|
796
|
-
control:
|
|
797
|
-
description: "
|
|
91
|
+
className: {
|
|
92
|
+
control: "text",
|
|
93
|
+
description: "CSS classes including color token",
|
|
798
94
|
},
|
|
799
95
|
withAccessibility: {
|
|
800
96
|
control: "boolean",
|
|
801
|
-
description: "
|
|
802
|
-
},
|
|
803
|
-
height: {
|
|
804
|
-
control: { type: "range", min: 8, max: 96, step: 2 },
|
|
805
|
-
description: "Height of the icon in pixels",
|
|
806
|
-
},
|
|
807
|
-
stroke: {
|
|
808
|
-
control: "color",
|
|
809
|
-
description: "Stroke color of the icon",
|
|
810
|
-
},
|
|
811
|
-
strokeWidth: {
|
|
812
|
-
control: { type: "range", min: 0.5, max: 4, step: 0.5 },
|
|
813
|
-
description: "Stroke width of the icon",
|
|
814
|
-
},
|
|
815
|
-
fill: {
|
|
816
|
-
control: "color",
|
|
817
|
-
description: "Fill color for small sparkle",
|
|
818
|
-
},
|
|
819
|
-
className: {
|
|
820
|
-
control: "text",
|
|
821
|
-
description: "CSS classes for styling",
|
|
97
|
+
description: "Wrap with accessibility label",
|
|
822
98
|
},
|
|
823
99
|
},
|
|
824
100
|
}
|
|
@@ -826,201 +102,72 @@ function CustomSparklesIcon({ label = "Sparkles", ...props }) {
|
|
|
826
102
|
export default meta
|
|
827
103
|
type Story = StoryObj<typeof SparklesSoftIcon>
|
|
828
104
|
|
|
829
|
-
// Story parameters for consistent dark theme
|
|
830
|
-
const storyParameters = {
|
|
831
|
-
backgrounds: {
|
|
832
|
-
default: "dark",
|
|
833
|
-
values: [
|
|
834
|
-
{ name: "dark", value: "#0a0a0a" },
|
|
835
|
-
{ name: "darker", value: "#000000" },
|
|
836
|
-
],
|
|
837
|
-
},
|
|
838
|
-
}
|
|
839
|
-
|
|
840
105
|
export const Default: Story = {
|
|
841
106
|
args: {
|
|
842
|
-
|
|
843
|
-
height: 24,
|
|
844
|
-
className: "text-yellow-400",
|
|
107
|
+
className: "h-6 w-6 text-fm-icon-positive",
|
|
845
108
|
withAccessibility: true,
|
|
846
109
|
},
|
|
847
|
-
parameters: storyParameters,
|
|
848
110
|
render: (args) => (
|
|
849
|
-
<
|
|
111
|
+
<IconDefaultCanvas>
|
|
850
112
|
<SparklesSoftIcon {...args} />
|
|
851
|
-
</
|
|
113
|
+
</IconDefaultCanvas>
|
|
852
114
|
),
|
|
853
115
|
}
|
|
854
116
|
|
|
855
117
|
export const SizeVariations: Story = {
|
|
856
|
-
|
|
857
|
-
...storyParameters,
|
|
858
|
-
docs: {
|
|
859
|
-
description: {
|
|
860
|
-
story:
|
|
861
|
-
"SparklesSoftIcon in different sizes, from small UI elements to large premium displays.",
|
|
862
|
-
},
|
|
863
|
-
},
|
|
864
|
-
},
|
|
865
|
-
render: () => (
|
|
866
|
-
<div className="flex h-64 min-h-dvh items-center justify-center gap-8 rounded-lg bg-gradient-to-br from-gray-900 to-gray-800 p-8">
|
|
867
|
-
<div className="text-center">
|
|
868
|
-
<SparklesSoftIcon className="!mx-auto mb-2 h-3 w-3 text-yellow-400" />
|
|
869
|
-
<span className="text-xs text-white/60">12px</span>
|
|
870
|
-
</div>
|
|
871
|
-
<div className="text-center">
|
|
872
|
-
<SparklesSoftIcon className="!mx-auto mb-2 h-4 w-4 text-yellow-400" />
|
|
873
|
-
<span className="text-xs text-white/60">16px</span>
|
|
874
|
-
</div>
|
|
875
|
-
<div className="text-center">
|
|
876
|
-
<SparklesSoftIcon className="!mx-auto mb-2 h-5 w-5 text-yellow-400" />
|
|
877
|
-
<span className="text-xs text-white/60">20px</span>
|
|
878
|
-
</div>
|
|
879
|
-
<div className="text-center">
|
|
880
|
-
<SparklesSoftIcon className="!mx-auto mb-2 h-6 w-6 text-yellow-400" />
|
|
881
|
-
<span className="text-xs text-white/60">24px</span>
|
|
882
|
-
</div>
|
|
883
|
-
<div className="text-center">
|
|
884
|
-
<SparklesSoftIcon className="!mx-auto mb-2 h-8 w-8 text-yellow-400" />
|
|
885
|
-
<span className="text-xs text-white/60">32px</span>
|
|
886
|
-
</div>
|
|
887
|
-
<div className="text-center">
|
|
888
|
-
<SparklesSoftIcon className="!mx-auto mb-2 h-12 w-12 text-yellow-400" />
|
|
889
|
-
<span className="text-xs text-white/60">48px</span>
|
|
890
|
-
</div>
|
|
891
|
-
</div>
|
|
892
|
-
),
|
|
118
|
+
render: () => <IconSizeVariations icon={SparklesSoftIcon} />,
|
|
893
119
|
}
|
|
894
120
|
|
|
895
121
|
export const ColorVariations: Story = {
|
|
896
|
-
|
|
897
|
-
...storyParameters,
|
|
898
|
-
docs: {
|
|
899
|
-
description: {
|
|
900
|
-
story:
|
|
901
|
-
"SparklesSoftIcon in different colors suitable for AI features, premium content, and celebrations.",
|
|
902
|
-
},
|
|
903
|
-
},
|
|
904
|
-
},
|
|
905
|
-
render: () => (
|
|
906
|
-
<div className="grid min-h-dvh grid-cols-2 items-center justify-center gap-6 rounded-lg bg-gradient-to-br from-gray-900 to-gray-800 p-8 md:grid-cols-4">
|
|
907
|
-
<div className="text-center">
|
|
908
|
-
<div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border border-yellow-500/30 bg-yellow-500/20">
|
|
909
|
-
<SparklesSoftIcon className="h-8 w-8 text-yellow-400" />
|
|
910
|
-
</div>
|
|
911
|
-
<div className="text-sm font-medium text-white">Premium Gold</div>
|
|
912
|
-
<div className="text-xs text-yellow-400">text-yellow-400</div>
|
|
913
|
-
</div>
|
|
914
|
-
<div className="text-center">
|
|
915
|
-
<div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border border-purple-500/30 bg-purple-500/20">
|
|
916
|
-
<SparklesSoftIcon className="h-8 w-8 text-purple-400" />
|
|
917
|
-
</div>
|
|
918
|
-
<div className="text-sm font-medium text-white">AI Magic</div>
|
|
919
|
-
<div className="text-xs text-purple-400">text-purple-400</div>
|
|
920
|
-
</div>
|
|
921
|
-
<div className="text-center">
|
|
922
|
-
<div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border border-pink-500/30 bg-pink-500/20">
|
|
923
|
-
<SparklesSoftIcon className="h-8 w-8 text-pink-400" />
|
|
924
|
-
</div>
|
|
925
|
-
<div className="text-sm font-medium text-white">Celebration</div>
|
|
926
|
-
<div className="text-xs text-pink-400">text-pink-400</div>
|
|
927
|
-
</div>
|
|
928
|
-
<div className="text-center">
|
|
929
|
-
<div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border border-blue-500/30 bg-blue-500/20">
|
|
930
|
-
<SparklesSoftIcon className="h-8 w-8 text-blue-400" />
|
|
931
|
-
</div>
|
|
932
|
-
<div className="text-sm font-medium text-white">Special</div>
|
|
933
|
-
<div className="text-xs text-blue-400">text-blue-400</div>
|
|
934
|
-
</div>
|
|
935
|
-
</div>
|
|
936
|
-
),
|
|
122
|
+
render: () => <IconColorVariations icon={SparklesSoftIcon} />,
|
|
937
123
|
}
|
|
938
124
|
|
|
939
125
|
export const UsageExamples: Story = {
|
|
940
|
-
parameters: {
|
|
941
|
-
...storyParameters,
|
|
942
|
-
docs: {
|
|
943
|
-
description: {
|
|
944
|
-
story:
|
|
945
|
-
"Real-world usage examples showing SparklesSoftIcon in different AI and premium contexts.",
|
|
946
|
-
},
|
|
947
|
-
},
|
|
948
|
-
},
|
|
949
126
|
render: () => (
|
|
950
|
-
<
|
|
951
|
-
|
|
952
|
-
|
|
953
|
-
|
|
954
|
-
|
|
955
|
-
|
|
956
|
-
|
|
957
|
-
<SparklesSoftIcon className="h-4 w-4 text-purple-400" />
|
|
958
|
-
</div>
|
|
959
|
-
<div>
|
|
960
|
-
<h4 className="font-medium text-purple-200">AI Enhanced</h4>
|
|
961
|
-
<p className="text-sm text-purple-300/80">
|
|
962
|
-
This feature is powered by artificial intelligence
|
|
963
|
-
</p>
|
|
964
|
-
</div>
|
|
965
|
-
</div>
|
|
127
|
+
<IconUsageCanvas>
|
|
128
|
+
<IconUsageSection title="AI Feature Badge">
|
|
129
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary flex items-center gap-2 rounded-full border px-3 py-1">
|
|
130
|
+
<SparklesSoftIcon className="text-fm-icon-positive h-3.5 w-3.5" />
|
|
131
|
+
<span className="text-fm-primary font-fm-text text-xs">
|
|
132
|
+
AI Powered
|
|
133
|
+
</span>
|
|
966
134
|
</div>
|
|
967
|
-
</
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
|
|
972
|
-
|
|
973
|
-
|
|
974
|
-
|
|
975
|
-
|
|
976
|
-
<span className="font-medium text-white">Pro Feature</span>
|
|
977
|
-
</div>
|
|
978
|
-
<button className="rounded-full bg-gradient-to-r from-yellow-400 to-orange-400 px-3 py-1 text-sm font-medium text-black">
|
|
979
|
-
Upgrade
|
|
980
|
-
</button>
|
|
135
|
+
</IconUsageSection>
|
|
136
|
+
|
|
137
|
+
<IconUsageSection title="Premium Feature Card">
|
|
138
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary w-full max-w-sm rounded-xl border p-4">
|
|
139
|
+
<div className="mb-2 flex items-center gap-2">
|
|
140
|
+
<SparklesSoftIcon className="text-fm-icon-positive h-5 w-5" />
|
|
141
|
+
<span className="text-fm-primary font-fm-text text-sm font-medium">
|
|
142
|
+
AI Writing Assistant
|
|
143
|
+
</span>
|
|
981
144
|
</div>
|
|
145
|
+
<p className="text-fm-secondary font-fm-text text-xs">
|
|
146
|
+
Let AI help you craft engaging stories faster.
|
|
147
|
+
</p>
|
|
982
148
|
</div>
|
|
983
|
-
</
|
|
149
|
+
</IconUsageSection>
|
|
984
150
|
|
|
985
|
-
|
|
986
|
-
|
|
987
|
-
|
|
988
|
-
|
|
989
|
-
<button className="flex items-center gap-2 rounded-lg border border-purple-500/30 bg-purple-500/20 px-4 py-2 text-purple-200 transition-colors hover:bg-purple-500/30">
|
|
990
|
-
<SparklesSoftIcon className="h-4 w-4" />
|
|
151
|
+
<IconUsageSection title="Magic Button">
|
|
152
|
+
<button className="flex items-center gap-2 rounded-xl px-4 py-2">
|
|
153
|
+
<SparklesSoftIcon className="text-fm-icon-positive h-4 w-4" />
|
|
154
|
+
<span className="text-fm-primary font-fm-text text-sm">
|
|
991
155
|
Generate with AI
|
|
992
|
-
</
|
|
993
|
-
|
|
994
|
-
|
|
995
|
-
|
|
996
|
-
</button>
|
|
997
|
-
</div>
|
|
998
|
-
</div>
|
|
999
|
-
</div>
|
|
156
|
+
</span>
|
|
157
|
+
</button>
|
|
158
|
+
</IconUsageSection>
|
|
159
|
+
</IconUsageCanvas>
|
|
1000
160
|
),
|
|
1001
161
|
}
|
|
1002
162
|
|
|
1003
163
|
export const Playground: Story = {
|
|
1004
|
-
parameters: {
|
|
1005
|
-
...storyParameters,
|
|
1006
|
-
docs: {
|
|
1007
|
-
description: {
|
|
1008
|
-
story:
|
|
1009
|
-
"Interactive playground to experiment with different SparklesSoftIcon configurations.",
|
|
1010
|
-
},
|
|
1011
|
-
},
|
|
1012
|
-
},
|
|
1013
164
|
args: {
|
|
1014
|
-
|
|
1015
|
-
|
|
1016
|
-
className: "text-yellow-400",
|
|
1017
|
-
strokeWidth: 1.5,
|
|
165
|
+
className: "h-8 w-8 text-fm-icon-positive",
|
|
166
|
+
withAccessibility: true,
|
|
1018
167
|
},
|
|
1019
168
|
render: (args) => (
|
|
1020
|
-
<
|
|
1021
|
-
<
|
|
1022
|
-
|
|
1023
|
-
</div>
|
|
1024
|
-
</div>
|
|
169
|
+
<IconPlaygroundCanvas>
|
|
170
|
+
<SparklesSoftIcon {...args} />
|
|
171
|
+
</IconPlaygroundCanvas>
|
|
1025
172
|
),
|
|
1026
173
|
}
|