| 0.9.9 |
dashboard refresh: '30 seconds' |
removed: dashboards follow changes live, and re-read each minute |
| 0.9.9 |
SplitListDetail props isCurrent, listWidth, expandList, sentenceTitle (tablewalk/ui) |
removed from the public type: the shell sets them for its own rooms |
| 0.9.9 |
ui: { connect: [...], images: [...] } |
ui: { csp: { connect: [...], images: [...] } } |
| 0.9.9 |
landing hero.text, callToAction.text, and features / steps items { title, text } |
description (a text section and the footer keep text) |
| 0.9.9 |
list filter { has: 'opportunity', via: 'account_id' } |
whose: 'account_id' (the query language keeps any opportunity via account_id) |
| 0.9.9 |
first-run step title |
label |
| 0.9.9 |
dashboard embed(view, { tab: 'All open' }), the tab’s label |
tab: 'all-open', its address word (?tab=); a label is refused naming the word |
| 0.9.9 |
notify rule open: 'thread_id' |
opens: 'thread_id' |
| 0.9.9 |
ui.shell.title: false |
ui.shell.heading: false |
| 0.9.9 |
consumes / restocks refuse: '…' |
message: '…' |
| 0.9.6 |
dashboard layout: [...] (its grid) |
areas: [...] |
| 0.9.6 |
custom section totals, CustomTotal, CustomDashTotal, TotalValue, TotalGroup |
figures, CustomFigure, CustomDashFigure, FigureValue, FigureGroup |
| 0.9.6 |
funnel stage title |
label |
| 0.9.6 |
page layout: 'listing' |
layout: 'showcase' |
| 0.9.6 |
resource search with a "kind": "search" connection |
removed |
| 0.9.5 |
chart funnel shape |
funnel() section |
| 0.9.5 |
related list or section empty: false |
empty: 'hide' |
| 0.9.5 |
page('Title', 'resource', [...]), document('Title', ...) |
page('resource', [...]), document(...) |
| 0.9.5 |
money(), number(), percent(), relative(), items(), tones() |
plain display rules: { format: 'money', currency }, { tone: {…} } |
| 0.9.5 |
metric(..., { view }) |
to |
| 0.9.5 |
ui.shell.workbench |
removed: an App serves no Workbench |
| 0.9.5 |
App page related list sizing |
a list view with sizing: 'scroll' |
| 0.9.4 |
notify via: {…} |
send: { channel, to, consent, timezone? } |
| 0.9.2 |
query status in onBench (a machine group) |
status is onBench |
| 0.9.1 |
list tabs: [{ label, query }] |
segments on the resource, tabs: ['open', { segment, sort }] |
| 0.9.0 |
target/table on lists, dashboards and sections; resource on blocks, backdrops and fields; auth.me.table |
from |
| 0.9.0 |
reference field value; link { from }; latest(..., { by }) |
by; { column }; sort |
| 0.9.0 |
role from (claims) |
claims |
| 0.9.0 |
role supportLog: true, supportAudit: true |
operations: ['support'] |
| 0.9.0 |
timeline and stream tint; display icon/tags tone naming a column |
tone; toneOf |
| 0.9.0 |
label naming a column (mentions, groups, templates, backdrops) |
labelColumn |
| 0.9.0 |
calendar backdrop from / to |
start / end |
| 0.9.0 |
cards lines; queue and split facts |
properties |
| 0.9.0 |
timeline order: 'asc' | 'desc' |
newest: 'last' | 'first' |
| 0.9.0 |
fields or list section edit |
editable |
| 0.9.0 |
fields(..., { presentation: 'card' }) |
card(title, 'reference', [...]) |
| 0.9.0 |
fields(..., { presentation: 'headline', ... }) |
headline('column', { links, subfigure, was, note }) |
| 0.9.0 |
fact { column, label, position: 'before' } |
{ column, before } / { column, after } |
| 0.9.0 |
related(..., whose, { about }), similar(title, from, match) |
related(title, from, { same, near? }) |
| 0.9.0 |
App page section hidden, offsetLeft, sizing, names: false |
removed (tablewalk.json pages keep them) |
| 0.9.0 |
action kind: 'primary' | 'secondary'; JSON kind: 'cta' |
intent; kind: 'callToAction' |
| 0.9.0 |
list filterBar: true | false |
filterBar: 'bar' | 'rail' | 'none' |
| 0.9.0 |
list or New form open: 'peek' |
open: 'drawer' |
| 0.9.0 |
list keys |
shortcuts |
| 0.9.0 |
New form line title |
label |
| 0.9.0 |
empty and done states message; first run text |
description |
| 0.9.0 |
funnel step action; collect: ['actions'] |
command; collect: ['commands'] |
| 0.9.0 |
fromRecord base, brandColor; branding.allow: ['theme'] |
preset, accent; ['preset'] |
| 0.9.0 |
ui.shell.menu |
leave out nav |
| 0.9.0 |
ui.theme: defineTheme(...) |
ui.customThemes: [theme], ui.theme: { preset: '<its id>' } |
| 0.9.0 |
machine state at: { due_at: 'breach' } |
resource at: { due_at: { command, when } } |
| 0.9.0 |
flagSegments; flag or experiment segments |
root audiences; audiences: [...] |
| 0.9.0 |
flag or experiment eligibility: { roles, tenants } |
eligibility: { audiences: [...] } |
| 0.9.0 |
messages(ns, {...}), copy(catalog, key) |
messages/<locale>.ts with defineMessages, and msg('ns.key') |
| 0.9.0 |
assistant confirm: 'writes' |
removed: a write always waits for the person |
| 0.8.5 |
resource access: 'read' |
leave it out: a resource is read by default |
| 0.8.5 |
statusCheck.shows, stepUp.shows |
show |
| 0.8.5 |
form.visibleIf; validation if |
form.when; when |
| 0.8.5 |
validation { kind, field, operator, other, value } |
{ must: 'a >= b', when?, message } |
| 0.8.5 |
landing hero.headline; fromRecord headline |
hero.heading; heading |
| 0.8.5 |
onlyOn on App pages |
removed |
| 0.8.5 |
versionField |
the version column |
| 0.8.5 |
when: { status: [...] } |
when: 'status = open' |
| 0.8.5 |
list presentation: { kind: 'board' | 'split' } |
board: {...} / split: {...} |
| 0.8.5 |
sort, show or limit inside query |
the view’s or tab’s sort |
| 0.8.5 |
durations '5m', '30s', …Hours keys |
'30 seconds', '5 minutes' |
| 0.8.5 |
defineEvent with a fields list |
defineEvent(name, shape({...})) |
| 0.8.5 |
a landing’s own footer |
ui.footer |
| 0.8.5 |
command group help; related create fill |
description; prefill |
| 0.8.0 |
count(), total(), countBy(); list() section |
metric / breakdown with whose; rows() |