aural-ui 3.0.7 → 4.1.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/dist/components/aspect-ratio/AspectRatio.stories.tsx +290 -1199
- package/dist/components/avatar/Avatar.stories.tsx +235 -237
- 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/button/index.tsx +7 -7
- 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 -620
- 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 +533 -856
- package/dist/components/dialog/Dialog.stories.tsx +505 -949
- package/dist/components/divider/Divider.stories.tsx +265 -502
- package/dist/components/dot-loader/DotLoader.stories.tsx +256 -257
- package/dist/components/drawer/Drawer.stories.tsx +659 -993
- package/dist/components/drawer/index.tsx +3 -3
- package/dist/components/dropdown/Dropdown.stories.tsx +643 -1018
- 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 -1221
- 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 +485 -822
- package/dist/components/marquee/Marquee.stories.tsx +356 -694
- package/dist/components/otp-inputs/OtpInputs.stories.tsx +352 -410
- package/dist/components/overlay/Overlay.stories.tsx +452 -818
- package/dist/components/overlay/index.tsx +4 -4
- package/dist/components/pagination/Pagination.stories.tsx +721 -210
- package/dist/components/popover/Popover.stories.tsx +484 -873
- package/dist/components/radio/Radio.stories.tsx +432 -124
- package/dist/components/resizable/Resizable.stories.tsx +496 -752
- package/dist/components/scroll-area/ScrollArea.stories.tsx +384 -1006
- package/dist/components/search/Search.stories.tsx +314 -575
- package/dist/components/select/Select.stories.tsx +684 -787
- package/dist/components/sheet/Sheet.stories.tsx +671 -936
- package/dist/components/skelton/Skelton.stories.tsx +230 -764
- package/dist/components/slider/Slider.stories.tsx +384 -737
- 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 -914
- package/dist/components/tabs/Tabs.stories.tsx +459 -1400
- 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 -148
- package/dist/components/toast/Toast.stories.tsx +452 -1333
- package/dist/components/toggle/Toggle.stories.tsx +488 -909
- package/dist/components/tooltip/Tooltip.stories.tsx +344 -1372
- 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 +226 -1013
- package/dist/icons/alert-icon/AlertIcon.stories.tsx +109 -929
- package/dist/icons/all-icons.tsx +124 -87
- package/dist/icons/angle-down-icon/AngleDownIcon.stories.tsx +140 -971
- package/dist/icons/apple-logo-icon/AppleLogoIcon.stories.tsx +148 -888
- package/dist/icons/arrow-box-left-icon/ArrowBoxLeftIcon.stories.tsx +135 -1019
- package/dist/icons/arrow-corner-up-left-icon/ArrowCornerUpLeftIcon.stories.tsx +137 -953
- package/dist/icons/arrow-corner-up-right-icon/ArrowCornerUpRightIcon.stories.tsx +138 -997
- package/dist/icons/arrow-left-icon/ArrowLeftIcon.stories.tsx +136 -942
- package/dist/icons/arrow-right-icon/ArrowRightIcon.stories.tsx +148 -1092
- package/dist/icons/arrow-right-up-icon/ArrowRightUpIcon.stories.tsx +146 -1211
- package/dist/icons/art-board-icon/ArtBoardIcon.stories.tsx +126 -615
- package/dist/icons/audio-bar-icon/AudioBarIcon.stories.tsx +144 -1164
- package/dist/icons/backward-ten-seconds-icon/BackwardTenSecondsIcon.stories.tsx +167 -985
- package/dist/icons/bubble-check-icon/BubbleCheckIcon.stories.tsx +122 -1179
- package/dist/icons/bubble-crossed-icon/BubbleCrossedIcon.stories.tsx +124 -1168
- package/dist/icons/bubble-sparkle-icon/BubbleSparkleIcon.stories.tsx +119 -850
- package/dist/icons/camera-icon/CameraIcon.stories.tsx +112 -1213
- package/dist/icons/capital-a-letter-icon/CapitalALetterIcon.stories.tsx +117 -934
- package/dist/icons/chevron-double-left-icon/ChevronDoubleLeftIcon.stories.tsx +160 -961
- package/dist/icons/chevron-double-right-icon/ChevronDoubleRightIcon.stories.tsx +163 -961
- package/dist/icons/chevron-down-icon/ChevronDownIcon.stories.tsx +144 -942
- package/dist/icons/chevron-left-icon/ChevronLeftIcon.stories.tsx +129 -966
- package/dist/icons/chevron-right-icon/ChevronRightIcon.stories.tsx +147 -964
- package/dist/icons/chevron-up-icon/ChevronUpIcon.stories.tsx +145 -975
- package/dist/icons/circle-tick-icon/CircleTickIcon.stories.tsx +150 -1142
- package/dist/icons/circular-play-icon/CircularPlayIcon.stories.tsx +114 -461
- package/dist/icons/coin-icon/CoinIcon.stories.tsx +124 -1322
- package/dist/icons/coin-toons-icon/CoinToonsIcon.stories.tsx +117 -1318
- package/dist/icons/column-wide-add-icon/ColumnWideAddIcon.stories.tsx +114 -903
- package/dist/icons/command-icon/CommandIcon.stories.tsx +127 -1042
- package/dist/icons/copy-icon/CopyIcon.stories.tsx +123 -962
- package/dist/icons/cross-circle-icon/CrossCircleIcon.stories.tsx +147 -999
- package/dist/icons/cross-icon/CrossIcon.stories.tsx +139 -960
- package/dist/icons/download-icon/DownloadIcon.stories.tsx +126 -820
- package/dist/icons/edit-big-icon/EditBigIcon.stories.tsx +124 -1031
- package/dist/icons/email-icon/EmailIcon.stories.tsx +115 -936
- package/dist/icons/expand-icon/ExpandIcon.stories.tsx +112 -1111
- package/dist/icons/eye-close-icon/EyeCloseIcon.stories.tsx +144 -1025
- package/dist/icons/eye-open-icon/EyeOpenIcon.stories.tsx +143 -1036
- package/dist/icons/feature-shine-icon/FeatureShineIcon.stories.tsx +127 -1011
- package/dist/icons/file-chart-icon/FileChartIcon.stories.tsx +126 -1056
- package/dist/icons/file-text-icon/FileTextIcon.stories.tsx +125 -614
- package/dist/icons/filter-bar-row-icon/FilterBarRowIcon.stories.tsx +119 -1050
- package/dist/icons/forward-ten-seconds-icon/ForwardTenSecondsIcon.stories.tsx +169 -989
- package/dist/icons/git-branch-icon/GitBranchIcon.stories.tsx +115 -1145
- package/dist/icons/git-fork-icon/GitForkIcon.stories.tsx +115 -1122
- package/dist/icons/globe-icon/GlobeIcon.stories.tsx +130 -313
- package/dist/icons/google-logo-icon/GoogleLogoIcon.stories.tsx +145 -940
- package/dist/icons/grip-vertical-icon/GripVerticalIcon.stories.tsx +119 -1174
- package/dist/icons/head-icon/HeadIcon.stories.tsx +111 -916
- package/dist/icons/heart-icon/HeartIcon.stories.tsx +120 -1019
- package/dist/icons/image-avatar-sparkle-icon/ImageAvatarSparkleIcon.stories.tsx +119 -683
- package/dist/icons/image-icon/ImageIcon.stories.tsx +105 -1121
- package/dist/icons/import-folder-icon/ImportFolderIcon.stories.tsx +111 -1192
- package/dist/icons/import-left-arrow-folder-icon/ImportLeftArrowFolderIcon.stories.tsx +136 -1256
- package/dist/icons/indian-flag-icon/IndianFlagIcon.stories.tsx +159 -962
- package/dist/icons/instagram-icon/InstagramIcon.stories.tsx +161 -1385
- package/dist/icons/layout-column-icon/LayoutColumnIcon.stories.tsx +124 -972
- package/dist/icons/layout-left-icon/LayoutLeftIcon.stories.tsx +119 -948
- package/dist/icons/layout-right-icon/LayoutRightIcon.stories.tsx +119 -942
- package/dist/icons/light-bulb-simple-icon/LightBulbSimpleIcon.stories.tsx +108 -1215
- package/dist/icons/linked-in-icon/LinkedInIcon.stories.tsx +154 -1517
- package/dist/icons/magic-book-icon/MagicBookIcon.stories.tsx +110 -1188
- package/dist/icons/magic-edit-icon/MagicEditIcon.stories.tsx +119 -678
- package/dist/icons/maintenance-icon/MaintenanceIcon.stories.tsx +123 -1184
- package/dist/icons/message-icon/MessageIcon.stories.tsx +114 -538
- package/dist/icons/minimize-icon/MinimizeIcon.stories.tsx +116 -1158
- package/dist/icons/moon-icon/MoonIcon.stories.tsx +120 -536
- package/dist/icons/move-horizontal-icon/MoveHorizontalIcon.stories.tsx +109 -1184
- package/dist/icons/move-vertical-icon/MoveVerticalIcon.stories.tsx +115 -1134
- package/dist/icons/musical-note-icon/MusicalNoteIcon.stories.tsx +119 -971
- package/dist/icons/notepad-icon/NotepadIcon.stories.tsx +111 -1100
- package/dist/icons/notes-icon/NotesIcon.stories.tsx +119 -1101
- package/dist/icons/page-search-icon/PageSearchIcon.stories.tsx +109 -1111
- package/dist/icons/page-text-icon/PageTextIcon.stories.tsx +122 -684
- package/dist/icons/paint-roll-icon/PaintRollIcon.stories.tsx +113 -954
- package/dist/icons/paper-plane-icon/PaperPlaneIcon.stories.tsx +112 -877
- package/dist/icons/pause-icon/PauseIcon.stories.tsx +113 -1000
- package/dist/icons/pencil-icon/PencilIcon.stories.tsx +115 -1070
- package/dist/icons/phone-icon/PhoneIcon.stories.tsx +115 -978
- package/dist/icons/plus-icon/PlusIcon.stories.tsx +106 -1093
- package/dist/icons/pocket-studio-icon/PocketStudioIcon.stories.tsx +107 -829
- package/dist/icons/scroll-down-icon/ScrollDownIcon.stories.tsx +102 -469
- package/dist/icons/search-icon/SearchIcon.stories.tsx +111 -1124
- package/dist/icons/setting-icon/SettingIcon.stories.tsx +107 -970
- package/dist/icons/share-icon/ShareIcon.stories.tsx +120 -1025
- package/dist/icons/shield-icon/ShieldIcon.stories.tsx +117 -931
- package/dist/icons/site-logo-icon/SiteLogoIcon.stories.tsx +137 -1104
- package/dist/icons/skip-backward-icon/SkipBackwardIcon.stories.tsx +172 -982
- package/dist/icons/skip-forward-icon/SkipForwardIcon.stories.tsx +164 -983
- package/dist/icons/sparkles-soft-icon/SparklesSoftIcon.stories.tsx +105 -958
- package/dist/icons/spinner-gradient-icon/SpinnerGradientIcon.stories.tsx +158 -580
- package/dist/icons/spinner-gradient-icon/index.tsx +6 -1
- package/dist/icons/spinner-solid-icon/SpinnerSolidIcon.stories.tsx +158 -587
- package/dist/icons/spinner-solid-icon/index.tsx +6 -1
- package/dist/icons/spinner-solid-neutral-icon/SpinnerSolidINeutralcon.stories.tsx +146 -682
- package/dist/icons/spinner-solid-neutral-icon/index.tsx +1 -1
- package/dist/icons/star-icon/StarIcon.stories.tsx +124 -904
- package/dist/icons/store-coin-icon/StoreCoinIcon.stories.tsx +112 -964
- package/dist/icons/suggestion-icon/SuggestionIcon.stories.tsx +116 -852
- package/dist/icons/sun-icon/SunIcon.stories.tsx +120 -831
- package/dist/icons/text-color-icon/TextColorIcon.stories.tsx +116 -950
- package/dist/icons/text-indicator-icon/TextIndicatorIcon.stories.tsx +123 -980
- package/dist/icons/threads-icon/ThreadsIcon.stories.tsx +156 -1427
- package/dist/icons/tick-circle-icon/TickCircleIcon.stories.tsx +146 -1142
- package/dist/icons/tick-icon/TickIcon.stories.tsx +145 -1276
- package/dist/icons/trash-icon/TrashIcon.stories.tsx +108 -933
- package/dist/icons/twitter-x-icon/TwitterXIcon.stories.tsx +157 -1402
- package/dist/icons/upload-icon/UploadIcon.stories.tsx +115 -889
- package/dist/icons/vertical-menu-icon/VerticalMenuIcon.stories.tsx +118 -984
- package/dist/icons/video-play-list-icon/VideoPlaylistIcon.stories.tsx +125 -1049
- package/dist/icons/voice-playing-icon/VoicePlayingIcon.stories.tsx +123 -1356
- package/dist/icons/volume-full-icon/VolumeFullIcon.stories.tsx +110 -1171
- package/dist/icons/volume-half-icon/VolumeHalfIcon.stories.tsx +112 -1093
- package/dist/icons/volume-off-icon/VolumeOffIcon.stories.tsx +115 -1087
- package/dist/icons/warning-icon/WarningIcon.stories.tsx +122 -1046
- package/dist/icons/youtube-icon/YoutubeIcon.stories.tsx +161 -936
- package/dist/index.cjs +84 -84
- package/dist/index.js +84 -84
- package/dist/styles/aural-all-theme.css +1222 -0
- package/dist/styles/{aural-theme.css → aural-dark-theme.css} +15 -3
- package/dist/styles/aural-light-theme.css +1047 -0
- package/package.json +1 -1
|
@@ -1,512 +1,103 @@
|
|
|
1
1
|
import React from "react"
|
|
2
2
|
import type { Meta, StoryObj } from "@storybook/react-vite"
|
|
3
3
|
|
|
4
|
+
import { CopyIcon } from "src/ui/icons/copy-icon"
|
|
5
|
+
import { FileChartIcon } from "src/ui/icons/file-chart-icon"
|
|
6
|
+
import { NotepadIcon } from "src/ui/icons/notepad-icon"
|
|
7
|
+
import { PageTextIcon } from "src/ui/icons/page-text-icon"
|
|
8
|
+
import {
|
|
9
|
+
IconColorVariations,
|
|
10
|
+
IconDefaultCanvas,
|
|
11
|
+
IconPlaygroundCanvas,
|
|
12
|
+
IconSizeVariations,
|
|
13
|
+
IconUsageCanvas,
|
|
14
|
+
IconUsageSection,
|
|
15
|
+
} from "src/ui/story-spec/icons/icon-story-canvas"
|
|
16
|
+
import { AuralIconDocsPage } from "src/ui/story-spec/icons/icon-story-docs-page"
|
|
17
|
+
|
|
4
18
|
import { FileTextIcon } from "."
|
|
5
|
-
import { ArrowRightUpIcon } from "../arrow-right-up-icon"
|
|
6
19
|
|
|
7
20
|
const meta: Meta<typeof FileTextIcon> = {
|
|
8
21
|
title: "Icons/FileTextIcon",
|
|
9
22
|
component: FileTextIcon,
|
|
10
23
|
parameters: {
|
|
11
|
-
layout: "
|
|
24
|
+
layout: "fullscreen",
|
|
12
25
|
backgrounds: {
|
|
13
26
|
default: "dark",
|
|
14
27
|
values: [
|
|
15
|
-
{ name: "dark", value: "
|
|
16
|
-
{ name: "darker", value: "
|
|
17
|
-
{ name: "light", value: "
|
|
28
|
+
{ name: "dark", value: "var(--color-fm-surface-primary)" },
|
|
29
|
+
{ name: "darker", value: "var(--color-fm-neutral-0)" },
|
|
30
|
+
{ name: "light", value: "var(--color-fm-neutral-1100)" },
|
|
18
31
|
],
|
|
19
32
|
},
|
|
20
33
|
docs: {
|
|
21
|
-
description: {
|
|
22
|
-
component: "A document icon representing text files and documents.",
|
|
23
|
-
},
|
|
24
|
-
canvas: {
|
|
25
|
-
sourceState: "shown",
|
|
26
|
-
},
|
|
27
34
|
page: () => (
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
{
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
}
|
|
43
|
-
.docs-story {
|
|
44
|
-
background: transparent !important;
|
|
45
|
-
}
|
|
46
|
-
.sbdocs {
|
|
47
|
-
background: transparent !important;
|
|
48
|
-
}
|
|
49
|
-
body {
|
|
50
|
-
background: #0a0a0a !important;
|
|
51
|
-
}
|
|
52
|
-
#storybook-docs {
|
|
53
|
-
background: #0a0a0a !important;
|
|
54
|
-
}
|
|
55
|
-
.sbdocs-preview {
|
|
56
|
-
background: transparent !important;
|
|
57
|
-
border: none !important;
|
|
58
|
-
}
|
|
59
|
-
.sbdocs-h1, .sbdocs-h2, .sbdocs-h3, .sbdocs-h4, .sbdocs-h5, .sbdocs-h6 {
|
|
60
|
-
color: white !important;
|
|
61
|
-
}
|
|
62
|
-
.sbdocs-p, .sbdocs-li {
|
|
63
|
-
color: rgba(255, 255, 255, 0.7) !important;
|
|
64
|
-
}
|
|
65
|
-
.sbdocs-code {
|
|
66
|
-
background: rgba(255, 255, 255, 0.1) !important;
|
|
67
|
-
color: rgba(168, 85, 247, 1) !important;
|
|
68
|
-
border: 1px solid rgba(255, 255, 255, 0.1) !important;
|
|
69
|
-
}
|
|
70
|
-
.sbdocs-pre {
|
|
71
|
-
background: rgba(0, 0, 0, 0.4) !important;
|
|
72
|
-
border: 1px solid rgba(255, 255, 255, 0.1) !important;
|
|
73
|
-
}
|
|
74
|
-
.sbdocs-table {
|
|
75
|
-
background: rgba(255, 255, 255, 0.05) !important;
|
|
76
|
-
border: 1px solid rgba(255, 255, 255, 0.1) !important;
|
|
77
|
-
}
|
|
78
|
-
.sbdocs-table th {
|
|
79
|
-
background: rgba(255, 255, 255, 0.05) !important;
|
|
80
|
-
color: white !important;
|
|
81
|
-
border-bottom: 1px solid rgba(255, 255, 255, 0.1) !important;
|
|
82
|
-
}
|
|
83
|
-
.sbdocs-table td {
|
|
84
|
-
color: rgba(255, 255, 255, 0.7) !important;
|
|
85
|
-
border-bottom: 1px solid rgba(255, 255, 255, 0.05) !important;
|
|
86
|
-
}
|
|
87
|
-
`}
|
|
88
|
-
</style>
|
|
89
|
-
|
|
90
|
-
<div className="min-h-screen bg-gradient-to-br from-gray-900 via-purple-900/20 to-gray-900">
|
|
91
|
-
{/* Header */}
|
|
92
|
-
<div className="relative overflow-hidden border-b border-white/10 bg-black/20 backdrop-blur-xl">
|
|
93
|
-
<div className="absolute inset-0 bg-gradient-to-r from-purple-500/10 via-transparent to-blue-500/10" />
|
|
94
|
-
<div className="relative !mx-auto max-w-7xl px-6 py-16">
|
|
95
|
-
<div className="!space-y-6 text-center">
|
|
96
|
-
<div className="!mx-auto flex h-24 w-24 items-center justify-center rounded-2xl border border-blue-500/30 bg-gradient-to-br from-blue-500/20 to-indigo-500/20">
|
|
97
|
-
<FileTextIcon className="h-12 w-12 text-blue-400" />
|
|
98
|
-
</div>
|
|
99
|
-
<h1 className="text-5xl font-bold !text-white">
|
|
100
|
-
FileTextIcon
|
|
101
|
-
</h1>
|
|
102
|
-
<p className="!mx-auto max-w-3xl text-xl leading-relaxed !text-white/70">
|
|
103
|
-
A document icon representing text files and documents.
|
|
104
|
-
Perfect for file management interfaces, document lists, and
|
|
105
|
-
text-based content indicators.
|
|
106
|
-
</p>
|
|
107
|
-
|
|
108
|
-
{/* Stats */}
|
|
109
|
-
<div className="mx-auto flex items-center justify-center gap-8">
|
|
110
|
-
<div className="text-center">
|
|
111
|
-
<div className="text-3xl font-bold text-blue-300">
|
|
112
|
-
Document
|
|
113
|
-
</div>
|
|
114
|
-
<div className="text-sm text-white/80">Text files</div>
|
|
115
|
-
</div>
|
|
116
|
-
<div className="h-8 w-px bg-white/20" />
|
|
117
|
-
<div className="text-center">
|
|
118
|
-
<div className="text-3xl font-bold text-indigo-300">
|
|
119
|
-
Content
|
|
120
|
-
</div>
|
|
121
|
-
<div className="text-sm text-white/80">Text content</div>
|
|
122
|
-
</div>
|
|
123
|
-
<div className="h-8 w-px bg-white/20" />
|
|
124
|
-
<div className="text-center">
|
|
125
|
-
<div className="text-3xl font-bold text-cyan-300">
|
|
126
|
-
Accessible
|
|
127
|
-
</div>
|
|
128
|
-
<div className="text-sm text-white/80">
|
|
129
|
-
Screen reader support
|
|
130
|
-
</div>
|
|
131
|
-
</div>
|
|
132
|
-
</div>
|
|
133
|
-
</div>
|
|
134
|
-
</div>
|
|
135
|
-
</div>
|
|
136
|
-
|
|
137
|
-
{/* Content */}
|
|
138
|
-
<div className="!mx-auto flex max-w-7xl flex-col gap-6 space-y-16 px-6 py-16">
|
|
139
|
-
{/* Features */}
|
|
140
|
-
<div className="!space-y-8">
|
|
141
|
-
<h3 className="text-center text-2xl font-bold !text-white">
|
|
142
|
-
Key Features
|
|
143
|
-
</h3>
|
|
144
|
-
<div className="grid grid-cols-1 gap-6 md:grid-cols-2 lg:grid-cols-3">
|
|
145
|
-
<div className="space-y-4 rounded-lg border border-white/10 bg-white/5 p-6">
|
|
146
|
-
<div className="text-3xl">📄</div>
|
|
147
|
-
<h4 className="text-lg font-semibold !text-white">
|
|
148
|
-
Document Icon
|
|
149
|
-
</h4>
|
|
150
|
-
<p className="text-sm !text-white/80">
|
|
151
|
-
Clear representation of text documents
|
|
152
|
-
</p>
|
|
153
|
-
</div>
|
|
154
|
-
<div className="space-y-4 rounded-lg border border-white/10 bg-white/5 p-6">
|
|
155
|
-
<div className="text-3xl">♿</div>
|
|
156
|
-
<h4 className="text-lg font-semibold !text-white">
|
|
157
|
-
Accessibility
|
|
158
|
-
</h4>
|
|
159
|
-
<p className="text-sm !text-white/80">
|
|
160
|
-
Built with screen reader support
|
|
161
|
-
</p>
|
|
162
|
-
</div>
|
|
163
|
-
<div className="space-y-4 rounded-lg border border-white/10 bg-white/5 p-6">
|
|
164
|
-
<div className="text-3xl">🎨</div>
|
|
165
|
-
<h4 className="text-lg font-semibold !text-white">
|
|
166
|
-
Customizable
|
|
167
|
-
</h4>
|
|
168
|
-
<p className="text-sm !text-white/80">
|
|
169
|
-
Flexible styling options
|
|
170
|
-
</p>
|
|
171
|
-
</div>
|
|
172
|
-
</div>
|
|
173
|
-
</div>
|
|
174
|
-
|
|
175
|
-
{/* API Reference */}
|
|
176
|
-
<div className="!space-y-8">
|
|
177
|
-
<h3 className="text-center text-2xl font-bold !text-white">
|
|
178
|
-
API Reference
|
|
179
|
-
</h3>
|
|
180
|
-
<div className="overflow-hidden rounded-lg border border-white/10 bg-white/5">
|
|
181
|
-
<div className="bg-white/5 p-4">
|
|
182
|
-
<h4 className="text-lg font-semibold !text-white">Props</h4>
|
|
183
|
-
</div>
|
|
184
|
-
<table className="!my-0 w-full">
|
|
185
|
-
<thead className="bg-white/5">
|
|
186
|
-
<tr className="border-b border-white/10">
|
|
187
|
-
<th className="px-6 py-4 text-left text-sm font-semibold !text-white">
|
|
188
|
-
Prop
|
|
189
|
-
</th>
|
|
190
|
-
<th className="px-6 py-4 text-left text-sm font-semibold !text-white">
|
|
191
|
-
Type
|
|
192
|
-
</th>
|
|
193
|
-
<th className="px-6 py-4 text-left text-sm font-semibold !text-white">
|
|
194
|
-
Default
|
|
195
|
-
</th>
|
|
196
|
-
<th className="px-6 py-4 text-left text-sm font-semibold !text-white">
|
|
197
|
-
Description
|
|
198
|
-
</th>
|
|
199
|
-
</tr>
|
|
200
|
-
</thead>
|
|
201
|
-
<tbody>
|
|
202
|
-
{" "}
|
|
203
|
-
<tr className="!bg-black/10">
|
|
204
|
-
<td className="px-6 py-4 font-mono text-sm !text-blue-300">
|
|
205
|
-
withAccessibility
|
|
206
|
-
</td>
|
|
207
|
-
<td className="px-6 py-4 text-sm !text-white/70">
|
|
208
|
-
boolean
|
|
209
|
-
</td>
|
|
210
|
-
<td className="px-6 py-4 text-sm !text-white/50">
|
|
211
|
-
true
|
|
212
|
-
</td>
|
|
213
|
-
<td className="px-6 py-4 text-sm !text-white/70">
|
|
214
|
-
Whether to wrap the icon with accessibility feature
|
|
215
|
-
</td>
|
|
216
|
-
</tr>
|
|
217
|
-
</tbody>
|
|
218
|
-
</table>
|
|
219
|
-
</div>
|
|
220
|
-
</div>
|
|
221
|
-
|
|
222
|
-
{/* Usage Examples */}
|
|
223
|
-
<div className="!space-y-8">
|
|
224
|
-
<h3 className="text-center text-2xl font-bold !text-white">
|
|
225
|
-
Usage Examples
|
|
226
|
-
</h3>
|
|
227
|
-
|
|
228
|
-
<div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
|
|
229
|
-
<div className="space-y-4">
|
|
230
|
-
<h4 className="text-lg font-semibold !text-blue-300">
|
|
231
|
-
Basic Usage
|
|
232
|
-
</h4>
|
|
233
|
-
<div className="rounded-lg bg-black/40 p-4">
|
|
234
|
-
<pre className="overflow-x-auto text-sm !text-green-300">
|
|
235
|
-
{`import { FileTextIcon } from "@/components/ui/icons/file-text-icon"
|
|
236
|
-
|
|
237
|
-
function DocumentButton() {
|
|
35
|
+
<AuralIconDocsPage
|
|
36
|
+
accentToken="info"
|
|
37
|
+
features={[
|
|
38
|
+
{
|
|
39
|
+
title: "Text Document",
|
|
40
|
+
description: "Script or story file icon",
|
|
41
|
+
},
|
|
42
|
+
{ title: "Content Files", description: "Episode script indicator" },
|
|
43
|
+
{ title: "Accessible", description: "ARIA-ready by default" },
|
|
44
|
+
]}
|
|
45
|
+
quickStart={{
|
|
46
|
+
codeExample: `import { FileTextIcon } from "src/ui/icons/file-text-icon"
|
|
47
|
+
|
|
48
|
+
function ScriptItem() {
|
|
238
49
|
return (
|
|
239
|
-
<
|
|
240
|
-
<FileTextIcon className="h-
|
|
241
|
-
<span>
|
|
242
|
-
</
|
|
50
|
+
<div className="flex items-center gap-2">
|
|
51
|
+
<FileTextIcon className="h-5 w-5 text-fm-icon-active" />
|
|
52
|
+
<span>Episode Script</span>
|
|
53
|
+
</div>
|
|
243
54
|
)
|
|
244
|
-
}
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
<div className="space-y-4">
|
|
250
|
-
<h4 className="text-lg font-semibold !text-blue-300">
|
|
251
|
-
Live Preview
|
|
252
|
-
</h4>
|
|
253
|
-
<div className="flex h-32 items-center justify-center rounded-lg border border-white/10 bg-white/5">
|
|
254
|
-
<button className="flex items-center gap-2 rounded-lg border border-blue-500/20 bg-blue-500/10 px-4 py-2 text-white transition-colors hover:bg-blue-500/20">
|
|
255
|
-
<FileTextIcon className="h-4 w-4 text-blue-400" />
|
|
256
|
-
<span>Open Document</span>
|
|
257
|
-
</button>
|
|
258
|
-
</div>
|
|
259
|
-
</div>
|
|
260
|
-
</div>
|
|
55
|
+
}`,
|
|
56
|
+
livePreview: (
|
|
57
|
+
<div className="flex items-center gap-2">
|
|
58
|
+
<FileTextIcon className="text-fm-icon-active h-6 w-6" />
|
|
261
59
|
</div>
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
</div>
|
|
292
|
-
<div className="text-center">
|
|
293
|
-
<FileTextIcon className="!mx-auto mb-2 h-8 w-8 text-blue-400" />
|
|
294
|
-
<span className="text-xs text-white/60">32px</span>
|
|
295
|
-
</div>
|
|
296
|
-
<div className="text-center">
|
|
297
|
-
<FileTextIcon className="!mx-auto mb-2 h-12 w-12 text-blue-400" />
|
|
298
|
-
<span className="text-xs text-white/60">48px</span>
|
|
299
|
-
</div>
|
|
300
|
-
</div>
|
|
301
|
-
</div>
|
|
302
|
-
|
|
303
|
-
<div className="!space-y-4">
|
|
304
|
-
<h3 className="text-lg font-semibold !text-blue-300">
|
|
305
|
-
Code Example
|
|
306
|
-
</h3>
|
|
307
|
-
<div className="rounded-lg bg-black/40 p-4">
|
|
308
|
-
<pre className="overflow-x-auto text-sm !text-green-300">
|
|
309
|
-
{`// Small (16px)
|
|
310
|
-
<FileTextIcon className="h-4 w-4" />
|
|
311
|
-
|
|
312
|
-
// Medium (24px)
|
|
313
|
-
<FileTextIcon className="h-6 w-6" />
|
|
314
|
-
|
|
315
|
-
// Large (32px)
|
|
316
|
-
<FileTextIcon className="h-8 w-8" />
|
|
317
|
-
|
|
318
|
-
// Custom size
|
|
319
|
-
<FileTextIcon width={40} height={40} />`}
|
|
320
|
-
</pre>
|
|
321
|
-
</div>
|
|
322
|
-
</div>
|
|
323
|
-
</div>
|
|
324
|
-
</div>
|
|
325
|
-
</div>
|
|
326
|
-
</div>
|
|
327
|
-
|
|
328
|
-
{/* Common Use Cases */}
|
|
329
|
-
<div className="!space-y-8">
|
|
330
|
-
<h3 className="text-center text-2xl font-bold !text-white">
|
|
331
|
-
Common Use Cases
|
|
332
|
-
</h3>
|
|
333
|
-
<div className="grid grid-cols-1 gap-6 md:grid-cols-2 lg:grid-cols-3">
|
|
334
|
-
<div className="space-y-3 rounded-lg border border-white/10 bg-white/5 p-6">
|
|
335
|
-
<div className="text-2xl">📄</div>
|
|
336
|
-
<h4 className="text-lg font-semibold !text-white">
|
|
337
|
-
File Management
|
|
338
|
-
</h4>
|
|
339
|
-
<p className="text-sm !text-white/80">
|
|
340
|
-
Document lists and file browsers
|
|
341
|
-
</p>
|
|
342
|
-
</div>
|
|
343
|
-
<div className="space-y-3 rounded-lg border border-white/10 bg-white/5 p-6">
|
|
344
|
-
<div className="text-2xl">📝</div>
|
|
345
|
-
<h4 className="text-lg font-semibold !text-white">
|
|
346
|
-
Text Editors
|
|
347
|
-
</h4>
|
|
348
|
-
<p className="text-sm !text-white/80">
|
|
349
|
-
Document editing interfaces
|
|
350
|
-
</p>
|
|
351
|
-
</div>
|
|
352
|
-
<div className="space-y-3 rounded-lg border border-white/10 bg-white/5 p-6">
|
|
353
|
-
<div className="text-2xl">📚</div>
|
|
354
|
-
<h4 className="text-lg font-semibold !text-white">
|
|
355
|
-
Content Management
|
|
356
|
-
</h4>
|
|
357
|
-
<p className="text-sm !text-white/80">
|
|
358
|
-
Content organization systems
|
|
359
|
-
</p>
|
|
360
|
-
</div>
|
|
361
|
-
</div>
|
|
362
|
-
</div>
|
|
363
|
-
|
|
364
|
-
{/* Best Practices */}
|
|
365
|
-
<div className="!space-y-8">
|
|
366
|
-
<h3 className="text-center text-2xl font-bold !text-white">
|
|
367
|
-
Best Practices
|
|
368
|
-
</h3>
|
|
369
|
-
<div className="grid grid-cols-1 gap-6 md:grid-cols-2">
|
|
370
|
-
<div className="space-y-4 rounded-lg border border-white/10 bg-white/5 p-6">
|
|
371
|
-
<h4 className="text-lg font-semibold !text-emerald-300">
|
|
372
|
-
✅ Do
|
|
373
|
-
</h4>
|
|
374
|
-
<ul className="space-y-2 text-sm !text-white/80">
|
|
375
|
-
<li className="!text-white/80">
|
|
376
|
-
Use appropriate sizes for different contexts
|
|
377
|
-
</li>
|
|
378
|
-
<li className="!text-white/80">
|
|
379
|
-
Choose colors that match your UI theme
|
|
380
|
-
</li>
|
|
381
|
-
<li className="!text-white/80">
|
|
382
|
-
Provide clear labels for icon buttons
|
|
383
|
-
</li>
|
|
384
|
-
<li className="!text-white/80">
|
|
385
|
-
Use consistent styling across your app
|
|
386
|
-
</li>
|
|
387
|
-
<li className="!text-white/80">
|
|
388
|
-
Consider accessibility in all implementations
|
|
389
|
-
</li>
|
|
390
|
-
</ul>
|
|
391
|
-
</div>
|
|
392
|
-
<div className="space-y-4 rounded-lg border border-white/10 bg-white/5 p-6">
|
|
393
|
-
<h4 className="text-lg font-semibold !text-red-300">
|
|
394
|
-
❌ Don't
|
|
395
|
-
</h4>
|
|
396
|
-
<ul className="space-y-2 text-sm !text-white/80">
|
|
397
|
-
<li className="!text-white/80">
|
|
398
|
-
Use multiple icon styles in the same view
|
|
399
|
-
</li>
|
|
400
|
-
<li className="!text-white/80">
|
|
401
|
-
Overuse the icon in navigation
|
|
402
|
-
</li>
|
|
403
|
-
<li className="!text-white/80">
|
|
404
|
-
Use inappropriate sizes for the context
|
|
405
|
-
</li>
|
|
406
|
-
<li className="!text-white/80">
|
|
407
|
-
Forget to add hover states
|
|
408
|
-
</li>
|
|
409
|
-
<li className="!text-white/80">
|
|
410
|
-
Ignore accessibility requirements
|
|
411
|
-
</li>
|
|
412
|
-
</ul>
|
|
413
|
-
</div>
|
|
414
|
-
</div>
|
|
415
|
-
</div>
|
|
416
|
-
</div>
|
|
417
|
-
|
|
418
|
-
<div className="!space-y-8 p-7">
|
|
419
|
-
<h2 className="text-center text-3xl font-bold !text-white">
|
|
420
|
-
Related Icons
|
|
421
|
-
</h2>
|
|
422
|
-
<div className="grid grid-cols-2 gap-6 md:grid-cols-4">
|
|
423
|
-
<div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
|
|
424
|
-
<div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-blue-500/20">
|
|
425
|
-
<ArrowRightUpIcon className="h-6 w-6 rotate-90 text-blue-400" />
|
|
426
|
-
</div>
|
|
427
|
-
<div>
|
|
428
|
-
<div className="font-medium text-white">
|
|
429
|
-
ArrowRightDownIcon
|
|
430
|
-
</div>
|
|
431
|
-
<div className="text-xs text-white/60">
|
|
432
|
-
Download/decrease
|
|
433
|
-
</div>
|
|
434
|
-
</div>
|
|
435
|
-
</div>
|
|
436
|
-
<div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
|
|
437
|
-
<div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-cyan-500/20">
|
|
438
|
-
<ArrowRightUpIcon className="h-6 w-6 -rotate-90 text-cyan-400" />
|
|
439
|
-
</div>
|
|
440
|
-
<div>
|
|
441
|
-
<div className="font-medium text-white">
|
|
442
|
-
ArrowLeftUpIcon
|
|
443
|
-
</div>
|
|
444
|
-
<div className="text-xs text-white/60">Back and up</div>
|
|
445
|
-
</div>
|
|
446
|
-
</div>
|
|
447
|
-
<div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
|
|
448
|
-
<div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-green-500/20">
|
|
449
|
-
<span className="text-2xl">↗️</span>
|
|
450
|
-
</div>
|
|
451
|
-
<div>
|
|
452
|
-
<div className="font-medium text-white">
|
|
453
|
-
ExternalLinkIcon
|
|
454
|
-
</div>
|
|
455
|
-
<div className="text-xs text-white/60">
|
|
456
|
-
Alternative style
|
|
457
|
-
</div>
|
|
458
|
-
</div>
|
|
459
|
-
</div>
|
|
460
|
-
<div className="!space-y-3 rounded-lg border border-white/10 bg-white/5 p-4 text-center">
|
|
461
|
-
<div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg bg-purple-500/20">
|
|
462
|
-
<span className="text-2xl">📈</span>
|
|
463
|
-
</div>
|
|
464
|
-
<div>
|
|
465
|
-
<div className="font-medium text-white">TrendingUpIcon</div>
|
|
466
|
-
<div className="text-xs text-white/60">Growth metrics</div>
|
|
467
|
-
</div>
|
|
468
|
-
</div>
|
|
469
|
-
</div>
|
|
470
|
-
</div>
|
|
471
|
-
|
|
472
|
-
{/* Footer */}
|
|
473
|
-
<div className="border-t border-white/10 bg-black/20 backdrop-blur-xl">
|
|
474
|
-
<div className="!mx-auto max-w-7xl px-6 py-8">
|
|
475
|
-
<div className="!space-y-4 text-center">
|
|
476
|
-
<p className="!text-white/60">
|
|
477
|
-
FileTextIcon is part of the Aural UI icon library, designed
|
|
478
|
-
for document and text file interfaces.
|
|
479
|
-
</p>
|
|
480
|
-
<p className="text-sm !text-white/40">
|
|
481
|
-
Perfect for file management, document editors, content
|
|
482
|
-
management systems, and any interface requiring text
|
|
483
|
-
document representation.
|
|
484
|
-
</p>
|
|
485
|
-
</div>
|
|
486
|
-
</div>
|
|
487
|
-
</div>
|
|
488
|
-
</div>
|
|
489
|
-
</>
|
|
60
|
+
),
|
|
61
|
+
}}
|
|
62
|
+
relatedIcons={[
|
|
63
|
+
{
|
|
64
|
+
name: "FileChartIcon",
|
|
65
|
+
description: "Chart / data report file",
|
|
66
|
+
icon: FileChartIcon,
|
|
67
|
+
accentToken: "info",
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
name: "NotepadIcon",
|
|
71
|
+
description: "Notepad document icon",
|
|
72
|
+
icon: NotepadIcon,
|
|
73
|
+
accentToken: "positive",
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
name: "PageTextIcon",
|
|
77
|
+
description: "Page with text content",
|
|
78
|
+
icon: PageTextIcon,
|
|
79
|
+
accentToken: "warning",
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
name: "CopyIcon",
|
|
83
|
+
description: "Copy to clipboard icon",
|
|
84
|
+
icon: CopyIcon,
|
|
85
|
+
accentToken: "negative",
|
|
86
|
+
},
|
|
87
|
+
]}
|
|
88
|
+
/>
|
|
490
89
|
),
|
|
491
90
|
},
|
|
492
91
|
},
|
|
493
92
|
tags: ["autodocs"],
|
|
494
93
|
argTypes: {
|
|
495
|
-
|
|
496
|
-
control:
|
|
497
|
-
description: "
|
|
94
|
+
className: {
|
|
95
|
+
control: "text",
|
|
96
|
+
description: "CSS classes including color token",
|
|
498
97
|
},
|
|
499
98
|
withAccessibility: {
|
|
500
99
|
control: "boolean",
|
|
501
|
-
description: "
|
|
502
|
-
},
|
|
503
|
-
height: {
|
|
504
|
-
control: { type: "range", min: 8, max: 96, step: 2 },
|
|
505
|
-
description: "Height of the icon in pixels",
|
|
506
|
-
},
|
|
507
|
-
className: {
|
|
508
|
-
control: "text",
|
|
509
|
-
description: "CSS classes for styling",
|
|
100
|
+
description: "Wrap with accessibility label",
|
|
510
101
|
},
|
|
511
102
|
},
|
|
512
103
|
}
|
|
@@ -514,163 +105,83 @@ function DocumentButton() {
|
|
|
514
105
|
export default meta
|
|
515
106
|
type Story = StoryObj<typeof FileTextIcon>
|
|
516
107
|
|
|
517
|
-
// Story parameters for consistent dark theme
|
|
518
|
-
const storyParameters = {
|
|
519
|
-
backgrounds: {
|
|
520
|
-
default: "dark",
|
|
521
|
-
values: [
|
|
522
|
-
{ name: "dark", value: "#0a0a0a" },
|
|
523
|
-
{ name: "darker", value: "#000000" },
|
|
524
|
-
],
|
|
525
|
-
},
|
|
526
|
-
}
|
|
527
|
-
|
|
528
108
|
export const Default: Story = {
|
|
529
109
|
args: {
|
|
530
|
-
|
|
531
|
-
height: 24,
|
|
532
|
-
className: "text-blue-400",
|
|
110
|
+
className: "h-6 w-6 text-fm-icon-active",
|
|
533
111
|
withAccessibility: true,
|
|
534
112
|
},
|
|
535
|
-
parameters: storyParameters,
|
|
536
113
|
render: (args) => (
|
|
537
|
-
<
|
|
114
|
+
<IconDefaultCanvas>
|
|
538
115
|
<FileTextIcon {...args} />
|
|
539
|
-
</
|
|
116
|
+
</IconDefaultCanvas>
|
|
540
117
|
),
|
|
541
118
|
}
|
|
542
119
|
|
|
543
120
|
export const SizeVariations: Story = {
|
|
544
|
-
|
|
545
|
-
...storyParameters,
|
|
546
|
-
docs: {
|
|
547
|
-
description: {
|
|
548
|
-
story:
|
|
549
|
-
"FileTextIcon in different sizes, from small inline buttons to large call-to-action elements.",
|
|
550
|
-
},
|
|
551
|
-
},
|
|
552
|
-
},
|
|
553
|
-
render: () => (
|
|
554
|
-
<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">
|
|
555
|
-
<div className="text-center">
|
|
556
|
-
<FileTextIcon className="!mx-auto mb-2 h-3 w-3 text-blue-400" />
|
|
557
|
-
<span className="text-xs text-white/60">12px</span>
|
|
558
|
-
</div>
|
|
559
|
-
<div className="text-center">
|
|
560
|
-
<FileTextIcon className="!mx-auto mb-2 h-4 w-4 text-blue-400" />
|
|
561
|
-
<span className="text-xs text-white/60">16px</span>
|
|
562
|
-
</div>
|
|
563
|
-
<div className="text-center">
|
|
564
|
-
<FileTextIcon className="!mx-auto mb-2 h-5 w-5 text-blue-400" />
|
|
565
|
-
<span className="text-xs text-white/60">20px</span>
|
|
566
|
-
</div>
|
|
567
|
-
<div className="text-center">
|
|
568
|
-
<FileTextIcon className="!mx-auto mb-2 h-6 w-6 text-blue-400" />
|
|
569
|
-
<span className="text-xs text-white/60">24px</span>
|
|
570
|
-
</div>
|
|
571
|
-
<div className="text-center">
|
|
572
|
-
<FileTextIcon className="!mx-auto mb-2 h-8 w-8 text-blue-400" />
|
|
573
|
-
<span className="text-xs text-white/60">32px</span>
|
|
574
|
-
</div>
|
|
575
|
-
<div className="text-center">
|
|
576
|
-
<FileTextIcon className="!mx-auto mb-2 h-12 w-12 text-blue-400" />
|
|
577
|
-
<span className="text-xs text-white/60">48px</span>
|
|
578
|
-
</div>
|
|
579
|
-
</div>
|
|
580
|
-
),
|
|
121
|
+
render: () => <IconSizeVariations icon={FileTextIcon} />,
|
|
581
122
|
}
|
|
582
123
|
|
|
583
124
|
export const ColorVariations: Story = {
|
|
584
|
-
|
|
585
|
-
...storyParameters,
|
|
586
|
-
docs: {
|
|
587
|
-
description: {
|
|
588
|
-
story:
|
|
589
|
-
"FileTextIcon with different color variations using Tailwind classes.",
|
|
590
|
-
},
|
|
591
|
-
},
|
|
592
|
-
},
|
|
593
|
-
render: () => (
|
|
594
|
-
<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">
|
|
595
|
-
<div className="text-center">
|
|
596
|
-
<FileTextIcon className="!mx-auto mb-2 h-6 w-6 text-blue-400" />
|
|
597
|
-
<span className="text-xs text-white/60">Blue</span>
|
|
598
|
-
</div>
|
|
599
|
-
<div className="text-center">
|
|
600
|
-
<FileTextIcon className="!mx-auto mb-2 h-6 w-6 text-purple-400" />
|
|
601
|
-
<span className="text-xs text-white/60">Purple</span>
|
|
602
|
-
</div>
|
|
603
|
-
<div className="text-center">
|
|
604
|
-
<FileTextIcon className="!mx-auto mb-2 h-6 w-6 text-green-400" />
|
|
605
|
-
<span className="text-xs text-white/60">Green</span>
|
|
606
|
-
</div>
|
|
607
|
-
<div className="text-center">
|
|
608
|
-
<FileTextIcon className="!mx-auto mb-2 h-6 w-6 text-red-400" />
|
|
609
|
-
<span className="text-xs text-white/60">Red</span>
|
|
610
|
-
</div>
|
|
611
|
-
<div className="text-center">
|
|
612
|
-
<FileTextIcon className="!mx-auto mb-2 h-6 w-6 text-yellow-400" />
|
|
613
|
-
<span className="text-xs text-white/60">Yellow</span>
|
|
614
|
-
</div>
|
|
615
|
-
</div>
|
|
616
|
-
),
|
|
125
|
+
render: () => <IconColorVariations icon={FileTextIcon} />,
|
|
617
126
|
}
|
|
618
127
|
|
|
619
128
|
export const UsageExamples: Story = {
|
|
620
|
-
parameters: {
|
|
621
|
-
...storyParameters,
|
|
622
|
-
docs: {
|
|
623
|
-
description: {
|
|
624
|
-
story: "Common usage examples of FileTextIcon in different contexts.",
|
|
625
|
-
},
|
|
626
|
-
},
|
|
627
|
-
},
|
|
628
129
|
render: () => (
|
|
629
|
-
<
|
|
630
|
-
<
|
|
631
|
-
<
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
130
|
+
<IconUsageCanvas>
|
|
131
|
+
<IconUsageSection title="Script File List">
|
|
132
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary w-full max-w-sm overflow-hidden rounded-xl border">
|
|
133
|
+
{["Episode 1 Script", "Episode 2 Script", "Episode 3 Script"].map(
|
|
134
|
+
(label) => (
|
|
135
|
+
<div
|
|
136
|
+
key={label}
|
|
137
|
+
className="border-fm-divider-secondary flex items-center gap-3 border-b px-4 py-3 last:border-b-0"
|
|
138
|
+
>
|
|
139
|
+
<FileTextIcon className="text-fm-icon-active h-4 w-4" />
|
|
140
|
+
<span className="text-fm-primary font-fm-text flex-1 text-sm">
|
|
141
|
+
{label}
|
|
142
|
+
</span>
|
|
143
|
+
<CopyIcon className="text-fm-icon-inactive h-4 w-4" />
|
|
144
|
+
</div>
|
|
145
|
+
)
|
|
146
|
+
)}
|
|
644
147
|
</div>
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
148
|
+
</IconUsageSection>
|
|
149
|
+
|
|
150
|
+
<IconUsageSection title="Content Type Badge">
|
|
151
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary flex items-center gap-2 rounded-xl border px-3 py-1.5">
|
|
152
|
+
<FileTextIcon className="text-fm-icon-active h-3.5 w-3.5" />
|
|
153
|
+
<span className="text-fm-secondary font-fm-text text-xs">
|
|
154
|
+
Text document
|
|
155
|
+
</span>
|
|
648
156
|
</div>
|
|
649
|
-
</
|
|
650
|
-
|
|
157
|
+
</IconUsageSection>
|
|
158
|
+
|
|
159
|
+
<IconUsageSection title="File Type Selector">
|
|
160
|
+
<div className="flex gap-3">
|
|
161
|
+
{[FileTextIcon, FileChartIcon, NotepadIcon].map((Icon, i) => (
|
|
162
|
+
<div
|
|
163
|
+
key={i}
|
|
164
|
+
className={`border-fm-divider-secondary flex h-12 w-12 items-center justify-center rounded-xl border ${i === 0 ? "bg-fm-surface-primary" : "bg-fm-surface-secondary"}`}
|
|
165
|
+
>
|
|
166
|
+
<Icon
|
|
167
|
+
className={`h-5 w-5 ${i === 0 ? "text-fm-icon-active" : "text-fm-icon-inactive"}`}
|
|
168
|
+
/>
|
|
169
|
+
</div>
|
|
170
|
+
))}
|
|
171
|
+
</div>
|
|
172
|
+
</IconUsageSection>
|
|
173
|
+
</IconUsageCanvas>
|
|
651
174
|
),
|
|
652
175
|
}
|
|
653
176
|
|
|
654
177
|
export const Playground: Story = {
|
|
655
|
-
parameters: {
|
|
656
|
-
...storyParameters,
|
|
657
|
-
docs: {
|
|
658
|
-
description: {
|
|
659
|
-
story:
|
|
660
|
-
"Interactive playground to experiment with different FileTextIcon configurations.",
|
|
661
|
-
},
|
|
662
|
-
},
|
|
663
|
-
},
|
|
664
178
|
args: {
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
className: "text-blue-400",
|
|
179
|
+
className: "h-8 w-8 text-fm-icon-active",
|
|
180
|
+
withAccessibility: true,
|
|
668
181
|
},
|
|
669
182
|
render: (args) => (
|
|
670
|
-
<
|
|
671
|
-
<
|
|
672
|
-
|
|
673
|
-
</div>
|
|
674
|
-
</div>
|
|
183
|
+
<IconPlaygroundCanvas>
|
|
184
|
+
<FileTextIcon {...args} />
|
|
185
|
+
</IconPlaygroundCanvas>
|
|
675
186
|
),
|
|
676
187
|
}
|