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
@@ -11,9 +11,9 @@ const meta: Meta<typeof BubbleCrossedIcon> = {
11
11
  backgrounds: {
12
12
  default: "dark",
13
13
  values: [
14
- { name: "dark", value: "#0a0a0a" },
15
- { name: "darker", value: "#000000" },
16
- { name: "light", value: "#ffffff" },
14
+ { name: "dark", value: "var(--color-fm-surface-primary)" },
15
+ { name: "darker", value: "var(--color-fm-neutral-0)" },
16
+ { name: "light", value: "var(--color-fm-neutral-1100)" },
17
17
  ],
18
18
  },
19
19
  docs: {
@@ -40,59 +40,59 @@ const meta: Meta<typeof BubbleCrossedIcon> = {
40
40
  background: transparent ;
41
41
  }
42
42
  body {
43
- background: #0a0a0a ;
43
+ background: var(--color-fm-surface-primary) ;
44
44
  }
45
45
  #storybook-docs {
46
- background: #0a0a0a ;
46
+ background: var(--color-fm-surface-primary) ;
47
47
  }
48
48
  .sbdocs-preview {
49
49
  background: transparent ;
50
50
  border: none ;
51
51
  }
52
52
  .sbdocs-h1, .sbdocs-h2, .sbdocs-h3, .sbdocs-h4, .sbdocs-h5, .sbdocs-h6 {
53
- color: white ;
53
+ color: var(--color-fm-icon-active) ;
54
54
  }
55
55
  .sbdocs-p, .sbdocs-li {
56
- color: rgba(255, 255, 255, 0.7) ;
56
+ color: var(--color-fm-secondary) ;
57
57
  }
58
58
  .sbdocs-code {
59
- background: rgba(255, 255, 255, 0.1) ;
60
- color: rgba(168, 85, 247, 1) ;
61
- border: 1px solid rgba(255, 255, 255, 0.1) ;
59
+ background: var(--color-fm-surface-secondary) ;
60
+ color: var(--color-fm-secondary-500) ;
61
+ border: 1px solid var(--color-fm-divider-secondary) ;
62
62
  }
63
63
  .sbdocs-pre {
64
- background: rgba(0, 0, 0, 0.4) ;
65
- border: 1px solid rgba(255, 255, 255, 0.1) ;
64
+ background: var(--color-fm-surface-secondary) ;
65
+ border: 1px solid var(--color-fm-divider-secondary) ;
66
66
  }
67
67
  .sbdocs-table {
68
- background: rgba(255, 255, 255, 0.05) ;
69
- border: 1px solid rgba(255, 255, 255, 0.1) ;
68
+ background: var(--color-fm-surface-secondary) ;
69
+ border: 1px solid var(--color-fm-divider-secondary) ;
70
70
  }
71
71
  .sbdocs-table th {
72
- background: rgba(255, 255, 255, 0.05) ;
73
- color: white ;
74
- border-bottom: 1px solid rgba(255, 255, 255, 0.1) ;
72
+ background: var(--color-fm-surface-secondary) ;
73
+ color: var(--color-fm-icon-active) ;
74
+ border-bottom: 1px solid var(--color-fm-divider-secondary) ;
75
75
  }
76
76
  .sbdocs-table td {
77
- color: rgba(255, 255, 255, 0.7) ;
78
- border-bottom: 1px solid rgba(255, 255, 255, 0.05) ;
77
+ color: var(--color-fm-secondary) ;
78
+ border-bottom: 1px solid var(--color-fm-divider-tertiary) ;
79
79
  }
80
80
  `}
81
81
  </style>
82
82
 
83
- <div className="min-h-screen bg-gradient-to-br from-gray-900 via-purple-900/20 to-gray-900">
83
+ <div className="bg-fm-surface-primary min-h-screen">
84
84
  {/* Header */}
85
- <div className="relative overflow-hidden border-b border-white/10 bg-black/20 backdrop-blur-xl">
86
- <div className="absolute inset-0 bg-gradient-to-r from-purple-500/10 via-transparent to-blue-500/10" />
85
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary relative overflow-hidden border-b backdrop-blur-xl">
86
+ <div className="from-fm-secondary-500/10 to-fm-icon-info/10 absolute inset-0 bg-linear-to-r via-transparent" />
87
87
  <div className="relative !mx-auto max-w-7xl px-6 py-16">
88
88
  <div className="!space-y-6 text-center">
89
- <div className="!mx-auto flex h-24 w-24 items-center justify-center rounded-2xl border border-red-500/30 bg-gradient-to-br from-red-500/20 to-pink-500/20">
90
- <BubbleCrossedIcon className="h-12 w-12 text-red-400" />
89
+ <div className="border-fm-icon-negative/30 from-fm-icon-negative/20 to-fm-secondary-500/20 !mx-auto flex h-24 w-24 items-center justify-center rounded-2xl border bg-linear-to-br">
90
+ <BubbleCrossedIcon className="text-fm-icon-negative h-12 w-12" />
91
91
  </div>
92
- <h1 className="text-5xl font-bold !text-white">
92
+ <h1 className="text-fm-icon-active! text-5xl font-bold">
93
93
  BubbleCrossedIcon
94
94
  </h1>
95
- <p className="!mx-auto max-w-3xl text-xl leading-relaxed !text-white/70">
95
+ <p className="text-fm-secondary! !mx-auto max-w-3xl text-xl leading-relaxed">
96
96
  A communication icon representing blocked messages, failed
97
97
  communications, and negative feedback. Combines chat bubble
98
98
  symbolism with cross indication for clear rejection or error
@@ -102,28 +102,28 @@ const meta: Meta<typeof BubbleCrossedIcon> = {
102
102
  {/* Stats */}
103
103
  <div className="flex items-center justify-center gap-8 pt-8">
104
104
  <div className="text-center">
105
- <div className="text-3xl font-bold text-red-300">
105
+ <div className="text-fm-icon-negative text-3xl font-bold">
106
106
  Blocked
107
107
  </div>
108
- <div className="text-sm text-white/60">
108
+ <div className="text-fm-tertiary text-sm">
109
109
  Message restriction
110
110
  </div>
111
111
  </div>
112
- <div className="h-8 w-px bg-white/20" />
112
+ <div className="bg-fm-divider-primary h-8 w-px" />
113
113
  <div className="text-center">
114
- <div className="text-3xl font-bold text-pink-300">
114
+ <div className="text-fm-secondary-600 text-3xl font-bold">
115
115
  Error
116
116
  </div>
117
- <div className="text-sm text-white/60">
117
+ <div className="text-fm-tertiary text-sm">
118
118
  Communication failure
119
119
  </div>
120
120
  </div>
121
- <div className="h-8 w-px bg-white/20" />
121
+ <div className="bg-fm-divider-primary h-8 w-px" />
122
122
  <div className="text-center">
123
- <div className="text-3xl font-bold text-rose-300">
123
+ <div className="text-fm-icon-negative text-3xl font-bold">
124
124
  Rejected
125
125
  </div>
126
- <div className="text-sm text-white/60">
126
+ <div className="text-fm-tertiary text-sm">
127
127
  Content denied
128
128
  </div>
129
129
  </div>
@@ -136,16 +136,16 @@ const meta: Meta<typeof BubbleCrossedIcon> = {
136
136
  <div className="!mx-auto max-w-7xl !space-y-16 px-6 py-12">
137
137
  {/* Quick Usage */}
138
138
  <div className="!space-y-8">
139
- <h2 className="text-center text-3xl font-bold !text-white">
139
+ <h2 className="text-fm-icon-active! text-center text-3xl font-bold">
140
140
  Quick Start
141
141
  </h2>
142
142
  <div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
143
143
  <div className="!space-y-4">
144
- <h3 className="text-xl font-semibold !text-red-300">
144
+ <h3 className="text-fm-icon-negative! text-xl font-semibold">
145
145
  Basic Usage
146
146
  </h3>
147
- <div className="rounded-lg bg-black/40 p-4">
148
- <pre className="overflow-x-auto text-sm !text-green-300">
147
+ <div className="bg-fm-surface-secondary rounded-lg p-4">
148
+ <pre className="text-fm-icon-positive! overflow-x-auto text-sm">
149
149
  {`import { BubbleCrossedIcon } from "@icons/bubble-crossed-icon"
150
150
 
151
151
  function BlockedMessage() {
@@ -161,13 +161,15 @@ function BlockedMessage() {
161
161
  </div>
162
162
 
163
163
  <div className="!space-y-4">
164
- <h3 className="text-xl font-semibold !text-red-300">
164
+ <h3 className="text-fm-icon-negative! text-xl font-semibold">
165
165
  Live Preview
166
166
  </h3>
167
- <div className="flex h-32 items-center justify-center rounded-lg border border-white/10 bg-white/5">
168
- <div className="flex items-center gap-3 rounded-lg border border-red-500/20 bg-red-500/10 px-4 py-2">
169
- <BubbleCrossedIcon className="h-5 w-5 text-red-400" />
170
- <span className="!text-white">Message blocked</span>
167
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary flex h-32 items-center justify-center rounded-lg border">
168
+ <div className="border-fm-icon-negative/20 bg-fm-icon-negative/10 flex items-center gap-3 rounded-lg border px-4 py-2">
169
+ <BubbleCrossedIcon className="text-fm-icon-negative h-5 w-5" />
170
+ <span className="text-fm-icon-active!">
171
+ Message blocked
172
+ </span>
171
173
  </div>
172
174
  </div>
173
175
  </div>
@@ -176,122 +178,130 @@ function BlockedMessage() {
176
178
 
177
179
  {/* Props Documentation */}
178
180
  <div className="!space-y-8">
179
- <h2 className="text-center text-3xl font-bold !text-white">
181
+ <h2 className="text-fm-icon-active! text-center text-3xl font-bold">
180
182
  Props & Configuration
181
183
  </h2>
182
184
 
183
- <div className="overflow-hidden rounded-lg border border-white/10 bg-white/5">
184
- <div className="bg-white/5 p-4">
185
- <h3 className="text-xl font-semibold !text-white">Props</h3>
185
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary overflow-hidden rounded-lg border">
186
+ <div className="bg-fm-surface-secondary p-4">
187
+ <h3 className="text-fm-icon-active! text-xl font-semibold">
188
+ Props
189
+ </h3>
186
190
  </div>
187
191
  <table className="!my-0 w-full">
188
- <thead className="bg-white/5">
189
- <tr className="border-b border-white/10">
190
- <th className="px-6 py-4 text-left text-sm font-semibold !text-white">
192
+ <thead className="bg-fm-surface-secondary">
193
+ <tr className="border-fm-divider-secondary border-b">
194
+ <th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
191
195
  Prop
192
196
  </th>
193
- <th className="px-6 py-4 text-left text-sm font-semibold !text-white">
197
+ <th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
194
198
  Type
195
199
  </th>
196
- <th className="px-6 py-4 text-left text-sm font-semibold !text-white">
200
+ <th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
197
201
  Default
198
202
  </th>
199
- <th className="px-6 py-4 text-left text-sm font-semibold !text-white">
203
+ <th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
200
204
  Description
201
205
  </th>
202
206
  </tr>
203
207
  </thead>
204
208
  <tbody>
205
209
  {" "}
206
- <tr className="!bg-black/10">
207
- <td className="px-6 py-4 font-mono text-sm !text-blue-300">
210
+ <tr className="bg-fm-surface-secondary!">
211
+ <td className="text-fm-icon-info! px-6 py-4 font-mono text-sm">
208
212
  withAccessibility
209
213
  </td>
210
- <td className="px-6 py-4 text-sm !text-white/70">
214
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
211
215
  boolean
212
216
  </td>
213
- <td className="px-6 py-4 text-sm !text-white/50">
217
+ <td className="text-fm-placeholder! px-6 py-4 text-sm">
214
218
  true
215
219
  </td>
216
- <td className="px-6 py-4 text-sm !text-white/70">
220
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
217
221
  Whether to wrap the icon with accessibility feature
218
222
  </td>
219
223
  </tr>
220
- <tr className="border-b border-white/5 !bg-black/10">
221
- <td className="px-6 py-4 font-mono text-sm !text-red-300">
224
+ <tr className="border-fm-divider-tertiary bg-fm-surface-secondary! border-b">
225
+ <td className="text-fm-icon-negative! px-6 py-4 font-mono text-sm">
222
226
  height
223
227
  </td>
224
- <td className="px-6 py-4 text-sm !text-white/70">
228
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
225
229
  number | string
226
230
  </td>
227
- <td className="px-6 py-4 text-sm !text-white/50">24</td>
228
- <td className="px-6 py-4 text-sm !text-white/70">
231
+ <td className="text-fm-placeholder! px-6 py-4 text-sm">
232
+ 24
233
+ </td>
234
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
229
235
  Height of the icon in pixels
230
236
  </td>
231
237
  </tr>
232
- <tr className="border-b border-white/5">
233
- <td className="px-6 py-4 font-mono text-sm !text-red-300">
238
+ <tr className="border-fm-divider-tertiary border-b">
239
+ <td className="text-fm-icon-negative! px-6 py-4 font-mono text-sm">
234
240
  stroke
235
241
  </td>
236
- <td className="px-6 py-4 text-sm !text-white/70">
242
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
237
243
  string
238
244
  </td>
239
- <td className="px-6 py-4 text-sm !text-white/50">
245
+ <td className="text-fm-placeholder! px-6 py-4 text-sm">
240
246
  currentColor
241
247
  </td>
242
- <td className="px-6 py-4 text-sm !text-white/70">
248
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
243
249
  Stroke color of the icon
244
250
  </td>
245
251
  </tr>
246
- <tr className="border-b border-white/5 !bg-black/10">
247
- <td className="px-6 py-4 font-mono text-sm !text-red-300">
252
+ <tr className="border-fm-divider-tertiary bg-fm-surface-secondary! border-b">
253
+ <td className="text-fm-icon-negative! px-6 py-4 font-mono text-sm">
248
254
  strokeWidth
249
255
  </td>
250
- <td className="px-6 py-4 text-sm !text-white/70">
256
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
251
257
  number | string
252
258
  </td>
253
- <td className="px-6 py-4 text-sm !text-white/50">
259
+ <td className="text-fm-placeholder! px-6 py-4 text-sm">
254
260
  1.5
255
261
  </td>
256
- <td className="px-6 py-4 text-sm !text-white/70">
262
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
257
263
  Stroke width of the icon
258
264
  </td>
259
265
  </tr>
260
- <tr className="border-b border-white/5">
261
- <td className="px-6 py-4 font-mono text-sm !text-red-300">
266
+ <tr className="border-fm-divider-tertiary border-b">
267
+ <td className="text-fm-icon-negative! px-6 py-4 font-mono text-sm">
262
268
  strokeLinecap
263
269
  </td>
264
- <td className="px-6 py-4 text-sm !text-white/70">
270
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
265
271
  string
266
272
  </td>
267
- <td className="px-6 py-4 text-sm !text-white/50">
273
+ <td className="text-fm-placeholder! px-6 py-4 text-sm">
268
274
  square
269
275
  </td>
270
- <td className="px-6 py-4 text-sm !text-white/70">
276
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
271
277
  Line cap style for stroke
272
278
  </td>
273
279
  </tr>
274
- <tr className="border-b border-white/5 !bg-black/10">
275
- <td className="px-6 py-4 font-mono text-sm !text-red-300">
280
+ <tr className="border-fm-divider-tertiary bg-fm-surface-secondary! border-b">
281
+ <td className="text-fm-icon-negative! px-6 py-4 font-mono text-sm">
276
282
  className
277
283
  </td>
278
- <td className="px-6 py-4 text-sm !text-white/70">
284
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
279
285
  string
280
286
  </td>
281
- <td className="px-6 py-4 text-sm !text-white/50">-</td>
282
- <td className="px-6 py-4 text-sm !text-white/70">
287
+ <td className="text-fm-placeholder! px-6 py-4 text-sm">
288
+ -
289
+ </td>
290
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
283
291
  CSS classes for styling
284
292
  </td>
285
293
  </tr>
286
- <tr className="!bg-black/10">
287
- <td className="px-6 py-4 font-mono text-sm !text-red-300">
294
+ <tr className="bg-fm-surface-secondary!">
295
+ <td className="text-fm-icon-negative! px-6 py-4 font-mono text-sm">
288
296
  ...svgProps
289
297
  </td>
290
- <td className="px-6 py-4 text-sm !text-white/70">
298
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
291
299
  SVGProps
292
300
  </td>
293
- <td className="px-6 py-4 text-sm !text-white/50">-</td>
294
- <td className="px-6 py-4 text-sm !text-white/70">
301
+ <td className="text-fm-placeholder! px-6 py-4 text-sm">
302
+ -
303
+ </td>
304
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
295
305
  All standard SVG element props
296
306
  </td>
297
307
  </tr>
@@ -302,50 +312,62 @@ function BlockedMessage() {
302
312
 
303
313
  {/* Size Variations */}
304
314
  <div className="!space-y-8">
305
- <h2 className="text-center text-3xl font-bold !text-white">
315
+ <h2 className="text-fm-icon-active! text-center text-3xl font-bold">
306
316
  Size Variations
307
317
  </h2>
308
- <div className="rounded-lg border border-white/10 bg-white/5 p-8">
318
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-8">
309
319
  <div className="!space-y-6">
310
320
  <div className="grid grid-cols-1 gap-8 md:grid-cols-2">
311
321
  <div className="!space-y-4">
312
- <h3 className="text-lg font-semibold !text-red-300">
322
+ <h3 className="text-fm-icon-negative! text-lg font-semibold">
313
323
  Standard Sizes
314
324
  </h3>
315
- <div className="flex items-end gap-6 rounded-lg bg-black/20 p-6">
325
+ <div className="bg-fm-surface-secondary flex items-end gap-6 rounded-lg p-6">
316
326
  <div className="text-center">
317
- <BubbleCrossedIcon className="!mx-auto mb-2 h-3 w-3 text-red-400" />
318
- <span className="text-xs text-white/60">12px</span>
327
+ <BubbleCrossedIcon className="text-fm-icon-negative !mx-auto mb-2 h-3 w-3" />
328
+ <span className="text-fm-tertiary text-xs">
329
+ 12px
330
+ </span>
319
331
  </div>
320
332
  <div className="text-center">
321
- <BubbleCrossedIcon className="!mx-auto mb-2 h-4 w-4 text-red-400" />
322
- <span className="text-xs text-white/60">16px</span>
333
+ <BubbleCrossedIcon className="text-fm-icon-negative !mx-auto mb-2 h-4 w-4" />
334
+ <span className="text-fm-tertiary text-xs">
335
+ 16px
336
+ </span>
323
337
  </div>
324
338
  <div className="text-center">
325
- <BubbleCrossedIcon className="!mx-auto mb-2 h-5 w-5 text-red-400" />
326
- <span className="text-xs text-white/60">20px</span>
339
+ <BubbleCrossedIcon className="text-fm-icon-negative !mx-auto mb-2 h-5 w-5" />
340
+ <span className="text-fm-tertiary text-xs">
341
+ 20px
342
+ </span>
327
343
  </div>
328
344
  <div className="text-center">
329
- <BubbleCrossedIcon className="!mx-auto mb-2 h-6 w-6 text-red-400" />
330
- <span className="text-xs text-white/60">24px</span>
345
+ <BubbleCrossedIcon className="text-fm-icon-negative !mx-auto mb-2 h-6 w-6" />
346
+ <span className="text-fm-tertiary text-xs">
347
+ 24px
348
+ </span>
331
349
  </div>
332
350
  <div className="text-center">
333
- <BubbleCrossedIcon className="!mx-auto mb-2 h-8 w-8 text-red-400" />
334
- <span className="text-xs text-white/60">32px</span>
351
+ <BubbleCrossedIcon className="text-fm-icon-negative !mx-auto mb-2 h-8 w-8" />
352
+ <span className="text-fm-tertiary text-xs">
353
+ 32px
354
+ </span>
335
355
  </div>
336
356
  <div className="text-center">
337
- <BubbleCrossedIcon className="!mx-auto mb-2 h-12 w-12 text-red-400" />
338
- <span className="text-xs text-white/60">48px</span>
357
+ <BubbleCrossedIcon className="text-fm-icon-negative !mx-auto mb-2 h-12 w-12" />
358
+ <span className="text-fm-tertiary text-xs">
359
+ 48px
360
+ </span>
339
361
  </div>
340
362
  </div>
341
363
  </div>
342
364
 
343
365
  <div className="!space-y-4">
344
- <h3 className="text-lg font-semibold !text-red-300">
366
+ <h3 className="text-fm-icon-negative! text-lg font-semibold">
345
367
  Code Example
346
368
  </h3>
347
- <div className="rounded-lg bg-black/40 p-4">
348
- <pre className="overflow-x-auto text-sm !text-blue-300">
369
+ <div className="bg-fm-surface-secondary rounded-lg p-4">
370
+ <pre className="text-fm-icon-info! overflow-x-auto text-sm">
349
371
  {`// Small (16px)
350
372
  <BubbleCrossedIcon className="h-4 w-4" />
351
373
 
@@ -367,56 +389,56 @@ function BlockedMessage() {
367
389
 
368
390
  {/* Color Variations */}
369
391
  <div className="!space-y-8">
370
- <h2 className="text-center text-3xl font-bold !text-white">
392
+ <h2 className="text-fm-icon-active! text-center text-3xl font-bold">
371
393
  Color Variations
372
394
  </h2>
373
395
  <div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
374
396
  <div className="!space-y-4">
375
- <h3 className="text-lg font-semibold !text-red-300">
397
+ <h3 className="text-fm-icon-negative! text-lg font-semibold">
376
398
  Error & Blocked States
377
399
  </h3>
378
- <div className="!space-y-4 rounded-lg border border-white/10 bg-white/5 p-6">
400
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
379
401
  <div className="flex items-center gap-4">
380
- <BubbleCrossedIcon className="h-6 w-6 text-red-400" />
402
+ <BubbleCrossedIcon className="text-fm-icon-negative h-6 w-6" />
381
403
  <div>
382
- <div className="text-sm font-medium !text-white">
404
+ <div className="text-fm-icon-active! text-sm font-medium">
383
405
  Blocked
384
406
  </div>
385
- <div className="text-xs !text-white/60">
386
- text-red-400
407
+ <div className="text-fm-tertiary! text-xs">
408
+ text-fm-icon-negative
387
409
  </div>
388
410
  </div>
389
411
  </div>
390
412
  <div className="flex items-center gap-4">
391
- <BubbleCrossedIcon className="h-6 w-6 text-rose-400" />
413
+ <BubbleCrossedIcon className="text-fm-icon-negative h-6 w-6" />
392
414
  <div>
393
- <div className="text-sm font-medium !text-white">
415
+ <div className="text-fm-icon-active! text-sm font-medium">
394
416
  Failed
395
417
  </div>
396
- <div className="text-xs !text-white/60">
397
- text-rose-400
418
+ <div className="text-fm-tertiary! text-xs">
419
+ text-fm-icon-negative
398
420
  </div>
399
421
  </div>
400
422
  </div>
401
423
  <div className="flex items-center gap-4">
402
- <BubbleCrossedIcon className="h-6 w-6 text-pink-400" />
424
+ <BubbleCrossedIcon className="text-fm-secondary-600 h-6 w-6" />
403
425
  <div>
404
- <div className="text-sm font-medium !text-white">
426
+ <div className="text-fm-icon-active! text-sm font-medium">
405
427
  Rejected
406
428
  </div>
407
- <div className="text-xs !text-white/60">
408
- text-pink-400
429
+ <div className="text-fm-tertiary! text-xs">
430
+ text-fm-secondary-600
409
431
  </div>
410
432
  </div>
411
433
  </div>
412
434
  <div className="flex items-center gap-4">
413
- <BubbleCrossedIcon className="h-6 w-6 text-orange-400" />
435
+ <BubbleCrossedIcon className="text-fm-icon-warning h-6 w-6" />
414
436
  <div>
415
- <div className="text-sm font-medium !text-white">
437
+ <div className="text-fm-icon-active! text-sm font-medium">
416
438
  Spam
417
439
  </div>
418
- <div className="text-xs !text-white/60">
419
- text-orange-400
440
+ <div className="text-fm-tertiary! text-xs">
441
+ text-fm-icon-warning
420
442
  </div>
421
443
  </div>
422
444
  </div>
@@ -424,11 +446,11 @@ function BlockedMessage() {
424
446
  </div>
425
447
 
426
448
  <div className="!space-y-4">
427
- <h3 className="text-lg font-semibold !text-red-300">
449
+ <h3 className="text-fm-icon-negative! text-lg font-semibold">
428
450
  Custom Colors
429
451
  </h3>
430
- <div className="rounded-lg bg-black/40 p-4">
431
- <pre className="overflow-x-auto text-sm !text-green-300">
452
+ <div className="bg-fm-surface-secondary rounded-lg p-4">
453
+ <pre className="text-fm-icon-positive! overflow-x-auto text-sm">
432
454
  {`// Using Tailwind classes
433
455
  <BubbleCrossedIcon className="h-6 w-6 text-red-400" />
434
456
  <BubbleCrossedIcon className="h-6 w-6 text-rose-500" />
@@ -453,33 +475,33 @@ function BlockedMessage() {
453
475
 
454
476
  {/* Usage Examples */}
455
477
  <div className="!space-y-8">
456
- <h2 className="text-center text-3xl font-bold !text-white">
478
+ <h2 className="text-fm-icon-active! text-center text-3xl font-bold">
457
479
  Usage Examples
458
480
  </h2>
459
481
 
460
482
  <div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
461
483
  {/* Blocked Message */}
462
484
  <div className="!space-y-4">
463
- <h3 className="text-lg font-semibold !text-red-300">
485
+ <h3 className="text-fm-icon-negative! text-lg font-semibold">
464
486
  Blocked Message Alert
465
487
  </h3>
466
488
  <div className="!space-y-4">
467
- <div className="rounded-lg border border-red-500/20 bg-red-500/10 p-4">
489
+ <div className="border-fm-icon-negative/20 bg-fm-icon-negative/10 rounded-lg border p-4">
468
490
  <div className="flex items-start gap-3">
469
- <BubbleCrossedIcon className="mt-0.5 h-5 w-5 flex-shrink-0 text-red-400" />
491
+ <BubbleCrossedIcon className="text-fm-icon-negative mt-0.5 h-5 w-5 flex-shrink-0" />
470
492
  <div>
471
- <h4 className="font-medium !text-red-200">
493
+ <h4 className="text-fm-icon-negative! font-medium">
472
494
  Message Blocked
473
495
  </h4>
474
- <p className="text-sm !text-red-300/80">
496
+ <p className="text-fm-icon-negative!/80 text-sm">
475
497
  This message was blocked due to inappropriate
476
498
  content. Please review our community guidelines.
477
499
  </p>
478
500
  </div>
479
501
  </div>
480
502
  </div>
481
- <div className="rounded-lg bg-black/40 p-4">
482
- <pre className="overflow-x-auto text-sm !text-green-300">
503
+ <div className="bg-fm-surface-secondary rounded-lg p-4">
504
+ <pre className="text-fm-icon-positive! overflow-x-auto text-sm">
483
505
  {`<div className="border border-red-500/20 bg-red-500/10 p-4 rounded-lg">
484
506
  <div className="flex items-start gap-3">
485
507
  <BubbleCrossedIcon className="h-5 w-5 text-red-400 mt-0.5 flex-shrink-0" />
@@ -498,40 +520,40 @@ function BlockedMessage() {
498
520
 
499
521
  {/* Chat Error Status */}
500
522
  <div className="!space-y-4">
501
- <h3 className="text-lg font-semibold !text-red-300">
523
+ <h3 className="text-fm-icon-negative! text-lg font-semibold">
502
524
  Chat Error Status
503
525
  </h3>
504
526
  <div className="!space-y-4">
505
527
  <div className="!space-y-3">
506
528
  <div className="flex justify-end">
507
- <div className="max-w-xs rounded-lg bg-gray-500 px-3 py-2 opacity-50">
508
- <p className="text-sm !text-white">
529
+ <div className="bg-fm-surface-tertiary max-w-xs rounded-lg px-3 py-2 opacity-50">
530
+ <p className="text-fm-icon-active! text-sm">
509
531
  Your message couldn't be sent
510
532
  </p>
511
533
  <div className="mt-1 flex items-center justify-end gap-1">
512
- <span className="text-xs text-gray-200">
534
+ <span className="text-fm-secondary text-xs">
513
535
  Failed
514
536
  </span>
515
- <BubbleCrossedIcon className="h-3 w-3 text-red-400" />
537
+ <BubbleCrossedIcon className="text-fm-icon-negative h-3 w-3" />
516
538
  </div>
517
539
  </div>
518
540
  </div>
519
541
  <div className="flex justify-end">
520
- <div className="max-w-xs rounded-lg bg-gray-500 px-3 py-2 opacity-50">
521
- <p className="text-sm !text-white">
542
+ <div className="bg-fm-surface-tertiary max-w-xs rounded-lg px-3 py-2 opacity-50">
543
+ <p className="text-fm-icon-active! text-sm">
522
544
  Message blocked by recipient
523
545
  </p>
524
546
  <div className="mt-1 flex items-center justify-end gap-1">
525
- <span className="text-xs text-gray-200">
547
+ <span className="text-fm-secondary text-xs">
526
548
  Blocked
527
549
  </span>
528
- <BubbleCrossedIcon className="h-3 w-3 text-red-400" />
550
+ <BubbleCrossedIcon className="text-fm-icon-negative h-3 w-3" />
529
551
  </div>
530
552
  </div>
531
553
  </div>
532
554
  </div>
533
- <div className="rounded-lg bg-black/40 p-4">
534
- <pre className="overflow-x-auto text-sm !text-green-300">
555
+ <div className="bg-fm-surface-secondary rounded-lg p-4">
556
+ <pre className="text-fm-icon-positive! overflow-x-auto text-sm">
535
557
  {`<div className="flex justify-end">
536
558
  <div className="max-w-xs rounded-lg bg-gray-500 px-3 py-2 opacity-50">
537
559
  <p className="text-sm text-white">Your message couldn't be sent</p>
@@ -548,26 +570,26 @@ function BlockedMessage() {
548
570
 
549
571
  {/* Content Moderation */}
550
572
  <div className="!space-y-4">
551
- <h3 className="text-lg font-semibold !text-red-300">
573
+ <h3 className="text-fm-icon-negative! text-lg font-semibold">
552
574
  Content Moderation
553
575
  </h3>
554
576
  <div className="!space-y-4">
555
- <div className="rounded-lg border border-white/10 bg-white/5 p-6">
577
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
556
578
  <div className="text-center">
557
- <div className="!mx-auto mb-4 flex h-16 w-16 items-center justify-center rounded-full bg-red-500/20">
558
- <BubbleCrossedIcon className="h-8 w-8 text-red-400" />
579
+ <div className="bg-fm-icon-negative/20 !mx-auto mb-4 flex h-16 w-16 items-center justify-center rounded-full">
580
+ <BubbleCrossedIcon className="text-fm-icon-negative h-8 w-8" />
559
581
  </div>
560
- <h3 className="mb-2 text-lg font-semibold !text-white">
582
+ <h3 className="text-fm-icon-active! mb-2 text-lg font-semibold">
561
583
  Content Rejected
562
584
  </h3>
563
- <p className="text-sm !text-white/70">
585
+ <p className="text-fm-secondary! text-sm">
564
586
  Your message violates our community standards and
565
587
  has been removed.
566
588
  </p>
567
589
  </div>
568
590
  </div>
569
- <div className="rounded-lg bg-black/40 p-4">
570
- <pre className="overflow-x-auto text-sm !text-green-300">
591
+ <div className="bg-fm-surface-secondary rounded-lg p-4">
592
+ <pre className="text-fm-icon-positive! overflow-x-auto text-sm">
571
593
  {`<div className="text-center">
572
594
  <div className="mx-auto mb-4 flex h-16 w-16 items-center justify-center rounded-full bg-red-500/20">
573
595
  <BubbleCrossedIcon className="h-8 w-8 text-red-400" />
@@ -584,38 +606,38 @@ function BlockedMessage() {
584
606
 
585
607
  {/* Status List */}
586
608
  <div className="!space-y-4">
587
- <h3 className="text-lg font-semibold !text-red-300">
609
+ <h3 className="text-fm-icon-negative! text-lg font-semibold">
588
610
  Message Status List
589
611
  </h3>
590
612
  <div className="!space-y-4">
591
- <div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4">
613
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4">
592
614
  <div className="flex items-center gap-3">
593
- <div className="h-4 w-4 rounded-full bg-green-500"></div>
594
- <span className="text-sm !text-white">
615
+ <div className="bg-fm-icon-positive h-4 w-4 rounded-full"></div>
616
+ <span className="text-fm-icon-active! text-sm">
595
617
  Message delivered successfully
596
618
  </span>
597
619
  </div>
598
620
  <div className="flex items-center gap-3">
599
- <BubbleCrossedIcon className="h-4 w-4 text-red-400" />
600
- <span className="text-sm !text-white">
621
+ <BubbleCrossedIcon className="text-fm-icon-negative h-4 w-4" />
622
+ <span className="text-fm-icon-active! text-sm">
601
623
  Message blocked by spam filter
602
624
  </span>
603
625
  </div>
604
626
  <div className="flex items-center gap-3">
605
- <BubbleCrossedIcon className="h-4 w-4 text-rose-400" />
606
- <span className="text-sm !text-white">
627
+ <BubbleCrossedIcon className="text-fm-icon-negative h-4 w-4" />
628
+ <span className="text-fm-icon-active! text-sm">
607
629
  Message delivery failed
608
630
  </span>
609
631
  </div>
610
632
  <div className="flex items-center gap-3">
611
- <div className="h-4 w-4 rounded-full border-2 border-white/20"></div>
612
- <span className="text-sm !text-white/60">
633
+ <div className="border-fm-divider-primary h-4 w-4 rounded-full border-2"></div>
634
+ <span className="text-fm-tertiary! text-sm">
613
635
  Message pending review
614
636
  </span>
615
637
  </div>
616
638
  </div>
617
- <div className="rounded-lg bg-black/40 p-4">
618
- <pre className="overflow-x-auto text-sm !text-green-300">
639
+ <div className="bg-fm-surface-secondary rounded-lg p-4">
640
+ <pre className="text-fm-icon-positive! overflow-x-auto text-sm">
619
641
  {`<div className="space-y-3">
620
642
  <div className="flex items-center gap-3">
621
643
  <div className="h-4 w-4 rounded-full bg-green-500"></div>
@@ -637,31 +659,31 @@ function BlockedMessage() {
637
659
 
638
660
  {/* User Blocked Indicator */}
639
661
  <div className="!space-y-4">
640
- <h3 className="text-lg font-semibold !text-red-300">
662
+ <h3 className="text-fm-icon-negative! text-lg font-semibold">
641
663
  User Blocked Indicator
642
664
  </h3>
643
665
  <div className="!space-y-4">
644
666
  <div className="flex gap-4">
645
667
  <div className="relative">
646
- <div className="h-12 w-12 rounded-full bg-gray-600"></div>
647
- <BubbleCrossedIcon className="absolute -right-1 -bottom-1 h-5 w-5 rounded-full bg-black p-1 text-red-400" />
668
+ <div className="bg-fm-surface-tertiary h-12 w-12 rounded-full"></div>
669
+ <BubbleCrossedIcon className="bg-fm-surface-primary text-fm-icon-negative absolute -right-1 -bottom-1 h-5 w-5 rounded-full p-1" />
648
670
  </div>
649
671
  <div className="flex-1">
650
672
  <div className="flex items-center gap-2">
651
- <span className="font-medium !text-white">
673
+ <span className="text-fm-icon-active! font-medium">
652
674
  John Doe
653
675
  </span>
654
- <span className="rounded-full bg-red-500/20 px-2 py-1 text-xs text-red-300">
676
+ <span className="bg-fm-icon-negative/20 text-fm-icon-negative rounded-full px-2 py-1 text-xs">
655
677
  Blocked
656
678
  </span>
657
679
  </div>
658
- <p className="text-sm !text-white/60">
680
+ <p className="text-fm-tertiary! text-sm">
659
681
  Cannot send messages to this user
660
682
  </p>
661
683
  </div>
662
684
  </div>
663
- <div className="rounded-lg bg-black/40 p-4">
664
- <pre className="overflow-x-auto text-sm !text-green-300">
685
+ <div className="bg-fm-surface-secondary rounded-lg p-4">
686
+ <pre className="text-fm-icon-positive! overflow-x-auto text-sm">
665
687
  {`<div className="flex gap-4">
666
688
  <div className="relative">
667
689
  <div className="h-12 w-12 rounded-full bg-gray-600"></div>
@@ -682,22 +704,22 @@ function BlockedMessage() {
682
704
 
683
705
  {/* Action Button */}
684
706
  <div className="!space-y-4">
685
- <h3 className="text-lg font-semibold !text-red-300">
707
+ <h3 className="text-fm-icon-negative! text-lg font-semibold">
686
708
  Action Buttons
687
709
  </h3>
688
710
  <div className="!space-y-4">
689
711
  <div className="flex gap-4">
690
- <button className="flex items-center gap-2 rounded-lg border border-red-500/30 bg-red-500/20 px-4 py-2 text-red-200 transition-colors hover:bg-red-500/30">
712
+ <button className="border-fm-icon-negative/30 bg-fm-icon-negative/20 text-fm-icon-negative hover:bg-fm-icon-negative/30 flex items-center gap-2 rounded-lg border px-4 py-2 transition-colors">
691
713
  <BubbleCrossedIcon className="h-4 w-4" />
692
714
  Block User
693
715
  </button>
694
- <button className="flex items-center gap-2 rounded-lg border border-orange-500/30 bg-orange-500/20 px-4 py-2 text-orange-200 transition-colors hover:bg-orange-500/30">
716
+ <button className="border-fm-icon-warning/30 bg-fm-icon-warning/20 text-fm-icon-warning hover:bg-fm-icon-warning/30 flex items-center gap-2 rounded-lg border px-4 py-2 transition-colors">
695
717
  <BubbleCrossedIcon className="h-4 w-4" />
696
718
  Report Spam
697
719
  </button>
698
720
  </div>
699
- <div className="rounded-lg bg-black/40 p-4">
700
- <pre className="overflow-x-auto text-sm !text-green-300">
721
+ <div className="bg-fm-surface-secondary rounded-lg p-4">
722
+ <pre className="text-fm-icon-positive! overflow-x-auto text-sm">
701
723
  {`// Block action button
702
724
  <button className="flex items-center gap-2 bg-red-500/20 border border-red-500/30 px-4 py-2 rounded-lg">
703
725
  <BubbleCrossedIcon className="h-4 w-4" />
@@ -718,40 +740,42 @@ function BlockedMessage() {
718
740
 
719
741
  {/* Animation States */}
720
742
  <div className="!space-y-8">
721
- <h2 className="text-center text-3xl font-bold !text-white">
743
+ <h2 className="text-fm-icon-active! text-center text-3xl font-bold">
722
744
  Animation States
723
745
  </h2>
724
746
  <div className="grid grid-cols-1 gap-8 md:grid-cols-3">
725
747
  <div className="text-center">
726
- <h3 className="mb-4 text-lg font-medium !text-white">
748
+ <h3 className="text-fm-icon-active! mb-4 text-lg font-medium">
727
749
  Shake Animation
728
750
  </h3>
729
- <div className="rounded-lg border border-white/10 bg-white/5 px-6 py-8">
730
- <BubbleCrossedIcon className="!mx-auto h-8 w-8 animate-pulse text-red-400" />
751
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border px-6 py-8">
752
+ <BubbleCrossedIcon className="text-fm-icon-negative !mx-auto h-8 w-8 animate-pulse" />
731
753
  </div>
732
- <p className="mt-2 text-xs !text-white/60">animate-pulse</p>
754
+ <p className="text-fm-tertiary! mt-2 text-xs">
755
+ animate-pulse
756
+ </p>
733
757
  </div>
734
758
 
735
759
  <div className="text-center">
736
- <h3 className="mb-4 text-lg font-medium !text-white">
760
+ <h3 className="text-fm-icon-active! mb-4 text-lg font-medium">
737
761
  Fade Animation
738
762
  </h3>
739
- <div className="rounded-lg border border-white/10 bg-white/5 px-6 py-8">
740
- <BubbleCrossedIcon className="!mx-auto h-8 w-8 animate-bounce text-red-400" />
763
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border px-6 py-8">
764
+ <BubbleCrossedIcon className="text-fm-icon-negative !mx-auto h-8 w-8 animate-bounce" />
741
765
  </div>
742
- <p className="mt-2 text-xs !text-white/60">
766
+ <p className="text-fm-tertiary! mt-2 text-xs">
743
767
  animate-bounce
744
768
  </p>
745
769
  </div>
746
770
 
747
771
  <div className="text-center">
748
- <h3 className="mb-4 text-lg font-medium !text-white">
772
+ <h3 className="text-fm-icon-active! mb-4 text-lg font-medium">
749
773
  Scale on Hover
750
774
  </h3>
751
- <div className="rounded-lg border border-white/10 bg-white/5 px-6 py-8">
752
- <BubbleCrossedIcon className="!mx-auto h-8 w-8 text-red-400 transition-transform hover:scale-110" />
775
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border px-6 py-8">
776
+ <BubbleCrossedIcon className="text-fm-icon-negative !mx-auto h-8 w-8 transition-transform hover:scale-110" />
753
777
  </div>
754
- <p className="mt-2 text-xs !text-white/60">
778
+ <p className="text-fm-tertiary! mt-2 text-xs">
755
779
  hover:scale-110
756
780
  </p>
757
781
  </div>
@@ -760,64 +784,64 @@ function BlockedMessage() {
760
784
 
761
785
  {/* Accessibility */}
762
786
  <div className="!space-y-8">
763
- <h2 className="text-center text-3xl font-bold !text-white">
787
+ <h2 className="text-fm-icon-active! text-center text-3xl font-bold">
764
788
  Accessibility Features
765
789
  </h2>
766
790
  <div className="grid grid-cols-1 gap-8 md:grid-cols-2">
767
- <div className="!space-y-4 rounded-lg border border-white/10 bg-white/5 p-6">
768
- <h3 className="text-lg font-semibold !text-green-300">
791
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
792
+ <h3 className="text-fm-icon-positive! text-lg font-semibold">
769
793
  ✅ Built-in Features
770
794
  </h3>
771
- <ul className="!space-y-2 text-sm !text-white/70">
772
- <li className="!text-white/70">
795
+ <ul className="text-fm-secondary! !space-y-2 text-sm">
796
+ <li className="text-fm-secondary!">
773
797
  Uses Radix UI AccessibleIcon wrapper
774
798
  </li>
775
- <li className="!text-white/70">
799
+ <li className="text-fm-secondary!">
776
800
  Provides screen reader label "Bubble Crossed icon"
777
801
  </li>
778
- <li className="!text-white/70">
802
+ <li className="text-fm-secondary!">
779
803
  Supports keyboard navigation when interactive
780
804
  </li>
781
- <li className="!text-white/70">
805
+ <li className="text-fm-secondary!">
782
806
  Maintains proper color contrast ratios
783
807
  </li>
784
- <li className="!text-white/70">
808
+ <li className="text-fm-secondary!">
785
809
  Scales with user's font size preferences
786
810
  </li>
787
811
  </ul>
788
812
  </div>
789
813
 
790
- <div className="!space-y-4 rounded-lg border border-white/10 bg-white/5 p-6">
791
- <h3 className="text-lg font-semibold !text-red-300">
814
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
815
+ <h3 className="text-fm-icon-negative! text-lg font-semibold">
792
816
  💡 Best Practices
793
817
  </h3>
794
- <ul className="!space-y-2 text-sm text-white/70">
795
- <li className="!text-white/70">
818
+ <ul className="text-fm-secondary !space-y-2 text-sm">
819
+ <li className="text-fm-secondary!">
796
820
  Always pair with descriptive error text
797
821
  </li>
798
- <li className="!text-white/70">
822
+ <li className="text-fm-secondary!">
799
823
  Use consistent colors for blocked/error states
800
824
  </li>
801
- <li className="!text-white/70">
825
+ <li className="text-fm-secondary!">
802
826
  Ensure sufficient color contrast for visibility
803
827
  </li>
804
- <li className="!text-white/70">
828
+ <li className="text-fm-secondary!">
805
829
  Add focus states for interactive elements
806
830
  </li>
807
- <li className="!text-white/70">
831
+ <li className="text-fm-secondary!">
808
832
  Consider animation preferences for users
809
833
  </li>
810
834
  </ul>
811
835
  </div>
812
836
  </div>
813
837
 
814
- <div className="rounded-lg border border-white/10 bg-white/5 p-6">
815
- <h3 className="mb-4 text-lg font-semibold !text-purple-300">
838
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
839
+ <h3 className="text-fm-secondary-600! mb-4 text-lg font-semibold">
816
840
  Custom Accessibility Implementation
817
841
  </h3>
818
842
  <div className="grid grid-cols-1 gap-6 lg:grid-cols-2">
819
- <div className="rounded-lg bg-black/40 p-4">
820
- <pre className="overflow-x-auto text-sm !text-blue-300">
843
+ <div className="bg-fm-surface-secondary rounded-lg p-4">
844
+ <pre className="text-fm-icon-info! overflow-x-auto text-sm">
821
845
  {`// Custom implementation with specific context
822
846
  import { AccessibleIcon } from "@radix-ui/react-accessible-icon"
823
847
 
@@ -843,14 +867,14 @@ function BlockedMessageIcon({ label = "Blocked message", ...props }) {
843
867
  </pre>
844
868
  </div>
845
869
  <div className="!space-y-4">
846
- <p className="text-sm !text-white/70">
870
+ <p className="text-fm-secondary! text-sm">
847
871
  For specific contexts, you can wrap the
848
872
  BubbleCrossedIcon with a custom AccessibleIcon component
849
873
  that provides more descriptive labels for different
850
874
  error or blocked scenarios.
851
875
  </p>
852
- <div className="rounded-lg border border-red-500/20 bg-red-500/10 p-4">
853
- <div className="flex items-center gap-2 text-sm text-red-200">
876
+ <div className="border-fm-icon-negative/20 bg-fm-icon-negative/10 rounded-lg border p-4">
877
+ <div className="text-fm-icon-negative flex items-center gap-2 text-sm">
854
878
  <BubbleCrossedIcon className="h-4 w-4" />
855
879
  <span>
856
880
  This gives screen readers specific context about the
@@ -865,52 +889,58 @@ function BlockedMessageIcon({ label = "Blocked message", ...props }) {
865
889
 
866
890
  {/* Related Icons */}
867
891
  <div className="!space-y-8">
868
- <h2 className="text-center text-3xl font-bold !text-white">
892
+ <h2 className="text-fm-icon-active! text-center text-3xl font-bold">
869
893
  Related Icons
870
894
  </h2>
871
895
  <div className="grid grid-cols-2 gap-6 md:grid-cols-4">
872
- <div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
873
- <div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-green-500/20">
896
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
897
+ <div className="bg-fm-icon-positive/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
874
898
  <span className="text-2xl">✅</span>
875
899
  </div>
876
900
  <div>
877
- <div className="font-medium !text-white">
901
+ <div className="text-fm-icon-active! font-medium">
878
902
  BubbleCheckIcon
879
903
  </div>
880
- <div className="text-xs !text-white/60">
904
+ <div className="text-fm-tertiary! text-xs">
881
905
  Success messages
882
906
  </div>
883
907
  </div>
884
908
  </div>
885
- <div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
886
- <div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-blue-500/20">
909
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
910
+ <div className="bg-fm-icon-info/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
887
911
  <span className="text-2xl">💬</span>
888
912
  </div>
889
913
  <div>
890
- <div className="font-medium !text-white">BubbleIcon</div>
891
- <div className="text-xs !text-white/60">
914
+ <div className="text-fm-icon-active! font-medium">
915
+ BubbleIcon
916
+ </div>
917
+ <div className="text-fm-tertiary! text-xs">
892
918
  Normal chat bubble
893
919
  </div>
894
920
  </div>
895
921
  </div>
896
- <div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
897
- <div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-orange-500/20">
922
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
923
+ <div className="bg-fm-icon-warning/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
898
924
  <span className="text-2xl">⚠️</span>
899
925
  </div>
900
926
  <div>
901
- <div className="font-medium !text-white">AlertIcon</div>
902
- <div className="text-xs !text-white/60">
927
+ <div className="text-fm-icon-active! font-medium">
928
+ AlertIcon
929
+ </div>
930
+ <div className="text-fm-tertiary! text-xs">
903
931
  Warning alerts
904
932
  </div>
905
933
  </div>
906
934
  </div>
907
- <div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
908
- <div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-red-500/20">
935
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
936
+ <div className="bg-fm-icon-negative/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
909
937
  <span className="text-2xl">❌</span>
910
938
  </div>
911
939
  <div>
912
- <div className="font-medium !text-white">CrossIcon</div>
913
- <div className="text-xs !text-white/60">
940
+ <div className="text-fm-icon-active! font-medium">
941
+ CrossIcon
942
+ </div>
943
+ <div className="text-fm-tertiary! text-xs">
914
944
  General errors
915
945
  </div>
916
946
  </div>
@@ -920,15 +950,15 @@ function BlockedMessageIcon({ label = "Blocked message", ...props }) {
920
950
  </div>
921
951
 
922
952
  {/* Footer */}
923
- <div className="border-t border-white/10 bg-black/20 backdrop-blur-xl">
953
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary border-t backdrop-blur-xl">
924
954
  <div className="!mx-auto max-w-7xl px-6 py-8">
925
955
  <div className="!space-y-4 text-center">
926
- <p className="!text-white/60">
956
+ <p className="text-fm-tertiary!">
927
957
  BubbleCrossedIcon is part of the Aural UI icon library,
928
958
  designed for clear error communication and message blocking
929
959
  indicators.
930
960
  </p>
931
- <p className="text-sm !text-white/40">
961
+ <p className="text-fm-placeholder! text-sm">
932
962
  Perfect for chat applications, content moderation, spam
933
963
  filtering, and any interface requiring blocked or error
934
964
  feedback.
@@ -983,8 +1013,8 @@ const storyParameters = {
983
1013
  backgrounds: {
984
1014
  default: "dark",
985
1015
  values: [
986
- { name: "dark", value: "#0a0a0a" },
987
- { name: "darker", value: "#000000" },
1016
+ { name: "dark", value: "var(--color-fm-surface-primary)" },
1017
+ { name: "darker", value: "var(--color-fm-neutral-0)" },
988
1018
  ],
989
1019
  },
990
1020
  }
@@ -993,12 +1023,12 @@ export const Default: Story = {
993
1023
  args: {
994
1024
  width: 25,
995
1025
  height: 24,
996
- className: "text-red-400",
1026
+ className: "text-fm-icon-negative",
997
1027
  withAccessibility: true,
998
1028
  },
999
1029
  parameters: storyParameters,
1000
1030
  render: (args) => (
1001
- <div className="flex h-32 min-h-dvh items-center justify-center rounded-lg bg-gradient-to-br from-gray-900 to-gray-800">
1031
+ <div className="from-fm-surface-primary to-fm-surface-secondary flex h-32 min-h-dvh items-center justify-center rounded-lg bg-linear-to-br">
1002
1032
  <BubbleCrossedIcon {...args} />
1003
1033
  </div>
1004
1034
  ),
@@ -1015,30 +1045,30 @@ export const SizeVariations: Story = {
1015
1045
  },
1016
1046
  },
1017
1047
  render: () => (
1018
- <div className="flex h-64 min-h-dvh items-center justify-center gap-8 rounded-lg bg-gradient-to-br from-gray-900 to-gray-800 p-8">
1048
+ <div className="from-fm-surface-primary to-fm-surface-secondary flex h-64 min-h-dvh items-center justify-center gap-8 rounded-lg bg-linear-to-br p-8">
1019
1049
  <div className="text-center">
1020
- <BubbleCrossedIcon className="!mx-auto mb-2 h-3 w-3 text-red-400" />
1021
- <span className="text-xs text-white/60">12px</span>
1050
+ <BubbleCrossedIcon className="text-fm-icon-negative !mx-auto mb-2 h-3 w-3" />
1051
+ <span className="text-fm-tertiary text-xs">12px</span>
1022
1052
  </div>
1023
1053
  <div className="text-center">
1024
- <BubbleCrossedIcon className="!mx-auto mb-2 h-4 w-4 text-red-400" />
1025
- <span className="text-xs text-white/60">16px</span>
1054
+ <BubbleCrossedIcon className="text-fm-icon-negative !mx-auto mb-2 h-4 w-4" />
1055
+ <span className="text-fm-tertiary text-xs">16px</span>
1026
1056
  </div>
1027
1057
  <div className="text-center">
1028
- <BubbleCrossedIcon className="!mx-auto mb-2 h-5 w-5 text-red-400" />
1029
- <span className="text-xs text-white/60">20px</span>
1058
+ <BubbleCrossedIcon className="text-fm-icon-negative !mx-auto mb-2 h-5 w-5" />
1059
+ <span className="text-fm-tertiary text-xs">20px</span>
1030
1060
  </div>
1031
1061
  <div className="text-center">
1032
- <BubbleCrossedIcon className="!mx-auto mb-2 h-6 w-6 text-red-400" />
1033
- <span className="text-xs text-white/60">24px</span>
1062
+ <BubbleCrossedIcon className="text-fm-icon-negative !mx-auto mb-2 h-6 w-6" />
1063
+ <span className="text-fm-tertiary text-xs">24px</span>
1034
1064
  </div>
1035
1065
  <div className="text-center">
1036
- <BubbleCrossedIcon className="!mx-auto mb-2 h-8 w-8 text-red-400" />
1037
- <span className="text-xs text-white/60">32px</span>
1066
+ <BubbleCrossedIcon className="text-fm-icon-negative !mx-auto mb-2 h-8 w-8" />
1067
+ <span className="text-fm-tertiary text-xs">32px</span>
1038
1068
  </div>
1039
1069
  <div className="text-center">
1040
- <BubbleCrossedIcon className="!mx-auto mb-2 h-12 w-12 text-red-400" />
1041
- <span className="text-xs text-white/60">48px</span>
1070
+ <BubbleCrossedIcon className="text-fm-icon-negative !mx-auto mb-2 h-12 w-12" />
1071
+ <span className="text-fm-tertiary text-xs">48px</span>
1042
1072
  </div>
1043
1073
  </div>
1044
1074
  ),
@@ -1055,34 +1085,40 @@ export const ColorVariations: Story = {
1055
1085
  },
1056
1086
  },
1057
1087
  render: () => (
1058
- <div className="grid min-h-dvh grid-cols-2 items-center justify-center gap-6 rounded-lg bg-gradient-to-br from-gray-900 to-gray-800 p-8 md:grid-cols-4">
1088
+ <div className="from-fm-surface-primary to-fm-surface-secondary grid min-h-dvh grid-cols-2 items-center justify-center gap-6 rounded-lg bg-linear-to-br p-8 md:grid-cols-4">
1059
1089
  <div className="text-center">
1060
- <div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border border-red-500/30 bg-red-500/20">
1061
- <BubbleCrossedIcon className="h-8 w-8 text-red-400" />
1090
+ <div className="border-fm-icon-negative/30 bg-fm-icon-negative/20 !mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border">
1091
+ <BubbleCrossedIcon className="text-fm-icon-negative h-8 w-8" />
1092
+ </div>
1093
+ <div className="text-fm-icon-active! text-sm font-medium">Blocked</div>
1094
+ <div className="text-fm-icon-negative text-xs">
1095
+ text-fm-icon-negative
1062
1096
  </div>
1063
- <div className="text-sm font-medium !text-white">Blocked</div>
1064
- <div className="text-xs text-red-400">text-red-400</div>
1065
1097
  </div>
1066
1098
  <div className="text-center">
1067
- <div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border border-rose-500/30 bg-rose-500/20">
1068
- <BubbleCrossedIcon className="h-8 w-8 text-rose-400" />
1099
+ <div className="border-fm-icon-negative/30 bg-fm-icon-negative/20 !mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border">
1100
+ <BubbleCrossedIcon className="text-fm-icon-negative h-8 w-8" />
1101
+ </div>
1102
+ <div className="text-fm-icon-active! text-sm font-medium">Failed</div>
1103
+ <div className="text-fm-icon-negative text-xs">
1104
+ text-fm-icon-negative
1069
1105
  </div>
1070
- <div className="text-sm font-medium !text-white">Failed</div>
1071
- <div className="text-xs text-rose-400">text-rose-400</div>
1072
1106
  </div>
1073
1107
  <div className="text-center">
1074
- <div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border border-pink-500/30 bg-pink-500/20">
1075
- <BubbleCrossedIcon className="h-8 w-8 text-pink-400" />
1108
+ <div className="border-fm-secondary-500/30 bg-fm-secondary-500/20 !mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border">
1109
+ <BubbleCrossedIcon className="text-fm-secondary-600 h-8 w-8" />
1110
+ </div>
1111
+ <div className="text-fm-icon-active! text-sm font-medium">Rejected</div>
1112
+ <div className="text-fm-secondary-600 text-xs">
1113
+ text-fm-secondary-600
1076
1114
  </div>
1077
- <div className="text-sm font-medium !text-white">Rejected</div>
1078
- <div className="text-xs text-pink-400">text-pink-400</div>
1079
1115
  </div>
1080
1116
  <div className="text-center">
1081
- <div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border border-orange-500/30 bg-orange-500/20">
1082
- <BubbleCrossedIcon className="h-8 w-8 text-orange-400" />
1117
+ <div className="border-fm-icon-warning/30 bg-fm-icon-warning/20 !mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border">
1118
+ <BubbleCrossedIcon className="text-fm-icon-warning h-8 w-8" />
1083
1119
  </div>
1084
- <div className="text-sm font-medium !text-white">Spam</div>
1085
- <div className="text-xs text-orange-400">text-orange-400</div>
1120
+ <div className="text-fm-icon-active! text-sm font-medium">Spam</div>
1121
+ <div className="text-fm-icon-warning text-xs">text-fm-icon-warning</div>
1086
1122
  </div>
1087
1123
  </div>
1088
1124
  ),
@@ -1099,18 +1135,20 @@ export const UsageExamples: Story = {
1099
1135
  },
1100
1136
  },
1101
1137
  render: () => (
1102
- <div className="min-h-dvh !space-y-8 rounded-lg bg-gradient-to-br from-gray-900 to-gray-800 p-8">
1138
+ <div className="from-fm-surface-primary to-fm-surface-secondary min-h-dvh !space-y-8 rounded-lg bg-linear-to-br p-8">
1103
1139
  {/* Blocked Message */}
1104
1140
  <div className="!space-y-2">
1105
- <h3 className="text-sm font-medium !text-white">
1141
+ <h3 className="text-fm-icon-active! text-sm font-medium">
1106
1142
  Blocked Message Alert
1107
1143
  </h3>
1108
- <div className="rounded-lg border border-red-500/20 bg-red-500/10 p-4">
1144
+ <div className="border-fm-icon-negative/20 bg-fm-icon-negative/10 rounded-lg border p-4">
1109
1145
  <div className="flex items-start gap-3">
1110
- <BubbleCrossedIcon className="mt-0.5 h-5 w-5 flex-shrink-0 text-red-400" />
1146
+ <BubbleCrossedIcon className="text-fm-icon-negative mt-0.5 h-5 w-5 flex-shrink-0" />
1111
1147
  <div>
1112
- <h4 className="font-medium text-red-200">Message Blocked</h4>
1113
- <p className="text-sm text-red-300/80">
1148
+ <h4 className="text-fm-icon-negative font-medium">
1149
+ Message Blocked
1150
+ </h4>
1151
+ <p className="text-fm-icon-negative/80 text-sm">
1114
1152
  This message was blocked due to inappropriate content.
1115
1153
  </p>
1116
1154
  </div>
@@ -1120,13 +1158,17 @@ export const UsageExamples: Story = {
1120
1158
 
1121
1159
  {/* Chat Error Status */}
1122
1160
  <div className="!space-y-2">
1123
- <h3 className="text-sm font-medium !text-white">Chat Error Status</h3>
1161
+ <h3 className="text-fm-icon-active! text-sm font-medium">
1162
+ Chat Error Status
1163
+ </h3>
1124
1164
  <div className="flex justify-end">
1125
- <div className="max-w-xs rounded-lg bg-gray-500 px-3 py-2 opacity-50">
1126
- <p className="text-sm text-white">Your message couldn't be sent</p>
1165
+ <div className="bg-fm-surface-tertiary max-w-xs rounded-lg px-3 py-2 opacity-50">
1166
+ <p className="text-fm-icon-active text-sm">
1167
+ Your message couldn't be sent
1168
+ </p>
1127
1169
  <div className="mt-1 flex items-center justify-end gap-1">
1128
- <span className="text-xs text-gray-200">Failed</span>
1129
- <BubbleCrossedIcon className="h-3 w-3 text-red-400" />
1170
+ <span className="text-fm-secondary text-xs">Failed</span>
1171
+ <BubbleCrossedIcon className="text-fm-icon-negative h-3 w-3" />
1130
1172
  </div>
1131
1173
  </div>
1132
1174
  </div>
@@ -1134,15 +1176,17 @@ export const UsageExamples: Story = {
1134
1176
 
1135
1177
  {/* Content Moderation */}
1136
1178
  <div className="!space-y-2">
1137
- <h3 className="text-sm font-medium !text-white">Content Moderation</h3>
1138
- <div className="rounded-lg border border-white/10 bg-white/5 p-6 text-center">
1139
- <div className="!mx-auto mb-4 flex h-16 w-16 items-center justify-center rounded-full bg-red-500/20">
1140
- <BubbleCrossedIcon className="h-8 w-8 text-red-400" />
1179
+ <h3 className="text-fm-icon-active! text-sm font-medium">
1180
+ Content Moderation
1181
+ </h3>
1182
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6 text-center">
1183
+ <div className="bg-fm-icon-negative/20 !mx-auto mb-4 flex h-16 w-16 items-center justify-center rounded-full">
1184
+ <BubbleCrossedIcon className="text-fm-icon-negative h-8 w-8" />
1141
1185
  </div>
1142
- <h3 className="mb-2 text-lg font-semibold !text-white">
1186
+ <h3 className="text-fm-icon-active! mb-2 text-lg font-semibold">
1143
1187
  Content Rejected
1144
1188
  </h3>
1145
- <p className="text-sm !text-white/70">
1189
+ <p className="text-fm-secondary! text-sm">
1146
1190
  Your message violates our community standards and has been removed.
1147
1191
  </p>
1148
1192
  </div>
@@ -1150,13 +1194,15 @@ export const UsageExamples: Story = {
1150
1194
 
1151
1195
  {/* Action Buttons */}
1152
1196
  <div className="!space-y-2">
1153
- <h3 className="text-sm font-medium !text-white">Action Buttons</h3>
1197
+ <h3 className="text-fm-icon-active! text-sm font-medium">
1198
+ Action Buttons
1199
+ </h3>
1154
1200
  <div className="flex gap-4">
1155
- <button className="flex items-center gap-2 rounded-lg border border-red-500/30 bg-red-500/20 px-4 py-2 text-red-200 transition-colors hover:bg-red-500/30">
1201
+ <button className="border-fm-icon-negative/30 bg-fm-icon-negative/20 text-fm-icon-negative hover:bg-fm-icon-negative/30 flex items-center gap-2 rounded-lg border px-4 py-2 transition-colors">
1156
1202
  <BubbleCrossedIcon className="h-4 w-4" />
1157
1203
  Block User
1158
1204
  </button>
1159
- <button className="flex items-center gap-2 rounded-lg border border-orange-500/30 bg-orange-500/20 px-4 py-2 text-orange-200 transition-colors hover:bg-orange-500/30">
1205
+ <button className="border-fm-icon-warning/30 bg-fm-icon-warning/20 text-fm-icon-warning hover:bg-fm-icon-warning/30 flex items-center gap-2 rounded-lg border px-4 py-2 transition-colors">
1160
1206
  <BubbleCrossedIcon className="h-4 w-4" />
1161
1207
  Report Spam
1162
1208
  </button>
@@ -1177,33 +1223,35 @@ export const AnimatedStates: Story = {
1177
1223
  },
1178
1224
  },
1179
1225
  render: () => (
1180
- <div className="grid min-h-dvh grid-cols-1 items-center gap-8 rounded-lg bg-gradient-to-br from-gray-900 to-gray-800 p-8 md:grid-cols-3">
1226
+ <div className="from-fm-surface-primary to-fm-surface-secondary grid min-h-dvh grid-cols-1 items-center gap-8 rounded-lg bg-linear-to-br p-8 md:grid-cols-3">
1181
1227
  <div className="text-center">
1182
- <h3 className="mb-4 text-lg font-medium !text-white">
1228
+ <h3 className="text-fm-icon-active! mb-4 text-lg font-medium">
1183
1229
  Pulse Animation
1184
1230
  </h3>
1185
- <div className="rounded-lg border border-white/10 bg-white/5 px-6 py-8">
1186
- <BubbleCrossedIcon className="!mx-auto h-8 w-8 animate-pulse text-red-400" />
1231
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border px-6 py-8">
1232
+ <BubbleCrossedIcon className="text-fm-icon-negative !mx-auto h-8 w-8 animate-pulse" />
1187
1233
  </div>
1188
- <p className="mt-2 text-xs !text-white/60">Error indication</p>
1234
+ <p className="text-fm-tertiary! mt-2 text-xs">Error indication</p>
1189
1235
  </div>
1190
1236
 
1191
1237
  <div className="text-center">
1192
- <h3 className="mb-4 text-lg font-medium !text-white">
1238
+ <h3 className="text-fm-icon-active! mb-4 text-lg font-medium">
1193
1239
  Bounce Animation
1194
1240
  </h3>
1195
- <div className="rounded-lg border border-white/10 bg-white/5 px-6 py-8">
1196
- <BubbleCrossedIcon className="!mx-auto h-8 w-8 animate-bounce text-red-400" />
1241
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border px-6 py-8">
1242
+ <BubbleCrossedIcon className="text-fm-icon-negative !mx-auto h-8 w-8 animate-bounce" />
1197
1243
  </div>
1198
- <p className="mt-2 text-xs !text-white/60">Attention drawing</p>
1244
+ <p className="text-fm-tertiary! mt-2 text-xs">Attention drawing</p>
1199
1245
  </div>
1200
1246
 
1201
1247
  <div className="text-center">
1202
- <h3 className="mb-4 text-lg font-medium !text-white">Scale on Hover</h3>
1203
- <div className="rounded-lg border border-white/10 bg-white/5 px-6 py-8">
1204
- <BubbleCrossedIcon className="!mx-auto h-8 w-8 text-red-400 transition-transform hover:scale-110" />
1248
+ <h3 className="text-fm-icon-active! mb-4 text-lg font-medium">
1249
+ Scale on Hover
1250
+ </h3>
1251
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border px-6 py-8">
1252
+ <BubbleCrossedIcon className="text-fm-icon-negative !mx-auto h-8 w-8 transition-transform hover:scale-110" />
1205
1253
  </div>
1206
- <p className="mt-2 text-xs !text-white/60">Interactive feedback</p>
1254
+ <p className="text-fm-tertiary! mt-2 text-xs">Interactive feedback</p>
1207
1255
  </div>
1208
1256
  </div>
1209
1257
  ),
@@ -1222,13 +1270,13 @@ export const Playground: Story = {
1222
1270
  args: {
1223
1271
  width: 32,
1224
1272
  height: 32,
1225
- className: "text-red-400",
1273
+ className: "text-fm-icon-negative",
1226
1274
  strokeWidth: 1.5,
1227
1275
  strokeLinecap: "square",
1228
1276
  },
1229
1277
  render: (args) => (
1230
- <div className="flex h-64 min-h-dvh items-center justify-center rounded-lg bg-gradient-to-br from-gray-900 to-gray-800">
1231
- <div className="rounded-lg border border-white/10 bg-white/5 p-8">
1278
+ <div className="from-fm-surface-primary to-fm-surface-secondary flex h-64 min-h-dvh items-center justify-center rounded-lg bg-linear-to-br">
1279
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-8">
1232
1280
  <BubbleCrossedIcon {...args} />
1233
1281
  </div>
1234
1282
  </div>