aural-ui 2.0.0
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/LICENSE +21 -0
- package/README.md +456 -0
- package/dist/components/aspect-ratio/AspectRatio.stories.tsx +1327 -0
- package/dist/components/aspect-ratio/index.tsx +10 -0
- package/dist/components/aspect-ratio/meta.ts +8 -0
- package/dist/components/avatar/Avatar.stories.tsx +645 -0
- package/dist/components/avatar/index.tsx +50 -0
- package/dist/components/avatar/meta.ts +8 -0
- package/dist/components/badge/Badge.stories.tsx +169 -0
- package/dist/components/badge/index.tsx +28 -0
- package/dist/components/badge/meta.ts +6 -0
- package/dist/components/banner/Banner.stories.tsx +475 -0
- package/dist/components/banner/index.tsx +256 -0
- package/dist/components/banner/meta.ts +36 -0
- package/dist/components/button/Button.stories.tsx +74 -0
- package/dist/components/button/index.tsx +158 -0
- package/dist/components/button/meta.ts +33 -0
- package/dist/components/card/Card.stories.tsx +377 -0
- package/dist/components/card/index.tsx +85 -0
- package/dist/components/card/meta.ts +14 -0
- package/dist/components/char-count/CharCount.stories.tsx +334 -0
- package/dist/components/char-count/index.tsx +51 -0
- package/dist/components/char-count/meta.ts +13 -0
- package/dist/components/checkbox/Checkbox.stories.tsx +209 -0
- package/dist/components/checkbox/index.tsx +34 -0
- package/dist/components/checkbox/meta.ts +19 -0
- package/dist/components/chip/Chip.stories.tsx +207 -0
- package/dist/components/chip/index.tsx +92 -0
- package/dist/components/chip/meta.ts +17 -0
- package/dist/components/circular-loader/CircularLoader.stories.tsx +741 -0
- package/dist/components/circular-loader/index.tsx +138 -0
- package/dist/components/circular-loader/meta.ts +11 -0
- package/dist/components/collapsible/Collapsible.stories.tsx +319 -0
- package/dist/components/collapsible/index.tsx +158 -0
- package/dist/components/collapsible/meta.ts +22 -0
- package/dist/components/command/Command.stories.tsx +996 -0
- package/dist/components/command/index.tsx +324 -0
- package/dist/components/command/meta.ts +18 -0
- package/dist/components/dialog/Dialog.stories.tsx +963 -0
- package/dist/components/dialog/index.tsx +250 -0
- package/dist/components/dialog/meta.ts +28 -0
- package/dist/components/divider/Divider.stories.tsx +633 -0
- package/dist/components/divider/index.tsx +181 -0
- package/dist/components/divider/meta.ts +12 -0
- package/dist/components/dot-loader/DotLoader.stories.tsx +352 -0
- package/dist/components/dot-loader/index.tsx +78 -0
- package/dist/components/dot-loader/meta.ts +14 -0
- package/dist/components/dropdown/Dropdown.stories.tsx +1210 -0
- package/dist/components/dropdown/index.tsx +479 -0
- package/dist/components/dropdown/meta.ts +21 -0
- package/dist/components/form/Form.stories.tsx +320 -0
- package/dist/components/form/index.tsx +183 -0
- package/dist/components/form/meta.ts +11 -0
- package/dist/components/helper-text/HelperText.stories.tsx +254 -0
- package/dist/components/helper-text/index.tsx +102 -0
- package/dist/components/helper-text/meta.ts +18 -0
- package/dist/components/hover-card/HoverCard.stories.tsx +1328 -0
- package/dist/components/hover-card/index.tsx +42 -0
- package/dist/components/hover-card/meta.ts +12 -0
- package/dist/components/icon-button/IconButton.stories.tsx +252 -0
- package/dist/components/icon-button/index.tsx +130 -0
- package/dist/components/icon-button/meta.ts +20 -0
- package/dist/components/if-else/if-else.stories.tsx +100 -0
- package/dist/components/if-else/index.tsx +56 -0
- package/dist/components/if-else/meta.ts +6 -0
- package/dist/components/index.ts +70 -0
- package/dist/components/input/Input.stories.tsx +431 -0
- package/dist/components/input/index.tsx +487 -0
- package/dist/components/input/meta.ts +28 -0
- package/dist/components/label/Label.stories.tsx +200 -0
- package/dist/components/label/index.tsx +43 -0
- package/dist/components/label/meta.ts +14 -0
- package/dist/components/list/List.stories.tsx +963 -0
- package/dist/components/list/index.tsx +567 -0
- package/dist/components/list/meta.ts +24 -0
- package/dist/components/marquee/Marquee.stories.tsx +819 -0
- package/dist/components/marquee/index.tsx +107 -0
- package/dist/components/marquee/meta.ts +6 -0
- package/dist/components/overlay/Overlay.stories.tsx +954 -0
- package/dist/components/overlay/index.tsx +58 -0
- package/dist/components/overlay/meta.ts +10 -0
- package/dist/components/pagination/Pagination.stories.tsx +354 -0
- package/dist/components/pagination/index.tsx +455 -0
- package/dist/components/pagination/meta.ts +29 -0
- package/dist/components/popover/Popover.stories.tsx +1037 -0
- package/dist/components/popover/index.tsx +67 -0
- package/dist/components/popover/meta.ts +12 -0
- package/dist/components/radio/Radio.stories.tsx +146 -0
- package/dist/components/radio/index.tsx +41 -0
- package/dist/components/radio/meta.ts +19 -0
- package/dist/components/resizable/Resizable.stories.tsx +866 -0
- package/dist/components/resizable/index.tsx +55 -0
- package/dist/components/resizable/meta.ts +12 -0
- package/dist/components/scroll-area/ScrollArea.stories.tsx +1104 -0
- package/dist/components/scroll-area/index.tsx +55 -0
- package/dist/components/scroll-area/meta.ts +8 -0
- package/dist/components/search/Search.stories.tsx +678 -0
- package/dist/components/search/index.tsx +141 -0
- package/dist/components/search/meta.ts +6 -0
- package/dist/components/select/Select.stories.tsx +962 -0
- package/dist/components/select/index.tsx +512 -0
- package/dist/components/select/meta.ts +40 -0
- package/dist/components/sheet/Sheet.stories.tsx +1060 -0
- package/dist/components/sheet/index.tsx +440 -0
- package/dist/components/sheet/meta.ts +38 -0
- package/dist/components/skelton/Skelton.stories.tsx +859 -0
- package/dist/components/skelton/index.tsx +17 -0
- package/dist/components/skelton/meta.ts +6 -0
- package/dist/components/slider/Slider.stories.tsx +876 -0
- package/dist/components/slider/index.tsx +156 -0
- package/dist/components/slider/meta.ts +29 -0
- package/dist/components/stepper/Stepper.stories.tsx +639 -0
- package/dist/components/stepper/index.tsx +650 -0
- package/dist/components/stepper/meta.ts +19 -0
- package/dist/components/switch/Switch.stories.tsx +85 -0
- package/dist/components/switch/index.tsx +37 -0
- package/dist/components/switch/meta.ts +24 -0
- package/dist/components/switch-case/SwitchCase.stories.tsx +209 -0
- package/dist/components/switch-case/index.tsx +89 -0
- package/dist/components/switch-case/meta.ts +6 -0
- package/dist/components/table/Table.stories.tsx +1095 -0
- package/dist/components/table/index.tsx +113 -0
- package/dist/components/table/meta.ts +20 -0
- package/dist/components/tabs/Tabs.stories.tsx +1379 -0
- package/dist/components/tabs/index.tsx +186 -0
- package/dist/components/tabs/meta.ts +25 -0
- package/dist/components/tag/Tag.stories.tsx +625 -0
- package/dist/components/tag/index.tsx +320 -0
- package/dist/components/tag/meta.ts +52 -0
- package/dist/components/textarea/TextArea.stories.tsx +723 -0
- package/dist/components/textarea/index.tsx +480 -0
- package/dist/components/textarea/meta.ts +23 -0
- package/dist/components/toast/Toast.stories.tsx +1427 -0
- package/dist/components/toast/index.tsx +26 -0
- package/dist/components/toast/meta.ts +19 -0
- package/dist/components/toggle/Toggle.stories.tsx +1093 -0
- package/dist/components/toggle/index.tsx +44 -0
- package/dist/components/toggle/meta.ts +19 -0
- package/dist/components/tooltip/Tooltip.stories.tsx +1548 -0
- package/dist/components/tooltip/index.tsx +304 -0
- package/dist/components/tooltip/meta.ts +21 -0
- package/dist/components/typography/Typography.stories.tsx +197 -0
- package/dist/components/typography/index.tsx +184 -0
- package/dist/components/typography/meta.ts +38 -0
- package/dist/fonts/LabGrotesque-Regular.ttf +0 -0
- package/dist/fonts/LabGrotesqueTRIAL-Bold.otf +0 -0
- package/dist/fonts/LabGrotesqueTRIAL-Light.otf +0 -0
- package/dist/fonts/LabGrotesqueTRIAL-Medium.otf +0 -0
- package/dist/fonts/LabGrotesqueTRIAL-Regular.otf +0 -0
- package/dist/fonts/PPSupplySans-Regular (1).otf +0 -0
- package/dist/fonts/PPSupplySans-Regular.otf +0 -0
- package/dist/fonts/PPSupplySans-Ultralight.otf +0 -0
- package/dist/hooks/index.ts +3 -0
- package/dist/hooks/use-previous/UsePrevious.stories.tsx +997 -0
- package/dist/hooks/use-previous/index.ts +15 -0
- package/dist/hooks/use-previous/meta.ts +6 -0
- package/dist/hooks/use-standalone-pagination/UseStandalonePagination.stories.tsx +983 -0
- package/dist/hooks/use-standalone-pagination/index.ts +146 -0
- package/dist/hooks/use-standalone-pagination/meta.ts +6 -0
- package/dist/icons/Icons.stories.tsx +29 -0
- package/dist/icons/alert-icon/AlertIcon.stories.tsx +991 -0
- package/dist/icons/alert-icon/index.tsx +48 -0
- package/dist/icons/alert-icon/meta.ts +8 -0
- package/dist/icons/all-icons.tsx +738 -0
- package/dist/icons/angle-down-icon/AngleDownIcon.stories.tsx +1031 -0
- package/dist/icons/angle-down-icon/index.tsx +25 -0
- package/dist/icons/angle-down-icon/meta.ts +8 -0
- package/dist/icons/arrow-box-left-icon/ArrowBoxLeftIcon.stories.tsx +1080 -0
- package/dist/icons/arrow-box-left-icon/index.tsx +24 -0
- package/dist/icons/arrow-box-left-icon/meta.ts +8 -0
- package/dist/icons/arrow-right-icon/ArrowRightIcon.stories.tsx +1151 -0
- package/dist/icons/arrow-right-icon/index.tsx +26 -0
- package/dist/icons/arrow-right-icon/meta.ts +8 -0
- package/dist/icons/arrow-right-up-icon/ArrowRightUpIcon.stories.tsx +1273 -0
- package/dist/icons/arrow-right-up-icon/index.tsx +24 -0
- package/dist/icons/arrow-right-up-icon/meta.ts +8 -0
- package/dist/icons/art-board-icon/ArtBoardIcon.stories.tsx +670 -0
- package/dist/icons/art-board-icon/index.tsx +24 -0
- package/dist/icons/art-board-icon/meta.ts +7 -0
- package/dist/icons/audio-bar-icon/AudioBarIcon.stories.tsx +1244 -0
- package/dist/icons/audio-bar-icon/index.tsx +19 -0
- package/dist/icons/audio-bar-icon/meta.ts +8 -0
- package/dist/icons/bubble-check-icon/BubbleCheckIcon.stories.tsx +1239 -0
- package/dist/icons/bubble-check-icon/index.tsx +24 -0
- package/dist/icons/bubble-check-icon/meta.ts +8 -0
- package/dist/icons/bubble-crossed-icon/BubbleCrossedIcon.stories.tsx +1228 -0
- package/dist/icons/bubble-crossed-icon/index.tsx +24 -0
- package/dist/icons/bubble-crossed-icon/meta.ts +8 -0
- package/dist/icons/bubble-sparkle-icon/BubbleSparkleIcon.stories.tsx +912 -0
- package/dist/icons/bubble-sparkle-icon/index.tsx +26 -0
- package/dist/icons/bubble-sparkle-icon/meta.ts +8 -0
- package/dist/icons/chevron-double-left-icon/ChevronDoubleLeftIcon.stories.tsx +1021 -0
- package/dist/icons/chevron-double-left-icon/index.tsx +34 -0
- package/dist/icons/chevron-double-left-icon/meta.ts +8 -0
- package/dist/icons/chevron-double-right-icon/ChevronDoubleRightIcon.stories.tsx +1021 -0
- package/dist/icons/chevron-double-right-icon/index.tsx +34 -0
- package/dist/icons/chevron-double-right-icon/meta.ts +8 -0
- package/dist/icons/chevron-down-icon/ChevronDownIcon.stories.tsx +1001 -0
- package/dist/icons/chevron-down-icon/index.tsx +27 -0
- package/dist/icons/chevron-down-icon/meta.ts +8 -0
- package/dist/icons/chevron-left-icon/ChevronLeftIcon.stories.tsx +1029 -0
- package/dist/icons/chevron-left-icon/index.tsx +27 -0
- package/dist/icons/chevron-left-icon/meta.ts +8 -0
- package/dist/icons/chevron-right-icon/ChevronRightIcon.stories.tsx +1021 -0
- package/dist/icons/chevron-right-icon/index.tsx +27 -0
- package/dist/icons/chevron-right-icon/meta.ts +8 -0
- package/dist/icons/chevron-up-icon/ChevronUpIcon.stories.tsx +1036 -0
- package/dist/icons/chevron-up-icon/index.tsx +27 -0
- package/dist/icons/chevron-up-icon/meta.ts +8 -0
- package/dist/icons/command-icon/CommandIcon.stories.tsx +1098 -0
- package/dist/icons/command-icon/index.tsx +24 -0
- package/dist/icons/command-icon/meta.ts +8 -0
- package/dist/icons/cross-circle-icon/CrossCircleIcon.stories.tsx +1061 -0
- package/dist/icons/cross-circle-icon/index.tsx +23 -0
- package/dist/icons/cross-circle-icon/meta.ts +8 -0
- package/dist/icons/cross-icon/CrossIcon.stories.tsx +1027 -0
- package/dist/icons/cross-icon/index.tsx +24 -0
- package/dist/icons/cross-icon/meta.ts +8 -0
- package/dist/icons/edit-big-icon/EditBigIcon.stories.tsx +1092 -0
- package/dist/icons/edit-big-icon/index.tsx +22 -0
- package/dist/icons/edit-big-icon/meta.ts +8 -0
- package/dist/icons/eye-close-icon/EyeCloseIcon.stories.tsx +1090 -0
- package/dist/icons/eye-close-icon/index.tsx +26 -0
- package/dist/icons/eye-close-icon/meta.ts +8 -0
- package/dist/icons/eye-open-icon/EyeOpenIcon.stories.tsx +1098 -0
- package/dist/icons/eye-open-icon/index.tsx +24 -0
- package/dist/icons/eye-open-icon/meta.ts +8 -0
- package/dist/icons/feature-shine-icon/FeatureShineIcon.stories.tsx +1071 -0
- package/dist/icons/feature-shine-icon/index.tsx +29 -0
- package/dist/icons/feature-shine-icon/meta.ts +8 -0
- package/dist/icons/file-chart-icon/FileChartIcon.stories.tsx +1115 -0
- package/dist/icons/file-chart-icon/index.tsx +24 -0
- package/dist/icons/file-chart-icon/meta.ts +8 -0
- package/dist/icons/file-text-icon/FileTextIcon.stories.tsx +668 -0
- package/dist/icons/file-text-icon/index.tsx +24 -0
- package/dist/icons/file-text-icon/meta.ts +8 -0
- package/dist/icons/grip-vertical-icon/GripVerticalIcon.stories.tsx +1239 -0
- package/dist/icons/grip-vertical-icon/index.tsx +28 -0
- package/dist/icons/grip-vertical-icon/meta.ts +8 -0
- package/dist/icons/image-icon/ImageIcon.stories.tsx +1181 -0
- package/dist/icons/image-icon/index.tsx +24 -0
- package/dist/icons/image-icon/meta.ts +8 -0
- package/dist/icons/import-folder-icon/ImportFolderIcon.stories.tsx +1248 -0
- package/dist/icons/import-folder-icon/index.tsx +22 -0
- package/dist/icons/import-folder-icon/meta.ts +8 -0
- package/dist/icons/index.ts +46 -0
- package/dist/icons/light-bulb-simple-icon/LightBulbSimpleIcon.stories.tsx +1272 -0
- package/dist/icons/light-bulb-simple-icon/index.tsx +24 -0
- package/dist/icons/light-bulb-simple-icon/meta.ts +8 -0
- package/dist/icons/magic-book-icon/MagicBookIcon.stories.tsx +1245 -0
- package/dist/icons/magic-book-icon/index.tsx +32 -0
- package/dist/icons/magic-book-icon/meta.ts +8 -0
- package/dist/icons/maintenance-icon/MaintenanceIcon.stories.tsx +1251 -0
- package/dist/icons/maintenance-icon/index.tsx +23 -0
- package/dist/icons/maintenance-icon/meta.ts +8 -0
- package/dist/icons/message-icon/MessageIcon.stories.tsx +595 -0
- package/dist/icons/message-icon/index.tsx +30 -0
- package/dist/icons/message-icon/meta.ts +8 -0
- package/dist/icons/move-horizontal-icon/MoveHorizontalIcon.stories.tsx +1245 -0
- package/dist/icons/move-horizontal-icon/index.tsx +23 -0
- package/dist/icons/move-horizontal-icon/meta.ts +8 -0
- package/dist/icons/move-vertical-icon/MoveVerticalIcon.stories.tsx +1196 -0
- package/dist/icons/move-vertical-icon/index.tsx +23 -0
- package/dist/icons/move-vertical-icon/meta.ts +8 -0
- package/dist/icons/page-search-icon/PageSearchIcon.stories.tsx +1167 -0
- package/dist/icons/page-search-icon/index.tsx +21 -0
- package/dist/icons/page-search-icon/meta.ts +8 -0
- package/dist/icons/pencil-icon/PencilIcon.stories.tsx +1131 -0
- package/dist/icons/pencil-icon/index.tsx +21 -0
- package/dist/icons/pencil-icon/meta.ts +8 -0
- package/dist/icons/plus-icon/PlusIcon.stories.tsx +1151 -0
- package/dist/icons/plus-icon/index.tsx +24 -0
- package/dist/icons/plus-icon/meta.ts +8 -0
- package/dist/icons/search-icon/SearchIcon.stories.tsx +1181 -0
- package/dist/icons/search-icon/index.tsx +24 -0
- package/dist/icons/search-icon/meta.ts +8 -0
- package/dist/icons/site-logo-icon/SiteLogoIcon.stories.tsx +1167 -0
- package/dist/icons/site-logo-icon/index.tsx +79 -0
- package/dist/icons/site-logo-icon/meta.ts +8 -0
- package/dist/icons/spinner-gradient-icon/SpinnerGradientIcon.stories.tsx +637 -0
- package/dist/icons/spinner-gradient-icon/index.tsx +53 -0
- package/dist/icons/spinner-gradient-icon/meta.ts +8 -0
- package/dist/icons/spinner-solid-icon/SpinnerSolidIcon.stories.tsx +644 -0
- package/dist/icons/spinner-solid-icon/index.tsx +59 -0
- package/dist/icons/spinner-solid-icon/meta.ts +8 -0
- package/dist/icons/spinner-solid-neutral-icon/SpinnerSolidINeutralcon.stories.tsx +736 -0
- package/dist/icons/spinner-solid-neutral-icon/index.tsx +53 -0
- package/dist/icons/spinner-solid-neutral-icon/meta.ts +8 -0
- package/dist/icons/tick-circle-icon/TickCircleIcon.stories.tsx +1204 -0
- package/dist/icons/tick-circle-icon/index.tsx +23 -0
- package/dist/icons/tick-circle-icon/meta.ts +8 -0
- package/dist/icons/tick-icon/TickIcon.stories.tsx +1340 -0
- package/dist/icons/tick-icon/index.tsx +24 -0
- package/dist/icons/tick-icon/meta.ts +8 -0
- package/dist/icons/trash-icon/TrashIcon.stories.tsx +996 -0
- package/dist/icons/trash-icon/index.tsx +24 -0
- package/dist/icons/trash-icon/meta.ts +8 -0
- package/dist/icons/upload-icon/UploadIcon.stories.tsx +947 -0
- package/dist/icons/upload-icon/index.tsx +24 -0
- package/dist/icons/upload-icon/meta.ts +8 -0
- package/dist/icons/vertical-menu-icon/VerticalMenuIcon.stories.tsx +1045 -0
- package/dist/icons/vertical-menu-icon/index.tsx +27 -0
- package/dist/icons/vertical-menu-icon/meta.ts +8 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.js +206 -0
- package/dist/lib/utils.ts +6 -0
- package/dist/styles/aural-theme.css +1008 -0
- package/package.json +142 -0
|
@@ -0,0 +1,1181 @@
|
|
|
1
|
+
import React from "react"
|
|
2
|
+
import type { Meta, StoryObj } from "@storybook/react"
|
|
3
|
+
|
|
4
|
+
import { SearchIcon } from "."
|
|
5
|
+
|
|
6
|
+
const meta: Meta<typeof SearchIcon> = {
|
|
7
|
+
title: "Icons/SearchIcon",
|
|
8
|
+
component: SearchIcon,
|
|
9
|
+
parameters: {
|
|
10
|
+
layout: "fullscreen",
|
|
11
|
+
backgrounds: {
|
|
12
|
+
default: "dark",
|
|
13
|
+
values: [
|
|
14
|
+
{ name: "dark", value: "#0a0a0a" },
|
|
15
|
+
{ name: "darker", value: "#000000" },
|
|
16
|
+
{ name: "light", value: "#ffffff" },
|
|
17
|
+
],
|
|
18
|
+
},
|
|
19
|
+
docs: {
|
|
20
|
+
page: () => (
|
|
21
|
+
<>
|
|
22
|
+
{/* Override default docs styling */}
|
|
23
|
+
<style>
|
|
24
|
+
{`
|
|
25
|
+
.sbdocs-wrapper {
|
|
26
|
+
padding: 0 !important;
|
|
27
|
+
max-width: none !important;
|
|
28
|
+
background: transparent !important;
|
|
29
|
+
}
|
|
30
|
+
.sbdocs-content {
|
|
31
|
+
max-width: none !important;
|
|
32
|
+
padding: 0 !important;
|
|
33
|
+
margin: 0 !important;
|
|
34
|
+
background: transparent !important;
|
|
35
|
+
}
|
|
36
|
+
.docs-story {
|
|
37
|
+
background: transparent !important;
|
|
38
|
+
}
|
|
39
|
+
.sbdocs {
|
|
40
|
+
background: transparent !important;
|
|
41
|
+
}
|
|
42
|
+
body {
|
|
43
|
+
background: #0a0a0a !important;
|
|
44
|
+
}
|
|
45
|
+
#storybook-docs {
|
|
46
|
+
background: #0a0a0a !important;
|
|
47
|
+
}
|
|
48
|
+
.sbdocs-preview {
|
|
49
|
+
background: transparent !important;
|
|
50
|
+
border: none !important;
|
|
51
|
+
}
|
|
52
|
+
.sbdocs-h1, .sbdocs-h2, .sbdocs-h3, .sbdocs-h4, .sbdocs-h5, .sbdocs-h6 {
|
|
53
|
+
color: white !important;
|
|
54
|
+
}
|
|
55
|
+
.sbdocs-p, .sbdocs-li {
|
|
56
|
+
color: rgba(255, 255, 255, 0.7) !important;
|
|
57
|
+
}
|
|
58
|
+
.sbdocs-code {
|
|
59
|
+
background: rgba(255, 255, 255, 0.1) !important;
|
|
60
|
+
color: rgba(168, 85, 247, 1) !important;
|
|
61
|
+
border: 1px solid rgba(255, 255, 255, 0.1) !important;
|
|
62
|
+
}
|
|
63
|
+
.sbdocs-pre {
|
|
64
|
+
background: rgba(0, 0, 0, 0.4) !important;
|
|
65
|
+
border: 1px solid rgba(255, 255, 255, 0.1) !important;
|
|
66
|
+
}
|
|
67
|
+
.sbdocs-table {
|
|
68
|
+
background: rgba(255, 255, 255, 0.05) !important;
|
|
69
|
+
border: 1px solid rgba(255, 255, 255, 0.1) !important;
|
|
70
|
+
}
|
|
71
|
+
.sbdocs-table th {
|
|
72
|
+
background: rgba(255, 255, 255, 0.05) !important;
|
|
73
|
+
color: white !important;
|
|
74
|
+
border-bottom: 1px solid rgba(255, 255, 255, 0.1) !important;
|
|
75
|
+
}
|
|
76
|
+
.sbdocs-table td {
|
|
77
|
+
color: rgba(255, 255, 255, 0.7) !important;
|
|
78
|
+
border-bottom: 1px solid rgba(255, 255, 255, 0.05) !important;
|
|
79
|
+
}
|
|
80
|
+
@keyframes search-pulse {
|
|
81
|
+
0%, 100% { transform: scale(1); opacity: 1; }
|
|
82
|
+
50% { transform: scale(1.05); opacity: 0.8; }
|
|
83
|
+
}
|
|
84
|
+
.animate-search-pulse {
|
|
85
|
+
animation: search-pulse 2s ease-in-out infinite;
|
|
86
|
+
}
|
|
87
|
+
@keyframes search-bounce {
|
|
88
|
+
0%, 100% { transform: translateY(0); }
|
|
89
|
+
50% { transform: translateY(-4px); }
|
|
90
|
+
}
|
|
91
|
+
.animate-search-bounce {
|
|
92
|
+
animation: search-bounce 1.5s ease-in-out infinite;
|
|
93
|
+
}
|
|
94
|
+
@keyframes search-glow {
|
|
95
|
+
0%, 100% { filter: drop-shadow(0 0 2px currentColor); }
|
|
96
|
+
50% { filter: drop-shadow(0 0 8px currentColor); }
|
|
97
|
+
}
|
|
98
|
+
.animate-search-glow {
|
|
99
|
+
animation: search-glow 2s ease-in-out infinite;
|
|
100
|
+
}
|
|
101
|
+
`}
|
|
102
|
+
</style>
|
|
103
|
+
|
|
104
|
+
<div className="min-h-screen bg-gradient-to-br from-gray-900 via-blue-900/20 to-gray-900">
|
|
105
|
+
{/* Header */}
|
|
106
|
+
<div className="relative overflow-hidden border-b border-white/10 bg-black/20 backdrop-blur-xl">
|
|
107
|
+
<div className="absolute inset-0 bg-gradient-to-r from-blue-500/10 via-transparent to-purple-500/10" />
|
|
108
|
+
<div className="relative !mx-auto max-w-7xl px-6 py-16">
|
|
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 border-blue-500/30 bg-gradient-to-br from-blue-500/20 to-purple-500/20">
|
|
111
|
+
<SearchIcon className="h-12 w-12 text-blue-400" />
|
|
112
|
+
</div>
|
|
113
|
+
<h1 className="!text-fm-primary text-5xl font-bold">
|
|
114
|
+
SearchIcon
|
|
115
|
+
</h1>
|
|
116
|
+
<p className="!mx-auto max-w-3xl text-xl leading-relaxed !text-white/70">
|
|
117
|
+
A versatile search icon for search inputs, filters, and
|
|
118
|
+
discovery features. Perfect for search bars, data tables,
|
|
119
|
+
and navigation. Built with accessibility in mind using Radix
|
|
120
|
+
UI's AccessibleIcon wrapper.
|
|
121
|
+
</p>
|
|
122
|
+
|
|
123
|
+
{/* Stats */}
|
|
124
|
+
<div className="flex items-center justify-center gap-8 pt-8">
|
|
125
|
+
<div className="text-center">
|
|
126
|
+
<div className="text-3xl font-bold text-blue-300">
|
|
127
|
+
Discover
|
|
128
|
+
</div>
|
|
129
|
+
<div className="text-sm text-white/60">
|
|
130
|
+
Find what you need
|
|
131
|
+
</div>
|
|
132
|
+
</div>
|
|
133
|
+
<div className="h-8 w-px bg-white/20" />
|
|
134
|
+
<div className="text-center">
|
|
135
|
+
<div className="text-3xl font-bold text-purple-300">
|
|
136
|
+
Filter
|
|
137
|
+
</div>
|
|
138
|
+
<div className="text-sm text-white/60">
|
|
139
|
+
Refine your results
|
|
140
|
+
</div>
|
|
141
|
+
</div>
|
|
142
|
+
<div className="h-8 w-px bg-white/20" />
|
|
143
|
+
<div className="text-center">
|
|
144
|
+
<div className="text-3xl font-bold text-cyan-300">
|
|
145
|
+
Explore
|
|
146
|
+
</div>
|
|
147
|
+
<div className="text-sm text-white/60">
|
|
148
|
+
Navigate content
|
|
149
|
+
</div>
|
|
150
|
+
</div>
|
|
151
|
+
</div>
|
|
152
|
+
</div>
|
|
153
|
+
</div>
|
|
154
|
+
</div>
|
|
155
|
+
|
|
156
|
+
{/* Content */}
|
|
157
|
+
<div className="!mx-auto max-w-7xl !space-y-16 px-6 py-12">
|
|
158
|
+
{/* Quick Usage */}
|
|
159
|
+
<div className="!space-y-8">
|
|
160
|
+
<h2 className="text-center text-3xl font-bold !text-white">
|
|
161
|
+
Quick Start
|
|
162
|
+
</h2>
|
|
163
|
+
<div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
|
|
164
|
+
<div className="!space-y-4">
|
|
165
|
+
<h3 className="text-xl font-semibold !text-blue-300">
|
|
166
|
+
Basic Usage
|
|
167
|
+
</h3>
|
|
168
|
+
<div className="rounded-lg bg-black/40 p-4">
|
|
169
|
+
<pre className="overflow-x-auto text-sm !text-green-300">
|
|
170
|
+
{`import { SearchIcon } from "@icons/search-icon"
|
|
171
|
+
|
|
172
|
+
function SearchInput() {
|
|
173
|
+
return (
|
|
174
|
+
<div className="relative">
|
|
175
|
+
<SearchIcon className="absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-gray-400" />
|
|
176
|
+
<input
|
|
177
|
+
type="text"
|
|
178
|
+
placeholder="Search..."
|
|
179
|
+
className="pl-10 pr-4 py-2 rounded-lg"
|
|
180
|
+
/>
|
|
181
|
+
</div>
|
|
182
|
+
)
|
|
183
|
+
}`}
|
|
184
|
+
</pre>
|
|
185
|
+
</div>
|
|
186
|
+
</div>
|
|
187
|
+
|
|
188
|
+
<div className="!space-y-4">
|
|
189
|
+
<h3 className="text-xl font-semibold !text-blue-300">
|
|
190
|
+
Live Preview
|
|
191
|
+
</h3>
|
|
192
|
+
<div className="flex h-32 items-center justify-center rounded-lg border border-white/10 bg-white/5">
|
|
193
|
+
<div className="relative">
|
|
194
|
+
<SearchIcon className="absolute top-1/2 left-3 h-4 w-4 -translate-y-1/2 text-gray-400" />
|
|
195
|
+
<input
|
|
196
|
+
type="text"
|
|
197
|
+
placeholder="Search..."
|
|
198
|
+
className="rounded-lg border border-white/20 bg-white/10 py-2 pr-4 pl-10 text-white placeholder-white/50 focus:border-blue-400 focus:ring-2 focus:ring-blue-400/20 focus:outline-none"
|
|
199
|
+
/>
|
|
200
|
+
</div>
|
|
201
|
+
</div>
|
|
202
|
+
</div>
|
|
203
|
+
</div>
|
|
204
|
+
</div>
|
|
205
|
+
|
|
206
|
+
{/* Props Documentation */}
|
|
207
|
+
<div className="!space-y-8">
|
|
208
|
+
<h2 className="text-center text-3xl font-bold !text-white">
|
|
209
|
+
Props & Configuration
|
|
210
|
+
</h2>
|
|
211
|
+
|
|
212
|
+
<div className="overflow-hidden rounded-lg border border-white/10 bg-white/5">
|
|
213
|
+
<div className="bg-white/5 p-4">
|
|
214
|
+
<h3 className="text-xl font-semibold !text-white">Props</h3>
|
|
215
|
+
</div>
|
|
216
|
+
<table className="!my-0 w-full">
|
|
217
|
+
<thead className="bg-white/5">
|
|
218
|
+
<tr className="border-b border-white/10">
|
|
219
|
+
<th className="px-6 py-4 text-left text-sm font-semibold !text-white">
|
|
220
|
+
Prop
|
|
221
|
+
</th>
|
|
222
|
+
<th className="px-6 py-4 text-left text-sm font-semibold !text-white">
|
|
223
|
+
Type
|
|
224
|
+
</th>
|
|
225
|
+
<th className="px-6 py-4 text-left text-sm font-semibold !text-white">
|
|
226
|
+
Default
|
|
227
|
+
</th>
|
|
228
|
+
<th className="px-6 py-4 text-left text-sm font-semibold !text-white">
|
|
229
|
+
Description
|
|
230
|
+
</th>
|
|
231
|
+
</tr>
|
|
232
|
+
</thead>
|
|
233
|
+
<tbody>
|
|
234
|
+
<tr className="border-b border-white/5">
|
|
235
|
+
<td className="px-6 py-4 font-mono text-sm !text-blue-300">
|
|
236
|
+
width
|
|
237
|
+
</td>
|
|
238
|
+
<td className="px-6 py-4 text-sm !text-white/70">
|
|
239
|
+
number | string
|
|
240
|
+
</td>
|
|
241
|
+
<td className="px-6 py-4 text-sm !text-white/50">14</td>
|
|
242
|
+
<td className="px-6 py-4 text-sm !text-white/70">
|
|
243
|
+
Width of the icon in pixels
|
|
244
|
+
</td>
|
|
245
|
+
</tr>
|
|
246
|
+
<tr className="border-b border-white/5 !bg-black/10">
|
|
247
|
+
<td className="px-6 py-4 font-mono text-sm !text-blue-300">
|
|
248
|
+
height
|
|
249
|
+
</td>
|
|
250
|
+
<td className="px-6 py-4 text-sm !text-white/70">
|
|
251
|
+
number | string
|
|
252
|
+
</td>
|
|
253
|
+
<td className="px-6 py-4 text-sm !text-white/50">14</td>
|
|
254
|
+
<td className="px-6 py-4 text-sm !text-white/70">
|
|
255
|
+
Height of the icon in pixels
|
|
256
|
+
</td>
|
|
257
|
+
</tr>
|
|
258
|
+
<tr className="border-b border-white/5">
|
|
259
|
+
<td className="px-6 py-4 font-mono text-sm !text-blue-300">
|
|
260
|
+
stroke
|
|
261
|
+
</td>
|
|
262
|
+
<td className="px-6 py-4 text-sm !text-white/70">
|
|
263
|
+
string
|
|
264
|
+
</td>
|
|
265
|
+
<td className="px-6 py-4 text-sm !text-white/50">
|
|
266
|
+
currentColor
|
|
267
|
+
</td>
|
|
268
|
+
<td className="px-6 py-4 text-sm !text-white/70">
|
|
269
|
+
Stroke color of the search icon
|
|
270
|
+
</td>
|
|
271
|
+
</tr>
|
|
272
|
+
<tr className="border-b border-white/5 !bg-black/10">
|
|
273
|
+
<td className="px-6 py-4 font-mono text-sm !text-blue-300">
|
|
274
|
+
strokeWidth
|
|
275
|
+
</td>
|
|
276
|
+
<td className="px-6 py-4 text-sm !text-white/70">
|
|
277
|
+
number | string
|
|
278
|
+
</td>
|
|
279
|
+
<td className="px-6 py-4 text-sm !text-white/50">
|
|
280
|
+
1.5
|
|
281
|
+
</td>
|
|
282
|
+
<td className="px-6 py-4 text-sm !text-white/70">
|
|
283
|
+
Thickness of the stroke lines
|
|
284
|
+
</td>
|
|
285
|
+
</tr>
|
|
286
|
+
<tr className="border-b border-white/5">
|
|
287
|
+
<td className="px-6 py-4 font-mono text-sm !text-blue-300">
|
|
288
|
+
strokeLinecap
|
|
289
|
+
</td>
|
|
290
|
+
<td className="px-6 py-4 text-sm !text-white/70">
|
|
291
|
+
string
|
|
292
|
+
</td>
|
|
293
|
+
<td className="px-6 py-4 text-sm !text-white/50">
|
|
294
|
+
square
|
|
295
|
+
</td>
|
|
296
|
+
<td className="px-6 py-4 text-sm !text-white/70">
|
|
297
|
+
Style of line endings
|
|
298
|
+
</td>
|
|
299
|
+
</tr>
|
|
300
|
+
<tr className="border-b border-white/5 !bg-black/10">
|
|
301
|
+
<td className="px-6 py-4 font-mono text-sm !text-blue-300">
|
|
302
|
+
className
|
|
303
|
+
</td>
|
|
304
|
+
<td className="px-6 py-4 text-sm !text-white/70">
|
|
305
|
+
string
|
|
306
|
+
</td>
|
|
307
|
+
<td className="px-6 py-4 text-sm !text-white/50">-</td>
|
|
308
|
+
<td className="px-6 py-4 text-sm !text-white/70">
|
|
309
|
+
CSS classes for styling
|
|
310
|
+
</td>
|
|
311
|
+
</tr>
|
|
312
|
+
<tr className="!bg-black/10">
|
|
313
|
+
<td className="px-6 py-4 font-mono text-sm !text-blue-300">
|
|
314
|
+
...svgProps
|
|
315
|
+
</td>
|
|
316
|
+
<td className="px-6 py-4 text-sm !text-white/70">
|
|
317
|
+
SVGProps
|
|
318
|
+
</td>
|
|
319
|
+
<td className="px-6 py-4 text-sm !text-white/50">-</td>
|
|
320
|
+
<td className="px-6 py-4 text-sm !text-white/70">
|
|
321
|
+
All standard SVG element props
|
|
322
|
+
</td>
|
|
323
|
+
</tr>
|
|
324
|
+
</tbody>
|
|
325
|
+
</table>
|
|
326
|
+
</div>
|
|
327
|
+
</div>
|
|
328
|
+
|
|
329
|
+
{/* Size Variations */}
|
|
330
|
+
<div className="!space-y-8">
|
|
331
|
+
<h2 className="text-center text-3xl font-bold !text-white">
|
|
332
|
+
Size Variations
|
|
333
|
+
</h2>
|
|
334
|
+
<div className="rounded-lg border border-white/10 bg-white/5 p-8">
|
|
335
|
+
<div className="!space-y-6">
|
|
336
|
+
<div className="grid grid-cols-1 gap-8 md:grid-cols-2">
|
|
337
|
+
<div className="!space-y-4">
|
|
338
|
+
<h3 className="text-lg font-semibold !text-blue-300">
|
|
339
|
+
Standard Sizes
|
|
340
|
+
</h3>
|
|
341
|
+
<div className="flex items-end gap-6 rounded-lg bg-black/20 p-6">
|
|
342
|
+
<div className="text-center">
|
|
343
|
+
<SearchIcon className="!mx-auto mb-2 h-3 w-3 text-blue-400" />
|
|
344
|
+
<span className="text-xs text-white/60">12px</span>
|
|
345
|
+
</div>
|
|
346
|
+
<div className="text-center">
|
|
347
|
+
<SearchIcon className="!mx-auto mb-2 h-4 w-4 text-blue-400" />
|
|
348
|
+
<span className="text-xs text-white/60">16px</span>
|
|
349
|
+
</div>
|
|
350
|
+
<div className="text-center">
|
|
351
|
+
<SearchIcon className="!mx-auto mb-2 h-5 w-5 text-blue-400" />
|
|
352
|
+
<span className="text-xs text-white/60">20px</span>
|
|
353
|
+
</div>
|
|
354
|
+
<div className="text-center">
|
|
355
|
+
<SearchIcon className="!mx-auto mb-2 h-6 w-6 text-blue-400" />
|
|
356
|
+
<span className="text-xs text-white/60">24px</span>
|
|
357
|
+
</div>
|
|
358
|
+
<div className="text-center">
|
|
359
|
+
<SearchIcon className="!mx-auto mb-2 h-8 w-8 text-blue-400" />
|
|
360
|
+
<span className="text-xs text-white/60">32px</span>
|
|
361
|
+
</div>
|
|
362
|
+
<div className="text-center">
|
|
363
|
+
<SearchIcon className="!mx-auto mb-2 h-12 w-12 text-blue-400" />
|
|
364
|
+
<span className="text-xs text-white/60">48px</span>
|
|
365
|
+
</div>
|
|
366
|
+
</div>
|
|
367
|
+
</div>
|
|
368
|
+
|
|
369
|
+
<div className="!space-y-4">
|
|
370
|
+
<h3 className="text-lg font-semibold !text-blue-300">
|
|
371
|
+
Code Example
|
|
372
|
+
</h3>
|
|
373
|
+
<div className="rounded-lg bg-black/40 p-4">
|
|
374
|
+
<pre className="overflow-x-auto text-sm !text-cyan-300">
|
|
375
|
+
{`// Small (16px)
|
|
376
|
+
<SearchIcon className="h-4 w-4" />
|
|
377
|
+
|
|
378
|
+
// Medium (24px)
|
|
379
|
+
<SearchIcon className="h-6 w-6" />
|
|
380
|
+
|
|
381
|
+
// Large (32px)
|
|
382
|
+
<SearchIcon className="h-8 w-8" />
|
|
383
|
+
|
|
384
|
+
// Custom size with props
|
|
385
|
+
<SearchIcon width={40} height={40} />`}
|
|
386
|
+
</pre>
|
|
387
|
+
</div>
|
|
388
|
+
</div>
|
|
389
|
+
</div>
|
|
390
|
+
</div>
|
|
391
|
+
</div>
|
|
392
|
+
</div>
|
|
393
|
+
|
|
394
|
+
{/* Color Variations */}
|
|
395
|
+
<div className="!space-y-8">
|
|
396
|
+
<h2 className="text-center text-3xl font-bold !text-white">
|
|
397
|
+
Color Variations
|
|
398
|
+
</h2>
|
|
399
|
+
<div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
|
|
400
|
+
<div className="!space-y-4">
|
|
401
|
+
<h3 className="text-lg font-semibold !text-blue-300">
|
|
402
|
+
Semantic Colors
|
|
403
|
+
</h3>
|
|
404
|
+
<div className="!space-y-4 rounded-lg border border-white/10 bg-white/5 p-6">
|
|
405
|
+
<div className="flex items-center gap-4">
|
|
406
|
+
<SearchIcon className="h-6 w-6 text-blue-400" />
|
|
407
|
+
<div>
|
|
408
|
+
<div className="text-sm font-medium text-white">
|
|
409
|
+
Primary
|
|
410
|
+
</div>
|
|
411
|
+
<div className="text-xs text-white/60">
|
|
412
|
+
text-blue-400
|
|
413
|
+
</div>
|
|
414
|
+
</div>
|
|
415
|
+
</div>
|
|
416
|
+
<div className="flex items-center gap-4">
|
|
417
|
+
<SearchIcon className="h-6 w-6 text-purple-400" />
|
|
418
|
+
<div>
|
|
419
|
+
<div className="text-sm font-medium text-white">
|
|
420
|
+
Secondary
|
|
421
|
+
</div>
|
|
422
|
+
<div className="text-xs text-white/60">
|
|
423
|
+
text-purple-400
|
|
424
|
+
</div>
|
|
425
|
+
</div>
|
|
426
|
+
</div>
|
|
427
|
+
<div className="flex items-center gap-4">
|
|
428
|
+
<SearchIcon className="h-6 w-6 text-cyan-400" />
|
|
429
|
+
<div>
|
|
430
|
+
<div className="text-sm font-medium text-white">
|
|
431
|
+
Info
|
|
432
|
+
</div>
|
|
433
|
+
<div className="text-xs text-white/60">
|
|
434
|
+
text-cyan-400
|
|
435
|
+
</div>
|
|
436
|
+
</div>
|
|
437
|
+
</div>
|
|
438
|
+
<div className="flex items-center gap-4">
|
|
439
|
+
<SearchIcon className="h-6 w-6 text-gray-400" />
|
|
440
|
+
<div>
|
|
441
|
+
<div className="text-sm font-medium text-white">
|
|
442
|
+
Muted
|
|
443
|
+
</div>
|
|
444
|
+
<div className="text-xs text-white/60">
|
|
445
|
+
text-gray-400
|
|
446
|
+
</div>
|
|
447
|
+
</div>
|
|
448
|
+
</div>
|
|
449
|
+
</div>
|
|
450
|
+
</div>
|
|
451
|
+
|
|
452
|
+
<div className="!space-y-4">
|
|
453
|
+
<h3 className="text-lg font-semibold !text-blue-300">
|
|
454
|
+
Custom Colors
|
|
455
|
+
</h3>
|
|
456
|
+
<div className="rounded-lg bg-black/40 p-4">
|
|
457
|
+
<pre className="overflow-x-auto text-sm !text-green-300">
|
|
458
|
+
{`// Using Tailwind classes
|
|
459
|
+
<SearchIcon className="h-6 w-6 text-blue-400" />
|
|
460
|
+
<SearchIcon className="h-6 w-6 text-purple-500" />
|
|
461
|
+
|
|
462
|
+
// Using CSS custom properties
|
|
463
|
+
<SearchIcon
|
|
464
|
+
className="h-6 w-6"
|
|
465
|
+
style={{ color: 'var(--color-primary)' }}
|
|
466
|
+
/>
|
|
467
|
+
|
|
468
|
+
// Direct stroke prop
|
|
469
|
+
<SearchIcon
|
|
470
|
+
width={24}
|
|
471
|
+
height={24}
|
|
472
|
+
stroke="#3b82f6"
|
|
473
|
+
/>`}
|
|
474
|
+
</pre>
|
|
475
|
+
</div>
|
|
476
|
+
</div>
|
|
477
|
+
</div>
|
|
478
|
+
</div>
|
|
479
|
+
|
|
480
|
+
{/* Usage Examples */}
|
|
481
|
+
<div className="!space-y-8">
|
|
482
|
+
<h2 className="text-center text-3xl font-bold !text-white">
|
|
483
|
+
Usage Examples
|
|
484
|
+
</h2>
|
|
485
|
+
|
|
486
|
+
<div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
|
|
487
|
+
{/* Search Input */}
|
|
488
|
+
<div className="!space-y-4">
|
|
489
|
+
<h3 className="text-lg font-semibold !text-blue-300">
|
|
490
|
+
Search Input Fields
|
|
491
|
+
</h3>
|
|
492
|
+
<div className="!space-y-4">
|
|
493
|
+
<div className="!space-y-3">
|
|
494
|
+
<div className="relative">
|
|
495
|
+
<SearchIcon className="absolute top-1/2 left-3 h-4 w-4 -translate-y-1/2 text-gray-400" />
|
|
496
|
+
<input
|
|
497
|
+
type="text"
|
|
498
|
+
placeholder="Search products..."
|
|
499
|
+
className="w-full rounded-lg border border-white/20 bg-white/10 py-2 pr-4 pl-10 text-white placeholder-white/50 focus:border-blue-400 focus:ring-2 focus:ring-blue-400/20 focus:outline-none"
|
|
500
|
+
/>
|
|
501
|
+
</div>
|
|
502
|
+
<div className="relative">
|
|
503
|
+
<SearchIcon className="absolute top-1/2 left-3 h-5 w-5 -translate-y-1/2 text-blue-400" />
|
|
504
|
+
<input
|
|
505
|
+
type="text"
|
|
506
|
+
placeholder="Search users..."
|
|
507
|
+
className="w-full rounded-lg border border-blue-400/50 bg-blue-500/10 py-3 pr-4 pl-12 text-white placeholder-blue-200/70 focus:border-blue-400 focus:ring-2 focus:ring-blue-400/20 focus:outline-none"
|
|
508
|
+
/>
|
|
509
|
+
</div>
|
|
510
|
+
</div>
|
|
511
|
+
<div className="rounded-lg bg-black/40 p-4">
|
|
512
|
+
<pre className="overflow-x-auto text-sm !text-green-300">
|
|
513
|
+
{`<div className="relative">
|
|
514
|
+
<SearchIcon className="absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-gray-400" />
|
|
515
|
+
<input
|
|
516
|
+
type="text"
|
|
517
|
+
placeholder="Search..."
|
|
518
|
+
className="w-full pl-10 pr-4 py-2 rounded-lg border border-white/20 bg-white/10"
|
|
519
|
+
/>
|
|
520
|
+
</div>`}
|
|
521
|
+
</pre>
|
|
522
|
+
</div>
|
|
523
|
+
</div>
|
|
524
|
+
</div>
|
|
525
|
+
|
|
526
|
+
{/* Search Button */}
|
|
527
|
+
<div className="!space-y-4">
|
|
528
|
+
<h3 className="text-lg font-semibold !text-blue-300">
|
|
529
|
+
Search Buttons
|
|
530
|
+
</h3>
|
|
531
|
+
<div className="!space-y-4">
|
|
532
|
+
<div className="flex gap-4">
|
|
533
|
+
<button className="flex items-center gap-2 rounded-lg border border-blue-500/30 bg-blue-500/20 px-4 py-2 text-blue-200 transition-colors hover:bg-blue-500/30">
|
|
534
|
+
<SearchIcon className="h-4 w-4" />
|
|
535
|
+
Search
|
|
536
|
+
</button>
|
|
537
|
+
<button className="flex h-10 w-10 items-center justify-center rounded-lg border border-purple-500/30 bg-purple-500/20 text-purple-200 transition-colors hover:bg-purple-500/30">
|
|
538
|
+
<SearchIcon className="h-5 w-5" />
|
|
539
|
+
</button>
|
|
540
|
+
<button className="flex h-8 w-8 items-center justify-center rounded-full bg-blue-500 text-white shadow-lg transition-transform hover:scale-110">
|
|
541
|
+
<SearchIcon className="h-4 w-4" />
|
|
542
|
+
</button>
|
|
543
|
+
</div>
|
|
544
|
+
<div className="rounded-lg bg-black/40 p-4">
|
|
545
|
+
<pre className="overflow-x-auto text-sm !text-green-300">
|
|
546
|
+
{`// Search button with text
|
|
547
|
+
<button className="flex items-center gap-2 bg-blue-500/20 border border-blue-500/30 px-4 py-2 rounded-lg">
|
|
548
|
+
<SearchIcon className="h-4 w-4" />
|
|
549
|
+
Search
|
|
550
|
+
</button>
|
|
551
|
+
|
|
552
|
+
// Icon-only button
|
|
553
|
+
<button className="flex h-10 w-10 items-center justify-center rounded-lg bg-purple-500/20">
|
|
554
|
+
<SearchIcon className="h-5 w-5" />
|
|
555
|
+
</button>
|
|
556
|
+
|
|
557
|
+
// Floating search button
|
|
558
|
+
<button className="flex h-8 w-8 items-center justify-center rounded-full bg-blue-500 text-white">
|
|
559
|
+
<SearchIcon className="h-4 w-4" />
|
|
560
|
+
</button>`}
|
|
561
|
+
</pre>
|
|
562
|
+
</div>
|
|
563
|
+
</div>
|
|
564
|
+
</div>
|
|
565
|
+
|
|
566
|
+
{/* Data Table */}
|
|
567
|
+
<div className="!space-y-4">
|
|
568
|
+
<h3 className="text-lg font-semibold !text-blue-300">
|
|
569
|
+
Data Table Search
|
|
570
|
+
</h3>
|
|
571
|
+
<div className="!space-y-4">
|
|
572
|
+
<div className="rounded-lg border border-white/10 bg-white/5 p-4">
|
|
573
|
+
<div className="mb-4 flex items-center justify-between">
|
|
574
|
+
<h4 className="font-medium text-white">Users</h4>
|
|
575
|
+
<div className="relative">
|
|
576
|
+
<SearchIcon className="absolute top-1/2 left-3 h-4 w-4 -translate-y-1/2 text-gray-400" />
|
|
577
|
+
<input
|
|
578
|
+
type="text"
|
|
579
|
+
placeholder="Filter users..."
|
|
580
|
+
className="rounded-lg border border-white/20 bg-white/10 py-1.5 pr-4 pl-10 text-sm text-white placeholder-white/50 focus:border-blue-400 focus:outline-none"
|
|
581
|
+
/>
|
|
582
|
+
</div>
|
|
583
|
+
</div>
|
|
584
|
+
<div className="!space-y-2">
|
|
585
|
+
<div className="flex items-center gap-3 rounded border border-white/10 bg-white/5 p-2">
|
|
586
|
+
<div className="h-8 w-8 rounded-full bg-blue-500/20"></div>
|
|
587
|
+
<div>
|
|
588
|
+
<div className="text-sm font-medium text-white">
|
|
589
|
+
John Doe
|
|
590
|
+
</div>
|
|
591
|
+
<div className="text-xs text-white/60">
|
|
592
|
+
john@example.com
|
|
593
|
+
</div>
|
|
594
|
+
</div>
|
|
595
|
+
</div>
|
|
596
|
+
<div className="flex items-center gap-3 rounded border border-white/10 bg-white/5 p-2">
|
|
597
|
+
<div className="h-8 w-8 rounded-full bg-purple-500/20"></div>
|
|
598
|
+
<div>
|
|
599
|
+
<div className="text-sm font-medium text-white">
|
|
600
|
+
Jane Smith
|
|
601
|
+
</div>
|
|
602
|
+
<div className="text-xs text-white/60">
|
|
603
|
+
jane@example.com
|
|
604
|
+
</div>
|
|
605
|
+
</div>
|
|
606
|
+
</div>
|
|
607
|
+
</div>
|
|
608
|
+
</div>
|
|
609
|
+
<div className="rounded-lg bg-black/40 p-4">
|
|
610
|
+
<pre className="overflow-x-auto text-sm !text-green-300">
|
|
611
|
+
{`<div className="flex items-center justify-between mb-4">
|
|
612
|
+
<h4>Users</h4>
|
|
613
|
+
<div className="relative">
|
|
614
|
+
<SearchIcon className="absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-gray-400" />
|
|
615
|
+
<input placeholder="Filter users..." className="pl-10 pr-4 py-1.5" />
|
|
616
|
+
</div>
|
|
617
|
+
</div>`}
|
|
618
|
+
</pre>
|
|
619
|
+
</div>
|
|
620
|
+
</div>
|
|
621
|
+
</div>
|
|
622
|
+
|
|
623
|
+
{/* Navigation Search */}
|
|
624
|
+
<div className="!space-y-4">
|
|
625
|
+
<h3 className="text-lg font-semibold !text-blue-300">
|
|
626
|
+
Navigation & Command Palette
|
|
627
|
+
</h3>
|
|
628
|
+
<div className="!space-y-4">
|
|
629
|
+
<div className="rounded-lg border border-white/10 bg-white/5 p-4">
|
|
630
|
+
<div className="!space-y-3">
|
|
631
|
+
<div className="flex items-center gap-3 rounded-lg border border-blue-400/30 bg-blue-500/10 p-3">
|
|
632
|
+
<SearchIcon className="h-5 w-5 text-blue-400" />
|
|
633
|
+
<input
|
|
634
|
+
type="text"
|
|
635
|
+
placeholder="Search commands..."
|
|
636
|
+
className="flex-1 bg-transparent text-white placeholder-blue-200/70 focus:outline-none"
|
|
637
|
+
/>
|
|
638
|
+
<kbd className="rounded bg-white/10 px-2 py-1 text-xs text-white/70">
|
|
639
|
+
⌘K
|
|
640
|
+
</kbd>
|
|
641
|
+
</div>
|
|
642
|
+
<div className="!space-y-1">
|
|
643
|
+
<div className="flex items-center gap-3 rounded p-2 text-white/80 hover:bg-white/10">
|
|
644
|
+
<SearchIcon className="h-4 w-4 text-blue-400" />
|
|
645
|
+
<span className="text-sm">Search files</span>
|
|
646
|
+
</div>
|
|
647
|
+
<div className="flex items-center gap-3 rounded p-2 text-white/80 hover:bg-white/10">
|
|
648
|
+
<SearchIcon className="h-4 w-4 text-purple-400" />
|
|
649
|
+
<span className="text-sm">Find in project</span>
|
|
650
|
+
</div>
|
|
651
|
+
</div>
|
|
652
|
+
</div>
|
|
653
|
+
</div>
|
|
654
|
+
<div className="rounded-lg bg-black/40 p-4">
|
|
655
|
+
<pre className="overflow-x-auto text-sm !text-green-300">
|
|
656
|
+
{`<div className="flex items-center gap-3 rounded-lg border border-blue-400/30 bg-blue-500/10 p-3">
|
|
657
|
+
<SearchIcon className="h-5 w-5 text-blue-400" />
|
|
658
|
+
<input
|
|
659
|
+
type="text"
|
|
660
|
+
placeholder="Search commands..."
|
|
661
|
+
className="flex-1 bg-transparent"
|
|
662
|
+
/>
|
|
663
|
+
<kbd className="rounded bg-white/10 px-2 py-1 text-xs">⌘K</kbd>
|
|
664
|
+
</div>`}
|
|
665
|
+
</pre>
|
|
666
|
+
</div>
|
|
667
|
+
</div>
|
|
668
|
+
</div>
|
|
669
|
+
</div>
|
|
670
|
+
</div>
|
|
671
|
+
|
|
672
|
+
{/* Interactive States */}
|
|
673
|
+
<div className="!space-y-8">
|
|
674
|
+
<h2 className="text-center text-3xl font-bold !text-white">
|
|
675
|
+
Interactive States & Animations
|
|
676
|
+
</h2>
|
|
677
|
+
<div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
|
|
678
|
+
<div className="!space-y-4">
|
|
679
|
+
<h3 className="text-lg font-semibold !text-blue-300">
|
|
680
|
+
Hover & Animation Effects
|
|
681
|
+
</h3>
|
|
682
|
+
<div className="!space-y-4 rounded-lg border border-white/10 bg-white/5 p-6">
|
|
683
|
+
<div className="flex items-center gap-4">
|
|
684
|
+
<SearchIcon className="h-6 w-6 text-white/60 transition-colors hover:text-blue-400" />
|
|
685
|
+
<div>
|
|
686
|
+
<div className="text-sm font-medium text-white">
|
|
687
|
+
Color Change
|
|
688
|
+
</div>
|
|
689
|
+
<div className="text-xs text-white/60">
|
|
690
|
+
Hover to see effect
|
|
691
|
+
</div>
|
|
692
|
+
</div>
|
|
693
|
+
</div>
|
|
694
|
+
<div className="flex items-center gap-4">
|
|
695
|
+
<SearchIcon className="h-6 w-6 text-white transition-transform hover:scale-125" />
|
|
696
|
+
<div>
|
|
697
|
+
<div className="text-sm font-medium text-white">
|
|
698
|
+
Scale on Hover
|
|
699
|
+
</div>
|
|
700
|
+
<div className="text-xs text-white/60">
|
|
701
|
+
Grow on interaction
|
|
702
|
+
</div>
|
|
703
|
+
</div>
|
|
704
|
+
</div>
|
|
705
|
+
<div className="flex items-center gap-4">
|
|
706
|
+
<SearchIcon className="animate-search-pulse h-6 w-6 text-blue-400" />
|
|
707
|
+
<div>
|
|
708
|
+
<div className="text-sm font-medium text-white">
|
|
709
|
+
Search Pulse
|
|
710
|
+
</div>
|
|
711
|
+
<div className="text-xs text-white/60">
|
|
712
|
+
Continuous animation
|
|
713
|
+
</div>
|
|
714
|
+
</div>
|
|
715
|
+
</div>
|
|
716
|
+
<div className="flex items-center gap-4">
|
|
717
|
+
<SearchIcon className="animate-search-bounce h-6 w-6 text-purple-400" />
|
|
718
|
+
<div>
|
|
719
|
+
<div className="text-sm font-medium text-white">
|
|
720
|
+
Bounce Effect
|
|
721
|
+
</div>
|
|
722
|
+
<div className="text-xs text-white/60">
|
|
723
|
+
Gentle bounce motion
|
|
724
|
+
</div>
|
|
725
|
+
</div>
|
|
726
|
+
</div>
|
|
727
|
+
<div className="flex items-center gap-4">
|
|
728
|
+
<SearchIcon className="animate-search-glow h-6 w-6 text-cyan-400" />
|
|
729
|
+
<div>
|
|
730
|
+
<div className="text-sm font-medium text-white">
|
|
731
|
+
Glow Animation
|
|
732
|
+
</div>
|
|
733
|
+
<div className="text-xs text-white/60">
|
|
734
|
+
Glowing search effect
|
|
735
|
+
</div>
|
|
736
|
+
</div>
|
|
737
|
+
</div>
|
|
738
|
+
</div>
|
|
739
|
+
</div>
|
|
740
|
+
|
|
741
|
+
<div className="!space-y-4">
|
|
742
|
+
<h3 className="text-lg font-semibold !text-blue-300">
|
|
743
|
+
State Examples
|
|
744
|
+
</h3>
|
|
745
|
+
<div className="rounded-lg bg-black/40 p-4">
|
|
746
|
+
<pre className="overflow-x-auto text-sm !text-cyan-300">
|
|
747
|
+
{`// Color change on hover
|
|
748
|
+
<SearchIcon className="h-6 w-6 text-white/60 transition-colors hover:text-blue-400" />
|
|
749
|
+
|
|
750
|
+
// Scale on hover
|
|
751
|
+
<SearchIcon className="h-6 w-6 text-white transition-transform hover:scale-125" />
|
|
752
|
+
|
|
753
|
+
// Pulsing animation
|
|
754
|
+
<SearchIcon className="h-6 w-6 text-blue-400 animate-pulse" />
|
|
755
|
+
|
|
756
|
+
// Loading/searching state
|
|
757
|
+
<SearchIcon className="h-6 w-6 text-blue-400 animate-spin" />
|
|
758
|
+
|
|
759
|
+
// Focused state
|
|
760
|
+
<SearchIcon className="h-6 w-6 text-blue-400 drop-shadow-lg" />
|
|
761
|
+
|
|
762
|
+
// Disabled state
|
|
763
|
+
<SearchIcon className="h-6 w-6 text-gray-400 opacity-50" />`}
|
|
764
|
+
</pre>
|
|
765
|
+
</div>
|
|
766
|
+
</div>
|
|
767
|
+
</div>
|
|
768
|
+
</div>
|
|
769
|
+
|
|
770
|
+
{/* Accessibility */}
|
|
771
|
+
<div className="!space-y-8">
|
|
772
|
+
<h2 className="text-center text-3xl font-bold !text-white">
|
|
773
|
+
Accessibility Features
|
|
774
|
+
</h2>
|
|
775
|
+
<div className="grid grid-cols-1 gap-8 md:grid-cols-2">
|
|
776
|
+
<div className="!space-y-4 rounded-lg border border-white/10 bg-white/5 p-6">
|
|
777
|
+
<h3 className="text-lg font-semibold !text-green-300">
|
|
778
|
+
✅ Built-in Features
|
|
779
|
+
</h3>
|
|
780
|
+
<ul className="!space-y-2 text-sm !text-white/70">
|
|
781
|
+
<li className="!text-white/70">
|
|
782
|
+
Uses Radix UI AccessibleIcon wrapper
|
|
783
|
+
</li>
|
|
784
|
+
<li className="!text-white/70">
|
|
785
|
+
Provides screen reader label "Search icon"
|
|
786
|
+
</li>
|
|
787
|
+
<li className="!text-white/70">
|
|
788
|
+
Supports keyboard navigation when interactive
|
|
789
|
+
</li>
|
|
790
|
+
<li className="!text-white/70">
|
|
791
|
+
Maintains proper color contrast ratios
|
|
792
|
+
</li>
|
|
793
|
+
<li className="!text-white/70">
|
|
794
|
+
Scales with user's font size preferences
|
|
795
|
+
</li>
|
|
796
|
+
</ul>
|
|
797
|
+
</div>
|
|
798
|
+
|
|
799
|
+
<div className="!space-y-4 rounded-lg border border-white/10 bg-white/5 p-6">
|
|
800
|
+
<h3 className="text-lg font-semibold !text-blue-300">
|
|
801
|
+
💡 Best Practices
|
|
802
|
+
</h3>
|
|
803
|
+
<ul className="!space-y-2 text-sm !text-white/70">
|
|
804
|
+
<li className="!text-white/70">
|
|
805
|
+
Always provide descriptive labels for search inputs
|
|
806
|
+
</li>
|
|
807
|
+
<li className="!text-white/70">
|
|
808
|
+
Use consistent placement in search interfaces
|
|
809
|
+
</li>
|
|
810
|
+
<li className="!text-white/70">
|
|
811
|
+
Ensure sufficient click/touch target sizes
|
|
812
|
+
</li>
|
|
813
|
+
<li className="!text-white/70">
|
|
814
|
+
Add focus states for keyboard navigation
|
|
815
|
+
</li>
|
|
816
|
+
<li className="!text-white/70">
|
|
817
|
+
Consider motion sensitivity for animations
|
|
818
|
+
</li>
|
|
819
|
+
</ul>
|
|
820
|
+
</div>
|
|
821
|
+
</div>
|
|
822
|
+
|
|
823
|
+
<div className="rounded-lg border border-white/10 bg-white/5 p-6">
|
|
824
|
+
<h3 className="mb-4 text-lg font-semibold !text-purple-300">
|
|
825
|
+
Custom Accessibility Implementation
|
|
826
|
+
</h3>
|
|
827
|
+
<div className="grid grid-cols-1 gap-6 lg:grid-cols-2">
|
|
828
|
+
<div className="rounded-lg bg-black/40 p-4">
|
|
829
|
+
<pre className="overflow-x-auto text-sm !text-cyan-300">
|
|
830
|
+
{`// Search input with proper ARIA
|
|
831
|
+
<div className="relative">
|
|
832
|
+
<SearchIcon
|
|
833
|
+
className="absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-gray-400"
|
|
834
|
+
aria-hidden="true"
|
|
835
|
+
/>
|
|
836
|
+
<input
|
|
837
|
+
type="search"
|
|
838
|
+
aria-label="Search products"
|
|
839
|
+
placeholder="Search..."
|
|
840
|
+
className="pl-10 pr-4 py-2"
|
|
841
|
+
/>
|
|
842
|
+
</div>
|
|
843
|
+
|
|
844
|
+
// Search button with context
|
|
845
|
+
<button
|
|
846
|
+
type="submit"
|
|
847
|
+
aria-label="Search for products"
|
|
848
|
+
className="flex items-center gap-2"
|
|
849
|
+
>
|
|
850
|
+
<SearchIcon className="h-4 w-4" />
|
|
851
|
+
<span>Search</span>
|
|
852
|
+
</button>
|
|
853
|
+
|
|
854
|
+
// Command palette trigger
|
|
855
|
+
<button
|
|
856
|
+
aria-label="Open command palette"
|
|
857
|
+
aria-keyshortcuts="Meta+K"
|
|
858
|
+
className="flex items-center gap-2"
|
|
859
|
+
>
|
|
860
|
+
<SearchIcon className="h-4 w-4" />
|
|
861
|
+
<span>Quick search</span>
|
|
862
|
+
<kbd>⌘K</kbd>
|
|
863
|
+
</button>`}
|
|
864
|
+
</pre>
|
|
865
|
+
</div>
|
|
866
|
+
<div className="!space-y-4">
|
|
867
|
+
<p className="text-sm !text-white/70">
|
|
868
|
+
When using SearchIcon in search interfaces, provide
|
|
869
|
+
clear context about what can be searched and how to
|
|
870
|
+
interact with the search functionality.
|
|
871
|
+
</p>
|
|
872
|
+
<div className="rounded-lg border border-blue-500/20 bg-blue-500/10 p-4">
|
|
873
|
+
<div className="flex items-center gap-2 text-sm text-blue-200">
|
|
874
|
+
<SearchIcon className="h-4 w-4" />
|
|
875
|
+
<span>
|
|
876
|
+
This approach gives screen readers clear context
|
|
877
|
+
about the search functionality
|
|
878
|
+
</span>
|
|
879
|
+
</div>
|
|
880
|
+
</div>
|
|
881
|
+
</div>
|
|
882
|
+
</div>
|
|
883
|
+
</div>
|
|
884
|
+
</div>
|
|
885
|
+
|
|
886
|
+
{/* Related Icons */}
|
|
887
|
+
<div className="!space-y-8">
|
|
888
|
+
<h2 className="text-center text-3xl font-bold !text-white">
|
|
889
|
+
Related Icons
|
|
890
|
+
</h2>
|
|
891
|
+
<div className="grid grid-cols-2 gap-6 md:grid-cols-4">
|
|
892
|
+
<div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
|
|
893
|
+
<div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-blue-500/20">
|
|
894
|
+
<span className="text-2xl">🔍</span>
|
|
895
|
+
</div>
|
|
896
|
+
<div>
|
|
897
|
+
<div className="font-medium text-white">FilterIcon</div>
|
|
898
|
+
<div className="text-xs text-white/60">
|
|
899
|
+
Filter results
|
|
900
|
+
</div>
|
|
901
|
+
</div>
|
|
902
|
+
</div>
|
|
903
|
+
<div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
|
|
904
|
+
<div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-green-500/20">
|
|
905
|
+
<span className="!text-2xl !text-white">↻</span>
|
|
906
|
+
</div>
|
|
907
|
+
<div>
|
|
908
|
+
<div className="font-medium text-white">RefreshIcon</div>
|
|
909
|
+
<div className="text-xs text-white/60">
|
|
910
|
+
Refresh search
|
|
911
|
+
</div>
|
|
912
|
+
</div>
|
|
913
|
+
</div>
|
|
914
|
+
<div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
|
|
915
|
+
<div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-purple-500/20">
|
|
916
|
+
<span className="!text-2xl !text-white">✕</span>
|
|
917
|
+
</div>
|
|
918
|
+
<div>
|
|
919
|
+
<div className="font-medium text-white">CloseIcon</div>
|
|
920
|
+
<div className="text-xs text-white/60">Clear search</div>
|
|
921
|
+
</div>
|
|
922
|
+
</div>
|
|
923
|
+
<div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
|
|
924
|
+
<div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-orange-500/20">
|
|
925
|
+
<span className="text-2xl">⚙️</span>
|
|
926
|
+
</div>
|
|
927
|
+
<div>
|
|
928
|
+
<div className="font-medium text-white">SettingsIcon</div>
|
|
929
|
+
<div className="text-xs text-white/60">
|
|
930
|
+
Search settings
|
|
931
|
+
</div>
|
|
932
|
+
</div>
|
|
933
|
+
</div>
|
|
934
|
+
</div>
|
|
935
|
+
</div>
|
|
936
|
+
</div>
|
|
937
|
+
|
|
938
|
+
{/* Footer */}
|
|
939
|
+
<div className="border-t border-white/10 bg-black/20 backdrop-blur-xl">
|
|
940
|
+
<div className="!mx-auto max-w-7xl px-6 py-8">
|
|
941
|
+
<div className="!space-y-4 text-center">
|
|
942
|
+
<p className="!text-white/60">
|
|
943
|
+
SearchIcon is part of the Aural UI icon library, built for
|
|
944
|
+
search interfaces, discovery, and navigation.
|
|
945
|
+
</p>
|
|
946
|
+
<p className="text-sm !text-white/40">
|
|
947
|
+
All icons use Radix UI's AccessibleIcon for screen reader
|
|
948
|
+
compatibility and follow WCAG guidelines for interactive
|
|
949
|
+
elements.
|
|
950
|
+
</p>
|
|
951
|
+
</div>
|
|
952
|
+
</div>
|
|
953
|
+
</div>
|
|
954
|
+
</div>
|
|
955
|
+
</>
|
|
956
|
+
),
|
|
957
|
+
},
|
|
958
|
+
},
|
|
959
|
+
tags: ["autodocs"],
|
|
960
|
+
argTypes: {
|
|
961
|
+
width: {
|
|
962
|
+
control: { type: "range", min: 8, max: 96, step: 2 },
|
|
963
|
+
description: "Width of the icon in pixels",
|
|
964
|
+
},
|
|
965
|
+
height: {
|
|
966
|
+
control: { type: "range", min: 8, max: 96, step: 2 },
|
|
967
|
+
description: "Height of the icon in pixels",
|
|
968
|
+
},
|
|
969
|
+
stroke: {
|
|
970
|
+
control: "color",
|
|
971
|
+
description: "Stroke color of the search icon",
|
|
972
|
+
},
|
|
973
|
+
strokeWidth: {
|
|
974
|
+
control: { type: "range", min: 0.5, max: 4, step: 0.5 },
|
|
975
|
+
description: "Thickness of the stroke lines",
|
|
976
|
+
},
|
|
977
|
+
strokeLinecap: {
|
|
978
|
+
control: "select",
|
|
979
|
+
options: ["butt", "round", "square"],
|
|
980
|
+
description: "Style of line endings",
|
|
981
|
+
},
|
|
982
|
+
className: {
|
|
983
|
+
control: "text",
|
|
984
|
+
description: "CSS classes for styling",
|
|
985
|
+
},
|
|
986
|
+
},
|
|
987
|
+
}
|
|
988
|
+
|
|
989
|
+
export default meta
|
|
990
|
+
type Story = StoryObj<typeof SearchIcon>
|
|
991
|
+
|
|
992
|
+
// Story parameters for consistent dark theme
|
|
993
|
+
const storyParameters = {
|
|
994
|
+
backgrounds: {
|
|
995
|
+
default: "dark",
|
|
996
|
+
values: [
|
|
997
|
+
{ name: "dark", value: "#0a0a0a" },
|
|
998
|
+
{ name: "darker", value: "#000000" },
|
|
999
|
+
],
|
|
1000
|
+
},
|
|
1001
|
+
}
|
|
1002
|
+
|
|
1003
|
+
export const Default: Story = {
|
|
1004
|
+
args: {
|
|
1005
|
+
width: 24,
|
|
1006
|
+
height: 24,
|
|
1007
|
+
className: "text-blue-400",
|
|
1008
|
+
},
|
|
1009
|
+
parameters: storyParameters,
|
|
1010
|
+
render: (args) => (
|
|
1011
|
+
<div className="flex h-32 min-h-dvh items-center justify-center rounded-lg bg-gradient-to-br from-gray-900 to-gray-800">
|
|
1012
|
+
<SearchIcon {...args} />
|
|
1013
|
+
</div>
|
|
1014
|
+
),
|
|
1015
|
+
}
|
|
1016
|
+
|
|
1017
|
+
export const SizeVariations: Story = {
|
|
1018
|
+
parameters: {
|
|
1019
|
+
...storyParameters,
|
|
1020
|
+
docs: {
|
|
1021
|
+
description: {
|
|
1022
|
+
story:
|
|
1023
|
+
"SearchIcon in different sizes, from small UI elements to large search interfaces.",
|
|
1024
|
+
},
|
|
1025
|
+
},
|
|
1026
|
+
},
|
|
1027
|
+
render: () => (
|
|
1028
|
+
<div className="flex h-64 min-h-dvh items-center justify-center gap-8 rounded-lg bg-gradient-to-br from-gray-900 to-gray-800 p-8">
|
|
1029
|
+
<div className="text-center">
|
|
1030
|
+
<SearchIcon className="!mx-auto mb-2 h-3 w-3 text-blue-400" />
|
|
1031
|
+
<span className="text-xs text-white/60">12px</span>
|
|
1032
|
+
</div>
|
|
1033
|
+
<div className="text-center">
|
|
1034
|
+
<SearchIcon className="!mx-auto mb-2 h-4 w-4 text-blue-400" />
|
|
1035
|
+
<span className="text-xs text-white/60">16px</span>
|
|
1036
|
+
</div>
|
|
1037
|
+
<div className="text-center">
|
|
1038
|
+
<SearchIcon className="!mx-auto mb-2 h-5 w-5 text-blue-400" />
|
|
1039
|
+
<span className="text-xs text-white/60">20px</span>
|
|
1040
|
+
</div>
|
|
1041
|
+
<div className="text-center">
|
|
1042
|
+
<SearchIcon className="!mx-auto mb-2 h-6 w-6 text-blue-400" />
|
|
1043
|
+
<span className="text-xs text-white/60">24px</span>
|
|
1044
|
+
</div>
|
|
1045
|
+
<div className="text-center">
|
|
1046
|
+
<SearchIcon className="!mx-auto mb-2 h-8 w-8 text-blue-400" />
|
|
1047
|
+
<span className="text-xs text-white/60">32px</span>
|
|
1048
|
+
</div>
|
|
1049
|
+
<div className="text-center">
|
|
1050
|
+
<SearchIcon className="!mx-auto mb-2 h-12 w-12 text-blue-400" />
|
|
1051
|
+
<span className="text-xs text-white/60">48px</span>
|
|
1052
|
+
</div>
|
|
1053
|
+
</div>
|
|
1054
|
+
),
|
|
1055
|
+
}
|
|
1056
|
+
|
|
1057
|
+
export const ColorVariations: Story = {
|
|
1058
|
+
parameters: {
|
|
1059
|
+
...storyParameters,
|
|
1060
|
+
docs: {
|
|
1061
|
+
description: {
|
|
1062
|
+
story:
|
|
1063
|
+
"SearchIcon in different colors for various search and discovery contexts.",
|
|
1064
|
+
},
|
|
1065
|
+
},
|
|
1066
|
+
},
|
|
1067
|
+
render: () => (
|
|
1068
|
+
<div className="grid min-h-dvh grid-cols-2 items-center justify-center gap-6 rounded-lg bg-gradient-to-br from-gray-900 to-gray-800 p-8 md:grid-cols-4">
|
|
1069
|
+
<div className="text-center">
|
|
1070
|
+
<div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border border-blue-500/30 bg-blue-500/20">
|
|
1071
|
+
<SearchIcon className="h-8 w-8 text-blue-400" />
|
|
1072
|
+
</div>
|
|
1073
|
+
<div className="text-sm font-medium text-white">Primary</div>
|
|
1074
|
+
<div className="text-xs text-blue-400">text-blue-400</div>
|
|
1075
|
+
</div>
|
|
1076
|
+
<div className="text-center">
|
|
1077
|
+
<div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border border-purple-500/30 bg-purple-500/20">
|
|
1078
|
+
<SearchIcon className="h-8 w-8 text-purple-400" />
|
|
1079
|
+
</div>
|
|
1080
|
+
<div className="text-sm font-medium text-white">Secondary</div>
|
|
1081
|
+
<div className="text-xs text-purple-400">text-purple-400</div>
|
|
1082
|
+
</div>
|
|
1083
|
+
<div className="text-center">
|
|
1084
|
+
<div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border border-cyan-500/30 bg-cyan-500/20">
|
|
1085
|
+
<SearchIcon className="h-8 w-8 text-cyan-400" />
|
|
1086
|
+
</div>
|
|
1087
|
+
<div className="text-sm font-medium text-white">Info</div>
|
|
1088
|
+
<div className="text-xs text-cyan-400">text-cyan-400</div>
|
|
1089
|
+
</div>
|
|
1090
|
+
<div className="text-center">
|
|
1091
|
+
<div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border border-gray-500/30 bg-gray-500/20">
|
|
1092
|
+
<SearchIcon className="h-8 w-8 text-gray-400" />
|
|
1093
|
+
</div>
|
|
1094
|
+
<div className="text-sm font-medium text-white">Muted</div>
|
|
1095
|
+
<div className="text-xs text-gray-400">text-gray-400</div>
|
|
1096
|
+
</div>
|
|
1097
|
+
</div>
|
|
1098
|
+
),
|
|
1099
|
+
}
|
|
1100
|
+
|
|
1101
|
+
export const UsageExamples: Story = {
|
|
1102
|
+
parameters: {
|
|
1103
|
+
...storyParameters,
|
|
1104
|
+
docs: {
|
|
1105
|
+
description: {
|
|
1106
|
+
story:
|
|
1107
|
+
"Real-world usage examples showing SearchIcon in different UI contexts.",
|
|
1108
|
+
},
|
|
1109
|
+
},
|
|
1110
|
+
},
|
|
1111
|
+
render: () => (
|
|
1112
|
+
<div className="min-h-dvh !space-y-8 rounded-lg bg-gradient-to-br from-gray-900 to-gray-800 p-8">
|
|
1113
|
+
{/* Search Input */}
|
|
1114
|
+
<div className="!space-y-2">
|
|
1115
|
+
<h3 className="text-sm font-medium text-white">Search Input</h3>
|
|
1116
|
+
<div className="relative">
|
|
1117
|
+
<SearchIcon className="absolute top-1/2 left-3 h-4 w-4 -translate-y-1/2 text-gray-400" />
|
|
1118
|
+
<input
|
|
1119
|
+
type="text"
|
|
1120
|
+
placeholder="Search products..."
|
|
1121
|
+
className="w-full rounded-lg border border-white/20 bg-white/10 py-2 pr-4 pl-10 text-white placeholder-white/50 focus:border-blue-400 focus:ring-2 focus:ring-blue-400/20 focus:outline-none"
|
|
1122
|
+
/>
|
|
1123
|
+
</div>
|
|
1124
|
+
</div>
|
|
1125
|
+
|
|
1126
|
+
{/* Search Buttons */}
|
|
1127
|
+
<div className="!space-y-2">
|
|
1128
|
+
<h3 className="text-sm font-medium text-white">Search Buttons</h3>
|
|
1129
|
+
<div className="flex gap-4">
|
|
1130
|
+
<button className="flex items-center gap-2 rounded-lg border border-blue-500/30 bg-blue-500/20 px-4 py-2 text-blue-200 transition-colors hover:bg-blue-500/30">
|
|
1131
|
+
<SearchIcon className="h-4 w-4" />
|
|
1132
|
+
Search
|
|
1133
|
+
</button>
|
|
1134
|
+
<button className="flex h-10 w-10 items-center justify-center rounded-lg border border-purple-500/30 bg-purple-500/20 text-purple-200 transition-colors hover:bg-purple-500/30">
|
|
1135
|
+
<SearchIcon className="h-5 w-5" />
|
|
1136
|
+
</button>
|
|
1137
|
+
</div>
|
|
1138
|
+
</div>
|
|
1139
|
+
|
|
1140
|
+
{/* Command Palette */}
|
|
1141
|
+
<div className="!space-y-2">
|
|
1142
|
+
<h3 className="text-sm font-medium text-white">Command Palette</h3>
|
|
1143
|
+
<div className="flex items-center gap-3 rounded-lg border border-blue-400/30 bg-blue-500/10 p-3">
|
|
1144
|
+
<SearchIcon className="h-5 w-5 text-blue-400" />
|
|
1145
|
+
<input
|
|
1146
|
+
type="text"
|
|
1147
|
+
placeholder="Search commands..."
|
|
1148
|
+
className="flex-1 bg-transparent text-white placeholder-blue-200/70 focus:outline-none"
|
|
1149
|
+
/>
|
|
1150
|
+
<kbd className="rounded bg-white/10 px-2 py-1 text-xs text-white/70">
|
|
1151
|
+
⌘K
|
|
1152
|
+
</kbd>
|
|
1153
|
+
</div>
|
|
1154
|
+
</div>
|
|
1155
|
+
</div>
|
|
1156
|
+
),
|
|
1157
|
+
}
|
|
1158
|
+
|
|
1159
|
+
export const Playground: Story = {
|
|
1160
|
+
parameters: {
|
|
1161
|
+
...storyParameters,
|
|
1162
|
+
docs: {
|
|
1163
|
+
description: {
|
|
1164
|
+
story:
|
|
1165
|
+
"Interactive playground to experiment with different SearchIcon configurations.",
|
|
1166
|
+
},
|
|
1167
|
+
},
|
|
1168
|
+
},
|
|
1169
|
+
args: {
|
|
1170
|
+
width: 32,
|
|
1171
|
+
height: 32,
|
|
1172
|
+
className: "text-blue-400",
|
|
1173
|
+
},
|
|
1174
|
+
render: (args) => (
|
|
1175
|
+
<div className="flex h-64 min-h-dvh items-center justify-center rounded-lg bg-gradient-to-br from-gray-900 to-gray-800">
|
|
1176
|
+
<div className="rounded-lg border border-white/10 bg-white/5 p-8">
|
|
1177
|
+
<SearchIcon {...args} />
|
|
1178
|
+
</div>
|
|
1179
|
+
</div>
|
|
1180
|
+
),
|
|
1181
|
+
}
|