生态产品多个设计器现已发布候选版本

查看生态总览
Skip to content

TreeSelect ​

Data entry component. This page is the API reference, generated from the source code. Usage guidance and live examples are on the Chinese page.

Anatomy ​

Parts in bold are required.

data-scope="tree-select": root · label · control · trigger · value-text · tag-list · indicator · clear-trigger · positioner · content · input · tree · item · item-text · item-description · item-suffix · item-indicator · branch · branch-control · branch-trigger · branch-indicator · branch-text · branch-content · branch-loading · branch-error · branch-retry-trigger · branch-empty · empty · loading · footer · hidden-input

API reference ​

Descriptions of individual props, events and slots are written in Chinese and appear on the Chinese page.

Artifacts ​

LayerValue
Custom element<xh-tree-select>
Vue componentsXhTreeSelectBranch XhTreeSelectBranchContent XhTreeSelectBranchControl XhTreeSelectBranchEmpty XhTreeSelectBranchError XhTreeSelectBranchIndicator XhTreeSelectBranchLoading XhTreeSelectBranchRetryTrigger XhTreeSelectBranchText XhTreeSelectBranchTrigger XhTreeSelectClearTrigger XhTreeSelectContent XhTreeSelectControl XhTreeSelectEmpty XhTreeSelectFooter XhTreeSelectHiddenInput XhTreeSelectIndicator XhTreeSelectInput XhTreeSelectItem XhTreeSelectItemDeleteTrigger XhTreeSelectItemDescription XhTreeSelectItemIndicator XhTreeSelectItemSuffix XhTreeSelectItemText XhTreeSelectLabel XhTreeSelectLoading XhTreeSelectOverflowTag XhTreeSelectPositioner XhTreeSelectRoot XhTreeSelectTag XhTreeSelectTagLabel XhTreeSelectTagList XhTreeSelectTree XhTreeSelectTrigger XhTreeSelectValueText
ComposableuseTreeSelect
State machinetreeSelectMachine
Skin@xihan-ui/styles/tree-select.css

Props ​

PropTypeRequired
labelledboolean
ariaLabelstring
collectionTreeSelectNode[]
virtualizerCollectionVirtualizer
loadChildren(request: TreeSelectLoadChildrenRequest) => Promise<TreeSelectNode[] | undefined | void> | TreeSelectNode[] | undefined | void
valuestring | string[]
defaultValuestring | string[]
expandedValuestring[]
defaultExpandedValuestring[]
openboolean
defaultOpenboolean
multipleboolean
maxTagCountnumber
searchableboolean
filterTreeSelectFilter
cascadeboolean
checkedStrategyCascadeStrategy
disabledboolean
readOnlyboolean
invalidboolean
requiredboolean
loadingboolean
variantControlVariant
toneTone
sizeSize
placeholderstring
translationsPartial<TreeSelectTranslations>
placementPlacement
offsetnumber
loopboolean
dirDirection
namestring
formstring
onValueChange(details: TreeSelectValueChangeDetails) => void
onClear() => void
onExpandedValueChange(details: TreeSelectExpandedValueChangeDetails) => void
onOpenChange(details: TreeSelectOpenChangeDetails) => void
onBranchLoadStart(details: TreeSelectBranchLoadStartDetails) => void
onBranchLoad(details: TreeSelectBranchLoadDetails) => void
onBranchLoadError(details: TreeSelectBranchLoadErrorDetails) => void

TreeSelectNode ​

Elements of collection.

FieldTypeRequired
childrenTreeSelectNode[]
hasChildrenboolean
disabledboolean
valuestringYes
labelstring
draggableboolean
toneTone
descriptionstring
childrenOrientationOrientation

Events ​

Custom elements put the payload in detail; Vue emits an event of the same name.

EventPayload
value-changeTreeSelectValueChangeDetails
clear``
expanded-value-changeTreeSelectExpandedValueChangeDetails
open-changeTreeSelectOpenChangeDetails
branch-load-startTreeSelectBranchLoadStartDetails
branch-loadTreeSelectBranchLoadDetails
branch-load-errorTreeSelectBranchLoadErrorDetails

Slots ​

Only slots with a payload are listed.

Vue componentSlotPayload
XhTreeSelectRootdefaultTreeSelectRootSlotProps
XhTreeSelectRootlabel—

React adapter props ​

Only the props each component declares itself: DOM attributes inherited from ComponentPropsWithRef are left out, and root props already listed in the Props table are not repeated. The Vue counterpart is the slot table above.

React componentPropTypeRequired
XhTreeSelectBranchvaluestringYes
XhTreeSelectItemvaluestringYes
XhTreeSelectPositionercontainer() => Element | null
XhTreeSelectRootlabelReactNode
XhTreeSelectRootclearableboolean
XhTreeSelectRootchildrenSlotChildren<TreeSelectRootSlotProps>
XhTreeSelectTagvaluestringYes

