aural-ui 3.0.7 → 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/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/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 AlertIcon> = {
|
|
|
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 AlertIcon> = {
|
|
|
40
40
|
background: transparent ;
|
|
41
41
|
}
|
|
42
42
|
body {
|
|
43
|
-
background:
|
|
43
|
+
background: var(--color-fm-surface-primary) ;
|
|
44
44
|
}
|
|
45
45
|
#storybook-docs {
|
|
46
|
-
background:
|
|
46
|
+
background: var(--color-fm-surface-primary) ;
|
|
47
47
|
}
|
|
48
48
|
.sbdocs-preview {
|
|
49
49
|
background: transparent ;
|
|
50
50
|
border: none ;
|
|
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) ;
|
|
54
54
|
}
|
|
55
55
|
.sbdocs-p, .sbdocs-li {
|
|
56
|
-
color:
|
|
56
|
+
color: var(--color-fm-secondary) ;
|
|
57
57
|
}
|
|
58
58
|
.sbdocs-code {
|
|
59
|
-
background:
|
|
60
|
-
color:
|
|
61
|
-
border: 1px solid
|
|
59
|
+
background: var(--color-fm-surface-secondary) ;
|
|
60
|
+
color: var(--color-fm-secondary-500) ;
|
|
61
|
+
border: 1px solid var(--color-fm-divider-secondary) ;
|
|
62
62
|
}
|
|
63
63
|
.sbdocs-pre {
|
|
64
|
-
background:
|
|
65
|
-
border: 1px solid
|
|
64
|
+
background: var(--color-fm-surface-secondary) ;
|
|
65
|
+
border: 1px solid var(--color-fm-divider-secondary) ;
|
|
66
66
|
}
|
|
67
67
|
.sbdocs-table {
|
|
68
|
-
background:
|
|
69
|
-
border: 1px solid
|
|
68
|
+
background: var(--color-fm-surface-secondary) ;
|
|
69
|
+
border: 1px solid var(--color-fm-divider-secondary) ;
|
|
70
70
|
}
|
|
71
71
|
.sbdocs-table th {
|
|
72
|
-
background:
|
|
73
|
-
color:
|
|
74
|
-
border-bottom: 1px solid
|
|
72
|
+
background: var(--color-fm-surface-secondary) ;
|
|
73
|
+
color: var(--color-fm-icon-active) ;
|
|
74
|
+
border-bottom: 1px solid var(--color-fm-divider-primary) ;
|
|
75
75
|
}
|
|
76
76
|
.sbdocs-table td {
|
|
77
|
-
color:
|
|
78
|
-
border-bottom: 1px solid
|
|
77
|
+
color: var(--color-fm-secondary) ;
|
|
78
|
+
border-bottom: 1px solid var(--color-fm-divider-tertiary) ;
|
|
79
79
|
}
|
|
80
80
|
`}
|
|
81
81
|
</style>
|
|
82
82
|
|
|
83
|
-
<div className="
|
|
83
|
+
<div className="bg-fm-surface-primary min-h-screen">
|
|
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-secondary-500/10 to-fm-icon-info/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
|
-
<AlertIcon className="h-12 w-12
|
|
89
|
+
<div className="border-fm-icon-warning/30 from-fm-icon-warning/20 to-fm-icon-negative/20 !mx-auto flex h-24 w-24 items-center justify-center rounded-2xl border bg-linear-to-br">
|
|
90
|
+
<AlertIcon className="text-fm-icon-warning h-12 w-12" />
|
|
91
91
|
</div>
|
|
92
92
|
<h1 className="!text-fm-primary text-5xl font-bold">
|
|
93
93
|
AlertIcon
|
|
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 alert icon for warning states, notifications,
|
|
97
97
|
and attention-grabbing elements. Built with accessibility in
|
|
98
98
|
mind using Radix UI's AccessibleIcon wrapper.
|
|
@@ -101,28 +101,28 @@ const meta: Meta<typeof AlertIcon> = {
|
|
|
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-active 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-active 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-icon-active 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 AlertIcon> = {
|
|
|
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-warning! 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 { AlertIcon } from "@icons/alert-icon"
|
|
149
149
|
|
|
150
150
|
function MyComponent() {
|
|
@@ -160,13 +160,15 @@ 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-warning! 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
|
-
<div className="flex items-center gap-3 rounded-lg border
|
|
168
|
-
<AlertIcon 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
|
+
<div className="border-fm-icon-warning/20 bg-fm-icon-warning/10 flex items-center gap-3 rounded-lg border px-4 py-2">
|
|
168
|
+
<AlertIcon className="text-fm-icon-warning h-5 w-5" />
|
|
169
|
+
<span className="text-fm-icon-active">
|
|
170
|
+
Warning message
|
|
171
|
+
</span>
|
|
170
172
|
</div>
|
|
171
173
|
</div>
|
|
172
174
|
</div>
|
|
@@ -175,108 +177,116 @@ function MyComponent() {
|
|
|
175
177
|
|
|
176
178
|
{/* Props Documentation */}
|
|
177
179
|
<div className="!space-y-8">
|
|
178
|
-
<h2 className="text-center text-3xl font-bold
|
|
180
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
179
181
|
Props & Configuration
|
|
180
182
|
</h2>
|
|
181
183
|
|
|
182
|
-
<div className="overflow-hidden rounded-lg border
|
|
183
|
-
<div className="bg-
|
|
184
|
-
<h3 className="text-xl font-semibold
|
|
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
|
+
<h3 className="text-fm-icon-active! text-xl font-semibold">
|
|
187
|
+
Props
|
|
188
|
+
</h3>
|
|
185
189
|
</div>
|
|
186
190
|
<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
|
|
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">
|
|
190
194
|
Prop
|
|
191
195
|
</th>
|
|
192
|
-
<th className="px-6 py-4 text-left text-sm font-semibold
|
|
196
|
+
<th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
|
|
193
197
|
Type
|
|
194
198
|
</th>
|
|
195
|
-
<th className="px-6 py-4 text-left text-sm font-semibold
|
|
199
|
+
<th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
|
|
196
200
|
Default
|
|
197
201
|
</th>
|
|
198
|
-
<th className="px-6 py-4 text-left text-sm font-semibold
|
|
202
|
+
<th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
|
|
199
203
|
Description
|
|
200
204
|
</th>
|
|
201
205
|
</tr>
|
|
202
206
|
</thead>
|
|
203
207
|
<tbody>
|
|
204
208
|
{" "}
|
|
205
|
-
<tr className="
|
|
206
|
-
<td className="px-6 py-4 font-mono text-sm
|
|
209
|
+
<tr className="bg-fm-surface-secondary!">
|
|
210
|
+
<td className="text-fm-icon-info! px-6 py-4 font-mono text-sm">
|
|
207
211
|
withAccessibility
|
|
208
212
|
</td>
|
|
209
|
-
<td className="px-6 py-4 text-sm
|
|
213
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
210
214
|
boolean
|
|
211
215
|
</td>
|
|
212
|
-
<td className="px-6 py-4 text-sm
|
|
216
|
+
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
213
217
|
true
|
|
214
218
|
</td>
|
|
215
|
-
<td className="px-6 py-4 text-sm
|
|
219
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
216
220
|
Whether to wrap the icon with accessibility feature
|
|
217
221
|
</td>
|
|
218
222
|
</tr>
|
|
219
|
-
<tr className="border-
|
|
220
|
-
<td className="px-6 py-4 font-mono text-sm
|
|
223
|
+
<tr className="border-fm-divider-tertiary bg-fm-surface-secondary! border-b">
|
|
224
|
+
<td className="text-fm-icon-warning! px-6 py-4 font-mono text-sm">
|
|
221
225
|
height
|
|
222
226
|
</td>
|
|
223
|
-
<td className="px-6 py-4 text-sm
|
|
227
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
224
228
|
number | string
|
|
225
229
|
</td>
|
|
226
|
-
<td className="px-6 py-4 text-sm
|
|
227
|
-
|
|
230
|
+
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
231
|
+
16
|
|
232
|
+
</td>
|
|
233
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
228
234
|
Height of the icon in pixels
|
|
229
235
|
</td>
|
|
230
236
|
</tr>
|
|
231
|
-
<tr className="border-
|
|
232
|
-
<td className="px-6 py-4 font-mono text-sm
|
|
237
|
+
<tr className="border-fm-divider-tertiary border-b">
|
|
238
|
+
<td className="text-fm-icon-warning! px-6 py-4 font-mono text-sm">
|
|
233
239
|
fill
|
|
234
240
|
</td>
|
|
235
|
-
<td className="px-6 py-4 text-sm
|
|
241
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
236
242
|
string
|
|
237
243
|
</td>
|
|
238
|
-
<td className="px-6 py-4 text-sm
|
|
244
|
+
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
239
245
|
currentColor
|
|
240
246
|
</td>
|
|
241
|
-
<td className="px-6 py-4 text-sm
|
|
247
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
242
248
|
Fill color of the icon
|
|
243
249
|
</td>
|
|
244
250
|
</tr>
|
|
245
|
-
<tr className="border-
|
|
246
|
-
<td className="px-6 py-4 font-mono text-sm
|
|
251
|
+
<tr className="border-fm-divider-tertiary bg-fm-surface-secondary! border-b">
|
|
252
|
+
<td className="text-fm-icon-warning! px-6 py-4 font-mono text-sm">
|
|
247
253
|
className
|
|
248
254
|
</td>
|
|
249
|
-
<td className="px-6 py-4 text-sm
|
|
255
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
250
256
|
string
|
|
251
257
|
</td>
|
|
252
|
-
<td className="px-6 py-4 text-sm
|
|
253
|
-
|
|
258
|
+
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
259
|
+
-
|
|
260
|
+
</td>
|
|
261
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
254
262
|
CSS classes for styling
|
|
255
263
|
</td>
|
|
256
264
|
</tr>
|
|
257
|
-
<tr className="border-
|
|
258
|
-
<td className="px-6 py-4 font-mono text-sm
|
|
265
|
+
<tr className="border-fm-divider-tertiary border-b">
|
|
266
|
+
<td className="text-fm-icon-warning! px-6 py-4 font-mono text-sm">
|
|
259
267
|
filled
|
|
260
268
|
</td>
|
|
261
|
-
<td className="px-6 py-4 text-sm
|
|
269
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
262
270
|
boolean
|
|
263
271
|
</td>
|
|
264
|
-
<td className="px-6 py-4 text-sm
|
|
272
|
+
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
265
273
|
true
|
|
266
274
|
</td>
|
|
267
|
-
<td className="px-6 py-4 text-sm
|
|
275
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
268
276
|
Whether to use filled variant
|
|
269
277
|
</td>
|
|
270
278
|
</tr>
|
|
271
|
-
<tr className="
|
|
272
|
-
<td className="px-6 py-4 font-mono text-sm
|
|
279
|
+
<tr className="bg-fm-surface-secondary!">
|
|
280
|
+
<td className="text-fm-icon-warning! px-6 py-4 font-mono text-sm">
|
|
273
281
|
...svgProps
|
|
274
282
|
</td>
|
|
275
|
-
<td className="px-6 py-4 text-sm
|
|
283
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
276
284
|
SVGProps
|
|
277
285
|
</td>
|
|
278
|
-
<td className="px-6 py-4 text-sm
|
|
279
|
-
|
|
286
|
+
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
287
|
+
-
|
|
288
|
+
</td>
|
|
289
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
280
290
|
All standard SVG element props
|
|
281
291
|
</td>
|
|
282
292
|
</tr>
|
|
@@ -287,50 +297,62 @@ function MyComponent() {
|
|
|
287
297
|
|
|
288
298
|
{/* Size Variations */}
|
|
289
299
|
<div className="!space-y-8">
|
|
290
|
-
<h2 className="text-center text-3xl font-bold
|
|
300
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
291
301
|
Size Variations
|
|
292
302
|
</h2>
|
|
293
|
-
<div className="rounded-lg border
|
|
303
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-8">
|
|
294
304
|
<div className="!space-y-6">
|
|
295
305
|
<div className="grid grid-cols-1 gap-8 md:grid-cols-2">
|
|
296
306
|
<div className="!space-y-4">
|
|
297
|
-
<h3 className="text-lg font-semibold
|
|
307
|
+
<h3 className="text-fm-icon-warning! text-lg font-semibold">
|
|
298
308
|
Standard Sizes
|
|
299
309
|
</h3>
|
|
300
|
-
<div className="flex items-end gap-6 rounded-lg
|
|
310
|
+
<div className="bg-fm-surface-primary flex items-end gap-6 rounded-lg p-6">
|
|
301
311
|
<div className="text-center">
|
|
302
|
-
<AlertIcon className="!mx-auto mb-2 h-3 w-3
|
|
303
|
-
<span className="text-
|
|
312
|
+
<AlertIcon className="text-fm-icon-warning !mx-auto mb-2 h-3 w-3" />
|
|
313
|
+
<span className="text-fm-tertiary text-xs">
|
|
314
|
+
12px
|
|
315
|
+
</span>
|
|
304
316
|
</div>
|
|
305
317
|
<div className="text-center">
|
|
306
|
-
<AlertIcon className="!mx-auto mb-2 h-4 w-4
|
|
307
|
-
<span className="text-
|
|
318
|
+
<AlertIcon className="text-fm-icon-warning !mx-auto mb-2 h-4 w-4" />
|
|
319
|
+
<span className="text-fm-tertiary text-xs">
|
|
320
|
+
16px
|
|
321
|
+
</span>
|
|
308
322
|
</div>
|
|
309
323
|
<div className="text-center">
|
|
310
|
-
<AlertIcon className="!mx-auto mb-2 h-5 w-5
|
|
311
|
-
<span className="text-
|
|
324
|
+
<AlertIcon className="text-fm-icon-warning !mx-auto mb-2 h-5 w-5" />
|
|
325
|
+
<span className="text-fm-tertiary text-xs">
|
|
326
|
+
20px
|
|
327
|
+
</span>
|
|
312
328
|
</div>
|
|
313
329
|
<div className="text-center">
|
|
314
|
-
<AlertIcon className="!mx-auto mb-2 h-6 w-6
|
|
315
|
-
<span className="text-
|
|
330
|
+
<AlertIcon className="text-fm-icon-warning !mx-auto mb-2 h-6 w-6" />
|
|
331
|
+
<span className="text-fm-tertiary text-xs">
|
|
332
|
+
24px
|
|
333
|
+
</span>
|
|
316
334
|
</div>
|
|
317
335
|
<div className="text-center">
|
|
318
|
-
<AlertIcon className="!mx-auto mb-2 h-8 w-8
|
|
319
|
-
<span className="text-
|
|
336
|
+
<AlertIcon className="text-fm-icon-warning !mx-auto mb-2 h-8 w-8" />
|
|
337
|
+
<span className="text-fm-tertiary text-xs">
|
|
338
|
+
32px
|
|
339
|
+
</span>
|
|
320
340
|
</div>
|
|
321
341
|
<div className="text-center">
|
|
322
|
-
<AlertIcon className="!mx-auto mb-2 h-12 w-12
|
|
323
|
-
<span className="text-
|
|
342
|
+
<AlertIcon className="text-fm-icon-warning !mx-auto mb-2 h-12 w-12" />
|
|
343
|
+
<span className="text-fm-tertiary text-xs">
|
|
344
|
+
48px
|
|
345
|
+
</span>
|
|
324
346
|
</div>
|
|
325
347
|
</div>
|
|
326
348
|
</div>
|
|
327
349
|
|
|
328
350
|
<div className="!space-y-4">
|
|
329
|
-
<h3 className="text-lg font-semibold
|
|
351
|
+
<h3 className="text-fm-icon-warning! text-lg font-semibold">
|
|
330
352
|
Code Example
|
|
331
353
|
</h3>
|
|
332
|
-
<div className="rounded-lg
|
|
333
|
-
<pre className="overflow-x-auto text-sm
|
|
354
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
355
|
+
<pre className="text-fm-icon-info! overflow-x-auto text-sm">
|
|
334
356
|
{`// Small (16px)
|
|
335
357
|
<AlertIcon className="h-4 w-4" />
|
|
336
358
|
|
|
@@ -352,56 +374,56 @@ function MyComponent() {
|
|
|
352
374
|
|
|
353
375
|
{/* Color Variations */}
|
|
354
376
|
<div className="!space-y-8">
|
|
355
|
-
<h2 className="text-center text-3xl font-bold
|
|
377
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
356
378
|
Color Variations
|
|
357
379
|
</h2>
|
|
358
380
|
<div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
|
|
359
381
|
<div className="!space-y-4">
|
|
360
|
-
<h3 className="text-lg font-semibold
|
|
382
|
+
<h3 className="text-fm-icon-warning! text-lg font-semibold">
|
|
361
383
|
Semantic Colors
|
|
362
384
|
</h3>
|
|
363
|
-
<div className="!space-y-4 rounded-lg border
|
|
385
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
|
|
364
386
|
<div className="flex items-center gap-4">
|
|
365
|
-
<AlertIcon className="h-6 w-6
|
|
387
|
+
<AlertIcon className="text-fm-icon-warning h-6 w-6" />
|
|
366
388
|
<div>
|
|
367
|
-
<div className="text-sm font-medium
|
|
389
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
368
390
|
Warning
|
|
369
391
|
</div>
|
|
370
|
-
<div className="text-
|
|
371
|
-
text-
|
|
392
|
+
<div className="text-fm-tertiary text-xs">
|
|
393
|
+
text-fm-icon-warning
|
|
372
394
|
</div>
|
|
373
395
|
</div>
|
|
374
396
|
</div>
|
|
375
397
|
<div className="flex items-center gap-4">
|
|
376
|
-
<AlertIcon className="h-6 w-6
|
|
398
|
+
<AlertIcon className="text-fm-icon-negative h-6 w-6" />
|
|
377
399
|
<div>
|
|
378
|
-
<div className="text-sm font-medium
|
|
400
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
379
401
|
Danger
|
|
380
402
|
</div>
|
|
381
|
-
<div className="text-
|
|
382
|
-
text-
|
|
403
|
+
<div className="text-fm-tertiary text-xs">
|
|
404
|
+
text-fm-icon-negative
|
|
383
405
|
</div>
|
|
384
406
|
</div>
|
|
385
407
|
</div>
|
|
386
408
|
<div className="flex items-center gap-4">
|
|
387
|
-
<AlertIcon className="h-6 w-6
|
|
409
|
+
<AlertIcon className="text-fm-icon-warning h-6 w-6" />
|
|
388
410
|
<div>
|
|
389
|
-
<div className="text-sm font-medium
|
|
411
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
390
412
|
Caution
|
|
391
413
|
</div>
|
|
392
|
-
<div className="text-
|
|
393
|
-
text-
|
|
414
|
+
<div className="text-fm-tertiary text-xs">
|
|
415
|
+
text-fm-icon-warning
|
|
394
416
|
</div>
|
|
395
417
|
</div>
|
|
396
418
|
</div>
|
|
397
419
|
<div className="flex items-center gap-4">
|
|
398
|
-
<AlertIcon className="h-6 w-6
|
|
420
|
+
<AlertIcon className="text-fm-icon-info h-6 w-6" />
|
|
399
421
|
<div>
|
|
400
|
-
<div className="text-sm font-medium
|
|
422
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
401
423
|
Info
|
|
402
424
|
</div>
|
|
403
|
-
<div className="text-
|
|
404
|
-
text-
|
|
425
|
+
<div className="text-fm-tertiary text-xs">
|
|
426
|
+
text-fm-icon-info
|
|
405
427
|
</div>
|
|
406
428
|
</div>
|
|
407
429
|
</div>
|
|
@@ -409,11 +431,11 @@ function MyComponent() {
|
|
|
409
431
|
</div>
|
|
410
432
|
|
|
411
433
|
<div className="!space-y-4">
|
|
412
|
-
<h3 className="text-lg font-semibold
|
|
434
|
+
<h3 className="text-fm-icon-warning! text-lg font-semibold">
|
|
413
435
|
Custom Colors
|
|
414
436
|
</h3>
|
|
415
|
-
<div className="rounded-lg
|
|
416
|
-
<pre className="overflow-x-auto text-sm
|
|
437
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
438
|
+
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
417
439
|
{`// Using Tailwind classes
|
|
418
440
|
<AlertIcon className="h-6 w-6 text-orange-400" />
|
|
419
441
|
<AlertIcon className="h-6 w-6 text-red-500" />
|
|
@@ -438,33 +460,33 @@ function MyComponent() {
|
|
|
438
460
|
|
|
439
461
|
{/* Usage Examples */}
|
|
440
462
|
<div className="!space-y-8">
|
|
441
|
-
<h2 className="text-center text-3xl font-bold
|
|
463
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
442
464
|
Usage Examples
|
|
443
465
|
</h2>
|
|
444
466
|
|
|
445
467
|
<div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
|
|
446
468
|
{/* Alert Banner */}
|
|
447
469
|
<div className="!space-y-4">
|
|
448
|
-
<h3 className="text-lg font-semibold
|
|
470
|
+
<h3 className="text-fm-icon-warning! text-lg font-semibold">
|
|
449
471
|
Alert Banner
|
|
450
472
|
</h3>
|
|
451
473
|
<div className="!space-y-4">
|
|
452
|
-
<div className="
|
|
474
|
+
<div className="border-fm-icon-warning/20 bg-fm-icon-warning/10 rounded-lg border p-4">
|
|
453
475
|
<div className="flex items-start gap-3">
|
|
454
|
-
<AlertIcon className="mt-0.5 h-5 w-5 flex-shrink-0
|
|
476
|
+
<AlertIcon className="text-fm-icon-warning mt-0.5 h-5 w-5 flex-shrink-0" />
|
|
455
477
|
<div>
|
|
456
|
-
<h4 className="font-medium
|
|
478
|
+
<h4 className="text-fm-icon-warning! font-medium">
|
|
457
479
|
System Maintenance
|
|
458
480
|
</h4>
|
|
459
|
-
<p className="text-
|
|
481
|
+
<p className="text-fm-icon-warning/80! text-sm">
|
|
460
482
|
Scheduled maintenance will occur tonight from 2-4
|
|
461
483
|
AM EST.
|
|
462
484
|
</p>
|
|
463
485
|
</div>
|
|
464
486
|
</div>
|
|
465
487
|
</div>
|
|
466
|
-
<div className="rounded-lg
|
|
467
|
-
<pre className="overflow-x-auto text-sm
|
|
488
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
489
|
+
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
468
490
|
{`<div className="border border-orange-500/20 bg-orange-500/10 p-4 rounded-lg">
|
|
469
491
|
<div className="flex items-start gap-3">
|
|
470
492
|
<AlertIcon className="h-5 w-5 text-orange-400 mt-0.5 flex-shrink-0" />
|
|
@@ -483,30 +505,30 @@ function MyComponent() {
|
|
|
483
505
|
|
|
484
506
|
{/* Form Validation */}
|
|
485
507
|
<div className="!space-y-4">
|
|
486
|
-
<h3 className="text-lg font-semibold
|
|
508
|
+
<h3 className="text-fm-icon-warning! text-lg font-semibold">
|
|
487
509
|
Form Validation
|
|
488
510
|
</h3>
|
|
489
511
|
<div className="!space-y-4">
|
|
490
512
|
<div className="!space-y-2">
|
|
491
|
-
<label className="text-sm font-medium
|
|
513
|
+
<label className="text-fm-icon-active! text-sm font-medium">
|
|
492
514
|
Email Address
|
|
493
515
|
</label>
|
|
494
516
|
<div className="relative">
|
|
495
517
|
<input
|
|
496
518
|
type="email"
|
|
497
|
-
className="
|
|
519
|
+
className="border-fm-icon-negative/50 bg-fm-surface-secondary text-fm-icon-active! focus:border-fm-icon-negative focus:ring-fm-icon-negative/20 w-full rounded-lg border px-3 py-2 pr-10 focus:ring-2"
|
|
498
520
|
placeholder="Enter your email"
|
|
499
521
|
defaultValue="invalid-email"
|
|
500
522
|
/>
|
|
501
|
-
<AlertIcon className="absolute top-1/2 right-3 h-4 w-4 -translate-y-1/2
|
|
523
|
+
<AlertIcon className="text-fm-icon-negative absolute top-1/2 right-3 h-4 w-4 -translate-y-1/2" />
|
|
502
524
|
</div>
|
|
503
|
-
<div className="flex items-center gap-2 text-sm
|
|
525
|
+
<div className="text-fm-icon-negative flex items-center gap-2 text-sm">
|
|
504
526
|
<AlertIcon className="h-4 w-4" />
|
|
505
527
|
<span>Please enter a valid email address</span>
|
|
506
528
|
</div>
|
|
507
529
|
</div>
|
|
508
|
-
<div className="rounded-lg
|
|
509
|
-
<pre className="overflow-x-auto text-sm
|
|
530
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
531
|
+
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
510
532
|
{`// Input with validation icon
|
|
511
533
|
<div className="relative">
|
|
512
534
|
<input className="pr-10 border-red-500/50" />
|
|
@@ -525,22 +547,22 @@ function MyComponent() {
|
|
|
525
547
|
|
|
526
548
|
{/* Button with Icon */}
|
|
527
549
|
<div className="!space-y-4">
|
|
528
|
-
<h3 className="text-lg font-semibold
|
|
550
|
+
<h3 className="text-fm-icon-warning! text-lg font-semibold">
|
|
529
551
|
Button Integration
|
|
530
552
|
</h3>
|
|
531
553
|
<div className="!space-y-4">
|
|
532
554
|
<div className="flex gap-4">
|
|
533
|
-
<button className="flex items-center gap-2 rounded-lg border
|
|
555
|
+
<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-4 py-2 transition-colors">
|
|
534
556
|
<AlertIcon className="h-4 w-4" />
|
|
535
557
|
Report Issue
|
|
536
558
|
</button>
|
|
537
|
-
<button className="flex items-center gap-2 rounded-lg border
|
|
559
|
+
<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">
|
|
538
560
|
<AlertIcon className="h-4 w-4" />
|
|
539
561
|
Delete Account
|
|
540
562
|
</button>
|
|
541
563
|
</div>
|
|
542
|
-
<div className="rounded-lg
|
|
543
|
-
<pre className="overflow-x-auto text-sm
|
|
564
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
565
|
+
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
544
566
|
{`// Warning button
|
|
545
567
|
<button className="flex items-center gap-2 bg-orange-500/20 border border-orange-500/30 px-4 py-2 rounded-lg">
|
|
546
568
|
<AlertIcon className="h-4 w-4" />
|
|
@@ -559,25 +581,27 @@ function MyComponent() {
|
|
|
559
581
|
|
|
560
582
|
{/* Tooltip */}
|
|
561
583
|
<div className="!space-y-4">
|
|
562
|
-
<h3 className="text-lg font-semibold
|
|
584
|
+
<h3 className="text-fm-icon-warning! text-lg font-semibold">
|
|
563
585
|
Interactive Tooltip
|
|
564
586
|
</h3>
|
|
565
587
|
<div className="!space-y-4">
|
|
566
588
|
<div className="flex items-center gap-2">
|
|
567
|
-
<span className="text-
|
|
589
|
+
<span className="text-fm-icon-active">
|
|
590
|
+
Storage Usage
|
|
591
|
+
</span>
|
|
568
592
|
<div className="group relative">
|
|
569
|
-
<AlertIcon className="h-4 w-4 cursor-help
|
|
570
|
-
<div className="invisible absolute bottom-full left-1/2 mb-2 -translate-x-1/2 rounded-lg
|
|
593
|
+
<AlertIcon className="text-fm-icon-warning h-4 w-4 cursor-help" />
|
|
594
|
+
<div className="bg-fm-surface-tertiary text-fm-icon-contrast invisible absolute bottom-full left-1/2 mb-2 -translate-x-1/2 rounded-lg px-3 py-2 text-xs shadow-lg group-hover:visible">
|
|
571
595
|
<div className="flex items-center gap-2">
|
|
572
|
-
<AlertIcon className="h-3 w-3
|
|
596
|
+
<AlertIcon className="text-fm-icon-warning h-3 w-3" />
|
|
573
597
|
<span>You're approaching your storage limit</span>
|
|
574
598
|
</div>
|
|
575
|
-
<div className="absolute top-full left-1/2 -translate-x-1/2 border-4 border-transparent
|
|
599
|
+
<div className="border-t-fm-surface-tertiary absolute top-full left-1/2 -translate-x-1/2 border-4 border-transparent"></div>
|
|
576
600
|
</div>
|
|
577
601
|
</div>
|
|
578
602
|
</div>
|
|
579
|
-
<div className="rounded-lg
|
|
580
|
-
<pre className="overflow-x-auto text-sm
|
|
603
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
604
|
+
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
581
605
|
{`<div className="group relative">
|
|
582
606
|
<AlertIcon className="h-4 w-4 text-orange-400 cursor-help" />
|
|
583
607
|
<div className="invisible group-hover:visible absolute bottom-full left-1/2 mb-2 -translate-x-1/2 rounded-lg bg-black/90 px-3 py-2 text-xs text-white shadow-lg">
|
|
@@ -596,64 +620,64 @@ function MyComponent() {
|
|
|
596
620
|
|
|
597
621
|
{/* Accessibility */}
|
|
598
622
|
<div className="!space-y-8">
|
|
599
|
-
<h2 className="text-center text-3xl font-bold
|
|
623
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
600
624
|
Accessibility Features
|
|
601
625
|
</h2>
|
|
602
626
|
<div className="grid grid-cols-1 gap-8 md:grid-cols-2">
|
|
603
|
-
<div className="!space-y-4 rounded-lg border
|
|
604
|
-
<h3 className="text-lg font-semibold
|
|
627
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
|
|
628
|
+
<h3 className="text-fm-icon-positive! text-lg font-semibold">
|
|
605
629
|
✅ Built-in Features
|
|
606
630
|
</h3>
|
|
607
|
-
<ul className="!space-y-2 text-sm
|
|
608
|
-
<li className="
|
|
631
|
+
<ul className="text-fm-secondary! !space-y-2 text-sm">
|
|
632
|
+
<li className="text-fm-secondary!">
|
|
609
633
|
Uses Radix UI AccessibleIcon wrapper
|
|
610
634
|
</li>
|
|
611
|
-
<li className="
|
|
635
|
+
<li className="text-fm-secondary!">
|
|
612
636
|
Provides screen reader label "Alert icon"
|
|
613
637
|
</li>
|
|
614
|
-
<li className="
|
|
638
|
+
<li className="text-fm-secondary!">
|
|
615
639
|
Supports keyboard navigation when interactive
|
|
616
640
|
</li>
|
|
617
|
-
<li className="
|
|
641
|
+
<li className="text-fm-secondary!">
|
|
618
642
|
Maintains proper color contrast ratios
|
|
619
643
|
</li>
|
|
620
|
-
<li className="
|
|
644
|
+
<li className="text-fm-secondary!">
|
|
621
645
|
Scales with user's font size preferences
|
|
622
646
|
</li>
|
|
623
647
|
</ul>
|
|
624
648
|
</div>
|
|
625
649
|
|
|
626
|
-
<div className="!space-y-4 rounded-lg border
|
|
627
|
-
<h3 className="text-lg font-semibold
|
|
650
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
|
|
651
|
+
<h3 className="text-fm-icon-warning! text-lg font-semibold">
|
|
628
652
|
💡 Best Practices
|
|
629
653
|
</h3>
|
|
630
|
-
<ul className="!space-y-2 text-sm
|
|
631
|
-
<li className="
|
|
654
|
+
<ul className="text-fm-secondary !space-y-2 text-sm">
|
|
655
|
+
<li className="text-fm-secondary!">
|
|
632
656
|
Always pair with descriptive text
|
|
633
657
|
</li>
|
|
634
|
-
<li className="
|
|
658
|
+
<li className="text-fm-secondary!">
|
|
635
659
|
Use consistent colors for alert types
|
|
636
660
|
</li>
|
|
637
|
-
<li className="
|
|
661
|
+
<li className="text-fm-secondary!">
|
|
638
662
|
Ensure sufficient color contrast
|
|
639
663
|
</li>
|
|
640
|
-
<li className="
|
|
664
|
+
<li className="text-fm-secondary!">
|
|
641
665
|
Add focus states for interactive elements
|
|
642
666
|
</li>
|
|
643
|
-
<li className="
|
|
667
|
+
<li className="text-fm-secondary!">
|
|
644
668
|
Consider motion sensitivity for animations
|
|
645
669
|
</li>
|
|
646
670
|
</ul>
|
|
647
671
|
</div>
|
|
648
672
|
</div>
|
|
649
673
|
|
|
650
|
-
<div className="rounded-lg border
|
|
651
|
-
<h3 className="mb-4 text-lg font-semibold
|
|
674
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
|
|
675
|
+
<h3 className="text-fm-secondary-500! mb-4 text-lg font-semibold">
|
|
652
676
|
Custom Accessibility Label
|
|
653
677
|
</h3>
|
|
654
678
|
<div className="grid grid-cols-1 gap-6 lg:grid-cols-2">
|
|
655
|
-
<div className="rounded-lg
|
|
656
|
-
<pre className="overflow-x-auto text-sm
|
|
679
|
+
<div className="bg-fm-surface-primary rounded-lg p-4">
|
|
680
|
+
<pre className="text-fm-icon-info! overflow-x-auto text-sm">
|
|
657
681
|
{`// Custom implementation with specific label
|
|
658
682
|
import { AccessibleIcon } from "@radix-ui/react-accessible-icon"
|
|
659
683
|
|
|
@@ -666,20 +690,20 @@ function CustomAlertIcon({ label = "Alert", ...props }) {
|
|
|
666
690
|
}
|
|
667
691
|
|
|
668
692
|
// Usage with specific context
|
|
669
|
-
<CustomAlertIcon
|
|
670
|
-
label="Form validation error"
|
|
671
|
-
className="h-4 w-4 text-red-400"
|
|
693
|
+
<CustomAlertIcon
|
|
694
|
+
label="Form validation error"
|
|
695
|
+
className="h-4 w-4 text-red-400"
|
|
672
696
|
/>`}
|
|
673
697
|
</pre>
|
|
674
698
|
</div>
|
|
675
699
|
<div className="!space-y-4">
|
|
676
|
-
<p className="text-
|
|
700
|
+
<p className="text-fm-secondary! text-sm">
|
|
677
701
|
For specific contexts, you can wrap the AlertIcon with a
|
|
678
702
|
custom AccessibleIcon component that provides more
|
|
679
703
|
descriptive labels.
|
|
680
704
|
</p>
|
|
681
|
-
<div className="
|
|
682
|
-
<div className="flex items-center gap-2 text-sm
|
|
705
|
+
<div className="border-fm-icon-warning/20 bg-fm-icon-warning/10 rounded-lg border p-4">
|
|
706
|
+
<div className="text-fm-icon-warning flex items-center gap-2 text-sm">
|
|
683
707
|
<AlertIcon className="h-4 w-4" />
|
|
684
708
|
<span>
|
|
685
709
|
This approach gives screen readers more context
|
|
@@ -693,48 +717,58 @@ function CustomAlertIcon({ label = "Alert", ...props }) {
|
|
|
693
717
|
|
|
694
718
|
{/* Related Icons */}
|
|
695
719
|
<div className="!space-y-8">
|
|
696
|
-
<h2 className="text-center text-3xl font-bold
|
|
720
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
697
721
|
Related Icons
|
|
698
722
|
</h2>
|
|
699
723
|
<div className="grid grid-cols-2 gap-6 md:grid-cols-4">
|
|
700
|
-
<div className="!space-y-3 rounded-lg border
|
|
701
|
-
<div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg
|
|
724
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
|
|
725
|
+
<div className="bg-fm-icon-info/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
|
|
702
726
|
<span className="text-2xl">ℹ️</span>
|
|
703
727
|
</div>
|
|
704
728
|
<div>
|
|
705
|
-
<div className="font-medium
|
|
706
|
-
|
|
729
|
+
<div className="text-fm-icon-active font-medium">
|
|
730
|
+
InfoIcon
|
|
731
|
+
</div>
|
|
732
|
+
<div className="text-fm-tertiary text-xs">
|
|
707
733
|
Information states
|
|
708
734
|
</div>
|
|
709
735
|
</div>
|
|
710
736
|
</div>
|
|
711
|
-
<div className="!space-y-3 rounded-lg border
|
|
712
|
-
<div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg
|
|
737
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
|
|
738
|
+
<div className="bg-fm-icon-positive/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
|
|
713
739
|
<span className="text-2xl">✅</span>
|
|
714
740
|
</div>
|
|
715
741
|
<div>
|
|
716
|
-
<div className="font-medium
|
|
717
|
-
|
|
742
|
+
<div className="text-fm-icon-active font-medium">
|
|
743
|
+
CheckIcon
|
|
744
|
+
</div>
|
|
745
|
+
<div className="text-fm-tertiary text-xs">
|
|
718
746
|
Success states
|
|
719
747
|
</div>
|
|
720
748
|
</div>
|
|
721
749
|
</div>
|
|
722
|
-
<div className="!space-y-3 rounded-lg border
|
|
723
|
-
<div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg
|
|
750
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
|
|
751
|
+
<div className="bg-fm-icon-negative/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
|
|
724
752
|
<span className="text-2xl">❌</span>
|
|
725
753
|
</div>
|
|
726
754
|
<div>
|
|
727
|
-
<div className="font-medium
|
|
728
|
-
|
|
755
|
+
<div className="text-fm-icon-active font-medium">
|
|
756
|
+
ErrorIcon
|
|
757
|
+
</div>
|
|
758
|
+
<div className="text-fm-tertiary text-xs">
|
|
759
|
+
Error states
|
|
760
|
+
</div>
|
|
729
761
|
</div>
|
|
730
762
|
</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
|
|
763
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
|
|
764
|
+
<div className="bg-fm-secondary-500/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
|
|
733
765
|
<span className="text-2xl">❓</span>
|
|
734
766
|
</div>
|
|
735
767
|
<div>
|
|
736
|
-
<div className="font-medium
|
|
737
|
-
|
|
768
|
+
<div className="text-fm-icon-active font-medium">
|
|
769
|
+
HelpIcon
|
|
770
|
+
</div>
|
|
771
|
+
<div className="text-fm-tertiary text-xs">
|
|
738
772
|
Help & guidance
|
|
739
773
|
</div>
|
|
740
774
|
</div>
|
|
@@ -744,14 +778,14 @@ function CustomAlertIcon({ label = "Alert", ...props }) {
|
|
|
744
778
|
</div>
|
|
745
779
|
|
|
746
780
|
{/* Footer */}
|
|
747
|
-
<div className="border-
|
|
781
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary border-t backdrop-blur-xl">
|
|
748
782
|
<div className="!mx-auto max-w-7xl px-6 py-8">
|
|
749
783
|
<div className="!space-y-4 text-center">
|
|
750
|
-
<p className="
|
|
784
|
+
<p className="text-fm-tertiary!">
|
|
751
785
|
AlertIcon is part of the Aural UI icon library, built with
|
|
752
786
|
accessibility and consistency in mind.
|
|
753
787
|
</p>
|
|
754
|
-
<p className="text-
|
|
788
|
+
<p className="text-fm-placeholder! text-sm">
|
|
755
789
|
All icons use Radix UI's AccessibleIcon for screen reader
|
|
756
790
|
compatibility and follow WCAG guidelines.
|
|
757
791
|
</p>
|
|
@@ -800,8 +834,8 @@ const storyParameters = {
|
|
|
800
834
|
backgrounds: {
|
|
801
835
|
default: "dark",
|
|
802
836
|
values: [
|
|
803
|
-
{ name: "dark", value: "
|
|
804
|
-
{ name: "darker", value: "
|
|
837
|
+
{ name: "dark", value: "var(--color-fm-surface-primary)" },
|
|
838
|
+
{ name: "darker", value: "var(--color-fm-neutral-0)" },
|
|
805
839
|
],
|
|
806
840
|
},
|
|
807
841
|
}
|
|
@@ -810,12 +844,12 @@ export const Default: Story = {
|
|
|
810
844
|
args: {
|
|
811
845
|
width: 24,
|
|
812
846
|
height: 24,
|
|
813
|
-
className: "text-
|
|
847
|
+
className: "text-fm-icon-warning",
|
|
814
848
|
withAccessibility: true,
|
|
815
849
|
},
|
|
816
850
|
parameters: storyParameters,
|
|
817
851
|
render: (args) => (
|
|
818
|
-
<div className="flex h-32 min-h-dvh items-center justify-center rounded-lg bg-
|
|
852
|
+
<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">
|
|
819
853
|
<AlertIcon {...args} />
|
|
820
854
|
</div>
|
|
821
855
|
),
|
|
@@ -832,30 +866,30 @@ export const SizeVariations: Story = {
|
|
|
832
866
|
},
|
|
833
867
|
},
|
|
834
868
|
render: () => (
|
|
835
|
-
<div className="flex h-64 min-h-dvh items-center justify-center gap-8 rounded-lg bg-
|
|
869
|
+
<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">
|
|
836
870
|
<div className="text-center">
|
|
837
|
-
<AlertIcon className="!mx-auto mb-2 h-3 w-3
|
|
838
|
-
<span className="text-
|
|
871
|
+
<AlertIcon className="text-fm-icon-warning !mx-auto mb-2 h-3 w-3" />
|
|
872
|
+
<span className="text-fm-tertiary text-xs">12px</span>
|
|
839
873
|
</div>
|
|
840
874
|
<div className="text-center">
|
|
841
|
-
<AlertIcon className="!mx-auto mb-2 h-4 w-4
|
|
842
|
-
<span className="text-
|
|
875
|
+
<AlertIcon className="text-fm-icon-warning !mx-auto mb-2 h-4 w-4" />
|
|
876
|
+
<span className="text-fm-tertiary text-xs">16px</span>
|
|
843
877
|
</div>
|
|
844
878
|
<div className="text-center">
|
|
845
|
-
<AlertIcon className="!mx-auto mb-2 h-5 w-5
|
|
846
|
-
<span className="text-
|
|
879
|
+
<AlertIcon className="text-fm-icon-warning !mx-auto mb-2 h-5 w-5" />
|
|
880
|
+
<span className="text-fm-tertiary text-xs">20px</span>
|
|
847
881
|
</div>
|
|
848
882
|
<div className="text-center">
|
|
849
|
-
<AlertIcon className="!mx-auto mb-2 h-6 w-6
|
|
850
|
-
<span className="text-
|
|
883
|
+
<AlertIcon className="text-fm-icon-warning !mx-auto mb-2 h-6 w-6" />
|
|
884
|
+
<span className="text-fm-tertiary text-xs">24px</span>
|
|
851
885
|
</div>
|
|
852
886
|
<div className="text-center">
|
|
853
|
-
<AlertIcon className="!mx-auto mb-2 h-8 w-8
|
|
854
|
-
<span className="text-
|
|
887
|
+
<AlertIcon className="text-fm-icon-warning !mx-auto mb-2 h-8 w-8" />
|
|
888
|
+
<span className="text-fm-tertiary text-xs">32px</span>
|
|
855
889
|
</div>
|
|
856
890
|
<div className="text-center">
|
|
857
|
-
<AlertIcon className="!mx-auto mb-2 h-12 w-12
|
|
858
|
-
<span className="text-
|
|
891
|
+
<AlertIcon className="text-fm-icon-warning !mx-auto mb-2 h-12 w-12" />
|
|
892
|
+
<span className="text-fm-tertiary text-xs">48px</span>
|
|
859
893
|
</div>
|
|
860
894
|
</div>
|
|
861
895
|
),
|
|
@@ -872,34 +906,36 @@ export const ColorVariations: Story = {
|
|
|
872
906
|
},
|
|
873
907
|
},
|
|
874
908
|
render: () => (
|
|
875
|
-
<div className="grid min-h-dvh grid-cols-2 items-center justify-center gap-6 rounded-lg bg-
|
|
909
|
+
<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">
|
|
876
910
|
<div className="text-center">
|
|
877
|
-
<div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border
|
|
878
|
-
<AlertIcon className="h-8 w-8
|
|
911
|
+
<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">
|
|
912
|
+
<AlertIcon className="text-fm-icon-warning h-8 w-8" />
|
|
879
913
|
</div>
|
|
880
|
-
<div className="text-sm font-medium
|
|
881
|
-
<div className="text-
|
|
914
|
+
<div className="text-fm-icon-active text-sm font-medium">Warning</div>
|
|
915
|
+
<div className="text-fm-icon-warning text-xs">text-fm-icon-warning</div>
|
|
882
916
|
</div>
|
|
883
917
|
<div className="text-center">
|
|
884
|
-
<div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border
|
|
885
|
-
<AlertIcon className="h-8 w-8
|
|
918
|
+
<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">
|
|
919
|
+
<AlertIcon className="text-fm-icon-negative h-8 w-8" />
|
|
920
|
+
</div>
|
|
921
|
+
<div className="text-fm-icon-active text-sm font-medium">Danger</div>
|
|
922
|
+
<div className="text-fm-icon-negative text-xs">
|
|
923
|
+
text-fm-icon-negative
|
|
886
924
|
</div>
|
|
887
|
-
<div className="text-sm font-medium text-white">Danger</div>
|
|
888
|
-
<div className="text-xs text-red-400">text-red-400</div>
|
|
889
925
|
</div>
|
|
890
926
|
<div className="text-center">
|
|
891
|
-
<div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border
|
|
892
|
-
<AlertIcon className="h-8 w-8
|
|
927
|
+
<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">
|
|
928
|
+
<AlertIcon className="text-fm-icon-warning h-8 w-8" />
|
|
893
929
|
</div>
|
|
894
|
-
<div className="text-sm font-medium
|
|
895
|
-
<div className="text-
|
|
930
|
+
<div className="text-fm-icon-active text-sm font-medium">Caution</div>
|
|
931
|
+
<div className="text-fm-icon-warning text-xs">text-fm-icon-warning</div>
|
|
896
932
|
</div>
|
|
897
933
|
<div className="text-center">
|
|
898
|
-
<div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border
|
|
899
|
-
<AlertIcon className="h-8 w-8
|
|
934
|
+
<div className="border-fm-icon-info/30 bg-fm-icon-info/20 !mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border">
|
|
935
|
+
<AlertIcon className="text-fm-icon-info h-8 w-8" />
|
|
900
936
|
</div>
|
|
901
|
-
<div className="text-sm font-medium
|
|
902
|
-
<div className="text-
|
|
937
|
+
<div className="text-fm-icon-active text-sm font-medium">Info</div>
|
|
938
|
+
<div className="text-fm-icon-info text-xs">text-fm-icon-info</div>
|
|
903
939
|
</div>
|
|
904
940
|
</div>
|
|
905
941
|
),
|
|
@@ -916,18 +952,20 @@ export const UsageExamples: Story = {
|
|
|
916
952
|
},
|
|
917
953
|
},
|
|
918
954
|
render: () => (
|
|
919
|
-
<div className="min-h-dvh !space-y-8 rounded-lg bg-
|
|
955
|
+
<div className="from-fm-surface-primary to-fm-surface-secondary min-h-dvh !space-y-8 rounded-lg bg-linear-to-br p-8">
|
|
920
956
|
{/* Alert Banner */}
|
|
921
957
|
<div className="!space-y-2">
|
|
922
|
-
<h3 className="text-sm font-medium
|
|
923
|
-
|
|
958
|
+
<h3 className="text-fm-icon-active text-sm font-medium">
|
|
959
|
+
Alert Banner
|
|
960
|
+
</h3>
|
|
961
|
+
<div className="border-fm-icon-warning/20 bg-fm-icon-warning/10 rounded-lg border p-4">
|
|
924
962
|
<div className="flex items-start gap-3">
|
|
925
|
-
<AlertIcon className="mt-0.5 h-5 w-5 flex-shrink-0
|
|
963
|
+
<AlertIcon className="text-fm-icon-warning mt-0.5 h-5 w-5 flex-shrink-0" />
|
|
926
964
|
<div>
|
|
927
|
-
<h4 className="font-medium
|
|
965
|
+
<h4 className="text-fm-icon-warning font-medium">
|
|
928
966
|
System Maintenance
|
|
929
967
|
</h4>
|
|
930
|
-
<p className="text-
|
|
968
|
+
<p className="text-fm-icon-warning/80 text-sm">
|
|
931
969
|
Scheduled maintenance will occur tonight from 2-4 AM EST.
|
|
932
970
|
</p>
|
|
933
971
|
</div>
|
|
@@ -937,18 +975,20 @@ export const UsageExamples: Story = {
|
|
|
937
975
|
|
|
938
976
|
{/* Form Validation */}
|
|
939
977
|
<div className="!space-y-2">
|
|
940
|
-
<h3 className="text-sm font-medium
|
|
978
|
+
<h3 className="text-fm-icon-active text-sm font-medium">
|
|
979
|
+
Form Validation
|
|
980
|
+
</h3>
|
|
941
981
|
<div className="!space-y-2">
|
|
942
982
|
<div className="relative">
|
|
943
983
|
<input
|
|
944
984
|
type="email"
|
|
945
|
-
className="
|
|
985
|
+
className="border-fm-icon-negative/50 bg-fm-surface-secondary text-fm-icon-active placeholder-fm-placeholder focus:border-fm-icon-negative focus:ring-fm-icon-negative/20 w-full rounded-lg border px-3 py-2 pr-10 focus:ring-2"
|
|
946
986
|
placeholder="Enter your email"
|
|
947
987
|
defaultValue="invalid-email"
|
|
948
988
|
/>
|
|
949
|
-
<AlertIcon className="absolute top-1/2 right-3 h-4 w-4 -translate-y-1/2
|
|
989
|
+
<AlertIcon className="text-fm-icon-negative absolute top-1/2 right-3 h-4 w-4 -translate-y-1/2" />
|
|
950
990
|
</div>
|
|
951
|
-
<div className="flex items-center gap-2 text-sm
|
|
991
|
+
<div className="text-fm-icon-negative flex items-center gap-2 text-sm">
|
|
952
992
|
<AlertIcon className="h-4 w-4" />
|
|
953
993
|
<span>Please enter a valid email address</span>
|
|
954
994
|
</div>
|
|
@@ -957,13 +997,15 @@ export const UsageExamples: Story = {
|
|
|
957
997
|
|
|
958
998
|
{/* Button Integration */}
|
|
959
999
|
<div className="!space-y-2">
|
|
960
|
-
<h3 className="text-sm font-medium
|
|
1000
|
+
<h3 className="text-fm-icon-active text-sm font-medium">
|
|
1001
|
+
Button Integration
|
|
1002
|
+
</h3>
|
|
961
1003
|
<div className="flex gap-4">
|
|
962
|
-
<button className="flex items-center gap-2 rounded-lg border
|
|
1004
|
+
<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-4 py-2 transition-colors">
|
|
963
1005
|
<AlertIcon className="h-4 w-4" />
|
|
964
1006
|
Report Issue
|
|
965
1007
|
</button>
|
|
966
|
-
<button className="flex items-center gap-2 rounded-lg border
|
|
1008
|
+
<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">
|
|
967
1009
|
<AlertIcon className="h-4 w-4" />
|
|
968
1010
|
Delete Account
|
|
969
1011
|
</button>
|
|
@@ -986,12 +1028,12 @@ export const Playground: Story = {
|
|
|
986
1028
|
args: {
|
|
987
1029
|
width: 32,
|
|
988
1030
|
height: 32,
|
|
989
|
-
className: "text-
|
|
1031
|
+
className: "text-fm-icon-warning",
|
|
990
1032
|
filled: false,
|
|
991
1033
|
},
|
|
992
1034
|
render: (args) => (
|
|
993
|
-
<div className="flex h-64 min-h-dvh items-center justify-center rounded-lg bg-
|
|
994
|
-
<div className="rounded-lg border
|
|
1035
|
+
<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">
|
|
1036
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-8">
|
|
995
1037
|
<AlertIcon {...args} />
|
|
996
1038
|
</div>
|
|
997
1039
|
</div>
|