Skip to content

Widget Reference

Automation role: window. Text source: title. Children: single.

Prop Type Default Applied
title string none createAndUpdate
defaultWidth int 480 create
defaultHeight int 320 create
tabGroup string none create
toolbarStyle unified | unifiedCompact | expanded | preference unified create
frameAutosaveName string none create
density standard | compact standard create
presentation window | sheet window create
enabled bool true createAndUpdate
tooltip string none createAndUpdate
draggable bool false createAndUpdate
dragPayload string none createAndUpdate
dropTarget bool false createAndUpdate
testID string none meta
Event Handler Payload
alertResult onAlertResult data
openFileResult onOpenFileResult data
saveFileResult onSaveFileResult data
newTabRequested onNewTabRequested data
closed onClosed data
focused onFocused checked
sizeChanged onSizeChanged data
dragStarted onDragStarted text
dragEnded onDragEnded none
dragOver onDragOver dragPoint
dropped onDropped dragPoint

Imperative commands (via sendCommand(ref.current, …) from @nativedesktop/react): showAlert, openFile, saveFile, showAbout, showTabOverview, present.

toolbarStyle, frameAutosaveName, and density shape the macOS unified toolbar and window chrome; see Windows & Chrome for what each one does on each platform. The dialog and tab commands are covered in Dialogs and Native Tabs.

Automation role: group. Text source: none. Children: multi.

Prop Type Default Applied
orientation vertical | horizontal vertical create
spacing int -1 createAndUpdate
enabled bool true createAndUpdate
tooltip string none createAndUpdate
draggable bool false createAndUpdate
dragPayload string none createAndUpdate
dropTarget bool false createAndUpdate
testID string none meta
Event Handler Payload
hoverChanged onHoverChanged checked
dragStarted onDragStarted text
dragEnded onDragEnded none
dragOver onDragOver dragPoint
dropped onDropped dragPoint

spacing’s default, -1, is the “platform standard” sentinel: 6 on the GTK backend (the Adwaita gutter), 8 on the AppKit backend. Any non-negative value is used verbatim. See Spacing scale for Spacing/ContentMargin, the typed export built on the same platform-standard numbers.

The two backends default the cross axis differently. GTK stretches every child across the box’s perpendicular axis. On AppKit a child with a natural cross-axis size keeps that size: buttons, switches, segmented controls, steppers, date pickers, color wells, non-editable labels, and sliders and progress bars on their thickness axis. A control stretched to the window width is not native there. Containers, scroll shapes, editable or bezeled text fields, and image views still fill, because filling is their native form. To stretch one of the others, set style.halign (or valign, in a horizontal box) to "fill", or set the cross-axis expand flag.

Automation role: label. Text source: text. Children: none.

Prop Type Default Applied
text string create
ellipsize bool false create
enabled bool true createAndUpdate
tooltip string none createAndUpdate
draggable bool false createAndUpdate
dragPayload string none createAndUpdate
dropTarget bool false createAndUpdate
testID string none meta
Event Handler Payload
dragStarted onDragStarted text
dragEnded onDragEnded none
dragOver onDragOver dragPoint
dropped onDropped dragPoint

Automation role: button. Text source: label. Children: none.

Prop Type Default Applied
label string createAndUpdate
testID string none meta
iconName string none createAndUpdate
iconData string none createAndUpdate
labelAlign start | center | end center create
ellipsize bool false create
enabled bool true createAndUpdate
tooltip string none createAndUpdate
draggable bool false createAndUpdate
dragPayload string none createAndUpdate
dropTarget bool false createAndUpdate
prominent bool false createAndUpdate
badge string none createAndUpdate
size small | regular | large regular createAndUpdate
Event Handler Payload
clicked onClick none
hoverChanged onHoverChanged checked
dragStarted onDragStarted text
dragEnded onDragEnded none
dragOver onDragOver dragPoint
dropped onDropped dragPoint

Imperative commands (via sendCommand(ref.current, …) from @nativedesktop/react): focus.

prominent, badge, and size render natively on both backends; see Styling & Design Language for how they map onto each platform’s controls.

Automation role: textbox. Text source: text. Children: none.

Prop Type Default Applied
text string createAndUpdate
placeholder string none createAndUpdate
editable bool true createAndUpdate
enabled bool true createAndUpdate
tooltip string none createAndUpdate
draggable bool false createAndUpdate
dragPayload string none createAndUpdate
dropTarget bool false createAndUpdate
testID string none meta
Event Handler Payload
changed onChanged text
activate onActivate text
dragStarted onDragStarted text
dragEnded onDragEnded none
dragOver onDragOver dragPoint
dropped onDropped dragPoint

Imperative commands (via sendCommand(ref.current, …) from @nativedesktop/react): focus.

Automation role: textbox. Text source: text. Children: none.

Prop Type Default Applied
text string createAndUpdate
minContentHeight int 120 create
enabled bool true createAndUpdate
tooltip string none createAndUpdate
draggable bool false createAndUpdate
dragPayload string none createAndUpdate
dropTarget bool false createAndUpdate
testID string none meta
Event Handler Payload
changed onChanged text
dragStarted onDragStarted text
dragEnded onDragEnded none
dragOver onDragOver dragPoint
dropped onDropped dragPoint

Imperative commands (via sendCommand(ref.current, …) from @nativedesktop/react): focus.

minContentHeight is a floor, not a fixed height. Both backends wrap the text view in a scroller and hold it at least that tall, so an empty <textarea> still occupies the default instead of collapsing to nothing and failing the automation actionability check. Pass 0 to opt out. See Automation Socket.

Automation role: checkbox. Text source: label. Children: none.

Prop Type Default Applied
checked bool false createAndUpdate
label string createAndUpdate
enabled bool true createAndUpdate
tooltip string none createAndUpdate
draggable bool false createAndUpdate
dragPayload string none createAndUpdate
dropTarget bool false createAndUpdate
testID string none meta
Event Handler Payload
toggled onToggled checked
dragStarted onDragStarted text
dragEnded onDragEnded none
dragOver onDragOver dragPoint
dropped onDropped dragPoint

Imperative commands (via sendCommand(ref.current, …) from @nativedesktop/react): focus.

Automation role: radio. Text source: label. Children: none.