State ​

Public state is written to data-state.

PartValues
root'open' | 'closed'
control'open' | 'closed'
trigger'open' | 'closed'
indicator'open' | 'closed'
positioner'open' | 'closed'
content'open' | 'closed'
tree'open' | 'closed'
branch'open' | 'closed'
branch-control'open' | 'closed'
branch-trigger'open' | 'closed'
branch-indicator'open' | 'closed'
branch-text'open' | 'closed'
branch-content'open' | 'closed'
branch-loading'open' | 'closed'
branch-error'open' | 'closed'
branch-retry-trigger'open' | 'closed'
branch-empty'open' | 'closed'
empty'open' | 'closed'
loading'open' | 'closed'
footer'open' | 'closed'

The following names are internal to the state machine.

States: open · closed

Events: OPEN · TOGGLE · CLOSE · CONTROLLED.OPEN · CONTROLLED.CLOSE · NODE.FOCUS · NODE.LOST · NODE.SELECT · VALUE.SET · VALUE.CLEAR · EXPANDED.SET · BRANCH.EXPAND · BRANCH.COLLAPSE · BRANCH.TOGGLE · BRANCH.RETRY · NODE.MOUNT · NODE.UNMOUNT · NODES.SYNC · INPUT.CHANGE · FORM.RESET · PRESS.START · PRESS.END · TAG_LIST.TRACKED

Guards: isOpenControlled · isMultiple · canPress

connect API ​

getXxxProps() returns the host attributes of the matching part.

MemberType
openboolean
collectionreadonly TreeSelectNode[]
visibleNodesreadonly TreeVisibleNode[]
valuestring[]
expandedValuestring[]
valueTextstring | null
displayTextstring
focusedValuestring | null
emptyboolean
loadingboolean
searchingboolean
inputValuestring
translationsTreeSelectTranslations
multipleboolean
disabledboolean
readOnlyboolean
invalidboolean
requiredboolean
canClearboolean
tagsTreeSelectTagMeta[]
overflowCountnumber
overflowTextstring
isSelected(value: string) => boolean
isIndeterminate(value: string) => boolean
isExpanded(value: string) => boolean
branchLoadState(value: string) => TreeSelectBranchLoadSnapshot | null
setOpen(next: boolean) => void
setValue(next: string[]) => void
setExpandedValue(next: string[]) => void
setInputValue(next: string) => void
expand(value: string) => void
collapse(value: string) => void
retryBranch(value: string) => void
select(value: string) => void
clear() => void
deselect(value: string) => void
getRootProps() => T['element']
getLabelProps() => T['element']
getControlProps() => T['element']
getTriggerProps() => T['button']
getValueTextProps() => T['element']
getTagListProps() => T['element']
getTagProps(props: TreeSelectTagProps) => T['element']
getTagLabelProps() => T['element']
getOverflowTagProps() => T['element']
getItemDeleteTriggerProps(props: TreeSelectTagProps) => T['button']
getIndicatorProps() => T['element']
getClearTriggerProps() => T['button']
getPositionerProps() => T['element']
getContentProps() => T['element']
getInputProps() => T['input']
getTreeProps() => T['element']
getItemProps(props: TreeSelectNodeProps) => T['element']
getItemTextProps(props: TreeSelectNodeProps) => T['element']
getItemDescriptionProps(props: TreeSelectNodeProps) => T['element']
getItemSuffixProps(props: TreeSelectNodeProps) => T['element']
getItemIndicatorProps(props: TreeSelectNodeProps) => T['element']
getBranchProps(props: TreeSelectNodeProps) => T['element']
getBranchControlProps(props: TreeSelectNodeProps) => T['element']
getBranchTriggerProps(props: TreeSelectNodeProps) => T['element']
getBranchIndicatorProps(props: TreeSelectNodeProps) => T['element']
getBranchTextProps(props: TreeSelectNodeProps) => T['element']
getBranchContentProps(props: TreeSelectNodeProps) => T['element']
getBranchLoadingProps(props: TreeSelectNodeProps) => T['element']
getBranchErrorProps(props: TreeSelectNodeProps) => T['element']
getBranchRetryTriggerProps(props: TreeSelectNodeProps) => T['button']
getBranchEmptyProps(props: TreeSelectNodeProps) => T['element']
getEmptyProps() => T['element']
getLoadingProps() => T['element']
getFooterProps() => T['element']
getHiddenInputProps(props?: { value: string }) => T['input']

Accessibility ​

Keyboard ​

