AIAIAI Design System

Value Source Picker

One picker for every action-engine slot that accepts literal-or-reference. Wire format matches the action engine's resolver byte-for-byte. Used in declarative action editors — Edit values, Create field maps, function args, config-query filters. Mode set narrows per consumer via `allowed`.

Picking the source

EMPTY
A typed-in value
LITERAL-DEFAULT (defaultMode='literal')

Modes

LITERAL
PARAMETER
ENTITY FIELD
USER FIELD
NOW
$now — current UTC timestamp
SOURCE ID
$source.id — id of the entity being acted upon
CREATED FIELD
CONFIG LIST
list
EXPRESSION
FUNCTION (recursive)
Args

States

TYPE MISMATCH (soft warn)
type mismatch · expected datetime
DANGLING REF
removed from context
MODE NO LONGER ALLOWED
no longer allowed: Function
Args
A typed-in value
A typed-in value
DISABLED

Real-world consumers

Mode allow-lists narrowed per call site. Examples mirror shapes used by the action engine in production today.

EDIT — acknowledge.acknowledged_at
$now — current UTC timestamp
EDIT — reopen.reopen_count
PRECONDITION — change_state.transitions arg
list

TOKEN REFERENCE

use component tokens from :

--space-xs · gap between mode label and row--space-sm · gap between mode select and detail pane--space-2xs · gap between detail items--color-text-muted · placeholder copy in empty state--color-border-subtle · args panel border--color-surface-secondary · args panel background--radius-md · args panel corners