Prop Type Default Applied
group string none create
checked bool false createAndUpdate
label string createAndUpdate
enabled bool true createAndUpdate
tooltip string none createAndUpdate
draggable bool false createAndUpdate
dragPayload string none createAndUpdate
dropTarget bool false createAndUpdate
testID string none meta
Event Handler Payload
toggled onToggled checked
dragStarted onDragStarted text
dragEnded onDragEnded none
dragOver onDragOver dragPoint
dropped onDropped dragPoint

Imperative commands (via sendCommand(ref.current, …) from @nativedesktop/react): focus.

Automation role: combobox. Text source: none. Children: none.

Prop Type Default Applied
options stringList none create
selectedIndex int 0 createAndUpdate
enabled bool true createAndUpdate
tooltip string none createAndUpdate
draggable bool false createAndUpdate
dragPayload string none createAndUpdate
dropTarget bool false createAndUpdate
testID string none meta
Event Handler Payload
selectionChanged onSelectionChanged index
dragStarted onDragStarted text
dragEnded onDragEnded none
dragOver onDragOver dragPoint
dropped onDropped dragPoint

Imperative commands (via sendCommand(ref.current, …) from @nativedesktop/react): focus.

options is create-only in v1.

Automation role: slider. Text source: none. Children: none.

Prop Type Default Applied
min float 0 create
max float 100 create
step float 1 create
value float 0 createAndUpdate
orientation horizontal | vertical horizontal create
enabled bool true createAndUpdate
tooltip string none createAndUpdate
draggable bool false createAndUpdate
dragPayload string none createAndUpdate
dropTarget bool false createAndUpdate
testID string none meta
Event Handler Payload
valueChanged onValueChanged value
dragStarted onDragStarted text
dragEnded onDragEnded none
dragOver onDragOver dragPoint
dropped onDropped dragPoint

step snaps the value on both backends. GTK snaps to it without drawing anything; AppKit’s only stepping lever is tick marks, so there an explicit step yielding 50 stops or fewer both snaps and draws marks below the track. Anything else stays continuous on AppKit, including the default 1 over the default 0 to 100 range, which would be 101 marks.

Automation role: progressbar. Text source: none. Children: none.

Prop Type Default Applied
fraction float 0 createAndUpdate
enabled bool true createAndUpdate
tooltip string none createAndUpdate
draggable bool false createAndUpdate
dragPayload string none createAndUpdate
dropTarget bool false createAndUpdate
testID string none meta
Event Handler Payload
dragStarted onDragStarted text
dragEnded onDragEnded none
dragOver onDragOver dragPoint
dropped onDropped dragPoint

Automation role: image. Text source: none. Children: none.

Prop Type Default Applied
path string none createAndUpdate
iconName string none createAndUpdate
pixelSize int 0 createAndUpdate
symbolScale small | medium | large medium create
symbolWeight regular | medium | semibold | bold regular create
symbolRenderingMode monochrome | hierarchical | multicolor monochrome create
enabled bool true createAndUpdate
tooltip string none createAndUpdate
draggable bool false createAndUpdate
dragPayload string none createAndUpdate
dropTarget bool false createAndUpdate
testID string none meta
Event Handler Payload
dragStarted onDragStarted text
dragEnded onDragEnded none
dragOver onDragOver dragPoint
dropped onDropped dragPoint

symbolScale/symbolWeight/symbolRenderingMode configure the resolved SF Symbol on macOS and are inert on GTK; see Icons.

Automation role: scrollarea. Text source: none. Children: single.

Prop Type Default Applied
minContentHeight int 0 create
hscroll auto | never auto create
enabled bool true createAndUpdate
tooltip string none createAndUpdate
draggable bool false createAndUpdate
dragPayload string none createAndUpdate
dropTarget bool false createAndUpdate
testID string none meta
Event Handler Payload
dragStarted onDragStarted text
dragEnded onDragEnded none
dragOver onDragOver dragPoint
dropped onDropped dragPoint

minContentHeight is the same floor <textarea> takes: a scroller with no natural height measures zero inside another scrolling parent. 0 opts out.

Automation role: separator. Text source: none. Children: none.

Prop Type Default Applied
orientation horizontal | vertical horizontal create
enabled bool true createAndUpdate
tooltip string none createAndUpdate
draggable bool false createAndUpdate
dragPayload string none createAndUpdate
dropTarget bool false createAndUpdate
testID string none meta
Event Handler Payload
dragStarted onDragStarted text
dragEnded onDragEnded none
dragOver onDragOver dragPoint
dropped onDropped dragPoint

Automation role: spinner. Text source: none. Children: none.

Prop Type Default Applied
spinning bool true createAndUpdate
enabled bool true createAndUpdate
tooltip string none createAndUpdate
draggable bool false createAndUpdate
dragPayload string none createAndUpdate
dropTarget bool false createAndUpdate
testID string none meta
Event Handler Payload
dragStarted onDragStarted text
dragEnded onDragEnded none
dragOver onDragOver dragPoint
dropped onDropped dragPoint

Automation role: tablist. Text source: none. Children: multi.

Prop Type Default Applied
selectedIndex int 0 createAndUpdate
enabled bool true createAndUpdate
tooltip string none createAndUpdate
draggable bool false createAndUpdate
dragPayload string none createAndUpdate
dropTarget bool false createAndUpdate
testID string none meta
Event Handler Payload
selectionChanged onSelectionChanged index
dragStarted onDragStarted text
dragEnded onDragEnded none
dragOver onDragOver dragPoint
dropped onDropped dragPoint

Attached props (set on children):

Prop Type Default
tabLabel string
tabIcon string

Attached props apply at attach time only. Changing one after mount is a no-op.

selectedIndex takes effect on update; initial page is 0.

On Linux this renders as a switcher over an AdwViewStack (the modern in-window view switcher): an AdwInlineViewSwitcher in a horizontal scroller, upgraded to a full AdwViewSwitcher once a page declares a tabIcon. The switcher scrolls instead of shrinking, so a many-page tab view keeps readable labels rather than one ellipsis per page. On macOS it is an NSTabViewController with a segmented control on top, which sizes and centers the segments and gives them a common minimum width. One documented asymmetry: AdwViewStack cannot insert a page at an index, so inserting a page between existing siblings lands it at the END on Linux (insertBefore degenerates to append); macOS honors the position. tabIcon names the page icon shown in the switcher on Linux; document-style tabs remain the <window tabGroup> path.

