aural-ui 3.0.6 → 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.
Files changed (169) hide show
  1. package/dist/components/aspect-ratio/AspectRatio.stories.tsx +271 -242
  2. package/dist/components/avatar/Avatar.stories.tsx +84 -70
  3. package/dist/components/button/Button.stories.tsx +7 -7
  4. package/dist/components/button/index.tsx +7 -7
  5. package/dist/components/card/Card.stories.tsx +3 -3
  6. package/dist/components/char-count/CharCount.stories.tsx +9 -9
  7. package/dist/components/circular-loader/CircularLoader.stories.tsx +109 -93
  8. package/dist/components/clamp-lines/ClampLines.stories.tsx +25 -0
  9. package/dist/components/clamp-lines/index.tsx +6 -1
  10. package/dist/components/collapsible/Collapsible.stories.tsx +1 -1
  11. package/dist/components/command/Command.stories.tsx +52 -38
  12. package/dist/components/dialog/Dialog.stories.tsx +89 -84
  13. package/dist/components/divider/Divider.stories.tsx +86 -60
  14. package/dist/components/dot-loader/DotLoader.stories.tsx +12 -12
  15. package/dist/components/drawer/Drawer.stories.tsx +74 -44
  16. package/dist/components/drawer/index.tsx +3 -3
  17. package/dist/components/dropdown/Dropdown.stories.tsx +42 -32
  18. package/dist/components/helper-text/HelperText.stories.tsx +2 -2
  19. package/dist/components/hover-card/HoverCard.stories.tsx +211 -178
  20. package/dist/components/input/Input.stories.tsx +2 -2
  21. package/dist/components/input/index.tsx +2 -0
  22. package/dist/components/label/Label.stories.tsx +10 -10
  23. package/dist/components/list/List.stories.tsx +58 -44
  24. package/dist/components/marquee/Marquee.stories.tsx +131 -113
  25. package/dist/components/otp-inputs/OtpInputs.stories.tsx +47 -35
  26. package/dist/components/overlay/Overlay.stories.tsx +98 -92
  27. package/dist/components/overlay/index.tsx +4 -4
  28. package/dist/components/popover/Popover.stories.tsx +132 -106
  29. package/dist/components/radio/Radio.stories.tsx +2 -2
  30. package/dist/components/resizable/Resizable.stories.tsx +186 -138
  31. package/dist/components/scroll-area/ScrollArea.stories.tsx +174 -120
  32. package/dist/components/search/Search.stories.tsx +81 -59
  33. package/dist/components/select/Select.stories.tsx +3 -1
  34. package/dist/components/sheet/Sheet.stories.tsx +68 -54
  35. package/dist/components/slider/Slider.stories.tsx +71 -47
  36. package/dist/components/stepper/Stepper.stories.tsx +16 -16
  37. package/dist/components/switch/Switch.stories.tsx +12 -12
  38. package/dist/components/table/Table.stories.tsx +8 -6
  39. package/dist/components/tabs/Tabs.stories.tsx +324 -268
  40. package/dist/components/textarea/TextArea.stories.tsx +1 -1
  41. package/dist/components/thumbnail-tags/ThumbnailTags.stories.tsx +16 -10
  42. package/dist/components/toast/Toast.stories.tsx +51 -45
  43. package/dist/components/toggle/Toggle.stories.tsx +111 -89
  44. package/dist/components/tooltip/Tooltip.stories.tsx +160 -144
  45. package/dist/icons/Icons.stories.tsx +2 -2
  46. package/dist/icons/ai-avatar-icon/AiAvatarIcon.stories.tsx +287 -237
  47. package/dist/icons/alert-icon/AlertIcon.stories.tsx +290 -248
  48. package/dist/icons/all-icons.tsx +97 -81
  49. package/dist/icons/angle-down-icon/AngleDownIcon.stories.tsx +312 -270
  50. package/dist/icons/apple-logo-icon/AppleLogoIcon.stories.tsx +294 -244
  51. package/dist/icons/arrow-box-left-icon/ArrowBoxLeftIcon.stories.tsx +309 -279
  52. package/dist/icons/arrow-corner-up-left-icon/ArrowCornerUpLeftIcon.stories.tsx +294 -258
  53. package/dist/icons/arrow-corner-up-right-icon/ArrowCornerUpRightIcon.stories.tsx +289 -255
  54. package/dist/icons/arrow-left-icon/ArrowLeftIcon.stories.tsx +288 -256
  55. package/dist/icons/arrow-right-icon/ArrowRightIcon.stories.tsx +322 -288
  56. package/dist/icons/arrow-right-up-icon/ArrowRightUpIcon.stories.tsx +340 -296
  57. package/dist/icons/art-board-icon/ArtBoardIcon.stories.tsx +197 -177
  58. package/dist/icons/audio-bar-icon/AudioBarIcon.stories.tsx +390 -328
  59. package/dist/icons/backward-ten-seconds-icon/BackwardTenSecondsIcon.stories.tsx +313 -277
  60. package/dist/icons/bubble-check-icon/BubbleCheckIcon.stories.tsx +367 -309
  61. package/dist/icons/bubble-crossed-icon/BubbleCrossedIcon.stories.tsx +356 -308
  62. package/dist/icons/bubble-sparkle-icon/BubbleSparkleIcon.stories.tsx +280 -234
  63. package/dist/icons/camera-icon/CameraIcon.stories.tsx +370 -326
  64. package/dist/icons/capital-a-letter-icon/CapitalALetterIcon.stories.tsx +300 -256
  65. package/dist/icons/chevron-double-left-icon/ChevronDoubleLeftIcon.stories.tsx +298 -262
  66. package/dist/icons/chevron-double-right-icon/ChevronDoubleRightIcon.stories.tsx +294 -260
  67. package/dist/icons/chevron-down-icon/ChevronDownIcon.stories.tsx +291 -259
  68. package/dist/icons/chevron-left-icon/ChevronLeftIcon.stories.tsx +286 -256
  69. package/dist/icons/chevron-right-icon/ChevronRightIcon.stories.tsx +282 -256
  70. package/dist/icons/chevron-up-icon/ChevronUpIcon.stories.tsx +292 -256
  71. package/dist/icons/circle-tick-icon/CircleTickIcon.stories.tsx +338 -290
  72. package/dist/icons/circular-play-icon/CircularPlayIcon.stories.tsx +167 -148
  73. package/dist/icons/coin-icon/CoinIcon.stories.tsx +342 -296
  74. package/dist/icons/coin-toons-icon/CoinToonsIcon.stories.tsx +342 -296
  75. package/dist/icons/column-wide-add-icon/ColumnWideAddIcon.stories.tsx +280 -238
  76. package/dist/icons/command-icon/CommandIcon.stories.tsx +328 -280
  77. package/dist/icons/copy-icon/CopyIcon.stories.tsx +294 -256
  78. package/dist/icons/cross-circle-icon/CrossCircleIcon.stories.tsx +285 -235
  79. package/dist/icons/cross-icon/CrossIcon.stories.tsx +308 -266
  80. package/dist/icons/download-icon/DownloadIcon.stories.tsx +271 -231
  81. package/dist/icons/edit-big-icon/EditBigIcon.stories.tsx +330 -278
  82. package/dist/icons/email-icon/EmailIcon.stories.tsx +303 -257
  83. package/dist/icons/expand-icon/ExpandIcon.stories.tsx +324 -286
  84. package/dist/icons/eye-close-icon/EyeCloseIcon.stories.tsx +317 -271
  85. package/dist/icons/eye-open-icon/EyeOpenIcon.stories.tsx +320 -272
  86. package/dist/icons/feature-shine-icon/FeatureShineIcon.stories.tsx +322 -280
  87. package/dist/icons/file-chart-icon/FileChartIcon.stories.tsx +315 -277
  88. package/dist/icons/file-text-icon/FileTextIcon.stories.tsx +199 -177
  89. package/dist/icons/filter-bar-row-icon/FilterBarRowIcon.stories.tsx +304 -264
  90. package/dist/icons/forward-ten-seconds-icon/ForwardTenSecondsIcon.stories.tsx +311 -277
  91. package/dist/icons/git-branch-icon/GitBranchIcon.stories.tsx +327 -287
  92. package/dist/icons/git-fork-icon/GitForkIcon.stories.tsx +314 -278
  93. package/dist/icons/globe-icon/GlobeIcon.stories.tsx +113 -98
  94. package/dist/icons/google-logo-icon/GoogleLogoIcon.stories.tsx +274 -226
  95. package/dist/icons/grip-vertical-icon/GripVerticalIcon.stories.tsx +349 -303
  96. package/dist/icons/head-icon/HeadIcon.stories.tsx +286 -246
  97. package/dist/icons/heart-icon/HeartIcon.stories.tsx +312 -268
  98. package/dist/icons/image-avatar-sparkle-icon/ImageAvatarSparkleIcon.stories.tsx +246 -210
  99. package/dist/icons/image-icon/ImageIcon.stories.tsx +330 -284
  100. package/dist/icons/import-folder-icon/ImportFolderIcon.stories.tsx +326 -282
  101. package/dist/icons/import-left-arrow-folder-icon/ImportLeftArrowFolderIcon.stories.tsx +330 -294
  102. package/dist/icons/indian-flag-icon/IndianFlagIcon.stories.tsx +288 -234
  103. package/dist/icons/instagram-icon/InstagramIcon.stories.tsx +386 -330
  104. package/dist/icons/layout-column-icon/LayoutColumnIcon.stories.tsx +305 -263
  105. package/dist/icons/layout-left-icon/LayoutLeftIcon.stories.tsx +295 -259
  106. package/dist/icons/layout-right-icon/LayoutRightIcon.stories.tsx +296 -256
  107. package/dist/icons/light-bulb-simple-icon/LightBulbSimpleIcon.stories.tsx +322 -282
  108. package/dist/icons/linked-in-icon/LinkedInIcon.stories.tsx +399 -359
  109. package/dist/icons/magic-book-icon/MagicBookIcon.stories.tsx +314 -272
  110. package/dist/icons/magic-edit-icon/MagicEditIcon.stories.tsx +238 -206
  111. package/dist/icons/maintenance-icon/MaintenanceIcon.stories.tsx +322 -276
  112. package/dist/icons/message-icon/MessageIcon.stories.tsx +192 -170
  113. package/dist/icons/minimize-icon/MinimizeIcon.stories.tsx +348 -304
  114. package/dist/icons/moon-icon/MoonIcon.stories.tsx +191 -167
  115. package/dist/icons/move-horizontal-icon/MoveHorizontalIcon.stories.tsx +380 -326
  116. package/dist/icons/move-vertical-icon/MoveVerticalIcon.stories.tsx +345 -291
  117. package/dist/icons/musical-note-icon/MusicalNoteIcon.stories.tsx +310 -266
  118. package/dist/icons/notepad-icon/NotepadIcon.stories.tsx +311 -271
  119. package/dist/icons/notes-icon/NotesIcon.stories.tsx +311 -271
  120. package/dist/icons/page-search-icon/PageSearchIcon.stories.tsx +309 -271
  121. package/dist/icons/page-text-icon/PageTextIcon.stories.tsx +248 -210
  122. package/dist/icons/paint-roll-icon/PaintRollIcon.stories.tsx +310 -262
  123. package/dist/icons/paper-plane-icon/PaperPlaneIcon.stories.tsx +274 -236
  124. package/dist/icons/pause-icon/PauseIcon.stories.tsx +324 -280
  125. package/dist/icons/pencil-icon/PencilIcon.stories.tsx +323 -281
  126. package/dist/icons/phone-icon/PhoneIcon.stories.tsx +288 -240
  127. package/dist/icons/plus-icon/PlusIcon.stories.tsx +315 -273
  128. package/dist/icons/pocket-studio-icon/PocketStudioIcon.stories.tsx +278 -234
  129. package/dist/icons/scroll-down-icon/ScrollDownIcon.stories.tsx +161 -151
  130. package/dist/icons/search-icon/SearchIcon.stories.tsx +324 -284
  131. package/dist/icons/setting-icon/SettingIcon.stories.tsx +306 -264
  132. package/dist/icons/share-icon/ShareIcon.stories.tsx +314 -272
  133. package/dist/icons/shield-icon/ShieldIcon.stories.tsx +281 -235
  134. package/dist/icons/site-logo-icon/SiteLogoIcon.stories.tsx +309 -250
  135. package/dist/icons/skip-backward-icon/SkipBackwardIcon.stories.tsx +317 -279
  136. package/dist/icons/skip-forward-icon/SkipForwardIcon.stories.tsx +315 -279
  137. package/dist/icons/sparkles-soft-icon/SparklesSoftIcon.stories.tsx +299 -253
  138. package/dist/icons/spinner-gradient-icon/SpinnerGradientIcon.stories.tsx +185 -169
  139. package/dist/icons/spinner-gradient-icon/index.tsx +6 -1
  140. package/dist/icons/spinner-solid-icon/SpinnerSolidIcon.stories.tsx +192 -168
  141. package/dist/icons/spinner-solid-icon/index.tsx +6 -1
  142. package/dist/icons/spinner-solid-neutral-icon/SpinnerSolidINeutralcon.stories.tsx +212 -178
  143. package/dist/icons/spinner-solid-neutral-icon/index.tsx +1 -1
  144. package/dist/icons/star-icon/StarIcon.stories.tsx +290 -244
  145. package/dist/icons/store-coin-icon/StoreCoinIcon.stories.tsx +286 -234
  146. package/dist/icons/suggestion-icon/SuggestionIcon.stories.tsx +272 -230
  147. package/dist/icons/sun-icon/SunIcon.stories.tsx +262 -226
  148. package/dist/icons/text-color-icon/TextColorIcon.stories.tsx +321 -279
  149. package/dist/icons/text-indicator-icon/TextIndicatorIcon.stories.tsx +332 -282
  150. package/dist/icons/threads-icon/ThreadsIcon.stories.tsx +394 -342
  151. package/dist/icons/tick-circle-icon/TickCircleIcon.stories.tsx +338 -290
  152. package/dist/icons/tick-icon/TickIcon.stories.tsx +364 -315
  153. package/dist/icons/trash-icon/TrashIcon.stories.tsx +293 -253
  154. package/dist/icons/twitter-x-icon/TwitterXIcon.stories.tsx +396 -338
  155. package/dist/icons/upload-icon/UploadIcon.stories.tsx +291 -247
  156. package/dist/icons/vertical-menu-icon/VerticalMenuIcon.stories.tsx +309 -271
  157. package/dist/icons/video-play-list-icon/VideoPlaylistIcon.stories.tsx +336 -290
  158. package/dist/icons/voice-playing-icon/VoicePlayingIcon.stories.tsx +382 -334
  159. package/dist/icons/volume-full-icon/VolumeFullIcon.stories.tsx +349 -305
  160. package/dist/icons/volume-half-icon/VolumeHalfIcon.stories.tsx +327 -295
  161. package/dist/icons/volume-off-icon/VolumeOffIcon.stories.tsx +336 -296
  162. package/dist/icons/warning-icon/WarningIcon.stories.tsx +314 -274
  163. package/dist/icons/youtube-icon/YoutubeIcon.stories.tsx +311 -261
  164. package/dist/index.cjs +84 -84
  165. package/dist/index.js +84 -84
  166. package/dist/styles/aural-all-theme.css +1222 -0
  167. package/dist/styles/{aural-theme.css → aural-dark-theme.css} +15 -3
  168. package/dist/styles/aural-light-theme.css +1047 -0
  169. package/package.json +1 -1
