Skip to content
Layers
Esc
↑↓navigate↵open⌘Jpreview
On this page

vue

Interfaces

UseStackOptions

Defined in: packages/vue/src/index.ts:88

Type Parameters

Type Parameter Default type
T LayerState[]

Properties

Property Type Defined in
stack? string packages/vue/src/index.ts:89
select? (states) => T packages/vue/src/index.ts:90
compare? (a, b) => boolean packages/vue/src/index.ts:91

UseLayerStateOptions

Defined in: packages/vue/src/index.ts:94

Type Parameters

Type Parameter Default type
Key extends LayerKey -
P unknown
D unknown
U LayerState<P, ResponseOf<Key>, ErrorOf<Key>, D>[]

Properties

Property Type Defined in
key Key packages/vue/src/index.ts:100
stack? string packages/vue/src/index.ts:101
select? (states) => U packages/vue/src/index.ts:102
compare? (a, b) => boolean packages/vue/src/index.ts:103

StackSubscribeProps

Defined in: packages/vue/src/index.ts:381

Type Parameters

Type Parameter Default type
T LayerState[]

Properties

Property Type Defined in
stack? string packages/vue/src/index.ts:382
selector (states) => T packages/vue/src/index.ts:383

StackHandles

Defined in: packages/vue/src/index.ts:417

Properties

Property Type Defined in
states Readonly<Ref<LayerState[]>> packages/vue/src/index.ts:418
getCall (state) => LayerCallContext<unknown, unknown> packages/vue/src/index.ts:419

MutationRun

Defined in: packages/vue/src/index.ts:443

Type Parameters

Type Parameter
R

Properties

Property Type Description Defined in
orEnd (response) => Promise<void> On success, end the layer with response; on failure, leave it open and rethrow. packages/vue/src/index.ts:445

MutationFlow

Defined in: packages/vue/src/index.ts:448

Type Parameters

Type Parameter
R

Properties

Property Type Description Defined in
pending Readonly<Ref<boolean>> True while a run(...) async action is in flight. Mirrors the layer’s actionStatus: "running". packages/vue/src/index.ts:450
run (fn) => MutationRun<R> - packages/vue/src/index.ts:451

ScopedOpen()

Defined in: packages/vue/src/index.ts:499

Open a layer on a pre-bound stack, with DataTag response and error inference.

Call Signature

ScopedOpen<P, R, E, D, RootProps>(options): Promise<R>;

Defined in: packages/vue/src/index.ts:500

Open a layer on a pre-bound stack, with DataTag response and error inference.

Type Parameters
Type Parameter Default type
P -
R -
E Error
D unknown
RootProps unknown
Parameters
Parameter Type
options OmitKeyof<OpenLayerOptions<P, R, E, D, RootProps> & object, "stack" | "validate">
Returns

Promise<R>

Call Signature

ScopedOpen<P, R, E, D, RootProps>(options): Promise<R>;

Defined in: packages/vue/src/index.ts:508

Open a layer on a pre-bound stack, with DataTag response and error inference.

Type Parameters
Type Parameter Default type
P -
R void
E Error
D unknown
RootProps unknown
Parameters
Parameter Type
options OmitKeyof<OpenLayerOptions<P, R, E, D, RootProps>, "stack">
Returns

Promise<R>


LayerGroup

Defined in: packages/vue/src/index.ts:513

Properties

Property Type Description Defined in
open ScopedOpen - packages/vue/src/index.ts:514
dismissAll (response?) => void - packages/vue/src/index.ts:515
states Readonly<Ref<LayerState[]>> - packages/vue/src/index.ts:516
Outlet Component<{ rootProps?: unknown; }> Renders the child stack inline — place inside the parent layer’s DOM. packages/vue/src/index.ts:518
stackId string - packages/vue/src/index.ts:519

AppStack

Defined in: packages/vue/src/index.ts:577

Properties

Property Type Defined in
open ScopedOpen packages/vue/src/index.ts:578
dismissAll (response?) => void packages/vue/src/index.ts:579
states Readonly<Ref<LayerState[]>> packages/vue/src/index.ts:580

AppLayerProps

Defined in: packages/vue/src/index.ts:583

Type Parameters

Type Parameter Default type
P -
R void

Properties

Property Type Description Defined in
options OmitKeyof<LayerOptions<P, R>, "stack"> Layer definition with the stack supplied by the factory. packages/vue/src/index.ts:585
open boolean Controlled visibility. true opens the layer; false dismisses it. packages/vue/src/index.ts:587
payload P - packages/vue/src/index.ts:588
onResolved? (response) => void Called when the layer resolves. packages/vue/src/index.ts:590

