Docs Components Assistant

ModelSelector

React example follows below.
ts
import { ModelSelector } from "@grassroot/ui-react/assistant";
import { assistantDemoModels } from "@grassroot/demo-fixtures";
export default function ModelSelectorDemo() {
return <ModelSelector models={assistantDemoModels} model="opus" effort="medium" />;
}
ts
<script setup lang="ts">
import { ModelSelector } from "@grassroot/ui-vue/assistant";
import { assistantDemoModels } from "@grassroot/demo-fixtures";
</script>
<template>
<ModelSelector :models="assistantDemoModels" model="opus" effort="medium" />
</template>
ts
import "./ensure-compiler";
import { ChangeDetectionStrategy, Component } from "@angular/core";
import { GrassrootModelSelector } from "@grassroot/ui-angular/assistant";
import { assistantDemoModels } from "@grassroot/demo-fixtures";
@Component({
selector: "app-model-selector-demo",
standalone: true,
imports: [GrassrootModelSelector],
changeDetection: ChangeDetectionStrategy.OnPush,
template: `<grassroot-model-selector [models]="models" model="opus" effort="medium" />`,
})
export class ModelSelectorDemoComponent {
protected readonly models = assistantDemoModels;
}
export default ModelSelectorDemoComponent;
ts
<script lang="ts">
import { ModelSelector } from "@grassroot/ui-svelte/assistant";
import { assistantDemoModels } from "@grassroot/demo-fixtures";
</script>
<ModelSelector models={assistantDemoModels} model="opus" effort="medium" />
ts
/** @jsxImportSource solid-js */
import { ModelSelector } from "@grassroot/ui-solid/assistant";
import { assistantDemoModels } from "@grassroot/demo-fixtures";
export default function ModelSelectorDemo() {
return <ModelSelector models={assistantDemoModels} model="opus" effort="medium" />;
}

Installation

API Reference

Import

import { ModelSelector } from "@grassroot/ui-react/assistant";
import { assistantDemoModels } from "@grassroot/demo-fixtures";

Props

Prop
Type
Default
Requirement
models
readonly ModelOption[] | undefined
optional
model
string | undefined
optional
effort
string | undefined
optional
efforts
readonly string[] | undefined
optional
onModelChange
((model: ModelOption) => void) | undefined
optional
onEffortChange
((effort: ModelEffort) => void) | undefined
optional
onModelContextChange
((context: ModelContextRegistration) => void) | undefined
optional
Prop
models
Type
readonly ModelOption[] | undefined
Default
Requirement
optional
Prop
model
Type
string | undefined
Default
Requirement
optional
Prop
effort
Type
string | undefined
Default
Requirement
optional
Prop
efforts
Type
readonly string[] | undefined
Default
Requirement
optional
Prop
onModelChange
Type
((model: ModelOption) => void) | undefined
Default
Requirement
optional
Prop
onEffortChange
Type
((effort: ModelEffort) => void) | undefined
Default
Requirement
optional
Prop
onModelContextChange
Type
((context: ModelContextRegistration) => void) | undefined
Default
Requirement
optional

Events

EventPayload
onModelChange((model: ModelOption) => void) | undefined
onEffortChange((effort: ModelEffort) => void) | undefined
onModelContextChange((context: ModelContextRegistration) => void) | undefined

Native attributes

Standard DOM and ARIA attributes not listed above spread onto the root element.

Import

import { ModelSelector } from "@grassroot/ui-vue/assistant";
import { assistantDemoModels } from "@grassroot/demo-fixtures";

Props

Prop
Type
Default
Requirement
models
ModelOption[]
() => []
optional
model
string
optional
effort
string
optional
efforts
string[]
() => ["low", "medium", "high"]
optional
Prop
models
Type
ModelOption[]
Default
() => []
Requirement
optional
Prop
model
Type
string
Default
Requirement
optional
Prop
effort
Type
string
Default
Requirement
optional
Prop
efforts
Type
string[]
Default
() => ["low", "medium", "high"]
Requirement
optional

