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 CameraIcon> = {
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,57 +40,59 @@ const meta: Meta<typeof CameraIcon> = {
40
40
  background: transparent ;
41
41
  }
42
42
  body {
43
- background: #0a0a0a ;
43
+ background: var(--color-fm-surface-primary) ;
44
44
  }
45
45
  #storybook-docs {
46
- background: #0a0a0a ;
46
+ background: var(--color-fm-surface-primary) ;
47
47
  }
48
48
  .sbdocs-preview {
49
49
  background: transparent ;
50
50
  border: none ;
51
51
  }
52
52
  .sbdocs-h1, .sbdocs-h2, .sbdocs-h3, .sbdocs-h4, .sbdocs-h5, .sbdocs-h6 {
53
- color: white ;
53
+ color: var(--color-fm-icon-active) ;
54
54
  }
55
55
  .sbdocs-p, .sbdocs-li {
56
- color: rgba(255, 255, 255, 0.7) ;
56
+ color: var(--color-fm-secondary) ;
57
57
  }
58
58
  .sbdocs-code {
59
- background: rgba(255, 255, 255, 0.1) ;
60
- color: rgba(168, 85, 247, 1) ;
61
- border: 1px solid rgba(255, 255, 255, 0.1) ;
59
+ background: var(--color-fm-surface-secondary) ;
60
+ color: var(--color-fm-secondary-500) ;
61
+ border: 1px solid var(--color-fm-divider-secondary) ;
62
62
  }
63
63
  .sbdocs-pre {
64
- background: rgba(0, 0, 0, 0.4) ;
65
- border: 1px solid rgba(255, 255, 255, 0.1) ;
64
+ background: var(--color-fm-surface-secondary) ;
65
+ border: 1px solid var(--color-fm-divider-secondary) ;
66
66
  }
67
67
  .sbdocs-table {
68
- background: rgba(255, 255, 255, 0.05) ;
69
- border: 1px solid rgba(255, 255, 255, 0.1) ;
68
+ background: var(--color-fm-surface-secondary) ;
69
+ border: 1px solid var(--color-fm-divider-secondary) ;
70
70
  }
71
71
  .sbdocs-table th {
72
- background: rgba(255, 255, 255, 0.05) ;
73
- color: white ;
74
- border-bottom: 1px solid rgba(255, 255, 255, 0.1) ;
72
+ background: var(--color-fm-surface-secondary) ;
73
+ color: var(--color-fm-icon-active) ;
74
+ border-bottom: 1px solid var(--color-fm-divider-secondary) ;
75
75
  }
76
76
  .sbdocs-table td {
77
- color: rgba(255, 255, 255, 0.7) ;
78
- border-bottom: 1px solid rgba(255, 255, 255, 0.05) ;
77
+ color: var(--color-fm-secondary) ;
78
+ border-bottom: 1px solid var(--color-fm-divider-tertiary) ;
79
79
  }
80
80
  `}
81
81
  </style>
82
82
 
83
- <div className="min-h-screen bg-gradient-to-br from-gray-900 via-indigo-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-indigo-500/10 via-transparent to-blue-500/10" />
85
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary relative overflow-hidden border-b backdrop-blur-xl">
86
+ <div className="from-fm-icon-info/10 to-fm-icon-info/10 absolute inset-0 bg-linear-to-r via-transparent" />
87
87
  <div className="relative !mx-auto max-w-7xl px-6 py-16">
88
88
  <div className="!space-y-6 text-center">
89
- <div className="!mx-auto flex h-24 w-24 items-center justify-center rounded-2xl border border-indigo-500/30 bg-gradient-to-br from-indigo-500/20 to-blue-500/20">
90
- <CameraIcon className="h-12 w-12 text-indigo-400" />
89
+ <div className="border-fm-icon-info/30 from-fm-icon-info/20 to-fm-icon-info/20 !mx-auto flex h-24 w-24 items-center justify-center rounded-2xl border bg-linear-to-br">
90
+ <CameraIcon className="text-fm-icon-info h-12 w-12" />
91
91
  </div>
92
- <h1 className="text-5xl font-bold !text-white">CameraIcon</h1>
93
- <p className="!mx-auto max-w-3xl text-xl leading-relaxed !text-white/70">
92
+ <h1 className="text-fm-icon-active! text-5xl font-bold">
93
+ CameraIcon
94
+ </h1>
95
+ <p className="text-fm-secondary! !mx-auto max-w-3xl text-xl leading-relaxed">
94
96
  A versatile video camera icon featuring a sleek recording
95
97
  device design. Essential for video conferencing
96
98
  applications, streaming platforms, content creation tools,
@@ -101,28 +103,28 @@ const meta: Meta<typeof CameraIcon> = {
101
103
  {/* Stats */}
102
104
  <div className="flex items-center justify-center gap-8 pt-8">
103
105
  <div className="text-center">
104
- <div className="text-3xl font-bold text-indigo-300">
106
+ <div className="text-fm-icon-info text-3xl font-bold">
105
107
  Video Recording
106
108
  </div>
107
- <div className="text-sm text-white/60">
109
+ <div className="text-fm-tertiary text-sm">
108
110
  Content creation
109
111
  </div>
110
112
  </div>
111
- <div className="h-8 w-px bg-white/20" />
113
+ <div className="bg-fm-divider-primary h-8 w-px" />
112
114
  <div className="text-center">
113
- <div className="text-3xl font-bold text-blue-300">
115
+ <div className="text-fm-icon-info text-3xl font-bold">
114
116
  Live Streaming
115
117
  </div>
116
- <div className="text-sm text-white/60">
118
+ <div className="text-fm-tertiary text-sm">
117
119
  Broadcasting ready
118
120
  </div>
119
121
  </div>
120
- <div className="h-8 w-px bg-white/20" />
122
+ <div className="bg-fm-divider-primary h-8 w-px" />
121
123
  <div className="text-center">
122
- <div className="text-3xl font-bold text-cyan-300">
124
+ <div className="text-fm-icon-info text-3xl font-bold">
123
125
  Professional
124
126
  </div>
125
- <div className="text-sm text-white/60">
127
+ <div className="text-fm-tertiary text-sm">
126
128
  Studio quality design
127
129
  </div>
128
130
  </div>
@@ -135,16 +137,16 @@ const meta: Meta<typeof CameraIcon> = {
135
137
  <div className="!mx-auto max-w-7xl !space-y-16 px-6 py-12">
136
138
  {/* Quick Usage */}
137
139
  <div className="!space-y-8">
138
- <h2 className="text-center text-3xl font-bold !text-white">
140
+ <h2 className="text-fm-icon-active! text-center text-3xl font-bold">
139
141
  Quick Start
140
142
  </h2>
141
143
  <div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
142
144
  <div className="!space-y-4">
143
- <h3 className="text-xl font-semibold !text-indigo-300">
145
+ <h3 className="text-fm-icon-info! text-xl font-semibold">
144
146
  Basic Usage
145
147
  </h3>
146
- <div className="rounded-lg bg-black/40 p-4">
147
- <pre className="overflow-x-auto text-sm !text-green-300">
148
+ <div className="bg-fm-surface-secondary rounded-lg p-4">
149
+ <pre className="text-fm-icon-positive! overflow-x-auto text-sm">
148
150
  {`import { CameraIcon } from "@icons/camera-icon"
149
151
 
