Sanity Library Reference Docs
    Preparing search index...
    • The three-way rendering verdict every surface applies to an action: absent — its filter failed, so it does not exist for this actor/visit (GROQ existence semantics; never even a disabled affordance). automation — cascade-fired, so the engine's cascade is its only firing path (narrate it, never render a fire affordance). button — fireable: enabled when allowed, otherwise disabled WITH its DisabledReason shown. Structural over the shared verdict fields so ActionEvaluation and AvailableAction both qualify; filter-existence dominates automation, the same order the engine's own verdicts apply.

      Parameters

      • action: {
            disabledReason?: {
                kind:
                    | "mutation-guard-denied"
                    | "filter-failed"
                    | "cascade-fired"
                    | "activity-not-active"
                    | "stage-terminal"
                    | "instance-completed"
                    | "instance-aborted"
                    | "requirements-unmet"
                    | "subject-permission-denied";
            };
            triggered?: true;
        }

      Returns "absent" | "automation" | "button"