@@ -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-gray-900 text-white",
89
+ root: "bg-fm-surface-secondary text-fm-primary",
90
90
  }}
91
91
  >
92
- <DialogHeader className="border-b border-white/10 pb-4">
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 bg-white/5 p-3">
95
- <IconComponent className="h-8 w-8 text-white" />
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 text-white">
98
+ <DialogTitle className="text-fm-primary text-xl font-semibold">
99
99
  {iconName}
100
100
  </DialogTitle>
101
- <p className="text-sm text-white/60">
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 text-white">
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 border-white/10 bg-black/40 p-4 text-sm text-gray-300">
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 border-white/10 bg-white/5 p-6">
133
- <h3 className="mb-4 text-lg font-medium text-white">
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 text-white" />
139
- <span className="text-xs text-white/60">Default</span>
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 text-blue-400" />
143
- <span className="text-xs text-white/60">Large Blue</span>
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 text-green-400" />
147
- <span className="text-xs text-white/60">Small Green</span>
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 text-red-400" />
151
- <span className="text-xs text-white/60">Red</span>
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 text-yellow-400" />
155
- <span className="text-xs text-white/60">Yellow</span>
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 border-white/10 bg-white/5 p-6">
162
- <h3 className="mb-4 text-lg font-medium text-white">
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 text-white/80">
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 text-white/60">
170
+ <ul className="text-fm-tertiary space-y-1 text-sm">
171
171
  <li>