Specification: W3C APG. Each row is a stable behavior id that the conformance tests cover; the conditions and effects are described on the Chinese page.

KeysBehavior
Enter / Spacetree-select.kbd.open
ArrowDowntree-select.kbd.open-next
ArrowUptree-select.kbd.open-prev
Deletetree-select.kbd.clear
Backspacetree-select.kbd.clear-last
ArrowDowntree-select.kbd.next
ArrowUptree-select.kbd.prev
Hometree-select.kbd.first
Endtree-select.kbd.last
ArrowRighttree-select.kbd.expand
ArrowLefttree-select.kbd.collapse
Enter / Spacetree-select.kbd.select
Enter / Spacetree-select.kbd.press
Enter / Spacetree-select.kbd.retry
*tree-select.kbd.expand-siblings
any single printable charactertree-select.kbd.typeahead
any single printable charactertree-select.kbd.type-to-search
printable characterstree-select.kbd.search-type
ArrowDown / Entertree-select.kbd.search-to-tree
Escapetree-select.kbd.search-escape
Escapetree-select.kbd.escape
Tab / Shift+Tabtree-select.kbd.tab

ARIA ​

These attributes are produced by connect.

PartAttributeValue
triggeraria-controlsid of the tree part
triggeraria-expanded'true' | 'false'
triggeraria-haspopup'tree'
triggeraria-invalid'true' | 'false'
triggeraria-labelprops.ariaLabel
triggeraria-labelledbyid of the label part id of the value-text part | id of the trigger part id of the value-text part | id of the value-text part
triggeraria-readonly'true' | 'false'
triggeraria-required'true' | 'false'
triggerrole'combobox'
indicatoraria-hidden'true'
clear-triggeraria-labeltranslations.clearTrigger
contentaria-hidden!open || undefined
inputaria-controlsid of the tree part
inputaria-labeltranslations.searchInput
treearia-busy'true' | undefined
treearia-disabled'true' | 'false'
treearia-labeltranslations.tree
treearia-labelledbyid of the label part id of the value-text part | id of the trigger part id of the value-text part | id of the value-text part
treearia-multiselectable'true' | 'false'
treerole'tree'
itemaria-checked'true' | 'mixed' | 'false' | undefined
itemaria-disabled'true' | 'false'
itemaria-levelmeta?.level
itemaria-posinsetmeta?.posInSet
itemaria-selected'true' | 'false'
itemaria-setsizemeta?.setSize
itemrole'treeitem'
item-indicatoraria-hidden'true'
brancharia-busy'true' | undefined
brancharia-checked'true' | 'mixed' | 'false' | undefined
brancharia-disabled'true' | 'false'
brancharia-expanded'true' | 'false'
brancharia-levelmeta?.level
brancharia-posinsetmeta?.posInSet
brancharia-selected'true' | 'false'
brancharia-setsizemeta?.setSize
branchrole'treeitem'
branch-triggeraria-hidden'true'
branch-indicatoraria-hidden'true'
branch-contentrole'group'
branch-loadingrole'status'
branch-errorrole'alert'
branch-retry-triggeraria-labeltranslations.retry
branch-emptyrole'status'
emptyrole'status'
loadingrole'status'
hidden-inputaria-hidden'true'

Style reference ​

Skin ​

@xihan-ui/styles/tree-select.css is written against [data-scope="tree-select"][data-part="root"] part selectors; the published build uses the mount class .xh-scope-tree-select in place of data-scope (same specificity) and sits in the xihan.components layer. Put overrides in xihan.overrides; the part selectors work as usual.

Data attributes ​

Produced by connect; valueless attributes are omitted while their condition does not hold.

