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
@@ -175,14 +175,16 @@ export const Basic: Story = {
175
175
  export const Variants: Story = {
176
176
  render: () => (
177
177
  <div className="flex flex-col gap-8 p-8">
178
- <h3 className="text-center text-lg font-medium text-white">
178
+ <h3 className="text-fm-primary text-center text-lg font-medium">
179
179
  Toggle Variants
180
180
  </h3>
181
181
 
182
182
  <div className="grid grid-cols-1 gap-6 lg:grid-cols-2">
183
183
  {/* Default Variant */}
184
184
  <div className="space-y-4">
185
- <h4 className="text-sm font-medium text-white/70">Default Variant</h4>
185
+ <h4 className="text-fm-secondary text-sm font-medium">
186
+ Default Variant
187
+ </h4>
186
188
  <div className="flex flex-wrap gap-4">
187
189
  <Toggle aria-label="Default unpressed">Default</Toggle>
188
190
  <Toggle defaultPressed aria-label="Default pressed">
@@ -196,7 +198,9 @@ export const Variants: Story = {
196
198
 
197
199
  {/* Outline Variant */}
198
200
  <div className="space-y-4">
199
- <h4 className="text-sm font-medium text-white/70">Outline Variant</h4>
201
+ <h4 className="text-fm-secondary text-sm font-medium">
202
+ Outline Variant
203
+ </h4>
200
204
  <div className="flex flex-wrap gap-4">
201
205
  <Toggle variant="outline" aria-label="Outline unpressed">
202
206
  Outline
@@ -216,7 +220,9 @@ export const Variants: Story = {
216
220
 
217
221
  {/* Filled Variant */}
218
222
  <div className="space-y-4">
219
- <h4 className="text-sm font-medium text-white/70">Filled Variant</h4>
223
+ <h4 className="text-fm-secondary text-sm font-medium">
224
+ Filled Variant
225
+ </h4>
220
226
  <div className="flex flex-wrap gap-4">
221
227
  <Toggle variant="filled" aria-label="Filled unpressed">
222
228
  Filled
@@ -246,14 +252,14 @@ export const Variants: Story = {
246
252
  export const Sizes: Story = {
247
253
  render: () => (
248
254
  <div className="space-y-8 p-8">
249
- <h3 className="text-center text-lg font-medium text-white">
255
+ <h3 className="text-fm-primary text-center text-lg font-medium">
250
256
  Toggle Sizes
251
257
  </h3>
252
258
 
253
259
  <div className="space-y-6">
254
260
  {/* Size Comparison */}
255
261
  <div className="space-y-4">
256
- <h4 className="text-center text-sm font-medium text-white/70">
262
+ <h4 className="text-fm-secondary text-center text-sm font-medium">
257
263
  Size Comparison
258
264
  </h4>
259
265
  <div className="flex items-center justify-center gap-4">
@@ -261,26 +267,26 @@ export const Sizes: Story = {
261
267
  <Toggle size="sm" aria-label="Small toggle">
262
268
  Small
263
269
  </Toggle>
264
- <span className="text-xs text-white/60">Small (32px)</span>
270
+ <span className="text-fm-secondary text-xs">Small (32px)</span>
265
271
  </div>
266
272
  <div className="flex flex-col items-center gap-2">
267
273
  <Toggle size="default" aria-label="Default toggle">
268
274
  Default
269
275
  </Toggle>
270
- <span className="text-xs text-white/60">Default (36px)</span>
276
+ <span className="text-fm-secondary text-xs">Default (36px)</span>
271
277
  </div>
272
278
  <div className="flex flex-col items-center gap-2">
273
279
  <Toggle size="lg" aria-label="Large toggle">
274
280
  Large
275
281
  </Toggle>
276
- <span className="text-xs text-white/60">Large (40px)</span>
282
+ <span className="text-fm-secondary text-xs">Large (40px)</span>
277
283
  </div>
278
284
  </div>
279
285
  </div>
280
286
 
281
287
  {/* Sizes with Icons */}
282
288
  <div className="space-y-4">
283
- <h4 className="text-center text-sm font-medium text-white/70">
289
+ <h4 className="text-fm-secondary text-center text-sm font-medium">
284
290
  With Icons
285
291
  </h4>
286
292
  <div className="flex items-center justify-center gap-4">
@@ -301,7 +307,7 @@ export const Sizes: Story = {
301
307
 
302
308
  {/* Icon Only Sizes */}
303
309
  <div className="space-y-4">
304
- <h4 className="text-center text-sm font-medium text-white/70">
310
+ <h4 className="text-fm-secondary text-center text-sm font-medium">
305
311
  Icon Only
306
312
  </h4>
307
313
  <div className="flex items-center justify-center gap-4">
@@ -338,14 +344,14 @@ export const IconToggles: Story = {
338
344
 
339
345
  return (
340
346
  <div className="space-y-8 p-8">
341
- <h3 className="text-center text-lg font-medium text-white">
347
+ <h3 className="text-fm-primary text-center text-lg font-medium">
342
348
  Icon Toggles
343
349
  </h3>
344
350
 
345
351
  <div className="space-y-6">
346
352
  {/* Icon with Text */}
347
353
  <div className="space-y-4">
348
- <h4 className="text-center text-sm font-medium text-white/70">
354
+ <h4 className="text-fm-secondary text-center text-sm font-medium">
349
355
  Icon with Text
350
356
  </h4>
351
357
  <div className="flex flex-wrap justify-center gap-4">
@@ -380,7 +386,7 @@ export const IconToggles: Story = {
380
386
 
381
387
  {/* Icon Only */}
382
388
  <div className="space-y-4">
383
- <h4 className="text-center text-sm font-medium text-white/70">
389
+ <h4 className="text-fm-secondary text-center text-sm font-medium">
384
390
  Icon Only
385
391
  </h4>
386
392
  <div className="flex flex-wrap justify-center gap-4">
@@ -408,12 +414,14 @@ export const IconToggles: Story = {
408
414
 
409
415
  {/* Different Variants */}
410
416
  <div className="space-y-4">
411
- <h4 className="text-center text-sm font-medium text-white/70">
417
+ <h4 className="text-fm-secondary text-center text-sm font-medium">
412
418
  Different Variants
413
419
  </h4>
414
420
  <div className="grid grid-cols-1 gap-4 lg:grid-cols-2">
415
421
  <div className="space-y-2">
416
- <span className="text-xs text-white/60">Default Variant</span>
422
+ <span className="text-fm-secondary text-xs">
423
+ Default Variant
424
+ </span>
417
425
  <div className="flex flex-wrap gap-2">
418
426
  <Toggle aria-label="Default alert">
419
427
  <AlertIcon />
@@ -428,7 +436,9 @@ export const IconToggles: Story = {
428
436
  </div>
429
437
 
430
438
  <div className="space-y-2">
431
- <span className="text-xs text-white/60">Outline Variant</span>
439
+ <span className="text-fm-secondary text-xs">
440
+ Outline Variant
441
+ </span>
432
442
  <div className="flex flex-wrap gap-2">
433
443
  <Toggle variant="outline" aria-label="Outline alert">
434
444
  <AlertIcon />
@@ -479,18 +489,18 @@ export const InteractiveStates: Story = {
479
489
 
480
490
  return (
481
491
  <div className="space-y-8 p-8">
482
- <h3 className="text-center text-lg font-medium text-white">
492
+ <h3 className="text-fm-primary text-center text-lg font-medium">
483
493
  Interactive States
484
494
  </h3>
485
495
 
486
496
  <div className="space-y-6">
487
497
  {/* Text Formatting Toolbar */}
488
498
  <div className="space-y-4">
489
- <h4 className="text-center text-sm font-medium text-white/70">
499
+ <h4 className="text-fm-secondary text-center text-sm font-medium">
490
500
  Text Formatting Toolbar
491
501
  </h4>
492
502
  <div className="flex justify-center">
493
- <div className="flex items-center gap-1 rounded-lg border border-white/10 bg-white/5 p-2">
503
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary flex items-center gap-1 rounded-lg border p-2">
494
504
  <Toggle
495
505
  size="sm"
496
506
  pressed={states.bold}
@@ -515,7 +525,7 @@ export const InteractiveStates: Story = {
515
525
  >
516
526
  <span className="underline">U</span>
517
527
  </Toggle>
518
- <div className="mx-2 h-6 w-px bg-white/20"></div>
528
+ <div className="bg-fm-surface-tertiary mx-2 h-6 w-px"></div>
519
529
  <Toggle size="sm" aria-label="Add item">
520
530
  <PlusIcon />
521
531
  </Toggle>
@@ -528,14 +538,14 @@ export const InteractiveStates: Story = {
528
538
 
529
539
  {/* Settings Panel */}
530
540
  <div className="space-y-4">
531
- <h4 className="text-center text-sm font-medium text-white/70">
541
+ <h4 className="text-fm-secondary text-center text-sm font-medium">
532
542
  Settings Panel
533
543
  </h4>
534
544
  <div className="mx-auto max-w-xs space-y-3">
535
- <div className="flex items-center justify-between rounded-lg border border-white/10 bg-white/5 p-3">
545
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary flex items-center justify-between rounded-lg border p-3">
536
546
  <div className="flex items-center gap-3">
537
- <AlertIcon className="h-4 w-4 text-blue-400" />
538
- <span className="text-sm text-white">Notifications</span>
547
+ <AlertIcon className="text-fm-icon-info h-4 w-4" />
548
+ <span className="text-fm-primary text-sm">Notifications</span>
539
549
  </div>
540
550
  <Toggle
541
551
  size="sm"
@@ -545,10 +555,10 @@ export const InteractiveStates: Story = {
545
555
  />
546
556
  </div>
547
557
 
548
- <div className="flex items-center justify-between rounded-lg border border-white/10 bg-white/5 p-3">
558
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary flex items-center justify-between rounded-lg border p-3">
549
559
  <div className="flex items-center gap-3">
550
- <TickCircleIcon className="h-4 w-4 text-green-400" />
551
- <span className="text-sm text-white">Auto Save</span>
560
+ <TickCircleIcon className="text-fm-icon-positive h-4 w-4" />
561
+ <span className="text-fm-primary text-sm">Auto Save</span>
552
562
  </div>
553
563
  <Toggle
554
564
  size="sm"
@@ -558,10 +568,10 @@ export const InteractiveStates: Story = {
558
568
  />
559
569
  </div>
560
570
 
561
- <div className="flex items-center justify-between rounded-lg border border-white/10 bg-white/5 p-3">
571
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary flex items-center justify-between rounded-lg border p-3">
562
572
  <div className="flex items-center gap-3">
563
- <EyeOpenIcon className="h-4 w-4 text-purple-400" />
564
- <span className="text-sm text-white">Dark Mode</span>
573
+ <EyeOpenIcon className="text-fm-icon-brand-secondary h-4 w-4" />
574
+ <span className="text-fm-primary text-sm">Dark Mode</span>
565
575
  </div>
566
576
  <Toggle
567
577
  size="sm"
@@ -575,15 +585,21 @@ export const InteractiveStates: Story = {
575
585
 
576
586
  {/* State Display */}
577
587
  <div className="space-y-4">
578
- <h4 className="text-center text-sm font-medium text-white/70">
588
+ <h4 className="text-fm-secondary text-center text-sm font-medium">
579
589
  Current States
580
590
  </h4>
581
- <div className="mx-auto max-w-md rounded-lg border border-white/10 bg-white/5 p-4">
591
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary mx-auto max-w-md rounded-lg border p-4">
582
592
  <div className="grid grid-cols-2 gap-2 text-xs">
583
593
  {Object.entries(states).map(([key, value]) => (
584
594
  <div key={key} className="flex justify-between">
585
- <span className="text-white/70 capitalize">{key}:</span>
586
- <span className={value ? "text-green-400" : "text-red-400"}>
595
+ <span className="text-fm-secondary capitalize">{key}:</span>
596
+ <span
597
+ className={
598
+ value
599
+ ? "text-fm-icon-positive"
600
+ : "text-fm-icon-negative"
601
+ }
602
+ >
587
603
  {value ? "ON" : "OFF"}
588
604
  </span>
589
605
  </div>
@@ -609,27 +625,29 @@ export const InteractiveStates: Story = {
609
625
  export const AccessibilityDemo: Story = {
610
626
  render: () => (
611
627
  <div className="space-y-8 p-8">
612
- <h3 className="text-center text-lg font-medium text-white">
628
+ <h3 className="text-fm-primary text-center text-lg font-medium">
613
629
  Accessibility Features
614
630
  </h3>
615
631
 
616
632
  <div className="space-y-6">
617
- <div className="rounded-lg border border-blue-500/30 bg-blue-900/10 p-4">
618
- <h4 className="mb-2 text-sm font-medium text-blue-300">
633
+ <div className="border-fm-divider-secondary bg-fm-surface-info-sec rounded-lg border p-4">
634
+ <h4 className="text-fm-info mb-2 text-sm font-medium">
619
635
  Keyboard Navigation
620
636
  </h4>
621
- <p className="mb-2 text-xs text-blue-200/70">
637
+ <p className="text-fm-info-sec mb-2 text-xs">
622
638
  Try these keyboard interactions:
623
639
  </p>
624
- <ul className="space-y-1 text-xs text-blue-200/70">
640
+ <ul className="text-fm-info-sec space-y-1 text-xs">
625
641
  <li>
626
- • <kbd className="rounded bg-white/10 px-1">Tab</kbd> to focus
627
- toggles
642
+ • <kbd className="bg-fm-surface-secondary rounded px-1">Tab</kbd>{" "}
643
+ to focus toggles
628
644
  </li>
629
645
  <li>
630
- <kbd className="rounded bg-white/10 px-1">Space</kbd> or{" "}
631
- <kbd className="rounded bg-white/10 px-1">Enter</kbd> to toggle
632
- state
646
+ •{" "}
647
+ <kbd className="bg-fm-surface-secondary rounded px-1">Space</kbd>{" "}
648
+ or{" "}
649
+ <kbd className="bg-fm-surface-secondary rounded px-1">Enter</kbd>{" "}
650
+ to toggle state
633
651
  </li>
634
652
  <li>• Clear focus indicators show current position</li>
635
653
  <li>• Screen readers announce pressed state</li>
@@ -638,7 +656,7 @@ export const AccessibilityDemo: Story = {
638
656
 
639
657
  {/* Keyboard Accessible Examples */}
640
658
  <div className="space-y-4">
641
- <h4 className="text-sm font-medium text-white/70">
659
+ <h4 className="text-fm-secondary text-sm font-medium">
642
660
  Keyboard Accessible Toggles
643
661
  </h4>
644
662
  <div className="flex flex-wrap justify-center gap-4">
@@ -668,12 +686,12 @@ export const AccessibilityDemo: Story = {
668
686
 
669
687
  {/* ARIA Labels Demo */}
670
688
  <div className="space-y-4">
671
- <h4 className="text-sm font-medium text-white/70">
689
+ <h4 className="text-fm-secondary text-sm font-medium">
672
690
  ARIA Labels Best Practices
673
691
  </h4>
674
692
  <div className="grid grid-cols-1 gap-4 lg:grid-cols-2">
675
693
  <div className="space-y-3">
676
- <span className="text-xs text-white/60">Good Examples</span>
694
+ <span className="text-fm-secondary text-xs">Good Examples</span>
677
695
  <div className="space-y-2">
678
696
  <Toggle aria-label="Toggle notifications - receive alerts when new messages arrive">
679
697
  <AlertIcon />
@@ -687,8 +705,8 @@ export const AccessibilityDemo: Story = {
687
705
  </div>
688
706
 
689
707
  <div className="space-y-3">
690
- <span className="text-xs text-white/60">Code Examples</span>
691
- <div className="rounded border border-white/10 bg-white/5 p-3 font-mono text-xs text-white/80">
708
+ <span className="text-fm-secondary text-xs">Code Examples</span>
709
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary text-fm-tertiary rounded border p-3 font-mono text-xs">
692
710
  <div>aria-label="Toggle notifications"</div>
693
711
  <div>aria-label="Show/hide password"</div>
694
712
  <div>aria-label="Enable dark mode"</div>
@@ -697,11 +715,11 @@ export const AccessibilityDemo: Story = {
697
715
  </div>
698
716
  </div>
699
717
 
700
- <div className="rounded-lg border border-amber-500/30 bg-amber-900/10 p-4">
701
- <h4 className="mb-2 text-sm font-medium text-amber-300">
718
+ <div className="border-fm-divider-warning bg-fm-surface-warning-sec rounded-lg border p-4">
719
+ <h4 className="text-fm-warning mb-2 text-sm font-medium">
702
720
  Best Practices
703
721
  </h4>
704
- <ul className="space-y-1 text-xs text-amber-200/70">
722
+ <ul className="text-fm-warning-sec space-y-1 text-xs">
705
723
  <li>• Always provide descriptive aria-label attributes</li>
706
724
  <li>• Include current state in label when helpful</li>
707
725
  <li>• Use consistent toggle patterns across your app</li>
@@ -750,17 +768,17 @@ export const UseCases: Story = {
750
768
 
751
769
  return (
752
770
  <div className="space-y-8 p-8">
753
- <h3 className="text-center text-lg font-medium text-white">
771
+ <h3 className="text-fm-primary text-center text-lg font-medium">
754
772
  Real-world Use Cases
755
773
  </h3>
756
774
 
757
775
  <div className="space-y-8">
758
776
  {/* Editor Toolbar */}
759
777
  <div className="space-y-4">
760
- <h4 className="text-sm font-medium text-white/70">
778
+ <h4 className="text-fm-secondary text-sm font-medium">
761
779
  Editor Toolbar
762
780
  </h4>
763
- <div className="rounded-lg border border-white/10 bg-white/5 p-4">
781
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-4">
764
782
  <div className="flex items-center gap-1">
765
783
  <Toggle
766
784
  size="sm"
@@ -778,7 +796,7 @@ export const UseCases: Story = {
778
796
  >
779
797
  <span className="text-sm italic">I</span>
780
798
  </Toggle>
781
- <div className="mx-2 h-4 w-px bg-white/20"></div>
799
+ <div className="bg-fm-surface-tertiary mx-2 h-4 w-px"></div>
782
800
  <Toggle
783
801
  size="sm"
784
802
  pressed={toolbar.list}
@@ -795,7 +813,7 @@ export const UseCases: Story = {
795
813
  >
796
814
  <span className="font-mono text-sm">&lt;/&gt;</span>
797
815
  </Toggle>
798
- <div className="mx-2 h-4 w-px bg-white/20"></div>
816
+ <div className="bg-fm-surface-tertiary mx-2 h-4 w-px"></div>
799
817
  <Toggle size="sm" aria-label="Insert image">
800
818
  <FileChartIcon />
801
819
  </Toggle>
@@ -808,19 +826,19 @@ export const UseCases: Story = {
808
826
 
809
827
  {/* User Preferences */}
810
828
  <div className="space-y-4">
811
- <h4 className="text-sm font-medium text-white/70">
829
+ <h4 className="text-fm-secondary text-sm font-medium">
812
830
  User Preferences
813
831
  </h4>
814
832
  <div className="grid grid-cols-1 gap-3 lg:grid-cols-2">
815
833
  <div className="space-y-3">
816
- <div className="flex items-center justify-between rounded-lg border border-white/10 bg-white/5 p-3">
834
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary flex items-center justify-between rounded-lg border p-3">
817
835
  <div className="flex items-center gap-3">
818
- <AlertIcon className="h-4 w-4 text-blue-400" />
836
+ <AlertIcon className="text-fm-icon-info h-4 w-4" />
819
837
  <div>
820
- <div className="text-sm text-white">
838
+ <div className="text-fm-primary text-sm">
821
839
  Push Notifications
822
840
  </div>
823
- <div className="text-xs text-white/60">
841
+ <div className="text-fm-secondary text-xs">
824
842
  Get notified of updates
825
843
  </div>
826
844
  </div>
@@ -832,12 +850,12 @@ export const UseCases: Story = {
832
850
  />
833
851
  </div>
834
852
 
835
- <div className="flex items-center justify-between rounded-lg border border-white/10 bg-white/5 p-3">
853
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary flex items-center justify-between rounded-lg border p-3">
836
854
  <div className="flex items-center gap-3">
837
- <TickCircleIcon className="h-4 w-4 text-green-400" />
855
+ <TickCircleIcon className="text-fm-icon-positive h-4 w-4" />
838
856
  <div>
839
- <div className="text-sm text-white">Auto Save</div>
840
- <div className="text-xs text-white/60">
857
+ <div className="text-fm-primary text-sm">Auto Save</div>
858
+ <div className="text-fm-secondary text-xs">
841
859
  Save changes automatically
842
860
  </div>
843
861
  </div>
@@ -851,12 +869,14 @@ export const UseCases: Story = {
851
869
  </div>
852
870
 
853
871
  <div className="space-y-3">
854
- <div className="flex items-center justify-between rounded-lg border border-white/10 bg-white/5 p-3">
872
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary flex items-center justify-between rounded-lg border p-3">
855
873
  <div className="flex items-center gap-3">
856
- <EyeOpenIcon className="h-4 w-4 text-purple-400" />
874
+ <EyeOpenIcon className="text-fm-icon-brand-secondary h-4 w-4" />
857
875
  <div>
858
- <div className="text-sm text-white">Preview Mode</div>
859
- <div className="text-xs text-white/60">
876
+ <div className="text-fm-primary text-sm">
877
+ Preview Mode
878
+ </div>
879
+ <div className="text-fm-secondary text-xs">
860
880
  Show live preview
861
881
  </div>
862
882
  </div>
@@ -868,12 +888,12 @@ export const UseCases: Story = {
868
888
  />
869
889
  </div>
870
890
 
871
- <div className="flex items-center justify-between rounded-lg border border-white/10 bg-white/5 p-3">
891
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary flex items-center justify-between rounded-lg border p-3">
872
892
  <div className="flex items-center gap-3">
873
893
  <span className="text-lg">🌙</span>
874
894
  <div>
875
- <div className="text-sm text-white">Dark Mode</div>
876
- <div className="text-xs text-white/60">
895
+ <div className="text-fm-primary text-sm">Dark Mode</div>
896
+ <div className="text-fm-secondary text-xs">
877
897
  Use dark theme
878
898
  </div>
879
899
  </div>
@@ -890,10 +910,10 @@ export const UseCases: Story = {
890
910
 
891
911
  {/* Filter Toolbar */}
892
912
  <div className="space-y-4">
893
- <h4 className="text-sm font-medium text-white/70">
913
+ <h4 className="text-fm-secondary text-sm font-medium">
894
914
  Filter Toolbar
895
915
  </h4>
896
- <div className="rounded-lg border border-white/10 bg-white/5 p-4">
916
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-4">
897
917
  <div className="flex flex-wrap gap-2">
898
918
  <Toggle
899
919
  variant="outline"
@@ -934,8 +954,10 @@ export const UseCases: Story = {
934
954
 
935
955
  {/* View Options */}
936
956
  <div className="space-y-4">
937
- <h4 className="text-sm font-medium text-white/70">View Options</h4>
938
- <div className="flex justify-center gap-1 rounded-lg border border-white/10 bg-white/5 p-1">
957
+ <h4 className="text-fm-secondary text-sm font-medium">
958
+ View Options
959
+ </h4>
960
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary flex justify-center gap-1 rounded-lg border p-1">
939
961
  <Toggle size="sm" defaultPressed aria-label="Grid view">
940
962
  Grid
941
963
  </Toggle>
@@ -973,14 +995,14 @@ export const ControlledVsUncontrolled: Story = {
973
995
 
974
996
  return (
975
997
  <div className="space-y-8 p-8">
976
- <h3 className="text-center text-lg font-medium text-white">
998
+ <h3 className="text-fm-primary text-center text-lg font-medium">
977
999
  Controlled vs Uncontrolled
978
1000
  </h3>
979
1001
 
980
1002
  <div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
981
1003
  {/* Uncontrolled */}
982
1004
  <div className="space-y-4">
983
- <h4 className="text-sm font-medium text-white/70">
1005
+ <h4 className="text-fm-secondary text-sm font-medium">
984
1006
  Uncontrolled (Internal State)
985
1007
  </h4>
986
1008
  <div className="space-y-3">
@@ -993,7 +1015,7 @@ export const ControlledVsUncontrolled: Story = {
993
1015
  With Icon
994
1016
  </Toggle>
995
1017
  </div>
996
- <div className="rounded border border-white/10 bg-white/5 p-3 font-mono text-xs text-white/80">
1018
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary text-fm-tertiary rounded border p-3 font-mono text-xs">
997
1019
  <div>{"<Toggle>"}</div>
998
1020
  <div>{" Default State"}</div>
999
1021
  <div>{"</Toggle>"}</div>
@@ -1006,7 +1028,7 @@ export const ControlledVsUncontrolled: Story = {
1006
1028
 
1007
1029
  {/* Controlled */}
1008
1030
  <div className="space-y-4">
1009
- <h4 className="text-sm font-medium text-white/70">
1031
+ <h4 className="text-fm-secondary text-sm font-medium">
1010
1032
  Controlled (External State)
1011
1033
  </h4>
1012
1034
  <div className="space-y-3">
@@ -1037,7 +1059,7 @@ export const ControlledVsUncontrolled: Story = {
1037
1059
  </div>
1038
1060
  </div>
1039
1061
 
1040
- <div className="rounded border border-white/10 bg-white/5 p-3 font-mono text-xs text-white/80">
1062
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary text-fm-tertiary rounded border p-3 font-mono text-xs">
1041
1063
  <div>{"const [state, setState] = useState(false)"}</div>
1042
1064
  <br />
1043
1065
  <div>{"<Toggle"}</div>
@@ -1050,16 +1072,16 @@ export const ControlledVsUncontrolled: Story = {
1050
1072
  </div>
1051
1073
  </div>
1052
1074
 
1053
- <div className="rounded-lg border border-blue-500/30 bg-blue-900/10 p-4">
1054
- <h4 className="mb-2 text-sm font-medium text-blue-300">
1075
+ <div className="border-fm-divider-secondary bg-fm-surface-info-sec rounded-lg border p-4">
1076
+ <h4 className="text-fm-info mb-2 text-sm font-medium">
1055
1077
  When to Use Each
1056
1078
  </h4>
1057
1079
  <div className="grid grid-cols-1 gap-4 lg:grid-cols-2">
1058
1080
  <div>
1059
- <h5 className="mb-1 text-xs font-medium text-blue-200">
1081
+ <h5 className="text-fm-info mb-1 text-xs font-medium">
1060
1082
  Uncontrolled
1061
1083
  </h5>
1062
- <ul className="space-y-1 text-xs text-blue-200/70">
1084
+ <ul className="text-fm-info-sec space-y-1 text-xs">
1063
1085
  <li>• Simple on/off toggles</li>
1064
1086
  <li>• No external state dependency</li>
1065
1087
  <li>• Form elements</li>
@@ -1067,10 +1089,10 @@ export const ControlledVsUncontrolled: Story = {
1067
1089
  </ul>
1068
1090
  </div>
1069
1091
  <div>
1070
- <h5 className="mb-1 text-xs font-medium text-blue-200">
1092
+ <h5 className="text-fm-info mb-1 text-xs font-medium">
1071
1093
  Controlled
1072
1094
  </h5>
1073
- <ul className="space-y-1 text-xs text-blue-200/70">
1095
+ <ul className="text-fm-info-sec space-y-1 text-xs">
1074
1096
  <li>• Complex state management</li>
1075
1097
  <li>• Multiple dependent toggles</li>
1076
1098
  <li>• Form validation</li>