Automation role: grid. Text source: none. Children: multi.

Prop Type Default Applied
enabled bool true createAndUpdate
tooltip string none createAndUpdate
draggable bool false createAndUpdate
dragPayload string none createAndUpdate
dropTarget bool false createAndUpdate
testID string none meta
Event Handler Payload
dragStarted onDragStarted text
dragEnded onDragEnded none
dragOver onDragOver dragPoint
dropped onDropped dragPoint

Attached props (set on children):

Prop Type Default
gridRow int 0
gridColumn int 0
gridRowSpan int 1
gridColumnSpan int 1

Attached props apply at attach time only. Changing one after mount is a no-op.

Automation role: list. Text source: none. Children: none.

Prop Type Default Applied
items stringList none createAndUpdate
selectedIndex int -1 createAndUpdate
emptyIconName string none createAndUpdate
emptyTitle string none createAndUpdate
emptyDescription string none createAndUpdate
enabled bool true createAndUpdate
tooltip string none createAndUpdate
draggable bool false createAndUpdate
dragPayload string none createAndUpdate
dropTarget bool false createAndUpdate
testID string none meta
Event Handler Payload
rowActivated onRowActivated index
dragStarted onDragStarted text
dragEnded onDragEnded none
dragOver onDragOver dragPoint
dropped onDropped dragPoint

The three empty* props swap in platform empty-state chrome when items is empty; see Native empty states.

itemCount (reported by getTree) is the row count, never a walk of GTK’s recycled row widgets. React item-template components, rendering arbitrary JSX per row, are not implemented. Today <listview> renders native string rows only.

Automation role: webview. Text source: none. Children: none.

Prop Type Default Applied
url string createAndUpdate
profile string create
engine system | chromium system create
contextMenuMode native | suppress native createAndUpdate
enabled bool true createAndUpdate
tooltip string none createAndUpdate
draggable bool false createAndUpdate
dragPayload string none createAndUpdate
dropTarget bool false createAndUpdate
testID string none meta
Event Handler Payload
navigate onNavigate text
titleChanged onTitleChanged text
loadingChanged onLoadingChanged checked
backAvailable onBackAvailable checked
forwardAvailable onForwardAvailable checked
loadProgress onLoadProgress value
loadFailed onLoadFailed data
newWindow onNewWindow text
downloadRequested onDownloadRequested data
javaScriptResult onJavaScriptResult data
scriptMessage onScriptMessage data
schemeRequest onSchemeRequest data
cookiesResult onCookiesResult data
cookiesChanged onCookiesChanged data
faviconChanged onFaviconChanged data
findResult onFindResult data
securityChanged onSecurityChanged data
linkHover onLinkHover text
contextMenu onContextMenu data
contextMenuItemClicked onContextMenuItemClicked data
sessionSaved onSessionSaved data
audioStateChanged onAudioStateChanged data
dragStarted onDragStarted text
dragEnded onDragEnded none
dragOver onDragOver dragPoint
dropped onDropped dragPoint

Imperative commands (via sendCommand(ref.current, …) from @nativedesktop/react): goBack, goForward, reload, stop, executeJavaScript, setZoom, setUserAgent, openDevTools, addUserScript, removeUserScript, clearUserScripts, registerScriptMessage, unregisterScriptMessage, respondScheme, getCookies, setCookie, deleteCookie, findStart, findNext, findPrevious, findStop, saveSession, restoreSession, setMuted, setContextMenuItems, focus.

The browser-grade surface around these commands is documented in WebView.

Automation role: custom. Text source: none. Children: none.

Prop Type Default Applied
viewKind string none create
props string {} createAndUpdate
enabled bool true createAndUpdate
tooltip string none createAndUpdate
draggable bool false createAndUpdate
dragPayload string none createAndUpdate
dropTarget bool false createAndUpdate
testID string none meta
Event Handler Payload
nativeEvent onNativeEvent data
dragStarted onDragStarted text
dragEnded onDragEnded none
dragOver onDragOver dragPoint
dropped onDropped dragPoint

The generic host for an app-owned native plugin widget. Apps use defineNativeComponent rather than this intrinsic directly. See Native Modules for the plugin ABI, build config, and a working example.

Automation role: group. Text source: none. Children: multi.

Prop Type Default Applied
sidebarWidth float 0 create
collapsed bool false createAndUpdate
listWidth float 0 create
breakpoint int 0 create
enabled bool true createAndUpdate
tooltip string none createAndUpdate
draggable bool false createAndUpdate
dragPayload string none createAndUpdate
dropTarget bool false createAndUpdate
testID string none meta
Event Handler Payload
dragStarted onDragStarted text
dragEnded onDragEnded none
dragOver onDragOver dragPoint
dropped onDropped dragPoint

Attached props (set on children):

Prop Type Default
slot enum content

Attached props apply at attach time only. Changing one after mount is a no-op.

See Windows & Chrome for how this renders on each platform, and Split Views for the three-pane (list slot) pattern.

Automation role: toolbar. Text source: title. Children: multi.

Prop Type Default Applied
title string createAndUpdate
subtitle string none createAndUpdate
showTitleButtons bool true create
canGoBack bool false createAndUpdate
canGoForward bool false createAndUpdate
enabled bool true createAndUpdate
tooltip string none createAndUpdate
draggable bool false createAndUpdate
dragPayload string none createAndUpdate
dropTarget bool false createAndUpdate
testID string none meta
Event Handler Payload
back onBack none
forward onForward none
dragStarted onDragStarted text
dragEnded onDragEnded none
dragOver onDragOver dragPoint
dropped onDropped dragPoint

Attached props (set on children):

Prop Type Default
slot enum start

Attached props apply at attach time only. Changing one after mount is a no-op.

Setting either canGoBack or canGoForward opts a headerbar into a pair of native back/forward buttons (a header with neither prop set gets none); each prop only enables/disables its own button, and back/forward fire when the user clicks one.

title and subtitle both update in place, so a header whose title tracks the selected item needs no key.

Automation role: group. Text source: none. Children: multi.