StackHook

Defined in: packages/vue/src/index.ts:593

Type Parameters

Type Parameter
HostProps

Properties

Property Type Description Defined in
StackProvider Component<{ client?: LayerClient; }> - packages/vue/src/index.ts:594
useAppStack () => AppStack - packages/vue/src/index.ts:595
AppHost Component<HostProps> Host props are forwarded to config.Host via fallthrough attrs. packages/vue/src/index.ts:597
AppLayer <P, R>(props) => null - packages/vue/src/index.ts:598

Type Aliases

WiredLayerHandle

type WiredLayerHandle<P, R, E, D, RP> = LayerHandle<P, R, E, D, RP> & object;

Defined in: packages/vue/src/index.ts:106

Type Declaration

Name Type Defined in
state Readonly<Ref<LayerState<P, R, E, D>[]>> packages/vue/src/index.ts:113
queued Readonly<Ref<LayerState<P, R, E, D>[]>> packages/vue/src/index.ts:114
top Readonly<Ref< | LayerState<P, R, E, D> | null>> packages/vue/src/index.ts:115

Type Parameters

Type Parameter Default type
P -
R -
E DefaultLayerError
D unknown
RP unknown

WiredValidatedLayerHandle

type WiredValidatedLayerHandle<V, R, E, D, RP> = ValidatedLayerHandle<V, R, E, D, RP> & object;

Defined in: packages/vue/src/index.ts:118

Type Declaration

Name Type Defined in
state Readonly<Ref<LayerState<InferValidatorOutput<V>, R, E, D>[]>> packages/vue/src/index.ts:125
queued Readonly<Ref<LayerState<InferValidatorOutput<V>, R, E, D>[]>> packages/vue/src/index.ts:126
top Readonly<Ref< | LayerState<InferValidatorOutput<V>, R, E, D> | null>> packages/vue/src/index.ts:127

Type Parameters

Type Parameter Default type
V extends Validator<unknown> -
R -
E DefaultLayerError
D unknown
RP unknown

Variables

StackOutlet

const StackOutlet: DefineComponent<ExtractPropTypes<{
  stack: {
     type: StringConstructor;
     default: string;
  };
  rootProps: {
     type: null;
     default: undefined;
  };
}>, () => VNode<RendererNode, RendererElement, {
[key: string]: any;
}>, {
}, {
}, {
}, ComponentOptionsMixin, ComponentOptionsMixin, {
}, string, PublicProps, ToResolvedProps<ExtractPropTypes<{
  stack: {
     type: StringConstructor;
     default: string;
  };
  rootProps: {
     type: null;
     default: undefined;
  };
}>, {
}>, {
  stack: string;
  rootProps: any;
}, {
}, {
}, {
}, string, ComponentProvideOptions, true, {
}, any>;

Defined in: packages/vue/src/index.ts:340

Render every active layer in a stack with its registered component.


StackSubscribe

const StackSubscribe: DefineComponent<ExtractPropTypes<{
  stack: {
     type: StringConstructor;
     default: string;
  };
  selector: {
     type: PropType<(states) => unknown>;
     required: true;
  };
}>, () => unknown, {
}, {
}, {
}, ComponentOptionsMixin, ComponentOptionsMixin, {
}, string, PublicProps, ToResolvedProps<ExtractPropTypes<{
  stack: {
     type: StringConstructor;
     default: string;
  };
  selector: {
     type: PropType<(states) => unknown>;
     required: true;
  };
}>, {
}>, {
  stack: string;
}, SlotsType<{
  default: (payload) => unknown;
}>, {
}, {
}, string, ComponentProvideOptions, true, {
}, any>;

Defined in: packages/vue/src/index.ts:399

Render a selected stack value through a default scoped slot (cross-adapter parity). The slot payload is { value: unknown } — defineComponent can’t thread the selector’s return type through a slot; prefer useStack({ stack, select }) in setup() for a fully-typed value.

Example

<StackSubscribe :selector="(s) => s.length">
  <template #default="{ value }">{{ value }} open</template>
</StackSubscribe>

Functions

provideLayerClient()

function provideLayerClient(client?): LayerClient;

Defined in: packages/vue/src/index.ts:59

Provides a LayerClient to descendant components.

Parameters

Parameter Type Description
client? LayerClient Client to provide. A new client is created when omitted.

Returns

LayerClient

The provided client.


useLayerClient()

function useLayerClient(): LayerClient;

Defined in: packages/vue/src/index.ts:70

Reads the nearest LayerClient from Vue injection context.

Returns

LayerClient

The nearest provided client.


