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 CrossIcon> = {
|
|
|
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 CrossIcon> = {
|
|
|
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-secondary) ;
|
|
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-surface-tertiary/10 to-fm-surface-tertiary/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
|
-
<CrossIcon className="h-12 w-12
|
|
89
|
+
<div className="border-fm-divider-primary from-fm-surface-tertiary/20 to-fm-surface-tertiary/20 !mx-auto flex h-24 w-24 items-center justify-center rounded-2xl border bg-linear-to-br">
|
|
90
|
+
<CrossIcon className="text-fm-placeholder h-12 w-12" />
|
|
91
91
|
</div>
|
|
92
92
|
<h1 className="!text-fm-primary text-5xl font-bold">
|
|
93
93
|
CrossIcon
|
|
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 clean and minimal cross icon for close buttons, modal
|
|
97
97
|
dismissals, and general cancellation actions. Features a
|
|
98
98
|
simple stroke design that works perfectly at any size. Built
|
|
@@ -103,28 +103,28 @@ const meta: Meta<typeof CrossIcon> = {
|
|
|
103
103
|
{/* Stats */}
|
|
104
104
|
<div className="flex items-center justify-center gap-8 pt-8">
|
|
105
105
|
<div className="text-center">
|
|
106
|
-
<div className="text-3xl font-bold
|
|
106
|
+
<div className="text-fm-secondary text-3xl font-bold">
|
|
107
107
|
Accessible
|
|
108
108
|
</div>
|
|
109
|
-
<div className="text-
|
|
109
|
+
<div className="text-fm-tertiary text-sm">
|
|
110
110
|
Screen reader friendly
|
|
111
111
|
</div>
|
|
112
112
|
</div>
|
|
113
|
-
<div className="h-8 w-px
|
|
113
|
+
<div className="bg-fm-divider-primary h-8 w-px" />
|
|
114
114
|
<div className="text-center">
|
|
115
|
-
<div className="text-3xl font-bold
|
|
115
|
+
<div className="text-fm-secondary text-3xl font-bold">
|
|
116
116
|
Minimal
|
|
117
117
|
</div>
|
|
118
|
-
<div className="text-
|
|
118
|
+
<div className="text-fm-tertiary text-sm">
|
|
119
119
|
Clean stroke design
|
|
120
120
|
</div>
|
|
121
121
|
</div>
|
|
122
|
-
<div className="h-8 w-px
|
|
122
|
+
<div className="bg-fm-divider-primary h-8 w-px" />
|
|
123
123
|
<div className="text-center">
|
|
124
|
-
<div className="text-3xl font-bold
|
|
124
|
+
<div className="text-fm-secondary text-3xl font-bold">
|
|
125
125
|
Versatile
|
|
126
126
|
</div>
|
|
127
|
-
<div className="text-
|
|
127
|
+
<div className="text-fm-tertiary text-sm">
|
|
128
128
|
Perfect at any size
|
|
129
129
|
</div>
|
|
130
130
|
</div>
|
|
@@ -137,16 +137,16 @@ const meta: Meta<typeof CrossIcon> = {
|
|
|
137
137
|
<div className="!mx-auto max-w-7xl !space-y-16 px-6 py-12">
|
|
138
138
|
{/* Quick Usage */}
|
|
139
139
|
<div className="!space-y-8">
|
|
140
|
-
<h2 className="text-center text-3xl font-bold
|
|
140
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
141
141
|
Quick Start
|
|
142
142
|
</h2>
|
|
143
143
|
<div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
|
|
144
144
|
<div className="!space-y-4">
|
|
145
|
-
<h3 className="text-xl font-semibold
|
|
145
|
+
<h3 className="!text-fm-secondary text-xl font-semibold">
|
|
146
146
|
Basic Usage
|
|
147
147
|
</h3>
|
|
148
|
-
<div className="rounded-lg
|
|
149
|
-
<pre className="overflow-x-auto text-sm
|
|
148
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
149
|
+
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
150
150
|
{`import { CrossIcon } from "@icons/cross-icon"
|
|
151
151
|
|
|
152
152
|
function CloseButton() {
|
|
@@ -161,12 +161,12 @@ function CloseButton() {
|
|
|
161
161
|
</div>
|
|
162
162
|
|
|
163
163
|
<div className="!space-y-4">
|
|
164
|
-
<h3 className="text-xl font-semibold
|
|
164
|
+
<h3 className="!text-fm-secondary text-xl font-semibold">
|
|
165
165
|
Live Preview
|
|
166
166
|
</h3>
|
|
167
|
-
<div className="flex h-32 items-center justify-center rounded-lg border
|
|
168
|
-
<button className="
|
|
169
|
-
<CrossIcon className="h-6 w-6
|
|
167
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary flex h-32 items-center justify-center rounded-lg border">
|
|
168
|
+
<button className="border-fm-divider-primary bg-fm-surface-secondary hover:bg-fm-surface-secondary rounded-lg border p-3 transition-colors">
|
|
169
|
+
<CrossIcon className="text-fm-secondary h-6 w-6" />
|
|
170
170
|
</button>
|
|
171
171
|
</div>
|
|
172
172
|
</div>
|
|
@@ -175,108 +175,116 @@ function CloseButton() {
|
|
|
175
175
|
|
|
176
176
|
{/* Props Documentation */}
|
|
177
177
|
<div className="!space-y-8">
|
|
178
|
-
<h2 className="text-center text-3xl font-bold
|
|
178
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
179
179
|
Props & Configuration
|
|
180
180
|
</h2>
|
|
181
181
|
|
|
182
|
-
<div className="overflow-hidden rounded-lg border
|
|
183
|
-
<div className="bg-
|
|
184
|
-
<h3 className="text-xl font-semibold
|
|
182
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary overflow-hidden rounded-lg border">
|
|
183
|
+
<div className="bg-fm-surface-secondary p-4">
|
|
184
|
+
<h3 className="text-fm-icon-active! text-xl font-semibold">
|
|
185
|
+
Props
|
|
186
|
+
</h3>
|
|
185
187
|
</div>
|
|
186
188
|
<table className="!my-0 w-full">
|
|
187
|
-
<thead className="bg-
|
|
188
|
-
<tr className="border-
|
|
189
|
-
<th className="px-6 py-4 text-left text-sm font-semibold
|
|
189
|
+
<thead className="bg-fm-surface-secondary">
|
|
190
|
+
<tr className="border-fm-divider-secondary border-b">
|
|
191
|
+
<th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
|
|
190
192
|
Prop
|
|
191
193
|
</th>
|
|
192
|
-
<th className="px-6 py-4 text-left text-sm font-semibold
|
|
194
|
+
<th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
|
|
193
195
|
Type
|
|
194
196
|
</th>
|
|
195
|
-
<th className="px-6 py-4 text-left text-sm font-semibold
|
|
197
|
+
<th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
|
|
196
198
|
Default
|
|
197
199
|
</th>
|
|
198
|
-
<th className="px-6 py-4 text-left text-sm font-semibold
|
|
200
|
+
<th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
|
|
199
201
|
Description
|
|
200
202
|
</th>
|
|
201
203
|
</tr>
|
|
202
204
|
</thead>
|
|
203
205
|
<tbody>
|
|
204
206
|
{" "}
|
|
205
|
-
<tr className="
|
|
206
|
-
<td className="px-6 py-4 font-mono text-sm
|
|
207
|
+
<tr className="bg-fm-surface-secondary!">
|
|
208
|
+
<td className="text-fm-icon-info! px-6 py-4 font-mono text-sm">
|
|
207
209
|
withAccessibility
|
|
208
210
|
</td>
|
|
209
|
-
<td className="px-6 py-4 text-sm
|
|
211
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
210
212
|
boolean
|
|
211
213
|
</td>
|
|
212
|
-
<td className="px-6 py-4 text-sm
|
|
214
|
+
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
213
215
|
true
|
|
214
216
|
</td>
|
|
215
|
-
<td className="px-6 py-4 text-sm
|
|
217
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
216
218
|
Whether to wrap the icon with accessibility feature
|
|
217
219
|
</td>
|
|
218
220
|
</tr>
|
|
219
|
-
<tr className="border-
|
|
220
|
-
<td className="px-6 py-4 font-mono text-sm
|
|
221
|
+
<tr className="border-fm-divider-tertiary bg-fm-surface-secondary! border-b">
|
|
222
|
+
<td className="!text-fm-secondary px-6 py-4 font-mono text-sm">
|
|
221
223
|
height
|
|
222
224
|
</td>
|
|
223
|
-
<td className="px-6 py-4 text-sm
|
|
225
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
224
226
|
number | string
|
|
225
227
|
</td>
|
|
226
|
-
<td className="px-6 py-4 text-sm
|
|
227
|
-
|
|
228
|
+
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
229
|
+
20
|
|
230
|
+
</td>
|
|
231
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
228
232
|
Height of the icon in pixels
|
|
229
233
|
</td>
|
|
230
234
|
</tr>
|
|
231
|
-
<tr className="border-
|
|
232
|
-
<td className="px-6 py-4 font-mono text-sm
|
|
235
|
+
<tr className="border-fm-divider-tertiary border-b">
|
|
236
|
+
<td className="!text-fm-secondary px-6 py-4 font-mono text-sm">
|
|
233
237
|
stroke
|
|
234
238
|
</td>
|
|
235
|
-
<td className="px-6 py-4 text-sm
|
|
239
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
236
240
|
string
|
|
237
241
|
</td>
|
|
238
|
-
<td className="px-6 py-4 text-sm
|
|
242
|
+
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
239
243
|
currentColor
|
|
240
244
|
</td>
|
|
241
|
-
<td className="px-6 py-4 text-sm
|
|
245
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
242
246
|
Stroke color of the icon
|
|
243
247
|
</td>
|
|
244
248
|
</tr>
|
|
245
|
-
<tr className="border-
|
|
246
|
-
<td className="px-6 py-4 font-mono text-sm
|
|
249
|
+
<tr className="border-fm-divider-tertiary bg-fm-surface-secondary! border-b">
|
|
250
|
+
<td className="!text-fm-secondary px-6 py-4 font-mono text-sm">
|
|
247
251
|
strokeWidth
|
|
248
252
|
</td>
|
|
249
|
-
<td className="px-6 py-4 text-sm
|
|
253
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
250
254
|
string | number
|
|
251
255
|
</td>
|
|
252
|
-
<td className="px-6 py-4 text-sm
|
|
256
|
+
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
253
257
|
1.5
|
|
254
258
|
</td>
|
|
255
|
-
<td className="px-6 py-4 text-sm
|
|
259
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
256
260
|
Width of the stroke
|
|
257
261
|
</td>
|
|
258
262
|
</tr>
|
|
259
|
-
<tr className="border-
|
|
260
|
-
<td className="px-6 py-4 font-mono text-sm
|
|
263
|
+
<tr className="border-fm-divider-tertiary border-b">
|
|
264
|
+
<td className="!text-fm-secondary px-6 py-4 font-mono text-sm">
|
|
261
265
|
className
|
|
262
266
|
</td>
|
|
263
|
-
<td className="px-6 py-4 text-sm
|
|
267
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
264
268
|
string
|
|
265
269
|
</td>
|
|
266
|
-
<td className="px-6 py-4 text-sm
|
|
267
|
-
|
|
270
|
+
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
271
|
+
-
|
|
272
|
+
</td>
|
|
273
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
268
274
|
CSS classes for styling (use for overrides)
|
|
269
275
|
</td>
|
|
270
276
|
</tr>
|
|
271
|
-
<tr className="
|
|
272
|
-
<td className="px-6 py-4 font-mono text-sm
|
|
277
|
+
<tr className="bg-fm-surface-secondary!">
|
|
278
|
+
<td className="!text-fm-secondary px-6 py-4 font-mono text-sm">
|
|
273
279
|
...svgProps
|
|
274
280
|
</td>
|
|
275
|
-
<td className="px-6 py-4 text-sm
|
|
281
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
276
282
|
SVGProps
|
|
277
283
|
</td>
|
|
278
|
-
<td className="px-6 py-4 text-sm
|
|
279
|
-
|
|
284
|
+
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
285
|
+
-
|
|
286
|
+
</td>
|
|
287
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
280
288
|
All standard SVG element props
|
|
281
289
|
</td>
|
|
282
290
|
</tr>
|
|
@@ -287,50 +295,62 @@ function CloseButton() {
|
|
|
287
295
|
|
|
288
296
|
{/* Size Variations */}
|
|
289
297
|
<div className="!space-y-8">
|
|
290
|
-
<h2 className="text-center text-3xl font-bold
|
|
298
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
291
299
|
Size Variations
|
|
292
300
|
</h2>
|
|
293
|
-
<div className="rounded-lg border
|
|
301
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-8">
|
|
294
302
|
<div className="!space-y-6">
|
|
295
303
|
<div className="grid grid-cols-1 gap-8 md:grid-cols-2">
|
|
296
304
|
<div className="!space-y-4">
|
|
297
|
-
<h3 className="text-lg font-semibold
|
|
305
|
+
<h3 className="!text-fm-secondary text-lg font-semibold">
|
|
298
306
|
Standard Sizes
|
|
299
307
|
</h3>
|
|
300
|
-
<div className="flex items-end gap-6 rounded-lg
|
|
308
|
+
<div className="bg-fm-surface-secondary flex items-end gap-6 rounded-lg p-6">
|
|
301
309
|
<div className="text-center">
|
|
302
|
-
<CrossIcon className="!mx-auto mb-2 h-3 w-3
|
|
303
|
-
<span className="text-
|
|
310
|
+
<CrossIcon className="text-fm-placeholder !mx-auto mb-2 h-3 w-3" />
|
|
311
|
+
<span className="text-fm-tertiary text-xs">
|
|
312
|
+
12px
|
|
313
|
+
</span>
|
|
304
314
|
</div>
|
|
305
315
|
<div className="text-center">
|
|
306
|
-
<CrossIcon className="!mx-auto mb-2 h-4 w-4
|
|
307
|
-
<span className="text-
|
|
316
|
+
<CrossIcon className="text-fm-placeholder !mx-auto mb-2 h-4 w-4" />
|
|
317
|
+
<span className="text-fm-tertiary text-xs">
|
|
318
|
+
16px
|
|
319
|
+
</span>
|
|
308
320
|
</div>
|
|
309
321
|
<div className="text-center">
|
|
310
|
-
<CrossIcon className="!mx-auto mb-2 h-5 w-5
|
|
311
|
-
<span className="text-
|
|
322
|
+
<CrossIcon className="text-fm-placeholder !mx-auto mb-2 h-5 w-5" />
|
|
323
|
+
<span className="text-fm-tertiary text-xs">
|
|
324
|
+
20px
|
|
325
|
+
</span>
|
|
312
326
|
</div>
|
|
313
327
|
<div className="text-center">
|
|
314
|
-
<CrossIcon className="!mx-auto mb-2 h-6 w-6
|
|
315
|
-
<span className="text-
|
|
328
|
+
<CrossIcon className="text-fm-placeholder !mx-auto mb-2 h-6 w-6" />
|
|
329
|
+
<span className="text-fm-tertiary text-xs">
|
|
330
|
+
24px
|
|
331
|
+
</span>
|
|
316
332
|
</div>
|
|
317
333
|
<div className="text-center">
|
|
318
|
-
<CrossIcon className="!mx-auto mb-2 h-8 w-8
|
|
319
|
-
<span className="text-
|
|
334
|
+
<CrossIcon className="text-fm-placeholder !mx-auto mb-2 h-8 w-8" />
|
|
335
|
+
<span className="text-fm-tertiary text-xs">
|
|
336
|
+
32px
|
|
337
|
+
</span>
|
|
320
338
|
</div>
|
|
321
339
|
<div className="text-center">
|
|
322
|
-
<CrossIcon className="!mx-auto mb-2 h-12 w-12
|
|
323
|
-
<span className="text-
|
|
340
|
+
<CrossIcon className="text-fm-placeholder !mx-auto mb-2 h-12 w-12" />
|
|
341
|
+
<span className="text-fm-tertiary text-xs">
|
|
342
|
+
48px
|
|
343
|
+
</span>
|
|
324
344
|
</div>
|
|
325
345
|
</div>
|
|
326
346
|
</div>
|
|
327
347
|
|
|
328
348
|
<div className="!space-y-4">
|
|
329
|
-
<h3 className="text-lg font-semibold
|
|
349
|
+
<h3 className="!text-fm-secondary text-lg font-semibold">
|
|
330
350
|
Code Example
|
|
331
351
|
</h3>
|
|
332
|
-
<div className="rounded-lg
|
|
333
|
-
<pre className="overflow-x-auto text-sm
|
|
352
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
353
|
+
<pre className="text-fm-icon-info! overflow-x-auto text-sm">
|
|
334
354
|
{`// Small (16px)
|
|
335
355
|
<CrossIcon className="h-4 w-4 " />
|
|
336
356
|
|
|
@@ -352,56 +372,56 @@ function CloseButton() {
|
|
|
352
372
|
|
|
353
373
|
{/* Color Variations */}
|
|
354
374
|
<div className="!space-y-8">
|
|
355
|
-
<h2 className="text-center text-3xl font-bold
|
|
375
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
356
376
|
Color Variations
|
|
357
377
|
</h2>
|
|
358
378
|
<div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
|
|
359
379
|
<div className="!space-y-4">
|
|
360
|
-
<h3 className="text-lg font-semibold
|
|
380
|
+
<h3 className="!text-fm-secondary text-lg font-semibold">
|
|
361
381
|
Semantic Colors
|
|
362
382
|
</h3>
|
|
363
|
-
<div className="!space-y-4 rounded-lg border
|
|
383
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
|
|
364
384
|
<div className="flex items-center gap-4">
|
|
365
|
-
<CrossIcon className="h-6 w-6
|
|
385
|
+
<CrossIcon className="text-fm-placeholder h-6 w-6" />
|
|
366
386
|
<div>
|
|
367
|
-
<div className="text-sm font-medium
|
|
387
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
368
388
|
Default / Neutral
|
|
369
389
|
</div>
|
|
370
|
-
<div className="text-
|
|
371
|
-
text-
|
|
390
|
+
<div className="text-fm-tertiary text-xs">
|
|
391
|
+
text-fm-placeholder
|
|
372
392
|
</div>
|
|
373
393
|
</div>
|
|
374
394
|
</div>
|
|
375
395
|
<div className="flex items-center gap-4">
|
|
376
|
-
<CrossIcon className="h-6 w-6
|
|
396
|
+
<CrossIcon className="text-fm-icon-negative h-6 w-6" />
|
|
377
397
|
<div>
|
|
378
|
-
<div className="text-sm font-medium
|
|
398
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
379
399
|
Close / Error
|
|
380
400
|
</div>
|
|
381
|
-
<div className="text-
|
|
382
|
-
text-
|
|
401
|
+
<div className="text-fm-tertiary text-xs">
|
|
402
|
+
text-fm-icon-negative
|
|
383
403
|
</div>
|
|
384
404
|
</div>
|
|
385
405
|
</div>
|
|
386
406
|
<div className="flex items-center gap-4">
|
|
387
|
-
<CrossIcon className="h-6 w-6
|
|
407
|
+
<CrossIcon className="text-fm-tertiary h-6 w-6" />
|
|
388
408
|
<div>
|
|
389
|
-
<div className="text-sm font-medium
|
|
409
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
390
410
|
Muted
|
|
391
411
|
</div>
|
|
392
|
-
<div className="text-
|
|
393
|
-
text-
|
|
412
|
+
<div className="text-fm-tertiary text-xs">
|
|
413
|
+
text-fm-tertiary
|
|
394
414
|
</div>
|
|
395
415
|
</div>
|
|
396
416
|
</div>
|
|
397
417
|
<div className="flex items-center gap-4">
|
|
398
|
-
<CrossIcon className="h-6 w-6
|
|
418
|
+
<CrossIcon className="text-fm-secondary h-6 w-6" />
|
|
399
419
|
<div>
|
|
400
|
-
<div className="text-sm font-medium
|
|
420
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
401
421
|
Light
|
|
402
422
|
</div>
|
|
403
|
-
<div className="text-
|
|
404
|
-
text-
|
|
423
|
+
<div className="text-fm-tertiary text-xs">
|
|
424
|
+
text-fm-secondary
|
|
405
425
|
</div>
|
|
406
426
|
</div>
|
|
407
427
|
</div>
|
|
@@ -409,11 +429,11 @@ function CloseButton() {
|
|
|
409
429
|
</div>
|
|
410
430
|
|
|
411
431
|
<div className="!space-y-4">
|
|
412
|
-
<h3 className="text-lg font-semibold
|
|
432
|
+
<h3 className="!text-fm-secondary text-lg font-semibold">
|
|
413
433
|
Custom Colors
|
|
414
434
|
</h3>
|
|
415
|
-
<div className="rounded-lg
|
|
416
|
-
<pre className="overflow-x-auto text-sm
|
|
435
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
436
|
+
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
417
437
|
{`// Using Tailwind classes with
|
|
418
438
|
<CrossIcon className="h-6 w-6 text-gray-400 " />
|
|
419
439
|
<CrossIcon className="h-6 w-6 text-red-500 " />
|
|
@@ -438,40 +458,40 @@ function CloseButton() {
|
|
|
438
458
|
|
|
439
459
|
{/* Usage Examples */}
|
|
440
460
|
<div className="!space-y-8">
|
|
441
|
-
<h2 className="text-center text-3xl font-bold
|
|
461
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
442
462
|
Usage Examples
|
|
443
463
|
</h2>
|
|
444
464
|
|
|
445
465
|
<div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
|
|
446
466
|
{/* Modal Close Button */}
|
|
447
467
|
<div className="!space-y-4">
|
|
448
|
-
<h3 className="text-lg font-semibold
|
|
468
|
+
<h3 className="!text-fm-secondary text-lg font-semibold">
|
|
449
469
|
Modal Close Button
|
|
450
470
|
</h3>
|
|
451
471
|
<div className="!space-y-4">
|
|
452
|
-
<div className="rounded-lg border
|
|
472
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
|
|
453
473
|
<div className="mb-4 flex items-center justify-between">
|
|
454
|
-
<h3 className="text-lg font-semibold
|
|
474
|
+
<h3 className="text-fm-icon-active! text-lg font-semibold">
|
|
455
475
|
Settings
|
|
456
476
|
</h3>
|
|
457
|
-
<button className="rounded-lg p-2 transition-colors
|
|
458
|
-
<CrossIcon className="h-5 w-5
|
|
477
|
+
<button className="hover:bg-fm-surface-secondary rounded-lg p-2 transition-colors">
|
|
478
|
+
<CrossIcon className="text-fm-placeholder h-5 w-5" />
|
|
459
479
|
</button>
|
|
460
480
|
</div>
|
|
461
|
-
<p className="mb-4
|
|
481
|
+
<p className="text-fm-secondary! mb-4">
|
|
462
482
|
Configure your application preferences and settings.
|
|
463
483
|
</p>
|
|
464
484
|
<div className="flex gap-3">
|
|
465
|
-
<button className="
|
|
485
|
+
<button className="border-fm-icon-info/30 bg-fm-icon-info/20 text-fm-icon-info rounded-lg border px-4 py-2">
|
|
466
486
|
Save Changes
|
|
467
487
|
</button>
|
|
468
|
-
<button className="
|
|
488
|
+
<button className="border-fm-divider-primary bg-fm-surface-secondary text-fm-icon-active rounded-lg border px-4 py-2">
|
|
469
489
|
Cancel
|
|
470
490
|
</button>
|
|
471
491
|
</div>
|
|
472
492
|
</div>
|
|
473
|
-
<div className="rounded-lg
|
|
474
|
-
<pre className="overflow-x-auto text-sm
|
|
493
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
494
|
+
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
475
495
|
{`// Modal header with close button
|
|
476
496
|
<div className="flex items-center justify-between mb-4">
|
|
477
497
|
<h3 className="text-lg font-semibold text-white">Settings</h3>
|
|
@@ -489,40 +509,42 @@ function CloseButton() {
|
|
|
489
509
|
|
|
490
510
|
{/* Navigation Menu Close */}
|
|
491
511
|
<div className="!space-y-4">
|
|
492
|
-
<h3 className="text-lg font-semibold
|
|
512
|
+
<h3 className="!text-fm-secondary text-lg font-semibold">
|
|
493
513
|
Navigation Menu Close
|
|
494
514
|
</h3>
|
|
495
515
|
<div className="!space-y-4">
|
|
496
|
-
<div className="rounded-lg border
|
|
497
|
-
<div className="mb-4 flex items-center justify-between border-b
|
|
498
|
-
<h4 className="font-medium
|
|
499
|
-
|
|
500
|
-
|
|
516
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-4">
|
|
517
|
+
<div className="border-fm-divider-secondary mb-4 flex items-center justify-between border-b pb-4">
|
|
518
|
+
<h4 className="text-fm-icon-active! font-medium">
|
|
519
|
+
Menu
|
|
520
|
+
</h4>
|
|
521
|
+
<button className="hover:bg-fm-surface-secondary rounded p-1.5">
|
|
522
|
+
<CrossIcon className="text-fm-secondary h-4 w-4" />
|
|
501
523
|
</button>
|
|
502
524
|
</div>
|
|
503
525
|
<nav className="space-y-2">
|
|
504
526
|
<a
|
|
505
527
|
href="#"
|
|
506
|
-
className="block rounded px-3 py-2
|
|
528
|
+
className="text-fm-icon-active hover:bg-fm-surface-secondary block rounded px-3 py-2"
|
|
507
529
|
>
|
|
508
530
|
Dashboard
|
|
509
531
|
</a>
|
|
510
532
|
<a
|
|
511
533
|
href="#"
|
|
512
|
-
className="block rounded px-3 py-2
|
|
534
|
+
className="text-fm-icon-active hover:bg-fm-surface-secondary block rounded px-3 py-2"
|
|
513
535
|
>
|
|
514
536
|
Profile
|
|
515
537
|
</a>
|
|
516
538
|
<a
|
|
517
539
|
href="#"
|
|
518
|
-
className="block rounded px-3 py-2
|
|
540
|
+
className="text-fm-icon-active hover:bg-fm-surface-secondary block rounded px-3 py-2"
|
|
519
541
|
>
|
|
520
542
|
Settings
|
|
521
543
|
</a>
|
|
522
544
|
</nav>
|
|
523
545
|
</div>
|
|
524
|
-
<div className="rounded-lg
|
|
525
|
-
<pre className="overflow-x-auto text-sm
|
|
546
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
547
|
+
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
526
548
|
{`// Mobile menu with close button
|
|
527
549
|
<div className="flex items-center justify-between border-b pb-4 mb-4">
|
|
528
550
|
<h4 className="font-medium text-white">Menu</h4>
|
|
@@ -540,28 +562,28 @@ function CloseButton() {
|
|
|
540
562
|
|
|
541
563
|
{/* Search Clear Button */}
|
|
542
564
|
<div className="!space-y-4">
|
|
543
|
-
<h3 className="text-lg font-semibold
|
|
565
|
+
<h3 className="!text-fm-secondary text-lg font-semibold">
|
|
544
566
|
Search Clear Button
|
|
545
567
|
</h3>
|
|
546
568
|
<div className="!space-y-4">
|
|
547
569
|
<div className="!space-y-2">
|
|
548
|
-
<label className="text-sm font-medium
|
|
570
|
+
<label className="text-fm-icon-active! text-sm font-medium">
|
|
549
571
|
Search
|
|
550
572
|
</label>
|
|
551
573
|
<div className="relative">
|
|
552
574
|
<input
|
|
553
575
|
type="text"
|
|
554
|
-
className="w-full rounded-lg border
|
|
576
|
+
className="border-fm-divider-primary bg-fm-surface-secondary text-fm-icon-active! focus:border-fm-divider-primary w-full rounded-lg border px-3 py-2 pr-10 placeholder-white/50 focus:ring-2 focus:ring-gray-400/20"
|
|
555
577
|
placeholder="Search..."
|
|
556
578
|
defaultValue="Sample query"
|
|
557
579
|
/>
|
|
558
|
-
<button className="absolute top-1/2 right-3 -translate-y-1/2 rounded p-0.5
|
|
559
|
-
<CrossIcon className="h-4 w-4
|
|
580
|
+
<button className="hover:bg-fm-surface-secondary absolute top-1/2 right-3 -translate-y-1/2 rounded p-0.5">
|
|
581
|
+
<CrossIcon className="text-fm-placeholder h-4 w-4" />
|
|
560
582
|
</button>
|
|
561
583
|
</div>
|
|
562
584
|
</div>
|
|
563
|
-
<div className="rounded-lg
|
|
564
|
-
<pre className="overflow-x-auto text-sm
|
|
585
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
586
|
+
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
565
587
|
{`// Search input with clear button
|
|
566
588
|
<div className="relative">
|
|
567
589
|
<input
|
|
@@ -585,26 +607,26 @@ function CloseButton() {
|
|
|
585
607
|
|
|
586
608
|
{/* Tab Close Button */}
|
|
587
609
|
<div className="!space-y-4">
|
|
588
|
-
<h3 className="text-lg font-semibold
|
|
610
|
+
<h3 className="!text-fm-secondary text-lg font-semibold">
|
|
589
611
|
Tab Close Button
|
|
590
612
|
</h3>
|
|
591
613
|
<div className="!space-y-4">
|
|
592
|
-
<div className="flex border-b
|
|
593
|
-
<div className="flex items-center gap-2 border-b-2
|
|
614
|
+
<div className="border-fm-divider-secondary flex border-b">
|
|
615
|
+
<div className="border-fm-icon-info text-fm-icon-info flex items-center gap-2 border-b-2 px-4 py-2">
|
|
594
616
|
<span>Component.tsx</span>
|
|
595
|
-
<button className="rounded p-0.5
|
|
596
|
-
<CrossIcon className="h-3 w-3
|
|
617
|
+
<button className="hover:bg-fm-icon-info/20 rounded p-0.5">
|
|
618
|
+
<CrossIcon className="text-fm-icon-info h-3 w-3" />
|
|
597
619
|
</button>
|
|
598
620
|
</div>
|
|
599
|
-
<div className="flex items-center gap-2 px-4 py-2
|
|
621
|
+
<div className="text-fm-tertiary hover:text-fm-icon-active flex items-center gap-2 px-4 py-2">
|
|
600
622
|
<span>utils.ts</span>
|
|
601
|
-
<button className="rounded p-0.5 opacity-0 group-hover:opacity-100
|
|
602
|
-
<CrossIcon className="h-3 w-3
|
|
623
|
+
<button className="hover:bg-fm-surface-secondary rounded p-0.5 opacity-0 group-hover:opacity-100">
|
|
624
|
+
<CrossIcon className="text-fm-placeholder h-3 w-3" />
|
|
603
625
|
</button>
|
|
604
626
|
</div>
|
|
605
627
|
</div>
|
|
606
|
-
<div className="rounded-lg
|
|
607
|
-
<pre className="overflow-x-auto text-sm
|
|
628
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
629
|
+
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
608
630
|
{`// Closable tab component
|
|
609
631
|
<div className="flex items-center gap-2 border-b-2 border-blue-400 px-4 py-2">
|
|
610
632
|
<span>Component.tsx</span>
|
|
@@ -624,64 +646,64 @@ function CloseButton() {
|
|
|
624
646
|
|
|
625
647
|
{/* Accessibility */}
|
|
626
648
|
<div className="!space-y-8">
|
|
627
|
-
<h2 className="text-center text-3xl font-bold
|
|
649
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
628
650
|
Accessibility Features
|
|
629
651
|
</h2>
|
|
630
652
|
<div className="grid grid-cols-1 gap-8 md:grid-cols-2">
|
|
631
|
-
<div className="!space-y-4 rounded-lg border
|
|
632
|
-
<h3 className="text-lg font-semibold
|
|
653
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
|
|
654
|
+
<h3 className="text-fm-icon-positive! text-lg font-semibold">
|
|
633
655
|
✅ Built-in Features
|
|
634
656
|
</h3>
|
|
635
|
-
<ul className="!space-y-2 text-sm
|
|
636
|
-
<li className="
|
|
657
|
+
<ul className="text-fm-secondary! !space-y-2 text-sm">
|
|
658
|
+
<li className="text-fm-secondary!">
|
|
637
659
|
Uses Radix UI AccessibleIcon wrapper
|
|
638
660
|
</li>
|
|
639
|
-
<li className="
|
|
661
|
+
<li className="text-fm-secondary!">
|
|
640
662
|
Provides screen reader label "Cross icon"
|
|
641
663
|
</li>
|
|
642
|
-
<li className="
|
|
664
|
+
<li className="text-fm-secondary!">
|
|
643
665
|
Supports keyboard navigation when interactive
|
|
644
666
|
</li>
|
|
645
|
-
<li className="
|
|
667
|
+
<li className="text-fm-secondary!">
|
|
646
668
|
Maintains proper color contrast ratios
|
|
647
669
|
</li>
|
|
648
|
-
<li className="
|
|
670
|
+
<li className="text-fm-secondary!">
|
|
649
671
|
Scales with user's font size preferences
|
|
650
672
|
</li>
|
|
651
673
|
</ul>
|
|
652
674
|
</div>
|
|
653
675
|
|
|
654
|
-
<div className="!space-y-4 rounded-lg border
|
|
655
|
-
<h3 className="text-lg font-semibold
|
|
676
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
|
|
677
|
+
<h3 className="!text-fm-secondary text-lg font-semibold">
|
|
656
678
|
💡 Best Practices
|
|
657
679
|
</h3>
|
|
658
|
-
<ul className="!space-y-2 text-sm
|
|
659
|
-
<li className="
|
|
680
|
+
<ul className="text-fm-secondary !space-y-2 text-sm">
|
|
681
|
+
<li className="text-fm-secondary!">
|
|
660
682
|
Always provide proper button labels for close actions
|
|
661
683
|
</li>
|
|
662
|
-
<li className="
|
|
684
|
+
<li className="text-fm-secondary!">
|
|
663
685
|
Use consistent placement for close buttons
|
|
664
686
|
</li>
|
|
665
|
-
<li className="
|
|
687
|
+
<li className="text-fm-secondary!">
|
|
666
688
|
Ensure sufficient touch target size (44px minimum)
|
|
667
689
|
</li>
|
|
668
|
-
<li className="
|
|
690
|
+
<li className="text-fm-secondary!">
|
|
669
691
|
Provide visible focus states for keyboard users
|
|
670
692
|
</li>
|
|
671
|
-
<li className="
|
|
693
|
+
<li className="text-fm-secondary!">
|
|
672
694
|
Consider escape key functionality for modals
|
|
673
695
|
</li>
|
|
674
696
|
</ul>
|
|
675
697
|
</div>
|
|
676
698
|
</div>
|
|
677
699
|
|
|
678
|
-
<div className="rounded-lg border
|
|
679
|
-
<h3 className="mb-4 text-lg font-semibold
|
|
700
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
|
|
701
|
+
<h3 className="text-fm-secondary-600! mb-4 text-lg font-semibold">
|
|
680
702
|
Proper ARIA Implementation
|
|
681
703
|
</h3>
|
|
682
704
|
<div className="grid grid-cols-1 gap-6 lg:grid-cols-2">
|
|
683
|
-
<div className="rounded-lg
|
|
684
|
-
<pre className="overflow-x-auto text-sm
|
|
705
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
706
|
+
<pre className="text-fm-icon-info! overflow-x-auto text-sm">
|
|
685
707
|
{`// Close button with proper ARIA
|
|
686
708
|
<button
|
|
687
709
|
aria-label="Close modal"
|
|
@@ -705,18 +727,18 @@ function CloseButton() {
|
|
|
705
727
|
aria-label={\`Close \${tabName} tab\`}
|
|
706
728
|
onClick={() => closeTab(tabId)}
|
|
707
729
|
>
|
|
708
|
-
<CrossIcon className="h-3 w-3 text-
|
|
730
|
+
<CrossIcon className="h-3 w-3 text-fm-placeholder " />
|
|
709
731
|
</button>`}
|
|
710
732
|
</pre>
|
|
711
733
|
</div>
|
|
712
734
|
<div className="!space-y-4">
|
|
713
|
-
<p className="text-
|
|
735
|
+
<p className="text-fm-secondary! text-sm">
|
|
714
736
|
When using CrossIcon for interactive elements, always
|
|
715
737
|
provide descriptive aria-label attributes that explain
|
|
716
738
|
the specific action being performed.
|
|
717
739
|
</p>
|
|
718
|
-
<div className="
|
|
719
|
-
<div className="flex items-center gap-2 text-sm
|
|
740
|
+
<div className="border-fm-divider-secondary bg-fm-surface-tertiary/10 rounded-lg border p-4">
|
|
741
|
+
<div className="text-fm-secondary flex items-center gap-2 text-sm">
|
|
720
742
|
<CrossIcon className="h-4 w-4" />
|
|
721
743
|
<span>
|
|
722
744
|
Screen readers need context about what will be
|
|
@@ -731,50 +753,58 @@ function CloseButton() {
|
|
|
731
753
|
|
|
732
754
|
{/* Related Icons */}
|
|
733
755
|
<div className="!space-y-8">
|
|
734
|
-
<h2 className="text-center text-3xl font-bold
|
|
756
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
735
757
|
Related Icons
|
|
736
758
|
</h2>
|
|
737
759
|
<div className="grid grid-cols-2 gap-6 md:grid-cols-4">
|
|
738
|
-
<div className="!space-y-3 rounded-lg border
|
|
739
|
-
<div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg
|
|
740
|
-
<span className="
|
|
760
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
|
|
761
|
+
<div className="bg-fm-icon-negative/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
|
|
762
|
+
<span className="text-fm-icon-active! !text-2xl">⊗</span>
|
|
741
763
|
</div>
|
|
742
764
|
<div>
|
|
743
|
-
<div className="font-medium
|
|
765
|
+
<div className="text-fm-icon-active font-medium">
|
|
744
766
|
CrossCircleIcon
|
|
745
767
|
</div>
|
|
746
|
-
<div className="text-
|
|
768
|
+
<div className="text-fm-tertiary text-xs">
|
|
747
769
|
Cross with circle
|
|
748
770
|
</div>
|
|
749
771
|
</div>
|
|
750
772
|
</div>
|
|
751
|
-
<div className="!space-y-3 rounded-lg border
|
|
752
|
-
<div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg
|
|
753
|
-
<span className="
|
|
773
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
|
|
774
|
+
<div className="bg-fm-surface-tertiary/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
|
|
775
|
+
<span className="text-fm-icon-active! !text-2xl">−</span>
|
|
754
776
|
</div>
|
|
755
777
|
<div>
|
|
756
|
-
<div className="font-medium
|
|
757
|
-
|
|
778
|
+
<div className="text-fm-icon-active font-medium">
|
|
779
|
+
MinusIcon
|
|
780
|
+
</div>
|
|
781
|
+
<div className="text-fm-tertiary text-xs">Minimize</div>
|
|
758
782
|
</div>
|
|
759
783
|
</div>
|
|
760
|
-
<div className="!space-y-3 rounded-lg border
|
|
761
|
-
<div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg
|
|
762
|
-
<span className="
|
|
784
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
|
|
785
|
+
<div className="bg-fm-icon-warning/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
|
|
786
|
+
<span className="text-fm-icon-active! !text-2xl">⚠</span>
|
|
763
787
|
</div>
|
|
764
788
|
<div>
|
|
765
|
-
<div className="font-medium
|
|
766
|
-
|
|
789
|
+
<div className="text-fm-icon-active font-medium">
|
|
790
|
+
AlertIcon
|
|
791
|
+
</div>
|
|
792
|
+
<div className="text-fm-tertiary text-xs">
|
|
767
793
|
Warning states
|
|
768
794
|
</div>
|
|
769
795
|
</div>
|
|
770
796
|
</div>
|
|
771
|
-
<div className="!space-y-3 rounded-lg border
|
|
772
|
-
<div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg
|
|
773
|
-
<span className="
|
|
797
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
|
|
798
|
+
<div className="bg-fm-icon-info/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
|
|
799
|
+
<span className="text-fm-icon-active! !text-2xl">ℹ</span>
|
|
774
800
|
</div>
|
|
775
801
|
<div>
|
|
776
|
-
<div className="font-medium
|
|
777
|
-
|
|
802
|
+
<div className="text-fm-icon-active font-medium">
|
|
803
|
+
InfoIcon
|
|
804
|
+
</div>
|
|
805
|
+
<div className="text-fm-tertiary text-xs">
|
|
806
|
+
Information
|
|
807
|
+
</div>
|
|
778
808
|
</div>
|
|
779
809
|
</div>
|
|
780
810
|
</div>
|
|
@@ -782,14 +812,14 @@ function CloseButton() {
|
|
|
782
812
|
</div>
|
|
783
813
|
|
|
784
814
|
{/* Footer */}
|
|
785
|
-
<div className="border-
|
|
815
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary border-t backdrop-blur-xl">
|
|
786
816
|
<div className="!mx-auto max-w-7xl px-6 py-8">
|
|
787
817
|
<div className="!space-y-4 text-center">
|
|
788
|
-
<p className="
|
|
818
|
+
<p className="text-fm-tertiary!">
|
|
789
819
|
CrossIcon is part of the Aural UI icon library, built with
|
|
790
820
|
simplicity and accessibility in mind.
|
|
791
821
|
</p>
|
|
792
|
-
<p className="text-
|
|
822
|
+
<p className="text-fm-placeholder! text-sm">
|
|
793
823
|
All icons use Radix UI's AccessibleIcon for screen reader
|
|
794
824
|
compatibility and follow WCAG guidelines.
|
|
795
825
|
</p>
|
|
@@ -842,20 +872,20 @@ const storyParameters = {
|
|
|
842
872
|
backgrounds: {
|
|
843
873
|
default: "dark",
|
|
844
874
|
values: [
|
|
845
|
-
{ name: "dark", value: "
|
|
846
|
-
{ name: "darker", value: "
|
|
875
|
+
{ name: "dark", value: "var(--color-fm-surface-primary)" },
|
|
876
|
+
{ name: "darker", value: "var(--color-fm-neutral-0)" },
|
|
847
877
|
],
|
|
848
878
|
},
|
|
849
879
|
}
|
|
850
880
|
|
|
851
881
|
export const Default: Story = {
|
|
852
882
|
args: {
|
|
853
|
-
className: "h-6 w-6 text-
|
|
883
|
+
className: "h-6 w-6 text-fm-placeholder ",
|
|
854
884
|
withAccessibility: true,
|
|
855
885
|
},
|
|
856
886
|
parameters: storyParameters,
|
|
857
887
|
render: (args) => (
|
|
858
|
-
<div className="flex h-32 min-h-dvh items-center justify-center rounded-lg bg-
|
|
888
|
+
<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">
|
|
859
889
|
<CrossIcon {...args} />
|
|
860
890
|
</div>
|
|
861
891
|
),
|
|
@@ -872,30 +902,30 @@ export const SizeVariations: Story = {
|
|
|
872
902
|
},
|
|
873
903
|
},
|
|
874
904
|
render: () => (
|
|
875
|
-
<div className="flex h-64 min-h-dvh items-center justify-center gap-8 rounded-lg bg-
|
|
905
|
+
<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">
|
|
876
906
|
<div className="text-center">
|
|
877
|
-
<CrossIcon className="!mx-auto mb-2 h-3 w-3
|
|
878
|
-
<span className="text-
|
|
907
|
+
<CrossIcon className="text-fm-placeholder !mx-auto mb-2 h-3 w-3" />
|
|
908
|
+
<span className="text-fm-tertiary text-xs">12px</span>
|
|
879
909
|
</div>
|
|
880
910
|
<div className="text-center">
|
|
881
|
-
<CrossIcon className="!mx-auto mb-2 h-4 w-4
|
|
882
|
-
<span className="text-
|
|
911
|
+
<CrossIcon className="text-fm-placeholder !mx-auto mb-2 h-4 w-4" />
|
|
912
|
+
<span className="text-fm-tertiary text-xs">16px</span>
|
|
883
913
|
</div>
|
|
884
914
|
<div className="text-center">
|
|
885
|
-
<CrossIcon className="!mx-auto mb-2 h-5 w-5
|
|
886
|
-
<span className="text-
|
|
915
|
+
<CrossIcon className="text-fm-placeholder !mx-auto mb-2 h-5 w-5" />
|
|
916
|
+
<span className="text-fm-tertiary text-xs">20px</span>
|
|
887
917
|
</div>
|
|
888
918
|
<div className="text-center">
|
|
889
|
-
<CrossIcon className="!mx-auto mb-2 h-6 w-6
|
|
890
|
-
<span className="text-
|
|
919
|
+
<CrossIcon className="text-fm-placeholder !mx-auto mb-2 h-6 w-6" />
|
|
920
|
+
<span className="text-fm-tertiary text-xs">24px</span>
|
|
891
921
|
</div>
|
|
892
922
|
<div className="text-center">
|
|
893
|
-
<CrossIcon className="!mx-auto mb-2 h-8 w-8
|
|
894
|
-
<span className="text-
|
|
923
|
+
<CrossIcon className="text-fm-placeholder !mx-auto mb-2 h-8 w-8" />
|
|
924
|
+
<span className="text-fm-tertiary text-xs">32px</span>
|
|
895
925
|
</div>
|
|
896
926
|
<div className="text-center">
|
|
897
|
-
<CrossIcon className="!mx-auto mb-2 h-12 w-12
|
|
898
|
-
<span className="text-
|
|
927
|
+
<CrossIcon className="text-fm-placeholder !mx-auto mb-2 h-12 w-12" />
|
|
928
|
+
<span className="text-fm-tertiary text-xs">48px</span>
|
|
899
929
|
</div>
|
|
900
930
|
</div>
|
|
901
931
|
),
|
|
@@ -911,34 +941,38 @@ export const ColorVariations: Story = {
|
|
|
911
941
|
},
|
|
912
942
|
},
|
|
913
943
|
render: () => (
|
|
914
|
-
<div className="grid min-h-dvh grid-cols-2 items-center justify-center gap-6 rounded-lg bg-
|
|
944
|
+
<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">
|
|
915
945
|
<div className="text-center">
|
|
916
|
-
<div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border
|
|
917
|
-
<CrossIcon className="h-8 w-8
|
|
946
|
+
<div className="border-fm-divider-primary bg-fm-surface-tertiary/20 !mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border">
|
|
947
|
+
<CrossIcon className="text-fm-placeholder h-8 w-8" />
|
|
918
948
|
</div>
|
|
919
|
-
<div className="text-sm font-medium
|
|
920
|
-
<div className="text-
|
|
949
|
+
<div className="text-fm-icon-active text-sm font-medium">Default</div>
|
|
950
|
+
<div className="text-fm-placeholder text-xs">text-fm-placeholder</div>
|
|
921
951
|
</div>
|
|
922
952
|
<div className="text-center">
|
|
923
|
-
<div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border
|
|
924
|
-
<CrossIcon className="h-8 w-8
|
|
953
|
+
<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">
|
|
954
|
+
<CrossIcon className="text-fm-icon-negative h-8 w-8" />
|
|
955
|
+
</div>
|
|
956
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
957
|
+
Close/Error
|
|
958
|
+
</div>
|
|
959
|
+
<div className="text-fm-icon-negative text-xs">
|
|
960
|
+
text-fm-icon-negative
|
|
925
961
|
</div>
|
|
926
|
-
<div className="text-sm font-medium text-white">Close/Error</div>
|
|
927
|
-
<div className="text-xs text-red-400">text-red-400</div>
|
|
928
962
|
</div>
|
|
929
963
|
<div className="text-center">
|
|
930
|
-
<div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border
|
|
931
|
-
<CrossIcon className="h-8 w-8
|
|
964
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border">
|
|
965
|
+
<CrossIcon className="text-fm-tertiary h-8 w-8" />
|
|
932
966
|
</div>
|
|
933
|
-
<div className="text-sm font-medium
|
|
934
|
-
<div className="text-
|
|
967
|
+
<div className="text-fm-icon-active text-sm font-medium">Muted</div>
|
|
968
|
+
<div className="text-fm-tertiary text-xs">text-fm-tertiary</div>
|
|
935
969
|
</div>
|
|
936
970
|
<div className="text-center">
|
|
937
|
-
<div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border
|
|
938
|
-
<CrossIcon className="h-8 w-8
|
|
971
|
+
<div className="border-fm-divider-primary bg-fm-icon-inactive/20 !mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border">
|
|
972
|
+
<CrossIcon className="text-fm-secondary h-8 w-8" />
|
|
939
973
|
</div>
|
|
940
|
-
<div className="text-sm font-medium
|
|
941
|
-
<div className="text-
|
|
974
|
+
<div className="text-fm-icon-active text-sm font-medium">Light</div>
|
|
975
|
+
<div className="text-fm-secondary text-xs">text-fm-secondary</div>
|
|
942
976
|
</div>
|
|
943
977
|
</div>
|
|
944
978
|
),
|
|
@@ -955,18 +989,22 @@ export const UsageExamples: Story = {
|
|
|
955
989
|
},
|
|
956
990
|
},
|
|
957
991
|
render: () => (
|
|
958
|
-
<div className="min-h-dvh !space-y-8 rounded-lg bg-
|
|
992
|
+
<div className="from-fm-surface-primary to-fm-surface-secondary min-h-dvh !space-y-8 rounded-lg bg-linear-to-br p-8">
|
|
959
993
|
{/* Modal Close Button */}
|
|
960
994
|
<div className="!space-y-2">
|
|
961
|
-
<h3 className="text-sm font-medium
|
|
962
|
-
|
|
995
|
+
<h3 className="text-fm-icon-active text-sm font-medium">
|
|
996
|
+
Modal Close Button
|
|
997
|
+
</h3>
|
|
998
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
|
|
963
999
|
<div className="mb-4 flex items-center justify-between">
|
|
964
|
-
<h3 className="text-lg font-semibold
|
|
965
|
-
|
|
966
|
-
|
|
1000
|
+
<h3 className="text-fm-icon-active text-lg font-semibold">
|
|
1001
|
+
Settings
|
|
1002
|
+
</h3>
|
|
1003
|
+
<button className="hover:bg-fm-surface-secondary rounded-lg p-2 transition-colors">
|
|
1004
|
+
<CrossIcon className="text-fm-placeholder h-5 w-5" />
|
|
967
1005
|
</button>
|
|
968
1006
|
</div>
|
|
969
|
-
<p className="text-
|
|
1007
|
+
<p className="text-fm-secondary">
|
|
970
1008
|
Configure your application preferences and settings.
|
|
971
1009
|
</p>
|
|
972
1010
|
</div>
|
|
@@ -974,34 +1012,38 @@ export const UsageExamples: Story = {
|
|
|
974
1012
|
|
|
975
1013
|
{/* Search Clear Button */}
|
|
976
1014
|
<div className="!space-y-2">
|
|
977
|
-
<h3 className="text-sm font-medium
|
|
1015
|
+
<h3 className="text-fm-icon-active text-sm font-medium">
|
|
1016
|
+
Search Clear Button
|
|
1017
|
+
</h3>
|
|
978
1018
|
<div className="relative">
|
|
979
1019
|
<input
|
|
980
1020
|
type="text"
|
|
981
|
-
className="w-full rounded-lg border
|
|
1021
|
+
className="border-fm-divider-primary bg-fm-surface-secondary text-fm-icon-active focus:border-fm-divider-primary w-full rounded-lg border px-3 py-2 pr-10 placeholder-white/50 focus:ring-2 focus:ring-gray-400/20"
|
|
982
1022
|
placeholder="Search..."
|
|
983
1023
|
defaultValue="Sample query"
|
|
984
1024
|
/>
|
|
985
|
-
<button className="absolute top-1/2 right-3 -translate-y-1/2 rounded p-0.5
|
|
986
|
-
<CrossIcon className="h-4 w-4
|
|
1025
|
+
<button className="hover:bg-fm-surface-secondary absolute top-1/2 right-3 -translate-y-1/2 rounded p-0.5">
|
|
1026
|
+
<CrossIcon className="text-fm-placeholder h-4 w-4" />
|
|
987
1027
|
</button>
|
|
988
1028
|
</div>
|
|
989
1029
|
</div>
|
|
990
1030
|
|
|
991
1031
|
{/* Tab Close Button */}
|
|
992
1032
|
<div className="!space-y-2">
|
|
993
|
-
<h3 className="text-sm font-medium
|
|
994
|
-
|
|
995
|
-
|
|
1033
|
+
<h3 className="text-fm-icon-active text-sm font-medium">
|
|
1034
|
+
Tab Close Button
|
|
1035
|
+
</h3>
|
|
1036
|
+
<div className="border-fm-divider-secondary flex border-b">
|
|
1037
|
+
<div className="border-fm-icon-info text-fm-icon-info flex items-center gap-2 border-b-2 px-4 py-2">
|
|
996
1038
|
<span>Component.tsx</span>
|
|
997
|
-
<button className="rounded p-0.5
|
|
998
|
-
<CrossIcon className="h-3 w-3
|
|
1039
|
+
<button className="hover:bg-fm-icon-info/20 rounded p-0.5">
|
|
1040
|
+
<CrossIcon className="text-fm-icon-info h-3 w-3" />
|
|
999
1041
|
</button>
|
|
1000
1042
|
</div>
|
|
1001
|
-
<div className="flex items-center gap-2 px-4 py-2
|
|
1043
|
+
<div className="text-fm-tertiary hover:text-fm-icon-active flex items-center gap-2 px-4 py-2">
|
|
1002
1044
|
<span>utils.ts</span>
|
|
1003
|
-
<button className="rounded p-0.5 opacity-60 hover:
|
|
1004
|
-
<CrossIcon className="h-3 w-3
|
|
1045
|
+
<button className="hover:bg-fm-surface-secondary rounded p-0.5 opacity-60 hover:opacity-100">
|
|
1046
|
+
<CrossIcon className="text-fm-placeholder h-3 w-3" />
|
|
1005
1047
|
</button>
|
|
1006
1048
|
</div>
|
|
1007
1049
|
</div>
|
|
@@ -1023,11 +1065,11 @@ export const Playground: Story = {
|
|
|
1023
1065
|
args: {
|
|
1024
1066
|
width: 32,
|
|
1025
1067
|
height: 32,
|
|
1026
|
-
className: "text-
|
|
1068
|
+
className: "text-fm-placeholder ",
|
|
1027
1069
|
},
|
|
1028
1070
|
render: (args) => (
|
|
1029
|
-
<div className="flex h-64 min-h-dvh items-center justify-center rounded-lg bg-
|
|
1030
|
-
<div className="rounded-lg border
|
|
1071
|
+
<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">
|
|
1072
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-8">
|
|
1031
1073
|
<CrossIcon {...args} />
|
|
1032
1074
|
</div>
|
|
1033
1075
|
</div>
|