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.
Files changed (166) 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/collapsible/Collapsible.stories.tsx +1 -1
  9. package/dist/components/command/Command.stories.tsx +52 -38
  10. package/dist/components/dialog/Dialog.stories.tsx +89 -84
  11. package/dist/components/divider/Divider.stories.tsx +86 -60
  12. package/dist/components/dot-loader/DotLoader.stories.tsx +12 -12
  13. package/dist/components/drawer/Drawer.stories.tsx +74 -44
  14. package/dist/components/drawer/index.tsx +3 -3
  15. package/dist/components/dropdown/Dropdown.stories.tsx +42 -32
  16. package/dist/components/helper-text/HelperText.stories.tsx +2 -2
  17. package/dist/components/hover-card/HoverCard.stories.tsx +211 -178
  18. package/dist/components/input/Input.stories.tsx +2 -2
  19. package/dist/components/label/Label.stories.tsx +10 -10
  20. package/dist/components/list/List.stories.tsx +58 -44
  21. package/dist/components/marquee/Marquee.stories.tsx +131 -113
  22. package/dist/components/otp-inputs/OtpInputs.stories.tsx +47 -35
  23. package/dist/components/overlay/Overlay.stories.tsx +98 -92
  24. package/dist/components/overlay/index.tsx +4 -4
  25. package/dist/components/popover/Popover.stories.tsx +132 -106
  26. package/dist/components/radio/Radio.stories.tsx +2 -2
  27. package/dist/components/resizable/Resizable.stories.tsx +186 -138
  28. package/dist/components/scroll-area/ScrollArea.stories.tsx +174 -120
  29. package/dist/components/search/Search.stories.tsx +81 -59
  30. package/dist/components/select/Select.stories.tsx +3 -1
  31. package/dist/components/sheet/Sheet.stories.tsx +68 -54
  32. package/dist/components/slider/Slider.stories.tsx +71 -47
  33. package/dist/components/stepper/Stepper.stories.tsx +16 -16
  34. package/dist/components/switch/Switch.stories.tsx +12 -12
  35. package/dist/components/table/Table.stories.tsx +8 -6
  36. package/dist/components/tabs/Tabs.stories.tsx +324 -268
  37. package/dist/components/textarea/TextArea.stories.tsx +1 -1
  38. package/dist/components/thumbnail-tags/ThumbnailTags.stories.tsx +16 -10
  39. package/dist/components/toast/Toast.stories.tsx +51 -45
  40. package/dist/components/toggle/Toggle.stories.tsx +111 -89
  41. package/dist/components/tooltip/Tooltip.stories.tsx +160 -144
  42. package/dist/icons/Icons.stories.tsx +2 -2
  43. package/dist/icons/ai-avatar-icon/AiAvatarIcon.stories.tsx +287 -237
  44. package/dist/icons/alert-icon/AlertIcon.stories.tsx +290 -248
  45. package/dist/icons/all-icons.tsx +97 -81
  46. package/dist/icons/angle-down-icon/AngleDownIcon.stories.tsx +312 -270
  47. package/dist/icons/apple-logo-icon/AppleLogoIcon.stories.tsx +294 -244
  48. package/dist/icons/arrow-box-left-icon/ArrowBoxLeftIcon.stories.tsx +309 -279
  49. package/dist/icons/arrow-corner-up-left-icon/ArrowCornerUpLeftIcon.stories.tsx +294 -258
  50. package/dist/icons/arrow-corner-up-right-icon/ArrowCornerUpRightIcon.stories.tsx +289 -255
  51. package/dist/icons/arrow-left-icon/ArrowLeftIcon.stories.tsx +288 -256
  52. package/dist/icons/arrow-right-icon/ArrowRightIcon.stories.tsx +322 -288
  53. package/dist/icons/arrow-right-up-icon/ArrowRightUpIcon.stories.tsx +340 -296
  54. package/dist/icons/art-board-icon/ArtBoardIcon.stories.tsx +197 -177
  55. package/dist/icons/audio-bar-icon/AudioBarIcon.stories.tsx +390 -328
  56. package/dist/icons/backward-ten-seconds-icon/BackwardTenSecondsIcon.stories.tsx +313 -277
  57. package/dist/icons/bubble-check-icon/BubbleCheckIcon.stories.tsx +367 -309
  58. package/dist/icons/bubble-crossed-icon/BubbleCrossedIcon.stories.tsx +356 -308
  59. package/dist/icons/bubble-sparkle-icon/BubbleSparkleIcon.stories.tsx +280 -234
  60. package/dist/icons/camera-icon/CameraIcon.stories.tsx +370 -326
  61. package/dist/icons/capital-a-letter-icon/CapitalALetterIcon.stories.tsx +300 -256
  62. package/dist/icons/chevron-double-left-icon/ChevronDoubleLeftIcon.stories.tsx +298 -262
  63. package/dist/icons/chevron-double-right-icon/ChevronDoubleRightIcon.stories.tsx +294 -260
  64. package/dist/icons/chevron-down-icon/ChevronDownIcon.stories.tsx +291 -259
  65. package/dist/icons/chevron-left-icon/ChevronLeftIcon.stories.tsx +286 -256
  66. package/dist/icons/chevron-right-icon/ChevronRightIcon.stories.tsx +282 -256
  67. package/dist/icons/chevron-up-icon/ChevronUpIcon.stories.tsx +292 -256
  68. package/dist/icons/circle-tick-icon/CircleTickIcon.stories.tsx +338 -290
  69. package/dist/icons/circular-play-icon/CircularPlayIcon.stories.tsx +167 -148
  70. package/dist/icons/coin-icon/CoinIcon.stories.tsx +342 -296
  71. package/dist/icons/coin-toons-icon/CoinToonsIcon.stories.tsx +342 -296
  72. package/dist/icons/column-wide-add-icon/ColumnWideAddIcon.stories.tsx +280 -238
  73. package/dist/icons/command-icon/CommandIcon.stories.tsx +328 -280
  74. package/dist/icons/copy-icon/CopyIcon.stories.tsx +294 -256
  75. package/dist/icons/cross-circle-icon/CrossCircleIcon.stories.tsx +285 -235
  76. package/dist/icons/cross-icon/CrossIcon.stories.tsx +308 -266
  77. package/dist/icons/download-icon/DownloadIcon.stories.tsx +271 -231
  78. package/dist/icons/edit-big-icon/EditBigIcon.stories.tsx +330 -278
  79. package/dist/icons/email-icon/EmailIcon.stories.tsx +303 -257
  80. package/dist/icons/expand-icon/ExpandIcon.stories.tsx +324 -286
  81. package/dist/icons/eye-close-icon/EyeCloseIcon.stories.tsx +317 -271
  82. package/dist/icons/eye-open-icon/EyeOpenIcon.stories.tsx +320 -272
  83. package/dist/icons/feature-shine-icon/FeatureShineIcon.stories.tsx +322 -280
  84. package/dist/icons/file-chart-icon/FileChartIcon.stories.tsx +315 -277
  85. package/dist/icons/file-text-icon/FileTextIcon.stories.tsx +199 -177
  86. package/dist/icons/filter-bar-row-icon/FilterBarRowIcon.stories.tsx +304 -264
  87. package/dist/icons/forward-ten-seconds-icon/ForwardTenSecondsIcon.stories.tsx +311 -277
  88. package/dist/icons/git-branch-icon/GitBranchIcon.stories.tsx +327 -287
  89. package/dist/icons/git-fork-icon/GitForkIcon.stories.tsx +314 -278
  90. package/dist/icons/globe-icon/GlobeIcon.stories.tsx +113 -98
  91. package/dist/icons/google-logo-icon/GoogleLogoIcon.stories.tsx +274 -226
  92. package/dist/icons/grip-vertical-icon/GripVerticalIcon.stories.tsx +349 -303
  93. package/dist/icons/head-icon/HeadIcon.stories.tsx +286 -246
  94. package/dist/icons/heart-icon/HeartIcon.stories.tsx +312 -268
  95. package/dist/icons/image-avatar-sparkle-icon/ImageAvatarSparkleIcon.stories.tsx +246 -210
  96. package/dist/icons/image-icon/ImageIcon.stories.tsx +330 -284
  97. package/dist/icons/import-folder-icon/ImportFolderIcon.stories.tsx +326 -282
  98. package/dist/icons/import-left-arrow-folder-icon/ImportLeftArrowFolderIcon.stories.tsx +330 -294
  99. package/dist/icons/indian-flag-icon/IndianFlagIcon.stories.tsx +288 -234
  100. package/dist/icons/instagram-icon/InstagramIcon.stories.tsx +386 -330
  101. package/dist/icons/layout-column-icon/LayoutColumnIcon.stories.tsx +305 -263
  102. package/dist/icons/layout-left-icon/LayoutLeftIcon.stories.tsx +295 -259
  103. package/dist/icons/layout-right-icon/LayoutRightIcon.stories.tsx +296 -256
  104. package/dist/icons/light-bulb-simple-icon/LightBulbSimpleIcon.stories.tsx +322 -282
  105. package/dist/icons/linked-in-icon/LinkedInIcon.stories.tsx +399 -359
  106. package/dist/icons/magic-book-icon/MagicBookIcon.stories.tsx +314 -272
  107. package/dist/icons/magic-edit-icon/MagicEditIcon.stories.tsx +238 -206
  108. package/dist/icons/maintenance-icon/MaintenanceIcon.stories.tsx +322 -276
  109. package/dist/icons/message-icon/MessageIcon.stories.tsx +192 -170
  110. package/dist/icons/minimize-icon/MinimizeIcon.stories.tsx +348 -304
  111. package/dist/icons/moon-icon/MoonIcon.stories.tsx +191 -167
  112. package/dist/icons/move-horizontal-icon/MoveHorizontalIcon.stories.tsx +380 -326
  113. package/dist/icons/move-vertical-icon/MoveVerticalIcon.stories.tsx +345 -291
  114. package/dist/icons/musical-note-icon/MusicalNoteIcon.stories.tsx +310 -266
  115. package/dist/icons/notepad-icon/NotepadIcon.stories.tsx +311 -271
  116. package/dist/icons/notes-icon/NotesIcon.stories.tsx +311 -271
  117. package/dist/icons/page-search-icon/PageSearchIcon.stories.tsx +309 -271
  118. package/dist/icons/page-text-icon/PageTextIcon.stories.tsx +248 -210
  119. package/dist/icons/paint-roll-icon/PaintRollIcon.stories.tsx +310 -262
  120. package/dist/icons/paper-plane-icon/PaperPlaneIcon.stories.tsx +274 -236
  121. package/dist/icons/pause-icon/PauseIcon.stories.tsx +324 -280
  122. package/dist/icons/pencil-icon/PencilIcon.stories.tsx +323 -281
  123. package/dist/icons/phone-icon/PhoneIcon.stories.tsx +288 -240
  124. package/dist/icons/plus-icon/PlusIcon.stories.tsx +315 -273
  125. package/dist/icons/pocket-studio-icon/PocketStudioIcon.stories.tsx +278 -234
  126. package/dist/icons/scroll-down-icon/ScrollDownIcon.stories.tsx +161 -151
  127. package/dist/icons/search-icon/SearchIcon.stories.tsx +324 -284
  128. package/dist/icons/setting-icon/SettingIcon.stories.tsx +306 -264
  129. package/dist/icons/share-icon/ShareIcon.stories.tsx +314 -272
  130. package/dist/icons/shield-icon/ShieldIcon.stories.tsx +281 -235
  131. package/dist/icons/site-logo-icon/SiteLogoIcon.stories.tsx +309 -250
  132. package/dist/icons/skip-backward-icon/SkipBackwardIcon.stories.tsx +317 -279
  133. package/dist/icons/skip-forward-icon/SkipForwardIcon.stories.tsx +315 -279
  134. package/dist/icons/sparkles-soft-icon/SparklesSoftIcon.stories.tsx +299 -253
  135. package/dist/icons/spinner-gradient-icon/SpinnerGradientIcon.stories.tsx +185 -169
  136. package/dist/icons/spinner-gradient-icon/index.tsx +6 -1
  137. package/dist/icons/spinner-solid-icon/SpinnerSolidIcon.stories.tsx +192 -168
  138. package/dist/icons/spinner-solid-icon/index.tsx +6 -1
  139. package/dist/icons/spinner-solid-neutral-icon/SpinnerSolidINeutralcon.stories.tsx +212 -178
  140. package/dist/icons/spinner-solid-neutral-icon/index.tsx +1 -1
  141. package/dist/icons/star-icon/StarIcon.stories.tsx +290 -244
  142. package/dist/icons/store-coin-icon/StoreCoinIcon.stories.tsx +286 -234
  143. package/dist/icons/suggestion-icon/SuggestionIcon.stories.tsx +272 -230
  144. package/dist/icons/sun-icon/SunIcon.stories.tsx +262 -226
  145. package/dist/icons/text-color-icon/TextColorIcon.stories.tsx +321 -279
  146. package/dist/icons/text-indicator-icon/TextIndicatorIcon.stories.tsx +332 -282
  147. package/dist/icons/threads-icon/ThreadsIcon.stories.tsx +394 -342
  148. package/dist/icons/tick-circle-icon/TickCircleIcon.stories.tsx +338 -290
  149. package/dist/icons/tick-icon/TickIcon.stories.tsx +364 -315
  150. package/dist/icons/trash-icon/TrashIcon.stories.tsx +293 -253
  151. package/dist/icons/twitter-x-icon/TwitterXIcon.stories.tsx +396 -338
  152. package/dist/icons/upload-icon/UploadIcon.stories.tsx +291 -247
  153. package/dist/icons/vertical-menu-icon/VerticalMenuIcon.stories.tsx +309 -271
  154. package/dist/icons/video-play-list-icon/VideoPlaylistIcon.stories.tsx +336 -290
  155. package/dist/icons/voice-playing-icon/VoicePlayingIcon.stories.tsx +382 -334
  156. package/dist/icons/volume-full-icon/VolumeFullIcon.stories.tsx +349 -305
  157. package/dist/icons/volume-half-icon/VolumeHalfIcon.stories.tsx +327 -295
  158. package/dist/icons/volume-off-icon/VolumeOffIcon.stories.tsx +336 -296
  159. package/dist/icons/warning-icon/WarningIcon.stories.tsx +314 -274
  160. package/dist/icons/youtube-icon/YoutubeIcon.stories.tsx +311 -261
  161. package/dist/index.cjs +84 -84
  162. package/dist/index.js +84 -84
  163. package/dist/styles/aural-all-theme.css +1222 -0
  164. package/dist/styles/{aural-theme.css → aural-dark-theme.css} +15 -3
  165. package/dist/styles/aural-light-theme.css +1047 -0
  166. package/package.json +1 -1
