DesignX
AI Chat@paxeer/ai-chat/model-switcherimplemented

Model switcher

ToggleGroup of available models.

Install

$pnpm exec designx add @paxeer/ai-chat/model-switcher

Preview

Loading preview...

Source code

components/designx/ai-chat/model-switcher.tsxtsx
"use client";

import { ToggleGroup, ToggleGroupItem } from "@paxeer/core";

export function ModelSwitcher({
  models = ["designx-fast", "designx-reason", "local-stub"],
  value,
  onChange,
}: {
  models?: string[];
  value?: string;
  onChange?: (value: string) => void;
}) {
  return (
    <div data-slot="model-switcher" className="flex flex-col gap-2">
      <p className="text-[length:var(--md-sys-typescale-label-medium-size)] text-on-surface-variant">
        Model
      </p>
      <ToggleGroup
        type="single"
        value={value ?? models[0]}
        onValueChange={(next) => {
          if (next) onChange?.(next);
        }}
        variant="outline"
        className="flex-wrap"
      >
        {models.map((model) => (
          <ToggleGroupItem key={model} value={model}>
            {model}
          </ToggleGroupItem>
        ))}
      </ToggleGroup>
    </div>
  );
}

Dependencies

Registry dependencies