aural-ui 4.0.1 → 4.2.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/README.md +8 -1
- package/dist/components/aspect-ratio/AspectRatio.stories.tsx +290 -1228
- package/dist/components/avatar/Avatar.stories.tsx +219 -235
- package/dist/components/badge/Badge.stories.tsx +379 -116
- package/dist/components/banner/Banner.stories.tsx +445 -391
- package/dist/components/breadcrumb/Breadcrumb.stories.tsx +453 -199
- package/dist/components/button/Button.stories.tsx +585 -230
- package/dist/components/card/Card.stories.tsx +619 -301
- package/dist/components/char-count/CharCount.stories.tsx +350 -248
- package/dist/components/checkbox/Checkbox.stories.tsx +309 -167
- package/dist/components/chip/Chip.stories.tsx +362 -168
- package/dist/components/circular-loader/CircularLoader.stories.tsx +221 -636
- package/dist/components/clamp-lines/ClampLines.stories.tsx +246 -117
- package/dist/components/collapsible/Collapsible.stories.tsx +391 -252
- package/dist/components/command/Command.stories.tsx +530 -867
- package/dist/components/dialog/Dialog.stories.tsx +501 -950
- package/dist/components/divider/Divider.stories.tsx +264 -527
- package/dist/components/dot-loader/DotLoader.stories.tsx +256 -257
- package/dist/components/drawer/Drawer.stories.tsx +659 -1023
- package/dist/components/dropdown/Dropdown.stories.tsx +643 -1028
- package/dist/components/form/Form.stories.tsx +560 -274
- package/dist/components/helper-text/HelperText.stories.tsx +199 -200
- package/dist/components/hover-card/HoverCard.stories.tsx +318 -1254
- package/dist/components/icon-button/IconButton.stories.tsx +837 -194
- package/dist/components/if-else/if-else.stories.tsx +370 -83
- package/dist/components/input/Input.stories.tsx +436 -368
- package/dist/components/label/Label.stories.tsx +156 -154
- package/dist/components/list/List.stories.tsx +484 -835
- package/dist/components/marquee/Marquee.stories.tsx +356 -712
- package/dist/components/otp-inputs/OtpInputs.stories.tsx +352 -422
- package/dist/components/overlay/Overlay.stories.tsx +452 -824
- package/dist/components/pagination/Pagination.stories.tsx +721 -210
- package/dist/components/popover/Popover.stories.tsx +481 -896
- package/dist/components/radio/Radio.stories.tsx +432 -124
- package/dist/components/resizable/Resizable.stories.tsx +495 -799
- package/dist/components/scroll-area/ScrollArea.stories.tsx +383 -1059
- package/dist/components/search/Search.stories.tsx +312 -595
- package/dist/components/select/Select.stories.tsx +684 -789
- package/dist/components/sheet/Sheet.stories.tsx +671 -950
- package/dist/components/skelton/Skelton.stories.tsx +230 -764
- package/dist/components/slider/Slider.stories.tsx +383 -760
- package/dist/components/stepper/Stepper.stories.tsx +371 -514
- package/dist/components/switch/Switch.stories.tsx +461 -208
- package/dist/components/switch-case/SwitchCase.stories.tsx +367 -188
- package/dist/components/table/Table.stories.tsx +770 -916
- package/dist/components/tabs/Tabs.stories.tsx +458 -1455
- package/dist/components/tag/Tag.stories.tsx +714 -542
- package/dist/components/textarea/TextArea.stories.tsx +621 -562
- package/dist/components/thumbnail-tags/ThumbnailTags.stories.tsx +228 -154
- package/dist/components/toast/Toast.stories.tsx +452 -1339
- package/dist/components/toggle/Toggle.stories.tsx +488 -931
- package/dist/components/tooltip/Tooltip.stories.tsx +344 -1388
- package/dist/components/typography/Typography.stories.tsx +406 -89
- package/dist/hooks/use-change-state/UseChangeState.stories.tsx +309 -606
- package/dist/hooks/use-previous/UsePrevious.stories.tsx +367 -917
- package/dist/hooks/use-standalone-pagination/UseStandalonePagination.stories.tsx +639 -867
- package/dist/icons/Icons.stories.tsx +0 -12
- package/dist/icons/ai-avatar-icon/AiAvatarIcon.stories.tsx +223 -1060
- package/dist/icons/alert-icon/AlertIcon.stories.tsx +106 -968
- package/dist/icons/all-icons.tsx +37 -16
- package/dist/icons/angle-down-icon/AngleDownIcon.stories.tsx +137 -1010
- package/dist/icons/apple-logo-icon/AppleLogoIcon.stories.tsx +145 -935
- package/dist/icons/arrow-box-left-icon/ArrowBoxLeftIcon.stories.tsx +132 -1046
- package/dist/icons/arrow-corner-up-left-icon/ArrowCornerUpLeftIcon.stories.tsx +134 -986
- package/dist/icons/arrow-corner-up-right-icon/ArrowCornerUpRightIcon.stories.tsx +135 -1028
- package/dist/icons/arrow-left-icon/ArrowLeftIcon.stories.tsx +133 -971
- package/dist/icons/arrow-right-icon/ArrowRightIcon.stories.tsx +145 -1123
- package/dist/icons/arrow-right-up-icon/ArrowRightUpIcon.stories.tsx +143 -1252
- package/dist/icons/art-board-icon/ArtBoardIcon.stories.tsx +123 -632
- package/dist/icons/audio-bar-icon/AudioBarIcon.stories.tsx +141 -1223
- package/dist/icons/backward-ten-seconds-icon/BackwardTenSecondsIcon.stories.tsx +164 -1018
- package/dist/icons/bubble-check-icon/BubbleCheckIcon.stories.tsx +121 -1236
- package/dist/icons/bubble-crossed-icon/BubbleCrossedIcon.stories.tsx +121 -1213
- package/dist/icons/bubble-sparkle-icon/BubbleSparkleIcon.stories.tsx +116 -893
- package/dist/icons/camera-icon/CameraIcon.stories.tsx +109 -1254
- package/dist/icons/capital-a-letter-icon/CapitalALetterIcon.stories.tsx +114 -975
- package/dist/icons/chevron-double-left-icon/ChevronDoubleLeftIcon.stories.tsx +157 -994
- package/dist/icons/chevron-double-right-icon/ChevronDoubleRightIcon.stories.tsx +160 -992
- package/dist/icons/chevron-down-icon/ChevronDownIcon.stories.tsx +140 -970
- package/dist/icons/chevron-left-icon/ChevronLeftIcon.stories.tsx +126 -993
- package/dist/icons/chevron-right-icon/ChevronRightIcon.stories.tsx +144 -987
- package/dist/icons/chevron-up-icon/ChevronUpIcon.stories.tsx +141 -1007
- package/dist/icons/circle-tick-icon/CircleTickIcon.stories.tsx +147 -1187
- package/dist/icons/circular-play-icon/CircularPlayIcon.stories.tsx +110 -476
- package/dist/icons/coin-icon/CoinIcon.stories.tsx +120 -1364
- package/dist/icons/coin-toons-icon/CoinToonsIcon.stories.tsx +113 -1360
- package/dist/icons/column-wide-add-icon/ColumnWideAddIcon.stories.tsx +111 -942
- package/dist/icons/command-icon/CommandIcon.stories.tsx +124 -1087
- package/dist/icons/copy-icon/CopyIcon.stories.tsx +119 -996
- package/dist/icons/cross-circle-icon/CrossCircleIcon.stories.tsx +144 -1046
- package/dist/icons/cross-icon/CrossIcon.stories.tsx +136 -999
- package/dist/icons/download-icon/DownloadIcon.stories.tsx +123 -857
- package/dist/icons/edit-big-icon/EditBigIcon.stories.tsx +121 -1080
- package/dist/icons/email-icon/EmailIcon.stories.tsx +112 -979
- package/dist/icons/expand-icon/ExpandIcon.stories.tsx +109 -1146
- package/dist/icons/eye-close-icon/EyeCloseIcon.stories.tsx +141 -1068
- package/dist/icons/eye-open-icon/EyeOpenIcon.stories.tsx +140 -1081
- package/dist/icons/feature-shine-icon/FeatureShineIcon.stories.tsx +124 -1050
- package/dist/icons/file-chart-icon/FileChartIcon.stories.tsx +123 -1091
- package/dist/icons/file-text-icon/FileTextIcon.stories.tsx +122 -633
- package/dist/icons/filter-bar-row-icon/FilterBarRowIcon.stories.tsx +116 -1087
- package/dist/icons/forward-ten-seconds-icon/ForwardTenSecondsIcon.stories.tsx +166 -1020
- package/dist/icons/git-branch-icon/GitBranchIcon.stories.tsx +112 -1182
- package/dist/icons/git-fork-icon/GitForkIcon.stories.tsx +112 -1155
- package/dist/icons/globe-icon/GlobeIcon.stories.tsx +127 -325
- package/dist/icons/google-logo-icon/GoogleLogoIcon.stories.tsx +142 -985
- package/dist/icons/grip-vertical-icon/GripVerticalIcon.stories.tsx +116 -1217
- package/dist/icons/head-icon/HeadIcon.stories.tsx +108 -953
- package/dist/icons/heart-icon/HeartIcon.stories.tsx +117 -1060
- package/dist/icons/image-avatar-sparkle-icon/ImageAvatarSparkleIcon.stories.tsx +116 -716
- package/dist/icons/image-icon/ImageIcon.stories.tsx +102 -1164
- package/dist/icons/import-folder-icon/ImportFolderIcon.stories.tsx +108 -1233
- package/dist/icons/import-left-arrow-folder-icon/ImportLeftArrowFolderIcon.stories.tsx +133 -1289
- package/dist/icons/indian-flag-icon/IndianFlagIcon.stories.tsx +155 -1012
- package/dist/icons/instagram-icon/InstagramIcon.stories.tsx +158 -1438
- package/dist/icons/layout-column-icon/LayoutColumnIcon.stories.tsx +121 -1011
- package/dist/icons/layout-left-icon/LayoutLeftIcon.stories.tsx +116 -981
- package/dist/icons/layout-right-icon/LayoutRightIcon.stories.tsx +116 -979
- package/dist/icons/light-bulb-simple-icon/LightBulbSimpleIcon.stories.tsx +105 -1252
- package/dist/icons/linked-in-icon/LinkedInIcon.stories.tsx +151 -1554
- package/dist/icons/magic-book-icon/MagicBookIcon.stories.tsx +107 -1227
- package/dist/icons/magic-edit-icon/MagicEditIcon.stories.tsx +116 -707
- package/dist/icons/maintenance-icon/MaintenanceIcon.stories.tsx +119 -1226
- package/dist/icons/message-icon/MessageIcon.stories.tsx +111 -557
- package/dist/icons/minimize-icon/MinimizeIcon.stories.tsx +112 -1198
- package/dist/icons/moon-icon/MoonIcon.stories.tsx +117 -557
- package/dist/icons/move-horizontal-icon/MoveHorizontalIcon.stories.tsx +106 -1235
- package/dist/icons/move-vertical-icon/MoveVerticalIcon.stories.tsx +112 -1185
- package/dist/icons/musical-note-icon/MusicalNoteIcon.stories.tsx +116 -1012
- package/dist/icons/notepad-icon/NotepadIcon.stories.tsx +108 -1137
- package/dist/icons/notes-icon/NotesIcon.stories.tsx +116 -1138
- package/dist/icons/page-search-icon/PageSearchIcon.stories.tsx +106 -1146
- package/dist/icons/page-text-icon/PageTextIcon.stories.tsx +119 -719
- package/dist/icons/paint-roll-icon/PaintRollIcon.stories.tsx +110 -999
- package/dist/icons/paper-plane-icon/PaperPlaneIcon.stories.tsx +109 -912
- package/dist/icons/pause-icon/PauseIcon.stories.tsx +110 -1041
- package/dist/icons/pencil-icon/PencilIcon.stories.tsx +112 -1109
- package/dist/icons/phone-icon/PhoneIcon.stories.tsx +112 -1023
- package/dist/icons/plus-icon/PlusIcon.stories.tsx +103 -1132
- package/dist/icons/pocket-studio-icon/PocketStudioIcon.stories.tsx +104 -870
- package/dist/icons/scroll-down-icon/ScrollDownIcon.stories.tsx +99 -476
- package/dist/icons/search-icon/SearchIcon.stories.tsx +108 -1161
- package/dist/icons/setting-icon/SettingIcon.stories.tsx +104 -1009
- package/dist/icons/share-icon/ShareIcon.stories.tsx +117 -1064
- package/dist/icons/shield-icon/ShieldIcon.stories.tsx +114 -974
- package/dist/icons/site-logo-icon/SiteLogoIcon.stories.tsx +134 -1160
- package/dist/icons/skip-backward-icon/SkipBackwardIcon.stories.tsx +169 -1017
- package/dist/icons/skip-forward-icon/SkipForwardIcon.stories.tsx +161 -1016
- package/dist/icons/sparkles-soft-icon/SparklesSoftIcon.stories.tsx +102 -1001
- package/dist/icons/spinner-gradient-icon/SpinnerGradientIcon.stories.tsx +155 -593
- package/dist/icons/spinner-solid-icon/SpinnerSolidIcon.stories.tsx +155 -608
- package/dist/icons/spinner-solid-neutral-icon/SpinnerSolidINeutralcon.stories.tsx +142 -712
- package/dist/icons/star-icon/StarIcon.stories.tsx +120 -946
- package/dist/icons/store-coin-icon/StoreCoinIcon.stories.tsx +109 -1013
- package/dist/icons/suggestion-icon/SuggestionIcon.stories.tsx +113 -891
- package/dist/icons/sun-icon/SunIcon.stories.tsx +117 -864
- package/dist/icons/text-color-icon/TextColorIcon.stories.tsx +113 -989
- package/dist/icons/text-indicator-icon/TextIndicatorIcon.stories.tsx +120 -1027
- package/dist/icons/threads-icon/ThreadsIcon.stories.tsx +153 -1476
- package/dist/icons/tick-circle-icon/TickCircleIcon.stories.tsx +143 -1187
- package/dist/icons/tick-icon/TickIcon.stories.tsx +142 -1322
- package/dist/icons/trash-icon/TrashIcon.stories.tsx +105 -970
- package/dist/icons/twitter-x-icon/TwitterXIcon.stories.tsx +154 -1457
- package/dist/icons/upload-icon/UploadIcon.stories.tsx +112 -930
- package/dist/icons/vertical-menu-icon/VerticalMenuIcon.stories.tsx +115 -1019
- package/dist/icons/video-play-list-icon/VideoPlaylistIcon.stories.tsx +122 -1092
- package/dist/icons/voice-playing-icon/VoicePlayingIcon.stories.tsx +120 -1401
- package/dist/icons/volume-full-icon/VolumeFullIcon.stories.tsx +107 -1212
- package/dist/icons/volume-half-icon/VolumeHalfIcon.stories.tsx +109 -1122
- package/dist/icons/volume-off-icon/VolumeOffIcon.stories.tsx +112 -1124
- package/dist/icons/warning-icon/WarningIcon.stories.tsx +119 -1083
- package/dist/icons/youtube-icon/YoutubeIcon.stories.tsx +158 -983
- package/dist/index.cjs +90 -90
- package/dist/index.js +90 -90
- package/package.json +8 -3
|
@@ -1,6 +1,21 @@
|
|
|
1
1
|
import React from "react"
|
|
2
2
|
import type { Meta, StoryObj } from "@storybook/react-vite"
|
|
3
3
|
|
|
4
|
+
import { AngleDownIcon } from "src/ui/icons/angle-down-icon"
|
|
5
|
+
import { ChevronDownIcon } from "src/ui/icons/chevron-down-icon"
|
|
6
|
+
import { ChevronLeftIcon } from "src/ui/icons/chevron-left-icon"
|
|
7
|
+
import { ChevronUpIcon } from "src/ui/icons/chevron-up-icon"
|
|
8
|
+
import {
|
|
9
|
+
IconColorVariations,
|
|
10
|
+
IconDefaultCanvas,
|
|
11
|
+
IconDirectionalVariations,
|
|
12
|
+
IconPlaygroundCanvas,
|
|
13
|
+
IconSizeVariations,
|
|
14
|
+
IconUsageCanvas,
|
|
15
|
+
IconUsageSection,
|
|
16
|
+
} from "src/ui/story-spec/icons/icon-story-canvas"
|
|
17
|
+
import { AuralIconDocsPage } from "src/ui/story-spec/icons/icon-story-docs-page"
|
|
18
|
+
|
|
4
19
|
import { ChevronRightIcon } from "."
|
|
5
20
|
|
|
6
21
|
const meta: Meta<typeof ChevronRightIcon> = {
|
|
@@ -18,826 +33,73 @@ const meta: Meta<typeof ChevronRightIcon> = {
|
|
|
18
33
|
},
|
|
19
34
|
docs: {
|
|
20
35
|
page: () => (
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
{
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
}
|
|
36
|
-
.docs-story {
|
|
37
|
-
background: transparent ;
|
|
38
|
-
}
|
|
39
|
-
.sbdocs {
|
|
40
|
-
background: transparent ;
|
|
41
|
-
}
|
|
42
|
-
body {
|
|
43
|
-
background: var(--color-fm-surface-primary) ;
|
|
44
|
-
}
|
|
45
|
-
#storybook-docs {
|
|
46
|
-
background: var(--color-fm-surface-primary) ;
|
|
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: var(--color-fm-icon-active) ;
|
|
54
|
-
}
|
|
55
|
-
.sbdocs-p, .sbdocs-li {
|
|
56
|
-
color: var(--color-fm-secondary) ;
|
|
57
|
-
}
|
|
58
|
-
.sbdocs-code {
|
|
59
|
-
background: var(--color-fm-surface-secondary) ;
|
|
60
|
-
color: var(--color-fm-secondary-500) ;
|
|
61
|
-
border: 1px solid var(--color-fm-divider-secondary) ;
|
|
62
|
-
}
|
|
63
|
-
.sbdocs-pre {
|
|
64
|
-
background: var(--color-fm-surface-secondary) ;
|
|
65
|
-
border: 1px solid var(--color-fm-divider-secondary) ;
|
|
66
|
-
}
|
|
67
|
-
.sbdocs-table {
|
|
68
|
-
background: var(--color-fm-surface-secondary) ;
|
|
69
|
-
border: 1px solid var(--color-fm-divider-secondary) ;
|
|
70
|
-
}
|
|
71
|
-
.sbdocs-table th {
|
|
72
|
-
background: var(--color-fm-surface-secondary) ;
|
|
73
|
-
color: var(--color-fm-icon-active) ;
|
|
74
|
-
border-bottom: 1px solid var(--color-fm-divider-secondary) ;
|
|
75
|
-
}
|
|
76
|
-
.sbdocs-table td {
|
|
77
|
-
color: var(--color-fm-secondary) ;
|
|
78
|
-
border-bottom: 1px solid var(--color-fm-divider-tertiary) ;
|
|
79
|
-
}
|
|
80
|
-
`}
|
|
81
|
-
</style>
|
|
82
|
-
|
|
83
|
-
<div className="from-fm-surface-primary via-fm-icon-info/5 to-fm-surface-primary min-h-screen bg-linear-to-br">
|
|
84
|
-
{/* Header */}
|
|
85
|
-
<div className="border-fm-divider-secondary bg-fm-surface-secondary relative overflow-hidden border-b backdrop-blur-xl">
|
|
86
|
-
<div className="from-fm-icon-info/10 to-fm-icon-info/10 absolute inset-0 bg-linear-to-r via-transparent" />
|
|
87
|
-
<div className="relative !mx-auto max-w-7xl px-6 py-16">
|
|
88
|
-
<div className="!space-y-6 text-center">
|
|
89
|
-
<div className="border-fm-icon-info/30 from-fm-icon-info/20 to-fm-icon-info/20 !mx-auto flex h-24 w-24 items-center justify-center rounded-2xl border bg-linear-to-br">
|
|
90
|
-
<ChevronRightIcon className="text-fm-icon-info h-12 w-12" />
|
|
91
|
-
</div>
|
|
92
|
-
<h1 className="!text-fm-primary text-5xl font-bold">
|
|
93
|
-
ChevronRightIcon
|
|
94
|
-
</h1>
|
|
95
|
-
<p className="text-fm-secondary! !mx-auto max-w-3xl text-xl leading-relaxed">
|
|
96
|
-
A versatile chevron right icon for navigation, next buttons,
|
|
97
|
-
and rightward direction indicators. Built with accessibility
|
|
98
|
-
in mind using Radix UI's AccessibleIcon wrapper.
|
|
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-fm-icon-info text-3xl font-bold">
|
|
105
|
-
Accessible
|
|
106
|
-
</div>
|
|
107
|
-
<div className="text-fm-tertiary text-sm">
|
|
108
|
-
Screen reader friendly
|
|
109
|
-
</div>
|
|
110
|
-
</div>
|
|
111
|
-
<div className="bg-fm-divider-primary h-8 w-px" />
|
|
112
|
-
<div className="text-center">
|
|
113
|
-
<div className="text-fm-icon-info text-3xl font-bold">
|
|
114
|
-
Scalable
|
|
115
|
-
</div>
|
|
116
|
-
<div className="text-fm-tertiary text-sm">
|
|
117
|
-
Any size needed
|
|
118
|
-
</div>
|
|
119
|
-
</div>
|
|
120
|
-
<div className="bg-fm-divider-primary h-8 w-px" />
|
|
121
|
-
<div className="text-center">
|
|
122
|
-
<div className="text-fm-icon-info text-3xl font-bold">
|
|
123
|
-
Navigation
|
|
124
|
-
</div>
|
|
125
|
-
<div className="text-fm-tertiary text-sm">
|
|
126
|
-
Forward movement
|
|
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-fm-icon-active! text-center text-3xl font-bold">
|
|
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-fm-icon-info! text-xl font-semibold">
|
|
144
|
-
Basic Usage
|
|
145
|
-
</h3>
|
|
146
|
-
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
147
|
-
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
148
|
-
{`import { ChevronRightIcon } from "@icons/chevron-right-icon"
|
|
149
|
-
|
|
150
|
-
function NextButton() {
|
|
36
|
+
<AuralIconDocsPage
|
|
37
|
+
accentToken="warning"
|
|
38
|
+
features={[
|
|
39
|
+
{
|
|
40
|
+
title: "Directional",
|
|
41
|
+
description: "Rotates to all 4 directions",
|
|
42
|
+
},
|
|
43
|
+
{ title: "currentColor", description: "Responds to text tokens" },
|
|
44
|
+
{ title: "Accessible", description: "ARIA-ready by default" },
|
|
45
|
+
]}
|
|
46
|
+
quickStart={{
|
|
47
|
+
codeExample: `import { ChevronRightIcon } from "src/ui/icons/chevron-right-icon"
|
|
48
|
+
|
|
49
|
+
function ListItem() {
|
|
151
50
|
return (
|
|
152
|
-
<
|
|
153
|
-
<span>
|
|
154
|
-
<ChevronRightIcon className="h-4 w-4 text-
|
|
155
|
-
</
|
|
51
|
+
<div className="flex items-center justify-between">
|
|
52
|
+
<span>Episodes</span>
|
|
53
|
+
<ChevronRightIcon className="h-4 w-4 text-fm-icon-inactive" />
|
|
54
|
+
</div>
|
|
156
55
|
)
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
<div className="!space-y-4">
|
|
163
|
-
<h3 className="text-fm-icon-info! text-xl font-semibold">
|
|
164
|
-
Live Preview
|
|
165
|
-
</h3>
|
|
166
|
-
<div className="border-fm-divider-secondary bg-fm-surface-secondary flex h-32 items-center justify-center rounded-lg border">
|
|
167
|
-
<button className="border-fm-icon-info/20 bg-fm-icon-info/10 hover:bg-fm-icon-info/20 flex items-center gap-3 rounded-lg border px-4 py-2 transition-colors">
|
|
168
|
-
<span className="text-fm-icon-active">Continue</span>
|
|
169
|
-
<ChevronRightIcon className="text-fm-icon-info h-4 w-4" />
|
|
170
|
-
</button>
|
|
171
|
-
</div>
|
|
172
|
-
</div>
|
|
173
|
-
</div>
|
|
174
|
-
</div>
|
|
175
|
-
|
|
176
|
-
{/* Props Documentation */}
|
|
177
|
-
<div className="!space-y-8">
|
|
178
|
-
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
179
|
-
Props & Configuration
|
|
180
|
-
</h2>
|
|
181
|
-
|
|
182
|
-
<div className="border-fm-divider-secondary bg-fm-surface-secondary overflow-hidden rounded-lg border">
|
|
183
|
-
<div className="bg-fm-surface-secondary p-4">
|
|
184
|
-
<h3 className="text-fm-icon-active! text-xl font-semibold">
|
|
185
|
-
Props
|
|
186
|
-
</h3>
|
|
187
|
-
</div>
|
|
188
|
-
<table className="!my-0 w-full">
|
|
189
|
-
<thead className="bg-fm-surface-secondary">
|
|
190
|
-
<tr className="border-fm-divider-secondary border-b">
|
|
191
|
-
<th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
|
|
192
|
-
Prop
|
|
193
|
-
</th>
|
|
194
|
-
<th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
|
|
195
|
-
Type
|
|
196
|
-
</th>
|
|
197
|
-
<th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
|
|
198
|
-
Default
|
|
199
|
-
</th>
|
|
200
|
-
<th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
|
|
201
|
-
Description
|
|
202
|
-
</th>
|
|
203
|
-
</tr>
|
|
204
|
-
</thead>
|
|
205
|
-
<tbody>
|
|
206
|
-
{" "}
|
|
207
|
-
<tr className="bg-fm-surface-secondary!">
|
|
208
|
-
<td className="text-fm-icon-info! px-6 py-4 font-mono text-sm">
|
|
209
|
-
withAccessibility
|
|
210
|
-
</td>
|
|
211
|
-
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
212
|
-
boolean
|
|
213
|
-
</td>
|
|
214
|
-
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
215
|
-
true
|
|
216
|
-
</td>
|
|
217
|
-
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
218
|
-
Whether to wrap the icon with accessibility feature
|
|
219
|
-
</td>
|
|
220
|
-
</tr>
|
|
221
|
-
<tr className="border-fm-divider-tertiary bg-fm-surface-secondary! border-b">
|
|
222
|
-
<td className="text-fm-icon-info! px-6 py-4 font-mono text-sm">
|
|
223
|
-
height
|
|
224
|
-
</td>
|
|
225
|
-
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
226
|
-
number | string
|
|
227
|
-
</td>
|
|
228
|
-
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
229
|
-
24
|
|
230
|
-
</td>
|
|
231
|
-
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
232
|
-
Height of the icon in pixels
|
|
233
|
-
</td>
|
|
234
|
-
</tr>
|
|
235
|
-
<tr className="border-fm-divider-tertiary border-b">
|
|
236
|
-
<td className="text-fm-icon-info! px-6 py-4 font-mono text-sm">
|
|
237
|
-
stroke
|
|
238
|
-
</td>
|
|
239
|
-
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
240
|
-
string
|
|
241
|
-
</td>
|
|
242
|
-
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
243
|
-
currentColor
|
|
244
|
-
</td>
|
|
245
|
-
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
246
|
-
Stroke color of the icon
|
|
247
|
-
</td>
|
|
248
|
-
</tr>
|
|
249
|
-
<tr className="border-fm-divider-tertiary bg-fm-surface-secondary! border-b">
|
|
250
|
-
<td className="text-fm-icon-info! px-6 py-4 font-mono text-sm">
|
|
251
|
-
className
|
|
252
|
-
</td>
|
|
253
|
-
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
254
|
-
string
|
|
255
|
-
</td>
|
|
256
|
-
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
257
|
-
-
|
|
258
|
-
</td>
|
|
259
|
-
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
260
|
-
CSS classes for styling (use for overrides)
|
|
261
|
-
</td>
|
|
262
|
-
</tr>
|
|
263
|
-
<tr className="border-fm-divider-tertiary border-b">
|
|
264
|
-
<td className="text-fm-icon-info! px-6 py-4 font-mono text-sm">
|
|
265
|
-
strokeWidth
|
|
266
|
-
</td>
|
|
267
|
-
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
268
|
-
number | string
|
|
269
|
-
</td>
|
|
270
|
-
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
271
|
-
1.5
|
|
272
|
-
</td>
|
|
273
|
-
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
274
|
-
Stroke width of the chevron line
|
|
275
|
-
</td>
|
|
276
|
-
</tr>
|
|
277
|
-
<tr className="bg-fm-surface-secondary!">
|
|
278
|
-
<td className="text-fm-icon-info! px-6 py-4 font-mono text-sm">
|
|
279
|
-
...svgProps
|
|
280
|
-
</td>
|
|
281
|
-
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
282
|
-
SVGProps
|
|
283
|
-
</td>
|
|
284
|
-
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
285
|
-
-
|
|
286
|
-
</td>
|
|
287
|
-
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
288
|
-
All standard SVG element props
|
|
289
|
-
</td>
|
|
290
|
-
</tr>
|
|
291
|
-
</tbody>
|
|
292
|
-
</table>
|
|
293
|
-
</div>
|
|
294
|
-
</div>
|
|
295
|
-
|
|
296
|
-
{/* Size Variations */}
|
|
297
|
-
<div className="!space-y-8">
|
|
298
|
-
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
299
|
-
Size Variations
|
|
300
|
-
</h2>
|
|
301
|
-
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-8">
|
|
302
|
-
<div className="!space-y-6">
|
|
303
|
-
<div className="grid grid-cols-1 gap-8 md:grid-cols-2">
|
|
304
|
-
<div className="!space-y-4">
|
|
305
|
-
<h3 className="text-fm-icon-info! text-lg font-semibold">
|
|
306
|
-
Standard Sizes
|
|
307
|
-
</h3>
|
|
308
|
-
<div className="bg-fm-surface-secondary flex items-end gap-6 rounded-lg p-6">
|
|
309
|
-
<div className="text-center">
|
|
310
|
-
<ChevronRightIcon className="text-fm-icon-info !mx-auto mb-2 h-3 w-3" />
|
|
311
|
-
<span className="text-fm-tertiary text-xs">
|
|
312
|
-
12px
|
|
313
|
-
</span>
|
|
314
|
-
</div>
|
|
315
|
-
<div className="text-center">
|
|
316
|
-
<ChevronRightIcon className="text-fm-icon-info !mx-auto mb-2 h-4 w-4" />
|
|
317
|
-
<span className="text-fm-tertiary text-xs">
|
|
318
|
-
16px
|
|
319
|
-
</span>
|
|
320
|
-
</div>
|
|
321
|
-
<div className="text-center">
|
|
322
|
-
<ChevronRightIcon className="text-fm-icon-info !mx-auto mb-2 h-5 w-5" />
|
|
323
|
-
<span className="text-fm-tertiary text-xs">
|
|
324
|
-
20px
|
|
325
|
-
</span>
|
|
326
|
-
</div>
|
|
327
|
-
<div className="text-center">
|
|
328
|
-
<ChevronRightIcon className="text-fm-icon-info !mx-auto mb-2 h-6 w-6" />
|
|
329
|
-
<span className="text-fm-tertiary text-xs">
|
|
330
|
-
24px
|
|
331
|
-
</span>
|
|
332
|
-
</div>
|
|
333
|
-
<div className="text-center">
|
|
334
|
-
<ChevronRightIcon className="text-fm-icon-info !mx-auto mb-2 h-8 w-8" />
|
|
335
|
-
<span className="text-fm-tertiary text-xs">
|
|
336
|
-
32px
|
|
337
|
-
</span>
|
|
338
|
-
</div>
|
|
339
|
-
<div className="text-center">
|
|
340
|
-
<ChevronRightIcon className="text-fm-icon-info !mx-auto mb-2 h-12 w-12" />
|
|
341
|
-
<span className="text-fm-tertiary text-xs">
|
|
342
|
-
48px
|
|
343
|
-
</span>
|
|
344
|
-
</div>
|
|
345
|
-
</div>
|
|
346
|
-
</div>
|
|
347
|
-
|
|
348
|
-
<div className="!space-y-4">
|
|
349
|
-
<h3 className="text-fm-icon-info! text-lg font-semibold">
|
|
350
|
-
Code Example
|
|
351
|
-
</h3>
|
|
352
|
-
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
353
|
-
<pre className="text-fm-icon-info! overflow-x-auto text-sm">
|
|
354
|
-
{`// Small (16px)
|
|
355
|
-
<ChevronRightIcon className="h-4 w-4 " />
|
|
356
|
-
|
|
357
|
-
// Medium (24px)
|
|
358
|
-
<ChevronRightIcon className="h-6 w-6 " />
|
|
359
|
-
|
|
360
|
-
// Large (32px)
|
|
361
|
-
<ChevronRightIcon className="h-8 w-8 " />
|
|
362
|
-
|
|
363
|
-
// Custom size
|
|
364
|
-
<ChevronRightIcon width={40} height={40} />`}
|
|
365
|
-
</pre>
|
|
366
|
-
</div>
|
|
367
|
-
</div>
|
|
368
|
-
</div>
|
|
369
|
-
</div>
|
|
370
|
-
</div>
|
|
371
|
-
</div>
|
|
372
|
-
|
|
373
|
-
{/* Color Variations */}
|
|
374
|
-
<div className="!space-y-8">
|
|
375
|
-
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
376
|
-
Color Variations
|
|
377
|
-
</h2>
|
|
378
|
-
<div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
|
|
379
|
-
<div className="!space-y-4">
|
|
380
|
-
<h3 className="text-fm-icon-info! text-lg font-semibold">
|
|
381
|
-
Semantic Colors
|
|
382
|
-
</h3>
|
|
383
|
-
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
|
|
384
|
-
<div className="flex items-center gap-4">
|
|
385
|
-
<ChevronRightIcon className="text-fm-icon-info h-6 w-6" />
|
|
386
|
-
<div>
|
|
387
|
-
<div className="text-fm-icon-active text-sm font-medium">
|
|
388
|
-
Primary
|
|
389
|
-
</div>
|
|
390
|
-
<div className="text-fm-tertiary text-xs">
|
|
391
|
-
text-fm-icon-info
|
|
392
|
-
</div>
|
|
393
|
-
</div>
|
|
394
|
-
</div>
|
|
395
|
-
<div className="flex items-center gap-4">
|
|
396
|
-
<ChevronRightIcon className="text-fm-placeholder h-6 w-6" />
|
|
397
|
-
<div>
|
|
398
|
-
<div className="text-fm-icon-active text-sm font-medium">
|
|
399
|
-
Secondary
|
|
400
|
-
</div>
|
|
401
|
-
<div className="text-fm-tertiary text-xs">
|
|
402
|
-
text-fm-placeholder
|
|
403
|
-
</div>
|
|
404
|
-
</div>
|
|
405
|
-
</div>
|
|
406
|
-
<div className="flex items-center gap-4">
|
|
407
|
-
<ChevronRightIcon className="text-fm-icon-info h-6 w-6" />
|
|
408
|
-
<div>
|
|
409
|
-
<div className="text-fm-icon-active text-sm font-medium">
|
|
410
|
-
Accent
|
|
411
|
-
</div>
|
|
412
|
-
<div className="text-fm-tertiary text-xs">
|
|
413
|
-
text-fm-icon-info
|
|
414
|
-
</div>
|
|
415
|
-
</div>
|
|
416
|
-
</div>
|
|
417
|
-
<div className="flex items-center gap-4">
|
|
418
|
-
<ChevronRightIcon className="text-fm-placeholder h-6 w-6" />
|
|
419
|
-
<div>
|
|
420
|
-
<div className="text-fm-icon-active text-sm font-medium">
|
|
421
|
-
Disabled
|
|
422
|
-
</div>
|
|
423
|
-
<div className="text-fm-tertiary text-xs">
|
|
424
|
-
text-fm-placeholder
|
|
425
|
-
</div>
|
|
426
|
-
</div>
|
|
427
|
-
</div>
|
|
428
|
-
</div>
|
|
429
|
-
</div>
|
|
430
|
-
|
|
431
|
-
<div className="!space-y-4">
|
|
432
|
-
<h3 className="text-fm-icon-info! text-lg font-semibold">
|
|
433
|
-
Custom Colors
|
|
434
|
-
</h3>
|
|
435
|
-
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
436
|
-
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
437
|
-
{`// Using Tailwind classes with
|
|
438
|
-
<ChevronRightIcon className="h-6 w-6 text-indigo-400 " />
|
|
439
|
-
<ChevronRightIcon className="h-6 w-6 text-cyan-500 " />
|
|
440
|
-
|
|
441
|
-
// Using CSS custom properties
|
|
442
|
-
<ChevronRightIcon
|
|
443
|
-
className="h-6 w-6 "
|
|
444
|
-
style={{ color: 'var(--color-primary)' }}
|
|
445
|
-
/>
|
|
446
|
-
|
|
447
|
-
// Direct stroke prop
|
|
448
|
-
<ChevronRightIcon
|
|
449
|
-
width={24}
|
|
450
|
-
height={24}
|
|
451
|
-
stroke="#4f46e5"
|
|
452
|
-
/>`}
|
|
453
|
-
</pre>
|
|
454
|
-
</div>
|
|
455
|
-
</div>
|
|
456
|
-
</div>
|
|
56
|
+
}`,
|
|
57
|
+
livePreview: (
|
|
58
|
+
<div className="text-fm-primary font-fm-text flex w-48 items-center justify-between gap-2 text-sm">
|
|
59
|
+
<span>Episodes</span>
|
|
60
|
+
<ChevronRightIcon className="text-fm-icon-inactive h-4 w-4" />
|
|
457
61
|
</div>
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
<ChevronRightIcon className="h-4 w-4 " />
|
|
488
|
-
</button>
|
|
489
|
-
|
|
490
|
-
// Navigation button
|
|
491
|
-
<button className="flex items-center gap-2 bg-white/5 border border-white/20 px-4 py-2 rounded-lg">
|
|
492
|
-
Next Page
|
|
493
|
-
<ChevronRightIcon className="h-4 w-4 " />
|
|
494
|
-
</button>`}
|
|
495
|
-
</pre>
|
|
496
|
-
</div>
|
|
497
|
-
</div>
|
|
498
|
-
</div>
|
|
499
|
-
|
|
500
|
-
{/* Breadcrumb Navigation */}
|
|
501
|
-
<div className="!space-y-4">
|
|
502
|
-
<h3 className="text-fm-icon-info! text-lg font-semibold">
|
|
503
|
-
Breadcrumb Navigation
|
|
504
|
-
</h3>
|
|
505
|
-
<div className="!space-y-4">
|
|
506
|
-
<nav className="flex items-center gap-2 text-sm">
|
|
507
|
-
<button className="text-fm-icon-info hover:text-fm-icon-info">
|
|
508
|
-
Dashboard
|
|
509
|
-
</button>
|
|
510
|
-
<ChevronRightIcon className="text-fm-placeholder h-3 w-3" />
|
|
511
|
-
<button className="text-fm-icon-info hover:text-fm-icon-info">
|
|
512
|
-
Projects
|
|
513
|
-
</button>
|
|
514
|
-
<ChevronRightIcon className="text-fm-placeholder h-3 w-3" />
|
|
515
|
-
<span className="text-fm-icon-active">
|
|
516
|
-
Current Page
|
|
517
|
-
</span>
|
|
518
|
-
</nav>
|
|
519
|
-
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
520
|
-
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
521
|
-
{`// Breadcrumb with separators
|
|
522
|
-
<nav className="flex items-center gap-2 text-sm">
|
|
523
|
-
<button className="text-indigo-400 hover:text-indigo-300">
|
|
524
|
-
Dashboard
|
|
525
|
-
</button>
|
|
526
|
-
<ChevronRightIcon className="h-3 w-3 text-white/40 " />
|
|
527
|
-
<button className="text-indigo-400 hover:text-indigo-300">
|
|
528
|
-
Projects
|
|
529
|
-
</button>
|
|
530
|
-
<ChevronRightIcon className="h-3 w-3 text-white/40 " />
|
|
531
|
-
<span className="text-white">Current Page</span>
|
|
532
|
-
</nav>`}
|
|
533
|
-
</pre>
|
|
534
|
-
</div>
|
|
535
|
-
</div>
|
|
536
|
-
</div>
|
|
537
|
-
|
|
538
|
-
{/* Pagination */}
|
|
539
|
-
<div className="!space-y-4">
|
|
540
|
-
<h3 className="text-fm-icon-info! text-lg font-semibold">
|
|
541
|
-
Pagination Controls
|
|
542
|
-
</h3>
|
|
543
|
-
<div className="!space-y-4">
|
|
544
|
-
<div className="flex items-center gap-2">
|
|
545
|
-
<button className="border-fm-divider-primary bg-fm-surface-secondary text-fm-icon-active hover:bg-fm-surface-secondary flex items-center justify-center rounded-lg border p-2">
|
|
546
|
-
<ChevronRightIcon className="h-4 w-4 rotate-180" />
|
|
547
|
-
</button>
|
|
548
|
-
<div className="flex items-center gap-1">
|
|
549
|
-
<button className="border-fm-icon-info/30 bg-fm-icon-info/20 text-fm-icon-info rounded-lg border px-3 py-1">
|
|
550
|
-
1
|
|
551
|
-
</button>
|
|
552
|
-
<button className="text-fm-tertiary hover:bg-fm-surface-secondary rounded-lg px-3 py-1">
|
|
553
|
-
2
|
|
554
|
-
</button>
|
|
555
|
-
<button className="text-fm-tertiary hover:bg-fm-surface-secondary rounded-lg px-3 py-1">
|
|
556
|
-
3
|
|
557
|
-
</button>
|
|
558
|
-
</div>
|
|
559
|
-
<button className="border-fm-divider-primary bg-fm-surface-secondary text-fm-icon-active hover:bg-fm-surface-secondary flex items-center justify-center rounded-lg border p-2">
|
|
560
|
-
<ChevronRightIcon className="h-4 w-4" />
|
|
561
|
-
</button>
|
|
562
|
-
</div>
|
|
563
|
-
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
564
|
-
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
565
|
-
{`// Previous button (rotated right icon)
|
|
566
|
-
<button className="flex items-center justify-center bg-white/5 border border-white/20 p-2 rounded-lg">
|
|
567
|
-
<ChevronRightIcon className="h-4 w-4 rotate-180 " />
|
|
568
|
-
</button>
|
|
569
|
-
|
|
570
|
-
// Next button
|
|
571
|
-
<button className="flex items-center justify-center bg-white/5 border border-white/20 p-2 rounded-lg">
|
|
572
|
-
<ChevronRightIcon className="h-4 w-4 " />
|
|
573
|
-
</button>`}
|
|
574
|
-
</pre>
|
|
575
|
-
</div>
|
|
576
|
-
</div>
|
|
577
|
-
</div>
|
|
578
|
-
|
|
579
|
-
{/* Dropdown Menu */}
|
|
580
|
-
<div className="!space-y-4">
|
|
581
|
-
<h3 className="text-fm-icon-info! text-lg font-semibold">
|
|
582
|
-
Dropdown & Menu Items
|
|
583
|
-
</h3>
|
|
584
|
-
<div className="!space-y-4">
|
|
585
|
-
<div className="border-fm-divider-secondary bg-fm-surface-secondary w-64 rounded-lg border p-2">
|
|
586
|
-
<div className="space-y-1">
|
|
587
|
-
<button className="text-fm-icon-active hover:bg-fm-surface-secondary flex w-full items-center justify-between rounded px-3 py-2 text-left">
|
|
588
|
-
<span>Account Settings</span>
|
|
589
|
-
<ChevronRightIcon className="text-fm-tertiary h-4 w-4" />
|
|
590
|
-
</button>
|
|
591
|
-
<button className="text-fm-icon-active hover:bg-fm-surface-secondary flex w-full items-center justify-between rounded px-3 py-2 text-left">
|
|
592
|
-
<span>Privacy & Security</span>
|
|
593
|
-
<ChevronRightIcon className="text-fm-tertiary h-4 w-4" />
|
|
594
|
-
</button>
|
|
595
|
-
<button className="text-fm-icon-active hover:bg-fm-surface-secondary flex w-full items-center justify-between rounded px-3 py-2 text-left">
|
|
596
|
-
<span>Notifications</span>
|
|
597
|
-
<ChevronRightIcon className="text-fm-tertiary h-4 w-4" />
|
|
598
|
-
</button>
|
|
599
|
-
</div>
|
|
600
|
-
</div>
|
|
601
|
-
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
602
|
-
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
603
|
-
{`// Menu item with submenu indicator
|
|
604
|
-
<button className="flex w-full items-center justify-between rounded px-3 py-2 text-left hover:bg-white/10">
|
|
605
|
-
<span>Account Settings</span>
|
|
606
|
-
<ChevronRightIcon className="h-4 w-4 text-white/60 " />
|
|
607
|
-
</button>
|
|
608
|
-
|
|
609
|
-
// Navigation menu item
|
|
610
|
-
<button className="flex w-full items-center justify-between rounded px-3 py-2 text-left hover:bg-white/10">
|
|
611
|
-
<span>Privacy & Security</span>
|
|
612
|
-
<ChevronRightIcon className="h-4 w-4 text-white/60 " />
|
|
613
|
-
</button>`}
|
|
614
|
-
</pre>
|
|
615
|
-
</div>
|
|
616
|
-
</div>
|
|
617
|
-
</div>
|
|
618
|
-
</div>
|
|
619
|
-
</div>
|
|
620
|
-
|
|
621
|
-
{/* Accessibility */}
|
|
622
|
-
<div className="!space-y-8">
|
|
623
|
-
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
624
|
-
Accessibility Features
|
|
625
|
-
</h2>
|
|
626
|
-
<div className="grid grid-cols-1 gap-8 md:grid-cols-2">
|
|
627
|
-
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
|
|
628
|
-
<h3 className="text-fm-icon-positive! text-lg font-semibold">
|
|
629
|
-
✅ Built-in Features
|
|
630
|
-
</h3>
|
|
631
|
-
<ul className="text-fm-secondary! !space-y-2 text-sm">
|
|
632
|
-
<li className="text-fm-secondary!">
|
|
633
|
-
Uses Radix UI AccessibleIcon wrapper
|
|
634
|
-
</li>
|
|
635
|
-
<li className="text-fm-secondary!">
|
|
636
|
-
Provides screen reader label "Chevron Right icon"
|
|
637
|
-
</li>
|
|
638
|
-
<li className="text-fm-secondary!">
|
|
639
|
-
Supports keyboard navigation when interactive
|
|
640
|
-
</li>
|
|
641
|
-
<li className="text-fm-secondary!">
|
|
642
|
-
Maintains proper color contrast ratios
|
|
643
|
-
</li>
|
|
644
|
-
<li className="text-fm-secondary!">
|
|
645
|
-
Scales with user's font size preferences
|
|
646
|
-
</li>
|
|
647
|
-
</ul>
|
|
648
|
-
</div>
|
|
649
|
-
|
|
650
|
-
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
|
|
651
|
-
<h3 className="text-fm-icon-info! text-lg font-semibold">
|
|
652
|
-
💡 Best Practices
|
|
653
|
-
</h3>
|
|
654
|
-
<ul className="text-fm-secondary !space-y-2 text-sm">
|
|
655
|
-
<li className="text-fm-secondary!">
|
|
656
|
-
Use descriptive aria-labels for navigation buttons
|
|
657
|
-
</li>
|
|
658
|
-
<li className="text-fm-secondary!">
|
|
659
|
-
Provide keyboard shortcuts for common actions
|
|
660
|
-
</li>
|
|
661
|
-
<li className="text-fm-secondary!">
|
|
662
|
-
Ensure sufficient touch target size (44px minimum)
|
|
663
|
-
</li>
|
|
664
|
-
<li className="text-fm-secondary!">
|
|
665
|
-
Add focus states for interactive elements
|
|
666
|
-
</li>
|
|
667
|
-
<li className="text-fm-secondary!">
|
|
668
|
-
Consider disabled states when navigation unavailable
|
|
669
|
-
</li>
|
|
670
|
-
</ul>
|
|
671
|
-
</div>
|
|
672
|
-
</div>
|
|
673
|
-
|
|
674
|
-
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
|
|
675
|
-
<h3 className="text-fm-icon-info! mb-4 text-lg font-semibold">
|
|
676
|
-
Proper ARIA Implementation
|
|
677
|
-
</h3>
|
|
678
|
-
<div className="grid grid-cols-1 gap-6 lg:grid-cols-2">
|
|
679
|
-
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
680
|
-
<pre className="text-fm-icon-info! overflow-x-auto text-sm">
|
|
681
|
-
{`// Navigation button with proper ARIA
|
|
682
|
-
<button
|
|
683
|
-
aria-label="Go to next page"
|
|
684
|
-
className="flex items-center gap-2"
|
|
685
|
-
>
|
|
686
|
-
Next
|
|
687
|
-
<ChevronRightIcon className="h-4 w-4 " />
|
|
688
|
-
</button>
|
|
689
|
-
|
|
690
|
-
// Pagination with context
|
|
691
|
-
<button
|
|
692
|
-
aria-label="Go to next page"
|
|
693
|
-
disabled={currentPage === totalPages}
|
|
694
|
-
>
|
|
695
|
-
<ChevronRightIcon className="h-4 w-4 " />
|
|
696
|
-
</button>
|
|
697
|
-
|
|
698
|
-
// Menu item with submenu
|
|
699
|
-
<button
|
|
700
|
-
aria-label="Account Settings submenu"
|
|
701
|
-
aria-expanded={isOpen}
|
|
702
|
-
aria-haspopup="menu"
|
|
703
|
-
>
|
|
704
|
-
Account Settings
|
|
705
|
-
<ChevronRightIcon
|
|
706
|
-
className={cn(
|
|
707
|
-
"h-4 w-4 transition-transform ",
|
|
708
|
-
isOpen && "rotate-90"
|
|
709
|
-
)}
|
|
710
|
-
/>
|
|
711
|
-
</button>`}
|
|
712
|
-
</pre>
|
|
713
|
-
</div>
|
|
714
|
-
<div className="!space-y-4">
|
|
715
|
-
<p className="text-fm-secondary! text-sm">
|
|
716
|
-
Always provide context-appropriate ARIA labels for
|
|
717
|
-
navigation elements. The chevron direction should
|
|
718
|
-
indicate the intended navigation flow.
|
|
719
|
-
</p>
|
|
720
|
-
<div className="border-fm-icon-info/20 bg-fm-icon-info/10 rounded-lg border p-4">
|
|
721
|
-
<div className="text-fm-icon-info flex items-center gap-2 text-sm">
|
|
722
|
-
<ChevronRightIcon className="h-4 w-4" />
|
|
723
|
-
<span>
|
|
724
|
-
Consider the user's reading direction and expected
|
|
725
|
-
flow
|
|
726
|
-
</span>
|
|
727
|
-
</div>
|
|
728
|
-
</div>
|
|
729
|
-
</div>
|
|
730
|
-
</div>
|
|
731
|
-
</div>
|
|
732
|
-
</div>
|
|
733
|
-
|
|
734
|
-
{/* Related Icons */}
|
|
735
|
-
<div className="!space-y-8">
|
|
736
|
-
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
737
|
-
Related Icons
|
|
738
|
-
</h2>
|
|
739
|
-
<div className="grid grid-cols-2 gap-6 md:grid-cols-4">
|
|
740
|
-
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
|
|
741
|
-
<div className="bg-fm-secondary-500/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
|
|
742
|
-
<span className="text-fm-icon-active! !text-2xl">←</span>
|
|
743
|
-
</div>
|
|
744
|
-
<div>
|
|
745
|
-
<div className="text-fm-icon-active font-medium">
|
|
746
|
-
ChevronLeftIcon
|
|
747
|
-
</div>
|
|
748
|
-
<div className="text-fm-tertiary text-xs">
|
|
749
|
-
Left direction
|
|
750
|
-
</div>
|
|
751
|
-
</div>
|
|
752
|
-
</div>
|
|
753
|
-
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
|
|
754
|
-
<div className="bg-fm-secondary-500/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
|
|
755
|
-
<span className="text-fm-icon-active! !text-2xl">↑</span>
|
|
756
|
-
</div>
|
|
757
|
-
<div>
|
|
758
|
-
<div className="text-fm-icon-active font-medium">
|
|
759
|
-
ChevronUpIcon
|
|
760
|
-
</div>
|
|
761
|
-
<div className="text-fm-tertiary text-xs">
|
|
762
|
-
Upward direction
|
|
763
|
-
</div>
|
|
764
|
-
</div>
|
|
765
|
-
</div>
|
|
766
|
-
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
|
|
767
|
-
<div className="bg-fm-icon-info/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
|
|
768
|
-
<span className="text-fm-icon-active! !text-2xl">↓</span>
|
|
769
|
-
</div>
|
|
770
|
-
<div>
|
|
771
|
-
<div className="text-fm-icon-active font-medium">
|
|
772
|
-
ChevronDownIcon
|
|
773
|
-
</div>
|
|
774
|
-
<div className="text-fm-tertiary text-xs">
|
|
775
|
-
Downward direction
|
|
776
|
-
</div>
|
|
777
|
-
</div>
|
|
778
|
-
</div>
|
|
779
|
-
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
|
|
780
|
-
<div className="bg-fm-icon-info/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
|
|
781
|
-
<span className="text-fm-icon-active! !text-2xl">→</span>
|
|
782
|
-
</div>
|
|
783
|
-
<div>
|
|
784
|
-
<div className="text-fm-icon-active font-medium">
|
|
785
|
-
ArrowRightIcon
|
|
786
|
-
</div>
|
|
787
|
-
<div className="text-fm-tertiary text-xs">
|
|
788
|
-
Arrow variant
|
|
789
|
-
</div>
|
|
790
|
-
</div>
|
|
791
|
-
</div>
|
|
792
|
-
</div>
|
|
793
|
-
</div>
|
|
794
|
-
</div>
|
|
795
|
-
|
|
796
|
-
{/* Footer */}
|
|
797
|
-
<div className="border-fm-divider-secondary bg-fm-surface-secondary border-t backdrop-blur-xl">
|
|
798
|
-
<div className="!mx-auto max-w-7xl px-6 py-8">
|
|
799
|
-
<div className="!space-y-4 text-center">
|
|
800
|
-
<p className="text-fm-tertiary!">
|
|
801
|
-
ChevronRightIcon is part of the Aural UI icon library, built
|
|
802
|
-
with accessibility and intuitive navigation in mind.
|
|
803
|
-
</p>
|
|
804
|
-
<p className="text-fm-placeholder! text-sm">
|
|
805
|
-
All icons use Radix UI's AccessibleIcon for screen reader
|
|
806
|
-
compatibility and follow WCAG guidelines.
|
|
807
|
-
</p>
|
|
808
|
-
</div>
|
|
809
|
-
</div>
|
|
810
|
-
</div>
|
|
811
|
-
</div>
|
|
812
|
-
</>
|
|
62
|
+
),
|
|
63
|
+
}}
|
|
64
|
+
relatedIcons={[
|
|
65
|
+
{
|
|
66
|
+
name: "ChevronLeftIcon",
|
|
67
|
+
description: "Points left",
|
|
68
|
+
icon: ChevronLeftIcon,
|
|
69
|
+
accentToken: "info",
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
name: "ChevronDownIcon",
|
|
73
|
+
description: "Points downward",
|
|
74
|
+
icon: ChevronDownIcon,
|
|
75
|
+
accentToken: "positive",
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
name: "ChevronUpIcon",
|
|
79
|
+
description: "Points upward",
|
|
80
|
+
icon: ChevronUpIcon,
|
|
81
|
+
accentToken: "warning",
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
name: "AngleDownIcon",
|
|
85
|
+
description: "Softer angle chevron",
|
|
86
|
+
icon: AngleDownIcon,
|
|
87
|
+
accentToken: "negative",
|
|
88
|
+
},
|
|
89
|
+
]}
|
|
90
|
+
/>
|
|
813
91
|
),
|
|
814
92
|
},
|
|
815
93
|
},
|
|
816
94
|
tags: ["autodocs"],
|
|
817
95
|
argTypes: {
|
|
818
|
-
width: {
|
|
819
|
-
control: { type: "range", min: 8, max: 96, step: 2 },
|
|
820
|
-
description: "Width of the icon in pixels",
|
|
821
|
-
withAccessibility: {
|
|
822
|
-
control: "boolean",
|
|
823
|
-
description: "Whether to wrap the icon with accessibility features",
|
|
824
|
-
},
|
|
825
|
-
},
|
|
826
|
-
height: {
|
|
827
|
-
control: { type: "range", min: 8, max: 96, step: 2 },
|
|
828
|
-
description: "Height of the icon in pixels",
|
|
829
|
-
},
|
|
830
|
-
stroke: {
|
|
831
|
-
control: "color",
|
|
832
|
-
description: "Stroke color of the icon",
|
|
833
|
-
},
|
|
834
|
-
strokeWidth: {
|
|
835
|
-
control: { type: "range", min: 0.5, max: 3, step: 0.1 },
|
|
836
|
-
description: "Stroke width of the chevron line",
|
|
837
|
-
},
|
|
838
96
|
className: {
|
|
839
97
|
control: "text",
|
|
840
|
-
description: "CSS classes
|
|
98
|
+
description: "CSS classes including size and color token",
|
|
99
|
+
},
|
|
100
|
+
withAccessibility: {
|
|
101
|
+
control: "boolean",
|
|
102
|
+
description: "Wrap with accessibility label",
|
|
841
103
|
},
|
|
842
104
|
},
|
|
843
105
|
}
|
|
@@ -845,211 +107,106 @@ function NextButton() {
|
|
|
845
107
|
export default meta
|
|
846
108
|
type Story = StoryObj<typeof ChevronRightIcon>
|
|
847
109
|
|
|
848
|
-
// Story parameters for consistent dark theme
|
|
849
|
-
const storyParameters = {
|
|
850
|
-
backgrounds: {
|
|
851
|
-
default: "dark",
|
|
852
|
-
values: [
|
|
853
|
-
{ name: "dark", value: "var(--color-fm-surface-primary)" },
|
|
854
|
-
{ name: "darker", value: "var(--color-fm-neutral-0)" },
|
|
855
|
-
],
|
|
856
|
-
},
|
|
857
|
-
}
|
|
858
|
-
|
|
859
110
|
export const Default: Story = {
|
|
860
111
|
args: {
|
|
861
|
-
|
|
862
|
-
height: 24,
|
|
863
|
-
className: "text-fm-icon-info ",
|
|
112
|
+
className: "h-6 w-6 text-fm-icon-active",
|
|
864
113
|
withAccessibility: true,
|
|
865
114
|
},
|
|
866
|
-
parameters: storyParameters,
|
|
867
115
|
render: (args) => (
|
|
868
|
-
<
|
|
116
|
+
<IconDefaultCanvas>
|
|
869
117
|
<ChevronRightIcon {...args} />
|
|
870
|
-
</
|
|
118
|
+
</IconDefaultCanvas>
|
|
871
119
|
),
|
|
872
120
|
}
|
|
873
121
|
|
|
874
122
|
export const SizeVariations: Story = {
|
|
875
|
-
|
|
876
|
-
...storyParameters,
|
|
877
|
-
docs: {
|
|
878
|
-
description: {
|
|
879
|
-
story:
|
|
880
|
-
"ChevronRightIcon in different sizes, from small UI elements to large displays.",
|
|
881
|
-
},
|
|
882
|
-
},
|
|
883
|
-
},
|
|
884
|
-
render: () => (
|
|
885
|
-
<div className="from-fm-surface-primary to-fm-surface-secondary flex h-64 min-h-dvh items-center justify-center gap-8 rounded-lg bg-linear-to-br p-8">
|
|
886
|
-
<div className="text-center">
|
|
887
|
-
<ChevronRightIcon className="text-fm-icon-info !mx-auto mb-2 h-3 w-3" />
|
|
888
|
-
<span className="text-fm-tertiary text-xs">12px</span>
|
|
889
|
-
</div>
|
|
890
|
-
<div className="text-center">
|
|
891
|
-
<ChevronRightIcon className="text-fm-icon-info !mx-auto mb-2 h-4 w-4" />
|
|
892
|
-
<span className="text-fm-tertiary text-xs">16px</span>
|
|
893
|
-
</div>
|
|
894
|
-
<div className="text-center">
|
|
895
|
-
<ChevronRightIcon className="text-fm-icon-info !mx-auto mb-2 h-5 w-5" />
|
|
896
|
-
<span className="text-fm-tertiary text-xs">20px</span>
|
|
897
|
-
</div>
|
|
898
|
-
<div className="text-center">
|
|
899
|
-
<ChevronRightIcon className="text-fm-icon-info !mx-auto mb-2 h-6 w-6" />
|
|
900
|
-
<span className="text-fm-tertiary text-xs">24px</span>
|
|
901
|
-
</div>
|
|
902
|
-
<div className="text-center">
|
|
903
|
-
<ChevronRightIcon className="text-fm-icon-info !mx-auto mb-2 h-8 w-8" />
|
|
904
|
-
<span className="text-fm-tertiary text-xs">32px</span>
|
|
905
|
-
</div>
|
|
906
|
-
<div className="text-center">
|
|
907
|
-
<ChevronRightIcon className="text-fm-icon-info !mx-auto mb-2 h-12 w-12" />
|
|
908
|
-
<span className="text-fm-tertiary text-xs">48px</span>
|
|
909
|
-
</div>
|
|
910
|
-
</div>
|
|
911
|
-
),
|
|
123
|
+
render: () => <IconSizeVariations icon={ChevronRightIcon} />,
|
|
912
124
|
}
|
|
913
125
|
|
|
914
126
|
export const ColorVariations: Story = {
|
|
915
|
-
|
|
916
|
-
|
|
917
|
-
|
|
918
|
-
|
|
919
|
-
story:
|
|
920
|
-
"ChevronRightIcon in different semantic colors for various forward navigation contexts.",
|
|
921
|
-
},
|
|
922
|
-
},
|
|
923
|
-
},
|
|
127
|
+
render: () => <IconColorVariations icon={ChevronRightIcon} />,
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
export const DirectionalVariations: Story = {
|
|
924
131
|
render: () => (
|
|
925
|
-
<
|
|
926
|
-
|
|
927
|
-
|
|
928
|
-
|
|
929
|
-
|
|
930
|
-
|
|
931
|
-
|
|
932
|
-
|
|
933
|
-
|
|
934
|
-
|
|
935
|
-
|
|
936
|
-
|
|
937
|
-
<div className="text-fm-icon-active text-sm font-medium">Secondary</div>
|
|
938
|
-
<div className="text-fm-placeholder text-xs">text-fm-placeholder</div>
|
|
939
|
-
</div>
|
|
940
|
-
<div className="text-center">
|
|
941
|
-
<div className="border-fm-icon-info/30 bg-fm-icon-info/20 !mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border">
|
|
942
|
-
<ChevronRightIcon className="text-fm-icon-info h-8 w-8" />
|
|
943
|
-
</div>
|
|
944
|
-
<div className="text-fm-icon-active text-sm font-medium">Accent</div>
|
|
945
|
-
<div className="text-fm-icon-info text-xs">text-fm-icon-info</div>
|
|
946
|
-
</div>
|
|
947
|
-
<div className="text-center">
|
|
948
|
-
<div className="border-fm-divider-secondary bg-fm-surface-secondary !mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border">
|
|
949
|
-
<ChevronRightIcon className="text-fm-placeholder h-8 w-8" />
|
|
950
|
-
</div>
|
|
951
|
-
<div className="text-fm-icon-active text-sm font-medium">Disabled</div>
|
|
952
|
-
<div className="text-fm-placeholder text-xs">text-fm-placeholder</div>
|
|
953
|
-
</div>
|
|
954
|
-
</div>
|
|
132
|
+
<IconDirectionalVariations
|
|
133
|
+
icon={ChevronRightIcon}
|
|
134
|
+
directions={[
|
|
135
|
+
{ label: "Right", className: "h-8 w-8 text-fm-icon-active" },
|
|
136
|
+
{
|
|
137
|
+
label: "Down",
|
|
138
|
+
className: "h-8 w-8 text-fm-icon-active rotate-90",
|
|
139
|
+
},
|
|
140
|
+
{ label: "Left", className: "h-8 w-8 text-fm-icon-active rotate-180" },
|
|
141
|
+
{ label: "Up", className: "h-8 w-8 text-fm-icon-active -rotate-90" },
|
|
142
|
+
]}
|
|
143
|
+
/>
|
|
955
144
|
),
|
|
956
145
|
}
|
|
957
146
|
|
|
958
147
|
export const UsageExamples: Story = {
|
|
959
|
-
parameters: {
|
|
960
|
-
...storyParameters,
|
|
961
|
-
docs: {
|
|
962
|
-
description: {
|
|
963
|
-
story:
|
|
964
|
-
"Real-world usage examples showing ChevronRightIcon in different forward navigation contexts.",
|
|
965
|
-
},
|
|
966
|
-
},
|
|
967
|
-
},
|
|
968
148
|
render: () => (
|
|
969
|
-
<
|
|
970
|
-
|
|
971
|
-
|
|
972
|
-
|
|
973
|
-
|
|
974
|
-
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
|
|
979
|
-
|
|
980
|
-
|
|
981
|
-
</button>
|
|
982
|
-
</div>
|
|
983
|
-
</div>
|
|
984
|
-
|
|
985
|
-
{/* Pagination */}
|
|
986
|
-
<div className="!space-y-2">
|
|
987
|
-
<h3 className="text-fm-icon-active text-sm font-medium">
|
|
988
|
-
Pagination Controls
|
|
989
|
-
</h3>
|
|
990
|
-
<div className="flex items-center gap-2">
|
|
991
|
-
<button className="border-fm-divider-primary bg-fm-surface-secondary text-fm-icon-active hover:bg-fm-surface-secondary flex items-center justify-center rounded-lg border p-2">
|
|
992
|
-
<ChevronRightIcon className="h-4 w-4 rotate-180" />
|
|
993
|
-
</button>
|
|
994
|
-
<div className="flex items-center gap-1">
|
|
995
|
-
<button className="border-fm-icon-info/30 bg-fm-icon-info/20 text-fm-icon-info rounded-lg border px-3 py-1">
|
|
996
|
-
1
|
|
997
|
-
</button>
|
|
998
|
-
<button className="text-fm-tertiary hover:bg-fm-surface-secondary rounded-lg px-3 py-1">
|
|
999
|
-
2
|
|
1000
|
-
</button>
|
|
1001
|
-
<button className="text-fm-tertiary hover:bg-fm-surface-secondary rounded-lg px-3 py-1">
|
|
1002
|
-
3
|
|
149
|
+
<IconUsageCanvas>
|
|
150
|
+
<IconUsageSection title="List Navigation">
|
|
151
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary w-full max-w-sm space-y-px overflow-hidden rounded-xl border">
|
|
152
|
+
{["My Podcasts", "Downloaded", "History"].map((item) => (
|
|
153
|
+
<button
|
|
154
|
+
key={item}
|
|
155
|
+
className="border-fm-divider-secondary flex w-full items-center justify-between border-b px-4 py-3 last:border-b-0"
|
|
156
|
+
>
|
|
157
|
+
<span className="text-fm-primary font-fm-text text-sm">
|
|
158
|
+
{item}
|
|
159
|
+
</span>
|
|
160
|
+
<ChevronRightIcon className="text-fm-icon-inactive h-4 w-4" />
|
|
1003
161
|
</button>
|
|
162
|
+
))}
|
|
163
|
+
</div>
|
|
164
|
+
</IconUsageSection>
|
|
165
|
+
|
|
166
|
+
<IconUsageSection title="Breadcrumb Separator">
|
|
167
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary flex w-full max-w-sm items-center gap-1 rounded-xl border px-4 py-3">
|
|
168
|
+
<span className="text-fm-secondary font-fm-text text-sm">Home</span>
|
|
169
|
+
<ChevronRightIcon className="text-fm-icon-inactive h-3 w-3" />
|
|
170
|
+
<span className="text-fm-secondary font-fm-text text-sm">
|
|
171
|
+
Library
|
|
172
|
+
</span>
|
|
173
|
+
<ChevronRightIcon className="text-fm-icon-inactive h-3 w-3" />
|
|
174
|
+
<span className="text-fm-primary font-fm-text text-sm">Podcasts</span>
|
|
175
|
+
</div>
|
|
176
|
+
</IconUsageSection>
|
|
177
|
+
|
|
178
|
+
<IconUsageSection title="Expandable Row">
|
|
179
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary w-full max-w-sm overflow-hidden rounded-xl border">
|
|
180
|
+
<div className="border-fm-divider-secondary flex items-center justify-between border-b px-4 py-3">
|
|
181
|
+
<span className="text-fm-primary font-fm-text text-sm font-medium">
|
|
182
|
+
Season 1
|
|
183
|
+
</span>
|
|
184
|
+
<ChevronRightIcon className="text-fm-icon-active h-4 w-4 rotate-90 transition-transform" />
|
|
1004
185
|
</div>
|
|
1005
|
-
|
|
1006
|
-
<
|
|
1007
|
-
|
|
186
|
+
{["Episode 1", "Episode 2"].map((ep) => (
|
|
187
|
+
<div
|
|
188
|
+
key={ep}
|
|
189
|
+
className="border-fm-divider-secondary border-b px-4 py-2.5 last:border-b-0"
|
|
190
|
+
>
|
|
191
|
+
<span className="text-fm-secondary font-fm-text text-sm">
|
|
192
|
+
{ep}
|
|
193
|
+
</span>
|
|
194
|
+
</div>
|
|
195
|
+
))}
|
|
1008
196
|
</div>
|
|
1009
|
-
</
|
|
1010
|
-
|
|
1011
|
-
{/* Breadcrumb */}
|
|
1012
|
-
<div className="!space-y-2">
|
|
1013
|
-
<h3 className="text-fm-icon-active text-sm font-medium">
|
|
1014
|
-
Breadcrumb Navigation
|
|
1015
|
-
</h3>
|
|
1016
|
-
<nav className="flex items-center gap-2 text-sm">
|
|
1017
|
-
<button className="text-fm-icon-info hover:text-fm-icon-info">
|
|
1018
|
-
Dashboard
|
|
1019
|
-
</button>
|
|
1020
|
-
<ChevronRightIcon className="text-fm-placeholder h-3 w-3" />
|
|
1021
|
-
<button className="text-fm-icon-info hover:text-fm-icon-info">
|
|
1022
|
-
Projects
|
|
1023
|
-
</button>
|
|
1024
|
-
<ChevronRightIcon className="text-fm-placeholder h-3 w-3" />
|
|
1025
|
-
<span className="text-fm-icon-active">Current Page</span>
|
|
1026
|
-
</nav>
|
|
1027
|
-
</div>
|
|
1028
|
-
</div>
|
|
197
|
+
</IconUsageSection>
|
|
198
|
+
</IconUsageCanvas>
|
|
1029
199
|
),
|
|
1030
200
|
}
|
|
1031
201
|
|
|
1032
202
|
export const Playground: Story = {
|
|
1033
|
-
parameters: {
|
|
1034
|
-
...storyParameters,
|
|
1035
|
-
docs: {
|
|
1036
|
-
description: {
|
|
1037
|
-
story:
|
|
1038
|
-
"Interactive playground to experiment with different ChevronRightIcon configurations.",
|
|
1039
|
-
},
|
|
1040
|
-
},
|
|
1041
|
-
},
|
|
1042
203
|
args: {
|
|
1043
|
-
|
|
1044
|
-
|
|
1045
|
-
className: "text-fm-icon-info ",
|
|
1046
|
-
strokeWidth: 1.5,
|
|
204
|
+
className: "h-8 w-8 text-fm-icon-active",
|
|
205
|
+
withAccessibility: true,
|
|
1047
206
|
},
|
|
1048
207
|
render: (args) => (
|
|
1049
|
-
<
|
|
1050
|
-
<
|
|
1051
|
-
|
|
1052
|
-
</div>
|
|
1053
|
-
</div>
|
|
208
|
+
<IconPlaygroundCanvas>
|
|
209
|
+
<ChevronRightIcon {...args} />
|
|
210
|
+
</IconPlaygroundCanvas>
|
|
1054
211
|
),
|
|
1055
212
|
}
|