@@ -227,74 +227,82 @@ export const Basic: Story = {
227
227
  <TabsTrigger value="reports">Reports</TabsTrigger>
228
228
  </TabsList>
229
229
  <TabsContent value="overview" className="mt-6">
230
- <div className="rounded-lg border border-white/10 bg-white/5 p-6">
231
- <h3 className="mb-4 text-lg font-semibold text-white">Overview</h3>
232
- <p className="mb-4 text-white/70">
230
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
231
+ <h3 className="text-fm-primary mb-4 text-lg font-semibold">
232
+ Overview
233
+ </h3>
234
+ <p className="text-fm-secondary mb-4">
233
235
  Get a comprehensive view of your project's key metrics and
234
236
  performance indicators.
235
237
  </p>
236
238
  <div className="grid grid-cols-2 gap-4">
237
- <div className="rounded-lg border border-blue-500/20 bg-blue-500/10 p-4">
238
- <div className="text-2xl font-bold text-blue-400">1,234</div>
239
- <div className="text-sm text-white/60">Total Users</div>
239
+ <div className="border-fm-divider-secondary bg-fm-surface-info-sec rounded-lg border p-4">
240
+ <div className="text-fm-info text-2xl font-bold">1,234</div>
241
+ <div className="text-fm-secondary text-sm">Total Users</div>
240
242
  </div>
241
- <div className="rounded-lg border border-green-500/20 bg-green-500/10 p-4">
242
- <div className="text-2xl font-bold text-green-400">98.5%</div>
243
- <div className="text-sm text-white/60">Uptime</div>
243
+ <div className="border-fm-divider-positive bg-fm-surface-positive-sec rounded-lg border p-4">
244
+ <div className="text-fm-positive text-2xl font-bold">98.5%</div>
245
+ <div className="text-fm-secondary text-sm">Uptime</div>
244
246
  </div>
245
247
  </div>
246
248
  </div>
247
249
  </TabsContent>
248
250
  <TabsContent value="analytics" className="mt-6">
249
- <div className="rounded-lg border border-white/10 bg-white/5 p-6">
250
- <h3 className="mb-4 text-lg font-semibold text-white">Analytics</h3>
251
- <p className="mb-4 text-white/70">
251
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
252
+ <h3 className="text-fm-primary mb-4 text-lg font-semibold">
253
+ Analytics
254
+ </h3>
255
+ <p className="text-fm-secondary mb-4">
252
256
  Deep dive into user behavior and engagement patterns across your
253
257
  platform.
254
258
  </p>
255
259
  <div className="space-y-4">
256
- <div className="flex items-center justify-between rounded-lg bg-white/5 p-3">
257
- <span className="text-white">Page Views</span>
258
- <span className="font-semibold text-green-400">+12.5%</span>
260
+ <div className="bg-fm-surface-secondary flex items-center justify-between rounded-lg p-3">
261
+ <span className="text-fm-primary">Page Views</span>
262
+ <span className="text-fm-positive font-semibold">+12.5%</span>
259
263
  </div>
260
- <div className="flex items-center justify-between rounded-lg bg-white/5 p-3">
261
- <span className="text-white">Session Duration</span>
262
- <span className="font-semibold text-blue-400">4:32 avg</span>
264
+ <div className="bg-fm-surface-secondary flex items-center justify-between rounded-lg p-3">
265
+ <span className="text-fm-primary">Session Duration</span>
266
+ <span className="text-fm-info font-semibold">4:32 avg</span>
263
267
  </div>
264
- <div className="flex items-center justify-between rounded-lg bg-white/5 p-3">
265
- <span className="text-white">Bounce Rate</span>
268
+ <div className="bg-fm-surface-secondary flex items-center justify-between rounded-lg p-3">
269
+ <span className="text-fm-primary">Bounce Rate</span>
266
270
  <span className="font-semibold text-orange-400">32.1%</span>
267
271
  </div>
268
272
  </div>
269
273
  </div>
270
274
  </TabsContent>
271
275
  <TabsContent value="reports" className="mt-6">
272
- <div className="rounded-lg border border-white/10 bg-white/5 p-6">
273
- <h3 className="mb-4 text-lg font-semibold text-white">Reports</h3>
274
- <p className="mb-4 text-white/70">
276
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
277
+ <h3 className="text-fm-primary mb-4 text-lg font-semibold">
278
+ Reports
279
+ </h3>
280
+ <p className="text-fm-secondary mb-4">
275
281
  Generate and download detailed reports for stakeholders and
276
282
  analysis.
277
283
  </p>
278
284
  <div className="space-y-3">
279
- <button className="w-full rounded-lg bg-white/5 p-3 text-left transition-colors hover:bg-white/10">
280
- <div className="font-medium text-white">
285
+ <button className="bg-fm-surface-secondary hover:bg-fm-surface-tertiary w-full rounded-lg p-3 text-left transition-colors">
286
+ <div className="text-fm-primary font-medium">
281
287
  Monthly Performance Report
282
288
  </div>
283
- <div className="text-sm text-white/60">
289
+ <div className="text-fm-secondary text-sm">
284
290
  Last generated: 2 days ago
285
291
  </div>
286
292
  </button>
287
- <button className="w-full rounded-lg bg-white/5 p-3 text-left transition-colors hover:bg-white/10">
288
- <div className="font-medium text-white">
293
+ <button className="bg-fm-surface-secondary hover:bg-fm-surface-tertiary w-full rounded-lg p-3 text-left transition-colors">
294
+ <div className="text-fm-primary font-medium">
289
295
  User Engagement Analysis
290
296
  </div>
291
- <div className="text-sm text-white/60">
297
+ <div className="text-fm-secondary text-sm">
292
298
  Last generated: 1 week ago
293
299
  </div>
294
300
  </button>
295
- <button className="w-full rounded-lg bg-white/5 p-3 text-left transition-colors hover:bg-white/10">
296
- <div className="font-medium text-white">Revenue Breakdown</div>
297
- <div className="text-sm text-white/60">
301
+ <button className="bg-fm-surface-secondary hover:bg-fm-surface-tertiary w-full rounded-lg p-3 text-left transition-colors">
302
+ <div className="text-fm-primary font-medium">
303
+ Revenue Breakdown
304
+ </div>
305
+ <div className="text-fm-secondary text-sm">
298
306
  Last generated: 3 days ago
299
307
  </div>
300
308
  </button>
@@ -339,40 +347,46 @@ export const WithIcons: Story = {
339
347
  </TabsList>
340
348
 
341
349
  <TabsContent value="dashboard" className="mt-6">
342
- <div className="rounded-lg border border-white/10 bg-white/5 p-6">
350
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
343
351
  <div className="mb-4 flex items-center gap-3">
344
- <FileChartIcon className="h-6 w-6 text-blue-400" />
345
- <h3 className="text-lg font-semibold text-white">Dashboard</h3>
352
+ <FileChartIcon className="text-fm-info h-6 w-6" />
353
+ <h3 className="text-fm-primary text-lg font-semibold">
354
+ Dashboard
355
+ </h3>
346
356
  </div>
347
357
  <div className="grid grid-cols-1 gap-4 md:grid-cols-3">
348
358
  <div className="rounded-lg border border-blue-500/30 bg-gradient-to-br from-blue-500/20 to-purple-500/20 p-4">
349
- <div className="text-2xl font-bold text-white">847</div>
350
- <div className="text-sm text-white/70">Active Sessions</div>
351
- <div className="mt-1 text-xs text-green-400">
359
+ <div className="text-fm-primary text-2xl font-bold">847</div>
360
+ <div className="text-fm-secondary text-sm">Active Sessions</div>
361
+ <div className="text-fm-positive mt-1 text-xs">
352
362
  ↗ +15% from yesterday
353
363
  </div>
354
364
  </div>
355
365
  <div className="rounded-lg border border-green-500/30 bg-gradient-to-br from-green-500/20 to-teal-500/20 p-4">
356
- <div className="text-2xl font-bold text-white">$12,847</div>
357
- <div className="text-sm text-white/70">Revenue Today</div>
358
- <div className="mt-1 text-xs text-green-400">
366
+ <div className="text-fm-primary text-2xl font-bold">
367
+ $12,847
368
+ </div>
369
+ <div className="text-fm-secondary text-sm">Revenue Today</div>
370
+ <div className="text-fm-positive mt-1 text-xs">
359
371
  ↗ +8% from yesterday
360
372
  </div>
361
373
  </div>
362
374
  <div className="rounded-lg border border-orange-500/30 bg-gradient-to-br from-orange-500/20 to-red-500/20 p-4">
363
- <div className="text-2xl font-bold text-white">23</div>
364
- <div className="text-sm text-white/70">Critical Issues</div>
365
- <div className="mt-1 text-xs text-red-400">↗ +3 new issues</div>
375
+ <div className="text-fm-primary text-2xl font-bold">23</div>
376
+ <div className="text-fm-secondary text-sm">Critical Issues</div>
377
+ <div className="text-fm-icon-negative mt-1 text-xs">
378
+ ↗ +3 new issues
379
+ </div>
366
380
  </div>
367
381
  </div>
368
382
  </div>
369
383
  </TabsContent>
370
384
 
371
385
  <TabsContent value="users" className="mt-6">
372
- <div className="rounded-lg border border-white/10 bg-white/5 p-6">
386
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
373
387
  <div className="mb-4 flex items-center gap-3">
374
- <EyeOpenIcon className="h-6 w-6 text-green-400" />
375
- <h3 className="text-lg font-semibold text-white">
388
+ <EyeOpenIcon className="text-fm-positive h-6 w-6" />
389
+ <h3 className="text-fm-primary text-lg font-semibold">
376
390
  User Management
377
391
  </h3>
378
392
  </div>
@@ -405,30 +419,34 @@ export const WithIcons: Story = {
405
419
  ].map((user, index) => (
406
420
  <div
407
421
  key={index}
408
- className="flex items-center justify-between rounded-lg bg-white/5 p-3 transition-colors hover:bg-white/10"
422
+ className="bg-fm-surface-secondary hover:bg-fm-surface-tertiary flex items-center justify-between rounded-lg p-3 transition-colors"
409
423
  >
410
424
  <div className="flex items-center gap-3">
411
425
  <div className="flex h-10 w-10 items-center justify-center rounded-full bg-gradient-to-br from-purple-500 to-pink-500">
412
- <span className="text-sm font-semibold text-white">
426
+ <span className="text-fm-primary text-sm font-semibold">
413
427
  {user.avatar}
414
428
  </span>
415
429
  </div>
416
430
  <div>
417
- <div className="font-medium text-white">{user.name}</div>
418
- <div className="text-sm text-white/60">{user.role}</div>
431
+ <div className="text-fm-primary font-medium">
432
+ {user.name}
433
+ </div>
434
+ <div className="text-fm-secondary text-sm">
435
+ {user.role}
436
+ </div>
419
437
  </div>
420
438
  </div>
421
439
  <div className="flex items-center gap-2">
422
440
  <div
423
441
  className={`h-2 w-2 rounded-full ${
424
442
  user.status === "online"
425
- ? "bg-green-500"
443
+ ? "bg-fm-surface-positive"
426
444
  : user.status === "away"
427
445
  ? "bg-yellow-500"
428
- : "bg-gray-500"
446
+ : "bg-fm-surface-tertiary"
429
447
  }`}
430
448
  />
431
- <span className="text-xs text-white/60 capitalize">
449
+ <span className="text-fm-secondary text-xs capitalize">
432
450
  {user.status}
433
451
  </span>
434
452
  </div>
@@ -439,43 +457,47 @@ export const WithIcons: Story = {
439
457
  </TabsContent>
440
458
 
441
459
  <TabsContent value="settings" className="mt-6">
442
- <div className="rounded-lg border border-white/10 bg-white/5 p-6">
460
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
443
461
  <div className="mb-4 flex items-center gap-3">
444
462
  <EditBigIcon className="h-6 w-6 text-purple-400" />
445
- <h3 className="text-lg font-semibold text-white">Settings</h3>
463
+ <h3 className="text-fm-primary text-lg font-semibold">
464
+ Settings
465
+ </h3>
446
466
  </div>
447
467
  <div className="space-y-4">
448
- <div className="flex items-center justify-between rounded-lg bg-white/5 p-3">
468
+ <div className="bg-fm-surface-secondary flex items-center justify-between rounded-lg p-3">
449
469
  <div>
450
- <div className="font-medium text-white">
470
+ <div className="text-fm-primary font-medium">
451
471
  Email Notifications
452
472
  </div>
453
- <div className="text-sm text-white/60">
473
+ <div className="text-fm-secondary text-sm">
454
474
  Receive updates via email
455
475
  </div>
456
476
  </div>
457
- <button className="relative h-6 w-12 rounded-full bg-blue-500">
458
- <div className="absolute top-0.5 right-0.5 h-5 w-5 rounded-full bg-white transition-transform"></div>
477
+ <button className="bg-fm-surface-info relative h-6 w-12 rounded-full">
478
+ <div className="bg-fm-surface-primary absolute top-0.5 right-0.5 h-5 w-5 rounded-full transition-transform"></div>
459
479
  </button>
460
480
  </div>
461
- <div className="flex items-center justify-between rounded-lg bg-white/5 p-3">
481
+ <div className="bg-fm-surface-secondary flex items-center justify-between rounded-lg p-3">
462
482
  <div>
463
- <div className="font-medium text-white">Dark Mode</div>
464
- <div className="text-sm text-white/60">Use dark theme</div>
483
+ <div className="text-fm-primary font-medium">Dark Mode</div>
484
+ <div className="text-fm-secondary text-sm">
485
+ Use dark theme
486
+ </div>
465
487
  </div>
466
- <button className="relative h-6 w-12 rounded-full bg-blue-500">
467
- <div className="absolute top-0.5 right-0.5 h-5 w-5 rounded-full bg-white transition-transform"></div>
488
+ <button className="bg-fm-surface-info relative h-6 w-12 rounded-full">
489
+ <div className="bg-fm-surface-primary absolute top-0.5 right-0.5 h-5 w-5 rounded-full transition-transform"></div>
468
490
  </button>
469
491
  </div>
470
- <div className="flex items-center justify-between rounded-lg bg-white/5 p-3">
492
+ <div className="bg-fm-surface-secondary flex items-center justify-between rounded-lg p-3">
471
493
  <div>
472
- <div className="font-medium text-white">Auto-save</div>
473
- <div className="text-sm text-white/60">
494
+ <div className="text-fm-primary font-medium">Auto-save</div>
495
+ <div className="text-fm-secondary text-sm">
474
496
  Automatically save changes
475
497
  </div>
476
498
  </div>
477
- <button className="relative h-6 w-12 rounded-full bg-gray-600">
478
- <div className="absolute top-0.5 left-0.5 h-5 w-5 rounded-full bg-white transition-transform"></div>
499
+ <button className="bg-fm-surface-tertiary relative h-6 w-12 rounded-full">
500
+ <div className="bg-fm-surface-primary absolute top-0.5 left-0.5 h-5 w-5 rounded-full transition-transform"></div>
479
501
  </button>
480
502
  </div>
481
503
  </div>
@@ -483,22 +505,24 @@ export const WithIcons: Story = {
483
505
  </TabsContent>
484
506
 
485
507
  <TabsContent value="alerts" className="mt-6">
486
- <div className="rounded-lg border border-white/10 bg-white/5 p-6">
508
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
487
509
  <div className="mb-4 flex items-center gap-3">
488
- <AlertIcon className="h-6 w-6 text-red-400" />
489
- <h3 className="text-lg font-semibold text-white">
510
+ <AlertIcon className="text-fm-icon-negative h-6 w-6" />
511
+ <h3 className="text-fm-primary text-lg font-semibold">
490
512
  System Alerts
491
513
  </h3>
492
514
  </div>
493
515
  <div className="space-y-3">
494
- <div className="flex items-start gap-3 rounded-lg border border-red-500/20 bg-red-500/10 p-3">
495
- <AlertIcon className="mt-0.5 h-5 w-5 flex-shrink-0 text-red-400" />
516
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary flex items-start gap-3 rounded-lg border p-3">
517
+ <AlertIcon className="text-fm-icon-negative mt-0.5 h-5 w-5 flex-shrink-0" />
496
518
  <div>
497
- <div className="font-medium text-white">High CPU Usage</div>
498
- <div className="text-sm text-white/70">
519
+ <div className="text-fm-primary font-medium">
520
+ High CPU Usage
521
+ </div>
522
+ <div className="text-fm-secondary text-sm">
499
523
  Server load is above 90% threshold
500
524
  </div>
501
- <div className="mt-1 text-xs text-white/50">
525
+ <div className="text-fm-tertiary mt-1 text-xs">
502
526
  2 minutes ago
503
527
  </div>
504
528
  </div>
@@ -506,25 +530,29 @@ export const WithIcons: Story = {
506
530
  <div className="flex items-start gap-3 rounded-lg border border-yellow-500/20 bg-yellow-500/10 p-3">
507
531
  <AlertIcon className="mt-0.5 h-5 w-5 flex-shrink-0 text-yellow-400" />
508
532
  <div>
509
- <div className="font-medium text-white">
533
+ <div className="text-fm-primary font-medium">
510
534
  Database Connection
511
535
  </div>
512
- <div className="text-sm text-white/70">
536
+ <div className="text-fm-secondary text-sm">
513
537
  Intermittent connectivity issues detected
514
538
  </div>
515
- <div className="mt-1 text-xs text-white/50">
539
+ <div className="text-fm-tertiary mt-1 text-xs">
516
540
  15 minutes ago
517
541
  </div>
518
542
  </div>
519
543
  </div>
520
- <div className="flex items-start gap-3 rounded-lg border border-green-500/20 bg-green-500/10 p-3">
521
- <TickCircleIcon className="mt-0.5 h-5 w-5 flex-shrink-0 text-green-400" />
544
+ <div className="border-fm-divider-positive bg-fm-surface-positive-sec flex items-start gap-3 rounded-lg border p-3">
545
+ <TickCircleIcon className="text-fm-positive mt-0.5 h-5 w-5 flex-shrink-0" />
522
546
  <div>
523
- <div className="font-medium text-white">Backup Completed</div>
524
- <div className="text-sm text-white/70">
547
+ <div className="text-fm-primary font-medium">
548
+ Backup Completed
549
+ </div>
550
+ <div className="text-fm-secondary text-sm">
525
551
  Daily backup finished successfully
526
552
  </div>
527
- <div className="mt-1 text-xs text-white/50">1 hour ago</div>
553
+ <div className="text-fm-tertiary mt-1 text-xs">
554
+ 1 hour ago
555
+ </div>
528
556
  </div>
529
557
  </div>
530
558
  </div>
@@ -548,7 +576,7 @@ export const SizeVariations: Story = {
548
576
  render: () => (
549
577
  <div className="w-full max-w-4xl space-y-8">
550
578
  <div className="space-y-4">
551
- <h3 className="text-lg font-medium text-white">Small Size</h3>
579
+ <h3 className="text-fm-primary text-lg font-medium">Small Size</h3>
552
580
  <Tabs defaultValue="tab1" size="sm" className="w-full">
553
581
  <TabsList className="grid w-full grid-cols-3">
554
582
  <TabsTrigger value="tab1">Compact</TabsTrigger>
@@ -556,23 +584,23 @@ export const SizeVariations: Story = {
556
584
  <TabsTrigger value="tab3">Minimal</TabsTrigger>
557
585
  </TabsList>
558
586
  <TabsContent value="tab1" className="mt-4">
559
- <div className="rounded-lg border border-white/10 bg-white/5 p-4">
560
- <p className="text-white/70">
587
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-4">
588
+ <p className="text-fm-secondary">
561
589
  Small tabs are perfect for compact interfaces and secondary
562
590
  navigation.
563
591
  </p>
564
592
  </div>
565
593
  </TabsContent>
566
594
  <TabsContent value="tab2" className="mt-4">
567
- <div className="rounded-lg border border-white/10 bg-white/5 p-4">
568
- <p className="text-white/70">
595
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-4">
596
+ <p className="text-fm-secondary">
569
597
  Ideal for sidebars, modal dialogs, and tight spaces.
570
598
  </p>
571
599
  </div>
572
600
  </TabsContent>
573
601
  <TabsContent value="tab3" className="mt-4">
574
- <div className="rounded-lg border border-white/10 bg-white/5 p-4">
575
- <p className="text-white/70">
602
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-4">
603
+ <p className="text-fm-secondary">
576
604
  Minimal design with efficient use of space.
577
605
  </p>
578
606
  </div>
@@ -581,7 +609,7 @@ export const SizeVariations: Story = {
581
609
  </div>
582
610
 
583
611
  <div className="space-y-4">
584
- <h3 className="text-lg font-medium text-white">
612
+ <h3 className="text-fm-primary text-lg font-medium">
585
613
  Medium Size (Default)
586
614
  </h3>
587
615
  <Tabs defaultValue="tab1" size="md" className="w-full">
@@ -591,23 +619,23 @@ export const SizeVariations: Story = {
591
619
  <TabsTrigger value="tab3">Default</TabsTrigger>
592
620
  </TabsList>
593
621
  <TabsContent value="tab1" className="mt-4">
594
- <div className="rounded-lg border border-white/10 bg-white/5 p-6">
595
- <p className="text-white/70">
622
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
623
+ <p className="text-fm-secondary">
596
624
  Medium tabs provide the perfect balance between visibility and
597
625
  space efficiency.
598
626
  </p>
599
627
  </div>
600
628
  </TabsContent>
601
629
  <TabsContent value="tab2" className="mt-4">
602
- <div className="rounded-lg border border-white/10 bg-white/5 p-6">
603
- <p className="text-white/70">
630
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
631
+ <p className="text-fm-secondary">
604
632
  Great for main content areas and primary navigation.
605
633
  </p>
606
634
  </div>
607
635
  </TabsContent>
608
636
  <TabsContent value="tab3" className="mt-4">
609
- <div className="rounded-lg border border-white/10 bg-white/5 p-6">
610
- <p className="text-white/70">
637
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
638
+ <p className="text-fm-secondary">
611
639
  The default choice for most tab implementations.
612
640
  </p>
613
641
  </div>
@@ -616,7 +644,7 @@ export const SizeVariations: Story = {
616
644
  </div>
617
645
 
618
646
  <div className="space-y-4">
619
- <h3 className="text-lg font-medium text-white">Large Size</h3>
647
+ <h3 className="text-fm-primary text-lg font-medium">Large Size</h3>
620
648
  <Tabs defaultValue="tab1" size="lg" className="w-full">
621
649
  <TabsList className="grid w-full grid-cols-3">
622
650
  <TabsTrigger value="tab1">Prominent</TabsTrigger>
@@ -624,24 +652,24 @@ export const SizeVariations: Story = {
624
652
  <TabsTrigger value="tab3">Bold</TabsTrigger>
625
653
  </TabsList>
626
654
  <TabsContent value="tab1" className="mt-4">
627
- <div className="rounded-lg border border-white/10 bg-white/5 p-8">
628
- <p className="text-white/70">
655
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-8">
656
+ <p className="text-fm-secondary">
629
657
  Large tabs make a statement and are perfect for hero sections
630
658
  and primary interfaces.
631
659
  </p>
632
660
  </div>
633
661
  </TabsContent>
634
662
  <TabsContent value="tab2" className="mt-4">
635
- <div className="rounded-lg border border-white/10 bg-white/5 p-8">
636
- <p className="text-white/70">
663
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-8">
664
+ <p className="text-fm-secondary">
637
665
  Enhanced visibility and improved touch targets for mobile
638
666
  interfaces.
639
667
  </p>
640
668
  </div>
641
669
  </TabsContent>
642
670
  <TabsContent value="tab3" className="mt-4">
643
- <div className="rounded-lg border border-white/10 bg-white/5 p-8">
644
- <p className="text-white/70">
671
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-8">
672
+ <p className="text-fm-secondary">
645
673
  Bold design that commands attention and improves user
646
674
  experience.
647
675
  </p>
@@ -666,10 +694,10 @@ export const IndividualSizeOverride: Story = {
666
694
  render: () => (
667
695
  <div className="w-full max-w-3xl space-y-6">
668
696
  <div className="text-center">
669
- <h3 className="mb-2 text-lg font-medium text-white">
697
+ <h3 className="text-fm-primary mb-2 text-lg font-medium">
670
698
  Individual Size Override
671
699
  </h3>
672
- <p className="text-sm text-white/70">
700
+ <p className="text-fm-secondary text-sm">
673
701
  Tabs component has size="md" set, but individual triggers can override
674
702
  with their own size prop
675
703
  </p>
@@ -688,23 +716,23 @@ export const IndividualSizeOverride: Story = {
688
716
  </TabsList>
689
717
 
690
718
  <TabsContent value="small" className="mt-6">
691
- <div className="rounded-lg border border-white/10 bg-white/5 p-6">
692
- <h3 className="mb-4 text-lg font-semibold text-white">
719
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
720
+ <h3 className="text-fm-primary mb-4 text-lg font-semibold">
693
721
  Small Override
694
722
  </h3>
695
- <p className="text-white/70">
723
+ <p className="text-fm-secondary">
696
724
  This tab trigger has{" "}
697
- <code className="rounded bg-white/10 px-2 py-1 text-sm">
725
+ <code className="bg-fm-surface-secondary rounded px-2 py-1 text-sm">
698
726
  size="sm"
699
727
  </code>{" "}
700
728
  which overrides the parent Tabs component's{" "}
701
- <code className="rounded bg-white/10 px-2 py-1 text-sm">
729
+ <code className="bg-fm-surface-secondary rounded px-2 py-1 text-sm">
702
730
  size="md"
703
731
  </code>{" "}
704
732
  setting.
705
733
  </p>
706
- <div className="mt-4 rounded-lg border border-blue-500/20 bg-blue-500/10 p-3">
707
- <div className="text-sm text-blue-200">
734
+ <div className="border-fm-divider-secondary bg-fm-surface-info-sec mt-4 rounded-lg border p-3">
735
+ <div className="text-fm-info text-sm">
708
736
  <strong>Use case:</strong> When you need most tabs to be medium
709
737
  size but want to emphasize or de-emphasize specific tabs.
710
738
  </div>
@@ -713,21 +741,21 @@ export const IndividualSizeOverride: Story = {
713
741
  </TabsContent>
714
742
 
715
743
  <TabsContent value="normal" className="mt-6">
716
- <div className="rounded-lg border border-white/10 bg-white/5 p-6">
717
- <h3 className="mb-4 text-lg font-semibold text-white">
744
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
745
+ <h3 className="text-fm-primary mb-4 text-lg font-semibold">
718
746
  Normal Size
719
747
  </h3>
720
- <p className="text-white/70">
748
+ <p className="text-fm-secondary">
721
749
  This tab uses the default size inherited from the parent Tabs
722
750
  component (
723
- <code className="rounded bg-white/10 px-2 py-1 text-sm">
751
+ <code className="bg-fm-surface-secondary rounded px-2 py-1 text-sm">
724
752
  size="md"
725
753
  </code>
726
754
  ).
727
755
  </p>
728
756
  <div className="mt-4 grid grid-cols-2 gap-4">
729
- <div className="rounded-lg border border-green-500/20 bg-green-500/10 p-3">
730
- <div className="text-sm text-green-200">
757
+ <div className="border-fm-divider-positive bg-fm-surface-positive-sec rounded-lg border p-3">
758
+ <div className="text-fm-positive text-sm">
731
759
  Consistent sizing across most tabs
732
760
  </div>
733
761
  </div>
@@ -741,30 +769,30 @@ export const IndividualSizeOverride: Story = {
741
769
  </TabsContent>
742
770
 
743
771
  <TabsContent value="normal2" className="mt-6">
744
- <div className="rounded-lg border border-white/10 bg-white/5 p-6">
745
- <h3 className="mb-4 text-lg font-semibold text-white">
772
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
773
+ <h3 className="text-fm-primary mb-4 text-lg font-semibold">
746
774
  Another Normal Tab
747
775
  </h3>
748
- <p className="text-white/70">
776
+ <p className="text-fm-secondary">
749
777
  Another tab using the inherited medium size from the parent
750
778
  component.
751
779
  </p>
752
780
  <div className="mt-4 space-y-3">
753
- <div className="flex items-center gap-3 rounded-lg bg-white/5 p-3">
754
- <TickCircleIcon className="h-5 w-5 text-green-400" />
755
- <span className="text-white/70">
781
+ <div className="bg-fm-surface-secondary flex items-center gap-3 rounded-lg p-3">
782
+ <TickCircleIcon className="text-fm-positive h-5 w-5" />
783
+ <span className="text-fm-secondary">
756
784
  Inherits parent size automatically
757
785
  </span>
758
786
  </div>
759
- <div className="flex items-center gap-3 rounded-lg bg-white/5 p-3">
760
- <TickCircleIcon className="h-5 w-5 text-green-400" />
761
- <span className="text-white/70">
787
+ <div className="bg-fm-surface-secondary flex items-center gap-3 rounded-lg p-3">
788
+ <TickCircleIcon className="text-fm-positive h-5 w-5" />
789
+ <span className="text-fm-secondary">
762
790
  No need to specify size prop
763
791
  </span>
764
792
  </div>
765
- <div className="flex items-center gap-3 rounded-lg bg-white/5 p-3">
766
- <TickCircleIcon className="h-5 w-5 text-green-400" />
767
- <span className="text-white/70">
793
+ <div className="bg-fm-surface-secondary flex items-center gap-3 rounded-lg p-3">
794
+ <TickCircleIcon className="text-fm-positive h-5 w-5" />
795
+ <span className="text-fm-secondary">
768
796
  Maintains consistent appearance
769
797
  </span>
770
798
  </div>
@@ -773,20 +801,20 @@ export const IndividualSizeOverride: Story = {
773
801
  </TabsContent>
774
802
 
775
803
  <TabsContent value="large" className="mt-6">
776
- <div className="rounded-lg border border-white/10 bg-white/5 p-6">
777
- <h3 className="mb-4 text-lg font-semibold text-white">
804
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
805
+ <h3 className="text-fm-primary mb-4 text-lg font-semibold">
778
806
  Large Override
779
807
  </h3>
780
- <p className="text-white/70">
808
+ <p className="text-fm-secondary">
781
809
  This tab trigger has{" "}
782
- <code className="rounded bg-white/10 px-2 py-1 text-sm">
810
+ <code className="bg-fm-surface-secondary rounded px-2 py-1 text-sm">
783
811
  size="lg"
784
812
  </code>{" "}
785
813
  which overrides the parent's medium size setting, making it more
786
814
  prominent.
787
815
  </p>
788
- <div className="mt-4 rounded-lg border border-orange-500/20 bg-orange-500/10 p-3">
789
- <div className="text-sm text-orange-200">
816
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary mt-4 rounded-lg border p-3">
817
+ <div className="text-fm-warning text-sm">
790
818
  <strong>Use case:</strong> Call-to-action tabs, primary
791
819
  navigation items, or tabs that need extra visual emphasis in
792
820
  your interface.
@@ -794,24 +822,28 @@ export const IndividualSizeOverride: Story = {
794
822
  </div>
795
823
  <div className="mt-4 grid grid-cols-1 gap-4 md:grid-cols-2">
796
824
  <div className="rounded-lg border border-blue-500/30 bg-gradient-to-br from-blue-500/20 to-purple-500/20 p-4">
797
- <div className="text-lg font-semibold text-white">Enhanced</div>
798
- <div className="text-sm text-white/70">Better visibility</div>
825
+ <div className="text-fm-primary text-lg font-semibold">
826
+ Enhanced
827
+ </div>
828
+ <div className="text-fm-secondary text-sm">
829
+ Better visibility
830
+ </div>
799
831
  </div>
800
832
  <div className="rounded-lg border border-green-500/30 bg-gradient-to-br from-green-500/20 to-teal-500/20 p-4">
801
- <div className="text-lg font-semibold text-white">
833
+ <div className="text-fm-primary text-lg font-semibold">
802
834
  Prominent
803
835
  </div>
804
- <div className="text-sm text-white/70">Draws attention</div>
836
+ <div className="text-fm-secondary text-sm">Draws attention</div>
805
837
  </div>
806
838
  </div>
807
839
  </div>
808
840
  </TabsContent>
809
841
  </Tabs>
810
842
 
811
- <div className="space-y-1 text-center text-xs text-white/60">
843
+ <div className="text-fm-secondary space-y-1 text-center text-xs">
812
844
  <p>
813
845
  Parent Tabs component:{" "}
814
- <code className="rounded bg-white/10 px-2 py-0.5 font-mono">
846
+ <code className="bg-fm-surface-secondary rounded px-2 py-0.5 font-mono">
815
847
  size="md"
816
848
  </code>
817
849
  </p>
@@ -856,10 +888,10 @@ export const ComplexContent: Story = {
856
888
  <TabsContent value="products" className="mt-6">
857
889
  <div className="space-y-4">
858
890
  <div className="flex items-center justify-between">
859
- <h3 className="text-lg font-semibold text-white">
891
+ <h3 className="text-fm-primary text-lg font-semibold">
860
892
  Product Catalog
861
893
  </h3>
862
- <button className="flex items-center gap-2 rounded-lg bg-blue-500 px-4 py-2 text-white transition-colors hover:bg-blue-600">
894
+ <button className="bg-fm-surface-info text-fm-surface-primary hover:bg-fm-surface-info flex items-center gap-2 rounded-lg px-4 py-2 transition-colors">
863
895
  <PlusIcon className="h-4 w-4" />
864
896
  Add Product
865
897
  </button>
@@ -906,22 +938,22 @@ export const ComplexContent: Story = {
906
938
  ].map((product, index) => (
907
939
  <div
908
940
  key={index}
909
- className="rounded-lg border border-white/10 bg-white/5 p-4 transition-colors hover:bg-white/10"
941
+ className="border-fm-divider-secondary bg-fm-surface-secondary hover:bg-fm-surface-tertiary rounded-lg border p-4 transition-colors"
910
942
  >
911
943
  <div className="mb-3 flex aspect-square items-center justify-center rounded-lg bg-gradient-to-br from-purple-500/20 to-pink-500/20">
912
- <SearchIcon className="h-8 w-8 text-white/50" />
944
+ <SearchIcon className="text-fm-tertiary h-8 w-8" />
913
945
  </div>
914
- <h4 className="mb-1 font-medium text-white">
946
+ <h4 className="text-fm-primary mb-1 font-medium">
915
947
  {product.name}
916
948
  </h4>
917
- <p className="mb-2 text-sm text-white/60">
949
+ <p className="text-fm-secondary mb-2 text-sm">
918
950
  {product.category}
919
951
  </p>
920
952
  <div className="flex items-center justify-between">
921
- <span className="font-semibold text-white">
953
+ <span className="text-fm-primary font-semibold">
922
954
  {product.price}
923
955
  </span>
924
- <span className="text-xs text-white/60">
956
+ <span className="text-fm-secondary text-xs">
925
957
  {product.stock} in stock
926
958
  </span>
927
959
  </div>
@@ -934,14 +966,14 @@ export const ComplexContent: Story = {
934
966
  <TabsContent value="customers" className="mt-6">
935
967
  <div className="space-y-4">
936
968
  <div className="flex items-center justify-between">
937
- <h3 className="text-lg font-semibold text-white">
969
+ <h3 className="text-fm-primary text-lg font-semibold">
938
970
  Customer Directory
939
971
  </h3>
940
972
  <div className="flex gap-2">
941
- <button className="rounded bg-white/10 px-3 py-1 text-sm text-white transition-colors hover:bg-white/20">
973
+ <button className="bg-fm-surface-secondary text-fm-primary hover:bg-fm-surface-tertiary rounded px-3 py-1 text-sm transition-colors">
942
974
  Export
943
975
  </button>
944
- <button className="rounded bg-blue-500 px-3 py-1 text-sm text-white transition-colors hover:bg-blue-600">
976
+ <button className="bg-fm-surface-info text-fm-surface-primary hover:bg-fm-surface-info rounded px-3 py-1 text-sm transition-colors">
945
977
  Add Customer
946
978
  </button>
947
979
  </div>
@@ -982,11 +1014,11 @@ export const ComplexContent: Story = {
982
1014
  ].map((customer, index) => (
983
1015
  <div
984
1016
  key={index}
985
- className="flex items-center justify-between rounded-lg border border-white/10 bg-white/5 p-4 transition-colors hover:bg-white/10"
1017
+ className="border-fm-divider-secondary bg-fm-surface-secondary hover:bg-fm-surface-tertiary flex items-center justify-between rounded-lg border p-4 transition-colors"
986
1018
  >
987
1019
  <div className="flex items-center gap-3">
988
1020
  <div className="flex h-10 w-10 items-center justify-center rounded-full bg-gradient-to-br from-blue-500 to-purple-500">
989
- <span className="text-sm font-semibold text-white">
1021
+ <span className="text-fm-primary text-sm font-semibold">
990
1022
  {customer.name
991
1023
  .split(" ")
992
1024
  .map((n) => n[0])
@@ -994,19 +1026,19 @@ export const ComplexContent: Story = {
994
1026
  </span>
995
1027
  </div>
996
1028
  <div>
997
- <div className="font-medium text-white">
1029
+ <div className="text-fm-primary font-medium">
998
1030
  {customer.name}
999
1031
  </div>
1000
- <div className="text-sm text-white/60">
1032
+ <div className="text-fm-secondary text-sm">
1001
1033
  {customer.email}
1002
1034
  </div>
1003
1035
  </div>
1004
1036
  </div>
1005
1037
  <div className="text-right">
1006
- <div className="font-medium text-white">
1038
+ <div className="text-fm-primary font-medium">
1007
1039
  {customer.value}
1008
1040
  </div>
1009
- <div className="text-sm text-white/60">
1041
+ <div className="text-fm-secondary text-sm">
1010
1042
  {customer.orders} orders
1011
1043
  </div>
1012
1044
  </div>
@@ -1019,11 +1051,11 @@ export const ComplexContent: Story = {
1019
1051
  <TabsContent value="orders" className="mt-6">
1020
1052
  <div className="space-y-4">
1021
1053
  <div className="flex items-center justify-between">
1022
- <h3 className="text-lg font-semibold text-white">
1054
+ <h3 className="text-fm-primary text-lg font-semibold">
1023
1055
  Recent Orders
1024
1056
  </h3>
1025
1057
  <div className="flex gap-2">
1026
- <select className="rounded border border-white/20 bg-white/10 px-3 py-1 text-sm text-white">
1058
+ <select className="border-fm-divider-secondary bg-fm-surface-secondary text-fm-primary rounded border px-3 py-1 text-sm">
1027
1059
  <option>All Status</option>
1028
1060
  <option>Pending</option>
1029
1061
  <option>Processing</option>
@@ -1073,32 +1105,36 @@ export const ComplexContent: Story = {
1073
1105
  ].map((order, index) => (
1074
1106
  <div
1075
1107
  key={index}
1076
- className="flex items-center justify-between rounded-lg border border-white/10 bg-white/5 p-4 transition-colors hover:bg-white/10"
1108
+ className="border-fm-divider-secondary bg-fm-surface-secondary hover:bg-fm-surface-tertiary flex items-center justify-between rounded-lg border p-4 transition-colors"
1077
1109
  >
1078
1110
  <div className="flex items-center gap-4">
1079
1111
  <div>
1080
- <div className="font-medium text-white">{order.id}</div>
1081
- <div className="text-sm text-white/60">
1112
+ <div className="text-fm-primary font-medium">
1113
+ {order.id}
1114
+ </div>
1115
+ <div className="text-fm-secondary text-sm">
1082
1116
  {order.customer}
1083
1117
  </div>
1084
1118
  </div>
1085
1119
  </div>
1086
1120
  <div className="flex items-center gap-4">
1087
1121
  <div className="text-right">
1088
- <div className="font-medium text-white">
1122
+ <div className="text-fm-primary font-medium">
1089
1123
  {order.total}
1090
1124
  </div>
1091
- <div className="text-sm text-white/60">{order.date}</div>
1125
+ <div className="text-fm-secondary text-sm">
1126
+ {order.date}
1127
+ </div>
1092
1128
  </div>
1093
1129
  <span
1094
1130
  className={`rounded-full px-2 py-1 text-xs ${
1095
1131
  order.status === "delivered"
1096
- ? "bg-green-500/20 text-green-400"
1132
+ ? "text-fm-positive bg-green-500/20"
1097
1133
  : order.status === "shipped"
1098
- ? "bg-blue-500/20 text-blue-400"
1134
+ ? "text-fm-info bg-blue-500/20"
1099
1135
  : order.status === "processing"
1100
1136
  ? "bg-yellow-500/20 text-yellow-400"
1101
- : "bg-gray-500/20 text-gray-400"
1137
+ : "bg-fm-surface-secondary text-fm-tertiary"
1102
1138
  }`}
1103
1139
  >
1104
1140
  {order.status}
@@ -1113,50 +1149,58 @@ export const ComplexContent: Story = {
1113
1149
  <TabsContent value="analytics" className="mt-6">
1114
1150
  <div className="space-y-6">
1115
1151
  <div className="flex items-center gap-3">
1116
- <TickCircleIcon className="h-6 w-6 text-green-400" />
1117
- <h3 className="text-lg font-semibold text-white">
1152
+ <TickCircleIcon className="text-fm-positive h-6 w-6" />
1153
+ <h3 className="text-fm-primary text-lg font-semibold">
1118
1154
  Sales Analytics
1119
1155
  </h3>
1120
- <span className="rounded-full bg-green-500/20 px-3 py-1 text-xs text-green-400">
1156
+ <span className="text-fm-positive rounded-full bg-green-500/20 px-3 py-1 text-xs">
1121
1157
  Large Tab
1122
1158
  </span>
1123
1159
  </div>
1124
1160
 
1125
1161
  <div className="grid grid-cols-1 gap-4 md:grid-cols-2 lg:grid-cols-4">
1126
1162
  <div className="rounded-lg border border-blue-500/30 bg-gradient-to-br from-blue-500/20 to-cyan-500/20 p-4">
1127
- <div className="text-2xl font-bold text-white">$45,231</div>
1128
- <div className="text-sm text-white/70">Revenue This Month</div>
1129
- <div className="mt-1 text-xs text-green-400">
1163
+ <div className="text-fm-primary text-2xl font-bold">
1164
+ $45,231
1165
+ </div>
1166
+ <div className="text-fm-secondary text-sm">
1167
+ Revenue This Month
1168
+ </div>
1169
+ <div className="text-fm-positive mt-1 text-xs">
1130
1170
  ↗ +12% vs last month
1131
1171
  </div>
1132
1172
  </div>
1133
1173
  <div className="rounded-lg border border-green-500/30 bg-gradient-to-br from-green-500/20 to-emerald-500/20 p-4">
1134
- <div className="text-2xl font-bold text-white">1,847</div>
1135
- <div className="text-sm text-white/70">Orders This Month</div>
1136
- <div className="mt-1 text-xs text-green-400">
1174
+ <div className="text-fm-primary text-2xl font-bold">1,847</div>
1175
+ <div className="text-fm-secondary text-sm">
1176
+ Orders This Month
1177
+ </div>
1178
+ <div className="text-fm-positive mt-1 text-xs">
1137
1179
  ↗ +8% vs last month
1138
1180
  </div>
1139
1181
  </div>
1140
1182
  <div className="rounded-lg border border-purple-500/30 bg-gradient-to-br from-purple-500/20 to-pink-500/20 p-4">
1141
- <div className="text-2xl font-bold text-white">324</div>
1142
- <div className="text-sm text-white/70">New Customers</div>
1143
- <div className="mt-1 text-xs text-green-400">
1183
+ <div className="text-fm-primary text-2xl font-bold">324</div>
1184
+ <div className="text-fm-secondary text-sm">New Customers</div>
1185
+ <div className="text-fm-positive mt-1 text-xs">
1144
1186
  ↗ +15% vs last month
1145
1187
  </div>
1146
1188
  </div>
1147
1189
  <div className="rounded-lg border border-orange-500/30 bg-gradient-to-br from-orange-500/20 to-red-500/20 p-4">
1148
- <div className="text-2xl font-bold text-white">$24.50</div>
1149
- <div className="text-sm text-white/70">Avg Order Value</div>
1150
- <div className="mt-1 text-xs text-red-400">
1190
+ <div className="text-fm-primary text-2xl font-bold">$24.50</div>
1191
+ <div className="text-fm-secondary text-sm">Avg Order Value</div>
1192
+ <div className="text-fm-icon-negative mt-1 text-xs">
1151
1193
  ↘ -3% vs last month
1152
1194
  </div>
1153
1195
  </div>
1154
1196
  </div>
1155
1197
 
1156
- <div className="rounded-lg border border-amber-500/20 bg-amber-500/10 p-4">
1157
- <div className="text-sm text-amber-200">
1198
+ <div className="border-fm-divider-warning bg-fm-surface-warning-sec rounded-lg border p-4">
1199
+ <div className="text-fm-warning text-sm">
1158
1200
  <strong>Note:</strong> The Analytics tab uses{" "}
1159
- <code className="rounded bg-white/10 px-2 py-1">size="lg"</code>
1201
+ <code className="bg-fm-surface-secondary rounded px-2 py-1">
1202
+ size="lg"
1203
+ </code>
1160
1204
  to emphasize its importance as the primary data view, while
1161
1205
  other tabs inherit the default medium size.
1162
1206
  </div>
@@ -1181,7 +1225,7 @@ export const GlowDirectionVariations: Story = {
1181
1225
  render: () => (
1182
1226
  <div className="w-full max-w-4xl space-y-8">
1183
1227
  <div className="space-y-4">
1184
- <h3 className="text-lg font-medium text-white">
1228
+ <h3 className="text-fm-primary text-lg font-medium">
1185
1229
  Bottom Glow (Default)
1186
1230
  </h3>
1187
1231
  <Tabs defaultValue="tab1" size="md" className="w-full">
@@ -1197,24 +1241,24 @@ export const GlowDirectionVariations: Story = {
1197
1241
  </TabsTrigger>
1198
1242
  </TabsList>
1199
1243
  <TabsContent value="tab1" className="mt-4">
1200
- <div className="rounded-lg border border-white/10 bg-white/5 p-6">
1201
- <p className="text-white/70">
1244
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
1245
+ <p className="text-fm-secondary">
1202
1246
  Bottom glow creates an underline effect that emphasizes the
1203
1247
  tab's connection to content below.
1204
1248
  </p>
1205
1249
  </div>
1206
1250
  </TabsContent>
1207
1251
  <TabsContent value="tab2" className="mt-4">
1208
- <div className="rounded-lg border border-white/10 bg-white/5 p-6">
1209
- <p className="text-white/70">
1252
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
1253
+ <p className="text-fm-secondary">
1210
1254
  Perfect for interfaces where you want to draw attention to the
1211
1255
  content area.
1212
1256
  </p>
1213
1257
  </div>
1214
1258
  </TabsContent>
1215
1259
  <TabsContent value="tab3" className="mt-4">
1216
- <div className="rounded-lg border border-white/10 bg-white/5 p-6">
1217
- <p className="text-white/70">
1260
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
1261
+ <p className="text-fm-secondary">
1218
1262
  Creates a strong visual connection between the tab and its
1219
1263
  associated content.
1220
1264
  </p>
@@ -1224,7 +1268,7 @@ export const GlowDirectionVariations: Story = {
1224
1268
  </div>
1225
1269
 
1226
1270
  <div className="space-y-4">
1227
- <h3 className="text-lg font-medium text-white">Top Glow</h3>
1271
+ <h3 className="text-fm-primary text-lg font-medium">Top Glow</h3>
1228
1272
  <Tabs defaultValue="tab1" size="md" className="w-full">
1229
1273
  <TabsList className="grid w-full grid-cols-3">
1230
1274
  <TabsTrigger value="tab1" glowDirection="top">
@@ -1238,23 +1282,23 @@ export const GlowDirectionVariations: Story = {
1238
1282
  </TabsTrigger>
1239
1283
  </TabsList>
1240
1284
  <TabsContent value="tab1" className="mt-4">
1241
- <div className="rounded-lg border border-white/10 bg-white/5 p-6">
1242
- <p className="text-white/70">
1285
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
1286
+ <p className="text-fm-secondary">
1243
1287
  Top glow creates a subtle highlight effect above the active tab,
1244
1288
  perfect for elevated interfaces.
1245
1289
  </p>
1246
1290
  </div>
1247
1291
  </TabsContent>
1248
1292
  <TabsContent value="tab2" className="mt-4">
1249
- <div className="rounded-lg border border-white/10 bg-white/5 p-6">
1250
- <p className="text-white/70">
1293
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
1294
+ <p className="text-fm-secondary">
1251
1295
  Alternative glow direction for different visual effects.
1252
1296
  </p>
1253
1297
  </div>
1254
1298
  </TabsContent>
1255
1299
  <TabsContent value="tab3" className="mt-4">
1256
- <div className="rounded-lg border border-white/10 bg-white/5 p-6">
1257
- <p className="text-white/70">
1300
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
1301
+ <p className="text-fm-secondary">
1258
1302
  Ideal for creating variety in your interface design.
1259
1303
  </p>
1260
1304
  </div>
@@ -1263,7 +1307,7 @@ export const GlowDirectionVariations: Story = {
1263
1307
  </div>
1264
1308
 
1265
1309
  <div className="space-y-4">
1266
- <h3 className="text-lg font-medium text-white">
1310
+ <h3 className="text-fm-primary text-lg font-medium">
1267
1311
  Mixed Glow Directions
1268
1312
  </h3>
1269
1313
  <Tabs defaultValue="tab1" size="md" className="w-full">
@@ -1282,32 +1326,32 @@ export const GlowDirectionVariations: Story = {
1282
1326
  </TabsTrigger>
1283
1327
  </TabsList>
1284
1328
  <TabsContent value="tab1" className="mt-4">
1285
- <div className="rounded-lg border border-white/10 bg-white/5 p-6">
1286
- <p className="text-white/70">
1329
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
1330
+ <p className="text-fm-secondary">
1287
1331
  You can mix and match glow directions for different visual
1288
1332
  effects.
1289
1333
  </p>
1290
1334
  </div>
1291
1335
  </TabsContent>
1292
1336
  <TabsContent value="tab2" className="mt-4">
1293
- <div className="rounded-lg border border-white/10 bg-white/5 p-6">
1294
- <p className="text-white/70">
1337
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
1338
+ <p className="text-fm-secondary">
1295
1339
  Each tab can have its own glow direction for maximum
1296
1340
  flexibility.
1297
1341
  </p>
1298
1342
  </div>
1299
1343
  </TabsContent>
1300
1344
  <TabsContent value="tab3" className="mt-4">
1301
- <div className="rounded-lg border border-white/10 bg-white/5 p-6">
1302
- <p className="text-white/70">
1345
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
1346
+ <p className="text-fm-secondary">
1303
1347
  Useful for creating visual hierarchy or emphasizing specific
1304
1348
  tabs.
1305
1349
  </p>
1306
1350
  </div>
1307
1351
  </TabsContent>
1308
1352
  <TabsContent value="tab4" className="mt-4">
1309
- <div className="rounded-lg border border-white/10 bg-white/5 p-6">
1310
- <p className="text-white/70">
1353
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
1354
+ <p className="text-fm-secondary">
1311
1355
  Experiment with different combinations to achieve your desired
1312
1356
  design.
1313
1357
  </p>
@@ -1316,8 +1360,8 @@ export const GlowDirectionVariations: Story = {
1316
1360
  </Tabs>
1317
1361
  </div>
1318
1362
 
1319
- <div className="rounded-lg border border-blue-500/20 bg-blue-500/10 p-4">
1320
- <div className="text-sm text-blue-200">
1363
+ <div className="border-fm-divider-secondary bg-fm-surface-info-sec rounded-lg border p-4">
1364
+ <div className="text-fm-info text-sm">
1321
1365
  <strong>Note:</strong> The glowDirection prop allows you to customize
1322
1366
  the visual effect of active tabs. Use "bottom" (default) for an
1323
1367
  underline-style glow or "top" for a subtle highlight effect. You can
@@ -1356,10 +1400,10 @@ export const InteractiveStates: Story = {
1356
1400
  return (
1357
1401
  <div className="w-full max-w-3xl space-y-6">
1358
1402
  <div className="text-center">
1359
- <h3 className="mb-2 text-lg font-medium text-white">
1403
+ <h3 className="text-fm-primary mb-2 text-lg font-medium">
1360
1404
  Interactive States Demo
1361
1405
  </h3>
1362
- <p className="text-sm text-white/70">
1406
+ <p className="text-fm-secondary text-sm">
1363
1407
  Click tabs to see loading states and transitions
1364
1408
  </p>
1365
1409
  </div>
@@ -1377,7 +1421,7 @@ export const InteractiveStates: Story = {
1377
1421
  </TabsTrigger>
1378
1422
  <TabsTrigger value="loading" className="gap-2" disabled={isLoading}>
1379
1423
  {isLoading && activeTab === "loading" ? (
1380
- <div className="h-4 w-4 animate-spin rounded-full border-2 border-white/30 border-t-white" />
1424
+ <div className="border-fm-divider-secondary border-t-fm-primary h-4 w-4 animate-spin rounded-full border-2" />
1381
1425
  ) : (
1382
1426
  <AlertIcon className="h-4 w-4" />
1383
1427
  )}
@@ -1394,62 +1438,66 @@ export const InteractiveStates: Story = {
1394
1438
  </TabsList>
1395
1439
 
1396
1440
  <TabsContent value="normal" className="mt-6">
1397
- <div className="rounded-lg border border-white/10 bg-white/5 p-6">
1398
- <h3 className="mb-4 text-lg font-semibold text-white">
1441
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
1442
+ <h3 className="text-fm-primary mb-4 text-lg font-semibold">
1399
1443
  Normal State
1400
1444
  </h3>
1401
- <p className="mb-4 text-white/70">
1445
+ <p className="text-fm-secondary mb-4">
1402
1446
  This is the default state of the component with all
1403
1447
  functionality working normally.
1404
1448
  </p>
1405
1449
  <div className="grid grid-cols-2 gap-4">
1406
- <div className="rounded-lg border border-blue-500/20 bg-blue-500/10 p-3">
1407
- <div className="text-lg font-semibold text-white">98.5%</div>
1408
- <div className="text-sm text-white/70">System Uptime</div>
1450
+ <div className="border-fm-divider-secondary bg-fm-surface-info-sec rounded-lg border p-3">
1451
+ <div className="text-fm-primary text-lg font-semibold">
1452
+ 98.5%
1453
+ </div>
1454
+ <div className="text-fm-secondary text-sm">System Uptime</div>
1409
1455
  </div>
1410
- <div className="rounded-lg border border-green-500/20 bg-green-500/10 p-3">
1411
- <div className="text-lg font-semibold text-white">1,247</div>
1412
- <div className="text-sm text-white/70">Active Users</div>
1456
+ <div className="border-fm-divider-positive bg-fm-surface-positive-sec rounded-lg border p-3">
1457
+ <div className="text-fm-primary text-lg font-semibold">
1458
+ 1,247
1459
+ </div>
1460
+ <div className="text-fm-secondary text-sm">Active Users</div>
1413
1461
  </div>
1414
1462
  </div>
1415
1463
  </div>
1416
1464
  </TabsContent>
1417
1465
 
1418
1466
  <TabsContent value="loading" className="mt-6">
1419
- <div className="rounded-lg border border-white/10 bg-white/5 p-6">
1467
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
1420
1468
  {isLoading ? (
1421
1469
  <div className="py-8 text-center">
1422
- <div className="mx-auto mb-4 h-8 w-8 animate-spin rounded-full border-2 border-white/30 border-t-white" />
1423
- <h3 className="mb-2 text-lg font-semibold text-white">
1470
+ <div className="border-fm-divider-secondary border-t-fm-primary mx-auto mb-4 h-8 w-8 animate-spin rounded-full border-2" />
1471
+ <h3 className="text-fm-primary mb-2 text-lg font-semibold">
1424
1472
  Loading Content...
1425
1473
  </h3>
1426
- <p className="text-white/70">
1474
+ <p className="text-fm-secondary">
1427
1475
  Please wait while we fetch the latest data.
1428
1476
  </p>
1429
1477
  </div>
1430
1478
  ) : (
1431
1479
  <>
1432
- <h3 className="mb-4 text-lg font-semibold text-white">
1480
+ <h3 className="text-fm-primary mb-4 text-lg font-semibold">
1433
1481
  Loading State Demo
1434
1482
  </h3>
1435
- <p className="mb-4 text-white/70">
1483
+ <p className="text-fm-secondary mb-4">
1436
1484
  This tab demonstrates loading states and async content
1437
1485
  fetching.
1438
1486
  </p>
1439
1487
  <div className="space-y-3">
1440
- <div className="flex items-center gap-3 rounded-lg bg-white/5 p-3">
1441
- <div className="flex h-5 w-5 items-center justify-center rounded-full bg-green-500">
1442
- <TickCircleIcon className="h-3 w-3 text-white" />
1488
+ <div className="bg-fm-surface-secondary flex items-center gap-3 rounded-lg p-3">
1489
+ <div className="bg-fm-surface-positive flex h-5 w-5 items-center justify-center rounded-full">
1490
+ <TickCircleIcon className="text-fm-primary h-3 w-3" />
1443
1491
  </div>
1444
- <span className="text-white/70">
1492
+ <span className="text-fm-secondary">
1445
1493
  Content loaded successfully
1446
1494
  </span>
1447
1495
  </div>
1448
- <div className="flex items-center gap-3 rounded-lg bg-white/5 p-3">
1449
- <div className="flex h-5 w-5 items-center justify-center rounded-full bg-blue-500">
1450
- <AlertIcon className="h-3 w-3 text-white" />
1496
+ <div className="bg-fm-surface-secondary flex items-center gap-3 rounded-lg p-3">
1497
+ <div className="bg-fm-surface-info flex h-5 w-5 items-center justify-center rounded-full">
1498
+ <AlertIcon className="text-fm-primary h-3 w-3" />
1451
1499
  </div>
1452
- <span className="text-white/70">
1500
+ <span className="text-fm-secondary">
1453
1501
  Data synchronized with server
1454
1502
  </span>
1455
1503
  </div>
@@ -1460,31 +1508,31 @@ export const InteractiveStates: Story = {
1460
1508
  </TabsContent>
1461
1509
 
1462
1510
  <TabsContent value="error" className="mt-6">
1463
- <div className="rounded-lg border border-red-500/20 bg-red-500/5 p-6">
1511
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
1464
1512
  <div className="mb-4 flex items-start gap-3">
1465
- <CrossIcon className="mt-0.5 h-6 w-6 flex-shrink-0 text-red-400" />
1513
+ <CrossIcon className="text-fm-icon-negative mt-0.5 h-6 w-6 flex-shrink-0" />
1466
1514
  <div>
1467
- <h3 className="text-lg font-semibold text-white">
1515
+ <h3 className="text-fm-primary text-lg font-semibold">
1468
1516
  Error State
1469
1517
  </h3>
1470
- <p className="text-white/70">
1518
+ <p className="text-fm-secondary">
1471
1519
  Something went wrong while loading the content.
1472
1520
  </p>
1473
1521
  </div>
1474
1522
  </div>
1475
1523
 
1476
- <div className="mb-4 rounded-lg border border-red-500/20 bg-red-500/10 p-4">
1477
- <div className="text-sm text-red-200">
1524
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary mb-4 rounded-lg border p-4">
1525
+ <div className="text-fm-secondary text-sm">
1478
1526
  <strong>Error:</strong> Failed to fetch data from the server.
1479
1527
  Please check your connection and try again.
1480
1528
  </div>
1481
1529
  </div>
1482
1530
 
1483
1531
  <div className="flex gap-2">
1484
- <button className="rounded-lg bg-red-500 px-4 py-2 text-white transition-colors hover:bg-red-600">
1532
+ <button className="bg-fm-surface-negative text-fm-surface-primary hover:bg-fm-surface-negative rounded-lg px-4 py-2 transition-colors">
1485
1533
  Retry
1486
1534
  </button>
1487
- <button className="rounded-lg bg-white/10 px-4 py-2 text-white transition-colors hover:bg-white/20">
1535
+ <button className="bg-fm-surface-secondary text-fm-primary hover:bg-fm-surface-tertiary rounded-lg px-4 py-2 transition-colors">
1488
1536
  Report Issue
1489
1537
  </button>
1490
1538
  </div>
@@ -1492,38 +1540,46 @@ export const InteractiveStates: Story = {
1492
1540
  </TabsContent>
1493
1541
 
1494
1542
  <TabsContent value="success" className="mt-6">
1495
- <div className="rounded-lg border border-green-500/20 bg-green-500/5 p-6">
1543
+ <div className="border-fm-divider-positive bg-fm-surface-positive-sec rounded-lg border p-6">
1496
1544
  <div className="mb-4 flex items-start gap-3">
1497
- <TickCircleIcon className="mt-0.5 h-6 w-6 flex-shrink-0 text-green-400" />
1545
+ <TickCircleIcon className="text-fm-positive mt-0.5 h-6 w-6 flex-shrink-0" />
1498
1546
  <div>
1499
- <h3 className="text-lg font-semibold text-white">
1547
+ <h3 className="text-fm-primary text-lg font-semibold">
1500
1548
  Success State
1501
1549
  </h3>
1502
- <p className="text-white/70">
1550
+ <p className="text-fm-secondary">
1503
1551
  Operation completed successfully!
1504
1552
  </p>
1505
1553
  </div>
1506
1554
  </div>
1507
1555
 
1508
1556
  <div className="space-y-3">
1509
- <div className="rounded-lg border border-green-500/20 bg-green-500/10 p-4">
1510
- <div className="text-sm text-green-200">
1557
+ <div className="border-fm-divider-positive bg-fm-surface-positive-sec rounded-lg border p-4">
1558
+ <div className="text-fm-positive text-sm">
1511
1559
  ✅ All systems are operational and running smoothly.
1512
1560
  </div>
1513
1561
  </div>
1514
1562
 
1515
1563
  <div className="grid grid-cols-3 gap-3">
1516
- <div className="rounded-lg bg-white/5 p-3 text-center">
1517
- <div className="text-lg font-semibold text-white">100%</div>
1518
- <div className="text-xs text-white/60">Success Rate</div>
1564
+ <div className="bg-fm-surface-secondary rounded-lg p-3 text-center">
1565
+ <div className="text-fm-primary text-lg font-semibold">
1566
+ 100%
1567
+ </div>
1568
+ <div className="text-fm-secondary text-xs">
1569
+ Success Rate
1570
+ </div>
1519
1571
  </div>
1520
- <div className="rounded-lg bg-white/5 p-3 text-center">
1521
- <div className="text-lg font-semibold text-white">0ms</div>
1522
- <div className="text-xs text-white/60">Error Rate</div>
1572
+ <div className="bg-fm-surface-secondary rounded-lg p-3 text-center">
1573
+ <div className="text-fm-primary text-lg font-semibold">
1574
+ 0ms
1575
+ </div>
1576
+ <div className="text-fm-secondary text-xs">Error Rate</div>
1523
1577
  </div>
1524
- <div className="rounded-lg bg-white/5 p-3 text-center">
1525
- <div className="text-lg font-semibold text-white">Fast</div>
1526
- <div className="text-xs text-white/60">Performance</div>
1578
+ <div className="bg-fm-surface-secondary rounded-lg p-3 text-center">
1579
+ <div className="text-fm-primary text-lg font-semibold">
1580
+ Fast
1581
+ </div>
1582
+ <div className="text-fm-secondary text-xs">Performance</div>
1527
1583
  </div>
1528
1584
  </div>
1529
1585
  </div>
@@ -1531,10 +1587,10 @@ export const InteractiveStates: Story = {
1531
1587
  </TabsContent>
1532
1588
  </Tabs>
1533
1589
 
1534
- <div className="text-center text-xs text-white/60">
1590
+ <div className="text-fm-secondary text-center text-xs">
1535
1591
  <p>
1536
1592
  Current active tab:{" "}
1537
- <span className="rounded bg-white/10 px-2 py-0.5 font-mono">
1593
+ <span className="bg-fm-surface-secondary rounded px-2 py-0.5 font-mono">
1538
1594
  {activeTab}
1539
1595
  </span>
1540
1596
  </p>