{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "aurora-ai-model-selector",
  "title": "Aurora AI Model Selector",
  "author": "jmagar <https://github.com/jmagar>",
  "description": "Aurora-native model selector parity surface from AI Elements.",
  "dependencies": [
    "lucide-react@^0.487.0"
  ],
  "registryDependencies": [
    "@aurora/aurora-tokens",
    "@aurora/aurora-ai-elements"
  ],
  "files": [
    {
      "path": "registry/aurora/blocks/ai/elements/model-selector.tsx",
      "content": "\"use client\"\n\nimport * as React from \"react\"\nimport { Cpu } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Select, SelectContent, SelectGroup, SelectItem, SelectTrigger, SelectValue } from \"@/registry/aurora/ui/select\"\n\nexport interface ModelSelectorProps extends React.HTMLAttributes<HTMLDivElement> {\n  models: string[]\n  value?: string\n  defaultValue?: string\n  onValueChange?: (value: string) => void\n  label?: string\n  description?: string\n  name?: string\n  disabled?: boolean\n  required?: boolean\n  triggerId?: string\n  triggerLabel?: string\n  placeholder?: string\n}\n\nconst ModelSelector = (\n    { ref,\n      models,\n      value,\n      defaultValue,\n      onValueChange,\n      label = \"Model\",\n      description = \"Select a model for this conversation.\",\n      name,\n      disabled,\n      required,\n      triggerId,\n      triggerLabel,\n      placeholder,\n      className,\n      style,\n      ...props\n    }: ModelSelectorProps & { ref?: React.Ref<HTMLDivElement> }\n  ) => {\n    const reactId = React.useId()\n    const descriptionId = description ? `${reactId}-description` : undefined\n    const fallbackValue = models[0]\n\n    return (\n    <div\n      ref={ref}\n      className={cn(\"grid gap-3 border p-3\", className)}\n      style={{\n        background: \"var(--aurora-surface-raised)\",\n        borderColor: \"var(--aurora-border-strong)\",\n        borderRadius: \"var(--aurora-radius-1)\",\n        boxShadow: \"var(--aurora-shadow-medium), var(--aurora-highlight-medium)\",\n        ...style,\n      }}\n      {...props}\n    >\n      <div className=\"grid gap-1\">\n        <div\n          className=\"flex items-center gap-2 aurora-text-label\"\n          style={{ color: \"var(--axon-orange)\", fontWeight: \"var(--aurora-weight-heading)\" }}\n        >\n          <Cpu className=\"size-3.5\" aria-hidden style={{ color: \"var(--axon-orange)\" }} />\n          {label}\n        </div>\n        <p id={descriptionId} className=\"aurora-text-meta\" style={{ margin: 0 }}>\n          {description}\n        </p>\n      </div>\n      <Select\n        value={value}\n        defaultValue={defaultValue ?? fallbackValue}\n        onValueChange={onValueChange}\n        name={name}\n        disabled={disabled || models.length === 0}\n        required={required}\n      >\n        <SelectTrigger\n          id={triggerId}\n          aria-label={triggerLabel ?? label}\n          aria-describedby={descriptionId}\n          className=\"h-10 rounded-[10px]\"\n        >\n          <SelectValue placeholder={placeholder ?? fallbackValue ?? \"Select Model\"} />\n        </SelectTrigger>\n        <SelectContent>\n          <SelectGroup>\n            {models.map((item) => (\n              <SelectItem key={item} value={item}>\n                {item}\n              </SelectItem>\n            ))}\n          </SelectGroup>\n        </SelectContent>\n      </Select>\n    </div>\n    )\n  }\nModelSelector.displayName = \"ModelSelector\"\n\nexport { ModelSelector }\n",
      "type": "registry:component",
      "target": "@components/aurora/ai/model-selector.tsx"
    }
  ],
  "meta": {
    "namespace": "@aurora",
    "style": "aurora",
    "family": "block",
    "requiresTokens": true,
    "sourcePath": "registry/aurora/blocks/ai/elements/model-selector.tsx",
    "installTarget": "@components/aurora/ai/model-selector.tsx",
    "taxonomy": "ai"
  },
  "docs": "Aurora block that expects `aurora-tokens` to be installed first.\n\nDefault install target: `@components/aurora/ai/model-selector.tsx`.\n\nRegistry dependencies: `aurora-tokens`, `aurora-ai-elements`.",
  "categories": [
    "aurora",
    "block",
    "ai"
  ],
  "type": "registry:block"
}