You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat(spec): converge ComponentPropsMap['element:number'].filter onto the ViewFilterRule array form (#12039, ui#6206 Option B) (#14404)
* feat(spec): converge ComponentPropsMap['element:number'].filter onto the ViewFilterRule array form (ui#6206 Option B)
Accept-set change on one props-map entry: `filter` was `FilterConditionSchema`
(the MongoDB-style record), now `z.array(ViewFilterRuleSchema)` — the one
filter orthography every sibling `filter` input in the map already declares.
Sequenced consumer-first per the 2026-08-25 Option-A ordering ruling: the
objectui pin (d8ec8d6d) carries objectui#6828, re-measured before this move.
ADR-0087 semantic entry `element-number-filter-rule-array` carries the
prescription; `ElementNumberPropsParsed` declared and the Iso818 pin deleted
with its receipt (ADR-0122); orthography tests added.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GDA48PuRFrHyRfdkBz8m21
* test(spec): rewrite the one in-repo record-form element:number filter fixture to the array orthography; regenerate api-surface, export-origins, docs
The ruled migration sweep found exactly one first-party author of the
record-form `filter` on `element:number` — `component.test.ts`'s "should
accept full number props" fixture — and zero in examples/, skills/,
create-objectstack, content/docs/, packages/apps/. The entry and changeset
now say so. `check:generated --fix` proved three artifacts stale and
regenerated them: api-surface and export-origins carry the new
`ElementNumberPropsParsed` export, the docs reference carries the array shape.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GDA48PuRFrHyRfdkBz8m21
---------
Co-authored-by: Claude <noreply@anthropic.com>
|**filter**|`{ field: string; operator: Enum<'equals' \| 'not_equals' \| 'contains' \| 'not_contains' \| 'icontains' \| …>; value?: string \| number \| boolean \| null \| (string \| number)[] }[]`| optional | Filter rules narrowing the aggregate — the ViewFilterRule array form `[{ field, operator, value }, ...]`, the one filter orthography every `filter` input in this map shares. The MongoDB-style record form is refused — see migration `element-number-filter-rule-array`|
179
179
|**format**|`Enum<'number' \| 'currency' \| 'percent'>`| optional | Number display format |
180
180
|**prefix**|`string`| optional | Prefix text (e.g. "$") |
181
181
|**suffix**|`string`| optional | Suffix text (e.g. "%") |
|**value**|`string \| number \| boolean \| null \| (string \| number)[]`| optional | Filter value. The accepted SHAPE depends on the operator: `in` / `not_in` take an array (any length, including []), `between` takes exactly [min, max], every other operator takes a scalar. The unary operators (is_empty / is_not_empty / is_null / is_not_null) take their direction from the operator name and ignore this key. |
0 commit comments