From 4d47b9aa3e40563bec53aefd3b4ea8182de7e4ef Mon Sep 17 00:00:00 2001 From: Jamie <113370520+jamiebuilds-signal@users.noreply.github.com> Date: Thu, 20 Aug 2026 10:58:39 -0700 Subject: [PATCH] Init AxoRadioGroupList --- ts/axo/AxoDropdownMenu.dom.tsx | 69 +++----- ts/axo/_internal/AriaLabellingContext.dom.tsx | 67 -------- .../_internal/AxoBaseSegmentedControl.dom.tsx | 65 +++---- ts/axo/aria/AriaLabelled.dom.stories.tsx | 37 ++++ ts/axo/aria/AriaLabelled.dom.tsx | 160 ++++++++++++++++++ ts/axo/aria/AriaList.dom.tsx | 82 +++++++++ .../AxoRadioGroup.dom.stories.tsx | 5 +- ts/axo/{ => controls}/AxoRadioGroup.dom.tsx | 98 ++--------- ts/axo/controls/_AxoBaseRadioGroup.dom.tsx | 116 +++++++++++++ ts/axo/items/AxoContactList.dom.tsx | 129 ++++++++------ ts/axo/items/AxoItem.dom.tsx | 32 +++- ts/axo/items/AxoList.dom.tsx | 64 +++---- .../items/AxoRadioGroupList.dom.stories.tsx | 54 ++++++ ts/axo/items/AxoRadioGroupList.dom.tsx | 131 ++++++++++++++ ts/axo/items/_AxoBaseItem.dom.tsx | 135 ++++++--------- .../ConversationNotificationsModal.dom.tsx | 3 +- .../pinned-messages/PinMessageDialog.dom.tsx | 7 +- .../stages/ProfileEntry.dom.tsx | 4 +- 18 files changed, 824 insertions(+), 434 deletions(-) delete mode 100644 ts/axo/_internal/AriaLabellingContext.dom.tsx create mode 100644 ts/axo/aria/AriaLabelled.dom.stories.tsx create mode 100644 ts/axo/aria/AriaLabelled.dom.tsx create mode 100644 ts/axo/aria/AriaList.dom.tsx rename ts/axo/{ => controls}/AxoRadioGroup.dom.stories.tsx (88%) rename ts/axo/{ => controls}/AxoRadioGroup.dom.tsx (58%) create mode 100644 ts/axo/controls/_AxoBaseRadioGroup.dom.tsx create mode 100644 ts/axo/items/AxoRadioGroupList.dom.stories.tsx create mode 100644 ts/axo/items/AxoRadioGroupList.dom.tsx diff --git a/ts/axo/AxoDropdownMenu.dom.tsx b/ts/axo/AxoDropdownMenu.dom.tsx index 216683078a..fcbf54e7b9 100644 --- a/ts/axo/AxoDropdownMenu.dom.tsx +++ b/ts/axo/AxoDropdownMenu.dom.tsx @@ -1,25 +1,12 @@ // Copyright 2025 Signal Messenger, LLC // SPDX-License-Identifier: AGPL-3.0-only -import { - memo, - useCallback, - useEffect, - useId, - useMemo, - useRef, - useState, -} from 'react'; +import { memo, useCallback, useEffect, useMemo, useRef, useState } from 'react'; import { DropdownMenu } from 'radix-ui'; import type { FC, ReactNode } from 'react'; import { computeAccessibleName } from 'dom-accessibility-api'; import { AxoSymbol } from './AxoSymbol.dom.tsx'; import { AxoBaseMenu } from './_internal/AxoBaseMenu.dom.tsx'; import { tw } from './tw.dom.tsx'; -import { - AriaLabellingProvider, - useAriaLabellingContext, - useCreateAriaLabellingContext, -} from './_internal/AriaLabellingContext.dom.tsx'; import { assert } from './_internal/assert.std.tsx'; import { getElementAriaRole, @@ -32,6 +19,7 @@ import { import { isTestOrMockEnvironment } from '../environment.std.ts'; import { AxoDragRegion } from './AxoDragRegion.dom.tsx'; import { AxoTheme } from './AxoTheme.dom.tsx'; +import { AriaLabelled } from './aria/AriaLabelled.dom.tsx'; const { useDisableDragRegions } = AxoDragRegion; @@ -218,28 +206,25 @@ export namespace AxoDropdownMenu { * Uses a portal to render the content part into the `body`. */ export const Content: FC = memo(props => { - const { context, labelId, descriptionId } = useCreateAriaLabellingContext(); const { open } = useStrictContext(RootContext); return ( - - - + + + {props.children} - - - + + + ); }); @@ -396,30 +381,19 @@ export namespace AxoDropdownMenu { * for the containing menu. */ export const Header: FC = memo(props => { - const labelId = useId(); - const descriptionId = useId(); - - const { labelRef, descriptionRef } = useAriaLabellingContext( - 'AxoDropdownMenu.Content/SubContent' - ); - return (