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
A declarative hint with zero readers in any repo — the live binding resolves
from the page variable whose source names the component id (PageVariableSchema).
Tombstoned with retiredKey(), registered under protocol 18 (retired-key entries
+ D2 conversion element-input-target-variable-removed wired into step 18),
pin tests, regenerated authorable-surface/docs, minor changeset per the
post-17.0.0 launch-window convention.
Co-authored-by: Claude <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: content/docs/references/ui/component.mdx
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -149,7 +149,7 @@ const result = AIChatWindowProps.parse(data);
149
149
|**filter**|`any`| optional | Filter criteria for available records |
150
150
|**sort**|`{ field: string; order: Enum<'asc' \| 'desc'> }[]`| optional | Row order — synonym of the component-level `dataSource.sort`, which takes precedence when both are set |
151
151
|**limit**|`integer`| optional | Max records offered — synonym of the component-level `dataSource.limit`, which takes precedence when both are set (renderer default 50) |
152
-
|**targetVariable**|`string`| optional |Page variable to bind selected record ID(s)|
152
+
|**targetVariable**|`never`| optional |[REMOVED]`element:record_picker` property `targetVariable` was removed in @objectstack/spec 17 (#9198, ADR-0049) — it was a declarative hint no renderer ever read: the live binding runs the other direction, resolved from the page variable whose `source` names this component's `id`, so authoring only `targetVariable` bound nothing while reporting success. Delete the key; to bind the picked record id, declare it on the variable — `variables: [{ name: '<var>', type: 'record_id', source: '<this component id>' }]`. Run `os migrate meta --from 17` to rewrite existing sources automatically.|
153
153
|**placeholder**|`string \| Record<string, string>`| optional | Placeholder text |
154
154
|**emptyText**|`string \| Record<string, string>`| optional | Text shown when the query returns no records (default "No records") |
155
155
|**displayField**|`never`| optional |[REMOVED]`element:record_picker` property `displayField` was removed in @objectstack/spec 17.0.0 (#5775, ADR-0087 D2) — it was a required declaration no renderer ever read, while the renderer honoured `labelField` for the same thing and defaulted to `name`. Rename the key to `labelField`; the value (a field name) is unchanged. Run `os migrate meta --from 16` to rewrite existing sources automatically. |
@@ -173,7 +173,7 @@ const result = AIChatWindowProps.parse(data);
173
173
|**required**|`boolean`| optional (default: `false`) | Mark the field as required |
174
174
|**disabled**|`boolean`| optional (default: `false`) | Disable the input |
175
175
|**description**|`string \| Record<string, string>`| optional | Helper text shown below the input |
176
-
|**targetVariable**|`string`| optional |Page variable this input writes to. Declarative hint; the live binding resolves via the variable whose `source`equals this component id (see PageVariableSchema). |
176
+
|**targetVariable**|`never`| optional |[REMOVED]`element:text_input` property `targetVariable` was removed in @objectstack/spec 17 (#9198, ADR-0049) — it was a declarative hint no renderer ever read: the live binding runs the other direction, resolved from the page variable whose `source`names this component's `id`, so authoring only `targetVariable` bound nothing while reporting success. Delete the key; to bind the typed value, declare it on the variable — `variables: [{ name: '<var>', type: 'string', source: '<this component id>' }]`. Run `os migrate meta --from 17` to rewrite existing sources automatically. |
0 commit comments