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
package/dist/icons/all-icons.tsx
CHANGED
|
@@ -37,9 +37,9 @@ function MyComponent() {
|
|
|
37
37
|
|
|
38
38
|
function CustomIcon() {
|
|
39
39
|
return (
|
|
40
|
-
<${iconName}
|
|
41
|
-
width={32}
|
|
42
|
-
height={32}
|
|
40
|
+
<${iconName}
|
|
41
|
+
width={32}
|
|
42
|
+
height={32}
|
|
43
43
|
className="text-blue-500"
|
|
44
44
|
/>
|
|
45
45
|
)
|
|
@@ -86,19 +86,19 @@ function InteractiveIcon() {
|
|
|
86
86
|
<DialogContent
|
|
87
87
|
classes={{
|
|
88
88
|
content: "max-w-4xl",
|
|
89
|
-
root: "bg-
|
|
89
|
+
root: "bg-fm-surface-secondary text-fm-primary",
|
|
90
90
|
}}
|
|
91
91
|
>
|
|
92
|
-
<DialogHeader className="border-
|
|
92
|
+
<DialogHeader className="border-fm-divider-secondary border-b pb-4">
|
|
93
93
|
<div className="flex items-center gap-4">
|
|
94
|
-
<div className="rounded-lg
|
|
95
|
-
<IconComponent className="h-8 w-8
|
|
94
|
+
<div className="bg-fm-surface-tertiary/20 rounded-lg p-3">
|
|
95
|
+
<IconComponent className="text-fm-primary h-8 w-8" />
|
|
96
96
|
</div>
|
|
97
97
|
<div>
|
|
98
|
-
<DialogTitle className="text-xl font-semibold
|
|
98
|
+
<DialogTitle className="text-fm-primary text-xl font-semibold">
|
|
99
99
|
{iconName}
|
|
100
100
|
</DialogTitle>
|
|
101
|
-
<p className="text-
|
|
101
|
+
<p className="text-fm-tertiary text-sm">
|
|
102
102
|
Usage examples and implementation
|
|
103
103
|
</p>
|
|
104
104
|
</div>
|
|
@@ -109,11 +109,11 @@ function InteractiveIcon() {
|
|
|
109
109
|
{/* Usage Examples */}
|
|
110
110
|
{usageExamples.map((example, index) => (
|
|
111
111
|
<div key={index} className="space-y-3">
|
|
112
|
-
<h3 className="text-lg font-medium
|
|
112
|
+
<h3 className="text-fm-primary text-lg font-medium">
|
|
113
113
|
{example.title}
|
|
114
114
|
</h3>
|
|
115
115
|
<div className="relative">
|
|
116
|
-
<pre className="overflow-x-auto rounded-lg border
|
|
116
|
+
<pre className="border-fm-divider-secondary bg-fm-surface-secondary text-fm-secondary overflow-x-auto rounded-lg border p-4 text-sm">
|
|
117
117
|
<code>{example.code}</code>
|
|
118
118
|
</pre>
|
|
119
119
|
<Button
|
|
@@ -129,75 +129,87 @@ function InteractiveIcon() {
|
|
|
129
129
|
))}
|
|
130
130
|
|
|
131
131
|
{/* Live Preview */}
|
|
132
|
-
<div className="rounded-lg border
|
|
133
|
-
<h3 className="mb-4 text-lg font-medium
|
|
132
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
|
|
133
|
+
<h3 className="text-fm-primary mb-4 text-lg font-medium">
|
|
134
134
|
Live Preview
|
|
135
135
|
</h3>
|
|
136
136
|
<div className="flex flex-wrap items-center gap-6">
|
|
137
137
|
<div className="text-center">
|
|
138
|
-
<IconComponent className="mb-2 h-6 w-6
|
|
139
|
-
<span className="text-
|
|
138
|
+
<IconComponent className="text-fm-primary mb-2 h-6 w-6" />
|
|
139
|
+
<span className="text-fm-tertiary text-xs">Default</span>
|
|
140
140
|
</div>
|
|
141
141
|
<div className="text-center">
|
|
142
|
-
<IconComponent className="mb-2 h-8 w-8
|
|
143
|
-
<span className="text-
|
|
142
|
+
<IconComponent className="text-fm-info mb-2 h-8 w-8" />
|
|
143
|
+
<span className="text-fm-tertiary text-xs">Large Blue</span>
|
|
144
144
|
</div>
|
|
145
145
|
<div className="text-center">
|
|
146
|
-
<IconComponent className="mb-2 h-4 w-4
|
|
147
|
-
<span className="text-
|
|
146
|
+
<IconComponent className="text-fm-positive mb-2 h-4 w-4" />
|
|
147
|
+
<span className="text-fm-tertiary text-xs">Small Green</span>
|
|
148
148
|
</div>
|
|
149
149
|
<div className="text-center">
|
|
150
|
-
<IconComponent className="mb-2 h-6 w-6
|
|
151
|
-
<span className="text-
|
|
150
|
+
<IconComponent className="text-fm-negative mb-2 h-6 w-6" />
|
|
151
|
+
<span className="text-fm-tertiary text-xs">Red</span>
|
|
152
152
|
</div>
|
|
153
153
|
<div className="text-center">
|
|
154
|
-
<IconComponent className="mb-2 h-6 w-6
|
|
155
|
-
<span className="text-
|
|
154
|
+
<IconComponent className="text-fm-warning mb-2 h-6 w-6" />
|
|
155
|
+
<span className="text-fm-tertiary text-xs">Yellow</span>
|
|
156
156
|
</div>
|
|
157
157
|
</div>
|
|
158
158
|
</div>
|
|
159
159
|
|
|
160
160
|
{/* Icon Properties */}
|
|
161
|
-
<div className="rounded-lg border
|
|
162
|
-
<h3 className="mb-4 text-lg font-medium
|
|
161
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
|
|
162
|
+
<h3 className="text-fm-primary mb-4 text-lg font-medium">
|
|
163
163
|
Icon Properties
|
|
164
164
|
</h3>
|
|
165
165
|
<div className="grid grid-cols-1 gap-4 md:grid-cols-2">
|
|
166
166
|
<div className="space-y-2">
|
|
167
|
-
<h4 className="text-sm font-medium
|
|
167
|
+
<h4 className="text-fm-secondary text-sm font-medium">
|
|
168
168
|
Common Props
|
|
169
169
|
</h4>
|
|
170
|
-
<ul className="space-y-1 text-sm
|
|
170
|
+
<ul className="text-fm-tertiary space-y-1 text-sm">
|
|
171
171
|
<li>
|
|
172
|
-
<code className="
|
|
172
|
+
<code className="bg-fm-surface-tertiary/40 rounded px-1">
|
|
173
|
+
className
|
|
174
|
+
</code>{" "}
|
|
173
175
|
- CSS classes
|
|
174
176
|
</li>
|
|
175
177
|
<li>
|
|
176
|
-
<code className="
|
|
177
|
-
|
|
178
|
+
<code className="bg-fm-surface-tertiary/40 rounded px-1">
|
|
179
|
+
width
|
|
180
|
+
</code>{" "}
|
|
181
|
+
- Icon width
|
|
178
182
|
</li>
|
|
179
183
|
<li>
|
|
180
|
-
<code className="
|
|
181
|
-
|
|
184
|
+
<code className="bg-fm-surface-tertiary/40 rounded px-1">
|
|
185
|
+
height
|
|
186
|
+
</code>{" "}
|
|
187
|
+
- Icon height
|
|
182
188
|
</li>
|
|
183
189
|
</ul>
|
|
184
190
|
</div>
|
|
185
191
|
<div className="space-y-2">
|
|
186
|
-
<h4 className="text-sm font-medium
|
|
187
|
-
|
|
192
|
+
<h4 className="text-fm-secondary text-sm font-medium">
|
|
193
|
+
SVG Props
|
|
194
|
+
</h4>
|
|
195
|
+
<ul className="text-fm-tertiary space-y-1 text-sm">
|
|
188
196
|
<li>
|
|
189
|
-
<code className="
|
|
190
|
-
|
|
197
|
+
<code className="bg-fm-surface-tertiary/40 rounded px-1">
|
|
198
|
+
stroke
|
|
199
|
+
</code>{" "}
|
|
200
|
+
- Stroke color
|
|
191
201
|
</li>
|
|
192
202
|
<li>
|
|
193
|
-
<code className="
|
|
203
|
+
<code className="bg-fm-surface-tertiary/40 rounded px-1">
|
|
194
204
|
strokeWidth
|
|
195
205
|
</code>{" "}
|
|
196
206
|
- Stroke width
|
|
197
207
|
</li>
|
|
198
208
|
<li>
|
|
199
|
-
<code className="
|
|
200
|
-
|
|
209
|
+
<code className="bg-fm-surface-tertiary/40 rounded px-1">
|
|
210
|
+
fill
|
|
211
|
+
</code>{" "}
|
|
212
|
+
- Fill color
|
|
201
213
|
</li>
|
|
202
214
|
</ul>
|
|
203
215
|
</div>
|
|
@@ -218,11 +230,11 @@ const IconCategory: React.FC<IconCategoryProps> = ({ category, children }) => {
|
|
|
218
230
|
return (
|
|
219
231
|
<div className="space-y-8">
|
|
220
232
|
<div className="flex items-center gap-4">
|
|
221
|
-
<div className="h-px flex-1 bg-
|
|
222
|
-
<h2 className="
|
|
233
|
+
<div className="from-fm-secondary-500/50 h-px flex-1 bg-linear-to-r to-transparent" />
|
|
234
|
+
<h2 className="border-fm-secondary-500/20 bg-fm-secondary-500/10 text-fm-icon-brand-secondary rounded-full border px-4 py-2 text-lg font-semibold">
|
|
223
235
|
{category}
|
|
224
236
|
</h2>
|
|
225
|
-
<div className="h-px flex-1 bg-
|
|
237
|
+
<div className="to-fm-secondary-500/50 h-px flex-1 bg-linear-to-l from-transparent" />
|
|
226
238
|
</div>
|
|
227
239
|
<div className="space-y-12">{children}</div>
|
|
228
240
|
</div>
|
|
@@ -253,9 +265,11 @@ const IconGrid: React.FC<IconGridProps> = ({
|
|
|
253
265
|
return (
|
|
254
266
|
<div className="space-y-6">
|
|
255
267
|
<div className="space-y-2">
|
|
256
|
-
<h3 className="text-2xl font-bold
|
|
268
|
+
<h3 className="text-fm-primary text-2xl font-bold">{title}</h3>
|
|
257
269
|
{description && (
|
|
258
|
-
<p className="text-sm leading-relaxed
|
|
270
|
+
<p className="text-fm-secondary text-sm leading-relaxed">
|
|
271
|
+
{description}
|
|
272
|
+
</p>
|
|
259
273
|
)}
|
|
260
274
|
</div>
|
|
261
275
|
<div className="grid grid-cols-2 gap-4 sm:grid-cols-3 md:grid-cols-4 lg:grid-cols-6 xl:grid-cols-8">
|
|
@@ -263,32 +277,32 @@ const IconGrid: React.FC<IconGridProps> = ({
|
|
|
263
277
|
<div
|
|
264
278
|
key={name}
|
|
265
279
|
onClick={() => onIconClick?.(name, IconComponent)}
|
|
266
|
-
className="group relative cursor-pointer overflow-hidden rounded-lg border
|
|
280
|
+
className="border-fm-divider-secondary bg-fm-surface-secondary hover:border-fm-divider-primary group hover:bg-fm-surface-tertiary/20 relative cursor-pointer overflow-hidden rounded-lg border transition-all duration-200 hover:scale-105"
|
|
267
281
|
>
|
|
268
282
|
{/* Icon Display */}
|
|
269
|
-
<div className="flex h-24 items-center justify-center bg-
|
|
270
|
-
<IconComponent className="h-8 w-8
|
|
283
|
+
<div className="from-fm-surface-secondary/50 to-fm-surface-tertiary/20 group-hover:from-fm-surface-secondary group-hover:to-fm-surface-tertiary/40 flex h-24 items-center justify-center bg-linear-to-br transition-all duration-200">
|
|
284
|
+
<IconComponent className="text-fm-primary group-hover:text-fm-info h-8 w-8 transition-all duration-200 group-hover:scale-110" />
|
|
271
285
|
</div>
|
|
272
286
|
|
|
273
287
|
{/* Icon Info */}
|
|
274
288
|
<div className="space-y-2 p-3">
|
|
275
|
-
<h4 className="truncate text-xs font-medium
|
|
289
|
+
<h4 className="text-fm-primary truncate text-xs font-medium">
|
|
276
290
|
{name}
|
|
277
291
|
</h4>
|
|
278
292
|
{category && (
|
|
279
|
-
<span className="inline-block rounded-full
|
|
293
|
+
<span className="bg-fm-secondary-500/20 text-fm-icon-brand-secondary inline-block rounded-full px-2 py-1 text-xs">
|
|
280
294
|
{category}
|
|
281
295
|
</span>
|
|
282
296
|
)}
|
|
283
297
|
</div>
|
|
284
298
|
|
|
285
299
|
{/* Hover overlay */}
|
|
286
|
-
<div className="absolute inset-0 flex flex-col items-center justify-center
|
|
287
|
-
<IconComponent className="mb-2 h-8 w-8
|
|
288
|
-
<p className="px-2 text-center text-xs font-medium
|
|
300
|
+
<div className="bg-fm-surface-secondary/80 absolute inset-0 flex flex-col items-center justify-center opacity-0 backdrop-blur-sm transition-opacity duration-200 group-hover:opacity-100">
|
|
301
|
+
<IconComponent className="text-fm-primary mb-2 h-8 w-8" />
|
|
302
|
+
<p className="text-fm-primary px-2 text-center text-xs font-medium">
|
|
289
303
|
{name}
|
|
290
304
|
</p>
|
|
291
|
-
<p className="mt-1 text-xs
|
|
305
|
+
<p className="text-fm-info mt-1 text-xs">Click for usage</p>
|
|
292
306
|
</div>
|
|
293
307
|
</div>
|
|
294
308
|
))}
|
|
@@ -574,16 +588,16 @@ export const Icons: React.FC = () => {
|
|
|
574
588
|
const categoryCount = Object.keys(iconsByCategory).length
|
|
575
589
|
|
|
576
590
|
return (
|
|
577
|
-
<div className="
|
|
591
|
+
<div className="bg-fm-surface-primary min-h-screen">
|
|
578
592
|
{/* Header */}
|
|
579
|
-
<div className="relative overflow-hidden border-b
|
|
580
|
-
<div className="absolute inset-0 bg-
|
|
593
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary/50 relative overflow-hidden border-b backdrop-blur-xl">
|
|
594
|
+
<div className="from-fm-secondary-500/10 to-fm-info/10 absolute inset-0 bg-linear-to-r via-transparent" />
|
|
581
595
|
<div className="relative mx-auto max-w-7xl px-6 py-16">
|
|
582
596
|
<div className="space-y-6 text-center">
|
|
583
|
-
<h1 className="
|
|
597
|
+
<h1 className="from-fm-primary via-fm-icon-brand-secondary to-fm-primary bg-linear-to-r bg-clip-text text-5xl font-bold text-transparent">
|
|
584
598
|
Icon Library
|
|
585
599
|
</h1>
|
|
586
|
-
<p className="mx-auto max-w-3xl text-xl leading-relaxed
|
|
600
|
+
<p className="text-fm-secondary mx-auto max-w-3xl text-xl leading-relaxed">
|
|
587
601
|
A comprehensive collection of carefully crafted icons built with
|
|
588
602
|
accessibility in mind. Each icon is optimized for clarity and
|
|
589
603
|
consistency across your interface.
|
|
@@ -592,24 +606,24 @@ export const Icons: React.FC = () => {
|
|
|
592
606
|
{/* Stats */}
|
|
593
607
|
<div className="flex items-center justify-center gap-8 pt-8">
|
|
594
608
|
<div className="text-center">
|
|
595
|
-
<div className="text-3xl font-bold
|
|
609
|
+
<div className="text-fm-icon-brand-secondary text-3xl font-bold">
|
|
596
610
|
{totalIcons}
|
|
597
611
|
</div>
|
|
598
|
-
<div className="text-
|
|
612
|
+
<div className="text-fm-tertiary text-sm">Total icons</div>
|
|
599
613
|
</div>
|
|
600
|
-
<div className="h-8 w-px
|
|
614
|
+
<div className="bg-fm-divider-secondary h-8 w-px" />
|
|
601
615
|
<div className="text-center">
|
|
602
|
-
<div className="text-3xl font-bold
|
|
616
|
+
<div className="text-fm-info text-3xl font-bold">
|
|
603
617
|
{categoryCount}
|
|
604
618
|
</div>
|
|
605
|
-
<div className="text-
|
|
619
|
+
<div className="text-fm-tertiary text-sm">Categories</div>
|
|
606
620
|
</div>
|
|
607
|
-
<div className="h-8 w-px
|
|
621
|
+
<div className="bg-fm-divider-secondary h-8 w-px" />
|
|
608
622
|
<div className="text-center">
|
|
609
|
-
<div className="text-3xl font-bold
|
|
623
|
+
<div className="text-fm-positive text-3xl font-bold">
|
|
610
624
|
Accessible
|
|
611
625
|
</div>
|
|
612
|
-
<div className="text-
|
|
626
|
+
<div className="text-fm-tertiary text-sm">Radix UI</div>
|
|
613
627
|
</div>
|
|
614
628
|
</div>
|
|
615
629
|
</div>
|
|
@@ -617,7 +631,7 @@ export const Icons: React.FC = () => {
|
|
|
617
631
|
</div>
|
|
618
632
|
|
|
619
633
|
{/* Controls */}
|
|
620
|
-
<div className="sticky top-0 z-40 border-b
|
|
634
|
+
<div className="border-fm-divider-secondary bg-fm-surface-primary/80 sticky top-0 z-40 border-b backdrop-blur-xl">
|
|
621
635
|
<div className="mx-auto max-w-7xl px-6 py-4">
|
|
622
636
|
<div className="flex flex-col items-center justify-between gap-4 sm:flex-row">
|
|
623
637
|
<div className="flex flex-wrap gap-2">
|
|
@@ -627,8 +641,8 @@ export const Icons: React.FC = () => {
|
|
|
627
641
|
onClick={() => setSelectedCategory(category)}
|
|
628
642
|
className={`rounded-full px-4 py-2 text-sm font-medium transition-all duration-200 ${
|
|
629
643
|
selectedCategory === category
|
|
630
|
-
? "bg-
|
|
631
|
-
: "bg-
|
|
644
|
+
? "bg-fm-secondary-500 text-fm-primary shadow-fm-secondary-500/25 shadow-lg"
|
|
645
|
+
: "bg-fm-surface-secondary text-fm-secondary hover:bg-fm-surface-tertiary/30 hover:text-fm-primary"
|
|
632
646
|
}`}
|
|
633
647
|
>
|
|
634
648
|
{category.charAt(0).toUpperCase() + category.slice(1)}
|
|
@@ -642,13 +656,13 @@ export const Icons: React.FC = () => {
|
|
|
642
656
|
placeholder="Search icons..."
|
|
643
657
|
value={searchTerm}
|
|
644
658
|
onChange={(e) => setSearchTerm(e.target.value)}
|
|
645
|
-
className="
|
|
659
|
+
className="border-fm-divider-secondary bg-fm-surface-secondary text-fm-primary focus:border-fm-secondary-500/50 focus:ring-fm-secondary-500/50 placeholder:text-fm-placeholder w-64 rounded-lg border py-2 pr-10 pl-4 focus:ring-2 focus:outline-none"
|
|
646
660
|
/>
|
|
647
|
-
<div className="absolute top-1/2 right-3 -translate-y-1/2
|
|
661
|
+
<div className="text-fm-tertiary absolute top-1/2 right-3 -translate-y-1/2">
|
|
648
662
|
{searchTerm ? (
|
|
649
663
|
<button
|
|
650
664
|
onClick={() => setSearchTerm("")}
|
|
651
|
-
className="hover:text-
|
|
665
|
+
className="hover:text-fm-primary"
|
|
652
666
|
>
|
|
653
667
|
<svg
|
|
654
668
|
className="h-4 w-4"
|
|
@@ -686,11 +700,11 @@ export const Icons: React.FC = () => {
|
|
|
686
700
|
{/* Search Results Indicator */}
|
|
687
701
|
{searchTerm && (
|
|
688
702
|
<div className="mt-4 text-center">
|
|
689
|
-
<p className="text-
|
|
703
|
+
<p className="text-fm-secondary text-sm">
|
|
690
704
|
{filteredIcons.length > 0 ? (
|
|
691
705
|
<>
|
|
692
706
|
Found{" "}
|
|
693
|
-
<span className="font-medium
|
|
707
|
+
<span className="text-fm-icon-brand-secondary font-medium">
|
|
694
708
|
{filteredIcons.length}
|
|
695
709
|
</span>{" "}
|
|
696
710
|
icons matching "{searchTerm}"
|
|
@@ -698,7 +712,7 @@ export const Icons: React.FC = () => {
|
|
|
698
712
|
) : (
|
|
699
713
|
<>
|
|
700
714
|
No icons found matching "
|
|
701
|
-
<span className="font-medium
|
|
715
|
+
<span className="text-fm-negative font-medium">
|
|
702
716
|
{searchTerm}
|
|
703
717
|
</span>
|
|
704
718
|
"
|
|
@@ -717,14 +731,16 @@ export const Icons: React.FC = () => {
|
|
|
717
731
|
<div className="py-16 text-center">
|
|
718
732
|
<div className="mx-auto max-w-md space-y-4">
|
|
719
733
|
<div className="text-6xl">🔍</div>
|
|
720
|
-
<h3 className="text-xl font-medium
|
|
721
|
-
|
|
734
|
+
<h3 className="text-fm-primary text-xl font-medium">
|
|
735
|
+
No icons found
|
|
736
|
+
</h3>
|
|
737
|
+
<p className="text-fm-secondary">
|
|
722
738
|
Try searching for a different term or clear your search to see
|
|
723
739
|
all icons.
|
|
724
740
|
</p>
|
|
725
741
|
<button
|
|
726
742
|
onClick={() => setSearchTerm("")}
|
|
727
|
-
className="mt-4 rounded-full
|
|
743
|
+
className="bg-fm-secondary-500 text-fm-primary hover:bg-fm-secondary-600 mt-4 rounded-full px-6 py-2 text-sm font-medium transition-colors"
|
|
728
744
|
>
|
|
729
745
|
Clear Search
|
|
730
746
|
</button>
|
|
@@ -784,14 +800,14 @@ export const Icons: React.FC = () => {
|
|
|
784
800
|
</div>
|
|
785
801
|
|
|
786
802
|
{/* Footer */}
|
|
787
|
-
<div className="border-
|
|
803
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary/50 border-t backdrop-blur-xl">
|
|
788
804
|
<div className="mx-auto max-w-7xl px-6 py-8">
|
|
789
805
|
<div className="space-y-4 text-center">
|
|
790
|
-
<p className="text-
|
|
806
|
+
<p className="text-fm-tertiary">
|
|
791
807
|
All icons are built with Radix UI's AccessibleIcon for screen
|
|
792
808
|
reader compatibility.
|
|
793
809
|
</p>
|
|
794
|
-
<p className="text-
|
|
810
|
+
<p className="text-fm-placeholder text-sm">
|
|
795
811
|
Click any icon to see usage examples and copy implementation code.
|
|
796
812
|
</p>
|
|
797
813
|
</div>
|