aural-ui 3.0.7 → 4.0.1
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 +271 -242
- package/dist/components/avatar/Avatar.stories.tsx +84 -70
- package/dist/components/button/Button.stories.tsx +7 -7
- package/dist/components/button/index.tsx +7 -7
- package/dist/components/card/Card.stories.tsx +3 -3
- package/dist/components/char-count/CharCount.stories.tsx +9 -9
- package/dist/components/circular-loader/CircularLoader.stories.tsx +109 -93
- package/dist/components/collapsible/Collapsible.stories.tsx +1 -1
- package/dist/components/command/Command.stories.tsx +52 -38
- package/dist/components/dialog/Dialog.stories.tsx +89 -84
- package/dist/components/divider/Divider.stories.tsx +86 -60
- package/dist/components/dot-loader/DotLoader.stories.tsx +12 -12
- package/dist/components/drawer/Drawer.stories.tsx +74 -44
- package/dist/components/drawer/index.tsx +3 -3
- package/dist/components/dropdown/Dropdown.stories.tsx +42 -32
- package/dist/components/helper-text/HelperText.stories.tsx +2 -2
- package/dist/components/hover-card/HoverCard.stories.tsx +211 -178
- package/dist/components/input/Input.stories.tsx +2 -2
- package/dist/components/label/Label.stories.tsx +10 -10
- package/dist/components/list/List.stories.tsx +58 -44
- package/dist/components/marquee/Marquee.stories.tsx +131 -113
- package/dist/components/otp-inputs/OtpInputs.stories.tsx +47 -35
- package/dist/components/overlay/Overlay.stories.tsx +98 -92
- package/dist/components/overlay/index.tsx +4 -4
- package/dist/components/popover/Popover.stories.tsx +132 -106
- package/dist/components/radio/Radio.stories.tsx +2 -2
- package/dist/components/resizable/Resizable.stories.tsx +186 -138
- package/dist/components/scroll-area/ScrollArea.stories.tsx +174 -120
- package/dist/components/search/Search.stories.tsx +81 -59
- package/dist/components/select/Select.stories.tsx +3 -1
- package/dist/components/sheet/Sheet.stories.tsx +68 -54
- package/dist/components/slider/Slider.stories.tsx +71 -47
- package/dist/components/stepper/Stepper.stories.tsx +16 -16
- package/dist/components/switch/Switch.stories.tsx +12 -12
- package/dist/components/table/Table.stories.tsx +8 -6
- package/dist/components/tabs/Tabs.stories.tsx +324 -268
- package/dist/components/textarea/TextArea.stories.tsx +1 -1
- package/dist/components/thumbnail-tags/ThumbnailTags.stories.tsx +16 -10
- package/dist/components/toast/Toast.stories.tsx +51 -45
- package/dist/components/toggle/Toggle.stories.tsx +111 -89
- package/dist/components/tooltip/Tooltip.stories.tsx +160 -144
- package/dist/icons/Icons.stories.tsx +2 -2
- package/dist/icons/ai-avatar-icon/AiAvatarIcon.stories.tsx +287 -237
- package/dist/icons/alert-icon/AlertIcon.stories.tsx +290 -248
- package/dist/icons/all-icons.tsx +97 -81
- package/dist/icons/angle-down-icon/AngleDownIcon.stories.tsx +312 -270
- package/dist/icons/apple-logo-icon/AppleLogoIcon.stories.tsx +294 -244
- package/dist/icons/arrow-box-left-icon/ArrowBoxLeftIcon.stories.tsx +309 -279
- package/dist/icons/arrow-corner-up-left-icon/ArrowCornerUpLeftIcon.stories.tsx +294 -258
- package/dist/icons/arrow-corner-up-right-icon/ArrowCornerUpRightIcon.stories.tsx +289 -255
- package/dist/icons/arrow-left-icon/ArrowLeftIcon.stories.tsx +288 -256
- package/dist/icons/arrow-right-icon/ArrowRightIcon.stories.tsx +322 -288
- package/dist/icons/arrow-right-up-icon/ArrowRightUpIcon.stories.tsx +340 -296
- package/dist/icons/art-board-icon/ArtBoardIcon.stories.tsx +197 -177
- package/dist/icons/audio-bar-icon/AudioBarIcon.stories.tsx +390 -328
- package/dist/icons/backward-ten-seconds-icon/BackwardTenSecondsIcon.stories.tsx +313 -277
- package/dist/icons/bubble-check-icon/BubbleCheckIcon.stories.tsx +367 -309
- package/dist/icons/bubble-crossed-icon/BubbleCrossedIcon.stories.tsx +356 -308
- package/dist/icons/bubble-sparkle-icon/BubbleSparkleIcon.stories.tsx +280 -234
- package/dist/icons/camera-icon/CameraIcon.stories.tsx +370 -326
- package/dist/icons/capital-a-letter-icon/CapitalALetterIcon.stories.tsx +300 -256
- package/dist/icons/chevron-double-left-icon/ChevronDoubleLeftIcon.stories.tsx +298 -262
- package/dist/icons/chevron-double-right-icon/ChevronDoubleRightIcon.stories.tsx +294 -260
- package/dist/icons/chevron-down-icon/ChevronDownIcon.stories.tsx +291 -259
- package/dist/icons/chevron-left-icon/ChevronLeftIcon.stories.tsx +286 -256
- package/dist/icons/chevron-right-icon/ChevronRightIcon.stories.tsx +282 -256
- package/dist/icons/chevron-up-icon/ChevronUpIcon.stories.tsx +292 -256
- package/dist/icons/circle-tick-icon/CircleTickIcon.stories.tsx +338 -290
- package/dist/icons/circular-play-icon/CircularPlayIcon.stories.tsx +167 -148
- package/dist/icons/coin-icon/CoinIcon.stories.tsx +342 -296
- package/dist/icons/coin-toons-icon/CoinToonsIcon.stories.tsx +342 -296
- package/dist/icons/column-wide-add-icon/ColumnWideAddIcon.stories.tsx +280 -238
- package/dist/icons/command-icon/CommandIcon.stories.tsx +328 -280
- package/dist/icons/copy-icon/CopyIcon.stories.tsx +294 -256
- package/dist/icons/cross-circle-icon/CrossCircleIcon.stories.tsx +285 -235
- package/dist/icons/cross-icon/CrossIcon.stories.tsx +308 -266
- package/dist/icons/download-icon/DownloadIcon.stories.tsx +271 -231
- package/dist/icons/edit-big-icon/EditBigIcon.stories.tsx +330 -278
- package/dist/icons/email-icon/EmailIcon.stories.tsx +303 -257
- package/dist/icons/expand-icon/ExpandIcon.stories.tsx +324 -286
- package/dist/icons/eye-close-icon/EyeCloseIcon.stories.tsx +317 -271
- package/dist/icons/eye-open-icon/EyeOpenIcon.stories.tsx +320 -272
- package/dist/icons/feature-shine-icon/FeatureShineIcon.stories.tsx +322 -280
- package/dist/icons/file-chart-icon/FileChartIcon.stories.tsx +315 -277
- package/dist/icons/file-text-icon/FileTextIcon.stories.tsx +199 -177
- package/dist/icons/filter-bar-row-icon/FilterBarRowIcon.stories.tsx +304 -264
- package/dist/icons/forward-ten-seconds-icon/ForwardTenSecondsIcon.stories.tsx +311 -277
- package/dist/icons/git-branch-icon/GitBranchIcon.stories.tsx +327 -287
- package/dist/icons/git-fork-icon/GitForkIcon.stories.tsx +314 -278
- package/dist/icons/globe-icon/GlobeIcon.stories.tsx +113 -98
- package/dist/icons/google-logo-icon/GoogleLogoIcon.stories.tsx +274 -226
- package/dist/icons/grip-vertical-icon/GripVerticalIcon.stories.tsx +349 -303
- package/dist/icons/head-icon/HeadIcon.stories.tsx +286 -246
- package/dist/icons/heart-icon/HeartIcon.stories.tsx +312 -268
- package/dist/icons/image-avatar-sparkle-icon/ImageAvatarSparkleIcon.stories.tsx +246 -210
- package/dist/icons/image-icon/ImageIcon.stories.tsx +330 -284
- package/dist/icons/import-folder-icon/ImportFolderIcon.stories.tsx +326 -282
- package/dist/icons/import-left-arrow-folder-icon/ImportLeftArrowFolderIcon.stories.tsx +330 -294
- package/dist/icons/indian-flag-icon/IndianFlagIcon.stories.tsx +288 -234
- package/dist/icons/instagram-icon/InstagramIcon.stories.tsx +386 -330
- package/dist/icons/layout-column-icon/LayoutColumnIcon.stories.tsx +305 -263
- package/dist/icons/layout-left-icon/LayoutLeftIcon.stories.tsx +295 -259
- package/dist/icons/layout-right-icon/LayoutRightIcon.stories.tsx +296 -256
- package/dist/icons/light-bulb-simple-icon/LightBulbSimpleIcon.stories.tsx +322 -282
- package/dist/icons/linked-in-icon/LinkedInIcon.stories.tsx +399 -359
- package/dist/icons/magic-book-icon/MagicBookIcon.stories.tsx +314 -272
- package/dist/icons/magic-edit-icon/MagicEditIcon.stories.tsx +238 -206
- package/dist/icons/maintenance-icon/MaintenanceIcon.stories.tsx +322 -276
- package/dist/icons/message-icon/MessageIcon.stories.tsx +192 -170
- package/dist/icons/minimize-icon/MinimizeIcon.stories.tsx +348 -304
- package/dist/icons/moon-icon/MoonIcon.stories.tsx +191 -167
- package/dist/icons/move-horizontal-icon/MoveHorizontalIcon.stories.tsx +380 -326
- package/dist/icons/move-vertical-icon/MoveVerticalIcon.stories.tsx +345 -291
- package/dist/icons/musical-note-icon/MusicalNoteIcon.stories.tsx +310 -266
- package/dist/icons/notepad-icon/NotepadIcon.stories.tsx +311 -271
- package/dist/icons/notes-icon/NotesIcon.stories.tsx +311 -271
- package/dist/icons/page-search-icon/PageSearchIcon.stories.tsx +309 -271
- package/dist/icons/page-text-icon/PageTextIcon.stories.tsx +248 -210
- package/dist/icons/paint-roll-icon/PaintRollIcon.stories.tsx +310 -262
- package/dist/icons/paper-plane-icon/PaperPlaneIcon.stories.tsx +274 -236
- package/dist/icons/pause-icon/PauseIcon.stories.tsx +324 -280
- package/dist/icons/pencil-icon/PencilIcon.stories.tsx +323 -281
- package/dist/icons/phone-icon/PhoneIcon.stories.tsx +288 -240
- package/dist/icons/plus-icon/PlusIcon.stories.tsx +315 -273
- package/dist/icons/pocket-studio-icon/PocketStudioIcon.stories.tsx +278 -234
- package/dist/icons/scroll-down-icon/ScrollDownIcon.stories.tsx +161 -151
- package/dist/icons/search-icon/SearchIcon.stories.tsx +324 -284
- package/dist/icons/setting-icon/SettingIcon.stories.tsx +306 -264
- package/dist/icons/share-icon/ShareIcon.stories.tsx +314 -272
- package/dist/icons/shield-icon/ShieldIcon.stories.tsx +281 -235
- package/dist/icons/site-logo-icon/SiteLogoIcon.stories.tsx +309 -250
- package/dist/icons/skip-backward-icon/SkipBackwardIcon.stories.tsx +317 -279
- package/dist/icons/skip-forward-icon/SkipForwardIcon.stories.tsx +315 -279
- package/dist/icons/sparkles-soft-icon/SparklesSoftIcon.stories.tsx +299 -253
- package/dist/icons/spinner-gradient-icon/SpinnerGradientIcon.stories.tsx +185 -169
- package/dist/icons/spinner-gradient-icon/index.tsx +6 -1
- package/dist/icons/spinner-solid-icon/SpinnerSolidIcon.stories.tsx +192 -168
- package/dist/icons/spinner-solid-icon/index.tsx +6 -1
- package/dist/icons/spinner-solid-neutral-icon/SpinnerSolidINeutralcon.stories.tsx +212 -178
- package/dist/icons/spinner-solid-neutral-icon/index.tsx +1 -1
- package/dist/icons/star-icon/StarIcon.stories.tsx +290 -244
- package/dist/icons/store-coin-icon/StoreCoinIcon.stories.tsx +286 -234
- package/dist/icons/suggestion-icon/SuggestionIcon.stories.tsx +272 -230
- package/dist/icons/sun-icon/SunIcon.stories.tsx +262 -226
- package/dist/icons/text-color-icon/TextColorIcon.stories.tsx +321 -279
- package/dist/icons/text-indicator-icon/TextIndicatorIcon.stories.tsx +332 -282
- package/dist/icons/threads-icon/ThreadsIcon.stories.tsx +394 -342
- package/dist/icons/tick-circle-icon/TickCircleIcon.stories.tsx +338 -290
- package/dist/icons/tick-icon/TickIcon.stories.tsx +364 -315
- package/dist/icons/trash-icon/TrashIcon.stories.tsx +293 -253
- package/dist/icons/twitter-x-icon/TwitterXIcon.stories.tsx +396 -338
- package/dist/icons/upload-icon/UploadIcon.stories.tsx +291 -247
- package/dist/icons/vertical-menu-icon/VerticalMenuIcon.stories.tsx +309 -271
- package/dist/icons/video-play-list-icon/VideoPlaylistIcon.stories.tsx +336 -290
- package/dist/icons/voice-playing-icon/VoicePlayingIcon.stories.tsx +382 -334
- package/dist/icons/volume-full-icon/VolumeFullIcon.stories.tsx +349 -305
- package/dist/icons/volume-half-icon/VolumeHalfIcon.stories.tsx +327 -295
- package/dist/icons/volume-off-icon/VolumeOffIcon.stories.tsx +336 -296
- package/dist/icons/warning-icon/WarningIcon.stories.tsx +314 -274
- package/dist/icons/youtube-icon/YoutubeIcon.stories.tsx +311 -261
- 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
|
@@ -12,9 +12,9 @@ const meta: Meta<typeof SpinnerSolidIcon> = {
|
|
|
12
12
|
backgrounds: {
|
|
13
13
|
default: "dark",
|
|
14
14
|
values: [
|
|
15
|
-
{ name: "dark", value: "
|
|
16
|
-
{ name: "darker", value: "
|
|
17
|
-
{ name: "light", value: "
|
|
15
|
+
{ name: "dark", value: "var(--color-fm-surface-primary)" },
|
|
16
|
+
{ name: "darker", value: "var(--color-fm-neutral-0)" },
|
|
17
|
+
{ name: "light", value: "var(--color-fm-neutral-1100)" },
|
|
18
18
|
],
|
|
19
19
|
},
|
|
20
20
|
docs: {
|
|
@@ -41,42 +41,42 @@ const meta: Meta<typeof SpinnerSolidIcon> = {
|
|
|
41
41
|
background: transparent !important;
|
|
42
42
|
}
|
|
43
43
|
body {
|
|
44
|
-
background:
|
|
44
|
+
background: var(--color-fm-surface-primary) !important;
|
|
45
45
|
}
|
|
46
46
|
#storybook-docs {
|
|
47
|
-
background:
|
|
47
|
+
background: var(--color-fm-surface-primary) !important;
|
|
48
48
|
}
|
|
49
49
|
.sbdocs-preview {
|
|
50
50
|
background: transparent !important;
|
|
51
51
|
border: none !important;
|
|
52
52
|
}
|
|
53
53
|
.sbdocs-h1, .sbdocs-h2, .sbdocs-h3, .sbdocs-h4, .sbdocs-h5, .sbdocs-h6 {
|
|
54
|
-
color:
|
|
54
|
+
color: var(--color-fm-icon-active) !important;
|
|
55
55
|
}
|
|
56
56
|
.sbdocs-p, .sbdocs-li {
|
|
57
|
-
color:
|
|
57
|
+
color: var(--color-fm-secondary) !important;
|
|
58
58
|
}
|
|
59
59
|
.sbdocs-code {
|
|
60
|
-
background:
|
|
61
|
-
color:
|
|
62
|
-
border: 1px solid
|
|
60
|
+
background: var(--color-fm-surface-secondary) !important;
|
|
61
|
+
color: var(--color-fm-secondary-500) !important;
|
|
62
|
+
border: 1px solid var(--color-fm-divider-secondary) !important;
|
|
63
63
|
}
|
|
64
64
|
.sbdocs-pre {
|
|
65
|
-
background:
|
|
66
|
-
border: 1px solid
|
|
65
|
+
background: var(--color-fm-surface-secondary) !important;
|
|
66
|
+
border: 1px solid var(--color-fm-divider-secondary) !important;
|
|
67
67
|
}
|
|
68
68
|
.sbdocs-table {
|
|
69
|
-
background:
|
|
70
|
-
border: 1px solid
|
|
69
|
+
background: var(--color-fm-surface-secondary) !important;
|
|
70
|
+
border: 1px solid var(--color-fm-divider-secondary) !important;
|
|
71
71
|
}
|
|
72
72
|
.sbdocs-table th {
|
|
73
|
-
background:
|
|
74
|
-
color:
|
|
75
|
-
border-bottom: 1px solid
|
|
73
|
+
background: var(--color-fm-surface-secondary) !important;
|
|
74
|
+
color: var(--color-fm-icon-active) !important;
|
|
75
|
+
border-bottom: 1px solid var(--color-fm-divider-secondary) !important;
|
|
76
76
|
}
|
|
77
77
|
.sbdocs-table td {
|
|
78
|
-
color:
|
|
79
|
-
border-bottom: 1px solid
|
|
78
|
+
color: var(--color-fm-secondary) !important;
|
|
79
|
+
border-bottom: 1px solid var(--color-fm-divider-tertiary) !important;
|
|
80
80
|
}
|
|
81
81
|
@keyframes search-pulse {
|
|
82
82
|
0%, 100% { transform: scale(1); opacity: 1; }
|
|
@@ -102,17 +102,17 @@ const meta: Meta<typeof SpinnerSolidIcon> = {
|
|
|
102
102
|
`}
|
|
103
103
|
</style>
|
|
104
104
|
|
|
105
|
-
<div className="
|
|
105
|
+
<div className="from-fm-surface-primary via-fm-icon-info/5 to-fm-surface-primary min-h-screen bg-linear-to-br">
|
|
106
106
|
{/* Header */}
|
|
107
|
-
<div className="relative overflow-hidden border-b
|
|
108
|
-
<div className="absolute inset-0 bg-
|
|
107
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary relative overflow-hidden border-b backdrop-blur-xl">
|
|
108
|
+
<div className="from-fm-icon-info/10 to-fm-secondary-500/10 absolute inset-0 bg-linear-to-r via-transparent" />
|
|
109
109
|
<div className="relative !mx-auto max-w-7xl px-6 py-16">
|
|
110
110
|
<div className="!space-y-6 text-center">
|
|
111
|
-
<div className="!mx-auto flex h-24 w-24 items-center justify-center rounded-2xl border
|
|
112
|
-
<SpinnerSolidIcon className="h-12 w-12
|
|
111
|
+
<div className="border-fm-icon-info/30 from-fm-icon-info/20 to-fm-secondary-500/20 !mx-auto flex h-24 w-24 items-center justify-center rounded-2xl border bg-linear-to-br">
|
|
112
|
+
<SpinnerSolidIcon className="text-fm-icon-info h-12 w-12" />
|
|
113
113
|
</div>
|
|
114
|
-
<h1 className="
|
|
115
|
-
<p className="!mx-auto max-w-3xl text-xl leading-relaxed
|
|
114
|
+
<h1 className="text-fm-icon-active!">SpinnerSolidIcon</h1>
|
|
115
|
+
<p className="text-fm-icon-active! !mx-auto max-w-3xl text-xl leading-relaxed">
|
|
116
116
|
A clean and minimal spinner icon for loading states,
|
|
117
117
|
asynchronous actions, and content transitions. Perfect for
|
|
118
118
|
indicating progress in a subtle and elegant way.
|
|
@@ -121,26 +121,28 @@ const meta: Meta<typeof SpinnerSolidIcon> = {
|
|
|
121
121
|
{/* Stats */}
|
|
122
122
|
<div className="flex items-center justify-center gap-8 pt-8">
|
|
123
123
|
<div className="text-center">
|
|
124
|
-
<div className="text-3xl font-bold
|
|
124
|
+
<div className="text-fm-icon-info text-3xl font-bold">
|
|
125
125
|
Minimal
|
|
126
126
|
</div>
|
|
127
|
-
<div className="text-
|
|
127
|
+
<div className="text-fm-icon-active/80 text-sm">
|
|
128
|
+
Clean Design
|
|
129
|
+
</div>
|
|
128
130
|
</div>
|
|
129
|
-
<div className="h-8 w-px
|
|
131
|
+
<div className="bg-fm-divider-primary h-8 w-px" />
|
|
130
132
|
<div className="text-center">
|
|
131
|
-
<div className="text-3xl font-bold
|
|
133
|
+
<div className="text-fm-secondary-600 text-3xl font-bold">
|
|
132
134
|
Accessible
|
|
133
135
|
</div>
|
|
134
|
-
<div className="text-
|
|
136
|
+
<div className="text-fm-icon-active/80 text-sm">
|
|
135
137
|
Screen Reader Ready
|
|
136
138
|
</div>
|
|
137
139
|
</div>
|
|
138
|
-
<div className="h-8 w-px
|
|
140
|
+
<div className="bg-fm-divider-primary h-8 w-px" />
|
|
139
141
|
<div className="text-center">
|
|
140
|
-
<div className="text-3xl font-bold
|
|
142
|
+
<div className="text-fm-icon-positive text-3xl font-bold">
|
|
141
143
|
Versatile
|
|
142
144
|
</div>
|
|
143
|
-
<div className="text-
|
|
145
|
+
<div className="text-fm-icon-active/80 text-sm">
|
|
144
146
|
Multiple Sizes
|
|
145
147
|
</div>
|
|
146
148
|
</div>
|
|
@@ -153,35 +155,35 @@ const meta: Meta<typeof SpinnerSolidIcon> = {
|
|
|
153
155
|
<div className="!mx-auto max-w-7xl !space-y-16 px-6 py-12">
|
|
154
156
|
{/* Features */}
|
|
155
157
|
<div className="!space-y-8">
|
|
156
|
-
<h3 className="text-center text-2xl font-bold
|
|
158
|
+
<h3 className="text-fm-icon-active! text-center text-2xl font-bold">
|
|
157
159
|
Key Features
|
|
158
160
|
</h3>
|
|
159
161
|
<div className="grid grid-cols-1 gap-6 md:grid-cols-2 lg:grid-cols-3">
|
|
160
|
-
<div className="space-y-4 rounded-lg border
|
|
162
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary space-y-4 rounded-lg border p-6">
|
|
161
163
|
<div className="text-3xl">🎨</div>
|
|
162
|
-
<h4 className="text-lg font-semibold
|
|
164
|
+
<h4 className="text-fm-icon-active! text-lg font-semibold">
|
|
163
165
|
Clean Design
|
|
164
166
|
</h4>
|
|
165
|
-
<p className="text-
|
|
167
|
+
<p className="text-fm-icon-active!/80 text-sm">
|
|
166
168
|
Minimal and elegant spinner design that fits any interface
|
|
167
169
|
</p>
|
|
168
170
|
</div>
|
|
169
|
-
<div className="space-y-4 rounded-lg border
|
|
171
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary space-y-4 rounded-lg border p-6">
|
|
170
172
|
<div className="text-3xl">♿</div>
|
|
171
|
-
<h4 className="text-lg font-semibold
|
|
173
|
+
<h4 className="text-fm-icon-active! text-lg font-semibold">
|
|
172
174
|
Accessibility
|
|
173
175
|
</h4>
|
|
174
|
-
<p className="text-
|
|
176
|
+
<p className="text-fm-icon-active!/80 text-sm">
|
|
175
177
|
Built with Radix UI's AccessibleIcon for screen reader
|
|
176
178
|
support
|
|
177
179
|
</p>
|
|
178
180
|
</div>
|
|
179
|
-
<div className="space-y-4 rounded-lg border
|
|
181
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary space-y-4 rounded-lg border p-6">
|
|
180
182
|
<div className="text-3xl">⚡</div>
|
|
181
|
-
<h4 className="text-lg font-semibold
|
|
183
|
+
<h4 className="text-fm-icon-active! text-lg font-semibold">
|
|
182
184
|
Performance
|
|
183
185
|
</h4>
|
|
184
|
-
<p className="text-
|
|
186
|
+
<p className="text-fm-icon-active!/80 text-sm">
|
|
185
187
|
Optimized SVG rendering with minimal DOM impact
|
|
186
188
|
</p>
|
|
187
189
|
</div>
|
|
@@ -190,17 +192,17 @@ const meta: Meta<typeof SpinnerSolidIcon> = {
|
|
|
190
192
|
|
|
191
193
|
{/* API Reference */}
|
|
192
194
|
<div className="!space-y-8">
|
|
193
|
-
<h3 className="text-center text-2xl font-bold
|
|
195
|
+
<h3 className="text-fm-icon-active! text-center text-2xl font-bold">
|
|
194
196
|
API Reference
|
|
195
197
|
</h3>
|
|
196
198
|
|
|
197
199
|
{/* Component Signature */}
|
|
198
|
-
<div className="rounded-lg border
|
|
199
|
-
<h4 className="mb-4 text-lg font-semibold
|
|
200
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
|
|
201
|
+
<h4 className="text-fm-icon-info! mb-4 text-lg font-semibold">
|
|
200
202
|
Component Signature
|
|
201
203
|
</h4>
|
|
202
|
-
<div className="rounded-lg
|
|
203
|
-
<pre className="text-
|
|
204
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
205
|
+
<pre className="text-fm-icon-positive! text-sm">
|
|
204
206
|
{`import { SpinnerSolidIcon } from "@/ui/icons/spinner-solid-icon"
|
|
205
207
|
|
|
206
208
|
<SpinnerSolidIcon className="h-6 w-6 animate-spin" />`}
|
|
@@ -209,61 +211,69 @@ const meta: Meta<typeof SpinnerSolidIcon> = {
|
|
|
209
211
|
</div>
|
|
210
212
|
|
|
211
213
|
{/* Props Table */}
|
|
212
|
-
<div className="overflow-hidden rounded-lg border
|
|
213
|
-
<div className="bg-
|
|
214
|
-
<h3 className="text-xl font-semibold
|
|
214
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary overflow-hidden rounded-lg border">
|
|
215
|
+
<div className="bg-fm-surface-secondary p-4">
|
|
216
|
+
<h3 className="text-fm-icon-active! text-xl font-semibold">
|
|
217
|
+
Props
|
|
218
|
+
</h3>
|
|
215
219
|
</div>
|
|
216
220
|
<table className="!my-0 w-full">
|
|
217
|
-
<thead className="bg-
|
|
218
|
-
<tr className="border-
|
|
219
|
-
<th className="px-6 py-4 text-left text-sm font-semibold
|
|
221
|
+
<thead className="bg-fm-surface-secondary">
|
|
222
|
+
<tr className="border-fm-divider-secondary border-b">
|
|
223
|
+
<th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
|
|
220
224
|
Prop
|
|
221
225
|
</th>
|
|
222
|
-
<th className="px-6 py-4 text-left text-sm font-semibold
|
|
226
|
+
<th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
|
|
223
227
|
Type
|
|
224
228
|
</th>
|
|
225
|
-
<th className="px-6 py-4 text-left text-sm font-semibold
|
|
229
|
+
<th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
|
|
226
230
|
Default
|
|
227
231
|
</th>
|
|
228
|
-
<th className="px-6 py-4 text-left text-sm font-semibold
|
|
232
|
+
<th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
|
|
229
233
|
Description
|
|
230
234
|
</th>
|
|
231
235
|
</tr>
|
|
232
236
|
</thead>
|
|
233
237
|
<tbody>
|
|
234
|
-
<tr className="border-
|
|
235
|
-
<td className="px-6 py-4 font-mono text-sm
|
|
238
|
+
<tr className="border-fm-divider-tertiary border-b">
|
|
239
|
+
<td className="text-fm-icon-info! px-6 py-4 font-mono text-sm">
|
|
236
240
|
width
|
|
237
241
|
</td>
|
|
238
|
-
<td className="px-6 py-4 text-sm
|
|
242
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
239
243
|
number | string
|
|
240
244
|
</td>
|
|
241
|
-
<td className="px-6 py-4 text-sm
|
|
242
|
-
|
|
245
|
+
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
246
|
+
16
|
|
247
|
+
</td>
|
|
248
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
243
249
|
Width of the icon in pixels
|
|
244
250
|
</td>
|
|
245
251
|
</tr>
|
|
246
|
-
<tr className="border-
|
|
247
|
-
<td className="px-6 py-4 font-mono text-sm
|
|
252
|
+
<tr className="border-fm-divider-tertiary bg-fm-surface-secondary! border-b">
|
|
253
|
+
<td className="text-fm-icon-info! px-6 py-4 font-mono text-sm">
|
|
248
254
|
height
|
|
249
255
|
</td>
|
|
250
|
-
<td className="px-6 py-4 text-sm
|
|
256
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
251
257
|
number | string
|
|
252
258
|
</td>
|
|
253
|
-
<td className="px-6 py-4 text-sm
|
|
254
|
-
|
|
259
|
+
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
260
|
+
16
|
|
261
|
+
</td>
|
|
262
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
255
263
|
Height of the icon in pixels
|
|
256
264
|
</td>
|
|
257
265
|
</tr>
|
|
258
|
-
<tr className="
|
|
259
|
-
<td className="px-6 py-4 font-mono text-sm
|
|
266
|
+
<tr className="bg-fm-surface-secondary!">
|
|
267
|
+
<td className="text-fm-icon-info! px-6 py-4 font-mono text-sm">
|
|
260
268
|
className
|
|
261
269
|
</td>
|
|
262
|
-
<td className="px-6 py-4 text-sm
|
|
270
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
263
271
|
string
|
|
264
272
|
</td>
|
|
265
|
-
<td className="px-6 py-4 text-sm
|
|
266
|
-
|
|
273
|
+
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
274
|
+
-
|
|
275
|
+
</td>
|
|
276
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
267
277
|
CSS classes for styling
|
|
268
278
|
</td>
|
|
269
279
|
</tr>
|
|
@@ -273,64 +283,64 @@ const meta: Meta<typeof SpinnerSolidIcon> = {
|
|
|
273
283
|
|
|
274
284
|
{/* Accessibility */}
|
|
275
285
|
<div className="!space-y-8">
|
|
276
|
-
<h2 className="text-center text-3xl font-bold
|
|
286
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
277
287
|
Accessibility Features
|
|
278
288
|
</h2>
|
|
279
289
|
<div className="grid grid-cols-1 gap-8 md:grid-cols-2">
|
|
280
|
-
<div className="!space-y-4 rounded-lg border
|
|
281
|
-
<h3 className="text-lg font-semibold
|
|
290
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
|
|
291
|
+
<h3 className="text-fm-icon-positive! text-lg font-semibold">
|
|
282
292
|
✅ Built-in Features
|
|
283
293
|
</h3>
|
|
284
|
-
<ul className="!space-y-2 text-sm
|
|
285
|
-
<li className="
|
|
294
|
+
<ul className="text-fm-secondary! !space-y-2 text-sm">
|
|
295
|
+
<li className="text-fm-secondary!">
|
|
286
296
|
Uses Radix UI AccessibleIcon wrapper
|
|
287
297
|
</li>
|
|
288
|
-
<li className="
|
|
298
|
+
<li className="text-fm-secondary!">
|
|
289
299
|
Provides screen reader label "Spinner Solid icon"
|
|
290
300
|
</li>
|
|
291
|
-
<li className="
|
|
301
|
+
<li className="text-fm-secondary!">
|
|
292
302
|
Supports keyboard navigation when interactive
|
|
293
303
|
</li>
|
|
294
|
-
<li className="
|
|
304
|
+
<li className="text-fm-secondary!">
|
|
295
305
|
Maintains proper color contrast ratios
|
|
296
306
|
</li>
|
|
297
|
-
<li className="
|
|
307
|
+
<li className="text-fm-secondary!">
|
|
298
308
|
Scales with user's font size preferences
|
|
299
309
|
</li>
|
|
300
310
|
</ul>
|
|
301
311
|
</div>
|
|
302
312
|
|
|
303
|
-
<div className="!space-y-4 rounded-lg border
|
|
304
|
-
<h3 className="text-lg font-semibold
|
|
313
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
|
|
314
|
+
<h3 className="text-fm-icon-negative! text-lg font-semibold">
|
|
305
315
|
💡 Best Practices
|
|
306
316
|
</h3>
|
|
307
|
-
<ul className="!space-y-2 text-sm
|
|
308
|
-
<li className="
|
|
317
|
+
<ul className="text-fm-secondary !space-y-2 text-sm">
|
|
318
|
+
<li className="text-fm-secondary!">
|
|
309
319
|
Always pair with descriptive text
|
|
310
320
|
</li>
|
|
311
|
-
<li className="
|
|
321
|
+
<li className="text-fm-secondary!">
|
|
312
322
|
Provide a text fallback for screen readers{" "}
|
|
313
323
|
</li>
|
|
314
|
-
<li className="
|
|
324
|
+
<li className="text-fm-secondary!">
|
|
315
325
|
Ensure sufficient color contrast
|
|
316
326
|
</li>
|
|
317
|
-
<li className="
|
|
327
|
+
<li className="text-fm-secondary!">
|
|
318
328
|
Respect reduced motion user preferences{" "}
|
|
319
329
|
</li>
|
|
320
|
-
<li className="
|
|
330
|
+
<li className="text-fm-secondary!">
|
|
321
331
|
Ensure spinner indicates real loading action{" "}
|
|
322
332
|
</li>
|
|
323
333
|
</ul>
|
|
324
334
|
</div>
|
|
325
335
|
</div>
|
|
326
336
|
|
|
327
|
-
<div className="rounded-lg border
|
|
328
|
-
<h3 className="mb-4 text-lg font-semibold
|
|
337
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
|
|
338
|
+
<h3 className="text-fm-secondary-600! mb-4 text-lg font-semibold">
|
|
329
339
|
Custom Accessibility Label
|
|
330
340
|
</h3>
|
|
331
341
|
<div className="grid grid-cols-1 gap-6 lg:grid-cols-2">
|
|
332
|
-
<div className="rounded-lg
|
|
333
|
-
<pre className="overflow-x-auto text-sm
|
|
342
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
343
|
+
<pre className="text-fm-icon-info! overflow-x-auto text-sm">
|
|
334
344
|
{`// Custom implementation with specific label
|
|
335
345
|
import { AccessibleIcon } from "@radix-ui/react-accessible-icon"
|
|
336
346
|
|
|
@@ -350,13 +360,13 @@ function CustomTrashIcon({ label = "Delete", ...props }) {
|
|
|
350
360
|
</pre>
|
|
351
361
|
</div>
|
|
352
362
|
<div className="!space-y-4">
|
|
353
|
-
<p className="text-
|
|
363
|
+
<p className="text-fm-secondary! text-sm">
|
|
354
364
|
For specific contexts, you can wrap the SpinnerSolid
|
|
355
365
|
with a custom AccessibleIcon component that provides
|
|
356
366
|
more descriptive labels.
|
|
357
367
|
</p>
|
|
358
|
-
<div className="
|
|
359
|
-
<div className="flex items-center gap-2 text-sm
|
|
368
|
+
<div className="border-fm-icon-negative/20 bg-fm-icon-negative/10 rounded-lg border p-4">
|
|
369
|
+
<div className="text-fm-icon-negative flex items-center gap-2 text-sm">
|
|
360
370
|
<SpinnerSolidIcon className="h-4 w-4" />
|
|
361
371
|
<span>
|
|
362
372
|
This approach gives screen readers more context
|
|
@@ -369,54 +379,60 @@ function CustomTrashIcon({ label = "Delete", ...props }) {
|
|
|
369
379
|
</div>
|
|
370
380
|
{/* Related Icons */}
|
|
371
381
|
<div className="!space-y-8">
|
|
372
|
-
<h2 className="text-center text-3xl font-bold
|
|
382
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
373
383
|
Related Icons
|
|
374
384
|
</h2>
|
|
375
385
|
<div className="grid grid-cols-2 gap-6 md:grid-cols-4">
|
|
376
|
-
<div className="!space-y-3 rounded-lg border
|
|
377
|
-
<div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg
|
|
386
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
|
|
387
|
+
<div className="bg-fm-surface-primary !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
|
|
378
388
|
<SpinnerGradientIcon className="size-8 animate-spin" />
|
|
379
389
|
</div>
|
|
380
390
|
<div>
|
|
381
|
-
<div className="font-medium
|
|
391
|
+
<div className="text-fm-icon-active font-medium">
|
|
382
392
|
Spinner Gradient
|
|
383
393
|
</div>
|
|
384
|
-
<div className="text-
|
|
394
|
+
<div className="text-fm-tertiary text-xs">
|
|
385
395
|
Solid Gradient loading spinner{" "}
|
|
386
396
|
</div>
|
|
387
397
|
</div>
|
|
388
398
|
</div>
|
|
389
|
-
<div className="!space-y-3 rounded-lg border
|
|
390
|
-
<div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg
|
|
391
|
-
<span className="
|
|
399
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
|
|
400
|
+
<div className="bg-fm-icon-positive/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
|
|
401
|
+
<span className="text-fm-icon-active! !text-2xl">
|
|
402
|
+
+
|
|
403
|
+
</span>
|
|
392
404
|
</div>
|
|
393
405
|
<div>
|
|
394
|
-
<div className="font-medium
|
|
395
|
-
|
|
406
|
+
<div className="text-fm-icon-active font-medium">
|
|
407
|
+
AddIcon
|
|
408
|
+
</div>
|
|
409
|
+
<div className="text-fm-tertiary text-xs">
|
|
396
410
|
Create operations
|
|
397
411
|
</div>
|
|
398
412
|
</div>
|
|
399
413
|
</div>
|
|
400
|
-
<div className="!space-y-3 rounded-lg border
|
|
401
|
-
<div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg
|
|
414
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
|
|
415
|
+
<div className="bg-fm-icon-warning/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
|
|
402
416
|
<span className="text-2xl">📁</span>
|
|
403
417
|
</div>
|
|
404
418
|
<div>
|
|
405
|
-
<div className="font-medium
|
|
406
|
-
|
|
419
|
+
<div className="text-fm-icon-active font-medium">
|
|
420
|
+
FolderIcon
|
|
421
|
+
</div>
|
|
422
|
+
<div className="text-fm-tertiary text-xs">
|
|
407
423
|
File management
|
|
408
424
|
</div>
|
|
409
425
|
</div>
|
|
410
426
|
</div>
|
|
411
|
-
<div className="!space-y-3 rounded-lg border
|
|
412
|
-
<div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg
|
|
427
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
|
|
428
|
+
<div className="bg-fm-secondary-500/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
|
|
413
429
|
<span className="text-2xl">⚙️</span>
|
|
414
430
|
</div>
|
|
415
431
|
<div>
|
|
416
|
-
<div className="font-medium
|
|
432
|
+
<div className="text-fm-icon-active font-medium">
|
|
417
433
|
SettingsIcon
|
|
418
434
|
</div>
|
|
419
|
-
<div className="text-
|
|
435
|
+
<div className="text-fm-tertiary text-xs">
|
|
420
436
|
Configuration
|
|
421
437
|
</div>
|
|
422
438
|
</div>
|
|
@@ -424,14 +440,14 @@ function CustomTrashIcon({ label = "Delete", ...props }) {
|
|
|
424
440
|
</div>
|
|
425
441
|
</div>
|
|
426
442
|
{/* Footer */}
|
|
427
|
-
<div className="border-
|
|
443
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary border-t backdrop-blur-xl">
|
|
428
444
|
<div className="!mx-auto max-w-7xl px-6 py-8">
|
|
429
445
|
<div className="!space-y-4 text-center">
|
|
430
|
-
<p className="
|
|
446
|
+
<p className="text-fm-tertiary!">
|
|
431
447
|
Spinner Solid icons are part of the Aural UI icon
|
|
432
448
|
library, optimized for accessibility and responsiveness.
|
|
433
449
|
</p>
|
|
434
|
-
<p className="text-
|
|
450
|
+
<p className="text-fm-placeholder! text-sm">
|
|
435
451
|
All icons use Radix UI's AccessibleIcon for screen
|
|
436
452
|
reader compatibility and follow WCAG guidelines.
|
|
437
453
|
</p>
|
|
@@ -456,8 +472,8 @@ const storyParameters = {
|
|
|
456
472
|
backgrounds: {
|
|
457
473
|
default: "dark",
|
|
458
474
|
values: [
|
|
459
|
-
{ name: "dark", value: "
|
|
460
|
-
{ name: "darker", value: "
|
|
475
|
+
{ name: "dark", value: "var(--color-fm-surface-primary)" },
|
|
476
|
+
{ name: "darker", value: "var(--color-fm-neutral-0)" },
|
|
461
477
|
],
|
|
462
478
|
},
|
|
463
479
|
}
|
|
@@ -466,11 +482,11 @@ export const Default: Story = {
|
|
|
466
482
|
args: {
|
|
467
483
|
width: 24,
|
|
468
484
|
height: 24,
|
|
469
|
-
className: "text-
|
|
485
|
+
className: "text-fm-icon-info",
|
|
470
486
|
},
|
|
471
487
|
parameters: storyParameters,
|
|
472
488
|
render: (args) => (
|
|
473
|
-
<div className="flex h-32 min-h-dvh items-center justify-center rounded-lg bg-
|
|
489
|
+
<div className="from-fm-surface-primary to-fm-surface-secondary flex h-32 min-h-dvh items-center justify-center rounded-lg bg-linear-to-br">
|
|
474
490
|
<SpinnerSolidIcon {...args} className="animate-spin" />
|
|
475
491
|
</div>
|
|
476
492
|
),
|
|
@@ -487,30 +503,30 @@ export const SizeVariations: Story = {
|
|
|
487
503
|
},
|
|
488
504
|
},
|
|
489
505
|
render: () => (
|
|
490
|
-
<div className="flex h-64 min-h-dvh items-center justify-center gap-8 rounded-lg bg-
|
|
506
|
+
<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">
|
|
491
507
|
<div className="text-center">
|
|
492
|
-
<SpinnerSolidIcon className="!mx-auto mb-2 h-3 w-3 animate-spin
|
|
493
|
-
<span className="text-
|
|
508
|
+
<SpinnerSolidIcon className="text-fm-icon-info !mx-auto mb-2 h-3 w-3 animate-spin" />
|
|
509
|
+
<span className="text-fm-tertiary text-xs">12px</span>
|
|
494
510
|
</div>
|
|
495
511
|
<div className="text-center">
|
|
496
|
-
<SpinnerSolidIcon className="!mx-auto mb-2 h-4 w-4 animate-spin
|
|
497
|
-
<span className="text-
|
|
512
|
+
<SpinnerSolidIcon className="text-fm-icon-info !mx-auto mb-2 h-4 w-4 animate-spin" />
|
|
513
|
+
<span className="text-fm-tertiary text-xs">16px</span>
|
|
498
514
|
</div>
|
|
499
515
|
<div className="text-center">
|
|
500
|
-
<SpinnerSolidIcon className="!mx-auto mb-2 h-5 w-5 animate-spin
|
|
501
|
-
<span className="text-
|
|
516
|
+
<SpinnerSolidIcon className="text-fm-icon-info !mx-auto mb-2 h-5 w-5 animate-spin" />
|
|
517
|
+
<span className="text-fm-tertiary text-xs">20px</span>
|
|
502
518
|
</div>
|
|
503
519
|
<div className="text-center">
|
|
504
|
-
<SpinnerSolidIcon className="!mx-auto mb-2 h-6 w-6 animate-spin
|
|
505
|
-
<span className="text-
|
|
520
|
+
<SpinnerSolidIcon className="text-fm-icon-info !mx-auto mb-2 h-6 w-6 animate-spin" />
|
|
521
|
+
<span className="text-fm-tertiary text-xs">24px</span>
|
|
506
522
|
</div>
|
|
507
523
|
<div className="text-center">
|
|
508
|
-
<SpinnerSolidIcon className="!mx-auto mb-2 h-8 w-8 animate-spin
|
|
509
|
-
<span className="text-
|
|
524
|
+
<SpinnerSolidIcon className="text-fm-icon-info !mx-auto mb-2 h-8 w-8 animate-spin" />
|
|
525
|
+
<span className="text-fm-tertiary text-xs">32px</span>
|
|
510
526
|
</div>
|
|
511
527
|
<div className="text-center">
|
|
512
|
-
<SpinnerSolidIcon className="!mx-auto mb-2 h-12 w-12 animate-spin
|
|
513
|
-
<span className="text-
|
|
528
|
+
<SpinnerSolidIcon className="text-fm-icon-info !mx-auto mb-2 h-12 w-12 animate-spin" />
|
|
529
|
+
<span className="text-fm-tertiary text-xs">48px</span>
|
|
514
530
|
</div>
|
|
515
531
|
</div>
|
|
516
532
|
),
|
|
@@ -527,34 +543,36 @@ export const ColorVariations: Story = {
|
|
|
527
543
|
},
|
|
528
544
|
},
|
|
529
545
|
render: () => (
|
|
530
|
-
<div className="grid min-h-dvh grid-cols-2 items-center justify-center gap-6 rounded-lg bg-
|
|
546
|
+
<div className="from-fm-surface-primary to-fm-surface-secondary grid min-h-dvh grid-cols-2 items-center justify-center gap-6 rounded-lg bg-linear-to-br p-8 md:grid-cols-4">
|
|
531
547
|
<div className="text-center">
|
|
532
|
-
<div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border
|
|
533
|
-
<SpinnerSolidIcon className="h-8 w-8 animate-spin
|
|
548
|
+
<div className="border-fm-icon-info/30 bg-fm-icon-info/20 !mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border">
|
|
549
|
+
<SpinnerSolidIcon className="text-fm-icon-info h-8 w-8 animate-spin" />
|
|
534
550
|
</div>
|
|
535
|
-
<div className="text-sm font-medium
|
|
536
|
-
<div className="text-
|
|
551
|
+
<div className="text-fm-icon-active text-sm font-medium">Primary</div>
|
|
552
|
+
<div className="text-fm-icon-info text-xs">text-fm-icon-info</div>
|
|
537
553
|
</div>
|
|
538
554
|
<div className="text-center">
|
|
539
|
-
<div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border
|
|
540
|
-
<SpinnerSolidIcon className="h-8 w-8 animate-spin
|
|
555
|
+
<div className="border-fm-secondary-500/30 bg-fm-secondary-500/20 !mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border">
|
|
556
|
+
<SpinnerSolidIcon className="text-fm-secondary-600 h-8 w-8 animate-spin" />
|
|
557
|
+
</div>
|
|
558
|
+
<div className="text-fm-icon-active text-sm font-medium">Secondary</div>
|
|
559
|
+
<div className="text-fm-secondary-600 text-xs">
|
|
560
|
+
text-fm-secondary-600
|
|
541
561
|
</div>
|
|
542
|
-
<div className="text-sm font-medium text-white">Secondary</div>
|
|
543
|
-
<div className="text-xs text-purple-400">text-purple-400</div>
|
|
544
562
|
</div>
|
|
545
563
|
<div className="text-center">
|
|
546
|
-
<div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border
|
|
547
|
-
<SpinnerSolidIcon className="h-8 w-8 animate-spin
|
|
564
|
+
<div className="border-fm-icon-info/30 bg-fm-icon-info/20 !mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border">
|
|
565
|
+
<SpinnerSolidIcon className="text-fm-icon-info h-8 w-8 animate-spin" />
|
|
548
566
|
</div>
|
|
549
|
-
<div className="text-sm font-medium
|
|
550
|
-
<div className="text-
|
|
567
|
+
<div className="text-fm-icon-active text-sm font-medium">Info</div>
|
|
568
|
+
<div className="text-fm-icon-info text-xs">text-fm-icon-info</div>
|
|
551
569
|
</div>
|
|
552
570
|
<div className="text-center">
|
|
553
|
-
<div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border
|
|
554
|
-
<SpinnerSolidIcon className="h-8 w-8 animate-spin
|
|
571
|
+
<div className="border-fm-divider-primary bg-fm-surface-tertiary/20 !mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border">
|
|
572
|
+
<SpinnerSolidIcon className="text-fm-placeholder h-8 w-8 animate-spin" />
|
|
555
573
|
</div>
|
|
556
|
-
<div className="text-sm font-medium
|
|
557
|
-
<div className="text-
|
|
574
|
+
<div className="text-fm-icon-active text-sm font-medium">Muted</div>
|
|
575
|
+
<div className="text-fm-placeholder text-xs">text-fm-placeholder</div>
|
|
558
576
|
</div>
|
|
559
577
|
</div>
|
|
560
578
|
),
|
|
@@ -571,16 +589,18 @@ export const UsageExamples: Story = {
|
|
|
571
589
|
},
|
|
572
590
|
},
|
|
573
591
|
render: () => (
|
|
574
|
-
<div className="min-h-dvh !space-y-8 rounded-lg bg-
|
|
592
|
+
<div className="from-fm-surface-primary to-fm-surface-secondary min-h-dvh !space-y-8 rounded-lg bg-linear-to-br p-8">
|
|
575
593
|
{/* Loading Button */}
|
|
576
594
|
<div className="!space-y-2">
|
|
577
|
-
<h3 className="text-sm font-medium
|
|
595
|
+
<h3 className="text-fm-icon-active text-sm font-medium">
|
|
596
|
+
Loading Button
|
|
597
|
+
</h3>
|
|
578
598
|
<div className="flex gap-4">
|
|
579
|
-
<button className="flex items-center gap-2 rounded-lg border
|
|
599
|
+
<button className="border-fm-icon-info/30 bg-fm-icon-info/20 text-fm-icon-info hover:bg-fm-icon-info/30 flex items-center gap-2 rounded-lg border px-4 py-2 transition-colors">
|
|
580
600
|
<SpinnerSolidIcon className="h-4 w-4 animate-spin" />
|
|
581
601
|
Loading...
|
|
582
602
|
</button>
|
|
583
|
-
<button className="flex h-10 w-10 items-center justify-center rounded-lg border
|
|
603
|
+
<button className="border-fm-icon-info/30 bg-fm-icon-info/20 text-fm-icon-info hover:bg-fm-icon-info/30 flex h-10 w-10 items-center justify-center rounded-lg border transition-colors">
|
|
584
604
|
<SpinnerSolidIcon className="h-5 w-5 animate-spin" />
|
|
585
605
|
</button>
|
|
586
606
|
</div>
|
|
@@ -588,28 +608,32 @@ export const UsageExamples: Story = {
|
|
|
588
608
|
|
|
589
609
|
{/* Loading State */}
|
|
590
610
|
<div className="!space-y-2">
|
|
591
|
-
<h3 className="text-sm font-medium
|
|
592
|
-
|
|
611
|
+
<h3 className="text-fm-icon-active text-sm font-medium">
|
|
612
|
+
Loading State
|
|
613
|
+
</h3>
|
|
614
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary flex h-32 items-center justify-center rounded-lg border">
|
|
593
615
|
<div className="text-center">
|
|
594
|
-
<SpinnerSolidIcon className="!mx-auto mb-4 h-12 w-12 animate-spin
|
|
595
|
-
<div className="text-
|
|
616
|
+
<SpinnerSolidIcon className="text-fm-icon-info !mx-auto mb-4 h-12 w-12 animate-spin" />
|
|
617
|
+
<div className="text-fm-tertiary text-sm">Loading content...</div>
|
|
596
618
|
</div>
|
|
597
619
|
</div>
|
|
598
620
|
</div>
|
|
599
621
|
|
|
600
622
|
{/* Form Loading */}
|
|
601
623
|
<div className="!space-y-2">
|
|
602
|
-
<h3 className="text-sm font-medium
|
|
603
|
-
|
|
624
|
+
<h3 className="text-fm-icon-active text-sm font-medium">
|
|
625
|
+
Form Loading
|
|
626
|
+
</h3>
|
|
627
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-4">
|
|
604
628
|
<div className="mb-4">
|
|
605
|
-
<label className="mb-2 block text-sm
|
|
629
|
+
<label className="text-fm-tertiary mb-2 block text-sm">Email</label>
|
|
606
630
|
<input
|
|
607
631
|
type="email"
|
|
608
|
-
className="w-full rounded-lg border
|
|
632
|
+
className="border-fm-divider-primary bg-fm-surface-secondary text-fm-icon-active w-full rounded-lg border px-4 py-2 placeholder-white/50"
|
|
609
633
|
placeholder="Enter your email"
|
|
610
634
|
/>
|
|
611
635
|
</div>
|
|
612
|
-
<button className="flex w-full items-center justify-center gap-2 rounded-lg
|
|
636
|
+
<button className="bg-fm-icon-info/20 text-fm-icon-info flex w-full items-center justify-center gap-2 rounded-lg px-4 py-2">
|
|
613
637
|
<SpinnerSolidIcon className="h-4 w-4 animate-spin" />
|
|
614
638
|
Submitting...
|
|
615
639
|
</button>
|
|
@@ -632,11 +656,11 @@ export const Playground: Story = {
|
|
|
632
656
|
args: {
|
|
633
657
|
width: 32,
|
|
634
658
|
height: 32,
|
|
635
|
-
className: "text-
|
|
659
|
+
className: "text-fm-icon-info",
|
|
636
660
|
},
|
|
637
661
|
render: (args) => (
|
|
638
|
-
<div className="flex h-64 min-h-dvh items-center justify-center rounded-lg bg-
|
|
639
|
-
<div className="rounded-lg border
|
|
662
|
+
<div className="from-fm-surface-primary to-fm-surface-secondary flex h-64 min-h-dvh items-center justify-center rounded-lg bg-linear-to-br">
|
|
663
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-8">
|
|
640
664
|
<SpinnerSolidIcon {...args} className="animate-spin" />
|
|
641
665
|
</div>
|
|
642
666
|
</div>
|