Prop Type Default Applied
topBarStyle flat | raised | raised-border flat create
bottomBarStyle flat | raised | raised-border flat create
extendContentToTopEdge bool false create
enabled bool true createAndUpdate
tooltip string none createAndUpdate
draggable bool false createAndUpdate
dragPayload string none createAndUpdate
dropTarget bool false createAndUpdate
testID string none meta
Event Handler Payload
dragStarted onDragStarted text
dragEnded onDragEnded none
dragOver onDragOver dragPoint
dropped onDropped dragPoint

Attached props (set on children):

Prop Type Default
slot enum content

Attached props apply at attach time only. Changing one after mount is a no-op.

On macOS a slot="top" or slot="bottom" bar in a split pane becomes a real NSSplitViewItemAccessoryViewController, which is what earns the macOS 26 scroll edge effect under the bar.

Automation role: textbox. Text source: text. Children: none.

Prop Type Default Applied
text string createAndUpdate
placeholder string none createAndUpdate
enabled bool true createAndUpdate
tooltip string none createAndUpdate
draggable bool false createAndUpdate
dragPayload string none createAndUpdate
dropTarget bool false createAndUpdate
testID string none meta
Event Handler Payload
changed onChanged text
activate onActivate text
dragStarted onDragStarted text
dragEnded onDragEnded none
dragOver onDragOver dragPoint
dropped onDropped dragPoint

Imperative commands (via sendCommand(ref.current, …) from @nativedesktop/react): focus.

Automation role: list. Text source: none. Children: none.

Prop Type Default Applied
items objectList none createAndUpdate
selectedIndex int -1 createAndUpdate
emptyIconName string none createAndUpdate
emptyTitle string none createAndUpdate
emptyDescription string none createAndUpdate
enabled bool true createAndUpdate
tooltip string none createAndUpdate
draggable bool false createAndUpdate
dragPayload string none createAndUpdate
dropTarget bool false createAndUpdate
testID string none meta
Event Handler Payload
selectionChanged onSelectionChanged index
rowActivated onRowActivated index
dragStarted onDragStarted text
dragEnded onDragEnded none
dragOver onDragOver dragPoint
dropped onDropped dragPoint

Automation role: tree. Text source: none. Children: none.

Prop Type Default Applied
nodes objectList none createAndUpdate
actions objectList none createAndUpdate
selectedId string createAndUpdate
actionVisibility hover | always hover create
indentationPerLevel int 14 create
emptyIconName string none createAndUpdate
emptyTitle string none createAndUpdate
emptyDescription string none createAndUpdate
enabled bool true createAndUpdate
tooltip string none createAndUpdate
draggable bool false createAndUpdate
dragPayload string none createAndUpdate
dropTarget bool false createAndUpdate
testID string none meta
Event Handler Payload
selectionChanged onSelectionChanged data
rowActivated onRowActivated data
nodeExpanded onNodeExpanded data
nodeCollapsed onNodeCollapsed data
actionClicked onActionClicked data
middleClicked onMiddleClick data
dragStarted onDragStarted text
dragEnded onDragEnded none
dragOver onDragOver dragPoint
dropped onDropped dragPoint

Automation role: menubar. Text source: none. Children: multi.

Prop Type Default Applied
defaults bool true create
enabled bool true createAndUpdate
tooltip string none createAndUpdate
draggable bool false createAndUpdate
dragPayload string none createAndUpdate
dropTarget bool false createAndUpdate
testID string none meta
Event Handler Payload
dragStarted onDragStarted text
dragEnded onDragEnded none
dragOver onDragOver dragPoint
dropped onDropped dragPoint

<menubar> is a child of <window>, alongside the content child. See Menu Bar for platform rendering (real NSApp.mainMenu on macOS, primary hamburger menu on GNOME).

Automation role: menu. Text source: label. Children: multi.

Prop Type Default Applied
label string createAndUpdate
enabled bool true createAndUpdate
tooltip string none createAndUpdate
draggable bool false createAndUpdate
dragPayload string none createAndUpdate
dropTarget bool false createAndUpdate
testID string none meta
Event Handler Payload
dragStarted onDragStarted text
dragEnded onDragEnded none
dragOver onDragOver dragPoint
dropped onDropped dragPoint

Automation role: menuitem. Text source: label. Children: none.

Prop Type Default Applied
label string createAndUpdate
iconName string none create
iconVisible bool false create
accelerator string none create
role none | separator | about | settings | quit | undo | redo | cut | copy | paste | delete | selectAll | close | minimize | zoom | fullscreen none create
enabled bool true createAndUpdate
tooltip string none createAndUpdate
draggable bool false createAndUpdate
dragPayload string none createAndUpdate
dropTarget bool false createAndUpdate
testID string none meta
Event Handler Payload
selected onSelect none
dragStarted onDragStarted text
dragEnded onDragEnded none
dragOver onDragOver dragPoint
dropped onDropped dragPoint

iconVisible opts an item’s iconName back in on macOS 27, where menu-item symbol images are hidden by default; see Icons.

Automation role: group. Text source: title. Children: multi.

Prop Type Default Applied
title string createAndUpdate
description string none createAndUpdate
enabled bool true createAndUpdate
tooltip string none createAndUpdate
draggable bool false createAndUpdate
dragPayload string none createAndUpdate
dropTarget bool false createAndUpdate
testID string none meta
Event Handler Payload
dragStarted onDragStarted text
dragEnded onDragEnded none
dragOver onDragOver dragPoint
dropped onDropped dragPoint

Automation role: listitem. Text source: title. Children: multi.

Prop Type Default Applied
title string createAndUpdate
subtitle string none createAndUpdate
iconName string none create
iconData string none createAndUpdate
activatable bool false create
enabled bool true createAndUpdate
tooltip string none createAndUpdate
draggable bool false createAndUpdate
dragPayload string none createAndUpdate
dropTarget bool false createAndUpdate
testID string none meta
Event Handler Payload
activated onActivate none
dragStarted onDragStarted text
dragEnded onDragEnded none
dragOver onDragOver dragPoint
dropped onDropped dragPoint

Attached props (set on children):

Prop Type Default
slot enum suffix

Attached props apply at attach time only. Changing one after mount is a no-op.

Automation role: switch. Text source: title. Children: none.

