Skip to content

Chaining

The selector chain is a small immutable builder. Each scope method (tag, state, tagsAnd, tagsOr) returns a new chain with that scope appended; the leaf method (inputs, dropdowns, etc.) emits the matched selector.

gui.selectors.tag('identity').state('loaded').inputs({ disabled: false });

Reads as: for inputs tagged identity, while the loaded state is active, set disabled: false.

Scope operators commute in semantics but the convention is tag first, state second, for readability. The chain builder is immutable so you can save partial chains and reuse them:

const identity = gui.selectors.tag('identity');
const formSelectors = [
identity.inputs({ suppressAutomaticPlaceholders: true }),
identity.state('readonly').inputs({ readonly: true }),
];