Events

EventPayload
modelChange(ModelOption) => void
effortChange(ModelEffort) => void
modelContextChange({ modelName: string; reasoningEffort: ModelEffort; }) => void

Import

import "./ensure-compiler";
import { ChangeDetectionStrategy, Component } from "@angular/core";
import { GrassrootModelSelector } from "@grassroot/ui-angular/assistant";
import { assistantDemoModels } from "@grassroot/demo-fixtures";

Props

Prop
Type
Default
Requirement
models
readonly ModelOption[]
[]
optional
model
string
optional
effort
string
optional
efforts
readonly string[]
["low", "medium", "high"]
optional
Prop
models
Type
readonly ModelOption[]
Default
[]
Requirement
optional
Prop
model
Type
string
Default
Requirement
optional
Prop
effort
Type
string
Default
Requirement
optional
Prop
efforts
Type
readonly string[]
Default
["low", "medium", "high"]
Requirement
optional

Events

EventPayload
modelChangeModelOption
effortChangeModelEffort
modelContextChange{ modelName: string; reasoningEffort: ModelEffort }

Import

import { ModelSelector } from "@grassroot/ui-svelte/assistant";
import { assistantDemoModels } from "@grassroot/demo-fixtures";

Props

Prop
Type
Default
Requirement
models
readonly ModelOption[]
optional
model
string
optional
effort
string
optional
efforts
readonly string[]
optional
onModelChange
(model: ModelOption) => void
optional
onEffortChange
(effort: ModelEffort) => void
optional
onModelContextChange
(context: { modelName: string; reasoningEffort: ModelEffort }) => void
optional
class
string
optional
style
string
optional
Prop
models
Type
readonly ModelOption[]
Default
Requirement
optional
Prop
model
Type
string
Default
Requirement
optional
Prop
effort
Type
string
Default
Requirement
optional
Prop
efforts
Type
readonly string[]
Default
Requirement
optional
Prop
onModelChange
Type
(model: ModelOption) => void
Default
Requirement
optional
Prop
onEffortChange
Type
(effort: ModelEffort) => void
Default
Requirement
optional
Prop
onModelContextChange
Type
(context: { modelName: string; reasoningEffort: ModelEffort }) => void
Default
Requirement
optional
Prop
class
Type
string
Default
Requirement
optional
Prop
style
Type
string
Default
Requirement
optional

Events

EventPayload
onModelChange(model: ModelOption) => void
onEffortChange(effort: ModelEffort) => void
onModelContextChange(context: { modelName: string; reasoningEffort: ModelEffort }) => void

Import

import { ModelSelector } from "@grassroot/ui-solid/assistant";
import { assistantDemoModels } from "@grassroot/demo-fixtures";

Props

Prop
Type
Default
Requirement
models
readonly ModelOption[]
optional
model
string
optional
effort
string
optional
efforts
readonly string[]
optional
onModelChange
(model: ModelOption) => void
optional
onEffortChange
(effort: ModelEffort) => void
optional
onModelContextChange
(context: ModelContextRegistration) => void
optional
Prop
models
Type
readonly ModelOption[]
Default
Requirement
optional
Prop
model
Type
string
Default
Requirement
optional
Prop
effort
Type
string
Default
Requirement
optional
Prop
efforts
Type
readonly string[]
Default
Requirement
optional
Prop
onModelChange
Type
(model: ModelOption) => void
Default
Requirement
optional
Prop
onEffortChange
Type
(effort: ModelEffort) => void
Default
Requirement
optional
Prop
onModelContextChange
Type
(context: ModelContextRegistration) => void
Default
Requirement
optional

Events

EventPayload
onModelChange(model: ModelOption) => void
onEffortChange(effort: ModelEffort) => void
onModelContextChange(context: ModelContextRegistration) => void

Content regions

  • children

Native attributes

Standard DOM and ARIA attributes not listed above spread onto the root element.