aural-ui 3.0.6 → 4.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (169) hide show
  1. package/dist/components/aspect-ratio/AspectRatio.stories.tsx +271 -242
  2. package/dist/components/avatar/Avatar.stories.tsx +84 -70
  3. package/dist/components/button/Button.stories.tsx +7 -7
  4. package/dist/components/button/index.tsx +7 -7
  5. package/dist/components/card/Card.stories.tsx +3 -3
  6. package/dist/components/char-count/CharCount.stories.tsx +9 -9
  7. package/dist/components/circular-loader/CircularLoader.stories.tsx +109 -93
  8. package/dist/components/clamp-lines/ClampLines.stories.tsx +25 -0
  9. package/dist/components/clamp-lines/index.tsx +6 -1
  10. package/dist/components/collapsible/Collapsible.stories.tsx +1 -1
  11. package/dist/components/command/Command.stories.tsx +52 -38
  12. package/dist/components/dialog/Dialog.stories.tsx +89 -84
  13. package/dist/components/divider/Divider.stories.tsx +86 -60
  14. package/dist/components/dot-loader/DotLoader.stories.tsx +12 -12
  15. package/dist/components/drawer/Drawer.stories.tsx +74 -44
  16. package/dist/components/drawer/index.tsx +3 -3
  17. package/dist/components/dropdown/Dropdown.stories.tsx +42 -32
  18. package/dist/components/helper-text/HelperText.stories.tsx +2 -2
  19. package/dist/components/hover-card/HoverCard.stories.tsx +211 -178
  20. package/dist/components/input/Input.stories.tsx +2 -2
  21. package/dist/components/input/index.tsx +2 -0
  22. package/dist/components/label/Label.stories.tsx +10 -10
  23. package/dist/components/list/List.stories.tsx +58 -44
  24. package/dist/components/marquee/Marquee.stories.tsx +131 -113
  25. package/dist/components/otp-inputs/OtpInputs.stories.tsx +47 -35
  26. package/dist/components/overlay/Overlay.stories.tsx +98 -92
  27. package/dist/components/overlay/index.tsx +4 -4
  28. package/dist/components/popover/Popover.stories.tsx +132 -106
  29. package/dist/components/radio/Radio.stories.tsx +2 -2
  30. package/dist/components/resizable/Resizable.stories.tsx +186 -138
  31. package/dist/components/scroll-area/ScrollArea.stories.tsx +174 -120
  32. package/dist/components/search/Search.stories.tsx +81 -59
  33. package/dist/components/select/Select.stories.tsx +3 -1
  34. package/dist/components/sheet/Sheet.stories.tsx +68 -54
  35. package/dist/components/slider/Slider.stories.tsx +71 -47
  36. package/dist/components/stepper/Stepper.stories.tsx +16 -16
  37. package/dist/components/switch/Switch.stories.tsx +12 -12
  38. package/dist/components/table/Table.stories.tsx +8 -6
  39. package/dist/components/tabs/Tabs.stories.tsx +324 -268
  40. package/dist/components/textarea/TextArea.stories.tsx +1 -1
  41. package/dist/components/thumbnail-tags/ThumbnailTags.stories.tsx +16 -10
  42. package/dist/components/toast/Toast.stories.tsx +51 -45
  43. package/dist/components/toggle/Toggle.stories.tsx +111 -89
  44. package/dist/components/tooltip/Tooltip.stories.tsx +160 -144
  45. package/dist/icons/Icons.stories.tsx +2 -2
  46. package/dist/icons/ai-avatar-icon/AiAvatarIcon.stories.tsx +287 -237
  47. package/dist/icons/alert-icon/AlertIcon.stories.tsx +290 -248
  48. package/dist/icons/all-icons.tsx +97 -81
  49. package/dist/icons/angle-down-icon/AngleDownIcon.stories.tsx +312 -270
  50. package/dist/icons/apple-logo-icon/AppleLogoIcon.stories.tsx +294 -244
  51. package/dist/icons/arrow-box-left-icon/ArrowBoxLeftIcon.stories.tsx +309 -279
  52. package/dist/icons/arrow-corner-up-left-icon/ArrowCornerUpLeftIcon.stories.tsx +294 -258
  53. package/dist/icons/arrow-corner-up-right-icon/ArrowCornerUpRightIcon.stories.tsx +289 -255
  54. package/dist/icons/arrow-left-icon/ArrowLeftIcon.stories.tsx +288 -256
  55. package/dist/icons/arrow-right-icon/ArrowRightIcon.stories.tsx +322 -288
  56. package/dist/icons/arrow-right-up-icon/ArrowRightUpIcon.stories.tsx +340 -296
  57. package/dist/icons/art-board-icon/ArtBoardIcon.stories.tsx +197 -177
  58. package/dist/icons/audio-bar-icon/AudioBarIcon.stories.tsx +390 -328
  59. package/dist/icons/backward-ten-seconds-icon/BackwardTenSecondsIcon.stories.tsx +313 -277
  60. package/dist/icons/bubble-check-icon/BubbleCheckIcon.stories.tsx +367 -309
  61. package/dist/icons/bubble-crossed-icon/BubbleCrossedIcon.stories.tsx +356 -308
  62. package/dist/icons/bubble-sparkle-icon/BubbleSparkleIcon.stories.tsx +280 -234
  63. package/dist/icons/camera-icon/CameraIcon.stories.tsx +370 -326
  64. package/dist/icons/capital-a-letter-icon/CapitalALetterIcon.stories.tsx +300 -256
  65. package/dist/icons/chevron-double-left-icon/ChevronDoubleLeftIcon.stories.tsx +298 -262
  66. package/dist/icons/chevron-double-right-icon/ChevronDoubleRightIcon.stories.tsx +294 -260
  67. package/dist/icons/chevron-down-icon/ChevronDownIcon.stories.tsx +291 -259
  68. package/dist/icons/chevron-left-icon/ChevronLeftIcon.stories.tsx +286 -256
  69. package/dist/icons/chevron-right-icon/ChevronRightIcon.stories.tsx +282 -256
  70. package/dist/icons/chevron-up-icon/ChevronUpIcon.stories.tsx +292 -256
  71. package/dist/icons/circle-tick-icon/CircleTickIcon.stories.tsx +338 -290
  72. package/dist/icons/circular-play-icon/CircularPlayIcon.stories.tsx +167 -148
  73. package/dist/icons/coin-icon/CoinIcon.stories.tsx +342 -296
  74. package/dist/icons/coin-toons-icon/CoinToonsIcon.stories.tsx +342 -296
  75. package/dist/icons/column-wide-add-icon/ColumnWideAddIcon.stories.tsx +280 -238
  76. package/dist/icons/command-icon/CommandIcon.stories.tsx +328 -280
  77. package/dist/icons/copy-icon/CopyIcon.stories.tsx +294 -256
  78. package/dist/icons/cross-circle-icon/CrossCircleIcon.stories.tsx +285 -235
  79. package/dist/icons/cross-icon/CrossIcon.stories.tsx +308 -266
  80. package/dist/icons/download-icon/DownloadIcon.stories.tsx +271 -231
  81. package/dist/icons/edit-big-icon/EditBigIcon.stories.tsx +330 -278
  82. package/dist/icons/email-icon/EmailIcon.stories.tsx +303 -257
  83. package/dist/icons/expand-icon/ExpandIcon.stories.tsx +324 -286
  84. package/dist/icons/eye-close-icon/EyeCloseIcon.stories.tsx +317 -271
  85. package/dist/icons/eye-open-icon/EyeOpenIcon.stories.tsx +320 -272
  86. package/dist/icons/feature-shine-icon/FeatureShineIcon.stories.tsx +322 -280
  87. package/dist/icons/file-chart-icon/FileChartIcon.stories.tsx +315 -277
  88. package/dist/icons/file-text-icon/FileTextIcon.stories.tsx +199 -177
  89. package/dist/icons/filter-bar-row-icon/FilterBarRowIcon.stories.tsx +304 -264
  90. package/dist/icons/forward-ten-seconds-icon/ForwardTenSecondsIcon.stories.tsx +311 -277
  91. package/dist/icons/git-branch-icon/GitBranchIcon.stories.tsx +327 -287
  92. package/dist/icons/git-fork-icon/GitForkIcon.stories.tsx +314 -278
  93. package/dist/icons/globe-icon/GlobeIcon.stories.tsx +113 -98
  94. package/dist/icons/google-logo-icon/GoogleLogoIcon.stories.tsx +274 -226
  95. package/dist/icons/grip-vertical-icon/GripVerticalIcon.stories.tsx +349 -303
  96. package/dist/icons/head-icon/HeadIcon.stories.tsx +286 -246
  97. package/dist/icons/heart-icon/HeartIcon.stories.tsx +312 -268
  98. package/dist/icons/image-avatar-sparkle-icon/ImageAvatarSparkleIcon.stories.tsx +246 -210
  99. package/dist/icons/image-icon/ImageIcon.stories.tsx +330 -284
  100. package/dist/icons/import-folder-icon/ImportFolderIcon.stories.tsx +326 -282
  101. package/dist/icons/import-left-arrow-folder-icon/ImportLeftArrowFolderIcon.stories.tsx +330 -294
  102. package/dist/icons/indian-flag-icon/IndianFlagIcon.stories.tsx +288 -234
  103. package/dist/icons/instagram-icon/InstagramIcon.stories.tsx +386 -330
  104. package/dist/icons/layout-column-icon/LayoutColumnIcon.stories.tsx +305 -263
  105. package/dist/icons/layout-left-icon/LayoutLeftIcon.stories.tsx +295 -259
  106. package/dist/icons/layout-right-icon/LayoutRightIcon.stories.tsx +296 -256
  107. package/dist/icons/light-bulb-simple-icon/LightBulbSimpleIcon.stories.tsx +322 -282
  108. package/dist/icons/linked-in-icon/LinkedInIcon.stories.tsx +399 -359
  109. package/dist/icons/magic-book-icon/MagicBookIcon.stories.tsx +314 -272
  110. package/dist/icons/magic-edit-icon/MagicEditIcon.stories.tsx +238 -206
  111. package/dist/icons/maintenance-icon/MaintenanceIcon.stories.tsx +322 -276
  112. package/dist/icons/message-icon/MessageIcon.stories.tsx +192 -170
  113. package/dist/icons/minimize-icon/MinimizeIcon.stories.tsx +348 -304
  114. package/dist/icons/moon-icon/MoonIcon.stories.tsx +191 -167
  115. package/dist/icons/move-horizontal-icon/MoveHorizontalIcon.stories.tsx +380 -326
  116. package/dist/icons/move-vertical-icon/MoveVerticalIcon.stories.tsx +345 -291
  117. package/dist/icons/musical-note-icon/MusicalNoteIcon.stories.tsx +310 -266
  118. package/dist/icons/notepad-icon/NotepadIcon.stories.tsx +311 -271
  119. package/dist/icons/notes-icon/NotesIcon.stories.tsx +311 -271
  120. package/dist/icons/page-search-icon/PageSearchIcon.stories.tsx +309 -271
  121. package/dist/icons/page-text-icon/PageTextIcon.stories.tsx +248 -210
  122. package/dist/icons/paint-roll-icon/PaintRollIcon.stories.tsx +310 -262
  123. package/dist/icons/paper-plane-icon/PaperPlaneIcon.stories.tsx +274 -236
  124. package/dist/icons/pause-icon/PauseIcon.stories.tsx +324 -280
  125. package/dist/icons/pencil-icon/PencilIcon.stories.tsx +323 -281
  126. package/dist/icons/phone-icon/PhoneIcon.stories.tsx +288 -240
  127. package/dist/icons/plus-icon/PlusIcon.stories.tsx +315 -273
  128. package/dist/icons/pocket-studio-icon/PocketStudioIcon.stories.tsx +278 -234
  129. package/dist/icons/scroll-down-icon/ScrollDownIcon.stories.tsx +161 -151
  130. package/dist/icons/search-icon/SearchIcon.stories.tsx +324 -284
  131. package/dist/icons/setting-icon/SettingIcon.stories.tsx +306 -264
  132. package/dist/icons/share-icon/ShareIcon.stories.tsx +314 -272
  133. package/dist/icons/shield-icon/ShieldIcon.stories.tsx +281 -235
  134. package/dist/icons/site-logo-icon/SiteLogoIcon.stories.tsx +309 -250
  135. package/dist/icons/skip-backward-icon/SkipBackwardIcon.stories.tsx +317 -279
  136. package/dist/icons/skip-forward-icon/SkipForwardIcon.stories.tsx +315 -279
  137. package/dist/icons/sparkles-soft-icon/SparklesSoftIcon.stories.tsx +299 -253
  138. package/dist/icons/spinner-gradient-icon/SpinnerGradientIcon.stories.tsx +185 -169
  139. package/dist/icons/spinner-gradient-icon/index.tsx +6 -1
  140. package/dist/icons/spinner-solid-icon/SpinnerSolidIcon.stories.tsx +192 -168
  141. package/dist/icons/spinner-solid-icon/index.tsx +6 -1
  142. package/dist/icons/spinner-solid-neutral-icon/SpinnerSolidINeutralcon.stories.tsx +212 -178
  143. package/dist/icons/spinner-solid-neutral-icon/index.tsx +1 -1
  144. package/dist/icons/star-icon/StarIcon.stories.tsx +290 -244
  145. package/dist/icons/store-coin-icon/StoreCoinIcon.stories.tsx +286 -234
  146. package/dist/icons/suggestion-icon/SuggestionIcon.stories.tsx +272 -230
  147. package/dist/icons/sun-icon/SunIcon.stories.tsx +262 -226
  148. package/dist/icons/text-color-icon/TextColorIcon.stories.tsx +321 -279
  149. package/dist/icons/text-indicator-icon/TextIndicatorIcon.stories.tsx +332 -282
  150. package/dist/icons/threads-icon/ThreadsIcon.stories.tsx +394 -342
  151. package/dist/icons/tick-circle-icon/TickCircleIcon.stories.tsx +338 -290
  152. package/dist/icons/tick-icon/TickIcon.stories.tsx +364 -315
  153. package/dist/icons/trash-icon/TrashIcon.stories.tsx +293 -253
  154. package/dist/icons/twitter-x-icon/TwitterXIcon.stories.tsx +396 -338
  155. package/dist/icons/upload-icon/UploadIcon.stories.tsx +291 -247
  156. package/dist/icons/vertical-menu-icon/VerticalMenuIcon.stories.tsx +309 -271
  157. package/dist/icons/video-play-list-icon/VideoPlaylistIcon.stories.tsx +336 -290
  158. package/dist/icons/voice-playing-icon/VoicePlayingIcon.stories.tsx +382 -334
  159. package/dist/icons/volume-full-icon/VolumeFullIcon.stories.tsx +349 -305
  160. package/dist/icons/volume-half-icon/VolumeHalfIcon.stories.tsx +327 -295
  161. package/dist/icons/volume-off-icon/VolumeOffIcon.stories.tsx +336 -296
  162. package/dist/icons/warning-icon/WarningIcon.stories.tsx +314 -274
  163. package/dist/icons/youtube-icon/YoutubeIcon.stories.tsx +311 -261
  164. package/dist/index.cjs +84 -84
  165. package/dist/index.js +84 -84
  166. package/dist/styles/aural-all-theme.css +1222 -0
  167. package/dist/styles/{aural-theme.css → aural-dark-theme.css} +15 -3
  168. package/dist/styles/aural-light-theme.css +1047 -0
  169. package/package.json +1 -1
