Skip to content

API reference

SymbioteNative has one native engine, but each adapter exposes that engine through its framework’s API conventions. The reference is organized around that split.

  • React API — callback props, React children, React refs, and React Native-like imports from @symbiote-native/react.
  • Vue API — typed emits, slots, Vue refs, kebab-case template attributes, and imports from @symbiote-native/vue.
  • Angular API — real @Output() EventEmitters, <ng-content> projection, standalone components, and imports from @symbiote-native/angular.
  • Svelte API — a DOM shim over stock compiled Svelte output, so components are ordinary Svelte markup with bind:, events, and slots working as-is. Imports come from @symbiote-native/svelte.
  • Solid API - signals and effects for lifecycle, class for styling, and a render-prop child (Pressable, list renderItem) that takes a Solid Accessor rather than a snapshot value. Imports come from @symbiote-native/solid. Implemented, tested, and verified on device like the other four adapters.
  • Components matrix — what components exist and how React, Vue, Angular, Svelte, and Solid differ for props, events, slots/snippets/children, and handles.
  • Core API — @symbiote-native/engine and @symbiote-native/components, the shared layers that keep adapters thin.

Each component API should answer four questions:

  1. What props are shared across frameworks?
  2. Which events are React callbacks, Vue emits, or Angular @Output() EventEmitters?
  3. Does the component take children, slots, or <ng-content> projection?
  4. Does it expose an imperative handle, and how does each framework access it?

This is why the docs avoid pretending every framework has identical props. The native behavior is shared; the public contract is idiomatic per framework.