@praxisui/dynamic-form 9.0.4-rc.8 → 9.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +20 -0
- package/ai/component-registry.json +162 -95
- package/docs/schema-driven-layout-materialization-rfc.md +19 -1
- package/fesm2022/praxisui-dynamic-form.mjs +142 -43
- package/package.json +8 -8
- package/src/lib/praxis-dynamic-form.json-api.md +11 -6
- package/types/praxisui-dynamic-form.d.ts +5 -3
|
@@ -4,7 +4,7 @@ doc_type: "rfc"
|
|
|
4
4
|
component: "praxis-dynamic-form"
|
|
5
5
|
status: "implemented-partial"
|
|
6
6
|
owner: "praxis-ui"
|
|
7
|
-
last_updated: "2026-
|
|
7
|
+
last_updated: "2026-08-03"
|
|
8
8
|
classification: "contrato-publico, arquitetural"
|
|
9
9
|
---
|
|
10
10
|
|
|
@@ -116,6 +116,16 @@ export interface DynamicFormDetailSummaryPolicy {
|
|
|
116
116
|
widthPrecedence?: 'schema' | 'summary';
|
|
117
117
|
}
|
|
118
118
|
|
|
119
|
+
export interface DynamicFormGroupedCommandPolicy {
|
|
120
|
+
orphanFieldExpansion?: 'preserve' | 'medium-and-wide' | 'all';
|
|
121
|
+
/**
|
|
122
|
+
* Schema field names whose values are supplied by the surrounding business
|
|
123
|
+
* context. They remain in the FormGroup and submit payload, but are omitted
|
|
124
|
+
* from the interactive command layout.
|
|
125
|
+
*/
|
|
126
|
+
contextFields?: readonly string[];
|
|
127
|
+
}
|
|
128
|
+
|
|
119
129
|
export interface DynamicFormLayoutPolicy {
|
|
120
130
|
source: DynamicFormLayoutSource;
|
|
121
131
|
preset?: DynamicFormSchemaLayoutPreset;
|
|
@@ -126,6 +136,7 @@ export interface DynamicFormLayoutPolicy {
|
|
|
126
136
|
schemaOperation?: 'detail' | 'create' | 'update' | 'view';
|
|
127
137
|
schemaType?: 'request' | 'response';
|
|
128
138
|
detailSummary?: DynamicFormDetailSummaryPolicy;
|
|
139
|
+
groupedCommand?: DynamicFormGroupedCommandPolicy;
|
|
129
140
|
}
|
|
130
141
|
```
|
|
131
142
|
|
|
@@ -215,6 +226,8 @@ Expected behavior:
|
|
|
215
226
|
- Use full-width rows for long text, descriptions, multiline controls and high-density option controls when needed.
|
|
216
227
|
- Use compact clusters for booleans, short enums and small numeric fields.
|
|
217
228
|
- Expand an otherwise orphan medium/wide field to the full row by default, while preserving compact `xs`/`sm` fields. Use `groupedCommand.orphanFieldExpansion = "preserve"` when the empty space is intentional, or `"all"` when compact orphan fields must also fill the row.
|
|
229
|
+
- Preserve multi-field partial rows by default. `groupedCommand.partialRowStrategy = "fill-compatible"` distributes the remainder deterministically through canonical spans (`3`, `4`, `6`, `8`, `12`) at each container breakpoint. It does not mutate schema widths or authoring documents; compact boolean/action controls, uploads and unknown control types are ineligible.
|
|
230
|
+
- Omit fields listed in `groupedCommand.contextFields` from the interactive layout while retaining their schema metadata, runtime control and submit value. Use this only when the surrounding surface already establishes the value, such as a selected employee opening a related-resource command; it is not a substitute for authorization, validation or backend ownership.
|
|
218
231
|
- Keep validation feedback near the field that caused it.
|
|
219
232
|
- Prefer editable controls over presentation roles.
|
|
220
233
|
- Keep command actions visually stable and accessible.
|
|
@@ -222,6 +235,11 @@ Expected behavior:
|
|
|
222
235
|
|
|
223
236
|
This preset is the platform replacement for local create/edit `FormConfig.sections` when the backend command DTO already publishes sufficient `@UISchema` metadata.
|
|
224
237
|
|
|
238
|
+
The runtime recomputes the projection from currently visible columns. Thus a rule-hidden field may
|
|
239
|
+
cause two remaining compatible fields to become `6 + 6`, while restoring the field restores the
|
|
240
|
+
original row projection. Responsive hiding is evaluated against the form-row container rather than
|
|
241
|
+
the browser viewport.
|
|
242
|
+
|
|
225
243
|
### `default`
|
|
226
244
|
|
|
227
245
|
Preserve current generated behavior for consumers that only need a basic generated layout.
|