@qilin-agent/client-ui-primitives 0.0.0-stage → 3.1.4
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.i18n.yaml +61 -0
- package/README.md +187 -2
- package/README.zh.md +188 -0
- package/lib/Button.module.css +79 -0
- package/lib/Checkbox.module.css +28 -0
- package/lib/CommandText.module.css +12 -0
- package/lib/ConnectionIndicator.module.css +123 -0
- package/lib/DiffBlock.module.css +109 -0
- package/lib/DisclosureRow.module.css +84 -0
- package/lib/FileTypeIcon.module.css +50 -0
- package/lib/HoverCard.module.css +70 -0
- package/lib/ImageLightbox.module.css +48 -0
- package/lib/ImagePreview.module.css +24 -0
- package/lib/Input.module.css +38 -0
- package/lib/JsonTree.module.css +345 -0
- package/lib/Menu.module.css +274 -0
- package/lib/MenuGroup.module.css +37 -0
- package/lib/MenuSurface.module.css +49 -0
- package/lib/Modal.module.css +103 -0
- package/lib/OnboardingSurface.module.css +29 -0
- package/lib/PathLabel.module.css +28 -0
- package/lib/Pill.module.css +27 -0
- package/lib/ReadBlock.module.css +111 -0
- package/lib/RiskConfirmation.module.css +73 -0
- package/lib/SearchBlock.module.css +112 -0
- package/lib/SegmentedControl.module.css +76 -0
- package/lib/ShortcutKeys.module.css +33 -0
- package/lib/StateDot.module.css +73 -0
- package/lib/Switch.module.css +50 -0
- package/lib/Tag.module.css +57 -0
- package/lib/TerminalBlock.module.css +205 -0
- package/lib/TextShimmer.module.css +88 -0
- package/lib/Toast.module.css +76 -0
- package/lib/Tooltip.module.css +52 -0
- package/lib/WebBlock.module.css +141 -0
- package/lib/index.js +10647 -0
- package/lib/markdown/CodeBlock.module.css +130 -0
- package/lib/markdown/JsonBlock.module.css +32 -0
- package/lib/markdown/MarkdownText.module.css +485 -0
- package/lib/markdown/mermaid.module.css +49 -0
- package/lib/settings-form/SettingsForm.module.css +53 -0
- package/lib/settings-form/fields.module.css +145 -0
- package/lib/types/Button.d.ts +18 -0
- package/lib/types/Checkbox.d.ts +20 -0
- package/lib/types/CodeFileIcon.d.ts +12 -0
- package/lib/types/CommandText.d.ts +16 -0
- package/lib/types/ConnectionIndicator.d.ts +26 -0
- package/lib/types/DiffBlock.d.ts +52 -0
- package/lib/types/DisclosureRow.d.ts +36 -0
- package/lib/types/FileTypeIcon.d.ts +43 -0
- package/lib/types/FoldToggle.d.ts +20 -0
- package/lib/types/HoverCard.d.ts +32 -0
- package/lib/types/ImageLightbox.d.ts +27 -0
- package/lib/types/ImagePreview.d.ts +12 -0
- package/lib/types/Input.d.ts +12 -0
- package/lib/types/JsonTree.d.ts +59 -0
- package/lib/types/LinkIcon.d.ts +49 -0
- package/lib/types/Menu.d.ts +133 -0
- package/lib/types/MenuGroup.d.ts +22 -0
- package/lib/types/MenuSurface.d.ts +16 -0
- package/lib/types/Modal.d.ts +44 -0
- package/lib/types/OnboardingSurface.d.ts +11 -0
- package/lib/types/PathLabel.d.ts +13 -0
- package/lib/types/Pill.d.ts +13 -0
- package/lib/types/QilinSeal.d.ts +18 -0
- package/lib/types/ReadBlock.d.ts +47 -0
- package/lib/types/ReferenceIcon.d.ts +16 -0
- package/lib/types/RiskConfirmation.d.ts +20 -0
- package/lib/types/SearchBlock.d.ts +72 -0
- package/lib/types/SegmentedControl.d.ts +35 -0
- package/lib/types/ShortcutKeys.d.ts +11 -0
- package/lib/types/SiteGlyph.d.ts +25 -0
- package/lib/types/StateDot.d.ts +18 -0
- package/lib/types/Switch.d.ts +20 -0
- package/lib/types/Tag.d.ts +32 -0
- package/lib/types/TerminalBlock.d.ts +68 -0
- package/lib/types/TextShimmer.d.ts +22 -0
- package/lib/types/Toast.d.ts +36 -0
- package/lib/types/Tooltip.d.ts +45 -0
- package/lib/types/WebBlock.d.ts +61 -0
- package/lib/types/ansi.d.ts +17 -0
- package/lib/types/clipboard.d.ts +9 -0
- package/lib/types/code-file-icon-artwork.d.ts +54 -0
- package/lib/types/code-file-types.d.ts +30 -0
- package/lib/types/darwin-desktop.d.ts +18 -0
- package/lib/types/file-size.d.ts +17 -0
- package/lib/types/focus.d.ts +9 -0
- package/lib/types/head-tail-cap.d.ts +23 -0
- package/lib/types/icons/index.d.ts +211 -0
- package/lib/types/icons/props.d.ts +9 -0
- package/lib/types/index.d.ts +92 -0
- package/lib/types/input-modality.d.ts +19 -0
- package/lib/types/keyboard-composition.d.ts +11 -0
- package/lib/types/markdown/CodeBlock.d.ts +30 -0
- package/lib/types/markdown/JsonBlock.d.ts +8 -0
- package/lib/types/markdown/MarkdownDelegate.d.ts +46 -0
- package/lib/types/markdown/MarkdownText.d.ts +54 -0
- package/lib/types/markdown/cjkFriendlyStrong.d.ts +9 -0
- package/lib/types/markdown/file-link.d.ts +13 -0
- package/lib/types/markdown/highlight.d.ts +142 -0
- package/lib/types/markdown/incremental.d.ts +80 -0
- package/lib/types/markdown/katex.d.ts +27 -0
- package/lib/types/markdown/local-image-syntax.d.ts +10 -0
- package/lib/types/markdown/mathCompatibility.d.ts +11 -0
- package/lib/types/markdown/mermaid.d.ts +39 -0
- package/lib/types/markdown/parse.d.ts +25 -0
- package/lib/types/markdown/plain-text.d.ts +22 -0
- package/lib/types/markdown/render.d.ts +158 -0
- package/lib/types/markdown/useViewportHighlighting.d.ts +11 -0
- package/lib/types/overlay-top-margin.d.ts +8 -0
- package/lib/types/pointer-grace.d.ts +22 -0
- package/lib/types/rank-by-name.d.ts +22 -0
- package/lib/types/relative-time.d.ts +23 -0
- package/lib/types/seal-geometry.d.ts +27 -0
- package/lib/types/seal-glyphs.d.ts +9 -0
- package/lib/types/settings-form/SettingsForm.d.ts +46 -0
- package/lib/types/settings-form/fields.d.ts +70 -0
- package/lib/types/settings-form/form-model.d.ts +214 -0
- package/lib/types/use-copy-feedback.d.ts +14 -0
- package/lib/types/useAnchoredMaxHeight.d.ts +11 -0
- package/lib/types/useAnchoredPosition.d.ts +34 -0
- package/lib/types/useDismissOnOutsidePointer.d.ts +11 -0
- package/lib/types/useModalLayer.d.ts +27 -0
- package/lib/types/user-text.d.ts +37 -0
- package/lib/user-text.module.css +43 -0
- package/package.json +63 -3
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
/** Selectable row (optionally with a nested submenu). */
|
|
3
|
+
export interface MenuItem {
|
|
4
|
+
id: string;
|
|
5
|
+
label: ReactNode;
|
|
6
|
+
disabled?: boolean;
|
|
7
|
+
/** Effective binding supplied by the command owner; omitted for unbound actions. */
|
|
8
|
+
shortcut?: {
|
|
9
|
+
keys: readonly string[];
|
|
10
|
+
aria?: string | undefined;
|
|
11
|
+
};
|
|
12
|
+
/** Leading icon (figma .Menu_cell gap 8). */
|
|
13
|
+
icon?: ReactNode;
|
|
14
|
+
/** Destructive row: error-colored text/icon and danger hover fill. */
|
|
15
|
+
danger?: boolean;
|
|
16
|
+
/** Nested card opened to the right on hover/focus. */
|
|
17
|
+
submenu?: readonly MenuItem[];
|
|
18
|
+
}
|
|
19
|
+
/** Hairline between item groups (not selectable). */
|
|
20
|
+
export interface MenuSeparator {
|
|
21
|
+
type: 'separator';
|
|
22
|
+
id: string;
|
|
23
|
+
}
|
|
24
|
+
/** Non-interactive heading row above a group of items. */
|
|
25
|
+
export interface MenuLabel {
|
|
26
|
+
type: 'label';
|
|
27
|
+
id: string;
|
|
28
|
+
text: string;
|
|
29
|
+
}
|
|
30
|
+
/** One primary-menu entry: a row, a separator, or a heading label. */
|
|
31
|
+
export type MenuEntry = MenuItem | MenuSeparator | MenuLabel;
|
|
32
|
+
/** Props for one component-rendered menu row. */
|
|
33
|
+
export interface MenuItemButtonProps {
|
|
34
|
+
/** Visible row label. */
|
|
35
|
+
children: ReactNode;
|
|
36
|
+
/** Effective binding supplied by the command owner; omitted for unbound actions. */
|
|
37
|
+
shortcut?: MenuItem['shortcut'];
|
|
38
|
+
/** Leading icon (figma .Menu_cell gap 8). */
|
|
39
|
+
icon?: ReactNode;
|
|
40
|
+
/** Whether the row cannot be activated. */
|
|
41
|
+
disabled?: boolean;
|
|
42
|
+
/** Destructive row: error-colored text/icon and danger hover fill. */
|
|
43
|
+
danger?: boolean;
|
|
44
|
+
/**
|
|
45
|
+
* Start a new group: a hairline above this row, the same one a
|
|
46
|
+
* `{ type: 'separator' }` data entry draws. It comes and goes with the row,
|
|
47
|
+
* so a row that renders nothing leaves no stray line; a data separator
|
|
48
|
+
* directly before it draws no second line, and the list's first row draws none.
|
|
49
|
+
*/
|
|
50
|
+
separatorBefore?: boolean;
|
|
51
|
+
/** Row activation (click, Enter, or Tab on the focused row). */
|
|
52
|
+
onSelect: () => void;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Render one `role="menuitem"` row for a {@link Menu} whose rows are
|
|
56
|
+
* components rather than `items` data: the same markup and styling as a data
|
|
57
|
+
* row, so it joins the list's keyboard walk and post-selection focus return
|
|
58
|
+
* without any shared state. Closing the menu stays the owner's decision, as
|
|
59
|
+
* it is for data rows.
|
|
60
|
+
* @param props.children - visible row label.
|
|
61
|
+
* @param props.shortcut - effective key labels and accessible combination.
|
|
62
|
+
* @param props.icon - optional leading icon.
|
|
63
|
+
* @param props.disabled - whether the row cannot be activated.
|
|
64
|
+
* @param props.danger - whether to use the destructive row colors.
|
|
65
|
+
* @param props.separatorBefore - whether this row starts a new group (hairline above it).
|
|
66
|
+
* @param props.onSelect - row activation callback.
|
|
67
|
+
* @returns one menu-item row.
|
|
68
|
+
*/
|
|
69
|
+
export declare function MenuItemButton({ children, shortcut, icon, disabled, danger, separatorBefore, onSelect, }: MenuItemButtonProps): import("react").JSX.Element;
|
|
70
|
+
/**
|
|
71
|
+
* Render an anchored dropdown menu. While the list is open its keys mirror the
|
|
72
|
+
* composer's: Tab settles the focused row — from the trigger, Tab enters the
|
|
73
|
+
* list instead — and Escape or Shift+Tab close it and return focus to the
|
|
74
|
+
* anchor's first button, and selecting a row does the same — the rows unmount
|
|
75
|
+
* with the list. Only a keyboard on the trigger or inside the list is
|
|
76
|
+
* intercepted; Tab presses elsewhere on the page stay the browser's.
|
|
77
|
+
* @param props.autoFocus - focus the first item on open; the arrow keys walk the list either way.
|
|
78
|
+
* @param props.open - whether the list is showing (owner-controlled).
|
|
79
|
+
* @param props.anchor - the trigger element (rendered in place).
|
|
80
|
+
* @param props.items - selectable rows and optional separators.
|
|
81
|
+
* @param props.selectedId - row shown as selected.
|
|
82
|
+
* @param props.selectedIds - rows shown as selected when a menu contains independent option groups.
|
|
83
|
+
* @param props.onSelect - row click callback (not called for disabled rows or submenu parents that only open children).
|
|
84
|
+
* @param props.onClose - invoked on outside click, Escape, or a window blur
|
|
85
|
+
* that moved focus into an iframe (the only signal a pointerdown inside a
|
|
86
|
+
* cross-origin iframe leaves).
|
|
87
|
+
* @param props.align - list alignment against the anchor (default 'start').
|
|
88
|
+
* @param props.side - open below (`bottom`, default) or above (`top`) the anchor.
|
|
89
|
+
* @param props.portal - render the list into document.body, fixed-positioned
|
|
90
|
+
* from the anchor rect (repositions on scroll/resize while open). Use when an
|
|
91
|
+
* ancestor's overflow clipping would crop the in-place list; default false
|
|
92
|
+
* keeps the pure-CSS in-place behavior.
|
|
93
|
+
* @param props.closeOnPointerLeave - close the list once the pointer has left
|
|
94
|
+
* both trigger and list for the pointer grace (default false keeps it open
|
|
95
|
+
* until outside click/Escape/selection). The grace makes the 4px trigger->list
|
|
96
|
+
* gap and a brief overshoot survivable; coming back cancels the close.
|
|
97
|
+
* @param props.dense - reduce vertical row spacing without changing the standard typography or card width.
|
|
98
|
+
* @param props.compact - use reduced menu typography and spacing.
|
|
99
|
+
* @param props.getAnchorRect - portal mode only: supply the anchor rect
|
|
100
|
+
* directly (e.g. from a host-owned trigger button) instead of measuring the
|
|
101
|
+
* Menu's own wrapper span. Required when the wrapper isn't itself laid out at
|
|
102
|
+
* the trigger (render-prop anchors, effect-positioned proxies — measuring the
|
|
103
|
+
* wrapper there races the host's layout effects). Called on open and on every
|
|
104
|
+
* scroll/resize; return null to skip placement for that frame.
|
|
105
|
+
* @param props.footer - rows pinned below the scrolling items area, separated
|
|
106
|
+
* by a hairline; they stay visible while the items above scroll.
|
|
107
|
+
* @param props.selection - how a selected row is marked: a trailing check
|
|
108
|
+
* (`'check'`, default — figma .Menu_cell) or the hover fill held on the row
|
|
109
|
+
* with no check (`'fill'`, for icon-labelled rows where a trailing glyph
|
|
110
|
+
* crowds the cell).
|
|
111
|
+
* @returns anchor wrapper with the conditional list.
|
|
112
|
+
*/
|
|
113
|
+
export declare function Menu({ open, anchor, items, selectedId, selectedIds, onSelect, onClose, align, side, portal, closeOnPointerLeave, dense, compact, autoFocus, selection, getAnchorRect, footer, className }: {
|
|
114
|
+
open: boolean;
|
|
115
|
+
autoFocus?: boolean;
|
|
116
|
+
anchor: ReactNode;
|
|
117
|
+
items: readonly MenuEntry[];
|
|
118
|
+
footer?: readonly MenuEntry[];
|
|
119
|
+
selectedId?: string | undefined;
|
|
120
|
+
selectedIds?: readonly string[] | undefined;
|
|
121
|
+
onSelect: (id: string) => void;
|
|
122
|
+
onClose: () => void;
|
|
123
|
+
align?: 'start' | 'end';
|
|
124
|
+
side?: 'bottom' | 'top' | 'right';
|
|
125
|
+
portal?: boolean;
|
|
126
|
+
closeOnPointerLeave?: boolean;
|
|
127
|
+
dense?: boolean;
|
|
128
|
+
compact?: boolean;
|
|
129
|
+
selection?: 'check' | 'fill';
|
|
130
|
+
getAnchorRect?: () => DOMRect | null;
|
|
131
|
+
className?: string | undefined;
|
|
132
|
+
}): import("react").JSX.Element;
|
|
133
|
+
//# sourceMappingURL=Menu.d.ts.map
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/** Accessible menu groups with shared sticky-heading presentation and viewport observation. */
|
|
2
|
+
import { type ReactNode } from 'react';
|
|
3
|
+
/**
|
|
4
|
+
* Render a named group with an instance-owned heading id and an inaccessible position sentinel.
|
|
5
|
+
* @param props - Caller-localized label and optional menu rows.
|
|
6
|
+
* @returns A section named by its direct heading, followed by the supplied children.
|
|
7
|
+
*/
|
|
8
|
+
export declare function MenuGroup({ label, children }: {
|
|
9
|
+
label: string;
|
|
10
|
+
children?: ReactNode;
|
|
11
|
+
}): import("react").JSX.Element;
|
|
12
|
+
/**
|
|
13
|
+
* Update heading backgrounds asynchronously from native intersection and viewport-size observations.
|
|
14
|
+
* Headings remain transparent until observations identify a section crossing the viewport top.
|
|
15
|
+
* Without IntersectionObserver or ResizeObserver, CSS sticky headings remain transparent.
|
|
16
|
+
* Group membership is captured at setup; dispose before observing changed groups or the same viewport again.
|
|
17
|
+
* @param viewport - Unpadded, borderless scroll container with direct MenuGroup children.
|
|
18
|
+
* @returns Cleanup owning both intersection observers and the viewport resize observer; disconnects
|
|
19
|
+
* them, ignores queued callbacks, and clears managed data-stuck attributes. No valid groups acquires nothing.
|
|
20
|
+
*/
|
|
21
|
+
export declare function observeStickyMenuGroups(viewport: HTMLElement): () => void;
|
|
22
|
+
//# sourceMappingURL=MenuGroup.d.ts.map
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/** Shared menu material and the macOS backing that lets Chromium blur transparent windows. */
|
|
2
|
+
import { type ComponentPropsWithoutRef } from 'react';
|
|
3
|
+
/** Menu containers preserve native div props and refs. */
|
|
4
|
+
export interface MenuSurfaceProps extends ComponentPropsWithoutRef<'div'> {
|
|
5
|
+
/** Match the shared compact menu's smaller outer radius. */
|
|
6
|
+
compact?: boolean;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Paint a menu and, on macOS, an opaque backing behind the page content within its bounds.
|
|
10
|
+
* CSS anchors keep each backing aligned during placement, resizing, and nested-menu movement.
|
|
11
|
+
* @param props - Div content and placement, and compact geometry.
|
|
12
|
+
* @param ref - The visible menu div, excluding the non-interactive backing.
|
|
13
|
+
* @returns Menu content plus a backing portal removed with the menu.
|
|
14
|
+
*/
|
|
15
|
+
export declare const MenuSurface: import("react").ForwardRefExoticComponent<MenuSurfaceProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
16
|
+
//# sourceMappingURL=MenuSurface.d.ts.map
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import type { KeyboardEventHandler, ReactNode } from 'react';
|
|
2
|
+
interface ModalBaseProps {
|
|
3
|
+
open: boolean;
|
|
4
|
+
onClose: () => void;
|
|
5
|
+
title: string;
|
|
6
|
+
description?: string;
|
|
7
|
+
children?: ReactNode;
|
|
8
|
+
footer?: ReactNode;
|
|
9
|
+
className?: string;
|
|
10
|
+
contentClassName?: string;
|
|
11
|
+
shortcutModal?: string;
|
|
12
|
+
onKeyDownCapture?: KeyboardEventHandler<HTMLDivElement>;
|
|
13
|
+
backdropBlur?: boolean;
|
|
14
|
+
}
|
|
15
|
+
type ModalProps = ModalBaseProps & ({
|
|
16
|
+
headless: true;
|
|
17
|
+
closeLabel?: never;
|
|
18
|
+
} | {
|
|
19
|
+
headless?: false;
|
|
20
|
+
closeLabel: string;
|
|
21
|
+
});
|
|
22
|
+
/**
|
|
23
|
+
* Render a centered, body-portaled modal over a page mask.
|
|
24
|
+
* @param props.open - whether the dialog is showing.
|
|
25
|
+
* @param props.onClose - application close command, Escape, or mask click; while a menu is open inside the
|
|
26
|
+
* dialog, Escape belongs to that menu first.
|
|
27
|
+
* @param props.title - dialog heading (aria-label in every mode).
|
|
28
|
+
* @param props.closeLabel - localized accessible close-button label.
|
|
29
|
+
* @param props.description - optional supporting sentence under the title.
|
|
30
|
+
* @param props.children - dialog body; mark its initial-focus control with
|
|
31
|
+
* data-modal-autofocus instead of React autoFocus to preserve return focus.
|
|
32
|
+
* @param props.footer - action row (Cancel / Create).
|
|
33
|
+
* @param props.contentClassName - optional class for a scrollable content region.
|
|
34
|
+
* @param props.headless - render children directly in the card (no default
|
|
35
|
+
* header/close/body chrome); mask, card, Escape, and aria-label remain.
|
|
36
|
+
* @param props.backdropBlur - disable when the caller already blurs the page; defaults to true.
|
|
37
|
+
* @param props.shortcutModal - command scope allowed by shortcut owners; unnamed
|
|
38
|
+
* dialogs block application commands unless their owner allows the "other" scope.
|
|
39
|
+
* @param props.onKeyDownCapture - handle a nested dialog's keys before the document Escape listeners.
|
|
40
|
+
* @returns null when closed; otherwise the overlay tree.
|
|
41
|
+
*/
|
|
42
|
+
export declare function Modal({ open, onClose, title, closeLabel, description, children, footer, className, contentClassName, onKeyDownCapture, headless, backdropBlur, shortcutModal, }: ModalProps): import("react").ReactPortal | null;
|
|
43
|
+
export {};
|
|
44
|
+
//# sourceMappingURL=Modal.d.ts.map
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Render a body-portaled onboarding stage and keep the application root inert
|
|
4
|
+
* while mounted.
|
|
5
|
+
* @param props.children - the step's page content, centered on the stage.
|
|
6
|
+
* @returns the body-portaled overlay tree.
|
|
7
|
+
*/
|
|
8
|
+
export declare function OnboardingSurface({ children }: {
|
|
9
|
+
children: ReactNode;
|
|
10
|
+
}): import("react").ReactPortal;
|
|
11
|
+
//# sourceMappingURL=OnboardingSurface.d.ts.map
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/** A single-line file path whose trailing characters remain visible in narrow toolbars. */
|
|
2
|
+
import { type HTMLAttributes } from 'react';
|
|
3
|
+
/**
|
|
4
|
+
* Render subdued directories and a primary filename, with the complete path on hover.
|
|
5
|
+
* Fitting text is left-aligned; overflow clips and fades at the left edge.
|
|
6
|
+
* The fade updates on path changes and, when ResizeObserver is available, size changes.
|
|
7
|
+
* @param props - File path and attributes for its outer span; callers own toolbar spacing.
|
|
8
|
+
* @returns the path label.
|
|
9
|
+
*/
|
|
10
|
+
export declare function PathLabel({ path, className, ...attributes }: {
|
|
11
|
+
path: string;
|
|
12
|
+
} & Omit<HTMLAttributes<HTMLSpanElement>, 'children' | 'title'>): import("react").JSX.Element;
|
|
13
|
+
//# sourceMappingURL=PathLabel.d.ts.map
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { ButtonHTMLAttributes, ReactNode } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Render a pill chip. Interactive when onClick is supplied (renders a button);
|
|
4
|
+
* otherwise a static span.
|
|
5
|
+
* @param props.active - selected/active visual state.
|
|
6
|
+
* @returns pill element.
|
|
7
|
+
*/
|
|
8
|
+
export declare function Pill({ active, className, children, onClick, ...rest }: {
|
|
9
|
+
active?: boolean;
|
|
10
|
+
className?: string | undefined;
|
|
11
|
+
children?: ReactNode;
|
|
12
|
+
} & ButtonHTMLAttributes<HTMLButtonElement>): import("react").JSX.Element;
|
|
13
|
+
//# sourceMappingURL=Pill.d.ts.map
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The QiLin seal: a cinnabar rounded square with a gold hairline ring and the
|
|
3
|
+
* 麒 and 麟 glyph outlines side by side in warm white. The mark carries its own
|
|
4
|
+
* colours because it is the product's brand stamp rather than a themed icon —
|
|
5
|
+
* a cinnabar seal reads the same on a light and a dark surface. The glyphs are
|
|
6
|
+
* embedded outlines, so the mark needs no font on the rendering machine.
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Render the QiLin seal at the requested edge length.
|
|
10
|
+
* @param props.size - rendered edge length in px.
|
|
11
|
+
* @param props.className - extra class from the occupying surface.
|
|
12
|
+
* @returns the seal svg (aria-hidden decorative brand art).
|
|
13
|
+
*/
|
|
14
|
+
export declare function QilinSeal({ size, className }: {
|
|
15
|
+
size?: number;
|
|
16
|
+
className?: string | undefined;
|
|
17
|
+
}): import("react").JSX.Element;
|
|
18
|
+
//# sourceMappingURL=QilinSeal.d.ts.map
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Content lines shown before the height cap collapses the middle. Matches
|
|
3
|
+
* TerminalBlock's default so a long read and a long command output cut at the
|
|
4
|
+
* same place in the same flow.
|
|
5
|
+
*/
|
|
6
|
+
export declare const DEFAULT_READ_MAX_LINES = 16;
|
|
7
|
+
/** One line of the read window: its file line number and its text (no trailing newline). */
|
|
8
|
+
export interface ReadBlockLine {
|
|
9
|
+
/** 1-based line number in the file (a window past an offset keeps the file's own numbering). */
|
|
10
|
+
number: number;
|
|
11
|
+
/** The line's text, already truncated to the read tool's per-line cap. */
|
|
12
|
+
text: string;
|
|
13
|
+
}
|
|
14
|
+
export interface ReadBlockProps {
|
|
15
|
+
/** Banner label (the file path, or a tool-supplied replacement title); omitted draws no label. */
|
|
16
|
+
label?: string | undefined;
|
|
17
|
+
/** The returned window's lines, in file order, each keeping its file line number. */
|
|
18
|
+
lines: readonly ReadBlockLine[];
|
|
19
|
+
/** Localized chrome supplied by the owning render site. */
|
|
20
|
+
labels: ReadBlockLabels;
|
|
21
|
+
/** Exact total line count in the file, for the "showing N of M" note when the read is a window. */
|
|
22
|
+
totalLines: number;
|
|
23
|
+
/** Grammar hint (a file-extension-derived language id); unknown or absent = plain monospace. */
|
|
24
|
+
lang?: string | undefined;
|
|
25
|
+
/** Height cap in content lines before the middle collapses (default {@link DEFAULT_READ_MAX_LINES}). */
|
|
26
|
+
maxLines?: number | undefined;
|
|
27
|
+
/** Extra class merged onto the wrapper (callers position; this component draws). */
|
|
28
|
+
className?: string | undefined;
|
|
29
|
+
}
|
|
30
|
+
/** Localized chrome for {@link ReadBlock}. */
|
|
31
|
+
export interface ReadBlockLabels {
|
|
32
|
+
window: (shown: number, total: number) => string;
|
|
33
|
+
copy: string;
|
|
34
|
+
copied: string;
|
|
35
|
+
collapseAria: string;
|
|
36
|
+
expandAria: (hidden: number) => string;
|
|
37
|
+
collapse: string;
|
|
38
|
+
expand: (hidden: number) => string;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Render a read tool result as a line-numbered, optionally syntax-highlighted
|
|
42
|
+
* file view.
|
|
43
|
+
* @param props - see {@link ReadBlockProps}.
|
|
44
|
+
* @returns the read block element.
|
|
45
|
+
*/
|
|
46
|
+
export declare function ReadBlock({ label, labels, lines, totalLines, lang, maxLines, className, }: ReadBlockProps): import("react").JSX.Element;
|
|
47
|
+
//# sourceMappingURL=ReadBlock.d.ts.map
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
/** Reference domains with distinct composer and transcript glyphs. */
|
|
3
|
+
export type ReferenceIconKind = 'session' | 'file' | 'folder';
|
|
4
|
+
/** Props shared by inline reference glyphs. */
|
|
5
|
+
export interface ReferenceIconProps {
|
|
6
|
+
kind: ReferenceIconKind;
|
|
7
|
+
size?: number;
|
|
8
|
+
className?: string | undefined;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Render the icon that identifies one inline reference domain.
|
|
12
|
+
* @param props - Reference kind, optional size, and optional CSS class.
|
|
13
|
+
* @returns The corresponding current-color SVG glyph.
|
|
14
|
+
*/
|
|
15
|
+
export declare function ReferenceIcon({ kind, size, className }: ReferenceIconProps): ReactNode;
|
|
16
|
+
//# sourceMappingURL=ReferenceIcon.d.ts.map
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export interface RiskConfirmationProps {
|
|
2
|
+
open: boolean;
|
|
3
|
+
title: string;
|
|
4
|
+
description: string;
|
|
5
|
+
acknowledgeLabel: string;
|
|
6
|
+
cancelLabel: string;
|
|
7
|
+
closeLabel: string;
|
|
8
|
+
confirmLabel: string;
|
|
9
|
+
acknowledged: boolean;
|
|
10
|
+
disabled?: boolean;
|
|
11
|
+
onAcknowledgedChange: (acknowledged: boolean) => void;
|
|
12
|
+
onCancel: () => void;
|
|
13
|
+
onConfirm: () => void;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Render one in-page confirmation whose primary action is unavailable until
|
|
17
|
+
* the caller-controlled acknowledgement is checked.
|
|
18
|
+
*/
|
|
19
|
+
export declare function RiskConfirmation({ open, title, description, acknowledgeLabel, cancelLabel, closeLabel, confirmLabel, acknowledged, disabled, onAcknowledgedChange, onCancel, onConfirm, }: RiskConfirmationProps): import("react").JSX.Element;
|
|
20
|
+
//# sourceMappingURL=RiskConfirmation.d.ts.map
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Result rows shown before the height cap collapses the middle. Matches
|
|
3
|
+
* {@link DEFAULT_TERMINAL_MAX_LINES} so a search card and a terminal card cut a
|
|
4
|
+
* long result at the same place.
|
|
5
|
+
*/
|
|
6
|
+
export declare const DEFAULT_SEARCH_MAX_LINES = 16;
|
|
7
|
+
/** One matched line inside a {@link SearchFileGroup}: its 1-based line number and text. */
|
|
8
|
+
export interface SearchBlockLineMatch {
|
|
9
|
+
/** 1-based line number of the match within its file. */
|
|
10
|
+
lineNumber: number;
|
|
11
|
+
/** The matched line text, as the tool surfaced it. */
|
|
12
|
+
line: string;
|
|
13
|
+
}
|
|
14
|
+
/** One file's grouped matches, in first-seen file order. */
|
|
15
|
+
export interface SearchFileGroup {
|
|
16
|
+
/** The file the matches belong to (the display path). */
|
|
17
|
+
path: string;
|
|
18
|
+
/** The file's matched lines, in output order. */
|
|
19
|
+
matches: SearchBlockLineMatch[];
|
|
20
|
+
}
|
|
21
|
+
/** Fields both search shapes carry (the render site positions; this component draws). */
|
|
22
|
+
interface SearchBlockCommon {
|
|
23
|
+
/** Localized chrome supplied by the owning render site. */
|
|
24
|
+
labels: SearchBlockLabels;
|
|
25
|
+
/**
|
|
26
|
+
* Whether the tool capped the inline result: the shape carries only the
|
|
27
|
+
* retained results, not every result the search found. The banner summary
|
|
28
|
+
* folds the pre-cap `total` in (`显示 X / 共 N …`) so the card never presents a
|
|
29
|
+
* capped result as complete.
|
|
30
|
+
*/
|
|
31
|
+
truncated: boolean;
|
|
32
|
+
/** Total results the search found before capping (equals the retained count when not `truncated`). */
|
|
33
|
+
total: number;
|
|
34
|
+
/** Height cap in rows before the middle collapses (default {@link DEFAULT_SEARCH_MAX_LINES}). */
|
|
35
|
+
maxLines?: number | undefined;
|
|
36
|
+
/** Extra class merged onto the wrapper. */
|
|
37
|
+
className?: string | undefined;
|
|
38
|
+
}
|
|
39
|
+
/** Localized chrome for {@link SearchBlock}. */
|
|
40
|
+
export interface SearchBlockLabels {
|
|
41
|
+
pathsSummary: (shown: number, total: number, truncated: boolean) => string;
|
|
42
|
+
matchesSummary: (shown: number, total: number, files: number, truncated: boolean) => string;
|
|
43
|
+
copy: string;
|
|
44
|
+
copied: string;
|
|
45
|
+
noResults: string;
|
|
46
|
+
collapseAria: string;
|
|
47
|
+
expandAria: (hidden: number) => string;
|
|
48
|
+
collapse: string;
|
|
49
|
+
expand: (hidden: number) => string;
|
|
50
|
+
}
|
|
51
|
+
/** Props for the grouped-matches (`grep`) shape. */
|
|
52
|
+
export interface SearchMatchesBlockProps extends SearchBlockCommon {
|
|
53
|
+
kind: 'matches';
|
|
54
|
+
/** Matched lines grouped by file, in first-seen file order. */
|
|
55
|
+
files: SearchFileGroup[];
|
|
56
|
+
}
|
|
57
|
+
/** Props for the flat-path (`glob`) shape. */
|
|
58
|
+
export interface SearchPathsBlockProps extends SearchBlockCommon {
|
|
59
|
+
kind: 'paths';
|
|
60
|
+
/** The discovered paths, in the tool's result order (the retained page when `truncated`). */
|
|
61
|
+
paths: string[];
|
|
62
|
+
}
|
|
63
|
+
/** {@link SearchBlock} props: one card, two `kind`-discriminated shapes. */
|
|
64
|
+
export type SearchBlockProps = SearchMatchesBlockProps | SearchPathsBlockProps;
|
|
65
|
+
/**
|
|
66
|
+
* Render a completed search as a grouped-matches or flat-path card.
|
|
67
|
+
* @param props - see {@link SearchBlockProps}.
|
|
68
|
+
* @returns the search block element.
|
|
69
|
+
*/
|
|
70
|
+
export declare function SearchBlock(props: SearchBlockProps): import("react").JSX.Element;
|
|
71
|
+
export {};
|
|
72
|
+
//# sourceMappingURL=SearchBlock.d.ts.map
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/** One segment of a {@link SegmentedControl}. */
|
|
2
|
+
export interface SegmentedControlOption<Value extends string> {
|
|
3
|
+
/** The value the owner receives when this segment is chosen. */
|
|
4
|
+
value: Value;
|
|
5
|
+
/** Localized segment text. */
|
|
6
|
+
label: string;
|
|
7
|
+
/** Whether the segment refuses selection. */
|
|
8
|
+
disabled?: boolean;
|
|
9
|
+
/** Localized hover text, typically why the segment is locked. */
|
|
10
|
+
title?: string;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Render a segmented control.
|
|
14
|
+
* @param props.id - the owner's base id: each tab is `<id>-<value>` and names
|
|
15
|
+
* `<id>-<value>-panel` as the panel it controls.
|
|
16
|
+
* @param props.value - the selected option's value; the control is fully controlled.
|
|
17
|
+
* @param props.options - the segments in display order; at least two.
|
|
18
|
+
* @param props.onChange - called with the value a click or a walk key asks for,
|
|
19
|
+
* never with the value already selected.
|
|
20
|
+
* @param props.label - localized accessible name of the tablist.
|
|
21
|
+
* @param props.disabled - lock every segment, typically while the shown panel
|
|
22
|
+
* has a write or a fetch in flight that switching would orphan.
|
|
23
|
+
* @param props.className - extra class for layout placement.
|
|
24
|
+
* @returns the tablist element.
|
|
25
|
+
*/
|
|
26
|
+
export declare function SegmentedControl<Value extends string>({ id, value, options, onChange, label, disabled, className, }: {
|
|
27
|
+
id: string;
|
|
28
|
+
value: Value;
|
|
29
|
+
options: readonly SegmentedControlOption<Value>[];
|
|
30
|
+
onChange: (next: Value) => void;
|
|
31
|
+
label: string;
|
|
32
|
+
disabled?: boolean;
|
|
33
|
+
className?: string | undefined;
|
|
34
|
+
}): import("react").JSX.Element;
|
|
35
|
+
//# sourceMappingURL=SegmentedControl.d.ts.map
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Render one command's keycaps without owning binding defaults or localized copy.
|
|
3
|
+
* @param props - effective key labels, presentation variant and optional interaction styling.
|
|
4
|
+
* @returns unboxed keys by default, or tooltip keycaps with plus-separated combinations grouped together.
|
|
5
|
+
*/
|
|
6
|
+
export declare function ShortcutKeys({ keys, variant, className }: {
|
|
7
|
+
keys: readonly string[];
|
|
8
|
+
variant?: 'plain' | 'tooltip';
|
|
9
|
+
className?: string | undefined;
|
|
10
|
+
}): import("react").JSX.Element;
|
|
11
|
+
//# sourceMappingURL=ShortcutKeys.d.ts.map
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Site marks for well-known external link hosts. {@link LinkIcon} renders one in
|
|
3
|
+
* the leading glyph seat, so a familiar destination leads with its own mark
|
|
4
|
+
* instead of the generic globe. The marks are the `simple-icons` artwork set
|
|
5
|
+
* (CC0-1.0), pinned by this package's dependency on it; each mark takes the
|
|
6
|
+
* link's `currentColor` rather than the brand fill that set records.
|
|
7
|
+
*/
|
|
8
|
+
import type { ReactElement } from 'react';
|
|
9
|
+
/** Props for {@link siteGlyph}: the destination plus the shared icon sizing seat. */
|
|
10
|
+
interface SiteGlyphProps {
|
|
11
|
+
/** The link destination; only an absolute http(s) URL can name a host. */
|
|
12
|
+
href: string | undefined;
|
|
13
|
+
/** Square edge in px. */
|
|
14
|
+
size: number;
|
|
15
|
+
/** Extra class for layout placement. */
|
|
16
|
+
className?: string | undefined;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Render the site mark for a known external destination.
|
|
20
|
+
* @param props - The destination and the icon sizing seat.
|
|
21
|
+
* @returns The site's mark riding currentColor, or undefined for an unknown site.
|
|
22
|
+
*/
|
|
23
|
+
export declare function siteGlyph({ href, size, className }: SiteGlyphProps): ReactElement | undefined;
|
|
24
|
+
export {};
|
|
25
|
+
//# sourceMappingURL=SiteGlyph.d.ts.map
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* State semantic: green done / amber user-attention / blue running ring /
|
|
3
|
+
* red error / grey idle for a tracked subject with nothing in progress.
|
|
4
|
+
*/
|
|
5
|
+
export type StateDotState = 'done' | 'warning' | 'ongoing' | 'error' | 'idle';
|
|
6
|
+
/**
|
|
7
|
+
* Render a state dot.
|
|
8
|
+
* @param props.state - which of `done`, `warning`, `ongoing`, `error`, or `idle` to show.
|
|
9
|
+
* @param props.size - outer diameter in px (default 10, the figma size).
|
|
10
|
+
* @param props.className - extra class for layout placement.
|
|
11
|
+
* @returns the dot element (aria-hidden; pair with text for accessibility).
|
|
12
|
+
*/
|
|
13
|
+
export declare function StateDot({ state, size, className }: {
|
|
14
|
+
state: StateDotState;
|
|
15
|
+
size?: number | undefined;
|
|
16
|
+
className?: string | undefined;
|
|
17
|
+
}): import("react").JSX.Element;
|
|
18
|
+
//# sourceMappingURL=StateDot.d.ts.map
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Render a toggle switch.
|
|
3
|
+
* @param props.checked - the current state; the control is fully controlled.
|
|
4
|
+
* @param props.onChange - called with the state the click asks for.
|
|
5
|
+
* @param props.label - localized accessible name, owned by the render site.
|
|
6
|
+
* @param props.disabled - whether the control refuses input; owners also set it
|
|
7
|
+
* while a write is in flight, not only when a deployment locks the toggle.
|
|
8
|
+
* @param props.title - localized hover text, typically why the toggle is locked.
|
|
9
|
+
* @param props.className - extra class for layout placement.
|
|
10
|
+
* @returns the switch element.
|
|
11
|
+
*/
|
|
12
|
+
export declare function Switch({ checked, onChange, label, disabled, title, className }: {
|
|
13
|
+
checked: boolean;
|
|
14
|
+
onChange: (next: boolean) => void;
|
|
15
|
+
label: string;
|
|
16
|
+
disabled?: boolean;
|
|
17
|
+
title?: string | undefined;
|
|
18
|
+
className?: string | undefined;
|
|
19
|
+
}): import("react").JSX.Element;
|
|
20
|
+
//# sourceMappingURL=Switch.d.ts.map
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
/** Palette selector; each tone names one shipped appearance. */
|
|
3
|
+
export type TagTone =
|
|
4
|
+
/** Hairline outline on tertiary text: the read-only default. */
|
|
5
|
+
'outline'
|
|
6
|
+
/** Inverted fill: one tag per group that names the current selection. */
|
|
7
|
+
| 'solid'
|
|
8
|
+
/** Platform-gray fill: a neutral fact with no status meaning. */
|
|
9
|
+
| 'neutral'
|
|
10
|
+
/** Text only, no fill: a fact stated more quietly than `neutral`. */
|
|
11
|
+
| 'quiet'
|
|
12
|
+
/** Tinted green: a healthy or enabled state. */
|
|
13
|
+
| 'success'
|
|
14
|
+
/** Tinted blue: informational classification, not health. */
|
|
15
|
+
| 'info'
|
|
16
|
+
/** Tinted amber: attention needed, not yet a failure. */
|
|
17
|
+
| 'warning'
|
|
18
|
+
/** Tinted red: a failure. */
|
|
19
|
+
| 'danger';
|
|
20
|
+
/**
|
|
21
|
+
* Render a read-only tag.
|
|
22
|
+
* @param props.tone - which palette to use (default `outline`).
|
|
23
|
+
* @param props.className - extra class for layout placement.
|
|
24
|
+
* @param props.children - the localized label, owned by the render site.
|
|
25
|
+
* @returns the tag element.
|
|
26
|
+
*/
|
|
27
|
+
export declare function Tag({ tone, className, children }: {
|
|
28
|
+
tone?: TagTone;
|
|
29
|
+
className?: string | undefined;
|
|
30
|
+
children?: ReactNode;
|
|
31
|
+
}): import("react").JSX.Element;
|
|
32
|
+
//# sourceMappingURL=Tag.d.ts.map
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/** Output lines shown before the height cap collapses the middle. */
|
|
2
|
+
export declare const DEFAULT_TERMINAL_MAX_LINES = 16;
|
|
3
|
+
/**
|
|
4
|
+
* Display copy for the terminal surface; the owner passes localized labels
|
|
5
|
+
* (this package is cordis-free, so copy arrives via props).
|
|
6
|
+
*/
|
|
7
|
+
export interface TerminalBlockLabels {
|
|
8
|
+
/** Status pill text for a signal-terminated command. */
|
|
9
|
+
signal: (signal: string) => string;
|
|
10
|
+
/** Status pill text for a non-zero exit code. */
|
|
11
|
+
exitCode: (exitCode: number) => string;
|
|
12
|
+
/** Status pill text for a command that ended without an exit code: killed by a signal the view does not know, or never started. */
|
|
13
|
+
noExitCode: string;
|
|
14
|
+
/** Run-state text while the command is still running. */
|
|
15
|
+
running: string;
|
|
16
|
+
/** Run-state text for a signal or non-zero-exit settle. */
|
|
17
|
+
failed: string;
|
|
18
|
+
/** Run-state text for a clean settle. */
|
|
19
|
+
done: string;
|
|
20
|
+
/** Accessible name of one command line's scrollport, numbered from 1. */
|
|
21
|
+
commandLine: (index: number) => string;
|
|
22
|
+
/** Copy-button idle label. */
|
|
23
|
+
copy: string;
|
|
24
|
+
/** Copy-button label during the post-copy confirmation window. */
|
|
25
|
+
copied: string;
|
|
26
|
+
/** Placeholder when a settled command produced no visible output. */
|
|
27
|
+
noOutput: string;
|
|
28
|
+
/** Collapse-toggle aria label while expanded. */
|
|
29
|
+
collapseAria: string;
|
|
30
|
+
/** Collapse-toggle text while expanded. */
|
|
31
|
+
collapse: string;
|
|
32
|
+
/** Expand-toggle aria label while capped, given the hidden line count. */
|
|
33
|
+
expandAria: (hidden: number) => string;
|
|
34
|
+
/** Expand-toggle text while capped, given the hidden line count. */
|
|
35
|
+
expand: (hidden: number) => string;
|
|
36
|
+
}
|
|
37
|
+
export interface TerminalBlockProps {
|
|
38
|
+
/** The command line, rendered verbatim after the prompt label. */
|
|
39
|
+
command: string;
|
|
40
|
+
/** Working directory for the prompt label; absent renders a plain `$`. */
|
|
41
|
+
cwd?: string | undefined;
|
|
42
|
+
/** Absolute home directory, so a cwd equal to it collapses to `~`; absent disables that collapse. */
|
|
43
|
+
home?: string | undefined;
|
|
44
|
+
/** The command's output text; may contain ANSI escape sequences. */
|
|
45
|
+
output?: string | undefined;
|
|
46
|
+
/** Settled exit code; a non-zero value renders the status pill, and null (settled without one) the no-exit-code pill. */
|
|
47
|
+
exitCode?: number | null | undefined;
|
|
48
|
+
/** Settled terminating signal name; any value renders the status pill, taking precedence over the exit code. */
|
|
49
|
+
signal?: string | undefined;
|
|
50
|
+
/**
|
|
51
|
+
* The command is still running: the block shows the prompt line, and the
|
|
52
|
+
* output printed so far when there is any, with no copy control until it settles.
|
|
53
|
+
*/
|
|
54
|
+
running?: boolean | undefined;
|
|
55
|
+
/** Height cap in output lines before the middle collapses (default {@link DEFAULT_TERMINAL_MAX_LINES}); Infinity disables the cap. */
|
|
56
|
+
maxLines?: number | undefined;
|
|
57
|
+
/** Extra class merged onto the wrapper (callers position; this component draws). */
|
|
58
|
+
className?: string | undefined;
|
|
59
|
+
/** Localized display copy supplied by the owning render site. */
|
|
60
|
+
labels: TerminalBlockLabels;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Render a shell command as a terminal surface.
|
|
64
|
+
* @param props - see {@link TerminalBlockProps}.
|
|
65
|
+
* @returns the terminal block element.
|
|
66
|
+
*/
|
|
67
|
+
export declare function TerminalBlock({ command, cwd, home, output, exitCode, signal, running, maxLines, className, labels, }: TerminalBlockProps): import("react").JSX.Element;
|
|
68
|
+
//# sourceMappingURL=TerminalBlock.d.ts.map
|