Shelf
import { Shelf } from '@hanzo/ui/catalog'
The page
The kinds as tabs, Yours and Discover, one search and one Add over both, and the cards.
CustomizeWhat the agent brings to a run: the skills it knows, the connectors it calls, the plugins it runs.
Skills
Connectors
Plugins
Agents
git_reposList the forge’s repositories.git
git_branchesList a repository’s branches.git
kms_secretsRead the names of an org’s secrets.kms
export function Default() {const [tab, setTab] = useState('skills')const [view, setView] = useState('discover')const [query, setQuery] = useState('')const [added, setAdded] = useState<string[]>(['git_branches'])const shown = SKILLS.filter((s) => s.name.includes(query.trim()))return (<XStack height={560} width="100%"><Shelf title="Customize" detail="What the agent brings to a run: the skills it knows, the connectors it calls, the plugins it runs." tabs={KINDS} tab={tab} onTab={setTab} view={view} onView={setView} search="Search skills" query={query} onQuery={setQuery} add="New skill" onAdd={() => {}} ><Tiles label="Skills to add">{shown.map((s) => (<Tile key={s.name} title={s.name} detail={s.detail} meta={s.from} onOpen={() => {}} action={<Add name={s.name} added={added.includes(s.name)} onPress={() => setAdded([...added, s.name])} />} />))}</Tiles></Shelf></XStack>)}
Types
export interface ShelfProps extends Col {/** The page's title. */title: string/** One or two lines on what the page is for. */detail?: string/** The kinds, as tabs. An icon is a component, drawn at 15px. */tabs: readonly View[]/** The open kind's id. */tab: stringonTab: (id: string) => void/** The halves of a kind. Yours and Discover unless given. */views?: readonly View[]/** The open half's id. */view: stringonView: (id: string) => void/** The search's name and placeholder — "Search skills". */search: stringquery: stringonQuery: (q: string) => void/** The Add action's words — "New skill". None, and there is no Add. */add?: stringonAdd?: () => void/** The title's outline level. */level?: 1 | 2/** The cards. */children?: ReactNode}
Exports
Shelftype ShelfProps