XTend Dokumentation
Dunkelmodus aktivieren

XTend Developer Center

Build with XTend today

RMT Reference: Primitives

Primitives sind die stabilen App-Platform-Records in RMT vNext.

Syntax

OperatorFormAllowed contextsParametersFunctionDiagnosticsRelated operators
statestate app.status type object preserve { ... }Top-Level, template, primitive surfaceIdentifier, type, initial, preserveDeklariert dauerhaften oder lifecycle-gebundenen App-State.State-Blöcke dürfen nur initial enthalten.selector, reduce
selectorselector view from state app.status { ... }Top-Level, template, primitive surfaceIdentifier, Source-ReferenzLeitet ein View-Modell aus State oder DataSource ab.Selector-Blöcke erlauben nur where, find, sort by, output.from state, from datasource
datasourcedatasource list from endpoint "/api" { ... }Top-Level, template, primitive surfaceIdentifier, Source-Art, Source-ZielBeschreibt Datenzugriff ohne freie Runtime-Ausführung.DataSource-Blöcke erlauben nur method, contract, result, fallback.endpoint, fixture, worker
actionaction save { ... }Top-Level, template, primitive surfaceIdentifierDeklariert typisierte Eingaben, Reducer, Effects und Events.Action-Blöcke erlauben nur input, status, effect, reduce, emit, on.emit, reduce, on success ->
portalportal app.root root "#app" layer surfaceTop-Level, templateroot, layer, optional zBindet Surfaces an einen Host-Root und Layer.Unerwartete Inline-Attribute werden abgewiesen.surface, overlay
overlayoverlay notice kind toast portal app.rootTop-Level, templatekind, portalDeklariert Feedback- oder Interaktions-Overlays.Overlay-Policy-Zeilen bleiben deklarativ.toast, dialog, on error -> overlay
resourceresource file kind object-url owner surface.previewTop-Level, templatekind, owner, sourceDeklariert owner-scoped Ressourcen mit Cleanup.Resource-Blöcke erlauben nur import, source, dispose.destroy releases resource
validationvalidation form.contact { ... }Top-Level, templateIdentifierDeklariert Formularregeln und Action-Gates.Nur mode, target, field, include sind erlaubt.field, target action
animationanimation app.motion { ... }Top-Level, templateIdentifierDeklariert wiederverwendbare AnimationEngine-Presets mit Effekt, Keyframes und Reduced-Motion-Policy.Keyframes sind auf opacity und transform begrenzt; filter nur mit allowFilter.effect, durationMs, keyframe, reducedMotion
transitiontransition route.next { ... }Top-Level, templateIdentifierDeklariert Surface-Wechsel mit Effekt, Dauer, Timeline und Lane.Nur Transition-Clauses sind im Block erlaubt; shared-element und layout-flip benötigen layoutKey.trigger action, from surfaces, use animation

Allowed contexts

Primitives dürfen top-level, im template und teilweise in primitive-scoped Surfaces stehen. Sie deklarieren Records; sie führen keinen Host-Code aus.

Parameters

Die wichtigsten Parameter sind Identifier, Source-Referenzen, Typnamen, Katalogwerte und statische Strings.

Description

Primitives bilden die Brücke zwischen RMT-Authoring und Core-Format. Sie werden zu State-, Selector-, DataSource-, Action-, Portal-, Overlay-, Resource-, Validation-, Transition- und Surface-Records kompiliert.

Examples

template reference.primitives {
  state app.status type object preserve {
    initial {
      text "Ready"
    }
  }

  selector app.statusView from state app.status {
    output StatusView
  }

  datasource app.messages from endpoint "/api/messages" {
    method GET
    result list
    fallback fixture messages.fallback
  }

  action app.refresh {
    input id string
    status app.status
    reduce state.app.status.text = "Loading"
    emit app.refreshed with id input.id
  }

  portal app.root root "#app" layer surface
  overlay app.toast kind toast portal app.root
  resource app.timer kind timer owner surface.home {
    dispose clear
  }

  validation app.form {
    mode blocking
    target action app.refresh
    field app.email required email message "Valid email"
  }

  animation app.motion {
    effect pop
    durationMs 180
    reducedMotion fade
  }

  transition app.next {
    trigger action app.refresh
    from surfaces [home]
    to surfaces [done]
    use animation app.motion
    effect fade
    durationMs 120
    easing "ease-out"
    interrupt replace
    reducedMotion fade
    lane transition
  }

  surface home kind card component x-status {
    portal app.root
    lane visible weight 80 {
      hydrate status.card from selector app.statusView
    }
  }
}

Diagnostics

Fehlende Owner, unbekannte Referenzen, unkeyed Repeater und Actions ohne Reducer oder Payload-Vertrag werden semantisch gemeldet.

template, surface, lane, from, when, payload, trust boundary.

Weiterführend

Der RMT-Referenzindex zeigt, an welchen Stellen Primitive Records in einem Dokument zulässig sind. Verwandter Artikel

(c) 2026 - CCS Networks | Powered by XRouter PHP Extension