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
@@ -11,9 +11,9 @@ const meta: Meta<typeof UploadIcon> = {
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 UploadIcon> = {
40
40
  background: transparent !important;
41
41
  }
42
42
  body {
43
- background: #0a0a0a !important;
43
+ background: var(--color-fm-surface-primary) !important;
44
44
  }
45
45
  #storybook-docs {
46
- background: #0a0a0a !important;
46
+ background: var(--color-fm-surface-primary) !important;
47
47
  }
48
48
  .sbdocs-preview {
49
49
  background: transparent !important;
50
50
  border: none !important;
51
51
  }
52
52
  .sbdocs-h1, .sbdocs-h2, .sbdocs-h3, .sbdocs-h4, .sbdocs-h5, .sbdocs-h6 {
53
- color: white !important;
53
+ color: var(--color-fm-icon-active) !important;
54
54
  }
55
55
  .sbdocs-p, .sbdocs-li {
56
- color: rgba(255, 255, 255, 0.7) !important;
56
+ color: var(--color-fm-secondary) !important;
57
57
  }
58
58
  .sbdocs-code {
59
- background: rgba(255, 255, 255, 0.1) !important;
60
- color: rgba(168, 85, 247, 1) !important;
61
- border: 1px solid rgba(255, 255, 255, 0.1) !important;
59
+ background: var(--color-fm-surface-secondary) !important;
60
+ color: var(--color-fm-secondary-500) !important;
61
+ border: 1px solid var(--color-fm-divider-secondary) !important;
62
62
  }
63
63
  .sbdocs-pre {
64
- background: rgba(0, 0, 0, 0.4) !important;
65
- border: 1px solid rgba(255, 255, 255, 0.1) !important;
64
+ background: var(--color-fm-surface-secondary) !important;
65
+ border: 1px solid var(--color-fm-divider-secondary) !important;
66
66
  }
67
67
  .sbdocs-table {
68
- background: rgba(255, 255, 255, 0.05) !important;
69
- border: 1px solid rgba(255, 255, 255, 0.1) !important;
68
+ background: var(--color-fm-surface-secondary) !important;
69
+ border: 1px solid var(--color-fm-divider-secondary) !important;
70
70
  }
71
71
  .sbdocs-table th {
72
- background: rgba(255, 255, 255, 0.05) !important;
73
- color: white !important;
74
- border-bottom: 1px solid rgba(255, 255, 255, 0.1) !important;
72
+ background: var(--color-fm-surface-secondary) !important;
73
+ color: var(--color-fm-icon-active) !important;
74
+ border-bottom: 1px solid var(--color-fm-divider-secondary) !important;
75
75
  }
76
76
  .sbdocs-table td {
77
- color: rgba(255, 255, 255, 0.7) !important;
78
- border-bottom: 1px solid rgba(255, 255, 255, 0.05) !important;
77
+ color: var(--color-fm-secondary) !important;
78
+ border-bottom: 1px solid var(--color-fm-divider-tertiary) !important;
79
79
  }
80
80
  `}
81
81
  </style>
82
82
 
83
- <div className="min-h-screen bg-gradient-to-br from-gray-900 via-blue-900/20 to-gray-900">
83
+ <div className="from-fm-surface-primary via-fm-icon-info/5 to-fm-surface-primary min-h-screen bg-linear-to-br">
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-blue-500/10 via-transparent to-green-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-icon-info/10 to-fm-icon-positive/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-blue-500/30 bg-gradient-to-br from-blue-500/20 to-green-500/20">
90
- <UploadIcon className="h-12 w-12 text-blue-400" />
89
+ <div className="border-fm-icon-info/30 from-fm-icon-info/20 to-fm-icon-positive/20 !mx-auto flex h-24 w-24 items-center justify-center rounded-2xl border bg-linear-to-br">
90
+ <UploadIcon className="text-fm-icon-info h-12 w-12" />
91
91
  </div>
92
92
  <h1 className="!text-fm-primary text-5xl font-bold">
93
93
  UploadIcon
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 versatile upload icon for file uploads, cloud sync, and
97
97
  data transfer operations. Built with accessibility in mind
98
98
  using Radix UI's AccessibleIcon wrapper.
@@ -101,28 +101,28 @@ const meta: Meta<typeof UploadIcon> = {
101
101
  {/* Stats */}
102
102
  <div className="flex items-center justify-center gap-8 pt-8">
103
103
  <div className="text-center">
104
- <div className="text-3xl font-bold text-blue-300">
104
+ <div className="text-fm-icon-info text-3xl font-bold">
105
105
  Accessible
106
106
  </div>
107
- <div className="text-sm text-white/60">
107
+ <div className="text-fm-tertiary text-sm">
108
108
  Screen reader friendly
109
109
  </div>
110
110
  </div>
111
- <div className="h-8 w-px bg-white/20" />
111
+ <div className="bg-fm-divider-primary h-8 w-px" />
112
112
  <div className="text-center">
113
- <div className="text-3xl font-bold text-green-300">
113
+ <div className="text-fm-icon-positive text-3xl font-bold">
114
114
  Scalable
115
115
  </div>
116
- <div className="text-sm text-white/60">
116
+ <div className="text-fm-tertiary text-sm">
117
117
  Any size needed
118
118
  </div>
119
119
  </div>
120
- <div className="h-8 w-px bg-white/20" />
120
+ <div className="bg-fm-divider-primary h-8 w-px" />
121
121
  <div className="text-center">
122
- <div className="text-3xl font-bold text-purple-300">
122
+ <div className="text-fm-secondary-600 text-3xl font-bold">
123
123
  Flexible
124
124
  </div>
125
- <div className="text-sm text-white/60">
125
+ <div className="text-fm-tertiary text-sm">
126
126
  Customizable styling
127
127
  </div>
128
128
  </div>
@@ -135,16 +135,16 @@ const meta: Meta<typeof UploadIcon> = {
135
135
  <div className="!mx-auto max-w-7xl !space-y-16 px-6 py-12">
136
136
  {/* Quick Usage */}
137
137
  <div className="!space-y-8">
138
- <h2 className="text-center text-3xl font-bold !text-white">
138
+ <h2 className="text-fm-icon-active! text-center text-3xl font-bold">
139
139
  Quick Start
140
140
  </h2>
141
141
  <div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
142
142
  <div className="!space-y-4">
143
- <h3 className="text-xl font-semibold !text-blue-300">
143
+ <h3 className="text-fm-icon-info! text-xl font-semibold">
144
144
  Basic Usage
145
145
  </h3>
146
- <div className="rounded-lg bg-black/40 p-4">
147
- <pre className="overflow-x-auto text-sm !text-green-300">
146
+ <div className="bg-fm-surface-secondary rounded-lg p-4">
147
+ <pre className="text-fm-icon-positive! overflow-x-auto text-sm">
148
148
  {`import { UploadIcon } from "@icons/upload-icon"
