Skip to content

Needs, offers, tasks and plans

15 components in the coalitionkit/v0_9 catalog.

AnswerCard

Doors: wide, compact, voice.

States: waiting, answered, declined.

Prop Type Notes
answer any value
from string vault
kind enum bool|number-range|choice
query string text
task_id id ref?

AssignmentRow

Doors: wide, compact, lens.

States: default.

Prop Type Notes
assignments array viewer's own []
fit string vault check
hours number int
share number pct

Checklist

Doors: wide, compact.

States: default.

Events: item.toggle (owner only).

Prop Type Notes
items array [{text, done, by?, evidence?}]

CostSplit

Doors: wide, compact.

States: default.

Prop Type Notes
items array [{label, payer, amount, kind}]
rule enum even|by share|by use
settlements array [] (display only in v0.1)

DependencyGraph

Doors: wide.

States: default, ripple.

Events: task.open(id).

Prop Type Notes
changed id task?
edges array [{from, to}]
invalidated array [task]
nodes array [{task, status}]

FairnessMeter

Doors: wide, compact.

States: within, over-cap.

Prop Type Notes
cap number pct (charter)
rows array [{participant, hours, share, agreedShare}]

Gantt

Doors: wide.

States: default, ripple-highlight.

Events: task.open(id).

Prop Type Notes
criticalPath array [task]
deadlines array []
now datetime ISO
rows array [{task, assignee, start, end, status}]
zoom enum hours|days|weeks

MatchView

Doors: wide.

States: default.

Events: match.inspect(offer).

Prop Type Notes
chosen id offer?
need id ref
offers array [{offer, fit, reasons[], blockedBy?}]

NeedCard

Doors: wide, compact, message, voice.

States: open, matched, fulfilled, withdrawn.

Events: need.open, need.withdraw.

Prop Type Notes
by datetime ISO
constraints array []
need_id id id
offers number int
owner id participant
state enum open|matched|fulfilled|withdrawn
text string string

ObjectiveBars

Doors: wide, compact.

States: default.

Prop Type Notes
objectives array [{name, value, unit, better}]

OfferCard

Doors: wide, compact, message, voice.

States: open, accepted, expired, withdrawn.

Events: offer.accept, offer.ask, offer.withdraw.

Prop Type Notes
conditions array []
cost object {amount, kind}
expires datetime ISO
offer_id id id
scope scope scope
state enum open|accepted|expired|withdrawn
target enum need|task
what string string

PlanCompare

Doors: wide, compact.

States: proposed, decided, superseded.

Events: plan.decide(id) → consent, plan.details(id).

Prop Type Notes
decision_deadline datetime ISO 8601; after it the decision is closed (deadline_exceeded)
plans array [{id, label, subject {kind, id, revision}, objectives{}, assignments[]}]
proposal_set_id id id
rejected array [{plan, reason}]

TaskCard

Doors: wide, compact, lens, message.

States: each status.

Events: task.open, task.done.

Prop Type Notes
assignee id participant
deps object {waitsFor[], unblocks[]}
evidence id ref?
status enum open|negotiating|proposed|decided|committed|done|withdrawn
task_id id id
title string string
window object {start, end}

TensionCard

Doors: wide, compact, message, voice.

States: open, decided, split → replan, expired.

Events: tension.choose(option) → consent.

Prop Type Notes
answered number count
deciders array [participant]
decision_deadline datetime ISO 8601; after it the decision is closed (deadline_exceeded)
options array [{id, label, tradeoffs[]}]
subject subject {kind, id, revision}: the revision-bound subject of the decision
task_ids array []
tension_id id id

Timeline

Doors: wide, compact, message.

States: default.

Prop Type Notes
items array [{start, end?, title, assignee, state}]
now datetime ISO