Prop Type Default Applied
title string createAndUpdate
subtitle string none createAndUpdate
checked bool false createAndUpdate
enabled bool true createAndUpdate
tooltip string none createAndUpdate
draggable bool false createAndUpdate
dragPayload string none createAndUpdate
dropTarget bool false createAndUpdate
testID string none meta
Event Handler Payload
toggled onToggled checked
dragStarted onDragStarted text
dragEnded onDragEnded none
dragOver onDragOver dragPoint
dropped onDropped dragPoint

Automation role: group. Text source: none. Children: single.

Prop Type Default Applied
maximumSize int 600 create
tighteningThreshold int 400 create
enabled bool true createAndUpdate
tooltip string none createAndUpdate
draggable bool false createAndUpdate
dragPayload string none createAndUpdate
dropTarget bool false createAndUpdate
testID string none meta
Event Handler Payload
dragStarted onDragStarted text
dragEnded onDragEnded none
dragOver onDragOver dragPoint
dropped onDropped dragPoint

Automation role: group. Text source: none. Children: multi.

Prop Type Default Applied
enabled bool true createAndUpdate
tooltip string none createAndUpdate
draggable bool false createAndUpdate
dragPayload string none createAndUpdate
dropTarget bool false createAndUpdate
testID string none meta
Event Handler Payload
dragStarted onDragStarted text
dragEnded onDragEnded none
dragOver onDragOver dragPoint
dropped onDropped dragPoint

Automation role: switch. Text source: none. Children: none.

Prop Type Default Applied
checked bool false createAndUpdate
enabled bool true createAndUpdate
tooltip string none createAndUpdate
draggable bool false createAndUpdate
dragPayload string none createAndUpdate
dropTarget bool false createAndUpdate
testID string none meta
Event Handler Payload
toggled onToggled checked
dragStarted onDragStarted text
dragEnded onDragEnded none
dragOver onDragOver dragPoint
dropped onDropped dragPoint

Imperative commands (via sendCommand(ref.current, …) from @nativedesktop/react): focus.

Automation role: button. Text source: label. Children: none.

Prop Type Default Applied
label string createAndUpdate
iconName string none create
active bool false createAndUpdate
enabled bool true createAndUpdate
tooltip string none createAndUpdate
draggable bool false createAndUpdate
dragPayload string none createAndUpdate
dropTarget bool false createAndUpdate
testID string none meta
Event Handler Payload
toggled onToggled checked
dragStarted onDragStarted text
dragEnded onDragEnded none
dragOver onDragOver dragPoint
dropped onDropped dragPoint

Automation role: radiogroup. Text source: none. Children: none.

Prop Type Default Applied
options stringList none create
selectedIndex int 0 createAndUpdate
enabled bool true createAndUpdate
tooltip string none createAndUpdate
draggable bool false createAndUpdate
dragPayload string none createAndUpdate
dropTarget bool false createAndUpdate
testID string none meta
Event Handler Payload
selectionChanged onSelectionChanged index
dragStarted onDragStarted text
dragEnded onDragEnded none
dragOver onDragOver dragPoint
dropped onDropped dragPoint

Automation role: spinbutton. Text source: none. Children: none.

Prop Type Default Applied
value float 0 createAndUpdate
min float 0 create
max float 100 create
step float 1 create
digits int 0 create
wraps bool false create
enabled bool true createAndUpdate
tooltip string none createAndUpdate
draggable bool false createAndUpdate
dragPayload string none createAndUpdate
dropTarget bool false createAndUpdate
testID string none meta
Event Handler Payload
valueChanged onValueChanged value
dragStarted onDragStarted text
dragEnded onDragEnded none
dragOver onDragOver dragPoint
dropped onDropped dragPoint

Imperative commands (via sendCommand(ref.current, …) from @nativedesktop/react): focus.

Automation role: link. Text source: label. Children: none.

Prop Type Default Applied
label string createAndUpdate
uri string createAndUpdate
visited bool false createAndUpdate
openExternal bool false createAndUpdate
enabled bool true createAndUpdate
tooltip string none createAndUpdate
draggable bool false createAndUpdate
dragPayload string none createAndUpdate
dropTarget bool false createAndUpdate
testID string none meta
Event Handler Payload
activate onActivate text
dragStarted onDragStarted text
dragEnded onDragEnded none
dragOver onDragOver dragPoint
dropped onDropped dragPoint

Automation role: levelbar. Text source: none. Children: none.

Prop Type Default Applied
value float 0 createAndUpdate
min float 0 create
max float 1 create
warningValue float none createAndUpdate
criticalValue float none createAndUpdate
discrete bool false create
indicatorStyle continuous | discrete | rating | relevancy continuous create
enabled bool true createAndUpdate
tooltip string none createAndUpdate
draggable bool false createAndUpdate
dragPayload string none createAndUpdate
dropTarget bool false createAndUpdate
testID string none meta
Event Handler Payload
dragStarted onDragStarted text
dragEnded onDragEnded none
dragOver onDragOver dragPoint
dropped onDropped dragPoint

Automation role: colorpicker. Text source: none. Children: none.

Prop Type Default Applied
value string #000000 createAndUpdate
supportsAlpha bool false create
enabled bool true createAndUpdate
tooltip string none createAndUpdate
draggable bool false createAndUpdate
dragPayload string none createAndUpdate
dropTarget bool false createAndUpdate
testID string none meta
Event Handler Payload
colorChanged onColorChanged text
dragStarted onDragStarted text
dragEnded onDragEnded none
dragOver onDragOver dragPoint
dropped onDropped dragPoint

Automation role: banner. Text source: title. Children: none.

Prop Type Default Applied
title string createAndUpdate
buttonLabel string none createAndUpdate
revealed bool false createAndUpdate
enabled bool true createAndUpdate
tooltip string none createAndUpdate
draggable bool false createAndUpdate
dragPayload string none createAndUpdate
dropTarget bool false createAndUpdate
testID string none meta
Event Handler Payload
buttonClicked onButtonClicked none
dragStarted onDragStarted text
dragEnded onDragEnded none
dragOver onDragOver dragPoint
dropped onDropped dragPoint

Automation role: menubutton. Text source: label. Children: multi.

