This component no longer exists. It was in PaceUI GSAP’s manifest when we first indexed it and is not there now — the registry served its inventory on 2026-08-06 and this item was not on it. The install command below will fail. It is kept here because a tutorial somewhere still tells people to run it.
Modal Ability Selector
paceui-gsap/ai-modal-ability-selectorRemovedComponent
Compact selector for toggling abilities with icons and custom styles
Live preview
live · rendered by the registry
Rendered by PaceUI GSAP on their own page — this is the component running, not a screenshot of it.Install it
npx shadcn@latest add https://gsap.paceui.com/r/ai-modal-ability-selector.jsonSource
1import { ComponentProps, ReactNode, useEffect, useState } from "react";23import { BrainIcon, CodeIcon, EyeIcon, FileSearch2Icon, SpeechIcon, Wand2Icon } from "lucide-react";45import { cn } from "@/lib/utils";67import { Swap } from "@/components/gsap/swap";8import { Button } from "@/components/ui/button";9import {10 DropdownMenu,11 DropdownMenuCheckboxItem,12 DropdownMenuContent,13 DropdownMenuTrigger,14} from "@/components/ui/dropdown-menu";15import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from "@/components/ui/tooltip";1617const abilities = ["vision", "thinking", "code", "speech", "search", "creativity"] as const;1819type AbilityType = (typeof abilities)[number];2021const abilityConfig: Record<AbilityType, { color: string; text: string; icon: ReactNode }> = {22 thinking: {23 color: "bg-purple-500/10 hover:bg-purple-500/20 text-purple-500",24 text: "Thinking",25 icon: <BrainIcon className="size-4.5" />,26 },27 code: {28 color: "bg-cyan-500/10 hover:bg-cyan-500/20 text-cyan-500",29 text: "Code",30 icon: <CodeIcon className="size-4.5" />,31 },32 vision: {33 color: "bg-green-500/10 hover:bg-green-500/20 text-green-500",34 text: "Vision",35 icon: <EyeIcon className="size-4.5" />,36 },37 creativity: {38 color: "bg-orange-500/10 hover:bg-orange-500/20 text-orange-500",39 text: "Creativity",40 icon: <Wand2Icon className="size-4.5" />,41 },42 search: {43 color: "bg-teal-500/10 hover:bg-teal-500/20 text-teal-500",44 text: "Search",45 icon: <FileSearch2Icon className="size-4.5" />,46 },47 speech: {48 color: "bg-pink-500/10 hover:bg-pink-500/20 text-pink-500",49 text: "Speech",50 icon: <SpeechIcon className="size-4.5" />,51 },52};5354type ModalAbilitySelectorProps = ComponentProps<typeof Button> & {55 buttonVariant?: "ghost" | "outline" | "default";56 maxVisible?: number;57};5859export const AiModalAbilitySelector = ({60 className,61 buttonVariant = "ghost",62 maxVisible = 3,63 ...props64}: ModalAbilitySelectorProps) => {65 const [selected, setSelected] = useState<AbilityType[]>(["code", "search"]);6667 const toggleAbility = (ability: AbilityType) => {68 setSelected((prev) => (prev.includes(ability) ? prev.filter((c) => c !== ability) : [...prev, ability]));69 };7071 useEffect(() => setSelected((s) => [...s]), [maxVisible]);7273 return (74 <TooltipProvider>75 <DropdownMenu>76// … truncated
What it pulls in
npm packages
Other registry items
