aural-ui 3.0.6 → 4.0.1
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 +271 -242
- package/dist/components/avatar/Avatar.stories.tsx +84 -70
- package/dist/components/button/Button.stories.tsx +7 -7
- package/dist/components/button/index.tsx +7 -7
- package/dist/components/card/Card.stories.tsx +3 -3
- package/dist/components/char-count/CharCount.stories.tsx +9 -9
- package/dist/components/circular-loader/CircularLoader.stories.tsx +109 -93
- package/dist/components/clamp-lines/ClampLines.stories.tsx +25 -0
- package/dist/components/clamp-lines/index.tsx +6 -1
- package/dist/components/collapsible/Collapsible.stories.tsx +1 -1
- package/dist/components/command/Command.stories.tsx +52 -38
- package/dist/components/dialog/Dialog.stories.tsx +89 -84
- package/dist/components/divider/Divider.stories.tsx +86 -60
- package/dist/components/dot-loader/DotLoader.stories.tsx +12 -12
- package/dist/components/drawer/Drawer.stories.tsx +74 -44
- package/dist/components/drawer/index.tsx +3 -3
- package/dist/components/dropdown/Dropdown.stories.tsx +42 -32
- package/dist/components/helper-text/HelperText.stories.tsx +2 -2
- package/dist/components/hover-card/HoverCard.stories.tsx +211 -178
- package/dist/components/input/Input.stories.tsx +2 -2
- package/dist/components/input/index.tsx +2 -0
- package/dist/components/label/Label.stories.tsx +10 -10
- package/dist/components/list/List.stories.tsx +58 -44
- package/dist/components/marquee/Marquee.stories.tsx +131 -113
- package/dist/components/otp-inputs/OtpInputs.stories.tsx +47 -35
- package/dist/components/overlay/Overlay.stories.tsx +98 -92
- package/dist/components/overlay/index.tsx +4 -4
- package/dist/components/popover/Popover.stories.tsx +132 -106
- package/dist/components/radio/Radio.stories.tsx +2 -2
- package/dist/components/resizable/Resizable.stories.tsx +186 -138
- package/dist/components/scroll-area/ScrollArea.stories.tsx +174 -120
- package/dist/components/search/Search.stories.tsx +81 -59
- package/dist/components/select/Select.stories.tsx +3 -1
- package/dist/components/sheet/Sheet.stories.tsx +68 -54
- package/dist/components/slider/Slider.stories.tsx +71 -47
- package/dist/components/stepper/Stepper.stories.tsx +16 -16
- package/dist/components/switch/Switch.stories.tsx +12 -12
- package/dist/components/table/Table.stories.tsx +8 -6
- package/dist/components/tabs/Tabs.stories.tsx +324 -268
- package/dist/components/textarea/TextArea.stories.tsx +1 -1
- package/dist/components/thumbnail-tags/ThumbnailTags.stories.tsx +16 -10
- package/dist/components/toast/Toast.stories.tsx +51 -45
- package/dist/components/toggle/Toggle.stories.tsx +111 -89
- package/dist/components/tooltip/Tooltip.stories.tsx +160 -144
- package/dist/icons/Icons.stories.tsx +2 -2
- package/dist/icons/ai-avatar-icon/AiAvatarIcon.stories.tsx +287 -237
- package/dist/icons/alert-icon/AlertIcon.stories.tsx +290 -248
- package/dist/icons/all-icons.tsx +97 -81
- package/dist/icons/angle-down-icon/AngleDownIcon.stories.tsx +312 -270
- package/dist/icons/apple-logo-icon/AppleLogoIcon.stories.tsx +294 -244
- package/dist/icons/arrow-box-left-icon/ArrowBoxLeftIcon.stories.tsx +309 -279
- package/dist/icons/arrow-corner-up-left-icon/ArrowCornerUpLeftIcon.stories.tsx +294 -258
- package/dist/icons/arrow-corner-up-right-icon/ArrowCornerUpRightIcon.stories.tsx +289 -255
- package/dist/icons/arrow-left-icon/ArrowLeftIcon.stories.tsx +288 -256
- package/dist/icons/arrow-right-icon/ArrowRightIcon.stories.tsx +322 -288
- package/dist/icons/arrow-right-up-icon/ArrowRightUpIcon.stories.tsx +340 -296
- package/dist/icons/art-board-icon/ArtBoardIcon.stories.tsx +197 -177
- package/dist/icons/audio-bar-icon/AudioBarIcon.stories.tsx +390 -328
- package/dist/icons/backward-ten-seconds-icon/BackwardTenSecondsIcon.stories.tsx +313 -277
- package/dist/icons/bubble-check-icon/BubbleCheckIcon.stories.tsx +367 -309
- package/dist/icons/bubble-crossed-icon/BubbleCrossedIcon.stories.tsx +356 -308
- package/dist/icons/bubble-sparkle-icon/BubbleSparkleIcon.stories.tsx +280 -234
- package/dist/icons/camera-icon/CameraIcon.stories.tsx +370 -326
- package/dist/icons/capital-a-letter-icon/CapitalALetterIcon.stories.tsx +300 -256
- package/dist/icons/chevron-double-left-icon/ChevronDoubleLeftIcon.stories.tsx +298 -262
- package/dist/icons/chevron-double-right-icon/ChevronDoubleRightIcon.stories.tsx +294 -260
- package/dist/icons/chevron-down-icon/ChevronDownIcon.stories.tsx +291 -259
- package/dist/icons/chevron-left-icon/ChevronLeftIcon.stories.tsx +286 -256
- package/dist/icons/chevron-right-icon/ChevronRightIcon.stories.tsx +282 -256
- package/dist/icons/chevron-up-icon/ChevronUpIcon.stories.tsx +292 -256
- package/dist/icons/circle-tick-icon/CircleTickIcon.stories.tsx +338 -290
- package/dist/icons/circular-play-icon/CircularPlayIcon.stories.tsx +167 -148
- package/dist/icons/coin-icon/CoinIcon.stories.tsx +342 -296
- package/dist/icons/coin-toons-icon/CoinToonsIcon.stories.tsx +342 -296
- package/dist/icons/column-wide-add-icon/ColumnWideAddIcon.stories.tsx +280 -238
- package/dist/icons/command-icon/CommandIcon.stories.tsx +328 -280
- package/dist/icons/copy-icon/CopyIcon.stories.tsx +294 -256
- package/dist/icons/cross-circle-icon/CrossCircleIcon.stories.tsx +285 -235
- package/dist/icons/cross-icon/CrossIcon.stories.tsx +308 -266
- package/dist/icons/download-icon/DownloadIcon.stories.tsx +271 -231
- package/dist/icons/edit-big-icon/EditBigIcon.stories.tsx +330 -278
- package/dist/icons/email-icon/EmailIcon.stories.tsx +303 -257
- package/dist/icons/expand-icon/ExpandIcon.stories.tsx +324 -286
- package/dist/icons/eye-close-icon/EyeCloseIcon.stories.tsx +317 -271
- package/dist/icons/eye-open-icon/EyeOpenIcon.stories.tsx +320 -272
- package/dist/icons/feature-shine-icon/FeatureShineIcon.stories.tsx +322 -280
- package/dist/icons/file-chart-icon/FileChartIcon.stories.tsx +315 -277
- package/dist/icons/file-text-icon/FileTextIcon.stories.tsx +199 -177
- package/dist/icons/filter-bar-row-icon/FilterBarRowIcon.stories.tsx +304 -264
- package/dist/icons/forward-ten-seconds-icon/ForwardTenSecondsIcon.stories.tsx +311 -277
- package/dist/icons/git-branch-icon/GitBranchIcon.stories.tsx +327 -287
- package/dist/icons/git-fork-icon/GitForkIcon.stories.tsx +314 -278
- package/dist/icons/globe-icon/GlobeIcon.stories.tsx +113 -98
- package/dist/icons/google-logo-icon/GoogleLogoIcon.stories.tsx +274 -226
- package/dist/icons/grip-vertical-icon/GripVerticalIcon.stories.tsx +349 -303
- package/dist/icons/head-icon/HeadIcon.stories.tsx +286 -246
- package/dist/icons/heart-icon/HeartIcon.stories.tsx +312 -268
- package/dist/icons/image-avatar-sparkle-icon/ImageAvatarSparkleIcon.stories.tsx +246 -210
- package/dist/icons/image-icon/ImageIcon.stories.tsx +330 -284
- package/dist/icons/import-folder-icon/ImportFolderIcon.stories.tsx +326 -282
- package/dist/icons/import-left-arrow-folder-icon/ImportLeftArrowFolderIcon.stories.tsx +330 -294
- package/dist/icons/indian-flag-icon/IndianFlagIcon.stories.tsx +288 -234
- package/dist/icons/instagram-icon/InstagramIcon.stories.tsx +386 -330
- package/dist/icons/layout-column-icon/LayoutColumnIcon.stories.tsx +305 -263
- package/dist/icons/layout-left-icon/LayoutLeftIcon.stories.tsx +295 -259
- package/dist/icons/layout-right-icon/LayoutRightIcon.stories.tsx +296 -256
- package/dist/icons/light-bulb-simple-icon/LightBulbSimpleIcon.stories.tsx +322 -282
- package/dist/icons/linked-in-icon/LinkedInIcon.stories.tsx +399 -359
- package/dist/icons/magic-book-icon/MagicBookIcon.stories.tsx +314 -272
- package/dist/icons/magic-edit-icon/MagicEditIcon.stories.tsx +238 -206
- package/dist/icons/maintenance-icon/MaintenanceIcon.stories.tsx +322 -276
- package/dist/icons/message-icon/MessageIcon.stories.tsx +192 -170
- package/dist/icons/minimize-icon/MinimizeIcon.stories.tsx +348 -304
- package/dist/icons/moon-icon/MoonIcon.stories.tsx +191 -167
- package/dist/icons/move-horizontal-icon/MoveHorizontalIcon.stories.tsx +380 -326
- package/dist/icons/move-vertical-icon/MoveVerticalIcon.stories.tsx +345 -291
- package/dist/icons/musical-note-icon/MusicalNoteIcon.stories.tsx +310 -266
- package/dist/icons/notepad-icon/NotepadIcon.stories.tsx +311 -271
- package/dist/icons/notes-icon/NotesIcon.stories.tsx +311 -271
- package/dist/icons/page-search-icon/PageSearchIcon.stories.tsx +309 -271
- package/dist/icons/page-text-icon/PageTextIcon.stories.tsx +248 -210
- package/dist/icons/paint-roll-icon/PaintRollIcon.stories.tsx +310 -262
- package/dist/icons/paper-plane-icon/PaperPlaneIcon.stories.tsx +274 -236
- package/dist/icons/pause-icon/PauseIcon.stories.tsx +324 -280
- package/dist/icons/pencil-icon/PencilIcon.stories.tsx +323 -281
- package/dist/icons/phone-icon/PhoneIcon.stories.tsx +288 -240
- package/dist/icons/plus-icon/PlusIcon.stories.tsx +315 -273
- package/dist/icons/pocket-studio-icon/PocketStudioIcon.stories.tsx +278 -234
- package/dist/icons/scroll-down-icon/ScrollDownIcon.stories.tsx +161 -151
- package/dist/icons/search-icon/SearchIcon.stories.tsx +324 -284
- package/dist/icons/setting-icon/SettingIcon.stories.tsx +306 -264
- package/dist/icons/share-icon/ShareIcon.stories.tsx +314 -272
- package/dist/icons/shield-icon/ShieldIcon.stories.tsx +281 -235
- package/dist/icons/site-logo-icon/SiteLogoIcon.stories.tsx +309 -250
- package/dist/icons/skip-backward-icon/SkipBackwardIcon.stories.tsx +317 -279
- package/dist/icons/skip-forward-icon/SkipForwardIcon.stories.tsx +315 -279
- package/dist/icons/sparkles-soft-icon/SparklesSoftIcon.stories.tsx +299 -253
- package/dist/icons/spinner-gradient-icon/SpinnerGradientIcon.stories.tsx +185 -169
- package/dist/icons/spinner-gradient-icon/index.tsx +6 -1
- package/dist/icons/spinner-solid-icon/SpinnerSolidIcon.stories.tsx +192 -168
- package/dist/icons/spinner-solid-icon/index.tsx +6 -1
- package/dist/icons/spinner-solid-neutral-icon/SpinnerSolidINeutralcon.stories.tsx +212 -178
- package/dist/icons/spinner-solid-neutral-icon/index.tsx +1 -1
- package/dist/icons/star-icon/StarIcon.stories.tsx +290 -244
- package/dist/icons/store-coin-icon/StoreCoinIcon.stories.tsx +286 -234
- package/dist/icons/suggestion-icon/SuggestionIcon.stories.tsx +272 -230
- package/dist/icons/sun-icon/SunIcon.stories.tsx +262 -226
- package/dist/icons/text-color-icon/TextColorIcon.stories.tsx +321 -279
- package/dist/icons/text-indicator-icon/TextIndicatorIcon.stories.tsx +332 -282
- package/dist/icons/threads-icon/ThreadsIcon.stories.tsx +394 -342
- package/dist/icons/tick-circle-icon/TickCircleIcon.stories.tsx +338 -290
- package/dist/icons/tick-icon/TickIcon.stories.tsx +364 -315
- package/dist/icons/trash-icon/TrashIcon.stories.tsx +293 -253
- package/dist/icons/twitter-x-icon/TwitterXIcon.stories.tsx +396 -338
- package/dist/icons/upload-icon/UploadIcon.stories.tsx +291 -247
- package/dist/icons/vertical-menu-icon/VerticalMenuIcon.stories.tsx +309 -271
- package/dist/icons/video-play-list-icon/VideoPlaylistIcon.stories.tsx +336 -290
- package/dist/icons/voice-playing-icon/VoicePlayingIcon.stories.tsx +382 -334
- package/dist/icons/volume-full-icon/VolumeFullIcon.stories.tsx +349 -305
- package/dist/icons/volume-half-icon/VolumeHalfIcon.stories.tsx +327 -295
- package/dist/icons/volume-off-icon/VolumeOffIcon.stories.tsx +336 -296
- package/dist/icons/warning-icon/WarningIcon.stories.tsx +314 -274
- package/dist/icons/youtube-icon/YoutubeIcon.stories.tsx +311 -261
- 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
|
@@ -11,9 +11,9 @@ const meta: Meta<typeof TrashIcon> = {
|
|
|
11
11
|
backgrounds: {
|
|
12
12
|
default: "dark",
|
|
13
13
|
values: [
|
|
14
|
-
{ name: "dark", value: "
|
|
15
|
-
{ name: "darker", value: "
|
|
16
|
-
{ name: "light", value: "
|
|
14
|
+
{ name: "dark", value: "var(--color-fm-surface-primary)" },
|
|
15
|
+
{ name: "darker", value: "var(--color-fm-neutral-0)" },
|
|
16
|
+
{ name: "light", value: "var(--color-fm-neutral-1100)" },
|
|
17
17
|
],
|
|
18
18
|
},
|
|
19
19
|
docs: {
|
|
@@ -40,59 +40,59 @@ const meta: Meta<typeof TrashIcon> = {
|
|
|
40
40
|
background: transparent !important;
|
|
41
41
|
}
|
|
42
42
|
body {
|
|
43
|
-
background:
|
|
43
|
+
background: var(--color-fm-surface-primary) !important;
|
|
44
44
|
}
|
|
45
45
|
#storybook-docs {
|
|
46
|
-
background:
|
|
46
|
+
background: var(--color-fm-surface-primary) !important;
|
|
47
47
|
}
|
|
48
48
|
.sbdocs-preview {
|
|
49
49
|
background: transparent !important;
|
|
50
50
|
border: none !important;
|
|
51
51
|
}
|
|
52
52
|
.sbdocs-h1, .sbdocs-h2, .sbdocs-h3, .sbdocs-h4, .sbdocs-h5, .sbdocs-h6 {
|
|
53
|
-
color:
|
|
53
|
+
color: var(--color-fm-icon-active) !important;
|
|
54
54
|
}
|
|
55
55
|
.sbdocs-p, .sbdocs-li {
|
|
56
|
-
color:
|
|
56
|
+
color: var(--color-fm-secondary) !important;
|
|
57
57
|
}
|
|
58
58
|
.sbdocs-code {
|
|
59
|
-
background:
|
|
60
|
-
color:
|
|
61
|
-
border: 1px solid
|
|
59
|
+
background: var(--color-fm-surface-secondary) !important;
|
|
60
|
+
color: var(--color-fm-secondary-500) !important;
|
|
61
|
+
border: 1px solid var(--color-fm-divider-secondary) !important;
|
|
62
62
|
}
|
|
63
63
|
.sbdocs-pre {
|
|
64
|
-
background:
|
|
65
|
-
border: 1px solid
|
|
64
|
+
background: var(--color-fm-surface-secondary) !important;
|
|
65
|
+
border: 1px solid var(--color-fm-divider-secondary) !important;
|
|
66
66
|
}
|
|
67
67
|
.sbdocs-table {
|
|
68
|
-
background:
|
|
69
|
-
border: 1px solid
|
|
68
|
+
background: var(--color-fm-surface-secondary) !important;
|
|
69
|
+
border: 1px solid var(--color-fm-divider-secondary) !important;
|
|
70
70
|
}
|
|
71
71
|
.sbdocs-table th {
|
|
72
|
-
background:
|
|
73
|
-
color:
|
|
74
|
-
border-bottom: 1px solid
|
|
72
|
+
background: var(--color-fm-surface-secondary) !important;
|
|
73
|
+
color: var(--color-fm-icon-active) !important;
|
|
74
|
+
border-bottom: 1px solid var(--color-fm-divider-secondary) !important;
|
|
75
75
|
}
|
|
76
76
|
.sbdocs-table td {
|
|
77
|
-
color:
|
|
78
|
-
border-bottom: 1px solid
|
|
77
|
+
color: var(--color-fm-secondary) !important;
|
|
78
|
+
border-bottom: 1px solid var(--color-fm-divider-tertiary) !important;
|
|
79
79
|
}
|
|
80
80
|
`}
|
|
81
81
|
</style>
|
|
82
82
|
|
|
83
|
-
<div className="
|
|
83
|
+
<div className="from-fm-surface-primary via-fm-icon-negative/5 to-fm-surface-primary min-h-screen bg-linear-to-br">
|
|
84
84
|
{/* Header */}
|
|
85
|
-
<div className="relative overflow-hidden border-b
|
|
86
|
-
<div className="absolute inset-0 bg-
|
|
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-negative/10 to-fm-icon-warning/10 absolute inset-0 bg-linear-to-r via-transparent" />
|
|
87
87
|
<div className="relative !mx-auto max-w-7xl px-6 py-16">
|
|
88
88
|
<div className="!space-y-6 text-center">
|
|
89
|
-
<div className="!mx-auto flex h-24 w-24 items-center justify-center rounded-2xl border
|
|
90
|
-
<TrashIcon className="h-12 w-12
|
|
89
|
+
<div className="border-fm-icon-negative/30 from-fm-icon-negative/20 to-fm-icon-warning/20 !mx-auto flex h-24 w-24 items-center justify-center rounded-2xl border bg-linear-to-br">
|
|
90
|
+
<TrashIcon className="text-fm-icon-negative h-12 w-12" />
|
|
91
91
|
</div>
|
|
92
92
|
<h1 className="!text-fm-primary text-5xl font-bold">
|
|
93
93
|
TrashIcon
|
|
94
94
|
</h1>
|
|
95
|
-
<p className="!mx-auto max-w-3xl text-xl leading-relaxed
|
|
95
|
+
<p className="text-fm-secondary! !mx-auto max-w-3xl text-xl leading-relaxed">
|
|
96
96
|
A versatile trash icon for delete operations, removal
|
|
97
97
|
actions, and cleanup functionality. Built with accessibility
|
|
98
98
|
in mind using Radix UI's AccessibleIcon wrapper.
|
|
@@ -101,28 +101,28 @@ const meta: Meta<typeof TrashIcon> = {
|
|
|
101
101
|
{/* Stats */}
|
|
102
102
|
<div className="flex items-center justify-center gap-8 pt-8">
|
|
103
103
|
<div className="text-center">
|
|
104
|
-
<div className="text-3xl font-bold
|
|
104
|
+
<div className="text-fm-icon-negative text-3xl font-bold">
|
|
105
105
|
Accessible
|
|
106
106
|
</div>
|
|
107
|
-
<div className="text-
|
|
107
|
+
<div className="text-fm-tertiary text-sm">
|
|
108
108
|
Screen reader friendly
|
|
109
109
|
</div>
|
|
110
110
|
</div>
|
|
111
|
-
<div className="h-8 w-px
|
|
111
|
+
<div className="bg-fm-divider-primary h-8 w-px" />
|
|
112
112
|
<div className="text-center">
|
|
113
|
-
<div className="text-3xl font-bold
|
|
113
|
+
<div className="text-fm-icon-warning text-3xl font-bold">
|
|
114
114
|
Scalable
|
|
115
115
|
</div>
|
|
116
|
-
<div className="text-
|
|
116
|
+
<div className="text-fm-tertiary text-sm">
|
|
117
117
|
Any size needed
|
|
118
118
|
</div>
|
|
119
119
|
</div>
|
|
120
|
-
<div className="h-8 w-px
|
|
120
|
+
<div className="bg-fm-divider-primary h-8 w-px" />
|
|
121
121
|
<div className="text-center">
|
|
122
|
-
<div className="text-3xl font-bold
|
|
122
|
+
<div className="text-fm-secondary-600 text-3xl font-bold">
|
|
123
123
|
Flexible
|
|
124
124
|
</div>
|
|
125
|
-
<div className="text-
|
|
125
|
+
<div className="text-fm-tertiary text-sm">
|
|
126
126
|
Customizable styling
|
|
127
127
|
</div>
|
|
128
128
|
</div>
|
|
@@ -135,16 +135,16 @@ const meta: Meta<typeof TrashIcon> = {
|
|
|
135
135
|
<div className="!mx-auto max-w-7xl !space-y-16 px-6 py-12">
|
|
136
136
|
{/* Quick Usage */}
|
|
137
137
|
<div className="!space-y-8">
|
|
138
|
-
<h2 className="text-center text-3xl font-bold
|
|
138
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
139
139
|
Quick Start
|
|
140
140
|
</h2>
|
|
141
141
|
<div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
|
|
142
142
|
<div className="!space-y-4">
|
|
143
|
-
<h3 className="text-xl font-semibold
|
|
143
|
+
<h3 className="text-fm-icon-negative! text-xl font-semibold">
|
|
144
144
|
Basic Usage
|
|
145
145
|
</h3>
|
|
146
|
-
<div className="rounded-lg
|
|
147
|
-
<pre className="overflow-x-auto text-sm
|
|
146
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
147
|
+
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
148
148
|
{`import { TrashIcon } from "@icons/trash-icon"
|
|
149
149
|
|
|
150
150
|
function MyComponent() {
|
|
@@ -160,13 +160,13 @@ function MyComponent() {
|
|
|
160
160
|
</div>
|
|
161
161
|
|
|
162
162
|
<div className="!space-y-4">
|
|
163
|
-
<h3 className="text-xl font-semibold
|
|
163
|
+
<h3 className="text-fm-icon-negative! text-xl font-semibold">
|
|
164
164
|
Live Preview
|
|
165
165
|
</h3>
|
|
166
|
-
<div className="flex h-32 items-center justify-center rounded-lg border
|
|
167
|
-
<button className="flex items-center gap-3 rounded-lg border
|
|
168
|
-
<TrashIcon className="h-5 w-5
|
|
169
|
-
<span className="text-
|
|
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-negative/20 bg-fm-icon-negative/10 hover:bg-fm-icon-negative/20 flex items-center gap-3 rounded-lg border px-4 py-2 transition-colors">
|
|
168
|
+
<TrashIcon className="text-fm-icon-negative h-5 w-5" />
|
|
169
|
+
<span className="text-fm-icon-active">Delete item</span>
|
|
170
170
|
</button>
|
|
171
171
|
</div>
|
|
172
172
|
</div>
|
|
@@ -175,94 +175,102 @@ function MyComponent() {
|
|
|
175
175
|
|
|
176
176
|
{/* Props Documentation */}
|
|
177
177
|
<div className="!space-y-8">
|
|
178
|
-
<h2 className="text-center text-3xl font-bold
|
|
178
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
179
179
|
Props & Configuration
|
|
180
180
|
</h2>
|
|
181
181
|
|
|
182
|
-
<div className="overflow-hidden rounded-lg border
|
|
183
|
-
<div className="bg-
|
|
184
|
-
<h3 className="text-xl font-semibold
|
|
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>
|
|
185
187
|
</div>
|
|
186
188
|
<table className="!my-0 w-full">
|
|
187
|
-
<thead className="bg-
|
|
188
|
-
<tr className="border-
|
|
189
|
-
<th className="px-6 py-4 text-left text-sm font-semibold
|
|
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">
|
|
190
192
|
Prop
|
|
191
193
|
</th>
|
|
192
|
-
<th className="px-6 py-4 text-left text-sm font-semibold
|
|
194
|
+
<th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
|
|
193
195
|
Type
|
|
194
196
|
</th>
|
|
195
|
-
<th className="px-6 py-4 text-left text-sm font-semibold
|
|
197
|
+
<th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
|
|
196
198
|
Default
|
|
197
199
|
</th>
|
|
198
|
-
<th className="px-6 py-4 text-left text-sm font-semibold
|
|
200
|
+
<th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
|
|
199
201
|
Description
|
|
200
202
|
</th>
|
|
201
203
|
</tr>
|
|
202
204
|
</thead>
|
|
203
205
|
<tbody>
|
|
204
206
|
{" "}
|
|
205
|
-
<tr className="
|
|
206
|
-
<td className="px-6 py-4 font-mono text-sm
|
|
207
|
+
<tr className="bg-fm-surface-secondary!">
|
|
208
|
+
<td className="text-fm-icon-info! px-6 py-4 font-mono text-sm">
|
|
207
209
|
withAccessibility
|
|
208
210
|
</td>
|
|
209
|
-
<td className="px-6 py-4 text-sm
|
|
211
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
210
212
|
boolean
|
|
211
213
|
</td>
|
|
212
|
-
<td className="px-6 py-4 text-sm
|
|
214
|
+
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
213
215
|
true
|
|
214
216
|
</td>
|
|
215
|
-
<td className="px-6 py-4 text-sm
|
|
217
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
216
218
|
Whether to wrap the icon with accessibility feature
|
|
217
219
|
</td>
|
|
218
220
|
</tr>
|
|
219
|
-
<tr className="border-
|
|
220
|
-
<td className="px-6 py-4 font-mono text-sm
|
|
221
|
+
<tr className="border-fm-divider-tertiary bg-fm-surface-secondary! border-b">
|
|
222
|
+
<td className="text-fm-icon-negative! px-6 py-4 font-mono text-sm">
|
|
221
223
|
height
|
|
222
224
|
</td>
|
|
223
|
-
<td className="px-6 py-4 text-sm
|
|
225
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
224
226
|
number | string
|
|
225
227
|
</td>
|
|
226
|
-
<td className="px-6 py-4 text-sm
|
|
227
|
-
|
|
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">
|
|
228
232
|
Height of the icon in pixels
|
|
229
233
|
</td>
|
|
230
234
|
</tr>
|
|
231
|
-
<tr className="border-
|
|
232
|
-
<td className="px-6 py-4 font-mono text-sm
|
|
235
|
+
<tr className="border-fm-divider-tertiary border-b">
|
|
236
|
+
<td className="text-fm-icon-negative! px-6 py-4 font-mono text-sm">
|
|
233
237
|
stroke
|
|
234
238
|
</td>
|
|
235
|
-
<td className="px-6 py-4 text-sm
|
|
239
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
236
240
|
string
|
|
237
241
|
</td>
|
|
238
|
-
<td className="px-6 py-4 text-sm
|
|
242
|
+
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
239
243
|
currentColor
|
|
240
244
|
</td>
|
|
241
|
-
<td className="px-6 py-4 text-sm
|
|
245
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
242
246
|
Stroke color of the icon
|
|
243
247
|
</td>
|
|
244
248
|
</tr>
|
|
245
|
-
<tr className="border-
|
|
246
|
-
<td className="px-6 py-4 font-mono text-sm
|
|
249
|
+
<tr className="border-fm-divider-tertiary bg-fm-surface-secondary! border-b">
|
|
250
|
+
<td className="text-fm-icon-negative! px-6 py-4 font-mono text-sm">
|
|
247
251
|
className
|
|
248
252
|
</td>
|
|
249
|
-
<td className="px-6 py-4 text-sm
|
|
253
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
250
254
|
string
|
|
251
255
|
</td>
|
|
252
|
-
<td className="px-6 py-4 text-sm
|
|
253
|
-
|
|
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">
|
|
254
260
|
CSS classes for styling
|
|
255
261
|
</td>
|
|
256
262
|
</tr>
|
|
257
|
-
<tr className="
|
|
258
|
-
<td className="px-6 py-4 font-mono text-sm
|
|
263
|
+
<tr className="bg-fm-surface-secondary!">
|
|
264
|
+
<td className="text-fm-icon-negative! px-6 py-4 font-mono text-sm">
|
|
259
265
|
...svgProps
|
|
260
266
|
</td>
|
|
261
|
-
<td className="px-6 py-4 text-sm
|
|
267
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
262
268
|
SVGProps
|
|
263
269
|
</td>
|
|
264
|
-
<td className="px-6 py-4 text-sm
|
|
265
|
-
|
|
270
|
+
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
271
|
+
-
|
|
272
|
+
</td>
|
|
273
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
266
274
|
All standard SVG element props
|
|
267
275
|
</td>
|
|
268
276
|
</tr>
|
|
@@ -273,50 +281,62 @@ function MyComponent() {
|
|
|
273
281
|
|
|
274
282
|
{/* Size Variations */}
|
|
275
283
|
<div className="!space-y-8">
|
|
276
|
-
<h2 className="text-center text-3xl font-bold
|
|
284
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
277
285
|
Size Variations
|
|
278
286
|
</h2>
|
|
279
|
-
<div className="rounded-lg border
|
|
287
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-8">
|
|
280
288
|
<div className="!space-y-6">
|
|
281
289
|
<div className="grid grid-cols-1 gap-8 md:grid-cols-2">
|
|
282
290
|
<div className="!space-y-4">
|
|
283
|
-
<h3 className="text-lg font-semibold
|
|
291
|
+
<h3 className="text-fm-icon-negative! text-lg font-semibold">
|
|
284
292
|
Standard Sizes
|
|
285
293
|
</h3>
|
|
286
|
-
<div className="flex items-end gap-6 rounded-lg
|
|
294
|
+
<div className="bg-fm-surface-secondary flex items-end gap-6 rounded-lg p-6">
|
|
287
295
|
<div className="text-center">
|
|
288
|
-
<TrashIcon className="!mx-auto mb-2 h-3 w-3
|
|
289
|
-
<span className="text-
|
|
296
|
+
<TrashIcon className="text-fm-icon-negative !mx-auto mb-2 h-3 w-3" />
|
|
297
|
+
<span className="text-fm-tertiary text-xs">
|
|
298
|
+
12px
|
|
299
|
+
</span>
|
|
290
300
|
</div>
|
|
291
301
|
<div className="text-center">
|
|
292
|
-
<TrashIcon className="!mx-auto mb-2 h-4 w-4
|
|
293
|
-
<span className="text-
|
|
302
|
+
<TrashIcon className="text-fm-icon-negative !mx-auto mb-2 h-4 w-4" />
|
|
303
|
+
<span className="text-fm-tertiary text-xs">
|
|
304
|
+
16px
|
|
305
|
+
</span>
|
|
294
306
|
</div>
|
|
295
307
|
<div className="text-center">
|
|
296
|
-
<TrashIcon className="!mx-auto mb-2 h-5 w-5
|
|
297
|
-
<span className="text-
|
|
308
|
+
<TrashIcon className="text-fm-icon-negative !mx-auto mb-2 h-5 w-5" />
|
|
309
|
+
<span className="text-fm-tertiary text-xs">
|
|
310
|
+
20px
|
|
311
|
+
</span>
|
|
298
312
|
</div>
|
|
299
313
|
<div className="text-center">
|
|
300
|
-
<TrashIcon className="!mx-auto mb-2 h-6 w-6
|
|
301
|
-
<span className="text-
|
|
314
|
+
<TrashIcon className="text-fm-icon-negative !mx-auto mb-2 h-6 w-6" />
|
|
315
|
+
<span className="text-fm-tertiary text-xs">
|
|
316
|
+
24px
|
|
317
|
+
</span>
|
|
302
318
|
</div>
|
|
303
319
|
<div className="text-center">
|
|
304
|
-
<TrashIcon className="!mx-auto mb-2 h-8 w-8
|
|
305
|
-
<span className="text-
|
|
320
|
+
<TrashIcon className="text-fm-icon-negative !mx-auto mb-2 h-8 w-8" />
|
|
321
|
+
<span className="text-fm-tertiary text-xs">
|
|
322
|
+
32px
|
|
323
|
+
</span>
|
|
306
324
|
</div>
|
|
307
325
|
<div className="text-center">
|
|
308
|
-
<TrashIcon className="!mx-auto mb-2 h-12 w-12
|
|
309
|
-
<span className="text-
|
|
326
|
+
<TrashIcon className="text-fm-icon-negative !mx-auto mb-2 h-12 w-12" />
|
|
327
|
+
<span className="text-fm-tertiary text-xs">
|
|
328
|
+
48px
|
|
329
|
+
</span>
|
|
310
330
|
</div>
|
|
311
331
|
</div>
|
|
312
332
|
</div>
|
|
313
333
|
|
|
314
334
|
<div className="!space-y-4">
|
|
315
|
-
<h3 className="text-lg font-semibold
|
|
335
|
+
<h3 className="text-fm-icon-negative! text-lg font-semibold">
|
|
316
336
|
Code Example
|
|
317
337
|
</h3>
|
|
318
|
-
<div className="rounded-lg
|
|
319
|
-
<pre className="overflow-x-auto text-sm
|
|
338
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
339
|
+
<pre className="text-fm-icon-info! overflow-x-auto text-sm">
|
|
320
340
|
{`// Small (16px)
|
|
321
341
|
<TrashIcon className="h-4 w-4" />
|
|
322
342
|
|
|
@@ -338,56 +358,56 @@ function MyComponent() {
|
|
|
338
358
|
|
|
339
359
|
{/* Color Variations */}
|
|
340
360
|
<div className="!space-y-8">
|
|
341
|
-
<h2 className="text-center text-3xl font-bold
|
|
361
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
342
362
|
Color Variations
|
|
343
363
|
</h2>
|
|
344
364
|
<div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
|
|
345
365
|
<div className="!space-y-4">
|
|
346
|
-
<h3 className="text-lg font-semibold
|
|
366
|
+
<h3 className="text-fm-icon-negative! text-lg font-semibold">
|
|
347
367
|
Semantic Colors
|
|
348
368
|
</h3>
|
|
349
|
-
<div className="!space-y-4 rounded-lg border
|
|
369
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
|
|
350
370
|
<div className="flex items-center gap-4">
|
|
351
|
-
<TrashIcon className="h-6 w-6
|
|
371
|
+
<TrashIcon className="text-fm-icon-negative h-6 w-6" />
|
|
352
372
|
<div>
|
|
353
|
-
<div className="text-sm font-medium
|
|
373
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
354
374
|
Danger
|
|
355
375
|
</div>
|
|
356
|
-
<div className="text-
|
|
357
|
-
text-
|
|
376
|
+
<div className="text-fm-tertiary text-xs">
|
|
377
|
+
text-fm-icon-negative
|
|
358
378
|
</div>
|
|
359
379
|
</div>
|
|
360
380
|
</div>
|
|
361
381
|
<div className="flex items-center gap-4">
|
|
362
|
-
<TrashIcon className="h-6 w-6
|
|
382
|
+
<TrashIcon className="text-fm-icon-warning h-6 w-6" />
|
|
363
383
|
<div>
|
|
364
|
-
<div className="text-sm font-medium
|
|
384
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
365
385
|
Warning
|
|
366
386
|
</div>
|
|
367
|
-
<div className="text-
|
|
368
|
-
text-
|
|
387
|
+
<div className="text-fm-tertiary text-xs">
|
|
388
|
+
text-fm-icon-warning
|
|
369
389
|
</div>
|
|
370
390
|
</div>
|
|
371
391
|
</div>
|
|
372
392
|
<div className="flex items-center gap-4">
|
|
373
|
-
<TrashIcon className="h-6 w-6
|
|
393
|
+
<TrashIcon className="text-fm-placeholder h-6 w-6" />
|
|
374
394
|
<div>
|
|
375
|
-
<div className="text-sm font-medium
|
|
395
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
376
396
|
Neutral
|
|
377
397
|
</div>
|
|
378
|
-
<div className="text-
|
|
379
|
-
text-
|
|
398
|
+
<div className="text-fm-tertiary text-xs">
|
|
399
|
+
text-fm-placeholder
|
|
380
400
|
</div>
|
|
381
401
|
</div>
|
|
382
402
|
</div>
|
|
383
403
|
<div className="flex items-center gap-4">
|
|
384
|
-
<TrashIcon className="h-6 w-6
|
|
404
|
+
<TrashIcon className="text-fm-placeholder h-6 w-6" />
|
|
385
405
|
<div>
|
|
386
|
-
<div className="text-sm font-medium
|
|
406
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
387
407
|
Disabled
|
|
388
408
|
</div>
|
|
389
|
-
<div className="text-
|
|
390
|
-
text-
|
|
409
|
+
<div className="text-fm-tertiary text-xs">
|
|
410
|
+
text-fm-placeholder
|
|
391
411
|
</div>
|
|
392
412
|
</div>
|
|
393
413
|
</div>
|
|
@@ -395,11 +415,11 @@ function MyComponent() {
|
|
|
395
415
|
</div>
|
|
396
416
|
|
|
397
417
|
<div className="!space-y-4">
|
|
398
|
-
<h3 className="text-lg font-semibold
|
|
418
|
+
<h3 className="text-fm-icon-negative! text-lg font-semibold">
|
|
399
419
|
Custom Colors
|
|
400
420
|
</h3>
|
|
401
|
-
<div className="rounded-lg
|
|
402
|
-
<pre className="overflow-x-auto text-sm
|
|
421
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
422
|
+
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
403
423
|
{`// Using Tailwind classes
|
|
404
424
|
<TrashIcon className="h-6 w-6 text-red-400" />
|
|
405
425
|
<TrashIcon className="h-6 w-6 text-orange-500" />
|
|
@@ -424,29 +444,29 @@ function MyComponent() {
|
|
|
424
444
|
|
|
425
445
|
{/* Usage Examples */}
|
|
426
446
|
<div className="!space-y-8">
|
|
427
|
-
<h2 className="text-center text-3xl font-bold
|
|
447
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
428
448
|
Usage Examples
|
|
429
449
|
</h2>
|
|
430
450
|
|
|
431
451
|
<div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
|
|
432
452
|
{/* Delete Button */}
|
|
433
453
|
<div className="!space-y-4">
|
|
434
|
-
<h3 className="text-lg font-semibold
|
|
454
|
+
<h3 className="text-fm-icon-negative! text-lg font-semibold">
|
|
435
455
|
Delete Button
|
|
436
456
|
</h3>
|
|
437
457
|
<div className="!space-y-4">
|
|
438
458
|
<div className="flex gap-4">
|
|
439
|
-
<button className="flex items-center gap-2 rounded-lg border
|
|
459
|
+
<button className="border-fm-icon-negative/30 bg-fm-icon-negative/20 text-fm-icon-negative hover:bg-fm-icon-negative/30 flex items-center gap-2 rounded-lg border px-4 py-2 transition-colors">
|
|
440
460
|
<TrashIcon className="h-4 w-4" />
|
|
441
461
|
Delete
|
|
442
462
|
</button>
|
|
443
|
-
<button className="flex items-center gap-2 rounded-lg border
|
|
463
|
+
<button className="border-fm-icon-warning/30 bg-fm-icon-warning/20 text-fm-icon-warning hover:bg-fm-icon-warning/30 flex items-center gap-2 rounded-lg border px-3 py-2 transition-colors">
|
|
444
464
|
<TrashIcon className="h-4 w-4" />
|
|
445
465
|
Remove
|
|
446
466
|
</button>
|
|
447
467
|
</div>
|
|
448
|
-
<div className="rounded-lg
|
|
449
|
-
<pre className="overflow-x-auto text-sm
|
|
468
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
469
|
+
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
450
470
|
{`// Primary delete button
|
|
451
471
|
<button className="flex items-center gap-2 bg-red-500/20 border border-red-500/30 px-4 py-2 rounded-lg">
|
|
452
472
|
<TrashIcon className="h-4 w-4" />
|
|
@@ -465,30 +485,30 @@ function MyComponent() {
|
|
|
465
485
|
|
|
466
486
|
{/* List Item */}
|
|
467
487
|
<div className="!space-y-4">
|
|
468
|
-
<h3 className="text-lg font-semibold
|
|
488
|
+
<h3 className="text-fm-icon-negative! text-lg font-semibold">
|
|
469
489
|
List Item Actions
|
|
470
490
|
</h3>
|
|
471
491
|
<div className="!space-y-4">
|
|
472
|
-
<div className="rounded-lg border
|
|
492
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-4">
|
|
473
493
|
<div className="flex items-center justify-between">
|
|
474
494
|
<div className="flex items-center gap-3">
|
|
475
|
-
<div className="h-10 w-10 rounded-lg
|
|
495
|
+
<div className="bg-fm-icon-info/20 h-10 w-10 rounded-lg"></div>
|
|
476
496
|
<div>
|
|
477
|
-
<div className="text-sm font-medium
|
|
497
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
478
498
|
Project Document.pdf
|
|
479
499
|
</div>
|
|
480
|
-
<div className="text-
|
|
500
|
+
<div className="text-fm-tertiary text-xs">
|
|
481
501
|
2.4 MB • Modified 2 hours ago
|
|
482
502
|
</div>
|
|
483
503
|
</div>
|
|
484
504
|
</div>
|
|
485
|
-
<button className="
|
|
505
|
+
<button className="text-fm-placeholder hover:bg-fm-icon-negative/20 hover:text-fm-icon-negative rounded-lg p-2 transition-colors">
|
|
486
506
|
<TrashIcon className="h-4 w-4" />
|
|
487
507
|
</button>
|
|
488
508
|
</div>
|
|
489
509
|
</div>
|
|
490
|
-
<div className="rounded-lg
|
|
491
|
-
<pre className="overflow-x-auto text-sm
|
|
510
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
511
|
+
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
492
512
|
{`<div className="flex items-center justify-between">
|
|
493
513
|
<div className="flex items-center gap-3">
|
|
494
514
|
{/* File info */}
|
|
@@ -504,36 +524,36 @@ function MyComponent() {
|
|
|
504
524
|
|
|
505
525
|
{/* Confirmation Dialog */}
|
|
506
526
|
<div className="!space-y-4">
|
|
507
|
-
<h3 className="text-lg font-semibold
|
|
527
|
+
<h3 className="text-fm-icon-negative! text-lg font-semibold">
|
|
508
528
|
Confirmation Dialog
|
|
509
529
|
</h3>
|
|
510
530
|
<div className="!space-y-4">
|
|
511
|
-
<div className="
|
|
531
|
+
<div className="border-fm-icon-negative/20 bg-fm-icon-negative/5 rounded-lg border p-6">
|
|
512
532
|
<div className="flex items-start gap-4">
|
|
513
|
-
<div className="flex h-12 w-12 items-center justify-center rounded-lg
|
|
514
|
-
<TrashIcon className="h-6 w-6
|
|
533
|
+
<div className="bg-fm-icon-negative/20 flex h-12 w-12 items-center justify-center rounded-lg">
|
|
534
|
+
<TrashIcon className="text-fm-icon-negative h-6 w-6" />
|
|
515
535
|
</div>
|
|
516
536
|
<div className="flex-1">
|
|
517
|
-
<h4 className="mb-2 font-medium
|
|
537
|
+
<h4 className="text-fm-icon-active! mb-2 font-medium">
|
|
518
538
|
Confirm Deletion
|
|
519
539
|
</h4>
|
|
520
|
-
<p className="mb-4 text-sm
|
|
540
|
+
<p className="text-fm-secondary! mb-4 text-sm">
|
|
521
541
|
Are you sure you want to delete this item? This
|
|
522
542
|
action cannot be undone.
|
|
523
543
|
</p>
|
|
524
544
|
<div className="flex gap-3">
|
|
525
|
-
<button className="
|
|
545
|
+
<button className="border-fm-icon-negative/30 bg-fm-icon-negative/20 text-fm-icon-negative rounded-lg border px-4 py-2 text-sm">
|
|
526
546
|
Delete
|
|
527
547
|
</button>
|
|
528
|
-
<button className="
|
|
548
|
+
<button className="border-fm-divider-primary bg-fm-surface-secondary text-fm-icon-active rounded-lg border px-4 py-2 text-sm">
|
|
529
549
|
Cancel
|
|
530
550
|
</button>
|
|
531
551
|
</div>
|
|
532
552
|
</div>
|
|
533
553
|
</div>
|
|
534
554
|
</div>
|
|
535
|
-
<div className="rounded-lg
|
|
536
|
-
<pre className="overflow-x-auto text-sm
|
|
555
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
556
|
+
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
537
557
|
{`<div className="border border-red-500/20 bg-red-500/5 p-6 rounded-lg">
|
|
538
558
|
<div className="flex items-start gap-4">
|
|
539
559
|
<div className="flex h-12 w-12 items-center justify-center rounded-lg bg-red-500/20">
|
|
@@ -555,30 +575,30 @@ function MyComponent() {
|
|
|
555
575
|
|
|
556
576
|
{/* Menu Item */}
|
|
557
577
|
<div className="!space-y-4">
|
|
558
|
-
<h3 className="text-lg font-semibold
|
|
578
|
+
<h3 className="text-fm-icon-negative! text-lg font-semibold">
|
|
559
579
|
Context Menu
|
|
560
580
|
</h3>
|
|
561
581
|
<div className="!space-y-4">
|
|
562
|
-
<div className="rounded-lg border
|
|
563
|
-
<div className="flex items-center gap-3 rounded px-3 py-2 text-sm
|
|
564
|
-
<span className="text-
|
|
582
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-2">
|
|
583
|
+
<div className="text-fm-icon-active hover:bg-fm-surface-secondary flex items-center gap-3 rounded px-3 py-2 text-sm">
|
|
584
|
+
<span className="text-fm-icon-info">📄</span>
|
|
565
585
|
<span>Open</span>
|
|
566
586
|
</div>
|
|
567
|
-
<div className="flex items-center gap-3 rounded px-3 py-2 text-sm
|
|
568
|
-
<span className="text-
|
|
587
|
+
<div className="text-fm-icon-active hover:bg-fm-surface-secondary flex items-center gap-3 rounded px-3 py-2 text-sm">
|
|
588
|
+
<span className="text-fm-icon-positive">✏️</span>
|
|
569
589
|
<span>Edit</span>
|
|
570
590
|
</div>
|
|
571
|
-
<div className="mx-2 my-1 h-px
|
|
572
|
-
<div className="flex items-center gap-3 rounded px-3 py-2 text-sm
|
|
591
|
+
<div className="bg-fm-surface-secondary mx-2 my-1 h-px"></div>
|
|
592
|
+
<div className="text-fm-icon-negative hover:bg-fm-icon-negative/10 flex items-center gap-3 rounded px-3 py-2 text-sm">
|
|
573
593
|
<TrashIcon className="h-4 w-4" />
|
|
574
594
|
<span>Delete</span>
|
|
575
|
-
<span className="ml-auto text-xs
|
|
595
|
+
<span className="text-fm-tertiary ml-auto text-xs">
|
|
576
596
|
⌘⌫
|
|
577
597
|
</span>
|
|
578
598
|
</div>
|
|
579
599
|
</div>
|
|
580
|
-
<div className="rounded-lg
|
|
581
|
-
<pre className="overflow-x-auto text-sm
|
|
600
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
601
|
+
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
582
602
|
{`// Context menu with delete option
|
|
583
603
|
<div className="flex items-center gap-3 px-3 py-2 text-red-400 hover:bg-red-500/10 rounded">
|
|
584
604
|
<TrashIcon className="h-4 w-4" />
|
|
@@ -594,64 +614,64 @@ function MyComponent() {
|
|
|
594
614
|
|
|
595
615
|
{/* Accessibility */}
|
|
596
616
|
<div className="!space-y-8">
|
|
597
|
-
<h2 className="text-center text-3xl font-bold
|
|
617
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
598
618
|
Accessibility Features
|
|
599
619
|
</h2>
|
|
600
620
|
<div className="grid grid-cols-1 gap-8 md:grid-cols-2">
|
|
601
|
-
<div className="!space-y-4 rounded-lg border
|
|
602
|
-
<h3 className="text-lg font-semibold
|
|
621
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
|
|
622
|
+
<h3 className="text-fm-icon-positive! text-lg font-semibold">
|
|
603
623
|
✅ Built-in Features
|
|
604
624
|
</h3>
|
|
605
|
-
<ul className="!space-y-2 text-sm
|
|
606
|
-
<li className="
|
|
625
|
+
<ul className="text-fm-secondary! !space-y-2 text-sm">
|
|
626
|
+
<li className="text-fm-secondary!">
|
|
607
627
|
Uses Radix UI AccessibleIcon wrapper
|
|
608
628
|
</li>
|
|
609
|
-
<li className="
|
|
629
|
+
<li className="text-fm-secondary!">
|
|
610
630
|
Provides screen reader label "Trash icon"
|
|
611
631
|
</li>
|
|
612
|
-
<li className="
|
|
632
|
+
<li className="text-fm-secondary!">
|
|
613
633
|
Supports keyboard navigation when interactive
|
|
614
634
|
</li>
|
|
615
|
-
<li className="
|
|
635
|
+
<li className="text-fm-secondary!">
|
|
616
636
|
Maintains proper color contrast ratios
|
|
617
637
|
</li>
|
|
618
|
-
<li className="
|
|
638
|
+
<li className="text-fm-secondary!">
|
|
619
639
|
Scales with user's font size preferences
|
|
620
640
|
</li>
|
|
621
641
|
</ul>
|
|
622
642
|
</div>
|
|
623
643
|
|
|
624
|
-
<div className="!space-y-4 rounded-lg border
|
|
625
|
-
<h3 className="text-lg font-semibold
|
|
644
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
|
|
645
|
+
<h3 className="text-fm-icon-negative! text-lg font-semibold">
|
|
626
646
|
💡 Best Practices
|
|
627
647
|
</h3>
|
|
628
|
-
<ul className="!space-y-2 text-sm
|
|
629
|
-
<li className="
|
|
648
|
+
<ul className="text-fm-secondary !space-y-2 text-sm">
|
|
649
|
+
<li className="text-fm-secondary!">
|
|
630
650
|
Always pair with descriptive text
|
|
631
651
|
</li>
|
|
632
|
-
<li className="
|
|
652
|
+
<li className="text-fm-secondary!">
|
|
633
653
|
Use confirmation dialogs for destructive actions
|
|
634
654
|
</li>
|
|
635
|
-
<li className="
|
|
655
|
+
<li className="text-fm-secondary!">
|
|
636
656
|
Ensure sufficient color contrast
|
|
637
657
|
</li>
|
|
638
|
-
<li className="
|
|
658
|
+
<li className="text-fm-secondary!">
|
|
639
659
|
Add focus states for interactive elements
|
|
640
660
|
</li>
|
|
641
|
-
<li className="
|
|
661
|
+
<li className="text-fm-secondary!">
|
|
642
662
|
Consider providing undo functionality
|
|
643
663
|
</li>
|
|
644
664
|
</ul>
|
|
645
665
|
</div>
|
|
646
666
|
</div>
|
|
647
667
|
|
|
648
|
-
<div className="rounded-lg border
|
|
649
|
-
<h3 className="mb-4 text-lg font-semibold
|
|
668
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
|
|
669
|
+
<h3 className="text-fm-secondary-600! mb-4 text-lg font-semibold">
|
|
650
670
|
Custom Accessibility Label
|
|
651
671
|
</h3>
|
|
652
672
|
<div className="grid grid-cols-1 gap-6 lg:grid-cols-2">
|
|
653
|
-
<div className="rounded-lg
|
|
654
|
-
<pre className="overflow-x-auto text-sm
|
|
673
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
674
|
+
<pre className="text-fm-icon-info! overflow-x-auto text-sm">
|
|
655
675
|
{`// Custom implementation with specific label
|
|
656
676
|
import { AccessibleIcon } from "@radix-ui/react-accessible-icon"
|
|
657
677
|
|
|
@@ -671,13 +691,13 @@ function CustomTrashIcon({ label = "Delete", ...props }) {
|
|
|
671
691
|
</pre>
|
|
672
692
|
</div>
|
|
673
693
|
<div className="!space-y-4">
|
|
674
|
-
<p className="text-
|
|
694
|
+
<p className="text-fm-secondary! text-sm">
|
|
675
695
|
For specific contexts, you can wrap the TrashIcon with a
|
|
676
696
|
custom AccessibleIcon component that provides more
|
|
677
697
|
descriptive labels.
|
|
678
698
|
</p>
|
|
679
|
-
<div className="
|
|
680
|
-
<div className="flex items-center gap-2 text-sm
|
|
699
|
+
<div className="border-fm-icon-negative/20 bg-fm-icon-negative/10 rounded-lg border p-4">
|
|
700
|
+
<div className="text-fm-icon-negative flex items-center gap-2 text-sm">
|
|
681
701
|
<TrashIcon className="h-4 w-4" />
|
|
682
702
|
<span>
|
|
683
703
|
This approach gives screen readers more context
|
|
@@ -691,50 +711,60 @@ function CustomTrashIcon({ label = "Delete", ...props }) {
|
|
|
691
711
|
|
|
692
712
|
{/* Related Icons */}
|
|
693
713
|
<div className="!space-y-8">
|
|
694
|
-
<h2 className="text-center text-3xl font-bold
|
|
714
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
695
715
|
Related Icons
|
|
696
716
|
</h2>
|
|
697
717
|
<div className="grid grid-cols-2 gap-6 md:grid-cols-4">
|
|
698
|
-
<div className="!space-y-3 rounded-lg border
|
|
699
|
-
<div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg
|
|
718
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
|
|
719
|
+
<div className="bg-fm-icon-info/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
|
|
700
720
|
<span className="text-2xl">✏️</span>
|
|
701
721
|
</div>
|
|
702
722
|
<div>
|
|
703
|
-
<div className="font-medium
|
|
704
|
-
|
|
723
|
+
<div className="text-fm-icon-active font-medium">
|
|
724
|
+
EditIcon
|
|
725
|
+
</div>
|
|
726
|
+
<div className="text-fm-tertiary text-xs">
|
|
705
727
|
Edit operations
|
|
706
728
|
</div>
|
|
707
729
|
</div>
|
|
708
730
|
</div>
|
|
709
|
-
<div className="!space-y-3 rounded-lg border
|
|
710
|
-
<div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg
|
|
711
|
-
<span className="
|
|
731
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
|
|
732
|
+
<div className="bg-fm-icon-positive/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
|
|
733
|
+
<span className="text-fm-icon-active! !text-2xl">+</span>
|
|
712
734
|
</div>
|
|
713
735
|
<div>
|
|
714
|
-
<div className="font-medium
|
|
715
|
-
|
|
736
|
+
<div className="text-fm-icon-active font-medium">
|
|
737
|
+
AddIcon
|
|
738
|
+
</div>
|
|
739
|
+
<div className="text-fm-tertiary text-xs">
|
|
716
740
|
Create operations
|
|
717
741
|
</div>
|
|
718
742
|
</div>
|
|
719
743
|
</div>
|
|
720
|
-
<div className="!space-y-3 rounded-lg border
|
|
721
|
-
<div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg
|
|
744
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
|
|
745
|
+
<div className="bg-fm-icon-warning/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
|
|
722
746
|
<span className="text-2xl">📁</span>
|
|
723
747
|
</div>
|
|
724
748
|
<div>
|
|
725
|
-
<div className="font-medium
|
|
726
|
-
|
|
749
|
+
<div className="text-fm-icon-active font-medium">
|
|
750
|
+
FolderIcon
|
|
751
|
+
</div>
|
|
752
|
+
<div className="text-fm-tertiary text-xs">
|
|
727
753
|
File management
|
|
728
754
|
</div>
|
|
729
755
|
</div>
|
|
730
756
|
</div>
|
|
731
|
-
<div className="!space-y-3 rounded-lg border
|
|
732
|
-
<div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg
|
|
757
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
|
|
758
|
+
<div className="bg-fm-secondary-500/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
|
|
733
759
|
<span className="text-2xl">⚙️</span>
|
|
734
760
|
</div>
|
|
735
761
|
<div>
|
|
736
|
-
<div className="font-medium
|
|
737
|
-
|
|
762
|
+
<div className="text-fm-icon-active font-medium">
|
|
763
|
+
SettingsIcon
|
|
764
|
+
</div>
|
|
765
|
+
<div className="text-fm-tertiary text-xs">
|
|
766
|
+
Configuration
|
|
767
|
+
</div>
|
|
738
768
|
</div>
|
|
739
769
|
</div>
|
|
740
770
|
</div>
|
|
@@ -742,14 +772,14 @@ function CustomTrashIcon({ label = "Delete", ...props }) {
|
|
|
742
772
|
</div>
|
|
743
773
|
|
|
744
774
|
{/* Footer */}
|
|
745
|
-
<div className="border-
|
|
775
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary border-t backdrop-blur-xl">
|
|
746
776
|
<div className="!mx-auto max-w-7xl px-6 py-8">
|
|
747
777
|
<div className="!space-y-4 text-center">
|
|
748
|
-
<p className="
|
|
778
|
+
<p className="text-fm-tertiary!">
|
|
749
779
|
TrashIcon is part of the Aural UI icon library, built with
|
|
750
780
|
accessibility and consistency in mind.
|
|
751
781
|
</p>
|
|
752
|
-
<p className="text-
|
|
782
|
+
<p className="text-fm-placeholder! text-sm">
|
|
753
783
|
All icons use Radix UI's AccessibleIcon for screen reader
|
|
754
784
|
compatibility and follow WCAG guidelines.
|
|
755
785
|
</p>
|
|
@@ -794,8 +824,8 @@ const storyParameters = {
|
|
|
794
824
|
backgrounds: {
|
|
795
825
|
default: "dark",
|
|
796
826
|
values: [
|
|
797
|
-
{ name: "dark", value: "
|
|
798
|
-
{ name: "darker", value: "
|
|
827
|
+
{ name: "dark", value: "var(--color-fm-surface-primary)" },
|
|
828
|
+
{ name: "darker", value: "var(--color-fm-neutral-0)" },
|
|
799
829
|
],
|
|
800
830
|
},
|
|
801
831
|
}
|
|
@@ -804,12 +834,12 @@ export const Default: Story = {
|
|
|
804
834
|
args: {
|
|
805
835
|
width: 24,
|
|
806
836
|
height: 24,
|
|
807
|
-
className: "text-
|
|
837
|
+
className: "text-fm-icon-negative",
|
|
808
838
|
withAccessibility: true,
|
|
809
839
|
},
|
|
810
840
|
parameters: storyParameters,
|
|
811
841
|
render: (args) => (
|
|
812
|
-
<div className="flex h-32 min-h-dvh items-center justify-center rounded-lg bg-
|
|
842
|
+
<div className="from-fm-surface-primary to-fm-surface-secondary flex h-32 min-h-dvh items-center justify-center rounded-lg bg-linear-to-br">
|
|
813
843
|
<TrashIcon {...args} />
|
|
814
844
|
</div>
|
|
815
845
|
),
|
|
@@ -826,30 +856,30 @@ export const SizeVariations: Story = {
|
|
|
826
856
|
},
|
|
827
857
|
},
|
|
828
858
|
render: () => (
|
|
829
|
-
<div className="flex h-64 min-h-dvh items-center justify-center gap-8 rounded-lg bg-
|
|
859
|
+
<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">
|
|
830
860
|
<div className="text-center">
|
|
831
|
-
<TrashIcon className="!mx-auto mb-2 h-3 w-3
|
|
832
|
-
<span className="text-
|
|
861
|
+
<TrashIcon className="text-fm-icon-negative !mx-auto mb-2 h-3 w-3" />
|
|
862
|
+
<span className="text-fm-tertiary text-xs">12px</span>
|
|
833
863
|
</div>
|
|
834
864
|
<div className="text-center">
|
|
835
|
-
<TrashIcon className="!mx-auto mb-2 h-4 w-4
|
|
836
|
-
<span className="text-
|
|
865
|
+
<TrashIcon className="text-fm-icon-negative !mx-auto mb-2 h-4 w-4" />
|
|
866
|
+
<span className="text-fm-tertiary text-xs">16px</span>
|
|
837
867
|
</div>
|
|
838
868
|
<div className="text-center">
|
|
839
|
-
<TrashIcon className="!mx-auto mb-2 h-5 w-5
|
|
840
|
-
<span className="text-
|
|
869
|
+
<TrashIcon className="text-fm-icon-negative !mx-auto mb-2 h-5 w-5" />
|
|
870
|
+
<span className="text-fm-tertiary text-xs">20px</span>
|
|
841
871
|
</div>
|
|
842
872
|
<div className="text-center">
|
|
843
|
-
<TrashIcon className="!mx-auto mb-2 h-6 w-6
|
|
844
|
-
<span className="text-
|
|
873
|
+
<TrashIcon className="text-fm-icon-negative !mx-auto mb-2 h-6 w-6" />
|
|
874
|
+
<span className="text-fm-tertiary text-xs">24px</span>
|
|
845
875
|
</div>
|
|
846
876
|
<div className="text-center">
|
|
847
|
-
<TrashIcon className="!mx-auto mb-2 h-8 w-8
|
|
848
|
-
<span className="text-
|
|
877
|
+
<TrashIcon className="text-fm-icon-negative !mx-auto mb-2 h-8 w-8" />
|
|
878
|
+
<span className="text-fm-tertiary text-xs">32px</span>
|
|
849
879
|
</div>
|
|
850
880
|
<div className="text-center">
|
|
851
|
-
<TrashIcon className="!mx-auto mb-2 h-12 w-12
|
|
852
|
-
<span className="text-
|
|
881
|
+
<TrashIcon className="text-fm-icon-negative !mx-auto mb-2 h-12 w-12" />
|
|
882
|
+
<span className="text-fm-tertiary text-xs">48px</span>
|
|
853
883
|
</div>
|
|
854
884
|
</div>
|
|
855
885
|
),
|
|
@@ -866,34 +896,36 @@ export const ColorVariations: Story = {
|
|
|
866
896
|
},
|
|
867
897
|
},
|
|
868
898
|
render: () => (
|
|
869
|
-
<div className="grid min-h-dvh grid-cols-2 items-center justify-center gap-6 rounded-lg bg-
|
|
899
|
+
<div className="from-fm-surface-primary to-fm-surface-secondary grid min-h-dvh grid-cols-2 items-center justify-center gap-6 rounded-lg bg-linear-to-br p-8 md:grid-cols-4">
|
|
870
900
|
<div className="text-center">
|
|
871
|
-
<div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border
|
|
872
|
-
<TrashIcon className="h-8 w-8
|
|
901
|
+
<div className="border-fm-icon-negative/30 bg-fm-icon-negative/20 !mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border">
|
|
902
|
+
<TrashIcon className="text-fm-icon-negative h-8 w-8" />
|
|
903
|
+
</div>
|
|
904
|
+
<div className="text-fm-icon-active text-sm font-medium">Danger</div>
|
|
905
|
+
<div className="text-fm-icon-negative text-xs">
|
|
906
|
+
text-fm-icon-negative
|
|
873
907
|
</div>
|
|
874
|
-
<div className="text-sm font-medium text-white">Danger</div>
|
|
875
|
-
<div className="text-xs text-red-400">text-red-400</div>
|
|
876
908
|
</div>
|
|
877
909
|
<div className="text-center">
|
|
878
|
-
<div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border
|
|
879
|
-
<TrashIcon className="h-8 w-8
|
|
910
|
+
<div className="border-fm-icon-warning/30 bg-fm-icon-warning/20 !mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border">
|
|
911
|
+
<TrashIcon className="text-fm-icon-warning h-8 w-8" />
|
|
880
912
|
</div>
|
|
881
|
-
<div className="text-sm font-medium
|
|
882
|
-
<div className="text-
|
|
913
|
+
<div className="text-fm-icon-active text-sm font-medium">Warning</div>
|
|
914
|
+
<div className="text-fm-icon-warning text-xs">text-fm-icon-warning</div>
|
|
883
915
|
</div>
|
|
884
916
|
<div className="text-center">
|
|
885
|
-
<div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border
|
|
886
|
-
<TrashIcon className="h-8 w-8
|
|
917
|
+
<div className="border-fm-divider-primary bg-fm-surface-tertiary/20 !mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border">
|
|
918
|
+
<TrashIcon className="text-fm-placeholder h-8 w-8" />
|
|
887
919
|
</div>
|
|
888
|
-
<div className="text-sm font-medium
|
|
889
|
-
<div className="text-
|
|
920
|
+
<div className="text-fm-icon-active text-sm font-medium">Neutral</div>
|
|
921
|
+
<div className="text-fm-placeholder text-xs">text-fm-placeholder</div>
|
|
890
922
|
</div>
|
|
891
923
|
<div className="text-center">
|
|
892
|
-
<div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border
|
|
893
|
-
<TrashIcon className="h-8 w-8
|
|
924
|
+
<div className="border-fm-divider-primary bg-fm-surface-secondary !mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border">
|
|
925
|
+
<TrashIcon className="text-fm-placeholder h-8 w-8" />
|
|
894
926
|
</div>
|
|
895
|
-
<div className="text-sm font-medium
|
|
896
|
-
<div className="text-
|
|
927
|
+
<div className="text-fm-icon-active text-sm font-medium">Disabled</div>
|
|
928
|
+
<div className="text-fm-placeholder text-xs">text-fm-placeholder</div>
|
|
897
929
|
</div>
|
|
898
930
|
</div>
|
|
899
931
|
),
|
|
@@ -910,16 +942,18 @@ export const UsageExamples: Story = {
|
|
|
910
942
|
},
|
|
911
943
|
},
|
|
912
944
|
render: () => (
|
|
913
|
-
<div className="min-h-dvh !space-y-8 rounded-lg bg-
|
|
945
|
+
<div className="from-fm-surface-primary to-fm-surface-secondary min-h-dvh !space-y-8 rounded-lg bg-linear-to-br p-8">
|
|
914
946
|
{/* Delete Buttons */}
|
|
915
947
|
<div className="!space-y-2">
|
|
916
|
-
<h3 className="text-sm font-medium
|
|
948
|
+
<h3 className="text-fm-icon-active text-sm font-medium">
|
|
949
|
+
Delete Buttons
|
|
950
|
+
</h3>
|
|
917
951
|
<div className="flex gap-4">
|
|
918
|
-
<button className="flex items-center gap-2 rounded-lg border
|
|
952
|
+
<button className="border-fm-icon-negative/30 bg-fm-icon-negative/20 text-fm-icon-negative hover:bg-fm-icon-negative/30 flex items-center gap-2 rounded-lg border px-4 py-2 transition-colors">
|
|
919
953
|
<TrashIcon className="h-4 w-4" />
|
|
920
954
|
Delete
|
|
921
955
|
</button>
|
|
922
|
-
<button className="flex items-center gap-2 rounded-lg border
|
|
956
|
+
<button className="border-fm-icon-warning/30 bg-fm-icon-warning/20 text-fm-icon-warning hover:bg-fm-icon-warning/30 flex items-center gap-2 rounded-lg border px-3 py-2 transition-colors">
|
|
923
957
|
<TrashIcon className="h-4 w-4" />
|
|
924
958
|
Remove
|
|
925
959
|
</button>
|
|
@@ -928,21 +962,23 @@ export const UsageExamples: Story = {
|
|
|
928
962
|
|
|
929
963
|
{/* List Item */}
|
|
930
964
|
<div className="!space-y-2">
|
|
931
|
-
<h3 className="text-sm font-medium
|
|
932
|
-
|
|
965
|
+
<h3 className="text-fm-icon-active text-sm font-medium">
|
|
966
|
+
List Item Actions
|
|
967
|
+
</h3>
|
|
968
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-4">
|
|
933
969
|
<div className="flex items-center justify-between">
|
|
934
970
|
<div className="flex items-center gap-3">
|
|
935
|
-
<div className="h-10 w-10 rounded-lg
|
|
971
|
+
<div className="bg-fm-icon-info/20 h-10 w-10 rounded-lg"></div>
|
|
936
972
|
<div>
|
|
937
|
-
<div className="text-sm font-medium
|
|
973
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
938
974
|
Project Document.pdf
|
|
939
975
|
</div>
|
|
940
|
-
<div className="text-
|
|
976
|
+
<div className="text-fm-tertiary text-xs">
|
|
941
977
|
2.4 MB • Modified 2 hours ago
|
|
942
978
|
</div>
|
|
943
979
|
</div>
|
|
944
980
|
</div>
|
|
945
|
-
<button className="
|
|
981
|
+
<button className="text-fm-placeholder hover:bg-fm-icon-negative/20 hover:text-fm-icon-negative rounded-lg p-2 transition-colors">
|
|
946
982
|
<TrashIcon className="h-4 w-4" />
|
|
947
983
|
</button>
|
|
948
984
|
</div>
|
|
@@ -951,23 +987,27 @@ export const UsageExamples: Story = {
|
|
|
951
987
|
|
|
952
988
|
{/* Confirmation Dialog */}
|
|
953
989
|
<div className="!space-y-2">
|
|
954
|
-
<h3 className="text-sm font-medium
|
|
955
|
-
|
|
990
|
+
<h3 className="text-fm-icon-active text-sm font-medium">
|
|
991
|
+
Confirmation Dialog
|
|
992
|
+
</h3>
|
|
993
|
+
<div className="border-fm-icon-negative/20 bg-fm-icon-negative/5 rounded-lg border p-6">
|
|
956
994
|
<div className="flex items-start gap-4">
|
|
957
|
-
<div className="flex h-12 w-12 items-center justify-center rounded-lg
|
|
958
|
-
<TrashIcon className="h-6 w-6
|
|
995
|
+
<div className="bg-fm-icon-negative/20 flex h-12 w-12 items-center justify-center rounded-lg">
|
|
996
|
+
<TrashIcon className="text-fm-icon-negative h-6 w-6" />
|
|
959
997
|
</div>
|
|
960
998
|
<div className="flex-1">
|
|
961
|
-
<h4 className="mb-2 font-medium
|
|
962
|
-
|
|
999
|
+
<h4 className="text-fm-icon-active mb-2 font-medium">
|
|
1000
|
+
Confirm Deletion
|
|
1001
|
+
</h4>
|
|
1002
|
+
<p className="text-fm-secondary mb-4 text-sm">
|
|
963
1003
|
Are you sure you want to delete this item? This action cannot be
|
|
964
1004
|
undone.
|
|
965
1005
|
</p>
|
|
966
1006
|
<div className="flex gap-3">
|
|
967
|
-
<button className="
|
|
1007
|
+
<button className="border-fm-icon-negative/30 bg-fm-icon-negative/20 text-fm-icon-negative rounded-lg border px-4 py-2 text-sm">
|
|
968
1008
|
Delete
|
|
969
1009
|
</button>
|
|
970
|
-
<button className="
|
|
1010
|
+
<button className="border-fm-divider-primary bg-fm-surface-secondary text-fm-icon-active rounded-lg border px-4 py-2 text-sm">
|
|
971
1011
|
Cancel
|
|
972
1012
|
</button>
|
|
973
1013
|
</div>
|
|
@@ -992,11 +1032,11 @@ export const Playground: Story = {
|
|
|
992
1032
|
args: {
|
|
993
1033
|
width: 32,
|
|
994
1034
|
height: 32,
|
|
995
|
-
className: "text-
|
|
1035
|
+
className: "text-fm-icon-negative",
|
|
996
1036
|
},
|
|
997
1037
|
render: (args) => (
|
|
998
|
-
<div className="flex h-64 min-h-dvh items-center justify-center rounded-lg bg-
|
|
999
|
-
<div className="rounded-lg border
|
|
1038
|
+
<div className="from-fm-surface-primary to-fm-surface-secondary flex h-64 min-h-dvh items-center justify-center rounded-lg bg-linear-to-br">
|
|
1039
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-8">
|
|
1000
1040
|
<TrashIcon {...args} />
|
|
1001
1041
|
</div>
|
|
1002
1042
|
</div>
|