Prop Type Default Applied
label string createAndUpdate
iconName string none createAndUpdate
enabled bool true createAndUpdate
tooltip string none createAndUpdate
draggable bool false createAndUpdate
dragPayload string none createAndUpdate
dropTarget bool false createAndUpdate
testID string none meta
Event Handler Payload
dragStarted onDragStarted text
dragEnded onDragEnded none
dragOver onDragOver dragPoint
dropped onDropped dragPoint

Automation role: splitbutton. Text source: label. Children: multi.

Prop Type Default Applied
label string createAndUpdate
iconName string none createAndUpdate
enabled bool true createAndUpdate
tooltip string none createAndUpdate
draggable bool false createAndUpdate
dragPayload string none createAndUpdate
dropTarget bool false createAndUpdate
testID string none meta
Event Handler Payload
clicked onClick none
dragStarted onDragStarted text
dragEnded onDragEnded none
dragOver onDragOver dragPoint
dropped onDropped dragPoint

Automation role: popover. Text source: none. Children: single.

Prop Type Default Applied
anchor int 0 createAndUpdate
open bool false createAndUpdate
position top | bottom | left | right top createAndUpdate
enabled bool true createAndUpdate
tooltip string none createAndUpdate
draggable bool false createAndUpdate
dragPayload string none createAndUpdate
dropTarget bool false createAndUpdate
testID string none meta
Event Handler Payload
closed onClosed none
dragStarted onDragStarted text
dragEnded onDragEnded none
dragOver onDragOver dragPoint
dropped onDropped dragPoint

Automation role: expander. Text source: label. Children: single.

Prop Type Default Applied
label string createAndUpdate
expanded bool false createAndUpdate
enabled bool true createAndUpdate
tooltip string none createAndUpdate
draggable bool false createAndUpdate
dragPayload string none createAndUpdate
dropTarget bool false createAndUpdate
testID string none meta
Event Handler Payload
toggled onToggled checked
dragStarted onDragStarted text
dragEnded onDragEnded none
dragOver onDragOver dragPoint
dropped onDropped dragPoint

Automation role: group. Text source: title. Children: multi.

Prop Type Default Applied
iconName string none createAndUpdate
title string createAndUpdate
description string none createAndUpdate
enabled bool true createAndUpdate
tooltip string none createAndUpdate
draggable bool false createAndUpdate
dragPayload string none createAndUpdate
dropTarget bool false createAndUpdate
testID string none meta
Event Handler Payload
dragStarted onDragStarted text
dragEnded onDragEnded none
dragOver onDragOver dragPoint
dropped onDropped dragPoint

Automation role: group. Text source: none. Children: single.

Prop Type Default Applied
enabled bool true createAndUpdate
tooltip string none createAndUpdate
draggable bool false createAndUpdate
dragPayload string none createAndUpdate
dropTarget bool false createAndUpdate
testID string none meta
Event Handler Payload
toastButtonClicked onToastButtonClicked data
toastDismissed onToastDismissed data
dragStarted onDragStarted text
dragEnded onDragEnded none
dragOver onDragOver dragPoint
dropped onDropped dragPoint

Imperative commands (via sendCommand(ref.current, …) from @nativedesktop/react): showToast, dismissToast.

Automation role: datepicker. Text source: none. Children: none.

Prop Type Default Applied
value string createAndUpdate
displayStyle field | calendar calendar create
minDate string none createAndUpdate
maxDate string none createAndUpdate
enabled bool true createAndUpdate
tooltip string none createAndUpdate
draggable bool false createAndUpdate
dragPayload string none createAndUpdate
dropTarget bool false createAndUpdate
testID string none meta
Event Handler Payload
dateChanged onDateChanged text
dragStarted onDragStarted text
dragEnded onDragEnded none
dragOver onDragOver dragPoint
dropped onDropped dragPoint

Automation role: table. Text source: none. Children: none.

Prop Type Default Applied
columns objectList none createAndUpdate
rows objectList none createAndUpdate
selectionMode none | single | multiple single create
selectedIndex int -1 createAndUpdate
selectedIndexes intList none createAndUpdate
columnsReorderable bool false createAndUpdate
showRowSeparators bool true createAndUpdate
emptyIconName string none createAndUpdate
emptyTitle string none createAndUpdate
emptyDescription string none createAndUpdate
enabled bool true createAndUpdate
tooltip string none createAndUpdate
draggable bool false createAndUpdate
dragPayload string none createAndUpdate
dropTarget bool false createAndUpdate
testID string none meta
Event Handler Payload
selectionChanged onSelectionChanged indexes
rowActivated onRowActivated index
sortChanged onSortChanged data
columnsResized onColumnsResized data
columnsReordered onColumnsReordered data
dragStarted onDragStarted text
dragEnded onDragEnded none
dragOver onDragOver dragPoint
dropped onDropped dragPoint

Automation role: tree. Text source: none. Children: none.

Prop Type Default Applied
nodes objectList none createAndUpdate
selectedIndex int -1 createAndUpdate
indentationPerLevel int 16 create
emptyIconName string none createAndUpdate
emptyTitle string none createAndUpdate
emptyDescription string none createAndUpdate
enabled bool true createAndUpdate
tooltip string none createAndUpdate
draggable bool false createAndUpdate
dragPayload string none createAndUpdate
dropTarget bool false createAndUpdate
testID string none meta
Event Handler Payload
selectionChanged onSelectionChanged data
rowActivated onRowActivated data
nodeExpanded onNodeExpanded data
nodeCollapsed onNodeCollapsed data
dragStarted onDragStarted text
dragEnded onDragEnded none
dragOver onDragOver dragPoint
dropped onDropped dragPoint

Automation role: fontpicker. Text source: none. Children: none.

Prop Type Default Applied
value string Sans 12 createAndUpdate
enabled bool true createAndUpdate
tooltip string none createAndUpdate
draggable bool false createAndUpdate
dragPayload string none createAndUpdate
dropTarget bool false createAndUpdate
testID string none meta
Event Handler Payload
fontChanged onFontChanged text
dragStarted onDragStarted text
dragEnded onDragEnded none
dragOver onDragOver dragPoint
dropped onDropped dragPoint

Automation role: video. Text source: none. Children: none.

