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 ShieldIcon> = {
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 ShieldIcon> = {
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-purple-500/10 via-transparent to-violet-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-secondary-500/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-purple-500/30 bg-gradient-to-br from-purple-500/20 to-violet-500/20">
89
+ <div className="border-fm-secondary-500/30 from-fm-secondary-500/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
  <ShieldIcon className="h-12 w-12" />
91
91
  </div>
92
- <h1 className="text-5xl font-bold !text-white">ShieldIcon</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
+ ShieldIcon
94
+ </h1>
95
+ <p className="text-fm-secondary! !mx-auto max-w-3xl text-xl leading-relaxed">
94
96
  A universal shield icon with checkmark for security and
95
97
  protection interfaces. Features a classic shield design with
96
98
  verification mark, essential for security badges, verified
@@ -101,26 +103,28 @@ const meta: Meta<typeof ShieldIcon> = {
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-purple-300">
106
+ <div className="text-fm-secondary-600 text-3xl font-bold">
105
107
  Security
106
108
  </div>
107
- <div className="text-sm text-white/60">
109
+ <div className="text-fm-tertiary text-sm">
108
110
  Protection indicator
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-violet-300">
115
+ <div className="text-fm-secondary-600 text-3xl font-bold">
114
116
  Verified
115
117
  </div>
116
- <div className="text-sm text-white/60">Trust badge</div>
118
+ <div className="text-fm-tertiary text-sm">
119
+ Trust badge
120
+ </div>
117
121
  </div>
118
- <div className="h-8 w-px bg-white/20" />
122
+ <div className="bg-fm-divider-primary h-8 w-px" />
119
123
  <div className="text-center">
120
- <div className="text-3xl font-bold text-fuchsia-300">
124
+ <div className="text-fm-secondary-600 text-3xl font-bold">
121
125
  Accessible
122
126
  </div>
123
- <div className="text-sm text-white/60">
127
+ <div className="text-fm-tertiary text-sm">
124
128
  Screen reader friendly
125
129
  </div>
126
130
  </div>
@@ -133,16 +137,16 @@ const meta: Meta<typeof ShieldIcon> = {
133
137
  <div className="!mx-auto max-w-7xl !space-y-16 px-6 py-12">
134
138
  {/* Quick Usage */}
135
139
  <div className="!space-y-8">
136
- <h2 className="text-center text-3xl font-bold !text-white">
140
+ <h2 className="text-fm-icon-active! text-center text-3xl font-bold">
137
141
  Quick Start
138
142
  </h2>
139
143
  <div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
140
144
  <div className="!space-y-4">
141
- <h3 className="text-xl font-semibold !text-purple-300">
145
+ <h3 className="text-fm-secondary-600! text-xl font-semibold">
142
146
  Basic Usage
143
147
  </h3>
144
- <div className="rounded-lg bg-black/40 p-4">
145
- <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">
146
150
  {`import { ShieldIcon } from "@icons/shield-icon"
147
151
 
148
152
  function SecurityBadge() {
@@ -158,13 +162,15 @@ function SecurityBadge() {
158
162
  </div>
159
163
 
160
164
  <div className="!space-y-4">
161
- <h3 className="text-xl font-semibold !text-purple-300">
165
+ <h3 className="text-fm-secondary-600! text-xl font-semibold">
162
166
  Live Preview
163
167
  </h3>
164
- <div className="flex h-32 items-center justify-center rounded-lg border border-white/10 bg-white/5">
165
- <div className="flex items-center gap-2 rounded-lg border border-purple-500/20 bg-purple-500/10 px-4 py-2">
168
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary flex h-32 items-center justify-center rounded-lg border">
169
+ <div className="border-fm-secondary-500/20 bg-fm-secondary-500/10 flex items-center gap-2 rounded-lg border px-4 py-2">
166
170
  <ShieldIcon className="h-6 w-6" />
167
- <span className="text-sm text-white">Verified</span>
171
+ <span className="text-fm-icon-active text-sm">
172
+ Verified
173
+ </span>
168
174
  </div>
169
175
  </div>
170
176
  </div>
@@ -173,94 +179,102 @@ function SecurityBadge() {
173
179
 
174
180
  {/* Props Documentation */}
175
181
  <div className="!space-y-8">
176
- <h2 className="text-center text-3xl font-bold !text-white">
182
+ <h2 className="text-fm-icon-active! text-center text-3xl font-bold">
177
183
  Props & Configuration
178
184
  </h2>
179
185
 
180
- <div className="overflow-hidden rounded-lg border border-white/10 bg-white/5">
181
- <div className="bg-white/5 p-4">
182
- <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>
183
191
  </div>
184
192
  <table className="!my-0 w-full">
185
- <thead className="bg-white/5">
186
- <tr className="border-b border-white/10">
187
- <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">
188
196
  Prop
189
197
  </th>
190
- <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">
191
199
  Type
192
200
  </th>
193
- <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">
194
202
  Default
195
203
  </th>
196
- <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">
197
205
  Description
198
206
  </th>
199
207
  </tr>
200
208
  </thead>
201
209
  <tbody>
202
210
  {" "}
203
- <tr className="!bg-black/10">
204
- <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">
205
213
  withAccessibility
206
214
  </td>
207
- <td className="px-6 py-4 text-sm !text-white/70">
215
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
208
216
  boolean
209
217
  </td>
210
- <td className="px-6 py-4 text-sm !text-white/50">
218
+ <td className="text-fm-placeholder! px-6 py-4 text-sm">
211
219
  true
212
220
  </td>
213
- <td className="px-6 py-4 text-sm !text-white/70">
221
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
214
222
  Whether to wrap the icon with accessibility feature
215
223
  </td>
216
224
  </tr>
217
- <tr className="border-b border-white/5 !bg-black/10">
218
- <td className="px-6 py-4 font-mono text-sm !text-purple-300">
225
+ <tr className="border-fm-divider-tertiary bg-fm-surface-secondary! border-b">
226
+ <td className="text-fm-secondary-600! px-6 py-4 font-mono text-sm">
219
227
  height
220
228
  </td>
221
- <td className="px-6 py-4 text-sm !text-white/70">
229
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
222
230
  number | string
223
231
  </td>
224
- <td className="px-6 py-4 text-sm !text-white/50">16</td>
225
- <td className="px-6 py-4 text-sm !text-white/70">
232
+ <td className="text-fm-placeholder! px-6 py-4 text-sm">
233
+ 16
234
+ </td>
235
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
226
236
  Height of the icon in pixels
227
237
  </td>
228
238
  </tr>
229
- <tr className="border-b border-white/5">
230
- <td className="px-6 py-4 font-mono text-sm !text-purple-300">
239
+ <tr className="border-fm-divider-tertiary border-b">
240
+ <td className="text-fm-secondary-600! px-6 py-4 font-mono text-sm">
231
241
  fill
232
242
  </td>
233
- <td className="px-6 py-4 text-sm !text-white/70">
243
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
234
244
  string
235
245
  </td>
236
- <td className="px-6 py-4 text-sm !text-white/50">
246
+ <td className="text-fm-placeholder! px-6 py-4 text-sm">
237
247
  #101115
238
248
  </td>
239
- <td className="px-6 py-4 text-sm !text-white/70">
249
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
240
250
  Fill color of the icon
241
251
  </td>
242
252
  </tr>
243
- <tr className="border-b border-white/5 !bg-black/10">
244
- <td className="px-6 py-4 font-mono text-sm !text-purple-300">
253
+ <tr className="border-fm-divider-tertiary bg-fm-surface-secondary! border-b">
254
+ <td className="text-fm-secondary-600! px-6 py-4 font-mono text-sm">
245
255
  className
246
256
  </td>
247
- <td className="px-6 py-4 text-sm !text-white/70">
257
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
248
258
  string
249
259
  </td>
250
- <td className="px-6 py-4 text-sm !text-white/50">-</td>
251
- <td className="px-6 py-4 text-sm !text-white/70">
260
+ <td className="text-fm-placeholder! px-6 py-4 text-sm">
261
+ -
262
+ </td>
263
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
252
264
  CSS classes for styling (use for overrides)
253
265
  </td>
254
266
  </tr>
255
- <tr className="!bg-black/10">
256
- <td className="px-6 py-4 font-mono text-sm !text-purple-300">
267
+ <tr className="bg-fm-surface-secondary!">
268
+ <td className="text-fm-secondary-600! px-6 py-4 font-mono text-sm">
257
269
  ...svgProps
258
270
  </td>
259
- <td className="px-6 py-4 text-sm !text-white/70">
271
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
260
272
  SVGProps
261
273
  </td>
262
- <td className="px-6 py-4 text-sm !text-white/50">-</td>
263
- <td className="px-6 py-4 text-sm !text-white/70">
274
+ <td className="text-fm-placeholder! px-6 py-4 text-sm">
275
+ -
276
+ </td>
277
+ <td className="text-fm-secondary! px-6 py-4 text-sm">
264
278
  All standard SVG element props
265
279
  </td>
266
280
  </tr>
@@ -271,50 +285,62 @@ function SecurityBadge() {
271
285
 
272
286
  {/* Size Variations */}
273
287
  <div className="!space-y-8">
274
- <h2 className="text-center text-3xl font-bold !text-white">
288
+ <h2 className="text-fm-icon-active! text-center text-3xl font-bold">
275
289
  Size Variations
276
290
  </h2>
277
- <div className="rounded-lg border border-white/10 bg-white/5 p-8">
291
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-8">
278
292
  <div className="!space-y-6">
279
293
  <div className="grid grid-cols-1 gap-8 md:grid-cols-2">
280
294
  <div className="!space-y-4">
281
- <h3 className="text-lg font-semibold !text-purple-300">
295
+ <h3 className="text-fm-secondary-600! text-lg font-semibold">
282
296
  Standard Sizes
283
297
  </h3>
284
- <div className="flex items-end gap-6 rounded-lg bg-black/20 p-6">
298
+ <div className="bg-fm-surface-secondary flex items-end gap-6 rounded-lg p-6">
285
299
  <div className="text-center">
286
300
  <ShieldIcon className="!mx-auto mb-2 size-3" />
287
- <span className="text-xs text-white/60">12px</span>
301
+ <span className="text-fm-tertiary text-xs">
302
+ 12px
303
+ </span>
288
304
  </div>
289
305
  <div className="text-center">
290
306
  <ShieldIcon className="!mx-auto mb-2 size-4" />
291
- <span className="text-xs text-white/60">16px</span>
307
+ <span className="text-fm-tertiary text-xs">
308
+ 16px
309
+ </span>
292
310
  </div>
293
311
  <div className="text-center">
294
312
  <ShieldIcon className="!mx-auto mb-2 size-5" />
295
- <span className="text-xs text-white/60">20px</span>
313
+ <span className="text-fm-tertiary text-xs">
314
+ 20px
315
+ </span>
296
316
  </div>
297
317
  <div className="text-center">
298
318
  <ShieldIcon className="!mx-auto mb-2 size-6" />
299
- <span className="text-xs text-white/60">24px</span>
319
+ <span className="text-fm-tertiary text-xs">
320
+ 24px
321
+ </span>
300
322
  </div>
301
323
  <div className="text-center">
302
324
  <ShieldIcon className="!mx-auto mb-2 size-8" />
303
- <span className="text-xs text-white/60">32px</span>
325
+ <span className="text-fm-tertiary text-xs">
326
+ 32px
327
+ </span>
304
328
  </div>
305
329
  <div className="text-center">
306
330
  <ShieldIcon className="!mx-auto mb-2 h-12 w-12" />
307
- <span className="text-xs text-white/60">48px</span>
331
+ <span className="text-fm-tertiary text-xs">
332
+ 48px
333
+ </span>
308
334
  </div>
309
335
  </div>
310
336
  </div>
311
337
 
312
338
  <div className="!space-y-4">
313
- <h3 className="text-lg font-semibold !text-purple-300">
339
+ <h3 className="text-fm-secondary-600! text-lg font-semibold">
314
340
  Code Example
315
341
  </h3>
316
- <div className="rounded-lg bg-black/40 p-4">
317
- <pre className="overflow-x-auto text-sm !text-cyan-300">
342
+ <div className="bg-fm-surface-secondary rounded-lg p-4">
343
+ <pre className="text-fm-icon-info! overflow-x-auto text-sm">
318
344
  {`// Small (16px)
319
345
  <ShieldIcon className="size-4" />
320
346
 
@@ -336,54 +362,54 @@ function SecurityBadge() {
336
362
 
337
363
  {/* Color Variations */}
338
364
  <div className="!space-y-8">
339
- <h2 className="text-center text-3xl font-bold !text-white">
365
+ <h2 className="text-fm-icon-active! text-center text-3xl font-bold">
340
366
  Color Variations
341
367
  </h2>
342
368
  <div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
343
369
  <div className="!space-y-4">
344
- <h3 className="text-lg font-semibold !text-purple-300">
370
+ <h3 className="text-fm-secondary-600! text-lg font-semibold">
345
371
  Semantic Colors
346
372
  </h3>
347
- <div className="!space-y-4 rounded-lg border border-white/10 bg-white/5 p-6">
373
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
348
374
  <div className="flex items-center gap-4">
349
375
  <ShieldIcon className="h-6 w-6" />
350
376
  <div>
351
- <div className="text-sm font-medium text-white">
377
+ <div className="text-fm-icon-active text-sm font-medium">
352
378
  Primary
353
379
  </div>
354
- <div className="text-xs text-white/60"></div>
380
+ <div className="text-fm-tertiary text-xs"></div>
355
381
  </div>
356
382
  </div>
357
383
  <div className="flex items-center gap-4">
358
- <ShieldIcon className="h-6 w-6 text-violet-400" />
384
+ <ShieldIcon className="text-fm-secondary-600 h-6 w-6" />
359
385
  <div>
360
- <div className="text-sm font-medium text-white">
386
+ <div className="text-fm-icon-active text-sm font-medium">
361
387
  Secondary
362
388
  </div>
363
- <div className="text-xs text-white/60">
364
- text-violet-400
389
+ <div className="text-fm-tertiary text-xs">
390
+ text-fm-secondary-600
365
391
  </div>
366
392
  </div>
367
393
  </div>
368
394
  <div className="flex items-center gap-4">
369
- <ShieldIcon className="h-6 w-6 text-green-400" />
395
+ <ShieldIcon className="text-fm-icon-positive h-6 w-6" />
370
396
  <div>
371
- <div className="text-sm font-medium text-white">
397
+ <div className="text-fm-icon-active text-sm font-medium">
372
398
  Success
373
399
  </div>
374
- <div className="text-xs text-white/60">
375
- text-green-400
400
+ <div className="text-fm-tertiary text-xs">
401
+ text-fm-icon-positive
376
402
  </div>
377
403
  </div>
378
404
  </div>
379
405
  <div className="flex items-center gap-4">
380
- <ShieldIcon className="h-6 w-6 text-white/40" />
406
+ <ShieldIcon className="text-fm-placeholder h-6 w-6" />
381
407
  <div>
382
- <div className="text-sm font-medium text-white">
408
+ <div className="text-fm-icon-active text-sm font-medium">
383
409
  Disabled
384
410
  </div>
385
- <div className="text-xs text-white/60">
386
- text-white/40
411
+ <div className="text-fm-tertiary text-xs">
412
+ text-fm-placeholder
387
413
  </div>
388
414
  </div>
389
415
  </div>
@@ -391,11 +417,11 @@ function SecurityBadge() {
391
417
  </div>
392
418
 
393
419
  <div className="!space-y-4">
394
- <h3 className="text-lg font-semibold !text-purple-300">
420
+ <h3 className="text-fm-secondary-600! text-lg font-semibold">
395
421
  Custom Colors
396
422
  </h3>
397
- <div className="rounded-lg bg-black/40 p-4">
398
- <pre className="overflow-x-auto text-sm !text-green-300">
423
+ <div className="bg-fm-surface-secondary rounded-lg p-4">
424
+ <pre className="text-fm-icon-positive! overflow-x-auto text-sm">
399
425
  {`// Using Tailwind classes
400
426
  <ShieldIcon className="h-6 w-6" />
401
427
  <ShieldIcon className="h-6 w-6 text-violet-500" />
@@ -421,35 +447,35 @@ function SecurityBadge() {
421
447
 
422
448
  {/* Usage Examples */}
423
449
  <div className="!space-y-8">
424
- <h2 className="text-center text-3xl font-bold !text-white">
450
+ <h2 className="text-fm-icon-active! text-center text-3xl font-bold">
425
451
  Usage Examples
426
452
  </h2>
427
453
 
428
454
  <div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
429
455
  {/* Verified Badge */}
430
456
  <div className="!space-y-4">
431
- <h3 className="text-lg font-semibold !text-purple-300">
457
+ <h3 className="text-fm-secondary-600! text-lg font-semibold">
432
458
  Verified Badge
433
459
  </h3>
434
460
  <div className="!space-y-4">
435
- <div className="rounded-lg border border-white/10 bg-white/5 p-6">
461
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
436
462
  <div className="mb-4 flex items-center gap-3">
437
- <div className="h-12 w-12 rounded-full bg-gradient-to-br from-purple-500/20 to-violet-500/20" />
463
+ <div className="from-fm-secondary-500/20 to-fm-secondary-500/20 h-12 w-12 rounded-full bg-linear-to-br" />
438
464
  <div>
439
465
  <div className="flex items-center gap-2">
440
- <div className="text-sm font-medium !text-white">
466
+ <div className="text-fm-icon-active! text-sm font-medium">
441
467
  John Doe
442
468
  </div>
443
- <ShieldIcon className="h-4 w-4 text-green-400" />
469
+ <ShieldIcon className="text-fm-icon-positive h-4 w-4" />
444
470
  </div>
445
- <div className="text-xs !text-white/60">
471
+ <div className="text-fm-tertiary! text-xs">
446
472
  Verified Account
447
473
  </div>
448
474
  </div>
449
475
  </div>
450
476
  </div>
451
- <div className="rounded-lg bg-black/40 p-4">
452
- <pre className="overflow-x-auto text-sm !text-green-300">
477
+ <div className="bg-fm-surface-secondary rounded-lg p-4">
478
+ <pre className="text-fm-icon-positive! overflow-x-auto text-sm">
453
479
  {`// Verified user badge
454
480
  <div className="user-profile">
455
481
  <Avatar />
@@ -471,38 +497,38 @@ function SecurityBadge() {
471
497
 
472
498
  {/* Security Status */}
473
499
  <div className="!space-y-4">
474
- <h3 className="text-lg font-semibold !text-purple-300">
500
+ <h3 className="text-fm-secondary-600! text-lg font-semibold">
475
501
  Security Status
476
502
  </h3>
477
503
  <div className="!space-y-4">
478
- <div className="rounded-lg border border-white/10 bg-white/5 p-4">
504
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-4">
479
505
  <div className="!space-y-3">
480
506
  <div className="flex items-center justify-between">
481
507
  <div>
482
- <div className="text-sm font-medium !text-white">
508
+ <div className="text-fm-icon-active! text-sm font-medium">
483
509
  Account Security
484
510
  </div>
485
- <div className="text-xs !text-white/60">
511
+ <div className="text-fm-tertiary! text-xs">
486
512
  Protected
487
513
  </div>
488
514
  </div>
489
- <ShieldIcon className="h-5 w-5 text-green-400" />
515
+ <ShieldIcon className="text-fm-icon-positive h-5 w-5" />
490
516
  </div>
491
517
  <div className="flex items-center justify-between">
492
518
  <div>
493
- <div className="text-sm font-medium !text-white">
519
+ <div className="text-fm-icon-active! text-sm font-medium">
494
520
  Data Encryption
495
521
  </div>
496
- <div className="text-xs !text-white/60">
522
+ <div className="text-fm-tertiary! text-xs">
497
523
  Active
498
524
  </div>
499
525
  </div>
500
- <ShieldIcon className="h-5 w-5 text-green-400" />
526
+ <ShieldIcon className="text-fm-icon-positive h-5 w-5" />
501
527
  </div>
502
528
  </div>
503
529
  </div>
504
- <div className="rounded-lg bg-black/40 p-4">
505
- <pre className="overflow-x-auto text-sm !text-green-300">
530
+ <div className="bg-fm-surface-secondary rounded-lg p-4">
531
+ <pre className="text-fm-icon-positive! overflow-x-auto text-sm">
506
532
  {`// Security status list
507
533
  <div className="security-status">
508
534
  {features.map((feature) => (
@@ -525,30 +551,30 @@ function SecurityBadge() {
525
551
 
526
552
  {/* Protected Content */}
527
553
  <div className="!space-y-4">
528
- <h3 className="text-lg font-semibold !text-purple-300">
554
+ <h3 className="text-fm-secondary-600! text-lg font-semibold">
529
555
  Protected Content
530
556
  </h3>
531
557
  <div className="!space-y-4">
532
- <div className="rounded-lg border border-white/10 bg-white/5 p-4">
558
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-4">
533
559
  <div className="mb-4 text-center">
534
- <div className="text-sm font-medium !text-white">
560
+ <div className="text-fm-icon-active! text-sm font-medium">
535
561
  Premium Content
536
562
  </div>
537
- <div className="text-xs !text-white/60">
563
+ <div className="text-fm-tertiary! text-xs">
538
564
  Protected by subscription
539
565
  </div>
540
566
  </div>
541
567
  <div className="flex items-center justify-center">
542
- <div className="flex items-center gap-2 rounded-lg border border-purple-500/30 bg-purple-500/10 px-4 py-3">
568
+ <div className="border-fm-secondary-500/30 bg-fm-secondary-500/10 flex items-center gap-2 rounded-lg border px-4 py-3">
543
569
  <ShieldIcon className="h-6 w-6" />
544
- <span className="text-sm text-white">
570
+ <span className="text-fm-icon-active text-sm">
545
571
  Protected
546
572
  </span>
547
573
  </div>
548
574
  </div>
549
575
  </div>
550
- <div className="rounded-lg bg-black/40 p-4">
551
- <pre className="overflow-x-auto text-sm !text-green-300">
576
+ <div className="bg-fm-surface-secondary rounded-lg p-4">
577
+ <pre className="text-fm-icon-positive! overflow-x-auto text-sm">
552
578
  {`// Protected content badge
553
579
  <div className="content-badge">
554
580
  <ShieldIcon className="h-6 w-6" />
@@ -561,25 +587,25 @@ function SecurityBadge() {
561
587
 
562
588
  {/* Trust Indicator */}
563
589
  <div className="!space-y-4">
564
- <h3 className="text-lg font-semibold !text-purple-300">
590
+ <h3 className="text-fm-secondary-600! text-lg font-semibold">
565
591
  Trust Indicator
566
592
  </h3>
567
593
  <div className="!space-y-4">
568
- <div className="rounded-lg border border-white/10 bg-white/5 p-4">
594
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-4">
569
595
  <div className="mb-4">
570
- <label className="mb-2 block text-xs text-white/60">
596
+ <label className="text-fm-tertiary mb-2 block text-xs">
571
597
  Website Security
572
598
  </label>
573
- <div className="flex items-center gap-2 rounded-lg border border-white/10 bg-black/20 px-3 py-2">
574
- <ShieldIcon className="h-4 w-4 text-green-400" />
575
- <span className="flex-1 text-sm text-white">
599
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary flex items-center gap-2 rounded-lg border px-3 py-2">
600
+ <ShieldIcon className="text-fm-icon-positive h-4 w-4" />
601
+ <span className="text-fm-icon-active flex-1 text-sm">
576
602
  Secure Connection
577
603
  </span>
578
604
  </div>
579
605
  </div>
580
606
  </div>
581
- <div className="rounded-lg bg-black/40 p-4">
582
- <pre className="overflow-x-auto text-sm !text-green-300">
607
+ <div className="bg-fm-surface-secondary rounded-lg p-4">
608
+ <pre className="text-fm-icon-positive! overflow-x-auto text-sm">
583
609
  {`// Trust indicator
584
610
  <div className="security-indicator">
585
611
  <label>Website Security</label>
@@ -600,65 +626,65 @@ function SecurityBadge() {
600
626
 
601
627
  {/* Accessibility */}
602
628
  <div className="!space-y-8">
603
- <h2 className="text-center text-3xl font-bold !text-white">
629
+ <h2 className="text-fm-icon-active! text-center text-3xl font-bold">
604
630
  Accessibility Features
605
631
  </h2>
606
632
  <div className="grid grid-cols-1 gap-8 md:grid-cols-2">
607
- <div className="!space-y-4 rounded-lg border border-white/10 bg-white/5 p-6">
608
- <h3 className="text-lg font-semibold !text-green-300">
633
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
634
+ <h3 className="text-fm-icon-positive! text-lg font-semibold">
609
635
  ✅ Built-in Features
610
636
  </h3>
611
- <ul className="!space-y-2 text-sm !text-white/70">
612
- <li className="!text-white/70">
637
+ <ul className="text-fm-secondary! !space-y-2 text-sm">
638
+ <li className="text-fm-secondary!">
613
639
  Uses Radix UI AccessibleIcon wrapper
614
640
  </li>
615
- <li className="!text-white/70">
641
+ <li className="text-fm-secondary!">
616
642
  Provides screen reader label "Shield icon"
617
643
  </li>
618
- <li className="!text-white/70">
644
+ <li className="text-fm-secondary!">
619
645
  Supports keyboard navigation when interactive
620
646
  </li>
621
- <li className="!text-white/70">
647
+ <li className="text-fm-secondary!">
622
648
  Maintains proper color contrast ratios
623
649
  </li>
624
- <li className="!text-white/70">
650
+ <li className="text-fm-secondary!">
625
651
  Scales with user's font size preferences
626
652
  </li>
627
653
  </ul>
628
654
  </div>
629
655
 
630
- <div className="!space-y-4 rounded-lg border border-white/10 bg-white/5 p-6">
631
- <h3 className="text-lg font-semibold !text-purple-300">
656
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
657
+ <h3 className="text-fm-secondary-600! text-lg font-semibold">
632
658
  💡 Best Practices
633
659
  </h3>
634
- <ul className="!space-y-2 text-sm text-white/70">
635
- <li className="!text-white/70">
660
+ <ul className="text-fm-secondary !space-y-2 text-sm">
661
+ <li className="text-fm-secondary!">
636
662
  Always provide descriptive aria-labels for security
637
663
  badges
638
664
  </li>
639
- <li className="!text-white/70">
665
+ <li className="text-fm-secondary!">
640
666
  Include security status in accessible text when possible
641
667
  </li>
642
- <li className="!text-white/70">
668
+ <li className="text-fm-secondary!">
643
669
  Use appropriate colors to convey security status
644
670
  </li>
645
- <li className="!text-white/70">
671
+ <li className="text-fm-secondary!">
646
672
  Provide visible focus states for keyboard users
647
673
  </li>
648
- <li className="!text-white/70">
674
+ <li className="text-fm-secondary!">
649
675
  Consider context when indicating verification status
650
676
  </li>
651
677
  </ul>
652
678
  </div>
653
679
  </div>
654
680
 
655
- <div className="rounded-lg border border-white/10 bg-white/5 p-6">
656
- <h3 className="mb-4 text-lg font-semibold !text-violet-300">
681
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
682
+ <h3 className="text-fm-secondary-600! mb-4 text-lg font-semibold">
657
683
  Proper ARIA Implementation
658
684
  </h3>
659
685
  <div className="grid grid-cols-1 gap-6 lg:grid-cols-2">
660
- <div className="rounded-lg bg-black/40 p-4">
661
- <pre className="overflow-x-auto text-sm !text-cyan-300">
686
+ <div className="bg-fm-surface-secondary rounded-lg p-4">
687
+ <pre className="text-fm-icon-info! overflow-x-auto text-sm">
662
688
  {`// Verified badge with proper ARIA
663
689
  <div className="user-badge">
664
690
  <span>{userName}</span>
@@ -688,14 +714,14 @@ function SecurityBadge() {
688
714
  </pre>
689
715
  </div>
690
716
  <div className="!space-y-4">
691
- <p className="text-sm !text-white/70">
717
+ <p className="text-fm-secondary! text-sm">
692
718
  When using ShieldIcon for security indicators, always
693
719
  provide clear context about what is being protected or
694
720
  verified, and ensure the security status is accessible
695
721
  to screen readers.
696
722
  </p>
697
- <div className="rounded-lg border border-purple-500/20 bg-purple-500/10 p-4">
698
- <div className="flex items-center gap-2 text-sm text-purple-200">
723
+ <div className="border-fm-secondary-500/20 bg-fm-secondary-500/10 rounded-lg border p-4">
724
+ <div className="text-fm-secondary-600 flex items-center gap-2 text-sm">
699
725
  <ShieldIcon className="h-4 w-4" />
700
726
  <span>
701
727
  Screen readers need context about security status
@@ -710,44 +736,54 @@ function SecurityBadge() {
710
736
 
711
737
  {/* Related Icons */}
712
738
  <div className="!space-y-8">
713
- <h2 className="text-center text-3xl font-bold !text-white">
739
+ <h2 className="text-fm-icon-active! text-center text-3xl font-bold">
714
740
  Related Icons
715
741
  </h2>
716
742
  <div className="grid grid-cols-2 gap-6 md:grid-cols-4">
717
- <div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
718
- <div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-green-500/20">
719
- <span className="!text-2xl !text-white">✓</span>
743
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
744
+ <div className="bg-fm-icon-positive/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
745
+ <span className="text-fm-icon-active! !text-2xl">✓</span>
720
746
  </div>
721
747
  <div>
722
- <div className="font-medium text-white">TickIcon</div>
723
- <div className="text-xs text-white/60">Verification</div>
748
+ <div className="text-fm-icon-active font-medium">
749
+ TickIcon
750
+ </div>
751
+ <div className="text-fm-tertiary text-xs">
752
+ Verification
753
+ </div>
724
754
  </div>
725
755
  </div>
726
- <div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
727
- <div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-blue-500/20">
728
- <span className="!text-2xl !text-white">🔒</span>
756
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
757
+ <div className="bg-fm-icon-info/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
758
+ <span className="text-fm-icon-active! !text-2xl">🔒</span>
729
759
  </div>
730
760
  <div>
731
- <div className="font-medium text-white">LockIcon</div>
732
- <div className="text-xs text-white/60">Security</div>
761
+ <div className="text-fm-icon-active font-medium">
762
+ LockIcon
763
+ </div>
764
+ <div className="text-fm-tertiary text-xs">Security</div>
733
765
  </div>
734
766
  </div>
735
- <div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
736
- <div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-purple-500/20">
737
- <span className="!text-2xl !text-white">⭐</span>
767
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
768
+ <div className="bg-fm-secondary-500/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
769
+ <span className="text-fm-icon-active! !text-2xl">⭐</span>
738
770
  </div>
739
771
  <div>
740
- <div className="font-medium text-white">StarIcon</div>
741
- <div className="text-xs text-white/60">Premium</div>
772
+ <div className="text-fm-icon-active font-medium">
773
+ StarIcon
774
+ </div>
775
+ <div className="text-fm-tertiary text-xs">Premium</div>
742
776
  </div>
743
777
  </div>
744
- <div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
745
- <div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-orange-500/20">
746
- <span className="!text-2xl !text-white">⚠️</span>
778
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
779
+ <div className="bg-fm-icon-warning/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
780
+ <span className="text-fm-icon-active! !text-2xl">⚠️</span>
747
781
  </div>
748
782
  <div>
749
- <div className="font-medium text-white">WarningIcon</div>
750
- <div className="text-xs text-white/60">
783
+ <div className="text-fm-icon-active font-medium">
784
+ WarningIcon
785
+ </div>
786
+ <div className="text-fm-tertiary text-xs">
751
787
  Security alert
752
788
  </div>
753
789
  </div>
@@ -757,14 +793,14 @@ function SecurityBadge() {
757
793
  </div>
758
794
 
759
795
  {/* Footer */}
760
- <div className="border-t border-white/10 bg-black/20 backdrop-blur-xl">
796
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary border-t backdrop-blur-xl">
761
797
  <div className="!mx-auto max-w-7xl px-6 py-8">
762
798
  <div className="!space-y-4 text-center">
763
- <p className="!text-white/60">
799
+ <p className="text-fm-tertiary!">
764
800
  ShieldIcon is part of the Aural UI icon library, built with
765
801
  accessibility and security best practices in mind.
766
802
  </p>
767
- <p className="text-sm !text-white/40">
803
+ <p className="text-fm-placeholder! text-sm">
768
804
  All icons use Radix UI's AccessibleIcon for screen reader
769
805
  compatibility and follow WCAG guidelines.
770
806
  </p>
@@ -813,8 +849,8 @@ const storyParameters = {
813
849
  backgrounds: {
814
850
  default: "dark",
815
851
  values: [
816
- { name: "dark", value: "#0a0a0a" },
817
- { name: "darker", value: "#000000" },
852
+ { name: "dark", value: "var(--color-fm-surface-primary)" },
853
+ { name: "darker", value: "var(--color-fm-neutral-0)" },
818
854
  ],
819
855
  },
820
856
  }
@@ -826,7 +862,7 @@ export const Default: Story = {
826
862
  },
827
863
  parameters: storyParameters,
828
864
  render: (args) => (
829
- <div className="flex h-32 min-h-dvh items-center justify-center rounded-lg bg-gradient-to-br from-gray-900 to-gray-800">
865
+ <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">
830
866
  <ShieldIcon {...args} />
831
867
  </div>
832
868
  ),
@@ -843,30 +879,30 @@ export const SizeVariations: Story = {
843
879
  },
844
880
  },
845
881
  render: () => (
846
- <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">
882
+ <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">
847
883
  <div className="text-center">
848
884
  <ShieldIcon className="!mx-auto mb-2 h-3 w-3" />
849
- <span className="text-xs text-white/60">12px</span>
885
+ <span className="text-fm-tertiary text-xs">12px</span>
850
886
  </div>
851
887
  <div className="text-center">
852
888
  <ShieldIcon className="!mx-auto mb-2 h-4 w-4" />
853
- <span className="text-xs text-white/60">16px</span>
889
+ <span className="text-fm-tertiary text-xs">16px</span>
854
890
  </div>
855
891
  <div className="text-center">
856
892
  <ShieldIcon className="!mx-auto mb-2 h-5 w-5" />
857
- <span className="text-xs text-white/60">20px</span>
893
+ <span className="text-fm-tertiary text-xs">20px</span>
858
894
  </div>
859
895
  <div className="text-center">
860
896
  <ShieldIcon className="!mx-auto mb-2 h-6 w-6" />
861
- <span className="text-xs text-white/60">24px</span>
897
+ <span className="text-fm-tertiary text-xs">24px</span>
862
898
  </div>
863
899
  <div className="text-center">
864
900
  <ShieldIcon className="!mx-auto mb-2 h-8 w-8" />
865
- <span className="text-xs text-white/60">32px</span>
901
+ <span className="text-fm-tertiary text-xs">32px</span>
866
902
  </div>
867
903
  <div className="text-center">
868
904
  <ShieldIcon className="!mx-auto mb-2 h-12 w-12" />
869
- <span className="text-xs text-white/60">48px</span>
905
+ <span className="text-fm-tertiary text-xs">48px</span>
870
906
  </div>
871
907
  </div>
872
908
  ),
@@ -882,34 +918,38 @@ export const ColorVariations: Story = {
882
918
  },
883
919
  },
884
920
  render: () => (
885
- <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">
921
+ <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">
886
922
  <div className="text-center">
887
- <div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border border-purple-500/30 bg-purple-500/20">
923
+ <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">
888
924
  <ShieldIcon className="h-8 w-8" />
889
925
  </div>
890
- <div className="text-sm font-medium text-white">Primary</div>
926
+ <div className="text-fm-icon-active text-sm font-medium">Primary</div>
891
927
  <div className="text-xs">Default</div>
892
928
  </div>
893
929
  <div className="text-center">
894
- <div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border border-violet-500/30 bg-violet-500/20">
895
- <ShieldIcon className="h-8 w-8 text-violet-400" />
930
+ <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">
931
+ <ShieldIcon className="text-fm-secondary-600 h-8 w-8" />
932
+ </div>
933
+ <div className="text-fm-icon-active text-sm font-medium">Secondary</div>
934
+ <div className="text-fm-secondary-600 text-xs">
935
+ text-fm-secondary-600
896
936
  </div>
897
- <div className="text-sm font-medium text-white">Secondary</div>
898
- <div className="text-xs text-violet-400">text-violet-400</div>
899
937
  </div>
900
938
  <div className="text-center">
901
- <div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border border-green-500/30 bg-green-500/20">
902
- <ShieldIcon className="h-8 w-8 text-green-400" />
939
+ <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">
940
+ <ShieldIcon className="text-fm-icon-positive h-8 w-8" />
941
+ </div>
942
+ <div className="text-fm-icon-active text-sm font-medium">Success</div>
943
+ <div className="text-fm-icon-positive text-xs">
944
+ text-fm-icon-positive
903
945
  </div>
904
- <div className="text-sm font-medium text-white">Success</div>
905
- <div className="text-xs text-green-400">text-green-400</div>
906
946
  </div>
907
947
  <div className="text-center">
908
- <div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border border-white/10 bg-white/5">
909
- <ShieldIcon className="h-8 w-8 text-white/40" />
948
+ <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">
949
+ <ShieldIcon className="text-fm-placeholder h-8 w-8" />
910
950
  </div>
911
- <div className="text-sm font-medium text-white">Disabled</div>
912
- <div className="text-xs text-white/40">text-white/40</div>
951
+ <div className="text-fm-icon-active text-sm font-medium">Disabled</div>
952
+ <div className="text-fm-placeholder text-xs">text-fm-placeholder</div>
913
953
  </div>
914
954
  </div>
915
955
  ),
@@ -926,19 +966,23 @@ export const UsageExamples: Story = {
926
966
  },
927
967
  },
928
968
  render: () => (
929
- <div className="min-h-dvh !space-y-8 rounded-lg bg-gradient-to-br from-gray-900 to-gray-800 p-8">
969
+ <div className="from-fm-surface-primary to-fm-surface-secondary min-h-dvh !space-y-8 rounded-lg bg-linear-to-br p-8">
930
970
  {/* Verified Badge */}
931
971
  <div className="!space-y-2">
932
- <h3 className="text-sm font-medium text-white">Verified Badge</h3>
933
- <div className="rounded-lg border border-white/10 bg-white/5 p-6">
972
+ <h3 className="text-fm-icon-active text-sm font-medium">
973
+ Verified Badge
974
+ </h3>
975
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
934
976
  <div className="mb-4 flex items-center gap-3">
935
- <div className="h-12 w-12 rounded-full bg-gradient-to-br from-purple-500/20 to-violet-500/20" />
977
+ <div className="from-fm-secondary-500/20 to-fm-secondary-500/20 h-12 w-12 rounded-full bg-linear-to-br" />
936
978
  <div>
937
979
  <div className="flex items-center gap-2">
938
- <div className="text-sm font-medium text-white">John Doe</div>
939
- <ShieldIcon className="h-4 w-4 text-green-400" />
980
+ <div className="text-fm-icon-active text-sm font-medium">
981
+ John Doe
982
+ </div>
983
+ <ShieldIcon className="text-fm-icon-positive h-4 w-4" />
940
984
  </div>
941
- <div className="text-xs text-white/60">Verified Account</div>
985
+ <div className="text-fm-tertiary text-xs">Verified Account</div>
942
986
  </div>
943
987
  </div>
944
988
  </div>
@@ -946,26 +990,28 @@ export const UsageExamples: Story = {
946
990
 
947
991
  {/* Security Status */}
948
992
  <div className="!space-y-2">
949
- <h3 className="text-sm font-medium text-white">Security Status</h3>
950
- <div className="rounded-lg border border-white/10 bg-white/5 p-4">
993
+ <h3 className="text-fm-icon-active text-sm font-medium">
994
+ Security Status
995
+ </h3>
996
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-4">
951
997
  <div className="!space-y-3">
952
998
  <div className="flex items-center justify-between">
953
999
  <div>
954
- <div className="text-sm font-medium text-white">
1000
+ <div className="text-fm-icon-active text-sm font-medium">
955
1001
  Account Security
956
1002
  </div>
957
- <div className="text-xs text-white/60">Protected</div>
1003
+ <div className="text-fm-tertiary text-xs">Protected</div>
958
1004
  </div>
959
- <ShieldIcon className="h-5 w-5 text-green-400" />
1005
+ <ShieldIcon className="text-fm-icon-positive h-5 w-5" />
960
1006
  </div>
961
1007
  <div className="flex items-center justify-between">
962
1008
  <div>
963
- <div className="text-sm font-medium text-white">
1009
+ <div className="text-fm-icon-active text-sm font-medium">
964
1010
  Data Encryption
965
1011
  </div>
966
- <div className="text-xs text-white/60">Active</div>
1012
+ <div className="text-fm-tertiary text-xs">Active</div>
967
1013
  </div>
968
- <ShieldIcon className="h-5 w-5 text-green-400" />
1014
+ <ShieldIcon className="text-fm-icon-positive h-5 w-5" />
969
1015
  </div>
970
1016
  </div>
971
1017
  </div>
@@ -987,11 +1033,11 @@ export const Playground: Story = {
987
1033
  args: {
988
1034
  width: 24,
989
1035
  height: 24,
990
- className: "text-purple-400",
1036
+ className: "text-fm-secondary-600",
991
1037
  },
992
1038
  render: (args) => (
993
- <div className="flex h-64 min-h-dvh items-center justify-center rounded-lg bg-gradient-to-br from-gray-900 to-gray-800">
994
- <div className="rounded-lg border border-white/10 bg-white/5 p-8">
1039
+ <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">
1040
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-8">
995
1041
  <ShieldIcon {...args} />
996
1042
  </div>
997
1043
  </div>