aural-ui 3.0.7 → 4.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (166) hide show
  1. package/dist/components/aspect-ratio/AspectRatio.stories.tsx +271 -242
  2. package/dist/components/avatar/Avatar.stories.tsx +84 -70
  3. package/dist/components/button/Button.stories.tsx +7 -7
  4. package/dist/components/button/index.tsx +7 -7
  5. package/dist/components/card/Card.stories.tsx +3 -3
  6. package/dist/components/char-count/CharCount.stories.tsx +9 -9
  7. package/dist/components/circular-loader/CircularLoader.stories.tsx +109 -93
  8. package/dist/components/collapsible/Collapsible.stories.tsx +1 -1
  9. package/dist/components/command/Command.stories.tsx +52 -38
  10. package/dist/components/dialog/Dialog.stories.tsx +89 -84
  11. package/dist/components/divider/Divider.stories.tsx +86 -60
  12. package/dist/components/dot-loader/DotLoader.stories.tsx +12 -12
  13. package/dist/components/drawer/Drawer.stories.tsx +74 -44
  14. package/dist/components/drawer/index.tsx +3 -3
  15. package/dist/components/dropdown/Dropdown.stories.tsx +42 -32
  16. package/dist/components/helper-text/HelperText.stories.tsx +2 -2
  17. package/dist/components/hover-card/HoverCard.stories.tsx +211 -178
  18. package/dist/components/input/Input.stories.tsx +2 -2
  19. package/dist/components/label/Label.stories.tsx +10 -10
  20. package/dist/components/list/List.stories.tsx +58 -44
  21. package/dist/components/marquee/Marquee.stories.tsx +131 -113
  22. package/dist/components/otp-inputs/OtpInputs.stories.tsx +47 -35
  23. package/dist/components/overlay/Overlay.stories.tsx +98 -92
  24. package/dist/components/overlay/index.tsx +4 -4
  25. package/dist/components/popover/Popover.stories.tsx +132 -106
  26. package/dist/components/radio/Radio.stories.tsx +2 -2
  27. package/dist/components/resizable/Resizable.stories.tsx +186 -138
  28. package/dist/components/scroll-area/ScrollArea.stories.tsx +174 -120
  29. package/dist/components/search/Search.stories.tsx +81 -59
  30. package/dist/components/select/Select.stories.tsx +3 -1
  31. package/dist/components/sheet/Sheet.stories.tsx +68 -54
  32. package/dist/components/slider/Slider.stories.tsx +71 -47
  33. package/dist/components/stepper/Stepper.stories.tsx +16 -16
  34. package/dist/components/switch/Switch.stories.tsx +12 -12
  35. package/dist/components/table/Table.stories.tsx +8 -6
  36. package/dist/components/tabs/Tabs.stories.tsx +324 -268
  37. package/dist/components/textarea/TextArea.stories.tsx +1 -1
  38. package/dist/components/thumbnail-tags/ThumbnailTags.stories.tsx +16 -10
  39. package/dist/components/toast/Toast.stories.tsx +51 -45
  40. package/dist/components/toggle/Toggle.stories.tsx +111 -89
  41. package/dist/components/tooltip/Tooltip.stories.tsx +160 -144
  42. package/dist/icons/Icons.stories.tsx +2 -2
  43. package/dist/icons/ai-avatar-icon/AiAvatarIcon.stories.tsx +287 -237
  44. package/dist/icons/alert-icon/AlertIcon.stories.tsx +290 -248
  45. package/dist/icons/all-icons.tsx +97 -81
  46. package/dist/icons/angle-down-icon/AngleDownIcon.stories.tsx +312 -270
  47. package/dist/icons/apple-logo-icon/AppleLogoIcon.stories.tsx +294 -244
  48. package/dist/icons/arrow-box-left-icon/ArrowBoxLeftIcon.stories.tsx +309 -279
  49. package/dist/icons/arrow-corner-up-left-icon/ArrowCornerUpLeftIcon.stories.tsx +294 -258
  50. package/dist/icons/arrow-corner-up-right-icon/ArrowCornerUpRightIcon.stories.tsx +289 -255
  51. package/dist/icons/arrow-left-icon/ArrowLeftIcon.stories.tsx +288 -256
  52. package/dist/icons/arrow-right-icon/ArrowRightIcon.stories.tsx +322 -288
  53. package/dist/icons/arrow-right-up-icon/ArrowRightUpIcon.stories.tsx +340 -296
  54. package/dist/icons/art-board-icon/ArtBoardIcon.stories.tsx +197 -177
  55. package/dist/icons/audio-bar-icon/AudioBarIcon.stories.tsx +390 -328
  56. package/dist/icons/backward-ten-seconds-icon/BackwardTenSecondsIcon.stories.tsx +313 -277
  57. package/dist/icons/bubble-check-icon/BubbleCheckIcon.stories.tsx +367 -309
  58. package/dist/icons/bubble-crossed-icon/BubbleCrossedIcon.stories.tsx +356 -308
  59. package/dist/icons/bubble-sparkle-icon/BubbleSparkleIcon.stories.tsx +280 -234
  60. package/dist/icons/camera-icon/CameraIcon.stories.tsx +370 -326
  61. package/dist/icons/capital-a-letter-icon/CapitalALetterIcon.stories.tsx +300 -256
  62. package/dist/icons/chevron-double-left-icon/ChevronDoubleLeftIcon.stories.tsx +298 -262
  63. package/dist/icons/chevron-double-right-icon/ChevronDoubleRightIcon.stories.tsx +294 -260
  64. package/dist/icons/chevron-down-icon/ChevronDownIcon.stories.tsx +291 -259
  65. package/dist/icons/chevron-left-icon/ChevronLeftIcon.stories.tsx +286 -256
  66. package/dist/icons/chevron-right-icon/ChevronRightIcon.stories.tsx +282 -256
  67. package/dist/icons/chevron-up-icon/ChevronUpIcon.stories.tsx +292 -256
  68. package/dist/icons/circle-tick-icon/CircleTickIcon.stories.tsx +338 -290
  69. package/dist/icons/circular-play-icon/CircularPlayIcon.stories.tsx +167 -148
  70. package/dist/icons/coin-icon/CoinIcon.stories.tsx +342 -296
  71. package/dist/icons/coin-toons-icon/CoinToonsIcon.stories.tsx +342 -296
  72. package/dist/icons/column-wide-add-icon/ColumnWideAddIcon.stories.tsx +280 -238
  73. package/dist/icons/command-icon/CommandIcon.stories.tsx +328 -280
  74. package/dist/icons/copy-icon/CopyIcon.stories.tsx +294 -256
  75. package/dist/icons/cross-circle-icon/CrossCircleIcon.stories.tsx +285 -235
  76. package/dist/icons/cross-icon/CrossIcon.stories.tsx +308 -266
  77. package/dist/icons/download-icon/DownloadIcon.stories.tsx +271 -231
  78. package/dist/icons/edit-big-icon/EditBigIcon.stories.tsx +330 -278
  79. package/dist/icons/email-icon/EmailIcon.stories.tsx +303 -257
  80. package/dist/icons/expand-icon/ExpandIcon.stories.tsx +324 -286
  81. package/dist/icons/eye-close-icon/EyeCloseIcon.stories.tsx +317 -271
  82. package/dist/icons/eye-open-icon/EyeOpenIcon.stories.tsx +320 -272
  83. package/dist/icons/feature-shine-icon/FeatureShineIcon.stories.tsx +322 -280
  84. package/dist/icons/file-chart-icon/FileChartIcon.stories.tsx +315 -277
  85. package/dist/icons/file-text-icon/FileTextIcon.stories.tsx +199 -177
  86. package/dist/icons/filter-bar-row-icon/FilterBarRowIcon.stories.tsx +304 -264
  87. package/dist/icons/forward-ten-seconds-icon/ForwardTenSecondsIcon.stories.tsx +311 -277
  88. package/dist/icons/git-branch-icon/GitBranchIcon.stories.tsx +327 -287
  89. package/dist/icons/git-fork-icon/GitForkIcon.stories.tsx +314 -278
  90. package/dist/icons/globe-icon/GlobeIcon.stories.tsx +113 -98
  91. package/dist/icons/google-logo-icon/GoogleLogoIcon.stories.tsx +274 -226
  92. package/dist/icons/grip-vertical-icon/GripVerticalIcon.stories.tsx +349 -303
  93. package/dist/icons/head-icon/HeadIcon.stories.tsx +286 -246
  94. package/dist/icons/heart-icon/HeartIcon.stories.tsx +312 -268
  95. package/dist/icons/image-avatar-sparkle-icon/ImageAvatarSparkleIcon.stories.tsx +246 -210
  96. package/dist/icons/image-icon/ImageIcon.stories.tsx +330 -284
  97. package/dist/icons/import-folder-icon/ImportFolderIcon.stories.tsx +326 -282
  98. package/dist/icons/import-left-arrow-folder-icon/ImportLeftArrowFolderIcon.stories.tsx +330 -294
  99. package/dist/icons/indian-flag-icon/IndianFlagIcon.stories.tsx +288 -234
  100. package/dist/icons/instagram-icon/InstagramIcon.stories.tsx +386 -330
  101. package/dist/icons/layout-column-icon/LayoutColumnIcon.stories.tsx +305 -263
  102. package/dist/icons/layout-left-icon/LayoutLeftIcon.stories.tsx +295 -259
  103. package/dist/icons/layout-right-icon/LayoutRightIcon.stories.tsx +296 -256
  104. package/dist/icons/light-bulb-simple-icon/LightBulbSimpleIcon.stories.tsx +322 -282
  105. package/dist/icons/linked-in-icon/LinkedInIcon.stories.tsx +399 -359
  106. package/dist/icons/magic-book-icon/MagicBookIcon.stories.tsx +314 -272
  107. package/dist/icons/magic-edit-icon/MagicEditIcon.stories.tsx +238 -206
  108. package/dist/icons/maintenance-icon/MaintenanceIcon.stories.tsx +322 -276
  109. package/dist/icons/message-icon/MessageIcon.stories.tsx +192 -170
  110. package/dist/icons/minimize-icon/MinimizeIcon.stories.tsx +348 -304
  111. package/dist/icons/moon-icon/MoonIcon.stories.tsx +191 -167
  112. package/dist/icons/move-horizontal-icon/MoveHorizontalIcon.stories.tsx +380 -326
  113. package/dist/icons/move-vertical-icon/MoveVerticalIcon.stories.tsx +345 -291
  114. package/dist/icons/musical-note-icon/MusicalNoteIcon.stories.tsx +310 -266
  115. package/dist/icons/notepad-icon/NotepadIcon.stories.tsx +311 -271
  116. package/dist/icons/notes-icon/NotesIcon.stories.tsx +311 -271
  117. package/dist/icons/page-search-icon/PageSearchIcon.stories.tsx +309 -271
  118. package/dist/icons/page-text-icon/PageTextIcon.stories.tsx +248 -210
  119. package/dist/icons/paint-roll-icon/PaintRollIcon.stories.tsx +310 -262
  120. package/dist/icons/paper-plane-icon/PaperPlaneIcon.stories.tsx +274 -236
  121. package/dist/icons/pause-icon/PauseIcon.stories.tsx +324 -280
  122. package/dist/icons/pencil-icon/PencilIcon.stories.tsx +323 -281
  123. package/dist/icons/phone-icon/PhoneIcon.stories.tsx +288 -240
  124. package/dist/icons/plus-icon/PlusIcon.stories.tsx +315 -273
  125. package/dist/icons/pocket-studio-icon/PocketStudioIcon.stories.tsx +278 -234
  126. package/dist/icons/scroll-down-icon/ScrollDownIcon.stories.tsx +161 -151
  127. package/dist/icons/search-icon/SearchIcon.stories.tsx +324 -284
  128. package/dist/icons/setting-icon/SettingIcon.stories.tsx +306 -264
  129. package/dist/icons/share-icon/ShareIcon.stories.tsx +314 -272
  130. package/dist/icons/shield-icon/ShieldIcon.stories.tsx +281 -235
  131. package/dist/icons/site-logo-icon/SiteLogoIcon.stories.tsx +309 -250
  132. package/dist/icons/skip-backward-icon/SkipBackwardIcon.stories.tsx +317 -279
  133. package/dist/icons/skip-forward-icon/SkipForwardIcon.stories.tsx +315 -279
  134. package/dist/icons/sparkles-soft-icon/SparklesSoftIcon.stories.tsx +299 -253
  135. package/dist/icons/spinner-gradient-icon/SpinnerGradientIcon.stories.tsx +185 -169
  136. package/dist/icons/spinner-gradient-icon/index.tsx +6 -1
  137. package/dist/icons/spinner-solid-icon/SpinnerSolidIcon.stories.tsx +192 -168
  138. package/dist/icons/spinner-solid-icon/index.tsx +6 -1
  139. package/dist/icons/spinner-solid-neutral-icon/SpinnerSolidINeutralcon.stories.tsx +212 -178
  140. package/dist/icons/spinner-solid-neutral-icon/index.tsx +1 -1
  141. package/dist/icons/star-icon/StarIcon.stories.tsx +290 -244
  142. package/dist/icons/store-coin-icon/StoreCoinIcon.stories.tsx +286 -234
  143. package/dist/icons/suggestion-icon/SuggestionIcon.stories.tsx +272 -230
  144. package/dist/icons/sun-icon/SunIcon.stories.tsx +262 -226
  145. package/dist/icons/text-color-icon/TextColorIcon.stories.tsx +321 -279
  146. package/dist/icons/text-indicator-icon/TextIndicatorIcon.stories.tsx +332 -282
  147. package/dist/icons/threads-icon/ThreadsIcon.stories.tsx +394 -342
  148. package/dist/icons/tick-circle-icon/TickCircleIcon.stories.tsx +338 -290
  149. package/dist/icons/tick-icon/TickIcon.stories.tsx +364 -315
  150. package/dist/icons/trash-icon/TrashIcon.stories.tsx +293 -253
  151. package/dist/icons/twitter-x-icon/TwitterXIcon.stories.tsx +396 -338
  152. package/dist/icons/upload-icon/UploadIcon.stories.tsx +291 -247
  153. package/dist/icons/vertical-menu-icon/VerticalMenuIcon.stories.tsx +309 -271
  154. package/dist/icons/video-play-list-icon/VideoPlaylistIcon.stories.tsx +336 -290
  155. package/dist/icons/voice-playing-icon/VoicePlayingIcon.stories.tsx +382 -334
  156. package/dist/icons/volume-full-icon/VolumeFullIcon.stories.tsx +349 -305
  157. package/dist/icons/volume-half-icon/VolumeHalfIcon.stories.tsx +327 -295
  158. package/dist/icons/volume-off-icon/VolumeOffIcon.stories.tsx +336 -296
  159. package/dist/icons/warning-icon/WarningIcon.stories.tsx +314 -274
  160. package/dist/icons/youtube-icon/YoutubeIcon.stories.tsx +311 -261
  161. package/dist/index.cjs +84 -84
  162. package/dist/index.js +84 -84
  163. package/dist/styles/aural-all-theme.css +1222 -0
  164. package/dist/styles/{aural-theme.css → aural-dark-theme.css} +15 -3
  165. package/dist/styles/aural-light-theme.css +1047 -0
  166. package/package.json +1 -1