Prop Type Default Applied
src string createAndUpdate
autoplay bool false create
loop bool false createAndUpdate
controls bool true create
enabled bool true createAndUpdate
tooltip string none createAndUpdate
draggable bool false createAndUpdate
dragPayload string none createAndUpdate
dropTarget bool false createAndUpdate
testID string none meta
Event Handler Payload
dragStarted onDragStarted text
dragEnded onDragEnded none
dragOver onDragOver dragPoint
dropped onDropped dragPoint

Platforms: macos only. An invisible no-op everywhere else.

Automation role: trayitem. Text source: none. Children: multi.

Prop Type Default Applied
iconName string none createAndUpdate
enabled bool true createAndUpdate
tooltip string none createAndUpdate
draggable bool false createAndUpdate
dragPayload string none createAndUpdate
dropTarget bool false createAndUpdate
testID string none meta
Event Handler Payload
dragStarted onDragStarted text
dragEnded onDragEnded none
dragOver onDragOver dragPoint
dropped onDropped dragPoint

Platforms: macos only. An invisible no-op everywhere else.

Automation role: button. Text source: label. Children: none.

Prop Type Default Applied
label string createAndUpdate
iconName string none create
items stringList none createAndUpdate
enabled bool true createAndUpdate
tooltip string none createAndUpdate
draggable bool false createAndUpdate
dragPayload string none createAndUpdate
dropTarget bool false createAndUpdate
testID string none meta
Event Handler Payload
dragStarted onDragStarted text
dragEnded onDragEnded none
dragOver onDragOver dragPoint
dropped onDropped dragPoint

Automation role: terminal. Text source: none. Children: none.

Prop Type Default Applied
command string none create
cwd string none create
fontSize int 13 create
fontFamily string none create
palette string none create
foreground string create
background string create
cols int 80 create
rows int 24 create
remote bool false create
host string none create
port int 4618 create
sessionId string none create
ticket string none create
restoreScrollback bool false create
enabled bool true createAndUpdate
tooltip string none createAndUpdate
draggable bool false createAndUpdate
dragPayload string none createAndUpdate
dropTarget bool false createAndUpdate
testID string none meta
Event Handler Payload
titleChanged onTitleChanged text
bell onBell none
exited onExited data
connectionState onConnectionState data
selectionChanged onSelectionChanged checked
imagePaste onImagePaste data
focusChanged onFocusChanged checked
dragStarted onDragStarted text
dragEnded onDragEnded none
dragOver onDragOver dragPoint
dropped onDropped dragPoint

Imperative commands (via sendCommand(ref.current, …) from @nativedesktop/react): copy, paste, selectAll, clearSelection, focus.

palette carries the terminal’s 16- or 256-color palette as a comma-separated list of #rrggbb hex colors, either 16 or 256 entries in ANSI index order (entry 0 is black, 1 red, up to 15 bright white for the 16-color form). Leave it unset for the backend’s built-in default palette. foreground and background are the default text and cell colors, also #rrggbb, and are distinct from the background and color style props, which paint the widget’s own view chrome rather than the terminal’s cells.

Automation role: group. Text source: none. Children: multi.

Prop Type Default Applied
orientation horizontal | vertical horizontal create
position float 0.5 createAndUpdate
enabled bool true createAndUpdate
tooltip string none createAndUpdate
draggable bool false createAndUpdate
dragPayload string none createAndUpdate
dropTarget bool false createAndUpdate
testID string none meta
Event Handler Payload
positionChanged onPositionChanged position
dragStarted onDragStarted text
dragEnded onDragEnded none
dragOver onDragOver dragPoint
dropped onDropped dragPoint

Automation role: dialog. Text source: none. Children: none.

Prop Type Default Applied
open bool false createAndUpdate
placeholder string none createAndUpdate
query string createAndUpdate
items objectList none createAndUpdate
enabled bool true createAndUpdate
tooltip string none createAndUpdate
draggable bool false createAndUpdate
dragPayload string none createAndUpdate
dropTarget bool false createAndUpdate
testID string none meta
Event Handler Payload
queryChanged onQueryChanged text
activate onActivate text
submit onSubmit text
cancel onCancel none
dragStarted onDragStarted text
dragEnded onDragEnded none
dragOver onDragOver dragPoint
dropped onDropped dragPoint

A controlled Cmd-K style overlay: the app owns query/items and does all filtering and ranking, the widget only renders rows and reports interaction. See Command Palette for the full pattern, platform presentation, and automation notes.

Automation role: image. Text source: text. Children: none.

Prop Type Default Applied
text string createAndUpdate
imagePath string none createAndUpdate
size int 32 create
showInitials bool true create
enabled bool true createAndUpdate
tooltip string none createAndUpdate
draggable bool false createAndUpdate
dragPayload string none createAndUpdate
dropTarget bool false createAndUpdate
testID string none meta
Event Handler Payload
dragStarted onDragStarted text
dragEnded onDragEnded none
dragOver onDragOver dragPoint
dropped onDropped dragPoint

Automation role: label. Text source: label. Children: none.

Prop Type Default Applied
label string createAndUpdate
variant neutral | accent | success | warning | error neutral createAndUpdate
dot bool false create
enabled bool true createAndUpdate
tooltip string none createAndUpdate
draggable bool false createAndUpdate
dragPayload string none createAndUpdate
dropTarget bool false createAndUpdate
testID string none meta
Event Handler Payload
dragStarted onDragStarted text
dragEnded onDragEnded none
dragOver onDragOver dragPoint
dropped onDropped dragPoint

Automation role: label. Text source: label. Children: none.

Prop Type Default Applied
label string createAndUpdate
variant neutral | accent | success | warning | error neutral createAndUpdate
removable bool false create
enabled bool true createAndUpdate
tooltip string none createAndUpdate
draggable bool false createAndUpdate
dragPayload string none createAndUpdate
dropTarget bool false createAndUpdate
testID string none meta
Event Handler Payload
removed onRemoved none
dragStarted onDragStarted text
dragEnded onDragEnded none
dragOver onDragOver dragPoint
dropped onDropped dragPoint

Automation role: label. Text source: keys. Children: none.

