Files
community-rule/app/components/controls/MultiSelect/MultiSelect.container.tsx
T
adilalloandCursor 20ea4a2f30 Give MultiSelect chips accessible names and start creation fields empty.
Catalog chips now announce Select or Deselect so they are named for assistive tech. Method and value modals open blank; Generate draft inserts the catalog copy that used to be prefilled, and Customize still keeps the section headings.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-29 15:59:00 -06:00

66 lines
1.8 KiB
TypeScript

"use client";
import { memo } from "react";
import { useTranslation } from "../../../contexts/MessagesContext";
import MultiSelectView from "./MultiSelect.view";
import type { MultiSelectProps } from "./MultiSelect.types";
/**
* Figma: "Control / MultiSelect". Labelled set of chips for
* picking multiple values, with an optional add button for custom entries.
*/
const MultiSelectContainer = memo<MultiSelectProps>(
({
label,
showHelpIcon = false,
size: sizeProp = "m",
palette: paletteProp = "default",
options,
onChipClick,
onAddClick,
addButton: addButtonProp = true,
addButtonText,
formHeader = true,
onCustomChipConfirm,
onCustomChipClose,
maxSelections,
selectionCountText,
limitReachedAnnouncement,
className = "",
}) => {
const t = useTranslation("controlsChrome");
const size = sizeProp;
const palette = paletteProp;
return (
<MultiSelectView
label={label}
showHelpIcon={showHelpIcon}
size={size}
palette={palette}
options={options}
onChipClick={onChipClick}
onAddClick={onAddClick}
addButton={addButtonProp}
addButtonText={addButtonText}
addButtonAriaLabel={
addButtonText || t("multiSelectAddFallback")
}
chipSelectAriaLabel={t("chipSelect")}
chipDeselectAriaLabel={t("chipDeselect")}
formHeader={formHeader}
onCustomChipConfirm={onCustomChipConfirm}
onCustomChipClose={onCustomChipClose}
maxSelections={maxSelections}
selectionCountText={selectionCountText}
limitReachedAnnouncement={limitReachedAnnouncement}
className={className}
/>
);
},
);
MultiSelectContainer.displayName = "MultiSelect";
export default MultiSelectContainer;