149
149
 
150
150
  function MyComponent() {
@@ -160,13 +160,15 @@ function MyComponent() {
160
160
  </div>
161
161
 
162
162
  <div className="!space-y-4">
163
- <h3 className="text-xl font-semibold !text-blue-300">
163
+ <h3 className="text-fm-icon-info! text-xl font-semibold">
164
164
  Live Preview
165
165
  </h3>
166
- <div className="flex h-32 items-center justify-center rounded-lg border border-white/10 bg-white/5">
167
- <div className="flex items-center gap-3 rounded-lg border border-blue-500/20 bg-blue-500/10 px-4 py-2">
168
- <UploadIcon className="h-5 w-5 text-blue-400" />
169
- <span className="text-white">Upload files</span>
166
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary flex h-32 items-center justify-center rounded-lg border">
167
+ <div className="border-fm-icon-info/20 bg-fm-icon-info/10 flex items-center gap-3 rounded-lg border px-4 py-2">
168
+ <UploadIcon className="text-fm-icon-info h-5 w-5" />
169
+ <span className="text-fm-icon-active">
170
+ Upload files
171
+ </span>
170
172
  </div>
171
173
  </div>
172
174
  </div>
@@ -175,94 +177,102 @@ function MyComponent() {
175
177
 
176
178
  {/* Props Documentation */}
177
179
  <div className="!space-y-8">
178
- <h2 className="text-center text-3xl font-bold !text-white">
180
+ <h2 className="text-fm-icon-active! text-center text-3xl font-bold">
179
181
  Props & Configuration
180
182
  </h2>
181
183
 
182
- <div className="overflow-hidden rounded-lg border border-white/10 bg-white/5">
183
- <div className="bg-white/5 p-4">
184
- <h3 className="text-xl font-semibold !text-white">Props</h3>
184
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary overflow-hidden rounded-lg border">
185
+ <div className="bg-fm-surface-secondary p-4">
186
+ <h3 className="text-fm-icon-active! text-xl font-semibold">
187
+ Props
188
+ </h3>
185
189
  </div>
186
190
  <table className="!my-0 w-full">
187
- <thead className="bg-white/5">
188
- <tr className="border-b border-white/10">
189
- <th className="px-6 py-4 text-left text-sm font-semibold !text-white">
191
+ <thead className="bg-fm-surface-secondary">
192
+ <tr className="border-fm-divider-secondary border-b">
193
+ <th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
190
194
  Prop
191
195
  </th>
192
- <th className="px-6 py-4 text-left text-sm font-semibold !text-white">
196
+ <th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
193
197
  Type
194
198
  </th>
195
- <th className="px-6 py-4 text-left text-sm font-semibold !text-white">
199
+ <th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
196
200
  Default
197
201
  </th>
198
- <th className="px-6 py-4 text-left text-sm font-semibold !text-white">
202
+ <th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
199
203
  Description
200
204
  </th>
201
205
  </tr>
202
206
  </thead>
203
207
  <tbody>
204
208
  {" "}
205
- <tr className="!bg-black/10">
206
- <td className="px-6 py-4 font-mono text-sm !text-blue-300">
209
+ <tr className="bg-fm-surface-secondary!">
210
+ <td className="text-fm-icon-info! px-6 py-4 font-mono text-sm">
207
211
  withAccessibility
208
212
  </td>
209
- <td className="px-6 py-4 text-sm !text-white/70">
213
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
210
214
  boolean
211
215
  </td>
212
- <td className="px-6 py-4 text-sm !text-white/50">
216
+ <td className="text-fm-placeholder! px-6 py-4 text-sm">
213
217
  true
214
218
  </td>
215
- <td className="px-6 py-4 text-sm !text-white/70">
219
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
216
220
  Whether to wrap the icon with accessibility feature
217
221
  </td>
218
222
  </tr>
219
- <tr className="border-b border-white/5 !bg-black/10">
220
- <td className="px-6 py-4 font-mono text-sm !text-blue-300">
223
+ <tr className="border-fm-divider-tertiary bg-fm-surface-secondary! border-b">
224
+ <td className="text-fm-icon-info! px-6 py-4 font-mono text-sm">
221
225
  height
222
226
  </td>
223
- <td className="px-6 py-4 text-sm !text-white/70">
227
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
224
228
  number | string
225
229
  </td>
226
- <td className="px-6 py-4 text-sm !text-white/50">24</td>
227
- <td className="px-6 py-4 text-sm !text-white/70">
230
+ <td className="text-fm-placeholder! px-6 py-4 text-sm">
231
+ 24
232
+ </td>
233
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
228
234
  Height of the icon in pixels
229
235
  </td>
230
236
  </tr>
231
- <tr className="border-b border-white/5">
232
- <td className="px-6 py-4 font-mono text-sm !text-blue-300">
237
+ <tr className="border-fm-divider-tertiary border-b">
238
+ <td className="text-fm-icon-info! px-6 py-4 font-mono text-sm">
233
239
  stroke
234
240
  </td>
235
- <td className="px-6 py-4 text-sm !text-white/70">
241
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
236
242
  string
237
243
  </td>
238
- <td className="px-6 py-4 text-sm !text-white/50">
244
+ <td className="text-fm-placeholder! px-6 py-4 text-sm">
239
245
  currentColor
240
246
  </td>
241
- <td className="px-6 py-4 text-sm !text-white/70">
247
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
242
248
  Stroke color of the icon
243
249
  </td>
244
250
  </tr>
245
- <tr className="border-b border-white/5 !bg-black/10">
246
- <td className="px-6 py-4 font-mono text-sm !text-blue-300">
251
+ <tr className="border-fm-divider-tertiary bg-fm-surface-secondary! border-b">
252
+ <td className="text-fm-icon-info! px-6 py-4 font-mono text-sm">
247
253
  className
248
254
  </td>
249
- <td className="px-6 py-4 text-sm !text-white/70">
255
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
250
256
  string
251
257
  </td>
252
- <td className="px-6 py-4 text-sm !text-white/50">-</td>
253
- <td className="px-6 py-4 text-sm !text-white/70">
258
+ <td className="text-fm-placeholder! px-6 py-4 text-sm">
259
+ -
260
+ </td>
261
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
254
262
  CSS classes for styling
255
263
  </td>
256
264
  </tr>
257
- <tr className="!bg-black/10">
258
- <td className="px-6 py-4 font-mono text-sm !text-blue-300">
265
+ <tr className="bg-fm-surface-secondary!">
266
+ <td className="text-fm-icon-info! px-6 py-4 font-mono text-sm">
259
267
  ...svgProps
260
268
  </td>
261
- <td className="px-6 py-4 text-sm !text-white/70">
269
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
262
270
  SVGProps
263
271
  </td>
264
- <td className="px-6 py-4 text-sm !text-white/50">-</td>
265
- <td className="px-6 py-4 text-sm !text-white/70">
272
+ <td className="text-fm-placeholder! px-6 py-4 text-sm">
273
+ -
274
+ </td>
275
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
266
276
  All standard SVG element props
267
277
  </td>
268
278
  </tr>
@@ -273,50 +283,62 @@ function MyComponent() {
273
283
 
274
284
  {/* Size Variations */}
275
285
  <div className="!space-y-8">
276
- <h2 className="text-center text-3xl font-bold !text-white">
286
+ <h2 className="text-fm-icon-active! text-center text-3xl font-bold">
277
287
  Size Variations
278
288
  </h2>
279
- <div className="rounded-lg border border-white/10 bg-white/5 p-8">
289
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-8">
280
290
  <div className="!space-y-6">
281
291
  <div className="grid grid-cols-1 gap-8 md:grid-cols-2">
282
292
  <div className="!space-y-4">
283
- <h3 className="text-lg font-semibold !text-blue-300">
293
+ <h3 className="text-fm-icon-info! text-lg font-semibold">
284
294
  Standard Sizes
285
295
  </h3>
286
- <div className="flex items-end gap-6 rounded-lg bg-black/20 p-6">
296
+ <div className="bg-fm-surface-secondary flex items-end gap-6 rounded-lg p-6">
287
297
  <div className="text-center">
288
- <UploadIcon className="!mx-auto mb-2 h-3 w-3 text-blue-400" />
289
- <span className="text-xs text-white/60">12px</span>
298
+ <UploadIcon className="text-fm-icon-info !mx-auto mb-2 h-3 w-3" />
299
+ <span className="text-fm-tertiary text-xs">
300
+ 12px
301
+ </span>
290
302
  </div>
291
303
  <div className="text-center">
292
- <UploadIcon className="!mx-auto mb-2 h-4 w-4 text-blue-400" />
293
- <span className="text-xs text-white/60">16px</span>
304
+ <UploadIcon className="text-fm-icon-info !mx-auto mb-2 h-4 w-4" />
305
+ <span className="text-fm-tertiary text-xs">
306
+ 16px
307
+ </span>
294
308
  </div>
295
309
  <div className="text-center">
296
- <UploadIcon className="!mx-auto mb-2 h-5 w-5 text-blue-400" />
297
- <span className="text-xs text-white/60">20px</span>
310
+ <UploadIcon className="text-fm-icon-info !mx-auto mb-2 h-5 w-5" />
311
+ <span className="text-fm-tertiary text-xs">
312
+ 20px
313
+ </span>
298
314
  </div>
299
315
  <div className="text-center">
300
- <UploadIcon className="!mx-auto mb-2 h-6 w-6 text-blue-400" />
301
- <span className="text-xs text-white/60">24px</span>
316
+ <UploadIcon className="text-fm-icon-info !mx-auto mb-2 h-6 w-6" />
317
+ <span className="text-fm-tertiary text-xs">
318
+ 24px
319
+ </span>
302
320
  </div>
303
321
  <div className="text-center">
304
- <UploadIcon className="!mx-auto mb-2 h-8 w-8 text-blue-400" />
305
- <span className="text-xs text-white/60">32px</span>
322
+ <UploadIcon className="text-fm-icon-info !mx-auto mb-2 h-8 w-8" />
323
+ <span className="text-fm-tertiary text-xs">
324
+ 32px
325
+ </span>
306
326
  </div>
307
327
  <div className="text-center">
308
- <UploadIcon className="!mx-auto mb-2 h-12 w-12 text-blue-400" />
309
- <span className="text-xs text-white/60">48px</span>
328
+ <UploadIcon className="text-fm-icon-info !mx-auto mb-2 h-12 w-12" />
329
+ <span className="text-fm-tertiary text-xs">
330
+ 48px
331
+ </span>
310
332
  </div>
311
333
  </div>
312
334
  </div>
313
335
 
314
336
  <div className="!space-y-4">
315
- <h3 className="text-lg font-semibold !text-blue-300">
337
+ <h3 className="text-fm-icon-info! text-lg font-semibold">
316
338
  Code Example
317
339
  </h3>
318
- <div className="rounded-lg bg-black/40 p-4">
319
- <pre className="overflow-x-auto text-sm !text-blue-300">
340
+ <div className="bg-fm-surface-secondary rounded-lg p-4">
341
+ <pre className="text-fm-icon-info! overflow-x-auto text-sm">
320
342
  {`// Small (16px)
321
343
  <UploadIcon className="h-4 w-4" />
322
344
 
@@ -338,56 +360,56 @@ function MyComponent() {
338
360
 
339
361
  {/* Color Variations */}
340
362
  <div className="!space-y-8">
341
- <h2 className="text-center text-3xl font-bold !text-white">
363
+ <h2 className="text-fm-icon-active! text-center text-3xl font-bold">
342
364
  Color Variations
343
365
  </h2>
344
366
  <div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
345
367
  <div className="!space-y-4">
346
- <h3 className="text-lg font-semibold !text-blue-300">
368
+ <h3 className="text-fm-icon-info! text-lg font-semibold">
347
369
  Semantic Colors
348
370
  </h3>
349
- <div className="!space-y-4 rounded-lg border border-white/10 bg-white/5 p-6">
371
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
350
372
  <div className="flex items-center gap-4">
351
- <UploadIcon className="h-6 w-6 text-blue-400" />
373
+ <UploadIcon className="text-fm-icon-info h-6 w-6" />
352
374
  <div>
353
- <div className="text-sm font-medium text-white">
375
+ <div className="text-fm-icon-active text-sm font-medium">
354
376
  Primary
355
377
  </div>
356
- <div className="text-xs text-white/60">
357
- text-blue-400
378
+ <div className="text-fm-tertiary text-xs">
379
+ text-fm-icon-info
358
380
  </div>
359
381
  </div>
360
382
  </div>
361
383
  <div className="flex items-center gap-4">
362
- <UploadIcon className="h-6 w-6 text-green-400" />
384
+ <UploadIcon className="text-fm-icon-positive h-6 w-6" />
363
385
  <div>
364
- <div className="text-sm font-medium text-white">
386
+ <div className="text-fm-icon-active text-sm font-medium">
365
387
  Success
366
388
  </div>
367
- <div className="text-xs text-white/60">
368
- text-green-400
389
+ <div className="text-fm-tertiary text-xs">
390
+ text-fm-icon-positive
369
391
  </div>
370
392
  </div>
371
393
  </div>
372
394
  <div className="flex items-center gap-4">
373
- <UploadIcon className="h-6 w-6 text-purple-400" />
395
+ <UploadIcon className="text-fm-secondary-600 h-6 w-6" />
374
396
  <div>
375
- <div className="text-sm font-medium text-white">
397
+ <div className="text-fm-icon-active text-sm font-medium">
376
398
  Secondary
377
399
  </div>
378
- <div className="text-xs text-white/60">
379
- text-purple-400
400
+ <div className="text-fm-tertiary text-xs">
401
+ text-fm-secondary-600
380
402
  </div>
381
403
  </div>
382
404
  </div>
383
405
  <div className="flex items-center gap-4">
384
- <UploadIcon className="h-6 w-6 text-gray-400" />
406
+ <UploadIcon className="text-fm-placeholder h-6 w-6" />
385
407
  <div>
386
- <div className="text-sm font-medium text-white">
408
+ <div className="text-fm-icon-active text-sm font-medium">
387
409
  Neutral
388
410
  </div>
389
- <div className="text-xs text-white/60">
390
- text-gray-400
411
+ <div className="text-fm-tertiary text-xs">
412
+ text-fm-placeholder
391
413
  </div>
392
414
  </div>
393
415
  </div>
@@ -395,11 +417,11 @@ function MyComponent() {
395
417
  </div>
396
418
 
397
419
  <div className="!space-y-4">
398
- <h3 className="text-lg font-semibold !text-blue-300">
420
+ <h3 className="text-fm-icon-info! text-lg font-semibold">
399
421
  Custom Colors
400
422
  </h3>
401
- <div className="rounded-lg bg-black/40 p-4">
402
- <pre className="overflow-x-auto text-sm !text-green-300">
423
+ <div className="bg-fm-surface-secondary rounded-lg p-4">
424
+ <pre className="text-fm-icon-positive! overflow-x-auto text-sm">
403
425
  {`// Using Tailwind classes
404
426
  <UploadIcon className="h-6 w-6 text-blue-400" />
405
427
  <UploadIcon className="h-6 w-6 text-green-500" />
@@ -424,28 +446,28 @@ function MyComponent() {
424
446
 
425
447
  {/* Usage Examples */}
426
448
  <div className="!space-y-8">
427
- <h2 className="text-center text-3xl font-bold !text-white">
449
+ <h2 className="text-fm-icon-active! text-center text-3xl font-bold">
428
450
  Usage Examples
429
451
  </h2>
430
452
 
431
453
  <div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
432
454
  {/* File Upload */}
433
455
  <div className="!space-y-4">
434
- <h3 className="text-lg font-semibold !text-blue-300">
456
+ <h3 className="text-fm-icon-info! text-lg font-semibold">
435
457
  File Upload Area
436
458
  </h3>
437
459
  <div className="!space-y-4">
438
- <div className="rounded-lg border-2 border-dashed border-blue-500/30 bg-blue-500/5 p-8 text-center">
439
- <UploadIcon className="!mx-auto mb-4 h-12 w-12 text-blue-400" />
440
- <h4 className="mb-2 font-medium !text-blue-200">
460
+ <div className="border-fm-icon-info/30 bg-fm-icon-info/5 rounded-lg border-2 border-dashed p-8 text-center">
461
+ <UploadIcon className="text-fm-icon-info !mx-auto mb-4 h-12 w-12" />
462
+ <h4 className="text-fm-icon-info! mb-2 font-medium">
441
463
  Drop files here
442
464
  </h4>
443
- <p className="text-sm !text-blue-300/80">
465
+ <p className="text-fm-icon-info!/80 text-sm">
444
466
  or click to browse
445
467
  </p>
446
468
  </div>
447
- <div className="rounded-lg bg-black/40 p-4">
448
- <pre className="overflow-x-auto text-sm !text-green-300">
469
+ <div className="bg-fm-surface-secondary rounded-lg p-4">
470
+ <pre className="text-fm-icon-positive! overflow-x-auto text-sm">
449
471
  {`<div className="border-2 border-dashed border-blue-500/30 bg-blue-500/5 p-8 rounded-lg text-center">
450
472
  <UploadIcon className="mx-auto mb-4 h-12 w-12 text-blue-400" />
451
473
  <h4 className="font-medium text-blue-200 mb-2">Drop files here</h4>
@@ -458,22 +480,22 @@ function MyComponent() {
458
480
 
459
481
  {/* Upload Button */}
460
482
  <div className="!space-y-4">
461
- <h3 className="text-lg font-semibold !text-blue-300">
483
+ <h3 className="text-fm-icon-info! text-lg font-semibold">
462
484
  Upload Button
463
485
  </h3>
464
486
  <div className="!space-y-4">
465
487
  <div className="flex gap-4">
466
- <button className="flex items-center gap-2 rounded-lg border border-blue-500/30 bg-blue-500/20 px-4 py-2 text-blue-200 transition-colors hover:bg-blue-500/30">
488
+ <button className="border-fm-icon-info/30 bg-fm-icon-info/20 text-fm-icon-info hover:bg-fm-icon-info/30 flex items-center gap-2 rounded-lg border px-4 py-2 transition-colors">
467
489
  <UploadIcon className="h-4 w-4" />
468
490
  Upload Files
469
491
  </button>
470
- <button className="flex items-center gap-2 rounded-lg border border-green-500/30 bg-green-500/20 px-4 py-2 text-green-200 transition-colors hover:bg-green-500/30">
492
+ <button className="border-fm-icon-positive/30 bg-fm-icon-positive/20 text-fm-icon-positive hover:bg-fm-icon-positive/30 flex items-center gap-2 rounded-lg border px-4 py-2 transition-colors">
471
493
  <UploadIcon className="h-4 w-4" />
472
494
  Save to Cloud
473
495
  </button>
474
496
  </div>
475
- <div className="rounded-lg bg-black/40 p-4">
476
- <pre className="overflow-x-auto text-sm !text-green-300">
497
+ <div className="bg-fm-surface-secondary rounded-lg p-4">
498
+ <pre className="text-fm-icon-positive! overflow-x-auto text-sm">
477
499
  {`// Primary upload button
478
500
  <button className="flex items-center gap-2 bg-blue-500/20 border border-blue-500/30 px-4 py-2 rounded-lg">
479
501
  <UploadIcon className="h-4 w-4" />
@@ -492,29 +514,29 @@ function MyComponent() {
492
514
 
493
515
  {/* Progress Upload */}
494
516
  <div className="!space-y-4">
495
- <h3 className="text-lg font-semibold !text-blue-300">
517
+ <h3 className="text-fm-icon-info! text-lg font-semibold">
496
518
  Upload Progress
497
519
  </h3>
498
520
  <div className="!space-y-4">
499
- <div className="rounded-lg border border-white/10 bg-white/5 p-4">
521
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-4">
500
522
  <div className="mb-3 flex items-center gap-3">
501
- <UploadIcon className="h-5 w-5 text-blue-400" />
502
- <span className="text-sm text-white">
523
+ <UploadIcon className="text-fm-icon-info h-5 w-5" />
524
+ <span className="text-fm-icon-active text-sm">
503
525
  document.pdf
504
526
  </span>
505
- <span className="ml-auto text-xs text-blue-400">
527
+ <span className="text-fm-icon-info ml-auto text-xs">
506
528
  67%
507
529
  </span>
508
530
  </div>
509
- <div className="h-2 w-full rounded-full bg-gray-700">
531
+ <div className="bg-fm-surface-secondary h-2 w-full rounded-full">
510
532
  <div
511
- className="h-2 rounded-full bg-blue-500"
533
+ className="bg-fm-icon-info h-2 rounded-full"
512
534
  style={{ width: "67%" }}
513
535
  ></div>
514
536
  </div>
515
537
  </div>
516
- <div className="rounded-lg bg-black/40 p-4">
517
- <pre className="overflow-x-auto text-sm !text-green-300">
538
+ <div className="bg-fm-surface-secondary rounded-lg p-4">
539
+ <pre className="text-fm-icon-positive! overflow-x-auto text-sm">
518
540
  {`<div className="border border-white/10 bg-white/5 p-4 rounded-lg">
519
541
  <div className="flex items-center gap-3 mb-3">
520
542
  <UploadIcon className="h-5 w-5 text-blue-400" />
@@ -532,28 +554,28 @@ function MyComponent() {
532
554
 
533
555
  {/* Menu Item */}
534
556
  <div className="!space-y-4">
535
- <h3 className="text-lg font-semibold !text-blue-300">
557
+ <h3 className="text-fm-icon-info! text-lg font-semibold">
536
558
  Menu Integration
537
559
  </h3>
538
560
  <div className="!space-y-4">
539
- <div className="rounded-lg border border-white/10 bg-white/5 p-2">
540
- <div className="flex items-center gap-3 rounded px-3 py-2 text-sm text-white hover:bg-white/10">
541
- <UploadIcon className="h-4 w-4 text-blue-400" />
561
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-2">
562
+ <div className="text-fm-icon-active hover:bg-fm-surface-secondary flex items-center gap-3 rounded px-3 py-2 text-sm">
563
+ <UploadIcon className="text-fm-icon-info h-4 w-4" />
542
564
  <span>Upload Document</span>
543
- <span className="ml-auto text-xs text-white/60">
565
+ <span className="text-fm-tertiary ml-auto text-xs">
544
566
  ⌘U
545
567
  </span>
546
568
  </div>
547
- <div className="flex items-center gap-3 rounded px-3 py-2 text-sm text-white hover:bg-white/10">
548
- <UploadIcon className="h-4 w-4 text-green-400" />
569
+ <div className="text-fm-icon-active hover:bg-fm-surface-secondary flex items-center gap-3 rounded px-3 py-2 text-sm">
570
+ <UploadIcon className="text-fm-icon-positive h-4 w-4" />
549
571
  <span>Import Data</span>
550
- <span className="ml-auto text-xs text-white/60">
572
+ <span className="text-fm-tertiary ml-auto text-xs">
551
573
  ⌘I
552
574
  </span>
553
575
  </div>
554
576
  </div>
555
- <div className="rounded-lg bg-black/40 p-4">
556
- <pre className="overflow-x-auto text-sm !text-green-300">
577
+ <div className="bg-fm-surface-secondary rounded-lg p-4">
578
+ <pre className="text-fm-icon-positive! overflow-x-auto text-sm">
557
579
  {`// Menu items with upload actions
558
580
  <div className="flex items-center gap-3 px-3 py-2 hover:bg-white/10 rounded">
559
581
  <UploadIcon className="h-4 w-4 text-blue-400" />
@@ -569,64 +591,64 @@ function MyComponent() {
569
591
 
570
592
  {/* Accessibility */}
571
593
  <div className="!space-y-8">
572
- <h2 className="text-center text-3xl font-bold !text-white">
594
+ <h2 className="text-fm-icon-active! text-center text-3xl font-bold">
573
595
  Accessibility Features
574
596
  </h2>
575
597
  <div className="grid grid-cols-1 gap-8 md:grid-cols-2">
576
- <div className="!space-y-4 rounded-lg border border-white/10 bg-white/5 p-6">
577
- <h3 className="text-lg font-semibold !text-green-300">
598
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
599
+ <h3 className="text-fm-icon-positive! text-lg font-semibold">
578
600
  ✅ Built-in Features
579
601
  </h3>
580
- <ul className="!space-y-2 text-sm !text-white/70">
581
- <li className="!text-white/70">
602
+ <ul className="text-fm-secondary! !space-y-2 text-sm">
603
+ <li className="text-fm-secondary!">
582
604
  Uses Radix UI AccessibleIcon wrapper
583
605
  </li>
584
- <li className="!text-white/70">
606
+ <li className="text-fm-secondary!">
585
607
  Provides screen reader label "Upload icon"
586
608
  </li>
587
- <li className="!text-white/70">
609
+ <li className="text-fm-secondary!">
588
610
  Supports keyboard navigation when interactive
589
611
  </li>
590
- <li className="!text-white/70">
612
+ <li className="text-fm-secondary!">
591
613
  Maintains proper color contrast ratios
592
614
  </li>
593
- <li className="!text-white/70">
615
+ <li className="text-fm-secondary!">
594
616
  Scales with user's font size preferences
595
617
  </li>
596
618
  </ul>
597
619
  </div>
598
620
 
599
- <div className="!space-y-4 rounded-lg border border-white/10 bg-white/5 p-6">
600
- <h3 className="text-lg font-semibold !text-blue-300">
621
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
622
+ <h3 className="text-fm-icon-info! text-lg font-semibold">
601
623
  💡 Best Practices
602
624
  </h3>
603
- <ul className="!space-y-2 text-sm text-white/70">
604
- <li className="!text-white/70">
625
+ <ul className="text-fm-secondary !space-y-2 text-sm">
626
+ <li className="text-fm-secondary!">
605
627
  Always pair with descriptive text
606
628
  </li>
607
- <li className="!text-white/70">
629
+ <li className="text-fm-secondary!">
608
630
  Use consistent colors for upload actions
609
631
  </li>
610
- <li className="!text-white/70">
632
+ <li className="text-fm-secondary!">
611
633
  Ensure sufficient color contrast
612
634
  </li>
613
- <li className="!text-white/70">
635
+ <li className="text-fm-secondary!">
614
636
  Add focus states for interactive elements
615
637
  </li>
616
- <li className="!text-white/70">
638
+ <li className="text-fm-secondary!">
617
639
  Provide feedback for upload states
618
640
  </li>
619
641
  </ul>
620
642
  </div>
621
643
  </div>
622
644
 
623
- <div className="rounded-lg border border-white/10 bg-white/5 p-6">
624
- <h3 className="mb-4 text-lg font-semibold !text-purple-300">
645
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
646
+ <h3 className="text-fm-secondary-600! mb-4 text-lg font-semibold">
625
647
  Custom Accessibility Label
626
648
  </h3>
627
649
  <div className="grid grid-cols-1 gap-6 lg:grid-cols-2">
628
- <div className="rounded-lg bg-black/40 p-4">
629
- <pre className="overflow-x-auto text-sm !text-blue-300">
650
+ <div className="bg-fm-surface-secondary rounded-lg p-4">
651
+ <pre className="text-fm-icon-info! overflow-x-auto text-sm">
630
652
  {`// Custom implementation with specific label
631
653
  import { AccessibleIcon } from "@radix-ui/react-accessible-icon"
632
654
 
@@ -646,13 +668,13 @@ function CustomUploadIcon({ label = "Upload", ...props }) {
646
668
  </pre>
647
669
  </div>
648
670
  <div className="!space-y-4">
649
- <p className="text-sm !text-white/70">
671
+ <p className="text-fm-secondary! text-sm">
650
672
  For specific contexts, you can wrap the UploadIcon with
651
673
  a custom AccessibleIcon component that provides more
652
674
  descriptive labels.
653
675
  </p>
654
- <div className="rounded-lg border border-blue-500/20 bg-blue-500/10 p-4">
655
- <div className="flex items-center gap-2 text-sm text-blue-200">
676
+ <div className="border-fm-icon-info/20 bg-fm-icon-info/10 rounded-lg border p-4">
677
+ <div className="text-fm-icon-info flex items-center gap-2 text-sm">
656
678
  <UploadIcon className="h-4 w-4" />
657
679
  <span>
658
680
  This approach gives screen readers more context
@@ -666,48 +688,58 @@ function CustomUploadIcon({ label = "Upload", ...props }) {
666
688
 
667
689
  {/* Related Icons */}
668
690
  <div className="!space-y-8">
669
- <h2 className="text-center text-3xl font-bold !text-white">
691
+ <h2 className="text-fm-icon-active! text-center text-3xl font-bold">
670
692
  Related Icons
671
693
  </h2>
672
694
  <div className="grid grid-cols-2 gap-6 md:grid-cols-4">
673
- <div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
674
- <div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-green-500/20">
695
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
696
+ <div className="bg-fm-icon-positive/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
675
697
  <span className="text-2xl">⬇️</span>
676
698
  </div>
677
699
  <div>
678
- <div className="font-medium text-white">DownloadIcon</div>
679
- <div className="text-xs text-white/60">
700
+ <div className="text-fm-icon-active font-medium">
701
+ DownloadIcon
702
+ </div>
703
+ <div className="text-fm-tertiary text-xs">
680
704
  Download actions
681
705
  </div>
682
706
  </div>
683
707
  </div>
684
- <div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
685
- <div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-purple-500/20">
708
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
709
+ <div className="bg-fm-secondary-500/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
686
710
  <span className="text-2xl">📁</span>
687
711
  </div>
688
712
  <div>
689
- <div className="font-medium text-white">FolderIcon</div>
690
- <div className="text-xs text-white/60">
713
+ <div className="text-fm-icon-active font-medium">
714
+ FolderIcon
715
+ </div>
716
+ <div className="text-fm-tertiary text-xs">
691
717
  File organization
692
718
  </div>
693
719
  </div>
694
720
  </div>
695
- <div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
696
- <div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-orange-500/20">
721
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
722
+ <div className="bg-fm-icon-warning/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
697
723
  <span className="text-2xl">📄</span>
698
724
  </div>
699
725
  <div>
700
- <div className="font-medium text-white">FileIcon</div>
701
- <div className="text-xs text-white/60">File types</div>
726
+ <div className="text-fm-icon-active font-medium">
727
+ FileIcon
728
+ </div>
729
+ <div className="text-fm-tertiary text-xs">File types</div>
702
730
  </div>
703
731
  </div>
704
- <div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
705
- <div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-blue-500/20">
732
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
733
+ <div className="bg-fm-icon-info/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
706
734
  <span className="text-2xl">☁️</span>
707
735
  </div>
708
736
  <div>
709
- <div className="font-medium text-white">CloudIcon</div>
710
- <div className="text-xs text-white/60">Cloud storage</div>
737
+ <div className="text-fm-icon-active font-medium">
738
+ CloudIcon
739
+ </div>
740
+ <div className="text-fm-tertiary text-xs">
741
+ Cloud storage
742
+ </div>
711
743
  </div>
712
744
  </div>
713
745
  </div>
@@ -715,14 +747,14 @@ function CustomUploadIcon({ label = "Upload", ...props }) {
715
747
  </div>
716
748
 
717
749
  {/* Footer */}
718
- <div className="border-t border-white/10 bg-black/20 backdrop-blur-xl">
750
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary border-t backdrop-blur-xl">
719
751
  <div className="!mx-auto max-w-7xl px-6 py-8">
720
752
  <div className="!space-y-4 text-center">
721
- <p className="!text-white/60">
753
+ <p className="text-fm-tertiary!">
722
754
  UploadIcon is part of the Aural UI icon library, built with
723
755
  accessibility and consistency in mind.
724
756
  </p>
725
- <p className="text-sm !text-white/40">
757
+ <p className="text-fm-placeholder! text-sm">
726
758
  All icons use Radix UI's AccessibleIcon for screen reader
727
759
  compatibility and follow WCAG guidelines.
728
760
  </p>
@@ -767,8 +799,8 @@ const storyParameters = {
767
799
  backgrounds: {
768
800
  default: "dark",
769
801
  values: [
770
- { name: "dark", value: "#0a0a0a" },
771
- { name: "darker", value: "#000000" },
802
+ { name: "dark", value: "var(--color-fm-surface-primary)" },
803
+ { name: "darker", value: "var(--color-fm-neutral-0)" },
772
804
  ],
773
805
  },
774
806
  }
@@ -777,12 +809,12 @@ export const Default: Story = {
777
809
  args: {
778
810
  width: 24,
779
811
  height: 24,
780
- className: "text-blue-400",
812
+ className: "text-fm-icon-info",
781
813
  withAccessibility: true,
782
814
  },
783
815
  parameters: storyParameters,
784
816
  render: (args) => (
785
- <div className="flex h-32 min-h-dvh items-center justify-center rounded-lg bg-gradient-to-br from-gray-900 to-gray-800">
817
+ <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">
786
818
  <UploadIcon {...args} />
787
819
  </div>
788
820
  ),
@@ -799,30 +831,30 @@ export const SizeVariations: Story = {
799
831
  },
800
832
  },
801
833
  render: () => (
802
- <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">
834
+ <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">
803
835
  <div className="text-center">
804
- <UploadIcon className="!mx-auto mb-2 h-3 w-3 text-blue-400" />
805
- <span className="text-xs text-white/60">12px</span>
836
+ <UploadIcon className="text-fm-icon-info !mx-auto mb-2 h-3 w-3" />
837
+ <span className="text-fm-tertiary text-xs">12px</span>
806
838
  </div>
807
839
  <div className="text-center">
808
- <UploadIcon className="!mx-auto mb-2 h-4 w-4 text-blue-400" />
809
- <span className="text-xs text-white/60">16px</span>
840
+ <UploadIcon className="text-fm-icon-info !mx-auto mb-2 h-4 w-4" />
841
+ <span className="text-fm-tertiary text-xs">16px</span>
810
842
  </div>
811
843
  <div className="text-center">
812
- <UploadIcon className="!mx-auto mb-2 h-5 w-5 text-blue-400" />
813
- <span className="text-xs text-white/60">20px</span>
844
+ <UploadIcon className="text-fm-icon-info !mx-auto mb-2 h-5 w-5" />
845
+ <span className="text-fm-tertiary text-xs">20px</span>
814
846
  </div>
815
847
  <div className="text-center">
816
- <UploadIcon className="!mx-auto mb-2 h-6 w-6 text-blue-400" />
817
- <span className="text-xs text-white/60">24px</span>
848
+ <UploadIcon className="text-fm-icon-info !mx-auto mb-2 h-6 w-6" />
849
+ <span className="text-fm-tertiary text-xs">24px</span>
818
850
  </div>
819
851
  <div className="text-center">
820
- <UploadIcon className="!mx-auto mb-2 h-8 w-8 text-blue-400" />
821
- <span className="text-xs text-white/60">32px</span>
852
+ <UploadIcon className="text-fm-icon-info !mx-auto mb-2 h-8 w-8" />
853
+ <span className="text-fm-tertiary text-xs">32px</span>
822
854
  </div>
823
855
  <div className="text-center">
824
- <UploadIcon className="!mx-auto mb-2 h-12 w-12 text-blue-400" />
825
- <span className="text-xs text-white/60">48px</span>
856
+ <UploadIcon className="text-fm-icon-info !mx-auto mb-2 h-12 w-12" />
857
+ <span className="text-fm-tertiary text-xs">48px</span>
826
858
  </div>
827
859
  </div>
828
860
  ),
@@ -839,34 +871,38 @@ export const ColorVariations: Story = {
839
871
  },
840
872
  },
841
873
  render: () => (
842
- <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">
874
+ <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">
843
875
  <div className="text-center">
844
- <div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border border-blue-500/30 bg-blue-500/20">
845
- <UploadIcon className="h-8 w-8 text-blue-400" />
876
+ <div className="border-fm-icon-info/30 bg-fm-icon-info/20 !mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border">
877
+ <UploadIcon className="text-fm-icon-info h-8 w-8" />
846
878
  </div>
847
- <div className="text-sm font-medium text-white">Primary</div>
848
- <div className="text-xs text-blue-400">text-blue-400</div>
879
+ <div className="text-fm-icon-active text-sm font-medium">Primary</div>
880
+ <div className="text-fm-icon-info text-xs">text-fm-icon-info</div>
849
881
  </div>
850
882
  <div className="text-center">
851
- <div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border border-green-500/30 bg-green-500/20">
852
- <UploadIcon className="h-8 w-8 text-green-400" />
883
+ <div className="border-fm-icon-positive/30 bg-fm-icon-positive/20 !mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border">
884
+ <UploadIcon className="text-fm-icon-positive h-8 w-8" />
885
+ </div>
886
+ <div className="text-fm-icon-active text-sm font-medium">Success</div>
887
+ <div className="text-fm-icon-positive text-xs">
888
+ text-fm-icon-positive
853
889
  </div>
854
- <div className="text-sm font-medium text-white">Success</div>
855
- <div className="text-xs text-green-400">text-green-400</div>
856
890
  </div>
857
891
  <div className="text-center">
858
- <div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border border-purple-500/30 bg-purple-500/20">
859
- <UploadIcon className="h-8 w-8 text-purple-400" />
892
+ <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">
893
+ <UploadIcon className="text-fm-secondary-600 h-8 w-8" />
894
+ </div>
895
+ <div className="text-fm-icon-active text-sm font-medium">Secondary</div>
896
+ <div className="text-fm-secondary-600 text-xs">
897
+ text-fm-secondary-600
860
898
  </div>
861
- <div className="text-sm font-medium text-white">Secondary</div>
862
- <div className="text-xs text-purple-400">text-purple-400</div>
863
899
  </div>
864
900
  <div className="text-center">
865
- <div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border border-gray-500/30 bg-gray-500/20">
866
- <UploadIcon className="h-8 w-8 text-gray-400" />
901
+ <div className="border-fm-divider-primary bg-fm-surface-tertiary/20 !mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border">
902
+ <UploadIcon className="text-fm-placeholder h-8 w-8" />
867
903
  </div>
868
- <div className="text-sm font-medium text-white">Neutral</div>
869
- <div className="text-xs text-gray-400">text-gray-400</div>
904
+ <div className="text-fm-icon-active text-sm font-medium">Neutral</div>
905
+ <div className="text-fm-placeholder text-xs">text-fm-placeholder</div>
870
906
  </div>
871
907
  </div>
872
908
  ),
@@ -883,26 +919,32 @@ export const UsageExamples: Story = {
883
919
  },
884
920
  },
885
921
  render: () => (
886
- <div className="min-h-dvh !space-y-8 rounded-lg bg-gradient-to-br from-gray-900 to-gray-800 p-8">
922
+ <div className="from-fm-surface-primary to-fm-surface-secondary min-h-dvh !space-y-8 rounded-lg bg-linear-to-br p-8">
887
923
  {/* File Upload Area */}
888
924
  <div className="!space-y-2">
889
- <h3 className="text-sm font-medium text-white">File Upload Area</h3>
890
- <div className="rounded-lg border-2 border-dashed border-blue-500/30 bg-blue-500/5 p-8 text-center">
891
- <UploadIcon className="!mx-auto mb-4 h-12 w-12 text-blue-400" />
892
- <h4 className="mb-2 font-medium text-blue-200">Drop files here</h4>
893
- <p className="text-sm text-blue-300/80">or click to browse</p>
925
+ <h3 className="text-fm-icon-active text-sm font-medium">
926
+ File Upload Area
927
+ </h3>
928
+ <div className="border-fm-icon-info/30 bg-fm-icon-info/5 rounded-lg border-2 border-dashed p-8 text-center">
929
+ <UploadIcon className="text-fm-icon-info !mx-auto mb-4 h-12 w-12" />
930
+ <h4 className="text-fm-icon-info mb-2 font-medium">
931
+ Drop files here
932
+ </h4>
933
+ <p className="text-fm-icon-info/80 text-sm">or click to browse</p>
894
934
  </div>
895
935
  </div>
896
936
 
897
937
  {/* Upload Buttons */}
898
938
  <div className="!space-y-2">
899
- <h3 className="text-sm font-medium text-white">Upload Buttons</h3>
939
+ <h3 className="text-fm-icon-active text-sm font-medium">
940
+ Upload Buttons
941
+ </h3>
900
942
  <div className="flex gap-4">
901
- <button className="flex items-center gap-2 rounded-lg border border-blue-500/30 bg-blue-500/20 px-4 py-2 text-blue-200 transition-colors hover:bg-blue-500/30">
943
+ <button className="border-fm-icon-info/30 bg-fm-icon-info/20 text-fm-icon-info hover:bg-fm-icon-info/30 flex items-center gap-2 rounded-lg border px-4 py-2 transition-colors">
902
944
  <UploadIcon className="h-4 w-4" />
903
945
  Upload Files
904
946
  </button>
905
- <button className="flex items-center gap-2 rounded-lg border border-green-500/30 bg-green-500/20 px-4 py-2 text-green-200 transition-colors hover:bg-green-500/30">
947
+ <button className="border-fm-icon-positive/30 bg-fm-icon-positive/20 text-fm-icon-positive hover:bg-fm-icon-positive/30 flex items-center gap-2 rounded-lg border px-4 py-2 transition-colors">
906
948
  <UploadIcon className="h-4 w-4" />
907
949
  Save to Cloud
908
950
  </button>
@@ -911,16 +953,18 @@ export const UsageExamples: Story = {
911
953
 
912
954
  {/* Upload Progress */}
913
955
  <div className="!space-y-2">
914
- <h3 className="text-sm font-medium text-white">Upload Progress</h3>
915
- <div className="rounded-lg border border-white/10 bg-white/5 p-4">
956
+ <h3 className="text-fm-icon-active text-sm font-medium">
957
+ Upload Progress
958
+ </h3>
959
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-4">
916
960
  <div className="mb-3 flex items-center gap-3">
917
- <UploadIcon className="h-5 w-5 text-blue-400" />
918
- <span className="text-sm text-white">document.pdf</span>
919
- <span className="ml-auto text-xs text-blue-400">67%</span>
961
+ <UploadIcon className="text-fm-icon-info h-5 w-5" />
962
+ <span className="text-fm-icon-active text-sm">document.pdf</span>
963
+ <span className="text-fm-icon-info ml-auto text-xs">67%</span>
920
964
  </div>
921
- <div className="h-2 w-full rounded-full bg-gray-700">
965
+ <div className="bg-fm-surface-secondary h-2 w-full rounded-full">
922
966
  <div
923
- className="h-2 rounded-full bg-blue-500"
967
+ className="bg-fm-icon-info h-2 rounded-full"
924
968
  style={{ width: "67%" }}
925
969
  ></div>
926
970
  </div>
@@ -943,11 +987,11 @@ export const Playground: Story = {
943
987
  args: {
944
988
  width: 32,
945
989
  height: 32,
946
- className: "text-blue-400",
990
+ className: "text-fm-icon-info",
947
991
  },
948
992
  render: (args) => (
949
- <div className="flex h-64 min-h-dvh items-center justify-center rounded-lg bg-gradient-to-br from-gray-900 to-gray-800">
950
- <div className="rounded-lg border border-white/10 bg-white/5 p-8">
993
+ <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">
994
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-8">
951
995
  <UploadIcon {...args} />
952
996
  </div>
953
997
  </div>