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
@@ -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"