useStack()

function useStack<T>(opts?, client?): Readonly<Ref<T>>;

Defined in: packages/vue/src/index.ts:180

Exposes a LayerClient stack as a readonly Vue ref.

Call it inside setup() or an effectScope() so onScopeDispose can clean up the stack subscription.

Type Parameters

Type Parameter Default type
T LayerState<unknown, void, Error, unknown>[]

Parameters

Parameter Type Description
opts UseStackOptions<T> Options bag: stack, select, compare.
client? LayerClient Client to observe. Omit it to use useLayerClient.

Returns

Readonly<Ref<T>>

A readonly ref of the selected stack value.

Default

stack is "default"; select is identity; compare is Object.is.


useQueuedStack()

function useQueuedStack<T>(opts?, client?): Readonly<Ref<T>>;

Defined in: packages/vue/src/index.ts:193

Exposes a stack’s queued snapshot as a readonly Vue ref.

Type Parameters

Type Parameter Default type
T LayerState<unknown, void, Error, unknown>[]

Parameters

Parameter Type
opts UseStackOptions<T>
client? LayerClient

Returns

Readonly<Ref<T>>


useLayerState()

function useLayerState<Key, P, D, U>(opts, client?): Readonly<Ref<U>>;

Defined in: packages/vue/src/index.ts:210

Observe all mounted layers matching a key.

A DataTag key infers its response and error types.

Type Parameters

Type Parameter Default type
Key extends LayerKey -
P unknown
D unknown
U LayerState<P, ResponseOf<Key>, ErrorOf<Key>, D>[]

Parameters

Parameter Type
opts UseLayerStateOptions<Key, P, D, U>
client? LayerClient

Returns

Readonly<Ref<U>>


useLayerQueuedState()

function useLayerQueuedState<Key, P, D, U>(opts, client?): Readonly<Ref<U>>;

Defined in: packages/vue/src/index.ts:236

Observe all queued layers matching a key.

Type Parameters

Type Parameter Default type
Key extends LayerKey -
P unknown
D unknown
U LayerState<P, ResponseOf<Key>, ErrorOf<Key>, D>[]

Parameters

Parameter Type
opts UseLayerStateOptions<Key, P, D, U>
client? LayerClient

Returns

Readonly<Ref<U>>


useLayer()

Call Signature

function useLayer<V, R, E, D, RP>(options, client?): WiredValidatedLayerHandle<V, R, E, D, RP>;

Defined in: packages/vue/src/index.ts:299

Wired handle: createLayer + reactive state/queued/top.

Type Parameters
Type Parameter Default type
V extends Validator<unknown> -
R -
E Error
D unknown
RP unknown
Parameters
Parameter Type
options LayerOptions<InferValidatorOutput<V>, R, E, D, RP> & object
client? LayerClient
Returns

WiredValidatedLayerHandle<V, R, E, D, RP>

Call Signature

function useLayer<P, R, E, D, RP>(options, client?): WiredLayerHandle<P, R, E, D, RP>;

Defined in: packages/vue/src/index.ts:313

Wired handle: createLayer + reactive state/queued/top.

Type Parameters
Type Parameter Default type
P -
R -
E Error
D unknown
RP unknown
Parameters
Parameter Type
options LayerOptions<P, R, E, D, RP> & object
client? LayerClient
Returns

WiredLayerHandle<P, R, E, D, RP>


useStackHandles()

function useStackHandles(stack?, rootProps?): StackHandles;

Defined in: packages/vue/src/index.ts:423

Return the states and call contexts needed to render a stack headlessly.

Parameters

Parameter Type Default value
stack string "default"
rootProps? unknown undefined

Returns

StackHandles


useMutationFlow()

function useMutationFlow<P, R, RootProps>(call): MutationFlow<R>;

Defined in: packages/vue/src/index.ts:476

Coordinate a layer’s pending state with an async mutation and end it on success.

Type Parameters

Type Parameter Default type
P -
R -
RootProps unknown

Parameters

Parameter Type
call LayerCallContext<P, R, RootProps>

Returns

MutationFlow<R>

Example

<script setup lang="ts">
import { type LayerComponentProps, useMutationFlow } from "@stainless-code/vue-layers";

const props = defineProps<LayerComponentProps<void, boolean>>();
const flow = useMutationFlow(props.call);
</script>

<template>
  <button
    :disabled="flow.pending.value"
    @click="flow.run(() => Promise.resolve()).orEnd(true)"
  >
    Confirm
  </button>
</template>

useLayerGroup()

function useLayerGroup<P, R, RootProps>(call, options?): LayerGroup;