@@ -90,8 +90,10 @@ export const BasicSearch: Story = {
90
90
  render: () => (
91
91
  <div className="space-y-6">
92
92
  <div className="text-center">
93
- <h3 className="mb-2 font-medium text-white">Basic Search Component</h3>
94
- <p className="text-sm text-white/60">
93
+ <h3 className="text-fm-primary mb-2 font-medium">
94
+ Basic Search Component
95
+ </h3>
96
+ <p className="text-fm-secondary text-sm">
95
97
  Simple search input with different placeholder examples
96
98
  </p>
97
99
  </div>
@@ -99,13 +101,15 @@ export const BasicSearch: Story = {
99
101
  <div className="space-y-4">
100
102
  {/* Default Placeholder */}
101
103
  <div className="space-y-2">
102
- <label className="text-sm font-medium text-white/80">Default</label>
104
+ <label className="text-fm-tertiary text-sm font-medium">
105
+ Default
106
+ </label>
103
107
  <Search placeholder="Search episodes" />
104
108
  </div>
105
109
 
106
110
  {/* Custom Placeholders */}
107
111
  <div className="space-y-2">
108
- <label className="text-sm font-medium text-white/80">
112
+ <label className="text-fm-tertiary text-sm font-medium">
109
113
  Custom Placeholders
110
114
  </label>
111
115
  <div className="space-y-3">
@@ -117,7 +121,7 @@ export const BasicSearch: Story = {
117
121
 
118
122
  {/* With Initial Value */}
119
123
  <div className="space-y-2">
120
- <label className="text-sm font-medium text-white/80">
124
+ <label className="text-fm-tertiary text-sm font-medium">
121
125
  With Initial Value
122
126
  </label>
123
127
  <Search placeholder="Search episodes" initialValue="The Daily" />
@@ -145,8 +149,10 @@ export const ControlledSearch: Story = {
145
149
  return (
146
150
  <div className="space-y-6">
147
151
  <div className="text-center">
148
- <h3 className="mb-2 font-medium text-white">Controlled Search</h3>
149
- <p className="text-sm text-white/60">
152
+ <h3 className="text-fm-primary mb-2 font-medium">
153
+ Controlled Search
154
+ </h3>
155
+ <p className="text-fm-secondary text-sm">
150
156
  Search components with external state control
151
157
  </p>
152
158
  </div>
@@ -155,10 +161,10 @@ export const ControlledSearch: Story = {
155
161
  {/* Basic Controlled */}
156
162
  <div className="space-y-3">
157
163
  <div className="flex items-center justify-between">
158
- <label className="text-sm font-medium text-white/80">
164
+ <label className="text-fm-tertiary text-sm font-medium">
159
165
  Basic Controlled
160
166
  </label>
161
- <div className="text-xs text-white/60">
167
+ <div className="text-fm-secondary text-xs">
162
168
  Value: "{searchValue1}"
163
169
  </div>
164
170
  </div>
@@ -188,10 +194,10 @@ export const ControlledSearch: Story = {
188
194
  {/* Pre-filled Controlled */}
189
195
  <div className="space-y-3">
190
196
  <div className="flex items-center justify-between">
191
- <label className="text-sm font-medium text-white/80">
197
+ <label className="text-fm-tertiary text-sm font-medium">
192
198
  Pre-filled Controlled
193
199
  </label>
194
- <div className="text-xs text-white/60">
200
+ <div className="text-fm-secondary text-xs">
195
201
  Value: "{searchValue2}"
196
202
  </div>
197
203
  </div>
@@ -205,10 +211,10 @@ export const ControlledSearch: Story = {
205
211
  {/* Controlled with Validation */}
206
212
  <div className="space-y-3">
207
213
  <div className="flex items-center justify-between">
208
- <label className="text-sm font-medium text-white/80">
214
+ <label className="text-fm-tertiary text-sm font-medium">
209
215
  With Validation
210
216
  </label>
211
- <div className="text-xs text-white/60">
217
+ <div className="text-fm-secondary text-xs">
212
218
  Length: {searchValue3.length}/20
213
219
  </div>
214
220
  </div>
@@ -222,7 +228,7 @@ export const ControlledSearch: Story = {
222
228
  }}
223
229
  />
224
230
  {searchValue3.length >= 20 && (
225
- <p className="text-xs text-red-400">Maximum length reached</p>
231
+ <p className="text-fm-negative text-xs">Maximum length reached</p>
226
232
  )}
227
233
  </div>
228
234
  </div>
@@ -248,8 +254,10 @@ export const UncontrolledSearch: Story = {
248
254
  return (
249
255
  <div className="space-y-6">
250
256
  <div className="text-center">
251
- <h3 className="mb-2 font-medium text-white">Uncontrolled Search</h3>
252
- <p className="text-sm text-white/60">
257
+ <h3 className="text-fm-primary mb-2 font-medium">
258
+ Uncontrolled Search
259
+ </h3>
260
+ <p className="text-fm-secondary text-sm">
253
261
  Search components with internal state management
254
262
  </p>
255
263
  </div>
@@ -258,10 +266,10 @@ export const UncontrolledSearch: Story = {
258
266
  {/* Basic Uncontrolled */}
259
267
  <div className="space-y-3">
260
268
  <div className="flex items-center justify-between">
261
- <label className="text-sm font-medium text-white/80">
269
+ <label className="text-fm-tertiary text-sm font-medium">
262
270
  Basic Uncontrolled
263
271
  </label>
264
- <div className="text-xs text-white/60">
272
+ <div className="text-fm-secondary text-xs">
265
273
  Last search: "{lastSearch1}"
266
274
  </div>
267
275
  </div>
@@ -274,10 +282,10 @@ export const UncontrolledSearch: Story = {
274
282
  {/* With Initial Value */}
275
283
  <div className="space-y-3">
276
284
  <div className="flex items-center justify-between">
277
- <label className="text-sm font-medium text-white/80">
285
+ <label className="text-fm-tertiary text-sm font-medium">
278
286
  With Initial Value
279
287
  </label>
280
- <div className="text-xs text-white/60">
288
+ <div className="text-fm-secondary text-xs">
281
289
  Last search: "{lastSearch2}"
282
290
  </div>
283
291
  </div>
@@ -290,14 +298,14 @@ export const UncontrolledSearch: Story = {
290
298
 
291
299
  {/* Multiple Independent */}
292
300
  <div className="space-y-3">
293
- <label className="text-sm font-medium text-white/80">
301
+ <label className="text-fm-tertiary text-sm font-medium">
294
302
  Multiple Independent
295
303
  </label>
296
304
  <div className="grid grid-cols-2 gap-3">
297
305
  <Search placeholder="Search A" />
298
306
  <Search placeholder="Search B" />
299
307
  </div>
300
- <p className="text-xs text-white/60">
308
+ <p className="text-fm-secondary text-xs">
301
309
  Each search maintains its own independent state
302
310
  </p>
303
311
  </div>
@@ -357,8 +365,10 @@ export const InteractiveSearch: Story = {
357
365
  return (
358
366
  <div className="w-96 space-y-4">
359
367
  <div className="text-center">
360
- <h3 className="mb-2 font-medium text-white">Interactive Search</h3>
361
- <p className="text-sm text-white/60">
368
+ <h3 className="text-fm-primary mb-2 font-medium">
369
+ Interactive Search
370
+ </h3>
371
+ <p className="text-fm-secondary text-sm">
362
372
  Real-time search with custom results rendering
363
373
  </p>
364
374
  </div>
@@ -372,13 +382,13 @@ export const InteractiveSearch: Story = {
372
382
  >
373
383
  {/* Custom Results Rendering */}
374
384
  {results.length > 0 && (
375
- <div className="mt-2 rounded-lg border border-white/10 bg-gray-800/90 shadow-xl">
385
+ <div className="border-fm-divider-secondary bg-fm-surface-primary mt-2 rounded-lg border shadow-xl">
376
386
  <div className="p-3">
377
387
  <div className="mb-2 flex items-center justify-between">
378
- <span className="text-xs font-medium text-white/80">
388
+ <span className="text-fm-tertiary text-xs font-medium">
379
389
  Search Results
380
390
  </span>
381
- <span className="text-xs text-white/60">
391
+ <span className="text-fm-secondary text-xs">
382
392
  {results.length} found
383
393
  </span>
384
394
  </div>
@@ -391,7 +401,7 @@ export const InteractiveSearch: Story = {
391
401
  setQuery(result.text)
392
402
  setResults([])
393
403
  }}
394
- className="w-full rounded px-3 py-2 text-left text-sm text-white hover:bg-white/10"
404
+ className="text-fm-primary hover:bg-fm-surface-secondary w-full rounded px-3 py-2 text-left text-sm"
395
405
  >
396
406
  {result.text}
397
407
  </button>
@@ -403,9 +413,11 @@ export const InteractiveSearch: Story = {
403
413
  </Search>
404
414
 
405
415
  {/* Search Info */}
406
- <div className="rounded-lg border border-white/10 bg-white/5 p-4">
407
- <h4 className="mb-2 text-sm font-medium text-white">Search Info</h4>
408
- <div className="space-y-1 text-xs text-white/60">
416
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-4">
417
+ <h4 className="text-fm-primary mb-2 text-sm font-medium">
418
+ Search Info
419
+ </h4>
420
+ <div className="text-fm-secondary space-y-1 text-xs">
409
421
  <div>Query: "{query || "(empty)"}"</div>
410
422
  <div>Results: {results.length}</div>
411
423
  <div>Selected: {selectedResult || "(none)"}</div>
@@ -434,8 +446,8 @@ export const SearchStates: Story = {
434
446
  return (
435
447
  <div className="space-y-6">
436
448
  <div className="text-center">
437
- <h3 className="mb-2 font-medium text-white">Search States</h3>
438
- <p className="text-sm text-white/60">
449
+ <h3 className="text-fm-primary mb-2 font-medium">Search States</h3>
450
+ <p className="text-fm-secondary text-sm">
439
451
  Different search states and feedback
440
452
  </p>
441
453
  </div>
@@ -443,7 +455,7 @@ export const SearchStates: Story = {
443
455
  <div className="grid gap-6">
444
456
  {/* Loading State */}
445
457
  <div className="space-y-3">
446
- <label className="text-sm font-medium text-white/80">
458
+ <label className="text-fm-tertiary text-sm font-medium">
447
459
  Loading State
448
460
  </label>
449
461
  <Search
@@ -453,10 +465,12 @@ export const SearchStates: Story = {
453
465
  onSearch={setLoadingQuery}
454
466
  >
455
467
  {loadingQuery && (
456
- <div className="mt-2 rounded-lg border border-white/10 bg-gray-800/90 p-4 text-center">
468
+ <div className="border-fm-divider-secondary bg-fm-surface-primary mt-2 rounded-lg border p-4 text-center">
457
469
  <div className="flex items-center justify-center gap-2">
458
- <div className="h-4 w-4 animate-spin rounded-full border-2 border-white/20 border-t-white"></div>
459
- <span className="text-sm text-white/80">Searching...</span>
470
+ <div className="border-fm-divider-secondary h-4 w-4 animate-spin rounded-full border-2 border-t-white"></div>
471
+ <span className="text-fm-tertiary text-sm">
472
+ Searching...
473
+ </span>
460
474
  </div>
461
475
  </div>
462
476
  )}
@@ -465,7 +479,7 @@ export const SearchStates: Story = {
465
479
 
466
480
  {/* Error State */}
467
481
  <div className="space-y-3">
468
- <label className="text-sm font-medium text-white/80">
482
+ <label className="text-fm-tertiary text-sm font-medium">
469
483
  Error State
470
484
  </label>
471
485
  <Search
@@ -475,10 +489,10 @@ export const SearchStates: Story = {
475
489
  onSearch={setErrorQuery}
476
490
  >
477
491
  {errorQuery && (
478
- <div className="mt-2 rounded-lg border border-red-500/30 bg-red-900/30 p-4">
492
+ <div className="border-fm-divider-secondary bg-fm-surface-negative-sec mt-2 rounded-lg border p-4">
479
493
  <div className="flex items-center gap-2">
480
494
  <svg
481
- className="h-4 w-4 text-red-400"
495
+ className="text-fm-icon-negative h-4 w-4"
482
496
  fill="none"
483
497
  stroke="currentColor"
484
498
  viewBox="0 0 24 24"
@@ -490,7 +504,7 @@ export const SearchStates: Story = {
490
504
  d="M12 8v4m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"
491
505
  />
492
506
  </svg>
493
- <span className="text-sm text-red-400">
507
+ <span className="text-fm-negative text-sm">
494
508
  Search failed. Please try again.
495
509
  </span>
496
510
  </div>
@@ -501,7 +515,7 @@ export const SearchStates: Story = {
501
515
 
502
516
  {/* Empty State */}
503
517
  <div className="space-y-3">
504
- <label className="text-sm font-medium text-white/80">
518
+ <label className="text-fm-tertiary text-sm font-medium">
505
519
  Empty Results
506
520
  </label>
507
521
  <Search
@@ -511,10 +525,10 @@ export const SearchStates: Story = {
511
525
  onSearch={setEmptyQuery}
512
526
  >
513
527
  {emptyQuery && (
514
- <div className="mt-2 rounded-lg border border-white/10 bg-gray-800/90 p-4 text-center">
528
+ <div className="border-fm-divider-secondary bg-fm-surface-primary mt-2 rounded-lg border p-4 text-center">
515
529
  <div className="space-y-2">
516
530
  <svg
517
- className="mx-auto h-8 w-8 text-white/40"
531
+ className="text-fm-secondary mx-auto h-8 w-8"
518
532
  fill="none"
519
533
  stroke="currentColor"
520
534
  viewBox="0 0 24 24"
@@ -527,10 +541,10 @@ export const SearchStates: Story = {
527
541
  />
528
542
  </svg>
529
543
  <div>
530
- <p className="text-sm font-medium text-white">
544
+ <p className="text-fm-primary text-sm font-medium">
531
545
  No results found
532
546
  </p>
533
- <p className="text-xs text-white/60">
547
+ <p className="text-fm-secondary text-xs">
534
548
  Try different keywords or check your spelling
535
549
  </p>
536
550
  </div>
@@ -573,8 +587,10 @@ export const AdvancedFeatures: Story = {
573
587
  return (
574
588
  <div className="w-96 space-y-6">
575
589
  <div className="text-center">
576
- <h3 className="mb-2 font-medium text-white">Advanced Features</h3>
577
- <p className="text-sm text-white/60">
590
+ <h3 className="text-fm-primary mb-2 font-medium">
591
+ Advanced Features
592
+ </h3>
593
+ <p className="text-fm-secondary text-sm">
578
594
  Search with history, suggestions, and shortcuts
579
595
  </p>
580
596
  </div>
@@ -582,7 +598,7 @@ export const AdvancedFeatures: Story = {
582
598
  <div className="space-y-6">
583
599
  {/* Search with History */}
584
600
  <div className="space-y-3">
585
- <label className="text-sm font-medium text-white/80">
601
+ <label className="text-fm-tertiary text-sm font-medium">
586
602
  Search with History
587
603
  </label>
588
604
  <Search
@@ -596,9 +612,9 @@ export const AdvancedFeatures: Story = {
596
612
  >
597
613
  {(showHistory ||
598
614
  (!currentSearch && searchHistory.length > 0)) && (
599
- <div className="mt-2 rounded-lg border border-white/10 bg-gray-800/90 shadow-xl">
615
+ <div className="border-fm-divider-secondary bg-fm-surface-primary mt-2 rounded-lg border shadow-xl">
600
616
  <div className="p-3">
601
- <div className="mb-2 text-xs font-medium text-white/80">
617
+ <div className="text-fm-tertiary mb-2 text-xs font-medium">
602
618
  Recent Searches
603
619
  </div>
604
620
  <div className="space-y-1">
@@ -609,10 +625,10 @@ export const AdvancedFeatures: Story = {
609
625
  setCurrentSearch(item)
610
626
  setShowHistory(false)
611
627
  }}
612
- className="flex w-full items-center gap-2 rounded px-3 py-2 text-left text-sm text-white hover:bg-white/10"
628
+ className="text-fm-primary hover:bg-fm-surface-secondary flex w-full items-center gap-2 rounded px-3 py-2 text-left text-sm"
613
629
  >
614
630
  <svg
615
- className="h-3 w-3 text-white/40"
631
+ className="text-fm-secondary h-3 w-3"
616
632
  fill="none"
617
633
  stroke="currentColor"
618
634
  viewBox="0 0 24 24"
@@ -651,22 +667,28 @@ export const AdvancedFeatures: Story = {
651
667
  </div>
652
668
 
653
669
  {/* Keyboard Shortcuts Info */}
654
- <div className="rounded-lg border border-white/10 bg-white/5 p-4">
655
- <h4 className="mb-2 text-sm font-medium text-white">
670
+ <div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-4">
671
+ <h4 className="text-fm-primary mb-2 text-sm font-medium">
656
672
  Keyboard Shortcuts
657
673
  </h4>
658
- <div className="space-y-1 text-xs text-white/60">
674
+ <div className="text-fm-secondary space-y-1 text-xs">
659
675
  <div className="flex justify-between">
660
676
  <span>Focus search:</span>
661
- <kbd className="rounded bg-white/10 px-1 font-mono">Cmd+K</kbd>
677
+ <kbd className="bg-fm-surface-secondary rounded px-1 font-mono">
678
+ Cmd+K
679
+ </kbd>
662
680
  </div>
663
681
  <div className="flex justify-between">
664
682
  <span>Clear search:</span>
665
- <kbd className="rounded bg-white/10 px-1 font-mono">Esc</kbd>
683
+ <kbd className="bg-fm-surface-secondary rounded px-1 font-mono">
684
+ Esc
685
+ </kbd>
666
686
  </div>
667
687
  <div className="flex justify-between">
668
688
  <span>Navigate results:</span>
669
- <kbd className="rounded bg-white/10 px-1 font-mono">↑↓</kbd>
689
+ <kbd className="bg-fm-surface-secondary rounded px-1 font-mono">
690
+ ↑↓
691
+ </kbd>
670
692
  </div>
671
693
  </div>
672
694
  </div>
@@ -430,7 +430,9 @@ Use this pattern when you need to control the select value programmatically.
430
430
  <div>
431
431
  <p className="text-fm-primary mb-2 text-sm">
432
432
  Selected value:{" "}
433
- <code className="rounded bg-gray-100 px-1">{value || "none"}</code>
433
+ <code className="bg-fm-surface-secondary rounded px-1">
434
+ {value || "none"}
435
+ </code>
434
436
  </p>
435
437
  <SelectField
436
438
  label="Controlled Select"