aural-ui 3.0.7 → 4.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (166) hide show
  1. package/dist/components/aspect-ratio/AspectRatio.stories.tsx +271 -242
  2. package/dist/components/avatar/Avatar.stories.tsx +84 -70
  3. package/dist/components/button/Button.stories.tsx +7 -7
  4. package/dist/components/button/index.tsx +7 -7
  5. package/dist/components/card/Card.stories.tsx +3 -3
  6. package/dist/components/char-count/CharCount.stories.tsx +9 -9
  7. package/dist/components/circular-loader/CircularLoader.stories.tsx +109 -93
  8. package/dist/components/collapsible/Collapsible.stories.tsx +1 -1
  9. package/dist/components/command/Command.stories.tsx +52 -38
  10. package/dist/components/dialog/Dialog.stories.tsx +89 -84
  11. package/dist/components/divider/Divider.stories.tsx +86 -60
  12. package/dist/components/dot-loader/DotLoader.stories.tsx +12 -12
  13. package/dist/components/drawer/Drawer.stories.tsx +74 -44
  14. package/dist/components/drawer/index.tsx +3 -3
  15. package/dist/components/dropdown/Dropdown.stories.tsx +42 -32
  16. package/dist/components/helper-text/HelperText.stories.tsx +2 -2
  17. package/dist/components/hover-card/HoverCard.stories.tsx +211 -178
  18. package/dist/components/input/Input.stories.tsx +2 -2
  19. package/dist/components/label/Label.stories.tsx +10 -10
  20. package/dist/components/list/List.stories.tsx +58 -44
  21. package/dist/components/marquee/Marquee.stories.tsx +131 -113
  22. package/dist/components/otp-inputs/OtpInputs.stories.tsx +47 -35
  23. package/dist/components/overlay/Overlay.stories.tsx +98 -92
  24. package/dist/components/overlay/index.tsx +4 -4
  25. package/dist/components/popover/Popover.stories.tsx +132 -106
  26. package/dist/components/radio/Radio.stories.tsx +2 -2
  27. package/dist/components/resizable/Resizable.stories.tsx +186 -138
  28. package/dist/components/scroll-area/ScrollArea.stories.tsx +174 -120
  29. package/dist/components/search/Search.stories.tsx +81 -59
  30. package/dist/components/select/Select.stories.tsx +3 -1
  31. package/dist/components/sheet/Sheet.stories.tsx +68 -54
  32. package/dist/components/slider/Slider.stories.tsx +71 -47
  33. package/dist/components/stepper/Stepper.stories.tsx +16 -16
  34. package/dist/components/switch/Switch.stories.tsx +12 -12
  35. package/dist/components/table/Table.stories.tsx +8 -6
  36. package/dist/components/tabs/Tabs.stories.tsx +324 -268
  37. package/dist/components/textarea/TextArea.stories.tsx +1 -1
  38. package/dist/components/thumbnail-tags/ThumbnailTags.stories.tsx +16 -10
  39. package/dist/components/toast/Toast.stories.tsx +51 -45
  40. package/dist/components/toggle/Toggle.stories.tsx +111 -89
  41. package/dist/components/tooltip/Tooltip.stories.tsx +160 -144
  42. package/dist/icons/Icons.stories.tsx +2 -2
  43. package/dist/icons/ai-avatar-icon/AiAvatarIcon.stories.tsx +287 -237
  44. package/dist/icons/alert-icon/AlertIcon.stories.tsx +290 -248
  45. package/dist/icons/all-icons.tsx +97 -81
  46. package/dist/icons/angle-down-icon/AngleDownIcon.stories.tsx +312 -270
  47. package/dist/icons/apple-logo-icon/AppleLogoIcon.stories.tsx +294 -244
  48. package/dist/icons/arrow-box-left-icon/ArrowBoxLeftIcon.stories.tsx +309 -279
  49. package/dist/icons/arrow-corner-up-left-icon/ArrowCornerUpLeftIcon.stories.tsx +294 -258
  50. package/dist/icons/arrow-corner-up-right-icon/ArrowCornerUpRightIcon.stories.tsx +289 -255
  51. package/dist/icons/arrow-left-icon/ArrowLeftIcon.stories.tsx +288 -256
  52. package/dist/icons/arrow-right-icon/ArrowRightIcon.stories.tsx +322 -288
  53. package/dist/icons/arrow-right-up-icon/ArrowRightUpIcon.stories.tsx +340 -296
  54. package/dist/icons/art-board-icon/ArtBoardIcon.stories.tsx +197 -177
  55. package/dist/icons/audio-bar-icon/AudioBarIcon.stories.tsx +390 -328
  56. package/dist/icons/backward-ten-seconds-icon/BackwardTenSecondsIcon.stories.tsx +313 -277
  57. package/dist/icons/bubble-check-icon/BubbleCheckIcon.stories.tsx +367 -309
  58. package/dist/icons/bubble-crossed-icon/BubbleCrossedIcon.stories.tsx +356 -308
  59. package/dist/icons/bubble-sparkle-icon/BubbleSparkleIcon.stories.tsx +280 -234
  60. package/dist/icons/camera-icon/CameraIcon.stories.tsx +370 -326
  61. package/dist/icons/capital-a-letter-icon/CapitalALetterIcon.stories.tsx +300 -256
  62. package/dist/icons/chevron-double-left-icon/ChevronDoubleLeftIcon.stories.tsx +298 -262
  63. package/dist/icons/chevron-double-right-icon/ChevronDoubleRightIcon.stories.tsx +294 -260
  64. package/dist/icons/chevron-down-icon/ChevronDownIcon.stories.tsx +291 -259
  65. package/dist/icons/chevron-left-icon/ChevronLeftIcon.stories.tsx +286 -256
  66. package/dist/icons/chevron-right-icon/ChevronRightIcon.stories.tsx +282 -256
  67. package/dist/icons/chevron-up-icon/ChevronUpIcon.stories.tsx +292 -256
  68. package/dist/icons/circle-tick-icon/CircleTickIcon.stories.tsx +338 -290
  69. package/dist/icons/circular-play-icon/CircularPlayIcon.stories.tsx +167 -148
  70. package/dist/icons/coin-icon/CoinIcon.stories.tsx +342 -296
  71. package/dist/icons/coin-toons-icon/CoinToonsIcon.stories.tsx +342 -296
  72. package/dist/icons/column-wide-add-icon/ColumnWideAddIcon.stories.tsx +280 -238
  73. package/dist/icons/command-icon/CommandIcon.stories.tsx +328 -280
  74. package/dist/icons/copy-icon/CopyIcon.stories.tsx +294 -256
  75. package/dist/icons/cross-circle-icon/CrossCircleIcon.stories.tsx +285 -235
  76. package/dist/icons/cross-icon/CrossIcon.stories.tsx +308 -266
  77. package/dist/icons/download-icon/DownloadIcon.stories.tsx +271 -231
  78. package/dist/icons/edit-big-icon/EditBigIcon.stories.tsx +330 -278
  79. package/dist/icons/email-icon/EmailIcon.stories.tsx +303 -257
  80. package/dist/icons/expand-icon/ExpandIcon.stories.tsx +324 -286
  81. package/dist/icons/eye-close-icon/EyeCloseIcon.stories.tsx +317 -271
  82. package/dist/icons/eye-open-icon/EyeOpenIcon.stories.tsx +320 -272
  83. package/dist/icons/feature-shine-icon/FeatureShineIcon.stories.tsx +322 -280
  84. package/dist/icons/file-chart-icon/FileChartIcon.stories.tsx +315 -277
  85. package/dist/icons/file-text-icon/FileTextIcon.stories.tsx +199 -177
  86. package/dist/icons/filter-bar-row-icon/FilterBarRowIcon.stories.tsx +304 -264
  87. package/dist/icons/forward-ten-seconds-icon/ForwardTenSecondsIcon.stories.tsx +311 -277
  88. package/dist/icons/git-branch-icon/GitBranchIcon.stories.tsx +327 -287
  89. package/dist/icons/git-fork-icon/GitForkIcon.stories.tsx +314 -278
  90. package/dist/icons/globe-icon/GlobeIcon.stories.tsx +113 -98
  91. package/dist/icons/google-logo-icon/GoogleLogoIcon.stories.tsx +274 -226
  92. package/dist/icons/grip-vertical-icon/GripVerticalIcon.stories.tsx +349 -303
  93. package/dist/icons/head-icon/HeadIcon.stories.tsx +286 -246
  94. package/dist/icons/heart-icon/HeartIcon.stories.tsx +312 -268
  95. package/dist/icons/image-avatar-sparkle-icon/ImageAvatarSparkleIcon.stories.tsx +246 -210
  96. package/dist/icons/image-icon/ImageIcon.stories.tsx +330 -284
  97. package/dist/icons/import-folder-icon/ImportFolderIcon.stories.tsx +326 -282
  98. package/dist/icons/import-left-arrow-folder-icon/ImportLeftArrowFolderIcon.stories.tsx +330 -294
  99. package/dist/icons/indian-flag-icon/IndianFlagIcon.stories.tsx +288 -234
  100. package/dist/icons/instagram-icon/InstagramIcon.stories.tsx +386 -330
  101. package/dist/icons/layout-column-icon/LayoutColumnIcon.stories.tsx +305 -263
  102. package/dist/icons/layout-left-icon/LayoutLeftIcon.stories.tsx +295 -259
  103. package/dist/icons/layout-right-icon/LayoutRightIcon.stories.tsx +296 -256
  104. package/dist/icons/light-bulb-simple-icon/LightBulbSimpleIcon.stories.tsx +322 -282
  105. package/dist/icons/linked-in-icon/LinkedInIcon.stories.tsx +399 -359
  106. package/dist/icons/magic-book-icon/MagicBookIcon.stories.tsx +314 -272
  107. package/dist/icons/magic-edit-icon/MagicEditIcon.stories.tsx +238 -206
  108. package/dist/icons/maintenance-icon/MaintenanceIcon.stories.tsx +322 -276
  109. package/dist/icons/message-icon/MessageIcon.stories.tsx +192 -170
  110. package/dist/icons/minimize-icon/MinimizeIcon.stories.tsx +348 -304
  111. package/dist/icons/moon-icon/MoonIcon.stories.tsx +191 -167
  112. package/dist/icons/move-horizontal-icon/MoveHorizontalIcon.stories.tsx +380 -326
  113. package/dist/icons/move-vertical-icon/MoveVerticalIcon.stories.tsx +345 -291
  114. package/dist/icons/musical-note-icon/MusicalNoteIcon.stories.tsx +310 -266
  115. package/dist/icons/notepad-icon/NotepadIcon.stories.tsx +311 -271
  116. package/dist/icons/notes-icon/NotesIcon.stories.tsx +311 -271
  117. package/dist/icons/page-search-icon/PageSearchIcon.stories.tsx +309 -271
  118. package/dist/icons/page-text-icon/PageTextIcon.stories.tsx +248 -210
  119. package/dist/icons/paint-roll-icon/PaintRollIcon.stories.tsx +310 -262
  120. package/dist/icons/paper-plane-icon/PaperPlaneIcon.stories.tsx +274 -236
  121. package/dist/icons/pause-icon/PauseIcon.stories.tsx +324 -280
  122. package/dist/icons/pencil-icon/PencilIcon.stories.tsx +323 -281
  123. package/dist/icons/phone-icon/PhoneIcon.stories.tsx +288 -240
  124. package/dist/icons/plus-icon/PlusIcon.stories.tsx +315 -273
  125. package/dist/icons/pocket-studio-icon/PocketStudioIcon.stories.tsx +278 -234
  126. package/dist/icons/scroll-down-icon/ScrollDownIcon.stories.tsx +161 -151
  127. package/dist/icons/search-icon/SearchIcon.stories.tsx +324 -284
  128. package/dist/icons/setting-icon/SettingIcon.stories.tsx +306 -264
  129. package/dist/icons/share-icon/ShareIcon.stories.tsx +314 -272
  130. package/dist/icons/shield-icon/ShieldIcon.stories.tsx +281 -235
  131. package/dist/icons/site-logo-icon/SiteLogoIcon.stories.tsx +309 -250
  132. package/dist/icons/skip-backward-icon/SkipBackwardIcon.stories.tsx +317 -279
  133. package/dist/icons/skip-forward-icon/SkipForwardIcon.stories.tsx +315 -279
  134. package/dist/icons/sparkles-soft-icon/SparklesSoftIcon.stories.tsx +299 -253
  135. package/dist/icons/spinner-gradient-icon/SpinnerGradientIcon.stories.tsx +185 -169
  136. package/dist/icons/spinner-gradient-icon/index.tsx +6 -1
  137. package/dist/icons/spinner-solid-icon/SpinnerSolidIcon.stories.tsx +192 -168
  138. package/dist/icons/spinner-solid-icon/index.tsx +6 -1
  139. package/dist/icons/spinner-solid-neutral-icon/SpinnerSolidINeutralcon.stories.tsx +212 -178
  140. package/dist/icons/spinner-solid-neutral-icon/index.tsx +1 -1
  141. package/dist/icons/star-icon/StarIcon.stories.tsx +290 -244
  142. package/dist/icons/store-coin-icon/StoreCoinIcon.stories.tsx +286 -234
  143. package/dist/icons/suggestion-icon/SuggestionIcon.stories.tsx +272 -230
  144. package/dist/icons/sun-icon/SunIcon.stories.tsx +262 -226
  145. package/dist/icons/text-color-icon/TextColorIcon.stories.tsx +321 -279
  146. package/dist/icons/text-indicator-icon/TextIndicatorIcon.stories.tsx +332 -282
  147. package/dist/icons/threads-icon/ThreadsIcon.stories.tsx +394 -342
  148. package/dist/icons/tick-circle-icon/TickCircleIcon.stories.tsx +338 -290
  149. package/dist/icons/tick-icon/TickIcon.stories.tsx +364 -315
  150. package/dist/icons/trash-icon/TrashIcon.stories.tsx +293 -253
  151. package/dist/icons/twitter-x-icon/TwitterXIcon.stories.tsx +396 -338
  152. package/dist/icons/upload-icon/UploadIcon.stories.tsx +291 -247
  153. package/dist/icons/vertical-menu-icon/VerticalMenuIcon.stories.tsx +309 -271
  154. package/dist/icons/video-play-list-icon/VideoPlaylistIcon.stories.tsx +336 -290
  155. package/dist/icons/voice-playing-icon/VoicePlayingIcon.stories.tsx +382 -334
  156. package/dist/icons/volume-full-icon/VolumeFullIcon.stories.tsx +349 -305
  157. package/dist/icons/volume-half-icon/VolumeHalfIcon.stories.tsx +327 -295
  158. package/dist/icons/volume-off-icon/VolumeOffIcon.stories.tsx +336 -296
  159. package/dist/icons/warning-icon/WarningIcon.stories.tsx +314 -274
  160. package/dist/icons/youtube-icon/YoutubeIcon.stories.tsx +311 -261
  161. package/dist/index.cjs +84 -84
  162. package/dist/index.js +84 -84
  163. package/dist/styles/aural-all-theme.css +1222 -0
  164. package/dist/styles/{aural-theme.css → aural-dark-theme.css} +15 -3
  165. package/dist/styles/aural-light-theme.css +1047 -0
  166. package/package.json +1 -1
@@ -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>