172
- <code className="rounded bg-black/20 px-1">className</code>{" "}
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="rounded bg-black/20 px-1">width</code> -
177
- Icon width
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="rounded bg-black/20 px-1">height</code> -
181
- Icon height
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 text-white/80">SVG Props</h4>
187
- <ul className="space-y-1 text-sm text-white/60">
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="rounded bg-black/20 px-1">stroke</code> -
190
- Stroke color
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="rounded bg-black/20 px-1">
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="rounded bg-black/20 px-1">fill</code> -
200
- Fill color
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-gradient-to-r from-purple-500/50 to-transparent" />
222
- <h2 className="rounded-full border border-purple-500/20 bg-purple-500/10 px-4 py-2 text-lg font-semibold text-purple-300">
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-gradient-to-l from-purple-500/50 to-transparent" />
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 text-white">{title}</h3>
268
+ <h3 className="text-fm-primary text-2xl font-bold">{title}</h3>
257
269
  {description && (
258
- <p className="text-sm leading-relaxed text-white/70">{description}</p>
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 border-white/10 bg-white/5 transition-all duration-200 hover:scale-105 hover:border-white/20 hover:bg-white/10"
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-gradient-to-br from-white/5 to-white/10 transition-all duration-200 group-hover:from-white/10 group-hover:to-white/15">
270
- <IconComponent className="h-8 w-8 text-white transition-all duration-200 group-hover:scale-110 group-hover:text-blue-400" />
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 text-white">
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 bg-purple-500/20 px-2 py-1 text-xs text-purple-300">
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 bg-black/80 opacity-0 backdrop-blur-sm transition-opacity duration-200 group-hover:opacity-100">
287
- <IconComponent className="mb-2 h-8 w-8 text-white" />
288
- <p className="px-2 text-center text-xs font-medium text-white">
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 text-blue-300">Click for usage</p>
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="min-h-screen bg-gradient-to-br from-gray-900 via-purple-900/20 to-gray-900">
591
+ <div className="bg-fm-surface-primary min-h-screen">
578
592
  {/* Header */}
579
- <div className="relative overflow-hidden border-b border-white/10 bg-black/20 backdrop-blur-xl">
580
- <div className="absolute inset-0 bg-gradient-to-r from-purple-500/10 via-transparent to-blue-500/10" />
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="bg-gradient-to-r from-white via-purple-200 to-white bg-clip-text text-5xl font-bold text-transparent">
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 text-white/70">
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 text-purple-300">
609
+ <div className="text-fm-icon-brand-secondary text-3xl font-bold">
596
610
  {totalIcons}
597
611
  </div>
598
- <div className="text-sm text-white/60">Total icons</div>
612
+ <div className="text-fm-tertiary text-sm">Total icons</div>
599
613
  </div>
600
- <div className="h-8 w-px bg-white/20" />
614
+ <div className="bg-fm-divider-secondary h-8 w-px" />
601
615
  <div className="text-center">
602
- <div className="text-3xl font-bold text-blue-300">
616
+ <div className="text-fm-info text-3xl font-bold">
603
617
  {categoryCount}
604
618
  </div>
605
- <div className="text-sm text-white/60">Categories</div>
619
+ <div className="text-fm-tertiary text-sm">Categories</div>
606
620
  </div>
607
- <div className="h-8 w-px bg-white/20" />
621
+ <div className="bg-fm-divider-secondary h-8 w-px" />
608
622
  <div className="text-center">
609
- <div className="text-3xl font-bold text-green-300">
623
+ <div className="text-fm-positive text-3xl font-bold">
610
624
  Accessible
611
625
  </div>
612
- <div className="text-sm text-white/60">Radix UI</div>
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 border-white/10 bg-black/80 backdrop-blur-xl">
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-purple-500 text-white shadow-lg shadow-purple-500/25"
631
- : "bg-white/5 text-white/70 hover:bg-white/10 hover:text-white"
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="w-64 rounded-lg border border-white/10 bg-white/5 py-2 pr-10 pl-4 text-white placeholder-white/50 focus:border-purple-500/50 focus:ring-2 focus:ring-purple-500/50 focus:outline-none"
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 text-white/50">
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-white"
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-sm text-white/70">
703
+ <p className="text-fm-secondary text-sm">
690
704
  {filteredIcons.length > 0 ? (
691
705
  <>
692
706
  Found{" "}
693
- <span className="font-medium text-purple-300">
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 text-red-300">
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 text-white">No icons found</h3>
721
- <p className="text-white/60">
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 bg-purple-500 px-6 py-2 text-sm font-medium text-white transition-colors hover:bg-purple-600"
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-t border-white/10 bg-black/20 backdrop-blur-xl">
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-white/60">
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-sm text-white/40">
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>