PartAttributeValue
rootdata-disabled'' (present only while the condition holds)
rootdata-invalid'' (present only while the condition holds)
rootdata-loading'' (present only while the condition holds)
rootdata-readonly'' (present only while the condition holds)
rootdata-required'' (present only while the condition holds)
rootdata-sizeprops.size
rootdata-state'open' | 'closed'
rootdata-toneprops.tone
rootdata-variantprops.variant
labeldata-disabled'' (present only while the condition holds)
labeldata-required'' (present only while the condition holds)
controldata-disabled'' (present only while the condition holds)
controldata-invalid'' (present only while the condition holds)
controldata-readonly'' (present only while the condition holds)
controldata-state'open' | 'closed'
controldata-variantprops.variant
controldata-xh-action-owner''
controldata-xh-field-chrome''
controldata-xh-field-sizeprops.size
triggerdata-disabled'' (present only while the condition holds)
triggerdata-invalid'' (present only while the condition holds)
triggerdata-placeholder'' (present only while the condition holds)
triggerdata-readonly'' (present only while the condition holds)
triggerdata-state'open' | 'closed'
value-textdata-disabled'' (present only while the condition holds)
value-textdata-placeholder'' (present only while the condition holds)
tag-listdata-disabled'' (present only while the condition holds)
tag-listdata-instant'' (present only while the condition holds)
tag-listdata-xh-tag-list''
indicatordata-clearable'' (present only while the condition holds)
indicatordata-disabled'' (present only while the condition holds)
indicatordata-state'open' | 'closed'
clear-triggerdata-pressed'' (present only while the condition holds)
clear-triggerdata-xh-action-control''
clear-triggerdata-xh-action-display'has-value'
clear-triggerdata-xh-action-has-value'' (present only while the condition holds)
clear-triggerdata-xh-action-profile'field-inset'
clear-triggerdata-xh-action-sizeprops.size
clear-triggerdata-xh-action-variant'ghost'
positionerdata-hidden'' (present only while the condition holds)
positionerdata-placementactual placement computed by the positioning engine
positionerdata-positioned'' (present only while the condition holds)
positionerdata-sizeprops.size
positionerdata-state'open' | 'closed'
positionerdata-toneprops.tone
positionerdata-variantprops.variant
contentdata-instant'' (present only while the condition holds)
contentdata-placementactual placement computed by the positioning engine
contentdata-state'open' | 'closed'
contentdata-xh-material'frosted'
inputdata-xh-field-input''
treedata-disabled'' (present only while the condition holds)
treedata-empty'' (present only while the condition holds)
treedata-state'open' | 'closed'
itemdata-disabled'' (present only while the condition holds)
itemdata-highlighted'' (present only while the condition holds)
itemdata-indeterminate'' (present only while the condition holds)
itemdata-pressed'' (present only while the condition holds)
itemdata-selected'' (present only while the condition holds)
itemdata-tonemetaOf(v)?.tone
itemdata-xh-collection-context'overlay'
itemdata-xh-collection-item''
itemdata-xh-collection-sizeprops.size
item-textdata-disabled'' (present only while the condition holds)
item-textdata-highlighted'' (present only while the condition holds)
item-textdata-indeterminate'' (present only while the condition holds)
item-textdata-selected'' (present only while the condition holds)
item-textdata-xh-collection-slot'text'
item-descriptiondata-disabled'' (present only while the condition holds)
item-descriptiondata-highlighted'' (present only while the condition holds)
item-descriptiondata-indeterminate'' (present only while the condition holds)
item-descriptiondata-selected'' (present only while the condition holds)
item-descriptiondata-xh-collection-slot'description'
item-suffixdata-disabled'' (present only while the condition holds)
item-suffixdata-highlighted'' (present only while the condition holds)
item-suffixdata-indeterminate'' (present only while the condition holds)
item-suffixdata-selected'' (present only while the condition holds)
item-suffixdata-xh-collection-slot'suffix'
item-indicatordata-disabled'' (present only while the condition holds)
item-indicatordata-highlighted'' (present only while the condition holds)
item-indicatordata-indeterminate'' (present only while the condition holds)
item-indicatordata-selected'' (present only while the condition holds)
item-indicatordata-xh-collection-slot'indicator'
branchdata-disabled'' (present only while the condition holds)
branchdata-empty'' (present only while the condition holds)
branchdata-error'' (present only while the condition holds)
branchdata-highlighted'' (present only while the condition holds)
branchdata-indeterminate'' (present only while the condition holds)
branchdata-load-statebranchLoadState(v)?.status
branchdata-loading'' (present only while the condition holds)
branchdata-selected'' (present only while the condition holds)
branchdata-state'open' | 'closed'
branch-controldata-disabled'' (present only while the condition holds)
branch-controldata-empty'' (present only while the condition holds)
branch-controldata-error'' (present only while the condition holds)
branch-controldata-highlighted'' (present only while the condition holds)
branch-controldata-indeterminate'' (present only while the condition holds)
branch-controldata-load-statebranchLoadState(v)?.status
branch-controldata-loading'' (present only while the condition holds)
branch-controldata-pressed'' (present only while the condition holds)
branch-controldata-selected'' (present only while the condition holds)
branch-controldata-state'open' | 'closed'
branch-controldata-tonemetaOf(v)?.tone
branch-controldata-xh-collection-context'overlay'
branch-controldata-xh-collection-item''
branch-controldata-xh-collection-sizeprops.size
branch-triggerdata-disabled'' (present only while the condition holds)
branch-triggerdata-empty'' (present only while the condition holds)
branch-triggerdata-error'' (present only while the condition holds)
branch-triggerdata-highlighted'' (present only while the condition holds)
branch-triggerdata-indeterminate'' (present only while the condition holds)
branch-triggerdata-load-statebranchLoadState(v)?.status
branch-triggerdata-loading'' (present only while the condition holds)
branch-triggerdata-selected'' (present only while the condition holds)
branch-triggerdata-state'open' | 'closed'
branch-triggerdata-xh-collection-slot'prefix'
branch-indicatordata-disabled'' (present only while the condition holds)
branch-indicatordata-empty'' (present only while the condition holds)
branch-indicatordata-error'' (present only while the condition holds)
branch-indicatordata-highlighted'' (present only while the condition holds)
branch-indicatordata-indeterminate'' (present only while the condition holds)
branch-indicatordata-load-statebranchLoadState(v)?.status
branch-indicatordata-loading'' (present only while the condition holds)
branch-indicatordata-selected'' (present only while the condition holds)
branch-indicatordata-state'open' | 'closed'
branch-indicatordata-xh-collection-slot'prefix'
branch-textdata-disabled'' (present only while the condition holds)
branch-textdata-empty'' (present only while the condition holds)
branch-textdata-error'' (present only while the condition holds)
branch-textdata-highlighted'' (present only while the condition holds)
branch-textdata-indeterminate'' (present only while the condition holds)
branch-textdata-load-statebranchLoadState(v)?.status
branch-textdata-loading'' (present only while the condition holds)
branch-textdata-selected'' (present only while the condition holds)
branch-textdata-state'open' | 'closed'
branch-textdata-xh-collection-slot'text'
branch-contentdata-disabled'' (present only while the condition holds)
branch-contentdata-empty'' (present only while the condition holds)
branch-contentdata-error'' (present only while the condition holds)
branch-contentdata-highlighted'' (present only while the condition holds)
branch-contentdata-indeterminate'' (present only while the condition holds)
branch-contentdata-load-statebranchLoadState(v)?.status
branch-contentdata-loading'' (present only while the condition holds)
branch-contentdata-selected'' (present only while the condition holds)
branch-contentdata-state'open' | 'closed'
branch-loadingdata-disabled'' (present only while the condition holds)
branch-loadingdata-empty'' (present only while the condition holds)
branch-loadingdata-error'' (present only while the condition holds)
branch-loadingdata-highlighted'' (present only while the condition holds)
branch-loadingdata-indeterminate'' (present only while the condition holds)
branch-loadingdata-load-statebranchLoadState(v)?.status
branch-loadingdata-loading'' (present only while the condition holds)
branch-loadingdata-selected'' (present only while the condition holds)
branch-loadingdata-state'open' | 'closed'
branch-loadingdata-xh-loading-ring''
branch-errordata-disabled'' (present only while the condition holds)
branch-errordata-empty'' (present only while the condition holds)
branch-errordata-error'' (present only while the condition holds)
branch-errordata-highlighted'' (present only while the condition holds)
branch-errordata-indeterminate'' (present only while the condition holds)
branch-errordata-load-statebranchLoadState(v)?.status
branch-errordata-loading'' (present only while the condition holds)
branch-errordata-selected'' (present only while the condition holds)
branch-errordata-state'open' | 'closed'
branch-retry-triggerdata-disabled'' (present only while the condition holds)
branch-retry-triggerdata-empty'' (present only while the condition holds)
branch-retry-triggerdata-error'' (present only while the condition holds)
branch-retry-triggerdata-highlighted'' (present only while the condition holds)
branch-retry-triggerdata-indeterminate'' (present only while the condition holds)
branch-retry-triggerdata-load-statebranchLoadState(v)?.status
branch-retry-triggerdata-loading'' (present only while the condition holds)
branch-retry-triggerdata-selected'' (present only while the condition holds)
branch-retry-triggerdata-state'open' | 'closed'
branch-emptydata-disabled'' (present only while the condition holds)
branch-emptydata-empty'' (present only while the condition holds)
branch-emptydata-error'' (present only while the condition holds)
branch-emptydata-highlighted'' (present only while the condition holds)
branch-emptydata-indeterminate'' (present only while the condition holds)
branch-emptydata-load-statebranchLoadState(v)?.status
branch-emptydata-loading'' (present only while the condition holds)
branch-emptydata-selected'' (present only while the condition holds)
branch-emptydata-state'open' | 'closed'
emptydata-state'open' | 'closed'
loadingdata-loading'' (present only while the condition holds)
loadingdata-state'open' | 'closed'
loadingdata-xh-loading-ring''
footerdata-state'open' | 'closed'
overflow-tagdata-countString(overflowCount)
tagdata-valueitemValue(el)