Defined in: packages/vue/src/index.ts:528

Create a child stack scoped to the calling layer’s lifetime.

The child stack is disposed and cleared via cancelAll when its parent layer unmounts (LayerCancelledError).

Type Parameters

Type Parameter Default type
P -
R -
RootProps unknown

Parameters

Parameter Type
call LayerCallContext<P, R, RootProps>
options? LayerGroupOptions

Returns

LayerGroup


createStackHook()

function createStackHook<HostProps>(config?): StackHook<HostProps>;

Defined in: packages/vue/src/index.ts:602

Create provider, host, controlled-layer, and access hooks bound to one stack.

Type Parameters

Type Parameter Default type
HostProps extends object object

Parameters

Parameter Type
config { client?: LayerClient; stack?: string; Host?: Component<object & HostProps>; }
config.client? LayerClient
config.stack? string
config.Host? Component<object & HostProps>

Returns

StackHook<HostProps>

References

assertLayerKey

Re-exports assertLayerKey


hashKey

Re-exports hashKey


keySignature

Re-exports keySignature


shallowArrayEqual

Re-exports shallowArrayEqual


Subscribable

Re-exports Subscribable


notifyManager

Re-exports notifyManager


ControlledPromise

Re-exports ControlledPromise


Resolve

Re-exports Resolve


Reject

Re-exports Reject


Layer

Re-exports Layer


LayerStack

Re-exports LayerStack


LayerClient

Re-exports LayerClient


layerOptions

Re-exports layerOptions


createLayer

Re-exports createLayer


LayerHandle

Re-exports LayerHandle


ValidatedLayerHandle

Re-exports ValidatedLayerHandle


layerKey

Re-exports layerKey


DataTag

Re-exports DataTag


InferDataTagResponse

Re-exports InferDataTagResponse


InferDataTagError

Re-exports InferDataTagError


ResponseOf

Re-exports ResponseOf


ErrorOf

Re-exports ErrorOf


createCallContext

Re-exports createCallContext


childStackId

Re-exports childStackId


createLayerGroup

Re-exports createLayerGroup


LayerGroupHandle

Re-exports LayerGroupHandle


LayerGroupOptions

Re-exports LayerGroupOptions


StandardSchemaV1

Re-exports StandardSchemaV1


Validator

Re-exports Validator


InferValidatorInput

Re-exports InferValidatorInput


InferValidatorOutput

Re-exports InferValidatorOutput


OpenValidatePayload

Re-exports OpenValidatePayload


PayloadValidationError

Re-exports PayloadValidationError


isPayloadValidationError

Re-exports isPayloadValidationError


LayerKeyError

Re-exports LayerKeyError


isLayerKeyError

Re-exports isLayerKeyError


LayerCancelledError

Re-exports LayerCancelledError


isLayerCancelledError

Re-exports isLayerCancelledError


ValidationIssue

Re-exports ValidationIssue


LayerCancelReason

Re-exports LayerCancelReason


LayerKey

Re-exports LayerKey


LayerPhase

Re-exports LayerPhase


LayerTransition

Re-exports LayerTransition


LayerActionStatus

Re-exports LayerActionStatus


BlockerFn

Re-exports BlockerFn


StackBlockerFn

Re-exports StackBlockerFn


DismissAllMode

Re-exports DismissAllMode


DismissOptions

Re-exports DismissOptions


DismissAllOptions

Re-exports DismissAllOptions


LayerState

Re-exports LayerState


LayerCallContext

Re-exports LayerCallContext


LayerComponentProps

Re-exports LayerComponentProps


LayerComponent

Re-exports LayerComponent


LayerOptions

Re-exports LayerOptions


PayloadArg

Re-exports PayloadArg


ResponseArgTuple

Re-exports ResponseArgTuple


EndArgs

Re-exports EndArgs


DismissAllArgs

Re-exports DismissAllArgs


CancelQueuedArgs

Re-exports CancelQueuedArgs


HandleDismissArgs

Re-exports HandleDismissArgs


OpenLayerOptions

Re-exports OpenLayerOptions


OmitKeyof

Re-exports OmitKeyof


SerialOnLoadError

Re-exports SerialOnLoadError


StackOptions

Re-exports StackOptions


StackDefaults

Re-exports StackDefaults


LayerClientOptions

Re-exports LayerClientOptions


StackNotifyAction

Re-exports StackNotifyAction


LayerNotifyView

Re-exports LayerNotifyView


StackNotifyEvent

Re-exports StackNotifyEvent


Register

Re-exports Register


DefaultLayerError

Re-exports DefaultLayerError

Was this page helpful?