@hyperflow/chakra-ui
Application props, related types, and default component contracts.
Reading this reference
Read from the application root down to the part you want to replace. You do not need to read every supporting type to use a component.
| Section | Start here when you want to… |
|---|---|
| HyperflowApp | Configure the connection, routes, navigation, or application-wide replacements. |
| Default application components | Customize Layout, Login, RuntimeReload, or the Chakra Provider. |
| Default layout components | Customize the sidebar, top bar, or background-task drawer inside Layout. |
| Composer | Customize message input, attachments, submission, and session controls. |
| Timeline | Customize conversation entries, messages, tools, and feedback states. |
| Human-in-the-loop | Customize input, approval, and authorization panels. |
| Knowledge base | Customize the document collection, document items, and progress. |
| Base primitives | Compose custom surfaces with reusable visual building blocks. |
Each component lists its props, types, and default values. Follow the links to view type definitions and default components. Types from other packages link to their package reference.
HyperflowApp
HyperflowApp sets up the default Hyperflow application. Use the props below to configure it and replace its default components.
| Prop | Default | Type |
|---|---|---|
config | — | ClientConfigRequired. Runtime connection and authentication configuration. |
routes | [] | HyperflowRoute[]Adds pages or replaces a default page with the same normalized path. Supplied routes retain their array order. System routes remain reserved. |
navItems | [] | NavItem[]Links rendered by the default sidebar. |
fallback | — | ReactNodeContent rendered while the client initializes. |
layoutComponent | Layout | React.ComponentType<{ children: React.ReactNode }>Replaces the frame around protected routes. |
loginComponent | Login | React.ComponentTypeReplaces the login screen. |
runtimeReloadComponent | RuntimeReload | React.ComponentTypeReplaces the runtime recovery screen. |
chakraProvider | Provider | React.ComponentType<{ children: React.ReactNode }>Replaces the root Chakra provider. |
HyperflowAppProps
Extends AppCoreProps with Chakra UI defaults.
export interface HyperflowAppProps
extends Omit<
AppCoreProps,
"layoutComponent" | "loginComponent" | "runtimeReloadComponent"
> {
layoutComponent?: React.ComponentType<{ children: React.ReactNode }>;
loginComponent?: React.ComponentType;
runtimeReloadComponent?: React.ComponentType;
chakraProvider?: React.ComponentType<{ children: React.ReactNode }>;
}Default application components
HyperflowApp uses these components by default. To customize one, create a component that renders it with your chosen props, then pass your component to the corresponding HyperflowApp prop.
Choose a component: Layout · Login · RuntimeReload · Provider.
Layout
The application frame around protected routes. It renders page content alongside the sidebar, top bar, and background-task drawer.
| Prop | Default | Type |
|---|---|---|
children | — | React.ReactNodeRequired. Main routed content rendered inside the layout. |
sidebarComponent | SessionSidebar | React.ComponentType<SidebarComponentProps>Optional sidebar component used to replace the default SessionSidebar implementation. |
topbarComponent | SessionTopBar | React.ComponentTypeOptional top bar component used to replace the default SessionTopBar implementation. |
drawerComponent | SessionBackgroundTasksDrawer | React.ComponentTypeOptional drawer component used to replace the default background-task drawer. |
LayoutProps
Defined in @hyperflow/chakra-ui.
/**
* Default Chakra UI layout shell for Hyperflow applications.
*
* Renders the active sidebar component on the left, the top bar and routed
* page content in the main area on the right.
*
* Pass this as the `layoutComponent` to `HyperflowApp` from `@hyperflow/chakra-ui`.
* The router will inject the active route as `children` automatically.
*/
export interface LayoutProps {
/** Main routed content rendered inside the layout. */
children: React.ReactNode;
/**
* Optional sidebar component used to replace the default `SessionSidebar`
* implementation.
*/
sidebarComponent?: React.ComponentType<SidebarComponentProps>;
/**
* Optional top bar component used to replace the default `SessionTopBar`
* implementation.
*/
topbarComponent?: React.ComponentType;
/**
* Optional drawer component used to replace the default background-task
* drawer.
*/
drawerComponent?: React.ComponentType;
}Related types: SidebarComponentProps.
SidebarComponentProps
Defined in @hyperflow/chakra-ui.
/**
* Props accepted by sidebar components used in {@link Layout}.
*/
export type SidebarComponentProps = BaseSidebarProps | SessionSidebarProps;Related types: BaseSidebarProps, SessionSidebarProps.
BaseSidebarProps
Defined in @hyperflow/chakra-ui.
interface BaseSidebarProps {
/**
* Optional custom content rendered between the navigation section and the footer.
*/
children?: React.ReactNode;
/**
* Custom header component used to render the top section of the sidebar.
*/
headerComponent?: React.ComponentType<SidebarHeaderProps>;
/**
* Custom footer component used to render the bottom section of the sidebar.
*/
footerComponent?: React.ComponentType<SidebarFooterProps>;
}Related types: SidebarHeaderProps, SidebarFooterProps.
Login
The screen rendered at /login. Its props customize the default form without replacing its authentication behavior.
| Prop | Default | Type |
|---|---|---|
logo | — | stringOptional logo URL shown above the form. |
title | "Accedi ad Hyperflow" | stringScreen title displayed above the form. |
redirectTo | "/sessions/new" | stringRoute navigated to after successful login. |
LoginProps
Defined in @hyperflow/chakra-ui.
type LoginProps = {
/** Optional logo URL shown above the form. */
logo?: string;
/** Screen title displayed above the form. */
title?: string;
/** Route navigated to after successful login. */
redirectTo?: string;
};RuntimeReload
The runtime recovery screen. It waits for the backend to become available and returns to the requested application route.
| Prop | Default | Type |
|---|---|---|
| — | — | — No props. |
Provider
The root Chakra provider. It installs the Hyperflow Chakra system and color-mode support. Its ColorModeProviderProps contract extends ThemeProviderProps from next-themes.
| Prop | Default | Type |
|---|---|---|
children | — | ReactNodeApplication content. |
defaultTheme | "system" | stringInitial theme when no saved preference is available. |
enableSystem | true | booleanEnables the system color-scheme preference. |
forcedTheme | — | stringForces a theme for the current page. |
storageKey | "theme" | stringLocal-storage key for the theme preference. |
attribute | "class" | "class" | `data-${string}` | Array<"class" | `data-${string}`>HTML attribute updated when the theme changes. |
disableTransitionOnChange | true | booleanDisables transitions while switching themes. |
enableColorScheme | true | booleanApplies the active color scheme to browser controls. |
themes | ["light", "dark"] | string[]Available theme names. |
value | — | Record<string, string>Maps theme names to attribute values. |
nonce | — | stringNonce applied to the theme script. |
scriptProps | — | ScriptPropsAdditional theme-script attributes. |
ColorModeProviderProps
interface ColorModeProviderProps extends ThemeProviderProps {}ColorModeButtonProps
interface ColorModeButtonProps extends Omit<IconButtonProps, "aria-label"> {
}Default layout components
These components implement the regions exposed by Layout. Replace one region through its corresponding layout prop, or wrap its default component to customize the props below.
SessionSidebar
Session navigation and application links. The header and footer are replaceable independently.
| Prop | Default | Type |
|---|---|---|
headerComponent | SidebarHeader | React.ComponentType<SidebarHeaderProps>Custom header component used to render the top section of the sidebar. |
footerComponent | SidebarFooter | React.ComponentType<SidebarFooterProps>Custom footer component used to render the bottom section of the sidebar. |
customUngroupedDisplayName | — | stringDisplay label for sessions not assigned to a custom group. |
statusGroupLabels | — | Record<string, string>Display labels for status-group headers, keyed by normalized status. |
SessionSidebarProps
Defined in @hyperflow/chakra-ui.
/**
* Props for the session-oriented sidebar preset.
*/
export interface SessionSidebarProps {
/** Custom header component used to render the top section of the sidebar. */
headerComponent?: React.ComponentType<SidebarHeaderProps>;
/** Custom footer component used to render the bottom section of the sidebar. */
footerComponent?: React.ComponentType<SidebarFooterProps>;
/** Display label for sessions not assigned to a custom group. */
customUngroupedDisplayName?: string;
/** Display labels for status-group headers, keyed by normalized status. */
statusGroupLabels?: Record<string, string>;
}Related types: SidebarHeaderProps, SidebarFooterProps.
SidebarHeaderProps
Defined in @hyperflow/chakra-ui.
interface SidebarHeaderProps {
/**
* Custom title component used to render the sidebar title.
*/
titleComponent?: React.ComponentType;
}SidebarFooterProps
Defined in @hyperflow/chakra-ui.
type SidebarFooterProps = {
/** Custom account menu rendered at the bottom of the sidebar. */
accountMenuComponent?: ComponentType<SidebarAccountMenuProps>;
};Related types: SidebarAccountMenuProps.
SidebarAccountMenuProps
Defined in @hyperflow/chakra-ui.
type SidebarAccountMenuProps = {
items?: SidebarAccountMenuItemConfig[];
showDisplayName?: boolean;
collapseLabel?: boolean;
positioning?: ComponentProps<typeof Menu.Root>["positioning"];
};Related types: SidebarAccountMenuItemConfig.
SessionTopBar
Page-level navigation and session actions above the active page.
| Prop | Default | Type |
|---|---|---|
moreMenuComponent | SessionMoreMenu | ComponentType<SessionMoreMenuProps> | undefinedSession action menu. Defaults to SessionMoreMenu. |
moreMenuLabels | — | SessionMoreMenuLabels | undefinedOverrides visible copy in the default session action menu. |
SessionTopBarProps
Defined in @hyperflow/chakra-ui.
type SessionTopBarProps = {
/** Session action menu. Defaults to {@link SessionMoreMenu}. */
moreMenuComponent?: ComponentType<SessionMoreMenuProps> | undefined;
/** Overrides visible copy in the default session action menu. */
moreMenuLabels?: SessionMoreMenuLabels | undefined;
};Related types: SessionMoreMenuProps, SessionMoreMenuLabels.
SessionMoreMenuProps
Defined in @hyperflow/chakra-ui.
type SessionMoreMenuProps = {
session: Session;
customGroups?: SessionCustomGroup[] | undefined;
onRename: (title: string) => Promise<void>;
onMoveToGroup?: ((customGroupId: string | null) => void | Promise<void>) | undefined;
onDelete: () => Promise<void>;
/** Overrides visible copy in the session action menu and dialogs. */
labels?: SessionMoreMenuLabels | undefined;
};Related types: Session, SessionCustomGroup, SessionMoreMenuLabels.
SessionMoreMenuLabels
Defined in @hyperflow/chakra-ui.
type SessionMoreMenuLabels = {
backgroundTasks?: string;
moveToGroup?: string;
removeFromGroup?: string;
rename?: string;
delete?: string;
options?: string;
renameDialogTitle?: string;
deleteDialogTitle?: string;
titleLabel?: string;
deleteConfirmation?: string;
};SessionBackgroundTasksDrawer
The background-task panel, with customizable labels for tasks and their transcripts.
| Prop | Default | Type |
|---|---|---|
labels | — | BackgroundTasksPanelLabels | undefinedOverrides visible copy in the default task panel. |
conversationLabels | — | BackgroundTaskConversationLabels | undefinedOverrides visible copy in conversation transcripts. |
terminalLabels | — | BackgroundTaskTerminalLabels | undefinedOverrides visible copy in terminal transcripts. |
SessionBackgroundTasksDrawerProps
Defined in @hyperflow/chakra-ui.
type SessionBackgroundTasksDrawerProps = {
/** Overrides visible copy in the default task panel. */
labels?: BackgroundTasksPanelLabels | undefined;
/** Overrides visible copy in conversation transcripts. */
conversationLabels?: BackgroundTaskConversationLabels | undefined;
/** Overrides visible copy in terminal transcripts. */
terminalLabels?: BackgroundTaskTerminalLabels | undefined;
};Related types: BackgroundTasksPanelLabels, BackgroundTaskConversationLabels, BackgroundTaskTerminalLabels.
BackgroundTasksPanelLabels
Defined in @hyperflow/chakra-ui.
type BackgroundTasksPanelLabels = {
title?: string;
close?: string;
running?: string;
finishedOne?: string;
finishedMany?: string;
clearFinished?: string;
empty?: string;
defaultLabel?: string;
cancelTask?: string;
removeTask?: string;
cancel?: string;
remove?: string;
back?: string;
tool?: string;
pending?: string;
inputTokens?: string;
outputTokens?: string;
};BackgroundTaskConversationLabels
Defined in @hyperflow/chakra-ui.
type BackgroundTaskConversationLabels = {
tool?: string;
pending?: string;
};BackgroundTaskTerminalLabels
Defined in @hyperflow/chakra-ui.
type BackgroundTaskTerminalLabels = {
title?: string;
waiting?: string;
};SidebarHeader
| Prop | Default | Type |
|---|---|---|
titleComponent | SidebarTitle | React.ComponentTypeCustom title component used to render the sidebar title. |
SidebarFooter
| Prop | Default | Type |
|---|---|---|
accountMenuComponent | SidebarAccountMenu | ComponentType<SidebarAccountMenuProps>Custom account menu rendered at the bottom of the sidebar. |
Related types: SidebarAccountMenuProps.
SidebarAccountMenuItemConfig
type SidebarAccountMenuItemConfig = {
key: string;
component: ComponentType<SidebarAccountMenuItemProps>;
separatorBefore?: boolean;
};Related types: SidebarAccountMenuItemProps.
SessionMoreMenu
| Prop | Default | Type |
|---|---|---|
session | — | SessionRequired. |
customGroups | — | SessionCustomGroup[] | undefined |
onRename | — | (title: string) => Promise<void>Required. |
onMoveToGroup | — | ((customGroupId: string | null) => void | Promise<void>) | undefined |
onDelete | — | () => Promise<void>Required. |
labels | — | SessionMoreMenuLabels | undefinedOverrides visible copy in the session action menu and dialogs. |
Related types: Session, SessionCustomGroup, SessionMoreMenuLabels.
TriggerButtonLayout
type TriggerButtonLayout = "compact" | "panel";SelectionMenuPlacement
type SelectionMenuPlacement = "top-start" | "top-end" | "left-start";SidebarAccountMenuItemProps
type SidebarAccountMenuItemProps = {
onCloseMenu?: () => void;
};Composer
Compose messages, attachments, and session controls. Start with Composer; replace an input, button, attachment surface, or control only when needed.
Components: Composer · ComposerTextInput · ComposerSendButton · ComposerAttachmentMenu · ComposerAttachmentPreview · AgentSelector · ModelReasoningSelector · ToolhostSelector · ContextWindowMeter · SessionOptionsPanel.
Composer
| Prop | Default | Type |
|---|---|---|
inputComponent | ComposerTextInput | ComponentType<ComposerTextInputProps> | undefined |
sendButtonComponent | ComposerSendButton | ComponentType<ComposerSendButtonProps> | undefined |
attachmentMenuComponent | ComposerAttachmentMenu | | ComponentType<ComposerAttachmentMenuProps> | undefined |
attachmentPreviewComponent | ComposerAttachmentPreview | | ComponentType<ComposerAttachmentPreviewProps> | undefined |
slotRenderers | — | ComposerSlotRenderers | undefined |
onSubmitOverride | — | | (( composer: UseComposer, ) => Promise<ComposerSubmitResult | void> | ComposerSubmitResult | void) | undefined |
submitting | false | boolean | undefined |
slotSurfaceVariant | — | ComposerSlotSurfaceVariant | undefinedVisual treatment for top and bottom slot regions. Defaults to the neutral rows. |
placement | "standalone" | ComposerPlacement | undefinedVisual context for the composer. Defaults to the standalone new-session placement. |
dropTarget | — | HTMLElement | null | undefinedPositioned element that accepts dropped files. Defaults to the composer itself. |
ComposerProps
interface ComposerProps {
inputComponent?: ComponentType<ComposerTextInputProps> | undefined;
sendButtonComponent?: ComponentType<ComposerSendButtonProps> | undefined;
attachmentMenuComponent?: ComponentType<ComposerAttachmentMenuProps> | undefined;
attachmentPreviewComponent?: ComponentType<ComposerAttachmentPreviewProps> | undefined;
slotRenderers?: ComposerSlotRenderers | undefined;
onSubmitOverride?: ((composer: UseComposer) => Promise<ComposerSubmitResult | void> | ComposerSubmitResult | void) | undefined;
submitting?: boolean | undefined;
/** Visual treatment for top and bottom slot regions. Defaults to the neutral rows. */
slotSurfaceVariant?: ComposerSlotSurfaceVariant | undefined;
/** Visual context for the composer. Defaults to the standalone new-session placement. */
placement?: ComposerPlacement | undefined;
/** Positioned element that accepts dropped files. Defaults to the composer itself. */
dropTarget?: HTMLElement | null | undefined;
}Related types: ComposerTextInputProps, ComposerSendButtonProps, ComposerAttachmentMenuProps, ComposerAttachmentPreviewProps, ComposerSlotRenderers, UseComposer, ComposerSubmitResult, ComposerSlotSurfaceVariant, ComposerPlacement.
ComposerTextInput
Controlled composer input with CSS-based auto-grow behavior. Enter submits the composer; Shift+Enter inserts a newline.
| Prop | Default | Type |
|---|---|---|
value | — | stringRequired. |
disabled | — | booleanRequired. |
onChange | — | ChangeEventHandler<HTMLTextAreaElement>Required. |
onKeyDown | — | KeyboardEventHandler<HTMLTextAreaElement>Required. |
onDragOver | — | DragEventHandler<HTMLElement> | undefined |
onDrop | — | DragEventHandler<HTMLElement> | undefined |
onPaste | — | ClipboardEventHandler<HTMLTextAreaElement> | undefined |
placeholder | "Scrivi un messaggio..." | string | undefinedPlaceholder shown while the draft is empty. |
ComposerTextInputProps
interface ComposerTextInputProps {
value: string;
disabled: boolean;
onChange: ChangeEventHandler<HTMLTextAreaElement>;
onKeyDown: KeyboardEventHandler<HTMLTextAreaElement>;
onDragOver?: DragEventHandler<HTMLElement> | undefined;
onDrop?: DragEventHandler<HTMLElement> | undefined;
onPaste?: ClipboardEventHandler<HTMLTextAreaElement> | undefined;
/** Placeholder shown while the draft is empty. */
placeholder?: string | undefined;
}ComposerSendButton
| Prop | Default | Type |
|---|---|---|
submitLabel | "Invia" | string | undefined |
canSubmit | — | booleanRequired. |
isBusy | — | booleanRequired. |
isGenerating | false | boolean |
isStopping | false | boolean | undefined |
onStop | — | MouseEventHandler<HTMLButtonElement> |
ComposerSendButtonProps
interface ComposerSendButtonProps {
submitLabel?: string | undefined;
canSubmit: boolean;
isBusy: boolean;
isGenerating?: boolean;
isStopping?: boolean | undefined;
onStop?: MouseEventHandler<HTMLButtonElement>;
}ComposerAttachmentMenu
| Prop | Default | Type |
|---|---|---|
inputProps | — | Pick< InputHTMLAttributes<HTMLInputElement>, "disabled" | "onChange" | "accept" >Required. Native file input props supplied by useComposer().draft. |
ComposerAttachmentMenuProps
type ComposerAttachmentMenuProps = {
/** Native file input props supplied by `useComposer().draft`. */
inputProps: Pick<InputHTMLAttributes<HTMLInputElement>, "disabled" | "onChange" | "accept">;
};ComposerAttachmentPreview
| Prop | Default | Type |
|---|---|---|
attachments | — | readonly ComposerAttachmentItem[]Required. |
ComposerAttachmentPreviewProps
type ComposerAttachmentPreviewProps = {
attachments: readonly ComposerAttachmentItem[];
};Related types: ComposerAttachmentItem.
AgentSelector
Agent selection slot backed by the active composer state.
| Prop | Default | Type |
|---|---|---|
slot | — | ComposerSlotControls["agent"]Required. |
disabled | false | boolean |
labels | — | AgentSelectorLabels | undefinedOptional labels for the trigger, menu title, and empty state. |
triggerProps | — | SelectionMenuProps["triggerProps"] |
layout | — | SelectionMenuProps["layout"] | undefinedVisual layout used by the trigger and menu. |
AgentSelectorProps
type AgentSelectorProps = ComponentProps<SlotRenderer<ComposerSlotControls["agent"]>> & {
/** Optional labels for the trigger, menu title, and empty state. */
labels?: AgentSelectorLabels | undefined;
triggerProps?: SelectionMenuProps["triggerProps"];
/** Visual layout used by the trigger and menu. */
layout?: SelectionMenuProps["layout"] | undefined;
};Related types: SlotRenderer, ComposerSlotControls, AgentSelectorLabels, SelectionMenuProps.
ModelReasoningSelector
Nested provider, model, and reasoning selector slot. The available menu structure comes from the active composer state.
| Prop | Default | Type |
|---|---|---|
slot | — | ComposerSlotControls["model"]Required. |
disabled | false | boolean |
labels | — | ModelReasoningSelectorLabels | undefinedOptional labels for the trigger and provider/model/reasoning sections. |
triggerProps | — | | Partial<Pick<TriggerButtonProps, "bg" | "_hover" | "labelProps">> | undefined |
layout | "compact" | TriggerButtonProps["layout"] | undefinedVisual layout used by the trigger and menu. |
ModelReasoningSelectorProps
type ModelReasoningSelectorProps = ComponentProps<SlotRenderer<ComposerSlotControls["model"]>> & {
/** Optional labels for the trigger and provider/model/reasoning sections. */
labels?: ModelReasoningSelectorLabels | undefined;
triggerProps?: Partial<Pick<TriggerButtonProps, "bg" | "_hover" | "labelProps">> | undefined;
/** Visual layout used by the trigger and menu. */
layout?: TriggerButtonProps["layout"] | undefined;
};Related types: SlotRenderer, ComposerSlotControls, ModelReasoningSelectorLabels, TriggerButtonProps.
ToolhostSelector
Toolhost selection slot backed by the active composer state.
| Prop | Default | Type |
|---|---|---|
slot | — | ComposerSlotControls["toolhost"]Required. |
disabled | false | boolean |
labels | — | ToolhostSelectorLabels | undefinedOptional labels for the trigger, title, and empty state. |
triggerProps | — | | Partial<Pick<TriggerButtonProps, "bg" | "_hover" | "labelProps">> | undefined |
currentToolhostId | — | string | undefinedRuntime id of the current desktop toolhost, used to label it as the local computer. |
categoryOrder | — | readonly ToolhostCategory[] | undefinedPreferred display order for the built-in toolhost categories. |
layout | "compact" | TriggerButtonProps["layout"] | undefinedVisual layout used by the trigger and menu. |
ToolhostSelectorProps
type ToolhostSelectorProps = ComponentProps<SlotRenderer<ComposerSlotControls["toolhost"]>> & {
/** Optional labels for the trigger, title, and empty state. */
labels?: ToolhostSelectorLabels | undefined;
triggerProps?: Partial<Pick<TriggerButtonProps, "bg" | "_hover" | "labelProps">> | undefined;
/** Runtime id of the current desktop toolhost, used to label it as the local computer. */
currentToolhostId?: string | undefined;
/** Preferred display order for the built-in toolhost categories. */
categoryOrder?: readonly ToolhostCategory[] | undefined;
/** Visual layout used by the trigger and menu. */
layout?: TriggerButtonProps["layout"] | undefined;
};Related types: SlotRenderer, ComposerSlotControls, ToolhostSelectorLabels, ToolhostCategory, TriggerButtonProps.
ContextWindowMeter
Shows context-window usage and provider limits.
| Prop | Default | Type |
|---|---|---|
slot | — | ComposerSlotControls["contextWindow"]Required. |
disabled | false | boolean |
usageSettingsPath | "/settings/usage" | string | null | undefinedSettings route opened from the plan-usage header. Pass null to hide the action. |
onOpenUsage | — | (() => void) | undefinedCustom action opened from the plan-usage header. Overrides usageSettingsPath. |
ContextWindowMeterProps
type ContextWindowMeterProps = ComponentProps<SlotRenderer<ComposerSlotControls["contextWindow"]>> & {
/** Settings route opened from the plan-usage header. Pass `null` to hide the action. */
usageSettingsPath?: string | null | undefined;
/** Custom action opened from the plan-usage header. Overrides `usageSettingsPath`. */
onOpenUsage?: (() => void) | undefined;
};Related types: SlotRenderer, ComposerSlotControls.
SessionOptionsPanel
| Prop | Default | Type |
|---|---|---|
composer | — | UseComposerRequired. |
SessionOptionsPanelProps
type SessionOptionsPanelProps = {
composer: UseComposer;
};Related types: UseComposer.
ComposerSlotRenderers
type ComposerSlotRenderers = Partial<ComposerSlotRendererMap>;Related types: ComposerSlotRendererMap.
ComposerSlotSurfaceVariant
type ComposerSlotSurfaceVariant = "plain" | "appendix";ComposerPlacement
type ComposerPlacement = "standalone" | "floating";ComposerSlotRendererMap
type ComposerSlotRendererMap = {
[K in ComposerPositionableSlotKey]: SlotRenderer<ComposerSlotControls[K]>;
};Related types: ComposerPositionableSlotKey, SlotRenderer, ComposerSlotControls.
ComposerAttachmentItem
type ComposerAttachmentItem = {
id: string;
file: File;
name: string;
remove: () => void;
preparation?: DocumentAttachmentState | undefined;
retry?: (() => void) | undefined;
};Related types: DocumentAttachmentState.
AgentSelectorLabels
type AgentSelectorLabels = {
trigger?: string;
title?: string;
empty?: string;
};ModelReasoningSelectorLabels
type ModelReasoningSelectorLabels = {
trigger?: string;
reasoning?: string;
effort?: string;
provider?: string;
models?: string;
};ToolhostSelectorLabels
type ToolhostSelectorLabels = {
trigger?: string;
title?: string;
empty?: string;
};ToolhostCategory
type ToolhostCategory = ComposerToolhostCategory;Related types: ComposerToolhostCategory.
ComposerPositionableSlotKey
type ComposerPositionableSlotKey = Exclude<keyof ComposerSlotControls, "status">;Related types: ComposerSlotControls.
Timeline
Render the conversation with ActTimeline. Its viewport selects entry renderers, which compose messages, live output, tool groups, and feedback states.
Components: ActTimeline · TimelineViewport · TimelineEntryView · UserMessage · AssistantMessage · MessageAttachments · MessageActions · TimelineThinking · TimelineStreamingMessage · TimelineWorkDuration · TimelineLoading · TimelineHistoryLoading · TimelineEmptyState · TimelineError · TimelineSessionError · TimelineActError · TimelineActNote · ToolGroupItem · ReasoningItem · ReasoningCollapsible · CompactionItem · SessionChangeItem · BackgroundTaskGroup · BackgroundTaskCompletion · BackgroundTaskConversation · BackgroundTaskTerminal.
ActTimeline
| Prop | Default | Type |
|---|---|---|
viewportComponent | — | ComponentType<TimelineViewportProps> | undefinedScroll and history container. Defaults to TimelineViewport. |
loadingComponent | — | ComponentType | undefinedInitial history loading feedback. |
errorComponent | — | ComponentType<TimelineErrorProps> | undefinedBlocking initial history error feedback. |
emptyStateComponent | — | ComponentType<TimelineEmptyStateProps> | undefinedFeedback shown when no semantic entries are available. |
entryComponent | — | ComponentType<TimelineEntryViewProps> | undefinedStable semantic entry renderer. Stable entry renderer receiving caller-owned props. |
entryProps | — | neverAdditional typed props. The timeline supplies entry. |
ActTimelineProps
type ActTimelineProps<EntryProps extends object = Record<never, never>> = {
/** Scroll and history container. Defaults to {@link TimelineViewport}. */
viewportComponent?: ComponentType<TimelineViewportProps> | undefined;
/** Initial history loading feedback. */
loadingComponent?: ComponentType | undefined;
/** Blocking initial history error feedback. */
errorComponent?: ComponentType<TimelineErrorProps> | undefined;
/** Feedback shown when no semantic entries are available. */
emptyStateComponent?: ComponentType<TimelineEmptyStateProps> | undefined;
} & TimelineEntryRendererProps<EntryProps>;Related types: TimelineViewportProps, TimelineEmptyStateProps, TimelineErrorProps, TimelineEntryRendererProps.
TimelineViewport
| Prop | Default | Type |
|---|---|---|
entries | — | readonly TimelineEntry[]Required. Entries used as the scroll anchoring signal. |
history | — | TimelineHistoryRequired. Older-history state and pagination action. |
children | — | ReactNodeCustom content, or feedback displayed after entries when entryComponent is provided. |
historyLoadingComponent | TimelineHistoryLoading | ComponentType | undefinedLoading feedback shown while older history is loading. |
entryComponent | — | ComponentType<TimelineEntryViewProps> | undefinedStable semantic entry renderer. Stable entry renderer receiving caller-owned props. |
entryProps | — | neverAdditional typed props. The timeline supplies entry. |
TimelineViewportProps
type TimelineViewportProps<EntryProps extends object = Record<never, never>> = {
/** Entries used as the scroll anchoring signal. */
entries: readonly TimelineEntry[];
/** Older-history state and pagination action. */
history: TimelineHistory;
/** Custom content, or feedback displayed after entries when entryComponent is provided. */
children?: ReactNode;
/** Loading feedback shown while older history is loading. */
historyLoadingComponent?: ComponentType | undefined;
} & TimelineEntryRendererProps<EntryProps>;Related types: TimelineEntry, TimelineHistory, TimelineEntryRendererProps.
TimelineEntryView
| Prop | Default | Type |
|---|---|---|
entry | — | TimelineEntryRequired. Semantic entry to render. |
userMessageComponent | UserMessage | ComponentType<UserMessageProps> | undefinedRenderer for user_message entries. |
assistantMessageComponent | AssistantMessage | ComponentType<AssistantMessageProps> | undefinedRenderer for assistant_message entries. |
compactionComponent | CompactionItem | ComponentType<CompactionItemProps> | undefinedRenderer for compaction entries. |
sessionChangeComponent | SessionChangeItem | ComponentType<SessionChangeItemProps> | undefinedRenderer for session_change entries. |
toolGroupComponent | ToolGroupItem | ComponentType<ToolGroupItemProps> | undefinedRenderer for tool_group entries. |
thinkingComponent | TimelineThinking | ComponentType<TimelineThinkingProps> | undefinedRenderer for thinking entries. |
streamingMessageComponent | TimelineStreamingMessage | | ComponentType<TimelineStreamingMessageProps> | undefinedRenderer for streaming_message entries. |
workDurationComponent | TimelineWorkDuration | ComponentType<TimelineWorkDurationProps> | undefinedRenderer for work_duration entries. |
sessionErrorComponent | TimelineSessionError | ComponentType<TimelineSessionErrorProps> | undefined |
actErrorComponent | TimelineActError | ComponentType<TimelineActErrorProps> | null | undefinedRenderer for act_error entries. Pass null to hide them. |
actNoteComponent | TimelineActNote | ComponentType<TimelineActNoteProps> | undefinedRenderer for act_note entries. |
backgroundTaskComponent | BackgroundTaskGroup | ComponentType<BackgroundTaskGroupProps> | undefinedRenderer for background_task_group entries. |
backgroundTaskCompletionComponent | BackgroundTaskCompletion | | ComponentType<BackgroundTaskCompletionProps> | undefinedRenderer for background_task_completed entries. |
TimelineEntryViewProps
type TimelineEntryViewProps = {
/** Semantic entry to render. */
entry: TimelineEntry;
/** Renderer for `user_message` entries. */
userMessageComponent?: ComponentType<UserMessageProps> | undefined;
/** Renderer for `assistant_message` entries. */
assistantMessageComponent?: ComponentType<AssistantMessageProps> | undefined;
/** Renderer for `compaction` entries. */
compactionComponent?: ComponentType<CompactionItemProps> | undefined;
/** Renderer for `session_change` entries. */
sessionChangeComponent?: ComponentType<SessionChangeItemProps> | undefined;
/** Renderer for `tool_group` entries. */
toolGroupComponent?: ComponentType<ToolGroupItemProps> | undefined;
/** Renderer for `draft` entries. */
/** Renderer for `thinking` entries. */
thinkingComponent?: ComponentType<TimelineThinkingProps> | undefined;
/** Renderer for `streaming_message` entries. */
streamingMessageComponent?: ComponentType<TimelineStreamingMessageProps> | undefined;
/** Renderer for `work_duration` entries. */
workDurationComponent?: ComponentType<TimelineWorkDurationProps> | undefined;
sessionErrorComponent?: ComponentType<TimelineSessionErrorProps> | undefined;
/** Renderer for `act_error` entries. Pass `null` to hide them. */
actErrorComponent?: ComponentType<TimelineActErrorProps> | null | undefined;
/** Renderer for `act_note` entries. */
actNoteComponent?: ComponentType<TimelineActNoteProps> | undefined;
/** Renderer for `background_task_group` entries. */
backgroundTaskComponent?: ComponentType<BackgroundTaskGroupProps> | undefined;
/** Renderer for `background_task_completed` entries. */
backgroundTaskCompletionComponent?: ComponentType<BackgroundTaskCompletionProps> | undefined;
};Related types: TimelineEntry, UserMessageProps, AssistantMessageProps, TimelineThinkingProps, TimelineStreamingMessageProps, TimelineWorkDurationProps, TimelineSessionErrorProps, TimelineActErrorProps, TimelineActNoteProps, ToolGroupItemProps, CompactionItemProps, SessionChangeItemProps, BackgroundTaskGroupProps, BackgroundTaskCompletionProps.
UserMessage
| Prop | Default | Type |
|---|---|---|
item | — | SessionItemRequired. |
text | extractTextContent(item.content) | string |
attachmentsComponent | MessageAttachments | ComponentType<MessageAttachmentsProps>Custom attachments below the message. Defaults to MessageAttachments. |
bubbleProps | — | BoxProps | undefinedExtra props for the message bubble container. |
actionsComponent | — | ComponentType<MessageActionsProps> | undefinedCustom actions below the message. Defaults to MessageActions. Stable actions component receiving additional caller-owned props. |
actionsProps | — | neverAdditional typed props. The message supplies item, text, and align. |
UserMessageProps
type UserMessageProps<ActionsProps extends object = Record<never, never>> = {
item: SessionItem;
text?: string;
/** Custom attachments below the message. Defaults to {@link MessageAttachments}. */
attachmentsComponent?: ComponentType<MessageAttachmentsProps>;
/** Extra props for the message bubble container. */
bubbleProps?: BoxProps | undefined;
} & MessageActionsSlotProps<ActionsProps>;Related types: SessionItem, MessageAttachmentsProps, MessageActionsSlotProps.
AssistantMessage
| Prop | Default | Type |
|---|---|---|
item | — | SessionItemRequired. |
text | — | stringRequired. |
isLastInTurn | — | boolean | undefinedRetained semantic turn metadata; actions render for every message. |
attachmentsComponent | MessageAttachments | ComponentType<MessageAttachmentsProps>Custom attachments below the message. Defaults to MessageAttachments. |
actionsComponent | — | ComponentType<MessageActionsProps> | undefinedCustom actions below the message. Defaults to MessageActions. Stable actions component receiving additional caller-owned props. |
actionsProps | — | neverAdditional typed props. The message supplies item, text, and align. |
AssistantMessageProps
type AssistantMessageProps<ActionsProps extends object = Record<never, never>> = {
item: SessionItem;
text: string;
/** Retained semantic turn metadata; actions render for every message. */
isLastInTurn?: boolean | undefined;
/** Custom attachments below the message. Defaults to {@link MessageAttachments}. */
attachmentsComponent?: ComponentType<MessageAttachmentsProps>;
} & MessageActionsSlotProps<ActionsProps>;Related types: SessionItem, MessageAttachmentsProps, MessageActionsSlotProps.
MessageAttachments
| Prop | Default | Type |
|---|---|---|
item | — | SessionItemRequired. |
MessageAttachmentsProps
type MessageAttachmentsProps = {
item: SessionItem;
};Related types: SessionItem.
MessageActions
| Prop | Default | Type |
|---|---|---|
item | — | SessionItemRequired. |
text | extractTextContent(item.content) | string |
align | "start" | "start" | "end"Align timestamp/copy under the bubble. |
forceVisible | false | boolean | undefinedKeeps actions visible outside hover, for composed active states. |
children | — | ReactNodeExtra controls rendered before copy/timestamp. |
MessageActionsProps
type MessageActionsProps = {
item: SessionItem;
text?: string;
/** Align timestamp/copy under the bubble. */
align?: "start" | "end";
/** Keeps actions visible outside hover, for composed active states. */
forceVisible?: boolean | undefined;
/** Extra controls rendered before copy/timestamp. */
children?: ReactNode;
};Related types: SessionItem.
TimelineThinking
| Prop | Default | Type |
|---|---|---|
text | — | stringRequired. |
streaming | — | booleanRequired. |
TimelineThinkingProps
type TimelineThinkingProps = {
text: string;
streaming: boolean;
};TimelineStreamingMessage
| Prop | Default | Type |
|---|---|---|
content | — | stringRequired. |
TimelineStreamingMessageProps
type TimelineStreamingMessageProps = {
content: string;
};TimelineWorkDuration
Displays the elapsed duration of the active turn.
| Prop | Default | Type |
|---|---|---|
startedAt | — | string | undefined |
hidden | false | boolean | undefined |
TimelineWorkDurationProps
type TimelineWorkDurationProps = {
startedAt?: string | undefined;
hidden?: boolean | undefined;
};TimelineLoading
| Prop | Default | Type |
|---|---|---|
| — | — | — No props. |
TimelineHistoryLoading
| Prop | Default | Type |
|---|---|---|
| — | — | — No props. |
TimelineEmptyState
| Prop | Default | Type |
|---|---|---|
message | "Nessun messaggio." | stringMessage shown when the timeline has no visible content. |
TimelineEmptyStateProps
type TimelineEmptyStateProps = {
/** Message shown when the timeline has no visible content. */
message?: string;
};TimelineError
| Prop | Default | Type |
|---|---|---|
error | — | ErrorRequired. |
message | "Storico messaggi non disponibile via WebSocket." | stringMessage shown when the initial act history load fails. |
TimelineErrorProps
type TimelineErrorProps = {
error: Error;
/** Message shown when the initial act history load fails. */
message?: string;
};TimelineSessionError
| Prop | Default | Type |
|---|---|---|
message | — | stringRequired. |
TimelineSessionErrorProps
type TimelineSessionErrorProps = {
message: string;
};TimelineActError
| Prop | Default | Type |
|---|---|---|
actId | — | stringRequired. |
message | — | stringRequired. |
TimelineActErrorProps
type TimelineActErrorProps = {
actId: string;
message: string;
};TimelineActNote
| Prop | Default | Type |
|---|---|---|
actId | — | stringRequired. |
message | — | stringRequired. |
TimelineActNoteProps
type TimelineActNoteProps = {
actId: string;
message: string;
};ToolGroupItem
| Prop | Default | Type |
|---|---|---|
pairs | — | ToolCallPair[]Required. |
toolResources | — | Record<string, ResourceLink>Required. |
locale | typeof navigator !== "undefined" ? navigator.language : "en" | string |
inputRequiredMessage | "input_required (in attesa di risposta)" | stringText shown when a tool requests input without question metadata. |
streaming | false | booleanWhen true, animates the group or active tool label during streaming. |
labelContext | — | ToolLabelContext |
ToolGroupItemProps
type ToolGroupItemProps = {
pairs: ToolCallPair[];
toolResources: Record<string, ResourceLink>;
locale?: string;
/** Text shown when a tool requests input without question metadata. */
inputRequiredMessage?: string;
/** When true, animates the group or active tool label during streaming. */
streaming?: boolean;
labelContext?: ToolLabelContext;
};Related types: ToolCallPair, ResourceLink, ToolLabelContext.
ReasoningItem
| Prop | Default | Type |
|---|---|---|
item | — | SessionItemRequired. |
ReasoningItemProps
type ReasoningItemProps = {
item: SessionItem;
};Related types: SessionItem.
ReasoningCollapsible
| Prop | Default | Type |
|---|---|---|
text | — | stringRequired. |
label | "Ragionamento" | string |
streaming | false | booleanStreaming mode adds the in-progress label and scrollable body. |
ReasoningCollapsibleProps
type ReasoningCollapsibleProps = {
text: string;
label?: string;
/** Streaming mode adds the in-progress label and scrollable body. */
streaming?: boolean;
};CompactionItem
| Prop | Default | Type |
|---|---|---|
item | — | SessionItemRequired. |
labels | — | CompactionItemLabels | undefinedOverrides visible copy in the context-compaction marker. |
CompactionItemProps
type CompactionItemProps = {
item: SessionItem;
/** Overrides visible copy in the context-compaction marker. */
labels?: CompactionItemLabels | undefined;
};Related types: SessionItem, CompactionItemLabels.
SessionChangeItem
| Prop | Default | Type |
|---|---|---|
item | — | SessionItemRequired. |
labels | — | SessionChangeItemLabels | undefinedOverrides visible copy in the session-change marker. |
SessionChangeItemProps
type SessionChangeItemProps = {
item: SessionItem;
/** Overrides visible copy in the session-change marker. */
labels?: SessionChangeItemLabels | undefined;
};Related types: SessionItem, SessionChangeItemLabels.
BackgroundTaskGroup
Renders one compact task row or a collapsible group of consecutive tasks.
| Prop | Default | Type |
|---|---|---|
tasks | — | Array<{ item: SessionItem; taskId: string; task?: BackgroundTask | undefined; }>Required. |
live | — | boolean | undefinedWhether the task was received through a live update in this page lifetime. |
labels | — | BackgroundTaskGroupLabels | undefinedOverrides visible copy in the task-group trigger. |
BackgroundTaskGroupProps
type BackgroundTaskGroupProps = {
tasks: Array<{
item: SessionItem;
taskId: string;
task?: BackgroundTask | undefined;
}>;
/** Whether the task was received through a live update in this page lifetime. */
live?: boolean | undefined;
/** Overrides visible copy in the task-group trigger. */
labels?: BackgroundTaskGroupLabels | undefined;
};Related types: SessionItem, BackgroundTask, BackgroundTaskGroupLabels.
BackgroundTaskCompletion
Renders the event emitted when a background task reaches a terminal state.
| Prop | Default | Type |
|---|---|---|
item | — | SessionItemRequired. |
task | — | BackgroundTask | undefined |
taskId | — | string | undefined |
labels | — | BackgroundTaskCompletionLabels | undefinedOverrides visible copy in the completion marker. |
BackgroundTaskCompletionProps
type BackgroundTaskCompletionProps = {
item: SessionItem;
task?: BackgroundTask | undefined;
taskId?: string | undefined;
/** Overrides visible copy in the completion marker. */
labels?: BackgroundTaskCompletionLabels | undefined;
};Related types: SessionItem, BackgroundTask, BackgroundTaskCompletionLabels.
BackgroundTaskConversation
Conversation transcript selected by versioned background-task metadata.
| Prop | Default | Type |
|---|---|---|
output | — | stringRequired. |
labels | — | BackgroundTaskConversationLabels | undefined |
Related types: BackgroundTaskConversationLabels.
BackgroundTaskTerminal
Terminal transcript selected by versioned background-task metadata.
| Prop | Default | Type |
|---|---|---|
output | — | stringRequired. |
result | — | unknownRequired. |
labels | — | BackgroundTaskTerminalLabels | undefined |
Related types: BackgroundTaskTerminalLabels.
TimelineEntryRendererProps
type TimelineEntryRendererProps<EntryProps extends object> = DefaultEntryProps | CustomEntryProps<EntryProps>;Related types: DefaultEntryProps, CustomEntryProps.
DefaultEntryProps
type DefaultEntryProps = {
/** Stable semantic entry renderer. */
entryComponent?: ComponentType<TimelineEntryViewProps> | undefined;
entryProps?: never;
};Related types: TimelineEntryViewProps.
CustomEntryProps
type CustomEntryProps<EntryProps extends object> = {
/** Stable entry renderer receiving caller-owned props. */
entryComponent: ComponentType<TimelineEntryViewProps & EntryProps>;
/** Additional typed props. The timeline supplies `entry`. */
entryProps: EntryProps;
};Related types: TimelineEntryViewProps.
DraftViewProps
type DraftViewProps = {
draft: StreamingDraft;
};Related types: StreamingDraft.
MessageActionsSlotProps
type MessageActionsSlotProps<ActionsProps extends object> = DefaultActionsSlotProps | CustomActionsSlotProps<ActionsProps>;Related types: DefaultActionsSlotProps, CustomActionsSlotProps.
DefaultActionsSlotProps
type DefaultActionsSlotProps = {
/** Custom actions below the message. Defaults to {@link MessageActions}. */
actionsComponent?: ComponentType<MessageActionsProps> | undefined;
actionsProps?: never;
};Related types: MessageActionsProps.
CustomActionsSlotProps
type CustomActionsSlotProps<ActionsProps extends object> = {
/** Stable actions component receiving additional caller-owned props. */
actionsComponent: ComponentType<MessageActionsProps & ActionsProps>;
/** Additional typed props. The message supplies `item`, `text`, and `align`. */
actionsProps: ActionsProps;
};Related types: MessageActionsProps.
CompactionItemLabels
type CompactionItemLabels = {
running?: ReactNode;
completed?: (duration: string) => ReactNode;
duration?: (seconds: number) => string;
};SessionChangeItemLabels
type SessionChangeItemLabels = {
defaultValue?: string;
enabled?: string;
disabled?: string;
activeAgent?: (previous: string, current: string) => string;
model?: (previous: string, current: string) => string;
};BackgroundTaskGroupLabels
type BackgroundTaskGroupLabels = {
running?: (count: number) => string;
total?: (count: number) => string;
defaultTaskLabel?: string;
};BackgroundTaskCompletionLabels
type BackgroundTaskCompletionLabels = {
task?: string;
failed?: string;
cancelled?: string;
timedOut?: string;
finished?: string;
durationPrefix?: string;
};Human-in-the-loop
HitlOverlay selects the appropriate request panel. Panels compose input content and actions while keeping the request lifecycle in the headless contract.
Components: HitlOverlay · InputPanel · ApprovalPanel · AgentAuthPanel · InputPanelContent · FreeformInputContent · SingleQuestionInputContent · StructuredQuestionInputContent · WizardInputContent · InputActions · ApprovalActions · ApprovalSelector · AgentAuthLinkButton · AgentAuthResumeButton.
HitlOverlay
Session HITL overlay — maps HitlGate state to Chakra panels. Override panels via inputPanelComponent, approvalPanelComponent, or agentAuthPanelComponent.
| Prop | Default | Type |
|---|---|---|
inputPanelComponent | InputPanel | ComponentTypeCustom panel for tool input requests. Defaults to InputPanel. |
approvalPanelComponent | ApprovalPanel | ComponentType<ApprovalPanelProps>Custom panel for tool approval requests. Defaults to ApprovalPanel. |
agentAuthPanelComponent | AgentAuthPanel | ComponentType<AgentAuthPanelProps>Custom panel for agent auth requests. Defaults to AgentAuthPanel. |
HitlOverlayProps
type HitlOverlayProps = {
/**
* Custom panel for tool input requests.
* Defaults to {@link InputPanel}.
*/
inputPanelComponent?: ComponentType;
/**
* Custom panel for tool approval requests.
* Defaults to {@link ApprovalPanel}.
*/
approvalPanelComponent?: ComponentType<ApprovalPanelProps>;
/**
* Custom panel for agent auth requests.
* Defaults to {@link AgentAuthPanel}.
*/
agentAuthPanelComponent?: ComponentType<AgentAuthPanelProps>;
};Related types: ApprovalPanelProps, AgentAuthPanelProps.
InputPanel
Default HITL panel for collecting one or more tool-input answers. Its content and footer actions can be replaced independently while sharing the same request and wizard state.
| Prop | Default | Type |
|---|---|---|
title | — | ReactNode |
placeholder | "Scrivi la risposta..." | string |
submitLabel | "Invia e continua" | ReactNode |
skipLabel | "Salta" | ReactNode |
continueLabel | "Continua" | ReactNode |
contentComponent | InputPanelContent | ComponentType<InputPanelContentProps> |
actionsComponent | InputActions | ComponentType<InputActionsProps> |
previousQuestionLabel | "Domanda precedente" | string |
nextQuestionLabel | "Domanda successiva" | string |
singleChoiceHint | " (scegli una)" | ReactNode |
multiChoiceHint | " (scegli una o piu)" | ReactNode |
otherPlaceholder | "Altro..." | string |
questionProgressLabel | (current, total) => | (current: number, total: number) => ReactNode |
InputPanelProps
type InputPanelProps = {
title?: ReactNode;
placeholder?: string;
submitLabel?: ReactNode;
skipLabel?: ReactNode;
continueLabel?: ReactNode;
contentComponent?: ComponentType<InputPanelContentProps>;
actionsComponent?: ComponentType<InputActionsProps>;
previousQuestionLabel?: string;
nextQuestionLabel?: string;
singleChoiceHint?: ReactNode;
multiChoiceHint?: ReactNode;
otherPlaceholder?: string;
questionProgressLabel?: (current: number, total: number) => ReactNode;
};Related types: InputPanelContentProps, InputActionsProps.
ApprovalPanel
Default HITL panel for reviewing a tool call before approving it.
| Prop | Default | Type |
|---|---|---|
title | "Approvazione tool" | ReactNode |
approveLabel | "Continua" | ReactNode |
actionsComponent | ApprovalActions | ComponentType<ApprovalActionsProps> |
ApprovalPanelProps
type ApprovalPanelProps = {
title?: ReactNode;
approveLabel?: ReactNode;
actionsComponent?: ComponentType<ApprovalActionsProps>;
};Related types: ApprovalActionsProps.
AgentAuthPanel
Default HITL panel for completing an agent OAuth authorization flow.
| Prop | Default | Type |
|---|---|---|
title | "Autenticazione richiesta" | ReactNode |
authorizationLabel | "Accedi al tuo account" | ReactNode |
deviceVerificationLabel | "Apri verifica" | ReactNode |
resumeLabel | "Continua" | ReactNode |
deviceCodeLabel | "Codice dispositivo" | ReactNode |
completedLabel | "Completato" | ReactNode |
authorizationDescription | "Accedi al tuo account nel browser, poi clicca Continua." | ReactNode |
providerLabel | — | ReactNode |
linkButtonComponent | AgentAuthLinkButton | ComponentType<AgentAuthLinkButtonProps> |
resumeButtonComponent | AgentAuthResumeButton | ComponentType<AgentAuthResumeButtonProps> |
AgentAuthPanelProps
type AgentAuthPanelProps = {
title?: ReactNode;
authorizationLabel?: ReactNode;
deviceVerificationLabel?: ReactNode;
resumeLabel?: ReactNode;
deviceCodeLabel?: ReactNode;
completedLabel?: ReactNode;
authorizationDescription?: ReactNode;
providerLabel?: ReactNode;
linkButtonComponent?: ComponentType<AgentAuthLinkButtonProps>;
resumeButtonComponent?: ComponentType<AgentAuthResumeButtonProps>;
};Related types: AgentAuthLinkButtonProps, AgentAuthResumeButtonProps.
InputPanelContent
Default content slot for tool-input requests. It renders the normalized content flow exposed by useToolInput, with independently replaceable content components.
| Prop | Default | Type |
|---|---|---|
toolInput | — | InputPanelContentStateRequired. |
placeholder | "Scrivi la risposta..." | string |
otherPlaceholder | "Altro..." | string |
singleChoiceHint | " (scegli una)" | ReactNode |
multiChoiceHint | " (scegli una o piu)" | ReactNode |
freeformContentComponent | FreeformInputContent | ComponentType<InputPanelContentComponentProps> |
singleQuestionContentComponent | SingleQuestionInputContent | ComponentType<InputPanelContentComponentProps> |
structuredQuestionContentComponent | StructuredQuestionInputContent | ComponentType<InputPanelContentComponentProps> |
wizardContentComponent | WizardInputContent | ComponentType<InputPanelContentComponentProps> |
InputPanelContentProps
type InputPanelContentProps = InputPanelContentComponentProps & {
freeformContentComponent?: ComponentType<InputPanelContentComponentProps>;
singleQuestionContentComponent?: ComponentType<InputPanelContentComponentProps>;
structuredQuestionContentComponent?: ComponentType<InputPanelContentComponentProps>;
wizardContentComponent?: ComponentType<InputPanelContentComponentProps>;
};Related types: InputPanelContentComponentProps.
FreeformInputContent
Default content for a freeform tool-input request.
| Prop | Default | Type |
|---|---|---|
toolInput | — | InputPanelContentStateRequired. |
placeholder | "Scrivi la risposta..." | string |
otherPlaceholder | "Altro..." | string |
singleChoiceHint | " (scegli una)" | ReactNode |
multiChoiceHint | " (scegli una o piu)" | ReactNode |
InputPanelContentComponentProps
type InputPanelContentComponentProps = {
toolInput: InputPanelContentState;
placeholder?: string;
otherPlaceholder?: string;
singleChoiceHint?: ReactNode;
multiChoiceHint?: ReactNode;
};Related types: InputPanelContentState.
SingleQuestionInputContent
Default content for one free-text question.
| Prop | Default | Type |
|---|---|---|
toolInput | — | InputPanelContentStateRequired. |
placeholder | "Scrivi la risposta..." | string |
otherPlaceholder | "Altro..." | string |
singleChoiceHint | " (scegli una)" | ReactNode |
multiChoiceHint | " (scegli una o piu)" | ReactNode |
Related types: InputPanelContentState.
StructuredQuestionInputContent
Default content for one structured question.
| Prop | Default | Type |
|---|---|---|
toolInput | — | InputPanelContentStateRequired. |
placeholder | "Scrivi la risposta..." | string |
otherPlaceholder | "Altro..." | string |
singleChoiceHint | " (scegli una)" | ReactNode |
multiChoiceHint | " (scegli una o piu)" | ReactNode |
Related types: InputPanelContentState.
WizardInputContent
Default content for the active step in a multi-question wizard.
| Prop | Default | Type |
|---|---|---|
toolInput | — | InputPanelContentStateRequired. |
placeholder | "Scrivi la risposta..." | string |
otherPlaceholder | "Altro..." | string |
singleChoiceHint | " (scegli una)" | ReactNode |
multiChoiceHint | " (scegli una o piu)" | ReactNode |
Related types: InputPanelContentState.
InputActions
Default actions for navigating and submitting the HITL input form.
| Prop | Default | Type |
|---|---|---|
toolInput | — | InputPanelActionStateRequired. |
submitLabel | "Invia e continua" | ReactNode |
skipLabel | "Salta" | ReactNode |
continueLabel | "Continua" | ReactNode |
InputActionsProps
type InputActionsProps = {
toolInput: InputPanelActionState;
submitLabel?: ReactNode;
skipLabel?: ReactNode;
continueLabel?: ReactNode;
};Related types: InputPanelActionState.
ApprovalActions
Default actions for selecting the approval scope and approving a tool call.
| Prop | Default | Type |
|---|---|---|
approveLabel | "Continua" | ReactNode |
ApprovalActionsProps
type ApprovalActionsProps = {
approveLabel?: ReactNode;
};ApprovalSelector
Approval policy selection slot backed by the active composer state.
| Prop | Default | Type |
|---|---|---|
slot | — | ComposerSlotControls["approvalPolicy"]Required. |
disabled | false | boolean |
labels | — | ApprovalSelectorLabels | undefinedOptional labels for the trigger, title, and individual policies. |
triggerProps | — | SelectionMenuProps["triggerProps"] |
layout | — | SelectionMenuProps["layout"] | undefinedVisual layout used by the trigger and menu. |
ApprovalSelectorProps
type ApprovalSelectorProps = ComponentProps<SlotRenderer<ComposerSlotControls["approvalPolicy"]>> & {
/** Optional labels for the trigger, title, and individual policies. */
labels?: ApprovalSelectorLabels | undefined;
triggerProps?: SelectionMenuProps["triggerProps"];
/** Visual layout used by the trigger and menu. */
layout?: SelectionMenuProps["layout"] | undefined;
};Related types: SlotRenderer, ComposerSlotControls, ApprovalSelectorLabels, SelectionMenuProps.
AgentAuthLinkButton
Default link action for opening the provider authorization flow.
| Prop | Default | Type |
|---|---|---|
label | — | ReactNode |
authorizationUri | — | string | undefined |
disabled | — | boolean | undefined |
onOpen | — | () => void |
AgentAuthLinkButtonProps
type AgentAuthLinkButtonProps = {
label?: ReactNode;
authorizationUri?: string | undefined;
disabled?: boolean | undefined;
onOpen?: () => void;
};AgentAuthResumeButton
Default action for resuming an act after agent authorization.
| Prop | Default | Type |
|---|---|---|
label | — | ReactNode |
submitting | false | boolean | undefined |
error | — | Error | undefined |
disabled | — | boolean | undefined |
onResume | — | (() => void) | undefined |
AgentAuthResumeButtonProps
type AgentAuthResumeButtonProps = {
label?: ReactNode;
submitting?: boolean | undefined;
error?: Error | undefined;
disabled?: boolean | undefined;
onResume?: (() => void) | undefined;
};InputPanelContentState
type InputPanelContentState = Pick<ReturnType<typeof useToolInput>, "input" | "formState" | "formActions">;Related types: useToolInput.
InputPanelActionState
type InputPanelActionState = Pick<ReturnType<typeof useToolInput>, "formState" | "formActions" | "skip" | "submitting" | "error">;Related types: useToolInput.
ApprovalSelectorLabels
type ApprovalSelectorLabels = {
trigger?: string;
title?: string;
options?: Partial<Record<ApprovalPolicy, {
label?: string;
description?: string;
}>>;
};Related types: ApprovalPolicy.
Knowledge base
LibraryPage is the complete routed surface. Library renders the document collection; DocumentItem and DocumentProgress render individual documents and processing feedback.
Components: LibraryPage · Library · DocumentItem · DocumentProgress.
LibraryPage
| Prop | Default | Type |
|---|---|---|
| — | — | — No props. |
Library
Route shell for Files and Knowledge Base destinations.
| Prop | Default | Type |
|---|---|---|
| — | — | — No props. |
DocumentItem
One document card or row in the Knowledge Base library.
| Prop | Default | Type |
|---|---|---|
document | — | KnowledgeBaseDocumentRequired. |
onDelete | — | (document: KnowledgeBaseDocument) => voidRequired. |
onRetry | — | (document: KnowledgeBaseDocument) => voidRequired. |
view | — | LibraryViewRequired. |
snippet | — | string | undefined |
labels | — | DocumentItemLabelsOverrides visible copy for document state and actions. |
progressLabels | — | DocumentProgressLabelsOverrides accessible copy for document progress. |
DocumentItemProps
type DocumentItemProps = Omit<DocumentActionsProps, "labels"> & {
view: LibraryView;
snippet?: string | undefined;
/** Overrides visible copy for document state and actions. */
labels?: DocumentItemLabels;
/** Overrides accessible copy for document progress. */
progressLabels?: DocumentProgressLabels;
};Related types: LibraryView (chakra-ui), DocumentItemLabels, DocumentProgressLabels, DocumentActionsProps.
DocumentProgress
Visual progress overlay for uploads and Knowledge Base indexing.
| Prop | Default | Type |
|---|---|---|
document | — | KnowledgeBaseDocumentRequired. |
view | — | "grid" | "list"Required. |
labels | — | DocumentProgressLabelsOverrides accessible labels for upload and indexing progress. |
DocumentProgressProps
type DocumentProgressProps = {
document: KnowledgeBaseDocument;
view: "grid" | "list";
/** Overrides accessible labels for upload and indexing progress. */
labels?: DocumentProgressLabels;
};Related types: KnowledgeBaseDocument (react), DocumentProgressLabels, KnowledgeBaseDocument (react).
LibraryView
type LibraryView = "grid" | "list";DocumentItemLabels
type DocumentItemLabels = {
uploading?: string;
queued?: string;
indexing?: string;
indexingProgress?: string;
failed?: string;
unindexed?: string;
indexed?: string;
actions?: string;
retry?: string;
remove?: string;
dateLocale?: string;
};DocumentProgressLabels
type DocumentProgressLabels = {
uploading?: string;
indexing?: string;
};DocumentActionsProps
type DocumentActionsProps = {
document: KnowledgeBaseDocument;
onDelete: (document: KnowledgeBaseDocument) => void;
onRetry: (document: KnowledgeBaseDocument) => void;
labels: Required<DocumentItemLabels>;
};Related types: KnowledgeBaseDocument (react), DocumentItemLabels, KnowledgeBaseDocument (react).
Base primitives
Reusable presentation and interaction components for custom surfaces. Framework styling and DOM props are inherited where the contract declares them.
Components: BaseDialog · BaseDrawer · BaseSidebar · BaseTopBar · Tooltip · IconButton · TriggerButton · ConfirmMenuItem · SelectionMenu · SegmentedBar · MarkdownContent · CollapsibleItem · ShimmerText · StreamingCaret · Toaster · ColorModeProvider · ColorModeButton · ColorModeIcon · LightMode · DarkMode.
BaseDialog
Shared dialog shell with centered placement, themed styling, and optional standard footer.
| Prop | Default | Type |
|---|---|---|
open | — | booleanRequired. |
onOpenChange | — | (details: { open: boolean }) => voidRequired. |
title | — | ReactNodeRequired. |
headerActions | — | ReactNodeOptional controls aligned to the right of the title, wrapping below on mobile. |
initialFocusEl | — | ComponentProps<typeof ChakraDialog.Root>["initialFocusEl"]Resolves the element to focus when the dialog opens. |
finalFocusEl | — | ComponentProps<typeof ChakraDialog.Root>["finalFocusEl"]Resolves the element to focus after the dialog closes. |
children | — | ReactNode |
cancelLabel | "Annulla" | ReactNode |
confirmLabel | — | ReactNode |
onConfirm | — | () => void | Promise<void> |
onCancel | — | () => void |
confirmLoading | — | boolean |
confirmDisabled | — | boolean |
confirmTone | "default" | BaseDialogConfirmTone |
closeOnConfirm | true | boolean |
footer | — | ReactNode | null |
closeAriaLabel | "Chiudi dialog" | string |
contentMaxW | "md" | stringOptional maximum width for the dialog content. |
scrollableBody | false | booleanKeeps large dialog bodies scrollable inside the viewport. |
scrollBehavior | "body" | "body" | "children"Chooses whether the dialog body or its children manage scrolling. |
BaseDialogProps
/**
* Props for the shared Hyperflow dialog shell.
*/
export interface BaseDialogProps {
open: boolean;
onOpenChange: (details: {
open: boolean;
}) => void;
title: ReactNode;
/** Optional controls aligned to the right of the title, wrapping below on mobile. */
headerActions?: ReactNode;
/** Resolves the element to focus when the dialog opens. */
initialFocusEl?: ComponentProps<typeof ChakraDialog.Root>["initialFocusEl"];
/** Resolves the element to focus after the dialog closes. */
finalFocusEl?: ComponentProps<typeof ChakraDialog.Root>["finalFocusEl"];
children?: ReactNode;
cancelLabel?: ReactNode;
confirmLabel?: ReactNode;
onConfirm?: () => void | Promise<void>;
onCancel?: () => void;
confirmLoading?: boolean;
confirmDisabled?: boolean;
confirmTone?: BaseDialogConfirmTone;
closeOnConfirm?: boolean;
footer?: ReactNode | null;
closeAriaLabel?: string;
/** Optional maximum width for the dialog content. */
contentMaxW?: string;
/** Keeps large dialog bodies scrollable inside the viewport. */
scrollableBody?: boolean;
/** Chooses whether the dialog body or its children manage scrolling. */
scrollBehavior?: "body" | "children";
}Related types: BaseDialogConfirmTone.
BaseDrawer
| Prop | Default | Type |
|---|---|---|
children | — | ReactNodeRequired. |
isOpen | — | booleanRequired. |
width | — | numberRequired. |
isResizing | — | booleanRequired. |
onResizeStart | — | (event: PointerEvent<HTMLDivElement>) => voidRequired. |
onResizeBy | — | (difference: number) => voidRequired. |
BaseDrawerProps
type BaseDrawerProps = {
children: ReactNode;
isOpen: boolean;
width: number;
isResizing: boolean;
onResizeStart: (event: PointerEvent<HTMLDivElement>) => void;
onResizeBy: (difference: number) => void;
};BaseSidebar
Default sidebar shell used by Hyperflow layouts. Renders the standard sidebar frame, header, navigation section, optional custom middle content, and footer.
| Prop | Default | Type |
|---|---|---|
children | — | React.ReactNodeOptional custom content rendered between the navigation section and the footer. |
headerComponent | SidebarHeader | React.ComponentType<SidebarHeaderProps>Custom header component used to render the top section of the sidebar. |
footerComponent | SidebarFooter | React.ComponentType<SidebarFooterProps>Custom footer component used to render the bottom section of the sidebar. |
Related types: SidebarHeaderProps, SidebarFooterProps.
BaseTopBar
Default top bar shell used by Hyperflow layouts. Renders the standard top bar frame. Product content is supplied by a self-wired preset such as SessionTopBar or AccountTopBar .
| Prop | Default | Type |
|---|---|---|
children | — | ReactNodeTrailing content rendered on the right side of the top bar. |
BaseTopBarProps
type BaseTopBarProps = {
/**
* Trailing content rendered on the right side of the top bar.
*/
children?: ReactNode;
};Tooltip
Tooltip wrapper that adds portal and arrow conveniences.
| Prop | Default | Type |
|---|---|---|
showArrow | — | boolean |
portalled | — | boolean |
portalRef | — | React.RefObject<HTMLElement | null> |
content | — | React.ReactNodeRequired. |
contentProps | — | ChakraTooltip.ContentProps |
disabled | — | booleanWhether the tooltip is disabled |
Also accepts inherited framework props. See the TypeScript declaration and the Chakra UI styling props, React DOM props, or provider props for the corresponding base type.
IconButton
Icon button wired to the Hyperflow iconButton recipe.
| Prop | Default | Type |
|---|---|---|
context | — | "toolbar" | "rowAction" | "compactAction" |
Also accepts inherited framework props. See the TypeScript declaration and the Chakra UI styling props, React DOM props, or provider props for the corresponding base type.
TriggerButton
Shared pill-shaped trigger used by selection menus.
| Prop | Default | Type |
|---|---|---|
label | — | string | ReactNodeRequired. |
labelSecondary | — | string | ReactNode | undefined |
icon | — | ReactNode |
iconProps | — | Omit<IconProps, "children"> | undefined |
active | — | boolean | undefined |
hideChevron | — | boolean | undefined |
labelProps | — | Omit<TextProps, "children"> | undefined |
layout | "compact" | TriggerButtonLayout | undefined |
Also accepts inherited framework props. See the TypeScript declaration and the Chakra UI styling props, React DOM props, or provider props for the corresponding base type.
ConfirmMenuItem
Menu item that opens a confirmation dialog before running an action.
| Prop | Default | Type |
|---|---|---|
onCloseMenu | — | () => voidCalled when the confirmation dialog closes. |
label | "Confirm" | ReactNodeMenu item label. |
icon | — | ReactNodeLeading icon next to the label. |
value | "confirm" | stringChakra menu item value. |
disabled | — | booleanDisables the action when true. |
dialogTitle | "Confirm" | ReactNodeTitle shown in the confirmation dialog. |
dialogDescription | — | ReactNodeDescription shown in the confirmation dialog. |
cancelLabel | "Annulla" | ReactNodeLabel for the cancel button. |
confirmLabel | "Confirm" | ReactNodeLabel for the confirm button. |
confirmTone | "default" | BaseDialogConfirmToneConfirm button tone. |
onConfirm | — | () => void | Promise<void>Required. Runs when the user confirms the dialog. |
ConfirmMenuItemProps
type ConfirmMenuItemProps = {
/** Called when the confirmation dialog closes. */
onCloseMenu?: () => void;
/** Menu item label. */
label?: ReactNode;
/** Leading icon next to the label. */
icon?: ReactNode;
/** Chakra menu item value. */
value?: string;
/** Disables the action when true. */
disabled?: boolean;
/** Title shown in the confirmation dialog. */
dialogTitle?: ReactNode;
/** Description shown in the confirmation dialog. */
dialogDescription?: ReactNode;
/** Label for the cancel button. */
cancelLabel?: ReactNode;
/** Label for the confirm button. */
confirmLabel?: ReactNode;
/** Confirm button tone. */
confirmTone?: BaseDialogConfirmTone;
/** Runs when the user confirms the dialog. */
onConfirm: () => void | Promise<void>;
};Related types: BaseDialogConfirmTone.
SelectionMenu
Shared menu primitive used by compact composer selectors and panel actions. It owns menu open state and closes the menu after an option is selected.
| Prop | Default | Type |
|---|---|---|
title | — | stringRequired. |
selectedLabel | — | stringRequired. |
selectedContent | — | ReactNodeCustom trigger content; selectedLabel remains its accessible name. |
selectedValue | — | stringRequired. |
options | [] | SelectionOption[] |
onSelect | — | (value: string) => void | Promise<void>Required. |
triggerIcon | — | ReactNode |
triggerProps | — | | Partial<Pick<TriggerButtonProps, "bg" | "_hover" | "labelProps">> | undefined |
layout | "compact" | TriggerButtonProps["layout"] | undefined |
menuPlacement | — | SelectionMenuPlacement | undefinedMenu placement. Defaults to the placement normally used by the selected layout. |
disabled | — | boolean | undefined |
loading | — | boolean | undefined |
emptyText | "Nessuna opzione disponibile" | string |
SelectionMenuProps
type SelectionMenuProps = {
title: string;
selectedLabel: string;
/** Custom trigger content; `selectedLabel` remains its accessible name. */
selectedContent?: ReactNode;
selectedValue: string;
options?: SelectionOption[];
onSelect: (value: string) => void | Promise<void>;
triggerIcon?: ReactNode;
triggerProps?: Partial<Pick<TriggerButtonProps, "bg" | "_hover" | "labelProps">> | undefined;
layout?: TriggerButtonProps["layout"] | undefined;
/** Menu placement. Defaults to the placement normally used by the selected layout. */
menuPlacement?: SelectionMenuPlacement | undefined;
disabled?: boolean | undefined;
loading?: boolean | undefined;
emptyText?: string;
};Related types: SelectionMenuPlacement, TriggerButtonProps, SelectionOption.
SegmentedBar
| Prop | Default | Type |
|---|---|---|
segments | — | readonly SegmentedBarSegment[]Required. |
trackBg | — | stringRequired. |
fillPercent | 100 | numberFilled track width from 0 to 100. Segments compose inside this area. |
SegmentedBarProps
type SegmentedBarProps = {
segments: readonly SegmentedBarSegment[];
trackBg: string;
/** Filled track width from 0 to 100. Segments compose inside this area. */
fillPercent?: number;
};Related types: SegmentedBarSegment.
MarkdownContent
Renders GitHub-flavored Markdown with Chakra styling and HTML sanitization.
| Prop | Default | Type |
|---|---|---|
children | — | string |
fontSize | "md" | string |
className | — | string |
trailing | — | ReactNode |
animate | false | booleanStreaming mode: newly appended words fade in. |
preserveLineBreaks | false | booleanRenders soft line breaks as visible breaks while preserving code and math. |
MarkdownContentProps
type MarkdownContentProps = {
children?: string;
fontSize?: string;
className?: string;
trailing?: ReactNode;
/** Streaming mode: newly appended words fade in. */
animate?: boolean;
/** Renders soft line breaks as visible breaks while preserving code and math. */
preserveLineBreaks?: boolean;
};CollapsibleItem
| Prop | Default | Type |
|---|---|---|
label | — | stringRequired. |
children | — | ReactNodeRequired. |
CollapsibleItemProps
type CollapsibleItemProps = {
label: string;
children: ReactNode;
};ShimmerText
| Prop | Default | Type |
|---|---|---|
shimmer | false | boolean |
Also accepts inherited framework props. See the TypeScript declaration and the Chakra UI styling props, React DOM props, or provider props for the corresponding base type.
ShimmerTextProps
type ShimmerTextProps = TextProps & {
shimmer?: boolean;
};StreamingCaret
| Prop | Default | Type |
|---|---|---|
| — | — | — No props. |
Toaster
Renders the global toast stack.
| Prop | Default | Type |
|---|---|---|
| — | — | — No props. |
ColorModeProvider
Provides Chakra color-mode state through next-themes.
Props type: ColorModeProviderProps.
Also accepts inherited framework props. See the TypeScript declaration and the Chakra UI styling props, React DOM props, or provider props for the corresponding base type.
ColorModeButton
Props type: ColorModeButtonProps & React.RefAttributes<HTMLButtonElement>.
Also accepts inherited framework props. See the TypeScript declaration and the Chakra UI styling props, React DOM props, or provider props for the corresponding base type.
ColorModeIcon
Icon reflecting the current color mode.
| Prop | Default | Type |
|---|---|---|
| — | — | — No props. |
LightMode
Renders children in light mode only.
Props type: SpanProps & React.RefAttributes<HTMLSpanElement>.
Also accepts inherited framework props. See the TypeScript declaration and the Chakra UI styling props, React DOM props, or provider props for the corresponding base type.
DarkMode
Renders children in dark mode only.
Props type: SpanProps & React.RefAttributes<HTMLSpanElement>.
Also accepts inherited framework props. See the TypeScript declaration and the Chakra UI styling props, React DOM props, or provider props for the corresponding base type.
TriggerButtonProps
type TriggerButtonProps = Omit<ButtonProps, "children" | "layout"> & {
label: string | ReactNode;
labelSecondary?: string | ReactNode | undefined;
icon?: ReactNode;
iconProps?: Omit<IconProps, "children"> | undefined;
active?: boolean | undefined;
hideChevron?: boolean | undefined;
labelProps?: Omit<TextProps, "children"> | undefined;
layout?: TriggerButtonLayout | undefined;
};Related types: TriggerButtonLayout.
BaseDialogConfirmTone
/**
* Confirm button tone for the shared dialog footer.
*/
export type BaseDialogConfirmTone = "default" | "danger";TooltipProps
/**
* Props for the Hyperflow tooltip wrapper.
*/
export interface TooltipProps extends ChakraTooltip.RootProps {
showArrow?: boolean;
portalled?: boolean;
portalRef?: React.RefObject<HTMLElement | null>;
content: React.ReactNode;
contentProps?: ChakraTooltip.ContentProps;
disabled?: boolean;
}SelectionOption
type SelectionOption = {
/** Stable option value passed to `onSelect`. */
value: string;
/** Primary option label. */
label: string;
/** Custom visual label; `label` remains the accessible name and text value. */
content?: ReactNode;
/** Optional secondary description. */
description?: string | undefined;
/** Optional leading icon. */
icon?: ReactNode;
/** Prevents selection while keeping the option visible. */
disabled?: boolean | undefined;
};SegmentedBarSegment
type SegmentedBarSegment = {
key: string;
color: string;
widthPercent: number;
};