@@ -11,9 +11,9 @@ const meta: Meta<typeof CrossCircleIcon> = {
11
11
  backgrounds: {
12
12
  default: "dark",
13
13
  values: [
14
- { name: "dark", value: "#0a0a0a" },
15
- { name: "darker", value: "#000000" },
16
- { name: "light", value: "#ffffff" },
14
+ { name: "dark", value: "var(--color-fm-surface-primary)" },
15
+ { name: "darker", value: "var(--color-fm-neutral-0)" },
16
+ { name: "light", value: "var(--color-fm-neutral-1100)" },
17
17
  ],
18
18
  },
19
19
  docs: {
@@ -40,59 +40,59 @@ const meta: Meta<typeof CrossCircleIcon> = {
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-purple-900/20 to-gray-900">
83
+ <div className="bg-fm-surface-primary min-h-screen">
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-red-500/10 via-transparent to-pink-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-negative/10 to-fm-secondary-500/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-red-500/30 bg-gradient-to-br from-red-500/20 to-pink-500/20">
89
+ <div className="border-fm-icon-negative/30 from-fm-icon-negative/20 to-fm-secondary-500/20 !mx-auto flex h-24 w-24 items-center justify-center rounded-2xl border bg-linear-to-br">
90
90
  <CrossCircleIcon className="h-12 w-12 fill-red-400" />
91
91
  </div>
92
92
  <h1 className="!text-fm-primary text-5xl font-bold">
93
93
  CrossCircleIcon
94
94
  </h1>
95
- <p className="!mx-auto max-w-3xl text-xl leading-relaxed !text-white/70">
95
+ <p className="text-fm-secondary! !mx-auto max-w-3xl text-xl leading-relaxed">
96
96
  A clear and recognizable close/cancel icon featuring a cross
97
97
  within a circle. Perfect for dismissible components, error
98
98
  states, and removal actions. Built with accessibility in
@@ -102,28 +102,28 @@ const meta: Meta<typeof CrossCircleIcon> = {
102
102
  {/* Stats */}
103
103
  <div className="flex items-center justify-center gap-8 pt-8">
104
104
  <div className="text-center">
105
- <div className="text-3xl font-bold text-red-300">
105
+ <div className="text-fm-icon-negative text-3xl font-bold">
106
106
  Accessible
107
107
  </div>
108
- <div className="text-sm text-white/60">
108
+ <div className="text-fm-tertiary text-sm">
109
109
  Screen reader friendly
110
110
  </div>
111
111
  </div>
112
- <div className="h-8 w-px bg-white/20" />
112
+ <div className="bg-fm-divider-primary h-8 w-px" />
113
113
  <div className="text-center">
114
- <div className="text-3xl font-bold text-pink-300">
114
+ <div className="text-fm-secondary-600 text-3xl font-bold">
115
115
  Scalable
116
116
  </div>
117
- <div className="text-sm text-white/60">
117
+ <div className="text-fm-tertiary text-sm">
118
118
  Any size needed
119
119
  </div>
120
120
  </div>
121
- <div className="h-8 w-px bg-white/20" />
121
+ <div className="bg-fm-divider-primary h-8 w-px" />
122
122
  <div className="text-center">
123
- <div className="text-3xl font-bold text-rose-300">
123
+ <div className="text-fm-icon-negative text-3xl font-bold">
124
124
  Versatile
125
125
  </div>
126
- <div className="text-sm text-white/60">
126
+ <div className="text-fm-tertiary text-sm">
127
127
  Multiple use cases
128
128
  </div>
129
129
  </div>
@@ -136,16 +136,16 @@ const meta: Meta<typeof CrossCircleIcon> = {
136
136
  <div className="!mx-auto max-w-7xl !space-y-16 px-6 py-12">
137
137
  {/* Quick Usage */}
138
138
  <div className="!space-y-8">
139
- <h2 className="text-center text-3xl font-bold !text-white">
139
+ <h2 className="text-fm-icon-active! text-center text-3xl font-bold">
140
140
  Quick Start
141
141
  </h2>
142
142
  <div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
143
143
  <div className="!space-y-4">
144
- <h3 className="text-xl font-semibold !text-red-300">
144
+ <h3 className="text-fm-icon-negative! text-xl font-semibold">
145
145
  Basic Usage
146
146
  </h3>
147
- <div className="rounded-lg bg-black/40 p-4">
148
- <pre className="overflow-x-auto text-sm !text-green-300">
147
+ <div className="bg-fm-surface-secondary rounded-lg p-4">
148
+ <pre className="text-fm-icon-positive! overflow-x-auto text-sm">
149
149
  {`import { CrossCircleIcon } from "@icons/cross-circle-icon"
150
150
 
151
151
  function DismissibleAlert() {
@@ -163,12 +163,14 @@ function DismissibleAlert() {
163
163
  </div>
164
164
 
165
165
  <div className="!space-y-4">
166
- <h3 className="text-xl font-semibold !text-red-300">
166
+ <h3 className="text-fm-icon-negative! text-xl font-semibold">
167
167
  Live Preview
168
168
  </h3>
169
- <div className="flex h-32 items-center justify-center rounded-lg border border-white/10 bg-white/5">
170
- <div className="flex items-center justify-between rounded-lg border border-red-500/20 bg-red-500/10 px-4 py-2">
171
- <span className="text-white">Error message</span>
169
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary flex h-32 items-center justify-center rounded-lg border">
170
+ <div className="border-fm-icon-negative/20 bg-fm-icon-negative/10 flex items-center justify-between rounded-lg border px-4 py-2">
171
+ <span className="text-fm-icon-active">
172
+ Error message
173
+ </span>
172
174
  <button className="ml-4">
173
175
  <CrossCircleIcon className="h-5 w-5 fill-red-400" />
174
176
  </button>
@@ -180,106 +182,116 @@ function DismissibleAlert() {
180
182
 
181
183
  {/* Props Documentation */}
182
184
  <div className="!space-y-8">
183
- <h2 className="text-center text-3xl font-bold !text-white">
185
+ <h2 className="text-fm-icon-active! text-center text-3xl font-bold">
184
186
  Props & Configuration
185
187
  </h2>
186
188
 
187
- <div className="overflow-hidden rounded-lg border border-white/10 bg-white/5">
188
- <div className="bg-white/5 p-4">
189
- <h3 className="text-xl font-semibold !text-white">Props</h3>
189
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary overflow-hidden rounded-lg border">
190
+ <div className="bg-fm-surface-secondary p-4">
191
+ <h3 className="text-fm-icon-active! text-xl font-semibold">
192
+ Props
193
+ </h3>
190
194
  </div>
191
195
  <table className="!my-0 w-full">
192
- <thead className="bg-white/5">
193
- <tr className="border-b border-white/10">
194
- <th className="px-6 py-4 text-left text-sm font-semibold !text-white">
196
+ <thead className="bg-fm-surface-secondary">
197
+ <tr className="border-fm-divider-secondary border-b">
198
+ <th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
195
199
  Prop
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
  Type
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
  Default
202
206
  </th>
203
- <th className="px-6 py-4 text-left text-sm font-semibold !text-white">
207
+ <th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
204
208
  Description
205
209
  </th>
206
210
  </tr>
207
211
  </thead>
208
212
  <tbody>
209
213
  {" "}
210
- <tr className="!bg-black/10">
211
- <td className="px-6 py-4 font-mono text-sm !text-blue-300">
214
+ <tr className="bg-fm-surface-secondary!">
215
+ <td className="text-fm-icon-info! px-6 py-4 font-mono text-sm">
212
216
  withAccessibility
213
217
  </td>
214
- <td className="px-6 py-4 text-sm !text-white/70">
218
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
215
219
  boolean
216
220
  </td>
217
- <td className="px-6 py-4 text-sm !text-white/50">
221
+ <td className="text-fm-placeholder! px-6 py-4 text-sm">
218
222
  true
219
223
  </td>
220
- <td className="px-6 py-4 text-sm !text-white/70">
224
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
221
225
  Whether to wrap the icon with accessibility feature
222
226
  </td>
223
227
  </tr>
224
- <tr className="border-b border-white/5 !bg-black/10">
225
- <td className="px-6 py-4 font-mono text-sm !text-red-300">
228
+ <tr className="border-fm-divider-tertiary bg-fm-surface-secondary! border-b">
229
+ <td className="text-fm-icon-negative! px-6 py-4 font-mono text-sm">
226
230
  height
227
231
  </td>
228
- <td className="px-6 py-4 text-sm !text-white/70">
232
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
229
233
  number | string
230
234
  </td>
231
- <td className="px-6 py-4 text-sm !text-white/50">16</td>
232
- <td className="px-6 py-4 text-sm !text-white/70">
235
+ <td className="text-fm-placeholder! px-6 py-4 text-sm">
236
+ 16
237
+ </td>
238
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
233
239
  Height of the icon in pixels
234
240
  </td>
235
241
  </tr>
236
- <tr className="border-b border-white/5">
237
- <td className="px-6 py-4 font-mono text-sm !text-red-300">
242
+ <tr className="border-fm-divider-tertiary border-b">
243
+ <td className="text-fm-icon-negative! px-6 py-4 font-mono text-sm">
238
244
  fill
239
245
  </td>
240
- <td className="px-6 py-4 text-sm !text-white/70">
246
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
241
247
  string
242
248
  </td>
243
- <td className="px-6 py-4 text-sm !text-white/50">
249
+ <td className="text-fm-placeholder! px-6 py-4 text-sm">
244
250
  white
245
251
  </td>
246
- <td className="px-6 py-4 text-sm !text-white/70">
252
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
247
253
  Fill color of the icon
248
254
  </td>
249
255
  </tr>
250
- <tr className="border-b border-white/5 !bg-black/10">
251
- <td className="px-6 py-4 font-mono text-sm !text-red-300">
256
+ <tr className="border-fm-divider-tertiary bg-fm-surface-secondary! border-b">
257
+ <td className="text-fm-icon-negative! px-6 py-4 font-mono text-sm">
252
258
  className
253
259
  </td>
254
- <td className="px-6 py-4 text-sm !text-white/70">
260
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
255
261
  string
256
262
  </td>
257
- <td className="px-6 py-4 text-sm !text-white/50">-</td>
258
- <td className="px-6 py-4 text-sm !text-white/70">
263
+ <td className="text-fm-placeholder! px-6 py-4 text-sm">
264
+ -
265
+ </td>
266
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
259
267
  CSS classes for styling (use for overrides)
260
268
  </td>
261
269
  </tr>
262
- <tr className="border-b border-white/5">
263
- <td className="px-6 py-4 font-mono text-sm !text-red-300">
270
+ <tr className="border-fm-divider-tertiary border-b">
271
+ <td className="text-fm-icon-negative! px-6 py-4 font-mono text-sm">
264
272
  onClick
265
273
  </td>
266
- <td className="px-6 py-4 text-sm !text-white/70">
274
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
267
275
  function
268
276
  </td>
269
- <td className="px-6 py-4 text-sm !text-white/50">-</td>
270
- <td className="px-6 py-4 text-sm !text-white/70">
277
+ <td className="text-fm-placeholder! px-6 py-4 text-sm">
278
+ -
279
+ </td>
280
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
271
281
  Click handler for interactive use
272
282
  </td>
273
283
  </tr>
274
- <tr className="!bg-black/10">
275
- <td className="px-6 py-4 font-mono text-sm !text-red-300">
284
+ <tr className="bg-fm-surface-secondary!">
285
+ <td className="text-fm-icon-negative! px-6 py-4 font-mono text-sm">
276
286
  ...svgProps
277
287
  </td>
278
- <td className="px-6 py-4 text-sm !text-white/70">
288
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
279
289
  SVGProps
280
290
  </td>
281
- <td className="px-6 py-4 text-sm !text-white/50">-</td>
282
- <td className="px-6 py-4 text-sm !text-white/70">
291
+ <td className="text-fm-placeholder! px-6 py-4 text-sm">
292
+ -
293
+ </td>
294
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
283
295
  All standard SVG element props
284
296
  </td>
285
297
  </tr>
@@ -290,50 +302,62 @@ function DismissibleAlert() {
290
302
 
291
303
  {/* Size Variations */}
292
304
  <div className="!space-y-8">
293
- <h2 className="text-center text-3xl font-bold !text-white">
305
+ <h2 className="text-fm-icon-active! text-center text-3xl font-bold">
294
306
  Size Variations
295
307
  </h2>
296
- <div className="rounded-lg border border-white/10 bg-white/5 p-8">
308
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-8">
297
309
  <div className="!space-y-6">
298
310
  <div className="grid grid-cols-1 gap-8 md:grid-cols-2">
299
311
  <div className="!space-y-4">
300
- <h3 className="text-lg font-semibold !text-red-300">
312
+ <h3 className="text-fm-icon-negative! text-lg font-semibold">
301
313
  Standard Sizes
302
314
  </h3>
303
- <div className="flex items-end gap-6 rounded-lg bg-black/20 p-6">
315
+ <div className="bg-fm-surface-secondary flex items-end gap-6 rounded-lg p-6">
304
316
  <div className="text-center">
305
317
  <CrossCircleIcon className="!mx-auto mb-2 h-3 w-3 fill-red-400" />
306
- <span className="text-xs text-white/60">12px</span>
318
+ <span className="text-fm-tertiary text-xs">
319
+ 12px
320
+ </span>
307
321
  </div>
308
322
  <div className="text-center">
309
323
  <CrossCircleIcon className="!mx-auto mb-2 h-4 w-4 fill-red-400" />
310
- <span className="text-xs text-white/60">16px</span>
324
+ <span className="text-fm-tertiary text-xs">
325
+ 16px
326
+ </span>
311
327
  </div>
312
328
  <div className="text-center">
313
329
  <CrossCircleIcon className="!mx-auto mb-2 h-5 w-5 fill-red-400" />
314
- <span className="text-xs text-white/60">20px</span>
330
+ <span className="text-fm-tertiary text-xs">
331
+ 20px
332
+ </span>
315
333
  </div>
316
334
  <div className="text-center">
317
335
  <CrossCircleIcon className="!mx-auto mb-2 h-6 w-6 fill-red-400" />
318
- <span className="text-xs text-white/60">24px</span>
336
+ <span className="text-fm-tertiary text-xs">
337
+ 24px
338
+ </span>
319
339
  </div>
320
340
  <div className="text-center">
321
341
  <CrossCircleIcon className="!mx-auto mb-2 h-8 w-8 fill-red-400" />
322
- <span className="text-xs text-white/60">32px</span>
342
+ <span className="text-fm-tertiary text-xs">
343
+ 32px
344
+ </span>
323
345
  </div>
324
346
  <div className="text-center">
325
347
  <CrossCircleIcon className="!mx-auto mb-2 h-12 w-12 fill-red-400" />
326
- <span className="text-xs text-white/60">48px</span>
348
+ <span className="text-fm-tertiary text-xs">
349
+ 48px
350
+ </span>
327
351
  </div>
328
352
  </div>
329
353
  </div>
330
354
 
331
355
  <div className="!space-y-4">
332
- <h3 className="text-lg font-semibold !text-red-300">
356
+ <h3 className="text-fm-icon-negative! text-lg font-semibold">
333
357
  Code Example
334
358
  </h3>
335
- <div className="rounded-lg bg-black/40 p-4">
336
- <pre className="overflow-x-auto text-sm !text-cyan-300">
359
+ <div className="bg-fm-surface-secondary rounded-lg p-4">
360
+ <pre className="text-fm-icon-info! overflow-x-auto text-sm">
337
361
  {`// Small (16px)
338
362
  <CrossCircleIcon className="h-4 w-4 " />
339
363
 
@@ -355,22 +379,22 @@ function DismissibleAlert() {
355
379
 
356
380
  {/* Color Variations */}
357
381
  <div className="!space-y-8">
358
- <h2 className="text-center text-3xl font-bold !text-white">
382
+ <h2 className="text-fm-icon-active! text-center text-3xl font-bold">
359
383
  Color Variations
360
384
  </h2>
361
385
  <div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
362
386
  <div className="!space-y-4">
363
- <h3 className="text-lg font-semibold !text-red-300">
387
+ <h3 className="text-fm-icon-negative! text-lg font-semibold">
364
388
  Semantic Colors
365
389
  </h3>
366
- <div className="!space-y-4 rounded-lg border border-white/10 bg-white/5 p-6">
390
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
367
391
  <div className="flex items-center gap-4">
368
392
  <CrossCircleIcon className="h-6 w-6 fill-red-400" />
369
393
  <div>
370
- <div className="text-sm font-medium text-white">
394
+ <div className="text-fm-icon-active text-sm font-medium">
371
395
  Error / Danger
372
396
  </div>
373
- <div className="text-xs text-white/60">
397
+ <div className="text-fm-tertiary text-xs">
374
398
  fill-red-400
375
399
  </div>
376
400
  </div>
@@ -378,10 +402,10 @@ function DismissibleAlert() {
378
402
  <div className="flex items-center gap-4">
379
403
  <CrossCircleIcon className="h-6 w-6 fill-gray-400" />
380
404
  <div>
381
- <div className="text-sm font-medium text-white">
405
+ <div className="text-fm-icon-active text-sm font-medium">
382
406
  Neutral / Secondary
383
407
  </div>
384
- <div className="text-xs text-white/60">
408
+ <div className="text-fm-tertiary text-xs">
385
409
  fill-gray-400
386
410
  </div>
387
411
  </div>
@@ -389,10 +413,10 @@ function DismissibleAlert() {
389
413
  <div className="flex items-center gap-4">
390
414
  <CrossCircleIcon className="h-6 w-6 fill-white/60" />
391
415
  <div>
392
- <div className="text-sm font-medium text-white">
416
+ <div className="text-fm-icon-active text-sm font-medium">
393
417
  Muted
394
418
  </div>
395
- <div className="text-xs text-white/60">
419
+ <div className="text-fm-tertiary text-xs">
396
420
  fill-white/60
397
421
  </div>
398
422
  </div>
@@ -400,10 +424,10 @@ function DismissibleAlert() {
400
424
  <div className="flex items-center gap-4">
401
425
  <CrossCircleIcon className="h-6 w-6 fill-pink-400" />
402
426
  <div>
403
- <div className="text-sm font-medium text-white">
427
+ <div className="text-fm-icon-active text-sm font-medium">
404
428
  Accent
405
429
  </div>
406
- <div className="text-xs text-white/60">
430
+ <div className="text-fm-tertiary text-xs">
407
431
  fill-pink-400
408
432
  </div>
409
433
  </div>
@@ -412,11 +436,11 @@ function DismissibleAlert() {
412
436
  </div>
413
437
 
414
438
  <div className="!space-y-4">
415
- <h3 className="text-lg font-semibold !text-red-300">
439
+ <h3 className="text-fm-icon-negative! text-lg font-semibold">
416
440
  Custom Colors
417
441
  </h3>
418
- <div className="rounded-lg bg-black/40 p-4">
419
- <pre className="overflow-x-auto text-sm !text-green-300">
442
+ <div className="bg-fm-surface-secondary rounded-lg p-4">
443
+ <pre className="text-fm-icon-positive! overflow-x-auto text-sm">
420
444
  {`// Using Tailwind classes with
421
445
  <CrossCircleIcon className="h-6 w-6 fill-red-400 " />
422
446
  <CrossCircleIcon className="h-6 w-6 fill-pink-500 " />
@@ -441,40 +465,40 @@ function DismissibleAlert() {
441
465
 
442
466
  {/* Usage Examples */}
443
467
  <div className="!space-y-8">
444
- <h2 className="text-center text-3xl font-bold !text-white">
468
+ <h2 className="text-fm-icon-active! text-center text-3xl font-bold">
445
469
  Usage Examples
446
470
  </h2>
447
471
 
448
472
  <div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
449
473
  {/* Dismissible Alert */}
450
474
  <div className="!space-y-4">
451
- <h3 className="text-lg font-semibold !text-red-300">
475
+ <h3 className="text-fm-icon-negative! text-lg font-semibold">
452
476
  Dismissible Alert
453
477
  </h3>
454
478
  <div className="!space-y-4">
455
- <div className="rounded-lg border border-red-500/20 bg-red-500/10 p-4">
479
+ <div className="border-fm-icon-negative/20 bg-fm-icon-negative/10 rounded-lg border p-4">
456
480
  <div className="flex items-start justify-between">
457
481
  <div className="flex items-start gap-3">
458
482
  <div className="mt-0.5 flex h-5 w-5 flex-shrink-0 items-center justify-center">
459
- <span className="text-red-400">⚠</span>
483
+ <span className="text-fm-icon-negative">⚠</span>
460
484
  </div>
461
485
  <div>
462
- <h4 className="font-medium !text-red-200">
486
+ <h4 className="text-fm-icon-negative! font-medium">
463
487
  Payment Failed
464
488
  </h4>
465
- <p className="text-sm !text-red-300/80">
489
+ <p className="text-fm-icon-negative!/80 text-sm">
466
490
  Unable to process your payment. Please try
467
491
  again.
468
492
  </p>
469
493
  </div>
470
494
  </div>
471
- <button className="flex-shrink-0 rounded p-1 hover:bg-red-500/20">
495
+ <button className="hover:bg-fm-icon-negative/20 flex-shrink-0 rounded p-1">
472
496
  <CrossCircleIcon className="h-4 w-4 fill-red-400" />
473
497
  </button>
474
498
  </div>
475
499
  </div>
476
- <div className="rounded-lg bg-black/40 p-4">
477
- <pre className="overflow-x-auto text-sm !text-green-300">
500
+ <div className="bg-fm-surface-secondary rounded-lg p-4">
501
+ <pre className="text-fm-icon-positive! overflow-x-auto text-sm">
478
502
  {`// Dismissible alert component
479
503
  <div className="flex items-start justify-between border border-red-500/20 bg-red-500/10 p-4 rounded-lg">
480
504
  <div className="flex items-start gap-3">
@@ -497,33 +521,33 @@ function DismissibleAlert() {
497
521
 
498
522
  {/* Modal Close Button */}
499
523
  <div className="!space-y-4">
500
- <h3 className="text-lg font-semibold !text-red-300">
524
+ <h3 className="text-fm-icon-negative! text-lg font-semibold">
501
525
  Modal Close Button
502
526
  </h3>
503
527
  <div className="!space-y-4">
504
- <div className="rounded-lg border border-white/10 bg-white/5 p-6">
528
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
505
529
  <div className="mb-4 flex items-center justify-between">
506
- <h3 className="text-lg font-semibold !text-white">
530
+ <h3 className="text-fm-icon-active! text-lg font-semibold">
507
531
  Confirm Action
508
532
  </h3>
509
- <button className="rounded p-1 hover:bg-white/10">
533
+ <button className="hover:bg-fm-surface-secondary rounded p-1">
510
534
  <CrossCircleIcon className="h-5 w-5 fill-gray-400" />
511
535
  </button>
512
536
  </div>
513
- <p className="mb-4 !text-white/70">
537
+ <p className="text-fm-secondary! mb-4">
514
538
  Are you sure you want to delete this item?
515
539
  </p>
516
540
  <div className="flex gap-3">
517
- <button className="rounded-lg border border-red-500/30 bg-red-500/20 px-4 py-2 text-red-200">
541
+ <button className="border-fm-icon-negative/30 bg-fm-icon-negative/20 text-fm-icon-negative rounded-lg border px-4 py-2">
518
542
  Delete
519
543
  </button>
520
- <button className="rounded-lg border border-white/20 bg-white/10 px-4 py-2 text-white">
544
+ <button className="border-fm-divider-primary bg-fm-surface-secondary text-fm-icon-active rounded-lg border px-4 py-2">
521
545
  Cancel
522
546
  </button>
523
547
  </div>
524
548
  </div>
525
- <div className="rounded-lg bg-black/40 p-4">
526
- <pre className="overflow-x-auto text-sm !text-green-300">
549
+ <div className="bg-fm-surface-secondary rounded-lg p-4">
550
+ <pre className="text-fm-icon-positive! overflow-x-auto text-sm">
527
551
  {`// Modal with close button
528
552
  <div className="border border-white/10 bg-white/5 p-6 rounded-lg">
529
553
  <div className="flex items-center justify-between mb-4">
@@ -551,36 +575,38 @@ function DismissibleAlert() {
551
575
 
552
576
  {/* Tag/Chip Removal */}
553
577
  <div className="!space-y-4">
554
- <h3 className="text-lg font-semibold !text-red-300">
578
+ <h3 className="text-fm-icon-negative! text-lg font-semibold">
555
579
  Tag/Chip Removal
556
580
  </h3>
557
581
  <div className="!space-y-4">
558
582
  <div className="flex flex-wrap gap-2">
559
- <div className="flex items-center gap-2 rounded-full border border-blue-500/30 bg-blue-500/20 px-3 py-1">
560
- <span className="text-sm text-blue-200">React</span>
561
- <button className="rounded-full p-0.5 hover:bg-blue-500/30">
583
+ <div className="border-fm-icon-info/30 bg-fm-icon-info/20 flex items-center gap-2 rounded-full border px-3 py-1">
584
+ <span className="text-fm-icon-info text-sm">
585
+ React
586
+ </span>
587
+ <button className="hover:bg-fm-icon-info/30 rounded-full p-0.5">
562
588
  <CrossCircleIcon className="h-3 w-3 fill-blue-300" />
563
589
  </button>
564
590
  </div>
565
- <div className="flex items-center gap-2 rounded-full border border-green-500/30 bg-green-500/20 px-3 py-1">
566
- <span className="text-sm text-green-200">
591
+ <div className="border-fm-icon-positive/30 bg-fm-icon-positive/20 flex items-center gap-2 rounded-full border px-3 py-1">
592
+ <span className="text-fm-icon-positive text-sm">
567
593
  TypeScript
568
594
  </span>
569
- <button className="rounded-full p-0.5 hover:bg-green-500/30">
595
+ <button className="hover:bg-fm-icon-positive/30 rounded-full p-0.5">
570
596
  <CrossCircleIcon className="h-3 w-3 fill-green-300" />
571
597
  </button>
572
598
  </div>
573
- <div className="flex items-center gap-2 rounded-full border border-purple-500/30 bg-purple-500/20 px-3 py-1">
574
- <span className="text-sm text-purple-200">
599
+ <div className="border-fm-secondary-500/30 bg-fm-secondary-500/20 flex items-center gap-2 rounded-full border px-3 py-1">
600
+ <span className="text-fm-secondary-600 text-sm">
575
601
  Tailwind
576
602
  </span>
577
- <button className="rounded-full p-0.5 hover:bg-purple-500/30">
603
+ <button className="hover:bg-fm-secondary-500/30 rounded-full p-0.5">
578
604
  <CrossCircleIcon className="h-3 w-3 fill-purple-300" />
579
605
  </button>
580
606
  </div>
581
607
  </div>
582
- <div className="rounded-lg bg-black/40 p-4">
583
- <pre className="overflow-x-auto text-sm !text-green-300">
608
+ <div className="bg-fm-surface-secondary rounded-lg p-4">
609
+ <pre className="text-fm-icon-positive! overflow-x-auto text-sm">
584
610
  {`// Removable tags/chips
585
611
  <div className="flex items-center gap-2 bg-blue-500/20 border border-blue-500/30 px-3 py-1 rounded-full">
586
612
  <span className="text-blue-200 text-sm">React</span>
@@ -605,28 +631,28 @@ function DismissibleAlert() {
605
631
 
606
632
  {/* Form Input Clear */}
607
633
  <div className="!space-y-4">
608
- <h3 className="text-lg font-semibold !text-red-300">
634
+ <h3 className="text-fm-icon-negative! text-lg font-semibold">
609
635
  Form Input Clear
610
636
  </h3>
611
637
  <div className="!space-y-4">
612
638
  <div className="!space-y-2">
613
- <label className="text-sm font-medium !text-white">
639
+ <label className="text-fm-icon-active! text-sm font-medium">
614
640
  Search
615
641
  </label>
616
642
  <div className="relative">
617
643
  <input
618
644
  type="text"
619
- className="w-full rounded-lg border border-white/20 bg-white/5 px-3 py-2 pr-10 !text-white placeholder-white/50 focus:border-blue-500 focus:ring-2 focus:ring-blue-500/20"
645
+ className="border-fm-divider-primary bg-fm-surface-secondary text-fm-icon-active! focus:border-fm-icon-info w-full rounded-lg border px-3 py-2 pr-10 placeholder-white/50 focus:ring-2 focus:ring-blue-500/20"
620
646
  placeholder="Type to search..."
621
647
  defaultValue="Sample search query"
622
648
  />
623
- <button className="absolute top-1/2 right-3 -translate-y-1/2 rounded p-0.5 hover:bg-white/10">
649
+ <button className="hover:bg-fm-surface-secondary absolute top-1/2 right-3 -translate-y-1/2 rounded p-0.5">
624
650
  <CrossCircleIcon className="h-4 w-4 fill-gray-400" />
625
651
  </button>
626
652
  </div>
627
653
  </div>
628
- <div className="rounded-lg bg-black/40 p-4">
629
- <pre className="overflow-x-auto text-sm !text-green-300">
654
+ <div className="bg-fm-surface-secondary rounded-lg p-4">
655
+ <pre className="text-fm-icon-positive! overflow-x-auto text-sm">
630
656
  {`// Search input with clear button
631
657
  <div className="relative">
632
658
  <input
@@ -652,64 +678,64 @@ function DismissibleAlert() {
652
678
 
653
679
  {/* Accessibility */}
654
680
  <div className="!space-y-8">
655
- <h2 className="text-center text-3xl font-bold !text-white">
681
+ <h2 className="text-fm-icon-active! text-center text-3xl font-bold">
656
682
  Accessibility Features
657
683
  </h2>
658
684
  <div className="grid grid-cols-1 gap-8 md:grid-cols-2">
659
- <div className="!space-y-4 rounded-lg border border-white/10 bg-white/5 p-6">
660
- <h3 className="text-lg font-semibold !text-green-300">
685
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
686
+ <h3 className="text-fm-icon-positive! text-lg font-semibold">
661
687
  ✅ Built-in Features
662
688
  </h3>
663
- <ul className="!space-y-2 text-sm !text-white/70">
664
- <li className="!text-white/70">
689
+ <ul className="text-fm-secondary! !space-y-2 text-sm">
690
+ <li className="text-fm-secondary!">
665
691
  Uses Radix UI AccessibleIcon wrapper
666
692
  </li>
667
- <li className="!text-white/70">
693
+ <li className="text-fm-secondary!">
668
694
  Provides screen reader label "Cross Circle icon"
669
695
  </li>
670
- <li className="!text-white/70">
696
+ <li className="text-fm-secondary!">
671
697
  Supports keyboard navigation when interactive
672
698
  </li>
673
- <li className="!text-white/70">
699
+ <li className="text-fm-secondary!">
674
700
  Maintains proper color contrast ratios
675
701
  </li>
676
- <li className="!text-white/70">
702
+ <li className="text-fm-secondary!">
677
703
  Scales with user's font size preferences
678
704
  </li>
679
705
  </ul>
680
706
  </div>
681
707
 
682
- <div className="!space-y-4 rounded-lg border border-white/10 bg-white/5 p-6">
683
- <h3 className="text-lg font-semibold !text-red-300">
708
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
709
+ <h3 className="text-fm-icon-negative! text-lg font-semibold">
684
710
  💡 Best Practices
685
711
  </h3>
686
- <ul className="!space-y-2 text-sm text-white/70">
687
- <li className="!text-white/70">
712
+ <ul className="text-fm-secondary !space-y-2 text-sm">
713
+ <li className="text-fm-secondary!">
688
714
  Always provide proper button labels for close actions
689
715
  </li>
690
- <li className="!text-white/70">
716
+ <li className="text-fm-secondary!">
691
717
  Use consistent close button placement
692
718
  </li>
693
- <li className="!text-white/70">
719
+ <li className="text-fm-secondary!">
694
720
  Ensure sufficient touch target size (44px minimum)
695
721
  </li>
696
- <li className="!text-white/70">
722
+ <li className="text-fm-secondary!">
697
723
  Provide visible focus states for keyboard users
698
724
  </li>
699
- <li className="!text-white/70">
725
+ <li className="text-fm-secondary!">
700
726
  Consider escape key functionality for modals
701
727
  </li>
702
728
  </ul>
703
729
  </div>
704
730
  </div>
705
731
 
706
- <div className="rounded-lg border border-white/10 bg-white/5 p-6">
707
- <h3 className="mb-4 text-lg font-semibold !text-purple-300">
732
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
733
+ <h3 className="text-fm-secondary-600! mb-4 text-lg font-semibold">
708
734
  Proper ARIA Implementation
709
735
  </h3>
710
736
  <div className="grid grid-cols-1 gap-6 lg:grid-cols-2">
711
- <div className="rounded-lg bg-black/40 p-4">
712
- <pre className="overflow-x-auto text-sm !text-cyan-300">
737
+ <div className="bg-fm-surface-secondary rounded-lg p-4">
738
+ <pre className="text-fm-icon-info! overflow-x-auto text-sm">
713
739
  {`// Close button with proper ARIA
714
740
  <button
715
741
  aria-label="Close dialog"
@@ -746,13 +772,13 @@ function DismissibleAlert() {
746
772
  </pre>
747
773
  </div>
748
774
  <div className="!space-y-4">
749
- <p className="text-sm !text-white/70">
775
+ <p className="text-fm-secondary! text-sm">
750
776
  When using CrossCircleIcon for interactive elements,
751
777
  always provide descriptive aria-label attributes that
752
778
  explain the action being performed.
753
779
  </p>
754
- <div className="rounded-lg border border-red-500/20 bg-red-500/10 p-4">
755
- <div className="flex items-center gap-2 text-sm text-red-200">
780
+ <div className="border-fm-icon-negative/20 bg-fm-icon-negative/10 rounded-lg border p-4">
781
+ <div className="text-fm-icon-negative flex items-center gap-2 text-sm">
756
782
  <CrossCircleIcon className="h-4 w-4 fill-red-400" />
757
783
  <span>
758
784
  Screen readers need context about what will be
@@ -767,44 +793,58 @@ function DismissibleAlert() {
767
793
 
768
794
  {/* Related Icons */}
769
795
  <div className="!space-y-8">
770
- <h2 className="text-center text-3xl font-bold !text-white">
796
+ <h2 className="text-fm-icon-active! text-center text-3xl font-bold">
771
797
  Related Icons
772
798
  </h2>
773
799
  <div className="grid grid-cols-2 gap-6 md:grid-cols-4">
774
- <div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
775
- <div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-blue-500/20">
776
- <span className="!text-2xl !text-white">✓</span>
800
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
801
+ <div className="bg-fm-icon-info/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
802
+ <span className="text-fm-icon-active! !text-2xl">✓</span>
777
803
  </div>
778
804
  <div>
779
- <div className="font-medium text-white">CheckIcon</div>
780
- <div className="text-xs text-white/60">Confirmation</div>
805
+ <div className="text-fm-icon-active font-medium">
806
+ CheckIcon
807
+ </div>
808
+ <div className="text-fm-tertiary text-xs">
809
+ Confirmation
810
+ </div>
781
811
  </div>
782
812
  </div>
783
- <div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
784
- <div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-gray-500/20">
785
- <span className="!text-2xl !text-white">×</span>
813
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
814
+ <div className="bg-fm-surface-tertiary/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
815
+ <span className="text-fm-icon-active! !text-2xl">×</span>
786
816
  </div>
787
817
  <div>
788
- <div className="font-medium text-white">CloseIcon</div>
789
- <div className="text-xs text-white/60">Simple close</div>
818
+ <div className="text-fm-icon-active font-medium">
819
+ CloseIcon
820
+ </div>
821
+ <div className="text-fm-tertiary text-xs">
822
+ Simple close
823
+ </div>
790
824
  </div>
791
825
  </div>
792
- <div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
793
- <div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-red-500/20">
794
- <span className="!text-2xl !text-white">🗑</span>
826
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
827
+ <div className="bg-fm-icon-negative/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
828
+ <span className="text-fm-icon-active! !text-2xl">🗑</span>
795
829
  </div>
796
830
  <div>
797
- <div className="font-medium text-white">DeleteIcon</div>
798
- <div className="text-xs text-white/60">Remove items</div>
831
+ <div className="text-fm-icon-active font-medium">
832
+ DeleteIcon
833
+ </div>
834
+ <div className="text-fm-tertiary text-xs">
835
+ Remove items
836
+ </div>
799
837
  </div>
800
838
  </div>
801
- <div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
802
- <div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-orange-500/20">
803
- <span className="!text-2xl !text-white">⚠</span>
839
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
840
+ <div className="bg-fm-icon-warning/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
841
+ <span className="text-fm-icon-active! !text-2xl">⚠</span>
804
842
  </div>
805
843
  <div>
806
- <div className="font-medium text-white">AlertIcon</div>
807
- <div className="text-xs text-white/60">
844
+ <div className="text-fm-icon-active font-medium">
845
+ AlertIcon
846
+ </div>
847
+ <div className="text-fm-tertiary text-xs">
808
848
  Warning states
809
849
  </div>
810
850
  </div>
@@ -814,14 +854,14 @@ function DismissibleAlert() {
814
854
  </div>
815
855
 
816
856
  {/* Footer */}
817
- <div className="border-t border-white/10 bg-black/20 backdrop-blur-xl">
857
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary border-t backdrop-blur-xl">
818
858
  <div className="!mx-auto max-w-7xl px-6 py-8">
819
859
  <div className="!space-y-4 text-center">
820
- <p className="!text-white/60">
860
+ <p className="text-fm-tertiary!">
821
861
  CrossCircleIcon is part of the Aural UI icon library, built
822
862
  with accessibility and user interaction in mind.
823
863
  </p>
824
- <p className="text-sm !text-white/40">
864
+ <p className="text-fm-placeholder! text-sm">
825
865
  All icons use Radix UI's AccessibleIcon for screen reader
826
866
  compatibility and follow WCAG guidelines.
827
867
  </p>
@@ -870,8 +910,8 @@ const storyParameters = {
870
910
  backgrounds: {
871
911
  default: "dark",
872
912
  values: [
873
- { name: "dark", value: "#0a0a0a" },
874
- { name: "darker", value: "#000000" },
913
+ { name: "dark", value: "var(--color-fm-surface-primary)" },
914
+ { name: "darker", value: "var(--color-fm-neutral-0)" },
875
915
  ],
876
916
  },
877
917
  }
@@ -883,7 +923,7 @@ export const Default: Story = {
883
923
  },
884
924
  parameters: storyParameters,
885
925
  render: (args) => (
886
- <div className="flex h-32 min-h-dvh items-center justify-center rounded-lg bg-gradient-to-br from-gray-900 to-gray-800">
926
+ <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">
887
927
  <CrossCircleIcon {...args} />
888
928
  </div>
889
929
  ),
@@ -900,30 +940,30 @@ export const SizeVariations: Story = {
900
940
  },
901
941
  },
902
942
  render: () => (
903
- <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">
943
+ <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">
904
944
  <div className="text-center">
905
945
  <CrossCircleIcon className="!mx-auto mb-2 h-3 w-3 fill-red-400" />
906
- <span className="text-xs text-white/60">12px</span>
946
+ <span className="text-fm-tertiary text-xs">12px</span>
907
947
  </div>
908
948
  <div className="text-center">
909
949
  <CrossCircleIcon className="!mx-auto mb-2 h-4 w-4 fill-red-400" />
910
- <span className="text-xs text-white/60">16px</span>
950
+ <span className="text-fm-tertiary text-xs">16px</span>
911
951
  </div>
912
952
  <div className="text-center">
913
953
  <CrossCircleIcon className="!mx-auto mb-2 h-5 w-5 fill-red-400" />
914
- <span className="text-xs text-white/60">20px</span>
954
+ <span className="text-fm-tertiary text-xs">20px</span>
915
955
  </div>
916
956
  <div className="text-center">
917
957
  <CrossCircleIcon className="!mx-auto mb-2 h-6 w-6 fill-red-400" />
918
- <span className="text-xs text-white/60">24px</span>
958
+ <span className="text-fm-tertiary text-xs">24px</span>
919
959
  </div>
920
960
  <div className="text-center">
921
961
  <CrossCircleIcon className="!mx-auto mb-2 h-8 w-8 fill-red-400" />
922
- <span className="text-xs text-white/60">32px</span>
962
+ <span className="text-fm-tertiary text-xs">32px</span>
923
963
  </div>
924
964
  <div className="text-center">
925
965
  <CrossCircleIcon className="!mx-auto mb-2 h-12 w-12 fill-red-400" />
926
- <span className="text-xs text-white/60">48px</span>
966
+ <span className="text-fm-tertiary text-xs">48px</span>
927
967
  </div>
928
968
  </div>
929
969
  ),
@@ -940,34 +980,34 @@ export const ColorVariations: Story = {
940
980
  },
941
981
  },
942
982
  render: () => (
943
- <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">
983
+ <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">
944
984
  <div className="text-center">
945
- <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">
985
+ <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">
946
986
  <CrossCircleIcon className="h-8 w-8 fill-red-400" />
947
987
  </div>
948
- <div className="text-sm font-medium text-white">Error</div>
949
- <div className="text-xs text-red-400">fill-red-400</div>
988
+ <div className="text-fm-icon-active text-sm font-medium">Error</div>
989
+ <div className="text-fm-icon-negative text-xs">fill-red-400</div>
950
990
  </div>
951
991
  <div className="text-center">
952
- <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">
992
+ <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">
953
993
  <CrossCircleIcon className="h-8 w-8 fill-gray-400" />
954
994
  </div>
955
- <div className="text-sm font-medium text-white">Neutral</div>
956
- <div className="text-xs text-gray-400">fill-gray-400</div>
995
+ <div className="text-fm-icon-active text-sm font-medium">Neutral</div>
996
+ <div className="text-fm-placeholder text-xs">fill-gray-400</div>
957
997
  </div>
958
998
  <div className="text-center">
959
- <div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border border-white/10 bg-white/5">
999
+ <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">
960
1000
  <CrossCircleIcon className="h-8 w-8 fill-white/60" />
961
1001
  </div>
962
- <div className="text-sm font-medium text-white">Muted</div>
963
- <div className="text-xs text-white/60">fill-white/60</div>
1002
+ <div className="text-fm-icon-active text-sm font-medium">Muted</div>
1003
+ <div className="text-fm-tertiary text-xs">fill-white/60</div>
964
1004
  </div>
965
1005
  <div className="text-center">
966
- <div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border border-pink-500/30 bg-pink-500/20">
1006
+ <div className="border-fm-secondary-500/30 bg-fm-secondary-500/20 !mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border">
967
1007
  <CrossCircleIcon className="h-8 w-8 fill-pink-400" />
968
1008
  </div>
969
- <div className="text-sm font-medium text-white">Accent</div>
970
- <div className="text-xs text-pink-400">fill-pink-400</div>
1009
+ <div className="text-fm-icon-active text-sm font-medium">Accent</div>
1010
+ <div className="text-fm-secondary-600 text-xs">fill-pink-400</div>
971
1011
  </div>
972
1012
  </div>
973
1013
  ),
@@ -984,22 +1024,26 @@ export const UsageExamples: Story = {
984
1024
  },
985
1025
  },
986
1026
  render: () => (
987
- <div className="min-h-dvh !space-y-8 rounded-lg bg-gradient-to-br from-gray-900 to-gray-800 p-8">
1027
+ <div className="from-fm-surface-primary to-fm-surface-secondary min-h-dvh !space-y-8 rounded-lg bg-linear-to-br p-8">
988
1028
  {/* Dismissible Alert */}
989
1029
  <div className="!space-y-2">
990
- <h3 className="text-sm font-medium text-white">Dismissible Alert</h3>
991
- <div className="rounded-lg border border-red-500/20 bg-red-500/10 p-4">
1030
+ <h3 className="text-fm-icon-active text-sm font-medium">
1031
+ Dismissible Alert
1032
+ </h3>
1033
+ <div className="border-fm-icon-negative/20 bg-fm-icon-negative/10 rounded-lg border p-4">
992
1034
  <div className="flex items-start justify-between">
993
1035
  <div className="flex items-start gap-3">
994
- <span className="mt-0.5 text-red-400">⚠</span>
1036
+ <span className="text-fm-icon-negative mt-0.5">⚠</span>
995
1037
  <div>
996
- <h4 className="font-medium text-red-200">Payment Failed</h4>
997
- <p className="text-sm text-red-300/80">
1038
+ <h4 className="text-fm-icon-negative font-medium">
1039
+ Payment Failed
1040
+ </h4>
1041
+ <p className="text-fm-icon-negative/80 text-sm">
998
1042
  Unable to process your payment. Please try again.
999
1043
  </p>
1000
1044
  </div>
1001
1045
  </div>
1002
- <button className="flex-shrink-0 rounded p-1 hover:bg-red-500/20">
1046
+ <button className="hover:bg-fm-icon-negative/20 flex-shrink-0 rounded p-1">
1003
1047
  <CrossCircleIcon className="h-4 w-4 fill-red-400" />
1004
1048
  </button>
1005
1049
  </div>
@@ -1008,17 +1052,19 @@ export const UsageExamples: Story = {
1008
1052
 
1009
1053
  {/* Removable Tags */}
1010
1054
  <div className="!space-y-2">
1011
- <h3 className="text-sm font-medium text-white">Removable Tags</h3>
1055
+ <h3 className="text-fm-icon-active text-sm font-medium">
1056
+ Removable Tags
1057
+ </h3>
1012
1058
  <div className="flex flex-wrap gap-2">
1013
- <div className="flex items-center gap-2 rounded-full border border-blue-500/30 bg-blue-500/20 px-3 py-1">
1014
- <span className="text-sm text-blue-200">React</span>
1015
- <button className="rounded-full p-0.5 hover:bg-blue-500/30">
1059
+ <div className="border-fm-icon-info/30 bg-fm-icon-info/20 flex items-center gap-2 rounded-full border px-3 py-1">
1060
+ <span className="text-fm-icon-info text-sm">React</span>
1061
+ <button className="hover:bg-fm-icon-info/30 rounded-full p-0.5">
1016
1062
  <CrossCircleIcon className="h-3 w-3 fill-blue-300" />
1017
1063
  </button>
1018
1064
  </div>
1019
- <div className="flex items-center gap-2 rounded-full border border-green-500/30 bg-green-500/20 px-3 py-1">
1020
- <span className="text-sm text-green-200">TypeScript</span>
1021
- <button className="rounded-full p-0.5 hover:bg-green-500/30">
1065
+ <div className="border-fm-icon-positive/30 bg-fm-icon-positive/20 flex items-center gap-2 rounded-full border px-3 py-1">
1066
+ <span className="text-fm-icon-positive text-sm">TypeScript</span>
1067
+ <button className="hover:bg-fm-icon-positive/30 rounded-full p-0.5">
1022
1068
  <CrossCircleIcon className="h-3 w-3 fill-green-300" />
1023
1069
  </button>
1024
1070
  </div>
@@ -1027,15 +1073,19 @@ export const UsageExamples: Story = {
1027
1073
 
1028
1074
  {/* Modal Close Button */}
1029
1075
  <div className="!space-y-2">
1030
- <h3 className="text-sm font-medium text-white">Modal Close Button</h3>
1031
- <div className="rounded-lg border border-white/10 bg-white/5 p-6">
1076
+ <h3 className="text-fm-icon-active text-sm font-medium">
1077
+ Modal Close Button
1078
+ </h3>
1079
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
1032
1080
  <div className="mb-4 flex items-center justify-between">
1033
- <h3 className="text-lg font-semibold text-white">Confirm Action</h3>
1034
- <button className="rounded p-1 hover:bg-white/10">
1081
+ <h3 className="text-fm-icon-active text-lg font-semibold">
1082
+ Confirm Action
1083
+ </h3>
1084
+ <button className="hover:bg-fm-surface-secondary rounded p-1">
1035
1085
  <CrossCircleIcon className="h-5 w-5 fill-gray-400" />
1036
1086
  </button>
1037
1087
  </div>
1038
- <p className="text-white/70">
1088
+ <p className="text-fm-secondary">
1039
1089
  Are you sure you want to delete this item?
1040
1090
  </p>
1041
1091
  </div>
@@ -1060,8 +1110,8 @@ export const Playground: Story = {
1060
1110
  className: "fill-red-400 ",
1061
1111
  },
1062
1112
  render: (args) => (
1063
- <div className="flex h-64 min-h-dvh items-center justify-center rounded-lg bg-gradient-to-br from-gray-900 to-gray-800">
1064
- <div className="rounded-lg border border-white/10 bg-white/5 p-8">
1113
+ <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">
1114
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-8">
1065
1115
  <CrossCircleIcon {...args} />
1066
1116
  </div>
1067
1117
  </div>