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.
- package/dist/components/aspect-ratio/AspectRatio.stories.tsx +271 -242
- package/dist/components/avatar/Avatar.stories.tsx +84 -70
- package/dist/components/button/Button.stories.tsx +7 -7
- package/dist/components/button/index.tsx +7 -7
- package/dist/components/card/Card.stories.tsx +3 -3
- package/dist/components/char-count/CharCount.stories.tsx +9 -9
- package/dist/components/circular-loader/CircularLoader.stories.tsx +109 -93
- package/dist/components/collapsible/Collapsible.stories.tsx +1 -1
- package/dist/components/command/Command.stories.tsx +52 -38
- package/dist/components/dialog/Dialog.stories.tsx +89 -84
- package/dist/components/divider/Divider.stories.tsx +86 -60
- package/dist/components/dot-loader/DotLoader.stories.tsx +12 -12
- package/dist/components/drawer/Drawer.stories.tsx +74 -44
- package/dist/components/drawer/index.tsx +3 -3
- package/dist/components/dropdown/Dropdown.stories.tsx +42 -32
- package/dist/components/helper-text/HelperText.stories.tsx +2 -2
- package/dist/components/hover-card/HoverCard.stories.tsx +211 -178
- package/dist/components/input/Input.stories.tsx +2 -2
- package/dist/components/label/Label.stories.tsx +10 -10
- package/dist/components/list/List.stories.tsx +58 -44
- package/dist/components/marquee/Marquee.stories.tsx +131 -113
- package/dist/components/otp-inputs/OtpInputs.stories.tsx +47 -35
- package/dist/components/overlay/Overlay.stories.tsx +98 -92
- package/dist/components/overlay/index.tsx +4 -4
- package/dist/components/popover/Popover.stories.tsx +132 -106
- package/dist/components/radio/Radio.stories.tsx +2 -2
- package/dist/components/resizable/Resizable.stories.tsx +186 -138
- package/dist/components/scroll-area/ScrollArea.stories.tsx +174 -120
- package/dist/components/search/Search.stories.tsx +81 -59
- package/dist/components/select/Select.stories.tsx +3 -1
- package/dist/components/sheet/Sheet.stories.tsx +68 -54
- package/dist/components/slider/Slider.stories.tsx +71 -47
- package/dist/components/stepper/Stepper.stories.tsx +16 -16
- package/dist/components/switch/Switch.stories.tsx +12 -12
- package/dist/components/table/Table.stories.tsx +8 -6
- package/dist/components/tabs/Tabs.stories.tsx +324 -268
- package/dist/components/textarea/TextArea.stories.tsx +1 -1
- package/dist/components/thumbnail-tags/ThumbnailTags.stories.tsx +16 -10
- package/dist/components/toast/Toast.stories.tsx +51 -45
- package/dist/components/toggle/Toggle.stories.tsx +111 -89
- package/dist/components/tooltip/Tooltip.stories.tsx +160 -144
- package/dist/icons/Icons.stories.tsx +2 -2
- package/dist/icons/ai-avatar-icon/AiAvatarIcon.stories.tsx +287 -237
- package/dist/icons/alert-icon/AlertIcon.stories.tsx +290 -248
- package/dist/icons/all-icons.tsx +97 -81
- package/dist/icons/angle-down-icon/AngleDownIcon.stories.tsx +312 -270
- package/dist/icons/apple-logo-icon/AppleLogoIcon.stories.tsx +294 -244
- package/dist/icons/arrow-box-left-icon/ArrowBoxLeftIcon.stories.tsx +309 -279
- package/dist/icons/arrow-corner-up-left-icon/ArrowCornerUpLeftIcon.stories.tsx +294 -258
- package/dist/icons/arrow-corner-up-right-icon/ArrowCornerUpRightIcon.stories.tsx +289 -255
- package/dist/icons/arrow-left-icon/ArrowLeftIcon.stories.tsx +288 -256
- package/dist/icons/arrow-right-icon/ArrowRightIcon.stories.tsx +322 -288
- package/dist/icons/arrow-right-up-icon/ArrowRightUpIcon.stories.tsx +340 -296
- package/dist/icons/art-board-icon/ArtBoardIcon.stories.tsx +197 -177
- package/dist/icons/audio-bar-icon/AudioBarIcon.stories.tsx +390 -328
- package/dist/icons/backward-ten-seconds-icon/BackwardTenSecondsIcon.stories.tsx +313 -277
- package/dist/icons/bubble-check-icon/BubbleCheckIcon.stories.tsx +367 -309
- package/dist/icons/bubble-crossed-icon/BubbleCrossedIcon.stories.tsx +356 -308
- package/dist/icons/bubble-sparkle-icon/BubbleSparkleIcon.stories.tsx +280 -234
- package/dist/icons/camera-icon/CameraIcon.stories.tsx +370 -326
- package/dist/icons/capital-a-letter-icon/CapitalALetterIcon.stories.tsx +300 -256
- package/dist/icons/chevron-double-left-icon/ChevronDoubleLeftIcon.stories.tsx +298 -262
- package/dist/icons/chevron-double-right-icon/ChevronDoubleRightIcon.stories.tsx +294 -260
- package/dist/icons/chevron-down-icon/ChevronDownIcon.stories.tsx +291 -259
- package/dist/icons/chevron-left-icon/ChevronLeftIcon.stories.tsx +286 -256
- package/dist/icons/chevron-right-icon/ChevronRightIcon.stories.tsx +282 -256
- package/dist/icons/chevron-up-icon/ChevronUpIcon.stories.tsx +292 -256
- package/dist/icons/circle-tick-icon/CircleTickIcon.stories.tsx +338 -290
- package/dist/icons/circular-play-icon/CircularPlayIcon.stories.tsx +167 -148
- package/dist/icons/coin-icon/CoinIcon.stories.tsx +342 -296
- package/dist/icons/coin-toons-icon/CoinToonsIcon.stories.tsx +342 -296
- package/dist/icons/column-wide-add-icon/ColumnWideAddIcon.stories.tsx +280 -238
- package/dist/icons/command-icon/CommandIcon.stories.tsx +328 -280
- package/dist/icons/copy-icon/CopyIcon.stories.tsx +294 -256
- package/dist/icons/cross-circle-icon/CrossCircleIcon.stories.tsx +285 -235
- package/dist/icons/cross-icon/CrossIcon.stories.tsx +308 -266
- package/dist/icons/download-icon/DownloadIcon.stories.tsx +271 -231
- package/dist/icons/edit-big-icon/EditBigIcon.stories.tsx +330 -278
- package/dist/icons/email-icon/EmailIcon.stories.tsx +303 -257
- package/dist/icons/expand-icon/ExpandIcon.stories.tsx +324 -286
- package/dist/icons/eye-close-icon/EyeCloseIcon.stories.tsx +317 -271
- package/dist/icons/eye-open-icon/EyeOpenIcon.stories.tsx +320 -272
- package/dist/icons/feature-shine-icon/FeatureShineIcon.stories.tsx +322 -280
- package/dist/icons/file-chart-icon/FileChartIcon.stories.tsx +315 -277
- package/dist/icons/file-text-icon/FileTextIcon.stories.tsx +199 -177
- package/dist/icons/filter-bar-row-icon/FilterBarRowIcon.stories.tsx +304 -264
- package/dist/icons/forward-ten-seconds-icon/ForwardTenSecondsIcon.stories.tsx +311 -277
- package/dist/icons/git-branch-icon/GitBranchIcon.stories.tsx +327 -287
- package/dist/icons/git-fork-icon/GitForkIcon.stories.tsx +314 -278
- package/dist/icons/globe-icon/GlobeIcon.stories.tsx +113 -98
- package/dist/icons/google-logo-icon/GoogleLogoIcon.stories.tsx +274 -226
- package/dist/icons/grip-vertical-icon/GripVerticalIcon.stories.tsx +349 -303
- package/dist/icons/head-icon/HeadIcon.stories.tsx +286 -246
- package/dist/icons/heart-icon/HeartIcon.stories.tsx +312 -268
- package/dist/icons/image-avatar-sparkle-icon/ImageAvatarSparkleIcon.stories.tsx +246 -210
- package/dist/icons/image-icon/ImageIcon.stories.tsx +330 -284
- package/dist/icons/import-folder-icon/ImportFolderIcon.stories.tsx +326 -282
- package/dist/icons/import-left-arrow-folder-icon/ImportLeftArrowFolderIcon.stories.tsx +330 -294
- package/dist/icons/indian-flag-icon/IndianFlagIcon.stories.tsx +288 -234
- package/dist/icons/instagram-icon/InstagramIcon.stories.tsx +386 -330
- package/dist/icons/layout-column-icon/LayoutColumnIcon.stories.tsx +305 -263
- package/dist/icons/layout-left-icon/LayoutLeftIcon.stories.tsx +295 -259
- package/dist/icons/layout-right-icon/LayoutRightIcon.stories.tsx +296 -256
- package/dist/icons/light-bulb-simple-icon/LightBulbSimpleIcon.stories.tsx +322 -282
- package/dist/icons/linked-in-icon/LinkedInIcon.stories.tsx +399 -359
- package/dist/icons/magic-book-icon/MagicBookIcon.stories.tsx +314 -272
- package/dist/icons/magic-edit-icon/MagicEditIcon.stories.tsx +238 -206
- package/dist/icons/maintenance-icon/MaintenanceIcon.stories.tsx +322 -276
- package/dist/icons/message-icon/MessageIcon.stories.tsx +192 -170
- package/dist/icons/minimize-icon/MinimizeIcon.stories.tsx +348 -304
- package/dist/icons/moon-icon/MoonIcon.stories.tsx +191 -167
- package/dist/icons/move-horizontal-icon/MoveHorizontalIcon.stories.tsx +380 -326
- package/dist/icons/move-vertical-icon/MoveVerticalIcon.stories.tsx +345 -291
- package/dist/icons/musical-note-icon/MusicalNoteIcon.stories.tsx +310 -266
- package/dist/icons/notepad-icon/NotepadIcon.stories.tsx +311 -271
- package/dist/icons/notes-icon/NotesIcon.stories.tsx +311 -271
- package/dist/icons/page-search-icon/PageSearchIcon.stories.tsx +309 -271
- package/dist/icons/page-text-icon/PageTextIcon.stories.tsx +248 -210
- package/dist/icons/paint-roll-icon/PaintRollIcon.stories.tsx +310 -262
- package/dist/icons/paper-plane-icon/PaperPlaneIcon.stories.tsx +274 -236
- package/dist/icons/pause-icon/PauseIcon.stories.tsx +324 -280
- package/dist/icons/pencil-icon/PencilIcon.stories.tsx +323 -281
- package/dist/icons/phone-icon/PhoneIcon.stories.tsx +288 -240
- package/dist/icons/plus-icon/PlusIcon.stories.tsx +315 -273
- package/dist/icons/pocket-studio-icon/PocketStudioIcon.stories.tsx +278 -234
- package/dist/icons/scroll-down-icon/ScrollDownIcon.stories.tsx +161 -151
- package/dist/icons/search-icon/SearchIcon.stories.tsx +324 -284
- package/dist/icons/setting-icon/SettingIcon.stories.tsx +306 -264
- package/dist/icons/share-icon/ShareIcon.stories.tsx +314 -272
- package/dist/icons/shield-icon/ShieldIcon.stories.tsx +281 -235
- package/dist/icons/site-logo-icon/SiteLogoIcon.stories.tsx +309 -250
- package/dist/icons/skip-backward-icon/SkipBackwardIcon.stories.tsx +317 -279
- package/dist/icons/skip-forward-icon/SkipForwardIcon.stories.tsx +315 -279
- package/dist/icons/sparkles-soft-icon/SparklesSoftIcon.stories.tsx +299 -253
- package/dist/icons/spinner-gradient-icon/SpinnerGradientIcon.stories.tsx +185 -169
- package/dist/icons/spinner-gradient-icon/index.tsx +6 -1
- package/dist/icons/spinner-solid-icon/SpinnerSolidIcon.stories.tsx +192 -168
- package/dist/icons/spinner-solid-icon/index.tsx +6 -1
- package/dist/icons/spinner-solid-neutral-icon/SpinnerSolidINeutralcon.stories.tsx +212 -178
- package/dist/icons/spinner-solid-neutral-icon/index.tsx +1 -1
- package/dist/icons/star-icon/StarIcon.stories.tsx +290 -244
- package/dist/icons/store-coin-icon/StoreCoinIcon.stories.tsx +286 -234
- package/dist/icons/suggestion-icon/SuggestionIcon.stories.tsx +272 -230
- package/dist/icons/sun-icon/SunIcon.stories.tsx +262 -226
- package/dist/icons/text-color-icon/TextColorIcon.stories.tsx +321 -279
- package/dist/icons/text-indicator-icon/TextIndicatorIcon.stories.tsx +332 -282
- package/dist/icons/threads-icon/ThreadsIcon.stories.tsx +394 -342
- package/dist/icons/tick-circle-icon/TickCircleIcon.stories.tsx +338 -290
- package/dist/icons/tick-icon/TickIcon.stories.tsx +364 -315
- package/dist/icons/trash-icon/TrashIcon.stories.tsx +293 -253
- package/dist/icons/twitter-x-icon/TwitterXIcon.stories.tsx +396 -338
- package/dist/icons/upload-icon/UploadIcon.stories.tsx +291 -247
- package/dist/icons/vertical-menu-icon/VerticalMenuIcon.stories.tsx +309 -271
- package/dist/icons/video-play-list-icon/VideoPlaylistIcon.stories.tsx +336 -290
- package/dist/icons/voice-playing-icon/VoicePlayingIcon.stories.tsx +382 -334
- package/dist/icons/volume-full-icon/VolumeFullIcon.stories.tsx +349 -305
- package/dist/icons/volume-half-icon/VolumeHalfIcon.stories.tsx +327 -295
- package/dist/icons/volume-off-icon/VolumeOffIcon.stories.tsx +336 -296
- package/dist/icons/warning-icon/WarningIcon.stories.tsx +314 -274
- package/dist/icons/youtube-icon/YoutubeIcon.stories.tsx +311 -261
- package/dist/index.cjs +84 -84
- package/dist/index.js +84 -84
- package/dist/styles/aural-all-theme.css +1222 -0
- package/dist/styles/{aural-theme.css → aural-dark-theme.css} +15 -3
- package/dist/styles/aural-light-theme.css +1047 -0
- 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
|
|
94
|
-
|
|
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
|
|
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
|
|
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
|
|
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
|
|
149
|
-
|
|
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
|
|
164
|
+
<label className="text-fm-tertiary text-sm font-medium">
|
|
159
165
|
Basic Controlled
|
|
160
166
|
</label>
|
|
161
|
-
<div className="text-
|
|
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
|
|
197
|
+
<label className="text-fm-tertiary text-sm font-medium">
|
|
192
198
|
Pre-filled Controlled
|
|
193
199
|
</label>
|
|
194
|
-
<div className="text-
|
|
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
|
|
214
|
+
<label className="text-fm-tertiary text-sm font-medium">
|
|
209
215
|
With Validation
|
|
210
216
|
</label>
|
|
211
|
-
<div className="text-
|
|
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-
|
|
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
|
|
252
|
-
|
|
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
|
|
269
|
+
<label className="text-fm-tertiary text-sm font-medium">
|
|
262
270
|
Basic Uncontrolled
|
|
263
271
|
</label>
|
|
264
|
-
<div className="text-
|
|
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
|
|
285
|
+
<label className="text-fm-tertiary text-sm font-medium">
|
|
278
286
|
With Initial Value
|
|
279
287
|
</label>
|
|
280
|
-
<div className="text-
|
|
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
|
|
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-
|
|
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
|
|
361
|
-
|
|
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
|
|
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
|
|
388
|
+
<span className="text-fm-tertiary text-xs font-medium">
|
|
379
389
|
Search Results
|
|
380
390
|
</span>
|
|
381
|
-
<span className="text-
|
|
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
|
|
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
|
|
407
|
-
<h4 className="mb-2 text-sm font-medium
|
|
408
|
-
|
|
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
|
|
438
|
-
<p className="text-
|
|
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
|
|
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
|
|
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-
|
|
459
|
-
<span className="text-
|
|
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
|
|
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
|
|
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
|
|
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-
|
|
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
|
|
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
|
|
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
|
|
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
|
|
544
|
+
<p className="text-fm-primary text-sm font-medium">
|
|
531
545
|
No results found
|
|
532
546
|
</p>
|
|
533
|
-
<p className="text-
|
|
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
|
|
577
|
-
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
655
|
-
<h4 className="mb-2 text-sm font-medium
|
|
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
|
|
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="
|
|
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="
|
|
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="
|
|
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="
|
|
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"
|