CSS variables ​

The public override slots, generated from what the standalone skin actually consumes.

VariablePartCSS propertyStateDefault from
--xh-tree-select-action-bgclear-trigger--xh-ink-surface
background-color
default
xh-ink-surface
--xh-_action-variant-bg-rest
--xh-tree-select-action-bg-activeclear-triggerbackground-colordisabled
is(:active, [data-pressed])
loading
not([data-disabled])
not([data-loading])
pressed
--xh-_action-variant-bg-pressed
--xh-tree-select-action-bg-hoverclear-triggerbackground-colordisabled
hover
loading
not([data-disabled])
not([data-loading])
--xh-_action-variant-bg-hover
--xh-tree-select-action-fgclear-triggercolordefault--xh-fg-field-clear
--xh-tree-select-action-fg-hoverclear-triggercolordisabled
hover
loading
not([data-disabled])
not([data-loading])
--xh-fg-default
--xh-tree-select-action-font-sizeclear-triggerfont-sizedefault--xh-text-secondary-size
--xh-tree-select-action-radiusclear-triggerborder-radiusdefault--xh-shape-circle
--xh-tree-select-action-sizeclear-triggerblock-size
inline-size
min-inline-size
default
xh-action-profile=field-inset
--xh-_action-profile-visual-size
--xh-tree-select-branch-content-gapbranch-contentgapdefault--xh-list-option-gap
--xh-tree-select-branch-error-fgbranch-errorbackground-colordefault--xh-fg-danger
--xh-tree-select-branch-gapbranchgapdefault--xh-list-option-gap
--xh-tree-select-branch-indicator-fgbranch-indicator
branch-trigger
colordefault--xh-fg-subtle
--xh-tree-select-branch-indicator-sizebranch-indicator
branch-trigger
item
--xh-icon-size
inline-size
default--xh-control-indicator-size
--xh-tree-select-branch-retry-fgbranch-retry-triggercolordefault--xh-fg-brand
--xh-tree-select-branch-status-fgbranch-empty
branch-error
branch-loading
coloris([data-part='branch-loading'], [data-part='branch-empty'], [data-part='branch-error'])--xh-material-frosted-fg-muted
--xh-tree-select-branch-status-font-sizebranch-empty
branch-error
branch-loading
branch-retry-trigger
font-sizedefault
is([data-part='branch-loading'], [data-part='branch-empty'], [data-part='branch-error'])
--xh-_tree-select-font-size
--xh-tree-select-branch-status-pybranch-empty
branch-error
branch-loading
padding-blockis([data-part='branch-loading'], [data-part='branch-empty'], [data-part='branch-error'])--xh-_tree-select-row-py
--xh-tree-select-content-backdropcontent-webkit-backdrop-filter
backdrop-filter
xh-material=frosted--xh-_material-backdrop
--xh-tree-select-content-bgcontentbackgroundnot([data-xh-action-control])
xh-material=frosted
--xh-_material-bg
--xh-tree-select-content-bordercontentbordernot([data-xh-action-control])
xh-material=frosted
--xh-_material-border
--xh-tree-select-content-fgcontentcolornot([data-xh-action-control])
xh-material=frosted
--xh-_material-fg
--xh-tree-select-content-highlightcontentbackgroundnot([data-xh-action-control])
xh-material=frosted
--xh-_material-highlight
--xh-tree-select-content-max-hcontentmax-block-sizedefault--xh-overlay-menu-max-h
--xh-tree-select-content-max-wcontentmax-inline-sizedefaultnone
--xh-tree-select-content-min-wcontentinline-sizedefault--xh-overlay-menu-min-w
--xh-tree-select-content-pxcontentpadding-inlinedefault--xh-space-1
--xh-tree-select-content-pycontentpadding-blockdefault--xh-space-1
--xh-tree-select-content-radiuscontentborder-radiusdefault--xh-shape-overlay
--xh-tree-select-content-shadowcontentbox-shadownot([data-xh-action-control])
xh-material=frosted
--xh-_material-shadow
--xh-tree-select-control-bgcontrolbackground-colorxh-field-chrome--xh-_field-variant-bg-rest
--xh-tree-select-control-bg-disabledcontrolbackground-colordisabled
xh-field-chrome
--xh-_field-variant-bg-disabled
--xh-tree-select-control-bg-hovercontrolbackground-colordisabled
hover
invalid
loading
not(:focus-within)
not([data-disabled])
not([data-invalid])
not([data-loading])
not([data-readonly])
readonly
xh-field-chrome
--xh-_field-variant-bg-hover
--xh-tree-select-control-bg-readonlycontrolbackground-colorreadonly
xh-field-chrome
--xh-_field-variant-bg-read-only
--xh-tree-select-control-bordercontrolborderxh-field-chrome--xh-_field-variant-border-rest
--xh-tree-select-control-border-focuscontrolborder-color
box-shadow
disabled
focus-within
not([data-disabled])
xh-field-chrome
--xh-_field-variant-border-focus
--xh-tree-select-control-border-hovercontrolborder-colordisabled
hover
invalid
loading
not(:focus-within)
not([data-disabled])
not([data-invalid])
not([data-loading])
not([data-readonly])
readonly
xh-field-chrome
--xh-_field-variant-border-hover
--xh-tree-select-control-border-invalidcontrolborder-colorinvalid
xh-field-chrome
--xh-_field-variant-border-invalid
--xh-tree-select-control-fgcontrolcolorxh-field-chrome--xh-fg-default
--xh-tree-select-control-gapcontrolgapxh-field-chrome--xh-_tree-select-gap
--xh-tree-select-control-hcontrolblock-size
min-block-size
has([data-xh-field-input][data-xh-field-layout='multi-tag'])
has([data-xh-field-input][data-xh-field-layout='single-line'])
has([data-xh-field-input][data-xh-field-layout='textarea'])
xh-field-chrome
xh-field-input
xh-field-layout=multi-tag
xh-field-layout=single-line
xh-field-layout=textarea
--xh-_tree-select-h
--xh-tree-select-control-min-wcontrol
root
min-inline-sizedefault
xh-field-chrome
--xh-control-min-w
--xh-tree-select-control-pxcontrolpadding-inlinexh-field-chrome--xh-_tree-select-px
--xh-tree-select-control-radiuscontrolborder-radiusxh-field-chrome--xh-shape-control
--xh-tree-select-control-shadowcontrolbox-shadowxh-field-chromenone
--xh-tree-select-control-wrootinline-size
min-inline-size
default--xh-control-w
--xh-tree-select-empty-fgemptycolordefault--xh-material-frosted-fg-muted
--xh-tree-select-empty-font-sizeemptyfont-sizedefault--xh-_tree-select-font-size
--xh-tree-select-empty-pxemptypadding-inlinedefault--xh-_tree-select-row-px
--xh-tree-select-empty-pyemptypadding-blockdefault--xh-space-3
--xh-tree-select-footer-borderfooterborder-block-startdefault--xh-material-frosted-separator
--xh-tree-select-footer-fgfootercolordefault--xh-material-frosted-fg-muted
--xh-tree-select-footer-font-sizefooterfont-sizedefault--xh-text-secondary-size
--xh-tree-select-footer-gapfootergapdefault--xh-space-2
--xh-tree-select-footer-pxfooterpadding-inlinedefault--xh-space-2
--xh-tree-select-footer-pyfooterpadding-blockdefault--xh-space-2
--xh-tree-select-gaplabel
root
gap
margin-block-end
default--xh-space-1
--xh-tree-select-icon-sizebranch-control
control
item
positioner
root
--xh-icon-sizedefault
is([data-part='root'], [data-part='positioner'])
size=lg
size=sm
xh-field-chrome
--xh-_collection-glyph-size
--xh-_field-size-glyph-size
--xh-glyph-size-lg
--xh-glyph-size-md
--xh-glyph-size-sm
--xh-tree-select-indentbranch-content
branch-empty
branch-error
branch-loading
branch-retry-trigger
margin-inline-start
padding-inline
padding-inline-start
default
is([data-part='branch-loading'], [data-part='branch-empty'], [data-part='branch-error'])
--xh-space-4
--xh-tree-select-indicator-fgindicatorcolordefault--xh-fg-muted
--xh-tree-select-input-autofill-bginputbox-shadow-webkit-autofill
autofill
--xh-bg-surface
--xh-tree-select-input-autofill-fginput-webkit-text-fill-color-webkit-autofill
autofill
--xh-fg-default
--xh-tree-select-input-font-sizeinputfont-sizedefault--xh-_tree-select-font-size
--xh-tree-select-input-gapinputmargin-block-enddefault--xh-space-1
--xh-tree-select-input-hinputblock-sizedefault--xh-_tree-select-h
--xh-tree-select-input-pxinputpadding-inlinedefault--xh-_tree-select-px
--xh-tree-select-item-bg-hoverbranch
branch-control
item
background-colordisabled
error
focus-visible
highlighted
hover
is(:focus-visible, [data-highlighted])
is(:hover, [data-highlighted])
is([aria-selected='true'], [data-selected])
not([aria-disabled='true'], [data-disabled], [aria-busy='true'], [data-error])
not([data-disabled])
selected
xh-collection-context=overlay
--xh-bg-subtle
--xh-tree-select-item-bg-pressedbranch-control
item
background-colordisabled
error
is(:active, [data-pressed])
is([aria-selected='true'], [data-selected])
not([aria-disabled='true'], [data-disabled], [aria-busy='true'], [data-error])
not([data-disabled])
pressed
selected
xh-collection-context=overlay
--xh-bg-subtle-hover
--xh-tree-select-item-check-fgbranch-control
item
colordisabled
error
highlighted
hover
is(:active, [data-pressed])
is(:focus-visible, [data-highlighted])
is([aria-selected='true'], [data-selected])
not([aria-disabled='true'], [data-disabled], [aria-busy='true'], [data-error])
pressed
selected
state=checked
xh-collection-context=overlay
xh-collection-slot=indicator
--xh-tree-select-item-indicator-fg
--xh-tree-select-item-fgbranch-control
item
colordefault
disabled
error
highlighted
hover
is(:active, [data-pressed])
is(:focus-visible, [data-highlighted])
is([aria-selected='true'], [data-selected])
not([aria-disabled='true'], [data-disabled], [aria-busy='true'], [data-error])
pressed
selected
xh-collection-context=overlay
--xh-material-frosted-fg
--xh-tree-select-item-fg-selectedbranch-control
item
colordisabled
error
highlighted
hover
is(:active, [data-pressed])
is(:focus-visible, [data-highlighted])
is([aria-selected='true'], [data-selected])
not([aria-disabled='true'], [data-disabled], [aria-busy='true'], [data-error])
pressed
selected
xh-collection-context=overlay
--xh-tree-select-item-fg
--xh-tree-select-item-font-sizebranch-control
item
font-sizedefault--xh-_tree-select-font-size
--xh-tree-select-item-font-weight-selectedbranch-control
item
font-weightdisabled
error
highlighted
hover
is(:active, [data-pressed])
is(:focus-visible, [data-highlighted])
is([aria-selected='true'], [data-selected])
not([aria-disabled='true'], [data-disabled], [aria-busy='true'], [data-error])
pressed
selected
xh-collection-context=overlay
--xh-font-weight-medium
--xh-tree-select-item-gapbranch-control
item
margin-inline-end
margin-inline-start
default
xh-collection-slot=indicator
xh-collection-slot=prefix
xh-collection-slot=shortcut
xh-collection-slot=suffix
--xh-_tree-select-gap
--xh-tree-select-item-indicator-fgbranch-control
item
colordisabled
error
highlighted
hover
is(:active, [data-pressed])
is(:focus-visible, [data-highlighted])
is([aria-selected='true'], [data-selected])
not([aria-disabled='true'], [data-disabled], [aria-busy='true'], [data-error])
pressed
selected
state=checked
xh-collection-context=overlay
xh-collection-slot=indicator
--xh-_tree-select-accent
--xh-tree-select-item-indicator-sizeitem-indicator--xh-icon-size
block-size
inline-size
default--xh-control-indicator-size
--xh-tree-select-item-leadingbranch-control
item
line-heightdefault--xh-leading-normal
--xh-tree-select-item-pxbranch-control
item
padding-inlinedefault--xh-_tree-select-row-px
--xh-tree-select-item-pybranch-control
item
padding-blockdefault--xh-_tree-select-row-py
--xh-tree-select-item-radiusbranch-control
item
border-radiusdefault--xh-shape-inset
--xh-tree-select-label-fglabelcolordefault--xh-fg-muted
--xh-tree-select-label-fg-disabledlabelcolordisabled--xh-fg-muted
--xh-tree-select-label-font-sizelabelfont-sizedefault--xh-text-label-size
--xh-tree-select-label-font-weightlabelfont-weightdefault--xh-text-label-weight
--xh-tree-select-label-gaplabelmargin-block-enddefault--xh-space-2
--xh-tree-select-layerpositionerz-indexdefault--xh-_layer
--xh-tree-select-loading-fgloadingcolordefault--xh-material-frosted-fg-muted
--xh-tree-select-loading-font-sizeloadingfont-sizedefault--xh-_tree-select-font-size
--xh-tree-select-loading-pxloadingpadding-inlinedefault--xh-_tree-select-row-px
--xh-tree-select-loading-pyloadingpadding-blockdefault--xh-space-3
--xh-tree-select-placeholder-fginput
value-text
colorplaceholder
xh-field-input
--xh-fg-subtle
--xh-tree-select-search-dividerinputborder-block-enddefault--xh-material-frosted-separator
--xh-tree-select-tag-list-gaptag-listgapxh-tag-list--xh-space-1
--xh-tree-select-tree-gaptreegapdefault--xh-list-option-gap
--xh-tree-select-trigger-fgtriggercolordefault--xh-fg-default
--xh-tree-select-trigger-font-sizetriggerfont-sizedefault--xh-_tree-select-font-size
--xh-tree-select-trigger-gaptriggergapdefault--xh-_tree-select-gap
--xh-tree-select-value-leadingvalue-textline-heightdefault--xh-leading-normal

Released under The MIT License