You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
svelte-kit-vice/src/uix/types.ts

30 lines
1020 B

/**
* 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 };

Powered by TurnKey Linux.