MCPcopy Create free account
hub / github.com/arctic-cli/interface / BasicTool

Function BasicTool

packages/ui/src/components/basic-tool.tsx:29–94  ·  view source on GitHub ↗
(props: BasicToolProps)

Source from the content-addressed store, hash-verified

27}
28
29export function BasicTool(props: BasicToolProps) {
30 const resolved = children(() => props.children)
31 return (
32 <Collapsible defaultOpen={props.defaultOpen}>
33 <Collapsible.Trigger>
34 <div data-component="tool-trigger">
35 <div data-slot="basic-tool-tool-trigger-content">
36 <Icon name={props.icon} size="small" />
37 <div data-slot="basic-tool-tool-info">
38 <Switch>
39 <Match when={isTriggerTitle(props.trigger) && props.trigger}>
40 {(trigger) => (
41 <div data-slot="basic-tool-tool-info-structured">
42 <div data-slot="basic-tool-tool-info-main">
43 <span
44 data-slot="basic-tool-tool-title"
45 classList={{
46 [trigger().titleClass ?? ""]: !!trigger().titleClass,
47 }}
48 >
49 {trigger().title}
50 </span>
51 <Show when={trigger().subtitle}>
52 <span
53 data-slot="basic-tool-tool-subtitle"
54 classList={{
55 [trigger().subtitleClass ?? ""]: !!trigger().subtitleClass,
56 }}
57 >
58 {trigger().subtitle}
59 </span>
60 </Show>
61 <Show when={trigger().args?.length}>
62 <For each={trigger().args}>
63 {(arg) => (
64 <span
65 data-slot="basic-tool-tool-arg"
66 classList={{
67 [trigger().argsClass ?? ""]: !!trigger().argsClass,
68 }}
69 >
70 {arg}
71 </span>
72 )}
73 </For>
74 </Show>
75 </div>
76 <Show when={trigger().action}>{trigger().action}</Show>
77 </div>
78 )}
79 </Match>
80 <Match when={true}>{props.trigger as JSX.Element}</Match>
81 </Switch>
82 </div>
83 </div>
84 <Show when={resolved() && !props.hideDetails}>
85 <Collapsible.Arrow />
86 </Show>

Callers

nothing calls this directly

Calls 2

isTriggerTitleFunction · 0.85
triggerFunction · 0.50

Tested by

no test coverage detected