/** * UIX — cross-layer primitives. * * Shared types between UIX layers (morfo, sema, eidos, soma). They live * here so that no layer "owns" a cross-layer primitive: each layer imports * from `$uix` (or `'../types'`) independently, without creating dependencies * between layers. * * No runtime, no framework, no reactivity. Just the minimum shape contracts * the layers must share. */ /** * UIX layer identifiers. A component declaration can participate in more * than one (`scope: ['soma', 'sema']`, etc.). */ export type Layer = 'soma' | 'sema' | 'eidos'; /** * Reference to a component part by its `kebab`. * * Produced by morfo's `v.partRef()` builder and consumed by any layer that * needs to point at "a specific part of a component" — sema action targets, * eidos selectors, the `MorfoAriaValue` union. * * The `kind: 'partRef'` tag lets `MorfoAriaValue` include the shape directly * as a case of the discriminated union. */ export type PartRef = { kind: 'partRef'; target: string };