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 VerticalMenuIcon> = {
|
|
|
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 VerticalMenuIcon> = {
|
|
|
40
40
|
background: transparent !important;
|
|
41
41
|
}
|
|
42
42
|
body {
|
|
43
|
-
background:
|
|
43
|
+
background: var(--color-fm-surface-primary) !important;
|
|
44
44
|
}
|
|
45
45
|
#storybook-docs {
|
|
46
|
-
background:
|
|
46
|
+
background: var(--color-fm-surface-primary) !important;
|
|
47
47
|
}
|
|
48
48
|
.sbdocs-preview {
|
|
49
49
|
background: transparent !important;
|
|
50
50
|
border: none !important;
|
|
51
51
|
}
|
|
52
52
|
.sbdocs-h1, .sbdocs-h2, .sbdocs-h3, .sbdocs-h4, .sbdocs-h5, .sbdocs-h6 {
|
|
53
|
-
color:
|
|
53
|
+
color: var(--color-fm-icon-active) !important;
|
|
54
54
|
}
|
|
55
55
|
.sbdocs-p, .sbdocs-li {
|
|
56
|
-
color:
|
|
56
|
+
color: var(--color-fm-secondary) !important;
|
|
57
57
|
}
|
|
58
58
|
.sbdocs-code {
|
|
59
|
-
background:
|
|
60
|
-
color:
|
|
61
|
-
border: 1px solid
|
|
59
|
+
background: var(--color-fm-surface-secondary) !important;
|
|
60
|
+
color: var(--color-fm-secondary-500) !important;
|
|
61
|
+
border: 1px solid var(--color-fm-divider-secondary) !important;
|
|
62
62
|
}
|
|
63
63
|
.sbdocs-pre {
|
|
64
|
-
background:
|
|
65
|
-
border: 1px solid
|
|
64
|
+
background: var(--color-fm-surface-secondary) !important;
|
|
65
|
+
border: 1px solid var(--color-fm-divider-secondary) !important;
|
|
66
66
|
}
|
|
67
67
|
.sbdocs-table {
|
|
68
|
-
background:
|
|
69
|
-
border: 1px solid
|
|
68
|
+
background: var(--color-fm-surface-secondary) !important;
|
|
69
|
+
border: 1px solid var(--color-fm-divider-secondary) !important;
|
|
70
70
|
}
|
|
71
71
|
.sbdocs-table th {
|
|
72
|
-
background:
|
|
73
|
-
color:
|
|
74
|
-
border-bottom: 1px solid
|
|
72
|
+
background: var(--color-fm-surface-secondary) !important;
|
|
73
|
+
color: var(--color-fm-icon-active) !important;
|
|
74
|
+
border-bottom: 1px solid var(--color-fm-divider-secondary) !important;
|
|
75
75
|
}
|
|
76
76
|
.sbdocs-table td {
|
|
77
|
-
color:
|
|
78
|
-
border-bottom: 1px solid
|
|
77
|
+
color: var(--color-fm-secondary) !important;
|
|
78
|
+
border-bottom: 1px solid var(--color-fm-divider-tertiary) !important;
|
|
79
79
|
}
|
|
80
80
|
`}
|
|
81
81
|
</style>
|
|
82
82
|
|
|
83
|
-
<div className="
|
|
83
|
+
<div className="from-fm-surface-primary via-fm-icon-info/5 to-fm-surface-primary min-h-screen bg-linear-to-br">
|
|
84
84
|
{/* Header */}
|
|
85
|
-
<div className="relative overflow-hidden border-b
|
|
86
|
-
<div className="absolute inset-0 bg-
|
|
85
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary relative overflow-hidden border-b backdrop-blur-xl">
|
|
86
|
+
<div className="from-fm-icon-info/10 to-fm-secondary-500/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
|
-
<VerticalMenuIcon className="h-12 w-12
|
|
89
|
+
<div className="border-fm-icon-info/30 from-fm-icon-info/20 to-fm-secondary-500/20 !mx-auto flex h-24 w-24 items-center justify-center rounded-2xl border bg-linear-to-br">
|
|
90
|
+
<VerticalMenuIcon className="text-fm-icon-info h-12 w-12" />
|
|
91
91
|
</div>
|
|
92
92
|
<h1 className="!text-fm-primary text-5xl font-bold">
|
|
93
93
|
VerticalMenuIcon
|
|
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 vertical menu icon for dropdown menus, action lists,
|
|
97
97
|
and navigation controls. Built with accessibility in mind
|
|
98
98
|
using Radix UI's AccessibleIcon wrapper.
|
|
@@ -101,28 +101,28 @@ const meta: Meta<typeof VerticalMenuIcon> = {
|
|
|
101
101
|
{/* Stats */}
|
|
102
102
|
<div className="flex items-center justify-center gap-8 pt-8">
|
|
103
103
|
<div className="text-center">
|
|
104
|
-
<div className="text-3xl font-bold
|
|
104
|
+
<div className="text-fm-icon-info text-3xl font-bold">
|
|
105
105
|
Accessible
|
|
106
106
|
</div>
|
|
107
|
-
<div className="text-
|
|
107
|
+
<div className="text-fm-tertiary text-sm">
|
|
108
108
|
Screen reader friendly
|
|
109
109
|
</div>
|
|
110
110
|
</div>
|
|
111
|
-
<div className="h-8 w-px
|
|
111
|
+
<div className="bg-fm-divider-primary h-8 w-px" />
|
|
112
112
|
<div className="text-center">
|
|
113
|
-
<div className="text-3xl font-bold
|
|
113
|
+
<div className="text-fm-secondary-600 text-3xl font-bold">
|
|
114
114
|
Scalable
|
|
115
115
|
</div>
|
|
116
|
-
<div className="text-
|
|
116
|
+
<div className="text-fm-tertiary text-sm">
|
|
117
117
|
Any size needed
|
|
118
118
|
</div>
|
|
119
119
|
</div>
|
|
120
|
-
<div className="h-8 w-px
|
|
120
|
+
<div className="bg-fm-divider-primary h-8 w-px" />
|
|
121
121
|
<div className="text-center">
|
|
122
|
-
<div className="text-3xl font-bold
|
|
122
|
+
<div className="text-fm-icon-info text-3xl font-bold">
|
|
123
123
|
Flexible
|
|
124
124
|
</div>
|
|
125
|
-
<div className="text-
|
|
125
|
+
<div className="text-fm-tertiary text-sm">
|
|
126
126
|
Customizable styling
|
|
127
127
|
</div>
|
|
128
128
|
</div>
|
|
@@ -135,16 +135,16 @@ const meta: Meta<typeof VerticalMenuIcon> = {
|
|
|
135
135
|
<div className="!mx-auto max-w-7xl !space-y-16 px-6 py-12">
|
|
136
136
|
{/* Quick Usage */}
|
|
137
137
|
<div className="!space-y-8">
|
|
138
|
-
<h2 className="text-center text-3xl font-bold
|
|
138
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
139
139
|
Quick Start
|
|
140
140
|
</h2>
|
|
141
141
|
<div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
|
|
142
142
|
<div className="!space-y-4">
|
|
143
|
-
<h3 className="text-xl font-semibold
|
|
143
|
+
<h3 className="text-fm-icon-info! text-xl font-semibold">
|
|
144
144
|
Basic Usage
|
|
145
145
|
</h3>
|
|
146
|
-
<div className="rounded-lg
|
|
147
|
-
<pre className="overflow-x-auto text-sm
|
|
146
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
147
|
+
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
148
148
|
{`import { VerticalMenuIcon } from "@icons/vertical-menu-icon"
|
|
149
149
|
|
|
150
150
|
function MyComponent() {
|
|
@@ -159,12 +159,12 @@ function MyComponent() {
|
|
|
159
159
|
</div>
|
|
160
160
|
|
|
161
161
|
<div className="!space-y-4">
|
|
162
|
-
<h3 className="text-xl font-semibold
|
|
162
|
+
<h3 className="text-fm-icon-info! text-xl font-semibold">
|
|
163
163
|
Live Preview
|
|
164
164
|
</h3>
|
|
165
|
-
<div className="flex h-32 items-center justify-center rounded-lg border
|
|
166
|
-
<button className="
|
|
167
|
-
<VerticalMenuIcon className="h-6 w-6
|
|
165
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary flex h-32 items-center justify-center rounded-lg border">
|
|
166
|
+
<button className="border-fm-icon-info/20 bg-fm-icon-info/10 hover:bg-fm-icon-info/20 rounded-lg border p-3 transition-colors">
|
|
167
|
+
<VerticalMenuIcon className="text-fm-icon-info h-6 w-6" />
|
|
168
168
|
</button>
|
|
169
169
|
</div>
|
|
170
170
|
</div>
|
|
@@ -173,94 +173,102 @@ function MyComponent() {
|
|
|
173
173
|
|
|
174
174
|
{/* Props Documentation */}
|
|
175
175
|
<div className="!space-y-8">
|
|
176
|
-
<h2 className="text-center text-3xl font-bold
|
|
176
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
177
177
|
Props & Configuration
|
|
178
178
|
</h2>
|
|
179
179
|
|
|
180
|
-
<div className="overflow-hidden rounded-lg border
|
|
181
|
-
<div className="bg-
|
|
182
|
-
<h3 className="text-xl font-semibold
|
|
180
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary overflow-hidden rounded-lg border">
|
|
181
|
+
<div className="bg-fm-surface-secondary p-4">
|
|
182
|
+
<h3 className="text-fm-icon-active! text-xl font-semibold">
|
|
183
|
+
Props
|
|
184
|
+
</h3>
|
|
183
185
|
</div>
|
|
184
186
|
<table className="!my-0 w-full">
|
|
185
|
-
<thead className="bg-
|
|
186
|
-
<tr className="border-
|
|
187
|
-
<th className="px-6 py-4 text-left text-sm font-semibold
|
|
187
|
+
<thead className="bg-fm-surface-secondary">
|
|
188
|
+
<tr className="border-fm-divider-secondary border-b">
|
|
189
|
+
<th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
|
|
188
190
|
Prop
|
|
189
191
|
</th>
|
|
190
|
-
<th className="px-6 py-4 text-left text-sm font-semibold
|
|
192
|
+
<th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
|
|
191
193
|
Type
|
|
192
194
|
</th>
|
|
193
|
-
<th className="px-6 py-4 text-left text-sm font-semibold
|
|
195
|
+
<th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
|
|
194
196
|
Default
|
|
195
197
|
</th>
|
|
196
|
-
<th className="px-6 py-4 text-left text-sm font-semibold
|
|
198
|
+
<th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
|
|
197
199
|
Description
|
|
198
200
|
</th>
|
|
199
201
|
</tr>
|
|
200
202
|
</thead>
|
|
201
203
|
<tbody>
|
|
202
204
|
{" "}
|
|
203
|
-
<tr className="
|
|
204
|
-
<td className="px-6 py-4 font-mono text-sm
|
|
205
|
+
<tr className="bg-fm-surface-secondary!">
|
|
206
|
+
<td className="text-fm-icon-info! px-6 py-4 font-mono text-sm">
|
|
205
207
|
withAccessibility
|
|
206
208
|
</td>
|
|
207
|
-
<td className="px-6 py-4 text-sm
|
|
209
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
208
210
|
boolean
|
|
209
211
|
</td>
|
|
210
|
-
<td className="px-6 py-4 text-sm
|
|
212
|
+
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
211
213
|
true
|
|
212
214
|
</td>
|
|
213
|
-
<td className="px-6 py-4 text-sm
|
|
215
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
214
216
|
Whether to wrap the icon with accessibility feature
|
|
215
217
|
</td>
|
|
216
218
|
</tr>
|
|
217
|
-
<tr className="border-
|
|
218
|
-
<td className="px-6 py-4 font-mono text-sm
|
|
219
|
+
<tr className="border-fm-divider-tertiary bg-fm-surface-secondary! border-b">
|
|
220
|
+
<td className="text-fm-icon-info! px-6 py-4 font-mono text-sm">
|
|
219
221
|
height
|
|
220
222
|
</td>
|
|
221
|
-
<td className="px-6 py-4 text-sm
|
|
223
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
222
224
|
number | string
|
|
223
225
|
</td>
|
|
224
|
-
<td className="px-6 py-4 text-sm
|
|
225
|
-
|
|
226
|
+
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
227
|
+
24
|
|
228
|
+
</td>
|
|
229
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
226
230
|
Height of the icon in pixels
|
|
227
231
|
</td>
|
|
228
232
|
</tr>
|
|
229
|
-
<tr className="border-
|
|
230
|
-
<td className="px-6 py-4 font-mono text-sm
|
|
233
|
+
<tr className="border-fm-divider-tertiary border-b">
|
|
234
|
+
<td className="text-fm-icon-info! px-6 py-4 font-mono text-sm">
|
|
231
235
|
fill
|
|
232
236
|
</td>
|
|
233
|
-
<td className="px-6 py-4 text-sm
|
|
237
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
234
238
|
string
|
|
235
239
|
</td>
|
|
236
|
-
<td className="px-6 py-4 text-sm
|
|
240
|
+
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
237
241
|
currentColor
|
|
238
242
|
</td>
|
|
239
|
-
<td className="px-6 py-4 text-sm
|
|
243
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
240
244
|
Fill color of the icon
|
|
241
245
|
</td>
|
|
242
246
|
</tr>
|
|
243
|
-
<tr className="border-
|
|
244
|
-
<td className="px-6 py-4 font-mono text-sm
|
|
247
|
+
<tr className="border-fm-divider-tertiary bg-fm-surface-secondary! border-b">
|
|
248
|
+
<td className="text-fm-icon-info! px-6 py-4 font-mono text-sm">
|
|
245
249
|
className
|
|
246
250
|
</td>
|
|
247
|
-
<td className="px-6 py-4 text-sm
|
|
251
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
248
252
|
string
|
|
249
253
|
</td>
|
|
250
|
-
<td className="px-6 py-4 text-sm
|
|
251
|
-
|
|
254
|
+
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
255
|
+
-
|
|
256
|
+
</td>
|
|
257
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
252
258
|
CSS classes for styling
|
|
253
259
|
</td>
|
|
254
260
|
</tr>
|
|
255
|
-
<tr className="
|
|
256
|
-
<td className="px-6 py-4 font-mono text-sm
|
|
261
|
+
<tr className="bg-fm-surface-secondary!">
|
|
262
|
+
<td className="text-fm-icon-info! px-6 py-4 font-mono text-sm">
|
|
257
263
|
...svgProps
|
|
258
264
|
</td>
|
|
259
|
-
<td className="px-6 py-4 text-sm
|
|
265
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
260
266
|
SVGProps
|
|
261
267
|
</td>
|
|
262
|
-
<td className="px-6 py-4 text-sm
|
|
263
|
-
|
|
268
|
+
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
269
|
+
-
|
|
270
|
+
</td>
|
|
271
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
264
272
|
All standard SVG element props
|
|
265
273
|
</td>
|
|
266
274
|
</tr>
|
|
@@ -271,50 +279,62 @@ function MyComponent() {
|
|
|
271
279
|
|
|
272
280
|
{/* Size Variations */}
|
|
273
281
|
<div className="!space-y-8">
|
|
274
|
-
<h2 className="text-center text-3xl font-bold
|
|
282
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
275
283
|
Size Variations
|
|
276
284
|
</h2>
|
|
277
|
-
<div className="rounded-lg border
|
|
285
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-8">
|
|
278
286
|
<div className="!space-y-6">
|
|
279
287
|
<div className="grid grid-cols-1 gap-8 md:grid-cols-2">
|
|
280
288
|
<div className="!space-y-4">
|
|
281
|
-
<h3 className="text-lg font-semibold
|
|
289
|
+
<h3 className="text-fm-icon-info! text-lg font-semibold">
|
|
282
290
|
Standard Sizes
|
|
283
291
|
</h3>
|
|
284
|
-
<div className="flex items-end gap-6 rounded-lg
|
|
292
|
+
<div className="bg-fm-surface-secondary flex items-end gap-6 rounded-lg p-6">
|
|
285
293
|
<div className="text-center">
|
|
286
|
-
<VerticalMenuIcon className="!mx-auto mb-2 h-3 w-3
|
|
287
|
-
<span className="text-
|
|
294
|
+
<VerticalMenuIcon className="text-fm-icon-info !mx-auto mb-2 h-3 w-3" />
|
|
295
|
+
<span className="text-fm-tertiary text-xs">
|
|
296
|
+
12px
|
|
297
|
+
</span>
|
|
288
298
|
</div>
|
|
289
299
|
<div className="text-center">
|
|
290
|
-
<VerticalMenuIcon className="!mx-auto mb-2 h-4 w-4
|
|
291
|
-
<span className="text-
|
|
300
|
+
<VerticalMenuIcon className="text-fm-icon-info !mx-auto mb-2 h-4 w-4" />
|
|
301
|
+
<span className="text-fm-tertiary text-xs">
|
|
302
|
+
16px
|
|
303
|
+
</span>
|
|
292
304
|
</div>
|
|
293
305
|
<div className="text-center">
|
|
294
|
-
<VerticalMenuIcon className="!mx-auto mb-2 h-5 w-5
|
|
295
|
-
<span className="text-
|
|
306
|
+
<VerticalMenuIcon className="text-fm-icon-info !mx-auto mb-2 h-5 w-5" />
|
|
307
|
+
<span className="text-fm-tertiary text-xs">
|
|
308
|
+
20px
|
|
309
|
+
</span>
|
|
296
310
|
</div>
|
|
297
311
|
<div className="text-center">
|
|
298
|
-
<VerticalMenuIcon className="!mx-auto mb-2 h-6 w-6
|
|
299
|
-
<span className="text-
|
|
312
|
+
<VerticalMenuIcon className="text-fm-icon-info !mx-auto mb-2 h-6 w-6" />
|
|
313
|
+
<span className="text-fm-tertiary text-xs">
|
|
314
|
+
24px
|
|
315
|
+
</span>
|
|
300
316
|
</div>
|
|
301
317
|
<div className="text-center">
|
|
302
|
-
<VerticalMenuIcon className="!mx-auto mb-2 h-8 w-8
|
|
303
|
-
<span className="text-
|
|
318
|
+
<VerticalMenuIcon className="text-fm-icon-info !mx-auto mb-2 h-8 w-8" />
|
|
319
|
+
<span className="text-fm-tertiary text-xs">
|
|
320
|
+
32px
|
|
321
|
+
</span>
|
|
304
322
|
</div>
|
|
305
323
|
<div className="text-center">
|
|
306
|
-
<VerticalMenuIcon className="!mx-auto mb-2 h-12 w-12
|
|
307
|
-
<span className="text-
|
|
324
|
+
<VerticalMenuIcon className="text-fm-icon-info !mx-auto mb-2 h-12 w-12" />
|
|
325
|
+
<span className="text-fm-tertiary text-xs">
|
|
326
|
+
48px
|
|
327
|
+
</span>
|
|
308
328
|
</div>
|
|
309
329
|
</div>
|
|
310
330
|
</div>
|
|
311
331
|
|
|
312
332
|
<div className="!space-y-4">
|
|
313
|
-
<h3 className="text-lg font-semibold
|
|
333
|
+
<h3 className="text-fm-icon-info! text-lg font-semibold">
|
|
314
334
|
Code Example
|
|
315
335
|
</h3>
|
|
316
|
-
<div className="rounded-lg
|
|
317
|
-
<pre className="overflow-x-auto text-sm
|
|
336
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
337
|
+
<pre className="text-fm-icon-info! overflow-x-auto text-sm">
|
|
318
338
|
{`// Small (16px)
|
|
319
339
|
<VerticalMenuIcon className="h-4 w-4" />
|
|
320
340
|
|
|
@@ -336,56 +356,56 @@ function MyComponent() {
|
|
|
336
356
|
|
|
337
357
|
{/* Color Variations */}
|
|
338
358
|
<div className="!space-y-8">
|
|
339
|
-
<h2 className="text-center text-3xl font-bold
|
|
359
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
340
360
|
Color Variations
|
|
341
361
|
</h2>
|
|
342
362
|
<div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
|
|
343
363
|
<div className="!space-y-4">
|
|
344
|
-
<h3 className="text-lg font-semibold
|
|
364
|
+
<h3 className="text-fm-icon-info! text-lg font-semibold">
|
|
345
365
|
Common Colors
|
|
346
366
|
</h3>
|
|
347
|
-
<div className="!space-y-4 rounded-lg border
|
|
367
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
|
|
348
368
|
<div className="flex items-center gap-4">
|
|
349
|
-
<VerticalMenuIcon className="h-6 w-6
|
|
369
|
+
<VerticalMenuIcon className="text-fm-placeholder h-6 w-6" />
|
|
350
370
|
<div>
|
|
351
|
-
<div className="text-sm font-medium
|
|
371
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
352
372
|
Default
|
|
353
373
|
</div>
|
|
354
|
-
<div className="text-
|
|
355
|
-
text-
|
|
374
|
+
<div className="text-fm-tertiary text-xs">
|
|
375
|
+
text-fm-placeholder
|
|
356
376
|
</div>
|
|
357
377
|
</div>
|
|
358
378
|
</div>
|
|
359
379
|
<div className="flex items-center gap-4">
|
|
360
|
-
<VerticalMenuIcon className="h-6 w-6
|
|
380
|
+
<VerticalMenuIcon className="text-fm-icon-info h-6 w-6" />
|
|
361
381
|
<div>
|
|
362
|
-
<div className="text-sm font-medium
|
|
382
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
363
383
|
Primary
|
|
364
384
|
</div>
|
|
365
|
-
<div className="text-
|
|
366
|
-
text-
|
|
385
|
+
<div className="text-fm-tertiary text-xs">
|
|
386
|
+
text-fm-icon-info
|
|
367
387
|
</div>
|
|
368
388
|
</div>
|
|
369
389
|
</div>
|
|
370
390
|
<div className="flex items-center gap-4">
|
|
371
|
-
<VerticalMenuIcon className="h-6 w-6
|
|
391
|
+
<VerticalMenuIcon className="text-fm-secondary-600 h-6 w-6" />
|
|
372
392
|
<div>
|
|
373
|
-
<div className="text-sm font-medium
|
|
393
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
374
394
|
Secondary
|
|
375
395
|
</div>
|
|
376
|
-
<div className="text-
|
|
377
|
-
text-
|
|
396
|
+
<div className="text-fm-tertiary text-xs">
|
|
397
|
+
text-fm-secondary-600
|
|
378
398
|
</div>
|
|
379
399
|
</div>
|
|
380
400
|
</div>
|
|
381
401
|
<div className="flex items-center gap-4">
|
|
382
|
-
<VerticalMenuIcon className="h-6 w-6
|
|
402
|
+
<VerticalMenuIcon className="text-fm-placeholder h-6 w-6" />
|
|
383
403
|
<div>
|
|
384
|
-
<div className="text-sm font-medium
|
|
404
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
385
405
|
Disabled
|
|
386
406
|
</div>
|
|
387
|
-
<div className="text-
|
|
388
|
-
text-
|
|
407
|
+
<div className="text-fm-tertiary text-xs">
|
|
408
|
+
text-fm-placeholder
|
|
389
409
|
</div>
|
|
390
410
|
</div>
|
|
391
411
|
</div>
|
|
@@ -393,11 +413,11 @@ function MyComponent() {
|
|
|
393
413
|
</div>
|
|
394
414
|
|
|
395
415
|
<div className="!space-y-4">
|
|
396
|
-
<h3 className="text-lg font-semibold
|
|
416
|
+
<h3 className="text-fm-icon-info! text-lg font-semibold">
|
|
397
417
|
Custom Colors
|
|
398
418
|
</h3>
|
|
399
|
-
<div className="rounded-lg
|
|
400
|
-
<pre className="overflow-x-auto text-sm
|
|
419
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
420
|
+
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
401
421
|
{`// Using Tailwind classes
|
|
402
422
|
<VerticalMenuIcon className="h-6 w-6 text-blue-400" />
|
|
403
423
|
<VerticalMenuIcon className="h-6 w-6 text-purple-500" />
|
|
@@ -422,37 +442,37 @@ function MyComponent() {
|
|
|
422
442
|
|
|
423
443
|
{/* Usage Examples */}
|
|
424
444
|
<div className="!space-y-8">
|
|
425
|
-
<h2 className="text-center text-3xl font-bold
|
|
445
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
426
446
|
Usage Examples
|
|
427
447
|
</h2>
|
|
428
448
|
|
|
429
449
|
<div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
|
|
430
450
|
{/* Dropdown Menu */}
|
|
431
451
|
<div className="!space-y-4">
|
|
432
|
-
<h3 className="text-lg font-semibold
|
|
452
|
+
<h3 className="text-fm-icon-info! text-lg font-semibold">
|
|
433
453
|
Dropdown Menu
|
|
434
454
|
</h3>
|
|
435
455
|
<div className="!space-y-4">
|
|
436
|
-
<div className="rounded-lg border
|
|
456
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-4">
|
|
437
457
|
<div className="flex items-center justify-between">
|
|
438
458
|
<div className="flex items-center gap-3">
|
|
439
|
-
<div className="h-10 w-10 rounded-lg bg-
|
|
459
|
+
<div className="from-fm-icon-info to-fm-secondary-600 h-10 w-10 rounded-lg bg-linear-to-br"></div>
|
|
440
460
|
<div>
|
|
441
|
-
<div className="text-sm font-medium
|
|
461
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
442
462
|
John Smith
|
|
443
463
|
</div>
|
|
444
|
-
<div className="text-
|
|
464
|
+
<div className="text-fm-tertiary text-xs">
|
|
445
465
|
john@example.com
|
|
446
466
|
</div>
|
|
447
467
|
</div>
|
|
448
468
|
</div>
|
|
449
|
-
<button className="
|
|
469
|
+
<button className="text-fm-placeholder hover:bg-fm-surface-secondary hover:text-fm-icon-info rounded-lg p-2 transition-colors">
|
|
450
470
|
<VerticalMenuIcon className="h-5 w-5" />
|
|
451
471
|
</button>
|
|
452
472
|
</div>
|
|
453
473
|
</div>
|
|
454
|
-
<div className="rounded-lg
|
|
455
|
-
<pre className="overflow-x-auto text-sm
|
|
474
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
475
|
+
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
456
476
|
{`<div className="flex items-center justify-between">
|
|
457
477
|
<div className="flex items-center gap-3">
|
|
458
478
|
{/* User info */}
|
|
@@ -468,31 +488,31 @@ function MyComponent() {
|
|
|
468
488
|
|
|
469
489
|
{/* Card Actions */}
|
|
470
490
|
<div className="!space-y-4">
|
|
471
|
-
<h3 className="text-lg font-semibold
|
|
491
|
+
<h3 className="text-fm-icon-info! text-lg font-semibold">
|
|
472
492
|
Card Actions
|
|
473
493
|
</h3>
|
|
474
494
|
<div className="!space-y-4">
|
|
475
|
-
<div className="rounded-lg border
|
|
495
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
|
|
476
496
|
<div className="flex items-start justify-between">
|
|
477
497
|
<div className="!space-y-2">
|
|
478
|
-
<h4 className="font-medium
|
|
498
|
+
<h4 className="text-fm-icon-active! font-medium">
|
|
479
499
|
Project Alpha
|
|
480
500
|
</h4>
|
|
481
|
-
<p className="text-
|
|
501
|
+
<p className="text-fm-secondary! text-sm">
|
|
482
502
|
A new approach to user interface design that
|
|
483
503
|
focuses on accessibility.
|
|
484
504
|
</p>
|
|
485
|
-
<div className="flex items-center gap-2 text-xs
|
|
505
|
+
<div className="text-fm-tertiary flex items-center gap-2 text-xs">
|
|
486
506
|
<span>Updated 2 hours ago</span>
|
|
487
507
|
</div>
|
|
488
508
|
</div>
|
|
489
|
-
<button className="
|
|
509
|
+
<button className="text-fm-placeholder hover:bg-fm-surface-secondary hover:text-fm-icon-info rounded-lg p-2 transition-colors">
|
|
490
510
|
<VerticalMenuIcon className="h-4 w-4" />
|
|
491
511
|
</button>
|
|
492
512
|
</div>
|
|
493
513
|
</div>
|
|
494
|
-
<div className="rounded-lg
|
|
495
|
-
<pre className="overflow-x-auto text-sm
|
|
514
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
515
|
+
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
496
516
|
{`<div className="flex items-start justify-between">
|
|
497
517
|
<div className="space-y-2">
|
|
498
518
|
<h4 className="font-medium text-white">Project Alpha</h4>
|
|
@@ -509,33 +529,33 @@ function MyComponent() {
|
|
|
509
529
|
|
|
510
530
|
{/* Navigation Menu */}
|
|
511
531
|
<div className="!space-y-4">
|
|
512
|
-
<h3 className="text-lg font-semibold
|
|
532
|
+
<h3 className="text-fm-icon-info! text-lg font-semibold">
|
|
513
533
|
Navigation Menu
|
|
514
534
|
</h3>
|
|
515
535
|
<div className="!space-y-4">
|
|
516
|
-
<div className="rounded-lg border
|
|
536
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-2">
|
|
517
537
|
<div className="flex items-center justify-between px-3 py-2">
|
|
518
|
-
<div className="flex items-center gap-2 font-medium
|
|
538
|
+
<div className="text-fm-icon-active flex items-center gap-2 font-medium">
|
|
519
539
|
<span>Dashboard</span>
|
|
520
540
|
</div>
|
|
521
|
-
<VerticalMenuIcon className="h-4 w-4
|
|
541
|
+
<VerticalMenuIcon className="text-fm-placeholder h-4 w-4" />
|
|
522
542
|
</div>
|
|
523
|
-
<div className="mx-2 my-1 h-px
|
|
524
|
-
<div className="flex items-center gap-3 rounded px-3 py-2 text-sm
|
|
525
|
-
<span className="text-
|
|
543
|
+
<div className="bg-fm-surface-secondary mx-2 my-1 h-px"></div>
|
|
544
|
+
<div className="text-fm-icon-active hover:bg-fm-surface-secondary flex items-center gap-3 rounded px-3 py-2 text-sm">
|
|
545
|
+
<span className="text-fm-icon-info">📊</span>
|
|
526
546
|
<span>Analytics</span>
|
|
527
547
|
</div>
|
|
528
|
-
<div className="flex items-center gap-3 rounded px-3 py-2 text-sm
|
|
529
|
-
<span className="text-
|
|
548
|
+
<div className="text-fm-icon-active hover:bg-fm-surface-secondary flex items-center gap-3 rounded px-3 py-2 text-sm">
|
|
549
|
+
<span className="text-fm-icon-positive">👥</span>
|
|
530
550
|
<span>Users</span>
|
|
531
551
|
</div>
|
|
532
|
-
<div className="flex items-center gap-3 rounded px-3 py-2 text-sm
|
|
533
|
-
<span className="text-
|
|
552
|
+
<div className="text-fm-icon-active hover:bg-fm-surface-secondary flex items-center gap-3 rounded px-3 py-2 text-sm">
|
|
553
|
+
<span className="text-fm-secondary-600">⚙️</span>
|
|
534
554
|
<span>Settings</span>
|
|
535
555
|
</div>
|
|
536
556
|
</div>
|
|
537
|
-
<div className="rounded-lg
|
|
538
|
-
<pre className="overflow-x-auto text-sm
|
|
557
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
558
|
+
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
539
559
|
{`// Navigation header with menu indicator
|
|
540
560
|
<div className="flex items-center justify-between px-3 py-2">
|
|
541
561
|
<div className="flex items-center gap-2 font-medium text-white">
|
|
@@ -550,52 +570,52 @@ function MyComponent() {
|
|
|
550
570
|
|
|
551
571
|
{/* Table Row Actions */}
|
|
552
572
|
<div className="!space-y-4">
|
|
553
|
-
<h3 className="text-lg font-semibold
|
|
573
|
+
<h3 className="text-fm-icon-info! text-lg font-semibold">
|
|
554
574
|
Table Row Actions
|
|
555
575
|
</h3>
|
|
556
576
|
<div className="!space-y-4">
|
|
557
|
-
<div className="overflow-hidden rounded-lg border
|
|
577
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary overflow-hidden rounded-lg border">
|
|
558
578
|
<table className="!my-0 w-full">
|
|
559
|
-
<thead className="bg-
|
|
579
|
+
<thead className="bg-fm-surface-secondary">
|
|
560
580
|
<tr>
|
|
561
|
-
<th className="px-4 py-3 text-left text-sm font-medium
|
|
581
|
+
<th className="text-fm-icon-active! px-4 py-3 text-left text-sm font-medium">
|
|
562
582
|
Name
|
|
563
583
|
</th>
|
|
564
|
-
<th className="px-4 py-3 text-left text-sm font-medium
|
|
584
|
+
<th className="text-fm-icon-active! px-4 py-3 text-left text-sm font-medium">
|
|
565
585
|
Status
|
|
566
586
|
</th>
|
|
567
|
-
<th className="px-4 py-3 text-left text-sm font-medium
|
|
587
|
+
<th className="text-fm-icon-active! px-4 py-3 text-left text-sm font-medium">
|
|
568
588
|
Actions
|
|
569
589
|
</th>
|
|
570
590
|
</tr>
|
|
571
591
|
</thead>
|
|
572
592
|
<tbody>
|
|
573
|
-
<tr className="border-
|
|
574
|
-
<td className="px-4 py-3 text-sm
|
|
593
|
+
<tr className="border-fm-divider-tertiary border-t">
|
|
594
|
+
<td className="text-fm-icon-active! px-4 py-3 text-sm">
|
|
575
595
|
Project Alpha
|
|
576
596
|
</td>
|
|
577
597
|
<td className="px-4 py-3 text-sm">
|
|
578
|
-
<span className="
|
|
598
|
+
<span className="bg-fm-icon-positive/20 text-fm-icon-positive rounded-full px-2 py-1 text-xs">
|
|
579
599
|
Active
|
|
580
600
|
</span>
|
|
581
601
|
</td>
|
|
582
602
|
<td className="px-4 py-3">
|
|
583
|
-
<button className="
|
|
603
|
+
<button className="text-fm-placeholder hover:bg-fm-surface-secondary hover:text-fm-icon-info rounded p-1 transition-colors">
|
|
584
604
|
<VerticalMenuIcon className="h-4 w-4" />
|
|
585
605
|
</button>
|
|
586
606
|
</td>
|
|
587
607
|
</tr>
|
|
588
|
-
<tr className="border-
|
|
589
|
-
<td className="px-4 py-3 text-sm
|
|
608
|
+
<tr className="border-fm-divider-tertiary bg-fm-surface-secondary! border-t">
|
|
609
|
+
<td className="text-fm-icon-active! px-4 py-3 text-sm">
|
|
590
610
|
Project Beta
|
|
591
611
|
</td>
|
|
592
612
|
<td className="px-4 py-3 text-sm">
|
|
593
|
-
<span className="
|
|
613
|
+
<span className="bg-fm-icon-warning/20 text-fm-icon-warning rounded-full px-2 py-1 text-xs">
|
|
594
614
|
Pending
|
|
595
615
|
</span>
|
|
596
616
|
</td>
|
|
597
617
|
<td className="px-4 py-3">
|
|
598
|
-
<button className="
|
|
618
|
+
<button className="text-fm-placeholder hover:bg-fm-surface-secondary hover:text-fm-icon-info rounded p-1 transition-colors">
|
|
599
619
|
<VerticalMenuIcon className="h-4 w-4" />
|
|
600
620
|
</button>
|
|
601
621
|
</td>
|
|
@@ -603,8 +623,8 @@ function MyComponent() {
|
|
|
603
623
|
</tbody>
|
|
604
624
|
</table>
|
|
605
625
|
</div>
|
|
606
|
-
<div className="rounded-lg
|
|
607
|
-
<pre className="overflow-x-auto text-sm
|
|
626
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
627
|
+
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
608
628
|
{`// Table row with actions menu
|
|
609
629
|
<tr className="border-t border-white/5">
|
|
610
630
|
<td className="px-4 py-3 text-sm text-white">Project Alpha</td>
|
|
@@ -626,65 +646,65 @@ function MyComponent() {
|
|
|
626
646
|
|
|
627
647
|
{/* Accessibility */}
|
|
628
648
|
<div className="!space-y-8">
|
|
629
|
-
<h2 className="text-center text-3xl font-bold
|
|
649
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
630
650
|
Accessibility Features
|
|
631
651
|
</h2>
|
|
632
652
|
<div className="grid grid-cols-1 gap-8 md:grid-cols-2">
|
|
633
|
-
<div className="!space-y-4 rounded-lg border
|
|
634
|
-
<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">
|
|
635
655
|
✅ Built-in Features
|
|
636
656
|
</h3>
|
|
637
|
-
<ul className="!space-y-2 text-sm
|
|
638
|
-
<li className="
|
|
657
|
+
<ul className="text-fm-secondary! !space-y-2 text-sm">
|
|
658
|
+
<li className="text-fm-secondary!">
|
|
639
659
|
Uses Radix UI AccessibleIcon wrapper
|
|
640
660
|
</li>
|
|
641
|
-
<li className="
|
|
661
|
+
<li className="text-fm-secondary!">
|
|
642
662
|
Provides screen reader label "Vertical Menu icon"
|
|
643
663
|
</li>
|
|
644
|
-
<li className="
|
|
664
|
+
<li className="text-fm-secondary!">
|
|
645
665
|
Supports keyboard navigation when interactive
|
|
646
666
|
</li>
|
|
647
|
-
<li className="
|
|
667
|
+
<li className="text-fm-secondary!">
|
|
648
668
|
Maintains proper color contrast ratios
|
|
649
669
|
</li>
|
|
650
|
-
<li className="
|
|
670
|
+
<li className="text-fm-secondary!">
|
|
651
671
|
Scales with user's font size preferences
|
|
652
672
|
</li>
|
|
653
673
|
</ul>
|
|
654
674
|
</div>
|
|
655
675
|
|
|
656
|
-
<div className="!space-y-4 rounded-lg border
|
|
657
|
-
<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-icon-info! text-lg font-semibold">
|
|
658
678
|
💡 Best Practices
|
|
659
679
|
</h3>
|
|
660
|
-
<ul className="!space-y-2 text-sm
|
|
661
|
-
<li className="
|
|
680
|
+
<ul className="text-fm-secondary !space-y-2 text-sm">
|
|
681
|
+
<li className="text-fm-secondary!">
|
|
662
682
|
Always provide focus states for interactive buttons
|
|
663
683
|
</li>
|
|
664
|
-
<li className="
|
|
684
|
+
<li className="text-fm-secondary!">
|
|
665
685
|
Use aria-expanded for dropdown states
|
|
666
686
|
</li>
|
|
667
|
-
<li className="
|
|
687
|
+
<li className="text-fm-secondary!">
|
|
668
688
|
Ensure sufficient click/touch target size (44x44px
|
|
669
689
|
minimum)
|
|
670
690
|
</li>
|
|
671
|
-
<li className="
|
|
691
|
+
<li className="text-fm-secondary!">
|
|
672
692
|
Add keyboard shortcuts for menu navigation
|
|
673
693
|
</li>
|
|
674
|
-
<li className="
|
|
694
|
+
<li className="text-fm-secondary!">
|
|
675
695
|
Consider reduced motion preferences
|
|
676
696
|
</li>
|
|
677
697
|
</ul>
|
|
678
698
|
</div>
|
|
679
699
|
</div>
|
|
680
700
|
|
|
681
|
-
<div className="rounded-lg border
|
|
682
|
-
<h3 className="mb-4 text-lg font-semibold
|
|
701
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
|
|
702
|
+
<h3 className="text-fm-secondary-600! mb-4 text-lg font-semibold">
|
|
683
703
|
Custom Accessibility Label
|
|
684
704
|
</h3>
|
|
685
705
|
<div className="grid grid-cols-1 gap-6 lg:grid-cols-2">
|
|
686
|
-
<div className="rounded-lg
|
|
687
|
-
<pre className="overflow-x-auto text-sm
|
|
706
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
707
|
+
<pre className="text-fm-icon-info! overflow-x-auto text-sm">
|
|
688
708
|
{`// Custom implementation with specific label
|
|
689
709
|
import { AccessibleIcon } from "@radix-ui/react-accessible-icon"
|
|
690
710
|
|
|
@@ -704,13 +724,13 @@ function CustomMenuIcon({ label = "Menu options", ...props }) {
|
|
|
704
724
|
</pre>
|
|
705
725
|
</div>
|
|
706
726
|
<div className="!space-y-4">
|
|
707
|
-
<p className="text-
|
|
727
|
+
<p className="text-fm-secondary! text-sm">
|
|
708
728
|
For specific contexts, you can wrap the VerticalMenuIcon
|
|
709
729
|
with a custom AccessibleIcon component that provides
|
|
710
730
|
more descriptive labels.
|
|
711
731
|
</p>
|
|
712
|
-
<div className="
|
|
713
|
-
<div className="flex items-center gap-2 text-sm
|
|
732
|
+
<div className="border-fm-icon-info/20 bg-fm-icon-info/10 rounded-lg border p-4">
|
|
733
|
+
<div className="text-fm-icon-info flex items-center gap-2 text-sm">
|
|
714
734
|
<VerticalMenuIcon className="h-4 w-4" />
|
|
715
735
|
<span>
|
|
716
736
|
This approach gives screen readers more context
|
|
@@ -724,52 +744,58 @@ function CustomMenuIcon({ label = "Menu options", ...props }) {
|
|
|
724
744
|
|
|
725
745
|
{/* Related Icons */}
|
|
726
746
|
<div className="!space-y-8">
|
|
727
|
-
<h2 className="text-center text-3xl font-bold
|
|
747
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
728
748
|
Related Icons
|
|
729
749
|
</h2>
|
|
730
750
|
<div className="grid grid-cols-2 gap-6 md:grid-cols-4">
|
|
731
|
-
<div className="!space-y-3 rounded-lg border
|
|
732
|
-
<div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg
|
|
733
|
-
<span className="
|
|
751
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
|
|
752
|
+
<div className="bg-fm-icon-info/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
|
|
753
|
+
<span className="text-fm-icon-active! !text-2xl">☰</span>
|
|
734
754
|
</div>
|
|
735
755
|
<div>
|
|
736
|
-
<div className="font-medium
|
|
756
|
+
<div className="text-fm-icon-active font-medium">
|
|
737
757
|
HamburgerIcon
|
|
738
758
|
</div>
|
|
739
|
-
<div className="text-
|
|
759
|
+
<div className="text-fm-tertiary text-xs">
|
|
740
760
|
Main navigation
|
|
741
761
|
</div>
|
|
742
762
|
</div>
|
|
743
763
|
</div>
|
|
744
|
-
<div className="!space-y-3 rounded-lg border
|
|
745
|
-
<div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg
|
|
746
|
-
<span className="
|
|
764
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
|
|
765
|
+
<div className="bg-fm-icon-positive/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
|
|
766
|
+
<span className="text-fm-icon-active! !text-2xl">⋯</span>
|
|
747
767
|
</div>
|
|
748
768
|
<div>
|
|
749
|
-
<div className="font-medium
|
|
769
|
+
<div className="text-fm-icon-active font-medium">
|
|
750
770
|
HorizontalMenuIcon
|
|
751
771
|
</div>
|
|
752
|
-
<div className="text-
|
|
772
|
+
<div className="text-fm-tertiary text-xs">
|
|
753
773
|
Horizontal menu
|
|
754
774
|
</div>
|
|
755
775
|
</div>
|
|
756
776
|
</div>
|
|
757
|
-
<div className="!space-y-3 rounded-lg border
|
|
758
|
-
<div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg
|
|
759
|
-
<span className="
|
|
777
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
|
|
778
|
+
<div className="bg-fm-icon-warning/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
|
|
779
|
+
<span className="text-fm-icon-active! !text-2xl">⚙️</span>
|
|
760
780
|
</div>
|
|
761
781
|
<div>
|
|
762
|
-
<div className="font-medium
|
|
763
|
-
|
|
782
|
+
<div className="text-fm-icon-active font-medium">
|
|
783
|
+
SettingsIcon
|
|
784
|
+
</div>
|
|
785
|
+
<div className="text-fm-tertiary text-xs">
|
|
786
|
+
Configuration
|
|
787
|
+
</div>
|
|
764
788
|
</div>
|
|
765
789
|
</div>
|
|
766
|
-
<div className="!space-y-3 rounded-lg border
|
|
767
|
-
<div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg
|
|
768
|
-
<span className="
|
|
790
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
|
|
791
|
+
<div className="bg-fm-secondary-500/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
|
|
792
|
+
<span className="text-fm-icon-active! !text-2xl">▼</span>
|
|
769
793
|
</div>
|
|
770
794
|
<div>
|
|
771
|
-
<div className="font-medium
|
|
772
|
-
|
|
795
|
+
<div className="text-fm-icon-active font-medium">
|
|
796
|
+
DropdownIcon
|
|
797
|
+
</div>
|
|
798
|
+
<div className="text-fm-tertiary text-xs">
|
|
773
799
|
Dropdown states
|
|
774
800
|
</div>
|
|
775
801
|
</div>
|
|
@@ -779,14 +805,14 @@ function CustomMenuIcon({ label = "Menu options", ...props }) {
|
|
|
779
805
|
</div>
|
|
780
806
|
|
|
781
807
|
{/* Footer */}
|
|
782
|
-
<div className="border-
|
|
808
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary border-t backdrop-blur-xl">
|
|
783
809
|
<div className="!mx-auto max-w-7xl px-6 py-8">
|
|
784
810
|
<div className="!space-y-4 text-center">
|
|
785
|
-
<p className="
|
|
811
|
+
<p className="text-fm-tertiary!">
|
|
786
812
|
VerticalMenuIcon is part of the Aural UI icon library, built
|
|
787
813
|
with accessibility and consistency in mind.
|
|
788
814
|
</p>
|
|
789
|
-
<p className="text-
|
|
815
|
+
<p className="text-fm-placeholder! text-sm">
|
|
790
816
|
All icons use Radix UI's AccessibleIcon for screen reader
|
|
791
817
|
compatibility and follow WCAG guidelines.
|
|
792
818
|
</p>
|
|
@@ -831,8 +857,8 @@ const storyParameters = {
|
|
|
831
857
|
backgrounds: {
|
|
832
858
|
default: "dark",
|
|
833
859
|
values: [
|
|
834
|
-
{ name: "dark", value: "
|
|
835
|
-
{ name: "darker", value: "
|
|
860
|
+
{ name: "dark", value: "var(--color-fm-surface-primary)" },
|
|
861
|
+
{ name: "darker", value: "var(--color-fm-neutral-0)" },
|
|
836
862
|
],
|
|
837
863
|
},
|
|
838
864
|
}
|
|
@@ -841,12 +867,12 @@ export const Default: Story = {
|
|
|
841
867
|
args: {
|
|
842
868
|
width: 24,
|
|
843
869
|
height: 24,
|
|
844
|
-
className: "text-
|
|
870
|
+
className: "text-fm-icon-info",
|
|
845
871
|
withAccessibility: true,
|
|
846
872
|
},
|
|
847
873
|
parameters: storyParameters,
|
|
848
874
|
render: (args) => (
|
|
849
|
-
<div className="flex h-32 min-h-dvh items-center justify-center rounded-lg bg-
|
|
875
|
+
<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">
|
|
850
876
|
<VerticalMenuIcon {...args} />
|
|
851
877
|
</div>
|
|
852
878
|
),
|
|
@@ -863,30 +889,30 @@ export const SizeVariations: Story = {
|
|
|
863
889
|
},
|
|
864
890
|
},
|
|
865
891
|
render: () => (
|
|
866
|
-
<div className="flex h-64 min-h-dvh items-center justify-center gap-8 rounded-lg bg-
|
|
892
|
+
<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">
|
|
867
893
|
<div className="text-center">
|
|
868
|
-
<VerticalMenuIcon className="!mx-auto mb-2 h-3 w-3
|
|
869
|
-
<span className="text-
|
|
894
|
+
<VerticalMenuIcon className="text-fm-icon-info !mx-auto mb-2 h-3 w-3" />
|
|
895
|
+
<span className="text-fm-tertiary text-xs">12px</span>
|
|
870
896
|
</div>
|
|
871
897
|
<div className="text-center">
|
|
872
|
-
<VerticalMenuIcon className="!mx-auto mb-2 h-4 w-4
|
|
873
|
-
<span className="text-
|
|
898
|
+
<VerticalMenuIcon className="text-fm-icon-info !mx-auto mb-2 h-4 w-4" />
|
|
899
|
+
<span className="text-fm-tertiary text-xs">16px</span>
|
|
874
900
|
</div>
|
|
875
901
|
<div className="text-center">
|
|
876
|
-
<VerticalMenuIcon className="!mx-auto mb-2 h-5 w-5
|
|
877
|
-
<span className="text-
|
|
902
|
+
<VerticalMenuIcon className="text-fm-icon-info !mx-auto mb-2 h-5 w-5" />
|
|
903
|
+
<span className="text-fm-tertiary text-xs">20px</span>
|
|
878
904
|
</div>
|
|
879
905
|
<div className="text-center">
|
|
880
|
-
<VerticalMenuIcon className="!mx-auto mb-2 h-6 w-6
|
|
881
|
-
<span className="text-
|
|
906
|
+
<VerticalMenuIcon className="text-fm-icon-info !mx-auto mb-2 h-6 w-6" />
|
|
907
|
+
<span className="text-fm-tertiary text-xs">24px</span>
|
|
882
908
|
</div>
|
|
883
909
|
<div className="text-center">
|
|
884
|
-
<VerticalMenuIcon className="!mx-auto mb-2 h-8 w-8
|
|
885
|
-
<span className="text-
|
|
910
|
+
<VerticalMenuIcon className="text-fm-icon-info !mx-auto mb-2 h-8 w-8" />
|
|
911
|
+
<span className="text-fm-tertiary text-xs">32px</span>
|
|
886
912
|
</div>
|
|
887
913
|
<div className="text-center">
|
|
888
|
-
<VerticalMenuIcon className="!mx-auto mb-2 h-12 w-12
|
|
889
|
-
<span className="text-
|
|
914
|
+
<VerticalMenuIcon className="text-fm-icon-info !mx-auto mb-2 h-12 w-12" />
|
|
915
|
+
<span className="text-fm-tertiary text-xs">48px</span>
|
|
890
916
|
</div>
|
|
891
917
|
</div>
|
|
892
918
|
),
|
|
@@ -902,34 +928,36 @@ export const ColorVariations: Story = {
|
|
|
902
928
|
},
|
|
903
929
|
},
|
|
904
930
|
render: () => (
|
|
905
|
-
<div className="grid min-h-dvh grid-cols-2 items-center justify-center gap-6 rounded-lg bg-
|
|
931
|
+
<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">
|
|
906
932
|
<div className="text-center">
|
|
907
|
-
<div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border
|
|
908
|
-
<VerticalMenuIcon className="h-8 w-8
|
|
933
|
+
<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">
|
|
934
|
+
<VerticalMenuIcon className="text-fm-placeholder h-8 w-8" />
|
|
909
935
|
</div>
|
|
910
|
-
<div className="text-sm font-medium
|
|
911
|
-
<div className="text-
|
|
936
|
+
<div className="text-fm-icon-active text-sm font-medium">Default</div>
|
|
937
|
+
<div className="text-fm-placeholder text-xs">text-fm-placeholder</div>
|
|
912
938
|
</div>
|
|
913
939
|
<div className="text-center">
|
|
914
|
-
<div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border
|
|
915
|
-
<VerticalMenuIcon className="h-8 w-8
|
|
940
|
+
<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">
|
|
941
|
+
<VerticalMenuIcon className="text-fm-icon-info h-8 w-8" />
|
|
916
942
|
</div>
|
|
917
|
-
<div className="text-sm font-medium
|
|
918
|
-
<div className="text-
|
|
943
|
+
<div className="text-fm-icon-active text-sm font-medium">Primary</div>
|
|
944
|
+
<div className="text-fm-icon-info text-xs">text-fm-icon-info</div>
|
|
919
945
|
</div>
|
|
920
946
|
<div className="text-center">
|
|
921
|
-
<div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border
|
|
922
|
-
<VerticalMenuIcon className="h-8 w-8
|
|
947
|
+
<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">
|
|
948
|
+
<VerticalMenuIcon className="text-fm-secondary-600 h-8 w-8" />
|
|
949
|
+
</div>
|
|
950
|
+
<div className="text-fm-icon-active text-sm font-medium">Secondary</div>
|
|
951
|
+
<div className="text-fm-secondary-600 text-xs">
|
|
952
|
+
text-fm-secondary-600
|
|
923
953
|
</div>
|
|
924
|
-
<div className="text-sm font-medium text-white">Secondary</div>
|
|
925
|
-
<div className="text-xs text-purple-400">text-purple-400</div>
|
|
926
954
|
</div>
|
|
927
955
|
<div className="text-center">
|
|
928
|
-
<div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border
|
|
929
|
-
<VerticalMenuIcon className="h-8 w-8
|
|
956
|
+
<div className="border-fm-divider-primary bg-fm-surface-secondary !mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border">
|
|
957
|
+
<VerticalMenuIcon className="text-fm-placeholder h-8 w-8" />
|
|
930
958
|
</div>
|
|
931
|
-
<div className="text-sm font-medium
|
|
932
|
-
<div className="text-
|
|
959
|
+
<div className="text-fm-icon-active text-sm font-medium">Disabled</div>
|
|
960
|
+
<div className="text-fm-placeholder text-xs">text-fm-placeholder</div>
|
|
933
961
|
</div>
|
|
934
962
|
</div>
|
|
935
963
|
),
|
|
@@ -946,20 +974,24 @@ export const UsageExamples: Story = {
|
|
|
946
974
|
},
|
|
947
975
|
},
|
|
948
976
|
render: () => (
|
|
949
|
-
<div className="min-h-dvh !space-y-8 rounded-lg bg-
|
|
977
|
+
<div className="from-fm-surface-primary to-fm-surface-secondary min-h-dvh !space-y-8 rounded-lg bg-linear-to-br p-8">
|
|
950
978
|
{/* Dropdown Menu */}
|
|
951
979
|
<div className="!space-y-2">
|
|
952
|
-
<h3 className="text-sm font-medium
|
|
953
|
-
|
|
980
|
+
<h3 className="text-fm-icon-active text-sm font-medium">
|
|
981
|
+
Dropdown Menu
|
|
982
|
+
</h3>
|
|
983
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-4">
|
|
954
984
|
<div className="flex items-center justify-between">
|
|
955
985
|
<div className="flex items-center gap-3">
|
|
956
|
-
<div className="h-10 w-10 rounded-lg bg-
|
|
986
|
+
<div className="from-fm-icon-info to-fm-secondary-600 h-10 w-10 rounded-lg bg-linear-to-br"></div>
|
|
957
987
|
<div>
|
|
958
|
-
<div className="text-sm font-medium
|
|
959
|
-
|
|
988
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
989
|
+
John Smith
|
|
990
|
+
</div>
|
|
991
|
+
<div className="text-fm-tertiary text-xs">john@example.com</div>
|
|
960
992
|
</div>
|
|
961
993
|
</div>
|
|
962
|
-
<button className="
|
|
994
|
+
<button className="text-fm-placeholder hover:bg-fm-surface-secondary hover:text-fm-icon-info rounded-lg p-2 transition-colors">
|
|
963
995
|
<VerticalMenuIcon className="h-5 w-5" />
|
|
964
996
|
</button>
|
|
965
997
|
</div>
|
|
@@ -968,20 +1000,22 @@ export const UsageExamples: Story = {
|
|
|
968
1000
|
|
|
969
1001
|
{/* Card Actions */}
|
|
970
1002
|
<div className="!space-y-2">
|
|
971
|
-
<h3 className="text-sm font-medium
|
|
972
|
-
|
|
1003
|
+
<h3 className="text-fm-icon-active text-sm font-medium">
|
|
1004
|
+
Card Actions
|
|
1005
|
+
</h3>
|
|
1006
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
|
|
973
1007
|
<div className="flex items-start justify-between">
|
|
974
1008
|
<div className="!space-y-2">
|
|
975
|
-
<h4 className="font-medium
|
|
976
|
-
<p className="text-
|
|
1009
|
+
<h4 className="text-fm-icon-active font-medium">Project Alpha</h4>
|
|
1010
|
+
<p className="text-fm-secondary text-sm">
|
|
977
1011
|
A new approach to user interface design that focuses on
|
|
978
1012
|
accessibility.
|
|
979
1013
|
</p>
|
|
980
|
-
<div className="flex items-center gap-2 text-xs
|
|
1014
|
+
<div className="text-fm-tertiary flex items-center gap-2 text-xs">
|
|
981
1015
|
<span>Updated 2 hours ago</span>
|
|
982
1016
|
</div>
|
|
983
1017
|
</div>
|
|
984
|
-
<button className="
|
|
1018
|
+
<button className="text-fm-placeholder hover:bg-fm-surface-secondary hover:text-fm-icon-info rounded-lg p-2 transition-colors">
|
|
985
1019
|
<VerticalMenuIcon className="h-4 w-4" />
|
|
986
1020
|
</button>
|
|
987
1021
|
</div>
|
|
@@ -990,32 +1024,36 @@ export const UsageExamples: Story = {
|
|
|
990
1024
|
|
|
991
1025
|
{/* Table Row */}
|
|
992
1026
|
<div className="!space-y-2">
|
|
993
|
-
<h3 className="text-sm font-medium
|
|
994
|
-
|
|
1027
|
+
<h3 className="text-fm-icon-active text-sm font-medium">
|
|
1028
|
+
Table Row Actions
|
|
1029
|
+
</h3>
|
|
1030
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary overflow-hidden rounded-lg border">
|
|
995
1031
|
<table className="w-full">
|
|
996
|
-
<thead className="bg-
|
|
1032
|
+
<thead className="bg-fm-surface-secondary">
|
|
997
1033
|
<tr>
|
|
998
|
-
<th className="px-4 py-3 text-left text-sm font-medium
|
|
1034
|
+
<th className="text-fm-icon-active px-4 py-3 text-left text-sm font-medium">
|
|
999
1035
|
Name
|
|
1000
1036
|
</th>
|
|
1001
|
-
<th className="px-4 py-3 text-left text-sm font-medium
|
|
1037
|
+
<th className="text-fm-icon-active px-4 py-3 text-left text-sm font-medium">
|
|
1002
1038
|
Status
|
|
1003
1039
|
</th>
|
|
1004
|
-
<th className="px-4 py-3 text-left text-sm font-medium
|
|
1040
|
+
<th className="text-fm-icon-active px-4 py-3 text-left text-sm font-medium">
|
|
1005
1041
|
Actions
|
|
1006
1042
|
</th>
|
|
1007
1043
|
</tr>
|
|
1008
1044
|
</thead>
|
|
1009
1045
|
<tbody>
|
|
1010
|
-
<tr className="border-
|
|
1011
|
-
<td className="px-4 py-3 text-sm
|
|
1046
|
+
<tr className="border-fm-divider-tertiary border-t">
|
|
1047
|
+
<td className="text-fm-icon-active px-4 py-3 text-sm">
|
|
1048
|
+
Project Alpha
|
|
1049
|
+
</td>
|
|
1012
1050
|
<td className="px-4 py-3 text-sm">
|
|
1013
|
-
<span className="
|
|
1051
|
+
<span className="bg-fm-icon-positive/20 text-fm-icon-positive rounded-full px-2 py-1 text-xs">
|
|
1014
1052
|
Active
|
|
1015
1053
|
</span>
|
|
1016
1054
|
</td>
|
|
1017
1055
|
<td className="px-4 py-3">
|
|
1018
|
-
<button className="
|
|
1056
|
+
<button className="text-fm-placeholder hover:bg-fm-surface-secondary hover:text-fm-icon-info rounded p-1 transition-colors">
|
|
1019
1057
|
<VerticalMenuIcon className="h-4 w-4" />
|
|
1020
1058
|
</button>
|
|
1021
1059
|
</td>
|
|
@@ -1041,11 +1079,11 @@ export const Playground: Story = {
|
|
|
1041
1079
|
args: {
|
|
1042
1080
|
width: 32,
|
|
1043
1081
|
height: 32,
|
|
1044
|
-
className: "text-
|
|
1082
|
+
className: "text-fm-icon-info",
|
|
1045
1083
|
},
|
|
1046
1084
|
render: (args) => (
|
|
1047
|
-
<div className="flex h-64 min-h-dvh items-center justify-center rounded-lg bg-
|
|
1048
|
-
<div className="rounded-lg border
|
|
1085
|
+
<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">
|
|
1086
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-8">
|
|
1049
1087
|
<VerticalMenuIcon {...args} />
|
|
1050
1088
|
</div>
|
|
1051
1089
|
</div>
|