NarraLeaf

Button, Container, Switch, Frame

Button label and pointer, container clipping, a Switch's checked state, and the Page a Frame shows — all on a wired element.

Four small property surfaces: a Button's label and cursor, a Container's clipping, a Switch's checked state, and the Page a Frame shows. The rules common to every Element node are in Element.

Button

Button nodes take an element:nl.button pin. The Self forms are in Button.

Get Button Label

blueprint.element.button.getLabel · Pure

Reads the button's label text.

PinDirectionTypeNotes
elementin · dataelement:nl.button
labelout · datastring

Set Button Label

blueprint.element.button.setLabel · Latent

Sets the button's label text.

PinDirectionTypeNotes
inin · exec
nextout · exec
elementin · dataelement:nl.button
labelin · datastringAccepts an on-card literal.

Set Button Pointer

blueprint.element.button.setPointer · Latent

Chooses the button's default cursor. There is no data pin for it — the card carries the same icon dropdown as the button's Appearance inspector.

PinDirectionTypeNotes
inin · exec
nextout · exec
elementin · dataelement:nl.button

On-card fields

FieldWhat
cursorAuto, Default, Pointer, Text, Move, Grab, Grabbing, Crosshair, Help, Wait, Progress, Not allowed. Auto resolves at runtime to a click cursor or the plain default depending on whether the button is clickable; a disabled button is rendered not-allowed either way.

Get Button Variant

blueprint.element.button.getVariant · Pure

The old id-based read. Kept registered so graphs that already contain it keep running; the palette does not offer it.

PinDirectionTypeNotes
elementin · dataelement:nl.button
variantIdout · datastring

Set Button Variant

blueprint.element.button.setVariant · Latent

The old id-based write, likewise hidden. It has no variantId pin — it reads a stored parameter — and there is no author-facing way to fill that parameter any more. Use Set Element Variant, which picks Variants by name.

PinDirectionTypeNotes
inin · exec
nextout · exec
elementin · dataelement:nl.button

Container

Container nodes take an element:nl.container pin. The Self forms are in Container.

Get Container Clip Content

blueprint.element.container.getClipContent · Pure

Reads whether the container clips its overflowing content.

PinDirectionTypeNotes
elementin · dataelement:nl.container
clipContentout · databoolean

Set Container Clip Content

blueprint.element.container.setClipContent · Latent

Sets whether the container clips its overflowing content.

PinDirectionTypeNotes
inin · exec
nextout · exec
elementin · dataelement:nl.container
clipContentin · databoolean

Get Container Variant

blueprint.element.container.getVariant · Pure

The old id-based read, hidden from the palette for the same reason as the Button pair.

PinDirectionTypeNotes
elementin · dataelement:nl.container
variantIdout · datastring

Set Container Variant

blueprint.element.container.setVariant · Latent

The old id-based write, hidden from the palette. Use Set Element Variant.

PinDirectionTypeNotes
inin · exec
nextout · exec
elementin · dataelement:nl.container

Switch

Switch nodes take an element:nl.switch pin. The Self forms are in Switch; the Switch's visible and enabled pair is with the rest of that family on Displayable.

None of these dispatch the Switch's Changed, Turned On or Turned Off heads — those are for the player toggling it. A graph that writes the Switch it also listens to does not trigger itself.

Get Switch Checked

blueprint.element.switch.getChecked · Pure

PinDirectionTypeNotes
switchin · dataelement:nl.switch
checkedout · databoolean

Set Switch Checked

blueprint.element.switch.setChecked · Latent

PinDirectionTypeNotes
inin · exec
nextout · exec
switchin · dataelement:nl.switch
checkedin · databooleanAccepts an on-card literal.

Turn Switch On

blueprint.element.switch.turnOn · Latent

Set Switch Checked with true, as its own card so the common case reads as one word.

PinDirectionTypeNotes
inin · exec
nextout · exec
switchin · dataelement:nl.switch

Turn Switch Off

blueprint.element.switch.turnOff · Latent

PinDirectionTypeNotes
inin · exec
nextout · exec
switchin · dataelement:nl.switch

Toggle Switch

blueprint.element.switch.toggle · Latent

Flips the state and hands back what it became, so the branch after it does not need a second read.

PinDirectionTypeNotes
inin · exec
nextout · exec
switchin · dataelement:nl.switch
checkedout · databooleanThe new state.

Frame

Frame nodes take an element:nl.frame pin and act on the Frame's own target Page and params. Moving the player to a different Page is a different job, done by Go Page in App. The Self forms are in Frame.

Get Frame Target Page

blueprint.element.frame.getTargetPage · Pure

Reads the target Page's surface id, or an empty string when the Frame shows nothing.

PinDirectionTypeNotes
elementin · dataelement:nl.frame
targetSurfaceIdout · datastring

Set Frame Page

blueprint.element.frame.setTargetPage · Latent

Switches the Frame to another Page. The dropdown filters out the Page the Frame itself sits on and any Page that would nest cyclically — and for this Element form it works that out by reading the wired Element node's own Surface, so the list only populates once the reference is connected. The Frame then plays its normal enter and exit animation.

PinDirectionTypeNotes
inin · exec
nextout · exec
elementin · dataelement:nl.frame
propsin · datajsonWritten into the Frame's params and handed to the embedded Page as its props. Unwired, the current params are kept — this is not a clear. Optional.

On-card fields

FieldWhat
targetSurfaceIdDynamic options: the Pages this Frame may legally show. The empty option is labelled None and clears the target.

Get Frame Params

blueprint.element.frame.getParams · Pure

Reads the params object handed to the embedded Page.

PinDirectionTypeNotes
elementin · dataelement:nl.frame
paramsout · datajson

Set Frame Params

blueprint.element.frame.setParams · Latent

Writes the params object. A non-object value is normalized to an empty object.

PinDirectionTypeNotes
inin · exec
nextout · exec
elementin · dataelement:nl.frame
paramsin · datajson

On this page