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
@@ -76,8 +76,8 @@ export const BasicAvatars: Story = {
76
76
  render: () => (
77
77
  <div className="space-y-8">
78
78
  <div className="text-center">
79
- <h3 className="mb-2 font-medium text-white">Basic Avatars</h3>
80
- <p className="text-sm text-white/60">
79
+ <h3 className="text-fm-primary mb-2 font-medium">Basic Avatars</h3>
80
+ <p className="text-fm-secondary text-sm">
81
81
  Standard avatar components with images and fallbacks
82
82
  </p>
83
83
  </div>
@@ -92,7 +92,7 @@ export const BasicAvatars: Story = {
92
92
  />
93
93
  <AvatarFallback>JD</AvatarFallback>
94
94
  </Avatar>
95
- <p className="text-xs text-white/60">With Image</p>
95
+ <p className="text-fm-secondary text-xs">With Image</p>
96
96
  </div>
97
97
 
98
98
  {/* Avatar with Fallback Only */}
@@ -100,7 +100,7 @@ export const BasicAvatars: Story = {
100
100
  <Avatar className="text-fm-primary [font-size:var(--text-fm-sm)]">
101
101
  <AvatarFallback>AB</AvatarFallback>
102
102
  </Avatar>
103
- <p className="text-xs text-white/60">Fallback Only</p>
103
+ <p className="text-fm-secondary text-xs">Fallback Only</p>
104
104
  </div>
105
105
 
106
106
  {/* Avatar with Broken Image (shows fallback) */}
@@ -109,7 +109,7 @@ export const BasicAvatars: Story = {
109
109
  <AvatarImage src="/broken-image.jpg" alt="Broken" />
110
110
  <AvatarFallback>BR</AvatarFallback>
111
111
  </Avatar>
112
- <p className="text-xs text-white/60">Broken Image</p>
112
+ <p className="text-fm-secondary text-xs">Broken Image</p>
113
113
  </div>
114
114
 
115
115
  {/* Different Initials */}
@@ -117,7 +117,7 @@ export const BasicAvatars: Story = {
117
117
  <Avatar className="text-fm-primary [font-size:var(--text-fm-sm)]">
118
118
  <AvatarFallback>SM</AvatarFallback>
119
119
  </Avatar>
120
- <p className="text-xs text-white/60">Initials</p>
120
+ <p className="text-fm-secondary text-xs">Initials</p>
121
121
  </div>
122
122
  </div>
123
123
  </div>
@@ -137,8 +137,8 @@ export const SizeVariations: Story = {
137
137
  render: () => (
138
138
  <div className="space-y-8">
139
139
  <div className="text-center">
140
- <h3 className="mb-2 font-medium text-white">Size Variations</h3>
141
- <p className="text-sm text-white/60">
140
+ <h3 className="text-fm-primary mb-2 font-medium">Size Variations</h3>
141
+ <p className="text-fm-secondary text-sm">
142
142
  Different avatar sizes for various use cases
143
143
  </p>
144
144
  </div>
@@ -153,7 +153,7 @@ export const SizeVariations: Story = {
153
153
  />
154
154
  <AvatarFallback className="text-xs">XS</AvatarFallback>
155
155
  </Avatar>
156
- <p className="text-xs text-white/60">Extra Small (24px)</p>
156
+ <p className="text-fm-secondary text-xs">Extra Small (24px)</p>
157
157
  </div>
158
158
 
159
159
  {/* Small */}
@@ -165,7 +165,7 @@ export const SizeVariations: Story = {
165
165
  />
166
166
  <AvatarFallback className="text-xs">S</AvatarFallback>
167
167
  </Avatar>
168
- <p className="text-xs text-white/60">Small (28px)</p>
168
+ <p className="text-fm-secondary text-xs">Small (28px)</p>
169
169
  </div>
170
170
 
171
171
  {/* Default */}
@@ -177,7 +177,7 @@ export const SizeVariations: Story = {
177
177
  />
178
178
  <AvatarFallback>M</AvatarFallback>
179
179
  </Avatar>
180
- <p className="text-xs text-white/60">Default (32px)</p>
180
+ <p className="text-fm-secondary text-xs">Default (32px)</p>
181
181
  </div>
182
182
 
183
183
  {/* Large */}
@@ -189,7 +189,7 @@ export const SizeVariations: Story = {
189
189
  />
190
190
  <AvatarFallback>L</AvatarFallback>
191
191
  </Avatar>
192
- <p className="text-xs text-white/60">Large (48px)</p>
192
+ <p className="text-fm-secondary text-xs">Large (48px)</p>
193
193
  </div>
194
194
 
195
195
  {/* Extra Large */}
@@ -201,7 +201,7 @@ export const SizeVariations: Story = {
201
201
  />
202
202
  <AvatarFallback className="text-lg">XL</AvatarFallback>
203
203
  </Avatar>
204
- <p className="text-xs text-white/60">Extra Large (64px)</p>
204
+ <p className="text-fm-secondary text-xs">Extra Large (64px)</p>
205
205
  </div>
206
206
 
207
207
  {/* XXL */}
@@ -213,7 +213,7 @@ export const SizeVariations: Story = {
213
213
  />
214
214
  <AvatarFallback className="text-xl">XXL</AvatarFallback>
215
215
  </Avatar>
216
- <p className="text-xs text-white/60">XXL (80px)</p>
216
+ <p className="text-fm-secondary text-xs">XXL (80px)</p>
217
217
  </div>
218
218
  </div>
219
219
  </div>
@@ -233,8 +233,10 @@ export const FallbackVariations: Story = {
233
233
  render: () => (
234
234
  <div className="space-y-8">
235
235
  <div className="text-center">
236
- <h3 className="mb-2 font-medium text-white">Fallback Variations</h3>
237
- <p className="text-sm text-white/60">
236
+ <h3 className="text-fm-primary mb-2 font-medium">
237
+ Fallback Variations
238
+ </h3>
239
+ <p className="text-fm-secondary text-sm">
238
240
  Different fallback content styles and approaches
239
241
  </p>
240
242
  </div>
@@ -245,7 +247,7 @@ export const FallbackVariations: Story = {
245
247
  <Avatar className="text-fm-primary size-12">
246
248
  <AvatarFallback>JD</AvatarFallback>
247
249
  </Avatar>
248
- <p className="text-xs text-white/60">Standard Initials</p>
250
+ <p className="text-fm-secondary text-xs">Standard Initials</p>
249
251
  </div>
250
252
 
251
253
  {/* Single Initial */}
@@ -253,7 +255,7 @@ export const FallbackVariations: Story = {
253
255
  <Avatar className="text-fm-primary size-12">
254
256
  <AvatarFallback>A</AvatarFallback>
255
257
  </Avatar>
256
- <p className="text-xs text-white/60">Single Initial</p>
258
+ <p className="text-fm-secondary text-xs">Single Initial</p>
257
259
  </div>
258
260
 
259
261
  {/* Numbers */}
@@ -261,7 +263,7 @@ export const FallbackVariations: Story = {
261
263
  <Avatar className="text-fm-primary size-12">
262
264
  <AvatarFallback>42</AvatarFallback>
263
265
  </Avatar>
264
- <p className="text-xs text-white/60">Numbers</p>
266
+ <p className="text-fm-secondary text-xs">Numbers</p>
265
267
  </div>
266
268
 
267
269
  {/* Custom Background */}
@@ -271,7 +273,7 @@ export const FallbackVariations: Story = {
271
273
  BG
272
274
  </AvatarFallback>
273
275
  </Avatar>
274
- <p className="text-xs text-white/60">Custom Background</p>
276
+ <p className="text-fm-secondary text-xs">Custom Background</p>
275
277
  </div>
276
278
 
277
279
  {/* Gradient Background */}
@@ -281,7 +283,7 @@ export const FallbackVariations: Story = {
281
283
  GR
282
284
  </AvatarFallback>
283
285
  </Avatar>
284
- <p className="text-xs text-white/60">Gradient</p>
286
+ <p className="text-fm-secondary text-xs">Gradient</p>
285
287
  </div>
286
288
 
287
289
  {/* Different Color */}
@@ -291,7 +293,7 @@ export const FallbackVariations: Story = {
291
293
  GN
292
294
  </AvatarFallback>
293
295
  </Avatar>
294
- <p className="text-xs text-white/60">Green Theme</p>
296
+ <p className="text-fm-secondary text-xs">Green Theme</p>
295
297
  </div>
296
298
 
297
299
  {/* Orange Theme */}
@@ -301,7 +303,7 @@ export const FallbackVariations: Story = {
301
303
  OR
302
304
  </AvatarFallback>
303
305
  </Avatar>
304
- <p className="text-xs text-white/60">Orange Theme</p>
306
+ <p className="text-fm-secondary text-xs">Orange Theme</p>
305
307
  </div>
306
308
 
307
309
  {/* Dark Theme */}
@@ -311,7 +313,7 @@ export const FallbackVariations: Story = {
311
313
  DK
312
314
  </AvatarFallback>
313
315
  </Avatar>
314
- <p className="text-xs text-white/60">Dark Theme</p>
316
+ <p className="text-fm-secondary text-xs">Dark Theme</p>
315
317
  </div>
316
318
  </div>
317
319
  </div>
@@ -331,17 +333,19 @@ export const RealWorldExamples: Story = {
331
333
  render: () => (
332
334
  <div className="space-y-12">
333
335
  <div className="text-center">
334
- <h3 className="mb-2 font-medium text-white">Real World Examples</h3>
335
- <p className="text-sm text-white/60">
336
+ <h3 className="text-fm-primary mb-2 font-medium">
337
+ Real World Examples
338
+ </h3>
339
+ <p className="text-fm-secondary text-sm">
336
340
  Common avatar usage patterns in UI components
337
341
  </p>
338
342
  </div>
339
343
 
340
344
  {/* User List */}
341
345
  <div className="space-y-4">
342
- <h4 className="text-sm font-medium text-white/80">User List</h4>
346
+ <h4 className="text-fm-tertiary text-sm font-medium">User List</h4>
343
347
  <div className="mx-auto max-w-md space-y-3">
344
- <div className="flex items-center gap-3 rounded-lg border border-white/10 bg-white/5 p-3">
348
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary flex items-center gap-3 rounded-lg border p-3">
345
349
  <Avatar>
346
350
  <AvatarImage
347
351
  src="https://images.unsplash.com/photo-1472099645785-5658abf4ff4e?w=100&h=100&fit=crop&crop=face"
@@ -350,11 +354,11 @@ export const RealWorldExamples: Story = {
350
354
  <AvatarFallback>JD</AvatarFallback>
351
355
  </Avatar>
352
356
  <div>
353
- <p className="text-sm font-medium text-white">John Doe</p>
354
- <p className="text-xs text-white/60">john.doe@example.com</p>
357
+ <p className="text-fm-primary text-sm font-medium">John Doe</p>
358
+ <p className="text-fm-secondary text-xs">john.doe@example.com</p>
355
359
  </div>
356
360
  </div>
357
- <div className="flex items-center gap-3 rounded-lg border border-white/10 bg-white/5 p-3">
361
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary flex items-center gap-3 rounded-lg border p-3">
358
362
  <Avatar>
359
363
  <AvatarImage
360
364
  src="https://images.unsplash.com/photo-1494790108755-2616b612b47c?w=100&h=100&fit=crop&crop=face"
@@ -363,19 +367,25 @@ export const RealWorldExamples: Story = {
363
367
  <AvatarFallback>SW</AvatarFallback>
364
368
  </Avatar>
365
369
  <div>
366
- <p className="text-sm font-medium text-white">Sarah Wilson</p>
367
- <p className="text-xs text-white/60">sarah.wilson@example.com</p>
370
+ <p className="text-fm-primary text-sm font-medium">
371
+ Sarah Wilson
372
+ </p>
373
+ <p className="text-fm-secondary text-xs">
374
+ sarah.wilson@example.com
375
+ </p>
368
376
  </div>
369
377
  </div>
370
- <div className="flex items-center gap-3 rounded-lg border border-white/10 bg-white/5 p-3">
378
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary flex items-center gap-3 rounded-lg border p-3">
371
379
  <Avatar>
372
380
  <AvatarFallback className="bg-blue-500 text-white">
373
381
  MJ
374
382
  </AvatarFallback>
375
383
  </Avatar>
376
384
  <div>
377
- <p className="text-sm font-medium text-white">Michael Johnson</p>
378
- <p className="text-xs text-white/60">michael.j@example.com</p>
385
+ <p className="text-fm-primary text-sm font-medium">
386
+ Michael Johnson
387
+ </p>
388
+ <p className="text-fm-secondary text-xs">michael.j@example.com</p>
379
389
  </div>
380
390
  </div>
381
391
  </div>
@@ -383,7 +393,7 @@ export const RealWorldExamples: Story = {
383
393
 
384
394
  {/* Comment Thread */}
385
395
  <div className="space-y-4">
386
- <h4 className="text-sm font-medium text-white/80">Comment Thread</h4>
396
+ <h4 className="text-fm-tertiary text-sm font-medium">Comment Thread</h4>
387
397
  <div className="mx-auto max-w-md space-y-4">
388
398
  <div className="flex gap-3">
389
399
  <Avatar className="size-8">
@@ -394,15 +404,15 @@ export const RealWorldExamples: Story = {
394
404
  <AvatarFallback className="text-xs">AL</AvatarFallback>
395
405
  </Avatar>
396
406
  <div className="flex-1">
397
- <div className="rounded-lg border border-white/10 bg-white/5 p-3">
398
- <p className="mb-1 text-xs font-medium text-white">
407
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-3">
408
+ <p className="text-fm-primary mb-1 text-xs font-medium">
399
409
  Alex Thompson
400
410
  </p>
401
- <p className="text-sm text-white/80">
411
+ <p className="text-fm-tertiary text-sm">
402
412
  This looks great! Really like the new design direction.
403
413
  </p>
404
414
  </div>
405
- <p className="mt-1 text-xs text-white/40">2 hours ago</p>
415
+ <p className="text-fm-secondary mt-1 text-xs">2 hours ago</p>
406
416
  </div>
407
417
  </div>
408
418
  <div className="flex gap-3">
@@ -412,15 +422,15 @@ export const RealWorldExamples: Story = {
412
422
  </AvatarFallback>
413
423
  </Avatar>
414
424
  <div className="flex-1">
415
- <div className="rounded-lg border border-white/10 bg-white/5 p-3">
416
- <p className="mb-1 text-xs font-medium text-white">
425
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-3">
426
+ <p className="text-fm-primary mb-1 text-xs font-medium">
417
427
  Emma Davis
418
428
  </p>
419
- <p className="text-sm text-white/80">
429
+ <p className="text-fm-tertiary text-sm">
420
430
  Agreed! The frosted glass effect is perfect.
421
431
  </p>
422
432
  </div>
423
- <p className="mt-1 text-xs text-white/40">1 hour ago</p>
433
+ <p className="text-fm-secondary mt-1 text-xs">1 hour ago</p>
424
434
  </div>
425
435
  </div>
426
436
  </div>
@@ -428,7 +438,7 @@ export const RealWorldExamples: Story = {
428
438
 
429
439
  {/* Team Members */}
430
440
  <div className="space-y-4">
431
- <h4 className="text-sm font-medium text-white/80">Team Members</h4>
441
+ <h4 className="text-fm-tertiary text-sm font-medium">Team Members</h4>
432
442
  <div className="flex items-center justify-center gap-2">
433
443
  <Avatar className="size-10">
434
444
  <AvatarImage
@@ -478,8 +488,8 @@ export const LoadingStates: Story = {
478
488
  render: () => (
479
489
  <div className="space-y-8">
480
490
  <div className="text-center">
481
- <h3 className="mb-2 font-medium text-white">Loading States</h3>
482
- <p className="text-sm text-white/60">
491
+ <h3 className="text-fm-primary mb-2 font-medium">Loading States</h3>
492
+ <p className="text-fm-secondary text-sm">
483
493
  How avatars handle loading and error states
484
494
  </p>
485
495
  </div>
@@ -496,7 +506,7 @@ export const LoadingStates: Story = {
496
506
  <div className="h-4 w-4 rounded bg-gray-400"></div>
497
507
  </AvatarFallback>
498
508
  </Avatar>
499
- <p className="text-xs text-white/60">Loading...</p>
509
+ <p className="text-fm-secondary text-xs">Loading...</p>
500
510
  </div>
501
511
 
502
512
  {/* Error State */}
@@ -507,7 +517,7 @@ export const LoadingStates: Story = {
507
517
  !
508
518
  </AvatarFallback>
509
519
  </Avatar>
510
- <p className="text-xs text-white/60">Error State</p>
520
+ <p className="text-fm-secondary text-xs">Error State</p>
511
521
  </div>
512
522
 
513
523
  {/* Skeleton State */}
@@ -515,7 +525,7 @@ export const LoadingStates: Story = {
515
525
  <Avatar className="animate-pulse bg-gray-700">
516
526
  <AvatarFallback className="bg-gray-600"></AvatarFallback>
517
527
  </Avatar>
518
- <p className="text-xs text-white/60">Skeleton</p>
528
+ <p className="text-fm-secondary text-xs">Skeleton</p>
519
529
  </div>
520
530
 
521
531
  {/* Success State */}
@@ -527,16 +537,16 @@ export const LoadingStates: Story = {
527
537
  />
528
538
  <AvatarFallback>OK</AvatarFallback>
529
539
  </Avatar>
530
- <p className="text-xs text-white/60">Loaded</p>
540
+ <p className="text-fm-secondary text-xs">Loaded</p>
531
541
  </div>
532
542
  </div>
533
543
 
534
544
  <div className="text-center">
535
- <div className="inline-block max-w-lg rounded-lg border border-white/10 bg-white/5 p-4">
536
- <h4 className="mb-2 text-sm font-medium text-white">
545
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary inline-block max-w-lg rounded-lg border p-4">
546
+ <h4 className="text-fm-primary mb-2 text-sm font-medium">
537
547
  Loading Behavior
538
548
  </h4>
539
- <p className="text-xs leading-relaxed text-white/60">
549
+ <p className="text-fm-secondary text-xs leading-relaxed">
540
550
  Avatars automatically show fallback content while images are loading
541
551
  or if they fail to load. You can customize the fallback appearance
542
552
  to match your design system or show loading indicators.
@@ -560,15 +570,17 @@ export const AccessibilityExample: Story = {
560
570
  render: () => (
561
571
  <div className="space-y-8">
562
572
  <div className="text-center">
563
- <h3 className="mb-2 font-medium text-white">Accessibility Features</h3>
564
- <p className="text-sm text-white/60">
573
+ <h3 className="text-fm-primary mb-2 font-medium">
574
+ Accessibility Features
575
+ </h3>
576
+ <p className="text-fm-secondary text-sm">
565
577
  Proper accessibility implementation with alt text and descriptions
566
578
  </p>
567
579
  </div>
568
580
 
569
581
  <div className="mx-auto max-w-md space-y-6">
570
582
  {/* Profile with proper alt text */}
571
- <div className="flex items-center gap-3 rounded-lg border border-white/10 bg-white/5 p-4">
583
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary flex items-center gap-3 rounded-lg border p-4">
572
584
  <Avatar>
573
585
  <AvatarImage
574
586
  src="https://images.unsplash.com/photo-1472099645785-5658abf4ff4e?w=100&h=100&fit=crop&crop=face"
@@ -577,26 +589,26 @@ export const AccessibilityExample: Story = {
577
589
  <AvatarFallback>JD</AvatarFallback>
578
590
  </Avatar>
579
591
  <div>
580
- <p className="text-sm font-medium text-white">John Doe</p>
581
- <p className="text-xs text-white/60">Software Engineer</p>
592
+ <p className="text-fm-primary text-sm font-medium">John Doe</p>
593
+ <p className="text-fm-secondary text-xs">Software Engineer</p>
582
594
  </div>
583
595
  </div>
584
596
 
585
597
  {/* Fallback with descriptive content */}
586
- <div className="flex items-center gap-3 rounded-lg border border-white/10 bg-white/5 p-4">
598
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary flex items-center gap-3 rounded-lg border p-4">
587
599
  <Avatar title="User avatar for Sarah Wilson">
588
600
  <AvatarFallback aria-label="Sarah Wilson's initials">
589
601
  SW
590
602
  </AvatarFallback>
591
603
  </Avatar>
592
604
  <div>
593
- <p className="text-sm font-medium text-white">Sarah Wilson</p>
594
- <p className="text-xs text-white/60">UX Designer</p>
605
+ <p className="text-fm-primary text-sm font-medium">Sarah Wilson</p>
606
+ <p className="text-fm-secondary text-xs">UX Designer</p>
595
607
  </div>
596
608
  </div>
597
609
 
598
610
  {/* Online status indicator */}
599
- <div className="flex items-center gap-3 rounded-lg border border-white/10 bg-white/5 p-4">
611
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary flex items-center gap-3 rounded-lg border p-4">
600
612
  <div className="relative">
601
613
  <Avatar>
602
614
  <AvatarImage
@@ -606,24 +618,26 @@ export const AccessibilityExample: Story = {
606
618
  <AvatarFallback>ED</AvatarFallback>
607
619
  </Avatar>
608
620
  <div
609
- className="absolute -right-0.5 -bottom-0.5 h-3 w-3 rounded-full border-2 border-gray-900 bg-green-500"
621
+ className="border-fm-surface-primary bg-fm-surface-positive absolute -right-0.5 -bottom-0.5 h-3 w-3 rounded-full border-2"
610
622
  aria-label="Online status indicator"
611
623
  title="Currently online"
612
624
  ></div>
613
625
  </div>
614
626
  <div>
615
- <p className="text-sm font-medium text-white">Emma Davis</p>
616
- <p className="text-xs text-white/60">Product Manager • Online</p>
627
+ <p className="text-fm-primary text-sm font-medium">Emma Davis</p>
628
+ <p className="text-fm-secondary text-xs">
629
+ Product Manager • Online
630
+ </p>
617
631
  </div>
618
632
  </div>
619
633
  </div>
620
634
 
621
635
  <div className="text-center">
622
- <div className="inline-block max-w-lg rounded-lg border border-white/10 bg-white/5 p-4">
623
- <h4 className="mb-2 text-sm font-medium text-white">
636
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary inline-block max-w-lg rounded-lg border p-4">
637
+ <h4 className="text-fm-primary mb-2 text-sm font-medium">
624
638
  Accessibility Best Practices
625
639
  </h4>
626
- <div className="space-y-2 text-left text-xs text-white/60">
640
+ <div className="text-fm-secondary space-y-2 text-left text-xs">
627
641
  <p>• Use descriptive alt text for images</p>
628
642
  <p>• Provide aria-label for fallback content</p>
629
643
  <p>• Include title attributes for additional context</p>
@@ -135,7 +135,7 @@ export const ChipVariants: Story = {
135
135
  <TabsContent value="chip" className="mt-6">
136
136
  <div className="flex flex-col gap-6">
137
137
  <div className="flex flex-col gap-4">
138
- <h3 className="text-lg font-semibold text-white">
138
+ <h3 className="text-fm-primary text-lg font-semibold">
139
139
  Noise Variations
140
140
  </h3>
141
141
  <div className="flex gap-4">
@@ -154,7 +154,7 @@ export const ChipVariants: Story = {
154
154
  </div>
155
155
  </div>
156
156
  <div className="flex flex-col gap-4">
157
- <h3 className="text-lg font-semibold text-white">
157
+ <h3 className="text-fm-primary text-lg font-semibold">
158
158
  Size Variations
159
159
  </h3>
160
160
  <div className="flex gap-4">
@@ -170,7 +170,7 @@ export const ChipVariants: Story = {
170
170
  </div>
171
171
  </div>
172
172
  <div className="flex flex-col gap-4">
173
- <h3 className="text-lg font-semibold text-white">
173
+ <h3 className="text-fm-primary text-lg font-semibold">
174
174
  Disabled State
175
175
  </h3>
176
176
  <div className="flex gap-4">
@@ -184,7 +184,7 @@ export const ChipVariants: Story = {
184
184
  <TabsContent value="chipActive" className="mt-6">
185
185
  <div className="flex flex-col gap-6">
186
186
  <div className="flex flex-col gap-4">
187
- <h3 className="text-lg font-semibold text-white">
187
+ <h3 className="text-fm-primary text-lg font-semibold">
188
188
  Noise Variations
189
189
  </h3>
190
190
  <div className="flex gap-4">
@@ -203,7 +203,7 @@ export const ChipVariants: Story = {
203
203
  </div>
204
204
  </div>
205
205
  <div className="flex flex-col gap-4">
206
- <h3 className="text-lg font-semibold text-white">
206
+ <h3 className="text-fm-primary text-lg font-semibold">
207
207
  Size Variations
208
208
  </h3>
209
209
  <div className="flex gap-4">
@@ -219,7 +219,7 @@ export const ChipVariants: Story = {
219
219
  </div>
220
220
  </div>
221
221
  <div className="flex flex-col gap-4">
222
- <h3 className="text-lg font-semibold text-white">
222
+ <h3 className="text-fm-primary text-lg font-semibold">
223
223
  Disabled State
224
224
  </h3>
225
225
  <div className="flex gap-4">
@@ -254,7 +254,7 @@ export const AllVariants: Story = {
254
254
  </Button>
255
255
  <Button variant="chipActive">Chip Active Button</Button>
256
256
  </div>
257
- <div className="flex gap-4">
257
+ <div className="flex items-end gap-4">
258
258
  <Button variant="primary" noise="strong" size="sm">
259
259
  Small
260
260
  </Button>
@@ -11,9 +11,9 @@ export const buttonVariants = cva(
11
11
  variants: {
12
12
  variant: {
13
13
  primary:
14
- "before:absolute before:inset-0 before:rounded-full before:border-[length:var(--stroke-fm-xsm)] before:border-transparent before:[background-image:var(--button-fm-background),linear-gradient(to_top,color-mix(in_srgb,var(--color-fm-primary-600)_50%,_transparent))] text-fm-neutral-1100",
14
+ "before:absolute before:inset-0 before:rounded-full before:border-[length:var(--stroke-fm-xsm)] before:border-fm-button-border-primary before:[background-image:var(--button-fm-background),linear-gradient(to_top,color-mix(in_srgb,var(--color-fm-primary-600)_50%,_transparent))] text-fm-button-text",
15
15
  secondary:
16
- "before:absolute before:inset-0 rounded-full before:border-[length:var(--stroke-fm-xsm)] before:border-transparent bg-fm-surface-secondary text-fm-primary",
16
+ "before:absolute before:inset-0 before:rounded-full rounded-full before:border-[length:var(--stroke-fm-xsm)] before:border-fm-button-border-secondary bg-fm-surface-secondary text-fm-primary",
17
17
  outline: "text-fm-primary",
18
18
  text: "bg-transparent text-fm-secondary-800",
19
19
  chip: "text-fm-secondary font-fm-text",
@@ -44,9 +44,9 @@ export const innerButtonVariants = cva(
44
44
  variants: {
45
45
  variant: {
46
46
  primary:
47
- "shadow-[0_0_1.5rem_var(--color-fm-primary-400)_inset] group-active:translate-y-0 [--gradientSizeX:50%] [--gradientSizeY:150%] [--gradientPositionY:100%] group-hover:[--gradientSizeX:40%] group-hover:[--gradientSizeY:110%] group-hover:[--gradientPositionY:50%] bg-cover bg-center [background-blend-mode:color-dodge,multiply,darken] duration-300 bg-repeat-x bg-auto bg-center bg-origin-border",
47
+ "border-fm-button-border-primary shadow-[0_0_1.5rem_var(--color-fm-button-inner-glow)_inset] group-active:translate-y-0 [--gradientSizeX:50%] [--gradientSizeY:150%] [--gradientPositionY:100%] group-hover:[--gradientSizeX:40%] group-hover:[--gradientSizeY:110%] group-hover:[--gradientPositionY:50%] bg-cover bg-center [background-blend-mode:color-dodge,multiply,darken] duration-300 bg-repeat-x bg-auto bg-center bg-origin-border",
48
48
  secondary:
49
- "group-active:translate-y-0 bg-fm-button-fill-secondary bg-repeat-x bg-auto bg-center bg-origin-border",
49
+ "border-fm-button-border-secondary group-active:translate-y-0 bg-fm-button-fill-secondary bg-repeat-x bg-auto bg-center bg-origin-border",
50
50
  outline:
51
51
  "border-[length:var(--stroke-fm-sm)] border-fm-divider-contrast !translate-y-0",
52
52
  text: "",
@@ -84,19 +84,19 @@ export const innerButtonVariants = cva(
84
84
  variant: "primary",
85
85
  noise: "low",
86
86
  className:
87
- "[background-image:var(--button-fm-noise-low),_radial-gradient(ellipse_var(--gradientSizeX)_var(--gradientSizeY)_at_50%_var(--gradientPositionY),_var(--color-fm-primary-600),_var(--color-fm-secondary-300)),_linear-gradient(_to_top,_color-mix(in_srgb,var(--color-fm-primary-600)_50%,_transparent),_color-mix(in_srgb,var(--color-fm-primary-200)_50%,_transparent))]",
87
+ "[background-image:var(--button-fm-noise-low),_radial-gradient(ellipse_var(--gradientSizeX)_var(--gradientSizeY)_at_50%_var(--gradientPositionY),_var(--color-fm-primary-600),_var(--color-fm-button-fg-end)),_linear-gradient(_to_top,_color-mix(in_srgb,var(--color-fm-primary-600)_50%,_transparent),_color-mix(in_srgb,var(--color-fm-primary-200)_50%,_transparent))]",
88
88
  },
89
89
  {
90
90
  variant: "primary",
91
91
  noise: "medium",
92
92
  className:
93
- "[background-image:var(--button-fm-noise),_radial-gradient(ellipse_var(--gradientSizeX)_var(--gradientSizeY)_at_50%_var(--gradientPositionY),_var(--color-fm-primary-600),_var(--color-fm-secondary-300)),_linear-gradient(_to_top,_color-mix(in_srgb,var(--color-fm-primary-600)_50%,_transparent),_color-mix(in_srgb,var(--color-fm-primary-200)_50%,_transparent))]",
93
+ "[background-image:var(--button-fm-noise),_radial-gradient(ellipse_var(--gradientSizeX)_var(--gradientSizeY)_at_50%_var(--gradientPositionY),_var(--color-fm-primary-600),_var(--color-fm-button-fg-end)),_linear-gradient(_to_top,_color-mix(in_srgb,var(--color-fm-primary-600)_50%,_transparent),_color-mix(in_srgb,var(--color-fm-primary-200)_50%,_transparent))]",
94
94
  },
95
95
  {
96
96
  variant: "primary",
97
97
  noise: "strong",
98
98
  className:
99
- "[background-image:var(--button-fm-noise-strong),_radial-gradient(ellipse_var(--gradientSizeX)_var(--gradientSizeY)_at_50%_var(--gradientPositionY),_var(--color-fm-primary-600),_var(--color-fm-secondary-300)),_linear-gradient(_to_top,_color-mix(in_srgb,var(--color-fm-primary-600)_50%,_transparent),_color-mix(in_srgb,var(--color-fm-primary-200)_50%,_transparent))]",
99
+ "[background-image:var(--button-fm-noise-strong),_radial-gradient(ellipse_var(--gradientSizeX)_var(--gradientSizeY)_at_50%_var(--gradientPositionY),_var(--color-fm-primary-600),_var(--color-fm-button-fg-end)),_linear-gradient(_to_top,_color-mix(in_srgb,var(--color-fm-primary-600)_50%,_transparent),_color-mix(in_srgb,var(--color-fm-primary-200)_50%,_transparent))]",
100
100
  },
101
101
  {
102
102
  variant: "secondary",
@@ -326,15 +326,15 @@ export const ContentVariations: Story = {
326
326
  <CardContent>
327
327
  <ul className="space-y-2">
328
328
  <li className="flex items-center gap-2">
329
- <div className="h-2 w-2 rounded-full bg-green-500"></div>
329
+ <div className="bg-fm-surface-positive h-2 w-2 rounded-full"></div>
330
330
  <span>Task completed</span>
331
331
  </li>
332
332
  <li className="flex items-center gap-2">
333
- <div className="h-2 w-2 rounded-full bg-yellow-500"></div>
333
+ <div className="bg-fm-surface-warning h-2 w-2 rounded-full"></div>
334
334
  <span>In progress</span>
335
335
  </li>
336
336
  <li className="flex items-center gap-2">
337
- <div className="h-2 w-2 rounded-full bg-red-500"></div>
337
+ <div className="bg-fm-surface-negative h-2 w-2 rounded-full"></div>
338
338
  <span>Blocked</span>
339
339
  </li>
340
340
  </ul>