From 32060a4fa7671a76edfad1b1e90b959dcaba8655 Mon Sep 17 00:00:00 2001 From: pasqualevitiello Date: Tue, 20 Oct 2026 17:23:04 +0200 Subject: [PATCH] chore(ui): remove aria-label attributes from autocomplete and combobox Co-authored-by: Cursor --- apps/ui/public/r/autocomplete.json | 2 +- apps/ui/public/r/combobox.json | 2 +- apps/ui/registry/default/ui/autocomplete.tsx | 2 -- apps/ui/registry/default/ui/combobox.tsx | 3 --- packages/ui/src/components/autocomplete.tsx | 2 -- packages/ui/src/components/combobox.tsx | 3 --- 6 files changed, 2 insertions(+), 12 deletions(-) diff --git a/apps/ui/public/r/autocomplete.json b/apps/ui/public/r/autocomplete.json index a8525ce53..5daec578f 100644 --- a/apps/ui/public/r/autocomplete.json +++ b/apps/ui/public/r/autocomplete.json @@ -11,7 +11,7 @@ "files": [ { "path": "registry/default/ui/autocomplete.tsx", - "content": "\"use client\";\n\nimport { Autocomplete as AutocompletePrimitive } from \"@base-ui/react/autocomplete\";\nimport { ChevronsUpDownIcon, XIcon } from \"lucide-react\";\nimport type React from \"react\";\nimport { cn } from \"@/registry/default/lib/utils\";\nimport { Input } from \"@/registry/default/ui/input\";\nimport { ScrollArea } from \"@/registry/default/ui/scroll-area\";\n\nexport const Autocomplete: typeof AutocompletePrimitive.Root =\n AutocompletePrimitive.Root;\n\nexport function AutocompleteInput({\n className,\n showTrigger = false,\n showClear = false,\n startAddon,\n size,\n triggerProps,\n clearProps,\n ...props\n}: Omit & {\n showTrigger?: boolean;\n showClear?: boolean;\n startAddon?: React.ReactNode;\n size?: \"sm\" | \"default\" | \"lg\" | number;\n ref?: React.Ref;\n triggerProps?: AutocompletePrimitive.Trigger.Props;\n clearProps?: AutocompletePrimitive.Clear.Props;\n}): React.ReactElement {\n const sizeValue = (size ?? \"default\") as \"sm\" | \"default\" | \"lg\" | number;\n\n return (\n *.w-full]:w-fit w-full text-foreground has-disabled:opacity-64\"\n data-slot=\"autocomplete-input-group\"\n >\n {startAddon && (\n \n {startAddon}\n \n )}\n }\n {...props}\n />\n {showTrigger && (\n \n \n \n \n \n )}\n {showClear && (\n \n \n \n )}\n \n );\n}\n\nexport function AutocompletePopup({\n className,\n children,\n side = \"bottom\",\n sideOffset = 4,\n alignOffset,\n align = \"start\",\n anchor,\n portalProps,\n ...props\n}: AutocompletePrimitive.Popup.Props & {\n align?: AutocompletePrimitive.Positioner.Props[\"align\"];\n sideOffset?: AutocompletePrimitive.Positioner.Props[\"sideOffset\"];\n alignOffset?: AutocompletePrimitive.Positioner.Props[\"alignOffset\"];\n side?: AutocompletePrimitive.Positioner.Props[\"side\"];\n anchor?: AutocompletePrimitive.Positioner.Props[\"anchor\"];\n portalProps?: AutocompletePrimitive.Portal.Props;\n}): React.ReactElement {\n return (\n \n \n \n \n {children}\n \n \n \n \n );\n}\n\nexport function AutocompleteItem({\n className,\n children,\n ...props\n}: AutocompletePrimitive.Item.Props): React.ReactElement {\n return (\n \n {children}\n \n );\n}\n\nexport function AutocompleteSeparator({\n className,\n ...props\n}: AutocompletePrimitive.Separator.Props): React.ReactElement {\n return (\n \n );\n}\n\nexport function AutocompleteGroup({\n className,\n ...props\n}: AutocompletePrimitive.Group.Props): React.ReactElement {\n return (\n \n );\n}\n\nexport function AutocompleteGroupLabel({\n className,\n ...props\n}: AutocompletePrimitive.GroupLabel.Props): React.ReactElement {\n return (\n \n );\n}\n\nexport function AutocompleteEmpty({\n className,\n ...props\n}: AutocompletePrimitive.Empty.Props): React.ReactElement {\n return (\n \n );\n}\n\nexport function AutocompleteRow({\n className,\n ...props\n}: AutocompletePrimitive.Row.Props): React.ReactElement {\n return (\n \n );\n}\n\nexport const AutocompleteValue: typeof AutocompletePrimitive.Value =\n AutocompletePrimitive.Value;\n\nexport function AutocompleteList({\n className,\n ...props\n}: AutocompletePrimitive.List.Props): React.ReactElement {\n return (\n \n \n \n );\n}\n\nexport function AutocompleteClear({\n className,\n ...props\n}: AutocompletePrimitive.Clear.Props): React.ReactElement {\n return (\n \n \n \n );\n}\n\nexport function AutocompleteStatus({\n className,\n ...props\n}: AutocompletePrimitive.Status.Props): React.ReactElement {\n return (\n \n );\n}\n\nexport const AutocompleteCollection: typeof AutocompletePrimitive.Collection =\n AutocompletePrimitive.Collection;\n\nexport function AutocompleteTrigger({\n className,\n children,\n ...props\n}: AutocompletePrimitive.Trigger.Props): React.ReactElement {\n return (\n \n {children}\n \n );\n}\n\nexport const useAutocompleteFilter: typeof AutocompletePrimitive.useFilter =\n AutocompletePrimitive.useFilter;\n\nexport { AutocompletePrimitive };\n", + "content": "\"use client\";\n\nimport { Autocomplete as AutocompletePrimitive } from \"@base-ui/react/autocomplete\";\nimport { ChevronsUpDownIcon, XIcon } from \"lucide-react\";\nimport type React from \"react\";\nimport { cn } from \"@/registry/default/lib/utils\";\nimport { Input } from \"@/registry/default/ui/input\";\nimport { ScrollArea } from \"@/registry/default/ui/scroll-area\";\n\nexport const Autocomplete: typeof AutocompletePrimitive.Root =\n AutocompletePrimitive.Root;\n\nexport function AutocompleteInput({\n className,\n showTrigger = false,\n showClear = false,\n startAddon,\n size,\n triggerProps,\n clearProps,\n ...props\n}: Omit & {\n showTrigger?: boolean;\n showClear?: boolean;\n startAddon?: React.ReactNode;\n size?: \"sm\" | \"default\" | \"lg\" | number;\n ref?: React.Ref;\n triggerProps?: AutocompletePrimitive.Trigger.Props;\n clearProps?: AutocompletePrimitive.Clear.Props;\n}): React.ReactElement {\n const sizeValue = (size ?? \"default\") as \"sm\" | \"default\" | \"lg\" | number;\n\n return (\n *.w-full]:w-fit w-full text-foreground has-disabled:opacity-64\"\n data-slot=\"autocomplete-input-group\"\n >\n {startAddon && (\n \n {startAddon}\n \n )}\n }\n {...props}\n />\n {showTrigger && (\n \n \n \n \n \n )}\n {showClear && (\n \n \n \n )}\n \n );\n}\n\nexport function AutocompletePopup({\n className,\n children,\n side = \"bottom\",\n sideOffset = 4,\n alignOffset,\n align = \"start\",\n anchor,\n portalProps,\n ...props\n}: AutocompletePrimitive.Popup.Props & {\n align?: AutocompletePrimitive.Positioner.Props[\"align\"];\n sideOffset?: AutocompletePrimitive.Positioner.Props[\"sideOffset\"];\n alignOffset?: AutocompletePrimitive.Positioner.Props[\"alignOffset\"];\n side?: AutocompletePrimitive.Positioner.Props[\"side\"];\n anchor?: AutocompletePrimitive.Positioner.Props[\"anchor\"];\n portalProps?: AutocompletePrimitive.Portal.Props;\n}): React.ReactElement {\n return (\n \n \n \n \n {children}\n \n \n \n \n );\n}\n\nexport function AutocompleteItem({\n className,\n children,\n ...props\n}: AutocompletePrimitive.Item.Props): React.ReactElement {\n return (\n \n {children}\n \n );\n}\n\nexport function AutocompleteSeparator({\n className,\n ...props\n}: AutocompletePrimitive.Separator.Props): React.ReactElement {\n return (\n \n );\n}\n\nexport function AutocompleteGroup({\n className,\n ...props\n}: AutocompletePrimitive.Group.Props): React.ReactElement {\n return (\n \n );\n}\n\nexport function AutocompleteGroupLabel({\n className,\n ...props\n}: AutocompletePrimitive.GroupLabel.Props): React.ReactElement {\n return (\n \n );\n}\n\nexport function AutocompleteEmpty({\n className,\n ...props\n}: AutocompletePrimitive.Empty.Props): React.ReactElement {\n return (\n \n );\n}\n\nexport function AutocompleteRow({\n className,\n ...props\n}: AutocompletePrimitive.Row.Props): React.ReactElement {\n return (\n \n );\n}\n\nexport const AutocompleteValue: typeof AutocompletePrimitive.Value =\n AutocompletePrimitive.Value;\n\nexport function AutocompleteList({\n className,\n ...props\n}: AutocompletePrimitive.List.Props): React.ReactElement {\n return (\n \n \n \n );\n}\n\nexport function AutocompleteClear({\n className,\n ...props\n}: AutocompletePrimitive.Clear.Props): React.ReactElement {\n return (\n \n \n \n );\n}\n\nexport function AutocompleteStatus({\n className,\n ...props\n}: AutocompletePrimitive.Status.Props): React.ReactElement {\n return (\n \n );\n}\n\nexport const AutocompleteCollection: typeof AutocompletePrimitive.Collection =\n AutocompletePrimitive.Collection;\n\nexport function AutocompleteTrigger({\n className,\n children,\n ...props\n}: AutocompletePrimitive.Trigger.Props): React.ReactElement {\n return (\n \n {children}\n \n );\n}\n\nexport const useAutocompleteFilter: typeof AutocompletePrimitive.useFilter =\n AutocompletePrimitive.useFilter;\n\nexport { AutocompletePrimitive };\n", "type": "registry:ui" } ], diff --git a/apps/ui/public/r/combobox.json b/apps/ui/public/r/combobox.json index fa6d5a42d..2276650fd 100644 --- a/apps/ui/public/r/combobox.json +++ b/apps/ui/public/r/combobox.json @@ -11,7 +11,7 @@ "files": [ { "path": "registry/default/ui/combobox.tsx", - "content": "\"use client\";\n\nimport { Combobox as ComboboxPrimitive } from \"@base-ui/react/combobox\";\nimport { ChevronsUpDownIcon, XIcon } from \"lucide-react\";\nimport * as React from \"react\";\nimport { cn } from \"@/registry/default/lib/utils\";\nimport { Input } from \"@/registry/default/ui/input\";\nimport { ScrollArea } from \"@/registry/default/ui/scroll-area\";\n\nexport const ComboboxContext: React.Context<{\n chipsRef: React.RefObject | null;\n multiple: boolean;\n}> = React.createContext<{\n chipsRef: React.RefObject | null;\n multiple: boolean;\n}>({\n chipsRef: null,\n multiple: false,\n});\n\nexport function Combobox<\n Value,\n Multiple extends boolean | undefined = false,\n Item = Value,\n>(\n props: ComboboxPrimitive.Root.Props,\n): React.ReactElement {\n const chipsRef = React.useRef(null);\n return (\n \n \n \n );\n}\n\nexport function ComboboxChipsInput({\n className,\n size,\n ...props\n}: Omit & {\n size?: \"sm\" | \"default\" | \"lg\" | number;\n ref?: React.Ref;\n}): React.ReactElement {\n const sizeValue = (size ?? \"default\") as \"sm\" | \"default\" | \"lg\" | number;\n\n return (\n \n );\n}\n\nexport function ComboboxInput({\n className,\n showTrigger = true,\n showClear = false,\n startAddon,\n size,\n triggerProps,\n clearProps,\n ...props\n}: Omit & {\n showTrigger?: boolean;\n showClear?: boolean;\n startAddon?: React.ReactNode;\n size?: \"sm\" | \"default\" | \"lg\" | number;\n ref?: React.Ref;\n triggerProps?: ComboboxPrimitive.Trigger.Props;\n clearProps?: ComboboxPrimitive.Clear.Props;\n}): React.ReactElement {\n const sizeValue = (size ?? \"default\") as \"sm\" | \"default\" | \"lg\" | number;\n\n return (\n *.w-full]:w-fit w-full text-foreground has-disabled:opacity-64\"\n data-slot=\"combobox-input-group\"\n >\n {startAddon && (\n \n {startAddon}\n \n )}\n \n }\n {...props}\n />\n {showTrigger && (\n \n \n \n \n \n )}\n {showClear && (\n \n \n \n )}\n \n );\n}\n\nexport function ComboboxTrigger({\n className,\n children,\n ...props\n}: ComboboxPrimitive.Trigger.Props): React.ReactElement {\n return (\n \n {children}\n \n );\n}\n\nexport function ComboboxPopup({\n className,\n children,\n side = \"bottom\",\n sideOffset = 4,\n alignOffset,\n align = \"start\",\n anchor: anchorProp,\n portalProps,\n ...props\n}: ComboboxPrimitive.Popup.Props & {\n align?: ComboboxPrimitive.Positioner.Props[\"align\"];\n sideOffset?: ComboboxPrimitive.Positioner.Props[\"sideOffset\"];\n alignOffset?: ComboboxPrimitive.Positioner.Props[\"alignOffset\"];\n side?: ComboboxPrimitive.Positioner.Props[\"side\"];\n anchor?: ComboboxPrimitive.Positioner.Props[\"anchor\"];\n portalProps?: ComboboxPrimitive.Portal.Props;\n}): React.ReactElement {\n const { chipsRef } = React.useContext(ComboboxContext);\n const anchor = anchorProp ?? chipsRef;\n\n return (\n \n \n \n \n {children}\n \n \n \n \n );\n}\n\nexport function ComboboxItem({\n className,\n children,\n ...props\n}: ComboboxPrimitive.Item.Props): React.ReactElement {\n return (\n \n \n \n \n \n \n
{children}
\n \n );\n}\n\nexport function ComboboxSeparator({\n className,\n ...props\n}: ComboboxPrimitive.Separator.Props): React.ReactElement {\n return (\n \n );\n}\n\nexport function ComboboxGroup({\n className,\n ...props\n}: ComboboxPrimitive.Group.Props): React.ReactElement {\n return (\n \n );\n}\n\nexport function ComboboxGroupLabel({\n className,\n ...props\n}: ComboboxPrimitive.GroupLabel.Props): React.ReactElement {\n return (\n \n );\n}\n\nexport function ComboboxEmpty({\n className,\n ...props\n}: ComboboxPrimitive.Empty.Props): React.ReactElement {\n return (\n \n );\n}\n\nexport function ComboboxRow({\n className,\n ...props\n}: ComboboxPrimitive.Row.Props): React.ReactElement {\n return (\n \n );\n}\n\nexport const ComboboxValue: typeof ComboboxPrimitive.Value =\n ComboboxPrimitive.Value;\n\nexport function ComboboxList({\n className,\n ...props\n}: ComboboxPrimitive.List.Props): React.ReactElement {\n return (\n \n \n \n );\n}\n\nexport function ComboboxClear({\n className,\n ...props\n}: ComboboxPrimitive.Clear.Props): React.ReactElement {\n return (\n \n );\n}\n\nexport function ComboboxStatus({\n className,\n ...props\n}: ComboboxPrimitive.Status.Props): React.ReactElement {\n return (\n \n );\n}\n\nexport const ComboboxCollection: typeof ComboboxPrimitive.Collection =\n ComboboxPrimitive.Collection;\n\nexport function ComboboxChips({\n className,\n children,\n startAddon,\n ...props\n}: ComboboxPrimitive.Chips.Props & {\n startAddon?: React.ReactNode;\n}): React.ReactElement {\n const { chipsRef } = React.useContext(ComboboxContext);\n\n return (\n | null}\n {...props}\n >\n {startAddon && (\n \n {startAddon}\n \n )}\n {children}\n \n );\n}\n\nexport function ComboboxChip({\n children,\n removeProps,\n ...props\n}: ComboboxPrimitive.Chip.Props & {\n removeProps?: ComboboxPrimitive.ChipRemove.Props;\n}): React.ReactElement {\n return (\n \n {children}\n \n \n );\n}\n\nexport function ComboboxChipRemove(\n props: ComboboxPrimitive.ChipRemove.Props,\n): React.ReactElement {\n return (\n \n \n \n );\n}\n\nexport const createComboboxItems: typeof ComboboxPrimitive.createItems =\n ComboboxPrimitive.createItems;\n\nexport const useComboboxFilter: typeof ComboboxPrimitive.useFilter =\n ComboboxPrimitive.useFilter;\n\nexport { ComboboxPrimitive };\n", + "content": "\"use client\";\n\nimport { Combobox as ComboboxPrimitive } from \"@base-ui/react/combobox\";\nimport { ChevronsUpDownIcon, XIcon } from \"lucide-react\";\nimport * as React from \"react\";\nimport { cn } from \"@/registry/default/lib/utils\";\nimport { Input } from \"@/registry/default/ui/input\";\nimport { ScrollArea } from \"@/registry/default/ui/scroll-area\";\n\nexport const ComboboxContext: React.Context<{\n chipsRef: React.RefObject | null;\n multiple: boolean;\n}> = React.createContext<{\n chipsRef: React.RefObject | null;\n multiple: boolean;\n}>({\n chipsRef: null,\n multiple: false,\n});\n\nexport function Combobox<\n Value,\n Multiple extends boolean | undefined = false,\n Item = Value,\n>(\n props: ComboboxPrimitive.Root.Props,\n): React.ReactElement {\n const chipsRef = React.useRef(null);\n return (\n \n \n \n );\n}\n\nexport function ComboboxChipsInput({\n className,\n size,\n ...props\n}: Omit & {\n size?: \"sm\" | \"default\" | \"lg\" | number;\n ref?: React.Ref;\n}): React.ReactElement {\n const sizeValue = (size ?? \"default\") as \"sm\" | \"default\" | \"lg\" | number;\n\n return (\n \n );\n}\n\nexport function ComboboxInput({\n className,\n showTrigger = true,\n showClear = false,\n startAddon,\n size,\n triggerProps,\n clearProps,\n ...props\n}: Omit & {\n showTrigger?: boolean;\n showClear?: boolean;\n startAddon?: React.ReactNode;\n size?: \"sm\" | \"default\" | \"lg\" | number;\n ref?: React.Ref;\n triggerProps?: ComboboxPrimitive.Trigger.Props;\n clearProps?: ComboboxPrimitive.Clear.Props;\n}): React.ReactElement {\n const sizeValue = (size ?? \"default\") as \"sm\" | \"default\" | \"lg\" | number;\n\n return (\n *.w-full]:w-fit w-full text-foreground has-disabled:opacity-64\"\n data-slot=\"combobox-input-group\"\n >\n {startAddon && (\n \n {startAddon}\n \n )}\n \n }\n {...props}\n />\n {showTrigger && (\n \n \n \n \n \n )}\n {showClear && (\n \n \n \n )}\n \n );\n}\n\nexport function ComboboxTrigger({\n className,\n children,\n ...props\n}: ComboboxPrimitive.Trigger.Props): React.ReactElement {\n return (\n \n {children}\n \n );\n}\n\nexport function ComboboxPopup({\n className,\n children,\n side = \"bottom\",\n sideOffset = 4,\n alignOffset,\n align = \"start\",\n anchor: anchorProp,\n portalProps,\n ...props\n}: ComboboxPrimitive.Popup.Props & {\n align?: ComboboxPrimitive.Positioner.Props[\"align\"];\n sideOffset?: ComboboxPrimitive.Positioner.Props[\"sideOffset\"];\n alignOffset?: ComboboxPrimitive.Positioner.Props[\"alignOffset\"];\n side?: ComboboxPrimitive.Positioner.Props[\"side\"];\n anchor?: ComboboxPrimitive.Positioner.Props[\"anchor\"];\n portalProps?: ComboboxPrimitive.Portal.Props;\n}): React.ReactElement {\n const { chipsRef } = React.useContext(ComboboxContext);\n const anchor = anchorProp ?? chipsRef;\n\n return (\n \n \n \n \n {children}\n \n \n \n \n );\n}\n\nexport function ComboboxItem({\n className,\n children,\n ...props\n}: ComboboxPrimitive.Item.Props): React.ReactElement {\n return (\n \n \n \n \n \n \n
{children}
\n \n );\n}\n\nexport function ComboboxSeparator({\n className,\n ...props\n}: ComboboxPrimitive.Separator.Props): React.ReactElement {\n return (\n \n );\n}\n\nexport function ComboboxGroup({\n className,\n ...props\n}: ComboboxPrimitive.Group.Props): React.ReactElement {\n return (\n \n );\n}\n\nexport function ComboboxGroupLabel({\n className,\n ...props\n}: ComboboxPrimitive.GroupLabel.Props): React.ReactElement {\n return (\n \n );\n}\n\nexport function ComboboxEmpty({\n className,\n ...props\n}: ComboboxPrimitive.Empty.Props): React.ReactElement {\n return (\n \n );\n}\n\nexport function ComboboxRow({\n className,\n ...props\n}: ComboboxPrimitive.Row.Props): React.ReactElement {\n return (\n \n );\n}\n\nexport const ComboboxValue: typeof ComboboxPrimitive.Value =\n ComboboxPrimitive.Value;\n\nexport function ComboboxList({\n className,\n ...props\n}: ComboboxPrimitive.List.Props): React.ReactElement {\n return (\n \n \n \n );\n}\n\nexport function ComboboxClear({\n className,\n ...props\n}: ComboboxPrimitive.Clear.Props): React.ReactElement {\n return (\n \n );\n}\n\nexport function ComboboxStatus({\n className,\n ...props\n}: ComboboxPrimitive.Status.Props): React.ReactElement {\n return (\n \n );\n}\n\nexport const ComboboxCollection: typeof ComboboxPrimitive.Collection =\n ComboboxPrimitive.Collection;\n\nexport function ComboboxChips({\n className,\n children,\n startAddon,\n ...props\n}: ComboboxPrimitive.Chips.Props & {\n startAddon?: React.ReactNode;\n}): React.ReactElement {\n const { chipsRef } = React.useContext(ComboboxContext);\n\n return (\n | null}\n {...props}\n >\n {startAddon && (\n \n {startAddon}\n \n )}\n {children}\n \n );\n}\n\nexport function ComboboxChip({\n children,\n removeProps,\n ...props\n}: ComboboxPrimitive.Chip.Props & {\n removeProps?: ComboboxPrimitive.ChipRemove.Props;\n}): React.ReactElement {\n return (\n \n {children}\n \n \n );\n}\n\nexport function ComboboxChipRemove(\n props: ComboboxPrimitive.ChipRemove.Props,\n): React.ReactElement {\n return (\n \n \n \n );\n}\n\nexport const createComboboxItems: typeof ComboboxPrimitive.createItems =\n ComboboxPrimitive.createItems;\n\nexport const useComboboxFilter: typeof ComboboxPrimitive.useFilter =\n ComboboxPrimitive.useFilter;\n\nexport { ComboboxPrimitive };\n", "type": "registry:ui" } ], diff --git a/apps/ui/registry/default/ui/autocomplete.tsx b/apps/ui/registry/default/ui/autocomplete.tsx index 9bfde9427..0f0c4f337 100644 --- a/apps/ui/registry/default/ui/autocomplete.tsx +++ b/apps/ui/registry/default/ui/autocomplete.tsx @@ -59,7 +59,6 @@ export function AutocompleteInput({ /> {showTrigger && ( {showTrigger && ( {showTrigger && ( {showTrigger && (