Buckets:
| // @ts-nocheck | |
| import { createSignal } from "solid-js" | |
| import * as mod from "./basic-tool" | |
| import { create } from "../storybook/scaffold" | |
| const docs = `### Overview | |
| Expandable tool panel with a structured trigger and optional details. | |
| Use structured triggers for consistent layout; custom triggers allowed. | |
| ### API | |
| - Required: \`icon\` and \`trigger\` (structured or custom JSX). | |
| - Optional: \`status\`, \`defaultOpen\`, \`forceOpen\`, \`defer\`, \`locked\`. | |
| ### Variants and states | |
| - Pending/running status animates the title via TextShimmer. | |
| ### Behavior | |
| - Uses Collapsible; can defer content rendering until open. | |
| - Locked state prevents closing. | |
| ### Accessibility | |
| - TODO: confirm trigger semantics and aria labeling. | |
| ### Theming/tokens | |
| - Uses \`data-component="tool-trigger"\` and related slots. | |
| ` | |
| const story = create({ | |
| title: "UI/Basic Tool", | |
| mod, | |
| args: { | |
| icon: "mcp", | |
| defaultOpen: true, | |
| trigger: { | |
| title: "Basic Tool", | |
| subtitle: "Example subtitle", | |
| args: ["--flag", "value"], | |
| }, | |
| children: "Details content", | |
| }, | |
| }) | |
| export default { | |
| title: "UI/Basic Tool", | |
| id: "components-basic-tool", | |
| component: story.meta.component, | |
| tags: ["autodocs"], | |
| parameters: { | |
| docs: { | |
| description: { | |
| component: docs, | |
| }, | |
| }, | |
| }, | |
| } | |
| export const Basic = story.Basic | |
| export const Pending = { | |
| args: { | |
| status: "pending", | |
| trigger: { | |
| title: "Running tool", | |
| subtitle: "Working...", | |
| }, | |
| children: "Progress details", | |
| }, | |
| } | |
| export const Locked = { | |
| args: { | |
| locked: true, | |
| trigger: { | |
| title: "Locked tool", | |
| subtitle: "Cannot close", | |
| }, | |
| children: "Locked details", | |
| }, | |
| } | |
| export const Deferred = { | |
| args: { | |
| defer: true, | |
| defaultOpen: false, | |
| trigger: { | |
| title: "Deferred tool", | |
| subtitle: "Content mounts on open", | |
| }, | |
| children: "Deferred content", | |
| }, | |
| } | |
| export const ForceOpen = { | |
| args: { | |
| forceOpen: true, | |
| trigger: { | |
| title: "Forced open", | |
| subtitle: "Cannot close", | |
| }, | |
| children: "Forced content", | |
| }, | |
| } | |
| export const HideDetails = { | |
| args: { | |
| hideDetails: true, | |
| trigger: { | |
| title: "Summary only", | |
| subtitle: "Details hidden", | |
| }, | |
| children: "Hidden content", | |
| }, | |
| } | |
| export const SubtitleAction = { | |
| render: () => { | |
| const [message, setMessage] = createSignal("Subtitle not clicked") | |
| return ( | |
| <div style={{ display: "grid", gap: "8px" }}> | |
| <div style={{ "font-size": "12px", color: "var(--text-weak)" }}>{message()}</div> | |
| <mod.BasicTool | |
| icon="mcp" | |
| trigger={{ title: "Clickable subtitle", subtitle: "Click me" }} | |
| onSubtitleClick={() => setMessage("Subtitle clicked")} | |
| > | |
| Subtitle action details | |
| </mod.BasicTool> | |
| </div> | |
| ) | |
| }, | |
| } | |
Xet Storage Details
- Size:
- 2.83 kB
- Xet hash:
- ef509d924c2a58522ce2b417b729e7c7246b628042259e64b53de62dfd335261
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.