(props: BasicToolProps)
| 27 | } |
| 28 | |
| 29 | export 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> |
nothing calls this directly
no test coverage detected