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.
- 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/clamp-lines/ClampLines.stories.tsx +25 -0
- package/dist/components/clamp-lines/index.tsx +6 -1
- 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/input/index.tsx +2 -0
- 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
|
@@ -11,9 +11,9 @@ const meta: Meta<typeof SearchIcon> = {
|
|
|
11
11
|
backgrounds: {
|
|
12
12
|
default: "dark",
|
|
13
13
|
values: [
|
|
14
|
-
{ name: "dark", value: "
|
|
15
|
-
{ name: "darker", value: "
|
|
16
|
-
{ name: "light", value: "
|
|
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,42 +40,42 @@ const meta: Meta<typeof SearchIcon> = {
|
|
|
40
40
|
background: transparent !important;
|
|
41
41
|
}
|
|
42
42
|
body {
|
|
43
|
-
background:
|
|
43
|
+
background: var(--color-fm-surface-primary) !important;
|
|
44
44
|
}
|
|
45
45
|
#storybook-docs {
|
|
46
|
-
background:
|
|
46
|
+
background: var(--color-fm-surface-primary) !important;
|
|
47
47
|
}
|
|
48
48
|
.sbdocs-preview {
|
|
49
49
|
background: transparent !important;
|
|
50
50
|
border: none !important;
|
|
51
51
|
}
|
|
52
52
|
.sbdocs-h1, .sbdocs-h2, .sbdocs-h3, .sbdocs-h4, .sbdocs-h5, .sbdocs-h6 {
|
|
53
|
-
color:
|
|
53
|
+
color: var(--color-fm-icon-active) !important;
|
|
54
54
|
}
|
|
55
55
|
.sbdocs-p, .sbdocs-li {
|
|
56
|
-
color:
|
|
56
|
+
color: var(--color-fm-secondary) !important;
|
|
57
57
|
}
|
|
58
58
|
.sbdocs-code {
|
|
59
|
-
background:
|
|
60
|
-
color:
|
|
61
|
-
border: 1px solid
|
|
59
|
+
background: var(--color-fm-surface-secondary) !important;
|
|
60
|
+
color: var(--color-fm-secondary-500) !important;
|
|
61
|
+
border: 1px solid var(--color-fm-divider-secondary) !important;
|
|
62
62
|
}
|
|
63
63
|
.sbdocs-pre {
|
|
64
|
-
background:
|
|
65
|
-
border: 1px solid
|
|
64
|
+
background: var(--color-fm-surface-secondary) !important;
|
|
65
|
+
border: 1px solid var(--color-fm-divider-secondary) !important;
|
|
66
66
|
}
|
|
67
67
|
.sbdocs-table {
|
|
68
|
-
background:
|
|
69
|
-
border: 1px solid
|
|
68
|
+
background: var(--color-fm-surface-secondary) !important;
|
|
69
|
+
border: 1px solid var(--color-fm-divider-secondary) !important;
|
|
70
70
|
}
|
|
71
71
|
.sbdocs-table th {
|
|
72
|
-
background:
|
|
73
|
-
color:
|
|
74
|
-
border-bottom: 1px solid
|
|
72
|
+
background: var(--color-fm-surface-secondary) !important;
|
|
73
|
+
color: var(--color-fm-icon-active) !important;
|
|
74
|
+
border-bottom: 1px solid var(--color-fm-divider-secondary) !important;
|
|
75
75
|
}
|
|
76
76
|
.sbdocs-table td {
|
|
77
|
-
color:
|
|
78
|
-
border-bottom: 1px solid
|
|
77
|
+
color: var(--color-fm-secondary) !important;
|
|
78
|
+
border-bottom: 1px solid var(--color-fm-divider-tertiary) !important;
|
|
79
79
|
}
|
|
80
80
|
@keyframes search-pulse {
|
|
81
81
|
0%, 100% { transform: scale(1); opacity: 1; }
|
|
@@ -101,19 +101,19 @@ const meta: Meta<typeof SearchIcon> = {
|
|
|
101
101
|
`}
|
|
102
102
|
</style>
|
|
103
103
|
|
|
104
|
-
<div className="
|
|
104
|
+
<div className="from-fm-surface-primary via-fm-icon-info/5 to-fm-surface-primary min-h-screen bg-linear-to-br">
|
|
105
105
|
{/* Header */}
|
|
106
|
-
<div className="relative overflow-hidden border-b
|
|
107
|
-
<div className="absolute inset-0 bg-
|
|
106
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary relative overflow-hidden border-b backdrop-blur-xl">
|
|
107
|
+
<div className="from-fm-icon-info/10 to-fm-secondary-500/10 absolute inset-0 bg-linear-to-r via-transparent" />
|
|
108
108
|
<div className="relative !mx-auto max-w-7xl px-6 py-16">
|
|
109
109
|
<div className="!space-y-6 text-center">
|
|
110
|
-
<div className="!mx-auto flex h-24 w-24 items-center justify-center rounded-2xl border
|
|
111
|
-
<SearchIcon className="h-12 w-12
|
|
110
|
+
<div className="border-fm-icon-info/30 from-fm-icon-info/20 to-fm-secondary-500/20 !mx-auto flex h-24 w-24 items-center justify-center rounded-2xl border bg-linear-to-br">
|
|
111
|
+
<SearchIcon className="text-fm-icon-info h-12 w-12" />
|
|
112
112
|
</div>
|
|
113
113
|
<h1 className="!text-fm-primary text-5xl font-bold">
|
|
114
114
|
SearchIcon
|
|
115
115
|
</h1>
|
|
116
|
-
<p className="!mx-auto max-w-3xl text-xl leading-relaxed
|
|
116
|
+
<p className="text-fm-secondary! !mx-auto max-w-3xl text-xl leading-relaxed">
|
|
117
117
|
A versatile search icon for search inputs, filters, and
|
|
118
118
|
discovery features. Perfect for search bars, data tables,
|
|
119
119
|
and navigation. Built with accessibility in mind using Radix
|
|
@@ -123,28 +123,28 @@ const meta: Meta<typeof SearchIcon> = {
|
|
|
123
123
|
{/* Stats */}
|
|
124
124
|
<div className="flex items-center justify-center gap-8 pt-8">
|
|
125
125
|
<div className="text-center">
|
|
126
|
-
<div className="text-3xl font-bold
|
|
126
|
+
<div className="text-fm-icon-info text-3xl font-bold">
|
|
127
127
|
Discover
|
|
128
128
|
</div>
|
|
129
|
-
<div className="text-
|
|
129
|
+
<div className="text-fm-tertiary text-sm">
|
|
130
130
|
Find what you need
|
|
131
131
|
</div>
|
|
132
132
|
</div>
|
|
133
|
-
<div className="h-8 w-px
|
|
133
|
+
<div className="bg-fm-divider-primary h-8 w-px" />
|
|
134
134
|
<div className="text-center">
|
|
135
|
-
<div className="text-3xl font-bold
|
|
135
|
+
<div className="text-fm-secondary-600 text-3xl font-bold">
|
|
136
136
|
Filter
|
|
137
137
|
</div>
|
|
138
|
-
<div className="text-
|
|
138
|
+
<div className="text-fm-tertiary text-sm">
|
|
139
139
|
Refine your results
|
|
140
140
|
</div>
|
|
141
141
|
</div>
|
|
142
|
-
<div className="h-8 w-px
|
|
142
|
+
<div className="bg-fm-divider-primary h-8 w-px" />
|
|
143
143
|
<div className="text-center">
|
|
144
|
-
<div className="text-3xl font-bold
|
|
144
|
+
<div className="text-fm-icon-info text-3xl font-bold">
|
|
145
145
|
Explore
|
|
146
146
|
</div>
|
|
147
|
-
<div className="text-
|
|
147
|
+
<div className="text-fm-tertiary text-sm">
|
|
148
148
|
Navigate content
|
|
149
149
|
</div>
|
|
150
150
|
</div>
|
|
@@ -157,16 +157,16 @@ const meta: Meta<typeof SearchIcon> = {
|
|
|
157
157
|
<div className="!mx-auto max-w-7xl !space-y-16 px-6 py-12">
|
|
158
158
|
{/* Quick Usage */}
|
|
159
159
|
<div className="!space-y-8">
|
|
160
|
-
<h2 className="text-center text-3xl font-bold
|
|
160
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
161
161
|
Quick Start
|
|
162
162
|
</h2>
|
|
163
163
|
<div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
|
|
164
164
|
<div className="!space-y-4">
|
|
165
|
-
<h3 className="text-xl font-semibold
|
|
165
|
+
<h3 className="text-fm-icon-info! text-xl font-semibold">
|
|
166
166
|
Basic Usage
|
|
167
167
|
</h3>
|
|
168
|
-
<div className="rounded-lg
|
|
169
|
-
<pre className="overflow-x-auto text-sm
|
|
168
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
169
|
+
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
170
170
|
{`import { SearchIcon } from "@icons/search-icon"
|
|
171
171
|
|
|
172
172
|
function SearchInput() {
|
|
@@ -186,16 +186,16 @@ function SearchInput() {
|
|
|
186
186
|
</div>
|
|
187
187
|
|
|
188
188
|
<div className="!space-y-4">
|
|
189
|
-
<h3 className="text-xl font-semibold
|
|
189
|
+
<h3 className="text-fm-icon-info! text-xl font-semibold">
|
|
190
190
|
Live Preview
|
|
191
191
|
</h3>
|
|
192
|
-
<div className="flex h-32 items-center justify-center rounded-lg border
|
|
192
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary flex h-32 items-center justify-center rounded-lg border">
|
|
193
193
|
<div className="relative">
|
|
194
|
-
<SearchIcon className="absolute top-1/2 left-3 h-4 w-4 -translate-y-1/2
|
|
194
|
+
<SearchIcon className="text-fm-placeholder absolute top-1/2 left-3 h-4 w-4 -translate-y-1/2" />
|
|
195
195
|
<input
|
|
196
196
|
type="text"
|
|
197
197
|
placeholder="Search..."
|
|
198
|
-
className="
|
|
198
|
+
className="border-fm-divider-primary bg-fm-surface-secondary text-fm-icon-active focus:border-fm-icon-info rounded-lg border py-2 pr-4 pl-10 placeholder-white/50 focus:ring-2 focus:ring-blue-400/20 focus:outline-none"
|
|
199
199
|
/>
|
|
200
200
|
</div>
|
|
201
201
|
</div>
|
|
@@ -205,122 +205,130 @@ function SearchInput() {
|
|
|
205
205
|
|
|
206
206
|
{/* Props Documentation */}
|
|
207
207
|
<div className="!space-y-8">
|
|
208
|
-
<h2 className="text-center text-3xl font-bold
|
|
208
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
209
209
|
Props & Configuration
|
|
210
210
|
</h2>
|
|
211
211
|
|
|
212
|
-
<div className="overflow-hidden rounded-lg border
|
|
213
|
-
<div className="bg-
|
|
214
|
-
<h3 className="text-xl font-semibold
|
|
212
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary overflow-hidden rounded-lg border">
|
|
213
|
+
<div className="bg-fm-surface-secondary p-4">
|
|
214
|
+
<h3 className="text-fm-icon-active! text-xl font-semibold">
|
|
215
|
+
Props
|
|
216
|
+
</h3>
|
|
215
217
|
</div>
|
|
216
218
|
<table className="!my-0 w-full">
|
|
217
|
-
<thead className="bg-
|
|
218
|
-
<tr className="border-
|
|
219
|
-
<th className="px-6 py-4 text-left text-sm font-semibold
|
|
219
|
+
<thead className="bg-fm-surface-secondary">
|
|
220
|
+
<tr className="border-fm-divider-secondary border-b">
|
|
221
|
+
<th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
|
|
220
222
|
Prop
|
|
221
223
|
</th>
|
|
222
|
-
<th className="px-6 py-4 text-left text-sm font-semibold
|
|
224
|
+
<th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
|
|
223
225
|
Type
|
|
224
226
|
</th>
|
|
225
|
-
<th className="px-6 py-4 text-left text-sm font-semibold
|
|
227
|
+
<th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
|
|
226
228
|
Default
|
|
227
229
|
</th>
|
|
228
|
-
<th className="px-6 py-4 text-left text-sm font-semibold
|
|
230
|
+
<th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
|
|
229
231
|
Description
|
|
230
232
|
</th>
|
|
231
233
|
</tr>
|
|
232
234
|
</thead>
|
|
233
235
|
<tbody>
|
|
234
236
|
{" "}
|
|
235
|
-
<tr className="
|
|
236
|
-
<td className="px-6 py-4 font-mono text-sm
|
|
237
|
+
<tr className="bg-fm-surface-secondary!">
|
|
238
|
+
<td className="text-fm-icon-info! px-6 py-4 font-mono text-sm">
|
|
237
239
|
withAccessibility
|
|
238
240
|
</td>
|
|
239
|
-
<td className="px-6 py-4 text-sm
|
|
241
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
240
242
|
boolean
|
|
241
243
|
</td>
|
|
242
|
-
<td className="px-6 py-4 text-sm
|
|
244
|
+
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
243
245
|
true
|
|
244
246
|
</td>
|
|
245
|
-
<td className="px-6 py-4 text-sm
|
|
247
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
246
248
|
Whether to wrap the icon with accessibility feature
|
|
247
249
|
</td>
|
|
248
250
|
</tr>
|
|
249
|
-
<tr className="border-
|
|
250
|
-
<td className="px-6 py-4 font-mono text-sm
|
|
251
|
+
<tr className="border-fm-divider-tertiary bg-fm-surface-secondary! border-b">
|
|
252
|
+
<td className="text-fm-icon-info! px-6 py-4 font-mono text-sm">
|
|
251
253
|
height
|
|
252
254
|
</td>
|
|
253
|
-
<td className="px-6 py-4 text-sm
|
|
255
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
254
256
|
number | string
|
|
255
257
|
</td>
|
|
256
|
-
<td className="px-6 py-4 text-sm
|
|
257
|
-
|
|
258
|
+
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
259
|
+
14
|
|
260
|
+
</td>
|
|
261
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
258
262
|
Height of the icon in pixels
|
|
259
263
|
</td>
|
|
260
264
|
</tr>
|
|
261
|
-
<tr className="border-
|
|
262
|
-
<td className="px-6 py-4 font-mono text-sm
|
|
265
|
+
<tr className="border-fm-divider-tertiary border-b">
|
|
266
|
+
<td className="text-fm-icon-info! px-6 py-4 font-mono text-sm">
|
|
263
267
|
stroke
|
|
264
268
|
</td>
|
|
265
|
-
<td className="px-6 py-4 text-sm
|
|
269
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
266
270
|
string
|
|
267
271
|
</td>
|
|
268
|
-
<td className="px-6 py-4 text-sm
|
|
272
|
+
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
269
273
|
currentColor
|
|
270
274
|
</td>
|
|
271
|
-
<td className="px-6 py-4 text-sm
|
|
275
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
272
276
|
Stroke color of the search icon
|
|
273
277
|
</td>
|
|
274
278
|
</tr>
|
|
275
|
-
<tr className="border-
|
|
276
|
-
<td className="px-6 py-4 font-mono text-sm
|
|
279
|
+
<tr className="border-fm-divider-tertiary bg-fm-surface-secondary! border-b">
|
|
280
|
+
<td className="text-fm-icon-info! px-6 py-4 font-mono text-sm">
|
|
277
281
|
strokeWidth
|
|
278
282
|
</td>
|
|
279
|
-
<td className="px-6 py-4 text-sm
|
|
283
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
280
284
|
number | string
|
|
281
285
|
</td>
|
|
282
|
-
<td className="px-6 py-4 text-sm
|
|
286
|
+
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
283
287
|
1.5
|
|
284
288
|
</td>
|
|
285
|
-
<td className="px-6 py-4 text-sm
|
|
289
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
286
290
|
Thickness of the stroke lines
|
|
287
291
|
</td>
|
|
288
292
|
</tr>
|
|
289
|
-
<tr className="border-
|
|
290
|
-
<td className="px-6 py-4 font-mono text-sm
|
|
293
|
+
<tr className="border-fm-divider-tertiary border-b">
|
|
294
|
+
<td className="text-fm-icon-info! px-6 py-4 font-mono text-sm">
|
|
291
295
|
strokeLinecap
|
|
292
296
|
</td>
|
|
293
|
-
<td className="px-6 py-4 text-sm
|
|
297
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
294
298
|
string
|
|
295
299
|
</td>
|
|
296
|
-
<td className="px-6 py-4 text-sm
|
|
300
|
+
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
297
301
|
square
|
|
298
302
|
</td>
|
|
299
|
-
<td className="px-6 py-4 text-sm
|
|
303
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
300
304
|
Style of line endings
|
|
301
305
|
</td>
|
|
302
306
|
</tr>
|
|
303
|
-
<tr className="border-
|
|
304
|
-
<td className="px-6 py-4 font-mono text-sm
|
|
307
|
+
<tr className="border-fm-divider-tertiary bg-fm-surface-secondary! border-b">
|
|
308
|
+
<td className="text-fm-icon-info! px-6 py-4 font-mono text-sm">
|
|
305
309
|
className
|
|
306
310
|
</td>
|
|
307
|
-
<td className="px-6 py-4 text-sm
|
|
311
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
308
312
|
string
|
|
309
313
|
</td>
|
|
310
|
-
<td className="px-6 py-4 text-sm
|
|
311
|
-
|
|
314
|
+
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
315
|
+
-
|
|
316
|
+
</td>
|
|
317
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
312
318
|
CSS classes for styling
|
|
313
319
|
</td>
|
|
314
320
|
</tr>
|
|
315
|
-
<tr className="
|
|
316
|
-
<td className="px-6 py-4 font-mono text-sm
|
|
321
|
+
<tr className="bg-fm-surface-secondary!">
|
|
322
|
+
<td className="text-fm-icon-info! px-6 py-4 font-mono text-sm">
|
|
317
323
|
...svgProps
|
|
318
324
|
</td>
|
|
319
|
-
<td className="px-6 py-4 text-sm
|
|
325
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
320
326
|
SVGProps
|
|
321
327
|
</td>
|
|
322
|
-
<td className="px-6 py-4 text-sm
|
|
323
|
-
|
|
328
|
+
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
329
|
+
-
|
|
330
|
+
</td>
|
|
331
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
324
332
|
All standard SVG element props
|
|
325
333
|
</td>
|
|
326
334
|
</tr>
|
|
@@ -331,50 +339,62 @@ function SearchInput() {
|
|
|
331
339
|
|
|
332
340
|
{/* Size Variations */}
|
|
333
341
|
<div className="!space-y-8">
|
|
334
|
-
<h2 className="text-center text-3xl font-bold
|
|
342
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
335
343
|
Size Variations
|
|
336
344
|
</h2>
|
|
337
|
-
<div className="rounded-lg border
|
|
345
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-8">
|
|
338
346
|
<div className="!space-y-6">
|
|
339
347
|
<div className="grid grid-cols-1 gap-8 md:grid-cols-2">
|
|
340
348
|
<div className="!space-y-4">
|
|
341
|
-
<h3 className="text-lg font-semibold
|
|
349
|
+
<h3 className="text-fm-icon-info! text-lg font-semibold">
|
|
342
350
|
Standard Sizes
|
|
343
351
|
</h3>
|
|
344
|
-
<div className="flex items-end gap-6 rounded-lg
|
|
352
|
+
<div className="bg-fm-surface-secondary flex items-end gap-6 rounded-lg p-6">
|
|
345
353
|
<div className="text-center">
|
|
346
|
-
<SearchIcon className="!mx-auto mb-2 h-3 w-3
|
|
347
|
-
<span className="text-
|
|
354
|
+
<SearchIcon className="text-fm-icon-info !mx-auto mb-2 h-3 w-3" />
|
|
355
|
+
<span className="text-fm-tertiary text-xs">
|
|
356
|
+
12px
|
|
357
|
+
</span>
|
|
348
358
|
</div>
|
|
349
359
|
<div className="text-center">
|
|
350
|
-
<SearchIcon className="!mx-auto mb-2 h-4 w-4
|
|
351
|
-
<span className="text-
|
|
360
|
+
<SearchIcon className="text-fm-icon-info !mx-auto mb-2 h-4 w-4" />
|
|
361
|
+
<span className="text-fm-tertiary text-xs">
|
|
362
|
+
16px
|
|
363
|
+
</span>
|
|
352
364
|
</div>
|
|
353
365
|
<div className="text-center">
|
|
354
|
-
<SearchIcon className="!mx-auto mb-2 h-5 w-5
|
|
355
|
-
<span className="text-
|
|
366
|
+
<SearchIcon className="text-fm-icon-info !mx-auto mb-2 h-5 w-5" />
|
|
367
|
+
<span className="text-fm-tertiary text-xs">
|
|
368
|
+
20px
|
|
369
|
+
</span>
|
|
356
370
|
</div>
|
|
357
371
|
<div className="text-center">
|
|
358
|
-
<SearchIcon className="!mx-auto mb-2 h-6 w-6
|
|
359
|
-
<span className="text-
|
|
372
|
+
<SearchIcon className="text-fm-icon-info !mx-auto mb-2 h-6 w-6" />
|
|
373
|
+
<span className="text-fm-tertiary text-xs">
|
|
374
|
+
24px
|
|
375
|
+
</span>
|
|
360
376
|
</div>
|
|
361
377
|
<div className="text-center">
|
|
362
|
-
<SearchIcon className="!mx-auto mb-2 h-8 w-8
|
|
363
|
-
<span className="text-
|
|
378
|
+
<SearchIcon className="text-fm-icon-info !mx-auto mb-2 h-8 w-8" />
|
|
379
|
+
<span className="text-fm-tertiary text-xs">
|
|
380
|
+
32px
|
|
381
|
+
</span>
|
|
364
382
|
</div>
|
|
365
383
|
<div className="text-center">
|
|
366
|
-
<SearchIcon className="!mx-auto mb-2 h-12 w-12
|
|
367
|
-
<span className="text-
|
|
384
|
+
<SearchIcon className="text-fm-icon-info !mx-auto mb-2 h-12 w-12" />
|
|
385
|
+
<span className="text-fm-tertiary text-xs">
|
|
386
|
+
48px
|
|
387
|
+
</span>
|
|
368
388
|
</div>
|
|
369
389
|
</div>
|
|
370
390
|
</div>
|
|
371
391
|
|
|
372
392
|
<div className="!space-y-4">
|
|
373
|
-
<h3 className="text-lg font-semibold
|
|
393
|
+
<h3 className="text-fm-icon-info! text-lg font-semibold">
|
|
374
394
|
Code Example
|
|
375
395
|
</h3>
|
|
376
|
-
<div className="rounded-lg
|
|
377
|
-
<pre className="overflow-x-auto text-sm
|
|
396
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
397
|
+
<pre className="text-fm-icon-info! overflow-x-auto text-sm">
|
|
378
398
|
{`// Small (16px)
|
|
379
399
|
<SearchIcon className="h-4 w-4" />
|
|
380
400
|
|
|
@@ -396,56 +416,56 @@ function SearchInput() {
|
|
|
396
416
|
|
|
397
417
|
{/* Color Variations */}
|
|
398
418
|
<div className="!space-y-8">
|
|
399
|
-
<h2 className="text-center text-3xl font-bold
|
|
419
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
400
420
|
Color Variations
|
|
401
421
|
</h2>
|
|
402
422
|
<div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
|
|
403
423
|
<div className="!space-y-4">
|
|
404
|
-
<h3 className="text-lg font-semibold
|
|
424
|
+
<h3 className="text-fm-icon-info! text-lg font-semibold">
|
|
405
425
|
Semantic Colors
|
|
406
426
|
</h3>
|
|
407
|
-
<div className="!space-y-4 rounded-lg border
|
|
427
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
|
|
408
428
|
<div className="flex items-center gap-4">
|
|
409
|
-
<SearchIcon className="h-6 w-6
|
|
429
|
+
<SearchIcon className="text-fm-icon-info h-6 w-6" />
|
|
410
430
|
<div>
|
|
411
|
-
<div className="text-sm font-medium
|
|
431
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
412
432
|
Primary
|
|
413
433
|
</div>
|
|
414
|
-
<div className="text-
|
|
415
|
-
text-
|
|
434
|
+
<div className="text-fm-tertiary text-xs">
|
|
435
|
+
text-fm-icon-info
|
|
416
436
|
</div>
|
|
417
437
|
</div>
|
|
418
438
|
</div>
|
|
419
439
|
<div className="flex items-center gap-4">
|
|
420
|
-
<SearchIcon className="h-6 w-6
|
|
440
|
+
<SearchIcon className="text-fm-secondary-600 h-6 w-6" />
|
|
421
441
|
<div>
|
|
422
|
-
<div className="text-sm font-medium
|
|
442
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
423
443
|
Secondary
|
|
424
444
|
</div>
|
|
425
|
-
<div className="text-
|
|
426
|
-
text-
|
|
445
|
+
<div className="text-fm-tertiary text-xs">
|
|
446
|
+
text-fm-secondary-600
|
|
427
447
|
</div>
|
|
428
448
|
</div>
|
|
429
449
|
</div>
|
|
430
450
|
<div className="flex items-center gap-4">
|
|
431
|
-
<SearchIcon className="h-6 w-6
|
|
451
|
+
<SearchIcon className="text-fm-icon-info h-6 w-6" />
|
|
432
452
|
<div>
|
|
433
|
-
<div className="text-sm font-medium
|
|
453
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
434
454
|
Info
|
|
435
455
|
</div>
|
|
436
|
-
<div className="text-
|
|
437
|
-
text-
|
|
456
|
+
<div className="text-fm-tertiary text-xs">
|
|
457
|
+
text-fm-icon-info
|
|
438
458
|
</div>
|
|
439
459
|
</div>
|
|
440
460
|
</div>
|
|
441
461
|
<div className="flex items-center gap-4">
|
|
442
|
-
<SearchIcon className="h-6 w-6
|
|
462
|
+
<SearchIcon className="text-fm-placeholder h-6 w-6" />
|
|
443
463
|
<div>
|
|
444
|
-
<div className="text-sm font-medium
|
|
464
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
445
465
|
Muted
|
|
446
466
|
</div>
|
|
447
|
-
<div className="text-
|
|
448
|
-
text-
|
|
467
|
+
<div className="text-fm-tertiary text-xs">
|
|
468
|
+
text-fm-placeholder
|
|
449
469
|
</div>
|
|
450
470
|
</div>
|
|
451
471
|
</div>
|
|
@@ -453,11 +473,11 @@ function SearchInput() {
|
|
|
453
473
|
</div>
|
|
454
474
|
|
|
455
475
|
<div className="!space-y-4">
|
|
456
|
-
<h3 className="text-lg font-semibold
|
|
476
|
+
<h3 className="text-fm-icon-info! text-lg font-semibold">
|
|
457
477
|
Custom Colors
|
|
458
478
|
</h3>
|
|
459
|
-
<div className="rounded-lg
|
|
460
|
-
<pre className="overflow-x-auto text-sm
|
|
479
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
480
|
+
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
461
481
|
{`// Using Tailwind classes
|
|
462
482
|
<SearchIcon className="h-6 w-6 text-blue-400" />
|
|
463
483
|
<SearchIcon className="h-6 w-6 text-purple-500" />
|
|
@@ -482,37 +502,37 @@ function SearchInput() {
|
|
|
482
502
|
|
|
483
503
|
{/* Usage Examples */}
|
|
484
504
|
<div className="!space-y-8">
|
|
485
|
-
<h2 className="text-center text-3xl font-bold
|
|
505
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
486
506
|
Usage Examples
|
|
487
507
|
</h2>
|
|
488
508
|
|
|
489
509
|
<div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
|
|
490
510
|
{/* Search Input */}
|
|
491
511
|
<div className="!space-y-4">
|
|
492
|
-
<h3 className="text-lg font-semibold
|
|
512
|
+
<h3 className="text-fm-icon-info! text-lg font-semibold">
|
|
493
513
|
Search Input Fields
|
|
494
514
|
</h3>
|
|
495
515
|
<div className="!space-y-4">
|
|
496
516
|
<div className="!space-y-3">
|
|
497
517
|
<div className="relative">
|
|
498
|
-
<SearchIcon className="absolute top-1/2 left-3 h-4 w-4 -translate-y-1/2
|
|
518
|
+
<SearchIcon className="text-fm-placeholder absolute top-1/2 left-3 h-4 w-4 -translate-y-1/2" />
|
|
499
519
|
<input
|
|
500
520
|
type="text"
|
|
501
521
|
placeholder="Search products..."
|
|
502
|
-
className="w-full rounded-lg border
|
|
522
|
+
className="border-fm-divider-primary bg-fm-surface-secondary text-fm-icon-active focus:border-fm-icon-info w-full rounded-lg border py-2 pr-4 pl-10 placeholder-white/50 focus:ring-2 focus:ring-blue-400/20 focus:outline-none"
|
|
503
523
|
/>
|
|
504
524
|
</div>
|
|
505
525
|
<div className="relative">
|
|
506
|
-
<SearchIcon className="absolute top-1/2 left-3 h-5 w-5 -translate-y-1/2
|
|
526
|
+
<SearchIcon className="text-fm-icon-info absolute top-1/2 left-3 h-5 w-5 -translate-y-1/2" />
|
|
507
527
|
<input
|
|
508
528
|
type="text"
|
|
509
529
|
placeholder="Search users..."
|
|
510
|
-
className="
|
|
530
|
+
className="border-fm-icon-info/50 bg-fm-icon-info/10 text-fm-icon-active focus:border-fm-icon-info w-full rounded-lg border py-3 pr-4 pl-12 placeholder-blue-200/70 focus:ring-2 focus:ring-blue-400/20 focus:outline-none"
|
|
511
531
|
/>
|
|
512
532
|
</div>
|
|
513
533
|
</div>
|
|
514
|
-
<div className="rounded-lg
|
|
515
|
-
<pre className="overflow-x-auto text-sm
|
|
534
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
535
|
+
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
516
536
|
{`<div className="relative">
|
|
517
537
|
<SearchIcon className="absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-gray-400" />
|
|
518
538
|
<input
|
|
@@ -528,24 +548,24 @@ function SearchInput() {
|
|
|
528
548
|
|
|
529
549
|
{/* Search Button */}
|
|
530
550
|
<div className="!space-y-4">
|
|
531
|
-
<h3 className="text-lg font-semibold
|
|
551
|
+
<h3 className="text-fm-icon-info! text-lg font-semibold">
|
|
532
552
|
Search Buttons
|
|
533
553
|
</h3>
|
|
534
554
|
<div className="!space-y-4">
|
|
535
555
|
<div className="flex gap-4">
|
|
536
|
-
<button className="flex items-center gap-2 rounded-lg border
|
|
556
|
+
<button className="border-fm-icon-info/30 bg-fm-icon-info/20 text-fm-icon-info hover:bg-fm-icon-info/30 flex items-center gap-2 rounded-lg border px-4 py-2 transition-colors">
|
|
537
557
|
<SearchIcon className="h-4 w-4" />
|
|
538
558
|
Search
|
|
539
559
|
</button>
|
|
540
|
-
<button className="flex h-10 w-10 items-center justify-center rounded-lg border
|
|
560
|
+
<button className="border-fm-secondary-500/30 bg-fm-secondary-500/20 text-fm-secondary-600 hover:bg-fm-secondary-500/30 flex h-10 w-10 items-center justify-center rounded-lg border transition-colors">
|
|
541
561
|
<SearchIcon className="h-5 w-5" />
|
|
542
562
|
</button>
|
|
543
|
-
<button className="flex h-8 w-8 items-center justify-center rounded-full
|
|
563
|
+
<button className="bg-fm-icon-info text-fm-icon-active flex h-8 w-8 items-center justify-center rounded-full shadow-lg transition-transform hover:scale-110">
|
|
544
564
|
<SearchIcon className="h-4 w-4" />
|
|
545
565
|
</button>
|
|
546
566
|
</div>
|
|
547
|
-
<div className="rounded-lg
|
|
548
|
-
<pre className="overflow-x-auto text-sm
|
|
567
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
568
|
+
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
549
569
|
{`// Search button with text
|
|
550
570
|
<button className="flex items-center gap-2 bg-blue-500/20 border border-blue-500/30 px-4 py-2 rounded-lg">
|
|
551
571
|
<SearchIcon className="h-4 w-4" />
|
|
@@ -568,49 +588,51 @@ function SearchInput() {
|
|
|
568
588
|
|
|
569
589
|
{/* Data Table */}
|
|
570
590
|
<div className="!space-y-4">
|
|
571
|
-
<h3 className="text-lg font-semibold
|
|
591
|
+
<h3 className="text-fm-icon-info! text-lg font-semibold">
|
|
572
592
|
Data Table Search
|
|
573
593
|
</h3>
|
|
574
594
|
<div className="!space-y-4">
|
|
575
|
-
<div className="rounded-lg border
|
|
595
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-4">
|
|
576
596
|
<div className="mb-4 flex items-center justify-between">
|
|
577
|
-
<h4 className="font-medium
|
|
597
|
+
<h4 className="text-fm-icon-active font-medium">
|
|
598
|
+
Users
|
|
599
|
+
</h4>
|
|
578
600
|
<div className="relative">
|
|
579
|
-
<SearchIcon className="absolute top-1/2 left-3 h-4 w-4 -translate-y-1/2
|
|
601
|
+
<SearchIcon className="text-fm-placeholder absolute top-1/2 left-3 h-4 w-4 -translate-y-1/2" />
|
|
580
602
|
<input
|
|
581
603
|
type="text"
|
|
582
604
|
placeholder="Filter users..."
|
|
583
|
-
className="
|
|
605
|
+
className="border-fm-divider-primary bg-fm-surface-secondary text-fm-icon-active focus:border-fm-icon-info rounded-lg border py-1.5 pr-4 pl-10 text-sm placeholder-white/50 focus:outline-none"
|
|
584
606
|
/>
|
|
585
607
|
</div>
|
|
586
608
|
</div>
|
|
587
609
|
<div className="!space-y-2">
|
|
588
|
-
<div className="flex items-center gap-3 rounded border
|
|
589
|
-
<div className="h-8 w-8 rounded-full
|
|
610
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary flex items-center gap-3 rounded border p-2">
|
|
611
|
+
<div className="bg-fm-icon-info/20 h-8 w-8 rounded-full"></div>
|
|
590
612
|
<div>
|
|
591
|
-
<div className="text-sm font-medium
|
|
613
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
592
614
|
John Doe
|
|
593
615
|
</div>
|
|
594
|
-
<div className="text-
|
|
616
|
+
<div className="text-fm-tertiary text-xs">
|
|
595
617
|
john@example.com
|
|
596
618
|
</div>
|
|
597
619
|
</div>
|
|
598
620
|
</div>
|
|
599
|
-
<div className="flex items-center gap-3 rounded border
|
|
600
|
-
<div className="h-8 w-8 rounded-full
|
|
621
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary flex items-center gap-3 rounded border p-2">
|
|
622
|
+
<div className="bg-fm-secondary-500/20 h-8 w-8 rounded-full"></div>
|
|
601
623
|
<div>
|
|
602
|
-
<div className="text-sm font-medium
|
|
624
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
603
625
|
Jane Smith
|
|
604
626
|
</div>
|
|
605
|
-
<div className="text-
|
|
627
|
+
<div className="text-fm-tertiary text-xs">
|
|
606
628
|
jane@example.com
|
|
607
629
|
</div>
|
|
608
630
|
</div>
|
|
609
631
|
</div>
|
|
610
632
|
</div>
|
|
611
633
|
</div>
|
|
612
|
-
<div className="rounded-lg
|
|
613
|
-
<pre className="overflow-x-auto text-sm
|
|
634
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
635
|
+
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
614
636
|
{`<div className="flex items-center justify-between mb-4">
|
|
615
637
|
<h4>Users</h4>
|
|
616
638
|
<div className="relative">
|
|
@@ -625,37 +647,37 @@ function SearchInput() {
|
|
|
625
647
|
|
|
626
648
|
{/* Navigation Search */}
|
|
627
649
|
<div className="!space-y-4">
|
|
628
|
-
<h3 className="text-lg font-semibold
|
|
650
|
+
<h3 className="text-fm-icon-info! text-lg font-semibold">
|
|
629
651
|
Navigation & Command Palette
|
|
630
652
|
</h3>
|
|
631
653
|
<div className="!space-y-4">
|
|
632
|
-
<div className="rounded-lg border
|
|
654
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-4">
|
|
633
655
|
<div className="!space-y-3">
|
|
634
|
-
<div className="flex items-center gap-3 rounded-lg border
|
|
635
|
-
<SearchIcon className="h-5 w-5
|
|
656
|
+
<div className="border-fm-icon-info/30 bg-fm-icon-info/10 flex items-center gap-3 rounded-lg border p-3">
|
|
657
|
+
<SearchIcon className="text-fm-icon-info h-5 w-5" />
|
|
636
658
|
<input
|
|
637
659
|
type="text"
|
|
638
660
|
placeholder="Search commands..."
|
|
639
|
-
className="flex-1 bg-transparent
|
|
661
|
+
className="text-fm-icon-active flex-1 bg-transparent placeholder-blue-200/70 focus:outline-none"
|
|
640
662
|
/>
|
|
641
|
-
<kbd className="
|
|
663
|
+
<kbd className="bg-fm-surface-secondary text-fm-secondary rounded px-2 py-1 text-xs">
|
|
642
664
|
⌘K
|
|
643
665
|
</kbd>
|
|
644
666
|
</div>
|
|
645
667
|
<div className="!space-y-1">
|
|
646
|
-
<div className="flex items-center gap-3 rounded p-2
|
|
647
|
-
<SearchIcon className="h-4 w-4
|
|
668
|
+
<div className="text-fm-icon-active/80 hover:bg-fm-surface-secondary flex items-center gap-3 rounded p-2">
|
|
669
|
+
<SearchIcon className="text-fm-icon-info h-4 w-4" />
|
|
648
670
|
<span className="text-sm">Search files</span>
|
|
649
671
|
</div>
|
|
650
|
-
<div className="flex items-center gap-3 rounded p-2
|
|
651
|
-
<SearchIcon className="h-4 w-4
|
|
672
|
+
<div className="text-fm-icon-active/80 hover:bg-fm-surface-secondary flex items-center gap-3 rounded p-2">
|
|
673
|
+
<SearchIcon className="text-fm-secondary-600 h-4 w-4" />
|
|
652
674
|
<span className="text-sm">Find in project</span>
|
|
653
675
|
</div>
|
|
654
676
|
</div>
|
|
655
677
|
</div>
|
|
656
678
|
</div>
|
|
657
|
-
<div className="rounded-lg
|
|
658
|
-
<pre className="overflow-x-auto text-sm
|
|
679
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
680
|
+
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
659
681
|
{`<div className="flex items-center gap-3 rounded-lg border border-blue-400/30 bg-blue-500/10 p-3">
|
|
660
682
|
<SearchIcon className="h-5 w-5 text-blue-400" />
|
|
661
683
|
<input
|
|
@@ -674,66 +696,66 @@ function SearchInput() {
|
|
|
674
696
|
|
|
675
697
|
{/* Interactive States */}
|
|
676
698
|
<div className="!space-y-8">
|
|
677
|
-
<h2 className="text-center text-3xl font-bold
|
|
699
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
678
700
|
Interactive States & Animations
|
|
679
701
|
</h2>
|
|
680
702
|
<div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
|
|
681
703
|
<div className="!space-y-4">
|
|
682
|
-
<h3 className="text-lg font-semibold
|
|
704
|
+
<h3 className="text-fm-icon-info! text-lg font-semibold">
|
|
683
705
|
Hover & Animation Effects
|
|
684
706
|
</h3>
|
|
685
|
-
<div className="!space-y-4 rounded-lg border
|
|
707
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
|
|
686
708
|
<div className="flex items-center gap-4">
|
|
687
|
-
<SearchIcon className="h-6 w-6
|
|
709
|
+
<SearchIcon className="text-fm-tertiary hover:text-fm-icon-info h-6 w-6 transition-colors" />
|
|
688
710
|
<div>
|
|
689
|
-
<div className="text-sm font-medium
|
|
711
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
690
712
|
Color Change
|
|
691
713
|
</div>
|
|
692
|
-
<div className="text-
|
|
714
|
+
<div className="text-fm-tertiary text-xs">
|
|
693
715
|
Hover to see effect
|
|
694
716
|
</div>
|
|
695
717
|
</div>
|
|
696
718
|
</div>
|
|
697
719
|
<div className="flex items-center gap-4">
|
|
698
|
-
<SearchIcon className="h-6 w-6
|
|
720
|
+
<SearchIcon className="text-fm-icon-active h-6 w-6 transition-transform hover:scale-125" />
|
|
699
721
|
<div>
|
|
700
|
-
<div className="text-sm font-medium
|
|
722
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
701
723
|
Scale on Hover
|
|
702
724
|
</div>
|
|
703
|
-
<div className="text-
|
|
725
|
+
<div className="text-fm-tertiary text-xs">
|
|
704
726
|
Grow on interaction
|
|
705
727
|
</div>
|
|
706
728
|
</div>
|
|
707
729
|
</div>
|
|
708
730
|
<div className="flex items-center gap-4">
|
|
709
|
-
<SearchIcon className="animate-search-pulse h-6 w-6
|
|
731
|
+
<SearchIcon className="animate-search-pulse text-fm-icon-info h-6 w-6" />
|
|
710
732
|
<div>
|
|
711
|
-
<div className="text-sm font-medium
|
|
733
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
712
734
|
Search Pulse
|
|
713
735
|
</div>
|
|
714
|
-
<div className="text-
|
|
736
|
+
<div className="text-fm-tertiary text-xs">
|
|
715
737
|
Continuous animation
|
|
716
738
|
</div>
|
|
717
739
|
</div>
|
|
718
740
|
</div>
|
|
719
741
|
<div className="flex items-center gap-4">
|
|
720
|
-
<SearchIcon className="animate-search-bounce h-6 w-6
|
|
742
|
+
<SearchIcon className="animate-search-bounce text-fm-secondary-600 h-6 w-6" />
|
|
721
743
|
<div>
|
|
722
|
-
<div className="text-sm font-medium
|
|
744
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
723
745
|
Bounce Effect
|
|
724
746
|
</div>
|
|
725
|
-
<div className="text-
|
|
747
|
+
<div className="text-fm-tertiary text-xs">
|
|
726
748
|
Gentle bounce motion
|
|
727
749
|
</div>
|
|
728
750
|
</div>
|
|
729
751
|
</div>
|
|
730
752
|
<div className="flex items-center gap-4">
|
|
731
|
-
<SearchIcon className="animate-search-glow h-6 w-6
|
|
753
|
+
<SearchIcon className="animate-search-glow text-fm-icon-info h-6 w-6" />
|
|
732
754
|
<div>
|
|
733
|
-
<div className="text-sm font-medium
|
|
755
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
734
756
|
Glow Animation
|
|
735
757
|
</div>
|
|
736
|
-
<div className="text-
|
|
758
|
+
<div className="text-fm-tertiary text-xs">
|
|
737
759
|
Glowing search effect
|
|
738
760
|
</div>
|
|
739
761
|
</div>
|
|
@@ -742,11 +764,11 @@ function SearchInput() {
|
|
|
742
764
|
</div>
|
|
743
765
|
|
|
744
766
|
<div className="!space-y-4">
|
|
745
|
-
<h3 className="text-lg font-semibold
|
|
767
|
+
<h3 className="text-fm-icon-info! text-lg font-semibold">
|
|
746
768
|
State Examples
|
|
747
769
|
</h3>
|
|
748
|
-
<div className="rounded-lg
|
|
749
|
-
<pre className="overflow-x-auto text-sm
|
|
770
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
771
|
+
<pre className="text-fm-icon-info! overflow-x-auto text-sm">
|
|
750
772
|
{`// Color change on hover
|
|
751
773
|
<SearchIcon className="h-6 w-6 text-white/60 transition-colors hover:text-blue-400" />
|
|
752
774
|
|
|
@@ -772,64 +794,64 @@ function SearchInput() {
|
|
|
772
794
|
|
|
773
795
|
{/* Accessibility */}
|
|
774
796
|
<div className="!space-y-8">
|
|
775
|
-
<h2 className="text-center text-3xl font-bold
|
|
797
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
776
798
|
Accessibility Features
|
|
777
799
|
</h2>
|
|
778
800
|
<div className="grid grid-cols-1 gap-8 md:grid-cols-2">
|
|
779
|
-
<div className="!space-y-4 rounded-lg border
|
|
780
|
-
<h3 className="text-lg font-semibold
|
|
801
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
|
|
802
|
+
<h3 className="text-fm-icon-positive! text-lg font-semibold">
|
|
781
803
|
✅ Built-in Features
|
|
782
804
|
</h3>
|
|
783
|
-
<ul className="!space-y-2 text-sm
|
|
784
|
-
<li className="
|
|
805
|
+
<ul className="text-fm-secondary! !space-y-2 text-sm">
|
|
806
|
+
<li className="text-fm-secondary!">
|
|
785
807
|
Uses Radix UI AccessibleIcon wrapper
|
|
786
808
|
</li>
|
|
787
|
-
<li className="
|
|
809
|
+
<li className="text-fm-secondary!">
|
|
788
810
|
Provides screen reader label "Search icon"
|
|
789
811
|
</li>
|
|
790
|
-
<li className="
|
|
812
|
+
<li className="text-fm-secondary!">
|
|
791
813
|
Supports keyboard navigation when interactive
|
|
792
814
|
</li>
|
|
793
|
-
<li className="
|
|
815
|
+
<li className="text-fm-secondary!">
|
|
794
816
|
Maintains proper color contrast ratios
|
|
795
817
|
</li>
|
|
796
|
-
<li className="
|
|
818
|
+
<li className="text-fm-secondary!">
|
|
797
819
|
Scales with user's font size preferences
|
|
798
820
|
</li>
|
|
799
821
|
</ul>
|
|
800
822
|
</div>
|
|
801
823
|
|
|
802
|
-
<div className="!space-y-4 rounded-lg border
|
|
803
|
-
<h3 className="text-lg font-semibold
|
|
824
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
|
|
825
|
+
<h3 className="text-fm-icon-info! text-lg font-semibold">
|
|
804
826
|
💡 Best Practices
|
|
805
827
|
</h3>
|
|
806
|
-
<ul className="!space-y-2 text-sm
|
|
807
|
-
<li className="
|
|
828
|
+
<ul className="text-fm-secondary! !space-y-2 text-sm">
|
|
829
|
+
<li className="text-fm-secondary!">
|
|
808
830
|
Always provide descriptive labels for search inputs
|
|
809
831
|
</li>
|
|
810
|
-
<li className="
|
|
832
|
+
<li className="text-fm-secondary!">
|
|
811
833
|
Use consistent placement in search interfaces
|
|
812
834
|
</li>
|
|
813
|
-
<li className="
|
|
835
|
+
<li className="text-fm-secondary!">
|
|
814
836
|
Ensure sufficient click/touch target sizes
|
|
815
837
|
</li>
|
|
816
|
-
<li className="
|
|
838
|
+
<li className="text-fm-secondary!">
|
|
817
839
|
Add focus states for keyboard navigation
|
|
818
840
|
</li>
|
|
819
|
-
<li className="
|
|
841
|
+
<li className="text-fm-secondary!">
|
|
820
842
|
Consider motion sensitivity for animations
|
|
821
843
|
</li>
|
|
822
844
|
</ul>
|
|
823
845
|
</div>
|
|
824
846
|
</div>
|
|
825
847
|
|
|
826
|
-
<div className="rounded-lg border
|
|
827
|
-
<h3 className="mb-4 text-lg font-semibold
|
|
848
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
|
|
849
|
+
<h3 className="text-fm-secondary-600! mb-4 text-lg font-semibold">
|
|
828
850
|
Custom Accessibility Implementation
|
|
829
851
|
</h3>
|
|
830
852
|
<div className="grid grid-cols-1 gap-6 lg:grid-cols-2">
|
|
831
|
-
<div className="rounded-lg
|
|
832
|
-
<pre className="overflow-x-auto text-sm
|
|
853
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
854
|
+
<pre className="text-fm-icon-info! overflow-x-auto text-sm">
|
|
833
855
|
{`// Search input with proper ARIA
|
|
834
856
|
<div className="relative">
|
|
835
857
|
<SearchIcon
|
|
@@ -867,13 +889,13 @@ function SearchInput() {
|
|
|
867
889
|
</pre>
|
|
868
890
|
</div>
|
|
869
891
|
<div className="!space-y-4">
|
|
870
|
-
<p className="text-
|
|
892
|
+
<p className="text-fm-secondary! text-sm">
|
|
871
893
|
When using SearchIcon in search interfaces, provide
|
|
872
894
|
clear context about what can be searched and how to
|
|
873
895
|
interact with the search functionality.
|
|
874
896
|
</p>
|
|
875
|
-
<div className="
|
|
876
|
-
<div className="flex items-center gap-2 text-sm
|
|
897
|
+
<div className="border-fm-icon-info/20 bg-fm-icon-info/10 rounded-lg border p-4">
|
|
898
|
+
<div className="text-fm-icon-info flex items-center gap-2 text-sm">
|
|
877
899
|
<SearchIcon className="h-4 w-4" />
|
|
878
900
|
<span>
|
|
879
901
|
This approach gives screen readers clear context
|
|
@@ -888,48 +910,58 @@ function SearchInput() {
|
|
|
888
910
|
|
|
889
911
|
{/* Related Icons */}
|
|
890
912
|
<div className="!space-y-8">
|
|
891
|
-
<h2 className="text-center text-3xl font-bold
|
|
913
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
892
914
|
Related Icons
|
|
893
915
|
</h2>
|
|
894
916
|
<div className="grid grid-cols-2 gap-6 md:grid-cols-4">
|
|
895
|
-
<div className="!space-y-3 rounded-lg border
|
|
896
|
-
<div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg
|
|
917
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
|
|
918
|
+
<div className="bg-fm-icon-info/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
|
|
897
919
|
<span className="text-2xl">🔍</span>
|
|
898
920
|
</div>
|
|
899
921
|
<div>
|
|
900
|
-
<div className="font-medium
|
|
901
|
-
|
|
922
|
+
<div className="text-fm-icon-active font-medium">
|
|
923
|
+
FilterIcon
|
|
924
|
+
</div>
|
|
925
|
+
<div className="text-fm-tertiary text-xs">
|
|
902
926
|
Filter results
|
|
903
927
|
</div>
|
|
904
928
|
</div>
|
|
905
929
|
</div>
|
|
906
|
-
<div className="!space-y-3 rounded-lg border
|
|
907
|
-
<div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg
|
|
908
|
-
<span className="
|
|
930
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
|
|
931
|
+
<div className="bg-fm-icon-positive/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
|
|
932
|
+
<span className="text-fm-icon-active! !text-2xl">↻</span>
|
|
909
933
|
</div>
|
|
910
934
|
<div>
|
|
911
|
-
<div className="font-medium
|
|
912
|
-
|
|
935
|
+
<div className="text-fm-icon-active font-medium">
|
|
936
|
+
RefreshIcon
|
|
937
|
+
</div>
|
|
938
|
+
<div className="text-fm-tertiary text-xs">
|
|
913
939
|
Refresh search
|
|
914
940
|
</div>
|
|
915
941
|
</div>
|
|
916
942
|
</div>
|
|
917
|
-
<div className="!space-y-3 rounded-lg border
|
|
918
|
-
<div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg
|
|
919
|
-
<span className="
|
|
943
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
|
|
944
|
+
<div className="bg-fm-secondary-500/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
|
|
945
|
+
<span className="text-fm-icon-active! !text-2xl">✕</span>
|
|
920
946
|
</div>
|
|
921
947
|
<div>
|
|
922
|
-
<div className="font-medium
|
|
923
|
-
|
|
948
|
+
<div className="text-fm-icon-active font-medium">
|
|
949
|
+
CloseIcon
|
|
950
|
+
</div>
|
|
951
|
+
<div className="text-fm-tertiary text-xs">
|
|
952
|
+
Clear search
|
|
953
|
+
</div>
|
|
924
954
|
</div>
|
|
925
955
|
</div>
|
|
926
|
-
<div className="!space-y-3 rounded-lg border
|
|
927
|
-
<div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg
|
|
956
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
|
|
957
|
+
<div className="bg-fm-icon-warning/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
|
|
928
958
|
<span className="text-2xl">⚙️</span>
|
|
929
959
|
</div>
|
|
930
960
|
<div>
|
|
931
|
-
<div className="font-medium
|
|
932
|
-
|
|
961
|
+
<div className="text-fm-icon-active font-medium">
|
|
962
|
+
SettingsIcon
|
|
963
|
+
</div>
|
|
964
|
+
<div className="text-fm-tertiary text-xs">
|
|
933
965
|
Search settings
|
|
934
966
|
</div>
|
|
935
967
|
</div>
|
|
@@ -939,14 +971,14 @@ function SearchInput() {
|
|
|
939
971
|
</div>
|
|
940
972
|
|
|
941
973
|
{/* Footer */}
|
|
942
|
-
<div className="border-
|
|
974
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary border-t backdrop-blur-xl">
|
|
943
975
|
<div className="!mx-auto max-w-7xl px-6 py-8">
|
|
944
976
|
<div className="!space-y-4 text-center">
|
|
945
|
-
<p className="
|
|
977
|
+
<p className="text-fm-tertiary!">
|
|
946
978
|
SearchIcon is part of the Aural UI icon library, built for
|
|
947
979
|
search interfaces, discovery, and navigation.
|
|
948
980
|
</p>
|
|
949
|
-
<p className="text-
|
|
981
|
+
<p className="text-fm-placeholder! text-sm">
|
|
950
982
|
All icons use Radix UI's AccessibleIcon for screen reader
|
|
951
983
|
compatibility and follow WCAG guidelines for interactive
|
|
952
984
|
elements.
|
|
@@ -1001,8 +1033,8 @@ const storyParameters = {
|
|
|
1001
1033
|
backgrounds: {
|
|
1002
1034
|
default: "dark",
|
|
1003
1035
|
values: [
|
|
1004
|
-
{ name: "dark", value: "
|
|
1005
|
-
{ name: "darker", value: "
|
|
1036
|
+
{ name: "dark", value: "var(--color-fm-surface-primary)" },
|
|
1037
|
+
{ name: "darker", value: "var(--color-fm-neutral-0)" },
|
|
1006
1038
|
],
|
|
1007
1039
|
},
|
|
1008
1040
|
}
|
|
@@ -1011,12 +1043,12 @@ export const Default: Story = {
|
|
|
1011
1043
|
args: {
|
|
1012
1044
|
width: 24,
|
|
1013
1045
|
height: 24,
|
|
1014
|
-
className: "text-
|
|
1046
|
+
className: "text-fm-icon-info",
|
|
1015
1047
|
withAccessibility: true,
|
|
1016
1048
|
},
|
|
1017
1049
|
parameters: storyParameters,
|
|
1018
1050
|
render: (args) => (
|
|
1019
|
-
<div className="flex h-32 min-h-dvh items-center justify-center rounded-lg bg-
|
|
1051
|
+
<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">
|
|
1020
1052
|
<SearchIcon {...args} />
|
|
1021
1053
|
</div>
|
|
1022
1054
|
),
|
|
@@ -1033,30 +1065,30 @@ export const SizeVariations: Story = {
|
|
|
1033
1065
|
},
|
|
1034
1066
|
},
|
|
1035
1067
|
render: () => (
|
|
1036
|
-
<div className="flex h-64 min-h-dvh items-center justify-center gap-8 rounded-lg bg-
|
|
1068
|
+
<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">
|
|
1037
1069
|
<div className="text-center">
|
|
1038
|
-
<SearchIcon className="!mx-auto mb-2 h-3 w-3
|
|
1039
|
-
<span className="text-
|
|
1070
|
+
<SearchIcon className="text-fm-icon-info !mx-auto mb-2 h-3 w-3" />
|
|
1071
|
+
<span className="text-fm-tertiary text-xs">12px</span>
|
|
1040
1072
|
</div>
|
|
1041
1073
|
<div className="text-center">
|
|
1042
|
-
<SearchIcon className="!mx-auto mb-2 h-4 w-4
|
|
1043
|
-
<span className="text-
|
|
1074
|
+
<SearchIcon className="text-fm-icon-info !mx-auto mb-2 h-4 w-4" />
|
|
1075
|
+
<span className="text-fm-tertiary text-xs">16px</span>
|
|
1044
1076
|
</div>
|
|
1045
1077
|
<div className="text-center">
|
|
1046
|
-
<SearchIcon className="!mx-auto mb-2 h-5 w-5
|
|
1047
|
-
<span className="text-
|
|
1078
|
+
<SearchIcon className="text-fm-icon-info !mx-auto mb-2 h-5 w-5" />
|
|
1079
|
+
<span className="text-fm-tertiary text-xs">20px</span>
|
|
1048
1080
|
</div>
|
|
1049
1081
|
<div className="text-center">
|
|
1050
|
-
<SearchIcon className="!mx-auto mb-2 h-6 w-6
|
|
1051
|
-
<span className="text-
|
|
1082
|
+
<SearchIcon className="text-fm-icon-info !mx-auto mb-2 h-6 w-6" />
|
|
1083
|
+
<span className="text-fm-tertiary text-xs">24px</span>
|
|
1052
1084
|
</div>
|
|
1053
1085
|
<div className="text-center">
|
|
1054
|
-
<SearchIcon className="!mx-auto mb-2 h-8 w-8
|
|
1055
|
-
<span className="text-
|
|
1086
|
+
<SearchIcon className="text-fm-icon-info !mx-auto mb-2 h-8 w-8" />
|
|
1087
|
+
<span className="text-fm-tertiary text-xs">32px</span>
|
|
1056
1088
|
</div>
|
|
1057
1089
|
<div className="text-center">
|
|
1058
|
-
<SearchIcon className="!mx-auto mb-2 h-12 w-12
|
|
1059
|
-
<span className="text-
|
|
1090
|
+
<SearchIcon className="text-fm-icon-info !mx-auto mb-2 h-12 w-12" />
|
|
1091
|
+
<span className="text-fm-tertiary text-xs">48px</span>
|
|
1060
1092
|
</div>
|
|
1061
1093
|
</div>
|
|
1062
1094
|
),
|
|
@@ -1073,34 +1105,36 @@ export const ColorVariations: Story = {
|
|
|
1073
1105
|
},
|
|
1074
1106
|
},
|
|
1075
1107
|
render: () => (
|
|
1076
|
-
<div className="grid min-h-dvh grid-cols-2 items-center justify-center gap-6 rounded-lg bg-
|
|
1108
|
+
<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">
|
|
1077
1109
|
<div className="text-center">
|
|
1078
|
-
<div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border
|
|
1079
|
-
<SearchIcon className="h-8 w-8
|
|
1110
|
+
<div className="border-fm-icon-info/30 bg-fm-icon-info/20 !mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border">
|
|
1111
|
+
<SearchIcon className="text-fm-icon-info h-8 w-8" />
|
|
1080
1112
|
</div>
|
|
1081
|
-
<div className="text-sm font-medium
|
|
1082
|
-
<div className="text-
|
|
1113
|
+
<div className="text-fm-icon-active text-sm font-medium">Primary</div>
|
|
1114
|
+
<div className="text-fm-icon-info text-xs">text-fm-icon-info</div>
|
|
1083
1115
|
</div>
|
|
1084
1116
|
<div className="text-center">
|
|
1085
|
-
<div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border
|
|
1086
|
-
<SearchIcon className="h-8 w-8
|
|
1117
|
+
<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">
|
|
1118
|
+
<SearchIcon className="text-fm-secondary-600 h-8 w-8" />
|
|
1119
|
+
</div>
|
|
1120
|
+
<div className="text-fm-icon-active text-sm font-medium">Secondary</div>
|
|
1121
|
+
<div className="text-fm-secondary-600 text-xs">
|
|
1122
|
+
text-fm-secondary-600
|
|
1087
1123
|
</div>
|
|
1088
|
-
<div className="text-sm font-medium text-white">Secondary</div>
|
|
1089
|
-
<div className="text-xs text-purple-400">text-purple-400</div>
|
|
1090
1124
|
</div>
|
|
1091
1125
|
<div className="text-center">
|
|
1092
|
-
<div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border
|
|
1093
|
-
<SearchIcon className="h-8 w-8
|
|
1126
|
+
<div className="border-fm-icon-info/30 bg-fm-icon-info/20 !mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border">
|
|
1127
|
+
<SearchIcon className="text-fm-icon-info h-8 w-8" />
|
|
1094
1128
|
</div>
|
|
1095
|
-
<div className="text-sm font-medium
|
|
1096
|
-
<div className="text-
|
|
1129
|
+
<div className="text-fm-icon-active text-sm font-medium">Info</div>
|
|
1130
|
+
<div className="text-fm-icon-info text-xs">text-fm-icon-info</div>
|
|
1097
1131
|
</div>
|
|
1098
1132
|
<div className="text-center">
|
|
1099
|
-
<div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border
|
|
1100
|
-
<SearchIcon className="h-8 w-8
|
|
1133
|
+
<div className="border-fm-divider-primary bg-fm-surface-tertiary/20 !mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border">
|
|
1134
|
+
<SearchIcon className="text-fm-placeholder h-8 w-8" />
|
|
1101
1135
|
</div>
|
|
1102
|
-
<div className="text-sm font-medium
|
|
1103
|
-
<div className="text-
|
|
1136
|
+
<div className="text-fm-icon-active text-sm font-medium">Muted</div>
|
|
1137
|
+
<div className="text-fm-placeholder text-xs">text-fm-placeholder</div>
|
|
1104
1138
|
</div>
|
|
1105
1139
|
</div>
|
|
1106
1140
|
),
|
|
@@ -1117,29 +1151,33 @@ export const UsageExamples: Story = {
|
|
|
1117
1151
|
},
|
|
1118
1152
|
},
|
|
1119
1153
|
render: () => (
|
|
1120
|
-
<div className="min-h-dvh !space-y-8 rounded-lg bg-
|
|
1154
|
+
<div className="from-fm-surface-primary to-fm-surface-secondary min-h-dvh !space-y-8 rounded-lg bg-linear-to-br p-8">
|
|
1121
1155
|
{/* Search Input */}
|
|
1122
1156
|
<div className="!space-y-2">
|
|
1123
|
-
<h3 className="text-sm font-medium
|
|
1157
|
+
<h3 className="text-fm-icon-active text-sm font-medium">
|
|
1158
|
+
Search Input
|
|
1159
|
+
</h3>
|
|
1124
1160
|
<div className="relative">
|
|
1125
|
-
<SearchIcon className="absolute top-1/2 left-3 h-4 w-4 -translate-y-1/2
|
|
1161
|
+
<SearchIcon className="text-fm-placeholder absolute top-1/2 left-3 h-4 w-4 -translate-y-1/2" />
|
|
1126
1162
|
<input
|
|
1127
1163
|
type="text"
|
|
1128
1164
|
placeholder="Search products..."
|
|
1129
|
-
className="w-full rounded-lg border
|
|
1165
|
+
className="border-fm-divider-primary bg-fm-surface-secondary text-fm-icon-active focus:border-fm-icon-info w-full rounded-lg border py-2 pr-4 pl-10 placeholder-white/50 focus:ring-2 focus:ring-blue-400/20 focus:outline-none"
|
|
1130
1166
|
/>
|
|
1131
1167
|
</div>
|
|
1132
1168
|
</div>
|
|
1133
1169
|
|
|
1134
1170
|
{/* Search Buttons */}
|
|
1135
1171
|
<div className="!space-y-2">
|
|
1136
|
-
<h3 className="text-sm font-medium
|
|
1172
|
+
<h3 className="text-fm-icon-active text-sm font-medium">
|
|
1173
|
+
Search Buttons
|
|
1174
|
+
</h3>
|
|
1137
1175
|
<div className="flex gap-4">
|
|
1138
|
-
<button className="flex items-center gap-2 rounded-lg border
|
|
1176
|
+
<button className="border-fm-icon-info/30 bg-fm-icon-info/20 text-fm-icon-info hover:bg-fm-icon-info/30 flex items-center gap-2 rounded-lg border px-4 py-2 transition-colors">
|
|
1139
1177
|
<SearchIcon className="h-4 w-4" />
|
|
1140
1178
|
Search
|
|
1141
1179
|
</button>
|
|
1142
|
-
<button className="flex h-10 w-10 items-center justify-center rounded-lg border
|
|
1180
|
+
<button className="border-fm-secondary-500/30 bg-fm-secondary-500/20 text-fm-secondary-600 hover:bg-fm-secondary-500/30 flex h-10 w-10 items-center justify-center rounded-lg border transition-colors">
|
|
1143
1181
|
<SearchIcon className="h-5 w-5" />
|
|
1144
1182
|
</button>
|
|
1145
1183
|
</div>
|
|
@@ -1147,15 +1185,17 @@ export const UsageExamples: Story = {
|
|
|
1147
1185
|
|
|
1148
1186
|
{/* Command Palette */}
|
|
1149
1187
|
<div className="!space-y-2">
|
|
1150
|
-
<h3 className="text-sm font-medium
|
|
1151
|
-
|
|
1152
|
-
|
|
1188
|
+
<h3 className="text-fm-icon-active text-sm font-medium">
|
|
1189
|
+
Command Palette
|
|
1190
|
+
</h3>
|
|
1191
|
+
<div className="border-fm-icon-info/30 bg-fm-icon-info/10 flex items-center gap-3 rounded-lg border p-3">
|
|
1192
|
+
<SearchIcon className="text-fm-icon-info h-5 w-5" />
|
|
1153
1193
|
<input
|
|
1154
1194
|
type="text"
|
|
1155
1195
|
placeholder="Search commands..."
|
|
1156
|
-
className="flex-1 bg-transparent
|
|
1196
|
+
className="text-fm-icon-active flex-1 bg-transparent placeholder-blue-200/70 focus:outline-none"
|
|
1157
1197
|
/>
|
|
1158
|
-
<kbd className="
|
|
1198
|
+
<kbd className="bg-fm-surface-secondary text-fm-secondary rounded px-2 py-1 text-xs">
|
|
1159
1199
|
⌘K
|
|
1160
1200
|
</kbd>
|
|
1161
1201
|
</div>
|
|
@@ -1177,11 +1217,11 @@ export const Playground: Story = {
|
|
|
1177
1217
|
args: {
|
|
1178
1218
|
width: 32,
|
|
1179
1219
|
height: 32,
|
|
1180
|
-
className: "text-
|
|
1220
|
+
className: "text-fm-icon-info",
|
|
1181
1221
|
},
|
|
1182
1222
|
render: (args) => (
|
|
1183
|
-
<div className="flex h-64 min-h-dvh items-center justify-center rounded-lg bg-
|
|
1184
|
-
<div className="rounded-lg border
|
|
1223
|
+
<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">
|
|
1224
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-8">
|
|
1185
1225
|
<SearchIcon {...args} />
|
|
1186
1226
|
</div>
|
|
1187
1227
|
</div>
|