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 TickIcon> = {
|
|
|
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,42 +40,42 @@ const meta: Meta<typeof TickIcon> = {
|
|
|
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
|
@keyframes tick-draw {
|
|
81
81
|
0% { stroke-dashoffset: 20; }
|
|
@@ -95,19 +95,19 @@ const meta: Meta<typeof TickIcon> = {
|
|
|
95
95
|
`}
|
|
96
96
|
</style>
|
|
97
97
|
|
|
98
|
-
<div className="
|
|
98
|
+
<div className="from-fm-surface-primary via-fm-icon-positive/5 to-fm-surface-primary min-h-screen bg-linear-to-br">
|
|
99
99
|
{/* Header */}
|
|
100
|
-
<div className="relative overflow-hidden border-b
|
|
101
|
-
<div className="absolute inset-0 bg-
|
|
100
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary relative overflow-hidden border-b backdrop-blur-xl">
|
|
101
|
+
<div className="from-fm-icon-positive/10 to-fm-icon-positive/10 absolute inset-0 bg-linear-to-r via-transparent" />
|
|
102
102
|
<div className="relative !mx-auto max-w-7xl px-6 py-16">
|
|
103
103
|
<div className="!space-y-6 text-center">
|
|
104
|
-
<div className="!mx-auto flex h-24 w-24 items-center justify-center rounded-2xl border
|
|
105
|
-
<TickIcon className="h-12 w-12
|
|
104
|
+
<div className="border-fm-icon-positive/30 from-fm-icon-positive/20 to-fm-icon-positive/20 !mx-auto flex h-24 w-24 items-center justify-center rounded-2xl border bg-linear-to-br">
|
|
105
|
+
<TickIcon className="text-fm-icon-positive h-12 w-12" />
|
|
106
106
|
</div>
|
|
107
107
|
<h1 className="!text-fm-primary text-5xl font-bold">
|
|
108
108
|
TickIcon
|
|
109
109
|
</h1>
|
|
110
|
-
<p className="!mx-auto max-w-3xl text-xl leading-relaxed
|
|
110
|
+
<p className="text-fm-secondary! !mx-auto max-w-3xl text-xl leading-relaxed">
|
|
111
111
|
A simple checkmark icon for success states, completed tasks,
|
|
112
112
|
and positive feedback. Features a clean stroke-based design
|
|
113
113
|
that works perfectly for checkboxes, form validation, and
|
|
@@ -118,28 +118,28 @@ const meta: Meta<typeof TickIcon> = {
|
|
|
118
118
|
{/* Stats */}
|
|
119
119
|
<div className="flex items-center justify-center gap-8 pt-8">
|
|
120
120
|
<div className="text-center">
|
|
121
|
-
<div className="text-3xl font-bold
|
|
121
|
+
<div className="text-fm-icon-positive text-3xl font-bold">
|
|
122
122
|
Clean
|
|
123
123
|
</div>
|
|
124
|
-
<div className="text-
|
|
124
|
+
<div className="text-fm-tertiary text-sm">
|
|
125
125
|
Minimal design
|
|
126
126
|
</div>
|
|
127
127
|
</div>
|
|
128
|
-
<div className="h-8 w-px
|
|
128
|
+
<div className="bg-fm-divider-primary h-8 w-px" />
|
|
129
129
|
<div className="text-center">
|
|
130
|
-
<div className="text-3xl font-bold
|
|
130
|
+
<div className="text-fm-icon-positive text-3xl font-bold">
|
|
131
131
|
Scalable
|
|
132
132
|
</div>
|
|
133
|
-
<div className="text-
|
|
133
|
+
<div className="text-fm-tertiary text-sm">
|
|
134
134
|
Stroke-based vector
|
|
135
135
|
</div>
|
|
136
136
|
</div>
|
|
137
|
-
<div className="h-8 w-px
|
|
137
|
+
<div className="bg-fm-divider-primary h-8 w-px" />
|
|
138
138
|
<div className="text-center">
|
|
139
|
-
<div className="text-3xl font-bold
|
|
139
|
+
<div className="text-fm-icon-info text-3xl font-bold">
|
|
140
140
|
Versatile
|
|
141
141
|
</div>
|
|
142
|
-
<div className="text-
|
|
142
|
+
<div className="text-fm-tertiary text-sm">
|
|
143
143
|
Multiple use cases
|
|
144
144
|
</div>
|
|
145
145
|
</div>
|
|
@@ -152,16 +152,16 @@ const meta: Meta<typeof TickIcon> = {
|
|
|
152
152
|
<div className="!mx-auto max-w-7xl !space-y-16 px-6 py-12">
|
|
153
153
|
{/* Quick Usage */}
|
|
154
154
|
<div className="!space-y-8">
|
|
155
|
-
<h2 className="text-center text-3xl font-bold
|
|
155
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
156
156
|
Quick Start
|
|
157
157
|
</h2>
|
|
158
158
|
<div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
|
|
159
159
|
<div className="!space-y-4">
|
|
160
|
-
<h3 className="text-xl font-semibold
|
|
160
|
+
<h3 className="text-fm-icon-positive! text-xl font-semibold">
|
|
161
161
|
Basic Usage
|
|
162
162
|
</h3>
|
|
163
|
-
<div className="rounded-lg
|
|
164
|
-
<pre className="overflow-x-auto text-sm
|
|
163
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
164
|
+
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
165
165
|
{`import { TickIcon } from "@icons/tick-icon"
|
|
166
166
|
|
|
167
167
|
function CheckboxComponent() {
|
|
@@ -177,13 +177,15 @@ function CheckboxComponent() {
|
|
|
177
177
|
</div>
|
|
178
178
|
|
|
179
179
|
<div className="!space-y-4">
|
|
180
|
-
<h3 className="text-xl font-semibold
|
|
180
|
+
<h3 className="text-fm-icon-positive! text-xl font-semibold">
|
|
181
181
|
Live Preview
|
|
182
182
|
</h3>
|
|
183
|
-
<div className="flex h-32 items-center justify-center rounded-lg border
|
|
184
|
-
<div className="flex items-center gap-3 rounded-lg border
|
|
185
|
-
<TickIcon className="h-5 w-5
|
|
186
|
-
<span className="text-
|
|
183
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary flex h-32 items-center justify-center rounded-lg border">
|
|
184
|
+
<div className="border-fm-icon-positive/20 bg-fm-icon-positive/10 flex items-center gap-3 rounded-lg border px-4 py-2">
|
|
185
|
+
<TickIcon className="text-fm-icon-positive h-5 w-5" />
|
|
186
|
+
<span className="text-fm-icon-active">
|
|
187
|
+
Task completed
|
|
188
|
+
</span>
|
|
187
189
|
</div>
|
|
188
190
|
</div>
|
|
189
191
|
</div>
|
|
@@ -192,120 +194,130 @@ function CheckboxComponent() {
|
|
|
192
194
|
|
|
193
195
|
{/* Props Documentation */}
|
|
194
196
|
<div className="!space-y-8">
|
|
195
|
-
<h2 className="text-center text-3xl font-bold
|
|
197
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
196
198
|
Props & Configuration
|
|
197
199
|
</h2>
|
|
198
200
|
|
|
199
|
-
<div className="overflow-hidden rounded-lg border
|
|
200
|
-
<div className="bg-
|
|
201
|
-
<h3 className="text-xl font-semibold
|
|
201
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary overflow-hidden rounded-lg border">
|
|
202
|
+
<div className="bg-fm-surface-secondary p-4">
|
|
203
|
+
<h3 className="text-fm-icon-active! text-xl font-semibold">
|
|
204
|
+
Props
|
|
205
|
+
</h3>
|
|
202
206
|
</div>
|
|
203
207
|
<table className="!my-0 w-full">
|
|
204
|
-
<thead className="bg-
|
|
205
|
-
<tr className="border-
|
|
206
|
-
<th className="px-6 py-4 text-left text-sm font-semibold
|
|
208
|
+
<thead className="bg-fm-surface-secondary">
|
|
209
|
+
<tr className="border-fm-divider-secondary border-b">
|
|
210
|
+
<th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
|
|
207
211
|
Prop
|
|
208
212
|
</th>
|
|
209
|
-
<th className="px-6 py-4 text-left text-sm font-semibold
|
|
213
|
+
<th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
|
|
210
214
|
Type
|
|
211
215
|
</th>
|
|
212
|
-
<th className="px-6 py-4 text-left text-sm font-semibold
|
|
216
|
+
<th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
|
|
213
217
|
Default
|
|
214
218
|
</th>
|
|
215
|
-
<th className="px-6 py-4 text-left text-sm font-semibold
|
|
219
|
+
<th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
|
|
216
220
|
Description
|
|
217
221
|
</th>
|
|
218
222
|
</tr>
|
|
219
223
|
</thead>
|
|
220
224
|
<tbody>
|
|
221
225
|
{" "}
|
|
222
|
-
<tr className="
|
|
223
|
-
<td className="px-6 py-4 font-mono text-sm
|
|
226
|
+
<tr className="bg-fm-surface-secondary!">
|
|
227
|
+
<td className="text-fm-icon-info! px-6 py-4 font-mono text-sm">
|
|
224
228
|
withAccessibility
|
|
225
229
|
</td>
|
|
226
|
-
<td className="px-6 py-4 text-sm
|
|
230
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
227
231
|
boolean
|
|
228
232
|
</td>
|
|
229
|
-
<td className="px-6 py-4 text-sm
|
|
233
|
+
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
230
234
|
true
|
|
231
235
|
</td>
|
|
232
|
-
<td className="px-6 py-4 text-sm
|
|
236
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
233
237
|
Whether to wrap the icon with accessibility feature
|
|
234
238
|
</td>
|
|
235
239
|
</tr>
|
|
236
|
-
<tr className="border-
|
|
237
|
-
<td className="px-6 py-4 font-mono text-sm
|
|
240
|
+
<tr className="border-fm-divider-tertiary bg-fm-surface-secondary! border-b">
|
|
241
|
+
<td className="text-fm-icon-positive! px-6 py-4 font-mono text-sm">
|
|
238
242
|
height
|
|
239
243
|
</td>
|
|
240
|
-
<td className="px-6 py-4 text-sm
|
|
244
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
241
245
|
number | string
|
|
242
246
|
</td>
|
|
243
|
-
<td className="px-6 py-4 text-sm
|
|
244
|
-
|
|
247
|
+
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
248
|
+
24
|
|
249
|
+
</td>
|
|
250
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
245
251
|
Height of the icon in pixels
|
|
246
252
|
</td>
|
|
247
253
|
</tr>
|
|
248
|
-
<tr className="border-
|
|
249
|
-
<td className="px-6 py-4 font-mono text-sm
|
|
254
|
+
<tr className="border-fm-divider-tertiary border-b">
|
|
255
|
+
<td className="text-fm-icon-positive! px-6 py-4 font-mono text-sm">
|
|
250
256
|
stroke
|
|
251
257
|
</td>
|
|
252
|
-
<td className="px-6 py-4 text-sm
|
|
258
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
253
259
|
string
|
|
254
260
|
</td>
|
|
255
|
-
<td className="px-6 py-4 text-sm
|
|
261
|
+
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
256
262
|
currentColor
|
|
257
263
|
</td>
|
|
258
|
-
<td className="px-6 py-4 text-sm
|
|
264
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
259
265
|
Stroke color of the checkmark
|
|
260
266
|
</td>
|
|
261
267
|
</tr>
|
|
262
|
-
<tr className="border-
|
|
263
|
-
<td className="px-6 py-4 font-mono text-sm
|
|
268
|
+
<tr className="border-fm-divider-tertiary bg-fm-surface-secondary! border-b">
|
|
269
|
+
<td className="text-fm-icon-positive! px-6 py-4 font-mono text-sm">
|
|
264
270
|
strokeWidth
|
|
265
271
|
</td>
|
|
266
|
-
<td className="px-6 py-4 text-sm
|
|
272
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
267
273
|
number | string
|
|
268
274
|
</td>
|
|
269
|
-
<td className="px-6 py-4 text-sm
|
|
270
|
-
|
|
275
|
+
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
276
|
+
2
|
|
277
|
+
</td>
|
|
278
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
271
279
|
Width of the stroke line
|
|
272
280
|
</td>
|
|
273
281
|
</tr>
|
|
274
|
-
<tr className="border-
|
|
275
|
-
<td className="px-6 py-4 font-mono text-sm
|
|
282
|
+
<tr className="border-fm-divider-tertiary border-b">
|
|
283
|
+
<td className="text-fm-icon-positive! px-6 py-4 font-mono text-sm">
|
|
276
284
|
className
|
|
277
285
|
</td>
|
|
278
|
-
<td className="px-6 py-4 text-sm
|
|
286
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
279
287
|
string
|
|
280
288
|
</td>
|
|
281
|
-
<td className="px-6 py-4 text-sm
|
|
282
|
-
|
|
289
|
+
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
290
|
+
-
|
|
291
|
+
</td>
|
|
292
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
283
293
|
CSS classes for styling
|
|
284
294
|
</td>
|
|
285
295
|
</tr>
|
|
286
|
-
<tr className="border-
|
|
287
|
-
<td className="px-6 py-4 font-mono text-sm
|
|
296
|
+
<tr className="border-fm-divider-tertiary bg-fm-surface-secondary! border-b">
|
|
297
|
+
<td className="text-fm-icon-positive! px-6 py-4 font-mono text-sm">
|
|
288
298
|
viewBox
|
|
289
299
|
</td>
|
|
290
|
-
<td className="px-6 py-4 text-sm
|
|
300
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
291
301
|
string
|
|
292
302
|
</td>
|
|
293
|
-
<td className="px-6 py-4 text-sm
|
|
303
|
+
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
294
304
|
"0 0 24 24"
|
|
295
305
|
</td>
|
|
296
|
-
<td className="px-6 py-4 text-sm
|
|
306
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
297
307
|
SVG viewBox for scaling
|
|
298
308
|
</td>
|
|
299
309
|
</tr>
|
|
300
|
-
<tr className="
|
|
301
|
-
<td className="px-6 py-4 font-mono text-sm
|
|
310
|
+
<tr className="bg-fm-surface-secondary!">
|
|
311
|
+
<td className="text-fm-icon-positive! px-6 py-4 font-mono text-sm">
|
|
302
312
|
...svgProps
|
|
303
313
|
</td>
|
|
304
|
-
<td className="px-6 py-4 text-sm
|
|
314
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
305
315
|
SVGProps
|
|
306
316
|
</td>
|
|
307
|
-
<td className="px-6 py-4 text-sm
|
|
308
|
-
|
|
317
|
+
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
318
|
+
-
|
|
319
|
+
</td>
|
|
320
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
309
321
|
All standard SVG element props
|
|
310
322
|
</td>
|
|
311
323
|
</tr>
|
|
@@ -316,50 +328,62 @@ function CheckboxComponent() {
|
|
|
316
328
|
|
|
317
329
|
{/* Size Variations */}
|
|
318
330
|
<div className="!space-y-8">
|
|
319
|
-
<h2 className="text-center text-3xl font-bold
|
|
331
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
320
332
|
Size Variations
|
|
321
333
|
</h2>
|
|
322
|
-
<div className="rounded-lg border
|
|
334
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-8">
|
|
323
335
|
<div className="!space-y-6">
|
|
324
336
|
<div className="grid grid-cols-1 gap-8 md:grid-cols-2">
|
|
325
337
|
<div className="!space-y-4">
|
|
326
|
-
<h3 className="text-lg font-semibold
|
|
338
|
+
<h3 className="text-fm-icon-positive! text-lg font-semibold">
|
|
327
339
|
Standard Sizes
|
|
328
340
|
</h3>
|
|
329
|
-
<div className="flex items-end gap-6 rounded-lg
|
|
341
|
+
<div className="bg-fm-surface-secondary flex items-end gap-6 rounded-lg p-6">
|
|
330
342
|
<div className="text-center">
|
|
331
|
-
<TickIcon className="!mx-auto mb-2 h-3 w-3
|
|
332
|
-
<span className="text-
|
|
343
|
+
<TickIcon className="text-fm-icon-positive !mx-auto mb-2 h-3 w-3" />
|
|
344
|
+
<span className="text-fm-tertiary text-xs">
|
|
345
|
+
12px
|
|
346
|
+
</span>
|
|
333
347
|
</div>
|
|
334
348
|
<div className="text-center">
|
|
335
|
-
<TickIcon className="!mx-auto mb-2 h-4 w-4
|
|
336
|
-
<span className="text-
|
|
349
|
+
<TickIcon className="text-fm-icon-positive !mx-auto mb-2 h-4 w-4" />
|
|
350
|
+
<span className="text-fm-tertiary text-xs">
|
|
351
|
+
16px
|
|
352
|
+
</span>
|
|
337
353
|
</div>
|
|
338
354
|
<div className="text-center">
|
|
339
|
-
<TickIcon className="!mx-auto mb-2 h-5 w-5
|
|
340
|
-
<span className="text-
|
|
355
|
+
<TickIcon className="text-fm-icon-positive !mx-auto mb-2 h-5 w-5" />
|
|
356
|
+
<span className="text-fm-tertiary text-xs">
|
|
357
|
+
20px
|
|
358
|
+
</span>
|
|
341
359
|
</div>
|
|
342
360
|
<div className="text-center">
|
|
343
|
-
<TickIcon className="!mx-auto mb-2 h-6 w-6
|
|
344
|
-
<span className="text-
|
|
361
|
+
<TickIcon className="text-fm-icon-positive !mx-auto mb-2 h-6 w-6" />
|
|
362
|
+
<span className="text-fm-tertiary text-xs">
|
|
363
|
+
24px
|
|
364
|
+
</span>
|
|
345
365
|
</div>
|
|
346
366
|
<div className="text-center">
|
|
347
|
-
<TickIcon className="!mx-auto mb-2 h-8 w-8
|
|
348
|
-
<span className="text-
|
|
367
|
+
<TickIcon className="text-fm-icon-positive !mx-auto mb-2 h-8 w-8" />
|
|
368
|
+
<span className="text-fm-tertiary text-xs">
|
|
369
|
+
32px
|
|
370
|
+
</span>
|
|
349
371
|
</div>
|
|
350
372
|
<div className="text-center">
|
|
351
|
-
<TickIcon className="!mx-auto mb-2 h-12 w-12
|
|
352
|
-
<span className="text-
|
|
373
|
+
<TickIcon className="text-fm-icon-positive !mx-auto mb-2 h-12 w-12" />
|
|
374
|
+
<span className="text-fm-tertiary text-xs">
|
|
375
|
+
48px
|
|
376
|
+
</span>
|
|
353
377
|
</div>
|
|
354
378
|
</div>
|
|
355
379
|
</div>
|
|
356
380
|
|
|
357
381
|
<div className="!space-y-4">
|
|
358
|
-
<h3 className="text-lg font-semibold
|
|
382
|
+
<h3 className="text-fm-icon-positive! text-lg font-semibold">
|
|
359
383
|
Code Example
|
|
360
384
|
</h3>
|
|
361
|
-
<div className="rounded-lg
|
|
362
|
-
<pre className="overflow-x-auto text-sm
|
|
385
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
386
|
+
<pre className="text-fm-icon-info! overflow-x-auto text-sm">
|
|
363
387
|
{`// Small (16px)
|
|
364
388
|
<TickIcon className="h-4 w-4" />
|
|
365
389
|
|
|
@@ -384,56 +408,56 @@ function CheckboxComponent() {
|
|
|
384
408
|
|
|
385
409
|
{/* Color Variations */}
|
|
386
410
|
<div className="!space-y-8">
|
|
387
|
-
<h2 className="text-center text-3xl font-bold
|
|
411
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
388
412
|
Color Variations
|
|
389
413
|
</h2>
|
|
390
414
|
<div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
|
|
391
415
|
<div className="!space-y-4">
|
|
392
|
-
<h3 className="text-lg font-semibold
|
|
416
|
+
<h3 className="text-fm-icon-positive! text-lg font-semibold">
|
|
393
417
|
Semantic Colors
|
|
394
418
|
</h3>
|
|
395
|
-
<div className="!space-y-4 rounded-lg border
|
|
419
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
|
|
396
420
|
<div className="flex items-center gap-4">
|
|
397
|
-
<TickIcon className="h-6 w-6
|
|
421
|
+
<TickIcon className="text-fm-icon-positive h-6 w-6" />
|
|
398
422
|
<div>
|
|
399
|
-
<div className="text-sm font-medium
|
|
423
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
400
424
|
Success
|
|
401
425
|
</div>
|
|
402
|
-
<div className="text-
|
|
403
|
-
text-
|
|
426
|
+
<div className="text-fm-tertiary text-xs">
|
|
427
|
+
text-fm-icon-positive
|
|
404
428
|
</div>
|
|
405
429
|
</div>
|
|
406
430
|
</div>
|
|
407
431
|
<div className="flex items-center gap-4">
|
|
408
|
-
<TickIcon className="h-6 w-6
|
|
432
|
+
<TickIcon className="text-fm-icon-positive h-6 w-6" />
|
|
409
433
|
<div>
|
|
410
|
-
<div className="text-sm font-medium
|
|
434
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
411
435
|
Complete
|
|
412
436
|
</div>
|
|
413
|
-
<div className="text-
|
|
414
|
-
text-
|
|
437
|
+
<div className="text-fm-tertiary text-xs">
|
|
438
|
+
text-fm-icon-positive
|
|
415
439
|
</div>
|
|
416
440
|
</div>
|
|
417
441
|
</div>
|
|
418
442
|
<div className="flex items-center gap-4">
|
|
419
|
-
<TickIcon className="h-6 w-6
|
|
443
|
+
<TickIcon className="text-fm-icon-info h-6 w-6" />
|
|
420
444
|
<div>
|
|
421
|
-
<div className="text-sm font-medium
|
|
445
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
422
446
|
Selected
|
|
423
447
|
</div>
|
|
424
|
-
<div className="text-
|
|
425
|
-
text-
|
|
448
|
+
<div className="text-fm-tertiary text-xs">
|
|
449
|
+
text-fm-icon-info
|
|
426
450
|
</div>
|
|
427
451
|
</div>
|
|
428
452
|
</div>
|
|
429
453
|
<div className="flex items-center gap-4">
|
|
430
|
-
<TickIcon className="h-6 w-6
|
|
454
|
+
<TickIcon className="text-fm-secondary-600 h-6 w-6" />
|
|
431
455
|
<div>
|
|
432
|
-
<div className="text-sm font-medium
|
|
456
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
433
457
|
Verified
|
|
434
458
|
</div>
|
|
435
|
-
<div className="text-
|
|
436
|
-
text-
|
|
459
|
+
<div className="text-fm-tertiary text-xs">
|
|
460
|
+
text-fm-secondary-600
|
|
437
461
|
</div>
|
|
438
462
|
</div>
|
|
439
463
|
</div>
|
|
@@ -441,11 +465,11 @@ function CheckboxComponent() {
|
|
|
441
465
|
</div>
|
|
442
466
|
|
|
443
467
|
<div className="!space-y-4">
|
|
444
|
-
<h3 className="text-lg font-semibold
|
|
468
|
+
<h3 className="text-fm-icon-positive! text-lg font-semibold">
|
|
445
469
|
Custom Colors & Stroke Width
|
|
446
470
|
</h3>
|
|
447
|
-
<div className="rounded-lg
|
|
448
|
-
<pre className="overflow-x-auto text-sm
|
|
471
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
472
|
+
<pre className="text-fm-icon-info! overflow-x-auto text-sm">
|
|
449
473
|
{`// Using Tailwind classes
|
|
450
474
|
<TickIcon className="h-6 w-6 text-green-400" />
|
|
451
475
|
<TickIcon className="h-6 w-6 text-emerald-500" />
|
|
@@ -477,14 +501,14 @@ function CheckboxComponent() {
|
|
|
477
501
|
|
|
478
502
|
{/* Usage Examples */}
|
|
479
503
|
<div className="!space-y-8">
|
|
480
|
-
<h2 className="text-center text-3xl font-bold
|
|
504
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
481
505
|
Usage Examples
|
|
482
506
|
</h2>
|
|
483
507
|
|
|
484
508
|
<div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
|
|
485
509
|
{/* Checkbox */}
|
|
486
510
|
<div className="!space-y-4">
|
|
487
|
-
<h3 className="text-lg font-semibold
|
|
511
|
+
<h3 className="text-fm-icon-positive! text-lg font-semibold">
|
|
488
512
|
Custom Checkbox
|
|
489
513
|
</h3>
|
|
490
514
|
<div className="!space-y-4">
|
|
@@ -496,32 +520,32 @@ function CheckboxComponent() {
|
|
|
496
520
|
className="peer sr-only"
|
|
497
521
|
defaultChecked
|
|
498
522
|
/>
|
|
499
|
-
<div className="peer-unchecked:bg-transparent peer-unchecked:border-
|
|
523
|
+
<div className="peer-unchecked:bg-transparent peer-unchecked:border-fm-divider-primary border-fm-icon-positive bg-fm-icon-positive peer-checked:border-fm-icon-positive peer-checked:bg-fm-icon-positive h-5 w-5 rounded border-2 transition-colors" />
|
|
500
524
|
<TickIcon
|
|
501
|
-
className="peer-unchecked:opacity-0 absolute inset-0 h-5 w-5
|
|
525
|
+
className="peer-unchecked:opacity-0 text-fm-icon-active absolute inset-0 h-5 w-5 opacity-100 transition-opacity"
|
|
502
526
|
strokeWidth={2}
|
|
503
527
|
/>
|
|
504
528
|
</div>
|
|
505
|
-
<span className="text-
|
|
529
|
+
<span className="text-fm-icon-active">
|
|
506
530
|
Accept terms and conditions
|
|
507
531
|
</span>
|
|
508
532
|
</label>
|
|
509
533
|
<label className="flex cursor-pointer items-center gap-3">
|
|
510
534
|
<div className="relative">
|
|
511
535
|
<input type="checkbox" className="peer sr-only" />
|
|
512
|
-
<div className="h-5 w-5 rounded border-2
|
|
536
|
+
<div className="border-fm-divider-primary peer-checked:border-fm-icon-positive peer-checked:bg-fm-icon-positive h-5 w-5 rounded border-2 bg-transparent transition-colors" />
|
|
513
537
|
<TickIcon
|
|
514
|
-
className="absolute inset-0 h-5 w-5
|
|
538
|
+
className="text-fm-icon-active absolute inset-0 h-5 w-5 opacity-0 transition-opacity peer-checked:opacity-100"
|
|
515
539
|
strokeWidth={2}
|
|
516
540
|
/>
|
|
517
541
|
</div>
|
|
518
|
-
<span className="text-
|
|
542
|
+
<span className="text-fm-icon-active">
|
|
519
543
|
Subscribe to newsletter
|
|
520
544
|
</span>
|
|
521
545
|
</label>
|
|
522
546
|
</div>
|
|
523
|
-
<div className="rounded-lg
|
|
524
|
-
<pre className="overflow-x-auto text-sm
|
|
547
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
548
|
+
<pre className="text-fm-icon-info! overflow-x-auto text-sm">
|
|
525
549
|
{`<label className="flex items-center gap-3 cursor-pointer">
|
|
526
550
|
<div className="relative">
|
|
527
551
|
<input type="checkbox" className="sr-only peer" />
|
|
@@ -537,41 +561,41 @@ function CheckboxComponent() {
|
|
|
537
561
|
|
|
538
562
|
{/* Todo List */}
|
|
539
563
|
<div className="!space-y-4">
|
|
540
|
-
<h3 className="text-lg font-semibold
|
|
564
|
+
<h3 className="text-fm-icon-positive! text-lg font-semibold">
|
|
541
565
|
Todo List
|
|
542
566
|
</h3>
|
|
543
567
|
<div className="!space-y-4">
|
|
544
568
|
<div className="!space-y-3">
|
|
545
|
-
<div className="flex items-center gap-3 rounded-lg border
|
|
546
|
-
<TickIcon className="h-5 w-5
|
|
547
|
-
<span className="flex-1
|
|
569
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary flex items-center gap-3 rounded-lg border p-3">
|
|
570
|
+
<TickIcon className="text-fm-icon-positive h-5 w-5" />
|
|
571
|
+
<span className="text-fm-icon-active flex-1 line-through opacity-70">
|
|
548
572
|
Set up project repository
|
|
549
573
|
</span>
|
|
550
|
-
<span className="text-
|
|
574
|
+
<span className="text-fm-icon-positive text-xs">
|
|
551
575
|
Completed
|
|
552
576
|
</span>
|
|
553
577
|
</div>
|
|
554
|
-
<div className="flex items-center gap-3 rounded-lg border
|
|
555
|
-
<TickIcon className="h-5 w-5
|
|
556
|
-
<span className="flex-1
|
|
578
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary flex items-center gap-3 rounded-lg border p-3">
|
|
579
|
+
<TickIcon className="text-fm-icon-positive h-5 w-5" />
|
|
580
|
+
<span className="text-fm-icon-active flex-1 line-through opacity-70">
|
|
557
581
|
Design user interface
|
|
558
582
|
</span>
|
|
559
|
-
<span className="text-
|
|
583
|
+
<span className="text-fm-icon-positive text-xs">
|
|
560
584
|
Completed
|
|
561
585
|
</span>
|
|
562
586
|
</div>
|
|
563
|
-
<div className="flex items-center gap-3 rounded-lg border
|
|
564
|
-
<div className="h-5 w-5 rounded-full border-2
|
|
565
|
-
<span className="flex-1
|
|
587
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary flex items-center gap-3 rounded-lg border p-3">
|
|
588
|
+
<div className="border-fm-divider-primary h-5 w-5 rounded-full border-2"></div>
|
|
589
|
+
<span className="text-fm-icon-active flex-1">
|
|
566
590
|
Implement authentication
|
|
567
591
|
</span>
|
|
568
|
-
<span className="text-
|
|
592
|
+
<span className="text-fm-placeholder text-xs">
|
|
569
593
|
In Progress
|
|
570
594
|
</span>
|
|
571
595
|
</div>
|
|
572
596
|
</div>
|
|
573
|
-
<div className="rounded-lg
|
|
574
|
-
<pre className="overflow-x-auto text-sm
|
|
597
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
598
|
+
<pre className="text-fm-icon-info! overflow-x-auto text-sm">
|
|
575
599
|
{`// Completed task
|
|
576
600
|
<div className="flex items-center gap-3 p-3 border border-white/10 bg-white/5 rounded-lg">
|
|
577
601
|
<TickIcon className="h-5 w-5 text-green-400" />
|
|
@@ -592,30 +616,30 @@ function CheckboxComponent() {
|
|
|
592
616
|
|
|
593
617
|
{/* Form Validation */}
|
|
594
618
|
<div className="!space-y-4">
|
|
595
|
-
<h3 className="text-lg font-semibold
|
|
619
|
+
<h3 className="text-fm-icon-positive! text-lg font-semibold">
|
|
596
620
|
Form Validation
|
|
597
621
|
</h3>
|
|
598
622
|
<div className="!space-y-4">
|
|
599
623
|
<div className="!space-y-2">
|
|
600
|
-
<label className="text-sm font-medium
|
|
624
|
+
<label className="text-fm-icon-active! text-sm font-medium">
|
|
601
625
|
Password
|
|
602
626
|
</label>
|
|
603
627
|
<div className="relative">
|
|
604
628
|
<input
|
|
605
629
|
type="password"
|
|
606
|
-
className="
|
|
630
|
+
className="border-fm-icon-positive/50 bg-fm-surface-secondary text-fm-icon-active! focus:border-fm-icon-positive w-full rounded-lg border px-3 py-2 pr-10 focus:ring-2 focus:ring-green-500/20"
|
|
607
631
|
placeholder="Enter your password"
|
|
608
632
|
defaultValue="securepassword123"
|
|
609
633
|
/>
|
|
610
|
-
<TickIcon className="absolute top-1/2 right-3 h-4 w-4 -translate-y-1/2
|
|
634
|
+
<TickIcon className="text-fm-icon-positive absolute top-1/2 right-3 h-4 w-4 -translate-y-1/2" />
|
|
611
635
|
</div>
|
|
612
|
-
<div className="flex items-center gap-2 text-sm
|
|
636
|
+
<div className="text-fm-icon-positive flex items-center gap-2 text-sm">
|
|
613
637
|
<TickIcon className="h-4 w-4" strokeWidth={2} />
|
|
614
638
|
<span>Password meets all requirements</span>
|
|
615
639
|
</div>
|
|
616
640
|
</div>
|
|
617
|
-
<div className="rounded-lg
|
|
618
|
-
<pre className="overflow-x-auto text-sm
|
|
641
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
642
|
+
<pre className="text-fm-icon-info! overflow-x-auto text-sm">
|
|
619
643
|
{`// Input with validation icon
|
|
620
644
|
<div className="relative">
|
|
621
645
|
<input className="pr-10 border-green-500/50" />
|
|
@@ -634,46 +658,46 @@ function CheckboxComponent() {
|
|
|
634
658
|
|
|
635
659
|
{/* Settings Toggle */}
|
|
636
660
|
<div className="!space-y-4">
|
|
637
|
-
<h3 className="text-lg font-semibold
|
|
661
|
+
<h3 className="text-fm-icon-positive! text-lg font-semibold">
|
|
638
662
|
Settings Options
|
|
639
663
|
</h3>
|
|
640
664
|
<div className="!space-y-4">
|
|
641
|
-
<div className="!space-y-3 rounded-lg border
|
|
665
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4">
|
|
642
666
|
<div className="flex items-center justify-between">
|
|
643
667
|
<div className="flex items-center gap-3">
|
|
644
|
-
<TickIcon className="h-5 w-5
|
|
668
|
+
<TickIcon className="text-fm-icon-positive h-5 w-5" />
|
|
645
669
|
<div>
|
|
646
|
-
<div className="font-medium
|
|
670
|
+
<div className="text-fm-icon-active font-medium">
|
|
647
671
|
Email Notifications
|
|
648
672
|
</div>
|
|
649
|
-
<div className="text-
|
|
673
|
+
<div className="text-fm-tertiary text-sm">
|
|
650
674
|
Receive updates via email
|
|
651
675
|
</div>
|
|
652
676
|
</div>
|
|
653
677
|
</div>
|
|
654
|
-
<span className="text-
|
|
678
|
+
<span className="text-fm-icon-positive text-xs">
|
|
655
679
|
Enabled
|
|
656
680
|
</span>
|
|
657
681
|
</div>
|
|
658
682
|
<div className="flex items-center justify-between">
|
|
659
683
|
<div className="flex items-center gap-3">
|
|
660
|
-
<div className="h-5 w-5 rounded border
|
|
684
|
+
<div className="border-fm-divider-primary h-5 w-5 rounded border"></div>
|
|
661
685
|
<div>
|
|
662
|
-
<div className="font-medium
|
|
686
|
+
<div className="text-fm-icon-active font-medium">
|
|
663
687
|
Push Notifications
|
|
664
688
|
</div>
|
|
665
|
-
<div className="text-
|
|
689
|
+
<div className="text-fm-tertiary text-sm">
|
|
666
690
|
Receive browser notifications
|
|
667
691
|
</div>
|
|
668
692
|
</div>
|
|
669
693
|
</div>
|
|
670
|
-
<span className="text-
|
|
694
|
+
<span className="text-fm-placeholder text-xs">
|
|
671
695
|
Disabled
|
|
672
696
|
</span>
|
|
673
697
|
</div>
|
|
674
698
|
</div>
|
|
675
|
-
<div className="rounded-lg
|
|
676
|
-
<pre className="overflow-x-auto text-sm
|
|
699
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
700
|
+
<pre className="text-fm-icon-info! overflow-x-auto text-sm">
|
|
677
701
|
{`// Enabled setting
|
|
678
702
|
<div className="flex items-center justify-between">
|
|
679
703
|
<div className="flex items-center gap-3">
|
|
@@ -692,46 +716,48 @@ function CheckboxComponent() {
|
|
|
692
716
|
|
|
693
717
|
{/* Step Indicator */}
|
|
694
718
|
<div className="!space-y-4">
|
|
695
|
-
<h3 className="text-lg font-semibold
|
|
719
|
+
<h3 className="text-fm-icon-positive! text-lg font-semibold">
|
|
696
720
|
Step Progress
|
|
697
721
|
</h3>
|
|
698
722
|
<div className="!space-y-4">
|
|
699
723
|
<div className="flex items-center gap-4">
|
|
700
724
|
<div className="flex items-center gap-2">
|
|
701
|
-
<div className="flex h-8 w-8 items-center justify-center rounded-full
|
|
725
|
+
<div className="bg-fm-icon-positive flex h-8 w-8 items-center justify-center rounded-full">
|
|
702
726
|
<TickIcon
|
|
703
|
-
className="h-4 w-4
|
|
727
|
+
className="text-fm-icon-active h-4 w-4"
|
|
704
728
|
strokeWidth={2}
|
|
705
729
|
/>
|
|
706
730
|
</div>
|
|
707
|
-
<span className="text-
|
|
731
|
+
<span className="text-fm-icon-positive text-sm">
|
|
708
732
|
Account Setup
|
|
709
733
|
</span>
|
|
710
734
|
</div>
|
|
711
|
-
<div className="h-px flex-1
|
|
735
|
+
<div className="bg-fm-icon-positive h-px flex-1"></div>
|
|
712
736
|
<div className="flex items-center gap-2">
|
|
713
|
-
<div className="flex h-8 w-8 items-center justify-center rounded-full
|
|
737
|
+
<div className="bg-fm-icon-positive flex h-8 w-8 items-center justify-center rounded-full">
|
|
714
738
|
<TickIcon
|
|
715
|
-
className="h-4 w-4
|
|
739
|
+
className="text-fm-icon-active h-4 w-4"
|
|
716
740
|
strokeWidth={2}
|
|
717
741
|
/>
|
|
718
742
|
</div>
|
|
719
|
-
<span className="text-
|
|
743
|
+
<span className="text-fm-icon-positive text-sm">
|
|
720
744
|
Profile Info
|
|
721
745
|
</span>
|
|
722
746
|
</div>
|
|
723
|
-
<div className="h-px flex-1
|
|
747
|
+
<div className="bg-fm-divider-primary h-px flex-1"></div>
|
|
724
748
|
<div className="flex items-center gap-2">
|
|
725
|
-
<div className="flex h-8 w-8 items-center justify-center rounded-full border-2
|
|
726
|
-
<span className="text-
|
|
749
|
+
<div className="border-fm-divider-primary bg-fm-surface-secondary flex h-8 w-8 items-center justify-center rounded-full border-2">
|
|
750
|
+
<span className="text-fm-icon-active text-xs">
|
|
751
|
+
3
|
|
752
|
+
</span>
|
|
727
753
|
</div>
|
|
728
|
-
<span className="text-
|
|
754
|
+
<span className="text-fm-tertiary text-sm">
|
|
729
755
|
Verification
|
|
730
756
|
</span>
|
|
731
757
|
</div>
|
|
732
758
|
</div>
|
|
733
|
-
<div className="rounded-lg
|
|
734
|
-
<pre className="overflow-x-auto text-sm
|
|
759
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
760
|
+
<pre className="text-fm-icon-info! overflow-x-auto text-sm">
|
|
735
761
|
{`// Completed step
|
|
736
762
|
<div className="flex h-8 w-8 items-center justify-center rounded-full bg-green-500">
|
|
737
763
|
<TickIcon className="h-4 w-4 text-white" strokeWidth={2} />
|
|
@@ -748,29 +774,29 @@ function CheckboxComponent() {
|
|
|
748
774
|
|
|
749
775
|
{/* Success Message */}
|
|
750
776
|
<div className="!space-y-4">
|
|
751
|
-
<h3 className="text-lg font-semibold
|
|
777
|
+
<h3 className="text-fm-icon-positive! text-lg font-semibold">
|
|
752
778
|
Success Message
|
|
753
779
|
</h3>
|
|
754
780
|
<div className="!space-y-4">
|
|
755
|
-
<div className="
|
|
781
|
+
<div className="border-fm-icon-positive/20 bg-fm-icon-positive/10 rounded-lg border p-4">
|
|
756
782
|
<div className="flex items-start gap-3">
|
|
757
783
|
<TickIcon
|
|
758
|
-
className="animate-tick-scale mt-0.5 h-5 w-5 flex-shrink-0
|
|
784
|
+
className="animate-tick-scale text-fm-icon-positive mt-0.5 h-5 w-5 flex-shrink-0"
|
|
759
785
|
strokeWidth={2}
|
|
760
786
|
/>
|
|
761
787
|
<div>
|
|
762
|
-
<h4 className="font-medium
|
|
788
|
+
<h4 className="text-fm-icon-positive! font-medium">
|
|
763
789
|
Changes Saved Successfully
|
|
764
790
|
</h4>
|
|
765
|
-
<p className="text-
|
|
791
|
+
<p className="text-fm-icon-positive!/80 text-sm">
|
|
766
792
|
Your profile has been updated and all changes are
|
|
767
793
|
now active.
|
|
768
794
|
</p>
|
|
769
795
|
</div>
|
|
770
796
|
</div>
|
|
771
797
|
</div>
|
|
772
|
-
<div className="rounded-lg
|
|
773
|
-
<pre className="overflow-x-auto text-sm
|
|
798
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
799
|
+
<pre className="text-fm-icon-info! overflow-x-auto text-sm">
|
|
774
800
|
{`<div className="border border-green-500/20 bg-green-500/10 p-4 rounded-lg">
|
|
775
801
|
<div className="flex items-start gap-3">
|
|
776
802
|
<TickIcon className="h-5 w-5 text-green-400 mt-0.5 flex-shrink-0 animate-bounce" strokeWidth={2} />
|
|
@@ -791,67 +817,67 @@ function CheckboxComponent() {
|
|
|
791
817
|
|
|
792
818
|
{/* Interactive States */}
|
|
793
819
|
<div className="!space-y-8">
|
|
794
|
-
<h2 className="text-center text-3xl font-bold
|
|
820
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
795
821
|
Interactive States & Animations
|
|
796
822
|
</h2>
|
|
797
823
|
<div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
|
|
798
824
|
<div className="!space-y-4">
|
|
799
|
-
<h3 className="text-lg font-semibold
|
|
825
|
+
<h3 className="text-fm-icon-positive! text-lg font-semibold">
|
|
800
826
|
Animation Effects
|
|
801
827
|
</h3>
|
|
802
|
-
<div className="!space-y-4 rounded-lg border
|
|
828
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
|
|
803
829
|
<div className="flex items-center gap-4">
|
|
804
830
|
<TickIcon
|
|
805
|
-
className="animate-tick-draw h-8 w-8
|
|
831
|
+
className="animate-tick-draw text-fm-icon-positive h-8 w-8"
|
|
806
832
|
strokeWidth={2}
|
|
807
833
|
/>
|
|
808
834
|
<div>
|
|
809
|
-
<div className="text-sm font-medium
|
|
835
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
810
836
|
Draw Animation
|
|
811
837
|
</div>
|
|
812
|
-
<div className="text-
|
|
838
|
+
<div className="text-fm-tertiary text-xs">
|
|
813
839
|
Stroke drawing effect
|
|
814
840
|
</div>
|
|
815
841
|
</div>
|
|
816
842
|
</div>
|
|
817
843
|
<div className="flex items-center gap-4">
|
|
818
844
|
<TickIcon
|
|
819
|
-
className="animate-tick-scale h-8 w-8
|
|
845
|
+
className="animate-tick-scale text-fm-icon-positive h-8 w-8"
|
|
820
846
|
strokeWidth={2}
|
|
821
847
|
/>
|
|
822
848
|
<div>
|
|
823
|
-
<div className="text-sm font-medium
|
|
849
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
824
850
|
Scale Effect
|
|
825
851
|
</div>
|
|
826
|
-
<div className="text-
|
|
852
|
+
<div className="text-fm-tertiary text-xs">
|
|
827
853
|
Quick scale animation
|
|
828
854
|
</div>
|
|
829
855
|
</div>
|
|
830
856
|
</div>
|
|
831
857
|
<div className="flex items-center gap-4">
|
|
832
858
|
<TickIcon
|
|
833
|
-
className="h-8 w-8
|
|
859
|
+
className="text-fm-icon-positive h-8 w-8 transition-transform hover:scale-110"
|
|
834
860
|
strokeWidth={2}
|
|
835
861
|
/>
|
|
836
862
|
<div>
|
|
837
|
-
<div className="text-sm font-medium
|
|
863
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
838
864
|
Hover Scale
|
|
839
865
|
</div>
|
|
840
|
-
<div className="text-
|
|
866
|
+
<div className="text-fm-tertiary text-xs">
|
|
841
867
|
Interactive growth
|
|
842
868
|
</div>
|
|
843
869
|
</div>
|
|
844
870
|
</div>
|
|
845
871
|
<div className="flex items-center gap-4">
|
|
846
872
|
<TickIcon
|
|
847
|
-
className="h-8 w-8
|
|
873
|
+
className="text-fm-icon-positive hover:text-fm-icon-positive h-8 w-8 transition-colors"
|
|
848
874
|
strokeWidth={2}
|
|
849
875
|
/>
|
|
850
876
|
<div>
|
|
851
|
-
<div className="text-sm font-medium
|
|
877
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
852
878
|
Color Transition
|
|
853
879
|
</div>
|
|
854
|
-
<div className="text-
|
|
880
|
+
<div className="text-fm-tertiary text-xs">
|
|
855
881
|
Smooth color change
|
|
856
882
|
</div>
|
|
857
883
|
</div>
|
|
@@ -860,11 +886,11 @@ function CheckboxComponent() {
|
|
|
860
886
|
</div>
|
|
861
887
|
|
|
862
888
|
<div className="!space-y-4">
|
|
863
|
-
<h3 className="text-lg font-semibold
|
|
889
|
+
<h3 className="text-fm-icon-positive! text-lg font-semibold">
|
|
864
890
|
Animation Code
|
|
865
891
|
</h3>
|
|
866
|
-
<div className="rounded-lg
|
|
867
|
-
<pre className="overflow-x-auto text-sm
|
|
892
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
893
|
+
<pre className="text-fm-icon-info! overflow-x-auto text-sm">
|
|
868
894
|
{`// Draw animation keyframes
|
|
869
895
|
@keyframes tick-draw {
|
|
870
896
|
0% { stroke-dashoffset: 20; }
|
|
@@ -898,70 +924,70 @@ function CheckboxComponent() {
|
|
|
898
924
|
|
|
899
925
|
{/* Accessibility */}
|
|
900
926
|
<div className="!space-y-8">
|
|
901
|
-
<h2 className="text-center text-3xl font-bold
|
|
927
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
902
928
|
Accessibility Features
|
|
903
929
|
</h2>
|
|
904
930
|
<div className="grid grid-cols-1 gap-8 md:grid-cols-2">
|
|
905
|
-
<div className="!space-y-4 rounded-lg border
|
|
906
|
-
<h3 className="text-lg font-semibold
|
|
931
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
|
|
932
|
+
<h3 className="text-fm-icon-positive! text-lg font-semibold">
|
|
907
933
|
✅ Built-in Features
|
|
908
934
|
</h3>
|
|
909
|
-
<ul className="!space-y-2 text-sm
|
|
910
|
-
<li className="
|
|
935
|
+
<ul className="text-fm-secondary! !space-y-2 text-sm">
|
|
936
|
+
<li className="text-fm-secondary!">
|
|
911
937
|
Uses Radix UI AccessibleIcon wrapper
|
|
912
938
|
</li>
|
|
913
|
-
<li className="
|
|
939
|
+
<li className="text-fm-secondary!">
|
|
914
940
|
Provides screen reader label "Tick icon"
|
|
915
941
|
</li>
|
|
916
|
-
<li className="
|
|
942
|
+
<li className="text-fm-secondary!">
|
|
917
943
|
Supports keyboard navigation when interactive
|
|
918
944
|
</li>
|
|
919
|
-
<li className="
|
|
945
|
+
<li className="text-fm-secondary!">
|
|
920
946
|
Maintains proper color contrast ratios
|
|
921
947
|
</li>
|
|
922
|
-
<li className="
|
|
948
|
+
<li className="text-fm-secondary!">
|
|
923
949
|
Scales with user's font size preferences
|
|
924
950
|
</li>
|
|
925
|
-
<li className="
|
|
951
|
+
<li className="text-fm-secondary!">
|
|
926
952
|
Stroke-based design ensures clarity at all sizes
|
|
927
953
|
</li>
|
|
928
954
|
</ul>
|
|
929
955
|
</div>
|
|
930
956
|
|
|
931
|
-
<div className="!space-y-4 rounded-lg border
|
|
932
|
-
<h3 className="text-lg font-semibold
|
|
957
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
|
|
958
|
+
<h3 className="text-fm-icon-positive! text-lg font-semibold">
|
|
933
959
|
💡 Best Practices
|
|
934
960
|
</h3>
|
|
935
|
-
<ul className="!space-y-2 text-sm
|
|
936
|
-
<li className="
|
|
961
|
+
<ul className="text-fm-secondary! !space-y-2 text-sm">
|
|
962
|
+
<li className="text-fm-secondary!">
|
|
937
963
|
Always pair with descriptive text or labels
|
|
938
964
|
</li>
|
|
939
|
-
<li className="
|
|
965
|
+
<li className="text-fm-secondary!">
|
|
940
966
|
Use consistent colors for success states
|
|
941
967
|
</li>
|
|
942
|
-
<li className="
|
|
968
|
+
<li className="text-fm-secondary!">
|
|
943
969
|
Ensure sufficient color contrast (minimum 3:1)
|
|
944
970
|
</li>
|
|
945
|
-
<li className="
|
|
971
|
+
<li className="text-fm-secondary!">
|
|
946
972
|
Add focus states for interactive checkboxes
|
|
947
973
|
</li>
|
|
948
|
-
<li className="
|
|
974
|
+
<li className="text-fm-secondary!">
|
|
949
975
|
Consider motion sensitivity for animations
|
|
950
976
|
</li>
|
|
951
|
-
<li className="
|
|
977
|
+
<li className="text-fm-secondary!">
|
|
952
978
|
Use appropriate stroke width for visibility
|
|
953
979
|
</li>
|
|
954
980
|
</ul>
|
|
955
981
|
</div>
|
|
956
982
|
</div>
|
|
957
983
|
|
|
958
|
-
<div className="rounded-lg border
|
|
959
|
-
<h3 className="mb-4 text-lg font-semibold
|
|
984
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
|
|
985
|
+
<h3 className="text-fm-secondary-600! mb-4 text-lg font-semibold">
|
|
960
986
|
Custom Accessibility Implementation
|
|
961
987
|
</h3>
|
|
962
988
|
<div className="grid grid-cols-1 gap-6 lg:grid-cols-2">
|
|
963
|
-
<div className="rounded-lg
|
|
964
|
-
<pre className="overflow-x-auto text-sm
|
|
989
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
990
|
+
<pre className="text-fm-icon-info! overflow-x-auto text-sm">
|
|
965
991
|
{`// Custom implementation with specific label
|
|
966
992
|
import { AccessibleIcon } from "@radix-ui/react-accessible-icon"
|
|
967
993
|
|
|
@@ -998,14 +1024,14 @@ function CompletionIcon({ label = "Completed", ...props }) {
|
|
|
998
1024
|
</pre>
|
|
999
1025
|
</div>
|
|
1000
1026
|
<div className="!space-y-4">
|
|
1001
|
-
<p className="text-
|
|
1027
|
+
<p className="text-fm-secondary! text-sm">
|
|
1002
1028
|
When using TickIcon for checkboxes or task completion,
|
|
1003
1029
|
ensure proper labeling and keyboard accessibility. The
|
|
1004
1030
|
stroke-based design maintains clarity even when scaled
|
|
1005
1031
|
for users with visual impairments.
|
|
1006
1032
|
</p>
|
|
1007
|
-
<div className="
|
|
1008
|
-
<div className="flex items-center gap-2 text-sm
|
|
1033
|
+
<div className="border-fm-icon-positive/20 bg-fm-icon-positive/10 rounded-lg border p-4">
|
|
1034
|
+
<div className="text-fm-icon-positive flex items-center gap-2 text-sm">
|
|
1009
1035
|
<TickIcon className="h-4 w-4" strokeWidth={2} />
|
|
1010
1036
|
<span>
|
|
1011
1037
|
Clear visual feedback helps all users understand
|
|
@@ -1020,52 +1046,58 @@ function CompletionIcon({ label = "Completed", ...props }) {
|
|
|
1020
1046
|
|
|
1021
1047
|
{/* Related Icons */}
|
|
1022
1048
|
<div className="!space-y-8">
|
|
1023
|
-
<h2 className="text-center text-3xl font-bold
|
|
1049
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
1024
1050
|
Related Icons
|
|
1025
1051
|
</h2>
|
|
1026
1052
|
<div className="grid grid-cols-2 gap-6 md:grid-cols-4">
|
|
1027
|
-
<div className="!space-y-3 rounded-lg border
|
|
1028
|
-
<div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg
|
|
1053
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
|
|
1054
|
+
<div className="bg-fm-icon-positive/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
|
|
1029
1055
|
<span className="text-2xl">✅</span>
|
|
1030
1056
|
</div>
|
|
1031
1057
|
<div>
|
|
1032
|
-
<div className="font-medium
|
|
1058
|
+
<div className="text-fm-icon-active font-medium">
|
|
1033
1059
|
TickCircleIcon
|
|
1034
1060
|
</div>
|
|
1035
|
-
<div className="text-
|
|
1061
|
+
<div className="text-fm-tertiary text-xs">
|
|
1036
1062
|
Checkmark in circle
|
|
1037
1063
|
</div>
|
|
1038
1064
|
</div>
|
|
1039
1065
|
</div>
|
|
1040
|
-
<div className="!space-y-3 rounded-lg border
|
|
1041
|
-
<div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg
|
|
1066
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
|
|
1067
|
+
<div className="bg-fm-icon-negative/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
|
|
1042
1068
|
<span className="text-2xl">❌</span>
|
|
1043
1069
|
</div>
|
|
1044
1070
|
<div>
|
|
1045
|
-
<div className="font-medium
|
|
1046
|
-
|
|
1071
|
+
<div className="text-fm-icon-active font-medium">
|
|
1072
|
+
CrossIcon
|
|
1073
|
+
</div>
|
|
1074
|
+
<div className="text-fm-tertiary text-xs">
|
|
1047
1075
|
Close/cancel states
|
|
1048
1076
|
</div>
|
|
1049
1077
|
</div>
|
|
1050
1078
|
</div>
|
|
1051
|
-
<div className="!space-y-3 rounded-lg border
|
|
1052
|
-
<div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg
|
|
1079
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
|
|
1080
|
+
<div className="bg-fm-icon-info/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
|
|
1053
1081
|
<span className="text-2xl">ℹ️</span>
|
|
1054
1082
|
</div>
|
|
1055
1083
|
<div>
|
|
1056
|
-
<div className="font-medium
|
|
1057
|
-
|
|
1084
|
+
<div className="text-fm-icon-active font-medium">
|
|
1085
|
+
InfoIcon
|
|
1086
|
+
</div>
|
|
1087
|
+
<div className="text-fm-tertiary text-xs">
|
|
1058
1088
|
Information states
|
|
1059
1089
|
</div>
|
|
1060
1090
|
</div>
|
|
1061
1091
|
</div>
|
|
1062
|
-
<div className="!space-y-3 rounded-lg border
|
|
1063
|
-
<div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg
|
|
1092
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
|
|
1093
|
+
<div className="bg-fm-icon-warning/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
|
|
1064
1094
|
<span className="text-2xl">⚠️</span>
|
|
1065
1095
|
</div>
|
|
1066
1096
|
<div>
|
|
1067
|
-
<div className="font-medium
|
|
1068
|
-
|
|
1097
|
+
<div className="text-fm-icon-active font-medium">
|
|
1098
|
+
AlertIcon
|
|
1099
|
+
</div>
|
|
1100
|
+
<div className="text-fm-tertiary text-xs">
|
|
1069
1101
|
Warning states
|
|
1070
1102
|
</div>
|
|
1071
1103
|
</div>
|
|
@@ -1075,15 +1107,15 @@ function CompletionIcon({ label = "Completed", ...props }) {
|
|
|
1075
1107
|
</div>
|
|
1076
1108
|
|
|
1077
1109
|
{/* Footer */}
|
|
1078
|
-
<div className="border-
|
|
1110
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary border-t backdrop-blur-xl">
|
|
1079
1111
|
<div className="!mx-auto max-w-7xl px-6 py-8">
|
|
1080
1112
|
<div className="!space-y-4 text-center">
|
|
1081
|
-
<p className="
|
|
1113
|
+
<p className="text-fm-tertiary!">
|
|
1082
1114
|
TickIcon is part of the Aural UI icon library, designed for
|
|
1083
1115
|
checkboxes, task completion, and success feedback with a
|
|
1084
1116
|
clean stroke-based design.
|
|
1085
1117
|
</p>
|
|
1086
|
-
<p className="text-
|
|
1118
|
+
<p className="text-fm-placeholder! text-sm">
|
|
1087
1119
|
All icons use Radix UI's AccessibleIcon for screen reader
|
|
1088
1120
|
compatibility and follow WCAG guidelines for interactive
|
|
1089
1121
|
elements.
|
|
@@ -1133,8 +1165,8 @@ const storyParameters = {
|
|
|
1133
1165
|
backgrounds: {
|
|
1134
1166
|
default: "dark",
|
|
1135
1167
|
values: [
|
|
1136
|
-
{ name: "dark", value: "
|
|
1137
|
-
{ name: "darker", value: "
|
|
1168
|
+
{ name: "dark", value: "var(--color-fm-surface-primary)" },
|
|
1169
|
+
{ name: "darker", value: "var(--color-fm-neutral-0)" },
|
|
1138
1170
|
],
|
|
1139
1171
|
},
|
|
1140
1172
|
}
|
|
@@ -1143,12 +1175,12 @@ export const Default: Story = {
|
|
|
1143
1175
|
args: {
|
|
1144
1176
|
width: 24,
|
|
1145
1177
|
height: 24,
|
|
1146
|
-
className: "text-
|
|
1178
|
+
className: "text-fm-icon-positive",
|
|
1147
1179
|
withAccessibility: true,
|
|
1148
1180
|
},
|
|
1149
1181
|
parameters: storyParameters,
|
|
1150
1182
|
render: (args) => (
|
|
1151
|
-
<div className="flex h-32 min-h-dvh items-center justify-center rounded-lg bg-
|
|
1183
|
+
<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">
|
|
1152
1184
|
<TickIcon {...args} />
|
|
1153
1185
|
</div>
|
|
1154
1186
|
),
|
|
@@ -1165,30 +1197,30 @@ export const SizeVariations: Story = {
|
|
|
1165
1197
|
},
|
|
1166
1198
|
},
|
|
1167
1199
|
render: () => (
|
|
1168
|
-
<div className="flex h-64 min-h-dvh items-center justify-center gap-8 rounded-lg bg-
|
|
1200
|
+
<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">
|
|
1169
1201
|
<div className="text-center">
|
|
1170
|
-
<TickIcon className="!mx-auto mb-2 h-3 w-3
|
|
1171
|
-
<span className="text-
|
|
1202
|
+
<TickIcon className="text-fm-icon-positive !mx-auto mb-2 h-3 w-3" />
|
|
1203
|
+
<span className="text-fm-tertiary text-xs">12px</span>
|
|
1172
1204
|
</div>
|
|
1173
1205
|
<div className="text-center">
|
|
1174
|
-
<TickIcon className="!mx-auto mb-2 h-4 w-4
|
|
1175
|
-
<span className="text-
|
|
1206
|
+
<TickIcon className="text-fm-icon-positive !mx-auto mb-2 h-4 w-4" />
|
|
1207
|
+
<span className="text-fm-tertiary text-xs">16px</span>
|
|
1176
1208
|
</div>
|
|
1177
1209
|
<div className="text-center">
|
|
1178
|
-
<TickIcon className="!mx-auto mb-2 h-5 w-5
|
|
1179
|
-
<span className="text-
|
|
1210
|
+
<TickIcon className="text-fm-icon-positive !mx-auto mb-2 h-5 w-5" />
|
|
1211
|
+
<span className="text-fm-tertiary text-xs">20px</span>
|
|
1180
1212
|
</div>
|
|
1181
1213
|
<div className="text-center">
|
|
1182
|
-
<TickIcon className="!mx-auto mb-2 h-6 w-6
|
|
1183
|
-
<span className="text-
|
|
1214
|
+
<TickIcon className="text-fm-icon-positive !mx-auto mb-2 h-6 w-6" />
|
|
1215
|
+
<span className="text-fm-tertiary text-xs">24px</span>
|
|
1184
1216
|
</div>
|
|
1185
1217
|
<div className="text-center">
|
|
1186
|
-
<TickIcon className="!mx-auto mb-2 h-8 w-8
|
|
1187
|
-
<span className="text-
|
|
1218
|
+
<TickIcon className="text-fm-icon-positive !mx-auto mb-2 h-8 w-8" />
|
|
1219
|
+
<span className="text-fm-tertiary text-xs">32px</span>
|
|
1188
1220
|
</div>
|
|
1189
1221
|
<div className="text-center">
|
|
1190
|
-
<TickIcon className="!mx-auto mb-2 h-12 w-12
|
|
1191
|
-
<span className="text-
|
|
1222
|
+
<TickIcon className="text-fm-icon-positive !mx-auto mb-2 h-12 w-12" />
|
|
1223
|
+
<span className="text-fm-tertiary text-xs">48px</span>
|
|
1192
1224
|
</div>
|
|
1193
1225
|
</div>
|
|
1194
1226
|
),
|
|
@@ -1205,34 +1237,40 @@ export const ColorVariations: Story = {
|
|
|
1205
1237
|
},
|
|
1206
1238
|
},
|
|
1207
1239
|
render: () => (
|
|
1208
|
-
<div className="grid min-h-dvh grid-cols-2 items-center justify-center gap-6 rounded-lg bg-
|
|
1240
|
+
<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">
|
|
1209
1241
|
<div className="text-center">
|
|
1210
|
-
<div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border
|
|
1211
|
-
<TickIcon className="h-8 w-8
|
|
1242
|
+
<div className="border-fm-icon-positive/30 bg-fm-icon-positive/20 !mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border">
|
|
1243
|
+
<TickIcon className="text-fm-icon-positive h-8 w-8" strokeWidth={2} />
|
|
1244
|
+
</div>
|
|
1245
|
+
<div className="text-fm-icon-active text-sm font-medium">Success</div>
|
|
1246
|
+
<div className="text-fm-icon-positive text-xs">
|
|
1247
|
+
text-fm-icon-positive
|
|
1212
1248
|
</div>
|
|
1213
|
-
<div className="text-sm font-medium text-white">Success</div>
|
|
1214
|
-
<div className="text-xs text-green-400">text-green-400</div>
|
|
1215
1249
|
</div>
|
|
1216
1250
|
<div className="text-center">
|
|
1217
|
-
<div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border
|
|
1218
|
-
<TickIcon className="h-8 w-8
|
|
1251
|
+
<div className="border-fm-icon-positive/30 bg-fm-icon-positive/20 !mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border">
|
|
1252
|
+
<TickIcon className="text-fm-icon-positive h-8 w-8" strokeWidth={2} />
|
|
1253
|
+
</div>
|
|
1254
|
+
<div className="text-fm-icon-active text-sm font-medium">Complete</div>
|
|
1255
|
+
<div className="text-fm-icon-positive text-xs">
|
|
1256
|
+
text-fm-icon-positive
|
|
1219
1257
|
</div>
|
|
1220
|
-
<div className="text-sm font-medium text-white">Complete</div>
|
|
1221
|
-
<div className="text-xs text-emerald-400">text-emerald-400</div>
|
|
1222
1258
|
</div>
|
|
1223
1259
|
<div className="text-center">
|
|
1224
|
-
<div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border
|
|
1225
|
-
<TickIcon className="h-8 w-8
|
|
1260
|
+
<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">
|
|
1261
|
+
<TickIcon className="text-fm-icon-info h-8 w-8" strokeWidth={2} />
|
|
1226
1262
|
</div>
|
|
1227
|
-
<div className="text-sm font-medium
|
|
1228
|
-
<div className="text-
|
|
1263
|
+
<div className="text-fm-icon-active text-sm font-medium">Selected</div>
|
|
1264
|
+
<div className="text-fm-icon-info text-xs">text-fm-icon-info</div>
|
|
1229
1265
|
</div>
|
|
1230
1266
|
<div className="text-center">
|
|
1231
|
-
<div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border
|
|
1232
|
-
<TickIcon className="h-8 w-8
|
|
1267
|
+
<div className="border-fm-secondary-500/30 bg-fm-secondary-500/20 !mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border">
|
|
1268
|
+
<TickIcon className="text-fm-secondary-600 h-8 w-8" strokeWidth={2} />
|
|
1269
|
+
</div>
|
|
1270
|
+
<div className="text-fm-icon-active text-sm font-medium">Verified</div>
|
|
1271
|
+
<div className="text-fm-secondary-600 text-xs">
|
|
1272
|
+
text-fm-secondary-600
|
|
1233
1273
|
</div>
|
|
1234
|
-
<div className="text-sm font-medium text-white">Verified</div>
|
|
1235
|
-
<div className="text-xs text-purple-400">text-purple-400</div>
|
|
1236
1274
|
</div>
|
|
1237
1275
|
</div>
|
|
1238
1276
|
),
|
|
@@ -1249,71 +1287,82 @@ export const UsageExamples: Story = {
|
|
|
1249
1287
|
},
|
|
1250
1288
|
},
|
|
1251
1289
|
render: () => (
|
|
1252
|
-
<div className="min-h-dvh !space-y-8 rounded-lg bg-
|
|
1290
|
+
<div className="from-fm-surface-primary to-fm-surface-secondary min-h-dvh !space-y-8 rounded-lg bg-linear-to-br p-8">
|
|
1253
1291
|
{/* Custom Checkbox */}
|
|
1254
1292
|
<div className="!space-y-2">
|
|
1255
|
-
<h3 className="text-sm font-medium
|
|
1293
|
+
<h3 className="text-fm-icon-active text-sm font-medium">
|
|
1294
|
+
Custom Checkbox
|
|
1295
|
+
</h3>
|
|
1256
1296
|
<div className="!space-y-3">
|
|
1257
1297
|
<label className="flex cursor-pointer items-center gap-3">
|
|
1258
1298
|
<div className="relative">
|
|
1259
1299
|
<input type="checkbox" className="peer sr-only" defaultChecked />
|
|
1260
|
-
<div className="peer-unchecked:bg-transparent peer-unchecked:border-
|
|
1300
|
+
<div className="peer-unchecked:bg-transparent peer-unchecked:border-fm-divider-primary border-fm-icon-positive bg-fm-icon-positive peer-checked:border-fm-icon-positive peer-checked:bg-fm-icon-positive h-5 w-5 rounded border-2 transition-colors" />
|
|
1261
1301
|
<TickIcon
|
|
1262
|
-
className="peer-unchecked:opacity-0 absolute inset-0 h-5 w-5
|
|
1302
|
+
className="peer-unchecked:opacity-0 text-fm-icon-active absolute inset-0 h-5 w-5 opacity-100 transition-opacity"
|
|
1263
1303
|
strokeWidth={2}
|
|
1264
1304
|
/>
|
|
1265
1305
|
</div>
|
|
1266
|
-
<span className="text-
|
|
1306
|
+
<span className="text-fm-icon-active">
|
|
1307
|
+
Accept terms and conditions
|
|
1308
|
+
</span>
|
|
1267
1309
|
</label>
|
|
1268
1310
|
<label className="flex cursor-pointer items-center gap-3">
|
|
1269
1311
|
<div className="relative">
|
|
1270
1312
|
<input type="checkbox" className="peer sr-only" />
|
|
1271
|
-
<div className="h-5 w-5 rounded border-2
|
|
1313
|
+
<div className="border-fm-divider-primary peer-checked:border-fm-icon-positive peer-checked:bg-fm-icon-positive h-5 w-5 rounded border-2 bg-transparent transition-colors" />
|
|
1272
1314
|
<TickIcon
|
|
1273
|
-
className="absolute inset-0 h-5 w-5
|
|
1315
|
+
className="text-fm-icon-active absolute inset-0 h-5 w-5 opacity-0 transition-opacity peer-checked:opacity-100"
|
|
1274
1316
|
strokeWidth={2}
|
|
1275
1317
|
/>
|
|
1276
1318
|
</div>
|
|
1277
|
-
<span className="text-
|
|
1319
|
+
<span className="text-fm-icon-active">Subscribe to newsletter</span>
|
|
1278
1320
|
</label>
|
|
1279
1321
|
</div>
|
|
1280
1322
|
</div>
|
|
1281
1323
|
|
|
1282
1324
|
{/* Todo List */}
|
|
1283
1325
|
<div className="!space-y-2">
|
|
1284
|
-
<h3 className="text-sm font-medium
|
|
1326
|
+
<h3 className="text-fm-icon-active text-sm font-medium">Todo List</h3>
|
|
1285
1327
|
<div className="!space-y-3">
|
|
1286
|
-
<div className="flex items-center gap-3 rounded-lg border
|
|
1287
|
-
<TickIcon
|
|
1288
|
-
|
|
1328
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary flex items-center gap-3 rounded-lg border p-3">
|
|
1329
|
+
<TickIcon
|
|
1330
|
+
className="text-fm-icon-positive h-5 w-5"
|
|
1331
|
+
strokeWidth={2}
|
|
1332
|
+
/>
|
|
1333
|
+
<span className="text-fm-icon-active flex-1 line-through opacity-70">
|
|
1289
1334
|
Set up project repository
|
|
1290
1335
|
</span>
|
|
1291
|
-
<span className="text-
|
|
1336
|
+
<span className="text-fm-icon-positive text-xs">Completed</span>
|
|
1292
1337
|
</div>
|
|
1293
|
-
<div className="flex items-center gap-3 rounded-lg border
|
|
1294
|
-
<div className="h-5 w-5 rounded-full border-2
|
|
1295
|
-
<span className="flex-1
|
|
1296
|
-
|
|
1338
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary flex items-center gap-3 rounded-lg border p-3">
|
|
1339
|
+
<div className="border-fm-divider-primary h-5 w-5 rounded-full border-2"></div>
|
|
1340
|
+
<span className="text-fm-icon-active flex-1">
|
|
1341
|
+
Implement authentication
|
|
1342
|
+
</span>
|
|
1343
|
+
<span className="text-fm-placeholder text-xs">In Progress</span>
|
|
1297
1344
|
</div>
|
|
1298
1345
|
</div>
|
|
1299
1346
|
</div>
|
|
1300
1347
|
|
|
1301
1348
|
{/* Form Validation */}
|
|
1302
1349
|
<div className="!space-y-2">
|
|
1303
|
-
<h3 className="text-sm font-medium
|
|
1350
|
+
<h3 className="text-fm-icon-active text-sm font-medium">
|
|
1351
|
+
Form Validation
|
|
1352
|
+
</h3>
|
|
1304
1353
|
<div className="relative">
|
|
1305
1354
|
<input
|
|
1306
1355
|
type="password"
|
|
1307
|
-
className="
|
|
1356
|
+
className="border-fm-icon-positive/50 bg-fm-surface-secondary text-fm-icon-active focus:border-fm-icon-positive w-full rounded-lg border px-3 py-2 pr-10 placeholder-white/50 focus:ring-2 focus:ring-green-500/20"
|
|
1308
1357
|
placeholder="Enter your password"
|
|
1309
1358
|
defaultValue="securepassword123"
|
|
1310
1359
|
/>
|
|
1311
1360
|
<TickIcon
|
|
1312
|
-
className="absolute top-1/2 right-3 h-4 w-4 -translate-y-1/2
|
|
1361
|
+
className="text-fm-icon-positive absolute top-1/2 right-3 h-4 w-4 -translate-y-1/2"
|
|
1313
1362
|
strokeWidth={2}
|
|
1314
1363
|
/>
|
|
1315
1364
|
</div>
|
|
1316
|
-
<div className="flex items-center gap-2 text-sm
|
|
1365
|
+
<div className="text-fm-icon-positive flex items-center gap-2 text-sm">
|
|
1317
1366
|
<TickIcon className="h-4 w-4" strokeWidth={2} />
|
|
1318
1367
|
<span>Password meets all requirements</span>
|
|
1319
1368
|
</div>
|
|
@@ -1335,12 +1384,12 @@ export const Playground: Story = {
|
|
|
1335
1384
|
args: {
|
|
1336
1385
|
width: 32,
|
|
1337
1386
|
height: 32,
|
|
1338
|
-
className: "text-
|
|
1387
|
+
className: "text-fm-icon-positive",
|
|
1339
1388
|
strokeWidth: 2,
|
|
1340
1389
|
},
|
|
1341
1390
|
render: (args) => (
|
|
1342
|
-
<div className="flex h-64 min-h-dvh items-center justify-center rounded-lg bg-
|
|
1343
|
-
<div className="rounded-lg border
|
|
1391
|
+
<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">
|
|
1392
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-8">
|
|
1344
1393
|
<TickIcon {...args} />
|
|
1345
1394
|
</div>
|
|
1346
1395
|
</div>
|