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 ImageIcon> = {
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,42 +40,42 @@ const meta: Meta<typeof ImageIcon> = {
40
40
  background: transparent ;
41
41
  }
42
42
  body {
43
- background: #0a0a0a ;
43
+ background: var(--color-fm-surface-primary) ;
44
44
  }
45
45
  #storybook-docs {
46
- background: #0a0a0a ;
46
+ background: var(--color-fm-surface-primary) ;
47
47
  }
48
48
  .sbdocs-preview {
49
49
  background: transparent ;
50
50
  border: none ;
51
51
  }
52
52
  .sbdocs-h1, .sbdocs-h2, .sbdocs-h3, .sbdocs-h4, .sbdocs-h5, .sbdocs-h6 {
53
- color: white ;
53
+ color: var(--color-fm-icon-active) ;
54
54
  }
55
55
  .sbdocs-p, .sbdocs-li {
56
- color: rgba(255, 255, 255, 0.7) ;
56
+ color: var(--color-fm-secondary) ;
57
57
  }
58
58
  .sbdocs-code {
59
- background: rgba(255, 255, 255, 0.1) ;
60
- color: rgba(168, 85, 247, 1) ;
61
- border: 1px solid rgba(255, 255, 255, 0.1) ;
59
+ background: var(--color-fm-surface-secondary) ;
60
+ color: var(--color-fm-secondary-500) ;
61
+ border: 1px solid var(--color-fm-divider-secondary) ;
62
62
  }
63
63
  .sbdocs-pre {
64
- background: rgba(0, 0, 0, 0.4) ;
65
- border: 1px solid rgba(255, 255, 255, 0.1) ;
64
+ background: var(--color-fm-surface-secondary) ;
65
+ border: 1px solid var(--color-fm-divider-secondary) ;
66
66
  }
67
67
  .sbdocs-table {
68
- background: rgba(255, 255, 255, 0.05) ;
69
- border: 1px solid rgba(255, 255, 255, 0.1) ;
68
+ background: var(--color-fm-surface-secondary) ;
69
+ border: 1px solid var(--color-fm-divider-secondary) ;
70
70
  }
71
71
  .sbdocs-table th {
72
- background: rgba(255, 255, 255, 0.05) ;
73
- color: white ;
74
- border-bottom: 1px solid rgba(255, 255, 255, 0.1) ;
72
+ background: var(--color-fm-surface-secondary) ;
73
+ color: var(--color-fm-icon-active) ;
74
+ border-bottom: 1px solid var(--color-fm-divider-secondary) ;
75
75
  }
76
76
  .sbdocs-table td {
77
- color: rgba(255, 255, 255, 0.7) ;
78
- border-bottom: 1px solid rgba(255, 255, 255, 0.05) ;
77
+ color: var(--color-fm-secondary) ;
78
+ border-bottom: 1px solid var(--color-fm-divider-tertiary) ;
79
79
  }
