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,1244 @@
|
|
|
1
|
+
import React from "react"
|
|
2
|
+
import type { Meta, StoryObj } from "@storybook/react"
|
|
3
|
+
|
|
4
|
+
import { AudioBarIcon } from "."
|
|
5
|
+
|
|
6
|
+
const meta: Meta<typeof AudioBarIcon> = {
|
|
7
|
+
title: "Icons/AudioBarIcon",
|
|
8
|
+
component: AudioBarIcon,
|
|
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 ;
|
|
27
|
+
max-width: none ;
|
|
28
|
+
background: transparent ;
|
|
29
|
+
}
|
|
30
|
+
.sbdocs-content {
|
|
31
|
+
max-width: none ;
|
|
32
|
+
padding: 0 ;
|
|
33
|
+
margin: 0 ;
|
|
34
|
+
background: transparent ;
|
|
35
|
+
}
|
|
36
|
+
.docs-story {
|
|
37
|
+
background: transparent ;
|
|
38
|
+
}
|
|
39
|
+
.sbdocs {
|
|
40
|
+
background: transparent ;
|
|
41
|
+
}
|
|
42
|
+
body {
|
|
43
|
+
background: #0a0a0a ;
|
|
44
|
+
}
|
|
45
|
+
#storybook-docs {
|
|
46
|
+
background: #0a0a0a ;
|
|
47
|
+
}
|
|
48
|
+
.sbdocs-preview {
|
|
49
|
+
background: transparent ;
|
|
50
|
+
border: none ;
|
|
51
|
+
}
|
|
52
|
+
.sbdocs-h1, .sbdocs-h2, .sbdocs-h3, .sbdocs-h4, .sbdocs-h5, .sbdocs-h6 {
|
|
53
|
+
color: white ;
|
|
54
|
+
}
|
|
55
|
+
.sbdocs-p, .sbdocs-li {
|
|
56
|
+
color: rgba(255, 255, 255, 0.7) ;
|
|
57
|
+
}
|
|
58
|
+
.sbdocs-code {
|
|
59
|
+
background: rgba(255, 255, 255, 0.1) ;
|
|
60
|
+
color: rgba(168, 85, 247, 1) ;
|
|
61
|
+
border: 1px solid rgba(255, 255, 255, 0.1) ;
|
|
62
|
+
}
|
|
63
|
+
.sbdocs-pre {
|
|
64
|
+
background: rgba(0, 0, 0, 0.4) ;
|
|
65
|
+
border: 1px solid rgba(255, 255, 255, 0.1) ;
|
|
66
|
+
}
|
|
67
|
+
.sbdocs-table {
|
|
68
|
+
background: rgba(255, 255, 255, 0.05) ;
|
|
69
|
+
border: 1px solid rgba(255, 255, 255, 0.1) ;
|
|
70
|
+
}
|
|
71
|
+
.sbdocs-table th {
|
|
72
|
+
background: rgba(255, 255, 255, 0.05) ;
|
|
73
|
+
color: white ;
|
|
74
|
+
border-bottom: 1px solid rgba(255, 255, 255, 0.1) ;
|
|
75
|
+
}
|
|
76
|
+
.sbdocs-table td {
|
|
77
|
+
color: rgba(255, 255, 255, 0.7) ;
|
|
78
|
+
border-bottom: 1px solid rgba(255, 255, 255, 0.05) ;
|
|
79
|
+
}
|
|
80
|
+
`}
|
|
81
|
+
</style>
|
|
82
|
+
|
|
83
|
+
<div className="min-h-screen bg-gradient-to-br from-gray-900 via-purple-900/20 to-gray-900">
|
|
84
|
+
{/* Header */}
|
|
85
|
+
<div className="relative overflow-hidden border-b border-white/10 bg-black/20 backdrop-blur-xl">
|
|
86
|
+
<div className="absolute inset-0 bg-gradient-to-r from-purple-500/10 via-transparent to-blue-500/10" />
|
|
87
|
+
<div className="relative !mx-auto max-w-7xl px-6 py-16">
|
|
88
|
+
<div className="!space-y-6 text-center">
|
|
89
|
+
<div className="!mx-auto flex h-24 w-24 items-center justify-center rounded-2xl border border-violet-500/30 bg-gradient-to-br from-violet-500/20 to-purple-500/20">
|
|
90
|
+
<AudioBarIcon className="h-12 w-12 text-violet-400" />
|
|
91
|
+
</div>
|
|
92
|
+
<h1 className="text-5xl font-bold !text-white">
|
|
93
|
+
AudioBarIcon
|
|
94
|
+
</h1>
|
|
95
|
+
<p className="!mx-auto max-w-3xl text-xl leading-relaxed !text-white/70">
|
|
96
|
+
A dynamic audio visualizer icon representing sound waves and
|
|
97
|
+
audio activity. Perfect for music players, audio controls,
|
|
98
|
+
voice interfaces, and sound-related features.
|
|
99
|
+
</p>
|
|
100
|
+
|
|
101
|
+
{/* Stats */}
|
|
102
|
+
<div className="flex items-center justify-center gap-8 pt-8">
|
|
103
|
+
<div className="text-center">
|
|
104
|
+
<div className="text-3xl font-bold text-violet-300">
|
|
105
|
+
Audio
|
|
106
|
+
</div>
|
|
107
|
+
<div className="text-sm text-white/60">
|
|
108
|
+
Sound visualization
|
|
109
|
+
</div>
|
|
110
|
+
</div>
|
|
111
|
+
<div className="h-8 w-px bg-white/20" />
|
|
112
|
+
<div className="text-center">
|
|
113
|
+
<div className="text-3xl font-bold text-purple-300">
|
|
114
|
+
Dynamic
|
|
115
|
+
</div>
|
|
116
|
+
<div className="text-sm text-white/60">
|
|
117
|
+
Visual feedback
|
|
118
|
+
</div>
|
|
119
|
+
</div>
|
|
120
|
+
<div className="h-8 w-px bg-white/20" />
|
|
121
|
+
<div className="text-center">
|
|
122
|
+
<div className="text-3xl font-bold text-fuchsia-300">
|
|
123
|
+
Responsive
|
|
124
|
+
</div>
|
|
125
|
+
<div className="text-sm text-white/60">
|
|
126
|
+
Scalable design
|
|
127
|
+
</div>
|
|
128
|
+
</div>
|
|
129
|
+
</div>
|
|
130
|
+
</div>
|
|
131
|
+
</div>
|
|
132
|
+
</div>
|
|
133
|
+
|
|
134
|
+
{/* Content */}
|
|
135
|
+
<div className="!mx-auto max-w-7xl !space-y-16 px-6 py-12">
|
|
136
|
+
{/* Quick Usage */}
|
|
137
|
+
<div className="!space-y-8">
|
|
138
|
+
<h2 className="text-center text-3xl font-bold !text-white">
|
|
139
|
+
Quick Start
|
|
140
|
+
</h2>
|
|
141
|
+
<div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
|
|
142
|
+
<div className="!space-y-4">
|
|
143
|
+
<h3 className="text-xl font-semibold !text-violet-300">
|
|
144
|
+
Basic Usage
|
|
145
|
+
</h3>
|
|
146
|
+
<div className="rounded-lg bg-black/40 p-4">
|
|
147
|
+
<pre className="overflow-x-auto text-sm !text-green-300">
|
|
148
|
+
{`import { AudioBarIcon } from "@icons/audio-bar-icon"
|
|
149
|
+
|
|
150
|
+
function AudioPlayer() {
|
|
151
|
+
return (
|
|
152
|
+
<div className="flex items-center gap-2">
|
|
153
|
+
<AudioBarIcon className="h-6 w-6 text-violet-400" />
|
|
154
|
+
<span>Now Playing</span>
|
|
155
|
+
</div>
|
|
156
|
+
)
|
|
157
|
+
}`}
|
|
158
|
+
</pre>
|
|
159
|
+
</div>
|
|
160
|
+
</div>
|
|
161
|
+
|
|
162
|
+
<div className="!space-y-4">
|
|
163
|
+
<h3 className="text-xl font-semibold !text-violet-300">
|
|
164
|
+
Live Preview
|
|
165
|
+
</h3>
|
|
166
|
+
<div className="flex h-32 items-center justify-center rounded-lg border border-white/10 bg-white/5">
|
|
167
|
+
<div className="flex items-center gap-3 rounded-lg border border-violet-500/20 bg-violet-500/10 px-4 py-2">
|
|
168
|
+
<AudioBarIcon className="h-6 w-6 text-violet-400" />
|
|
169
|
+
<span className="!text-white">Now Playing</span>
|
|
170
|
+
</div>
|
|
171
|
+
</div>
|
|
172
|
+
</div>
|
|
173
|
+
</div>
|
|
174
|
+
</div>
|
|
175
|
+
|
|
176
|
+
{/* Props Documentation */}
|
|
177
|
+
<div className="!space-y-8">
|
|
178
|
+
<h2 className="text-center text-3xl font-bold !text-white">
|
|
179
|
+
Props & Configuration
|
|
180
|
+
</h2>
|
|
181
|
+
|
|
182
|
+
<div className="overflow-hidden rounded-lg border border-white/10 bg-white/5">
|
|
183
|
+
<div className="bg-white/5 p-4">
|
|
184
|
+
<h3 className="text-xl font-semibold !text-white">Props</h3>
|
|
185
|
+
</div>
|
|
186
|
+
<table className="!my-0 w-full">
|
|
187
|
+
<thead className="bg-white/5">
|
|
188
|
+
<tr className="border-b border-white/10">
|
|
189
|
+
<th className="px-6 py-4 text-left text-sm font-semibold !text-white">
|
|
190
|
+
Prop
|
|
191
|
+
</th>
|
|
192
|
+
<th className="px-6 py-4 text-left text-sm font-semibold !text-white">
|
|
193
|
+
Type
|
|
194
|
+
</th>
|
|
195
|
+
<th className="px-6 py-4 text-left text-sm font-semibold !text-white">
|
|
196
|
+
Default
|
|
197
|
+
</th>
|
|
198
|
+
<th className="px-6 py-4 text-left text-sm font-semibold !text-white">
|
|
199
|
+
Description
|
|
200
|
+
</th>
|
|
201
|
+
</tr>
|
|
202
|
+
</thead>
|
|
203
|
+
<tbody>
|
|
204
|
+
<tr className="border-b border-white/5">
|
|
205
|
+
<td className="px-6 py-4 font-mono text-sm !text-violet-300">
|
|
206
|
+
width
|
|
207
|
+
</td>
|
|
208
|
+
<td className="px-6 py-4 text-sm !text-white/70">
|
|
209
|
+
number | string
|
|
210
|
+
</td>
|
|
211
|
+
<td className="px-6 py-4 text-sm !text-white/50">52</td>
|
|
212
|
+
<td className="px-6 py-4 text-sm !text-white/70">
|
|
213
|
+
Width of the icon in pixels
|
|
214
|
+
</td>
|
|
215
|
+
</tr>
|
|
216
|
+
<tr className="border-b border-white/5 !bg-black/10">
|
|
217
|
+
<td className="px-6 py-4 font-mono text-sm !text-violet-300">
|
|
218
|
+
height
|
|
219
|
+
</td>
|
|
220
|
+
<td className="px-6 py-4 text-sm !text-white/70">
|
|
221
|
+
number | string
|
|
222
|
+
</td>
|
|
223
|
+
<td className="px-6 py-4 text-sm !text-white/50">12</td>
|
|
224
|
+
<td className="px-6 py-4 text-sm !text-white/70">
|
|
225
|
+
Height of the icon in pixels
|
|
226
|
+
</td>
|
|
227
|
+
</tr>
|
|
228
|
+
<tr className="border-b border-white/5">
|
|
229
|
+
<td className="px-6 py-4 font-mono text-sm !text-violet-300">
|
|
230
|
+
fill
|
|
231
|
+
</td>
|
|
232
|
+
<td className="px-6 py-4 text-sm !text-white/70">
|
|
233
|
+
string
|
|
234
|
+
</td>
|
|
235
|
+
<td className="px-6 py-4 text-sm !text-white/50">
|
|
236
|
+
currentColor
|
|
237
|
+
</td>
|
|
238
|
+
<td className="px-6 py-4 text-sm !text-white/70">
|
|
239
|
+
Fill color of the audio bars
|
|
240
|
+
</td>
|
|
241
|
+
</tr>
|
|
242
|
+
<tr className="border-b border-white/5 !bg-black/10">
|
|
243
|
+
<td className="px-6 py-4 font-mono text-sm !text-violet-300">
|
|
244
|
+
color
|
|
245
|
+
</td>
|
|
246
|
+
<td className="px-6 py-4 text-sm !text-white/70">
|
|
247
|
+
string
|
|
248
|
+
</td>
|
|
249
|
+
<td className="px-6 py-4 text-sm !text-white/50">
|
|
250
|
+
currentColor
|
|
251
|
+
</td>
|
|
252
|
+
<td className="px-6 py-4 text-sm !text-white/70">
|
|
253
|
+
Color of the icon (alternative to fill)
|
|
254
|
+
</td>
|
|
255
|
+
</tr>
|
|
256
|
+
<tr className="border-b border-white/5">
|
|
257
|
+
<td className="px-6 py-4 font-mono text-sm !text-violet-300">
|
|
258
|
+
className
|
|
259
|
+
</td>
|
|
260
|
+
<td className="px-6 py-4 text-sm !text-white/70">
|
|
261
|
+
string
|
|
262
|
+
</td>
|
|
263
|
+
<td className="px-6 py-4 text-sm !text-white/50">-</td>
|
|
264
|
+
<td className="px-6 py-4 text-sm !text-white/70">
|
|
265
|
+
CSS classes for styling
|
|
266
|
+
</td>
|
|
267
|
+
</tr>
|
|
268
|
+
<tr className="!bg-black/10">
|
|
269
|
+
<td className="px-6 py-4 font-mono text-sm !text-violet-300">
|
|
270
|
+
...svgProps
|
|
271
|
+
</td>
|
|
272
|
+
<td className="px-6 py-4 text-sm !text-white/70">
|
|
273
|
+
SVGProps
|
|
274
|
+
</td>
|
|
275
|
+
<td className="px-6 py-4 text-sm !text-white/50">-</td>
|
|
276
|
+
<td className="px-6 py-4 text-sm !text-white/70">
|
|
277
|
+
All standard SVG element props
|
|
278
|
+
</td>
|
|
279
|
+
</tr>
|
|
280
|
+
</tbody>
|
|
281
|
+
</table>
|
|
282
|
+
</div>
|
|
283
|
+
</div>
|
|
284
|
+
|
|
285
|
+
{/* Size Variations */}
|
|
286
|
+
<div className="!space-y-8">
|
|
287
|
+
<h2 className="text-center text-3xl font-bold !text-white">
|
|
288
|
+
Size Variations
|
|
289
|
+
</h2>
|
|
290
|
+
<div className="rounded-lg border border-white/10 bg-white/5 p-8">
|
|
291
|
+
<div className="!space-y-6">
|
|
292
|
+
<div className="grid grid-cols-1 gap-8 md:grid-cols-2">
|
|
293
|
+
<div className="!space-y-4">
|
|
294
|
+
<h3 className="text-lg font-semibold !text-violet-300">
|
|
295
|
+
Standard Sizes
|
|
296
|
+
</h3>
|
|
297
|
+
<div className="flex items-end gap-6 rounded-lg bg-black/20 p-6">
|
|
298
|
+
<div className="text-center">
|
|
299
|
+
<AudioBarIcon className="!mx-auto mb-2 h-3 w-3 text-violet-400" />
|
|
300
|
+
<span className="text-xs text-white/60">12px</span>
|
|
301
|
+
</div>
|
|
302
|
+
<div className="text-center">
|
|
303
|
+
<AudioBarIcon className="!mx-auto mb-2 h-4 w-4 text-violet-400" />
|
|
304
|
+
<span className="text-xs text-white/60">16px</span>
|
|
305
|
+
</div>
|
|
306
|
+
<div className="text-center">
|
|
307
|
+
<AudioBarIcon className="!mx-auto mb-2 h-5 w-5 text-violet-400" />
|
|
308
|
+
<span className="text-xs text-white/60">20px</span>
|
|
309
|
+
</div>
|
|
310
|
+
<div className="text-center">
|
|
311
|
+
<AudioBarIcon className="!mx-auto mb-2 h-6 w-6 text-violet-400" />
|
|
312
|
+
<span className="text-xs text-white/60">24px</span>
|
|
313
|
+
</div>
|
|
314
|
+
<div className="text-center">
|
|
315
|
+
<AudioBarIcon className="!mx-auto mb-2 h-8 w-8 text-violet-400" />
|
|
316
|
+
<span className="text-xs text-white/60">32px</span>
|
|
317
|
+
</div>
|
|
318
|
+
<div className="text-center">
|
|
319
|
+
<AudioBarIcon className="!mx-auto mb-2 h-12 w-12 text-violet-400" />
|
|
320
|
+
<span className="text-xs text-white/60">48px</span>
|
|
321
|
+
</div>
|
|
322
|
+
</div>
|
|
323
|
+
</div>
|
|
324
|
+
|
|
325
|
+
<div className="!space-y-4">
|
|
326
|
+
<h3 className="text-lg font-semibold !text-violet-300">
|
|
327
|
+
Code Example
|
|
328
|
+
</h3>
|
|
329
|
+
<div className="rounded-lg bg-black/40 p-4">
|
|
330
|
+
<pre className="overflow-x-auto text-sm !text-green-300">
|
|
331
|
+
{`// Small (16px)
|
|
332
|
+
<AudioBarIcon className="h-4 w-4" />
|
|
333
|
+
|
|
334
|
+
// Medium (24px)
|
|
335
|
+
<AudioBarIcon className="h-6 w-6" />
|
|
336
|
+
|
|
337
|
+
// Large (32px)
|
|
338
|
+
<AudioBarIcon className="h-8 w-8" />
|
|
339
|
+
|
|
340
|
+
// Custom size (maintains aspect ratio)
|
|
341
|
+
<AudioBarIcon width={60} height={14} />`}
|
|
342
|
+
</pre>
|
|
343
|
+
</div>
|
|
344
|
+
</div>
|
|
345
|
+
</div>
|
|
346
|
+
</div>
|
|
347
|
+
</div>
|
|
348
|
+
</div>
|
|
349
|
+
|
|
350
|
+
{/* Color Variations */}
|
|
351
|
+
<div className="!space-y-8">
|
|
352
|
+
<h2 className="text-center text-3xl font-bold !text-white">
|
|
353
|
+
Color Variations
|
|
354
|
+
</h2>
|
|
355
|
+
<div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
|
|
356
|
+
<div className="!space-y-4">
|
|
357
|
+
<h3 className="text-lg font-semibold !text-violet-300">
|
|
358
|
+
Audio State Colors
|
|
359
|
+
</h3>
|
|
360
|
+
<div className="!space-y-4 rounded-lg border border-white/10 bg-white/5 p-6">
|
|
361
|
+
<div className="flex items-center gap-4">
|
|
362
|
+
<AudioBarIcon className="h-6 w-6 text-violet-400" />
|
|
363
|
+
<div>
|
|
364
|
+
<div className="text-sm font-medium text-white">
|
|
365
|
+
Active Audio
|
|
366
|
+
</div>
|
|
367
|
+
<div className="text-xs text-white/60">
|
|
368
|
+
text-violet-400
|
|
369
|
+
</div>
|
|
370
|
+
</div>
|
|
371
|
+
</div>
|
|
372
|
+
<div className="flex items-center gap-4">
|
|
373
|
+
<AudioBarIcon className="h-6 w-6 text-green-400" />
|
|
374
|
+
<div>
|
|
375
|
+
<div className="text-sm font-medium text-white">
|
|
376
|
+
Recording
|
|
377
|
+
</div>
|
|
378
|
+
<div className="text-xs text-white/60">
|
|
379
|
+
text-green-400
|
|
380
|
+
</div>
|
|
381
|
+
</div>
|
|
382
|
+
</div>
|
|
383
|
+
<div className="flex items-center gap-4">
|
|
384
|
+
<AudioBarIcon className="h-6 w-6 text-red-400" />
|
|
385
|
+
<div>
|
|
386
|
+
<div className="text-sm font-medium text-white">
|
|
387
|
+
Live/Streaming
|
|
388
|
+
</div>
|
|
389
|
+
<div className="text-xs text-white/60">
|
|
390
|
+
text-red-400
|
|
391
|
+
</div>
|
|
392
|
+
</div>
|
|
393
|
+
</div>
|
|
394
|
+
<div className="flex items-center gap-4">
|
|
395
|
+
<AudioBarIcon className="h-6 w-6 text-blue-400" />
|
|
396
|
+
<div>
|
|
397
|
+
<div className="text-sm font-medium text-white">
|
|
398
|
+
Analyzing
|
|
399
|
+
</div>
|
|
400
|
+
<div className="text-xs text-white/60">
|
|
401
|
+
text-blue-400
|
|
402
|
+
</div>
|
|
403
|
+
</div>
|
|
404
|
+
</div>
|
|
405
|
+
<div className="flex items-center gap-4">
|
|
406
|
+
<AudioBarIcon className="h-6 w-6 text-gray-400" />
|
|
407
|
+
<div>
|
|
408
|
+
<div className="text-sm font-medium text-white">
|
|
409
|
+
Inactive
|
|
410
|
+
</div>
|
|
411
|
+
<div className="text-xs text-white/60">
|
|
412
|
+
text-gray-400
|
|
413
|
+
</div>
|
|
414
|
+
</div>
|
|
415
|
+
</div>
|
|
416
|
+
</div>
|
|
417
|
+
</div>
|
|
418
|
+
|
|
419
|
+
<div className="!space-y-4">
|
|
420
|
+
<h3 className="text-lg font-semibold !text-violet-300">
|
|
421
|
+
Custom Colors
|
|
422
|
+
</h3>
|
|
423
|
+
<div className="rounded-lg bg-black/40 p-4">
|
|
424
|
+
<pre className="overflow-x-auto text-sm !text-green-300">
|
|
425
|
+
{`// Using Tailwind classes
|
|
426
|
+
<AudioBarIcon className="h-6 w-6 text-violet-400" />
|
|
427
|
+
<AudioBarIcon className="h-6 w-6 text-green-500" />
|
|
428
|
+
|
|
429
|
+
// Using CSS custom properties
|
|
430
|
+
<AudioBarIcon
|
|
431
|
+
className="h-6 w-6"
|
|
432
|
+
style={{ color: 'var(--color-audio)' }}
|
|
433
|
+
/>
|
|
434
|
+
|
|
435
|
+
// Direct fill prop
|
|
436
|
+
<AudioBarIcon
|
|
437
|
+
width={32}
|
|
438
|
+
height={32}
|
|
439
|
+
fill="#8b5cf6"
|
|
440
|
+
/>
|
|
441
|
+
|
|
442
|
+
// Gradient effect (with CSS)
|
|
443
|
+
<AudioBarIcon className="h-6 w-6 text-gradient" />`}
|
|
444
|
+
</pre>
|
|
445
|
+
</div>
|
|
446
|
+
</div>
|
|
447
|
+
</div>
|
|
448
|
+
</div>
|
|
449
|
+
|
|
450
|
+
{/* Animation Examples */}
|
|
451
|
+
<div className="!space-y-8">
|
|
452
|
+
<h2 className="text-center text-3xl font-bold !text-white">
|
|
453
|
+
Animation & Effects
|
|
454
|
+
</h2>
|
|
455
|
+
<div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
|
|
456
|
+
<div className="!space-y-4">
|
|
457
|
+
<h3 className="text-lg font-semibold !text-violet-300">
|
|
458
|
+
Animated States
|
|
459
|
+
</h3>
|
|
460
|
+
<div className="!space-y-4 rounded-lg border border-white/10 bg-white/5 p-6">
|
|
461
|
+
<div className="grid grid-cols-2 gap-4">
|
|
462
|
+
<div className="flex flex-col items-center gap-2">
|
|
463
|
+
<AudioBarIcon className="h-8 w-8 animate-pulse text-violet-400" />
|
|
464
|
+
<span className="text-xs !text-white/60">
|
|
465
|
+
Pulsing
|
|
466
|
+
</span>
|
|
467
|
+
</div>
|
|
468
|
+
<div className="flex flex-col items-center gap-2">
|
|
469
|
+
<AudioBarIcon className="h-8 w-8 animate-bounce text-green-400" />
|
|
470
|
+
<span className="text-xs !text-white/60">
|
|
471
|
+
Bouncing
|
|
472
|
+
</span>
|
|
473
|
+
</div>
|
|
474
|
+
<div className="flex flex-col items-center gap-2">
|
|
475
|
+
<AudioBarIcon className="h-8 w-8 animate-spin text-blue-400" />
|
|
476
|
+
<span className="text-xs !text-white/60">
|
|
477
|
+
Processing
|
|
478
|
+
</span>
|
|
479
|
+
</div>
|
|
480
|
+
<div className="flex flex-col items-center gap-2">
|
|
481
|
+
<AudioBarIcon className="h-8 w-8 text-red-400 transition-all hover:scale-110" />
|
|
482
|
+
<span className="text-xs !text-white/60">
|
|
483
|
+
Hover Scale
|
|
484
|
+
</span>
|
|
485
|
+
</div>
|
|
486
|
+
</div>
|
|
487
|
+
</div>
|
|
488
|
+
</div>
|
|
489
|
+
|
|
490
|
+
<div className="!space-y-4">
|
|
491
|
+
<h3 className="text-lg font-semibold !text-violet-300">
|
|
492
|
+
Animation Code
|
|
493
|
+
</h3>
|
|
494
|
+
<div className="rounded-lg bg-black/40 p-4">
|
|
495
|
+
<pre className="overflow-x-auto text-sm !text-green-300">
|
|
496
|
+
{`// Pulse animation for active audio
|
|
497
|
+
<AudioBarIcon className="h-6 w-6 animate-pulse text-violet-400" />
|
|
498
|
+
|
|
499
|
+
// Bounce for recording
|
|
500
|
+
<AudioBarIcon className="h-6 w-6 animate-bounce text-green-400" />
|
|
501
|
+
|
|
502
|
+
// Spin for processing
|
|
503
|
+
<AudioBarIcon className="h-6 w-6 animate-spin text-blue-400" />
|
|
504
|
+
|
|
505
|
+
// Custom keyframe animation
|
|
506
|
+
<AudioBarIcon className="h-6 w-6 animate-audio-wave text-violet-400" />
|
|
507
|
+
|
|
508
|
+
// Hover effects
|
|
509
|
+
<AudioBarIcon className="h-6 w-6 transition-all hover:scale-110 hover:text-violet-300" />`}
|
|
510
|
+
</pre>
|
|
511
|
+
</div>
|
|
512
|
+
</div>
|
|
513
|
+
</div>
|
|
514
|
+
</div>
|
|
515
|
+
|
|
516
|
+
{/* Usage Examples */}
|
|
517
|
+
<div className="!space-y-8">
|
|
518
|
+
<h2 className="text-center text-3xl font-bold !text-white">
|
|
519
|
+
Usage Examples
|
|
520
|
+
</h2>
|
|
521
|
+
|
|
522
|
+
<div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
|
|
523
|
+
{/* Audio Player */}
|
|
524
|
+
<div className="!space-y-4">
|
|
525
|
+
<h3 className="text-lg font-semibold !text-violet-300">
|
|
526
|
+
Music Player
|
|
527
|
+
</h3>
|
|
528
|
+
<div className="!space-y-4">
|
|
529
|
+
<div className="rounded-lg border border-white/10 bg-white/5 p-4">
|
|
530
|
+
<div className="flex items-center gap-4">
|
|
531
|
+
<div className="flex h-12 w-12 items-center justify-center rounded-lg bg-violet-500/20">
|
|
532
|
+
<AudioBarIcon className="h-6 w-6 animate-pulse text-violet-400" />
|
|
533
|
+
</div>
|
|
534
|
+
<div className="flex-1">
|
|
535
|
+
<h4 className="font-medium !text-white">
|
|
536
|
+
Bohemian Rhapsody
|
|
537
|
+
</h4>
|
|
538
|
+
<p className="text-sm !text-white/60">Queen</p>
|
|
539
|
+
</div>
|
|
540
|
+
<div className="text-sm !text-white/60">3:42</div>
|
|
541
|
+
</div>
|
|
542
|
+
</div>
|
|
543
|
+
<div className="rounded-lg bg-black/40 p-4">
|
|
544
|
+
<pre className="overflow-x-auto text-sm !text-green-300">
|
|
545
|
+
{`<div className="flex items-center gap-4 p-4 bg-white/5 border border-white/10 rounded-lg">
|
|
546
|
+
<div className="flex items-center justify-center w-12 h-12 bg-violet-500/20 rounded-lg">
|
|
547
|
+
<AudioBarIcon className="w-6 h-6 text-violet-400 animate-pulse" />
|
|
548
|
+
</div>
|
|
549
|
+
<div className="flex-1">
|
|
550
|
+
<h4 className="font-medium text-white">Bohemian Rhapsody</h4>
|
|
551
|
+
<p className="text-sm text-white/60">Queen</p>
|
|
552
|
+
</div>
|
|
553
|
+
<div className="text-sm text-white/60">3:42</div>
|
|
554
|
+
</div>`}
|
|
555
|
+
</pre>
|
|
556
|
+
</div>
|
|
557
|
+
</div>
|
|
558
|
+
</div>
|
|
559
|
+
|
|
560
|
+
{/* Voice Recording */}
|
|
561
|
+
<div className="!space-y-4">
|
|
562
|
+
<h3 className="text-lg font-semibold !text-violet-300">
|
|
563
|
+
Voice Recording
|
|
564
|
+
</h3>
|
|
565
|
+
<div className="!space-y-4">
|
|
566
|
+
<div className="rounded-lg border border-red-500/20 bg-red-500/10 p-4">
|
|
567
|
+
<div className="flex items-center justify-between">
|
|
568
|
+
<div className="flex items-center gap-3">
|
|
569
|
+
<AudioBarIcon className="h-5 w-5 animate-bounce text-red-400" />
|
|
570
|
+
<span className="!text-red-200">Recording...</span>
|
|
571
|
+
</div>
|
|
572
|
+
<div className="text-sm !text-red-300">00:42</div>
|
|
573
|
+
</div>
|
|
574
|
+
<div className="mt-3 h-2 rounded-full bg-red-500/20">
|
|
575
|
+
<div className="h-full w-1/3 rounded-full bg-red-400"></div>
|
|
576
|
+
</div>
|
|
577
|
+
</div>
|
|
578
|
+
<div className="rounded-lg bg-black/40 p-4">
|
|
579
|
+
<pre className="overflow-x-auto text-sm !text-green-300">
|
|
580
|
+
{`<div className="p-4 bg-red-500/10 border border-red-500/20 rounded-lg">
|
|
581
|
+
<div className="flex items-center justify-between">
|
|
582
|
+
<div className="flex items-center gap-3">
|
|
583
|
+
<AudioBarIcon className="w-5 h-5 text-red-400 animate-bounce" />
|
|
584
|
+
<span className="text-red-200">Recording...</span>
|
|
585
|
+
</div>
|
|
586
|
+
<div className="text-sm text-red-300">00:42</div>
|
|
587
|
+
</div>
|
|
588
|
+
<div className="mt-3 h-2 bg-red-500/20 rounded-full">
|
|
589
|
+
<div className="w-1/3 h-full bg-red-400 rounded-full"></div>
|
|
590
|
+
</div>
|
|
591
|
+
</div>`}
|
|
592
|
+
</pre>
|
|
593
|
+
</div>
|
|
594
|
+
</div>
|
|
595
|
+
</div>
|
|
596
|
+
|
|
597
|
+
{/* Audio Controls */}
|
|
598
|
+
<div className="!space-y-4">
|
|
599
|
+
<h3 className="text-lg font-semibold !text-violet-300">
|
|
600
|
+
Audio Controls
|
|
601
|
+
</h3>
|
|
602
|
+
<div className="!space-y-4">
|
|
603
|
+
<div className="flex items-center gap-4 rounded-lg border border-white/10 bg-white/5 p-4">
|
|
604
|
+
<button className="flex items-center gap-2 rounded-lg border border-violet-500/30 bg-violet-500/20 px-3 py-2 text-violet-200 transition-colors hover:bg-violet-500/30">
|
|
605
|
+
<AudioBarIcon className="h-4 w-4" />
|
|
606
|
+
Equalizer
|
|
607
|
+
</button>
|
|
608
|
+
<button className="flex items-center gap-2 rounded-lg border border-green-500/30 bg-green-500/20 px-3 py-2 text-green-200 transition-colors hover:bg-green-500/30">
|
|
609
|
+
<AudioBarIcon className="h-4 w-4" />
|
|
610
|
+
Visualizer
|
|
611
|
+
</button>
|
|
612
|
+
<button className="flex items-center gap-2 rounded-lg border border-blue-500/30 bg-blue-500/20 px-3 py-2 text-blue-200 transition-colors hover:bg-blue-500/30">
|
|
613
|
+
<AudioBarIcon className="h-4 w-4" />
|
|
614
|
+
Spectrum
|
|
615
|
+
</button>
|
|
616
|
+
</div>
|
|
617
|
+
<div className="rounded-lg bg-black/40 p-4">
|
|
618
|
+
<pre className="overflow-x-auto text-sm !text-green-300">
|
|
619
|
+
{`<div className="flex items-center gap-4">
|
|
620
|
+
<button className="flex items-center gap-2 px-3 py-2 bg-violet-500/20 border border-violet-500/30 rounded-lg">
|
|
621
|
+
<AudioBarIcon className="w-4 h-4" />
|
|
622
|
+
Equalizer
|
|
623
|
+
</button>
|
|
624
|
+
<button className="flex items-center gap-2 px-3 py-2 bg-green-500/20 border border-green-500/30 rounded-lg">
|
|
625
|
+
<AudioBarIcon className="w-4 h-4" />
|
|
626
|
+
Visualizer
|
|
627
|
+
</button>
|
|
628
|
+
</div>`}
|
|
629
|
+
</pre>
|
|
630
|
+
</div>
|
|
631
|
+
</div>
|
|
632
|
+
</div>
|
|
633
|
+
|
|
634
|
+
{/* Audio Status */}
|
|
635
|
+
<div className="!space-y-4">
|
|
636
|
+
<h3 className="text-lg font-semibold !text-violet-300">
|
|
637
|
+
Audio Status Indicator
|
|
638
|
+
</h3>
|
|
639
|
+
<div className="!space-y-4">
|
|
640
|
+
<div className="!space-y-3">
|
|
641
|
+
<div className="flex items-center justify-between rounded-lg border border-white/10 bg-white/5 p-3">
|
|
642
|
+
<span className="text-sm !text-white">
|
|
643
|
+
Microphone
|
|
644
|
+
</span>
|
|
645
|
+
<div className="flex items-center gap-2">
|
|
646
|
+
<AudioBarIcon className="h-4 w-4 text-green-400" />
|
|
647
|
+
<span className="text-xs !text-green-400">
|
|
648
|
+
Active
|
|
649
|
+
</span>
|
|
650
|
+
</div>
|
|
651
|
+
</div>
|
|
652
|
+
<div className="flex items-center justify-between rounded-lg border border-white/10 bg-white/5 p-3">
|
|
653
|
+
<span className="text-sm !text-white">Speakers</span>
|
|
654
|
+
<div className="flex items-center gap-2">
|
|
655
|
+
<AudioBarIcon className="h-4 w-4 animate-pulse text-violet-400" />
|
|
656
|
+
<span className="text-xs !text-violet-400">
|
|
657
|
+
Playing
|
|
658
|
+
</span>
|
|
659
|
+
</div>
|
|
660
|
+
</div>
|
|
661
|
+
<div className="flex items-center justify-between rounded-lg border border-white/10 bg-white/5 p-3">
|
|
662
|
+
<span className="text-sm !text-white">Recording</span>
|
|
663
|
+
<div className="flex items-center gap-2">
|
|
664
|
+
<AudioBarIcon className="h-4 w-4 text-gray-400" />
|
|
665
|
+
<span className="text-xs !text-gray-400">
|
|
666
|
+
Disabled
|
|
667
|
+
</span>
|
|
668
|
+
</div>
|
|
669
|
+
</div>
|
|
670
|
+
</div>
|
|
671
|
+
<div className="rounded-lg bg-black/40 p-4">
|
|
672
|
+
<pre className="overflow-x-auto text-sm !text-green-300">
|
|
673
|
+
{`// Active microphone
|
|
674
|
+
<div className="flex items-center gap-2">
|
|
675
|
+
<AudioBarIcon className="w-4 h-4 text-green-400" />
|
|
676
|
+
<span className="text-xs text-green-400">Active</span>
|
|
677
|
+
</div>
|
|
678
|
+
|
|
679
|
+
// Playing audio
|
|
680
|
+
<div className="flex items-center gap-2">
|
|
681
|
+
<AudioBarIcon className="w-4 h-4 text-violet-400 animate-pulse" />
|
|
682
|
+
<span className="text-xs text-violet-400">Playing</span>
|
|
683
|
+
</div>
|
|
684
|
+
|
|
685
|
+
// Disabled state
|
|
686
|
+
<div className="flex items-center gap-2">
|
|
687
|
+
<AudioBarIcon className="w-4 h-4 text-gray-400" />
|
|
688
|
+
<span className="text-xs text-gray-400">Disabled</span>
|
|
689
|
+
</div>`}
|
|
690
|
+
</pre>
|
|
691
|
+
</div>
|
|
692
|
+
</div>
|
|
693
|
+
</div>
|
|
694
|
+
|
|
695
|
+
{/* Audio Dashboard */}
|
|
696
|
+
<div className="!space-y-4">
|
|
697
|
+
<h3 className="text-lg font-semibold !text-violet-300">
|
|
698
|
+
Audio Dashboard
|
|
699
|
+
</h3>
|
|
700
|
+
<div className="!space-y-4">
|
|
701
|
+
<div className="grid grid-cols-2 gap-4">
|
|
702
|
+
<div className="rounded-lg border border-white/10 bg-white/5 p-4 text-center">
|
|
703
|
+
<AudioBarIcon className="!mx-auto mb-2 h-8 w-8 text-violet-400" />
|
|
704
|
+
<div className="text-sm font-medium !text-white">
|
|
705
|
+
Audio Quality
|
|
706
|
+
</div>
|
|
707
|
+
<div className="text-xs !text-white/60">HD Audio</div>
|
|
708
|
+
</div>
|
|
709
|
+
<div className="rounded-lg border border-white/10 bg-white/5 p-4 text-center">
|
|
710
|
+
<AudioBarIcon className="!mx-auto mb-2 h-8 w-8 animate-pulse text-green-400" />
|
|
711
|
+
<div className="text-sm font-medium !text-white">
|
|
712
|
+
Live Stream
|
|
713
|
+
</div>
|
|
714
|
+
<div className="text-xs !text-white/60">
|
|
715
|
+
Broadcasting
|
|
716
|
+
</div>
|
|
717
|
+
</div>
|
|
718
|
+
</div>
|
|
719
|
+
<div className="rounded-lg bg-black/40 p-4">
|
|
720
|
+
<pre className="overflow-x-auto text-sm !text-green-300">
|
|
721
|
+
{`<div className="grid grid-cols-2 gap-4">
|
|
722
|
+
<div className="p-4 bg-white/5 border border-white/10 rounded-lg text-center">
|
|
723
|
+
<AudioBarIcon className="w-8 h-8 mx-auto mb-2 text-violet-400" />
|
|
724
|
+
<div className="text-sm font-medium text-white">Audio Quality</div>
|
|
725
|
+
<div className="text-xs text-white/60">HD Audio</div>
|
|
726
|
+
</div>
|
|
727
|
+
<div className="p-4 bg-white/5 border border-white/10 rounded-lg text-center">
|
|
728
|
+
<AudioBarIcon className="w-8 h-8 mx-auto mb-2 text-green-400 animate-pulse" />
|
|
729
|
+
<div className="text-sm font-medium text-white">Live Stream</div>
|
|
730
|
+
<div className="text-xs text-white/60">Broadcasting</div>
|
|
731
|
+
</div>
|
|
732
|
+
</div>`}
|
|
733
|
+
</pre>
|
|
734
|
+
</div>
|
|
735
|
+
</div>
|
|
736
|
+
</div>
|
|
737
|
+
|
|
738
|
+
{/* Navigation Tab */}
|
|
739
|
+
<div className="!space-y-4">
|
|
740
|
+
<h3 className="text-lg font-semibold !text-violet-300">
|
|
741
|
+
Navigation Tab
|
|
742
|
+
</h3>
|
|
743
|
+
<div className="!space-y-4">
|
|
744
|
+
<div className="flex rounded-lg border border-white/10 bg-white/5 p-1">
|
|
745
|
+
<button className="flex flex-1 items-center justify-center gap-2 rounded-md bg-violet-500/20 px-3 py-2 text-violet-200">
|
|
746
|
+
<AudioBarIcon className="h-4 w-4" />
|
|
747
|
+
<span className="text-sm">Audio</span>
|
|
748
|
+
</button>
|
|
749
|
+
<button className="flex flex-1 items-center justify-center gap-2 rounded-md px-3 py-2 text-white/60 transition-colors hover:bg-white/10">
|
|
750
|
+
<span className="text-sm">Video</span>
|
|
751
|
+
</button>
|
|
752
|
+
<button className="flex flex-1 items-center justify-center gap-2 rounded-md px-3 py-2 text-white/60 transition-colors hover:bg-white/10">
|
|
753
|
+
<span className="text-sm">Settings</span>
|
|
754
|
+
</button>
|
|
755
|
+
</div>
|
|
756
|
+
<div className="rounded-lg bg-black/40 p-4">
|
|
757
|
+
<pre className="overflow-x-auto text-sm !text-green-300">
|
|
758
|
+
{`<div className="flex p-1 bg-white/5 border border-white/10 rounded-lg">
|
|
759
|
+
<button className="flex items-center justify-center flex-1 gap-2 px-3 py-2 bg-violet-500/20 rounded-md text-violet-200">
|
|
760
|
+
<AudioBarIcon className="w-4 h-4" />
|
|
761
|
+
<span className="text-sm">Audio</span>
|
|
762
|
+
</button>
|
|
763
|
+
<button className="flex items-center justify-center flex-1 gap-2 px-3 py-2 text-white/60 rounded-md hover:bg-white/10">
|
|
764
|
+
<span className="text-sm">Video</span>
|
|
765
|
+
</button>
|
|
766
|
+
</div>`}
|
|
767
|
+
</pre>
|
|
768
|
+
</div>
|
|
769
|
+
</div>
|
|
770
|
+
</div>
|
|
771
|
+
</div>
|
|
772
|
+
</div>
|
|
773
|
+
|
|
774
|
+
{/* Accessibility */}
|
|
775
|
+
<div className="!space-y-8">
|
|
776
|
+
<h2 className="text-center text-3xl font-bold !text-white">
|
|
777
|
+
Accessibility Features
|
|
778
|
+
</h2>
|
|
779
|
+
<div className="grid grid-cols-1 gap-8 md:grid-cols-2">
|
|
780
|
+
<div className="!space-y-4 rounded-lg border border-white/10 bg-white/5 p-6">
|
|
781
|
+
<h3 className="text-lg font-semibold !text-green-300">
|
|
782
|
+
✅ Built-in Features
|
|
783
|
+
</h3>
|
|
784
|
+
<ul className="!space-y-2 text-sm !text-white/70">
|
|
785
|
+
<li className="!text-white/70">
|
|
786
|
+
Uses Radix UI AccessibleIcon wrapper
|
|
787
|
+
</li>
|
|
788
|
+
<li className="!text-white/70">
|
|
789
|
+
Provides screen reader label "Audio Bar icon"
|
|
790
|
+
</li>
|
|
791
|
+
<li className="!text-white/70">
|
|
792
|
+
Supports keyboard navigation when interactive
|
|
793
|
+
</li>
|
|
794
|
+
<li className="!text-white/70">
|
|
795
|
+
Maintains proper color contrast ratios
|
|
796
|
+
</li>
|
|
797
|
+
<li className="!text-white/70">
|
|
798
|
+
Respects user's motion preferences for animations
|
|
799
|
+
</li>
|
|
800
|
+
</ul>
|
|
801
|
+
</div>
|
|
802
|
+
|
|
803
|
+
<div className="!space-y-4 rounded-lg border border-white/10 bg-white/5 p-6">
|
|
804
|
+
<h3 className="text-lg font-semibold !text-violet-300">
|
|
805
|
+
💡 Best Practices
|
|
806
|
+
</h3>
|
|
807
|
+
<ul className="!space-y-2 text-sm text-white/70">
|
|
808
|
+
<li className="!text-white/70">
|
|
809
|
+
Always provide audio context with descriptive text
|
|
810
|
+
</li>
|
|
811
|
+
<li className="!text-white/70">
|
|
812
|
+
Use consistent colors for different audio states
|
|
813
|
+
</li>
|
|
814
|
+
<li className="!text-white/70">
|
|
815
|
+
Provide alternative text indicators for audio states
|
|
816
|
+
</li>
|
|
817
|
+
<li className="!text-white/70">
|
|
818
|
+
Consider users with hearing impairments
|
|
819
|
+
</li>
|
|
820
|
+
<li className="!text-white/70">
|
|
821
|
+
Test with reduced motion preferences
|
|
822
|
+
</li>
|
|
823
|
+
</ul>
|
|
824
|
+
</div>
|
|
825
|
+
</div>
|
|
826
|
+
|
|
827
|
+
<div className="rounded-lg border border-white/10 bg-white/5 p-6">
|
|
828
|
+
<h3 className="mb-4 text-lg font-semibold !text-purple-300">
|
|
829
|
+
Accessible Audio Implementation
|
|
830
|
+
</h3>
|
|
831
|
+
<div className="grid grid-cols-1 gap-6 lg:grid-cols-2">
|
|
832
|
+
<div className="rounded-lg bg-black/40 p-4">
|
|
833
|
+
<pre className="overflow-x-auto text-sm !text-blue-300">
|
|
834
|
+
{`// Custom implementation with audio context
|
|
835
|
+
import { AccessibleIcon } from "@radix-ui/react-accessible-icon"
|
|
836
|
+
|
|
837
|
+
function AccessibleAudioIcon({
|
|
838
|
+
audioState = "inactive",
|
|
839
|
+
level = 0,
|
|
840
|
+
...props
|
|
841
|
+
}) {
|
|
842
|
+
const getLabel = () => {
|
|
843
|
+
switch(audioState) {
|
|
844
|
+
case 'recording': return \`Recording audio, level \${level}%\`
|
|
845
|
+
case 'playing': return \`Playing audio, level \${level}%\`
|
|
846
|
+
case 'analyzing': return 'Analyzing audio input'
|
|
847
|
+
default: return 'Audio visualizer'
|
|
848
|
+
}
|
|
849
|
+
}
|
|
850
|
+
|
|
851
|
+
return (
|
|
852
|
+
<AccessibleIcon label={getLabel()}>
|
|
853
|
+
<AudioBarIcon {...props} />
|
|
854
|
+
</AccessibleIcon>
|
|
855
|
+
)
|
|
856
|
+
}`}
|
|
857
|
+
</pre>
|
|
858
|
+
</div>
|
|
859
|
+
<div className="!space-y-4">
|
|
860
|
+
<p className="text-sm !text-white/70">
|
|
861
|
+
This implementation provides dynamic accessibility
|
|
862
|
+
labels based on audio state and level, giving screen
|
|
863
|
+
readers meaningful context.
|
|
864
|
+
</p>
|
|
865
|
+
<div className="rounded-lg border border-violet-500/20 bg-violet-500/10 p-4">
|
|
866
|
+
<div className="flex items-center gap-2 text-sm !text-violet-200">
|
|
867
|
+
<AudioBarIcon className="h-4 w-4" />
|
|
868
|
+
<span>
|
|
869
|
+
Dynamic labels help users understand audio activity
|
|
870
|
+
</span>
|
|
871
|
+
</div>
|
|
872
|
+
</div>
|
|
873
|
+
</div>
|
|
874
|
+
</div>
|
|
875
|
+
</div>
|
|
876
|
+
</div>
|
|
877
|
+
|
|
878
|
+
{/* Related Icons */}
|
|
879
|
+
<div className="!space-y-8">
|
|
880
|
+
<h2 className="text-center text-3xl font-bold !text-white">
|
|
881
|
+
Related Icons
|
|
882
|
+
</h2>
|
|
883
|
+
<div className="grid grid-cols-2 gap-6 md:grid-cols-4">
|
|
884
|
+
<div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
|
|
885
|
+
<div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-green-500/20">
|
|
886
|
+
<span className="text-2xl">🎵</span>
|
|
887
|
+
</div>
|
|
888
|
+
<div>
|
|
889
|
+
<div className="font-medium text-white">MusicIcon</div>
|
|
890
|
+
<div className="text-xs text-white/60">
|
|
891
|
+
Music & melody
|
|
892
|
+
</div>
|
|
893
|
+
</div>
|
|
894
|
+
</div>
|
|
895
|
+
<div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
|
|
896
|
+
<div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-blue-500/20">
|
|
897
|
+
<span className="text-2xl">🎤</span>
|
|
898
|
+
</div>
|
|
899
|
+
<div>
|
|
900
|
+
<div className="font-medium text-white">
|
|
901
|
+
MicrophoneIcon
|
|
902
|
+
</div>
|
|
903
|
+
<div className="text-xs text-white/60">Voice input</div>
|
|
904
|
+
</div>
|
|
905
|
+
</div>
|
|
906
|
+
<div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
|
|
907
|
+
<div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-purple-500/20">
|
|
908
|
+
<span className="text-2xl">🔊</span>
|
|
909
|
+
</div>
|
|
910
|
+
<div>
|
|
911
|
+
<div className="font-medium text-white">VolumeIcon</div>
|
|
912
|
+
<div className="text-xs text-white/60">Audio output</div>
|
|
913
|
+
</div>
|
|
914
|
+
</div>
|
|
915
|
+
<div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
|
|
916
|
+
<div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-orange-500/20">
|
|
917
|
+
<span className="text-2xl">📻</span>
|
|
918
|
+
</div>
|
|
919
|
+
<div>
|
|
920
|
+
<div className="font-medium text-white">RadioIcon</div>
|
|
921
|
+
<div className="text-xs text-white/60">Broadcasting</div>
|
|
922
|
+
</div>
|
|
923
|
+
</div>
|
|
924
|
+
</div>
|
|
925
|
+
</div>
|
|
926
|
+
</div>
|
|
927
|
+
|
|
928
|
+
{/* Footer */}
|
|
929
|
+
<div className="border-t border-white/10 bg-black/20 backdrop-blur-xl">
|
|
930
|
+
<div className="!mx-auto max-w-7xl px-6 py-8">
|
|
931
|
+
<div className="!space-y-4 text-center">
|
|
932
|
+
<p className="!text-white/60">
|
|
933
|
+
AudioBarIcon is part of the Aural UI icon library, designed
|
|
934
|
+
for clear audio visualization and interaction feedback.
|
|
935
|
+
</p>
|
|
936
|
+
<p className="text-sm !text-white/40">
|
|
937
|
+
Perfect for music players, voice interfaces, audio controls,
|
|
938
|
+
and any application requiring audio state visualization.
|
|
939
|
+
</p>
|
|
940
|
+
</div>
|
|
941
|
+
</div>
|
|
942
|
+
</div>
|
|
943
|
+
</div>
|
|
944
|
+
</>
|
|
945
|
+
),
|
|
946
|
+
},
|
|
947
|
+
},
|
|
948
|
+
tags: ["autodocs"],
|
|
949
|
+
argTypes: {
|
|
950
|
+
color: {
|
|
951
|
+
control: "color",
|
|
952
|
+
description: "Color of the icon",
|
|
953
|
+
},
|
|
954
|
+
width: {
|
|
955
|
+
control: { type: "range", min: 8, max: 96, step: 2 },
|
|
956
|
+
description: "Width of the icon in pixels",
|
|
957
|
+
},
|
|
958
|
+
height: {
|
|
959
|
+
control: { type: "range", min: 8, max: 96, step: 2 },
|
|
960
|
+
description: "Height of the icon in pixels",
|
|
961
|
+
},
|
|
962
|
+
fill: {
|
|
963
|
+
control: "color",
|
|
964
|
+
description: "Fill color of the audio bars",
|
|
965
|
+
},
|
|
966
|
+
className: {
|
|
967
|
+
control: "text",
|
|
968
|
+
description: "CSS classes for styling",
|
|
969
|
+
},
|
|
970
|
+
},
|
|
971
|
+
}
|
|
972
|
+
|
|
973
|
+
export default meta
|
|
974
|
+
type Story = StoryObj<typeof AudioBarIcon>
|
|
975
|
+
|
|
976
|
+
// Story parameters for consistent dark theme
|
|
977
|
+
const storyParameters = {
|
|
978
|
+
backgrounds: {
|
|
979
|
+
default: "dark",
|
|
980
|
+
values: [
|
|
981
|
+
{ name: "dark", value: "#0a0a0a" },
|
|
982
|
+
{ name: "darker", value: "#000000" },
|
|
983
|
+
],
|
|
984
|
+
},
|
|
985
|
+
}
|
|
986
|
+
|
|
987
|
+
export const Default: Story = {
|
|
988
|
+
args: {
|
|
989
|
+
width: 24,
|
|
990
|
+
height: 24,
|
|
991
|
+
className: "text-violet-400",
|
|
992
|
+
},
|
|
993
|
+
parameters: storyParameters,
|
|
994
|
+
render: (args) => (
|
|
995
|
+
<div className="flex h-32 min-h-dvh items-center justify-center rounded-lg bg-gradient-to-br from-gray-900 to-gray-800">
|
|
996
|
+
<AudioBarIcon {...args} />
|
|
997
|
+
</div>
|
|
998
|
+
),
|
|
999
|
+
}
|
|
1000
|
+
|
|
1001
|
+
export const SizeVariations: Story = {
|
|
1002
|
+
parameters: {
|
|
1003
|
+
...storyParameters,
|
|
1004
|
+
docs: {
|
|
1005
|
+
description: {
|
|
1006
|
+
story:
|
|
1007
|
+
"AudioBarIcon in different sizes, from small UI indicators to large audio visualizations.",
|
|
1008
|
+
},
|
|
1009
|
+
},
|
|
1010
|
+
},
|
|
1011
|
+
render: () => (
|
|
1012
|
+
<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">
|
|
1013
|
+
<div className="text-center">
|
|
1014
|
+
<AudioBarIcon className="!mx-auto mb-2 h-3 w-3 text-violet-400" />
|
|
1015
|
+
<span className="text-xs text-white/60">12px</span>
|
|
1016
|
+
</div>
|
|
1017
|
+
<div className="text-center">
|
|
1018
|
+
<AudioBarIcon className="!mx-auto mb-2 h-4 w-4 text-violet-400" />
|
|
1019
|
+
<span className="text-xs text-white/60">16px</span>
|
|
1020
|
+
</div>
|
|
1021
|
+
<div className="text-center">
|
|
1022
|
+
<AudioBarIcon className="!mx-auto mb-2 h-5 w-5 text-violet-400" />
|
|
1023
|
+
<span className="text-xs text-white/60">20px</span>
|
|
1024
|
+
</div>
|
|
1025
|
+
<div className="text-center">
|
|
1026
|
+
<AudioBarIcon className="!mx-auto mb-2 h-6 w-6 text-violet-400" />
|
|
1027
|
+
<span className="text-xs text-white/60">24px</span>
|
|
1028
|
+
</div>
|
|
1029
|
+
<div className="text-center">
|
|
1030
|
+
<AudioBarIcon className="!mx-auto mb-2 h-8 w-8 text-violet-400" />
|
|
1031
|
+
<span className="text-xs text-white/60">32px</span>
|
|
1032
|
+
</div>
|
|
1033
|
+
<div className="text-center">
|
|
1034
|
+
<AudioBarIcon className="!mx-auto mb-2 h-12 w-12 text-violet-400" />
|
|
1035
|
+
<span className="text-xs text-white/60">48px</span>
|
|
1036
|
+
</div>
|
|
1037
|
+
</div>
|
|
1038
|
+
),
|
|
1039
|
+
}
|
|
1040
|
+
|
|
1041
|
+
export const ColorVariations: Story = {
|
|
1042
|
+
parameters: {
|
|
1043
|
+
...storyParameters,
|
|
1044
|
+
docs: {
|
|
1045
|
+
description: {
|
|
1046
|
+
story:
|
|
1047
|
+
"AudioBarIcon in different colors representing various audio states and contexts.",
|
|
1048
|
+
},
|
|
1049
|
+
},
|
|
1050
|
+
},
|
|
1051
|
+
render: () => (
|
|
1052
|
+
<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-5">
|
|
1053
|
+
<div className="text-center">
|
|
1054
|
+
<div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border border-violet-500/30 bg-violet-500/20">
|
|
1055
|
+
<AudioBarIcon className="h-8 w-8 text-violet-400" />
|
|
1056
|
+
</div>
|
|
1057
|
+
<div className="text-sm font-medium text-white">Active</div>
|
|
1058
|
+
<div className="text-xs text-violet-400">text-violet-400</div>
|
|
1059
|
+
</div>
|
|
1060
|
+
<div className="text-center">
|
|
1061
|
+
<div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border border-green-500/30 bg-green-500/20">
|
|
1062
|
+
<AudioBarIcon className="h-8 w-8 text-green-400" />
|
|
1063
|
+
</div>
|
|
1064
|
+
<div className="text-sm font-medium text-white">Recording</div>
|
|
1065
|
+
<div className="text-xs text-green-400">text-green-400</div>
|
|
1066
|
+
</div>
|
|
1067
|
+
<div className="text-center">
|
|
1068
|
+
<div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border border-red-500/30 bg-red-500/20">
|
|
1069
|
+
<AudioBarIcon className="h-8 w-8 text-red-400" />
|
|
1070
|
+
</div>
|
|
1071
|
+
<div className="text-sm font-medium text-white">Live</div>
|
|
1072
|
+
<div className="text-xs text-red-400">text-red-400</div>
|
|
1073
|
+
</div>
|
|
1074
|
+
<div className="text-center">
|
|
1075
|
+
<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">
|
|
1076
|
+
<AudioBarIcon className="h-8 w-8 text-blue-400" />
|
|
1077
|
+
</div>
|
|
1078
|
+
<div className="text-sm font-medium text-white">Analyzing</div>
|
|
1079
|
+
<div className="text-xs text-blue-400">text-blue-400</div>
|
|
1080
|
+
</div>
|
|
1081
|
+
<div className="text-center">
|
|
1082
|
+
<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">
|
|
1083
|
+
<AudioBarIcon className="h-8 w-8 text-gray-400" />
|
|
1084
|
+
</div>
|
|
1085
|
+
<div className="text-sm font-medium text-white">Inactive</div>
|
|
1086
|
+
<div className="text-xs text-gray-400">text-gray-400</div>
|
|
1087
|
+
</div>
|
|
1088
|
+
</div>
|
|
1089
|
+
),
|
|
1090
|
+
}
|
|
1091
|
+
|
|
1092
|
+
export const AnimatedStates: Story = {
|
|
1093
|
+
parameters: {
|
|
1094
|
+
...storyParameters,
|
|
1095
|
+
docs: {
|
|
1096
|
+
description: {
|
|
1097
|
+
story:
|
|
1098
|
+
"AudioBarIcon with different animation states for dynamic audio feedback.",
|
|
1099
|
+
},
|
|
1100
|
+
},
|
|
1101
|
+
},
|
|
1102
|
+
render: () => (
|
|
1103
|
+
<div className="grid min-h-dvh grid-cols-1 items-center gap-8 rounded-lg bg-gradient-to-br from-gray-900 to-gray-800 p-8 md:grid-cols-4">
|
|
1104
|
+
<div className="text-center">
|
|
1105
|
+
<h3 className="mb-4 text-lg font-medium text-white">Pulse</h3>
|
|
1106
|
+
<div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border border-violet-500/30 bg-violet-500/20">
|
|
1107
|
+
<AudioBarIcon className="h-8 w-8 animate-pulse text-violet-400" />
|
|
1108
|
+
</div>
|
|
1109
|
+
<p className="text-xs text-white/60">Active audio</p>
|
|
1110
|
+
</div>
|
|
1111
|
+
|
|
1112
|
+
<div className="text-center">
|
|
1113
|
+
<h3 className="mb-4 text-lg font-medium text-white">Bounce</h3>
|
|
1114
|
+
<div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border border-green-500/30 bg-green-500/20">
|
|
1115
|
+
<AudioBarIcon className="h-8 w-8 animate-bounce text-green-400" />
|
|
1116
|
+
</div>
|
|
1117
|
+
<p className="text-xs text-white/60">Recording</p>
|
|
1118
|
+
</div>
|
|
1119
|
+
|
|
1120
|
+
<div className="text-center">
|
|
1121
|
+
<h3 className="mb-4 text-lg font-medium text-white">Spin</h3>
|
|
1122
|
+
<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">
|
|
1123
|
+
<AudioBarIcon className="h-8 w-8 animate-spin text-blue-400" />
|
|
1124
|
+
</div>
|
|
1125
|
+
<p className="text-xs text-white/60">Processing</p>
|
|
1126
|
+
</div>
|
|
1127
|
+
|
|
1128
|
+
<div className="text-center">
|
|
1129
|
+
<h3 className="mb-4 text-lg font-medium text-white">Hover Scale</h3>
|
|
1130
|
+
<div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border border-red-500/30 bg-red-500/20">
|
|
1131
|
+
<AudioBarIcon className="h-8 w-8 text-red-400 transition-all hover:scale-110" />
|
|
1132
|
+
</div>
|
|
1133
|
+
<p className="text-xs text-white/60">Interactive</p>
|
|
1134
|
+
</div>
|
|
1135
|
+
</div>
|
|
1136
|
+
),
|
|
1137
|
+
}
|
|
1138
|
+
|
|
1139
|
+
export const UsageExamples: Story = {
|
|
1140
|
+
parameters: {
|
|
1141
|
+
...storyParameters,
|
|
1142
|
+
docs: {
|
|
1143
|
+
description: {
|
|
1144
|
+
story:
|
|
1145
|
+
"Real-world usage examples showing AudioBarIcon in different audio interface contexts.",
|
|
1146
|
+
},
|
|
1147
|
+
},
|
|
1148
|
+
},
|
|
1149
|
+
render: () => (
|
|
1150
|
+
<div className="min-h-dvh !space-y-8 rounded-lg bg-gradient-to-br from-gray-900 to-gray-800 p-8">
|
|
1151
|
+
{/* Music Player */}
|
|
1152
|
+
<div className="!space-y-2">
|
|
1153
|
+
<h3 className="text-sm font-medium text-white">Music Player</h3>
|
|
1154
|
+
<div className="rounded-lg border border-white/10 bg-white/5 p-4">
|
|
1155
|
+
<div className="flex items-center gap-4">
|
|
1156
|
+
<div className="flex h-12 w-12 items-center justify-center rounded-lg bg-violet-500/20">
|
|
1157
|
+
<AudioBarIcon className="h-6 w-6 animate-pulse text-violet-400" />
|
|
1158
|
+
</div>
|
|
1159
|
+
<div className="flex-1">
|
|
1160
|
+
<h4 className="font-medium text-white">Bohemian Rhapsody</h4>
|
|
1161
|
+
<p className="text-sm text-white/60">Queen</p>
|
|
1162
|
+
</div>
|
|
1163
|
+
<div className="text-sm text-white/60">3:42</div>
|
|
1164
|
+
</div>
|
|
1165
|
+
</div>
|
|
1166
|
+
</div>
|
|
1167
|
+
|
|
1168
|
+
{/* Voice Recording */}
|
|
1169
|
+
<div className="!space-y-2">
|
|
1170
|
+
<h3 className="text-sm font-medium text-white">Voice Recording</h3>
|
|
1171
|
+
<div className="rounded-lg border border-red-500/20 bg-red-500/10 p-4">
|
|
1172
|
+
<div className="flex items-center justify-between">
|
|
1173
|
+
<div className="flex items-center gap-3">
|
|
1174
|
+
<AudioBarIcon className="h-5 w-5 animate-bounce text-red-400" />
|
|
1175
|
+
<span className="text-red-200">Recording...</span>
|
|
1176
|
+
</div>
|
|
1177
|
+
<div className="text-sm text-red-300">00:42</div>
|
|
1178
|
+
</div>
|
|
1179
|
+
</div>
|
|
1180
|
+
</div>
|
|
1181
|
+
|
|
1182
|
+
{/* Audio Controls */}
|
|
1183
|
+
<div className="!space-y-2">
|
|
1184
|
+
<h3 className="text-sm font-medium text-white">Audio Controls</h3>
|
|
1185
|
+
<div className="flex items-center gap-4">
|
|
1186
|
+
<button className="flex items-center gap-2 rounded-lg border border-violet-500/30 bg-violet-500/20 px-3 py-2 text-violet-200 transition-colors hover:bg-violet-500/30">
|
|
1187
|
+
<AudioBarIcon className="h-4 w-4" />
|
|
1188
|
+
Equalizer
|
|
1189
|
+
</button>
|
|
1190
|
+
<button className="flex items-center gap-2 rounded-lg border border-green-500/30 bg-green-500/20 px-3 py-2 text-green-200 transition-colors hover:bg-green-500/30">
|
|
1191
|
+
<AudioBarIcon className="h-4 w-4" />
|
|
1192
|
+
Visualizer
|
|
1193
|
+
</button>
|
|
1194
|
+
</div>
|
|
1195
|
+
</div>
|
|
1196
|
+
|
|
1197
|
+
{/* Audio Status */}
|
|
1198
|
+
<div className="!space-y-2">
|
|
1199
|
+
<h3 className="text-sm font-medium text-white">Audio Status</h3>
|
|
1200
|
+
<div className="!space-y-2">
|
|
1201
|
+
<div className="flex items-center justify-between rounded-lg border border-white/10 bg-white/5 p-3">
|
|
1202
|
+
<span className="text-sm text-white">Microphone</span>
|
|
1203
|
+
<div className="flex items-center gap-2">
|
|
1204
|
+
<AudioBarIcon className="h-4 w-4 text-green-400" />
|
|
1205
|
+
<span className="text-xs text-green-400">Active</span>
|
|
1206
|
+
</div>
|
|
1207
|
+
</div>
|
|
1208
|
+
<div className="flex items-center justify-between rounded-lg border border-white/10 bg-white/5 p-3">
|
|
1209
|
+
<span className="text-sm text-white">Speakers</span>
|
|
1210
|
+
<div className="flex items-center gap-2">
|
|
1211
|
+
<AudioBarIcon className="h-4 w-4 animate-pulse text-violet-400" />
|
|
1212
|
+
<span className="text-xs text-violet-400">Playing</span>
|
|
1213
|
+
</div>
|
|
1214
|
+
</div>
|
|
1215
|
+
</div>
|
|
1216
|
+
</div>
|
|
1217
|
+
</div>
|
|
1218
|
+
),
|
|
1219
|
+
}
|
|
1220
|
+
|
|
1221
|
+
export const Playground: Story = {
|
|
1222
|
+
parameters: {
|
|
1223
|
+
...storyParameters,
|
|
1224
|
+
docs: {
|
|
1225
|
+
description: {
|
|
1226
|
+
story:
|
|
1227
|
+
"Interactive playground to experiment with different AudioBarIcon configurations.",
|
|
1228
|
+
},
|
|
1229
|
+
},
|
|
1230
|
+
},
|
|
1231
|
+
args: {
|
|
1232
|
+
width: 32,
|
|
1233
|
+
height: 32,
|
|
1234
|
+
className: "text-violet-400",
|
|
1235
|
+
fill: "#8b5cf6",
|
|
1236
|
+
},
|
|
1237
|
+
render: (args) => (
|
|
1238
|
+
<div className="flex h-64 min-h-dvh items-center justify-center rounded-lg bg-gradient-to-br from-gray-900 to-gray-800">
|
|
1239
|
+
<div className="rounded-lg border border-white/10 bg-white/5 p-8">
|
|
1240
|
+
<AudioBarIcon {...args} />
|
|
1241
|
+
</div>
|
|
1242
|
+
</div>
|
|
1243
|
+
),
|
|
1244
|
+
}
|