From 07f91058a096bcfb92797e145bb7183ac5c6168f Mon Sep 17 00:00:00 2001 From: diondiondion Date: Wed, 19 Aug 2026 15:53:38 +0000 Subject: [PATCH] Add `MenuItemRadio` and `MenuItemCheckbox` components (#40215) --- .../form_fields/redesign.module.scss | 13 +- .../components/form_fields/toggle.module.css | 8 +- .../components/form_fields/toggle_field.tsx | 4 +- .../mastodon/components/menu/card.tsx | 4 +- .../mastodon/components/menu/index.tsx | 93 +------ .../mastodon/components/menu/items.tsx | 163 +++++++++++ .../mastodon/components/menu/menu.stories.tsx | 80 ++++-- .../components/menu/styles.module.scss | 53 ++-- .../compose/redesign/styles.module.scss | 27 -- .../features/compose/redesign/trigger.tsx | 8 +- .../features/compose/redesign/upload.tsx | 12 +- .../features/compose/redesign/visibility.tsx | 254 ++++++------------ 12 files changed, 370 insertions(+), 349 deletions(-) create mode 100644 app/javascript/mastodon/components/menu/items.tsx diff --git a/app/javascript/mastodon/components/form_fields/redesign.module.scss b/app/javascript/mastodon/components/form_fields/redesign.module.scss index 0e603436970..e5f2f325093 100644 --- a/app/javascript/mastodon/components/form_fields/redesign.module.scss +++ b/app/javascript/mastodon/components/form_fields/redesign.module.scss @@ -73,8 +73,7 @@ input.input { } } -// Use double class to override original styles. -.toggle.toggle { +.toggle > span { background: var(--color-text-tertiary); &::before { @@ -87,9 +86,11 @@ input.input { --padding: 2px; --diameter: 14px; - width: 32px; -} + > span { + width: 32px; + } -input:checked + .toggle.toggleSmall::before { - transform: translateX(var(--diameter)); + > input:checked + span::before { + transform: translateX(var(--diameter)); + } } diff --git a/app/javascript/mastodon/components/form_fields/toggle.module.css b/app/javascript/mastodon/components/form_fields/toggle.module.css index b1f7e71b9fc..1dba9644652 100644 --- a/app/javascript/mastodon/components/form_fields/toggle.module.css +++ b/app/javascript/mastodon/components/form_fields/toggle.module.css @@ -61,6 +61,10 @@ .input:checked + .toggle::before { transform: translateX(calc(var(--diameter) - (var(--padding) * 2))); + + :global([dir='rtl']) & { + transform: translateX(calc(-1 * (var(--diameter) - (var(--padding) * 2)))); + } } .input:disabled { @@ -70,7 +74,3 @@ .input:disabled + .toggle { opacity: 0.6; } - -:global([dir='rtl']) .input:checked + .toggle::before { - transform: translateX(calc(-1 * (var(--diameter) - (var(--padding) * 2)))); -} diff --git a/app/javascript/mastodon/components/form_fields/toggle_field.tsx b/app/javascript/mastodon/components/form_fields/toggle_field.tsx index ea995305ddd..fc3cf9e4779 100644 --- a/app/javascript/mastodon/components/form_fields/toggle_field.tsx +++ b/app/javascript/mastodon/components/form_fields/toggle_field.tsx @@ -38,7 +38,7 @@ ToggleField.displayName = 'ToggleField'; export const Toggle = forwardRef( ({ className, size, ...otherProps }, ref) => ( ( className={classes.input} ref={ref} /> -