80
80
  @keyframes shimmer {
81
81
  0% { transform: translateX(-100%); }
@@ -87,19 +87,19 @@ const meta: Meta<typeof ImageIcon> = {
87
87
  `}
88
88
  </style>
89
89
 
90
- <div className="min-h-screen bg-gradient-to-br from-gray-900 via-purple-900/20 to-gray-900">
90
+ <div className="bg-fm-surface-primary min-h-screen">
91
91
  {/* Header */}
92
- <div className="relative overflow-hidden border-b border-white/10 bg-black/20 backdrop-blur-xl">
93
- <div className="absolute inset-0 bg-gradient-to-r from-blue-500/10 via-transparent to-green-500/10" />
92
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary relative overflow-hidden border-b backdrop-blur-xl">
93
+ <div className="from-fm-icon-info/10 to-fm-icon-positive/10 absolute inset-0 bg-linear-to-r via-transparent" />
94
94
  <div className="relative !mx-auto max-w-7xl px-6 py-16">
95
95
  <div className="!space-y-6 text-center">
96
- <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">
97
- <ImageIcon className="h-12 w-12 text-blue-400" />
96
+ <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">
97
+ <ImageIcon className="text-fm-icon-info h-12 w-12" />
98
98
  </div>
99
99
  <h1 className="!text-fm-primary text-5xl font-bold">
100
100
  ImageIcon
101
101
  </h1>
102
- <p className="!mx-auto max-w-3xl text-xl leading-relaxed !text-white/70">
102
+ <p className="text-fm-secondary! !mx-auto max-w-3xl text-xl leading-relaxed">
103
103
  A versatile image icon for media representations,
104
104
  placeholders, and visual content indicators. Features a
105
105
  clean design with a mountain landscape silhouette and a sun
@@ -110,28 +110,28 @@ const meta: Meta<typeof ImageIcon> = {
110
110
  {/* Stats */}
111
111
  <div className="flex items-center justify-center gap-8 pt-8">
112
112
  <div className="text-center">
113
- <div className="text-3xl font-bold text-blue-300">
113
+ <div className="text-fm-icon-info text-3xl font-bold">
114
114
  Visual
115
115
  </div>
116
- <div className="text-sm text-white/60">
116
+ <div className="text-fm-tertiary text-sm">
117
117
  Media representation
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-green-300">
122
+ <div className="text-fm-icon-positive 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
  Gallery & uploads
127
127
  </div>
128
128
  </div>
129
- <div className="h-8 w-px bg-white/20" />
129
+ <div className="bg-fm-divider-primary h-8 w-px" />
130
130
  <div className="text-center">
131
- <div className="text-3xl font-bold text-cyan-300">
131
+ <div className="text-fm-icon-info text-3xl font-bold">
132
132
  Intuitive
133
133
  </div>
134
- <div className="text-sm text-white/60">
134
+ <div className="text-fm-tertiary text-sm">
135
135
  Universal recognition
136
136
  </div>
137
137
  </div>
@@ -144,16 +144,16 @@ const meta: Meta<typeof ImageIcon> = {
144
144
  <div className="!mx-auto max-w-7xl !space-y-16 px-6 py-12">
145
145
  {/* Quick Usage */}
146
146
  <div className="!space-y-8">
147
- <h2 className="text-center text-3xl font-bold !text-white">
147
+ <h2 className="text-fm-icon-active! text-center text-3xl font-bold">
148
148
  Quick Start
149
149
  </h2>
150
150
  <div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
151
151
  <div className="!space-y-4">
152
- <h3 className="text-xl font-semibold !text-blue-300">
152
+ <h3 className="text-fm-icon-info! text-xl font-semibold">
153
153
  Basic Usage
154
154
  </h3>
155
- <div className="rounded-lg bg-black/40 p-4">
156
- <pre className="overflow-x-auto text-sm !text-green-300">
155
+ <div className="bg-fm-surface-secondary rounded-lg p-4">
156
+ <pre className="text-fm-icon-positive! overflow-x-auto text-sm">
157
157
  {`import { ImageIcon } from "@icons/image-icon"
158
158
 
159
159
  function MediaUpload() {
@@ -169,13 +169,15 @@ function MediaUpload() {
169
169
  </div>
170
170
 
171
171
  <div className="!space-y-4">
172
- <h3 className="text-xl font-semibold !text-blue-300">
172
+ <h3 className="text-fm-icon-info! text-xl font-semibold">
173
173
  Live Preview
174
174
  </h3>
175
- <div className="flex h-32 items-center justify-center rounded-lg border border-white/10 bg-white/5">
176
- <div className="flex items-center gap-3 rounded-lg border border-blue-500/20 bg-blue-500/10 px-4 py-3">
177
- <ImageIcon className="h-6 w-6 text-blue-400" />
178
- <span className="text-white">Upload Images</span>
175
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary flex h-32 items-center justify-center rounded-lg border">
176
+ <div className="border-fm-icon-info/20 bg-fm-icon-info/10 flex items-center gap-3 rounded-lg border px-4 py-3">
177
+ <ImageIcon className="text-fm-icon-info h-6 w-6" />
178
+ <span className="text-fm-icon-active">
179
+ Upload Images
180
+ </span>
179
181
  </div>
180
182
  </div>
181
183
  </div>
@@ -184,122 +186,130 @@ function MediaUpload() {
184
186
 
185
187
  {/* Props Documentation */}
186
188
  <div className="!space-y-8">
187
- <h2 className="text-center text-3xl font-bold !text-white">
189
+ <h2 className="text-fm-icon-active! text-center text-3xl font-bold">
188
190
  Props & Configuration
189
191
  </h2>
190
192
 
191
- <div className="overflow-hidden rounded-lg border border-white/10 bg-white/5">
192
- <div className="bg-white/5 p-4">
193
- <h3 className="text-xl font-semibold !text-white">Props</h3>
193
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary overflow-hidden rounded-lg border">
194
+ <div className="bg-fm-surface-secondary p-4">
195
+ <h3 className="text-fm-icon-active! text-xl font-semibold">
196
+ Props
197
+ </h3>
194
198
  </div>
195
199
  <table className="!my-0 w-full">
196
- <thead className="bg-white/5">
197
- <tr className="border-b border-white/10">
198
- <th className="px-6 py-4 text-left text-sm font-semibold !text-white">
200
+ <thead className="bg-fm-surface-secondary">
201
+ <tr className="border-fm-divider-secondary border-b">
202
+ <th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
199
203
  Prop
200
204
  </th>
201
- <th className="px-6 py-4 text-left text-sm font-semibold !text-white">
205
+ <th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
202
206
  Type
203
207
  </th>
204
- <th className="px-6 py-4 text-left text-sm font-semibold !text-white">
208
+ <th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
205
209
  Default
206
210
  </th>
207
- <th className="px-6 py-4 text-left text-sm font-semibold !text-white">
211
+ <th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
208
212
  Description
209
213
  </th>
210
214
  </tr>
211
215
  </thead>
212
216
  <tbody>
213
217
  {" "}
214
- <tr className="!bg-black/10">
215
- <td className="px-6 py-4 font-mono text-sm !text-blue-300">
218
+ <tr className="bg-fm-surface-secondary!">
219
+ <td className="text-fm-icon-info! px-6 py-4 font-mono text-sm">
216
220
  withAccessibility
217
221
  </td>
218
- <td className="px-6 py-4 text-sm !text-white/70">
222
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
219
223
  boolean
220
224
  </td>
221
- <td className="px-6 py-4 text-sm !text-white/50">
225
+ <td className="text-fm-placeholder! px-6 py-4 text-sm">
222
226
  true
223
227
  </td>
224
- <td className="px-6 py-4 text-sm !text-white/70">
228
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
225
229
  Whether to wrap the icon with accessibility feature
226
230
  </td>
227
231
  </tr>
228
- <tr className="border-b border-white/5 !bg-black/10">
229
- <td className="px-6 py-4 font-mono text-sm !text-blue-300">
232
+ <tr className="border-fm-divider-tertiary bg-fm-surface-secondary! border-b">
233
+ <td className="text-fm-icon-info! px-6 py-4 font-mono text-sm">
230
234
  height
231
235
  </td>
232
- <td className="px-6 py-4 text-sm !text-white/70">
236
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
233
237
  number | string
234
238
  </td>
235
- <td className="px-6 py-4 text-sm !text-white/50">24</td>
236
- <td className="px-6 py-4 text-sm !text-white/70">
239
+ <td className="text-fm-placeholder! px-6 py-4 text-sm">
240
+ 24
241
+ </td>
242
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
237
243
  Height of the icon in pixels
238
244
  </td>
239
245
  </tr>
240
- <tr className="border-b border-white/5">
241
- <td className="px-6 py-4 font-mono text-sm !text-blue-300">
246
+ <tr className="border-fm-divider-tertiary border-b">
247
+ <td className="text-fm-icon-info! px-6 py-4 font-mono text-sm">
242
248
  stroke
243
249
  </td>
244
- <td className="px-6 py-4 text-sm !text-white/70">
250
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
245
251
  string
246
252
  </td>
247
- <td className="px-6 py-4 text-sm !text-white/50">
253
+ <td className="text-fm-placeholder! px-6 py-4 text-sm">
248
254
  currentColor
249
255
  </td>
250
- <td className="px-6 py-4 text-sm !text-white/70">
256
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
251
257
  Stroke color of the image outline
252
258
  </td>
253
259
  </tr>
254
- <tr className="border-b border-white/5 !bg-black/10">
255
- <td className="px-6 py-4 font-mono text-sm !text-blue-300">
260
+ <tr className="border-fm-divider-tertiary bg-fm-surface-secondary! border-b">
261
+ <td className="text-fm-icon-info! px-6 py-4 font-mono text-sm">
256
262
  strokeWidth
257
263
  </td>
258
- <td className="px-6 py-4 text-sm !text-white/70">
264
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
259
265
  string | number
260
266
  </td>
261
- <td className="px-6 py-4 text-sm !text-white/50">
267
+ <td className="text-fm-placeholder! px-6 py-4 text-sm">
262
268
  1.5
263
269
  </td>
264
- <td className="px-6 py-4 text-sm !text-white/70">
270
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
265
271
  Stroke width of the outline
266
272
  </td>
267
273
  </tr>
268
- <tr className="border-b border-white/5">
269
- <td className="px-6 py-4 font-mono text-sm !text-blue-300">
274
+ <tr className="border-fm-divider-tertiary border-b">
275
+ <td className="text-fm-icon-info! px-6 py-4 font-mono text-sm">
270
276
  fill
271
277
  </td>
272
- <td className="px-6 py-4 text-sm !text-white/70">
278
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
273
279
  string
274
280
  </td>
275
- <td className="px-6 py-4 text-sm !text-white/50">
281
+ <td className="text-fm-placeholder! px-6 py-4 text-sm">
276
282
  none
277
283
  </td>
278
- <td className="px-6 py-4 text-sm !text-white/70">
284
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
279
285
  Fill color of the icon
280
286
  </td>
281
287
  </tr>
282
- <tr className="border-b border-white/5 !bg-black/10">
283
- <td className="px-6 py-4 font-mono text-sm !text-blue-300">
288
+ <tr className="border-fm-divider-tertiary bg-fm-surface-secondary! border-b">
289
+ <td className="text-fm-icon-info! px-6 py-4 font-mono text-sm">
284
290
  className
285
291
  </td>
286
- <td className="px-6 py-4 text-sm !text-white/70">
292
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
287
293
  string
288
294
  </td>
289
- <td className="px-6 py-4 text-sm !text-white/50">-</td>
290
- <td className="px-6 py-4 text-sm !text-white/70">
295
+ <td className="text-fm-placeholder! px-6 py-4 text-sm">
296
+ -
297
+ </td>
298
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
291
299
  CSS classes for styling (use for overrides)
292
300
  </td>
293
301
  </tr>
294
- <tr className="!bg-black/10">
295
- <td className="px-6 py-4 font-mono text-sm !text-blue-300">
302
+ <tr className="bg-fm-surface-secondary!">
303
+ <td className="text-fm-icon-info! px-6 py-4 font-mono text-sm">
296
304
  ...svgProps
297
305
  </td>
298
- <td className="px-6 py-4 text-sm !text-white/70">
306
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
299
307
  SVGProps
300
308
  </td>
301
- <td className="px-6 py-4 text-sm !text-white/50">-</td>
302
- <td className="px-6 py-4 text-sm !text-white/70">
309
+ <td className="text-fm-placeholder! px-6 py-4 text-sm">
310
+ -
311
+ </td>
312
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
303
313
  All standard SVG element props
304
314
  </td>
305
315
  </tr>
@@ -310,50 +320,62 @@ function MediaUpload() {
310
320
 
311
321
  {/* Size Variations */}
312
322
  <div className="!space-y-8">
313
- <h2 className="text-center text-3xl font-bold !text-white">
323
+ <h2 className="text-fm-icon-active! text-center text-3xl font-bold">
314
324
  Size Variations
315
325
  </h2>
316
- <div className="rounded-lg border border-white/10 bg-white/5 p-8">
326
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-8">
317
327
  <div className="!space-y-6">
318
328
  <div className="grid grid-cols-1 gap-8 md:grid-cols-2">
319
329
  <div className="!space-y-4">
320
- <h3 className="text-lg font-semibold !text-blue-300">
330
+ <h3 className="text-fm-icon-info! text-lg font-semibold">
321
331
  Standard Sizes
322
332
  </h3>
323
- <div className="flex items-end gap-6 rounded-lg bg-black/20 p-6">
333
+ <div className="bg-fm-surface-secondary flex items-end gap-6 rounded-lg p-6">
324
334
  <div className="text-center">
325
- <ImageIcon className="!mx-auto mb-2 h-3 w-3 text-blue-400" />
326
- <span className="text-xs text-white/60">12px</span>
335
+ <ImageIcon className="text-fm-icon-info !mx-auto mb-2 h-3 w-3" />
336
+ <span className="text-fm-tertiary text-xs">
337
+ 12px
338
+ </span>
327
339
  </div>
328
340
  <div className="text-center">
329
- <ImageIcon className="!mx-auto mb-2 h-4 w-4 text-blue-400" />
330
- <span className="text-xs text-white/60">16px</span>
341
+ <ImageIcon className="text-fm-icon-info !mx-auto mb-2 h-4 w-4" />
342
+ <span className="text-fm-tertiary text-xs">
343
+ 16px
344
+ </span>
331
345
  </div>
332
346
  <div className="text-center">
333
- <ImageIcon className="!mx-auto mb-2 h-5 w-5 text-blue-400" />
334
- <span className="text-xs text-white/60">20px</span>
347
+ <ImageIcon className="text-fm-icon-info !mx-auto mb-2 h-5 w-5" />
348
+ <span className="text-fm-tertiary text-xs">
349
+ 20px
350
+ </span>
335
351
  </div>
336
352
  <div className="text-center">
337
- <ImageIcon className="!mx-auto mb-2 h-6 w-6 text-blue-400" />
338
- <span className="text-xs text-white/60">24px</span>
353
+ <ImageIcon className="text-fm-icon-info !mx-auto mb-2 h-6 w-6" />
354
+ <span className="text-fm-tertiary text-xs">
355
+ 24px
356
+ </span>
339
357
  </div>
340
358
  <div className="text-center">
341
- <ImageIcon className="!mx-auto mb-2 h-8 w-8 text-blue-400" />
342
- <span className="text-xs text-white/60">32px</span>
359
+ <ImageIcon className="text-fm-icon-info !mx-auto mb-2 h-8 w-8" />
360
+ <span className="text-fm-tertiary text-xs">
361
+ 32px
362
+ </span>
343
363
  </div>
344
364
  <div className="text-center">
345
- <ImageIcon className="!mx-auto mb-2 h-12 w-12 text-blue-400" />
346
- <span className="text-xs text-white/60">48px</span>
365
+ <ImageIcon className="text-fm-icon-info !mx-auto mb-2 h-12 w-12" />
366
+ <span className="text-fm-tertiary text-xs">
367
+ 48px
368
+ </span>
347
369
  </div>
348
370
  </div>
349
371
  </div>
350
372
 
351
373
  <div className="!space-y-4">
352
- <h3 className="text-lg font-semibold !text-blue-300">
374
+ <h3 className="text-fm-icon-info! text-lg font-semibold">
353
375
  Code Example
354
376
  </h3>
355
- <div className="rounded-lg bg-black/40 p-4">
356
- <pre className="overflow-x-auto text-sm !text-cyan-300">
377
+ <div className="bg-fm-surface-secondary rounded-lg p-4">
378
+ <pre className="text-fm-icon-info! overflow-x-auto text-sm">
357
379
  {`// Small (16px)
358
380
  <ImageIcon className="h-4 w-4 " />
359
381
 
@@ -379,56 +401,56 @@ function MediaUpload() {
379
401
 
380
402
  {/* Color Variations */}
381
403
  <div className="!space-y-8">
382
- <h2 className="text-center text-3xl font-bold !text-white">
404
+ <h2 className="text-fm-icon-active! text-center text-3xl font-bold">
383
405
  Color Variations
384
406
  </h2>
385
407
  <div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
386
408
  <div className="!space-y-4">
387
- <h3 className="text-lg font-semibold !text-blue-300">
409
+ <h3 className="text-fm-icon-info! text-lg font-semibold">
388
410
  Semantic Colors
389
411
  </h3>
390
- <div className="!space-y-4 rounded-lg border border-white/10 bg-white/5 p-6">
412
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
391
413
  <div className="flex items-center gap-4">
392
- <ImageIcon className="h-6 w-6 text-blue-400" />
414
+ <ImageIcon className="text-fm-icon-info h-6 w-6" />
393
415
  <div>
394
- <div className="text-sm font-medium text-white">
416
+ <div className="text-fm-icon-active text-sm font-medium">
395
417
  Primary
396
418
  </div>
397
- <div className="text-xs text-white/60">
398
- text-blue-400
419
+ <div className="text-fm-tertiary text-xs">
420
+ text-fm-icon-info
399
421
  </div>
400
422
  </div>
401
423
  </div>
402
424
  <div className="flex items-center gap-4">
403
- <ImageIcon className="h-6 w-6 text-green-400" />
425
+ <ImageIcon className="text-fm-icon-positive h-6 w-6" />
404
426
  <div>
405
- <div className="text-sm font-medium text-white">
427
+ <div className="text-fm-icon-active text-sm font-medium">
406
428
  Success
407
429
  </div>
408
- <div className="text-xs text-white/60">
409
- text-green-400
430
+ <div className="text-fm-tertiary text-xs">
431
+ text-fm-icon-positive
410
432
  </div>
411
433
  </div>
412
434
  </div>
413
435
  <div className="flex items-center gap-4">
414
- <ImageIcon className="h-6 w-6 text-gray-400" />
436
+ <ImageIcon className="text-fm-placeholder h-6 w-6" />
415
437
  <div>
416
- <div className="text-sm font-medium text-white">
438
+ <div className="text-fm-icon-active text-sm font-medium">
417
439
  Muted
418
440
  </div>
419
- <div className="text-xs text-white/60">
420
- text-gray-400
441
+ <div className="text-fm-tertiary text-xs">
442
+ text-fm-placeholder
421
443
  </div>
422
444
  </div>
423
445
  </div>
424
446
  <div className="flex items-center gap-4">
425
- <ImageIcon className="h-6 w-6 text-white/30" />
447
+ <ImageIcon className="text-fm-icon-active/30 h-6 w-6" />
426
448
  <div>
427
- <div className="text-sm font-medium text-white">
449
+ <div className="text-fm-icon-active text-sm font-medium">
428
450
  Disabled
429
451
  </div>
430
- <div className="text-xs text-white/60">
431
- text-white/30
452
+ <div className="text-fm-tertiary text-xs">
453
+ text-fm-icon-active/30
432
454
  </div>
433
455
  </div>
434
456
  </div>
@@ -436,11 +458,11 @@ function MediaUpload() {
436
458
  </div>
437
459
 
438
460
  <div className="!space-y-4">
439
- <h3 className="text-lg font-semibold !text-blue-300">
461
+ <h3 className="text-fm-icon-info! text-lg font-semibold">
440
462
  Custom Colors
441
463
  </h3>
442
- <div className="rounded-lg bg-black/40 p-4">
443
- <pre className="overflow-x-auto text-sm !text-green-300">
464
+ <div className="bg-fm-surface-secondary rounded-lg p-4">
465
+ <pre className="text-fm-icon-positive! overflow-x-auto text-sm">
444
466
  {`// Using Tailwind classes with
445
467
  <ImageIcon className="h-6 w-6 text-blue-400 " />
446
468
  <ImageIcon className="h-6 w-6 text-green-500 " />
@@ -465,31 +487,31 @@ function MediaUpload() {
465
487
 
466
488
  {/* Usage Examples */}
467
489
  <div className="!space-y-8">
468
- <h2 className="text-center text-3xl font-bold !text-white">
490
+ <h2 className="text-fm-icon-active! text-center text-3xl font-bold">
469
491
  Usage Examples
470
492
  </h2>
471
493
 
472
494
  <div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
473
495
  {/* Image Upload */}
474
496
  <div className="!space-y-4">
475
- <h3 className="text-lg font-semibold !text-blue-300">
497
+ <h3 className="text-fm-icon-info! text-lg font-semibold">
476
498
  Image Upload
477
499
  </h3>
478
500
  <div className="!space-y-4">
479
- <div className="relative rounded-lg border-2 border-dashed border-white/20 bg-white/5 p-8 text-center transition-colors hover:border-blue-400/50 hover:bg-blue-500/10">
480
- <ImageIcon className="!mx-auto h-12 w-12 text-white/40" />
481
- <h4 className="mt-4 text-lg font-medium !text-white">
501
+ <div className="border-fm-divider-primary bg-fm-surface-secondary hover:border-fm-icon-info/50 hover:bg-fm-icon-info/10 relative rounded-lg border-2 border-dashed p-8 text-center transition-colors">
502
+ <ImageIcon className="text-fm-placeholder !mx-auto h-12 w-12" />
503
+ <h4 className="text-fm-icon-active! mt-4 text-lg font-medium">
482
504
  Upload Images
483
505
  </h4>
484
- <p className="mt-2 text-sm !text-white/60">
506
+ <p className="text-fm-tertiary! mt-2 text-sm">
485
507
  Drag and drop your images here, or click to browse
486
508
  </p>
487
- <button className="mt-4 rounded-lg bg-blue-500/20 px-4 py-2 text-blue-300 transition-colors hover:bg-blue-500/30">
509
+ <button className="bg-fm-icon-info/20 text-fm-icon-info hover:bg-fm-icon-info/30 mt-4 rounded-lg px-4 py-2 transition-colors">
488
510
  Browse Files
489
511
  </button>
490
512
  </div>
491
- <div className="rounded-lg bg-black/40 p-4">
492
- <pre className="overflow-x-auto text-sm !text-green-300">
513
+ <div className="bg-fm-surface-secondary rounded-lg p-4">
514
+ <pre className="text-fm-icon-positive! overflow-x-auto text-sm">
493
515
  {`<div className="relative border-2 border-dashed border-white/20 bg-white/5 p-8 text-center rounded-lg hover:border-blue-400/50 hover:bg-blue-500/10 transition-colors">
494
516
  <ImageIcon className="mx-auto h-12 w-12 text-white/40 " />
495
517
  <h4 className="mt-4 text-lg font-medium text-white">Upload Images</h4>
@@ -507,7 +529,7 @@ function MediaUpload() {
507
529
 
508
530
  {/* Gallery Placeholder */}
509
531
  <div className="!space-y-4">
510
- <h3 className="text-lg font-semibold !text-blue-300">
532
+ <h3 className="text-fm-icon-info! text-lg font-semibold">
511
533
  Gallery Placeholder
512
534
  </h3>
513
535
  <div className="!space-y-4">
@@ -515,14 +537,14 @@ function MediaUpload() {
515
537
  {[1, 2, 3, 4, 5, 6].map((item) => (
516
538
  <div
517
539
  key={item}
518
- className="flex aspect-square items-center justify-center rounded-lg border border-white/10 bg-white/5 p-4 transition-colors hover:bg-white/10"
540
+ className="border-fm-divider-secondary bg-fm-surface-secondary hover:bg-fm-surface-secondary flex aspect-square items-center justify-center rounded-lg border p-4 transition-colors"
519
541
  >
520
- <ImageIcon className="h-8 w-8 text-white/30" />
542
+ <ImageIcon className="text-fm-icon-active/30 h-8 w-8" />
521
543
  </div>
522
544
  ))}
523
545
  </div>
524
- <div className="rounded-lg bg-black/40 p-4">
525
- <pre className="overflow-x-auto text-sm !text-green-300">
546
+ <div className="bg-fm-surface-secondary rounded-lg p-4">
547
+ <pre className="text-fm-icon-positive! overflow-x-auto text-sm">
526
548
  {`// Gallery grid with placeholders
527
549
  <div className="grid grid-cols-3 gap-4">
528
550
  {placeholders.map((item) => (
@@ -541,7 +563,7 @@ function MediaUpload() {
541
563
 
542
564
  {/* Media Card */}
543
565
  <div className="!space-y-4">
544
- <h3 className="text-lg font-semibold !text-blue-300">
566
+ <h3 className="text-fm-icon-info! text-lg font-semibold">
545
567
  Media Cards
546
568
  </h3>
547
569
  <div className="!space-y-4">
@@ -553,27 +575,27 @@ function MediaUpload() {
553
575
  ].map((title, index) => (
554
576
  <div
555
577
  key={index}
556
- className="flex items-start gap-4 rounded-lg border border-white/10 bg-white/5 p-4 transition-colors hover:bg-white/10"
578
+ className="border-fm-divider-secondary bg-fm-surface-secondary hover:bg-fm-surface-secondary flex items-start gap-4 rounded-lg border p-4 transition-colors"
557
579
  >
558
- <div className="flex h-12 w-12 items-center justify-center rounded-lg bg-blue-500/20">
559
- <ImageIcon className="h-6 w-6 text-blue-400" />
580
+ <div className="bg-fm-icon-info/20 flex h-12 w-12 items-center justify-center rounded-lg">
581
+ <ImageIcon className="text-fm-icon-info h-6 w-6" />
560
582
  </div>
561
583
  <div className="flex-1">
562
- <h4 className="font-medium !text-white">
584
+ <h4 className="text-fm-icon-active! font-medium">
563
585
  {title}
564
586
  </h4>
565
- <p className="text-sm !text-white/60">
587
+ <p className="text-fm-tertiary! text-sm">
566
588
  {Math.floor(Math.random() * 50) + 10} items
567
589
  </p>
568
590
  </div>
569
- <div className="text-xs text-white/40">
591
+ <div className="text-fm-placeholder text-xs">
570
592
  {new Date().toLocaleDateString()}
571
593
  </div>
572
594
  </div>
573
595
  ))}
574
596
  </div>
575
- <div className="rounded-lg bg-black/40 p-4">
576
- <pre className="overflow-x-auto text-sm !text-green-300">
597
+ <div className="bg-fm-surface-secondary rounded-lg p-4">
598
+ <pre className="text-fm-icon-positive! overflow-x-auto text-sm">
577
599
  {`// Media collection card
578
600
  <div className="flex items-center gap-4 border border-white/10 bg-white/5 p-4 rounded-lg hover:bg-white/10 transition-colors">
579
601
  <div className="flex h-12 w-12 items-center justify-center rounded-lg bg-blue-500/20">
@@ -594,26 +616,26 @@ function MediaUpload() {
594
616
 
595
617
  {/* Button Integration */}
596
618
  <div className="!space-y-4">
597
- <h3 className="text-lg font-semibold !text-blue-300">
619
+ <h3 className="text-fm-icon-info! text-lg font-semibold">
598
620
  Button Integration
599
621
  </h3>
600
622
  <div className="!space-y-4">
601
623
  <div className="flex flex-wrap gap-4">
602
- <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">
624
+ <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">
603
625
  <ImageIcon className="h-4 w-4" />
604
626
  Add Photo
605
627
  </button>
606
- <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">
628
+ <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">
607
629
  <ImageIcon className="h-4 w-4" />
608
630
  Gallery
609
631
  </button>
610
- <button className="flex items-center gap-2 rounded-lg border border-white/20 bg-white/5 px-4 py-2 text-white/70 transition-colors hover:bg-white/10">
632
+ <button className="border-fm-divider-primary bg-fm-surface-secondary text-fm-secondary hover:bg-fm-surface-secondary flex items-center gap-2 rounded-lg border px-4 py-2 transition-colors">
611
633
  <ImageIcon className="h-4 w-4" />
612
634
  Media Library
613
635
  </button>
614
636
  </div>
615
- <div className="rounded-lg bg-black/40 p-4">
616
- <pre className="overflow-x-auto text-sm !text-green-300">
637
+ <div className="bg-fm-surface-secondary rounded-lg p-4">
638
+ <pre className="text-fm-icon-positive! overflow-x-auto text-sm">
617
639
  {`// Primary action button
618
640
  <button className="flex items-center gap-2 bg-blue-500/20 border border-blue-500/30 px-4 py-2 rounded-lg">
619
641
  <ImageIcon className="h-4 w-4 " />
@@ -634,47 +656,47 @@ function MediaUpload() {
634
656
 
635
657
  {/* Interactive States */}
636
658
  <div className="!space-y-8">
637
- <h2 className="text-center text-3xl font-bold !text-white">
659
+ <h2 className="text-fm-icon-active! text-center text-3xl font-bold">
638
660
  Interactive States & Animations
639
661
  </h2>
640
662
  <div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
641
663
  <div className="!space-y-4">
642
- <h3 className="text-lg font-semibold !text-blue-300">
664
+ <h3 className="text-fm-icon-info! text-lg font-semibold">
643
665
  Hover & Loading States
644
666
  </h3>
645
- <div className="!space-y-4 rounded-lg border border-white/10 bg-white/5 p-6">
667
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
646
668
  <div className="flex items-center gap-4">
647
- <ImageIcon className="h-6 w-6 text-white/60 transition-colors hover:text-blue-400" />
669
+ <ImageIcon className="text-fm-tertiary hover:text-fm-icon-info h-6 w-6 transition-colors" />
648
670
  <div>
649
- <div className="text-sm font-medium text-white">
671
+ <div className="text-fm-icon-active text-sm font-medium">
650
672
  Color Change
651
673
  </div>
652
- <div className="text-xs text-white/60">
653
- hover:text-blue-400
674
+ <div className="text-fm-tertiary text-xs">
675
+ hover:text-fm-icon-info
654
676
  </div>
655
677
  </div>
656
678
  </div>
657
679
  <div className="flex items-center gap-4">
658
- <ImageIcon className="h-6 w-6 text-white transition-transform hover:scale-110" />
680
+ <ImageIcon className="text-fm-icon-active h-6 w-6 transition-transform hover:scale-110" />
659
681
  <div>
660
- <div className="text-sm font-medium text-white">
682
+ <div className="text-fm-icon-active text-sm font-medium">
661
683
  Scale Effect
662
684
  </div>
663
- <div className="text-xs text-white/60">
685
+ <div className="text-fm-tertiary text-xs">
664
686
  hover:scale-110
665
687
  </div>
666
688
  </div>
667
689
  </div>
668
690
  <div className="flex items-center gap-4">
669
691
  <div className="relative overflow-hidden">
670
- <ImageIcon className="h-6 w-6 text-blue-400" />
671
- <div className="animate-shimmer absolute inset-0 bg-gradient-to-r from-transparent via-white/20 to-transparent"></div>
692
+ <ImageIcon className="text-fm-icon-info h-6 w-6" />
693
+ <div className="animate-shimmer absolute inset-0 bg-linear-to-r from-transparent via-transparent to-transparent"></div>
672
694
  </div>
673
695
  <div>
674
- <div className="text-sm font-medium text-white">
696
+ <div className="text-fm-icon-active text-sm font-medium">
675
697
  Loading Shimmer
676
698
  </div>
677
- <div className="text-xs text-white/60">
699
+ <div className="text-fm-tertiary text-xs">
678
700
  animate-shimmer
679
701
  </div>
680
702
  </div>
@@ -684,13 +706,13 @@ function MediaUpload() {
684
706
  className="rounded p-2 focus:ring-2 focus:ring-blue-500 focus:outline-none"
685
707
  tabIndex={0}
686
708
  >
687
- <ImageIcon className="h-6 w-6 text-white" />
709
+ <ImageIcon className="text-fm-icon-active h-6 w-6" />
688
710
  </div>
689
711
  <div>
690
- <div className="text-sm font-medium text-white">
712
+ <div className="text-fm-icon-active text-sm font-medium">
691
713
  Focus Ring
692
714
  </div>
693
- <div className="text-xs text-white/60">
715
+ <div className="text-fm-tertiary text-xs">
694
716
  focus:ring-2
695
717
  </div>
696
718
  </div>
@@ -699,11 +721,11 @@ function MediaUpload() {
699
721
  </div>
700
722
 
701
723
  <div className="!space-y-4">
702
- <h3 className="text-lg font-semibold !text-blue-300">
724
+ <h3 className="text-fm-icon-info! text-lg font-semibold">
703
725
  Animation Examples
704
726
  </h3>
705
- <div className="rounded-lg bg-black/40 p-4">
706
- <pre className="overflow-x-auto text-sm !text-cyan-300">
727
+ <div className="bg-fm-surface-secondary rounded-lg p-4">
728
+ <pre className="text-fm-icon-info! overflow-x-auto text-sm">
707
729
  {`// Hover effects
708
730
  <ImageIcon className="h-6 w-6 text-white/60 hover:text-blue-400 transition-colors " />
709
731
 
@@ -733,64 +755,64 @@ function MediaUpload() {
733
755
 
734
756
  {/* Accessibility */}
735
757
  <div className="!space-y-8">
736
- <h2 className="text-center text-3xl font-bold !text-white">
758
+ <h2 className="text-fm-icon-active! text-center text-3xl font-bold">
737
759
  Accessibility Features
738
760
  </h2>
739
761
  <div className="grid grid-cols-1 gap-8 md:grid-cols-2">
740
- <div className="!space-y-4 rounded-lg border border-white/10 bg-white/5 p-6">
741
- <h3 className="text-lg font-semibold !text-green-300">
762
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
763
+ <h3 className="text-fm-icon-positive! text-lg font-semibold">
742
764
  ✅ Built-in Features
743
765
  </h3>
744
- <ul className="!space-y-2 text-sm !text-white/70">
745
- <li className="!text-white/70">
766
+ <ul className="text-fm-secondary! !space-y-2 text-sm">
767
+ <li className="text-fm-secondary!">
746
768
  Uses Radix UI AccessibleIcon wrapper
747
769
  </li>
748
- <li className="!text-white/70">
770
+ <li className="text-fm-secondary!">
749
771
  Provides screen reader label "Image icon"
750
772
  </li>
751
- <li className="!text-white/70">
773
+ <li className="text-fm-secondary!">
752
774
  Supports keyboard navigation when interactive
753
775
  </li>
754
- <li className="!text-white/70">
776
+ <li className="text-fm-secondary!">
755
777
  Maintains proper color contrast ratios
756
778
  </li>
757
- <li className="!text-white/70">
779
+ <li className="text-fm-secondary!">
758
780
  Scales with user's font size preferences
759
781
  </li>
760
782
  </ul>
761
783
  </div>
762
784
 
763
- <div className="!space-y-4 rounded-lg border border-white/10 bg-white/5 p-6">
764
- <h3 className="text-lg font-semibold !text-blue-300">
785
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
786
+ <h3 className="text-fm-icon-info! text-lg font-semibold">
765
787
  💡 Best Practices
766
788
  </h3>
767
- <ul className="!space-y-2 text-sm text-white/70">
768
- <li className="!text-white/70">
789
+ <ul className="text-fm-secondary !space-y-2 text-sm">
790
+ <li className="text-fm-secondary!">
769
791
  Always provide alt text for image content
770
792
  </li>
771
- <li className="!text-white/70">
793
+ <li className="text-fm-secondary!">
772
794
  Use descriptive labels for upload areas
773
795
  </li>
774
- <li className="!text-white/70">
796
+ <li className="text-fm-secondary!">
775
797
  Ensure sufficient color contrast
776
798
  </li>
777
- <li className="!text-white/70">
799
+ <li className="text-fm-secondary!">
778
800
  Add focus states for interactive elements
779
801
  </li>
780
- <li className="!text-white/70">
802
+ <li className="text-fm-secondary!">
781
803
  Consider motion sensitivity for animations
782
804
  </li>
783
805
  </ul>
784
806
  </div>
785
807
  </div>
786
808
 
787
- <div className="rounded-lg border border-white/10 bg-white/5 p-6">
788
- <h3 className="mb-4 text-lg font-semibold !text-purple-300">
809
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
810
+ <h3 className="text-fm-secondary-600! mb-4 text-lg font-semibold">
789
811
  Custom Accessibility Implementation
790
812
  </h3>
791
813
  <div className="grid grid-cols-1 gap-6 lg:grid-cols-2">
792
- <div className="rounded-lg bg-black/40 p-4">
793
- <pre className="overflow-x-auto text-sm !text-cyan-300">
814
+ <div className="bg-fm-surface-secondary rounded-lg p-4">
815
+ <pre className="text-fm-icon-info! overflow-x-auto text-sm">
794
816
  {`// Upload area with proper ARIA labels
795
817
  <div
796
818
  role="button"
@@ -815,13 +837,13 @@ function MediaUpload() {
815
837
  </pre>
816
838
  </div>
817
839
  <div className="!space-y-4">
818
- <p className="text-sm !text-white/70">
840
+ <p className="text-fm-secondary! text-sm">
819
841
  When using ImageIcon for interactive elements like
820
842
  upload areas or gallery triggers, provide comprehensive
821
843
  ARIA labels and keyboard support.
822
844
  </p>
823
- <div className="rounded-lg border border-blue-500/20 bg-blue-500/10 p-4">
824
- <div className="flex items-center gap-2 text-sm text-blue-200">
845
+ <div className="border-fm-icon-info/20 bg-fm-icon-info/10 rounded-lg border p-4">
846
+ <div className="text-fm-icon-info flex items-center gap-2 text-sm">
825
847
  <ImageIcon className="h-4 w-4" />
826
848
  <span>
827
849
  Screen readers get context about image functionality
@@ -835,46 +857,60 @@ function MediaUpload() {
835
857
 
836
858
  {/* Related Icons */}
837
859
  <div className="!space-y-8">
838
- <h2 className="text-center text-3xl font-bold !text-white">
860
+ <h2 className="text-fm-icon-active! text-center text-3xl font-bold">
839
861
  Related Icons
840
862
  </h2>
841
863
  <div className="grid grid-cols-2 gap-6 md:grid-cols-4">
842
- <div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
843
- <div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-red-500/20">
864
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
865
+ <div className="bg-fm-icon-negative/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
844
866
  <span className="text-2xl">📹</span>
845
867
  </div>
846
868
  <div>
847
- <div className="font-medium text-white">VideoIcon</div>
848
- <div className="text-xs text-white/60">Video content</div>
869
+ <div className="text-fm-icon-active font-medium">
870
+ VideoIcon
871
+ </div>
872
+ <div className="text-fm-tertiary text-xs">
873
+ Video content
874
+ </div>
849
875
  </div>
850
876
  </div>
851
- <div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
852
- <div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-yellow-500/20">
877
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
878
+ <div className="bg-fm-icon-warning/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
853
879
  <span className="text-2xl">📁</span>
854
880
  </div>
855
881
  <div>
856
- <div className="font-medium text-white">FolderIcon</div>
857
- <div className="text-xs text-white/60">
882
+ <div className="text-fm-icon-active font-medium">
883
+ FolderIcon
884
+ </div>
885
+ <div className="text-fm-tertiary text-xs">
858
886
  File organization
859
887
  </div>
860
888
  </div>
861
889
  </div>
862
- <div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
863
- <div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-green-500/20">
890
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
891
+ <div className="bg-fm-icon-positive/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
864
892
  <span className="text-2xl">⬆️</span>
865
893
  </div>
866
894
  <div>
867
- <div className="font-medium text-white">UploadIcon</div>
868
- <div className="text-xs text-white/60">File uploads</div>
895
+ <div className="text-fm-icon-active font-medium">
896
+ UploadIcon
897
+ </div>
898
+ <div className="text-fm-tertiary text-xs">
899
+ File uploads
900
+ </div>
869
901
  </div>
870
902
  </div>
871
- <div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
872
- <div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-purple-500/20">
903
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
904
+ <div className="bg-fm-secondary-500/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
873
905
  <span className="text-2xl">🎨</span>
874
906
  </div>
875
907
  <div>
876
- <div className="font-medium text-white">PaletteIcon</div>
877
- <div className="text-xs text-white/60">Design tools</div>
908
+ <div className="text-fm-icon-active font-medium">
909
+ PaletteIcon
910
+ </div>
911
+ <div className="text-fm-tertiary text-xs">
912
+ Design tools
913
+ </div>
878
914
  </div>
879
915
  </div>
880
916
  </div>
@@ -882,14 +918,14 @@ function MediaUpload() {
882
918
  </div>
883
919
 
884
920
  {/* Footer */}
885
- <div className="border-t border-white/10 bg-black/20 backdrop-blur-xl">
921
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary border-t backdrop-blur-xl">
886
922
  <div className="!mx-auto max-w-7xl px-6 py-8">
887
923
  <div className="!space-y-4 text-center">
888
- <p className="!text-white/60">
924
+ <p className="text-fm-tertiary!">
889
925
  ImageIcon is part of the Aural UI icon library, built for
890
926
  media-rich applications and visual content management.
891
927
  </p>
892
- <p className="text-sm !text-white/40">
928
+ <p className="text-fm-placeholder! text-sm">
893
929
  All icons use Radix UI's AccessibleIcon for screen reader
894
930
  compatibility and follow WCAG guidelines for media
895
931
  accessibility.
@@ -943,20 +979,20 @@ const storyParameters = {
943
979
  backgrounds: {
944
980
  default: "dark",
945
981
  values: [
946
- { name: "dark", value: "#0a0a0a" },
947
- { name: "darker", value: "#000000" },
982
+ { name: "dark", value: "var(--color-fm-surface-primary)" },
983
+ { name: "darker", value: "var(--color-fm-neutral-0)" },
948
984
  ],
949
985
  },
950
986
  }
951
987
 
952
988
  export const Default: Story = {
953
989
  args: {
954
- className: "h-6 w-6 text-blue-400 ",
990
+ className: "h-6 w-6 text-fm-icon-info ",
955
991
  withAccessibility: true,
956
992
  },
957
993
  parameters: storyParameters,
958
994
  render: (args) => (
959
- <div className="flex h-32 min-h-dvh items-center justify-center rounded-lg bg-gradient-to-br from-gray-900 to-gray-800">
995
+ <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">
960
996
  <ImageIcon {...args} />
961
997
  </div>
962
998
  ),
@@ -973,30 +1009,30 @@ export const SizeVariations: Story = {
973
1009
  },
974
1010
  },
975
1011
  render: () => (
976
- <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">
1012
+ <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">
977
1013
  <div className="text-center">
978
- <ImageIcon className="!mx-auto mb-2 h-3 w-3 text-blue-400" />
979
- <span className="text-xs text-white/60">12px</span>
1014
+ <ImageIcon className="text-fm-icon-info !mx-auto mb-2 h-3 w-3" />
1015
+ <span className="text-fm-tertiary text-xs">12px</span>
980
1016
  </div>
981
1017
  <div className="text-center">
982
- <ImageIcon className="!mx-auto mb-2 h-4 w-4 text-blue-400" />
983
- <span className="text-xs text-white/60">16px</span>
1018
+ <ImageIcon className="text-fm-icon-info !mx-auto mb-2 h-4 w-4" />
1019
+ <span className="text-fm-tertiary text-xs">16px</span>
984
1020
  </div>
985
1021
  <div className="text-center">
986
- <ImageIcon className="!mx-auto mb-2 h-5 w-5 text-blue-400" />
987
- <span className="text-xs text-white/60">20px</span>
1022
+ <ImageIcon className="text-fm-icon-info !mx-auto mb-2 h-5 w-5" />
1023
+ <span className="text-fm-tertiary text-xs">20px</span>
988
1024
  </div>
989
1025
  <div className="text-center">
990
- <ImageIcon className="!mx-auto mb-2 h-6 w-6 text-blue-400" />
991
- <span className="text-xs text-white/60">24px</span>
1026
+ <ImageIcon className="text-fm-icon-info !mx-auto mb-2 h-6 w-6" />
1027
+ <span className="text-fm-tertiary text-xs">24px</span>
992
1028
  </div>
993
1029
  <div className="text-center">
994
- <ImageIcon className="!mx-auto mb-2 h-8 w-8 text-blue-400" />
995
- <span className="text-xs text-white/60">32px</span>
1030
+ <ImageIcon className="text-fm-icon-info !mx-auto mb-2 h-8 w-8" />
1031
+ <span className="text-fm-tertiary text-xs">32px</span>
996
1032
  </div>
997
1033
  <div className="text-center">
998
- <ImageIcon className="!mx-auto mb-2 h-12 w-12 text-blue-400" />
999
- <span className="text-xs text-white/60">48px</span>
1034
+ <ImageIcon className="text-fm-icon-info !mx-auto mb-2 h-12 w-12" />
1035
+ <span className="text-fm-tertiary text-xs">48px</span>
1000
1036
  </div>
1001
1037
  </div>
1002
1038
  ),
@@ -1013,34 +1049,38 @@ export const ColorVariations: Story = {
1013
1049
  },
1014
1050
  },
1015
1051
  render: () => (
1016
- <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">
1052
+ <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">
1017
1053
  <div className="text-center">
1018
- <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">
1019
- <ImageIcon className="h-8 w-8 text-blue-400" />
1054
+ <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">
1055
+ <ImageIcon className="text-fm-icon-info h-8 w-8" />
1020
1056
  </div>
1021
- <div className="text-sm font-medium text-white">Primary</div>
1022
- <div className="text-xs text-blue-400">text-blue-400</div>
1057
+ <div className="text-fm-icon-active text-sm font-medium">Primary</div>
1058
+ <div className="text-fm-icon-info text-xs">text-fm-icon-info</div>
1023
1059
  </div>
1024
1060
  <div className="text-center">
1025
- <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">
1026
- <ImageIcon className="h-8 w-8 text-green-400" />
1061
+ <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">
1062
+ <ImageIcon className="text-fm-icon-positive h-8 w-8" />
1063
+ </div>
1064
+ <div className="text-fm-icon-active text-sm font-medium">Success</div>
1065
+ <div className="text-fm-icon-positive text-xs">
1066
+ text-fm-icon-positive
1027
1067
  </div>
1028
- <div className="text-sm font-medium text-white">Success</div>
1029
- <div className="text-xs text-green-400">text-green-400</div>
1030
1068
  </div>
1031
1069
  <div className="text-center">
1032
- <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">
1033
- <ImageIcon className="h-8 w-8 text-gray-400" />
1070
+ <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">
1071
+ <ImageIcon className="text-fm-placeholder h-8 w-8" />
1034
1072
  </div>
1035
- <div className="text-sm font-medium text-white">Muted</div>
1036
- <div className="text-xs text-gray-400">text-gray-400</div>
1073
+ <div className="text-fm-icon-active text-sm font-medium">Muted</div>
1074
+ <div className="text-fm-placeholder text-xs">text-fm-placeholder</div>
1037
1075
  </div>
1038
1076
  <div className="text-center">
1039
- <div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border border-white/10 bg-white/5">
1040
- <ImageIcon className="h-8 w-8 text-white/30" />
1077
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary !mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border">
1078
+ <ImageIcon className="text-fm-icon-active/30 h-8 w-8" />
1079
+ </div>
1080
+ <div className="text-fm-icon-active text-sm font-medium">Disabled</div>
1081
+ <div className="text-fm-icon-active/30 text-xs">
1082
+ text-fm-icon-active/30
1041
1083
  </div>
1042
- <div className="text-sm font-medium text-white">Disabled</div>
1043
- <div className="text-xs text-white/30">text-white/30</div>
1044
1084
  </div>
1045
1085
  </div>
1046
1086
  ),
@@ -1057,19 +1097,21 @@ export const UsageExamples: Story = {
1057
1097
  },
1058
1098
  },
1059
1099
  render: () => (
1060
- <div className="min-h-dvh !space-y-8 rounded-lg bg-gradient-to-br from-gray-900 to-gray-800 p-8">
1100
+ <div className="from-fm-surface-primary to-fm-surface-secondary min-h-dvh !space-y-8 rounded-lg bg-linear-to-br p-8">
1061
1101
  {/* Image Upload */}
1062
1102
  <div className="!space-y-2">
1063
- <h3 className="text-sm font-medium text-white">Image Upload</h3>
1064
- <div className="relative rounded-lg border-2 border-dashed border-white/20 bg-white/5 p-8 text-center transition-colors hover:border-blue-400/50 hover:bg-blue-500/10">
1065
- <ImageIcon className="!mx-auto h-12 w-12 text-white/40" />
1066
- <h4 className="mt-4 text-lg font-medium !text-white">
1103
+ <h3 className="text-fm-icon-active text-sm font-medium">
1104
+ Image Upload
1105
+ </h3>
1106
+ <div className="border-fm-divider-primary bg-fm-surface-secondary hover:border-fm-icon-info/50 hover:bg-fm-icon-info/10 relative rounded-lg border-2 border-dashed p-8 text-center transition-colors">
1107
+ <ImageIcon className="text-fm-placeholder !mx-auto h-12 w-12" />
1108
+ <h4 className="text-fm-icon-active! mt-4 text-lg font-medium">
1067
1109
  Upload Images
1068
1110
  </h4>
1069
- <p className="mt-2 text-sm !text-white/60">
1111
+ <p className="text-fm-tertiary! mt-2 text-sm">
1070
1112
  Drag and drop your images here, or click to browse
1071
1113
  </p>
1072
- <button className="mt-4 rounded-lg bg-blue-500/20 px-4 py-2 text-blue-300 transition-colors hover:bg-blue-500/30">
1114
+ <button className="bg-fm-icon-info/20 text-fm-icon-info hover:bg-fm-icon-info/30 mt-4 rounded-lg px-4 py-2 transition-colors">
1073
1115
  Browse Files
1074
1116
  </button>
1075
1117
  </div>
@@ -1077,14 +1119,16 @@ export const UsageExamples: Story = {
1077
1119
 
1078
1120
  {/* Gallery Placeholder */}
1079
1121
  <div className="!space-y-2">
1080
- <h3 className="text-sm font-medium text-white">Gallery Placeholder</h3>
1122
+ <h3 className="text-fm-icon-active text-sm font-medium">
1123
+ Gallery Placeholder
1124
+ </h3>
1081
1125
  <div className="grid grid-cols-6 gap-4">
1082
1126
  {[1, 2, 3, 4, 5, 6].map((item) => (
1083
1127
  <div
1084
1128
  key={item}
1085
- className="flex aspect-square items-center justify-center rounded-lg border border-white/10 bg-white/5 p-4 transition-colors hover:bg-white/10"
1129
+ className="border-fm-divider-secondary bg-fm-surface-secondary hover:bg-fm-surface-secondary flex aspect-square items-center justify-center rounded-lg border p-4 transition-colors"
1086
1130
  >
1087
- <ImageIcon className="h-6 w-6 text-white/30" />
1131
+ <ImageIcon className="text-fm-icon-active/30 h-6 w-6" />
1088
1132
  </div>
1089
1133
  ))}
1090
1134
  </div>
@@ -1092,17 +1136,19 @@ export const UsageExamples: Story = {
1092
1136
 
1093
1137
  {/* Button Integration */}
1094
1138
  <div className="!space-y-2">
1095
- <h3 className="text-sm font-medium text-white">Button Integration</h3>
1139
+ <h3 className="text-fm-icon-active text-sm font-medium">
1140
+ Button Integration
1141
+ </h3>
1096
1142
  <div className="flex flex-wrap gap-4">
1097
- <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">
1143
+ <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">
1098
1144
  <ImageIcon className="h-4 w-4" />
1099
1145
  Add Photo
1100
1146
  </button>
1101
- <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">
1147
+ <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">
1102
1148
  <ImageIcon className="h-4 w-4" />
1103
1149
  Gallery
1104
1150
  </button>
1105
- <button className="flex items-center gap-2 rounded-lg border border-white/20 bg-white/5 px-4 py-2 text-white/70 transition-colors hover:bg-white/10">
1151
+ <button className="border-fm-divider-primary bg-fm-surface-secondary text-fm-secondary hover:bg-fm-surface-secondary flex items-center gap-2 rounded-lg border px-4 py-2 transition-colors">
1106
1152
  <ImageIcon className="h-4 w-4" />
1107
1153
  Media Library
1108
1154
  </button>
@@ -1123,39 +1169,39 @@ export const InteractiveStates: Story = {
1123
1169
  },
1124
1170
  },
1125
1171
  render: () => (
1126
- <div className="min-h-dvh !space-y-8 rounded-lg bg-gradient-to-br from-gray-900 to-gray-800 p-8">
1172
+ <div className="from-fm-surface-primary to-fm-surface-secondary min-h-dvh !space-y-8 rounded-lg bg-linear-to-br p-8">
1127
1173
  <div className="!space-y-4">
1128
- <h3 className="text-sm font-medium text-white/70">Hover Effects</h3>
1174
+ <h3 className="text-fm-secondary text-sm font-medium">Hover Effects</h3>
1129
1175
  <div className="flex gap-8">
1130
1176
  <div className="flex flex-col items-center gap-2">
1131
- <ImageIcon className="h-8 w-8 text-white/60 transition-colors hover:text-blue-400" />
1132
- <span className="text-xs text-white/60">Color Change</span>
1177
+ <ImageIcon className="text-fm-tertiary hover:text-fm-icon-info h-8 w-8 transition-colors" />
1178
+ <span className="text-fm-tertiary text-xs">Color Change</span>
1133
1179
  </div>
1134
1180
  <div className="flex flex-col items-center gap-2">
1135
- <ImageIcon className="h-8 w-8 text-white transition-transform hover:scale-110" />
1136
- <span className="text-xs text-white/60">Scale Up</span>
1181
+ <ImageIcon className="text-fm-icon-active h-8 w-8 transition-transform hover:scale-110" />
1182
+ <span className="text-fm-tertiary text-xs">Scale Up</span>
1137
1183
  </div>
1138
1184
  <div className="flex flex-col items-center gap-2">
1139
1185
  <div className="relative overflow-hidden">
1140
- <ImageIcon className="h-8 w-8 text-blue-400" />
1141
- <div className="animate-shimmer absolute inset-0 bg-gradient-to-r from-transparent via-white/20 to-transparent"></div>
1186
+ <ImageIcon className="text-fm-icon-info h-8 w-8" />
1187
+ <div className="animate-shimmer absolute inset-0 bg-linear-to-r from-transparent via-transparent to-transparent"></div>
1142
1188
  </div>
1143
- <span className="text-xs text-white/60">Loading Shimmer</span>
1189
+ <span className="text-fm-tertiary text-xs">Loading Shimmer</span>
1144
1190
  </div>
1145
1191
  </div>
1146
1192
  </div>
1147
1193
 
1148
1194
  <div className="!space-y-4">
1149
- <h3 className="text-sm font-medium text-white/70">Focus States</h3>
1195
+ <h3 className="text-fm-secondary text-sm font-medium">Focus States</h3>
1150
1196
  <div className="flex gap-8">
1151
1197
  <div className="flex flex-col items-center gap-2">
1152
1198
  <div
1153
1199
  className="rounded p-2 focus:ring-2 focus:ring-blue-500 focus:outline-none"
1154
1200
  tabIndex={0}
1155
1201
  >
1156
- <ImageIcon className="h-8 w-8 text-white" />
1202
+ <ImageIcon className="text-fm-icon-active h-8 w-8" />
1157
1203
  </div>
1158
- <span className="text-xs text-white/60">Focus Ring</span>
1204
+ <span className="text-fm-tertiary text-xs">Focus Ring</span>
1159
1205
  </div>
1160
1206
  </div>
1161
1207
  </div>
@@ -1176,12 +1222,12 @@ export const Playground: Story = {
1176
1222
  args: {
1177
1223
  width: 32,
1178
1224
  height: 32,
1179
- className: "text-blue-400 ",
1225
+ className: "text-fm-icon-info ",
1180
1226
  strokeWidth: 1.5,
1181
1227
  },
1182
1228
  render: (args) => (
1183
- <div className="flex h-64 min-h-dvh items-center justify-center rounded-lg bg-gradient-to-br from-gray-900 to-gray-800">
1184
- <div className="rounded-lg border border-white/10 bg-white/5 p-8">
1229
+ <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">
1230
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-8">
1185
1231
  <ImageIcon {...args} />
1186
1232
  </div>
1187
1233
  </div>