Skip to content

Privacy and consent

16 components in the coalitionkit/v0_9 catalog.

ApprovalButton

Doors: wide, compact, lens.

States: ready, disabled, signing.

Events: approve → owner-signed.

Prop Type Notes
consequence string what saying yes binds you to
decision_deadline datetime ISO 8601; after it the decision is closed (deadline_exceeded)
disabledReason string string?
label string string
subject subject {kind, id, revision}: the revision-bound subject of the decision

CanaryMonitor

Doors: wide.

States: clean, leak.

Prop Type Notes
canaries number int
found number int (must be 0)
runs number int
surfaces array []

CommitmentCard

Doors: wide, compact.

States: pending, approved, suspended, withdrawn.

Events: commit.approve, commit.withdraw.

Prop Type Notes
assignee id participant
commitment_id id member ULID
decision_deadline datetime ISO 8601; after it the decision is closed (deadline_exceeded)
due datetime ISO
status enum pending|approved|suspended|withdrawn|superseded
subject subject {kind, id, revision}: the revision-bound subject of the decision
task id ref
charterRevision number Bound current charter revision required to resume a suspended commitment.

ConsentCard

Doors: wide, compact, message, voice.

States: open, answered, stale, expired.

Events: decide(yes|no) owner-signed, compare.

Prop Type Notes
consequence string what saying yes binds you to
consequenceOfNo string string
cost string string
decision_deadline datetime ISO 8601; after it the decision is closed (deadline_exceeded)
subject subject {kind, id, revision}: the revision-bound subject of the decision
summary string string
yourPart string string
acceptLabel string Optional affirmative button label, including a human-readable subject name; defaults to Accept.

DecisionLog

Doors: wide, compact.

States: default.

Events: entry.open.

Prop Type Notes
entries array [{time, participant, subject, revision, answer, reason?, seq, verified}]

DisclosureLadder

Doors: wide, compact.

States: default.

Events: disclosure.raise → consent, disclosure.lower.

Prop Type Notes
buckets array []?
field id id
level enum none|bool|range|exact
overrides array [{audience, level}]

DurableConsent

Doors: wide, compact.

States: default.

Events: grant.allow, grant.revoke.

Prop Type Notes
grants array [{grantee, action, scope, expires, signed}]
requests array []

OverlapView

Doors: wide.

States: running, done.

Prop Type Notes
mode enum intersection|count-only
parties array []
result enum slots|count
run id log ref
tokens array truncated

PrivateField

Doors: wide, compact, voice.

States: masked, revealed.

Events: field.reveal.

Prop Type Notes
display string the masked text shown; the value itself stays in the local vault
policy string chip
reveal number seconds
label string Visible field label; never the private value.
unit string Unit or cadence displayed beside the masked value.

ProjectionNote

Doors: wide, compact.

States: default.

Events: projection.verify.

Prop Type Notes
removed number count
source object {event_id, seq, prev_hash, hash}
viewerSpecific boolean bool

RedactionDiff

Doors: wide, compact.

States: default.

Events: redaction.appeal.

Prop Type Notes
delivered string text
original string sender only
verdict object {action, policy_id, paths}

ScopeBadge

Doors: wide, compact, message.

States: default.

Prop Type Notes
audience scope host|self|task:x|role:y|coalition|public
redact array [path]

StaleNotice

Doors: wide, compact, message.

States: shown.

Events: subject.review.

Prop Type Notes
currentRevision number int
decision_deadline datetime ISO 8601; after it the decision is closed (deadline_exceeded)
diff array []
subject subject {kind, id, revision}: the revision-bound subject of the decision
yourRevision number int

VaultCard

Doors: wide, compact.

States: default.

Events: vault.export, vault.wipe.

Prop Type Notes
answersToday number int
categories array [{name, count, policy: answer-only|psi|masked|never}]
location enum device|self-hosted

VoteTally

Doors: wide, compact.

States: open, closed.

Prop Type Notes
answered number count
answers array after close
deciders array []
decision_deadline datetime ISO 8601; after it the decision is closed (deadline_exceeded)
outcome enum decided|refused|split|expired
rule string string
subject subject {kind, id, revision}: the revision-bound subject of the decision

WhatOthersKnow

Doors: wide, compact.

States: default.

Events: view.export.

Prop Type Notes
rows array [{participant, knows[], notKnows[], because}]