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
package/dist/icons/all-icons.tsx
CHANGED
|
@@ -25,8 +25,8 @@ const IconUsageModal: React.FC<{
|
|
|
25
25
|
function MyComponent() {
|
|
26
26
|
return (
|
|
27
27
|
<div className="flex items-center gap-2">
|
|
28
|
-
<${iconName} className="h-5 w-5
|
|
29
|
-
<span>Icon with text</span>
|
|
28
|
+
<${iconName} className="text-fm-primary h-5 w-5" />
|
|
29
|
+
<span className="text-fm-primary">Icon with text</span>
|
|
30
30
|
</div>
|
|
31
31
|
)
|
|
32
32
|
}`,
|
|
@@ -37,10 +37,10 @@ function MyComponent() {
|
|
|
37
37
|
|
|
38
38
|
function CustomIcon() {
|
|
39
39
|
return (
|
|
40
|
-
<${iconName}
|
|
41
|
-
width={32}
|
|
42
|
-
height={32}
|
|
43
|
-
className="text-
|
|
40
|
+
<${iconName}
|
|
41
|
+
width={32}
|
|
42
|
+
height={32}
|
|
43
|
+
className="text-fm-info"
|
|
44
44
|
/>
|
|
45
45
|
)
|
|
46
46
|
}`,
|
|
@@ -65,7 +65,7 @@ function IconButton() {
|
|
|
65
65
|
|
|
66
66
|
function InteractiveIcon() {
|
|
67
67
|
return (
|
|
68
|
-
<${iconName} className="h-6 w-6
|
|
68
|
+
<${iconName} className="text-fm-tertiary hover:text-fm-primary h-6 w-6 transition-colors" />
|
|
69
69
|
)
|
|
70
70
|
}`,
|
|
71
71
|
},
|
|
@@ -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 Info</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 Positive</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">Negative</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">Warning</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,17 @@ 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
|
|
222
|
-
|
|
233
|
+
<div
|
|
234
|
+
className="h-px flex-1"
|
|
235
|
+
style={{ background: "var(--gradient-fm-stroke-neutral)" }}
|
|
236
|
+
/>
|
|
237
|
+
<h2 className="border-fm-secondary-500/20 bg-fm-secondary-500/10 text-fm-secondary-800 rounded-full border px-4 py-2 text-lg font-semibold">
|
|
223
238
|
{category}
|
|
224
239
|
</h2>
|
|
225
|
-
<div
|
|
240
|
+
<div
|
|
241
|
+
className="h-px flex-1"
|
|
242
|
+
style={{ background: "var(--gradient-fm-stroke-neutral)" }}
|
|
243
|
+
/>
|
|
226
244
|
</div>
|
|
227
245
|
<div className="space-y-12">{children}</div>
|
|
228
246
|
</div>
|
|
@@ -253,9 +271,11 @@ const IconGrid: React.FC<IconGridProps> = ({
|
|
|
253
271
|
return (
|
|
254
272
|
<div className="space-y-6">
|
|
255
273
|
<div className="space-y-2">
|
|
256
|
-
<h3 className="text-2xl font-bold
|
|
274
|
+
<h3 className="text-fm-primary text-2xl font-bold">{title}</h3>
|
|
257
275
|
{description && (
|
|
258
|
-
<p className="text-sm leading-relaxed
|
|
276
|
+
<p className="text-fm-secondary text-sm leading-relaxed">
|
|
277
|
+
{description}
|
|
278
|
+
</p>
|
|
259
279
|
)}
|
|
260
280
|
</div>
|
|
261
281
|
<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 +283,32 @@ const IconGrid: React.FC<IconGridProps> = ({
|
|
|
263
283
|
<div
|
|
264
284
|
key={name}
|
|
265
285
|
onClick={() => onIconClick?.(name, IconComponent)}
|
|
266
|
-
className="group relative cursor-pointer overflow-hidden rounded-lg border
|
|
286
|
+
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
287
|
>
|
|
268
288
|
{/* Icon Display */}
|
|
269
|
-
<div className="flex h-24 items-center justify-center bg-
|
|
270
|
-
<IconComponent className="h-8 w-8
|
|
289
|
+
<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">
|
|
290
|
+
<IconComponent className="text-fm-primary group-hover:text-fm-info h-8 w-8 transition-all duration-200 group-hover:scale-110" />
|
|
271
291
|
</div>
|
|
272
292
|
|
|
273
293
|
{/* Icon Info */}
|
|
274
294
|
<div className="space-y-2 p-3">
|
|
275
|
-
<h4 className="truncate text-xs font-medium
|
|
295
|
+
<h4 className="text-fm-primary truncate text-xs font-medium">
|
|
276
296
|
{name}
|
|
277
297
|
</h4>
|
|
278
298
|
{category && (
|
|
279
|
-
<span className="inline-block rounded-full
|
|
299
|
+
<span className="bg-fm-secondary-500/20 text-fm-icon-brand-secondary inline-block rounded-full px-2 py-1 text-xs">
|
|
280
300
|
{category}
|
|
281
301
|
</span>
|
|
282
302
|
)}
|
|
283
303
|
</div>
|
|
284
304
|
|
|
285
305
|
{/* 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
|
|
306
|
+
<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">
|
|
307
|
+
<IconComponent className="text-fm-primary mb-2 h-8 w-8" />
|
|
308
|
+
<p className="text-fm-primary px-2 text-center text-xs font-medium">
|
|
289
309
|
{name}
|
|
290
310
|
</p>
|
|
291
|
-
<p className="mt-1 text-xs
|
|
311
|
+
<p className="text-fm-info mt-1 text-xs">Click for usage</p>
|
|
292
312
|
</div>
|
|
293
313
|
</div>
|
|
294
314
|
))}
|
|
@@ -378,6 +398,19 @@ export const Icons: React.FC = () => {
|
|
|
378
398
|
return "actions"
|
|
379
399
|
}
|
|
380
400
|
|
|
401
|
+
// Social platform icons
|
|
402
|
+
if (
|
|
403
|
+
name.includes("instagram") ||
|
|
404
|
+
name.includes("linkedin") ||
|
|
405
|
+
name.includes("twitter") ||
|
|
406
|
+
name.includes("threads") ||
|
|
407
|
+
name.includes("youtube") ||
|
|
408
|
+
name.includes("facebook") ||
|
|
409
|
+
name.includes("whatsapp")
|
|
410
|
+
) {
|
|
411
|
+
return "social"
|
|
412
|
+
}
|
|
413
|
+
|
|
381
414
|
// Interface icons
|
|
382
415
|
if (
|
|
383
416
|
name.includes("eye") ||
|
|
@@ -574,16 +607,18 @@ export const Icons: React.FC = () => {
|
|
|
574
607
|
const categoryCount = Object.keys(iconsByCategory).length
|
|
575
608
|
|
|
576
609
|
return (
|
|
577
|
-
<div className="
|
|
610
|
+
<div className="bg-fm-surface-primary min-h-screen">
|
|
578
611
|
{/* Header */}
|
|
579
|
-
<div className="relative overflow-hidden border-b
|
|
580
|
-
<div
|
|
612
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary/50 relative overflow-hidden border-b backdrop-blur-xl">
|
|
613
|
+
<div
|
|
614
|
+
aria-hidden="true"
|
|
615
|
+
className="absolute inset-0 opacity-70"
|
|
616
|
+
style={{ backgroundImage: "var(--gradient-fm-background)" }}
|
|
617
|
+
/>
|
|
581
618
|
<div className="relative mx-auto max-w-7xl px-6 py-16">
|
|
582
619
|
<div className="space-y-6 text-center">
|
|
583
|
-
<h1 className="
|
|
584
|
-
|
|
585
|
-
</h1>
|
|
586
|
-
<p className="mx-auto max-w-3xl text-xl leading-relaxed text-white/70">
|
|
620
|
+
<h1 className="text-fm-primary text-5xl font-bold">Icon Library</h1>
|
|
621
|
+
<p className="text-fm-secondary mx-auto max-w-3xl text-xl leading-relaxed">
|
|
587
622
|
A comprehensive collection of carefully crafted icons built with
|
|
588
623
|
accessibility in mind. Each icon is optimized for clarity and
|
|
589
624
|
consistency across your interface.
|
|
@@ -592,24 +627,24 @@ export const Icons: React.FC = () => {
|
|
|
592
627
|
{/* Stats */}
|
|
593
628
|
<div className="flex items-center justify-center gap-8 pt-8">
|
|
594
629
|
<div className="text-center">
|
|
595
|
-
<div className="text-3xl font-bold
|
|
630
|
+
<div className="text-fm-icon-brand-secondary text-3xl font-bold">
|
|
596
631
|
{totalIcons}
|
|
597
632
|
</div>
|
|
598
|
-
<div className="text-
|
|
633
|
+
<div className="text-fm-tertiary text-sm">Total icons</div>
|
|
599
634
|
</div>
|
|
600
|
-
<div className="h-8 w-px
|
|
635
|
+
<div className="bg-fm-divider-secondary h-8 w-px" />
|
|
601
636
|
<div className="text-center">
|
|
602
|
-
<div className="text-3xl font-bold
|
|
637
|
+
<div className="text-fm-info text-3xl font-bold">
|
|
603
638
|
{categoryCount}
|
|
604
639
|
</div>
|
|
605
|
-
<div className="text-
|
|
640
|
+
<div className="text-fm-tertiary text-sm">Categories</div>
|
|
606
641
|
</div>
|
|
607
|
-
<div className="h-8 w-px
|
|
642
|
+
<div className="bg-fm-divider-secondary h-8 w-px" />
|
|
608
643
|
<div className="text-center">
|
|
609
|
-
<div className="text-3xl font-bold
|
|
644
|
+
<div className="text-fm-positive text-3xl font-bold">
|
|
610
645
|
Accessible
|
|
611
646
|
</div>
|
|
612
|
-
<div className="text-
|
|
647
|
+
<div className="text-fm-tertiary text-sm">Radix UI</div>
|
|
613
648
|
</div>
|
|
614
649
|
</div>
|
|
615
650
|
</div>
|
|
@@ -617,7 +652,7 @@ export const Icons: React.FC = () => {
|
|
|
617
652
|
</div>
|
|
618
653
|
|
|
619
654
|
{/* Controls */}
|
|
620
|
-
<div className="sticky top-0 z-40 border-b
|
|
655
|
+
<div className="border-fm-divider-secondary bg-fm-surface-primary/80 sticky top-0 z-40 border-b backdrop-blur-xl">
|
|
621
656
|
<div className="mx-auto max-w-7xl px-6 py-4">
|
|
622
657
|
<div className="flex flex-col items-center justify-between gap-4 sm:flex-row">
|
|
623
658
|
<div className="flex flex-wrap gap-2">
|
|
@@ -627,8 +662,8 @@ export const Icons: React.FC = () => {
|
|
|
627
662
|
onClick={() => setSelectedCategory(category)}
|
|
628
663
|
className={`rounded-full px-4 py-2 text-sm font-medium transition-all duration-200 ${
|
|
629
664
|
selectedCategory === category
|
|
630
|
-
? "bg-
|
|
631
|
-
: "bg-
|
|
665
|
+
? "bg-fm-secondary-500 text-fm-primary shadow-fm-secondary-500/25 shadow-lg"
|
|
666
|
+
: "bg-fm-surface-secondary text-fm-secondary hover:bg-fm-surface-tertiary/30 hover:text-fm-primary"
|
|
632
667
|
}`}
|
|
633
668
|
>
|
|
634
669
|
{category.charAt(0).toUpperCase() + category.slice(1)}
|
|
@@ -642,13 +677,13 @@ export const Icons: React.FC = () => {
|
|
|
642
677
|
placeholder="Search icons..."
|
|
643
678
|
value={searchTerm}
|
|
644
679
|
onChange={(e) => setSearchTerm(e.target.value)}
|
|
645
|
-
className="
|
|
680
|
+
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
681
|
/>
|
|
647
|
-
<div className="absolute top-1/2 right-3 -translate-y-1/2
|
|
682
|
+
<div className="text-fm-tertiary absolute top-1/2 right-3 -translate-y-1/2">
|
|
648
683
|
{searchTerm ? (
|
|
649
684
|
<button
|
|
650
685
|
onClick={() => setSearchTerm("")}
|
|
651
|
-
className="hover:text-
|
|
686
|
+
className="hover:text-fm-primary"
|
|
652
687
|
>
|
|
653
688
|
<svg
|
|
654
689
|
className="h-4 w-4"
|
|
@@ -686,11 +721,11 @@ export const Icons: React.FC = () => {
|
|
|
686
721
|
{/* Search Results Indicator */}
|
|
687
722
|
{searchTerm && (
|
|
688
723
|
<div className="mt-4 text-center">
|
|
689
|
-
<p className="text-
|
|
724
|
+
<p className="text-fm-secondary text-sm">
|
|
690
725
|
{filteredIcons.length > 0 ? (
|
|
691
726
|
<>
|
|
692
727
|
Found{" "}
|
|
693
|
-
<span className="font-medium
|
|
728
|
+
<span className="text-fm-icon-brand-secondary font-medium">
|
|
694
729
|
{filteredIcons.length}
|
|
695
730
|
</span>{" "}
|
|
696
731
|
icons matching "{searchTerm}"
|
|
@@ -698,7 +733,7 @@ export const Icons: React.FC = () => {
|
|
|
698
733
|
) : (
|
|
699
734
|
<>
|
|
700
735
|
No icons found matching "
|
|
701
|
-
<span className="font-medium
|
|
736
|
+
<span className="text-fm-negative-sec font-medium">
|
|
702
737
|
{searchTerm}
|
|
703
738
|
</span>
|
|
704
739
|
"
|
|
@@ -717,14 +752,16 @@ export const Icons: React.FC = () => {
|
|
|
717
752
|
<div className="py-16 text-center">
|
|
718
753
|
<div className="mx-auto max-w-md space-y-4">
|
|
719
754
|
<div className="text-6xl">🔍</div>
|
|
720
|
-
<h3 className="text-xl font-medium
|
|
721
|
-
|
|
755
|
+
<h3 className="text-fm-primary text-xl font-medium">
|
|
756
|
+
No icons found
|
|
757
|
+
</h3>
|
|
758
|
+
<p className="text-fm-secondary">
|
|
722
759
|
Try searching for a different term or clear your search to see
|
|
723
760
|
all icons.
|
|
724
761
|
</p>
|
|
725
762
|
<button
|
|
726
763
|
onClick={() => setSearchTerm("")}
|
|
727
|
-
className="mt-4 rounded-full
|
|
764
|
+
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
765
|
>
|
|
729
766
|
Clear Search
|
|
730
767
|
</button>
|
|
@@ -784,14 +821,14 @@ export const Icons: React.FC = () => {
|
|
|
784
821
|
</div>
|
|
785
822
|
|
|
786
823
|
{/* Footer */}
|
|
787
|
-
<div className="border-
|
|
824
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary/50 border-t backdrop-blur-xl">
|
|
788
825
|
<div className="mx-auto max-w-7xl px-6 py-8">
|
|
789
826
|
<div className="space-y-4 text-center">
|
|
790
|
-
<p className="text-
|
|
827
|
+
<p className="text-fm-tertiary">
|
|
791
828
|
All icons are built with Radix UI's AccessibleIcon for screen
|
|
792
829
|
reader compatibility.
|
|
793
830
|
</p>
|
|
794
|
-
<p className="text-
|
|
831
|
+
<p className="text-fm-placeholder text-sm">
|
|
795
832
|
Click any icon to see usage examples and copy implementation code.
|
|
796
833
|
</p>
|
|
797
834
|
</div>
|