150
152
  function VideoCall() {
@@ -163,12 +165,12 @@ function VideoCall() {
163
165
  </div>
164
166
 
165
167
  <div className="!space-y-4">
166
- <h3 className="text-xl font-semibold !text-indigo-300">
168
+ <h3 className="text-fm-icon-info! text-xl font-semibold">
167
169
  Live Preview
168
170
  </h3>
169
- <div className="flex h-32 items-center justify-center rounded-lg border border-white/10 bg-white/5">
170
- <button className="rounded-lg border border-indigo-500/20 bg-indigo-500/10 p-3 transition-colors hover:bg-indigo-500/20">
171
- <CameraIcon className="h-6 w-6 text-indigo-400" />
171
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary flex h-32 items-center justify-center rounded-lg border">
172
+ <button className="border-fm-icon-info/20 bg-fm-icon-info/10 hover:bg-fm-icon-info/20 rounded-lg border p-3 transition-colors">
173
+ <CameraIcon className="text-fm-icon-info h-6 w-6" />
172
174
  </button>
173
175
  </div>
174
176
  </div>
@@ -177,122 +179,130 @@ function VideoCall() {
177
179
 
178
180
  {/* Props Documentation */}
179
181
  <div className="!space-y-8">
180
- <h2 className="text-center text-3xl font-bold !text-white">
182
+ <h2 className="text-fm-icon-active! text-center text-3xl font-bold">
181
183
  Props & Configuration
182
184
  </h2>
183
185
 
184
- <div className="overflow-hidden rounded-lg border border-white/10 bg-white/5">
185
- <div className="bg-white/5 p-4">
186
- <h3 className="text-xl font-semibold !text-white">Props</h3>
186
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary overflow-hidden rounded-lg border">
187
+ <div className="bg-fm-surface-secondary p-4">
188
+ <h3 className="text-fm-icon-active! text-xl font-semibold">
189
+ Props
190
+ </h3>
187
191
  </div>
188
192
  <table className="!my-0 w-full">
189
- <thead className="bg-white/5">
190
- <tr className="border-b border-white/10">
191
- <th className="px-6 py-4 text-left text-sm font-semibold !text-white">
193
+ <thead className="bg-fm-surface-secondary">
194
+ <tr className="border-fm-divider-secondary border-b">
195
+ <th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
192
196
  Prop
193
197
  </th>
194
- <th className="px-6 py-4 text-left text-sm font-semibold !text-white">
198
+ <th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
195
199
  Type
196
200
  </th>
197
- <th className="px-6 py-4 text-left text-sm font-semibold !text-white">
201
+ <th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
198
202
  Default
199
203
  </th>
200
- <th className="px-6 py-4 text-left text-sm font-semibold !text-white">
204
+ <th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
201
205
  Description
202
206
  </th>
203
207
  </tr>
204
208
  </thead>
205
209
  <tbody>
206
210
  {" "}
207
- <tr className="!bg-black/10">
208
- <td className="px-6 py-4 font-mono text-sm !text-blue-300">
211
+ <tr className="bg-fm-surface-secondary!">
212
+ <td className="text-fm-icon-info! px-6 py-4 font-mono text-sm">
209
213
  withAccessibility
210
214
  </td>
211
- <td className="px-6 py-4 text-sm !text-white/70">
215
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
212
216
  boolean
213
217
  </td>
214
- <td className="px-6 py-4 text-sm !text-white/50">
218
+ <td className="text-fm-placeholder! px-6 py-4 text-sm">
215
219
  true
216
220
  </td>
217
- <td className="px-6 py-4 text-sm !text-white/70">
221
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
218
222
  Whether to wrap the icon with accessibility feature
219
223
  </td>
220
224
  </tr>
221
- <tr className="border-b border-white/5 !bg-black/10">
222
- <td className="px-6 py-4 font-mono text-sm !text-indigo-300">
225
+ <tr className="border-fm-divider-tertiary bg-fm-surface-secondary! border-b">
226
+ <td className="text-fm-icon-info! px-6 py-4 font-mono text-sm">
223
227
  height
224
228
  </td>
225
- <td className="px-6 py-4 text-sm !text-white/70">
229
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
226
230
  number | string
227
231
  </td>
228
- <td className="px-6 py-4 text-sm !text-white/50">24</td>
229
- <td className="px-6 py-4 text-sm !text-white/70">
232
+ <td className="text-fm-placeholder! px-6 py-4 text-sm">
233
+ 24
234
+ </td>
235
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
230
236
  Height of the icon in pixels
231
237
  </td>
232
238
  </tr>
233
- <tr className="border-b border-white/5">
234
- <td className="px-6 py-4 font-mono text-sm !text-indigo-300">
239
+ <tr className="border-fm-divider-tertiary border-b">
240
+ <td className="text-fm-icon-info! px-6 py-4 font-mono text-sm">
235
241
  stroke
236
242
  </td>
237
- <td className="px-6 py-4 text-sm !text-white/70">
243
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
238
244
  string
239
245
  </td>
240
- <td className="px-6 py-4 text-sm !text-white/50">
246
+ <td className="text-fm-placeholder! px-6 py-4 text-sm">
241
247
  currentColor
242
248
  </td>
243
- <td className="px-6 py-4 text-sm !text-white/70">
249
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
244
250
  Stroke color of the icon
245
251
  </td>
246
252
  </tr>
247
- <tr className="border-b border-white/5 !bg-black/10">
248
- <td className="px-6 py-4 font-mono text-sm !text-indigo-300">
253
+ <tr className="border-fm-divider-tertiary bg-fm-surface-secondary! border-b">
254
+ <td className="text-fm-icon-info! px-6 py-4 font-mono text-sm">
249
255
  strokeWidth
250
256
  </td>
251
- <td className="px-6 py-4 text-sm !text-white/70">
257
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
252
258
  string | number
253
259
  </td>
254
- <td className="px-6 py-4 text-sm !text-white/50">
260
+ <td className="text-fm-placeholder! px-6 py-4 text-sm">
255
261
  1.5
256
262
  </td>
257
- <td className="px-6 py-4 text-sm !text-white/70">
263
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
258
264
  Width of the stroke
259
265
  </td>
260
266
  </tr>
261
- <tr className="border-b border-white/5">
262
- <td className="px-6 py-4 font-mono text-sm !text-indigo-300">
267
+ <tr className="border-fm-divider-tertiary border-b">
268
+ <td className="text-fm-icon-info! px-6 py-4 font-mono text-sm">
263
269
  strokeLinecap
264
270
  </td>
265
- <td className="px-6 py-4 text-sm !text-white/70">
271
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
266
272
  string
267
273
  </td>
268
- <td className="px-6 py-4 text-sm !text-white/50">
274
+ <td className="text-fm-placeholder! px-6 py-4 text-sm">
269
275
  round
270
276
  </td>
271
- <td className="px-6 py-4 text-sm !text-white/70">
277
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
272
278
  Style of line endings (round for smooth appearance)
273
279
  </td>
274
280
  </tr>
275
- <tr className="border-b border-white/5 !bg-black/10">
276
- <td className="px-6 py-4 font-mono text-sm !text-indigo-300">
281
+ <tr className="border-fm-divider-tertiary bg-fm-surface-secondary! border-b">
282
+ <td className="text-fm-icon-info! px-6 py-4 font-mono text-sm">
277
283
  className
278
284
  </td>
279
- <td className="px-6 py-4 text-sm !text-white/70">
285
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
280
286
  string
281
287
  </td>
282
- <td className="px-6 py-4 text-sm !text-white/50">-</td>
283
- <td className="px-6 py-4 text-sm !text-white/70">
288
+ <td className="text-fm-placeholder! px-6 py-4 text-sm">
289
+ -
290
+ </td>
291
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
284
292
  CSS classes for styling (use for overrides)
285
293
  </td>
286
294
  </tr>
287
- <tr className="!bg-black/10">
288
- <td className="px-6 py-4 font-mono text-sm !text-indigo-300">
295
+ <tr className="bg-fm-surface-secondary!">
296
+ <td className="text-fm-icon-info! px-6 py-4 font-mono text-sm">
289
297
  ...svgProps
290
298
  </td>
291
- <td className="px-6 py-4 text-sm !text-white/70">
299
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
292
300
  SVGProps
293
301
  </td>
294
- <td className="px-6 py-4 text-sm !text-white/50">-</td>
295
- <td className="px-6 py-4 text-sm !text-white/70">
302
+ <td className="text-fm-placeholder! px-6 py-4 text-sm">
303
+ -
304
+ </td>
305
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
296
306
  All standard SVG element props
297
307
  </td>
298
308
  </tr>
@@ -303,50 +313,62 @@ function VideoCall() {
303
313
 
304
314
  {/* Size Variations */}
305
315
  <div className="!space-y-8">
306
- <h2 className="text-center text-3xl font-bold !text-white">
316
+ <h2 className="text-fm-icon-active! text-center text-3xl font-bold">
307
317
  Size Variations
308
318
  </h2>
309
- <div className="rounded-lg border border-white/10 bg-white/5 p-8">
319
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-8">
310
320
  <div className="!space-y-6">
311
321
  <div className="grid grid-cols-1 gap-8 md:grid-cols-2">
312
322
  <div className="!space-y-4">
313
- <h3 className="text-lg font-semibold !text-indigo-300">
323
+ <h3 className="text-fm-icon-info! text-lg font-semibold">
314
324
  Standard Sizes
315
325
  </h3>
316
- <div className="flex items-end gap-6 rounded-lg bg-black/20 p-6">
326
+ <div className="bg-fm-surface-secondary flex items-end gap-6 rounded-lg p-6">
317
327
  <div className="text-center">
318
- <CameraIcon className="!mx-auto mb-2 h-3 w-3 text-indigo-400" />
319
- <span className="text-xs text-white/60">12px</span>
328
+ <CameraIcon className="text-fm-icon-info !mx-auto mb-2 h-3 w-3" />
329
+ <span className="text-fm-tertiary text-xs">
330
+ 12px
331
+ </span>
320
332
  </div>
321
333
  <div className="text-center">
322
- <CameraIcon className="!mx-auto mb-2 h-4 w-4 text-indigo-400" />
323
- <span className="text-xs text-white/60">16px</span>
334
+ <CameraIcon className="text-fm-icon-info !mx-auto mb-2 h-4 w-4" />
335
+ <span className="text-fm-tertiary text-xs">
336
+ 16px
337
+ </span>
324
338
  </div>
325
339
  <div className="text-center">
326
- <CameraIcon className="!mx-auto mb-2 h-5 w-5 text-indigo-400" />
327
- <span className="text-xs text-white/60">20px</span>
340
+ <CameraIcon className="text-fm-icon-info !mx-auto mb-2 h-5 w-5" />
341
+ <span className="text-fm-tertiary text-xs">
342
+ 20px
343
+ </span>
328
344
  </div>
329
345
  <div className="text-center">
330
- <CameraIcon className="!mx-auto mb-2 h-6 w-6 text-indigo-400" />
331
- <span className="text-xs text-white/60">24px</span>
346
+ <CameraIcon className="text-fm-icon-info !mx-auto mb-2 h-6 w-6" />
347
+ <span className="text-fm-tertiary text-xs">
348
+ 24px
349
+ </span>
332
350
  </div>
333
351
  <div className="text-center">
334
- <CameraIcon className="!mx-auto mb-2 h-8 w-8 text-indigo-400" />
335
- <span className="text-xs text-white/60">32px</span>
352
+ <CameraIcon className="text-fm-icon-info !mx-auto mb-2 h-8 w-8" />
353
+ <span className="text-fm-tertiary text-xs">
354
+ 32px
355
+ </span>
336
356
  </div>
337
357
  <div className="text-center">
338
- <CameraIcon className="!mx-auto mb-2 h-12 w-12 text-indigo-400" />
339
- <span className="text-xs text-white/60">48px</span>
358
+ <CameraIcon className="text-fm-icon-info !mx-auto mb-2 h-12 w-12" />
359
+ <span className="text-fm-tertiary text-xs">
360
+ 48px
361
+ </span>
340
362
  </div>
341
363
  </div>
342
364
  </div>
343
365
 
344
366
  <div className="!space-y-4">
345
- <h3 className="text-lg font-semibold !text-indigo-300">
367
+ <h3 className="text-fm-icon-info! text-lg font-semibold">
346
368
  Code Example
347
369
  </h3>
348
- <div className="rounded-lg bg-black/40 p-4">
349
- <pre className="overflow-x-auto text-sm !text-cyan-300">
370
+ <div className="bg-fm-surface-secondary rounded-lg p-4">
371
+ <pre className="text-fm-icon-info! overflow-x-auto text-sm">
350
372
  {`// Small (16px) - compact controls
351
373
  <CameraIcon className="h-4 w-4" />
352
374
 
@@ -368,56 +390,56 @@ function VideoCall() {
368
390
 
369
391
  {/* Color Variations */}
370
392
  <div className="!space-y-8">
371
- <h2 className="text-center text-3xl font-bold !text-white">
393
+ <h2 className="text-fm-icon-active! text-center text-3xl font-bold">
372
394
  Color Variations
373
395
  </h2>
374
396
  <div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
375
397
  <div className="!space-y-4">
376
- <h3 className="text-lg font-semibold !text-indigo-300">
398
+ <h3 className="text-fm-icon-info! text-lg font-semibold">
377
399
  Semantic Colors
378
400
  </h3>
379
- <div className="!space-y-4 rounded-lg border border-white/10 bg-white/5 p-6">
401
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
380
402
  <div className="flex items-center gap-4">
381
- <CameraIcon className="h-6 w-6 text-indigo-400" />
403
+ <CameraIcon className="text-fm-icon-info h-6 w-6" />
382
404
  <div>
383
- <div className="text-sm font-medium text-white">
405
+ <div className="text-fm-icon-active text-sm font-medium">
384
406
  Video Call
385
407
  </div>
386
- <div className="text-xs text-white/60">
387
- text-indigo-400
408
+ <div className="text-fm-tertiary text-xs">
409
+ text-fm-icon-info
388
410
  </div>
389
411
  </div>
390
412
  </div>
391
413
  <div className="flex items-center gap-4">
392
- <CameraIcon className="h-6 w-6 text-blue-400" />
414
+ <CameraIcon 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
  Live Stream
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
- <CameraIcon className="h-6 w-6 text-emerald-400" />
425
+ <CameraIcon 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
  Recording Active
407
429
  </div>
408
- <div className="text-xs text-white/60">
409
- text-emerald-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
- <CameraIcon className="h-6 w-6 text-red-400" />
436
+ <CameraIcon className="text-fm-icon-negative 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
  Camera Off
418
440
  </div>
419
- <div className="text-xs text-white/60">
420
- text-red-400
441
+ <div className="text-fm-tertiary text-xs">
442
+ text-fm-icon-negative
421
443
  </div>
422
444
  </div>
423
445
  </div>
@@ -425,11 +447,11 @@ function VideoCall() {
425
447
  </div>
426
448
 
427
449
  <div className="!space-y-4">
428
- <h3 className="text-lg font-semibold !text-indigo-300">
450
+ <h3 className="text-fm-icon-info! text-lg font-semibold">
429
451
  Custom Colors
430
452
  </h3>
431
- <div className="rounded-lg bg-black/40 p-4">
432
- <pre className="overflow-x-auto text-sm !text-green-300">
453
+ <div className="bg-fm-surface-secondary rounded-lg p-4">
454
+ <pre className="text-fm-icon-positive! overflow-x-auto text-sm">
433
455
  {`// Using Tailwind classes
434
456
  <CameraIcon className="h-6 w-6 text-indigo-400" />
435
457
  <CameraIcon className="h-6 w-6 text-blue-500" />
@@ -454,63 +476,63 @@ function VideoCall() {
454
476
 
455
477
  {/* Usage Examples */}
456
478
  <div className="!space-y-8">
457
- <h2 className="text-center text-3xl font-bold !text-white">
479
+ <h2 className="text-fm-icon-active! text-center text-3xl font-bold">
458
480
  Usage Examples
459
481
  </h2>
460
482
 
461
483
  <div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
462
484
  {/* Video Call Interface */}
463
485
  <div className="!space-y-4">
464
- <h3 className="text-lg font-semibold !text-indigo-300">
486
+ <h3 className="text-fm-icon-info! text-lg font-semibold">
465
487
  Video Call Interface
466
488
  </h3>
467
489
  <div className="!space-y-4">
468
- <div className="rounded-lg border border-white/10 bg-white/5 p-6">
469
- <div className="relative mb-4 aspect-video overflow-hidden rounded-lg bg-gradient-to-br from-gray-900 to-gray-800">
470
- <div className="absolute inset-4 rounded-lg border border-white/10 bg-gray-800">
490
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
491
+ <div className="from-fm-surface-primary to-fm-surface-secondary relative mb-4 aspect-video overflow-hidden rounded-lg bg-linear-to-br">
492
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary absolute inset-4 rounded-lg border">
471
493
  <div className="absolute top-4 left-4 flex items-center gap-2">
472
- <div className="h-3 w-3 animate-pulse rounded-full bg-emerald-500"></div>
473
- <span className="text-xs text-white/60">
494
+ <div className="bg-fm-icon-positive h-3 w-3 animate-pulse rounded-full"></div>
495
+ <span className="text-fm-tertiary text-xs">
474
496
  Live
475
497
  </span>
476
498
  </div>
477
499
  <div className="absolute inset-0 flex items-center justify-center">
478
- <div className="flex h-16 w-16 items-center justify-center rounded-full bg-white/10">
500
+ <div className="bg-fm-surface-secondary flex h-16 w-16 items-center justify-center rounded-full">
479
501
  <span className="text-2xl">👤</span>
480
502
  </div>
481
503
  </div>
482
504
  </div>
483
505
  <div className="absolute bottom-4 left-1/2 -translate-x-1/2">
484
- <div className="flex items-center gap-3 rounded-lg bg-black/60 p-3">
485
- <button className="rounded-lg border border-indigo-500/30 bg-indigo-500/20 p-2 transition-colors hover:bg-indigo-500/30">
486
- <CameraIcon className="h-5 w-5 text-indigo-400" />
506
+ <div className="bg-fm-surface-secondary flex items-center gap-3 rounded-lg p-3">
507
+ <button className="border-fm-icon-info/30 bg-fm-icon-info/20 hover:bg-fm-icon-info/30 rounded-lg border p-2 transition-colors">
508
+ <CameraIcon className="text-fm-icon-info h-5 w-5" />
487
509
  </button>
488
- <button className="rounded-lg border border-white/20 bg-white/10 p-2 transition-colors hover:bg-white/20">
510
+ <button className="border-fm-divider-primary bg-fm-surface-secondary hover:bg-fm-divider-primary rounded-lg border p-2 transition-colors">
489
511
  <div className="relative h-5 w-5">
490
- <div className="absolute inset-0 rounded-full bg-white"></div>
491
- <div className="absolute top-1 left-1 h-3 w-3 rounded-full bg-gray-800"></div>
512
+ <div className="bg-fm-surface-contrast absolute inset-0 rounded-full"></div>
513
+ <div className="bg-fm-surface-secondary absolute top-1 left-1 h-3 w-3 rounded-full"></div>
492
514
  </div>
493
515
  </button>
494
- <button className="rounded-lg border border-red-500/30 bg-red-500/20 p-2 transition-colors hover:bg-red-500/30">
516
+ <button className="border-fm-icon-negative/30 bg-fm-icon-negative/20 hover:bg-fm-icon-negative/30 rounded-lg border p-2 transition-colors">
495
517
  <div className="relative h-5 w-5">
496
- <div className="absolute inset-0 rotate-45 border-2 border-red-400"></div>
497
- <div className="absolute inset-0 -rotate-45 border-2 border-red-400"></div>
518
+ <div className="border-fm-icon-negative absolute inset-0 rotate-45 border-2"></div>
519
+ <div className="border-fm-icon-negative absolute inset-0 -rotate-45 border-2"></div>
498
520
  </div>
499
521
  </button>
500
522
  </div>
501
523
  </div>
502
524
  </div>
503
525
  <div className="text-center">
504
- <div className="text-sm font-medium text-white">
526
+ <div className="text-fm-icon-active text-sm font-medium">
505
527
  "Team Standup Meeting"
506
528
  </div>
507
- <div className="text-xs text-white/60">
529
+ <div className="text-fm-tertiary text-xs">
508
530
  Camera enabled for video call
509
531
  </div>
510
532
  </div>
511
533
  </div>
512
- <div className="rounded-lg bg-black/40 p-4">
513
- <pre className="overflow-x-auto text-sm !text-green-300">
534
+ <div className="bg-fm-surface-secondary rounded-lg p-4">
535
+ <pre className="text-fm-icon-positive! overflow-x-auto text-sm">
514
536
  {`// Video call interface with camera controls
515
537
  <div className="video-call-interface">
516
538
  <div className="video-container">
@@ -539,64 +561,68 @@ function VideoCall() {
539
561
 
540
562
  {/* Streaming Dashboard */}
541
563
  <div className="!space-y-4">
542
- <h3 className="text-lg font-semibold !text-indigo-300">
564
+ <h3 className="text-fm-icon-info! text-lg font-semibold">
543
565
  Live Streaming Dashboard
544
566
  </h3>
545
567
  <div className="!space-y-4">
546
- <div className="rounded-lg border border-white/10 bg-white/5 p-6">
547
- <div className="overflow-hidden rounded-lg border border-white/20 bg-black/50">
548
- <div className="flex items-center justify-between border-b border-white/10 bg-white/5 p-4">
568
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
569
+ <div className="border-fm-divider-primary bg-fm-surface-secondary overflow-hidden rounded-lg border">
570
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary flex items-center justify-between border-b p-4">
549
571
  <div className="flex items-center gap-3">
550
572
  <div className="flex items-center gap-2">
551
- <div className="h-3 w-3 animate-pulse rounded-full bg-red-500"></div>
552
- <span className="text-sm text-white">LIVE</span>
573
+ <div className="bg-fm-icon-negative h-3 w-3 animate-pulse rounded-full"></div>
574
+ <span className="text-fm-icon-active text-sm">
575
+ LIVE
576
+ </span>
553
577
  </div>
554
- <span className="text-sm text-white/60">•</span>
555
- <span className="text-sm text-white/60">
578
+ <span className="text-fm-tertiary text-sm">
579
+
580
+ </span>
581
+ <span className="text-fm-tertiary text-sm">
556
582
  1,247 viewers
557
583
  </span>
558
584
  </div>
559
585
  <div className="flex items-center gap-2">
560
- <button className="rounded border border-indigo-500/30 bg-indigo-500/20 p-2 transition-colors hover:bg-indigo-500/30">
561
- <CameraIcon className="h-4 w-4 text-indigo-400" />
586
+ <button className="border-fm-icon-info/30 bg-fm-icon-info/20 hover:bg-fm-icon-info/30 rounded border p-2 transition-colors">
587
+ <CameraIcon className="text-fm-icon-info h-4 w-4" />
562
588
  </button>
563
- <button className="rounded border border-white/20 bg-white/10 p-2 transition-colors hover:bg-white/20">
589
+ <button className="border-fm-divider-primary bg-fm-surface-secondary hover:bg-fm-divider-primary rounded border p-2 transition-colors">
564
590
  <span className="text-xs">⚙️</span>
565
591
  </button>
566
592
  </div>
567
593
  </div>
568
594
  <div className="p-6">
569
595
  <div className="mb-4 grid grid-cols-2 gap-4">
570
- <div className="rounded-lg bg-black/30 p-4 text-center">
571
- <div className="text-lg font-bold text-emerald-400">
596
+ <div className="bg-fm-surface-secondary rounded-lg p-4 text-center">
597
+ <div className="text-fm-icon-positive text-lg font-bold">
572
598
  1080p
573
599
  </div>
574
- <div className="text-xs text-white/60">
600
+ <div className="text-fm-tertiary text-xs">
575
601
  Video Quality
576
602
  </div>
577
603
  </div>
578
- <div className="rounded-lg bg-black/30 p-4 text-center">
579
- <div className="text-lg font-bold text-blue-400">
604
+ <div className="bg-fm-surface-secondary rounded-lg p-4 text-center">
605
+ <div className="text-fm-icon-info text-lg font-bold">
580
606
  60fps
581
607
  </div>
582
- <div className="text-xs text-white/60">
608
+ <div className="text-fm-tertiary text-xs">
583
609
  Frame Rate
584
610
  </div>
585
611
  </div>
586
612
  </div>
587
613
  <div className="text-center">
588
- <div className="text-sm font-medium text-white">
614
+ <div className="text-fm-icon-active text-sm font-medium">
589
615
  Stream Status: Active
590
616
  </div>
591
- <div className="text-xs text-white/60">
617
+ <div className="text-fm-tertiary text-xs">
592
618
  Camera feed broadcasting
593
619
  </div>
594
620
  </div>
595
621
  </div>
596
622
  </div>
597
623
  </div>
598
- <div className="rounded-lg bg-black/40 p-4">
599
- <pre className="overflow-x-auto text-sm !text-green-300">
624
+ <div className="bg-fm-surface-secondary rounded-lg p-4">
625
+ <pre className="text-fm-icon-positive! overflow-x-auto text-sm">
600
626
  {`// Live streaming dashboard
601
627
  <div className="streaming-dashboard">
602
628
  <div className="stream-header">
@@ -628,73 +654,73 @@ function VideoCall() {
628
654
 
629
655
  {/* Content Creation Studio */}
630
656
  <div className="!space-y-4">
631
- <h3 className="text-lg font-semibold !text-indigo-300">
657
+ <h3 className="text-fm-icon-info! text-lg font-semibold">
632
658
  Content Creation Studio
633
659
  </h3>
634
660
  <div className="!space-y-4">
635
- <div className="rounded-lg border border-white/10 bg-white/5 p-6">
636
- <div className="rounded-lg border border-white/20 bg-black/50 p-6">
661
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
662
+ <div className="border-fm-divider-primary bg-fm-surface-secondary rounded-lg border p-6">
637
663
  <div className="mb-6 flex items-start justify-between">
638
664
  <div>
639
- <h4 className="text-lg font-semibold text-white">
665
+ <h4 className="text-fm-icon-active text-lg font-semibold">
640
666
  Recording Studio
641
667
  </h4>
642
- <p className="text-sm text-white/60">
668
+ <p className="text-fm-tertiary text-sm">
643
669
  Professional video production
644
670
  </p>
645
671
  </div>
646
672
  <div className="flex items-center gap-2">
647
- <span className="rounded border border-red-500/30 bg-red-500/20 px-2 py-1 text-xs text-red-400">
673
+ <span className="border-fm-icon-negative/30 bg-fm-icon-negative/20 text-fm-icon-negative rounded border px-2 py-1 text-xs">
648
674
  REC
649
675
  </span>
650
676
  </div>
651
677
  </div>
652
678
  <div className="mb-6 grid grid-cols-3 gap-4">
653
- <div className="rounded-lg bg-white/5 p-4 text-center">
654
- <CameraIcon className="mx-auto mb-2 h-8 w-8 text-indigo-400" />
655
- <div className="text-sm font-medium text-white">
679
+ <div className="bg-fm-surface-secondary rounded-lg p-4 text-center">
680
+ <CameraIcon className="text-fm-icon-info mx-auto mb-2 h-8 w-8" />
681
+ <div className="text-fm-icon-active text-sm font-medium">
656
682
  Main Camera
657
683
  </div>
658
- <div className="text-xs text-emerald-400">
684
+ <div className="text-fm-icon-positive text-xs">
659
685
  Active
660
686
  </div>
661
687
  </div>
662
- <div className="rounded-lg bg-white/5 p-4 text-center">
663
- <CameraIcon className="mx-auto mb-2 h-8 w-8 text-white/40" />
664
- <div className="text-sm font-medium text-white">
688
+ <div className="bg-fm-surface-secondary rounded-lg p-4 text-center">
689
+ <CameraIcon className="text-fm-placeholder mx-auto mb-2 h-8 w-8" />
690
+ <div className="text-fm-icon-active text-sm font-medium">
665
691
  Side Angle
666
692
  </div>
667
- <div className="text-xs text-white/40">
693
+ <div className="text-fm-placeholder text-xs">
668
694
  Standby
669
695
  </div>
670
696
  </div>
671
- <div className="rounded-lg bg-white/5 p-4 text-center">
672
- <CameraIcon className="mx-auto mb-2 h-8 w-8 text-white/40" />
673
- <div className="text-sm font-medium text-white">
697
+ <div className="bg-fm-surface-secondary rounded-lg p-4 text-center">
698
+ <CameraIcon className="text-fm-placeholder mx-auto mb-2 h-8 w-8" />
699
+ <div className="text-fm-icon-active text-sm font-medium">
674
700
  Overhead
675
701
  </div>
676
- <div className="text-xs text-white/40">
702
+ <div className="text-fm-placeholder text-xs">
677
703
  Standby
678
704
  </div>
679
705
  </div>
680
706
  </div>
681
707
  <div className="flex items-center justify-between">
682
708
  <div className="flex items-center gap-3">
683
- <button className="rounded border border-red-500/30 bg-red-500/20 px-4 py-2 text-red-400 transition-colors hover:bg-red-500/30">
709
+ <button className="border-fm-icon-negative/30 bg-fm-icon-negative/20 text-fm-icon-negative hover:bg-fm-icon-negative/30 rounded border px-4 py-2 transition-colors">
684
710
  Stop Recording
685
711
  </button>
686
- <button className="rounded border border-white/20 bg-white/10 px-4 py-2 text-white transition-colors hover:bg-white/20">
712
+ <button className="border-fm-divider-primary bg-fm-surface-secondary text-fm-icon-active hover:bg-fm-divider-primary rounded border px-4 py-2 transition-colors">
687
713
  Pause
688
714
  </button>
689
715
  </div>
690
- <div className="text-sm text-white/60">
716
+ <div className="text-fm-tertiary text-sm">
691
717
  Recording: 12:34
692
718
  </div>
693
719
  </div>
694
720
  </div>
695
721
  </div>
696
- <div className="rounded-lg bg-black/40 p-4">
697
- <pre className="overflow-x-auto text-sm !text-green-300">
722
+ <div className="bg-fm-surface-secondary rounded-lg p-4">
723
+ <pre className="text-fm-icon-positive! overflow-x-auto text-sm">
698
724
  {`// Multi-camera content creation studio
699
725
  <div className="recording-studio">
700
726
  <div className="studio-header">
@@ -727,72 +753,72 @@ function VideoCall() {
727
753
 
728
754
  {/* Security Camera System */}
729
755
  <div className="!space-y-4">
730
- <h3 className="text-lg font-semibold !text-indigo-300">
756
+ <h3 className="text-fm-icon-info! text-lg font-semibold">
731
757
  Security Camera System
732
758
  </h3>
733
759
  <div className="!space-y-4">
734
- <div className="rounded-lg border border-white/10 bg-white/5 p-6">
735
- <div className="rounded-lg bg-black/30 p-4">
760
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
761
+ <div className="bg-fm-surface-secondary rounded-lg p-4">
736
762
  <div className="mb-4 flex items-center justify-between">
737
- <h4 className="text-sm font-semibold text-white">
763
+ <h4 className="text-fm-icon-active text-sm font-semibold">
738
764
  Security Monitor
739
765
  </h4>
740
766
  <div className="flex items-center gap-2">
741
- <div className="h-2 w-2 animate-pulse rounded-full bg-emerald-500"></div>
742
- <span className="text-xs text-white/60">
767
+ <div className="bg-fm-icon-positive h-2 w-2 animate-pulse rounded-full"></div>
768
+ <span className="text-fm-tertiary text-xs">
743
769
  All systems operational
744
770
  </span>
745
771
  </div>
746
772
  </div>
747
773
  <div className="grid grid-cols-2 gap-3">
748
- <div className="rounded border border-white/10 bg-black/50 p-3">
774
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded border p-3">
749
775
  <div className="mb-2 flex items-center justify-between">
750
- <span className="text-xs text-white/60">
776
+ <span className="text-fm-tertiary text-xs">
751
777
  Camera 01
752
778
  </span>
753
- <CameraIcon className="h-3 w-3 text-emerald-400" />
779
+ <CameraIcon className="text-fm-icon-positive h-3 w-3" />
754
780
  </div>
755
- <div className="flex aspect-video items-center justify-center rounded-sm bg-gray-800">
756
- <span className="text-xs text-white/40">
781
+ <div className="bg-fm-surface-secondary flex aspect-video items-center justify-center rounded-sm">
782
+ <span className="text-fm-placeholder text-xs">
757
783
  Front Entrance
758
784
  </span>
759
785
  </div>
760
786
  </div>
761
- <div className="rounded border border-white/10 bg-black/50 p-3">
787
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded border p-3">
762
788
  <div className="mb-2 flex items-center justify-between">
763
- <span className="text-xs text-white/60">
789
+ <span className="text-fm-tertiary text-xs">
764
790
  Camera 02
765
791
  </span>
766
- <CameraIcon className="h-3 w-3 text-emerald-400" />
792
+ <CameraIcon className="text-fm-icon-positive h-3 w-3" />
767
793
  </div>
768
- <div className="flex aspect-video items-center justify-center rounded-sm bg-gray-800">
769
- <span className="text-xs text-white/40">
794
+ <div className="bg-fm-surface-secondary flex aspect-video items-center justify-center rounded-sm">
795
+ <span className="text-fm-placeholder text-xs">
770
796
  Parking Lot
771
797
  </span>
772
798
  </div>
773
799
  </div>
774
- <div className="rounded border border-white/10 bg-black/50 p-3">
800
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded border p-3">
775
801
  <div className="mb-2 flex items-center justify-between">
776
- <span className="text-xs text-white/60">
802
+ <span className="text-fm-tertiary text-xs">
777
803
  Camera 03
778
804
  </span>
779
- <CameraIcon className="h-3 w-3 text-red-400" />
805
+ <CameraIcon className="text-fm-icon-negative h-3 w-3" />
780
806
  </div>
781
- <div className="flex aspect-video items-center justify-center rounded-sm bg-gray-800">
782
- <span className="text-xs text-red-400">
807
+ <div className="bg-fm-surface-secondary flex aspect-video items-center justify-center rounded-sm">
808
+ <span className="text-fm-icon-negative text-xs">
783
809
  Offline
784
810
  </span>
785
811
  </div>
786
812
  </div>
787
- <div className="rounded border border-white/10 bg-black/50 p-3">
813
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded border p-3">
788
814
  <div className="mb-2 flex items-center justify-between">
789
- <span className="text-xs text-white/60">
815
+ <span className="text-fm-tertiary text-xs">
790
816
  Camera 04
791
817
  </span>
792
- <CameraIcon className="h-3 w-3 text-emerald-400" />
818
+ <CameraIcon className="text-fm-icon-positive h-3 w-3" />
793
819
  </div>
794
- <div className="flex aspect-video items-center justify-center rounded-sm bg-gray-800">
795
- <span className="text-xs text-white/40">
820
+ <div className="bg-fm-surface-secondary flex aspect-video items-center justify-center rounded-sm">
821
+ <span className="text-fm-placeholder text-xs">
796
822
  Back Exit
797
823
  </span>
798
824
  </div>
@@ -800,8 +826,8 @@ function VideoCall() {
800
826
  </div>
801
827
  </div>
802
828
  </div>
803
- <div className="rounded-lg bg-black/40 p-4">
804
- <pre className="overflow-x-auto text-sm !text-green-300">
829
+ <div className="bg-fm-surface-secondary rounded-lg p-4">
830
+ <pre className="text-fm-icon-positive! overflow-x-auto text-sm">
805
831
  {`// Security camera monitoring system
806
832
  <div className="security-monitor">
807
833
  <div className="monitor-header">
@@ -838,66 +864,66 @@ function VideoCall() {
838
864
 
839
865
  {/* Accessibility */}
840
866
  <div className="!space-y-8">
841
- <h2 className="text-center text-3xl font-bold !text-white">
867
+ <h2 className="text-fm-icon-active! text-center text-3xl font-bold">
842
868
  Accessibility Features
843
869
  </h2>
844
870
  <div className="grid grid-cols-1 gap-8 md:grid-cols-2">
845
- <div className="!space-y-4 rounded-lg border border-white/10 bg-white/5 p-6">
846
- <h3 className="text-lg font-semibold !text-green-300">
871
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
872
+ <h3 className="text-fm-icon-positive! text-lg font-semibold">
847
873
  ✅ Built-in Features
848
874
  </h3>
849
- <ul className="!space-y-2 text-sm !text-white/70">
850
- <li className="!text-white/70">
875
+ <ul className="text-fm-secondary! !space-y-2 text-sm">
876
+ <li className="text-fm-secondary!">
851
877
  Uses Radix UI AccessibleIcon wrapper
852
878
  </li>
853
- <li className="!text-white/70">
879
+ <li className="text-fm-secondary!">
854
880
  Provides screen reader label "Camera icon"
855
881
  </li>
856
- <li className="!text-white/70">
882
+ <li className="text-fm-secondary!">
857
883
  Supports keyboard navigation when interactive
858
884
  </li>
859
- <li className="!text-white/70">
885
+ <li className="text-fm-secondary!">
860
886
  Maintains proper color contrast ratios
861
887
  </li>
862
- <li className="!text-white/70">
888
+ <li className="text-fm-secondary!">
863
889
  Uses round strokeLinecap for smooth visual appearance
864
890
  </li>
865
891
  </ul>
866
892
  </div>
867
893
 
868
- <div className="!space-y-4 rounded-lg border border-white/10 bg-white/5 p-6">
869
- <h3 className="text-lg font-semibold !text-indigo-300">
894
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
895
+ <h3 className="text-fm-icon-info! text-lg font-semibold">
870
896
  💡 Best Practices
871
897
  </h3>
872
- <ul className="!space-y-2 text-sm text-white/70">
873
- <li className="!text-white/70">
898
+ <ul className="text-fm-secondary !space-y-2 text-sm">
899
+ <li className="text-fm-secondary!">
874
900
  Always provide descriptive aria-labels for camera
875
901
  controls
876
902
  </li>
877
- <li className="!text-white/70">
903
+ <li className="text-fm-secondary!">
878
904
  Use color coding to indicate camera status (green=on,
879
905
  red=off)
880
906
  </li>
881
- <li className="!text-white/70">
907
+ <li className="text-fm-secondary!">
882
908
  Ensure sufficient touch target size (44px minimum)
883
909
  </li>
884
- <li className="!text-white/70">
910
+ <li className="text-fm-secondary!">
885
911
  Provide visual feedback for camera state changes
886
912
  </li>
887
- <li className="!text-white/70">
913
+ <li className="text-fm-secondary!">
888
914
  Consider privacy notifications when camera is active
889
915
  </li>
890
916
  </ul>
891
917
  </div>
892
918
  </div>
893
919
 
894
- <div className="rounded-lg border border-white/10 bg-white/5 p-6">
895
- <h3 className="mb-4 text-lg font-semibold !text-blue-300">
920
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
921
+ <h3 className="text-fm-icon-info! mb-4 text-lg font-semibold">
896
922
  Proper ARIA Implementation
897
923
  </h3>
898
924
  <div className="grid grid-cols-1 gap-6 lg:grid-cols-2">
899
- <div className="rounded-lg bg-black/40 p-4">
900
- <pre className="overflow-x-auto text-sm !text-cyan-300">
925
+ <div className="bg-fm-surface-secondary rounded-lg p-4">
926
+ <pre className="text-fm-icon-info! overflow-x-auto text-sm">
901
927
  {`// Video call camera toggle
902
928
  <button
903
929
  aria-label={cameraEnabled ? 'Turn off camera' : 'Turn on camera'}
@@ -949,13 +975,13 @@ function VideoCall() {
949
975
  </pre>
950
976
  </div>
951
977
  <div className="!space-y-4">
952
- <p className="text-sm !text-white/70">
978
+ <p className="text-fm-secondary! text-sm">
953
979
  When using CameraIcon for video controls, always provide
954
980
  clear context about the camera's current state and what
955
981
  action the control will perform.
956
982
  </p>
957
- <div className="rounded-lg border border-indigo-500/20 bg-indigo-500/10 p-4">
958
- <div className="flex items-center gap-2 text-sm text-indigo-200">
983
+ <div className="border-fm-icon-info/20 bg-fm-icon-info/10 rounded-lg border p-4">
984
+ <div className="text-fm-icon-info flex items-center gap-2 text-sm">
959
985
  <CameraIcon className="h-4 w-4" />
960
986
  <span>
961
987
  Consider privacy indicators when camera is active
@@ -969,52 +995,56 @@ function VideoCall() {
969
995
 
970
996
  {/* Related Icons */}
971
997
  <div className="!space-y-8">
972
- <h2 className="text-center text-3xl font-bold !text-white">
998
+ <h2 className="text-fm-icon-active! text-center text-3xl font-bold">
973
999
  Related Icons
974
1000
  </h2>
975
1001
  <div className="grid grid-cols-2 gap-6 md:grid-cols-4">
976
- <div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
977
- <div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-purple-500/20">
978
- <span className="!text-2xl !text-white">🎙️</span>
1002
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
1003
+ <div className="bg-fm-secondary-500/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
1004
+ <span className="text-fm-icon-active! !text-2xl">🎙️</span>
979
1005
  </div>
980
1006
  <div>
981
- <div className="font-medium text-white">
1007
+ <div className="text-fm-icon-active font-medium">
982
1008
  MicrophoneIcon
983
1009
  </div>
984
- <div className="text-xs text-white/60">
1010
+ <div className="text-fm-tertiary text-xs">
985
1011
  Audio recording
986
1012
  </div>
987
1013
  </div>
988
1014
  </div>
989
- <div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
990
- <div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-red-500/20">
991
- <span className="!text-2xl !text-white">⏺️</span>
1015
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
1016
+ <div className="bg-fm-icon-negative/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
1017
+ <span className="text-fm-icon-active! !text-2xl">⏺️</span>
992
1018
  </div>
993
1019
  <div>
994
- <div className="font-medium text-white">RecordIcon</div>
995
- <div className="text-xs text-white/60">
1020
+ <div className="text-fm-icon-active font-medium">
1021
+ RecordIcon
1022
+ </div>
1023
+ <div className="text-fm-tertiary text-xs">
996
1024
  Start recording
997
1025
  </div>
998
1026
  </div>
999
1027
  </div>
1000
- <div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
1001
- <div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-green-500/20">
1002
- <span className="!text-2xl !text-white">📹</span>
1028
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
1029
+ <div className="bg-fm-icon-positive/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
1030
+ <span className="text-fm-icon-active! !text-2xl">📹</span>
1003
1031
  </div>
1004
1032
  <div>
1005
- <div className="font-medium text-white">VideoIcon</div>
1006
- <div className="text-xs text-white/60">Video file</div>
1033
+ <div className="text-fm-icon-active font-medium">
1034
+ VideoIcon
1035
+ </div>
1036
+ <div className="text-fm-tertiary text-xs">Video file</div>
1007
1037
  </div>
1008
1038
  </div>
1009
- <div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
1010
- <div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-blue-500/20">
1011
- <span className="!text-2xl !text-white">📡</span>
1039
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
1040
+ <div className="bg-fm-icon-info/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
1041
+ <span className="text-fm-icon-active! !text-2xl">📡</span>
1012
1042
  </div>
1013
1043
  <div>
1014
- <div className="font-medium text-white">
1044
+ <div className="text-fm-icon-active font-medium">
1015
1045
  BroadcastIcon
1016
1046
  </div>
1017
- <div className="text-xs text-white/60">
1047
+ <div className="text-fm-tertiary text-xs">
1018
1048
  Live streaming
1019
1049
  </div>
1020
1050
  </div>
@@ -1024,14 +1054,14 @@ function VideoCall() {
1024
1054
  </div>
1025
1055
 
1026
1056
  {/* Footer */}
1027
- <div className="border-t border-white/10 bg-black/20 backdrop-blur-xl">
1057
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary border-t backdrop-blur-xl">
1028
1058
  <div className="!mx-auto max-w-7xl px-6 py-8">
1029
1059
  <div className="!space-y-4 text-center">
1030
- <p className="!text-white/60">
1060
+ <p className="text-fm-tertiary!">
1031
1061
  CameraIcon is part of the Aural UI icon library, built with
1032
1062
  accessibility and video production best practices in mind.
1033
1063
  </p>
1034
- <p className="text-sm !text-white/40">
1064
+ <p className="text-fm-placeholder! text-sm">
1035
1065
  All icons use Radix UI's AccessibleIcon for screen reader
1036
1066
  compatibility and follow WCAG guidelines for media controls
1037
1067
  and privacy considerations.
@@ -1090,20 +1120,20 @@ const storyParameters = {
1090
1120
  backgrounds: {
1091
1121
  default: "dark",
1092
1122
  values: [
1093
- { name: "dark", value: "#0a0a0a" },
1094
- { name: "darker", value: "#000000" },
1123
+ { name: "dark", value: "var(--color-fm-surface-primary)" },
1124
+ { name: "darker", value: "var(--color-fm-neutral-0)" },
1095
1125
  ],
1096
1126
  },
1097
1127
  }
1098
1128
 
1099
1129
  export const Default: Story = {
1100
1130
  args: {
1101
- className: "h-8 w-8 text-indigo-400",
1131
+ className: "h-8 w-8 text-fm-icon-info",
1102
1132
  withAccessibility: true,
1103
1133
  },
1104
1134
  parameters: storyParameters,
1105
1135
  render: (args) => (
1106
- <div className="flex h-32 min-h-dvh items-center justify-center rounded-lg bg-gradient-to-br from-gray-900 to-gray-800">
1136
+ <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">
1107
1137
  <CameraIcon {...args} />
1108
1138
  </div>
1109
1139
  ),
@@ -1120,30 +1150,30 @@ export const SizeVariations: Story = {
1120
1150
  },
1121
1151
  },
1122
1152
  render: () => (
1123
- <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">
1153
+ <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">
1124
1154
  <div className="text-center">
1125
- <CameraIcon className="!mx-auto mb-2 h-3 w-3 text-indigo-400" />
1126
- <span className="text-xs text-white/60">12px</span>
1155
+ <CameraIcon className="text-fm-icon-info !mx-auto mb-2 h-3 w-3" />
1156
+ <span className="text-fm-tertiary text-xs">12px</span>
1127
1157
  </div>
1128
1158
  <div className="text-center">
1129
- <CameraIcon className="!mx-auto mb-2 h-4 w-4 text-indigo-400" />
1130
- <span className="text-xs text-white/60">16px</span>
1159
+ <CameraIcon className="text-fm-icon-info !mx-auto mb-2 h-4 w-4" />
1160
+ <span className="text-fm-tertiary text-xs">16px</span>
1131
1161
  </div>
1132
1162
  <div className="text-center">
1133
- <CameraIcon className="!mx-auto mb-2 h-5 w-5 text-indigo-400" />
1134
- <span className="text-xs text-white/60">20px</span>
1163
+ <CameraIcon className="text-fm-icon-info !mx-auto mb-2 h-5 w-5" />
1164
+ <span className="text-fm-tertiary text-xs">20px</span>
1135
1165
  </div>
1136
1166
  <div className="text-center">
1137
- <CameraIcon className="!mx-auto mb-2 h-6 w-6 text-indigo-400" />
1138
- <span className="text-xs text-white/60">24px</span>
1167
+ <CameraIcon className="text-fm-icon-info !mx-auto mb-2 h-6 w-6" />
1168
+ <span className="text-fm-tertiary text-xs">24px</span>
1139
1169
  </div>
1140
1170
  <div className="text-center">
1141
- <CameraIcon className="!mx-auto mb-2 h-8 w-8 text-indigo-400" />
1142
- <span className="text-xs text-white/60">32px</span>
1171
+ <CameraIcon className="text-fm-icon-info !mx-auto mb-2 h-8 w-8" />
1172
+ <span className="text-fm-tertiary text-xs">32px</span>
1143
1173
  </div>
1144
1174
  <div className="text-center">
1145
- <CameraIcon className="!mx-auto mb-2 h-12 w-12 text-indigo-400" />
1146
- <span className="text-xs text-white/60">48px</span>
1175
+ <CameraIcon className="text-fm-icon-info !mx-auto mb-2 h-12 w-12" />
1176
+ <span className="text-fm-tertiary text-xs">48px</span>
1147
1177
  </div>
1148
1178
  </div>
1149
1179
  ),
@@ -1160,34 +1190,46 @@ export const ColorVariations: Story = {
1160
1190
  },
1161
1191
  },
1162
1192
  render: () => (
1163
- <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">
1193
+ <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">
1164
1194
  <div className="text-center">
1165
- <div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border border-indigo-500/30 bg-indigo-500/20">
1166
- <CameraIcon className="h-8 w-8 text-indigo-400" />
1195
+ <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">
1196
+ <CameraIcon className="text-fm-icon-info h-8 w-8" />
1167
1197
  </div>
1168
- <div className="text-sm font-medium text-white">Video Call</div>
1169
- <div className="text-xs text-indigo-400">text-indigo-400</div>
1198
+ <div className="text-fm-icon-active text-sm font-medium">
1199
+ Video Call
1200
+ </div>
1201
+ <div className="text-fm-icon-info text-xs">text-fm-icon-info</div>
1170
1202
  </div>
1171
1203
  <div className="text-center">
1172
- <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">
1173
- <CameraIcon className="h-8 w-8 text-blue-400" />
1204
+ <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">
1205
+ <CameraIcon className="text-fm-icon-info h-8 w-8" />
1206
+ </div>
1207
+ <div className="text-fm-icon-active text-sm font-medium">
1208
+ Live Stream
1174
1209
  </div>
1175
- <div className="text-sm font-medium text-white">Live Stream</div>
1176
- <div className="text-xs text-blue-400">text-blue-400</div>
1210
+ <div className="text-fm-icon-info text-xs">text-fm-icon-info</div>
1177
1211
  </div>
1178
1212
  <div className="text-center">
1179
- <div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border border-emerald-500/30 bg-emerald-500/20">
1180
- <CameraIcon className="h-8 w-8 text-emerald-400" />
1213
+ <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">
1214
+ <CameraIcon className="text-fm-icon-positive h-8 w-8" />
1215
+ </div>
1216
+ <div className="text-fm-icon-active text-sm font-medium">
1217
+ Recording Active
1218
+ </div>
1219
+ <div className="text-fm-icon-positive text-xs">
1220
+ text-fm-icon-positive
1181
1221
  </div>
1182
- <div className="text-sm font-medium text-white">Recording Active</div>
1183
- <div className="text-xs text-emerald-400">text-emerald-400</div>
1184
1222
  </div>
1185
1223
  <div className="text-center">
1186
- <div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border border-red-500/30 bg-red-500/20">
1187
- <CameraIcon className="h-8 w-8 text-red-400" />
1224
+ <div className="border-fm-icon-negative/30 bg-fm-icon-negative/20 !mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border">
1225
+ <CameraIcon className="text-fm-icon-negative h-8 w-8" />
1226
+ </div>
1227
+ <div className="text-fm-icon-active text-sm font-medium">
1228
+ Camera Off
1229
+ </div>
1230
+ <div className="text-fm-icon-negative text-xs">
1231
+ text-fm-icon-negative
1188
1232
  </div>
1189
- <div className="text-sm font-medium text-white">Camera Off</div>
1190
- <div className="text-xs text-red-400">text-red-400</div>
1191
1233
  </div>
1192
1234
  </div>
1193
1235
  ),
@@ -1204,25 +1246,27 @@ export const UsageExamples: Story = {
1204
1246
  },
1205
1247
  },
1206
1248
  render: () => (
1207
- <div className="min-h-dvh !space-y-8 rounded-lg bg-gradient-to-br from-gray-900 to-gray-800 p-8">
1249
+ <div className="from-fm-surface-primary to-fm-surface-secondary min-h-dvh !space-y-8 rounded-lg bg-linear-to-br p-8">
1208
1250
  {/* Video Call */}
1209
1251
  <div className="!space-y-2">
1210
- <h3 className="text-sm font-medium text-white">Video Call Interface</h3>
1211
- <div className="rounded-lg border border-white/10 bg-white/5 p-4">
1212
- <div className="flex items-center gap-3 rounded-lg bg-black/60 p-3">
1213
- <button className="rounded-lg border border-indigo-500/30 bg-indigo-500/20 p-2 transition-colors hover:bg-indigo-500/30">
1214
- <CameraIcon className="h-5 w-5 text-indigo-400" />
1252
+ <h3 className="text-fm-icon-active text-sm font-medium">
1253
+ Video Call Interface
1254
+ </h3>
1255
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-4">
1256
+ <div className="bg-fm-surface-secondary flex items-center gap-3 rounded-lg p-3">
1257
+ <button className="border-fm-icon-info/30 bg-fm-icon-info/20 hover:bg-fm-icon-info/30 rounded-lg border p-2 transition-colors">
1258
+ <CameraIcon className="text-fm-icon-info h-5 w-5" />
1215
1259
  </button>
1216
- <button className="rounded-lg border border-white/20 bg-white/10 p-2 transition-colors hover:bg-white/20">
1260
+ <button className="border-fm-divider-primary bg-fm-surface-secondary hover:bg-fm-divider-primary rounded-lg border p-2 transition-colors">
1217
1261
  <div className="relative h-5 w-5">
1218
- <div className="absolute inset-0 rounded-full bg-white"></div>
1219
- <div className="absolute top-1 left-1 h-3 w-3 rounded-full bg-gray-800"></div>
1262
+ <div className="bg-fm-surface-contrast absolute inset-0 rounded-full"></div>
1263
+ <div className="bg-fm-surface-secondary absolute top-1 left-1 h-3 w-3 rounded-full"></div>
1220
1264
  </div>
1221
1265
  </button>
1222
- <button className="rounded-lg border border-red-500/30 bg-red-500/20 p-2 transition-colors hover:bg-red-500/30">
1266
+ <button className="border-fm-icon-negative/30 bg-fm-icon-negative/20 hover:bg-fm-icon-negative/30 rounded-lg border p-2 transition-colors">
1223
1267
  <div className="relative h-5 w-5">
1224
- <div className="absolute inset-0 rotate-45 border-2 border-red-400"></div>
1225
- <div className="absolute inset-0 -rotate-45 border-2 border-red-400"></div>
1268
+ <div className="border-fm-icon-negative absolute inset-0 rotate-45 border-2"></div>
1269
+ <div className="border-fm-icon-negative absolute inset-0 -rotate-45 border-2"></div>
1226
1270
  </div>
1227
1271
  </button>
1228
1272
  </div>
@@ -1231,19 +1275,19 @@ export const UsageExamples: Story = {
1231
1275
 
1232
1276
  {/* Streaming Dashboard */}
1233
1277
  <div className="!space-y-2">
1234
- <h3 className="text-sm font-medium text-white">
1278
+ <h3 className="text-fm-icon-active text-sm font-medium">
1235
1279
  Live Streaming Dashboard
1236
1280
  </h3>
1237
- <div className="rounded-lg border border-white/10 bg-white/5 p-4">
1238
- <div className="flex items-center justify-between rounded bg-white/5 p-3">
1281
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-4">
1282
+ <div className="bg-fm-surface-secondary flex items-center justify-between rounded p-3">
1239
1283
  <div className="flex items-center gap-3">
1240
- <div className="h-3 w-3 animate-pulse rounded-full bg-red-500"></div>
1241
- <span className="text-sm text-white">LIVE</span>
1242
- <span className="text-sm text-white/60">1,247 viewers</span>
1284
+ <div className="bg-fm-icon-negative h-3 w-3 animate-pulse rounded-full"></div>
1285
+ <span className="text-fm-icon-active text-sm">LIVE</span>
1286
+ <span className="text-fm-tertiary text-sm">1,247 viewers</span>
1243
1287
  </div>
1244
1288
  <div className="flex items-center gap-2">
1245
- <button className="rounded border border-indigo-500/30 bg-indigo-500/20 p-2 transition-colors hover:bg-indigo-500/30">
1246
- <CameraIcon className="h-4 w-4 text-indigo-400" />
1289
+ <button className="border-fm-icon-info/30 bg-fm-icon-info/20 hover:bg-fm-icon-info/30 rounded border p-2 transition-colors">
1290
+ <CameraIcon className="text-fm-icon-info h-4 w-4" />
1247
1291
  </button>
1248
1292
  </div>
1249
1293
  </div>
@@ -1266,12 +1310,12 @@ export const Playground: Story = {
1266
1310
  args: {
1267
1311
  width: 24,
1268
1312
  height: 24,
1269
- className: "text-indigo-400",
1313
+ className: "text-fm-icon-info",
1270
1314
  strokeLinecap: "round",
1271
1315
  },
1272
1316
  render: (args) => (
1273
- <div className="flex h-64 min-h-dvh items-center justify-center rounded-lg bg-gradient-to-br from-gray-900 to-gray-800">
1274
- <div className="rounded-lg border border-white/10 bg-white/5 p-8">
1317
+ <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">
1318
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-8">
1275
1319
  <CameraIcon {...args} />
1276
1320
  </div>
1277
1321
  </div>