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,14 +1,27 @@
|
|
|
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: [
|
|
@@ -18,517 +31,73 @@ const meta: Meta<typeof FileTextIcon> = {
|
|
|
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: var(--color-fm-surface-primary) !important;
|
|
51
|
-
}
|
|
52
|
-
#storybook-docs {
|
|
53
|
-
background: var(--color-fm-surface-primary) !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: var(--color-fm-icon-active) !important;
|
|
61
|
-
}
|
|
62
|
-
.sbdocs-p, .sbdocs-li {
|
|
63
|
-
color: var(--color-fm-secondary) !important;
|
|
64
|
-
}
|
|
65
|
-
.sbdocs-code {
|
|
66
|
-
background: var(--color-fm-surface-secondary) !important;
|
|
67
|
-
color: var(--color-fm-secondary-500) !important;
|
|
68
|
-
border: 1px solid var(--color-fm-divider-secondary) !important;
|
|
69
|
-
}
|
|
70
|
-
.sbdocs-pre {
|
|
71
|
-
background: var(--color-fm-surface-secondary) !important;
|
|
72
|
-
border: 1px solid var(--color-fm-divider-secondary) !important;
|
|
73
|
-
}
|
|
74
|
-
.sbdocs-table {
|
|
75
|
-
background: var(--color-fm-surface-secondary) !important;
|
|
76
|
-
border: 1px solid var(--color-fm-divider-secondary) !important;
|
|
77
|
-
}
|
|
78
|
-
.sbdocs-table th {
|
|
79
|
-
background: var(--color-fm-surface-secondary) !important;
|
|
80
|
-
color: var(--color-fm-icon-active) !important;
|
|
81
|
-
border-bottom: 1px solid var(--color-fm-divider-secondary) !important;
|
|
82
|
-
}
|
|
83
|
-
.sbdocs-table td {
|
|
84
|
-
color: var(--color-fm-secondary) !important;
|
|
85
|
-
border-bottom: 1px solid var(--color-fm-divider-tertiary) !important;
|
|
86
|
-
}
|
|
87
|
-
`}
|
|
88
|
-
</style>
|
|
89
|
-
|
|
90
|
-
<div className="bg-fm-surface-primary min-h-screen">
|
|
91
|
-
{/* Header */}
|
|
92
|
-
<div className="border-fm-divider-secondary bg-fm-surface-secondary relative overflow-hidden border-b backdrop-blur-xl">
|
|
93
|
-
<div className="from-fm-secondary-500/10 to-fm-icon-info/10 absolute inset-0 bg-linear-to-r via-transparent" />
|
|
94
|
-
<div className="relative !mx-auto max-w-7xl px-6 py-16">
|
|
95
|
-
<div className="!space-y-6 text-center">
|
|
96
|
-
<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">
|
|
97
|
-
<FileTextIcon className="text-fm-icon-info h-12 w-12" />
|
|
98
|
-
</div>
|
|
99
|
-
<h1 className="text-fm-icon-active! text-5xl font-bold">
|
|
100
|
-
FileTextIcon
|
|
101
|
-
</h1>
|
|
102
|
-
<p className="text-fm-secondary! !mx-auto max-w-3xl text-xl leading-relaxed">
|
|
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-fm-icon-info text-3xl font-bold">
|
|
112
|
-
Document
|
|
113
|
-
</div>
|
|
114
|
-
<div className="text-fm-icon-active/80 text-sm">
|
|
115
|
-
Text files
|
|
116
|
-
</div>
|
|
117
|
-
</div>
|
|
118
|
-
<div className="bg-fm-divider-primary h-8 w-px" />
|
|
119
|
-
<div className="text-center">
|
|
120
|
-
<div className="text-fm-icon-info text-3xl font-bold">
|
|
121
|
-
Content
|
|
122
|
-
</div>
|
|
123
|
-
<div className="text-fm-icon-active/80 text-sm">
|
|
124
|
-
Text content
|
|
125
|
-
</div>
|
|
126
|
-
</div>
|
|
127
|
-
<div className="bg-fm-divider-primary h-8 w-px" />
|
|
128
|
-
<div className="text-center">
|
|
129
|
-
<div className="text-fm-icon-info text-3xl font-bold">
|
|
130
|
-
Accessible
|
|
131
|
-
</div>
|
|
132
|
-
<div className="text-fm-icon-active/80 text-sm">
|
|
133
|
-
Screen reader support
|
|
134
|
-
</div>
|
|
135
|
-
</div>
|
|
136
|
-
</div>
|
|
137
|
-
</div>
|
|
138
|
-
</div>
|
|
139
|
-
</div>
|
|
140
|
-
|
|
141
|
-
{/* Content */}
|
|
142
|
-
<div className="!mx-auto flex max-w-7xl flex-col gap-6 space-y-16 px-6 py-16">
|
|
143
|
-
{/* Features */}
|
|
144
|
-
<div className="!space-y-8">
|
|
145
|
-
<h3 className="text-fm-icon-active! text-center text-2xl font-bold">
|
|
146
|
-
Key Features
|
|
147
|
-
</h3>
|
|
148
|
-
<div className="grid grid-cols-1 gap-6 md:grid-cols-2 lg:grid-cols-3">
|
|
149
|
-
<div className="border-fm-divider-secondary bg-fm-surface-secondary space-y-4 rounded-lg border p-6">
|
|
150
|
-
<div className="text-3xl">📄</div>
|
|
151
|
-
<h4 className="text-fm-icon-active! text-lg font-semibold">
|
|
152
|
-
Document Icon
|
|
153
|
-
</h4>
|
|
154
|
-
<p className="text-fm-icon-active!/80 text-sm">
|
|
155
|
-
Clear representation of text documents
|
|
156
|
-
</p>
|
|
157
|
-
</div>
|
|
158
|
-
<div className="border-fm-divider-secondary bg-fm-surface-secondary space-y-4 rounded-lg border p-6">
|
|
159
|
-
<div className="text-3xl">♿</div>
|
|
160
|
-
<h4 className="text-fm-icon-active! text-lg font-semibold">
|
|
161
|
-
Accessibility
|
|
162
|
-
</h4>
|
|
163
|
-
<p className="text-fm-icon-active!/80 text-sm">
|
|
164
|
-
Built with screen reader support
|
|
165
|
-
</p>
|
|
166
|
-
</div>
|
|
167
|
-
<div className="border-fm-divider-secondary bg-fm-surface-secondary space-y-4 rounded-lg border p-6">
|
|
168
|
-
<div className="text-3xl">🎨</div>
|
|
169
|
-
<h4 className="text-fm-icon-active! text-lg font-semibold">
|
|
170
|
-
Customizable
|
|
171
|
-
</h4>
|
|
172
|
-
<p className="text-fm-icon-active!/80 text-sm">
|
|
173
|
-
Flexible styling options
|
|
174
|
-
</p>
|
|
175
|
-
</div>
|
|
176
|
-
</div>
|
|
177
|
-
</div>
|
|
178
|
-
|
|
179
|
-
{/* API Reference */}
|
|
180
|
-
<div className="!space-y-8">
|
|
181
|
-
<h3 className="text-fm-icon-active! text-center text-2xl font-bold">
|
|
182
|
-
API Reference
|
|
183
|
-
</h3>
|
|
184
|
-
<div className="border-fm-divider-secondary bg-fm-surface-secondary overflow-hidden rounded-lg border">
|
|
185
|
-
<div className="bg-fm-surface-secondary p-4">
|
|
186
|
-
<h4 className="text-fm-icon-active! text-lg font-semibold">
|
|
187
|
-
Props
|
|
188
|
-
</h4>
|
|
189
|
-
</div>
|
|
190
|
-
<table className="!my-0 w-full">
|
|
191
|
-
<thead className="bg-fm-surface-secondary">
|
|
192
|
-
<tr className="border-fm-divider-secondary border-b">
|
|
193
|
-
<th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
|
|
194
|
-
Prop
|
|
195
|
-
</th>
|
|
196
|
-
<th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
|
|
197
|
-
Type
|
|
198
|
-
</th>
|
|
199
|
-
<th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
|
|
200
|
-
Default
|
|
201
|
-
</th>
|
|
202
|
-
<th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
|
|
203
|
-
Description
|
|
204
|
-
</th>
|
|
205
|
-
</tr>
|
|
206
|
-
</thead>
|
|
207
|
-
<tbody>
|
|
208
|
-
{" "}
|
|
209
|
-
<tr className="bg-fm-surface-secondary!">
|
|
210
|
-
<td className="text-fm-icon-info! px-6 py-4 font-mono text-sm">
|
|
211
|
-
withAccessibility
|
|
212
|
-
</td>
|
|
213
|
-
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
214
|
-
boolean
|
|
215
|
-
</td>
|
|
216
|
-
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
217
|
-
true
|
|
218
|
-
</td>
|
|
219
|
-
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
220
|
-
Whether to wrap the icon with accessibility feature
|
|
221
|
-
</td>
|
|
222
|
-
</tr>
|
|
223
|
-
</tbody>
|
|
224
|
-
</table>
|
|
225
|
-
</div>
|
|
226
|
-
</div>
|
|
227
|
-
|
|
228
|
-
{/* Usage Examples */}
|
|
229
|
-
<div className="!space-y-8">
|
|
230
|
-
<h3 className="text-fm-icon-active! text-center text-2xl font-bold">
|
|
231
|
-
Usage Examples
|
|
232
|
-
</h3>
|
|
233
|
-
|
|
234
|
-
<div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
|
|
235
|
-
<div className="space-y-4">
|
|
236
|
-
<h4 className="text-fm-icon-info! text-lg font-semibold">
|
|
237
|
-
Basic Usage
|
|
238
|
-
</h4>
|
|
239
|
-
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
240
|
-
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
241
|
-
{`import { FileTextIcon } from "@/components/ui/icons/file-text-icon"
|
|
242
|
-
|
|
243
|
-
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() {
|
|
244
49
|
return (
|
|
245
|
-
<
|
|
246
|
-
<FileTextIcon className="h-
|
|
247
|
-
<span>
|
|
248
|
-
</
|
|
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>
|
|
249
54
|
)
|
|
250
|
-
}
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
<div className="space-y-4">
|
|
256
|
-
<h4 className="text-fm-icon-info! text-lg font-semibold">
|
|
257
|
-
Live Preview
|
|
258
|
-
</h4>
|
|
259
|
-
<div className="border-fm-divider-secondary bg-fm-surface-secondary flex h-32 items-center justify-center rounded-lg border">
|
|
260
|
-
<button className="border-fm-icon-info/20 bg-fm-icon-info/10 text-fm-icon-active hover:bg-fm-icon-info/20 flex items-center gap-2 rounded-lg border px-4 py-2 transition-colors">
|
|
261
|
-
<FileTextIcon className="text-fm-icon-info h-4 w-4" />
|
|
262
|
-
<span>Open Document</span>
|
|
263
|
-
</button>
|
|
264
|
-
</div>
|
|
265
|
-
</div>
|
|
266
|
-
</div>
|
|
55
|
+
}`,
|
|
56
|
+
livePreview: (
|
|
57
|
+
<div className="flex items-center gap-2">
|
|
58
|
+
<FileTextIcon className="text-fm-icon-active h-6 w-6" />
|
|
267
59
|
</div>
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
20px
|
|
298
|
-
</span>
|
|
299
|
-
</div>
|
|
300
|
-
<div className="text-center">
|
|
301
|
-
<FileTextIcon className="text-fm-icon-info !mx-auto mb-2 h-6 w-6" />
|
|
302
|
-
<span className="text-fm-tertiary text-xs">
|
|
303
|
-
24px
|
|
304
|
-
</span>
|
|
305
|
-
</div>
|
|
306
|
-
<div className="text-center">
|
|
307
|
-
<FileTextIcon className="text-fm-icon-info !mx-auto mb-2 h-8 w-8" />
|
|
308
|
-
<span className="text-fm-tertiary text-xs">
|
|
309
|
-
32px
|
|
310
|
-
</span>
|
|
311
|
-
</div>
|
|
312
|
-
<div className="text-center">
|
|
313
|
-
<FileTextIcon className="text-fm-icon-info !mx-auto mb-2 h-12 w-12" />
|
|
314
|
-
<span className="text-fm-tertiary text-xs">
|
|
315
|
-
48px
|
|
316
|
-
</span>
|
|
317
|
-
</div>
|
|
318
|
-
</div>
|
|
319
|
-
</div>
|
|
320
|
-
|
|
321
|
-
<div className="!space-y-4">
|
|
322
|
-
<h3 className="text-fm-icon-info! text-lg font-semibold">
|
|
323
|
-
Code Example
|
|
324
|
-
</h3>
|
|
325
|
-
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
326
|
-
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
327
|
-
{`// Small (16px)
|
|
328
|
-
<FileTextIcon className="h-4 w-4" />
|
|
329
|
-
|
|
330
|
-
// Medium (24px)
|
|
331
|
-
<FileTextIcon className="h-6 w-6" />
|
|
332
|
-
|
|
333
|
-
// Large (32px)
|
|
334
|
-
<FileTextIcon className="h-8 w-8" />
|
|
335
|
-
|
|
336
|
-
// Custom size
|
|
337
|
-
<FileTextIcon width={40} height={40} />`}
|
|
338
|
-
</pre>
|
|
339
|
-
</div>
|
|
340
|
-
</div>
|
|
341
|
-
</div>
|
|
342
|
-
</div>
|
|
343
|
-
</div>
|
|
344
|
-
</div>
|
|
345
|
-
|
|
346
|
-
{/* Common Use Cases */}
|
|
347
|
-
<div className="!space-y-8">
|
|
348
|
-
<h3 className="text-fm-icon-active! text-center text-2xl font-bold">
|
|
349
|
-
Common Use Cases
|
|
350
|
-
</h3>
|
|
351
|
-
<div className="grid grid-cols-1 gap-6 md:grid-cols-2 lg:grid-cols-3">
|
|
352
|
-
<div className="border-fm-divider-secondary bg-fm-surface-secondary space-y-3 rounded-lg border p-6">
|
|
353
|
-
<div className="text-2xl">📄</div>
|
|
354
|
-
<h4 className="text-fm-icon-active! text-lg font-semibold">
|
|
355
|
-
File Management
|
|
356
|
-
</h4>
|
|
357
|
-
<p className="text-fm-icon-active!/80 text-sm">
|
|
358
|
-
Document lists and file browsers
|
|
359
|
-
</p>
|
|
360
|
-
</div>
|
|
361
|
-
<div className="border-fm-divider-secondary bg-fm-surface-secondary space-y-3 rounded-lg border p-6">
|
|
362
|
-
<div className="text-2xl">📝</div>
|
|
363
|
-
<h4 className="text-fm-icon-active! text-lg font-semibold">
|
|
364
|
-
Text Editors
|
|
365
|
-
</h4>
|
|
366
|
-
<p className="text-fm-icon-active!/80 text-sm">
|
|
367
|
-
Document editing interfaces
|
|
368
|
-
</p>
|
|
369
|
-
</div>
|
|
370
|
-
<div className="border-fm-divider-secondary bg-fm-surface-secondary space-y-3 rounded-lg border p-6">
|
|
371
|
-
<div className="text-2xl">📚</div>
|
|
372
|
-
<h4 className="text-fm-icon-active! text-lg font-semibold">
|
|
373
|
-
Content Management
|
|
374
|
-
</h4>
|
|
375
|
-
<p className="text-fm-icon-active!/80 text-sm">
|
|
376
|
-
Content organization systems
|
|
377
|
-
</p>
|
|
378
|
-
</div>
|
|
379
|
-
</div>
|
|
380
|
-
</div>
|
|
381
|
-
|
|
382
|
-
{/* Best Practices */}
|
|
383
|
-
<div className="!space-y-8">
|
|
384
|
-
<h3 className="text-fm-icon-active! text-center text-2xl font-bold">
|
|
385
|
-
Best Practices
|
|
386
|
-
</h3>
|
|
387
|
-
<div className="grid grid-cols-1 gap-6 md:grid-cols-2">
|
|
388
|
-
<div className="border-fm-divider-secondary bg-fm-surface-secondary space-y-4 rounded-lg border p-6">
|
|
389
|
-
<h4 className="text-fm-icon-positive! text-lg font-semibold">
|
|
390
|
-
✅ Do
|
|
391
|
-
</h4>
|
|
392
|
-
<ul className="text-fm-icon-active!/80 space-y-2 text-sm">
|
|
393
|
-
<li className="text-fm-icon-active!/80">
|
|
394
|
-
Use appropriate sizes for different contexts
|
|
395
|
-
</li>
|
|
396
|
-
<li className="text-fm-icon-active!/80">
|
|
397
|
-
Choose colors that match your UI theme
|
|
398
|
-
</li>
|
|
399
|
-
<li className="text-fm-icon-active!/80">
|
|
400
|
-
Provide clear labels for icon buttons
|
|
401
|
-
</li>
|
|
402
|
-
<li className="text-fm-icon-active!/80">
|
|
403
|
-
Use consistent styling across your app
|
|
404
|
-
</li>
|
|
405
|
-
<li className="text-fm-icon-active!/80">
|
|
406
|
-
Consider accessibility in all implementations
|
|
407
|
-
</li>
|
|
408
|
-
</ul>
|
|
409
|
-
</div>
|
|
410
|
-
<div className="border-fm-divider-secondary bg-fm-surface-secondary space-y-4 rounded-lg border p-6">
|
|
411
|
-
<h4 className="text-fm-icon-negative! text-lg font-semibold">
|
|
412
|
-
❌ Don't
|
|
413
|
-
</h4>
|
|
414
|
-
<ul className="text-fm-icon-active!/80 space-y-2 text-sm">
|
|
415
|
-
<li className="text-fm-icon-active!/80">
|
|
416
|
-
Use multiple icon styles in the same view
|
|
417
|
-
</li>
|
|
418
|
-
<li className="text-fm-icon-active!/80">
|
|
419
|
-
Overuse the icon in navigation
|
|
420
|
-
</li>
|
|
421
|
-
<li className="text-fm-icon-active!/80">
|
|
422
|
-
Use inappropriate sizes for the context
|
|
423
|
-
</li>
|
|
424
|
-
<li className="text-fm-icon-active!/80">
|
|
425
|
-
Forget to add hover states
|
|
426
|
-
</li>
|
|
427
|
-
<li className="text-fm-icon-active!/80">
|
|
428
|
-
Ignore accessibility requirements
|
|
429
|
-
</li>
|
|
430
|
-
</ul>
|
|
431
|
-
</div>
|
|
432
|
-
</div>
|
|
433
|
-
</div>
|
|
434
|
-
</div>
|
|
435
|
-
|
|
436
|
-
<div className="!space-y-8 p-7">
|
|
437
|
-
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
438
|
-
Related Icons
|
|
439
|
-
</h2>
|
|
440
|
-
<div className="grid grid-cols-2 gap-6 md:grid-cols-4">
|
|
441
|
-
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
|
|
442
|
-
<div className="bg-fm-icon-info/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
|
|
443
|
-
<ArrowRightUpIcon className="text-fm-icon-info h-6 w-6 rotate-90" />
|
|
444
|
-
</div>
|
|
445
|
-
<div>
|
|
446
|
-
<div className="text-fm-icon-active font-medium">
|
|
447
|
-
ArrowRightDownIcon
|
|
448
|
-
</div>
|
|
449
|
-
<div className="text-fm-tertiary text-xs">
|
|
450
|
-
Download/decrease
|
|
451
|
-
</div>
|
|
452
|
-
</div>
|
|
453
|
-
</div>
|
|
454
|
-
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
|
|
455
|
-
<div className="bg-fm-icon-info/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
|
|
456
|
-
<ArrowRightUpIcon className="text-fm-icon-info h-6 w-6 -rotate-90" />
|
|
457
|
-
</div>
|
|
458
|
-
<div>
|
|
459
|
-
<div className="text-fm-icon-active font-medium">
|
|
460
|
-
ArrowLeftUpIcon
|
|
461
|
-
</div>
|
|
462
|
-
<div className="text-fm-tertiary text-xs">Back and up</div>
|
|
463
|
-
</div>
|
|
464
|
-
</div>
|
|
465
|
-
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
|
|
466
|
-
<div className="bg-fm-icon-positive/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
|
|
467
|
-
<span className="text-2xl">↗️</span>
|
|
468
|
-
</div>
|
|
469
|
-
<div>
|
|
470
|
-
<div className="text-fm-icon-active font-medium">
|
|
471
|
-
ExternalLinkIcon
|
|
472
|
-
</div>
|
|
473
|
-
<div className="text-fm-tertiary text-xs">
|
|
474
|
-
Alternative style
|
|
475
|
-
</div>
|
|
476
|
-
</div>
|
|
477
|
-
</div>
|
|
478
|
-
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
|
|
479
|
-
<div className="bg-fm-secondary-500/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
|
|
480
|
-
<span className="text-2xl">📈</span>
|
|
481
|
-
</div>
|
|
482
|
-
<div>
|
|
483
|
-
<div className="text-fm-icon-active font-medium">
|
|
484
|
-
TrendingUpIcon
|
|
485
|
-
</div>
|
|
486
|
-
<div className="text-fm-tertiary text-xs">
|
|
487
|
-
Growth metrics
|
|
488
|
-
</div>
|
|
489
|
-
</div>
|
|
490
|
-
</div>
|
|
491
|
-
</div>
|
|
492
|
-
</div>
|
|
493
|
-
|
|
494
|
-
{/* Footer */}
|
|
495
|
-
<div className="border-fm-divider-secondary bg-fm-surface-secondary border-t backdrop-blur-xl">
|
|
496
|
-
<div className="!mx-auto max-w-7xl px-6 py-8">
|
|
497
|
-
<div className="!space-y-4 text-center">
|
|
498
|
-
<p className="text-fm-tertiary!">
|
|
499
|
-
FileTextIcon is part of the Aural UI icon library, designed
|
|
500
|
-
for document and text file interfaces.
|
|
501
|
-
</p>
|
|
502
|
-
<p className="text-fm-placeholder! text-sm">
|
|
503
|
-
Perfect for file management, document editors, content
|
|
504
|
-
management systems, and any interface requiring text
|
|
505
|
-
document representation.
|
|
506
|
-
</p>
|
|
507
|
-
</div>
|
|
508
|
-
</div>
|
|
509
|
-
</div>
|
|
510
|
-
</div>
|
|
511
|
-
</>
|
|
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
|
+
/>
|
|
512
89
|
),
|
|
513
90
|
},
|
|
514
91
|
},
|
|
515
92
|
tags: ["autodocs"],
|
|
516
93
|
argTypes: {
|
|
517
|
-
|
|
518
|
-
control:
|
|
519
|
-
description: "
|
|
94
|
+
className: {
|
|
95
|
+
control: "text",
|
|
96
|
+
description: "CSS classes including color token",
|
|
520
97
|
},
|
|
521
98
|
withAccessibility: {
|
|
522
99
|
control: "boolean",
|
|
523
|
-
description: "
|
|
524
|
-
},
|
|
525
|
-
height: {
|
|
526
|
-
control: { type: "range", min: 8, max: 96, step: 2 },
|
|
527
|
-
description: "Height of the icon in pixels",
|
|
528
|
-
},
|
|
529
|
-
className: {
|
|
530
|
-
control: "text",
|
|
531
|
-
description: "CSS classes for styling",
|
|
100
|
+
description: "Wrap with accessibility label",
|
|
532
101
|
},
|
|
533
102
|
},
|
|
534
103
|
}
|
|
@@ -536,163 +105,83 @@ function DocumentButton() {
|
|
|
536
105
|
export default meta
|
|
537
106
|
type Story = StoryObj<typeof FileTextIcon>
|
|
538
107
|
|
|
539
|
-
// Story parameters for consistent dark theme
|
|
540
|
-
const storyParameters = {
|
|
541
|
-
backgrounds: {
|
|
542
|
-
default: "dark",
|
|
543
|
-
values: [
|
|
544
|
-
{ name: "dark", value: "var(--color-fm-surface-primary)" },
|
|
545
|
-
{ name: "darker", value: "var(--color-fm-neutral-0)" },
|
|
546
|
-
],
|
|
547
|
-
},
|
|
548
|
-
}
|
|
549
|
-
|
|
550
108
|
export const Default: Story = {
|
|
551
109
|
args: {
|
|
552
|
-
|
|
553
|
-
height: 24,
|
|
554
|
-
className: "text-fm-icon-info",
|
|
110
|
+
className: "h-6 w-6 text-fm-icon-active",
|
|
555
111
|
withAccessibility: true,
|
|
556
112
|
},
|
|
557
|
-
parameters: storyParameters,
|
|
558
113
|
render: (args) => (
|
|
559
|
-
<
|
|
114
|
+
<IconDefaultCanvas>
|
|
560
115
|
<FileTextIcon {...args} />
|
|
561
|
-
</
|
|
116
|
+
</IconDefaultCanvas>
|
|
562
117
|
),
|
|
563
118
|
}
|
|
564
119
|
|
|
565
120
|
export const SizeVariations: Story = {
|
|
566
|
-
|
|
567
|
-
...storyParameters,
|
|
568
|
-
docs: {
|
|
569
|
-
description: {
|
|
570
|
-
story:
|
|
571
|
-
"FileTextIcon in different sizes, from small inline buttons to large call-to-action elements.",
|
|
572
|
-
},
|
|
573
|
-
},
|
|
574
|
-
},
|
|
575
|
-
render: () => (
|
|
576
|
-
<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">
|
|
577
|
-
<div className="text-center">
|
|
578
|
-
<FileTextIcon className="text-fm-icon-info !mx-auto mb-2 h-3 w-3" />
|
|
579
|
-
<span className="text-fm-tertiary text-xs">12px</span>
|
|
580
|
-
</div>
|
|
581
|
-
<div className="text-center">
|
|
582
|
-
<FileTextIcon className="text-fm-icon-info !mx-auto mb-2 h-4 w-4" />
|
|
583
|
-
<span className="text-fm-tertiary text-xs">16px</span>
|
|
584
|
-
</div>
|
|
585
|
-
<div className="text-center">
|
|
586
|
-
<FileTextIcon className="text-fm-icon-info !mx-auto mb-2 h-5 w-5" />
|
|
587
|
-
<span className="text-fm-tertiary text-xs">20px</span>
|
|
588
|
-
</div>
|
|
589
|
-
<div className="text-center">
|
|
590
|
-
<FileTextIcon className="text-fm-icon-info !mx-auto mb-2 h-6 w-6" />
|
|
591
|
-
<span className="text-fm-tertiary text-xs">24px</span>
|
|
592
|
-
</div>
|
|
593
|
-
<div className="text-center">
|
|
594
|
-
<FileTextIcon className="text-fm-icon-info !mx-auto mb-2 h-8 w-8" />
|
|
595
|
-
<span className="text-fm-tertiary text-xs">32px</span>
|
|
596
|
-
</div>
|
|
597
|
-
<div className="text-center">
|
|
598
|
-
<FileTextIcon className="text-fm-icon-info !mx-auto mb-2 h-12 w-12" />
|
|
599
|
-
<span className="text-fm-tertiary text-xs">48px</span>
|
|
600
|
-
</div>
|
|
601
|
-
</div>
|
|
602
|
-
),
|
|
121
|
+
render: () => <IconSizeVariations icon={FileTextIcon} />,
|
|
603
122
|
}
|
|
604
123
|
|
|
605
124
|
export const ColorVariations: Story = {
|
|
606
|
-
|
|
607
|
-
...storyParameters,
|
|
608
|
-
docs: {
|
|
609
|
-
description: {
|
|
610
|
-
story:
|
|
611
|
-
"FileTextIcon with different color variations using Tailwind classes.",
|
|
612
|
-
},
|
|
613
|
-
},
|
|
614
|
-
},
|
|
615
|
-
render: () => (
|
|
616
|
-
<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">
|
|
617
|
-
<div className="text-center">
|
|
618
|
-
<FileTextIcon className="text-fm-icon-info !mx-auto mb-2 h-6 w-6" />
|
|
619
|
-
<span className="text-fm-tertiary text-xs">Blue</span>
|
|
620
|
-
</div>
|
|
621
|
-
<div className="text-center">
|
|
622
|
-
<FileTextIcon className="text-fm-secondary-600 !mx-auto mb-2 h-6 w-6" />
|
|
623
|
-
<span className="text-fm-tertiary text-xs">Purple</span>
|
|
624
|
-
</div>
|
|
625
|
-
<div className="text-center">
|
|
626
|
-
<FileTextIcon className="text-fm-icon-positive !mx-auto mb-2 h-6 w-6" />
|
|
627
|
-
<span className="text-fm-tertiary text-xs">Green</span>
|
|
628
|
-
</div>
|
|
629
|
-
<div className="text-center">
|
|
630
|
-
<FileTextIcon className="text-fm-icon-negative !mx-auto mb-2 h-6 w-6" />
|
|
631
|
-
<span className="text-fm-tertiary text-xs">Red</span>
|
|
632
|
-
</div>
|
|
633
|
-
<div className="text-center">
|
|
634
|
-
<FileTextIcon className="text-fm-icon-warning !mx-auto mb-2 h-6 w-6" />
|
|
635
|
-
<span className="text-fm-tertiary text-xs">Yellow</span>
|
|
636
|
-
</div>
|
|
637
|
-
</div>
|
|
638
|
-
),
|
|
125
|
+
render: () => <IconColorVariations icon={FileTextIcon} />,
|
|
639
126
|
}
|
|
640
127
|
|
|
641
128
|
export const UsageExamples: Story = {
|
|
642
|
-
parameters: {
|
|
643
|
-
...storyParameters,
|
|
644
|
-
docs: {
|
|
645
|
-
description: {
|
|
646
|
-
story: "Common usage examples of FileTextIcon in different contexts.",
|
|
647
|
-
},
|
|
648
|
-
},
|
|
649
|
-
},
|
|
650
129
|
render: () => (
|
|
651
|
-
<
|
|
652
|
-
<
|
|
653
|
-
<
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
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
|
+
)}
|
|
666
147
|
</div>
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
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>
|
|
670
156
|
</div>
|
|
671
|
-
</
|
|
672
|
-
|
|
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>
|
|
673
174
|
),
|
|
674
175
|
}
|
|
675
176
|
|
|
676
177
|
export const Playground: Story = {
|
|
677
|
-
parameters: {
|
|
678
|
-
...storyParameters,
|
|
679
|
-
docs: {
|
|
680
|
-
description: {
|
|
681
|
-
story:
|
|
682
|
-
"Interactive playground to experiment with different FileTextIcon configurations.",
|
|
683
|
-
},
|
|
684
|
-
},
|
|
685
|
-
},
|
|
686
178
|
args: {
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
className: "text-fm-icon-info",
|
|
179
|
+
className: "h-8 w-8 text-fm-icon-active",
|
|
180
|
+
withAccessibility: true,
|
|
690
181
|
},
|
|
691
182
|
render: (args) => (
|
|
692
|
-
<
|
|
693
|
-
<
|
|
694
|
-
|
|
695
|
-
</div>
|
|
696
|
-
</div>
|
|
183
|
+
<IconPlaygroundCanvas>
|
|
184
|
+
<FileTextIcon {...args} />
|
|
185
|
+
</IconPlaygroundCanvas>
|
|
697
186
|
),
|
|
698
187
|
}
|