@elabs-ai/components-ai 4.0.0 → 4.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/README.md +61 -11
- package/dist/{_audio-player-media-chrome-KA5DY54G.js → _audio-player-media-chrome-T3XVXWRZ.js} +8 -4
- package/dist/_audio-player-media-chrome-T3XVXWRZ.js.map +1 -0
- package/dist/{_flow-boundary-D63PJ65S.js → _flow-boundary-SHNWLQG5.js} +32 -43
- package/dist/_flow-boundary-SHNWLQG5.js.map +1 -0
- package/dist/{_persona-rive-RFR2EUWP.js → _persona-rive-JEG44YHX.js} +9 -5
- package/dist/_persona-rive-JEG44YHX.js.map +1 -0
- package/dist/index.d.ts +1109 -202
- package/dist/index.js +4867 -2878
- package/dist/index.js.map +1 -1
- package/package.json +31 -16
- package/src/_audio-player-media-chrome.tsx +102 -15
- package/src/_flow-boundary.tsx +68 -49
- package/src/_lazy-boundary-conformance.ts +38 -0
- package/src/_lazy-engine-boundary.tsx +61 -0
- package/src/_lazy-mermaid-absent.test.ts +53 -0
- package/src/_lazy-mermaid.test.ts +15 -0
- package/src/_lazy-mermaid.ts +24 -1
- package/src/_mermaid-error-panel.test.tsx +50 -0
- package/src/_mermaid-error-panel.tsx +66 -0
- package/src/_persona-rive.tsx +62 -10
- package/src/_streamdown-i18n.ts +21 -1
- package/src/_streamdown-safety.ts +170 -0
- package/src/agent-event.stories.tsx +97 -0
- package/src/agent-event.test.tsx +145 -0
- package/src/agent-event.tsx +187 -0
- package/src/agent-timeline.stories.tsx +9 -1
- package/src/agent.test.tsx +47 -0
- package/src/agent.tsx +28 -14
- package/src/agentic-workspace.stories.tsx +27 -20
- package/src/artifact.tsx +15 -12
- package/src/audio-player.test.tsx +78 -0
- package/src/audio-player.tsx +243 -56
- package/src/audio-visualizer.stories.tsx +126 -0
- package/src/audio-visualizer.test.tsx +438 -0
- package/src/audio-visualizer.tsx +367 -0
- package/src/canvas.stories.tsx +150 -1
- package/src/chat-shell.stories.tsx +18 -3
- package/src/chat.stories.tsx +16 -2
- package/src/code-block.stories.tsx +9 -1
- package/src/composer.stories.tsx +372 -9
- package/src/composer.test.tsx +357 -6
- package/src/composer.tsx +217 -35
- package/src/confirmation.stories.tsx +72 -1
- package/src/confirmation.test.tsx +216 -2
- package/src/confirmation.tsx +263 -3
- package/src/context-panel.stories.tsx +9 -1
- package/src/context-panel.tsx +2 -1
- package/src/conversation.stories.tsx +63 -2
- package/src/conversation.test.tsx +13 -0
- package/src/conversation.tsx +20 -2
- package/src/diff-view.stories.tsx +196 -0
- package/src/diff-view.test.tsx +188 -0
- package/src/diff-view.tsx +642 -0
- package/src/gallery.tsx +4 -2
- package/src/index.ts +14 -4
- package/src/jsx-preview.stories.tsx +2 -2
- package/src/markdown-view.stories.tsx +92 -1
- package/src/markdown-view.test.tsx +232 -1
- package/src/markdown-view.tsx +150 -6
- package/src/message-compare.stories.tsx +175 -0
- package/src/message-compare.test.tsx +207 -0
- package/src/message-compare.tsx +453 -0
- package/src/message-form.stories.tsx +29 -1
- package/src/message.stories.tsx +9 -1
- package/src/message.test.tsx +176 -0
- package/src/message.tsx +90 -4
- package/src/microcopy.test.tsx +40 -0
- package/src/{model-selector.stories.tsx → model-provider-logo.stories.tsx} +17 -8
- package/src/{model-selector.test.tsx → model-provider-logo.test.tsx} +10 -10
- package/src/model-provider-logo.tsx +149 -0
- package/src/permission-mode-select.stories.tsx +82 -0
- package/src/permission-mode-select.test.tsx +100 -0
- package/src/permission-mode-select.tsx +137 -0
- package/src/persona-missing-peer.test.tsx +54 -0
- package/src/persona.tsx +68 -22
- package/src/plan.stories.tsx +166 -0
- package/src/plan.test.tsx +267 -0
- package/src/plan.tsx +182 -20
- package/src/prompt-input-effort.stories.tsx +123 -0
- package/src/prompt-input-effort.test.tsx +83 -0
- package/src/prompt-input-effort.tsx +136 -0
- package/src/prompt-input-mode.stories.tsx +108 -0
- package/src/prompt-input-mode.test.tsx +99 -0
- package/src/prompt-input-mode.tsx +169 -0
- package/src/prompt-input-slash.stories.tsx +211 -0
- package/src/prompt-input-slash.test.tsx +262 -0
- package/src/prompt-input-slash.tsx +541 -0
- package/src/prompt-input.stories.tsx +2 -2
- package/src/reasoning.tsx +27 -13
- package/src/sandbox.stories.tsx +9 -1
- package/src/schema-display.tsx +5 -2
- package/src/selection-toolbar.stories.tsx +9 -1
- package/src/session-header.stories.tsx +128 -0
- package/src/session-header.test.tsx +138 -0
- package/src/session-header.tsx +243 -0
- package/src/session-status-bar.stories.tsx +73 -0
- package/src/session-status-bar.test.tsx +94 -0
- package/src/session-status-bar.tsx +165 -0
- package/src/snippet.stories.tsx +9 -1
- package/src/stack-trace.tsx +6 -2
- package/src/streamdown-i18n.test.tsx +1 -1
- package/src/task.stories.tsx +13 -3
- package/src/templates-ai-assistant.stories.tsx +21 -1
- package/src/token-usage.stories.tsx +24 -0
- package/src/token-usage.test.tsx +92 -0
- package/src/{context.tsx → token-usage.tsx} +67 -53
- package/src/tool-result-card.stories.tsx +9 -1
- package/src/tool.stories.tsx +13 -3
- package/src/tool.tsx +15 -8
- package/src/turn-status.stories.tsx +124 -0
- package/src/turn-status.test.tsx +74 -0
- package/src/turn-status.tsx +174 -0
- package/src/use-audio-level.ts +104 -0
- package/src/web-preview.tsx +8 -3
- package/dist/_audio-player-media-chrome-KA5DY54G.js.map +0 -1
- package/dist/_flow-boundary-D63PJ65S.js.map +0 -1
- package/dist/_interactive-terminal-xterm-ATJ5EW3G.js +0 -11
- package/dist/_interactive-terminal-xterm-ATJ5EW3G.js.map +0 -1
- package/dist/_persona-rive-RFR2EUWP.js.map +0 -1
- package/src/_interactive-terminal-xterm.ts +0 -32
- package/src/blocks-ai-composer.stories.tsx +0 -83
- package/src/context.stories.tsx +0 -16
- package/src/interactive-terminal.stories.tsx +0 -165
- package/src/interactive-terminal.test.tsx +0 -448
- package/src/interactive-terminal.tsx +0 -444
- package/src/model-selector.tsx +0 -225
- package/src/terminal.tsx +0 -244
package/dist/index.d.ts
CHANGED
|
@@ -1,22 +1,20 @@
|
|
|
1
1
|
import * as react from 'react';
|
|
2
2
|
import { ComponentProps, ReactNode, HTMLAttributes, RefObject, FormEvent, PropsWithChildren, ImgHTMLAttributes, FC, ElementType, JSX } from 'react';
|
|
3
3
|
import * as _elabs_ai_components_ui from '@elabs-ai/components-ui';
|
|
4
|
-
import { AccordionItem, Accordion, TimelineItemProps, Status, TimelineRootProps, Button, FileSource, HoverCard, HoverCardContent, HoverCardTrigger, CollapsibleContent, CollapsibleTrigger, Badge, HeadingLevel, Select, SelectContent, SelectItem, SelectTrigger, SelectValue, Collapsible, Avatar, InputGroupButton, DropdownMenuItem, DropdownMenu, DropdownMenuContent, TooltipContent, Command, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, InputGroupAddon, InputGroupTextarea,
|
|
5
|
-
import
|
|
4
|
+
import { AccordionItem, Accordion, TimelineItemProps, Status, TimelineRootProps, AgentEventPhase, AgentEventOutcome, CheckSummary, CheckResult, Button, FileSource, HoverCard, HoverCardContent, HoverCardTrigger, CollapsibleContent, CollapsibleTrigger, Badge, HeadingLevel, Select, SelectContent, SelectItem, SelectTrigger, SelectValue, Collapsible, Avatar, InputGroupButton, DropdownMenuItem, DropdownMenu, DropdownMenuContent, TooltipContent, Command, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, InputGroupAddon, InputGroupTextarea, EffortLevel, OperatingMode, SlashCommand, Alert, AlertDescription, ApprovalOption, Textarea, AlertTitle, DiffLine, Switch, Carousel, ProseHeadingLevel, ButtonGroup, Popover, PopoverContent, Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuTrigger, StatusBadge, ScrollArea, TabsContent, Tabs, TabsList, TabsTrigger, SessionCapability, SessionWhatsNewItem, SessionQuickAction, InputGroup, InputGroupInput, InputGroupText, Dialog, DialogContent, CommandDialog, CommandShortcut, DialogTrigger, Input } from '@elabs-ai/components-ui';
|
|
5
|
+
import * as ai from 'ai';
|
|
6
|
+
import { Tool as Tool$1, FileUIPart, SourceDocumentUIPart, Experimental_SpeechResult, ChatStatus, ToolUIPart, UIMessage, Experimental_GeneratedImage, LanguageModelUsage, DynamicToolUIPart, Experimental_TranscriptionResult } from 'ai';
|
|
6
7
|
import { LucideIcon, LucideProps, FileIcon } from 'lucide-react';
|
|
7
|
-
import { MediaController, MediaControlBar, MediaDurationDisplay, MediaMuteButton, MediaPlayButton, MediaSeekBackwardButton, MediaSeekForwardButton, MediaTimeDisplay, MediaTimeRange, MediaVolumeRange } from 'media-chrome/react';
|
|
8
8
|
import { ReactFlowProps, ConnectionLineComponent, Controls as Controls$1, EdgeProps, Panel as Panel$1, NodeToolbar as NodeToolbar$1 } from '@xyflow/react';
|
|
9
9
|
import { BundledLanguage, ThemedToken } from 'shiki';
|
|
10
10
|
import { StickToBottom } from 'use-stick-to-bottom';
|
|
11
11
|
import * as class_variance_authority_types from 'class-variance-authority/types';
|
|
12
12
|
import { VariantProps } from 'class-variance-authority';
|
|
13
|
-
import { ITheme } from '@xterm/xterm';
|
|
14
13
|
import { TProps } from 'react-jsx-parser';
|
|
15
14
|
import { MermaidConfig, DiagramPlugin } from '@streamdown/mermaid';
|
|
16
15
|
import { Streamdown } from 'streamdown';
|
|
17
16
|
import { z } from 'zod';
|
|
18
17
|
import { Transition } from 'motion/react';
|
|
19
|
-
import { RiveParameters } from '@rive-app/react-webgl2';
|
|
20
18
|
|
|
21
19
|
type AgentProps = ComponentProps<"div">;
|
|
22
20
|
declare const Agent: react.MemoExoticComponent<({ className, ...props }: AgentProps) => react.JSX.Element>;
|
|
@@ -74,6 +72,28 @@ interface AgentStepProps extends Omit<TimelineItemProps, "children" | "descripti
|
|
|
74
72
|
*/
|
|
75
73
|
declare const AgentStep: react.NamedExoticComponent<AgentStepProps & react.RefAttributes<HTMLLIElement>>;
|
|
76
74
|
|
|
75
|
+
interface AgentEventProps extends Omit<AgentStepProps, "name" | "status" | "children" | "icon" | "timestamp"> {
|
|
76
|
+
/** The runtime event name, verbatim as the runtime emits it — e.g. `"user_prompt_submit"`, `"pre_tool_use"`, `"stop"`. */
|
|
77
|
+
label: string;
|
|
78
|
+
/** When this event fired relative to the action it gates. See `AgentEventPhase`. */
|
|
79
|
+
phase?: AgentEventPhase;
|
|
80
|
+
/** The event's verdict. @default "ok" */
|
|
81
|
+
outcome?: AgentEventOutcome;
|
|
82
|
+
/** Wall-clock duration of the event, in milliseconds. Rendered with the shared `formatElapsed`. */
|
|
83
|
+
durationMs?: number;
|
|
84
|
+
/** Gate checks the event ran: individual verdicts, or a count summary. */
|
|
85
|
+
checks?: CheckSummary | CheckResult[];
|
|
86
|
+
/** Optional leading glyph on the title row (Lucide). @default Webhook */
|
|
87
|
+
icon?: LucideIcon;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* One lifecycle/hook event line on the `AgentTimeline` rail — an `AgentStep`
|
|
91
|
+
* variant, never a second spine. Composes `AgentStep` exactly as `TaskItem`
|
|
92
|
+
* does in `./agent-timeline`, so it rides the same `TimelineRoot`/`TimelineItem`
|
|
93
|
+
* primitives every other trace entry uses.
|
|
94
|
+
*/
|
|
95
|
+
declare const AgentEvent: react.ForwardRefExoticComponent<AgentEventProps & react.RefAttributes<HTMLLIElement>>;
|
|
96
|
+
|
|
77
97
|
type ArtifactProps = HTMLAttributes<HTMLDivElement> & {
|
|
78
98
|
/**
|
|
79
99
|
* The artifact body has not arrived yet (loading-states.md loading signal).
|
|
@@ -336,7 +356,133 @@ declare const AttachmentHoverCardContent: ({ align, className, ...props }: Attac
|
|
|
336
356
|
type AttachmentEmptyProps = HTMLAttributes<HTMLDivElement>;
|
|
337
357
|
declare const AttachmentEmpty: ({ className, children, ...props }: AttachmentEmptyProps) => react.JSX.Element;
|
|
338
358
|
|
|
339
|
-
|
|
359
|
+
/**
|
|
360
|
+
* media-chrome lives behind a dynamic import — it declares no `sideEffects`, so
|
|
361
|
+
* a static import would put the whole custom-element library in every consumer's
|
|
362
|
+
* entry chunk, `AudioPlayer` rendered or not. Every value import lives in
|
|
363
|
+
* `_audio-player-media-chrome.tsx`. See ADR 0019 and `pnpm heavy-deps:check`.
|
|
364
|
+
*
|
|
365
|
+
* All ten parts resolve from the SAME module specifier, so they share one chunk:
|
|
366
|
+
* once `AudioPlayer` has loaded it, the controls inside it resolve from cache.
|
|
367
|
+
*
|
|
368
|
+
* Issue #101: `media-chrome` is an OPTIONAL peer, so no PUBLIC export's type
|
|
369
|
+
* may structurally reference `media-chrome/react`'s own types (previously
|
|
370
|
+
* `ComponentProps<typeof MediaController>` and nine siblings, imported as
|
|
371
|
+
* TYPE-only above) — doing so names `media-chrome/react`'s module specifier in
|
|
372
|
+
* this package's generated root `.d.ts` and hands a `skipLibCheck: false`
|
|
373
|
+
* consumer who has correctly omitted the peer a `TS2307` just for importing
|
|
374
|
+
* the barrel — not just for using `AudioPlayer`. `AudioPlayerPartProps` below
|
|
375
|
+
* is an OWNED base type: `media-chrome/react`'s wrapper
|
|
376
|
+
* (`media-chrome/react`'s `createComponent`, from the `ce-la-react` helper it
|
|
377
|
+
* is built on) types every part as `Omit<HTMLAttributes<I>, …> &
|
|
378
|
+
* Partial<the element's own instance members>` — i.e. ordinary HTML attributes
|
|
379
|
+
* plus a handful of optional custom attributes. `AudioPlayerPartProps` itself
|
|
380
|
+
* stays ordinary HTML attributes only; the PRIMITIVE-typed (`string` /
|
|
381
|
+
* `boolean` / `number`) extra instance members of `<media-controller>` and
|
|
382
|
+
* `<media-seek-forward-button>` — the two elements measured by the round-2
|
|
383
|
+
* validator — are mirrored one-by-one on `AudioPlayerProps` and
|
|
384
|
+
* `AudioPlayerSeekForwardButtonProps` below (each a single declaration line
|
|
385
|
+
* referencing nothing peer-owned, the same technique `seekOffset` already
|
|
386
|
+
* used). What stays narrowed to `AudioPlayerPartProps` alone are the
|
|
387
|
+
* PEER/COMPLEX-typed members (`MediaStore`, `AttributeTokenList`,
|
|
388
|
+
* `MediaTooltip`, `TooltipPlacement`, DOM-element and `HTMLMediaElement`
|
|
389
|
+
* callbacks, methods) and every member of the other eight parts — restoring
|
|
390
|
+
* those would re-import the peer type graph this fix exists to avoid. See the
|
|
391
|
+
* CHANGELOG's "Breaking (types)" entry for the exact narrowed set.
|
|
392
|
+
* `AudioPlayerPartProps` is therefore NOT a full replica of media-chrome's
|
|
393
|
+
* surface, only the base every part actually uses and re-exports (the same
|
|
394
|
+
* scoping `TerminalColorTheme` uses for xterm's `ITheme` in
|
|
395
|
+
* `packages/terminal/src/interactive-terminal.tsx`, also issue #101). The ten
|
|
396
|
+
* conformance assertions at the bottom of `_audio-player-media-chrome.tsx`
|
|
397
|
+
* (which still imports the real peer types — that module is reached only
|
|
398
|
+
* through `lazy()` and never sits in the barrel's declaration graph) prove
|
|
399
|
+
* every owned type here stays assignable to its real media-chrome counterpart;
|
|
400
|
+
* a peer version bump that narrows a prop incompatibly fails
|
|
401
|
+
* `pnpm --filter @elabs-ai/components-ai typecheck` locally instead of
|
|
402
|
+
* reaching a consumer as silent drift.
|
|
403
|
+
*
|
|
404
|
+
* Deliberately no `ref` field: `ComponentProps<typeof MediaController>` (and
|
|
405
|
+
* its nine siblings) included one via `RefAttributes<I>`, but `RefObject<T>`'s
|
|
406
|
+
* mutable `current` makes ref types INVARIANT in `T` — a `Ref<HTMLElement>`
|
|
407
|
+
* can never be assignable to a real element's own `Ref<MediaController>` (the
|
|
408
|
+
* custom element subclass carries private/extra members `HTMLElement` lacks),
|
|
409
|
+
* so keeping it would make every owned type fail its own conformance
|
|
410
|
+
* assertion below. This IS a real-world break for a React 19 consumer: none
|
|
411
|
+
* of the ten parts this package renders is wrapped in `forwardRef`, but
|
|
412
|
+
* `MediaController` (and its siblings) are genuine `forwardRef` components,
|
|
413
|
+
* and React 19's ref-as-prop carries a `ref` straight through an ordinary
|
|
414
|
+
* function component's `{...props}` spread to the real underlying element —
|
|
415
|
+
* see the CHANGELOG's "Breaking (types)" entry for the measured detail. It is
|
|
416
|
+
* inert only under React 18.
|
|
417
|
+
*/
|
|
418
|
+
type AudioPlayerPartProps = HTMLAttributes<HTMLElement>;
|
|
419
|
+
/**
|
|
420
|
+
* The primitive-typed (`string`/`boolean`/`number`) extra instance members of
|
|
421
|
+
* `media-chrome/react`'s `MediaController` — restored per issue #101's round-2
|
|
422
|
+
* validation (R2): each is a single declaration line mirroring the real peer
|
|
423
|
+
* type's name and shape, referencing nothing peer-owned, so it costs nothing
|
|
424
|
+
* against the `.d.ts` leak this fix exists to prevent. Deliberately EXCLUDED:
|
|
425
|
+
* `audio` (already narrowed out — `_audio-player-media-chrome.tsx`'s
|
|
426
|
+
* conformance assertion Omits it from the real `ComponentProps`, since this
|
|
427
|
+
* package renders its own `<AudioPlayerElement>` instead of passing one
|
|
428
|
+
* through), and every PEER/COMPLEX-typed member (`mediaStore`, `hotkeys`
|
|
429
|
+
* (`AttributeTokenList`), `media`/`fullscreenElement` (DOM elements),
|
|
430
|
+
* `mediaStateReceivers`, `associatedElementSubscriptions`, every
|
|
431
|
+
* `HTMLMediaElement` callback and every method) — those stay narrowed to
|
|
432
|
+
* `AudioPlayerPartProps` alone; restoring them would re-import the peer type
|
|
433
|
+
* graph. See `_audio-player-media-chrome.tsx`'s
|
|
434
|
+
* `_AudioPlayerPropsConformance` assertion, which fails typecheck if this
|
|
435
|
+
* interface ever drifts wider than the real element's own props.
|
|
436
|
+
*
|
|
437
|
+
* Doc comments below are inferred from each member's name and media-chrome's
|
|
438
|
+
* public attribute-naming convention (`no*` = boolean opt-out of the
|
|
439
|
+
* corresponding default-on behavior) — media-chrome ships no per-property doc
|
|
440
|
+
* comments in its own `.d.ts` or README to copy from. Treat them as a reading
|
|
441
|
+
* aid, not an authoritative spec; verify against media-chrome's source before
|
|
442
|
+
* relying on exact semantics.
|
|
443
|
+
*/
|
|
444
|
+
interface AudioPlayerProps extends AudioPlayerPartProps {
|
|
445
|
+
/** Seconds of inactivity before controls hide; a string because it mirrors the HTML attribute value. */
|
|
446
|
+
autohide?: string;
|
|
447
|
+
/** Also autohide while the pointer is over the control elements themselves, not just the media. */
|
|
448
|
+
autohideOverControls?: boolean;
|
|
449
|
+
/** Breakpoint definitions (space-separated `name:width` pairs) driving `breakpointsComputed`. */
|
|
450
|
+
breakpoints?: string;
|
|
451
|
+
/** Whether the controller has computed its current breakpoint(s) at least once. */
|
|
452
|
+
breakpointsComputed?: boolean;
|
|
453
|
+
/** Fallback duration (seconds) to display before the real media duration is known. */
|
|
454
|
+
defaultDuration?: number;
|
|
455
|
+
/** Default stream type ("on-demand" or "live") before the media has resolved its own. */
|
|
456
|
+
defaultStreamType?: string;
|
|
457
|
+
/** Whether subtitles/captions are enabled by default. */
|
|
458
|
+
defaultSubtitles?: boolean;
|
|
459
|
+
/** Disables the controller's built-in tap/gesture handling (e.g. tap-to-play, double-tap-to-seek). */
|
|
460
|
+
gesturesDisabled?: boolean;
|
|
461
|
+
/** Whether hotkey keyboard control is currently active on the controller. */
|
|
462
|
+
keyboardControl?: boolean;
|
|
463
|
+
/** Space-separated list of hotkey names currently in use, for conflict detection with other listeners. */
|
|
464
|
+
keysUsed?: string;
|
|
465
|
+
/** Seconds behind the live edge still considered "at" live, for a live stream's seek range. */
|
|
466
|
+
liveEdgeOffset?: number;
|
|
467
|
+
/** Disables the controller's autohide-controls-on-inactivity behavior entirely. */
|
|
468
|
+
noAutohide?: boolean;
|
|
469
|
+
/** Disables automatically seeking back to the live edge after a manual seek on a live stream. */
|
|
470
|
+
noAutoSeekToLive?: boolean;
|
|
471
|
+
/** Opts out of the controller creating its own default internal media store. */
|
|
472
|
+
noDefaultStore?: boolean;
|
|
473
|
+
/** Disables the controller's built-in keyboard hotkeys entirely. */
|
|
474
|
+
noHotkeys?: boolean;
|
|
475
|
+
/** Opts out of remembering the user's mute preference across sessions. */
|
|
476
|
+
noMutedPref?: boolean;
|
|
477
|
+
/** Opts out of remembering the user's subtitles-language preference across sessions. */
|
|
478
|
+
noSubtitlesLangPref?: boolean;
|
|
479
|
+
/** Opts out of remembering the user's volume preference across sessions. */
|
|
480
|
+
noVolumePref?: boolean;
|
|
481
|
+
/** The language the controller resolved for its UI text, after applying any language preference. */
|
|
482
|
+
resolvedLang?: string;
|
|
483
|
+
/** Whether the user has interacted with the controller yet (affects autoplay-adjacent UI). */
|
|
484
|
+
userInteractive?: boolean;
|
|
485
|
+
}
|
|
340
486
|
declare const AudioPlayer: ({ className, ...props }: AudioPlayerProps) => react.JSX.Element;
|
|
341
487
|
type AudioPlayerElementProps = Omit<ComponentProps<"audio">, "src"> & ({
|
|
342
488
|
data: Experimental_SpeechResult["audio"];
|
|
@@ -344,25 +490,104 @@ type AudioPlayerElementProps = Omit<ComponentProps<"audio">, "src"> & ({
|
|
|
344
490
|
src: string;
|
|
345
491
|
});
|
|
346
492
|
declare const AudioPlayerElement: ({ ...props }: AudioPlayerElementProps) => react.JSX.Element;
|
|
347
|
-
type AudioPlayerControlBarProps =
|
|
493
|
+
type AudioPlayerControlBarProps = AudioPlayerPartProps;
|
|
348
494
|
declare const AudioPlayerControlBar: (props: AudioPlayerControlBarProps) => react.JSX.Element;
|
|
349
|
-
type AudioPlayerPlayButtonProps =
|
|
495
|
+
type AudioPlayerPlayButtonProps = AudioPlayerPartProps;
|
|
350
496
|
declare const AudioPlayerPlayButton: (props: AudioPlayerPlayButtonProps) => react.JSX.Element;
|
|
351
|
-
|
|
497
|
+
interface AudioPlayerSeekBackwardButtonProps extends AudioPlayerPartProps {
|
|
498
|
+
/** Skip distance in seconds. Mirrors the element's own default (10). */
|
|
499
|
+
seekOffset?: number;
|
|
500
|
+
}
|
|
352
501
|
declare const AudioPlayerSeekBackwardButton: (props: AudioPlayerSeekBackwardButtonProps) => react.JSX.Element;
|
|
353
|
-
|
|
502
|
+
/**
|
|
503
|
+
* Primitive-typed extra members restored per issue #101's round-2 validation
|
|
504
|
+
* (R2) — same technique and same inferred-from-naming caveat as
|
|
505
|
+
* `AudioPlayerProps` above. Deliberately still narrowed out:
|
|
506
|
+
* `keysUsed` (here typed `string[]`, unlike the controller's own `string`
|
|
507
|
+
* member of the same name — an array is not primitive) and the DOM/method
|
|
508
|
+
* members `disable`/`enable`/`handleClick`/`tooltipEl`/`tooltipPlacement`.
|
|
509
|
+
*/
|
|
510
|
+
interface AudioPlayerSeekForwardButtonProps extends AudioPlayerPartProps {
|
|
511
|
+
/** Whether the button is disabled. */
|
|
512
|
+
disabled?: boolean;
|
|
513
|
+
/** ID of the `<media-controller>` element this button controls, when it is not an ancestor. */
|
|
514
|
+
mediaController?: string;
|
|
515
|
+
/** The media's current playback time (seconds), as reflected by the controller's media store. */
|
|
516
|
+
mediaCurrentTime?: number;
|
|
517
|
+
/** Skip distance in seconds. Mirrors the element's own default (10). */
|
|
518
|
+
seekOffset?: number;
|
|
519
|
+
/** Suppresses the built-in hover tooltip on this button. */
|
|
520
|
+
noTooltip?: boolean;
|
|
521
|
+
/** Prevents the button's default click handling (for a consumer that wants to fully own the behavior). */
|
|
522
|
+
preventClick?: boolean;
|
|
523
|
+
}
|
|
354
524
|
declare const AudioPlayerSeekForwardButton: (props: AudioPlayerSeekForwardButtonProps) => react.JSX.Element;
|
|
355
|
-
type AudioPlayerTimeDisplayProps =
|
|
525
|
+
type AudioPlayerTimeDisplayProps = AudioPlayerPartProps;
|
|
356
526
|
declare const AudioPlayerTimeDisplay: (props: AudioPlayerTimeDisplayProps) => react.JSX.Element;
|
|
357
|
-
type AudioPlayerTimeRangeProps =
|
|
527
|
+
type AudioPlayerTimeRangeProps = AudioPlayerPartProps;
|
|
358
528
|
declare const AudioPlayerTimeRange: (props: AudioPlayerTimeRangeProps) => react.JSX.Element;
|
|
359
|
-
type AudioPlayerDurationDisplayProps =
|
|
529
|
+
type AudioPlayerDurationDisplayProps = AudioPlayerPartProps;
|
|
360
530
|
declare const AudioPlayerDurationDisplay: (props: AudioPlayerDurationDisplayProps) => react.JSX.Element;
|
|
361
|
-
type AudioPlayerMuteButtonProps =
|
|
531
|
+
type AudioPlayerMuteButtonProps = AudioPlayerPartProps;
|
|
362
532
|
declare const AudioPlayerMuteButton: (props: AudioPlayerMuteButtonProps) => react.JSX.Element;
|
|
363
|
-
type AudioPlayerVolumeRangeProps =
|
|
533
|
+
type AudioPlayerVolumeRangeProps = AudioPlayerPartProps;
|
|
364
534
|
declare const AudioPlayerVolumeRange: (props: AudioPlayerVolumeRangeProps) => react.JSX.Element;
|
|
365
535
|
|
|
536
|
+
/**
|
|
537
|
+
* brand-ui is a presentation layer (D5, docs/DECISIONS.md §D5): this component
|
|
538
|
+
* never calls `getUserMedia`, never owns an `AudioContext`, and starts nothing
|
|
539
|
+
* on mount. It draws whatever `levels` a parent — who already has a
|
|
540
|
+
* `MediaStream`/`AnalyserNode` — passes it, frame by frame. The analyser
|
|
541
|
+
* plumbing, when a consumer genuinely wants it, is the separate, opt-in
|
|
542
|
+
* `useAudioLevel` export in `./use-audio-level` — never something this
|
|
543
|
+
* component reaches for itself. See issue #21.
|
|
544
|
+
*/
|
|
545
|
+
type AudioVisualizerVariant = "bars" | "wave";
|
|
546
|
+
type AudioVisualizerLevelState = "idle" | "silent" | "active";
|
|
547
|
+
interface AudioVisualizerProps extends Omit<ComponentProps<"div">, "children"> {
|
|
548
|
+
/**
|
|
549
|
+
* Normalized 0–1 amplitude samples for the CURRENT frame — one per bar (or
|
|
550
|
+
* per sample point for `variant="wave"`). Update this from your own
|
|
551
|
+
* analyser polling loop (or the opt-in `useAudioLevel` hook) on every frame
|
|
552
|
+
* you want reflected; the component never touches the microphone itself.
|
|
553
|
+
* Any length works — samples are resampled to `barCount`.
|
|
554
|
+
*/
|
|
555
|
+
levels?: number[];
|
|
556
|
+
/** No stream connected yet — renders the idle baseline instead of `levels`. */
|
|
557
|
+
loading?: boolean;
|
|
558
|
+
/** `"bars"` (default) — a bar chart. `"wave"` — a filled envelope through the
|
|
559
|
+
* current samples. Both encode level as HEIGHT, never as hue alone. */
|
|
560
|
+
variant?: AudioVisualizerVariant;
|
|
561
|
+
/** Multiplies each level before clamping to [0, 1] — turn up for a quiet input. */
|
|
562
|
+
sensitivity?: number;
|
|
563
|
+
/** Number of bars/points drawn. */
|
|
564
|
+
barCount?: number;
|
|
565
|
+
/** Average level, 0–1, at/above which the status text reads "active". */
|
|
566
|
+
silenceThreshold?: number;
|
|
567
|
+
/**
|
|
568
|
+
* Visually-hidden text announced when the discretized level state changes.
|
|
569
|
+
* Defaults to a localized label ("No input detected" / "Microphone
|
|
570
|
+
* active" / …). Pass `null` when the consuming surface already renders its
|
|
571
|
+
* own live region, so assistive tech is not told twice.
|
|
572
|
+
*/
|
|
573
|
+
statusLabel?: ReactNode | null;
|
|
574
|
+
}
|
|
575
|
+
/**
|
|
576
|
+
* Live mic-level / waveform meter. Canvas-drawn (one element, no per-bar DOM,
|
|
577
|
+
* so a `levels` prop updating every frame never costs React a 32-element
|
|
578
|
+
* reconciliation) and driven entirely by the `levels` prop — see the module
|
|
579
|
+
* doc comment for the presentation-layer boundary this enforces.
|
|
580
|
+
*
|
|
581
|
+
* The canvas is decorative (`aria-hidden`); the level itself is announced
|
|
582
|
+
* through a throttled `role="status"` text alternative — see `statusLabel`.
|
|
583
|
+
*
|
|
584
|
+
* Reduced motion: under `prefers-reduced-motion` (or while `loading`) the
|
|
585
|
+
* component skips its internal smoothing animation entirely and paints the
|
|
586
|
+
* raw `levels` directly on every prop change — a static bar chart of the
|
|
587
|
+
* current levels, never a freeze mid-interpolation.
|
|
588
|
+
*/
|
|
589
|
+
declare const AudioVisualizer: react.ForwardRefExoticComponent<Omit<AudioVisualizerProps, "ref"> & react.RefAttributes<HTMLDivElement>>;
|
|
590
|
+
|
|
366
591
|
type CanvasProps = ReactFlowProps & {
|
|
367
592
|
children?: ReactNode;
|
|
368
593
|
};
|
|
@@ -799,6 +1024,189 @@ declare const PromptInputCommandItem: ({ className, ...props }: PromptInputComma
|
|
|
799
1024
|
type PromptInputCommandSeparatorProps = ComponentProps<typeof CommandSeparator>;
|
|
800
1025
|
declare const PromptInputCommandSeparator: ({ className, ...props }: PromptInputCommandSeparatorProps) => react.JSX.Element;
|
|
801
1026
|
|
|
1027
|
+
type PromptInputEffortProps = Omit<HTMLAttributes<HTMLDivElement>, "onChange"> & {
|
|
1028
|
+
/** Ordered low → high. The order IS the semantics — render in this order. */
|
|
1029
|
+
levels: EffortLevel[];
|
|
1030
|
+
/** Controlled selected level id. Omit for the uncontrolled default (`levels[0]`). */
|
|
1031
|
+
value?: string;
|
|
1032
|
+
/** Fires with the chosen level's id. */
|
|
1033
|
+
onValueChange?: (id: string) => void;
|
|
1034
|
+
/**
|
|
1035
|
+
* Accessible name for the whole scale (e.g. "Reasoning effort", "Thinking
|
|
1036
|
+
* budget") — required because the NAME of the scale is as much the
|
|
1037
|
+
* consumer's vocabulary as its levels are; this component has no default
|
|
1038
|
+
* to fall back to.
|
|
1039
|
+
*/
|
|
1040
|
+
"aria-label": string;
|
|
1041
|
+
};
|
|
1042
|
+
/**
|
|
1043
|
+
* PromptInputEffort — an ORDERED reasoning-effort/budget control.
|
|
1044
|
+
*
|
|
1045
|
+
* Renders `levels` as a row of same-shape squares that GROW in size, low to
|
|
1046
|
+
* high — the size ramp encodes the order on its own, before any selection is
|
|
1047
|
+
* made. Selecting a level fills every square up to and including it (solid
|
|
1048
|
+
* fill + coloured border) and leaves the rest hollow (outline only): the
|
|
1049
|
+
* indicator's FILL is the second, non-colour channel required by a
|
|
1050
|
+
* greyscale-legibility read — the size ramp and the solid/hollow shape both
|
|
1051
|
+
* survive a greyscale render, so the level is recoverable without colour.
|
|
1052
|
+
* The current level's name is additionally rendered as text.
|
|
1053
|
+
*
|
|
1054
|
+
* Built on Radix (`RadioGroup`/`RadioGroupItem` from `@elabs-ai/components-ui`,
|
|
1055
|
+
* `role="radiogroup"` of `role="radio"`s) for arrow-key navigation, roving
|
|
1056
|
+
* focus and an accessible-name announcement on the checked item — no
|
|
1057
|
+
* hand-rolled key handling.
|
|
1058
|
+
*/
|
|
1059
|
+
declare const PromptInputEffort: react.ForwardRefExoticComponent<Omit<HTMLAttributes<HTMLDivElement>, "onChange"> & {
|
|
1060
|
+
/** Ordered low → high. The order IS the semantics — render in this order. */
|
|
1061
|
+
levels: EffortLevel[];
|
|
1062
|
+
/** Controlled selected level id. Omit for the uncontrolled default (`levels[0]`). */
|
|
1063
|
+
value?: string;
|
|
1064
|
+
/** Fires with the chosen level's id. */
|
|
1065
|
+
onValueChange?: (id: string) => void;
|
|
1066
|
+
/**
|
|
1067
|
+
* Accessible name for the whole scale (e.g. "Reasoning effort", "Thinking
|
|
1068
|
+
* budget") — required because the NAME of the scale is as much the
|
|
1069
|
+
* consumer's vocabulary as its levels are; this component has no default
|
|
1070
|
+
* to fall back to.
|
|
1071
|
+
*/
|
|
1072
|
+
"aria-label": string;
|
|
1073
|
+
} & react.RefAttributes<HTMLDivElement>>;
|
|
1074
|
+
|
|
1075
|
+
type PromptInputModeProps = Omit<HTMLAttributes<HTMLDivElement>, "onChange"> & {
|
|
1076
|
+
/** The app's own operating modes, low to high ceremony or however it orders them. */
|
|
1077
|
+
modes: OperatingMode[];
|
|
1078
|
+
/** Controlled selected mode id. Omit for the uncontrolled default (`modes[0]`). */
|
|
1079
|
+
value?: string;
|
|
1080
|
+
/** Fires with the chosen mode's id. */
|
|
1081
|
+
onValueChange?: (id: string) => void;
|
|
1082
|
+
/**
|
|
1083
|
+
* Accessible name for the trigger control, read alongside the current
|
|
1084
|
+
* mode's label. Optional — the trigger already carries the current mode's
|
|
1085
|
+
* visible text as its name, so this only adds context (e.g. "Operating
|
|
1086
|
+
* mode: Auto" instead of just "Auto").
|
|
1087
|
+
*/
|
|
1088
|
+
"aria-label"?: string;
|
|
1089
|
+
};
|
|
1090
|
+
/**
|
|
1091
|
+
* PromptInputMode — a composer control for an app-defined operating mode
|
|
1092
|
+
* (how autonomously the agent may act on the next turn).
|
|
1093
|
+
*
|
|
1094
|
+
* A `DropdownMenu` of `modes`, radio-selected so exactly one is active at a
|
|
1095
|
+
* time; the trigger shows the current mode's icon + label. Ships no mode
|
|
1096
|
+
* vocabulary — `modes` is entirely prop-driven, so `auto`/`plan`/whatever a
|
|
1097
|
+
* given agent calls its modes lives in the consuming app, not here.
|
|
1098
|
+
*
|
|
1099
|
+
* Built on Radix (`DropdownMenu` + `DropdownMenuRadioGroup`/`RadioItem` from
|
|
1100
|
+
* `@elabs-ai/components-ui`) for keyboard navigation, roving focus and a
|
|
1101
|
+
* `menuitemradio` role whose `aria-checked` announces the current selection —
|
|
1102
|
+
* no hand-rolled key handling.
|
|
1103
|
+
*/
|
|
1104
|
+
declare const PromptInputMode: react.ForwardRefExoticComponent<Omit<HTMLAttributes<HTMLDivElement>, "onChange"> & {
|
|
1105
|
+
/** The app's own operating modes, low to high ceremony or however it orders them. */
|
|
1106
|
+
modes: OperatingMode[];
|
|
1107
|
+
/** Controlled selected mode id. Omit for the uncontrolled default (`modes[0]`). */
|
|
1108
|
+
value?: string;
|
|
1109
|
+
/** Fires with the chosen mode's id. */
|
|
1110
|
+
onValueChange?: (id: string) => void;
|
|
1111
|
+
/**
|
|
1112
|
+
* Accessible name for the trigger control, read alongside the current
|
|
1113
|
+
* mode's label. Optional — the trigger already carries the current mode's
|
|
1114
|
+
* visible text as its name, so this only adds context (e.g. "Operating
|
|
1115
|
+
* mode: Auto" instead of just "Auto").
|
|
1116
|
+
*/
|
|
1117
|
+
"aria-label"?: string;
|
|
1118
|
+
} & react.RefAttributes<HTMLDivElement>>;
|
|
1119
|
+
|
|
1120
|
+
interface PromptInputSlashProps extends Omit<HTMLAttributes<HTMLDivElement>, "onSelect" | "children"> {
|
|
1121
|
+
/** The registered commands the palette offers. */
|
|
1122
|
+
commands: SlashCommand[];
|
|
1123
|
+
/** The composer's current text — must match what the wrapped textarea renders. */
|
|
1124
|
+
value: string;
|
|
1125
|
+
/** Ref to the composer's `<textarea>` (usually the one `PromptInputSlashTextarea` renders). */
|
|
1126
|
+
textareaRef: RefObject<HTMLTextAreaElement | null>;
|
|
1127
|
+
/**
|
|
1128
|
+
* Only trigger at the start of a line (index 0, or right after `"\n"`).
|
|
1129
|
+
* `false` falls back to `MentionInput`'s word-boundary rule.
|
|
1130
|
+
* @default true
|
|
1131
|
+
*/
|
|
1132
|
+
lineStartOnly?: boolean;
|
|
1133
|
+
/** Which commands survive the current query. @default defaultSlashCommandFilter */
|
|
1134
|
+
filter?: (command: SlashCommand, query: string) => boolean;
|
|
1135
|
+
/**
|
|
1136
|
+
* A command was chosen — apply the spliced `{ text, caret }` to your own
|
|
1137
|
+
* controlled value (the same shape `replaceTriggerRun` returns). The
|
|
1138
|
+
* splice inserts `"/" + command.name + " "` in place of the typed query.
|
|
1139
|
+
*/
|
|
1140
|
+
onValueChange: (next: {
|
|
1141
|
+
text: string;
|
|
1142
|
+
caret: number;
|
|
1143
|
+
}) => void;
|
|
1144
|
+
/** A command was chosen (fires alongside, not instead of, `onValueChange`). */
|
|
1145
|
+
onSelect?: (command: SlashCommand) => void;
|
|
1146
|
+
/** The popup opened or closed. */
|
|
1147
|
+
onOpenChange?: (open: boolean) => void;
|
|
1148
|
+
children: ReactNode;
|
|
1149
|
+
}
|
|
1150
|
+
/**
|
|
1151
|
+
* PromptInputSlash — wrap the composer's textarea (rendered via
|
|
1152
|
+
* `PromptInputSlashTextarea`) to add a `/`-triggered command palette.
|
|
1153
|
+
*
|
|
1154
|
+
* ```tsx
|
|
1155
|
+
* const textareaRef = useRef<HTMLTextAreaElement>(null);
|
|
1156
|
+
* const [text, setText] = useState("");
|
|
1157
|
+
*
|
|
1158
|
+
* <PromptInputSlash
|
|
1159
|
+
* commands={commands}
|
|
1160
|
+
* value={text}
|
|
1161
|
+
* textareaRef={textareaRef}
|
|
1162
|
+
* onValueChange={({ text }) => setText(text)}
|
|
1163
|
+
* >
|
|
1164
|
+
* <PromptInputSlashTextarea value={text} onChange={(e) => setText(e.target.value)} />
|
|
1165
|
+
* </PromptInputSlash>
|
|
1166
|
+
* ```
|
|
1167
|
+
*/
|
|
1168
|
+
declare const PromptInputSlash: react.ForwardRefExoticComponent<PromptInputSlashProps & react.RefAttributes<HTMLDivElement>>;
|
|
1169
|
+
type PromptInputSlashTextareaProps = PromptInputTextareaProps;
|
|
1170
|
+
/**
|
|
1171
|
+
* The composer's `<textarea>`, carrying the combobox semantics the palette
|
|
1172
|
+
* needs. A thin wrapper around `PromptInputTextarea` — every prop you'd pass
|
|
1173
|
+
* that component still works; this one additionally merges in the palette's
|
|
1174
|
+
* `ref`, caret tracking and `aria-activedescendant`.
|
|
1175
|
+
*
|
|
1176
|
+
* Must be rendered inside a `<PromptInputSlash>`.
|
|
1177
|
+
*/
|
|
1178
|
+
declare const PromptInputSlashTextarea: react.ForwardRefExoticComponent<Omit<Omit<_elabs_ai_components_ui.TextareaProps & react.RefAttributes<HTMLTextAreaElement>, "ref"> & react.RefAttributes<HTMLTextAreaElement>, "ref"> & react.RefAttributes<HTMLTextAreaElement>>;
|
|
1179
|
+
|
|
1180
|
+
/**
|
|
1181
|
+
* The slice of `PromptInputModeProps` a `Composer` owns — the vocabulary and
|
|
1182
|
+
* the controlled/uncontrolled seam, never the DOM props of the wrapper div.
|
|
1183
|
+
*
|
|
1184
|
+
* `defaultValue` is deliberately absent: `PromptInputMode` has no uncontrolled
|
|
1185
|
+
* initial-value seam (its uncontrolled default is `modes[0]`), and the
|
|
1186
|
+
* `defaultValue` it inherits from `HTMLAttributes<HTMLDivElement>` is the DOM
|
|
1187
|
+
* attribute, which would type-check and then do nothing. Omit `value` for the
|
|
1188
|
+
* uncontrolled default; pass `value` + `onValueChange` to drive it.
|
|
1189
|
+
*/
|
|
1190
|
+
type ComposerModeProps = Pick<PromptInputModeProps, "modes" | "value" | "onValueChange" | "aria-label">;
|
|
1191
|
+
/**
|
|
1192
|
+
* The slice of `PromptInputEffortProps` a `Composer` owns. `aria-label` stays
|
|
1193
|
+
* REQUIRED, exactly as on the primitive: the name of the scale ("Reasoning
|
|
1194
|
+
* effort", "Thinking budget") is as much the consumer's vocabulary as its
|
|
1195
|
+
* levels are, so `Composer` has no default to invent either. `defaultValue` is
|
|
1196
|
+
* absent for the same reason it is on `ComposerModeProps`.
|
|
1197
|
+
*/
|
|
1198
|
+
type ComposerEffortProps = Pick<PromptInputEffortProps, "levels" | "value" | "onValueChange" | "aria-label">;
|
|
1199
|
+
/**
|
|
1200
|
+
* One shortcut-hint row entry: the physical key(s) plus what they do, shown
|
|
1201
|
+
* as a `Kbd` chip beside a plain-text label — never inside a control's own
|
|
1202
|
+
* name (see `ComposerProps.shortcuts`).
|
|
1203
|
+
*/
|
|
1204
|
+
interface ComposerShortcut {
|
|
1205
|
+
/** Rendered inside a `Kbd` chip, e.g. `"Enter"`, `"Shift+Enter"`. */
|
|
1206
|
+
keys: string;
|
|
1207
|
+
/** What the key does, in a word or two, e.g. `"send"`, `"newline"`. */
|
|
1208
|
+
label: string;
|
|
1209
|
+
}
|
|
802
1210
|
interface ComposerProps {
|
|
803
1211
|
/** Submit handler — receives the assembled message (text + attachments). */
|
|
804
1212
|
onSubmit?: PromptInputProps["onSubmit"];
|
|
@@ -810,18 +1218,72 @@ interface ComposerProps {
|
|
|
810
1218
|
* `null` to hide the strip entirely.
|
|
811
1219
|
*/
|
|
812
1220
|
status?: ReactNode;
|
|
813
|
-
/** Model-selector pill label. Default `"Claude Opus 4"`; pass `null` to hide it. */
|
|
814
|
-
model?: ReactNode;
|
|
815
1221
|
/**
|
|
816
|
-
*
|
|
817
|
-
*
|
|
818
|
-
*
|
|
1222
|
+
* The model control, rendered first in the tools cluster after `attach`.
|
|
1223
|
+
* Pass a `<ModelPicker>` from `@elabs-ai/components-ui` (it is sized to sit
|
|
1224
|
+
* in a composer footer) — or anything else. Default: nothing renders.
|
|
1225
|
+
*
|
|
1226
|
+
* This replaces the old `model` prop, which rendered a static, non-interactive
|
|
1227
|
+
* pill defaulted to a hard-coded model name. A composer that shows a model
|
|
1228
|
+
* name it cannot change is a lie about what the control does; the slot now
|
|
1229
|
+
* takes the real picker instead.
|
|
1230
|
+
*/
|
|
1231
|
+
modelPicker?: ReactNode;
|
|
1232
|
+
/**
|
|
1233
|
+
* App-defined operating mode control — renders a `PromptInputMode` in the
|
|
1234
|
+
* tools cluster. Omitted, nothing renders. `brand-ui` ships no mode
|
|
1235
|
+
* vocabulary: `modes` is entirely yours.
|
|
1236
|
+
*/
|
|
1237
|
+
mode?: ComposerModeProps;
|
|
1238
|
+
/**
|
|
1239
|
+
* Ordered reasoning-effort control — renders a `PromptInputEffort` in the
|
|
1240
|
+
* tools cluster. Omitted, nothing renders. `levels` is ordered low → high
|
|
1241
|
+
* and is entirely yours; `aria-label` names the scale.
|
|
1242
|
+
*/
|
|
1243
|
+
effort?: ComposerEffortProps;
|
|
1244
|
+
/**
|
|
1245
|
+
* Slash-command palette. When set (and non-empty) the textarea becomes a
|
|
1246
|
+
* `PromptInputSlashTextarea` wrapped in a `PromptInputSlash`, so typing `/`
|
|
1247
|
+
* at the start of a line opens a filtered command list — nothing else about
|
|
1248
|
+
* the composer changes.
|
|
1249
|
+
*
|
|
1250
|
+
* Note this makes the textarea REACT-CONTROLLED (the palette needs to read
|
|
1251
|
+
* and splice the text), which is why `Composer` clears its own copy of the
|
|
1252
|
+
* text on submit: `PromptInput`'s `form.reset()` reaches the DOM node, not
|
|
1253
|
+
* React state.
|
|
1254
|
+
*/
|
|
1255
|
+
slashCommands?: PromptInputSlashProps["commands"];
|
|
1256
|
+
/** Fires with the chosen slash command (alongside the text splice). */
|
|
1257
|
+
onSlashCommand?: PromptInputSlashProps["onSelect"];
|
|
1258
|
+
/**
|
|
1259
|
+
* Override the DEFAULT tool buttons (today: the attach button) — e.g. to add
|
|
1260
|
+
* a web-search or connect-data control. Render `PromptInputButton`s /
|
|
1261
|
+
* `PromptInputActionMenu` here; when set, `showAttach` is ignored.
|
|
1262
|
+
*
|
|
1263
|
+
* The explicit `modelPicker` / `mode` / `effort` slots are NOT part of this
|
|
1264
|
+
* override — they render after whatever this puts in the cluster, so passing
|
|
1265
|
+
* `tools` can never silently swallow a control you asked for by name.
|
|
819
1266
|
*/
|
|
820
1267
|
tools?: ReactNode;
|
|
821
1268
|
/** Send-button state, forwarded to `PromptInputSubmit` (ready/submitted/streaming/error). */
|
|
822
1269
|
sendStatus?: ComponentProps<typeof PromptInputSubmit>["status"];
|
|
823
1270
|
/** Stop handler used while the send button shows the generating state. */
|
|
824
1271
|
onStop?: ComponentProps<typeof PromptInputSubmit>["onStop"];
|
|
1272
|
+
/**
|
|
1273
|
+
* Keyboard-shortcut hints shown as a row beneath the input well — plain
|
|
1274
|
+
* `Kbd` + label pairs, e.g. `[{ keys: "Enter", label: "send" }]`. Omitted,
|
|
1275
|
+
* nothing renders (opt-in, like every other Composer slot); the row is
|
|
1276
|
+
* never invented, since the real bindings are the host app's.
|
|
1277
|
+
*/
|
|
1278
|
+
shortcuts?: ComposerShortcut[];
|
|
1279
|
+
/**
|
|
1280
|
+
* A second, busy-only hint appended to `shortcuts` (#107) — shown ONLY
|
|
1281
|
+
* once the composer is actually generating (`sendStatus` is `"submitted"`
|
|
1282
|
+
* or `"streaming"`) AND a real `onStop` handler is set, so the hint never
|
|
1283
|
+
* describes an affordance that isn't there. Mirrors
|
|
1284
|
+
* `TerminalComposer`'s `canCancel = busy && Boolean(onStop)` shape.
|
|
1285
|
+
*/
|
|
1286
|
+
cancelShortcut?: ComposerShortcut;
|
|
825
1287
|
/**
|
|
826
1288
|
* Extra props spread onto the send button — `disabled`, `aria-label`,
|
|
827
1289
|
* `variant`, `id`, `className`. `status` and `onStop` are excluded because
|
|
@@ -837,7 +1299,8 @@ interface ComposerProps {
|
|
|
837
1299
|
* user's text destroyed, with nothing to restore from. Disabling the control
|
|
838
1300
|
* is what actually prevents it: `PromptInputTextarea`'s Enter handler checks
|
|
839
1301
|
* `submitControl?.disabled` and bails before `requestSubmit()`, so the Enter
|
|
840
|
-
* path is closed too, not just the click.
|
|
1302
|
+
* path is closed too, not just the click. It holds with a slash palette open
|
|
1303
|
+
* as well — the palette's own Enter handling only ever inserts a command.
|
|
841
1304
|
*
|
|
842
1305
|
* Leave it UNSET rather than passing `false` when you have no opinion —
|
|
843
1306
|
* `PromptInputSubmit` resolves `disabled ?? autoDisabled`, so a literal
|
|
@@ -870,9 +1333,9 @@ interface ComposerProps {
|
|
|
870
1333
|
* Composer — the standard brand-ui AI chat input.
|
|
871
1334
|
*
|
|
872
1335
|
* A rounded two-tone "double card": a status strip wrapping a recessed
|
|
873
|
-
* `PromptInput` well (sharp top, theme-rounded bottom), a
|
|
874
|
-
* and a circular send. Built on the real `PromptInput`, so it drops
|
|
875
|
-
* `ChatShell` footer or stands alone as an empty-state composer. `tone`
|
|
1336
|
+
* `PromptInput` well (sharp top, theme-rounded bottom), a tools cluster,
|
|
1337
|
+
* voice, and a circular send. Built on the real `PromptInput`, so it drops
|
|
1338
|
+
* into a `ChatShell` footer or stands alone as an empty-state composer. `tone`
|
|
876
1339
|
* (default `"surface"`, unchanged) picks the arrangement: `"surface"` keeps
|
|
877
1340
|
* the original outer `bg-card` frame around the standard muted well;
|
|
878
1341
|
* `"card"` (#254) swaps to an outer `bg-surface-muted` frame around a
|
|
@@ -881,10 +1344,16 @@ interface ComposerProps {
|
|
|
881
1344
|
* `tone` prop doc on `PromptInput`. Semantic tokens only; theme-aware radii
|
|
882
1345
|
* (`rounded-xl` frame / `rounded-b-lg` well); reads in every theme.
|
|
883
1346
|
*
|
|
884
|
-
*
|
|
885
|
-
* `PromptInput`
|
|
1347
|
+
* **Composer is the chat input. Every control the `PromptInput` family ships
|
|
1348
|
+
* is reachable from a `Composer` prop; drop to `PromptInput` only for a
|
|
1349
|
+
* bespoke shell.** `modelPicker`, `mode`, `effort` and `slashCommands` are the
|
|
1350
|
+
* four slots that make that true — they render `ModelPicker`,
|
|
1351
|
+
* `PromptInputMode`, `PromptInputEffort` and `PromptInputSlash` respectively,
|
|
1352
|
+
* in the footer order `attach · modelPicker · mode · effort │ voice · send`
|
|
1353
|
+
* (the same left-to-right arrangement `TerminalComposer` uses, so the chat and
|
|
1354
|
+
* console skins agree).
|
|
886
1355
|
*/
|
|
887
|
-
declare function Composer({ onSubmit, placeholder, status,
|
|
1356
|
+
declare function Composer({ onSubmit, placeholder, status, modelPicker, mode, effort, slashCommands, onSlashCommand, tools, sendStatus, onStop, submitProps, shortcuts, cancelShortcut, suggestions, onSuggestionClick, showVoice, showAttach, tone, className, }: ComposerProps): react.JSX.Element;
|
|
888
1357
|
|
|
889
1358
|
type ToolUIPartApproval = {
|
|
890
1359
|
id: string;
|
|
@@ -962,50 +1431,77 @@ declare const ApprovalCardApprove: (props: ConfirmationApproveProps) => react.JS
|
|
|
962
1431
|
type ApprovalCardApproveProps = ConfirmationApproveProps;
|
|
963
1432
|
declare const ApprovalCardDeny: (props: ConfirmationDenyProps) => react.JSX.Element;
|
|
964
1433
|
type ApprovalCardDenyProps = ConfirmationDenyProps;
|
|
1434
|
+
/**
|
|
1435
|
+
* `ApprovalScope`, `ApprovalOption` and `APPROVAL_SCOPE_DESCRIPTION_KEYS`
|
|
1436
|
+
* moved to `@elabs-ai/components-ui` (`lib/approval-option.ts`) — the
|
|
1437
|
+
* terminal CLI look-alike family's own permission row (issue #117) reuses
|
|
1438
|
+
* the same model, and `@elabs-ai/components-ai`/`@elabs-ai/components-terminal`
|
|
1439
|
+
* are layer-2 DAG siblings that may not import each other (T0; see
|
|
1440
|
+
* docs/decisions/2026-09-01-brainless-adoption-architecture.md § 4). Imported
|
|
1441
|
+
* above.
|
|
1442
|
+
*/
|
|
1443
|
+
interface ApprovalCardOptionsProps extends ComponentProps<"div"> {
|
|
1444
|
+
options: ApprovalOption[];
|
|
1445
|
+
value?: string;
|
|
1446
|
+
defaultValue?: string;
|
|
1447
|
+
onValueChange?: (id: string) => void;
|
|
1448
|
+
/**
|
|
1449
|
+
* Fires when an option is selected — by click, or by ANY keyboard move
|
|
1450
|
+
* within the radio group (Home/End/arrow keys select immediately, per the
|
|
1451
|
+
* native/ARIA radiogroup pattern Radix implements; there is no separate
|
|
1452
|
+
* "highlight vs commit" step). Reports the full resolved `ApprovalOption`
|
|
1453
|
+
* plus whatever reason text is currently held by a sibling
|
|
1454
|
+
* `ApprovalCardReason` — type a reason BEFORE choosing an option to have it
|
|
1455
|
+
* included in this call.
|
|
1456
|
+
*/
|
|
1457
|
+
onConfirm?: (option: ApprovalOption, reason?: string) => void;
|
|
1458
|
+
}
|
|
1459
|
+
/**
|
|
1460
|
+
* ApprovalCardOptions — the N-option, scoped decision (#103). Renders through
|
|
1461
|
+
* `@elabs-ai/components-ui`'s `RadioGroup` (Radix) for roving focus, arrow-key
|
|
1462
|
+
* wrap, Home/End and announcement — never a hand-rolled
|
|
1463
|
+
* `parentElement.children[i]` focus walk. Composed inside `ApprovalCardRequest`,
|
|
1464
|
+
* alongside the existing `ApprovalCardTitle`/`ApprovalCardDescription`.
|
|
1465
|
+
*/
|
|
1466
|
+
declare const ApprovalCardOptions: react.ForwardRefExoticComponent<Omit<ApprovalCardOptionsProps, "ref"> & react.RefAttributes<HTMLDivElement>>;
|
|
1467
|
+
type ApprovalCardTargetProps = ComponentProps<"div">;
|
|
1468
|
+
/**
|
|
1469
|
+
* ApprovalCardTarget — the preview slot for WHAT is being approved: a
|
|
1470
|
+
* command, a path, or a richer node such as a `DiffView` (#102). Accepts
|
|
1471
|
+
* arbitrary children — this file never imports `DiffView`, the composition
|
|
1472
|
+
* happens entirely in the consumer's tree. Ungated by state (unlike
|
|
1473
|
+
* `ApprovalCardRequest`/`Accepted`/`Rejected`): the subject of a decision
|
|
1474
|
+
* stays visible after it resolves, not only while pending.
|
|
1475
|
+
*/
|
|
1476
|
+
declare const ApprovalCardTarget: react.ForwardRefExoticComponent<Omit<react.DetailedHTMLProps<react.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & react.RefAttributes<HTMLDivElement>>;
|
|
1477
|
+
type ApprovalCardReasonProps = Omit<ComponentProps<typeof Textarea>, "value" | "defaultValue" | "onChange">;
|
|
1478
|
+
/**
|
|
1479
|
+
* ApprovalCardReason — the deny-with-reason input, wired to the `reason`
|
|
1480
|
+
* field that already exists on `ToolUIPartApproval` and was previously
|
|
1481
|
+
* unreachable from the UI. Shares its value with `ApprovalCardOptions`
|
|
1482
|
+
* through `Confirmation`'s own context (not a prop threaded between the two
|
|
1483
|
+
* sibling parts) — type here BEFORE choosing an option to have the text
|
|
1484
|
+
* included in that option's `onConfirm` call.
|
|
1485
|
+
*/
|
|
1486
|
+
declare const ApprovalCardReason: react.ForwardRefExoticComponent<Omit<ApprovalCardReasonProps, "ref"> & react.RefAttributes<HTMLTextAreaElement>>;
|
|
965
1487
|
|
|
966
1488
|
declare const Connection: ConnectionLineComponent;
|
|
967
1489
|
|
|
968
|
-
type ModelId = string;
|
|
969
|
-
interface ContextSchema {
|
|
970
|
-
usedTokens: number;
|
|
971
|
-
maxTokens: number;
|
|
972
|
-
usage?: LanguageModelUsage;
|
|
973
|
-
modelId?: ModelId;
|
|
974
|
-
}
|
|
975
|
-
type ContextProps = ComponentProps<typeof HoverCard> & ContextSchema;
|
|
976
|
-
declare const Context: ({ usedTokens, maxTokens, usage, modelId, ...props }: ContextProps) => react.JSX.Element;
|
|
977
|
-
type ContextTriggerProps = ComponentProps<typeof Button>;
|
|
978
|
-
declare const ContextTrigger: ({ children, ...props }: ContextTriggerProps) => react.JSX.Element;
|
|
979
|
-
type ContextContentProps = ComponentProps<typeof HoverCardContent>;
|
|
980
|
-
declare const ContextContent: ({ className, ...props }: ContextContentProps) => react.JSX.Element;
|
|
981
|
-
type ContextContentHeaderProps = ComponentProps<"div">;
|
|
982
|
-
declare const ContextContentHeader: ({ children, className, ...props }: ContextContentHeaderProps) => react.JSX.Element;
|
|
983
|
-
type ContextContentBodyProps = ComponentProps<"div">;
|
|
984
|
-
declare const ContextContentBody: ({ children, className, ...props }: ContextContentBodyProps) => react.JSX.Element;
|
|
985
|
-
type ContextContentFooterProps = ComponentProps<"div">;
|
|
986
|
-
declare const ContextContentFooter: ({ children, className, ...props }: ContextContentFooterProps) => react.JSX.Element;
|
|
987
|
-
type ContextInputUsageProps = ComponentProps<"div">;
|
|
988
|
-
declare const ContextInputUsage: ({ className, children, ...props }: ContextInputUsageProps) => string | number | bigint | true | Iterable<react.ReactNode> | Promise<string | number | bigint | boolean | react.ReactPortal | react.ReactElement<unknown, string | react.JSXElementConstructor<any>> | Iterable<react.ReactNode> | null | undefined> | react.JSX.Element | null;
|
|
989
|
-
type ContextOutputUsageProps = ComponentProps<"div">;
|
|
990
|
-
declare const ContextOutputUsage: ({ className, children, ...props }: ContextOutputUsageProps) => string | number | bigint | true | Iterable<react.ReactNode> | Promise<string | number | bigint | boolean | react.ReactPortal | react.ReactElement<unknown, string | react.JSXElementConstructor<any>> | Iterable<react.ReactNode> | null | undefined> | react.JSX.Element | null;
|
|
991
|
-
type ContextReasoningUsageProps = ComponentProps<"div">;
|
|
992
|
-
declare const ContextReasoningUsage: ({ className, children, ...props }: ContextReasoningUsageProps) => string | number | bigint | true | Iterable<react.ReactNode> | Promise<string | number | bigint | boolean | react.ReactPortal | react.ReactElement<unknown, string | react.JSXElementConstructor<any>> | Iterable<react.ReactNode> | null | undefined> | react.JSX.Element | null;
|
|
993
|
-
type ContextCacheUsageProps = ComponentProps<"div">;
|
|
994
|
-
declare const ContextCacheUsage: ({ className, children, ...props }: ContextCacheUsageProps) => string | number | bigint | true | Iterable<react.ReactNode> | Promise<string | number | bigint | boolean | react.ReactPortal | react.ReactElement<unknown, string | react.JSXElementConstructor<any>> | Iterable<react.ReactNode> | null | undefined> | react.JSX.Element | null;
|
|
995
|
-
|
|
996
1490
|
type ControlsProps = ComponentProps<typeof Controls$1>;
|
|
997
1491
|
declare const Controls: (props: ControlsProps) => react.JSX.Element;
|
|
998
1492
|
|
|
999
1493
|
type ConversationProps = ComponentProps<typeof StickToBottom>;
|
|
1000
1494
|
declare const Conversation: ({ className, ...props }: ConversationProps) => react.JSX.Element;
|
|
1001
1495
|
type ConversationContentProps = ComponentProps<typeof StickToBottom.Content>;
|
|
1002
|
-
declare const ConversationContent: ({ className, ...props }: ConversationContentProps) => react.JSX.Element;
|
|
1496
|
+
declare const ConversationContent: ({ className, scrollClassName, ...props }: ConversationContentProps) => react.JSX.Element;
|
|
1003
1497
|
type ConversationEmptyStateProps = ComponentProps<"div"> & {
|
|
1004
1498
|
title?: string;
|
|
1005
1499
|
description?: string;
|
|
1006
1500
|
icon?: React.ReactNode;
|
|
1501
|
+
/** Primary / secondary action(s) below the description (e.g. suggested prompts). */
|
|
1502
|
+
actions?: React.ReactNode;
|
|
1007
1503
|
};
|
|
1008
|
-
declare const ConversationEmptyState: ({ className, title, description, icon, children, ...props }: ConversationEmptyStateProps) => react.JSX.Element;
|
|
1504
|
+
declare const ConversationEmptyState: ({ className, title, description, icon, actions, children, ...props }: ConversationEmptyStateProps) => react.JSX.Element;
|
|
1009
1505
|
type ConversationScrollButtonProps = ComponentProps<typeof Button>;
|
|
1010
1506
|
declare const ConversationScrollButton: ({ className, ...props }: ConversationScrollButtonProps) => false | react.JSX.Element;
|
|
1011
1507
|
type ConversationDownloadProps = Omit<ComponentProps<typeof Button>, "onClick"> & {
|
|
@@ -1016,6 +1512,48 @@ type ConversationDownloadProps = Omit<ComponentProps<typeof Button>, "onClick">
|
|
|
1016
1512
|
declare const messagesToMarkdown: (messages: UIMessage[], formatMessage?: (message: UIMessage, index: number) => string) => string;
|
|
1017
1513
|
declare const ConversationDownload: ({ messages, filename, formatMessage, className, children, ...props }: ConversationDownloadProps) => react.JSX.Element;
|
|
1018
1514
|
|
|
1515
|
+
interface DiffViewProps extends Omit<ComponentProps<"div">, "children"> {
|
|
1516
|
+
/** The diff, as a flat, ordered line list. */
|
|
1517
|
+
lines: DiffLine[];
|
|
1518
|
+
/** File path shown in the header. */
|
|
1519
|
+
file?: string;
|
|
1520
|
+
/** One-line summary shown beside the file name. */
|
|
1521
|
+
summary?: string;
|
|
1522
|
+
/** Added / removed line counts shown in the header. */
|
|
1523
|
+
stats?: {
|
|
1524
|
+
additions: number;
|
|
1525
|
+
deletions: number;
|
|
1526
|
+
};
|
|
1527
|
+
/** `inline` = unified single column; `split` = side-by-side. @default "inline" */
|
|
1528
|
+
variant?: "inline" | "split";
|
|
1529
|
+
/**
|
|
1530
|
+
* Full-screen reading surface: a scrollable region with a scroll-position
|
|
1531
|
+
* indicator, a key legend (↑/↓, Page Up/Down, Home/End), and a named
|
|
1532
|
+
* `role="region"`. Absorbs the upstream `CodexDiff` pager shape — this
|
|
1533
|
+
* prop, not a second component.
|
|
1534
|
+
*/
|
|
1535
|
+
pager?: boolean;
|
|
1536
|
+
/** Shiki language id for intra-line syntax colour. Omit to render plain text. */
|
|
1537
|
+
language?: BundledLanguage;
|
|
1538
|
+
/** Collapse a run of consecutive `context` lines longer than this behind a "show more" control. */
|
|
1539
|
+
contextLines?: number;
|
|
1540
|
+
/** Hard cap on rendered lines. Extra lines are simply not rendered. */
|
|
1541
|
+
maxLines?: number;
|
|
1542
|
+
/** No renderable diff yet (loading-states.md) — layout-shaped skeleton rows at the real row height. */
|
|
1543
|
+
loading?: boolean;
|
|
1544
|
+
/** Lines are still arriving (loading-states.md) — render what exists; never an error surface. */
|
|
1545
|
+
isStreaming?: boolean;
|
|
1546
|
+
}
|
|
1547
|
+
/**
|
|
1548
|
+
* The row's fill-rung tint — the THIRD, redundant cue (accessibility.md /
|
|
1549
|
+
* styling-and-tokens.md). Never the only signal: every `add`/`del` row also
|
|
1550
|
+
* carries a marker glyph (shape) and an `sr-only` polarity word (name).
|
|
1551
|
+
*/
|
|
1552
|
+
declare const diffRowVariants: (props?: ({
|
|
1553
|
+
type?: "meta" | "del" | "add" | "context" | "hunk" | null | undefined;
|
|
1554
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
1555
|
+
declare const DiffView: react.ForwardRefExoticComponent<Omit<DiffViewProps, "ref"> & react.RefAttributes<HTMLDivElement>>;
|
|
1556
|
+
|
|
1019
1557
|
declare const Edge: {
|
|
1020
1558
|
Animated: (props: EdgeProps) => react.JSX.Element;
|
|
1021
1559
|
Temporary: (props: EdgeProps) => react.JSX.Element;
|
|
@@ -1319,7 +1857,7 @@ type ImageProps = Experimental_GeneratedImage & Omit<ImgHTMLAttributes<HTMLImage
|
|
|
1319
1857
|
showSkeleton?: boolean;
|
|
1320
1858
|
};
|
|
1321
1859
|
/** `<img>` wrapper for an AI-SDK generated image, with a decode-aware skeleton. */
|
|
1322
|
-
declare const Image: react.ForwardRefExoticComponent<
|
|
1860
|
+
declare const Image: react.ForwardRefExoticComponent<ai.GeneratedFile & Omit<ImgHTMLAttributes<HTMLImageElement>, "src"> & {
|
|
1323
1861
|
/**
|
|
1324
1862
|
* Show a Skeleton placeholder (loading-states.md) until the img element
|
|
1325
1863
|
* finishes decoding, so the base64 payload does not pop in. Requires
|
|
@@ -1396,78 +1934,6 @@ declare const InlineCitationSource: ({ title, url, description, className, child
|
|
|
1396
1934
|
type InlineCitationQuoteProps = ComponentProps<"blockquote">;
|
|
1397
1935
|
declare const InlineCitationQuote: ({ children, className, ...props }: InlineCitationQuoteProps) => react.JSX.Element;
|
|
1398
1936
|
|
|
1399
|
-
interface InteractiveTerminalHandle {
|
|
1400
|
-
/** Process → screen. ANSI passthrough (colors, cursor movement, clears, …). */
|
|
1401
|
-
write(data: string): void;
|
|
1402
|
-
/** Clears the viewport + scrollback. */
|
|
1403
|
-
clear(): void;
|
|
1404
|
-
/** Re-fits cols/rows to the current container size. */
|
|
1405
|
-
fit(): void;
|
|
1406
|
-
/** Focuses the terminal's input surface. */
|
|
1407
|
-
focus(): void;
|
|
1408
|
-
}
|
|
1409
|
-
interface InteractiveTerminalProps extends Omit<HTMLAttributes<HTMLDivElement>, "onResize"> {
|
|
1410
|
-
/** Keystrokes + paste → process. The PTY/process stays consumer-owned. */
|
|
1411
|
-
onData?: (data: string) => void;
|
|
1412
|
-
/** Fires whenever the container resizes and cols/rows are refit. */
|
|
1413
|
-
onResize?: (size: {
|
|
1414
|
-
cols: number;
|
|
1415
|
-
rows: number;
|
|
1416
|
-
}) => void;
|
|
1417
|
-
/** Degrades to a read-only log: writes still render, stdin is disabled. */
|
|
1418
|
-
readOnly?: boolean;
|
|
1419
|
-
/** Terminal font size in px. Defaults to `13` (matches `CodeEditor`). */
|
|
1420
|
-
fontSize?: number;
|
|
1421
|
-
/** Accessible name for the terminal's real focusable surface. Required. */
|
|
1422
|
-
"aria-label": string;
|
|
1423
|
-
}
|
|
1424
|
-
/**
|
|
1425
|
-
* Builds xterm's `ITheme` from the active theme's semantic tokens, resolved
|
|
1426
|
-
* off `rootEl` (defaults to `<html>`, where `data-theme` lives).
|
|
1427
|
-
*
|
|
1428
|
-
* ANSI mapping (documented so the intent is auditable, not guessed at):
|
|
1429
|
-
* - background/foreground → `--card`/`--foreground` (the terminal reads as a
|
|
1430
|
-
* raised panel, matching the existing `Terminal` log's bordered-box look).
|
|
1431
|
-
* - cursor → `--primary`; cursorAccent → the background, so glyphs stay
|
|
1432
|
-
* legible under a solid block cursor.
|
|
1433
|
-
* - selectionBackground → a low-alpha `--primary` wash.
|
|
1434
|
-
* - red/green/yellow/blue → the AA-tuned `-text` variants (`--destructive-text`,
|
|
1435
|
-
* `--success-text`, `--warning-text`, `--info-text`) — these are the ones
|
|
1436
|
-
* tuned to read as TEXT on a surface, which is exactly what ANSI color codes
|
|
1437
|
-
* paint. `bright*` variants use the more saturated fill tokens
|
|
1438
|
-
* (`--destructive`, `--success`, `--warning`, `--info`).
|
|
1439
|
-
* - magenta/cyan → `--chart-4`/`--chart-2` (no dedicated fill/text pair, so the
|
|
1440
|
-
* `bright*` siblings are the same hue pushed AWAY from the background).
|
|
1441
|
-
* - black/white are `background`/`foreground` RUNGS, not the tokens
|
|
1442
|
-
* themselves: `black` = the terminal's own background (the common "ANSI
|
|
1443
|
-
* black" convention — invisible ink), `brightBlack` = `--border-strong`
|
|
1444
|
-
* (a dim ink for comments/hashes), `white` = `--muted-foreground` (a dimmer
|
|
1445
|
-
* ink), `brightWhite` = `--foreground` (full ink).
|
|
1446
|
-
*
|
|
1447
|
-
* EVERY slot above except `black` then passes through `readableInk()` — the AA
|
|
1448
|
-
* floor (#386). The mapping picks the token that carries the right MEANING; the
|
|
1449
|
-
* floor guarantees the resulting ink is legible on this terminal's actual
|
|
1450
|
-
* background. Several of these tokens are mark/fill rungs (≥3:1 only), so
|
|
1451
|
-
* without the floor EVERY palette this repo ships had sub-AA ANSI slots —
|
|
1452
|
-
* measured from `themes.css`: `:root` 7 (worst 2.39:1), `light` 4 (worst
|
|
1453
|
-
* 2.91:1), `dark` 1 (3.16:1). Re-derived on every
|
|
1454
|
-
* run by `interactive-terminal.test.tsx`, which parses those palettes out of
|
|
1455
|
-
* `themes.css` rather than hard-coding them. Keep new slots inside `ink(...)`;
|
|
1456
|
-
* a raw token assigned straight to an ANSI slot is the bug.
|
|
1457
|
-
*/
|
|
1458
|
-
declare function buildInteractiveTerminalTheme(rootEl?: Element | null): ITheme;
|
|
1459
|
-
/**
|
|
1460
|
-
* A token-themed, PTY-ready terminal emulator wrapped as a brand-ui component.
|
|
1461
|
-
* Wraps xterm.js + `FitAddon`; the process itself is consumer-owned — this
|
|
1462
|
-
* component only renders ANSI output and emits `onData`/`onResize`.
|
|
1463
|
-
*
|
|
1464
|
-
* Keyboard: the terminal's real focusable surface is xterm's own input
|
|
1465
|
-
* textarea (reachable by Tab like any control). Tab/Shift-Tab and Escape are
|
|
1466
|
-
* explicitly let through (`attachCustomKeyEventHandler`) so focus can always
|
|
1467
|
-
* leave the terminal — there is no keyboard trap.
|
|
1468
|
-
*/
|
|
1469
|
-
declare const InteractiveTerminal: react.ForwardRefExoticComponent<InteractiveTerminalProps & react.RefAttributes<InteractiveTerminalHandle>>;
|
|
1470
|
-
|
|
1471
1937
|
/**
|
|
1472
1938
|
* The readiness of the preview, derived from the input (see loading-states.md):
|
|
1473
1939
|
* - `idle` — nothing requested yet (empty input, never rendered). Renders nothing.
|
|
@@ -1577,15 +2043,103 @@ declare const createLazyMermaidPlugin: (options?: {
|
|
|
1577
2043
|
*/
|
|
1578
2044
|
declare const lazyMermaid: DiagramPlugin;
|
|
1579
2045
|
|
|
1580
|
-
|
|
2046
|
+
type StreamdownComponents = NonNullable<ComponentProps<typeof Streamdown>["components"]>;
|
|
2047
|
+
type StreamdownPlugins = ComponentProps<typeof Streamdown>["plugins"];
|
|
2048
|
+
interface MarkdownViewProps extends Omit<ComponentProps<typeof Streamdown>, "components" | "plugins" | "rehypePlugins"> {
|
|
1581
2049
|
/**
|
|
1582
2050
|
* The prose level a markdown `#` maps to; deeper headings shift with it
|
|
1583
2051
|
* (capped at 6). Default `1` (the full reading scale). Pass `2` in narrow
|
|
1584
2052
|
* embeds (a context rail) so headings stay on the constrained rung.
|
|
1585
2053
|
*/
|
|
1586
2054
|
baseHeadingLevel?: ProseHeadingLevel;
|
|
2055
|
+
/**
|
|
2056
|
+
* Per-element renderer overrides, MERGED over the internal Prose* map
|
|
2057
|
+
* (#10) — a consumer entry wins for its key; every key the consumer does
|
|
2058
|
+
* NOT set keeps rendering through `buildProseComponents()`. This is the
|
|
2059
|
+
* seam for rendering inline citations: override `a` (or a custom node
|
|
2060
|
+
* type) to swap a `[1](url)`-style marker for an `InlineCitation` chip
|
|
2061
|
+
* while headings/lists/etc. keep the branded prose styling.
|
|
2062
|
+
*
|
|
2063
|
+
* Deliberately a MERGE, not a replace: sanitisation is unaffected either
|
|
2064
|
+
* way (see `plugins` below), but a wholesale replace would silently drop
|
|
2065
|
+
* the branded styling from every element the consumer didn't think to
|
|
2066
|
+
* re-declare — a citation override should not have to also re-implement
|
|
2067
|
+
* headings/lists/code to keep them on-brand.
|
|
2068
|
+
*
|
|
2069
|
+
* **Known constraint: a `components` change alone does not force a
|
|
2070
|
+
* re-render of already-rendered markdown (#10).** Streamdown memoizes on
|
|
2071
|
+
* `children`/`plugins`/theme/etc but NOT on `components`
|
|
2072
|
+
* (`streamdown@2.5.0`'s top-level `memo` comparator omits it), so if the
|
|
2073
|
+
* SAME markdown string is still current when an override's closed-over
|
|
2074
|
+
* data changes — e.g. an inline-citation chip that resolves its title
|
|
2075
|
+
* asynchronously — the new render function is captured but nothing
|
|
2076
|
+
* schedules Streamdown to call it again. Don't rely on a `components`
|
|
2077
|
+
* closure to reflect state that arrives after the initial render; instead
|
|
2078
|
+
* have the overriding component read that state itself (a shared context,
|
|
2079
|
+
* a store keyed by citation id, or an internal `useState`/subscription
|
|
2080
|
+
* inside the override) so IT re-renders independently of `MarkdownView`'s
|
|
2081
|
+
* own render pass — the pattern `InlineCitation`/`InlineCitationCard`
|
|
2082
|
+
* already use.
|
|
2083
|
+
*/
|
|
2084
|
+
components?: StreamdownComponents;
|
|
2085
|
+
/**
|
|
2086
|
+
* Streamdown plugin-slot overrides (`cjk`/`code`/`math`/`mermaid`/
|
|
2087
|
+
* `renderers`), MERGED per key over the internal defaults (the reactive,
|
|
2088
|
+
* brand-token-derived `code` plugin and i18n-aware `cjk`/`math`/`mermaid`
|
|
2089
|
+
* set — see `_streamdown-i18n.ts`).
|
|
2090
|
+
*
|
|
2091
|
+
* **This narrow `plugins` prop can only APPEND — it can never displace
|
|
2092
|
+
* Streamdown's default `rehypePlugins` chain** (`rehype-raw` →
|
|
2093
|
+
* `rehype-sanitize` → `rehype-harden`). `MarkdownView` never sets
|
|
2094
|
+
* `rehypePlugins` itself, and nothing in `PluginConfig` removes or replaces
|
|
2095
|
+
* a member of that pipeline, so the sanitiser cannot be turned off through
|
|
2096
|
+
* this prop. But two of the five slots are **not** upstream of it and must
|
|
2097
|
+
* be treated as trusted code:
|
|
2098
|
+
* - **`math.rehypePlugin` runs AFTER `rehype-sanitize`/`rehype-harden`**
|
|
2099
|
+
* (appended to the end of the rehype pipeline, verified against
|
|
2100
|
+
* `streamdown@2.5.0`'s `dist/chunk-BO2N2NFS.js`) — its output is never
|
|
2101
|
+
* re-sanitised.
|
|
2102
|
+
* - **`mermaid` never enters the rehype/remark pipeline at all.** Its
|
|
2103
|
+
* `getMermaid().render()` result is written via
|
|
2104
|
+
* `dangerouslySetInnerHTML` (streamdown's only such sink). brand-ui's own
|
|
2105
|
+
* `useStreamdownPlugins()` default pins `securityLevel: "strict"`
|
|
2106
|
+
* (`_lazy-mermaid.ts`); a replacement `mermaid` plugin must sanitise its
|
|
2107
|
+
* own SVG output the same way.
|
|
2108
|
+
* - `cjk` (remark-stage only — its output is re-sanitised downstream by
|
|
2109
|
+
* the rehype pipeline like any other remark result), `code` (feeds only
|
|
2110
|
+
* `shikiTheme`, no HTML injection) and `renderers` (ordinary React
|
|
2111
|
+
* components rendered with the fenced block's raw `code` string as a
|
|
2112
|
+
* `string` prop, the same trusted-component boundary as a `components`
|
|
2113
|
+
* override) do not bypass sanitisation.
|
|
2114
|
+
*
|
|
2115
|
+
* **`rehypePlugins` is NOT exposed on this component (#36, fixed).** Unlike
|
|
2116
|
+
* `plugins`, a caller-supplied `rehypePlugins` array would REPLACE
|
|
2117
|
+
* Streamdown's default rehype pipeline wholesale rather than extending it,
|
|
2118
|
+
* silently dropping `rehype-raw`/`rehype-sanitize`/`rehype-harden` and
|
|
2119
|
+
* letting a plain markdown string execute script in the host page — so
|
|
2120
|
+
* `MarkdownViewProps` `Omit`s it at the type level AND
|
|
2121
|
+
* `stripSanitizerOverrides()` deletes it at runtime before the `{...props}`
|
|
2122
|
+
* spread below, even if a JS consumer or a cast reaches this component with
|
|
2123
|
+
* it set. If you need to widen sanitisation, use
|
|
2124
|
+
* `allowedTags`/`literalTagContent`, which MERGE into the sanitize schema
|
|
2125
|
+
* instead of replacing the pipeline. See
|
|
2126
|
+
* `packages/ai/src/_streamdown-safety.ts`.
|
|
2127
|
+
*
|
|
2128
|
+
* **`remarkPlugins` IS supported** (PR #74 review, round 1 — the original
|
|
2129
|
+
* #36 fix over-reached and removed it too). The remark stage runs strictly
|
|
2130
|
+
* upstream of the rehype chain, and Streamdown builds its rehype list
|
|
2131
|
+
* without reading `remarkPlugins`, so everything a remark plugin emits is
|
|
2132
|
+
* still sanitised downstream — measured across raw-`html` mdast nodes,
|
|
2133
|
+
* `data.hName`/`hChildren` hast elements, `hProperties` event handlers,
|
|
2134
|
+
* `javascript:` link URLs and smuggled `raw` hast children. Note the
|
|
2135
|
+
* ordinary (non-security) footgun: your array REPLACES Streamdown's own
|
|
2136
|
+
* remark defaults (`remark-gfm`, `codeMeta`), so spread
|
|
2137
|
+
* `Object.values(defaultRemarkPlugins)` from `streamdown` back in if you
|
|
2138
|
+
* want to keep GFM tables/strikethrough.
|
|
2139
|
+
*/
|
|
2140
|
+
plugins?: StreamdownPlugins;
|
|
1587
2141
|
}
|
|
1588
|
-
declare const MarkdownView: ({ baseHeadingLevel, className, children, ...props }: MarkdownViewProps) => react.JSX.Element;
|
|
2142
|
+
declare const MarkdownView: ({ baseHeadingLevel, className, children, components: componentOverrides, plugins: pluginOverrides, ...props }: MarkdownViewProps) => react.JSX.Element;
|
|
1589
2143
|
|
|
1590
2144
|
type MessageProps = HTMLAttributes<HTMLDivElement> & {
|
|
1591
2145
|
from: UIMessage["role"];
|
|
@@ -1694,7 +2248,19 @@ type MessageBranchNextProps = ComponentProps<typeof Button>;
|
|
|
1694
2248
|
declare const MessageBranchNext: ({ children, ...props }: MessageBranchNextProps) => react.JSX.Element;
|
|
1695
2249
|
type MessageBranchPageProps = HTMLAttributes<HTMLSpanElement>;
|
|
1696
2250
|
declare const MessageBranchPage: ({ className, ...props }: MessageBranchPageProps) => react.JSX.Element;
|
|
1697
|
-
|
|
2251
|
+
/**
|
|
2252
|
+
* `rehypePlugins` is NOT exposed on `MessageResponse` (#36, fixed). This
|
|
2253
|
+
* renders untrusted, streamed model output — the type-level `Omit` below plus
|
|
2254
|
+
* a runtime `stripSanitizerOverrides()` call before the `{...props}` spread
|
|
2255
|
+
* onto `<Streamdown>` keep Streamdown's default sanitiser chain (rehype-raw →
|
|
2256
|
+
* rehype-sanitize → rehype-harden) non-overridable, even through a JS consumer
|
|
2257
|
+
* or a force-cast.
|
|
2258
|
+
*
|
|
2259
|
+
* `remarkPlugins` IS supported: the remark stage runs upstream of that chain
|
|
2260
|
+
* and cannot bypass it (PR #74 review, round 1). See `MarkdownView`'s TSDoc and
|
|
2261
|
+
* `packages/ai/src/_streamdown-safety.ts` for the full security model.
|
|
2262
|
+
*/
|
|
2263
|
+
type MessageResponseProps = Omit<ComponentProps<typeof Streamdown>, "rehypePlugins"> & {
|
|
1698
2264
|
/**
|
|
1699
2265
|
* No content has arrived yet (loading-states.md `loading`) — renders
|
|
1700
2266
|
* skeleton lines at the body line-height instead of `<Streamdown>`, so the
|
|
@@ -1702,11 +2268,112 @@ type MessageResponseProps = ComponentProps<typeof Streamdown> & {
|
|
|
1702
2268
|
* @default false
|
|
1703
2269
|
*/
|
|
1704
2270
|
loading?: boolean;
|
|
2271
|
+
/**
|
|
2272
|
+
* Custom renderers for markdown elements. **Semantics differ from
|
|
2273
|
+
* `MarkdownView`:** `components` here REPLACES (not merges) per key against
|
|
2274
|
+
* Streamdown's own defaults, since `MessageResponse` has no internal
|
|
2275
|
+
* component map to merge with. See `MarkdownView` for merge-over-defaults
|
|
2276
|
+
* semantics and `#10` for details.
|
|
2277
|
+
*/
|
|
2278
|
+
components?: ComponentProps<typeof Streamdown>["components"];
|
|
2279
|
+
/**
|
|
2280
|
+
* Streamdown plugin-slot overrides (`cjk`/`code`/`math`/`mermaid`/
|
|
2281
|
+
* `renderers`), **merged** per key over the internal defaults, so a
|
|
2282
|
+
* consumer's entry wins for its key; every key the consumer does not set
|
|
2283
|
+
* keeps the reactive, i18n-aware internal default. Same semantics as
|
|
2284
|
+
* `MarkdownView` (#10 fix round).
|
|
2285
|
+
*
|
|
2286
|
+
* **This narrow `plugins` prop can only APPEND — it can never displace
|
|
2287
|
+
* Streamdown's default `rehypePlugins` chain** (`rehype-raw` →
|
|
2288
|
+
* `rehype-sanitize` → `rehype-harden`). `MessageResponse` never sets
|
|
2289
|
+
* `rehypePlugins` itself, and nothing in `PluginConfig` removes a member of
|
|
2290
|
+
* that pipeline. But two of the five slots are **not** upstream of it and
|
|
2291
|
+
* must be treated as TRUSTED CODE (#76):
|
|
2292
|
+
* - **`math.rehypePlugin` runs AFTER `rehype-sanitize`/`rehype-harden`** —
|
|
2293
|
+
* it is appended to the end of the rehype pipeline (verified against
|
|
2294
|
+
* `streamdown@2.5.0`'s `dist/chunk-BO2N2NFS.js`), so its output is never
|
|
2295
|
+
* re-sanitised. Replacing it emits a dev-only `console.warn`; the plugin
|
|
2296
|
+
* still runs (the seam is deliberate, not a hole to close). The sharp
|
|
2297
|
+
* edge in practice is KaTeX's `trust` option — it disables KaTeX's own
|
|
2298
|
+
* sanitisation, so leave it off for model-authored content.
|
|
2299
|
+
* - **`mermaid` never enters the rehype/remark pipeline at all.** Its
|
|
2300
|
+
* render output is written via `dangerouslySetInnerHTML` (streamdown's
|
|
2301
|
+
* only such sink); brand-ui's default pins mermaid's strict security
|
|
2302
|
+
* level, and a replacement must sanitise its own SVG. Also dev-warned.
|
|
2303
|
+
* - `cjk` (remark-stage, re-sanitised downstream), `code` (feeds
|
|
2304
|
+
* `shikiTheme` only) and `renderers` (ordinary React components) do not
|
|
2305
|
+
* bypass sanitisation and are never warned about.
|
|
2306
|
+
*
|
|
2307
|
+
* See `docs/CSP-AND-NETWORK.md` §1 and
|
|
2308
|
+
* `packages/ai/src/_streamdown-safety.ts`; `MarkdownView`'s TSDoc carries
|
|
2309
|
+
* the same model for the sibling surface.
|
|
2310
|
+
*/
|
|
2311
|
+
plugins?: ComponentProps<typeof Streamdown>["plugins"];
|
|
1705
2312
|
};
|
|
1706
|
-
declare const MessageResponse: react.MemoExoticComponent<({ className, loading, ...props }: MessageResponseProps) => react.JSX.Element>;
|
|
2313
|
+
declare const MessageResponse: react.MemoExoticComponent<({ className, loading, plugins: pluginOverrides, ...props }: MessageResponseProps) => react.JSX.Element>;
|
|
1707
2314
|
type MessageToolbarProps = ComponentProps<"div">;
|
|
1708
2315
|
declare const MessageToolbar: ({ className, children, ...props }: MessageToolbarProps) => react.JSX.Element;
|
|
1709
2316
|
|
|
2317
|
+
/** The minimum a column needs to identify itself — mainly its accessible name. */
|
|
2318
|
+
interface MessageCompareModel {
|
|
2319
|
+
/** Rendered in the column header AND used as the region's `aria-label`. */
|
|
2320
|
+
name: string;
|
|
2321
|
+
/** Optional stable id, e.g. for analytics — not used for layout or a11y. */
|
|
2322
|
+
id?: string;
|
|
2323
|
+
}
|
|
2324
|
+
/** `MessageCompare` supports 2-4 side-by-side responses (issue #23). */
|
|
2325
|
+
type MessageCompareColumnsCount = 2 | 3 | 4;
|
|
2326
|
+
type MessageCompareProps = Omit<HTMLAttributes<HTMLDivElement>, "children"> & {
|
|
2327
|
+
/** `MessageCompareColumn` elements — 2 to 4. */
|
|
2328
|
+
children: ReactNode;
|
|
2329
|
+
columns: MessageCompareColumnsCount;
|
|
2330
|
+
/** Controlled sync-scroll flag. Omit for the uncontrolled default (off). */
|
|
2331
|
+
syncScroll?: boolean;
|
|
2332
|
+
/** Uncontrolled initial value. @default false */
|
|
2333
|
+
defaultSyncScroll?: boolean;
|
|
2334
|
+
onSyncScrollChange?: (value: boolean) => void;
|
|
2335
|
+
/** aria-label for the narrow-viewport tab strip. Defaults to microcopy. */
|
|
2336
|
+
tabsLabel?: string;
|
|
2337
|
+
};
|
|
2338
|
+
/**
|
|
2339
|
+
* Responsive side-by-side comparison of 2-4 `MessageCompareColumn`s. Desktop:
|
|
2340
|
+
* resizable columns (`ResizablePanelGroup`). Under `md`: a `Tabs` strip, per
|
|
2341
|
+
* the issue's named narrow-viewport treatment.
|
|
2342
|
+
*/
|
|
2343
|
+
declare const MessageCompare: react.ForwardRefExoticComponent<Omit<HTMLAttributes<HTMLDivElement>, "children"> & {
|
|
2344
|
+
/** `MessageCompareColumn` elements — 2 to 4. */
|
|
2345
|
+
children: ReactNode;
|
|
2346
|
+
columns: MessageCompareColumnsCount;
|
|
2347
|
+
/** Controlled sync-scroll flag. Omit for the uncontrolled default (off). */
|
|
2348
|
+
syncScroll?: boolean;
|
|
2349
|
+
/** Uncontrolled initial value. @default false */
|
|
2350
|
+
defaultSyncScroll?: boolean;
|
|
2351
|
+
onSyncScrollChange?: (value: boolean) => void;
|
|
2352
|
+
/** aria-label for the narrow-viewport tab strip. Defaults to microcopy. */
|
|
2353
|
+
tabsLabel?: string;
|
|
2354
|
+
} & react.RefAttributes<HTMLDivElement>>;
|
|
2355
|
+
type MessageCompareColumnProps = Omit<HTMLAttributes<HTMLDivElement>, "children"> & {
|
|
2356
|
+
/** Identifies the column — its `name` becomes the region's accessible name. */
|
|
2357
|
+
model: MessageCompareModel;
|
|
2358
|
+
/** In-flight state for this column's OWN response, independent of siblings. */
|
|
2359
|
+
status?: ChatStatus;
|
|
2360
|
+
/** The consumer's own `Message`/`MessageResponse` composition for this column. */
|
|
2361
|
+
children?: ReactNode;
|
|
2362
|
+
};
|
|
2363
|
+
/**
|
|
2364
|
+
* One labelled, independently-scrolling response column. `role="region"` +
|
|
2365
|
+
* `aria-label={model.name}` so a screen-reader user can tell which answer
|
|
2366
|
+
* they're in (issue #23 a11y requirement).
|
|
2367
|
+
*/
|
|
2368
|
+
declare const MessageCompareColumn: react.ForwardRefExoticComponent<Omit<HTMLAttributes<HTMLDivElement>, "children"> & {
|
|
2369
|
+
/** Identifies the column — its `name` becomes the region's accessible name. */
|
|
2370
|
+
model: MessageCompareModel;
|
|
2371
|
+
/** In-flight state for this column's OWN response, independent of siblings. */
|
|
2372
|
+
status?: ChatStatus;
|
|
2373
|
+
/** The consumer's own `Message`/`MessageResponse` composition for this column. */
|
|
2374
|
+
children?: ReactNode;
|
|
2375
|
+
} & react.RefAttributes<HTMLDivElement>>;
|
|
2376
|
+
|
|
1710
2377
|
interface MessageEditContextValue {
|
|
1711
2378
|
editing: boolean;
|
|
1712
2379
|
draft: string;
|
|
@@ -2522,7 +3189,6 @@ declare const formSpecSchema: z.ZodObject<{
|
|
|
2522
3189
|
/** Submit button label. @default "Submit" */
|
|
2523
3190
|
submitLabel: z.ZodOptional<z.ZodString>;
|
|
2524
3191
|
}, "strip", z.ZodTypeAny, {
|
|
2525
|
-
formName: string;
|
|
2526
3192
|
fields: ({
|
|
2527
3193
|
name: string;
|
|
2528
3194
|
type: "string";
|
|
@@ -2583,11 +3249,11 @@ declare const formSpecSchema: z.ZodObject<{
|
|
|
2583
3249
|
required?: boolean | undefined;
|
|
2584
3250
|
description?: string | undefined;
|
|
2585
3251
|
})[];
|
|
3252
|
+
formName: string;
|
|
2586
3253
|
title?: string | undefined;
|
|
2587
3254
|
description?: string | undefined;
|
|
2588
3255
|
submitLabel?: string | undefined;
|
|
2589
3256
|
}, {
|
|
2590
|
-
formName: string;
|
|
2591
3257
|
fields: ({
|
|
2592
3258
|
name: string;
|
|
2593
3259
|
type: "string";
|
|
@@ -2648,6 +3314,7 @@ declare const formSpecSchema: z.ZodObject<{
|
|
|
2648
3314
|
required?: boolean | undefined;
|
|
2649
3315
|
description?: string | undefined;
|
|
2650
3316
|
})[];
|
|
3317
|
+
formName: string;
|
|
2651
3318
|
title?: string | undefined;
|
|
2652
3319
|
description?: string | undefined;
|
|
2653
3320
|
submitLabel?: string | undefined;
|
|
@@ -3023,30 +3690,6 @@ declare const MicSelectorLabel: ({ device, className, ...props }: MicSelectorLab
|
|
|
3023
3690
|
type MicSelectorValueProps = ComponentProps<"span">;
|
|
3024
3691
|
declare const MicSelectorValue: ({ className, ...props }: MicSelectorValueProps) => react.JSX.Element;
|
|
3025
3692
|
|
|
3026
|
-
type ModelSelectorProps = ComponentProps<typeof Dialog>;
|
|
3027
|
-
declare const ModelSelector: (props: ModelSelectorProps) => react.JSX.Element;
|
|
3028
|
-
type ModelSelectorTriggerProps = ComponentProps<typeof DialogTrigger>;
|
|
3029
|
-
declare const ModelSelectorTrigger: (props: ModelSelectorTriggerProps) => react.JSX.Element;
|
|
3030
|
-
type ModelSelectorContentProps = ComponentProps<typeof DialogContent> & {
|
|
3031
|
-
title?: ReactNode;
|
|
3032
|
-
};
|
|
3033
|
-
declare const ModelSelectorContent: ({ className, children, title, ...props }: ModelSelectorContentProps) => react.JSX.Element;
|
|
3034
|
-
type ModelSelectorDialogProps = ComponentProps<typeof CommandDialog>;
|
|
3035
|
-
declare const ModelSelectorDialog: (props: ModelSelectorDialogProps) => react.JSX.Element;
|
|
3036
|
-
type ModelSelectorInputProps = ComponentProps<typeof CommandInput>;
|
|
3037
|
-
declare const ModelSelectorInput: ({ className, ...props }: ModelSelectorInputProps) => react.JSX.Element;
|
|
3038
|
-
type ModelSelectorListProps = ComponentProps<typeof CommandList>;
|
|
3039
|
-
declare const ModelSelectorList: (props: ModelSelectorListProps) => react.JSX.Element;
|
|
3040
|
-
type ModelSelectorEmptyProps = ComponentProps<typeof CommandEmpty>;
|
|
3041
|
-
declare const ModelSelectorEmpty: (props: ModelSelectorEmptyProps) => react.JSX.Element;
|
|
3042
|
-
type ModelSelectorGroupProps = ComponentProps<typeof CommandGroup>;
|
|
3043
|
-
declare const ModelSelectorGroup: (props: ModelSelectorGroupProps) => react.JSX.Element;
|
|
3044
|
-
type ModelSelectorItemProps = ComponentProps<typeof CommandItem>;
|
|
3045
|
-
declare const ModelSelectorItem: (props: ModelSelectorItemProps) => react.JSX.Element;
|
|
3046
|
-
type ModelSelectorShortcutProps = ComponentProps<typeof CommandShortcut>;
|
|
3047
|
-
declare const ModelSelectorShortcut: (props: ModelSelectorShortcutProps) => react.JSX.Element;
|
|
3048
|
-
type ModelSelectorSeparatorProps = ComponentProps<typeof CommandSeparator>;
|
|
3049
|
-
declare const ModelSelectorSeparator: (props: ModelSelectorSeparatorProps) => react.JSX.Element;
|
|
3050
3693
|
/**
|
|
3051
3694
|
* Where provider logos are fetched from by default.
|
|
3052
3695
|
*
|
|
@@ -3054,11 +3697,11 @@ declare const ModelSelectorSeparator: (props: ModelSelectorSeparatorProps) => re
|
|
|
3054
3697
|
* Self-host the SVGs and pass `src` (or set a `fallback`) — see
|
|
3055
3698
|
* `docs/CSP-AND-NETWORK.md`.
|
|
3056
3699
|
*/
|
|
3057
|
-
declare const
|
|
3058
|
-
type
|
|
3700
|
+
declare const MODEL_PROVIDER_LOGO_BASE_URL = "https://models.dev/logos";
|
|
3701
|
+
type ModelProviderLogoProps = Omit<ComponentProps<"img">, "alt"> & {
|
|
3059
3702
|
/**
|
|
3060
3703
|
* Override the logo URL — point at a self-hosted or bundled asset when a CSP
|
|
3061
|
-
* blocks `models.dev`. Defaults to `${
|
|
3704
|
+
* blocks `models.dev`. Defaults to `${MODEL_PROVIDER_LOGO_BASE_URL}/<provider>.svg`.
|
|
3062
3705
|
*/
|
|
3063
3706
|
src?: string;
|
|
3064
3707
|
/**
|
|
@@ -3069,11 +3712,21 @@ type ModelSelectorLogoProps = Omit<ComponentProps<"img">, "alt"> & {
|
|
|
3069
3712
|
fallback?: ReactNode;
|
|
3070
3713
|
provider: "moonshotai-cn" | "lucidquery" | "moonshotai" | "zai-coding-plan" | "alibaba" | "xai" | "vultr" | "nvidia" | "upstage" | "groq" | "github-copilot" | "mistral" | "vercel" | "nebius" | "deepseek" | "alibaba-cn" | "google-vertex-anthropic" | "venice" | "chutes" | "cortecs" | "github-models" | "togetherai" | "azure" | "baseten" | "huggingface" | "opencode" | "fastrouter" | "google" | "google-vertex" | "cloudflare-workers-ai" | "inception" | "wandb" | "openai" | "zhipuai-coding-plan" | "perplexity" | "openrouter" | "zenmux" | "v0" | "iflowcn" | "synthetic" | "deepinfra" | "zhipuai" | "submodel" | "zai" | "inference" | "requesty" | "morph" | "lmstudio" | "anthropic" | "aihubmix" | "fireworks-ai" | "modelscope" | "llama" | "scaleway" | "amazon-bedrock" | "cerebras" | (string & {});
|
|
3071
3714
|
};
|
|
3072
|
-
|
|
3073
|
-
|
|
3074
|
-
|
|
3075
|
-
|
|
3076
|
-
|
|
3715
|
+
/**
|
|
3716
|
+
* The mark of an AI model provider (`anthropic`, `openai`, `google`, …), sized
|
|
3717
|
+
* for a row in a model list.
|
|
3718
|
+
*
|
|
3719
|
+
* **`ModelProviderLogo` vs `ServiceLogo` (`@elabs-ai/components-icons`).** An AI
|
|
3720
|
+
* provider mark with a zero-config remote default — name the provider and a logo
|
|
3721
|
+
* appears, no registration step — is this component. Any other third-party
|
|
3722
|
+
* service mark, resolved from a registry the app supplies and never fetched, is
|
|
3723
|
+
* `ServiceLogo`. The two are not interchangeable: `ServiceLogo` has no
|
|
3724
|
+
* per-instance `src` and no `onError`, and this one reaches a remote origin by
|
|
3725
|
+
* default (see `docs/CSP-AND-NETWORK.md`).
|
|
3726
|
+
*/
|
|
3727
|
+
declare const ModelProviderLogo: ({ provider, className, src, fallback, onError, ...props }: ModelProviderLogoProps) => react.JSX.Element;
|
|
3728
|
+
type ModelProviderLogoGroupProps = ComponentProps<"div">;
|
|
3729
|
+
declare const ModelProviderLogoGroup: ({ className, ...props }: ModelProviderLogoGroupProps) => react.JSX.Element;
|
|
3077
3730
|
|
|
3078
3731
|
interface BrandMotionConfigProps {
|
|
3079
3732
|
children: ReactNode;
|
|
@@ -3175,6 +3828,47 @@ declare const PackageInfoDependency: ({ name, version, className, children, ...p
|
|
|
3175
3828
|
type PanelProps = ComponentProps<typeof Panel$1>;
|
|
3176
3829
|
declare const Panel: (props: PanelProps) => react.JSX.Element;
|
|
3177
3830
|
|
|
3831
|
+
/**
|
|
3832
|
+
* PermissionModeSelect — the standing-permission-policy chooser (#104).
|
|
3833
|
+
*
|
|
3834
|
+
* Distinct from `Confirmation`/`ApprovalCard` (#103): those render ONE
|
|
3835
|
+
* per-call decision ("may I run this command?"). This renders the POLICY
|
|
3836
|
+
* that governs how many of those per-call decisions ever occur ("how much
|
|
3837
|
+
* may you do without asking?"). The two stay separate components with a
|
|
3838
|
+
* documented relationship rather than one growing a boolean "policy mode"
|
|
3839
|
+
* prop — see `.claude/rules/component-api.md` ("Avoid boolean-prop
|
|
3840
|
+
* proliferation").
|
|
3841
|
+
*
|
|
3842
|
+
* The mode vocabulary is entirely app-defined: no agent's mode names are
|
|
3843
|
+
* hardcoded in this file or in `PermissionMode`/`PermissionModeSelectProps`.
|
|
3844
|
+
* `consequence` is a REQUIRED field — a mode whose effect is unstated is
|
|
3845
|
+
* exactly the failure this component exists to prevent (three unlabelled
|
|
3846
|
+
* radio buttons).
|
|
3847
|
+
*
|
|
3848
|
+
* Built on `@elabs-ai/components-ui`'s `RadioGroup` (Radix) for roving
|
|
3849
|
+
* focus / arrow-key navigation / Space-Enter selection / announcement — this
|
|
3850
|
+
* component does not hand-roll any of that. The in-force mode is marked in
|
|
3851
|
+
* TEXT: a "Current" badge lives inside the `<Label>` associated with that
|
|
3852
|
+
* mode's radio input, so it is part of the control's accessible name and
|
|
3853
|
+
* recoverable in greyscale — never colour alone (WCAG 1.4.1).
|
|
3854
|
+
*/
|
|
3855
|
+
interface PermissionMode {
|
|
3856
|
+
id: string;
|
|
3857
|
+
label: string;
|
|
3858
|
+
/** What this mode actually permits — required, not optional. */
|
|
3859
|
+
consequence: string;
|
|
3860
|
+
keyHint?: string;
|
|
3861
|
+
}
|
|
3862
|
+
interface PermissionModeSelectProps extends ComponentProps<"div"> {
|
|
3863
|
+
modes: PermissionMode[];
|
|
3864
|
+
value?: string;
|
|
3865
|
+
defaultValue?: string;
|
|
3866
|
+
onValueChange?: (id: string) => void;
|
|
3867
|
+
/** The mode currently in force, marked distinctly from the highlighted one. */
|
|
3868
|
+
currentId?: string;
|
|
3869
|
+
}
|
|
3870
|
+
declare const PermissionModeSelect: react.ForwardRefExoticComponent<Omit<PermissionModeSelectProps, "ref"> & react.RefAttributes<HTMLDivElement>>;
|
|
3871
|
+
|
|
3178
3872
|
/**
|
|
3179
3873
|
* Persona artwork sources — a plain data module shared by `persona.tsx` (the
|
|
3180
3874
|
* public shell) and `_persona-rive.tsx` (the lazily-loaded Rive half), so
|
|
@@ -3223,6 +3917,21 @@ declare const PERSONA_SOURCES: {
|
|
|
3223
3917
|
};
|
|
3224
3918
|
type PersonaVariant = keyof typeof PERSONA_SOURCES;
|
|
3225
3919
|
|
|
3920
|
+
/**
|
|
3921
|
+
* Owned mirror of `@rive-app/webgl2`'s `Event` (the parameter type every
|
|
3922
|
+
* `RiveParameters` callback receives) — see the module doc comment above.
|
|
3923
|
+
* `data` is deliberately widened to `unknown` rather than replicating Rive's
|
|
3924
|
+
* `RiveEventPayload`/`LoopEvent`/`RiveFile` union: no callback in this package
|
|
3925
|
+
* (or, realistically, a consumer's) narrows it, and `unknown` remains a safe,
|
|
3926
|
+
* structurally-compatible supertype of the real union for the conformance
|
|
3927
|
+
* assertion in `_persona-rive.tsx`.
|
|
3928
|
+
*/
|
|
3929
|
+
interface PersonaRiveEvent {
|
|
3930
|
+
type: string;
|
|
3931
|
+
data?: unknown;
|
|
3932
|
+
}
|
|
3933
|
+
/** Owned mirror of `@rive-app/webgl2`'s `EventCallback`. */
|
|
3934
|
+
type PersonaRiveEventCallback = (event: PersonaRiveEvent) => void;
|
|
3226
3935
|
interface PersonaProps {
|
|
3227
3936
|
className?: string;
|
|
3228
3937
|
/**
|
|
@@ -3231,12 +3940,12 @@ interface PersonaProps {
|
|
|
3231
3940
|
* so a blocked fetch never leaves an empty box.
|
|
3232
3941
|
*/
|
|
3233
3942
|
fallback?: ReactNode;
|
|
3234
|
-
onLoad?:
|
|
3235
|
-
onLoadError?:
|
|
3236
|
-
onPause?:
|
|
3237
|
-
onPlay?:
|
|
3943
|
+
onLoad?: PersonaRiveEventCallback;
|
|
3944
|
+
onLoadError?: PersonaRiveEventCallback;
|
|
3945
|
+
onPause?: PersonaRiveEventCallback;
|
|
3946
|
+
onPlay?: PersonaRiveEventCallback;
|
|
3238
3947
|
onReady?: () => void;
|
|
3239
|
-
onStop?:
|
|
3948
|
+
onStop?: PersonaRiveEventCallback;
|
|
3240
3949
|
/**
|
|
3241
3950
|
* Override the `.riv` artwork URL — point at a self-hosted copy when a CSP
|
|
3242
3951
|
* blocks the default origin. Defaults to `PERSONA_SOURCES[variant].source`.
|
|
@@ -3255,21 +3964,35 @@ interface PersonaProps {
|
|
|
3255
3964
|
}
|
|
3256
3965
|
declare const Persona: FC<PersonaProps>;
|
|
3257
3966
|
|
|
3967
|
+
/**
|
|
3968
|
+
* The plan's decision status (#108). Additive: a `Plan` rendered with no
|
|
3969
|
+
* `status` behaves exactly as before (no ARIA region, no rail, no status
|
|
3970
|
+
* line) — every prop below this point is opt-in.
|
|
3971
|
+
*/
|
|
3972
|
+
type PlanStatus = "streaming" | "awaiting" | "approved" | "changes-requested";
|
|
3258
3973
|
type PlanProps = ComponentProps<typeof Collapsible> & {
|
|
3259
3974
|
isStreaming?: boolean;
|
|
3975
|
+
/**
|
|
3976
|
+
* The plan's decision status. Omit it to keep today's display-only
|
|
3977
|
+
* behaviour. When both `status` and `isStreaming` are given, `status`
|
|
3978
|
+
* wins (a `status="approved"` plan never shimmers, even if `isStreaming`
|
|
3979
|
+
* is still `true`).
|
|
3980
|
+
*/
|
|
3981
|
+
status?: PlanStatus;
|
|
3260
3982
|
};
|
|
3261
|
-
declare const Plan: ({ className, isStreaming, children, ...props }: PlanProps) => react.JSX.Element;
|
|
3983
|
+
declare const Plan: ({ className, isStreaming, status, role, children, ...props }: PlanProps) => react.JSX.Element;
|
|
3262
3984
|
type PlanHeaderProps = ComponentProps<typeof CardHeader>;
|
|
3263
3985
|
declare const PlanHeader: ({ className, ...props }: PlanHeaderProps) => react.JSX.Element;
|
|
3264
3986
|
type PlanTitleProps = Omit<ComponentProps<typeof CardTitle>, "children"> & {
|
|
3265
3987
|
children: string;
|
|
3266
3988
|
};
|
|
3267
|
-
declare const PlanTitle: ({ children, ...props }: PlanTitleProps) => react.JSX.Element;
|
|
3989
|
+
declare const PlanTitle: ({ id, children, ...props }: PlanTitleProps) => react.JSX.Element;
|
|
3268
3990
|
type PlanDescriptionProps = Omit<ComponentProps<typeof CardDescription>, "children"> & {
|
|
3269
3991
|
children: string;
|
|
3270
3992
|
};
|
|
3271
3993
|
declare const PlanDescription: ({ className, children, ...props }: PlanDescriptionProps) => react.JSX.Element;
|
|
3272
3994
|
type PlanActionProps = ComponentProps<typeof CardAction>;
|
|
3995
|
+
/** The header's layout slot (e.g. a menu trigger) — unrelated to the decision actions below. */
|
|
3273
3996
|
declare const PlanAction: (props: PlanActionProps) => react.JSX.Element;
|
|
3274
3997
|
type PlanContentProps = ComponentProps<typeof CardContent>;
|
|
3275
3998
|
declare const PlanContent: ({ className, ...props }: PlanContentProps) => react.JSX.Element;
|
|
@@ -3277,6 +4000,29 @@ type PlanFooterProps = ComponentProps<"div">;
|
|
|
3277
4000
|
declare const PlanFooter: (props: PlanFooterProps) => react.JSX.Element;
|
|
3278
4001
|
type PlanTriggerProps = ComponentProps<typeof CollapsibleTrigger>;
|
|
3279
4002
|
declare const PlanTrigger: ({ className, ...props }: PlanTriggerProps) => react.JSX.Element;
|
|
4003
|
+
type PlanStatusLineProps = Omit<ComponentProps<typeof StatusBadge>, "status"> & {
|
|
4004
|
+
children?: ReactNode;
|
|
4005
|
+
};
|
|
4006
|
+
/**
|
|
4007
|
+
* The decision status line (#108) — text + glyph, never rail colour alone.
|
|
4008
|
+
* Renders nothing while `status` is unset or `"streaming"` (nothing has been
|
|
4009
|
+
* decided yet); shows the outcome once the plan is awaiting a decision or
|
|
4010
|
+
* settled.
|
|
4011
|
+
*/
|
|
4012
|
+
declare const PlanStatusLine: ({ className, children, ...props }: PlanStatusLineProps) => react.JSX.Element | null;
|
|
4013
|
+
type PlanDecisionActionProps = ComponentProps<typeof Button>;
|
|
4014
|
+
type PlanApproveProps = PlanDecisionActionProps;
|
|
4015
|
+
/**
|
|
4016
|
+
* The proceed action — presets the filled primary variant so the primary path
|
|
4017
|
+
* can't drift to a quieter variant (same reasoning as `ConfirmationApprove`).
|
|
4018
|
+
*/
|
|
4019
|
+
declare const PlanApprove: (props: PlanApproveProps) => react.JSX.Element;
|
|
4020
|
+
type PlanRequestChangesProps = PlanDecisionActionProps;
|
|
4021
|
+
/** Sends the plan back for revision — a quieter, non-primary action. */
|
|
4022
|
+
declare const PlanRequestChanges: (props: PlanRequestChangesProps) => react.JSX.Element;
|
|
4023
|
+
type PlanCommentProps = PlanDecisionActionProps;
|
|
4024
|
+
/** Leaves feedback without settling the decision — the quietest action. */
|
|
4025
|
+
declare const PlanComment: (props: PlanCommentProps) => react.JSX.Element;
|
|
3280
4026
|
|
|
3281
4027
|
interface QueueMessagePart {
|
|
3282
4028
|
type: string;
|
|
@@ -3490,6 +4236,85 @@ interface SelectionToolbarProps extends HTMLAttributes<HTMLDivElement> {
|
|
|
3490
4236
|
*/
|
|
3491
4237
|
declare const SelectionToolbar: react.ForwardRefExoticComponent<SelectionToolbarProps & react.RefAttributes<HTMLDivElement>>;
|
|
3492
4238
|
|
|
4239
|
+
interface SessionHeaderProps extends ComponentProps<"div"> {
|
|
4240
|
+
/**
|
|
4241
|
+
* Session/agent name, e.g. "Codex". Anchors the card — every other section
|
|
4242
|
+
* is independently optional and renders nothing when omitted.
|
|
4243
|
+
*/
|
|
4244
|
+
title?: string;
|
|
4245
|
+
/** Active model, e.g. "gpt-5.1-codex". */
|
|
4246
|
+
model?: string;
|
|
4247
|
+
/** Working directory / project path. Truncates instead of overflowing. */
|
|
4248
|
+
workspace?: string;
|
|
4249
|
+
/** Build/version string, e.g. "v2.4.0". */
|
|
4250
|
+
version?: string;
|
|
4251
|
+
/** What this session can reach. */
|
|
4252
|
+
capabilities?: SessionCapability[];
|
|
4253
|
+
/** Recent changes, shown as a short list. */
|
|
4254
|
+
whatsNew?: SessionWhatsNewItem[];
|
|
4255
|
+
/** Shortcut actions, rendered as real buttons with optional shortcut hints. */
|
|
4256
|
+
quickActions?: SessionQuickAction[];
|
|
4257
|
+
/**
|
|
4258
|
+
* Semantic heading level for `title`. Default `2` (a session header
|
|
4259
|
+
* typically sits above a `ChatGreeting`'s level-1 headline, or inside a
|
|
4260
|
+
* page that already owns its own `<h1>`).
|
|
4261
|
+
*/
|
|
4262
|
+
level?: HeadingLevel;
|
|
4263
|
+
}
|
|
4264
|
+
/**
|
|
4265
|
+
* SessionHeader — the launch card for an empty agent session: model,
|
|
4266
|
+
* workspace, version, capabilities, what's new, and quick actions with
|
|
4267
|
+
* shortcut hints. Pair it above `ChatGreeting` (or inside `ChatShell`'s
|
|
4268
|
+
* `header` slot) for the standard first-run agent session state.
|
|
4269
|
+
*
|
|
4270
|
+
* Distinct from `ChatGreeting`, which is the centered display-scale greeting
|
|
4271
|
+
* for a general assistant chat — `SessionHeader` answers different questions
|
|
4272
|
+
* (what workspace am I in, what model, what can this thing reach, what
|
|
4273
|
+
* changed) that a greeting has no home for.
|
|
4274
|
+
*
|
|
4275
|
+
* **Every section is independently optional.** With only `title` supplied,
|
|
4276
|
+
* the card renders the identity row alone — no empty section scaffolding,
|
|
4277
|
+
* no stray separators.
|
|
4278
|
+
*/
|
|
4279
|
+
declare const SessionHeader: react.ForwardRefExoticComponent<Omit<SessionHeaderProps, "ref"> & react.RefAttributes<HTMLDivElement>>;
|
|
4280
|
+
|
|
4281
|
+
interface SessionStatusBarConnections {
|
|
4282
|
+
/** Number of integrations/MCP servers currently connected. */
|
|
4283
|
+
connected: number;
|
|
4284
|
+
/** Total number of configured integrations/MCP servers. */
|
|
4285
|
+
total: number;
|
|
4286
|
+
/** Renders a spinner in place of the connection icon while establishing. */
|
|
4287
|
+
connecting?: boolean;
|
|
4288
|
+
}
|
|
4289
|
+
interface SessionStatusBarProps extends ComponentProps<"div"> {
|
|
4290
|
+
/** Current workspace/project name. */
|
|
4291
|
+
workspace?: string;
|
|
4292
|
+
/** Current git branch. */
|
|
4293
|
+
branch?: string;
|
|
4294
|
+
/** Active model id/label. */
|
|
4295
|
+
model?: string;
|
|
4296
|
+
/** Integration/MCP connection progress; renders a spinner while connecting. */
|
|
4297
|
+
connections?: SessionStatusBarConnections;
|
|
4298
|
+
/**
|
|
4299
|
+
* Docks another component alongside the ambient segments — most often
|
|
4300
|
+
* `<TokenUsage />` (`@elabs-ai/components-ai`), so token usage/cost keeps
|
|
4301
|
+
* its one owner (`token-usage.tsx`, tokenlens) instead of being re-implemented
|
|
4302
|
+
* here. Rendered flush to the end of the bar.
|
|
4303
|
+
*/
|
|
4304
|
+
children?: ReactNode;
|
|
4305
|
+
}
|
|
4306
|
+
/**
|
|
4307
|
+
* SessionStatusBar — the ambient session row: workspace, branch, model, and
|
|
4308
|
+
* integration-connection progress (#105). Every segment is independently
|
|
4309
|
+
* optional and renders only when its prop is supplied; with nothing supplied
|
|
4310
|
+
* the bar renders nothing at all, not an empty shell.
|
|
4311
|
+
*
|
|
4312
|
+
* Docks `Context` (or any other node) via `children` rather than
|
|
4313
|
+
* re-implementing token-usage/cost maths — `context.tsx` stays the one owner
|
|
4314
|
+
* of that calculation (tokenlens).
|
|
4315
|
+
*/
|
|
4316
|
+
declare const SessionStatusBar: react.ForwardRefExoticComponent<Omit<SessionStatusBarProps, "ref"> & react.RefAttributes<HTMLDivElement>>;
|
|
4317
|
+
|
|
3493
4318
|
interface TextShimmerProps {
|
|
3494
4319
|
children: string;
|
|
3495
4320
|
as?: ElementType;
|
|
@@ -3691,32 +4516,6 @@ declare const TaskTrigger: ({ children, className, title, ...props }: TaskTrigge
|
|
|
3691
4516
|
type TaskContentProps = ComponentProps<typeof CollapsibleContent>;
|
|
3692
4517
|
declare const TaskContent: ({ children, className, ...props }: TaskContentProps) => react.JSX.Element;
|
|
3693
4518
|
|
|
3694
|
-
type TerminalHeaderProps = HTMLAttributes<HTMLDivElement>;
|
|
3695
|
-
declare const TerminalHeader: ({ className, children, ...props }: TerminalHeaderProps) => react.JSX.Element;
|
|
3696
|
-
type TerminalTitleProps = HTMLAttributes<HTMLDivElement>;
|
|
3697
|
-
declare const TerminalTitle: ({ className, children, ...props }: TerminalTitleProps) => react.JSX.Element;
|
|
3698
|
-
type TerminalStatusProps = HTMLAttributes<HTMLDivElement>;
|
|
3699
|
-
declare const TerminalStatus: ({ className, children, ...props }: TerminalStatusProps) => react.JSX.Element | null;
|
|
3700
|
-
type TerminalActionsProps = HTMLAttributes<HTMLDivElement>;
|
|
3701
|
-
declare const TerminalActions: ({ className, children, ...props }: TerminalActionsProps) => react.JSX.Element;
|
|
3702
|
-
type TerminalCopyButtonProps = ComponentProps<typeof Button> & {
|
|
3703
|
-
onCopy?: () => void;
|
|
3704
|
-
onError?: (error: Error) => void;
|
|
3705
|
-
timeout?: number;
|
|
3706
|
-
};
|
|
3707
|
-
declare const TerminalCopyButton: ({ onCopy, onError, timeout, children, className, ...props }: TerminalCopyButtonProps) => react.JSX.Element;
|
|
3708
|
-
type TerminalClearButtonProps = ComponentProps<typeof Button>;
|
|
3709
|
-
declare const TerminalClearButton: ({ children, className, ...props }: TerminalClearButtonProps) => react.JSX.Element | null;
|
|
3710
|
-
type TerminalContentProps = HTMLAttributes<HTMLDivElement>;
|
|
3711
|
-
declare const TerminalContent: ({ className, children, ...props }: TerminalContentProps) => react.JSX.Element;
|
|
3712
|
-
type TerminalProps = HTMLAttributes<HTMLDivElement> & {
|
|
3713
|
-
output: string;
|
|
3714
|
-
isStreaming?: boolean;
|
|
3715
|
-
autoScroll?: boolean;
|
|
3716
|
-
onClear?: () => void;
|
|
3717
|
-
};
|
|
3718
|
-
declare const Terminal: ({ output, isStreaming, autoScroll, onClear, className, children, ...props }: TerminalProps) => react.JSX.Element;
|
|
3719
|
-
|
|
3720
4519
|
type TestResultsHeaderProps = HTMLAttributes<HTMLDivElement>;
|
|
3721
4520
|
declare const TestResultsHeader: ({ className, children, ...props }: TestResultsHeaderProps) => react.JSX.Element;
|
|
3722
4521
|
type TestResultsDurationProps = HTMLAttributes<HTMLSpanElement>;
|
|
@@ -3801,6 +4600,34 @@ declare const TestErrorMessage: ({ className, children, ...props }: TestErrorMes
|
|
|
3801
4600
|
type TestErrorStackProps = HTMLAttributes<HTMLPreElement>;
|
|
3802
4601
|
declare const TestErrorStack: ({ className, children, ...props }: TestErrorStackProps) => react.JSX.Element;
|
|
3803
4602
|
|
|
4603
|
+
type ModelId = string;
|
|
4604
|
+
interface TokenUsageSchema {
|
|
4605
|
+
usedTokens: number;
|
|
4606
|
+
maxTokens: number;
|
|
4607
|
+
usage?: LanguageModelUsage;
|
|
4608
|
+
modelId?: ModelId;
|
|
4609
|
+
}
|
|
4610
|
+
type TokenUsageProps = ComponentProps<typeof HoverCard> & TokenUsageSchema;
|
|
4611
|
+
declare const TokenUsage: ({ usedTokens, maxTokens, usage, modelId, ...props }: TokenUsageProps) => react.JSX.Element;
|
|
4612
|
+
type TokenUsageTriggerProps = ComponentProps<typeof Button>;
|
|
4613
|
+
declare const TokenUsageTrigger: ({ children, ...props }: TokenUsageTriggerProps) => react.JSX.Element;
|
|
4614
|
+
type TokenUsageContentProps = ComponentProps<typeof HoverCardContent>;
|
|
4615
|
+
declare const TokenUsageContent: ({ className, ...props }: TokenUsageContentProps) => react.JSX.Element;
|
|
4616
|
+
type TokenUsageContentHeaderProps = ComponentProps<"div">;
|
|
4617
|
+
declare const TokenUsageContentHeader: ({ children, className, ...props }: TokenUsageContentHeaderProps) => react.JSX.Element;
|
|
4618
|
+
type TokenUsageContentBodyProps = ComponentProps<"div">;
|
|
4619
|
+
declare const TokenUsageContentBody: ({ children, className, ...props }: TokenUsageContentBodyProps) => react.JSX.Element;
|
|
4620
|
+
type TokenUsageContentFooterProps = ComponentProps<"div">;
|
|
4621
|
+
declare const TokenUsageContentFooter: ({ children, className, ...props }: TokenUsageContentFooterProps) => react.JSX.Element;
|
|
4622
|
+
type TokenUsageInputProps = ComponentProps<"div">;
|
|
4623
|
+
declare const TokenUsageInput: ({ className, children, ...props }: TokenUsageInputProps) => string | number | bigint | true | Iterable<react.ReactNode> | Promise<string | number | bigint | boolean | react.ReactPortal | react.ReactElement<unknown, string | react.JSXElementConstructor<any>> | Iterable<react.ReactNode> | null | undefined> | react.JSX.Element | null;
|
|
4624
|
+
type TokenUsageOutputProps = ComponentProps<"div">;
|
|
4625
|
+
declare const TokenUsageOutput: ({ className, children, ...props }: TokenUsageOutputProps) => string | number | bigint | true | Iterable<react.ReactNode> | Promise<string | number | bigint | boolean | react.ReactPortal | react.ReactElement<unknown, string | react.JSXElementConstructor<any>> | Iterable<react.ReactNode> | null | undefined> | react.JSX.Element | null;
|
|
4626
|
+
type TokenUsageReasoningProps = ComponentProps<"div">;
|
|
4627
|
+
declare const TokenUsageReasoning: ({ className, children, ...props }: TokenUsageReasoningProps) => string | number | bigint | true | Iterable<react.ReactNode> | Promise<string | number | bigint | boolean | react.ReactPortal | react.ReactElement<unknown, string | react.JSXElementConstructor<any>> | Iterable<react.ReactNode> | null | undefined> | react.JSX.Element | null;
|
|
4628
|
+
type TokenUsageCacheProps = ComponentProps<"div">;
|
|
4629
|
+
declare const TokenUsageCache: ({ className, children, ...props }: TokenUsageCacheProps) => string | number | bigint | true | Iterable<react.ReactNode> | Promise<string | number | bigint | boolean | react.ReactPortal | react.ReactElement<unknown, string | react.JSXElementConstructor<any>> | Iterable<react.ReactNode> | null | undefined> | react.JSX.Element | null;
|
|
4630
|
+
|
|
3804
4631
|
type ToolProps = ComponentProps<typeof Collapsible>;
|
|
3805
4632
|
declare const Tool: ({ className, ...props }: ToolProps) => react.JSX.Element;
|
|
3806
4633
|
type ToolPart = ToolUIPart | DynamicToolUIPart;
|
|
@@ -3939,6 +4766,86 @@ type TranscriptionSegmentProps = ComponentProps<"button"> & {
|
|
|
3939
4766
|
type TranscriptionSegment = Experimental_TranscriptionResult["segments"][number];
|
|
3940
4767
|
declare const TranscriptionSegment: ({ segment, index, className, onClick, ...props }: TranscriptionSegmentProps) => react.JSX.Element;
|
|
3941
4768
|
|
|
4769
|
+
interface TurnStatusTokens {
|
|
4770
|
+
input?: number;
|
|
4771
|
+
output?: number;
|
|
4772
|
+
}
|
|
4773
|
+
interface TurnStatusProps extends Omit<ComponentProps<"div">, "children"> {
|
|
4774
|
+
/**
|
|
4775
|
+
* What the turn is doing right now, e.g. `"Working…"`, `"Editing files…"`.
|
|
4776
|
+
* Caller-supplied and rendered verbatim — `TurnStatus` never invents this
|
|
4777
|
+
* text, so it carries no default and needs no translation key of its own.
|
|
4778
|
+
*/
|
|
4779
|
+
label?: string;
|
|
4780
|
+
/** Elapsed time in the current turn, in milliseconds. Rendered via `formatElapsed`. */
|
|
4781
|
+
elapsedMs?: number;
|
|
4782
|
+
/** Token counts for the turn so far. */
|
|
4783
|
+
tokens?: TurnStatusTokens;
|
|
4784
|
+
/** 1-based index of the current turn. */
|
|
4785
|
+
turn?: number;
|
|
4786
|
+
/** Total number of turns, when known. */
|
|
4787
|
+
turnTotal?: number;
|
|
4788
|
+
/**
|
|
4789
|
+
* `"working"` (default) renders the live stats + stop control and keeps
|
|
4790
|
+
* announcing `label` changes. `"settled"` renders the completed-turn line
|
|
4791
|
+
* instead and stops announcing (the elapsed/tokens/turn stats and the stop
|
|
4792
|
+
* control are hidden — the turn is over).
|
|
4793
|
+
*/
|
|
4794
|
+
status?: "working" | "settled";
|
|
4795
|
+
/** Renders a focusable stop button, reachable by keyboard, while `status="working"`. */
|
|
4796
|
+
onStop?: () => void;
|
|
4797
|
+
/** Renders a "scroll to bottom" affordance. */
|
|
4798
|
+
showScrollToBottom?: boolean;
|
|
4799
|
+
onScrollToBottom?: () => void;
|
|
4800
|
+
}
|
|
4801
|
+
/**
|
|
4802
|
+
* TurnStatus — the in-turn footer: a working/settled label, elapsed time,
|
|
4803
|
+
* token counts, turn progress, and a stop affordance, all in one place (#105).
|
|
4804
|
+
*
|
|
4805
|
+
* Exactly ONE `role="status" aria-live="polite"` region is rendered — a
|
|
4806
|
+
* visually-hidden node that announces `label` while working and the
|
|
4807
|
+
* completed-turn line once `status="settled"`. The ticking elapsed time and
|
|
4808
|
+
* token/turn counts are plain (non-live) visible text: they update every
|
|
4809
|
+
* render without re-announcing on every tick, which would flood assistive
|
|
4810
|
+
* tech (see `.claude/rules/loading-states.md`). This mirrors `Persona`'s
|
|
4811
|
+
* visible-content/`sr-only`-announcement split.
|
|
4812
|
+
*/
|
|
4813
|
+
declare const TurnStatus: react.ForwardRefExoticComponent<Omit<TurnStatusProps, "ref"> & react.RefAttributes<HTMLDivElement>>;
|
|
4814
|
+
|
|
4815
|
+
/**
|
|
4816
|
+
* The OPT-IN analyser-plumbing hook for `AudioVisualizer` (issue #21). It is a
|
|
4817
|
+
* separate export a consumer may ignore entirely — `AudioVisualizer` itself
|
|
4818
|
+
* never imports or calls this. brand-ui is a presentation layer (D5): this
|
|
4819
|
+
* hook never calls `getUserMedia` and never creates an `AudioContext` until a
|
|
4820
|
+
* `MediaStream` the CONSUMER already obtained is actually passed in.
|
|
4821
|
+
*/
|
|
4822
|
+
interface UseAudioLevelOptions {
|
|
4823
|
+
/** `AnalyserNode.fftSize` — controls how many frequency bins `levels` has
|
|
4824
|
+
* (`fftSize / 2`). Must be a power of two in [32, 32768]. */
|
|
4825
|
+
fftSize?: number;
|
|
4826
|
+
/** `AnalyserNode.smoothingTimeConstant` (0–1) — the analyser's OWN frame-to-frame
|
|
4827
|
+
* smoothing, independent of `AudioVisualizer`'s reduced-motion smoothing. */
|
|
4828
|
+
smoothingTimeConstant?: number;
|
|
4829
|
+
}
|
|
4830
|
+
interface UseAudioLevelResult {
|
|
4831
|
+
/** Normalized 0–1 frequency-bin samples for the current frame — feed this
|
|
4832
|
+
* directly to `<AudioVisualizer levels={levels} />`. Empty while `stream`
|
|
4833
|
+
* is `null`/`undefined` or the Web Audio API is unavailable. */
|
|
4834
|
+
levels: number[];
|
|
4835
|
+
/** The mean of `levels` — a single 0–1 scalar for a simple level meter. */
|
|
4836
|
+
level: number;
|
|
4837
|
+
}
|
|
4838
|
+
/**
|
|
4839
|
+
* Polls a `MediaStream` the caller already obtained (their own `getUserMedia`
|
|
4840
|
+
* call — this hook never requests one) via a Web Audio `AnalyserNode`, on a
|
|
4841
|
+
* `requestAnimationFrame` loop, and returns normalized levels.
|
|
4842
|
+
*
|
|
4843
|
+
* Pass `null`/`undefined` for `stream` (e.g. before the user grants mic
|
|
4844
|
+
* permission) and the hook is a no-op returning empty levels — safe to call
|
|
4845
|
+
* unconditionally, including with no stream ever provided at all.
|
|
4846
|
+
*/
|
|
4847
|
+
declare function useAudioLevel(stream: MediaStream | null | undefined, options?: UseAudioLevelOptions): UseAudioLevelResult;
|
|
4848
|
+
|
|
3942
4849
|
interface VoiceSelectorContextValue {
|
|
3943
4850
|
value: string | undefined;
|
|
3944
4851
|
setValue: (value: string | undefined) => void;
|
|
@@ -4076,4 +4983,4 @@ interface ChatShellProps {
|
|
|
4076
4983
|
*/
|
|
4077
4984
|
declare function ChatShell({ children, composer, header, aside, variant, className, }: ChatShellProps): react.JSX.Element;
|
|
4078
4985
|
|
|
4079
|
-
export { Agent, AgentContent, type AgentContentProps, AgentHeader, type AgentHeaderProps, AgentInstructions, type AgentInstructionsProps, AgentMessage, type AgentMessageEmphasis, type AgentMessageProps, AgentOutput, type AgentOutputProps, type AgentProps, AgentStep, type AgentStepProps, AgentTimeline, type AgentTimelineProps, AgentTool, type AgentToolProps, AgentTools, type AgentToolsProps, ApprovalCard, ApprovalCardAccepted, type ApprovalCardAcceptedProps, ApprovalCardAction, type ApprovalCardActionProps, ApprovalCardActions, type ApprovalCardActionsProps, ApprovalCardApprove, type ApprovalCardApproveProps, ApprovalCardDeny, type ApprovalCardDenyProps, ApprovalCardDescription, type ApprovalCardDescriptionProps, type ApprovalCardProps, ApprovalCardRejected, type ApprovalCardRejectedProps, ApprovalCardRequest, type ApprovalCardRequestProps, ApprovalCardTitle, type ApprovalCardTitleProps, Artifact, ArtifactAction, type ArtifactActionProps, ArtifactActions, type ArtifactActionsProps, ArtifactClose, type ArtifactCloseProps, ArtifactContent, type ArtifactContentProps, ArtifactDescription, type ArtifactDescriptionProps, ArtifactHeader, type ArtifactHeaderProps, type ArtifactProps, ArtifactTitle, type ArtifactTitleProps, AssetPreview, type AssetPreviewMode, type AssetPreviewProps, type AssetPreviewRenderer, Attachment, type AttachmentData, AttachmentEmpty, type AttachmentEmptyProps, AttachmentHoverCard, AttachmentHoverCardContent, type AttachmentHoverCardContentProps, type AttachmentHoverCardProps, AttachmentHoverCardTrigger, type AttachmentHoverCardTriggerProps, AttachmentInfo, type AttachmentInfoProps, type AttachmentMediaCategory, AttachmentPreview, type AttachmentPreviewProps, type AttachmentProps, AttachmentRemove, type AttachmentRemoveProps, type AttachmentVariant, Attachments, type AttachmentsContext, type AttachmentsProps, AudioPlayer, AudioPlayerControlBar, type AudioPlayerControlBarProps, AudioPlayerDurationDisplay, type AudioPlayerDurationDisplayProps, AudioPlayerElement, type AudioPlayerElementProps, AudioPlayerMuteButton, type AudioPlayerMuteButtonProps, AudioPlayerPlayButton, type AudioPlayerPlayButtonProps, type AudioPlayerProps, AudioPlayerSeekBackwardButton, type AudioPlayerSeekBackwardButtonProps, AudioPlayerSeekForwardButton, type AudioPlayerSeekForwardButtonProps, AudioPlayerTimeDisplay, type AudioPlayerTimeDisplayProps, AudioPlayerTimeRange, type AudioPlayerTimeRangeProps, AudioPlayerVolumeRange, type AudioPlayerVolumeRangeProps, type BadgeTone, type BooleanFieldSpec, BrandMotionConfig, type BrandMotionConfigProps, Canvas, type CanvasProps, type CellFormat, ChainOfThought, ChainOfThoughtContent, type ChainOfThoughtContentProps, ChainOfThoughtHeader, type ChainOfThoughtHeaderProps, ChainOfThoughtImage, type ChainOfThoughtImageProps, type ChainOfThoughtProps, ChainOfThoughtSearchResult, type ChainOfThoughtSearchResultProps, ChainOfThoughtSearchResults, type ChainOfThoughtSearchResultsProps, ChainOfThoughtStep, type ChainOfThoughtStepProps, ChatGreeting, type ChatGreetingProps, ChatShell, type ChatShellProps, Checkpoint, CheckpointIcon, type CheckpointIconProps, type CheckpointProps, CheckpointTrigger, type CheckpointTriggerProps, CodeBlock, CodeBlockActions, CodeBlockContainer, CodeBlockContent, CodeBlockCopyButton, type CodeBlockCopyButtonProps, CodeBlockFilename, CodeBlockHeader, CodeBlockLanguageSelector, CodeBlockLanguageSelectorContent, type CodeBlockLanguageSelectorContentProps, CodeBlockLanguageSelectorItem, type CodeBlockLanguageSelectorItemProps, type CodeBlockLanguageSelectorProps, CodeBlockLanguageSelectorTrigger, type CodeBlockLanguageSelectorTriggerProps, CodeBlockLanguageSelectorValue, type CodeBlockLanguageSelectorValueProps, type CodeBlockProps, CodeBlockTitle, type ColumnSpec, Commit, CommitActions, type CommitActionsProps, CommitAuthor, CommitAuthorAvatar, type CommitAuthorAvatarProps, type CommitAuthorProps, CommitContent, type CommitContentProps, CommitCopyButton, type CommitCopyButtonProps, CommitFile, CommitFileAdditions, type CommitFileAdditionsProps, CommitFileChanges, type CommitFileChangesProps, CommitFileDeletions, type CommitFileDeletionsProps, CommitFileIcon, type CommitFileIconProps, CommitFileInfo, type CommitFileInfoProps, CommitFilePath, type CommitFilePathProps, type CommitFileProps, CommitFileStatus, type CommitFileStatusProps, CommitFiles, type CommitFilesProps, CommitHash, type CommitHashProps, CommitHeader, type CommitHeaderProps, CommitInfo, type CommitInfoProps, CommitMessage, type CommitMessageProps, CommitMetadata, type CommitMetadataProps, type CommitProps, CommitSeparator, type CommitSeparatorProps, CommitTimestamp, type CommitTimestampProps, Composer, type ComposerProps, Confirmation, ConfirmationAccepted, type ConfirmationAcceptedProps, ConfirmationAction, type ConfirmationActionProps, ConfirmationActions, type ConfirmationActionsProps, ConfirmationApprove, type ConfirmationApproveProps, ConfirmationDeny, type ConfirmationDenyProps, ConfirmationDescription, type ConfirmationDescriptionProps, type ConfirmationProps, ConfirmationRejected, type ConfirmationRejectedProps, ConfirmationRequest, type ConfirmationRequestProps, ConfirmationTitle, type ConfirmationTitleProps, Connection, Context, type ContextAsset, type ContextAssetType, ContextCacheUsage, type ContextCacheUsageProps, ContextContent, ContextContentBody, type ContextContentBodyProps, ContextContentFooter, type ContextContentFooterProps, ContextContentHeader, type ContextContentHeaderProps, type ContextContentProps, ContextInputUsage, type ContextInputUsageProps, ContextOutputUsage, type ContextOutputUsageProps, ContextPanel, ContextPanelBody, type ContextPanelBodyProps, type ContextPanelContextValue, ContextPanelDetail, type ContextPanelDetailProps, ContextPanelHeader, type ContextPanelHeaderProps, type ContextPanelProps, ContextPanelProvider, type ContextPanelProviderProps, ContextPanelSection, type ContextPanelSectionProps, ContextPanelTrigger, type ContextPanelTriggerProps, type ContextPanelView, type ContextProps, ContextReasoningUsage, type ContextReasoningUsageProps, ContextTrigger, type ContextTriggerProps, Controls, type ControlsProps, Conversation, ConversationContent, type ConversationContentProps, ConversationDownload, type ConversationDownloadProps, ConversationEmptyState, type ConversationEmptyStateProps, type ConversationProps, ConversationScrollButton, type ConversationScrollButtonProps, EMPTY_CELL, Edge, type EnumFieldSpec, type EnumOption, EnvironmentVariable, EnvironmentVariableCopyButton, type EnvironmentVariableCopyButtonProps, EnvironmentVariableGroup, type EnvironmentVariableGroupProps, EnvironmentVariableName, type EnvironmentVariableNameProps, type EnvironmentVariableProps, EnvironmentVariableRequired, type EnvironmentVariableRequiredProps, EnvironmentVariableValue, type EnvironmentVariableValueProps, EnvironmentVariables, EnvironmentVariablesContent, type EnvironmentVariablesContentProps, EnvironmentVariablesHeader, type EnvironmentVariablesHeaderProps, type EnvironmentVariablesProps, EnvironmentVariablesTitle, type EnvironmentVariablesTitleProps, EnvironmentVariablesToggle, type EnvironmentVariablesToggleProps, EvidenceChip, type EvidenceChipProps, type FeedbackType, type FieldSpec, FileTree, FileTreeActions, type FileTreeActionsProps, FileTreeFile, type FileTreeFileProps, FileTreeFolder, type FileTreeFolderProps, FileTreeIcon, type FileTreeIconProps, FileTreeName, type FileTreeNameProps, type FileTreeProps, type FileTreeVariant, type FormSpec, type FormSubmitState, type FormValue, type FormValues, Gallery, type GalleryImage, type GalleryMetaItem, type GalleryProps, type GetPartStatus, type GroupBy, type GroupByContext, type GroupKey, type GroupPartByTypeOptions, type GroupStatus, type GroupablePart, type GroupedNode, type GroupedPartRenderArgs, type GroupedPartRenderer, GroupedParts, type GroupedPartsProps, Image, type ImageProps, InlineCitation, InlineCitationCard, InlineCitationCardBody, type InlineCitationCardBodyProps, type InlineCitationCardProps, InlineCitationCardTrigger, type InlineCitationCardTriggerProps, InlineCitationCarousel, InlineCitationCarouselContent, type InlineCitationCarouselContentProps, InlineCitationCarouselHeader, type InlineCitationCarouselHeaderProps, InlineCitationCarouselIndex, type InlineCitationCarouselIndexProps, InlineCitationCarouselItem, type InlineCitationCarouselItemProps, InlineCitationCarouselNext, type InlineCitationCarouselNextProps, InlineCitationCarouselPrev, type InlineCitationCarouselPrevProps, type InlineCitationCarouselProps, type InlineCitationProps, InlineCitationQuote, type InlineCitationQuoteProps, InlineCitationSource, type InlineCitationSourceProps, type InlineCitationSourceRef, InlineCitationText, type InlineCitationTextProps, type IntegerFieldSpec, InteractiveTerminal, type InteractiveTerminalHandle, type InteractiveTerminalProps, JSXPreview, JSXPreviewContent, type JSXPreviewContentProps, JSXPreviewError, type JSXPreviewErrorProps, type JSXPreviewProps, JSXPreviewSkeleton, type JSXPreviewSkeletonProps, type JSXPreviewStatus, LocalReferencedSourcesContext, MODEL_SELECTOR_LOGO_BASE_URL, MarkdownView, type MarkdownViewProps, Message, MessageAction, type MessageActionProps, MessageActions, type MessageActionsProps, MessageAvatar, type MessageAvatarProps, MessageBranch, MessageBranchContent, type MessageBranchContentProps, MessageBranchNext, type MessageBranchNextProps, MessageBranchPage, type MessageBranchPageProps, MessageBranchPrevious, type MessageBranchPreviousProps, type MessageBranchProps, MessageBranchSelector, type MessageBranchSelectorProps, MessageContent, type MessageContentProps, MessageEdit, MessageEditContent, type MessageEditContentProps, MessageEditForm, type MessageEditFormProps, type MessageEditProps, MessageEditProvider, type MessageEditProviderProps, MessageEditTrigger, type MessageEditTriggerProps, MessageFeedback, type MessageFeedbackProps, MessageForm, MessageFormDescription, type MessageFormDescriptionProps, MessageFormFallback, type MessageFormFallbackProps, MessageFormField, type MessageFormFieldProps, MessageFormFields, type MessageFormFieldsProps, type MessageFormProps, MessageFormProvider, type MessageFormProviderProps, MessageFormRoot, type MessageFormRootProps, MessageFormSubmit, type MessageFormSubmitProps, MessageFormTitle, type MessageFormTitleProps, MessageHeader, type MessageHeaderProps, type MessageProps, MessageResponse, type MessageResponseProps, MessageTable, MessageTableFallback, type MessageTableFallbackProps, type MessageTableProps, MessageToolbar, type MessageToolbarProps, MicSelector, MicSelectorContent, type MicSelectorContentProps, MicSelectorEmpty, type MicSelectorEmptyProps, MicSelectorInput, type MicSelectorInputProps, MicSelectorItem, type MicSelectorItemProps, MicSelectorLabel, type MicSelectorLabelProps, MicSelectorList, type MicSelectorListProps, type MicSelectorProps, MicSelectorTrigger, type MicSelectorTriggerProps, MicSelectorValue, type MicSelectorValueProps, ModelSelector, ModelSelectorContent, type ModelSelectorContentProps, ModelSelectorDialog, type ModelSelectorDialogProps, ModelSelectorEmpty, type ModelSelectorEmptyProps, ModelSelectorGroup, type ModelSelectorGroupProps, ModelSelectorInput, type ModelSelectorInputProps, ModelSelectorItem, type ModelSelectorItemProps, ModelSelectorList, type ModelSelectorListProps, ModelSelectorLogo, ModelSelectorLogoGroup, type ModelSelectorLogoGroupProps, type ModelSelectorLogoProps, ModelSelectorName, type ModelSelectorNameProps, type ModelSelectorProps, ModelSelectorSeparator, type ModelSelectorSeparatorProps, ModelSelectorShortcut, type ModelSelectorShortcutProps, ModelSelectorTrigger, type ModelSelectorTriggerProps, type MultiEnumFieldSpec, Node, NodeAction, type NodeActionProps, NodeContent, type NodeContentProps, NodeDescription, type NodeDescriptionProps, NodeFooter, type NodeFooterProps, NodeHeader, type NodeHeaderProps, type NodeProps, NodeTitle, type NodeTitleProps, NodeToolbar, type NodeToolbarProps, type NormalizedFormSpec, type NormalizedTableSpec, type NumberFieldSpec, OpenIn, OpenInChatGPT, type OpenInChatGPTProps, OpenInClaude, type OpenInClaudeProps, OpenInContent, type OpenInContentProps, OpenInCursor, type OpenInCursorProps, OpenInItem, type OpenInItemProps, OpenInLabel, type OpenInLabelProps, type OpenInProps, OpenInScira, type OpenInSciraProps, OpenInSeparator, type OpenInSeparatorProps, OpenInT3, type OpenInT3Props, OpenInTrigger, type OpenInTriggerProps, OpenInv0, type OpenInv0Props, PERSONA_SOURCES, PRODUCED_ASSET_ICONS, PackageInfo, PackageInfoChangeType, type PackageInfoChangeTypeProps, PackageInfoContent, type PackageInfoContentProps, PackageInfoDependencies, type PackageInfoDependenciesProps, PackageInfoDependency, type PackageInfoDependencyProps, PackageInfoDescription, type PackageInfoDescriptionProps, PackageInfoHeader, type PackageInfoHeaderProps, PackageInfoName, type PackageInfoNameProps, type PackageInfoProps, PackageInfoVersion, type PackageInfoVersionProps, Panel, type PanelProps, type PartDisplay, type PartGroupNode, Persona, type PersonaProps, type PersonaState, type PersonaVariant, Plan, PlanAction, type PlanActionProps, PlanContent, type PlanContentProps, PlanDescription, type PlanDescriptionProps, PlanFooter, type PlanFooterProps, PlanHeader, type PlanHeaderProps, type PlanProps, PlanTitle, type PlanTitleProps, PlanTrigger, type PlanTriggerProps, ProducedAssetTree, type ProducedAssetTreeProps, PromptInput, PromptInputActionAddAttachments, type PromptInputActionAddAttachmentsProps, PromptInputActionAddScreenshot, type PromptInputActionAddScreenshotProps, PromptInputActionMenu, PromptInputActionMenuContent, type PromptInputActionMenuContentProps, PromptInputActionMenuItem, type PromptInputActionMenuItemProps, type PromptInputActionMenuProps, PromptInputActionMenuTrigger, type PromptInputActionMenuTriggerProps, PromptInputBody, type PromptInputBodyProps, PromptInputButton, type PromptInputButtonProps, type PromptInputButtonTooltip, PromptInputCommand, PromptInputCommandEmpty, type PromptInputCommandEmptyProps, PromptInputCommandGroup, type PromptInputCommandGroupProps, PromptInputCommandInput, type PromptInputCommandInputProps, PromptInputCommandItem, type PromptInputCommandItemProps, PromptInputCommandList, type PromptInputCommandListProps, type PromptInputCommandProps, PromptInputCommandSeparator, type PromptInputCommandSeparatorProps, type PromptInputControllerProps, PromptInputFooter, type PromptInputFooterProps, PromptInputHeader, type PromptInputHeaderProps, PromptInputHoverCard, PromptInputHoverCardContent, type PromptInputHoverCardContentProps, type PromptInputHoverCardProps, PromptInputHoverCardTrigger, type PromptInputHoverCardTriggerProps, type PromptInputMessage, type PromptInputProps, PromptInputProvider, type PromptInputProviderProps, PromptInputSelect, PromptInputSelectContent, type PromptInputSelectContentProps, PromptInputSelectItem, type PromptInputSelectItemProps, type PromptInputSelectProps, PromptInputSelectTrigger, type PromptInputSelectTriggerProps, PromptInputSelectValue, type PromptInputSelectValueProps, PromptInputStop, type PromptInputStopProps, PromptInputSubmit, type PromptInputSubmitAction, type PromptInputSubmitProps, PromptInputTab, PromptInputTabBody, type PromptInputTabBodyProps, PromptInputTabItem, type PromptInputTabItemProps, PromptInputTabLabel, type PromptInputTabLabelProps, type PromptInputTabProps, PromptInputTabsList, type PromptInputTabsListProps, PromptInputTextarea, type PromptInputTextareaProps, PromptInputTools, type PromptInputToolsProps, Queue, QueueItem, QueueItemAction, type QueueItemActionProps, QueueItemActions, type QueueItemActionsProps, QueueItemAttachment, type QueueItemAttachmentProps, QueueItemContent, type QueueItemContentProps, QueueItemDescription, type QueueItemDescriptionProps, QueueItemFile, type QueueItemFileProps, QueueItemImage, type QueueItemImageProps, QueueItemIndicator, type QueueItemIndicatorProps, type QueueItemProps, QueueList, type QueueListProps, type QueueMessage, type QueueMessagePart, type QueueProps, QueueSection, QueueSectionContent, type QueueSectionContentProps, QueueSectionLabel, type QueueSectionLabelProps, type QueueSectionProps, QueueSectionTrigger, type QueueSectionTriggerProps, type QueueTodo, Reasoning, ReasoningContent, type ReasoningContentProps, type ReasoningProps, ReasoningTrigger, type ReasoningTriggerProps, type ReferencedSourcesContext, type RenderCell, Sandbox, SandboxContent, type SandboxContentProps, SandboxHeader, type SandboxHeaderProps, type SandboxProps, type SandboxRootProps, SandboxTabContent, type SandboxTabContentProps, SandboxTabs, SandboxTabsBar, type SandboxTabsBarProps, SandboxTabsList, type SandboxTabsListProps, type SandboxTabsProps, SandboxTabsTrigger, type SandboxTabsTriggerProps, SchemaDisplay, SchemaDisplayBody, type SchemaDisplayBodyProps, SchemaDisplayContent, type SchemaDisplayContentProps, SchemaDisplayDescription, type SchemaDisplayDescriptionProps, SchemaDisplayExample, type SchemaDisplayExampleProps, SchemaDisplayHeader, type SchemaDisplayHeaderProps, SchemaDisplayMethod, type SchemaDisplayMethodProps, SchemaDisplayParameter, type SchemaDisplayParameterProps, SchemaDisplayParameters, type SchemaDisplayParametersProps, SchemaDisplayPath, type SchemaDisplayPathProps, SchemaDisplayProperty, type SchemaDisplayPropertyProps, type SchemaDisplayProps, SchemaDisplayRequest, type SchemaDisplayRequestProps, SchemaDisplayResponse, type SchemaDisplayResponseProps, type SelectionSnapshot, SelectionToolbar, type SelectionToolbarProps, Shimmer, Snippet, SnippetAddon, type SnippetAddonProps, SnippetCopyButton, type SnippetCopyButtonProps, SnippetInput, type SnippetInputProps, type SnippetProps, SnippetText, type SnippetTextProps, Source, SourceList, type SourceListItem, type SourceListProps, type SourceProps, Sources, SourcesContent, type SourcesContentProps, type SourcesProps, SourcesTrigger, type SourcesTriggerProps, SpeechInput, type SpeechInputProps, StackTrace, StackTraceActions, type StackTraceActionsProps, StackTraceContent, type StackTraceContentProps, StackTraceCopyButton, type StackTraceCopyButtonProps, StackTraceError, StackTraceErrorMessage, type StackTraceErrorMessageProps, type StackTraceErrorProps, StackTraceErrorType, type StackTraceErrorTypeProps, StackTraceExpandButton, type StackTraceExpandButtonProps, StackTraceFrames, type StackTraceFramesProps, StackTraceHeader, type StackTraceHeaderProps, type StackTraceProps, StreamingSuggestions, type StreamingSuggestionsProps, type StringFieldSpec, Suggestion, SuggestionLoading, type SuggestionLoadingProps, type SuggestionProps, Suggestions, type SuggestionsProps, type TableRowData, type TableSort, type TableSpec, Task, TaskContent, type TaskContentProps, TaskItem, TaskItemFile, type TaskItemFileProps, type TaskItemProps, type TaskProps, TaskTrigger, type TaskTriggerProps, Terminal, TerminalActions, type TerminalActionsProps, TerminalClearButton, type TerminalClearButtonProps, TerminalContent, type TerminalContentProps, TerminalCopyButton, type TerminalCopyButtonProps, TerminalHeader, type TerminalHeaderProps, type TerminalProps, TerminalStatus, type TerminalStatusProps, TerminalTitle, type TerminalTitleProps, Test, TestDuration, type TestDurationProps, TestError, TestErrorMessage, type TestErrorMessageProps, type TestErrorProps, TestErrorStack, type TestErrorStackProps, TestName, type TestNameProps, type TestProps, TestResults, TestResultsContent, type TestResultsContentProps, TestResultsDuration, type TestResultsDurationProps, TestResultsHeader, type TestResultsHeaderProps, TestResultsMeta, type TestResultsMetaProps, TestResultsProgress, type TestResultsProgressProps, type TestResultsProps, TestResultsSummary, type TestResultsSummaryProps, TestStatus, type TestStatusProps, TestSuite, TestSuiteContent, type TestSuiteContentProps, TestSuiteName, type TestSuiteNameProps, type TestSuiteProps, TestSuiteStats, type TestSuiteStatsProps, type TextInputContext, type TextShimmerProps, Tool, ToolContent, type ToolContentProps, ToolDetails, type ToolDetailsProps, ToolHeader, type ToolHeaderProps, ToolInput, type ToolInputProps, ToolOutput, type ToolOutputProps, type ToolPart, type ToolProps, ToolResultCard, type ToolResultCardProps, Toolbar, type ToolbarProps, Transcription, type TranscriptionProps, TranscriptionSegment, type TranscriptionSegmentProps, UserMessage, type UserMessageProps, VoiceSelector, VoiceSelectorAccent, type VoiceSelectorAccentProps, VoiceSelectorAge, type VoiceSelectorAgeProps, VoiceSelectorAttributes, type VoiceSelectorAttributesProps, VoiceSelectorBullet, type VoiceSelectorBulletProps, VoiceSelectorContent, type VoiceSelectorContentProps, VoiceSelectorDescription, type VoiceSelectorDescriptionProps, VoiceSelectorDialog, type VoiceSelectorDialogProps, VoiceSelectorEmpty, type VoiceSelectorEmptyProps, VoiceSelectorGender, type VoiceSelectorGenderProps, VoiceSelectorGroup, type VoiceSelectorGroupProps, VoiceSelectorInput, type VoiceSelectorInputProps, VoiceSelectorItem, type VoiceSelectorItemProps, VoiceSelectorList, type VoiceSelectorListProps, VoiceSelectorName, type VoiceSelectorNameProps, VoiceSelectorPreview, type VoiceSelectorPreviewProps, type VoiceSelectorProps, VoiceSelectorSeparator, type VoiceSelectorSeparatorProps, VoiceSelectorShortcut, type VoiceSelectorShortcutProps, VoiceSelectorTrigger, type VoiceSelectorTriggerProps, WebPreview, WebPreviewBody, type WebPreviewBodyProps, WebPreviewConsole, type WebPreviewConsoleProps, type WebPreviewContextValue, WebPreviewNavigation, WebPreviewNavigationButton, type WebPreviewNavigationButtonProps, type WebPreviewNavigationProps, type WebPreviewProps, WebPreviewUrl, type WebPreviewUrlProps, agentMessageVariants, badgeToneForValue, booleanFieldSchema, buildInteractiveTerminalTheme, buildPartGroups, cellFormatSchema, columnSpecSchema, compareCellValues, createLazyMermaidPlugin, defaultPartStatus, enumFieldSchema, enumOptionSchema, fieldLabel, fieldSpecSchema, formSpecSchema, formatCellValue, getAttachmentLabel, getMediaCategory, getStatusBadge, groupPartByType, highlightCode, initialFormValues, inlineCitationSourceLabel, integerFieldSchema, isEmptyCell, isGroupNode, isNumericFormat, lazyMermaid, messageActionsVariants, messageFeedbackVariants, messagesToMarkdown, multiEnumFieldSchema, normalizeFormSpec, normalizeTableSpec, numberFieldSchema, optionLabel, optionValue, partsFingerprint, preloadMermaid, readSelectionWithin, rollupStatus, statusFromToolState, stringFieldSchema, tableSpecSchema, useAssetPreviewRenderer, useAttachmentContext, useAttachmentsContext, useAudioDevices, useContextPanel, useJSXPreview, useMessageEdit, usePromptInputAttachments, usePromptInputController, usePromptInputReferencedSources, useProviderAttachments, useReasoning, useVoiceSelector, validateField, validateForm };
|
|
4986
|
+
export { Agent, AgentContent, type AgentContentProps, AgentEvent, type AgentEventProps, AgentHeader, type AgentHeaderProps, AgentInstructions, type AgentInstructionsProps, AgentMessage, type AgentMessageEmphasis, type AgentMessageProps, AgentOutput, type AgentOutputProps, type AgentProps, AgentStep, type AgentStepProps, AgentTimeline, type AgentTimelineProps, AgentTool, type AgentToolProps, AgentTools, type AgentToolsProps, ApprovalCard, ApprovalCardAccepted, type ApprovalCardAcceptedProps, ApprovalCardAction, type ApprovalCardActionProps, ApprovalCardActions, type ApprovalCardActionsProps, ApprovalCardApprove, type ApprovalCardApproveProps, ApprovalCardDeny, type ApprovalCardDenyProps, ApprovalCardDescription, type ApprovalCardDescriptionProps, ApprovalCardOptions, type ApprovalCardOptionsProps, type ApprovalCardProps, ApprovalCardReason, type ApprovalCardReasonProps, ApprovalCardRejected, type ApprovalCardRejectedProps, ApprovalCardRequest, type ApprovalCardRequestProps, ApprovalCardTarget, type ApprovalCardTargetProps, ApprovalCardTitle, type ApprovalCardTitleProps, Artifact, ArtifactAction, type ArtifactActionProps, ArtifactActions, type ArtifactActionsProps, ArtifactClose, type ArtifactCloseProps, ArtifactContent, type ArtifactContentProps, ArtifactDescription, type ArtifactDescriptionProps, ArtifactHeader, type ArtifactHeaderProps, type ArtifactProps, ArtifactTitle, type ArtifactTitleProps, AssetPreview, type AssetPreviewMode, type AssetPreviewProps, type AssetPreviewRenderer, Attachment, type AttachmentData, AttachmentEmpty, type AttachmentEmptyProps, AttachmentHoverCard, AttachmentHoverCardContent, type AttachmentHoverCardContentProps, type AttachmentHoverCardProps, AttachmentHoverCardTrigger, type AttachmentHoverCardTriggerProps, AttachmentInfo, type AttachmentInfoProps, type AttachmentMediaCategory, AttachmentPreview, type AttachmentPreviewProps, type AttachmentProps, AttachmentRemove, type AttachmentRemoveProps, type AttachmentVariant, Attachments, type AttachmentsContext, type AttachmentsProps, AudioPlayer, AudioPlayerControlBar, type AudioPlayerControlBarProps, AudioPlayerDurationDisplay, type AudioPlayerDurationDisplayProps, AudioPlayerElement, type AudioPlayerElementProps, AudioPlayerMuteButton, type AudioPlayerMuteButtonProps, type AudioPlayerPartProps, AudioPlayerPlayButton, type AudioPlayerPlayButtonProps, type AudioPlayerProps, AudioPlayerSeekBackwardButton, type AudioPlayerSeekBackwardButtonProps, AudioPlayerSeekForwardButton, type AudioPlayerSeekForwardButtonProps, AudioPlayerTimeDisplay, type AudioPlayerTimeDisplayProps, AudioPlayerTimeRange, type AudioPlayerTimeRangeProps, AudioPlayerVolumeRange, type AudioPlayerVolumeRangeProps, AudioVisualizer, type AudioVisualizerLevelState, type AudioVisualizerProps, type AudioVisualizerVariant, type BadgeTone, type BooleanFieldSpec, BrandMotionConfig, type BrandMotionConfigProps, Canvas, type CanvasProps, type CellFormat, ChainOfThought, ChainOfThoughtContent, type ChainOfThoughtContentProps, ChainOfThoughtHeader, type ChainOfThoughtHeaderProps, ChainOfThoughtImage, type ChainOfThoughtImageProps, type ChainOfThoughtProps, ChainOfThoughtSearchResult, type ChainOfThoughtSearchResultProps, ChainOfThoughtSearchResults, type ChainOfThoughtSearchResultsProps, ChainOfThoughtStep, type ChainOfThoughtStepProps, ChatGreeting, type ChatGreetingProps, ChatShell, type ChatShellProps, Checkpoint, CheckpointIcon, type CheckpointIconProps, type CheckpointProps, CheckpointTrigger, type CheckpointTriggerProps, CodeBlock, CodeBlockActions, CodeBlockContainer, CodeBlockContent, CodeBlockCopyButton, type CodeBlockCopyButtonProps, CodeBlockFilename, CodeBlockHeader, CodeBlockLanguageSelector, CodeBlockLanguageSelectorContent, type CodeBlockLanguageSelectorContentProps, CodeBlockLanguageSelectorItem, type CodeBlockLanguageSelectorItemProps, type CodeBlockLanguageSelectorProps, CodeBlockLanguageSelectorTrigger, type CodeBlockLanguageSelectorTriggerProps, CodeBlockLanguageSelectorValue, type CodeBlockLanguageSelectorValueProps, type CodeBlockProps, CodeBlockTitle, type ColumnSpec, Commit, CommitActions, type CommitActionsProps, CommitAuthor, CommitAuthorAvatar, type CommitAuthorAvatarProps, type CommitAuthorProps, CommitContent, type CommitContentProps, CommitCopyButton, type CommitCopyButtonProps, CommitFile, CommitFileAdditions, type CommitFileAdditionsProps, CommitFileChanges, type CommitFileChangesProps, CommitFileDeletions, type CommitFileDeletionsProps, CommitFileIcon, type CommitFileIconProps, CommitFileInfo, type CommitFileInfoProps, CommitFilePath, type CommitFilePathProps, type CommitFileProps, CommitFileStatus, type CommitFileStatusProps, CommitFiles, type CommitFilesProps, CommitHash, type CommitHashProps, CommitHeader, type CommitHeaderProps, CommitInfo, type CommitInfoProps, CommitMessage, type CommitMessageProps, CommitMetadata, type CommitMetadataProps, type CommitProps, CommitSeparator, type CommitSeparatorProps, CommitTimestamp, type CommitTimestampProps, Composer, type ComposerEffortProps, type ComposerModeProps, type ComposerProps, type ComposerShortcut, Confirmation, ConfirmationAccepted, type ConfirmationAcceptedProps, ConfirmationAction, type ConfirmationActionProps, ConfirmationActions, type ConfirmationActionsProps, ConfirmationApprove, type ConfirmationApproveProps, ConfirmationDeny, type ConfirmationDenyProps, ConfirmationDescription, type ConfirmationDescriptionProps, type ConfirmationProps, ConfirmationRejected, type ConfirmationRejectedProps, ConfirmationRequest, type ConfirmationRequestProps, ConfirmationTitle, type ConfirmationTitleProps, Connection, type ContextAsset, type ContextAssetType, ContextPanel, ContextPanelBody, type ContextPanelBodyProps, type ContextPanelContextValue, ContextPanelDetail, type ContextPanelDetailProps, ContextPanelHeader, type ContextPanelHeaderProps, type ContextPanelProps, ContextPanelProvider, type ContextPanelProviderProps, ContextPanelSection, type ContextPanelSectionProps, ContextPanelTrigger, type ContextPanelTriggerProps, type ContextPanelView, Controls, type ControlsProps, Conversation, ConversationContent, type ConversationContentProps, ConversationDownload, type ConversationDownloadProps, ConversationEmptyState, type ConversationEmptyStateProps, type ConversationProps, ConversationScrollButton, type ConversationScrollButtonProps, DiffView, type DiffViewProps, EMPTY_CELL, Edge, type EnumFieldSpec, type EnumOption, EnvironmentVariable, EnvironmentVariableCopyButton, type EnvironmentVariableCopyButtonProps, EnvironmentVariableGroup, type EnvironmentVariableGroupProps, EnvironmentVariableName, type EnvironmentVariableNameProps, type EnvironmentVariableProps, EnvironmentVariableRequired, type EnvironmentVariableRequiredProps, EnvironmentVariableValue, type EnvironmentVariableValueProps, EnvironmentVariables, EnvironmentVariablesContent, type EnvironmentVariablesContentProps, EnvironmentVariablesHeader, type EnvironmentVariablesHeaderProps, type EnvironmentVariablesProps, EnvironmentVariablesTitle, type EnvironmentVariablesTitleProps, EnvironmentVariablesToggle, type EnvironmentVariablesToggleProps, EvidenceChip, type EvidenceChipProps, type FeedbackType, type FieldSpec, FileTree, FileTreeActions, type FileTreeActionsProps, FileTreeFile, type FileTreeFileProps, FileTreeFolder, type FileTreeFolderProps, FileTreeIcon, type FileTreeIconProps, FileTreeName, type FileTreeNameProps, type FileTreeProps, type FileTreeVariant, type FormSpec, type FormSubmitState, type FormValue, type FormValues, Gallery, type GalleryImage, type GalleryMetaItem, type GalleryProps, type GetPartStatus, type GroupBy, type GroupByContext, type GroupKey, type GroupPartByTypeOptions, type GroupStatus, type GroupablePart, type GroupedNode, type GroupedPartRenderArgs, type GroupedPartRenderer, GroupedParts, type GroupedPartsProps, Image, type ImageProps, InlineCitation, InlineCitationCard, InlineCitationCardBody, type InlineCitationCardBodyProps, type InlineCitationCardProps, InlineCitationCardTrigger, type InlineCitationCardTriggerProps, InlineCitationCarousel, InlineCitationCarouselContent, type InlineCitationCarouselContentProps, InlineCitationCarouselHeader, type InlineCitationCarouselHeaderProps, InlineCitationCarouselIndex, type InlineCitationCarouselIndexProps, InlineCitationCarouselItem, type InlineCitationCarouselItemProps, InlineCitationCarouselNext, type InlineCitationCarouselNextProps, InlineCitationCarouselPrev, type InlineCitationCarouselPrevProps, type InlineCitationCarouselProps, type InlineCitationProps, InlineCitationQuote, type InlineCitationQuoteProps, InlineCitationSource, type InlineCitationSourceProps, type InlineCitationSourceRef, InlineCitationText, type InlineCitationTextProps, type IntegerFieldSpec, JSXPreview, JSXPreviewContent, type JSXPreviewContentProps, JSXPreviewError, type JSXPreviewErrorProps, type JSXPreviewProps, JSXPreviewSkeleton, type JSXPreviewSkeletonProps, type JSXPreviewStatus, LocalReferencedSourcesContext, MODEL_PROVIDER_LOGO_BASE_URL, MarkdownView, type MarkdownViewProps, Message, MessageAction, type MessageActionProps, MessageActions, type MessageActionsProps, MessageAvatar, type MessageAvatarProps, MessageBranch, MessageBranchContent, type MessageBranchContentProps, MessageBranchNext, type MessageBranchNextProps, MessageBranchPage, type MessageBranchPageProps, MessageBranchPrevious, type MessageBranchPreviousProps, type MessageBranchProps, MessageBranchSelector, type MessageBranchSelectorProps, MessageCompare, MessageCompareColumn, type MessageCompareColumnProps, type MessageCompareColumnsCount, type MessageCompareModel, type MessageCompareProps, MessageContent, type MessageContentProps, MessageEdit, MessageEditContent, type MessageEditContentProps, MessageEditForm, type MessageEditFormProps, type MessageEditProps, MessageEditProvider, type MessageEditProviderProps, MessageEditTrigger, type MessageEditTriggerProps, MessageFeedback, type MessageFeedbackProps, MessageForm, MessageFormDescription, type MessageFormDescriptionProps, MessageFormFallback, type MessageFormFallbackProps, MessageFormField, type MessageFormFieldProps, MessageFormFields, type MessageFormFieldsProps, type MessageFormProps, MessageFormProvider, type MessageFormProviderProps, MessageFormRoot, type MessageFormRootProps, MessageFormSubmit, type MessageFormSubmitProps, MessageFormTitle, type MessageFormTitleProps, MessageHeader, type MessageHeaderProps, type MessageProps, MessageResponse, type MessageResponseProps, MessageTable, MessageTableFallback, type MessageTableFallbackProps, type MessageTableProps, MessageToolbar, type MessageToolbarProps, MicSelector, MicSelectorContent, type MicSelectorContentProps, MicSelectorEmpty, type MicSelectorEmptyProps, MicSelectorInput, type MicSelectorInputProps, MicSelectorItem, type MicSelectorItemProps, MicSelectorLabel, type MicSelectorLabelProps, MicSelectorList, type MicSelectorListProps, type MicSelectorProps, MicSelectorTrigger, type MicSelectorTriggerProps, MicSelectorValue, type MicSelectorValueProps, ModelProviderLogo, ModelProviderLogoGroup, type ModelProviderLogoGroupProps, type ModelProviderLogoProps, type MultiEnumFieldSpec, Node, NodeAction, type NodeActionProps, NodeContent, type NodeContentProps, NodeDescription, type NodeDescriptionProps, NodeFooter, type NodeFooterProps, NodeHeader, type NodeHeaderProps, type NodeProps, NodeTitle, type NodeTitleProps, NodeToolbar, type NodeToolbarProps, type NormalizedFormSpec, type NormalizedTableSpec, type NumberFieldSpec, OpenIn, OpenInChatGPT, type OpenInChatGPTProps, OpenInClaude, type OpenInClaudeProps, OpenInContent, type OpenInContentProps, OpenInCursor, type OpenInCursorProps, OpenInItem, type OpenInItemProps, OpenInLabel, type OpenInLabelProps, type OpenInProps, OpenInScira, type OpenInSciraProps, OpenInSeparator, type OpenInSeparatorProps, OpenInT3, type OpenInT3Props, OpenInTrigger, type OpenInTriggerProps, OpenInv0, type OpenInv0Props, PERSONA_SOURCES, PRODUCED_ASSET_ICONS, PackageInfo, PackageInfoChangeType, type PackageInfoChangeTypeProps, PackageInfoContent, type PackageInfoContentProps, PackageInfoDependencies, type PackageInfoDependenciesProps, PackageInfoDependency, type PackageInfoDependencyProps, PackageInfoDescription, type PackageInfoDescriptionProps, PackageInfoHeader, type PackageInfoHeaderProps, PackageInfoName, type PackageInfoNameProps, type PackageInfoProps, PackageInfoVersion, type PackageInfoVersionProps, Panel, type PanelProps, type PartDisplay, type PartGroupNode, type PermissionMode, PermissionModeSelect, type PermissionModeSelectProps, Persona, type PersonaProps, type PersonaRiveEvent, type PersonaRiveEventCallback, type PersonaState, type PersonaVariant, Plan, PlanAction, type PlanActionProps, PlanApprove, type PlanApproveProps, PlanComment, type PlanCommentProps, PlanContent, type PlanContentProps, type PlanDecisionActionProps, PlanDescription, type PlanDescriptionProps, PlanFooter, type PlanFooterProps, PlanHeader, type PlanHeaderProps, type PlanProps, PlanRequestChanges, type PlanRequestChangesProps, type PlanStatus, PlanStatusLine, type PlanStatusLineProps, PlanTitle, type PlanTitleProps, PlanTrigger, type PlanTriggerProps, ProducedAssetTree, type ProducedAssetTreeProps, PromptInput, PromptInputActionAddAttachments, type PromptInputActionAddAttachmentsProps, PromptInputActionAddScreenshot, type PromptInputActionAddScreenshotProps, PromptInputActionMenu, PromptInputActionMenuContent, type PromptInputActionMenuContentProps, PromptInputActionMenuItem, type PromptInputActionMenuItemProps, type PromptInputActionMenuProps, PromptInputActionMenuTrigger, type PromptInputActionMenuTriggerProps, PromptInputBody, type PromptInputBodyProps, PromptInputButton, type PromptInputButtonProps, type PromptInputButtonTooltip, PromptInputCommand, PromptInputCommandEmpty, type PromptInputCommandEmptyProps, PromptInputCommandGroup, type PromptInputCommandGroupProps, PromptInputCommandInput, type PromptInputCommandInputProps, PromptInputCommandItem, type PromptInputCommandItemProps, PromptInputCommandList, type PromptInputCommandListProps, type PromptInputCommandProps, PromptInputCommandSeparator, type PromptInputCommandSeparatorProps, type PromptInputControllerProps, PromptInputEffort, type PromptInputEffortProps, PromptInputFooter, type PromptInputFooterProps, PromptInputHeader, type PromptInputHeaderProps, PromptInputHoverCard, PromptInputHoverCardContent, type PromptInputHoverCardContentProps, type PromptInputHoverCardProps, PromptInputHoverCardTrigger, type PromptInputHoverCardTriggerProps, type PromptInputMessage, PromptInputMode, type PromptInputModeProps, type PromptInputProps, PromptInputProvider, type PromptInputProviderProps, PromptInputSelect, PromptInputSelectContent, type PromptInputSelectContentProps, PromptInputSelectItem, type PromptInputSelectItemProps, type PromptInputSelectProps, PromptInputSelectTrigger, type PromptInputSelectTriggerProps, PromptInputSelectValue, type PromptInputSelectValueProps, PromptInputSlash, type PromptInputSlashProps, PromptInputSlashTextarea, type PromptInputSlashTextareaProps, PromptInputStop, type PromptInputStopProps, PromptInputSubmit, type PromptInputSubmitAction, type PromptInputSubmitProps, PromptInputTab, PromptInputTabBody, type PromptInputTabBodyProps, PromptInputTabItem, type PromptInputTabItemProps, PromptInputTabLabel, type PromptInputTabLabelProps, type PromptInputTabProps, PromptInputTabsList, type PromptInputTabsListProps, PromptInputTextarea, type PromptInputTextareaProps, PromptInputTools, type PromptInputToolsProps, Queue, QueueItem, QueueItemAction, type QueueItemActionProps, QueueItemActions, type QueueItemActionsProps, QueueItemAttachment, type QueueItemAttachmentProps, QueueItemContent, type QueueItemContentProps, QueueItemDescription, type QueueItemDescriptionProps, QueueItemFile, type QueueItemFileProps, QueueItemImage, type QueueItemImageProps, QueueItemIndicator, type QueueItemIndicatorProps, type QueueItemProps, QueueList, type QueueListProps, type QueueMessage, type QueueMessagePart, type QueueProps, QueueSection, QueueSectionContent, type QueueSectionContentProps, QueueSectionLabel, type QueueSectionLabelProps, type QueueSectionProps, QueueSectionTrigger, type QueueSectionTriggerProps, type QueueTodo, Reasoning, ReasoningContent, type ReasoningContentProps, type ReasoningProps, ReasoningTrigger, type ReasoningTriggerProps, type ReferencedSourcesContext, type RenderCell, Sandbox, SandboxContent, type SandboxContentProps, SandboxHeader, type SandboxHeaderProps, type SandboxProps, type SandboxRootProps, SandboxTabContent, type SandboxTabContentProps, SandboxTabs, SandboxTabsBar, type SandboxTabsBarProps, SandboxTabsList, type SandboxTabsListProps, type SandboxTabsProps, SandboxTabsTrigger, type SandboxTabsTriggerProps, SchemaDisplay, SchemaDisplayBody, type SchemaDisplayBodyProps, SchemaDisplayContent, type SchemaDisplayContentProps, SchemaDisplayDescription, type SchemaDisplayDescriptionProps, SchemaDisplayExample, type SchemaDisplayExampleProps, SchemaDisplayHeader, type SchemaDisplayHeaderProps, SchemaDisplayMethod, type SchemaDisplayMethodProps, SchemaDisplayParameter, type SchemaDisplayParameterProps, SchemaDisplayParameters, type SchemaDisplayParametersProps, SchemaDisplayPath, type SchemaDisplayPathProps, SchemaDisplayProperty, type SchemaDisplayPropertyProps, type SchemaDisplayProps, SchemaDisplayRequest, type SchemaDisplayRequestProps, SchemaDisplayResponse, type SchemaDisplayResponseProps, type SelectionSnapshot, SelectionToolbar, type SelectionToolbarProps, SessionHeader, type SessionHeaderProps, SessionStatusBar, type SessionStatusBarConnections, type SessionStatusBarProps, Shimmer, Snippet, SnippetAddon, type SnippetAddonProps, SnippetCopyButton, type SnippetCopyButtonProps, SnippetInput, type SnippetInputProps, type SnippetProps, SnippetText, type SnippetTextProps, Source, SourceList, type SourceListItem, type SourceListProps, type SourceProps, Sources, SourcesContent, type SourcesContentProps, type SourcesProps, SourcesTrigger, type SourcesTriggerProps, SpeechInput, type SpeechInputProps, StackTrace, StackTraceActions, type StackTraceActionsProps, StackTraceContent, type StackTraceContentProps, StackTraceCopyButton, type StackTraceCopyButtonProps, StackTraceError, StackTraceErrorMessage, type StackTraceErrorMessageProps, type StackTraceErrorProps, StackTraceErrorType, type StackTraceErrorTypeProps, StackTraceExpandButton, type StackTraceExpandButtonProps, StackTraceFrames, type StackTraceFramesProps, StackTraceHeader, type StackTraceHeaderProps, type StackTraceProps, StreamingSuggestions, type StreamingSuggestionsProps, type StringFieldSpec, Suggestion, SuggestionLoading, type SuggestionLoadingProps, type SuggestionProps, Suggestions, type SuggestionsProps, type TableRowData, type TableSort, type TableSpec, Task, TaskContent, type TaskContentProps, TaskItem, TaskItemFile, type TaskItemFileProps, type TaskItemProps, type TaskProps, TaskTrigger, type TaskTriggerProps, Test, TestDuration, type TestDurationProps, TestError, TestErrorMessage, type TestErrorMessageProps, type TestErrorProps, TestErrorStack, type TestErrorStackProps, TestName, type TestNameProps, type TestProps, TestResults, TestResultsContent, type TestResultsContentProps, TestResultsDuration, type TestResultsDurationProps, TestResultsHeader, type TestResultsHeaderProps, TestResultsMeta, type TestResultsMetaProps, TestResultsProgress, type TestResultsProgressProps, type TestResultsProps, TestResultsSummary, type TestResultsSummaryProps, TestStatus, type TestStatusProps, TestSuite, TestSuiteContent, type TestSuiteContentProps, TestSuiteName, type TestSuiteNameProps, type TestSuiteProps, TestSuiteStats, type TestSuiteStatsProps, type TextInputContext, type TextShimmerProps, TokenUsage, TokenUsageCache, type TokenUsageCacheProps, TokenUsageContent, TokenUsageContentBody, type TokenUsageContentBodyProps, TokenUsageContentFooter, type TokenUsageContentFooterProps, TokenUsageContentHeader, type TokenUsageContentHeaderProps, type TokenUsageContentProps, TokenUsageInput, type TokenUsageInputProps, TokenUsageOutput, type TokenUsageOutputProps, type TokenUsageProps, TokenUsageReasoning, type TokenUsageReasoningProps, TokenUsageTrigger, type TokenUsageTriggerProps, Tool, ToolContent, type ToolContentProps, ToolDetails, type ToolDetailsProps, ToolHeader, type ToolHeaderProps, ToolInput, type ToolInputProps, ToolOutput, type ToolOutputProps, type ToolPart, type ToolProps, ToolResultCard, type ToolResultCardProps, Toolbar, type ToolbarProps, Transcription, type TranscriptionProps, TranscriptionSegment, type TranscriptionSegmentProps, TurnStatus, type TurnStatusProps, type TurnStatusTokens, type UseAudioLevelOptions, type UseAudioLevelResult, UserMessage, type UserMessageProps, VoiceSelector, VoiceSelectorAccent, type VoiceSelectorAccentProps, VoiceSelectorAge, type VoiceSelectorAgeProps, VoiceSelectorAttributes, type VoiceSelectorAttributesProps, VoiceSelectorBullet, type VoiceSelectorBulletProps, VoiceSelectorContent, type VoiceSelectorContentProps, VoiceSelectorDescription, type VoiceSelectorDescriptionProps, VoiceSelectorDialog, type VoiceSelectorDialogProps, VoiceSelectorEmpty, type VoiceSelectorEmptyProps, VoiceSelectorGender, type VoiceSelectorGenderProps, VoiceSelectorGroup, type VoiceSelectorGroupProps, VoiceSelectorInput, type VoiceSelectorInputProps, VoiceSelectorItem, type VoiceSelectorItemProps, VoiceSelectorList, type VoiceSelectorListProps, VoiceSelectorName, type VoiceSelectorNameProps, VoiceSelectorPreview, type VoiceSelectorPreviewProps, type VoiceSelectorProps, VoiceSelectorSeparator, type VoiceSelectorSeparatorProps, VoiceSelectorShortcut, type VoiceSelectorShortcutProps, VoiceSelectorTrigger, type VoiceSelectorTriggerProps, WebPreview, WebPreviewBody, type WebPreviewBodyProps, WebPreviewConsole, type WebPreviewConsoleProps, type WebPreviewContextValue, WebPreviewNavigation, WebPreviewNavigationButton, type WebPreviewNavigationButtonProps, type WebPreviewNavigationProps, type WebPreviewProps, WebPreviewUrl, type WebPreviewUrlProps, agentMessageVariants, badgeToneForValue, booleanFieldSchema, buildPartGroups, cellFormatSchema, columnSpecSchema, compareCellValues, createLazyMermaidPlugin, defaultPartStatus, diffRowVariants, enumFieldSchema, enumOptionSchema, fieldLabel, fieldSpecSchema, formSpecSchema, formatCellValue, getAttachmentLabel, getMediaCategory, getStatusBadge, groupPartByType, highlightCode, initialFormValues, inlineCitationSourceLabel, integerFieldSchema, isEmptyCell, isGroupNode, isNumericFormat, lazyMermaid, messageActionsVariants, messageFeedbackVariants, messagesToMarkdown, multiEnumFieldSchema, normalizeFormSpec, normalizeTableSpec, numberFieldSchema, optionLabel, optionValue, partsFingerprint, preloadMermaid, readSelectionWithin, rollupStatus, statusFromToolState, stringFieldSchema, tableSpecSchema, useAssetPreviewRenderer, useAttachmentContext, useAttachmentsContext, useAudioDevices, useAudioLevel, useContextPanel, useJSXPreview, useMessageEdit, usePromptInputAttachments, usePromptInputController, usePromptInputReferencedSources, useProviderAttachments, useReasoning, useVoiceSelector, validateField, validateForm };
|