aural-ui 3.0.6 → 4.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/aspect-ratio/AspectRatio.stories.tsx +271 -242
- package/dist/components/avatar/Avatar.stories.tsx +84 -70
- package/dist/components/button/Button.stories.tsx +7 -7
- package/dist/components/button/index.tsx +7 -7
- package/dist/components/card/Card.stories.tsx +3 -3
- package/dist/components/char-count/CharCount.stories.tsx +9 -9
- package/dist/components/circular-loader/CircularLoader.stories.tsx +109 -93
- package/dist/components/clamp-lines/ClampLines.stories.tsx +25 -0
- package/dist/components/clamp-lines/index.tsx +6 -1
- package/dist/components/collapsible/Collapsible.stories.tsx +1 -1
- package/dist/components/command/Command.stories.tsx +52 -38
- package/dist/components/dialog/Dialog.stories.tsx +89 -84
- package/dist/components/divider/Divider.stories.tsx +86 -60
- package/dist/components/dot-loader/DotLoader.stories.tsx +12 -12
- package/dist/components/drawer/Drawer.stories.tsx +74 -44
- package/dist/components/drawer/index.tsx +3 -3
- package/dist/components/dropdown/Dropdown.stories.tsx +42 -32
- package/dist/components/helper-text/HelperText.stories.tsx +2 -2
- package/dist/components/hover-card/HoverCard.stories.tsx +211 -178
- package/dist/components/input/Input.stories.tsx +2 -2
- package/dist/components/input/index.tsx +2 -0
- package/dist/components/label/Label.stories.tsx +10 -10
- package/dist/components/list/List.stories.tsx +58 -44
- package/dist/components/marquee/Marquee.stories.tsx +131 -113
- package/dist/components/otp-inputs/OtpInputs.stories.tsx +47 -35
- package/dist/components/overlay/Overlay.stories.tsx +98 -92
- package/dist/components/overlay/index.tsx +4 -4
- package/dist/components/popover/Popover.stories.tsx +132 -106
- package/dist/components/radio/Radio.stories.tsx +2 -2
- package/dist/components/resizable/Resizable.stories.tsx +186 -138
- package/dist/components/scroll-area/ScrollArea.stories.tsx +174 -120
- package/dist/components/search/Search.stories.tsx +81 -59
- package/dist/components/select/Select.stories.tsx +3 -1
- package/dist/components/sheet/Sheet.stories.tsx +68 -54
- package/dist/components/slider/Slider.stories.tsx +71 -47
- package/dist/components/stepper/Stepper.stories.tsx +16 -16
- package/dist/components/switch/Switch.stories.tsx +12 -12
- package/dist/components/table/Table.stories.tsx +8 -6
- package/dist/components/tabs/Tabs.stories.tsx +324 -268
- package/dist/components/textarea/TextArea.stories.tsx +1 -1
- package/dist/components/thumbnail-tags/ThumbnailTags.stories.tsx +16 -10
- package/dist/components/toast/Toast.stories.tsx +51 -45
- package/dist/components/toggle/Toggle.stories.tsx +111 -89
- package/dist/components/tooltip/Tooltip.stories.tsx +160 -144
- package/dist/icons/Icons.stories.tsx +2 -2
- package/dist/icons/ai-avatar-icon/AiAvatarIcon.stories.tsx +287 -237
- package/dist/icons/alert-icon/AlertIcon.stories.tsx +290 -248
- package/dist/icons/all-icons.tsx +97 -81
- package/dist/icons/angle-down-icon/AngleDownIcon.stories.tsx +312 -270
- package/dist/icons/apple-logo-icon/AppleLogoIcon.stories.tsx +294 -244
- package/dist/icons/arrow-box-left-icon/ArrowBoxLeftIcon.stories.tsx +309 -279
- package/dist/icons/arrow-corner-up-left-icon/ArrowCornerUpLeftIcon.stories.tsx +294 -258
- package/dist/icons/arrow-corner-up-right-icon/ArrowCornerUpRightIcon.stories.tsx +289 -255
- package/dist/icons/arrow-left-icon/ArrowLeftIcon.stories.tsx +288 -256
- package/dist/icons/arrow-right-icon/ArrowRightIcon.stories.tsx +322 -288
- package/dist/icons/arrow-right-up-icon/ArrowRightUpIcon.stories.tsx +340 -296
- package/dist/icons/art-board-icon/ArtBoardIcon.stories.tsx +197 -177
- package/dist/icons/audio-bar-icon/AudioBarIcon.stories.tsx +390 -328
- package/dist/icons/backward-ten-seconds-icon/BackwardTenSecondsIcon.stories.tsx +313 -277
- package/dist/icons/bubble-check-icon/BubbleCheckIcon.stories.tsx +367 -309
- package/dist/icons/bubble-crossed-icon/BubbleCrossedIcon.stories.tsx +356 -308
- package/dist/icons/bubble-sparkle-icon/BubbleSparkleIcon.stories.tsx +280 -234
- package/dist/icons/camera-icon/CameraIcon.stories.tsx +370 -326
- package/dist/icons/capital-a-letter-icon/CapitalALetterIcon.stories.tsx +300 -256
- package/dist/icons/chevron-double-left-icon/ChevronDoubleLeftIcon.stories.tsx +298 -262
- package/dist/icons/chevron-double-right-icon/ChevronDoubleRightIcon.stories.tsx +294 -260
- package/dist/icons/chevron-down-icon/ChevronDownIcon.stories.tsx +291 -259
- package/dist/icons/chevron-left-icon/ChevronLeftIcon.stories.tsx +286 -256
- package/dist/icons/chevron-right-icon/ChevronRightIcon.stories.tsx +282 -256
- package/dist/icons/chevron-up-icon/ChevronUpIcon.stories.tsx +292 -256
- package/dist/icons/circle-tick-icon/CircleTickIcon.stories.tsx +338 -290
- package/dist/icons/circular-play-icon/CircularPlayIcon.stories.tsx +167 -148
- package/dist/icons/coin-icon/CoinIcon.stories.tsx +342 -296
- package/dist/icons/coin-toons-icon/CoinToonsIcon.stories.tsx +342 -296
- package/dist/icons/column-wide-add-icon/ColumnWideAddIcon.stories.tsx +280 -238
- package/dist/icons/command-icon/CommandIcon.stories.tsx +328 -280
- package/dist/icons/copy-icon/CopyIcon.stories.tsx +294 -256
- package/dist/icons/cross-circle-icon/CrossCircleIcon.stories.tsx +285 -235
- package/dist/icons/cross-icon/CrossIcon.stories.tsx +308 -266
- package/dist/icons/download-icon/DownloadIcon.stories.tsx +271 -231
- package/dist/icons/edit-big-icon/EditBigIcon.stories.tsx +330 -278
- package/dist/icons/email-icon/EmailIcon.stories.tsx +303 -257
- package/dist/icons/expand-icon/ExpandIcon.stories.tsx +324 -286
- package/dist/icons/eye-close-icon/EyeCloseIcon.stories.tsx +317 -271
- package/dist/icons/eye-open-icon/EyeOpenIcon.stories.tsx +320 -272
- package/dist/icons/feature-shine-icon/FeatureShineIcon.stories.tsx +322 -280
- package/dist/icons/file-chart-icon/FileChartIcon.stories.tsx +315 -277
- package/dist/icons/file-text-icon/FileTextIcon.stories.tsx +199 -177
- package/dist/icons/filter-bar-row-icon/FilterBarRowIcon.stories.tsx +304 -264
- package/dist/icons/forward-ten-seconds-icon/ForwardTenSecondsIcon.stories.tsx +311 -277
- package/dist/icons/git-branch-icon/GitBranchIcon.stories.tsx +327 -287
- package/dist/icons/git-fork-icon/GitForkIcon.stories.tsx +314 -278
- package/dist/icons/globe-icon/GlobeIcon.stories.tsx +113 -98
- package/dist/icons/google-logo-icon/GoogleLogoIcon.stories.tsx +274 -226
- package/dist/icons/grip-vertical-icon/GripVerticalIcon.stories.tsx +349 -303
- package/dist/icons/head-icon/HeadIcon.stories.tsx +286 -246
- package/dist/icons/heart-icon/HeartIcon.stories.tsx +312 -268
- package/dist/icons/image-avatar-sparkle-icon/ImageAvatarSparkleIcon.stories.tsx +246 -210
- package/dist/icons/image-icon/ImageIcon.stories.tsx +330 -284
- package/dist/icons/import-folder-icon/ImportFolderIcon.stories.tsx +326 -282
- package/dist/icons/import-left-arrow-folder-icon/ImportLeftArrowFolderIcon.stories.tsx +330 -294
- package/dist/icons/indian-flag-icon/IndianFlagIcon.stories.tsx +288 -234
- package/dist/icons/instagram-icon/InstagramIcon.stories.tsx +386 -330
- package/dist/icons/layout-column-icon/LayoutColumnIcon.stories.tsx +305 -263
- package/dist/icons/layout-left-icon/LayoutLeftIcon.stories.tsx +295 -259
- package/dist/icons/layout-right-icon/LayoutRightIcon.stories.tsx +296 -256
- package/dist/icons/light-bulb-simple-icon/LightBulbSimpleIcon.stories.tsx +322 -282
- package/dist/icons/linked-in-icon/LinkedInIcon.stories.tsx +399 -359
- package/dist/icons/magic-book-icon/MagicBookIcon.stories.tsx +314 -272
- package/dist/icons/magic-edit-icon/MagicEditIcon.stories.tsx +238 -206
- package/dist/icons/maintenance-icon/MaintenanceIcon.stories.tsx +322 -276
- package/dist/icons/message-icon/MessageIcon.stories.tsx +192 -170
- package/dist/icons/minimize-icon/MinimizeIcon.stories.tsx +348 -304
- package/dist/icons/moon-icon/MoonIcon.stories.tsx +191 -167
- package/dist/icons/move-horizontal-icon/MoveHorizontalIcon.stories.tsx +380 -326
- package/dist/icons/move-vertical-icon/MoveVerticalIcon.stories.tsx +345 -291
- package/dist/icons/musical-note-icon/MusicalNoteIcon.stories.tsx +310 -266
- package/dist/icons/notepad-icon/NotepadIcon.stories.tsx +311 -271
- package/dist/icons/notes-icon/NotesIcon.stories.tsx +311 -271
- package/dist/icons/page-search-icon/PageSearchIcon.stories.tsx +309 -271
- package/dist/icons/page-text-icon/PageTextIcon.stories.tsx +248 -210
- package/dist/icons/paint-roll-icon/PaintRollIcon.stories.tsx +310 -262
- package/dist/icons/paper-plane-icon/PaperPlaneIcon.stories.tsx +274 -236
- package/dist/icons/pause-icon/PauseIcon.stories.tsx +324 -280
- package/dist/icons/pencil-icon/PencilIcon.stories.tsx +323 -281
- package/dist/icons/phone-icon/PhoneIcon.stories.tsx +288 -240
- package/dist/icons/plus-icon/PlusIcon.stories.tsx +315 -273
- package/dist/icons/pocket-studio-icon/PocketStudioIcon.stories.tsx +278 -234
- package/dist/icons/scroll-down-icon/ScrollDownIcon.stories.tsx +161 -151
- package/dist/icons/search-icon/SearchIcon.stories.tsx +324 -284
- package/dist/icons/setting-icon/SettingIcon.stories.tsx +306 -264
- package/dist/icons/share-icon/ShareIcon.stories.tsx +314 -272
- package/dist/icons/shield-icon/ShieldIcon.stories.tsx +281 -235
- package/dist/icons/site-logo-icon/SiteLogoIcon.stories.tsx +309 -250
- package/dist/icons/skip-backward-icon/SkipBackwardIcon.stories.tsx +317 -279
- package/dist/icons/skip-forward-icon/SkipForwardIcon.stories.tsx +315 -279
- package/dist/icons/sparkles-soft-icon/SparklesSoftIcon.stories.tsx +299 -253
- package/dist/icons/spinner-gradient-icon/SpinnerGradientIcon.stories.tsx +185 -169
- package/dist/icons/spinner-gradient-icon/index.tsx +6 -1
- package/dist/icons/spinner-solid-icon/SpinnerSolidIcon.stories.tsx +192 -168
- package/dist/icons/spinner-solid-icon/index.tsx +6 -1
- package/dist/icons/spinner-solid-neutral-icon/SpinnerSolidINeutralcon.stories.tsx +212 -178
- package/dist/icons/spinner-solid-neutral-icon/index.tsx +1 -1
- package/dist/icons/star-icon/StarIcon.stories.tsx +290 -244
- package/dist/icons/store-coin-icon/StoreCoinIcon.stories.tsx +286 -234
- package/dist/icons/suggestion-icon/SuggestionIcon.stories.tsx +272 -230
- package/dist/icons/sun-icon/SunIcon.stories.tsx +262 -226
- package/dist/icons/text-color-icon/TextColorIcon.stories.tsx +321 -279
- package/dist/icons/text-indicator-icon/TextIndicatorIcon.stories.tsx +332 -282
- package/dist/icons/threads-icon/ThreadsIcon.stories.tsx +394 -342
- package/dist/icons/tick-circle-icon/TickCircleIcon.stories.tsx +338 -290
- package/dist/icons/tick-icon/TickIcon.stories.tsx +364 -315
- package/dist/icons/trash-icon/TrashIcon.stories.tsx +293 -253
- package/dist/icons/twitter-x-icon/TwitterXIcon.stories.tsx +396 -338
- package/dist/icons/upload-icon/UploadIcon.stories.tsx +291 -247
- package/dist/icons/vertical-menu-icon/VerticalMenuIcon.stories.tsx +309 -271
- package/dist/icons/video-play-list-icon/VideoPlaylistIcon.stories.tsx +336 -290
- package/dist/icons/voice-playing-icon/VoicePlayingIcon.stories.tsx +382 -334
- package/dist/icons/volume-full-icon/VolumeFullIcon.stories.tsx +349 -305
- package/dist/icons/volume-half-icon/VolumeHalfIcon.stories.tsx +327 -295
- package/dist/icons/volume-off-icon/VolumeOffIcon.stories.tsx +336 -296
- package/dist/icons/warning-icon/WarningIcon.stories.tsx +314 -274
- package/dist/icons/youtube-icon/YoutubeIcon.stories.tsx +311 -261
- package/dist/index.cjs +84 -84
- package/dist/index.js +84 -84
- package/dist/styles/aural-all-theme.css +1222 -0
- package/dist/styles/{aural-theme.css → aural-dark-theme.css} +15 -3
- package/dist/styles/aural-light-theme.css +1047 -0
- package/package.json +1 -1
|
@@ -11,9 +11,9 @@ const meta: Meta<typeof EyeCloseIcon> = {
|
|
|
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 EyeCloseIcon> = {
|
|
|
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
|
-
<EyeCloseIcon 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
|
+
<EyeCloseIcon className="text-fm-tertiary h-12 w-12" />
|
|
91
91
|
</div>
|
|
92
92
|
<h1 className="!text-fm-primary text-5xl font-bold">
|
|
93
93
|
EyeCloseIcon
|
|
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 visibility toggle icon for hiding content, password
|
|
97
97
|
fields, and privacy controls. Features a crossed-out eye
|
|
98
98
|
design that clearly indicates hidden or private state.
|
|
@@ -104,28 +104,30 @@ const meta: Meta<typeof EyeCloseIcon> = {
|
|
|
104
104
|
{/* Stats */}
|
|
105
105
|
<div className="flex items-center justify-center gap-8 pt-8">
|
|
106
106
|
<div className="text-center">
|
|
107
|
-
<div className="text-3xl font-bold
|
|
107
|
+
<div className="text-fm-secondary text-3xl font-bold">
|
|
108
108
|
Private
|
|
109
109
|
</div>
|
|
110
|
-
<div className="text-
|
|
110
|
+
<div className="text-fm-tertiary text-sm">
|
|
111
111
|
Content hidden
|
|
112
112
|
</div>
|
|
113
113
|
</div>
|
|
114
|
-
<div className="h-8 w-px
|
|
114
|
+
<div className="bg-fm-divider-primary h-8 w-px" />
|
|
115
115
|
<div className="text-center">
|
|
116
|
-
<div className="text-3xl font-bold
|
|
116
|
+
<div className="text-fm-secondary text-3xl font-bold">
|
|
117
117
|
Secure
|
|
118
118
|
</div>
|
|
119
|
-
<div className="text-
|
|
119
|
+
<div className="text-fm-tertiary text-sm">
|
|
120
120
|
Privacy focused
|
|
121
121
|
</div>
|
|
122
122
|
</div>
|
|
123
|
-
<div className="h-8 w-px
|
|
123
|
+
<div className="bg-fm-divider-primary h-8 w-px" />
|
|
124
124
|
<div className="text-center">
|
|
125
|
-
<div className="text-3xl font-bold
|
|
125
|
+
<div className="text-fm-icon-info text-3xl font-bold">
|
|
126
126
|
Interactive
|
|
127
127
|
</div>
|
|
128
|
-
<div className="text-
|
|
128
|
+
<div className="text-fm-tertiary text-sm">
|
|
129
|
+
Toggle states
|
|
130
|
+
</div>
|
|
129
131
|
</div>
|
|
130
132
|
</div>
|
|
131
133
|
</div>
|
|
@@ -136,16 +138,16 @@ const meta: Meta<typeof EyeCloseIcon> = {
|
|
|
136
138
|
<div className="!mx-auto max-w-7xl !space-y-16 px-6 py-12">
|
|
137
139
|
{/* Quick Usage */}
|
|
138
140
|
<div className="!space-y-8">
|
|
139
|
-
<h2 className="text-center text-3xl font-bold
|
|
141
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
140
142
|
Quick Start
|
|
141
143
|
</h2>
|
|
142
144
|
<div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
|
|
143
145
|
<div className="!space-y-4">
|
|
144
|
-
<h3 className="text-xl font-semibold
|
|
146
|
+
<h3 className="text-fm-secondary! text-xl font-semibold">
|
|
145
147
|
Basic Usage
|
|
146
148
|
</h3>
|
|
147
|
-
<div className="rounded-lg
|
|
148
|
-
<pre className="overflow-x-auto text-sm
|
|
149
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
150
|
+
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
149
151
|
{`import { EyeCloseIcon } from "@icons/eye-close-icon"
|
|
150
152
|
|
|
151
153
|
function PasswordField() {
|
|
@@ -171,18 +173,18 @@ function PasswordField() {
|
|
|
171
173
|
</div>
|
|
172
174
|
|
|
173
175
|
<div className="!space-y-4">
|
|
174
|
-
<h3 className="text-xl font-semibold
|
|
176
|
+
<h3 className="text-fm-secondary! text-xl font-semibold">
|
|
175
177
|
Live Preview
|
|
176
178
|
</h3>
|
|
177
|
-
<div className="flex h-32 items-center justify-center rounded-lg border
|
|
179
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary flex h-32 items-center justify-center rounded-lg border">
|
|
178
180
|
<div className="relative">
|
|
179
181
|
<input
|
|
180
182
|
type="password"
|
|
181
183
|
placeholder="Enter password"
|
|
182
|
-
className="
|
|
184
|
+
className="border-fm-divider-primary bg-fm-surface-secondary text-fm-icon-active rounded-lg border px-3 py-2 pr-10 placeholder-white/50"
|
|
183
185
|
/>
|
|
184
|
-
<button className="absolute top-1/2 right-2 -translate-y-1/2 rounded p-1
|
|
185
|
-
<EyeCloseIcon className="h-5 w-5
|
|
186
|
+
<button className="hover:bg-fm-surface-secondary absolute top-1/2 right-2 -translate-y-1/2 rounded p-1">
|
|
187
|
+
<EyeCloseIcon className="text-fm-tertiary h-5 w-5" />
|
|
186
188
|
</button>
|
|
187
189
|
</div>
|
|
188
190
|
</div>
|
|
@@ -192,117 +194,129 @@ function PasswordField() {
|
|
|
192
194
|
|
|
193
195
|
{/* Props Documentation */}
|
|
194
196
|
<div className="!space-y-8">
|
|
195
|
-
<h2 className="text-center text-3xl font-bold
|
|
197
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
196
198
|
Props & Configuration
|
|
197
199
|
</h2>
|
|
198
200
|
|
|
199
|
-
<div className="overflow-hidden rounded-lg border
|
|
200
|
-
<div className="bg-
|
|
201
|
-
<h3 className="text-xl font-semibold
|
|
201
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary overflow-hidden rounded-lg border">
|
|
202
|
+
<div className="bg-fm-surface-secondary p-4">
|
|
203
|
+
<h3 className="text-fm-icon-active! text-xl font-semibold">
|
|
204
|
+
Props
|
|
205
|
+
</h3>
|
|
202
206
|
</div>
|
|
203
207
|
<table className="!my-0 w-full">
|
|
204
|
-
<thead className="bg-
|
|
205
|
-
<tr className="border-
|
|
206
|
-
<th className="px-6 py-4 text-left text-sm font-semibold
|
|
208
|
+
<thead className="bg-fm-surface-secondary">
|
|
209
|
+
<tr className="border-fm-divider-secondary border-b">
|
|
210
|
+
<th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
|
|
207
211
|
Prop
|
|
208
212
|
</th>
|
|
209
|
-
<th className="px-6 py-4 text-left text-sm font-semibold
|
|
213
|
+
<th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
|
|
210
214
|
Type
|
|
211
215
|
</th>
|
|
212
|
-
<th className="px-6 py-4 text-left text-sm font-semibold
|
|
216
|
+
<th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
|
|
213
217
|
Default
|
|
214
218
|
</th>
|
|
215
|
-
<th className="px-6 py-4 text-left text-sm font-semibold
|
|
219
|
+
<th className="text-fm-icon-active! px-6 py-4 text-left text-sm font-semibold">
|
|
216
220
|
Description
|
|
217
221
|
</th>
|
|
218
222
|
</tr>
|
|
219
223
|
</thead>
|
|
220
224
|
<tbody>
|
|
221
|
-
<tr className="
|
|
222
|
-
<td className="px-6 py-4 font-mono text-sm
|
|
225
|
+
<tr className="bg-fm-surface-secondary!">
|
|
226
|
+
<td className="text-fm-icon-info! px-6 py-4 font-mono text-sm">
|
|
223
227
|
withAccessibility
|
|
224
228
|
</td>
|
|
225
|
-
<td className="px-6 py-4 text-sm
|
|
229
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
226
230
|
boolean
|
|
227
231
|
</td>
|
|
228
|
-
<td className="px-6 py-4 text-sm
|
|
232
|
+
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
229
233
|
true
|
|
230
234
|
</td>
|
|
231
|
-
<td className="px-6 py-4 text-sm
|
|
235
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
232
236
|
Whether to wrap the icon with accessibility feature
|
|
233
237
|
</td>
|
|
234
238
|
</tr>
|
|
235
|
-
<tr className="border-
|
|
236
|
-
<td className="px-6 py-4 font-mono text-sm
|
|
239
|
+
<tr className="border-fm-divider-tertiary bg-fm-surface-secondary! border-b">
|
|
240
|
+
<td className="text-fm-secondary! px-6 py-4 font-mono text-sm">
|
|
237
241
|
height
|
|
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
|
number | string
|
|
241
245
|
</td>
|
|
242
|
-
<td className="px-6 py-4 text-sm
|
|
243
|
-
|
|
246
|
+
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
247
|
+
24
|
|
248
|
+
</td>
|
|
249
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
244
250
|
Height of the icon in pixels
|
|
245
251
|
</td>
|
|
246
252
|
</tr>
|
|
247
|
-
<tr className="border-
|
|
248
|
-
<td className="px-6 py-4 font-mono text-sm
|
|
253
|
+
<tr className="border-fm-divider-tertiary border-b">
|
|
254
|
+
<td className="text-fm-secondary! px-6 py-4 font-mono text-sm">
|
|
249
255
|
stroke
|
|
250
256
|
</td>
|
|
251
|
-
<td className="px-6 py-4 text-sm
|
|
257
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
252
258
|
string
|
|
253
259
|
</td>
|
|
254
|
-
<td className="px-6 py-4 text-sm
|
|
260
|
+
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
255
261
|
currentColor
|
|
256
262
|
</td>
|
|
257
|
-
<td className="px-6 py-4 text-sm
|
|
263
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
258
264
|
Stroke color of the icon
|
|
259
265
|
</td>
|
|
260
266
|
</tr>
|
|
261
|
-
<tr className="border-
|
|
262
|
-
<td className="px-6 py-4 font-mono text-sm
|
|
267
|
+
<tr className="border-fm-divider-tertiary bg-fm-surface-secondary! border-b">
|
|
268
|
+
<td className="text-fm-secondary! px-6 py-4 font-mono text-sm">
|
|
263
269
|
strokeWidth
|
|
264
270
|
</td>
|
|
265
|
-
<td className="px-6 py-4 text-sm
|
|
271
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
266
272
|
string | number
|
|
267
273
|
</td>
|
|
268
|
-
<td className="px-6 py-4 text-sm
|
|
269
|
-
|
|
274
|
+
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
275
|
+
1
|
|
276
|
+
</td>
|
|
277
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
270
278
|
Stroke width of the icon lines
|
|
271
279
|
</td>
|
|
272
280
|
</tr>
|
|
273
|
-
<tr className="border-
|
|
274
|
-
<td className="px-6 py-4 font-mono text-sm
|
|
281
|
+
<tr className="border-fm-divider-tertiary border-b">
|
|
282
|
+
<td className="text-fm-secondary! px-6 py-4 font-mono text-sm">
|
|
275
283
|
className
|
|
276
284
|
</td>
|
|
277
|
-
<td className="px-6 py-4 text-sm
|
|
285
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
278
286
|
string
|
|
279
287
|
</td>
|
|
280
|
-
<td className="px-6 py-4 text-sm
|
|
281
|
-
|
|
288
|
+
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
289
|
+
-
|
|
290
|
+
</td>
|
|
291
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
282
292
|
CSS classes for styling (use for overrides)
|
|
283
293
|
</td>
|
|
284
294
|
</tr>
|
|
285
|
-
<tr className="border-
|
|
286
|
-
<td className="px-6 py-4 font-mono text-sm
|
|
295
|
+
<tr className="border-fm-divider-tertiary bg-fm-surface-secondary! border-b">
|
|
296
|
+
<td className="text-fm-secondary! px-6 py-4 font-mono text-sm">
|
|
287
297
|
onClick
|
|
288
298
|
</td>
|
|
289
|
-
<td className="px-6 py-4 text-sm
|
|
299
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
290
300
|
function
|
|
291
301
|
</td>
|
|
292
|
-
<td className="px-6 py-4 text-sm
|
|
293
|
-
|
|
302
|
+
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
303
|
+
-
|
|
304
|
+
</td>
|
|
305
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
294
306
|
Click handler for toggle functionality
|
|
295
307
|
</td>
|
|
296
308
|
</tr>
|
|
297
|
-
<tr className="
|
|
298
|
-
<td className="px-6 py-4 font-mono text-sm
|
|
309
|
+
<tr className="bg-fm-surface-secondary!">
|
|
310
|
+
<td className="text-fm-secondary! px-6 py-4 font-mono text-sm">
|
|
299
311
|
...svgProps
|
|
300
312
|
</td>
|
|
301
|
-
<td className="px-6 py-4 text-sm
|
|
313
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
302
314
|
SVGProps
|
|
303
315
|
</td>
|
|
304
|
-
<td className="px-6 py-4 text-sm
|
|
305
|
-
|
|
316
|
+
<td className="text-fm-placeholder! px-6 py-4 text-sm">
|
|
317
|
+
-
|
|
318
|
+
</td>
|
|
319
|
+
<td className="text-fm-secondary! px-6 py-4 text-sm">
|
|
306
320
|
All standard SVG element props
|
|
307
321
|
</td>
|
|
308
322
|
</tr>
|
|
@@ -313,50 +327,62 @@ function PasswordField() {
|
|
|
313
327
|
|
|
314
328
|
{/* Size Variations */}
|
|
315
329
|
<div className="!space-y-8">
|
|
316
|
-
<h2 className="text-center text-3xl font-bold
|
|
330
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
317
331
|
Size Variations
|
|
318
332
|
</h2>
|
|
319
|
-
<div className="rounded-lg border
|
|
333
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-8">
|
|
320
334
|
<div className="!space-y-6">
|
|
321
335
|
<div className="grid grid-cols-1 gap-8 md:grid-cols-2">
|
|
322
336
|
<div className="!space-y-4">
|
|
323
|
-
<h3 className="text-lg font-semibold
|
|
337
|
+
<h3 className="text-fm-secondary! text-lg font-semibold">
|
|
324
338
|
Standard Sizes
|
|
325
339
|
</h3>
|
|
326
|
-
<div className="flex items-end gap-6 rounded-lg
|
|
340
|
+
<div className="bg-fm-surface-secondary flex items-end gap-6 rounded-lg p-6">
|
|
327
341
|
<div className="text-center">
|
|
328
|
-
<EyeCloseIcon className="!mx-auto mb-2 h-3 w-3
|
|
329
|
-
<span className="text-
|
|
342
|
+
<EyeCloseIcon className="text-fm-tertiary !mx-auto mb-2 h-3 w-3" />
|
|
343
|
+
<span className="text-fm-tertiary text-xs">
|
|
344
|
+
12px
|
|
345
|
+
</span>
|
|
330
346
|
</div>
|
|
331
347
|
<div className="text-center">
|
|
332
|
-
<EyeCloseIcon className="!mx-auto mb-2 h-4 w-4
|
|
333
|
-
<span className="text-
|
|
348
|
+
<EyeCloseIcon className="text-fm-tertiary !mx-auto mb-2 h-4 w-4" />
|
|
349
|
+
<span className="text-fm-tertiary text-xs">
|
|
350
|
+
16px
|
|
351
|
+
</span>
|
|
334
352
|
</div>
|
|
335
353
|
<div className="text-center">
|
|
336
|
-
<EyeCloseIcon className="!mx-auto mb-2 h-5 w-5
|
|
337
|
-
<span className="text-
|
|
354
|
+
<EyeCloseIcon className="text-fm-tertiary !mx-auto mb-2 h-5 w-5" />
|
|
355
|
+
<span className="text-fm-tertiary text-xs">
|
|
356
|
+
20px
|
|
357
|
+
</span>
|
|
338
358
|
</div>
|
|
339
359
|
<div className="text-center">
|
|
340
|
-
<EyeCloseIcon className="!mx-auto mb-2 h-6 w-6
|
|
341
|
-
<span className="text-
|
|
360
|
+
<EyeCloseIcon className="text-fm-tertiary !mx-auto mb-2 h-6 w-6" />
|
|
361
|
+
<span className="text-fm-tertiary text-xs">
|
|
362
|
+
24px
|
|
363
|
+
</span>
|
|
342
364
|
</div>
|
|
343
365
|
<div className="text-center">
|
|
344
|
-
<EyeCloseIcon className="!mx-auto mb-2 h-8 w-8
|
|
345
|
-
<span className="text-
|
|
366
|
+
<EyeCloseIcon className="text-fm-tertiary !mx-auto mb-2 h-8 w-8" />
|
|
367
|
+
<span className="text-fm-tertiary text-xs">
|
|
368
|
+
32px
|
|
369
|
+
</span>
|
|
346
370
|
</div>
|
|
347
371
|
<div className="text-center">
|
|
348
|
-
<EyeCloseIcon className="!mx-auto mb-2 h-12 w-12
|
|
349
|
-
<span className="text-
|
|
372
|
+
<EyeCloseIcon className="text-fm-tertiary !mx-auto mb-2 h-12 w-12" />
|
|
373
|
+
<span className="text-fm-tertiary text-xs">
|
|
374
|
+
48px
|
|
375
|
+
</span>
|
|
350
376
|
</div>
|
|
351
377
|
</div>
|
|
352
378
|
</div>
|
|
353
379
|
|
|
354
380
|
<div className="!space-y-4">
|
|
355
|
-
<h3 className="text-lg font-semibold
|
|
381
|
+
<h3 className="text-fm-secondary! text-lg font-semibold">
|
|
356
382
|
Code Example
|
|
357
383
|
</h3>
|
|
358
|
-
<div className="rounded-lg
|
|
359
|
-
<pre className="overflow-x-auto text-sm
|
|
384
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
385
|
+
<pre className="text-fm-icon-info! overflow-x-auto text-sm">
|
|
360
386
|
{`// Small (16px)
|
|
361
387
|
<EyeCloseIcon className="h-4 w-4 " />
|
|
362
388
|
|
|
@@ -382,56 +408,56 @@ function PasswordField() {
|
|
|
382
408
|
|
|
383
409
|
{/* Color Variations */}
|
|
384
410
|
<div className="!space-y-8">
|
|
385
|
-
<h2 className="text-center text-3xl font-bold
|
|
411
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
386
412
|
Color Variations
|
|
387
413
|
</h2>
|
|
388
414
|
<div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
|
|
389
415
|
<div className="!space-y-4">
|
|
390
|
-
<h3 className="text-lg font-semibold
|
|
416
|
+
<h3 className="text-fm-secondary! text-lg font-semibold">
|
|
391
417
|
Semantic Colors
|
|
392
418
|
</h3>
|
|
393
|
-
<div className="!space-y-4 rounded-lg border
|
|
419
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
|
|
394
420
|
<div className="flex items-center gap-4">
|
|
395
|
-
<EyeCloseIcon className="h-6 w-6
|
|
421
|
+
<EyeCloseIcon className="text-fm-tertiary h-6 w-6" />
|
|
396
422
|
<div>
|
|
397
|
-
<div className="text-sm font-medium
|
|
423
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
398
424
|
Default / Hidden
|
|
399
425
|
</div>
|
|
400
|
-
<div className="text-
|
|
401
|
-
text-
|
|
426
|
+
<div className="text-fm-tertiary text-xs">
|
|
427
|
+
text-fm-tertiary
|
|
402
428
|
</div>
|
|
403
429
|
</div>
|
|
404
430
|
</div>
|
|
405
431
|
<div className="flex items-center gap-4">
|
|
406
|
-
<EyeCloseIcon className="h-6 w-6
|
|
432
|
+
<EyeCloseIcon className="text-fm-placeholder h-6 w-6" />
|
|
407
433
|
<div>
|
|
408
|
-
<div className="text-sm font-medium
|
|
434
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
409
435
|
Disabled
|
|
410
436
|
</div>
|
|
411
|
-
<div className="text-
|
|
412
|
-
text-
|
|
437
|
+
<div className="text-fm-tertiary text-xs">
|
|
438
|
+
text-fm-placeholder
|
|
413
439
|
</div>
|
|
414
440
|
</div>
|
|
415
441
|
</div>
|
|
416
442
|
<div className="flex items-center gap-4">
|
|
417
|
-
<EyeCloseIcon className="h-6 w-6
|
|
443
|
+
<EyeCloseIcon className="text-fm-icon-negative h-6 w-6" />
|
|
418
444
|
<div>
|
|
419
|
-
<div className="text-sm font-medium
|
|
445
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
420
446
|
Restricted
|
|
421
447
|
</div>
|
|
422
|
-
<div className="text-
|
|
423
|
-
text-
|
|
448
|
+
<div className="text-fm-tertiary text-xs">
|
|
449
|
+
text-fm-icon-negative
|
|
424
450
|
</div>
|
|
425
451
|
</div>
|
|
426
452
|
</div>
|
|
427
453
|
<div className="flex items-center gap-4">
|
|
428
|
-
<EyeCloseIcon className="h-6 w-6
|
|
454
|
+
<EyeCloseIcon className="text-fm-icon-info h-6 w-6" />
|
|
429
455
|
<div>
|
|
430
|
-
<div className="text-sm font-medium
|
|
456
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
431
457
|
Interactive
|
|
432
458
|
</div>
|
|
433
|
-
<div className="text-
|
|
434
|
-
text-
|
|
459
|
+
<div className="text-fm-tertiary text-xs">
|
|
460
|
+
text-fm-icon-info
|
|
435
461
|
</div>
|
|
436
462
|
</div>
|
|
437
463
|
</div>
|
|
@@ -439,11 +465,11 @@ function PasswordField() {
|
|
|
439
465
|
</div>
|
|
440
466
|
|
|
441
467
|
<div className="!space-y-4">
|
|
442
|
-
<h3 className="text-lg font-semibold
|
|
468
|
+
<h3 className="text-fm-secondary! text-lg font-semibold">
|
|
443
469
|
Custom Colors
|
|
444
470
|
</h3>
|
|
445
|
-
<div className="rounded-lg
|
|
446
|
-
<pre className="overflow-x-auto text-sm
|
|
471
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
472
|
+
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
447
473
|
{`// Using Tailwind classes with
|
|
448
474
|
<EyeCloseIcon className="h-6 w-6 text-slate-400 " />
|
|
449
475
|
<EyeCloseIcon className="h-6 w-6 text-red-500 " />
|
|
@@ -469,38 +495,38 @@ function PasswordField() {
|
|
|
469
495
|
|
|
470
496
|
{/* Usage Examples */}
|
|
471
497
|
<div className="!space-y-8">
|
|
472
|
-
<h2 className="text-center text-3xl font-bold
|
|
498
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
473
499
|
Usage Examples
|
|
474
500
|
</h2>
|
|
475
501
|
|
|
476
502
|
<div className="grid grid-cols-1 gap-8 lg:grid-cols-2">
|
|
477
503
|
{/* Password Field */}
|
|
478
504
|
<div className="!space-y-4">
|
|
479
|
-
<h3 className="text-lg font-semibold
|
|
505
|
+
<h3 className="text-fm-secondary! text-lg font-semibold">
|
|
480
506
|
Password Field Toggle
|
|
481
507
|
</h3>
|
|
482
508
|
<div className="!space-y-4">
|
|
483
509
|
<div className="!space-y-2">
|
|
484
|
-
<label className="text-sm font-medium
|
|
510
|
+
<label className="text-fm-icon-active! text-sm font-medium">
|
|
485
511
|
Password
|
|
486
512
|
</label>
|
|
487
513
|
<div className="relative">
|
|
488
514
|
<input
|
|
489
515
|
type="password"
|
|
490
|
-
className="w-full rounded-lg border
|
|
516
|
+
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-slate-400/20"
|
|
491
517
|
placeholder="Enter your password"
|
|
492
518
|
defaultValue="mysecretpassword"
|
|
493
519
|
/>
|
|
494
|
-
<button className="absolute top-1/2 right-2 -translate-y-1/2 rounded p-1 transition-colors
|
|
495
|
-
<EyeCloseIcon className="h-5 w-5
|
|
520
|
+
<button className="hover:bg-fm-surface-secondary absolute top-1/2 right-2 -translate-y-1/2 rounded p-1 transition-colors">
|
|
521
|
+
<EyeCloseIcon className="text-fm-tertiary h-5 w-5" />
|
|
496
522
|
</button>
|
|
497
523
|
</div>
|
|
498
|
-
<p className="text-
|
|
524
|
+
<p className="text-fm-tertiary text-xs">
|
|
499
525
|
Click the eye icon to toggle password visibility
|
|
500
526
|
</p>
|
|
501
527
|
</div>
|
|
502
|
-
<div className="rounded-lg
|
|
503
|
-
<pre className="overflow-x-auto text-sm
|
|
528
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
529
|
+
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
504
530
|
{`// Password visibility toggle
|
|
505
531
|
const [showPassword, setShowPassword] = useState(false)
|
|
506
532
|
|
|
@@ -527,32 +553,32 @@ const [showPassword, setShowPassword] = useState(false)
|
|
|
527
553
|
|
|
528
554
|
{/* Content Filter */}
|
|
529
555
|
<div className="!space-y-4">
|
|
530
|
-
<h3 className="text-lg font-semibold
|
|
556
|
+
<h3 className="text-fm-secondary! text-lg font-semibold">
|
|
531
557
|
Content Filter
|
|
532
558
|
</h3>
|
|
533
559
|
<div className="!space-y-4">
|
|
534
|
-
<div className="rounded-lg border
|
|
560
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-4">
|
|
535
561
|
<div className="mb-3 flex items-center justify-between">
|
|
536
|
-
<span className="font-medium
|
|
562
|
+
<span className="text-fm-icon-active font-medium">
|
|
537
563
|
Sensitive Content
|
|
538
564
|
</span>
|
|
539
|
-
<button className="flex items-center gap-2 text-sm
|
|
565
|
+
<button className="text-fm-tertiary hover:text-fm-icon-active flex items-center gap-2 text-sm">
|
|
540
566
|
<EyeCloseIcon className="h-4 w-4" />
|
|
541
567
|
Hidden
|
|
542
568
|
</button>
|
|
543
569
|
</div>
|
|
544
|
-
<div className="rounded-lg
|
|
545
|
-
<EyeCloseIcon className="mx-auto mb-3 h-12 w-12
|
|
546
|
-
<p className="text-
|
|
570
|
+
<div className="bg-fm-surface-secondary rounded-lg p-8 text-center">
|
|
571
|
+
<EyeCloseIcon className="text-fm-icon-inactive mx-auto mb-3 h-12 w-12" />
|
|
572
|
+
<p className="text-fm-tertiary! text-sm">
|
|
547
573
|
Content hidden due to privacy settings
|
|
548
574
|
</p>
|
|
549
|
-
<button className="
|
|
575
|
+
<button className="text-fm-icon-info hover:text-fm-icon-info mt-2 text-xs">
|
|
550
576
|
Show content
|
|
551
577
|
</button>
|
|
552
578
|
</div>
|
|
553
579
|
</div>
|
|
554
|
-
<div className="rounded-lg
|
|
555
|
-
<pre className="overflow-x-auto text-sm
|
|
580
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
581
|
+
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
556
582
|
{`// Content filter with hidden state
|
|
557
583
|
<div className="rounded-lg bg-black/20 p-8 text-center">
|
|
558
584
|
<EyeCloseIcon className="mx-auto h-12 w-12 text-slate-600 mb-3 " />
|
|
@@ -571,56 +597,56 @@ const [showPassword, setShowPassword] = useState(false)
|
|
|
571
597
|
|
|
572
598
|
{/* Privacy Settings */}
|
|
573
599
|
<div className="!space-y-4">
|
|
574
|
-
<h3 className="text-lg font-semibold
|
|
600
|
+
<h3 className="text-fm-secondary! text-lg font-semibold">
|
|
575
601
|
Privacy Settings
|
|
576
602
|
</h3>
|
|
577
603
|
<div className="!space-y-4">
|
|
578
604
|
<div className="!space-y-3">
|
|
579
|
-
<div className="flex items-center justify-between rounded-lg border
|
|
605
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary flex items-center justify-between rounded-lg border p-4">
|
|
580
606
|
<div className="flex items-center gap-3">
|
|
581
|
-
<EyeCloseIcon className="h-5 w-5
|
|
607
|
+
<EyeCloseIcon className="text-fm-tertiary h-5 w-5" />
|
|
582
608
|
<div>
|
|
583
|
-
<div className="text-sm font-medium
|
|
609
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
584
610
|
Profile Visibility
|
|
585
611
|
</div>
|
|
586
|
-
<div className="text-
|
|
612
|
+
<div className="text-fm-tertiary text-xs">
|
|
587
613
|
Your profile is hidden from search
|
|
588
614
|
</div>
|
|
589
615
|
</div>
|
|
590
616
|
</div>
|
|
591
617
|
<div className="flex items-center">
|
|
592
|
-
<span className="mr-3 text-xs
|
|
618
|
+
<span className="text-fm-tertiary mr-3 text-xs">
|
|
593
619
|
Private
|
|
594
620
|
</span>
|
|
595
|
-
<div className="relative h-6 w-11 rounded-full
|
|
596
|
-
<div className="absolute top-1 left-1 h-4 w-4 rounded-full
|
|
621
|
+
<div className="bg-fm-icon-inactive relative h-6 w-11 rounded-full">
|
|
622
|
+
<div className="bg-fm-surface-contrast absolute top-1 left-1 h-4 w-4 rounded-full transition-transform"></div>
|
|
597
623
|
</div>
|
|
598
624
|
</div>
|
|
599
625
|
</div>
|
|
600
|
-
<div className="flex items-center justify-between rounded-lg border
|
|
626
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary flex items-center justify-between rounded-lg border p-4">
|
|
601
627
|
<div className="flex items-center gap-3">
|
|
602
|
-
<EyeCloseIcon className="h-5 w-5
|
|
628
|
+
<EyeCloseIcon className="text-fm-tertiary h-5 w-5" />
|
|
603
629
|
<div>
|
|
604
|
-
<div className="text-sm font-medium
|
|
630
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
605
631
|
Activity Status
|
|
606
632
|
</div>
|
|
607
|
-
<div className="text-
|
|
633
|
+
<div className="text-fm-tertiary text-xs">
|
|
608
634
|
Hide your online status
|
|
609
635
|
</div>
|
|
610
636
|
</div>
|
|
611
637
|
</div>
|
|
612
638
|
<div className="flex items-center">
|
|
613
|
-
<span className="mr-3 text-xs
|
|
639
|
+
<span className="text-fm-tertiary mr-3 text-xs">
|
|
614
640
|
Hidden
|
|
615
641
|
</span>
|
|
616
|
-
<div className="relative h-6 w-11 rounded-full
|
|
617
|
-
<div className="absolute top-1 left-1 h-4 w-4 rounded-full
|
|
642
|
+
<div className="bg-fm-icon-inactive relative h-6 w-11 rounded-full">
|
|
643
|
+
<div className="bg-fm-surface-contrast absolute top-1 left-1 h-4 w-4 rounded-full transition-transform"></div>
|
|
618
644
|
</div>
|
|
619
645
|
</div>
|
|
620
646
|
</div>
|
|
621
647
|
</div>
|
|
622
|
-
<div className="rounded-lg
|
|
623
|
-
<pre className="overflow-x-auto text-sm
|
|
648
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
649
|
+
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
624
650
|
{`// Privacy setting item
|
|
625
651
|
<div className="flex items-center justify-between p-4 border border-white/10 bg-white/5 rounded-lg">
|
|
626
652
|
<div className="flex items-center gap-3">
|
|
@@ -639,34 +665,34 @@ const [showPassword, setShowPassword] = useState(false)
|
|
|
639
665
|
|
|
640
666
|
{/* Data Protection */}
|
|
641
667
|
<div className="!space-y-4">
|
|
642
|
-
<h3 className="text-lg font-semibold
|
|
668
|
+
<h3 className="text-fm-secondary! text-lg font-semibold">
|
|
643
669
|
Data Protection
|
|
644
670
|
</h3>
|
|
645
671
|
<div className="!space-y-4">
|
|
646
|
-
<div className="
|
|
672
|
+
<div className="border-fm-divider-secondary bg-fm-icon-inactive/10 rounded-lg border p-4">
|
|
647
673
|
<div className="flex items-start gap-3">
|
|
648
|
-
<EyeCloseIcon className="mt-0.5 h-5 w-5 flex-shrink-0
|
|
674
|
+
<EyeCloseIcon className="text-fm-tertiary mt-0.5 h-5 w-5 flex-shrink-0" />
|
|
649
675
|
<div>
|
|
650
|
-
<h4 className="font-medium
|
|
676
|
+
<h4 className="text-fm-secondary! font-medium">
|
|
651
677
|
Encrypted Data
|
|
652
678
|
</h4>
|
|
653
|
-
<p className="text-
|
|
679
|
+
<p className="text-fm-secondary!/80 text-sm">
|
|
654
680
|
Your personal information is encrypted and
|
|
655
681
|
protected from unauthorized access.
|
|
656
682
|
</p>
|
|
657
683
|
<div className="mt-2 flex gap-2">
|
|
658
|
-
<span className="inline-flex items-center rounded
|
|
684
|
+
<span className="bg-fm-icon-inactive/20 text-fm-secondary inline-flex items-center rounded px-2 py-1 text-xs">
|
|
659
685
|
End-to-end encrypted
|
|
660
686
|
</span>
|
|
661
|
-
<span className="inline-flex items-center rounded
|
|
687
|
+
<span className="bg-fm-icon-positive/20 text-fm-icon-positive inline-flex items-center rounded px-2 py-1 text-xs">
|
|
662
688
|
Secure
|
|
663
689
|
</span>
|
|
664
690
|
</div>
|
|
665
691
|
</div>
|
|
666
692
|
</div>
|
|
667
693
|
</div>
|
|
668
|
-
<div className="rounded-lg
|
|
669
|
-
<pre className="overflow-x-auto text-sm
|
|
694
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
695
|
+
<pre className="text-fm-icon-positive! overflow-x-auto text-sm">
|
|
670
696
|
{`// Data protection notice
|
|
671
697
|
<div className="border border-slate-500/20 bg-slate-500/10 p-4 rounded-lg">
|
|
672
698
|
<div className="flex items-start gap-3">
|
|
@@ -688,64 +714,64 @@ const [showPassword, setShowPassword] = useState(false)
|
|
|
688
714
|
|
|
689
715
|
{/* Accessibility */}
|
|
690
716
|
<div className="!space-y-8">
|
|
691
|
-
<h2 className="text-center text-3xl font-bold
|
|
717
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
692
718
|
Accessibility Features
|
|
693
719
|
</h2>
|
|
694
720
|
<div className="grid grid-cols-1 gap-8 md:grid-cols-2">
|
|
695
|
-
<div className="!space-y-4 rounded-lg border
|
|
696
|
-
<h3 className="text-lg font-semibold
|
|
721
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
|
|
722
|
+
<h3 className="text-fm-icon-positive! text-lg font-semibold">
|
|
697
723
|
✅ Built-in Features
|
|
698
724
|
</h3>
|
|
699
|
-
<ul className="!space-y-2 text-sm
|
|
700
|
-
<li className="
|
|
725
|
+
<ul className="text-fm-secondary! !space-y-2 text-sm">
|
|
726
|
+
<li className="text-fm-secondary!">
|
|
701
727
|
Uses Radix UI AccessibleIcon wrapper
|
|
702
728
|
</li>
|
|
703
|
-
<li className="
|
|
729
|
+
<li className="text-fm-secondary!">
|
|
704
730
|
Provides screen reader label "Eye Close icon"
|
|
705
731
|
</li>
|
|
706
|
-
<li className="
|
|
732
|
+
<li className="text-fm-secondary!">
|
|
707
733
|
Supports keyboard navigation when interactive
|
|
708
734
|
</li>
|
|
709
|
-
<li className="
|
|
735
|
+
<li className="text-fm-secondary!">
|
|
710
736
|
Maintains proper color contrast ratios
|
|
711
737
|
</li>
|
|
712
|
-
<li className="
|
|
738
|
+
<li className="text-fm-secondary!">
|
|
713
739
|
Scales with user's font size preferences
|
|
714
740
|
</li>
|
|
715
741
|
</ul>
|
|
716
742
|
</div>
|
|
717
743
|
|
|
718
|
-
<div className="!space-y-4 rounded-lg border
|
|
719
|
-
<h3 className="text-lg font-semibold
|
|
744
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-4 rounded-lg border p-6">
|
|
745
|
+
<h3 className="text-fm-secondary! text-lg font-semibold">
|
|
720
746
|
💡 Best Practices
|
|
721
747
|
</h3>
|
|
722
|
-
<ul className="!space-y-2 text-sm
|
|
723
|
-
<li className="
|
|
748
|
+
<ul className="text-fm-secondary !space-y-2 text-sm">
|
|
749
|
+
<li className="text-fm-secondary!">
|
|
724
750
|
Always provide clear button labels for toggle actions
|
|
725
751
|
</li>
|
|
726
|
-
<li className="
|
|
752
|
+
<li className="text-fm-secondary!">
|
|
727
753
|
Use consistent placement in form fields
|
|
728
754
|
</li>
|
|
729
|
-
<li className="
|
|
755
|
+
<li className="text-fm-secondary!">
|
|
730
756
|
Ensure sufficient touch target size (44px minimum)
|
|
731
757
|
</li>
|
|
732
|
-
<li className="
|
|
758
|
+
<li className="text-fm-secondary!">
|
|
733
759
|
Provide visible focus states for keyboard users
|
|
734
760
|
</li>
|
|
735
|
-
<li className="
|
|
761
|
+
<li className="text-fm-secondary!">
|
|
736
762
|
Consider screen reader announcements for state changes
|
|
737
763
|
</li>
|
|
738
764
|
</ul>
|
|
739
765
|
</div>
|
|
740
766
|
</div>
|
|
741
767
|
|
|
742
|
-
<div className="rounded-lg border
|
|
743
|
-
<h3 className="mb-4 text-lg font-semibold
|
|
768
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-6">
|
|
769
|
+
<h3 className="text-fm-secondary-600! mb-4 text-lg font-semibold">
|
|
744
770
|
Proper ARIA Implementation
|
|
745
771
|
</h3>
|
|
746
772
|
<div className="grid grid-cols-1 gap-6 lg:grid-cols-2">
|
|
747
|
-
<div className="rounded-lg
|
|
748
|
-
<pre className="overflow-x-auto text-sm
|
|
773
|
+
<div className="bg-fm-surface-secondary rounded-lg p-4">
|
|
774
|
+
<pre className="text-fm-icon-info! overflow-x-auto text-sm">
|
|
749
775
|
{`// Password toggle with proper ARIA
|
|
750
776
|
<button
|
|
751
777
|
aria-label={showPassword ? "Hide password" : "Show password"}
|
|
@@ -774,13 +800,13 @@ const [showPassword, setShowPassword] = useState(false)
|
|
|
774
800
|
</pre>
|
|
775
801
|
</div>
|
|
776
802
|
<div className="!space-y-4">
|
|
777
|
-
<p className="text-
|
|
803
|
+
<p className="text-fm-secondary! text-sm">
|
|
778
804
|
When using EyeCloseIcon for interactive elements, always
|
|
779
805
|
provide descriptive aria-label attributes that explain
|
|
780
806
|
the current state and what will happen when activated.
|
|
781
807
|
</p>
|
|
782
|
-
<div className="
|
|
783
|
-
<div className="flex items-center gap-2 text-sm
|
|
808
|
+
<div className="border-fm-divider-secondary bg-fm-icon-inactive/10 rounded-lg border p-4">
|
|
809
|
+
<div className="text-fm-secondary flex items-center gap-2 text-sm">
|
|
784
810
|
<EyeCloseIcon className="h-4 w-4" />
|
|
785
811
|
<span>
|
|
786
812
|
Screen readers need context about visibility states
|
|
@@ -794,44 +820,54 @@ const [showPassword, setShowPassword] = useState(false)
|
|
|
794
820
|
|
|
795
821
|
{/* Related Icons */}
|
|
796
822
|
<div className="!space-y-8">
|
|
797
|
-
<h2 className="text-center text-3xl font-bold
|
|
823
|
+
<h2 className="text-fm-icon-active! text-center text-3xl font-bold">
|
|
798
824
|
Related Icons
|
|
799
825
|
</h2>
|
|
800
826
|
<div className="grid grid-cols-2 gap-6 md:grid-cols-4">
|
|
801
|
-
<div className="!space-y-3 rounded-lg border
|
|
802
|
-
<div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg
|
|
827
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
|
|
828
|
+
<div className="bg-fm-icon-info/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
|
|
803
829
|
<span className="text-2xl">👁️</span>
|
|
804
830
|
</div>
|
|
805
831
|
<div>
|
|
806
|
-
<div className="font-medium
|
|
807
|
-
|
|
832
|
+
<div className="text-fm-icon-active font-medium">
|
|
833
|
+
EyeIcon
|
|
834
|
+
</div>
|
|
835
|
+
<div className="text-fm-tertiary text-xs">
|
|
836
|
+
Show content
|
|
837
|
+
</div>
|
|
808
838
|
</div>
|
|
809
839
|
</div>
|
|
810
|
-
<div className="!space-y-3 rounded-lg border
|
|
811
|
-
<div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg
|
|
840
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
|
|
841
|
+
<div className="bg-fm-icon-negative/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
|
|
812
842
|
<span className="text-2xl">🔒</span>
|
|
813
843
|
</div>
|
|
814
844
|
<div>
|
|
815
|
-
<div className="font-medium
|
|
816
|
-
|
|
845
|
+
<div className="text-fm-icon-active font-medium">
|
|
846
|
+
LockIcon
|
|
847
|
+
</div>
|
|
848
|
+
<div className="text-fm-tertiary text-xs">Security</div>
|
|
817
849
|
</div>
|
|
818
850
|
</div>
|
|
819
|
-
<div className="!space-y-3 rounded-lg border
|
|
820
|
-
<div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg
|
|
851
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
|
|
852
|
+
<div className="bg-fm-secondary-500/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
|
|
821
853
|
<span className="text-2xl">🛡️</span>
|
|
822
854
|
</div>
|
|
823
855
|
<div>
|
|
824
|
-
<div className="font-medium
|
|
825
|
-
|
|
856
|
+
<div className="text-fm-icon-active font-medium">
|
|
857
|
+
ShieldIcon
|
|
858
|
+
</div>
|
|
859
|
+
<div className="text-fm-tertiary text-xs">Protection</div>
|
|
826
860
|
</div>
|
|
827
861
|
</div>
|
|
828
|
-
<div className="!space-y-3 rounded-lg border
|
|
829
|
-
<div className="!mx-auto flex h-12 w-12 items-center justify-center rounded-lg
|
|
862
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary !space-y-3 rounded-lg border p-4 text-center">
|
|
863
|
+
<div className="bg-fm-icon-warning/20 !mx-auto flex h-12 w-12 items-center justify-center rounded-lg">
|
|
830
864
|
<span className="text-2xl">⚙️</span>
|
|
831
865
|
</div>
|
|
832
866
|
<div>
|
|
833
|
-
<div className="font-medium
|
|
834
|
-
|
|
867
|
+
<div className="text-fm-icon-active font-medium">
|
|
868
|
+
SettingsIcon
|
|
869
|
+
</div>
|
|
870
|
+
<div className="text-fm-tertiary text-xs">Configure</div>
|
|
835
871
|
</div>
|
|
836
872
|
</div>
|
|
837
873
|
</div>
|
|
@@ -839,14 +875,14 @@ const [showPassword, setShowPassword] = useState(false)
|
|
|
839
875
|
</div>
|
|
840
876
|
|
|
841
877
|
{/* Footer */}
|
|
842
|
-
<div className="border-
|
|
878
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary border-t backdrop-blur-xl">
|
|
843
879
|
<div className="!mx-auto max-w-7xl px-6 py-8">
|
|
844
880
|
<div className="!space-y-4 text-center">
|
|
845
|
-
<p className="
|
|
881
|
+
<p className="text-fm-tertiary!">
|
|
846
882
|
EyeCloseIcon is part of the Aural UI icon library, built
|
|
847
883
|
with privacy and accessibility in mind.
|
|
848
884
|
</p>
|
|
849
|
-
<p className="text-
|
|
885
|
+
<p className="text-fm-placeholder! text-sm">
|
|
850
886
|
All icons use Radix UI's AccessibleIcon for screen reader
|
|
851
887
|
compatibility and follow WCAG guidelines.
|
|
852
888
|
</p>
|
|
@@ -899,20 +935,20 @@ const storyParameters = {
|
|
|
899
935
|
backgrounds: {
|
|
900
936
|
default: "dark",
|
|
901
937
|
values: [
|
|
902
|
-
{ name: "dark", value: "
|
|
903
|
-
{ name: "darker", value: "
|
|
938
|
+
{ name: "dark", value: "var(--color-fm-surface-primary)" },
|
|
939
|
+
{ name: "darker", value: "var(--color-fm-neutral-0)" },
|
|
904
940
|
],
|
|
905
941
|
},
|
|
906
942
|
}
|
|
907
943
|
|
|
908
944
|
export const Default: Story = {
|
|
909
945
|
args: {
|
|
910
|
-
className: "h-6 w-6 text-
|
|
946
|
+
className: "h-6 w-6 text-fm-tertiary ",
|
|
911
947
|
withAccessibility: true,
|
|
912
948
|
},
|
|
913
949
|
parameters: storyParameters,
|
|
914
950
|
render: (args) => (
|
|
915
|
-
<div className="flex h-32 min-h-dvh items-center justify-center rounded-lg bg-
|
|
951
|
+
<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">
|
|
916
952
|
<EyeCloseIcon {...args} />
|
|
917
953
|
</div>
|
|
918
954
|
),
|
|
@@ -929,30 +965,30 @@ export const SizeVariations: Story = {
|
|
|
929
965
|
},
|
|
930
966
|
},
|
|
931
967
|
render: () => (
|
|
932
|
-
<div className="flex h-64 min-h-dvh items-center justify-center gap-8 rounded-lg bg-
|
|
968
|
+
<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">
|
|
933
969
|
<div className="text-center">
|
|
934
|
-
<EyeCloseIcon className="!mx-auto mb-2 h-3 w-3
|
|
935
|
-
<span className="text-
|
|
970
|
+
<EyeCloseIcon className="text-fm-tertiary !mx-auto mb-2 h-3 w-3" />
|
|
971
|
+
<span className="text-fm-tertiary text-xs">12px</span>
|
|
936
972
|
</div>
|
|
937
973
|
<div className="text-center">
|
|
938
|
-
<EyeCloseIcon className="!mx-auto mb-2 h-4 w-4
|
|
939
|
-
<span className="text-
|
|
974
|
+
<EyeCloseIcon className="text-fm-tertiary !mx-auto mb-2 h-4 w-4" />
|
|
975
|
+
<span className="text-fm-tertiary text-xs">16px</span>
|
|
940
976
|
</div>
|
|
941
977
|
<div className="text-center">
|
|
942
|
-
<EyeCloseIcon className="!mx-auto mb-2 h-5 w-5
|
|
943
|
-
<span className="text-
|
|
978
|
+
<EyeCloseIcon className="text-fm-tertiary !mx-auto mb-2 h-5 w-5" />
|
|
979
|
+
<span className="text-fm-tertiary text-xs">20px</span>
|
|
944
980
|
</div>
|
|
945
981
|
<div className="text-center">
|
|
946
|
-
<EyeCloseIcon className="!mx-auto mb-2 h-6 w-6
|
|
947
|
-
<span className="text-
|
|
982
|
+
<EyeCloseIcon className="text-fm-tertiary !mx-auto mb-2 h-6 w-6" />
|
|
983
|
+
<span className="text-fm-tertiary text-xs">24px</span>
|
|
948
984
|
</div>
|
|
949
985
|
<div className="text-center">
|
|
950
|
-
<EyeCloseIcon className="!mx-auto mb-2 h-8 w-8
|
|
951
|
-
<span className="text-
|
|
986
|
+
<EyeCloseIcon className="text-fm-tertiary !mx-auto mb-2 h-8 w-8" />
|
|
987
|
+
<span className="text-fm-tertiary text-xs">32px</span>
|
|
952
988
|
</div>
|
|
953
989
|
<div className="text-center">
|
|
954
|
-
<EyeCloseIcon className="!mx-auto mb-2 h-12 w-12
|
|
955
|
-
<span className="text-
|
|
990
|
+
<EyeCloseIcon className="text-fm-tertiary !mx-auto mb-2 h-12 w-12" />
|
|
991
|
+
<span className="text-fm-tertiary text-xs">48px</span>
|
|
956
992
|
</div>
|
|
957
993
|
</div>
|
|
958
994
|
),
|
|
@@ -969,34 +1005,40 @@ export const ColorVariations: Story = {
|
|
|
969
1005
|
},
|
|
970
1006
|
},
|
|
971
1007
|
render: () => (
|
|
972
|
-
<div className="grid min-h-dvh grid-cols-2 items-center justify-center gap-6 rounded-lg bg-
|
|
1008
|
+
<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">
|
|
973
1009
|
<div className="text-center">
|
|
974
|
-
<div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border
|
|
975
|
-
<EyeCloseIcon className="h-8 w-8
|
|
1010
|
+
<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">
|
|
1011
|
+
<EyeCloseIcon className="text-fm-tertiary h-8 w-8" />
|
|
976
1012
|
</div>
|
|
977
|
-
<div className="text-sm font-medium
|
|
978
|
-
<div className="text-
|
|
1013
|
+
<div className="text-fm-icon-active text-sm font-medium">Default</div>
|
|
1014
|
+
<div className="text-fm-tertiary text-xs">text-fm-tertiary</div>
|
|
979
1015
|
</div>
|
|
980
1016
|
<div className="text-center">
|
|
981
|
-
<div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border
|
|
982
|
-
<EyeCloseIcon className="h-8 w-8
|
|
1017
|
+
<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">
|
|
1018
|
+
<EyeCloseIcon className="text-fm-placeholder h-8 w-8" />
|
|
983
1019
|
</div>
|
|
984
|
-
<div className="text-sm font-medium
|
|
985
|
-
<div className="text-
|
|
1020
|
+
<div className="text-fm-icon-active text-sm font-medium">Disabled</div>
|
|
1021
|
+
<div className="text-fm-placeholder text-xs">text-fm-placeholder</div>
|
|
986
1022
|
</div>
|
|
987
1023
|
<div className="text-center">
|
|
988
|
-
<div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border
|
|
989
|
-
<EyeCloseIcon className="h-8 w-8
|
|
1024
|
+
<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">
|
|
1025
|
+
<EyeCloseIcon className="text-fm-icon-negative h-8 w-8" />
|
|
1026
|
+
</div>
|
|
1027
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
1028
|
+
Restricted
|
|
1029
|
+
</div>
|
|
1030
|
+
<div className="text-fm-icon-negative text-xs">
|
|
1031
|
+
text-fm-icon-negative
|
|
990
1032
|
</div>
|
|
991
|
-
<div className="text-sm font-medium text-white">Restricted</div>
|
|
992
|
-
<div className="text-xs text-red-400">text-red-400</div>
|
|
993
1033
|
</div>
|
|
994
1034
|
<div className="text-center">
|
|
995
|
-
<div className="!mx-auto mb-3 flex h-16 w-16 items-center justify-center rounded-lg border
|
|
996
|
-
<EyeCloseIcon className="h-8 w-8
|
|
1035
|
+
<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">
|
|
1036
|
+
<EyeCloseIcon className="text-fm-icon-info h-8 w-8" />
|
|
1037
|
+
</div>
|
|
1038
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
1039
|
+
Interactive
|
|
997
1040
|
</div>
|
|
998
|
-
<div className="text-
|
|
999
|
-
<div className="text-xs text-blue-400">text-blue-400</div>
|
|
1041
|
+
<div className="text-fm-icon-info text-xs">text-fm-icon-info</div>
|
|
1000
1042
|
</div>
|
|
1001
1043
|
</div>
|
|
1002
1044
|
),
|
|
@@ -1013,34 +1055,36 @@ export const UsageExamples: Story = {
|
|
|
1013
1055
|
},
|
|
1014
1056
|
},
|
|
1015
1057
|
render: () => (
|
|
1016
|
-
<div className="min-h-dvh !space-y-8 rounded-lg bg-
|
|
1058
|
+
<div className="from-fm-surface-primary to-fm-surface-secondary min-h-dvh !space-y-8 rounded-lg bg-linear-to-br p-8">
|
|
1017
1059
|
{/* Password Field */}
|
|
1018
1060
|
<div className="!space-y-2">
|
|
1019
|
-
<h3 className="text-sm font-medium
|
|
1061
|
+
<h3 className="text-fm-icon-active text-sm font-medium">
|
|
1020
1062
|
Password Field Toggle
|
|
1021
1063
|
</h3>
|
|
1022
1064
|
<div className="relative">
|
|
1023
1065
|
<input
|
|
1024
1066
|
type="password"
|
|
1025
|
-
className="w-full rounded-lg border
|
|
1067
|
+
className="border-fm-divider-primary bg-fm-surface-secondary text-fm-icon-active w-full rounded-lg border px-3 py-2 pr-10 placeholder-white/50"
|
|
1026
1068
|
placeholder="Enter your password"
|
|
1027
1069
|
defaultValue="mysecretpassword"
|
|
1028
1070
|
/>
|
|
1029
|
-
<button className="absolute top-1/2 right-2 -translate-y-1/2 rounded p-1
|
|
1030
|
-
<EyeCloseIcon className="h-5 w-5
|
|
1071
|
+
<button className="hover:bg-fm-surface-secondary absolute top-1/2 right-2 -translate-y-1/2 rounded p-1">
|
|
1072
|
+
<EyeCloseIcon className="text-fm-tertiary h-5 w-5" />
|
|
1031
1073
|
</button>
|
|
1032
1074
|
</div>
|
|
1033
1075
|
</div>
|
|
1034
1076
|
|
|
1035
1077
|
{/* Content Filter */}
|
|
1036
1078
|
<div className="!space-y-2">
|
|
1037
|
-
<h3 className="text-sm font-medium
|
|
1038
|
-
|
|
1039
|
-
|
|
1040
|
-
|
|
1079
|
+
<h3 className="text-fm-icon-active text-sm font-medium">
|
|
1080
|
+
Content Filter
|
|
1081
|
+
</h3>
|
|
1082
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-8 text-center">
|
|
1083
|
+
<EyeCloseIcon className="text-fm-icon-inactive mx-auto mb-3 h-12 w-12" />
|
|
1084
|
+
<p className="text-fm-tertiary text-sm">
|
|
1041
1085
|
Content hidden due to privacy settings
|
|
1042
1086
|
</p>
|
|
1043
|
-
<button className="
|
|
1087
|
+
<button className="text-fm-icon-info hover:text-fm-icon-info mt-2 text-xs">
|
|
1044
1088
|
Show content
|
|
1045
1089
|
</button>
|
|
1046
1090
|
</div>
|
|
@@ -1048,22 +1092,24 @@ export const UsageExamples: Story = {
|
|
|
1048
1092
|
|
|
1049
1093
|
{/* Privacy Settings */}
|
|
1050
1094
|
<div className="!space-y-2">
|
|
1051
|
-
<h3 className="text-sm font-medium
|
|
1052
|
-
|
|
1095
|
+
<h3 className="text-fm-icon-active text-sm font-medium">
|
|
1096
|
+
Privacy Settings
|
|
1097
|
+
</h3>
|
|
1098
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary flex items-center justify-between rounded-lg border p-4">
|
|
1053
1099
|
<div className="flex items-center gap-3">
|
|
1054
|
-
<EyeCloseIcon className="h-5 w-5
|
|
1100
|
+
<EyeCloseIcon className="text-fm-tertiary h-5 w-5" />
|
|
1055
1101
|
<div>
|
|
1056
|
-
<div className="text-sm font-medium
|
|
1102
|
+
<div className="text-fm-icon-active text-sm font-medium">
|
|
1057
1103
|
Profile Visibility
|
|
1058
1104
|
</div>
|
|
1059
|
-
<div className="text-
|
|
1105
|
+
<div className="text-fm-tertiary text-xs">
|
|
1060
1106
|
Your profile is hidden from search
|
|
1061
1107
|
</div>
|
|
1062
1108
|
</div>
|
|
1063
1109
|
</div>
|
|
1064
1110
|
<div className="flex items-center">
|
|
1065
|
-
<span className="mr-3 text-xs
|
|
1066
|
-
<div className="h-6 w-11 rounded-full
|
|
1111
|
+
<span className="text-fm-tertiary mr-3 text-xs">Private</span>
|
|
1112
|
+
<div className="bg-fm-icon-inactive h-6 w-11 rounded-full"></div>
|
|
1067
1113
|
</div>
|
|
1068
1114
|
</div>
|
|
1069
1115
|
</div>
|
|
@@ -1084,12 +1130,12 @@ export const Playground: Story = {
|
|
|
1084
1130
|
args: {
|
|
1085
1131
|
width: 32,
|
|
1086
1132
|
height: 32,
|
|
1087
|
-
className: "text-
|
|
1133
|
+
className: "text-fm-tertiary ",
|
|
1088
1134
|
strokeWidth: 1,
|
|
1089
1135
|
},
|
|
1090
1136
|
render: (args) => (
|
|
1091
|
-
<div className="flex h-64 min-h-dvh items-center justify-center rounded-lg bg-
|
|
1092
|
-
<div className="rounded-lg border
|
|
1137
|
+
<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">
|
|
1138
|
+
<div className="border-fm-divider-secondary bg-fm-surface-secondary rounded-lg border p-8">
|
|
1093
1139
|
<EyeCloseIcon {...args} />
|
|
1094
1140
|
</div>
|
|
1095
1141
|
</div>
|