@fairshare/ui-kit 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +76 -0
- package/dist/accordion/Accordion.d.ts +11 -0
- package/dist/agent-status/AgentStatus.d.ts +8 -0
- package/dist/approval-gate/ApprovalGate.d.ts +12 -0
- package/dist/attachments/Attachments.d.ts +10 -0
- package/dist/avatar/Avatar.d.ts +10 -0
- package/dist/badge/Badge.d.ts +6 -0
- package/dist/banner/Banner.d.ts +14 -0
- package/dist/branch/Branch.d.ts +8 -0
- package/dist/breadcrumbs/Breadcrumbs.d.ts +10 -0
- package/dist/button/Button.d.ts +7 -0
- package/dist/card/Card.d.ts +8 -0
- package/dist/chain-of-thought/ChainOfThought.d.ts +11 -0
- package/dist/checkbox/Checkbox.d.ts +3 -0
- package/dist/checkpoint/Checkpoint.d.ts +6 -0
- package/dist/code-block/CodeBlock.d.ts +5 -0
- package/dist/combobox/Combobox.d.ts +10 -0
- package/dist/commit/Commit.d.ts +13 -0
- package/dist/confidence-badge/ConfidenceBadge.d.ts +8 -0
- package/dist/connection/Connection.d.ts +8 -0
- package/dist/conversation/Conversation.d.ts +7 -0
- package/dist/description-list/DescriptionList.d.ts +9 -0
- package/dist/dialog/Dialog.d.ts +16 -0
- package/dist/diff-view/DiffView.d.ts +12 -0
- package/dist/drawer/Drawer.d.ts +8 -0
- package/dist/empty-state/EmptyState.d.ts +8 -0
- package/dist/feedback-buttons/FeedbackButtons.d.ts +4 -0
- package/dist/field/Field.d.ts +11 -0
- package/dist/index.d.ts +66 -0
- package/dist/index.js +2629 -0
- package/dist/inline-citation/InlineCitation.d.ts +8 -0
- package/dist/input/Input.d.ts +9 -0
- package/dist/label/Label.d.ts +3 -0
- package/dist/menu/Menu.d.ts +22 -0
- package/dist/message/Message.d.ts +7 -0
- package/dist/message-actions/MessageActions.d.ts +8 -0
- package/dist/meter/Meter.d.ts +6 -0
- package/dist/number-field/NumberField.d.ts +3 -0
- package/dist/pagination/Pagination.d.ts +6 -0
- package/dist/plan/Plan.d.ts +11 -0
- package/dist/popover/Popover.d.ts +8 -0
- package/dist/progress/Progress.d.ts +3 -0
- package/dist/prompt-input/PromptInput.d.ts +12 -0
- package/dist/queue/Queue.d.ts +10 -0
- package/dist/radio/RadioGroup.d.ts +10 -0
- package/dist/select/Select.d.ts +12 -0
- package/dist/shimmer/Shimmer.d.ts +6 -0
- package/dist/sidebar/Sidebar.d.ts +42 -0
- package/dist/skeleton/Skeleton.d.ts +8 -0
- package/dist/slider/Slider.d.ts +3 -0
- package/dist/sources/Sources.d.ts +11 -0
- package/dist/spinner/Spinner.d.ts +5 -0
- package/dist/stack-trace/StackTrace.d.ts +11 -0
- package/dist/stat-card/StatCard.d.ts +9 -0
- package/dist/streaming-text/StreamingText.d.ts +8 -0
- package/dist/styles.css +2 -0
- package/dist/suggestion-chip/SuggestionChip.d.ts +9 -0
- package/dist/switch/Switch.d.ts +3 -0
- package/dist/table/Table.d.ts +21 -0
- package/dist/tabs/Tabs.d.ts +11 -0
- package/dist/terminal/Terminal.d.ts +10 -0
- package/dist/test-results/TestResults.d.ts +9 -0
- package/dist/thinking-block/ThinkingBlock.d.ts +11 -0
- package/dist/toast/Toast.d.ts +13 -0
- package/dist/token-meter/TokenMeter.d.ts +9 -0
- package/dist/tool-call-timeline/ToolCallTimeline.d.ts +13 -0
- package/dist/tooltip/Tooltip.d.ts +9 -0
- package/dist/tree/Tree.d.ts +19 -0
- package/dist/user-profile/UserProfile.d.ts +16 -0
- package/dist/web-preview/WebPreview.d.ts +7 -0
- package/package.json +60 -0
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
export interface InlineCitationProps {
|
|
3
|
+
/** Footnote number */
|
|
4
|
+
index: number;
|
|
5
|
+
url: string;
|
|
6
|
+
title?: ReactNode;
|
|
7
|
+
}
|
|
8
|
+
export declare function InlineCitation({ index, url, title }: InlineCitationProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
import { Input as BaseInput } from '@base-ui/react/input';
|
|
3
|
+
export interface InputProps extends Omit<BaseInput.Props, 'prefix'> {
|
|
4
|
+
/** Icon or text shown before the input, e.g. a lucide icon */
|
|
5
|
+
prefix?: ReactNode;
|
|
6
|
+
/** Icon or text shown after the input */
|
|
7
|
+
suffix?: ReactNode;
|
|
8
|
+
}
|
|
9
|
+
export declare function Input({ prefix, suffix, ...props }: InputProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { ReactElement, ReactNode } from 'react';
|
|
2
|
+
import { Menu as BaseMenu } from '@base-ui/react/menu';
|
|
3
|
+
export interface MenuItem {
|
|
4
|
+
label: ReactNode;
|
|
5
|
+
icon?: ReactNode;
|
|
6
|
+
onClick?: () => void;
|
|
7
|
+
danger?: boolean;
|
|
8
|
+
disabled?: boolean;
|
|
9
|
+
}
|
|
10
|
+
export interface MenuGroup {
|
|
11
|
+
group: ReactNode;
|
|
12
|
+
items: MenuItem[];
|
|
13
|
+
}
|
|
14
|
+
export type MenuEntry = MenuItem | MenuGroup | 'separator';
|
|
15
|
+
export interface MenuProps extends BaseMenu.Root.Props {
|
|
16
|
+
trigger: ReactElement<Record<string, unknown>>;
|
|
17
|
+
items: MenuEntry[];
|
|
18
|
+
/** Which side of the trigger the menu opens on */
|
|
19
|
+
side?: BaseMenu.Positioner.Props['side'];
|
|
20
|
+
align?: BaseMenu.Positioner.Props['align'];
|
|
21
|
+
}
|
|
22
|
+
export declare function Menu({ trigger, items, side, align, ...props }: MenuProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export interface MessageActionsProps {
|
|
2
|
+
onRegenerate?: () => void;
|
|
3
|
+
onEdit?: () => void;
|
|
4
|
+
onCopy?: () => void;
|
|
5
|
+
/** Fork the conversation from this message */
|
|
6
|
+
onBranch?: () => void;
|
|
7
|
+
}
|
|
8
|
+
export declare function MessageActions(props: MessageActionsProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
import { Meter as BaseMeter } from '@base-ui/react/meter';
|
|
3
|
+
export interface MeterProps extends BaseMeter.Root.Props {
|
|
4
|
+
label?: ReactNode;
|
|
5
|
+
}
|
|
6
|
+
export declare function Meter({ label, ...props }: MeterProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
export type PlanStatus = 'pending' | 'active' | 'done' | 'error';
|
|
3
|
+
export interface PlanStep {
|
|
4
|
+
title: ReactNode;
|
|
5
|
+
status?: PlanStatus;
|
|
6
|
+
}
|
|
7
|
+
export interface PlanProps {
|
|
8
|
+
title?: ReactNode;
|
|
9
|
+
steps: PlanStep[];
|
|
10
|
+
}
|
|
11
|
+
export declare function Plan({ title, steps }: PlanProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ReactElement, ReactNode } from 'react';
|
|
2
|
+
import { Popover as BasePopover } from '@base-ui/react/popover';
|
|
3
|
+
export interface PopoverProps extends BasePopover.Root.Props {
|
|
4
|
+
trigger: ReactElement<Record<string, unknown>>;
|
|
5
|
+
title?: ReactNode;
|
|
6
|
+
children: ReactNode;
|
|
7
|
+
}
|
|
8
|
+
export declare function Popover({ trigger, title, children, ...props }: PopoverProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
export interface PromptInputProps {
|
|
3
|
+
placeholder?: string;
|
|
4
|
+
disabled?: boolean;
|
|
5
|
+
/** Extra controls rendered left of the send button (attach, model picker…) */
|
|
6
|
+
actions?: ReactNode;
|
|
7
|
+
/** Controlled value; omit for uncontrolled */
|
|
8
|
+
value?: string;
|
|
9
|
+
onValueChange?: (value: string) => void;
|
|
10
|
+
onSubmit?: (value: string) => void;
|
|
11
|
+
}
|
|
12
|
+
export declare function PromptInput({ placeholder, disabled, actions, value, onValueChange, onSubmit, }: PromptInputProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
export interface QueueItem {
|
|
3
|
+
id: string;
|
|
4
|
+
label: ReactNode;
|
|
5
|
+
}
|
|
6
|
+
export interface QueueProps {
|
|
7
|
+
items: QueueItem[];
|
|
8
|
+
onRemove?: (id: string) => void;
|
|
9
|
+
}
|
|
10
|
+
export declare function Queue({ items, onRemove }: QueueProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
import { RadioGroup as BaseRadioGroup } from '@base-ui/react/radio-group';
|
|
3
|
+
export interface RadioItem {
|
|
4
|
+
value: string;
|
|
5
|
+
label: ReactNode;
|
|
6
|
+
}
|
|
7
|
+
export interface RadioGroupProps extends BaseRadioGroup.Props<string> {
|
|
8
|
+
items: RadioItem[];
|
|
9
|
+
}
|
|
10
|
+
export declare function RadioGroup({ items, ...props }: RadioGroupProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Select as BaseSelect } from '@base-ui/react/select';
|
|
2
|
+
export interface SelectItem {
|
|
3
|
+
value: string;
|
|
4
|
+
label: string;
|
|
5
|
+
}
|
|
6
|
+
export interface SelectProps extends Omit<BaseSelect.Root.Props<string, false>, 'items'> {
|
|
7
|
+
items: SelectItem[];
|
|
8
|
+
placeholder?: string;
|
|
9
|
+
/** Borderless compact trigger for toolbars and input footers */
|
|
10
|
+
variant?: 'default' | 'ghost';
|
|
11
|
+
}
|
|
12
|
+
export declare function Select({ items, placeholder, variant, ...props }: SelectProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
/** True below the library's mobile breakpoint (768px). */
|
|
3
|
+
export declare function useIsMobile(): boolean;
|
|
4
|
+
export interface SidebarHeader {
|
|
5
|
+
icon?: ReactNode;
|
|
6
|
+
title: ReactNode;
|
|
7
|
+
/** Secondary line under the title, muted */
|
|
8
|
+
subtitle?: ReactNode;
|
|
9
|
+
}
|
|
10
|
+
export interface SidebarItem {
|
|
11
|
+
key: string;
|
|
12
|
+
label: ReactNode;
|
|
13
|
+
icon?: ReactNode;
|
|
14
|
+
/** Right-aligned extra, e.g. a count or <Badge> */
|
|
15
|
+
badge?: ReactNode;
|
|
16
|
+
href?: string;
|
|
17
|
+
onClick?: () => void;
|
|
18
|
+
}
|
|
19
|
+
export interface SidebarSection {
|
|
20
|
+
title?: ReactNode;
|
|
21
|
+
items: SidebarItem[];
|
|
22
|
+
}
|
|
23
|
+
export interface SidebarProps {
|
|
24
|
+
/** Top slot: freeform node, or { icon, title, subtitle } */
|
|
25
|
+
header?: ReactNode | SidebarHeader;
|
|
26
|
+
sections: SidebarSection[];
|
|
27
|
+
/** Bottom slot, e.g. user avatar/settings */
|
|
28
|
+
footer?: ReactNode;
|
|
29
|
+
activeKey?: string;
|
|
30
|
+
onNavigate?: (key: string) => void;
|
|
31
|
+
/** Icon-only rail mode */
|
|
32
|
+
collapsed?: boolean;
|
|
33
|
+
/** Enables collapsing by clicking the sidebar's right border */
|
|
34
|
+
onCollapsedChange?: (collapsed: boolean) => void;
|
|
35
|
+
/** Slim strip docked above the footer, e.g. theme toggle / notifications */
|
|
36
|
+
footerActions?: ReactNode;
|
|
37
|
+
/** Below 768px the sidebar becomes an off-canvas overlay; this controls it */
|
|
38
|
+
mobileOpen?: boolean;
|
|
39
|
+
/** Enables the mobile overlay mode; wire your own hamburger to open it */
|
|
40
|
+
onMobileOpenChange?: (open: boolean) => void;
|
|
41
|
+
}
|
|
42
|
+
export declare function Sidebar({ header, sections, footer, activeKey, onNavigate, collapsed: collapsedProp, onCollapsedChange, footerActions, mobileOpen, onMobileOpenChange, }: SidebarProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { CSSProperties } from 'react';
|
|
2
|
+
export interface SkeletonProps {
|
|
3
|
+
width?: CSSProperties['width'];
|
|
4
|
+
height?: CSSProperties['height'];
|
|
5
|
+
/** Circle shape, e.g. for avatar placeholders */
|
|
6
|
+
circle?: boolean;
|
|
7
|
+
}
|
|
8
|
+
export declare function Skeleton({ width, height, circle }: SkeletonProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
export interface Source {
|
|
3
|
+
title: ReactNode;
|
|
4
|
+
url: string;
|
|
5
|
+
description?: ReactNode;
|
|
6
|
+
}
|
|
7
|
+
export interface SourcesProps {
|
|
8
|
+
sources: Source[];
|
|
9
|
+
defaultOpen?: boolean;
|
|
10
|
+
}
|
|
11
|
+
export declare function Sources({ sources, defaultOpen }: SourcesProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export interface StackFrame {
|
|
2
|
+
fn: string;
|
|
3
|
+
file: string;
|
|
4
|
+
line?: number;
|
|
5
|
+
}
|
|
6
|
+
export interface StackTraceProps {
|
|
7
|
+
message: string;
|
|
8
|
+
frames: StackFrame[];
|
|
9
|
+
onFrameClick?: (frame: StackFrame, index: number) => void;
|
|
10
|
+
}
|
|
11
|
+
export declare function StackTrace({ message, frames, onFrameClick }: StackTraceProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
export interface StatCardProps {
|
|
3
|
+
label: ReactNode;
|
|
4
|
+
value: ReactNode;
|
|
5
|
+
/** Percent change; sign picks the color and arrow */
|
|
6
|
+
delta?: number;
|
|
7
|
+
hint?: ReactNode;
|
|
8
|
+
}
|
|
9
|
+
export declare function StatCard({ label, value, delta, hint }: StatCardProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export interface StreamingTextProps {
|
|
2
|
+
text: string;
|
|
3
|
+
/** Keeps the cursor blinking even when all text is shown (server still streaming) */
|
|
4
|
+
streaming?: boolean;
|
|
5
|
+
/** Characters per second; when set, the text types itself in (demo/replay) */
|
|
6
|
+
speed?: number;
|
|
7
|
+
}
|
|
8
|
+
export declare function StreamingText({ text, streaming, speed }: StreamingTextProps): import("react").JSX.Element;
|
package/dist/styles.css
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
:root{--ui-accent:#273c75;--ui-accent-hover:#1e2f5c;--ui-accent-text:#fff;--ui-danger:#b0413e;--ui-danger-hover:#93362f;--ui-success:#2e7d4f;--ui-warning:#b45309;--ui-bg:#fff;--ui-bg-muted:#f4f4f4;--ui-border:#d0d1d2;--ui-track:#d0d1d2;--ui-text:#171a20;--ui-text-muted:#5c5e62;--ui-radius:.25rem;--ui-font:"Inter Variable", "Inter", system-ui, "Segoe UI", Roboto, sans-serif;--ui-font-size:.8125rem;--ui-shadow:0 2px 12px #171a2014;--ui-popup-bg:#fff;--ui-popup-shadow:0 0 0 1px #171a200f, 0 8px 24px #171a2029;--ui-highlight:#f4f4f4;--ui-highlight-hover:#d0d1d2}[data-theme=dark]{--ui-accent:#7b93d6;--ui-accent-hover:#93a8e0;--ui-accent-text:#101114;--ui-danger:#b0413e;--ui-danger-hover:#c85a55;--ui-success:#3f9e6a;--ui-warning:#d97706;--ui-bg:color-mix(in srgb, var(--ui-accent) 7%, #0d0f13);--ui-bg-muted:color-mix(in srgb, var(--ui-accent) 10%, #171a20);--ui-border:color-mix(in srgb, var(--ui-accent) 12%, #34373e);--ui-track:color-mix(in srgb, var(--ui-accent) 12%, #34373e);--ui-text:#e8e8ea;--ui-text-muted:#8e8f93;--ui-shadow:0 2px 12px #0009;--ui-popup-bg:color-mix(in srgb, var(--ui-accent) 9%, #191c23);--ui-popup-shadow:0 0 0 1px #ffffff14, 0 8px 24px #0009;--ui-highlight:color-mix(in srgb, var(--ui-accent) 14%, #34383f);--ui-highlight-hover:color-mix(in srgb, var(--ui-accent) 16%, #43474f)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--ui-accent:#7b93d6;--ui-accent-hover:#93a8e0;--ui-accent-text:#101114;--ui-danger:#b0413e;--ui-danger-hover:#c85a55;--ui-success:#3f9e6a;--ui-warning:#d97706;--ui-bg:color-mix(in srgb, var(--ui-accent) 7%, #0d0f13);--ui-bg-muted:color-mix(in srgb, var(--ui-accent) 10%, #171a20);--ui-border:color-mix(in srgb, var(--ui-accent) 12%, #34373e);--ui-track:color-mix(in srgb, var(--ui-accent) 12%, #34373e);--ui-text:#e8e8ea;--ui-text-muted:#8e8f93;--ui-shadow:0 2px 12px #0009;--ui-popup-bg:color-mix(in srgb, var(--ui-accent) 9%, #191c23);--ui-popup-shadow:0 0 0 1px #ffffff14, 0 8px 24px #0009;--ui-highlight:color-mix(in srgb, var(--ui-accent) 14%, #34383f);--ui-highlight-hover:color-mix(in srgb, var(--ui-accent) 16%, #43474f)}}._root_1vayc_1{border:1px solid var(--ui-border);border-radius:var(--ui-radius);font-size:var(--ui-font-size);color:var(--ui-text)}._item_1vayc_8+._item_1vayc_8{border-top:1px solid var(--ui-border)}._header_1vayc_12{margin:0}._trigger_1vayc_16{box-sizing:border-box;width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;justify-content:space-between;align-items:center;gap:.5rem;padding:.5rem .875rem;font-size:.75rem;font-weight:500;display:flex}._trigger_1vayc_16:hover{background:var(--ui-bg-muted)}._trigger_1vayc_16:focus-visible{outline:2px solid var(--ui-accent);outline-offset:-2px}._chevron_1vayc_43{width:.875rem;height:.875rem;color:var(--ui-text-muted);transition:rotate .2s}._trigger_1vayc_16[data-panel-open] ._chevron_1vayc_43{rotate:180deg}._panel_1vayc_54{height:var(--accordion-panel-height);transition:height .2s;overflow:hidden}._panel_1vayc_54[data-starting-style],._panel_1vayc_54[data-ending-style]{height:0}._panelInner_1vayc_65{color:var(--ui-text-muted);padding:.375rem .875rem .75rem}._root_wc68u_1{box-sizing:border-box;border-radius:var(--ui-radius);height:2rem;font:inherit;font-size:var(--ui-font-size);cursor:pointer;border:none;padding:0 1.25rem;font-weight:500;transition:background .15s,color .15s}._root_wc68u_1:focus-visible{outline:2px solid var(--ui-accent);outline-offset:2px}._iconOnly_wc68u_19{justify-content:center;align-items:center;width:2rem;padding:0;display:inline-flex}._root_wc68u_1[data-disabled]{opacity:.4;cursor:not-allowed}._primary_wc68u_32{background:var(--ui-accent);color:var(--ui-accent-text)}._primary_wc68u_32:hover:not([data-disabled]){background:var(--ui-accent-hover)}._danger_wc68u_41{background:var(--ui-danger);color:var(--ui-accent-text)}._danger_wc68u_41:hover:not([data-disabled]){background:var(--ui-danger-hover)}._secondary_wc68u_50{background:var(--ui-bg-muted);color:var(--ui-text)}._secondary_wc68u_50:hover:not([data-disabled]){background:var(--ui-track)}._ghost_wc68u_59{color:var(--ui-text);background:0 0}._ghost_wc68u_59:hover:not([data-disabled]){background:var(--ui-bg-muted)}._sm_pxd6w_1{--sp:.875rem;--sp-border:1.5px}._md_pxd6w_6{--sp:1.25rem;--sp-border:2px}._lg_pxd6w_11{--sp:2rem;--sp-border:3px}._ring_pxd6w_17{width:var(--sp);height:var(--sp);border:var(--sp-border) solid var(--ui-track);border-top-color:var(--ui-accent);border-radius:50%;animation:.7s linear infinite _spin_pxd6w_1;display:inline-block}._dots_pxd6w_28{align-items:center;gap:calc(var(--sp) * .18);height:var(--sp);display:inline-flex}._dots_pxd6w_28 i{width:calc(var(--sp) * .25);height:calc(var(--sp) * .25);background:var(--ui-accent);border-radius:50%;animation:1s ease-in-out infinite _dotPulse_pxd6w_1}._dots_pxd6w_28 i:nth-child(2){animation-delay:.15s}._dots_pxd6w_28 i:nth-child(3){animation-delay:.3s}._bars_pxd6w_52{align-items:center;gap:calc(var(--sp) * .125);height:var(--sp);display:inline-flex}._bars_pxd6w_52 i{width:calc(var(--sp) * .125);height:calc(var(--sp) * .75);background:var(--ui-accent);border-radius:1px;animation:.9s ease-in-out infinite _bar_pxd6w_52}._bars_pxd6w_52 i:nth-child(2){animation-delay:.12s}._bars_pxd6w_52 i:nth-child(3){animation-delay:.24s}._bars_pxd6w_52 i:nth-child(4){animation-delay:.36s}._quad_pxd6w_80{grid-template-columns:repeat(2, calc(var(--sp) * .4));gap:calc(var(--sp) * .14);display:inline-grid}._quad_pxd6w_80 i{width:calc(var(--sp) * .4);height:calc(var(--sp) * .4);background:var(--ui-accent);border-radius:2px;animation:1.2s ease-in-out infinite _quad_pxd6w_80}._quad_pxd6w_80 i:nth-child(2){animation-delay:.15s}._quad_pxd6w_80 i:nth-child(4){animation-delay:.3s}._quad_pxd6w_80 i:nth-child(3){animation-delay:.45s}@keyframes _spin_pxd6w_1{to{rotate:360deg}}@keyframes _dotPulse_pxd6w_1{0%,to{opacity:.25;scale:.8}40%{opacity:1;scale:1}}@keyframes _bar_pxd6w_52{0%,to{scale:1 .35}50%{scale:1}}@keyframes _quad_pxd6w_80{0%,to{opacity:.2}30%{opacity:1}}@media (prefers-reduced-motion:reduce){._ring_pxd6w_17,._dots_pxd6w_28 i,._bars_pxd6w_52 i,._quad_pxd6w_80 i{animation-duration:2.5s}}._root_1nbc6_1{box-sizing:border-box;border:1px solid var(--ui-border);border-radius:var(--ui-radius);background:var(--ui-bg);font-size:var(--ui-font-size);color:var(--ui-text);align-items:center;gap:.625rem;padding:.5rem .5rem .5rem .75rem;display:flex}._doneIcon_1nbc6_14{width:1rem;height:1rem;color:var(--ui-success);flex-shrink:0}._label_1nbc6_21{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}._elapsed_1nbc6_28{color:var(--ui-text-muted);font-variant-numeric:tabular-nums}._root_xrkgz_1{border-radius:var(--ui-radius);background:color-mix(in srgb, var(--badge-color) 12%, transparent);color:var(--badge-color);letter-spacing:.02em;white-space:nowrap;align-items:center;padding:.125rem .5rem;font-size:.6875rem;font-weight:500;line-height:1.4;display:inline-flex}._neutral_xrkgz_16{--badge-color:var(--ui-text-muted)}._info_xrkgz_20{--badge-color:var(--ui-accent)}._success_xrkgz_24{--badge-color:var(--ui-success)}._warning_xrkgz_28{--badge-color:var(--ui-warning)}._danger_xrkgz_32{--badge-color:var(--ui-danger)}._root_1ehxr_1{box-sizing:border-box;border:1px solid var(--ui-border);border-radius:var(--ui-radius);background:var(--ui-bg);font-size:var(--ui-font-size);color:var(--ui-text);flex-direction:column;gap:.625rem;padding:.75rem;display:flex}._header_1ehxr_14{align-items:flex-start;gap:.5rem;display:flex}._icon_1ehxr_20{width:1rem;height:1rem;color:var(--ui-text-muted);flex-shrink:0;margin-top:.125rem}._text_1ehxr_28{flex-direction:column;flex:1;gap:.125rem;display:flex}._title_1ehxr_35{font-weight:600}._description_1ehxr_39{color:var(--ui-text-muted)}._preview_1ehxr_43{border-radius:var(--ui-radius);background:var(--ui-bg-muted);padding:.5rem .625rem;font-family:ui-monospace,monospace;font-size:.75rem;overflow-x:auto}._actions_1ehxr_52{justify-content:flex-end;gap:.5rem;display:flex}._root_1so34_1{flex-wrap:wrap;gap:.375rem;display:flex}._chip_1so34_7{border:1px solid var(--ui-border);border-radius:var(--ui-radius);background:var(--ui-bg-muted);color:var(--ui-text);align-items:center;gap:.375rem;max-width:16rem;padding:.25rem .25rem .25rem .5rem;font-size:.75rem;display:inline-flex}._icon_1so34_20{width:.875rem;height:.875rem;color:var(--ui-text-muted);flex-shrink:0}._name_1so34_27{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}._size_1so34_33{color:var(--ui-text-muted);flex-shrink:0}._remove_1so34_38{border-radius:var(--ui-radius);width:1.25rem;height:1.25rem;color:var(--ui-text-muted);cursor:pointer;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:flex}._remove_1so34_38 svg{width:.75rem;height:.75rem}._remove_1so34_38:hover{background:var(--ui-highlight);color:var(--ui-danger)}._remove_1so34_38:focus-visible{outline:2px solid var(--ui-accent);outline-offset:1px}._root_1nv2h_1{background:var(--ui-bg-muted);color:var(--ui-text-muted);-webkit-user-select:none;user-select:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-weight:500;display:inline-flex;overflow:hidden}._sm_1nv2h_14{width:1.5rem;height:1.5rem;font-size:.625rem}._md_1nv2h_20{width:2rem;height:2rem;font-size:.75rem}._lg_1nv2h_26{width:2.75rem;height:2.75rem;font-size:1rem}._image_1nv2h_32{object-fit:cover;width:100%;height:100%}._fallback_1nv2h_38{justify-content:center;align-items:center;display:flex}._fallback_1nv2h_38 svg{width:60%;height:60%}._root_6o8t8_1{box-sizing:border-box;border-radius:var(--ui-radius);background:var(--ui-bg-muted);color:var(--ui-text);font-size:var(--ui-font-size);align-items:flex-start;gap:.5rem;padding:.625rem .75rem;display:flex}._icon_6o8t8_13{color:var(--banner-accent);flex-shrink:0;margin-top:.125rem;display:flex}._icon_6o8t8_13 svg{width:1rem;height:1rem}._content_6o8t8_25{flex-direction:column;flex:1;gap:.125rem;display:flex}._title_6o8t8_32{font-weight:600}._action_6o8t8_36{flex-shrink:0;align-self:center}._dismiss_6o8t8_41{width:1.25rem;height:1.25rem;color:var(--ui-text-muted);cursor:pointer;background:0 0;border:none;border-radius:.25rem;justify-content:center;align-items:center;padding:0;font-size:.875rem;display:flex}._dismiss_6o8t8_41:focus-visible{outline:2px solid var(--ui-accent);outline-offset:2px}._dismiss_6o8t8_41:hover{color:var(--ui-text)}._info_6o8t8_65{--banner-accent:var(--ui-accent)}._success_6o8t8_69{--banner-accent:var(--ui-success)}._warning_6o8t8_73{--banner-accent:var(--ui-warning)}._danger_6o8t8_77{--banner-accent:var(--ui-danger)}._root_14cyy_1{color:var(--ui-text-muted);align-items:center;gap:.125rem;font-size:.75rem;display:inline-flex}._count_14cyy_9{font-variant-numeric:tabular-nums;padding:0 .125rem}._button_14cyy_14{border-radius:var(--ui-radius);width:1.5rem;height:1.5rem;color:var(--ui-text-muted);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:flex}._button_14cyy_14 svg{width:.875rem;height:.875rem}._button_14cyy_14:hover:not(:disabled){background:var(--ui-highlight);color:var(--ui-text)}._button_14cyy_14:disabled{opacity:.4;cursor:default}._button_14cyy_14:focus-visible{outline:2px solid var(--ui-accent);outline-offset:1px}._list_1op8k_1{font-size:var(--ui-font-size);align-items:center;gap:.25rem;margin:0;padding:0;list-style:none;display:flex}._item_1op8k_11{align-items:center;gap:.25rem;display:flex}._link_1op8k_17{color:var(--ui-text-muted);border-radius:.25rem;text-decoration:none}._link_1op8k_17:hover{color:var(--ui-text);text-decoration:underline}._link_1op8k_17:focus-visible{outline:2px solid var(--ui-accent);outline-offset:2px}._current_1op8k_33{color:var(--ui-text);font-weight:500}._separator_1op8k_38{width:.75rem;height:.75rem;color:var(--ui-text-muted)}._root_1y5ao_1{box-sizing:border-box;border:1px solid var(--ui-border);border-radius:var(--ui-radius);background:var(--ui-bg);font-size:var(--ui-font-size);color:var(--ui-text);box-shadow:var(--ui-shadow);overflow:hidden}._header_1y5ao_12{border-bottom:1px solid var(--ui-border);justify-content:space-between;align-items:center;gap:.5rem;padding:.625rem .875rem;display:flex}._title_1y5ao_21{font-weight:600}._extra_1y5ao_27{align-items:center;display:flex}._body_1y5ao_32{padding:.875rem}._root_3p8rm_1{font-size:var(--ui-font-size);color:var(--ui-text);margin:0;padding:0;list-style:none}._step_3p8rm_9{grid-template-columns:1.25rem 1fr;align-items:center;column-gap:.5rem;padding-bottom:.75rem;display:grid;position:relative}._step_3p8rm_9:not(:last-child):before{content:"";background:var(--ui-track);width:2px;position:absolute;top:1.375rem;bottom:.125rem;left:.5625rem}._step_3p8rm_9:last-child{padding-bottom:0}._number_3p8rm_32{box-sizing:border-box;background:var(--ui-bg-muted);border:1px solid var(--ui-border);width:1.25rem;height:1.25rem;color:var(--ui-text-muted);font-variant-numeric:tabular-nums;border-radius:50%;justify-content:center;align-items:center;font-size:.6875rem;display:flex}._active_3p8rm_47 ._number_3p8rm_32{border-color:var(--ui-accent);background:var(--ui-accent);color:var(--ui-accent-text)}._active_3p8rm_47 ._label_3p8rm_54{background:linear-gradient(90deg, var(--ui-text-muted) 40%, var(--ui-text) 50%, var(--ui-text-muted) 60%);color:#0000;background-size:200% 100%;-webkit-background-clip:text;background-clip:text;font-weight:500;animation:1.8s linear infinite _shimmer_3p8rm_1}@keyframes _shimmer_3p8rm_1{0%{background-position:200% 0}to{background-position:0 0}}._done_3p8rm_78 ._label_3p8rm_54{color:var(--ui-text-muted)}._pending_3p8rm_82 ._label_3p8rm_54,._pending_3p8rm_82 ._number_3p8rm_32{opacity:.6}._detail_3p8rm_87{color:var(--ui-text-muted);grid-column:2;margin-top:.125rem;font-size:.75rem}._root_1y9ix_1{box-sizing:border-box;border:1px solid var(--ui-border);background:var(--ui-bg);cursor:pointer;border-radius:.25rem;justify-content:center;align-items:center;width:1rem;height:1rem;padding:0;transition:background .15s,border-color .15s;display:flex}._root_1y9ix_1[data-checked],._root_1y9ix_1[data-indeterminate]{background:var(--ui-accent);border-color:var(--ui-accent)}._root_1y9ix_1:focus-visible{outline:2px solid var(--ui-accent);outline-offset:2px}._root_1y9ix_1[data-disabled]{opacity:.5;cursor:not-allowed}._indicator_1y9ix_32{color:var(--ui-accent-text);display:flex}._indicator_1y9ix_32 svg{width:.625rem;height:auto}._indicator_1y9ix_32[data-indeterminate] svg{display:none}._indicator_1y9ix_32[data-indeterminate]:before{content:"";background:currentColor;width:.5rem;height:2px}._root_l1m88_1{color:var(--ui-text-muted);align-items:center;gap:.5rem;font-size:.75rem;display:flex}._icon_l1m88_9{flex-shrink:0;width:.875rem;height:.875rem}._line_l1m88_15{background:var(--ui-border);flex:1;height:1px}._restore_l1m88_21{border:1px solid var(--ui-border);border-radius:var(--ui-radius);color:var(--ui-text-muted);font:inherit;cursor:pointer;background:0 0;padding:.125rem .5rem}._restore_l1m88_21:hover{background:var(--ui-highlight);color:var(--ui-text)}._restore_l1m88_21:focus-visible{outline:2px solid var(--ui-accent);outline-offset:1px}._root_1oph3_1{box-sizing:border-box;border:1px solid var(--ui-border);border-radius:var(--ui-radius);background:var(--ui-bg-muted);overflow:hidden}._header_1oph3_9{border-bottom:1px solid var(--ui-border);justify-content:space-between;align-items:center;padding:.25rem .375rem .25rem .75rem;display:flex}._language_1oph3_17{color:var(--ui-text-muted);font-family:ui-monospace,monospace;font-size:.6875rem}._copy_1oph3_23{border-radius:var(--ui-radius);width:1.5rem;height:1.5rem;color:var(--ui-text-muted);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:flex}._copy_1oph3_23 svg{width:.875rem;height:.875rem}._copy_1oph3_23:hover{background:var(--ui-highlight);color:var(--ui-text)}._copy_1oph3_23:focus-visible{outline:2px solid var(--ui-accent);outline-offset:1px}._copied_1oph3_52{color:var(--ui-success)}._code_1oph3_56{color:var(--ui-text);margin:0;padding:.625rem .75rem;font-family:ui-monospace,monospace;font-size:.75rem;line-height:1.6;overflow-x:auto}._inputGroup_15zl9_1{box-sizing:border-box;border:1px solid var(--ui-border);border-radius:var(--ui-radius);background:var(--ui-bg);align-items:center;min-width:10rem;display:inline-flex;position:relative}._inputGroup_15zl9_1:focus-within{outline:2px solid var(--ui-accent);outline-offset:-1px;border-color:var(--ui-accent)}._input_15zl9_1{min-width:0;color:var(--ui-text);font:inherit;font-size:var(--ui-font-size);background:0 0;border:none;outline:none;flex:1;padding:.3125rem .75rem}._inputGroup_15zl9_1:has(._input_15zl9_1[data-invalid]){border-color:var(--ui-danger)}._input_15zl9_1::placeholder{color:var(--ui-text-muted)}._trigger_15zl9_38{color:var(--ui-text-muted);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0 .5rem;display:flex}._trigger_15zl9_38 svg{width:.875rem;height:.875rem}._trigger_15zl9_38:focus-visible{outline:2px solid var(--ui-accent);outline-offset:-2px}._positioner_15zl9_59{z-index:25}._popup_15zl9_63{box-sizing:border-box;min-width:var(--anchor-width);max-height:min(20rem, var(--available-height));border-radius:var(--ui-radius);background:var(--ui-popup-bg);color:var(--ui-text);font-size:var(--ui-font-size);box-shadow:var(--ui-popup-shadow);transform-origin:var(--transform-origin);padding:.25rem;transition:opacity .15s,scale .15s;overflow-y:auto}._popup_15zl9_63[data-starting-style],._popup_15zl9_63[data-ending-style]{opacity:0;scale:.97}._empty_15zl9_84{color:var(--ui-text-muted);padding:.5rem}._empty_15zl9_84:empty{padding:0}._list_15zl9_93{outline:none}._item_15zl9_97{cursor:default;-webkit-user-select:none;user-select:none;border-radius:.25rem;grid-template-columns:1rem 1fr;align-items:center;gap:.375rem;padding:.25rem .5rem;display:grid}._item_15zl9_97[data-highlighted]{background:var(--ui-highlight)}._itemIndicator_15zl9_112{color:var(--ui-accent);grid-column:1;display:flex}._itemText_15zl9_118{grid-column:2}._root_boi5e_1{box-sizing:border-box;border:1px solid var(--ui-border);border-radius:var(--ui-radius);background:var(--ui-bg);font-size:var(--ui-font-size);color:var(--ui-text);flex-direction:column;gap:.375rem;padding:.625rem .75rem;display:flex}._header_boi5e_14{align-items:center;gap:.5rem;display:flex}._icon_boi5e_20{width:1rem;height:1rem;color:var(--ui-text-muted);flex-shrink:0}._message_boi5e_27{flex:1;font-weight:500}._hash_boi5e_32{border-radius:var(--ui-radius);background:var(--ui-bg-muted);color:var(--ui-text-muted);padding:.125rem .375rem;font-family:ui-monospace,monospace;font-size:.6875rem}._author_boi5e_41{color:var(--ui-text-muted);padding-left:1.5rem;font-size:.75rem}._files_boi5e_47{flex-direction:column;gap:.125rem;margin:0;padding:0 0 0 1.5rem;list-style:none;display:flex}._file_boi5e_47{align-items:baseline;gap:.5rem;font-family:ui-monospace,monospace;font-size:.6875rem;display:flex}._path_boi5e_64{text-overflow:ellipsis;white-space:nowrap;color:var(--ui-text-muted);flex:1;overflow:hidden}._add_boi5e_72{color:var(--ui-success);font-variant-numeric:tabular-nums}._del_boi5e_77{color:var(--ui-danger);font-variant-numeric:tabular-nums}._positioner_1w3sf_1{z-index:30}._popup_1w3sf_5{box-sizing:border-box;background:var(--ui-text);color:var(--ui-bg);border-radius:.25rem;padding:.25rem .5rem;font-size:.75rem}._root_hmusm_1{border-radius:var(--ui-radius);display:inline-flex}._root_hmusm_1:focus-visible{outline:2px solid var(--ui-accent);outline-offset:2px}._root_1ux6k_1{color:var(--ui-text-muted);align-items:center;gap:.375rem;font-size:.75rem;display:inline-flex}._dot_1ux6k_9{border-radius:50%;width:.5rem;height:.5rem}._connected_1ux6k_15{background:var(--ui-success)}._connecting_1ux6k_19{background:var(--ui-warning);animation:1.2s ease-in-out infinite _pulse_1ux6k_1}._disconnected_1ux6k_24{background:var(--ui-danger)}@keyframes _pulse_1ux6k_1{50%{opacity:.3}}._root_1tsj2_1{box-sizing:border-box;border:1px solid var(--ui-border);border-radius:var(--ui-radius);background:var(--ui-bg);position:relative;overflow:hidden}._scroll_1tsj2_10{box-sizing:border-box;flex-direction:column;gap:.75rem;height:100%;padding:.75rem;display:flex;overflow-y:auto}._jump_1tsj2_20{border:1px solid var(--ui-border);background:var(--ui-popup-bg);width:1.75rem;height:1.75rem;box-shadow:var(--ui-shadow);color:var(--ui-text);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;padding:0;display:flex;position:absolute;bottom:.75rem;left:50%;transform:translate(-50%)}._jump_1tsj2_20 svg{width:.875rem;height:.875rem}._jump_1tsj2_20:focus-visible{outline:2px solid var(--ui-accent);outline-offset:2px}._root_9lx2p_1{font-size:var(--ui-font-size);margin:0}._row_9lx2p_6{justify-content:space-between;gap:1rem;padding:.4375rem 0;display:flex}._row_9lx2p_6+._row_9lx2p_6{border-top:1px solid var(--ui-border)}._label_9lx2p_17{color:var(--ui-text-muted)}._value_9lx2p_21{color:var(--ui-text);text-align:right;font-variant-numeric:tabular-nums;margin:0}._backdrop_bubeg_1{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:20;background:#0006;transition:opacity .15s;position:fixed;inset:0}._backdrop_bubeg_1[data-starting-style],._backdrop_bubeg_1[data-ending-style]{opacity:0}._popup_bubeg_15{box-sizing:border-box;z-index:21;border-radius:var(--ui-radius);background:var(--ui-popup-bg);width:min(24rem,100vw - 2rem);color:var(--ui-text);font-size:var(--ui-font-size);box-shadow:var(--ui-popup-shadow);flex-direction:column;gap:.625rem;padding:1rem;transition:opacity .15s,scale .15s;display:flex;position:fixed;top:50%;left:50%;translate:-50% -50%}._popup_bubeg_15[data-starting-style],._popup_bubeg_15[data-ending-style]{opacity:0;scale:.97}._footer_bubeg_41{justify-content:flex-end;gap:.5rem;margin-top:.75rem;display:flex}._title_bubeg_48{margin:0;font-size:1rem;font-weight:600}._root_1k99p_1{box-sizing:border-box;border:1px solid var(--ui-border);border-radius:var(--ui-radius);background:var(--ui-bg);overflow:hidden}._header_1k99p_9{border-bottom:1px solid var(--ui-border);background:var(--ui-bg-muted);align-items:center;gap:.375rem;padding:.375rem .375rem .375rem .75rem;display:flex}._header_1k99p_9 button{align-items:center;gap:.25rem;height:1.5rem;padding:0 .5rem;font-size:.75rem;display:inline-flex}._header_1k99p_9 button svg{width:.75rem;height:.75rem}._fileName_1k99p_32{color:var(--ui-text-muted);flex:1;font-family:ui-monospace,monospace;font-size:.75rem}._code_1k99p_39{color:var(--ui-text);margin:0;padding:.5rem 0;font-family:ui-monospace,monospace;font-size:.75rem;line-height:1.6;overflow-x:auto}._code_1k99p_39>div{white-space:pre;padding:0 .75rem}._marker_1k99p_54{width:1rem;color:var(--ui-text-muted);-webkit-user-select:none;user-select:none;display:inline-block}._add_1k99p_61{background:color-mix(in srgb, var(--ui-success) 14%, transparent)}._add_1k99p_61 ._marker_1k99p_54{color:var(--ui-success)}._remove_1k99p_69{background:color-mix(in srgb, var(--ui-danger) 12%, transparent)}._remove_1k99p_69 ._marker_1k99p_54{color:var(--ui-danger)}._backdrop_1xa9p_1{z-index:20;opacity:calc(1 - var(--drawer-swipe-progress));background:#0006;transition:opacity .35s cubic-bezier(.32,.72,0,1);position:fixed;inset:0}._backdrop_1xa9p_1[data-swiping]{transition-duration:0s}._backdrop_1xa9p_1[data-starting-style],._backdrop_1xa9p_1[data-ending-style]{opacity:0}._viewport_1xa9p_19{z-index:21;justify-content:flex-end;align-items:stretch;display:flex;position:fixed;inset:0}._popup_1xa9p_28{box-sizing:border-box;background:var(--ui-popup-bg);width:min(20rem,100vw - 3rem);height:100%;color:var(--ui-text);font-size:var(--ui-font-size);overscroll-behavior:contain;box-shadow:var(--ui-popup-shadow);transform:translateX(var(--drawer-swipe-movement-x));outline:none;padding:1rem;transition:transform .35s cubic-bezier(.32,.72,0,1);overflow-y:auto}._popup_1xa9p_28[data-swiping]{-webkit-user-select:none;user-select:none;transition-duration:0s}._popup_1xa9p_28[data-starting-style],._popup_1xa9p_28[data-ending-style]{transform:translate(100%)}._content_1xa9p_54{flex-direction:column;gap:.625rem;display:flex}._header_1xa9p_60{justify-content:space-between;align-items:center;display:flex}._title_1xa9p_66{margin:0;font-size:1rem;font-weight:600}._close_1xa9p_72{width:1.25rem;height:1.25rem;color:var(--ui-text-muted);cursor:pointer;background:0 0;border:none;border-radius:.25rem;justify-content:center;align-items:center;padding:0;font-size:.875rem;display:flex}._close_1xa9p_72:focus-visible{outline:2px solid var(--ui-accent);outline-offset:2px}._close_1xa9p_72:hover{color:var(--ui-text)}._root_11udt_1{box-sizing:border-box;border:1px solid var(--ui-border);border-radius:var(--ui-radius);text-align:center;font-size:var(--ui-font-size);color:var(--ui-text);flex-direction:column;align-items:center;gap:.375rem;padding:2rem 1.5rem;display:flex}._icon_11udt_15{color:var(--ui-text-muted);margin-bottom:.25rem;display:flex}._icon_11udt_15 svg{width:1.5rem;height:1.5rem}._title_11udt_26{font-weight:600}._description_11udt_30{color:var(--ui-text-muted);margin:0}._action_11udt_35{margin-top:.5rem}._root_1pu00_1{gap:.125rem;display:inline-flex}._button_1pu00_6{border-radius:var(--ui-radius);width:1.75rem;height:1.75rem;color:var(--ui-text-muted);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:flex}._button_1pu00_6 svg{width:.875rem;height:.875rem}._button_1pu00_6:hover{background:var(--ui-highlight);color:var(--ui-text)}._button_1pu00_6:focus-visible{outline:2px solid var(--ui-accent);outline-offset:1px}._selected_1pu00_35{color:var(--ui-accent);background:color-mix(in srgb, var(--ui-accent) 12%, transparent)}._root_5w615_1{font-size:var(--ui-font-size);flex-direction:column;align-items:flex-start;gap:.25rem;display:flex}._label_5w615_9{color:var(--ui-text);font-weight:500}._hint_5w615_14{color:var(--ui-text-muted);margin:0;font-size:.75rem}._error_5w615_20{color:var(--ui-danger);margin:0;font-size:.75rem}._root_1egc0_1{color:var(--ui-accent);font-variant-numeric:tabular-nums;vertical-align:super;margin:0 .0625rem;font-size:.6875rem;line-height:1;text-decoration:none}._root_1egc0_1:hover{text-decoration:underline}._root_1egc0_1:focus-visible{outline:2px solid var(--ui-accent);outline-offset:1px;border-radius:.125rem}._root_1src3_1{box-sizing:border-box;border:1px solid var(--ui-border);border-radius:var(--ui-radius);background:var(--ui-bg);color:var(--ui-text);font:inherit;font-size:var(--ui-font-size);padding:.3125rem .75rem;transition:border-color .15s}._root_1src3_1::placeholder{color:var(--ui-text-muted)}._root_1src3_1:focus{outline:2px solid var(--ui-accent);outline-offset:-1px;border-color:var(--ui-accent)}._root_1src3_1[data-invalid]{border-color:var(--ui-danger)}._group_1src3_28{box-sizing:border-box;border:1px solid var(--ui-border);border-radius:var(--ui-radius);background:var(--ui-bg);align-items:center;display:inline-flex}._group_1src3_28:focus-within{outline:2px solid var(--ui-accent);outline-offset:-1px;border-color:var(--ui-accent)}._group_1src3_28:has(._bare_1src3_43[data-invalid]){border-color:var(--ui-danger)}._bare_1src3_43{min-width:0;color:var(--ui-text);font:inherit;font-size:var(--ui-font-size);background:0 0;border:none;outline:none;flex:1;padding:.3125rem .75rem}._bare_1src3_43::placeholder{color:var(--ui-text-muted)}._affix_1src3_63{color:var(--ui-text-muted);font-size:var(--ui-font-size);align-items:center;display:flex}._affix_1src3_63:first-child{padding-left:.625rem}._affix_1src3_63:last-child{padding-right:.625rem}._affix_1src3_63 svg{width:.875rem;height:.875rem}._affix_1src3_63:first-child+._bare_1src3_43{padding-left:.4375rem}._root_1src3_1[data-disabled]{opacity:.5;cursor:not-allowed}._root_iftjy_1{font-size:var(--ui-font-size);color:var(--ui-text);cursor:pointer;align-items:center;gap:.5rem;display:inline-flex}._positioner_dlwmz_1{z-index:25}._popup_dlwmz_5{box-sizing:border-box;border-radius:var(--ui-radius);background:var(--ui-popup-bg);min-width:10rem;color:var(--ui-text);font-size:var(--ui-font-size);box-shadow:var(--ui-popup-shadow);transform-origin:var(--transform-origin);padding:.25rem;transition:opacity .15s,scale .15s}._popup_dlwmz_5[data-starting-style],._popup_dlwmz_5[data-ending-style]{opacity:0;scale:.97}._item_dlwmz_24{cursor:default;-webkit-user-select:none;user-select:none;border-radius:.25rem;outline:none;align-items:center;gap:.5rem;padding:.375rem .5rem;display:flex}._itemIcon_dlwmz_35{color:var(--ui-text-muted);flex-shrink:0;display:flex}._itemIcon_dlwmz_35 svg{width:.875rem;height:.875rem}._item_dlwmz_24[data-highlighted]{background:var(--ui-highlight)}._item_dlwmz_24[data-disabled]{opacity:.5}._danger_dlwmz_54{color:var(--ui-danger)}._groupLabel_dlwmz_58{color:var(--ui-text-muted);letter-spacing:.05em;text-transform:uppercase;-webkit-user-select:none;user-select:none;padding:.375rem .5rem .125rem;font-size:.6875rem;font-weight:500}._separator_dlwmz_68{background:var(--ui-border);height:1px;margin:.25rem 0}._root_11yfx_1{font-size:var(--ui-font-size);color:var(--ui-text);align-items:flex-end;gap:.5rem;display:flex}._user_11yfx_9{flex-direction:row-reverse}._avatar_11yfx_13{flex-shrink:0}._bubble_11yfx_17{white-space:pre-wrap;overflow-wrap:break-word;max-width:80%;line-height:1.5}._user_11yfx_9 ._bubble_11yfx_17{border-radius:var(--ui-radius);background:var(--ui-accent);color:var(--ui-accent-text);padding:.5rem .75rem}._assistant_11yfx_31 ._bubble_11yfx_17{border-radius:var(--ui-radius);border:1px solid var(--ui-border);background:var(--ui-bg-muted);padding:.5rem .75rem}._root_1slzu_1{align-items:center;gap:.125rem;display:inline-flex}._root_1slzu_1 svg{width:.875rem;height:.875rem}._root_1ulej_1{width:12rem;font-size:var(--ui-font-size);grid-template-columns:1fr auto;align-items:center;gap:.25rem .5rem;display:grid}._label_1ulej_10{color:var(--ui-text-muted)}._value_1ulej_14{color:var(--ui-text);font-variant-numeric:tabular-nums;justify-self:end}._track_1ulej_20{background:var(--ui-track);border-radius:.125rem;grid-column:1/-1;height:.375rem;overflow:hidden}._indicator_1ulej_28{background:var(--ui-accent);height:100%;transition:width .3s}._root_ce7wr_1{display:inline-block}._group_ce7wr_5{border:1px solid var(--ui-border);border-radius:var(--ui-radius);background:var(--ui-bg);align-items:stretch;display:inline-flex;overflow:hidden}._group_ce7wr_5:focus-within{outline:2px solid var(--ui-accent);outline-offset:-1px;border-color:var(--ui-accent)}._stepper_ce7wr_20{background:var(--ui-bg-muted);width:1.75rem;color:var(--ui-text);cursor:pointer;border:none;justify-content:center;align-items:center;padding:0;transition:background .15s;display:flex}._stepper_ce7wr_20:hover:not([data-disabled]){background:var(--ui-track)}._stepper_ce7wr_20[data-disabled]{opacity:.4;cursor:not-allowed}._stepper_ce7wr_20:focus-visible{outline:2px solid var(--ui-accent);outline-offset:-2px}._stepper_ce7wr_20 svg{width:.75rem;height:.75rem}._input_ce7wr_52{box-sizing:border-box;width:3.5rem;color:var(--ui-text);font:inherit;font-size:var(--ui-font-size);font-variant-numeric:tabular-nums;text-align:center;background:0 0;border:none;outline:none;padding:.3125rem .5rem}._root_1km66_1{align-items:center;gap:.25rem;display:flex}._button_1km66_7{border-radius:var(--ui-radius);min-width:1.75rem;height:1.75rem;color:var(--ui-text);font:inherit;font-size:var(--ui-font-size);font-variant-numeric:tabular-nums;cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0 .375rem;transition:background .15s;display:flex}._button_1km66_7:hover:not(:disabled):not(._current_1km66_25){background:var(--ui-bg-muted)}._button_1km66_7:disabled{opacity:.4;cursor:not-allowed}._button_1km66_7:focus-visible{outline:2px solid var(--ui-accent);outline-offset:2px}._button_1km66_7 svg{width:.875rem;height:.875rem}._current_1km66_25{background:var(--ui-accent);color:var(--ui-accent-text)}._ellipsis_1km66_49{text-align:center;min-width:1.75rem;color:var(--ui-text-muted);font-size:var(--ui-font-size)}._root_bluvi_1{box-sizing:border-box;border:1px solid var(--ui-border);border-radius:var(--ui-radius);background:var(--ui-bg);font-size:var(--ui-font-size);color:var(--ui-text)}._header_bluvi_10{border-bottom:1px solid var(--ui-border);justify-content:space-between;align-items:center;padding:.5rem .75rem;display:flex}._title_bluvi_18{font-weight:600}._progress_bluvi_22{color:var(--ui-text-muted);font-variant-numeric:tabular-nums;font-size:.75rem}._list_bluvi_28{flex-direction:column;gap:.5rem;margin:0;padding:.5rem .75rem;list-style:none;display:flex}._step_bluvi_37{align-items:center;gap:.5rem;display:flex}._iconCell_bluvi_43{flex-shrink:0;justify-content:center;align-items:center;width:1rem;height:1rem;display:flex}._iconCell_bluvi_43 svg{width:.875rem;height:.875rem}._iconCell_bluvi_43>span[role=status]{--sp:.625rem;--sp-border:1.5px}._dot_bluvi_63{background:var(--ui-track);border-radius:50%;width:.375rem;height:.375rem}._iconDone_bluvi_70{color:var(--ui-success)}._iconError_bluvi_74{color:var(--ui-danger)}._step_bluvi_37._done_bluvi_78 ._label_bluvi_78,._step_bluvi_37._pending_bluvi_82 ._label_bluvi_78{color:var(--ui-text-muted)}._step_bluvi_37._active_bluvi_87 ._label_bluvi_78{background:linear-gradient(90deg, var(--ui-text-muted) 40%, var(--ui-text) 50%, var(--ui-text-muted) 60%);color:#0000;background-size:200% 100%;-webkit-background-clip:text;background-clip:text;font-weight:500;animation:1.8s linear infinite _shimmer_bluvi_1}@keyframes _shimmer_bluvi_1{0%{background-position:200% 0}to{background-position:0 0}}._positioner_1obqp_1{z-index:25}._popup_1obqp_5{box-sizing:border-box;border-radius:var(--ui-radius);background:var(--ui-popup-bg);max-width:18rem;color:var(--ui-text);font-size:var(--ui-font-size);box-shadow:var(--ui-popup-shadow);transform-origin:var(--transform-origin);flex-direction:column;gap:.375rem;padding:.75rem;transition:opacity .15s,scale .15s;display:flex}._popup_1obqp_5[data-starting-style],._popup_1obqp_5[data-ending-style]{opacity:0;scale:.97}._title_1obqp_27{font-size:inherit;margin:0;font-weight:600}._root_17kww_1{width:12rem;display:block}._track_17kww_6{background:var(--ui-track);border-radius:9999px;height:.375rem;display:block;overflow:hidden}._indicator_17kww_14{background:var(--ui-accent);height:100%;transition:width .3s;display:block}._root_19uae_1{box-sizing:border-box;border:1px solid var(--ui-border);border-radius:var(--ui-radius);background:var(--ui-bg);flex-direction:column;gap:.375rem;padding:.625rem .625rem .5rem;display:flex}._root_19uae_1:focus-within{border-color:var(--ui-accent)}._textarea_19uae_16{resize:none;color:var(--ui-text);font:inherit;font-size:var(--ui-font-size);field-sizing:content;background:0 0;border:none;outline:none;min-height:2lh;max-height:12rem;padding:0;line-height:1.5}._textarea_19uae_16::placeholder{color:var(--ui-text-muted)}._footer_19uae_35{justify-content:space-between;align-items:center;gap:.5rem;display:flex}._footer_19uae_35>button svg{width:1rem;height:1rem}._footer_19uae_35>button{border-radius:50%;width:1.75rem;height:1.75rem}._actions_19uae_55{align-items:center;gap:.25rem;display:flex}._root_zkx40_1{font-size:var(--ui-font-size);color:var(--ui-text);flex-direction:column;gap:.375rem;margin:0;padding:0;list-style:none;display:flex}._item_zkx40_12{border:1px solid var(--ui-border);border-radius:var(--ui-radius);background:var(--ui-bg);align-items:center;gap:.5rem;padding:.375rem .375rem .375rem .625rem;display:flex}._position_zkx40_22{color:var(--ui-text-muted);font-variant-numeric:tabular-nums;font-size:.6875rem}._label_zkx40_28{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}._remove_zkx40_35{border-radius:var(--ui-radius);width:1.5rem;height:1.5rem;color:var(--ui-text-muted);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:flex}._remove_zkx40_35 svg{width:.875rem;height:.875rem}._remove_zkx40_35:hover{background:var(--ui-highlight);color:var(--ui-danger)}._remove_zkx40_35:focus-visible{outline:2px solid var(--ui-accent);outline-offset:1px}._group_1ygs1_1{flex-direction:column;gap:.5rem;display:flex}._label_1ygs1_7{font-size:var(--ui-font-size);color:var(--ui-text);cursor:pointer;align-items:center;gap:.5rem;display:inline-flex}._radio_1ygs1_16{box-sizing:border-box;border:1px solid var(--ui-border);background:var(--ui-bg);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;width:1rem;height:1rem;padding:0;transition:border-color .15s;display:flex}._radio_1ygs1_16[data-checked]{border-color:var(--ui-accent)}._radio_1ygs1_16:focus-visible{outline:2px solid var(--ui-accent);outline-offset:2px}._radio_1ygs1_16[data-disabled]{opacity:.5;cursor:not-allowed}._indicator_1ygs1_45{background:var(--ui-accent);border-radius:50%;width:.5rem;height:.5rem}._trigger_1pklq_1{box-sizing:border-box;border:1px solid var(--ui-border);border-radius:var(--ui-radius);background:var(--ui-bg);min-width:8rem;color:var(--ui-text);font:inherit;font-size:var(--ui-font-size);cursor:pointer;align-items:center;gap:.5rem;padding:.3125rem .75rem;display:inline-flex}._ghost_1pklq_17{min-width:0;color:var(--ui-text-muted);background:0 0;border-color:#0000;padding:.25rem .5rem}._ghost_1pklq_17:hover{background:var(--ui-highlight);color:var(--ui-text)}._trigger_1pklq_1:focus-visible{outline:2px solid var(--ui-accent);outline-offset:2px}._trigger_1pklq_1[data-invalid]{border-color:var(--ui-danger)}._trigger_1pklq_1[data-disabled]{opacity:.5;cursor:not-allowed}._value_1pklq_44{text-align:left;flex:1}._icon_1pklq_49{color:var(--ui-text-muted);display:flex}._positioner_1pklq_54{z-index:10}._popup_1pklq_58{box-sizing:border-box;min-width:var(--anchor-width);max-height:min(20rem, var(--available-height));border-radius:var(--ui-radius);background:var(--ui-popup-bg);color:var(--ui-text);box-shadow:var(--ui-popup-shadow);padding:.25rem;overflow-y:auto}._item_1pklq_70{font-size:var(--ui-font-size);cursor:default;-webkit-user-select:none;user-select:none;border-radius:.25rem;grid-template-columns:1rem 1fr;align-items:center;gap:.375rem;padding:.25rem .5rem;display:grid}._item_1pklq_70[data-highlighted]{background:var(--ui-highlight);color:var(--ui-text)}._itemIndicator_1pklq_87{color:var(--ui-accent);grid-column:1;display:flex}._itemText_1pklq_93{grid-column:2}._root_tgugn_1{font-size:var(--ui-font-size);background:linear-gradient(90deg, var(--ui-text-muted) 40%, var(--ui-text) 50%, var(--ui-text-muted) 60%);color:#0000;background-size:200% 100%;-webkit-background-clip:text;background-clip:text;animation:1.8s linear infinite _shimmer_tgugn_1}@keyframes _shimmer_tgugn_1{0%{background-position:200% 0}to{background-position:0 0}}._root_63dbe_1{box-sizing:border-box;--ui-text:#eceef2;--ui-text-muted:#ebeef59e;--ui-bg-muted:#ffffff14;--ui-border:#ffffff1a;background:color-mix(in srgb, var(--ui-accent) 28%, #101319);width:14rem;height:100%;color:var(--ui-text);font-size:var(--ui-font-size);flex-direction:column;transition:width .2s;display:flex;position:relative}._root_63dbe_1[data-collapsed]{width:3.25rem}._root_63dbe_1[data-mobile]{z-index:15;transition:translate .2s;position:fixed;top:0;bottom:0;left:0;translate:-100%}._root_63dbe_1[data-mobile-open]{box-shadow:var(--ui-popup-shadow);translate:0}._root_63dbe_1[data-mobile] ._item_63dbe_41{padding-block:.5rem}._mobileBackdrop_63dbe_45{z-index:14;background:#0006;border:none;padding:0;position:fixed;inset:0}._header_63dbe_54{white-space:nowrap;align-items:center;gap:.5rem;padding:.75rem;display:flex}._headerIcon_63dbe_62{background:var(--ui-bg-muted);width:2rem;height:2rem;color:var(--ui-text);border-radius:.375rem;flex-shrink:0;justify-content:center;align-items:center;display:flex}._headerIcon_63dbe_62 svg{width:1.125rem;height:1.125rem}._headerText_63dbe_79{flex-direction:column;min-width:0;display:flex}._headerTitle_63dbe_85{text-overflow:ellipsis;font-weight:600;overflow:hidden}._headerSubtitle_63dbe_91{color:var(--ui-text-muted);text-overflow:ellipsis;font-size:.6875rem;overflow:hidden}._root_63dbe_1[data-collapsed] ._headerText_63dbe_79{display:none}._root_63dbe_1[data-collapsed] ._header_63dbe_54{justify-content:center;padding-inline:0}._nav_63dbe_107{flex-direction:column;flex:1;gap:.75rem;padding:.5rem;display:flex;position:relative;overflow-y:auto}._indicator_63dbe_118{border-radius:var(--ui-radius);pointer-events:none;background:#ffffff1a;transition:top .2s cubic-bezier(.4,0,.2,1),height .2s;position:absolute;left:.5rem;right:.5rem}._sectionTitle_63dbe_128{color:color-mix(in srgb, var(--ui-text-muted) 70%, transparent);letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;padding:0 .5rem .25rem;font-size:.625rem;font-weight:500}._root_63dbe_1[data-collapsed] ._sectionTitle_63dbe_128{visibility:hidden;height:.5rem;padding-bottom:0}._section_63dbe_128+._section_63dbe_128{border-top:1px solid #ffffff14;padding-top:.75rem}._list_63dbe_149{flex-direction:column;gap:.125rem;margin:0;padding:0;list-style:none;display:flex}._item_63dbe_41{box-sizing:border-box;z-index:1;border-radius:var(--ui-radius);width:100%;color:var(--ui-text-muted);font:inherit;text-align:left;white-space:nowrap;cursor:pointer;background:0 0;border:none;align-items:center;gap:.5rem;padding:.375rem .5rem;text-decoration:none;transition:background .15s,color .15s;display:flex;position:relative}._item_63dbe_41:hover{background:var(--ui-bg-muted);color:var(--ui-text)}._item_63dbe_41:focus-visible{outline:2px solid color-mix(in srgb, var(--ui-accent) 45%, #fff);outline-offset:-2px}._item_63dbe_41[aria-current=page]{color:#fff;font-weight:500}._icon_63dbe_195{border-radius:.375rem;flex-shrink:0;justify-content:center;align-items:center;width:1.5rem;height:1.5rem;display:flex}._icon_63dbe_195 svg{width:1rem;height:1rem}._label_63dbe_210{text-overflow:ellipsis;flex:1;overflow:hidden}._badge_63dbe_216{flex-shrink:0}._root_63dbe_1[data-collapsed] ._label_63dbe_210{display:none}._root_63dbe_1[data-collapsed] ._item_63dbe_41{justify-content:center;width:2.25rem;height:2.25rem;margin:0 auto;padding:0;position:relative}._root_63dbe_1[data-collapsed] ._badge_63dbe_216{position:absolute;top:.25rem;right:.25rem}._root_63dbe_1[data-collapsed] ._badge_63dbe_216>*{background:var(--badge-color,var(--ui-accent));border-radius:50%;width:.375rem;height:.375rem;padding:0;font-size:0;display:block;overflow:hidden}._root_63dbe_1[data-collapsed] ._list_63dbe_149{gap:.375rem}._footerActions_63dbe_256{border-top:1px solid var(--ui-border);align-items:center;gap:.25rem;padding:.375rem .75rem;display:flex}._root_63dbe_1[data-collapsed] ._footerActions_63dbe_256{flex-direction:column;padding-inline:0}._footer_63dbe_256{border-top:1px solid var(--ui-border);white-space:nowrap;padding:.75rem}._grabber_63dbe_276{cursor:pointer;z-index:1;background:0 0;border:none;width:10px;padding:0;position:absolute;top:0;bottom:0;right:-5px}._grabber_63dbe_276:hover,._grabber_63dbe_276:focus-visible{outline:none}._grabberHandle_63dbe_295{background:var(--ui-popup-bg);width:1.25rem;height:1.25rem;box-shadow:var(--ui-shadow);color:#85878b;opacity:0;pointer-events:none;border:1px solid #80808059;border-radius:50%;justify-content:center;align-items:center;transition:opacity .12s;display:flex;position:absolute;top:50%;left:50%;translate:-50% -50%}._grabber_63dbe_276:hover ._grabberHandle_63dbe_295,._grabber_63dbe_276:focus-visible ._grabberHandle_63dbe_295{opacity:1}._grabber_63dbe_276:hover ._grabberHandle_63dbe_295{color:#4a4d52}._grabber_63dbe_276:focus-visible ._grabberHandle_63dbe_295{outline:2px solid var(--ui-accent);outline-offset:1px}._grabberHandle_63dbe_295 svg{width:.75rem;height:.75rem}._root_h0sez_1{border-radius:var(--ui-radius);background:var(--ui-bg-muted);animation:1.5s ease-in-out infinite _pulse_h0sez_1;display:block}@keyframes _pulse_h0sez_1{0%,to{opacity:1}50%{opacity:.45}}@media (prefers-reduced-motion:reduce){._root_h0sez_1{animation:none}}._root_cbbub_1{align-items:center;width:12rem;display:flex}._control_cbbub_7{cursor:pointer;align-items:center;width:100%;padding-block:.5rem;display:flex}._track_cbbub_15{background:var(--ui-track);border-radius:.125rem;width:100%;height:.25rem;position:relative}._indicator_cbbub_23{background:var(--ui-accent);border-radius:.125rem;height:100%;position:absolute}._thumb_cbbub_30{box-sizing:border-box;border:2px solid var(--ui-accent);background:var(--ui-bg);border-radius:50%;width:1rem;height:1rem}._thumb_cbbub_30:focus-visible{outline:2px solid var(--ui-accent);outline-offset:2px}._root_j8t8s_1{box-sizing:border-box;border:1px solid var(--ui-border);border-radius:var(--ui-radius);background:var(--ui-bg);font-size:var(--ui-font-size);color:var(--ui-text)}._summary_j8t8s_10{cursor:pointer;color:var(--ui-text-muted);-webkit-user-select:none;user-select:none;align-items:center;gap:.5rem;padding:.5rem .75rem;list-style:none;display:flex}._summary_j8t8s_10::-webkit-details-marker{display:none}._summary_j8t8s_10:focus-visible{outline:2px solid var(--ui-accent);outline-offset:2px}._icon_j8t8s_30,._chevron_j8t8s_31{flex-shrink:0;width:.875rem;height:.875rem}._chevron_j8t8s_31{margin-left:auto;transition:transform .15s}._root_j8t8s_1[open] ._chevron_j8t8s_31{transform:rotate(180deg)}._list_j8t8s_46{flex-direction:column;gap:.375rem;margin:0;padding:.125rem .75rem .625rem;list-style:none;display:flex}._entry_j8t8s_55{align-items:baseline;gap:.375rem;display:flex}._index_j8t8s_61{color:var(--ui-text-muted);font-variant-numeric:tabular-nums;flex-shrink:0;font-size:.6875rem}._link_j8t8s_68{color:inherit;flex-direction:column;gap:.125rem;text-decoration:none;display:flex}._link_j8t8s_68:hover ._title_j8t8s_76{text-decoration:underline}._link_j8t8s_68:focus-visible{outline:2px solid var(--ui-accent);outline-offset:2px;border-radius:.125rem}._title_j8t8s_76{color:var(--ui-accent);font-weight:500}._host_j8t8s_91{color:var(--ui-text-muted);font-size:.6875rem}._description_j8t8s_96{color:var(--ui-text-muted);font-size:.75rem}._root_gfw1r_1{box-sizing:border-box;border:1px solid color-mix(in srgb, var(--ui-danger) 40%, var(--ui-border));border-radius:var(--ui-radius);background:color-mix(in srgb, var(--ui-danger) 5%, var(--ui-bg));font-family:ui-monospace,monospace;font-size:.75rem;overflow:hidden}._message_gfw1r_11{color:var(--ui-danger);align-items:center;gap:.5rem;padding:.5rem .75rem;font-weight:600;display:flex}._icon_gfw1r_20{flex-shrink:0;width:.875rem;height:.875rem}._frames_gfw1r_26{color:var(--ui-text);margin:0;padding:0 .75rem .5rem 1.5rem;list-style:none}._frame_gfw1r_26,._frameButton_gfw1r_34{padding:.125rem 0;line-height:1.5;display:block}._frameButton_gfw1r_34{width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:none}._frameButton_gfw1r_34:hover ._location_gfw1r_50{color:var(--ui-accent);text-decoration:underline}._frameButton_gfw1r_34:focus-visible{outline:2px solid var(--ui-accent);outline-offset:1px}._at_gfw1r_60,._location_gfw1r_50{color:var(--ui-text-muted)}._root_1wkjk_1{box-sizing:border-box;border:1px solid var(--ui-border);border-radius:var(--ui-radius);background:var(--ui-bg);box-shadow:var(--ui-shadow);flex-direction:column;gap:.25rem;padding:.875rem 1rem;display:flex}._label_1wkjk_13{color:var(--ui-text-muted);letter-spacing:.05em;text-transform:uppercase;font-size:.6875rem;font-weight:500}._value_1wkjk_21{color:var(--ui-text);font-variant-numeric:tabular-nums;font-size:1.5rem;font-weight:600;line-height:1.2}._footer_1wkjk_29{font-size:var(--ui-font-size);align-items:baseline;gap:.375rem;display:flex}._deltaUp_1wkjk_36{color:var(--ui-success);font-variant-numeric:tabular-nums}._deltaDown_1wkjk_41{color:var(--ui-danger);font-variant-numeric:tabular-nums}._hint_1wkjk_46{color:var(--ui-text-muted)}._root_1gtow_1{white-space:pre-wrap;overflow-wrap:break-word;font-size:var(--ui-font-size);color:var(--ui-text)}._cursor_1gtow_8{vertical-align:text-bottom;background:var(--ui-accent);width:.5em;height:1em;margin-left:.125em;animation:1s steps(2,end) infinite _blink_1gtow_1;display:inline-block}@keyframes _blink_1gtow_1{50%{opacity:0}}._root_2qojr_1{box-sizing:border-box;border:1px solid var(--ui-border);border-radius:var(--ui-radius);background:var(--ui-bg-muted);font-size:var(--ui-font-size);color:var(--ui-text);align-items:center;gap:.25rem;padding:.25rem .25rem .25rem .625rem;display:inline-flex}._button_2qojr_14{width:1.25rem;height:1.25rem;color:var(--ui-text-muted);cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;padding:0;display:flex}._button_2qojr_14 svg{width:.875rem;height:.875rem}._button_2qojr_14:hover{background:var(--ui-highlight);color:var(--ui-text)}._button_2qojr_14:focus-visible{outline:2px solid var(--ui-accent);outline-offset:1px}._accept_2qojr_43:hover{color:var(--ui-success)}._root_ht0a2_1{box-sizing:border-box;background:var(--ui-track);cursor:pointer;border:none;border-radius:9999px;width:2rem;height:1.25rem;padding:.125rem;transition:background .15s}._root_ht0a2_1[data-checked]{background:var(--ui-accent)}._root_ht0a2_1:focus-visible{outline:2px solid var(--ui-accent);outline-offset:2px}._thumb_ht0a2_22{background:var(--ui-bg);border-radius:50%;width:1rem;height:1rem;transition:translate .15s;display:block}._thumb_ht0a2_22[data-checked]{translate:.75rem}._container_k25o5_1{flex-direction:column;gap:.5rem;display:flex}._wrapper_k25o5_7{border:1px solid var(--ui-border);border-radius:var(--ui-radius);background:var(--ui-bg);overflow:auto}._table_k25o5_14{border-collapse:collapse;width:100%;font-size:var(--ui-font-size);color:var(--ui-text)}._th_k25o5_21{background:var(--ui-bg-muted);color:var(--ui-text-muted);letter-spacing:.05em;text-transform:uppercase;text-align:left;white-space:nowrap;padding:.5rem .75rem;font-size:.6875rem;font-weight:500;position:sticky;top:0}._sortButton_k25o5_35{color:inherit;font:inherit;letter-spacing:inherit;text-transform:inherit;cursor:pointer;background:0 0;border:none;align-items:center;gap:.25rem;padding:0;display:inline-flex}._sortButton_k25o5_35:hover{color:var(--ui-text)}._sortButton_k25o5_35:focus-visible{outline:2px solid var(--ui-accent);outline-offset:2px}._sortIcon_k25o5_58{font-size:.625rem}._tr_k25o5_62{border-top:1px solid var(--ui-border)}._tr_k25o5_62:hover{background:var(--ui-bg-muted)}._tr_k25o5_62[data-selected]{background:color-mix(in srgb, var(--ui-accent) 7%, transparent)}._checkCell_k25o5_74{width:2rem;padding-right:0;line-height:0}._pager_k25o5_80{justify-content:flex-end;display:flex}._td_k25o5_85{text-align:left;white-space:nowrap;padding:.5rem .75rem}._th_k25o5_21[data-align=right],._td_k25o5_85[data-align=right]{text-align:right}._td_k25o5_85[data-align=right]{font-variant-numeric:tabular-nums}._root_1rocf_2{box-sizing:border-box;border-radius:var(--ui-radius);background:#22272e;border:1px solid #444c56;overflow:hidden}._title_1rocf_10{color:#768390;background:#2d333b;border-bottom:1px solid #444c56;padding:.375rem .75rem;font-family:ui-monospace,monospace;font-size:.6875rem}._body_1rocf_19{margin:0;padding:.625rem .75rem;font-family:ui-monospace,monospace;font-size:.75rem;line-height:1.6;overflow-x:auto}._body_1rocf_19>div{white-space:pre-wrap;overflow-wrap:anywhere}._stdout_1rocf_33{color:#adbac7}._stderr_1rocf_37{color:#f47067}._input_1rocf_41{color:#cdd9e5}._prompt_1rocf_45{color:#57ab5a;-webkit-user-select:none;user-select:none}._root_faapz_1{box-sizing:border-box;border:1px solid var(--ui-border);border-radius:var(--ui-radius);background:var(--ui-bg);font-size:var(--ui-font-size);color:var(--ui-text)}._summary_faapz_10{border-bottom:1px solid var(--ui-border);font-variant-numeric:tabular-nums;gap:.75rem;padding:.5rem .75rem;font-weight:500;display:flex}._passCount_faapz_19{color:var(--ui-success)}._failCount_faapz_23{color:var(--ui-danger)}._skipCount_faapz_27{color:var(--ui-text-muted)}._list_faapz_31{margin:0;padding:.375rem .75rem .5rem;list-style:none}._row_faapz_37{cursor:default;align-items:center;gap:.5rem;padding:.1875rem 0;list-style:none;display:flex}._row_faapz_37::-webkit-details-marker{display:none}._details_faapz_50 ._row_faapz_37{cursor:pointer}._details_faapz_50 ._row_faapz_37:focus-visible{outline:2px solid var(--ui-accent);outline-offset:1px}._row_faapz_37 svg{flex-shrink:0;width:.875rem;height:.875rem}._pass_faapz_19{color:var(--ui-success)}._fail_faapz_23{color:var(--ui-danger)}._skip_faapz_27{color:var(--ui-text-muted)}._name_faapz_77{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}._message_faapz_83{border-radius:var(--ui-radius);background:color-mix(in srgb, var(--ui-danger) 6%, var(--ui-bg-muted));white-space:pre-wrap;color:var(--ui-text);margin:.25rem 0 .375rem 1.375rem;padding:.5rem;font-family:ui-monospace,monospace;font-size:.6875rem}._viewport_10hkp_1{z-index:40;width:min(18rem,100vw - 2rem);position:fixed;bottom:1rem;right:1rem}._root_10hkp_9{box-sizing:border-box;z-index:calc(100 - var(--toast-index));transform-origin:bottom;transform:translateY(calc(var(--toast-index) * -.5rem)) scale(calc(1 - var(--toast-index) * .06));border-radius:var(--ui-radius);background:var(--ui-popup-bg);color:var(--ui-text);font-size:var(--ui-font-size);box-shadow:var(--ui-popup-shadow);border:none;padding:.625rem 2rem .625rem .75rem;transition:transform .2s,opacity .15s,translate .15s;position:absolute;bottom:0;left:0;right:0}._root_10hkp_9[data-expanded]{transform:translateY(calc(var(--toast-offset-y) * -1 - var(--toast-index) * .5rem))}._root_10hkp_9:after{content:"";height:calc(.5rem + 1px);position:absolute;top:100%;left:0;right:0}._root_10hkp_9:before{content:"";height:.75rem;position:absolute;bottom:100%;left:0;right:0}._root_10hkp_9:not([data-expanded]){opacity:calc(1 - var(--toast-index) * .2)}._root_10hkp_9[data-limited]{opacity:0;pointer-events:none}._root_10hkp_9[data-limited]:before,._root_10hkp_9[data-limited]:after{content:none}._root_10hkp_9[data-starting-style],._root_10hkp_9[data-ending-style]{opacity:0;translate:0 .5rem}._title_10hkp_76{font-size:inherit;margin:0;font-weight:600}._description_10hkp_82{color:var(--ui-text-muted);margin:0}._actions_10hkp_87{gap:.375rem;margin-top:.5rem;display:flex}._actionButton_10hkp_93{border-radius:var(--ui-radius);font:inherit;cursor:pointer;border:none;padding:.25rem .625rem;font-size:.75rem;font-weight:500;transition:background .15s}._actionButton_10hkp_93:focus-visible{outline:2px solid var(--ui-accent);outline-offset:2px}._actionPrimary_10hkp_109{background:var(--ui-accent);color:var(--ui-accent-text)}._actionPrimary_10hkp_109:hover{background:var(--ui-accent-hover)}._actionSecondary_10hkp_118{background:var(--ui-bg-muted);color:var(--ui-text)}._actionSecondary_10hkp_118:hover{background:var(--ui-track)}._close_10hkp_127{width:1.25rem;height:1.25rem;color:var(--ui-text-muted);cursor:pointer;background:0 0;border:none;border-radius:.25rem;justify-content:center;align-items:center;padding:0;font-size:.875rem;display:flex;position:absolute;top:.375rem;right:.375rem}._close_10hkp_127:focus-visible{outline:2px solid var(--ui-accent);outline-offset:2px}._close_10hkp_127:hover{color:var(--ui-text)}._root_1ghc7_1{flex-direction:column;gap:.75rem;display:flex}._list_1ghc7_7{border-bottom:1px solid var(--ui-border);gap:.25rem;display:flex;position:relative;overflow-x:auto}._tab_1ghc7_15{color:var(--ui-text-muted);font:inherit;font-size:var(--ui-font-size);cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:.375rem .625rem;font-weight:500}._tab_1ghc7_15[data-selected]{color:var(--ui-accent)}._tab_1ghc7_15:focus-visible{outline:2px solid var(--ui-accent);outline-offset:-2px}._indicator_1ghc7_36{bottom:-1px;left:var(--active-tab-left);width:var(--active-tab-width);background:var(--ui-accent);height:2px;transition:left .2s,width .2s;position:absolute}._panel_1ghc7_46{color:var(--ui-text)}._root_18fdp_1{box-sizing:border-box;border:1px solid var(--ui-border);border-radius:var(--ui-radius);background:var(--ui-bg-muted);font-size:var(--ui-font-size);color:var(--ui-text)}._summary_18fdp_10{cursor:pointer;color:var(--ui-text-muted);-webkit-user-select:none;user-select:none;align-items:center;gap:.5rem;padding:.5rem .75rem;list-style:none;display:flex}._summary_18fdp_10::-webkit-details-marker{display:none}._summary_18fdp_10:focus-visible{outline:2px solid var(--ui-accent);outline-offset:2px}._icon_18fdp_30,._chevron_18fdp_31{flex-shrink:0;width:1rem;height:1rem}._duration_18fdp_37{font-variant-numeric:tabular-nums;margin-left:auto;font-size:.75rem}._duration_18fdp_37+._chevron_18fdp_31{margin-left:0}._shimmer_18fdp_48{background:linear-gradient(90deg, var(--ui-text-muted) 40%, var(--ui-text) 50%, var(--ui-text-muted) 60%);color:#0000;background-size:200% 100%;-webkit-background-clip:text;background-clip:text;animation:1.8s linear infinite _shimmer_18fdp_48}@keyframes _shimmer_18fdp_48{0%{background-position:200% 0}to{background-position:0 0}}._chevron_18fdp_31{margin-left:auto;transition:transform .15s}._root_18fdp_1[open] ._chevron_18fdp_31{transform:rotate(180deg)}._body_18fdp_80{color:var(--ui-text-muted);white-space:pre-wrap;padding:0 .75rem .625rem}._root_1oosr_1{flex-direction:column;gap:.375rem;width:100%;display:flex}._header_1oosr_8{justify-content:space-between;align-items:baseline;gap:.5rem;font-size:.75rem;display:flex}._label_1oosr_16{color:var(--ui-text-muted);font-weight:500}._counts_1oosr_21{color:var(--ui-text-muted);font-variant-numeric:tabular-nums}._cost_1oosr_26{color:var(--ui-text)}._track_1oosr_30{background:var(--ui-track);border-radius:9999px;height:.375rem;overflow:hidden}._fill_1oosr_37{border-radius:inherit;background:var(--ui-accent);height:100%;transition:width .3s}._warning_1oosr_44{background:var(--ui-warning)}._danger_1oosr_48{background:var(--ui-danger)}._root_4nfwa_1{font-size:var(--ui-font-size);color:var(--ui-text);margin:0;padding:0;list-style:none}._step_4nfwa_9{grid-template-columns:1.25rem 1fr auto;align-items:center;column-gap:.5rem;padding-bottom:.75rem;display:grid;position:relative}._step_4nfwa_9:not(:last-child):before{content:"";background:var(--ui-track);width:2px;position:absolute;top:1.25rem;bottom:.125rem;left:.5625rem}._step_4nfwa_9:last-child{padding-bottom:0}._iconCell_4nfwa_33{background:var(--ui-bg);justify-content:center;align-items:center;width:1.25rem;height:1.25rem;display:flex}._iconCell_4nfwa_33 svg{width:.875rem;height:.875rem}._iconCell_4nfwa_33>span[role=status]{--sp:.625rem;--sp-border:1.5px}._done_4nfwa_53{color:var(--ui-success)}._error_4nfwa_57{color:var(--ui-danger)}._pendingDot_4nfwa_61{background:var(--ui-track);border-radius:50%;width:.375rem;height:.375rem}._name_4nfwa_69{font-family:ui-monospace,monospace;font-size:.75rem;font-weight:500}._nameError_4nfwa_75{color:var(--ui-danger)}._muted_4nfwa_79{color:var(--ui-text-muted);font-weight:400}._duration_4nfwa_84{color:var(--ui-text-muted);font-variant-numeric:tabular-nums;font-size:.75rem}._detail_4nfwa_90{color:var(--ui-text-muted);overflow-wrap:anywhere;grid-column:2/-1;margin-top:.125rem;font-family:ui-monospace,monospace;font-size:.75rem}._root_1qwlc_1,._group_1qwlc_2{flex-direction:column;gap:.125rem;margin:0;padding:0;list-style:none;display:flex}._root_1qwlc_1{font-size:var(--ui-font-size);color:var(--ui-text)}._item_1qwlc_16{outline:none}._row_1qwlc_20{border-radius:var(--ui-radius);color:var(--ui-text-muted);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:.375rem;padding:.25rem .5rem;transition:background .15s,color .15s;display:flex}._row_1qwlc_20:hover{background:var(--ui-bg-muted);color:var(--ui-text)}._item_1qwlc_16:focus-visible>._row_1qwlc_20{outline:2px solid var(--ui-accent);outline-offset:-2px}._item_1qwlc_16[aria-selected=true]>._row_1qwlc_20{background:color-mix(in srgb, var(--ui-accent) 10%, transparent);color:var(--ui-accent);font-weight:500}._chevron_1qwlc_48{width:.875rem;height:.875rem;color:var(--ui-text-muted);flex-shrink:0;transition:rotate .15s}._chevron_1qwlc_48[data-open]{rotate:90deg}._icon_1qwlc_60{flex-shrink:0;display:flex}._icon_1qwlc_60 svg{width:1rem;height:1rem}._label_1qwlc_70{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}._root_19blp_1{box-sizing:border-box;border-radius:var(--ui-radius);width:100%;color:var(--ui-text);font:inherit;font-size:var(--ui-font-size);text-align:left;align-items:center;gap:.5rem;padding:.25rem;display:flex}._root_19blp_1[data-collapsed]{justify-content:center;padding:.125rem}._button_19blp_22{cursor:pointer;background:0 0;border:none;transition:background .15s}._button_19blp_22:hover,._button_19blp_22[data-popup-open]{background:var(--ui-bg-muted)}._button_19blp_22:focus-visible{outline:2px solid var(--ui-accent);outline-offset:-2px}._text_19blp_39{flex-direction:column;flex:1;min-width:0;display:flex}._name_19blp_46{text-overflow:ellipsis;white-space:nowrap;font-weight:500;overflow:hidden}._subtitle_19blp_53{color:var(--ui-text-muted);text-overflow:ellipsis;white-space:nowrap;font-size:.6875rem;overflow:hidden}._chevron_19blp_61{width:.875rem;height:.875rem;color:var(--ui-text-muted);flex-shrink:0}._root_8tq5z_1{box-sizing:border-box;border:1px solid var(--ui-border);border-radius:var(--ui-radius);background:var(--ui-bg);overflow:hidden}._bar_8tq5z_9{border-bottom:1px solid var(--ui-border);background:var(--ui-bg-muted);align-items:center;gap:.5rem;padding:.375rem .5rem .375rem .75rem;display:flex}._icon_8tq5z_18{width:.875rem;height:.875rem;color:var(--ui-text-muted);flex-shrink:0}._url_8tq5z_25{text-overflow:ellipsis;white-space:nowrap;color:var(--ui-text-muted);flex:1;font-size:.75rem;overflow:hidden}._open_8tq5z_34{border-radius:var(--ui-radius);width:1.5rem;height:1.5rem;color:var(--ui-text-muted);justify-content:center;align-items:center;display:flex}._open_8tq5z_34 svg{width:.875rem;height:.875rem}._open_8tq5z_34:hover{background:var(--ui-highlight);color:var(--ui-text)}._open_8tq5z_34:focus-visible{outline:2px solid var(--ui-accent);outline-offset:1px}._frame_8tq5z_59{background:#fff;border:none;width:100%;display:block}
|
|
2
|
+
/*$vite$:1*/
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
export interface SuggestionChipProps {
|
|
3
|
+
children: ReactNode;
|
|
4
|
+
/** Called on accept; the chip hides itself afterwards */
|
|
5
|
+
onAccept?: () => void;
|
|
6
|
+
/** Called on dismiss; the chip hides itself afterwards */
|
|
7
|
+
onDismiss?: () => void;
|
|
8
|
+
}
|
|
9
|
+
export declare function SuggestionChip({ children, onAccept, onDismiss }: SuggestionChipProps): import("react").JSX.Element | null;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
export interface TableColumn<T> {
|
|
3
|
+
key: string;
|
|
4
|
+
header: ReactNode;
|
|
5
|
+
align?: 'left' | 'right';
|
|
6
|
+
render?: (row: T) => ReactNode;
|
|
7
|
+
sortable?: boolean;
|
|
8
|
+
}
|
|
9
|
+
export interface TableProps<T> {
|
|
10
|
+
columns: TableColumn<T>[];
|
|
11
|
+
data: T[];
|
|
12
|
+
rowKey?: (row: T) => string | number;
|
|
13
|
+
/** Constrains height and makes the header sticky, e.g. "20rem" */
|
|
14
|
+
maxHeight?: string;
|
|
15
|
+
/** Adds a checkbox column; requires rowKey for stable selection */
|
|
16
|
+
selectable?: boolean;
|
|
17
|
+
onSelectionChange?: (selected: (string | number)[]) => void;
|
|
18
|
+
/** Paginates rows and renders a pager under the table */
|
|
19
|
+
pageSize?: number;
|
|
20
|
+
}
|
|
21
|
+
export declare function Table<T extends Record<string, unknown>>({ columns, data, rowKey, maxHeight, selectable, onSelectionChange, pageSize, }: TableProps<T>): import("react").JSX.Element;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
import { Tabs as BaseTabs } from '@base-ui/react/tabs';
|
|
3
|
+
export interface TabItem {
|
|
4
|
+
value: string;
|
|
5
|
+
label: ReactNode;
|
|
6
|
+
content: ReactNode;
|
|
7
|
+
}
|
|
8
|
+
export interface TabsProps extends BaseTabs.Root.Props {
|
|
9
|
+
tabs: TabItem[];
|
|
10
|
+
}
|
|
11
|
+
export declare function Tabs({ tabs, ...props }: TabsProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
export interface TerminalLine {
|
|
3
|
+
type?: 'stdout' | 'stderr' | 'input';
|
|
4
|
+
text: string;
|
|
5
|
+
}
|
|
6
|
+
export interface TerminalProps {
|
|
7
|
+
lines: TerminalLine[];
|
|
8
|
+
title?: ReactNode;
|
|
9
|
+
}
|
|
10
|
+
export declare function Terminal({ lines, title }: TerminalProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export interface TestResult {
|
|
2
|
+
name: string;
|
|
3
|
+
status: 'pass' | 'fail' | 'skip';
|
|
4
|
+
message?: string;
|
|
5
|
+
}
|
|
6
|
+
export interface TestResultsProps {
|
|
7
|
+
results: TestResult[];
|
|
8
|
+
}
|
|
9
|
+
export declare function TestResults({ results }: TestResultsProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
export interface ThinkingBlockProps {
|
|
3
|
+
label?: ReactNode;
|
|
4
|
+
/** e.g. "Thought for 4s"; right-aligned in the header */
|
|
5
|
+
duration?: ReactNode;
|
|
6
|
+
/** Shimmers the label while the model is still thinking */
|
|
7
|
+
active?: boolean;
|
|
8
|
+
defaultOpen?: boolean;
|
|
9
|
+
children: ReactNode;
|
|
10
|
+
}
|
|
11
|
+
export declare function ThinkingBlock({ label, duration, active, defaultOpen, children }: ThinkingBlockProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
export interface ToastAction {
|
|
3
|
+
label: ReactNode;
|
|
4
|
+
onClick: () => void;
|
|
5
|
+
}
|
|
6
|
+
export interface ToastData {
|
|
7
|
+
action?: ToastAction;
|
|
8
|
+
secondaryAction?: ToastAction;
|
|
9
|
+
}
|
|
10
|
+
export declare function useToast(): import('@base-ui/react').UseToastManagerReturnValue<ToastData>;
|
|
11
|
+
export declare function ToastProvider({ children }: {
|
|
12
|
+
children: ReactNode;
|
|
13
|
+
}): import("react").JSX.Element;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
export interface TokenMeterProps {
|
|
3
|
+
used: number;
|
|
4
|
+
limit: number;
|
|
5
|
+
label?: ReactNode;
|
|
6
|
+
/** e.g. "$0.42" */
|
|
7
|
+
cost?: ReactNode;
|
|
8
|
+
}
|
|
9
|
+
export declare function TokenMeter({ used, limit, label, cost }: TokenMeterProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
export type ToolCallStatus = 'pending' | 'running' | 'done' | 'error';
|
|
3
|
+
export interface ToolCallStep {
|
|
4
|
+
name: ReactNode;
|
|
5
|
+
/** e.g. arguments or result summary, rendered in monospace */
|
|
6
|
+
detail?: ReactNode;
|
|
7
|
+
status: ToolCallStatus;
|
|
8
|
+
duration?: ReactNode;
|
|
9
|
+
}
|
|
10
|
+
export interface ToolCallTimelineProps {
|
|
11
|
+
steps: ToolCallStep[];
|
|
12
|
+
}
|
|
13
|
+
export declare function ToolCallTimeline({ steps }: ToolCallTimelineProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ReactElement, ReactNode } from 'react';
|
|
2
|
+
import { Tooltip as BaseTooltip } from '@base-ui/react/tooltip';
|
|
3
|
+
export interface TooltipProps extends BaseTooltip.Root.Props {
|
|
4
|
+
content: ReactNode;
|
|
5
|
+
children: ReactElement<Record<string, unknown>>;
|
|
6
|
+
/** Which side of the trigger the tooltip appears on */
|
|
7
|
+
side?: 'top' | 'bottom' | 'left' | 'right';
|
|
8
|
+
}
|
|
9
|
+
export declare function Tooltip({ content, children, side, ...props }: TooltipProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
export interface TreeItem {
|
|
3
|
+
key: string;
|
|
4
|
+
label: ReactNode;
|
|
5
|
+
icon?: ReactNode;
|
|
6
|
+
children?: TreeItem[];
|
|
7
|
+
}
|
|
8
|
+
export interface TreeProps {
|
|
9
|
+
items: TreeItem[];
|
|
10
|
+
/** Accessible name for the tree */
|
|
11
|
+
'aria-label': string;
|
|
12
|
+
expandedKeys?: string[];
|
|
13
|
+
defaultExpandedKeys?: string[];
|
|
14
|
+
onExpandedChange?: (keys: string[]) => void;
|
|
15
|
+
selectedKey?: string;
|
|
16
|
+
defaultSelectedKey?: string;
|
|
17
|
+
onSelect?: (key: string, item: TreeItem) => void;
|
|
18
|
+
}
|
|
19
|
+
export declare function Tree({ items, expandedKeys, defaultExpandedKeys, onExpandedChange, selectedKey, defaultSelectedKey, onSelect, ...props }: TreeProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
import { MenuEntry } from '../menu/Menu';
|
|
3
|
+
export interface UserProfileProps {
|
|
4
|
+
name: ReactNode;
|
|
5
|
+
/** Secondary line, e.g. email or role */
|
|
6
|
+
subtitle?: ReactNode;
|
|
7
|
+
/** Avatar image URL */
|
|
8
|
+
src?: string;
|
|
9
|
+
/** Avatar fallback, e.g. initials */
|
|
10
|
+
fallback?: string;
|
|
11
|
+
/** User actions menu; omitted = non-interactive display */
|
|
12
|
+
menu?: MenuEntry[];
|
|
13
|
+
/** Icon-only mode for a collapsed sidebar rail */
|
|
14
|
+
collapsed?: boolean;
|
|
15
|
+
}
|
|
16
|
+
export declare function UserProfile({ name, subtitle, src, fallback, menu, collapsed }: UserProfileProps): import("react").JSX.Element;
|