Prop Type Default Applied
keys string createAndUpdate
enabled bool true createAndUpdate
tooltip string none createAndUpdate
draggable bool false createAndUpdate
dragPayload string none createAndUpdate
dropTarget bool false createAndUpdate
testID string none meta
Event Handler Payload
dragStarted onDragStarted text
dragEnded onDragEnded none
dragOver onDragOver dragPoint
dropped onDropped dragPoint

Automation role: combobox. Text source: text. Children: none.

Prop Type Default Applied
options stringList none create
selectedIndex int 0 createAndUpdate
text string createAndUpdate
placeholder string none create
editable bool true create
enabled bool true createAndUpdate
tooltip string none createAndUpdate
draggable bool false createAndUpdate
dragPayload string none createAndUpdate
dropTarget bool false createAndUpdate
testID string none meta
Event Handler Payload
selectionChanged onSelectionChanged index
changed onChanged text
dragStarted onDragStarted text
dragEnded onDragEnded none
dragOver onDragOver dragPoint
dropped onDropped dragPoint

Imperative commands (via sendCommand(ref.current, …) from @nativedesktop/react): focus.

Automation role: toolbar. Text source: none. Children: none.

Prop Type Default Applied
items stringList none createAndUpdate
selectedIndex int -1 createAndUpdate
enabled bool true createAndUpdate
tooltip string none createAndUpdate
draggable bool false createAndUpdate
dragPayload string none createAndUpdate
dropTarget bool false createAndUpdate
testID string none meta
Event Handler Payload
itemActivated onItemActivated index
dragStarted onDragStarted text
dragEnded onDragEnded none
dragOver onDragOver dragPoint
dropped onDropped dragPoint

Automation role: dialog. Text source: title. Children: single.

Prop Type Default Applied
open bool false createAndUpdate
title string createAndUpdate
contentWidth int 0 createAndUpdate
contentHeight int 0 createAndUpdate
closable bool true createAndUpdate
enabled bool true createAndUpdate
tooltip string none createAndUpdate
draggable bool false createAndUpdate
dragPayload string none createAndUpdate
dropTarget bool false createAndUpdate
testID string none meta
Event Handler Payload
closed onClosed none
dragStarted onDragStarted text
dragEnded onDragEnded none
dragOver onDragOver dragPoint
dropped onDropped dragPoint

Automation role: dialog. Text source: none. Children: single.

Prop Type Default Applied
open bool false createAndUpdate
edge top | bottom | leading | trailing bottom createAndUpdate
size int 320 createAndUpdate
enabled bool true createAndUpdate
tooltip string none createAndUpdate
draggable bool false createAndUpdate
dragPayload string none createAndUpdate
dropTarget bool false createAndUpdate
testID string none meta
Event Handler Payload
closed onClosed none
dragStarted onDragStarted text
dragEnded onDragEnded none
dragOver onDragOver dragPoint
dropped onDropped dragPoint

Automation role: label. Text source: markdown. Children: none.

Prop Type Default Applied
markdown string createAndUpdate
selectable bool true createAndUpdate
enabled bool true createAndUpdate
tooltip string none createAndUpdate
draggable bool false createAndUpdate
dragPayload string none createAndUpdate
dropTarget bool false createAndUpdate
testID string none meta
Event Handler Payload
linkActivated onLinkActivated text
dragStarted onDragStarted text
dragEnded onDragEnded none
dragOver onDragOver dragPoint
dropped onDropped dragPoint

Automation role: progressbar. Text source: none. Children: none.

Prop Type Default Applied
fraction float 0 createAndUpdate
lineWidth int 3 createAndUpdate
showLabel bool false createAndUpdate
enabled bool true createAndUpdate
tooltip string none createAndUpdate
draggable bool false createAndUpdate
dragPayload string none createAndUpdate
dropTarget bool false createAndUpdate
testID string none meta
Event Handler Payload
dragStarted onDragStarted text
dragEnded onDragEnded none
dragOver onDragOver dragPoint
dropped onDropped dragPoint

Automation role: custom. Text source: none. Children: none.

Prop Type Default Applied
width int 0 createAndUpdate
height int 16 createAndUpdate
radius int 6 createAndUpdate
animated bool true createAndUpdate
enabled bool true createAndUpdate
tooltip string none createAndUpdate
draggable bool false createAndUpdate
dragPayload string none createAndUpdate
dropTarget bool false createAndUpdate
testID string none meta
Event Handler Payload
dragStarted onDragStarted text
dragEnded onDragEnded none
dragOver onDragOver dragPoint
dropped onDropped dragPoint

Automation role: custom. Text source: none. Children: none.

Prop Type Default Applied
type line | area | bar | pie | scatter | candlestick line createAndUpdate
series objectList none createAndUpdate
xLabel string createAndUpdate
yLabel string createAndUpdate
showLegend bool true createAndUpdate
showGrid bool true createAndUpdate
animated bool true createAndUpdate
minContentHeight int 160 create
enabled bool true createAndUpdate
tooltip string none createAndUpdate
draggable bool false createAndUpdate
dragPayload string none createAndUpdate
dropTarget bool false createAndUpdate
testID string none meta
Event Handler Payload
pointSelected onPointSelected data
dragStarted onDragStarted text
dragEnded onDragEnded none
dragOver onDragOver dragPoint
dropped onDropped dragPoint

minContentHeight is the sizing floor <chart> needs for the same reason <textarea> does: the drawing surface fills what it is given, so in a scrolled parent it would measure zero. See Charts.

Automation role: textbox. Text source: text. Children: none.

Prop Type Default Applied
text string createAndUpdate
language string createAndUpdate
theme string createAndUpdate
showLineNumbers bool true createAndUpdate
readOnly bool false createAndUpdate
tabWidth int 4 createAndUpdate
diagnostics objectList none createAndUpdate
enabled bool true createAndUpdate
tooltip string none createAndUpdate
draggable bool false createAndUpdate
dragPayload string none createAndUpdate
dropTarget bool false createAndUpdate
testID string none meta
Event Handler Payload
changed onChange text
cursorMoved onCursorMoved data
diagnosticClicked onDiagnosticClicked data
dragStarted onDragStarted text
dragEnded onDragEnded none
dragOver onDragOver dragPoint
dropped onDropped dragPoint

Imperative commands (via sendCommand(ref.current, …) from @nativedesktop/react): focus.